A near-exhaustive list of software I use, not an exhaustive list of the best software. There could very well exist superior alternatives. Feel free to point them out.
Latest update: 2024-12-06, 11:21:02 CET.
❦
Some arguments to consider financially supporting developers who share their work for free without ads: What if I paid for all my free software?
Model: 1. Samsung S10e (second-hand), 2. OnePlus One (2014).
OS: 1. Android 12, 2. LineageOS (18.1) + microG (No Google account needed!).
F-Droid app catalogue:
Aurora Store app catalogue:
Installation checklist of my preferred Arch-based Linux operating system EndeavourOS. Need help? Read the EndeavourOS wiki, the Manjaro wiki, or use the remarkably extensive ArchWiki.
❦
I have certain set of software I install on every new machine. Here follows a list I copy-paste so I don't have to install everything individually each time.
pacman -Syu --needed btop yakuake xscreensaver redshift rsync grsync hblock gnome-disk-utility gparted hunspell hunspell-nl hunspell-en_GB hunspell-fr qalculate-qt smplayer okular fwupd tmux libreoffice-still libreoffice-still-en-gb libreoffice-still-nl libreoffice-still-fr calibre npm transmission-qt kdeconnect nheko ncdu zed mousepad xfce4-taskmanager megasync
yay autokey-gtk input-remapper-git simplescreenrecorder-bin lyx rustdesk-bin rate-mirrors zen-browser-bin crow-translate
npm install -g live-server
Direct download: Beeper, Notesnook, YT Music 🚫 ads
boinc opencl-nvidia python-requests
pacman -Syu --needed vivaldi vivaldi-ffmpeg-codecs element-desktop shotcut rssguard discord bluez bluez-utils texstudio sagemath sagemath-doc xsane seahorse noto-fonts-emoji playerctl xfce4-systemload-plugin xfce4-sensors-plugin gst-plugins-good geany-plugins android-tools catfish ffmpeg ffmpegthumbs ffmpegthumbnailer gufw bash-completion thunar gvfs gvfs-mtp tumbler thunar-media-tags-plugin thunar-volman xdotool qt5-imageformats xournalpp make automake base-devel texlive-latex texlive-latexextra remmina libvncserver x11vnc inotify-tools dnsutils baobab peek thunderbird birdtray clementine torbrowser-launcher audio-recorder zsh vscodium-bin libreoffice-fresh
yay sblock-git
❦
Forest Clearing by Ironclad.
alias xyz="xdg-open path/to/file.ods"
alias xyz="cd path/to/folder/"
alias xyz="cd /path/to/scripts/ && ./script-name.sh $1"
alias upd="yes | sudo pacman -Syu"
alias gimps="cd .GIMPS/p95v308b17.linux64/ && ./mprime -m"
alias cync="cd /home/…/public/ && git pull && xdotool key ctrl+shift+t && live-server"
alias clean="sudo pacman -Sc && rm -rf ~/.cache/* && sudo pacman -Rns $(pacman -Qtdq)"
alias gitp="git push -u origin main"
sleep 1; xset dpms force off
To install Linux Manjaro's zsh config: yay manjaro-zsh-config
, copy-paste the text below into the .zshrc file in the home directory, within the terminal settings change /bin/bash
to /bin/zsh
, close and re-open the terminal.
# Use powerline
USE_POWERLINE="true"
# Has weird character width
# Example:
# is not a diamond
HAS_WIDECHARS="false"
# Source manjaro-zsh-configuration
if [[ -e /usr/share/zsh/manjaro-zsh-config ]]; then
source /usr/share/zsh/manjaro-zsh-config
fi
# Use manjaro zsh prompt
if [[ -e /usr/share/zsh/manjaro-zsh-prompt ]]; then
source /usr/share/zsh/manjaro-zsh-prompt
fi
If the font renders incorrectly after a KDE Plasma 6 upgrade, then use the following font in your Konsole profile: NotoSansM Nerd Font Mono
Globally block 3rd-party scripts and 3rd-party frames.
* * 3p-frame block
* * 3p-script block
mkdir /etc/sblock/ && sudo echo -e 'http://sbc.io/hosts/hosts\nhttp://sbc.io/hosts/alternates/porn-only/hosts' > /etc/sblock/sources.list
sblock
To whitelist a domain, add arscyni.cc and www.arscyni.cc to /etc/sblock/allow.list
and run sblock
again.
Extensions: HTML, Emmet, LTeX, SCSS
~/.config/zed/settings.json:
{
"features": {
"inline_completion_provider": "none"
},
"ui_font_size": 16,
"buffer_font_size": 16,
"theme": {
"mode": "system",
"light": "Atelier Cave Dark",
"dark": "One Dark"
},
"soft_wrap": "editor_width",
"tab_size": 2,
"lsp": {
"ltex": {
"settings": {
"ltex": {
"language": "en-GB"
}
}
}
}
}
~/.config/zed/keymap.json:
[
{
"context": "Workspace",
"bindings": {
// "shift shift": "file_finder::Toggle"
}
},
{
"context": "Editor",
"bindings": {
// "j k": ["workspace::SendKeystrokes", "escape"]
"ctrl-s": "workspace::SaveWithoutFormat",
"ctrl-k": "editor::Format"
}
}
]
By default Zed uses the VSCode/VSCodium keymappings, and it supports Emmet. However, for some reason, "Emmet: wrap with abbreviation" is not supported yet, which I frequently use to wrap HTML tags around words with. In the meantime one can use AutoKey by assigning the following script to a hotkey:
text_selected = clipboard.get_selection()
text_input = dialog.input_dialog(title="Wrap with a tag.", message="E.g., type cite to get <cite>.", default="")
keyboard.send_key("")
clipboard.fill_clipboard(f"<{text_input[1]}>{text_selected}{text_input[1]}>")
keyboard.send_keys("+v")
To change the minimap colors, etc. [source 1, 2, 3, 4], go to File → Preferences → Settings → in the search box, type: workbench.colorCustomizations
→ click "Edit in settings.json"
{
"editor.tabSize": 2,
"editor.wordWrap": "on",
"cSpell.language": "en-GB",
"editor.minimap.showSlider": "always",
"workbench.colorCustomizations": {
"editor.background": "#faebd7",
"editor.foreground": "#000000",
// "editor.lineHighlightBorder": "#ffffff",
"editor.lineHighlightBackground": "#f1fdff",
"editor.selectionBackground": "#7cffc2",
"editor.selectionHighlightBackground": "#d2e6d780",
"scrollbarSlider.activeBackground": "#95efff",
"scrollbarSlider.hoverBackground": "#c0ebff",
"scrollbarSlider.background": "#dfeeff",
},
"workbench.colorTheme": "Default Light Modern",
"editor.fontFamily": "'Droid Sans Mono', 'monospace', monospace",
"editor.fontSize": 16,
"editor.hover.above": false,
"editor.hover.delay": 700,
}
Frequently used shortcuts:
control + shift + L
control + shift + L
control + shift + P
and select "Emmet: Wrap with Abbreviation".alt + click
and/or add more with: shift + alt + up/down
control + D
control + shift + A
control + /
sudo pacman -S inotify-tools
#!/bin/bash
while inotifywait -e modify,move_self -qq your_python_script.py; do
python3 your_python_script.py
done
Make sure the shell script is executable by right clicking it → "Properties" → "Permissions" → "Program: ☑ Allow this file to run as a program", or by running the following command: chmod +x auto_execute.sh
auto_execute.sh
Now, whenever you save "your_python_script.py", it will instantly throw the output in the VSCodium terminal, or whatever terminal you executed the shell script in. Source: ChatGPT.
To build LyX one needs packages make automake autoconf
, otherwise it throws the following error:
configure: error: cannot compile a simple Qt executable. Check you have the right $QTDIR
Respectively install texlive-latex texlive-latexextra
to avoid/fix the error messages below, of which the latter appears only on some documents when using pdflatex.
The selected document class Article (Standard Class) requires external files that are not available. The document class can still be used, but the document cannot be compiled until the following prerequisites are installed: article.cls See section 3.1.2.2 (Class Availability) of the User's Guide for more information.
LaTeX Error: File `setspace.sty' not found.
To configure Plasma search to open a browser with a query when entering "xyz example.com", e.g., "viv example.com" that opens example.com in Vivaldi browser:
“create a symlink named "viv" in /usr/bin/ to the actual vivaldi binary” —Jan R..
Either there likely already is a symlink named "vivaldi" within /usr/bin/
, of which you can make another symlink with a more convenient shorter name: sudo ln -s vivaldi viv
Or go to the directory containing the vivaldi binary, in my case "/opt/vivaldi/", and in that directory run the command: sudo ln -s vivaldi /usr/bin/viv
To back up all your custom websites added to the Web Search Keywords KRunner plugin, navigate to ~/.local/share/kf6/searchproviders/
and back up the containing files.
The upgrade from KDE Plasma 5 to 6 enables Wayland by default despite using X11 before, and it breaks tons of stuff, e.g., Vivaldi browser became unusable, XScreenSaver does not work, et cetera. To revert to X11 open SDDM → Behaviour… → Automatically log in…with session Plasma (X11)
.
Open kdewallet with kdewalletmanager and delete "akonadi_imap_resource_…" in "Contents" > "imap" > "Passwords".
Go to "Settings" > "Plugins" > "Akonadi Agents", and click the slider icon 🎚️ next to "Unified Mailbox Agent".
about:config
in the URL entry field → set toolkit.legacyUserProfileCustomizations.stylesheets
to true
~/.librewolf/rqp0p3up.default-default/chrome/
To hide the names of individual bookmarks and keep the names of folders while removing the folder icons in FireFox or derivatives such as LibreWolf, Zen Browser, or Waterfox:
/* Hide the names of individual bookmarks */
#personal-bookmarks .bookmark-item:not([type="menu"]) .toolbarbutton-text {
display: none !important;
}
/* Keep the names of bookmark folders visible */
#personal-bookmarks .bookmark-item[type="menu"] .toolbarbutton-text {
display: inline !important;
}
/* Remove the folder icon of bookmark folders */
#personal-bookmarks .bookmark-item[type="menu"] .toolbarbutton-icon {
display: none !important;
}
To simply hide the names of everything in the bookmarks bar, use: #personal-bookmarks .toolbarbutton-text {display:none!important}
– – – – –
* I used ChatGPT for this, sorry.
To move the bookmarks and navigation bar to the bottom of the window in LibreWolf, save in the aforementioned userChrome.css file the following:
/* Move the bookmarks bar and navigation bar to the bottom of the window */
@-moz-document url(chrome://browser/content/browser.xhtml) {
:root:not([inFullscreen]) {
--uc-nav-bar-height: 36px; /* Adjust this value based on your navigation bar height */
--uc-bookmarks-bar-height: 30px; /* Adjust this value based on your bookmarks bar height */
}
/* Adjust the main browser layout to create space at the bottom */
#browser, #customization-container {
margin-bottom: calc(var(--uc-nav-bar-height) + var(--uc-bookmarks-bar-height));
}
/* Move the navigation bar to the bottom */
#nav-bar {
position: fixed !important;
bottom: 0 !important;
width: 100%;
z-index: 2;
background-color: #2e2e2e !important;
opacity: 1 !important;
}
/* Move the bookmarks bar above the navigation bar */
#PersonalToolbar {
position: fixed !important;
bottom: var(--uc-nav-bar-height) !important;
width: 100%;
z-index: 1;
background-color: #2e2e2e !important;
opacity: 1 !important;
}
/* Ensure each toolbar element grows appropriately */
#personal-bookmarks, #nav-bar {
display: flex;
flex-grow: 1;
}
}
#navigator-toolbox {
max-height: 0;
overflow: hidden;
transition: ease all 5s;
}
#main-window:hover #navigator-toolbox {
max-height: 100vh;
animation: 0s pop-in;
animation-fill-mode: both;
animation-delay: 5s;
}
@keyframes pop-in {
from {overflow: hidden}
to {overflow: unset}
}
To enable KeePassXC browser integration in LibreWolf:
~/.librewolf/native-messaging-hosts
{"version":"2.0.126","settings":{"blur":0,"brightness":100,"contrast":100,"grayscale":0,"huerotate":0,"invert":0,"saturate":100,"sepia":0,"applyvideofilters":false,"backgroundcolor":"#000000","backgroundopacity":100,"blackbars":false,"blockautoplay":true,"blockhfrformats":true,"blockwebmformats":false,"boostvolume":false,"cinemamode":false,"cinemamodewideplayer":false,"controlbar":{"active":true,"autohide":false,"centered":true,"position":"absolute"},"controls":["loop","volume-booster","size","pop-up-player","speed","screenshot","options"],"controlsvisible":false,"controlspeed":true,"controlspeedmousebutton":false,"controlvolume":false,"controlvolumemousebutton":true,"convertshorts":false,"customcolors":{"--dimmer-text":"#cccccc","--hover-background":"#232323","--main-background":"#111111","--main-color":"#00adee","--main-text":"#eff0f1","--second-background":"#181818","--shadow":"#000000"},"customcssrules":"","customscript":"","customtheme":false,"darktheme":true,"date":1687771133142,"defaultvolume":true,"disableautoplay":true,"executescript":false,"expanddescription":false,"filter":"none","hidecardsendscreens":false,"hidechat":false,"hidecomments":false,"hiderelated":false,"hideshorts":true,"ignoreplaylists":true,"ignorepopupplayer":false,"localecode":"en_GB","localedir":"ltr","message":false,"miniplayer":true,"miniplayerposition":"_top-left","miniplayersize":"_320x180","newestcomments":false,"overridespeeds":true,"pauseforegroundtab":true,"pausevideos":true,"popuplayersize":"960x540","qualityembeds":"medium","qualityembedsfullscreen":"hd1080","qualityplaylists":"large","qualityplaylistsfullscreen":"hd1080","qualityvideos":"large","qualityvideosfullscreen":"hd1080","reload":false,"reversemousewheeldirection":false,"selectquality":true,"selectqualityfullscreenoff":true,"selectqualityfullscreenon":true,"speed":1,"speedvariation":0.25,"stopvideos":true,"theatermode":true,"theme":"youtube-deep-dark","themevariant":"youtube-deep-dark-kde.css","update":1717776894743,"volume":75,"volumemultiplier":3,"volumevariation":5,"wideplayer":false,"wideplayerviewport":true}}
☑ "Hide All Child Comments".
On the remote computer (server) to connect to:
libvncserver x11vnc
5900
in the firewall settings.x11vnc -usepw -forever -display :0
On the local computer:
remmina libvncserver
The desktop environment of the remote computer should now be visible. Don't forget to set a password in x11vnc when leaving the connection open indefinitely.
Install package boinc. Add your username to the boinc user group: gpasswd -a x boinc
. Start boinc: systemctl start boinc-client.service
.
Double-check if boinc causes log spam: journalctl --grep='Authorization required, but no authorization protocol specified'
If this log spam is present, create a “drop-in file” for boinc-client.service:
mkdir /etc/systemd/system/boinc-client.service.d/ && sudo echo -e '[Service]\nLogFilterPatterns=~no authorization protocol specified' > /etc/systemd/system/boinc-client.service.d/wayland-syslog-spam.conf
To use BOINC via the GUI, click the previous link. When creating the gui_rpc_auth.cfg file and launching boincmgr via commandline it will probably work, but when launching BOINC Manager via an application launcher I recall it throwing an "gui_rpc_auth.cfg exists but can't be read. Check the File permissions." error message. Changing the file's permissions fixed this: chmod 640 ~/gui_rpc_auth.cfg
.
To make sure the mouse input suspends the tasks too—after startup/boot/login—and not only keyboard inputs: install "xorg-xhost" and run echo 'xhost si:localuser:boinc' > ~/.xprofile
. Or just run xhost si:localuser:boinc
in a terminal to not make it persistent.
It's possible to run GIMPS on the CPU (mprime) and GPU (GpuOwl) simultaneously. [Thanks to kriesel for the tip.]
git clone https://github.com/preda/gpuowl.git
python3 ~/gpuowl/tools/primenet.py -u GIMPSusername
~/gpuowl/build-release/gpuowl
Enable XScreenSaver in KDE Plasma.
xscreensaver-settings
xscreensaver-command -activate
xscreensaver-command -lock
# XScreenSaver Preferences File
# Written by xscreensaver-settings 6.09 for arsCynic on Sun Oct 27 11:46:40 2024.
# https://www.jwz.org/xscreensaver/
timeout: 0:03:00
cycle: 0:10:00
lock: False
lockTimeout: 0:00:00
passwdTimeout: 0:00:30
visualID: default
installColormap: True
verbose: False
splash: True
splashDuration: 0:00:05
demoCommand: xscreensaver-settings
nice: 10
fade: True
unfade: False
fadeSeconds: 0:00:01
ignoreUninstalledPrograms:False
dpmsEnabled: False
dpmsQuickOff: False
dpmsStandby: 2:00:00
dpmsSuspend: 2:00:00
dpmsOff: 4:00:00
grabDesktopImages: False
grabVideoFrames: False
chooseRandomImages: False
imageDirectory:
mode: random
selected: -1
textMode: url
textLiteral: XScreenSaver
textFile:
textProgram: fortune
textURL: https://en.wikipedia.org/w/index.php?title=Special:NewPages&feed=rss
dialogTheme: greenblack
settingsGeom: 1,28 -1,-1
programs: \
- maze --root \n\
- GL: superquadrics --root \n\
- attraction --root \n\
- blitspin --root \n\
- greynetic --root \n\
- helix --root \n\
- hopalong --root \n\
- imsmap --root \n\
- noseguy --root \n\
- pyro --root \n\
- qix --root \n\
- rocks --root \n\
- rorschach --root \n\
- decayscreen --root \n\
- flame --root \n\
- halo --root \n\
- slidescreen --root \n\
- pedal --root \n\
- bouboule --root \n\
- braid --root \n\
- coral --root \n\
- deco --root \n\
- drift --root \n\
- fadeplot --root \n\
galaxy --root \n\
- goop --root \n\
- grav --root \n\
- ifs --root \n\
- GL: jigsaw --root \n\
- julia --root \n\
- kaleidescope --root \n\
- GL: moebius --root \n\
- moire --root \n\
- GL: morph3d --root \n\
- mountain --root \n\
- munch --root \n\
- penrose --root \n\
- GL: pipes --root \n\
- rdbomb --root \n\
- GL: rubik --root \n\
- sierpinski --root \n\
- slip --root \n\
- GL: sproingies --root \n\
- starfish --root \n\
- strange --root \n\
- swirl --root \n\
- triangle --root \n\
- xjack --root \n\
- xlyap --root \n\
- GL: atlantis --root \n\
- bsod --root \n\
- GL: bubble3d --root \n\
GL: cage --root \n\
- crystal --root \n\
- cynosure --root \n\
- discrete --root \n\
- distort --root \n\
- epicycle --root \n\
- flow --root --no-box \n\
- GL: glplanet --root \n\
- interference --root \n\
- kumppa --root \n\
- GL: lament --root \n\
- moire2 --root \n\
- GL: sonar --root \n\
- GL: stairs --root \n\
- truchet --root \n\
- vidwhacker --root \n\
- webcollage --root \n\
- blaster --root \n\
- bumps --root \n\
- ccurve --root \n\
- compass --root \n\
- deluxe --root \n\
- demon --root \n\
- GL: extrusion --root \n\
- loop --root \n\
- penetrate --root \n\
- petri --root \n\
- phosphor --root \n\
- GL: pulsar --root \n\
- ripples --root \n\
- shadebobs --root \n\
GL: sierpinski3d --root --delay 16935 --depth 4 \n\
- spotlight --root \n\
- squiral --root \n\
- wander --root \n\
- xflame --root \n\
- xmatrix --root \n\
- GL: gflux --root \n\
- nerverot --root \n\
xrayswarm --root \n\
- xspirograph --root \n\
- GL: circuit --root \n\
- GL: dangerball --root \n\
- GL: dnalogo --root \n\
- GL: engine --root \n\
- GL: flipscreen3d --root \n\
- GL: gltext --root \n\
- GL: menger --root --delay 32258 --speed 50 \n\
- GL: molecule --root \n\
- rotzoomer --root \n\
- scooter --root \n\
- speedmine --root \n\
- GL: starwars --root \n\
- GL: stonerview --root \n\
- vermiculate --root \n\
- whirlwindwarp --root \n\
- zoom --root \n\
- anemone --root \n\
- apollonian --root \n\
- GL: boxed --root \n\
- GL: cubenetic --root \n\
- GL: endgame --root \n\
- euler2d --root \n\
- fluidballs --root \n\
- GL: flurry --root \n\
- GL: glblur --root \n\
- GL: glsnake --root \n\
- halftone --root \n\
- GL: juggler3d --root \n\
- GL: lavalite --root \n\
- polyominoes --root \n\
- GL: queens --root \n\
- GL: sballs --root \n\
- GL: spheremonics --root \n\
- twang --root \n\
- GL: antspotlight --root \n\
- apple2 --root \n\
- GL: atunnel --root \n\
- barcode --root \n\
- GL: blinkbox --root \n\
- GL: blocktube --root \n\
- GL: bouncingcow --root \n\
- cloudlife --root \n\
- GL: cubestorm --root \n\
- eruption --root \n\
- GL: flipflop --root \n\
- GL: flyingtoasters --root \n\
- fontglide --root \n\
- GL: gleidescope --root \n\
- GL: glknots --root \n\
GL: glmatrix --root --no-rotate \n\
- GL: glslideshow --root \n\
GL: hypertorus --root \n\
- GL: jigglypuff --root \n\
- metaballs --root \n\
- GL: mirrorblob --root \n\
- piecewise --root \n\
- GL: polytopes --root \n\
- pong --root \n\
- popsquares --root \n\
GL: surfaces --root \n\
- xanalogtv --root \n\
- abstractile --root \n\
- anemotaxis --root \n\
- GL: antinspect --root \n\
- fireworkx --root \n\
- fuzzyflakes --root \n\
- interaggregate --root \n\
- intermomentary --root \n\
- memscroller --root \n\
- GL: noof --root \n\
- pacman --root \n\
- GL: pinion --root \n\
- GL: polyhedra --root \n\
- GL: providence --root \n\
- substrate --root \n\
- wormhole --root \n\
- GL: antmaze --root \n\
- GL: boing --root \n\
- boxfit --root \n\
- GL: carousel --root \n\
- celtic --root \n\
- GL: crackberg --root \n\
- GL: cube21 --root \n\
- fiberlamp --root \n\
- GL: fliptext --root \n\
- GL: glhanoi --root \n\
- GL: tangram --root \n\
- GL: timetunnel --root \n\
- GL: glschool --root \n\
- GL: topblock --root \n\
GL: cubicgrid --root \n\
- cwaves --root \n\
- GL: gears --root \n\
- GL: glcells --root \n\
- GL: lockward --root \n\
- m6502 --root \n\
- GL: moebiusgears --root \n\
- GL: voronoi --root \n\
- GL: hypnowheel --root \n\
- GL: klein --root \n\
- lcdscrub --root \n\
- GL: photopile --root \n\
- GL: skytentacles --root \n\
- GL: rubikblocks --root \n\
- GL: companioncube --root \n\
- GL: hilbert --root \n\
- GL: tronbit --root \n\
- GL: geodesic --root \n\
- hexadrop --root \n\
- GL: kaleidocycle --root \n\
- GL: quasicrystal --root \n\
- GL: unknownpleasures --root \n\
- binaryring --root \n\
- GL: cityflow --root \n\
- GL: geodesicgears --root \n\
- GL: projectiveplane --root \n\
GL: romanboy --root \n\
- tessellimage --root \n\
- GL: winduprobot --root \n\
- GL: splitflap --root \n\
- GL: cubestack --root \n\
- GL: cubetwist --root \n\
- GL: discoball --root \n\
- GL: dymaxionmap --root \n\
- GL: energystream --root \n\
- GL: hexstrut --root \n\
- GL: hydrostat --root \n\
- GL: raverhoop --root \n\
- GL: splodesic --root \n\
- GL: unicrud --root \n\
- GL: esper --root \n\
- GL: vigilance --root \n\
- GL: crumbler --root \n\
- filmleader --root \n\
- glitchpeg --root \n\
- GL: handsy --root \n\
- GL: maze3d --root \n\
- GL: peepers --root \n\
- GL: razzledazzle --root \n\
- vfeedback --root \n\
- GL: deepstars --root \n\
- GL: gravitywell --root \n\
- GL: beats --root \n\
- GL: covid19 --root \n\
- GL: etruscanvenus --root \n\
- GL: gibson --root \n\
- GL: headroom --root \n\
- GL: sphereeversion --root \n\
- binaryhorizon --root \n\
- marbling --root \n\
- GL: chompytower --root \n\
- GL: hextrail --root \n\
- GL: mapscroller --root \n\
- GL: nakagin --root \n\
- GL: squirtorus --root \n\
- GL: cubocteversion --root \n\
- droste --root \n\
- GL: papercube --root \n\
- GL: skulloop --root \n\
- GL: highvoltage --root \n\
- GL: kallisti --root \n\
pointerHysteresis: 10
authWarningSlack: 20
MOBA “gaming” mice with lots of buttons might be preconfigured to output letters, numbers, etc. These preconfigurations need to be removed first so you can properly remap them with Input Remapper. Otherwise, let's say a button is preconfigured to output number 5, when trying to remap that button, it will remap number 5 on the keyboard is well.
Unfortunately, for my EVGA X15 mouse the Windows-only EVGA Unleash RGB Software is needed to undo the aforementioned default configurations.
To start and indefinitely enable Input Remapper: systemctl enable input-remapper && systemctl restart input-remapper
Functions after "|" apply when the mouse's shift button is pressed as well.
left mouse extra top: copy (F13 = XF86Tools) | cut (F15 = XF86Launch6) left mouse extra bottom: paste (F14 = XF86Launch5) | unformatted paste (F16 = XF86Launch7) scroll button: default | shift + middle mouse click (F17 = XF86Launch8) scroll button left: left | shift + left (F18 = XF86Launch9) scroll button right: right | shift + right (F19) DPI up: page up | home DPI down: page down | end 1: backspace | CTRL + backspace (F23 = XF86TouchpadOff) 2: backward | CTRL + F1 (F20 = XF86AudioMicMute) 3: forward | CTRL + F2 (F21 = XF86TouchpadToggle) 4: esc | Alt + D (F22 = XF86TouchpadOn) 5: enter | screenshot 6: CTRL + L | F5 7: F12 | tab 8: delete | CTRL + delete (F24) 9: volume up | DPI+ 10: volume down | pause/play
tmux list-sessions
tmux attach -t 3
CTRL + b
and type d
.To remove websites from the search results, append the query with -site:pinterest.com -site:quora.com
.
Insert in the .bashrc
file: alias am="cd /path/to/scripts/ && ./search-amazon.sh"
Insert in a script, here search-amazon.sh:
xdg-open "https://amazon.fr/s?k=$*"
xdg-open "https://amazon.de/s?k=$*"
xdg-open "https://amazon.com.be/s?k=$*"
xdg-open "https://amazon.nl/s?k=$*"
To update bash execute: . ~/.bashrc
Now, within a terminal simply execute am foo bar
, and it will open all websites searching for "foo bar".
Even though some software supports launching minimised or to tray after, it does not always work depending on the OS/installer/DE, etc. For instance building Notesnook or Beeper with Arch's yay uses Electron to run these programs, which handles differently compared to starting them from an AppImage. Not even KDE Plasma's "Window Rules" works to force these Electron apps to start minimised. The solution is to run Notesnook/Beeper from the AppImage available on their website. For Beeper one has to additionally add --hidden
as a startup argument.
sudo pacman -Sc && rm -rf ~/.cache/* && sudo pacman -Rns $(pacman -Qtdq)
sleep 1; xset dpms force off
watch -d grep -e Dirty: -e Writeback: /proc/meminfo
xset q | grep -q 'Scroll Lock: off' && xset led named 'Scroll Lock' || xset -led named 'Scroll Lock'
git config --global credential.helper 'cache --timeout=3600'
xdg-mime default vivaldi-stable.desktop x-scheme-handler/https x-scheme-handler/http
playerctl play-pause/next/previous
amixer set Master n%+/n%-
konsole -e btop
sed -i 's/original/new/g' file.txt
rate-mirrors --protocol https arch | sudo tee /etc/pacman.d/mirrorlist
rsync -auhP source destination
x-scheme-handler/magnet=transmission-qt.desktop
to ~/.config/mimeapps.list
How to uninstall a normally uninstallable Android system app, e.g. "Link to Windows".
android-tools
adb devices
adb shell
pm list packages -s
, or a specific package: pm list packages -s | grep "microsoft"
pm uninstall -k --user 0 com.microsoft.appmanager
pm list packages -s | grep "microsoft"
To share a drive between Linux and Windows (11?) on a dual-boot setup and ensure the drives' files don't get deleted, disable Windows' enabled by default fast startup and hibernation:
powercfg /H off
Unplug the Ethernet cable and disable Wi-Fi. When prompted to enter an email address press Shift + F10
, and in cmd.exe type oobe\BypassNRO
and press enter to reboot. Then click "I don't have internet" → "Continue with limited setup". When asked to enter your name type "Screw Microsoft". Unethical bastards.
If Shift + F10
does not launch anything except for a split-second loading icon, then just use no@thankyou.com
as the email address and enter any arbitrary password; "Screw Microsoft" remains an appropriate choice.
Source: How to bypass the Microsoft Account requirement during Windows setup
[Doesn't seem to work anymore. (Su 27 Oct 2024)]
- Launch the registry editor
regedit
- Navigate to
HKEY_CURRENT_USER\SOFTWARE\Policies\Microsoft\Windows
- Create a new key called
Explorer
by right clicking "Windows" → "New" → "Key"- Create a DWORD value called
DisableSearchBoxSuggestions
by right clicking "Explorer" → "New" → "DWORD (32 bit) Value"- Assign the hexadecimal value of
1
to this newly created DWORD and click "OK"
Sources: (1) How to remove "Trending searches" in Windows 10 search? (2) How to: Disable search box suggestions in Windows 11.
Source: How to disable Copilot in Windows 11
❦
Search for https://fosstodon.org/@stardust/111603722034691744 (fosstodon invite) on one's preferred Mastodon server while logged in, comments appear below.