67 lines
3.1 KiB
Nix
67 lines
3.1 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 ]]; then
|
|
touch ${config.home.homeDirectory}/.config/hypr/otf.conf
|
|
fi
|
|
|
|
if [[ ! -f ${config.home.homeDirectory}/.config/background ]]; then
|
|
cp ${config.home.homeDirectory}/Pictures/Wallpaper/bluescape.jpg ${config.home.homeDirectory}/.config/background
|
|
chmod 600 ${config.home.homeDirectory}/.config/background
|
|
fi
|
|
'';
|
|
|
|
|
|
wayland.windowManager.hyprland = {
|
|
|
|
enable = true;
|
|
|
|
systemd = {
|
|
enable = true;
|
|
variables = [ "--all" ];
|
|
};
|
|
|
|
extraConfig = (if config.homeconfig.host == "laptop" then ''
|
|
bind = CTRL SHIFT, XF86Launch2, exec, bash -c 'if [[ $(hyprctl monitors | grep 0x0 | sed -n -e "s/\t*1920x1080@//" -e "s/.[1234567890]* at 0x0//p") == 300 ]]; then pkexec --user root /nix/var/nix/profiles/system/bin/switch-to-configuration switch; else pkexec --user root /nix/var/nix/profiles/system/specialisation/docked/bin/switch-to-configuration switch; fi'
|
|
bind = CTRL, 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
|
|
|
|
exec-shutdown = if [[ -f ${config.home.homeDirectory}/.local/share/calcurse/.calcurse.pid ]]; then rm ${config.home.homeDirectory}/.local/share/calcurse/.calcurse.pid; fi
|
|
'';
|
|
|
|
};
|
|
};
|
|
}
|