# 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 # See https://wiki.hyprland.org/Configuring/Keywords/ for more # Execute your favorite apps at launch # exec-once = waybar & hyprpaper & firefox exec-once = waybar & dunst & wpaperd & suspend.sh & nextcloud & nm-applet & blueman #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 # Some default env vars. env = XCURSOR_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 # For all categories, see https://wiki.hyprland.org/Configuring/Variables/ input { kb_layout = us kb_variant = kb_model = kb_options=caps:escape # kb_options=ctrl:nocaps kb_rules = follow_mouse = 1 touchpad { disable_while_typing = false natural_scroll = true tap-to-click=yes } sensitivity = 0 # -1.0 - 1.0, 0 means no modification. } general { # See https://wiki.hyprland.org/Configuring/Variables/ for more gaps_in = 5 gaps_out = 20 border_size = 2 col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg col.inactive_border = rgba(595959aa) 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 orientation=left inherit_fullscreen=true } decoration { # See https://wiki.hyprland.org/Configuring/Variables/ for more rounding = 3 #multisample_edges = true active_opacity=0.99 inactive_opacity=0.94 fullscreen_opacity=1.0 blur { enabled = true size = 4 passes = 1 } drop_shadow = true shadow_range = 4 shadow_render_power = 3 col.shadow = rgba(1a1a1aee) } animations { enabled = true # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more bezier = myBezier, 0.05, 0.9, 0.1, 1.05 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 } gestures { # See https://wiki.hyprland.org/Configuring/Variables/ for more workspace_swipe = on workspace_swipe_fingers = 3 workspace_swipe_distance = 500 workspace_swipe_invert = true workspace_swipe_min_speed_to_force = 40 } Misc { # enable_swallow = true # swallow_regex = ^(foot)$ } 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:epic-mouse-v1 { # sensitivity = -0.5 #} # Example windowrule v1 # windowrule = float, ^(kitty)$ # Example windowrule v2 # windowrulev2 = float,class:^(kitty)$,title:^(kitty)$ # See https://wiki.hyprland.org/Configuring/Window-Rules/ for more # 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)$ #windowrulev2=workspace 9,class:^(Spotify)$,title:^(Spotify)$ # See https://wiki.hyprland.org/Configuring/Keywords/ for more $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 #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...