i3 IPC bridge for Elkowar's Wacky Widgets
Find a file
2023-07-30 22:51:14 -04:00
src cleaned up code, updated version and README 2023-06-20 13:02:12 -04:00
.gitignore initial commit 2023-05-02 17:36:42 -04:00
Cargo.toml cleaned up code, updated version and README 2023-06-20 13:02:12 -04:00
README.md added sample to README 2023-07-30 22:51:14 -04:00

i3 Workspaces Section for EWW

This project is an i3 state reader built for EWW. I switched my main bar from Polybar to EWW, and this project bridges basic IPC from EWW to i3 (something Polybar did natively).

It emits the i3 workspace state as a single element in EWW's unnecessary and poorly-documented in-house Yuck format.

The workspace numbers emitted will have the ws-btn class, focused and urgent classes where appropriate, and an onclick handler that switches to the workspace it represents.

The program will also issue commands to EWW to update the WM_MODE variable with the current i3 mode.

Sample


;;	set WM_MODE variable
(defvar WM_MODE "default")

;;	set up listener for i3-sec
(deflisten i3-workspace "/path/to/i3-sec")

;;	basic widget
(defwidget workspace []
	(box
		:space-evenly false
		;;	basic revealer for mode
		(revealer
			:reveal { WM_MODE != "default" }
			:transition "slideleft"
			(label :text WM_MODE)
		)
		;;	workspace content block
		(literal :content i3-workspace)
	)
)

Libraries

  • i3ipc — handles IPC to i3