config.phundrak.com/.config/yadm/bootstrap

232 lines
9.0 KiB
Fish
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/fish
# -*- mode: fish -*-
set keyboardconf \
'Section "InputClass"
Identifier "system-keyboard"
MatchIsKeyboard "on"
Option "XkbLayout" "fr,fr,us"
Option "XkbModel" "pc104"
Option "XkbVariant" "bepo,,"
Option "XkbOptions" "grp:menu_toggle"
EndSection'
printf "\n# Set keyboard layout #########################################################\n\n"
echo $keyboardconf | sudo tee /etc/X11/xorg.conf.d/00-keyboard.conf
set mylocales "en_US.UTF-8 UTF-8" "fr_FR.UTF-8 UTF-8" "ja_JP.UTF-8 UTF-8"
printf "\n# Set our locale ##############################################################\n\n"
for item in $mylocales
if test (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"
echo $localeconf | sudo tee /etc/locale.conf
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}
mkdir -p $HOME/.cache/nano/backups
printf "\n# Set fish as the default shell ###############################################\n\n"
chsh -s /usr/bin/fish
if ! test which yay
printf "\n# Installing yay ##############################################################\n\n"
cd
mkdir -p fromGIT
cd fromGIT
git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si --noconfirm
else
printf "\n# yay already installed #######################################################\n\n"
end
printf "\n# Installing Spacemacs ########################################################\n\n"
rm -rf ~/.emacs.d
git clone --single-branch --branch develop https://github.com/syl20bnr/spacemacs ~/.emacs.d
yadm checkout -- ~/.emacs.d/private/
if ! test (echo "phundrak" | sed -e "s/^.*$USER//I")
printf "\n# Update yadms remotes #######################################################\n\n"
yadm remote set-url origin git@labs.phundrak.fr: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# Install envtpl ##############################################################\n\n'
yay -Syu python-envtpl-git
printf "\n# Getting yadm susbmodules ####################################################\n\n"
yadm submodule update --init --recursive
printf "\n# Generating alt files ########################################################\n\n"
yadm alt
for f in (find ~/.etc -type f)
set dest (echo $f | sed -n 's/^.*etc\(.*\)$/\/etc\1/p')
sudo ln -s $f $dest
end
read --prompt "echo 'Symlink .nanorc to roots .nanorc? (Y/n): ' " -l nanoroot
if test $nanoroot = 'y' || test $nanoroot = "Y" || test $nanoroot = ''
printf "\n# Symlinking .nanorc to roots .nanorc ########################################\n\n"
sudo ln -s $HOME/.nanorc /root/.nanorc
end
set PACKAGES \
acpilight asar ascii aspell-en aspell-fr assimp awesome-terminal-fonts \
base-devel bat biber bleachbit bluez-firmware bluez-utils bookworm boost bzip2 \
chiken chromium clisp compton cppcheck cppreference cppreference-devhelp \
cpupower cronie cryptsetup device-mapper diffutils discord-canary discount \
ditaa dmenu dmenu-lpass docker docker-compose doxygen dunst dwarffortress \
emacs exfat-utils farbfel ffmpegthumbnailer findutils firefox flake8 \
font-mathematica fontforge freeglut fzf gcc-libs gdb gimp glibc \
gnome-disk-utility gnome-epub-thumbnailer gnu-free-fonts gnuplot go-tools \
golangci-lint-bin graphviz htop i3-gaps i3lock-blur i3status igdm-bin \
inetutils j4-dmenu-desktop javascript-typescript-langserver jfsutils jmtpfs \
lastpass-cli less linux-headers lldb logrotate lvm2 ly-git meson minted mpc \
mpd mpd-rich-presence-discord-git mpv mupdf-tools nano ncdu ncmpcpp \
nemo-fileroller nemo-preview neofetch neovim netctl networkmanager \
networkmanager-openvpn nm-connection-editor nnn nodejs-vmd nomacs \
noto-fonts-emoji npm ntfs-3g numlockx openssh p7zip pacman-contrib pandoc-bin \
pavucontrol pciutils pcurses pdfpc polybar prettier pulseaudio-bluetooth \
python-autoflake python-envtpl-git python-epc python-importmagic \
python-language-server python-nose python-pip python-ptvsd python-pytest \
python-pywal qemu r raw-thumbnailer reflector rofi rofi-wifi-menu-git rsync \
-rtv rustup s-nail samba scrot sent shadow siji-git simplescreenrecorder \
speedcrunch sshfs st-luke-git swi-prolog texlive-most texlive-bin \
texlive-langchinese texlive-langcyrillic texlive-langgreek \
texlive-langjapanese texlive-langkorean texlive-latexextra \
texlive-localmanager-git tmux tree ttf-arphic-uming ttf-baekmuk \
ttf-bitstream-vera ttf-dejavu ttf-google-fonts-opinionated-git ttf-joypixels \
ttf-liberation ttf-material-design-icons-git ttf-ms-fonts ttf-symbola \
ttf-tibetan-machine ttf-twemoji-color ttf-unifont typescript unicode \
unicode-emoji unrar usbutils valgrind vscode-css-languageserver-bin w3m wget \
x11-ssh-askpass xclip xdg-user-dirs-gtk xorg-drivers xorg-apps xfsprogs \
xorg-server xorg-xinit xss-lock xvkbd yapf \
printf "\n# Installing needed packages ##################################################\n\n"
yay -S --needed $PACKAGES
printf "\n# Installing tryones compton fork ############################################\n\n"
yay -S compton-tryone-git
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 --now emacs
read --prompt "echo 'Do you want to activate the ssh server? (Y/n): ' " -l sshdserver
if test $sshdserver = 'y' || test $sshdserver = "Y" || test $sshdserver = ''
printf "\n# Enabling ssh server #########################################################\n\n"
sudo systemctl enable --now sshd
end
sudo systemctl enable --now ly
sudo systemctl disable getty@tty2
sudo usermod -aG video $USER
printf "\n# Installing fisher ###########################################################\n\n"
curl https://git.io/fisher --create-dirs -sLo ~/.config/fish/functions/fisher.fish
set FISHEXTENSIONS \
edc/bass franciscolourenco/done jethrokuan/fzf jethrokuan/z \
jorgebucaran/fish-getopts laughedelic/pisces matchai/spacefish \
tuvistavie/fish-ssh-agent
fisher add $FISHEXTENSIONS
printf "\n# Install i3-gaps-rounded #####################################################\n\n"
cd ~/fromGIT
git clone https://github.com/resloved/i3.git i3-gaps-rounded
cd i3-gaps-rounded
rm -rf build
autoreconf --force --install
mkdir build && cd build
../configure --prefix=/usr --sysconfdir=/etc --disable-sanitizers
make -j
sudo make install
printf "\n# Install polybar-battery #####################################################\n\n"
cd ~/fromGIT
git clone https://github.com/drdeimos/polybar_another_battery.git
cd polybar_another_battery
go get -u github.com/distatus/battery/cmd/battery
make build
ln -s polybar-ab ~/.local/bin/polybar-ab
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 nightly
rustup toolchain install stable
printf "\n# Add rust utilities ##########################################################\n\n"
cargo install rustfmt racer
rustup component add src
rustup component add rls
pip install --user pyls-isort pyls-mypy
go get -v golang.org/x/tools/gopls@latest
go get -u -v golang.org/x/tools/cmd/godoc
go get -u -v golang.org/x/tools/cmd/goimports
go get -u -v golang.org/x/tools/cmd/gorename
go get -u -v golang.org/x/tools/cmd/guru
go get -u -v github.com/cweill/gotests/...
go get -u -v github.com/davidrjenni/reftools/cmd/fillstruct
go get -u -v github.com/fatih/gomodifytags
go get -u -v github.com/godoctor/godoctor
go get -u -v github.com/golangci/golangci-lint/cmd/golangci-lint
go get -u -v github.com/haya14busa/gopkgs/cmd/gopkgs
go get -u -v github.com/josharian/impl
go get -u -v github.com/mdempsky/gocode
go get -u -v github.com/rogpeppe/godef
go get -u -v github.com/zmb3/gogetdoc
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# Clean the pacman and yay cache ##############################################\n\n"
yay -Sc --noconfirm