nixcfg/homeManagerModules/desktopEnv/hypr/default.nix

125 lines
3.2 KiB
Nix

{ pkgs, lib, config, ... }: {
options = {
desktopEnv.hyprland.enable =
lib.mkEnableOption "Enables hyprland with extra apps.";
};
config = lib.mkIf config.desktopEnv.hyprland.enable {
# Basic apps needed to run a hyprland desktop.
guiApps.waybar.enable = lib.mkDefault true;
guiApps.mako.enable = lib.mkDefault true;
guiApps.fuzzel.enable = lib.mkDefault true;
guiApps.alacritty.enable = lib.mkDefault true;
# Packages that should be installed to the user profile.
home.packages = with pkgs; [
brightnessctl
evince
hyprcursor
hypridle
hyprland-protocols
hyprlock
hyprnome
hyprpaper
hyprshade
hyprshot
playerctl
pyprland
xdg-desktop-portal-hyprland
xfce.exo
xfce.ristretto
xfce.thunar
xfce.thunar-archive-plugin
xfce.thunar-media-tags-plugin
xfce.thunar-volman
xfce.tumbler
xfce.xfce4-settings
xfce.xfce4-taskmanager
xfce.xfconf
];
services.gpg-agent.enable = true;
wayland.windowManager.hyprland = {
enable = true;
extraConfig = builtins.readFile ./hyprland.conf;
};
xdg.configFile."hypr/hypridle.conf".source = ./hypridle.conf;
xdg.configFile."hypr/hyprlock.conf".source = ./hyprlock.conf;
xdg.configFile."hypr/hyprpaper.conf".source = ./hyprpaper.conf;
xdg.configFile."hypr/wallpapers/greenCity.jpg".source =
./wallpapers/greenCity.jpg;
xdg.configFile."hypr/wallpapers/jr-korpa-9XngoIpxcEo-unsplash.jpg".source =
./wallpapers/jr-korpa-9XngoIpxcEo-unsplash.jpg;
xdg.configFile."hypr/wallpapers/salty-justice-NOMebOREvtc-unsplash.jpg".source =
./wallpapers/salty-justice-NOMebOREvtc-unsplash.jpg;
xdg.configFile."hypr/shaders/blue-light-filter.glsl".source =
./blue-light-filter.glsl;
xdg.configFile."hypr/hyprshade.toml".source = ./hyprshade.toml;
xdg.configFile."xfce4/helpers.rc".text = ''
TerminalEmulator=alacritty
FileManager=thunar
WebBrowser=firefox
'';
home.pointerCursor = {
gtk.enable = true;
x11.enable = true;
package = pkgs.catppuccin-cursors.frappeDark;
name = "Catppuccin-Frappe-Dark-Cursors";
size = 24;
};
qt = {
enable = true;
platformTheme = "gtk";
style.name = "Catppuccin-Frappe-Compact-Mauve-Dark";
};
gtk = {
enable = true;
theme = {
package = pkgs.catppuccin-gtk.override {
accents = [ "mauve" ];
size = "compact";
variant = "frappe";
tweaks = [ "normal" ];
};
name = "Catppuccin-Frappe-Compact-Mauve-Dark";
};
iconTheme = {
package = pkgs.catppuccin-papirus-folders.override {
flavor = "frappe";
accent = "mauve";
};
name = "Papirus-Dark";
};
font = {
name = "NotoSans Nerd Font Regular";
package = pkgs.nerdfonts.override { fonts = [ "Noto" ]; };
size = 11;
};
};
dconf.settings = {
"org/gnome/desktop/interface" = {
gtk-theme = "Catppuccin-Frappe-Compact-Mauve-Dark";
color-scheme = "prefer-dark";
cursor-theme = "Catppuccin-Frappe-Dark-Cursors";
cursor-size = 24;
};
};
};
}