From 0fe379282b7ab3a48e8742503c442740e660a9c7 Mon Sep 17 00:00:00 2001 From: Florian RICHER Date: Mon, 9 May 2022 00:48:34 +0200 Subject: [PATCH] Refactor prepare scripts --- run_once_prepare_arch.sh.tmpl | 67 ++++++++++++++++++++++++++++++++--- 1 file changed, 62 insertions(+), 5 deletions(-) diff --git a/run_once_prepare_arch.sh.tmpl b/run_once_prepare_arch.sh.tmpl index df1a522..3d9c4d3 100644 --- a/run_once_prepare_arch.sh.tmpl +++ b/run_once_prepare_arch.sh.tmpl @@ -1,13 +1,70 @@ {{ if eq .chezmoi.osRelease.idLike "arch" }} #!/bin/bash + +# Common packages +packages=(curl git) + # All requirements for i3 -sudo pacman -S curl picom i3-gaps polybar dunst dmenu i3lock bluez-tools blueberry pavucontrol tmux feh dex yay xss-lock network-manager-applet playerctl alacritty git gnome-keyring jq arandr kdeconnect kitty viu neovim --noconfirm +# ## i3-gaps => I3 version but with spaces between menu | Equivalent i3 +# ## picom => Compositor to add effects in window | Use with i3 +# ## polybar => Use to create simple bar in bottom | Use with i3 +# ## dunst => Customizable and simple notification manager (to test it, use notify-send) | Use with i3 +# ## dmenu => Basic custom menu like rofi to launch application with Windows + D | Use with i3 +# ## i3lock => Custom lock screen +# ## gnome-keyring => Use to store sensitive data like password by google chrome and other +# ## xss-lock => ???? +# ## dex => ??? +# ## feh => ??? +# ## jq => Json parser for command line use by my custom script for relative workspaces because i3-msg return json format +packages+=(picom i3-gaps polybar dunst dmenu i3lock gnome-keyring xss-lock dex feh jq) -yay -S nerd-fonts-complete spotify spicetify-cli falchion-shutdown --noconfirm +# Utils in complement for i3 +# ## bluez-tools => Used by some polybar scripts +# ## blueberry => Useful interface to manage bluetooth devices +# ## pavucontrol => Useful interface to manage audio ( Not tried with pipewire) +# ## network-manager-applet => Useful applet to manage network (Support Wifi and Wired) +# ## playerctl => Use to manage spotify, browsers playlist and many more from keyboard key (Use dbus to communicate) +# ## arandr => Basic interface to set current monitor position + resolution +packages+=(bluez-tools blueberry pavucontrol network-manager-applet playerctl arandr) -sudo chmod a+wr /opt/spotify -sudo chmod a+wr /opt/spotify/Apps -R +# For terminal +# ## tmux => To use multiple shell in same terminal | Used by (alacritty) | +# ## alacritty => Terminal emulator coded in Rust | +# ## kitty => Terminal emulator like alacrutty but it look more powerfull so it can replace alacritty and tmux in future +packages+=(kitty viu alacritty tmux zsh) -git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm +# For development +# ## Modern replacement of vim with lua support +# ## rust-analyzer => Use in replacement of RLS | Used by (emacs-ng + neovim + vscode if installed) +packages+=(neovim rust-analyzer) + +# For productivity +# ## kdeconnect => To sync phone and Desktop | Used by (i3 config) +packages+=(kdeconnect) + +# Other +# ## yay => Use to install AUR packages | Used by (Here in below) +packages+=(yay) + +# ## falchion-shutdown | My custom AUR packages to avoid shutdown my computer when keyboard is sleeping +# ## nerd-fonts-complete | To install my preferred fonts :) +aur_packages=(falchion-shutdown nerd-fonts-complete) + +# Spotify to listen music :) +# ## spicetify-cli => Use to customize spotify (Add vim keyboard style) +aur_packages+=(spotify spicetify-cli) + +sudo pacman -S ${packages[@]} --noconfirm --needed +yay -S ${aur_packages[@]} --noconfirm --needed + +case "${aur_packages[@]}" in + *"spicetify-cli"*) + sudo chmod a+wr /opt/spotify + sudo chmod a+wr /opt/spotify/Apps -R ;; +esac + +if [ ! -d ~/.tmux/plugins/tpm ]; then + git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm +fi {{ end }}