diff --git a/home/wayland/default.nix b/home/wayland/default.nix index af9a378..84f761a 100644 --- a/home/wayland/default.nix +++ b/home/wayland/default.nix @@ -1,23 +1,12 @@ { pkgs, + config, inputs, ... -}: let - dbus-hyprland-environment = pkgs.writeTextFile { - name = "dbus-hyprland-environment"; - destination = "/bin/dbus-hyprland-environment"; - executable = true; - text = '' - dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=hyprland - systemctl --user stop pipewire pipewire-media-session xdg-desktop-portal xdg-desktop-portal-wlr - systemctl --user start pipewire wireplumber pipewire-media-session xdg-desktop-portal xdg-desktop-portal-hyprland - ''; - }; -in { +}: { imports = [./services/greetd.nix]; environment = { systemPackages = with pkgs; [ - dbus-hyprland-environment wayland glib grim diff --git a/home/wayland/services/greetd.nix b/home/wayland/services/greetd.nix index 3dd2144..a052737 100644 --- a/home/wayland/services/greetd.nix +++ b/home/wayland/services/greetd.nix @@ -1,12 +1,82 @@ -_: { +{ + pkgs, + inputs, + lib, + ... +}: let + hyprlandGreetdConf = pkgs.writeText "hyprland-greetd-conf.conf" '' + + monitor = HDMI-A-1,disable + monitor = DP-1,disable + monitor = DP-2,2560x1440@144, 0x0, auto + monitor = DP-3,disable + + env = LIBVA_DRIVER_NAME,nvidia + env = XDG_SESSION_TYPE,wayland + env = GBM_BACKEND,nvidia-drm + env = __GLX_VENDOR_LIBRARY_NAME,nvidia + env = WLR_NO_HARDWARE_CURSORS,1 + + exec-once = ${pkgs.dbus}/bin/dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY XDG_CURRENT_DESKTOP HYPRLAND_INSTANCE_SIGNATURE + exec-once = ${lib.getExe pkgs.greetd.regreet}; hyprctl dispatch exit + exec-once = systemctl --user restart xdg-desktop-portal xdg-desktop-portal-hyprland + + windowrulev2 = fullscreen, title:^regreet$ + windowrulev2 = move 0 0, title:^regreet$ + + $mainMod = SUPER + bind = $mainMod, Q, exec, reboot + + input { + kb_layout = us + follow_mouse = 1 + sensitivity = -0.5 + force_no_accel = true + } + + animations { + enabled = false + first_launch_animation = false + } + + misc { + disable_hyprland_logo = true + disable_splash_rendering = true + } + + ''; +in { services.greetd = { enable = true; settings = rec { initial_session = { - command = "Hyprland"; - user = "notoh"; + command = "${lib.getExe inputs.hyprland.packages.${pkgs.system}.default} --config ${hyprlandGreetdConf}"; + user = "greeter"; }; default_session = initial_session; }; }; + programs.regreet = { + enable = true; + settings = { + background.path = "/etc/greetd/frieren.png"; + env = { + SESSION_DIRS = "/etc/greetd/environments"; + }; + terminal = { + vt = 1; + }; + commands = { + reboot = ["systemctl" "reboot"]; + poweroff = ["systemctl" "poweroff"]; + }; + GTK = { + application_prefer_dark_theme = true; + theme_name = "Tokyonight-Dark-BL"; + icon_theme_name = "Papirus-Dark"; + cursor_theme_name = "Bibata-Modern-Classic"; + font_name = "Noto Sans 11"; + }; + }; + }; }