diff --git a/x11/swayr/Makefile b/x11/swayr/Makefile index 760299f33fb5..8a72ab5e3b57 100644 --- a/x11/swayr/Makefile +++ b/x11/swayr/Makefile @@ -1,82 +1,82 @@ PORTNAME= swayr DISTVERSIONPREFIX= v -DISTVERSION= 0.7.0 -PORTREVISION= 1 +DISTVERSION= 0.8.0 CATEGORIES= x11 MASTER_SITES= https://git.sr.ht/~tsdh/${PORTNAME}/archive/${DISTVERSIONFULL}${EXTRACT_SUFX}?dummy=/ # XXX Teach USES=cargo to not override default DISTFILES DISTFILES= ${DISTNAME}${EXTRACT_SUFX} MAINTAINER= jbeich@FreeBSD.org COMMENT= Urgent-first/LRU window switcher for sway LICENSE= GPLv3+ LICENSE_FILE= ${WRKSRC}/LICENSE USES= cargo PLIST_FILES= bin/${PORTNAME} \ bin/${PORTNAME}d CARGO_CRATES= aho-corasick-0.7.18 \ atty-0.2.14 \ autocfg-1.0.1 \ bitflags-1.3.2 \ cfg-if-1.0.0 \ - clap-3.0.0-beta.4 \ - clap_derive-3.0.0-beta.4 \ + clap-3.0.0-beta.5 \ + clap_derive-3.0.0-beta.5 \ directories-4.0.1 \ dirs-sys-0.3.6 \ getrandom-0.2.3 \ hashbrown-0.11.2 \ heck-0.3.3 \ hermit-abi-0.1.19 \ indexmap-1.7.0 \ itoa-0.4.8 \ lazy_static-1.4.0 \ - libc-0.2.102 \ + libc-0.2.105 \ memchr-2.4.1 \ - os_str_bytes-3.1.0 \ - ppv-lite86-0.2.10 \ + os_str_bytes-4.2.0 \ + ppv-lite86-0.2.15 \ proc-macro-error-1.0.4 \ proc-macro-error-attr-1.0.4 \ - proc-macro2-1.0.29 \ - quote-1.0.9 \ + proc-macro2-1.0.32 \ + quote-1.0.10 \ rand-0.8.4 \ rand_chacha-0.3.1 \ rand_core-0.6.3 \ rand_hc-0.3.1 \ redox_syscall-0.2.10 \ redox_users-0.4.0 \ regex-1.5.4 \ regex-syntax-0.6.25 \ ryu-1.0.5 \ serde-1.0.130 \ serde_derive-1.0.130 \ serde_json-1.0.68 \ strsim-0.10.0 \ swayipc-3.0.0-alpha.3 \ swayipc-types-1.0.0-alpha.3 \ - syn-1.0.77 \ + syn-1.0.81 \ termcolor-1.1.2 \ textwrap-0.14.2 \ - thiserror-1.0.29 \ - thiserror-impl-1.0.29 \ + thiserror-1.0.30 \ + thiserror-impl-1.0.30 \ toml-0.5.8 \ + unicase-2.6.0 \ unicode-segmentation-1.8.0 \ unicode-width-0.1.9 \ unicode-xid-0.2.2 \ - vec_map-0.8.2 \ version_check-0.9.3 \ wasi-0.10.2+wasi-snapshot-preview1 \ winapi-0.3.9 \ winapi-i686-pc-windows-gnu-0.4.0 \ winapi-util-0.1.5 \ winapi-x86_64-pc-windows-gnu-0.4.0 post-patch: -# Respect PREFIX for *.desktop - @${REINPLACE_CMD} 's,/usr/share,${DATADIR:H},' \ +# Respect PREFIX for config and icons + @${REINPLACE_CMD} -e 's,/usr/share,${DATADIR:H},' \ + -e 's,/etc,${PREFIX}&,' \ ${WRKSRC}/src/config.rs \ ${WRKSRC}/src/util.rs .include diff --git a/x11/swayr/distinfo b/x11/swayr/distinfo index 92658d2bed39..513a8d6d3850 100644 --- a/x11/swayr/distinfo +++ b/x11/swayr/distinfo @@ -1,113 +1,113 @@ -TIMESTAMP = 1632682733 -SHA256 (swayr-v0.7.0.tar.gz) = 64750d317688b917f923c5a2d2c3140a4ec370c7c92cf3377bde0e0480b5272e -SIZE (swayr-v0.7.0.tar.gz) = 924698 +TIMESTAMP = 1635534439 +SHA256 (swayr-v0.8.0.tar.gz) = 6372fbd23fa2338a53a18e4cb9bb58b2ea52ff69ea6f8a839ff08dbe8c8311f4 +SIZE (swayr-v0.8.0.tar.gz) = 927865 SHA256 (rust/crates/aho-corasick-0.7.18.crate) = 1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f SIZE (rust/crates/aho-corasick-0.7.18.crate) = 112923 SHA256 (rust/crates/atty-0.2.14.crate) = d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8 SIZE (rust/crates/atty-0.2.14.crate) = 5470 SHA256 (rust/crates/autocfg-1.0.1.crate) = cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a SIZE (rust/crates/autocfg-1.0.1.crate) = 12908 SHA256 (rust/crates/bitflags-1.3.2.crate) = bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a SIZE (rust/crates/bitflags-1.3.2.crate) = 23021 SHA256 (rust/crates/cfg-if-1.0.0.crate) = baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd SIZE (rust/crates/cfg-if-1.0.0.crate) = 7934 -SHA256 (rust/crates/clap-3.0.0-beta.4.crate) = fcd70aa5597dbc42f7217a543f9ef2768b2ef823ba29036072d30e1d88e98406 -SIZE (rust/crates/clap-3.0.0-beta.4.crate) = 150387 -SHA256 (rust/crates/clap_derive-3.0.0-beta.4.crate) = 0b5bb0d655624a0b8770d1c178fb8ffcb1f91cc722cb08f451e3dc72465421ac -SIZE (rust/crates/clap_derive-3.0.0-beta.4.crate) = 24876 +SHA256 (rust/crates/clap-3.0.0-beta.5.crate) = feff3878564edb93745d58cf63e17b63f24142506e7a20c87a5521ed7bfb1d63 +SIZE (rust/crates/clap-3.0.0-beta.5.crate) = 155626 +SHA256 (rust/crates/clap_derive-3.0.0-beta.5.crate) = 8b15c6b4f786ffb6192ffe65a36855bc1fc2444bcd0945ae16748dcd6ed7d0d3 +SIZE (rust/crates/clap_derive-3.0.0-beta.5.crate) = 25228 SHA256 (rust/crates/directories-4.0.1.crate) = f51c5d4ddabd36886dd3e1438cb358cdcb0d7c499cb99cb4ac2e38e18b5cb210 SIZE (rust/crates/directories-4.0.1.crate) = 16040 SHA256 (rust/crates/dirs-sys-0.3.6.crate) = 03d86534ed367a67548dc68113a0f5db55432fdfbb6e6f9d77704397d95d5780 SIZE (rust/crates/dirs-sys-0.3.6.crate) = 10626 SHA256 (rust/crates/getrandom-0.2.3.crate) = 7fcd999463524c52659517fe2cea98493cfe485d10565e7b0fb07dbba7ad2753 SIZE (rust/crates/getrandom-0.2.3.crate) = 26261 SHA256 (rust/crates/hashbrown-0.11.2.crate) = ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e SIZE (rust/crates/hashbrown-0.11.2.crate) = 85713 SHA256 (rust/crates/heck-0.3.3.crate) = 6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c SIZE (rust/crates/heck-0.3.3.crate) = 10260 SHA256 (rust/crates/hermit-abi-0.1.19.crate) = 62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33 SIZE (rust/crates/hermit-abi-0.1.19.crate) = 9979 SHA256 (rust/crates/indexmap-1.7.0.crate) = bc633605454125dec4b66843673f01c7df2b89479b32e0ed634e43a91cff62a5 SIZE (rust/crates/indexmap-1.7.0.crate) = 50363 SHA256 (rust/crates/itoa-0.4.8.crate) = b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4 SIZE (rust/crates/itoa-0.4.8.crate) = 11926 SHA256 (rust/crates/lazy_static-1.4.0.crate) = e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646 SIZE (rust/crates/lazy_static-1.4.0.crate) = 10443 -SHA256 (rust/crates/libc-0.2.102.crate) = a2a5ac8f984bfcf3a823267e5fde638acc3325f6496633a5da6bb6eb2171e103 -SIZE (rust/crates/libc-0.2.102.crate) = 537138 +SHA256 (rust/crates/libc-0.2.105.crate) = 869d572136620d55835903746bcb5cdc54cb2851fd0aeec53220b4bb65ef3013 +SIZE (rust/crates/libc-0.2.105.crate) = 554066 SHA256 (rust/crates/memchr-2.4.1.crate) = 308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a SIZE (rust/crates/memchr-2.4.1.crate) = 64977 -SHA256 (rust/crates/os_str_bytes-3.1.0.crate) = 6acbef58a60fe69ab50510a55bc8cdd4d6cf2283d27ad338f54cb52747a9cf2d -SIZE (rust/crates/os_str_bytes-3.1.0.crate) = 14434 -SHA256 (rust/crates/ppv-lite86-0.2.10.crate) = ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857 -SIZE (rust/crates/ppv-lite86-0.2.10.crate) = 20915 +SHA256 (rust/crates/os_str_bytes-4.2.0.crate) = addaa943333a514159c80c97ff4a93306530d965d27e139188283cd13e06a799 +SIZE (rust/crates/os_str_bytes-4.2.0.crate) = 20800 +SHA256 (rust/crates/ppv-lite86-0.2.15.crate) = ed0cfbc8191465bed66e1718596ee0b0b35d5ee1f41c5df2189d0fe8bde535ba +SIZE (rust/crates/ppv-lite86-0.2.15.crate) = 22002 SHA256 (rust/crates/proc-macro-error-1.0.4.crate) = da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c SIZE (rust/crates/proc-macro-error-1.0.4.crate) = 25293 SHA256 (rust/crates/proc-macro-error-attr-1.0.4.crate) = a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869 SIZE (rust/crates/proc-macro-error-attr-1.0.4.crate) = 7971 -SHA256 (rust/crates/proc-macro2-1.0.29.crate) = b9f5105d4fdaab20335ca9565e106a5d9b82b6219b5ba735731124ac6711d23d -SIZE (rust/crates/proc-macro2-1.0.29.crate) = 38772 -SHA256 (rust/crates/quote-1.0.9.crate) = c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7 -SIZE (rust/crates/quote-1.0.9.crate) = 25042 +SHA256 (rust/crates/proc-macro2-1.0.32.crate) = ba508cc11742c0dc5c1659771673afbab7a0efab23aa17e854cbab0837ed0b43 +SIZE (rust/crates/proc-macro2-1.0.32.crate) = 41003 +SHA256 (rust/crates/quote-1.0.10.crate) = 38bc8cc6a5f2e3655e0899c1b848643b2562f853f114bfec7be120678e3ace05 +SIZE (rust/crates/quote-1.0.10.crate) = 29960 SHA256 (rust/crates/rand-0.8.4.crate) = 2e7573632e6454cf6b99d7aac4ccca54be06da05aca2ef7423d22d27d4d4bcd8 SIZE (rust/crates/rand-0.8.4.crate) = 87406 SHA256 (rust/crates/rand_chacha-0.3.1.crate) = e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88 SIZE (rust/crates/rand_chacha-0.3.1.crate) = 15251 SHA256 (rust/crates/rand_core-0.6.3.crate) = d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7 SIZE (rust/crates/rand_core-0.6.3.crate) = 21938 SHA256 (rust/crates/rand_hc-0.3.1.crate) = d51e9f596de227fda2ea6c84607f5558e196eeaf43c986b724ba4fb8fdf497e7 SIZE (rust/crates/rand_hc-0.3.1.crate) = 11891 SHA256 (rust/crates/redox_syscall-0.2.10.crate) = 8383f39639269cde97d255a32bdb68c047337295414940c68bdd30c2e13203ff SIZE (rust/crates/redox_syscall-0.2.10.crate) = 23582 SHA256 (rust/crates/redox_users-0.4.0.crate) = 528532f3d801c87aec9def2add9ca802fe569e44a544afe633765267840abe64 SIZE (rust/crates/redox_users-0.4.0.crate) = 13023 SHA256 (rust/crates/regex-1.5.4.crate) = d07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461 SIZE (rust/crates/regex-1.5.4.crate) = 236581 SHA256 (rust/crates/regex-syntax-0.6.25.crate) = f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b SIZE (rust/crates/regex-syntax-0.6.25.crate) = 293293 SHA256 (rust/crates/ryu-1.0.5.crate) = 71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e SIZE (rust/crates/ryu-1.0.5.crate) = 49570 SHA256 (rust/crates/serde-1.0.130.crate) = f12d06de37cf59146fbdecab66aa99f9fe4f78722e3607577a5375d66bd0c913 SIZE (rust/crates/serde-1.0.130.crate) = 75305 SHA256 (rust/crates/serde_derive-1.0.130.crate) = d7bc1a1ab1961464eae040d96713baa5a724a8152c1222492465b54322ec508b SIZE (rust/crates/serde_derive-1.0.130.crate) = 54703 SHA256 (rust/crates/serde_json-1.0.68.crate) = 0f690853975602e1bfe1ccbf50504d67174e3bcf340f23b5ea9992e0587a52d8 SIZE (rust/crates/serde_json-1.0.68.crate) = 114986 SHA256 (rust/crates/strsim-0.10.0.crate) = 73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623 SIZE (rust/crates/strsim-0.10.0.crate) = 11355 SHA256 (rust/crates/swayipc-3.0.0-alpha.3.crate) = 9cd9a688c43e93f1e1d2b2366a5403815b8017dd5f9cdaf51ae8ae9ae8fba5d0 SIZE (rust/crates/swayipc-3.0.0-alpha.3.crate) = 3705 SHA256 (rust/crates/swayipc-types-1.0.0-alpha.3.crate) = e125745767953fbbea5ba38caede26c89e4aeaf741afff7eb655967611b695d6 SIZE (rust/crates/swayipc-types-1.0.0-alpha.3.crate) = 5648 -SHA256 (rust/crates/syn-1.0.77.crate) = 5239bc68e0fef57495900cfea4e8dc75596d9a319d7e16b1e0a440d24e6fe0a0 -SIZE (rust/crates/syn-1.0.77.crate) = 233424 +SHA256 (rust/crates/syn-1.0.81.crate) = f2afee18b8beb5a596ecb4a2dce128c719b4ba399d34126b9e4396e3f9860966 +SIZE (rust/crates/syn-1.0.81.crate) = 234144 SHA256 (rust/crates/termcolor-1.1.2.crate) = 2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4 SIZE (rust/crates/termcolor-1.1.2.crate) = 17287 SHA256 (rust/crates/textwrap-0.14.2.crate) = 0066c8d12af8b5acd21e00547c3797fde4e8677254a7ee429176ccebbe93dd80 SIZE (rust/crates/textwrap-0.14.2.crate) = 52016 -SHA256 (rust/crates/thiserror-1.0.29.crate) = 602eca064b2d83369e2b2f34b09c70b605402801927c65c11071ac911d299b88 -SIZE (rust/crates/thiserror-1.0.29.crate) = 17455 -SHA256 (rust/crates/thiserror-impl-1.0.29.crate) = bad553cc2c78e8de258400763a647e80e6d1b31ee237275d756f6836d204494c -SIZE (rust/crates/thiserror-impl-1.0.29.crate) = 15201 +SHA256 (rust/crates/thiserror-1.0.30.crate) = 854babe52e4df1653706b98fcfc05843010039b406875930a70e4d9644e5c417 +SIZE (rust/crates/thiserror-1.0.30.crate) = 17748 +SHA256 (rust/crates/thiserror-impl-1.0.30.crate) = aa32fd3f627f367fe16f893e2597ae3c05020f8bba2666a4e6ea73d377e5714b +SIZE (rust/crates/thiserror-impl-1.0.30.crate) = 15230 SHA256 (rust/crates/toml-0.5.8.crate) = a31142970826733df8241ef35dc040ef98c679ab14d7c3e54d827099b3acecaa SIZE (rust/crates/toml-0.5.8.crate) = 54219 +SHA256 (rust/crates/unicase-2.6.0.crate) = 50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6 +SIZE (rust/crates/unicase-2.6.0.crate) = 23478 SHA256 (rust/crates/unicode-segmentation-1.8.0.crate) = 8895849a949e7845e06bd6dc1aa51731a103c42707010a5b591c0038fb73385b SIZE (rust/crates/unicode-segmentation-1.8.0.crate) = 94011 SHA256 (rust/crates/unicode-width-0.1.9.crate) = 3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973 SIZE (rust/crates/unicode-width-0.1.9.crate) = 16745 SHA256 (rust/crates/unicode-xid-0.2.2.crate) = 8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3 SIZE (rust/crates/unicode-xid-0.2.2.crate) = 14955 -SHA256 (rust/crates/vec_map-0.8.2.crate) = f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191 -SIZE (rust/crates/vec_map-0.8.2.crate) = 14466 SHA256 (rust/crates/version_check-0.9.3.crate) = 5fecdca9a5291cc2b8dcf7dc02453fee791a280f3743cb0905f8822ae463b3fe SIZE (rust/crates/version_check-0.9.3.crate) = 12547 SHA256 (rust/crates/wasi-0.10.2+wasi-snapshot-preview1.crate) = fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6 SIZE (rust/crates/wasi-0.10.2+wasi-snapshot-preview1.crate) = 27505 SHA256 (rust/crates/winapi-0.3.9.crate) = 5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419 SIZE (rust/crates/winapi-0.3.9.crate) = 1200382 SHA256 (rust/crates/winapi-i686-pc-windows-gnu-0.4.0.crate) = ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6 SIZE (rust/crates/winapi-i686-pc-windows-gnu-0.4.0.crate) = 2918815 SHA256 (rust/crates/winapi-util-0.1.5.crate) = 70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178 SIZE (rust/crates/winapi-util-0.1.5.crate) = 10164 SHA256 (rust/crates/winapi-x86_64-pc-windows-gnu-0.4.0.crate) = 712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f SIZE (rust/crates/winapi-x86_64-pc-windows-gnu-0.4.0.crate) = 2947998 diff --git a/x11/swayr/pkg-descr b/x11/swayr/pkg-descr index 0647140a559e..0d5b3d066d3a 100644 --- a/x11/swayr/pkg-descr +++ b/x11/swayr/pkg-descr @@ -1,30 +1,68 @@ Swayr consists of a demon, and a client. The demon swayrd records window/workspace creations, deletions, and focus changes using sway's JSON IPC interface. The client swayr offers subcommands, see swayr --help, and sends them to the demon which executes them. Right now, there are these subcommands: -* next-window focuses the next window in depth-first iteration order of the - tree. -* prev-window focuses the previous window in depth-first iteration order of - the tree. * switch-window displays all windows in the order urgent first, then last-recently-used, focused last and focuses the selected. * quit-window displays all windows and quits the selected one. * switch-to-urgent-or-lru-window switches to the next window with urgency hint (if any) or to the last recently used window. * switch-workspace displays all workspaces in LRU order and switches to the selected one. * switch-workspace-or-window displays all workspaces and their windows and switches to the selected workspace or window. * quit-workspace-or-window displays all workspaces and their windows and allows to quit either the selected workspace (all its windows) or the selected window. +* next-window (all-workspaces|current-workspace) & prev-window + (all-workspaces|current-workspace) focus the next/previous window in + depth-first iteration order of the tree. The argument all-workspaces or + current-workspace define if all windows of all workspaces or only those of + the current workspace are considered. +* next-tiled-window & prev-tiled-window do the same as next-window & + prev-window but switch only between windows contained in a tiled container. +* next-tabbed-or-stacked-window & prev-tabbed-or-stacked-window do the same + as next-window & prev-window but switch only between windows contained in + a tabbed or stacked container. +* next-floating-window & prev-floating-window do the same as next-window + & prev-window but switch only between floating windows. +* next-window-of-same-layout & prev-window-of-same-layout is like + next-floating-window / prev-floating-window if the current window is + floating, it is like next-tabbed-or-stacked-window / + prev-tabbed-or-stacked-window if the current window is in a tabbed, or + stacked container, it is like next-tiled-window / prev-tiled-window if + the current windows is in a tiled container, and is like next-window / + prev-window otherwise. * execute-swaymsg-command displays most swaymsg which don't require - additional input and executes the selected one. That's handy especially for + additional input and executes the selected one. That's handy especially for less often used commands not bound to a key. * execute-swayr-command displays all commands above and executes the selected - one. (This is useful for accessing swayr commands which are not bound to a + one. (This is useful for accessing swayr commands which are not bound to a key.) +* tile-workspace exclude-floating|include-floating tiles all windows on the + current workspace (excluding or including floating ones). That's done by + moving all windows away to some special workspace, setting the current + workspace to splith layout, and then moving the windows back. If the + auto_tile feature is used, see the Configuration section below, it'll + change from splitting horizontally to vertically during re-insertion. +* shuffle-tile-workspace exclude-floating|include-floating shuffles & tiles + all windows on the current workspace. The shuffle part means that (a) the + windows are shuffled before re-insertion, and (b) a randomly chosen already + re-inserted window is focused before re-inserting another window. So while + tile-workspace on a typical horizontally oriented screen and 5 windows will + usually result in a layout with one window on the left and all four others + tiled vertially on the right, shuffle-tile-workspace in combination with + auto_tile usually results in a more balanced layout, i.e., 2 windows tiled + vertically on the right and the other 4 tiled vertially on the left. If you + have less than a handful of windows, just repeat shuffle-tile-workspace a + few times until happenstance creates the layout you wanted. +* tab-workspace exclude-floating|include-floating puts all windows of the + current workspace into a tabbed container. +* toggle-tab-shuffle-tile-workspace exclude-floating|include-floating toggles + between a tabbed and tiled layout, i.e., it calls shuffle-tile-workspace if + it is currently tabbed, and calls shuffle-tile-workspace if it is currently + tiled. WWW: https://sr.ht/~tsdh/swayr/