From b5733171e39b73e61eb62fb5a1df0ed93e7db912 Mon Sep 17 00:00:00 2001 From: Miguel Palhas Date: Fri, 27 Jun 2025 16:52:44 +0100 Subject: [PATCH] wip --- home/arrakis/default.nix | 4 --- home/desktop/default.nix | 1 - home/trantor/default.nix | 1 - hosts/arrakis/default.nix | 2 ++ hosts/common/features/greetd.nix | 41 +++++++++++++++++++++++++++++++ hosts/common/features/wayland.nix | 22 ----------------- hosts/common/features/x11.nix | 15 +++-------- hosts/desktop/default.nix | 1 + 8 files changed, 47 insertions(+), 40 deletions(-) create mode 100644 hosts/common/features/greetd.nix diff --git a/home/arrakis/default.nix b/home/arrakis/default.nix index c6e9952..9d2d2c5 100644 --- a/home/arrakis/default.nix +++ b/home/arrakis/default.nix @@ -22,10 +22,6 @@ ./monitors.nix ]; - home.sessionVariables = { - XDG_SESSION_TYPE = "wayland"; - }; - wayland.windowManager.hyprland.settings = { workspace = [ "1, monitor:DP-3" diff --git a/home/desktop/default.nix b/home/desktop/default.nix index 0365f7b..4577d04 100644 --- a/home/desktop/default.nix +++ b/home/desktop/default.nix @@ -27,7 +27,6 @@ home.sessionVariables = { LIBVA_DRIVER_NAME = "nvidia"; - XDG_SESSION_TYPE = "wayland"; GDM_BACKEND = "nvidia-drm"; __GLX_VENDOR_LIBRARY_NAME = "nvidia"; }; diff --git a/home/trantor/default.nix b/home/trantor/default.nix index df54310..5d37d2b 100644 --- a/home/trantor/default.nix +++ b/home/trantor/default.nix @@ -20,7 +20,6 @@ home.sessionVariables = { LIBVA_DRIVER_NAME = "nvidia"; - XDG_SESSION_TYPE = "wayland"; GDM_BACKEND = "nvidia-drm"; __GLX_VENDOR_LIBRARY_NAME = "nvidia"; }; diff --git a/hosts/arrakis/default.nix b/hosts/arrakis/default.nix index ca42098..a6e4aaa 100644 --- a/hosts/arrakis/default.nix +++ b/hosts/arrakis/default.nix @@ -12,6 +12,8 @@ ../common/features/networking.nix ../common/features/intel-graphics.nix ../common/features/wayland.nix + ../common/features/x11.nix + ../common/features/greetd.nix ../common/features/pipewire.nix ../common/features/docker.nix ../common/features/fonts.nix diff --git a/hosts/common/features/greetd.nix b/hosts/common/features/greetd.nix new file mode 100644 index 0000000..1a2d754 --- /dev/null +++ b/hosts/common/features/greetd.nix @@ -0,0 +1,41 @@ +{ inputs, pkgs, ... }: +let + tuigreet = "${pkgs.greetd.tuigreet}/bin/tuigreet"; + hyprland-session = "${pkgs.hyprland}/share/wayland-sessions"; + session-dirs = lib.concatStringsSep ":" [ + "${pkgs.hyprland}/share" + "${pkgs.gnome.gnome-session}/share" + "${pkgs.xorg.xinit}/share" + "/usr/share" + ]; +in +{ + services.greetd = { + enable = true; + settings = { + default_session = { + command = "/run/current-system/sw/bin/greet-launcher"; + user = "greeter"; + }; + }; + }; + + environment.systemPackages = with pkgs; [ + greetd.tuigreet + (writeShellScriptBin "greet-launcher" '' + export XDG_DATA_DIRS=${session-dirs} + exec ${pkgs.greetd.tuigreet}/bin/tuigreet \ + --sessions /usr/share/wayland-sessions:/usr/share/xsessions \ + --remember --time \ + --cmd /etc/greetd/xsession + '') + ]; + + environment.etc."greetd/xsession".text = '' + #!/bin/sh + case "$1" in + *wayland*) export XDG_SESSION_TYPE=wayland ;; + *) export XDG_SESSION_TYPE=x11;; + esac + ''; +} diff --git a/hosts/common/features/wayland.nix b/hosts/common/features/wayland.nix index 35d9ec1..d19d8c4 100644 --- a/hosts/common/features/wayland.nix +++ b/hosts/common/features/wayland.nix @@ -1,31 +1,9 @@ { inputs, pkgs, ... }: -let - tuigreet = "${pkgs.greetd.tuigreet}/bin/tuigreet"; - hyprland-session = "${pkgs.hyprland}/share/wayland-sessions"; -in { - programs.hyprland.enable = true; environment.systemPackages = [ pkgs.wl-clipboard ]; - environment.etc."greetd/sessions/i3.desktop".text = '' - [Desktop Entry] - Name=i3 - Exec=i3 - Type=Application - ''; - - services.greetd = { - enable = true; - settings = { - default_session = { - command = "${tuigreet} --time --remember --remember-session --sessions ${hyprland-session} --xsessions /etc/greetd/sessions/i3.desktop"; - user = "greeter"; - }; - }; - }; - # thumbnail support for images services.tumbler.enable = true; diff --git a/hosts/common/features/x11.nix b/hosts/common/features/x11.nix index 50de8ed..39e1755 100644 --- a/hosts/common/features/x11.nix +++ b/hosts/common/features/x11.nix @@ -1,19 +1,10 @@ { inputs, pkgs, ... }: { - services.displayManager = { - defaultSession = "none+i3"; - }; + services.xserver = { enable = true; - desktopManager = { - xterm.enable = false; - xfce = { - enable = true; - noDesktop = true; - enableXfwm = false; - }; - }; - windowManager.i3.enable = true; + desktopManager.gdm.enable = true; + displayManager.gdm.enable = true; xkb = { layout = "us"; diff --git a/hosts/desktop/default.nix b/hosts/desktop/default.nix index beefa94..43fb630 100644 --- a/hosts/desktop/default.nix +++ b/hosts/desktop/default.nix @@ -12,6 +12,7 @@ ../common/features/nvidia.nix ../common/features/wayland.nix ../common/features/x11.nix + ../common/features/greetd.nix ../common/features/pipewire.nix ../common/features/docker.nix ../common/features/fonts.nix