[Bootstrap] Packages now held in tables

This commit is contained in:
Lucien Cartier-Tilet 2022-02-17 23:37:30 +01:00
parent fb86be08b7
commit 27c7bd52a5
Signed by: phundrak
GPG Key ID: BD7789E705CB8DCA
2 changed files with 455 additions and 84 deletions

View File

@ -59,45 +59,187 @@ if test $status -eq 0 -a ! "$SHELL" = '/usr/bin/fish'
chsh -s /usr/bin/fish
end
set PACKAGES \
acpi acpilight adobe-source-han-sans-jp-fonts arc-gtk-theme asar ascii \
aspell-en aspell-fr awesome awesome-terminal-fonts \
awesome-freedesktop-git base-devel bashtop bat biber bitwarden-bin \
bluez-firmware bluez-utils bzip2 chicken chromium clisp corrupter-git \
cppcheck cppreference cppreference-devhelp cpupower discord-canary \
discount docker docker-compose dockerfile-language-server-bin doxygen \
emacs emacs-org-mode exa exfat-utils farbfeld fd ffmpegthumbnailer \
findutils firefox flake8 flat-remix-gtk freeglut fzf gcc-libs gdb gimp \
gnome-disk-utility gnome-epub-thumbnailer gnu-free-fonts gnuplot go \
go-tools golangci-lint-bin graphviz htop hugo i3lock-color inetutils \
isync inter-font javascript-typescript-langserver js-beautify jfsutils \
jmtpfs kitty lain-git libxft-bgra linux-headers lldb logrotate meson \
minted man-db man-pages mpc mpd mpv mupdf-tools nano ncdu ncmpcpp \
nemo-fileroller nemo-preview neofetch netctl network-manager-applet \
networkmanager networkmanager-openvpn nm-connection-editor nodejs-vmd \
nomacs nordic-theme-git nordvpn-bin noto-fonts-emoji npm ntfs-3g \
numlockx obs-studio openssh otf-fandol otf-ipafont p7zip \
pacman-contrib pandoc-bin pass pavucontrol pdfpc picom \
powerline-fonts prettier pulseaudio-bluetooth python-autoflake \
python-epc python-importmagic python-language-server python-nose \
python-pip python-poetry python-ptvsd python-pytest qt5-imageformats \
qemu r raw-thumbnailer reflector ripgrep rofi rsync rtv \
ruby-rb-fsevent ruby-sass rustup samba scrot sent shadow siji-git \
simplescreenrecorder sshfs sxiv texlive-bibtexextra texlive-fontsextra \
texlive-formatsextra texlive-humanities texlive-langjapanese \
texlive-pictures texlive-pstricks texlive-publishers texlive-science \
tldr tmux tree ttf-arphic-uming ttf-baekmuk ttf-charis-sil ttf-dejavu \
ttf-google-fonts-opinionated-git ttf-hanazono ttf-joypixels ttf-koruri \
ttf-liberation ttf-monapo ttf-sazanami ttf-tibetan-machine typescript \
typescript-language-server-bin unicode-emoji unrar usbutils valgrind \
vscode-css-languageserver-bin vscode-html-languageserver-bin w3m wget \
x11-ssh-askpass xclip xdg-user-dirs-gtk xfce-polkit xidlehook xfsprogs \
xorg-drivers xorg-server xorg-xinit xss-lock xvkbd xwallpaper \
yaml-language-server-bin zeal
set SYSTEMPKG acpi \
acpilight \
bluez-firmware \
bluez-utils \
bzip2 \
cpupower \
exfat-utils \
ffmpegthumbnailer \
freeglut \
gcc-libs \
gdb \
gnome-disk-utility \
gnome-epub-thumbnailer \
i3lock-color \
corrupter-git \
inetutils \
jfsutils \
jmtpfs \
kitty \
logrotate \
man-pages \
man-db \
netctl \
network-manager-applet \
networkmanager-openvpn \
nm-connection-editor \
ntfs-3g \
openssh \
pavucontrol \
pulseaudio-bluetooth \
raw-thumbnailer \
reflector \
shadow \
sshfs \
usbutils \
xdg-user-dirs-gtk \
xfce-polkit \
xidlehook \
xfsprogs \
xorg-xinit \
xss-lock \
xwallpaper
printf "\n# Installing needed packages ##################################################\n\n"
sudo pacman -Syu
for pkg in $PACKAGES
printf "\n# Installing SYSTEMPKG ##################################################\n\n"
for pkg in $SYSTEMPKG
paru -S --skipreview --needed $pkg
end
set DEVELPKG asar \
base-devel \
clang \
cppcheck \
cppreference \
cppreference-devhelp \
docker \
docker-compose \
dockerfile-language-server-bin \
doxygen \
emacs \
farbfeld \
flake8 \
gnuplot \
go \
go-tools \
graphviz \
hugo \
javascript-typescript-langserver \
js-beautify \
libxft-bgra \
linux-headers \
lldb \
meson \
mupdf-tools \
nodejs-vmd \
npm \
pacman-contrib \
pandoc-bin \
prettier \
python-autoflake \
python-epc \
python-importmagic \
pyright \
python-nose \
python-pip \
python-poetry \
python-ptvsd \
python-pytest \
qemu \
r \
rustup \
sbcl \
typescript \
typescript-language-server-bin \
valgrind \
vscode-css-languageserver-bin \
vscode-html-languageserver-bin \
yaml-language-server-bin \
zeal
printf "\n# Installing DEVELPKG ##################################################\n\n"
for pkg in $DEVELPKG
paru -S --skipreview --needed $pkg
end
set LATEXPKG biber \
minted \
texlive-bibtexextra \
texlive-fontsextra \
texlive-formatsextra \
texlive-humanities \
texlive-langjapanese \
texlive-pictures \
texlive-pstricks \
texlive-publishers \
texlive-science
printf "\n# Installing LATEXPKG ##################################################\n\n"
for pkg in $LATEXPKG
paru -S --skipreview --needed $pkg
end
set TERMINALPKG ascii \
aspell-en \
aspell-fr \
bat \
bitwarden-cli \
bpytop \
exa \
fd \
findutils \
fzf \
htop \
isync \
mpc \
mpd \
mpv \
nano \
ncdu \
ncmpcpp \
neofetch \
nordvpn-bin \
numlockx \
p7zip \
pass \
pdfpc \
ripgrep \
rsync \
scrot \
tealdeer \
tmux \
tree \
unrar \
w3m \
wget \
x11-ssh-askpass \
xclip \
yt-dlp-drop-in
printf "\n# Installing TERMINALPKG ##################################################\n\n"
for pkg in $TERMINALPKG
paru -S --skipreview --needed $pkg
end
set APPSPKG bitwarden \
discord \
firefox \
gimp \
nemo \
nemo-fileroller \
nemo-preview \
obs-studio \
rofi \
sent \
sxiv
printf "\n# Installing APPSPKG ##################################################\n\n"
for pkg in $APPSPKG
paru -S --skipreview --needed $pkg
end

View File

@ -92,7 +92,7 @@ your computer.
:END:
The first thing I will do is add the [[https://aur.chaotic.cx/][Chaotic AUR]] repository so I can
get access to ~paru~ as well as some AUR packages without the need of an
AUR helper (ironic considering ~paru~ is one)..
AUR helper (ironic considering ~paru~ is one).
#+BEGIN_SRC sh
sudo pacman-key --recv-key 3056513887B78AEB --keyserver keyserver.ubuntu.com
sudo pacman-key --lsign-key 3056513887B78AEB
@ -241,54 +241,283 @@ end
:PROPERTIES:
:CUSTOM_ID: Execute_bootstrap-Install_basic_packages-17173316
:END:
Lets set in a custom varible what packages well be needing.
#+BEGIN_SRC fish
set PACKAGES \
acpi acpilight adobe-source-han-sans-jp-fonts arc-gtk-theme asar ascii \
aspell-en aspell-fr awesome awesome-terminal-fonts \
awesome-freedesktop-git base-devel bashtop bat biber bitwarden-bin \
bluez-firmware bluez-utils bzip2 chicken chromium clisp corrupter-git \
cppcheck cppreference cppreference-devhelp cpupower discord-canary \
discount docker docker-compose dockerfile-language-server-bin doxygen \
emacs emacs-org-mode exa exfat-utils farbfeld fd ffmpegthumbnailer \
findutils firefox flake8 flat-remix-gtk freeglut fzf gcc-libs gdb gimp \
gnome-disk-utility gnome-epub-thumbnailer gnu-free-fonts gnuplot go \
go-tools golangci-lint-bin graphviz htop hugo i3lock-color inetutils \
isync inter-font javascript-typescript-langserver js-beautify jfsutils \
jmtpfs kitty lain-git libxft-bgra linux-headers lldb logrotate meson \
minted man-db man-pages mpc mpd mpv mupdf-tools nano ncdu ncmpcpp \
nemo-fileroller nemo-preview neofetch netctl network-manager-applet \
networkmanager networkmanager-openvpn nm-connection-editor nodejs-vmd \
nomacs nordic-theme-git nordvpn-bin noto-fonts-emoji npm ntfs-3g \
numlockx obs-studio openssh otf-fandol otf-ipafont p7zip \
pacman-contrib pandoc-bin pass pavucontrol pdfpc picom \
powerline-fonts prettier pulseaudio-bluetooth python-autoflake \
python-epc python-importmagic python-language-server python-nose \
python-pip python-poetry python-ptvsd python-pytest qt5-imageformats \
qemu r raw-thumbnailer reflector ripgrep rofi rsync rtv \
ruby-rb-fsevent ruby-sass rustup samba scrot sent shadow siji-git \
simplescreenrecorder sshfs sxiv texlive-bibtexextra texlive-fontsextra \
texlive-formatsextra texlive-humanities texlive-langjapanese \
texlive-pictures texlive-pstricks texlive-publishers texlive-science \
tldr tmux tree ttf-arphic-uming ttf-baekmuk ttf-charis-sil ttf-dejavu \
ttf-google-fonts-opinionated-git ttf-hanazono ttf-joypixels ttf-koruri \
ttf-liberation ttf-monapo ttf-sazanami ttf-tibetan-machine typescript \
typescript-language-server-bin unicode-emoji unrar usbutils valgrind \
vscode-css-languageserver-bin vscode-html-languageserver-bin w3m wget \
x11-ssh-askpass xclip xdg-user-dirs-gtk xfce-polkit xidlehook xfsprogs \
xorg-drivers xorg-server xorg-xinit xss-lock xvkbd xwallpaper \
yaml-language-server-bin zeal
#+END_SRC
Ok, lets list all the packages that I need. First, lets begin with
system packages.
#+name: packages-system
| Package name | Why I need it |
|------------------------+---------------------------------------------------------------------|
| acpi | Battery, power, and thermal readings |
| acpilight | To modify the monitors brightness |
| bluez-firmware | Firmware for my bluetooth device |
| bluez-utils | To interact with bluez through custom tools |
| bzip2 | A compression algorithm and program |
| cpupower | Tool to examine and tune power saving related features of the CPU |
| exfat-utils | Utilities for exFAT filesystems |
| ffmpegthumbnailer | Create thumbnails with ffmpeg |
| freeglut | A small OpenGL library |
| gcc-libs | Runtime libraries for GCC |
| gdb | The GCC debugger |
| gnome-disk-utility | To manage easily my disks and partitions |
| gnome-epub-thumbnailer | Thumbnailer for Epub files |
| i3lock-color | My screen locker |
| corrupter-git | A script for my script using also i3lock-color |
| inetutils | Common network programs |
| jfsutils | JFS utilities to interact with Android |
| jmtpfs | FUSE filesystem for the MTP protocol |
| kitty | My current terminal emulator, works with Xorg and Wayland |
| logrotate | Rotate system logs automatically |
| man-pages | Linux man pages |
| man-db | Read the Linux man pages |
| netctl | Profile based systemd network management |
| network-manager-applet | System tray applet for NetworkManager |
| networkmanager-openvpn | Connect to OpenVPN servers with NetworkManager |
| nm-connection-editor | Manager NetworkManager connections |
| ntfs-3g | Utilities to access NTFS filesystems |
| openssh | SSH. Do I need to say anything more than that? |
| pavucontrol | Graphical interface to PulseAudio settings |
| pulseaudio-bluetooth | Bluetooth support for PulseAudio |
| raw-thumbnailer | thumbnailer for RAW images |
| reflector | Sort pacman mirrors |
| shadow | Password & account management tools supporting shadow files and PAM |
| sshfs | Mount remote filesystems through SSH |
| usbutils | USB utilities |
| xdg-user-dirs-gtk | Creates user dirs and asks to relocalize them |
| xfce-polkit | XFCEs policy kit |
| xidlehook | xautolock with extra features |
| xfsprogs | Access XFS filesystems |
| xorg-xinit | xorg init program |
| xss-lock | Use an external program as X lock screen |
| xwallpaper | Set my Xorg sessions wallpaper |
These are the minimum I would have in my own installation. You can edit it
however you want. Lets install those.
#+BEGIN_SRC fish
printf "\n# Installing needed packages ##################################################\n\n"
sudo pacman -Syu
for pkg in $PACKAGES
For development purposes, I need the following packages:
#+name: packages-devel
| Package name | Why I need it |
|----------------------------------+-----------------------------------------------------------|
| asar | Package needed by some Electron programs |
| base-devel | Metapackage providing lots of basic tools for development |
| clang | LLVMs C/C++ compiler |
| cppcheck | Static code analysis for C/C++ |
| cppreference | The cppreference wiki offline |
| cppreference-devhelp | Access cppreference through devhelp |
| docker | VMs are too heavy, get a better virtualization engine! |
| docker-compose | Docker from the CLI? I prefer through a Yaml file. |
| dockerfile-language-server-bin | Dockerfile LSP server |
| doxygen | A great tool for writing code documentation for C/C++ |
| emacs | The best +text editor+ OS, hands down |
| farbfeld | Lossless image format |
| flake8 | Code checker for python |
| gnuplot | An awesome plotting tool |
| go | The Go programming language |
| go-tools | Gos tooling |
| graphviz | Graph visualization |
| hugo | Static website generator |
| javascript-typescript-langserver | LSP server for Javascript |
| js-beautify | Formatter for Javascript |
| libxft-bgra | FreeType library with support for BGRA glyphs and scaling |
| linux-headers | Development with the Linux kernel |
| lldb | The LLVM debugger |
| meson | Meson build system |
| mupdf-tools | Tools for PDF and XPS viewers |
| nodejs-vmd | Markdown renderer and live previewer |
| npm | Javascript package manager |
| pacman-contrib | Create and install custom ArchLinux packages |
| pandoc-bin | Convert documents of various formats into other formats |
| prettier | Format various web files formats |
| python-autoflake | Remove unused imports and variables in Python |
| python-epc | EPC (RPC stack for Emacs Lisp) for Python |
| python-importmagic | Automatically manage imports in Python |
| pyright | Python LSP server |
| python-nose | A discovery-based test extension for Python |
| python-pip | The Python package manager |
| python-poetry | Python dependency management and packaging made easy |
| python-ptvsd | Python debugger |
| python-pytest | Python testing suite |
| qemu | Machine emulator and virtualizer |
| r | The R programming langugae |
| rustup | The Rust toolchain installer |
| sbcl | My favorite CommonLisp implementation |
| typescript | Better Javascript |
| typescript-language-server-bin | LSP server for Typescript |
| valgrind | Our lord and saviour when writing C code |
| vscode-css-languageserver-bin | LSP server for CSS |
| vscode-html-languageserver-bin | LSP server for HTML |
| yaml-language-server-bin | LSP server for Yaml |
| zeal | Offline documentation browser |
A couple of packages need to be installed to make LaTeX usable.
#+name: packages-latex
| Package name | Why I need it |
|----------------------+----------------------------------------------------------------------|
| biber | A BibTex replacement, for citations in papers |
| minted | Syntax highlight for LaTeX |
| texlive-bibtexextra | Additional BibTeX styles and bibliography databases |
| texlive-fontsextra | All sorts of extra fonts |
| texlive-formatsextra | Collection of extra TeX 'formats' |
| texlive-humanities | LaTeX packages for law, linguistics, social sciences, and humanities |
| texlive-langjapanese | Fonts and macro packages to typeset Japanese texts |
| texlive-pictures | Packages for drawings graphics |
| texlive-pstricks | Additional PSTricks packages |
| texlive-publishers | LaTeX classes and packages for specific publishers |
| texlive-science | Typesetting for mathematics, natural and computer sciences |
Some visual packages:
#+name: packages-font
| Package name | Why I need it |
|--------------------------------+-------------------------------------|
| adobe-source-han-sans-jp-fonts | Japanese fonts |
| gnu-free-fonts | The font I use in StumpWM |
| inter-font | Im not sure why I have these fonts |
| nordic-theme-git | Nord theme for GTK |
| noto-fonts-emoji | Font with emojis |
| otf-ipafont | Japanese font |
| picom | See [[file:picom.org]] |
| powerline-fonts | Powerline fonts |
| siji-git | Siji font |
| ttf-arphic-uming | CJK font Ming style |
| ttf-baekmuk | Korean font |
| ttf-charis-sil | API font |
| ttf-dejavu | DejaVu font |
| ttf-hanazono | Japanese kanji font |
| ttf-joypixels | Emoji font |
| ttf-koruri | Japanese Truetype font |
| ttf-liberation | Liberation font |
| ttf-monapo | Japanese font |
| ttf-sazanami | Japanese fonts |
| ttf-tibetan-machine | Tibetan font |
| unicode-emoji | Unicode emoji data files |
Terminal utilities
#+name: packages-terminal
| Package name | Why I need it |
|-----------------+-----------------------------------------------------------------|
| ascii | Work with ASCII |
| aspell-en | Aspells dictionary for English |
| aspell-fr | Aspells dictionary for French |
| bat | A better cat with syntax highlighting |
| bitwarden-cli | CLI application for my password manager |
| bpytop | A very beautiful htop alternative |
| exa | A great ~ls~ replacement |
| fd | ~find~, but better |
| findutils | ~find~ files on the system |
| fzf | Command-line fuzzy finder |
| htop | ~top~, but better |
| isync | Gives access to ~mbsync~ so I can check my mails |
| mpc | Dead simple MPD client |
| mpd | Music Player Daemon |
| mpv | The best video player in existance |
| nano | Simple text editor |
| ncdu | Graphical representation of disk usage |
| ncmpcpp | TUI for MPD |
| neofetch | System info in the terminal |
| nordvpn-bin | Connect to NordVPN on Linux |
| numlockx | Turn on the numpad in Xorg |
| p7zip | 7zip on Linux |
| pass | The standard UNIX password manager |
| pdfpc | PDF presentation tool in the console with multi-monitor support |
| ripgrep | ~grep~ but better |
| rsync | ~scp~ is dead, long live ~rsync~! |
| scrot | To take screenshots |
| tealdeer | ~tldr~ but faster, great cheatsheets in the terminal |
| tmux | Terminal multiplexer |
| tree | See files and directories as a tree |
| unrar | Support for rar file format |
| w3m | Terminal web browser |
| wget | Retrieve files from the web |
| x11-ssh-askpass | Passphrase dialog over SSH |
| xclip | Interact with the X11 clipboard |
| yt-dlp-drop-in | ~yt-dlp~ but it also replaces ~youtube-dl~ |
Lets install some desktop applications too, shall we?
#+name: packages-apps
| Package name | Why I need it |
|-----------------+---------------------------------------------------------|
| bitwarden | Desktop application for my password manager |
| discord | For messaging friends |
| firefox | Because I need a good browser |
| gimp | GIMP Is Mbetter than Photoshop |
| nemo | One of the best graphical file managers |
| nemo-fileroller | Add compression options to Nemo |
| nemo-preview | Quick file previewer for Nemo |
| obs-studio | Simply the best screen recording and streaming software |
| rofi | A beautiful ~dmenu~ replacement |
| sent | Dead simple presentation tool |
| sxiv | The best keyboard-driven image viewer (after Emacs) |
All these packages will be installed with the command ~paru -S
--skipreview --needed~ so it wont nag me about the PKGBUILD when I
want to install something from the AUR, and if something is already
installed it paru wont try to reinstall it.
#+name: gen-package-list
#+header: :wrap "src fish :exports none :tangle no"
#+header: :exports none
#+begin_src emacs-lisp :var packages=packages-apps[,0] varname="APPS"
(format "set %s %s"
varname
(mapconcat #'identity packages " \\\n"))
#+end_src
#+RESULTS[c695e04be22173bb49245f65a25c375d0ad865bf]: gen-package-list
#+begin_src fish :exports none :tangle no
set APPS bitwarden \
discord \
firefox \
gimp \
nemo \
nemo-fileroller \
nemo-preview \
obs-studio \
rofi \
sent \
sxiv
#+end_src
#+name: gen-package-install
#+header: :wrap "src fish :exports none :tangle no"
#+header: :exports none
#+begin_src emacs-lisp :var varname="APPS"
(concat
(format "%s %s %s"
"printf \"\\n# Installing"
varname
"##################################################\\n\\n\"")
"\n"
(format "for pkg in $%s\n paru -S --skipreview --needed $pkg\nend" varname))
#+end_src
#+RESULTS[8fc00f530b704dc6900087d5b91082e9fa1bb429]: gen-package-install
#+begin_src fish :exports none :tangle no
printf "\n# Installing APPS ##################################################\n\n"
for pkg in $APPS
paru -S --skipreview --needed $pkg
end
#+END_SRC
#+end_src
#+begin_src fish :noweb yes
<<gen-package-list(packages=packages-system[,0],varname="SYSTEMPKG")>>
<<gen-package-install(varname="SYSTEMPKG")>>
<<gen-package-list(packages=packages-devel[,0],varname="DEVELPKG")>>
<<gen-package-install(varname="DEVELPKG")>>
<<gen-package-list(packages=packages-latex[,0],varname="LATEXPKG")>>
<<gen-package-install(varname="LATEXPKG")>>
<<gen-package-list(packages=packages-terminal[,0],varname="TERMINALPKG")>>
<<gen-package-install(varname="TERMINALPKG")>>
<<gen-package-list(packages=packages-apps[,0],varname="APPSPKG")>>
<<gen-package-install(varname="APPSPKG")>>
#+end_src
** Tangle configuration files from Org files
:PROPERTIES: