tom95 / gala-alternate-alt-tab

Plugin for alternative alt-tab window switcher for the Gala WM
GNU General Public License v3.0
23 stars 7 forks source link

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 :)

Gala Window Manager Alternative Window Switcher

This is an alternative to the stock libplank window switcher.

Current status

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.

Hacking

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

Testing

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.

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request