嵌Lua腳本入門(mén):用paneru.setup一行聲明整套配置)
Paneru內(nèi)嵌Lua腳本入門(mén)用paneru.setup一行聲明整套配置【免費(fèi)下載鏈接】paneruA sliding, tiling window manager for MacOS.項(xiàng)目地址: https://gitcode.com/gh_mirrors/pan/paneru如果你正在尋找一款適合 macOS 的滑動(dòng)平鋪窗口管理器Paneru 值得一試。與傳統(tǒng)平鋪工具不同Paneru 把窗口排布在一條可向右無(wú)限延伸的窗口帶上打開(kāi)新窗口永遠(yuǎn)不會(huì)打亂你已有的布局。更棒的是它內(nèi)嵌了一個(gè)Lua 腳本運(yùn)行時(shí)——你只需寫(xiě)一個(gè)init.lua用一行paneru.setup{...}就能聲明整套配置連 TOML 文件都不用再碰。為什么用內(nèi)嵌 Lua 腳本配置 PaneruPaneru 默認(rèn)使用 TOMLpaneru.toml作為配置文件。而內(nèi)嵌的 Lua 腳本提供了一個(gè)等價(jià)卻更強(qiáng)大的替代方案一份文件管到底一個(gè)init.lua即可替代整個(gè) TOML選項(xiàng)、邊距、快捷鍵、窗口規(guī)則全部集中在這里??删幊坛寺暶髋渲眠€能掛事件鉤子、綁定 Lua 回調(diào)、查詢窗口狀態(tài)。保存即生效編輯保存后自動(dòng)熱重載無(wú)需重啟。注意Lua 腳本和 TOML 是二選一的關(guān)系。只要存在init.luaPaneru 就不會(huì)再讀取、創(chuàng)建或監(jiān)視paneru.toml——兩套配置不能同時(shí)生效。第一步找到并創(chuàng)建你的 Lua 腳本Paneru 會(huì)按以下順序查找腳本文件$PANERU_LUA環(huán)境變量$HOME/.paneru.lua$XDG_CONFIG_HOME/paneru/init.lua大多數(shù)用戶會(huì)選擇第三個(gè)位置創(chuàng)建并編輯一個(gè)init.lua即可開(kāi)始。用 paneru.setup 一行聲明整套配置paneru.setup{...}接收一張 Lua 表其中的字段與 TOML 的各個(gè)小節(jié)一一對(duì)應(yīng)options、padding、swipe、decorations、restore、windows以及頂層的default_workspaces。下面是一個(gè)最小可用的示例聲明焦點(diǎn)跟隨鼠標(biāo)、窗口邊距和幾個(gè)常用快捷鍵paneru.setup { default_workspaces 3, options { focus_follows_mouse true, mouse_follows_focus true, sliver_width 5, }, padding { top 10, bottom 10, left 8, right 8 }, bindings { [window focus west] cmd - h, [window focus east] cmd - l, [window resize] alt - r, [quit] ctrl alt - q, }, }保存文件Paneru 就會(huì)立即應(yīng)用這套配置。兩種等價(jià)的綁鍵寫(xiě)法paneru.bind(快捷鍵, 處理器)—— 處理器可以是命令字符串也可以是一個(gè)Lua 函數(shù)函數(shù)形式能拿到狀態(tài)快照且只有paneru.bind支持函數(shù)。在setup表里寫(xiě)bindings子表 —— 以命令為鍵、快捷鍵為值本質(zhì)是paneru.bind的語(yǔ)法糖。讀取當(dāng)前配置paneru.config想看看某個(gè)選項(xiàng)當(dāng)前是什么值paneru.config已經(jīng)替你準(zhǔn)備好了它預(yù)先填充了內(nèi)置默認(rèn)值哪怕你還沒(méi)調(diào)用paneru.setup也能讀到paneru.config.options.sliver_width等字段。調(diào)用paneru.setup{...}后你的配置表會(huì)合并在默認(rèn)值之上。它是只讀快照直接改paneru.config的字段不會(huì)生效除非你把改過(guò)的表再傳回paneru.setup(paneru.config)。paneru.bind(alt - i, function() local widths paneru.config.options.preset_column_widths paneru.flash(當(dāng)前 sliver 寬度 .. tostring(paneru.config.options.sliver_width)) end)保存即熱重載和 TOML 一樣init.lua編輯保存后會(huì)自動(dòng)熱重載整個(gè)配置包括菜單欄和按鍵穿透的更新。改個(gè)快捷鍵、調(diào)個(gè)邊距保存一下就能立刻看到效果不必退出重進(jìn)。常用配置小節(jié)速查小節(jié)作用options焦點(diǎn)跟隨、動(dòng)畫(huà)速度、預(yù)設(shè)窗口寬度等全局選項(xiàng)padding窗口四周的內(nèi)邊距swipe觸控板滑動(dòng)手勢(shì)的靈敏度decorations活動(dòng)/非活動(dòng)窗口的邊框顏色與寬度restore啟動(dòng)時(shí)會(huì)話恢復(fù)windows按應(yīng)用/標(biāo)題匹配的窗口規(guī)則default_workspaces每個(gè)顯示器的默認(rèn)虛擬工作區(qū)數(shù)量更多字段細(xì)節(jié)可參考 CONFIGURATION.md 的完整配置指南。下一步從聲明配置到事件驅(qū)動(dòng)paneru.setup只是 Paneru Lua 腳本的起點(diǎn)。掌握它之后你可以繼續(xù)進(jìn)階用paneru.on(window_focused, ...)監(jiān)聽(tīng)窗口事件實(shí)現(xiàn)自動(dòng)布局用ws:focus()/ws:swap()等純函數(shù)式窗口集操作編寫(xiě) xmonad 風(fēng)格的布局腳本用paneru.state.set(...)把數(shù)據(jù)保存下來(lái)讓狀態(tài)跨越腳本重載與守護(hù)進(jìn)程重啟。完整 API 與更多示例請(qǐng)閱讀 SCRIPTING.md 的 Lua 腳本指南實(shí)現(xiàn)細(xì)節(jié)可參考 src/lua/api.rs 與 src/lua/runtime.rs?!久赓M(fèi)下載鏈接】paneruA sliding, tiling window manager for MacOS.項(xiàng)目地址: https://gitcode.com/gh_mirrors/pan/paneru創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考