From 19e81f3e47285890da88890ff45378791672a89e Mon Sep 17 00:00:00 2001 From: Martin Goldhahn Date: Tue, 4 Aug 2026 04:54:33 +0200 Subject: [PATCH] added hyprland layout switcher (#232) * added hyprland layout switcher * fixes after plugin checking --------- Co-authored-by: Martin Goldhahn --- hypr-layout-switcher/README.md | 84 ++++++++++++++++++++++ hypr-layout-switcher/plugin.toml | 18 +++++ hypr-layout-switcher/service.luau | 64 +++++++++++++++++ hypr-layout-switcher/thumbnail.webp | Bin 0 -> 54090 bytes hypr-layout-switcher/translations/en.json | 3 + hypr-layout-switcher/widget.luau | 29 ++++++++ 6 files changed, 198 insertions(+) create mode 100644 hypr-layout-switcher/README.md create mode 100644 hypr-layout-switcher/plugin.toml create mode 100644 hypr-layout-switcher/service.luau create mode 100644 hypr-layout-switcher/thumbnail.webp create mode 100644 hypr-layout-switcher/translations/en.json create mode 100644 hypr-layout-switcher/widget.luau diff --git a/hypr-layout-switcher/README.md b/hypr-layout-switcher/README.md new file mode 100644 index 0000000..ac437f3 --- /dev/null +++ b/hypr-layout-switcher/README.md @@ -0,0 +1,84 @@ +# Hyprland Layout Switcher + +![Hyprland Layout Switcher thumbnail](thumbnail.webp) + +**Hyprland Layout Switcher** is a bar widget for [Noctalia](https://docs.noctalia.dev) that shows the tiled layout of the currently active Hyprland workspace and cycles to the next layout on click or via a keybinding. Switching is scoped to the current workspace with a workspace rule, so each workspace keeps its own layout instead of changing the global default. + +## Plugin + +| Field | Value | +| --- | --- | +| ID | `maddingo/hypr-layout-switcher` | +| Entries | Bar widget: `toggle`; service: `poller` | + +## Requirements + +Hyprland, with `hyprctl` on `PATH` — the plugin declares `hyprland` as a dependency. It reads `hyprctl activeworkspace -j` and applies layouts through `hyprctl eval`, so it does nothing on other compositors (Sway, river, Niri, X11 WMs, …). + +The `monocle` and `scrolling` layouts come from Hyprland layout plugins. If you do not have them installed, cycling onto them is a no-op on Hyprland's side. + +## Usage + +Enable the plugin, then add the widget to a bar section: + +```sh +noctalia msg plugins enable maddingo/hypr-layout-switcher +``` + +In Settings → Bar, add **Hyprland Layout Switcher → toggle** to the section you want. The widget shows an icon plus the layout name (`Dwindle`, `Master`, `Monocle`, `Scrolling`). + +The `poller` service runs `hyprctl activeworkspace -j` once per second and publishes the layout, so the widget stays in sync when you switch workspaces or change the layout from elsewhere. + +Clicking the widget cycles to the next layout in `dwindle → master → monocle → scrolling → dwindle`. Special workspaces (scratchpads) are handled too, matched by name instead of id. + +## IPC + +The `poller` service accepts a `cycle` event, which does the same thing as clicking the widget: + +```sh +noctalia msg plugin maddingo/hypr-layout-switcher:poller all cycle +``` + +The signature is `plugin `. `poller` is a service entry with no visible output, so the target must be `all`. + +Bind it in `~/.config/hypr/hyprland.lua`: + +```lua +-- Cycle the active workspace's tiled layout +bind("SUPER, Tab, exec, " + .. "noctalia msg plugin maddingo/hypr-layout-switcher:poller all cycle") +``` + +Reload with `hyprctl reload`. The widget updates immediately, whether you cycle via the keybinding or by clicking. + +To jump straight to a specific layout instead of cycling, bind `hyprctl` directly — the widget picks the change up on its next poll: + +```lua +bind("SUPER, D, exec, hyprctl keyword general:layout dwindle") +bind("SUPER, M, exec, hyprctl keyword general:layout master") +``` + +Note that `general:layout` changes the global default, whereas the plugin's `cycle` only affects the active workspace. + +## Notes + +- **Commands spawned:** `hyprctl activeworkspace -j` every second while the plugin is enabled, and `hyprctl eval '…'` on each cycle. No network access, no files written. +- **No settings.** To change behaviour, fork the repo and add your fork as the plugin source. The layout list lives at the top of `service.luau`: + + ```lua + local layouts = { "dwindle", "master", "monocle", "scrolling" } + ``` + + Trim it to the layouts you actually have installed, and keep the `glyphs` table at the top of `widget.luau` in sync. Reload the plugin afterwards. +- The plugin only sets the layout; per-layout options stay in your Hyprland config, for example: + + ```lua + -- See https://wiki.hypr.land/Configuring/Layouts/Dwindle-Layout/ for more + hl.config({ dwindle = { preserve_split = true } }) + + -- See https://wiki.hypr.land/Configuring/Layouts/Master-Layout/ for more + hl.config({ master = { new_status = "master" } }) + + -- See https://wiki.hypr.land/Configuring/Layouts/Scrolling-Layout/ for more + hl.config({ scrolling = { fullscreen_on_one_column = true } }) + ``` diff --git a/hypr-layout-switcher/plugin.toml b/hypr-layout-switcher/plugin.toml new file mode 100644 index 0000000..e93b444 --- /dev/null +++ b/hypr-layout-switcher/plugin.toml @@ -0,0 +1,18 @@ +id = "maddingo/hypr-layout-switcher" +name = "Hyprland Layout Switcher" +description = "Shows and cycles the active workspace's layout" +version = "0.1.0" +plugin_api = 3 +author = "maddingo" +license = "MIT" +icon = "layout-grid" +tags = ["hyprland"] +dependencies = ["hyprland"] + +[[service]] +id = "poller" +entry = "service.luau" + +[[widget]] +id = "toggle" +entry = "widget.luau" diff --git a/hypr-layout-switcher/service.luau b/hypr-layout-switcher/service.luau new file mode 100644 index 0000000..34f232c --- /dev/null +++ b/hypr-layout-switcher/service.luau @@ -0,0 +1,64 @@ +--!nonstrict + +local layouts = { "dwindle", "master", "monocle", "scrolling" } + +noctalia.setUpdateInterval(1000) + +local lastLayout = nil + +local function setLayoutCmd(layout) + local lua = string.format( + "local w = hl.get_active_special_workspace() or hl.get_active_workspace(); " + .. "if w then if w.special then hl.workspace_rule({workspace = tostring(w.name), layout = %q}) " + .. "else hl.workspace_rule({workspace = tostring(w.id), layout = %q}) end end", + layout, layout + ) + return "hyprctl eval '" .. lua:gsub("'", "'\\''") .. "'" +end + +local function poll() + if not noctalia.commandExists("hyprctl") then + return + end + noctalia.runAsync("hyprctl activeworkspace -j", function(result) + if result.exitCode ~= 0 then + return + end + local data = noctalia.json.decode(result.stdout) + if data == nil then + return + end + local layout = data.tiledLayout + if layout and layout ~= lastLayout then + lastLayout = layout + noctalia.state.set("layout", layout) + end + end) +end + +local function cycle() + local idx = 1 + for i, l in ipairs(layouts) do + if l == lastLayout then + idx = (i % #layouts) + 1 + break + end + end + local nextLayout = layouts[idx] + noctalia.runAsync(setLayoutCmd(nextLayout)) + lastLayout = nextLayout + noctalia.state.set("layout", nextLayout) +end + +function onIpc(event) + if event == "cycle" then + cycle() + end +end + +function update() + poll() +end + +poll() + diff --git a/hypr-layout-switcher/thumbnail.webp b/hypr-layout-switcher/thumbnail.webp new file mode 100644 index 0000000000000000000000000000000000000000..81f62d13f69b5ca7b7547737f611fba0a64f8d2c GIT binary patch literal 54090 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
u{^=d zyI!R6%GE>n%3koXJe?VBr**)@s1mhdk#EVt=e{OWO{QmzZptKWlmM348G~wv~r|FFL#DxVDx&|C^Kg zhWA!)@4TdM@aONbH^F8+65bwdOHTfYQ*t_>{iLM-syTazMeES|M-q5PZXm&-@~ zZP?E6fBU+NT5E%U?wOH$KxKDey!v{L z>X&~$EQrq0xp3U_)Vmz(wPIVR%G8>PtH>W>*&HSJ_1dph5^XQmB~06vnx($wtIm&N z$HSG@-z5{7_Uaw|e)G50wyTo5A}jkU+Bghtgmcmlui9+=;BTvu|M87__xG1rgfUm` zoy^p+|Hh;8jMd*BC$C?(WrgUy?a!Y^Su=PuT{#&4PB_ycHSEIOlxiOf#bu@|7qjel zeP3Qb-Th=vcF=9MCkF+j>=tL0GGWh+`5&*{kDbMScGH)KvmKB3e)Qb9HYEJ# zkB-+*i$f}x`f$D6FB~dJinAIY+Kv{xG>gDEVWdsL`K4J8tl_I!{vA7P5JV z0)uR*nA*oPOfs6%=NhehaCv`R`@PR8M;Ww=BC7K$>=mzvZSObVT>1NU z$nNcOZUM|+ibG30`q-qVoBgWMe|h<+^An-l0c>544+UP`t!ENkBXaZ4Blb0$Kl$#Q z!_c{3WX1Gp1wHeRPInLWwHsmC`L?h}0&-n@uARdc(>y47NR2mXHqaVm9O)m zm)7(nu^CB=)LXd(-@cjs`!X}@B>~o#p?)_d19#ptIW}?mHRb+Y$)ERCx9DHEcXY(9 zY^~F(Q@#H;H9zbLAdE}{LG1L zYfI0XEWRe3sWd-p`YlO!R_U9IW#_LNVst^TYD$GHzx zQO!AyEdLHYI_GlXfrR|p&{Izy&k-@{c(8x(yTl4F_o+1@@AjMZ*vXh0EeVppSeaJ) z_pQd#M=Ry~SS~Q@7zuJs^A_FU^X%$`y@%^d^OGjX#rnDPy>z%%qjtI_I)1-D{{`8n z)mOrgOIDeyG~Nj76%Cv3d({4@>HY6B3f>sFE5;#_CNedcK36!`y+1SgLXJdmG_s5*zof+}*Ztlm*UwgY9_TJ;0IoEMo z_j(C|yk$kIfBtHg+;CM|^V4pE&RVOWU_J)sgFi%ARG%G`d&i>nLTvN(%74kCeRqoW zCzZB|Z2JC4s_ZFK!T|?i?RWOsWsQMrPk(=-{;ldey{3aMHTq zn~I4*Pwd-mbMJ_LP2v%EO}xq0``o-udWFp51m4hM#lY+**ZEl%C7DUR3-Dc8U9!b^ zZJ4LC*}9T9nKP<%cV@<1_*pE&cJzG5vcRj8n@^a!pR@S8kEPcle$O)vrTN=GY@U>N zFg0|s^|cdmuEbNT%nU%#2a9xw&A&gomcnUtB3N zm)FXO?c5voQ>MfFan7EXD>-~0-Ye_meB%8fG+2k>z!75&%^mK$`Z80CYv0CaINa7{ z{1}w6q5h!EY4fCp78`3xw~1Tcl*DXoefztiBJRGq_|dk@k3asIcU|-PnWE2f#@F`E z7kTjQv_A9Pd%hfM#%;d*76(%AOPW~h)h!Myw2quw)XTNXfAOBc*&Us;4? zJV9mkj!^#h!n1FDU8^Md;Zig6YI6aMe8P%{TIHi*T+|X&2Ts2e#SeKD)jBoAu`HnX5ZEeWbEDwH!`f3Kz-BtbY1N)}Z&r`aL^B{SV$d zYJb9K%h}jGhD9HpUteY4zh7eNTDJ14xspaKXElz#C@tjKr9PpaRkG`}$xM|RY0=x& z8}^2;o&D!_tNP4KhTG;is$XLJZ`Uq1`|JNF8-E;}7rSth;L3+{_@)_sTv_ROlgs_E z_?nb0+8r;Rupi!i;F^DT4b zc0^-wgsMiH``L)S2YMxSB@#rOAE_TbmL0D3GAlmRDC&{sZ);WKt&2I|Y?wRcnEbD$ zVkO+1TjsBG*>tTj^QPp)_0zJr!_WSozipXTVwmjcXiSVe~q?k z$}l}}*zkih*05aVoXf|R3+Gt8=;WI>>DoP)xjA8)x~_fc4-L5kn@_COiTYu5K!B6= z)#WeuKYVU@G94nG``H;YfYI9 z3Kq#}F`S(8@QeDsMW(;^H0#|^jGuZSCtc5ysqIa}ZMp6Te?Ld&?r1za?azbf+g}7k zagTc_LPOzgqUp>c_JBcdyRA zZQtK_rM}W>?G{1iP4iP#cBDLAvo_5v9;PeNR z>@*YFc6^9qoEo|#SJ6kUNHfg(#*U8_Q&VmzeF%C!J;<1ki@Tw|?Z9*O?`6TS+x((V zynYju{4brkK}N5>Nb;=O%n7+_{qW^s345QBf zk2ZR0&ktJAqI!SIgpU;ld($oRF2C__NO<``QC=(4{@%C5Y550Fgxego&ikDp?KoZh z+QJT#Jy(4gnd_w6n%VkTn)k$}W&})O5NVni{Pf|XBgfb$C#c@z<1pP&ef@LG&^N48C5vO0Z(3pq(|^I;0uBQAUa2T-4*LCImEF}D5;tZZ5fl`V3}c(4 z?ccHF*mTR9U=~J^owE%N{nUQS7`ae&dRk0py}kWX(Gb(cUE8m(iEK))ukq&%b8z!D zD{q!4{2a6E$?pV#&93e&93AuC-wlX5_jMaX|M&P;R+~5Va^DhN$==@Q$aFPTpwm&I zd;ZmX=4Sn&W)hdP^FoX40_5~MI669RGOKR9%p!Vd-lREYr|&zu?&I{&Rh`w{uF~qj zqa7L?aOiqSlE!r7a@DF{R-q{ycKDh+i28D%^74Y}le;n&ocC*w-*_;{{a5ePFFbEQ zasCJqy0vF_@Sdv1sJlGrm$idul$0dB+|sqRCt6%~@!$O`1Ipd^MxXmWW0|vwgGh80 z|K_va`=UEc*0BEg@~5T#f-uvPJv)rFdqTU8=Ovupc=OLrk<%MB#J0%j$OtLSd!bvh z<)x+92_^Z%`wlUjdgUmUxjOJT*AG=8)!6XXOuy$}KPCJ$=3tcQ*r_P`+w$$3TJ4(X z-wGR&ra7$rSLWyV+wkgSmXd2H1a8V~&|D%I{_FHJ_h7bFCpu4hFr8n#t359$w@3Ba z=jz6WS3a(juZlQj#oHP(KCP5kp3EV5Rq}Lz1NUq}aUD*LM>^u$x0h=yD3lR6r`zq& zb+UT9jn(u?H4C%$d!*f4!6U`AXz^a5t;GwkX`DKd^@k_-jPZv%zuq+K$g6XTa9O6- zT-g29Mex+(vO|+^-v7SQ@y5D3w=EV9l^s{bw2YQ(J7gNz6i7%pJEgKilv6WR-8h zar}R%JDY6qr|CPQQw-+3n}3j1xbOCqkj=A~hpI8vUgGXnH5X(&;IHWMBkB9&e+;|+ z2W~K}-}dutik6~sUZL+L_7rK~<036w#W{8ynsxbagZmawST8c2*|zXWW2R;_SLBxk z>ns%8TmlyK?OV9G=<78Pu7JjX7r#TTLmGuj0zb0vNJ&<4PVaeotz?$t?Vk}2%J*4* zb*B1mu)4WPYhu|78;n=K(0YzqGQ z4|qM-Cb&rKU27(Nu`Mb<+hWP1V;{qw)nC}9^~BlcxaH-?T5a}$>w;W2os>K`GhrKx z*x%>-zxADnFkIZaZwJ@4Aib-fXL;=Np6q;ybqo9c8%O85ZH&#|am6Vw%~(I4yJ3=+ z{(yv=viW|TVdbVYDb7g=-sddVK2e$&d`mK& z?R9>al9wmjzs6k)GLLxw{9_m|zxUDV%iosFf9ZZDu~LooQ(535$pZm*m%U1K|G(;M z>EiX$#}+xC*w?r3_U`>x?;2m1tqIyG^sgcM*mS4FqMvh`6c{W57INsDbaj4VJ;3v+ zF<(hx?%j$--xhq12|es0JaMO?Z%8gzL(U)eg6JE8LCGu_O5AKuYC5Mg|KzI7we|V3B2D7o<z%CQ+iC=W}WVnIJEX!*@7SuJUe9)`YOKEfUhk}CLVL=Y zFYBY8S?>LLwt`dA@`RYdpU>aaLL_>>mvX(>)vTW0x?zJY&zdbe87zbL@0Bt-QyBVl z^WW5SzYcdBtlK~1E$b6;M_cQ4XH{B7OaEPFeY984xcj(=VF^61iU8GAUae;j@I_M%$AkKEbMH&k?O5)CgovFG@Q;M&CW)RhJ9 z4Yi+c*X^z`?~gGPJ+N;5uFvZ_Kkt6%B6CDb=y`2Rbfl?Ou9{~Kzw$}tZ8m&*8Q_ieQLISo^0>wDRDns1efx$^1S|I%yrfD z!kfh>*DJbyED!IKiuto`Cx^x9rBOzPUKS6JYw)u-{64@gnevgTf9~~?eX`qff;Loy zGws@YQRw}CW*5FbxfO?mVwZj^KWwqdCp2~P-swi_B70gm#MU}&4M?q6@oV-n0mU6( zBqjYTO1u}^QECBp5ZFSv~F%bWvkGqT^F zzEQm+KTb2o{FKa@9SH}5W-JRlcXZXM#W|hd^lnG%nS9}Ya<@YJiPwoQV&`Oom`x>@ z%T9RWSsyQI!=rBbZ*B5~Z&ST14_&XA?ZfoytoPTm7s7lPbt@#IuIz|w65pF_SKQj? zRn)6i!dG{1 z#DtoaXO1SnI=B7Id#msF!fvg2d2HT~{DTu$KKy@e>y(PKiO(k&^DlB&7d*(w7?x@O zc9#s-4a4GoN7XJNmg&D%@7K)7LlYCq| zpDZv^-jMsluO#dx#~YTyU22o}gr9z+$CNYs%-$KBAH971PDv>`X8Y5nM{n#~{)Ela zIeSN)?@I~xnUV#X8y@UE68>VUN05_9v!!dhY{zZc2i8ZqeljoS(37x^T(6?rvF=5N zLR$0G*d=MV6B}7$Bh=4JbOfirFrF)3Zt)_h`pIrv$^U|Ox95CZ6VtQyZ!Oc}=ihIB z-}IrCP5tF5%l8-P**Hv++|8li_+P>B`QS$1|dxmmj>m z-lNlLdWm?~iP!3)rEbTI`Bm;eC^P#0jU#J~)Y=~N<=;z{H{ETply_|QTJO6v;7|$Q z>r-XccZ}C2+%Gt`d-eQH66ZA*eeM6u&oSY}gM)GMt7fw)J-hzrsNrTGVdhUV^*`et zwPvw*&uV=f`}(^~Nx#H_o{uF)Pl7&_>ZUB-`AX*_htfV9mjDR^V*wuAN@Qq{`QNDU0M~ex0cjE={4HbFLr0 z`RGN4S8^i1-!L$(Ow`akQ~mtx)U6h< z+}qurN3&K?9n0rBxXw|`5M$cPF6WJZ?^g5chh}EUNu{-5q=@U zQNAfVgGZ~9N#peXtvhuba+n`j@aL90zVESP+9;XtRL*S?=Azr{x@WUXw%y{t{=*LI!QY$-A4%csB?ri~{U{#rcTI3>)U=Z|+@X6zA` zpr>LAyDwjJVYsp5{z>K&3YM}-N4;wEds~eZww?={6u9q7W7>ryD|e)H%=pISpDp9a z@L6G%ikMq}ocVP5sS;5eTGmurFsxnhqQUE#)Q!hSPAosW@?Xyv`SmQt@w-D=R~1aW zZu08L?@ms$zlJJzF38?G{_bt;3+_$ZuU$2Lq;6%gdGeB*$8Ol^Ca7=cm(7UUuYbfw zY=+;%{q5;`HU-l*8*gjxGGC;0zxn0jcas-SNPIoh_(sLu`KR3PFDp~Mo_RQ#Cqy?t z-YfBL6w5QSy{1Zs{w-bDqQkJ+@*2k*o|D-#gpM7*aJk)Hch^Hc3(d(%vVWd?3KlX7 zZrH-z_hemw-NCu{mZzH>_G*g`bJ-!)#jtS6iZtZ~GW}gs1u|})4lX#7l#vmX(NLy0 z*}?qr@pbA24PF;`*C^j#Aog+T#p%=gjvMPvt~$MM)s0DP{~dH6doK`5&VTz!^)IWs z)qkFYZIz~r8tYE&uxtpMBwiE6q@?t(@koNzO^@u}Jr{W1y7+y#IU)Gf35%HjYC<|p z?5VwPuAPhVb=lFX+x|I<>qEf%ZU+}P=CxC%GY8s#ZCS^i9IWpd>%hQS7RM5&dG773 z_s6qxjl$W@O_{E*+q?Vlu9s6T-D^*tFMN8EKcB$_v0~pNf|>gEnPoE!tg-`{cZh7) z?2qV>y%Mu#mHnm}lMnl*-&Hle*O9~45WexS-wxJyON}li)R;?#p0m(%3cFJhwyPvh zZT7l)^CjkAL=z&!`@b7(jxT!=BD@;GetPdORKyx)K8yUGrgz(BF}_G#Q7lMR>hcE0UD+kQ-0lKsvR zFA1h|hPBJQ-v`alo1=IOywqCyI>Yr}MEf+aBy1v9k zEzw&(_i%06hXc1}KG@@M?(wDSV)xU(7=>Lu`7W%wRQ!Fqj{3?8GDcYH2 zY*V@Hv;47s>4Hptwe?n?*4!>S+Ov1Au4CW#6*pb)wLkx1@+tG;W7&(k7he}oHgmC znbYZ$FV-kd+sC@Q_r;fo1-B~7_Do&qdbQb2_M2AL{dxb?&idZ0@@oj6^)}8XJ9DeV z1SicD*1x8kluyc=NCn-Et6Hb^HpuR7rPt=Dm;4uWw*~A~tnWE*x&H1sZ&zm?{TDBr zTr>o0PnBk;c)mCL9J~3#r>hf!^drPdk29WRamjWFke3f((ORND*Ov8)eC#C0cgy!4 z3|#cdBbJeQ=RTpHb&1-%DvxcS`|rK*qtGC zhH0MP{-mwno(mK|-t+waFQ==?XBY40iICD-@~qSMa`oh(iGg)l{0F8@FWq~|uK!l( z9Ep#4eZP08*P3p$_++B?rTAatk#I-pye}z^yv9c*I?{fy`$a9vuzt3`K6UyphF6cw zB->>FUSUl7%`LcLOYvuOv*S{0#d~kGt4Wxi+`UnE*^Z5kZ}#?=OQ=t~sNZ(k^hWsU zZ=uH%4=O2~Tko`-b2eMctTprUgf|_3DBU!PpGDGna_sCsKTS)c@9BP%d+F)y$>D6! zSr+)^iU7Zb;Ww4srAuF{d=p&m%y1_$B<^CdT2GFk(#urC*V`}UYDXWKJg=(s)T+X( z1^J)o(2qQIFb14K8K3vpqcWZ}r18XPe!r z=9ro<*mNsU|D;Zi!dl_xn$y4jDDf@sc=lXPQuwpUQkfq9@M#REQp3OQbzE>V%W=u1 zSGzWciN)XkvtRR#vUW(H^V-?^|6j2EWC;*IGnX^K?Z$)_`y{RUJ7w=o*-dX1CyTy2 zBfOJyXTCDW&7J90*PZj)6E83=%*o)rQ@?iK-KDa8Ji*8Bv8vCJ=9COs-ISiY#rD;T zt&4>ZMvE$#m%sHk#8{=UB@^6-awMu*o})ar6|8uLE6w5nKc(z7i;XPKEON~{qp zozmlE>(Y1Fy?V3z z{+F9KaH#F_meDsbTVbC1E<%-Q?VTB__cJnFH(m^w=Cdq_&!+uf$^JR@X;P2wz5JQ5 z+Vk!Ftcs^y`3tQ0%T9K#De8}(v1n;lR-f*A#e&4@P7Q}EX*13}WOyQ*kkA_5tH8Yb z#`)+E23@s#)C1qzUTm7RD6TR^{BJN%?#})9&YY;Ya3?q_^|U$9+!Z{jt4~cAeWmU2 z^=7Kuh1!x;O~J`Ox9;y{ak7%G*ebQ@#J4AbSDP073gMigr2cO?!(54wh;1AJ_4e|! zJimV3eYDCyBX$ncir)-&zfUHe*e9O7yx){nsqW3xsfW(?2YRMBOfNaH=lkXr&L5)8 zc=M9Di>=qS$v?Ep2mt~FtwK`TE%isEL3piD- z*PC^FQusCQ2DN!T2h(@myl?gW@vH{EU11{EuC+CteB$>-@zffx>2YGWC3_XltG~WG z$-`+)+nf)*9f7_U_r5pZInn77n?Ci!=_hQqpS1XvK7HJ8J>!~Ywf|~a_otk?Hf&U^2iF~#K1>+}fE(jyg%d)Ftp z@;g-drv;^^E@Ph^xAkY*0*8}P>vEQ_wo2S4s=Dw>%_YwjTOyRowrAdG{MOZP{(05{ z^EXYYUnZBVmF<1wp-}Z`kBVXJ@$yEd&cB=4O&aKV&;%y)3#k%b0-oD1Lm1q8y zN%3bMJ4xr=9^l8qYY9ZQ}6f|n{D2W~WKIlwP)(srS?=wqIyrOUGzUOh48?mhZ*>4{Hk zB5NzOeijJ7+qAXq>58bO;kh|WH^p)_l$<`AZ7BIR!#Z*Lt0@L^i{j56{}N~UP9eet5P?M7OsY=Pz6mrojR`kP#lR9j^$rn{=TN1}Mf3;B2d zau4oUv-{fC9Um4fYrmYA*(qSR>@An-Vagp?8{s*hb6M0p(%| z+j`?BOqykLYRh@~$rl%AbjrQ>d^Y!E^zNVYe<;p5bY02rf^JZo+W$`;Q7>P86Xy|X z57jMQcmGvP`T2bsBL5|BJv_j1z(fDTW~JTRu3n$;r*SL4vw~O3Ev?>}|BPn7UCI7u zj{AN`&m)1c-!I&qT690cFu_3df!krvT+7(>f_FcwC;BWBEH;$3v98~%kgxM^(NS)X z{Md-(xyLPMKkO14PD3cuRT4cRprQkCZGzd|mRXZQb%`*^yyCWetNz|FLSRjop&>c*HT+tb|P){euu+1RjMvd6YkfXyHJ_^$2?c%V%J<~C}V8@rsPpdnnj3pwH86w{L9FE?|vG}-C+zi+MoSlp-FMVZx zQqvOr)W-Xwa&=!~z@MaJ0SV1d zu-W6QU2^;O)yz&Ny`}M;Q&jD(|4hg=o4NW8lkv5AZ|gSSn-x?mn{c%7n9KQ_GOyTP z-aNJUxk`WgUj1_?(^=R45cBUS+OlW4Oxb3QD5C<_M=H{@rx)J03N4!OzuxuxfpZL1 zzP=9~j2ru!?7x})K~|G@nmEaRk-wDrA!FCBT$jL45ubj9I68>sM#pXF zi!ih6d}b|_U;R>ANI0drYH9GQ^;ItXKY3$h_P1}d`xP5&l^NB$EN~fn(97MeY5!Jy zK2!K<)0=CzQZ{~9u$(EN$l#uP{nbJ}P6h9I55k!r`7G*_&Xm%bI&Y4z#(k6Ah|48n zlXqYJAf42-(NwCUz&rm>24BM~vgboVL zmP&rR)x39({`>auO?TK2ohjfu_@j_>b;lEq(~8MGj9ZRBUt4os?#WxBN5L^oQ3}?{ z(}K^Hp4j)b_x*;Pf=5$-xMtsGmp-_3otm7<{nl-3_tdWb^Qx%&_=4H-6-^t@|5)0h zW+?V8+pGC5`_u!ik`BE)_G+%U_wRX+Ja_-^=+eQd#{k`9~t!Zl7q1^PXpB|LG*=-S-63~(+bK(X=z=kz)T&v}?CLLH^#3^+3 zWY&sb-~Tp5y?B+L)_t4ra?K&nS_Pf88(zg6{`|!J?zxsT>&jhPrp@P0dHSt?Las<} z%`$Fr&yuc()cS6#LblTg`c}lnC9Rr70EcKzyJFVhUmApJA?fdRi#57%{ew{ zR>Ajw_fGz4Xv^+PtE&AL^OdsqNd@ma z_1Gx7{N3)q|EC&7FJ8&X95*ZT?Y-6hMXL+1iEnVQd(gJ)$wBd_=Q`Kdt+1ah5oKV( zQr#sQwePvrp87A$hc_2Y`pm8Qo8$cA4Y@0Y_UepyoTUdDE zf5%pZq=i>_-^~__pPaI~Yoe9Q46~-<=9N3&>=C;Ce%_5o{PPb>t-r?kP&Ve~g0sI| zjyOd4t9P(!3q7wgNxm_?qh4!!+%B)oNBR#Z_55@bJ7`fFdZT}#s>bt<>$wqAOiY^_ z=BY2;!oBRjng3iTr`M*%C+w{a1exY?HEowOid}TBzFE^-+Fv?9Zt{XT_0NhPJYM+Y z-;F0_`J9vd-xf9{1sq{|BuX zcaMrpk-leDWaHa8hyVPFV;v`)6{lY>|9;O`N4jL2#q|0tcjF^bUn3Sfl(9;xx=Hd@ z{LY?!&71w@p7T}Jx=Z)z|M{@=*4e!en@;?G_VlRM($YoWvm7qO2OsT~cJlW4Qp@sh z%NxUG-lrOWEL+@DvEKG-V&NId^M@|9vnF5bpU&H}%j)yKj@tVd4Jx-Nx|sEy^?$@y zesuS3#=UcYQQ54$&Uaxw?ZEa`P%N1rNASU!H#N$@O%W!i?Y-7yBOu-o9>fRzI|J!tM`l%MY&P znOCpcA8+4#o#!0O;`#?AN_GN@r&n!iovyq!$m2&z?}~XP?kAR>60@>a`!{KK?fscT zMHXDsUy3YUy?MG|e9w;1*SGo?GUiTRDw-tG;C)VWt||8~rCr-rRb+ZUn0c4uzF*(} zpT;8oIYOKFzYYAhN9@oCwyrK?eg7sco-RfMrW03h-4;1;TSUTsd1mVE_o|UgXRT@f z7Vr0JstT(&cj4nGqlK#?XL|~skC|g|?3+Au%%(QJjW-v&c+2-SWO{Ae9HeRV<@96C zKQgPks?&5m;}@JKVo zKHL52yCP4Ar4@UBiYONUGvmjq$sZy%Z4X*{Z?Ap8)4eSlk{B<4EZ?(SK5as2pgQYW ztHeyDc(tF56^{%YpB;7S|Nko9s+}wCi0R(hm-o!s!__)}U;ID5wJzrm={32Z|FyPb z`rE86ujd|3b@`Wfcv9|foAs}pE-loF+NLJ2JU4{n2jlxWO-hc^%6HS31~W>;&;KjC zb(Un1*ap|Q+iw;~yvldDRQX5Y^n~p}UB^XVsI)u8rfVLb#Ni`&?{!*Wr)B1ZY;*N* zQN6!Bs{GS0csqVyb~k%MZ^y!Wd%myHOuut^kLkv5MOO}7UHtOEk2_l!4xJU5n*P96 za{4M!<_~9t=6TNOGWy!8^ZTLHBdt5^1e?$z0=dpln|`&!=jRBpkv=YcCC zx4t%GW7!r`-Sn7&Jv->D)0s4$jP2X?mQB&-wNGZcKbK?WDb)bxJvQ9W($h6q?z~>s zGGT+_uCP0gGbb+c6uUX;fv9cvrij=$4VQ|^+Vd|(dF)S__p@@}nHd}&O@F(OPv{8Q zk}^{}a;ut0pTLdI_E$oTyA@6NY`ysRDmzFvo)YXnekH}Bj9)z6^!mDmjO`g&AiB+l9VIleOVd#L25cN&aqw?2=2 zllW)N4Z9{Muhr919B$+#e_wsjv+CHC<1r;wu^J0MJbf6ueB**m2TyO=!9MfRe|Lx8 z1Cv=ME^6uT(5kTw+^?rCzfVR)uOx7q{~uGvjO%5pyG?|fxzAm6$$5M^QvFlX;zqZt z7b0fO7u>86%E*1L+e*?8UOZQ_DuH^RTlrBq?)=n@6PQV(zDJoR|FnkXmrosa7SfE@rtKM8y*K)m0e7F z&^Al%Sx(aGbxo7rU2wRvdh1L5cUyMP-+M8>VACbpx6Z!v?;TG6@+DaD!c7*n<*PFF z_t#G}uKxNu^7TG-b>CSFX6@~6-+Arsk6*VZIi_%%e@?UCsM~g`hMA|LVaxi5JM5XY z6z&_upIhcpJ?(d%;MLbV7%Wy;9d_LHy5D+Dx_^9Len8jZiOFhH7rruoE@)tx9{soE z$)t`e|1z{Bi-h0qEZ2B(|IGfRoR7k$vlBQyrexKwUccvo=ltxI^OilhUJ$!#e>g+) z#{(x%#kd@5)A#zkV`YM=fZ(eW@%G+vDg_FwKTp^q@u1b%B9ZZ^`^o=jIJa+Oy}C^` ze!5JD>H0f<2L022owHf?VI|M*kkgg?k`H1J6&If7+Yln*y!Gcd|3}M1sWQ)KP;^IFa*|1wp

MN|){nQW$rZ_Gp3h^ojgJtQY|%Wt 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 LOTKMjU|;|MzsJ|6 literal 0 HcmV?d00001 diff --git a/hypr-layout-switcher/translations/en.json b/hypr-layout-switcher/translations/en.json new file mode 100644 index 0000000..077404a --- /dev/null +++ b/hypr-layout-switcher/translations/en.json @@ -0,0 +1,3 @@ +{ + +} \ No newline at end of file diff --git a/hypr-layout-switcher/widget.luau b/hypr-layout-switcher/widget.luau new file mode 100644 index 0000000..2d202bd --- /dev/null +++ b/hypr-layout-switcher/widget.luau @@ -0,0 +1,29 @@ +--!nonstrict + +local glyphs = { + dwindle = "layout-grid", + master = "layout-sidebar", + monocle = "square", + scrolling = "arrows-horizontal", +} + +local current = "dwindle" + +local function render() + barWidget.setGlyph(glyphs[current] or "layout-grid") + barWidget.setText(current:sub(1, 1):upper() .. current:sub(2)) +end + +noctalia.state.watch("layout", function(value) + if value then + current = value + render() + end +end) + +function onClick() + noctalia.runAsync("noctalia msg plugin maddingo/hypr-layout-switcher:poller all cycle") +end + +render() +