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

View File

@ -92,7 +92,7 @@ your computer.
:END: :END:
The first thing I will do is add the [[https://aur.chaotic.cx/][Chaotic AUR]] repository so I can 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 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 #+BEGIN_SRC sh
sudo pacman-key --recv-key 3056513887B78AEB --keyserver keyserver.ubuntu.com sudo pacman-key --recv-key 3056513887B78AEB --keyserver keyserver.ubuntu.com
sudo pacman-key --lsign-key 3056513887B78AEB sudo pacman-key --lsign-key 3056513887B78AEB
@ -241,54 +241,283 @@ end
:PROPERTIES: :PROPERTIES:
:CUSTOM_ID: Execute_bootstrap-Install_basic_packages-17173316 :CUSTOM_ID: Execute_bootstrap-Install_basic_packages-17173316
:END: :END:
Lets set in a custom varible what packages well be needing. Ok, lets list all the packages that I need. First, lets begin with
#+BEGIN_SRC fish system packages.
set PACKAGES \ #+name: packages-system
acpi acpilight adobe-source-han-sans-jp-fonts arc-gtk-theme asar ascii \ | Package name | Why I need it |
aspell-en aspell-fr awesome awesome-terminal-fonts \ |------------------------+---------------------------------------------------------------------|
awesome-freedesktop-git base-devel bashtop bat biber bitwarden-bin \ | acpi | Battery, power, and thermal readings |
bluez-firmware bluez-utils bzip2 chicken chromium clisp corrupter-git \ | acpilight | To modify the monitors brightness |
cppcheck cppreference cppreference-devhelp cpupower discord-canary \ | bluez-firmware | Firmware for my bluetooth device |
discount docker docker-compose dockerfile-language-server-bin doxygen \ | bluez-utils | To interact with bluez through custom tools |
emacs emacs-org-mode exa exfat-utils farbfeld fd ffmpegthumbnailer \ | bzip2 | A compression algorithm and program |
findutils firefox flake8 flat-remix-gtk freeglut fzf gcc-libs gdb gimp \ | cpupower | Tool to examine and tune power saving related features of the CPU |
gnome-disk-utility gnome-epub-thumbnailer gnu-free-fonts gnuplot go \ | exfat-utils | Utilities for exFAT filesystems |
go-tools golangci-lint-bin graphviz htop hugo i3lock-color inetutils \ | ffmpegthumbnailer | Create thumbnails with ffmpeg |
isync inter-font javascript-typescript-langserver js-beautify jfsutils \ | freeglut | A small OpenGL library |
jmtpfs kitty lain-git libxft-bgra linux-headers lldb logrotate meson \ | gcc-libs | Runtime libraries for GCC |
minted man-db man-pages mpc mpd mpv mupdf-tools nano ncdu ncmpcpp \ | gdb | The GCC debugger |
nemo-fileroller nemo-preview neofetch netctl network-manager-applet \ | gnome-disk-utility | To manage easily my disks and partitions |
networkmanager networkmanager-openvpn nm-connection-editor nodejs-vmd \ | gnome-epub-thumbnailer | Thumbnailer for Epub files |
nomacs nordic-theme-git nordvpn-bin noto-fonts-emoji npm ntfs-3g \ | i3lock-color | My screen locker |
numlockx obs-studio openssh otf-fandol otf-ipafont p7zip \ | corrupter-git | A script for my script using also i3lock-color |
pacman-contrib pandoc-bin pass pavucontrol pdfpc picom \ | inetutils | Common network programs |
powerline-fonts prettier pulseaudio-bluetooth python-autoflake \ | jfsutils | JFS utilities to interact with Android |
python-epc python-importmagic python-language-server python-nose \ | jmtpfs | FUSE filesystem for the MTP protocol |
python-pip python-poetry python-ptvsd python-pytest qt5-imageformats \ | kitty | My current terminal emulator, works with Xorg and Wayland |
qemu r raw-thumbnailer reflector ripgrep rofi rsync rtv \ | logrotate | Rotate system logs automatically |
ruby-rb-fsevent ruby-sass rustup samba scrot sent shadow siji-git \ | man-pages | Linux man pages |
simplescreenrecorder sshfs sxiv texlive-bibtexextra texlive-fontsextra \ | man-db | Read the Linux man pages |
texlive-formatsextra texlive-humanities texlive-langjapanese \ | netctl | Profile based systemd network management |
texlive-pictures texlive-pstricks texlive-publishers texlive-science \ | network-manager-applet | System tray applet for NetworkManager |
tldr tmux tree ttf-arphic-uming ttf-baekmuk ttf-charis-sil ttf-dejavu \ | networkmanager-openvpn | Connect to OpenVPN servers with NetworkManager |
ttf-google-fonts-opinionated-git ttf-hanazono ttf-joypixels ttf-koruri \ | nm-connection-editor | Manager NetworkManager connections |
ttf-liberation ttf-monapo ttf-sazanami ttf-tibetan-machine typescript \ | ntfs-3g | Utilities to access NTFS filesystems |
typescript-language-server-bin unicode-emoji unrar usbutils valgrind \ | openssh | SSH. Do I need to say anything more than that? |
vscode-css-languageserver-bin vscode-html-languageserver-bin w3m wget \ | pavucontrol | Graphical interface to PulseAudio settings |
x11-ssh-askpass xclip xdg-user-dirs-gtk xfce-polkit xidlehook xfsprogs \ | pulseaudio-bluetooth | Bluetooth support for PulseAudio |
xorg-drivers xorg-server xorg-xinit xss-lock xvkbd xwallpaper \ | raw-thumbnailer | thumbnailer for RAW images |
yaml-language-server-bin zeal | reflector | Sort pacman mirrors |
#+END_SRC | 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 For development purposes, I need the following packages:
however you want. Lets install those. #+name: packages-devel
#+BEGIN_SRC fish | Package name | Why I need it |
printf "\n# Installing needed packages ##################################################\n\n" |----------------------------------+-----------------------------------------------------------|
sudo pacman -Syu | asar | Package needed by some Electron programs |
for pkg in $PACKAGES | 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 paru -S --skipreview --needed $pkg
end 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 ** Tangle configuration files from Org files
:PROPERTIES: :PROPERTIES: