neodotfiles/new-config/.config/hypr/hyprland.conf

378 lines
14 KiB
Text
Raw Normal View History

2023-04-01 05:00:52 +00:00
############################################################
### ____ __ ###
### / __ \_________ _/ /_____ ###
### / / / / ___/ __ `/ //_/ _ \ ###
### / /_/ / / / /_/ / ,< / __/ Clay Gomera (Drake) ###
### /_____/_/ \__,_/_/|_|\___/ The Hyprland config ###
### ###
############################################################
################################
### beg_________ ___ ____ ###
### / ___/ __ \/ _ \/ __/ ###
### / /__/ /_/ / , _/ _/ ###
### \___/\____/_/|_/___/ ###
### ###
############# {{{{ #############
# AUTOSTART
## Wayland backend
2023-02-22 00:02:06 +00:00
exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
2023-04-01 05:00:52 +00:00
## Polkit agent
2023-03-05 16:45:34 +00:00
exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
2023-04-01 05:00:52 +00:00
## Desktop portals
2023-02-22 00:02:06 +00:00
exec-once = /usr/lib/xdg-desktop-portal
2023-03-31 13:34:13 +00:00
exec-once = /usr/lib/xdg-desktop-portal-hyprland
2023-04-01 05:00:52 +00:00
## Notification daemon
2023-02-22 00:02:06 +00:00
exec-once = dunst --config ~/.config/dunst/dunstrc
2023-04-01 05:00:52 +00:00
## Top bar
exec-once = waybar
## Set wallpaper
2023-02-25 16:12:09 +00:00
exec-once = $HOME/.wbg
2023-04-01 05:00:52 +00:00
## Clipboard history
exec-once = wl-paste --type text --watch cliphist store #Stores only text data
2023-02-22 20:46:06 +00:00
exec-once = wl-paste --type image --watch cliphist store #Stores only image data
2023-02-22 00:02:06 +00:00
2023-04-01 05:00:52 +00:00
# MONITORS
2023-02-22 00:02:06 +00:00
monitor=,preferred,auto,1
2023-04-01 05:00:52 +00:00
# INPUT
2023-02-22 00:02:06 +00:00
input {
2023-02-25 16:12:09 +00:00
kb_layout = us,es
kb_options = grp:shift_caps_toggle
follow_mouse = 1
touchpad {
natural_scroll = yes
}
sensitivity = -0.2 # -1.0 - 1.0, 0 means no modification.
2023-02-22 00:02:06 +00:00
}
2023-04-01 05:00:52 +00:00
# GENERAL
2023-02-22 00:02:06 +00:00
general {
2023-02-25 16:12:09 +00:00
gaps_in = 5
gaps_out = 10
border_size = 3
2023-03-31 13:34:13 +00:00
col.active_border = rgb(cc241d) rgb(d3869b) 45deg
2023-02-25 16:12:09 +00:00
col.inactive_border = rgb(504945)
layout = master
2023-02-22 00:02:06 +00:00
}
2023-04-01 05:00:52 +00:00
# DECORATIONS
2023-02-22 00:02:06 +00:00
decoration {
2023-04-01 05:00:52 +00:00
rounding = 4 # Rounded corners
2023-04-22 13:32:25 +00:00
blur = no # Window background blur
#blur_size = 4
#blur_passes = 1.5
#blur_new_optimizations = yes
2023-02-25 16:12:09 +00:00
drop_shadow = yes
2023-03-31 13:34:13 +00:00
shadow_range = 5
2023-02-25 16:12:09 +00:00
shadow_render_power = 3
col.shadow = rgba(1a1a1aee)
2023-02-22 00:02:06 +00:00
}
2023-04-01 05:00:52 +00:00
# ANIMATIONS
2023-02-22 00:02:06 +00:00
animations {
2023-02-25 16:12:09 +00:00
enabled = yes
bezier = myBezier, 0.05, 0.9, 0.1, 1.05
animation = windows, 1, 7, myBezier
2023-03-31 13:34:13 +00:00
animation = windowsOut, 1, 5, default, slide
animation = windowsIn, 1, 5, default, slide
animation = windowsMove, 1, 5, default
2023-02-25 16:12:09 +00:00
animation = border, 1, 10, default
2023-03-31 13:34:13 +00:00
animation = borderangle, 1, 5, default, once
2023-02-25 16:12:09 +00:00
animation = fade, 1, 7, default
2023-03-31 13:34:13 +00:00
animation = workspaces, 1, 5, default, slide
2023-02-22 00:02:06 +00:00
}
2023-04-01 05:00:52 +00:00
# DWINDLE LAYOUT CONFIG
2023-02-22 00:02:06 +00:00
dwindle {
2023-02-25 16:12:09 +00:00
pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
preserve_split = yes # you probably want this
2023-02-22 00:02:06 +00:00
}
2023-04-01 05:00:52 +00:00
# MASTER LAYOUT CONFIG
2023-02-22 00:02:06 +00:00
master {
2023-03-31 13:34:13 +00:00
no_gaps_when_only = false
2023-02-25 16:12:09 +00:00
new_is_master = false
2023-03-28 17:41:25 +00:00
mfact = 0.50
2023-02-22 00:02:06 +00:00
}
2023-04-01 05:00:52 +00:00
# TOUCHPAD GESTURES
2023-02-22 00:02:06 +00:00
gestures {
2023-02-25 16:12:09 +00:00
workspace_swipe = on
2023-02-22 00:02:06 +00:00
}
2023-04-01 05:00:52 +00:00
# MISC
2023-02-22 00:02:06 +00:00
misc {
disable_hyprland_logo = true
disable_splash_rendering = true
mouse_move_enables_dpms = true
enable_swallow = true
swallow_regex = ^(wezterm)$
}
2023-04-01 05:00:52 +00:00
# MOUSE SENSITIVITY
2023-02-22 00:02:06 +00:00
device:epic mouse V1 {
2023-02-25 16:12:09 +00:00
sensitivity = -0.5
2023-02-22 00:02:06 +00:00
}
2023-04-01 05:00:52 +00:00
################################
### end_________ ___ ____ ###
### / ___/ __ \/ _ \/ __/ ###
### / /__/ /_/ / , _/ _/ ###
### \___/\____/_/|_/___/ ###
### ###
############# }}}} #############
###################################
### beg___ __ ____ ________ ###
### / _ \/ / / / / / __/ __/ ###
### / , _/ /_/ / /__/ _/_\ \ ###
### /_/|_|\____/____/___/___/ ###
### ###
############## {{{{ ###############
# WINDOW RULES
2023-03-31 13:34:13 +00:00
windowrule = float, ^(qalculate-gtk)$
2023-04-01 05:00:52 +00:00
## Workspace 1 - Web
2023-03-31 13:34:13 +00:00
windowrule = workspace 1, ^(org.qutebrowser.qutebrowser)$
windowrule = workspace 1, ^(newsboat)$
2023-04-22 13:32:25 +00:00
windowrule = workspace 1, ^(tut)$
2023-03-31 13:34:13 +00:00
windowrule = workspace 1, ^(firefox)$
windowrule = workspace 1, ^(Librewolf)$
windowrule = workspace 1, ^(Chromium)$
windowrule = workspace 1, ^(Brave-browser)$
2023-04-01 05:00:52 +00:00
## Workspace 2 - File management
2023-03-31 13:34:13 +00:00
windowrule = workspace 2, ^(file_manager)$
windowrule = workspace 2, ^(Pcmanfm)$
2023-04-01 05:00:52 +00:00
## Workspace 3 - Editors
2023-03-31 13:34:13 +00:00
windowrule = workspace 3, ^(text_editor)$
windowrule = workspace 3, ^(goneovim)$
2023-04-01 05:00:52 +00:00
windowrule = workspace 3, ^(Code)$
2023-04-04 07:00:35 +00:00
## Workspace 4 - Todo management
2023-04-22 13:32:25 +00:00
windowrule = workspace 4, ^(chat_app)$
2023-04-01 05:00:52 +00:00
## Workspace 5 - Audio
2023-03-31 13:34:13 +00:00
windowrule = workspace 5, ^(music_player)$
windowrule = workspace 5, ^(ytfzf_music)$
windowrule = workspace 5, ^(audacity)$
windowrule = workspace 5, ^(Ardour)$
windowrule = workspace 5, ^(carla)$
windowrule = workspace 5, ^(carla-control)$
windowrule = workspace 5, ^(hydrogen)$
windowrule = workspace 5, ^(guitarix)$
windowrule = workspace 5, ^(lsp-plugins)$
windowrule = workspace 5, ^(QjackCtl)$
windowrule = workspace 5, ^(org.rncbc.qpwgraph)$
windowrule = workspace 5, ^(soundconverter)$
windowrule = workspace 5, ^(kid3-qt)$
2023-04-01 05:00:52 +00:00
## Workspace 6 - Video
2023-03-31 13:34:13 +00:00
windowrule = workspace 6, ^(pitivi)$
windowrule = workspace 6, ^(org.kde.kdenlive)$
windowrule = workspace 6, ^(mpv)$
windowrule = workspace 6, ^(ytfzf)$
windowrule = workspace 6, ^(flix_cli)$
windowrule = workspace 6, ^(ani_cli)$
windowrule = workspace 6, ^(blender)$
windowrule = workspace 6, ^(com.obsproject.Studio)$
windowrule = workspace 6, ^(fr.handbrake.ghb)$
2023-04-01 05:00:52 +00:00
## Workspace 7 - Graphics
2023-03-31 13:34:13 +00:00
windowrule = workspace 7, ^(org.inkscape.Inkscape)$
windowrule = workspace 7, ^(Gimp-2.10)$
windowrule = workspace 7, ^(xournalpp)$
windowrule = workspace 7, ^(krita)$
windowrule = workspace 7, ^(darktable)$
windowrule = workspace 7, ^(org.kde.digikam)$
2023-04-01 05:00:52 +00:00
## Workspace 8 - Office
2023-03-31 13:34:13 +00:00
windowrule = workspace 8, ^(libreoffice-writer)$
windowrule = workspace 8, ^(libreoffice-calc)$
windowrule = workspace 8, ^(libreoffice-impress)$
windowrule = workspace 8, ^(libreoffice-base)$
windowrule = workspace 8, ^(libreoffice-draw)$
windowrule = workspace 8, ^(libreoffice-math)$
windowrule = workspace 8, ^(soffice)$
windowrule = workspace 8, ^(GeoGebra)$
2023-04-01 05:00:52 +00:00
## Workspace 9 - Games
2023-03-31 13:34:13 +00:00
windowrule = workspace 9, ^(org.libretro.RetroArch)$
windowrule = workspace 9, ^(DarkPlaces)$
windowrule = workspace 9, ^(pyrogenesis)$
windowrule = workspace 9, ^(wesnoth)$
windowrule = workspace 9, ^(Steam)$
2023-03-31 13:34:13 +00:00
windowrule = workspace 9, ^(Minetest)$
2023-04-01 05:00:52 +00:00
## Workspace 10 - Extras
2023-04-22 13:32:25 +00:00
windowrule = workspace 10, ^(todo_app)$
2023-03-31 13:34:13 +00:00
windowrule = workspace 10, ^(btop)$
windowrule = workspace 10, ^(htop)$
windowrule = workspace 10, ^(pulsemixer)$
windowrule = workspace 10, ^(alsamixer)$
windowrule = workspace 10, ^(wdisplays)$
windowrule = workspace 10, ^(font-manager)$
windowrule = workspace 10, ^(org.qbittorrent.qBittorrent)$
windowrule = workspace 10, ^(org.keepassxc.KeePassXC)$
windowrule = workspace 10, ^(gnome-boxes)$
2023-03-31 13:34:13 +00:00
2023-04-01 05:00:52 +00:00
###################################
### end___ __ ____ ________ ###
### / _ \/ / / / / / __/ __/ ###
### / , _/ /_/ / /__/ _/_\ \ ###
### /_/|_|\____/____/___/___/ ###
### ###
############## }}}} ###############
##################################
### beg___ _____ _____ ____ ###
### / _ )/ _/ |/ / _ \/ __/ ###
### / _ |/ // / // /\ \ ###
### /____/___/_/|_/____/___/ ###
### ###
############## {{{{ ##############
# MODIFIER KEYS VARIABLES
2023-02-22 00:02:06 +00:00
$supMod = SUPER
$altMod = ALT
$conMod = CONTROL
2023-04-01 05:00:52 +00:00
# MAIN KEYBINDS
bind = $supMod, RETURN, exec, wezterm # Terminal
bind = $supMod, q, killactive, # Close window
bind = $supMod_$conMod_SHIFT, q, exit, # Exit the compositor
bind = $supMod, b, exec, pkill waybar || waybar # Hide/Show the top bar
bind = $supMod, v, togglefloating, # Toggle floating mode
#bind = $supMod, P, pseudo, # dwindle
#bind = $supMod, J, togglesplit, # dwindle
# FOCUS
## Cycle focus with supmod + k,j
2023-02-22 06:12:57 +00:00
bind = $supMod, k, layoutmsg, cyclenext
bind = $supMod, j, layoutmsg, cycleprev
2023-04-01 05:00:52 +00:00
## Focus master window
bind = $supMod_SHIFT, RETURN, layoutmsg, focusmaster
2023-02-22 06:12:57 +00:00
2023-04-01 05:00:52 +00:00
# LAYOUT MANIPULATION
## Swap windows
2023-02-22 06:12:57 +00:00
bind = $supMod_SHIFT, j, layoutmsg, swapnext
bind = $supMod_SHIFT, k, layoutmsg, swapprev
2023-04-01 05:00:52 +00:00
## Swap window with master
2023-02-22 06:12:57 +00:00
bind = $supMod_$conMod, RETURN, layoutmsg, swapwithmaster
2023-04-01 05:00:52 +00:00
## Add/remove window to master stack
bind = $supMod, i, layoutmsg, addmaster
bind = $supMod, d, layoutmsg, removemaster
2023-04-01 05:00:52 +00:00
## Change the master orientation
bind = $supMod_SHIFT, l, layoutmsg, orientationnext
bind = $supMod_SHIFT, h, layoutmsg, orientationprev
## Window resizing
bind = $supMod_$conMod, l, resizeactive, 30 0
bind = $supMod_$conMod, h, resizeactive, -30 0
bind = $supMod_$conMod, j, resizeactive, 0 30
bind = $supMod_$conMod, k, resizeactive, 0 -30
# Move/resize windows with supmod + lmb/rmb and dragging
bindm = $supMod, mouse:272, movewindow
bindm = $supMod, mouse:273, resizewindow
2023-02-22 06:12:57 +00:00
2023-04-01 05:00:52 +00:00
# WORKSPACES MANIPULATION
## Switch workspaces with supmod + [0-9]
2023-02-22 00:02:06 +00:00
bind = $supMod, 1, workspace, 1
bind = $supMod, 2, workspace, 2
bind = $supMod, 3, workspace, 3
bind = $supMod, 4, workspace, 4
bind = $supMod, 5, workspace, 5
bind = $supMod, 6, workspace, 6
bind = $supMod, 7, workspace, 7
bind = $supMod, 8, workspace, 8
bind = $supMod, 9, workspace, 9
bind = $supMod, 0, workspace, 10
2023-04-01 05:00:52 +00:00
## Move active window to a workspace with supmod + shift + [0-9]
2023-03-31 13:34:13 +00:00
bind = $supMod_SHIFT, 1, movetoworkspace, 1
bind = $supMod_SHIFT, 2, movetoworkspace, 2
bind = $supMod_SHIFT, 3, movetoworkspace, 3
bind = $supMod_SHIFT, 4, movetoworkspace, 4
bind = $supMod_SHIFT, 5, movetoworkspace, 5
bind = $supMod_SHIFT, 6, movetoworkspace, 6
bind = $supMod_SHIFT, 7, movetoworkspace, 7
bind = $supMod_SHIFT, 8, movetoworkspace, 8
bind = $supMod_SHIFT, 9, movetoworkspace, 9
bind = $supMod_SHIFT, 0, movetoworkspace, 10
2023-04-01 05:00:52 +00:00
## Scroll through existing workspaces with supmod + scroll
2023-02-22 00:02:06 +00:00
bind = $supMod, mouse_down, workspace, e+1
bind = $supMod, mouse_up, workspace, e-1
2023-04-01 05:00:52 +00:00
# Scroll through existing workspaces with supmod + arrow keys
bind = $supMod, Right, workspace, e+1
bind = $supMod, Left, workspace, e-1
## Move active window through existing workspaces with supmod + arrow keys
2023-03-31 13:34:13 +00:00
bind = $supMod_SHIFT, Left, movetoworkspace, e+1
bind = $supMod_SHIFT, Right, movetoworkspace, e-1
2023-04-01 05:00:52 +00:00
# XF86 KEYS
## Media control
bindl=, XF86AudioRaiseVolume, exec, pamixer -i 5 # Increase volume by 5%
bindl=, XF86AudioLowerVolume, exec, pamixer -d 5 # Decrease volume by 5%
bindl=, XF86AudioMute, exec, pamixer -t # Toggle mute
bindl=, XF86AudioMicMute, exec, pamixer --default-source -t # Toggle microphone mute
bindl=, XF86AudioPause, exec, playerctl play-pause # Play/pause
bindl=, XF86AudioPlay, exec, playerctl play-pause # Play/pause
bindl=, XF86AudioNext, exec, playerctl next # Next song
bindl=, XF86AudioPrev, exec, playerctl previous # Previous song
bindl=, XF86AudioStop, exec, playerctl stop # Stop playback
## News
bindl=, XF86News, exec, wezterm start --class newsboat -- newsboat
## Brightness control
bindl=, XF86MonBrightnessUp, exec, brightnessctl s 10%+ # Increase brightness by 10%
bindl=, XF86MonBrightnessDown, exec, brightnessctl s 10%- # Decrease brightness by 10%
## Display setup
bindl=, XF86Display, exec, wdisplays # Open the display config tool (wdisplays)
# ROFI
binde = $supMod_SHIFT, d, exec, pkill rofi || rofi -show drun # Desktop launcher
binde = $supMod_SHIFT, r, exec, pkill rofi || rofi -show run # Standard launcher
binde = $supMod_SHIFT, w, exec, pkill rofi || $HOME/.config/rofi/scripts/rofi_wall # Wallpaper setup
binde = $supMod_SHIFT, i, exec, pkill rofi || $HOME/.config/rofi/scripts/rofi_wifi # Wifi setup
binde = $supMod_SHIFT, e, exec, pkill rofi || $HOME/.config/rofi/scripts/rofi_emoji # Emoji picker
binde = $supMod_SHIFT, s, exec, pkill rofi || $HOME/.config/rofi/scripts/rofi_scrot # Screenshot tool
binde = $supMod_$conMod, s, exec, pkill rofi || $HOME/.config/rofi/scripts/rofi_scrot -s # Stop recording (for the screenshot tool)
binde = $supMod_SHIFT, q, exec, pkill rofi || $HOME/.config/rofi/scripts/rofi_power # Power setup
binde = $supMod_SHIFT, b, exec, pkill rofi || $HOME/.config/rofi/scripts/rofi_blue # Bluetooth setup
binde = $supMod_SHIFT, c, exec, pkill rofi || cliphist list | rofi -dmenu -p "  Clipboard " | cliphist decode | wl-copy # Clipboard history
# COLOR PICKER
binde = $supMod_$conMod, c, exec, hyprpicker -n -a
# QUICK TERMINAL SCRIPTS/COMMANDS
## Workspace 1 - Web
binde = $supMod_$altMod, r, exec, wezterm start --class newsboat -- newsboat # RSS feed reader
2023-04-22 13:32:25 +00:00
binde = $supMod_$altMod, t, exec, wezterm start --class tut -- tut # Tut
2023-04-01 05:00:52 +00:00
## Workspace 5 - Audio
binde = $supMod_$altMod, m, exec, wezterm start --class ytfzf_music -- ytfzf -mlstT chafa # Listen to YouTube Music on the terminal
## Workspace 6 - Video
binde = $supMod_$altMod, f, exec, wezterm start --class flix_cli -- flix-cli # Watch movies on the terminal
binde = $supMod_$altMod, a, exec, wezterm start --class ani_cli -- ani-cli # Watch anime on the terminal
binde = $supMod_$altMod, y, exec, wezterm start --class ytfzf -- ytfzf -flstT chafa # Watch YouTube on the terminal
## Workspace 10 - Extras
binde = $supMod_$altMod, p, exec, wezterm start --class pulsemixer -- pulsemixer # Open the volume mixer (pulsemixer)
binde = $supMod_$altMod, o, exec, wezterm start --class alsamixer -- alsamixer # Open the volume mixer (alsamixer)
binde = $supMod_$altMod, b, exec, wezterm start --class btop -- btop # Open the system monitor (btop)
binde = $supMod_$altMod, h, exec, wezterm start --class htop -- htop # Open the system monitor (htop)
2023-04-22 13:32:25 +00:00
binde = $supMod_$altMod, g, exec, wezterm start --class todo_app -- geek-life # Open the todo manager
2023-04-01 05:00:52 +00:00
# MAIN APPS
## Workspace 1 - Web
2023-04-22 13:32:25 +00:00
binde = $supMod, w, exec, firefox
2023-04-01 05:00:52 +00:00
## Workspace 2 - File management
binde = $supMod, f, exec, wezterm start --class file_manager -- vifm
## Workspace 3 - Editors
binde = $supMod, e, exec, goneovim --nvim=$HOME/.local/bin/lvim --geometry=1920x1080
2023-04-22 13:32:25 +00:00
## Workspace 4 - Chat
binde = $supMod, c, exec, wezterm start --class chat_app -- gomuks
2023-04-01 05:00:52 +00:00
## Workspace 5 - Audio
2023-04-22 13:32:25 +00:00
binde = $supMod, m, exec, wezterm start --class music_player -- musikcube
2023-04-01 05:00:52 +00:00
## Workspace 9 - Games
binde = $supMod, g, exec, retroarch
## Workspace 10 - Extras
binde = $supMod, p, exec, keepassxc
##################################
### end___ _____ _____ ____ ###
### / _ )/ _/ |/ / _ \/ __/ ###
### / _ |/ // / // /\ \ ###
### /____/___/_/|_/____/___/ ###
### ###
############## {{{{ ##############