nix/modules/hyprland/system.nix
2025-11-04 18:56:09 +01:00

70 lines
1.5 KiB
Nix

{ config, pkgs, ... }:
{
# Enable Hyprland
programs.hyprland = {
enable = true;
xwayland.enable = true;
};
# Display manager: greetd + tuigreet
services.greetd = {
enable = true;
settings = {
default_session = {
command = "${pkgs.tuigreet}/bin/tuigreet --time --cmd Hyprland";
user = "greeter";
};
};
};
# XDG portals for screen sharing, file picker, etc.
xdg.portal = {
enable = true;
extraPortals = [
pkgs.xdg-desktop-portal-hyprland
pkgs.xdg-desktop-portal-gtk
];
config.common.default = ["*"];
};
# Configure touchpad settings
services.libinput = {
enable = true;
touchpad = {
naturalScrolling = true;
tapping = false;
disableWhileTyping = true;
};
};
# GNOME Keyring with PAM integration for WiFi password storage
services.gnome.gnome-keyring.enable = true;
security.pam.services.greetd.enableGnomeKeyring = true;
# Input method configuration for Hyprland
i18n.inputMethod = {
enable = true;
type = "fcitx5";
fcitx5.addons = with pkgs; [
fcitx5-rime # Chinese Simplified/Traditional (more powerful than libpinyin)
fcitx5-mozc # Japanese (Romaji)
fcitx5-gtk # GTK integration
];
};
# System packages for Hyprland
environment.systemPackages = with pkgs; [
hyprland
hypridle
hyprlock
hyprpaper
tuigreet
waybar
wofi
networkmanagerapplet
pavucontrol
nwg-displays
swaynotificationcenter
];
}