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:
parent
a8c504c39f
commit
9d3a4c6ee0
3 changed files with 652 additions and 0 deletions
69
modules/hyprland.nix
Normal file
69
modules/hyprland.nix
Normal 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;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue