From 0137e92e0d14b531ca28fe7c5bc3bb2808a9698b Mon Sep 17 00:00:00 2001 From: Miguel Palhas Date: Fri, 27 Jun 2025 17:52:20 +0100 Subject: [PATCH] wip --- home/common/programs/desktop/firefox.nix | 2 +- home/common/programs/hyprland/default.nix | 4 +++ hosts/common/features/greetd.nix | 38 ++++++++++++++++------- hosts/common/features/x11.nix | 19 ++++++------ 4 files changed, 42 insertions(+), 21 deletions(-) diff --git a/home/common/programs/desktop/firefox.nix b/home/common/programs/desktop/firefox.nix index b251910..cf1ad4f 100644 --- a/home/common/programs/desktop/firefox.nix +++ b/home/common/programs/desktop/firefox.nix @@ -56,7 +56,7 @@ profiles = { "dev-edition-default" = { isDefault = true; - extensions = with inputs.firefox-addons.packages.${pkgs.system}; [ + extensions.packages = with inputs.firefox-addons.packages.${pkgs.system}; [ # privacy clearurls decentraleyes diff --git a/home/common/programs/hyprland/default.nix b/home/common/programs/hyprland/default.nix index 7320e7b..66527a1 100644 --- a/home/common/programs/hyprland/default.nix +++ b/home/common/programs/hyprland/default.nix @@ -21,6 +21,10 @@ in hyprlock ]; + systemd.user.services."xdg-desktop-portal-hyprland".serviceConfig = { + ConditionEnvironment = "XDG_SESSION_TYPE=hyprland"; + }; + home.sessionVariables = { ELECTRON_OZONE_PLATFORM_HINT = "auto"; }; diff --git a/hosts/common/features/greetd.nix b/hosts/common/features/greetd.nix index 1a2d754..92debe4 100644 --- a/hosts/common/features/greetd.nix +++ b/hosts/common/features/greetd.nix @@ -1,12 +1,21 @@ -{ inputs, pkgs, ... }: +{ + inputs, + pkgs, + lib, + ... +}: let tuigreet = "${pkgs.greetd.tuigreet}/bin/tuigreet"; hyprland-session = "${pkgs.hyprland}/share/wayland-sessions"; session-dirs = lib.concatStringsSep ":" [ + "${pkgs.hyprland}/share/wayland-sessions" + "${pkgs.gnome-session}/share/xsessions" "${pkgs.hyprland}/share" - "${pkgs.gnome.gnome-session}/share" - "${pkgs.xorg.xinit}/share" + "${pkgs.gnome-session}/share" + "/usr/share/wayland-sessions" + "/usr/share/xsessions" "/usr/share" + "/usr/local/share" ]; in { @@ -25,17 +34,24 @@ in (writeShellScriptBin "greet-launcher" '' export XDG_DATA_DIRS=${session-dirs} exec ${pkgs.greetd.tuigreet}/bin/tuigreet \ - --sessions /usr/share/wayland-sessions:/usr/share/xsessions \ + --sessions ${session-dirs} \ --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 - ''; + environment.etc."greetd/xsession" = { + text = '' + #!/bin/sh + case "$1" in + *wayland*) export XDG_SESSION_TYPE=wayland ;; + *) export XDG_SESSION_TYPE=x11; export DISPLAY=:0 ;; + esac + + exec "$1" + ''; + mode = "0755"; + }; + + security.pam.services.greetd.enable = true; } diff --git a/hosts/common/features/x11.nix b/hosts/common/features/x11.nix index 39e1755..09c6aba 100644 --- a/hosts/common/features/x11.nix +++ b/hosts/common/features/x11.nix @@ -1,16 +1,17 @@ { inputs, pkgs, ... }: { - services.xserver = { - enable = true; - desktopManager.gdm.enable = true; - displayManager.gdm.enable = true; + services.xserver.enable = true; + services.desktopManager.gnome.enable = true; + services.displayManager.gdm.enable = true; - xkb = { - layout = "us"; - variant = ""; - }; - }; + environment.systemPackages = with pkgs; [ + xorg.xhost + xorg.xrandr + xorg.xinit + gnome-session + gnome-shell + ]; xdg = { portal = {