From 9fa2147042c1f6585db1b52c14cc147412b6aeb5 Mon Sep 17 00:00:00 2001 From: Lucien Cartier-Tilet Date: Sat, 12 Feb 2022 12:27:13 +0100 Subject: [PATCH] [Bootstrap] Update bootstrap to current config Set default locale to en_DK to get sane defaults Update package list: - Remove mpd-rich-presence-discord-git - Replace picom-git by picom When installing packages, skip PKGBUILD review for AUR packages Update list of org files to be tangled, as well as their needed directories - Remove awesome.org - Add mpd.org - Add neofetch.org - Add stumpwm.org Remove commands related to Spacemacs Remove commands to symlink files in .etc in commit d1a639adaf Better configuration for nordvpn Symlink plock from its actual location. It is not guaranteed `which plock` can already return something. Remove installation of packages through pip Remove Chicken installation Update Fisher installation --- .config/yadm/bootstrap | 129 ++++++++++----------- org/config/bootstrap.org | 240 +++++++++++++++++---------------------- 2 files changed, 161 insertions(+), 208 deletions(-) diff --git a/.config/yadm/bootstrap b/.config/yadm/bootstrap index d466944..83fe526 100755 --- a/.config/yadm/bootstrap +++ b/.config/yadm/bootstrap @@ -24,7 +24,6 @@ end set mylocales "en_US.UTF-8 UTF-8" "fr_FR.UTF-8 UTF-8" "ja_JP.UTF-8 UTF-8" printf "\n# Set locale ##################################################################\n\n" - for item in $mylocales whiptail --yesno "Set the \"$item\" locale?" 8 40 if test $status -eq 0 -a (grep -e "#$item" /etc/locale.gen) @@ -32,16 +31,14 @@ for item in $mylocales end end -set localeconf "LANG=en_US.UTF-8 +set localeconf "LANG=en_DK.UTF-8 LC_COLLATE=C LC_NAME=fr_FR.UTF-8 -LC_NUMERIC=fr_FR.UTF-8 LC_IDENTIFICATION=fr_FR.UTF-8 LC_TELEPHONE=fr_FR.UTF-8 LC_MONETARY=fr_FR.UTF-8 LC_PAPER=fr_FR.UTF-8 LC_ADDRESS=fr_FR.UTF-8 -LC_TIME=fr_FR.UTF-8 LC_MEASUREMENT=fr_FR.UTF-8" whiptail --yesno "Do you agree to have the following locale set?\n\n $localeconf" 20 43 @@ -64,34 +61,36 @@ 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 mpd-rich-presence-discord-git 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-git \ -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 \ +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 @@ -99,12 +98,9 @@ yaml-language-server-bin zeal printf "\n# Installing needed packages ##################################################\n\n" sudo pacman -Syu for pkg in $PACKAGES - paru -S --needed $pkg + paru -S --skipreview --needed $pkg end -mkdir -p $HOME/.config/awesome -mkdir -p $HOME/.config/awesome/theme -mkdir -p $HOME/.config/emacs/private mkdir -p $HOME/.config/fish mkdir -p $HOME/.config/gtk-2.0 mkdir -p $HOME/.config/gtk-3.0 @@ -113,14 +109,10 @@ mkdir -p $HOME/.config/neofetch mkdir -p $HOME/.config/picom mkdir -p $HOME/.config/yadm mkdir -p $HOME/.local/bin +mkdir -p $HOME/.stumpwm.d mkdir -p $HOME/org/capture printf "\n# Tangling org files ##########################################################\n\n" -printf '\n\n==== Tangling awesome.org\n\n' && \ -emacs -q --batch --eval '(require \'ob-tangle)' \ ---eval '(setq org-confirm-babel-evaluate nil)' \ ---eval '(org-babel-tangle-file "~/org/config/awesome.org")' - printf '\n\n==== Tangling bin.org\n\n' && \ emacs -q --batch --eval '(require \'ob-tangle)' \ --eval '(setq org-confirm-babel-evaluate nil)' \ @@ -141,6 +133,16 @@ emacs -q --batch --eval '(require \'ob-tangle)' \ --eval '(setq org-confirm-babel-evaluate nil)' \ --eval '(org-babel-tangle-file "~/org/config/index.org")' +printf '\n\n==== Tangling mpd.org\n\n' && \ +emacs -q --batch --eval '(require \'ob-tangle)' \ +--eval '(setq org-confirm-babel-evaluate nil)' \ +--eval '(org-babel-tangle-file "~/org/config/mpd.org")' + +printf '\n\n==== Tangling neofetch.org\n\n' && \ +emacs -q --batch --eval '(require \'ob-tangle)' \ +--eval '(setq org-confirm-babel-evaluate nil)' \ +--eval '(org-babel-tangle-file "~/org/config/neofetch.org")' + printf '\n\n==== Tangling picom.org\n\n' && \ emacs -q --batch --eval '(require \'ob-tangle)' \ --eval '(setq org-confirm-babel-evaluate nil)' \ @@ -151,18 +153,16 @@ emacs -q --batch --eval '(require \'ob-tangle)' \ --eval '(setq org-confirm-babel-evaluate nil)' \ --eval '(org-babel-tangle-file "~/org/config/rustfmt.org")' +printf '\n\n==== Tangling stumpwm.org\n\n' && \ +emacs -q --batch --eval '(require \'ob-tangle)' \ +--eval '(setq org-confirm-babel-evaluate nil)' \ +--eval '(org-babel-tangle-file "~/org/config/stumpwm.org")' + printf '\n\n==== Tangling tmux.org\n\n' && \ emacs -q --batch --eval '(require \'ob-tangle)' \ --eval '(setq org-confirm-babel-evaluate nil)' \ --eval '(org-babel-tangle-file "~/org/config/tmux.org")' -printf "\n# Installing Spacemacs ########################################################\n\n" -rm -rf $HOME/.config/emacs $HOME/.emacs* .spacemacs - -git clone --branch develop https://github.com/syl20bnr/spacemacs ~/.config/emacs - -yadm checkout -- ~/.config/emacs/private/ - if test "$USER" = 'phundrak' printf "\n# Update yadm’s remotes #######################################################\n\n" @@ -209,12 +209,10 @@ sudo systemctl enable --now nordvpnd nordvpn s protocol tcp -for f in (find ~/.etc -type f) - set dest (echo $f | sed -n 's|^.*etc\(.*\)$|/etc\1|p') - sudo ln -s $f $dest -end +nordvpn set notify enabled +nordvpn set ipv6 enabled -sudo ln -s (which plock) /usr/bin/plock +sudo ln -s ~/.local/bin/plock /usr/bin/plock mkdir -p ~/fromGIT @@ -234,24 +232,13 @@ rustup component add rust-src rustup component add rls rustup component add clippy -printf "\n# Installing Python packages ##################################################\n\n" -pip install --user python-language-server[all] pyls-isort pyls-mypy pyls-black - -printf "\n# Setting up Chicken ##########################################################\n\n" -chicken-install -s apropos chicken-doc - -cd (chicken-csi -b -e "(import (chicken platform))" -p "(chicken-home)") -curl https://3e8.org/pub/chicken-doc/chicken-doc-repo.tgz | sudo tar zx - printf "\n# Installing fisher ###########################################################\n\n" -curl https://git.io/fisher --create-dirs -sLo ~/.config/fish/functions/fisher.fish +curl -sL https://git.io/fisher | source && fisher install jorgebucaran/fisher printf "\n# Installing Fisher Extensions ################################################\n\n" -fisher add decors/fish-colored-man -fisher add franciscolourenco/done -fisher add jethrokuan/fzf -fisher add jethrokuan/z -fisher add jorgebucaran/fish-bax -fisher add jorgebucaran/fish-getopts -fisher add laughedelic/pisces -fisher add oh-my-fish/theme-bobthefish +fisher install decors/fish-colored-man +fisher install franciscolourenco/done +fisher install jethrokuan/fzf +fisher install jorgebucaran/fish-bax +fisher install jorgebucaran/fish-getopts +fisher install laughedelic/pisces diff --git a/org/config/bootstrap.org b/org/config/bootstrap.org index f5e4e0f..8d0f9dd 100644 --- a/org/config/bootstrap.org +++ b/org/config/bootstrap.org @@ -177,13 +177,12 @@ set mylocales "en_US.UTF-8 UTF-8" "fr_FR.UTF-8 UTF-8" "ja_JP.UTF-8 UTF-8" I’ll let the user accept them one by one. #+BEGIN_SRC fish printf "\n# Set locale ##################################################################\n\n" - - for item in $mylocales - whiptail --yesno "Set the \"$item\" locale?" 8 40 - if test $status -eq 0 -a (grep -e "#$item" /etc/locale.gen) - sudo sed -i "/$item/s/^#//g" /etc/locale.gen - end - end +for item in $mylocales + whiptail --yesno "Set the \"$item\" locale?" 8 40 + if test $status -eq 0 -a (grep -e "#$item" /etc/locale.gen) + sudo sed -i "/$item/s/^#//g" /etc/locale.gen + end +end #+END_SRC This is my configuration I usually use when it comes to my locale. @@ -262,7 +261,7 @@ 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-git \ +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 \ @@ -287,7 +286,7 @@ however you want. Let’s install those. printf "\n# Installing needed packages ##################################################\n\n" sudo pacman -Syu for pkg in $PACKAGES - paru -S --needed $pkg + paru -S --skipreview --needed $pkg end #+END_SRC @@ -299,18 +298,16 @@ Before tangling our configuration files, we need to create some directories first so our files can be properly tangled. Here’s the list of directories we need to create: #+NAME: dirs-tangled-files -| $HOME/.config/awesome | -| $HOME/.config/awesome/theme | -| $HOME/.config/emacs/private | -| $HOME/.config/fish | -| $HOME/.config/gtk-2.0 | -| $HOME/.config/gtk-3.0 | -| $HOME/.config/ncmpcpp | -| $HOME/.config/neofetch | -| $HOME/.config/picom | -| $HOME/.config/yadm | -| $HOME/.local/bin | -| $HOME/org/capture | +| $HOME/.config/fish | +| $HOME/.config/gtk-2.0 | +| $HOME/.config/gtk-3.0 | +| $HOME/.config/ncmpcpp | +| $HOME/.config/neofetch | +| $HOME/.config/picom | +| $HOME/.config/yadm | +| $HOME/.local/bin | +| $HOME/.stumpwm.d | +| $HOME/org/capture | #+NAME: gen-dirs-tangle #+BEGIN_SRC emacs-lisp :var dirs=dirs-tangled-files @@ -319,11 +316,8 @@ need to create: "\n") #+END_SRC -#+RESULTS[a95e25a5f3ac91b1f884b39dde38e3b51366b188]: gen-dirs-tangle +#+RESULTS[250efd14cab8a0f03e5520e0d0bd96aa311aa45f]: gen-dirs-tangle #+begin_example -mkdir -p $HOME/.config/awesome -mkdir -p $HOME/.config/awesome/theme -mkdir -p $HOME/.config/emacs/private mkdir -p $HOME/.config/fish mkdir -p $HOME/.config/gtk-2.0 mkdir -p $HOME/.config/gtk-3.0 @@ -332,6 +326,7 @@ mkdir -p $HOME/.config/neofetch mkdir -p $HOME/.config/picom mkdir -p $HOME/.config/yadm mkdir -p $HOME/.local/bin +mkdir -p $HOME/.stumpwm.d mkdir -p $HOME/org/capture #+end_example @@ -343,16 +338,18 @@ Our code to generate such directories looks like this: The next step is to tangle all the Org files. Here is the list of files that are to be tangled: #+NAME: tangled-files -| filename | -|-------------| -| awesome.org | -| bin.org | -| emacs.org | -| fish.org | -| index.org | -| picom.org | -| rustfmt.org | -| tmux.org | +| filename | +|--------------| +| bin.org | +| emacs.org | +| fish.org | +| index.org | +| mpd.org | +| neofetch.org | +| picom.org | +| rustfmt.org | +| stumpwm.org | +| tmux.org | #+NAME: generate-tangle #+BEGIN_SRC emacs-lisp :var files=tangled-files[,0] @@ -365,13 +362,8 @@ to be tangled: "\n") #+END_SRC -#+RESULTS[87a25d6c524e8d1346452c54aa42ac3ac09d94cf]: generate-tangle +#+RESULTS[127dafd79461dab55296163e57fadb7b355a205a]: generate-tangle #+begin_example -printf '\n\n==== Tangling awesome.org\n\n' && \ -emacs -q --batch --eval '(require \'ob-tangle)' \ ---eval '(setq org-confirm-babel-evaluate nil)' \ ---eval '(org-babel-tangle-file "~/org/config/awesome.org")' - printf '\n\n==== Tangling bin.org\n\n' && \ emacs -q --batch --eval '(require \'ob-tangle)' \ --eval '(setq org-confirm-babel-evaluate nil)' \ @@ -392,6 +384,16 @@ emacs -q --batch --eval '(require \'ob-tangle)' \ --eval '(setq org-confirm-babel-evaluate nil)' \ --eval '(org-babel-tangle-file "~/org/config/index.org")' +printf '\n\n==== Tangling mpd.org\n\n' && \ +emacs -q --batch --eval '(require \'ob-tangle)' \ +--eval '(setq org-confirm-babel-evaluate nil)' \ +--eval '(org-babel-tangle-file "~/org/config/mpd.org")' + +printf '\n\n==== Tangling neofetch.org\n\n' && \ +emacs -q --batch --eval '(require \'ob-tangle)' \ +--eval '(setq org-confirm-babel-evaluate nil)' \ +--eval '(org-babel-tangle-file "~/org/config/neofetch.org")' + printf '\n\n==== Tangling picom.org\n\n' && \ emacs -q --batch --eval '(require \'ob-tangle)' \ --eval '(setq org-confirm-babel-evaluate nil)' \ @@ -402,6 +404,11 @@ emacs -q --batch --eval '(require \'ob-tangle)' \ --eval '(setq org-confirm-babel-evaluate nil)' \ --eval '(org-babel-tangle-file "~/org/config/rustfmt.org")' +printf '\n\n==== Tangling stumpwm.org\n\n' && \ +emacs -q --batch --eval '(require \'ob-tangle)' \ +--eval '(setq org-confirm-babel-evaluate nil)' \ +--eval '(org-babel-tangle-file "~/org/config/stumpwm.org")' + printf '\n\n==== Tangling tmux.org\n\n' && \ emacs -q --batch --eval '(require \'ob-tangle)' \ --eval '(setq org-confirm-babel-evaluate nil)' \ @@ -413,32 +420,6 @@ printf "\n# Tangling org files ################################################# <> #+END_SRC -** Setting up Emacs: Installing Spacemacs -:PROPERTIES: -:CUSTOM_ID: Execute_bootstrap-Setting_up_Emacs:_Installing_Spacemacs-0b3d44b2 -:END: -Now, the first thing we want to do with Emacs is install its Spacemacs -distribution. We’ll clone its =develop= branch into =~/.config/emacs=. We need -to do this prior to our dotfiles’ cloning because of some submodules that are -cloned within our =~/.config/emacs= directory, and git won’t let us clone -Spacemacs in an already existing and non-empty directory. To make sure it isn’t -one, let’s delete any potentially existing =~/.config/emacs= directory: -#+BEGIN_SRC fish -printf "\n# Installing Spacemacs ########################################################\n\n" -rm -rf $HOME/.config/emacs $HOME/.emacs* .spacemacs -#+END_SRC - -Now we can clone Spacemacs: -#+BEGIN_SRC fish -git clone --branch develop https://github.com/syl20bnr/spacemacs ~/.config/emacs -#+END_SRC - -And we can restore what might have been deleted in our =~/.emacs.d/private= -directory: -#+BEGIN_SRC fish -yadm checkout -- ~/.config/emacs/private/ -#+END_SRC - ** Set up dotfiles’ git repository :PROPERTIES: :CUSTOM_ID: Execute_bootstrap-Set_up_dotfiles-ab372bd9 @@ -539,6 +520,14 @@ printf "\n# Enabling Emacs as user service ##################################### systemctl --user enable emacs #+END_SRC +I don’t want to activate it immediately however, since the first +startup might require some interactivity with the main Emacs frame, +not with emacsclient. When Emacs will be ready, its service can be +started like so (command not tangled in the bootstrap): +#+begin_src fish :tangle no +systemctl --user start emacs +#+end_src + *** Mpd :PROPERTIES: :CUSTOM_ID: Execute_bootstrap-Enable_some_services-Mpd-f0f5b9b7 @@ -569,10 +558,10 @@ end :PROPERTIES: :CUSTOM_ID: Execute_bootstrap-Enable_some_services-Acpilight-39152794 :END: -~acpilight~ is our utility managing the brightness of our screen. There is -actually no service to enable here, but we must ensure the user is part of the -~video~ group so we can modify the brightness of our screen without using -~sudo~. +~acpilight~ is our utility managing the brightness of our screen. There +is actually no service to enable here, but we must ensure the user is +part of the ~video~ group so we can modify the brightness of our screen +without using ~sudo~. #+BEGIN_SRC fish sudo usermod -aG video $USER #+END_SRC @@ -596,22 +585,45 @@ ports. Thanks University of Paris 8 for being SO paranoid. nordvpn s protocol tcp #+END_SRC +Note that this change in protocol is only valid when using the OpenVPN +technology. If we want to use the Wireguard technology through [[https://nordvpn.com/blog/nordlynx-protocol-wireguard/][Project +NordLynx]], this option will no longer be available. To set NordVPN to +use WireGuard, we can run this command (not tangled in the bootstrap). +#+begin_src fish :tangle no +nordvpn set technology NordLynx +#+end_src + +Why WireGuard? Well, it can achieve better performances than OpenVPN +with physically nearby servers, and according to [[https://restoreprivacy.com/vpn/wireguard-vs-openvpn/][this article]] the +former can be more than half as fast as the latter. It is also much +more auditable than OpenVPN (only a few thousands lines of code +against some hundred of thousands). Oh, and WireGuard is part of the +Linux kernel since its version 5.6. And Windows’ since August 2021, +but I don’t really care about Windows. + +*But*, WireGuard is less privacy-oriented than OpenVPN. So, if I ever +need to use my VPN for privacy reasons, I can simply revert back to +the OpenVPN technology like shown with this command (not tangled in +the bootstrap): +#+begin_src fish :tangle no +nordvpn set technology OpenVPN +#+end_src + +Finally, I want to be notified of NordVPN’s actions, and I want to be +able to use IPv6. +#+begin_src fish +nordvpn set notify enabled +nordvpn set ipv6 enabled +#+end_src + ** Symlink some system config files :PROPERTIES: :CUSTOM_ID: Execute_bootstrap-Symlink_some_system_config_files-1dd95175 :END: -We have some files in [[file:ect/][etc/]] that are to be symlinked to =/etc=. -#+BEGIN_SRC fish -for f in (find ~/.etc -type f) - set dest (echo $f | sed -n 's|^.*etc\(.*\)$|/etc\1|p') - sudo ln -s $f $dest -end -#+END_SRC - -Let’s also symlink the ~plock~ script ([[file:bin.org::#Lock-635fcb38][source here]]) to ~/usr/bin~ so ~xss-lock~ +Let’s symlink the ~plock~ script ([[file:bin.org::#Lock-635fcb38][source here]]) to ~/usr/bin~ so ~xss-lock~ can find it. #+BEGIN_SRC fish -sudo ln -s (which plock) /usr/bin/plock +sudo ln -s ~/.local/bin/plock /usr/bin/plock #+END_SRC ** Install packages from git @@ -683,7 +695,7 @@ We will also need some components for development purposes. "\n") #+END_SRC -#+RESULTS[b3935b1c09d86fe506b43670f52960306a1e9809]: +#+RESULTS[b3935b1c09d86fe506b43670f52960306a1e9809]: rust-components-gen : rustup component add rust-src : rustup component add rls : rustup component add clippy @@ -693,52 +705,6 @@ Here is the code to do so: <> #+END_SRC -** Install some python packages -:PROPERTIES: -:CUSTOM_ID: Execute_bootstrap-Install_some_python_packages-a4447a6f -:END: -Some packages will be needed from pip in order to get our Emacs setup correctly -working. -#+NAME: python-packages-table -| Package | Why | -|-----------------------------+-------------------------| -| python-language-server[all] | Python LSP packages | -| pyls-isort | Import sortings for LSP | -| pyls-mypy | Mypy linter for LSP | -| pyls-black | Black plugin for pyls | - -#+NAME: python-packages-gen -#+BEGIN_SRC emacs-lisp :var packages=python-packages-table[,0] -(format "pip install --user %s" - (string-join packages " ")) -#+END_SRC - -#+RESULTS[29652be1076ffac01e34189067efa8fe9abda9d9]: python-packages-gen -: pip install --user python-language-server[all] pyls-isort pyls-mypy pyls-black - -Let’s install them locally for our user. -#+BEGIN_SRC fish :noweb yes -printf "\n# Installing Python packages ##################################################\n\n" -<> -#+END_SRC - -** Set up Chicken (Scheme interpreter/compiler) -:PROPERTIES: -:CUSTOM_ID: Execute_bootstrap-Set_up_Chicken_(Scheme_interpreter-compiler)-3c1a3c4a -:END: -Chicken needs to be set up before being used. First, we need to install its -documentation. -#+BEGIN_SRC fish -printf "\n# Setting up Chicken ##########################################################\n\n" -chicken-install -s apropos chicken-doc -#+END_SRC - -Then, we’ll complete the documentation like so: -#+BEGIN_SRC fish -cd (chicken-csi -b -e "(import (chicken platform))" -p "(chicken-home)") -curl https://3e8.org/pub/chicken-doc/chicken-doc-repo.tgz | sudo tar zx -#+END_SRC - ** Set up our fish shell :PROPERTIES: :CUSTOM_ID: Execute_bootstrap-Set_up_our_fish_shell-f0741c22 @@ -753,7 +719,7 @@ order to improve the user experience. We will be using ~fisher~ as our extensions manager for Fish. Let’s install it. #+BEGIN_SRC fish printf "\n# Installing fisher ###########################################################\n\n" -curl https://git.io/fisher --create-dirs -sLo ~/.config/fish/functions/fisher.fish +curl -sL https://git.io/fisher | source && fisher install jorgebucaran/fisher #+END_SRC *** Install our extensions @@ -774,18 +740,18 @@ I generally use the following extensions in my Fish shell. #+NAME: fish-extensions-gen #+BEGIN_SRC emacs-lisp :var extensions=fish-extensions-table[,0] -(mapconcat (lambda (x) (format "fisher add %s" x)) +(mapconcat (lambda (x) (format "fisher install %s" x)) extensions "\n") #+END_SRC -#+RESULTS[072e09f40140d1ff847826b8f44dd96f9e95a773]: fish-extensions-gen -: fisher add decors/fish-colored-man -: fisher add franciscolourenco/done -: fisher add jethrokuan/fzf -: fisher add jorgebucaran/fish-bax -: fisher add jorgebucaran/fish-getopts -: fisher add laughedelic/pisces +#+RESULTS[d424f363a3c11c8598a20da525de5ba9dcfbe7e7]: fish-extensions-gen +: fisher install decors/fish-colored-man +: fisher install franciscolourenco/done +: fisher install jethrokuan/fzf +: fisher install jorgebucaran/fish-bax +: fisher install jorgebucaran/fish-getopts +: fisher install laughedelic/pisces #+BEGIN_SRC fish :noweb yes printf "\n# Installing Fisher Extensions ################################################\n\n"