diff --git a/flake.nix b/flake.nix index 857537d..a754de5 100644 --- a/flake.nix +++ b/flake.nix @@ -48,7 +48,7 @@ rastertokpsl-re = prev.callPackage ./overlays/rastertokpsl-re { }; plymouth = prev.plymouth.overrideAttrs ( final: prev: { - patches = prev.patches ++ [ ]; + patches = prev.patches ++ [ ./overlays/plymouth/drm-close-fb.patch ]; } ); }) diff --git a/hosts/MONSTER/default.nix b/hosts/MONSTER/default.nix index 3ceac82..5107c10 100644 --- a/hosts/MONSTER/default.nix +++ b/hosts/MONSTER/default.nix @@ -68,7 +68,7 @@ printing = { enable = true; drivers = with pkgs; [ - # rastertokpsl-re + rastertokpsl-re ]; }; diff --git a/modules/home-manager/desktops/hyprland/default.nix b/modules/home-manager/desktops/hyprland/default.nix index f10f82a..f0494c6 100644 --- a/modules/home-manager/desktops/hyprland/default.nix +++ b/modules/home-manager/desktops/hyprland/default.nix @@ -15,7 +15,7 @@ kb_variant = osConfig.services.xserver.xkb.variant; }; bind = [ - "SUPER,Q,killactive" + "SUPER,C,killactive" "SUPER,P,togglefloating," "SUPER,P,pin," "SUPER,D,fullscreen,1" diff --git a/modules/nixos/boot/quiet.nix b/modules/nixos/boot/quiet.nix index 6bdf86e..088e58d 100644 --- a/modules/nixos/boot/quiet.nix +++ b/modules/nixos/boot/quiet.nix @@ -1,6 +1,7 @@ { config, lib, + pkgs, username, ... }: @@ -25,6 +26,9 @@ in kernelParams = [ "quiet" + #"fbcon=nodefer" + #"fbcon=map:123" + "rd.udev.log_level=3" "rd.systemd.show_status=false" "udev.log_priority=3" @@ -42,20 +46,61 @@ in }; }; }; - services.greetd.greeterManagesPlymouth = true; - /* - systemd.services = { - plymouth-quit-wait = { - overrideStrategy = "asDropin"; - after = [ "graphical-session.target" ]; - wantedBy = lib.mkForce [ "graphical-session.target" ]; - }; - plymouth-quit = { - overrideStrategy = "asDropin"; - after = [ "graphical-session.target" ]; - wantedBy = lib.mkForce [ "graphical-session.target" ]; - }; + systemd.services = { + plymouth-quit-wait = { + after = lib.mkForce [ ]; + wantedBy = lib.mkForce [ ]; }; - */ + plymouth-quit = { + after = lib.mkForce [ + "graphical.target" + "greetd.service" + ]; + wantedBy = lib.mkForce [ "graphical.target" ]; + serviceConfig = { + ExecStart = [ + "" + "-${pkgs.plymouth}/bin/plymouth quit --retain-splash" + /* + "-${ + (lib.getExe ( + pkgs.writeShellApplication { + name = "plymouth-quit-delayed"; + text = '' + ${pkgs.kbd}/bin/chvt 2; ${pkgs.coreutils}/bin/sleep 1; exec ${pkgs.plymouth}/bin/plymouth quit --retain-splash + ''; + } + )) + }" + */ + ]; + TTYVTDisallocate = true; + }; + /* + serviceConfig = { + Type = "forking"; + ExecStart = [ + "" + (lib.getExe ( + pkgs.writeShellApplication { + name = "plymouth-quit-delayed"; + text = '' + ${pkgs.coreutils}/bin/sleep 5 + ${pkgs.plymouth}/bin/plymouth quit --retain-splash + ''; + } + )) + ]; + }; + /* + after = lib.mkForce [ ]; + wantedBy = lib.mkForce [ ]; + serviceConfig.ExecStart = [ + "-${pkgs.coreutils}/bin/sleep 5" + "-${pkgs.plymouth}/bin/plymouth quit" + ]; + */ + }; + }; }; } diff --git a/modules/nixos/desktops/hyprland.nix b/modules/nixos/desktops/hyprland.nix index 391b873..075ed3e 100644 --- a/modules/nixos/desktops/hyprland.nix +++ b/modules/nixos/desktops/hyprland.nix @@ -26,13 +26,16 @@ in wayland.windowManager.hyprland = { systemd.enable = false; }; - home.sessionVariables = { - NIXOS_OZONE_WL = "1"; - GDK_BACKEND = "wayland,x11,*"; - QT_QPA_PLATFORM = "wayland;xcb"; - QT_WAYLAND_DISABLE_WINDOWDECORATION = "1"; - SDL_VIDEODRIVER = "wayland"; - CLUTTER_BACKEND = "wayland"; + home = { + packages = with pkgs; [ grim ]; + sessionVariables = { + NIXOS_OZONE_WL = "1"; + GDK_BACKEND = "wayland,x11,*"; + QT_QPA_PLATFORM = "wayland;xcb"; + QT_WAYLAND_DISABLE_WINDOWDECORATION = "1"; + SDL_VIDEODRIVER = "wayland"; + CLUTTER_BACKEND = "wayland"; + }; }; xdg.configFile."uwsm/env".source = pkgs.writeText "env" ( lib.strings.concatLines ( @@ -51,7 +54,7 @@ in programs.zsh.initExtraFirst = # sh '' if uwsm check may-start; then - exec uwsm start hyprland-uwsm.desktop > ${homeConfig.xdg.configHome}/uwsm.log 2> ${homeConfig.xdg.configHome}/uwsm.err + exec uwsm start hyprland-uwsm.desktop > ${homeConfig.xdg.configHome}/uwsm.log 2> ${homeConfig.xdg.configHome}/uwsm.err fi ''; */ @@ -62,15 +65,17 @@ in after = [ "network-online.target" ]; wants = [ "network-online.target" ]; }; - greetd.serviceConfig = { - Type = "idle"; - StandardInput = "tty"; - StandardOutput = "journal"; - StandardError = "journal"; - TTYReset = false; - TTYVHangup = false; - TTYVTDisallocate = false; - }; + /* + greetd.serviceConfig = { + Type = "idle"; + StandardInput = "tty"; + StandardOutput = "journal"; + StandardError = "journal"; + TTYReset = "yes"; + TTYVHangup = "no"; + TTYVTDisallocate = "no"; + }; + */ /* "uwsm-display-manager" = { description = "UWSM Display Manager"; @@ -93,19 +98,25 @@ in }; restartIfChanged = false; script = '' - ${pkgs.sudo}/bin/sudo -u ${username} --login uwsm start hyprland-uwsm.desktop + ${pkgs.sudo}/bin/sudo -u ${username} --login ${ + lib.getExe ( + pkgs.writeShellApplication { + name = "start-hyprland"; + text = '' + ${pkgs.kbd}/bin/chvt 2 + exec ${pkgs.util-linux}/bin/agetty -o '-p -f -- \u' --noclear --autologin ${username} %I "$TERM" StandardOutput=null StandardError=journal + ''; + } + ) + } ''; - environment = { - DISPLAY = ":0"; - # XDG_RUNTIME_DIR = "/run/user/$(id -u ${username})"; - }; aliases = [ "display-manager.service" ]; }; */ /* - "getty@tty1" = { - overrideStrategy = "asDropin"; + "hyprtty" = { description = "Start Hyprland"; + conflicts = [ "getty@tty1.service" ]; after = [ "sysinit.target" "initrd-switch-root.service" @@ -122,9 +133,7 @@ in onFailure = [ "emergency.target" ]; serviceConfig.Type = "simple"; preStart = "+${pkgs.coreutils}/bin/rm -f /run/nologin"; - script = '' - -${pkgs.util-linux}/bin/agetty -o '-p -f -- \u' --noclear --autologin ${username} %I $TERM StandardOutput=null StandardError=journal - ''; + script = "-${pkgs.util-linux}/bin/agetty -o '-p -f -- \\u' --noclear --autologin ${username} %I $TERM StandardOutput=null StandardError=journal"; wantedBy = [ "graphical.target" "initrd-switch-root.service" @@ -163,20 +172,49 @@ in */ services = { + seatd = { + enable = true; + user = username; + }; + /* + getty = { + autologinUser = username; + extraArgs = [ "--noclear" ]; + }; + */ + kmscon = { + enable = true; + hwRender = true; + }; greetd = { enable = true; greeterManagesPlymouth = false; - vt = 2; + #vt = 1; settings = { initial_session = { - command = "uwsm start hyprland-uwsm.desktop"; + command = "uwsm start ${pkgs.hyprland}/share/wayland-sessions/hyprland.desktop" # > ${homeConfig.xdg.configHome}/uwsm.log 2> ${homeConfig.xdg.configHome}/uwsm.err" + /* + lib.getExe ( + pkgs.writeShellApplication { + name = "start-hyprland"; + text = '' + chvt 1 + exec uwsm start hyprland-uwsm.desktop > ${homeConfig.xdg.configHome}/uwsm.log 2> ${homeConfig.xdg.configHome}/uwsm.err + ''; + } + ) + */ + ; user = username; }; default_session = { command = "${lib.getExe pkgs.greetd.tuigreet} --asterisks --remember --user-menu --cmd 'uwsm start hyprland-uwsm.desktop'"; user = username; }; - terminal.switch = false; + terminal = { + #vt = lib.mkForce 2; + #switch = false; + }; }; }; dbus = { diff --git a/overlays/rastertokpsl-re/default.nix b/overlays/rastertokpsl-re/default.nix index a908de3..9f5dc5c 100644 --- a/overlays/rastertokpsl-re/default.nix +++ b/overlays/rastertokpsl-re/default.nix @@ -18,6 +18,7 @@ stdenv.mkDerivation { cmake cups ]; + cmakeFlags = [ "-DCMAKE_C_FLAGS=-D_GNU_SOURCE" ]; nativeBuildInputs = [ patchPpdFilesHook ]; installPhase = '' runHook preInstall