Swap kitty→foot+zellij (cmux equivalent), nautilus→thunar

- foot: minimal Wayland terminal emulator
- zellij: modern terminal multiplexer (cmux replacement for Linux)
- SUPER+Return → foot, SUPER+Shift+Return → foot+zellij
- thunar: lighter file manager, XFCE-native
This commit is contained in:
Scott Scoble 2026-05-12 20:26:19 -07:00
parent a8c504c39f
commit 9d3a4c6ee0
3 changed files with 652 additions and 0 deletions

69
modules/hyprland.nix Normal file
View file

@ -0,0 +1,69 @@
{ config, pkgs, lib, ... }:
{
# === Wayland + Hyprland ===
programs.hyprland = {
enable = true;
xwayland.enable = true; # For X11 apps (Electron, etc.)
};
# Wayland essentials
environment.sessionVariables.NIXOS_OZONE_WL = "1"; # Force Wayland for Electron
# Security — required for hyprlock
security.pam.services.hyprlock = {};
# Polkit for GUI auth prompts
security.polkit.enable = true;
systemd.user.services.polkit-gnome-authentication-agent-1 = {
description = "polkit-gnome-authentication-agent-1";
wantedBy = [ "graphical-session.target" ];
wants = [ "graphical-session.target" ];
after = [ "graphical-session.target" ];
serviceConfig = {
Type = "simple";
ExecStart = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1";
Restart = "on-failure";
RestartSec = 1;
};
};
# Display manager — greetd with tuigreet for lightweight login
services.greetd = {
enable = true;
settings = {
default_session = {
command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --remember --cmd Hyprland";
user = "greeter";
};
};
};
# XDG portal for Wayland (screensharing, file dialogs)
xdg.portal = {
enable = true;
extraPortals = [ pkgs.xdg-desktop-portal-hyprland ];
config.common.default = "*";
};
# Fonts for Waybar / desktop
fonts.packages = with pkgs; [
font-awesome
(nerdfonts.override { fonts = [ "JetBrainsMono" "FiraCode" ]; })
];
# Audio (pipewire)
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
};
# Bluetooth
hardware.bluetooth.enable = true;
hardware.bluetooth.powerOnBoot = true;
# NetworkManager applet
programs.nm-applet.enable = true;
}