nixos/system/hyprland.nix

87 lines
2 KiB
Nix

{ pkgs, user ? "xenia", inputs, ... }: {
imports = [ ./desktop.nix inputs.hyprland.nixosModules.default ];
environment.systemPackages = with pkgs; [
libsForQt5.polkit-kde-agent
xdg-utils
wlr-randr
hyprpaper
pipewire
wireplumber
wtype
wl-clipboard
grim
slurp
swayimg
pamixer
pavucontrol
playerctl
brightnessctl
];
security.pam.services.swaylock = { };
services = {
blueman.enable = true;
gvfs.enable = true;
tumbler.enable = true;
greetd = {
enable = true;
settings = {
default_session = {
inherit user;
command = "Hyprland";
};
initial_session = {
inherit user;
command = "Hyprland";
};
};
};
};
fonts = {
packages = with pkgs; [
# normal fonts
noto-fonts
noto-fonts-cjk
noto-fonts-emoji
font-awesome
# nerdfonts
(nerdfonts.override { fonts = [ "FiraCode" ]; })
# icon fonts
material-symbols
emacs-all-the-icons-fonts
material-design-icons
weather-icons
vscode-extensions.file-icons.file-icons
];
fontconfig = {
enable = true;
# user defined fonts
# the reason there's Noto Color Emoji everywhere is to override DejaVu's
# B&W emojis that would sometimes show instead of some Color emojis
defaultFonts = {
serif = [ "Noto Serif" "Noto Color Emoji" ];
sansSerif = [ "Noto Sans" "Noto Color Emoji" ];
monospace = [ "FiraCode Nerd Font" "Noto Sans" "Noto Color Emoji" ];
emoji = [ "Noto Color Emoji" ];
};
};
};
xdg.portal = {
enable = true;
extraPortals = with pkgs; [ xdg-desktop-portal-gtk ];
};
programs = {
hyprland = {
enable = true;
package = inputs.hyprland.packages.${pkgs.system}.hyprland;
xwayland = {
enable = true;
hidpi = true;
};
};
thunar = {
enable = true;
plugins = with pkgs.xfce; [ thunar-archive-plugin thunar-volman ];
};
};
}