This repository is a guide and a collection of scripts with stuff I like to do on my systems to have them easy to use, fast, secure, and most of all: consistent. It also of course includes my dot files, as the names suggests. You might be interested in this if you like Fedora, Wayland, Freedesktop and zsh.
By running these scripts, you will get a system with zsh and oh-my-zsh with very useful plugins and sane defaults. You will also have a lot of environment variables that will make sure your home folder (mostly) follows the XDG specification. Also, a few environment variables that will make, so applications prefer using Wayland over XWayland (this includes Qt, GTK and Java applications and Firefox).
And to top it off: all of your shell environment variables will be on POSIX-compliant .profile, which means it gets to be sourced by bash and zsh without duplicating the environment variables. Other environment variables are stored using Freedesktop's environment.d so that they are loaded by the desktop environment.
- Install Fedora using Fedora Media Writer
- Enable LUKS on installation, use a passphrase
- Update packages
sudo dnf update -y # reboot if you are not on the latest kernel
sudo dnf install 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
sudo dnf groupupdate core
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
- Install RPM fusion multimedia stuff
sudo dnf groupupdate multimedia --setop="install_weak_deps=False" --exclude=PackageKit-gstreamer-plugin
sudo dnf groupupdate sound-and-video
- Add the NVIDIA VGA drivers from RPM fusion before adding any GUIs
sudo dnf update -y # and reboot if you are not on the latest kernel
sudo dnf install akmod-nvidia # rhel/centos users can use kmod-nvidia instead
sudo dnf install xorg-x11-drv-nvidia-cuda #optional for cuda/nvdec/nvenc support
- Put .profile on the home folder
- Put .bashrc on the home folder
- Put .zshrc on the home folder
- Set up zsh shell
sudo dnf install zsh
chsh -s $(which zsh)
- Set up oh-my-zsh framework
ZSH="~/.config/zsh/oh-my-zsh" sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
- Download the oh-my-zsh plugins listed in the .zshrc file
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.config/zsh/oh-my-zsh/custom}/plugins/zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-history-substring-search ${ZSH_CUSTOM:-~/.config/zsh/oh-my-zsh/custom}/plugins/zsh-history-substring-search
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.config/zsh/oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
- Download fzf for better history reverse search
sudo dnf install fzf
By default, since we change where we store the history file we have to actually create the directory, and for good measure the file, otherwise every time we start zsh the history will be empty.
mkdir $XDG_STATE_HOME/zsh
touch $XDG_STATE_HOME/zsh/history
- Set up Brave browser
sudo dnf install dnf-plugins-core
sudo dnf config-manager --add-repo https://brave-browser-rpm-release.s3.brave.com/x86_64/
sudo rpm --import https://brave-browser-rpm-release.s3.brave.com/brave-core.asc
sudo dnf install brave-browser
- Configure Bitwarden with strict configs
- Download the xdg-ninja script
- Set up sync with mega-sync
wget https://mega.nz/linux/repo/Fedora_36/x86_64/megasync-Fedora_36.x86_64.rpm
sudo dnf install megasync-Fedora_36.x86_64.rpm
rm megasync-Fedora_36.x86_64.rpm -f
- Grab gnome-shell-extension-dash-to-dock through dnf
sudo dnf install gnome-shell-extension-dash-to-dock.noarch
- Grab gnome-shell-extension-appindicator through dnf
sudo dnf install gnome-shell-extension-appindicator.noarch
- Grab both the GNOME extensions and GNOME tweaks through GNOME software
- Open GNOME extensions and use it to enable both app indicator and dash to dock
- Make sure to use magic autohide and system theme on dash to dock so that it doesn't look awful
- Use GNOME tweaks to set the mouse acceleration profile to flat.
- Use GNOME tweaks to add megasync to startup applications
- Use GNOME tweaks to center new windows
- Optionally also set mouse right click to maximize windows horizontally (doesn't work with everything well)
- Use it to grab blur-my-shell
- Set up blur-my-shell to stop conflicting with dash to dock
- The Pop! shell is pretty good if you want to keep the look and feel of your GNOME desktop but also have the abillity to tile windows. To grab it do this:
sudo dnf install gnome-shell-extension-pop-shell
- Enable it in GNOME extensions and tweak to your liking
- Click in the app indicator in the top right and enable tilling
- Set windows spacing to 2 and disable the focus highlight
- Limit Linux kernel installations to 2 to reduce space usage:
sudoedit /etc/dnf/dnf.conf
installonly_limit=2
- I have really like the Numix Icons Circle theme recently and have been using it as a substitute to the Adwaita icon theme because I believe it's more consistent. The reason I choose it over Talo is because it's available through the repos
sudo dnf install numix-icon-theme
- Enable it through GNOME tweaks
These are all the things I want to eventually do but didn't have the time for yet or may be hard
- Have XDG environment variables for all programs commonly used
- Fix the mess from the installation of rust cargo, NVM, and other curl | sh installed applications (almost done)
- Have a one-liner script that does it all, or almost all
- Have a graphical user interface that allows the system setup fast and easy, similar to Chris Titus's script for Windows
- systemd-resolved DNS setup for ad blocking and better privacy using NextDNS, or similar
- /etc/hosts/ setup for ad blocking and better privacy (if I find a block list that works 99.99% of the time)
- Guide for setting up the libadwaita for GTK theme to improve system cohesion