feat(bbsteamie): add setup for palia map
All checks were successful
Discord / discord commits (push) Has been skipped

This commit is contained in:
matt1432 2024-07-27 15:22:55 -04:00
parent cfb4ab02f0
commit 8c8c62bb6e
10 changed files with 240 additions and 77 deletions

View file

@ -14,7 +14,7 @@ in {
../../modules/kmscon.nix
../../modules/sshd.nix
./modules/desktop.nix
./modules/desktop
self.nixosModules.plymouth
];

View file

@ -0,0 +1,30 @@
{pkgs, ...}: let
# switch to wayland when possible
defaultSession = "plasmax11";
in {
imports = [
(import ./session-switching.nix defaultSession)
(import ./steam.nix defaultSession)
];
services.desktopManager.plasma6.enable = true;
programs = {
kdeconnect.enable = true;
xwayland.enable = true;
};
# Flatpak support for Discover
services.flatpak.enable = true;
services.packagekit.enable = true;
environment.systemPackages = with pkgs; [
# Misc Apps
firefox
kdePackages.discover
# Libs
wl-clipboard
xclip
];
}

View file

@ -0,0 +1,81 @@
# How to install Palia Map and Overwolf on Linux
Dependencies:
- latest GE-Proton: https://github.com/GloriousEggroll/proton-ge-custom
- protontricks: https://github.com/Matoking/protontricks
- protonhax: https://github.com/jcnils/protonhax
## First Step: Install and run Palia at least once
## Second Step: Setup Palia WINEPREFIX with latest GE-Proton
1. Delete prefix at /home/"$USER"/.steam/steam/steamapps/compatdata/2707930/pfx
```bash
rm -r /home/"$USER"/.steam/steam/steamapps/compatdata/2707930/pfx
```
2. Launch Palia with GE-Proton by going to game properties -> Compatibility -> Force the use ... -> Select GE-Proton...
3. Install dotnet48 and other Windows deps to allow for Overwolf installation
```bash
# Force proton version of protontricks
export PROTON_VERSION="GE-Proton9-10"
protontricks 2707930 dotnet48
# If VC is needed
protontricks 2707930 vcrun2010
protontricks 2707930 vcrun2012
protontricks 2707930 vcrun2013
```
## Third Step: Install Overwolf
1. Get this older version that worked for me here: https://overwolf.en.uptodown.com/windows/download/4714215
2. Install it with protontricks. Follow the GUI installer as if you were on Windows
```bash
export PROTON_VERSION="GE-Proton9-10"
protontricks-launch --appid 2707930 Downloads/overwolf-0-195-0-18.exe
```
## Fourth Step: Install Palia Map
1. Get the installer from here: https://www.overwolf.com/app/Leon_Machens-Palia_Map
2. Install it with protontricks.
```bash
export PROTON_VERSION="GE-Proton9-10"
protontricks-launch --appid 2707930 Downloads/Palia\ Map\ -\ Installer.exe
```
3. An error should popup saying `Installation failed` or something along those lines.
Close it and wait. You should see the Overwolf overlay on the left side of your screen
with the Palia Map icon saying `Installing` and then when it's done: `Palia Map`.
If nothing happens, try rebooting your PC and retrying the above shell commands until it works.
## Final Step: Setting it up in Steam
1. Add this line to Palia launch options
```bash
protonhax init %command%
```
2. Add random non-steam game to your library and then edit its properties:
Change the name to `Palia Map` or anything you like
Change the target to this command:
```bash
protonhax run 2707930 "/home/$USER/.local/share/Steam/steamapps/compatdata/2707930/pfx/drive_c/users/steamuser/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Overwolf/Palia Map.lnk"
```

View file

@ -1,15 +1,12 @@
{
defaultSession: {
config,
lib,
pkgs,
self,
...
}: let
inherit (lib) getExe mkForce;
inherit (config.vars) mainUser;
# FIXME: switch to wayland when possible
defaultSession = "plasmax11";
inherit (config.vars) mainUser;
switch-session = pkgs.writeShellApplication {
name = "switch-session";
@ -31,15 +28,15 @@
'';
in {
services = {
xserver.enable = true;
desktopManager.plasma6.enable = true;
displayManager = {
sddm = {
enable = true;
autoLogin.relogin = true;
};
};
# Needed for sddm TODO: look into wayland SDDM?
xserver.enable = true;
};
# Sets the default session at launch
@ -90,72 +87,4 @@ in {
terminal = false;
type = "Application";
};
environment.systemPackages = [
# Misc apps for DE
pkgs.firefox
pkgs.kdePackages.discover
pkgs.wl-clipboard
# FIXME:Ryujinx ACNH crashes on OpenGL AND Vulkan
# https://github.com/Ryujinx/Ryujinx/issues/6993
# https://github.com/Ryujinx/Ryujinx/issues/6708
self.packages.${pkgs.system}.yuzu
pkgs.steam-rom-manager
];
programs = {
xwayland.enable = true;
kdeconnect.enable = true;
steam = {
enable = true;
remotePlay.openFirewall = true;
extraCompatPackages = [
pkgs.proton-ge-bin
];
};
};
# Enable flatpak support
services.flatpak.enable = true;
services.packagekit.enable = true;
# Jovian NixOS settings
jovian.steam = {
# Steam > Settings > System > Enable Developer Mode
# Steam > Developer > CEF Remote Debugging
enable = true;
user = mainUser;
desktopSession = config.services.displayManager.defaultSession;
};
jovian.decky-loader = {
enable = true;
user = mainUser;
stateDir = "/home/${mainUser}/.local/share/decky"; # Keep scoped to user
# https://github.com/Jovian-Experiments/Jovian-NixOS/blob/1171169117f63f1de9ef2ea36efd8dcf377c6d5a/modules/decky-loader.nix#L80-L84
extraPackages = with pkgs; [
# Generic packages
curl
unzip
util-linux
gnugrep
readline.out
procps
pciutils
libpulseaudio
];
extraPythonPackages = pythonPackages:
with pythonPackages; [
python
];
};
# Takes way too long to shutdown
systemd.services."decky-loader".serviceConfig.TimeoutStopSec = "5";
}

View file

@ -0,0 +1,75 @@
defaultSession: {
config,
lib,
pkgs,
self,
...
}: let
inherit (config.vars) mainUser;
cfg = config.programs.steam;
in {
# Normal Steam Stuff
programs.steam = {
enable = true;
protontricks.enable = true;
remotePlay.openFirewall = true;
extraCompatPackages = [
pkgs.proton-ge-bin
];
};
# Jovian Steam settings
jovian.steam = {
# Steam > Settings > System > Enable Developer Mode
# Steam > Developer > CEF Remote Debugging
enable = true;
user = mainUser;
environment = {
STEAM_EXTRA_COMPAT_TOOLS_PATHS =
lib.makeSearchPathOutput
"steamcompattool"
""
cfg.extraCompatPackages;
};
desktopSession = defaultSession;
};
# Decky settings
jovian.decky-loader = {
enable = true;
user = mainUser;
stateDir = "/home/${mainUser}/.local/share/decky"; # Keep scoped to user
# https://github.com/Jovian-Experiments/Jovian-NixOS/blob/1171169117f63f1de9ef2ea36efd8dcf377c6d5a/modules/decky-loader.nix#L80-L84
extraPackages = with pkgs; [
# Generic packages
curl
unzip
util-linux
gnugrep
readline.out
procps
pciutils
libpulseaudio
];
};
# Takes way too long to shutdown
systemd.services."decky-loader".serviceConfig.TimeoutStopSec = "5";
# Misc Packages
environment.systemPackages = [
pkgs.steam-rom-manager
self.packages.${pkgs.system}.protonhax
# FIXME:Ryujinx ACNH crashes on OpenGL AND Vulkan
# https://github.com/Ryujinx/Ryujinx/issues/6993
# https://github.com/Ryujinx/Ryujinx/issues/6708
self.packages.${pkgs.system}.yuzu
];
}

View file

@ -1659,6 +1659,22 @@
"type": "github"
}
},
"protonhax-src": {
"flake": false,
"locked": {
"lastModified": 1713046416,
"narHash": "sha256-+saVvriwU6gu9pRaV3mVud8i2FXZ/o28K3iBmaUGDig=",
"owner": "jcnils",
"repo": "protonhax",
"rev": "449ce8cd2a86034499fcea1cba249ad79c93fdeb",
"type": "github"
},
"original": {
"owner": "jcnils",
"repo": "protonhax",
"type": "github"
}
},
"root": {
"inputs": {
"Hyprspace": "Hyprspace",
@ -1707,6 +1723,7 @@
"pcsd": "pcsd",
"piper-src": "piper-src",
"pokemon-colorscripts-src": "pokemon-colorscripts-src",
"protonhax-src": "protonhax-src",
"secrets": "secrets",
"sioyek-theme-src": "sioyek-theme-src",
"sops-nix": "sops-nix_2",

View file

@ -275,6 +275,12 @@
repo = "pokemon-colorscripts";
type = "gitlab";
};
protonhax-src = {
flake = false;
owner = "jcnils";
repo = "protonhax";
type = "github";
};
secrets = {
inputs.nixpkgs.follows = "nixpkgs";
type = "git";

View file

@ -216,6 +216,10 @@ let
owner = "gjsify";
repo = "ts-for-gir";
}
{
owner = "jcnils";
repo = "protonhax";
}
# MPV scripts
{

View file

@ -19,6 +19,11 @@
inherit mkVersion;
};
protonhax = pkgs.callPackage ./protonhax {
inherit (inputs) protonhax-src;
inherit mkVersion;
};
repl = pkgs.callPackage ./repl {};
trash-d = pkgs.callPackage ./trash-d {

View file

@ -0,0 +1,16 @@
{
mkVersion,
protonhax-src,
stdenv,
...
}:
stdenv.mkDerivation {
pname = "protonhax";
version = mkVersion protonhax-src;
src = protonhax-src;
installPhase = ''
install -Dt $out/bin -m755 protonhax
'';
}