dotfiles/instructions.org

8.7 KiB

Instructions

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)

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