this post was submitted on 14 Jan 2025
129 points (99.2% liked)

Linux

49430 readers
444 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

Just wondering since I know a lot of people quietly use a screen-area-select -> tesseract OCR -> clipboard shortcut.

  • I separate subjects of interest into different Firefox windows, in different workspaces -- so I have an extension title them and a startup script parse text to ask the compositor to put them in the correct workspace (lets me restart more conveniently).
  • I have automatically-set different-orientation wallpapers for using my 2-in-1 depending on whether I use it in portrait or landscape (kind of just for looks, but I don't think if anyone else adds a wallpaper change to their screen rotation keybind).
top 50 comments
sorted by: hot top controversial new old
[–] [email protected] 50 points 2 weeks ago (3 children)

I use my DE mostly as it comes, that's got to be unique in this community

[–] [email protected] 6 points 2 weeks ago (1 children)

Some people use plasma because they like how configurable it is. I do like that, but I'm also drawn to it because of its great defaults.

The main ways I change it are setting my background (on my work activity I have it selecting from various company related backgrounds while on my personal activity it uses a selection of my favourites of my own photos) and adjusting the bottom panel.

load more comments (1 replies)
load more comments (2 replies)
[–] [email protected] 39 points 2 weeks ago (2 children)

I have an old gamer keyboard with extra programmable keys on the side, which I use for cut, copy, paste, close tab, close window, etc. Logitech provides drivers/software for Windows & Mac only.

To make it work I have a custom monkey-patched USB driver that I compiled from source, some weird daemon that interacts with the driver and some shell scripts on top of that. I'm not sure how but it works thanks to a 9 year old youtube video made by a guy from eastern europe somewhere.

[–] [email protected] 13 points 2 weeks ago (1 children)

Awesome...

Care to share the video/code? ~~I actually have something similar (Corsair Scimitar's macro customizer doesn't work on Linux~~

As I was writing this I found a project that deals with Corsair MMO mice on Linux so now I will be going on an egg hunt.

[–] [email protected] 14 points 2 weeks ago

video https://www.youtube.com/watch?v=8gAT-BbyOWw

code https://github.com/Leproide/Linux-G15-Daemon-Logitech-G110-

I'm pretty sure it will only work with a handful of old Logitech keyboards.

When I eventually upgrade my OS and can't compile the stack for some reason, I've got a Sun Type-7 waiting in the wings.

load more comments (1 replies)
[–] [email protected] 35 points 2 weeks ago (4 children)

When I press Super + PrtSc, a bash script performs the following:

Takes a screenshot of the entire desktop (import -window root) and saves it as ~/screenshot.png..

Analyzes the screenshot to calculate the "mean brightness" value of the image. It converts the image to grayscale and determines the average pixel brightness (a value between 0 and 1, where 0 is black and 1 is white).

Checks if the image is dark by comparing the mean brightness to a threshold of 0.2. If the mean brightness is less than 0.2 (i.e., the image is very dark), it applies a negative filter to the image (convert -negate), effectively inverting the colors (black becomes white and vice versa).

Sends the image to a printer (lp command) named MF741C-743C for printing.

[–] [email protected] 33 points 2 weeks ago (1 children)

an actual print screen, finally

[–] [email protected] 13 points 2 weeks ago

A kind of ‘super’ print screen, in fact.

load more comments (3 replies)
[–] [email protected] 30 points 2 weeks ago (1 children)

Machined badge reading "Built Not Bought".

My dad used to put them on the cars he built.

[–] atzanteol 18 points 2 weeks ago (1 children)

My dad used to put them on the cars he built.

That's pretty rad.

[–] [email protected] 12 points 2 weeks ago

He was a rad guy.

[–] [email protected] 18 points 2 weeks ago (3 children)

I suspect my habit of having an alias userctl="systemctl --user" is slightly unusual, as is running Firefox, Steam, and some other graphical programs as systemd units is somewhat unusual (e.g. mod4-enter runs systemd-run --user alacritty)

But what I'm actually pretty sure is unique is my keyboard layout. I taught myself dvorak a summer some decades ago, but the norwegian dvorak layout has some annoyances, so I've made some tweaks. Used to be a Xmodmap file, but with the switch to wayland I turned it into a file in /usr/share/X11/xkb/symbols/.

Part of what I did to teach myself dvorak and touch-typing at the same time was randomize the placement of the keycaps too. It has a side effect of being a kind of security by obscurity layer: I type quickly and confidently, but others who want to use my machines have an "uhh …" reaction.

[–] [email protected] 5 points 2 weeks ago* (last edited 2 weeks ago)

I have been using the same userctl alias.

load more comments (2 replies)
[–] [email protected] 15 points 2 weeks ago (4 children)
[–] [email protected] 11 points 2 weeks ago

That's sick man! Get some help!

load more comments (3 replies)
[–] [email protected] 14 points 2 weeks ago

I'm one of at most a handful people in the world with a full disk encrypted Steam Deck and unlocking using the touchscreen.

Until someone implements https://github.com/ublue-os/bazzite/issues/464 in Bazzite.

[–] [email protected] 13 points 2 weeks ago (3 children)

I am indecisive when it comes to wallpapers so I have a script somewhere which accepts tag-words as arguments and then scrapes wallhaven.cc for those words at the resolution of my setup and picks one that contains those words at random before downloading it to my wallpapers folder and setting it as my wallpaper image.

So for example, you could just know you want something blue so you would run wallpaper blue and it just grabs one and sets it. You could get a wallpaper of the sky, of a blue car, of the ocean, whatever happens to be a wallpaper that met the criteria of the word/s supplied.

[–] [email protected] 14 points 2 weeks ago* (last edited 2 weeks ago) (1 children)

Risky business considering there's always some horny anime crap mixed in on Wallhaven.
Filters and tags only help so much since lots of it either has poor tags or no tags at all.

[–] [email protected] 12 points 2 weeks ago (1 children)

There is a toggle for SFW/Sketchy which in my experience has worked pretty well in avoiding such things, but you are probably right it does not catch everything.

If such a thing happened, I would just re-run the same command to update to a different one though. I guess I generally just make sure no one is in the room when it runs haha.

load more comments (1 replies)
load more comments (2 replies)
[–] [email protected] 13 points 2 weeks ago

I use compose key sequences to save time writing out long email addresses. For example, I have something like this in my ~/.XCompose:

<Multi_key> <b> <o> <s> <at>: "[email protected]" # Email of my very angry boss

So I can just type Compose (right alt on my system), bos@ and get his email address. Less error prone than typing out emails manually.

I'm probably not the only one to use compose strings as a replacement to a text expander, but I don't know anyone else who does this.

[–] [email protected] 13 points 2 weeks ago (1 children)

I have scripts set up to switch between my desk setup and my home theater setup that swap monitor configurations with wlrandr and default audio devices in wireplumber. These scripts are triggered with the "Netflix" button on my Nvidia Shield remote via Home Assistant and SSH. Simultaneously on Home Assistant power to the peripherals on my desk is toggled, the TV input is toggled between the Nvidia Shield and the PC, my AV receiver settings are toggled, and if the PC was asleep, it's turned on with a WoL magic packet.

load more comments (1 replies)
[–] atzanteol 12 points 2 weeks ago* (last edited 2 weeks ago) (8 children)

I've got a RPI running a full-screen 'kiosk' view from homeassitant that turns an external display on/off based on a motion sensor.

So basically it's showing current temperatures, thermostat control, etc. but I have the display turn off after X minutes of no movement and turn on when there has been movement so it's only on when you're in the room.

[–] [email protected] 6 points 2 weeks ago* (last edited 2 weeks ago)

I have a similar display in my kitchen. It's in portrait mode and has time (my timezone and others), weather (hourly and daily), and dynamic popups for weather alerts in the top 1/3. It has a spot for dynamic content below that that shows things like time remaining for my espresso machine to heat up and the temperature of my ember mug if I'm using it. The bottom half of the screen flips every 15 seconds between calenders for my partner and I, and local scheduled transit times and live train times with a map of current train positions.

load more comments (7 replies)
[–] [email protected] 12 points 2 weeks ago (1 children)

I made a user for my partner

[–] [email protected] 12 points 2 weeks ago (1 children)

I also have a user for your partner

load more comments (1 replies)
[–] ThanksForAllTheFish 11 points 2 weeks ago

CTRL+SHIFT+L to sync my room lights to the screen using huenicorn. Plan on hooking up openrgb as well when I can be bothered to write a script.

[–] [email protected] 11 points 2 weeks ago (2 children)

I boot on a custom EFI app to control my dualboot (instead of systemd-boot or grub) that asks a service on my proxmox server which OS I'm supposed to boot.

Overkill, but it allows me to control my dual-boot without a keyboard in my computer (because it's a Bluetooth keyboard so I can't really use it in grub anyway)

load more comments (2 replies)
[–] [email protected] 11 points 2 weeks ago

I have a meshtastic script that runs once a day that sends a weather report for our local area at 6:00 am. It was based off a script that some awesome person did. I also have a script that once a week sends out ham/meshtastic events to all local people. Its worked out pretty well.

[–] [email protected] 10 points 2 weeks ago* (last edited 2 weeks ago) (4 children)

While I doubt the concept is unique, the script is: a keyboard shortcut will check the clipboard for a YouTube link and then show launcher options for mpv or yt-dlp, including launch arguments for lower quality format and audio only. It launches that in a terminal for easier handling when yt-dlp doesn't work properly (much more common if using proxies, but also if a video is age-restricted or deleted).

So when I see a yt link here, I can just copy it, keyboard shortcut and then it's playing in my local video player.

edit: here's the script. It assumes xsel (clipboard access), rofi (menu creator), gnome-terminal (terminal) and notify-send (system notification on failure) are installed and working, you'll need to replace any which don't match your system. My DE just runs it in bash when the shortcut is entered.

Code (click to expand)

#!/bin/bash

ARR=()
ARR+=("mpv full")
ARR+=("mpv medium")
ARR+=("yt-dlp")

NORMAL_URL=`xsel -ob | sed -r "s/.*(v=|\/)([a-zA-Z0-9_-]{11}).*/https:\/\/youtube.com\/watch?v=\2/"`

CHOICE=$(printf '%s\n' "${ARR[@]}" | rofi -dmenu -p "mpv + yt-dlp from clipboard")
DOWNLOAD="false"
MPV="false"
OPTIONS=""

if [ "$CHOICE" = "mpv full" ]; then
	MPV="true"
fi

if [ "$CHOICE" = "mpv medium" ]; then
	MPV="true"
	OPTIONS+="'--ytdl-format=bv*[height<721]+ba' "
fi

if [ "$CHOICE" = "yt-dlp" ]; then
	DOWNLOAD="true"
fi

if [ $MPV == "true" ]; then
	COMMAND="mpv $OPTIONS $NORMAL_URL"
	gnome-terminal --title "$NORMAL_URL" -- bash -c "echo $COMMAND;$COMMAND;if [ \$? -ne 0 ]; then notify-send 'yt-dlp failed' $NORMAL_URL; bash; fi;"
elif [ $DOWNLOAD == "true" ]; then
	COMMAND="yt-dlp $OPTIONS $NORMAL_URL"
        gnome-terminal --title "$NORMAL_URL" -- bash -c "echo $COMMAND;$COMMAND;if [ \$? -ne 0 ]; then notify-send 'yt-dlp failed' $NORMAL_URL; bash; fi;"
fi

load more comments (4 replies)
[–] Eyedust 9 points 2 weeks ago* (last edited 2 weeks ago)

Maybe a bit plain since I'm only at mediocre level in my Linux journey, but I use my favorite fonts for Kitty. Recursive Mono Linear and then for italics and comments in neovim I use Recursive Mono Casual Italic.

Recursive Linear is so tidy and neat, with just the lightest touch of personality. And Casual keeps that style but tweaks it just ever so slightly to a more comic. And they have sans versions of both as well for everything else.

I also made my own Starship prompt to match my desktop. It runs an easily reconfigurable color palette and uses color coded chevrons to denote different git statuses.

[–] [email protected] 9 points 2 weeks ago

On my desktop, I wrote a Python script that pulls a random Star Trek: The Next Generation or Deep Space Nine script from a folder and prints it in STDOUT. I use this in the XScreenSaver Text Manipulation > Program option to turn Star Trek into a screen saver.

Currently, I use it with the Apple II screensaver, but in its original incarnation, I used the Star Wars intro screensaver. 😈

[–] [email protected] 9 points 2 weeks ago (1 children)

Small thing, but I really like it: I have ~/autoclean_tmp directory on most of the hosts I use as a desktop. Then on crontab I have a find-command which automatically deletes files which are 7 days or older. I can throw stuff I download from the internet and copy from other hosts, random text files when setting up new stuff and so on in there and they just vanish after a while.

load more comments (1 replies)
[–] [email protected] 8 points 2 weeks ago (2 children)

my awesome wm config has a lot of customization. We're talking 5+ years of basically re-writing an entire theme, along with behaviours, widgets, and bindings.

load more comments (2 replies)
[–] [email protected] 8 points 2 weeks ago

My keyboard automatically change the keys depending of the app I'm using: closing a tab in the terminal or closing a tab inlthe browser are always the same key.

https://git.chimrod.com/smartcropad.git/about/

[–] [email protected] 7 points 2 weeks ago

Does stuff I wrote myself count?

Apache server that has a bunch of webpages that are all configured by simple JSON files and loaded by PHP. The pages have buttons on them which when pressed enter macros. So I push "Deploy Landing Gear" and Shift+alt+F8 or some obscure as fuck combination no one would ever use normally gets pressed and the game can be set to use that keybind. Most of it is for simple immediate key presses but also made a few for macros as well.

The HTML/PHP that runs the show is a grand total of 2018 bytes, including comments. Plus a fairly bloated 2444 byte CSS file that includes some button colour options that I never use now because I decided they look ugly. Should update some of the background images though, my sheet steel Faulcon DeLacy logo looks a bit basic.

[–] [email protected] 7 points 2 weeks ago (1 children)

My applications menu icon (or the “start” menu for the philistines) is a 🐢.

load more comments (1 replies)
[–] [email protected] 7 points 2 weeks ago (2 children)

I have Syncthing set up to copy save data between my pc and steam deck, but not just for emulator stuff: its got my entire modded minecraft directory and my balatro modloader nn there too.

[–] Eyedust 5 points 2 weeks ago (2 children)

Syncthing is great and incredibly easy to use. I have mine set to sync my Obsidian notes so I don't have to pay for the official service.

I have tried multiple different open source note apps that offer free local sync, but I can't find anything I like. It frustrates me because I love open source.

load more comments (2 replies)
load more comments (1 replies)
[–] captain_aggravated 7 points 2 weeks ago (3 children)

I'm pretty sure no one else has my shell script that takes a picture, uses imagemagick to copy a scaled down version of it to a special folder, and then build a string that allows me to just middle click paste the image into Rednotebook so it appears correctly.

load more comments (3 replies)
[–] [email protected] 7 points 2 weeks ago* (last edited 2 weeks ago) (2 children)

Definitely not nobody but statistically VERY FEW people will have this combination:

  • pop!os (fight me!)
  • script that limits accumulator charge to 80% on asus laptop
  • script that turns on vpn if out of home and kicks off a backup if at home (through wifi ssid)

Edit: nice try to fingerprint me, big tech. You succeeded! /j

load more comments (2 replies)
[–] [email protected] 7 points 2 weeks ago

the ability to use two Bluetooth dongles simultaneously, each for one device. try that on Microsoft's clown os and see how pressing the gamepad triggers makes the bluetooth headphones chop up the sound 😂

[–] [email protected] 6 points 2 weeks ago

Custom cowsay written in Rust that pulls German song lyrics from my favorite band from a text file?

[–] [email protected] 6 points 2 weeks ago

In all my servers I still have a cron->make routine running. It's a hold-over from 20 years ago and the state of IaC back then, and it's made its way onto every server I manage because it is simple and effective.

And it still does its job. 8 major RHEL releases later, and the thing it needs to do, it does.

Lennart would build 3 new daemons and link them all into dbus, I'm sure.

[–] [email protected] 6 points 2 weeks ago

I've got basically the bspwm workflow, but on KDE.

So, bspwm has tiling of windows and doesn't want you to minimize (nowadays, it actually has a minimize-feature, but back when I last used it, it didn't). As a result, if a window is open, it is visible on some workspace. If you want to hide windows, put them on a different workspace.
I like that workflow, because while it probably seems complex when you first hear about it, it actually simplifies things. When you're looking for a window, you don't have to check all the workspaces and minimized windows and behind other windows.

KDE adds to that, in that I can have a workspace overview in my panel, so where I can see all workspaces with the windows that are visible on them (which with this workflow is all windows on that workspace). I like to call it my minimap.
It makes the workflow a lot easier to use, but it also allows me to group workspaces by location. So, if I'm working on a topic, I often have a Firefox window on one workspace, my text editor on the workspace below and then a terminal on the workspace below that. If I then realize, I need to quickly look up something for a related topic, I'll open up a new Firefox window two workspaces below that (leaving an empty workspace as separator). If I do something completely different, I might leave a whole bunch of empty workspaces in between. Or, well, KDE actually allows grouping workspaces with a feature called "Activities", so I'll often switch Activities.

I find that works a lot better for multi-tasking than the traditional Windows workflow of one window per application, with all kinds of different topics mixed into all kinds of ungrouped windows. If I switch between topics, I just go to the right location on my minimap and I've all the topic-related information in the windows that are there.

[–] [email protected] 6 points 2 weeks ago

I have stickers on it, some of them hand drawn by my daughters.

[–] [email protected] 5 points 2 weeks ago

I created my own openSUSE splash screen for KDE because I felt all the existing ones were a bit amateur and I wanted something professional looking. I haven’t published it because I can’t be bothered creating an account. It only took about 15 minutes because I chopped up another one which had clearly chopped up another one.

load more comments
view more: next ›