Skip to content
/ eww-ws Public

A simple Daemon to provide workspace variables to EWW ( Elkowars Wacky Widgets)

License

Notifications You must be signed in to change notification settings

dlasky/eww-ws

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EWW-WS

A simple binary that supports updating workspaces as a variable in EWW.

The goal of this project is to support a consistent JSON format for EWW regardless of WM used, to enable simpler overall EWW config. We will also attempt to use IPC interfaces where possible to avoid comparatively heavy calls to exec like most of the existing 'script' solutions.

The tool relies on the def listen feature of EWW to stream updates as needed. The idea being that we avoid polling by utilizing the IPCs of the respective window managers to determine which workspace is active, then we emit an update json object which eww picks up.

Example Eww Configuration:

(deflisten SPACES :initial '{"active":0,"workspaces":[]}' "~/.config/eww/scripts/eww-ws")

(defwidget ws []
  (box :class "workspaces"
  (for entry in "${SPACES.workspaces}"
    (button :onclick "hyprctl dispatch workspace ${entry.id}"
      "${entry.name}"))
  ))

Currently Supported:

Single Monitor only -- will be exploring how to support this better in the near future

  • Hyprland
  • Sway
  • River

TODO:

  • Multi Monitor
  • WM agnostic 'switch to' workspace command

About

A simple Daemon to provide workspace variables to EWW ( Elkowars Wacky Widgets)

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages