Lucien Cartier-Tilet
8bc5d228dd
All checks were successful
continuous-integration/drone/push Build is passing
Change all references of sxiv to nsxiv. In bootstrap, install my custom packages from their PKGBUILD rather than from repositories.
390 lines
10 KiB
Fish
Executable File
390 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_DK.UTF-8
|
||
LC_COLLATE=C
|
||
LC_NAME=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_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 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 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
|
||
|
||
printf "\n# Installing APPSPKG ##################################################\n\n"
|
||
for pkg in $APPSPKG
|
||
paru -S --skipreview --needed $pkg
|
||
end
|
||
|
||
cd /home/phundrak/Documents/code/PKGBUILDs/emacs && makepkg -si; cd ..
|
||
cd /home/phundrak/Documents/code/PKGBUILDs/nsxiv && makepkg -si; cd ..
|
||
cd /home/phundrak/Documents/code/PKGBUILDs/pumopm-git && makepkg -si; cd ..
|
||
cd /home/phundrak/Documents/code/PKGBUILDs/sent && makepkg -si; cd ..
|
||
|
||
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/.stumpwm.d
|
||
mkdir -p $HOME/org/capture
|
||
|
||
printf "\n# Tangling org files ##########################################################\n\n"
|
||
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 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)' \
|
||
--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 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")'
|
||
|
||
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 usermod -aG video $USER
|
||
|
||
sudo systemctl enable --now nordvpnd
|
||
|
||
nordvpn s protocol tcp
|
||
|
||
nordvpn set notify enabled
|
||
nordvpn set ipv6 enabled
|
||
|
||
sudo ln -s ~/.local/bin/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 fisher ###########################################################\n\n"
|
||
curl -sL https://git.io/fisher | source && fisher install jorgebucaran/fisher
|
||
|
||
printf "\n# Installing Fisher Extensions ################################################\n\n"
|
||
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
|