general guidelines and philosophy

i’ll try to keep this as simple as posible to increase mantainability and troubleshooting, and minimize unexpected behavior.

also, if i can keep something in the userspace using flatpaks without affecting usability, i’ll prefer that to reduce system clutterness and increase security.

devices

pc master race

  • os: fedora 36 kde

  • cpu: amd ryzen 5 3600

  • gpu 1: amd radeon rx 6800 16 gb

  • gpu 2: amd radeon rx 5600 xt 6 gb

  • ram: 32 gb (4 x geil super luce 8 gb ddr4 3200mhz)

  • nvme: 1 tb (2 x adata xpg spectrix s40g 512 gb)

  • mb: asus tuf gaming x570-pro (wi-fi)

  • mouse: logitech g305

  • keyboard: hyperx alloy origins core (with razer pink pbt keycaps)

  • headphones: audio-technica ath-m50x (with a fiio bta10)

apple macbook air m1 2020

  • cpu: apple m1

  • ram: 8 gb

samsung galaxy s20 fe

bios config

  • restore defaults.

  • set ram to 3200mhz.

  • enable resizable bar.

  • enable virtualization.

  • enable secure boot.

  • disable csm.

  • customize fans speed to maximize silence.

specific for fedora kde

speedy encryption on nvme devices

$ sudo nano /etc/crypttab

add these flags

discard,no-read-workqueue,no-write-workqueue

and regenerate the initramfs with $ sudo dracut -f --regenerate-all

dnf tweaks

$ sudo nano /etc/dnf/dnf.conf

[main]
best=False
clean_requirements_on_remove=True
deltarpm=True
fastestmirror=True
gpgcheck=True
installonly_limit=5
max_parallel_downloads=20
skip_if_unavailable=True

add rpm fusion repos

$ sudo dnf in https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm

update system

$ sudo dnf up

tip: you can install only the most important updates with $ sudo dnf up-min

install from repos

$ sudo dnf in @core @multimedia @sound-and-video @virtualization android-tools arc-theme aria2 curl deltarpm emacs exa firewall-config flatpak gamemode git gparted gzip kgpg kitty lm_sensors lutris neofetch neovim net-tools p7zip p7zip-plugins qemu rpmfusion-free-release-tainted rpmfusion-nonfree-release-tainted snapd steam tmux tor torsocks tree util-linux-user virt-manager wireguard-tools

enable classic snap support

$ sudo ln -s /var/lib/snapd/snap /snap

for all distros:

flatpaks

$ flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

$ flatpak install flathub com.brave.Browser com.discordapp.Discord com.github.k4zmu2a.spacecadetpinball com.github.micahflee.torbrowser-launcher com.github.tchx84.Flatseal com.heroicgameslauncher.hgl com.leinardi.gst com.obsproject.Studio com.spotify.Client com.stremio.Stremio com.system76.Popsicle im.riot.Riot io.github.hakuneko.HakuNeko io.gitlab.librewolf-community net.davidotek.pupgui2 network.loki.Session org.audacityteam.Audacity org.blender.Blender org.darktable.Darktable org.fedoraproject.MediaWriter org.gimp.GIMP org.inkscape.Inkscape org.kde.kdenlive org.kde.krita org.libreoffice.LibreOffice org.qbittorrent.qBittorrent org.signal.Signal org.telegram.desktop org.videolan.VLC org.yuzu_emu.yuzu

snaps

$ sudo snap install --classic code

signal

edit app to add --start-in-tray or --use-tray-icon in the end of the exec command.

steam tweaks

  • enable steam play in steam settings.

  • set launch options (per game) to:

gamemoderun %command%

in some opengl games can be useful to add mesa_glthread=true at the beginning, and in some Vulkan/DirectX games can be useful to add RADV_PERFTEST=aco and/or DXVK_ASYNC=1(this last one is related to anti-cheats false positives, so don’t use it in online games to avoid bans).

git

$ git config --global color.ui true

$ git config --global user.name "astrolince"

$ git config --global user.email "[email protected]"

$ ssh-keygen -t ed25519-sk -C "[email protected]"

$ cat ~/.ssh/id_ed25519_sk.pub

paste to https://github.com/settings/ssh.

$ git config --global user.signingkey CC39C6D77BDF0053

$ git config --global commit.gpgsign true

brave extensions

clearurls

decentraleyes

json viewer

privacy settings

rabby

networkmanager randomize

$ sudo nano /etc/NetworkManager/conf.d/99-randomize-mac-address.conf

[device-mac-randomization]
wifi.scan-rand-mac-address=yes

[connection-mac-randomization]
ethernet.cloned-mac-address=random
wifi.cloned-mac-address=random

$ sudo systemctl restart NetworkManager