Replaces CachyOS on the OS SSD (Kingston SA400, disko-managed). Dev-data disks (sdc ext4 /mnt/hdd_01, LVM vg_ssd /mnt/ssd_01) stay out of disko and are mounted as plain filesystems so they're never wiped. Desktop split into services/desktop/desktop-hyprland.nix (session: compositor, greeter, audio, portals) and desktop-apps.nix (things darman actually launches, including claude-code — allowlisted alongside the other unfree desktop apps).
37 lines
906 B
Nix
37 lines
906 B
Nix
{ pkgs, ... }:
|
|
|
|
# Hyprland (wayland) desktop: compositor, login manager, audio, portals.
|
|
# Reusable for any host that wants a local GUI session (currently: terra).
|
|
{
|
|
programs.hyprland.enable = true;
|
|
|
|
services.greetd = {
|
|
enable = true;
|
|
settings.default_session.command =
|
|
"${pkgs.tuigreet}/bin/tuigreet --time --cmd Hyprland";
|
|
};
|
|
|
|
# Audio (pipewire replaces pulseaudio/jack).
|
|
security.rtkit.enable = true;
|
|
services.pipewire = {
|
|
enable = true;
|
|
alsa.enable = true;
|
|
pulse.enable = true;
|
|
};
|
|
|
|
# Screen-share / file-picker portals for wayland apps.
|
|
xdg.portal = {
|
|
enable = true;
|
|
extraPortals = [ pkgs.xdg-desktop-portal-hyprland ];
|
|
};
|
|
|
|
hardware.graphics.enable = true; # OpenGL/Vulkan for the compositor + apps
|
|
services.libinput.enable = true;
|
|
|
|
environment.systemPackages = with pkgs; [
|
|
alacritty
|
|
];
|
|
|
|
networking.networkmanager.enable = true;
|
|
}
|