Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

A dynamic and extensible GTK4 layer-shell, written in Rust.

License

NotificationsYou must be signed in to change notification settings

cr3eperall/dynisland

Repository files navigation

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

Demo.mp4

Status

This project is still in early development; There will likely be bugs and breaking changes, including changes to the config format.

Features

  • Easy to configure with a dynamically generated default config
  • Animated transitions
  • Themable with hot loaded css
  • Extensible with third party Rust modules and layout managers
  • multi-monitor support

Planned features:

  • loading modules after startup
  • ? unload modules at runtime
  • ? custom widgets in lua

Usage

Start/restart the daemon

dynisland daemon# ordynisland restart

Open the gtk debugger

dynisland inspector
  • this can be useful for css theming

Dependencies

  • gtk4
  • gtk4-layer-shell

Installation

Using cargo

cargo install dynisland

Arch Linux

yay -S dynisland-git

Configuration

Create the directory structure

mkdir -p~/.config/dynisland/{modules,layouts}

Download or compile the modules and put them in the modules directory

Note

If dynisland was compiled with theembed_modules feature (dynisland v0.1.2 has this as the default), theofficial 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 theRelease page

mv Download/libmusic_module.so Download/libscript_module.so Download/libclock_module.so~/.config/dynisland/modulesmv Download/libdynamic_layoutmanager.so~/.config/dynisland/layouts

Or build the modules from source

git clone --recursive https://github.com/cr3eperall/dynislandcd dynislandcargo build --release --no-default-features --package dynisland_clock_module --package dynisland_dynamic_layoutmanager --package dynisland_music_module --package dynisland_script_modulemv target/release/libmusic_module.so target/release/libscript_module.so target/release/libclock_module.so~/.config/dynisland/modulesmv target/release/libdynamic_layoutmanager.so~/.config/dynisland/layouts

Generate the default config file

dynisland default-config>>~/.config/dynisland/dynisland.rontouch~/.config/dynisland/dynisland.scss

See theWiki for the main config options

Seedynisland-modules for the module specific configs

Then edit the configs and scss to your liking.

Building

Without including the modules

git clone https://github.com/cr3eperall/dynislandcd dynislandcargo build --release --no-default-features --features completionscd target/releaseinstall dynisland~/.local/bin/dynisland

Including the modules

git clone --recursive https://github.com/cr3eperall/dynislandcd dynislandcargo build --release --features completionscd target/releaseinstall -Dm755 dynisland~/.local/bin/dynisland

Install shell completions

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"

Acknowledgements

  • eww - For reference on how to do IPC, custom gtk widgets and some of the systray code
  • Nullderef - For a deep dive on how to implement a plugin system in rust

About

A dynamic and extensible GTK4 layer-shell, written in Rust.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

[8]ページ先頭

©2009-2025 Movatter.jp