MacOS X Exposé reimplemented.
Not stable, under development.
Exposway brings the MacOS X Exposé functionality to the Sway window manager, allowing you to overview all windows and navigate to your desired one. This feature is similar to:
- MacOS Mission Control
- Gnome Activities Overview
- KDE Present Windows
It's implemented in pure C with minimal dependencies.
Currently, you need to compile Exposway from source.
You need the following dependencies:
cairo
for interface drawingpango
for font renderinggrim
for taking snapshots
Clone the repository locally and run make
to generate the executable.
By default, clang
is used as the compiler.
To use a different compiler, you can specify it like this:
make CC=gcc
Next, install the binary to your $PATH
by make install
.
The default installation prefix is /usr/local
.
To change this, use:
make PREFIX=/usr install
There are two curcial enviroment variables that needs to be set properly.
export EXPOSWAYDIR="$HOME/.local/state/exposway/"
export EXPOSWAYMON="$EXPOSWAYDIR/output"
You should launch exposwayd
as a daemon at boot.
To trigger Exposé, run exposway
.
For example, add the following to your Sway configuration file:
exec exposwayd
bindsym $mod+z exec exposway
After pressing the designated shortcut key or executing exposway
, you will enter Exposé mode.
The following keys are supported:
- the arrow keys, to change focus between windows
space
, to navigate to the currently focused windowesc
, do nothing and exit
Edit the source files expose.c
and exposed.c
directly. If unsure, feel free to open an issue.
Launch exposwayd
with the log option -l
, the log is located at $EXPOSWAYDIR/expose.log
.
Simply run make analysis
will do. Clang/LLVM toolchain is needed for this.
Please adhere to the LLVM
coding style. If you use clangd as LSP, make compdb
will generate the compile_commands.json
for you.