Hi! This the widget system that I wrote for my own desktop
Here is a list of compositors on which it works
-- Hyprland: ✓
-- Sway: ✓
You'll need gtk4-layer-shell, wpctl, Rust, and brightnessctl
as a dependency,
and simply running ./install.sh
would do the job.
Use -h/--help
to print help
Dvvidget supports custom configs and css files,
you can use -c
or --config
flag to set the config. The default path is $HOME/.config/dvvidget/config.toml
you can use -p
or --path
flag to set the socket path. The default path is /tmp/dvvidget-[version].sock
you can use -m
or --monitor
flag to run commands for a specific monitor
The sample config file is in src/config.toml, and you can put the config in ~/.config/dvvidget/config.toml
dvvidget has a client and a server. If you want to use dvvidget, you can use dvvidget daemon
to start the daemon.
You can then use dvvidget volume -h
, dvvidget brightness -h
, and dvvidget dvoty -h
to learn how to
use the client.
There is a style.css in src that has a sample css.
It uses gtk css.
Here are the class names:
for sound and brightness:
|--window: .sound-window & .bri-window
    |--box:
        |--icon: .sound-icon & .bri-icon
        |--label: .sound-label & .bri-label
        |--scale: .sound-scale & .bri-scale
for the launcher (dvoty):
|--window: .dvoty-window:
    |--wrapper: .dvoty-wrapper
        |--input: .dvoty-input
            |--outerwrapper: .dvoty-scroll
                |--scrolled window
                    |--list box: .dvoty-list
                        |-- ENTRY
for ENTRY:
|--list box row:
Every entry will have the class .dvoty-entry if it's not focused and .dvoty-entry-select if it's focused
Aside from that, every entry will get .dvoty-entry-[type] or .dvoty-entry-[type]-select
Types are: math, instruction, search, url, launch, and letter
    |--box: .dvoty-box
        |--icon: .dvoty-icon
        |--scrolled window: .dvoty-scroll-mid
            |--label: .dvoty-label .dvoty-label-mid
        |--label: .dvoty-label, .dvoty-label-end
Dependencies:
wpctl, brightnessctl, gvfs, gtk4-layer-shell