tell me the most ass over backward shit you do to keep your system chugging?
here’s mine:
sway struggles with my dual monitors, when my screen powers off and back on it causes sway to crash.
system service ‘switch-to-tty1.service’
[Unit]
Description=Switch to tty1 on resume
After=suspend.target
[Service]
Type=simple
ExecStart=/usr/local/bin/switch-to-tty1.sh
[Install]
WantedBy=suspend.target
‘switch-to-tty1.service’ executes ‘/usr/local/bin/switch-to-tty1.sh’ and send user to tty1
#!/bin/bash
# Switch to tty1
chvt 1
.bashrc login from tty1 then kicks user to tty2 and logs out tty1.
if [[ "$(tty)" == "/dev/tty1" ]]; then
chvt 2
logout
fi
also tty2 is blocked from keyboard inputs (Alt+Ctrl+F2) so its a somewhat secure lock-screen which on sway lock-screen aren’t great.
sometime ago I had my home directory managed by
systemd-homed
on Fedora (before 38 even afaik). the SELinux policy wasn’t configured properly for it though, so I had to keep setting it to permissive mode. for some stupid reason I remember running the command to do that on every. single. boot. lolUsing crontab to execute these kinds of quick fixes that don’t really solve the problem so much as reset the countdown to failure are the real Duck tape Linux hacks.
sssd didn’t work well with my company’s AD server, which would cause repeated authentication failures until I restarted sssd. I rigged up a bash script which would restart sssd any time xscreensaver logged an auth fail.
Had a Centos VM that kept slipping time. Every week it would loose about 30min. No amount of NTP syncing got the time correct until manual intervention.
Msp couldn’t work it out, couldn’t rebuild the server for infrastructure reasons, and only that server had the issue. The other 3 VMs on that host were fine.Cron job on one server took it current time, sshed to the dodgy server and configured the correct time.
intel won’t allow its linux drivers to work above wifi 4 speeds in ap mode, so i created a kvm virtual windows machine with pci pass through on the wifi nic plus ip masquerade and now i’m getting wifi 6 speeds in ap mode.
Lots of laptops just use a removable m.2 wifi card. Have you considered replacing it with something thats properly supported? I know hardware costs money but not that much probably.
This is the real solution, just stop using the built in stuff and free yourself
It’s not a laptop and the hardware is fully capable of ap mode support in it’s older iteration if drivers; Intel made the decision to remove that capability in the recent versions of the driver.
It’s not a laptop; it’s a mini desktop that I obtained to serve as a wifi router; storage server; firewall; VPN; media server; remote file storage; and my cat’s favorite warm napping surface.
the wifi nic is embedded on the motherboard and it was chosen since it included a high gain antenna; among other qualities.
Wifi works fine if you use it in ordinary client mode w full Linux support and the hardware is capable of fully supporting ap mode in older Linux kernels; it’s just that Intel decided remove higher speed ap mode support in the latest versions of the driver to force people to buy thier more expensive wifi nics.
Ah okay thats the one kind of device where there is nothing you can really do true.
this is beautiful
it’s a pita every time something goes wrong; it works well most of the time, but it also REALLY sucks sometimes.
Oh god, this is horrible. I beg you to find a better solution 🙏
it’s horrible in more ways that you would expect and what other solutions exist with intel wifi hardware in ap mode on linux?
I think NDISwrapper is still maintained for issues like this.
i wasn’t aware that you could use ndiswrapper on an access point; i’ll look into it.
UPDATE: googles says that you can’t do this because ndiswrapper uses windows drivers that don’t support ap mode.
The kludge wins. 😅
I’ve set Raspberry Pis to auto-reboot themselves at night if they are being used for headless network services that need to be available 24/7, just to clear out memory leaks or other things that may have gotten locked up. Not sure if that’s duct tape or just a standard practice. They aren’t the most stable things sometimes. They’re known for power supply and SD card issues.
I did this with my sensors running in Pi picos.
There was some wonkyness with some of the electrical stuff and since I have no idea how to debug that, I just restarted them every 24 hours and at start “drained” all pins by repeatedly reading from them.
I’m reasonably sure, this setup is cursed enough to kill an electrical engineer on sight, but it kind of works good-ish enough.
I have an old laptop running some basic services.
I have taken it apart before to replace the hard drive with an SSD, but I never replaced the dead CMOS battery because you have to literally completely disassemble it to get at the battery.
So I have a cronjob that runs on startup to change the system clock to the right time-zone.
It just felt simpler than completely disassembling a hard-to-take-apart laptop.
Debian (and Ubuntu) has the package “fake-hwclock”. I’m sure other distros do too.
Periodically saves the time info to disk and resets the clock with it on boot.
I have a folder full of scripts tied to aliases that fix various things when they go wonky, and I’ve long since forgotten what any of them do. I just know if
xxx
app stops working, I typefix_xxx
into the terminal and then it does a bunch of stuff and then it works again lol.Also I have a bunch of aliases tied to common tasks, like
e1
= reboot,e2
= shutdown etc. I have no idea where that habit came from.Edit: ALSO, just the general mish-mash of apps. I won’t have anything to do with Snaps, but the rest of it is an unholy combination of native apps, things from the AUR, flatpaks, Appimages, Docker containers and wine setups, mostly (but not all) in Bottles.
I dare you to try
grep -Irn alias
in your home dir.I’m not even sure what that would do! Presumably list every time the word alias appears in every file across the whole home directory or something like that?
Rtfm!
No, seriously, -I avoids binaries, -r recursively, -n print matching file and line number.
Alright, I’m gonna try it and see how long this takes!
edit: about 8 minutes. Not as spectacular as I’d hoped lol
If you have games there, yeah. Ripgrep is way faster. But grep is good enough in most cases.
Btw, did you find your aliases?
I did! I know where they are and which scripts they point to, but as for going into the scripts and trying to remember what they’re actually doing… I’ll get to it some day lol
now im really curious about that
xxx
app…
Had a zfs array on an adaptec raid card. On reboot the partition table would get trashed and block the zfs pool from coming up, but running fdisk against the disk would recover it from the backup.
Had a script to run on reboot that just ran “fdisk -l” on every disk, then brought up the zfs pool. Worked great for years until I finally did a kernel upgrade that resolved it.
I one crossgraded a debian server from x86 to x86_64.
Prior to switching (upgrading?) to Wayland, Debian KDE crashed under X11 regularly when waking from hibernation and the taskbar would disappear. Restarting the plasma shell made it operable again, so I created an alias and regularly rebooted the DE shell 2-3x a day:
alias damnTaskbar='killall plasmashell ; kstart plasmashell &'
Damn Taskbar is gold
I still occasionally need to use one of these two
# for plasma desktop alias kplasma='plasmashell --replace & disown' # when kwin crashes or acts weird alias kbug='if [ "${XDG_SESSION_TYPE}" = "x11" ]; then kwin_x11 --replace & disown; else kwin_wayland --replace & disown; fi'
Side of the case fell off.
gtk3-classic
still doesn’t work properly on Wayland and I doubt it will ever be fixed so I includeWAYLAND_DISPLAY=0
in each shortcut file to force them into xwayland.I ran
chmod 777 /dev/uinput
so AntiMicroX worked on Wayland. The PC was intented to be used as an HTPC. A Dualshock 3 would be the remote and KDE Plasma Bigscreen would be used to launch Linux native apps ie. Firefox and Android apps via Waydroid, hence the Wayland requirement. AntiMicroX would bind gamepad inputs to arrow keys, enter, ESC, volume up/down, mouse navigation, left/right click etc. The whole setup was duct tape, user unfriendly and it ultimately did not solve the problem that sent me down this rabbit hole: Internet was unstable even with an ethernet cable so it had no advantage over the crappy Android TV stick that had trouble streaming anything but Chromecast. A close contender is having to disable Internet when launching a specific online only game otherwise performance halves. There is also a guide I uploaded to Reddit that describes how to import ringtones from Linux to iOS that has 8 steps and involves rebooting your phone. And another guide to run 2 games at once and stream one of thrm while playing the other locally.I have a problem with half working duct tape solıtions.
Neat idea. Btw what’s that character you used in place of a “u” in “solıtions”? It looks an “i” lost its tittle
In Turkish we have ı/I and i/İ instead of i/I. u is next to ı, I made a typo.
Possibly my light/dark mode scripts. They change my Plasma theme, which is honestly most of the job, but also set the matching GTK theme, set the new theme in running Konsole sessions, do a bunch of manual
sed
edits on conf files for applications that don’t follow system theming, finally restartingplasmashell
to clean up the occasional edge case where a tray icon is supposed to follow the theme but doesn’t.Oh yeah I do this, I’ll raise you that mine also sshs into my server to update the editor theme
My mother uses some software that runs in the browser for her shop. It can print out receipts and scan items. To do these things it has a small “sattelite” application that runs on the system and interacts with the printer and scanner. This software only runs on Windows and Linux doesn’t have drivers for the scanner.
When I switched her over to Linux and found this out in the process I wanted to stop, give up and install windows.
But then I had a stupid idea. I could run the sattelite program in a Windows VM and pass through the USB devices for receipt printer and scanner. The webapp uses requests to localhost:9998 to communicate with the sattelite so I set up a apache server that proxies these requests into the VM. I also prevented the VM from acessing the Interner so Windows doesn’t update and screw everything up.
And it works. It has been in use for a week now and I’ve heard no complaints. I’m just praying to god it doesn’t break
At least getting a snapshot of the Windows VM should be simple. And since it doesn’t connect to the internet and doesn’t update, restore should be quick and relatively easy.
I wonder if the windows docker image could be of use?
Is there such a thing as a windows docker image that doesn’t run Linux on Windows?
I saw a reference to it the other day but didn’t look further, it looks like the windows docker image can only run as athe same os as the base release
Ah right, useless.
Create a script to send important data records (if you need that for taxes or inventory data etc) as a nightly routine, that way you have a consistent database for any important records.
Then just create a restore point. If it breaks in 2 weeks, then you just relaunch it and know that it’s going to kill itself in 2 weeks. A simple restart to that restore point solves everything.
Sounds 100% functional to me!