diff --git a/applications.go b/applications.go index 71d51e6..d84f7d7 100644 --- a/applications.go +++ b/applications.go @@ -7,7 +7,7 @@ import ( func applications() { for { var doAll bool - choice := front.InputMenuGen("Application to install:", []string{"BACK", "ALL", "pamac-aur", "yay-bin", "htop", "neovim", "virt-manager (also installs qemu-desktop+libvirt)", "librewolf-bin", "zed", "steam"}) + choice := front.InputMenuGen("Application to install:", []string{"BACK", "ALL", "pamac-aur", "yay-bin", "zsh", "htop", "neovim", "virt-manager (also installs qemu-desktop+libvirt)", "librewolf-bin", "zed", "steam"}) switch choice { case 1: return @@ -15,59 +15,124 @@ func applications() { doAll = true fallthrough case 3: - managePackage("-S", "pamac-aur") + managePackages("-S", []string{"pamac-aur"}) if !doAll { break } fallthrough case 4: - managePackage("-S", "yay-bin") + managePackages("-S", []string{"yay-bin"}) if !doAll { break } fallthrough case 5: - managePackage("-S", "htop") + managePackages("-S", []string{"zsh", "zsh-autosuggestions", "zsh-syntax-highlighting"}) + writeFile(mountPoint+"/home/"+getUsername()+"/.zshrc", zshrc, getUsername(), 0644) if !doAll { break } fallthrough case 6: - managePackage("-S", "neovim") + managePackages("-S", []string{"htop"}) if !doAll { break } fallthrough case 7: - chrootCommandRun([]string{"pacman", "-S", "virt-manager", "qemu-desktop", "libvirt", "--noconfirm"}) + managePackages("-S", []string{"neovim"}) + + if !doAll { + break + } + fallthrough + case 8: + managePackages("-S", []string{"virt-manager", "qemu-desktop", "libvirt"}) manageService("enable", "libvirtd.service") manageService("start", "libvirtd.service") // TODO manage user groups! - if !doAll { - break - } - fallthrough - case 8: - managePackage("-S", "librewolf-bin") - if !doAll { break } fallthrough case 9: - managePackage("-S", "zed") + managePackages("-S", []string{"librewolf-bin"}) if !doAll { break } fallthrough case 10: - managePackage("-S", "steam") + managePackages("-S", []string{"zed"}) + + if !doAll { + break + } + fallthrough + case 11: + managePackages("-S", []string{"steam"}) } } } + +const zshrc = `# Shell settings +HISTFILE="$XDG_CACHE_HOME"/zsh-histfile +HISTSIZE=2500 +SAVEHIST=2000 +setopt INC_APPEND_HISTORY +setopt HIST_EXPIRE_DUPS_FIRST +setopt HIST_FIND_NO_DUPS +unsetopt beep +bindkey -e +zstyle :compinstall filename "/home/$USER/.zshrc" +autoload -Uz compinit +compinit -d "$XDG_CACHE_HOME"/zcompdump +PS1='%F{yellow}%?%F{cyan}|%n%f@%F{cyan}%m:%f%1~%f%F{cyan}|%#%f ' +source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh +source /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh +bindkey '^[[H' beginning-of-line +bindkey '^[[F' end-of-line +bindkey '^[[3~' delete-char + +# Text art on clear/new shell +art_cat='%F{#fe8019}/\_,_/\ +\ 0 0 /%f' +art_dog=' %F{#d79921}/___/ +| 6.6 |%f' +art_bear='%F{#d65d0e}() () +(o.o)%f' +art_snail=' %F{#689d6a}|_/ +/o o\%f' +art_bunny=' %F{#d5c4a1}/_/ +|^.^|' +art_jellyfish='%F{#83a598}<===> +//|\\%f' +art_school=' %F{#fe8019}<°))>< %F{#fabd2f}><(((.> +%F{#8ec07c}><(((°> %F{#d3869b}><((((°>%f' +art_array=("$art_cat" "$art_dog" "$art_bear" "$art_snail" "$art_bunny" "$art_jellyfish" "$art_school") +print -Pr "$art_array[$((RANDOM%7+1))]" +function term_clear() { + clear + print -Pr "$art_array[$((RANDOM%7+1))]" + print -Pn $PS1 +} +zle -N zsh-redraw term_clear +bindkey "^L" zsh-redraw + +# Stock aliases +alias ls='ls --color=auto' +alias grep='grep --color=auto' +alias fastfetch='fastfetch -c neofetch' +alias unmv='setopt shwordsplit && lastCmdSplit=(${(@s/ /)$(fc -ln -1)}) && newCmd="mv ${lastCmdSplit[3]} ${lastCmdSplit[2]}" && $newCmd && unsetopt shwordsplit' +alias orphans='doas pacman -Rcns $(pacman -Qqdt)' +alias powersave='doas /usr/local/bin/powerset.sh powersave' +alias performance='doas /usr/local/bin/powerset.sh performance' +alias schedutil='doas /usr/local/bin/powerset.sh schedutil' +alias poweroff='doas /usr/bin/poweroff' +alias reboot='doas /usr/bin/reboot' +` diff --git a/configurations.go b/configurations.go index 6467325..8f3bcff 100644 --- a/configurations.go +++ b/configurations.go @@ -7,7 +7,7 @@ import ( func configurations() { for { var doAll bool - choice := front.InputMenuGen("Custom config:", []string{"BACK", "ALL", "shell profile", "zshrc", "neovim", "zed", "makepkg", "pacman"}) + choice := front.InputMenuGen("Custom config:", []string{"BACK", "ALL", "shell profile", "neovim", "zed", "makepkg", "pacman"}) switch choice { case 1: return @@ -15,7 +15,7 @@ func configurations() { doAll = true fallthrough case 3: - managePackage("-S", "wayland-protocols") + managePackages("-S", []string{"wayland-protocols"}) writeFile(mountPoint+"/home/"+getUsername()+"/.profile", shellProfile, getUsername(), 0644) if !doAll { @@ -23,20 +23,13 @@ func configurations() { } fallthrough case 4: - writeFile(mountPoint+"/home/"+getUsername()+"/.zshrc", zshrc, getUsername(), 0644) - - if !doAll { - break - } - fallthrough - case 5: writeFile(mountPoint+"/etc/xdg/nvim/sysinit.vim", sysinitVim, "root", 0644) if !doAll { break } fallthrough - case 6: + case 5: mkdir(mountPoint + "/home/" + getUsername() + "/.config/zed") writeFile(mountPoint+"/home/"+getUsername()+"/.config/zed/settings.json", zed, getUsername(), 0600) @@ -44,15 +37,15 @@ func configurations() { break } fallthrough - case 7: + case 6: writeFile(mountPoint+"/etc/makepkg.conf", makepkg, "root", 0644) if !doAll { break } fallthrough - case 8: - managePackage("-S", "pacman-contrib") + case 7: + managePackages("-S", []string{"pacman-contrib"}) writeFile(mountPoint+"/etc/pacman.conf", pacman, "root", 0644) writeFile(mountPoint+"/etc/pacman.d/hooks/paccache-clean.hook", pacmanHookClean, "root", 0644) writeFile(mountPoint+"/etc/pacman.d/hooks/nvidia.hook", pacmanHookNvidia, "root", 0644) @@ -100,63 +93,6 @@ export SHELL=/usr/bin/zsh export BUILDDIR=/tmp/makepkg ` -const zshrc = `# Shell settings -HISTFILE="$XDG_CACHE_HOME"/zsh-histfile -HISTSIZE=2500 -SAVEHIST=2000 -setopt INC_APPEND_HISTORY -setopt HIST_EXPIRE_DUPS_FIRST -setopt HIST_FIND_NO_DUPS -unsetopt beep -bindkey -e -zstyle :compinstall filename "/home/$USER/.zshrc" -autoload -Uz compinit -compinit -d "$XDG_CACHE_HOME"/zcompdump -PS1='%F{yellow}%?%F{cyan}|%n%f@%F{cyan}%m:%f%1~%f%F{cyan}|%#%f ' -source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh -source /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh -bindkey '^[[H' beginning-of-line -bindkey '^[[F' end-of-line -bindkey '^[[3~' delete-char - -# Text art on clear/new shell -art_cat='%F{#fe8019}/\_,_/\ -\ 0 0 /%f' -art_dog=' %F{#d79921}/___/ -| 6.6 |%f' -art_bear='%F{#d65d0e}() () -(o.o)%f' -art_snail=' %F{#689d6a}|_/ -/o o\%f' -art_bunny=' %F{#d5c4a1}/_/ -|^.^|' -art_jellyfish='%F{#83a598}<===> -//|\\%f' -art_school=' %F{#fe8019}<°))>< %F{#fabd2f}><(((.> -%F{#8ec07c}><(((°> %F{#d3869b}><((((°>%f' -art_array=("$art_cat" "$art_dog" "$art_bear" "$art_snail" "$art_bunny" "$art_jellyfish" "$art_school") -print -Pr "$art_array[$((RANDOM%7+1))]" -function term_clear() { - clear - print -Pr "$art_array[$((RANDOM%7+1))]" - print -Pn $PS1 -} -zle -N zsh-redraw term_clear -bindkey "^L" zsh-redraw - -# Stock aliases -alias ls='ls --color=auto' -alias grep='grep --color=auto' -alias fastfetch='fastfetch -c neofetch' -alias unmv='setopt shwordsplit && lastCmdSplit=(${(@s/ /)$(fc -ln -1)}) && newCmd="mv ${lastCmdSplit[3]} ${lastCmdSplit[2]}" && $newCmd && unsetopt shwordsplit' -alias orphans='doas pacman -Rcns $(pacman -Qqdt)' -alias powersave='doas /usr/local/bin/powerset.sh powersave' -alias performance='doas /usr/local/bin/powerset.sh performance' -alias schedutil='doas /usr/local/bin/powerset.sh schedutil' -alias poweroff='doas /usr/bin/poweroff' -alias reboot='doas /usr/bin/reboot' -` - const sysinitVim = `" rwinkhart/cachyos-postinstall-helper 09/28/2025 " ensure correct basic settings diff --git a/cosmic.go b/cosmic.go index a682216..8f1468a 100644 --- a/cosmic.go +++ b/cosmic.go @@ -37,5 +37,5 @@ func cosmic() { manageService("stop", "sddm.service") manageService("disable", "sddm.service") manageService("enable", "greetd.service") - managePackage("-Rcns", "sddm") + managePackages("-Rcns", []string{"sddm"}) } diff --git a/removals.go b/removals.go index 149a8f6..5b2d6b1 100644 --- a/removals.go +++ b/removals.go @@ -17,7 +17,7 @@ func removals() { target = "linux-cachyos-lts" } if !doAll { - managePackage("-Rcns", target) + managePackages("-Rcns", []string{target}) } } } diff --git a/system.go b/system.go index 9626335..46e3328 100644 --- a/system.go +++ b/system.go @@ -21,9 +21,9 @@ func system() { fallthrough case 3: writeFile(mountPoint+"/etc/doas.conf", "permit persist keepenv :wheel as root\n", "root", 0644) - managePackage("-S", "opendoas") - chrootCommandRun([]string{"pacman", "-S", "--asexplicit", "--dbonly", "archlinux-keyring", "autoconf", "automake", "binutils", "bison", "debugedit", "fakeroot", "file", "findutils", "flex", "gawk", "gcc", "gettext", "grep", "groff", "gzip", "libtool", "m4", "make", "pacman", "patch", "pkgconf", "sed", "texinfo", "which", "--noconfirm"}) - chrootCommandRun([]string{"pacman", "-R", "base-devel", "sudo", "--noconfirm"}) + managePackages("-S", []string{"opendoas"}) + managePackages("-S", []string{"--asexplicit", "--dbonly", "archlinux-keyring", "autoconf", "automake", "binutils", "bison", "debugedit", "fakeroot", "file", "findutils", "flex", "gawk", "gcc", "gettext", "grep", "groff", "gzip", "libtool", "m4", "make", "pacman", "patch", "pkgconf", "sed", "texinfo", "which"}) + managePackages("-R", []string{"base-devel", "sudo"}) if !doAll { break diff --git a/utilities.go b/utilities.go index 8985206..2a1098a 100644 --- a/utilities.go +++ b/utilities.go @@ -15,8 +15,8 @@ func manageService(action, service string) { chrootCommandRun([]string{"systemctl", action, service}) } -func managePackage(action, targetPackage string) { - chrootCommandRun([]string{"pacman", action, targetPackage, "--noconfirm"}) +func managePackages(action string, targetPackages []string) { + chrootCommandRun(append([]string{"pacman", action, "--noconfirm"}, targetPackages...)) } func writeFile(path, data, owner string, perms os.FileMode) {