I’m working on polishing a collection of minor desktop hacks that will transform my Gnome Shell experience into something more palatable than vanilla. In preparation for an article on how best to achieve these goals I wrote down the following as a sort of vision and mission statement for the project. The how-tos will appear over the following weeks months under the everything in it’s right place tag.
My desktop philosophy is that everything has it’s place. Yes, it’s very anal but I’ll take that as a compliment. Browsers here, Terminals there. The desktop metaphor is apt: I have books on my desk. They belong in the upper right corner. I have a keyboard. It’s place is in the center in front of the display. Etc. That is where I expect them to be and that is where my eye automatically goes when I need them. Certain kinds of things, like pencils, should be pulled in to wherever I need them and then ideally disappear into another dimension until I need them again. Of course real life pencils don’t do that. But surely that would be a more ideal office than one in which pencils are lying about all over the place simply because you never know when or where you might need one.
So much for metaphor. This is how it translates into virtual space.
- Static workspaces. If everything has it’s place then workspaces can’t appear and disappear just because there isn’t anything on them at any given time. Dynamic workspaces would force me to manually reconstruct my preferred order every single time I logged into the desktop.
- Certain windows belong on certain workspaces. Multiple workspaces give you an overview of where everything is (as opposed to the one giant stack of Windows) and dedicated workspaces make you intuitively navigate in the direction of the right workspace when you need something, like in the book analogy above.
- Ideally these dedicated workspaces should be laid out in a 2D landscape/grid, because it reduces ‘travel distance’ when compared to a one dimensional column. Also that sort of layout just seems very intuitive to me but alas not to most DE developers these days. Since GNOME 3 lays out workspaces in a one-dimensional column, I’ll have to settle for one-workspace-per-group-of-applications to avoid one 18 workspace high column [Yes I know there’s an extension for workspace grids but a) it doesn’t work for me b) the developer hasn’t responded to my bug reports and c) I prefer a solution without relying on GNOME extensions]
- Keyboard shortcuts. The above requirements ensure that you can quickly navigate up and down to your desired application but this should be supplemented by direct-access shortcuts. Similarly to how GNOME Shell works by default, starting the application if it’s not active and simply focusing it if it is, should be the default mode of operation for such shortcuts.
- Toggles. In the desktop metaphor I threw in pencils. On the virtual desktop that corresponds to smaller applications that do not require your direct attention for long, that you do not ‘work’ in. Functionally it is small, quick diversions from your main task. Technically it roughly encompasses any application that can’t or isn’t meant to ever be maximised. Smartphone fluff like an instant messaging application or a twitter client, for example. These I want to be able to toggle: A keyboard shortcut will make the application appear on top of my current window. Pressing the same key again will make it disappear, making it just as easy to dispense with as to call in.
Over the years, I have tried to achieve this in a scary amount of configurations and inside a lot DEs and with various WMs. When GNOME appeared I thought the extensions would be the solution. I quickly learned that with GNOME’s add-on scheme there is no stability. Every time you update GNOME things will invariably break and since GNOME’s ecosystem is nowhere near the size of FIrefox’s there is no guarantee that things will simply get fixed by themselves.
The solutions in the next pieces in the series are the best that I’ve come up with but they can still be improved upon and they are still hacks. They are however hacks that unlike the extension scheme has years and years of working history. That is a far better guarantee than any other you will get outside of one-stop solution window managers like Openbox. Therefore I feel confident in saying that a) they will do what they set out to do b) they will do so for the foreseeable future (all bets are off once Wayland replaces Xorg) and c) they will not kill or interfere with basic GNOME Shell functionality in unintended ways.