everything wrong with free software
"free as in speech"
=> bullshit-of-the-week.html bullshit-of-the-week
*originally posted:* apr 2021
i use openbsd. im a reasonably proficient command line operator that learned computing without guis, before they were common.
this is how you typically open a program without the command line:
*do a bunch of fiddling and twiddling with whatever fashion fad bullshit theyre foisting on people now*
this is how you typically open a program WITH the command line:
*type the name and hit enter*
there are shortcuts for both. for example, ive used keyboard shortcuts for various programs, at various times using various desktop environments.
in windows i replaced the start menu with a program i made myself. ctrl-i opened the menu, it would display a bunch of mouse-clickable text, so for example to open notepad you clicked the link that said [[*notepad]]
but this was just a way to open notepad.bat, and if you made a link that said [[notepad]] it would open (or create) a plain text file for you to edit. not only could you make other pages of "menu" in the style of a wiki, but you could press a single key to edit the current file in dos editor or notepad (depending which key you pressed).
this let you create a wiki of any sort of text-based information you wanted (phone numbers, website addresses, programming cheat sheets) but it also worked as a start menu replacement. i ported it to gnu/linux, but eventually i set out to create other solutions.
why dont i just make keyboard shortcuts for each program i typically run? there are reasons. first, its generally tedious to maintain various computers with the same shortcuts. its doable, but tedious. it depends what de or wm you use. then the main one i end up using is the one to open the term window, and almost every environment i would use has a key for that already.
i actually liked gnome 2, kde 3.5 and xfce. i would recommend gnome 2 (never 3) to people who wanted the full "windows-like" experience, kde for "power users" and xfce to people who wanted most of what gnome did but was less resource-demanding.
what happened? gnome became bullshit, kde also became bullshit (really) and xfce i sort of stopped caring about. when i was giving away free gnu/linux computers (after installing gnu/linux on free computers people were getting rid of) i used lxde because it was nice enough but undemanding. if someone complained, i could install something else.
i eventually fell in love with icewm, though when microsoft purchased github i became interested in replacements for github-based applications.
it took some getting used to (id used it for a while years before) but i reviewed as many options as i could and settled on dwm. for a week or two youre like :/ and you want to fiddle with windows and margins more, though now most of my screen is used for one application and a bit of the side has all the other applications on it. i use about 3 virtual desktops on average, and dump most open windows to the other two (keeping a small number open where i do most of my computing).
but i basically dont move or size windows anymore, except sometimes to cast them to another screen or flip between the current one and one on the side. if i need to go fullscreen i just move the window to a desktop that doesnt have any, or i cast the few on the desktop i use most to other desktops. its fast to get those back again.
as with icewm, the main thing im looking for in a desktop is NOT needing to know a lot of rules or do a lot of fiddling with settings or management. and i want the window manager to waste as few resources (and as little of the screen) as possible. you can hardly do better than dwm for that. i experimented with autohiding the panel on icewm but i really dont like things like that.
most of the time when i need to open a window, i just open it-- and it gets most of the screen. if i close it, the program that already had most of the screen gets it again. if i need to keep it open but use something else, i can switch-- but stacking window managers like the ones most people use dont really do a better job with this.
once you can open and close windows, you need windows to open and close, right? for a term window its got to be xterm. oh ive used lots of others, fancy ones, light ones, emulated ones, but xterm is the one that opens and closes fast and doesnt slow down when you want to pipe a quarter million lines of output through something. and if you just want to type leafpad &exit its just as good for that. yes, ive tried rxvt and a bunch of others. xterm is also the one i recommend if youre using the term window to simulate graphics.
so yes, much of the time to open a program i will just open xterm and then type the name of the program. depending on what else i want to do i will add "&exit" before i hit enter. ive never liked having tabs in my term window (more trouble than its worth, but to each their own) and you can open and close 20 xterm windows quickly on an old machine. not that youd need to, but it means you dont have to stop and wait.
before github was microsoft, you would find me running icewm and i would typically have a browser open, many instances of leafpad (i dont liked tabbed editors either-- tabbed web browsers, yes) and xterm open-- and that was my workflow.
now its dwm, xterm and my own leafpad replacement. like icewm, leafpad is github (sadly) and my editor works in pypy, without gtk or qt or harfbuzz.
why did i like leafpad? its the xterm of editors: fast to open and close, fast to do everything else, basic features, low resource use, simple interface. one scrollbar, moves text wayyyyyyyyyy faster than a term window does. oh and you can pipe text from the term, to leafpad. it becomes a kind of "graphical less" command at that point. and writing a text-based replacement for less isnt as easy as you might think, but less (alas) is also github. no, i dont have less installed, look what happens when i run which less:
i just ran that from my editor. now look what happens when i run which more:
despite being a gnu program, which itself is github-based, sadly. microsoft gnu, folks! so lets do like we did with less and remove it:
oh, im not running this instance as root. no problem, ill just copy the above command and paste it to an instance on another desktop:
switch desktops, ctrl-v to past and ctrl-t to run the command. and lets see if its there:
nope, we just removed a microsoft program from openbsd, hooray.
so whats gnu which doing on here? i didnt install it, i believe it came with openbsd. i still use it sometimes, but i try to do with as few github-based programs as possible. i mean, theres a limit to whats possible. how much of a limit?
* llvm: github
* cpython: github
* vim: github
* emacs: harfbuzz (github)
* gnome: harfbuzz (github)
* pypy: not github, but uses cpython (github) to build
* basically every libre programming language: uses libffi (github)
* basically anything that uses the gui: needs libpng <- needs zlib1g (github)
* most f-droid apps: github
* most 3rd-party python libs: github
* most lisp libraries: github
* sdl: github
* curl, perl 5 and 6: github
so you can boycott github a lot just by moving from cpython to pypy, but youre still going to have libffi, zlib1g and need perl or cpython to do unit tests or build stuff with automake. (even the gnu project).
and then there are traitors like less and which that have moved to a repo controlled by microsoft (microsoft gnu...) and havent even tried moving away yet.
now if i want most of the functionality of which, i will have to do something like:
c=xterm ; for each in $(echo $PATH | tr ":" "\n") ; do ls $each/$c && break ; done
not every command is so easy to replace. but i composed and ran that directly in my editor.
on a machine that i use a lot, its worth the trouble to rename xterm and use my editor in place of it. then when i want to write a new text file, or run a command, i just use alt + shift + enter to open a new editor from dwm.
the editor looks a lot like leafpad, and you can still pipe text to it (graphical less) but it also has some other commands:
seek look for this text
pastes all lines from the buffer that contain "look for this text", after the cursor
seek look for this text|or this text|or this
does the same, except for any of those queries
unseek look for this text
pastes all lines from the buffer EXCEPT THOSE that contain "look for this text", after the cursor
unseek look for this text|or this text|or this
does the same, except for any of those queries
lets you count the lines in the buffer or selection
replace this|with this
lets you replace text in the buffer or selection (including \n)
i still use xterm for things that are better in a fully interactive shell, but for most commands my editor is suitable.
and what about history?
seek any part of the line
will show any lines of text with "any part of the line" in them. then just go to the line you want and ctrl-t.
import part of another file?
cat filename | grep (etc)
locate a file?
find . (etc)
open another buffer?
alt + shift + enter
ctrl + q
ctrl + s
open another program?
programname (or path) & ctrl-t
open on this desktop right now:
* music playing
* this editor
* web browser
now i hit ctrl-s to save the article, copy a recent article from ewwfs to a new article, paste this text in and save it, and go back to working on other open tasks on other desktops.