From ded33c8cdf85b62c6e430021d1a3899690e22acf Mon Sep 17 00:00:00 2001 From: x0d7x <75843278+x0d7x@users.noreply.github.com> Date: Wed, 29 Jul 2026 14:36:47 +0300 Subject: [PATCH 1/3] Add mangowm-status: display and switch Mangowm layouts --- mangowm-status/README.md | 96 +++++++++++++ mangowm-status/panel.luau | 135 ++++++++++++++++++ mangowm-status/plugin.toml | 46 +++++++ mangowm-status/thumbnail.webp | Bin 0 -> 13774 bytes mangowm-status/translations/en.json | 9 ++ mangowm-status/widget.luau | 206 ++++++++++++++++++++++++++++ 6 files changed, 492 insertions(+) create mode 100644 mangowm-status/README.md create mode 100644 mangowm-status/panel.luau create mode 100644 mangowm-status/plugin.toml create mode 100644 mangowm-status/thumbnail.webp create mode 100644 mangowm-status/translations/en.json create mode 100644 mangowm-status/widget.luau diff --git a/mangowm-status/README.md b/mangowm-status/README.md new file mode 100644 index 00000000..c60cf430 --- /dev/null +++ b/mangowm-status/README.md @@ -0,0 +1,96 @@ +# Mangowm Status + +Shows the current Mangowm tiling layout and keymode on your bar. Click to open a picker and switch layouts instantly. + +![Thumbnail](thumbnail.webp) + +## Plugin + +| Field | Value | +| --- | --- | +| ID | `x0d7x/mangowm-status` | +| Entries | Bar widget: `status`; panel: `layout-picker` | + +## Requirements + +- Noctalia v5 +- [`mmsg`](https://github.com/mangowm/mango) — Mangowm's IPC CLI tool (must be on `PATH`) + +## Usage + +### Bar widget + +Add the **Mangowm Status** widget from the Add-widget picker in your bar settings, or configure it by hand with: + +```toml +[widget.mangowm-status] +type = "x0d7x/mangowm-status:status" +``` + +The widget displays the current layout's icon and letter code. When the active keymode is not `default`, the keymode name is shown beside the layout code. + +- **Left-click** the widget → opens the **Layout Picker** panel. Click any layout to switch immediately. +- **Horizontal scroll** over the widget → cycles through the core layouts (T → S → G → …). + +### Layout picker panel + +Open with: + +```sh +noctalia msg panel-toggle x0d7x/mangowm-status:layout-picker +``` + +A scrollable list of all 14 supported layouts. The current layout is highlighted. Click any other layout to switch — the panel closes automatically. + +## Settings + +| Setting | Type | Default | Description | +| --- | --- | --- | --- | +| Hide on default | `bool` | `false` | Hide the widget when keymode is `default` | +| Show text | `bool` | `true` | Show the keymode name beside the layout glyph | +| Notify on change | `bool` | `true` | Show a notification when the keymode changes | + +## IPC + +Control the widget from the terminal: + +```sh +# Refresh layout data +noctalia msg plugin x0d7x/mangowm-status:status focused refresh + +# Get current status (logged as JSON) +noctalia msg plugin x0d7x/mangowm-status:status focused get-status + +# Set layout by code (T, S, G, M, K, CT, RT, DW, F, VS, VT, VG, VK, VF) +noctalia msg plugin x0d7x/mangowm-status:status focused set-layout S +``` + +## Layout Codes + +| Code | Layout | Icon | +|------|--------|------| +| T | Tile | columns | +| S | Scroller | menu | +| G | Grid | dashboard | +| M | Monocle | window | +| K | Deck | cards | +| CT | Center Tile | layout | +| RT | Right Tile | columns | +| DW | Dwindle | columns | +| F | Fair | layout | +| VS | Vertical Scroller | menu | +| VT | Vertical Tile | columns | +| VG | Vertical Grid | dashboard | +| VK | Vertical Deck | cards | +| VF | Vertical Fair | layout | + +## Notes + +- This plugin spawns `mmsg` subprocesses to query and change the compositor state. `mmsg` must be installed and on `PATH`. +- Layout changes use `mmsg dispatch setlayout,`. +- The widget keeps two long-running `mmsg watch` streams (keymode + all-tags) for live updates, with a 1-second polling fallback. +- The panel entry fetches tag data on open and does not keep a persistent connection. + +## License + +MIT diff --git a/mangowm-status/panel.luau b/mangowm-status/panel.luau new file mode 100644 index 00000000..ca4ecbb9 --- /dev/null +++ b/mangowm-status/panel.luau @@ -0,0 +1,135 @@ +--!nonstrict +-- Mangowm Status — Layout Picker Panel +-- Shows all available tiling layouts; click one to switch immediately. + +-- Layout manifest: glyph + letter + name (same as widget.luau) +local layoutConfig = { + T = { glyph = "columns", letter = "T", name = "tile" }, + S = { glyph = "menu", letter = "S", name = "scroller" }, + G = { glyph = "dashboard", letter = "G", name = "grid" }, + M = { glyph = "window", letter = "M", name = "monocle" }, + K = { glyph = "cards", letter = "K", name = "deck" }, + CT = { glyph = "layout", letter = "C", name = "center_tile" }, + RT = { glyph = "columns", letter = "R", name = "right_tile" }, + VS = { glyph = "menu", letter = "V", name = "vertical_scroller" }, + VT = { glyph = "columns", letter = "V", name = "vertical_tile" }, + VG = { glyph = "dashboard", letter = "G", name = "vertical_grid" }, + VK = { glyph = "cards", letter = "K", name = "vertical_deck" }, + DW = { glyph = "columns", letter = "D", name = "dwindle" }, + F = { glyph = "layout", letter = "F", name = "fair" }, + VF = { glyph = "layout", letter = "F", name = "vertical_fair" }, +} + +-- Layout codes in display order +local layoutOrder = { "T", "S", "G", "M", "K", "CT", "RT", "DW", "F", "VS", "VT", "VG", "VK", "VF" } + +local currentLayoutCode = "T" +local switching = false + +-- Helper to switch layout and close panel +local function setLayout(code) + if switching or code == currentLayoutCode then return end + switching = true + + local cfg = layoutConfig[code] + local name = cfg and cfg.name or "tile" + noctalia.runAsync("mmsg dispatch setlayout," .. name, function(result) + switching = false + if result.exitCode == 0 then + currentLayoutCode = code + panel.close() + else + noctalia.notifyError("Mangowm Status", "Failed to set layout: " .. (result.stderr or "unknown error")) + doRender() + end + end) +end + +-- Named global functions for each layout button (onClick doesn't pass arguments) +function onLayoutT() setLayout("T") end +function onLayoutS() setLayout("S") end +function onLayoutG() setLayout("G") end +function onLayoutM() setLayout("M") end +function onLayoutK() setLayout("K") end +function onLayoutCT() setLayout("CT") end +function onLayoutRT() setLayout("RT") end +function onLayoutDW() setLayout("DW") end +function onLayoutF() setLayout("F") end +function onLayoutVS() setLayout("VS") end +function onLayoutVT() setLayout("VT") end +function onLayoutVG() setLayout("VG") end +function onLayoutVK() setLayout("VK") end +function onLayoutVF() setLayout("VF") end + +local function doRender() + -- Map layout code -> onClick handler name + local onClickHandler = { + T = "onLayoutT", S = "onLayoutS", G = "onLayoutG", + M = "onLayoutM", K = "onLayoutK", CT = "onLayoutCT", + RT = "onLayoutRT", DW = "onLayoutDW", F = "onLayoutF", + VS = "onLayoutVS", VT = "onLayoutVT", VG = "onLayoutVG", + VK = "onLayoutVK", VF = "onLayoutVF", + } + + -- Current layout indicator (compact, shown at top) + local currentCfg = layoutConfig[currentLayoutCode] or layoutConfig["T"] + local currentBadge = ui.row({ gap = 6, align = "center", fill = "primary/0.12", radius = 6, paddingH = 10, paddingV = 5 }, { + ui.label({ text = "Now:", color = "on_surface_variant", fontSize = 11 }), + ui.glyph({ name = currentCfg.glyph, size = 12, color = "primary" }), + ui.label({ text = currentCfg.letter .. " — " .. currentCfg.name, color = "primary", fontWeight = "bold", fontSize = 11 }), + }) + + -- Build layout buttons + local buttons = {} + for _, code in ipairs(layoutOrder) do + local cfg = layoutConfig[code] + if cfg then + local isActive = code == currentLayoutCode + table.insert(buttons, ui.button({ + key = "layout-" .. code, + glyph = cfg.glyph, + glyphSize = 14, + text = " " .. cfg.letter .. " — " .. cfg.name, + contentAlign = "start", + variant = isActive and "primary" or "ghost", + controlSize = "sm", + onClick = onClickHandler[code], + })) + end + end + + panel.render(ui.column({ flexGrow = 1, gap = 2, padding = 8 }, { + currentBadge, + ui.separator({ thickness = 1, color = "outline/0.15", spacing = 3 }), + ui.scroll({ flexGrow = 1, gap = 2 }, buttons), + })) +end + +-- Fetch current layout from mmsg, then render +local function refreshCurrentLayout() + noctalia.runAsync("mmsg get all-tags", function(result) + if result.exitCode == 0 and result.stdout then + local ok, data = pcall(noctalia.json.decode, result.stdout) + if ok and data and data.all_tags then + for _, monitorEntry in ipairs(data.all_tags) do + if type(monitorEntry) == "table" and monitorEntry.tags then + for _, tag in ipairs(monitorEntry.tags) do + if type(tag) == "table" and tag.is_active and tag.layout then + currentLayoutCode = tag.layout + doRender() + return + end + end + end + end + end + end + -- Render even if fetch failed (uses fallback currentLayoutCode) + doRender() + end) +end + +function onOpen(_context) + -- Fetch current layout first, then render (avoids flash of wrong layout) + refreshCurrentLayout() +end diff --git a/mangowm-status/plugin.toml b/mangowm-status/plugin.toml new file mode 100644 index 00000000..f2ae1d4a --- /dev/null +++ b/mangowm-status/plugin.toml @@ -0,0 +1,46 @@ +id = "x0d7x/mangowm-status" +name = "Mangowm Status" +version = "1.1.0" +plugin_api = 4 +min_noctalia = "5.0.0" +author = "x0d7x" +license = "MIT" +dependencies = ["mmsg"] +icon = "grid" +description = "Shows current tiling layout and keymode for Mangowm" +description_key = "plugin.description" +tags = ["bar", "mangowm"] + +[[widget]] +id = "status" +entry = "widget.luau" + + [[widget.setting]] + key = "hide_on_default" + type = "bool" + label_key = "settings.hide_on_default.label" + description_key = "settings.hide_on_default.description" + default = false + + [[widget.setting]] + key = "show_text" + type = "bool" + label_key = "settings.show_text.label" + description_key = "settings.show_text.description" + default = true + + [[widget.setting]] + key = "notify_change" + type = "bool" + label_key = "settings.notify_change.label" + description_key = "settings.notify_change.description" + default = true + +# Layout picker panel — opens on click, shows all layouts to choose from +[[panel]] +id = "layout-picker" +entry = "panel.luau" +width = 280 +height = 400 +placement = "floating" +position = "auto" diff --git a/mangowm-status/thumbnail.webp b/mangowm-status/thumbnail.webp new file mode 100644 index 0000000000000000000000000000000000000000..0c7253629153b9b93797f9f7926b6547c7ecd3ae GIT binary patch literal 13774 zcmZv?Q;;QG(5Ab~wr$(CZQHhOTV1xz?y}Kk+je!?*ylU*$DBA5F?Z`CV@2xCCofV} zMpAN&0|3yH5LMPx<|gj?@2%_zk`F>V0EQ1Lm?B*$Pf;dRQoJlj}FH~wru4`AA7$_)+>2-I>)k`uBN8u!h4 zn0hv(eYbkc>(BcE`JsB5vjffmx9-+XEQ<`+fNp)=z3<_EP%nMoa}U6A z--Q>apScdG$Gz*q*WMst`(er(@bhP&aH@X-c>nD5v9(yawmbOE4gN%=EOrSUAc9my z@(eCm6t#?mRqvGKs)wQ;7#2~bNf;QGx*l74PUhF?oSG)||FbQCp;1=n+nqGD4<7Iq~l^|?CBNqTsb*=#7{@BGO z>BiShs!dPYk(I%I#b`=XK4RFM+S;qU&MmzC*vJ_#E?PBqZv%wOP=9i>$MEKYRF>;?DQQ_7f zE}x@-55&U1N*eDKownei3u$HQQEM$inXO?{684Y`R5ba;DjS~{&<~0%m=~_XFfWcw zl86$R?ovUtY^aj6#Swuv4Z5qAbSgG;1uVYt=<-s`on(R$2zWUWAF4aSIf7;3xbHM57xto@0KLGP8;MyyCl&%Ff z)CV^-ro6p!BIQm=pWEooQiAg!YGBX_>;!)t2tvRIBL3dk--c|kAP?r`zo8Cqn^@Rb zW^SC89MZ*46bFiutybV#mN0+JGdU{g$IhdIYq_ci0$yRw?D^d4 z=;F(R`2H1iuD$%hQ1Jw--3zh4uaOnk}w(l^+|5sDTsw(Oi}|3#S|lv4LaRU9i)~U)xmF!Y?!H!!>txX1=IXMUP95z_76ucT8tvg5(ol;dXNzI{3;ZYfmt&%~ zgAvr>IT2dX9i-aA<>7b{N4idGh9)vn=s$SjSlUt zS+y)EmJwQr9&Hf$Hw&2ncP#GrtZXI8V@cB2UO;fQUf(?euI>IfQM*hoffmjsK<^3n zU20nI{C}jJ;GwlBJBC?_qf|v3<4S*VK7J_}*<@j zt)Px0js^l;)5;ph&fSorcb@c!EJf(eeGTu+Bu%z##OPh%_PF^2N{S2~C6ZJwA?uq{ z;YLKojkPJBcbJ7y2qMQS#N)?HN}f+u<=cv#0R$@~KI9WmyOAsCR4OTF zx@<2Lfeh7)H?}nA|^x9x2S@_Ut!TRon?8>TsS4?_0ZbVRx|0X`0`ls!X8;d1Bk{fW2 z^V4Nh@Rc1JF!`p7Txf7aSUqG=$oId+p#ik5IRFSQjG8bdJ zv(>4*d~IBs$~yZtws>L9IfJFM!{raW=MSI1n*GZVW;VMREhnFk6*1BMza_Y0qNCg~ zJmiae_nwjrz%Qs5V1-89nHB= z?(-1D6{OAYQK7C}X}9KRGG>g1ZCU9fdKGY?@E?lF{zsO!KK@0_9$uf4k~S&xcYMwy z#mTGXf3z9;bKX4cp+EChy?K*{%4h>OQFqiy@k?8p(KW2>()T*4lIE-gq>bJPGj9X1Rb(O&LanQaZ zFGJ4V!Af=Jfl9Gl8)9nU@!!S4gif#Si$y6H#sRWwde!`&L+`mUWrs@x_gcPew;(Gu z7}$aI1>M&Zp6LjzM9%M+y7beo;zm{oFfd@m9qbpNF1sChn!q50J9aMKUSF%@FhGir zuBH=kxsq02pm~&Id<6T`MGC@N2_m3QaH(3#Lb>N?*L|9EB3sRyjoHp^!YdO4E+SR< zlxc;hSHjW#-P>?7hOEec(ytRlal*tg=!6U|nE}V)pdxN9CtrQxw5`Z5)XZ@s5L6ek7Vk#PM-y zhExDH#piMpKh}^P-m>CWNiOg(U}v=-8n5TR?;9#d0vCb4h`y4-3DNs41^%Kgi%CtCQW5&s6wFaOT z1*G}`luPwRw>x9f7QnlU2KB0AS1KT4&XEBn*GwmUQG=l>DLERs_GV>=>>lsUdoI}I zPv-DCD4SzAto-ZZpzHK!^Id!a5#4*D(&@3)Pq6C-St#xM68XGtvGY$JX8(jkz5oQ{ zGVAJ^R>a+xhxeyj{EWhG!LRR;&+hs_ft*k2dnh_J$Q~aWrRdY@}Nj zo^76Sn3E>7R=xh~=kUUQWCp|Epmy_Qmpr`&0DgYB^6uEEcV9fdK0EQ98Loz($Go&F z!h@=6H@lyRr5S#d@qS(#v6;K;Bj*^X0d_m;h|#5XN^(pIL{QH|bLB0cDqIrVZNYae zxYC_x{M4#uh!n6&pdM*SPfv7>os9;o$Fk_h!f^rZ;wDx&szl-2iW5j0!bIGito2v2 z!Shsg`W$)8Y>%llDD0`T)=eStMtjp8oVFQ6=oiQ{V5?YCW5Q5OKK&VqG+|bQqy;+*^Ei{5uOQAwS zg9MCr=V?PvQ?_g;6-|pC4q)pK1V%8!h6r??nml0QY-ZfYRLE5#R?!g5!a3V@{Xq?i zdQjHnFh)53Lzr4s%GkszXTVwX?JBtyNRfF_iiN&9W`PMIj zPG$MaN^JAS$JNciKv`DB_h`Fj8o-5?iT4z9ClZ9v%fG?d)$#r(K>ZqRV6`?Yg-s{8 zoc7{tk}gbQu4V~-FgJcFxn%=d6jQ*e-(9>U`)4xo0HH1>mSN%?(fewH|H$d)MXSpU zzlUR!h({xN`TZ)Z{|`+{3|EVxD@?$hjKS?1iW!nrk%l?%`l>6yP5Wy0J1G+GapkHZ z_TO6S0`dY~CFkm}cRyxZzje;-+uzA-2UyKd`3~QaAVpaP064ZVyi^x)BNMzGx<$nC zjJbR%N6y`JGoKW^p_Hnb`($6MJyc{?E40OtTfuF8sKhY6SIm{(P&Tv=hMw8YCQViX zen14s_ycH;5qx(?gTLa9?aOWMKw zXvuwoxSLZo+6jxcVh~cq1y+qTMvmPfbaLxBVRKSKeAi#6&{DK8Z20bq9KEMPyJzh2h$xa}@yF2B2K=e9txFAmy_y8j zF>M3`08KGf?jL6Q12x?ms%TITbaYg@zuI)kuS*IJU&Q&QQq+o^*5v+1XY+-j_^!VL zkW>Ki2nXae2+FWU0I<~oaWmyU@e6;Ag$3~C);?Jcc5VOwGQy2U0vb~yv1CvIh}+ua z^JhlFWVu9EjySt45?5+%U*ubPhJCyfE=-Y{Q4Ia)6H&h!KmG;IfKrL(Mcyw?uPy0Y;Crpa46h!F)@7)&G;K)w0g1vWu znRJ4)Mye9kBBp6J^Kvl+*IAyYj+Dd^9c7HclamLq56Avny5~*{!;s3I#h>~SG<|kM z7UlXci>AHlCv2;=BpBS^CbJhZUxciV60*&D<4A=V#6&XWUbLE|#W2j*3*=mmO}%Ow z1jqaD2c&b!)8Giyh@h}t8wfEnTnxu@Qd0Y15dg8V6<gwt>8k*<&v9w=vT!DZnctP;2_0$vFfH&A=mhF4z;1~ZX zKy4gG1G)`mj2}~P+tn`Ij7u|+@HgP;N};?4=NX}w5?nBFCh1!Vz^Q9Jv!ujfPe zCXKfS_Gom;Pue#GsfuCeg7w#q)A_0A8lq{ktBAc-LIsY!&wH7$K0aAuw@BZkW-PRX zBi{k$4-BiVwxKW_Qd1vGA85sfAsf1O*-HTPW!SLkkWW&k-0CsKQLED$ov|IGorWB zn;drDU_5~Ke4kYZ)Q^k^IX^hl9jMsXMEPrXU+qC4n@60286ew@qy z^Q%PS+P%JBjH~N;vhm8Oa{ld4eJ&d72V94>zXw<1!!1Vf&rOWo#P|^*bOrkO!BwPs z8tqJPc$V!@oA2{ym!8$CMl!PDy)+rV0}F#yVos23IaIZ*|83+m%BY3An^7dMpDp^T zlM+%2V?5Ot%ZMI0$p)u(o4bRA7>D4gjv~-B!qArfi*7p%QxuGt&XtUPNVe)Gl{v(9 zuH2i3Nd{>()F&KtTOU#ulkXoRRt-$_EK~xQt9$-U#8opL#pO20h+vh(H<)NPx8eD+rkcd% zsi)uKXjEi>|0a=4F|oKuBLk4yWtX$dcM*#+lGQIur9-B^x;#A46BjL;-?TMYnSy}V zR%cKF>{aWecjzGV&$9Q&(NpRi%dH&-flFRDc)-Ak{9&k+m z5bkhjfb@>{btsaqK=^6Ca^s)~Vpl^ygB9)tt}C3QZV9#c*No=KSWC*kQJ5oM>c78a zdrt<9uo;z7H)FpGYf(=Gb%6kANJ6&kr)~7W#susLK{<)3X>f{gwI|N6qu~`6J$*6FdB>5=we(IYb@_@q_VoNXHc7!7nf&Z5c_#&C@ zxU0Wu-euQllp-7~;b0GQBg-Lu%=rTXx<~^H!j`)rw||`LDQRoE7T*W^KUq}Wnu6V6 zHY^0h<71()6Yk9WfaM}BW3faDam`$oUh&@8)J+kVBcoQom_|T)2AnI=>9wr_ytQ@U zW$oft*vAD|L{0|=x>83m_+a`}2Ap|Y)THP=8qtjFcdeGHX>U3uo#digzE0~}_9vO? zqCc0wx^$f8x<0faQ#?elh<=IK#4)wwCD)wJkAvN@(HGYPEaSmhtuARk)n;8-x?3?S z`C&XTex$L1@IF#Nx}AD%r_tQ1-*sS?Sxmyn2GWKo1bmljxT+hW;3s?Xj;-Ta7o z%pThU&CrIxc@}+yXca zD2@L8&||j{(snB5OQn+U#x*{Ke-H#0`wrT)GrZd!issE1EWJMi3)|jOFZHo`KQOI= zA89?8NxMV|GTN$NTmz2caOsFWHBATHKU`8X*sQ!+we_+zyZg(lD87W6` zKo;x82aT8>HrbNAbN%X!CPul2 zi$=;l*wwdr{u6G2#{BayPaW(XL}{}L!j^a6%YhvX;YF_O+CqW3*W)|f_%R11p?cF0 z?Y@~UXn;{4kq-d)yXHmr1Nb5UD>-BBz5Ump$l2s*N>G%YHuF7DVkU{XX2Q;6oZs;j zaynP_A?tr>6@}peT4Suw30{$`MR7Id$2<)w4I0@BT9hsj>vA@=D7d5j_ZDkFiUoHu zVY!`v?;na0@s(W!r;X)BnzUD?N$<}U1_Ur_QA`B~(<>pr4`>Nrp}~E4lwSCZ-pa8 zuRwlSUWkU@6x7ex-M8WVfJ*X9j6wX-iDJPajJalSy(EfjCeCKv(q(;rhV|ECq=vuw z?zT48$UrPZ%U}JAFQ*`WDVOc`2FiN#D&P($QW1q>Qs5W|_r{E9vNFBkxOo&rZrJ>Y z%>Y;wS<8L@oijTI{-2rjNCIB;A)DmQiAeq7l#OLRW!%TmUT)Fy-eBjZQw_=h7o zx*{sgYUBFbXFY2^O?eEM*jTS*#43HPfj%2GKOxDLFU-52)5A5L;*=&b2(nu6>1`IJ zF&YLuwe5?2hEj|z_YZ(Y({(IGf7Q?x4190)Zhi=Pziy#f_3TmzPH}a<{qnk=XiOX( zsiV-bOLs7}Xx;r%;;>;{iwYNk*ke3y_GwO|@gT?| zmE-QSse9@dvn+M*vs8XBlD@eqAu$SETt1(-`{Enty~`KN zP0ev4E6S9@I?p()P4M__ zYL4kLi26kXz3v3R>wu!~u`l(GnxP{v17RbXv9hKyc%_9+j z1wPrz3PW)yo`d{tN0jW9=Mi<{cG5N@dOmns^=D`F_YhcK+!Z$|HEhQ_v|OdOrh&3* z^)gX7b+*c&j3pF)*vt8aJV|RhcuM)nTSW?ivbEAuYYT#hi4(Q3h@TVPq10g+gKd19 z`uR5Jg|xiTN$bltntQkh@ZmDj@`3ye;L6L9tZO9{>QTj#`Z?&7x2376qZ6m5vT_T* zZX6Gu)8GHVLFJMqy^KATGYJ15ed<5eQ}zk?l34jzot&ob3wNK6GA|7lpzlL>ADJ1n zOQ^a25Pcf^7@})qgox({e#fD7JucW35qQ<4L9KH@q9}HGd-_F`yNekVK3{$*rTYxe zm%{K5Ipk3r%oNrs()qRhGOxjTcOH{J5grnoUhIe3SJNas4=fh&a~Fxh12GcoSisSv zQf^_`RZ-;Owd6f19Rnq>X^4z{lw1w-DrDgO#y^ZFJZOY(*nY4dAx6Ul7`JB(y=oWu zxzveN%t&O5p%6EvX6F93Sg+%ylQ&-OOx`EC6;HgBd4KHJkJX4sQzOVwQGo~M~8uIYGDJ|nL>A@>w0Kf zkmO$zp7GP?QF08Fpk$C^@M8!A_t;9>=j_;Xa0*)PZP;`le!h4p$kd0E@8xj|F44_z zzt9Ug90-|>KPc;sfLCHlP&q{*gwmY*j>}1ltTy6)EWi%Y$9JFV0s1r3L3RyzKT8gZ z(Jw|*hUykuuDCmAw3!=4D90$(S&8Od-is+&_5qW8(8(5moHoZd3$8t_&U*sfm*n`r zNuFB70P(W+#CytbTwklrKUNY3x{akv4BgDM@V~i-ui_!GEmucTl|@MwH|#O@!iCJb zoXg5XmOP*|hB7TQjE7j)i_74n;!3xVd#;6z9igxG{MFHaDQJ_}S`~-r+8BOj_Ux=E z*uU+OLLQ0yo4tN1f0}m$^mGuyQ@y4zX62;!l2rEM<9&Z~eVVO(NTz9_H2&kDP5AchXe z?>@t>%VF#NAaN$PjsAjlRY7c@cfP=fmY{VpVQ*!d$lx(i^E#0ny;RJ&^pFE1U2BR( zu8}^}s4|qu>>NEBS^e?M_@l zt+hD`ztU+4!3g(v%$6-&1zjdo@O1;(kOCzB%t)T~C9!A}t>`Krl!^C5k$)xX9}emv ziWgUvAveWSMSje>G|SVC#@W@2#L-bNwL+K$64%fpd4hV#lIivrYIhojv_xy%x$~?A z5GY@>$W#Z)vHN@e8^+`A2krmjfp^t>7GRk1@VqT1#&Wv{70S8czm$y3yE`ZOqD0LH ze_vSuc}E`(C0jPQY1qu!J;KaEG!=j=4GJQ(h19pfo9#R5?IFBKf@7PtN@O;%rxG>@ zxWbHhNI(3H;oK)9yC@D3OD}$5u9^)zi&F)_lU#QO2Cj!z%g5-wSR}@+?Q)j%y^`3) zhE9v46T|tS@L(!FJ3>|9u(-;>6D3m#E~11BS!5UF8$4~M*Dk6+!W85O|ELor=@3F4 zjyWF%Nrl8vTi~**S}JP?k$RQnvfzTsXZ-`fvqdR^DQ3AjCRRom=Qgg)+hYvA;7Huj zF!{S6lYRl@TCW6I&*ZNQ=1(3%UFIGWVZ;d_+R+Hos z275K<7K^06F!zr~y-|{NS4RfT%k9(BBjq`+c~iJg#2yoV?XL;h8u08&;D}AtPdUpKr-Ca-9U{0R<|P@myPw^K8YXl2Tz&r@ zj|7wv4uYx;ls#+@9Gm+?Z?J_R)?BEZxu#hRzMJ|*mu0`+K@?oj-}L1*Td#?aXMP@N zi&J1i{4PDlIeLmE5mF=h*K9O#g;II}Z_g?HrQ_LH{#A)@R69}#o3v*mo#1`<#1Qw# zR++`+-uuP9zz-TxD_k|P@DJh^q=<_+<7lnc2**#=fU}{@`y}wglq+t4voBbO@F~nl z>ZWfPZdZKF1_tCV{cH)6X_v(wU=y%U{5Q955Yt(Jk-T9z+F7m}FYAdMNOJx1)9<~f z-tSKZ>7~qFWeVBNg@VMnGZJcyI@P7o2JERdKa57g3W9m3ejm#weO}r}%j_#K-S6`m zt`u9hT+D3E%KT~VYDIVUuBGk8=VjSGU`=W_qovwhN<4VG&H0&(44AKoY{hDDpKir^ zEEHed3&p1QW%T6Hd02v|mE&QbM)$&Y+n!^IDR%yJHgU7=EPx8+YI40n$+RVZWoSKqluJwetL$fQIH*^#n zGmOHbZiMC4h*9>&FENHo&}KywQkT1+t!$;ehU-i3WB{Tt$6({8SX_|0&O6O*{H&LshSU(K7UVO~n(#h_!CBh9vhp_1 zA(qOX@ziA{QyqjG-VOQ73EB51Pui7qxPD%snJq)d|Dg6ODClVL7J!N{3Dd4SYhH^j zlA1VLaJ<b!7$1?9x@Lgq;y`{( z$!v?qK=1m}zQLzoP>ej75X?ObG~{!B5K0_&*Kf9?LMHN+-pMc8o&gl6XLqP~=L6on zhWT&^voTlD>sSbg>?Xg=itDNHstMQNVyuO9F#3(9>!ze?%MU^q&gAb}2Ei+BOg5z1 z!<>gGQd$?;!iu;pB;3zr3zEa7d+nT{nH{eY&rhauLPx#Mqw~iL7A9&wBZYB(%|=TK zP4)_GT;cdH?|^Z3MLtJKtJeW$g_zI*@aQJpyLu4k5A}dbTDGpf4rv;KI+L#fjU(g2 z_4#gwx}*k*oPZQA?Pnhw-31E4^+%;1RbQN?o@D}ahmgISQ+qXI6~zSD+AsU5ic2cc z*hXD_?LO8XIMP^Vc}h7S-5)s)&U#wBWu%qZyOU!AU5cqlNti z)u9xOdWLAZrXTk*t~RA`2g~O)Ny~RVNz$DMGI@$Nx9c6C-*KI>#RRtup~+owfIl9K zba;H$8FDFW#`C(aVdp)ZYU&x*47Rnh>dx2ZUv2-)x_H3KhIJ{vi+g>z6Fx3Lu?m|3xIBAY500(giZpJvSQ|D86mzCv| z^uLW>^^T59kL8NVuv4QTJOeb7p=I#fg?z@}w+X+npPilUPFG_SXJE$P@V5!pWR&vl zQEiXp`gY4xQtF;^Lnz^E0-y_c=Q;`ebkP|fS*TRGYwvI&%o*@`Gjdpt=X#@`B5Vf@yV9?f;f188dlLAR>jU|;hi#! zSL_`qH#!{rp+pPbYx%V973~csXcO@H%~_%Q2|zBiy@nao5zT|_S6Nm@GXjANoe}95 z(+WnpQJ6`O>@@%MEO?DtTU>R>F6f_F6eGHdH70$#<VThr=K@BQG; zUkDh|lR8+$@y6jZXYU6(_wbLio)@%cMj2}nt?r8(XV^g1?qnS-(Te0ZKuBG$QU-Ix zYUS(e;)yAbikE*};hzyj*#vrYT*dv9JwA)UAR1fpwRdEmg5klgZdEOj0b#yE^M-?7 zE@sR)WyD?U3($U?TEJBEq2#hg%V@v3AidmvPN1+- z$^_S;CMzVYRgS;=z?HB1Xvq1-UuhD|lD|C~REC45ZeI0@YJ35lU=C;XPF~GY)O4Iu z3*vG&$U6qES+CPO9ImlcD}uQvT6n;g-~m06(8ShTzN06kh^XDwHLOGa0;Y#YhVl>k zBnS!28-{<_scy_gcsx$AJ-1cT*uTRNUgDhgGCT-Z4tVW(s=Hx5Mqc)@B&>5|oA7MZ zVYkh!#?Nu?;zI+u#H}$FzrNw>>Ur4Ta9w(RrDaT?lY{Vo00(FNIQ3c>`^L8{!E{6< zTNgv+a@&+skj^65&2WNn*&h7c#ZZ9&sH@K4-z-cMfZR$@@C0;BSPtw&i4YPbV3inM z^jpt#BQ}|Kc|77J#H2jw-B9j!OTJ~!p>GMqJ&! zmmH;#GemZPO0P4x+RU3M8o(_)0vg_GGD1=3+vDEEV}RCpWb~Mg8MnRGD55Bi?VC)a zFGEbX#I6)JTGA(MBpWa@%UxiBr5rA=_h_2txJkEX>Hvl|;@$tjhUnr?pRzOHrwac( zYWZ8DeYP1k=w?(j8&vY&j1l;TN8iF`Xz#8HGdI&wN}j=Z6{H|hMG%s?U$lVD)!B7W z(_(V3QFmPZK z*D3pxli?{(%`1p=9Gd4}pb1V@m@5-NB2t&X8>4X06a=c41w;qhl|mZ78+h5UcN}NR z_5BzA2FG_X(9~EgAx#vPJXans+JeP{c!DzYI7fwF@OMUx3yZoYAn6#>U7-}Z*@VoXmqA2Gm9_ytyb~~ZY(=^>TjOBf zVef1MXBKnXW_)$h-|-$BKiGo;(E$PGYq&}yVSa!BT+dhf!uB{kkIJj~mw_VoB=!}w zflS35y1(|R&%^IoMu8grEvl2%*n!ZqL*W8x%14NnZ%s~L%7y4-w;7s8Tv@zvY)pJc zTGdOJGgntPa3`M52$g16oNkR9MUKyTIL;S`pUa!kCBI)>Cm*7C~+ zydFqGmw2%d4n<2RaO<#Q=9@F9i54mr?cZBcDSb7U&4lo@qlk3IV0T(_szfJRE3Ye- z*7mWg^7pOF3^EtHkk@h#lnHvDr*Fl|tqE0x%?Hl|vNekD-H#r6mj|Gge_*h zD1a=F{@cNg{+Dq_k2t=N$I?69F?okNhM;Me63AE=RLPQ>Y5m4K-DWr(jjuWhjc$_udFx+2 zI(=XME1u!N(XMoB0yc&V%uoMG#0NXnGfDi2-jQV#R8;O9ZJmqlu{`p3hyB|n;;%z) zar0k3Jt(W~OkR6()&REvnD-K1cKa=FdOvJ-$PY4&eemCD4#WU #layoutOrder then + newIndex = 1 + end + + local newLayoutCode = layoutOrder[newIndex] + local cfg = getLayoutConfig(newLayoutCode) + noctalia.runAsync("mmsg dispatch setlayout," .. cfg.name, function(result) + if result.exitCode == 0 then + pollLayout() + end + end) +end From c3c69bca456f02bcb3193970c46a4c981b04fa9f Mon Sep 17 00:00:00 2001 From: x0d7x <75843278+x0d7x@users.noreply.github.com> Date: Wed, 29 Jul 2026 14:46:14 +0300 Subject: [PATCH 2/3] fix: CI validation errors --- mangowm-status/plugin.toml | 4 +--- mangowm-status/translations/en.json | 24 +++++++++++++++++------- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/mangowm-status/plugin.toml b/mangowm-status/plugin.toml index f2ae1d4a..5a5fdb82 100644 --- a/mangowm-status/plugin.toml +++ b/mangowm-status/plugin.toml @@ -2,14 +2,12 @@ id = "x0d7x/mangowm-status" name = "Mangowm Status" version = "1.1.0" plugin_api = 4 -min_noctalia = "5.0.0" author = "x0d7x" license = "MIT" dependencies = ["mmsg"] icon = "grid" description = "Shows current tiling layout and keymode for Mangowm" -description_key = "plugin.description" -tags = ["bar", "mangowm"] +tags = ["bar", "mangowc"] [[widget]] id = "status" diff --git a/mangowm-status/translations/en.json b/mangowm-status/translations/en.json index fcbb4b6d..b16f859b 100644 --- a/mangowm-status/translations/en.json +++ b/mangowm-status/translations/en.json @@ -1,9 +1,19 @@ { - "plugin.description": "Shows current tiling layout and keymode for Mangowm", - "settings.hide_on_default.label": "Hide on default", - "settings.hide_on_default.description": "Hide the widget when keymode is default", - "settings.show_text.label": "Show text", - "settings.show_text.description": "Show the keymode name beside the glyph", - "settings.notify_change.label": "Notify on change", - "settings.notify_change.description": "Show a notification when keymode changes" + "plugin": { + "description": "Shows current tiling layout and keymode for Mangowm" + }, + "settings": { + "hide_on_default": { + "label": "Hide on default", + "description": "Hide the widget when keymode is default" + }, + "show_text": { + "label": "Show text", + "description": "Show the keymode name beside the glyph" + }, + "notify_change": { + "label": "Notify on change", + "description": "Show a notification when keymode changes" + } + } } From 6cb8942c9864e8e79653341970377c4671f075ff Mon Sep 17 00:00:00 2001 From: x0d7x <75843278+x0d7x@users.noreply.github.com> Date: Thu, 6 Aug 2026 20:06:36 +0300 Subject: [PATCH 3/3] fix: address review feedback - panel.luau: forward-declare doRender so setLayout's failure path can re-render instead of calling a nil global - widget.luau: lower polling fallback to 5s (watch streams already deliver live updates; 1s poll spawned a subprocess every second) - plugin.toml: icon 'grid' -> 'grid-4x4' (resolvable Tabler glyph) - thumbnail.webp: regenerated with the official thumbnail generator --- mangowm-status/README.md | 59 +++++++++++++++++++++++++++------- mangowm-status/panel.luau | 6 +++- mangowm-status/plugin.toml | 2 +- mangowm-status/thumbnail.webp | Bin 13774 -> 67486 bytes mangowm-status/widget.luau | 5 ++- 5 files changed, 58 insertions(+), 14 deletions(-) diff --git a/mangowm-status/README.md b/mangowm-status/README.md index c60cf430..168120b0 100644 --- a/mangowm-status/README.md +++ b/mangowm-status/README.md @@ -1,6 +1,6 @@ # Mangowm Status -Shows the current Mangowm tiling layout and keymode on your bar. Click to open a picker and switch layouts instantly. +A [Noctalia](https://noctalia.dev) v5 bar widget that displays the current [Mangowm](https://github.com/mangowm/mangowm) tiling layout and keymode — click to open a layout picker, scroll to cycle layouts. ![Thumbnail](thumbnail.webp) @@ -11,36 +11,73 @@ Shows the current Mangowm tiling layout and keymode on your bar. Click to open a | ID | `x0d7x/mangowm-status` | | Entries | Bar widget: `status`; panel: `layout-picker` | +## Screenshots + +| Widget (bar) | Layout picker panel | +| --- | --- | +| ![Widget showing Tile layout](screenshots/widget.webp) | ![Layout picker with all layouts](screenshots/panel.webp) | + +## Features + +- **Live layout badge** — shows the active layout glyph and letter code on your bar +- **Keymode indicator** — displays non-default keymodes (resize, move, etc.) beside the layout +- **Click to pick** — left-click opens a scrollable panel of all 14 supported layouts +- **Scroll to cycle** — horizontal scroll cycles through core layouts +- **Live updates** — uses `mmsg watch` streams, no polling +- **14 layouts** — all Mangowm tiling layouts supported + +## Install + +```sh +noctalia plugin install x0d7x/mangowm-status +``` + +Or clone manually into `~/.local/share/noctalia/plugins/mangowm-status/`: + +```sh +git clone https://github.com/x0d7x/mangowm-status.git \ + ~/.local/share/noctalia/plugins/mangowm-status +``` + ## Requirements - Noctalia v5 -- [`mmsg`](https://github.com/mangowm/mango) — Mangowm's IPC CLI tool (must be on `PATH`) +- [`mmsg`](https://github.com/mangowm/mango) — Mangowm's IPC CLI (install with `cargo install mmsg` or grab a release from the [releases page](https://github.com/mangowm/mango/releases)); must be on `PATH` + +## Requirements + +- Noctalia v5 +- [`mmsg`](https://github.com/mangowm/mango) — Mangowm's IPC CLI (install with `cargo install mmsg` or grab a release from the [releases page](https://github.com/mangowm/mango/releases)); must be on `PATH` ## Usage ### Bar widget -Add the **Mangowm Status** widget from the Add-widget picker in your bar settings, or configure it by hand with: +Add the **Mangowm Status** widget from the Add-widget picker in your bar settings, or configure it by hand: ```toml [widget.mangowm-status] type = "x0d7x/mangowm-status:status" ``` -The widget displays the current layout's icon and letter code. When the active keymode is not `default`, the keymode name is shown beside the layout code. +The widget shows the current layout's icon and letter code. When the active keymode is not `default`, the keymode name appears beside the layout code. -- **Left-click** the widget → opens the **Layout Picker** panel. Click any layout to switch immediately. -- **Horizontal scroll** over the widget → cycles through the core layouts (T → S → G → …). +![Widget screenshot](screenshots/widget.webp) + +- **Left-click** → opens the **Layout Picker** panel. Click any layout to switch. +- **Horizontal scroll** → cycles through core layouts (T → S → G → …). ### Layout picker panel -Open with: +Open programmatically with: ```sh noctalia msg panel-toggle x0d7x/mangowm-status:layout-picker ``` -A scrollable list of all 14 supported layouts. The current layout is highlighted. Click any other layout to switch — the panel closes automatically. +A scrollable list of all 14 layouts. The current layout is highlighted. Click any other layout to switch — the panel closes automatically. + +![Panel screenshot](screenshots/panel.webp) ## Settings @@ -61,7 +98,7 @@ noctalia msg plugin x0d7x/mangowm-status:status focused refresh # Get current status (logged as JSON) noctalia msg plugin x0d7x/mangowm-status:status focused get-status -# Set layout by code (T, S, G, M, K, CT, RT, DW, F, VS, VT, VG, VK, VF) +# Set layout by code noctalia msg plugin x0d7x/mangowm-status:status focused set-layout S ``` @@ -87,8 +124,8 @@ noctalia msg plugin x0d7x/mangowm-status:status focused set-layout S ## Notes - This plugin spawns `mmsg` subprocesses to query and change the compositor state. `mmsg` must be installed and on `PATH`. -- Layout changes use `mmsg dispatch setlayout,`. -- The widget keeps two long-running `mmsg watch` streams (keymode + all-tags) for live updates, with a 1-second polling fallback. +- Layout changes use `mmsg dispatch setlayout,` (lowercase layout name, not the short code). +- The widget keeps two long-running `mmsg watch` streams (keymode + all-tags) for live updates, with a low-rate (5 s) polling fallback. - The panel entry fetches tag data on open and does not keep a persistent connection. ## License diff --git a/mangowm-status/panel.luau b/mangowm-status/panel.luau index ca4ecbb9..add4f059 100644 --- a/mangowm-status/panel.luau +++ b/mangowm-status/panel.luau @@ -26,6 +26,10 @@ local layoutOrder = { "T", "S", "G", "M", "K", "CT", "RT", "DW", "F", "VS", "VT" local currentLayoutCode = "T" local switching = false +-- Forward-declared so setLayout's failure path can re-render the panel +-- (doRender is defined after setLayout below). +local doRender + -- Helper to switch layout and close panel local function setLayout(code) if switching or code == currentLayoutCode then return end @@ -61,7 +65,7 @@ function onLayoutVG() setLayout("VG") end function onLayoutVK() setLayout("VK") end function onLayoutVF() setLayout("VF") end -local function doRender() +function doRender() -- Map layout code -> onClick handler name local onClickHandler = { T = "onLayoutT", S = "onLayoutS", G = "onLayoutG", diff --git a/mangowm-status/plugin.toml b/mangowm-status/plugin.toml index 5a5fdb82..4eb324c5 100644 --- a/mangowm-status/plugin.toml +++ b/mangowm-status/plugin.toml @@ -5,7 +5,7 @@ plugin_api = 4 author = "x0d7x" license = "MIT" dependencies = ["mmsg"] -icon = "grid" +icon = "grid-4x4" description = "Shows current tiling layout and keymode for Mangowm" tags = ["bar", "mangowc"] diff --git a/mangowm-status/thumbnail.webp b/mangowm-status/thumbnail.webp index 0c7253629153b9b93797f9f7926b6547c7ecd3ae..fa830ab6bb0080f24d6eee9dd989eaceec364228 100644 GIT binary patch literal 67486 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 literal 13774 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