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
|
noname
|
||||||
|
|
||||||
steamcmd
|
steamcmd
|
||||||
|
|
||||||
# Celeste mod manager (for Steam version)
|
|
||||||
(olympus.override { celesteWrapper = "steam-run"; })
|
|
||||||
];
|
];
|
||||||
imports = [
|
imports = [
|
||||||
../programs/retroarch.nix
|
../programs/retroarch.nix
|
||||||
|
../programs/celeste
|
||||||
paradoxLauncherUserSettings
|
paradoxLauncherUserSettings
|
||||||
victoria3Settings
|
victoria3Settings
|
||||||
pdxSdkSettingsEU5
|
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