From 0e741291f1ea350c398302e4b212a28f5c77840a Mon Sep 17 00:00:00 2001 From: Mark Nipper Date: Thu, 18 Apr 2024 19:28:29 -0700 Subject: Add root to home manager --- home/root/common/core/zsh/default.nix | 45 ++++++++++++++ home/root/common/core/zsh/zshrc | 110 ++++++++++++++++++++++++++++++++++ 2 files changed, 155 insertions(+) create mode 100644 home/root/common/core/zsh/default.nix create mode 100644 home/root/common/core/zsh/zshrc (limited to 'home/root/common/core/zsh') diff --git a/home/root/common/core/zsh/default.nix b/home/root/common/core/zsh/default.nix new file mode 100644 index 0000000..77d4b75 --- /dev/null +++ b/home/root/common/core/zsh/default.nix @@ -0,0 +1,45 @@ +{ + programs.zsh = { + enable = true; + envExtra = '' +export PATH=~/bin:''${PATH} + +#export PS1="%B%n%b@%U%m%u/%l:%~> " +export PAGER=less +export EDITOR=vim +export BROWSER=firefox + +export LC_COLLATE="C" +export QUOTING_STYLE="literal" + +export IRCNICK="nipsy" +export IRCNAME="Mark Nipper" + +export NNTPSERVER="news.giganews.com" + +#export COLORTERM=truecolor +export COLORFGBG="green;blue" + +# fix stupid broken Java shit +export _JAVA_AWT_WM_NONREPARENTING=1 + +# enable pass extensions +export PASSWORD_STORE_ENABLE_EXTENSIONS=true + ''; + history = { + save = 100000; + size = 100000; + }; + initExtra = (builtins.readFile ./zshrc); + shellAliases = { + fixkeyboard = "setxkbmap -layout us -option caps:super -option compose:ralt"; + grep = "grep --color=auto"; + ip = "ip -c=auto"; + la = "ls -aFh --color=auto"; + ll = "ls -alF --color=auto"; + lock = "xscreensaver-command -lock"; + steam-no-beta = "steam -clearbeta"; + zgrep = "zgrep --color=auto"; + }; + }; +} diff --git a/home/root/common/core/zsh/zshrc b/home/root/common/core/zsh/zshrc new file mode 100644 index 0000000..cd857e3 --- /dev/null +++ b/home/root/common/core/zsh/zshrc @@ -0,0 +1,110 @@ +umask 022 + +eval $(dircolors) + +# set SWAYSOCK correctly +if pgrep -U nipsy -x sway >/dev/null; then + export SWAYSOCK=/run/user/$(id -u)/sway-ipc.$(id -u).$(pgrep -x sway).sock +fi + +# start sway by default if logging into tty1 +if [[ -z "${DISPLAY}" ]] && [[ $(tty) == "/dev/tty1" ]]; then + + export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket) + + # set some Wayland specific variables + export MOZ_ENABLE_WAYLAND=1 + export GDK_BACKEND=wayland + export QT_QPA_PLATFORM=wayland + export SDL_VIDEODRIVER=wayland + export XDG_SESSION_TYPE=wayland + + exec sway > ~/.sway.log + +fi + +# if already in Wayland, update the GPG TTY so ssh-askpass will work correctly +if [[ -n "${WAYLAND_DISPLAY}" ]]; then + gpg-connect-agent updatestartuptty /bye >/dev/null +fi + +# completion options +setopt LIST_PACKED MENU_COMPLETE +# expansion and globbing options +setopt NO_NOMATCH +# history options +setopt SHARE_HISTORY EXTENDED_HISTORY HIST_FCNTL_LOCK HIST_IGNORE_ALL_DUPS HIST_REDUCE_BLANKS HIST_SAVE_NO_DUPS +# input/output options +setopt PRINT_EXIT_VALUE RM_STAR_SILENT +# job control options +setopt LONG_LIST_JOBS NO_HUP +# zle options +setopt NO_BEEP + +zstyle ':completion:*' menu select=5 + +bindkey -v +export KEYTIMEOUT=1 + +autoload -U edit-command-line +zle -N edit-command-line +bindkey -M vicmd v edit-command-line + +# always open tmux if interactive +[[ $- != *i* ]] && return +#[[ -z "$TMUX" ]] && (tmux -2 new-session -t default \; new-window || tmux -2 new-session -s default) +[[ -z "$TMUX" ]] && (tmux -2 attach -t default || tmux -2 new-session -s default) + +# prompt/theme shit +function precmd { + + local RC=${?} + #local RC=${(%)RC-%?} + + print -nP '\n' + + # current user + if [[ ${EUID} -eq 0 ]]; then + print -nP '%{%S%F{red}%}%n%{%f%s%}' + else + print -nP '%{%F{magenta}%}%n%{%f%}' + fi + + print -nP '@' + + # current host + if [[ -n "$SSH_CLIENT" || -n "$SSH2_CLIENT" ]]; then + print -nP '%{%F{yellow}%}%m%{%f%}' + else + print -nP '%{%F{green}%}%m%{%f%}' + fi + + # connected terminal + print -nP '/%{%U%}%l%{%u%} ' + + # cwd + print -nP '%{%F{cyan}%}%~%{%f%} ' + + # job count + JOBCOUNT='%j' + if [[ ${(%)JOBCOUNT} -gt 0 ]]; then + print -nP 'j=%{%F{yellow}%}%j%{%f%} ' + fi + + # previous return code + if [[ ${RC} -ne 0 ]]; then + print -nP 'rc=%{%F{red}%}' + echo -n "${RC}" + print -nP '%{%f%} ' + else + print -nP 'rc=%{%F{green}%}' + echo -n "${RC}" + print -nP '%{%f%} ' + fi + + # time stamp + print -P '%{%F{cyan}%}%D{%FT%T%z}%{%f%}' + +} + +PS1='%# ' -- cgit v1.2.3