Skip to main content

Active edges for wayland.

Project description

wledges

Active edges for Wayland compositors.

You might also be interested in wlosd which provides on-screen display for Wayland compositors.

Supported Desktops

Tested on Sway, but should work on all Wayland compositors that support the Layer Shell protocol. More precisely, it should work on all desktops supported by gtk4-layer-shell.

Installation

Dependencies:

Debian/Ubuntu:

sudo apt install libgirepository-1.0-dev gcc libcairo2-dev pkg-config python3-dev gir1.2-gtk-4.0 libgtk4-layer-shell-dev
pip install pygobject

Fedora:

sudo dnf install gcc gobject-introspection-devel cairo-gobject-devel pkg-config python3-devel gtk4 gtk4-layer-shell-devel
pip install pygobject

Arch Linux:

sudo pacman -S python cairo pkgconf gobject-introspection gtk4 gcc gtk4-layer-shell
pip install pygobject

For other distributions, you will need:

Install wledges:

From PyPi:

pip install wledges

Or clone this repository.

Usage

wledges allocates for each screen edge, and corner, specified on the command line, a rectangular area of the specified size. Every time the mouse cursor interacts with those areas (moves in, clicked on, scrolled on) wledges prints a line to standard output. The line indicates which edge or corner was interacted with, and what was the interaction.

For example, running the following command in a terminal allocates a 1 pixel active line, 30% the length of the screen, at the top (centre) of the DP-1 output, and a 1 by 1 active pixel at the top-left corner of the screen.

wledges --top 30%x1 --top-left 1x1 DP-1

The command displays a slightly bigger rectangle (30%x50) to indicate that this edge is active. The --css command line argument can be used to pass a GTK4 style sheet (see style.css for example, and overview and properties for documentation), that can be used to style the indicator, to make it less obtrusive. In any case, only input events from the (smaller) active area are captured by wledges; other events are sent to the window below.

Moving the mouse cursor to the very top of the screen (being inside the displayed 30%x50 rectangle is not enough, the cursor must be in the 30%x1 active area) first prints (after a delay of 0.75 seconds) "top timeout", and then repeatedly (every 0.75 second) "top repeat", until the cursor is moved out of the rectangle. Clicking the mouse left button while the cursor is in the active rectangle prints "top press-1", and similarly for the other mouse buttons. Scrolling the mouse wheel prints "top scroll-DIRECTION" where DIRECTION is one of up, down, left, right. Clicking or scrolling the mouse also cancels the timeout and repeat lines, until the cursor moves out of the active area, and comes back in.

If you are using Sway, the following Bash script can be used to switch workspaces when the mouse cursor touches the left or right edges of the screen (change the first line to match your output, see swaymsg -t get_outputs for a list of outputs):

output='DP-1'

while IFS=' ' read -r line; do
  case "${line}" in
    left\ timeout | left\ repeat)
      swaymsg "focus output ${output} ; workspace prev_on_output"
      ;;
    right\ timeout | right\ repeat)
      swaymsg "focus output ${output} ; workspace next_on_output"
      ;;
  esac
done < <(python -m wledges --left 1x50% --right 1x50% "${output}")

License

MIT, see LICENSE

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

wledges-1.tar.gz (10.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

wledges-1-py3-none-any.whl (8.8 kB view details)

Uploaded Python 3

File details

Details for the file wledges-1.tar.gz.

File metadata

  • Download URL: wledges-1.tar.gz
  • Upload date:
  • Size: 10.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.11.9

File hashes

Hashes for wledges-1.tar.gz
Algorithm Hash digest
SHA256 ebc8a0e80a1c55701ca412a227d5bb3c45a63e1090939f87d4f0752b83e6a5da
MD5 d73bf787f6ddea4e2ca6314fd04c45dc
BLAKE2b-256 799719619f08d34bddb427ead5cab7f83652fd30cb534b8af720f2a2561237ae

See more details on using hashes here.

File details

Details for the file wledges-1-py3-none-any.whl.

File metadata

  • Download URL: wledges-1-py3-none-any.whl
  • Upload date:
  • Size: 8.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.11.9

File hashes

Hashes for wledges-1-py3-none-any.whl
Algorithm Hash digest
SHA256 0d8ee143fe4afb4b3c8033742b147df745400480def8d0cc161fdf94b5a54ca5
MD5 87168f59985b487c8ae49c5266299fab
BLAKE2b-256 8d0f9391c06c18fcb3fcc1e3dc853e3a930d51eaac4655b435df44f45ed7df9b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page