I got myself a lovely streamdeck XL and had some issues getting it to work with streamdeck_ui on Linux Mint 20. It turned out that the usual howtos don’t include the Device id required for the XL model which is 008f, so simply add the following line to your udev rules:
o when using disney plus, right-click on the page and select “Microsoft Edge / Windows” as your user agent
o once you’re finished with Disney Plus, revert back to “default” as to not ruin Linux browser statistics on other web sites 🙂
PS: No guarantees, it worked for me in Chromium and Vivaldi. If you’re worried, please use a standalone chrome / chromium install exclusively to watch Disney Plus on your trusty Linux system using only the above extension for viewing.
If you want to use an existing google authenticator account for use with keepass, the process to extract the base32 seed required by Keepass’ TOTP plugin can be quite involved.
So for posterity, I’ve documented the process here (I am using a company provided iphone and an Ubuntu Linux VM, but I think the process will be quite similar for android systems and other Linux distributions).
If you have any questions, feel free to leave a comment!
Open the google authenticator app on your phone
Select “export” from the hamburger menu
uncheck all accounts & re-check the one you want exported (make sure you don’t accidentally delete the original account on your phone :))
save the generated QR-code (jpg or png) to your photos or wherever & copy it to your Linux machine (I used telegram’s very handy “Saved Messages” feature for this)
install the “zbar-tools” package using apt or apt-get
As I keep forgetting how this works, here’s an example config that will require basic auth for the “/” URI while permitting basic-authless access to “/test” for IPs listed in the Allow from statement (other source IPs will still be able to access stuff in “/test” if proper basic authentication info is provided with the request):
# basic auth für "/" und "/test" except for IPs listed in the "Allow from..." Statement
I know I’m about 10 years late to the party, but I recently picked up “Counter Strike: global offensive (“csgo” for short) on Linux when I found out the title was now free to play on steam.
My distro of choice is Linux Mint 19.2 and getting the game to run itself on Linux was not a big issue thanks to using modern drivers for my nvidia gtx1070ti, however no matter what I tried, csgo would insist on playing its ingame sound (both effects & VOIP) on my external speakers (when everybody knows you need a proper headset to fully enjoy the 3d effects the game provides).
After a lot of googling I finally found a workaround which involves some pulseaudio (PA) hacking, but seems to work ok in a reliable and repeatable manner.
The basic principle is that you redirect csgo’s sound output (a “sink” in PA lingo), after it’s been created,to the sound device of your choice.
You’ll need to alt-tab out of the game once it’s started but I’ve found the function is rather stable if you run csgo in “fullscreen windowed” mode.
Once csgo is running, alt-tab to a 2nd virtual desktop and open a shell.
In this new shell, we’ll need to determine the current index / id of the headset like so:
$ pactl list short sinks 0 wave_output modules/module-waveout.c s16le 2ch 44100Hz RUNNING
(the above is just an example as I’m typing this on a Linux VM). The number we need is the “0” in this case, choose this according to the index number where your headset is displayed in pactl’s output.
Next, we create a simple shell script (need to to this only once of course) with the following content, calling it “movesinks.sh” or similar:
echo "Setting default sink to: $1";
pacmd set-default-sink $1
pacmd list-sink-inputs | grep index | while read line
echo "Moving input: ";
echo $line | cut -f2 -d' ';
echo "to sink: $1";
pacmd move-sink-input `echo $line | cut -f2 -d' '` $1
Note to self: Always make a copy of your boot sectors using dd first.
Note to world: These commands will only work if you have a separate boot partition.
# take note of your Linux partitions (/dev/sde3 == /, /dev/sde1 = /boot in my case)
# Mount Linux partitions using your live installer cd / usb key:
mount /dev/sde3 /mnt
mount /dev/sde1 /mnt/boot
# re-install grub to /dev/sda
grub-install --boot-directory=/mnt/boot /dev/sda
While lineage claims that the update process is mostly automatic on the Galaxy S III (gt-9300i), I found that after downloading an update and rebooting I ended up in my TWRP boot screen, with nothing much automatic going on at all.
It took me a while to determine the storage location of the downloaded updates (that much worked I’m happy to report), and it seems that for me (LineageOS 14.1) they end up on the internal SD card in a directory called
The trick was to use the “up one level” function in TWRP’s image selection to actually see the root level of the internal SD card.
Then, all I needed to do was to select the most recent update (it’s in zip format so you may need to switch the image / zip display in TWRP’s “install” screen, flash it (apparently you don’t have to wipe the cache for it to work), reboot the system and wait about 15 minutes, and hey presto!, here’s my most recent Lineage OS update running fine on my S III.
Caveat: During the initial migration from CM13 to Lineage 14.1, I found the system would not boot properly if I chose to select the “SuperSU” package as offered by the Lineage OS installer. Not choosing to install that package would allow the system to boot properly.
I hope this helps you updating and keeping current your beloved GT-9300i phone!
Our openstack pike installation crashed after a couple of days with tons of error messages in /var/log/mariadb/maria.log in the form of
Error in accept: Bad file descriptor
Some googling hinted at mariadb running out of open files, but I had some problems getting to grips how to set the number of open files for mariadb 10.1.20 (used by the rdo openstack-pike) on a CentOS 7 system, so here’s for posterity:
1)increase the ulimit in /etc/security/limits.conf as usual:
* hard nofile 1024000
* soft nofile 1024000
2) create the file (if it doesn’t exist, otherwise edit the existing file) /etc/systemd/system/mariadb.service.d/limits.conf
and add the following lines
2a) reload systemd
# systemctl daemon-reload
3) restart mariadb
# systemctl restart mariadb.service
4) check the results
# mysql -pXXXXXXXX mysql
MariaDB [mysql]> show global variables like 'open%';
| Variable_name | Value |
| open_files_limit | 1024000 |
1 row in set (0.00 sec)
5) Enjoy a hopefully crash-free OpenStack Pike setup 😉
Getting letsencrypt to run on an ancient CentOS or Red Hat Enterprise Linux 5 system (they still tend to appear in the wild from time to time) can be a major headache. I took some notes during the setup, I hope you find the useful (you'll need some basic Unix admin skills in order to follow this recipe, so caution is advised as you go through the procedure).
Important: You'll need to use Python 2.7.8, anything beyond that version will
die with an invalid certificate error during the certbot setup phase.
# compile openssl from source:
mkdir -p /server/src && cd /server/src
tar xvzf openssl-1.0.1t.tar.gz && cd openssl-1.0.1t
./config --prefix=/server/openssl-1.0.1t shared --openssldir=/server/openssl-1.0.1t/openssl
make depend && make && make install
# create a softlink for convenience
ln -s /server/openssl-1.0.1t /server/openssl
# Get Python 2.7.8
cd /server/src && wget https://www.python.org/ftp/python/2.7.11/Python-2.7.8.tgz
tar xvzf Python-2.7.8.tar.gz
# set up compile environment
export LDFLAGS=-"Wl,-rpath=/server/openssl/lib -L/server/openssl/lib -L/server/openssl/lib64/"
export CPPFLAGS="-I/server/openssl/include -I/server/openssl/include/openssl"
make && make install
# create softlink, adjust PATH
ln -s /server/python-2.7.8 /server/python; export PATH=/server/python/bin:$PATH
# install pip in new python version
wget --no-check-certificate https://bootstrap.pypa.io/get-pip.py
# install virtualenv, wheel
pip install virtualenv wheel
# git-clone certbot (latest version)
cd /server/src/ ; git clone https://github.com/certbot/certbot
# Request a certificate manually (certonly)
cd certbot; ./letsencrypt-auto certonly --manual -d my.server.tld
# configuring your webserver of choice is left as an exercise for the reader.
I really don’t like web forums all that much, I think they all suck in one way or another and I really yearn for the good old USENET days when everybody was free to use their reader of choice… well, those were the days.
Here’s the result:
“n” – Search for new posts
“g” – go to the first post in the list of new posts
“j/k” – navigate forward / backward in the pages of a thread and / or search results
Cut & Paste the script below and save it to a location of your choice, then you can use the “tampermonkey” extension for Chrome and other browsers to enable these features (chrome stopped accepting non-store based extensions a year ago for whatever reasons they saw fit, tampermonkey helps to get chrome back under the user’s control)
Add the URLs of your favourite forums to the script and import it into tampermonkey (some niftier form of configuration may be on the cards, but I’m lazy so feel free to add it yourself if you want to).
I hope you find this script useful, enjoy keyboard navigation in vB! 😉
As you may have heard, the NetHack Devteam blessed us with an update to everyone’s favourite roguelike game “Nethack” a few months ago. As I was unable to track down a precompiled version, I compiled this version from source on my Ubuntu LTS machine.
The package isn’t signed and it might break on your system (hopefully not “your system”), but I’ve decided to put it out there anyway.
This site is now using a free SSL certificate issued by the friendly folks over at “letsencrypt“. Great, isn’t it? I also updated WP in the process and added a permanent redirect to the HTTP version of this site.
If you’re like me, you’re both a simracing and flightsimming buff. My sims of choice are rfactor2 for simracing and Falcon BMS (4.33 was released not too long ago) for flight sims.
While using a head tracking device feels very natural when it comes to flightsimming (I’m using the excellent DelanClip with FaceTrackNoIR), it always felt strange when simracing in rfactor2, I just couldn’t get used to it. The fact that the stock FTNoIR install didn’t work with the 64bit rfactor2 executable didn’t help, either.
“Shtalik” on the BMS forum came up with a solution: Simply use the npclient64.dll from the OpenTrack zip archive and extract it to your FTNoIR directory. Following that, you should not have any problems enjoying head tracking in your favourite 64bit sim of choice.