linux-qubasis

linux oasis port as a qubes template

git clone https://9o.is/git/linux-qubasis.git

commit 46b7751f56207f9967a6fdc6b6976f8c10ef213a
parent 8c46615f2cab05e39b617d2732382c6e5b0d1c0b
Author: Jul <jul@9o.is>
Date:   Thu,  7 Aug 2025 23:53:50 -0400

configure vis/yash with fe -r flag

Diffstat:
Mpkg/vis/config/config/navigation.lua | 2+-
Mpkg/yash/build | 10++--------
Dpkg/yash/config/00-general | 154-------------------------------------------------------------------------------
Dpkg/yash/config/10-fzy | 15---------------
Apkg/yash/config/rc.d/00-general | 154+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Apkg/yash/config/rc.d/10-fzy | 15+++++++++++++++
Rpkg/yash/config/10-git -> pkg/yash/config/rc.d/10-git | 0
7 files changed, 172 insertions(+), 178 deletions(-)

diff --git a/pkg/vis/config/config/navigation.lua b/pkg/vis/config/config/navigation.lua @@ -31,6 +31,6 @@ vis.events.subscribe(vis.events.INIT, function() end end, 'Close current window') - vis:map(vis.modes.NORMAL, '<C-t>', ':!echo "create \'vis \\$(fe)\'" > $DVTM_CMD_FIFO<Enter>') + vis:map(vis.modes.NORMAL, '<C-t>', ':!echo "create \'fe -r vis\'" > $DVTM_CMD_FIFO<Enter>') end) diff --git a/pkg/yash/build b/pkg/yash/build @@ -18,17 +18,11 @@ make -C "$repodir" make DESTDIR="$outdir" -C "$repodir" install configdir="$outdir/home/user/.config/yash" -mkdir -p "$configdir/rc.d" -cp "$srcdir/config/rc" "$configdir" -cp "$srcdir/config/00-general" "$configdir/rc.d" -cp "$srcdir/config/10-git" "$configdir/rc.d" +cp -r "$srcdir"/config/* "$configdir" if [ "$local_install" == "true" ]; then sudo make -C "$repodir" install configdir="/home/user/.config/yash" - mkdir -p "$configdir/rc.d" - cp "$srcdir/config/rc" "$configdir" - cp "$srcdir/config/00-general" "$configdir/rc.d" - cp "$srcdir/config/10-git" "$configdir/rc.d" + cp -r "$srcdir"/config/* "$configdir" fi diff --git a/pkg/yash/config/00-general b/pkg/yash/config/00-general @@ -1,154 +0,0 @@ -set --brace-expand -set --extended-glob -set --no-clobber -set --no-unset -set --hist-space -set --notify-le -set --le-no-conv-meta -set --le-predict - -bindkey --vi-insert --vi-command '\^[[1;5C' forward-viword # C-<Right> -bindkey --vi-insert --vi-command '\^[[1;6C' forward-bigword # C-S-<Right> -bindkey --vi-insert --vi-command '\^[[1;5D' backward-viword # C-<Left> -bindkey --vi-insert --vi-command '\^[[1;6D' backward-bigword # C-S-<Left> -bindkey --vi-insert '\^O' clear-candidates -bindkey --vi-insert '\^L' clear-and-redraw-all -bindkey --vi-command '\^L' clear-and-redraw-all - -alias -- -='cd - >/dev/null' -alias l='ls -alhGL --group-directories-first --time-style "+%Y-%m-%d"' ll='l' -alias tree='tree -a -L 4 --filesfirst --gitignore' -alias h='fc -l' -alias j='jobs' -alias o='xdg-open' -alias g='grep' -alias --global L='|$PAGER' -alias --global N='>/dev/null 2>&1' N1='>/dev/null' N2='2>/dev/null' - -# define some basic variables -export PAGER=less -export EDITOR=vis - -: ${FCEDIT:=$EDITOR} -: ${LOGNAME:=$(logname)} - -# alias-like functions -df() if [ -t 0 ]; then command df -h "$@"; else command df "$@"; fi -du() if [ -t 0 ]; then command du -h "$@"; else command du "$@"; fi -mkdir() if [ -t 0 ]; then command mkdir -p "$@"; else command mkdir "$@"; fi -sh() { yash --posix "$@"; } -yash() { command yash "$@"; } - -vi() { - if [ ! "$@" ] || [ -d "$1" ]; then - command $EDITOR $(fe "$@"); - else - command $EDITOR "$@"; - fi -} - -# set up history -HISTFILE=~/.local/state/yash/history -HISTSIZE=5000 -! [ -d "${HISTFILE%/*}" ] && mkdir -p "${HISTFILE%/*}" - -# disable confusing treatment of arguments in the echo command -: ${ECHO_STYLE:=RAW} - -# ensure job control works as expected -case $- in (*m*) - trap - TSTP TTIN TTOU -esac - -# if the terminal supports color... -if [ "$(tput colors 2>/dev/null || echo 0)" -ge 8 ]; then - - # make command output colorful - if ls --color=auto -d / >/dev/null 2>&1; then - ls() { command ls --color=auto "$@"; } - fi - if grep --color=auto -q X <<<X 2>/dev/null; then - grep() { command grep --color=auto "$@"; } - fi - if ggrep --color=auto -q X <<<X 2>/dev/null; then - ggrep() { command ggrep --color=auto "$@"; } - fi - -fi - -# initialize event handlers -COMMAND_NOT_FOUND_HANDLER=() -PROMPT_COMMAND=() -POST_PROMPT_COMMAND=() -YASH_AFTER_CD=() - -# when a directory name is entered as a command, treat as "cd" -_autocd() -if [ -d "$1" ]; then - HANDLED=true - cd -- "$@" - break -i -fi -COMMAND_NOT_FOUND_HANDLER=("$COMMAND_NOT_FOUND_HANDLER" '_autocd "$@"') - -# treat command names starting with % as "fg" -_autofg() -if [ $# -eq 1 ]; then - case $1 in (%*) - HANDLED=true - fg "$1" - break -i - esac -fi -COMMAND_NOT_FOUND_HANDLER=("$COMMAND_NOT_FOUND_HANDLER" '_autofg "$@"') - -# print file type when executing non-executable files -_file_type() -if [ -e "$1" ] && ! [ -d "$1" ]; then - file -- "$1" -fi -COMMAND_NOT_FOUND_HANDLER=("$COMMAND_NOT_FOUND_HANDLER" '_file_type "$@"') - -_update_short_pwd() { - local path="${PWD/$HOME/\~}" - local result="" - - if [ "$path" = "/" ] || [ "$path" = "~" ]; then - _short_pwd="$path" - return - fi - - if [ "${path[1]}" = "~" ]; then - result="~" - fi - - while [ "${path#[/~]*}" != "$path" ]; do - path="${path#[/~]*}" - done - - while [ -n "$path" ]; do - component="${path%%/*}" - - if [ "$path" = "$component" ]; then - result="$result/$component" - break - fi - - if [ -n "$component" ]; then - if [ "${component[1]}" = "." ]; then - result="$result/.${component[2]}" - else - result="$result/${component[1]}" - fi - fi - - path="${path#*/}" - done - _short_pwd="$result" -} -PROMPT_COMMAND=("$PROMPT_COMMAND" '_update_short_pwd') - -YASH_PS1='\fb.${_short_pwd}\fd.${{?:/0/}:+\\fr. [$?]\\fd.}> ' -YASH_PS1P='\fu.' - -# vim: set et sw=2 sts=2 tw=78 ft=sh: diff --git a/pkg/yash/config/10-fzy b/pkg/yash/config/10-fzy @@ -1,15 +0,0 @@ -if command --identify fzy >/dev/null 2>&1; then - alias sf='vi $(find -type f | fzy)' - alias sd='cd $(find -type d | fzy)' - alias skill='ps axo pid,user,pcpu,pmem,stat,comm | fzy | awk "{print \$1}" | xargs kill' - - if command --identify git >/dev/null 2>&1; then - alias sga='git diff --name-only | fzy --prompt="Git Add: " | xargs git add' - alias sgap='git diff --name-only | fzy --prompt="Git Add Patch: " | xargs git add --patch' - alias sgr='git diff --name-only | fzy --prompt="Git Restore: " | xargs git restore' - alias sgrs='git diff --name-only --cached | fzy --prompt="Git Restore Staged: " | xargs git restore --staged' - alias sgco='git log --online | fzy --prompt="Git Checkout: " | awk "{print \$1}" | xargs git checkout' - alias sgcor='git for-each-ref --format="%(refname) %(subject)" | fzy --prompt="Git Checkout: " | awk "{print \$1}" | xargs git checkout' - alias sgrbi='git log --online | fzy --prompt="Git Rebase: " | awk "{print \$1}" | xargs git rebase -i' - fi -fi diff --git a/pkg/yash/config/rc.d/00-general b/pkg/yash/config/rc.d/00-general @@ -0,0 +1,154 @@ +set --brace-expand +set --extended-glob +set --no-clobber +set --no-unset +set --hist-space +set --notify-le +set --le-no-conv-meta +set --le-predict + +bindkey --vi-insert --vi-command '\^[[1;5C' forward-viword # C-<Right> +bindkey --vi-insert --vi-command '\^[[1;6C' forward-bigword # C-S-<Right> +bindkey --vi-insert --vi-command '\^[[1;5D' backward-viword # C-<Left> +bindkey --vi-insert --vi-command '\^[[1;6D' backward-bigword # C-S-<Left> +bindkey --vi-insert '\^O' clear-candidates +bindkey --vi-insert '\^L' clear-and-redraw-all +bindkey --vi-command '\^L' clear-and-redraw-all + +alias -- -='cd - >/dev/null' +alias l='ls -alhGL --group-directories-first --time-style "+%Y-%m-%d"' ll='l' +alias tree='tree -a -L 4 --filesfirst --gitignore' +alias h='fc -l' +alias j='jobs' +alias o='xdg-open' +alias g='grep' +alias --global L='|$PAGER' +alias --global N='>/dev/null 2>&1' N1='>/dev/null' N2='2>/dev/null' + +# define some basic variables +export PAGER=less +export EDITOR=vis + +: ${FCEDIT:=$EDITOR} +: ${LOGNAME:=$(logname)} + +# alias-like functions +df() if [ -t 0 ]; then command df -h "$@"; else command df "$@"; fi +du() if [ -t 0 ]; then command du -h "$@"; else command du "$@"; fi +mkdir() if [ -t 0 ]; then command mkdir -p "$@"; else command mkdir "$@"; fi +sh() { yash --posix "$@"; } +yash() { command yash "$@"; } + +vi() { + if [ ! "$@" ] || [ -d "$1" ]; then + command fe -r $EDITOR "$@"; + else + command $EDITOR "$@"; + fi +} + +# set up history +HISTFILE=~/.local/state/yash/history +HISTSIZE=5000 +! [ -d "${HISTFILE%/*}" ] && mkdir -p "${HISTFILE%/*}" + +# disable confusing treatment of arguments in the echo command +: ${ECHO_STYLE:=RAW} + +# ensure job control works as expected +case $- in (*m*) + trap - TSTP TTIN TTOU +esac + +# if the terminal supports color... +if [ "$(tput colors 2>/dev/null || echo 0)" -ge 8 ]; then + + # make command output colorful + if ls --color=auto -d / >/dev/null 2>&1; then + ls() { command ls --color=auto "$@"; } + fi + if grep --color=auto -q X <<<X 2>/dev/null; then + grep() { command grep --color=auto "$@"; } + fi + if ggrep --color=auto -q X <<<X 2>/dev/null; then + ggrep() { command ggrep --color=auto "$@"; } + fi + +fi + +# initialize event handlers +COMMAND_NOT_FOUND_HANDLER=() +PROMPT_COMMAND=() +POST_PROMPT_COMMAND=() +YASH_AFTER_CD=() + +# when a directory name is entered as a command, treat as "cd" +_autocd() +if [ -d "$1" ]; then + HANDLED=true + cd -- "$@" + break -i +fi +COMMAND_NOT_FOUND_HANDLER=("$COMMAND_NOT_FOUND_HANDLER" '_autocd "$@"') + +# treat command names starting with % as "fg" +_autofg() +if [ $# -eq 1 ]; then + case $1 in (%*) + HANDLED=true + fg "$1" + break -i + esac +fi +COMMAND_NOT_FOUND_HANDLER=("$COMMAND_NOT_FOUND_HANDLER" '_autofg "$@"') + +# print file type when executing non-executable files +_file_type() +if [ -e "$1" ] && ! [ -d "$1" ]; then + file -- "$1" +fi +COMMAND_NOT_FOUND_HANDLER=("$COMMAND_NOT_FOUND_HANDLER" '_file_type "$@"') + +_update_short_pwd() { + local path="${PWD/$HOME/\~}" + local result="" + + if [ "$path" = "/" ] || [ "$path" = "~" ]; then + _short_pwd="$path" + return + fi + + if [ "${path[1]}" = "~" ]; then + result="~" + fi + + while [ "${path#[/~]*}" != "$path" ]; do + path="${path#[/~]*}" + done + + while [ -n "$path" ]; do + component="${path%%/*}" + + if [ "$path" = "$component" ]; then + result="$result/$component" + break + fi + + if [ -n "$component" ]; then + if [ "${component[1]}" = "." ]; then + result="$result/.${component[2]}" + else + result="$result/${component[1]}" + fi + fi + + path="${path#*/}" + done + _short_pwd="$result" +} +PROMPT_COMMAND=("$PROMPT_COMMAND" '_update_short_pwd') + +YASH_PS1='\fb.${_short_pwd}\fd.${{?:/0/}:+\\fr. [$?]\\fd.}> ' +YASH_PS1P='\fu.' + +# vim: set et sw=2 sts=2 tw=78 ft=sh: diff --git a/pkg/yash/config/rc.d/10-fzy b/pkg/yash/config/rc.d/10-fzy @@ -0,0 +1,15 @@ +if command --identify fzy >/dev/null 2>&1; then + alias sf='vi $(find -type f | fzy)' + alias sd='cd $(find -type d | fzy)' + alias skill='ps axo pid,user,pcpu,pmem,stat,comm | fzy | awk "{print \$1}" | xargs kill' + + if command --identify git >/dev/null 2>&1; then + alias sga='git diff --name-only | fzy --prompt="Git Add: " | xargs git add' + alias sgap='git diff --name-only | fzy --prompt="Git Add Patch: " | xargs git add --patch' + alias sgr='git diff --name-only | fzy --prompt="Git Restore: " | xargs git restore' + alias sgrs='git diff --name-only --cached | fzy --prompt="Git Restore Staged: " | xargs git restore --staged' + alias sgco='git log --oneline | fzy --prompt="Git Checkout: " | awk "{print \$1}" | xargs git checkout' + alias sgcor='git for-each-ref --format="%(refname) %(subject)" | fzy --prompt="Git Checkout: " | awk "{print \$1}" | xargs git checkout' + alias sgrbi='git log --oneline | fzy --prompt="Git Rebase: " | awk "{print \$1}" | xargs git rebase -i' + fi +fi diff --git a/pkg/yash/config/10-git b/pkg/yash/config/rc.d/10-git