maomaowm/config.conf
2025-05-02 22:09:07 +08:00

324 lines
8.3 KiB
Text

# Animation Configuration(support type:zoom,slide)
# tag_animation_direction: 0-horizontal,1-vertical
animations=1
animation_type_open=slide
animation_type_close=slide
animation_fade_in=1
tag_animation_direction=1
zoom_initial_ratio=0.5
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_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
# Scroller Layout Setting
scroller_structs=20
scroller_default_proportion=0.8
scroller_focus_center=0
scroller_prefer_center=0
scroller_default_proportion_single=1.0
scroller_proportion_preset=0.5,0.8,1.0
# Master-Stack Layout Setting (tile,spiral,dwindle)
new_is_master=1
default_mfact=0.55
default_nmaster=1
smartgaps=0
# only work in spiral and dwindlw
default_smfact=0.5
# Overview Setting
hotarea_size=10
enable_hotarea=1
ov_tab_mode=0
overviewgappi=5
overviewgappo=30
# Misc
axis_bind_apply_timeout=100
focus_on_activate=1
bypass_surface_visibility=0
sloppyfocus=1
warpcursor=1
focus_cross_monitor=0
focus_cross_tag=1
# keyboard
repeat_rate=25
repeat_delay=600
numlockon=1
# Trackpad
# need relogin to make it apply
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=20
# mouse
# need relogin to make it apply
mouse_natural_scrolling=0
# Appearance
gappih=5
gappiv=5
gappoh=10
gappov=10
borderpx=4
rootcolor=0x201b14ff
bordercolor=0x444444ff
focuscolor=0xad741fff
maxmizescreencolor=0x89aa61ff
urgentcolor=0xad401fff
scratchpadcolor=0x516c93ff
globalcolor=0xb153a7ff
# layout circle limit
# if not set, it will circle all layout
# circle_layout=spiral,scroller
# tags rule (need relogin to apply)
# layout support: tile,scroller,grid,monocle,spiral,dwindle
tags=id:1,layout_name:tile
tags=id:2,layout_name:tile
tags=id:3,layout_name:tile
tags=id:4,layout_name:tile
tags=id:5,layout_name:tile
tags=id:6,layout_name:tile
tags=id:7,layout_name:tile
tags=id:8,layout_name:tile
tags=id:9,layout_name:tile
# Window Rules
# appid: type-string if match it or title, the rule match
# title: type-string if match it or appid, the rule match
# tags: type-num(1-9)
# isfloating: type-num(0 or 1)
# isfullscreen: type-num(0 or 1)
# scroller_proportion: type-float(0.1-1.0)
# animation_type_open : type-string(zoom,slide,none)
# animation_type_close : type-string(zoom,slide)
# isnoborder : type-num(0 or 1)
# monitor : type-num(0-99999)
# offsetx : type-num(-100-100) -- Offset relative to the center, 0 is center, -100 is left, 100 is right (unit %)
# offsety : type-num(-100-100) -- Offset relative to the center , 0 is center, -100 is top, 100 is bottom (unit %)
# width : type-num(0-9999)
# height : type-num(0-9999)
# isterm : type-num (0 or 1) -- when new window open, will replace it, and will restore after the sub window exit
# nnoswallow : type-num(0 or 1) -- if enable, this window wll not replace isterm window when it was open by isterm window
# globalkeybinding: type-string(for example-- alt-l or alt+super-l)
# isopensilent: type-num(0 or 1) -- open but not focus it
# example
# windowrule=isfloating:1,appid:yesplaymusic
# windowrule=width:1000,height:900,appid:yesplaymusic,title:Demons
# windowrule=isfloating:1,title:qxdrag
# windowrule=isfloating:1,appid:Rofi
# windowrule=isfloating:1,appid:wofi
# windowrule=isnoborder:1,appid:wofi
# windowrule=animation_type_open:zoom,appid:wofi
# windowrule=globalkeybinding:ctrl+alt-o,appid:com.obsproject.Studio
# windowrule=globalkeybinding:ctrl+alt-n,appid:com.obsproject.Studio
# open in specific tag
# windowrule=tags:4,appid:Google-chrome
# windowrule=tags:3,appid:QQ
# windowrule=tags:5,appid:yesplaymusic
# windowrule=tags:2,appid:mpv
# windowrule=tags:6,appid:obs
# Monitor Rules
# name|mfact|nmaster|scale|layout|(rotate or reflect)|x|y
# rotate or reflect:
# 0:no transform
# 1:90 degrees counter-clockwise
# 2:180 degrees counter-clockwise
# 3:270 degrees counter-clockwise
# 4:180 degree flip around a vertical axis
# 5:flip and rotate 90 degrees counter-clockwise
# 6:flip and rotate 180 degrees counter-clockwise
# 7:flip and rotate 270 degrees counter-clockwise
# example
# need relogin to make it apply
# monitorrule=eDP-1,0.55,1,tile,0,1,0,0
# monitorrule=HDMI-A-1,0.55,1,tile,0,1,1920,0
# Key Bindings
# key name refer to `xev` command output,
# mod keys name: super,ctrl,alt,shift,none
# reload config
bind=SUPER,r,reload_config
# menu and terminal
bind=Alt,space,spawn,rofi -show drun
bind=Alt,Return,spawn,foot
# exit
bind=SUPER,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
# 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
# switch window status
bind=SUPER,g,toggleglobal,
bind=ALT,Tab,toggleoverview,
bind=ALT,backslash,togglefloating,
bind=ALT,a,togglemaxmizescreen,
bind=ALT,f,togglefullscreen,
bind=ALT+SHIFT,f,togglefakefullscreen,
bind=SUPER,i,minized,
bind=SUPER+SHIFT,I,restore_minized
bind=ALT,z,toggle_scratchpad
# scroller layout
bind=ALT,e,set_proportion,1.0
bind=ALT,x,switch_proportion_preset,
# tile layout
bind=SUPER,e,incnmaster,1
bind=SUPER,t,incnmaster,-1
bind=ALT+CTRL,Left,setmfact,-0.01
bind=ALT+CTRL,Right,setmfact,+0.01
bind=ALT+CTRL,Up,setsmfact,-0.01
bind=ALT+CTRL,Down,setsmfact,+0.01
bind=ALT,s,zoom,
# switch layout
bind=CTRL+SUPER,i,setlayout,tile
bind=CTRL+SUPER,l,setlayout,scroller
bind=SUPER,n,switch_layout
# tag switch
bind=SUPER,Left,viewtoleft,
bind=CTRL,Left,viewtoleft_have_client,
bind=SUPER,Right,viewtoright,
bind=CTRL,Right,viewtoright_have_client,
bind=CTRL+SUPER,Left,tagtoleft,
bind=CTRL+SUPER,Right,tagtoright,
bind=Ctrl,1,view,1
bind=Ctrl,2,view,2
bind=Ctrl,3,view,3
bind=Ctrl,4,view,4
bind=Ctrl,5,view,5
bind=Ctrl,6,view,6
bind=Ctrl,7,view,7
bind=Ctrl,8,view,8
bind=Ctrl,9,view,9
# 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
bind=Alt,2,tag,2
bind=Alt,3,tag,3
bind=Alt,4,tag,4
bind=Alt,5,tag,5
bind=Alt,6,tag,6
bind=Alt,7,tag,7
bind=Alt,8,tag,8
bind=Alt,9,tag,9
bind=Super,1,toggletag,1
bind=Super,2,toggletag,2
bind=Super,3,toggletag,3
bind=Super,4,toggletag,4
bind=Super,5,toggletag,5
bind=Super,6,toggletag,6
bind=Super,7,toggletag,7
bind=Super,8,toggletag,8
bind=Super,9,toggletag,9
bind=Super+alt,1,toggleview,1
bind=Super+alt,2,toggleview,2
bind=Super+alt,3,toggleview,3
bind=Super+alt,4,toggleview,4
bind=Super+alt,5,toggleview,5
bind=Super+alt,6,toggleview,6
bind=Super+alt,7,toggleview,7
bind=Super+alt,8,toggleview,8
bind=Super+alt,9,toggleview,9
# monitor switch
bind=SUPER,bracketleft,focusmon,left
bind=SUPER,bracketright,focusmon,right
bind=SUPER+CTRL,bracketleft,tagmon,left
bind=SUPER+CTRL,bracketright,tagmon,right
# gaps
bind=ALT+SHIFT,X,incgaps,1
bind=ALT+SHIFT,Z,incgaps,-1
bind=ALT+SHIFT,R,togglegaps
# movewin
bind=SUPER+SHIFT,Up,movewin,up
bind=SUPER+SHIFT,Down,movewin,down
bind=SUPER+SHIFT,Left,movewin,left
bind=SUPER+SHIFT,Right,movewin,right
# resizewin
bind=SUPER+ALT,Up,resizewin,up
bind=SUPER+ALT,Down,resizewin,down
bind=SUPER+ALT,Left,resizewin,left
bind=SUPER+ALT,Right,resizewin,right
#custom app bind example
# spawn_on_empty (if tag 4 is empty , open app in this,otherwise view to tag 4)
# bind=SUPER,Return,spawn_on_empty,google-chrome,4
# spawn
# bind=CTRL+ALT,Return,spawn,st -e ~/tool/ter-multiplexer.sh
# Mouse Button Bindings
# NONE mode key only work in ov mode
mousebind=SUPER,btn_left,moveresize,curmove
mousebind=NONE,btn_middle,togglemaxmizescreen,0
mousebind=SUPER,btn_right,moveresize,curresize
mousebind=NONE,btn_left,toggleoverview,-1
mousebind=NONE,btn_right,killclient,0
# Axis Bindings
axisbind=SUPER,UP,viewtoleft_have_client
axisbind=SUPER,DOWN,viewtoright_have_client
# Gesture bind
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