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).
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.
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!
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
Triangulating your location. Are you… in the
Milky Way Galaxy
?(Thanks for reminding me to limit accumulator charge)
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.
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.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.
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.
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
runssystemd-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.
I have been using the same
userctl
alias.I didn’t know about the
systemd-run
command. Do you use it to save the command log? I created a script conveniently namedx
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 tosysyemctl enable --user --now unit
The logs are handled, but I mostly use it for command separation and control, including killing unruly child processes.
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 use my DE mostly as it comes, that’s got to be unique in this community
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.
Funny you should say that, I always felt like the defaults are really bad.
Probably, I have about 20 extensions for GNOME and have tweaked right about every setting and keybind.
I just like the extension that lets me swap audio devices without delving into settings
Machined badge reading “Built Not Bought”.
My dad used to put them on the cars he built.
My dad used to put them on the cars he built.
That’s pretty rad.
He was a rad guy.
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.
I have similar, but I turn my display on/off with HDMI-CEC based on time.
esphome or custom?
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.
Do you know what the chip of the PIR is? How many false positives do you get?
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.
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.
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.
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.
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.
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.
Why not use an address book?
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.
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.
Is there Google and/or Outlook integration into a terminal (Konsole) I’m not aware of?
What implied there’s a terminal client? I don’t think you mentioned it, either. Did you reply to the correct comment?
Either way, both Gmail and Outlook support POP and IMAP, so if you have a terminal e-mail client there’s an about 100% chance it works with Gmail and Outlook.
I may also want to type out someone’s email NOT in an email client, while in terminal, for example in bash shell or in vim.
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.
an actual print screen, finally
A kind of ‘super’ print screen, in fact.
why?
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
That’s a really neat use case!
And a very clever implementation.
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.
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.
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 😂
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.