From f3d51d2271754c6adeb3e3be5d3291cd5db4ace6 Mon Sep 17 00:00:00 2001 From: Cameron Miller Date: Mon, 18 Dec 2023 18:06:16 +0000 Subject: [PATCH] Update the main Script --- README.org | 72 +++++++++++++++++++++++++++++++++++++++++++---------- cbsh | 47 ++++++++++++++++++++++++---------- pkglist.txt | 6 ++--- 3 files changed, 96 insertions(+), 29 deletions(-) diff --git a/README.org b/README.org index abb076f..77444d7 100644 --- a/README.org +++ b/README.org @@ -26,7 +26,10 @@ CBSH, or Cabooshy's Shell, is a Post installation Script for Arch Linux, and Arc - [[#installing-the-packages-from-the-repos][Installing the packages from the repos]] - [[#choosing-graphics-drivers][Choosing Graphics Drivers]] - [[#copying-over-the-configs-from-etccbsh-to-home][Copying over the configs from /etc/cbsh to $HOME]] -- [[#installing-doom-emacs][Installing DOOM Emacs!]] +- [[#emacs][Emacs]] + - [[#install-chemacs2][Install Chemacs2]] + - [[#install-cbshmacs][Install CBSHMacs]] + - [[#install-doom-emacs][Install DOOM Emacs]] - [[#the-fun-part-setting-the-default-user-shell][The Fun part, Setting the default USER shell!]] - [[#make-sure-sddm-is-enabled-so-we-dont-boot-into-a-tty-and-networkmanager-is-too-so-the-applet-works][Make Sure SDDM is enabled so we don't boot into a TTY, and NetworkManager is too so the applet works.]] - [[#installation-complete][Installation Complete!]] @@ -58,7 +61,7 @@ cd cbsh ** Potential Bugs *** Slow Download Times -These Scripts can take a LONG time to complete as there are around 200 packages. On Arch, make sure you are using ParallelDownloads in /etc/pacman.conf for faster download times, for example changing ParallelDownloads so that it downloads up to five packages at a time: +These Scripts can take a LONG time to complete as there are around 300+ packages. Make sure you are using ParallelDownloads in /etc/pacman.conf for faster download times, for example changing ParallelDownloads so that it downloads up to five packages at a time: #+begin_example ParallelDownloads = 5 #+end_example @@ -70,6 +73,10 @@ killall emacs /usr/bin/emacs --daemon & #+end_example +*** Issues that may cause the script to fail +- lib32-* not found: simple fix this one, before running the script, make sure you have the multilib repo enabled, as the script does install a couple packages from there, another benefit is being able to install Steam, should you wish, as for some reason Steam is still a 32-bit application. + +- Package Conflicts: some distros package their own versions of some programs and can cause the script to fail, so far i have not found any conflicts but when i do i will add a list of them here. * Updating CBSH CBSH is updated via your package manager. @@ -218,7 +225,7 @@ All packages listed are either in the standard Arch Repos, Repos provided by the sudo pacman --needed --ask 4 -Syu - < pkglist.txt # Now that pikaur is installed, we can sync the AUR and install some needed packages (Nerd Fonts) from there. -pikaur -Syu nerd-fonts-source-code-pro nerd-fonts-fira-code librewolf-bin +pikaur -Syu librewolf-bin #+end_src ~NOTE:~ On Arco, SourceCodePro and Librewolf are in their repos, and will be installed from there instead of the AUR. @@ -226,8 +233,8 @@ pikaur -Syu nerd-fonts-source-code-pro nerd-fonts-fira-code librewolf-bin By Default, the script normally installed the Nvidia Drivers, due to me using a Nvidia GPU, but recently i've realised it would be a much better idea to allow the user to install the relevant drivers based on what they use (Intel HD/Iris/Xe Graphics, AMD Graphics, Nvidia Graphics) instead of just installing the Nvidia Drivers if they don't use a Nvidia card. #+begin_src bash PS3='Set Graphics Drivers:' -shells=("intel" "nvidia-open", "nivdia" "amd" "quit") -select choice in "${shells[@]}"; do +gpu=("intel" "nvidia-open", "nivdia" "amd" "quit") +select choice in "${gpu[@]}"; do case $choice in intel) sudo pacman -S xf86-video-intel vulkan-intel intel-media-driver && \ @@ -299,16 +306,57 @@ sudo sed "8cSKEL=/etc/cbsh" useradd #+end_src -* Installing DOOM Emacs! +* Emacs +I am currently in the process of making an Emacs configuration from scratch for CBSH, +we keep the DOOM setup so you still have a well known config to use should you not want to, +you can use either setup as i am using chemacs2 to manage them. + +** Install Chemacs2 +First, Lets install Chemacs2 as our main emacs "configuration", its actually a shim of sorts that allows you to use more than one emacs configuration, +in our case it allows both CBSHMacs (the Vanilla Emacs Config) and DOOM Emacs to run alongside each other. +#+begin_src bash + echo "###########################" + echo "## Setting Up Chemacs2.. ##" + echo "###########################" + + # Backup any Emacs configuration you may have already + [ -d ~/.emacs.d ] && mv ~/.emacs.d ~/.emacs.d.bak.$(date +"%Y%m%d_%H%M%S") + [ -f ~/.emacs ] && mv ~/.emacs ~/.emacs.bak.$(date +"%Y%m%d_%H%M%S") + + # then we clone Chemacs2 + git clone https://github.com/plexus/chemacs2.git ~/.emacs.d + + # then finally copy our emacs profiles over + cp /etc/cbsh/chemacs2/* ~/ + + echo "####################" + echo "## Chemacs2 Done! ##" + echo "####################" + +#+end_src + +** Install CBSHMacs +CBSHMacs is my Vanilla Emacs configuration being built from scratch with CBSH in mind, allowing me more control and flexibility to properly intergrate Emacs into CBSH. +One thing to note, CBSHMacs doesn't have a install command like DOOM, i'm looking into doing something like this in the future but for now, +Packages get installed on first load with CBSHMacs, CBSHMacs is a lot leaner than DOOM currently so shouldn't take too long for use-package to install everything. +#+begin_src bash + echo "#########################" + echo "## Installing CBSHMacs ##" + echo "#########################" + + git clone https://gitlab.com/cbsh/cbsh-macs.git ~/.config/cbsh-macs + +#+end_src + +** Install DOOM Emacs +Now we install DOOM Emacs, this part will for sure take the longest, DOOM is pretty full featured and has a lot of packages it needs to download from ELPA/MELPA and then set itself up. #+begin_src bash echo "#########################################################" echo "## Installing Doom Emacs. This may take a few minutes. ##" echo "#########################################################" -[ -d ~/.emacs.d ] && mv ~/.emacs.d ~/.emacs.d.bak.$(date +"%Y%m%d_%H%M%S") -[ -f ~/.emacs ] && mv ~/.emacs ~/.emacs.bak.$(date +"%Y%m%d_%H%M%S") -git clone --depth 1 https://github.com/hlissner/doom-emacs ~/.emacs.d -~/.emacs.d/bin/doom install -~/.emacs.d/bin/doom sync +git clone --depth 1 https://github.com/hlissner/doom-emacs ~/.config/doomemacs +~/.config/doomemacs/bin/doom install +~/.config/doomemacs/bin/doom sync #+end_src @@ -343,8 +391,6 @@ echo "######################################################" echo "## Disable previous login manager, if there is one. ##" echo "######################################################" sudo systemctl disable $(grep '/usr/s\?bin' /etc/systemd/system/display-manager.service | awk -F / '{print $NF}') || echo "Cannot Disable current Display Manager, or a Display Manager isn't already installed." -======= -sudo systemctl disable $(grep '/usr/s\?bin' /etc/systemd/system/display-manager.service | awk -F / '{print $NF}') || echo "Cannot Disable current Display Manager, or one is not installed." # Then enable SDDM as the Login Manager sudo systemctl enable sddm diff --git a/cbsh b/cbsh index ca1474b..97ca5ca 100755 --- a/cbsh +++ b/cbsh @@ -69,13 +69,11 @@ recieve_keys || err "Error Recieving PGP key $_pgpkey" sudo pacman --needed --ask 4 -Syu - < pkglist.txt # Now that pikaur is installed, we can sync the AUR and install some needed packages (Nerd Fonts) from there. -pikaur -Syu nerd-fonts-source-code-pro nerd-fonts-fira-code librewolf-bin +pikaur -Syu librewolf-bin -PS3='NOTE: Currently, the nvidia-open drivers have an issue where they do not work on systems with AMD APUs, such as the Laptop Ryzen chips (C/U/H/HS/HX), or the Ryzen 2/3/4/5000 Series G Families of chips on the desktop, please use the closed source drivers instead to make sure you have a working system. -Set Graphics Drivers:' - -shells=("intel" "nvidia-open", "nivdia" "amd" "quit") -select choice in "${shells[@]}"; do +PS3='Set Graphics Drivers:' +gpu=("intel" "nvidia-open", "nivdia" "amd" "quit") +select choice in "${gpu[@]}"; do case $choice in intel) sudo pacman -S xf86-video-intel vulkan-intel intel-media-driver && \ @@ -106,6 +104,9 @@ select choice in "${shells[@]}"; do ;; esac done +echo "NOTE: Currently, the nvidia-open drivers have an issue where they do not work on systems with AMD APUs, +such as the Laptop Ryzen chips (C/U/H/HS/HX), or the Ryzen 2/3/4/5000 Series G Families of chips on the desktop, +please use the closed source drivers instead to make sure you have a working system." echo "#########################################################" echo "## Copying the config files from /etc/cbsh into \$HOME ##" @@ -133,14 +134,36 @@ echo "#######################################################################" cd /etc/default sudo sed "8cSKEL=/etc/cbsh" useradd +echo "###########################" +echo "## Setting Up Chemacs2.. ##" +echo "###########################" + +# Backup any Emacs configuration you may have already +[ -d ~/.emacs.d ] && mv ~/.emacs.d ~/.emacs.d.bak.$(date +"%Y%m%d_%H%M%S") +[ -f ~/.emacs ] && mv ~/.emacs ~/.emacs.bak.$(date +"%Y%m%d_%H%M%S") + +# then we clone Chemacs2 +git clone https://github.com/plexus/chemacs2.git ~/.emacs.d + +# then finally copy our emacs profiles over +cp /etc/cbsh/chemacs2/* ~/ + +echo "####################" +echo "## Chemacs2 Done! ##" +echo "####################" + +echo "#########################" +echo "## Installing CBSHMacs ##" +echo "#########################" + +git clone https://gitlab.com/cbsh/cbsh-macs.git ~/.config/cbsh-macs + echo "#########################################################" echo "## Installing Doom Emacs. This may take a few minutes. ##" echo "#########################################################" -[ -d ~/.emacs.d ] && mv ~/.emacs.d ~/.emacs.d.bak.$(date +"%Y%m%d_%H%M%S") -[ -f ~/.emacs ] && mv ~/.emacs ~/.emacs.bak.$(date +"%Y%m%d_%H%M%S") -git clone --depth 1 https://github.com/hlissner/doom-emacs ~/.emacs.d -~/.emacs.d/bin/doom install -~/.emacs.d/bin/doom sync +git clone --depth 1 https://github.com/hlissner/doom-emacs ~/.config/doomemacs +~/.config/doomemacs/bin/doom install +~/.config/doomemacs/bin/doom sync PS3='Set default USER shell (enter number): ' shells=("fish" "zsh" "bash" "quit") @@ -167,8 +190,6 @@ echo "######################################################" echo "## Disable previous login manager, if there is one. ##" echo "######################################################" sudo systemctl disable $(grep '/usr/s\?bin' /etc/systemd/system/display-manager.service | awk -F / '{print $NF}') || echo "Cannot Disable current Display Manager, or a Display Manager isn't already installed." -======= -sudo systemctl disable $(grep '/usr/s\?bin' /etc/systemd/system/display-manager.service | awk -F / '{print $NF}') || echo "Cannot Disable current Display Manager, or one is not installed." # Then enable SDDM as the Login Manager sudo systemctl enable sddm diff --git a/pkglist.txt b/pkglist.txt index 631dc74..fe32aaf 100644 --- a/pkglist.txt +++ b/pkglist.txt @@ -1,4 +1,3 @@ -alacritty pikaur base-devel bash @@ -7,7 +6,6 @@ flameshot easyeffects kdeconnect playerctl -alacritty-cbsh dmenu-cbsh dmenu-scripts cbsh-sddm-theme @@ -33,12 +31,14 @@ mpv networkmanager network-manager-applet pacman-contrib -pcmanfm +nemo picom qt5ct ripgrep sddm starship +ttf-sourcecodepro-nerd +ttf-firacode-nerd ttf-font-awesome ttf-ubuntu-font-family xdg-user-dirs