# Wayshell module definitions # Format: name,on_exec,off_exec,type,args... # name — unique identifier for the module # on_exec — command executed when the condition becomes true # off_exec — command executed when the condition becomes false # type — module type: zone | layout | focused # # Zone args: x1,y1,x2,y2 (screen-space bounding box) # Layout args: layout_name[,monitor] # layout_name: M for monocle, DW for dwindle, etc. # monitor: optional — if set, only triggers for that display # Focused args: app_id (e.g. firefox, com.mitchellh.ghostty) # Zone modules — trigger when cursor enters/exits screen edges zone_left,notify-send "left show",notify-send "left hide",zone,0,0,30,1080 zone_right,notify-send "right show",notify-send "right hide",zone,1890,0,1920,1080 zone_top,notify-send "top show",notify-send "top hide",zone,0,0,1920,30 zone_bottom,notify-send "bottom show",notify-send "bottom hide",zone,0,1050,1920,1080 # Layout modules — trigger when a layout is activated/deactivated on any tag # Append a monitor name after the layout to restrict to one display: # monocle_dp1,...,layout,M,DP-1 #monocle,notify-send "monocle on HDMI",notify-send "monocle off HDMI",layout,M,HDMI-A-1 #monocle_dp1,notify-send "monocle on DP-1",notify-send "monocle off DP-1",layout,M,DP-1 #monocle_dp3,notify-send "monocle on DP-3",notify-send "monocle off DP-2",layout,M,DP-3 #dwindle,notify-send "dwindle on",notify-send "dwindle off",layout,DW,HDMI-A-1 # Focused modules — trigger when specific app gains/loses focus #term_focused,notify-send "terminal focused",notify-send "terminal unfocused",focused,com.mitchellh.ghostty #browser_focused,notify-send "browser focused",notify-send "browser unfocused",focused,firefox