mirror of
https://github.com/js0ny/dotfiles.git
synced 2026-03-22 02:36:19 +00:00
dot(Celeste): add celeste module
This commit is contained in:
parent
e15d9c76e8
commit
5548400ff8
4 changed files with 328 additions and 3 deletions
|
|
@ -118,12 +118,10 @@ in {
|
|||
noname
|
||||
|
||||
steamcmd
|
||||
|
||||
# Celeste mod manager (for Steam version)
|
||||
(olympus.override { celesteWrapper = "steam-run"; })
|
||||
];
|
||||
imports = [
|
||||
../programs/retroarch.nix
|
||||
../programs/celeste
|
||||
paradoxLauncherUserSettings
|
||||
victoria3Settings
|
||||
pdxSdkSettingsEU5
|
||||
|
|
|
|||
11
nixcfgs/users/js0ny/programs/celeste/default.nix
Normal file
11
nixcfgs/users/js0ny/programs/celeste/default.nix
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
{...}: {
|
||||
imports = [
|
||||
./lib.nix
|
||||
];
|
||||
programs.celeste = {
|
||||
enable = true;
|
||||
withSteam = true;
|
||||
withOlympus = true;
|
||||
settingsFile = ./settings.celeste;
|
||||
};
|
||||
}
|
||||
94
nixcfgs/users/js0ny/programs/celeste/lib.nix
Normal file
94
nixcfgs/users/js0ny/programs/celeste/lib.nix
Normal file
|
|
@ -0,0 +1,94 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.programs.celeste;
|
||||
in {
|
||||
options.programs.celeste = {
|
||||
enable = mkEnableOption "Celeste";
|
||||
|
||||
withOlympus = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = "Whether to include the Olympus mod manager.";
|
||||
};
|
||||
|
||||
withSteam = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
description = "Whether the game is installed via Steam (affects mod manager configuration).";
|
||||
};
|
||||
|
||||
withEverest = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Whether to install Everest mod loader.
|
||||
Only applicable when using the celestegame (itch.io) package.
|
||||
'';
|
||||
};
|
||||
|
||||
writableDir = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
description = ''
|
||||
Writable directory for Everest mods and logs.
|
||||
Required when using celestegame with Everest, since the Nix store is read-only.
|
||||
Example: "/home/user/Games/Celeste/writable"
|
||||
'';
|
||||
};
|
||||
|
||||
gameDir = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
description = ''
|
||||
Path where a symbolic link to the Celeste installation will be created.
|
||||
Useful for Olympus to discover the celestegame installation.
|
||||
Example: "/home/user/Games/Celeste/game"
|
||||
'';
|
||||
};
|
||||
|
||||
settingsFile = mkOption {
|
||||
type = types.nullOr types.path;
|
||||
default = null;
|
||||
description = ''
|
||||
Path to the Celeste settings XML file in the dotfiles repository.
|
||||
Will be symlinked to ~/.local/share/Celeste/Backups/settings.celeste
|
||||
via mkOutOfStoreSymlink (out-of-store so the file remains mutable).
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
home.packages =
|
||||
# Olympus mod manager
|
||||
(optional cfg.withOlympus (
|
||||
if cfg.withSteam
|
||||
then pkgs.olympus.override {celesteWrapper = "steam-run";}
|
||||
else
|
||||
(
|
||||
if cfg.gameDir != null
|
||||
then pkgs.olympus.override {finderHints = cfg.gameDir;}
|
||||
else pkgs.olympus
|
||||
)
|
||||
))
|
||||
# celestegame (itch.io DRM-free version)
|
||||
++ (optional (!cfg.withSteam) (
|
||||
pkgs.celestegame.override (
|
||||
{}
|
||||
// (optionalAttrs cfg.withEverest {withEverest = true;})
|
||||
// (optionalAttrs (cfg.writableDir != null) {writableDir = cfg.writableDir;})
|
||||
// (optionalAttrs (cfg.gameDir != null) {gameDir = cfg.gameDir;})
|
||||
)
|
||||
));
|
||||
|
||||
# Symlink settings.celeste from dotfiles repo
|
||||
home.file = mkIf (cfg.settingsFile != null) {
|
||||
".local/share/Celeste/Backups/settings.celeste".source =
|
||||
config.lib.file.mkOutOfStoreSymlink cfg.settingsFile;
|
||||
};
|
||||
};
|
||||
}
|
||||
222
nixcfgs/users/js0ny/programs/celeste/settings.celeste
Normal file
222
nixcfgs/users/js0ny/programs/celeste/settings.celeste
Normal file
|
|
@ -0,0 +1,222 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Settings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
||||
<Version>1.4.0.0</Version>
|
||||
<DefaultFileName />
|
||||
<Fullscreen>true</Fullscreen>
|
||||
<WindowScale>6</WindowScale>
|
||||
<ViewportPadding>0</ViewportPadding>
|
||||
<VSync>true</VSync>
|
||||
<DisableFlashes>false</DisableFlashes>
|
||||
<ScreenShake>false</ScreenShake>
|
||||
<Rumble>true</Rumble>
|
||||
<GrabMode>Hold</GrabMode>
|
||||
<CrouchDashMode>Press</CrouchDashMode>
|
||||
<MusicVolume>10</MusicVolume>
|
||||
<SFXVolume>10</SFXVolume>
|
||||
<SpeedrunClock>File</SpeedrunClock>
|
||||
<LastSaveFile>0</LastSaveFile>
|
||||
<Language>schinese</Language>
|
||||
<Pico8OnMainMenu>false</Pico8OnMainMenu>
|
||||
<SetViewportOnce>false</SetViewportOnce>
|
||||
<VariantsUnlocked>true</VariantsUnlocked>
|
||||
<Left>
|
||||
<Keyboard>
|
||||
<Keys>Left</Keys>
|
||||
</Keyboard>
|
||||
<Controller>
|
||||
<Buttons>LeftThumbstickLeft</Buttons>
|
||||
<Buttons>DPadLeft</Buttons>
|
||||
</Controller>
|
||||
</Left>
|
||||
<Right>
|
||||
<Keyboard>
|
||||
<Keys>Right</Keys>
|
||||
</Keyboard>
|
||||
<Controller>
|
||||
<Buttons>LeftThumbstickRight</Buttons>
|
||||
<Buttons>DPadRight</Buttons>
|
||||
</Controller>
|
||||
</Right>
|
||||
<Down>
|
||||
<Keyboard>
|
||||
<Keys>Down</Keys>
|
||||
</Keyboard>
|
||||
<Controller>
|
||||
<Buttons>LeftThumbstickDown</Buttons>
|
||||
<Buttons>DPadDown</Buttons>
|
||||
</Controller>
|
||||
</Down>
|
||||
<Up>
|
||||
<Keyboard>
|
||||
<Keys>Up</Keys>
|
||||
</Keyboard>
|
||||
<Controller>
|
||||
<Buttons>LeftThumbstickUp</Buttons>
|
||||
<Buttons>DPadUp</Buttons>
|
||||
</Controller>
|
||||
</Up>
|
||||
<MenuLeft>
|
||||
<Keyboard>
|
||||
<Keys>Left</Keys>
|
||||
</Keyboard>
|
||||
<Controller>
|
||||
<Buttons>LeftThumbstickLeft</Buttons>
|
||||
<Buttons>DPadLeft</Buttons>
|
||||
</Controller>
|
||||
</MenuLeft>
|
||||
<MenuRight>
|
||||
<Keyboard>
|
||||
<Keys>Right</Keys>
|
||||
</Keyboard>
|
||||
<Controller>
|
||||
<Buttons>LeftThumbstickRight</Buttons>
|
||||
<Buttons>DPadRight</Buttons>
|
||||
</Controller>
|
||||
</MenuRight>
|
||||
<MenuDown>
|
||||
<Keyboard>
|
||||
<Keys>Down</Keys>
|
||||
</Keyboard>
|
||||
<Controller>
|
||||
<Buttons>LeftThumbstickDown</Buttons>
|
||||
<Buttons>DPadDown</Buttons>
|
||||
</Controller>
|
||||
</MenuDown>
|
||||
<MenuUp>
|
||||
<Keyboard>
|
||||
<Keys>Up</Keys>
|
||||
</Keyboard>
|
||||
<Controller>
|
||||
<Buttons>LeftThumbstickUp</Buttons>
|
||||
<Buttons>DPadUp</Buttons>
|
||||
</Controller>
|
||||
</MenuUp>
|
||||
<Grab>
|
||||
<Keyboard>
|
||||
<Keys>Z</Keys>
|
||||
<Keys>V</Keys>
|
||||
<Keys>LeftShift</Keys>
|
||||
</Keyboard>
|
||||
<Controller>
|
||||
<Buttons>LeftTrigger</Buttons>
|
||||
<Buttons>RightTrigger</Buttons>
|
||||
<Buttons>LeftShoulder</Buttons>
|
||||
<Buttons>RightShoulder</Buttons>
|
||||
</Controller>
|
||||
</Grab>
|
||||
<Jump>
|
||||
<Keyboard>
|
||||
<Keys>C</Keys>
|
||||
</Keyboard>
|
||||
<Controller>
|
||||
<Buttons>A</Buttons>
|
||||
<Buttons>Y</Buttons>
|
||||
</Controller>
|
||||
</Jump>
|
||||
<Dash>
|
||||
<Keyboard>
|
||||
<Keys>X</Keys>
|
||||
</Keyboard>
|
||||
<Controller>
|
||||
<Buttons>X</Buttons>
|
||||
<Buttons>B</Buttons>
|
||||
</Controller>
|
||||
</Dash>
|
||||
<Talk>
|
||||
<Keyboard>
|
||||
<Keys>OemQuestion</Keys>
|
||||
</Keyboard>
|
||||
<Controller>
|
||||
<Buttons>B</Buttons>
|
||||
</Controller>
|
||||
</Talk>
|
||||
<Pause>
|
||||
<Keyboard>
|
||||
<Keys>Enter</Keys>
|
||||
</Keyboard>
|
||||
<Controller>
|
||||
<Buttons>Start</Buttons>
|
||||
</Controller>
|
||||
</Pause>
|
||||
<Confirm>
|
||||
<Keyboard>
|
||||
<Keys>C</Keys>
|
||||
</Keyboard>
|
||||
<Controller>
|
||||
<Buttons>A</Buttons>
|
||||
</Controller>
|
||||
</Confirm>
|
||||
<Cancel>
|
||||
<Keyboard>
|
||||
<Keys>X</Keys>
|
||||
<Keys>Back</Keys>
|
||||
</Keyboard>
|
||||
<Controller>
|
||||
<Buttons>B</Buttons>
|
||||
<Buttons>X</Buttons>
|
||||
</Controller>
|
||||
</Cancel>
|
||||
<Journal>
|
||||
<Keyboard>
|
||||
<Keys>Tab</Keys>
|
||||
</Keyboard>
|
||||
<Controller>
|
||||
<Buttons>LeftTrigger</Buttons>
|
||||
</Controller>
|
||||
</Journal>
|
||||
<QuickRestart>
|
||||
<Keyboard>
|
||||
<Keys>R</Keys>
|
||||
</Keyboard>
|
||||
<Controller />
|
||||
</QuickRestart>
|
||||
<DemoDash>
|
||||
<Keyboard>
|
||||
<Keys>S</Keys>
|
||||
</Keyboard>
|
||||
<Controller />
|
||||
</DemoDash>
|
||||
<RightMoveOnly>
|
||||
<Keyboard />
|
||||
<Controller />
|
||||
</RightMoveOnly>
|
||||
<LeftMoveOnly>
|
||||
<Keyboard />
|
||||
<Controller />
|
||||
</LeftMoveOnly>
|
||||
<UpMoveOnly>
|
||||
<Keyboard />
|
||||
<Controller />
|
||||
</UpMoveOnly>
|
||||
<DownMoveOnly>
|
||||
<Keyboard />
|
||||
<Controller />
|
||||
</DownMoveOnly>
|
||||
<RightDashOnly>
|
||||
<Keyboard />
|
||||
<Controller />
|
||||
</RightDashOnly>
|
||||
<LeftDashOnly>
|
||||
<Keyboard />
|
||||
<Controller />
|
||||
</LeftDashOnly>
|
||||
<UpDashOnly>
|
||||
<Keyboard />
|
||||
<Controller />
|
||||
</UpDashOnly>
|
||||
<DownDashOnly>
|
||||
<Keyboard />
|
||||
<Controller />
|
||||
</DownDashOnly>
|
||||
<LaunchWithFMODLiveUpdate>false</LaunchWithFMODLiveUpdate>
|
||||
<LaunchInDebugMode>false</LaunchInDebugMode>
|
||||
<!--
|
||||
LaunchWithFMODLiveUpdate:
|
||||
This Enables FMOD Studio Live Update so you can interact with the sounds in real time.
|
||||
Note this will also require access to the private network.
|
||||
|
||||
LaunchInDebugMode:
|
||||
Debug Mode can destroy save files, crash the game, and do other unwanted behaviour.
|
||||
It is not documented. Use at own risk.
|
||||
-->
|
||||
</Settings>
|
||||
Loading…
Add table
Add a link
Reference in a new issue