70 lines
1.5 KiB
Nix
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
|
|
];
|
|
}
|