A dynamic and extensible GTK4 bar for compositors implementing wlr-layer-shell, written in Rust.
Dynisland is designed to look and feel like Apple's Dynamic Island.
Demo.mp4
This project is still in early development; There will likely be bugs and breaking changes, including changes to the config format.
- Easy to configure with a dynamically generated default config
- Animated transitions
- Themeable with hot loaded css
- Extensible with third party Rust modules and layout managers
- multi-monitor support
dynisland daemon
# or
dynisland restart
dynisland inspector
- this can be useful for css theming
- gtk4
- gtk4-layer-shell
cargo install dynisland
yay -S dynisland-git
mkdir -p ~/.config/dynisland/{modules,layouts}
dynisland default-config >> ~/.config/dynisland/dynisland.ron
touch ~/.config/dynisland/dynisland.scss
See the Wiki for the main config options
See dynisland-modules for the module specific configs
Then edit the configs and scss to your liking.
git clone --recursive https://github.com/cr3eperall/dynisland
cd dynisland
cargo build --release --features completions
cd target/release
install -Dm755 dynisland ~/.local/bin/dynisland
install -Dm644 "target/_dynisland" "/usr/share/zsh/site-functions/_dynisland"
install -Dm644 "target/dynisland.bash" "/usr/share/bash-completion/completions/dynisland.bash"
install -Dm644 "target/dynisland.fish" "/usr/share/fish/vendor_completions.d/dynisland.fish"
git clone https://github.com/cr3eperall/dynisland
cd dynisland
cargo build --release --no-default-features --features completions
cd target/release
install dynisland ~/.local/bin/dynisland
Note
When compiled with the embed_modules
or default
feature the official modules are already included in the binary and this part can be skipped
Download the precompiled modules from the Release page
mv Download/libmusic_module.so Download/libscript_module.so Download/libclock_module.so ~/.config/dynisland/modules
mv Download/libdynamic_layoutmanager.so ~/.config/dynisland/layouts
Or build the modules from source
git clone --recursive https://github.com/cr3eperall/dynisland
cargo build --release --no-default-features --package dynisland_clock_module --package dynisland_dynamic_layoutmanager --package dynisland_music_module --package dynisland_script_module
mv target/release/libmusic_module.so target/release/libscript_module.so target/release/libclock_module.so ~/.config/dynisland/modules
mv target/release/libdynamic_layoutmanager.so ~/.config/dynisland/layouts