Files
Olympus/home-manager/programs/hyprland/default.nix
2025-08-30 13:22:25 -05:00

60 lines
2.4 KiB
Nix

{ config, lib, pkgs, ... }: {
options.homeconfig.hyprland.enable = lib.options.mkOption {
type = lib.types.bool;
default = false;
};
config = lib.mkIf config.homeconfig.hyprland.enable {
home.sessionVariables.NIX_OZONE_WL = "1";
programs.kitty.enable = lib.mkDefault true;
home.packages = with pkgs; [
pyprland
];
home.activation.extraHyprFile = lib.hm.dag.entryAfter ["writeBoundary"] ''
if [[ ! -f ${config.home.homeDirectory}/.config/hypr/otf.conf ] && [ -z ''$DRY_RUN ]]; then
touch ${config.home.homeDirectory}/.config/hypr/otf.conf
fi
'';
wayland.windowManager.hyprland = {
enable = true;
systemd = {
enable = true;
variables = [ "--all" ];
};
extraConfig = (if config.homeconfig.host == "laptop" then ''
monitor=eDP-1,1920x1080@300,0x0,1
bind = CTRL SHIFT, XF86Launch2, exec, if [[ $(hyprctl monitors | grep 0x0 | sed -n -e "s/\t*1920x1080@//" -e "s/.[1234567890]* at 0x0//p") == 300 ]]; then hyprctl keyword monitor eDP-1,1920x1080@60,0x0,1; else hyprctl keyword monitor eDP-1,1920x1080@300,0x0,1; fi
'' else if config.homeconfig.host == "homebox" then ''
monitor=HDMI-A-2,1920x1080@60,0x0,1
monitor=HEADLESS-2,1920x1080@60,0x0,1
exec-once=hyprctl output create headless HEADLESS-2
exec-once=hyprctl keyword monitor HDMI-A-2,disable
exec-once=${pkgs.wayvnc}/bin/wayvnc 0.0.0.0 -o HEADLESS-2
'' else if config.homeconfig.host == "container" then ''
monitor=HEADLESS-2,1920x1080@60,0x0,1
exec-once=hyprctl output create headless HEADLESS-2
exec-once=${pkgs.wayvnc}/bin/wayvnc 0.0.0.0 -o HEADLESS-2
'' else ''
monitor= , prefered, auto, 1
'') + (if config.homeconfig.hyprpanel.enable then ''
bind = , Print, exec, bash -c ${pkgs.hyprpanel}/share/scripts/screenshot.sh"
'' else ''
bind = , Print, exec, grim -g "$(slurp)"
'') + ''
source = ${config.home.homeDirectory}/.config/hypr/main.conf
'';
};
};
}