Or you can call it "an improved workflow". The thing is, many operations we do during the time spent on the computer can be optimized a little bit, sped up and they're not even difficult to set up or remember. Here I bring a few settings I've been using over the years on my laptop.
I know about tiling window managers, that are keyboard oriented, but here I will describe your typical mouse-oriented WMs/DEs.
I've been using these settings mainly on Cinnamon, earlier also on xfce. But they should work with any WM/DE on X11. I'm new to GNOME on Wayland, so I'll work out how to apply these later in the future.
Switching windows to a concrete application
Instead of using Alt+Tab and/or switching workspaces
and remembering where everything is, or — god forbid — using mouse
to navigate between windows, you can jump directly to the application
you need using
So, for example, if I want a shortcut to switch to Firefox,
I'd setup super+f to execute
wmctrl -xa firefox.
This works only on X11 window system though.
Another thing I've been using is, a script I call
ros (run or switch).
Here's the Gist.
This script checks, whether the process is already running. If it does,
the it switches to the application, if not, it starts the application.
Pretty simple, yet it can save some time.
For Wayland, there's a script called gnome-magic-window that does the same thing. The usage is simple:
gnome-magic-window "Window name" "command-to-run-if-no-window-is-open"
Fish is a friendly interactive shell.
After installing, you can make it default by using
chsh -s `which fish`.
Fish already comes with a lot of QoL improvements. One particular caught my interest and that's when you press alt+l, it lists the files inside the current folder (or any folder that's currently written on your line).
It so happens, that you can configure shortcuts like these yourself.
~/.config/fish/config.fish you can add this:
function fish_user_key_bindings bind \es 'echo ""; git status; commandline -f repaint;' end
This will enabled you to press alt+s and run
Full documentation on custom bindings can be found here.
Another QoL for you might be custom completions. Many are already built into fish, but the best example for custom ones I can think of are when you're at your job and you have some internal tools, with some/many arguments that you can't remember even after a year of working there. So you can either make tons of aliases for these commands or make your own completions.
The documentation can be found here.
All completions are stored in