Lucien Cartier-Tilet
5d1bd2c45f
zathura is now the default reader for djvu books Emacs is now the default reader for epub books
262 lines
10 KiB
Fish
Executable File
262 lines
10 KiB
Fish
Executable File
#!/usr/bin/fish
|
||
if test "$USER" = 'phundrak'
|
||
yadm decrypt
|
||
else
|
||
whiptail --yesno "Decrypt private files?" 8 40 && yadm decrypt
|
||
end
|
||
|
||
set keyboardconf \
|
||
'Section "InputClass"
|
||
Identifier "system-keyboard"
|
||
MatchIsKeyboard "on"
|
||
Option "XkbLayout" "fr"
|
||
Option "XkbModel" "pc104"
|
||
Option "XkbVariant" "bepo_afnor"
|
||
Option "XkbOptions" "caps:ctrl_modifier"
|
||
EndSection'
|
||
|
||
printf "\n# Set keyboard layout #########################################################\n\n"
|
||
whiptail --yesno "Would you like to set your keyboard layout to the bépo layout?" 8 55
|
||
if test $status -eq 0
|
||
echo $keyboardconf | sudo tee /etc/X11/xorg.conf.d/00-keyboard.conf
|
||
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)
|
||
sudo sed -i "/$item/s/^#//g" /etc/locale.gen
|
||
end
|
||
end
|
||
|
||
set localeconf "LANG=en_US.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
|
||
if test $status -eq 0
|
||
echo $localeconf | sudo tee /etc/locale.conf
|
||
end
|
||
|
||
printf "\n# Generate locale #############################################################\n\n"
|
||
sudo locale-gen
|
||
|
||
printf "\n# Create directories for mounting #############################################\n\n"
|
||
sudo mkdir -p /mnt/{USB,CD,Android}
|
||
sudo chown $USER:(id -g $USER) /mnt/{USB,CD,Android}
|
||
|
||
printf "\n# Set fish as the default shell ###############################################\n\n"
|
||
whiptail --yesno "Set the current user’s default shell to fish?" 8 50
|
||
if test $status -eq 0 -a ! "$SHELL" = '/usr/bin/fish'
|
||
chsh -s /usr/bin/fish
|
||
end
|
||
|
||
set PACKAGES \
|
||
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 lain-git libxft-bgra linux-headers lldb logrotate ly 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 nitrogen \
|
||
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-ibhagwan-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 st-luke-git sxiv texlive-bin texlive-langchinese \
|
||
texlive-langcyrillic texlive-langgreek texlive-langjapanese texlive-langkorean \
|
||
texlive-latexextra texlive-localmanager-git texlive-most 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 yaml-language-server-bin \
|
||
zeal
|
||
|
||
printf "\n# Installing needed packages ##################################################\n\n"
|
||
sudo pacman -Syu
|
||
for pkg in $PACKAGES
|
||
yay -S --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
|
||
mkdir -p $HOME/.config/ncmpcpp
|
||
mkdir -p $HOME/.config/neofetch
|
||
mkdir -p $HOME/.config/picom
|
||
mkdir -p $HOME/.config/yadm
|
||
mkdir -p $HOME/.local/bin
|
||
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)' \
|
||
--eval '(org-babel-tangle-file "~/org/config/bin.org")'
|
||
|
||
printf '\n\n==== Tangling emacs.org\n\n' && \
|
||
emacs -q --batch --eval '(require \'ob-tangle)' \
|
||
--eval '(setq org-confirm-babel-evaluate nil)' \
|
||
--eval '(org-babel-tangle-file "~/org/config/emacs.org")'
|
||
|
||
printf '\n\n==== Tangling fish.org\n\n' && \
|
||
emacs -q --batch --eval '(require \'ob-tangle)' \
|
||
--eval '(setq org-confirm-babel-evaluate nil)' \
|
||
--eval '(org-babel-tangle-file "~/org/config/fish.org")'
|
||
|
||
printf '\n\n==== Tangling index.org\n\n' && \
|
||
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 picom.org\n\n' && \
|
||
emacs -q --batch --eval '(require \'ob-tangle)' \
|
||
--eval '(setq org-confirm-babel-evaluate nil)' \
|
||
--eval '(org-babel-tangle-file "~/org/config/picom.org")'
|
||
|
||
printf '\n\n==== Tangling rustfmt.org\n\n' && \
|
||
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 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"
|
||
yadm remote set-url origin git@labs.phundrak.com:phundrak/dotfiles.git
|
||
yadm remote add github git@github.com:phundrak/dotfiles.git
|
||
|
||
printf "\n# Decrypt encrypted dotfiles ##################################################\n\n"
|
||
yadm decrypt
|
||
|
||
end
|
||
|
||
printf "\n# Getting yadm susbmodules ####################################################\n\n"
|
||
yadm submodule update --init --recursive
|
||
|
||
printf "\n# Enabling timesync ###########################################################\n\n"
|
||
sudo systemctl enable --now systemd-timesyncd
|
||
|
||
sudo timedatectl set-ntp true
|
||
|
||
printf "\n# Enabling and starting Docker ################################################\n\n"
|
||
sudo systemctl enable --now docker
|
||
|
||
read --prompt "echo 'Do you wish to be added to the `docker` group? (Y/n): ' " -l adddockergroup
|
||
if test $adddockergroup = 'y' || test $adddockergroup = "Y" || test $adddockergroup = ''
|
||
sudo usermod -aG docker $USER
|
||
end
|
||
|
||
printf "\n# Enabling Emacs as user service ##############################################\n\n"
|
||
systemctl --user enable emacs
|
||
|
||
printf "\n# Enabling Mpd as a user service ##############################################\n\n"
|
||
mkdir -p ~/.config/mpd/playlists
|
||
systemctl --user enable --now mpd
|
||
|
||
whiptail --yesno 'Do you want to activate the ssh server?' 8 50
|
||
if test $status -eq 0
|
||
printf "\n# Enabling ssh server #########################################################\n\n"
|
||
sudo systemctl enable --now sshd
|
||
end
|
||
|
||
sudo systemctl disable getty@tty2
|
||
sudo systemctl enable --now ly
|
||
|
||
sudo usermod -aG video $USER
|
||
|
||
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
|
||
|
||
sudo ln -s (which plock) /usr/bin/plock
|
||
|
||
mkdir -p ~/fromGIT
|
||
|
||
printf "\n# Install Reveal.JS ###########################################################\n\n"
|
||
cd ~/fromGIT
|
||
git clone https://github.com/hakimel/reveal.js.git
|
||
|
||
printf "\n# Install the rust toolchains, nightly is the default one #####################\n\n"
|
||
rustup default stable
|
||
|
||
rustup toolchain install nightly
|
||
|
||
printf "\n# Add rust utilities ##########################################################\n\n"
|
||
cargo install rustfmt racer
|
||
|
||
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
|
||
|
||
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
|