use jovian-nixos + fixup niri display session handling
This commit is contained in:
parent
236cb914c5
commit
4e46b7fd3a
@ -6,6 +6,7 @@
|
||||
system,
|
||||
hostname,
|
||||
inputs,
|
||||
niri-package,
|
||||
...
|
||||
}:
|
||||
{
|
||||
@ -33,6 +34,9 @@
|
||||
|
||||
services.kmscon.enable = true;
|
||||
|
||||
# Add niri to display manager session packages
|
||||
services.displayManager.sessionPackages = [ niri-package ];
|
||||
|
||||
# Gamescope configuration for Steam Deck-like experience
|
||||
programs = {
|
||||
gamescope = {
|
||||
@ -45,26 +49,6 @@
|
||||
};
|
||||
};
|
||||
|
||||
services.greetd = {
|
||||
enable = true;
|
||||
settings = {
|
||||
default_session = {
|
||||
command = "${lib.getExe pkgs.tuigreet} --sessions /etc/xdg/wayland-sessions/ --time";
|
||||
user = username;
|
||||
};
|
||||
terminal.vt = lib.mkForce 2;
|
||||
};
|
||||
};
|
||||
|
||||
environment.etc."xdg/wayland-sessions/niri-session.desktop".text = ''
|
||||
[Desktop Entry]
|
||||
Name=Niri Session
|
||||
Comment=Niri Wayland compositor
|
||||
Exec=niri-session
|
||||
Type=Application
|
||||
DesktopNames=niri
|
||||
'';
|
||||
|
||||
system.activationScripts = {
|
||||
# FIX: https://github.com/NixOS/nix/issues/2982
|
||||
"profile-channel-dummy".text = ''
|
||||
@ -97,6 +81,9 @@
|
||||
];
|
||||
};
|
||||
|
||||
# allow unfree packages for jovian-nixos
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
# kernel options
|
||||
boot = {
|
||||
kernelPackages = pkgs.linuxPackages_latest;
|
||||
|
||||
@ -25,26 +25,4 @@
|
||||
goverlay
|
||||
yad
|
||||
];
|
||||
|
||||
# Create steam session script
|
||||
environment.etc."steam-session-greetd".source = pkgs.writeShellScript "steam-session-greetd" ''
|
||||
export STEAM_RUNTIME=1
|
||||
export SDL_VIDEODRIVER=wayland
|
||||
export QT_QPA_PLATFORM=wayland
|
||||
export GDK_BACKEND=wayland
|
||||
export XDG_CURRENT_DESKTOP=Steam
|
||||
export XDG_SESSION_TYPE=wayland
|
||||
exec ${pkgs.gamescope}/bin/gamescope --adaptive-sync --hdr-enabled --rt --steam -- ${pkgs.steam}/bin/steam -pipewire-dmabuf -tenfoot
|
||||
'';
|
||||
|
||||
# Create system-wide session files
|
||||
environment.etc."xdg/wayland-sessions/steam-session.desktop".text = ''
|
||||
[Desktop Entry]
|
||||
Name=Steam Session
|
||||
Comment=Steam Deck-like gaming session with gamescope
|
||||
Exec=/etc/steam-session-greetd
|
||||
Type=Application
|
||||
DesktopNames=steam
|
||||
'';
|
||||
|
||||
}
|
||||
|
||||
@ -34,4 +34,25 @@
|
||||
# disable framework kernel module
|
||||
# https://github.com/NixOS/nixos-hardware/issues/1330
|
||||
hardware.framework.enableKmod = false;
|
||||
|
||||
# Greetd display manager
|
||||
services.greetd = {
|
||||
enable = true;
|
||||
settings = {
|
||||
default_session = {
|
||||
command = "${lib.getExe pkgs.tuigreet} --sessions /etc/xdg/wayland-sessions/ --time";
|
||||
user = username;
|
||||
};
|
||||
terminal.vt = lib.mkForce 2;
|
||||
};
|
||||
};
|
||||
|
||||
environment.etc."xdg/wayland-sessions/niri-session.desktop".text = ''
|
||||
[Desktop Entry]
|
||||
Name=Niri Session
|
||||
Comment=Niri Wayland compositor
|
||||
Exec=niri-session
|
||||
Type=Application
|
||||
DesktopNames=niri
|
||||
'';
|
||||
}
|
||||
|
||||
@ -18,6 +18,7 @@
|
||||
inputs.nixos-hardware.nixosModules.common-cpu-amd-zenpower
|
||||
inputs.impermanence.nixosModules.impermanence
|
||||
inputs.disko.nixosModules.disko
|
||||
inputs.jovian-nixos.nixosModules.default
|
||||
];
|
||||
|
||||
fileSystems."/media/games" = {
|
||||
@ -58,4 +59,17 @@
|
||||
systemd.services.lactd.wantedBy = [ "multi-user.target" ];
|
||||
|
||||
systemd.services.lactd.serviceConfig.ExecStartPre = "${lib.getExe pkgs.bash} -c \"sleep 3s\"";
|
||||
|
||||
jovian = {
|
||||
devices.steamdeck.enable = false;
|
||||
steam = {
|
||||
enable = true;
|
||||
autoStart = true;
|
||||
desktopSession = "niri";
|
||||
user = username;
|
||||
};
|
||||
};
|
||||
|
||||
# Disable gamescope from common.nix to avoid conflict with jovian-nixos
|
||||
programs.gamescope.enable = lib.mkForce false;
|
||||
}
|
||||
|
||||
44
flake.lock
generated
44
flake.lock
generated
@ -186,6 +186,27 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"jovian-nixos": {
|
||||
"inputs": {
|
||||
"nix-github-actions": "nix-github-actions",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1763640802,
|
||||
"narHash": "sha256-TAsO9p2cF/Wm6sYWPqvC/mBzMBzG119XLB6T0XwU2NU=",
|
||||
"owner": "Jovian-Experiments",
|
||||
"repo": "Jovian-NixOS",
|
||||
"rev": "4b1c28efe3b31e00c427e651b398d8251dd29812",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "Jovian-Experiments",
|
||||
"repo": "Jovian-NixOS",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"lanzaboote": {
|
||||
"inputs": {
|
||||
"crane": "crane",
|
||||
@ -309,6 +330,28 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nix-github-actions": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"jovian-nixos",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1729697500,
|
||||
"narHash": "sha256-VFTWrbzDlZyFHHb1AlKRiD/qqCJIripXKiCSFS8fAOY=",
|
||||
"owner": "zhaofengli",
|
||||
"repo": "nix-github-actions",
|
||||
"rev": "e418aeb728b6aa5ca8c5c71974e7159c2df1d8cf",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "zhaofengli",
|
||||
"ref": "matrix-name",
|
||||
"repo": "nix-github-actions",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixos-hardware": {
|
||||
"locked": {
|
||||
"lastModified": 1762847253,
|
||||
@ -371,6 +414,7 @@
|
||||
"emacs-overlay": "emacs-overlay",
|
||||
"home-manager": "home-manager",
|
||||
"impermanence": "impermanence",
|
||||
"jovian-nixos": "jovian-nixos",
|
||||
"lanzaboote": "lanzaboote",
|
||||
"niri": "niri",
|
||||
"nix-doom-emacs-unstraightened": "nix-doom-emacs-unstraightened",
|
||||
|
||||
10
flake.nix
10
flake.nix
@ -60,6 +60,11 @@
|
||||
url = "github:serokell/deploy-rs";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
jovian-nixos = {
|
||||
url = "github:Jovian-Experiments/Jovian-NixOS";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
};
|
||||
|
||||
outputs =
|
||||
@ -70,6 +75,7 @@
|
||||
nixos-hardware,
|
||||
home-manager,
|
||||
deploy-rs,
|
||||
jovian-nixos,
|
||||
...
|
||||
}@inputs:
|
||||
let
|
||||
@ -79,6 +85,7 @@
|
||||
"mreow"
|
||||
"yarn"
|
||||
];
|
||||
niri-package = inputs.niri.packages.${system}.niri-unstable;
|
||||
in
|
||||
{
|
||||
formatter.${system} = nixpkgs.legacyPackages.${system}.nixfmt-rfc-style;
|
||||
@ -93,6 +100,7 @@
|
||||
inputs
|
||||
username
|
||||
hostname
|
||||
niri-package
|
||||
;
|
||||
};
|
||||
modules = [
|
||||
@ -103,7 +111,7 @@
|
||||
# home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.extraSpecialArgs = {
|
||||
inherit inputs hostname username;
|
||||
inherit inputs hostname username niri-package;
|
||||
homeDirectory = "/home/${username}";
|
||||
stateVersion = config.system.stateVersion;
|
||||
};
|
||||
|
||||
@ -3,6 +3,7 @@
|
||||
pkgs,
|
||||
lib,
|
||||
inputs,
|
||||
niri-package,
|
||||
...
|
||||
}:
|
||||
let
|
||||
@ -22,7 +23,7 @@ in
|
||||
];
|
||||
|
||||
programs.niri = {
|
||||
package = pkgs.niri-unstable;
|
||||
package = niri-package;
|
||||
settings = {
|
||||
prefer-no-csd = true;
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user