Update default config.conf

This commit is contained in:
Justan 2026-01-18 13:17:09 -05:00
parent 57d7801df2
commit 6e95899fbb

View file

@ -1,257 +1,647 @@
# More option see https://github.com/DreamMaoMao/mango/wiki/
# ==============================================================================
# mangowc config.conf
# ==============================================================================
# For more detailed information and additional config options visit:
# https://mangowc.vercel.app/
# https://github.com/DreamMaoMao/mangowc/wiki
# Window effect
blur=0
blur_layer=0
blur_optimized=1
# The default config path is: ~/.config/mango/config.conf
# The default fallback path is: /etc/mango/config.conf
# You can make your config modular by sourcing other files:
# An example of using an absolute path
# source = ~/.config/mango/bind.conf
# An example of using a relative path
# source = ./bind.conf
# You can also start mango using a custom configuration path:
# $ mango -c /path/to/config
# ------------------------------------------------------------------------------
# Startup Apps & Environment Variables
# ------------------------------------------------------------------------------
# exec-once = discord
# Only run when first starting mango
exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP = wlroots
# Runs every time the config is reloaded
# exec = bash reloadsomething.sh
# exec-once = waybar
# You can set system environment variables that reset on each config reload.
# For example:
# env = LANG, en_US.UTF-8
# env = XDG_SCREENSHOTS_DIR, ~/Pictures/Screenshots
# ------------------------------------------------------------------------------
# Monitor Rules
# ------------------------------------------------------------------------------
# Warning: If using xwayland do not set any display to negative coordinates.
# It will cause the click event to be abnormal. Refer to: https://gitlab.freedesktop.org/xorg/xserver/-/issues/899
# The layout set in `tagrule` has a higher priority than the layout set in `monitorrule` and will override it.
# Example format:
# monitorrule = <monitor_name>, <mfact>, <nmaster>, <layout>, <transform>, <scale>, <x_coord>, <y_coord>, <width>, <height>, <refreshrate>
# Example dual monitor setup:
# monitorrule = DP-1, 0.50, 1, tgmix, 0, 1, 1920, 0, 1920, 1080, 60
# monitorrule = DP-3, 0.50, 1, scroller, 0, 1, 0, 0, 1920, 1080, 144
# The transform values are:
# 0: no transform
# 1: 90 degrees counter-clockwise
# 2: 180 degrees counter-clockwise
# 3: 270 degrees counter-clockwise
# 4: 180 degrees vertical flip
# 5: Vertical flip + 90 degrees counter-clockwise
# 6: Vertical flip + 180 degrees counter-clockwise
# 7: Vertical flip + 270 counter-clockwise
# ------------------------------------------------------------------------------
# Window Effects (Blur & Shadows)(Requires SceneFX version)
# ------------------------------------------------------------------------------
# Enable/disable window background blur
blur = 0
# Enable/disable blur on shell layers (like panels/menus)
blur_layer = 0
# Use optimized blur shader for better performance
blur_optimized = 1
# Quality of blur (higher = smoother but heavier)
blur_params_num_passes = 2
# Strength of the blur effect
blur_params_radius = 5
# Dithering/noise to prevent color banding in blur
blur_params_noise = 0.02
# Adjust brightness of the blurred area
blur_params_brightness = 0.9
# Adjust contrast of the blurred area
blur_params_contrast = 0.9
# Adjust color intensity of the blurred area
blur_params_saturation = 1.2
# Enable/disable window shadows
shadows = 0
# Enable/disable shadows on shell layers
layer_shadows = 0
# Only draw shadows on floating (non-tiled) windows
shadow_only_floating = 1
# The spread/size of the shadow
shadows_size = 10
# The softness of the shadow edges
shadows_blur = 15
# Horizontal offset of the shadow
shadows_position_x = 0
# Vertical offset of the shadow
shadows_position_y = 0
shadowscolor= 0x000000ff
border_radius=6
no_radius_when_single=0
focused_opacity=1.0
unfocused_opacity=1.0
# Shadow color in HEX (RGBA)
shadowscolor = 0x000000ff
# Animation Configuration(support type:zoom,slide)
# tag_animation_direction: 1-horizontal,0-vertical
animations=1
layer_animations=1
animation_type_open=slide
animation_type_close=slide
animation_fade_in=1
animation_fade_out=1
tag_animation_direction=1
zoom_initial_ratio=0.3
zoom_end_ratio=0.8
fadein_begin_opacity=0.5
fadeout_begin_opacity=0.8
animation_duration_move=500
animation_duration_open=400
animation_duration_tag=350
animation_duration_close=800
animation_duration_focus=0
animation_curve_open=0.46,1.0,0.29,1
animation_curve_move=0.46,1.0,0.29,1
animation_curve_tag=0.46,1.0,0.29,1
animation_curve_close=0.08,0.92,0,1
animation_curve_focus=0.46,1.0,0.29,1
animation_curve_opafadeout=0.5,0.5,0.5,0.5
animation_curve_opafadein=0.46,1.0,0.29,1
# ------------------------------------------------------------------------------
# Animations (Open, Close, Move, Tag Switch)
# ------------------------------------------------------------------------------
# Master toggle for window animations
animations = 1
# Scroller Layout Setting
scroller_structs=20
scroller_default_proportion=0.8
scroller_focus_center=0
scroller_prefer_center=0
edge_scroller_pointer_focus=1
scroller_default_proportion_single=1.0
scroller_proportion_preset=0.5,0.8,1.0
# Toggle animations for layers (menus/popups)
layer_animations = 1
# Master-Stack Layout Setting
new_is_master=1
default_mfact=0.55
default_nmaster=1
smartgaps=0
# Animation style for opening (zoom or slide)
animation_type_open = slide
# Overview Setting
hotarea_size=10
enable_hotarea=1
ov_tab_mode=0
overviewgappi=5
overviewgappo=30
# Animation style for closing (zoom or slide)
animation_type_close = slide
# Misc
no_border_when_single=0
axis_bind_apply_timeout=100
focus_on_activate=1
idleinhibit_ignore_visible=0
sloppyfocus=1
warpcursor=1
focus_cross_monitor=0
focus_cross_tag=0
enable_floating_snap=0
snap_distance=30
cursor_size=24
drag_tile_to_tile=1
# Enable fade-in effect during open
animation_fade_in = 1
# keyboard
repeat_rate=25
repeat_delay=600
numlockon=0
xkb_rules_layout=us
# Enable fade-out effect during close
animation_fade_out = 1
# 1 for horizontal sliding, 0 for vertical sliding
tag_animation_direction = 1
# Ratios & Opacity
# Starting size multiplier for zoom animation
zoom_initial_ratio = 0.3
# Ending size multiplier for zoom animation
zoom_end_ratio = 0.8
# Starting opacity for fade-in
fadein_begin_opacity = 0.5
# Starting opacity for fade-out
fadeout_begin_opacity = 0.8
# Durations (in milliseconds)
# Time taken to move/resize a window
animation_duration_move = 500
# Time taken to open a window
animation_duration_open = 400
# Time taken to switch between tags (workspaces)
animation_duration_tag = 350
# Time taken to close a window
animation_duration_close = 800
# Time taken to animate focus changes
animation_duration_focus = 0
# Animation Curves (Cubic Bezier: x1, y1, x2, y2)
animation_curve_open = 0.46, 1.0, 0.29, 1
animation_curve_move = 0.46, 1.0, 0.29, 1
animation_curve_tag = 0.46, 1.0, 0.29, 1
animation_curve_close = 0.08, 0.92, 0, 1
animation_curve_focus = 0.46, 1.0, 0.29, 1
animation_curve_opafadeout = 0.5, 0.5, 0.5, 0.5
animation_curve_opafadein = 0.46, 1.0, 0.29, 1
# ------------------------------------------------------------------------------
# Layout Settings (Scroller, Master-Stack, Gaps)
# ------------------------------------------------------------------------------
# Scroller Layout
# Maximum internal structures for scroller
scroller_structs = 20
# Default window width in scroller mode
scroller_default_proportion = 0.8
# Keep focused window centered
scroller_focus_center = 0
# Favor center positioning for new windows
scroller_prefer_center = 0
# Focus window under pointer at screen edges
edge_scroller_pointer_focus = 1
# Width proportion when only one window exists
scroller_default_proportion_single = 1.0
# Cycling presets for window sizing
scroller_proportion_preset = 0.5, 0.8, 1.0
# Master-Stack Layout
# New windows become the master (left side)
new_is_master = 1
# Default master area width percentage
default_mfact = 0.55
# Default number of windows in the master area
default_nmaster = 1
# Hide gaps if only one window is visible
smartgaps = 0
# Appearance & Gaps
# Horizontal inner gap (between windows)
gappih = 5
# Vertical inner gap (between windows)
gappiv = 5
# Horizontal outer gap (window to screen edge)
gappoh = 10
# Vertical outer gap (window to screen edge)
gappov = 10
# Window border thickness in pixels
borderpx = 4
# Rounding of window corners
border_radius = 6
# Disable corner rounding for single windows
no_radius_when_single = 0
# Disable borders for single windows
no_border_when_single = 0
# ------------------------------------------------------------------------------
# Workspace (Tag) Rules
# ------------------------------------------------------------------------------
# Default layout for each tag
# (tile, scroller, monocle, grid, deck, center_tile, vertical_tile, vertical_grid, vertical_scroller, tgmix)
# tagrule = id:1, layout_name:tgmix
# tagrule = id:2, layout_name:tgmix
tagrule = id:3, layout_name:tgmix
tagrule = id:4, layout_name:tgmix
tagrule = id:5, layout_name:tgmix
tagrule = id:6, layout_name:tgmix
tagrule = id:7, layout_name:tgmix
tagrule = id:8, layout_name:tgmix
tagrule = id:9, layout_name:tgmix
# ------------------------------------------------------------------------------
# Colors (Hex RGBA)
# ------------------------------------------------------------------------------
# Desktop background color
rootcolor = 0x201b14ff
# Inactive window border color
bordercolor = 0x444444ff
# Focused window border color
focuscolor = 0xc9b890ff
# Color hint when a window is maximized
maximizescreencolor = 0x89aa61ff
# Border color for windows requesting attention
urgentcolor = 0xad401fff
# Border color for scratchpad windows
scratchpadcolor = 0x516c93ff
# Border color for global windows
globalcolor = 0xb153a7ff
# Border color for overlay windows
overlaycolor = 0x14a57cff
# ------------------------------------------------------------------------------
# Input Configuration (Keyboard, Mouse, Trackpad)
# ------------------------------------------------------------------------------
# Keyboard
# Keys per second when held down
repeat_rate = 25
# Delay before key repeat starts (ms)
repeat_delay = 600
# Enable NumLock on startup
numlockon = 0
# Keyboard layout
xkb_rules_layout = us
# Trackpad
# need relogin to make it apply
disable_trackpad=0
tap_to_click=1
tap_and_drag=1
drag_lock=1
trackpad_natural_scrolling=0
disable_while_typing=1
left_handed=0
middle_button_emulation=0
swipe_min_threshold=1
# mouse
# need relogin to make it apply
mouse_natural_scrolling=0
# Set to 1 to disable trackpad
disable_trackpad = 0
# Appearance
gappih=5
gappiv=5
gappoh=10
gappov=10
scratchpad_width_ratio=0.8
scratchpad_height_ratio=0.9
borderpx=4
rootcolor=0x201b14ff
bordercolor=0x444444ff
focuscolor=0xc9b890ff
maximizescreencolor=0x89aa61ff
urgentcolor=0xad401fff
scratchpadcolor=0x516c93ff
globalcolor=0xb153a7ff
overlaycolor=0x14a57cff
# Enable tapping to click
tap_to_click = 1
# layout support:
# tile,scroller,grid,deck,monocle,center_tile,vertical_tile,vertical_scroller
tagrule=id:1,layout_name:tile
tagrule=id:2,layout_name:tile
tagrule=id:3,layout_name:tile
tagrule=id:4,layout_name:tile
tagrule=id:5,layout_name:tile
tagrule=id:6,layout_name:tile
tagrule=id:7,layout_name:tile
tagrule=id:8,layout_name:tile
tagrule=id:9,layout_name:tile
# Tap and then immediately drag
tap_and_drag = 1
# Keep dragging after finger lift
drag_lock = 1
# Reverse scroll direction
trackpad_natural_scrolling = 0
# Prevent accidental trackpad input
disable_while_typing = 1
# Swap left/right buttons
left_handed = 0
# Tap both buttons for middle click
middle_button_emulation = 0
# Minimum distance for swipe gestures
swipe_min_threshold = 1
# Mouse
# Reverse scroll direction for mouse wheel
mouse_natural_scrolling = 0
# ------------------------------------------------------------------------------
# Miscellaneous System Settings
# ------------------------------------------------------------------------------
# Size of the screen corner "hot area"
hotarea_size = 10
# Enable triggers when mouse hits screen corners
enable_hotarea = 1
# Overview tab behavior mode
ov_tab_mode = 0
# Inner gaps in Overview mode
overviewgappi = 5
# Outer gaps in Overview mode
overviewgappo = 30
# (0 or 1) Enable xwayland persistence (needs a relogin to take effect)
xwayland_persistence = 1
# (0 or 1) Enable drm_syncobj (needs a relogin to take effect). Can improve game performance.
syncobj_enable = 0
# (0 or 1) Enable variable refresh rate(vrr). Can improve game performance.
adaptive_sync = 0
# (0 or 1) Allow shortcuts to be inhibited by clients
allow_shortcuts_inhibit = 1
# (0 or 1 or 2) Allow tearing. Can improve game performance.
allow_tearing = 0
# (0 or 1) Enable transparent lock screen
allow_lock_transparent = 0
# Detect the intervals of consecutive scroll for axisbind
axis_bind_apply_timeout = 100
# (0.1-10.0) Scroll factor for axis scroll speed
axis_scroll_factor = 1.0
# (0 or 1) Focus window when window send activate event (0-disable, 1-enable)
focus_on_activate = 1
# (0 or 1) Invisible clients can also trigger idle inhibit
idleinhibit_ignore_visible = 0
# (0 or 1) Focus follow mouse move
sloppyfocus = 1
# (0 or 1) Cursor warping when focus change
warpcursor = 1
# (0 or 1) Focus across monitors
focus_cross_monitor = 0
# (0 or 1) exchange two clients across monitors
exchange_cross_monitor = 0
# (0 or 1) all monitors have the same scratchpad
scratchpad_cross_monitor = 0
# (0 or 1) Focus across tags
focus_cross_tag = 0
# (0 or 1) View current tag will auto back to prev view tag
view_current_to_back = 1
# (0 or 1) Enable floating window snap
enable_floating_snap = 0
# (0 - 9999) The max distance to trigger floating window snap
snap_distance = 30
# (0 - 9999) Set cursor size
cursor_size = 24
# Set cursor theme
# cursor_theme = -
# (0 or 1) Don't render border when the window is alone in the tag
no_border_when_single = 0
# (0 - 9999) Time spent idle until cursor hides
cursor_hide_timeout = 0
# (0 or 1) If the dragged window is a tiled window, it will retile when the drag ends
drag_tile_to_tile = 0
# only show one out of named scratchpads or the normal scratchpad
single_scratchpad = 1
# Confine `switch_layout` to a specific group of layouts
# circle_layout = -
# ------------------------------------------------------------------------------
# Key Bindings
# key name refer to `xev` or `wev` command output,
# mod keys name: super,ctrl,alt,shift,none
# ------------------------------------------------------------------------------
# Refer to `xev` or `wev` to find key names
# You can use `spawn_shell` in place of `spawn` to use more advanced shell commands with piping
# reload config
bind=SUPER,r,reload_config
bind = Super, r, reload_config
# menu and terminal
bind=Alt,space,spawn,rofi -show drun
bind=Alt,Return,spawn,foot
bind = Alt, space, spawn, rofi -show drun
bind = Alt, Return, spawn, foot
# exit
bind=SUPER,m,quit
bind=ALT,q,killclient,
bind = Super+Shift+Ctrl, m, quit
bind = Alt, q, killclient
# switch window focus
bind=SUPER,Tab,focusstack,next
bind=ALT,Left,focusdir,left
bind=ALT,Right,focusdir,right
bind=ALT,Up,focusdir,up
bind=ALT,Down,focusdir,down
bind = Super, Tab, focusstack, next
bind = Alt, Left, focusdir, left
bind = Alt, Right, focusdir, right
bind = Alt, Up, focusdir, up
bind = Alt, Down, focusdir, down
# swap window
bind=SUPER+SHIFT,Up,exchange_client,up
bind=SUPER+SHIFT,Down,exchange_client,down
bind=SUPER+SHIFT,Left,exchange_client,left
bind=SUPER+SHIFT,Right,exchange_client,right
bind = Super+Shift, Up, exchange_client, up
bind = Super+Shift, Down, exchange_client, down
bind = Super+Shift, Left, exchange_client, left
bind = Super+Shift, Right, exchange_client, right
# switch window status
bind=SUPER,g,toggleglobal,
bind=ALT,Tab,toggleoverview,
bind=ALT,backslash,togglefloating,
bind=ALT,a,togglemaximizescreen,
bind=ALT,f,togglefullscreen,
bind=ALT+SHIFT,f,togglefakefullscreen,
bind=SUPER,i,minimized,
bind=SUPER,o,toggleoverlay,
bind=SUPER+SHIFT,I,restore_minimized
bind=ALT,z,toggle_scratchpad
bind = Super, g, toggleglobal
bind = Alt, Tab, toggleoverview
bind = Alt, backslash, togglefloating
bind = Alt, a, togglemaximizescreen
bind = Alt, f, togglefullscreen
bind = Alt+Shift, f, togglefakefullscreen
bind = Super, i, minimized
bind = Super, o, toggleoverlay
bind = Super+Shift, i, restore_minimized
bind = Alt, z, toggle_scratchpad
# scroller layout
bind=ALT,e,set_proportion,1.0
bind=ALT,x,switch_proportion_preset,
bind = Alt, e, set_proportion, 1.0
bind = Alt, x, switch_proportion_preset
bind = Alt+Ctrl+Shift, left, scroller_stack, left
bind = Alt+Ctrl+Shift, h, scroller_stack, left
bind = Alt+Ctrl+Shift, right, scroller_stack, right
bind = Alt+Ctrl+Shift, l, scroller_stack, right
bind = Alt+Ctrl+Shift, up, scroller_stack, up
bind = Alt+Ctrl+Shift, k, scroller_stack, up
bind = Alt+Ctrl+Shift, down, scroller_stack, down
bind = Alt+Ctrl+Shift, j, scroller_stack, down
# switch layout
bind=SUPER,n,switch_layout
bind = Super, n, switch_layout
# tag switch
bind=SUPER,Left,viewtoleft,0
bind=CTRL,Left,viewtoleft_have_client,0
bind=SUPER,Right,viewtoright,0
bind=CTRL,Right,viewtoright_have_client,0
bind=CTRL+SUPER,Left,tagtoleft,0
bind=CTRL+SUPER,Right,tagtoright,0
bind = Super, Left, viewtoleft, 0
bind = Ctrl, Left, viewtoleft_have_client, 0
bind = Super, Right, viewtoright, 0
bind = Ctrl, Right, viewtoright_have_client, 0
bind = Ctrl+Super, Left, tagtoleft, 0
bind = Ctrl+Super, Right, tagtoright, 0
bind=Ctrl,1,view,1,0
bind=Ctrl,2,view,2,0
bind=Ctrl,3,view,3,0
bind=Ctrl,4,view,4,0
bind=Ctrl,5,view,5,0
bind=Ctrl,6,view,6,0
bind=Ctrl,7,view,7,0
bind=Ctrl,8,view,8,0
bind=Ctrl,9,view,9,0
bind = Ctrl, 1, view, 1, 0
bind = Ctrl, 2, view, 2, 0
bind = Ctrl, 3, view, 3, 0
bind = Ctrl, 4, view, 4, 0
bind = Ctrl, 5, view, 5, 0
bind = Ctrl, 6, view, 6, 0
bind = Ctrl, 7, view, 7, 0
bind = Ctrl, 8, view, 8, 0
bind = Ctrl, 9, view, 9, 0
# tag: move client to the tag and focus it
# tagsilent: move client to the tag and not focus it
# bind=Alt,1,tagsilent,1
bind=Alt,1,tag,1,0
bind=Alt,2,tag,2,0
bind=Alt,3,tag,3,0
bind=Alt,4,tag,4,0
bind=Alt,5,tag,5,0
bind=Alt,6,tag,6,0
bind=Alt,7,tag,7,0
bind=Alt,8,tag,8,0
bind=Alt,9,tag,9,0
bind = Alt, 1, tag, 1, 0
bind = Alt, 1, tag, 1, 0
bind = Alt, 2, tag, 2, 0
bind = Alt, 3, tag, 3, 0
bind = Alt, 4, tag, 4, 0
bind = Alt, 5, tag, 5, 0
bind = Alt, 6, tag, 6, 0
bind = Alt, 7, tag, 7, 0
bind = Alt, 8, tag, 8, 0
bind = Alt, 9, tag, 9, 0
# monitor switch
bind=alt+shift,Left,focusmon,left
bind=alt+shift,Right,focusmon,right
bind=SUPER+Alt,Left,tagmon,left
bind=SUPER+Alt,Right,tagmon,right
bind = Alt+Shift, Left, focusmon, left
bind = Alt+Shift, Right, focusmon, right
bind = Super+Alt, Left, tagmon, left
bind = Super+Alt, Right, tagmon, right
# gaps
bind=ALT+SHIFT,X,incgaps,1
bind=ALT+SHIFT,Z,incgaps,-1
bind=ALT+SHIFT,R,togglegaps
bind = Alt+Shift, X, incgaps, 1
bind = Alt+Shift, Z, incgaps, -1
bind = Alt+Shift, R, togglegaps
# movewin
bind=CTRL+SHIFT,Up,movewin,+0,-50
bind=CTRL+SHIFT,Down,movewin,+0,+50
bind=CTRL+SHIFT,Left,movewin,-50,+0
bind=CTRL+SHIFT,Right,movewin,+50,+0
bind = Ctrl+Shift, Up, movewin, +0, -50
bind = Ctrl+Shift, Down, movewin, +0, +50
bind = Ctrl+Shift, Left, movewin, -50, +0
bind = Ctrl+Shift, Right, movewin, +50, +0
# resizewin
bind=CTRL+ALT,Up,resizewin,+0,-50
bind=CTRL+ALT,Down,resizewin,+0,+50
bind=CTRL+ALT,Left,resizewin,-50,+0
bind=CTRL+ALT,Right,resizewin,+50,+0
bind = Ctrl+Alt, Up, resizewin, +0, -50
bind = Ctrl+Alt, Down, resizewin, +0, +50
bind = Ctrl+Alt, Left, resizewin, -50, +0
bind = Ctrl+Alt, Right, resizewin, +50, +0
# Mouse Button Bindings
# NONE mode key only work in ov mode
mousebind=SUPER,btn_left,moveresize,curmove
mousebind=NONE,btn_middle,togglemaximizescreen,0
mousebind=SUPER,btn_right,moveresize,curresize
mousebind=NONE,btn_left,toggleoverview,1
mousebind=NONE,btn_right,killclient,0
# Audio control
bind = none, XF86AudioRaiseVolume, spawn, wpctl set-volume @DEFAULT_SINK@ 5%+
bind = none, XF86AudioLowerVolume, spawn, wpctl set-volume @DEFAULT_SINK@ 5%-
bind = none, XF86AudioMute, spawn, wpctl set-mute @DEFAULT_SINK@ toggle
bind = none, XF86AudioMicMute, spawn, wpctl set-mute @DEFAULT_SOURCE@ toggle
# Axis Bindings
axisbind=SUPER,UP,viewtoleft_have_client
axisbind=SUPER,DOWN,viewtoright_have_client
# `bind[flag]` can also be used in the following combinations:
# `bindl`: apply bind while screen is locked
# `binds`: use keysym instead of keycode for bind
# `bindr`: use bind on keyrelease instead of keypress
# `bindp`: pass key event to client
# Example:
# bindl = Super, l, quit
# layer rule
layerrule=animation_type_open:zoom,layer_name:rofi
layerrule=animation_type_close:zoom,layer_name:rofi
# Flags can also be combined:
# bindls = Super, s, quit
# Binds can also use keycodes directly, such as `code:24`, etc.
# ------------------------------------------------------------------------------
# Mouse & Layer Rules
# ------------------------------------------------------------------------------
mousebind = Super, btn_left, moveresize, curmove
mousebind = Super, btn_right, moveresize, curresize
mousebind = NONE, btn_middle, toggleoverview, 1
# You can also use axis bindings for the mouse wheel:
# axisbind = <MODIFIERS>, <AXIS_DIRECTION>, <COMMAND>, <ARGS>
axisbind = Super, UP, viewtoleft_have_client
axisbind = Super, DOWN, viewtoright_have_client
# Specialized animation rules for specific apps (e.g., Rofi)
# You can use `mmsg -e` to get the last open layer name
layerrule = animation_type_open:zoom, layer_name:rofi
layerrule = animation_type_close:zoom, layer_name:rofi
# ------------------------------------------------------------------------------
# Switch Bindings (For laptop lid open/close toggles)
# ------------------------------------------------------------------------------
# To utilize switch bindings you need to disable `lidhandle` in /etc/systemd/logind.conf
# HandleLidSwitch = ignore
# HandleLidSwitchExternalPower = ignore
# HandleLidSwitchDocked = ignore
# Format: switchbind = <FOLD_STATE>, <ACTION>, <COMMAND><ARGS>
# Examples:
# switchbind = fold, spawn, swaylock -f -c 000000
# switchbind = unfold, spawn, wlr-dpms on
# ------------------------------------------------------------------------------
# Gesture Bindings (For laptop/touchpad gestures)
# ------------------------------------------------------------------------------
# Format: gesturebind = <MODIFIERS>, <DIRECTION>, <FINGERS>, <COMMAND>, <ARGS>
# Examples:
# gesturebind = none, left, 3, focusdir, left
# gesturebind = none, right, 3, focusdir, right
# gesturebind = none, up, 3, focusdir, up
# gesturebind = none, down, 3, focusdir, down
# gesturebind = none, left, 4, viewtoleft_have_client
# gesturebind = none, right, 4, viewtoright_have_client
# gesturebind = none, up, 4, toggleoverview
# gesturebind = none, down, 4, toggleoverview
# ------------------------------------------------------------------------------
# Window Rules
# ------------------------------------------------------------------------------
# https://github.com/DreamMaoMao/mangowc/wiki#window-rules
# All parameters can be set in one line
# If you set both `appid` and `title` the window will only follow the rules when they match each other
# Examples:
# windowrule = Parameter:Values, title:Values
# windowrule = Parameter:Values, Parameter:Values, appid:Values, title:Values
# windowrule = force_tearing:1, title:vkcube # Enable window tearing for specific application
# ------------------------------------------------------------------------------
# Keymodes Example
# ------------------------------------------------------------------------------
# Keymodes allow you to enter a "state" where keys perform different actions.
# Useful for a "Resize Mode" or "Launcher Mode."
# Set the keymode before the bind, then the bind will apply to the keymode.
# If no keymode is explicitly set before a bind, then the default keymode is `keymode = default`.
# Binds under `keymode = common` will be usable in ALL keymodes.
# keymode = common
# bind = Super, r, reload_config # Bind works in all keymodes
# keymode = default
# bind = Alt, Return, spawn, st
# bind = Super, f, setkeymode, test
# keymode = test
# bind = Alt, Return, spawn, foot
# bind = Super, f, setkeymode, default
# ------------------------------------------------------------------------------
# MMSG IPC Examples
# ------------------------------------------------------------------------------
# mangowc supports IPC via the `mmsg` command to control the compositor from
# external scripts or the terminal.
# Example Shell Commands:
# mmsg -g: get message from mango
# mmsg -d reload_config: hot reload the configuration file
# mmsg -d quit: exit mango to tty or login screen.
# For more information about mmsg visit: https://github.com/DreamMaoMao/mangowc/wiki/mango-ipc-(mmsg)