From d1874677cf9c92598e3f15431ebd6a1e5a2fd6a9 Mon Sep 17 00:00:00 2001 From: askiiart Date: Sun, 20 Aug 2023 21:35:16 -0500 Subject: [PATCH] Add zsh, add distro detection --- .../fedora/{setup-git.sh => setup-git.zsh} | 34 +++- zsh/zsh-files/.zkbd/linux-redhat-linux-gnu | 26 +++ zsh/zsh-files/.zkbd/xterm-256color-:0 | 26 +++ zsh/zsh-files/.zkbd/xterm-256color-_0 | 26 +++ .../.zkbd/xterm-256color-redhat-linux-gnu | 26 +++ zsh/zsh-files/.zkbd/xterm-kitty-:0 | 26 +++ zsh/zsh-files/.zkbd/xterm-kitty-_0 | 26 +++ zsh/zsh-files/.zkbd/xterm-redhat-linux-gnu | 27 +++ zsh/zsh-files/.zshrc | 168 ++++++++++++++++++ zsh/zsh-setup.bash | 18 ++ 10 files changed, 396 insertions(+), 7 deletions(-) rename daily-use-pcs/fedora/{setup-git.sh => setup-git.zsh} (61%) create mode 100755 zsh/zsh-files/.zkbd/linux-redhat-linux-gnu create mode 100755 zsh/zsh-files/.zkbd/xterm-256color-:0 create mode 100755 zsh/zsh-files/.zkbd/xterm-256color-_0 create mode 100644 zsh/zsh-files/.zkbd/xterm-256color-redhat-linux-gnu create mode 100644 zsh/zsh-files/.zkbd/xterm-kitty-:0 create mode 100755 zsh/zsh-files/.zkbd/xterm-kitty-_0 create mode 100644 zsh/zsh-files/.zkbd/xterm-redhat-linux-gnu create mode 100755 zsh/zsh-files/.zshrc create mode 100755 zsh/zsh-setup.bash diff --git a/daily-use-pcs/fedora/setup-git.sh b/daily-use-pcs/fedora/setup-git.zsh similarity index 61% rename from daily-use-pcs/fedora/setup-git.sh rename to daily-use-pcs/fedora/setup-git.zsh index 3e5eb18..2ab9d1a 100644 --- a/daily-use-pcs/fedora/setup-git.sh +++ b/daily-use-pcs/fedora/setup-git.zsh @@ -1,9 +1,29 @@ -#!/bin/bash +#!/bin/zsh -# Wait until enter is pressed +# Modify constants as needed +GITEA_URL = "https://git.askiiart.net" +REAL_NAME = "askiiart" +EMAIL = "dev@askiiart.net" + +# Note: This waits until enter is pressed # read -p "Press Enter to continue" < /dev/tty -sudo dnf install git -y +declare -A osInfo; +osInfo[/etc/redhat-release]=yum +osInfo[/etc/arch-release]=pacman +osInfo[/etc/gentoo-release]=emerge +osInfo[/etc/SuSE-release]=zypp +osInfo[/etc/debian_version]=apt-get +osInfo[/etc/alpine-release]=apk + +for f in ${(k)osInfo} +do + if [[ -f $f ]]; then + echo "Package manager: ${osInfo[$f]}" + fi +done + +sudo ${osInfo[$f]} install git -y # Install git credential manager curl -L https://aka.ms/gcm/linux-install-source.sh | sh @@ -22,8 +42,8 @@ echo $KEY_ID # Export GPG key gpg --armor --export $KEY_ID -echo This is the exported key, copy it and put it in Git* -echo Gitea URL: https://git.askiiart.net/user/settings/keys +echo This is the exported key, copy it and put it in GitHub/Gitea/whatever +echo Gitea URL: ${GITEA_URL}/user/settings/keys echo GitHub URL: https://github.com/settings/gpg/new read -p "Press enter when you're done" < /dev/tty @@ -39,8 +59,8 @@ ssh-keygen -f ~/.ssh/id_rsa -N "" -t rsa # Get SSH key echo cat ~/.ssh/id_rsa.pub -echo This is the SSH public key, copy it and put it in Gitea/GitHub/whatever -echo Gitea URL: https://git.askiiart.net/user/settings/keys +echo This is the SSH public key, copy it and put it in GitHub/Gitea/whatever +echo Gitea URL: ${GITEA_URL}/user/settings/keys echo GitHub URL: https://github.com/settings/ssh/new echo Fixing permissions, removing temp files... diff --git a/zsh/zsh-files/.zkbd/linux-redhat-linux-gnu b/zsh/zsh-files/.zkbd/linux-redhat-linux-gnu new file mode 100755 index 0000000..d121321 --- /dev/null +++ b/zsh/zsh-files/.zkbd/linux-redhat-linux-gnu @@ -0,0 +1,26 @@ +typeset -g -A key + +key[F1]='^[[[A' +key[F2]='^[[[B' +key[F3]='^[[[C' +key[F4]='^[[[D' +key[F5]='^[[[E' +key[F6]='^[[17~' +key[F7]='^[[18~' +key[F8]='^[[19~' +key[F9]='^[[20~' +key[F10]='^[[21~' +key[F11]='^[[23~' +key[F12]='^[[24~' +key[Backspace]='^?' +key[Insert]='^[[2~' +key[Home]='^[[1~' +key[PageUp]='^[[5~' +key[Delete]='^[[3~' +key[End]='^[[4~' +key[PageDown]='^[[6~' +key[Up]='^[[A' +key[Left]='^[[D' +key[Down]='^[[B' +key[Right]='^[[C' +key[Menu]='''' diff --git a/zsh/zsh-files/.zkbd/xterm-256color-:0 b/zsh/zsh-files/.zkbd/xterm-256color-:0 new file mode 100755 index 0000000..0c7ec77 --- /dev/null +++ b/zsh/zsh-files/.zkbd/xterm-256color-:0 @@ -0,0 +1,26 @@ +typeset -g -A key + +key[F1]='''' +key[F2]='^[OQ' +key[F3]='''' +key[F4]='^[OS' +key[F5]='''' +key[F6]='''' +key[F7]='^[[18~' +key[F8]='^[[19~' +key[F9]='^[[20~' +key[F10]='^[[21~' +key[F11]='''' +key[F12]='^[[24~' +key[Backspace]='^?' +key[Insert]='^[[2~' +key[Home]='^[[H' +key[PageUp]='^[[5~' +key[Delete]='^[[3~' +key[End]='^[[F' +key[PageDown]='^[[6~' +key[Up]='^[[A' +key[Left]='^[[D' +key[Down]='^[[B' +key[Right]='^[[C' +key[Menu]='''' diff --git a/zsh/zsh-files/.zkbd/xterm-256color-_0 b/zsh/zsh-files/.zkbd/xterm-256color-_0 new file mode 100755 index 0000000..0c7ec77 --- /dev/null +++ b/zsh/zsh-files/.zkbd/xterm-256color-_0 @@ -0,0 +1,26 @@ +typeset -g -A key + +key[F1]='''' +key[F2]='^[OQ' +key[F3]='''' +key[F4]='^[OS' +key[F5]='''' +key[F6]='''' +key[F7]='^[[18~' +key[F8]='^[[19~' +key[F9]='^[[20~' +key[F10]='^[[21~' +key[F11]='''' +key[F12]='^[[24~' +key[Backspace]='^?' +key[Insert]='^[[2~' +key[Home]='^[[H' +key[PageUp]='^[[5~' +key[Delete]='^[[3~' +key[End]='^[[F' +key[PageDown]='^[[6~' +key[Up]='^[[A' +key[Left]='^[[D' +key[Down]='^[[B' +key[Right]='^[[C' +key[Menu]='''' diff --git a/zsh/zsh-files/.zkbd/xterm-256color-redhat-linux-gnu b/zsh/zsh-files/.zkbd/xterm-256color-redhat-linux-gnu new file mode 100644 index 0000000..0c7ec77 --- /dev/null +++ b/zsh/zsh-files/.zkbd/xterm-256color-redhat-linux-gnu @@ -0,0 +1,26 @@ +typeset -g -A key + +key[F1]='''' +key[F2]='^[OQ' +key[F3]='''' +key[F4]='^[OS' +key[F5]='''' +key[F6]='''' +key[F7]='^[[18~' +key[F8]='^[[19~' +key[F9]='^[[20~' +key[F10]='^[[21~' +key[F11]='''' +key[F12]='^[[24~' +key[Backspace]='^?' +key[Insert]='^[[2~' +key[Home]='^[[H' +key[PageUp]='^[[5~' +key[Delete]='^[[3~' +key[End]='^[[F' +key[PageDown]='^[[6~' +key[Up]='^[[A' +key[Left]='^[[D' +key[Down]='^[[B' +key[Right]='^[[C' +key[Menu]='''' diff --git a/zsh/zsh-files/.zkbd/xterm-kitty-:0 b/zsh/zsh-files/.zkbd/xterm-kitty-:0 new file mode 100644 index 0000000..edd61cd --- /dev/null +++ b/zsh/zsh-files/.zkbd/xterm-kitty-:0 @@ -0,0 +1,26 @@ +typeset -g -A key + +key[F1]='^[OP' +key[F2]='^[OQ' +key[F3]='^[OR' +key[F4]='^[OS' +key[F5]='^[[15~' +key[F6]='^[[17~' +key[F7]='^[[18~' +key[F8]='^[[19~' +key[F9]='^[[20~' +key[F10]='^[[21~' +key[F11]='^[[23~' +key[F12]='^[[24~' +key[Backspace]='^?' +key[Insert]='^[[2~' +key[Home]='^[[H' +key[PageUp]='^[[5~' +key[Delete]='^[[3~' +key[End]='^[[F' +key[PageDown]='^[[6~' +key[Up]='^[[A' +key[Left]='^[[D' +key[Down]='^[[B' +key[Right]='^[[C' +key[Menu]='^[[29~' diff --git a/zsh/zsh-files/.zkbd/xterm-kitty-_0 b/zsh/zsh-files/.zkbd/xterm-kitty-_0 new file mode 100755 index 0000000..edd61cd --- /dev/null +++ b/zsh/zsh-files/.zkbd/xterm-kitty-_0 @@ -0,0 +1,26 @@ +typeset -g -A key + +key[F1]='^[OP' +key[F2]='^[OQ' +key[F3]='^[OR' +key[F4]='^[OS' +key[F5]='^[[15~' +key[F6]='^[[17~' +key[F7]='^[[18~' +key[F8]='^[[19~' +key[F9]='^[[20~' +key[F10]='^[[21~' +key[F11]='^[[23~' +key[F12]='^[[24~' +key[Backspace]='^?' +key[Insert]='^[[2~' +key[Home]='^[[H' +key[PageUp]='^[[5~' +key[Delete]='^[[3~' +key[End]='^[[F' +key[PageDown]='^[[6~' +key[Up]='^[[A' +key[Left]='^[[D' +key[Down]='^[[B' +key[Right]='^[[C' +key[Menu]='^[[29~' diff --git a/zsh/zsh-files/.zkbd/xterm-redhat-linux-gnu b/zsh/zsh-files/.zkbd/xterm-redhat-linux-gnu new file mode 100644 index 0000000..0044f28 --- /dev/null +++ b/zsh/zsh-files/.zkbd/xterm-redhat-linux-gnu @@ -0,0 +1,27 @@ +typeset -g -A key + +key[F1]='^[OP' +key[F2]='^[OQ' +key[F3]='^[OR' +key[F4]='^[OS' +key[F5]='^[[15~' +key[F6]='^[[17~' +key[F7]='^[[18~' +key[F8]='^[[19~' +key[F9]='^[[20~' +key[F10]='^[[21~' +key[F11]='^[[23~' +key[F12]='^[[24~' +key[Backspace]='^?' +key[Insert]='^[[2~' +key[Home]='^[[H' +key[End]='^[[F' +key[PageUp]='^[[5~' +key[Delete]='^[[3~' +key[End]='''' +key[PageDown]='^[[6~' +key[Up]='^[[A' +key[Left]='^[[D' +key[Down]='^[[B' +key[Right]='^[[C' +key[Menu]='^[[29~' diff --git a/zsh/zsh-files/.zshrc b/zsh/zsh-files/.zshrc new file mode 100755 index 0000000..2b617d1 --- /dev/null +++ b/zsh/zsh-files/.zshrc @@ -0,0 +1,168 @@ +# Original zshrc: + +# Lines configured by zsh-newuser-install +HISTFILE=~/.histfile +HISTSIZE=1000 +SAVEHIST=1000 +unsetopt beep +bindkey -e +# End of lines configured by zsh-newuser-install +# The following lines were added by compinstall +zstyle :compinstall filename '/home/ben/.zshrc' + +autoload -Uz compinit +compinit +# End of lines added by compinstall + +# To redo zsh wizard, run these: +# autoload -Uz zsh-newuser-install +# zsh-newuser-install -f + +# User specific aliases and functions + +alias rm='rm -i' +alias cp='cp -i' +alias mv='mv -i' + +# some more ls aliases +alias ll='ls -l' +alias la='ls -A' +alias l='ls -CF' + +# kitty stuff +alias icat="kitty +kitten icat" +#export TERM=xterm + +# docker stuff +alias dcompose='docker compose up -d --remove-orphans' +alias docker='docker' +export DOCKER_HOST=unix:///run/user/1000/docker.sock + +# keyboard fixes +unsetopt MULTIBYTE +source ~/.zkbd/$TERM-${${DISPLAY:t}:-$VENDOR-$OSTYPE} +bindkey "${key[Left]}" backward-char +bindkey "${key[Right]}" forward-char +bindkey "^[[1;5C" forward-word +bindkey "^[[1;5D" backward-word +bindkey "${key[Home]}" beginning-of-line +bindkey "${key[End]}" end-of-line +bindkey "${key[Delete]}" delete-char +bindkey "^[[3;5~" delete-word +bindkey "^H" backward-delete-word +bindkey "${key[Up]}" up-history +bindkey "${key[Down]}" down-history +bindkey "^Z" undo +bindkey "^Y" redo + +export EDITOR="nvim" +export VISUAL=$EDITOR + +# ######################################### +# End of original zshrc +# ######################################### + +# If you come from bash you might have to change your $PATH. +export PATH=/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/home/ben/.local/bin + +# Path to your oh-my-zsh installation. +export ZSH="$HOME/.oh-my-zsh" + +# Set name of the theme to load --- if set to "random", it will +# load a random theme each time oh-my-zsh is loaded, in which case, +# to know which specific one was loaded, run: echo $RANDOM_THEME +# See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes +ZSH_THEME="robbyrussell" + +# Set list of themes to pick from when loading at random +# Setting this variable when ZSH_THEME=random will cause zsh to load +# a theme from this variable instead of looking in $ZSH/themes/ +# If set to an empty array, this variable will have no effect. +# ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" ) + +# Uncomment the following line to use case-sensitive completion. +# CASE_SENSITIVE="true" + +# Uncomment the following line to use hyphen-insensitive completion. +# Case-sensitive completion must be off. _ and - will be interchangeable. +# HYPHEN_INSENSITIVE="true" + +# Uncomment one of the following lines to change the auto-update behavior +# zstyle ':omz:update' mode disabled # disable automatic updates +# zstyle ':omz:update' mode auto # update automatically without asking +# zstyle ':omz:update' mode reminder # just remind me to update when it's time + +# Uncomment the following line to change how often to auto-update (in days). +# zstyle ':omz:update' frequency 13 + +# Uncomment the following line if pasting URLs and other text is messed up. +# DISABLE_MAGIC_FUNCTIONS="true" + +# Uncomment the following line to disable colors in ls. +# DISABLE_LS_COLORS="true" + +# Uncomment the following line to disable auto-setting terminal title. +# DISABLE_AUTO_TITLE="true" + +# Uncomment the following line to enable command auto-correction. +# ENABLE_CORRECTION="true" + +# Uncomment the following line to display red dots whilst waiting for completion. +# You can also set it to another string to have that shown instead of the default red dots. +# e.g. COMPLETION_WAITING_DOTS="%F{yellow}waiting...%f" +# Caution: this setting can cause issues with multiline prompts in zsh < 5.7.1 (see #5765) +# COMPLETION_WAITING_DOTS="true" + +# Uncomment the following line if you want to disable marking untracked files +# under VCS as dirty. This makes repository status check for large repositories +# much, much faster. +# DISABLE_UNTRACKED_FILES_DIRTY="true" + +# Uncomment the following line if you want to change the command execution time +# stamp shown in the history command output. +# You can set one of the optional three formats: +# "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd" +# or set a custom format using the strftime function format specifications, +# see 'man strftime' for details. +# HIST_STAMPS="mm/dd/yyyy" + +# Would you like to use another custom folder than $ZSH/custom? +# ZSH_CUSTOM=/path/to/new-custom-folder + +# Which plugins would you like to load? +# Standard plugins can be found in $ZSH/plugins/ +# Custom plugins may be added to $ZSH_CUSTOM/plugins/ +# Example format: plugins=(rails git textmate ruby lighthouse) +# Add wisely, as too many plugins slow down shell startup. +plugins=(git cmdtime) + +source $ZSH/oh-my-zsh.sh + +# User configuration + +# export MANPATH="/usr/local/man:$MANPATH" + +# You may need to manually set your language environment +# export LANG=en_US.UTF-8 + +# Preferred editor for local and remote sessions +# if [[ -n $SSH_CONNECTION ]]; then +# export EDITOR='vim' +# else +# export EDITOR='mvim' +# fi + +# Compilation flags +# export ARCHFLAGS="-arch x86_64" + +# Set personal aliases, overriding those provided by oh-my-zsh libs, +# plugins, and themes. Aliases can be placed here, though oh-my-zsh +# users are encouraged to define aliases within the ZSH_CUSTOM folder. +# For a full list of active aliases, run `alias`. +# +# Example aliases +alias zshconfig="mate ~/.zshrc" +alias ohmyzsh="mate ~/.oh-my-zsh" +alias s="kitty +kitten ssh" + +export GPG_TTY=$(tty) diff --git a/zsh/zsh-setup.bash b/zsh/zsh-setup.bash new file mode 100755 index 0000000..6263073 --- /dev/null +++ b/zsh/zsh-setup.bash @@ -0,0 +1,18 @@ +declare -A osInfo; +osInfo[/etc/redhat-release]=yum +osInfo[/etc/arch-release]=pacman +osInfo[/etc/gentoo-release]=emerge +osInfo[/etc/SuSE-release]=zypp +osInfo[/etc/debian_version]=apt-get +osInfo[/etc/alpine-release]=apk + +for f in ${!osInfo[@]} +do + if [[ -f $f ]];then + echo Package manager: ${osInfo[$f]} + fi +done + +sudo ${osInfo[$f]} install zsh -y + +cp -r zsh-files/* ~/ \ No newline at end of file