{ 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; # }; wayland.windowManager.hyprland = { enable = true; settings = { monitor = [ "eDP-1,2256x1504@60,0x0,1.566667" HDMI-A-1,preferred,0x0,1 DP-1,preferred,1080x0,1.5 DP-2,preferred,3640,1 HDMI-A-1,transform,1 ]; workspace = [ 1,monitor:eDP-1,1,default:true 2,monitor:HDMI-A-1,2,default:true 9,monitor:DP-2,9,gapsout:0,default:true 1,monitor:DP-1,1,default:true special,monitor:DP-1,1,default:true ]; input = { 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; }; }; general = { 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; no_cursor_warps = false; }; 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; disable_hyprland_logo = true; }; # example window rules # for windows named/classed as abc and xyz windowrule = opaque,firefox; windowrule = float,dolphin; windowrule = float,nm-tray; windowrule = size 60% 60%,dolphin; ${if !laptop then 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,cliphist list | rofi -p "󱃔 " -dmenu -theme ~/.config/rofi/launchers-git/laptop-rbw-wayland.rasi | cliphist decode | wl-copy; 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,waybar.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 = kwalletd5; exec-once = swww init; exec-once = waybar; exec-once = dunst; exec-once = rbw-agent; # 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 = batmon.lisp; exec-once = /usr/lib/kdeconnectd; exec-once = nm-tray; exec-once = systemctl --user restart jellyfin-mpv-shim; exec-once = systemctl --user restart emacs; exec-once = systemctl --user stop nextcloud-client; exec-once = nextcloud; exec-once = kdeconnect-indicator; exec-once = wl-paste --watch cliphist store; 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 = sleep 3 && swww img /home/chris/pics/wallpapers/nixorange.jpeg -t grow --transition-bezier .14,0,.14,.99; }; }; # 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 # workspace=special,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 { # # 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 # no_cursor_warps=false # } # 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 # disable_hyprland_logo = true # } # # example window rules # # for windows named/classed as abc and xyz # windowrule=opaque,firefox # windowrule=float,dolphin # windowrule=float,nm-tray # 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,cliphist list | rofi -p "󱃔 " -dmenu -theme ~/.config/rofi/launchers-git/laptop-rbw-wayland.rasi | cliphist decode | wl-copy # 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,waybar.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 = kwalletd5 # exec-once = swww init # exec-once = waybar # exec-once = dunst # exec-once = rbw-agent # # 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 = batmon.lisp # exec-once = /usr/lib/kdeconnectd # exec-once = nm-tray # exec-once = systemctl --user restart jellyfin-mpv-shim # exec-once = systemctl --user restart emacs # exec-once = systemctl --user stop nextcloud-client # exec-once = nextcloud # exec-once = kdeconnect-indicator # exec-once = wl-paste --watch cliphist store # 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 = sleep 3 && swww img /home/chris/pics/wallpapers/nixorange.jpeg -t grow --transition-bezier .14,0,.14,.99 # ''; # }; }