I use a Linux distro with kde, so I have a lot of customization available. I like trying other distros in VMs, but stuff like windows (no need to copy really kde is similar by default) and Mac is a pain in the ass to use that way. so, I want to know what your os does that you think I should copy using kde’s customization. I’m looking for Mac in particular (bc I haven’t used it before) but any OS or desktop environment is fair game.
- super+u shows a wofi menu allowing me to fuzzy find a credential from my password manager and copy its username
- super+p same thing but for passwords
- super+o same thing but for TOTP codes
- super+t allows me to select an area of the screen, take a screenshot, run it through OCR, translate it to English via the deepl API, and then pop up the result as a desktop notification and also copy it to the clipboard. (I’m not fluent in the language of the country I live in)
- ”lock” and „request” based suspend management, so my backup scripts or other long running jobs can keep the computer from sleeping until they are done.
what software do you use for super+t?
Grim, slurp, tesseract, and apparently the deepl SDK for Ruby? That was an interesting choice, younger me.
#! /bin/zsh # Select an area of the screen, Screenhot, OCR, and translate it to english. temp_image=$(mktemp --suffix '.png') grim -g "$(slurp)" "$temp_image" # DPI of 120 seems to work OK for screenshots. source_text=$(tesseract "$temp_image" - --dpi 120 -l pol+deu) translated_text=$(~/scripts/translate "$source_text") wl-copy $translated_text notify-send 'Translation: ' "$translated_text" --expire-time=60000 --category 'translation' rm $temp_image
Translate script:
#! /bin/ruby require_relative 'deepl_request' puts Translator::DeeplRequest .new(ARGV.join ' ') .translation
This script is a bit hacky and one-off, I wouln’t just copy-paste it.
Thx I’ll use this
♬ One of these things is not like the others… ♬
Fullscreen or maximized windows always are -1 px on the right of the screen.
My cursor rests on the right of the screen so that a swipe changes workspaces and a right click opens a dropdown-launcher to navigate to apps not used frequently.
Build-in in XFCE.
I used to quite like the Unity desktop for all its quirks and how the panel would merge with maximised title bars. I do that with KDE Plasma, a global menu, active window controls, and a bunch of command output widgets for CPU usage and things like that. libadwaita-without-adwaita and gtk3-classic help to theme the stuff Gnome tries to force the look and feel of to be consistent with everything else. Another tweak that I have grown accustomed to is editing the Firefox userchrome.css. It means I can even make that fit in with every other application too. Search Github and you will find loads.
I never really looked into Linux or any alternate OSs before now. This thread is super interesting and a very fun read.
if you ever feel like trying it, Linux is easy to try in a virtual machine or on real hardware (do not install it to your main machine when you first try it except in a vm, which does not change your system). I’d recommend trying fedora workstation and fedora kde because they are decent examples of the best two desktop environments. mint exists as well, but I personally wouldn’t recommend it. btw, there is no “best” distro, just find one that works for you and ignore the tribalism.
where do you get your VMs?
download a virtual machine app (I’d recommend virtual box, boxes is great too but iirc its Linux only), download the .iso file (this is the installer) for the distro you want to try from the official website, in your app of choice create a virtual machine and select the file you downloaded. from there you just follow the installer. it may help to look up how to use the app you chose bc VMs can be a little iffy. if you’ve ever used an emulator, it’s a similar process but with ISOs instead of roms.
If you are interested in a specific distro, they usually have a website with a direct download or torrent option. Then you can build a virtual machine with that distro
Thanks dude, I do have a virtual machine so I will look into this!
Mint runs great out of the box and will give you a good idea of what Linux can be without feeling too alien. Linux has come a long way since the mid-2000s when I first fooled with it lol.
On Linux Mint I can resize windows by hitting super+z, close windows with super+c, and move them around with super+left drag. There are others too, but I use these constantly. I was worried when I switched from Windows that I’d lose my shortcuts, but it turned out that there even more options on Mint.
It is gnome, but https://aylur.github.io/astal/showcases/ is pretty awesome if you’ve done any React development. Pretty much coded up my own desktop environment with typescript and tsx for layout stuff. Lot’s of fun widgets.
Note that I use nixos so pretty much everything is hand picked instead of a prebuilt ready to go environment. Hyprland for the basic desktop, Astal for my desktop shell with widgets, toolbars, etc.
What’s performance like using a desktop with a translation layer like that? Does it feel as responsive as a native desktop?
Pretty snappy. All the gnome APIs are written in C. It doesn’t run on node, it runs on gnome-javascript (gjs) which exposes all the C APIs through JavaScript. If you use the Astal wrappers its pretty painless but using the gnome APIs directly in gjs is a little weird since you have to consider things like memory management.
Caps Lock remapped to compose. Much more useful, especially for those of us who sometimes need to type “other” letters, but prefer US dvorak keyboard layout.
Yes, love the compose key. My native language (Dutch) uses accents occasionally, but typing on a regular Dutch layout with dead keys is awful, especially as a software dev who uses loose quotes a lot.
It’s also great for symbols. No more ddg’ing “euro symbol” and copying from Wikipedia, just type compose, e, =.
Does dutch have ß as well?
Also, noggie keyboard is alright for normal typing, but once you get into more geeky computery, some characters are awfully placed. ’ " / { > just to name a few. That’s why I started using US layout to begin with, and I later migrated to YS Dvorak because I’m that guy (PS: You should totally switch to Dvorak, bro)
No thankfully Dutch doesn’t have any additional letters, just accents.
I have been wanting to try different keyboard layouts for a while. The issue is that my employer probably wouldn’t be super happy with like 50% output for some days or weeks.
I was thinking that too for a while, but upon switching to dvorak my typing speed picked up surprisingly quickly.
On that note, I never bought into the meme about it being possible to type faster with dvorak. It might be true in theory, but in practice the bottleneck is fingers and old habits. I type around the same speed with dvorak as I did with qwerty. The main advantage to dvorak is that it’s much more comfortable.
I had a realization around 2012 that I would most likely be using a keyboard for a living for the rest of my life, so that’s why I started experimenting with alternatives to qwerty.
While I agree with the general premise that Caps Lock is in a terrible place on standard US English keyboards – that’s prime real estate and people just don’t use it that much – I swap Caps Lock and Control and have Menu remapped to Compose. If you’re typing in English, you’re gonna use Control a lot more than Compose. If you use emacs, that’s doubly true. And that’s about where Compose has been on some keyboards.
what’s the compose key? never heard of it but any excuse to not waste a key on caps lock sounds great.
Allows you to do umlauts, accents on letters etc.
E.g., öšéå
to make é (as in pokémon) I do alt + 0233
That’s a Windows system, requires a numeric keypad, has been around for a long time. I don’t know what its coverage is, though, whether it can do any Unicode character.
kagis
Sounds like not, that Microsoft has its own mapping:
https://www.alt-codes.net/how_to_use_alt_codes/
The special characters and symbols can be typed by their Alt Code values on computers which are running Microsoft Windows operating systems. They cannot be typed by their Unicode values.
Problem with the numeric entry systems is that they’re kind of a pain to remember. They work all right if you have a small number of symbols that you need to use frequently and can memorize them. But they’re less-handy if you’ve got a wider variety.
GTK-based apps (like, a bunch of Linux GUI apps) will let you do numeric entry of Unicode codepoints if you hit Control-Shift-U and then enter a Unicode codepoint.
Honestly, I’m kind of surprised that the open-source Android onscreen keyboards that I’ve seen don’t support user-configurable popup menus on keys with arbitary characters and text snippets, as it seems like an obvious thing to want to configure.
https://en.wikipedia.org/wiki/Compose_key
Works in X11 and Wayland.
Not as powerful as Emacs’s input methods, but it covers a lot of common cases.
Basically, hitting compose causes the next two keystrokes to “combine”. For example, / + o = ø, as well as the other letters that are useful to us with extra letters in the alphabet. In addition to that it provides a myriad of other characters such as copyright, trademark, just to name a few.
I don’t really need the compose key, but rebinding caps does sound tempting. But what to bind it to… Hmm
On Macs, I remap it to the Command (super) key. On Linux, I remap it to Ctrl.
It makes copying, pasting, etc. way more ergonomic and doesn’t strain your pinky 😌
I bound it to normal shift, because I fat-finger caps instead of shift all the time anyway lol
Haha fair enough
I have it activate a layer when held where all the other keys are remapped.
I also use a 45% keyboard (https://wilba.tech/jd45) and its done in the keyboard’s firmware (https://qmk.fm/), so I need the extra keys.
I have an older model of the JD45 with a full bottom row.
I’ve been meaning to get my hands on a QMK board, but didn’t get around to it yet. Having an extra layer with macros or something sounds super powerful. I wonder whether I’m able to replicate a similar behavior without touching the board’s firmware. But I guess with enough registered keybinds it should work lol
I’m using it as a Super key on my 80s AT keyboard
Hmm.
-
I have a manual screen-lock key combination. I have DPMS (auto power off when idle) on the monitor disabled when it’s unlocked and set to a short period when it’s locked. Powers on when I’m typing to unlock.
-
I haven’t touched KDE for a long time, but last I did, I believe that it was a stacking system. Back when I used a stacking window manager, I had the fourth mouse button set up to act as a “drag window” button. Could click anywhere on the window. I did like that.
-
I have a key combination set up to open a terminal with tmux with a shell, a web browser, and one of those dmenu text-based launcher clones (can’t remember which). Those are the things that I most frequently want access to.
-
I currently hide the status bar unless the Super key is held down. I’m not completely sure that this is the right way to go – it does mean that any important stuff needs to notify the user via the notification manager system. But it does provide a maximum of usable screen space.
-
No animations. They delay the time taken until what I just did is visually complete.
-
I have multiple numbered workspaces. I hit Super-q and then a number to jump to them, Super-c and then a number to move the focused window to one, and Super-1 and Super-2 to cycle forward and backward through them. There weren’t chosen to be mnemonic, but convenient to reach, as they’re operations that I do a fair bit.
-
Background is just a flat color (low-saturation medium blue, so not super-high contrast). I use sway, a tiling compositor, so I rarely see the background, so your mileage may vary. That being said, I started doing that years before I started using tiling. Background images were just more visual noise for me.
-
Killed window decorations (titlebar, close button, etc). This may not be reasonable for a stacking environment. They eat screen space and don’t display anything very useful. I use a tiling environment, so resizing and dragging isn’t necessary. I have a key combination to kill the currently-focused window, so I don’t need a close box. I don’t minimize windows – I do switch workspaces, which has some functional overlap – so I don’t need controls for that.
-
I have my mouse pointer auto-hide systemwide if I’m not moving the mouse or clicking its buttons for a few seconds.
-
I have a keystroke (Super-`) to dismiss notification manager messages from the keyboard. This may be the norm in desktop environments – I haven’t played with them since before notification managers were a thing.
The one thing that I’d kind of like to do that I don’t currently is to have a toroidal workspace model. Someone’s done this for emacs with buffer switching, which is where I saw it and thought “wow, that’s an excellent idea”, but it hasn’t been done for sway workspaces. Basically, normally you have a “ring” of workspaces that you can cycle through. I’d like to have a “ring of rings” (which in 3D, is a torus), since I normally I’m working on one project and have several workspaces (usually 1-4) associated with that project. I’d like to have a “ring” for each project, with different keystrokes to switch projects and switch workspaces within those projects. Sway probably could support that with just scripting, no core modifications, but I haven’t gotten around to it.
-
Uses flatpak
I’m on tuxedo os so it is flatpak and distro package by default.
One more: super + q to change cooling/cpu/gpu schema. Quick way of swapping between “nice and quiet under the couch laptop, streaming to the TV” and “ultra-hurricane GeForce 8000 cataclysm gaming-mode for playing Tetris”, or when I want something in between and/or portable.
Rolling release schedule, and sufficient documentation.
well my distro (tuxedo os) is mostly rolling release except for the Ubuntu base, but I haven’t really looked into it’s documentation. generally if I need documentation the Ubuntu stuff works (obviously because it’s Ubuntu based).
Minimalism.
kde kinda just comes like that, taskbar and important apps (system stuff, browser, etc.) only. I’ve added some stuff but only things I use or anticipate using.
I meant more like not taking up shit tons of hard drive space, memory, or CPU, not having a billion dependencies, starting instantaneously, low cognitive load, etc.
It was kindof a sarcastic dig at KDE. I deserve downvotes.
KDE Frameworks used to be a single package (I think with KDE 4?) that people complained about because it contained unnecessary features for the software they want to use. They split it into different packages because of that, so software could only depend on the part of Frameworks that it actually used. And now people complain that KDE software has “a billion dependencies”. Unbelievable.
in my experience plasma 6 and gnome (idk what the newest one is but I’ve tried the newest in the last couple days on a couple distros) both boot just as quick and use about the same amount of resources.
Yeah, Gnome is far to bulky for my taste as well. I use Sway. It’s one single process. And it’s a Wayland compositor, so I don’t have any separate process for the X server. And Sway is currently using less than 90MB of RAM on my computer. With nothing else running but a minimal terminal emulator, htop, SystemD, and various daemons, my whole system is using less than 480MB of RAM.
And that all makes me happy, of course, but just seeing small numbers isn’t really the point either. Aside from resource usage, I spend less time fixing, fighting with, upgrading, configuring, and otherwise maintaining Sway than I would KDE or Gnome or XFCE, and more time using my computer for the stuff I want to do on it. (As an aside, Sway’s tiling model is absolutely baller. I rarely have to think about where I want my windows, and when I do have to think about that, I don’t have to go to the mouse to position/resize them.)
KDE and Gnome are two different varieties of seven(-hundred?)-layer bean dips of dependencies atop dependencies. I like that my entire graphical system is one process with comparatively few dependencies that I can wrap my head around pretty easily. (And, honestly, Sway is a step up in bulkiness/heaviness/complexity from dwm, which is what I used previously.)
I just switched employers, and had to go from using Sway to using Mac os full-time.
God damn do I miss the simplicity of organising windows with sway.
Mac os’ Window Management is absolutely horrible. Especially the useless cmd+tab bullshit that only shows one instance per app, even if it has multiple windows open. Literally can’t alt+tab through browser windows without installing software for it.
Sorry that kinda turned in to a small Mac rant, I just hate this system so much.
I know the pain. I’ve worked at Windows-only places and places where the options were Windows or Mac but you were strongly encouraged to use Mac. Honestly, when I started at the latter place, I hadn’t touched Windows or Mac in like a decade, so as far as what I was familiar with, Windows and Mac were about the same for my purposes. And since most of the team used Mac, I just went with Mac.
The graphical system was terrible (to the point I even looked into what it would take to replace the default Mac graphical system (was it called “Aqua” or something? Don’t remember.) with something X11 based, but that’s like 100% impossible), but the thing that I hated the most was the touch bar. The Siri “button”(/“icon?”) on the touch bar was like one millimeter away from the backspace key (which is called “delete” in Mac for some reason, even though it acts like backspace). I’m sure I wasted so much time just closing Siri dialog boxes.
All that said, I’m not saying Windows would have been better than the Mac I had to use there. I probably would have been just as frustrated with Windows.
I’m lucky enough now to be working for an employer that lets me use Ubuntu. I disabled all the default desktop environment stuff. I unfortunately can’t get away with Sway because I need to use Zoom and desktop sharing doesn’t work with Sway, but I use i3 which acts virtually identically (and does support desktop sharing).
fair enough
I feel the sentiment though, my daily driver is built off of ubuntu-server headless. I find it’s just the right amount of “has searchable solutions for near everything” and “is properly minimal” to base my workstation off of. I run X11, pulse, awesomewm, firefox, lxterm… fairly standard stuff but without gdm, gnome/kde even installed it’s pretty lightweight. The entire os uses ~780mb of ram (+23gb for firefox tabs lmao). It gets the job done, keeps my skills relevant maintaining the automation that builds it, is dead simple to troubleshoot, and has very few black boxes.
this kind of angst is valuable; I had considered looking into KDE until I read your comment and now I’ll pass on it
I’d still recommend trying kde. on my system it idles at around 3.7 GB of ram without steam and discord running, and 6-7 GB with them. gnome people like to pretend other things don’t run very well but the truth is that their lack of certain features does not make them any faster, the setup of a particular system does.
Funny thing is that KDE actually takes up remarkably little resources. You don’t have to install all the apps that come with it and the memory footprint is surprisingly small.
I use Easy Effects to normalise volume so that I don’t have to adjust the volume so often when watching YouTube videos and stuff. Just google for a preset.
Only downside is you’ll have to make exceptions for real time communication apps like Discord because they crackle. But everything else is perfect without any noticeable lag.
I made a launcher inspired initially by kde’s krunner, tries to do everything with a launcher, keeps the keyboard shortcuts to minimum, but having almost everything within a few keystrokes. Most things are os/de/wm agnostic. Since the write up, I have added a bluetooth device selector, network connections, vpns, and more stuff.
edit: sorry I forgot to add the link - https://sga.codeberg.page/articles/Launcher/Launcher_for_Everything.html#how-does-this-work
Is the code base quality not ready for community reviews yet? ; )
it is not really “code” - it is a fancy shell script stringing a launcher like thing (if you have seen people use dmenu or rofi to launch applications and make menus, it is just that, but repurposed to do more). I just realised i forgot to add link the article (the said write up in the original comment) https://sga.codeberg.page/articles/Launcher/Launcher_for_Everything.html. Since then I have made many changes, and here is the script
Although I was actually considering a rust rewrite, because I am learning it, and 150ms is way to long for me
A scrolling tiling window manager.
When you open one window, it’s full screen, no title bar or window decorations.
When you open another one, they’re tiled side by side.
When you open a third one, it extends the desktop and you can scroll horizontally between your windows with the mouse, touchpad or key combo. This can go as wide as you want (or vertically, if you prefer).Heavily customized sway by the way.