Skip to content

Instantly share code, notes, and snippets.

@yozachar
Last active June 3, 2024 10:17
Show Gist options
  • Save yozachar/bb9a954f957239a76a8f57b9615d3427 to your computer and use it in GitHub Desktop.
Save yozachar/bb9a954f957239a76a8f57b9615d3427 to your computer and use it in GitHub Desktop.
Reproducible OS Installation?
sudo zypper rm --clean-deps gnome-chess gnome-mahjongg gnome-mines gnome-packagekit gnome-remote-desktop gnome-sudoku gnome-weather gnome-contacts gnome-extensions gnome-maps gnome-music gnome-photos gnome-video-effects gnome-calculator gnome-clocks gnome-console gnome-text-editor cheese eog evolution polari quadrapassel iagno swell-foop lightsoff simple-scan vinagre
sudo zypper rm --clean-deps tigervnc transmission-gtk xscreensaver libreoffice gimp MozillaFirefox xterm
sudo zypper in --no-recommends ffmpeg gstreamer-plugins-{good,bad,ugly,libav} libavcodec typelib-1_0-GTop-2_0 flac wavpack lame a52dec libmpcdec speex jasper dav1d rav1e libdv schroedinger libtheora libmad0 SVT-AV1
sudo zypper in --no-recommends btrfs-progs dosfstools exfatprogs f2fs-tools e2fsprogs jfsutils nilfs-utils ntfs-3g udftools xfsprogs ecryptfs-utils erofs-utils glusterfs kubo android-tools git-core
sudo zypper in --no-recommends tumbler webp-pixbuf-loader ffmpegthumbnailer freetype2 libgsf raw-thumbnailer totem gnome-epub-thumbnailer
#!/bin/bash
BIN_VERSION=0.17.5
wget https://github.com/marcosnils/bin/releases/download/v${BIN_VERSION}/bin_${BIN_VERSION}_linux_amd64
chmod u+x ./bin_${BIN_VERSION}_linux_amd64
./bin_${BIN_VERSION}_linux_amd64 i github.com/marcosnils/bin ~/.local/bin/bin
chmod u+x ~/.local/bin/bin
rm ./bin_${BIN_VERSION}_linux_amd64
bin i github.com/sharkdp/bat
bin i github.com/ClementTsang/bottom
bin i github.com/dandavison/delta
bin i github.com/muesli/duf
bin i github.com/eza-community/eza
bin i github.com/fastfetch-cli/fastfetch
bin i github.com/1player/host-spawn
bin i github.com/zyedidia/micro
bin i github.com/jdx/mise
bin i github.com/starship/starship
bin i github.com/oberblastmeister/trashy

Dev tools

$ bin

Path                            Version     URL                                                                                  Status
~/.local/bin/bat         v0.24.0     github.com/sharkdp/bat                                                               OK
~/.local/bin/bin         v0.17.5     github.com/marcosnils/bin                                                            OK
~/.local/bin/btm         0.9.6       github.com/ClementTsang/bottom                                                       OK
~/.local/bin/delta       0.17.0      github.com/dandavison/delta                                                          OK
~/.local/bin/duf         v0.8.1      github.com/muesli/duf                                                                OK
~/.local/bin/eza         v0.18.16    github.com/eza-community/eza                                                         OK
~/.local/bin/fastfetch   2.13.1      github.com/fastfetch-cli/fastfetch                                                   OK
~/.local/bin/host-spawn  v1.6.0      github.com/1player/host-spawn                                                        OK
~/.local/bin/micro       v2.0.13     github.com/zyedidia/micro                                                            OK
~/.local/bin/mise        v2024.5.21  github.com/jdx/mise                                                                  OK
~/.local/bin/starship    v1.19.0     github.com/starship/starship                                                         OK
~/.local/bin/trash       v2.0.0      github.com/oberblastmeister/trashy                                                   OK
~/.local/bin/uad         v1.0.3      github.com/Universal-Debloater-Alliance/universal-android-debloater-next-generation  OK


$ mise ls
Plugin  Version     Config Source              Requested 
gradle  8.7                                              
java    openjdk-17  ~/.config/mise/config.toml openjdk-17
kotlin  1.9.22                                           
pipx    1.5.0       ~/.config/mise/config.toml latest    
python  3.12.3      ~/.config/mise/config.toml latest 

$ pipx list
venvs are in ~/.local/share/pipx/venvs
apps are exposed on your $PATH at ~/.local/bin
manual pages are exposed at ~/.local/share/man
   package pdm 2.15.1, installed using Python 3.11.9
    - pdm
   package twine 5.1.0, installed using Python 3.12.3
    - twine

$ cat ~/.ssh/config 
Host gh
    HostName github.com
    IdentityFile ~/.ssh/path/to/privatekey
    User git

Host gl
    HostName gitlab.com
    IdentityFile ~/.ssh/path/to/privatekey
    User git

Host aur
    HostName aur.archlinux.org
    IdentityFile ~/.ssh/path/to/privatekey
    User aur

Flutter

dependencies

$ sudo pacman -S clang --needed
$ # Go to: https://developer.android.com/studio#android-studio-downloads
$ export ANDROID_HOME="$HOME/.local/share/android/sdk"
$ mkdir -p $ANDROID_HOME/cmdline-tools/latest
$ curl -o commandlinetools-latest.zip https://dl.google.com/android/repository/commandlinetools-linux-10406996_latest.zip
$ unzip commandlinetools-latest.zip
$ mv cmdline-tools/* $ANDROID_HOME/cmdline-tools/latest/
$ rmdir cmdline-tools
$ rm commandlinetools-latest.zip

~/.shell_rc

export __ANDROID__="$HOME/.local/share/android"
export ANDROID_HOME="$__ANDROID__/sdk"
export ANDROID_NDK_HOME="$__ANDROID__/ndk"

export CHROME_EXECUTABLE='brave'

append_path() {
    if [ -z "$1" ]; then
        return
    fi
    case ":$PATH:" in
    *:"$1":*) ;;
    *)
        export PATH="${PATH:+$PATH:}$1"
        ;;
    esac
}
append_path "$ANDROID_HOME/platform-tools"
append_path "$ANDROID_HOME/cmdline-tools/latest/bin"

~/ProjectFolder/

$ cat .mise.toml                                    
[tools]
flutter = "latest"
cmake = "latest"
kotlin = "latest"
java = "openjdk-18"
$ mise i
$ sdkmanager "platform-tools" "platforms;android-34" "build-tools;34.0.0"
$ flutter config --android-sdk $ANDROID_HOME
$ flutter doctor --android-licenses # accept all licenses
$ flutter doctor -v

ArchLinux

After install

Chaotic AUR Setup

$ sudo pacman-key --recv-key 3056513887B78AEB --keyserver keyserver.ubuntu.com
$ sudo pacman-key --lsign-key 3056513887B78AEB
$ sudo pacman -U 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-keyring.pkg.tar.zst'
$ pacman -U 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-mirrorlist.pkg.tar.zst'
$ micro /etc/pacman.conf
[chaotic-aur]
Include = /etc/pacman.d/chaotic-mirrorlist

Tools

$ sudo pacman -S --needed jq fd zsh git bat eza duf dust micro broot bottom ripgrep chezmoi lesspipe tealdeer fastfetch starship usbutils git-delta wl-clipboard alsa-utils

Audio

$ sudo pacman -S --needed alsa-utils alsa-plugins sof-firmware alsa-firmware

Codecs

$ sudo pacman -S --needed flac wavpack lame a52dec libdca libmad libmpcdec opencore-amr opus speex libvorbis faac faad2 libfdk-aac jasper libwebp libavif libheif libjxl aom dav1d rav1e svt-av1 libde265 libdv libmpeg2 schroedinger libtheora libvpx x264 x265 xvidcore

Hardware Acceleration (AMD)

$ sudo pacman -S --needed gst-libav gst-plugins-bad gst-plugins-base gst-plugins-good gst-plugins-ugly gst-plugin-pipewire gstreamer-vaapi
$ sudo pacman -S --needed libva-mesa-driver radeontop libva-utils vulkan-radeon amdvlk vulkan-swrast vulkan-mesa-layers vulkan-tools
  • obs-studio-amf

Networking

File sharing - NFS (needs work)

$ sudo pacman -S --needed nfs-utils
$ sudo mkdir -p /srv/nfs/Public
$ sudo mount --bind $HOME/Public /srv/nfs/Public
$ micro /etc/fstab
# nfs
/home/USERNAME/Public /srv/nfs/Public  none   bind   0   0
$ micro /etc/exports
/srv/nfs/Public     *(rw,sync,crossmnt,fsid=0)
$ sudo exportfs -arv
$ sudo exportfs -v
$  systemctl enable --now nfsv4-server.service nfs-client.target avahi-daemon.service

File sharing - Samba

...

Services

locate (indexing)

$ sudo pacman -S --needed plocate
$ systemctl enable --now plocate-updatedb.timer
sudo updatedb

Printing

$ sudo pacman -S --needed cups cups-pdf ghostscript gsfonts foomatic-db-engine foomatic-db foomatic-db-ppds foomatic-db-nonfree foomatic-db-nonfree-ppds gutenprint foomatic-db-gutenprint-ppds ipp-usb
$ systemctl enable --now cups.socket ipp-usb.service
$ sudo micro /etc/polkit-1/rules.d/49-allow-passwordless-printer-admin.rules
polkit.addRule(function(action, subject) { 
    if (action.id == "org.opensuse.cupspkhelper.mechanism.all-edit" && 
        subject.isInGroup("wheel")){ 
        return polkit.Result.YES; 
    } 
});

Scanning

$ sudo pacman -S --needed sane sane-airscan

File Systems

$ sudo pacman -S --needed btrfs-progs dosfstools exfatprogs f2fs-tools e2fsprogs hfsprogs jfsutils nilfs-utils ntfs-3g reiserfsprogs udftools xfsprogs ecryptfs-utils erofs-utils squashfs-tools glusterfs kubo minio moosefs

Fonts

$ sudo pacman -S --needed adobe-source-sans-fonts gentium-plus-font gnu-free-fonts gsfonts inter-font libertinus-font libertinus-font noto-fonts noto-fonts-cjk noto-fonts-emoji otf-crimson otf-latin-modern otf-latinmodern-math terminus-font tex-gyre-fonts tex-gyre-fonts ttf-anonymous-pro ttf-arphic-uming ttf-bitstream-vera ttf-cascadia-code ttf-croscore ttf-croscore ttf-dejavu ttf-droid ttf-fira-sans ttf-firacode-nerd ttf-ibm-plex ttf-joypixels ttf-junicode ttf-liberation ttf-mac-fonts ttf-malayalam-fonts-meta ttf-ms-fonts ttf-opensans ttf-roboto ttf-symbola ttf-twemoji ttf-ubuntu-font-family

Open in raw more for more.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment