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