add instructions.org and packages.txt

This commit is contained in:
cho 2023-06-29 22:26:03 +07:00
parent 0e1adcd65d
commit db21668969
2 changed files with 410 additions and 0 deletions

292
instructions.org Normal file
View File

@ -0,0 +1,292 @@
#+title: Instructions
setting up the system and packages
** make new user and add to wheel
#+BEGIN_SRC sh
# make a user and add to the wheel group
useradd -m -g wheel user_name
# set a password
passwd user_name
#+END_SRC
** prerequisites
for building/installing packages, also some dependencies for doomemacs, and zsh.
#+BEGIN_SRC sh
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
#+END_SRC
** get dotfiles
#+BEGIN_SRC sh
# 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/
#+END_SRC
** rpmfusion
from https://rpmfusion.org/Configuration and https://rpmfusion.org/Howto/Multimedia
#+BEGIN_SRC sh
# 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"
#+END_SRC
** installing dnf packages
#+BEGIN_SRC sh
sudo dnf install -y $(cat ~/.dots/packages.txt)
#+END_SRC
** sudoers
Allow wheel users to sudo with password and allow several system commands
(like `shutdown` to run without password).
#+BEGIN_SRC shell
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
#+END_SRC
** Make zsh the default shell for the user.
#+BEGIN_SRC shell
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/"
#+END_SRC
** librewolf (browser)
from https://librewolf.net/installation/fedora/
#+BEGIN_SRC sh
sudo dnf config-manager --add-repo https://rpm.librewolf.net/librewolf-repo.repo
sudo dnf install librewolf
#+END_SRC
** doom emacs
first we need marked for markdown support
#+BEGIN_SRC sh
sudo npm -g marked
#+END_SRC
#+BEGIN_SRC sh
git clone https://github.com/doomemacs/doomemacs ~/.emacs.d
~/.emacs.d/bin/doom install
#+END_SRC
** 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
#+BEGIN_SRC sh
env CGO_ENABLED=0 go install -ldflags="-s -w" github.com/horriblename/lf@latest
#+END_SRC
** interception tools (keyboard input mappings)
change caps lock to escape (pressed) and mod (held down)
INSTALL FROM SOURCE
#+BEGIN_SRC sh
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
#+END_SRC
#+BEGIN_SRC sh
git clone https://gitlab.com/interception/linux/plugins/dual-function-keys.git
cd dual-function-keys
make && sudo make install
#+END_SRC
it's a good idea to install these as well, if anything doesn't compile.
#+BEGIN_SRC sh
sudo dnf groupinstall "Development Tools" "Development Libraries"
#+END_SRC
*** installing the configuration
#+BEGIN_SRC sh
sudo cp -rv ~/.dots/etc/interception /etc/
sudo cp ~/.dots/etc/systemd/system/udevmon.service /etc/systemd/system/
# enable
sudo systemctl enable udevmon.service
#+END_SRC
** sway notifications
#+BEGIN_SRC sh
dnf copr enable erikreider/SwayNotificationCenter
dnf install SwayNotificationCenter
#+END_SRC
** autotiling in sway
#+BEGIN_SRC sh
pip install i3ipc
pip install autotiling==1.8
#+END_SRC
** sc-im (terminal spreadsheet)
#+BEGIN_SRC sh
sudo dnf copr enable marcusmueller/sc-im
sudo dnf install sc-im
#+END_SRC
** pip
*** keepmenu (dmenu keepassxc client)
https://github.com/firecat53/keepmenu/blob/main/docs/install.md#install-recommended
#+BEGIN_SRC sh
pip install --user keepmenu
#+END_SRC
** go packages
*** pup
needed for rssadd RSS scanning to work, it's optional if you don't really need it.
#+BEGIN_SRC sh
go install github.com/ericchiang/pup@latest
#+END_SRC
** packages from source/binaries
*** mpvpaper
animated wallpapers (used by `change-background`)
#+BEGIN_SRC sh
# 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
#+END_SRC
*** 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
#+BEGIN_SRC sh
# 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/
#+END_SRC
#+RESULTS:
** setting up flatpak
from https://flatpak.org/setup/Fedora
#+BEGIN_SRC sh
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
#+END_SRC
** flatpak packages
*** bottles and dependencies
- gamescope
- mangohud
#+BEGIN_SRC sh
flatpak install -y com.valvesoftware.Steam.Utility.gamescope com.usebottles.bottles org.freedesktop.Platform.VulkanLayer.MangoHud
#+END_SRC
*** flatseal
#+BEGIN_SRC sh
flatpak install -y com.github.tchx84.Flatseal
#+END_SRC
*** steam
#+BEGIN_SRC sh
flatpak install -y com.valvesoftware.Steam
#+END_SRC
** installing cargo
https://doc.rust-lang.org/cargo/getting-started/installation.html
#+BEGIN_SRC shell
curl https://sh.rustup.rs -sSf | sh
# choose to customize installation, and choose `no` when it asks to modify PATH variable.
#+END_SRC
** 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.
#+BEGIN_SRC sh
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
#+END_SRC
* todos
** add packages
*** TODO add simple-mtpfs
dnf package unmaintained
*** TODO add syncplay
the copr repository batmanfeynman/syncplay is unmaintained

118
packages.txt Normal file
View File

@ -0,0 +1,118 @@
pip
curl
ca-certificates
nss
nss-pem
make
automake
gcc
gcc-c++
kernel-devel
git
zsh
ntpsec
dnf-plugins-core
golang
flatpak
cmake
libevdev-devel
systemd-devel
yaml-cpp-devel
boost-devel
ripgrep
fd-find
ShellCheck
tar
pip
polkit
fontawesome-fonts
chafa
bc
dosfstools
libnotify
exfatprogs
swaybg
ffmpeg
ffmpegthumbnailer
mcomix3-thumbnailer
gnome-kra-ora-thumbnailer
gnome-epub-thumbnailer
webp-pixbuf-loader
gnome-keyring
wl-clipboard
neovim
mpd
mpc
mpv
man-db
ncmpcpp
newsboat
google-noto-fonts-common
google-noto-emoji-fonts
fcitx5
fcitx5-mozc
ntfs-3g
wireplumber
pipewire-pulseaudio
abook
unzip
lynx
zathura-plugins-all
krita
poppler
mediainfo
atool
fzf
bat
brightnessctl
task-spooler
htop
waybar
dmenu
sway
swaylock
swaybg
swayidle
socat
moreutils
neomutt
isync
msmtp
pass
keepassxc
NetworkManager-tui
wtype
fortune-mod
cowsay
perl-File-MimeInfo
syncthing
deluge
obs-studio
grimshot
mumble
dino
gammastep
sqlite3
gnome-themes-extra
adwaita-qt5
adwaita-qt6
ImageMagick
alerque-libertinus-fonts
godot
terminus-fonts
terminus-fonts-console
pcmanfm
materia-gtk-theme
papirus-icon-theme
GraphicsMagick
microcode_ctl
wget
neofetch
elinks
dnf-utils
steam-devices
thunderbird
thunderbird-wayland
hugo
torbrowser-launcher
stow