My desktop work environment and workflow

Top Page
Attachments:
Message as email
+ (text/plain)
Delete this message
Reply to this message
Author: Steve Litt via PLUG-discuss
Date:  
To: plug-discuss
CC: Steve Litt
Subject: My desktop work environment and workflow
Hi all,

Given the discussion of KDE, Gnome, Openbox, LXDE, etc, I should
probably describe how I compute.

First of all, on my laptops I use LXDE, which is a fairly lightweight
desktop environment with a panel including a start button, on the
bottom, similar to KDE, win98, or a typical xfce setup. On my laptops I
feel more comfortable with a panel because my typical use of a laptop
is giving a class or presentation, where I want to use all my
brainpower to relate to the audience after going through the not
inconsiderable hassle of getting my computer synced up with the
customer's projector or bigscreen.

My Daily Driver Desktop (DDD) is different. My DDD is where I write my
books, create my web pages, create my courseware, do my programming,
and interact with email and browsers. My bad vision (like maybe 20/40
corrected) means I need to use a dpi of 140 and clockface fonts, even
on my 28" monitor. Which means I need all the screen real estate I can
get, meaning a panel (the taskbar at the bottom of environments like
KDE and Xfce) wastes about a half inch of vital screen real-estate. So
I don't use a panel on my DDD.

So I use the Openbox window manager on my DDD. Openbox is actually
pretty heavy for a window manager: Not nearly as light as DWM, i3,
ctwm, or even IceWM (a really excellent lightweight product with full
panel). The reasons I chose Openbox are:

1) Stable and reliable as hell
2) Alt+Tab works exactly as you'd expect, which is vital for me
3) Fully compatible with all LXDE and LXQt software
4) Light and lightning quick, unless Firefox is doing a number on me
5) Easy to set custom hotkeys for both windowmanager functions and
random executables

I should mention I'm a 50 wpm typist, so I try to do as much of my
interaction with my keyboard rather than the mouse.

Life without a panel is initially difficult. You can't glance down and
check the time. You can't glance down and see CPU usage. You have no
network applet. You can't see at a glance what windows are operating
in the current workspace. And you have no start button (ugh). It took a
lot of getting used to, and adaptation.

The first thing you do with Openbox or any similar product is to make
an area on the screen's left, probably about 8 pixels wide, where
windows are forbidden to be opened. This gives you the option of always
being able to mouseclick the desktop in order to do things like open
the system menu, or show a list of open windows sorted by workspace (a
must whether you have a panel or not). If you're a mouse-only user,
that's pretty much all you have to do.

If you're a keyboard-centric person like me, you need to set up many
hotkeys. Keeping in mind that actual exact hotkey combos are completely
a matter of taste for the individual user, here are the hotkeys I
personally have set up for my Openbox on my DDD:

Shift+Ctrl+; runs dmenu from Suckless Tools, enabling me to run any
program, including home-grown shellscripts, on the executable path,
using maybe 3 or 4 keystrokes plus pressing the Enter key. From a
workflow perspective, this is lightning fast. I'll talk more about
dmenu later, because it's been an essential part of my life, using
Ubuntu, Debian, and Void Linux, on pretty much any wm/de (Window
Manager/Desktop Environment).

Shift+Ctrl+, brings up the system menu, which, in the case of Void
Linux with Openbox, is of limited use, but is great to restart Openbox
after changing its config, without closing already running programs.

Shift+Ctrl+. brings up a list of all running windows, sorted by
workspace. This is *absolutely essential* to my workflow.

Shift+Ctrl+j toggles a laptop mousepad on and off.

Shift+Ctrl+d brings up a window with the date and time. This is a
partial substitute for not having a clock on a panel.

Alt+1 thru Alt+9 puts me in the specified workspace.

Ctrl+Alt+Right puts me in the next workspace right.

Ctrl+Alt+Left puts me in the next workspace left. Both the left and
right workspace hotkeys stop at the leftmost or rightmost workspaces,
which I find very handy.

Alt+0 closes the currently focused window. I changed it from Alt+F4
because I personally find Alt+0 more ergonomic.

Ctrl+9 runs my UMENU2 program, which for 20 years I've used instead of
the menu that comes with your wm/de. One huge advantage is that UMENU2
can be used on different wm/de's, survives upgrades and even whole
OS reinstalls, and it's useable in CLI (Command Line Interface)
environments. Plus it's very configurable, and whole shellscripts can
be defined in a menu item's config.

Alt+Tab does the usual: Move down the current workspace's window stack.

Alt+Space does the usual: Opens the window menu.

Let's talk about dmenu from Suckless tools, because that's probably the
most handy workflow assistant I have. You press a hotkey and a list of
the first 24 executables on the executable path appear in a vertical
list. As you type characters, the list is reduced to only executables
whose names contain the typed character sequence, with the ones
*starting* with that sequence sorting to the top. As a practical
matter, by the time you've typed 3, 4 or 5 characters, you've probably
reduced the list to a single executable, at which time you just press
Enter, and that executable runs. In other words, I can run an
executable in the time it would take me to reach for my mouse on a one
way trip. Lightning quick. dmenu is so lightweight that there's
absolutely no perceptable delay between keystrokes.

The dmenu program isn't perfect. It's pure X (no window manager
functions), so it doesn't work in a CLI environment, nor does it work
with Wayland, although I hear there's a version for Wayland. More
troublesome, running a CLI executable via dmenu can bollix up your OS,
making many windows come to a halt. So I have shellscript
clear_umenu.sh, which basically kills anything in `ps axj` with a
status of 'T'. I sometimes have to run that shellscript two or three
times to get my OS operational, and some of the program windows get
closed in the process.

This is obviously a last resort kludge. What I *should* do is to
configure dmenu to check that a program is a GUI program, and refuse to
run anything if it isn't. Or else perhaps run the non-GUI program
inside a GUI terminal emulator. If anybody can tell me how to tell
whether an executable is GUI without running it, this would be very
easy to do, and would be valuable not just to me but to anybody using
dmenu.

I also use UMENU2, which is free software I created. You can download
it from Troubleshooters.Com. UMENU2 isn't ready for prime time:
Configuring your menus

I don't do much drag and drop, at least not between different programs,
probably because I'm not using an integrated environment like KDE,
Gnome or xfce. However, from file managers pcmanfm and thunar you can
drag a file and drop it in Gvim or emacs or Inkscape or Gimp (but
unfortunately not Bluefish). Those file managers also allow you to left
click a data file and choose a program in which to open it. So,
although not as sophisticated and robust as in a real, integrated
Desktop Environment, you *can* work from a file manager, just like on a
Mac.

I make lots of custom shellscripts to speed up and make easier my
activities. I keep them in /d/bats, which in the 20th century was
d:\bats in windows. So my workflow habits have actually survived a
complete change of operating systems.

I'm completely satisfied with my computer and workflow, probably
because any time I'm not satisfied, I just configure things so I *am*
satisfied. Does all this configuring and shellscript construction take
time? Sure it does, but I do it once and use it to save time forever
after. I just basically automate anything I expect to use frequently.
And because most of it was made by me and is contained in /d/bats, it
easily survives upgrades and even distro replacements.

I could go on and on, but this is probably sufficient.

SteveT

Steve Litt
Autumn 2020 featured book: Thriving in Tough Times
http://www.troubleshooters.com/thrive
---------------------------------------------------
PLUG-discuss mailing list -
To subscribe, unsubscribe, or to change your mail settings:
https://lists.phxlinux.org/mailman/listinfo/plug-discuss