dotfiles/home/modules/hyprland.nix

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.566667
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
'';
};
}