8.7 KiB
Instructions
- make new user and add to wheel
- prerequisites
- get dotfiles
- rpmfusion
- installing dnf packages
- sudoers
- Make zsh the default shell for the user.
- librewolf (browser)
- doom emacs
- lf (file manager)
- interception tools (keyboard input mappings)
- sway notifications
- autotiling in sway
- sc-im (terminal spreadsheet)
- nsxiv (image viewer)
- pip
- go packages
- packages from source/binaries
- setting up flatpak
- setting up virtualbox
- flatpak packages
- installing cargo
- other
- todos
setting up the system and packages
make new user and add to wheel
# make a user and add to the wheel group
useradd -m -g wheel user_name
# set a password
passwd user_name
prerequisites
for building/installing packages, also some dependencies for doomemacs, and zsh.
sudo dnf install curl ca-certificates make automake gcc gcc-c++ kernel-devel git util-linux-user zsh ntpsec dnf-plugins-core golang flatpak cmake libevdev-devel systemd-devel yaml-cpp-devel boost-devel ripgrep fd-find ShellCheck tar pip npm
get dotfiles
# getting dotfiles
git clone https://gitea.bubbletea.dev/cho/dotfiles ~/.dots
cp -rv ~/.dots/home/default/.* ~/
# or using stow
# make sure you make directories you don't want as symlinks
mkdir -p ~/.local/share/applications
mkdir -p ~/.local/bin
mkdir -p ~/.config
mkdir -p ~/.config/shell
mkdir -p ~/.config/mpd
mkdir -p ~/.config/zsh
mkdir -p ~/.config/newsboat
cd ~/.dots/home/ && stow default --target=$HOME/
how to unstow dotfiles
cd ~/.dots/home/ && stow -D default --target=$HOME/
rpmfusion
from https://rpmfusion.org/Configuration and https://rpmfusion.org/Howto/Multimedia
# rpmfusion
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
# multimedia
sudo dnf swap ffmpeg-free ffmpeg --allowerasing
sudo dnf groupupdate multimedia --setop="install_weak_deps=False" --exclude=PackageKit-gstreamer-plugin
sudo dnf groupupdate sound-and-video
#amd
sudo dnf swap mesa-va-drivers mesa-va-drivers-freeworld
sudo dnf swap mesa-vdpau-drivers mesa-vdpau-drivers-freeworld
#dvd
sudo dnf install rpmfusion-free-release-tainted
sudo dnf install libdvdcss
# non-free firmware
sudo dnf install rpmfusion-nonfree-release-tainted
sudo dnf --repo=rpmfusion-nonfree-tainted install "*-firmware"
installing dnf packages
sudo dnf install -y $(cat ~/.dots/packages.txt)
sudoers
Allow wheel users to sudo with password and allow several system commands (like `shutdown` to run without password).
echo "%wheel ALL=(ALL:ALL) ALL" >/etc/sudoers.d/00-wheel-can-sudo
echo "%wheel ALL=(ALL:ALL) NOPASSWD: /usr/bin/shutdown,/usr/bin/reboot,/usr/bin/systemctl suspend,/usr/bin/wifi-menu,/usr/bin/mount,/usr/bin/umount,/usr/bin/dnf update,/usr/bin/dnf update -y,/usr/bin/loadkeys" >/etc/sudoers.d/01-cmds-without-password
echo "Defaults editor=/usr/bin/nvim" >/etc/sudoers.d/02-visudo-editor
Make zsh the default shell for the user.
chsh -s /bin/zsh "$name" >/dev/null 2>&1
sudo -u "$name" mkdir -p "/home/$name/.cache/zsh/"
sudo -u "$name" mkdir -p "/home/$name/.config/abook/"
sudo -u "$name" mkdir -p "/home/$name/.config/mpd/playlists/"
librewolf (browser)
from https://librewolf.net/installation/fedora/
sudo dnf config-manager --add-repo https://rpm.librewolf.net/librewolf-repo.repo
sudo dnf install librewolf
doom emacs
first we need marked for markdown support
sudo npm -g marked
git clone https://github.com/doomemacs/doomemacs ~/.emacs.d
~/.emacs.d/bin/doom install
lf (file manager)
this fork of lf allows for sixel graphics, which allows you to see images in terminals that supports sixel
from https://github.com/horriblename/lf#installation
env CGO_ENABLED=0 go install -ldflags="-s -w" github.com/horriblename/lf@latest
interception tools (keyboard input mappings)
change caps lock to escape (pressed) and mod (held down)
INSTALL FROM SOURCE
git clone https://gitlab.com/interception/linux/tools.git interception-tools
cd interception-tools
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build
cd build
sudo make install
git clone https://gitlab.com/interception/linux/plugins/dual-function-keys.git
cd dual-function-keys
make && sudo make install
it's a good idea to install these as well, if anything doesn't compile.
sudo dnf groupinstall "Development Tools" "Development Libraries"
installing the configuration
sudo cp -rv ~/.dots/etc/interception /etc/
sudo cp ~/.dots/etc/systemd/system/udevmon.service /etc/systemd/system/
# enable
sudo systemctl enable udevmon.service
sway notifications
dnf copr enable erikreider/SwayNotificationCenter
dnf install SwayNotificationCenter
autotiling in sway
pip install i3ipc
pip install autotiling==1.8
sc-im (terminal spreadsheet)
sudo dnf copr enable marcusmueller/sc-im
sudo dnf install sc-im
nsxiv (image viewer)
dnf copr enable mamg22/nsxiv
dnf install nsxiv
pip
keepmenu (dmenu keepassxc client)
https://github.com/firecat53/keepmenu/blob/main/docs/install.md#install-recommended
pip install --user keepmenu
pulsemixer (pulseaudio controller)
pip install --user pulsemixer
termdown (terminal timer/stopwatch)
pip install termdown
go packages
pup
needed for rssadd RSS scanning to work, it's optional if you don't really need it.
go install github.com/ericchiang/pup@latest
packages from source/binaries
mpvpaper
animated wallpapers (used by `change-background`)
# install dependencies
sudo dnf install meson ninja-build pkg-config wayland-protocols-devel wayland-devel mpv-devel wlroots-devel
# Clone
git clone --single-branch https://github.com/GhostNaN/mpvpaper
# Build
cd mpvpaper
meson build --prefix=/usr/local
ninja -C build
# Install
sudo ninja -C build install
7-zip
get the downloads from https://www.7-zip.org/download.html if you're using modern hardware, it's usually 64-bit linux x86-x64
# downloading and extracting the file
cd ~/Downloads/
curl -O <download-url>
mkdir 7-zip/
cd 7-zip/
tar -xvf ../<filename>.tar.xz
# put it into a PATH directory
sudo cp 7zz /usr/local/bin/
setting up flatpak
from https://flatpak.org/setup/Fedora
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
setting up virtualbox
sudo usermod -a -G vboxusers default
flatpak packages
Unity
flatpak install flathub com.unity.UnityHub
Foliate (Epub reader)
flatpak install com.github.johnfactotum.Foliate
bottles and dependencies
- gamescope
- mangohud
flatpak install -y com.valvesoftware.Steam.Utility.gamescope com.usebottles.bottles org.freedesktop.Platform.VulkanLayer.MangoHud
flatseal
flatpak install -y com.github.tchx84.Flatseal
steam
flatpak install -y com.valvesoftware.Steam
rpsc3
sudo flatpak install -y net.rpcs3.RPCS3
limits.conf settings https://github.com/RPCS3/rpcs3/issues/9328
sudo su
printf '* hard memlock unlimited\n* soft memlock unlimited' >> /etc/security/limits.conf
cemu
flatpak install flathub info.cemu.Cemu
discord
flatpak install flathub com.discordapp.Discord
spotify
flatpak install flathub io.github.hrkfdn.ncspot
flatpak install flathub com.spotify.Client
installing cargo
https://doc.rust-lang.org/cargo/getting-started/installation.html
curl https://sh.rustup.rs -sSf | sh
# choose to customize installation, and choose `no` when it asks to modify PATH variable.
other
crashes with wayland under amd gpus
see https://bbs.archlinux.org/viewtopic.php?id=270468 https://forum.manjaro.org/t/graphics-glitches-freeze-up-with-new-comp-error-ring-gfx-timeout/55979/6
sudo cp ~/.dots/usr/local/bin/radcard* /usr/local/bin/
sudo cp ~/.dots/etc/systemd/system/radcard.service /etc/systemd/system/
sudo systemctl enable --now radcard.service
you can check the status with `radcard.sh get` , make sure the output is as follows:
power_dpm_state: performance
power_dpm_force_performance_level: high
todos
add packages
TODO add simple-mtpfs
dnf package unmaintained
TODO add syncplay
the copr repository batmanfeynman/syncplay is unmaintained