nixos-configs/nixos/home/hyprland.nix

92 lines
2.2 KiB
Nix

{ pkgs, config, hyprland, hyprgrass, ags, nixpkgs-wayland, ... }: let
waypkgs = nixpkgs-wayland.packages.x86_64-linux;
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 = [
# ags
pkgs.sassc
pkgs.coloryou
pkgs.libnotify
pkgs.playerctl
pkgs.bluez-tools
pkgs.brightnessctl
pkgs.pulseaudio
pkgs.libinput
## gui
pkgs.pavucontrol # TODO: replace with ags widget
pkgs.networkmanagerapplet # TODO: replace with ags widget
pkgs.blueberry # TODO: replace with ags widget
# Hyprland
pkgs.hyprpaper
waypkgs.swayidle
pkgs.lisgd
pkgs.swayosd
pkgs.squeekboard
pkgs.xclip
waypkgs.wl-clipboard
pkgs.cliphist
## gui
pkgs.gtklock
pkgs.wl-color-picker # TODO: add bind for this in hyprland
waypkgs.grim
waypkgs.slurp
pkgs.swappy
## libs
pkgs.libayatana-appindicator
pkgs.xdg-utils
pkgs.evtest
pkgs.glib
];
}