greetd: extract greetd config
This commit is contained in:
parent
47e3cc536c
commit
25c8833ec3
|
@ -95,6 +95,9 @@
|
|||
./system/configuration.nix
|
||||
./system/secrets.nix
|
||||
./system/specialisation.nix
|
||||
./system/greetd.nix
|
||||
{ login-manager.greetd.enable = desktop == "sway" || desktop == "hyprland"; }
|
||||
|
||||
inputs.agenix.nixosModules.default
|
||||
inputs.hyprland.nixosModules.default
|
||||
inputs.dzgui-nix.nixosModules.default
|
||||
|
@ -109,7 +112,7 @@
|
|||
# arguments to home.nix
|
||||
home-manager.extraSpecialArgs = { inherit inputs; };
|
||||
}
|
||||
] ++ lib.optional (desktop == "sway") ./system/sway.nix
|
||||
]
|
||||
++ lib.optional (desktop == "gnome") ./system/gnome.nix
|
||||
++ lib.optional (desktop == "kde") ./system/kde.nix;
|
||||
in
|
||||
|
|
86
system/greetd.nix
Normal file
86
system/greetd.nix
Normal file
|
@ -0,0 +1,86 @@
|
|||
{ lib, pkgs, config, ... }:
|
||||
let
|
||||
inherit (pkgs.uservars) key accent font theme desktop;
|
||||
|
||||
cfg = config.login-manager.greetd;
|
||||
in
|
||||
{
|
||||
options.login-manager.greetd = {
|
||||
enable = lib.mkEnableOption "Use greetd as login manager";
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
|
||||
# Enable the X11 windowing system.
|
||||
services.xserver.enable = false;
|
||||
|
||||
# enable sway window manager
|
||||
programs.sway = {
|
||||
enable = true;
|
||||
wrapperFeatures.gtk = true;
|
||||
};
|
||||
|
||||
services.dbus.enable = true;
|
||||
programs.wshowkeys.enable = true;
|
||||
xdg.portal = {
|
||||
enable = true;
|
||||
wlr.enable = true;
|
||||
# Always pick the first monitor, this is fine since I only ever use a single monitor
|
||||
wlr.settings.screencast.chooser_type = "none";
|
||||
# gtk portal needed to make gtk apps happy
|
||||
extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
|
||||
};
|
||||
services.greetd =
|
||||
let
|
||||
greetd_main_script = pkgs.writeShellScriptBin "main" ''
|
||||
${pkgs.dbus-sway-environment}/bin/dbus-sway-environment
|
||||
export XDG_CURRENT_DESKTOP=sway GTK_THEME="${theme.gtk_theme}" XCURSOR_THEME="${theme.cursor_theme}"
|
||||
${pkgs.greetd.gtkgreet}/bin/gtkgreet -l -c ${desktop}
|
||||
swaymsg exit
|
||||
'';
|
||||
swayConfig = pkgs.writeText "greetd-sway-config" ''
|
||||
# `-l` activates layer-shell mode. Notice that `swaymsg exit` will run after gtkgreet.
|
||||
exec "${greetd_main_script}/bin/main"
|
||||
bindsym Mod4+shift+e exec swaynag \
|
||||
-t warning \
|
||||
-m 'What do you want to do?' \
|
||||
-b 'Poweroff' 'systemctl poweroff' \
|
||||
-b 'Reboot' 'systemctl reboot'
|
||||
input "*" {
|
||||
repeat_delay 200
|
||||
repeat_rate 30
|
||||
xkb_layout us(colemak)
|
||||
xkb_numlock enabled
|
||||
xkb_options lv3:lsgt_switch,grp:shifts_toggle
|
||||
}
|
||||
'';
|
||||
in
|
||||
{
|
||||
enable = true;
|
||||
settings = {
|
||||
initial_session = {
|
||||
command = "${pkgs.sway}/bin/sway";
|
||||
user = "lelgenio";
|
||||
};
|
||||
default_session = {
|
||||
command = "${pkgs.sway}/bin/sway --config ${swayConfig}";
|
||||
};
|
||||
};
|
||||
};
|
||||
environment.systemPackages = with pkgs; [
|
||||
sway
|
||||
swaylock
|
||||
swayidle
|
||||
|
||||
wayland
|
||||
pkgs.xdg-desktop-portal
|
||||
pkgs.xdg-desktop-portal-wlr
|
||||
|
||||
## Theme
|
||||
capitaine-cursors
|
||||
bibata-cursors
|
||||
orchis_theme_compact
|
||||
papirus_red
|
||||
];
|
||||
};
|
||||
}
|
|
@ -1,77 +0,0 @@
|
|||
{ pkgs, ... }:
|
||||
let
|
||||
inherit (pkgs.uservars) key accent font theme;
|
||||
in
|
||||
{
|
||||
|
||||
# Enable the X11 windowing system.
|
||||
services.xserver.enable = false;
|
||||
|
||||
# enable sway window manager
|
||||
programs.sway = {
|
||||
enable = true;
|
||||
wrapperFeatures.gtk = true;
|
||||
};
|
||||
services.dbus.enable = true;
|
||||
programs.wshowkeys.enable = true;
|
||||
xdg.portal = {
|
||||
enable = true;
|
||||
wlr.enable = true;
|
||||
# Always pick the first monitor, this is fine since I only ever use a single monitor
|
||||
wlr.settings.screencast.chooser_type = "none";
|
||||
# gtk portal needed to make gtk apps happy
|
||||
extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
|
||||
};
|
||||
services.greetd =
|
||||
let
|
||||
greetd_main_script = pkgs.writeShellScriptBin "main" ''
|
||||
${pkgs.dbus-sway-environment}/bin/dbus-sway-environment
|
||||
export XDG_CURRENT_DESKTOP=sway GTK_THEME="${theme.gtk_theme}" XCURSOR_THEME="${theme.cursor_theme}"
|
||||
${pkgs.greetd.gtkgreet}/bin/gtkgreet -l -c sway
|
||||
swaymsg exit
|
||||
'';
|
||||
swayConfig = pkgs.writeText "greetd-sway-config" ''
|
||||
# `-l` activates layer-shell mode. Notice that `swaymsg exit` will run after gtkgreet.
|
||||
exec "${greetd_main_script}/bin/main"
|
||||
bindsym Mod4+shift+e exec swaynag \
|
||||
-t warning \
|
||||
-m 'What do you want to do?' \
|
||||
-b 'Poweroff' 'systemctl poweroff' \
|
||||
-b 'Reboot' 'systemctl reboot'
|
||||
input "*" {
|
||||
repeat_delay 200
|
||||
repeat_rate 30
|
||||
xkb_layout us(colemak)
|
||||
xkb_numlock enabled
|
||||
xkb_options lv3:lsgt_switch,grp:shifts_toggle
|
||||
}
|
||||
'';
|
||||
in
|
||||
{
|
||||
enable = true;
|
||||
settings = {
|
||||
initial_session = {
|
||||
command = "${pkgs.sway}/bin/sway";
|
||||
user = "lelgenio";
|
||||
};
|
||||
default_session = {
|
||||
command = "${pkgs.sway}/bin/sway --config ${swayConfig}";
|
||||
};
|
||||
};
|
||||
};
|
||||
environment.systemPackages = with pkgs; [
|
||||
sway
|
||||
swaylock
|
||||
swayidle
|
||||
|
||||
wayland
|
||||
pkgs.xdg-desktop-portal
|
||||
pkgs.xdg-desktop-portal-wlr
|
||||
|
||||
## Theme
|
||||
capitaine-cursors
|
||||
bibata-cursors
|
||||
orchis_theme_compact
|
||||
papirus_red
|
||||
];
|
||||
}
|
Loading…
Reference in a new issue