# Set programs that you use
$terminal = kitty
$fileManager = dolphin
$emoji = rofi -mode emoji -show emoji -kb-secondary-copy '' -kb-custom-1 Ctrl+c
$menu = ~/.config/rofi/launcher.sh
#$menu = ~/.config/rofi/launchers/type-2/launcher.sh
#$menu = tofi-drun -c ~/.config/tofi/configA --drun-launch=true
$browser = librewolf
$editor = code
$editor-alt = nvim
$colorPicker = hyprpicker

### KEYBINDINGS ###

$mainMod = SUPER # Sets "Windows" key as main modifier

bind = $mainMod, return, exec, $terminal # Launch a terminal
bind = $mainMod, B, exec, $browser # Launch the default browser
bind = $mainMod, C, exec, $editor # Launch Visual Studio Code
bind = $mainMod, N, exec, $terminal $editor-alt # Launch Neovim
bind = $mainMod, Q, killactive, # Kill active window
bind = $mainMod SHIFT, Q, exec, "$HOME/.config/hypr/scripts/KillActiveProcess.sh # Kill active window
bind = CTRL ALT, Delete, exec, hyprctl dispatch exit 0, # Exit Hyprland
bind = $mainMod, E, exec, XDG_CURRENT_DESKTOP=kde $fileManager # Launch the file manager
bind = $mainMod SHIFT, F, togglefloating, # Toggle floating
bind = $mainMod ALT, F, exec, hyprctl dispatch workspace allfloat
bind = $mainMod, space, exec, $menu # Launch menu
bind = $mainMod, F, fullscreen # Toggle fullscreen
bind = $mainMod ALT, L, exec, $HOME/.config/hypr/scripts/ChangeLayout.sh # Toggle Master of Dwindle Layout

# Dwindle Layout
bind = $mainMod SHIFT, I, togglesplit # only works on dwingle layout
bind = $mainMod, P, pseudo, # dwindle

# Master Layout
bind  = $mainMod CTRL, D, layoutmsg, removemaster
bind  = $mainMod, I, layoutmsg, addmaster
bind  = $mainMod, J, layoutmsg, cyclenext
bind  = $mainMod, K, layoutmsg, cycleprev
bind  = $mainMod CTRL, Return, layoutmsg, swapwithmaster

# Works on either layout (Master of Dwindle)
bind  = $mainMod, M, exec, hyprctl dispatch splitration 0.25


bind = $mainMod, period, exec, $emoji # Emoji selector
bind = $mainMod, S, exec, autoscriptmenu # Launch menu to modify/create script

##bindd = $mainMod, V, Clipboard History, exec, "$HOME/.config/rofi/clipboard.sh"
bind = $mainMod, V, exec, "$HOME/.config/hypr/scripts/ClipManager.sh" # Clipboard History
bind = $mainMod, R, exec, [floating] remmina # Launch Remmina

# Move focus with mainMod + arrow keys
bind  = $mainMod, left, movefocus, l
bind  = $mainMod, right, movefocus, r
bind  = $mainMod, up, movefocus, u
bind  = $mainMod, down, movefocus, d

# Switch workspaces with mainMod + [0-9]
bind  = $mainMod, 1, workspace, 1
bind  = $mainMod, 2, workspace, 2
bind  = $mainMod, 3, workspace, 3
bind  = $mainMod, 4, workspace, 4
bind  = $mainMod, 5, workspace, 5
bind  = $mainMod, 6, workspace, 6
bind  = $mainMod, 7, workspace, 7
bind  = $mainMod, 8, workspace, 8
bind  = $mainMod, 9, workspace, 9
bind  = $mainMod, 0, workspace, 10

# Move and follow active window to a workspace with mainMod + SHIFT + [0-9]
bind  = $mainMod SHIFT, 1, movetoworkspace, 1
bind  = $mainMod SHIFT, 2, movetoworkspace, 2
bind  = $mainMod SHIFT, 3, movetoworkspace, 3
bind  = $mainMod SHIFT, 4, movetoworkspace, 4
bind  = $mainMod SHIFT, 5, movetoworkspace, 5
bind  = $mainMod SHIFT, 6, movetoworkspace, 6
bind  = $mainMod SHIFT, 7, movetoworkspace, 7
bind  = $mainMod SHIFT, 8, movetoworkspace, 8
bind  = $mainMod SHIFT, 9, movetoworkspace, 9
bind  = $mainMod SHIFT, 0, movetoworkspace, 10

# Move active window to a workspace with mainMod + SHIFT + [0-9]
bind  = $mainMod CTRL, 1, movetoworkspacesilent, 1
bind  = $mainMod CTRL, 2, movetoworkspacesilent, 2
bind  = $mainMod CTRL, 3, movetoworkspacesilent, 3
bind  = $mainMod CTRL, 4, movetoworkspacesilent, 4
bind  = $mainMod CTRL, 5, movetoworkspacesilent, 5
bind  = $mainMod CTRL, 6, movetoworkspacesilent, 6
bind  = $mainMod CTRL, 7, movetoworkspacesilent, 7
bind  = $mainMod CTRL, 8, movetoworkspacesilent, 8
bind  = $mainMod CTRL, 9, movetoworkspacesilent, 9
bind  = $mainMod CTRL, 0, movetoworkspacesilent, 10

# Example special workspace (scratchpad)
#bind  = $mainMod, S, togglespecialworkspace, magic
bind  = $mainMod SHIFT, S, movetoworkspace, special:magic

# Scroll through existing workspaces with mainMod + scroll
bind  = $mainMod, mouse_down, workspace, e+1
bind  = $mainMod, mouse_up, workspace, e-1

# Move/resize windows with mainMod + LMB/RMB and dragging
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow

# Color picker
#bindd = $mainMod, P, Color Picker, exec, $colorPicker | wl-copy

# Screen locking
bind = $mainMod, L, exec, pidof hyprlock || hyprlock -q # Lock the screen

# Logout
bind = $mainMod, Escape, exec, wlogout # Session logout
bind = CTRL ALT, P, exec, "$HOME/.config/hypr/scripts/Wlogout.sh" # Session logout

# Waybar
bind = CTRL, Escape, exec, killall waybar || waybar # Toggle waybar

# Screenshot

bind = , Print, exec, grimblast --notify copysave screen # Screenshot entire screen
bind = $mainMod, Print, exec, grimblast --notify copysave active # Screenshot active window
bind = $mainMod Alt, Print, exec, grimblast --notify copysave area # Screenshot selected area

# Laptop multimedia keys for volume and LCD brightness
bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+
bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
#bindel = ,XF86MonBrightnessUp, exec, brightnessctl s 10%+
#bindel = ,XF86MonBrightnessDown, exec, brightnessctl s 10%-

# Requires playerctl
bindl = , XF86AudioNext, exec, playerctl next
bindl = , XF86AudioPause, exec, playerctl play-pause
bindl = , XF86AudioPlay, exec, playerctl play-pause
bindl = , XF86AudioPrev, exec, playerctl previous

