diff --git a/.config/fontconfig/fonts.conf b/.config/fontconfig/fonts.conf
index bbb7239..b74635a 100644
--- a/.config/fontconfig/fonts.conf
+++ b/.config/fontconfig/fonts.conf
@@ -29,7 +29,10 @@
hintnone
lcdlight
-
+
+ verdana
+ Ubuntu
+
sans-serif
diff --git a/.config/i3/config b/.config/i3/config
index cf846e0..2eb746a 100644
--- a/.config/i3/config
+++ b/.config/i3/config
@@ -48,12 +48,17 @@ exec --no-startup-id "udiskie --notify --automount" # Automounter
# Background software
exec --no-startup-id "blueman-manager" # Bluetooth
exec --no-startup-id "cantata"
+exec --no-startup-id "boincmgr"
exec --no-startup-id "nextcloud"
exec --no-startup-id "pavucontrol"
+exec --no-startup-id "keepassxc" # Password manager
# Applications
exec --no-startup-id "telegram-desktop"
+# Set manual layout for tray workspace
+exec --no-startup-id "i3-msg 'workspace 10:tray; append_layout /home/lanxu/.config/i3/tray.json'"
+
set $refresh_i3status killall -SIGUSR1 i3status
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +5% && $refresh_i3status
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -5% && $refresh_i3status
@@ -158,7 +163,7 @@ set $ws5 "5:steam"
set $ws6 "6:lutris"
set $ws7 "7"
set $ws8 "8"
-set $ws9 "9"
+set $ws9 "9:pw"
set $ws10 "10:tray"
# switch to workspace
@@ -235,8 +240,9 @@ for_window [class="Arandr"] floating enable
for_window [title="^Telegram$"] floating enable, move scratchpad
for_window [class="itch"] floating enable
# for_window [class="Wine"] floating enable
-for_window [class="mpv"] floating enabler, move position center
+for_window [class="mpv"] floating enable, move position center
for_window [class="vlc"] floating enable
+for_window [class="Mumble"] floating enable, move position center
for_window [class="Sxiv"] floating enable
for_window [class="Lutris"] move container to workspace $ws6
for_window [class="Gimp"] move container to workspace $ws4
@@ -249,6 +255,12 @@ for_window [class="Nextcloud"] floating disable, move container to workspace $ws
for_window [class="Blueman-manager"] move container to workspace $ws10
for_window [class="Pavucontrol"] move container to workspace $ws10e
for_window [class="cantata"] floating disable, move container to workspace $ws10
+for_window [class="boincmgr"] floating disable, move container to workspace $ws10
+for_window [class="KeePassXC"] move container to workspace $ws9
+
+# Games
+for_window [class="kfgame.exe"] floating enable
+for_window [class="Wine"] floating enable
# Steam
# https://github.com/ValveSoftware/steam-for-linux/issues/1040
@@ -276,19 +288,43 @@ smart_gaps on
gaps outer 0
gaps inner 10
+# https://github.com/khamer/base16-i3/tree/master/colors
+
## Base16 Solarized Light
# Author: Ethan Schoonover (modified by aramisgithub)
#
# You can use these variables anywhere in the i3 configuration file.
-set $base00 #fdf6e3
-set $base01 #eee8d5
-set $base02 #93a1a1
-set $base03 #839496
-set $base04 #657b83
-set $base05 #586e75
-set $base06 #073642
-set $base07 #002b36
+#set $base00 #fdf6e3
+#set $base01 #eee8d5
+#set $base02 #93a1a1
+#set $base03 #839496
+#set $base04 #657b83
+#set $base05 #586e75
+#set $base06 #073642
+#set $base07 #002b36
+#set $base08 #dc322f
+#set $base09 #cb4b16
+#set $base0A #b58900
+#set $base0B #859900
+#set $base0C #2aa198
+#set $base0D #268bd2
+#set $base0E #6c71c4
+#set $base0F #d33682
+
+## Base16 Solarized Dark
+# Author: Ethan Schoonover (modified by aramisgithub)
+#
+# You can use these variables anywhere in the i3 configuration file.
+
+set $base00 #002b36
+set $base01 #073642
+set $base02 #586e75
+set $base03 #657b83
+set $base04 #839496
+set $base05 #93a1a1
+set $base06 #eee8d5
+set $base07 #fdf6e3
set $base08 #dc322f
set $base09 #cb4b16
set $base0A #b58900
diff --git a/.config/i3/i3status.conf b/.config/i3/i3status.conf
index d8c9f59..07c560f 100644
--- a/.config/i3/i3status.conf
+++ b/.config/i3/i3status.conf
@@ -1,7 +1,8 @@
general {
# These will be used if not supplied by a module
# Solarized
- color = '#073642'
+ #color = '#073642' # base0
+ color = '#93a1a1' # base1
color_good = '#859900'
color_degraded = '#b58900'
color_bad = '#dc322f'
@@ -12,8 +13,8 @@ py3status {
min_width = 50
separator = True
separator_block_width = 20
- # border = '#4c7899'
- border = '#073642'
+ border = '#4c7899'
+ #border = '#073642'
border_bottom = 0
border_left = 0
border_right = 0
diff --git a/.config/i3/py3status/gpu_temp.py b/.config/i3/py3status/gpu_temp.py
index eabb678..11bf24d 100644
--- a/.config/i3/py3status/gpu_temp.py
+++ b/.config/i3/py3status/gpu_temp.py
@@ -11,8 +11,8 @@ class Py3status:
format = 'GPU: {temp}℃'
thresholds = [
(0, "good"),
- (45, "degraded"),
- (60, "bad")
+ (50, "degraded"),
+ (70, "bad")
]
def gpu_temp(self):
diff --git a/.config/kitty/kitty.conf b/.config/kitty/kitty.conf
index 8b5e446..f70f4fc 100644
--- a/.config/kitty/kitty.conf
+++ b/.config/kitty/kitty.conf
@@ -1,50 +1,51 @@
-font_family Fira Mono Medium
-bold_font Fira Mono Bold
-italic_font Fira Mono Italic
+font_family Fira Code Medium
+bold_font Fira Code Bold
+italic_font Fira Code Italic
bold_italic_font auto
font_size 11.0
window_padding_width 10.0
window_padding_height 10.0
-# Base16 Solarized Light - kitty color config
+# Base16 Solarized Dark - kitty color config
# Scheme by Ethan Schoonover (modified by aramisgithub)
-background #fdf6e3
-foreground #586e75
-selection_background #586e75
-selection_foreground #fdf6e3
-url_color #657b83
-cursor #586e75
-active_border_color #839496
-inactive_border_color #eee8d5
-active_tab_background #fdf6e3
-active_tab_foreground #586e75
-inactive_tab_background #eee8d5
-inactive_tab_foreground #657b83
+background #002b36
+foreground #93a1a1
+selection_background #93a1a1
+selection_foreground #002b36
+url_color #839496
+cursor #93a1a1
+active_border_color #657b83
+inactive_border_color #073642
+active_tab_background #002b36
+active_tab_foreground #93a1a1
+inactive_tab_background #073642
+inactive_tab_foreground #839496
+tab_bar_background #073642
# normal
-color0 #fdf6e3
+color0 #002b36
color1 #dc322f
color2 #859900
color3 #b58900
color4 #268bd2
color5 #6c71c4
color6 #2aa198
-color7 #586e75
+color7 #93a1a1
# bright
-color8 #839496
+color8 #657b83
color9 #dc322f
color10 #859900
color11 #b58900
color12 #268bd2
color13 #6c71c4
color14 #2aa198
-color15 #586e75
+color15 #fdf6e3
# extended base16 colors
color16 #cb4b16
color17 #d33682
-color18 #eee8d5
-color19 #93a1a1
-color20 #657b83
-color21 #073642
+color18 #073642
+color19 #586e75
+color20 #839496
+color21 #eee8d5
diff --git a/.config/nitrogen/bg-saved.cfg b/.config/nitrogen/bg-saved.cfg
index 4825b11..29e6ebb 100644
--- a/.config/nitrogen/bg-saved.cfg
+++ b/.config/nitrogen/bg-saved.cfg
@@ -1,9 +1,9 @@
[xin_0]
file=/home/lanxu/.config/i3/background.png
-mode=2
+mode=5
bgcolor=#000000
[xin_1]
file=/home/lanxu/.config/i3/background.png
-mode=2
+mode=5
bgcolor=#000000
diff --git a/.config/nitrogen/nitrogen.cfg b/.config/nitrogen/nitrogen.cfg
index 70ca314..093eb68 100644
--- a/.config/nitrogen/nitrogen.cfg
+++ b/.config/nitrogen/nitrogen.cfg
@@ -1,12 +1,12 @@
[geometry]
-posx=616
-posy=19
-sizex=638
-sizey=1059
+posx=3205
+posy=33
+sizex=625
+sizey=1037
[nitrogen]
-view=icon
+view=list
recurse=true
sort=alpha
icon_caps=false
-dirs=
+dirs=/home/lanxu/.config/i3;
diff --git a/.config/ranger/rc.conf b/.config/ranger/rc.conf
index d963d9b..295243e 100644
--- a/.config/ranger/rc.conf
+++ b/.config/ranger/rc.conf
@@ -67,6 +67,9 @@ set vcs_backend_hg disabled
set vcs_backend_bzr disabled
set vcs_backend_svn disabled
+# Truncate the long commit messages to this length when shown in the statusbar.
+set vcs_msg_length 50
+
# Use one of the supported image preview protocols
set preview_images true
@@ -106,12 +109,20 @@ set preview_images true
# while slower, this allows remote previews,
# for example during an ssh session.
# Tmux is unsupported.
+#
+# * ueberzug:
+# Preview images in full color with the external command "ueberzug".
+# Images are shown by using a child window.
+# Only for users who run X11 in GNU/Linux.
set preview_images_method kitty
# Delay in seconds before displaying an image with the w3m method.
# Increase it in case of experiencing display corruption.
set w3m_delay 0.02
+# Manually adjust the w3mimg offset when using a terminal which needs this
+set w3m_offset 0
+
# Default iTerm2 font size (see: preview_images_method: iterm2)
set iterm2_font_width 8
set iterm2_font_height 11
@@ -136,6 +147,9 @@ set preview_files true
set preview_directories true
set collapse_preview true
+# Wrap long lines in plain text previews?
+set wrap_plaintext_previews false
+
# Save the console history on exit?
set save_console_history true
@@ -168,10 +182,10 @@ set display_free_space_in_status_bar true
# Display files tags in all columns or only in main column?
set display_tags_in_all_columns true
-# Set a title for the window?
+# Set a title for the window? Updates both `WM_NAME` and `WM_ICON_NAME`
set update_title false
-# Set the title to "ranger" in the tmux program?
+# Set the tmux/screen window-name to "ranger"?
set update_tmux_title true
# Shorten the title if it gets long? The number defines how many
@@ -290,6 +304,14 @@ set global_inode_type_filter
# should be 'false' during start-up, but you can toggle it by pressing F.
set freeze_files false
+# Print file sizes in bytes instead of the default human-readable format.
+set size_in_bytes false
+
+# Warn at startup if RANGER_LEVEL env var is greater than 0, in other words
+# give a warning when you nest ranger in a subshell started by ranger.
+# Special value "error" makes the warning more visible.
+set nested_ranger_warning true
+
# ===================================================================
# == Local Options
# ===================================================================
@@ -337,6 +359,8 @@ map change_mode normal
map ~ set viewmode!
map i display_file
+map scroll_preview 1
+map scroll_preview -1
map ? help
map W display_log
map w taskview_open
@@ -348,9 +372,8 @@ map ! console shell%space
map @ console -p6 shell %%s
map # console shell -p%space
map s console shell%space
-map r chain draw_possible_programs; console open_with%%space
-# map f console find%space
-map f console scout -ftsea%space
+map r chain draw_possible_programs; console open_with%space
+map f console find%space
map cd console cd%space
map chain console; eval fm.ui.console.history_move(-1)
@@ -359,8 +382,10 @@ map chain console; eval fm.ui.console.history_move(-1)
map Mf linemode filename
map Mi linemode fileinfo
map Mm linemode mtime
+map Mh linemode humanreadablemtime
map Mp linemode permissions
map Ms linemode sizemtime
+map MH linemode sizehumanreadablemtime
map Mt linemode metatitle
# Tagging / Marking
@@ -382,6 +407,7 @@ map copy
map cut
map console mkdir%space
map console delete
+#map console trash
map exit
# In case you work on a keyboard with dvorak layout
@@ -464,8 +490,12 @@ map pl paste_symlink relative=False
map pL paste_symlink relative=True
map phl paste_hardlink
map pht paste_hardlinked_subtree
+map pd console paste dest=
+map p` paste dest=%any_path
+map p' paste dest=%any_path
map dD console delete
+map dT console trash
map dd cut
map ud uncut
@@ -566,15 +596,18 @@ map zf console filter%space
copymap zf zz
# Filter stack
-map .n console filter_stack add name%space
-map .m console filter_stack add mime%space
map .d filter_stack add type d
map .f filter_stack add type f
map .l filter_stack add type l
+map .m console filter_stack add mime%space
+map .n console filter_stack add name%space
+map .# console filter_stack add hash%space
+map ." filter_stack add duplicate
+map .' filter_stack add unique
map .| filter_stack add or
map .& filter_stack add and
map .! filter_stack add not
-map .r console filter_stack rotate
+map .r filter_stack rotate
map .c filter_stack clear
map .* filter_stack decompose
map .p filter_stack pop
@@ -724,3 +757,6 @@ tmap eval -q fm.ui.taskview.task_remove()
tmap redraw_window
tmap taskview_close
copytmap q Q w
+
+# Drag'n'Drop using dragon https://github.com/mwh/dragon
+map shell dragon -a -x %p
diff --git a/.config/ranger/rifle.conf b/.config/ranger/rifle.conf
index 64bdea0..642f521 100644
--- a/.config/ranger/rifle.conf
+++ b/.config/ranger/rifle.conf
@@ -26,7 +26,7 @@
# directory | $1 is a directory
# number | change the number of this command to n
# terminal | stdin, stderr and stdout are connected to a terminal
-# X | $DISPLAY is not empty (i.e. Xorg runs)
+# X | A graphical environment is available (darwin, Xorg, or Wayland)
#
# There are also pseudo-conditions which have a "side effect":
# flag | Change how the program is run. See below.
@@ -48,7 +48,7 @@
# Note: When using rifle in ranger, there is an additional flag "c" for
# only running the current file even if you have marked multiple files.
-has xdg-open, flag f = xdg-open "$1"
+# has xdg-open, flag f = xdg-open "$1"
#-------------------------------------------
# Websites
#-------------------------------------------
@@ -67,13 +67,13 @@ ext x?html?, has uzbl-tabbed, X, flag f = uzbl-tabbed -- "$@"
ext x?html?, has uzbl-browser, X, flag f = uzbl-browser -- "$@"
ext x?html?, has uzbl-core, X, flag f = uzbl-core -- "$@"
ext x?html?, has midori, X, flag f = midori -- "$@"
-ext x?html?, has chromium-browser, X, flag f = chromium-browser -- "$@"
-ext x?html?, has chromium, X, flag f = chromium -- "$@"
-ext x?html?, has google-chrome, X, flag f = google-chrome -- "$@"
ext x?html?, has opera, X, flag f = opera -- "$@"
ext x?html?, has firefox, X, flag f = firefox -- "$@"
ext x?html?, has seamonkey, X, flag f = seamonkey -- "$@"
ext x?html?, has iceweasel, X, flag f = iceweasel -- "$@"
+ext x?html?, has chromium-browser, X, flag f = chromium-browser -- "$@"
+ext x?html?, has chromium, X, flag f = chromium -- "$@"
+ext x?html?, has google-chrome, X, flag f = google-chrome -- "$@"
ext x?html?, has epiphany, X, flag f = epiphany -- "$@"
ext x?html?, has konqueror, X, flag f = konqueror -- "$@"
ext x?html?, has elinks, terminal = elinks "$@"
@@ -99,7 +99,7 @@ ext exe = wine "$1"
name ^[mM]akefile$ = make
#--------------------------------------------
-# Code
+# Scripts
#-------------------------------------------
ext py = python -- "$1"
ext pl = perl -- "$1"
@@ -168,8 +168,13 @@ ext djvu, has atril, X, flag f = atril -- "$@"
ext djvu, has djview, X, flag f = djview -- "$@"
ext epub, has ebook-viewer, X, flag f = ebook-viewer -- "$@"
+ext epub, has zathura, X, flag f = zathura -- "$@"
+ext epub, has mupdf, X, flag f = mupdf -- "$@"
ext mobi, has ebook-viewer, X, flag f = ebook-viewer -- "$@"
+ext cbr, has zathura, X, flag f = zathura -- "$@"
+ext cbz, has zathura, X, flag f = zathura -- "$@"
+
#-------------------------------------------
# Images
#-------------------------------------------
@@ -186,6 +191,7 @@ mime ^image, has eog, X, flag f = eog -- "$@"
mime ^image, has eom, X, flag f = eom -- "$@"
mime ^image, has nomacs, X, flag f = nomacs -- "$@"
mime ^image, has geeqie, X, flag f = geeqie -- "$@"
+mime ^image, has gpicview, X, flag f = gpicview -- "$@"
mime ^image, has gwenview, X, flag f = gwenview -- "$@"
mime ^image, has gimp, X, flag f = gimp -- "$@"
ext xcf, X, flag f = gimp -- "$@"
@@ -254,10 +260,29 @@ label wallpaper, number 12, mime ^image, has feh, X = feh --bg-tile "$1"
label wallpaper, number 13, mime ^image, has feh, X = feh --bg-center "$1"
label wallpaper, number 14, mime ^image, has feh, X = feh --bg-fill "$1"
+#-------------------------------------------
+# Generic file openers
+#-------------------------------------------
+label open, has xdg-open = xdg-open -- "$@"
+label open, has open = open -- "$@"
+
# Define the editor for non-text files + pager as last action
!mime ^text, !ext xml|json|csv|tex|py|pl|rb|js|sh|php = ask
label editor, !mime ^text, !ext xml|json|csv|tex|py|pl|rb|js|sh|php = ${VISUAL:-$EDITOR} -- "$@"
label pager, !mime ^text, !ext xml|json|csv|tex|py|pl|rb|js|sh|php = "$PAGER" -- "$@"
-# The very last action, so that it's never triggered accidentally, is to execute a program:
+
+######################################################################
+# The actions below are left so low down in this file on purpose, so #
+# they are never triggered accidentally. #
+######################################################################
+
+# Execute a file as program/script.
mime application/x-executable = "$1"
+
+# Move the file to trash using trash-cli.
+label trash, has trash-put = trash-put -- "$@"
+label trash = mkdir -p -- ${XDG_DATA_DIR:-$HOME/.ranger}/ranger-trash; mv -- "$@" ${XDG_DATA_DIR:-$HOME/.ranger}/ranger-trash
+
+# Drag'n'Drop using dragon https://github.com/mwh/dragon
+has dragon, X, flag f = dragon -a -x "$@"
diff --git a/.config/ranger/scope.sh b/.config/ranger/scope.sh
index a5ed026..b2825fb 100755
--- a/.config/ranger/scope.sh
+++ b/.config/ranger/scope.sh
@@ -3,29 +3,34 @@
set -o noclobber -o noglob -o nounset -o pipefail
IFS=$'\n'
-# If the option `use_preview_script` is set to `true`,
-# then this script will be called and its output will be displayed in ranger.
-# ANSI color codes are supported.
-# STDIN is disabled, so interactive scripts won't work properly
+## If the option `use_preview_script` is set to `true`,
+## then this script will be called and its output will be displayed in ranger.
+## ANSI color codes are supported.
+## STDIN is disabled, so interactive scripts won't work properly
-# This script is considered a configuration file and must be updated manually.
-# It will be left untouched if you upgrade ranger.
+## This script is considered a configuration file and must be updated manually.
+## It will be left untouched if you upgrade ranger.
-# Meanings of exit codes:
-# code | meaning | action of ranger
-# -----+------------+-------------------------------------------
-# 0 | success | Display stdout as preview
-# 1 | no preview | Display no preview at all
-# 2 | plain text | Display the plain content of the file
-# 3 | fix width | Don't reload when width changes
-# 4 | fix height | Don't reload when height changes
-# 5 | fix both | Don't ever reload
-# 6 | image | Display the image `$IMAGE_CACHE_PATH` points to as an image preview
-# 7 | image | Display the file directly as an image
+## Because of some automated testing we do on the script #'s for comments need
+## to be doubled up. Code that is commented out, because it's an alternative for
+## example, gets only one #.
-# Script arguments
+## Meanings of exit codes:
+## code | meaning | action of ranger
+## -----+------------+-------------------------------------------
+## 0 | success | Display stdout as preview
+## 1 | no preview | Display no preview at all
+## 2 | plain text | Display the plain content of the file
+## 3 | fix width | Don't reload when width changes
+## 4 | fix height | Don't reload when height changes
+## 5 | fix both | Don't ever reload
+## 6 | image | Display the image `$IMAGE_CACHE_PATH` points to as an image preview
+## 7 | image | Display the file directly as an image
+
+## Script arguments
FILE_PATH="${1}" # Full path of the highlighted file
PV_WIDTH="${2}" # Width of the preview pane (number of fitting characters)
+## shellcheck disable=SC2034 # PV_HEIGHT is provided for convenience and unused
PV_HEIGHT="${3}" # Height of the preview pane (number of fitting characters)
IMAGE_CACHE_PATH="${4}" # Full path that should be used to cache image preview
PV_IMAGE_ENABLED="${5}" # 'True' if image previews are enabled, 'False' otherwise.
@@ -33,71 +38,93 @@ PV_IMAGE_ENABLED="${5}" # 'True' if image previews are enabled, 'False' otherwi
FILE_EXTENSION="${FILE_PATH##*.}"
FILE_EXTENSION_LOWER="$(printf "%s" "${FILE_EXTENSION}" | tr '[:upper:]' '[:lower:]')"
-# Settings
+## Settings
HIGHLIGHT_SIZE_MAX=262143 # 256KiB
HIGHLIGHT_TABWIDTH=${HIGHLIGHT_TABWIDTH:-8}
HIGHLIGHT_STYLE=${HIGHLIGHT_STYLE:-pablo}
HIGHLIGHT_OPTIONS="--replace-tabs=${HIGHLIGHT_TABWIDTH} --style=${HIGHLIGHT_STYLE} ${HIGHLIGHT_OPTIONS:-}"
PYGMENTIZE_STYLE=${PYGMENTIZE_STYLE:-autumn}
-
+OPENSCAD_IMGSIZE=${RNGR_OPENSCAD_IMGSIZE:-1000,1000}
+OPENSCAD_COLORSCHEME=${RNGR_OPENSCAD_COLORSCHEME:-Tomorrow Night}
handle_extension() {
case "${FILE_EXTENSION_LOWER}" in
- # Archive
+ ## Archive
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)
atool --list -- "${FILE_PATH}" && exit 5
bsdtar --list --file "${FILE_PATH}" && exit 5
exit 1;;
rar)
- # Avoid password prompt by providing empty password
+ ## Avoid password prompt by providing empty password
unrar lt -p- -- "${FILE_PATH}" && exit 5
exit 1;;
7z)
- # Avoid password prompt by providing empty password
+ ## Avoid password prompt by providing empty password
7z l -p -- "${FILE_PATH}" && exit 5
exit 1;;
- # PDF
- #pdf)
- # # Preview as text conversion
- # pdftotext -l 10 -nopgbrk -q -- "${FILE_PATH}" - | fmt -w ${PV_WIDTH} && exit 5
- # mutool draw -F txt -i -- "${FILE_PATH}" 1-10 | fmt -w ${PV_WIDTH} && exit 5
- # exiftool "${FILE_PATH}" && exit 5
- # exit 1;;
+ ## PDF
+ pdf)
+ ## Preview as text conversion
+ pdftotext -l 10 -nopgbrk -q -- "${FILE_PATH}" - | \
+ fmt -w "${PV_WIDTH}" && exit 5
+ mutool draw -F txt -i -- "${FILE_PATH}" 1-10 | \
+ fmt -w "${PV_WIDTH}" && exit 5
+ exiftool "${FILE_PATH}" && exit 5
+ exit 1;;
- # BitTorrent
+ ## BitTorrent
torrent)
transmission-show -- "${FILE_PATH}" && exit 5
exit 1;;
- # OpenDocument
+ ## OpenDocument
odt|ods|odp|sxw)
- # Preview as text conversion
+ ## Preview as text conversion
odt2txt "${FILE_PATH}" && exit 5
+ ## Preview as markdown conversion
+ pandoc -s -t markdown -- "${FILE_PATH}" && exit 5
exit 1;;
- # HTML
+ ## XLSX
+ xlsx)
+ ## Preview as csv conversion
+ ## Uses: https://github.com/dilshod/xlsx2csv
+ xlsx2csv -- "${FILE_PATH}" && exit 5
+ exit 1;;
+
+ ## HTML
htm|html|xhtml)
- # Preview as text conversion
+ ## Preview as text conversion
w3m -dump "${FILE_PATH}" && exit 5
lynx -dump -- "${FILE_PATH}" && exit 5
elinks -dump "${FILE_PATH}" && exit 5
- ;; # Continue with next handler on failure
+ pandoc -s -t markdown -- "${FILE_PATH}" && exit 5
+ ;;
- # JSON
+ ## JSON
json)
jq --color-output . "${FILE_PATH}" && exit 5
python -m json.tool -- "${FILE_PATH}" && exit 5
-;;
+ ;;
+
+ ## Direct Stream Digital/Transfer (DSDIFF) and wavpack aren't detected
+ ## by file(1).
+ dff|dsf|wv|wvc)
+ mediainfo "${FILE_PATH}" && exit 5
+ exiftool "${FILE_PATH}" && exit 5
+ ;; # Continue with next handler on failure
esac
}
handle_image() {
- # Size of the preview if there are multiple options or it has to be rendered
- # from vector graphics. If the conversion program allows specifying only one
- # dimension while keeping the aspect ratio, the width will be used.
+ ## Size of the preview if there are multiple options or it has to be
+ ## rendered from vector graphics. If the conversion program allows
+ ## specifying only one dimension while keeping the aspect ratio, the width
+ ## will be used.
local DEFAULT_SIZE="1920x1080"
+
local mimetype="${1}"
case "${FILE_EXTENSION_LOWER}" in
@@ -134,33 +161,32 @@ handle_image() {
# but might fail for unsupported types.
exit 7;;
- # Video
- video/*)
- # Thumbnail
- ffmpegthumbnailer -i "${FILE_PATH}" -o "${IMAGE_CACHE_PATH}" -s 0 && exit 6
- exit 1;;
+ ## Video
+ # video/*)
+ # # Thumbnail
+ # ffmpegthumbnailer -i "${FILE_PATH}" -o "${IMAGE_CACHE_PATH}" -s 0 && exit 6
+ # exit 1;;
- # PDF
- application/pdf)
- pdftoppm -f 1 -l 1 \
- -scale-to-x "${DEFAULT_SIZE%x*}" \
- -scale-to-y -1 \
- -singlefile \
- -jpeg -tiffcompression jpeg \
- -- "${FILE_PATH}" "${IMAGE_CACHE_PATH%.*}" \
- && exit 6 || exit 1;;
- # ePub, MOBI, FB2 (using Calibre)
- # application/epub+zip|application/x-mobipocket-ebook|application/x-fictionbook+xml)
- # ebook-meta --get-cover="${IMAGE_CACHE_PATH}" -- "${FILE_PATH}" > /dev/null \
+ ## PDF
+ # application/pdf)
+ # pdftoppm -f 1 -l 1 \
+ # -scale-to-x "${DEFAULT_SIZE%x*}" \
+ # -scale-to-y -1 \
+ # -singlefile \
+ # -jpeg -tiffcompression jpeg \
+ # -- "${FILE_PATH}" "${IMAGE_CACHE_PATH%.*}" \
# && exit 6 || exit 1;;
+ ## ePub, MOBI, FB2 (using Calibre)
+ # application/epub+zip|application/x-mobipocket-ebook|\
+ # application/x-fictionbook+xml)
+ # # ePub (using https://github.com/marianosimone/epub-thumbnailer)
+ # epub-thumbnailer "${FILE_PATH}" "${IMAGE_CACHE_PATH}" \
+ # "${DEFAULT_SIZE%x*}" && exit 6
+ # ebook-meta --get-cover="${IMAGE_CACHE_PATH}" -- "${FILE_PATH}" \
+ # >/dev/null && exit 6
+ # exit 1;;
- # ePub (using )
- # application/epub+zip)
- # epub-thumbnailer \
- # "${FILE_PATH}" "${IMAGE_CACHE_PATH}" "${DEFAULT_SIZE%x*}" \
- # && exit 6 || exit 1;;
-
- # Font
+ ## Font
application/font*|application/*opentype)
preview_png="/tmp/$(basename "${IMAGE_CACHE_PATH%.*}").png"
if fontimage -o "${preview_png}" \
@@ -181,8 +207,8 @@ handle_image() {
fi
;;
- # Preview archives using the first image inside.
- # (Very useful for comic book collections for example.)
+ ## Preview archives using the first image inside.
+ ## (Very useful for comic book collections for example.)
# application/zip|application/x-rar|application/x-7z-compressed|\
# application/x-xz|application/x-bzip2|application/x-gzip|application/x-tar)
# local fn=""; local fe=""
@@ -218,14 +244,60 @@ handle_image() {
# [ "$rar" ] || [ "$zip" ] && rm -- "${IMAGE_CACHE_PATH}"
# ;;
esac
+
+ # openscad_image() {
+ # TMPPNG="$(mktemp -t XXXXXX.png)"
+ # openscad --colorscheme="${OPENSCAD_COLORSCHEME}" \
+ # --imgsize="${OPENSCAD_IMGSIZE/x/,}" \
+ # -o "${TMPPNG}" "${1}"
+ # mv "${TMPPNG}" "${IMAGE_CACHE_PATH}"
+ # }
+
+ # case "${FILE_EXTENSION_LOWER}" in
+ # ## 3D models
+ # ## OpenSCAD only supports png image output, and ${IMAGE_CACHE_PATH}
+ # ## is hardcoded as jpeg. So we make a tempfile.png and just
+ # ## move/rename it to jpg. This works because image libraries are
+ # ## smart enough to handle it.
+ # csg|scad)
+ # openscad_image "${FILE_PATH}" && exit 6
+ # ;;
+ # 3mf|amf|dxf|off|stl)
+ # openscad_image <(echo "import(\"${FILE_PATH}\");") && exit 6
+ # ;;
+ # esac
}
handle_mime() {
local mimetype="${1}"
case "${mimetype}" in
- # Text
+ ## RTF and DOC
+ text/rtf|*msword)
+ ## Preview as text conversion
+ ## note: catdoc does not always work for .doc files
+ ## catdoc: http://www.wagner.pp.ru/~vitus/software/catdoc/
+ catdoc -- "${FILE_PATH}" && exit 5
+ exit 1;;
+
+ ## DOCX, ePub, FB2 (using markdown)
+ ## You might want to remove "|epub" and/or "|fb2" below if you have
+ ## uncommented other methods to preview those formats
+ *wordprocessingml.document|*/epub+zip|*/x-fictionbook+xml)
+ ## Preview as markdown conversion
+ pandoc -s -t markdown -- "${FILE_PATH}" && exit 5
+ exit 1;;
+
+ ## XLS
+ *ms-excel)
+ ## Preview as csv conversion
+ ## xls2csv comes with catdoc:
+ ## http://www.wagner.pp.ru/~vitus/software/catdoc/
+ xls2csv -- "${FILE_PATH}" && exit 5
+ exit 1;;
+
+ ## Text
text/* | */xml)
- # Syntax highlight
+ ## Syntax highlight
if [[ "$( stat --printf='%s' -- "${FILE_PATH}" )" -gt "${HIGHLIGHT_SIZE_MAX}" ]]; then
exit 2
fi
@@ -239,26 +311,27 @@ handle_mime() {
env HIGHLIGHT_OPTIONS="${HIGHLIGHT_OPTIONS}" highlight \
--out-format="${highlight_format}" \
--force -- "${FILE_PATH}" && exit 5
+ env COLORTERM=8bit bat --color=always --style="plain" \
+ -- "${FILE_PATH}" && exit 5
pygmentize -f "${pygmentize_format}" -O "style=${PYGMENTIZE_STYLE}"\
-- "${FILE_PATH}" && exit 5
exit 2;;
- # DjVu
+ ## DjVu
image/vnd.djvu)
- # Preview as text conversion (requires djvulibre)
- djvutxt "${FILE_PATH}" | fmt -w ${PV_WIDTH} && exit 5
+ ## Preview as text conversion (requires djvulibre)
+ djvutxt "${FILE_PATH}" | fmt -w "${PV_WIDTH}" && exit 5
exiftool "${FILE_PATH}" && exit 5
exit 1;;
- # Image
+ ## Image
image/*)
- # Preview as text conversion
- img2txt --format=utf8 --gamma=0.6 --width="${PV_WIDTH}" -- "${FILE_PATH}" && exit 4
- #catimg -w "${PV_WIDTH}" -- "${FILE_PATH}" && exit 4
+ ## Preview as text conversion
+ img2txt --gamma=0.6 --width="${PV_WIDTH}" -- "${FILE_PATH}" && exit 4
#exiftool "${FILE_PATH}" && exit 5
exit 1;;
- # Video and audio
+ ## Video and audio
video/* | audio/*)
mediainfo "${FILE_PATH}" && exit 5
exiftool "${FILE_PATH}" && exit 5
diff --git a/.vimrc b/.vimrc
index 1445926..0491eac 100644
--- a/.vimrc
+++ b/.vimrc
@@ -17,6 +17,7 @@ Plug 'rust-lang/rust.vim', {'for': 'rust'}
" Syntax checking
"Plug 'Valloric/YouCompleteMe' " alternative #1, full-blown
Plug 'w0rp/ale',
+Plug 'neoclide/coc.nvim', {'branch': 'release'}
" Useful plugins
Plug 'Raimondi/delimitMate'
@@ -56,7 +57,7 @@ syntax on
set t_Co=256
set background=light
let base16colorspace=256
-colorscheme base16-solarized-light
+colorscheme base16-solarized-dark
" Other
set encoding=utf-8
@@ -83,7 +84,7 @@ if has("gui_running")
set guioptions-=T " remove toolbar
set guioptions-=r " remove right-hand scroll bar
set guioptions-=L " remove left-hand scroll bar
- set guifont=Fira\ Code\ 11
+ set guifont=Fira\ Code\ Medium\ 11
"set guifont=Fura\ Code\ Nerd\ Font\ 11
set guiheadroom=0
endif
diff --git a/.zprofile b/.zprofile
index f1300d3..2d97e8b 100644
--- a/.zprofile
+++ b/.zprofile
@@ -66,3 +66,4 @@ export TERMCMD=$TERMINAL
if systemctl -q is-active graphical.target && [[ ! $DISPLAY && $XDG_VTNR -eq 1 ]]; then
exec startx
fi
+
diff --git a/.zshrc b/.zshrc
index 5f12886..9fdeb03 100644
--- a/.zshrc
+++ b/.zshrc
@@ -41,7 +41,7 @@ source ~/.zplugins
alias top=htop
alias ll="ls -lh"
alias la="ls -a"
-alias lp="lastpass.sh"
+alias lp="keepass.sh"
alias ranger="ranger"
alias search="search.sh"
#alias ls="ls -N --time-style=long-iso --color=auto"
@@ -56,10 +56,12 @@ alias runwinesteam="MESA_GL_VERSION_OVERRIDE=3.3COMPAT PULSE_LATENCY_MSEC=60 run
alias rbackup="restic -r rclone:hubic:ChimeraLinux"
alias bat="bat --theme base16"
alias wine32="WINEPREFIX=~/.wine32 wine"
+alias steam="DBUS_SESSION_BUS_ADDRESS=unix:abstract=/dev/null steam"
# https://github.com/chriskempson/base16-shell
# git clone https://github.com/chriskempson/base16-shell.git ~/.config/base16-shell
#source $HOME/.config/base16-shell/scripts/base16-default-dark.sh
-source $HOME/.config/base16-shell/scripts/base16-solarized-light.sh
+#source $HOME/.config/base16-shell/scripts/base16-solarized-light.sh
+source $HOME/.config/base16-shell/scripts/base16-solarized-dark.sh
# Emscripten
#source /home/lanxu/Koodit/github/emsdk/emsdk_env.sh