Update: this plugin is now built-in to elementary OS, see https://blog.elementary.io/elementary-os-6-odin-updates-november-2021/. The repo is as such now archived :)
This is an alternative to the stock libplank window switcher.
Warning! This is still very alpha and in progress.
The plugin uses an unreleased Gala API for plugins. Until it is ready, the project status will not change.
You will need the most recent snapshot of gala project from bzr.
Inside the repo, you will need to create a new folder in the plugins
folder and symlink the Makefile.am
and src/Main.vala
files.
Now update the gala plugins/Makefile.am
and append the new plugin folder to
the SUBDIRS
variable.
And update the gala configure.ac
file to include the new path
plugins/alternate-alt-tab/Makefile
in its AC_CONFIG_FILES
.
Last thing you will need to install the schema file.
You can just symlink the file and run glib-compile-schemas
.
Next, continue with the normal gala build instructions.
$ ./autogen.sh --prefix=$PWD/build
$ make
$ make install
Running gala directly from ./build/src/gala
could result into a broken desktop.
To avoid this, consider using Xephyr
(apt-get install xerver-xephyr
).
You will need to start Xephyr and tell gala to use it.
$ Xepyr :1 &
$ ./build/bin/gala -d :1 &
Note: :1
is just an ID, it can be a different number if 1 is already
being used. Consider increasing the number.
Now that you have gala build running in a virtual X server, you can launch
applications with the DISPLAY=:1
environment variable set.
$ DISPLAY=:1 xterm &
Now switching to the Xephyr window, you can capture the mouse and keyboard and test your build.
Alternatively, if you prefer running gala in your main session, you can just run
./src/gala --replace
. If you break something and the wm crashes you will most
likely not be able to anything anywhere. To get yourself back running you can switch
to a different tty, login and run a different wm of your choice with the display
set to :0. For metacity that'd be for example metacity -d :0
.
git checkout -b my-new-feature
)git commit -am 'Add some feature'
)git push origin my-new-feature
)