What's a unique customization on your Linux machine you think no one else has?

2 years ago by fool to c/linux

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).
ryannathans 49 points 2 years ago

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

path: 0 14474902, hotness: undefined, score: 49, children: 4
lengau 5 points 2 years ago

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.

path: 0 14474902 14485984, hotness: undefined, score: 5, children: 1
twinnie 4 points 2 years ago

Funny you should say that, I always felt like the defaults are really bad.

path: 0 14474902 14485984 14486950, hotness: undefined, score: 4, children: 0
SeekPie 4 points 2 years ago

Probably, I have about 20 extensions for GNOME and have tweaked right about every setting and keybind.

path: 0 14474902 14481955, hotness: undefined, score: 4, children: 1
ryannathans 4 points 2 years ago

I just like the extension that lets me swap audio devices without delving into settings

path: 0 14474902 14481955 14482493, hotness: undefined, score: 4, children: 0
rimu 40 points 2 years ago

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.

path: 0 14472492, hotness: undefined, score: 40, children: 3
fool 14 points 2 years ago

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.

path: 0 14472492 14472624, hotness: undefined, score: 14, children: 1
rimu 15 points 2 years ago path: 0 14472492 14472624 14472727, hotness: undefined, score: 15, children: 0
tankplanker 3 points 2 years ago

I do something similar.

I have a V4N4G0N that I use the top row (half the normal number row on a full sized board) for switching workspace or switching apps to another workspace, and doing other stuff like copy and paste on different layers for the keyboard.

As its QMK (via VIAL) I have set all that up directly on the keyboard so its portable to any other PC I want to use. I have eight of these, mix of alu, acrylic and 3D printed, that I can choose from, all sharing the same map. I don't like using anything else now as its become integral to my normal workflow.

path: 0 14472492 14481802, hotness: undefined, score: 3, children: 0
tonyn 36 points 2 years ago

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.

path: 0 14478518, hotness: undefined, score: 36, children: 5
eager_eagle 34 points 2 years ago

an actual print screen, finally

path: 0 14478518 14480379, hotness: undefined, score: 34, children: 1
dave 14 points 2 years ago

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

path: 0 14478518 14480379 14481878, hotness: undefined, score: 14, children: 0
superkret 2 points 2 years ago

why?

path: 0 14478518 14508692, hotness: undefined, score: 2, children: 2
tonyn 7 points 2 years ago

Honestly I print out anything my little kiddo does at school on his Chromebook, and some stuff has black backgrounds. I got tired of wasting toner so I made a script that would print a negative screenshot if it's a dark image. One keystroke and I get what I want

path: 0 14478518 14508692 14509769, hotness: undefined, score: 7, children: 1
superkret 5 points 2 years ago

That's a really neat use case!
And a very clever implementation.

path: 0 14478518 14508692 14509769 14509853, hotness: undefined, score: 5, children: 0
jordanlund 31 points 2 years ago

Machined badge reading "Built Not Bought".

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

path: 0 14471462, hotness: undefined, score: 31, children: 2
atzanteol 19 points 2 years ago

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

That's pretty rad.

path: 0 14471462 14474549, hotness: undefined, score: 19, children: 1
jordanlund 13 points 2 years ago

He was a rad guy.

path: 0 14471462 14474549 14476748, hotness: undefined, score: 13, children: 0
syklemil 18 points 2 years ago

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.

path: 0 14482243, hotness: undefined, score: 18, children: 3
farmer_bobathan 5 points 2 years ago

I have been using the same userctl alias.

path: 0 14482243 14499327, hotness: undefined, score: 5, children: 0
nawordar 2 points 2 years ago

I didn't know about the systemd-run command. Do you use it to save the command log? I created a script conveniently named x which opens a file in a default app, in the background, so I can still use the terminal. But then I had the problem with handling logs and this sounds like a perfect solution. Gonna try it today.

As for the alias, I wanted to create a pacman-like interface for systemctl, so the commands would be much shorter, but never finished it. For example, sctl -Eun unit would be equal to sysyemctl enable --user --now unit

path: 0 14482243 14499947, hotness: undefined, score: 2, children: 1
syklemil 4 points 2 years ago

The logs are handled, but I mostly use it for command separation and control, including killing unruly child processes.

path: 0 14482243 14499947 14500348, hotness: undefined, score: 4, children: 0
superkret 15 points 2 years ago

I use KDE's defaults.

path: 0 14507178, hotness: undefined, score: 15, children: 4
phoenixz 12 points 2 years ago

That's sick man! Get some help!

path: 0 14507178 14507676, hotness: undefined, score: 12, children: 0
A7thStone 2 points 2 years ago

I use Gnome defaults.

path: 0 14507178 14521821, hotness: undefined, score: 2, children: 2
superkret 2 points 2 years ago

With Gnome you have no other choice.

path: 0 14507178 14521821 14521897, hotness: undefined, score: 2, children: 1
Zeoic 1 point 2 years ago

Gnome is very much built around customization lol

path: 0 14507178 14521821 14521897 14525350, hotness: undefined, score: 1, children: 0
bjoern_tantau 15 points 2 years ago path: 0 14481961, hotness: undefined, score: 15, children: 0
thejevans 14 points 2 years ago
path: 0 14471543, hotness: undefined, score: 14, children: 1
k4j8 4 points 2 years ago

That's awesome! I do something similar using Home Assistant. I scan an NFC tag to set my TV to the right input, adjust the volume, change the receiver settings, run Sunshine on my computer for screen sharing, switch computer displays to just one, and start Steam. I wish I could get WoL to work too.

path: 0 14471543 14471767, hotness: undefined, score: 4, children: 0
golden_zealot 14 points 2 years ago

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.

path: 0 14474114, hotness: undefined, score: 14, children: 5
LiveLM 14 points 2 years ago

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.

path: 0 14474114 14474405, hotness: undefined, score: 14, children: 2
golden_zealot 12 points 2 years ago

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.

path: 0 14474114 14474405 14474505, hotness: undefined, score: 12, children: 1
SeekPie 5 points 2 years ago

Whenever you get 3 in a row, you know what you have to do.

The gods have given you a sign.

path: 0 14474114 14474405 14474505 14481976, hotness: undefined, score: 5, children: 0
dasenboy 2 points 2 years ago

KDE actually has a plugin that does just that, I use it currently to rotate a fantasy illustration as my wallpaper every hour from that site.

path: 0 14474114 14504823, hotness: undefined, score: 2, children: 1
golden_zealot 1 point 2 years ago

Oh neat!

My script is for gnome, but I wonder if there us an equivalent gnome extension in existence as well.

path: 0 14474114 14504823 14507842, hotness: undefined, score: 1, children: 0
circuit23 13 points 2 years ago

I made a user for my partner

path: 0 14506510, hotness: undefined, score: 13, children: 2
fool 13 points 2 years ago

I also have a user for your partner

path: 0 14506510 14507116, hotness: undefined, score: 13, children: 1
Flax_vert 2 points 2 years ago

Haha!

Take my poor man's gold

🏅

path: 0 14506510 14507116 14507401, hotness: undefined, score: 2, children: 0
vort3 12 points 2 years 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>: "myangryboss@company.com" # 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.

path: 0 14485260, hotness: undefined, score: 12, children: 6
lord_ryvan 0 points 2 years ago

Why not use an address book?

path: 0 14485260 14936127, hotness: undefined, score: 0, children: 5
vort3 1 point 2 years ago

Because email clients are not the only place where I enter emails. And not every program supports address book integration.

I might be filling out online forms and enter someone's email or phone number or any other long string such as full name I can't remember how to properly spell.

path: 0 14485260 14936127 14936482, hotness: undefined, score: 1, children: 4
lord_ryvan 0 points 2 years ago

At least Google and Outlook accounts support sharing the address book through the account, so it doesn't matter where you use it from.

Seems like privacy respecting alternatives could do that, too.

path: 0 14485260 14936127 14936482 14937073, hotness: undefined, score: 0, children: 3
vort3 1 point 2 years ago

Is there Google and/or Outlook integration into a terminal (Konsole) I'm not aware of?

path: 0 14485260 14936127 14936482 14937073 14937324, hotness: undefined, score: 1, children: 2
faercol 12 points 2 years ago

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)

path: 0 14481854, hotness: undefined, score: 12, children: 2
fool 1 point 2 years ago

A custom EFI app? Is that like a handrolled Unified Kernel Image with some Proxmox-specific addons in it? How'd you make it?

path: 0 14481854 14481896, hotness: undefined, score: 1, children: 1
faercol 6 points 2 years ago

No, it's a EFI app I developed in Rust that does a query over multicast UDP and uses the result to select which EFI app (Windows bootloaded (yeah I know...) Or systemd-boot to start Arch)

There's nothing related to proxmox itself, it's just there that I host my LXC with the service that responds to the quey.

path: 0 14481854 14481896 14482439, hotness: undefined, score: 6, children: 0
atzanteol 12 points 2 years ago

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.

path: 0 14473841, hotness: undefined, score: 12, children: 8
thejevans 6 points 2 years ago
path: 0 14473841 14476498, hotness: undefined, score: 6, children: 0
tetris11 3 points 2 years ago

esphome or custom?

path: 0 14473841 14474976, hotness: undefined, score: 3, children: 3
atzanteol 4 points 2 years ago

Much simpler than that - The motion sensors are zigbee and integrated with HomeAssistant. I have a HA automation that sends a REST call to a webservice I wrote on the PI that then just needs to write 1 or 0 to /sys/class/backlight/rpi_backlight/bl_power.

path: 0 14473841 14474976 14475204, hotness: undefined, score: 4, children: 2
tetris11 2 points 2 years ago

Do you know what the chip of the PIR is? How many false positives do you get?

path: 0 14473841 14474976 14475204 14475313, hotness: undefined, score: 2, children: 1
atzanteol 4 points 2 years ago

It's one of these. I don't know the chip but I haven't had any issues with false positives. If anything they're slightly under sensitive, but not enough to be a deal breaker for my purposes.

path: 0 14473841 14474976 14475204 14475313 14475465, hotness: undefined, score: 4, children: 0
treadful 2 points 2 years ago

I have similar, but I turn my display on/off with HDMI-CEC based on time.

path: 0 14473841 14475416, hotness: undefined, score: 2, children: 0
irotsoma 1 point 2 years ago

I'd love to see your implementation specs, code, pr any other technical details you'd like to share. I'm setting up home assistant and one of the things I want it to do is replace the functions of my thermostat and add some additional details.

I used to have a Nest Thermostat, but my furnace needed to be replaced a couple of months back and I got a Mitsubishi heat pump, but their thermostat sucks, and it isnt compatible with Nest because it's all wireless. I installed the WiFi add-on to the furnace so I can use the app, too, but it also sucks pretty bad. Plus I miss the functionality of it turning down the heat when I'm away to save money and turning it back on before I get home.

So I'm planning to implement my own solution and documenting and open sourcing everything. But it's going to be several months before I get to doing it due to other more urgent projects. So, I'm looking at everything available. I definitely will be setting up a small display to replace the thermostat and having motion detectors to turn on the display when you approach it to see the temperature and such and to supplement the home/away detection.

Anyway, I would love to see your implementation to see how you did this piece of it.

path: 0 14473841 14565018, hotness: undefined, score: 1, children: 1
atzanteol 2 points 2 years ago

It's really quite simple - but works pretty well. There are 3 components:

Kiosk service

A simple systemd service that starts a kiosk script.

[Unit]
Description=Kiosk
Wants=graphical.target
After=graphical.target

[Service]
Environment=DISPLAY=:0.0
Environment=XAUTHORITY=/home/pi/.Xauthority
Type=simple
ExecStart=/bin/bash /home/pi/kiosk.sh
Restart=on-abort
User=pi
Group=pi

[Install]
WantedBy=graphical.target

Kiosk script

The script in /home/pi/kiosk.sh just starts a web browser in full-screen mode pointed at my home assistant instance:

#!/bin/bash

xset s noblank
xset s off
xset -dpms

export DISPLAY=:0.0 

echo 0 > /sys/class/backlight/rpi_backlight/bl_power

LANDING_PAGE="https://homeassistant.example.com"

unclutter -idle 0.5 -root &

/usr/bin/chromium-browser --noerrdialogs --disable-infobars --kiosk $LANDING_PAGE

Display service

I have a very simple python/flask service that runs and exposes an endpoint that lets you turn on/off the display. It's called by a homeassistant automation for when the motion detector senses or hasn't sensed movement.

Here's the python - I have this started from another "kiosk.service" systemd service as well.

#!/usr/bin/env python3
import subprocess

from flask import Flask
from flask_restful import Api, Resource

def turn_off_display():
    with(open(backlight_dev, 'w')) as dev:
        dev.write("1")


def turn_on_display():
    with(open(backlight_dev, 'w')) as dev:
        dev.write("0")


class DisplayController(Resource):
    def get(self, state):
        if state == 'off':
            turn_off_display()
        elif state == 'on':
            turn_on_display()
        else:
            return {'message': f'Unknown state {state} - should be off/on'}, 500
        return {"message": "Success"}


def init():
    turn_on_display()


if __name__ == "__main__":
    init()
    app = Flask(__name__)
    api = Api(app)
    api.add_resource(DisplayController, '/display/<string:state>')
    app.run(debug=False, host='0.0.0.0', port=3000)

You can then have the HA rest action call this with "http://pidisplay:3000/display/on" or off.

path: 0 14473841 14565018 14573187, hotness: undefined, score: 2, children: 0
mesamunefire 11 points 2 years 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.

path: 0 14472772, hotness: undefined, score: 11, children: 0
ThanksForAllTheFish 11 points 2 years 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.

path: 0 14481662, hotness: undefined, score: 11, children: 0
comfy 10 points 2 years ago

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
path: 0 14493528, hotness: undefined, score: 10, children: 4
dino 5 points 2 years ago

Uh I would be interested in that actually! Nowadays Youtube generates lots of problems with freetube due to their cookie bullshit and I feel with mpv(yt-dlp) in cli I at least have the option to see whats going on.

path: 0 14493528 14502666, hotness: undefined, score: 5, children: 1
comfy 2 points 2 years ago

Now added to my comment :)

path: 0 14493528 14502666 14514819, hotness: undefined, score: 2, children: 0
prole 3 points 2 years ago

Uh this sounds awesome, care to share?

path: 0 14493528 14506582, hotness: undefined, score: 3, children: 1
comfy 2 points 2 years ago

Now added to my comment :)

path: 0 14493528 14506582 14514818, hotness: undefined, score: 2, children: 0
data1701d 9 points 2 years 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. 😈

path: 0 14479254, hotness: undefined, score: 9, children: 0
Eyedust 9 points 2 years 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.

path: 0 14504527, hotness: undefined, score: 9, children: 0
IsoKiero 9 points 2 years ago

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.

path: 0 14504260, hotness: undefined, score: 9, children: 1
friend_of_satan 4 points 2 years ago

I have the same type of thing. An alias that creates a tempdir that is based on the date, then cd's into it. Then a cron job that finds dirs that are older then N days old and deletes them. I use these for most of my scratch work. Having several days to look back at what you did and know when you did it is so nice.

path: 0 14504260 14504488, hotness: undefined, score: 4, children: 0
Chimrod 8 points 2 years ago path: 0 14477711, hotness: undefined, score: 8, children: 0
Korhaka 8 points 2 years 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.

path: 0 14506065, hotness: undefined, score: 8, children: 0
tetris11 8 points 2 years ago

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.

path: 0 14475009, hotness: undefined, score: 8, children: 2
golden_zealot 3 points 2 years ago

Which WM?

I am new to themes with gnome and am interested in learning about it in that capacity if you should have any resource material saved!

path: 0 14475009 14477074, hotness: undefined, score: 3, children: 1
ikidd 8 points 2 years ago path: 0 14475009 14477074 14477718, hotness: undefined, score: 8, children: 0
nycki 7 points 2 years ago

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.

path: 0 14503324, hotness: undefined, score: 7, children: 4
Eyedust 5 points 2 years ago

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.

path: 0 14503324 14504330, hotness: undefined, score: 5, children: 2
aes 2 points 2 years ago

I use the same setup with Syncthing and Obsidian. The git plugin sometimes gets confused, but nothing I can't untangle. I also use Syncthing for pictures off my phone, and ebooks onto it.

Actually, I think I do have a setup that might qualify as unusual: I use the scheduled backup feature of Podcast Addict to get a listing of listened podcast episodes, and then I inject them into my Obsidian notes.

path: 0 14503324 14504330 14512006, hotness: undefined, score: 2, children: 0
Zeoic 2 points 2 years ago

Take a look at the Self-Hosted LiveSync plugin for Obsidian. Requires some self hosting for a sync server, but it is damn flawless. I have my phone, desktop, laptop, and work laptop, all syncing through it. Syncs live too, so you can even see me typing on one device from another

path: 0 14503324 14504330 14525421, hotness: undefined, score: 2, children: 0
fool 1 point 2 years ago
path: 0 14503324 14503420, hotness: undefined, score: 1, children: 0
tanisnikana 7 points 2 years ago

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

path: 0 14507974, hotness: undefined, score: 7, children: 1
merthyr1831 3 points 2 years ago

based

path: 0 14507974 14510287, hotness: undefined, score: 3, children: 0
SitD 7 points 2 years 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 😂

path: 0 14494069, hotness: undefined, score: 7, children: 0
haui_lemmy 7 points 2 years ago

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

path: 0 14479334, hotness: undefined, score: 7, children: 2
fool 3 points 2 years ago

Triangulating your location. Are you... in the Milky Way Galaxy?

(Thanks for reminding me to limit accumulator charge)

path: 0 14479334 14481746, hotness: undefined, score: 3, children: 1
dave 2 points 2 years ago

Yeah, I have a script that toggles my Dell XPS between full charge and 80%, as I’m usually on mains and only need full charge occasionally.

path: 0 14479334 14481746 14481907, hotness: undefined, score: 2, children: 0
captain_aggravated 7 points 2 years ago

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.

path: 0 14480882, hotness: undefined, score: 7, children: 3
fool 3 points 2 years ago

ooh I should do that for Obsidian instead of having an enormous directory of Pasted Image 202302050124300845012.pngs. =◡=

path: 0 14480882 14481844, hotness: undefined, score: 3, children: 2
Gumus 5 points 2 years ago path: 0 14480882 14481844 14482750, hotness: undefined, score: 5, children: 0
captain_aggravated 3 points 2 years ago

If I can rant a bit...

I used to do my daily journal as plaintext in Vim. I wanted something that was a little more capable and in RedNotebook I almost got it. It stores plaintext markup (I think yaml?), the thing is it has an edit and a display mode, and you can't edit it in display mode. Inserting a picture is pasting a file path to where that picture is stored. If I linked to where the pictures are stored in my ~/Pictures directory, if I ever migrated from Rednotebook or Linux or anything like that, the links to those pictures would break. So I store teh pictures I link in my journal in a subdirectory alongside the journal itself, so the pics should go with it and it should survive a transfer easier.

This is, of course, extremely user unfriendly to do, because it would mean copying pictures, reducing their resolution so they don't take up the entire damn journal window, and then working through RedNotebook's interface to navigate to where I just stored that picture to generate the link.

Or, I wrote a couple lines of Bash that did most of that for me and put the file path link in the primary buffer so I could open my file browser, right click, select Add To Journal, and then middle click in my journal. Felt kind of clever coming up with that one, and I kind of wish A) it was a bit easier and B) we lived more in a world where we did that kind of thing where things interoperated more than trying to silo things.

path: 0 14480882 14481844 14482203, hotness: undefined, score: 3, children: 0
JetpackJackson 6 points 2 years ago

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

path: 0 14476510, hotness: undefined, score: 6, children: 0
lipilee 6 points 2 years ago

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

path: 0 14509934, hotness: undefined, score: 6, children: 0
corsicanguppy 6 points 2 years 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.

path: 0 14499448, hotness: undefined, score: 6, children: 0
Ephera 6 points 2 years 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.

path: 0 14473220, hotness: undefined, score: 6, children: 0
lengau 5 points 2 years ago
  • I have bash scripts light and dark that make dbus calls to set my global theme to light or dark mode. I switch between them regularly, and opening system settings and pressing a button is too inconvenient.

Your first one sounds similar to me though - I use activity-aware Firefox to separate my personal and work accounts on my personal and work plasma activities.

path: 0 14485855, hotness: undefined, score: 5, children: 0
monovergent 5 points 2 years ago

The text editor shortcut on my taskbar runs a sort of autosave script in ~/.drafts. I wanted my text editor to function more like the one on my phone so I can just jot down random thoughts without going through the whole ritual of naming and saving. It creates YYYYMMDD_text in ~/.drafts (or YYYYMMDD_text_1 etc. if it already exists) and launches Pluma, which I also have configured to autosave every 10 minutes.

The other thing extends beyond Linux itself a bit. I like to joke that I have the most secure NT 4 / Windows 95 lookalike ever put together. Aside from the encrypted and hardened Debian base (/boot is also encrypted), I was in part inspired by Apple's parts pairing (yikes!). So my coreboot is configured to only accept my boot disk. If it's swapped out or missing, or if I want to boot something else, it will ask for a password. In the unlikely event my machine gets stolen, the thief must at a minimum reflash the BIOS or replace the motherboard to make it useful again. Idk, it amuses me every time I think about it.

path: 0 14492738, hotness: undefined, score: 5, children: 0
twinnie 5 points 2 years 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.

path: 0 14486938, hotness: undefined, score: 5, children: 0
mcmodknower 5 points 2 years ago

I open links from different categories of websites in different firefox profiles via a bash script. For example the current one is named "memes".

Also i have a second panel at the top of my second monitor so i can always see the current date and time.

path: 0 14472544, hotness: undefined, score: 5, children: 1
myersguy 3 points 2 years ago

Also i have a second panel at the top of my second monitor so i can always see the current date and time.

I think this one is probably very popular. I had a very hard time giving Gnome a chance because of its inability to do this by default.

path: 0 14472544 14472924, hotness: undefined, score: 3, children: 0
mlg 4 points 2 years ago

I'm using XFCE with Compiz, and since I have two monitors I have a 3D octagon instead of a 3D cube desktop.

path: 0 14508669, hotness: undefined, score: 4, children: 0
knolord 4 points 2 years ago

I have a custom script, which changes the fan profile (in my case between two thinkfan config files) depending whether the dock is connected or not. That one gets triggered whenever it switches the power source (AC or BAT0). (AC gets plugged in -> script starts -> check if dock is connected -> if connected run different profile)

It's janky but very helpful when it works :D

path: 0 14481932, hotness: undefined, score: 4, children: 0
dino 4 points 2 years ago

I type "power..." into my cli and press tab+enter to shutdown my computer. Same for reboot... 😆

path: 0 14502648, hotness: undefined, score: 4, children: 3
elo13 2 points 2 years ago

I do the same except I only type "pow" :P

path: 0 14502648 14509971, hotness: undefined, score: 2, children: 0
kylian0087 1 point 2 years ago

Why though?

path: 0 14502648 14503242, hotness: undefined, score: 1, children: 1
dino 4 points 2 years ago

Because its fast and easy? And also it works regardless of what DE/WM I am using.

path: 0 14502648 14503242 14503676, hotness: undefined, score: 4, children: 0
nycki 3 points 2 years ago

wait how does your clipboard shortcut work op? that sounds nifty!

path: 0 14503300, hotness: undefined, score: 3, children: 2
fool 4 points 2 years ago

I think I mentioned it but here it is again in case the comment didnt federate

click to enlarge
# snippet based on end4 dotfiles -- FIXME edge case where a
#     preexisting tmp.png might be overwritten
# English
bind = Super+Shift,T,exec,grim -g "$(slurp $SLURP_ARGS)" "tmp.png" && tesseract -l eng "tmp.png" - | wl-copy && rm "tmp.png"
# Korean
bind = Super+Shift,K,exec,grim -g "$(slurp $SLURP_ARGS)" "tmp.png" && tesseract -l kor "tmp.png" - | wl-copy && rm "tmp.png"
# Japanese
bind = Super+Shift,J,exec,grim -g "$(slurp $SLURP_ARGS)" "tmp.png" && tesseract -l jpn "tmp.png" - | wl-copy && rm "tmp.png"

Pipe grim and slurp (selects part of the Wayland screen then copies) into a tmp.png, tesseract it into the clipboard, then delete the tmp.png. Has like 1 sec of lag tho :]

path: 0 14503300 14503422, hotness: undefined, score: 4, children: 1
Kanedias 7 points 2 years ago

why do you even need a temporary file?

$ slurp | grim -g - - | tesseract stdin stdout -l eng+kor+jpn | wl-copy -t 'text/plain'
path: 0 14503300 14503422 14505324, hotness: undefined, score: 7, children: 0
driving_crooner 3 points 2 years ago

I use this app (webapps is the name I think) to make apps for YouTube, Mubi and TorrentLeech and I have then pinned on the task bar and use them as apps instead of webpages. This is in my hometheater pc

path: 0 14508490, hotness: undefined, score: 3, children: 0
rodbiren 3 points 2 years ago

I have a zellij snd micro config for journaling and writing that makes a completely borderless full screen terminal with no decoration whatsoever and narrows the terminal for micro to the upper half of the middle 1/3 of my screen.

It helps me focus and limiting to the upper half and middle 1/3 makes it easier for my eyes. I get distracted easily and this helps keep my editor from being the source of that.

path: 0 14482169, hotness: undefined, score: 3, children: 0
Scott_of_the_Arctic 3 points 2 years ago

I spilled a glass of scrumpy on the keyboard and a, s, and d no longer work. So I have to use a keyboard with it.

path: 0 14496331, hotness: undefined, score: 3, children: 2
ICastFist 3 points 2 years ago

So you have to use a keyboard with your keyboard...

path: 0 14496331 14505662, hotness: undefined, score: 3, children: 1
Scott_of_the_Arctic 3 points 2 years ago

With my laptop.

path: 0 14496331 14505662 14510145, hotness: undefined, score: 3, children: 0
oldfart 2 points 2 years ago

ChatGPT wrote a Python program that does select->Tesseract OCR for me, but it doesn't always work right with two monitors. I'm too stupid to correct it. How have you done yours, what are you using for selecting the area?

path: 0 14480906, hotness: undefined, score: 2, children: 1
fool 1 point 2 years ago

pasting from my keybind config

# snippet based on end4 dotfiles -- FIXME edge case where a
#     preexisting tmp.png might be overwritten
# English
bind = Super+Shift,T,exec,grim -g "$(slurp $SLURP_ARGS)" "tmp.png" && tesseract -l eng "tmp.png" - | wl-copy && rm "tmp.png"
# Korean
bind = Super+Shift,K,exec,grim -g "$(slurp $SLURP_ARGS)" "tmp.png" && tesseract -l kor "tmp.png" - | wl-copy && rm "tmp.png"
# Japanese
bind = Super+Shift,J,exec,grim -g "$(slurp $SLURP_ARGS)" "tmp.png" && tesseract -l jpn "tmp.png" - | wl-copy && rm "tmp.png"

I just pipe grim and slurp (i.e. select part of the Wayland screen then copy) into a temporary png, tesseract it into the clipboard, then delete the temporary png.

edit: clarified

path: 0 14480906 14481665, hotness: undefined, score: 1, children: 0
Kekin 2 points 2 years ago

Coming from Windows, I set up KDE's Spectacle to open with Super + Shift + S in Area Select Mode and save and copy to clipboard on click release

Maybe not as unique but kinda neat I think

path: 0 14506419, hotness: undefined, score: 2, children: 2
merthyr1831 2 points 2 years ago

I do this too. just a very slick hot key combo imo

path: 0 14506419 14510311, hotness: undefined, score: 2, children: 0
fool 2 points 2 years ago

Not unique, but we are now kindred (I did the same <:)

path: 0 14506419 14507061, hotness: undefined, score: 2, children: 0
olafurp 2 points 2 years ago

I use many KDE activities all mapped to a single hotkey. Meta+H, Meta+J, Meta+K, then L, Y, U, G.

I set my browser and maybe one other as sticky to show on all. I also have specific desktop picture for all of them.

On top of that I have a startup command that opens all applications I use for work. Each application is configured to open in a certain activity.

The end result is that instead of doing Alt-Tab or looking for the window I do Meta+Key and it's there in front of my eyes with focus.

path: 0 14509028, hotness: undefined, score: 2, children: 0
tankplanker 2 points 2 years ago

Mine is probably more of a combo of things to streamline my workflow than anything else.

I use Sways multiple workspaces to segregate my apps into different workspaces for different tasks on startup of that app using the assign function in my Sway config. For example VS Code and one particular Firefox window always goes to Workspace 3.

I use the Layman Sway scripts to force all my normal workspaces to different layouts that is appropriate for that function. So workspace 3 with VS Code and a Firefox window is set in a 75/25 split with VS Code set to always take the bigger share. I can switch the two sides from largest on the left to largest on the right, or swap the apps between the two splits, or make a window full-screen with simple keyboard shortcuts.

Odd workspaces are on my left monitor, even ones on the right. This coupled with per workspace wall paper (all my windows are translucent, not for everybody I know) and particular tasks locked to predefined workspaces means I am never hunting around for something. Even if I did lose something I can use rofi to switch to it. If its an essential app I can use my keyboard shortcut that I use to launch the app, switch to it using swayr by activating the shortcut again.

I have used QMK for my keyboard to reduce the number of keys I must use to activate most of my shortcuts, and move them to my number row and home row using layers, double taps, and holds. I try to layer up the same family of functions on the same key but on different layers, so for example, the VI arrow keys move between windows, resize windows, move windows, depending on which layer I have chosen.

path: 0 14482108, hotness: undefined, score: 2, children: 0
scrooge101 2 points 2 years ago

I also seperate Firefox on different workspaces, but only manually. How is the extension called? Having it automated would save me some seconds every reboot.

path: 0 14480391, hotness: undefined, score: 2, children: 3
tankplanker 5 points 2 years ago

Sway (and i3) you can assign windows to workspaces based on any property that is available in the swaymsg tree. It can do parital matches, so for example if you wanted your Lemmy firefox window to always start on workspace 3 you could use:

assign [title="lemmy" app_id="firefox"] workspace number $ws3

Title can use regex so you can do some pretty neat matching if you need it.

path: 0 14480391 14481886, hotness: undefined, score: 5, children: 0
fool 2 points 2 years ago

edit: based on the other commenter I think I might be missing a simpler declarative way to do this. The following will be kept for posterity though


The main idea is:

  1. Use Window Titler to add a title. For me, if I want it on workspace 7, I title the window "7". (NOTE: The title will probably appear like [title], see below)
  2. Make a script that queries the window manager, and then dispatches a movement to the appropriate workspace. In Hyprland that might be hyprctl -j which gives
... json blahblah
"title": "[7] What's a unique customization on your Linux machine you think no one else has? - tchncs — Mozilla Firefox"
... json blahblah

but in Sway it might be something similar to using swaymsg. Only titled windows will have the bracket number thing so just regex that part

  1. Put it in autostart. Because Firefox takes a while to load on my junk machine I sleep for like 30 seconds to a minute before all the titles register.
path: 0 14480391 14481740, hotness: undefined, score: 2, children: 1
scrooge101 2 points 2 years ago

Thanks a lot!

path: 0 14480391 14481740 14531818, hotness: undefined, score: 2, children: 0
linux
linux

@lemmy.ml

login for more options
67083
9205
4151

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

  • Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.
  • No misinformation
  • No NSFW content
  • No hate speech, bigotry, etc

Related Communities

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

go to feed...