feat(desktop): add the desktop group and Hyprland session (task 0021) #13
@@ -52,6 +52,11 @@ Enable the desktop on neogaia.
|
|||||||
- **Greeter session command.**
|
- **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.
|
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.**
|
- **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.
|
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.
|
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 = {
|
settings = {
|
||||||
"$mod" = "SUPER";
|
"$mod" = "SUPER";
|
||||||
"$terminal" = "ghostty";
|
"$terminal" = "alacritty";
|
||||||
|
|
||||||
input = {
|
input = {
|
||||||
kb_layout = "us";
|
kb_layout = "us";
|
||||||
|
|||||||
@@ -1,23 +1,19 @@
|
|||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
lib,
|
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
|
let
|
||||||
cfg = config.modules.desktop.terminal;
|
cfg = config.modules.desktop.terminal;
|
||||||
user = config.user.name;
|
user = config.user.name;
|
||||||
in
|
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 {
|
config = lib.mkIf cfg.enable {
|
||||||
home-manager.users.${user}.programs.ghostty = {
|
home-manager.users.${user}.home.packages = [ pkgs.alacritty ];
|
||||||
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;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user