dotfiles/home/modules/hyprland.nix
Chris Cochrun 25f12159c4 making hyprland work with dpms and turning screens off
This is super necessary because actually turning the screens fully off
seems to disconnect it and leaves swaylock broken sometimes. Other
times I kill swayidle and thus swaylock isn't working and leaves the
computer open to be tampered with.
2023-12-19 09:57:25 -06:00

252 lines
7.9 KiB
Nix

{ config, lib, pkgs, ... }:
let
laptop = builtins.readFile "/etc/hostname" == "syl\n";
in
{
home.file.".config/hypr/hyprpaper.conf" = {
source = if laptop then /home/chris/.dotfiles/.config/hypr/hyprpaper.conf else /home/chris/.dotfiles/.config/hypr/hyprpaper.conf;
};
# home.file.".config/hypr/hyprsome" = {
# source = if laptop then /home/chris/.dotfiles/.config/hypr/hyprsome else /home/chris/.dotfiles/.config/hypr/hyprsome;
# };
home.file.".config/hypr/hyprland.conf" = {
text = ''
monitor=eDP-1,2256x1504@60,0x0,1.5
monitor=HDMI-A-1,preferred,0x0,1
monitor=DP-1,preferred,1080x0,1.5
monitor=DP-2,preferred,3640,1
workspace=1,monitor:eDP-1,1,default:true
workspace=2,monitor:HDMI-A-1,2,default:true
workspace=9,monitor:DP-2,9,gapsout:0,default:true
workspace=1,monitor:DP-1,1,default:true
monitor=HDMI-A-1,transform,1
input {
# kb_layout=
# kb_variant=
# kb_model=
# kb_options=
# kb_rules=
repeat_rate=140
repeat_delay=180
natural_scroll=0
sensitivity=0.75
accel_profile=adaptive
follow_mouse=2
float_switch_override_focus=0
touchpad {
natural_scroll=1
clickfinger_behavior=1
}
}
xwayland {
use_nearest_neighbor = false
# force_zero_scaling = true
}
general {
max_fps=60 # deprecated, unused
# main_mod=SUPER
gaps_in=15
gaps_out=20
border_size=0
col.active_border=0x66ee1111
col.inactive_border=0x66333333
#damage_tracking=full # leave it on full unless you hate your GPU and want to make it suffer
layout=master
}
gestures {
workspace_swipe=true
workspace_swipe_fingers=3
}
decoration {
rounding=18
# multisample_edges=true
active_opacity=0.97
inactive_opacity=0.75
fullscreen_opacity=1.0
blur {
enabled=true
size=10 # minimum 1
passes=3 # minimum 1, more passes = more resource intensive.
new_optimizations=true
ignore_opacity=false
special=false
}
drop_shadow=true
shadow_range=15
shadow_offset=5 5
shadow_scale=0.99
shadow_render_power=1
col.shadow = rgba(000000cc)
dim_inactive=true
dim_strength=0.2
dim_special=0
}
bezier=snapslide,0.07,0.66,0.04,1.02
animations {
enabled=1
animation=windows,1,2,snapslide
# animation=borders,1,10,default
animation=fadeIn,1,2,snapslide
animation=workspaces,1,2,snapslide
animation=specialWorkspace,1,2,snapslide,slidevert
}
dwindle {
pseudotile=0 # enable pseudotiling on dwindle
}
master {
special_scale_factor=0.8
mfact=0.65
new_is_master=false
new_on_top=false
}
# misc:disable_autoreload = true
misc {
focus_on_activate = true
mouse_move_enables_dpms = true
key_press_enables_dpms = true
}
# example window rules
# for windows named/classed as abc and xyz
windowrule=opaque,firefox
windowrule=float,dolphin
windowrule=size 60% 60%,dolphin
${if laptop then "# this is a kaladin space" else "windowrule=workspace 1,mpv"}
windowrule=float,mpv
windowrule=size ${if laptop then "90% 76%" else "85% 85%"},mpv
windowrule=center,mpv
windowrule=opaque,mpv
# windowrule=pin,mpv
windowrule=float,pulsemixer
windowrule=workspace ${if laptop then "2" else "1"},firefox
windowrule=workspace ${if laptop then "1" else "2"},emacs
windowrule=float,btop
windowrule=size 70% 70%,btop
windowrule=center,btop
windowrule=float,lumina
windowrule=size 80% 80%,lumina
windowrule=center,lumina
windowrule=workspace ${if laptop then "1" else "3"},title:presentation-window
# example binds
bind = SUPER,RETURN,exec,alacritty
bind = SUPER,C,killactive,
bind = SUPERSHIFT,Q,exit,
bind = SUPERSHIFT,D,exec,dolphin
bind = SUPERSHIFT,F,togglefloating,
bindr = SUPER,Super_L,exec,/home/chris/bin/launcher.sh
bindr = ALT,Alt_R,exec,/home/chris/bin/window.sh
bind = SUPER,w,exec,/home/chris/bin/window.sh
bind = SUPER,E,exec,/home/chris/bin/emacslof
bind = SUPER,d,exec,emacsclient -c -e '(dired-jump)'
bind = SUPER,v,exec,emacsclient -e '(chris/dired-open-videos)'
bind = SUPER,B,exec,/home/chris/bin/fflof
bind = SUPER,A,exec,alacritty --class pulsemixer -e pulsemixer
bind = SUPERCTRL,i,exec,alacritty --class btop -e btm
bind = ,Print,exec,screenshot
bind = SUPERSHIFT,mouse_down,exec,zoomin in
bind = SUPERSHIFT,mouse_up,exec,zoomin out
bind = SUPER,P,exec,/home/chris/bin/rbw.sh
bind = SUPER,M,fullscreen,1
bind = SUPER,F,fullscreen,0
bind = SUPER,h,movefocus,l
bind = SUPER,l,movefocus,r
bind = SUPER,k,layoutmsg,cycleprev
bind = SUPER,j,layoutmsg,cyclenext
bind = SUPERSHIFT,h,movewindow,l
bind = SUPERSHIFT,l,movewindow,r
bind = SUPERSHIFT,k,layoutmsg,swapprev
bind = SUPERSHIFT,j,layoutmsg,swapnext
bind = SUPERCTRL,l,splitratio,+0.05
bind = SUPERCTRL,h,splitratio,-0.05
bind = SUPERSHIFT,c,centerwindow
bind = ALTCTRL,l,moveintogroup,right
bind = ALTCTRL,h,moveintogroup,left
bind = ALTCTRL,k,moveintogroup,up
bind = ALTCTRL,j,moveintogroup,down
bind = SUPERALT,g,togglegroup
bind = SUPER,1,workspace,1
bind = SUPER,2,workspace,2
bind = SUPER,3,workspace,3
bind = SUPER,4,workspace,4
bind = SUPER,5,workspace,5
bind = SUPER,6,workspace,6
bind = SUPER,7,workspace,7
bind = SUPER,8,workspace,8
bind = SUPER,9,workspace,9
bind = SUPER,0,workspace,10
bind = SUPERALT,l,workspace,m+1
bind = SUPERALT,h,workspace,m-1
bind = SUPERSHIFT,1,movetoworkspace,1
bind = SUPERSHIFT,2,movetoworkspace,2
bind = SUPERSHIFT,3,movetoworkspace,3
bind = SUPERSHIFT,4,movetoworkspace,4
bind = SUPERSHIFT,5,movetoworkspace,5
bind = SUPERSHIFT,6,movetoworkspace,6
bind = SUPERSHIFT,7,movetoworkspace,7
bind = SUPERSHIFT,8,movetoworkspace,8
bind = SUPERSHIFT,9,movetoworkspace,9
bind = SUPERSHIFT,0,movetoworkspace,10
bind = SUPER,o,movewindow,mon:l
bind = SUPER,y,togglespecialworkspace
bind = SUPER,i,movewindow,left
bind = SUPERSHIFT,p,pin
bind = SUPER,n,movetoworkspace,special
bind = SUPERALT,a,movetoworkspace,special:agenda
bind = SUPER,g,togglespecialworkspace,agenda
binde = , XF86AudioMute, exec, pamixer -t
binde = , XF86AudioRaiseVolume, exec, /home/chris/bin/volup
binde = , XF86AudioLowerVolume, exec, /home/chris/bin/voldown
binde = ,F1, exec, pamixer -t
binde = ,F3, exec, /home/chris/bin/volup
binde = ,F2, exec, /home/chris/bin/voldown
binde = , XF86MonBrightnessUp, exec, brightnessctl s +10%
binde = , XF86MonBrightnessDown, exec, brightnessctl s 10%-
bind=SUPERSHIFT,g,exec,eww.sh
bind=SUPERALT,n,exec,eww update rightside=true
bindm=SUPER,mouse:272,movewindow
bindm=SUPER,mouse:273,resizewindow
# Blur waybar
# blurls=gtk-layer-shell
# blurls=notifications
exec-once = swww init
exec-once = dunst
exec-once = /home/chris/bin/startup.sh
exec-once = hyprctl dispatch --batch "splitratio 1; splitration -0.35"
exec-once = dbus-update-activation-environment --systemd --all
exec-once = jellyfin-mpv-shim
exec-once = hyprctl setcursor phinger-cursors-light 24
exec-once = swayidle -w timeout 300 'swaylock -S --effect-blur 20x3 --fade-in 1 --effect-vignette 0.5:1 --grace 60' timeout 600 'hyprctl dispatch dpms off' resume 'hyprctl dispatch dpms on' before-sleep 'swaylock -S --effect-blur 20x3 --effect-vignette 0.5:1'
exec-once = eww open ${if laptop then "bar0" else "bar1"}
exec-once = sleep 3 && swww img /home/chris/pics/wallpapers/nixorange.webp -t grow --transition-bezier .14,0,.14,.99
'';
};
}