- about
- customisation/
- dynamic window management/
- faq/
- multi monitor/
- multi pointer/
- patches/
- accessnthmonitor/
- activemonitor/
- activetagindicatorbar/
- actualfullscreen/
- adjacenttag/
- allowkillrule/
- alpha/
- alt tab/
- alt tab class/
- alternativetags/
- alttab2/
- alttagsdecoration/
- alwayscenter/
- alwaysfullscreen/
- alwaysontop/
- amixer integration/
- anybar/
- appicons/
- aspectresize/
- attachabove/
- attachaside/
- attachasideandbelow/
- attachbelow/
- attachbottom/
- attachdirection/
- attachtop/
- autodarkmode/
- autoraise windows/
- autoresize/
- autostart/
- autostarttags/
- autoswitch/
- awesomebar/
- azerty/
- backlight/
- bar height/
- barconfig/
- bardwmlogo/
- barpadding/
- bartabgroups/
- bartoggle/
- betterswallow/
- bidi/
- blanktags/
- borderrule/
- bottomdockgap/
- bottomstack/
- bulkill/
- canfocusfloating/
- canfocusrule/
- center/
- center first window/
- centered tags/
- centeredmaster/
- centeredwindowname/
- centretitle/
- cfacts/
- clientindicators/
- clientmonoclesymbol/
- clientopacity/
- clientresizehints/
- clientspertag/
- cmdcustomize/
- colemak keys/
- colorbar/
- colorschemes/
- columngaps/
- columns/
- combo/
- cool autostart/
- cropwindows/
- current desktop/
- cursorwarp/
- customrefreshrate/
- cyclelayouts/
- cycleview/
- cyclewindows/
- dash above activeWindow/
- deck/
- decoration hints/
- default tag apps/
- defaultlayoutpermonitor/
- defaultmfact/
- defaulttag/
- defaulttransparency/
- desktoponly/
- destroyfocus/
- dmenumatchtop/
- doublepressquit/
- dragmfact/
- dualstatus/
- dwmc/
- dwmfifo/
- dynamicscratchpads/
- dynamicswallow/
- emptyview/
- environmentvars/
- ewmhtags/
- exitmenu/
- exresize/
- extrabar/
- fadeinactive/
- fakefullscreen/
- fancybar/
- fibonacci/
- fixmultimon/
- flextile/
- float border color/
- floatborderwidth/
- floatingstatus/
- floatrules/
- focusadjacenttag/
- focusbynum/
- focusfullscreen/
- focusmaster/
- focusmonmouse/
- focusonclick/
- focusonnetactive/
- focusurgent/
- focusvisibletagstacks/
- foreground/
- freespace/
- fsignal/
- fullgaps/
- fullscreen/
- fulltagindicator/
- functionalgaps/
- gaplessgrid/
- gaps/
- gestures/
- goatcmd/
- goback/
- graballkeycodes/
- gridall/
- gridmode/
- hide vacant tags/
- hideborder/
- historical/
- holdbar/
- horizgrid/
- horizontal/
- horizontal vertical i3/
- ignore transient windows/
- inplacerotate/
- insets/
- integrated status text/
- ipc/
- ispermanent/
- keybindings/
- keychain/
- keychord/
- keycodes/
- keymodes/
- keypressrelease/
- keysequence/
- killfocusnext/
- killunsel/
- launcher/
- launcher colors/
- layoutmenu/
- layoutmonitorrules/
- layoutscroll/
- leftlayout/
- leftstack/
- locktagsfor/
- mainmon/
- mark/
- maximize/
- monocle count/
- monoclesymbol/
- movecenter/
- movekeyboard/
- moveontagmon/
- moveplace/
- moveresize/
- movestack/
- movethrow/
- movetoedge/
- mpdcontrol/
- multikey/
- multimon/
- multimonitorscratchpads/
- multipledynamicscratchpads/
- namedscratchpads/
- nametag/
- nextprev/
- nmaster/
- nmaxmaster/
- noborder/
- noborderflicker/
- notags/
- notallowed/
- notitle/
- nrowgrid/
- onlyquitonempty/
- pango/
- pertag/
- preserveonrestart/
- preventfocusshift/
- preview all win/
- push/
- pwkl/
- qubesdecorations/
- qubesrules/
- quitprompt/
- rainbowtags/
- ratiofullscreen/
- rearrangebar/
- rebootcmd/
- refreshrate/
- removeborder/
- removeboxes/
- reorganizetags/
- resetlayout/
- resetnmaster/
- resizecorners/
- resizehere/
- restartsig/
- restoreafterrestart/
- rmaster/
- rotatestack/
- rotatetags/
- rulerefresher/
- save floats/
- scheme switch/
- scratchpad/
- scratchpads/
- script tags/
- selectivefakefullscreen/
- selfrestart/
- sendmoncenter/
- setborderpx/
- setenvvars/
- setstatus/
- setxkbgroup/
- sgrstatus/
- shift tools/
- showselmon/
- shutdowncmd/
- single tagset/
- singularborders/
- sizehints/
- smartborders/
- solarized/
- spawn cwd/
- spawnprograms/
- spawntag/
- splitstatus/
- sshawarespawn/
- stacker/
- stackmfact/
- stairs/
- staticstatus/
- status2d/
- statusallmons/
- statusbarfont/
- statusbutton/
- statuscmd/
- statuscolors/
- statuspadding/
- stdin/
- steam/
- sticky/
- stickyindicator/
- swallow/
- swapfocus/
- swapmonitors/
- swaptags/
- swapwindows/
- switch all monitor tags/
- switchcol/
- switchtotag/
- systray/
- tab/
- tag previews/
- tagall/
- tagcolorscheme/
- tagfun/
- taggrid/
- tagintostack/
- taglabels/
- taglayouts/
- tagothermonitor/
- tagshift/
- tagspawn/
- tapresize/
- tatami/
- three column/
- throwtoothertag/
- tiledmove/
- tilegap/
- tilewide/
- titlecolor/
- toggleallmons/
- togglebar/
- togglebartag/
- toggleborder/
- togglefloatingcenter/
- toggletopbar/
- torus/
- transfer/
- truecenteredtitle/
- two monitor setup/
- underlinetags/
- unfloatvisible/
- unfocusednoborders/
- unicode ellipsis/
- urgentborder/
- uselessgap/
- vanitygaps/
- viewonrulestag/
- viewontag/
- vtcolors/
- warp/
- win31theme/
- windowfollow/
- windowmap/
- winicon/
- winview/
- xfce4 panel/
- xinerama monitors xorder/
- xkb/
- xrdb/
- xresources/
- xtheme/
- xtile/
- zeroastag/
- zoomswap/
- screenshots/
- status monitor/
- tutorial/
swapmonitors
Description
This patch adds the ability to swap tagsets and clients between monitors in dwm. It is particularly useful for users with multiple monitors who want to quickly rearrange workspaces by moving all windows and their tag assignments from one monitor to another.
Usage
After applying the patch, the following key binding is available by default:
MODKEY + Shift + Apostrophe (')
This keybinding will:
- Swap the currently active monitor's tagset with that of the adjacent monitor.
- Move all clients (windows) between the two monitors, effectively swapping
their contents.
You can customize this keybinding by modifying the following line in
config.def.h
file:
` { MODKEY|ShiftMask, XK_apostrophe, swapmon, {0} },
`
Download
Author
- Jameel Sawafta - jameelhsawafta@gmail.com