# MangoWC Configuration File # For complete documentation see: https://github.com/DreamMaoMao/mango/wiki/ # This config supports hot-reload: press SUPER+r to apply changes without restarting # ============================================================================ # WINDOW EFFECTS (requires scenefx library) # ============================================================================ # Blur effects for windows and layers blur=0 # Enable blur for windows (0=off, 1=on) blur_layer=0 # Enable blur for layer surfaces (0=off, 1=on) blur_optimized=1 # Use optimized blur algorithm (recommended) # Blur parameters - fine-tune the blur appearance blur_params_num_passes = 2 # Number of blur passes (more = smoother but slower) blur_params_radius = 5 # Blur radius in pixels blur_params_noise = 0.02 # Noise amount to prevent banding blur_params_brightness = 0.9 # Brightness adjustment (0.0-1.0+) blur_params_contrast = 0.9 # Contrast adjustment (0.0-1.0+) blur_params_saturation = 1.2 # Color saturation (0.0-1.0+) # Shadow effects for windows shadows = 0 # Enable shadows (0=off, 1=on) layer_shadows = 0 # Enable shadows for layer surfaces shadow_only_floating = 1 # Only show shadows on floating windows shadows_size = 10 # Shadow size in pixels shadows_blur = 15 # Shadow blur amount shadows_position_x = 0 # Shadow horizontal offset shadows_position_y = 0 # Shadow vertical offset shadowscolor= 0x000000ff # Shadow color in RGBA hex format # Window appearance border_radius=6 # Corner radius in pixels (rounded corners) no_radius_when_single=0 # Disable rounded corners for single window focused_opacity=1.0 # Opacity of focused window (0.0-1.0) unfocused_opacity=1.0 # Opacity of unfocused windows (0.0-1.0) # ============================================================================ # ANIMATIONS - Smooth transitions for windows and tags # ============================================================================ animations=1 # Enable window animations (0=off, 1=on) layer_animations=1 # Enable animations for layer surfaces # Animation types: "zoom" (scale) or "slide" (directional) animation_type_open=slide # Window open animation type animation_type_close=slide # Window close animation type animation_fade_in=1 # Fade in windows when opening animation_fade_out=1 # Fade out windows when closing # Tag switching animation tag_animation_direction=1 # Tag transition direction (1=horizontal, 0=vertical) # Zoom animation parameters (when using animation_type=zoom) zoom_initial_ratio=0.3 # Starting scale (0.0-1.0) zoom_end_ratio=0.8 # Ending scale (0.0-1.0) # Fade animation parameters fadein_begin_opacity=0.5 # Starting opacity for fade in fadeout_begin_opacity=0.8 # Starting opacity for fade out # Animation durations in milliseconds animation_duration_move=500 # Window move/resize duration animation_duration_open=400 # Window open duration animation_duration_tag=350 # Tag switch duration animation_duration_close=800 # Window close duration animation_duration_focus=0 # Focus change duration (0=instant) # Animation curves (cubic-bezier: x1,y1,x2,y2) # See: https://cubic-bezier.com for curve visualization animation_curve_open=0.46,1.0,0.29,1 # Ease-out-cubic for opening animation_curve_move=0.46,1.0,0.29,1 # Smooth movement curve animation_curve_tag=0.46,1.0,0.29,1 # Tag transition curve animation_curve_close=0.08,0.92,0,1 # Gentle close curve animation_curve_focus=0.46,1.0,0.29,1 # Focus change curve animation_curve_opafadeout=0.5,0.5,0.5,0.5 # Opacity fade out animation_curve_opafadein=0.46,1.0,0.29,1 # Opacity fade in # ============================================================================ # SCROLLER LAYOUT - Horizontal scrolling window layout # ============================================================================ scroller_structs=20 # Maximum number of columns scroller_default_proportion=0.8 # Default width ratio for new windows scroller_focus_center=0 # Keep focused window centered (0=off, 1=on) scroller_prefer_center=0 # Prefer centering when switching focus edge_scroller_pointer_focus=1 # Focus window under pointer at edge scroller_default_proportion_single=1.0 # Width ratio when only one window scroller_proportion_preset=0.5,0.8,1.0 # Preset width ratios (cycle with ALT+x) # ============================================================================ # MASTER-STACK LAYOUT - Traditional tiling layout (tile, center_tile, etc.) # ============================================================================ new_is_master=1 # New windows become master (1) or go to stack (0) default_mfact=0.55 # Master area size ratio (0.0-1.0) default_nmaster=1 # Number of windows in master area smartgaps=0 # Disable gaps when only one window (0=off, 1=on) # ============================================================================ # OVERVIEW MODE - Hycov-like window overview (ALT+Tab) # ============================================================================ hotarea_size=10 # Size of screen edges to trigger overview (pixels) enable_hotarea=1 # Enable hotarea triggering (0=off, 1=on) ov_tab_mode=0 # Tab mode: show windows as tabs (0=off, 1=on) overviewgappi=5 # Inner gap between windows in overview overviewgappo=30 # Outer gap from screen edges in overview # ============================================================================ # MISCELLANEOUS SETTINGS # ============================================================================ no_border_when_single=0 # Hide border when only one window axis_bind_apply_timeout=100 # Scroll binding delay (milliseconds) focus_on_activate=1 # Focus window when activated by app idleinhibit_ignore_visible=0 # Ignore idle inhibit when window visible sloppyfocus=1 # Focus follows mouse pointer warpcursor=1 # Move cursor to focused window focus_cross_monitor=0 # Allow focus to cross monitors focus_cross_tag=0 # Allow focus to cross tags enable_floating_snap=0 # Snap floating windows to edges snap_distance=30 # Snap distance in pixels cursor_size=24 # Cursor size in pixels drag_tile_to_tile=1 # Allow dragging tiled windows to reorder # ============================================================================ # KEYBOARD SETTINGS # ============================================================================ repeat_rate=25 # Key repeat rate (characters per second) repeat_delay=600 # Delay before repeat starts (milliseconds) numlockon=0 # Enable numlock on startup (0=off, 1=on) xkb_rules_layout=us # Keyboard layout (us, gb, de, fr, etc.) # For multiple layouts use: "us,ru" (switch with SUPER+Space) # ============================================================================ # TRACKPAD SETTINGS (requires logout/login to apply) # ============================================================================ disable_trackpad=0 # Disable trackpad entirely (0=enabled, 1=disabled) tap_to_click=1 # Tap to click (0=off, 1=on) tap_and_drag=1 # Tap and drag to move windows/select text drag_lock=1 # Continue drag after lifting finger trackpad_natural_scrolling=0 # Natural/reverse scrolling direction disable_while_typing=1 # Disable trackpad while typing left_handed=0 # Swap left/right buttons middle_button_emulation=0 # Two-finger tap = middle click swipe_min_threshold=1 # Minimum swipe threshold (sensitivity) # ============================================================================ # MOUSE SETTINGS (requires logout/login to apply) # ============================================================================ mouse_natural_scrolling=0 # Natural/reverse scroll direction for mouse # ============================================================================ # APPEARANCE - Colors, borders, and gaps # ============================================================================ # Gaps between windows (in pixels) gappih=5 # Inner horizontal gap (between windows) gappiv=5 # Inner vertical gap (between windows) gappoh=10 # Outer horizontal gap (from screen edges) gappov=10 # Outer vertical gap (from screen edges) # Scratchpad window dimensions scratchpad_width_ratio=0.8 # Width as ratio of screen (0.0-1.0) scratchpad_height_ratio=0.9 # Height as ratio of screen (0.0-1.0) # Border appearance borderpx=4 # Border width in pixels # Colors in RGBA hex format (0xRRGGBBAA) rootcolor=0x201b14ff # Background color bordercolor=0x444444ff # Normal window border focuscolor=0xc9b890ff # Focused window border maximizescreencolor=0x89aa61ff # Maximized window border urgentcolor=0xad401fff # Urgent window border (notifications, etc.) scratchpadcolor=0x516c93ff # Scratchpad window border globalcolor=0xb153a7ff # Global window border (visible on all tags) overlaycolor=0x14a57cff # Overlay window border # ============================================================================ # TAG RULES - Assign default layouts to tags # ============================================================================ # Available layouts: tile, scroller, grid, deck, monocle, center_tile, # vertical_tile, vertical_scroller, vertical_grid tagrule=id:1,layout_name:tile # Tag 1 uses tile layout tagrule=id:2,layout_name:tile # Tag 2 uses tile layout tagrule=id:3,layout_name:tile # Tag 3 uses tile layout tagrule=id:4,layout_name:tile # Tag 4 uses tile layout tagrule=id:5,layout_name:tile # Tag 5 uses tile layout tagrule=id:6,layout_name:tile # Tag 6 uses tile layout tagrule=id:7,layout_name:tile # Tag 7 uses tile layout tagrule=id:8,layout_name:tile # Tag 8 uses tile layout tagrule=id:9,layout_name:tile # Tag 9 uses tile layout # ============================================================================ # KEY BINDINGS # ============================================================================ # # Syntax: bind=MODIFIERS,KEY,COMMAND,ARGS... # # Modifier keys: SUPER (Windows/Command key), CTRL, ALT, SHIFT, NONE # - Combine modifiers with +: SUPER+SHIFT, CTRL+ALT, etc. # - Find key names with: wev (Wayland) or xev (X11) # # Common commands: # - spawn: Run a program # - killclient: Close focused window # - view: Switch to a tag # - tag: Move window to a tag # - focusdir: Focus window in direction (left/right/up/down) # - togglefloating: Toggle floating/tiling mode # - togglefullscreen: Toggle fullscreen # - reload_config: Reload this config file (hot-reload) # # See COMMANDS.md for a complete command reference # ============================================================================ # Config and system bind=SUPER,r,reload_config # Reload config without restarting # Applications bind=Alt,space,spawn,rofi -show drun # Application launcher bind=Alt,Return,spawn,foot # Terminal emulator # Window manager control bind=SUPER,m,quit # Exit mangowc bind=ALT,q,killclient, # Close focused window # Window focus bind=SUPER,Tab,focusstack,next # Cycle to next window bind=ALT,Left,focusdir,left # Focus window to the left bind=ALT,Right,focusdir,right # Focus window to the right bind=ALT,Up,focusdir,up # Focus window above bind=ALT,Down,focusdir,down # Focus window below # Window movement (swap positions with other windows) bind=SUPER+SHIFT,Up,exchange_client,up # Swap with window above bind=SUPER+SHIFT,Down,exchange_client,down # Swap with window below bind=SUPER+SHIFT,Left,exchange_client,left # Swap with window on left bind=SUPER+SHIFT,Right,exchange_client,right # Swap with window on right # Window state toggles bind=SUPER,g,toggleglobal, # Toggle global (visible on all tags) bind=ALT,Tab,toggleoverview, # Toggle overview mode bind=ALT,backslash,togglefloating, # Toggle floating/tiling bind=ALT,a,togglemaximizescreen, # Toggle maximize bind=ALT,f,togglefullscreen, # Toggle fullscreen bind=ALT+SHIFT,f,togglefakefullscreen, # Toggle fake fullscreen bind=SUPER,i,minimized, # Minimize window bind=SUPER,o,toggleoverlay, # Toggle overlay state bind=SUPER+SHIFT,I,restore_minimized # Restore last minimized bind=ALT,z,toggle_scratchpad # Toggle scratchpad # Scroller layout controls (when using scroller layout) bind=ALT,e,set_proportion,1.0 # Set window to full width bind=ALT,x,switch_proportion_preset, # Cycle through width presets # Layout management bind=SUPER,n,switch_layout # Cycle through available layouts # Tag navigation (tags are like workspaces, but more flexible) bind=SUPER,Left,viewtoleft,0 # Switch to previous tag bind=CTRL,Left,viewtoleft_have_client,0 # Previous tag with windows bind=SUPER,Right,viewtoright,0 # Switch to next tag bind=CTRL,Right,viewtoright_have_client,0 # Next tag with windows bind=CTRL+SUPER,Left,tagtoleft,0 # Move window to previous tag bind=CTRL+SUPER,Right,tagtoright,0 # Move window to next tag # Direct tag switching (view specific tags) bind=Ctrl,1,view,1,0 # Switch to tag 1 bind=Ctrl,2,view,2,0 # Switch to tag 2 bind=Ctrl,3,view,3,0 # Switch to tag 3 bind=Ctrl,4,view,4,0 # Switch to tag 4 bind=Ctrl,5,view,5,0 # Switch to tag 5 bind=Ctrl,6,view,6,0 # Switch to tag 6 bind=Ctrl,7,view,7,0 # Switch to tag 7 bind=Ctrl,8,view,8,0 # Switch to tag 8 bind=Ctrl,9,view,9,0 # Switch to tag 9 # Move focused window to specific tags # tag: move window and switch to that tag # tagsilent: move window but stay on current tag bind=Alt,1,tag,1,0 # Move window to tag 1 and follow bind=Alt,2,tag,2,0 # Move window to tag 2 and follow bind=Alt,3,tag,3,0 # Move window to tag 3 and follow bind=Alt,4,tag,4,0 # Move window to tag 4 and follow bind=Alt,5,tag,5,0 # Move window to tag 5 and follow bind=Alt,6,tag,6,0 # Move window to tag 6 and follow bind=Alt,7,tag,7,0 # Move window to tag 7 and follow bind=Alt,8,tag,8,0 # Move window to tag 8 and follow bind=Alt,9,tag,9,0 # Move window to tag 9 and follow # Example silent mode: bind=Alt,1,tagsilent,1 # Monitor (multi-display) controls bind=alt+shift,Left,focusmon,left # Focus monitor to the left bind=alt+shift,Right,focusmon,right # Focus monitor to the right bind=SUPER+Alt,Left,tagmon,left # Move window to left monitor bind=SUPER+Alt,Right,tagmon,right # Move window to right monitor # Gap controls (spacing between windows) bind=ALT+SHIFT,X,incgaps,1 # Increase all gaps bind=ALT+SHIFT,Z,incgaps,-1 # Decrease all gaps bind=ALT+SHIFT,R,togglegaps # Toggle gaps on/off # Floating window position adjustment (pixel-based movement) bind=CTRL+SHIFT,Up,movewin,+0,-50 # Move up 50 pixels bind=CTRL+SHIFT,Down,movewin,+0,+50 # Move down 50 pixels bind=CTRL+SHIFT,Left,movewin,-50,+0 # Move left 50 pixels bind=CTRL+SHIFT,Right,movewin,+50,+0 # Move right 50 pixels # Floating window size adjustment (pixel-based resizing) bind=CTRL+ALT,Up,resizewin,+0,-50 # Shrink height by 50 pixels bind=CTRL+ALT,Down,resizewin,+0,+50 # Grow height by 50 pixels bind=CTRL+ALT,Left,resizewin,-50,+0 # Shrink width by 50 pixels bind=CTRL+ALT,Right,resizewin,+50,+0 # Grow width by 50 pixels # ============================================================================ # MOUSE BUTTON BINDINGS # ============================================================================ # # Syntax: mousebind=MODIFIERS,BUTTON,COMMAND,ARGS # Buttons: btn_left, btn_right, btn_middle # Note: btn_left and btn_right require a modifier (can't use NONE) # ============================================================================ mousebind=SUPER,btn_left,moveresize,curmove # Drag to move floating window mousebind=NONE,btn_middle,togglemaximizescreen,0 # Middle click to maximize mousebind=SUPER,btn_right,moveresize,curresize # Drag to resize floating window # ============================================================================ # AXIS BINDINGS (Mouse wheel / Trackpad scrolling) # ============================================================================ # # Syntax: axisbind=MODIFIERS,DIRECTION,COMMAND,ARGS # Directions: UP, DOWN, LEFT, RIGHT # These bindings are triggered by scrolling gestures # ============================================================================ axisbind=SUPER,UP,viewtoleft_have_client # Scroll up to switch tags axisbind=SUPER,DOWN,viewtoright_have_client # Scroll down to switch tags # ============================================================================ # LAYER RULES - Per-application animation overrides # ============================================================================ # # Syntax: layerrule=PROPERTY:VALUE,layer_name:APP_NAME # Properties: animation_type_open, animation_type_close # Values: zoom, slide # # Use this to customize animations for specific applications # ============================================================================ layerrule=animation_type_open:zoom,layer_name:rofi # Rofi uses zoom animation layerrule=animation_type_close:zoom,layer_name:rofi # Rofi closes with zoom