From db21668969b7ed92386bcbe6de68a0b8a55962ca Mon Sep 17 00:00:00 2001 From: cho Date: Thu, 29 Jun 2023 22:26:03 +0700 Subject: [PATCH] add instructions.org and packages.txt --- instructions.org | 292 +++++++++++++++++++++++++++++++++++++++++++++++ packages.txt | 118 +++++++++++++++++++ 2 files changed, 410 insertions(+) create mode 100644 instructions.org create mode 100644 packages.txt diff --git a/instructions.org b/instructions.org new file mode 100644 index 0000000..4cdc9c6 --- /dev/null +++ b/instructions.org @@ -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 +mkdir 7-zip/ +cd 7-zip/ +tar -xvf ../.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 diff --git a/packages.txt b/packages.txt new file mode 100644 index 0000000..b81e321 --- /dev/null +++ b/packages.txt @@ -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