3 个版本
新增 0.1.2 | 2024年8月28日 |
---|---|
0.1.1 | 2024年8月26日 |
0.1.0 | 2024年8月26日 |
#1 in #island
每月下载量:182
79KB
1.5K SLoC
Dynisland
Dynisland 是一个用于实现 wlr-layer-shell 的合成器的动态和可扩展的 GTK4 栏,使用 Rust 编写。
Dynisland 设计得与苹果的动态岛屿相似。
演示
https://github.com/user-attachments/assets/3a8ae42e-a688-48d9-b76b-9d8292d7d9a7
功能
- 易于配置,具有动态生成的默认配置
- 动画过渡
- 可使用热加载 CSS 主题化
- 可通过第三方 Rust 模块和布局管理器扩展
计划中的功能
- 多显示器支持
- 启动后加载模块
- ? 在运行时卸载模块
- ? 使用 lua 定制小部件
使用方法
启动/重启守护进程
dynisland daemon
dynisland restart
打开 gtk 调试器
dynisland inspector
- 这可以用于 CSS 主题化
依赖项
- gtk4
- gtk4-layer-shell
安装
cargo install dynisland
配置
创建目录结构
mkdir ~/.config/dynisland
mkdir ~/.config/dynisland/modules
mkdir ~/.config/dynisland/layouts
下载或编译模块并将它们放入模块目录
[!NOTE] 如果 dynisland 是使用
embed_modules
功能编译的(dynisland v0.1.2 将此作为默认值),则官方模块已经包含在二进制文件中。只有当您想使用第三方模块时才需要这样做。
从 发布页面 下载预编译的模块
mv Download/libmusic_module.so Download/libscript_module.so Download/libclock_module.so ~/.config/dynisland/modules
mv Download/libdynamic_layoutmanager.so ~/.config/dynisland/layouts
或从源代码构建模块
git clone --recursive https://github.com/cr3eperall/dynisland-modules
cd dynisland-modules
cargo build --release --target-dir ./target --manifest-path ./clock-module/Cargo.toml
cargo build --release --target-dir ./target --manifest-path ./dynamic-layout/Cargo.toml
cargo build --release --target-dir ./target --manifest-path ./music-module/Cargo.toml
cargo build --release --target-dir ./target --manifest-path ./script-module/Cargo.toml
mv target/release/libmusic_module.so target/release/libscript_module.so target/release/libclock_module.so ~/.config/dynisland/modules
mv targer/release/libdynamic_layoutmanager.so ~/.config/dynisland/layouts
生成默认配置文件
dynisland default-config >> ~/.config/dynisland/dynisland.ron
touch ~/.config/dynisland/dynisland.scss
然后编辑配置和 scss 以满足您的需求。
构建
不包含模块
git clone https://github.com/cr3eperall/dynisland
cd dynisland
cargo build --release
cd target/release
install dynisland ~/.local/bin/dynisland
包含模块
git clone https://github.com/cr3eperall/dynisland
git clone https://github.com/cr3eperall/dynisland-modules
cd dynisland
cargo build --release --features embed_modules
cd target/release
install dynisland ~/.local/bin/dynisland
状态
此项目仍在早期开发阶段;可能会出现错误和破坏性更改。
致谢
依赖项
~28–45MB
~775K SLoC