50 lines
1.3 KiB
Nix
50 lines
1.3 KiB
Nix
{
|
|
pkgs,
|
|
lib,
|
|
config,
|
|
...
|
|
}:
|
|
with lib;
|
|
let
|
|
gui = with config.global.gpu; enable && session;
|
|
nvidia = with config.global.gpu; type == "nvidia" || type == "prime";
|
|
in
|
|
mkIf gui {
|
|
services.displayManager.sessionPackages = [
|
|
(
|
|
pkgs.writeTextFile {
|
|
name = "sway-session";
|
|
destination = "/share/wayland-sessions/sway.desktop";
|
|
text = ''
|
|
[Desktop Entry]
|
|
Name=Sway
|
|
Comment=An i3-compatible Wayland compositor
|
|
Exec=${
|
|
pkgs.writeTextFile {
|
|
name = "sway-wrapper";
|
|
executable = true;
|
|
text = ''
|
|
#!${pkgs.zsh}/bin/zsh
|
|
SHLVL=0
|
|
for profile in ''${(z)NIX_PROFILES}; do
|
|
fpath+=($profile/share/zsh/site-functions $profile/share/zsh/$ZSH_VERSION/functions $profile/share/zsh/vendor-completions)
|
|
done
|
|
exec sway${if nvidia then " --unsupported-gpu" else ""} 2>&1 >> $XDG_CACHE_HOME/sway
|
|
'';
|
|
checkPhase = ''
|
|
${pkgs.stdenv.shellDryRun} "$target"
|
|
'';
|
|
}
|
|
}
|
|
Type=Application
|
|
'';
|
|
}
|
|
// {
|
|
providedSessions = [ pkgs.sway.meta.mainProgram ];
|
|
}
|
|
)
|
|
];
|
|
|
|
programs.light.enable = true;
|
|
}
|