nixos-config/modules/wm/hyprland/home.nix

145 lines
4.7 KiB
Nix

#
# Hyprland NixOS & Home manager configuration
#
# flake.nix
# ├─ ./hosts
# │ └─ ./laptop
# │ └─ home.nix
# └─ ./modules
# └─ ./desktop
# └─ ./hyprland
# └─ home.nix *
#
{ config, lib, pkgs, ... }:
{
home.file = {
".config/hypr/hyprland.conf".text = ''
monitor=eDP-1,1920x1080@60,0x0,1
# monitor=HDMI-A-2,1920x1080@60,1920x0,1
# monitor=HDMI-A-1,1280x1028@60,3840x0,1
workspace=eDP-1,1
# workspace=HDMI-A-2,2
# workspace=HDMI-A-1,3
general {
main_mod=SUPER
border_size=4
gaps_in=5
gaps_out=7
col.active_border=0x80ffffff
col.inactive_border=0x66333333
damage_tracking=full # leave it on full unless you hate your GPU and want to make it suffer
layout=dwindle
}
decoration {
rounding=5
multisample_edges=true
active_opacity=1
inactive_opacity=1
fullscreen_opacity=1
blur=false
drop_shadow=false
blur_new_optimizations=true
}
animations {
enabled=true
}
misc {
no_vfr=false
}
input {
kb_layout=us
follow_mouse=1
repeat_delay=250
numlock_by_default=0
force_no_accel=1
sensitivity=0
touchpad {
disable_while_typing=1
natural_scroll=0
}
}
dwindle {
pseudotile=0
}
bind=SUPER,Return,exec,${pkgs.alacritty}/bin/alacritty
bind=SUPER,Q,killactive,
bind=SUPER,Escape,exit,
bind=SUPER,E,exec,${pkgs.pcmanfm}/bin/pcmanfm
bind=SUPER,H,togglefloating,
bind=SUPER,Space,exec,${pkgs.rofi}/bin/rofi -show drun
bind=SUPER,P,pseudo,
bind=SUPER,F,fullscreen,
bind=SUPER,left,movefocus,l
bind=SUPER,right,movefocus,r
bind=SUPER,up,movefocus,u
bind=SUPER,down,movefocus,d
bind=ALT,1,workspace,1
bind=ALT,2,workspace,2
bind=ALT,3,workspace,3
bind=ALT,4,workspace,4
bind=ALT,5,workspace,5
bind=ALT,6,workspace,6
bind=ALT,7,workspace,7
bind=ALT,8,workspace,8
bind=ALT,9,workspace,9
bind=ALT,0,workspace,10
bind=ALT,right,workspace,+1
bind=ALT,left,workspace,-1
bind=ALTSHIFT,1,movetoworkspace,1
bind=ALTSHIFT,2,movetoworkspace,2
bind=ALTSHIFT,3,movetoworkspace,3
bind=ALTSHIFT,4,movetoworkspace,4
bind=ALTSHIFT,5,movetoworkspace,5
bind=ALTSHIFT,6,movetoworkspace,6
bind=ALTSHIFT,7,movetoworkspace,7
bind=ALTSHIFT,8,movetoworkspace,8
bind=ALTSHIFT,9,movetoworkspace,9
bind=ALTSHIFT,0,movetoworkspace,10
bind=ALTSHIFT,right,movetoworkspace,+1
bind=ALTSHIFT,left,movetoworkspace,-1
bind=CTRL,right,resizeactive,20 0
bind=CTRL,left,resizeactive,-20 0
bind=CTRL,up,resizeactive,0 -20
bind=CTRL,down,resizeactive,0 20
bind=,print,exec,${pkgs.flameshot}/bin/flameshot gui
bind=,XF86AudioLowerVolume,exec,${pkgs.pamixer}/bin/pamixer -d 10
bind=,XF86AudioRaiseVolume,exec,${pkgs.pamixer}/bin/pamixer -i 10
bind=,XF86AudioMute,exec,${pkgs.pamixer}/bin/pamixer -t
bind=,XF86AudioMicMute,exec,${pkgs.pamixer}/bin/pamixer --default-source -t
bind=,XF86MonBrightnessDown,exec,${pkgs.light}/bin/light -U 5
bind=,XF86MonBrightnessUP,exec,${pkgs.light}/bin/light -A 5
windowrule=float,^(Rofi)$
windowrule=float,title:^(Picture-in-Picture)$
windowrule=float,title:^(Volume Control)$
exec-once=${pkgs.swaybg}/bin/swaybg -m center -i $HOME/.config/wall
exec-once=${pkgs.waybar}/bin/waybar
exec-once=${pkgs.blueman}/bin/blueman-applet
exec-once=${pkgs.swayidle}/bin/swayidle -w timeout 600 "${pkgs.swaylock}/bin/swaylock -f" timeout 300 "${pkgs.hyprland}/bin/hyprctl dispatch dpms off" resume "${pkgs.hyprland}/bin/hyprctl dispatch dpms on" before-sleep "${pkgs.swaylock}/bin/swaylock -f"
exec-once=dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
exec-once=systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
'';
};
programs.swaylock.settings = {
color = "000000";
image = "$HOME/.config/lockwall";
indicator-caps-lock = true;
show-keyboard-layout = true;
};
services.swayidle = {
enable = false;
events = [
{ event = "before-sleep"; command = "${pkgs.swaylock}/bin/swaylock"; }
{ event = "lock"; command = "${pkgs.swaylock}/bin/swaylock -fF"; }
{ event = "after-resume"; command = "${pkgs.hyprland}/bin/hyprctl dispatch dpms on"; }
];
timeouts = [
{ timeout = 300; command = "${pkgs.swaylock}/bin/swaylock -fF"; }
{ timeout = 600; command = "${pkgs.hyprland}/bin/hyprctl dispatch dpms off"; }
];
};
}