diff --git a/README.md b/README.md index 31e4ce9..fa72902 100644 --- a/README.md +++ b/README.md @@ -101,11 +101,16 @@ grim satty fzf micro +stow +zoxide +zsh +zsh-theme-powerlevel10k +eza # installation of that software: -`sudo pacman -Syu ghostty firefox dms-shell yay git nautilus brightnessctl pipewire-pulse pipewire matugen adw-gtk-theme wl-copy hyprshot grim satty` +`sudo pacman -Syu ghostty firefox dms-shell yay git nautilus brightnessctl pipewire-pulse pipewire matugen adw-gtk-theme wl-copy hyprshot grim satty stow zoxide zsh zsh-theme-powerlevel10k eza` `yay -S mangowm-git dsearch-bin` @@ -117,6 +122,33 @@ you can open the mango config editor with super+m, this opens a terminal in whic this script has a variable for the editor, it uses micro by default, but you can change the line "app=micro" to any editor you'd like. +# ghostty config + +SDG-OS ships with a ghostty config that syncs your theme with DMS, sets ghostty to use zsh and configure some basic keybinds for multi-window: +ctrl+arrow keys for splitting the pane +ctrl+r to reload the config + +you can exit a pane by simply typing exit. panes are auto-focused with the mouse and can be resized using mouse drags. + +# zsh config + +zsh is set up with a couple of interesting tweaks: + +eza replaces the standard ls command and zoxide replaces the cd command, allowing you to more easily navigate your system. + +find has been replaced with a fzf implementation, and the command microfind will automatically open the selected file in micro. both of these have previews. + +lastly, zsh also has some suffix aliasses, which allow you to open specific filetypes in their prefered program by just entering the file as the command. + +# installer TUIs + +SDG-OS comes with installer TUIs for both pacman and the AUR + +these can be spawned with super+y for pacman or super+shift+y for AUR + +alternatively, you can open them in the terminal using `pacgui` and `aurgui` + + # contributing anyone with an SDGCloud account can work on forks of this repository and send code in for review, just shoot me a message if you have something interesting for the config and i'll take a look at it! diff --git a/ghostty/config.ghostty b/ghostty/config.ghostty new file mode 100644 index 0000000..57f3bab --- /dev/null +++ b/ghostty/config.ghostty @@ -0,0 +1,26 @@ +theme = dankcolors + +background-opacity = 0.7 + +command = /bin/zsh + +initial-command = /bin/zsh -c fastfetch && zsh + +scrollback-limit = 999999 + +link-url = true +link-previews = true + +window-decoration = none + +focus-follows-mouse = true + +shell-integration = zsh + + + +keybind = ctrl+up=new_split:up +keybind = ctrl+down=new_split:down +keybind = ctrl+left=new_split:left +keybind = ctrl+right=new_split:right +keybind = ctrl+r=reload_config \ No newline at end of file diff --git a/ghostty/themes/dankcolors b/ghostty/themes/dankcolors new file mode 100644 index 0000000..577f4ea --- /dev/null +++ b/ghostty/themes/dankcolors @@ -0,0 +1,22 @@ +background = #0e141c +foreground = #dde3ee +cursor-color = #a1c9ff +selection-background = #004880 +selection-foreground = #dde3ee + +palette = 0=#0e141c +palette = 1=#ff729b +palette = 2=#7fff91 +palette = 3=#fff772 +palette = 4=#87b4f2 +palette = 5=#264876 +palette = 6=#a1c9ff +palette = 7=#eff6ff +palette = 8=#999ea5 +palette = 9=#ff9fbb +palette = 10=#a5ffb2 +palette = 11=#fffaa5 +palette = 12=#afd1ff +palette = 13=#bdd9ff +palette = 14=#d4e6ff +palette = 15=#f8fbff diff --git a/ghostty/themes/noctalia b/ghostty/themes/noctalia new file mode 100644 index 0000000..b725232 --- /dev/null +++ b/ghostty/themes/noctalia @@ -0,0 +1,22 @@ +palette = 0=#1c1e1e +palette = 1=#ff6b5a +palette = 2=#98be65 +palette = 3=#f2c481 +palette = 4=#51afef +palette = 5=#dc8ef3 +palette = 6=#46d9ff +palette = 7=#bbc2cf +palette = 8=#2e323a +palette = 9=#ff7665 +palette = 10=#a9cf76 +palette = 11=#f2c481 +palette = 12=#47a5e5 +palette = 13=#c678dd +palette = 14=#4db5bd +palette = 15=#f0f6fc +background = #1c1e1e +foreground = #fffcf8 +cursor-color = #bbc2cf +cursor-text = #1c1e1e +selection-background = #fffcf8 +selection-foreground = #2d3138 diff --git a/install.sh b/install.sh index 5986595..aa0e47c 100644 --- a/install.sh +++ b/install.sh @@ -2,7 +2,7 @@ echo "installing pre-requisites" -sudo pacman -Syu ghostty firefox dms-shell yay git nautilus brightnessctl pipewire-pulse pipewire matugen adw-gtk-theme wl-copy hyprshot grim satty stow +sudo pacman -Syu ghostty firefox dms-shell yay git nautilus brightnessctl pipewire-pulse pipewire matugen adw-gtk-theme wl-copy hyprshot grim satty stow zoxide zsh zsh-theme-powerlevel10k eza yay -S mangowm-git dsearch-bin @@ -16,6 +16,9 @@ stow . echo "on" > ~/.config/SDGupdate.state +echo "source /home/$(whoami)/.config/sdgos/zshconfig.zsh" >> ~/.zshrc + + chmod -R a+x ~/.config/sdgos echo "installation complete! you should now be able to log out and switch to \"mango\"" diff --git a/mango/binds.conf b/mango/binds.conf index 030de55..32e1020 100644 --- a/mango/binds.conf +++ b/mango/binds.conf @@ -1,6 +1,6 @@ # Example binds -bind=SUPER,R,reload_config # reload mango config +bind=SUPER,R,reload_config # Actions # window management @@ -26,6 +26,8 @@ bind=SUPER,Z,spawn_shell,dms ipc call powermenu toggle # toggle power menu bind=SUPER,S,spawn_shell,dms ipc call settings toggle # toggle settings bind=SUPER,K,spawn_shell,dms ipc call keybinds toggleWithPath mangowc ~/.config/mango/binds.conf # show binds bind=SUPER,M,spawn_shell,ghostty -e ~/.config/sdgos/mango-config.sh # show mango config editor +bind=SUPER,Y,spawn_shell,ghostty -e ~/.config/sdgos/tuis/pkg-install.sh # install packages +bind=SUPER+SHIFT,Y,spawn_shell,ghostty -e ~/.config/sdgos/tuis/aur-install.sh # install AUR packages #program launchers bind=SUPER,RETURN,spawn_shell,ghostty diff --git a/mango/dms/colors.conf b/mango/dms/colors.conf index c4239d4..1a64ac7 100644 --- a/mango/dms/colors.conf +++ b/mango/dms/colors.conf @@ -1,6 +1,6 @@ # ! Auto-generated file. Do not edit directly. # Remove source = ./dms/colors.conf from your config to override. -bordercolor = 0x8e909cff -focuscolor = 0xb4c5ffff +bordercolor = 0x8b919cff +focuscolor = 0xa1c9ffff urgentcolor = 0xffb4abff diff --git a/sdgos/tuis/aur-install.sh b/sdgos/tuis/aur-install.sh new file mode 100755 index 0000000..21661b3 --- /dev/null +++ b/sdgos/tuis/aur-install.sh @@ -0,0 +1,28 @@ +#!/bin/bash + +# Show a fuzzy-finder TUI for picking new AUR packages to install. + +fzf_args=( + --multi + --preview 'clear && yay -Siia {1}' + --preview-label='alt-p: toggle description, alt-b/B: toggle PKGBUILD, alt-j/k: scroll, tab: multi-select' + --preview-label-pos='bottom' + --preview-window 'left:65%:wrap' + --bind 'alt-p:toggle-preview' + --bind 'alt-d:preview-half-page-down,alt-u:preview-half-page-up' + --bind 'alt-k:preview-up,alt-j:preview-down' + --bind 'alt-b:change-preview:clear && yay -Gpa {1} | tail -n +5' + --bind 'alt-B:change-preview:clear && yay -Siia {1}' + --color 'pointer:green,marker:green' +) + +pkg_names=$(yay -Slqa | fzf "${fzf_args[@]}") + +if [[ -n $pkg_names ]]; then + # Add aur/ prefix to each package name and convert to space-separated for yay + sudo -v + echo "$pkg_names" | sed 's/^/aur\//' | tr '\n' ' ' | xargs yay -S --noconfirm + sudo updatedb + echo "done installing!" + read -n 1 +fi diff --git a/sdgos/tuis/pkg-install.sh b/sdgos/tuis/pkg-install.sh new file mode 100755 index 0000000..acf42a2 --- /dev/null +++ b/sdgos/tuis/pkg-install.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +# Show a fuzzy-finder TUI for picking new Arch and OPR packages to install. + +fzf_args=( + --multi + --preview 'clear && pacman -Sii {1}' + --preview-label='alt-p: toggle description, alt-j/k: scroll, tab: multi-select' + --preview-label-pos='bottom' + --preview-window 'left:65%:wrap' + --bind 'alt-p:toggle-preview' + --bind 'alt-d:preview-half-page-down,alt-u:preview-half-page-up' + --bind 'alt-k:preview-up,alt-j:preview-down' + --color 'pointer:green,marker:green' +) + +pkg_names=$(pacman -Slq | fzf "${fzf_args[@]}") + +if [[ -n $pkg_names ]]; then + # Convert newline-separated selections to space-separated for yay + echo "$pkg_names" | tr '\n' ' ' | xargs sudo pacman -S --noconfirm + echo "finished installing." + read -n 1 +fi diff --git a/sdgos/zshconfig.zsh b/sdgos/zshconfig.zsh new file mode 100644 index 0000000..f3defd5 --- /dev/null +++ b/sdgos/zshconfig.zsh @@ -0,0 +1,46 @@ + +## command aliases +alias pacgui=~/.config/sdgos/tuis/pkg-install.sh +alias aurgui=~/.config/sdgos/tuis/aur-install.sh +alias find="fzf --layout=reverse --preview='bat {}'" +alias microfind='micro $(pwd)/$(fzf --layout=reverse --preview="bat {}")' +alias ls='eza -al --color=always --group-directories-first --icons' # preferred listing +alias la='eza -a --color=always --group-directories-first --icons' # all files and dirs +alias ll='eza -l --color=always --group-directories-first --icons' # long format +alias lt='eza -aT --color=always --group-directories-first --icons' # tree listing +alias l.="eza -a | grep -e '^\.'" # show only dotfiles +alias ..='cd ..' +alias ...='cd ../..' +alias ....='cd ../../..' +alias .....='cd ../../../..' +alias ......='cd ../../../../..' +alias dir='dir --color=auto' +alias vdir='vdir --color=auto' +alias grep='grep --color=auto' +alias fgrep='fgrep --color=auto' +alias egrep='egrep --color=auto' +alias update='sudo pacman -Syu' +alias gitpkg='pacman -Q | grep -i "\-git" | wc -l' +alias apt='man pacman' +alias apt-get='man pacman' +alias please='sudo' +alias jctl="journalctl -p 3 -xb" +EDITOR=micro +IMAGEPROGRAM='satty --filename' + +## filetype aliases, default-opens them with the set program +alias -s json=$EDITOR +alias -s yaml=$EDITOR +alias -s md=$EDITOR +alias -s toml=$EDITOR +alias -s conf=$EDITOR +alias -s yml=$EDITOR +alias -s txt=$EDITOR +alias -s css=$EDITOR +alias -s html=$EDITOR +alias -s png=$IMAGEPROGRAM +alias -s jpg=$IMAGEPROGRAM +alias -s jpeg=$IMAGEPROGRAM +alias -s webp=$IMAGEPROGRAM + +eval "$(zoxide init zsh --cmd cd )" \ No newline at end of file