diff --git a/arch/README.md b/arch/README.md index 63de0e9..a021664 100644 --- a/arch/README.md +++ b/arch/README.md @@ -6,7 +6,7 @@ > 2.0.0 - WIP -This project is an effort to create a easy to use system to install a fresh version of my desktop environment (Xmonad on Arch). The idea is that this system can be used on a fresh install of Arch and will get everything that I currently use setup and ready in a safe manner. +This project is an effort to create a easy to use system to install a fresh version of my desktop environment. The idea is that this system can be used on a fresh install of Arch and will get everything that I currently use setup and ready in a safe manner. NOTE! This is a very basic set of scripts, it has been tested to work but I have no guarantees that it'll work for you so use with caution please. @@ -25,8 +25,10 @@ defaults : Install my chosen default programs misc : Install my collection of misc - nice to have - programs scripts : Install my scirpts dmenu : Install my customised version of dmenu +dwm : Install my customised version of dwm +st : Install my customised version of st +dwmblocks : Install my customised version of dwmblocks dotfiles : Install my dotfiles to the system -configure : configure certain system files - BETA Note: it is expected that the initial run of this script lets each stage complete successfully. @@ -53,6 +55,9 @@ setup.sh then... 5. install my scripts 1. copy inks-scrips to /usr/local/bin as it should be in path by default 6. install my dmenu +6. install my dwm +6. install my st +6. install my dwmblocks 7. install my config 8. attempt to configure the main system programs so after a reboot the sysetm is usable 1. set shell to fish @@ -75,10 +80,6 @@ ln -s /usr/share/mpv/scripts/mpris.so /home/solomon/.local/share/jellyfinmediapl ``` # TODO -review xmonad.sh for default programs / dependencies - Need to work out gnome-keyring setup with pam, related to this is getting nextcloud to login without a login manager, I think it's a pam thing, I have got it working in the past. installing zsh breaks the script, I have noted that it's not suggested but need something better. - -figure out icons/font stuff, it's very frustrating. diff --git a/arch/20-keyboard.conf b/arch/_old/20-keyboard.conf similarity index 100% rename from arch/20-keyboard.conf rename to arch/_old/20-keyboard.conf diff --git a/arch/configure-system b/arch/_old/configure-system similarity index 100% rename from arch/configure-system rename to arch/_old/configure-system diff --git a/arch/default-programs b/arch/default-programs index b7bbef7..04bc711 100644 --- a/arch/default-programs +++ b/arch/default-programs @@ -6,7 +6,6 @@ xorg-xmessage zk biber perl-clone -texlive-most gnome-keyring libgnome-keyring xdotool @@ -14,7 +13,6 @@ tumbler ripgrep libopenraw tree -redshift ripgrep fzf rsync @@ -23,29 +21,25 @@ pamixer pulsemixer xorg-xsetroot feh -pulseaudio-bluetooth bluez-utils sshfs dunst slock jq -xmonad acpi -xmonad-contrib -xmobar xorg-server xorg-xinit blueberry -picom-git +picom nitrogen -xmonad-recompile-hook-git trash-cli xclip numlockx weather pavucontrol pass -pulseaudio +pipewire +pipewire-pulse nfs-utils network-manager-applet wget @@ -61,12 +55,8 @@ efibootmgr curl cifs-utils bluez -lxappearance -qt5ct bat lxsession -xterm -flameshot simple-mtpfs mpv arandr @@ -86,51 +76,30 @@ DEFAULTS_START zathura zathura-pdf-mupdf firefox -okular -zsh -neovim -alacritty calcurse libreoffice lf -thunar tmux thunderbird -protonmail-bridge jellyfin-media-player shotwell -discord -slack-desktop -barrier -todoist -teams +input-leap nextcloud-client -element-desktop +mpd +ncmpcpp qbittorrent -ansible telegram-desktop -jellyfin-media-player +sxiv DEFAULTS_END MISC_START -visual-studio-code-bin virtualbox newsboat -sxiv -kdeconnect cmus -surf -bitwarden-cli zenity -guake python npm -mosh jre-openjdk -jre-openjdk-headless -android-sdk-platform-tools -runelite -virt-manager neomutt cowsay neofetch @@ -144,7 +113,6 @@ rxvt-unicode perl-json-xs perl-anyevent-i3 alsa-utils -canto-daemon khal moc python-dbus-next diff --git a/arch/install-dmenu-inkletblot b/arch/install-dmenu-inkletblot index a364409..0f193b6 100755 --- a/arch/install-dmenu-inkletblot +++ b/arch/install-dmenu-inkletblot @@ -15,7 +15,7 @@ if command -v dmenu &> /dev/null; then exit 0 fi -echo "This script is going to install dmenu-inkletblot, my fork of dmenu with my custom styling. As such it will ask for root privilages." +echo "This script is going to install dmenu, my fork of dmenu with my custom styling. As such it will ask for root privilages." read -r -p "Are you sure you want to continue? [Y/n] " input case $input in @@ -27,11 +27,14 @@ case $input in ;; esac +cd /tmp +git clone https://gitlab.inkletblot.com/inkletblot/dmenu-inkletblot cd dmenu-inkletblot +git checkout config sudo -S make clean install if ! command -v dmenu &> /dev/null; then - echo "dmenu-inkletblot failed to install, please manually rectify this and then rerun this setup with: ./setup deps" + echo "dmenu failed to install, please manually rectify this and then rerun this setup with: ./setup install-dmenu" exit 1 fi diff --git a/arch/install-dwm-inkletblot b/arch/install-dwm-inkletblot new file mode 100755 index 0000000..b590c53 --- /dev/null +++ b/arch/install-dwm-inkletblot @@ -0,0 +1,41 @@ +#!/bin/sh + +#----------------------------------- +# Name: install-dwm-inkletblot +# Version: 1.0.0 +# Author: Solomon Laing +# Description: +# Installs my customisation of dwm +#----------------------------------- + +clear + +if command -v dwm &> /dev/null; then + echo "dwm is already installed on the system." + exit 0 +fi + +echo "This script is going to install dwm, my fork of dwm with my custom styling. As such it will ask for root privilages." + +read -r -p "Are you sure you want to continue? [Y/n] " input +case $input in +[nN][oO] | [nN]) + exit 0 + ;; +*) + echo "The program will continue..." + ;; +esac + +cd /tmp +git clone https://gitlab.inkletblot.com/inkletblot/dwm-inkletblot +cd dwm-inkletblot +git checkout config +sudo -S make clean install + +if ! command -v dwm &> /dev/null; then + echo "dwm failed to install, please manually rectify this and then rerun this setup with: ./setup install-dwm" + exit 1 +fi + +exit 0 diff --git a/arch/install-dwmblocks-inkletblot b/arch/install-dwmblocks-inkletblot new file mode 100755 index 0000000..b29680d --- /dev/null +++ b/arch/install-dwmblocks-inkletblot @@ -0,0 +1,40 @@ +#!/bin/sh + +#----------------------------------- +# Name: install-dwmblocks-inkletblot +# Version: 1.0.0 +# Author: Solomon Laing +# Description: +# Installs my customisation of dwmblocks +#----------------------------------- + +clear + +if command -v dwmblocks &> /dev/null; then + echo "dwmblocks is already installed on the system." + exit 0 +fi + +echo "This script is going to install dwmblocks, my fork of dmenu with my custom styling. As such it will ask for root privilages." + +read -r -p "Are you sure you want to continue? [Y/n] " input +case $input in +[nN][oO] | [nN]) + exit 0 + ;; +*) + echo "The program will continue..." + ;; +esac + +cd /tmp +git clone https://gitlab.inkletblot.com/inkletblot/dwmblocks-inkletblot +cd dwmblocks-inkletblot +sudo -S make clean install + +if ! command -v dwmblocks &> /dev/null; then + echo "dwmblocks failed to install, please manually rectify this and then rerun this setup with: ./setup install-dwmblocks" + exit 1 +fi + +exit 0 diff --git a/arch/install-fonts b/arch/install-fonts new file mode 100755 index 0000000..c5365d4 --- /dev/null +++ b/arch/install-fonts @@ -0,0 +1,50 @@ +#!/bin/sh + +#----------------------------------- +# Name: install-fonts +# Version: 1.0.0 +# Author: Solomon Laing +# Description: +# Installs the getnf program to the +# system. +#----------------------------------- + +clear + +if command -v getnf &> /dev/null; then + echo "getnf is already installed on the system." + exit 0 +fi + +echo "This script is going to attempt install getnf. As such it will ask for root privilages." + +read -r -p "Are you sure you want to continue? [Y/n] " input +case $input in +[nN][oO] | [nN]) + exit 0 + ;; +*) + echo "The program will continue..." + ;; +esac + +cd /tmp +sudo -S git clone https://github.com/ronniedroid/getnf +sudo -S chown -R $USER:users ./getnf +cd getnf + +sudo ./install.sh + +read -r -p "Do you want to choose your fonts now? [Y/n] " input +case $input in +[nN][oO] | [nN]) + exit 0 + ;; +*) + echo "The program will continue..." + ;; +esac + +getnf + +exit 0 diff --git a/arch/install-st-inkletblot b/arch/install-st-inkletblot new file mode 100755 index 0000000..ed2f658 --- /dev/null +++ b/arch/install-st-inkletblot @@ -0,0 +1,41 @@ +#!/bin/sh + +#----------------------------------- +# Name: install-st-inkletblot +# Version: 1.0.0 +# Author: Solomon Laing +# Description: +# Installs my customisation of st +#----------------------------------- + +clear + +if command -v st &> /dev/null; then + echo "st is already installed on the system." + exit 0 +fi + +echo "This script is going to install st, my fork of st with my custom styling. As such it will ask for root privilages." + +read -r -p "Are you sure you want to continue? [Y/n] " input +case $input in +[nN][oO] | [nN]) + exit 0 + ;; +*) + echo "The program will continue..." + ;; +esac + +cd /tmp +git clone https://gitlab.inkletblot.com/inkletblot/st-inkletblot +cd st-inkletblot +git checkout config +sudo -S make clean install + +if ! command -v st &> /dev/null; then + echo "st failed to install, please manually rectify this and then rerun this setup with: ./setup install-st" + exit 1 +fi + +exit 0 diff --git a/arch/setup b/arch/setup index f0fccb1..6dc3eec 100755 --- a/arch/setup +++ b/arch/setup @@ -26,15 +26,6 @@ function install_yay { fi } -# install my dmenu -function install_dmenu { - cd $working_dir - ./install-dmenu-inkletblot - if [ $? -eq 1 ]; then - exit 1 - fi -} - # update the system function update_system { # check with the user they are happy to update, exit if not though. @@ -87,6 +78,30 @@ function install_dmenu { fi } +function install_dwm { + cd $working_dir + ./install-dwm-inkletblot + if [ $? -eq 1 ]; then + exit 1 + fi +} + +function install_st { + cd $working_dir + ./install-st-inkletblot + if [ $? -eq 1 ]; then + exit 1 + fi +} + +function install_dwmblocks { + cd $working_dir + ./install-dwmblocks-inkletblot + if [ $? -eq 1 ]; then + exit 1 + fi +} + # install my config function install_config { cd $working_dir @@ -96,10 +111,9 @@ function install_config { fi } -# attempt to configure system -function configure_system { +function install_fonts { cd $working_dir - ./configure-system + ./install-fonts if [ $? -eq 1 ]; then exit 1 fi @@ -115,110 +129,156 @@ function help { echo " defaults : Install my chosen default programs" echo " misc : Install my collection of misc - nice to have - programs" echo " dmenu : Install my customised version of dmenu" + echo " dwm : Install my customised version of dwm" + echo " st : Install my customised version of st" + echo " dwmblocks : Install my customised version of dwmblocks" + echo " fonts : install getnf and optionally a font of your choice" echo " dotfiles : Install my dotfiles to the system" - echo " configure : configure certain system files - BETA" echo "" echo "Note: it is expected that the initial run of this script lets each stage complete sucessfully." } -if [ "$1" = "help" ]; then +if [ "$1" = "help" ] || [ "$1" = "-h" ] || [ "$1" = "--help" ]; then help exit 0 fi -git submodule init -git submodule update +update_system -case $1 in - "") - update_system - install_yay - install_dependencies - install_defaults - install_misc - install_dmenu - install_config - configure_system - ;; - yay) - if [ "$2" = "only" ]; then +if [ "$2" = "only" ]; then + case $1 in + yay) install_yay - else + ;; + deps) + install_dependencies + ;; + defaults) + install_defaults + ;; + misc) + install_misc + ;; + dmenu) + install_dmenu + ;; + dwm) + install_dwm + ;; + st) + install_st + ;; + dwmblocks) + install_dwmblocks + ;; + fonts) + install_fonts + ;; + config) + install_config + ;; + *) + echo "Invalid input..." + help + exit 1 + ;; + esac +else + case $1 in + "") install_yay install_dependencies install_defaults install_misc install_dmenu + install_dwm + install_st + install_dwmblocks + install_fonts install_config - configure_system - fi - ;; - deps) - update_system - if [ "$2" = "only" ]; then - install_dependencies - else + ;; + yay) + install_yay install_dependencies install_defaults install_misc install_dmenu + install_dwm + install_st + install_dwmblocks + install_fonts install_config - configure_system - fi - ;; - defaults) - update_system - if [ "$2" = "only" ]; then - install_defaults - else + ;; + deps) + install_dependencies install_defaults install_misc install_dmenu + install_dwm + install_st + install_dwmblocks + install_fonts install_config - configure_system - fi - ;; - misc) - update_system - if [ "$2" = "only" ]; then - install_misc - else + ;; + defaults) + install_defaults install_misc install_dmenu + install_dwm + install_st + install_dwmblocks + install_fonts install_config - configure_system - fi - ;; - dmenu) - if [ "$2" = "only" ]; then + ;; + misc) + install_misc install_dmenu - else + install_dwm + install_st + install_dwmblocks + install_fonts + install_config + ;; + dmenu) install_dmenu + install_dwm + install_st + install_dwmblocks + install_fonts install_config - configure_system - fi - ;; - dotfiles) - if [ "$2" = "only" ]; then + ;; + dwm) + install_dwm + install_st + install_dwmblocks + install_fonts install_config - else + ;; + st) + install_st + install_dwmblocks + install_fonts install_config - configure_system - fi - ;; - configure) - if [ "$2" = "only" ]; then - configure_system - else - configure_system - fi - ;; - *) - echo "Invalid input..." - help - exit 1 - ;; -esac + ;; + dwmblocks) + install_dwmblocks + install_fonts + install_config + ;; + fonts) + install_fonts + install_config + ;; + dotfiles) + install_config + ;; + *) + echo "Invalid input..." + help + exit 1 + ;; + esac +fi if [ $? -eq 1 ]; then exit 1