nixos-configs/nixos/home/hyprland.nix

91 lines
1.9 KiB
Nix

{ pkgs, config, hyprland, hyprgrass, ags, ... }: let
configDir = (import ../vars.nix).configDir;
symlink = config.lib.file.mkOutOfStoreSymlink;
gset = pkgs.gsettings-desktop-schemas;
polkit = pkgs.plasma5Packages.polkit-kde-agent;
in
{
imports = [
ags.homeManagerModules.default
];
programs.ags = {
enable = true;
package = ags.packages.x86_64-linux.default;
configDir = symlink "${configDir}/ags";
};
wayland.windowManager.hyprland = {
enable = true;
package = hyprland.packages.x86_64-linux.default;
plugins = [
"${hyprgrass.packages.x86_64-linux.default}/lib/libhyprgrass.so"
];
settings = {
env = [
"XDG_DATA_DIRS, ${builtins.concatStringsSep ":" [
"${gset}/share/gsettings-schemas/${gset.name}"
"${pkgs.gtk3}/share/gsettings-schemas/${pkgs.gtk3.name}"
"$XDG_DATA_DIRS"
]}"
"AGS_PATH, ${configDir}/ags/bin"
"HYPR_PATH, ${configDir}/hypr/scripts"
"LOCK_PATH, ${configDir}/gtklock/scripts"
];
exec-once = [ "${polkit}/libexec/polkit-kde-authentication-agent-1" ];
source = [ "~/.config/hypr/main.conf" ];
};
};
xdg.configFile = {
"hypr/main.conf".source = symlink "${configDir}/hypr/main.conf";
"hypr/hyprpaper.conf".source = symlink "${configDir}/hypr/hyprpaper.conf";
};
home.packages = with pkgs; [
# ags
sassc
coloryou
libnotify
playerctl
bluez-tools
brightnessctl
pulseaudio
libinput
## gui
pavucontrol # TODO: replace with ags widget
networkmanagerapplet # TODO: replace with ags widget
blueberry # TODO: replace with ags widget
# Hyprland
hyprpaper
swayidle
lisgd
swayosd
squeekboard
xclip
wl-clipboard
cliphist
## gui
gtklock
wl-color-picker # TODO: add bind for this in hyprland
grim
slurp
swappy
## libs
libayatana-appindicator
xdg-utils
evtest
glib
];
}