diff --git a/.claude/tasks/0021-desktop-group-and-hyprland-session.md b/.claude/tasks/0021-desktop-group-and-hyprland-session.md index 55c1b59..b62107e 100644 --- a/.claude/tasks/0021-desktop-group-and-hyprland-session.md +++ b/.claude/tasks/0021-desktop-group-and-hyprland-session.md @@ -52,6 +52,11 @@ Enable the desktop on neogaia. - **Greeter session command.** greetd's `default_session` runs `uwsm start -e -D Hyprland hyprland.desktop`, mirroring the Exec line of the uwsm session the Hyprland package itself ships, so the session goes through the universal Wayland session manager deterministically. +- **Terminal: Alacritty, not Ghostty.** + The spec named Ghostty, but on neogaia's integrated graphics its GTK4 window construction made every launch feel sluggish (~440 ms to map, versus a lightweight terminal's near-instant open), which a head-to-head comparison confirmed. + The terminal is therefore Alacritty, whose OpenGL renderer opens fast on the iGPU. + The choice is easily reversible per host, so a capable host such as zeus could still adopt Ghostty later. + - **Dropped from the plan.** Mouse drag-to-move and drag-to-resize (`bindm`) were removed: they fall outside the task's enumerated keyboard bindings, and `resizeactive`/`movewindow` already cover floating windows from the keyboard. Hardware media/brightness keys (the spec table's `XF86` row) are likewise deferred, since they depend on audio and backlight tooling not yet in scope. diff --git a/modules/desktop/hyprland/hyprland.nix b/modules/desktop/hyprland/hyprland.nix index 6c1d53b..3e7fb9e 100644 --- a/modules/desktop/hyprland/hyprland.nix +++ b/modules/desktop/hyprland/hyprland.nix @@ -50,7 +50,7 @@ in settings = { "$mod" = "SUPER"; - "$terminal" = "ghostty"; + "$terminal" = "alacritty"; input = { kb_layout = "us"; diff --git a/modules/desktop/terminal.nix b/modules/desktop/terminal.nix index ab69acb..e5ca254 100644 --- a/modules/desktop/terminal.nix +++ b/modules/desktop/terminal.nix @@ -1,23 +1,19 @@ { config, lib, + pkgs, ... }: -# Ghostty as the desktop terminal. +# Alacritty as the desktop terminal, a lightweight GPU renderer that opens +# fast on the laptop's integrated graphics. let cfg = config.modules.desktop.terminal; user = config.user.name; in { - options.modules.desktop.terminal.enable = lib.mkEnableOption "Ghostty as the desktop terminal"; + options.modules.desktop.terminal.enable = lib.mkEnableOption "Alacritty as the desktop terminal"; config = lib.mkIf cfg.enable { - home-manager.users.${user}.programs.ghostty = { - enable = true; - - # Reuse a single process, so each window after the first opens instantly - # instead of paying a fresh GTK startup. - settings.gtk-single-instance = true; - }; + home-manager.users.${user}.home.packages = [ pkgs.alacritty ]; }; }