################ ### MONITORS ### ################ # See https://wiki.hyprland.org/Configuring/Monitors/ monitor=eDP-1,1920x1080@144,0x0,1.00,transform,0 monitor=HDMI-A-1,1920x1080@144,0x0,1.00,transform,0,mirror,eDP-1 ################### ### MY PROGRAMS ### ################### # See https://wiki.hyprland.org/Configuring/Keywords/ # Set programs that you use #$terminal = kitty #$fileManager = dolphin #$menu = wofi --show drun ################# ### AUTOSTART ### ################# # Autostart necessary processes (like notifications daemons, status bars, etc.) # Or execute your favorite apps at launch like this: # exec-once = waybar & hyprpaper & firefox exec-once = waybar & dunst & wpaperd & suspend.sh & nextcloud & nm-applet & blueman-applet & notion-app #exec-once = dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY #exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY && XDG_CURRENT_DESKTOP=Hyprland exec-once = systemctl --user import-environment DISPLAY WAYLAND_DISPLAY XDG_CURRENT_DESKTOP exec-once = xhost +SI:localuser:root # Source a file (multi-file configs) # source = ~/.config/hypr/myColors.conf ############################# ### ENVIRONMENT VARIABLES ### ############################# # See https://wiki.hyprland.org/Configuring/Environment-variables/ env = XCURSOR_SIZE,24 env = HYPRCURSOR_SIZE,24 #env = LIBVA_DRIVER_NAME,nvidia env = XDG_SESSION_TYPE,wayland #env = GBM_BACKEND,nvidia-drm #env = __GLX_VENDOR_LIBRARY_NAME,nvidia env = WLR_NO_HARDWARE_CURSORS,1 ##################### ### LOOK AND FEEL ### ##################### # Refer to https://wiki.hyprland.org/Configuring/Variables/ general { gaps_in = 5 gaps_out = 20 border_size = 2 # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg col.inactive_border = rgba(595959aa) # Set to true enable resizing windows by clicking and dragging on borders and gaps resize_on_border = false # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on allow_tearing = false layout = master } master { # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more special_scale_factor=0.8 new_on_top=false # no_gaps_when_only=true // config removed add through Workspace rules orientation=left inherit_fullscreen=true } # https://wiki.hyprland.org/Configuring/Variables/#decoration decoration { rounding = 3 #multisample_edges = true # Change transparency of focused and unfocused windows active_opacity=0.99 inactive_opacity=0.94 fullscreen_opacity=1.0 shadow { enabled = true range = 4 render_power = 3 color = rgba(1a1a1aee) } # https://wiki.hyprland.org/Configuring/Variables/#blur blur { enabled = true size = 4 passes = 1 vibrancy = 0.1696 } } animations { #enabled = true enabled = yes, please :) # Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more bezier = myBezier, 0.05, 0.9, 0.1, 1.05 #bezier = easeOutQuint,0.23,1,0.32,1 #bezier = easeInOutCubic,0.65,0.05,0.36,1 #bezier = linear,0,0,1,1 #bezier = almostLinear,0.5,0.5,0.75,1.0 #bezier = quick,0.15,0,0.1,1 animation = windows, 1, 7, myBezier animation = windowsOut, 1, 7, default, popin 80% animation = border, 1, 10, default animation = borderangle, 1, 8, default animation = fade, 1, 7, default animation = workspaces, 1, 6, default #animation = global, 1, 10, default #animation = border, 1, 5.39, easeOutQuint #animation = windows, 1, 4.79, easeOutQuint #animation = windowsIn, 1, 4.1, easeOutQuint, popin 87% #animation = windowsOut, 1, 1.49, linear, popin 87% #animation = fadeIn, 1, 1.73, almostLinear #animation = fadeOut, 1, 1.46, almostLinear #animation = fade, 1, 3.03, quick #animation = layers, 1, 3.81, easeOutQuint #animation = layersIn, 1, 4, easeOutQuint, fade #animation = layersOut, 1, 1.5, linear, fade #animation = fadeLayersIn, 1, 1.79, almostLinear #animation = fadeLayersOut, 1, 1.39, almostLinear #animation = workspaces, 1, 1.94, almostLinear, fade #animation = workspacesIn, 1, 1.21, almostLinear, fade #animation = workspacesOut, 1, 1.94, almostLinear, fade } # https://wiki.hyprland.org/Configuring/Variables/#misc misc { # enable_swallow = true # swallow_regex = ^(foot)$ # force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers # disable_hyprland_logo = false # If true disables the random hyprland logo / anime girl background. :( } ############# ### INPUT ### ############# # https://wiki.hyprland.org/Configuring/Variables/#input input { kb_layout = us kb_variant = kb_model = kb_options=caps:escape # kb_options=ctrl:nocaps kb_rules = follow_mouse = 1 sensitivity = 0 # -1.0 - 1.0, 0 means no modification. touchpad { natural_scroll = true disable_while_typing = false tap-to-click=yes } } # https://wiki.hyprland.org/Configuring/Variables/#gestures gestures { workspace_swipe = on workspace_swipe_fingers = 3 workspace_swipe_distance = 500 workspace_swipe_invert = true workspace_swipe_min_speed_to_force = 40 } binds { workspace_back_and_forth = true allow_workspace_cycles = true # trigger when the switch is toggled bindl=,switch:Lid Switch,exec,swaylock } # Example per-device config # See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more #device { # name = epic-mouse-v1 # sensitivity = -0.5 #} ################### ### KEYBINDINGS ### ################### # See https://wiki.hyprland.org/Configuring/Keywords/ $MOD = SUPER # Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more ############### # Imp Utils # ############### #Terminal bind = $MOD SHIFT, Return, exec, foot bind = $MOD, W, killactive bind = $MOD CTRL SHIFT, Q, exit bind = $MOD, F, togglefloating bind = $MOD, Space, togglefloating bind = $MOD, P, pin # Move to/Toggle scratchpad bind = $MOD SHIFT,S,movetoworkspace,special bind = $MOD,S,togglespecialworkspace, #bindr= $MOD, D, exec, pkill tofi || tofi-run | xargs hyprctl dispatch exec bind = $MOD, F1, exec, pidkillall #rofi bindr = $MOD, D, exec, pkill rofi || rofi -show run bindr = $MOD CTRL, D, exec, pkill rofi || rofi -show drun bind = $MOD, F3, exec, rofi -modi emoji -show emoji -kb-custom-1 Ctrl+C bind = $MOD, X, exec, cliphist list | rofi -dmenu | cliphist decode | wl-copy bind = ALT, L, exec, ~/.scripts/rofi-beats-linux.sh ################ # Applications # ################ ##(Perma Launch) # Launch Brave bind = $MOD, Q, exec, brave bind = $MOD CTRL, Q, exec, brave --incognito bind = $MOD ALT, Q, exec, brave --tor # Launch wa bind = $MOD SHIFT, W, exec, whatsapp-nativefier --no-sandbox #Launch emacs bind = $MOD, E, exec, emacs # Launch ncloud bind = $MOD SHIFT, N, exec, qutebrowser https://ncloud.draconyan.xyz # Launch thunderbird bind = $MOD SHIFT, E, exec, thunderbird # Launch protonmail bind = $MOD ALT, E, exec, qutebrowser https://mail.proton.me/u/0/inbox # Launch teams # bind = $MOD SHIFT, T, exec, qutebrowser https://teams.microsoft.com bind = $MOD SHIFT, T, exec, teams # Launch spotify bind = $MOD SHIFT, M, exec, spotify # Launch discord bind = $MOD SHIFT, D, exec, webcord --enable-features=UseOzonePlatform --ozone-platform=wayland # Launch telegram bind = $MOD CTRL, T, exec, telegram-desktop ##(Temp Launch) # Launch ranger bind = $MOD, R, exec, foot --term xterm-256color -e ranger # Launch pulsemixer bind = $MOD SHIFT, P, exec, foot -e pulsemixer #Launch top bind = $MOD SHIFT, G, exec, foot --term xterm -e gotop bind = $MOD SHIFT, H, exec, foot -e htop bind = $MOD SHIFT, B, exec, foot -e btop ################### # Global Hot-keys # ################### ##screenlock bind = $MOD , L, exec, swaylock #screenshot #bind = ,Print, exec, IMG=pic-full-"$(date +%y-%m-%d--%H-%M-%S)".png && grim "$GRIM_DEFAULT_DIR/""$IMG" && wl-copy < "$GRIM_DEFAULT_DIR/""$IMG" #bind = CTRL,Print, exec, IMG=pic-sel-"$(date +%y-%m-%d--%H-%M-%S)".png && grim -g "$(slurp)" "$GRIM_DEFAULT_DIR/""$IMG" && wl-copy < "$GRIM_DEFAULT_DIR/""$IMG" #bind = ALT ,Print, exec, flameshot gui bind = ,Print, exec, IMG=pic-full-"$(date +%y-%m-%d--%H-%M-%S)".png && grim - | wl-copy && wl-paste > "$GRIM_DEFAULT_DIR/""$IMG" && dunstify "Screenshot of the whole screen taken" "$IMG" -t 1000 # screenshot of whole screen bind = $MOD SHIFT,Print, exec, IMG=pic-sel-"$(date +%y-%m-%d--%H-%M-%S)".png && grim -g "$(slurp)" - | wl-copy && wl-paste > "$GRIM_DEFAULT_DIR/""$IMG" && dunstify "Screenshot of the region taken" "$IMG" -t 1000 # screenshot of a region bind = ALT ,Print, exec, flameshot gui #otherkeyb bind = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle && [[ "$(wpctl get-volume @DEFAULT_AUDIO_SINK@ | grep MUTE)" ]] && dunstify "Mute" "Volume set to 0%" -i volume-xmark -t 1000 -r 1234 #binde = ,XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%+ && dunstify -i volume-high -t 1500 -r 1235 "Volume Changed" "Volume increased by 2%" binde = ,XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%+ && dunstify "Volume Changed" "Volume set to $(volumecurr)" -i volume-high -t 1500 -r 1235 # binde = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%- && dunstify -i volume-low -t 1500 -r 1235 "Volume Changed" "Volume decreased by 2%" binde = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%- && dunstify "Volume Changed" "Volume set to $(volumecurr)" -i volume-low -t 1500 -r 1236 binde = ,XF86MonBrightnessUp, exec, brillo -A 4 && dunstify -u normal -t 3000 -r 90210 -i brightness "$(printf %.0f%% $( brillo -G) )" binde = ,XF86MonBrightnessDown, exec, brillo -U 4 && dunstify -u normal -t 3000 -r 90210 -i brightness "$(printf %.0f%% $( brillo -G) )" #Launch rofi calc mode bind = $MOD, F2 , exec, rofi -show calc -modi calc -no-show-match -no-sort bind = , XF86Calculator, exec, rofi -show calc -modi calc -no-show-match -no-sort #Toggle play/pause in spotify (universal) bind = , XF86AudioPlay, exec, playerctl -p spotify play-pause # Change tracks spotify only bind = , XF86AudioPrev, exec, playerctl -p spotify previous bind = , XF86AudioNext, exec, playerctl -p spotify next #master-stack layout bind = $MOD, Return,layoutmsg, swapwithmaster #fullscreen layout toggle bind= $MOD, U, fullscreen # Move focus with MOD + arrow keys #bind = $MOD, h, movefocus, l #bind = $MOD, l, movefocus, r #bind = $MOD, k, movefocus, u #bind = $MOD, j, movefocus, d # Better performed using cycle bind = $MOD, k, layoutmsg, cycleprev bind = $MOD, j, layoutmsg, cyclenext # Switch workspaces with MOD + [0-9] bind = $MOD, 1, workspace, 1 bind = $MOD, 2, workspace, 2 bind = $MOD, 3, workspace, 3 bind = $MOD, 4, workspace, 4 bind = $MOD, 5, workspace, 5 bind = $MOD, 6, workspace, 6 bind = $MOD, 7, workspace, 7 bind = $MOD, 8, workspace, 8 bind = $MOD, 9, workspace, 9 bind = $MOD, 0, workspace, 10 # Move active window to a workspace with MOD + SHIFT + [0-9] bind = $MOD SHIFT, 1, movetoworkspace, 1 bind = $MOD SHIFT, 2, movetoworkspace, 2 bind = $MOD SHIFT, 3, movetoworkspace, 3 bind = $MOD SHIFT, 4, movetoworkspace, 4 bind = $MOD SHIFT, 5, movetoworkspace, 5 bind = $MOD SHIFT, 6, movetoworkspace, 6 bind = $MOD SHIFT, 7, movetoworkspace, 7 bind = $MOD SHIFT, 8, movetoworkspace, 8 bind = $MOD SHIFT, 9, movetoworkspace, 9 bind = $MOD SHIFT, 0, movetoworkspace, 10 #Switch between recent workspaces bind = $MOD, TAB, workspace, previous # Scroll through existing workspaces with MOD + scroll bind = ALT, tab, workspace, e+1 bind = ALT SHIFT, tab, workspace, e-1 bind = $MOD, mouse_down, workspace, e+1 bind = $MOD, mouse_up, workspace, e-1 # Move/resize windows with MOD + LMB/RMB and dragging bindm = $MOD, mouse:272, movewindow bindm = $MOD, mouse:273, resizewindow # will switch to a submap called resize bind=ALT,R,submap,resize # will start a submap called "resize" submap=resize # sets repeatable binds for resizing the active window binde=$MOD ,h,resizeactive,-10 0 binde=$MOD ,l,resizeactive,10 0 binde=$MOD ,k,resizeactive,0 -10 binde=$MOD ,j,resizeactive,0 10 # use reset to go back to the global submap bind=,escape,submap,reset # will reset the submap, meaning end the current one and return to the global one submap=reset # keybinds further down will be global again... # # ############################## ### WINDOWS AND WORKSPACES ### ############################## # See https://wiki.hyprland.org/Configuring/Window-Rules/ for more # See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules # Example windowrule v1 # windowrule = float, ^(kitty)$ # Example windowrule v2 # windowrulev2 = float,class:^(kitty)$,title:^(kitty)$ # Ignore maximize requests from apps. You'll probably like this. windowrulev2 = suppressevent maximize, class:.* # Spotify does not follow window rules. This is because the client sets its class after the window has opened, thus making it “immune” to windowrules. windowrulev2=workspace 9,class:^(Spotify)$ windowrulev2=opacity 1.0 1.0,class:^(obsidian)$ windowrule = pin,floating,move 1232 615,size 687 467,class:mpv #windowrulev2=workspace 9,class:^(Spotify)$,title:^(Spotify)$ # "Smart gaps" / "No gaps when only" workspace = w[t1], gapsout:0, gapsin:0 workspace = w[tg1], gapsout:0, gapsin:0 workspace = f[1], gapsout:0, gapsin:0 windowrulev2 = bordersize 0, floating:0, onworkspace:w[t1] windowrulev2 = rounding 0, floating:0, onworkspace:w[t1] windowrulev2 = bordersize 0, floating:0, onworkspace:w[tg1] windowrulev2 = rounding 0, floating:0, onworkspace:w[tg1] windowrulev2 = bordersize 0, floating:0, onworkspace:f[1] windowrulev2 = rounding 0, floating:0, onworkspace:f[1] # Fix some dragging issues with XWayland windowrulev2 = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0