Browse Source

Various updates

- Fix alt key in xterm
- Fish things
master
Adam Cooper 10 months ago
parent
commit
4d10fda384
  1. 4
      arch/X11/.Xresources
  2. 11
      arch/fish/config.fish
  3. 2
      arch/fish/fish_variables
  4. 172
      arch/fish/fzf_key_bindings.fish
  5. 2
      arch/newsboat/.newsboat/history.search

4
arch/X11/.Xresources

@ -1,5 +1,9 @@
*.termName: xterm-256color
*faceName: Fantasque Sans Mono:size=12
! XTerm*eightBitInput: false
! XTerm*eightBitOutput: true
*metaSendsEscape: true
*VT100.Translations: #override \n\
Ctrl Shift <Key>V: insert-selection(CLIPBOARD) \n\
Ctrl Shift <Key>C: copy-selection(CLIPBOARD) \n\

11
arch/fish/config.fish

@ -1,12 +1,11 @@
if status is-interactive
# Commands to run in interactive sessions can go here
fish_add_path $HOME/.local/bin $HOME/.cargo/bin $HOME/.cargo/env $HOME/code/go/bin /usr/local/bin /opt/local/bin /opt/local/sbin /usr/local/go/bin /usr/sbin /usr/bin /sbin /bin $HOME/.rbenv
fish_add_path --path /usr/sbin /usr/bin /sbin /bin /usr/local/bin /opt/local/bin /opt/local/sbin /usr/local/go/bin $HOME/.local/bin $HOME/.cargo/bin $HOME/.cargo/env $HOME/code/go/bin $HOME/.rbenv
set --global --export MANPATH /usr/local/man
# Removing this temporarily to see if it interferes with FZF ctrl-r
# set --global fish_key_bindings fish_vi_key_bindings
# Currently using the default $MANPATH; see /etc/man_db.conf
set --global fish_key_bindings fish_vi_key_bindings
## XDG
set --global --export XDG_CONFIG_HOME "$HOME/.config"
@ -19,7 +18,7 @@ if status is-interactive
# FZF
set --global --export FZF_DEFAULT_COMMAND "fd --no-ignore --hidden --type f" # Includes hidden files
set --global --export FZF_CTRL_T_COMMAND "$FZF_DEFAULT_COMMAND"
source /usr/share/fish/vendor_functions.d/fzf_key_bindings.fish
fzf_key_bindings
# bat theme
set --global --export BAT_THEME OneHalfLight

2
arch/fish/fish_variables

@ -1,5 +1,6 @@
# This file contains fish universal variable definitions.
# VERSION: 3.0
SETUVAR --export --path GOPATH:/home/adam/code/go/
SETUVAR __fish_initialized:3100
SETUVAR _fish_abbr_exi:exa\x20\x2d\x2dall\x20\x2d\x2dlong\x20\x2d\x2dicons\x20\x2d\x2dgroup
SETUVAR fish_color_autosuggestion:555\x1ebrblack
@ -29,4 +30,3 @@ SETUVAR fish_pager_color_completion:\x1d
SETUVAR fish_pager_color_description:B3A06D\x1eyellow
SETUVAR fish_pager_color_prefix:normal\x1e\x2d\x2dbold\x1e\x2d\x2dunderline
SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan
SETUVAR fish_user_paths:/home/adam/\x2envm/versions/node\x1e/home/adam/code/go/bin\x1e/home/adam/\x2elocal/bin\x1e/home/adam/\x2ecargo/bin\x1e/home/adam/\x2ecargo/env\x1e/usr/local/bin\x1e/usr/sbin\x1e/usr/bin\x1e/sbin\x1e/bin\x1e/home/adam/\x2erbenv

172
arch/fish/fzf_key_bindings.fish

@ -0,0 +1,172 @@
# ____ ____
# / __/___ / __/
# / /_/_ / / /_
# / __/ / /_/ __/
# /_/ /___/_/ key-bindings.fish
#
# - $FZF_TMUX_OPTS
# - $FZF_CTRL_T_COMMAND
# - $FZF_CTRL_T_OPTS
# - $FZF_CTRL_R_OPTS
# - $FZF_ALT_C_COMMAND
# - $FZF_ALT_C_OPTS
# Key bindings
# ------------
function fzf_key_bindings
# Store current token in $dir as root for the 'find' command
function fzf-file-widget -d "List files and folders"
set -l commandline (__fzf_parse_commandline)
set -l dir $commandline[1]
set -l fzf_query $commandline[2]
set -l prefix $commandline[3]
# "-path \$dir'*/\\.*'" matches hidden files/folders inside $dir but not
# $dir itself, even if hidden.
test -n "$FZF_CTRL_T_COMMAND"; or set -l FZF_CTRL_T_COMMAND "
command find -L \$dir -mindepth 1 \\( -path \$dir'*/\\.*' -o -fstype 'sysfs' -o -fstype 'devfs' -o -fstype 'devtmpfs' \\) -prune \
-o -type f -print \
-o -type d -print \
-o -type l -print 2> /dev/null | sed 's@^\./@@'"
test -n "$FZF_TMUX_HEIGHT"; or set FZF_TMUX_HEIGHT 40%
begin
set -lx FZF_DEFAULT_OPTS "--height $FZF_TMUX_HEIGHT --reverse --bind=ctrl-z:ignore $FZF_DEFAULT_OPTS $FZF_CTRL_T_OPTS"
eval "$FZF_CTRL_T_COMMAND | "(__fzfcmd)' -m --query "'$fzf_query'"' | while read -l r; set result $result $r; end
end
if [ -z "$result" ]
commandline -f repaint
return
else
# Remove last token from commandline.
commandline -t ""
end
for i in $result
commandline -it -- $prefix
commandline -it -- (string escape $i)
commandline -it -- ' '
end
commandline -f repaint
end
function fzf-history-widget -d "Show command history"
test -n "$FZF_TMUX_HEIGHT"; or set FZF_TMUX_HEIGHT 40%
begin
set -lx FZF_DEFAULT_OPTS "--height $FZF_TMUX_HEIGHT $FZF_DEFAULT_OPTS --tiebreak=index --bind=ctrl-r:toggle-sort,ctrl-z:ignore $FZF_CTRL_R_OPTS +m"
set -l FISH_MAJOR (echo $version | cut -f1 -d.)
set -l FISH_MINOR (echo $version | cut -f2 -d.)
# history's -z flag is needed for multi-line support.
# history's -z flag was added in fish 2.4.0, so don't use it for versions
# before 2.4.0.
if [ "$FISH_MAJOR" -gt 2 -o \( "$FISH_MAJOR" -eq 2 -a "$FISH_MINOR" -ge 4 \) ];
history -z | eval (__fzfcmd) --read0 --print0 -q '(commandline)' | read -lz result
and commandline -- $result
else
history | eval (__fzfcmd) -q '(commandline)' | read -l result
and commandline -- $result
end
end
commandline -f repaint
end
function fzf-cd-widget -d "Change directory"
set -l commandline (__fzf_parse_commandline)
set -l dir $commandline[1]
set -l fzf_query $commandline[2]
set -l prefix $commandline[3]
test -n "$FZF_ALT_C_COMMAND"; or set -l FZF_ALT_C_COMMAND "
command find -L \$dir -mindepth 1 \\( -path \$dir'*/\\.*' -o -fstype 'sysfs' -o -fstype 'devfs' -o -fstype 'devtmpfs' \\) -prune \
-o -type d -print 2> /dev/null | sed 's@^\./@@'"
test -n "$FZF_TMUX_HEIGHT"; or set FZF_TMUX_HEIGHT 40%
begin
set -lx FZF_DEFAULT_OPTS "--height $FZF_TMUX_HEIGHT --reverse --bind=ctrl-z:ignore $FZF_DEFAULT_OPTS $FZF_ALT_C_OPTS"
eval "$FZF_ALT_C_COMMAND | "(__fzfcmd)' +m --query "'$fzf_query'"' | read -l result
if [ -n "$result" ]
cd $result
# Remove last token from commandline.
commandline -t ""
commandline -it -- $prefix
end
end
commandline -f repaint
end
function __fzfcmd
test -n "$FZF_TMUX"; or set FZF_TMUX 0
test -n "$FZF_TMUX_HEIGHT"; or set FZF_TMUX_HEIGHT 40%
if [ -n "$FZF_TMUX_OPTS" ]
echo "fzf-tmux $FZF_TMUX_OPTS -- "
else if [ $FZF_TMUX -eq 1 ]
echo "fzf-tmux -d$FZF_TMUX_HEIGHT -- "
else
echo "fzf"
end
end
bind \ct fzf-file-widget
bind \cr fzf-history-widget
bind \ec fzf-cd-widget
if bind -M insert > /dev/null 2>&1
bind -M insert \ct fzf-file-widget
bind -M insert --user \cr fzf-history-widget
bind -M insert \ec fzf-cd-widget
end
function __fzf_parse_commandline -d 'Parse the current command line token and return split of existing filepath, fzf query, and optional -option= prefix'
set -l commandline (commandline -t)
# strip -option= from token if present
set -l prefix (string match -r -- '^-[^\s=]+=' $commandline)
set commandline (string replace -- "$prefix" '' $commandline)
# eval is used to do shell expansion on paths
eval set commandline $commandline
if [ -z $commandline ]
# Default to current directory with no --query
set dir '.'
set fzf_query ''
else
set dir (__fzf_get_dir $commandline)
if [ "$dir" = "." -a (string sub -l 1 -- $commandline) != '.' ]
# if $dir is "." but commandline is not a relative path, this means no file path found
set fzf_query $commandline
else
# Also remove trailing slash after dir, to "split" input properly
set fzf_query (string replace -r "^$dir/?" -- '' "$commandline")
end
end
echo $dir
echo $fzf_query
echo $prefix
end
function __fzf_get_dir -d 'Find the longest existing filepath from input string'
set dir $argv
# Strip all trailing slashes. Ignore if $dir is root dir (/)
if [ (string length -- $dir) -gt 1 ]
set dir (string replace -r '/*$' -- '' $dir)
end
# Iteratively check if dir exists and strip tail end of path
while [ ! -d "$dir" ]
# If path is absolute, this can keep going until ends up at /
# If path is relative, this can keep going until entire input is consumed, dirname returns "."
set dir (dirname -- "$dir")
end
echo $dir
end
end

2
arch/newsboat/.newsboat/history.search

@ -0,0 +1,2 @@
Guardian
pool
Loading…
Cancel
Save