Linux Room
Table of Contents
1. Why linux
I have always liked being able to customize, mod, and poke inside different things. Computers are machines for us to play around with and use how we see fit yet the only thing the big tech companies want to do it lock everything up and it disgusts me. Fuck google, fuck microsoft, fuck apple, and fuck all the other evil tech companies!!! Its time for the open source revolution and seize them all and open source the entire world!!! Without linux or any other unix life would be much much worse. Linux is my safe place from all the shit in the world.
2. Distros
I will distro hop a bit though for the most part I like to stay with the same distro and just change DE's or WM's. For the longest time I just switched to a different fedora spin every so often. Now I use arch because I got tired of fedora and couldnt find a distro I liked so I switched to arch to make it feel the way I want.
3. GUI apps
A lot of linux users dont like GUI apps. I think they are great when they are done right.
3.1. Claws mail
I have used thunderbird in the past though like I said before
mozilla is evil as fuck.
Through the power of actually following the unix philosophy and
not being full of javascript bullshit claws is about the safest email
client out there. Gone are the days of just clicking a email being
enough to fuck you over. Anyways you likely noticed that claws just
displays everything in plain text. I like using the dillo plugin for a
nicer view, and guess what? Still no shitty javascript that can get you
fucked!
This program been replaced by emacs Check out system crafters email tutorial.
3.2. Emacs
Don't use emacs. Its stupido.
That is and will always be true but lately as of writing this I been bit
by the emacs bug. Using emacs is so bad and so wrong but feels so good
to use. I defeated rsi by doing hand exercises for nearly a year and a
half as of writing this. I had to learn the hard way being a guitarist
and emacs user while taking CS classes and writing code all the time
wasnt a good idea. Now I play bass to but it balances out because I
switched over to IT and became too lazy to write code most of the time.
I lost my lite weight hand exercise tools and instead of buying new ones
I just started using the heavy ones for hours at a time until I had the
grip strength to crush a human skull. Now my rsi is cured as long as I
keep up the exercises.
I dont use doom emacs, spaceacs… or any of that bullshit. Just good old
gnu emacs with a simple config and a hand full of plugins.
Some of my favorite are:
- Ivy: it makes emacs feel a bit nicer without completely changing it by much.
- Company with eglot: a easy way to add good auto-complete and lsp support. It doesnt bloat the system up too much and it adds much faster and better auto-complete then what any standard ide has and it doesnt get in the way.
- nyan-mode: this plugin will change your life. Emacs isnt even usable without it. This plugin is the biggest reason I use emacs. Take that vim users!
Fun fact: I use emacs to work on this site.
3.3. SpaceFM
For the longest time I just used thunar because its decent and default
in xfce though I decided to give spaceFM a try as of writing this. I
might got annoyed of it in a week and ditch it or end up really liking
it. These kinds of things tend to go either way for me. I will either
fucking hate it or wonder how I ever lived without it.
Update: After using it for a little bit I really dig it and never want
to go back.
3.3.1. Encrypted partitions in spaceFM
SpaceFM doesnt support encrypted partitions by default but lucky for us its very customizable. I use to use udisks2/udiskie to get encrypted disk support though I found a less bloated way.
- Install cryptsetup if not already on the system.
- In spaceFM go to Devices->Settings->Device Handlers and add a new handler
with these settings.
Whitelist:crypto_LUKS
Mount:
(enable run in terminal)
cryptsetup luksOpen %v `basename %v`
mount --mkdir /dev/mapper/`basename %v` /media/`basename %v`
Unmount:
umount /media/`basename %v`
rmdir /media/`basename %v`
cryptsetup luksClose `basename %v`
If you have issues un-mounting just close all tabs and give it a second.
3.3.2. sftp
Spacefm uses sshfs for sftp support. Once you install it you will be
ready to rock. Though for my use case I need symlink support. sshfs
needs to have the option -o follow_symlinks
To support symlinks.
To add the option go to Devices->Settings->Protocol Handlers->ssh and
change the mount option to:
#!/bin/bash
[[ -n "$fm_url_user" ]] && fm_url_user="${fm_url_user}@"
[[ -z "$fm_url_port" ]] && fm_url_port=22
echo ">>> sshfs -o follow_symlinks -p $fm_url_port $fm_url_user$fm_url_host:$fm_url_path %a"
echo
# Run sshfs through nohup to prevent disconnect on terminal close
sshtmp="$(mktemp --tmpdir spacefm-ssh-output-XXXXXXXX.tmp)" || exit 1
nohup sshfs -o follow_symlinks -p $fm_url_port $fm_url_user$fm_url_host:$fm_url_path %a &> "$sshtmp"
err=$?
[[ -e "$sshtmp" ]] && cat "$sshtmp" ; rm -f "$sshtmp"
[[ $err -eq 0 ]] # set error status
# Alternate Method - if enabled, disable nohup line above and
# uncheck Run In Terminal
# # Run sshfs in a terminal without SpaceFM task. sshfs disconnects when the
# # terminal is closed
# spacefm -s run-task cmd --terminal "echo 'Connecting to $fm_url'; echo; sshfs -p $fm_url_port $fm_url_user$fm_url_host:$fm_url_path %a; if [ $? -ne 0 ]; then echo; echo '[ Finished ] Press Enter to close'; else echo; echo 'Press Enter to close (closing this window may unmount sshfs)'; fi; read" & sleep 1
3.4. mpv
I switched to mpv because vlc was acting weird with audio sometimes when watching anime and nothing in this world is worse then something getting in the way of anime time! Just like lite-xl and neovim mpv uses lua for its config files and is really simple by default. It also can play youtube videos or other online streams just by giving it a url.
3.5. qBittorrent
This is everything you could ever need out of a torrenting program. Searching, rss, plays nicely in xfce even though its a qt app, full of features without being bloat… One thing to watch out for is qbit by default can leak your ip. To fix that go to Preferences->Advanced and change Network interface to your vpn's interface. To test for leaks ipleak has a decent torrent ip leak tester.
3.6. Liferea
Feed readers are one of those things I use on and off. A lot like mail
clients feed readers tend to be very bloated. Liferea is my favorite but
it has always had issues with nvidia drivers until I found out a
trick.
If liferea has issues add this to your /etc/environment
and reboot
WEBKIT_DISABLE_DMABUF_RENDERER=1
Some cool tricks:
- Get this plugin to find feeds easier.
- You can turn youtube channels into rss feeds with
https://www.youtube.com/feeds/videos.xml?channel_id={channel_id}
This can be done for all your subscriptions with this script - You can drag and drop youtube urls from your feed reader into mpv so you can keep up with your subscriptions without even touching youtube's website.
Warning: Liferea is yet another program that was replaced by emacs.
Check out newsticker. newsticker ended up being fucking annoying so now I use
elfeed.
3.7. psi+
Its a funky xmpp/jabber client. Funky is just how I roll. A bunch of plugins
and skins that are a big fuck you to your systems theme? SIGN ME UP. Well
anyways by default it doesnt come with very many icons so get more resources
from psi resources and copy the iconsets
directory (or everything) to
/usr/share/psi-plus/
or where ever psi+ keeps its resources on your
system. If your on void you can use my psi+ package here (:
3.8. ePDFViewer
I wanted a pdf viewer that was light weight and simple. Being a xfce user I wanted something that isnt tied to another DE and doesnt uses a hell ton of dependencies.
4. Web browsers
Modern browsers are some of the worse things to every happen. These are
some of the better options out there.
For some resources on browsers check out
spyware watch dog and
dig deeper.
For addons stay away from the mozilla or google bullshit and instead use
something like the gnuzilla thingy. You
can also find addons on mybrowseraddon
than manually install them or something along those lines.
For a dark mode addon stay away from darkreader. Dont know if its
spyware or not but when the browser starts up it makes a bunch of
requests which is something a dark mode plugin shouldnt do. Instead use
something like
dark-mode.
4.1. Palemoon and Basilisk
Palemoon is a old firefox fork that uses a
different rendering engine so it can keep up with newer webstandards
while stilling keeping the old interface and support older plugins.
Basilisk use to be developed by
moonchild and was designed to be kind of like palemoon but based off a
bit newer version of firefox. The basilisk team broke off and is now
seprate from moonchild but still keeps in close contact with them.
What version you choose is really up to you and what interface you like
more. Both of them are going to struggle to use javascript heavy
websites but its ok its I prefer disabling javascript whenever possible
and using umatrix to only let in what the site needs to function.
4.1.1. Palemoon/Basilisk installing
If your on void you can install my palemoon package here. I dont have a basilisk package but you can quite easily make one yourself with my palemoon template (that I stole). My void package already has timezone spoofing so you dont need to run the scary commands below (:
4.1.2. Palemoon/Basilisk hardening
Even though they are about as good as browsers get these days the
developers are still stupidos so you should follow this guide.
Its also best you disable webrtc (only basilisk even supports webrtc out
of the two) and webgl along with other hardening because even though
they are based off older versions of firefox they still support the
modern features that make it easier for sites to fucking fingerprint
you. Basilisk is the only one that supports webrtc out of the two.
To help hardened get yourself
a palemoon user.js. It helps you stand out less by hiding the fact you are
using
a weird old ass browser. Btw, for whatever fucking reason this user.js
seems to brick github issue pages so just keep that in mind. Though if
anything this just is another reason why real git sites like gitea and
codeberg are better.
You can timezone spoof by setting TZ=UTC
before launching:
rm /usr/bin/palemoon
echo "#! /usr/bin/sh\nTZ=UTC /usr/lib/palemoon/palemoon \$@" > /usr/bin/palemoon
chmod +x /usr/bin/palemoon
Basilisk users can come up with their own hack instead of having their hands held and gently walked through
4.2. Ungoogled chromium
Ungoogled chromium is what the name says, chromium without the google. I still prefer to avoid anything chromim but if you really want to use a chromium based browser without all the spyware shit you arent going to get any better than this. It hella beats brave brave is fucking terrible. There is a addon that lets you install addons from the chrome store and update them without having to sign into google but I still think the best option is just to manually install the addons to completely avoid google.
4.2.1. Ungoogled hardening
Ungoogled chromium isnt hardened at all by default. Its designed to be a
drop in replacement for chrome that is user friendly and doesnt break
anything. We dont do that here, for heaven fucking shake at least harden
it a little and to do that you can use these flags.
With manifest v2 on the way out the future of chromium based browsers is
fucked. Mozilla is also doing shitty things so we are just in general
fucked.
4.3. Icecat
I use to use firefox but switched to librewolf because
mozilla is evil as
fuck. If you don't know librewolf it its the ungoogled-chromium of
firefox. Than I switched from librewolf to icecat.
The builtin plugins are decent. Librejs and its other contend blocking
plugins are way more annoying than something like umatrix but I am
giving them a fair chance knowing that umatrix might not have much of a
future even if its still quite functional still. I still like to install
ublock even with everything that comes builtin.
So I got annoyed of librejs and other builtin plugins in icecat. Now I
just disable them because umatrix and ublock can do way more, except
jshelter: It is a api spoofer which is different from the others which
are contend blockers. Its useful for when you have to use javascript
heavy websites but still want to prevent alot of information from being
leaked. I set ublock to disable javascript by default and I set jshelter
to strict mode by default.
Fun little trick: If video playback/youtube frame breaks on a website
just throw it into mpv to stream it from there. Sometimes to find the
media you can hit ctrl+i to pull up page info and use the media section
or in some cases you might have to dig around in the inspector.
4.3.1. Installing icecat
4.3.2. Icecat hardening
The magic of icecat is it makes zero requests to mozilla but its not too hardened so you might wanta use a user.js. Check out pyllyukko user.js.
4.4. librewolf
Librewolf is about the easiest way to get a decent hardened browser setup. It still makes some requests to mozilla which kind of sucks.
5. Command line
For a cool command line I use nerd fonts. My favorite is the hack nerd font which can be installed with:
wget https://github.com/ryanoasis/nerd-fonts/releases/download/v3.3.0/Hack.zip
unzip Hack.zip -d Hack
cp -r Hack /usr/share/fonts/
More nerd fonts can be found here.
5.1. zsh
zsh is pretty cool though I been playing with fish a bit and been thinking of switching to that. I dont really see myself using anything except zsh for quite a while though.
5.2. htop
Why didnt I add this to the list until now? idk, well anyways its a must have! This is my goto task manager on any unix machine. The xfce task manager can identity a process by clicking on its window but besides that htop beats everything else.
5.3. fzf
Just a useful little program to have. Great for searching for files, piping it into your package manage, piping into it everything else… Great for when you need something like grep but a bit more interactive.
5.4. fastfetch
I have never had a practical use for any of these kinds of fetch programs. What do I use it for? The real question is what does anyone use a fetch program for and thats a: to share your system on the interwebs, b: run a fetch after a fresh install to really get those fresh install vibes.
5.5. vim
For a long time I used neovim. I started using neovim becaues I wanted
vim to act more like a ide and have fancy shit. For most things I ended
up using lite-xl emacs more because well… emacs just make my autism
happy. Neovim ended up just being used for editing configs, quickly
throwing together scripts, crazy vim wizard edits… so I decided to
just ditch neovim (you can find my old config here) and instead go
with a simple vimrc with only a few plugins.
How dare someone use both emacs and vim! Shut your fucking piehole
stupido! Though I been using vim less and less…
6. Extras
These are programs I at one point used, dont use much… that I wanted to add.
6.1. lite-xl
I started using lite-xl because I wanted a simple little easy to config
graphical text editor. lite-xl is just that. I no longer have a need for
it as I get into emacs again as of writing this but still a great little
editor.
On different screen sizes lite-xl may look bad and to fix it you need to
set the LITE_SCALE
environment variable.
6.2. vlc
Yes, mpv is better. Yes, vlc sometimes has issues. But vlc is still better than the default media player on most systems and has its fair share of useful features. Even with mpv I still like to have vlc installed just in case mpv breaks when I dont have internet and I like its file converting features. The mobile version of vlc kicks ass.
6.3. Evolution
Evolution is one of the better mail clients out there. If for whatever reason you need to use gmail or some other locked down shitty service evolution has you covered. By default it uses the gnome style window decorators but unlike most gnome apps it lets you use your desktop/WM decorators instead. Its not as bad as most mail clients (looking at you thunderbird) and it lets you at least hide most of that shit out of the way.