feat(desktop): add the desktop group and Hyprland session (task 0021) #13

Merged
alexion merged 5 commits from task-0021-desktop-group-and-hyprland-session into main 2026-07-22 10:09:37 -04:00
3 changed files with 11 additions and 10 deletions
Showing only changes of commit c0ec330024 - Show all commits

View File

@@ -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.

View File

@@ -50,7 +50,7 @@ in
settings = {
"$mod" = "SUPER";
"$terminal" = "ghostty";
"$terminal" = "alacritty";
input = {
kb_layout = "us";

View File

@@ -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 ];
};
}