]> git.sev.monster Git - dotfiles.git/commitdiff
fixed zsh, renamed l -> lck, netbsd support
authords6 <git@ds6.pw>
Thu, 12 Apr 2018 03:10:09 +0000 (22:10 -0500)
committersev <git@sev.monster>
Fri, 5 Apr 2024 20:44:51 +0000 (15:44 -0500)
zsh now sets its own path in zshrc
zshenv.local is now loaded last
all bsdisms have been moved to blocks
netbsd support added for zsh
fixed wscons issues with xterm escapes
workaround for %f prompt escape on wscons

base/.xinitrc [changed mode: 0755->0644]
base/.zshenv
base/.zshrc
bin/lck [moved from bin/l with 77% similarity]
install.sh
share/lck/overlay.png [moved from share/l/overlay.png with 100% similarity]
src/lck/share/overlay.xcf [moved from src/share/l/overlay.xcf with 100% similarity]

old mode 100755 (executable)
new mode 100644 (file)
index 96c6d52c9f9b3373ea2cc53d399111fb08d0a1f2..ab47bdf9283f45f46d29738efef2b21c86483cab 100644 (file)
@@ -1,7 +1,3 @@
-if [ -f ~/.zshenv.local ]; then
-       source ~/.zshenv.local
-fi
-
 export EDITOR=vim
 export XDG_CONFIG_HOME=~/etc
 export XDG_CONFIG_DIRS=~/.config:/etc/xdg
@@ -14,3 +10,7 @@ export LS_COLORS='di=34:ln=35:so=32:pi=33:ex=31:bd=46;34:cd=43;34:su=41;30:sg=46
 export GREP_OPTIONS=--color=auto
 
 export PYTHONSTARTUP=~/.pythonrc
+
+if [[ -f ~/.zshenv.local ]]; then
+       source ~/.zshenv.local
+fi
index 228588972499dff50d3d926b5f517afb4787fe5e..d688d2e22c1dd7d5633f4bb095da5c21062b1eba 100644 (file)
@@ -1,72 +1,74 @@
-## options
+### options
 setopt autocd extendedglob
 unsetopt beep
 
-## history
+### path
+# typeset -U makes every array entry unique; /usr/{pkg,local} are bsdisms
+typeset -U path
+path=({~/,/,/usr/}sbin {~/,/,/usr/}bin /usr/pkg/{s,}bin /usr/X11R{7,6}/bin
+      /usr/local/{s,}bin $path)
+
+### history
 setopt appendhistory
 HISTFILE=~/.histfile
 HISTSIZE=100
 SAVEHIST=100
 
-## keys
+### keys
 bindkey -v
 KEYTIMEOUT=1
-# xorg
+## xorg
 bindkey    "^[[7~" beginning-of-line #Home
 bindkey -a "^[[7~" beginning-of-line
 bindkey    "^[[8~" end-of-line       #End
 bindkey -a "^[[8~" end-of-line
 bindkey    "^[[3~" delete-char       #Del
 bindkey -a "^[[3~" delete-char
-# bsd vt
-bindkey    "^[[H" beginning-of-line  #Home
-bindkey -a "^[[H" beginning-of-line
-bindkey    "^[[F" end-of-line        #End
-bindkey -a "^[[F" end-of-line
-
+## history search
 autoload -Uz up-line-or-beginning-search down-line-or-beginning-search
 zle -N up-line-or-beginning-search
 zle -N down-line-or-beginning-search
 [[ -n "$key[Up]"   ]] && bindkey -- "$key[Up]"   up-line-or-beginning-search
 [[ -n "$key[Down]" ]] && bindkey -- "$key[Down]" down-line-or-beginning-search
 
-## aliases
+### aliases
 alias h="history -25"
 alias j="jobs -l"
 alias l="ls -AF"
 alias ll="ls -lAFho"
-# ps
+## ps
 local p="ps -aSdxwwouser=USR -ogroup=GRP -opid,nice=N \
          -o%cpu,%mem,tt,stat,start=START -oetime,command | ${PAGER:-more} -Se"
 alias pa="$p"
 alias spa="sudo $p"
 unset p
-# sound source
-function s { sysctl hw.snd.default_unit${1:+\=$1} }
-# py venv
+## py venv
 alias va="source bin/activate"
 alias vd="deactivate"
-# be paranoid
+## be paranoid
 alias cp='cp -ip'
 alias mv='mv -i'
-alias rm='rm -I'
-# ports
-function portpkg {
-    case "$1" {
-        build|run)
-            sudo pkg install -AU $(make ${1}-depends-list |
-                                   sed 's_/usr/ports/_ _' | tr -d '\n')
-            ;;
-        *)  echo "Usage: \`portpkg <build|run>' in a port directory"
-            return 1;;
-    }
+if [[ "$OSTYPE" = "freebsd" ]] {
+    # don't confirm if only a few files are deleted
+    alias rm='rm -I'
+} else {
+    alias rm='rm -i'
 }
 
-## prompt
+### prompt
 setopt prompt_subst
-PROMPT='%F{$VICOL}%n%f@%F{$VICOL}%2m%f%(?../%F{red}$?%f)%# '
-RPROMPT='%F{yellow}${vcs_info_msg_0_:-%~}%f %T'
+local f
+if [[ "$TERM" = "wsvt25" ]] {
+    # fix for wscons
+    f="%F{white}"
+} else {
+    f="%f"
+}
+PROMPT='%F{$VICOL}%n'"$f"'@%F{$VICOL}%2m'"$f"'%(?../%F{red}$?'"$f"')%# '
+RPROMPT='%F{yellow}${vcs_info_msg_0_:-%~}'"$f"' %T'
+unset f
 
+## change color based on zle vi mode
 function zle-line-init zle-keymap-select {
     VICOL="${${KEYMAP:/vicmd/red}:/(main|viins)/green}"
     zle reset-prompt
@@ -74,21 +76,22 @@ function zle-line-init zle-keymap-select {
 zle -N zle-line-init
 zle -N zle-keymap-select
 
+## vcs
 autoload -Uz vcs_info
 zstyle ':vcs_info:*' enable git
-zstyle ':vcs_info:git*' formats       "%c%u%%F{green}%r/%b%%f/%%F{yellow}%S%%f"
-zstyle ':vcs_info:git*' actionformats "%%F{red}(%a)%%f %c%u%%F{green}%r/%b%%f/\
-%%F{yellow}%S%%f"
+zstyle ':vcs_info:git*' formats       "%c%u%%F{green}%r/%b%%F{white}/%%F{yellow}%S%%f"
+zstyle ':vcs_info:git*' actionformats "%%F{red}(%a)$p %c%u%%F{green}%r/%b$p/%%F{yellow}%S$p"
 #zstyle ':vcs_info:git*' check-for-changes true #too slow
 zstyle ':vcs_info:git*:.dotfiles' check-for-changes true
 zstyle ':vcs_info:git*' check-for-staged-changes true
 zstyle ':vcs_info:git*' stagedstr   "%F{blue}+"
 zstyle ':vcs_info:git*' unstagedstr "%F{red}*"
 
-# hooks
+### hooks
+local _exectime
 function precmd {
     # change terminal title
-    print -Pn "\e]0;%(1j,%j,)%#${SSH_CLIENT+$USER@$HOST:}%~\a"
+    print -Pn "\e]2;%(1j,%j,)%#${SSH_CLIENT+$USER@$HOST:}%~\e\\"
     # update vcs
     vcs_info
     # bell if exec takes 5s
@@ -96,7 +99,7 @@ function precmd {
 }
 function preexec {
     # change terminal title to show command
-    print -Pnf "\e]0;%s\a" "%#${SSH_CLIENT+$USER@$HOST:}$1"
+    print -Pnf "\e]2;%s\e\\" "%#${SSH_CLIENT+$USER@$HOST:}$1"
     # save last exec time for bell
     _exectime=$SECONDS
 }
@@ -104,6 +107,30 @@ function chpwd {
     l
 }
 
+### freebsd-specific
+if [[ "$OSTYPE" = "freebsd" ]] {
+    ## vt binds
+    bindkey    "^[[H" beginning-of-line  #Home
+    bindkey -a "^[[H" beginning-of-line
+    bindkey    "^[[F" end-of-line        #End
+    bindkey -a "^[[F" end-of-line
+
+    ## oss sound source
+    function s { sysctl hw.snd.default_unit${1:+\=$1} }
+
+    ## install port dependencies from pkg (like pkgsrc `bmake bin-install')
+    function portpkg {
+        case "$1" {
+        build|run)
+            sudo pkg install -AU $(make ${1}-depends-list |
+                       sed 's_/usr/ports/_ _' | tr -d '\n')
+            ;;
+        *)  echo "Usage: \`portpkg <build|run>' in a port directory"
+            return 1;;
+        }
+    }
+}
+
 # The following lines were added by compinstall
 zstyle ':completion:*' auto-description 'specify: %d'
 zstyle ':completion:*' expand suffix
diff --git a/bin/l b/bin/lck
similarity index 77%
rename from bin/l
rename to bin/lck
index f7e2d3d490b2959f3e5f575839d7899616aad710..172e813b27273620433ab584e5a6ea5d8a40fa01 100755 (executable)
--- a/bin/l
+++ b/bin/lck
@@ -2,7 +2,11 @@
 
 # term lock
 if [ -z "$DISPLAY" ]; then
-       lock -npv
+       if [ "$OSTYPE" = "freebsd" ]; then
+               lock -npv
+       else
+               lock -np
+       fi
        exit
 fi
 
@@ -10,14 +14,14 @@ fi
 img=~/tmp/lock.png
 if [ -f "$img" ]; then
        # rudimentary attempt to prevent multiple locks
-       # XXX: could block lock and replace with malicious locker
+       # XXX: could block lock and replace with malicious locker to grab password
        echo "Lock file exists at '$img', exiting"
        exit 1
 fi
 res="$(xdpyinfo | grep dimensions | awk '{print $2}')"
 scale=0.07
 ffmpeg -y -loglevel 0 \
-  -s "$res" -f x11grab -i $DISPLAY -i ~/share/l/overlay.png \
+  -s "$res" -f x11grab -i $DISPLAY -i ~/share/lck/overlay.png \
   -filter_complex "
     [0]
       scale=iw * $scale:ih * $scale,
index 985717b406c00acd2ffe65ee4153b91aaded9a3c..ae7c6886c00d93dd1cd3231fae95b2a932e4acde 100755 (executable)
@@ -1,36 +1,31 @@
 #!/bin/sh
 
 if [ 0 -eq 1 ]; then
-       alias mkdir="echo mkdir"
+       mkdir() { echo "$*"; }
        alias ln="echo ln"
        alias rm="echo rm"
        alias cap_mkdb="echo cap_mkdb"
        alias unlink="echo unlink"
 fi
 
-#fix permissions from git (TODO: should probably move this to git hook)
-chmod go= base/.zshenv base/.Xresources
-
 #create preferred folder structure
-cd "$HOME"
+cd ~
 mkdir -p bin etc share .urxvt/ext > /dev/null 2>&1
 mkdir -m 700 tmp tmp/vim > /dev/null 2>&1
 cd -
 
 #accomodate linuxisms
 fex='-perm -ugo=x'
-# TODO: should probably do this better
-case "`uname`" in
-       *BSD*)  lnargs=-sFhvw
-               d1='-depth 1'
-               bsd=yes;;
-       *)      lnargs=-sfnv
-               d1='-mindepth 1 -maxdepth 1'
-               #android busybox find doesn't have -execute
-               #and its sh doesn't set OSTYPE :DD
-               if [ -z "$ANDROID_ROOT" ]; then
-                       fex=-executable
-               fi;;
+case "$OSTYPE" in
+       # TODO: make links safer for systems without -Fw
+       freebsd)        lnargs=-sFhvw;;
+       netbsd|openbsd) lnargs=-sfhv;;
+       *)              lnargs=-sfnv
+                       #android busybox find doesn't have -executable
+                       #and its sh doesn't set OSTYPE :DD
+                       if [ -z "$ANDROID_ROOT" ]; then
+                               fex=-executable
+                       fi;;
 esac
 
 l() {
@@ -38,13 +33,13 @@ l() {
        [ -L "$1" -o \! -e "$1" ] && ln $lnargs "${2:-$x}" "$1"
 }
 
-find "$PWD/base" $d1 | while read -r x; do
+find "$PWD/base" -mindepth 1 -maxdepth 1 | while read -r x; do
        l "$HOME/`basename "$x"`"
 done
-find bin share $d1 | while read -r x; do
+find bin share -mindepth 1 -maxdepth 1 | while read -r x; do
        l "$HOME/$x" "$PWD/$x"
 done
-find "$PWD/xdg" $d1 | while read -r x; do
+find "$PWD/xdg" -mindepth 1 -maxdepth 1 | while read -r x; do
        l "${XDG_CONFIG_HOME:-$HOME/etc}/`basename "$x"`"
 done
 find "$PWD/urxvt-ext" -type f $fex -mindepth 1 -maxdepth 2 | while read -r x; do
@@ -52,7 +47,7 @@ find "$PWD/urxvt-ext" -type f $fex -mindepth 1 -maxdepth 2 | while read -r x; do
 done
 
 cd ~
-if [ -n "$bsd" ]; then
+if [ "$OSTYPE" = "freebsd" ]; then
        touch .hushlogin
 
        #FreeBSD tries `_secure_path' on `.login_conf' before reading the database,
similarity index 100%
rename from share/l/overlay.png
rename to share/lck/overlay.png
This page took 0.051143 seconds and 4 git commands to generate.