Start of building my hyprland conf

This commit is contained in:
2026-04-09 07:19:52 -04:00
commit 402cd2f829
6 changed files with 556 additions and 0 deletions

34
autostart.conf Normal file
View File

@@ -0,0 +1,34 @@
# ___ __ __ __
# / _ |__ __/ /____ ___ / /____ _____/ /_
# / __ / // / __/ _ \(_-</ __/ _ `/ __/ __/
# /_/ |_\_,_/\__/\___/___/\__/\_,_/_/ \__/
#
# Start Listeners
# exec-once=~/.config/ml4w/listeners.sh --startall
# Start Polkit
exec-once=/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
# Load Wallpaper and Quickshell
exec-once = ~/.config/ml4w/scripts/ml4w-autostart
# Load GTK settings
# exec-once = ~/.config/hypr/scripts/gtk.sh
# Load Notification Daemon
exec-once = swaync
# Using hypridle to start hyprlock
exec-once = hypridle
# Load cliphist history
exec-once = wl-paste --watch cliphist store
exec-once = ~/.config/waybar/launch.sh
# Start autostart cleanup
# exec-once = ~/.config/hypr/scripts/cleanup.sh
# Load configuration from ML4W Hyprland Settings App
# exec = ~/.config/com.ml4w.hyprlandsettings/hyprctl.sh

35
hypridle.conf Normal file
View File

@@ -0,0 +1,35 @@
general {
lock_cmd = pidof hyprlock || hyprlock # avoid starting multiple hyprlock instances.
# lock_cmd = playerctl --all-players pause && pidof hyprlock || hyprlock # pause all system audio and avoid starting multiple hyprlock instances.
before_sleep_cmd = loginctl lock-session # lock before suspend.
after_sleep_cmd = hyprctl dispatch dpms on # to avoid having to press a key twice to turn on the display.
}
listener {
timeout = 480 # 8min.
on-timeout = brightnessctl -s set 10 # set monitor backlight to minimum, avoid 0 on OLED monitor.
on-resume = brightnessctl -r # monitor backlight restore.
}
# turn off keyboard backlight, comment out this section if you dont have a keyboard backlight.
# listener {
# timeout = 480 # 8min.
# on-timeout = brightnessctl -sd rgb:kbd_backlight set 0 # turn off keyboard backlight.
# on-resume = brightnessctl -rd rgb:kbd_backlight # turn on keyboard backlight.
# }
listener {
timeout = 600 # 10min
on-timeout = loginctl lock-session # lock screen when timeout has passed
}
listener {
timeout = 660 # 11min
on-timeout = hyprctl dispatch dpms off # screen off when timeout has passed
on-resume = hyprctl dispatch dpms on && brightnessctl -r # screen on when activity is detected after timeout has fired.
}
listener {
timeout = 1800 # 30min
on-timeout = systemctl suspend # suspend pc
}

300
hyprland.conf Normal file
View File

@@ -0,0 +1,300 @@
# #######################################################################################
# AUTOGENERATED HYPRLAND CONFIG.
# EDIT THIS CONFIG ACCORDING TO THE WIKI INSTRUCTIONS.
# #######################################################################################
# autogenerated = 1 # remove this line to remove the warning
# This is an example Hyprland config file.
# Refer to the wiki for more information.
# https://wiki.hypr.land/Configuring/
# Please note not all available settings / options are set here.
# For a full list, see the wiki
# You can split this configuration into multiple files
# Create your files separately and then link them to this file like this:
# source = ~/.config/hypr/myColors.conf
################
### MONITORS ###
################
# See https://wiki.hypr.land/Configuring/Monitors/
monitor=,preferred,auto,auto
monitor = eDP-1, preferred, auto, 1.0
###################
### MY PROGRAMS ###
###################
# See https://wiki.hypr.land/Configuring/Keywords/
# Set programs that you use
$terminal = kitty
$fileManager = dolphin
$menu = hyprlauncher
#################
### AUTOSTART ###
#################
source = autostart.conf
# Autostart necessary processes (like notifications daemons, status bars, etc.)
# Or execute your favorite apps at launch like this:
# exec-once = $terminal
# exec-once = nm-applet &
# exec-once = waybar & hyprpaper & firefox
#############################
### ENVIRONMENT VARIABLES ###
#############################
# See https://wiki.hypr.land/Configuring/Environment-variables/
env = XCURSOR_SIZE,24
env = HYPRCURSOR_SIZE,24
###################
### PERMISSIONS ###
###################
# See https://wiki.hypr.land/Configuring/Permissions/
# Please note permission changes here require a Hyprland restart and are not applied on-the-fly
# for security reasons
# ecosystem {
# enforce_permissions = 1
# }
# permission = /usr/(bin|local/bin)/grim, screencopy, allow
# permission = /usr/(lib|libexec|lib64)/xdg-desktop-portal-hyprland, screencopy, allow
# permission = /usr/(bin|local/bin)/hyprpm, plugin, allow
#####################
### LOOK AND FEEL ###
#####################
# Refer to https://wiki.hypr.land/Configuring/Variables/
# https://wiki.hypr.land/Configuring/Variables/#general
general {
gaps_in = 5
gaps_out = 5
border_size = 2
# https://wiki.hypr.land/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.hypr.land/Configuring/Tearing/ before you turn this on
allow_tearing = false
layout = dwindle
}
xwayland {
force_zero_scaling = 1
}
# https://wiki.hypr.land/Configuring/Variables/#decoration
decoration {
rounding = 10
rounding_power = 2
# Change transparency of focused and unfocused windows
active_opacity = 1.0
inactive_opacity = 1.0
shadow {
enabled = true
range = 4
render_power = 3
color = rgba(1a1a1aee)
}
# https://wiki.hypr.land/Configuring/Variables/#blur
blur {
enabled = true
size = 3
passes = 1
vibrancy = 0.1696
}
}
# https://wiki.hypr.land/Configuring/Variables/#animations
animations {
enabled = yes, please :)
# Default curves, see https://wiki.hypr.land/Configuring/Animations/#curves
# NAME, X0, Y0, X1, Y1
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
bezier = quick, 0.15, 0, 0.1, 1
# Default animations, see https://wiki.hypr.land/Configuring/Animations/
# NAME, ONOFF, SPEED, CURVE, [STYLE]
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
animation = zoomFactor, 1, 7, quick
}
# Ref https://wiki.hypr.land/Configuring/Workspace-Rules/
# "Smart gaps" / "No gaps when only"
# uncomment all if you wish to use that.
# workspace = w[tv1], gapsout:0, gapsin:0
# workspace = f[1], gapsout:0, gapsin:0
# windowrule {
# name = no-gaps-wtv1
# match:float = false
# match:workspace = w[tv1]
#
# border_size = 0
# rounding = 0
# }
#
# windowrule {
# name = no-gaps-f1
# match:float = false
# match:workspace = f[1]
#
# border_size = 0
# rounding = 0
# }
# See https://wiki.hypr.land/Configuring/Dwindle-Layout/ for more
dwindle {
pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
preserve_split = true # You probably want this
}
# See https://wiki.hypr.land/Configuring/Master-Layout/ for more
master {
new_status = master
}
# https://wiki.hypr.land/Configuring/Variables/#misc
misc {
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.hypr.land/Configuring/Variables/#input
input {
kb_layout = us
kb_variant =
kb_model =
kb_options =
kb_rules =
follow_mouse = 1
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
touchpad {
natural_scroll = false
}
}
# See https://wiki.hypr.land/Configuring/Gestures
gesture = 3, horizontal, workspace
# Example per-device config
# See https://wiki.hypr.land/Configuring/Keywords/#per-device-input-configs for more
device {
name = epic-mouse-v1
sensitivity = -0.5
}
###################
### KEYBINDINGS ###
###################
source = keybindings.conf
##############################
### WINDOWS AND WORKSPACES ###
##############################
# See https://wiki.hypr.land/Configuring/Window-Rules/ for more
# See https://wiki.hypr.land/Configuring/Workspace-Rules/ for workspace rules
# Example windowrules that are useful
windowrule {
# Ignore maximize requests from all apps. You'll probably like this.
name = suppress-maximize-events
match:class = .*
suppress_event = maximize
}
windowrule {
# Fix some dragging issues with XWayland
name = fix-xwayland-drags
match:class = ^$
match:title = ^$
match:xwayland = true
match:float = true
match:fullscreen = false
match:pin = false
no_focus = true
}
# Hyprland-run windowrule
windowrule {
name = move-hyprland-run
match:class = hyprland-run
move = 20 monitor_h-120
float = yes
}
source = windowrules.conf
######################
### WORKSPACES ###
######################
source = workspaces.conf

159
keybindings.conf Normal file
View File

@@ -0,0 +1,159 @@
# -----------------------------------------------------
# Key bindings
# name: "My Keys"
# -----------------------------------------------------
# SUPER KEY
$mainMod = SUPER
$HYPRSCRIPTS = ~/.config/hypr/scripts
$SCRIPTS = ~/.config/ml4w/scripts
$BROWSER = flatpak run app.zen_browser.zen
$LAUNCHER = hyprlauncher
# Applications
bind = $mainMod, RETURN, exec, ~/.config/ml4w/settings/terminal.sh # Open the terminal
bind = $mainMod, B, exec, $BROWSER # Open the browser
bind = $mainMod, E, exec, ~/.config/ml4w/settings/filemanager.sh # Open the filemanager
bind = $mainMod CTRL, E, exec, ~/.config/ml4w/settings/emojipicker.sh # Open the emoji picker
bind = $mainMod CTRL, C, exec, ~/.config/ml4w/settings/calculator.sh # Open the calculator
# Display
bind = $mainMod SHIFT, mouse_down, exec, hyprctl keyword cursor:zoom_factor $(awk "BEGIN {print $(hyprctl getoption cursor:zoom_factor | grep 'float:' | awk '{print $2}') + 0.5}") # Increase display zoom
bind = $mainMod SHIFT, mouse_up, exec, hyprctl keyword cursor:zoom_factor $(awk "BEGIN {print $(hyprctl getoption cursor:zoom_factor | grep 'float:' | awk '{print $2}') - 0.5}") # Decrease display zoom
bind = $mainMod SHIFT, Z, exec, hyprctl keyword cursor:zoom_factor 1 # Reset display zoom
# Windows
bind = $mainMod, Q, killactive # Kill active window
bind = $mainMod SHIFT, Q, exec, hyprctl activewindow | grep pid | tr -d 'pid:' | xargs kill # Quit active window and all open instances
bind = $mainMod, F, fullscreen, 0 # Set active window to fullscreen
bind = $mainMod, M, fullscreen, 1 # Maximize Window
bind = $mainMod, T, togglefloating # Toggle active windows into floating mode
bind = $mainMod SHIFT, T, workspaceopt, allfloat # Toggle all windows into floating mode
bind = $mainMod, J, togglesplit # Toggle split
bind = $mainMod, left, movefocus, l # Move focus left
bind = $mainMod, right, movefocus, r # Move focus right
bind = $mainMod, up, movefocus, u # Move focus up
bind = $mainMod, down, movefocus, d # Move focus down
bindm = $mainMod, mouse:272, movewindow # Move window with the mouse
bindm = $mainMod, mouse:273, resizewindow # Resize window with the mouse
bind = $mainMod SHIFT, right, resizeactive, 100 0 # Increase window width with keyboard
bind = $mainMod SHIFT, left, resizeactive, -100 0 # Reduce window width with keyboard
bind = $mainMod SHIFT, down, resizeactive, 0 100 # Increase window height with keyboard
bind = $mainMod SHIFT, up, resizeactive, 0 -100 # Reduce window height with keyboard
# bind = $mainMod, G, togglegroup # Toggle window group
bind = $mainMod, K, swapsplit # Swapsplit
bind = $mainMod ALT, left, swapwindow, l # Swap tiled window left
bind = $mainMod ALT, right, swapwindow, r # Swap tiled window right
bind = $mainMod ALT, up, swapwindow, u # Swap tiled window up
bind = $mainMod ALT, down, swapwindow, d # Swap tiled window down
binde = ALT,Tab,cyclenext # Cycle between windows
binde = ALT,Tab,bringactivetotop # Bring active window to the top
# Actions
bind = $mainMod CTRL, R, exec, hyprctl reload # Reload Hyprland configuration
bind = $mainMod SHIFT, A, exec, $HYPRSCRIPTS/toggle-animations.sh # Toggle animations
bind = $mainMod, PRINT, exec, $HYPRSCRIPTS/screenshot.sh # Take a screenshot
bind = $mainMod ALT, F, exec, $HYPRSCRIPTS/screenshot.sh --instant # Take an instant full-screen screenshot
bind = $mainMod ALT, S, exec, $HYPRSCRIPTS/screenshot.sh --instant-area # Take an instant area screenshot
bind = $mainMod CTRL, Q, exec, ~/.config/ml4w/scripts/wlogout.sh # Start wlogout
bind = $mainMod SHIFT, W, exec, ~/.config/hypr/scripts/waypaper.sh --random # Change the wallpaper
bind = $mainMod CTRL, W, exec, ~/.config/hypr/scripts/waypaper.sh # Open wallpaper selector
bind = $mainMod ALT, W, exec, $HYPRSCRIPTS/wallpaper-automation.sh # Start random wallpaper script
bind = $mainMod, SPACE, exec, $LAUNCHER
bind = $mainMod CTRL, K, exec, $HYPRSCRIPTS/keybindings.sh # Show keybindings bind = $mainMod SHIFT, B, exec, ~/.config/waybar/launch.sh # Reload waybar bind = $mainMod CTRL, B, exec, ~/.config/waybar/toggle.sh # Toggle waybar
bind = $mainMod SHIFT, R, exec, $HYPRSCRIPTS/loadconfig.sh # Reload hyprland config
bind = $mainMod, V, exec, $SCRIPTS/cliphist.sh # Open clipboard manager
bind = $mainMod CTRL, T, exec, ~/.config/waybar/themeswitcher.sh # Open waybar theme switcher
bind = $mainMod CTRL, S, exec, flatpak run com.ml4w.settings # Open ML4W Dotfiles Settings app
bind = $mainMod ALT, G, exec, $HYPRSCRIPTS/gamemode.sh # Toggle game mode
bind = $mainMod CTRL, L, exec, ~/.config/hypr/scripts/power.sh lock # Launch Hyprshade
bind = $mainMod SHIFT, H, exec, $HYPRSCRIPTS/hyprshade.sh # Start wlogout
# bind = CTRL, Tab, exec, ~/.config/ml4w/scripts/focus.sh # Open Select Window Menu
bind = CTRL ALT, T, exec, ~/.config/ml4w/themes/themes.sh # Open Select Window Menu
# Sidepad
bind = $mainMod CTRL, right, exec, ~/.config/ml4w/scripts/sidepad.sh # Open Sidepad
bind = $mainMod CTRL, left, exec, ~/.config/ml4w/scripts/sidepad.sh --hide # Close Sidepad
bind = $mainMod, S, exec, ~/.config/ml4w/scripts/sidepad.sh --init # Init Sidepad
bind = $mainMod SHIFT, S, exec, ~/.config/ml4w/scripts/sidepad.sh --select # Select Sidepad
# Workspaces
bind = $mainMod, 1, workspace, 1 # Open workspace 1
bind = $mainMod, 2, workspace, 2 # Open workspace 2
bind = $mainMod, 3, workspace, 3 # Open workspace 3
bind = $mainMod, 4, workspace, 4 # Open workspace 4
bind = $mainMod, 5, workspace, 5 # Open workspace 5
bind = $mainMod, 6, workspace, 6 # Open workspace 6
bind = $mainMod, 7, workspace, 7 # Open workspace 7
bind = $mainMod, 8, workspace, 8 # Open workspace 8
bind = $mainMod, 9, workspace, 9 # Open workspace 9
bind = $mainMod, 0, workspace, 10 # Open workspace 10
bind = $mainMod SHIFT, 1, movetoworkspace, 1 # Move active window to workspace 1
bind = $mainMod SHIFT, 2, movetoworkspace, 2 # Move active window to workspace 2
bind = $mainMod SHIFT, 3, movetoworkspace, 3 # Move active window to workspace 3
bind = $mainMod SHIFT, 4, movetoworkspace, 4 # Move active window to workspace 4
bind = $mainMod SHIFT, 5, movetoworkspace, 5 # Move active window to workspace 5
bind = $mainMod SHIFT, 6, movetoworkspace, 6 # Move active window to workspace 6
bind = $mainMod SHIFT, 7, movetoworkspace, 7 # Move active window to workspace 7
bind = $mainMod SHIFT, 8, movetoworkspace, 8 # Move active window to workspace 8
bind = $mainMod SHIFT, 9, movetoworkspace, 9 # Move active window to workspace 9
bind = $mainMod SHIFT, 0, movetoworkspace, 10 # Move active window to workspace 10
bind = $mainMod, Tab, workspace, m+1 # Open next workspace
bind = $mainMod SHIFT, Tab, workspace, m-1 # Open previous workspace
bind = $mainMod CTRL, 1, exec, $HYPRSCRIPTS/moveTo.sh 1 # Move all windows to workspace 1
bind = $mainMod CTRL, 2, exec, $HYPRSCRIPTS/moveTo.sh 2 # Move all windows to workspace 2
bind = $mainMod CTRL, 3, exec, $HYPRSCRIPTS/moveTo.sh 3 # Move all windows to workspace 3
bind = $mainMod CTRL, 4, exec, $HYPRSCRIPTS/moveTo.sh 4 # Move all windows to workspace 4
bind = $mainMod CTRL, 5, exec, $HYPRSCRIPTS/moveTo.sh 5 # Move all windows to workspace 5
bind = $mainMod CTRL, 6, exec, $HYPRSCRIPTS/moveTo.sh 6 # Move all windows to workspace 6
bind = $mainMod CTRL, 7, exec, $HYPRSCRIPTS/moveTo.sh 7 # Move all windows to workspace 7
bind = $mainMod CTRL, 8, exec, $HYPRSCRIPTS/moveTo.sh 8 # Move all windows to workspace 8
bind = $mainMod CTRL, 9, exec, $HYPRSCRIPTS/moveTo.sh 9 # Move all windows to workspace 9
bind = $mainMod CTRL, 0, exec, $HYPRSCRIPTS/moveTo.sh 10 # Move all windows to workspace 10
bind = $mainMod, mouse_down, workspace, e+1 # Open next workspace
bind = $mainMod, mouse_up, workspace, e-1 # Open previous workspace
bind = $mainMod CTRL, down, workspace, empty # Open the next empty workspace
# Fn keys
bind = , XF86MonBrightnessUp, exec, brightnessctl -q s +10% # Increase brightness by 10%
bind = , XF86MonBrightnessDown, exec, brightnessctl -q s 10%- # Reduce brightness by 10%
bindle=, XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+ # Increase volume by 5% (max 100% limit also added hold to raise volume)
bindle=, XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- # Reduce volume by 5% (min 0% limit also added hold to lower volume)
bind = , XF86AudioMute, exec, pactl set-sink-mute @DEFAULT_SINK@ toggle # Toggle mute
bind = , XF86AudioPlay, exec, playerctl play-pause # Audio play pause
bind = , XF86AudioPause, exec, playerctl pause # Audio pause
bind = , XF86AudioNext, exec, playerctl next # Audio next
bind = , XF86AudioPrev, exec, playerctl previous # Audio previous
bind = , XF86AudioMicMute, exec, pactl set-source-mute @DEFAULT_SOURCE@ toggle # Toggle microphone
bind = , XF86Calculator, exec, ~/.config/ml4w/settings/calculator.sh # Open calculator
bind = , XF86Lock, exec, hyprlock # Open screenlock
bind = , XF86Tools, exec, flatpak run com.ml4w.settings # Open ML4W Dotfiles Settings app
bind = , code:238, exec, brightnessctl -d smc::kbd_backlight s +10
bind = , code:237, exec, brightnessctl -d smc::kbd_backlight s 10-
bind = $mainMod, G, submap, group
submap = group
bind = , G, togglegroup
bind = , G, submap, reset
bind = , H, movewindoworgroup, l
bind = , H, submap, reset
bind = , L, movewindoworgroup, r
bind = , L, submap, reset
bind = , K, movewindoworgroup, u
bind = , K, submap, reset
bind = , J, movewindoworgroup, d
bind = , J, submap, reset
submap = reset

16
windowrules.conf Normal file
View File

@@ -0,0 +1,16 @@
# -----------------------------------------------------
# Window rules
# -----------------------------------------------------
# idleinhibit
# windowrule = match:class = ([window]), idleinhibit = fullscreen # Available modes: none, always, focus, fullscreen
#xwayland related rules
# when moving objects in resolve a large border is produced
# This rule prevents that and serves as a template for any problematic xwayland apps
# windowrule = noblur, class:^(\bresolve\b)$, xwayland:1
# This is a general rule for xwayland apps but can have other consequences
# for one user it impacted EMACs so it's disabled by default
# It's here as a reference or for quick triage of xwayland ap
#windowrule = noblur, xwayland:1

12
workspaces.conf Normal file
View File

@@ -0,0 +1,12 @@
workspace = 1, monitor:eDP-1
workspace = 3, monitor:eDP-1
workspace = 5, monitor:eDP-1
workspace = 7, monitor:eDP-1
workspace = 9, monitor:eDP-1
workspace = 2, monitor:HDMI-A-3
workspace = 4, monitor:HDMI-A-3
workspace = 6, monitor:HDMI-A-3
workspace = 8, monitor:HDMI-A-3
workspace = 10, monitor:HDMI-A-3