Files
nix-config-ryan4yin/home/linux/desktop/hyprland/values/hyprland.nix
2023-12-24 22:39:27 +08:00

71 lines
2.0 KiB
Nix

{
pkgs,
lib,
hyprland,
nur-ryan4yin,
...
}: {
# NOTE:
# We have to enable hyprland/i3's systemd user service in home-manager,
# so that gammastep/wallpaper-switcher's user service can be start correctly!
# they are all depending on hyprland/i3's user graphical-session
wayland.windowManager.hyprland = {
enable = true;
settings = {
source = "${nur-ryan4yin.packages.${pkgs.system}.catppuccin-hyprland}/themes/mocha.conf";
};
package = hyprland.packages.${pkgs.system}.hyprland;
extraConfig = builtins.readFile ../conf/hyprland.conf;
# gammastep/wallpaper-switcher need this to be enabled.
systemd.enable = true;
};
# NOTE: this executable is used by greetd to start a wayland session when system boot up
# with such a vendor-no-locking script, we can switch to another wayland compositor without modifying greetd's config in NixOS module
home.file.".wayland-session" = {
source = "${pkgs.hyprland}/bin/Hyprland";
executable = true;
};
# hyprland configs, based on https://github.com/notwidow/hyprland
xdg.configFile = {
"hypr/mako" = {
source = ../conf/mako;
recursive = true;
};
"hypr/scripts" = {
source = ../conf/scripts;
recursive = true;
};
"hypr/waybar" = {
source = ../conf/waybar;
recursive = true;
};
"hypr/wlogout" = {
source = ../conf/wlogout;
recursive = true;
};
# music player - mpd
"mpd" = {
source = ../conf/mpd;
recursive = true;
};
};
# allow fontconfig to discover fonts and configurations installed through home.packages
fonts.fontconfig.enable = true;
systemd.user.sessionVariables = {
NIXOS_OZONE_WL = "1"; # for any ozone-based browser & electron apps to run on wayland
MOZ_ENABLE_WAYLAND = "1"; # for firefox to run on wayland
MOZ_WEBRENDER = "1";
# toolkit-specific scale
GDK_SCALE = "2";
XCURSOR_SIZE = "32";
# misc
_JAVA_AWT_WM_NONREPARENTING = "1";
QT_WAYLAND_DISABLE_WINDOWDECORATION = "1";
};
}