{ config, inputs, lib, pkgs, ... }: { imports = [ inputs.hyprland.homeManagerModules.default ]; config = { programs = { home-manager.enable = true; # let home-manager enable itself git = { enable = true; userName = "jacekpoz"; userEmail = "jacekpoz@cock.li"; }; zsh = { enable = true; shellAliases = { cl = "clear"; cp = "cp -ivr"; mv = "mv -iv"; rm = "trash -v"; l = "ls -A --color=auto"; ll = "exa -lha --git"; untar = "tar -xvf"; untargz = "tar -xzf"; mnt = "udisksctl mount -b"; umnt = "udisksctl unmount -b"; v = "nvim"; kys = "shutdown now"; gpl = "curl https://www.gnu.org/licenses/gpl-3.0.txt -o LICENSE"; agpl = "curl https://www.gnu.org/licenses/agpl-3.0.txt -o LICENSE"; wget = "wget --hsts-file=\"${config.xdg.dataHome}/wget-hsts\""; }; initExtra = '' bindkey '^H' backward-kill-word ''; history = { path = "${config.xdg.dataHome}/zsh/zsh_history"; size = 999999999; extended = true; ignoreSpace = true; }; enableAutosuggestions = true; enableCompletion = true; autocd = false; dotDir = ".config/zsh"; plugins = [ { name = "fast-syntax-highlighting"; file = "fast-syntax-highlighting.plugin.zsh"; src = pkgs.fetchFromGitHub { owner = "zdharma-continuum"; repo = "fast-syntax-highlighting"; rev = "cf318e06a9b7c9f2219d78f41b46fa6e06011fd9"; sha256 = "sha256-RVX9ZSzjBW3LpFs2W86lKI6vtcvDWP6EPxzeTcRZua4="; }; } ]; }; zoxide = { enable = true; enableZshIntegration = true; }; starship = { enable = true; enableZshIntegration = true; settings = { add_newline = false; command_timeout = 1000; line_break = { disabled = true; }; directory = { truncation_length = 3; truncate_to_repo = false; truncation_symbol = ".../"; read_only = ""; }; }; }; waybar = { enable = true; #package = pkgs.waybar.overrideAttrs (oldAttrs: { # mesonFlags = oldAttrs.mesonFlags ++ [ "-Dexperimental=true" ]; #}); settings = { bar = { gtk-layer-shell = true; layer = "top"; modules-left = [ "custom/launcher" "custom/power_profile" "custom/xwayland" "tray" "wlr/workspaces" ]; modules-center = [ "hyprland/window" ]; modules-right = [ "custom/dnd" "backlight" "cava" "pulseaudio" "clock" "battery" "custom/power" ]; pulseaudio = { tooltip = false; scroll-step = "1"; format = " {icon} {volume}%"; format-muted = " 󰸈 {volume}%"; format-icons = { default = ["󰕿" "󰖀" "󰕾"]; }; on-click = "pactl set-sink-mute @DEFAULT_SINK@ toggle"; }; }; }; }; }; home = { username = "jacek"; homeDirectory = "/home/jacek"; packages = with pkgs; [ neofetch git librewolf-wayland firefox-wayland foot keepassxc neovim exa waybar ]; stateVersion = lib.mkDefault "23.11"; }; wayland.windowManager.hyprland = { enable = true; extraConfig = '' #laptop #monitor=eDP-1,2560@1440@165,0x0,1 #workspace=eDP-1,1 #second monitor #monitor=HDMI-A-1,2560x1440@144,2560x0,1 #workspace=HDMI-A-1,11 workspace = 1, monitor: eDP-1 workspace = 2, monitor: eDP-1 workspace = 3, monitor: eDP-1 workspace = 4, monitor: eDP-1 workspace = 5, monitor: eDP-1 workspace = 6, monitor: eDP-1 workspace = 7, monitor: eDP-1 workspace = 8, monitor: eDP-1 workspace = 9, monitor: eDP-1 workspace = 10, monitor: eDP-1 #wsbind = 11, HDMI-a-1 #wsbind = 12, HDMI-a-1 #wsbind = 13, HDMI-a-1 #wsbind = 14, HDMI-a-1 #wsbind = 15, HDMI-a-1 #wsbind = 16, HDMI-a-1 #wsbind = 17, HDMI-a-1 #wsbind = 18, HDMI-a-1 #wsbind = 19, HDMI-a-1 #wsbind = 20, HDMI-a-1 input { kb_layout=pl kb_variant= kb_model= kb_options= kb_rules= follow_mouse=1 touchpad { disable_while_typing=true } } general { sensitivity=1.0 # for mouse cursor gaps_in=5 gaps_out=5 #gaps_in=0 #gaps_out=0 border_size=2 #border_size=1 col.active_border=0xFFCC241D col.inactive_border=0xFF928374 col.group_border_active=0xFF98971A col.group_border=0xFF928374 apply_sens_to_raw=0 # whether to apply the sensitivity to raw input (e.g. used by games where you aim using your mouse) #no_border_on_floating=true } decoration { #rounding=0 rounding=10 blur=1 blur_size=3 blur_passes=2 blur_new_optimizations=1 drop_shadow=1 shadow_range=15 shadow_render_power=2 shadow_ignore_window=1 shadow_offset= 2 4 shadow_scale=1 col.shadow=0xAF282828 } gestures { workspace_swipe=1 workspace_swipe_distance=200 workspace_swipe_invert=1 workspace_swipe_min_speed_to_force=20 workspace_swipe_cancel_ratio=0.5 } bezier=dupa, 0.1, 0.9, 0.1, 1.05 animations { enabled=1 animation=windows,1,4,dupa,popin animation=windowsOut,1,7,dupa,slide animation=border,1,15,default animation=fade,1,10,default animation=workspaces,1,5,dupa,slidevert } dwindle { no_gaps_when_only=1 } misc { enable_swallow=0 swallow_regex=foot focus_on_activate=true vrr=1 animate_manual_resizes=false animate_mouse_windowdragging=false } windowrulev2 = float, class:^(Tor Browser)$ windowrulev2 = float, class:^(foot)$ windowrulev2 = float, class:^(mpv)$ windowrulev2 = float, class:^(imv)$ windowrulev2 = float, class:^(Vieb)$ windowrulev2 = float, title:^(Picture-in-Picture)$ windowrulev2 = float, class:^(code), title: ^(Open*) windowrulev2 = size 70% 70%, class:^(code), title: ^(Open*) windowrulev2 = center, class: ^(code), title: ^(Open*) windowrulev2 = float, class:^(org.keepassxc.KeePassXC)$ windowrulev2 = size 960 670, title:^(ROG Control Center)$ bind = SUPER, RETURN, exec, footclient bind = SUPER, W, exec, librewolf bind = SUPERSHIFT, W, exec, firefox bind = SUPER, Q, killactive bind = SUPER, F, fullscreen, 0 bind = SUPER, M, fullscreen, 1 bind = SUPER, D, exec, ~/.config/rofi/launchers/type-4/launcher.sh bind = SUPER, SPACE, togglefloating, bind = SUPER, C, exec, rofi -show calc -modi calc -no-show-match -no-sort bind = SUPERSHIFT, C, centerwindow bind = SUPER, R, bringactivetotop binde = SUPER, H, exec, hyprsome focus l binde = SUPER, J, exec, hyprsome focus d binde = SUPER, K, exec, hyprsome focus u binde = SUPER, L, exec, hyprsome focus r binde = SUPERCTRL, J, focusmonitor, l binde = SUPERCTRL, K, focusmonitor, r bind = SUPER, 1, exec, hyprsome workspace 1 bind = SUPER, 2, exec, hyprsome workspace 2 bind = SUPER, 3, exec, hyprsome workspace 3 bind = SUPER, 4, exec, hyprsome workspace 4 bind = SUPER, 5, exec, hyprsome workspace 5 bind = SUPER, 6, exec, hyprsome workspace 6 bind = SUPER, 7, exec, hyprsome workspace 7 bind = SUPER, 8, exec, hyprsome workspace 8 bind = SUPER, 9, exec, hyprsome workspace 9 bind = SUPER, 0, exec, hyprsome workspace 10 bind = SUPERSHIFT, 1, exec, hyprsome move 1 bind = SUPERSHIFT, 2, exec, hyprsome move 2 bind = SUPERSHIFT, 3, exec, hyprsome move 3 bind = SUPERSHIFT, 4, exec, hyprsome move 4 bind = SUPERSHIFT, 5, exec, hyprsome move 5 bind = SUPERSHIFT, 6, exec, hyprsome move 6 bind = SUPERSHIFT, 7, exec, hyprsome move 7 bind = SUPERSHIFT, 8, exec, hyprsome move 8 bind = SUPERSHIFT, 9, exec, hyprsome move 9 bindle = , XF86MonBrightnessUp, exec, ~/Scripts/notif_brightness.sh set +5% bindle = , XF86MonBrightnessDown, exec, ~/Scripts/notif_brightness.sh set 5%- bindl = , XF86AudioMedia, exec, playerctl play-pause bindl = , XF86AudioPlay, exec, playerctl play-pause bindl = , XF86AudioStop, exec, playerctl stop bindl = , XF86AudioPrev, exec, playerctl previous bindl = , XF86AudioNext, exec, playerctl next bindle = , XF86AudioRaiseVolume, exec, ~/Scripts/notif_volume.sh -ui 5 bindle = , XF86AudioLowerVolume, exec, ~/Scripts/notif_volume.sh -ud 5 bindl = , XF86AudioMute, exec, ~/Scripts/notif_volume.sh --toggle-mute # https://github.com/n3oney/shadower bind = SUPER, S, exec, grimblast save area - | shadower | tee "$(xdg-user-dir PICTURES)/Screenshots/$(date +'screenshot-%Y%m%d%H%M%S.png')" | wl-copy bind = SUPERSHIFT, S, exec, grimblast save area - | swappy -f - -o - | shadower | tee "$(xdg-user-dir PICTURES)/Screenshots/$(date +'screenshot-%Y%m%d%H%M%S.png')" | wl-copy bind = SUPERSHIFT, R, exec, hyprctl reload bind = SUPER, P, pin bind = , XF86Launch1, exec, rog-control-center binde = , XF86Launch3, exec, asusctl led-mode -n bind = , XF86Launch4, exec, asusctl profile -n; pkill -SIGRTMIN+8 waybar binde = , XF86KbdBrightnessUp, exec, asusctl -n binde = , XF86KbdBrightnessDown, exec, asusctl -p bind = , XF86TouchpadToggle, exec, bind = SUPER, T, exec, grim -g "$(slurp)" -t ppm - | tesseract -l pol - - | wl-copy && notify-send "Copied text: " "\"$(wl-paste)\"" bind = SUPER, SEMICOLON, exec, ~/.config/rofi/powermenu/type-2/powermenu.sh bind = SUPER, X, exec, keepassxc bind = SUPERSHIFT, M, exec, ~/Scripts/man.sh bind = SUPER, E, exec, wl-paste | spd-say -e -w -i 10 bind = SUPERCONTROL, E, exec, wl-paste | spd-say -e -w -i 10 -l pl bind = SUPERSHIFT, E, exec, spd-say -C bind = SUPER, G, togglegroup binde = SUPERSHIFT, G, changegroupactive, f bind = SUPERCONTROL, R, exec, replay-sorcery save bindm = SUPER, mouse:272, movewindow bindm = SUPER, mouse:273, resizewindow binds { pass_mouse_when_bound=0 } exec=killall -9 waybar; waybar exec-once=foot --server exec-once=hyprctl setcursor Bibata-Modern-Classic 24 exec-once=wl-paste --watch cliphist store exec-once=hyprctl dispatch exec "swww init" && sleep 0.5 exec-once=swww img -o eDP-1 ~/wall0.jpg exec-once=swww img -o HDMI-A-1 ~/wall1.jpg exec-once=rog-control-center exec-once=mullvad-vpn exec-once=gammastep-indicator exec-once=sleep 1 && keepassxc exec-once=/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 #exec-once=foot -e nvim ~/todo.md exec-once=nm-applet --indicator exec-once=blueman-applet exec-once=$HOME/.local/share/hyprload/hyprload.sh # no black border on grimblast screenshots layerrule = noanim, ^(selection)$ layerrule = blur, ^(waybar)$ # temporary fix to swaylock screenshoting rofi before locking layerrule = noanim, ^(rofi)$ plugin { csgo-vulkan-fix { res_w = 2560 res_h = 1440 } } ''; }; }; }