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).
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.
Awesome…
Care to share the video/code?
I actually have something similar (Corsair Scimitar’s macro customizer doesn’t work on LinuxAs 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.
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.
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.
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.
- I have bash scripts
light
anddark
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.
- I have bash scripts
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?
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
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.
I made a user for my partner
I also have a user for your partner
Haha!
Take my poor man’s gold
🏅
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.
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.
I have two mice, one for either hand, and use xinput to flip the buttons on JUST the left one. It’s actually one of the main things keeping me from moving to Wayland, which doesn’t seem to have the same configuration features
LOL I’ve never seen that before.
Do you use them both at the same time? Or do you switch between them rapidly? (Maybe you could make a taskbar button-toggle if it’s the latter!)
there are both configurable mice that let you swap mouse buttons (in the worst case in a windows virtualbox with usb passthrough) or mice that are leftie right out the get-go. those would allow you to use wayland, assuming you can afford to and want to get a new mouse.
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.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.
Oh neat!
My script is for gnome, but I wonder if there us an equivalent gnome extension in existence as well.
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.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.
Whenever you get 3 in a row, you know what you have to do.
The gods have given you a sign.
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.
My applications menu icon (or the “start” menu for the philistines) is a 🐢.
based
I use hot mount SATA slots for backup and other media. Not that common on workstations. Sure, common on servers.
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.
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.
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:
- 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)
- 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
- 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.
Thanks a lot!
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.
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
orBAT0
). (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