diff --git a/.abook/abookrc b/.abook/abookrc new file mode 100644 index 0000000..c549c69 --- /dev/null +++ b/.abook/abookrc @@ -0,0 +1,12 @@ +set www_command=chrome +set show_cursor=false +set sort_field=name|nick + +set index_format=" {name:24|nick} | {phone:14|workphone|mobile} | {email:40}" + +field birthday = Birthday, date + +view Main = name, nick, email, mobile, phone, workphone, notes, birthday, anniversary + + +#, address_lines, city, state, zip, birthday, url diff --git a/.config/mpv/mpv.conf b/.config/mpv/mpv.conf new file mode 100644 index 0000000..aaadd33 --- /dev/null +++ b/.config/mpv/mpv.conf @@ -0,0 +1,11 @@ +volume-max=250 # max volume +volume=100 # default volume +profile=sw-fast # default preset/profile +vo=gpu +ao=sndio +audio-channels=stereo +#loop-file=inf +no-audio-display +#autofit-larger=70% +force-window=immediate +script-opts="ytdl_hook-try_ytdl_first=yes" diff --git a/.config/picom/picom.conf b/.config/picom/picom.conf new file mode 100644 index 0000000..3aaaaca --- /dev/null +++ b/.config/picom/picom.conf @@ -0,0 +1,444 @@ +################################# +# Shadows # +################################# + +transition-length = 300 +transition-pow-x = 1.1 +transition-pow-y = 1.1 +transition-pow-w = 1.1 +transition-pow-h = 1.1 +size-transition = true + +# Enabled client-side shadows on windows. Note desktop windows +# (windows with '_NET_WM_WINDOW_TYPE_DESKTOP') never get shadow, +# unless explicitly requested using the wintypes option. +# +# shadow = false +shadow = true; + +# The blur radius for shadows, in pixels. (defaults to 12) +shadow-radius = 12 + +# The opacity of shadows. (0.0 - 1.0, defaults to 0.75) +shadow-opacity = .5 + +# The left offset for shadows, in pixels. (defaults to -15) +# shadow-offset-x = -15 +# shadow-offset-x = -7; + +# The top offset for shadows, in pixels. (defaults to -15) +# shadow-offset-y = -15 +# shadow-offset-y = -7; + +# Red color value of shadow (0.0 - 1.0, defaults to 0). +# shadow-red = 0 + +# Green color value of shadow (0.0 - 1.0, defaults to 0). +# shadow-green = 0 + +# Blue color value of shadow (0.0 - 1.0, defaults to 0). +# shadow-blue = 0 + +# Hex string color value of shadow (#000000 - #FFFFFF, defaults to #000000). This option will override options set shadow-(red/green/blue) +# shadow-color = "#000000" + +# Specify a list of conditions of windows that should have no shadow. +# +# examples: +shadow-exclude = [ "name = 'dmenu'" ]; +# +# shadow-exclude = [] +# shadow-exclude = [ +# "name = 'Notification'", +# "class_g = 'Conky'", +# "class_g ?= 'Notify-osd'", +# "class_g = 'Cairo-clock'", +# "_GTK_FRAME_EXTENTS@:c" +# ]; + +# Specify a list of conditions of windows that should have no shadow painted over, such as a dock window. +# clip-shadow-above = [] + +# Specify a X geometry that describes the region in which shadow should not +# be painted in, such as a dock window region. Use +# shadow-exclude-reg = "x10+0+0" +# for example, if the 10 pixels on the bottom of the screen should not have shadows painted on. +# +# shadow-exclude-reg = "" + +# Crop shadow of a window fully on a particular monitor to that monitor. This is +# currently implemented using the X RandR extension. +# crop-shadow-to-monitor = false + + +################################# +# Fading # +################################# + + +# Fade windows in/out when opening/closing and when opacity changes, +# unless no-fading-openclose is used. +# fading = false +fading = true; + +# Opacity change between steps while fading in. (0.01 - 1.0, defaults to 0.028) +# fade-in-step = 0.028 +fade-in-step = 0.08; + +# Opacity change between steps while fading out. (0.01 - 1.0, defaults to 0.03) +# fade-out-step = 0.03 +fade-out-step = 0.08; + +# The time between steps in fade step, in milliseconds. (> 0, defaults to 10) +fade-delta = 10 + +# Specify a list of conditions of windows that should not be faded. +# fade-exclude = [] + +# Do not fade on window open/close. +# no-fading-openclose = false + +# Do not fade destroyed ARGB windows with WM frame. Workaround of bugs in Openbox, Fluxbox, etc. +# no-fading-destroyed-argb = false + + +################################# +# Transparency / Opacity # +################################# + + +# Opacity of inactive windows. (0.1 - 1.0, defaults to 1.0) +# inactive-opacity = 1 +# inactive-opacity = 0.2 + +# Opacity of window titlebars and borders. (0.1 - 1.0, disabled by default) +# frame-opacity = 1.0 +# frame-opacity = 0.7 + +# Let inactive opacity set by -i override the '_NET_WM_WINDOW_OPACITY' values of windows. +# inactive-opacity-override = true +# inactive-opacity-override = false; + +# Default opacity for active windows. (0.0 - 1.0, defaults to 1.0) +# active-opacity = 0.8 + +# Dim inactive windows. (0.0 - 1.0, defaults to 0.0) +# inactive-dim = 0.5 + +# Specify a list of conditions of windows that should never be considered focused. +# focus-exclude = [] +# focus-exclude = [ "class_g = 'Cairo-clock'" ]; + +# Use fixed inactive dim value, instead of adjusting according to window opacity. +# inactive-dim-fixed = 0.2 + +# Specify a list of opacity rules, in the format `PERCENT:PATTERN`, +# like `50:name *= "Firefox"`. picom-trans is recommended over this. +# Note we don't make any guarantee about possible conflicts with other +# programs that set '_NET_WM_WINDOW_OPACITY' on frame or client windows. +# example: +# opacity-rule = [ "80:class_g = 'URxvt'" ]; +# +# opacity-rule = [ "90:class_g = 'xterm-256color'", +# "90:class_g = 'scratchpad'" ]; + + +################################# +# Corners # +################################# + +# Sets the radius of rounded window corners. When > 0, the compositor will +# round the corners of windows. Does not interact well with +# `transparent-clipping`. +corner-radius = 10 + +# Exclude conditions for rounded corners. +# rounded-corners-exclude = [ +# "window_type = 'dock'", +# "window_type = 'desktop'" +# ]; + + +################################# +# Background-Blurring # +################################# + + +# Parameters for background blurring, see the *BLUR* section for more information. +blur-method = "dual_kawase" +#blur-method = "kernel" +#blur-size = 20 +#blur-kern = "11x11gaussian" +#blur-kern = "7x7box" +# +#blur-deviation = true +# +blur-strength = 7 + +# Blur background of semi-transparent / ARGB windows. +# Bad in performance, with driver-dependent behavior. +# The name of the switch may change without prior notifications. +# +# blur-background = true + +# Blur background of windows when the window frame is not opaque. +# Implies: +# blur-background +# Bad in performance, with driver-dependent behavior. The name may change. +# +# blur-background-frame = false + + +# Use fixed blur strength rather than adjusting according to window opacity. +# blur-background-fixed = false + + +# Specify the blur convolution kernel, with the following format: +# example: +# blur-kern = "5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1"; +# +# blur-kern = "" +# blur-kern = "3x3box"; + + +# Exclude conditions for background blur. +# blur-background-exclude = [] +# blur-background-exclude = [ +# "window_type = 'dock'", +# "window_type = 'desktop'", +# "_GTK_FRAME_EXTENTS@:c" +# ]; + +################################# +# General Settings # +################################# + +# Enable remote control via D-Bus. See the man page for more details. +# dbus = false + +# Daemonize process. Fork to background after initialization. Causes issues with certain (badly-written) drivers. +# daemon = false + +# Specify the backend to use: `xrender`, `glx`, `egl` or `xr_glx_hybrid`. +# `xrender` is the default one. +# +# backend = "glx" +# backend = "xr_glx_hybrid" +backend = "glx"; + +# Use higher precision during rendering, and apply dither when presenting the +# rendered screen. Reduces banding artifacts, but might cause performance +# degradation. Only works with OpenGL. +dithered-present = false; + +# Enable/disable VSync. +# vsync = false +vsync = true; + +# Enable remote control via D-Bus. See the *D-BUS API* section below for more details. +# dbus = false + +# Try to detect WM windows (a non-override-redirect window with no +# child that has 'WM_STATE') and mark them as active. +# +# mark-wmwin-focused = false +# mark-wmwin-focused = true; + +# Mark override-redirect windows that doesn't have a child window with 'WM_STATE' focused. +# mark-ovredir-focused = false +# mark-ovredir-focused = false; + +# Try to detect windows with rounded corners and don't consider them +# shaped windows. The accuracy is not very high, unfortunately. +# +# detect-rounded-corners = false +# detect-rounded-corners = true; + +# Detect '_NET_WM_WINDOW_OPACITY' on client windows, useful for window managers +# not passing '_NET_WM_WINDOW_OPACITY' of client windows to frame windows. +# +# detect-client-opacity = false +# detect-client-opacity = true; + +# Use EWMH '_NET_ACTIVE_WINDOW' to determine currently focused window, +# rather than listening to 'FocusIn'/'FocusOut' event. Might have more accuracy, +# provided that the WM supports it. +# +use-ewmh-active-win = true + +# Unredirect all windows if a full-screen opaque window is detected, +# to maximize performance for full-screen windows. Known to cause flickering +# when redirecting/unredirecting windows. +# +# unredir-if-possible = false + +# Delay before unredirecting the window, in milliseconds. Defaults to 0. +# unredir-if-possible-delay = 0 + +# Conditions of windows that shouldn't be considered full-screen for unredirecting screen. +# unredir-if-possible-exclude = [] + +# Use 'WM_TRANSIENT_FOR' to group windows, and consider windows +# in the same group focused at the same time. +# +# detect-transient = false +detect-transient = true; + +# Use 'WM_CLIENT_LEADER' to group windows, and consider windows in the same +# group focused at the same time. This usually means windows from the same application +# will be considered focused or unfocused at the same time. +# 'WM_TRANSIENT_FOR' has higher priority if detect-transient is enabled, too. +# +# detect-client-leader = false + +# Resize damaged region by a specific number of pixels. +# A positive value enlarges it while a negative one shrinks it. +# If the value is positive, those additional pixels will not be actually painted +# to screen, only used in blur calculation, and such. (Due to technical limitations, +# with use-damage, those pixels will still be incorrectly painted to screen.) +# Primarily used to fix the line corruption issues of blur, +# in which case you should use the blur radius value here +# (e.g. with a 3x3 kernel, you should use `--resize-damage 1`, +# with a 5x5 one you use `--resize-damage 2`, and so on). +# May or may not work with *--glx-no-stencil*. Shrinking doesn't function correctly. +# +# resize-damage = 1 + +# Specify a list of conditions of windows that should be painted with inverted color. +# Resource-hogging, and is not well tested. +# +# invert-color-include = [] + +# GLX backend: Avoid using stencil buffer, useful if you don't have a stencil buffer. +# Might cause incorrect opacity when rendering transparent content (but never +# practically happened) and may not work with blur-background. +# My tests show a 15% performance boost. Recommended. +# +# glx-no-stencil = false + +# GLX backend: Avoid rebinding pixmap on window damage. +# Probably could improve performance on rapid window content changes, +# but is known to break things on some drivers (LLVMpipe, xf86-video-intel, etc.). +# Recommended if it works. +# +# glx-no-rebind-pixmap = false + +# Disable the use of damage information. +# This cause the whole screen to be redrawn every time, instead of the part of the screen +# has actually changed. Potentially degrades the performance, but might fix some artifacts. +# The opposing option is use-damage +# +# no-use-damage = false +use-damage = true; + +# Use X Sync fence to sync clients' draw calls, to make sure all draw +# calls are finished before picom starts drawing. Needed on nvidia-drivers +# with GLX backend for some users. +# +# xrender-sync-fence = false + +# GLX backend: Use specified GLSL fragment shader for rendering window +# contents. Read the man page for a detailed explanation of the interface. +# +# window-shader-fg = "default" + +# Use rules to set per-window shaders. Syntax is SHADER_PATH:PATTERN, similar +# to opacity-rule. SHADER_PATH can be "default". This overrides window-shader-fg. +# +# window-shader-fg-rule = [ +# "my_shader.frag:window_type != 'dock'" +# ] + +# Force all windows to be painted with blending. Useful if you +# have a glx-fshader-win that could turn opaque pixels transparent. +# +# force-win-blend = false + +# Do not use EWMH to detect fullscreen windows. +# Reverts to checking if a window is fullscreen based only on its size and coordinates. +# +# no-ewmh-fullscreen = false + +# Dimming bright windows so their brightness doesn't exceed this set value. +# Brightness of a window is estimated by averaging all pixels in the window, +# so this could comes with a performance hit. +# Setting this to 1.0 disables this behaviour. Requires --use-damage to be disabled. (default: 1.0) +# +# max-brightness = 1.0 + +# Make transparent windows clip other windows like non-transparent windows do, +# instead of blending on top of them. +# +transparent-clipping = false + +# Specify a list of conditions of windows that should never have transparent +# clipping applied. Useful for screenshot tools, where you need to be able to +# see through transparent parts of the window. +# +# transparent-clipping-exclude = [] + +# Set the log level. Possible values are: +# "trace", "debug", "info", "warn", "error" +# in increasing level of importance. Case doesn't matter. +# If using the "TRACE" log level, it's better to log into a file +# using *--log-file*, since it can generate a huge stream of logs. +# +# log-level = "debug" +log-level = "warn"; + +# Set the log file. +# If *--log-file* is never specified, logs will be written to stderr. +# Otherwise, logs will to written to the given file, though some of the early +# logs might still be written to the stderr. +# When setting this option from the config file, it is recommended to use an absolute path. +# +# log-file = "/path/to/your/log/file" + +# Show all X errors (for debugging) +# show-all-xerrors = false + +# Write process ID to a file. +# write-pid-path = "/path/to/your/log/file" + +# Window type settings +# +# 'WINDOW_TYPE' is one of the 15 window types defined in EWMH standard: +# "unknown", "desktop", "dock", "toolbar", "menu", "utility", +# "splash", "dialog", "normal", "dropdown_menu", "popup_menu", +# "tooltip", "notification", "combo", and "dnd". +# +# Following per window-type options are available: :: +# +# fade, shadow::: +# Controls window-type-specific shadow and fade settings. +# +# opacity::: +# Controls default opacity of the window type. +# +# focus::: +# Controls whether the window of this type is to be always considered focused. +# (By default, all window types except "normal" and "dialog" has this on.) +# +# full-shadow::: +# Controls whether shadow is drawn under the parts of the window that you +# normally won't be able to see. Useful when the window has parts of it +# transparent, and you want shadows in those areas. +# +# clip-shadow-above::: +# Controls whether shadows that would have been drawn above the window should +# be clipped. Useful for dock windows that should have no shadow painted on top. +# +# redir-ignore::: +# Controls whether this type of windows should cause screen to become +# redirected again after been unredirected. If you have unredir-if-possible +# set, and doesn't want certain window to cause unnecessary screen redirection, +# you can set this to `true`. +# +wintypes: +{ + tooltip = { fade = true; shadow = true; opacity = 0.9; focus = true; full-shadow = false; }; + dock = { shadow = false; clip-shadow-above = true; } + dnd = { shadow = false; } + popup_menu = { opacity = 0.9; } + dropdown_menu = { opacity = 0.9; } +}; diff --git a/.config/polybar/config.ini b/.config/polybar/config.ini new file mode 100644 index 0000000..185de61 --- /dev/null +++ b/.config/polybar/config.ini @@ -0,0 +1,104 @@ +[colors] +background = #002020 +background-alt = #004040 +foreground = #EEEEEE +primary = #FF6A00 +secondary = #CCCCCC +alert = #A54242 +disabled = #707880 + +[bar/openbsd] +width = 100% +height = 17pt +#radius = 10 + +background = ${colors.background} +foreground = ${colors.foreground} + +line-size = 2pt + +border-size = 0pt +border-color = #222222 + +padding-left = 1 +padding-right = 1 + +module-margin = 1 + +# separator = | +# separator-foreground = ${colors.disabled} + +font-0 = "TerminessNerdFontMono:weight=0:pixelsize=16;3" + +modules-left = xworkspaces xwindow +modules-right = cbar + +cursor-click = pointer +cursor-scroll = ns-resize + +enable-ipc = true + +wm-restack = generic +; wm-restack = bspwm +; wm-restack = i3 + +; override-redirect = true + +[module/cbar] +type = custom/script + +; Available tokens: +; %counter% +; Command to be executed (using "/bin/sh -c [command]") +exec = cbar + +; Conditional command that, if defined, needs to exit successfully +; before the main exec command is invoked. +; Default: "" +# exec-if = pgrep -x cbar + +; Set this to true for scripts that continuously produce output +; If set to 'true', everytime the script produces a new line of output, the module updates. +; Otherwise, only the first line of output is considered and all later lines are discarded. +; Default: false +tail = true + +; Seconds to sleep between updates +; Default: 5 (0 if `tail = true`) +interval = 0 + +; Set environment variables in the 'exec' script +; New in version 3.6.0 +; env-NAME = VALUE +; env-FOO = BAR + +[module/xworkspaces] +type = internal/xworkspaces + +label-active = %nwin% +label-active-background = ${colors.background-alt} +#label-active-underline= ${colors.primary} +label-active-foreground = ${colors.secondary} +label-active-padding = 1 + +label-occupied = %nwin% +label-occupied-padding = 1 +label-occupied-foreground = ${colors.secondary} + +label-urgent = %nwin% +label-urgent-background = ${colors.alert} +label-urgent-padding = 1 + +label-empty = %nwin% +label-empty-foreground = ${colors.disabled} +label-empty-padding = 1 + +[module/xwindow] +type = internal/xwindow +label = %title:0:60:...% + +[settings] +screenchange-reload = false +pseudo-transparency = false + +; vim:ft=dosini diff --git a/.config/rofi/config.rasi b/.config/rofi/config.rasi new file mode 100644 index 0000000..c01ae50 --- /dev/null +++ b/.config/rofi/config.rasi @@ -0,0 +1,2 @@ +@theme "/home/sdk/.config/rofi/themes/nord.rasi" +@theme "/home/sdk/.config/rofi/themes/nord-sdk.rasi" diff --git a/.config/rofi/themes/OneDark.rasi b/.config/rofi/themes/OneDark.rasi new file mode 100644 index 0000000..44f256f --- /dev/null +++ b/.config/rofi/themes/OneDark.rasi @@ -0,0 +1,74 @@ +* { + bg: #282c34; + bg-alt: #21252b; + + fg: #FFFFFF; + fg-alt: #828791; + + /* accent-color: #5C6370; */ + accent-color: #2D333B; + + background-color: transparent; + + border: 0; + margin: 0; + padding: 0; + spacing: 0; +} + +window { + width: 35%; + /* border: 2; + border-color: #3477ad; */ +} + +element { + padding: 8 0; + text-color: @fg-alt; +} + +element selected { + background-color: @accent-color; + text-color: @fg; + /* border-radius: 15px; */ +} + +element-text { + text-color: inherit; + vertical-align: 0.5; + highlight: none; +} + +element-icon { + size: 25; + padding: 0 10 0 10; +} + +entry { + background-color: @bg-alt; + padding: 12; + text-color: @fg; +} + +inputbar { + children: [prompt, entry]; +} + +listview { + padding: 8 12; + background-color: @bg; + columns: 1; + lines: 8; +} + +mainbox { + background-color: @bg; + children: [inputbar, listview]; +} + +prompt { + background-color: @bg-alt; + enabled: true; + padding: 12 0 0 12; + text-color: @fg; +} diff --git a/.config/rofi/themes/appsmenu.rasi b/.config/rofi/themes/appsmenu.rasi new file mode 100644 index 0000000..5e61125 --- /dev/null +++ b/.config/rofi/themes/appsmenu.rasi @@ -0,0 +1,73 @@ +@import "shared/settings.rasi" + +* { + background-color: @bg; + font: "Rubik Regular 9"; +} +window { + width: 700px; + height: 520px; + border-radius: 6px; +} + +mainbox { + background-color: @bg; +} + +inputbar { + padding: 0px 0px 0px 0px; + background-color: transparent; + children: [entry]; + padding: 50px 0px; + background-image: @launcher-header; +} + +entry { + background-color: @bg-light; + padding: 5px; + margin: 0px 200px; + horizontal-align: 0.5; + color: @fg; + border-radius: 5px; + placeholder: "Search"; + placeholder-color: #b3b7bd; +} + +listview { + columns: 4; + spacing: 5px; + fixed-columns: true; + background-color: transparent; + padding: 3%; +} + +element { + orientation: vertical; + background-color: transparent; + padding: 10px 20px; + border-radius: 5px; + cursor: pointer; +} + +element selected { + background-color: @bg-hover; +} + +element-icon { + background-color: transparent; + size: 48; + horizontal-align: 0.5; + cursor: inherit; +} +element-text { + horizontal-align: 0.5; + color: @fg; + background-color: transparent; + padding: 10px 5px; + cursor: inherit; +} + +element-text selected { + color: @fg-hover; +} + diff --git a/.config/rofi/themes/launchpad.rasi b/.config/rofi/themes/launchpad.rasi new file mode 100644 index 0000000..14c2564 --- /dev/null +++ b/.config/rofi/themes/launchpad.rasi @@ -0,0 +1,94 @@ +/******************************************************************************* + * MACOS LAUNCHPAD LIKE THEME FOR ROFI + * User : LR-Tech + * Theme Repo : https://github.com/lr-tech/rofi-themes-collection + *******************************************************************************/ + +* { + font: "Montserrat 9"; + + bg0: #24242480; + bg1: #363636; + bg2: #f5f5f520; + bg3: #f5f5f540; + bg4: #0860f2E6; + + fg0: #f5f5f5; + fg1: #f5f5f580; + + background-color: transparent; + text-color: @fg0; + padding: 0px; + margin: 0px; +} + +window { + fullscreen: true; + padding: 1em; + background-color: @bg0; +} + +mainbox { + padding: 8px; +} + +inputbar { + background-color: @bg2; + + margin: 0px calc( 50% - 120px ); + padding: 2px 4px; + spacing: 4px; + + border: 1px; + border-radius: 2px; + border-color: @bg3; + + children: [icon-search,entry]; +} + +prompt { + enabled: false; +} + +icon-search { + expand: false; + filename: "search"; + vertical-align: 0.5; +} + +entry { + placeholder: "Search"; + placeholder-color: @bg2; +} + +listview { + margin: 48px calc( 50% - 560px ); + spacing: 48px; + columns: 6; + fixed-columns: true; +} + +element, element-text, element-icon { + cursor: pointer; +} + +element { + padding: 8px; + spacing: 4px; + + orientation: vertical; + border-radius: 16px; +} + +element selected { + background-color: @bg4; +} + +element-icon { + size: 4em; + horizontal-align: 0.5; +} + +element-text { + horizontal-align: 0.5; +} diff --git a/.config/rofi/themes/mocha.rasi b/.config/rofi/themes/mocha.rasi new file mode 100644 index 0000000..8a8db0a --- /dev/null +++ b/.config/rofi/themes/mocha.rasi @@ -0,0 +1,75 @@ +* { + bg: #1e1e2e; + bg-alt: #313244; + + fg: #11111b; + fg-alt: #cdd6f4; + + /* accent-color: #5C6370; */ + accent-color: #a6e3a1; + + background-color: transparent; + + border: 0; + margin: 0; + padding: 0; + spacing: 0; +} + +window { + width: 35%; + /* border: 2; + border-color: #3477ad; */ +} + +element { + padding: 8 0; + text-color: @fg-alt; +} + +element selected { + background-color: @accent-color; + text-color: @fg; + /* border-radius: 15px; */ +} + +element-text { + text-color: inherit; + vertical-align: 0.5; + highlight: none; +} + +element-icon { + size: 25; + padding: 0 10 0 10; +} + +entry { + background-color: @bg-alt; + padding: 12; + text-color: @fg-alt; +} + +inputbar { + children: [prompt, entry]; +} + +listview { + padding: 8 12; + background-color: @bg; + columns: 1; + lines: 8; +} + +mainbox { + background-color: @bg; + children: [inputbar, listview]; +} + +prompt { + background-color: @bg-alt; + enabled: true; + padding: 12 0 0 12; + text-color: @fg-alt; + +} diff --git a/.config/rofi/themes/nord-oneline.rasi b/.config/rofi/themes/nord-oneline.rasi new file mode 100644 index 0000000..72e2f57 --- /dev/null +++ b/.config/rofi/themes/nord-oneline.rasi @@ -0,0 +1,106 @@ +/******************************************************************************* + * ROFI ONELINE THEME USING THE NORD COLOR PALETTE + * User : LR-Tech + * Theme Repo : https://github.com/lr-tech/rofi-themes-collection + * Nord Project Repo : https://github.com/arcticicestudio/nord + *******************************************************************************/ + +* { + font: "Fira Code 10"; + + nord0: #2e3440; + nord1: #3b4252; + nord2: #434c5e; + nord3: #4c566a; + + nord4: #d8dee9; + nord5: #e5e9f0; + nord6: #eceff4; + + nord7: #8fbcbb; + nord8: #88c0d0; + nord9: #81a1c1; + nord10: #5e81ac; + nord11: #bf616a; + + nord12: #d08770; + nord13: #ebcb8b; + nord14: #a3be8c; + nord15: #b48ead; + + background-color: transparent; + text-color: @nord4; + accent-color: @nord8; + + margin: 0px; + padding: 0px; + spacing: 0px; +} + +window { + location: north; + width: 100%; + background-color: @nord0; + children: [ mainbox,message ]; +} + +mainbox { + orientation: horizontal; + children: [ inputbar,listview ]; +} + +inputbar { + width: 25%; + padding: 1px 8px; + spacing: 8px; + children: [ prompt, entry ]; +} + +prompt, entry, element-text, element-icon { + vertical-align: 0.5; +} + +prompt { + text-color: @accent-color; +} + +listview { + layout: horizontal; +} + +element { + padding: 1px 8px; + spacing: 4px; +} + +element normal urgent { + text-color: @nord13; +} + +element normal active { + text-color: @accent-color; +} + +element selected { + text-color: @nord0; +} + +element selected normal { + background-color: @accent-color; +} + +element selected urgent { + background-color: @nord13; +} + +element selected active { + background-color: @nord8; +} + +element-icon { + size: 0.75em; +} + +element-text { + text-color: inherit; +} diff --git a/.config/rofi/themes/nord-sdk.rasi b/.config/rofi/themes/nord-sdk.rasi new file mode 100644 index 0000000..feb01a2 --- /dev/null +++ b/.config/rofi/themes/nord-sdk.rasi @@ -0,0 +1,91 @@ +/******************************************************************************* + * ROFI VERTICAL THEME USING THE NORD COLOR PALETTE + * User : LR-Tech + * Theme Repo : https://github.com/lr-tech/rofi-themes-collection + * Nord Project Repo : https://github.com/arcticicestudio/nord + *******************************************************************************/ + +* { + font: "Terminess 12"; + + COLORNB: #181818; + COLORNF: #707070; + COLORSB: #333333; + COLORSF: #CCCCCC; + + background-color: transparent; + text-color: @COLORNF; + accent-color: @COLORSF; + + margin: 0px; + padding: 0px; + spacing: 0px; +} + +window { + background-color: @COLORNB; + border-color: @COLORNF; + + location: center; + width: 50%; + height: 50%; + border: 1px; +} + +inputbar { + padding: 4px 4px; + spacing: 6px; + children: [ prompt, entry ]; +} + +prompt, entry, element-text, element-icon { + vertical-align: 0.5; +} + +prompt { + text-color: @COLORSF; +} + +listview { + lines: 8; + columns: 1; + + fixed-height: false; +} + +element { + padding: 4px; + spacing: 4px; +} + +element normal urgent { + text-color: @COLORNF; +} + +element normal active { + text-color: @COLORNF; +} + +element selected { + text-color: @COLORSF; +} + +element selected normal { + background-color: @COLORSB; +} + +element selected urgent { + background-color: @COLORSF; +} + +element selected active { + background-color: @COLORSF; +} + +element-icon { + size: 0.75em; +} + +element-text { + text-color: inherit; +} diff --git a/.config/rofi/themes/nord-twoLines.rasi b/.config/rofi/themes/nord-twoLines.rasi new file mode 100644 index 0000000..845bd16 --- /dev/null +++ b/.config/rofi/themes/nord-twoLines.rasi @@ -0,0 +1,101 @@ +/******************************************************************************* + * ROFI TWO LINES THEME USING THE NORD COLOR PALETTE + * User : LR-Tech + * Theme Repo : https://github.com/lr-tech/rofi-themes-collection + * Nord Project Repo : https://github.com/arcticicestudio/nord + *******************************************************************************/ + +* { + font: "Fira Code 10"; + + nord0: #2e3440; + nord1: #3b4252; + nord2: #434c5e; + nord3: #4c566a; + + nord4: #d8dee9; + nord5: #e5e9f0; + nord6: #eceff4; + + nord7: #8fbcbb; + nord8: #88c0d0; + nord9: #81a1c1; + nord10: #5e81ac; + nord11: #bf616a; + + nord12: #d08770; + nord13: #ebcb8b; + nord14: #a3be8c; + nord15: #b48ead; + + background-color: transparent; + text-color: @nord4; + accent-color: @nord8; + + margin: 0px; + padding: 0px; + spacing: 0px; +} + +window { + background-color: @nord0; + + location: north; + width: 100%; +} + +inputbar { + padding: 2px 8px; + spacing: 8px; + children: [ prompt, entry ]; +} + +prompt, entry, element-text, element-icon { + vertical-align: 0.5; +} + +prompt { + text-color: @accent-color; +} + +listview { + lines: 1; + columns: 4; +} + +element { + padding: 1px 8px; + spacing: 4px; +} + +element normal urgent { + text-color: @nord13; +} + +element normal active { + text-color: @accent-color; +} + +element selected { + text-color: @nord0; +} + +element selected normal { + background-color: @accent-color; +} + +element selected urgent { + background-color: @nord13; +} + +element selected active { + background-color: @nord8; +} + +element-icon { + size: 0.75em; +} + +element-text { + text-color: inherit; +} diff --git a/.config/rofi/themes/nord.rasi b/.config/rofi/themes/nord.rasi new file mode 100644 index 0000000..f8b464d --- /dev/null +++ b/.config/rofi/themes/nord.rasi @@ -0,0 +1,105 @@ +/******************************************************************************* + * ROFI VERTICAL THEME USING THE NORD COLOR PALETTE + * User : LR-Tech + * Theme Repo : https://github.com/lr-tech/rofi-themes-collection + * Nord Project Repo : https://github.com/arcticicestudio/nord + *******************************************************************************/ + +* { + font: "IBM Plex Mono 12"; + + nord0: #2e3440; + nord1: #3b4252; + nord2: #434c5e; + nord3: #4c566a; + + nord4: #d8dee9; + nord5: #e5e9f0; + nord6: #eceff4; + + nord7: #8fbcbb; + nord8: #88c0d0; + nord9: #81a1c1; + nord10: #5e81ac; + nord11: #bf616a; + + nord12: #d08770; + nord13: #ebcb8b; + nord14: #a3be8c; + nord15: #b48ead; + + background-color: transparent; + text-color: @nord4; + accent-color: @nord8; + + margin: 0px; + padding: 0px; + spacing: 0px; +} + +window { + background-color: @nord0; + border-color: @accent-color; + + location: center; + width: 480px; + border: 1px; +} + +inputbar { + padding: 8px 12px; + spacing: 12px; + children: [ prompt, entry ]; +} + +prompt, entry, element-text, element-icon { + vertical-align: 0.5; +} + +prompt { + text-color: @accent-color; +} + +listview { + lines: 8; + columns: 1; + + fixed-height: false; +} + +element { + padding: 8px; + spacing: 8px; +} + +element normal urgent { + text-color: @nord13; +} + +element normal active { + text-color: @accent-color; +} + +element selected { + text-color: @nord0; +} + +element selected normal { + background-color: @accent-color; +} + +element selected urgent { + background-color: @nord13; +} + +element selected active { + background-color: @nord8; +} + +element-icon { + size: 0.75em; +} + +element-text { + text-color: inherit; +} diff --git a/.config/rofi/themes/powermenu.rasi b/.config/rofi/themes/powermenu.rasi new file mode 100644 index 0000000..164b7a2 --- /dev/null +++ b/.config/rofi/themes/powermenu.rasi @@ -0,0 +1,37 @@ +@import "shared/settings.rasi" + +* { + icon-font: "feather 18"; + background-color: @bg; +} + +window { + width: 460px; + border-radius: 8px; +} + +mainbox { + children: [listview]; +} + +listview { + columns: 5; + lines: 1; + children: [element-text]; + padding: 10px 15px 10px -5px; +} + +element-text { + background-color: @bg-semilight; + horizontal-align: 0.5; + padding: 20px 10px 23px 10px; + font: @icon-font; + border-radius: 10px; + color: @fg-unhover; + cursor: pointer; +} + +element-text selected { + background-color: @bg-hover; + color: @fg-hover; +} diff --git a/.config/rofi/themes/promptmenu.rasi b/.config/rofi/themes/promptmenu.rasi new file mode 100644 index 0000000..c32d246 --- /dev/null +++ b/.config/rofi/themes/promptmenu.rasi @@ -0,0 +1,50 @@ +@import "shared/settings.rasi" + +* { + icon-font: "feather 24"; + background-color: @bg; +} + +window { + width: 200px; + border-radius: 8px; +} + +mainbox { + children: [inputbar,listview]; + padding: 5px 0px; +} + +inputbar { + orientation: horizontal; + children: [prompt]; + padding: 10px 0px; +} + +prompt { + color: @bg-hover; + font: "Rubik Regular 12"; + padding: 0px 70px 0px 40px; +} + +listview { + columns: 2; + lines: 1; + children: [element-text]; + padding: 10px 15px 10px -5px; +} + +element-text { + background-color: @bg-semilight; + horizontal-align: 0.5; + padding: 20px 10px 15px 10px; + font: @icon-font; + border-radius: 10px; + color: @fg-unhover; + cursor: pointer; +} + +element-text selected { + background-color: @bg-hover; + color: @fg-hover; +} diff --git a/.config/rofi/themes/rounded-blue-dark.rasi b/.config/rofi/themes/rounded-blue-dark.rasi new file mode 100644 index 0000000..712d714 --- /dev/null +++ b/.config/rofi/themes/rounded-blue-dark.rasi @@ -0,0 +1,18 @@ +/******************************************************************************* + * ROUNDED THEME FOR ROFI + * User : LR-Tech + * Theme Repo : https://github.com/lr-tech/rofi-themes-collection + *******************************************************************************/ + +* { + bg0: #212121F2; + bg1: #2A2A2A; + bg2: #3D3D3D80; + bg3: #1A73E8F2; + fg0: #E6E6E6; + fg1: #FFFFFF; + fg2: #969696; + fg3: #3D3D3D; +} + +@import "rounded-common.rasi" diff --git a/.config/rofi/themes/rounded-common.rasi b/.config/rofi/themes/rounded-common.rasi new file mode 100644 index 0000000..b39bf4e --- /dev/null +++ b/.config/rofi/themes/rounded-common.rasi @@ -0,0 +1,93 @@ +/******************************************************************************* + * ROUNDED THEME FOR ROFI + * User : LR-Tech + * Theme Repo : https://github.com/lr-tech/rofi-themes-collection + *******************************************************************************/ + +* { + font: "Roboto 12"; + + background-color: transparent; + text-color: @fg0; + + margin: 0px; + padding: 0px; + spacing: 0px; +} + +window { + location: center; + width: 480; + border-radius: 24px; + + background-color: @bg0; +} + +mainbox { + padding: 12px; +} + +inputbar { + background-color: @bg1; + border-color: @bg3; + + border: 2px; + border-radius: 16px; + + padding: 8px 16px; + spacing: 8px; + children: [ prompt, entry ]; +} + +prompt { + text-color: @fg2; +} + +entry { + placeholder: "Search"; + placeholder-color: @fg3; +} + +message { + margin: 12px 0 0; + border-radius: 16px; + border-color: @bg2; + background-color: @bg2; +} + +textbox { + padding: 8px 24px; +} + +listview { + background-color: transparent; + + margin: 12px 0 0; + lines: 8; + columns: 1; + + fixed-height: false; +} + +element { + padding: 8px 16px; + spacing: 8px; + border-radius: 16px; +} + +element normal active { + text-color: @bg3; +} + +element selected normal, element selected active { + background-color: @bg3; +} + +element-icon { + size: 1em; + vertical-align: 0.5; +} + +element-text { + text-color: inherit; +} diff --git a/.config/rofi/themes/rounded-gray-dark.rasi b/.config/rofi/themes/rounded-gray-dark.rasi new file mode 100644 index 0000000..943280d --- /dev/null +++ b/.config/rofi/themes/rounded-gray-dark.rasi @@ -0,0 +1,18 @@ +/******************************************************************************* + * ROUNDED THEME FOR ROFI + * User : LR-Tech + * Theme Repo : https://github.com/lr-tech/rofi-themes-collection + *******************************************************************************/ + +* { + bg0: #212121F2; + bg1: #2A2A2A; + bg2: #3D3D3D80; + bg3: #616161F2; + fg0: #E6E6E6; + fg1: #FFFFFF; + fg2: #969696; + fg3: #3D3D3D; +} + +@import "rounded-common.rasi" diff --git a/.config/rofi/themes/rounded-green-dark.rasi b/.config/rofi/themes/rounded-green-dark.rasi new file mode 100644 index 0000000..a268f62 --- /dev/null +++ b/.config/rofi/themes/rounded-green-dark.rasi @@ -0,0 +1,18 @@ +/******************************************************************************* + * ROUNDED THEME FOR ROFI + * User : LR-Tech + * Theme Repo : https://github.com/lr-tech/rofi-themes-collection + *******************************************************************************/ + +* { + bg0: #212121F2; + bg1: #2A2A2A; + bg2: #3D3D3D80; + bg3: #4CAF50F2; + fg0: #E6E6E6; + fg1: #FFFFFF; + fg2: #969696; + fg3: #3D3D3D; +} + +@import "rounded-common.rasi" diff --git a/.config/rofi/themes/rounded-nord-dark.rasi b/.config/rofi/themes/rounded-nord-dark.rasi new file mode 100644 index 0000000..ef35389 --- /dev/null +++ b/.config/rofi/themes/rounded-nord-dark.rasi @@ -0,0 +1,22 @@ +/******************************************************************************* + * ROUNDED THEME FOR ROFI + * User : LR-Tech + * Theme Repo : https://github.com/lr-tech/rofi-themes-collection + *******************************************************************************/ + +* { + bg0: #2E3440F2; + bg1: #3B4252; + bg2: #4C566A80; + bg3: #88C0D0F2; + fg0: #D8DEE9; + fg1: #ECEFF4; + fg2: #D8DEE9; + fg3: #4C566A; +} + +@import "rounded-common.rasi" + +element selected { + text-color: @bg1; +} diff --git a/.config/rofi/themes/rounded-orange-dark.rasi b/.config/rofi/themes/rounded-orange-dark.rasi new file mode 100644 index 0000000..da4acea --- /dev/null +++ b/.config/rofi/themes/rounded-orange-dark.rasi @@ -0,0 +1,18 @@ +/******************************************************************************* + * ROUNDED THEME FOR ROFI + * User : LR-Tech + * Theme Repo : https://github.com/lr-tech/rofi-themes-collection + *******************************************************************************/ + +* { + bg0: #212121F2; + bg1: #2A2A2A; + bg2: #3D3D3D80; + bg3: #F57C00F2; + fg0: #E6E6E6; + fg1: #FFFFFF; + fg2: #969696; + fg3: #3D3D3D; +} + +@import "rounded-common.rasi" diff --git a/.config/rofi/themes/rounded-pink-dark.rasi b/.config/rofi/themes/rounded-pink-dark.rasi new file mode 100644 index 0000000..2288dc0 --- /dev/null +++ b/.config/rofi/themes/rounded-pink-dark.rasi @@ -0,0 +1,18 @@ +/******************************************************************************* + * ROUNDED THEME FOR ROFI + * User : LR-Tech + * Theme Repo : https://github.com/lr-tech/rofi-themes-collection + *******************************************************************************/ + +* { + bg0: #212121F2; + bg1: #2A2A2A; + bg2: #3D3D3D80; + bg3: #EC407AF2; + fg0: #E6E6E6; + fg1: #FFFFFF; + fg2: #969696; + fg3: #3D3D3D; +} + +@import "rounded-common.rasi" diff --git a/.config/rofi/themes/rounded-purple-dark.rasi b/.config/rofi/themes/rounded-purple-dark.rasi new file mode 100644 index 0000000..55c651b --- /dev/null +++ b/.config/rofi/themes/rounded-purple-dark.rasi @@ -0,0 +1,18 @@ +/******************************************************************************* + * ROUNDED THEME FOR ROFI + * User : LR-Tech + * Theme Repo : https://github.com/lr-tech/rofi-themes-collection + *******************************************************************************/ + +* { + bg0: #212121F2; + bg1: #2A2A2A; + bg2: #3D3D3D80; + bg3: #AB47BCF2; + fg0: #E6E6E6; + fg1: #FFFFFF; + fg2: #969696; + fg3: #3D3D3D; +} + +@import "rounded-common.rasi" diff --git a/.config/rofi/themes/rounded-red-dark.rasi b/.config/rofi/themes/rounded-red-dark.rasi new file mode 100644 index 0000000..c1d71a6 --- /dev/null +++ b/.config/rofi/themes/rounded-red-dark.rasi @@ -0,0 +1,18 @@ +/******************************************************************************* + * ROUNDED THEME FOR ROFI + * User : LR-Tech + * Theme Repo : https://github.com/lr-tech/rofi-themes-collection + *******************************************************************************/ + +* { + bg0: #212121F2; + bg1: #2A2A2A; + bg2: #3D3D3D80; + bg3: #E53935F2; + fg0: #E6E6E6; + fg1: #FFFFFF; + fg2: #969696; + fg3: #3D3D3D; +} + +@import "rounded-common.rasi" diff --git a/.config/rofi/themes/rounded-yellow-dark.rasi b/.config/rofi/themes/rounded-yellow-dark.rasi new file mode 100644 index 0000000..dbdaeb3 --- /dev/null +++ b/.config/rofi/themes/rounded-yellow-dark.rasi @@ -0,0 +1,18 @@ +/******************************************************************************* + * ROUNDED THEME FOR ROFI + * User : LR-Tech + * Theme Repo : https://github.com/lr-tech/rofi-themes-collection + *******************************************************************************/ + +* { + bg0: #212121F2; + bg1: #2A2A2A; + bg2: #3D3D3D80; + bg3: #FBC02DF2; + fg0: #E6E6E6; + fg1: #FFFFFF; + fg2: #969696; + fg3: #3D3D3D; +} + +@import "rounded-common.rasi" diff --git a/.config/rofi/themes/runcommand.rasi b/.config/rofi/themes/runcommand.rasi new file mode 100644 index 0000000..e69de29 diff --git a/.config/rofi/themes/screenshotsmenu.rasi b/.config/rofi/themes/screenshotsmenu.rasi new file mode 100644 index 0000000..f7e05dd --- /dev/null +++ b/.config/rofi/themes/screenshotsmenu.rasi @@ -0,0 +1,41 @@ +@import "shared/settings.rasi" + +* { + icon-font: "feather 18"; + background-color: @bg; +} + +window { + width: 100px; + height: 260px; + location: east; + x-offset: -6px; + border-radius: 8px; +} + +mainbox { + children: [listview]; +} + +listview { + spacing: 15px; + columns: 1; + lines: 3; + children: [element-text]; + padding: 10px 15px 10px -5px; +} + +element-text { + background-color: @bg-semilight; + horizontal-align: 0.5; + padding: 20px 10px 23px 10px; + font: @icon-font; + border-radius: 10px; + color: @fg-unhover; + cursor: pointer; +} + +element-text selected { + background-color: @bg-hover; + color: @fg-hover; +} diff --git a/.config/rofi/themes/shared/colorschemes/color-dark.rasi b/.config/rofi/themes/shared/colorschemes/color-dark.rasi new file mode 100644 index 0000000..c9617eb --- /dev/null +++ b/.config/rofi/themes/shared/colorschemes/color-dark.rasi @@ -0,0 +1,15 @@ +* { + bg: #15191f; + bg-semilight: #181C22; + bg-light: #21252b; + fg: #ecf2f2; + red: #FF598B; + wifi-accent: #FF598B; + blue: #33AEFF; + green: #1FE0A6; + bg-hover: #33AEFF; + fg-hover: #15191f; + fg-unhover: #33AEFF; + network-header: url("assets/dark/network-header.png", height); + launcher-header: url("assets/dark/launcher-header.png", height); +} diff --git a/.config/rofi/themes/shared/colorschemes/color-light.rasi b/.config/rofi/themes/shared/colorschemes/color-light.rasi new file mode 100644 index 0000000..4227426 --- /dev/null +++ b/.config/rofi/themes/shared/colorschemes/color-light.rasi @@ -0,0 +1,15 @@ +* { + bg: #ECF2F2; + bg-semilight: #E5EBEB; + bg-light: #f9f9f9; + fg: #15191f; + red: #F865A5; + wifi-accent: #33AEFF; + blue: #33AEFF; + green: #29EDBE; + bg-hover: #F865A5; + fg-hover: #ecf2f2; + fg-unhover: #33AEFF; + network-header: url("assets/light/network-header.png", height); + launcher-header: url("assets/light/launcher-header.png", height); +} diff --git a/.config/rofi/themes/shared/settings.rasi b/.config/rofi/themes/shared/settings.rasi new file mode 100644 index 0000000..a6eae21 --- /dev/null +++ b/.config/rofi/themes/shared/settings.rasi @@ -0,0 +1 @@ +@import "colorschemes/color-light.rasi" \ No newline at end of file diff --git a/.config/rofi/themes/simple-tokyonight.rasi b/.config/rofi/themes/simple-tokyonight.rasi new file mode 100644 index 0000000..0b6f9fa --- /dev/null +++ b/.config/rofi/themes/simple-tokyonight.rasi @@ -0,0 +1,111 @@ +* { + font: "Iosevka Nerd Font Medium 11"; + + bg0 : #1a1b26; + bg1 : #1f2335; + bg2 : #24283b; + bg3 : #414868; + fg0 : #c0caf5; + fg1 : #a9b1d6; + fg2 : #737aa2; + red : #f7768e; + green : #9ece6a; + yellow : #e0af68; + blue : #7aa2f7; + magenta : #9a7ecc; + cyan : #4abaaf; + + accent: @red; + urgent: @yellow; + + background-color : transparent; + text-color : @fg0; + + margin : 0; + padding : 0; + spacing : 0; +} + +element-icon, element-text, scrollbar { + cursor: pointer; +} + +window { + location : northwest; + width : 280px; + x-offset : 4px; + y-offset : 26px; + + background-color: @bg1; + border: 1px; + border-color: @bg3; + border-radius: 6px; +} + +inputbar { + spacing : 8px; + padding : 4px 8px; + children : [ icon-search, entry ]; + + background-color: @bg0; +} + +icon-search, entry, element-icon, element-text { + vertical-align: 0.5; +} + +icon-search { + expand : false; + filename : "search-symbolic"; + size : 14px; +} + +textbox { + padding : 4px 8px; + background-color : @bg2; +} + +listview { + padding : 4px 0px; + lines : 12; + columns : 1; + scrollbar : true; + fixed-height : false; + dynamic : true; +} + +element { + padding : 4px 8px; + spacing : 8px; +} + +element normal urgent { + text-color: @urgent; +} + +element normal active { + text-color: @accent; +} + +element selected { + text-color : @bg1; + background-color : @accent; +} + +element selected urgent { + background-color: @urgent; +} + +element-icon { + size: 0.8em; +} + +element-text { + text-color: inherit; +} + +scrollbar { + handle-width : 4px; + handle-color : @fg2; + padding : 0 4px; +} diff --git a/.config/rofi/themes/spotlight-dark.rasi b/.config/rofi/themes/spotlight-dark.rasi new file mode 100644 index 0000000..0e27360 --- /dev/null +++ b/.config/rofi/themes/spotlight-dark.rasi @@ -0,0 +1,98 @@ +/******************************************************************************* + * MACOS SPOTLIGHT LIKE DARK THEME FOR ROFI + * User : LR-Tech + * Theme Repo : https://github.com/lr-tech/rofi-themes-collection + *******************************************************************************/ + +* { + font: "Montserrat 12"; + + bg0: #242424E6; + bg1: #7E7E7E80; + bg2: #0860f2E6; + + fg0: #DEDEDE; + fg1: #FFFFFF; + fg2: #DEDEDE80; + + background-color: transparent; + text-color: @fg0; + + margin: 0; + padding: 0; + spacing: 0; +} + +window { + background-color: @bg0; + + location: center; + width: 640; + border-radius: 8; +} + +inputbar { + font: "Montserrat 20"; + padding: 12px; + spacing: 12px; + children: [ icon-search, entry ]; +} + +icon-search { + expand: false; + filename: "search"; + size: 28px; +} + +icon-search, entry, element-icon, element-text { + vertical-align: 0.5; +} + +entry { + font: inherit; + + placeholder : "Search"; + placeholder-color : @fg2; +} + +message { + border: 2px 0 0; + border-color: @bg1; + background-color: @bg1; +} + +textbox { + padding: 8px 24px; +} + +listview { + lines: 10; + columns: 1; + + fixed-height: false; + border: 1px 0 0; + border-color: @bg1; +} + +element { + padding: 8px 16px; + spacing: 16px; + background-color: transparent; +} + +element normal active { + text-color: @bg2; +} + +element selected normal, element selected active { + background-color: @bg2; + text-color: @fg1; +} + +element-icon { + size: 1em; +} + +element-text { + text-color: inherit; +} diff --git a/.config/rofi/themes/spotlight.rasi b/.config/rofi/themes/spotlight.rasi new file mode 100644 index 0000000..395e3f0 --- /dev/null +++ b/.config/rofi/themes/spotlight.rasi @@ -0,0 +1,98 @@ +/******************************************************************************* + * MACOS SPOTLIGHT LIKE THEME FOR ROFI + * User : LR-Tech + * Theme Repo : https://github.com/lr-tech/rofi-themes-collection + *******************************************************************************/ + +* { + font: "Montserrat 12"; + + bg0: #F5F5F5BF; + bg1: #7E7E7E80; + bg2: #0860F2E6; + + fg0: #242424; + fg1: #FFFFFF; + fg2: #24242480; + + background-color: transparent; + text-color: @fg0; + + margin: 0; + padding: 0; + spacing: 0; +} + +window { + background-color: @bg0; + + location: center; + width: 640; + border-radius: 8; +} + +inputbar { + font: "Montserrat 20"; + padding: 12px; + spacing: 12px; + children: [ icon-search, entry ]; +} + +icon-search { + expand: false; + filename: "search"; + size: 28px; +} + +icon-search, entry, element-icon, element-text { + vertical-align: 0.5; +} + +entry { + font: inherit; + + placeholder : "Search"; + placeholder-color : @fg2; +} + +message { + border: 2px 0 0; + border-color: @bg1; + background-color: @bg1; +} + +textbox { + padding: 8px 24px; +} + +listview { + lines: 10; + columns: 1; + + fixed-height: false; + border: 1px 0 0; + border-color: @bg1; +} + +element { + padding: 8px 16px; + spacing: 16px; + background-color: transparent; +} + +element normal active { + text-color: @bg2; +} + +element selected normal, element selected active { + background-color: @bg2; + text-color: @fg1; +} + +element-icon { + size: 1em; +} + +element-text { + text-color: inherit; +} diff --git a/.config/rofi/themes/squared-everforest.rasi b/.config/rofi/themes/squared-everforest.rasi new file mode 100644 index 0000000..4243ef0 --- /dev/null +++ b/.config/rofi/themes/squared-everforest.rasi @@ -0,0 +1,95 @@ +/******************************************************************************* + * ROFI SQUARED THEME USING THE EVERFOREST PALETTE + * User : LR-Tech + * Theme Repo : https://github.com/lr-tech/rofi-themes-collection + *******************************************************************************/ + +* { + font: "FiraCode Nerd Font Medium 12"; + + bg0: #2B3339; + bg1: #323D43; + fg0: #D3C6AA; + + accent-color: #A7C080; + urgent-color: #DBBC7F; + + background-color: transparent; + text-color: @fg0; + + margin: 0; + padding: 0; + spacing: 0; +} + +window { + location: center; + width: 480; + + background-color: @bg0; +} + +inputbar { + spacing: 8px; + padding: 8px; + + background-color: @bg1; +} + +prompt, entry, element-icon, element-text { + vertical-align: 0.5; +} + +prompt { + text-color: @accent-color; +} + +textbox { + padding: 8px; + background-color: @bg1; +} + +listview { + padding: 4px 0; + lines: 8; + columns: 1; + + fixed-height: false; +} + +element { + padding: 8px; + spacing: 8px; +} + +element normal normal { + text-color: @fg0; +} + +element normal urgent { + text-color: @urgent-color; +} + +element normal active { + text-color: @accent-color; +} + +element selected { + text-color: @bg0; +} + +element selected normal, element selected active { + background-color: @accent-color; +} + +element selected urgent { + background-color: @urgent-color; +} + +element-icon { + size: 0.8em; +} + +element-text { + text-color: inherit; +} diff --git a/.config/rofi/themes/squared-material-red.rasi b/.config/rofi/themes/squared-material-red.rasi new file mode 100644 index 0000000..aa6b8fc --- /dev/null +++ b/.config/rofi/themes/squared-material-red.rasi @@ -0,0 +1,95 @@ +/******************************************************************************* + * ROFI SQUARED THEME USING THE MATERIAL DARKER PALETTE + * User : LR-Tech + * Theme Repo : https://github.com/lr-tech/rofi-themes-collection + *******************************************************************************/ + +* { + font: "FiraCode Nerd Font Medium 12"; + + bg0: #212121; + bg1: #404040; + fg0: #eeffff; + + accent-color: #f07178; + urgent-color: #ffcb6b; + + background-color: transparent; + text-color: @fg0; + + margin: 0; + padding: 0; + spacing: 0; +} + +window { + location: center; + width: 480; + + background-color: @bg0; +} + +inputbar { + spacing: 8px; + padding: 8px; + + background-color: @bg1; +} + +prompt, entry, element-icon, element-text { + vertical-align: 0.5; +} + +prompt { + text-color: @accent-color; +} + +textbox { + padding: 8px; + background-color: @bg1; +} + +listview { + padding: 4px 0; + lines: 8; + columns: 1; + + fixed-height: false; +} + +element { + padding: 8px; + spacing: 8px; +} + +element normal normal { + text-color: @fg0; +} + +element normal urgent { + text-color: @urgent-color; +} + +element normal active { + text-color: @accent-color; +} + +element selected { + text-color: @bg0; +} + +element selected normal, element selected active { + background-color: @accent-color; +} + +element selected urgent { + background-color: @urgent-color; +} + +element-icon { + size: 0.8em; +} + +element-text { + text-color: inherit; +} diff --git a/.config/rofi/themes/squared-nord.rasi b/.config/rofi/themes/squared-nord.rasi new file mode 100644 index 0000000..689e359 --- /dev/null +++ b/.config/rofi/themes/squared-nord.rasi @@ -0,0 +1,95 @@ +/******************************************************************************* + * ROFI SQUARED THEME USING THE NORD PALETTE + * User : LR-Tech + * Theme Repo : https://github.com/lr-tech/rofi-themes-collection + *******************************************************************************/ + +* { + font: "FiraCode Nerd Font Medium 12"; + + bg0: #2E3440; + bg1: #3B4252; + fg0: #D8DEE9; + + accent-color: #88C0D0; + urgent-color: #EBCB8B; + + background-color: transparent; + text-color: @fg0; + + margin: 0; + padding: 0; + spacing: 0; +} + +window { + location: center; + width: 480; + + background-color: @bg0; +} + +inputbar { + spacing: 8px; + padding: 8px; + + background-color: @bg1; +} + +prompt, entry, element-icon, element-text { + vertical-align: 0.5; +} + +prompt { + text-color: @accent-color; +} + +textbox { + padding: 8px; + background-color: @bg1; +} + +listview { + padding: 4px 0; + lines: 8; + columns: 1; + + fixed-height: false; +} + +element { + padding: 8px; + spacing: 8px; +} + +element normal normal { + text-color: @fg0; +} + +element normal urgent { + text-color: @urgent-color; +} + +element normal active { + text-color: @accent-color; +} + +element selected { + text-color: @bg0; +} + +element selected normal, element selected active { + background-color: @accent-color; +} + +element selected urgent { + background-color: @urgent-color; +} + +element-icon { + size: 0.8em; +} + +element-text { + text-color: inherit; +} diff --git a/.config/sdorfehs/config b/.config/sdorfehs/config new file mode 100644 index 0000000..87ee23b --- /dev/null +++ b/.config/sdorfehs/config @@ -0,0 +1,116 @@ +set gap 12 +set ignoreresizehints 1 +#set onlyborder 0 +# #set rudeness 12 + +# swap workspaces, but define it in 'top' to avoid having to prefix with C-a +definekey top M-1 vselect 0 +definekey top M-2 vselect 1 +definekey top M-3 vselect 2 +definekey top M-4 vselect 3 + +# prevent accidental closes +unbind k + +# i like tab just going between the same two windows +definekey top M-Tab focuslast + +definekey top M-Left focusleft +definekey top M-Right focusright +definekey top M-Up focusup +definekey top M-Down focusdown +definekey top M-f only + +definekey top M-k readkey _k +newkmap _k +definekey _k k hsplit +definekey _k M-k hsplit +definekey _k K vsplit +definekey _k M-K vsplit + +definekey top M-a readkey _a +newkmap _a +definekey _a M-Right hsplit +definekey _a M-Left hsplit +definekey _a M-Up vsplit +definekey _a M-Down vsplit +definekey _a colon colon + +definekey top M-Prior next +definekey top M-Next prev + +# definekey top M-Return exec bterm +# definekey top M-S-Return exec hterm + +# bind Right split +# bind Down hsplit + +bind c exec bterm +definekey top M-Return exec bterm +definekey top M-q delete +definekey top M-Q remove +bind minus split +bind bar hsplit + +definekey top M-F exec dexec_browser +definekey top M-P exec dexec_pass +definekey top M-S exec dexec_ssh +definekey top M-A exec dexec_apps +definekey top M-d exec dexec + + + + +# things from jcs +# set barpadding 20 10 +# set gap 26 +# set ignoreresizehints 1 +# set onlyborder 0 +# +# bind s split +# bind C-s split +# bind S hsplit +# bind C-S hsplit +# +# bind c exec bterm +# bind C-c exec bterm +# +# # lock the screen +# bind L exec pkill -USR1 xidle +# +# +# +# # quickly jump to music +# definekey root 9 exec sdorfehs -c "vselect 0" -c "fselect 2" -c "select 9" +# +# # map to matebook F keys +# definekey top F1 exec sdorfehs -c "echo backlight: `xbacklight -dec 5 -time 0; xbacklight | sed 's/\..*//'`" +# definekey top F2 exec sdorfehs -c "echo backlight: `xbacklight -inc 5 -time 0; xbacklight | sed 's/\..*//'`" +# definekey top F4 exec sndioctl -q output.mute=!; pkill -USR1 i3status; true +# definekey top F5 exec sndioctl -q output.mute=0; sndioctl -q output.level=-0.025; pkill -USR1 i3status; true +# definekey top F6 exec sndioctl -q output.mute=0; sndioctl -q output.level=+0.025; pkill -USR1 i3status; true +# +# definekey top F10 exec ~/bin/music prev +# definekey top F11 exec ~/bin/music playpause +# definekey top F12 exec ~/bin/music next +# definekey top M-F12 exec ~/bin/music nextalbum +# +# +# # act normal but prevent firefox raising itself when links are opened from +# # other apps +# #set rudeness 12 +# +# # let popups stay centered +# unmanage xmessage +# unmanage xprompt +# unmanage OpenSSH Authentication Passphrase Request +# unmanage dzen title +# +# # startup configuration +# #exec ruby ~/code/sdorfehs-bar/sdorfehs-bar.rb +# frestore (frame :number 0 :x 0 :y 40 :width 1080 :height 1400 :screenw 2160 :screenh 1440 :window 27262985 :last-access 29 :dedicated 0),(frame :number 1 :x 1080 :y 40 :width 1080 :height 1150 :screenw 2160 :screenh 1440 :window 18874377 :last-access 28 :dedicated 0),(frame :number 2 :x 1080 :y 1190 :width 1080 :height 250 :screenw 2160 :screenh 1440 :window 20971523 :last-access 26 :dedicated 0) +# execf 0 env RUN_AND_RETURN=mutt bterm -title mutt +# execf 1 env RUN_AND_RETURN=irc bterm -title irssi +# fselect 2 +# execf 2 cmus +# exec sleep 2; sdorfehs -c "fselect 1" -c "fselect 0" diff --git a/.config/sdorfehs/mybar.c b/.config/sdorfehs/mybar.c new file mode 100644 index 0000000..35590e7 --- /dev/null +++ b/.config/sdorfehs/mybar.c @@ -0,0 +1,48 @@ + /***************************************/ + /*** c0dev0ids lazy ass sdorfehs bar ***/ + /***************************************/ +static char * fifo_path = "/home/sdk/.config/sdorfehs/bar"; + +#include +//#include +//#include +//#include +//#include +//#include +//#include +//#include + +char * juice() +{ + int fd; + char buf[2]; + struct apm_power_info pi; + + if ((fd = open("/dev/apm", O_RDONLY)) == -1 || + ioctl(fd, APM_IOC_GETPOWER, &pi) == -1 || + close(fd) == -1) + return "??"; + + if (pi.battery_state == APM_BATT_UNKNOWN || + pi.battery_state == APM_BATTERY_ABSENT) + return "??"; + + return snprintf(buf, sizeof(buf), "%i", pi.battery_life); +} + +int main() { + int fifo_fd; + int i = 0; + while(1) { + fifo_fd = open(fifo_path, O_NONBLOCK | O_WRONLY); + char str[255] = ""; + + snprintf(str, sizeof(str), "Battery: %s%%\n",juice()); + + write(fifo_fd, str, strlen(str)+1); + close(fifo_fd); + + sleep(1); + } + return 0; +} diff --git a/.config/vifm/colors/Default.vifm b/.config/vifm/colors/Default.vifm new file mode 100644 index 0000000..fa715ae --- /dev/null +++ b/.config/vifm/colors/Default.vifm @@ -0,0 +1,65 @@ +" You can edit this file by hand. +" The " character at the beginning of a line comments out the line. +" Blank lines are ignored. + +" The Default color scheme is used for any directory that does not have +" a specified scheme and for parts of user interface like menus. A +" color scheme set for a base directory will also +" be used for the sub directories. + +" The standard ncurses colors are: +" Default = -1 = None, can be used for transparency or default color +" Black = 0 +" Red = 1 +" Green = 2 +" Yellow = 3 +" Blue = 4 +" Magenta = 5 +" Cyan = 6 +" White = 7 + +" Light versions of colors are also available (set bold attribute): +" LightBlack +" LightRed +" LightGreen +" LightYellow +" LightBlue +" LightMagenta +" LightCyan +" LightWhite + +" Available attributes (some of them can be combined): +" bold +" underline +" reverse or inverse +" standout +" none + +" Vifm supports 256 colors you can use color numbers 0-255 +" (requires properly set up terminal: set your TERM environment variable +" (directly or using resources) to some color terminal name (e.g. +" xterm-256color) from /usr/lib/terminfo/; you can check current number +" of colors in your terminal with tput colors command) + +" highlight group cterm=attrs ctermfg=foreground_color ctermbg=background_color + +highlight clear + +highlight Win cterm=none ctermfg=white ctermbg=black +highlight Directory cterm=bold ctermfg=cyan ctermbg=default +highlight Link cterm=bold ctermfg=yellow ctermbg=default +highlight BrokenLink cterm=bold ctermfg=red ctermbg=default +highlight Socket cterm=bold ctermfg=magenta ctermbg=default +highlight Device cterm=bold ctermfg=red ctermbg=default +highlight Fifo cterm=bold ctermfg=cyan ctermbg=default +highlight Executable cterm=bold ctermfg=green ctermbg=default +highlight Selected cterm=bold ctermfg=magenta ctermbg=default +highlight CurrLine cterm=bold ctermfg=default ctermbg=blue +highlight TopLine cterm=none ctermfg=black ctermbg=white +highlight TopLineSel cterm=bold ctermfg=black ctermbg=default +highlight StatusLine cterm=bold ctermfg=black ctermbg=white +highlight WildMenu cterm=underline,reverse ctermfg=white ctermbg=black +highlight CmdLine cterm=none ctermfg=white ctermbg=black +highlight ErrorMsg cterm=none ctermfg=red ctermbg=black +highlight Border cterm=none ctermfg=black ctermbg=white +highlight JobLine cterm=bold,reverse ctermfg=black ctermbg=white diff --git a/.config/vifm/colors/afterglow.vifm b/.config/vifm/colors/afterglow.vifm new file mode 100644 index 0000000..ede16b4 --- /dev/null +++ b/.config/vifm/colors/afterglow.vifm @@ -0,0 +1,44 @@ +" afterglow +" by danilo-augusto +" +" afterglow color scheme converted from the one for vim +" by romic + +" Reset all styles first +highlight clear + +highlight Win cterm=none ctermfg=253 ctermbg=default + +highlight TabLine cterm=none ctermfg=default ctermbg=239 +highlight TabLineSel cterm=none ctermfg=default ctermbg=235 + +highlight TopLine cterm=none ctermfg=243 ctermbg=default +highlight TopLineSel cterm=none ctermfg=253 ctermbg=default + +highlight JobLine cterm=bold,inverse ctermfg=238 ctermbg=179 +highlight StatusLine cterm=bold,inverse ctermfg=238 ctermbg=179 + +highlight Border cterm=none ctermfg=default ctermbg=default + +highlight CurrLine ctermfg=default ctermbg=default cterm=inverse +highlight OtherLine ctermfg=default ctermbg=default cterm=none + +highlight LineNr ctermfg=243 ctermbg=default cterm=inverse + +highlight Selected cterm=none ctermfg=default ctermbg=60 + +highlight CmpMismatch cterm=none ctermfg=179 ctermbg=225 + +highlight SuggestBox cterm=none ctermfg=253 ctermbg=default +highlight WildMenu cterm=none ctermfg=179 ctermbg=232 + +highlight CmdLine cterm=none ctermfg=253 ctermbg=default +highlight ErrorMsg ctermfg=Red ctermbg=default cterm=none + +highlight Directory cterm=none ctermfg=179 ctermbg=default +highlight Executable cterm=none ctermfg=108 ctermbg=default +highlight Socket cterm=none ctermfg=67 ctermbg=default +highlight Device cterm=none ctermfg=67 ctermbg=default +highlight Fifo cterm=none ctermfg=179 ctermbg=default +highlight Link cterm=none ctermfg=139 ctermbg=default +highlight BrokenLink cterm=none ctermfg=131 ctermbg=default diff --git a/.config/vifm/colors/ansa.vifm b/.config/vifm/colors/ansa.vifm new file mode 100644 index 0000000..c7b84d0 --- /dev/null +++ b/.config/vifm/colors/ansa.vifm @@ -0,0 +1,39 @@ +" +" Ansa theme for vifm +" +hi clear + +" UI elements +hi Border cterm=none ctermfg=235 ctermbg=0 +hi CmdLine cterm=none ctermfg=250 ctermbg=0 +hi CurrLine cterm=none ctermfg=default ctermbg=236 +hi ErrorMsg cterm=italic ctermfg=9 ctermbg=52 +hi JobLine cterm=none ctermfg=220 ctermbg=1 +hi LineNr cterm=none ctermfg=237 ctermbg=0 +hi OtherLine cterm=none ctermfg=default ctermbg=234 +hi Selected cterm=none ctermfg=default ctermbg=17 +hi StatusLine cterm=none ctermfg=243 ctermbg=235 +hi SuggestBox cterm=none ctermfg=243 ctermbg=0 +hi TopLine cterm=none ctermfg=239 ctermbg=235 +hi TopLineSel cterm=none ctermfg=248 ctermbg=235 +hi WildMenu cterm=none ctermfg=254 ctermbg=237 +hi Win cterm=none ctermfg=249 ctermbg=0 + +" Filetypes +hi BrokenLink cterm=italic ctermfg=9 ctermbg=52 +hi CmpMismatch cterm=italic ctermfg=9 ctermbg=52 +hi Device cterm=italic ctermfg=1 ctermbg=default +hi Directory cterm=none ctermfg=12 ctermbg=default +hi Executable cterm=none ctermfg=2 ctermbg=default +hi Fifo cterm=italic ctermfg=14 ctermbg=default +hi HardLink cterm=bold ctermfg=3 ctermbg=default +hi Link cterm=italic ctermfg=3 ctermbg=default +hi Socket cterm=italic ctermfg=13 ctermbg=default + +if $USER == 'root' + hi StatusLine ctermbg=52 ctermfg=248 + hi TopLineSel ctermbg=52 ctermfg=252 + hi TopLine ctermbg=52 ctermfg=245 +endif + +finish diff --git a/.config/vifm/colors/astrell.vifm b/.config/vifm/colors/astrell.vifm new file mode 100644 index 0000000..be8b445 --- /dev/null +++ b/.config/vifm/colors/astrell.vifm @@ -0,0 +1,33 @@ +" by astrell +" with builtin regular/root user differentiation + +highlight clear + +highlight Border cterm=none ctermfg=black ctermbg=131 + +highlight TopLine cterm=none ctermfg=black ctermbg=white +highlight TopLineSel cterm=bold ctermfg=default ctermbg=default + +highlight StatusLine cterm=none ctermfg=black ctermbg=white +highlight WildMenu cterm=none ctermfg=default ctermbg=153 + +highlight CmdLine cterm=none ctermfg=white ctermbg=black +highlight ErrorMsg cterm=none ctermfg=red ctermbg=default + +highlight Win cterm=none ctermfg=0 ctermbg=224 +highlight Directory cterm=bold ctermfg=17 ctermbg=default +highlight Link cterm=none ctermfg=94 ctermbg=default +highlight BrokenLink cterm=bold ctermfg=160 ctermbg=default +highlight Socket cterm=bold ctermfg=91 ctermbg=default +highlight Device cterm=bold ctermfg=52 ctermbg=default +highlight Fifo cterm=bold ctermfg=105 ctermbg=default +highlight Executable cterm=bold ctermfg=23 ctermbg=default +highlight Selected cterm=bold ctermfg=default ctermbg=182 +highlight CurrLine cterm=bold ctermfg=238 ctermbg=153 +highlight OtherLine cterm=none ctermfg=default ctermbg=default + +" overwrite some colors for root user +if $USER == 'root' + highlight Win cterm=none ctermfg=0 ctermbg=182 + highlight Selected cterm=bold ctermfg=default ctermbg=217 +endif diff --git a/.config/vifm/colors/crown_24bit.vifm b/.config/vifm/colors/crown_24bit.vifm new file mode 100644 index 0000000..392db77 --- /dev/null +++ b/.config/vifm/colors/crown_24bit.vifm @@ -0,0 +1,29 @@ +" crown vifm color scheme for 256 and 24-bit colors + +" Reset all styles first +highlight clear + +highlight Border cterm=none ctermfg=235 ctermbg=None guifg=#262626 guibg=None + +highlight TopLine cterm=none ctermfg=247 ctermbg=232 guifg=#9e9e9e guibg=#080808 +highlight TopLineSel cterm=inverse ctermfg=236 ctermbg=254 guifg=#f5dabf guibg=#2a2016 + + +highlight Win cterm=none ctermfg=188 ctermbg=None guifg=#d7d7d7 guibg=None +highlight Directory cterm=bold ctermfg=255 ctermbg=None gui=bold guifg=#f5dabf guibg=None +highlight CurrLine cterm=inverse ctermfg=137 ctermbg=232 gui=inverse guifg=#af875f guibg=#080808 +highlight OtherLine cterm=none ctermfg=Default ctermbg=None guifg=Default guibg=None +highlight Selected cterm=none ctermfg=None ctermbg=238 guifg=None guibg=#444444 + +highlight JobLine cterm=bold ctermfg=116 ctermbg=238 guifg=#87d7d7 guibg=#444444 +highlight StatusLine cterm=bold ctermfg=251 ctermbg=233 guifg=#c6c6c6 guibg=#121212 +highlight ErrorMsg cterm=bold ctermfg=115 ctermbg=237 guifg=#87d7af guibg=#3a3a3a +highlight WildMenu cterm=bold ctermfg=235 ctermbg=144 guifg=#262626 guibg=#afafff +highlight CmdLine cterm=none ctermfg=252 ctermbg=None guifg=#d0d0d0 guibg=None + +highlight Executable cterm=none ctermfg=131 ctermbg=None guifg=#af5f5f guibg=None +highlight Link cterm=none ctermfg=142 ctermbg=None guifg=#afaf00 guibg=None +highlight BrokenLink cterm=none ctermfg=174 ctermbg=None guifg=#d787d7 guibg=None +highlight Device cterm=none ctermfg=228 ctermbg=None guifg=#ffff87 guibg=None +highlight Fifo cterm=none ctermfg=109 ctermbg=None guifg=#87afaf guibg=None +highlight Socket cterm=none ctermfg=110 ctermbg=None guifg=#87afd7 guibg=None diff --git a/.config/vifm/colors/darkdesert.vifm b/.config/vifm/colors/darkdesert.vifm new file mode 100644 index 0000000..c456374 --- /dev/null +++ b/.config/vifm/colors/darkdesert.vifm @@ -0,0 +1,24 @@ +" Dark Desert +" by Karol M. Langner +" based on Desert by Michael jubalh Vetter +" https://github.com/vifm/vifm-colors + +highlight clear + +highlight Win cterm=none ctermfg=220 ctermbg=233 +highlight Directory cterm=bold ctermfg=77 ctermbg=default +highlight Link cterm=bold ctermfg=239 ctermbg=default +highlight BrokenLink cterm=bold ctermfg=red ctermbg=default +highlight Socket cterm=bold ctermfg=24 ctermbg=default +highlight Device cterm=bold ctermfg=31 ctermbg=default +highlight Fifo cterm=bold ctermfg=31 ctermbg=default +highlight Executable cterm=bold ctermfg=green ctermbg=default +highlight Selected cterm=bold ctermfg=magenta ctermbg=default +highlight CurrLine cterm=bold ctermfg=131 ctermbg=228 +highlight TopLine cterm=none ctermfg=124 ctermbg=235 +highlight TopLineSel cterm=bold ctermfg=124 ctermbg=235 +highlight StatusLine cterm=bold ctermfg=124 ctermbg=235 +highlight WildMenu cterm=underline,reverse ctermfg=white ctermbg=black +highlight CmdLine cterm=none ctermfg=217 ctermbg=black +highlight ErrorMsg cterm=none ctermfg=7 ctermbg=1 +highlight Border cterm=none ctermfg=black ctermbg=235 diff --git a/.config/vifm/colors/desert.vifm b/.config/vifm/colors/desert.vifm new file mode 100644 index 0000000..3b28180 --- /dev/null +++ b/.config/vifm/colors/desert.vifm @@ -0,0 +1,23 @@ +" Desert +" by Michael jubalh Vetter +" https://github.com/jubalh/vifm-colors + +highlight clear + +highlight Win cterm=none ctermfg=220 ctermbg=237 +highlight Directory cterm=bold ctermfg=77 ctermbg=default +highlight Link cterm=bold ctermfg=239 ctermbg=default +highlight BrokenLink cterm=bold ctermfg=red ctermbg=default +highlight Socket cterm=bold ctermfg=24 ctermbg=default +highlight Device cterm=bold ctermfg=31 ctermbg=default +highlight Fifo cterm=bold ctermfg=31 ctermbg=default +highlight Executable cterm=bold ctermfg=green ctermbg=default +highlight Selected cterm=bold ctermfg=magenta ctermbg=default +highlight CurrLine cterm=bold ctermfg=131 ctermbg=228 +highlight TopLine cterm=none ctermfg=black ctermbg=white +highlight TopLineSel cterm=bold ctermfg=red ctermbg=default +highlight StatusLine cterm=bold ctermfg=red ctermbg=white +highlight WildMenu cterm=underline,reverse ctermfg=white ctermbg=black +highlight CmdLine cterm=none ctermfg=217 ctermbg=black +highlight ErrorMsg cterm=none ctermfg=7 ctermbg=1 +highlight Border cterm=none ctermfg=black ctermbg=white diff --git a/.config/vifm/colors/dracula.vifm b/.config/vifm/colors/dracula.vifm new file mode 100644 index 0000000..ebd2b75 --- /dev/null +++ b/.config/vifm/colors/dracula.vifm @@ -0,0 +1,45 @@ +" VIFM COLORS +" dracula +" based on: https://github.com/istib/dotfiles/blob/master/vifm/vifm-colors + +" Default = -1 = None, can be used for transparency or default color +" Black = 0 +" Red = 1 +" Green = 2 +" Yellow = 3 +" Blue = 4 +" Magenta = 5 +" Cyan = 6 +" White = 7 + +" STYLES +" bold +" underline +" reverse or inverse +" standout +" none + + +highlight clear + +highlight Win cterm=none ctermfg=default ctermbg=none + +highlight TopLine cterm=none ctermfg=blue ctermbg=none +highlight TopLineSel cterm=none ctermfg=magenta ctermbg=none +highlight StatusLine cterm=none ctermfg=blue ctermbg=none +highlight Border cterm=none ctermfg=blue ctermbg=none + +highlight Selected cterm=bold ctermfg=magenta ctermbg=default +highlight CurrLine cterm=bold ctermfg=236 ctermbg=blue + +highlight WildMenu cterm=none,reverse ctermfg=blue ctermbg=236 +highlight CmdLine cterm=none ctermfg=255 ctermbg=236 +highlight ErrorMsg cterm=none ctermfg=red ctermbg=black + +highlight Directory cterm=none ctermfg=blue ctermbg=default +highlight Link cterm=none ctermfg=cyan ctermbg=default +highlight BrokenLink cterm=none ctermfg=red ctermbg=default +highlight Socket cterm=none ctermfg=magenta ctermbg=black +highlight Device cterm=none ctermfg=red ctermbg=default +highlight Fifo cterm=none ctermfg=yellow ctermbg=black +highlight Executable cterm=none ctermfg=green ctermbg=default diff --git a/.config/vifm/colors/dwmlight.vifm b/.config/vifm/colors/dwmlight.vifm new file mode 100644 index 0000000..d19a96e --- /dev/null +++ b/.config/vifm/colors/dwmlight.vifm @@ -0,0 +1,74 @@ +" dwmlight +" Author: SaeidSaati +" I suggest you to use PaperColor colorscheme in vim/nvim, then this theme will match with it +" SEE THIS WEBSITE: https://www.calmar.ws/vim/256-xterm-24bit-rgb-color-chart.html +" https://github.com/vifm/vifm-colors + +" ============================= +" The standard ncurses colors are: +" ============================= +" Default = -1 = None, can be used for transparency or default color +" Black = 0 = 16 +" Red = 1 +" Green = 2 +" Yellow = 3 +" Blue = 4 +" Magenta = 5 +" Cyan = 6 +" White = 7 = 231 +" ============================= +" Available attributes (some of them can be combined): +" ============================= +" bold +" underline +" reverse or inverse +" standout +" italic (on unsupported systems becomes reverse) +" none + + +" ============================= +" export TERM=xterm-256color (in your .bashrc or .zshrc) +" ============================= +" Vifm supports 256 colors you can use color numbers 0-255 +" (requires properly set up terminal: set your TERM environment variable +" (directly or using resources) to some color terminal name (e.g. +" xterm-256color) from /usr/lib/terminfo/; you can check current number +" of colors in your terminal with tput colors command) + + +" ============================= +" Explanation +" ============================= +" highlight group cterm=attrs ctermfg=foreground_color ctermbg=background_color + + +" ============================= +" Color Scheme +" ============================= +highlight clear + +highlight SuggestBox cterm=none ctermfg=24 ctermbg=255 +highlight Win cterm=none ctermfg=238 ctermbg=255 +highlight Directory cterm=bold ctermfg=25 ctermbg=255 +highlight Link cterm=none ctermfg=27 ctermbg=255 + +highlight BrokenLink cterm=bold ctermfg=196 ctermbg=255 +highlight Socket cterm=bold ctermfg=24 ctermbg=251 +highlight Device cterm=none ctermfg=57 ctermbg=255 + +highlight Fifo cterm=none ctermfg=24 ctermbg=255 +highlight Executable cterm=none ctermfg=125 ctermbg=255 +highlight Selected cterm=none ctermfg=16 ctermbg=154 + +highlight CurrLine cterm=reverse ctermfg=-1 ctermbg=-1 " none 238 254 +highlight TopLineSel cterm=none ctermfg=255 ctermbg=31 +highlight TopLine cterm=none ctermfg=255 ctermbg=24 +"highlight TopLineSel cterm=none ctermfg=240 ctermbg=254 + +highlight StatusLine cterm=none ctermfg=255 ctermbg=24 +highlight WildMenu cterm=none ctermfg=255 ctermbg=31 +highlight CmdLine cterm=none ctermfg=255 ctermbg=24 + +highlight ErrorMsg cterm=bold ctermfg=16 ctermbg=166 +highlight Border cterm=none ctermfg=255 ctermbg=255 diff --git a/.config/vifm/colors/fargo.vifm b/.config/vifm/colors/fargo.vifm new file mode 100644 index 0000000..d8196c1 --- /dev/null +++ b/.config/vifm/colors/fargo.vifm @@ -0,0 +1,21 @@ +" Fargo theme for vifm + +highlight clear + +highlight Win cterm=bold ctermfg=118 ctermbg=0 +highlight Directory cterm=bold ctermfg=15 ctermbg=33 +highlight Link cterm=bold ctermfg=yellow ctermbg=0 +highlight BrokenLink cterm=bold ctermfg=red ctermbg=none +highlight Socket cterm=bold ctermfg=magenta ctermbg=black +highlight Device cterm=bold ctermfg=red ctermbg=black +highlight Fifo cterm=bold ctermfg=cyan ctermbg=none +highlight Executable cterm=bold ctermfg=118 ctermbg=0 +highlight Selected cterm=bold ctermfg=0 ctermbg=34 +highlight CurrLine cterm=bold ctermfg=0 ctermbg=199 +highlight TopLine cterm=bold ctermfg=118 ctermbg=0 +highlight TopLineSel cterm=bold ctermfg=0 ctermbg=118 +highlight StatusLine cterm=bold ctermfg=15 ctermbg=57 +highlight WildMenu cterm=bold ctermfg=57 ctermbg=15 +highlight CmdLine cterm=none ctermfg=white ctermbg=0 +highlight ErrorMsg cterm=none ctermfg=15 ctermbg=21 +highlight Border cterm=none ctermfg=0 ctermbg=0 diff --git a/.config/vifm/colors/g80.vifm b/.config/vifm/colors/g80.vifm new file mode 100644 index 0000000..3eaa6ae --- /dev/null +++ b/.config/vifm/colors/g80.vifm @@ -0,0 +1,28 @@ +" G80 + +" Reset all styles first +highlight clear + +highlight Border cterm=none ctermfg=237 ctermbg=237 + +highlight TopLine cterm=none ctermfg=188 ctermbg=237 +highlight TopLineSel cterm=underline ctermfg=188 ctermbg=237 + +highlight Win cterm=none ctermfg=188 ctermbg=237 +highlight Directory cterm=none ctermfg=188 ctermbg=237 +highlight CurrLine cterm=none ctermfg=188 ctermbg=236 +highlight OtherLine cterm=none ctermfg=247 ctermbg=237 +highlight Selected cterm=none ctermfg=188 ctermbg=238 + +highlight JobLine cterm=bold ctermfg=188 ctermbg=238 +highlight StatusLine cterm=none ctermfg=188 ctermbg=235 +highlight WildMenu cterm=none ctermfg=188 ctermbg=238 +highlight CmdLine cterm=none ctermfg=188 ctermbg=237 +highlight ErrorMsg cterm=none ctermfg=188 ctermbg=237 + +highlight Executable cterm=none ctermfg=188 ctermbg=237 +highlight Link cterm=none ctermfg=188 ctermbg=237 +highlight BrokenLink cterm=none ctermfg=188 ctermbg=237 +highlight Device cterm=none ctermfg=188 ctermbg=237 +highlight Fifo cterm=none ctermfg=188 ctermbg=237 +highlight Socket cterm=none ctermfg=188 ctermbg=237 diff --git a/.config/vifm/colors/gruvbox.vifm b/.config/vifm/colors/gruvbox.vifm new file mode 100644 index 0000000..1b1ca29 --- /dev/null +++ b/.config/vifm/colors/gruvbox.vifm @@ -0,0 +1,30 @@ +" gruvbox color scheme approximation for vifm + +" Reset all styles first +highlight clear + +highlight Border cterm=none ctermfg=235 ctermbg=default + +highlight TopLine cterm=none ctermfg=214 ctermbg=235 +highlight TopLineSel cterm=bold ctermfg=214 ctermbg=237 + +highlight Win cterm=none ctermfg=223 ctermbg=default +"highlight OtherWin cterm=none ctermfg=223 ctermbg=236 +highlight Directory cterm=bold ctermfg=109 ctermbg=default +highlight CurrLine cterm=bold,inverse ctermfg=default ctermbg=default +highlight OtherLine cterm=bold ctermfg=default ctermbg=235 +highlight Selected cterm=none ctermfg=223 ctermbg=237 + +highlight JobLine cterm=bold ctermfg=116 ctermbg=238 +highlight StatusLine cterm=bold ctermfg=144 ctermbg=236 +highlight ErrorMsg cterm=bold ctermfg=167 ctermbg=default +highlight WildMenu cterm=bold ctermfg=235 ctermbg=144 +highlight CmdLine cterm=none ctermfg=223 ctermbg=default + +highlight Executable cterm=bold ctermfg=142 ctermbg=default +highlight Link cterm=none ctermfg=132 ctermbg=default +highlight BrokenLink cterm=bold ctermfg=167 ctermbg=default +highlight Device cterm=none,standout ctermfg=214 ctermbg=default +highlight Fifo cterm=none ctermfg=172 ctermbg=default +highlight Socket cterm=bold ctermfg=223 ctermbg=default + diff --git a/.config/vifm/colors/iceberg.vifm b/.config/vifm/colors/iceberg.vifm new file mode 100644 index 0000000..e286999 --- /dev/null +++ b/.config/vifm/colors/iceberg.vifm @@ -0,0 +1,29 @@ +" iceberg +" by puven12 +" +" This colorscheme is based on iceberg colorscheme for vim +" by cocopon + +highlight clear + +highlight Win cterm=none ctermfg=255 ctermbg=234 +highlight Directory cterm=bold ctermfg=109 ctermbg=default +highlight Link cterm=bold ctermfg=216 ctermbg=234 +highlight BrokenLink cterm=bold ctermfg=red ctermbg=239 +highlight Socket cterm=bold ctermfg=green ctermbg=default +highlight Device cterm=bold ctermfg=red ctermbg=default +highlight Fifo cterm=bold ctermfg=150 ctermbg=default +highlight Executable cterm=none ctermfg=150 ctermbg=default +highlight Selected cterm=none ctermfg=255 ctermbg=236 +highlight CurrLine cterm=reverse +highlight TopLine cterm=none ctermfg=255 ctermbg=234 +highlight TopLineSel cterm=bold ctermfg=110 ctermbg=default +highlight StatusLine cterm=none ctermfg=240 ctermbg=235 +highlight WildMenu cterm=underline,reverse ctermfg=255 ctermbg=black +highlight CmdLine cterm=none ctermfg=255 ctermbg=234 +highlight ErrorMsg cterm=none ctermfg=203 ctermbg=234 +highlight Border cterm=none ctermfg=black ctermbg=234 +highlight JobLine cterm=bold,reverse ctermfg=black ctermbg=255 +highlight SuggestBox cterm=bold ctermfg=default ctermbg=default +highlight CmpMismatch cterm=bold ctermfg=255 ctermbg=red +highlight AuxWin cterm=bold,underline,reverse,standout ctermfg=default ctermbg=default diff --git a/.config/vifm/colors/lucius.vifm b/.config/vifm/colors/lucius.vifm new file mode 100644 index 0000000..0278aaf --- /dev/null +++ b/.config/vifm/colors/lucius.vifm @@ -0,0 +1,25 @@ +" lucius +" by francogonzaga +" +" https://gist.github.com/francogonzaga/5509523 +" +" This color scheme is loosely based on the lucius color scheme for vim + +highlight clear +highlight Win cterm=none ctermfg=250 ctermbg=236 +highlight Directory cterm=bold ctermfg=4 ctermbg=236 +highlight Link cterm=bold ctermfg=yellow ctermbg=236 +highlight BrokenLink cterm=bold ctermfg=red ctermbg=none +highlight Socket cterm=bold ctermfg=magenta ctermbg=black +highlight Device cterm=bold ctermfg=red ctermbg=black +highlight Fifo cterm=bold ctermfg=cyan ctermbg=none +highlight Executable cterm=bold ctermfg=112 ctermbg=236 +highlight Selected cterm=none ctermfg=236 ctermbg=208 +highlight CurrLine cterm=bold ctermfg=251 ctermbg=240 +highlight TopLine cterm=none ctermfg=black ctermbg=240 +highlight TopLineSel cterm=none ctermfg=250 ctermbg=12 +highlight StatusLine cterm=bold ctermfg=255 ctermbg=12 +highlight WildMenu cterm=underline,reverse ctermfg=white ctermbg=black +highlight CmdLine cterm=none ctermfg=white ctermbg=240 +highlight ErrorMsg cterm=none ctermfg=250 ctermbg=124 +highlight Border cterm=none ctermfg=236 ctermbg=236 diff --git a/.config/vifm/colors/matrix.vifm b/.config/vifm/colors/matrix.vifm new file mode 100644 index 0000000..a5416cc --- /dev/null +++ b/.config/vifm/colors/matrix.vifm @@ -0,0 +1,27 @@ +" Matrix +" by Michael jubalh Vetter +" https://github.com/jubalh/vifm-colors + +highlight clear + +highlight Win cterm=none ctermfg=green ctermbg=black + +highlight TopLine cterm=none ctermfg=green ctermbg=none +highlight TopLineSel cterm=none ctermfg=green ctermbg=none +highlight StatusLine cterm=none ctermfg=green ctermbg=none +highlight Border cterm=none ctermfg=green ctermbg=none + +highlight Selected cterm=bold ctermfg=red ctermbg=default +highlight CurrLine cterm=bold ctermfg=black ctermbg=green + +highlight WildMenu cterm=underline,reverse ctermfg=white ctermbg=black +highlight CmdLine cterm=none ctermfg=white ctermbg=black +highlight ErrorMsg cterm=none ctermfg=red ctermbg=black + +highlight Directory cterm=none ctermfg=blue ctermbg=default +highlight Link cterm=none ctermfg=yellow ctermbg=default +highlight BrokenLink cterm=none ctermfg=red ctermbg=default +highlight Socket cterm=none ctermfg=yellow ctermbg=default +highlight Device cterm=none ctermfg=yellow ctermbg=default +highlight Fifo cterm=none ctermfg=yellow ctermbg=default +highlight Executable cterm=none ctermfg=green ctermbg=default diff --git a/.config/vifm/colors/mc-like.vifm b/.config/vifm/colors/mc-like.vifm new file mode 100644 index 0000000..e72ce03 --- /dev/null +++ b/.config/vifm/colors/mc-like.vifm @@ -0,0 +1,26 @@ +" mimicking midnight commander +" by Petteri Knihti, update by Jose Riha + +highlight clear + +highlight Win cterm=none ctermfg=white ctermbg=blue + +highlight CurrLine cterm=none ctermfg=black ctermbg=cyan +highlight Selected cterm=bold ctermfg=yellow ctermbg=default + +highlight TopLine cterm=none ctermfg=white ctermbg=blue +highlight TopLineSel cterm=none ctermfg=black ctermbg=white +highlight StatusLine cterm=none ctermfg=black ctermbg=cyan +highlight Border cterm=none ctermfg=none ctermbg=blue + +highlight WildMenu cterm=reverse ctermfg=black ctermbg=white +highlight CmdLine cterm=none ctermfg=white ctermbg=black +highlight ErrorMsg cterm=none ctermfg=red ctermbg=black + +highlight Directory cterm=none ctermfg=lightwhite ctermbg=default +highlight Link cterm=none ctermfg=white ctermbg=default +highlight BrokenLink cterm=none ctermfg=lightred ctermbg=default +highlight Socket cterm=none ctermfg=lightmagenta ctermbg=default +highlight Device cterm=none ctermfg=lightmagenta ctermbg=default +highlight Fifo cterm=none ctermfg=black ctermbg=default +highlight Executable cterm=none ctermfg=lightgreen ctermbg=default diff --git a/.config/vifm/colors/molokai.vifm b/.config/vifm/colors/molokai.vifm new file mode 100644 index 0000000..c1db26d --- /dev/null +++ b/.config/vifm/colors/molokai.vifm @@ -0,0 +1,31 @@ +" Molokai +" by Miguel Madrid Mencia +" https://github.com/vifm/vifm-colors + +highlight clear + +highlight Border cterm=none ctermfg=black ctermbg=232 +highlight BrokenLink cterm=bold ctermfg=red ctermbg=default +highlight CmdLine cterm=none ctermfg=white ctermbg=black +highlight CurrLine cterm=bold ctermfg=default ctermbg=208 +highlight Device cterm=bold ctermfg=red ctermbg=default +highlight Directory cterm=bold ctermfg=12 ctermbg=default +highlight ErrorMsg cterm=none ctermfg=red ctermbg=black +highlight Executable cterm=bold ctermfg=green ctermbg=default +highlight Fifo cterm=bold ctermfg=cyan ctermbg=default +highlight Link cterm=bold ctermfg=green ctermbg=default +highlight OtherLine cterm=bold ctermfg=default ctermbg=130 +highlight Selected cterm=bold ctermfg=magenta ctermbg=default +highlight Socket cterm=bold ctermfg=magenta ctermbg=default +highlight StatusLine cterm=none ctermfg=white ctermbg=233 +highlight SuggestBox cterm=none ctermfg=white ctermbg=black +highlight TopLine cterm=none ctermfg=15 ctermbg=233 +highlight TopLineSel cterm=none ctermfg=148 ctermbg=default +highlight WildMenu cterm=underline,reverse ctermfg=white ctermbg=black +highlight Win cterm=none ctermfg=white ctermbg=black + +if $USER == 'root' + highlight Border cterm=none ctermfg=default ctermbg=red + highlight StatusLine cterm=none ctermfg=white ctermbg=red + highlight TopLine cterm=none ctermfg=default ctermbg=red +endif diff --git a/.config/vifm/colors/monochrome.vifm b/.config/vifm/colors/monochrome.vifm new file mode 100644 index 0000000..d9029a5 --- /dev/null +++ b/.config/vifm/colors/monochrome.vifm @@ -0,0 +1,27 @@ +hi clear + +hi Win cterm=none ctermfg=-1 ctermbg=-1 + +hi Directory cterm=none ctermfg=-1 ctermbg=-1 +hi Executable cterm=none ctermfg=-1 ctermbg=-1 +hi Link cterm=none ctermfg=-1 ctermbg=-1 +hi BrokenLink cterm=none ctermfg=-1 ctermbg=-1 +hi HardLink cterm=none ctermfg=-1 ctermbg=-1 +hi Socket cterm=none ctermfg=-1 ctermbg=-1 +hi Device cterm=none ctermfg=-1 ctermbg=-1 +hi Fifo cterm=none ctermfg=-1 ctermbg=-1 + +hi LineNr cterm=none ctermfg=-1 ctermbg=-1 +hi Selected cterm=reverse ctermfg=-1 ctermbg=-1 +hi CurrLine cterm=reverse ctermfg=-1 ctermbg=-1 +hi OtherLine cterm=none ctermfg=-1 ctermbg=-1 +hi TopLine cterm=reverse ctermfg=-1 ctermbg=-1 +hi TopLineSel cterm=reverse ctermfg=-1 ctermbg=-1 +hi StatusLine cterm=reverse ctermfg=-1 ctermbg=-1 +hi TabLine cterm=none ctermfg=-1 ctermbg=-1 +hi TabLineSel cterm=reverse ctermfg=-1 ctermbg=-1 +hi WildMenu cterm=reverse ctermfg=-1 ctermbg=-1 +hi CmdLine cterm=none ctermfg=-1 ctermbg=-1 +hi ErrorMsg cterm=reverse ctermfg=-1 ctermbg=-1 +hi Border cterm=none ctermfg=-1 ctermbg=-1 +hi AuxWin cterm=none ctermfg=-1 ctermbg=-1 diff --git a/.config/vifm/colors/near-default.vifm b/.config/vifm/colors/near-default.vifm new file mode 100644 index 0000000..bd514a6 --- /dev/null +++ b/.config/vifm/colors/near-default.vifm @@ -0,0 +1,89 @@ +" vim: filetype=vifm : + +" xterm color customization: +" +" ! regular (not bold) red +" XTerm*color1: #ff3030 +" ! regular (not bold) green +" XTerm*color2: #70dd70 +" ! regular (not bold) yellow +" XTerm*color3: #f0f000 +" ! regular (not bold) blue +" XTerm*color4: #6060dd +" ! bold red +" XTerm*color9: #ff8080 +" ! bold green +" XTerm*color10: #20dd20 +" ! bold yellow +" XTerm*color11: #e0e000 +" ! bold blue +" XTerm*color12: #a8a8ff + +highlight clear +highlight Win cterm=none ctermfg=white ctermbg=default +highlight BrokenLink cterm=bold ctermfg=red ctermbg=default +highlight Socket cterm=bold ctermfg=magenta ctermbg=default +highlight Device cterm=bold,reverse ctermfg=red ctermbg=default +highlight Fifo cterm=bold,reverse ctermfg=cyan ctermbg=default +highlight CurrLine cterm=reverse,bold ctermfg=default ctermbg=default +highlight TopLine cterm=none ctermfg=black ctermbg=white +highlight TopLineSel cterm=underline ctermfg=black ctermbg=default +highlight StatusLine cterm=none ctermfg=black ctermbg=white +highlight WildMenu cterm=underline,bold,reverse ctermfg=yellow ctermbg=black +highlight CmdLine cterm=bold ctermfg=white ctermbg=default +highlight ErrorMsg cterm=bold ctermfg=white ctermbg=red +highlight Border cterm=none ctermfg=white ctermbg=default +highlight OtherLine cterm=reverse ctermfg=234 ctermbg=white +highlight SuggestBox cterm=bold,reverse ctermfg=cyan ctermbg=default + +" no 256-color palette on Windows +if $OS == 'Windows_NT' + highlight Directory cterm=bold ctermfg=cyan ctermbg=default + highlight Link cterm=bold ctermfg=yellow ctermbg=default + highlight Executable cterm=bold ctermfg=green ctermbg=default + highlight Selected cterm=bold ctermfg=magenta ctermbg=default + highlight CmpMismatch cterm=bold ctermfg=white ctermbg=red + finish +endif + +highlight Directory cterm=bold ctermfg=123 ctermbg=default +highlight Link cterm=bold ctermfg=229 ctermbg=default +highlight Executable cterm=bold ctermfg=119 ctermbg=default +highlight Selected cterm=bold ctermfg=213 ctermbg=default +highlight CmpMismatch cterm=bold ctermfg=white ctermbg=88 + +" software documentation +highlight {COPYRIGHT,COPYING*,BUGS,ChangeLog*,FAQ,INSTALL*,LICEN[CS]E,NEWS, + \README*,AUTHORS,TODO,THANKS} + \ cterm=none ctermfg=187 ctermbg=default +" build system files +highlight {Makefile,Makefile.am,Makefile.in,Makefile.win,*.mak,*.mk, + \CMakeLists.txt} + \ cterm=none ctermfg=121 ctermbg=default +" archives +highlight {*.7z,*.ace,*.arj,*.bz2,*.cpio,*.deb,*.dz,*.gz,*.jar,*.lzh,*.lzma, + \*.rar,*.rpm,*.rz,*.tar,*.taz,*.tb2,*.tbz,*.tbz2,*.tgz,*.tlz,*.trz, + \*.txz,*.tz,*.tz2,*.xz,*.z,*.zip,*.zoo} + \ cterm=none ctermfg=215 ctermbg=default +" documents +highlight {*.djvu,*.htm,*.html,*.shtml,*.css,*.markdown,*.md,*[^0-9].[1-9], + \*.mkd,*.org,*.pandoc,*.pdc,*.pdf,*.epub,*.fb2,*.tex,*.txt,*.xhtml, + \*.xml,*.pptx,*.ppt,*.doc,*.docx,*.xls,*.xls[mx],*.mobi} + \ cterm=none ctermfg=217 ctermbg=default +" media +highlight {*.aac,*.anx,*.asf,*.au,*.avi,*.ts,*.axa,*.axv,*.divx,*.flac,*.m2a, + \*.m2v,*.m4a,*.m4p,*.m4v,*.mid,*.midi,*.mka,*.mkv,*.mov,*.mp3,*.mp4, + \*.flv,*.mp4v,*.mpc,*.mpeg,*.mpg,*.nuv,*.oga,*.ogg,*.ogv,*.ogx,*.pbm, + \*.pgm,*.qt,*.ra,*.ram,*.rm,*.spx,*.vob,*.wav,*.wma,*.wmv,*.xvid, + \*.ac3} + \ cterm=none ctermfg=49 ctermbg=default +" images +highlight {*.bmp,*.gif,*.jpeg,*.jpg,*.ico,*.png,*.ppm,*.svg,*.svgz,*.tga,*.tif, + \*.tiff,*.xbm,*.xcf,*.xpm,*.xspf,*.xwd} + \ cterm=none ctermfg=117 ctermbg=default +" executables +highlight {*.sh,*.bash,*.bat,*.btm,*.cmd,*.com,*.dll,*.exe,*.run,*.msu,*.msi} + \ cterm=none ctermfg=77 ctermbg=default +" source code +highlight {*.patch,*.diff,*.py,*.[ch]pp,*.mk,*.c,*.h,*.[ch]pp,*.cc,*.hs,*.php} + \ cterm=none ctermfg=193 ctermbg=default diff --git a/.config/vifm/colors/nord.vifm b/.config/vifm/colors/nord.vifm new file mode 100644 index 0000000..6239d2e --- /dev/null +++ b/.config/vifm/colors/nord.vifm @@ -0,0 +1,29 @@ +" nord color scheme approximation for vifm + +" Reset all styles first +highlight clear + +highlight Border cterm=none ctermfg=default ctermbg=default +highlight TopLine cterm=none ctermfg=110 ctermbg=236 +highlight TopLineSel cterm=bold ctermfg=110 ctermbg=237 + +highlight Win cterm=none ctermfg=7 ctermbg=default +highlight OtherWin cterm=none ctermfg=7 ctermbg=default +highlight CurrLine cterm=bold,inverse ctermfg=default ctermbg=default +highlight OtherLine cterm=bold ctermfg=default ctermbg=235 +highlight Selected cterm=none ctermfg=7 ctermbg=237 + +highlight JobLine cterm=bold ctermfg=116 ctermbg=238 +highlight StatusLine cterm=bold ctermfg=110 ctermbg=237 +highlight ErrorMsg cterm=bold ctermfg=167 ctermbg=default +highlight WildMenu cterm=bold,inverse ctermfg=110 ctermbg=236 +highlight CmdLine cterm=none ctermfg=7 ctermbg=default + +highlight Executable cterm=bold ctermfg=003 ctermbg=default +highlight Directory cterm=bold ctermfg=110 ctermbg=default +highlight Link cterm=none ctermfg=005 ctermbg=default +highlight BrokenLink cterm=bold ctermfg=007 ctermbg=167 +highlight Device cterm=none,standout ctermfg=110 ctermbg=default +highlight Fifo cterm=none ctermfg=172 ctermbg=default +highlight Socket cterm=bold ctermfg=223 ctermbg=default + diff --git a/.config/vifm/colors/onedark.vifm b/.config/vifm/colors/onedark.vifm new file mode 100644 index 0000000..0a0b58e --- /dev/null +++ b/.config/vifm/colors/onedark.vifm @@ -0,0 +1,29 @@ +" onedark color scheme for vifm + +" Reset all styles first +highlight clear + +highlight Border cterm=none ctermfg=035 ctermbg=default + +highlight TopLine cterm=none ctermfg=002 ctermbg=default +highlight TopLineSel cterm=bold ctermfg=002 ctermbg=015 + +highlight Win cterm=none ctermfg=250 ctermbg=default +highlight Directory cterm=bold ctermfg=004 ctermbg=default +highlight CurrLine cterm=bold,inverse ctermfg=default ctermbg=default +highlight OtherLine cterm=bold ctermfg=default ctermbg=default +highlight Selected cterm=none ctermfg=003 ctermbg=008 + +highlight JobLine cterm=bold ctermfg=250 ctermbg=008 +highlight StatusLine cterm=none ctermfg=250 ctermbg=015 +highlight ErrorMsg cterm=bold ctermfg=001 ctermbg=default +highlight WildMenu cterm=bold ctermfg=015 ctermbg=250 +highlight CmdLine cterm=none ctermfg=007 ctermbg=default + +highlight Executable cterm=bold ctermfg=002 ctermbg=default +highlight Link cterm=bold ctermfg=006 ctermbg=default +highlight BrokenLink cterm=bold ctermfg=001 ctermbg=default +highlight Device cterm=bold,standout ctermfg=000 ctermbg=011 +highlight Fifo cterm=none ctermfg=003 ctermbg=default +highlight Socket cterm=bold ctermfg=005 ctermbg=default + diff --git a/.config/vifm/colors/palenight.vifm b/.config/vifm/colors/palenight.vifm new file mode 100644 index 0000000..af52fb9 --- /dev/null +++ b/.config/vifm/colors/palenight.vifm @@ -0,0 +1,29 @@ +" palenight color scheme for vifm + +" Reset all styles first +highlight clear + +highlight Border cterm=none ctermfg=default ctermbg=default + +highlight TopLine cterm=none ctermfg=002 ctermbg=default +highlight TopLineSel cterm=bold ctermfg=002 ctermbg=default + +highlight Win cterm=none ctermfg=251 ctermbg=default +highlight Directory cterm=bold ctermfg=004 ctermbg=default +highlight CurrLine cterm=bold,inverse ctermfg=default ctermbg=default +highlight OtherLine cterm=bold ctermfg=default ctermbg=default +highlight Selected cterm=none ctermfg=003 ctermbg=008 + +highlight JobLine cterm=bold ctermfg=251 ctermbg=008 +highlight StatusLine cterm=none ctermfg=008 ctermbg=default +highlight ErrorMsg cterm=bold ctermfg=001 ctermbg=default +highlight WildMenu cterm=bold ctermfg=015 ctermbg=008 +highlight CmdLine cterm=none ctermfg=007 ctermbg=default + +highlight Executable cterm=bold ctermfg=002 ctermbg=default +highlight Link cterm=bold ctermfg=006 ctermbg=default +highlight BrokenLink cterm=bold ctermfg=001 ctermbg=default +highlight Device cterm=bold,standout ctermfg=000 ctermbg=011 +highlight Fifo cterm=none ctermfg=003 ctermbg=default +highlight Socket cterm=bold ctermfg=005 ctermbg=default + diff --git a/.config/vifm/colors/paper.vifm b/.config/vifm/colors/paper.vifm new file mode 100644 index 0000000..6a9fc16 --- /dev/null +++ b/.config/vifm/colors/paper.vifm @@ -0,0 +1,57 @@ +" VIFM COLORS +" Paper Theme c/o Samuel Sinclair +" Original palette by @YorickPeterse + +" default = -1 = None, can be used for transparency or default color +" black = 0 +" red = 1 +" green = 2 +" yellow = 3 +" blue = 4 +" magenta = 5 +" cyan = 6 +" white = 7 + +"elseif g:solarized_termcolors != 256 && &t_Co >= 16 +"let s:vmode = "cterm" +"let s:base03 = "8" +"let s:base02 = "0" +"let s:base01 = "10" +"let s:base00 = "11" +"let s:base0 = "12" +"let s:base1 = "14" +"let s:base2 = "7" +"let s:base3 = "15" +"let s:yellow = "3" +"let s:orange = "9" +"let s:red = "1" +"let s:magenta = "5" +"let s:violet = "13" +"let s:blue = "4" +"let s:cyan = "6" +"let s:green = "2" + +highlight clear + +highlight Win cterm=none ctermfg=default ctermbg=default +highlight OtherWin cterm=none ctermfg=default ctermbg=default + +highlight TopLine cterm=none ctermfg=default ctermbg=default +highlight TopLineSel cterm=bold ctermfg=default ctermbg=default +highlight StatusLine cterm=reverse ctermfg=default ctermbg=default +highlight Border cterm=none ctermfg=default ctermbg=default + +highlight Selected cterm=bold ctermfg=default ctermbg=default +highlight CurrLine cterm=reverse ctermfg=default ctermbg=default + +highlight WildMenu cterm=underline,reverse ctermfg=11 ctermbg=white +highlight CmdLine cterm=none ctermfg=default ctermbg=default +highlight ErrorMsg cterm=none ctermfg=red ctermbg=default + +highlight Directory cterm=none ctermfg=blue ctermbg=default +highlight Link cterm=none ctermfg=green ctermbg=default +highlight BrokenLink cterm=none ctermfg=red ctermbg=default +highlight Socket cterm=none ctermfg=red ctermbg=default +highlight Device cterm=none ctermfg=yellow ctermbg=default +highlight Fifo cterm=none ctermfg=cyan ctermbg=default +highlight Executable cterm=none ctermfg=green ctermbg=default diff --git a/.config/vifm/colors/papercolor-dark.vifm b/.config/vifm/colors/papercolor-dark.vifm new file mode 100644 index 0000000..2a15a42 --- /dev/null +++ b/.config/vifm/colors/papercolor-dark.vifm @@ -0,0 +1,29 @@ +highlight clear + +highlight Win cterm=none ctermfg=252 ctermbg=234 +highlight OtherWin cterm=none ctermfg=252 ctermbg=234 +highlight Border cterm=none ctermfg=252 ctermbg=234 +highlight AuxWin cterm=none ctermfg=252 ctermbg=234 + +highlight TopLine cterm=bold ctermfg=71 ctermbg=235 +highlight TopLineSel cterm=bold ctermfg=234 ctermbg=149 + +highlight CmdLine cterm=none ctermfg=252 ctermbg=234 +highlight ErrorMsg cterm=bold ctermfg=160 ctermbg=234 +highlight StatusLine cterm=bold ctermfg=71 ctermbg=235 +highlight JobLine cterm=bold ctermfg=71 ctermbg=235 +highlight SuggestBox cterm=bold ctermfg=71 ctermbg=235 +highlight WildMenu cterm=bold ctermfg=71 ctermbg=235 + +highlight CurrLine cterm=bold,inverse ctermfg=default ctermbg=default +highlight OtherLine cterm=bold ctermfg=default ctermbg=235 +highlight Selected cterm=bold ctermfg=173 ctermbg=235 +highlight LineNr cterm=none ctermfg=244 ctermbg=234 + +highlight Directory cterm=bold ctermfg=74 ctermbg=234 +highlight Link cterm=none ctermfg=173 ctermbg=234 +highlight BrokenLink cterm=none ctermfg=160 ctermbg=234 +highlight Socket cterm=bold ctermfg=140 ctermbg=234 +highlight Device cterm=none ctermfg=125 ctermbg=234 +highlight Fifo cterm=none ctermfg=74 ctermbg=234 +highlight Executable cterm=bold ctermfg=70 ctermbg=234 diff --git a/.config/vifm/colors/papercolor-light.vifm b/.config/vifm/colors/papercolor-light.vifm new file mode 100644 index 0000000..3f3619d --- /dev/null +++ b/.config/vifm/colors/papercolor-light.vifm @@ -0,0 +1,29 @@ +highlight clear + +highlight Win cterm=none ctermfg=234 ctermbg=255 +highlight OtherWin cterm=none ctermfg=238 ctermbg=255 +highlight Border cterm=none ctermfg=238 ctermbg=255 +highlight AuxWin cterm=none ctermfg=238 ctermbg=255 + +highlight TopLine cterm=bold ctermfg=250 ctermbg=24 +highlight TopLineSel cterm=bold ctermfg=255 ctermbg=31 + +highlight CmdLine cterm=none ctermfg=234 ctermbg=255 +highlight ErrorMsg cterm=bold ctermfg=160 ctermbg=255 +highlight StatusLine cterm=bold ctermfg=255 ctermbg=24 +highlight JobLine cterm=bold ctermfg=255 ctermbg=31 +highlight SuggestBox cterm=bold ctermfg=255 ctermbg=31 +highlight WildMenu cterm=bold ctermfg=255 ctermbg=31 + +highlight CurrLine cterm=bold,inverse ctermfg=default ctermbg=default +highlight OtherLine cterm=bold ctermfg=default ctermbg=250 +highlight Selected cterm=bold ctermfg=255 ctermbg=166 +highlight LineNr cterm=none ctermfg=102 ctermbg=255 + +highlight Directory cterm=bold ctermfg=25 ctermbg=255 +highlight Link cterm=none ctermfg=24 ctermbg=255 +highlight BrokenLink cterm=none ctermfg=160 ctermbg=255 +highlight Socket cterm=bold ctermfg=91 ctermbg=255 +highlight Device cterm=none ctermfg=124 ctermbg=255 +highlight Fifo cterm=none ctermfg=31 ctermbg=255 +highlight Executable cterm=bold ctermfg=28 ctermbg=255 diff --git a/.config/vifm/colors/ph.vifm b/.config/vifm/colors/ph.vifm new file mode 100644 index 0000000..1704da5 --- /dev/null +++ b/.config/vifm/colors/ph.vifm @@ -0,0 +1,27 @@ +" ph + +highlight clear + +highlight Win cterm=none ctermfg=248 ctermbg=234 +highlight Directory cterm=bold ctermfg=033 ctermbg=234 +highlight Link cterm=bold ctermfg=yellow ctermbg=234 +highlight BrokenLink cterm=reverse ctermfg=red ctermbg=default +highlight Socket cterm=bold ctermfg=125 ctermbg=default +highlight Device cterm=bold ctermfg=red ctermbg=default +highlight Fifo cterm=bold ctermfg=cyan ctermbg=default +highlight Executable cterm=bold ctermfg=166 ctermbg=default +highlight Selected cterm=bold ctermfg=255 ctermbg=237 +highlight CurrLine cterm=bold ctermfg=default ctermbg=237 +highlight TopLine cterm=bold ctermfg=black ctermbg=235 +highlight TopLineSel cterm=bold ctermfg=black ctermbg=default +highlight StatusLine cterm=bold ctermfg=black ctermbg=235 +highlight WildMenu cterm=underline,reverse ctermfg=white ctermbg=black +highlight CmdLine cterm=none ctermfg=white ctermbg=black +highlight ErrorMsg cterm=none ctermfg=red ctermbg=black +highlight Border cterm=none ctermfg=black ctermbg=234 +highlight JobLine cterm=bold,reverse ctermfg=black ctermbg=white +highlight SuggestBox cterm=bold ctermfg=default ctermbg=default + +if $USER == 'root' + highlight Border ctermbg=red +endif diff --git a/.config/vifm/colors/reicheltd-light.vifm b/.config/vifm/colors/reicheltd-light.vifm new file mode 100644 index 0000000..b74e4de --- /dev/null +++ b/.config/vifm/colors/reicheltd-light.vifm @@ -0,0 +1,28 @@ +" vim: filetype=vifm : + +" Author: Daniel R. (a.k.a. reicheltd) + +highlight clear + +highlight Win cterm=none ctermfg=236 ctermbg=255 +highlight Directory cterm=bold ctermfg=21 ctermbg=255 +highlight Link cterm=bold ctermfg=39 ctermbg=default + +highlight BrokenLink cterm=bold ctermfg=red ctermbg=default +highlight Socket cterm=bold ctermfg=magenta ctermbg=default +highlight Device cterm=bold ctermfg=blue ctermbg=default + +highlight Fifo cterm=bold ctermfg=cyan ctermbg=default +highlight Executable cterm=bold ctermfg=red ctermbg=default +highlight Selected cterm=bold ctermfg=200 ctermbg=default + +highlight CurrLine cterm=bold ctermfg=255 ctermbg=27 +highlight TopLine cterm=none ctermfg=236 ctermbg=255 +highlight TopLineSel cterm=bold ctermfg=236 ctermbg=255 + +highlight StatusLine cterm=bold ctermfg=236 ctermbg=255 +highlight WildMenu cterm=underline,reverse ctermfg=236 ctermbg=255 +highlight CmdLine cterm=none ctermfg=236 ctermbg=255 + +highlight ErrorMsg cterm=none ctermfg=red ctermbg=236 +highlight Border cterm=none ctermfg=236 ctermbg=255 diff --git a/.config/vifm/colors/sandy.vifm b/.config/vifm/colors/sandy.vifm new file mode 100644 index 0000000..1a04a15 --- /dev/null +++ b/.config/vifm/colors/sandy.vifm @@ -0,0 +1,57 @@ +" sandy +" Author: Nando, based on colorscheme snowhite by Jochen Schweizer + +" xterm color customization: +" +" ! regular (not bold) red +" XTerm*color1: #ff3030 +" ! regular (not bold) green +" XTerm*color2: #70dd70 +" ! regular (not bold) yellow +" XTerm*color3: #f0f000 +" ! regular (not bold) blue +" XTerm*color4: #6060dd +" ! bold red +" XTerm*color9: #ff8080 +" ! bold green +" XTerm*color10: #20dd20 +" ! bold yellow +" XTerm*color11: #e0e000 +" ! bold blue +" XTerm*color12: #a8a8ff + + +highlight clear + +highlight OtherLine cterm=reverse ctermfg=234 ctermbg=white +highlight SuggestBox cterm=none ctermfg=16 ctermbg=231 +highlight Win cterm=none ctermfg=16 ctermbg=230 +highlight Directory cterm=bold ctermfg=16 ctermbg=default +highlight Link cterm=none ctermfg=blue ctermbg=default + +highlight BrokenLink cterm=bold ctermfg=196 ctermbg=default +highlight Socket cterm=none ctermfg=16 ctermbg=default +highlight Device cterm=none ctermfg=16 ctermbg=default + +highlight Fifo cterm=none ctermfg=16 ctermbg=default +highlight Executable cterm=none ctermfg=red ctermbg=default +highlight Selected cterm=none ctermfg=208 ctermbg=default + +highlight CurrLine cterm=none ctermfg=white ctermbg=LightCyan +highlight TopLine cterm=none ctermfg=16 ctermbg=255 +highlight TopLineSel cterm=none ctermfg=231 ctermbg=blue + +highlight StatusLine cterm=bold ctermfg=16 ctermbg=255 +highlight WildMenu cterm=underline,reverse ctermfg=16 ctermbg=default +highlight CmdLine cterm=none ctermfg=black ctermbg=white + +highlight ErrorMsg cterm=bold ctermfg=196 ctermbg=default +highlight Border cterm=none ctermfg=16 ctermbg=255 + +highlight AuxWin cterm=none ctermfg=default ctermbg=229 +highlight JobLine cterm=bold ctermfg=black ctermbg=white +highlight CmpMismatch cterm=bold ctermfg=white ctermbg=red + +" executables +highlight {*.sh,*.bash,*.bat,*.btm,*.cmd,*.com,*.dll,*.exe,*.run,*.msu,*.msi} + \ cterm=none ctermfg=red ctermbg=default diff --git a/.config/vifm/colors/semidarkdesert.vifm b/.config/vifm/colors/semidarkdesert.vifm new file mode 100644 index 0000000..5fbccd8 --- /dev/null +++ b/.config/vifm/colors/semidarkdesert.vifm @@ -0,0 +1,23 @@ +" SemiDarkDesert +" by Claus E. Durst, based on 'Desert' by Michael jubalh Vetter +" https://github.com/clausED/vifm-colors + +highlight clear + +highlight Win cterm=none ctermfg=220 ctermbg=233 +highlight Directory cterm=bold ctermfg=77 ctermbg=default +highlight Link cterm=bold ctermfg=239 ctermbg=default +highlight BrokenLink cterm=bold ctermfg=red ctermbg=default +highlight Socket cterm=bold ctermfg=24 ctermbg=default +highlight Device cterm=bold ctermfg=31 ctermbg=default +highlight Fifo cterm=bold ctermfg=31 ctermbg=default +highlight Executable cterm=bold ctermfg=green ctermbg=default +highlight Selected cterm=bold ctermfg=magenta ctermbg=default +highlight CurrLine cterm=bold ctermfg=131 ctermbg=228 +highlight TopLine cterm=none ctermfg=black ctermbg=248 +highlight TopLineSel cterm=bold ctermfg=red ctermbg=default +highlight StatusLine cterm=bold ctermfg=red ctermbg=248 +highlight WildMenu cterm=underline,reverse ctermfg=white ctermbg=black +highlight CmdLine cterm=none ctermfg=217 ctermbg=black +highlight ErrorMsg cterm=none ctermfg=7 ctermbg=1 +highlight Border cterm=none ctermfg=black ctermbg=240 diff --git a/.config/vifm/colors/snowwhite.vifm b/.config/vifm/colors/snowwhite.vifm new file mode 100644 index 0000000..7aded4d --- /dev/null +++ b/.config/vifm/colors/snowwhite.vifm @@ -0,0 +1,31 @@ +" snowwhite +" Author: Jochen Schweizer +" https://github.com/durcheinandr/vifm-colors + +highlight clear + +highlight SuggestBox cterm=none ctermfg=16 ctermbg=231 +highlight Win cterm=none ctermfg=16 ctermbg=231 +highlight Directory cterm=bold ctermfg=16 ctermbg=231 +highlight Link cterm=none ctermfg=16 ctermbg=231 + +highlight BrokenLink cterm=bold ctermfg=196 ctermbg=231 +highlight Socket cterm=none ctermfg=16 ctermbg=231 +highlight Device cterm=none ctermfg=16 ctermbg=231 + +highlight Fifo cterm=none ctermfg=16 ctermbg=231 +highlight Executable cterm=none ctermfg=16 ctermbg=231 +highlight Selected cterm=none ctermfg=208 ctermbg=231 + +highlight CurrLine cterm=none ctermfg=231 ctermbg=208 +highlight TopLine cterm=none ctermfg=16 ctermbg=255 +highlight TopLineSel cterm=none ctermfg=231 ctermbg=16 + +highlight StatusLine cterm=bold ctermfg=16 ctermbg=255 +highlight WildMenu cterm=underline,reverse ctermfg=16 ctermbg=231 +highlight CmdLine cterm=none ctermfg=16 ctermbg=231 + +highlight ErrorMsg cterm=bold ctermfg=196 ctermbg=231 +highlight Border cterm=none ctermfg=16 ctermbg=255 + + diff --git a/.config/vifm/colors/solarized-dark.vifm b/.config/vifm/colors/solarized-dark.vifm new file mode 100644 index 0000000..ac0d610 --- /dev/null +++ b/.config/vifm/colors/solarized-dark.vifm @@ -0,0 +1,44 @@ +" VIFM COLORS +" solarized dark +" based on: https://github.com/istib/dotfiles/blob/master/vifm/vifm-colors + +" Default = -1 = None, can be used for transparency or default color +" Black = 0 +" Red = 1 +" Green = 2 +" Yellow = 3 +" Blue = 4 +" Magenta = 5 +" Cyan = 6 +" White = 7 + +" STYLES +" bold +" underline +" reverse or inverse +" standout +" none + +highlight clear + +highlight Win cterm=none ctermfg=default ctermbg=none + +highlight TopLine cterm=none ctermfg=blue ctermbg=none +highlight TopLineSel cterm=none ctermfg=blue ctermbg=none +highlight StatusLine cterm=none ctermfg=blue ctermbg=none +highlight Border cterm=none ctermfg=blue ctermbg=none + +highlight Selected cterm=bold ctermfg=green ctermbg=none +highlight CurrLine cterm=bold,reverse ctermfg=default ctermbg=default + +highlight WildMenu cterm=underline,reverse ctermfg=white ctermbg=black +highlight CmdLine cterm=none ctermfg=white ctermbg=black +highlight ErrorMsg cterm=none ctermfg=red ctermbg=black + +highlight Directory cterm=bold ctermfg=blue ctermbg=default +highlight Link cterm=none ctermfg=yellow ctermbg=default +highlight BrokenLink cterm=none ctermfg=red ctermbg=default +highlight Socket cterm=none ctermfg=magenta ctermbg=default +highlight Device cterm=none ctermfg=red ctermbg=default +highlight Fifo cterm=none ctermfg=cyan ctermbg=default +highlight Executable cterm=none ctermfg=green ctermbg=default diff --git a/.config/vifm/colors/solarized-light.vifm b/.config/vifm/colors/solarized-light.vifm new file mode 100644 index 0000000..b80fa6a --- /dev/null +++ b/.config/vifm/colors/solarized-light.vifm @@ -0,0 +1,58 @@ +" VIFM COLORS +" solarized light +" based on: https://github.com/altercation/vim-colors-solarized/blob/master/colors/solarized.vim + +" default = -1 = None, can be used for transparency or default color +" black = 0 +" red = 1 +" green = 2 +" yellow = 3 +" blue = 4 +" magenta = 5 +" cyan = 6 +" white = 7 + +"elseif g:solarized_termcolors != 256 && &t_Co >= 16 +"let s:vmode = "cterm" +"let s:base03 = "8" +"let s:base02 = "0" +"let s:base01 = "10" +"let s:base00 = "11" +"let s:base0 = "12" +"let s:base1 = "14" +"let s:base2 = "7" +"let s:base3 = "15" +"let s:yellow = "3" +"let s:orange = "9" +"let s:red = "1" +"let s:magenta = "5" +"let s:violet = "13" +"let s:blue = "4" +"let s:cyan = "6" +"let s:green = "2" + +highlight clear + +highlight Win cterm=none ctermfg=default ctermbg=none +highlight OtherWin cterm=none ctermfg=default ctermbg=white + +highlight TopLine cterm=none ctermfg=blue ctermbg=white +highlight TopLineSel cterm=none,underline ctermfg=blue ctermbg=15 +highlight StatusLine cterm=none ctermfg=12 ctermbg=white +highlight Border cterm=none ctermfg=blue ctermbg=white + +highlight Selected cterm=reverse ctermfg=14 ctermbg=15 +highlight CurrLine cterm=none ctermbg=white + +highlight WildMenu cterm=underline,reverse ctermfg=11 ctermbg=white +highlight CmdLine cterm=none ctermfg=11 ctermbg=15 +highlight ErrorMsg cterm=none ctermfg=red ctermbg=white + +highlight Directory cterm=none ctermfg=blue ctermbg=default +highlight Link cterm=none ctermfg=magenta ctermbg=default +highlight BrokenLink cterm=bold ctermfg=red ctermbg=default +highlight Socket cterm=none ctermfg=violet ctermbg=default +highlight Device cterm=none ctermfg=green ctermbg=default +highlight Fifo cterm=none ctermfg=cyan ctermbg=default +highlight Executable cterm=none ctermfg=red ctermbg=default + diff --git a/.config/vifm/colors/truedark.vifm b/.config/vifm/colors/truedark.vifm new file mode 100644 index 0000000..aa3349f --- /dev/null +++ b/.config/vifm/colors/truedark.vifm @@ -0,0 +1,30 @@ +" A true dark theme. For Vifm. Duh. +" by bratpeki (@GitHub) +" https://github.com/bratpeki/truedark-vifm + +highlight clear + +highlight Border ctermfg=238 ctermbg=248 cterm=none +highlight BrokenLink ctermfg=9 ctermbg=0 cterm=none +highlight CmdLine ctermfg=251 ctermbg=0 +highlight CurrLine ctermfg=none ctermbg=236 cterm=bold +highlight Device ctermfg=202 ctermbg=0 cterm=none +highlight Directory ctermfg=93 ctermbg=0 cterm=none +highlight ErrorMsg ctermfg=9 ctermbg=black cterm=bold +highlight Executable ctermfg=51 ctermbg=0 cterm=none +highlight Fifo ctermfg=51 ctermbg=0 cterm=none +highlight HardLink ctermfg=130 ctermbg=0 cterm=none +highlight LineNr ctermfg=246 ctermbg=0 cterm=bold +highlight Link ctermfg=214 ctermbg=0 cterm=none +highlight OtherLine ctermfg=241 ctermbg=234 cterm=italic +highlight OtherWin ctermfg=241 ctermbg=0 cterm=italic +highlight Selected ctermfg=118 ctermbg=0 cterm=bold +highlight Socket ctermfg=200 ctermbg=0 cterm=none +highlight StatusLine ctermfg=238 ctermbg=248 cterm=none +highlight SuggestBox ctermfg=118 ctermbg=0 cterm=bold +highlight TabLine ctermfg=238 ctermbg=0 cterm=none +highlight TabLineSel ctermfg=254 ctermbg=0 cterm=bold +highlight TopLine ctermfg=238 ctermbg=248 cterm=none +highlight TopLineSel ctermfg=238 ctermbg=248 cterm=none +highlight WildMenu ctermfg=7 ctermbg=0 cterm=none +highlight Win ctermfg=251 ctermbg=0 cterm=none diff --git a/.config/vifm/colors/zenburn.vifm b/.config/vifm/colors/zenburn.vifm new file mode 100644 index 0000000..fccfbbd --- /dev/null +++ b/.config/vifm/colors/zenburn.vifm @@ -0,0 +1,22 @@ +highlight clear + +highlight Win cterm=none ctermfg=245 ctermbg=234 +highlight Directory cterm=bold ctermfg=166 ctermbg=234 +highlight Link cterm=bold ctermfg=yellow ctermbg=234 +highlight BrokenLink cterm=reverse ctermfg=red ctermbg=default + +highlight Socket cterm=bold ctermfg=125 ctermbg=default +highlight Device cterm=bold ctermfg=red ctermbg=default +highlight Fifo cterm=bold ctermfg=cyan ctermbg=default +highlight Executable cterm=bold ctermfg=0x2aa198 ctermbg=default + +highlight Selected cterm=bold ctermfg=125 ctermbg=235 +highlight CurrLine cterm=bold ctermfg=245 ctermbg=235 + +highlight TopLine cterm=none ctermfg=black ctermbg=white +highlight TopLineSel cterm=bold ctermfg=black ctermbg=default +highlight StatusLine cterm=bold ctermfg=black ctermbg=white +highlight WildMenu cterm=underline,reverse ctermfg=white ctermbg=black +highlight CmdLine cterm=none ctermfg=white ctermbg=black +highlight ErrorMsg cterm=none ctermfg=red ctermbg=black +highlight Border cterm=none ctermfg=black ctermbg=white diff --git a/.config/vifm/colors/zenburn_1.vifm b/.config/vifm/colors/zenburn_1.vifm new file mode 100644 index 0000000..86b4338 --- /dev/null +++ b/.config/vifm/colors/zenburn_1.vifm @@ -0,0 +1,29 @@ +" zenburn like color scheme for vifm +" http://kippura.org/zenburnpage/ + +" Reset all styles first +highlight clear + +highlight Border cterm=none ctermfg=235 ctermbg=237 + +highlight TopLine cterm=none ctermfg=108 ctermbg=235 +highlight TopLineSel cterm=bold ctermfg=186 ctermbg=235 + +highlight Win cterm=none ctermfg=188 ctermbg=237 +highlight Directory cterm=none ctermfg=108 ctermbg=237 +highlight CurrLine cterm=none ctermfg=223 ctermbg=235 +highlight OtherLine cterm=none ctermfg=247 ctermbg=237 +highlight Selected cterm=none ctermfg=116 ctermbg=238 + +highlight JobLine cterm=bold ctermfg=116 ctermbg=238 +highlight StatusLine cterm=bold ctermfg=144 ctermbg=236 +highlight ErrorMsg cterm=bold ctermfg=115 ctermbg=237 +highlight WildMenu cterm=bold ctermfg=235 ctermbg=144 +highlight CmdLine cterm=none ctermfg=188 ctermbg=237 + +highlight Executable cterm=none ctermfg=172 ctermbg=237 +highlight Link cterm=none ctermfg=142 ctermbg=237 +highlight BrokenLink cterm=none ctermfg=174 ctermbg=237 +highlight Device cterm=none ctermfg=228 ctermbg=237 +highlight Fifo cterm=none ctermfg=109 ctermbg=237 +highlight Socket cterm=none ctermfg=110 ctermbg=237 diff --git a/.config/vifm/scripts/README b/.config/vifm/scripts/README new file mode 100644 index 0000000..7694952 --- /dev/null +++ b/.config/vifm/scripts/README @@ -0,0 +1,6 @@ +This directory is dedicated for user-supplied scripts/executables. +vifm modifies its PATH environment variable to let user run those +scripts without specifying full path. All subdirectories are added +as well. File in a subdirectory overrules file with the same name +in parent directories. Restart might be needed to recognize files +in newly created or renamed subdirectories. \ No newline at end of file diff --git a/.config/vifm/vifm-help.txt b/.config/vifm/vifm-help.txt new file mode 100644 index 0000000..df216c3 --- /dev/null +++ b/.config/vifm/vifm-help.txt @@ -0,0 +1,6568 @@ +VIFM(1) General Commands Manual VIFM(1) + +NAME + vifm - vi file manager + +SYNOPSIS + vifm [OPTION]... + vifm [OPTION]... path + vifm [OPTION]... path path + +DESCRIPTION + Vifm is an ncurses based file manager with vi like keybindings. If you + use vi, vifm gives you complete keyboard control over your files + without having to learn a new set of commands. + +OPTIONS + vifm starts in the current directory unless it is given a different + directory on the command line or 'vifminfo' option includes "savedirs" + (in which case last visited directories are used as defaults). + + - Read list of files from standard input stream and compose custom + view out of them (see "Custom views" section). Current working + directory is used as a base for relative paths. + + Starts Vifm in the specified path. + + + Starts Vifm in the specified paths. + + Specifying two directories triggers split view even when vifm was in + single-view mode on finishing previous run. To suppress this behaviour + :only command can be put in the vifmrc file. + + When only one path argument is found on command-line, the left/top pane + is automatically set as the current view. + + Paths to files are also allowed in case you want vifm to start with + some archive opened. + + --select + Open parent directory of the given path and select specified + file in it. + + -f Makes vifm instead of opening files write selection to + $VIFM/vimfiles and quit. + + --choose-files |- + Sets output file to write selection into on exit instead of + opening files. "-" means standard output. Use empty value to + disable it. + + --choose-dir |- + Sets output file to write last visited directory into on exit. + "-" means standard output. Use empty value to disable it. + + --delimiter + Sets separator for list of file paths written out by vifm. + Empty value means null character. Default is new line + character. + + --on-choose + Sets command to be executed on selected files instead of opening + them. The command may use any of macros described in "Command + macros" section below. The command is executed once for whole + selection. + + --logging[=] + Log some operational details $VIFM/log. If the optional startup + log path is specified and permissions allow to open it for + writing, then logging of early initialization (before value of + $VIFM is determined) is put there. + + --server-list + List available server names and exit. + + --server-name + Name of target or this instance (sequential numbers are appended + on name conflict). + + --remote + Sends the rest of the command line to another instance of vifm, + --server-name is treated just like any other argument and should + precede --remote on the command line. When there is no server, + quits silently. There is no limit on how many arguments can be + processed. One can combine --remote with -c or + + to execute commands in already running instance of + vifm. See also "Client-Server" section below. + + --remote-expr + passes expression to vifm server and prints result. See also + "Client-Server" section below. + + -c or + + Run command-line mode on startup. Commands in such + arguments are executed in the order they appear in command line. + Commands with spaces or special symbols must be enclosed in + double or single quotes or all special symbols should be escaped + (the exact syntax strongly depends on shell). "+" argument is + equivalent to "$" and thus picks last item of of the view. + + --help, -h + Show a brief command summary and exit vifm. + + --version, -v + Show version information and quit. + + --no-configs + Skip reading vifmrc and vifminfo. + + + See "Startup" section below for the explanations on $VIFM. + +General keys + Ctrl-C or Escape + cancel most operations (see "Cancellation" section below), clear + all selected files. + + Ctrl-L clear and redraw the screen. + +Basic Movement + The basic vi key bindings are used to move through the files and pop-up + windows. + + k, gk, or Ctrl-P + move cursor up one line. + + j, gj or Ctrl-N + move cursor down one line. + + h when 'lsview' is off move up one directory (moves to parent + directory node in tree view), otherwise move left one file. + + l when 'lsview' is off move into a directory or launch a file, + otherwise move right one file. See "Selection" section below. + + gg move to the first line of the file list. + + G move to the last line in the file list. + + gh go up one directory regardless of view representation (regular, + ls-like). Also can be used to leave custom views including tree + view. + + gl or Enter + enter directory or launch a file. See "Selection" section + below. + + H move to the first file in the window. + + M move to the file in the middle of the window. + + L move to the last file in the window. + + Ctrl-F or Page Down + move forward one page. + + Ctrl-B or Page Up + move back one page. + + Ctrl-D jump back one half page. + + Ctrl-U jump forward one half page. + + n% move to the file that is n percent from the top of the list (for + example 25%). + + 0 or ^ move cursor to the first column. See 'lsview' option + description. + + $ move cursor to the last column. See 'lsview' option + description. + + Space switch file lists. + + gt switch to the next tab (wrapping around). + + {n}gt switch to the tab number {n} (wrapping around). + + gT switch to the previous tab (wrapping around). + + {n}gT switch to {n}-th previous tab. + +Movement with Count + Most movement commands also accept a count, 12j would move down 12 + files. + + [count]% + move to percent of the file list. + + [count]j + move down [count] files. + + [count]k + move up [count] files. + + [count]G or [count]gg + move to list position [count]. + + [count]h + go up [count] directories. + +Scrolling panes + zt redraw pane with file in top of list. + + zz redraw pane with file in center of list. + + zb redraw pane with file in bottom of list. + + Ctrl-E scroll pane one line down. + + Ctrl-Y scroll pane one line up. + +Pane manipulation + Second character can be entered with or without Control key. + + Ctrl-W H + move the pane to the far left. + + Ctrl-W J + move the pane to the very bottom. + + Ctrl-W K + move the pane to the very top. + + Ctrl-W L + move the pane to the far right. + + + Ctrl-W h + switch to the left pane. + + Ctrl-W j + switch to the pane below. + + Ctrl-W k + switch to the pane above. + + Ctrl-W l + switch to the right pane. + + + Ctrl-W b + switch to bottom-right window. + + Ctrl-W t + switch to top-left window. + + + Ctrl-W p + switch to previous window. + + Ctrl-W w + switch to other pane. + + + Ctrl-W o + leave only one pane. + + Ctrl-W s + split window horizontally. + + Ctrl-W v + split window vertically. + + + Ctrl-W x + exchange panes. + + Ctrl-W z + quit preview pane or view modes. + + + Ctrl-W - + decrease size of the view by count. + + Ctrl-W + + increase size of the view by count. + + Ctrl-W < + decrease size of the view by count. + + Ctrl-W > + increase size of the view by count. + + + Ctrl-W | + set current view size to count. + + Ctrl-W _ + set current view size to count. + + Ctrl-W = + make size of two views equal. + + For Ctrl-W +, Ctrl-W -, Ctrl-W <, Ctrl-W >, Ctrl-W | and Ctrl-W _ + commands count can be given before and/or after Ctrl-W. The resulting + count is a multiplication of those two. So "2 Ctrl-W 2 -" decreases + window size by 4 lines or columns. + + Ctrl-W | and Ctrl-W _ maximise current view by default. + +Marks + Marks are set the same way as they are in vi. + + You can use these characters for marks [a-z][A-Z][0-9]. + + m[a-z][A-Z][0-9] + set a mark for the file at the current cursor position. + + '[a-z][A-Z][0-9] + navigate to the file set for the mark. + + + There are also several special marks that can't be set manually: + + - ' (single quote) - previously visited directory of the view, thus + hitting '' allows switching between two last locations + + - < - the first file of the last visually selected block + + - > - the last file of the last visually selected block + +Searching + /regular expression pattern + search for files matching regular expression in forward + direction and advance cursor to next match. + + / perform forward search with top item of search pattern history. + + ?regular expression pattern + search for files matching regular expression in backward + direction and advance cursor to previous match. + + ? perform backward search with top item of search pattern history. + + Trailing slash for directories is taken into account, so /\/ searches + for directories and symbolic links to directories. At the moment // + works too, but this can change in the future, so consider escaping the + slash if not typing pattern by hand. + + Matches are automatically selected if 'hlsearch' is set. Enabling + 'incsearch' makes search interactive. 'ignorecase' and 'smartcase' + options affect case sensitivity of search queries as well as local + filter and other things detailed in the description of 'caseoptions'. + + + [count]n + go to the next file matching last search pattern. Takes last + search direction into account. + + [count]N + go to the previous file matching last search pattern. Takes + last search direction into account. + + If 'hlsearch' option is set, hitting n/N to perform search and go to + the first matching item resets current selection in normal mode. It is + not the case if search was already performed on files in the directory, + thus selection is not reset after clearing selection with escape key + and hitting n/N key again. + + Note: vifm uses extended regular expressions for / and ?. + + + [count]f[character] + search forward for file with [character] as first character in + name. Search wraps around the end of the list. + + [count]F[character] + search backward for file with [character] as first character in + name. Search wraps around the end of the list. + + [count]; + find the next match of f or F. + + [count], + find the previous match of f or F. + + Note: f, F, ; and , wrap around list beginning and end when they are + used alone and they don't wrap when they are used as selectors. + +File Filters + There are three basic file filters: + + - dot files filter (does not affect "." and ".." special directories, + whose appearance is controlled by the 'dotdirs' option), see + 'dotfiles' option; + + - permanent filter; + + - local filter (see description of the "=" normal mode command). + + Permanent filter essentially allows defining a group of files names + which are not desirable to be seen by default, like temporary or backup + files, which might be created alongside normal ones. Just like you + don't usually need to see hidden dot files (files starting with a dot). + Local filter on the other hand is for temporary immediate filtering of + file list at hand, to get rid of uninterested files in the view or to + make it possible to use % range in a :command. + + For the purposes of more deterministic editing permanent filter is + split into two parts: + + - one edited explicitly via :filter command; + + - another one which is edited implicitly via zf shortcut. + + Files are tested against both parts and a match counts if at least one + of the parts matched. + + + Each file list has its own copy of each filter. + + Filtered files are not checked in / search or :commands. + + Files and directories are filtered separately. This is done by + appending a slash to a directory name before testing whether it matches + the filter. Examples: + + + " filter directories which names end with '.files' + :filter /^.*\.files\/$/ + + " filter files which names end with '.d' + :filter {*.d} + + " filter files and directories which names end with '.o' + :filter /^.*\.o\/?$/ + + Note: vifm uses extended regular expressions. + + The basic vim folding key bindings are used for managing filters. + + + za toggle visibility of dot files. + + zo show dot files. + + zm hide dot files. + + zf add selected files to permanent filter. + + zO reset permanent filter. + + zR save and reset all filters. + + zr clear local filter. + + zM restore all filters (undoes last zR). + + zd exclude selection or current file from a custom view. Does + nothing for regular view. For tree view excluding directory + excludes that sub-tree. For compare views zd hides group of + adjacent identical files, count can be specified as 1 to exclude + just single file or selected items instead. Files excluded this + way are not counted as filtered out and can't be returned unless + view is reloaded. + + =regular expression pattern + filter out files that don't match regular expression. Whether + view is updated as regular expression is changed depends on the + value of the 'incsearch' option. This kind of filter is + automatically reset when directory is changed. + +Tree-related Keys + While some of the keys make sense outside of tree-view, they are most + useful in trees. + + [z go to first sibling of current entry. + + ]z go to last sibling of current entry. + + zj go to next directory sibling of current entry or do nothing. + + zk go to previous directory sibling of current entry or do nothing. + + zx toggle fold under the cursor or parent entry of the current file + if cursor is not on a directory. + +Other Normal Mode Keys + [count]: + enter command line mode. [count] generates range. + + q: open external editor to prompt for command-line command. See + "Command line editing" section for details. + + q/ open external editor to prompt for search pattern to be searched + in forward direction. See "Command line editing" section for + details. + + q? open external editor to prompt for search pattern to be searched + in backward direction. See "Command line editing" section for + details. + + q= open external editor to prompt for filter pattern. See "Command + line editing" section for details. Unlike other q{x} commands + this one doesn't work in Visual mode. + + [count]!! and [count]! + enter command line mode with entered ! command. [count] + modifies range. + + Ctrl-O go backwards through directory history of current view. + Nonexistent directories are automatically skipped. + + Ctrl-I if 'cpoptions' contains "t" flag, and switch active + pane just like does, otherwise it goes forward through + directory history of current view. Nonexistent directories are + automatically skipped. + + Ctrl-G show a dialog with detailed information about current file. See + "Menus and dialogs" section for controls. + + Shift-Tab + enter view mode (works only after activating view pane with + :view command). + + ga calculate directory size. Uses cached directory sizes when + possible for better performance. As a special case calculating + size of ".." entry results in calculation of size of current + directory. + + gA like ga, but force update. Ignores old values of directory + sizes. + + If file under cursor is selected, each selected item is processed, + otherwise only current file is updated. + + gf find link destination (like l with 'followlinks' off, but also + finds directories). On Windows additionally follows .lnk-files. + + gF Same as gf, but resolves final path of the chain of symbolic + links. + + gr only for MS-Windows + same as l key, but tries to run program with administrative + privileges. + + av go to visual mode into selection amending state preserving + current selection. + + gv go to visual mode restoring last selection. + + [reg]gs + when no register is specified, restore last t selection (similar + to what gv does for visual mode selection). If register is + present, then all files listed in that register and which are + visible in current view are selected. + + gu + make names of selected files lowercase. + + [count]guu and [count]gugu + make names of [count] files starting from the current one + lowercase. Without [count] only current file is affected. + + gU + make names of selected files uppercase. + + [count]gUU and [count]gUgU + make names of [count] files starting from the current one + uppercase. Without [count] only current file is affected. + + e explore file in the current pane. + + i handle file (even if it's an executable and 'runexec' option is + set). + + cw change word is used to rename a file or files. If multiple + files are selected, behaves as :rename command run without + arguments. + + cW change WORD is used to change only name of file (without + extension). + + cl change link target. + + co only for *nix + change file owner. + + cg only for *nix + change file group. + + [count]cp + change file attributes (permission on *nix and properties on + Windows). If [count] is specified, it's treated as numerical + argument for non-recursive `chmod` command (of the form + [0-7]{3,4}). See "Menus and dialogs" section for controls. + + [count]C + clone file [count] times. + + [count]dd or d[count]selector + move selected file or files to trash directory (if 'trash' + option is set, otherwise delete). See "Trash directory" section + below. + + [count]DD or D[count]selector + like dd and d, but omitting trash directory (even when + 'trash' option is set). + + Y, [count]yy or y[count]selector + yank selected files. + + p copy yanked files to the current directory or move the files to + the current directory if they were deleted with dd or :d[elete] + or if the files were yanked from trash directory. See "Trash + directory" section below. + + P move the last yanked files. The advantage of using P instead of + d followed by p is that P moves files only once. This isn't + important in case you're moving files in the same file system + where your home directory is, but using P to move files on some + other file system (or file systems, in case you want to move + files from fs1 to fs2 and your home is on fs3) can save your + time. + + al put symbolic links with absolute paths. + + rl put symbolic links with relative paths. + + t select or unselect (tag) the current file. + + u undo last change. + + Ctrl-R redo last change. + + dp in compare view of "ofboth grouppaths" kind, makes corresponding + entry of the other pane equal to the current one. The semantics + is as follows: + - nothing done for identical entries + - if file is missing in current view, its pair gets removed + - if file is missing or differs in other view, it's replaced + - file pairs are defined by matching relative paths + File removal obeys 'trash' option. When the option is enabled, + the operation can be undone/redone (although results won't be + visible automatically). + Unlike in Vim, this operation is performed on a single line + rather than a set of adjacent changes. + + do same as dp, but applies changes in the opposite direction. + + v or V enter visual mode, clears current selection. + + [count]Ctrl-A + increment first number in file name by [count] (1 by default). + + [count]Ctrl-X + decrement first number in file name by [count] (1 by default). + + ZQ same as :quit!. + + ZZ same as :quit. + + . repeat last command-line command (not normal mode command) of + this run (does nothing right after startup or :restart command). + The command doesn't depend on command-line history and can be + used with completely disabled history. + + ( go to previous group. Groups are defined by primary sorting + key. For name and iname members of each group have same first + letter, for all other sorting keys vifm uses size, uid, ... + + ) go to next group. See ( key description above. + + { speeds up navigation to closest previous entry of the opposite + type by moving to the first file backwards when cursor is on a + directory and to the first directory backwards when cursor is on + a file. This is essentially a special case of ( that is locked + on "dirs". + + } same as {, but in forward direction. + + [c go to previous mismatched entry in directory comparison view or + do nothing. + + ]c go to next mismatched entry in directory comparison view or do + nothing. + + [d go to previous directory entry or do nothing. + + ]d go to next directory entry or do nothing. + + [r same as :siblprev. + + ]r same as :siblnext. + + [R same as :siblprev!. + + ]R same as :siblnext!. + + [s go to previous selected entry or do nothing. + + ]s go to next selected entry or do nothing. + +Using Count + You can use count with commands like yy. + + [count]yy + yank count files starting from current cursor position downward. + + Or you can use count with motions passed to y, d or D. + + d[count]j + delete (count + 1) files starting from current cursor position + upward. + +Registers + vifm supports multiple registers for temporary storing list of yanked + or deleted files. + + Registers should be specified by hitting double quote key followed by a + register name. Count is specified after register name. By default + commands use unnamed register, which has double quote as its name. + + Though all commands accept registers, most of commands ignores them + (for example H or Ctrl-U). Other commands can fill register or append + new files to it. + + Presently vifm supports ", _, a-z and A-Z characters as register names. + + As mentioned above " is unnamed register and has special meaning of the + default register. Every time when you use named registers (a-z and A- + Z) unnamed register is updated to contain same list of files as the + last used register. + + _ is black hole register. It can be used for writing, but its list is + always empty. + + Registers with names from a to z and from A to Z are named ones. + Lowercase registers are cleared before adding new files, while + uppercase aren't and should be used to append new files to the existing + file list of appropriate lowercase register (A for a, B for b, ...). + + Registers can be changed on :empty command if they contain files under + trash directory (see "Trash directory" section below). + + Registers do not contain one file more than once. + + Example: + + "a2yy + + puts names of two files to register a (and to the unnamed register), + + "Ad + + removes one file and append its name to register a (and to the unnamed + register), + + p or "ap or "Ap + + inserts previously yanked and deleted files into current directory. + +Selectors + y, d, D, !, gu and gU commands accept selectors. You can combine them + with any of selectors below to quickly remove or yank several files. + + Most of selectors are like vi motions: j, k, gg, G, H, L, M, %, f, F, + ;, comma, ', ^, 0 and $. But there are some additional ones. + + a all files in current view. + + s selected files. + + S all files except selected. + + Examples: + + - dj - delete file under cursor and one below; + + - d2j - delete file under cursor and two below; + + - y6gg - yank all files from cursor position to 6th file in the list. + + When you pass a count to whole command and its selector they are + multiplied. So: + + - 2d2j - delete file under cursor and four below; + + - 2dj - delete file under cursor and two below; + + - 2y6gg - yank all files from cursor position to 12th file in the + list. + +Visual Mode + Visual mode has two generic operating submodes: + + - plain selection as it is in Vim; + + - selection editing submode. + + Both modes select files in range from cursor position at which visual + mode was entered to current cursor position (let's call it "selection + region"). Each of two borders can be adjusted by swapping them via "o" + or "O" keys and updating cursor position with regular cursor motion + keys. Obviously, once initial cursor position is altered this way, + real start position becomes unavailable. + + Plain Vim-like visual mode starts with cleared selection, which is not + restored on rejecting selection ("Escape", "Ctrl-C", "v", "V"). + Contrary to it, selection editing doesn't clear previously selected + files and restores them after reject. Accepting selection by + performing an operation on selected items (e.g. yanking them via "y") + moves cursor to the top of current selection region (not to the top + most selected file of the view). + + In turn, selection editing supports three types of editing (look at + statusbar to know which one is currently active): + + - append - amend selection by selecting elements in selection region; + + - remove - amend selection by deselecting elements in selection + region; + + - invert - amend selection by inverting selection of elements in + selection region. + + No matter how you activate selection editing it starts in "append". + One can switch type of operation (in the order given above) via "Ctrl- + G" key. + + Almost all normal mode keys work in visual mode, but instead of + accepting selectors they operate on selected items. + + Enter save selection and go back to normal mode not moving cursor. + + av leave visual mode if in amending mode (restores previous + selection), otherwise switch to amending selection mode. + + gv restore previous visual selection. + + v, V, Ctrl-C or Escape + leave visual mode if not in amending mode, otherwise switch to + normal visual selection. + + Ctrl-G switch type of amending by round robin scheme: append -> remove + -> invert. + + : enter command line mode. Selection is cleared on leaving the + mode. + + o switch active selection bound. + + O switch active selection bound. + + gu, u make names of selected files lowercase. + + gU, U make names of selected files uppercase. + + cw same as running :rename command without arguments. + +View Mode + This mode tries to imitate the less program. List of builtin shortcuts + can be found below. Shortcuts can be customized using :qmap, :qnoremap + and :qunmap command-line commands. + + Shift-Tab, Tab, q, Q, ZZ + return to normal mode. + + [count]e, [count]Ctrl-E, [count]j, [count]Ctrl-N, [count]Enter + scroll forward one line (or [count] lines). + + [count]y, [count]Ctrl-Y, [count]k, [count]Ctrl-K, [count]Ctrl-P + scroll backward one line (or [count] lines). + + [count]f, [count]Ctrl-F, [count]Ctrl-V, [count]Space + scroll forward one window (or [count] lines). + + [count]b, [count]Ctrl-B, [count]Alt-V + scroll backward one window (or [count] lines). + + [count]z + scroll forward one window (and set window to [count]). + + [count]w + scroll backward one window (and set window to [count]). + + [count]Alt-Space + scroll forward one window, but don't stop at end-of-file. + + [count]d, [count]Ctrl-D + scroll forward one half-window (and set half-window to [count]). + + [count]u, [count]Ctrl-U + scroll backward one half-window (and set half-window to + [count]). + + r, Ctrl-R, Ctrl-L + repaint screen. + + R reload view preserving scroll position. + + F toggle automatic forwarding. Roughly equivalent to periodic + file reload and scrolling to the bottom. The behaviour is + similar to `tail -F` or F key in less. + + a switch to the next viewer. Does nothing for preview constructed + via %q macro. + + A switch to the previous viewer. Does nothing for preview + constructed via %q macro. + + i toggle raw mode (ignoring of defined viewers). Does nothing for + preview constructed via %q macro. + + [count]/pattern + search forward for ([count]-th) matching line. + + [count]?pattern + search backward for ([count]-th) matching line. + + [count]n + repeat previous search (for [count]-th occurrence). + + [count]N + repeat previous search in reverse direction (for [count]-th + occurrence). + + [count]g, [count]<, [count]Alt-< + scroll to the first line of the file (or line [count]). + + [count]G, [count]>, [count]Alt-> + scroll to the last line of the file (or line [count]). + + [count]p, [count]% + scroll to the beginning of the file (or N percent into file). + + v invoke an editor to edit the current file being viewed. The + command for editing is taken from the 'vicmd' or 'vixcmd' option + value and extended with middle line number prepended by a plus + sign and name of the current file. + + All "Ctrl-W x" keys work the same was as in Normal mode. Active mode + is automatically changed on navigating among windows. When less-like + mode activated on file preview is left using one by "Ctrl-W x" keys, + its state is stored until another file is displayed using preview (it's + possible to leave the mode, hide preview pane, do something else, then + get back to the file and show preview pane again with previously stored + state in it). + +Command line Mode + These keys are available in all submodes of the command line mode: + command, search, prompt and filtering. + + Down, Up, Left, Right, Home, End and Delete are extended keys and they + are not available if vifm is compiled with --disable-extended-keys + option. + + Esc, Ctrl-C + leave command line mode, cancels input. Cancelled input is + saved into appropriate history and can be recalled later. + + Ctrl-M, Enter + execute command and leave command line mode. + + Ctrl-I, Tab + complete command or its argument. + + Shift-Tab + complete in reverse order. + + Ctrl-_ stop completion and return original input. + + Ctrl-B, Left + move cursor to the left. + + Ctrl-F, Right + move cursor to the right. + + Ctrl-A, Home + go to line beginning. + + Ctrl-E, End + go to line end. + + Alt-B go to the beginning of previous word. + + Alt-F go to the end of next word. + + Ctrl-U remove characters from cursor position till the beginning of + line. + + Ctrl-K remove characters from cursor position till the end of line. + + Ctrl-H, Backspace + remove character before the cursor. + + Ctrl-D, Delete + remove character under the cursor. + + Ctrl-W remove characters from cursor position till the beginning of + previous word. + + Alt-D remove characters from cursor position till the beginning of + next word. + + Ctrl-T swap the order of current and previous character and move cursor + forward or, if cursor past the end of line, swap the order of + two last characters in the line. + + Alt-. insert last part of previous command to current cursor position. + Each next call will insert last part of older command. + + Ctrl-G edit command-line content in external editor. See "Command line + editing" section for details. + + Ctrl-N recall more recent command-line from history. + + Ctrl-P recall older command-line from history. + + Up recall more recent command-line from history, that begins as the + current command-line. + + Down recall older command-line from history, that begins as the + current command-line. + + Ctrl-] trigger abbreviation expansion. + +Pasting special values + The shortcuts listed below insert specified values into current cursor + position. Last key of every shortcut references value that it inserts: + - c - [c]urrent file + - d - [d]irectory path + - e - [e]xtension of a file name + - r - [r]oot part of a file name + - t - [t]ail part of directory path + + - a - [a]utomatic filter + - m - [m]anual filter + - = - local filter, which is bound to "=" in normal mode + + Values related to filelist in current pane are available through Ctrl-X + prefix, while values from the other pane have doubled Ctrl-X key as + their prefix (doubled Ctrl-X is presumably easier to type than + uppercase letters; it's still easy to remap the keys to correspond to + names of similar macros). + + Ctrl-X c + name of the current file of the active pane. + + Ctrl-X d + path to the current directory of the active pane. + + Ctrl-X e + extension of the current file of the active pane. + + Ctrl-X r + name root of current file of the active pane. + + Ctrl-X t + the last component of path to the current directory of the + active pane. + + Ctrl-X Ctrl-X c + name of the current file of the inactive pane. + + Ctrl-X Ctrl-X d + path to the current directory of the inactive pane. + + Ctrl-X Ctrl-X e + extension of the current file of the inactive pane. + + Ctrl-X Ctrl-X r + name root of current file of the inactive pane. + + Ctrl-X Ctrl-X t + the last component of path to the current directory of the + inactive pane. + + + Ctrl-X a + value of implicit permanent filter (old name "automatic") of the + active pane. + + Ctrl-X m + value of explicit permanent filter (old name "manual") of the + active pane. + + Ctrl-X = + value of local filter of the active pane. + + + Ctrl-X / + last pattern from search history. + +Command line editing + vifm provides a facility to edit several kinds of data, that is usually + edited in command-line mode, in external editor (using command + specified by 'vicmd' or 'vixcmd' option). This has at least two + advantages over built-in command-line mode: + - one can use full power of Vim to edit text; + - finding and reusing history entries becomes possible. + + The facility is supported by four input submodes of the command-line: + - command; + - forward search; + - backward search; + - file rename (see description of cw and cW normal mode keys). + + Editing command-line using external editor is activated by the Ctrl-G + shortcut. It's also possible to do almost the same from Normal and + Visual modes using q:, q/ and q? commands. + + Temporary file created for the purpose of editing the line has the + following structure: + + 1. First line, which is either empty or contains text already entered + in command-line. + + 2. 2nd and all other lines with history items starting with the most + recent one. Altering this lines in any way won't change history + items stored by vifm. + + After editing application is finished the first line of the file is + taken as the result of operation, when the application returns zero + exit code. If the application returns an error (see :cquit command in + Vim), all the edits made to the file are ignored, but the initial value + of the first line is saved in appropriate history. + +More Mode + This is the mode that appears when status bar content is so big that it + doesn't fit on the screen. One can identify the mode by "-- More --" + message at the bottom. + + The following keys are handled in this mode: + + + Enter, Ctrl-J, j or Down + scroll one line down. + + Backspace, k or Up + scroll one line up. + + + d scroll one page (half of a screen) down. + + u scroll one page (half of a screen) up. + + + Space, f or PageDown + scroll down a screen. + + b or PageUp + scroll up a screen. + + + G scroll to the bottom. + + g scroll to the top. + + + q, Escape or Ctrl-C + quit the mode. + + : switch to command-line mode. + +Commands + Commands are executed with :command_name + + Commented out lines should start with the double quote symbol ("), + which may be preceded by whitespace characters intermixed with colons. + Inline comments can be added at the end of the line after double quote + symbol, only last line of a multi-line command can contain such + comment. Not all commands support inline comments as their syntax + conflicts with names of registers and fields where double quotes are + allowed. + + Most of the commands have two forms: complete and the short one. + Example: + + :noh[lsearch] + + This means the complete command is nohlsearch, and the short one is + noh. + + Most of command-line commands completely reset selection in the current + view. However, there are several exceptions: + + - `:invert s` most likely leaves some files selected; + + - :normal command (when it doesn't leave command-line mode); + + - :if and :else commands don't affect selection on successful + execution. + + '|' can be used to separate commands, so you can give multiple commands + in one line. If you want to use '|' in an argument, precede it with + '\'. + + These commands see '|' as part of their arguments even when it's + escaped: + + :[range]! + :autocmd + :cabbrev + :cmap + :cnoreabbrev + :cnoremap + :command + :dmap + :dnoremap + :filetype + :fileviewer + :filextype + :map + :mmap + :mnoremap + :nmap + :nnoremap + :noremap + :normal + :qmap + :qnoremap + :vmap + :vnoremap + :wincmd + :windo + :winrun + + To be able to use another command after one of these, wrap it with the + :execute command. An example: + + if filetype('.') == 'reg' | execute '!!echo regular file' | endif + + :[count] + + :number + move to the file number. + :12 would move to the 12th file in the list. + :0 move to the top of the list. + :$ move to the bottom of the list. + + :[count]command + The only builtin :[count]command are :[count]d[elete] and + :[count]y[ank]. + + :d3 would delete three files starting at the current file position + moving down. + + :3d would delete one file at the third line in the list. + + :command [args] + + :[range]!program + execute command via shell. Accepts macros. + + :[range]!command & + + same as above, but the command is run in the background using vifm's + means. + + Programs that write to stderr create error dialogs showing errors of + the command. + + Note the space before ampersand symbol, if you omit it, command will be + run in the background using job control of your shell. + + Accepts macros. + + :!! + + :[range]!!command + same as :!, but pauses before returning. + + :!! repeat the last command. + + :alink + + :[range]alink[!?] + create absolute symbolic links to files in directory of inactive + view. With "?" prompts for destination file names in an editor. + "!" forces overwrite. + + :[range]alink[!] path + create absolute symbolic links to files in directory specified + by the path (absolute or relative to directory of inactive + view). + + :[range]alink[!] name1 name2... + create absolute symbolic links of files in directory of other + view giving each next link a corresponding name from the + argument list. + + :apropos + + :apropos keyword... + create a menu of items returned by the apropos command. + Selecting an item in the menu opens corresponding man page. By + default the command relies on the external "apropos" utility, + which can be customized by altering value of the 'aproposprg' + option. See "Menus and dialogs" section for controls. + + :autocmd + + :au[tocmd] {event} {pat} {cmd} + register autocommand for the {event}, which can be: + - DirEnter - triggered after directory is changed + Event name is case insensitive. + + {pat} is a comma-separated list of modified globs patterns, + which can contain tilde or environment variables. All paths use + slash ('/') as directory separator. The pattern can start with + a '!', which negates it. Patterns that do not contain slashes + are matched against the last item of the path only (e.g. "dir" + in "/path/dir"). Literal comma can be entered by doubling it. + Two modifications to globs matching are as follows: + - * - never matches a slash (i.e., can signify single + directory level) + - ** - matches any character (i.e., can match path of + arbitrary depth) + + {cmd} is a :command or several of them separated with '|'. + + Examples of patterns: + - conf.d - matches conf.d directory anywhere + - *.d - matches directories ending with ".d" anywhere + - **.git - matches something.git, but not .git anywhere + - **/.git/** - matches /path/.git/objects, but not /path/.git + - **/.git/**/ - matches /path/.git/ only (because of trailing + slash) + - /etc/* - matches /etc/conf.d/, /etc/X11, but not + /etc/X11/fs + - /etc/**/*.d - matches /etc/conf.d, /etc/X11/conf.d, etc. + - /etc/**/* - matches /etc/ itself and any file below it + - /etc/**/** - matches /etc/ itself and any file below it + + :au[tocmd] [{event}] [{pat}] + list those autocommands that match given event-pattern + combination. + {event} and {pat} can be omitted to list all autocommands. To + list any autocommands for specific pattern one can use * + placeholder in place of {event}. + + :au[tocmd]! [{event}] [{pat}] + remove autocommands that match given event-pattern combination. + Syntax is the same as for listing above. + + :apropos + repeat last :apropos command. + + :bmark + + :bmark tag1 [tag2 [tag3...]] + bookmark current directory with specified tags. + + :bmark! path tag1 [tag2 [tag3...]] + same as :bmark, but allows bookmarking specific path instead of + current directory. This is for use in vifmrc and for + bookmarking files. + + Path can contain macros that expand to single path (%c, %C, %d, + %D) or those that can expand to multiple paths, but contain only + one (%f, %F, %rx). The latter is done for convenience on using + the command interactively. Complex macros that include spaces + (e.g. "%c:gs/ /_") should be escaped. + + :bmarks + + :bmarks + display all bookmarks in a menu. + + :bmarks [tag1 [tag2...]] + display menu of bookmarks that include all of the specified + tags. See "Menus and dialogs" section for controls. + + :bmgo + + :bmgo [tag1 [tag2...]] + when there are more than one match acts exactly like :bmarks, + otherwise navigates to single match immediately (and fails if + there is no match). + + :cabbrev + + :ca[bbrev] + display menu of command-line mode abbreviations. See "Menus and + dialogs" section for controls. + + :ca[bbrev] lhs-prefix + display command-line mode abbreviations which left-hand side + starts with specified prefix. + + :ca[bbrev] lhs rhs + register new or overwrites existing abbreviation for command- + line mode. rhs can contain spaces and any special sequences + accepted in rhs of mappings (see "Mappings" section below). + Abbreviations are expanded non-recursively. + + :cnoreabbrev + + :cnorea[bbrev] + display menu of command-line mode abbreviations. See "Menus and + dialogs" section for controls. + + :cnorea[bbrev] lhs-prefix + display command-line mode abbreviations which left-hand side + starts with specified prefix. + + :cnorea[bbrev] lhs rhs + same as :cabbrev, but mappings in rhs are ignored during + expansion. + + :cd + + :cd or :cd ~ or :cd $HOME + change to home directory. + + :cd - go to the last visited directory. + + :cd ~/dir + change directory to ~/dir. + + :cd /curr/dir /other/dir + change directory of the current pane to /curr/dir and directory + of the other pane to /other/dir. Relative paths are assumed to + be relative to directory of current view. Command won't fail if + one of directories is invalid. All forms of the command accept + macros. + + :cd! /dir + same as :cd /dir /dir. + + :cds + + :cds[!] pattern string + navigate to path obtained by substituting first match in current + path. Arguments can include slashes, but starting first + argument with a separator will activate below form of the + command. Specifying "!" changes directory of both panes. + + Available flags: + + - i - ignore case (the 'ignorecase' and 'smartcase' options are not + used) + + - I - don't ignore case (the 'ignorecase' and 'smartcase' options are + not used) + + :cds[!]/pattern/string/[flags] + same as above, but with :substitute-like syntax. Other + punctuation characters can be used as separators. + + :change + + :c[hange] + show a dialog to alter properties of files. + + :chmod + + :[range]chmod + display file attributes (permission on *nix and properties on + Windows) change dialog. + + :[range]chmod[!] arg... + only for *nix + change permissions for files. See `man 1 chmod` for arg format. + "!" means set permissions recursively. + + :chown + + :[range]chown + only for *nix + same as co key in normal mode. + + :[range]chown [user][:][group] + only for *nix + change owner and/or group of files. Operates on directories + recursively. + + :clone + + :[range]clone[!?] + clones files in current directory. With "?" vifm will open vi + to edit file names. "!" forces overwrite. Macros are expanded. + + :[range]clone[!] path + clones files to directory specified with the path (absolute or + relative to current directory). "!" forces overwrite. Macros + are expanded. + + :[range]clone[!] name1 name2... + clones files in current directory giving each next clone a + corresponding name from the argument list. "!" forces + overwrite. Macros are expanded. + + :colorscheme + + :colo[rscheme]? + print current color scheme name on the status bar. + + :colo[rscheme] + display a menu with a list of available color schemes. You can + choose primary color scheme here. It is used for view if no + directory specific colorscheme fits current path. It's also + used to set border color (except view titles) and colors in + menus and dialogs. See "Menus and dialogs" section for + controls. + + :colo[rscheme] color_scheme_name + change primary color scheme to color_scheme_name. In case of + errors (e.g. some colors are not supported by terminal) either + nothing is changed or color scheme is reset to builtin colors to + ensure that TUI is left in a usable state. + + :colo[rscheme] color_scheme_name directory + associate directory with the color scheme. The directory + argument can be either absolute or relative path when + :colorscheme command is executed from command line, but + mandatory should be an absolute path when the command is + executed in scripts loaded at startup (until vifm is completely + loaded). + + :colo[rscheme] color_scheme_name color_scheme_name... + loads the first color scheme in the order given that exists and + is supported by the terminal. If none matches, current one + remains unchanged. For example: + + " use a separate color scheme for panes which are inside FUSE mounts + execute 'colorscheme in-fuse' &fusehome + + :comclear + + :comc[lear] + remove all user defined commands. + + :command + + :com[mand] + display a menu of user commands. See "Menus and dialogs" + section for controls. + + :com[mand] prefix + display user defined commands that start with the prefix. + + :com[mand] name action[ &] + set or redefine a user command. + Use :com[mand]! to overwrite a previously set command of the + same name. Builtin commands can't be redefined. + User commands must start with an upper or lower case letter. + Command name can't contain special symbols except for a single + trailing '?' or '!'. Numbers are allowed provided that they + don't cause parsing ambiguity (no command name prefix that + precedes a digit can match an existing command unless it has a + digit in the same place), for example: + " good + :command mp3 command + " good + :command mp4 command + :command mp3! command + :command mp4? command + " bad + :command mp command + :command mp44 command + " good + :command mp4c command + + User commands are run in a shell by default (see below for + syntax of other options). To run a command in the background + you must mark it as a background command by adding " &" after + the command's action (e.g., `:com rm rm %f &`). + User commands of all kinds have macros expanded in them. See + "Command macros" section for more information. + + :com[mand] name /pattern + set search pattern. + + :com[mand] name =pattern + set local filter value. + + :com[mand] name filter{:filter args} + set file name filter (see :filter command description). For + example: + + " display only audio files + :command onlyaudio filter/.+.\(mp3|wav|mp3|flac|ogg|m4a|wma|ape\)$/i + " display everything except audio files + :command noaudio filter!/.+.\(mp3|wav|mp3|flac|ogg|m4a|wma|ape\)$/i + + :com[mand] name :commands + set kind of an alias for internal commands (like in a shell). + Passes range given to alias to an aliased command, so running + :%cp after + :command cp :copy %a + equals + :%copy + + :compare + + :compare [byname | bysize | bycontents | listall | listunique | + listdups | ofboth | ofone | groupids | grouppaths | skipempty]... + compare files in one or two views according to the arguments. + The default is "bycontents listall ofboth grouppaths". See + "Compare views" section below for details. Diff structure is + incompatible with alternative representations, so values of + 'lsview' and 'millerview' options are ignored. + + :copen + + :cope[n] + opens menu with contents of the last displayed menu with + navigation to files by default, if any. + + :copy + + :[range]co[py][!?][ &] + copy files to directory of other view. With "?" prompts for + destination file names in an editor. "!" forces overwrite. + + :[range]co[py][!] path[ &] + copy files to directory specified with the path (absolute or + relative to directory of other view). "!" forces overwrite. + + :[range]co[py][!] name1 name2...[ &] + copy files to directory of other view giving each next file a + corresponding name from the argument list. "!" forces + overwrite. + + :cquit + + :cq[uit][!] + same as :quit, but also aborts directory choosing via + --choose-dir (empties output file) and returns non-zero exit + code. + + :cunabbrev + + :cuna[bbrev] lhs + unregister command-line mode abbreviation by its lhs. + + :cuna[bbrev] rhs + unregister command-line mode abbreviation by its rhs, so that + abbreviation could be removed even after expansion. + + :delbmarks + + :delbmarks + remove bookmarks from current directory. + + :delbmarks tag1 [tag2 [tag3...]] + remove set of bookmarks that include all of the specified tags. + + :delbmarks! + remove all bookmarks. + + :delbmarks! path1 [path2 [path3...]] + remove bookmarks of listed paths. + + :delcommand + + :delc[ommand] user_command + remove user defined command named user_command. + + :delete + + :[range]d[elete][!][ &] + delete selected file or files. "!" means complete removal + (omitting trash). + + :[range]d[elete][!] [reg] [count][ &] + delete selected or [count] files to the reg register. "!" means + complete removal (omitting trash). + + :delmarks + + :delm[arks]! + delete all marks. + + :delm[arks] marks ... + delete specified marks, each argument is treated as a set of + marks. + + :delsession + + :delsession + delete specified session if it was stored previously. Deleting + current session doesn't detach it. + + :display + + :di[splay] + display menu with registers content. + + :di[splay] list ... + display the contents of the numbered and named registers that + are mentioned in list (for example "az to display "", "a and "z + content). + + :dirs + + :dirs display directory stack in a menu. See "Menus and dialogs" + section for controls. + + :echo + + :ec[ho] [...] + evaluate each argument as an expression and output them + separated with a space. See help on :let command for a + definition of . + + :edit + + :[range]e[dit] [file...] + open selected or passed file(s) in editor. Macros and + environment variables are expanded. + + :else + + :el[se] + execute commands until next matching :endif if all other + conditions didn't match. See also help on :if and :endif + commands. + + :elseif + + :elsei[f] {expr1} + execute commands until next matching :elseif, :else or :endif if + conditions of previous :if and :elseif branches were evaluated + to zero. See also help on :if and :endif commands. + + :empty + + :empty permanently remove files from all existing non-empty trash + directories (see "Trash directory" section below). Trash + directories which are specified via %r and/or %u also get + deleted completely. Also remove all operations from undolist + that have no sense after :empty and remove all records about + files located inside directories from all registers. Removal is + performed as background task with undetermined amount of work + and can be checked via :jobs menu. + + :endif + + :en[dif] + end conditional block. See also help on :if and :else commands. + + :execute + + :exe[cute] [...] + evaluate each argument as an expression and join results + separated by a space to get a single string which is then + executed as a command-line command. See help on :let command + for a definition of . + + :exit + + :exi[t][!] + same as :quit. + + :file + + :f[ile][ &] + display menu of programs set for the file type of the current + file. " &" forces running associated program in background. + See "Menus and dialogs" section for controls. + + :f[ile] arg[ &] + run associated command that begins with the arg skipping opening + menu. " &" forces running associated program in background. + + :filetype + + :filet[ype] pattern-list [{descr}]def_prog[ &],[{descr}]prog2[ &],... + associate given program list to each of the patterns. + Associated program (command) is used by handlers of l and Enter + keys (and also in the :file menu). If you need to insert comma + into command just double it (",,"). Space followed by an + ampersand as two last characters of a command means running of + the command in the background. Optional description can be + given to each command to ease understanding of what command will + do in the :file menu. Vifm will try the rest of the programs + for an association when the default isn't found. When program + entry doesn't contain any of vifm macros, name of current file + is appended as if program entry ended with %c macro on *nix and + %"c on Windows. On Windows path to executables containing + spaces can (and should be for correct work with such paths) be + double quoted. See "Patterns" section below for pattern + definition and "Selection" section for how selection is handled. + See also "Automatic FUSE mounts" section below. Example for zip + archives and several actions: + + filetype *.zip,*.jar,*.war,*.ear + \ {Mount with fuse-zip} + \ FUSE_MOUNT|fuse-zip %SOURCE_FILE %DESTINATION_DIR, + \ {View contents} + \ zip -sf %c | less, + \ {Extract here} + \ tar -xf %c, + + Note that on OS X when `open` is used to call an app, vifm is + unable to check whether that app is actually available. So if + automatic skipping of programs that aren't there is desirable, + `open` should be replaced with an actual command. + + :filet[ype] filename + list (in menu mode) currently registered patterns that match + specified file name. Same as ":filextype filename". + + :filextype + + :filex[type] pattern-list [{ description }] def_program,program2,... + same as :filetype, but this command is ignored if not running in + X. In X :filextype is equal to :filetype. See "Patterns" + section below for pattern definition and "Selection" section for + how selection is handled. See also "Automatic FUSE mounts" + section below. + + For example, consider the following settings (the order might + seem strange, but it's for the demonstration purpose): + + filetype *.html,*.htm + \ {View in lynx} + \ lynx + filextype *.html,*.htm + \ {Open with dwb} + \ dwb %f %i &, + filetype *.html,*.htm + \ {View in links} + \ links + filextype *.html,*.htm + \ {Open with firefox} + \ firefox %f &, + \ {Open with uzbl} + \ uzbl-browser %f %i &, + + If you're using vifm inside a terminal emulator that is running + in graphical environment (when X is used on *nix; always on + Windows), vifm attempts to run application in this order: + + 1. lynx + 2. dwb + 3. links + 4. firefox + 5. uzbl + + If there is no graphical environment (checked by presence of + non-empty $DISPLAY or $WAYLAND_DISPLAY environment variable on + *nix; never happens on Windows), the list will look like: + + 1. lynx + 2. links + + Just as if all :filextype commands were not there. + + The purpose of such differentiation is to allow comfortable use + of vifm with same settings in desktop environment/through remote + connection (SSH)/in native console. + + Note that on OS X $DISPLAY isn't defined unless you define it, + so :filextype should be used only if you set $DISPLAY in some + way. + + :filext[ype] filename + list (in menu mode) currently registered patterns that match + specified file name. Same as ":filetype filename". + + :fileviewer + + :filev[iewer] pattern-list command1,command2,... + register specified list of commands as viewers for each of the + patterns. Viewer is a command which output is captured and + displayed in one of the panes of vifm after pressing "e" or + running :view command. When the command doesn't contain any of + vifm macros, name of current file is appended as if command + ended with %c macro. Comma escaping and missing commands + processing rules as for :filetype apply to this command. See + "Patterns" section below for pattern definition. Supports Lua + handlers. + + Example for zip archives: + + fileviewer *.zip,*.jar,*.war,*.ear zip -sf %c, echo "No zip to preview:" + + :filev[iewer] filename + list (in menu mode) currently registered patterns that match + specified filename. + + :filter + + :filter[!] {pattern} + filter files matching the pattern out of directory listings. + '!' controls state of filter inversion after updating filter + value (see also 'cpoptions' description). Filter is matched + case sensitively on *nix and case insensitively on Windows. See + "File Filters" and "Patterns" sections. + + Example: + + " filter all files ending in .o from the filelist. + :filter /.o$/ + + + :filter[!] {empty-pattern} + same as above, but use last search pattern as pattern value. + + Example: + + :filter //I + + + :filter + reset filter (set it to an empty string) and show all files. + + :filter! + same as :invert. + + :filter? + show information on local, name and auto filters. + + :find + + :[range]fin[d] pattern + display results of find command in the menu. Searches among + selected files if any. Accepts macros. By default the command + relies on the external "find" utility, which can be customized + by altering value of the 'findprg' option. + + :[range]fin[d] -opt... + same as :find above, but user defines all find arguments. + Searches among selected files if any. + + :[range]fin[d] path -opt... + same as :find above, but user defines all find arguments. + Ignores selection and range. + + :[range]fin[d] + repeat last :find command. + + :finish + + :fini[sh] + stop sourcing a script. Can only be used in a vifm script file. + This is a quick way to skip the rest of the file. + + :goto + + :go[to] + change directory if necessary and put specified path under the + cursor. The path should be existing non-root path. Macros and + environment variables are expanded. + + :grep + + :[range]gr[ep][!] pattern + will show results of grep command in the menu. Add "!" to + request inversion of search (look for lines that do not match + pattern). Searches among selected files if any and no range + given. Ignores binary files by default. By default the command + relies on the external "grep" utility, which can be customized + by altering value of the 'grepprg' option. + + :[range]gr[ep][!] -opt... + same as :grep above, but user defines all grep arguments, which + are not escaped. Searches among selected files if any. + + :[range]gr[ep][!] + repeat last :grep command. "!" of this command inverts "!" in + repeated command. + + :help + + :h[elp] + show the help file. + + :h[elp] argument + is the same as using ':h argument' in vim. Use vifm- + to get help on vifm (tab completion works). This form of the + command doesn't work when 'vimhelp' option is off. + + :hideui + + :hideui + hide interface to show previous commands' output. + + :highlight + + :hi[ghlight] + display information about all highlight groups active at the + moment. + + :hi[ghlight] clear + reset all highlighting to builtin defaults and removed all + filename-specific rules. + + :hi[ghlight] clear ( {pat1,pat2,...} | /regexp/ ) + remove specified rule. + + :hi[ghlight] ( group-name | {pat1,pat2,...} | /regexp/ ) + display information on given highlight group or file name + pattern of color scheme used in the active view. + + :hi[ghlight] ( group-name | {pat1,pat2,...} | /regexp/[iI] ) + cterm=style | ctermfg=color | ctermbg=color | gui=style | guifg=color | + guibg=color + set style (cterm, gui), foreground (ctermfg, guifg) and/or + background (ctermbg, guibg) parameters of highlight group or + file name pattern for color scheme used in the active view. + + All style values as well as color names are case insensitive. + + Available style values (some of them can be combined): + - bold + - underline + - reverse or inverse + - standout + - italic (on unsupported systems becomes reverse) + - combine - add attributes of current group to attributes of the + parent in group hierarchy (see below) instead of replacing them + - none + + Available group-name values: + - Win - color of all windows (views, dialogs, menus) and default color + for their content (e.g. regular files in views) + - AuxWin - color of auxiliary areas of windows + - OtherWin - color of inactive pane + - Border - color of vertical parts of the border + - TabLine - tab line color (for 'tabscope' set to "global") + - TabLineSel - color of the tip of selected tab (regardless of + 'tabscope') + - TopLine - top line color of the other pane + - TopLineSel - top line color of the current pane + - CmdLine - the command line/status bar color + - ErrorMsg - color of error messages in the status bar + - StatusLine - color of the line above the status bar + - JobLine - color of job line that appears above the status line + - WildMenu - color of the wild menu items + - SuggestBox - color of key suggestion box + - CurrLine - line at cursor position in active view + - OtherLine - line at cursor position in inactive view + - OddLine - color of every second entry line in a pane + - LineNr - line number column of views + - Selected - color of selected files + - Directory - color of directories + - Link - color of symbolic links in the views + - BrokenLink - color of broken symbolic links + - HardLink - color of regular files with more than one hard link + - Socket - color of sockets + - Device - color of block and character devices + - Executable - color of executable files + - Fifo - color of fifo pipes + - CmpMismatch - color of mismatched files in side-by-side comparison + by path + - User1..User9 - 9 colors which can be used via %* 'statusline' macro + + Available colors: + - -1 or default or none - default or transparent + - black and lightblack + - red and lightred + - green and lightgreen + - yellow and lightyellow + - blue and lightblue + - magenta and lightmagenta + - cyan and lightcyan + - white and lightwhite + - 0-255 - corresponding colors from 256-color palette (for ctermfg and + ctermbg) + - #rrggbb - direct ("gui", "true", 24-bit) color in hex-notation, each + of the three compontents are in the range 0x00 to 0xff (for guifg and + guibg) + + Light versions of colors are regular colors with bold attribute set + automatically in terminals that have less than 16 colors. So order of + arguments of :highlight command is important and it's better to put + "cterm" in front of others to prevent it from overwriting attributes + set by "ctermfg" or "ctermbg" arguments. + + For convenience of color scheme authors xterm-like names for 256 color + palette is also supported. The mapping is taken from + http://vim.wikia.com/wiki/Xterm256_color_names_for_console_Vim + Duplicated entries were altered by adding an underscore followed by + numerical suffix. + + 0 Black 86 Aquamarine1 172 Orange3 + 1 Red 87 DarkSlateGray2 173 LightSalmon3_2 + 2 Green 88 DarkRed_2 174 LightPink3 + 3 Yellow 89 DeepPink4_2 175 Pink3 + 4 Blue 90 DarkMagenta 176 Plum3 + 5 Magenta 91 DarkMagenta_2 177 Violet + 6 Cyan 92 DarkViolet 178 Gold3_2 + 7 White 93 Purple 179 LightGoldenrod3 + 8 LightBlack 94 Orange4_2 180 Tan + 9 LightRed 95 LightPink4 181 MistyRose3 + 10 LightGreen 96 Plum4 182 Thistle3 + 11 LightYellow 97 MediumPurple3 183 Plum2 + 12 LightBlue 98 MediumPurple3_2 184 Yellow3_2 + 13 LightMagenta 99 SlateBlue1 185 Khaki3 + 14 LightCyan 100 Yellow4 186 LightGoldenrod2 + 15 LightWhite 101 Wheat4 187 LightYellow3 + 16 Grey0 102 Grey53 188 Grey84 + 17 NavyBlue 103 LightSlateGrey 189 LightSteelBlue1 + 18 DarkBlue 104 MediumPurple 190 Yellow2 + 19 Blue3 105 LightSlateBlue 191 DarkOliveGreen1 + 20 Blue3_2 106 Yellow4_2 192 + DarkOliveGreen1_2 + 21 Blue1 107 DarkOliveGreen3 193 DarkSeaGreen1_2 + 22 DarkGreen 108 DarkSeaGreen 194 Honeydew2 + 23 DeepSkyBlue4 109 LightSkyBlue3 195 LightCyan1 + 24 DeepSkyBlue4_2 110 LightSkyBlue3_2 196 Red1 + 25 DeepSkyBlue4_3 111 SkyBlue2 197 DeepPink2 + 26 DodgerBlue3 112 Chartreuse2_2 198 DeepPink1 + 27 DodgerBlue2 113 DarkOliveGreen3_2 199 DeepPink1_2 + 28 Green4 114 PaleGreen3_2 200 Magenta2_2 + 29 SpringGreen4 115 DarkSeaGreen3 201 Magenta1 + 30 Turquoise4 116 DarkSlateGray3 202 OrangeRed1 + 31 DeepSkyBlue3 117 SkyBlue1 203 IndianRed1 + 32 DeepSkyBlue3_2 118 Chartreuse1 204 IndianRed1_2 + 33 DodgerBlue1 119 LightGreen_2 205 HotPink + 34 Green3 120 LightGreen_3 206 HotPink_2 + 35 SpringGreen3 121 PaleGreen1 207 MediumOrchid1_2 + 36 DarkCyan 122 Aquamarine1_2 208 DarkOrange + 37 LightSeaGreen 123 DarkSlateGray1 209 Salmon1 + 38 DeepSkyBlue2 124 Red3 210 LightCoral + 39 DeepSkyBlue1 125 DeepPink4_3 211 PaleVioletRed1 + 40 Green3_2 126 MediumVioletRed 212 Orchid2 + 41 SpringGreen3_2 127 Magenta3 213 Orchid1 + 42 SpringGreen2 128 DarkViolet_2 214 Orange1 + 43 Cyan3 129 Purple_2 215 SandyBrown + 44 DarkTurquoise 130 DarkOrange3 216 LightSalmon1 + 45 Turquoise2 131 IndianRed 217 LightPink1 + 46 Green1 132 HotPink3 218 Pink1 + 47 SpringGreen2_2 133 MediumOrchid3 219 Plum1 + 48 SpringGreen1 134 MediumOrchid 220 Gold1 + 49 MediumSpringGreen 135 MediumPurple2 221 + LightGoldenrod2_2 + 50 Cyan2 136 DarkGoldenrod 222 + LightGoldenrod2_3 + 51 Cyan1 137 LightSalmon3 223 NavajoWhite1 + 52 DarkRed 138 RosyBrown 224 MistyRose1 + 53 DeepPink4 139 Grey63 225 Thistle1 + 54 Purple4 140 MediumPurple2_2 226 Yellow1 + 55 Purple4_2 141 MediumPurple1 227 LightGoldenrod1 + 56 Purple3 142 Gold3 228 Khaki1 + 57 BlueViolet 143 DarkKhaki 229 Wheat1 + 58 Orange4 144 NavajoWhite3 230 Cornsilk1 + 59 Grey37 145 Grey69 231 Grey100 + 60 MediumPurple4 146 LightSteelBlue3 232 Grey3 + 61 SlateBlue3 147 LightSteelBlue 233 Grey7 + 62 SlateBlue3_2 148 Yellow3 234 Grey11 + 63 RoyalBlue1 149 DarkOliveGreen3_3 235 Grey15 + 64 Chartreuse4 150 DarkSeaGreen3_2 236 Grey19 + 65 DarkSeaGreen4 151 DarkSeaGreen2 237 Grey23 + 66 PaleTurquoise4 152 LightCyan3 238 Grey27 + 67 SteelBlue 153 LightSkyBlue1 239 Grey30 + 68 SteelBlue3 154 GreenYellow 240 Grey35 + 69 CornflowerBlue 155 DarkOliveGreen2 241 Grey39 + 70 Chartreuse3 156 PaleGreen1_2 242 Grey42 + 71 DarkSeaGreen4_2 157 DarkSeaGreen2_2 243 Grey46 + 72 CadetBlue 158 DarkSeaGreen1 244 Grey50 + 73 CadetBlue_2 159 PaleTurquoise1 245 Grey54 + 74 SkyBlue3 160 Red3_2 246 Grey58 + 75 SteelBlue1 161 DeepPink3 247 Grey62 + 76 Chartreuse3_2 162 DeepPink3_2 248 Grey66 + 77 PaleGreen3 163 Magenta3_2 249 Grey70 + 78 SeaGreen3 164 Magenta3_3 250 Grey74 + 79 Aquamarine3 165 Magenta2 251 Grey78 + 80 MediumTurquoise 166 DarkOrange3_2 252 Grey82 + 81 SteelBlue1_2 167 IndianRed_2 253 Grey85 + 82 Chartreuse2 168 HotPink3_2 254 Grey89 + 83 SeaGreen2 169 HotPink2 255 Grey93 + 84 SeaGreen1 170 Orchid + 85 SeaGreen1_2 171 MediumOrchid1 + + There are two colors (foreground and background) and only one bold + attribute. Thus single bold attribute affects both colors when + "reverse" attribute is used in vifm run inside terminal emulator. At + the same time linux native console can handle boldness of foreground + and background colors independently, but for consistency with terminal + emulators this is available only implicitly by using light versions of + colors. This behaviour might be changed in the future. + + Although vifm supports 256 colors in a sense they are supported by UI + drawing library, whether you will be able to use all of them highly + depends on your terminal. To set up terminal properly, make sure that + $TERM in the environment you run vifm is set to name of 256-color + terminal (on *nixes it can also be set via X resources), e.g. + xterm-256color. One can find list of available terminal names by + listing /usr/lib/terminfo/. Number of colors supported by terminal + with current settings can be checked via "tput colors" command. + + In order to use 24-bit colors one needs a terminal that supports them, + corresponding terminfo record (probably ends in "-direct" like in + "xterm-direct") and $TERM pointing to it. When vifm detects direct + color support "cterm*" values are ignored for groups which have at + least one of "gui*" values set, otherwise they are used after + translating via a builtin palette. + + Here is the hierarchy of highlight groups, which you need to know for + using transparency: + JobLine + SuggestBox + StatusLine + WildMenu + User1..User9 + Border + CmdLine + ErrorMsg + Win + OtherWin + AuxWin + OddLine + File name specific highlights + Directory + Link + BrokenLink + HardLink + Socket + Device + Fifo + Executable + Selected + CurrLine + LineNr (in active pane) + OtherLine + LineNr (in inactive pane) + TopLine + TopLineSel + TabLineSel (for pane tabs) + User1..User9 + TabLine + TabLineSel + User1..User9 + + "none" means default terminal color for highlight groups at the first + level of the hierarchy and transparency for all others. + + Here file name specific highlights mean those configured via globs ({}) + or regular expressions (//). At most one of them is applied per file + entry, namely the first that matches file name, hence order of + :highlight commands might be important in certain cases. + + :history + + :his[tory] + display a menu with list of visited directories. See "Menus and + dialogs" section for controls. + + :his[tory] x + x can be: + d[ir] or . show directory history. + c[md] or : show command line history. + s[earch] or / show search history and search forward on l + key. + f[search] or / show search history and search forward on l + key. + b[search] or ? show search history and search backward on l + key. + i[nput] or @ show prompt history (e.g. on one file + renaming). + fi[lter] or = show filter history (see description of the "=" + normal mode command). + See "Menus and dialogs" section for controls. + + :histnext + + :histnext + same as . The main use case for this command is to work + around the common pain point of and being the same + ASCII character: one could alter the terminal emulator settings + to emit, for example, the `F1` keycode when Ctrl-I is pressed, + then `:noremap :histnext` in vifm, add "t" flag to the + 'cpoptions', and thus have both and working as + expected. + + :histprev + + :histprev + same as . + + :if + + :if {expr1} + start conditional block. Commands are executed until next + matching :elseif, :else or :endif command if {expr1} evaluates + to non-zero, otherwise they are ignored. See also help on :else + and :endif commands. + + Example: + + if $TERM == 'screen.linux' + highlight CurrLine ctermfg=lightwhite ctermbg=lightblack + elseif $TERM == 'tmux' + highlight CurrLine cterm=reverse ctermfg=black ctermbg=white + else + highlight CurrLine cterm=bold,reverse ctermfg=black ctermbg=white + endif + + :invert + + :invert [f] + invert file name filter. + + :invert? [f] + show current filter state. + + :invert s + invert selection. + + :invert o + invert sorting order of the primary sorting key. + + :invert? o + show sorting order of the primary sorting key. + + :jobs + + :jobs display menu of current backgrounded processes. See "Menus and + dialogs" section for controls. + + :let + + :let $ENV_VAR = + set an environment variable. Warning: setting environment + variable to an empty string on Windows removes it. + + :let $ENV_VAR .= + append value to environment variable. + + :let &[l:|g:]opt = + sets option value. + + :let &[l:|g:]opt .= + append value to string option. + + :let &[l:|g:]opt += + increasing option value, adding sub-values. + + :let &[l:|g:]opt -= + decreasing option value, removing sub-values. + + Where could be a single-quoted string, double-quoted string, an + environment variable, function call or a concatanation of any of them + in any order using the '.' operator. Any whitespace is ignored. + + :locate + + :locate filename + use "locate" command to create a menu of filenames. Selecting a + file from the menu will reload the current file list in vifm to + show the selected file. By default the command relies on the + external "locate" utility (it's assumed that its database is + already built), which can be customized by altering value of the + 'locateprg' option. See "Menus and dialogs" section for + controls. + + :locate + repeat last :locate command. + + :ls + + :ls lists windows of active terminal multiplexer (only when terminal + multiplexer is used). This is achieved by issuing proper + command for active terminal multiplexer, thus the list is not + handled by vifm. + + :lstrash + + :lstrash + display a menu with list of files in trash. Each element of the + list is original path of a deleted file, thus the list can + contain duplicates. See "Menus and dialogs" section for + controls. + + :mark + + :[range]ma[rk][?] x [/full/path] [filename] + Set mark x (a-zA-Z0-9) at /full/path and filename. By default + current directory is being used. If no filename was given and + /full/path is current directory then last file in [range] is + used. Using of macros is allowed. Question mark will stop + command from overwriting existing marks. + + :marks + + :marks create a pop-up menu of marks. See "Menus and dialogs" section + for controls. + + :marks list ... + display the contents of the marks that are mentioned in list. + + :media + + :media only for *nix + display media management menu. See "Menus and dialogs" section + for controls. See also 'mediaprg' option. + + :messages + + :mes[sages] + shows previously given messages (up to 50). + + :mkdir + + :[line]mkdir[!] dir ... + create directories at specified paths. The [line] can be used + to pick node in a tree-view. "!" means make parent directories + as needed. Macros are expanded. + + :move + + :[range]m[ove][!?][ &] + move files to directory of other view. With "?" prompts for + destination file names in an editor. "!" forces overwrite. + + :[range]m[ove][!] path[ &] + move files to directory specified with the path (absolute or + relative to directory of other view). "!" forces overwrite. + + :[range]m[ove][!] name1 name2...[ &] + move files to directory of other view giving each next file a + corresponding name from the argument list. "!" forces + overwrite. + + :nohlsearch + + :noh[lsearch] + clear selection in current pane. + + :normal + + :norm[al][!] commands + execute normal mode commands. If "!" is used, user defined + mappings are ignored. Unfinished last command is aborted as if + or was typed. A ":" should be completed as well. + Commands can't start with a space, so put a count of 1 (one) + before it. + + :only + + :on[ly] + switch to a one window view. + + :plugin + + :plugin load + loads all plugins. To be used in configuration file to manually + load plugins at an earlier point. The plugins can be loaded + only once, additional calls will do nothing. + + :plugin blacklist {plugin} + adds {plugin} to the list of plugins to be ignored. + + :plugin whitelist {plugin} + adds {plugin} to the list of plugins to be loaded while ignoring + all other plugins. This list should normally be empty. + + :plugins + + :plugins + open plugins menu. See "Menus and dialogs" section for + controls. + + :popd + + :popd remove pane directories from stack. + + :pushd + + :pushd[!] /curr/dir [/other/dir] + add pane directories to stack and process arguments like :cd + command. + + :pushd exchange the top two items of the directory stack. + + :put + + :[line]pu[t][!] [reg] [ &] + put files from specified register (" by default) into current + directory. The [line] can be used to pick node in a tree-view. + "!" moves files "!" moves files from their original location + instead of copying them. During this operation no confirmation + dialogs will be shown, all checks are performed beforehand. + + :pwd + + :pw[d] show the present working directory. + + :qall + + :qa[ll][!] + exit vifm (add ! to skip saving changes and checking for active + backgrounded commands). + + :quit + + :q[uit][!] + if there is more than one tab, close the current one, otherwise + exit vifm (add ! to skip saving state and checking for active + backgrounded commands). + + :redraw + + :redr[aw] + redraw the screen immediately. + + :registers + + :reg[isters] + display menu with registers content. + + :reg[isters] list ... + display the contents of the numbered and named registers that + are mentioned in list (for example "az to display "", "a and "z + content). + + :regular + + :regular + + switch to regular view leaving custom view. + :rename + + :[range]rename[!] + rename files by editing their names in an editor. "!" renames + files recursively in subdirectories. See "External Renaming" + section. + + :[range]rename name1 name2... + rename each of selected files to a corresponding name. + + :restart + + :restart + free a lot of things (histories, commands, etc.), reread + vifminfo, vifmrc and session files and run startup commands + passed in the argument list, thus losing all unsaved changes + (e.g. recent history or keys mapped after starting this + instance). Session that wasn't yet stored gets reset. + + While many things get reset, some basic UI state and current + locations are preserved, including tabs. + + :restart full + variation of :restart that makes no attempt to preserve + anything. + + :restore + + :[range]restore + restore file from trash directory, doesn't work outside one of + trash directories. See "Trash directory" section below. + + :rlink + + :[range]rlink[!?] + create relative symbolic links to files in directory of other + view. With "?" prompts for destination file names in an editor. + "!" forces overwrite. + + :[range]rlink[!] path + create relative symbolic links of files in directory specified + with the path (absolute or relative to directory of other view). + "!" forces overwrite. + + :[range]rlink[!] name1 name2... + create relative symbolic links of files in directory of other + view giving each next link a corresponding name from the + argument list. "!" forces overwrite. + + :screen + + :screen + toggle whether to use the terminal multiplexer or not. + A terminal multiplexer uses pseudo terminals to allow multiple + windows to be used in the console or in a single xterm. + Starting vifm from terminal multiplexer with appropriate support + turned on will cause vifm to open a new terminal multiplexer + window for each new file edited or program launched from vifm. + This requires screen version 3.9.9 or newer for the screen -X + argument or tmux (1.8 version or newer is recommended). + + :screen! + enable integration with terminal multiplexers. + + :screen? + display whether integration with terminal multiplexers is + enabled. + + Note: the command is called screen for historical reasons (when tmux + wasn't yet supported) and might be changed in future releases, or get + an alias. + + :select + + :[range]select + select files in the given range (current file if no range is + given). + + :select {pattern} + select files that match specified pattern. Possible {pattern} + forms are described in "Patterns" section below. Trailing slash + for directories is taken into account, so `:select! */ | invert + s` selects only files. + + :select //[iI] + same as item above, but reuses last search pattern. + + :select !{external command} + select files from the list supplied by external command. Files + are matched by full paths, relative paths are converted to + absolute ones beforehand. + + :[range]select! [{pattern}] + same as above, but resets previously selected items before + proceeding. + + :session + + :session? + print name of the current session. + + :session + detach current session without saving it. Resets v:session. + + :session name + create or load and switch to a session with the specified name. + Name can't contain slashes. Session active at the moment is + saved before the switch. Session is also automatically saved + when quiting the application in usual ways. Sets v:session. + + :set + + :se[t] display all options that differ from their default value. + + :se[t] all + display all options. + + :se[t] opt1=val1 opt2='val2' opt3="val3" ... + sets given options. For local options both values are set. + You can use following syntax: + - for all options - option, option? and option& + - for boolean options - nooption, invoption and option! + - for integer options - option=x, option+=x and option-=x + - for string options - option=x and option+=x + - for string list options - option=x, option+=x, option-=x and + option^=x + - for enumeration options - option=x, option+=x and option-=x + - for set options - option=x, option+=x, option-=x and + option^=x + - for charset options - option=x, option+=x, option-=x and + option^=x + + the meaning: + - option - turn option on (for boolean) or print its value (for + all others) + - nooption - turn option off + - invoption - invert option state + - option! - invert option state + - option? - print option value + - option& - reset option to its default value + - option=x or option:x - set option to x + - option+=x - add/append x to option + - option-=x - remove (or subtract) x from option + - option^=x - toggle x presence among values of the option + + Option name can be prepended and appended by any number of + whitespace characters. + + :setglobal + + :setg[lobal] + display all global options that differ from their default value. + + :setg[lobal] all + display all global options. + + :setg[lobal] opt1=val1 opt2='val2' opt3="val3" ... + same as :set, but changes/prints only global options or global + values of local options. Changes to the latter might be not + visible until directory is changed. + + :setlocal + + :setl[ocal] + display all local options that differ from their default value. + + :setl[ocal] all + display all local options. + + :setl[ocal] opt1=val1 opt2='val2' opt3="val3" ... + same as :set, but changes/prints only local values of local + options. + + :shell + + :sh[ell][!] + start a shell in current directory. "!" suppresses spawning + dedicated window of terminal multiplexer for a shell. To make + vifm adaptive to environment it uses $SHELL if it's defined, + otherwise 'shell' value is used. + + + :siblnext + + :[count]siblnext[!] + + change directory to [count]th next sibling directory after + current path using value of global sort option of current pane. + "!" enables wrapping. + + For example, say, you're at /boot and root listing starts like + this: + + bin/ + boot/ + dev/ + ... + + Issuing :siblnext will navigate to /dev. + + + :siblprev + + :[count]siblprev[!] + same as :siblnext, but in the opposite direction. + + :sort + + :sor[t] + display dialog with different sorting methods, where one can + select the primary sorting key. When 'viewcolumns' options is + empty and 'lsview' is off, changing primary sorting key will + also affect view look (in particular the second column of the + view will be changed). See "Menus and dialogs" section for + controls. + + :source + + :so[urce] file + read command-line commands from the file. + + :split + + :sp[lit] + switch to a two window horizontal view. + + :sp[lit]! + toggle horizontal window splitting. + + :sp[lit] path + splits the window horizontally to show both file directories. + Also changes other pane to path (absolute or relative to current + directory of active pane). + + :stop + + :st[op] + suspend vifm (same as pressing Ctrl-Z). Does nothing if this + instance isn't running in a shell. The command exists to allow + mapping to the action of Ctrl-Z. + + :substitute + + :[range]s[ubstitute]/pattern/string/[flags] + for each file in range replace a match of pattern with string. + + String can contain \0...\9 to link to capture groups (\0 - all match, + \1 - first group, etc.). + + Pattern is stored in search history. + + Available flags: + + - i - ignore case (the 'ignorecase' and 'smartcase' options are not + used) + + - I - don't ignore case (the 'ignorecase' and 'smartcase' options are + not used) + + - g - substitute all matches in each file name (each g toggles this) + + :[range]s[ubstitute]/pattern + substitute pattern with an empty string. + + :[range]s[ubstitute]//string/[flags] + use last pattern from search history. + + :[range]s[ubstitute] + repeat previous substitution command. + + :sync + + :sync [relative path] + change the other pane to the current pane directory or to some + path relative to the current directory. Using macros is + allowed. + + :sync! change the other pane to the current pane directory and + synchronize cursor position. If current pane displays custom + list of files, position before entering it is used (current one + might not make any sense). + + + :sync! [location | cursorpos | localopts | filters | filelist | tree | + all]... + change enumerated properties of the other pane to match + corresponding properties of the current pane. Arguments have + the following meanings: + + - location - current directory of the pane; + + - cursorpos - cursor position (doesn't make sense without + "location"); + + - localopts - all local options; + + - filters - all filters; + + - filelist - list of files for custom view (implies + "location"); + + - tree - tree structure for tree view (implies "location"); + + - all - all of the above. + + :tabclose + + :tabc[lose] + close current tab, unless it's the only one open at current + scope. + + :tabmove + + :tabm[ove] [N] + without the argument or with `$` as the argument, current tab + becomes the last tab. With the argument, current tab is moved + after the tab with the specified number. Argument of `0` moves + current tab to the first position. + + :tabname + + :tabname [name] + set, update or reset (when no argument is provided) name of the + current tab. + + :tabnew + + :tabnew [path] + create new tab. Accepts optional path for the new tab. Macros + and environment variables are expanded. + + :tabnext + + :tabn[ext] + switch to the next tab (wrapping around). + + :tabn[ext] {n} + go to the tab number {n}. Tab numeration starts with 1. + + :tabonly + + :tabo[nly] + close all tabs but the current one. Closes pane tabs only at + the active side. + + :tabprevious + + :tabp[revious] + switch to the previous tab (wrapping around). + + :tabp[revious] {n} + go to the {n}-th previous tab. Note that :tabnext handles its + argument differently. + + :touch + + :[line]touch file... + create files at specified paths. Aborts on errors. Doesn't + update time of existing files. The [line] can be used to pick + node in a tree-view. Macros are expanded. + + :tr + + :[range]tr/pattern/string/ + for each file in range transliterate the characters which appear + in pattern to the corresponding character in string. When + string is shorter than pattern, it's padded with its last + character. + + :trashes + + :trashes + lists all valid trash directories in a menu. Only non-empty and + writable trash directories are shown. This is exactly the list + of directories that are cleared when :empty command is executed. + + :trashes? + same as :trashes, but also displays size of each trash + directory. + + :tree + + :tree turn pane into tree view with current directory as its root. + The tree view is implemented on top of a custom view, but is + automatically kept in sync with file system state and considers + all the filters. Thus the structure corresponds to what one + would see on visiting the directories manually. As a special + case for trees built out of custom view file-system tracking + isn't performed. + + To leave tree view go up from its root or use gh at any level of + the tree. Any command that changes directory will also do, in + particular, `:cd ..`. + + Tree structure is incompatible with alternative representations, + so values of 'lsview' and 'millerview' options are ignored. + + The "depth" argument specifies nesting level on which loading of + subdirectories won't happen (they will be folded). Values start + at 1. + + :tree! toggle current view in and out of tree mode. + + :undolist + + :undol[ist] + display list of latest changes. Use "!" to see actual commands. + See "Menus and dialogs" section for controls. + + :unlet + + :unl[et][!] $ENV_VAR1 $ENV_VAR2 ... + remove environment variables. Add ! to omit displaying of + warnings about nonexistent variables. + + :unselect + + :[range]unselect + unselect files in the given range (current file if no range is + given). + + :unselect {pattern} + unselect files that match specified pattern. Possible {pattern} + forms are described in "Patterns" section below. Trailing slash + for directories is taken into account, so `:unselect */` + unselects directories. + + :unselect !{external command} + unselect files from the list supplied by external command. + Files are matched by full paths, relative paths are converted to + absolute ones beforehand. + + :unselect //[iI] + same as item above, but reuses last search pattern. + + :version + + :ve[rsion] + show menu with version information. + + :vifm + + :vifm same as :version. + + :view + + :vie[w] + toggle on and off the quick file view (preview of file's + contents). See also 'quickview' option. + + :vie[w]! + turn on quick file view if it's off. + + :volumes + + :volumes + only for MS-Windows + display menu with volume list. Hitting l (or Enter) key opens + appropriate volume in the current pane. See "Menus and dialogs" + section for controls. + + :vsplit + + :vs[plit] + switch to a two window vertical view. + + :vs[plit]! + toggle window vertical splitting. + + :vs[plit] path + split the window vertically to show both file directories. And + changes other pane to path (absolute or relative to current + directory of active pane). + + :wincmd + + :[count]winc[md] {arg} + same as running Ctrl-W [count] {arg}. + + :windo + + :windo [command...] + execute command for each pane (same as :winrun % command). + + :winrun + + :winrun type [command...] + execute command for pane(s), which is determined by type + argument: + - ^ - top-left pane + - $ - bottom-right pane + - % - all panes + - . - current pane + - , - other pane + + :write + + :w[rite] + write current state to vifminfo and session files (if a session + is active). + + :wq + + :wq[!] same as :quit, but ! disables only the check of backgrounded + commands, while state of the application is always written. + :wqall + + :wqa[ll][!] + same as :qall, but ! disables only the check of backgrounded + commands, while state of the application is always written. + + :xall + + :xa[ll][!] + same as :qall. + + :xit + + :x[it][!] + same as :quit. + + :yank + + :[range]y[ank] [reg] [count] + will yank files to the reg register. + + :map lhs rhs + + :map lhs rhs + map lhs key sequence to rhs in normal and visual modes. + + :map! lhs rhs + map lhs key sequence to rhs in command line mode. + + + :cmap :dmap :mmap :nmap :qmap + :vmap + + :cm[ap] lhs rhs + map lhs to rhs in command line mode. + + :dm[ap] lhs rhs + map lhs to rhs in dialog modes. + + :mm[ap] lhs rhs + map lhs to rhs in menu mode. + + :nm[ap] lhs rhs + map lhs to rhs in normal mode. + + :qm[ap] lhs rhs + map lhs to rhs in view mode. + + :vm[ap] lhs rhs + map lhs to rhs in visual mode. + + + :*map + + :cm[ap] + list all maps in command line mode. + + :dm[ap] + list all maps in dialog modes. + + :mm[ap] + list all maps in menu mode. + + :nm[ap] + list all maps in normal mode. + + :qm[ap] + list all maps in view mode. + + :vm[ap] + list all maps in visual mode. + + :*map beginning + + :cm[ap] beginning + list all maps in command line mode that start with the + beginning. + + :dm[ap] beginning + list all maps in dialog modes that start with the beginning. + + :mm[ap] beginning + list all maps in menu mode that start with the beginning. + + :nm[ap] beginning + list all maps in normal mode that start with the beginning. + + :qm[ap] beginning + list all maps in view mode that start with the beginning. + + :vm[ap] beginning + list all maps in visual mode that start with the beginning. + + :noremap + + :no[remap] lhs rhs + map the key sequence lhs to rhs for normal and visual modes, but + don't expand user mappings in rhs. + + :no[remap]! lhs rhs + map the key sequence lhs to rhs for command line mode, but don't + expand user mappings in rhs. + + :cnoremap :dnoremap :mnoremap :nnoremap :qnoremap + :vnoremap + + :cno[remap] lhs rhs + map the key sequence lhs to rhs for command line mode, but don't + expand user mappings in rhs. + + :dn[oremap] lhs rhs + map the key sequence lhs to rhs for dialog modes, but don't + expand user mappings in rhs. + + :mn[oremap] lhs rhs + map the key sequence lhs to rhs for menu mode, but don't expand + user mappings in rhs. + + :nn[oremap] lhs rhs + map the key sequence lhs to rhs for normal mode, but don't + expand user mappings in rhs. + + :qn[oremap] lhs rhs + map the key sequence lhs to rhs for view mode, but don't expand + user mappings in rhs. + + :vn[oremap] lhs rhs + map the key sequence lhs to rhs for visual mode, but don't + expand user mappings in rhs. + + :unmap + + :unm[ap] lhs + remove user mapping of lhs from normal and visual modes. + + :unm[ap]! lhs + remove user mapping of lhs from command line mode. + + :cunmap :dunmap :munmap :nunmap :qunmap + :vunmap + + :cu[nmap] lhs + remove user mapping of lhs from command line mode. + + :du[nmap] lhs + remove user mapping of lhs from dialog modes. + + :mu[nmap] lhs + remove user mapping of lhs from menu mode. + + :nun[map] lhs + remove user mapping of lhs from normal mode. + + :qun[map] lhs + remove user mapping of lhs from view mode. + + :vu[nmap] lhs + remove user mapping of lhs from visual mode. + +Ranges + The ranges implemented include: + 2,3 - from second to third file in the list (including it) + % - the entire directory. + . - the current position in the filelist. + $ - the end of the filelist. + 't - the mark position t. + + Examples: + + :%delete + + would delete all files in the directory. + + :2,4delete + + would delete the files in the list positions 2 through 4. + + :.,$delete + + would delete the files from the current position to the end of the + filelist. + + :3delete4 + + would delete the files in the list positions 3, 4, 5, 6. + + If a backward range is given :4,2delete - an query message is given and + user can chose what to do next. + + The builtin commands that accept a range are :d[elete] and :y[ank]. + +Command macros + The command macros may be used in user commands. + + %a User arguments. When user arguments contain macros, they are + expanded before preforming substitution of %a. + + %c %"c The current file under the cursor. + + %C %"C The current file under the cursor in the other directory. + + %f %"f All of the selected files, but see "Selection" section below. + + %F %"F All of the selected files in the other directory list, but see + "Selection" section below. + + %b %"b Same as %f %F. + + %d %"d Full path to current directory. + + %D %"D Full path to other file list directory. + + %rx %"rx + Full paths to files in the register {x}. In case of invalid + symbol in place of {x}, it's processed with the rest of the line + and default register is used. + + %m Show command output in a menu. + + %M Same as %m, but l (or Enter) key is handled like for :locate and + :find commands. + + %u Process command output as list of paths and compose custom view + out of it. + + %U Same as %u, but implies less list updates inside vifm, which is + absence of sorting at the moment. + + %Iu Same as %u, but gives up terminal before running external + command. + + %IU Same as %U, but gives up terminal before running external + command. + + %S Show command output in the status bar. + + %q Redirect command output to quick view, which is activated if + disabled. + + %s Execute command in horizontally split window of active terminal + multiplexer (ignored if not running inside one). + + %v Same as %s, but splits vertically. + + %n Forbid use of terminal multiplexer to run the command. + + %i Completely ignore command output. For background jobs this + suppresses error dialogs, while still storing errors internally + for viewing via :jobs menu. + + %Pl Pipe list of files to standard input of a command. + + %Pz Same as %Pz, but separates paths by null ('\0') character. + + %pc Marks the end of the main command and the beginning of the clear + command for graphical preview, which is invoked on closing + preview of a file. + + %pd Marks a preview command as one that directly communicates with + the terminal. Beware that this is for things like sixel which + are self-contained sequences that depend only on current cursor + position, using this with anything else is likely to mangle + terminal state. + + The following dimensions and coordinates are in characters: + + %px x coordinate of top-left corner of preview area. + + %py y coordinate of top-left corner of preview area. + + %pw width of preview area. + + %ph height of preview area. + + + Use %% if you need to put a percent sign in your command. + + Note that %i, %Iu, %IU, %m, %M, %n, %q, %s, %S, %u, %U and %v macros + are mutually exclusive. Only the last one of them on the command will + take effect. + + Note that %Pl and %Pz are mutually exclusive. Only the last one of + them on the command will take effect. + + You can use file name modifiers after %c, %C, %f, %F, %b, %d and %D + macros. Supported modifiers are: + + - :p - full path + + - :u - UNC name of path (e.g. "\\server" in + "\\server\share"), Windows only. Expands to current computer name + for not UNC paths. + + - :~ - relative to the home directory + + - :. - relative to current directory + + - :h - head of the file name + + - :t - tail of the file name + + - :r - root of the file name (without last extension) + + - :e - extension of the file name (last one) + + - :s?pat?sub? - substitute the first occurrence of pat with sub. + You can use any character for '?', but it must not occur in pat or + sub. + + - :gs?pat?sub? - like :s, but substitutes all occurrences of pat with + sub. + + See ':h filename-modifiers' in Vim's documentation for the detailed + description. + + Using %x means expand corresponding macro escaping all characters that + have special meaning. And %"x means using of double quotes and escape + only backslash and double quote characters, which is more useful on + Windows systems. + + Position and quantity (if there is any) of %m, %M, %S or %s macros in + the command is unimportant. All their occurrences are removed from the + resulting command. + + %c and %f macros are expanded to file names only, when %C and %F are + expanded to full paths. %f and %F follow this in %b too. + + :com move mv %f %D + set the :move command to move all of the files selected in the + current directory to the other directory. + + The %a macro is replaced with any arguments given to an alias command. + All arguments are considered optional. + :com lsl !!ls -l %a - set the lsl command to execute ls -l with + or without an argument. + + :lsl + will list the directory contents of the current directory. + + :lsl filename + will list only the given filename. + + The macros can also be used in directly executing commands. ":!mv %f + %D" would move the current directory selected files to the other + directory. + + Appending & to the end of a command causes it to be executed in the + background. Typically you want to run two kinds of external commands + in the background: + + - GUI applications that doesn't fork thus block vifm (:!sxiv %f &); + + - console tools that do not work with terminal (:!mv %f %D &). + + You don't want to run terminal commands, which require terminal input + or output something in background because they will mess up vifm's TUI. + Anyway, if you did run such a command, you can use Ctrl-L key to update + vifm's TUI. + + Rewriting the example command with macros given above with + backgrounding: + + %m, %M, %s, %S, %u and %U macros cannot be combined with background + mark (" &") as it doesn't make much sense. + +Command backgrounding + Copy and move operation can take a lot of time to proceed. That's why + vifm supports backgrounding of this two operations. To run :copy, + :move or :delete command in the background just add " &" at the end of + a command. + + For each background operation a new thread is created. Job + cancellation can be requested in the :jobs menu via dd shortcut. + + You can see if command is still running in the :jobs menu. + Backgrounded commands have progress instead of process id at the line + beginning. + + Background operations cannot be undone. + +Cancellation + Note that cancellation works somewhat different on Windows platform due + to different mechanism of break signal propagation. One also might + need to use Ctrl-Break shortcut instead of Ctrl-C. + + There are two types of operations that can be cancelled: + + - file system operations; + + - mounting with FUSE (but not unmounting as it can cause loss of + data); + + - calls of external applications. + + Note that vifm never terminates applications, it sends SIGINT signal + and lets the application quit normally. + + When one of set of operations is cancelled (e.g. copying of 5th file of + 10 files), further operations are cancelled too. In this case undo + history will contain only actually performed operations. + + Cancelled operations are indicated by "(cancelled)" suffix appended to + information message on statusbar. + + File system operations + + Currently the following commands can be cancelled: :alink, :chmod, + :chown, :clone, :copy, :delete, :mkdir, :move, :restore, :rlink, + :touch. File putting (on p/P key) can be cancelled as well. It's not + hard to see that these are mainly long-running operations. + + Cancelling commands when they are repeated for undo/redo operations is + allowed for convenience, but is not recommended as further undo/redo + operations might get blocked by side-effects of partially cancelled + group of operations. + + These commands can't be cancelled: :empty, :rename, :substitute, :tr. + + Mounting with FUSE + + It's not considered to be an error, so only notification on the status + bar is shown. + + External application calls + + Each of this operations can be cancelled: :apropos, :find, :grep, + :locate. + +Selection + If there is a selection, it's stashed before proceeding further unless + file under the cursor is part of that selection. This means that when + macros are expanded for :filetype or :filextype programs, `%f` and `%F` + become equivalent to `%c` and `%C` respectively if current file is not + selected. So you run selection by running one of selected files, + otherwise you're running a single file even if there are other selected + entries. + + When running a selection it must not include broken symbolic links, has + to be consistent and set of file handlers must be compatible. + Consistency means that selection contains either only directories + (including links to them) or only files, but not their mix. + + Compatibility is a more sophisticated check, but it's defined in a + natural way so that you get what you'd expect. The following + properties of selection are taken into account while checking it for + compatibility and deciding how to handle it: + + + 1. If there any files for which handler isn't defined, then all files + are opened using 'vicmd' or 'vixcmd'. + + + 2. If all handlers match the following criteria: + - backgrounded + - include `%c` and/or `%C` + - include neither `%f` nor `%F` + then each file is executed independently of the rest. + + + 3. If all handlers are equal, the common handler is executed. This + handler might ignore selection and process only file under the + cursor. + + + 4. Otherwise, an error is reported, because handlers differ and they + don't support parallel execution. + +Patterns + :highlight, :filetype, :filextype, :fileviewer commands and 'classify' + option support globs, regular expressions and mime types to match file + names or their paths. + + There are six possible ways to write a single pattern: + + 1. [!]{comma-separated-name-globs} + + 2. [!]{{comma-separated-path-globs}} + + 3. [!]/name-regular-expression/[iI] + + 4. [!]//path-regular-expression//[iI] + + 5. [!] + + 6. undecorated-pattern + + First five forms can include leading exclamation mark that negates + pattern matching. + + The last form is implicitly refers to one of others. :highlight does + not accept undecorated form, while :filetype, :filextype, :fileviewer, + :select, :unselect and 'classify' treat it as list of name globs. + + Path patterns receive absolute path of the file that includes its name + component as well. + + To combine several patterns (AND them), make sure you're using one of + the first five forms and write patterns one after another, like this: + {*.vifm} + Mind that if you make a mistake the whole string will be treated as the + sixth form. + + :filetype, :filextype and :fileviewer commands accept comma-separated + list of patterns instead of a single pattern, thus effectively handling + OR operation on them: + {*.vifm},{*.pdf} + Forms that accept comma-separated lists of patterns also process them + as lists of alternatives. + + Patterns with regular expressions + + Regular expression patterns are case insensitive by default, see + description of commands, which might override default behaviour. + + Flags of regular expressions mean the following: + - "i" makes filter case insensitive; + - "I" makes filter case sensitive. They can be repeated multiple + times, but the later one takes precedence (e.g. "iiiI" is equivalent + to "I" and "IiIi" is the same as "i"). + + There are no implicit `^` or `$`, so make sure to specify them + explicitly if the pattern should match the whole name or path. + + Patterns with globs + + "Globs" section below provides short overview of globs and some + important points that one needs to know about them. + + Patterns with mime-types + + Mime type matching is essentially globs matching applied to mime type + of a file instead of its name/path. Note: mime types aren't detected + on Windows. + + Examples + + Associate `evince` to PDF-files only inside `/home/user/downloads/` + directory (excluding its subdirectories): + + :filextype //^/home/user/downloads/[^/]*.pdf$// evince %f + + +Globs + Globs are always case insensitive as it makes sense in general case. + + `*`, `?`, `[` and `]` are treated as special symbols in the pattern. + E.g. + + :filetype * less %c + + matches all files. One can use character classes for escaping, so + + :filetype [*] less %c + + matches only one file name, the one which contains only asterisk + symbol. + + `*` means any number of any characters (possibly an empty substring), + with one exception: asterisk at the pattern beginning doesn't match dot + in the first position. E.g. + + :fileviewer *.zip,*.jar zip -sf %c + + associates using of `zip` program to preview all files with `zip` or + `jar` extensions as listing of their content, but `.file.zip` won't be + matched. + + `?` means any character at this position. E.g. + + :fileviewer ?.out file %c + + calls `file` tool for all files which have exactly one character before + their extension (e.g. a.out, b.out). + + Square brackets designate character class, which means that whole + character class matches against any of characters listed in it. For + example + + :fileviewer *.[ch] highlight -O xterm256 -s dante --syntax c %c + + makes vifm call `highlight` program to colorize source and header files + in C language for a 256-color terminal. Equal command would be + + :fileviewer *.c,*.h highlight -O xterm256 -s dante --syntax c %c + + + Inside square brackets `^` or `!` can be used for symbol class + negotiation and the `-` symbol to set a range. `^` and `!` should + appear right after the opening square bracket. For example + + :filetype *.[!d]/ inspect_dir + + associates `inspect_dir` as additional handler for all directories that + have one character extension unless it's "d" letter. And + + :filetype [0-9].jpg sxiv + + associates `sxiv` picture viewer only for JPEG-files that contain + single digit in their name. + + If you need to include literal comma, which is normally separates + multiple globs, double it. + +:set options + Local options + These are kind of options that are local to a specific view. So + you can set ascending sorting order for left pane and descending + order for right pane. + + In addition to being local to views, each such option also has + two values: + + - local to current directory (value associated with current + location); + + - global to current directory (value associated with the + pane). + + The idea is that current directory can be made a temporary + exception to regular configuration of the view, until directory + change. Use :setlocal for that. :setglobal changes view value + not affecting settings until directory change. :set applies + changes immediately to all values. + + + 'aproposprg' + type: string + default: "apropos %a" + Specifies format for an external command to be invoked by the + :apropos command. The format supports expanding of macros, + specific for a particular *prg option, and %% sequence for + inserting percent sign literally. This option should include + the %a macro to specify placement of arguments passed to the + :apropos command. If the macro is not used, it will be + implicitly added after a space to the value of this option. + + 'autochpos' + type: boolean + default: true + When disabled vifm will set cursor to the first line in the view + after :cd and :pushd commands instead of saved cursor position. + Disabling this will also make vifm clear information about + cursor position in the view history on :cd and :pushd commands + (and on startup if 'autochpos' is disabled in the vifmrc). l + key in the ":history ." and ":trashes" menus are treated like + :cd command. This option also affects marks so that navigating + to a mark doesn't restore cursor position. + + When this option is enabled, more fine grained control over + cursor position is available via 'histcursor' option. + + 'columns' 'co' + type: integer + default: terminal width on startup + Terminal width in characters. + + 'caseoptions' + type: charset + default: "" + This option gives additional control over case sensitivity by + allowing overriding default behaviour to either always be case + sensitive or always be case insensitive. Possible values form + pairs of lower and upper case letters that configure specific + aspect of behaviour: + p - always ignore case of paths during completion. + P - always match case of paths during completion. + g - always ignore case of characters for f/F/;/,. + G - always match case of characters for f/F/;/,. + + At most one item of each pair takes affect, if both or more are + present, only the last one matters. When none of pair's + elements are present, the behaviour is default (depends on + operating system for path completion and on values of + 'ignorecase' and 'smartcase' options for file navigation). + + 'cdpath' 'cd' + type: string list + default: value of $CDPATH with commas instead of colons + Specifies locations to check on changing directory with relative + path that doesn't start with "./" or "../". When non-empty, + current directory is examined after directories listed in the + option. + + This option doesn't affect completion of :cd command. + + Example: + + set cdpath=~ + + This way ":cd bin" will switch to "~/bin" even if directory + named "bin" exists in current directory, while ":cd ./bin" + command will ignore value of 'cdpath'. + + 'chaselinks' + type: boolean + default: false + When enabled path of view is always resolved to real path (with + all symbolic links expanded). + + 'classify' + type: string list + default: ":dir:/" + Specifies file name prefixes and suffixes depending on file type + or name. The format is either of: + - [{prefix}]:{filetype}:[{suffix}] + - [{prefix}]::{pattern}::[{suffix}] + Possible {pattern} forms are described in "Patterns" section + above. + + Priority rules: + - file name patterns have priority over type patterns + - file name patterns are matched in left-to-right order of + their appearance in this option + + Either {prefix} or {suffix} or both can be omitted (which is the + default for all unspecified file types), this means empty + {prefix} and/or {suffix}. {prefix} and {suffix} should consist + of at most eight characters. Elements are separated by commas. + Neither prefixes nor suffixes are part of file names, so they + don't affect commands which operate on file names in any way. + Comma (',') character can be inserted by doubling it. List of + file type names can be found in the description of filetype() + function. + + 'confirm' 'cf' + type: set + default: delete,permdelete + Defines which operations require confirmation: + - delete - moving files to trash (on d or :delete); + - permdelete - permanent deletion of files (on D or :delete! + command or on undo/redo operation). + + 'cpoptions' 'cpo' + type: charset + default: "fst" + Contains a sequence of single-character flags. Each flag + enables behaviour of older versions of vifm. Flags: + - f - when included, running :filter command results in not + inverted (matching files are filtered out) and :filter! in + inverted (matching files are left) filter, when omitted, meaning + of the exclamation mark changes to the opposite; + - s - when included, yy, dd and DD normal mode commands act on + selection, otherwise they operate on current file only; + - t - when included, (thus ) behave as and + switches active pane, otherwise and go forward in + the view history. It's possible to make both and to + work as expected by setting up the terminal to emit a custom + sequence when is pressed; see :histnext for details. + + 'cvoptions' + type: set + default: + Specifies whether entering/leaving custom views triggers events + that normally happen on entering/leaving directories: + - autocmds - trigger autocommands on entering/leaving custom + views; + - localopts - reset local options on entering/leaving custom + views; + - localfilter - reset local filter on entering/leaving custom + views. + + 'deleteprg' + type: string + default: "" + Specifies program to run on files that are permanently removed. + When empty, files are removed as usual, otherwise this command + is invoked on each file by appending its name. If the command + doesn't remove files, they will remain on the file system. + + 'dirsize' + type: enumeration + default: size + Controls how size of directories is displayed in file views. + The following values are possible: + - size - size of directory (i.e., size used to store list of + files) + - nitems - number of entries in the directory (excluding . and + ..) + + Size obtained via ga/gA overwrites this setting so seeing count + of files and occasionally size of directories is possible. + + 'dotdirs' + type: set + default: nonrootparent,treeleafsparent + Controls displaying of dot directories. The following values + are possible: + - rootparent - show "../" in root directory of file system + - nonrootparent - show "../" in non-root directories of file + system + - treeleafsparent - show "../" in empty directories of tree + view + + Note that empty directories always contain "../" entry + regardless of value of this option. "../" disappears at the + moment at least one file is created. + + 'dotfiles' + type: boolean + default: false + Whether dot files are shown in the view. Can be controlled with + z* bindings. + + 'fastrun' + type: boolean + default: false + With this option turned on you can run partially entered + commands with unambiguous beginning using :! (e.g. :!Te instead + of :!Terminal or :!Te). + + 'fillchars' 'fcs' + type: string list + default: "" + Sets characters used to fill borders. + + item default used for + vborder:c ' ' left, middle and right vertical + borders + + If value is omitted, its default value is used. Example: + + set fillchars=vborder:. + + 'findprg' + type: string + default: "find %s %a -print , -type d \( ! -readable -o ! + -executable \) -prune" + Specifies format for an external command to be invoked by the + :find command. The format supports expansion of macros specific + for this particular option and %% sequence for inserting percent + sign literally. The macros are: + + macro value/meaning + %s literal arguments of :find or + list of paths to search in + + %A empty or + literal arguments of :find + %a empty or + literal arguments of :find or + predicate followed by escaped arguments of :find + %p empty or + literal arguments of :find or + escaped arguments (parameters) of :find + + %u redirect output to custom view instead of showing a + menu + %U redirect output to unsorted custom view instead of + showing a menu + + Predicate in %a is "-name" on *nix and "-iname" on Windows. + + If both %u and %U are specified, %U is chosen. + + Some macros can be added implicitly: + - if %s isn't present, it's appended + - if neither of %a, %A and %p is present, %a is appended + - if neither of %s, %a, %A and %p is present, %s and %a are + appended in this order + + The macros slightly change their meaning depending on format of + :find's arguments: + - if the first argument points to an existing directory, %s is + assigned all arguments while %a, %A and %p are left empty + - otherwise: + - %s is assigned a dot (".") meaning current directory or + list of selected file names, if any + - %a, %A and %p are assigned literal arguments when first + argument starts with a dash ("-"), otherwise %a gets an escaped + version of the arguments with a predicate and %p contains + escaped version of the arguments + + Starting with Windows Server 2003 a `where` command is + available. One can configure vifm to use it in the following + way: + + set findprg="where /R %s %A" + + As the syntax of this command is rather limited, one can't use + :find command with selection of more than one item because the + command ignores all directory paths except for the last one. + + When using find port on Windows, another option is to setup + 'findprg' like this: + + set findprg="find %s %a" + + + 'followlinks' + type: boolean + default: true + Follow links on l or Enter. That is navigate to destination + file instead of treating the link as if it were target file. + Doesn't affects links to directories, which are always entered + (use gf key for directories). + + 'fusehome' + type: string + default: "($XDG_DATA_HOME/.local/share | $VIFM)/fuse/" + Directory to be used as a root dir for FUSE mounts. Value of + the option can contain environment variables (in form + "$envname"), which will be expanded (prepend it with a slash to + prevent expansion). The value should expand to an absolute + path. + + If you change this option, vifm won't remount anything. It + affects future mounts only. See "Automatic FUSE mounts" section + below for more information. + + 'gdefault' 'gd' + type: boolean + default: false + When on, 'g' flag is on for :substitute by default. + + 'grepprg' + type: string + default: "grep -n -H -I -r %i %a %s" + Specifies format for an external command to be invoked by the + :grep command. The format supports expanding of macros, + specific for a particular *prg option, and %% sequence for + inserting percent sign literally. This option should include + the %i macro to specify placement of "-v" string when inversion + of results is requested, %a or %A macro to specify placement of + arguments passed to the :grep command and the %s macro to + specify placement of list of files to search in. If some of the + macros are not used, they will be implicitly added after a space + to the value of the 'grepprg' option in the following order: %i, + %a, %s. Note that when neither %a nor %A are specified, it's %a + which is added implicitly. + + Optional %u or %U macro could be used (if both specified %U is + chosen) to force redirection to custom or unsorted custom view + respectively. + + See 'findprg' option for description of difference between %a + and %A. + + Example of setup to use ack (http://beyondgrep.com/) instead of + grep: + + set grepprg='ack -H -r %i %a %s' + + or The Silver Searcher + (https://github.com/ggreer/the_silver_searcher): + + set grepprg='ag --line-numbers %i %a %s' + + + + 'histcursor' + type: set + default: startup,dirmark,direnter + Defines situations when cursor should be moved according to + directory history: + - startup - on loading file lists during startup + - dirmark - after navigating to a mark that doesn't specify + file + - direnter - on opening directory from a file list + + This option has no effect when 'autochpos' is disabled. + + Note that the list is not exhaustive and there are other + situations when cursor is positioned automatically. + + 'history' 'hi' + type: integer + default: 15 + Maximum number of stored items in all histories. + + 'hlsearch' 'hls' + type: boolean + default: true + Automatically select files that are search matches. + + 'iec' type: boolean + default: false + Use KiB, MiB, ... suffixes instead of K, M, ... when printing + size in human-friendly format. + + 'ignorecase' 'ic' + type: boolean + default: false + Ignore case in search patterns (:substitute, / and ? commands), + local filter (but not the rest of filters) and other things + detailed in the description of 'caseoptions'. + + 'incsearch' 'is' + type: boolean + default: false + When this option is set, search and view update for local filter + is be performed starting from initial cursor position each time + search pattern is changed. + + 'iooptions' + type: set + default: + Controls details of file operations. The following values are + available: + - fastfilecloning - perform fast file cloning (copy-on-write), + when available + (available on Linux and btrfs file system). + + 'laststatus' 'ls' + type: boolean + default: true + Controls if status bar is visible. + + 'lines' + type: integer + default: terminal height on startup + Terminal height in lines. + + 'locateprg' + type: string + default: "locate %a" + Specifies format for an external command to be invoked by the + :locate command. The format supports expanding of macros, + specific for a particular *prg option, and %% sequence for + inserting percent sign literally. This option should include + the %a macro to specify placement of arguments passed to the + :locate command. If the macro is not used, it will be + implicitly added after a space to the value of this option. + + Optional %u or %U macro could be used (if both specified %U is + chosen) to force redirection to custom or unsorted custom view + respectively. + + 'mediaprg' + type: string + default: path to bundled script that supports udevil, udisks and + udisks2 + (using udisks2 requires python with dbus module + installed) + OS X: path points to a python script that uses diskutil + {only for *nix} + Specifies command to be used to manage media devices. Used by + :media command. + + The command can be passed the following parameters: + - list -- list media + - mount {device} -- mount a device + - unmount {path} -- unmount given mount point + + The output of `list` subcommand is parsed in search of lines + that start with one of the following prefixes: + - device= - specifies device path (e.g., "/dev/sde") + - label= - specifies optional device label (e.g., "Memory + card") + - info= - specifies arbitrary text to display next to + device (by + default "[label]" is used, if label is + provided) + - mount-point= - specifies a mount point (can be absent or + appear more than once) + + All other lines are ignored. Each `device=` starts a new + section describing a device which should include two other + possible prefixes. + + `list` subcommand is assumed to always succeed, while exit code + of `mount` and `unmount` is taken into account to determine + whether operation was performed successfully. + + 'lsoptions' + type: string list + default: "" + scope: local + + Configures ls-like view. + + item used for + transposed filling view grid by columns rather than by + lines + + + 'lsview' + type: boolean + default: false + scope: local + When this option is set, directory view will be displayed in + multiple columns with file names similar to output of `ls -x` + command. See "ls-like view" section below for format + description. This option has no effect if 'millerview' is on. + + 'milleroptions' + type: string list + default: "lsize:1,csize:1,rsize:1,rpreview:dirs" + scope: local + + Configures miller view. + + item default used for + lsize:num 0 left column + csize:num 1 center column (can't be disabled) + rsize:num 0 right column + rpreview:str dirs right column + + *size specifies ratios of columns. Each ratio is in the range + from 0 to 100 and values are adjusted to fit the limits. Zero + disables a column, but central (main) column can't be disabled. + + rpreview specifies what file-system objects should be previewed + in the right column and can take two values: dirs (only + directories) or all. Both options don't include parent + directory (".."). + + Example of two-column mode which is useful in combination with + :view command: + + set milleroptions=lsize:1,csize:2 + + + 'millerview' + type: boolean + default: false + scope: local + When this option is set, directory view will be displayed in + multiple cascading columns. Ignores 'lsview'. + + 'mintimeoutlen' + type: integer + default: 150 + The fracture of 'timeoutlen' in milliseconds that is waited + between subsequent input polls, which affects various + asynchronous operations (detecting changes made by external + applications, monitoring background jobs, redrawing UI). There + are no strict guarantees, however the higher this value is, the + less is CPU load in idle mode. + + 'number' 'nu' + type: boolean + default: false + scope: local + Print line number in front of each file name when 'lsview' + option is turned off. Use 'numberwidth' to control width of + line number. Also see 'relativenumber'. + + 'numberwidth' 'nuw' + type: integer + default: 4 + scope: local + Minimal number of characters for line number field. + + 'previewoptions' + type: string list + default: "graphicsdelay:50000" + + Tweaks how previewing is done (in quick view, miller view's + column and view mode). + + item default meaning + graphicsdelay:num 0 delay before drawing graphics + (microseconds) + hardgraphicsclear unset redraw screen to get rid of + graphics + toptreestats unset show file counts before the tree + + graphicsdelay is needed if terminal requires some timeout before + it can draw graphics (otherwise it gets lost). + + hardgraphicsclear seems to be necessary to get rid of sixel + graphics in some terminals, where it otherwise lingers. This + can cause flicker on the screen due to erasure followed by + redrawing. + + 'previewprg' + type: string + default: "" + scope: local + + External command to be used instead of preview programs + configured via :fileviewer command. + + Example: + + " always show git log in preview of files inside some repository + au DirEnter '~/git-repo/**/*' setl previewprg='git log --color -- %c 2>&1' + + 'quickview' + type: boolean + default: false + Whether quick view (:view) is currently active or not. + + 'relativenumber' 'rnu' + type: boolean + default: false + scope: local + Print relative line number in front of each file name when + 'lsview' option is turned off. Use 'numberwidth' to control + width of line number. Various combinations of 'number' and + 'relativenumber' lead to such results: + + nonumber number + + norelativenumber | first | 1 first + | second | 2 second + | third | 3 third + + relativenumber | 1 first | 1 first + | 0 second |2 second + | 1 third | 1 third + + + 'rulerformat' 'ruf' + type: string + default: "%l/%S " + Determines the content of the ruler. Its minimal width is 13 + characters and it's right aligned. Following macros are + supported: + %= - separation point between left and right aligned halves of + the line + %l - file number + %L - total number of files in view (including filtered out + ones) + %x - number of files excluded by filters + %0- - old name for %x macro + %P - percentage through file list (All, Top, xx% or Bot), + always 3 in length + %S - number of displayed files + %= - separation point between left and right align items + %% - literal percent sign + %[ - designates beginning of an optional block + %] - designates end of an optional block + + Percent sign can be followed by optional minimum field width. + Add '-' before minimum field width if you want field to be right + aligned. + + Optional blocks are ignored unless at least one macro inside of + them is expanded to a non-empty value. + + Example: + + set rulerformat='%2l-%S%[ +%x%]' + + 'runexec' + type: boolean + default: false + Run executable file on Enter, l or Right Arrow key. Behaviour + of the last two depends on the value of the 'lsview' option. + + 'scrollbind' 'scb' + type: boolean + default: false + When this option is set, vifm will try to keep difference of + scrolling positions of two windows constant. + + 'scrolloff' 'so' + type: integer + default: 0 + Minimal number of screen lines to keep above and below the + cursor. If you want cursor line to always be in the middle of + the view (except at the beginning or end of the file list), set + this option to some large value (e.g. 999). + + 'sessionoptions' 'ssop' + sessionoptions ssop + type: set + default: tui,state,tabs,savedirs,dhistory + An equivalent of 'vifminfo' for sessions, uses the same values. + When both options include the same value, data from session file + has higher priority (data from vifminfo isn't necessarily + completely discarded, instead it's merged with the state of a + session the same way state of multiple instances is merged on + exit). + + 'shell' 'sh' + type: string + default: $SHELL or "/bin/sh" or "cmd" (on MS-Windows) + Full path to the shell to use to run external commands. On *nix + a shell argument can be supplied. + + 'shellcmdflag' 'shcf' + type: string + default: "-c" or "/C" (for cmd.exe on MS-Windows) + Command-line option used to pass a command to 'shell'. It's + used in contexts where command comes from the user. + + Note that using this option to force interactive mode of the + shell is most likely a BAD IDEA. In general interactive host + and interactive child shell can't share the same terminal + session. You can't even run such a shell in background. + Consider writing a wrapper for your shell that preloads aliases + and commands without making the shell interactive and ending up + using it in a way it was not meant to be used. + + Note that this option is ignored when 'shell' is set to + PowerShell due to the internal use of `-encodedCommand`. + + 'shortmess' 'shm' + type: charset + default: "p" + Contains a sequence of single-character flags. Each flag + enables shortening of some message displayed by vifm in the TUI. + Flags: + - L - display only last directory in tab line instead of full + path. + - M - shorten titles in windows of terminal multiplexers + created by vifm down to file name instead of using full path. + - T - truncate status-bar messages in the middle if they are + too long to fit on the command line. "..." will appear in the + middle. + - p - use tilde shortening in view titles. + + + 'showtabline' 'stal' + type: enumeration + default: multiple + Specifies when tab line should be displayed. Possible values: + - never - never display tab line + - multiple - show tab line only when there are at least two + tabs + - always - display tab line always + + Alternatively 0, 1 and 2 Vim-like values are also accepted and + correspond to "never", "multiple" and "always" respectively. + + 'sizefmt' + type: string list + default: "units:iec" + Configures the way size is formatted in human-friendly way. + + item value meaning + units: iec Use 1024 byte units (K or KiB, + etc.). + See 'iec' option. + si Use 1000 byte units (KB, etc.). + precision: i > 0 How many fraction digits to + consider. + {not set} Precision of 1 for integer part + < 10, + 0 otherwise (provides old + behaviour). + space {present} Insert space before unit + symbols. + This is the default. + nospace {present} Do not insert space before unit + symbols. + + Numbers are rounded from zero. Trailing zeros are dropped. + + Example: + + set sizefmt=units:iec,precision:2,nospace + + + 'slowfs' + type: string list + default: "" + only for *nix + A list of mounter fs name beginnings (first column in /etc/mtab + or /proc/mounts) or paths prefixes for fs/directories that work + too slow for you. This option can be used to stop vifm from + making some requests to particular kinds of file systems that + can slow down file browsing. Currently this means don't check + if directory has changed, skip check if target of symbolic links + exists, assume that link target located on slow fs to be a + directory (allows entering directories and navigating to files + via gf). If you set the option to "*", it means all the systems + are considered slow (useful for cygwin, where all the checks + might render vifm very slow if there are network mounts). + + Example for autofs root /mnt/autofs: + + set slowfs+=/mnt/autofs + + 'smartcase' 'scs' + type: boolean + default: false + Overrides the ignorecase option if a pattern contains at least + one upper case character. Only used when 'ignorecase' option is + enabled. + + 'sort' type: string list + default: +name on *nix and +iname on Windows + scope: local + Sets list of sorting keys (first item is primary key, second is + secondary key, etc.): + [+-]ext - extension of files and directories + [+-]fileext - extension of files only + [+-]name - name (including extension) + [+-]iname - name (including extension, ignores case) + [+-]type - file type + (dir/reg/exe/link/char/block/sock/fifo) + [+-]dir - directory grouping (directory < file) + [+-]gid - group id (*nix only) + [+-]gname - group name (*nix only) + [+-]mode - file type derived from its mode (*nix only) + [+-]perms - permissions string (*nix only) + [+-]uid - owner id (*nix only) + [+-]uname - owner name (*nix only) + [+-]nlinks - number of hard links (*nix only) + [+-]inode - inode number (*nix only) + [+-]size - size + [+-]nitems - number of items in a directory (zero for files) + [+-]groups - groups extracted via regexps from 'sortgroups' + [+-]target - symbolic link target (empty for other file + types) + [+-]atime - time accessed (e.g., read, executed) + [+-]ctime - time changed (changes in metadata, like mode) + [+-]mtime - time modified (when file contents is changed) + + Note: look for st_atime, st_ctime and st_mtime in "man 2 stat" + for more information on time keys. + + '+' means ascending sort for this key, and '-' means descending + sort. + + "dir" key is somewhat similar in this regard but it's added + implicitly: when "dir" is not specified, sorting behaves as if + it was the first key in the list. That's why if one wants + sorting algorithm to mix directories and files, "dir" should be + appended to sorting option, for example like this: + + set sort+=dir + + or + + set sort=-size,dir + + Value of the option is checked to include dir key and default + sorting key (name on *nix, iname on Windows). Here is what + happens if one of them is missing: + + - type key is added at the beginning; + + - default key is added at the end; + + all other keys are left untouched (at most they are moved). + + This option also changes view columns according to primary + sorting key set, unless 'viewcolumns' option is not empty. + + 'sortnumbers' + type: boolean + default: false + scope: local + Natural sort of (version) numbers within text. + + 'sortgroups' + type: string + default: "" + scope: local + Sets comma-separated list of regular expressions for group type + of sorting. Double the comma to insert it literally. + + The regular expressions are used to extract substrings of file + names to serve as keys for sorting. It is essentially a way to + ignore uninteresting parts of file names during sorting by name. + + Each expression should contain at least one group or its value + will be considered to be always empty. Also, only the first + match of regular expression is processed. + + The first group divides list of files into sub-groups, each of + which is then sorted by substrings extracted using second + regular expression and so on recursively. + + Example: + set sortgroups=-(todo|done).* + this would group files with "-done" in their names and files + with "-todo" separately. On ascending sorting, group containing + "-done" would appear before the other one. + + 'sortorder' + type: enumeration + default: ascending + Sets sort order for primary key: ascending, descending. + + 'statusline' 'stl' + type: string + default: "" + Determines the content of the status line (the line right above + command-line). Empty string means use same format like in + previous versions. Following macros are supported: + + - %N - line break (increases height of the status line + accordingly), ignores %[ %] blocks + + - %t - file name (considering value of the 'classify' option) + + - %T - symbolic link target (empty for other filetypes) + + - %f - file name relative to current directory (considers + 'classify') + + - %A - file attributes (permissions on *nix or properties on + Windows) + + - %u - user name or uid (if it cannot be resolved) + + - %g - group name or gid (if it cannot be resolved) + + - %s - file size in human readable format + + - %E - size of selected files in human readable format, same as + %s when no files are selected, except that it will never show + size of ../ in visual mode, since it cannot be selected + + - %d - file modification date (uses 'timefmt' option) + + - %D - path of the other pane for single-pane layout + + - %a - amount of free space available on current FS + + - %c - size of current FS + + - %z - short tips/tricks/hints that chosen randomly after one + minute period + + - %{} - evaluate arbitrary vifm expression '', e.g. + '&sort' + + - %* - resets or applies one of User1..User9 highlight groups; + reset happens when width field is 0 or not specified, one of + groups gets picked when width field is in the range from 1 to + 9 + + - all 'rulerformat' macros + + Percent sign can be followed by optional minimum field width. + Add '-' before minimum field width if you want field to be right + aligned. + + On Windows file properties include the following flags (upper + case means flag is on): + A - archive + H - hidden + I - content isn't indexed + R - readonly + S - system + C - compressed + D - directory + E - encrypted + P - reparse point (e.g. symbolic link) + Z - sparse file + + Example without colors: + + set statusline=" %t%= %A %10u:%-7g %15s %20d %{&sort} " + + Example with colors: + + highlight User1 ctermbg=yellow + highlight User2 ctermbg=blue ctermfg=white cterm=bold + set statusline="%1* %-26t %2* %= %1* %A %2* %7u:%-7g %1* %-5s %2* %d " + + + 'suggestoptions' + type: string list + default: + Controls when, for what and how suggestions are displayed. The + following values are available: + - normal - in normal mode; + - visual - in visual mode; + - view - in view mode; + - otherpane - use other pane to display suggestions, when + available; + - delay[:num] - display suggestions after a small delay (to + do not annoy if you just want to type a fast shortcut consisting + of multiple keys), num specifies the delay in ms (500 by + default), 'timeoutlen' at most; + - keys - include shortcuts (commands and selectors); + - foldsubkeys - fold multiple keys with common prefix; + - marks - include marks; + - registers[:num] - include registers, at most num files (5 by + default). + + 'syncregs' + type: string + default: + Specifies identifier of group of instances that share registers + between each other. When several instances of vifm have this + option set to identical value, they automatically synchronize + contents of their registers on operations which use them. + + 'syscalls' + type: boolean + default: false + When disabled, vifm will rely on external applications to + perform file-system operations, otherwise system calls are used + instead (much faster and supports progress tracking). The + option should eventually be removed. Mostly *nix-like systems + are affected. + + 'tablabel' + type: string + default: "" + When non-empty, determines format of the main part of a single + tab's label. + + When empty, tab label is set to either tab name for named tabs + or to view title (usually current path) for unnamed tabs. + + The following macros can appear in the format (see below for + what a flag is): + + - %C - flag of a current tab + + - %N - number of the tab + + - %T - flag of a tree mode + + - %c - description of a custom view + + - %n - name of the tab + + - %p - path of the view (handles filename modifiers) + + - %t - title of the view (affected by 'shortmess' flags) + + - %% - literal percent sign + + - %[ - designates beginning of an optional block + + - %] - designates end of an optional block + + - %*, %0* - resets highlighting + + - %1-%9 - applies one of User1..User9 highlight groups + + In global tabs the view in bullets above refers to currently + active view of that tab. + + Flag macros are a special kind of macros that always expand to + an empty value and are ment to be used inside optional blocks to + control their visibility. + + Optional blocks are ignored unless at least one macro inside of + them is expanded to a non-empty value or is a set flag macro. + + " %[(%n)%] -- optional name of the tab + " %[ -- optional description of the view + " %[%T{tree}%] -- mark of tree mode + " %[{%c}%] -- description of custom view + " @ -- just an extra separator before the path + ' %] + " %p:t -- tail part of view's location + set tablabel=%[(%n)%]%[%[%T{tree}%]%[{%c}%]@%]%p:t + + 'tabprefix' + type: string + default: "[%N:" + Determines prefix of a tab's label. Formatting is done as for + 'tablabel' option. + + 'tabscope' + type: enumeration + default: global + Picks style of tabs, which defines what a single tab contains. + Possible values: + - global - tab describes complete UI of two views and how they + are arranged + - pane - tab is located "inside" a pane and manages it and + quick view + + 'tabstop' 'ts' + type: integer + default: value from curses library + Number of spaces that a Tab in the file counts for. + + 'tabsuffix' + type: string + default: "]" + Determines suffix of a tab's label. Formatting is done as for + 'tablabel' option. + + 'timefmt' + type: string + default: "%m/%d %H:%M" + Format of time in file list. See "man 1 date" or "man 3 + strftime" for details. + + 'timeoutlen' 'tm' + type: integer + default: 1000 + The time in milliseconds that is waited for a mapped key in case + of already typed key sequence is ambiguous. + + 'title' + type: boolean + default: true when title can be restored, false otherwise + When enabled, title of the terminal or terminal multiplexer's + window is updated according to current location. Because not + all terminals support setting title, this works only if `$TERM` + value matches one of the following conditions: + - equals "xterm" or starts with "xterm-" + - equals "rxvt" or starts with "rxvt-" + - equals "screen" or starts with "screen-" + - equals "aterm" + - equals "Eterm" + + 'trash' + type: boolean + default: true + Use trash directory. See "Trash directory" section below. + + 'trashdir' + type: string + default: on *nix: + "%r/.vifm-Trash-%u,$VIFM/Trash,%r/.vifm-Trash" + or if $VIFM/Trash doesn't exist + "%r/.vifm-Trash-%u,$XDG_DATA_HOME/vifm/Trash,%r/.vifm-Trash" + on Windows: + "%r/.vifm-Trash,$XDG_DATA_HOME/vifm/Trash" + List of trash directory path specifications, separated with + commas. Each list item either defines an absolute path to trash + directory or a path relative to a mount point root when list + element starts with "%r/". Value of the option can contain + environment variables (of form "$envname"), which will be + expanded (prepend $ with a slash to prevent expansion). + Environment variables are expanded when the option is set. + + On *nix, if element ends with "%u", the mark is replaced with + real user ID and permissions are set so that only that only + owner is able to use it. + Note that even this setup is not completely secure when combined + with "%r/" and it's overall safer to keep files in home + directory, but that implies cost of copying files between + partitions. + + When new file gets cut (deleted) vifm traverses each element of + the option in the order of their appearance and uses first trash + directory that it was able to create or that is already + writable. + + Default value tries to use trash directory per mount point and + falls back to ~/.vifm/Trash on failure. + + Will attempt to create the directory if it does not exist. See + "Trash directory" section below. + + 'tuioptions' 'to' + type: charset + default: "psv" + Each flag configures some aspect of TUI appearance. The flags + are: + p - when included: + * file list inside a pane gets additional single character + padding on left and right sides; + * quick view and view mode get single character padding. + s - when included, left and right borders (side borders, hence + "s" character) are visible. + u - use Unicode characters in the TUI (Unicode ellipsis instead + of "..."). + v - vary width of middle border to equalize view sizes. + + Each pane title contains the path of the listed directory. If + too large, the path is truncated on the left for the active pane + and on the right for the other pane. This can be modified with: + + l - truncation is always on the left. + r - truncation is always on the right. + + 'undolevels' 'ul' + type: integer + default: 100 + Maximum number of changes that can be undone. Note that here + single file operation is used as a unit, not operation, i.e. + deletion of 101 files will exceed default limit. + + 'vicmd' + type: string + default: "vim" + Command used to edit files in various contexts. Ampersand sign + at the end (regardless whether it's preceded by space or not) + means backgrounding of command. + + Background flag is ignored in certain context where vifm waits + for the editor to finish. Such contexts include any command + that spawns editor to change list of file names or a command, + with :rename being one example. `-f` is also appended to + prevent forking in such cases, so the command needs to handle + the flag. + + Additionally `+{num}` and `+'call cursor()'` arguments are used + to position cursor when location is known. + + 'viewcolumns' + type: string + default: "" + scope: local + Format string containing list of columns in the view. When this + option is empty, view columns to show are chosen automatically + using sorting keys (see 'sort') as a base. Value of this option + is ignored if 'lsview' is set. See "Column view" section below + for format description. + + An example of setting the options for both panes (note :windo + command): + + windo set viewcolumns=-{name}..,6{size},11{perms} + + 'vixcmd' + type: string + default: value of 'vicmd' + Same as 'vicmd', but takes precedence over it when running + inside a graphical environment. + + 'vifminfo' + type: set + default: bookmarks,bmarks + Controls what will be saved in the $VIFM/vifminfo file. + + bmarks - named bookmarks (see :bmark command) + bookmarks - marks, except special ones like '< and '> + tui - state of the user interface (sorting, number of + windows, quick + view state, active view) + dhistory - directory history + state - file name and dot filters and terminal + multiplexers integration + state + cs - primary color scheme + savedirs - save last visited directory + chistory - command line history + shistory - search history (/ and ? commands) + phistory - prompt history + fhistory - history of local filter (see description of the + "=" normal mode + command) + dirstack - directory stack overwrites previous stack, unless + stack of + current instance is empty + registers - registers content + tabs - global or pane tabs + options - all options that can be set with the :set command + (obsolete) + filetypes - associated programs and viewers (obsolete) + commands - user defined commands (see :command description) + (obsolete) + + 'vimhelp' + type: boolean + default: false + Use vim help format. + + 'wildmenu' 'wmnu' + type: boolean + default: false + Controls whether possible matches of completion will be shown + above the command line. + + 'wildstyle' + type: enumeration + default: bar + Picks presentation style of wild menu. Possible values: + - bar - one-line with left-to-right cursor + - popup - multi-line with top-to-bottom cursor + + 'wordchars' + type: string list + default: "1-8,14-31,33-255" (that is all non-whitespace + characters) + Specifies which characters in command-line mode should be + considered as part of a word. Value of the option is comma- + separated list of ranges. If both endpoints of a range match, + single endpoint is enough (e.g. "a" = "a-a"). Both endpoints + are inclusive. There are two accepted forms: character + representing itself or number encoding character according to + ASCII table. In case of ambiguous characters (dash, comma, + digit) use numeric form. Accepted characters are in the range + from 0 to 255. Any Unicode character with code greater than 255 + is considered to be part of a word. + + The option affects Alt-D, Alt-B and Alt-F, but not Ctrl-W. This + is intentionally to allow two use cases: + + - Moving by WORDS and deletion by words. + - Moving by words and deletion by WORDS. + + To get the latter use the following mapping: + + cnoremap + + Also used for abbreviations. + + 'wrap' type: boolean + default: true + Controls whether to wrap text in quick view. + + 'wrapscan' 'ws' + type: boolean + default: true + Searches wrap around end of the list. + +Mappings + Map arguments + + LHS of mappings can be preceded by arguments which take the form of + special sequences: + + + Postpone UI updates until RHS is completely processed. + + In case of builtin mapping causing conflict for a user-defined + mapping (e.g., `t` builtin to a partially typed `ta` user- + defined mapping), ignore the builtin mapping and wait for input + indefinitely as opposed to default behaviour of triggering the + builtin mapping after a delay defined by 'timeoutlen'. Example: + + nnoremap tw :set wrap! + nnoremap tn :set number! + nnoremap tr :set relativenumber! + + Special sequences + + Since it's not easy to enter special characters there are several + special sequences that can be used in place of them. They are: + + Enter key. + + Escape key. + + + Space key. + + Less-than character (<). + + provides a way to disable a mapping (by mapping it to ). + + Backspace key (see key conflict description below). + + + Tabulation and Shift+Tabulation keys. + + + Home/End. + + + Arrow keys. + + + PageUp/PageDown. + + + Delete key. and mean different codes, but + is more common. + + + Insert key. + + ,,...,,,,,, + Control + some key (see key conflict description below). + + only for *nix + Control + Space. + + ,,..., + ,,..., Alt + some key. + + ,,..., + ,,..., only for *nix + Alt + Ctrl + some key. + + - + Functional keys. + + - + only for MS-Windows + functional keys with Control key pressed. + + - + only for MS-Windows + functional keys with Alt key pressed. + + - + only for MS-Windows + functional keys with Shift key pressed. + + Note that due to the way terminals process their input, several + keyboard keys might be mapped to single key code, for example: + + - and ; + + - and ; + + - and ; + + - etc. + + Most of the time they are defined consistently and don't cause + surprises, but and are treated differently in different + environments (although they match each other all the time), that's why + they correspond to different keys in vifm. As a consequence, if you + map or be sure to repeat the mapping with the other one so + that it works in all environments. Alternatively, provide your mapping + in one form and add one of the following: + + " if mappings with in the LHS work + map + " if mappings with in the LHS work + map + + Whitespace + + vifm removes whitespace characters at the beginning and end of + commands. That's why you may want to use at the end of rhs in + mappings. For example: + + cmap man + + will put "man " in line when you hit the key in the command line + mode. + +Expression syntax + Supported expressions is a subset of what VimL provides. + + Expression syntax summary, from least to most significant: + + expr1 expr2 + expr2 || expr2 .. logical OR + + expr2 expr3 + expr3 && expr3 .. logical AND + + expr3 expr4 + expr4 == expr4 equal + expr4 != expr4 not equal + expr4 > expr4 greater than + expr4 >= expr4 greater than or equal + expr4 < expr4 smaller than + expr4 <= expr4 smaller than or equal + + expr4 expr5 + expr5 + expr5 .. number addition + expr5 - expr5 .. number subtraction + + expr5 expr6 + expr6 . expr6 .. string concatenation + + expr6 expr7 + - expr6 unary minus + + expr6 unary plus + ! expr6 logical NOT + + expr7 number number constant + "string" string constant, \ is special + 'string' string constant, ' is doubled + &option option value + $VAR environment variable + v:var builtin variable + function(expr1, ...) function call + (expr1) nested expression + + ".." indicates that the operations in this level can be concatenated. + + expr1 + ----- + expr2 || expr2 + + Arguments are converted to numbers before evaluation. + + Result is non-zero if at least one of arguments is non-zero. + + It's right associative and with short-circuiting, so sub-expressions + are evaluated from left to right until result of whole expression is + determined (i.e., until first non-zero) or end of the expression. + + expr2 + ----- + expr3 && expr3 + + Arguments are converted to numbers before evaluation. + + Result is non-zero only if both arguments are non-zero. + + It's right associative and with short-circuiting, so sub-expressions + are evaluated from left to right until result of whole expression is + determined (i.e., until first zero) or end of the expression. + + expr3 + ----- + expr4 {cmp} expr4 + + Compare two expr4 expressions, resulting in a 0 if it evaluates to + false or 1 if it evaluates to true. + + equal == + not equal != + greater than > + greater than or equal >= + smaller than < + smaller than or equal <= + + Examples: + + 'a' == 'a' == 1 + 'a' > 'b' == 1 + 'a' == 'b' == 0 + '2' > 'b' == 0 + 2 > 'b' == 1 + 2 > '1b' == 1 + 2 > '9b' == 0 + -1 == -'1' == 1 + 0 == '--1' == 1 + + expr4 + ----- + expr5 + expr5 .. number addition expr5 - expr5 .. number + subtraction + + Examples: + + 1 + 3 - 3 == 1 + 1 + '2' == 3 + + expr5 + ----- + expr6 . expr6 .. string concatenation + + Examples: + + 'a' . 'b' == 'ab' + 'aaa' . '' . 'c' == 'aaac' + + expr6 + ----- + + - expr6 unary minus + + expr6 unary plus + ! expr6 logical NOT + + For '-' the sign of the number is changed. + For '+' the number is unchanged. + For '!' non-zero becomes zero, zero becomes one. + + A String will be converted to a Number first. + + These operations can be repeated and mixed. Examples: + + --9 == 9 + ---9 == -9 + -+9 == 9 + !-9 == 0 + !'' == 1 + !'x' == 0 + !!9 == 1 + + expr7 + ----- + + number number constant + ----- + + Decimal number. Examples: + + 0 == 0 + 0000 == 0 + 01 == 1 + 123 == 123 + 10000 == 10000 + + string + ------ + "string" string constant + + Note that double quotes are used. + + A string constant accepts these special characters: + \b backspace + \e escape + \n newline + \r return + \t tab + \\ backslash + \" double quote + + Examples: + + "\"Hello,\tWorld!\"" + "Hi,\nthere!" + + literal-string + -------------- + 'string' string constant + + Note that single quotes are used. + + This string is taken as it is. No backslashes are removed or have a + special meaning. The only exception is that two quotes stand for one + quote. + + Examples: + + 'All\slashes\are\saved.' + 'This string contains doubled single quotes ''here''' + + option + ------ + &option option value (local one is preferred, if exists) + &g:option global option value &l:option local + option value + + Examples: + + echo 'Terminal size: '.&columns.'x'.&lines + if &columns > 100 + + Any valid option name can be used here (note that "all" in ":set all" + is a pseudo option). See ":set options" section above. + + environment variable + -------------------- + $VAR environment variable + + The String value of any environment variable. When it is not defined, + the result is an empty string. + + Examples: + + 'This is my $PATH env: ' . $PATH + 'vifmrc at ' . $MYVIFMRC . ' is used.' + + builtin variable + -------------------- + v:var builtin variable + + Information exposed by vifm for use in scripting. + + v:count + count passed to : command, 0 by default. Can be used in mappings to + passthe count to a different command. + v:count1 + same as v:count, but 1 by default. + v:jobcount + number of active jobs (as can be seen in the :jobs menu). + v:session + name of the current session or empty string. + v:servername + See below. + + function call + ------------- + function(expr1, ...) function call + + See "Functions" section below. + + Examples: + + "'" . filetype('.') . "'" + filetype('.') == 'reg' + + expression nesting + ------------------ + (expr1) nested expression + + Groups any other expression of arbitrary complexity enforcing order in + which operators are applied. + + +Functions + USAGE RESULT DESCRIPTION + + chooseopt({opt}) String Queries choose parameters passed on + startup. + executable({expr}) Integer Checks whether {expr} command + available. + expand({expr}) String Expands special keywords in {expr}. + extcached({cache}, {path}, {extcmd}) + String Caches output of {extcmd} per {cache} + and + {path} combination. + filetype({fnum} [, {resolve}]) + String Returns file type from position. + fnameescape({expr}) String Escapes {expr} for use in a :command. + getpanetype() String Returns type of current pane. + has({property}) Integer Checks whether instance has + {property}. + layoutis({type}) Integer Checks whether layout is of type + {type}. + paneisat({loc}) Integer Checks whether current pane is at + {loc}. + system({command}) String Executes shell command and returns + its output. + tabpagenr([{arg}]) Integer Returns number of current or last + tab. + term({command}) String Like system(), but for interactive + commands. + + chooseopt({opt}) + + Retrieves values of options related to file choosing. {opt} can be one + of: + files returns argument of --choose-files or empty string + dir returns argument of --choose-dir or empty string + cmd returns argument of --on-choose or empty string + delimiter returns argument of --delimiter or the default one (\n) + + executable({expr}) + + If {expr} is absolute or relative path, checks whether path destination + exists and refers to an executable, otherwise checks whether command + named {expr} is present in directories listed in $PATH. Checks for + various executable extensions on Windows. Returns boolean value + describing result of the check. + + Example: + + " use custom default viewer script if it's available and installed + " in predefined system directory, otherwise try to find it elsewhere + if executable('/usr/local/bin/defviewer') + fileview * /usr/local/bin/defviewer %c + else + if executable('defviewer') + fileview * defviewer %c + endif + endif + + expand({expr}) + + Expands environment variables and macros in {expr} just like it's done + for command-line commands. Returns a string. See "Command macros" + section above. + + Examples: + + " percent sign + :echo expand('%%') + " the last part of directory name of the other pane + :echo expand('%D:t') + " $PATH environment variable (same as `:echo $PATH`) + :echo expand('$PATH') + + extcached({cache}, {path}, {extcmd}) + + Caches value of {extcmd} external command automatically updating it as + necessary based on monitoring change date of a {path}. The cache is + invalidated when file or its meta-data is updated. A single path can + have multiple caches associated with it. + + {path} value is normalized, but symbolic links in it aren't resolved. + + Example: + + " display number and size of blocks actually used by a file or directory + set statusline+=" Uses: %{ extcached('uses', + expand('%c'), + expand('stat --format=%%bx%%B %c')) }" + + filetype({fnum} [, {resolve}]) + + The result is a string, which represents file type and is one of the + list: + exe executables + reg regular files + link symbolic links + broken broken symbolic links (appears only when resolving) + dir directories + char character devices + block block devices + fifo pipes + sock *nix domain sockets + ? unknown file type (should not normally happen) or + non-file (pseudo-entries in compare view) + + The result can also be an empty string in case of invalid argument. + + Parameter {fnum} can have following values: + - '.' to get type of file under the cursor in the active pane + - numerical value base 1 to get type of file on specified line + number + + Optional parameter {resolve} is treated as a boolean and specifies + whether symbolic links should be resolved. + + fnameescape({expr}) + + Escapes parameter to make it suitable for use as an argument of a + :command. List of escaped characters includes %, which is doubled. + + Usage example: + + " navigate to most recently modified file in current directory + execute 'goto' fnameescape(system('ls -t | head -1')) + + getpanetype() + + Retrieves string describing type of current pane. Possible return + values: + regular regular file listing of some directory + custom custom file list (%u) + very-custom very custom file list (%U) + tree tree view + + has({property}) + + Allows examining internal parameters from scripts to e.g. figure out + environment in which application is running. Returns 1 if property is + true/present, otherwise 0 is returned. Currently the following + properties are supported (anything else will yield 0): + unix runs in *nix-like environment (including Cygwin) + win runs on Windows + + Usage example: + + " skip user/group on Windows + if !has('win') + let $RIGHTS = '%10u:%-7g ' + endif + + execute 'set' 'statusline=" %t%= %A '.$RIGHTS.'%15E %20d "' + + layoutis({type}) + + Checks whether current interface layout is {type} or not, where {type} + can be: + only single-pane mode + split double-pane mode (either vertical or horizontal split) + vsplit vertical split (left and right panes) + hsplit horizontal split (top and bottom panes) + + Usage example: + + " automatically split vertically before enabling preview + :nnoremap w :if layoutis('only') | vsplit | endif | view! + + paneisat({loc}) + + Checks whether position of active pane in current layout matches one of + the following locations: + top pane reaches top border + bottom pane reaches bottom border + left pane reaches left border + right pane reaches right border + + system({command}) + + Runs the command in shell and returns its output (joined standard + output and standard error streams). All trailing newline characters + are stripped to allow easy appending to command output. Ctrl-C should + interrupt the command. + + Use this function to consume output of external commands that don't + require user interaction and term() for interactive commands that make + use of terminal and are capable of handling stream redirection. + + Usage example: + + " command to enter .git/ directory of git-repository (when ran inside one) + command! cdgit :execute 'cd' fnameescape(system('git rev-parse --git-dir')) + + tabpagenr([{arg}]) + + When called without arguments returns number of current tab page base + one. + + When called with "$" as an argument returns number of the last tab page + base one, which is the same as number of tabs. + + term({command}) + + Same as system() function, but user interface is shutdown during the + execution of the command, which makes sure that external interactive + applications won't affect the way terminal is used by vifm. + + Usage example: + + " command to change directory by picking it via fzf + command! fzfcd :execute 'cd' + fnameescape(term('find -type d | fzf 2> /dev/tty')) + +Menus and dialogs + When navigating to some path from a menu there is a difference in end + location depending on whether path has trailing slash or not. Files + normally don't have trailing slashes so "file/" won't work and one can + only navigate to a file anyway. On the other hand with directories + there are two options: navigate to a directory or inside of it. To + allow both use cases, the first one is used on paths like "dir" and the + second one for "dir/". + + Commands + + :range navigate to a menu line. + + :exi[t][!] :q[uit][!] :x[it][!] + leave menu mode. + + :noh[lsearch] + reset search match highlighting. + + :w[rite] {dest} + write all menu lines into file specified by {dest}. + + General + + j, Ctrl-N - move down. + k, Ctrl-P - move up. + Enter, l - select and exit the menu. + Ctrl-L - redraw the menu. + + Escape, Ctrl-C, ZZ, ZQ, q - quit. + + In all menus + + The following set of keys has the same meaning as in normal mode. + + Ctrl-B, Ctrl-F + Ctrl-D, Ctrl-U + Ctrl-E, Ctrl-Y + /, ? + n, N + [count]G, [count]gg + H, M, L + zb, zt, zz + + zh - scroll menu items [count] characters to the right. + zl - scroll menu items [count] characters to the left. + zH - scroll menu items half of screen width characters to the right. + zL - scroll menu items half of screen width characters to the left. + + : - enter command line mode for menus (currently only :exi[t], :q[uit], + :x[it] and :{range} are supported). + + b - interpret content of the menu as list of paths and use it to create + custom view in place of previously active pane. See "Custom views" + section below. + B - same as above, but creates unsorted view. + + v - load menu content into quickfix list of the editor (Vim compatible + by assumption) or if list doesn't have separators after file names + (colons) open each line as a file name. + + + Below is description of additional commands and reaction on selection + in some menus and dialogs. + + Apropos menu + + Selecting menu item runs man on a given topic. Menu won't be closed + automatically to allow view several pages one by one. + + Command-line mode abbreviations menu + + Type dd on an abbreviation to remove it. + + c leaves menu preserving file selection and inserts right-hand side of + selected command into command-line. + + Color scheme menu + + Selecting name of a color scheme applies it the same way as if + ":colorscheme " was executed on the command-line. + + Commands menu + + Selecting command executes it with empty arguments (%a). + + dd on a command to remove. + + Marks menu + + Selecting mark navigates to it. + + dd on a mark to remove it. + + Bookmarks menu + + Selecting a bookmark navigates to it. + + Type dd on a bookmark to remove it. + + gf and e also work to make it more convenient to bookmark files. + + Trash (:lstrash) menu + + r on a file name to restore it from trash. + + dd deletes file under the cursor. + + Trashes (:trashes) menu + + dd empties selected trash in background. + + Directory history and Trashes menus + + Selecting directory name will change directory of the current view as + if :cd command was used. + + Directory stack menu + + Selecting directory name will rotate stack to put selected directory + pair at the top of the stack. + + File (:file) menu + + Commands from vifmrc or typed in command-line are displayed above empty + line. All commands below empty line are from .desktop files. + + c leaves menu preserving file selection and inserts command after :! in + command-line mode. + + Grep, find, locate, bookmarks and user menu with navigation (%M macro) + + gf - navigate previously active view to currently selected item. + Leaves menu mode except for grep menu. Pressing Enter key has the same + effect. + + e - open selected path in the editor, stays in menu mode. + + c - leave menu preserving file selection and insert file name after :! + in command-line mode. + + User menu without navigation (%m macro) + + c leaves menu preserving file selection and inserts whole line after :! + in command-line mode. + + Grep menu + + Selecting file (via Enter or l key) opens it in editor set by 'vicmd' + at given line number. Menu won't be closed automatically to allow + viewing more than one result. + + See above for "gf" and "e" keys description. + + Command-line history menu + + Selecting an item executes it as command-line command, search query or + local filter. + + c leaves menu preserving file selection and inserts line into command- + line of appropriate kind. + + Volumes menu + + Selecting a drive navigates previously active pane to the root of that + drive. + + Fileinfo dialog + + Enter, q - close dialog + + Sort dialog + + h, Space - switch ascending/descending. + q - close dialog + + One shortcut per sorting key (see the dialog). + + Attributes (permissions or properties) dialog + + h, Space - check/uncheck. + q - close dialog + r - (*nix only) (un)set all read bits + w - (*nix only) (un)set all write bits + x - (*nix only) (un)set all execute bits + s - (*nix only) (un)set all special (SetUID, SetGID, Sticky) bits + e - (*nix only) (un)set recursion (for directories only) + + Item states: + + - * - checked flag. + + - X - means that it has different value for files in selection. + + - d (*nix only) - (only for execute flags) means u-x+X, g-x+X or o-x+X + argument for the chmod program. If you're not on OS X and want to + remove execute permission bit from all files, but preserve it for + directories, set all execute flags to 'd' and check 'Set Recursively' + flag. + + Jobs menu + + dd requests cancellation of job under cursor. The job won't be removed + from the list, but marked as being cancelled (if cancellation was + successfully requested). A message will pop up if the job has already + stopped. Note that on Windows cancelling external programs like this + might not work, because their parent shell doesn't have any windows. + + e key displays errors of selected job if any were collected. They are + displayed in a new menu, but you can get back to jobs menu by pressing + h. + + + Undolist menu + + r - reset undo position to group under the cursor. + + + Media menu + + Selecting a device either mounts (if it wasn't mounted yet) or + navigates to its first mount point. + + Selecting a mount point navigates to it. + + Selecting "not mounted" line causes mounting. + + Selecting any other line does nothing. + + r - reload the list. + + m - mount/unmount device (cursor should be positioned on lines under + device information). + + [ - put cursor on the previous device. + + ] - put cursor on the next device. + + + Plugins menu + + e - display log messages of selected plugin if any were collected. + They are displayed in a new menu, but you can get back to plugins menu + by pressing h. + + gf - navigate previously active view to the location of selected + plugin. Leaves menu mode. + + +Custom views + Definition + + Normally file views contain list of files from a single directory, but + sometimes it's useful to populate them with list of files that do not + belong to the same directory, which is what custom views are for. + + Presentation + + Custom views are still related to directory they were in before custom + list was loaded. Path to that directory (original directory) can be + seen in the title of a custom view. + + Files in same directory have to be named differently, this doesn't hold + for custom views thus seeing just file names might be rather confusing. + In order to give an idea where files come from and when possible, + relative paths to original directory of the view is displayed, + otherwise full path is used instead. + + Custom views normally don't contain any inexistent files. + + Navigation + + Custom views have some differences related to navigation in regular + views. + + gf - acts similar to gf on symbolic links and navigates to the file at + its real + location. + + h - go to closes parent node in tree view, otherwise return to the + original directory. + + gh - return to the original directory. + + Opening ".." entry also causes return to the original directory. + + History + + Custom list exists only while it's visible, once left one can't return + to it, so there is no appearances of it in any history. + + Filters + + Only local filter affects content of the view. This is intentional, + presumably if one loads list, precisely that list should be displayed + (except for inexistent paths, which are ignored). + + Search + + Although directory names are visible in listing, they are not + searchable. Only file names are taken into account (might be changed + in future, searching whole lines seems quite reasonable). + + Sorting + + Contrary to search sorting by name works on whole visible part of file + path. + + Highlight + + Whole file name is highlighted as one entity, even if there are + directory elements. + + Updates + + Reloads can occur, though they are not automatic due to files being + scattered among different places. On a reload, inexistent files are + removed and meta-data of all other files is updated. + + Once custom view forgets about the file, it won't add it back even if + it's created again. So not seeing file previously affected by an + operation, which was undone is normal. + + Operations + + All operations that add files are forbidden for custom views. For + example, moving/copying/putting files into a custom view doesn't work, + because it doesn't make much sense. + + On the other hand, operations that use files of a custom view as a + source (e.g. yanking, copying, moving file from custom view, deletion) + and operations that modify names are all allowed. + +Compare views + Kinds + + :compare can produce four different results depending on arguments: + - single compare view (ofone and either listall or listdups); + - single custom view (ofone and listunique); + - two compare views (ofboth and either listall or listdups); + - two custom views (ofboth and listunique). + + The first two display files of one file system tree. Here duplicates + are files that have at least one copy in the same tree. The other two + kinds of operation compare two trees, in which duplicates are files + that are found in both trees. + + Lists of unique files are presented in custom views because there is no + file grouping to preserve as all file ids are guaranteed to be + distinct. + + Creation + + Arguments passed to :compare form four categories each with its own + prefix and is responsible for particular property of operation. + + Which files to compare: + - ofboth - compares files of two panes against each other; + - ofone - compares files of the same directory. + + How files are compared: + - byname - by their name only; + - bysize - only by their size; + - bycontents - by data they contain (combination of size and hash of + small chunk of contents is used as first approximation, so don't worry + too much about large files). + + Which files to display: + - listall - all files; + - listunique - unique files only; + - listdups - only duplicated files. + + How results are grouped (has no effect if "ofone" specified): + - groupids - files considered identical are always adjacent in + output; + - grouppaths - file system ordering is preferred (this also enables + displaying identically named files as mismatches). + + Which files to omit: + - skipempty - ignore empty files. + + Each argument can appear multiple times, the rightmost one of the group + is considered. Arguments alter default behaviour instead of + substituting it. + + Examples + + The defaults corresponds to probably the most common use case of + comparing files in two trees with grouping by paths, so the following + are equivalent: + + :compare + :compare bycontents grouppaths + :compare bycontents listall ofboth grouppaths + + Another use case is to find duplicates in the current sub-tree: + + :compare listdups ofone + + The following command lists files that are unique to each pane: + + :compare listunique + + Look + + The view can't switch to ls-like view as it's unable to display diff- + like data. + + Comparison views have second column displaying id of the file, files + with same id are considered to be equal. The view columns + configuration is predefined. + + Behaviour + + When two views are being compared against each other the following + changes to the regular behaviour apply: + - views are scrolled synchronously (as if 'scrollbind' was set); + - views' cursors are synchronized; + - local filtering is disabled (its results wouldn't be meaningful); + - zd excludes groups of adjacent identical files, 1zd gives usual + behaviour; + - sorting is permanently disabled (ordering is fixed); + - removed files hide their counter pairs; + - exiting one of the views terminates the other immediately; + - renaming files isn't blocked, but isn't taken into account and might + require regeneration of comparison; + - entries which indicate absence of equivalent file have empty names + and can be matched as such; + - when unique files of both views are listed custom views can be + empty, this absence of unique files is stated clearly. + + One compare view has similar properties (those that are applicable for + single pane). + + Files are gathered in this way: + - recursively starting at current location of the view; + - dot files are excluded if view hides them at the moment of + comparison, file name filters are obeyed as well so you end up + comparing what you see; + - directories are not taken into account; + - symbolic links to directories are ignored. + +Startup + On startup vifm determines several variables that are used during + execution. They are determined in the order they appear below. + + On *nix systems $HOME is normally present and used as is. On Windows + systems vifm tries to find correct home directory in the following + order: + - $HOME variable; + - $USERPROFILE variable (on Windows only); + - a combination of $HOMEDRIVE and $HOMEPATH variables (on Windows + only). + + vifm tries to find correct configuration directory by checking the + following places: + - $VIFM variable; + - parent directory of the executable file (on Windows only); + - $HOME/.vifm directory; + - $APPDATA/Vifm directory (on Windows only); + - $XDG_CONFIG_HOME/vifm directory; + - $HOME/.config/vifm directory. + + vifm tries to find correct configuration file by checking the following + places: + - $MYVIFMRC variable; + - vifmrc in parent directory of the executable file (on Windows only); + - $VIFM/vifmrc file. + +Configure + See "Startup" section above for the explanations on $VIFM and + $MYVIFMRC. + + The vifmrc file contains commands that will be executed on vifm + startup. There are two such files: global and local. Global one is at + {prefix}/etc/vifm/vifmrc, see $MYVIFMRC variable description for the + search algorithm used to find local vifmrc. Global vifmrc is loaded + before the local one, so that the later one can redefine anything + configured globally. + + Use vifmrc to set settings, mappings, filetypes etc. To use multi line + commands precede each next line with a slash (whitespace before slash + is ignored, but all spaces at the end of the lines are saved). For + example: + + set + \smartcase + + equals "setsmartcase". When + + set + \ smartcase + + equals "set smartcase". + + The $VIFM/vifminfo file contains generic state of the application. You + can control what is stored in vifminfo by setting 'vifminfo' option. + Vifm always writes this file on exit unless 'vifminfo' option is empty. + Marks, bookmarks, commands, histories, filetypes, fileviewers and + registers in the file are merged with vifm configuration (which has + bigger priority). + + Generally, runtime configuration has bigger priority during merging, + but there are some exceptions: + + - directory stack stored in the file is not overwritten unless + something is changed in vifm instance that performs merge; + + - each mark or bookmark is marked with a timestamp, so that newer + value is not overwritten by older one, thus no matter from where it + comes, the newer one wins; + + - all histories are marked with timestamps on storing, this means + that last instance to quit puts its elements on top of the list; + + - tabs are merged only if both current instance and stored state + contain exactly one tab of any kind. + + The $VIFM/scripts directory can contain shell scripts. vifm modifies + its PATH environment variable to let user run those scripts without + specifying full path. All subdirectories of the $VIFM/scripts will be + added to PATH too. Script in a subdirectory overlaps script with the + same name in all its parent directories. + + The $VIFM/colors/ and {prefix}/etc/vifm/colors/ directories contain + color schemes. Available color schemes are searched in that order, so + on name conflict the one in $VIFM/colors/ wins. + + Each color scheme should have ".vifm" extension. This wasn't the case + before and for this reason the following rules apply during lookup: + + - if there is no file with .vifm extension, all regular files are + listed; + + - otherwise only files with .vifm extension are listed (with the + extension being truncated). + +Sessions + Sessions provide a way to have multiple persistent runtime + configurations. Think of them as second-level vifminfo files in + addition to the first-level one used by all sessions. In other words, + they aren't a replacement for vifminfo file that exists without + sessions, but an addition to it. One can empty 'vifminfo' option and + rely solely on sessions, but in practice one might want to share some + state among instances in different sessions or have an "out-of- + sessions" state for tasks that don't deserve a session of their own. + + This leads to a two-level structure where data in session files has + higher priority than data in vifminfo files (where this makes sense) + following the same rules that merging of vifminfo file obeys. In + addition to that, history items from session files are never ordered + before history items from vifminfo file. + + Format + + Sessions have the format of vifminfo files, they do not consist of + sequence of command-line commands and are not meant to be sourced via + :source command. + + Storage and naming + + `$VIFM/sessions/` directory serves as a storage for sessions. + Consequently names should be valid filenames. The structure of the + storage is flat meaning that there are no subdirectories, that's why + names of sessions can't contain slashes. + + Usage model + + Contrary to Vim, vifm automates basic management of sessions. You can + start, switch, stop or delete a session using builtin means. + + Current session is saved at the same time vifminfo is saved (on normal + exits or explicitly on :write command) and right before switching to + another session. To avoid saving in those cases use :session command + to detach (without saving) from a session before proceeding. + + Related topics + + Commands: :session, :delsession + Options: 'sessionoptions' + Variables: v:session + +Automatic FUSE mounts + vifm has a builtin support of automated FUSE file system mounts. It is + implemented using file associations mechanism. To enable automated + mounts, one needs to use a specially formatted program line in filetype + or filextype commands. These use special macros, which differ from + macros in commands unrelated to FUSE. Currently three formats are + supported: + + 1) FUSE_MOUNT This format should be used in case when all information + needed for mounting all files of a particular type is the same. E.g. + mounting of tar files don't require any file specific options. + + Format line: + FUSE_MOUNT|mounter %SOURCE_FILE %DESTINATION_DIR [%FOREGROUND] + + Example filetype command: + + :filetype FUSE_MOUNT|fuse-zip %SOURCE_FILE %DESTINATION_DIR + + 2) FUSE_MOUNT2 This format allows one to use specially formatted files + to perform mounting and is useful for mounting remotes, for example + remote file systems over ftp or ssh. + + Format line: + FUSE_MOUNT2|mounter %PARAM %DESTINATION_DIR [%FOREGROUND] + + Example filetype command: + + :filetype *.ssh FUSE_MOUNT2|sshfs %PARAM %DESTINATION_DIR + + Example file content: + + root@127.0.0.1:/ + + 3) FUSE_MOUNT3 + + This format is equivalent to FUSE_MOUNT, but omits unmounting. It is + useful for cases, when unmounting isn't needed, like when using AVFS. + + Example :filetype command: + + :filetype *.tar,*.tar.bz2,*.tbz2,*.tgz,*.tar.gz,*.tar.xz,*.txz,*.deb + \ {Mount with avfs} + \ FUSE_MOUNT3|mount-avfs %DESTINATION_DIR %SOURCE_FILE + + Example `mount-avfs` helper script: + + #!/bin/sh + + dest=$1 + file=$2 + + rmdir "$dest" + ln -s "$HOME/.avfs$file#/" "$dest" + + All % macros are expanded by vifm at runtime and have the following + meaning: + - %SOURCE_FILE is replaced by full path to selected file; + - %DESTINATION_DIR is replaced by full path to mount directory, which + is created by vifm basing on the value of 'fusehome' option; + - %PARAM value is filled from the first line of file (whole line), + though in the future it can be changed to whole file content; + - %FOREGROUND means that you want to run mount command as a regular + command (required to be able to provide input for communication with + mounter in interactive way). + + %FOREGROUND is an optional macro. Other macros are not mandatory, but + mount commands likely won't work without them. + + %CLEAR is obsolete name of %FOREGROUND, which is still supported, but + might be removed in future. Its use is discouraged. + + Unlike macros elsewhere, these are recognized only if they appear at + the end of a command or are followed by a space. There is no way to + escape % either. These are historical limitations, which might be + addressed in the future. + + The mounted FUSE file systems will be automatically unmounted in two + cases: + + - when vifm quits (with ZZ, :q, etc. or when killed by signal); + + - when you explicitly leave mount point going up to its parent + directory (with h, Enter on "../" or ":cd ..") and other pane is + not in the same directory or its child directories. + +View look + vifm supports displaying of file list view in two different ways: + + - in a table mode, when multiple columns can be set using + 'viewcolumns' option (see "Column view" section below for details); + + - in a multicolumn list manner which looks almost like `ls -x` + command output (see "ls-like view" section below for details). + + The look is local for each view and can be chosen by changing value of + the 'lsview' boolean option. + + Depending on view look some of keys change their meaning to allow more + natural cursor moving. This concerns mainly h, j, k, l and other + similar navigation keys. + + Also some of options can be ignored if they don't affect view + displaying in selected look. For example value of 'viewcolumns' when + 'lsview' is set. + +ls-like view + When this view look is enabled by setting 'lsview' option on, vifm will + display files in multiple columns. Number of columns depends on the + length of the longest file name present in current directory of the + view. Whole file list is automatically reflowed on directory change, + terminal or view resize. + + View looks close to output of `ls -x` command, so files are listed left + to right in rows. + + In this mode file manipulation commands (e.g. d) don't work line-wise + like they do in Vim, since such operations would be uncommon for file + manipulation tasks. Thus, for example, dd will remove only current + file. + + By default the view is filled by lines, 'lsoptions' can be used to get + filling by columns. + + Note that tree-view and compare view inhibit ls-like view. + +Column view + View columns are described by a comma-separated list of column + descriptions, each of which has the following format + [ '-' | '*' ] [ fw ( [ '.' tw ] | '%' ) ] '{' type | literal '}' + '.'{0,3} + where fw stands for full width, tw stands for text width, bar is + logical or, square brackets denote optional parts and curly braces + define range of repetitions for a symbol that precedes them. + + So it basically consists of four parts: + 1. Optional alignment specifier + 2. Optional width specifier + 3. Mandatory column name + 4. Optional cropping specifier + + Alignment specifier + + It's an optional minus or asterisk sign as the first symbol of the + string. + + Specifies type of text alignment within a column. Three types are + supported: + + - left align + + set viewcolumns=-{name} + + - right align (default) + + set viewcolumns={name} + + - dynamic align + + It's like left alignment, but when the text is bigger than the + column, the alignment is made at the right (so the part of the field + is always visible). + + set viewcolumns=*{name} + + Width specifier + + It's a number followed by a percent sign, two numbers (second one + should be less than or equal to the first one) separated with a dot or + a single number. + + Specifies column width and its units. There are three size types: + + - absolute size - column width is specified in characters + + set viewcolumns=-100{name},20.15{ext} + + results in two columns with lengths of 100 and 20 and a reserved + space of five characters on the left of second column. + + - relative (percent) size - column width is specified in percents of + view width + + set viewcolumns=-80%{name},15%{ext},5%{mtime} + + results in three columns with lengths of 80/100, 15/100 and 5/100 of + view width. + + - auto size (default) - column width is automatically determined + + set viewcolumns=-{name},{ext},{mtime} + + results in three columns with length of one third of view width. + There is no size adjustment to content, since it will slow down + rendering. + + Columns of different sizing types can be freely mixed in one view. + Though sometimes some of columns can be seen partly or be completely + invisible if there is not enough space to display them. + + Column contents + + This is usually a sorting key surrounded with curly braces, e.g. + + {name},{ext},{mtime} + + {name} and {iname} types are the same and present both for consistency + with 'sort' option. + + Following types don't have corresponding sorting keys: + + - {root} - display name without extension (as a complement for + {ext}) + + - {fileroot} - display name without extension for anything except for + directories and symbolic links to directories (as a complement for + {fileext}) + + Empty curly braces ({}) are replaced with the default secondary column + for primary sort key. So after the next command view will be displayed + almost as if 'viewcolumns' is empty, but adding ellipsis for long file + names: + + set viewcolumns=-{name}..,6{}. + + The last kind of column value is a string literal. The literal is used + as a column value for every row. The syntax is "{#literal}", for + example: + + 3{#},{#|},{# | } + + This can be used to draw column separators. Mind that for convenience + literals have different defaults: truncation and automatically + determined absolute size, which is what you usually want for them. + Example: + + set viewcolumns=*{name}..,{#|},6{}. + + Cropping specifier + + It's from one to three dots after closing curly brace in column format. + + Specifies type of text truncation if it doesn't fit in the column. + Currently three types are supported: + + - truncation - text is truncated + + set viewcolumns=-{name}. + + results in truncation of names that are too long too fit in the + view. + + - adding of ellipsis - ellipsis on the left or right are added when + needed + + set viewcolumns=-{name}.. + + results in that ellipsis are added at the end of too long file + names. + + - none (default) - text can pass column boundaries + + set viewcolumns=-{name}...,{ext} + + results in that long file names can partially be written on the ext + column. + +Color schemes + The color schemes in vifm can be applied in two different ways: + + - as the primary color scheme; + + - as local to a pane color scheme. + + Both types are set using :colorscheme command, but of different forms: + + - :colorscheme color_scheme_name - for the primary color scheme; + + - :colorscheme color_scheme_name directory - for local color schemes. + + Look of different parts of the TUI (Text User Interface) is determined + in this way: + + - Border, TabLine, TabLineSel, TopLineSel, TopLine, CmdLine, + ErrorMsg, StatusLine, JobLine, SuggestBox and WildMenu are always + determined by the primary color scheme; + + - CurrLine, Selected, Directory, Link, BrokenLink, Socket, Device, + Executable, Fifo, CmpMismatch, Win, AuxWin and OtherWin are + determined by primary color scheme and a set of local color + schemes, which can be empty. + + There might be a set of local color schemes because they are structured + hierarchically according to file system structure. For example, having + the following piece of file system: + + ~ + `-- bin + | + `-- my + + Two color schemes: + + # ~/.vifm/colors/for_bin + highlight Win cterm=none ctermfg=white ctermbg=red + highlight CurrLine cterm=none ctermfg=red ctermbg=black + + # ~/.vifm/colors/for_bin_my + highlight CurrLine cterm=none ctermfg=green ctermbg=black + + And these three commands in the vifmrc file: + + colorscheme Default + colorscheme for_bin ~/bin + colorscheme for_bin_my ~/bin/my + + File list will look in the following way for each level: + + - ~/ - Default color scheme + black background + cursor with blue background + + - ~/bin/ - mix of Default and for_bin color schemes + red background + cursor with black background and red foreground + + - ~/bin/my/ - mix of Default, for_bin and for_bin_my color schemes + red background + cursor with black background and green foreground + +Trash directory + vifm has support of trash directory, which is used as temporary storage + for deleted files or files that were cut. Using trash is controlled by + the 'trash' option, and exact path to the trash can be set with + 'trashdir' option. Trash directory in vifm differs from the system- + wide one by default, because of possible incompatibilities of storing + deleted files among different file managers. But one can set + 'trashdir' to "~/.local/share/Trash" to use a "standard" trash + directory. + + There are two scenarios of using trash in vifm: + + 1. As a place for storing files that were cut by "d" and may be + inserted to some other place in file system. + + 2. As a storage of files, that are deleted but not purged yet. + + The first scenario uses deletion ("d") operations to put files to trash + and put ("p") operations to restore files from trash directory. Note + that such operations move files to and from trash directory, which can + be long term operations in case of different partitions or remote + drives mounted locally. + + The second scenario uses deletion ("d") operations for moving files to + trash directory and :empty command-line command to purge all previously + deleted files. + + Deletion and put operations depend on registers, which can point to + files in trash directory. Normally, there are no nonexistent files in + registers, but vifm doesn't keep track of modifications under trash + directory, so one shouldn't expect value of registers to be absolutely + correct if trash directory was modified not by operation that are meant + for it. But this won't lead to any issues with operations, since they + ignore nonexistent files. + +Client-Server + vifm supports remote execution of command-line mode commands, remote + changing of directories and expression evaluation. This is possible + using --remote and --remote-expr command-line arguments. + + To execute a command remotely combine --remote argument with -c + or +. For example: + + vifm --remote -c 'cd /' + vifm --remote '+cd /' + + To change directory not using command-line mode commands one can + specify paths right after --remote argument, like this: + + vifm --remote / + vifm --remote ~ + vifm --remote /usr/bin /tmp + + Evaluating expression remotely might be useful to query information + about an instance, for example its location: + + vifm --remote-expr 'expand("%d")' + + If there are several running instances, the target can be specified + with --server-name option (otherwise, the first one lexicographically + is used): + + vifm --server-name work --remote ~/work/project + + List of names of running instances can be obtained via --server-list + option. Name of the current one is available via v:servername. + + + v:servername + server name of the running vifm instance. Empty if client- + server feature is disabled. + +External Renaming + When an editor is run to edit list of file names, contents of the + temporary file has the following format: + + 1. Order of lines correspond to the order of files in a view. + + 2. Lines that start with a "#" are comments and are ignored. + + 3. Single backslash at the beginning of a line is ignored, so that a + file starting with a backslash will appear like "\#name". + + If an operation was rejected due to issues with file names, next time + you'll see the following in this order: + + 1. Last error (in comments). + + 2. Original file names (in comments). + + 3. Failed list of new names. + + Mind that Vim plugin will extract list of original names and show them + in a vertical split. + + You can cancel renaming by removing all non-comments from the buffer. + This also erases information about previous edits. + +Plugin + Plugin for using vifm in vim as a file selector. + + Commands: + + :EditVifm select a file or files to open in the current buffer. + :Vifm alias for :EditVifm. + :SplitVifm split buffer and select a file or files to open. + :VsplitVifm vertically split buffer and select a file or files to + open. + :DiffVifm select a file or files to compare to the current file + with + :vert diffsplit. + :TabVifm select a file or files to open in tabs. + + Each command accepts up to two arguments: left pane directory and right + pane directory. After arguments are checked, vifm process is spawned + in a special "file-picker" mode. To pick files just open them either + by pressing l, i or Enter keys, or by running :edit command. If no + files are selected, file under the cursor is opened, otherwise whole + selection is passed to the plugin and opened in vim. + + The plugin have only two settings. It's a string variable named + g:vifm_term to let user specify command to run GUI terminal. By + default it's equal to 'xterm -e'. And another string variable named + g:vifm_exec, which equals "vifm" by default and specifies path to + vifm's executable. To pass arguments to vifm use g:vifm_exec_args, + which is empty by default. + + To use the plugin copy the vifm.vim file to either the system wide + vim/plugin directory or into ~/.vim/plugin. + + If you would prefer not to use the plugin and it is in the system wide + plugin directory add + + let loaded_vifm=1 + + to your ~/.vimrc file. + +Reserved + The following command names are reserved and shouldn't be used for user + commands. + + g[lobal] + v[global] + +ENVIRONMENT + VIFM Points to main configuration directory (usually ~/.vifm/). + + MYVIFMRC + Points to main configuration file (usually ~/.vifm/vifmrc). + + These environment variables are valid inside vifm and also can be used + to configure it by setting some of them before running vifm. + + When $MYVIFMRC isn't set, it's made as $VIFM/vifmrc (exception for + Windows: vifmrc in the same directory as vifm.exe has higher priority + than $VIFM/vifmrc). + + See "Startup" section above for more details. + + VIFM_FUSE_FILE + On execution of external commands this variable is set to the + full path of file used to initiate FUSE mount of the closest + mount point from current pane's directory up. It's not set when + outside FUSE mount point. When vifm is used inside terminal + multiplexer, it tries to set this variable as well (it doesn't + work this way on its own). + +SEE ALSO + vifm-convert-dircolors(1), vifm-pause(1) + + Website: https://vifm.info/ + Wiki: https://wiki.vifm.info/ + + Esperanto translation of the documentation by Sebastian Cyprych: + http://cyprych.neostrada.pl/tekstoj/komputiloj/vifm-help.eo.html + +AUTHOR + Vifm was written by ksteen + And currently is developed by xaizek + +vifm 0.12 September 29, 2021 VIFM(1) diff --git a/.config/vifm/vifminfo.json b/.config/vifm/vifminfo.json new file mode 100644 index 0000000..dc866c9 --- /dev/null +++ b/.config/vifm/vifminfo.json @@ -0,0 +1 @@ +{"gtabs":[{"panes":[{"ptabs":[{"history":[{"dir":"/usr/ports/sysutils/vifm","file":"..","relpos":0,"ts":1707054207},{"dir":"/usr/ports/sysutils","file":"vifm","relpos":24,"ts":1707209016},{"dir":"/usr/ports/sysutils/vifm","file":"patches","relpos":2,"ts":1707209016},{"dir":"/usr/ports/sysutils/vifm/patches","file":"patch-src_Makefile_in","relpos":2,"ts":1661688763},{"dir":"/usr/ports/sysutils/vifm","file":"pkg","relpos":2,"ts":1707054207},{"dir":"/usr/ports/sysutils/vifm/pkg","file":"CVS","relpos":1,"ts":1707054207},{"dir":"/usr/ports/sysutils/vifm/pkg/CVS","file":"..","relpos":0,"ts":1707054207},{"dir":"/usr/ports/sysutils/vifm/pkg","file":"CVS","relpos":1,"ts":1707054207},{"dir":"/usr/ports/sysutils/vifm","file":"..","relpos":0,"ts":1707054207},{"dir":"/usr/ports/sysutils","file":"vifm","relpos":24,"ts":1707209016},{"dir":"/usr/ports/sysutils/vifm","file":"pkg","relpos":2,"ts":1707209016},{"dir":"/usr/ports/sysutils","file":"sleuthkit","relpos":6,"ts":1707209666},{"dir":"/usr/ports/sysutils/vifm/pkg/CVS","file":"..","relpos":0,"ts":1707054207},{"dir":"/usr/ports/sysutils/vifm/pkg","file":"CVS","relpos":1,"ts":1707054207},{"dir":"/usr/ports/sysutils/vifm","file":"..","relpos":0,"ts":1707054207},{"dir":"/usr/ports/sysutils","file":"vifm","relpos":24,"ts":1707209016},{"dir":"/usr/ports/sysutils/vifm","file":"patches","relpos":2,"ts":1707209016},{"dir":"/usr/ports/sysutils/vifm/patches","file":"patch-src_Makefile_in","relpos":2,"ts":1661688763},{"dir":"/usr/ports/sysutils/vifm","file":"pkg","relpos":2,"ts":1707054207},{"dir":"/usr/ports/sysutils/vifm/pkg","file":"CVS","relpos":1,"ts":1707054207},{"dir":"/usr/ports/sysutils/vifm/pkg/CVS","file":"..","relpos":0,"ts":1707054207},{"dir":"/usr/ports/sysutils/vifm/pkg","file":"CVS","relpos":1,"ts":1707054207},{"dir":"/usr/ports/sysutils/vifm","file":"..","relpos":0,"ts":1707054207},{"dir":"/usr/ports/sysutils","file":"vifm","relpos":24,"ts":1707209016},{"dir":"/usr/ports/sysutils/vifm","file":"pkg","relpos":2,"ts":1707209016},{"dir":"/usr/ports/sysutils","file":"sleuthkit","relpos":6,"ts":1707209666},{"dir":"/usr/ports/sysutils/vifm/pkg/CVS","file":"..","relpos":0,"ts":1707054207},{"dir":"/usr/ports/sysutils/vifm/pkg","file":"CVS","relpos":1,"ts":1707054207},{"dir":"/usr/ports/sysutils/vifm","file":"..","relpos":0,"ts":1707054207},{"dir":"/usr/ports/sysutils","file":"vifm","relpos":24,"ts":1707209016},{"dir":"/usr/ports/sysutils/vifm","file":"patches","relpos":2,"ts":1707209016},{"dir":"/usr/ports/sysutils/vifm/patches","file":"patch-src_Makefile_in","relpos":2,"ts":1661688763},{"dir":"/usr/ports/sysutils/vifm","file":"pkg","relpos":2,"ts":1707054207},{"dir":"/usr/ports/sysutils/vifm/pkg","file":"CVS","relpos":1,"ts":1707054207},{"dir":"/usr/ports/sysutils/vifm/pkg/CVS","file":"..","relpos":0,"ts":1707054207},{"dir":"/usr/ports/sysutils/vifm/pkg","file":"CVS","relpos":1,"ts":1707054207},{"dir":"/usr/ports/sysutils/vifm","file":"..","relpos":0,"ts":1707054207},{"dir":"/usr/ports/sysutils","file":"vifm","relpos":24,"ts":1707209016},{"dir":"/usr/ports/sysutils/vifm","file":"pkg","relpos":2,"ts":1707209016},{"dir":"/usr/ports/sysutils","file":"sleuthkit","relpos":6,"ts":1707209666},{"dir":"/usr/ports/sysutils/vifm/pkg","file":"CVS","relpos":1,"ts":1707054207},{"dir":"/usr/ports/sysutils/vifm/pkg/CVS","file":"..","relpos":0,"ts":1707054207},{"dir":"/usr/ports/sysutils/vifm/pkg","file":"CVS","relpos":1,"ts":1707054207},{"dir":"/usr/ports/sysutils/vifm","file":"..","relpos":0,"ts":1707054207},{"dir":"/usr/ports/sysutils","file":"vifm","relpos":24,"ts":1707209016},{"dir":"/usr/ports/sysutils/vifm","file":"patches","relpos":2,"ts":1707209016},{"dir":"/usr/ports/sysutils/vifm/patches","file":"patch-src_Makefile_in","relpos":2,"ts":1661688763},{"dir":"/usr/ports/sysutils/vifm","file":"pkg","relpos":2,"ts":1707054207},{"dir":"/usr/ports/sysutils/vifm/pkg","file":"CVS","relpos":1,"ts":1707054207},{"dir":"/usr/ports/sysutils/vifm/pkg/CVS","file":"..","relpos":0,"ts":1707054207},{"dir":"/usr/ports/sysutils/vifm/pkg","file":"CVS","relpos":1,"ts":1707054207},{"dir":"/usr/ports/sysutils/vifm","file":"..","relpos":0,"ts":1707054207},{"dir":"/usr/ports/sysutils","file":"vifm","relpos":24,"ts":1707209016},{"dir":"/usr/ports/sysutils/vifm","file":"patches","relpos":2,"ts":1707209016},{"dir":"/usr/ports/sysutils/vifm/patches","file":"patch-src_Makefile_in","relpos":2,"ts":1661688763},{"dir":"/usr/ports/sysutils/vifm","file":"pkg","relpos":2,"ts":1707054207},{"dir":"/usr/ports/sysutils/vifm/pkg","file":"CVS","relpos":1,"ts":1707054207},{"dir":"/usr/ports/sysutils/vifm/pkg/CVS","file":"..","relpos":0,"ts":1707054207},{"dir":"/usr/ports/sysutils/vifm/pkg","file":"CVS","relpos":1,"ts":1707054207},{"dir":"/usr/ports/sysutils/vifm","file":"..","relpos":0,"ts":1707054207},{"dir":"/usr/ports/sysutils","file":"vifm","relpos":24,"ts":1707209016},{"dir":"/usr/ports/sysutils/vifm","file":"patches","relpos":2,"ts":1707209016},{"dir":"/usr/ports/sysutils/vifm/patches","file":"patch-src_Makefile_in","relpos":2,"ts":1661688763},{"dir":"/usr/ports/sysutils/vifm","file":"pkg","relpos":2,"ts":1707054207},{"dir":"/usr/ports/sysutils/vifm/pkg","file":"CVS","relpos":1,"ts":1707054207},{"dir":"/usr/ports/sysutils/vifm/pkg/CVS","file":"..","relpos":0,"ts":1707054207},{"dir":"/usr/ports/sysutils/vifm/pkg","file":"CVS","relpos":1,"ts":1707054207},{"dir":"/usr/ports/sysutils/vifm","file":"..","relpos":0,"ts":1707054207},{"dir":"/usr/ports/sysutils","file":"vifm","relpos":24,"ts":1707209016},{"dir":"/usr/ports/sysutils/vifm","file":"pkg","relpos":2,"ts":1707209016},{"dir":"/usr/ports/sysutils","file":"sleuthkit","relpos":6,"ts":1707209666},{"dir":"/home/sdk/.config","file":"..","relpos":0,"ts":1707209935},{"dir":"/home/sdk/.bin","file":"..","relpos":0,"ts":1707209935},{"dir":"/home/sdk","file":"..","relpos":0,"ts":1707210118},{"dir":"/home","file":"sdk","relpos":4,"ts":1707210118},{"dir":"/home/sdk","file":"..","relpos":0,"ts":1707210118},{"dir":"/home/sdk/.bin","file":"mount_tank","relpos":25,"ts":1707210118},{"dir":"/tank","file":"buffer","relpos":1,"ts":1707569590},{"dir":"/tank/buffer","file":"..","relpos":0,"ts":1707569590},{"dir":"/tank","file":"buffer","relpos":1,"ts":1707569590},{"dir":"/tank/buffer","file":"Niki-Andi-Geburtstag.zip","relpos":11,"ts":1707569590},{"dir":"/home/sdk/x","file":"impregnation","relpos":3,"ts":1707569817},{"dir":"/home/sdk/x/impregnation","file":"..","relpos":0,"ts":1707569817},{"dir":"/home/sdk/x","file":"brother_sister","relpos":1,"ts":1707569817},{"dir":"/home/sdk","file":"..","relpos":0,"ts":1707570317},{"dir":"/home","file":"sdk","relpos":4,"ts":1707570405},{"dir":"/home/sdk","file":"..","relpos":0,"ts":1707570405},{"dir":"/tank","file":"buffer","relpos":1,"ts":1707570436},{"dir":"/tank/buffer","file":"Invoice-Elgato4K60S-202326475-29430.pdf","relpos":9,"ts":1707570670},{"dir":"/home/sdk/Code/source-code-pro","file":"..","relpos":0,"ts":1707851175},{"dir":"/home/sdk/Code","file":"..","relpos":0,"ts":1707851175},{"dir":"/home/sdk","file":"Code","relpos":3,"ts":1707851175},{"dir":"/home/sdk/.fonts","file":"SourceCodePro-It.ttf","relpos":17,"ts":1707851175},{"dir":"/home/sdk/Downloads","file":"..","relpos":0,"ts":1707851487},{"dir":"/home/sdk/.fonts","file":"..","relpos":0,"ts":1707851487},{"dir":"/home/sdk","file":"..","relpos":0,"ts":1707851487},{"dir":"/home/sdk/.bin/OLD","file":"..","relpos":0,"ts":1707893020},{"dir":"/home/sdk/.bin","file":"..","relpos":0,"ts":1707893020},{"dir":"/home/sdk","file":"..","relpos":0,"ts":1707893020},{"dir":"/home/sdk/.bin.old","file":"..","relpos":0,"ts":1707893020}],"filters":{"invert":true,"dot":true,"manual":"","auto":""},"sorting":[2],"preview":false}]},{"ptabs":[{"history":[{"dir":"/home/sdk/hotplug-scripte","file":"..","relpos":0,"ts":1707209016},{"dir":"/home/sdk","file":"hotplug-scripte","relpos":20,"ts":1707209016},{"dir":"/home","file":"sdk","relpos":4,"ts":1707209016},{"dir":"/","file":"home","relpos":5,"ts":1707209016},{"dir":"/home","file":"sdk","relpos":4,"ts":1707209016},{"dir":"/home/sdk","file":"irc","relpos":21,"ts":1707209016},{"dir":"/home/sdk/irc","file":"..","relpos":0,"ts":1707209016},{"dir":"/home/sdk","file":"irc","relpos":21,"ts":1707209016},{"dir":"/home/sdk/irc","file":"..","relpos":0,"ts":1707209016},{"dir":"/home/sdk","file":"diffs","relpos":18,"ts":1707209016},{"dir":"/usr/ports/sysutils/vifm","file":"Makefile","relpos":3,"ts":1661688763},{"dir":"/usr/ports/sysutils","file":"ttyload","relpos":11,"ts":1707054207},{"dir":"/usr/ports/sysutils/ttyload","file":"..","relpos":0,"ts":1707054207},{"dir":"/usr/ports/sysutils","file":"tentakel","relpos":41,"ts":1707208284},{"dir":"/home/sdk","file":"Drist","relpos":7,"ts":1707208284},{"dir":"/home/sdk/Drist","file":"..","relpos":0,"ts":1707209016},{"dir":"/home/sdk","file":"hotplug-scripte","relpos":20,"ts":1707209016},{"dir":"/home/sdk/hotplug-scripte","file":"..","relpos":0,"ts":1707209016},{"dir":"/home/sdk","file":"hotplug-scripte","relpos":20,"ts":1707209016},{"dir":"/home","file":"sdk","relpos":4,"ts":1707209016},{"dir":"/","file":"home","relpos":5,"ts":1707209016},{"dir":"/home","file":"sdk","relpos":4,"ts":1707209016},{"dir":"/home/sdk","file":"irc","relpos":21,"ts":1707209016},{"dir":"/home/sdk/irc","file":"..","relpos":0,"ts":1707209016},{"dir":"/home/sdk","file":"irc","relpos":21,"ts":1707209016},{"dir":"/home/sdk/irc","file":"..","relpos":0,"ts":1707209016},{"dir":"/home/sdk","file":"..","relpos":0,"ts":1707209016},{"dir":"/home","file":"sdk","relpos":4,"ts":1707569590},{"dir":"/home/sdk","file":"Desktop","relpos":4,"ts":1707569590},{"dir":"/home/sdk/Desktop","file":"..","relpos":0,"ts":1707569590},{"dir":"/home/sdk","file":"Documents","relpos":5,"ts":1707569590},{"dir":"/home/sdk/Documents","file":"..","relpos":0,"ts":1707569590},{"dir":"/home/sdk","file":"Documents","relpos":5,"ts":1707569817},{"dir":"/home/sdk/ytdl","file":"..","relpos":0,"ts":1707569817},{"dir":"/home/sdk","file":"ytdl","relpos":25,"ts":1707569817},{"dir":"/home/sdk/ytdl","file":"XXX","relpos":2,"ts":1707569817},{"dir":"/home/sdk/ytdl/XXX","file":"impreg","relpos":1,"ts":1707569817},{"dir":"/home/sdk/ytdl/XXX/impreg","file":"..","relpos":0,"ts":1707569817},{"dir":"/home/sdk/ytdl/XXX","file":"no_bc","relpos":4,"ts":1707569817},{"dir":"/home/sdk/ytdl/XXX/no_bc","file":"..","relpos":0,"ts":1707569817},{"dir":"/home/sdk/ytdl/XXX","file":"brother_sister","relpos":1,"ts":1707570388},{"dir":"/home/sdk/ytdl/XXX/brother_sister","file":"..","relpos":0,"ts":1707570388},{"dir":"/home/sdk/ytdl/XXX","file":"..","relpos":0,"ts":1707570388},{"dir":"/home/sdk/ytdl","file":"XXX","relpos":2,"ts":1707570388},{"dir":"/home/sdk","file":"ytdl","relpos":25,"ts":1707570390},{"dir":"/home/sdk/ytdl","file":"XXX","relpos":2,"ts":1707570394},{"dir":"/home/sdk","file":"Documents","relpos":5,"ts":1707570405},{"dir":"/tank","file":"buffer","relpos":1,"ts":1707570436},{"dir":"/tank/buffer","file":"_TODO","relpos":3,"ts":1707570670},{"dir":"/tank/buffer/_TODO","file":"..","relpos":0,"ts":1707570670},{"dir":"/tank/buffer","file":"_TODO","relpos":3,"ts":1707570670},{"dir":"/tank/buffer/_TODO","file":"CURATED","relpos":1,"ts":1707570670},{"dir":"/tank/buffer/_TODO/CURATED","file":"final-nocover","relpos":1,"ts":1707570670},{"dir":"/tank/buffer/_TODO/CURATED/final-nocover","file":"Annihilator - (1993) - Phoenix Rising","relpos":10,"ts":1707570670},{"dir":"/tank/buffer/_TODO/CURATED/final-nocover/Annihilator - (1993) - Phoenix Rising","file":"..","relpos":0,"ts":1707570670},{"dir":"/tank/buffer/_TODO/CURATED/final-nocover","file":"Annihilator - (1993) - Phoenix Rising","relpos":10,"ts":1707570670},{"dir":"/tank/buffer/_TODO/CURATED/final-nocover/Annihilator - (1993) - Phoenix Rising","file":"..","relpos":0,"ts":1707570670},{"dir":"/tank/buffer/_TODO/CURATED/final-nocover","file":"Annihilator - (1993) - Phoenix Rising","relpos":10,"ts":1707570670},{"dir":"/tank/buffer/_TODO/CURATED/final-nocover/Annihilator - (1993) - Phoenix Rising","file":"..","relpos":0,"ts":1707570670},{"dir":"/tank/buffer/_TODO/CURATED/final-nocover","file":"Daft Punk - (2008) - Harder Better Faster Stronger 2008 (Alive Club Mix) _ Touch It Technologic (Alive Club Mix)","relpos":9,"ts":1707570670},{"dir":"/tank/buffer/_TODO/CURATED/final-nocover/Daft Punk - (2008) - Harder Better Faster Stronger 2008 (Alive Club Mix) _ Touch It Technologic (Alive Club Mix)","file":"..","relpos":0,"ts":1707570670},{"dir":"/tank/buffer/_TODO/CURATED/final-nocover","file":"Das Ich - (1994) - Stigma","relpos":12,"ts":1707570670},{"dir":"/tank/buffer/_TODO/CURATED/final-nocover/Das Ich - (1994) - Stigma","file":"..","relpos":0,"ts":1707570670},{"dir":"/tank/buffer/_TODO/CURATED/final-nocover","file":"..","relpos":0,"ts":1707570670},{"dir":"/tank/buffer/_TODO/CURATED","file":"..","relpos":0,"ts":1707570670},{"dir":"/tank/buffer/_TODO","file":"M2SATA","relpos":2,"ts":1707570670},{"dir":"/tank/buffer/_TODO/M2SATA","file":"MUSIC-COVER","relpos":1,"ts":1707570670},{"dir":"/tank/buffer/_TODO/M2SATA/MUSIC-COVER","file":"2 Unlimited - (1995) - Hits Unlimited","relpos":1,"ts":1707570670},{"dir":"/home/sdk/Code/source-code-pro","file":"TTF","relpos":2,"ts":1707851175},{"dir":"/home/sdk/Code/source-code-pro/TTF","file":"..","relpos":0,"ts":1707851175},{"dir":"/home/sdk/Code/source-code-pro","file":"VF","relpos":3,"ts":1707851175},{"dir":"/home/sdk/Code/source-code-pro/VF","file":"SourceCodeVF-Italic.ttf","relpos":2,"ts":1707851175},{"dir":"/home/sdk/Downloads","file":"fonts","relpos":8,"ts":1707851487},{"dir":"/home/sdk/Downloads/fonts","file":"ttf","relpos":1,"ts":1707851487},{"dir":"/home/sdk/Downloads/fonts/ttf","file":"..","relpos":0,"ts":1707851487},{"dir":"/home/sdk/Downloads/fonts","file":"variable","relpos":2,"ts":1707851487},{"dir":"/home/sdk/Downloads/fonts/variable","file":"..","relpos":0,"ts":1707851487},{"dir":"/home/sdk/Downloads/fonts","file":"ttf","relpos":1,"ts":1707851487},{"dir":"/home/sdk/Downloads/fonts/ttf","file":"..","relpos":0,"ts":1707851487},{"dir":"/home/sdk/Downloads/fonts","file":"variable","relpos":2,"ts":1707851487},{"dir":"/home/sdk/Downloads/fonts/variable","file":"JetBrainsMono-ItalicVF.ttf","relpos":1,"ts":1707851487},{"dir":"/home/sdk/.bin/OLD","file":"mud","relpos":3,"ts":1707893020},{"dir":"/home/sdk/.bin/OLD/mud","file":"..","relpos":0,"ts":1707893020},{"dir":"/home/sdk/.bin/OLD","file":"t2i","relpos":4,"ts":1707893020},{"dir":"/home/sdk/.bin/OLD/t2i","file":"..","relpos":0,"ts":1707893020},{"dir":"/home/sdk/.bin/OLD","file":"t2i","relpos":4,"ts":1707893020},{"dir":"/home/sdk/.bin/OLD/t2i","file":"..","relpos":0,"ts":1707893020},{"dir":"/home/sdk/.bin/OLD","file":"mud","relpos":3,"ts":1707893020},{"dir":"/home/sdk/.bin/OLD/mud","file":"..","relpos":0,"ts":1707893020},{"dir":"/home/sdk/.bin/OLD","file":"t2i","relpos":3,"ts":1707893020},{"dir":"/home/sdk/.bin/OLD/t2i","file":"..","relpos":0,"ts":1707893020},{"dir":"/home/sdk/.bin/OLD","file":"edit","relpos":2,"ts":1707893020},{"dir":"/home/sdk/.bin/OLD/edit","file":"..","relpos":0,"ts":1707893020},{"dir":"/home/sdk/.bin/OLD","file":"KAPUTT","relpos":1,"ts":1707893020},{"dir":"/home/sdk/.bin/OLD/KAPUTT","file":"..","relpos":0,"ts":1707893020},{"dir":"/home/sdk/.bin/OLD","file":"KAPUTT","relpos":1,"ts":1707893020},{"dir":"/home/sdk/.bin/OLD/KAPUTT","file":"..","relpos":0,"ts":1707893020},{"dir":"/home/sdk/.bin/OLD","file":"edit","relpos":2,"ts":1707893020},{"dir":"/home/sdk/.bin/OLD/edit","file":"..","relpos":0,"ts":1707893020},{"dir":"/home/sdk/.bin/OLD","file":"wmren","relpos":12,"ts":1707893020}],"filters":{"invert":true,"dot":true,"manual":"","auto":""},"sorting":[2],"preview":false}]}],"active-pane":1,"preview":false,"splitter":{"pos":-1,"ratio":0.5,"orientation":"v","expanded":false}}],"trash":[{"trashed":"/home/sdk/.local/share/vifm/Trash/000_apps.tgz","original":"/home/sdk/.bin/apps.tgz"},{"trashed":"/home/sdk/.local/share/vifm/Trash/001_apps.tgz","original":"/home/sdk/.bin/apps.tgz"},{"trashed":"/home/sdk/.local/share/vifm/Trash/000_Niki-Andi-Geburtstag.zip","original":"/home/sdk/Desktop/Niki-Andi-Geburtstag.zip"},{"trashed":"/home/sdk/.local/share/vifm/Trash/000_AUTHORS.txt","original":"/home/sdk/Downloads/AUTHORS.txt"},{"trashed":"/home/sdk/.local/share/vifm/Trash/000_OFL.txt","original":"/home/sdk/Downloads/OFL.txt"},{"trashed":"/home/sdk/.local/share/vifm/Trash/000_Makefile","original":"/home/sdk/Makefile"},{"trashed":"/home/sdk/.local/share/vifm/Trash/000_impregnation","original":"/home/sdk/x/impregnation"},{"trashed":"/home/sdk/.local/share/vifm/Trash/000_2T4A7488.jpg","original":"/tank/buffer/2T4A7488.jpg"}],"marks":{"H":{"dir":"/home/sdk/","file":"..","ts":1661688744},"b":{"dir":"/home/sdk/.bin/","file":"..","ts":1707569456},"c":{"dir":"/home/sdk/.config/","file":"..","ts":1707570438},"d":{"dir":"/usr/ports/sysutils","file":"sleuthkit","ts":1707209861},"h":{"dir":"/home/sdk/","file":"..","ts":1661688744},"m":{"dir":"/tank","file":"..","ts":1707570417},"t":{"dir":"/tank/","file":"..","ts":1707851085},"z":{"dir":"/home/sdk/.config/vifm","file":"..","ts":1661688744}},"bmarks":{},"search-hist":[{"text":"Make","ts":1707054207},{"text":"pk","ts":1707209666},{"text":"up","ts":1707209666},{"text":"sy","ts":1707209666},{"text":"tank","ts":1707569590},{"text":"Jet","ts":1707851487}],"prompt-hist":[{"text":"Makefile","ts":1707208284}],"regs":{"\"":["/home/sdk/Downloads/fonts/variable/JetBrainsMono-ItalicVF.ttf","/home/sdk/Downloads/fonts/variable/JetBrainsMonoVF.ttf"]},"dir-stack":[],"use-term-multiplexer":false} \ No newline at end of file diff --git a/.config/vifm/vifmrc b/.config/vifm/vifmrc new file mode 100644 index 0000000..f9aa115 --- /dev/null +++ b/.config/vifm/vifmrc @@ -0,0 +1,507 @@ +" vim: filetype=vifm : +" Sample configuration file for vifm (last updated: 31 August, 2021) +" You can edit this file by hand. +" The " character at the beginning of a line comments out the line. +" Blank lines are ignored. +" The basic format for each item is shown with an example. + +" ------------------------------------------------------------------------------ + +" Command used to edit files in various contexts. The default is vim. +" If you would like to use another vi clone such as Elvis or Vile +" you will need to change this setting. + +set vicmd=vim +" set vicmd=elvis\ -G\ termcap +" set vicmd=vile + +" This makes vifm perform file operations on its own instead of relying on +" standard utilities like `cp`. While using `cp` and alike is a more universal +" solution, it's also much slower when processing large amounts of files and +" doesn't support progress measuring. + +set syscalls + +" Trash Directory +" The default is to move files that are deleted with dd or :d to +" the trash directory. If you change this you will not be able to move +" files by deleting them and then using p to put the file in the new location. +" I recommend not changing this until you are familiar with vifm. +" This probably shouldn't be an option. + +set trash +set trashdir="~/.local/share/vifm/Trash" + +" This is how many directories to store in the directory history. + +set history=100 + +" Automatically resolve symbolic links on l or Enter. + +set nofollowlinks + +" Natural sort of (version) numbers within text. + +set sortnumbers + +" Display line numbers + +set number + +" Maximum number of changes that can be undone. + +set undolevels=100 + +" Use Vim's format of help file (has highlighting and "hyperlinks"). +" If you would rather use a plain text help file set novimhelp. + +set vimhelp + +" If you would like to run an executable file when you +" press Enter, l or Right Arrow, set this. + +set norunexec + +" List of color schemes to try (picks the first one supported by the terminal) + +colorscheme gruvbox + +" Format for displaying time in file list. For example: +" TIME_STAMP_FORMAT=%m/%d-%H:%M +" See man date or man strftime for details. + +set timefmt=%m/%d\ %H:%M + +" Show list of matches on tab completion in command-line mode + +set wildmenu + +" Display completions in a form of popup with descriptions of the matches + +set wildstyle=popup + +" Display suggestions in normal, visual and view modes for keys, marks and +" registers (at most 5 files). In other view, when available. + +set suggestoptions=normal,visual,view,otherpane,keys,marks,registers + +" Ignore case in search patterns unless it contains at least one uppercase +" letter + +set ignorecase +set smartcase + +" Don't highlight search results automatically + +set hlsearch + +" Use increment searching (search while typing) +set incsearch + +" Try to leave some space from cursor to upper/lower border in lists + +set scrolloff=3 + +" Don't do too many requests to slow file systems + +if !has('win') + set slowfs=curlftpfs +endif + +" Set custom status line look + +set statusline=" Hint: %z%= %A %10u:%-7g %15s %20d " + +" ------------------------------------------------------------------------------ + +" :mark mark /full/directory/path [filename] + +mark b ~/.bin/ +mark h ~/ +mark t /tank/ +mark c ~/.config/ + +" ------------------------------------------------------------------------------ + +" :com[mand][!] command_name action +" The following macros can be used in a command +" %a is replaced with the user arguments. +" %c the current file under the cursor. +" %C the current file under the cursor in the other directory. +" %f the current selected file, or files. +" %F the current selected file, or files in the other directory. +" %b same as %f %F. +" %d the current directory name. +" %D the other window directory name. +" %m run the command in a menu window + +command! df df -h %m 2> /dev/null +command! diff vim -d %f %F +command! zip zip -r %c.zip %f +command! run !! ./%f +command! make !!make %a +command! mkcd :mkdir %a | cd %a +command! vgrep vim "+grep %a" +command! reload :write | restart full +command! pack tar czf %f.tgz %f && readlink -f %f.tgz | xclip + +" ------------------------------------------------------------------------------ + +" The file type is for the default programs to be used with +" a file extension. +" :filetype pattern1,pattern2 defaultprogram,program2 +" :fileviewer pattern1,pattern2 consoleviewer +" The other programs for the file type can be accessed with the :file command +" The command macros like %f, %F, %d, %D may be used in the commands. +" The %a macro is ignored. To use a % you must put %%. + +" For automated FUSE mounts, you must register an extension with :file[x]type +" in one of following formats: +" +" :filetype extensions FUSE_MOUNT|some_mount_command using %SOURCE_FILE and %DESTINATION_DIR variables +" %SOURCE_FILE and %DESTINATION_DIR are filled in by vifm at runtime. +" A sample line might look like this: +" :filetype *.zip,*.jar,*.war,*.ear FUSE_MOUNT|fuse-zip %SOURCE_FILE %DESTINATION_DIR +" +" :filetype extensions FUSE_MOUNT2|some_mount_command using %PARAM and %DESTINATION_DIR variables +" %PARAM and %DESTINATION_DIR are filled in by vifm at runtime. +" A sample line might look like this: +" :filetype *.ssh FUSE_MOUNT2|sshfs %PARAM %DESTINATION_DIR +" %PARAM value is filled from the first line of file (whole line). +" Example first line for SshMount filetype: root@127.0.0.1:/ +" +" You can also add %CLEAR if you want to clear screen before running FUSE +" program. + +" Pdf +filextype {*.pdf}, zathura %c %i &, apvlv %c, xpdf %c +fileviewer {*.pdf}, pdftotext -nopgbrk %c - + +" PostScript +filextype {*.ps,*.eps,*.ps.gz}, + \ {View in zathura} + \ zathura %f, + \ {View in gv} + \ gv %c %i &, + +" Djvu +filextype {*.djvu}, + \ {View in zathura} + \ zathura %f, + \ {View in apvlv} + \ apvlv %f, + +" Audio +filetype {*.wav,*.mp3,*.flac,*.m4a,*.wma,*.ape,*.ac3,*.og[agx],*.spx,*.opus}, + \