fix(desktop): switch the terminal from Ghostty to Alacritty
Ghostty's GTK4 window construction made every launch sluggish on neogaia's integrated graphics (~440 ms to map a window), which a head-to-head comparison against Alacritty confirmed. Alacritty's lightweight OpenGL renderer opens fast on the iGPU, so it becomes the terminal on Super+Return. The choice stays reversible per host, so a capable host such as zeus could adopt Ghostty later.
This commit is contained in:
@@ -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.
|
||||
|
||||
@@ -50,7 +50,7 @@ in
|
||||
|
||||
settings = {
|
||||
"$mod" = "SUPER";
|
||||
"$terminal" = "ghostty";
|
||||
"$terminal" = "alacritty";
|
||||
|
||||
input = {
|
||||
kb_layout = "us";
|
||||
|
||||
@@ -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 ];
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user