8.2 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)
- pip
- go packages
- packages from source/binaries
- setting up flatpak
- 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
cd ~/.dots/home/ && stow 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
pip
keepmenu (dmenu keepassxc client)
https://github.com/firecat53/keepmenu/blob/main/docs/install.md#install-recommended
pip install --user keepmenu
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
flatpak packages
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
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
this happens on my machine. changing kernel to improves this issue, but it does still happen infrequently. may have to do with gpu drivers.
sudo dnf install 'dnf-command(versionlock)'
# create a temporary directory
mkdir /tmp/kernel && cd /tmp/kernel
# get packages
wget https://kojipkgs.fedoraproject.org/packages/kernel/6.0.14/300.fc37/x86_64/kernel-6.0.14-300.fc37.x86_64.rpm https://kojipkgs.fedoraproject.org/packages/kernel/6.0.14/300.fc37/x86_64/kernel-core-6.0.14-300.fc37.x86_64.rpm https://kojipkgs.fedoraproject.org/packages/kernel/6.0.14/300.fc37/x86_64/kernel-devel-6.0.14-300.fc37.x86_64.rpm https://kojipkgs.fedoraproject.org/packages/kernel/6.0.14/300.fc37/x86_64/kernel-modules-6.0.14-300.fc37.x86_64.rpm
# install them
sudo dnf install *.rpm
# lock them in their versions
sudo dnf versionlock add kernel-0:6.0.14-300.fc37 kernel-core-0:6.0.14-300.fc37 kernel-devel-0:6.0.14-300.fc37 kernel-modules-0:6.0.14-300.fc37
using sway 1.7 alongside the kernel seems to fix this (will update later if it works)
wget https://kojipkgs.fedoraproject.org/packages/sway/1.7/2.fc37/x86_64/sway-1.7-2.fc37.x86_64.rpm
# sway-config-upstream doesn't exist for sway 1.7-2
sudo dnf install sway-1.7-2.fc37.x86_64.rpm --allowerasing
sudo dnf versionlock sway-1.7-2.fc37
todos
add packages
TODO add simple-mtpfs
dnf package unmaintained
TODO add syncplay
the copr repository batmanfeynman/syncplay is unmaintained