From 6a6e943ccebd5c507846910d3a81c69b8f3687de Mon Sep 17 00:00:00 2001 From: artemave Date: Fri, 9 Aug 2019 08:48:53 +0200 Subject: [PATCH] Changes --- .bash_profile | 2 +- .bundles.vim | 1 + .common_env | 2 + .config/.compton.conf | 1 + .config/i3/config | 10 ++- .config/ranger/rc.conf | 1 + .config/ranger/scope.sh | 121 ++++++++++++++++++++++++++ .config/udev_rules/monitor_hotplug.sh | 6 +- .vimrc | 2 + bin/iterm_click_file_open_in_vim.sh | 30 +++++-- 10 files changed, 165 insertions(+), 11 deletions(-) create mode 100755 .config/ranger/scope.sh diff --git a/.bash_profile b/.bash_profile index e782525..e092783 100644 --- a/.bash_profile +++ b/.bash_profile @@ -1 +1 @@ -source ~/.shell_env +source ~/.common_env diff --git a/.bundles.vim b/.bundles.vim index 32ed370..76686a5 100644 --- a/.bundles.vim +++ b/.bundles.vim @@ -144,6 +144,7 @@ set signcolumn=yes nmap ll (coc-diagnostic-next) nmap ln (coc-diagnostic-prev) +nmap li (coc-diagnostic-info) nmap gd (coc-definition) nmap gy (coc-type-definition) diff --git a/.common_env b/.common_env index 5040cf0..27a68c0 100644 --- a/.common_env +++ b/.common_env @@ -43,3 +43,5 @@ export COMMON_ENV_LOADED=1 # else # eval $(gpg-agent --daemon --write-env-file ~/.gnupg/.gpg-agent-info) # fi + +export PATH=$PATH:$HOME/.cargo/bin diff --git a/.config/.compton.conf b/.config/.compton.conf index 688ae7a..f8d6f31 100644 --- a/.config/.compton.conf +++ b/.config/.compton.conf @@ -14,6 +14,7 @@ shadow-red = 0.11; shadow-green = 0.12; shadow-blue = 0.13; shadow-exclude = [ + "name = 'cpt_frame_window'", "name = 'Notification'", "_GTK_FRAME_EXTENTS@:c", "class_g = 'i3-frame'", diff --git a/.config/i3/config b/.config/i3/config index 158eeb0..905c2f1 100644 --- a/.config/i3/config +++ b/.config/i3/config @@ -193,13 +193,16 @@ exec --no-startup-id setxkbmap -layout 'us,ru,ch(fr)' -option 'grp:alt_shift_tog # disable trackpad exec --no-startup-id xinput --disable 11 -# Sreen brightness controls +# Screen brightness controls bindsym XF86MonBrightnessUp exec xbacklight -inc 5 && pkill -RTMIN+2 i3blocks # increase screen brightness bindsym XF86MonBrightnessDown exec xbacklight -dec 5 && pkill -RTMIN+2 i3blocks # decrease screen brightness # ctrl-alt-l to lock the screen bindsym Control+$mod+l exec --no-startup-id sleep 1 && xset dpms force suspend +# hook up custom locker script into the login manager exec --no-startup-id xss-lock -- ~/.config/i3/lock.sh +# prevent lock screen if there is audio or fullscreen +exec --no-startup-id xidlehook --not-when-fullscreen --not-when-audio --timer normal 300 'i3lock --color=4c7899 --ignore-empty-password --show-failed-attempts --nofork' --timer normal 600 'systemctl suspend' '' exec --no-startup-id gnome-settings-daemon @@ -217,4 +220,7 @@ exec --no-startup-id dropbox start exec --no-startup-id feh --randomize --bg-fill ~/Pictures/Wallpaper/* -bindsym XF86Display exec --no-startup-id ~/.config/udev_rules/monitor_hotplug.sh +exec --no-startup-id unclutter --jitter 5 --ignore-scrolling --ignore-buttons 4,5 --timeout 2 + +bindsym XF86Display exec ~/.config/udev_rules/monitor_hotplug.sh +bindsym F7 exec ~/.config/udev_rules/monitor_hotplug.sh diff --git a/.config/ranger/rc.conf b/.config/ranger/rc.conf index 7f9728f..f59e96e 100644 --- a/.config/ranger/rc.conf +++ b/.config/ranger/rc.conf @@ -1,3 +1,4 @@ set show_hidden true set preview_images true +set use_preview_script true map shell -s trash-put %s diff --git a/.config/ranger/scope.sh b/.config/ranger/scope.sh new file mode 100755 index 0000000..a0fb2ec --- /dev/null +++ b/.config/ranger/scope.sh @@ -0,0 +1,121 @@ +#!/usr/bin/env sh +# ranger supports enhanced previews. If the option "use_preview_script" +# is set to True and this file exists, this script will be called and its +# output is displayed in ranger. ANSI color codes are supported. + +# NOTES: This script is considered a configuration file. If you upgrade +# ranger, it will be left untouched. (You must update it yourself.) +# Also, ranger disables STDIN here, so interactive scripts won't work properly + +# Meanings of exit codes: +# code | meaning | action of ranger +# -----+------------+------------------------------------------- +# 0 | success | success. display stdout as preview +# 1 | no preview | failure. display no preview at all +# 2 | plain text | display the plain content of the file +# 3 | fix width | success. Don't reload when width changes +# 4 | fix height | success. Don't reload when height changes +# 5 | fix both | success. Don't ever reload +# 6 | image | success. display the image $cached points to as an image preview +# 7 | image | success. display the file directly as an image + +# Meaningful aliases for arguments: +path="$1" # Full path of the selected file +width="$2" # Width of the preview pane (number of fitting characters) +height="$3" # Height of the preview pane (number of fitting characters) +cached="$4" # Path that should be used to cache image previews +preview_images="$5" # "True" if image previews are enabled, "False" otherwise. + +maxln=200 # Stop after $maxln lines. Can be used like ls | head -n $maxln + +# Find out something about the file: +mimetype=$(file --mime-type -Lb "$path") +extension=$(/bin/echo "${path##*.}" | awk '{print tolower($0)}') + +# Functions: +# runs a command and saves its output into $output. Useful if you need +# the return value AND want to use the output in a pipe +try() { output=$(eval '"$@"'); } + +# writes the output of the previously used "try" command +dump() { /bin/echo "$output"; } + +# a common post-processing function used after most commands +trim() { head -n "$maxln"; } + +# wraps highlight to treat exit code 141 (killed by SIGPIPE) as success +safepipe() { "$@"; test $? = 0 -o $? = 141; } + +# Image previews, if enabled in ranger. +if [ "$preview_images" = "True" ]; then + case "$mimetype" in + # Image previews for SVG files, disabled by default. + ###image/svg+xml) + ### convert "$path" "$cached" && exit 6 || exit 1;; + # Image previews for image files. w3mimgdisplay will be called for all + # image files (unless overriden as above), but might fail for + # unsupported types. + image/*) + exit 7;; + # Image preview for video, disabled by default.: + ###video/*) + ### ffmpegthumbnailer -i "$path" -o "$cached" -s 0 && exit 6 || exit 1;; + esac +fi + +case "$extension" in + # Archive extensions: + a|ace|alz|arc|arj|bz|bz2|cab|cpio|deb|gz|jar|lha|lz|lzh|lzma|lzo|\ + rpm|rz|t7z|tar|tbz|tbz2|tgz|tlz|txz|tZ|tzo|war|xpi|xz|Z|zip) + try als "$path" && { dump | trim; exit 0; } + try acat "$path" && { dump | trim; exit 3; } + try bsdtar -lf "$path" && { dump | trim; exit 0; } + exit 1;; + rar) + # avoid password prompt by providing empty password + try unrar -p- lt "$path" && { dump | trim; exit 0; } || exit 1;; + 7z) + # avoid password prompt by providing empty password + try 7z -p l "$path" && { dump | trim; exit 0; } || exit 1;; + # PDF documents: + pdf) + try pdftotext -l 10 -nopgbrk -q "$path" - && \ + { dump | trim | fmt -s -w $width; exit 0; } || exit 1;; + # BitTorrent Files + torrent) + try transmission-show "$path" && { dump | trim; exit 5; } || exit 1;; + # ODT Files + odt|ods|odp|sxw) + try odt2txt "$path" && { dump | trim; exit 5; } || exit 1;; + # HTML Pages: + htm|html|xhtml) + try w3m -dump "$path" && { dump | trim | fmt -s -w $width; exit 4; } + try lynx -dump "$path" && { dump | trim | fmt -s -w $width; exit 4; } + try elinks -dump "$path" && { dump | trim | fmt -s -w $width; exit 4; } + ;; # fall back to highlight/cat if the text browsers fail +esac + +case "$mimetype" in + # Syntax highlight for text files: + text/* | */xml) + if [ "$(tput colors)" -ge 256 ]; then + pygmentize_format=terminal256 + highlight_format=xterm256 + else + pygmentize_format=terminal + highlight_format=ansi + fi + try safepipe highlight --out-format=${highlight_format} "$path" && { dump | trim; exit 5; } + try safepipe pygmentize -f ${pygmentize_format} "$path" && { dump | trim; exit 5; } + exit 2;; + # Ascii-previews of images: + image/*) + img2txt --gamma=0.6 --width="$width" "$path" && exit 4 || exit 1;; + # Display information about media files: + video/* | audio/*) + exiftool "$path" && exit 5 + # Use sed to remove spaces so the output fits into the narrow window + try mediainfo "$path" && { dump | trim | sed 's/ \+:/: /;'; exit 5; } || exit 1;; +esac + +exit 1 diff --git a/.config/udev_rules/monitor_hotplug.sh b/.config/udev_rules/monitor_hotplug.sh index 0de7606..be1dbab 100644 --- a/.config/udev_rules/monitor_hotplug.sh +++ b/.config/udev_rules/monitor_hotplug.sh @@ -19,14 +19,14 @@ DP2=$(p "_dp packadd cfilter + +" command! Ctags call system('ctags $(git ls-files)') diff --git a/bin/iterm_click_file_open_in_vim.sh b/bin/iterm_click_file_open_in_vim.sh index 884f1f4..f6f8ebe 100755 --- a/bin/iterm_click_file_open_in_vim.sh +++ b/bin/iterm_click_file_open_in_vim.sh @@ -2,8 +2,28 @@ set -e -/usr/local/bin/tmux select-window -t vim -/usr/local/bin/tmux send-keys Escape -/usr/local/bin/tmux send-keys ":e +$2 $1" -/usr/local/bin/tmux send-keys Enter -/usr/local/bin/tmux send-keys zz +# notify-send --urgency=low -t 5000 "tmux -> vim" "File: $1, line: $2" + +if [ "$(uname)" == "Linux" ]; then + tmux=tmux +else + tmux=/usr/local/bin/tmux +fi + +if [[ ! -f "$1" ]]; then + if [[ ! -f "./$1" ]]; then + if command -v notify-send &> /dev/null; then + notify-send --urgency=low -t 5000 "tmux -> vim" "File not found: $1" + fi + fi +else + $tmux select-window -t vim + $tmux send-keys Escape + if [ -z "$2" ]; then + $tmux send-keys ":e $1" + else + $tmux send-keys ":e +$2 $1" + fi + $tmux send-keys Enter + $tmux send-keys zz +fi