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.
https://github.com/user-attachments/assets/3a8ae42e-a688-48d9-b76b-9d8292d7d9a7
This project is still in early development; There will likely be bugs and breaking changes, including changes to the config format.
Planned features:
dynisland daemon
# or
dynisland restart
dynisland inspector
cargo install dynisland
yay -S dynisland-git
mkdir -p ~/.config/dynisland/{modules,layouts}
[!NOTE] If dynisland was compiled with the
embed_modules
feature (dynisland v0.1.2 has this as the default), the official modules are already included in the binary. You would only have to do this if you want to use third party modules.
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
cd 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
dynisland default-config >> ~/.config/dynisland/dynisland.ron
touch ~/.config/dynisland/dynisland.scss
Then edit the configs and scss to your liking.
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
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"