diff --git a/configuration.nix b/configuration.nix index e066a14..5abe143 100644 --- a/configuration.nix +++ b/configuration.nix @@ -43,11 +43,12 @@ # Enable the X11 windowing system. services.xserver.enable = true; + programs.hyprland.enable = true; # Enable the GNOME Desktop Environment. - services.xserver.displayManager.gdm.enable = true; + services.xserver.displayManager.gdm.enable = false; services.xserver.desktopManager.gnome.enable = true; - + services.fprintd.enable = true; # Configure keymap in X11 # services.xserver.xkb.layout = "us"; diff --git a/flake.nix b/flake.nix index 779beb9..e80abd6 100644 --- a/flake.nix +++ b/flake.nix @@ -24,8 +24,12 @@ }; in { nixosConfigurations.nix-fw16 = lib.nixosSystem { + specialArgs = { + inherit pkgs-unstable; + }; modules = [ ./configuration.nix + ./greeter.nix nixos-hardware.nixosModules.framework-16-7040-amd home-manager.nixosModules.home-manager { home-manager.useGlobalPkgs = true; diff --git a/greeter.nix b/greeter.nix new file mode 100644 index 0000000..89aefff --- /dev/null +++ b/greeter.nix @@ -0,0 +1,32 @@ +{ config, pkgs, pkgs-unstable, lib, ... }: +let + + tuigreet = "${pkgs-unstable.greetd.tuigreet}/bin/tuigreet"; + hyprland-session = "${pkgs-unstable.hyprland}/share/wayland-sessions"; + + # https://github.com/bytemouse/config/blob/48d9be51a9666c9b62f4b8e84322b9d892ee0aea/modules/gnome.nix#L11 + gnome-script = pkgs.writeShellScriptBin "gnome-script" '' + export XDG_SESSION_TYPE=wayland + ${pkgs.dbus}/bin/dbus-run-session ${pkgs.gnome.gnome-session}/bin/gnome-session + ''; + gnome-desktop = pkgs.makeDesktopItem { + name = "gnome-desktop"; + desktopName = "Gnome Desktop"; + exec = "${gnome-script}/bin/gnome-script"; + terminal = true; + }; + +in { + + services.greetd = { + enable = true; + settings = { + default_session = { + command = "${tuigreet} --time --remember --greeting Hoi! --remember-session --sessions ${hyprland-session}:${gnome-desktop}/share/applications"; + user = "greeter"; + }; + }; + }; + environment.systemPackages = with pkgs-unstable; [ greetd.tuigreet ]; + +} \ No newline at end of file