70 lines
1.5 KiB
Nix
70 lines
1.5 KiB
Nix
{
|
|
options,
|
|
config,
|
|
lib,
|
|
pkgs,
|
|
inputs,
|
|
...
|
|
}:
|
|
with lib;
|
|
with lib.frajul;
|
|
let
|
|
cfg = config.desktop.hyprland;
|
|
inherit (inputs.nix-colors.colorschemes.${builtins.toString config.desktop.colorscheme}) palette;
|
|
in
|
|
{
|
|
options.desktop.hyprland = with types; {
|
|
enable = mkBoolOpt false "Enable or disable the hyprland window manager.";
|
|
};
|
|
|
|
config = mkIf cfg.enable {
|
|
# Desktop additions
|
|
desktop.addons = {
|
|
waybar.enable = true;
|
|
swww.enable = true;
|
|
wofi.enable = true;
|
|
mako.enable = true;
|
|
gtklock.enable = true;
|
|
wlogout.enable = true;
|
|
};
|
|
|
|
apps.foot.enable = true;
|
|
|
|
programs.hyprland.enable = true;
|
|
programs.hyprland.xwayland.enable = true;
|
|
xdg.portal.enable = true;
|
|
|
|
environment.sessionVariables.NIXOS_OZONE_WL = "1"; # Hint electron apps to use wayland
|
|
|
|
environment.systemPackages = with pkgs; [
|
|
grim
|
|
slurp
|
|
swappy
|
|
imagemagick
|
|
|
|
(writeShellScriptBin "screenshot" ''
|
|
grim -g "$(slurp)" - | convert - -shave 1x1 PNG:- | wl-copy
|
|
'')
|
|
(writeShellScriptBin "screenshot-edit" ''
|
|
wl-paste | swappy -f -
|
|
'')
|
|
|
|
pulseaudio
|
|
];
|
|
|
|
# Hyprland configuration files
|
|
home.configFile = {
|
|
"hypr/launch".source = ./launch;
|
|
"hypr/hyprland.conf".source = ./hyprland.conf;
|
|
"hypr/colors.conf" = {
|
|
text = ''
|
|
general {
|
|
col.active_border = 0xff${palette.base0C} 0xff${palette.base0D} 270deg
|
|
col.inactive_border = 0xff${palette.base00}
|
|
}
|
|
'';
|
|
};
|
|
};
|
|
};
|
|
}
|