Compare commits

11 Commits

Author SHA1 Message Date
fedor d515b63da2 wallpapers, settings 2026-05-09 13:42:04 +03:00
fedor 03510221ad 2026-03-15 Tower arch 2026-03-15 14:29:47 +03:00
fedor 4f70fab4a2 2026-03-15 Tower-arch 2026-03-15 13:38:42 +03:00
fedor a945727d2b add command for package listing 2025-12-19 13:35:33 +03:00
fedor a9e070b16c some minor edits 2025-12-19 13:25:13 +03:00
fedor 1b667f972d add bat, gg alias 2025-12-14 16:24:44 +03:00
fedor e4dfaf1c22 Add readme with programs 2025-12-13 15:06:34 +03:00
fedor 2ebf7e7a15 add solarized theme to nvim 2025-12-13 14:33:31 +03:00
fedor 4d115024dd add fish and alacritty themes 2025-12-13 14:22:49 +03:00
fedor ff5e853e93 fix aliases 2025-12-13 14:09:54 +03:00
fedor e031105b26 Initial commit from notebook 2025-12-13 09:58:52 +03:00
85 changed files with 6256 additions and 409 deletions
-25
View File
@@ -1,25 +0,0 @@
alias open=xdg-open
alias aliases="$EDITOR $ZSH/custom/aliases.zsh"
alias vimrc="$EDITOR ~/.vimrc"
alias venv="source .venv/bin/activate"
alias mkvenv="python3 -m venv .venv && source .venv/bin/activate"
alias gcd='git checkout development'
alias here=gnome-terminal
alias sgrep='grep -R -n -H -C 5 --exclude-dir={.git,.svn,CVS,.venv} '
alias save='gca && gp'
alias beep='paplay /usr/share/sounds/gnome/default/alerts/bark.ogg'
function _commands() {
awk '{a[$2]++}END{for(i in a){print a[i] " " i}}'
}
alias topten="history | _commands | sort -rn | head"
function _show_answers() {
for f in *; do
echo '-------------------- ' $f ' ----------------------'
cat $f
done
echo '------------------------------------------'
}
alias show_answers="_show_answers | less"
@@ -1,228 +0,0 @@
# vim:ft=zsh ts=2 sw=2 sts=2
#
# agnoster's Theme - https://gist.github.com/3712874
# A Powerline-inspired theme for ZSH
#
# # README
#
# In order for this theme to render correctly, you will need a
# [Powerline-patched font](https://github.com/Lokaltog/powerline-fonts).
# Make sure you have a recent version: the code points that Powerline
# uses changed in 2012, and older versions will display incorrectly,
# in confusing ways.
#
# In addition, I recommend the
# [Solarized theme](https://github.com/altercation/solarized/) and, if you're
# using it on Mac OS X, [iTerm 2](http://www.iterm2.com/) over Terminal.app -
# it has significantly better color fidelity.
#
# # Goals
#
# The aim of this theme is to only show you *relevant* information. Like most
# prompts, it will only show git information when in a git working directory.
# However, it goes a step further: everything from the current user and
# hostname to whether the last call exited with an error to whether background
# jobs are running in this shell will all be displayed automatically when
# appropriate.
### Segment drawing
# A few utility functions to make it easy and re-usable to draw segmented prompts
CURRENT_BG='NONE'
# Special Powerline characters
() {
local LC_ALL="" LC_CTYPE="en_US.UTF-8"
# NOTE: This segment separator character is correct. In 2012, Powerline changed
# the code points they use for their special characters. This is the new code point.
# If this is not working for you, you probably have an old version of the
# Powerline-patched fonts installed. Download and install the new version.
# Do not submit PRs to change this unless you have reviewed the Powerline code point
# history and have new information.
# This is defined using a Unicode escape sequence so it is unambiguously readable, regardless of
# what font the user is viewing this source code in. Do not replace the
# escape sequence with a single literal character.
# Do not change this! Do not make it '\u2b80'; that is the old, wrong code point.
SEGMENT_SEPARATOR=$'\ue0b0'
}
# Begin a segment
# Takes two arguments, background and foreground. Both can be omitted,
# rendering default background/foreground.
prompt_segment() {
local bg fg
[[ -n $1 ]] && bg="%K{$1}" || bg="%k"
[[ -n $2 ]] && fg="%F{$2}" || fg="%f"
if [[ $CURRENT_BG != 'NONE' && $1 != $CURRENT_BG ]]; then
echo -n " %{$bg%F{$CURRENT_BG}%}$SEGMENT_SEPARATOR%{$fg%} "
else
echo -n "%{$bg%}%{$fg%} "
fi
CURRENT_BG=$1
[[ -n $3 ]] && echo -n $3
}
# End the prompt, closing any open segments
prompt_end() {
if [[ -n $CURRENT_BG ]]; then
echo -n " %{%k%F{$CURRENT_BG}%}$SEGMENT_SEPARATOR"
else
echo -n "%{%k%}"
fi
echo -n "%{%f%}"
CURRENT_BG=''
}
### Prompt components
# Each component will draw itself, and hide itself if no information needs to be shown
# Context: user@hostname (who am I and where am I)
prompt_context() {
if [[ "$USER" != "$DEFAULT_USER" || -n "$SSH_CLIENT" ]]; then
prompt_segment black default "%(!.%{%F{yellow}%}.)$USER@%m"
fi
}
# Git: branch/detached head, dirty status
prompt_git() {
(( $+commands[git] )) || return
local PL_BRANCH_CHAR
() {
local LC_ALL="" LC_CTYPE="en_US.UTF-8"
PL_BRANCH_CHAR=$'\ue0a0' # 
}
local ref dirty mode repo_path
repo_path=$(git rev-parse --git-dir 2>/dev/null)
if $(git rev-parse --is-inside-work-tree >/dev/null 2>&1); then
dirty=$(parse_git_dirty)
ref=$(git symbolic-ref HEAD 2> /dev/null) || ref="➦ $(git rev-parse --short HEAD 2> /dev/null)"
if [[ -n $dirty ]]; then
prompt_segment yellow black
else
prompt_segment green black
fi
if [[ -e "${repo_path}/BISECT_LOG" ]]; then
mode=" <B>"
elif [[ -e "${repo_path}/MERGE_HEAD" ]]; then
mode=" >M<"
elif [[ -e "${repo_path}/rebase" || -e "${repo_path}/rebase-apply" || -e "${repo_path}/rebase-merge" || -e "${repo_path}/../.dotest" ]]; then
mode=" >R>"
fi
setopt promptsubst
autoload -Uz vcs_info
zstyle ':vcs_info:*' enable git
zstyle ':vcs_info:*' get-revision true
zstyle ':vcs_info:*' check-for-changes true
zstyle ':vcs_info:*' stagedstr '✚'
zstyle ':vcs_info:*' unstagedstr '●'
zstyle ':vcs_info:*' formats ' %u%c'
zstyle ':vcs_info:*' actionformats ' %u%c'
vcs_info
echo -n "${ref/refs\/heads\//$PL_BRANCH_CHAR }${vcs_info_msg_0_%% }${mode}"
fi
}
prompt_bzr() {
(( $+commands[bzr] )) || return
if (bzr status >/dev/null 2>&1); then
status_mod=`bzr status | head -n1 | grep "modified" | wc -m`
status_all=`bzr status | head -n1 | wc -m`
revision=`bzr log | head -n2 | tail -n1 | sed 's/^revno: //'`
if [[ $status_mod -gt 0 ]] ; then
prompt_segment yellow black
echo -n "bzr@"$revision "✚ "
else
if [[ $status_all -gt 0 ]] ; then
prompt_segment yellow black
echo -n "bzr@"$revision
else
prompt_segment green black
echo -n "bzr@"$revision
fi
fi
fi
}
prompt_hg() {
(( $+commands[hg] )) || return
local rev status
if $(hg id >/dev/null 2>&1); then
if $(hg prompt >/dev/null 2>&1); then
if [[ $(hg prompt "{status|unknown}") = "?" ]]; then
# if files are not added
prompt_segment red white
st='±'
elif [[ -n $(hg prompt "{status|modified}") ]]; then
# if any modification
prompt_segment yellow black
st='±'
else
# if working copy is clean
prompt_segment green black
fi
echo -n $(hg prompt "☿ {rev}@{branch}") $st
else
st=""
rev=$(hg id -n 2>/dev/null | sed 's/[^-0-9]//g')
branch=$(hg id -b 2>/dev/null)
if `hg st | grep -q "^\?"`; then
prompt_segment red black
st='±'
elif `hg st | grep -q "^[MA]"`; then
prompt_segment yellow black
st='±'
else
prompt_segment green black
fi
echo -n "☿ $rev@$branch" $st
fi
fi
}
# Dir: current working directory
prompt_dir() {
prompt_segment blue black '%.'
}
# Virtualenv: current working virtualenv
prompt_virtualenv() {
local virtualenv_path="$VIRTUAL_ENV"
if [[ -n $virtualenv_path && -n $VIRTUAL_ENV_DISABLE_PROMPT ]]; then
prompt_segment blue black "(`basename $virtualenv_path`)"
fi
}
# Status:
# - was there an error
# - am I root
# - are there background jobs?
prompt_status() {
local symbols
symbols=()
[[ $RETVAL -ne 0 ]] && symbols+="%{%F{red}%}✘"
[[ $UID -eq 0 ]] && symbols+="%{%F{yellow}%}⚡"
[[ $(jobs -l | wc -l) -gt 0 ]] && symbols+="%{%F{cyan}%}⚙"
[[ -n "$symbols" ]] && prompt_segment black default "$symbols"
}
## Main prompt
build_prompt() {
RETVAL=$?
prompt_status
prompt_virtualenv
prompt_context
prompt_dir
prompt_git
prompt_bzr
prompt_hg
prompt_end
}
PROMPT='%{%f%b%k%}$(build_prompt) '
-47
View File
@@ -1,47 +0,0 @@
set nocompatible
filetype off
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
Plugin 'VundleVim/Vundle.vim'
Plugin 'altercation/vim-colors-solarized'
Plugin 'scrooloose/nerdtree'
Plugin 'majutsushi/tagbar'
Plugin 'tpope/vim-surround'
" Plugin 'klen/python-mode'
" Plugin 'rosenfeld/conque-term'
Plugin 'mitsuhiko/vim-jinja'
Plugin 'davidhalter/jedi-vim'
Plugin 'Vimjas/vim-python-pep8-indent'
" Plugin 'mitsuhiko/vim-python-combined'
Plugin 'bling/vim-airline'
call vundle#end()
filetype plugin indent on
syntax on
set background=dark
colorscheme solarized
let g:jedi#popup_on_dot = 0
set number
set incsearch
set hlsearch
nnoremap <silent> <CR> :nohlsearch<CR><CR>
set clipboard=unnamedplus
au BufNewFile,BufRead *.py
\ set tabstop=4 |
\ set softtabstop=4 |
\ set shiftwidth=4 |
\ set textwidth=99 |
\ set expandtab |
\ set autoindent |
\ set fileformat=unix
au BufNewFile,BufRead *.js,*.html,*.css
\ set tabstop=2 |
\ set softtabstop=2 |
\ set shiftwidth=2
-109
View File
@@ -1,109 +0,0 @@
# If you come from bash you might have to change your $PATH.
# export PATH=$HOME/bin:/usr/local/bin:$PATH
# Path to your oh-my-zsh installation.
export ZSH=/home/fedor/.oh-my-zsh
# Set name of the theme to load. Optionally, if you set this to "random"
# it'll load a random theme each time that oh-my-zsh is loaded.
# See https://github.com/robbyrussell/oh-my-zsh/wiki/Themes
ZSH_THEME="agnoster-custom"
# Set list of themes to load
# Setting this variable when ZSH_THEME=random
# cause zsh load theme from this variable instead of
# looking in ~/.oh-my-zsh/themes/
# An empty array have no effect
# ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" )
# Uncomment the following line to use case-sensitive completion.
# CASE_SENSITIVE="true"
# Uncomment the following line to use hyphen-insensitive completion. Case
# sensitive completion must be off. _ and - will be interchangeable.
# HYPHEN_INSENSITIVE="true"
# Uncomment the following line to disable bi-weekly auto-update checks.
# DISABLE_AUTO_UPDATE="true"
# Uncomment the following line to change how often to auto-update (in days).
# export UPDATE_ZSH_DAYS=13
# Uncomment the following line to disable colors in ls.
# DISABLE_LS_COLORS="true"
# Uncomment the following line to disable auto-setting terminal title.
# DISABLE_AUTO_TITLE="true"
# Uncomment the following line to enable command auto-correction.
# ENABLE_CORRECTION="true"
# Uncomment the following line to display red dots whilst waiting for completion.
# COMPLETION_WAITING_DOTS="true"
# Uncomment the following line if you want to disable marking untracked files
# under VCS as dirty. This makes repository status check for large repositories
# much, much faster.
# DISABLE_UNTRACKED_FILES_DIRTY="true"
# Uncomment the following line if you want to change the command execution time
# stamp shown in the history command output.
# The optional three formats: "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd"
# HIST_STAMPS="mm/dd/yyyy"
# Would you like to use another custom folder than $ZSH/custom?
# ZSH_CUSTOM=/path/to/new-custom-folder
# Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*)
# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
# Example format: plugins=(rails git textmate ruby lighthouse)
# Add wisely, as too many plugins slow down shell startup.
plugins=(
git
colored-man-pages
colorize
cp
extract
rsync
web-search
jump
virtualenv
common-aliases
)
EDITOR="vim"
VISUAL="$EDITOR"
source $ZSH/oh-my-zsh.sh
# User configuration
# export MANPATH="/usr/local/man:$MANPATH"
# You may need to manually set your language environment
# export LANG=en_US.UTF-8
# Preferred editor for local and remote sessions
# if [[ -n $SSH_CONNECTION ]]; then
# export EDITOR='vim'
# else
# export EDITOR='mvim'
# fi
# Compilation flags
# export ARCHFLAGS="-arch x86_64"
# ssh
# export SSH_KEY_PATH="~/.ssh/rsa_id"
# Set personal aliases, overriding those provided by oh-my-zsh libs,
# plugins, and themes. Aliases can be placed here, though oh-my-zsh
# users are encouraged to define aliases within the ZSH_CUSTOM folder.
# For a full list of active aliases, run `alias`.
#
# Example aliases
# alias zshconfig="mate ~/.zshrc"
# alias ohmyzsh="mate ~/.oh-my-zsh"
DEFAULT_USER="fedor"
eval `dircolors ~/.dir_colors/dircolors`
+10
View File
@@ -0,0 +1,10 @@
# My dotfiles and scripts
Programs:
```bash
apt install stow git fish neovim tmux zoxide eza fd-find ripgrep bat rsync
pacman -Syu stow git fish neovim tmux zoxide eza fd ripgrep bat rsync
cd dotfiles
stow server
```
+31
View File
@@ -0,0 +1,31 @@
[general]
import = [
"solarized_dark.toml"
]
[window]
opacity = 0.85
[font]
size = 11.0
[font.bold]
family = "Inconsolata LGC Nerd Font"
style = "Bold"
[font.bold_italic]
family = "Inconsolata LGC Nerd Font"
style = "Bold Italic"
[font.italic]
family = "Inconsolata LGC Nerd Font"
style = "Italic"
[font.normal]
family = "Inconsolata LGC Nerd Font"
style = "Regular"
[font.offset]
x = 0
y = 0
+28
View File
@@ -0,0 +1,28 @@
# Colors (Solarized Dark)
# Default colors
[colors.primary]
background = '#002b36'
foreground = '#839496'
# Normal colors
[colors.normal]
black = '#073642'
red = '#dc322f'
green = '#859900'
yellow = '#b58900'
blue = '#268bd2'
magenta = '#d33682'
cyan = '#2aa198'
white = '#eee8d5'
# Bright colors
[colors.bright]
black = '#002b36'
red = '#cb4b16'
green = '#586e75'
yellow = '#657b83'
blue = '#839496'
magenta = '#6c71c4'
cyan = '#93a1a1'
white = '#fdf6e3'
+215
View File
@@ -0,0 +1,215 @@
# This file has been auto-generated by i3-config-wizard(1).
# It will not be overwritten, so edit it as you like.
#
# Should you change your keyboard layout some time, delete
# this file and re-run i3-config-wizard(1).
#
# i3 config file (v4)
#
# Please see https://i3wm.org/docs/userguide.html for a complete reference!
set $mod Mod4
# Font for window titles. Will also be used by the bar unless a different font
# is used in the bar {} block below.
font pango:Inconsolata LGC Nerd Font Mono Regular 10
default_border pixel 2
default_floating_border pixel 1
gaps inner 2px
gaps outer 2px
client.focused #4c7899 #285577 #ffffff #4c7899 #285577
# This font is widely installed, provides lots of unicode glyphs, right-to-left
# text rendering and scalability on retina/hidpi displays (thanks to pango).
#font pango:DejaVu Sans Mono 8
# Start XDG autostart .desktop files using dex. See also
# https://wiki.archlinux.org/index.php/XDG_Autostart
#exec --no-startup-id dex --autostart --environment i3
# The combination of xss-lock, nm-applet and pactl is a popular choice, so
# they are included here as an example. Modify as you see fit.
# xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the
# screen before suspend. Use loginctl lock-session to lock your screen.
exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork
# NetworkManager is the most popular way to manage wireless networks on Linux,
# and nm-applet is a desktop environment-independent system tray GUI for it.
#exec --no-startup-id nm-applet
exec --no-startup-id picom -b
exec --no-startup-id setxkbmap -model pc104 -layout us,ru -option grp:alt_shift_toggle -option grp_led:caps -option caps:escape
#exec --no-startup-id nextcloud
exec --no-startup-id seafile-gui
exec --no-startup-id unclutter --fork
exec --no-startup-id feh --bg-center --randomize ~/.config/wallpapers/*
# Use pactl to adjust volume in PulseAudio.
set $refresh_i3status killall -SIGUSR1 i3status
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status
bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status
bindsym XF86MonBrightnessUp exec --no-startup-id brightnessctl set "+10%"
bindsym XF86MonBrightnessDown exec --no-startup-id brightnessctl set "10%-"
bindsym $mod+b exec --no-startup-id loginctl lock-session
bindsym $mod+F1 exec --no-startup-id pactl set-default-sink alsa_output.pci-0000_00_1f.3.analog-stereo && pactl set-sink-port alsa_output.pci-0000_00_1f.3.analog-stereo analog-output-headphones
bindsym $mod+F2 exec --no-startup-id pactl set-default-sink alsa_output.pci-0000_00_1f.3.analog-stereo && pactl set-sink-port alsa_output.pci-0000_00_1f.3.analog-stereo analog-output-lineout
bindsym $mod+F3 exec --no-startup-id pactl set-default-sink alsa_output.pci-0000_01_00.1.hdmi-stereo && pactl set-card-profile alsa_output.pci-0000_01_00.1.hdmi-stereo hdmi-output-1
bindsym $mod+F4 exec --no-startup-id pactl set-default-sink bluez_output.D3_87_2B_2F_19_C6.1
bindsym Print exec "maim -s | xclip -selection clipboard -t image/png"
# Use Mouse+$mod to drag floating windows to their wanted position
floating_modifier $mod
# move tiling windows via drag & drop by left-clicking into the title bar,
# or left-clicking anywhere into the window while holding the floating modifier.
tiling_drag modifier titlebar
# start a terminal
bindsym $mod+Return exec alacritty
# kill focused window
bindsym $mod+Shift+q kill
# start dmenu (a program launcher)
# bindsym $mod+d exec --no-startup-id dmenu_run
# A more modern dmenu replacement is rofi:
bindsym $mod+r exec "rofi -modi drun,run -show drun"
# There also is i3-dmenu-desktop which only displays applications shipping a
# .desktop file. It is a wrapper around dmenu, so you need that installed.
# bindcode $mod+40 exec --no-startup-id i3-dmenu-desktop
# change focus
bindsym $mod+h focus left
bindsym $mod+j focus down
bindsym $mod+k focus up
bindsym $mod+l focus right
# alternatively, you can use the cursor keys:
bindsym $mod+Left focus left
bindsym $mod+Down focus down
bindsym $mod+Up focus up
bindsym $mod+Right focus right
# move focused window
bindsym $mod+Shift+h move left
bindsym $mod+Shift+j move down
bindsym $mod+Shift+k move up
bindsym $mod+Shift+l move right
# alternatively, you can use the cursor keys:
bindsym $mod+Shift+Left move left
bindsym $mod+Shift+Down move down
bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right
# split in horizontal orientation
bindsym $mod+Control+h split h
# split in vertical orientation
bindsym $mod+Control+v split v
# enter fullscreen mode for the focused container
bindsym $mod+Control+f fullscreen toggle
# change container layout (stacked, tabbed, toggle split)
bindsym $mod+Control+s layout stacking
bindsym $mod+Control+w layout tabbed
bindsym $mod+Control+e layout toggle split
# toggle tiling / floating
bindsym $mod+Shift+space floating toggle
# change focus between tiling / floating windows
bindsym $mod+space focus mode_toggle
# focus the parent container
bindsym $mod+Control+a focus parent
# focus the child container
#bindsym $mod+d focus child
# Define names for default workspaces for which we configure key bindings later on.
# We use variables to avoid repeating the names in multiple places.
set $ws1 "1:a"
set $ws2 "2:s"
set $ws3 "3:d"
set $ws4 "4:f"
set $ws5 "5:u"
set $ws6 "6:i"
set $ws7 "7:o"
set $ws8 "8:p"
# switch to workspace
bindsym $mod+a workspace $ws1
bindsym $mod+s workspace $ws2
bindsym $mod+d workspace $ws3
bindsym $mod+f workspace $ws4
bindsym $mod+u workspace $ws5
bindsym $mod+i workspace $ws6
bindsym $mod+o workspace $ws7
bindsym $mod+p workspace $ws8
# move focused container to workspace
bindsym $mod+Shift+a move container to workspace $ws1
bindsym $mod+Shift+s move container to workspace $ws2
bindsym $mod+Shift+d move container to workspace $ws3
bindsym $mod+Shift+f move container to workspace $ws4
bindsym $mod+Shift+u move container to workspace $ws5
bindsym $mod+Shift+i move container to workspace $ws6
bindsym $mod+Shift+o move container to workspace $ws7
bindsym $mod+Shift+p move container to workspace $ws8
# reload the configuration file
# bindsym $mod+Shift+c reload
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
bindsym $mod+Shift+c restart
# exit i3 (logs you out of your X session)
bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'"
# resize window (you can also use the mouse for that)
mode "resize" {
# These bindings trigger as soon as you enter the resize mode
# Pressing left will shrink the windows width.
# Pressing right will grow the windows width.
# Pressing up will shrink the windows height.
# Pressing down will grow the windows height.
bindsym h resize shrink width 10 px or 10 ppt
bindsym j resize grow height 10 px or 10 ppt
bindsym k resize shrink height 10 px or 10 ppt
bindsym l resize grow width 10 px or 10 ppt
# same bindings, but for the arrow keys
bindsym Left resize shrink width 10 px or 10 ppt
bindsym Down resize grow height 10 px or 10 ppt
bindsym Up resize shrink height 10 px or 10 ppt
bindsym Right resize grow width 10 px or 10 ppt
# back to normal: Enter or Escape or $mod+r
bindsym Return mode "default"
bindsym Escape mode "default"
bindsym $mod+Shift+r mode "default"
}
bindsym $mod+Shift+r mode "resize"
# Start i3bar to display a workspace bar (plus the system information i3status
# finds out, if available)
bar {
status_command i3status
}
assign [class="^firefox$"] $ws1
assign [class="^obsidian$"] $ws5
assign [class="(?i)strawberry"] $ws6
assign [class="^KeePassXC$"] $ws7
assign [class="^TelegramDesktop$"] $ws8
exec firefox
exec keepassxc
exec strawberry
exec obsidian
exec Telegram
+317
View File
@@ -0,0 +1,317 @@
#################################
# Shadows #
#################################
# 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.
#
# Can be set per-window using rules.
#
# Default: false
shadow = true;
# The blur radius for shadows, in pixels.
#
# Default: 12
shadow-radius = 7;
# The opacity of shadows.
#
# Range: 0.0 - 1.0
# Default: 0.75
# shadow-opacity = .75
# The left offset for shadows, in pixels.
#
# Default: -15
shadow-offset-x = -7;
# The top offset for shadows, in pixels.
#
# Default: -15
shadow-offset-y = -7;
# Hex string color value of shadow. Formatted like "#RRGGBB", e.g. "#C0FFEE".
#
# Default: #000000
# shadow-color = "#000000"
# Crop shadow of a window fully on a particular monitor to that monitor. This is
# currently implemented using the X RandR extension.
#
# Default: false
# crop-shadow-to-monitor = false
#################################
# Fading #
#################################
# Fade windows in/out when opening/closing and when opacity changes,
# unless no-fading-openclose is used. Can be set per-window using rules.
#
# Default: false
fading = true;
# Opacity change between steps while fading in. (0.01 - 1.0, defaults to 0.028)
fade-in-step = 0.07;
# Opacity change between steps while fading out. (0.01 - 1.0, defaults to 0.03)
fade-out-step = 0.07;
# The time between steps in fade step, in milliseconds. (> 0, defaults to 10)
fade-delta = 10
# 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 window titlebars and borders.
#
# Range: 0.1 - 1.0
# Default: 1.0 (disabled)
frame-opacity = 0.9;
# Use fixed inactive dim value, instead of adjusting according to window opacity.
#
# Default: false
# inactive-dim-fixed = true
#################################
# 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`.
#
# Default: 0 (disabled)
corner-radius = 5
#################################
# Blur #
#################################
# Parameters for background blurring, see BLUR section in the man page for more information.
# blur-method =
# blur-size = 12
#
# blur-deviation = false
#
# blur-strength = 5
# Blur background of semi-transparent / ARGB windows.
# Can be set per-window using rules.
#
# Default: false
# blur-background = false
# Blur background of windows when the window frame is not opaque.
# Implies:
# blur-background
#
# Default: false
# blur-background-frame = false
# Use fixed blur strength rather than adjusting according to window opacity.
#
# Default: false
# 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";
# Can also be a pre-defined kernel, see the man page.
#
# Default: ""
blur-kern = "3x3box";
#################################
# General Settings #
#################################
# Enable remote control via D-Bus. See the man page for more details.
#
# Default: false
# dbus = true
# Daemonize process. Fork to background after initialization. Causes issues with certain (badly-written) drivers.
# daemon = false
# Specify the backend to use: `xrender`, `glx`, or `egl`.
#
# Default: "xrender"
backend = "xrender"
# Use higher precision during rendering, and apply dither when presenting the
# rendered screen. Reduces banding artifacts, but may cause performance
# degradation. Only works with OpenGL.
dithered-present = false;
# Enable/disable VSync.
#
# Default: false
vsync = true;
# Try to detect windows with rounded corners and don't consider them
# shaped windows. The accuracy is not very high, unfortunately.
#
# Has nothing to do with `corner-radius`.
#
# Default: 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.
#
# Default: false
detect-client-opacity = true;
# Use EWMH '_NET_ACTIVE_WINDOW' to determine currently focused window,
# rather than listening to 'FocusIn'/'FocusOut' event. May be more accurate,
# provided that the WM supports it.
#
# Default: false
# use-ewmh-active-win = false
# 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.
#
# Default: false
# unredir-if-possible = false
# Delay before unredirecting the window, in milliseconds.
#
# Default: 0.
# unredir-if-possible-delay = 0
# Use 'WM_TRANSIENT_FOR' to group windows, and consider windows
# in the same group focused at the same time.
#
# Default: 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.
#
# Default: false
# detect-client-leader = false
# Use of damage information for rendering. This cause the only the part of the
# screen that has actually changed to be redrawn, instead of the whole screen
# every time. Should improve performance.
#
# Default: false
use-damage = true;
# Use X Sync fence to wait for the completion of rendering of other windows,
# before using their content to render the current screen.
#
# Required for explicit sync drivers, such as nvidia.
#
# Default: false
# 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.
#
# Can be set per-window using rules.
#
# window-shader-fg = "default"
# Force all windows to be painted with blending. Useful if you
# have a `window-shader-fg` that could turn opaque pixels transparent.
#
# Default: false
# 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.
#
# Default: false
# 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 (disabled)
# max-brightness = 1.0
# Make transparent windows clip other windows like non-transparent windows do,
# instead of blending on top of them. e.g. placing a transparent window on top
# of another window will cut a "hole" in that window, and show the desktop background
# underneath.
#
# Default: false
# transparent-clipping = false
# Set the log level. Possible values are:
# "trace", "debug", "info", "warn", "error"
# in increasing level of importance. Case insensitive.
# 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.
#
# Default: "warn"
# 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"
# Write process ID to a file.
# write-pid-path = "/path/to/your/log/file"
# Rule-based per-window options.
#
# See WINDOW RULES section in the man page for how these work.
rules: ({
match = "window_type = 'tooltip'";
fade = false;
shadow = true;
opacity = 0.75;
full-shadow = false;
}, {
match = "window_type = 'dock' || "
"window_type = 'desktop' || "
"_GTK_FRAME_EXTENTS@";
blur-background = false;
}, {
match = "window_type != 'dock'";
# shader = "my_shader.frag";
}, {
match = "window_type = 'dock' || "
"window_type = 'desktop'";
corner-radius = 0;
}, {
match = "name = 'Notification' || "
"class_g = 'Conky' || "
"class_g ?= 'Notify-osd' || "
"class_g = 'Cairo-clock' || "
"_GTK_FRAME_EXTENTS@";
shadow = false;
})
# `@include` directive can be used to include additional configuration files.
# Relative paths are search either in the parent of this configuration file
# (when the configuration is loaded through a symlink, the symlink will be
# resolved first). Or in `$XDG_CONFIG_HOME/picom/include`.
#
# @include "extra.conf"
+20
View File
@@ -0,0 +1,20 @@
[General]
filedialog-path=@Variant(\0\0\0\x11\0\0\0\v/home/fedor)
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\x3 \0\0\0\0\0\0\x6?\0\0\x3m\0\0\x3#\0\0\0\x3\0\0\x6<\0\0\x3j\0\0\0\0\0\0\0\0\x6@\0\0\x3#\0\0\0\x3\0\0\x6<\0\0\x3j)
[FullScreen]
pos=@Point(400 836)
screen=@Rect(0 0 1600 900)
wide=false
[MainWindow]
adv-controls=0
bgSize=@Size(794 798)
pl-dock-status=true
playlist-visible=false
playlistSize=@Size(-1 -1)
status-bar-visible=false
[RecentsMRL]
list=file:///mnt/winuser/Videos/Watchmen.mkv
times=7568337
File diff suppressed because it is too large Load Diff
Binary file not shown.

After

Width:  |  Height:  |  Size: 600 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 801 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 458 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 468 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 945 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 436 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 814 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 422 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 461 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 269 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 718 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 282 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 342 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 250 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 974 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 922 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 508 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 459 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 963 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 492 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 833 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

+4
View File
@@ -0,0 +1,4 @@
set selection-clipboard clipboard
set recolor true
set adjust-open width
set scroll-full-overlap 0.05
@@ -0,0 +1,45 @@
# Don't edit this file, as it will be written by the web-config tool (`fish_config`).
# To customize your theme, delete this file and see
# help interactive#syntax-highlighting
# or
# man fish-interactive | less +/^SYNTAX.HIGHLIGHTING
# for appropriate commands to add to ~/.config/fish/config.fish instead.
set --global fish_color_autosuggestion 707A8C
set --global fish_color_cancel --reverse
set --global fish_color_command 5CCFE6
set --global fish_color_comment 5C6773
set --global fish_color_cwd 73D0FF
set --global fish_color_cwd_root red
set --global fish_color_end F29E74
set --global fish_color_error FF3333
set --global fish_color_escape 95E6CB
set --global fish_color_gray
set --global fish_color_history_current --bold
set --global fish_color_host --reset
set --global fish_color_host_remote yellow
set --global fish_color_keyword
set --global fish_color_normal CBCCC6
set --global fish_color_operator FFCC66
set --global fish_color_option
set --global fish_color_param CBCCC6
set --global fish_color_quote BAE67E
set --global fish_color_redirection D4BFFF
set --global fish_color_search_match --bold --background=FFCC66
set --global fish_color_selection --bold --background=FFCC66
set --global fish_color_status red
set --global fish_color_user brgreen
set --global fish_color_valid_path --underline=single
set --global fish_pager_color_background
set --global fish_pager_color_completion --reset
set --global fish_pager_color_description B3A06D
set --global fish_pager_color_prefix --bold --underline=single
set --global fish_pager_color_progress brwhite --bold --background=cyan
set --global fish_pager_color_secondary_background
set --global fish_pager_color_secondary_completion
set --global fish_pager_color_secondary_description
set --global fish_pager_color_secondary_prefix
set --global fish_pager_color_selected_background --background=FFCC66
set --global fish_pager_color_selected_completion
set --global fish_pager_color_selected_description
set --global fish_pager_color_selected_prefix
@@ -0,0 +1,45 @@
# Don't edit this file, as it will be written by the web-config tool (`fish_config`).
# To customize your theme, delete this file and see
# help interactive#syntax-highlighting
# or
# man fish-interactive | less +/^SYNTAX.HIGHLIGHTING
# for appropriate commands to add to ~/.config/fish/config.fish instead.
set --global fish_color_autosuggestion 586e75
set --global fish_color_cancel --reverse
set --global fish_color_command 93a1a1
set --global fish_color_comment 586e75
set --global fish_color_cwd green
set --global fish_color_cwd_root red
set --global fish_color_end 268bd2
set --global fish_color_error dc322f
set --global fish_color_escape 00a6b2
set --global fish_color_gray
set --global fish_color_history_current --bold
set --global fish_color_host normal
set --global fish_color_host_remote yellow
set --global fish_color_keyword
set --global fish_color_normal normal
set --global fish_color_operator 00a6b2
set --global fish_color_option
set --global fish_color_param 839496
set --global fish_color_quote 657b83
set --global fish_color_redirection 6c71c4
set --global fish_color_search_match bryellow --bold --background=black
set --global fish_color_selection white --bold --background=brblack
set --global fish_color_status red
set --global fish_color_user brgreen
set --global fish_color_valid_path --underline=single
set --global fish_pager_color_background
set --global fish_pager_color_completion B3A06D
set --global fish_pager_color_description B3A06D
set --global fish_pager_color_prefix cyan --underline=single
set --global fish_pager_color_progress brwhite --bold --background=cyan
set --global fish_pager_color_secondary_background
set --global fish_pager_color_secondary_completion
set --global fish_pager_color_secondary_description
set --global fish_pager_color_secondary_prefix
set --global fish_pager_color_selected_background --background=brblack
set --global fish_pager_color_selected_completion
set --global fish_pager_color_selected_description
set --global fish_pager_color_selected_prefix
+55
View File
@@ -0,0 +1,55 @@
if status is-interactive
# Commands to run in interactive sessions can go here
alias ls "eza --icons"
alias ll "eza -al --git --icons"
alias la "eza -a --icons"
alias cat bat
alias less "less -RFX"
function grep ()
rg -p $argv | less
end
alias e nvim
alias edit nvim
alias find fd
zoxide init --cmd cd fish | source
alias show-packages "expac -H M '%-20n\t%10d' (pacman -Qqe)"
function mkcd
mkdir $argv[1] && cd $argv[1]
end
function cpr
rsync --archive -hh --partial --info=stats1,progress2 --modify-window=1 "$argv"
end
function mvr
rsync --archive -hh --partial --info=stats1,progress2 --modify-window=1 --remove-source-files "$argv"
end
alias ga "git add ."
alias gs "git status"
alias gc "git commit"
alias gp "git push"
alias gg "ga && gc && gp"
function pdf
zathura "$argv" --fork && exit
end
alias connect-phone "iwctl station wlan0 connect \"Fedor Pixel 7\""
alias vpn-up "sudo systemctl start wg-quick@vpn.service"
alias vpn-down "sudo systemctl stop wg-quick@vpn.service"
end
# ASDF configuration code
if test -z $ASDF_DATA_DIR
set _asdf_shims "$HOME/.asdf/shims"
else
set _asdf_shims "$ASDF_DATA_DIR/shims"
end
# Do not use fish_add_path (added in Fish 3.2) because it
# potentially changes the order of items in PATH
if not contains $_asdf_shims $PATH
set -gx --prepend PATH $_asdf_shims
end
set --erase _asdf_shims
# Added by LM Studio CLI (lms)
set -gx PATH $PATH /home/fedor/.lmstudio/bin
# End of LM Studio CLI section
+8
View File
@@ -0,0 +1,8 @@
# This file contains fish universal variable definitions.
# VERSION: 3.0
SETUVAR --export MANPAGER:nvim\x20\x2bMan\x21
SETUVAR --export VISUAL:/usr/bin/v
SETUVAR __fish_initialized:4300
SETUVAR __fish_webconfig_theme_notification:set\x2dtheme\x2dv1\x2d\x232
SETUVAR fish_greeting:\x1d
SETUVAR fish_user_paths:/home/fedor/\x2elocal/bin\x1e/usr/local/bin
@@ -0,0 +1,3 @@
# Redefine fish_mode_prompt function as empty to hide fish-shell mode indicator
function fish_mode_prompt
end
@@ -0,0 +1,389 @@
# name: Agnoster
# agnoster's Theme - https://gist.github.com/3712874
# A Powerline-inspired theme for FISH
#
# # README
#
# In order for this theme to render correctly, you will need a
# [Powerline-patched font](https://gist.github.com/1595572).
## Set this options in your config.fish (if you want to :])
# set -g theme_display_user yes
# set -g theme_hide_hostname yes
# set -g theme_hide_hostname no
# set -g default_user your_normal_user
# set -g theme_svn_prompt_enabled yes
# set -g theme_mercurial_prompt_enabled yes
set -g current_bg NONE
set -g segment_separator \uE0B0
set -g right_segment_separator \uE0B0
set -q scm_prompt_blacklist; or set -g scm_prompt_blacklist
set -q max_package_count_visible_in_prompt; or set -g max_package_count_visible_in_prompt 10
# We support trimming the version only in simple cases, such as "1.2.3".
set -q try_to_trim_nix_package_version; or set -g try_to_trim_nix_package_version yes
# ===========================
# Color setting
# You can set these variables in config.fish like:
# set -g color_dir_bg red
# If not set, default color from agnoster will be used.
# ===========================
set -q color_virtual_env_bg; or set -g color_virtual_env_bg white
set -q color_virtual_env_str; or set -g color_virtual_env_str black
set -q color_user_bg; or set -g color_user_bg black
set -q color_user_str; or set -g color_user_str yellow
set -q color_dir_bg; or set -g color_dir_bg blue
set -q color_dir_str; or set -g color_dir_str black
set -q color_hg_changed_bg; or set -g color_hg_changed_bg yellow
set -q color_hg_changed_str; or set -g color_hg_changed_str black
set -q color_hg_bg; or set -g color_hg_bg green
set -q color_hg_str; or set -g color_hg_str black
set -q color_git_dirty_bg; or set -g color_git_dirty_bg yellow
set -q color_git_dirty_str; or set -g color_git_dirty_str black
set -q color_git_bg; or set -g color_git_bg green
set -q color_git_str; or set -g color_git_str black
set -q color_svn_bg; or set -g color_svn_bg green
set -q color_svn_str; or set -g color_svn_str black
set -q color_status_nonzero_bg; or set -g color_status_nonzero_bg black
set -q color_status_nonzero_str; or set -g color_status_nonzero_str red
set -q glyph_status_nonzero; or set -g glyph_status_nonzero "✘"
set -q color_status_superuser_bg; or set -g color_status_superuser_bg black
set -q color_status_superuser_str; or set -g color_status_superuser_str yellow
set -q glyph_status_superuser; or set -g glyph_status_superuser "🔒"
set -q color_status_jobs_bg; or set -g color_status_jobs_bg black
set -q color_status_jobs_str; or set -g color_status_jobs_str cyan
set -q glyph_status_jobs; or set -g glyph_status_jobs "⚡"
set -q color_status_private_bg; or set -g color_status_private_bg black
set -q color_status_private_str; or set -g color_status_private_str purple
set -q glyph_status_private; or set -g glyph_status_private "⚙"
# ===========================
# General VCS settings
set -q fish_vcs_branch_name_length; or set -g fish_vcs_branch_name_length 15
# ===========================
# Git settings
# set -g color_dir_bg red
set -q fish_git_prompt_untracked_files; or set -g fish_git_prompt_untracked_files normal
# ===========================
# Subversion settings
set -q theme_svn_prompt_enabled; or set -g theme_svn_prompt_enabled no
# ===========================
# Mercurial settings
set -q theme_mercurial_prompt_enabled; or set -g theme_mercurial_prompt_enabled no
# ===========================
# Helper methods
# ===========================
set -g __fish_git_prompt_showdirtystate 'yes'
set -g __fish_git_prompt_char_dirtystate '±'
set -g __fish_git_prompt_char_cleanstate ''
function shorten_branch_name -a branch_name
set new_branch_name $branch_name
if test (string length $branch_name) -gt $fish_vcs_branch_name_length
# Round up length before dot (+0.5)
# Remove half the length of dots (-1)
# -> Total offset: -0.5
set pre_dots_length (math -s0 $fish_vcs_branch_name_length / 2 - 0.5)
# Round down length after dot (-0.5)
# Remove half the length of dots (-1)
# -> Total offset: -1.5
set post_dots_length (math -s0 $fish_vcs_branch_name_length / 2 - 1.5)
set new_branch_name (string replace -r "(.{$pre_dots_length}).*(.{$post_dots_length})" '$1..$2' $branch_name)
end
echo $new_branch_name
end
function parse_git_dirty
if [ $__fish_git_prompt_showdirtystate = "yes" ]
set -l submodule_syntax
set submodule_syntax "--ignore-submodules=dirty"
set untracked_syntax "--untracked-files=$fish_git_prompt_untracked_files"
set git_dirty (command git status --porcelain $submodule_syntax $untracked_syntax 2> /dev/null)
if [ -n "$git_dirty" ]
echo -n "$__fish_git_prompt_char_dirtystate"
else
echo -n "$__fish_git_prompt_char_cleanstate"
end
end
end
function cwd_in_scm_blacklist
for entry in $scm_prompt_blacklist
pwd | grep "^$entry" -
end
end
# ===========================
# Segments functions
# ===========================
function prompt_segment -d "Function to draw a segment"
set -l bg
set -l fg
if [ -n "$argv[1]" ]
set bg $argv[1]
else
set bg normal
end
if [ -n "$argv[2]" ]
set fg $argv[2]
else
set fg normal
end
if [ "$current_bg" != 'NONE' -a "$argv[1]" != "$current_bg" ]
set_color -b $bg
set_color $current_bg
echo -n "$segment_separator "
set_color -b $bg
set_color $fg
else
set_color -b $bg
set_color $fg
echo -n " "
end
set current_bg $argv[1]
if [ -n "$argv[3]" ]
echo -n -s $argv[3] " "
end
end
function prompt_finish -d "Close open segments"
if [ -n $current_bg ]
set_color normal
set_color $current_bg
echo -n "$segment_separator "
set_color normal
end
set -g current_bg NONE
end
# ===========================
# Theme components
# ===========================
function prompt_virtual_env -d "Display Python or Nix virtual environment"
set envs
if test "$CONDA_DEFAULT_ENV"
set envs $envs "conda[$CONDA_DEFAULT_ENV]"
end
if test "$VIRTUAL_ENV"
set py_env (basename $VIRTUAL_ENV)
set envs $envs "py[$py_env]"
end
# Support for `nix shell` command in nix 2.4+. Only the packages passed on the command line are
# available in PATH, so it is useful to print them all.
set nix_packages
for p in $PATH
set package_name_version (string match --regex '/nix/store/\w+-([^/]+)/.*' $p)[2]
if test "$package_name_version"
set package_name (string match --regex '^(.*)-(\d+(\.\d)+|unstable-20\d{2}-\d{2}-\d{2})' $package_name_version)[2]
if test "$try_to_trim_nix_package_version" = "yes" -a -n "$package_name"
set package $package_name
else
set package $package_name_version
end
if not contains $package $nix_packages
set nix_packages $nix_packages $package
end
end
end
if test (count $nix_packages) -gt $max_package_count_visible_in_prompt
set nix_packages $nix_packages[1..$max_package_count_visible_in_prompt] "..."
end
if [ "$IN_NIX_SHELL" = "impure" ]
# Support for
# 1) `nix-shell` command
# 2) `nix develop` command in nix 2.4+.
# These commands are typically dumping too many packages into PATH for it be useful to print
# them. Thus we only print "nix[impure]".
set envs $envs "nix[impure]"
else if test "$nix_packages"
# Support for `nix-shell -p`. Would print "nix[foo bar baz]".
# We check for this case after checking for "impure" because impure brings too many packages
# into PATH.
set envs $envs "nix[$nix_packages]"
else if test "$IN_NIX_SHELL"
# Support for `nix-shell --pure`. Would print "nix[pure]".
# We check for this case after checking for individual packages because it otherwise might
# confuse the user into believing when they are in a pure shell, after they have invoked
# `nix shell` from within it.
set envs $envs "nix[$IN_NIX_SHELL]"
end
if test "$envs"
prompt_segment $color_virtual_env_bg $color_virtual_env_str (string join " " $envs)
end
end
function prompt_user -d "Display current user if different from $default_user"
if [ "$theme_display_user" = "yes" ]
if [ "$USER" != "$default_user" -o -n "$SSH_CLIENT" ]
set USER (whoami)
get_hostname
if [ $HOSTNAME_PROMPT ]
set USER_PROMPT $USER@$HOSTNAME_PROMPT
else
set USER_PROMPT $USER
end
prompt_segment $color_user_bg $color_user_str $USER_PROMPT
end
else
get_hostname
if [ $HOSTNAME_PROMPT ]
prompt_segment $color_user_bg $color_user_str $HOSTNAME_PROMPT
end
end
end
function get_hostname -d "Set current hostname to prompt variable $HOSTNAME_PROMPT if connected via SSH"
set -g HOSTNAME_PROMPT ""
if [ "$theme_hide_hostname" = "no" -o \( "$theme_hide_hostname" != "yes" -a -n "$SSH_CLIENT" \) ]
set -g HOSTNAME_PROMPT (uname -n)
end
end
function prompt_dir -d "Display the current directory"
prompt_segment $color_dir_bg $color_dir_str (prompt_pwd)
end
function prompt_hg -d "Display mercurial state"
not set -l root (fish_print_hg_root); and return
set -l state
set -l branch (cat $root/branch 2>/dev/null; or echo default)
set -l bookmark (cat $root/bookmarks.current 2>/dev/null)
set state (hg_get_state)
set revision (command hg id -n)
set branch_symbol \uE0A0
set prompt_text "$branch_symbol $branch$bookmark:$revision"
if [ "$state" = "0" ]
prompt_segment $color_hg_changed_bg $color_hg_changed_str $prompt_text " ±"
else
prompt_segment $color_hg_bg $color_hg_str $prompt_text
end
end
function hg_get_state -d "Get mercurial working directory state"
if hg status | grep --quiet -e "^[A|M|R|!|?]"
echo 0
else
echo 1
end
end
function prompt_git -d "Display the current git state"
set -l ref
set -l dirty
if command git rev-parse --is-inside-work-tree >/dev/null 2>&1
set dirty (parse_git_dirty)
set ref (command git symbolic-ref HEAD 2> /dev/null)
if [ $status -gt 0 ]
set -l branch (command git show-ref --head -s --abbrev |head -n1 2> /dev/null)
set ref "$branch "
end
set branch_symbol \uE0A0
set -l long_branch (echo $ref | sed "s#refs/heads/##")
set -l branch (shorten_branch_name $long_branch)
if [ "$dirty" != "" ]
prompt_segment $color_git_dirty_bg $color_git_dirty_str "$branch_symbol $branch $dirty"
else
prompt_segment $color_git_bg $color_git_str "$branch_symbol $branch $dirty"
end
end
end
function prompt_svn -d "Display the current svn state"
set -l ref
if command svn info >/dev/null 2>&1
set long_branch (svn_get_branch)
set -l branch (shorten_branch_name $long_branch)
set branch_symbol \uE0A0
set revision (svn_get_revision)
prompt_segment $color_svn_bg $color_svn_str "$branch_symbol $branch:$revision"
end
end
function svn_get_branch -d "get the current branch name"
svn info 2> /dev/null | awk -F/ \
'/^URL:/ { \
for (i=0; i<=NF; i++) { \
if ($i == "branches" || $i == "tags" ) { \
print $(i+1); \
break;\
}; \
if ($i == "trunk") { print $i; break; } \
} \
}'
end
function svn_get_revision -d "get the current revision number"
svn info 2> /dev/null | sed -n 's/Revision:\ //p'
end
function prompt_status -d "the symbols for a non zero exit status, root and background jobs"
if [ $RETVAL -ne 0 ]
prompt_segment $color_status_nonzero_bg $color_status_nonzero_str $glyph_status_nonzero
end
if [ "$fish_private_mode" ]
prompt_segment $color_status_private_bg $color_status_private_str $glyph_status_private
end
# if superuser (uid == 0)
set -l uid (id -u $USER)
if [ $uid -eq 0 ]
prompt_segment $color_status_superuser_bg $color_status_superuser_str $glyph_status_superuser
end
# Jobs display
if [ (jobs -l | wc -l) -gt 0 ]
prompt_segment $color_status_jobs_bg $color_status_jobs_str $glyph_status_jobs
end
end
# ===========================
# Apply theme
# ===========================
function fish_prompt
set -g RETVAL $status
prompt_status
prompt_user
prompt_dir
prompt_virtual_env
if [ (cwd_in_scm_blacklist | wc -c) -eq 0 ]
type -q git; and prompt_git
if [ "$theme_mercurial_prompt_enabled" = "yes" ]
prompt_hg
end
if [ "$theme_svn_prompt_enabled" = "yes" ]
prompt_svn
end
end
prompt_finish
end
@@ -0,0 +1,81 @@
# right prompt for agnoster theme
# shows vim mode status
# ===========================
# Color setting
# You can set these variables in config.fish like:
# set -g color_dir_bg red
# If not set, default color from agnoster will be used.
# ===========================
set -q color_vi_mode_indicator; or set color_vi_mode_indicator black
set -q color_vi_mode_normal; or set color_vi_mode_normal green
set -q color_vi_mode_insert; or set color_vi_mode_insert blue
set -q color_vi_mode_visual; or set color_vi_mode_visual red
# ===========================
# Cursor setting
# You can set these variables in config.fish like:
# set -g cursor_vi_mode_insert bar_blinking
# ===========================
set -q cursor_vi_mode_normal; or set cursor_vi_mode_normal box_steady
set -q cursor_vi_mode_insert; or set cursor_vi_mode_insert bar_steady
set -q cursor_vi_mode_visual; or set cursor_vi_mode_visual box_steady
function fish_cursor_name_to_code -a cursor_name -d "Translate cursor name to a cursor code"
# these values taken from
# https://github.com/gnachman/iTerm2/blob/master/sources/VT100Terminal.m#L1646
# Beginning with the statement "case VT100CSI_DECSCUSR:"
if [ $cursor_name = "box_blinking" ]
echo 1
else if [ $cursor_name = "box_steady" ]
echo 2
else if [ $cursor_name = "underline_blinking" ]
echo 3
else if [ $cursor_name = "underline_steady" ]
echo 4
else if [ $cursor_name = "bar_blinking" ]
echo 5
else if [ $cursor_name = "bar_steady" ]
echo 6
else
echo 2
end
end
function prompt_vi_mode -d 'vi mode status indicator'
set -l right_segment_separator \uE0B2
switch $fish_bind_mode
case default
set -l mode (fish_cursor_name_to_code $cursor_vi_mode_normal)
echo -e "\e[\x3$mode q"
set_color $color_vi_mode_normal
echo "$right_segment_separator"
set_color -b $color_vi_mode_normal $color_vi_mode_indicator
echo " N "
case insert
set -l mode (fish_cursor_name_to_code $cursor_vi_mode_insert)
echo -e "\e[\x3$mode q"
set_color $color_vi_mode_insert
echo "$right_segment_separator"
set_color -b $color_vi_mode_insert $color_vi_mode_indicator
echo " I "
case visual
set -l mode (fish_cursor_name_to_code $cursor_vi_mode_visual)
echo -e "\e[\x3$mode q"
set_color $color_vi_mode_visual
echo "$right_segment_separator"
set_color -b $color_vi_mode_visual $color_vi_mode_indicator
echo " V "
end
end
function fish_right_prompt -d 'Prints right prompt'
if not test "$fish_key_bindings" = "fish_default_key_bindings"
prompt_vi_mode
set_color normal
end
end
+63
View File
@@ -0,0 +1,63 @@
# Beware! This file is rewritten by htop when settings are changed in the interface.
# The parser is also very primitive, and not human-friendly.
htop_version=3.3.0
config_reader_min_version=3
fields=0 48 17 18 38 39 40 2 46 47 49 1
hide_kernel_threads=1
hide_userland_threads=0
hide_running_in_container=0
shadow_other_users=0
show_thread_names=0
show_program_path=1
highlight_base_name=0
highlight_deleted_exe=1
shadow_distribution_path_prefix=0
highlight_megabytes=1
highlight_threads=1
highlight_changes=0
highlight_changes_delay_secs=5
find_comm_in_cmdline=1
strip_exe_from_cmdline=1
show_merged_command=0
header_margin=1
screen_tabs=1
detailed_cpu_time=0
cpu_count_from_one=0
show_cpu_usage=1
show_cpu_frequency=0
show_cpu_temperature=0
degree_fahrenheit=0
update_process_names=0
account_guest_in_cpu_meter=0
color_scheme=0
enable_mouse=1
delay=15
hide_function_bar=0
header_layout=two_50_50
column_meters_0=AllCPUs Memory Swap
column_meter_modes_0=1 1 1
column_meters_1=Tasks LoadAverage Uptime
column_meter_modes_1=2 2 2
tree_view=0
sort_key=46
tree_sort_key=0
sort_direction=-1
tree_sort_direction=1
tree_view_always_by_pid=0
all_branches_collapsed=0
screen:Main=PID USER PRIORITY NICE M_VIRT M_RESIDENT M_SHARE STATE PERCENT_CPU PERCENT_MEM TIME Command
.sort_key=PERCENT_CPU
.tree_sort_key=PID
.tree_view_always_by_pid=0
.tree_view=0
.sort_direction=-1
.tree_sort_direction=1
.all_branches_collapsed=0
screen:I/O=PID USER IO_PRIORITY IO_RATE IO_READ_RATE IO_WRITE_RATE PERCENT_SWAP_DELAY PERCENT_IO_DELAY Command
.sort_key=IO_RATE
.tree_sort_key=PID
.tree_view_always_by_pid=0
.tree_view=0
.sort_direction=-1
.tree_sort_direction=1
.all_branches_collapsed=0
+8
View File
@@ -0,0 +1,8 @@
tt.*
.tests
doc/tags
debug
.repro
foo.*
*.log
data
+15
View File
@@ -0,0 +1,15 @@
{
"neodev": {
"library": {
"enabled": true,
"plugins": true
}
},
"neoconf": {
"plugins": {
"lua_ls": {
"enabled": true
}
}
}
}
+201
View File
@@ -0,0 +1,201 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
+4
View File
@@ -0,0 +1,4 @@
# 💤 LazyVim
A starter template for [LazyVim](https://github.com/LazyVim/LazyVim).
Refer to the [documentation](https://lazyvim.github.io/installation) to get started.
+7
View File
@@ -0,0 +1,7 @@
-- bootstrap lazy.nvim, LazyVim and your plugins
require("config.lazy")
require("lspconfig").elixirls.setup({
-- Unix
cmd = { "elixir-ls" },
})
vim.opt.modeline = false
+42
View File
@@ -0,0 +1,42 @@
{
"LazyVim": { "branch": "main", "commit": "83d90f339defdb109a6ede333865a66ffc7ef6aa" },
"blink.cmp": { "branch": "main", "commit": "78336bc89ee5365633bcf754d93df01678b5c08f" },
"bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" },
"catppuccin": { "branch": "main", "commit": "426dbebe06b5c69fd846ceb17b42e12f890aedf1" },
"conform.nvim": { "branch": "master", "commit": "dca1a190aa85f9065979ef35802fb77131911106" },
"crates.nvim": { "branch": "main", "commit": "694357861ec9ebf12475ddcdd04ea45a0923c32d" },
"flash.nvim": { "branch": "main", "commit": "fcea7ff883235d9024dc41e638f164a450c14ca2" },
"friendly-snippets": { "branch": "main", "commit": "6cd7280adead7f586db6fccbd15d2cac7e2188b9" },
"gitsigns.nvim": { "branch": "main", "commit": "dd3f588bacbeb041be6facf1742e42097f62165d" },
"grug-far.nvim": { "branch": "main", "commit": "21790e59dd0109a92a70cb874dd002af186314f5" },
"lazy.nvim": { "branch": "main", "commit": "85c7ff3711b730b4030d03144f6db6375044ae82" },
"lazydev.nvim": { "branch": "main", "commit": "ff2cbcba459b637ec3fd165a2be59b7bbaeedf0d" },
"lualine.nvim": { "branch": "master", "commit": "131a558e13f9f28b15cd235557150ccb23f89286" },
"markdown-preview.nvim": { "branch": "master", "commit": "a923f5fc5ba36a3b17e289dc35dc17f66d0548ee" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "0c2823e0418f3d9230ff8b201c976e84de1cb401" },
"mason.nvim": { "branch": "main", "commit": "cb8445f8ce85d957416c106b780efd51c6298f89" },
"mini.ai": { "branch": "main", "commit": "43eb2074843950a3a25aae56a5f41362ec043bfa" },
"mini.icons": { "branch": "main", "commit": "bac6317300e205335df425296570d84322730067" },
"mini.pairs": { "branch": "main", "commit": "42387c7fe68fc0b6e95eaf37f1bb76e7bffaa0d9" },
"noice.nvim": { "branch": "main", "commit": "7bfd942445fb63089b59f97ca487d605e715f155" },
"nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" },
"nvim-ansible": { "branch": "main", "commit": "c7f595d568b588942d4d0c37b5cd6cae3764a148" },
"nvim-lint": { "branch": "master", "commit": "eab58b48eb11d7745c11c505e0f3057165902461" },
"nvim-lspconfig": { "branch": "master", "commit": "31026a13eefb20681124706a79fc1df6bf11ab27" },
"nvim-treesitter": { "branch": "main", "commit": "4916d6592ede8c07973490d9322f187e07dfefac" },
"nvim-treesitter-textobjects": { "branch": "main", "commit": "851e865342e5a4cb1ae23d31caf6e991e1c99f1e" },
"nvim-ts-autotag": { "branch": "main", "commit": "88c1453db4ba7dd24131086fe51fdf74e587d275" },
"persistence.nvim": { "branch": "main", "commit": "b20b2a7887bd39c1a356980b45e03250f3dce49c" },
"plenary.nvim": { "branch": "master", "commit": "74b06c6c75e4eeb3108ec01852001636d85a932b" },
"render-markdown.nvim": { "branch": "main", "commit": "3f3eea97b80839f629c951ca660ffd125bfa5b34" },
"rustaceanvim": { "branch": "master", "commit": "f2f0c1231a5b019dbc1fd6dafac1751c878925a3" },
"snacks.nvim": { "branch": "main", "commit": "ad9ede6a9cddf16cedbd31b8932d6dcdee9b716e" },
"solarized.nvim": { "branch": "main", "commit": "a8085e29883ddcfb39bd46197eb32ef00df05368" },
"todo-comments.nvim": { "branch": "main", "commit": "31e3c38ce9b29781e4422fc0322eb0a21f4e8668" },
"tokyonight.nvim": { "branch": "main", "commit": "cdc07ac78467a233fd62c493de29a17e0cf2b2b6" },
"transparent.nvim": { "branch": "main", "commit": "8ac59883de84e9cd1850ea25cf087031c5ba7d54" },
"trouble.nvim": { "branch": "main", "commit": "bd67efe408d4816e25e8491cc5ad4088e708a69a" },
"ts-comments.nvim": { "branch": "main", "commit": "123a9fb12e7229342f807ec9e6de478b1102b041" },
"venv-selector.nvim": { "branch": "main", "commit": "bcb2f58533c59b01565285eba49693f00bc460f5" },
"which-key.nvim": { "branch": "main", "commit": "3aab2147e74890957785941f0c1ad87d0a44c15a" }
}
+14
View File
@@ -0,0 +1,14 @@
{
"extras": [
"lazyvim.plugins.extras.formatting.black",
"lazyvim.plugins.extras.lang.ansible",
"lazyvim.plugins.extras.lang.markdown",
"lazyvim.plugins.extras.lang.python",
"lazyvim.plugins.extras.lang.rust"
],
"install_version": 8,
"news": {
"NEWS.md": "11866"
},
"version": 8
}
@@ -0,0 +1,8 @@
-- Autocmds are automatically loaded on the VeryLazy event
-- Default autocmds that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/autocmds.lua
--
-- Add any additional autocmds here
-- with `vim.api.nvim_create_autocmd`
--
-- Or remove existing autocmds by their group name (which is prefixed with `lazyvim_` for the defaults)
-- e.g. vim.api.nvim_del_augroup_by_name("lazyvim_wrap_spell")
@@ -0,0 +1,3 @@
-- Keymaps are automatically loaded on the VeryLazy event
-- Default keymaps that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/keymaps.lua
-- Add any additional keymaps here
+53
View File
@@ -0,0 +1,53 @@
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not (vim.uv or vim.loop).fs_stat(lazypath) then
local lazyrepo = "https://github.com/folke/lazy.nvim.git"
local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
if vim.v.shell_error ~= 0 then
vim.api.nvim_echo({
{ "Failed to clone lazy.nvim:\n", "ErrorMsg" },
{ out, "WarningMsg" },
{ "\nPress any key to exit..." },
}, true, {})
vim.fn.getchar()
os.exit(1)
end
end
vim.opt.rtp:prepend(lazypath)
require("lazy").setup({
spec = {
-- add LazyVim and import its plugins
{ "LazyVim/LazyVim", import = "lazyvim.plugins" },
-- import/override with your plugins
{ import = "plugins" },
},
defaults = {
-- By default, only LazyVim plugins will be lazy-loaded. Your custom plugins will load during startup.
-- If you know what you're doing, you can set this to `true` to have all your custom plugins lazy-loaded by default.
lazy = false,
-- It's recommended to leave version=false for now, since a lot the plugin that support versioning,
-- have outdated releases, which may break your Neovim install.
version = false, -- always use the latest git commit
-- version = "*", -- try installing the latest stable version for plugins that support semver
},
install = { colorscheme = { "tokyonight", "habamax" } },
checker = {
enabled = true, -- check for plugin updates periodically
notify = false, -- notify on update
}, -- automatically check for plugin updates
performance = {
rtp = {
-- disable some rtp plugins
disabled_plugins = {
"gzip",
-- "matchit",
-- "matchparen",
-- "netrwPlugin",
"tarPlugin",
"tohtml",
"tutor",
"zipPlugin",
},
},
},
})
@@ -0,0 +1,3 @@
-- Options are automatically loaded before lazy.nvim startup
-- Default options that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/options.lua
-- Add any additional options here
+197
View File
@@ -0,0 +1,197 @@
-- since this is just an example spec, don't actually load anything here and return an empty spec
-- stylua: ignore
if true then return {} end
-- every spec file under the "plugins" directory will be loaded automatically by lazy.nvim
--
-- In your plugin files, you can:
-- * add extra plugins
-- * disable/enabled LazyVim plugins
-- * override the configuration of LazyVim plugins
return {
-- add gruvbox
{ "ellisonleao/gruvbox.nvim" },
-- Configure LazyVim to load gruvbox
{
"LazyVim/LazyVim",
opts = {
colorscheme = "gruvbox",
},
},
-- change trouble config
{
"folke/trouble.nvim",
-- opts will be merged with the parent spec
opts = { use_diagnostic_signs = true },
},
-- disable trouble
{ "folke/trouble.nvim", enabled = false },
-- override nvim-cmp and add cmp-emoji
{
"hrsh7th/nvim-cmp",
dependencies = { "hrsh7th/cmp-emoji" },
---@param opts cmp.ConfigSchema
opts = function(_, opts)
table.insert(opts.sources, { name = "emoji" })
end,
},
-- change some telescope options and a keymap to browse plugin files
{
"nvim-telescope/telescope.nvim",
keys = {
-- add a keymap to browse plugin files
-- stylua: ignore
{
"<leader>fp",
function() require("telescope.builtin").find_files({ cwd = require("lazy.core.config").options.root }) end,
desc = "Find Plugin File",
},
},
-- change some options
opts = {
defaults = {
layout_strategy = "horizontal",
layout_config = { prompt_position = "top" },
sorting_strategy = "ascending",
winblend = 0,
},
},
},
-- add pyright to lspconfig
{
"neovim/nvim-lspconfig",
---@class PluginLspOpts
opts = {
---@type lspconfig.options
servers = {
-- pyright will be automatically installed with mason and loaded with lspconfig
pyright = {},
},
},
},
-- add tsserver and setup with typescript.nvim instead of lspconfig
{
"neovim/nvim-lspconfig",
dependencies = {
"jose-elias-alvarez/typescript.nvim",
init = function()
require("lazyvim.util").lsp.on_attach(function(_, buffer)
-- stylua: ignore
vim.keymap.set( "n", "<leader>co", "TypescriptOrganizeImports", { buffer = buffer, desc = "Organize Imports" })
vim.keymap.set("n", "<leader>cR", "TypescriptRenameFile", { desc = "Rename File", buffer = buffer })
end)
end,
},
---@class PluginLspOpts
opts = {
---@type lspconfig.options
servers = {
-- tsserver will be automatically installed with mason and loaded with lspconfig
tsserver = {},
},
-- you can do any additional lsp server setup here
-- return true if you don't want this server to be setup with lspconfig
---@type table<string, fun(server:string, opts:_.lspconfig.options):boolean?>
setup = {
-- example to setup with typescript.nvim
tsserver = function(_, opts)
require("typescript").setup({ server = opts })
return true
end,
-- Specify * to use this function as a fallback for any server
-- ["*"] = function(server, opts) end,
},
},
},
-- for typescript, LazyVim also includes extra specs to properly setup lspconfig,
-- treesitter, mason and typescript.nvim. So instead of the above, you can use:
{ import = "lazyvim.plugins.extras.lang.typescript" },
-- add more treesitter parsers
{
"nvim-treesitter/nvim-treesitter",
opts = {
ensure_installed = {
"bash",
"html",
"javascript",
"json",
"lua",
"markdown",
"markdown_inline",
"python",
"query",
"regex",
"tsx",
"typescript",
"vim",
"yaml",
},
},
},
-- since `vim.tbl_deep_extend`, can only merge tables and not lists, the code above
-- would overwrite `ensure_installed` with the new value.
-- If you'd rather extend the default config, use the code below instead:
{
"nvim-treesitter/nvim-treesitter",
opts = function(_, opts)
-- add tsx and treesitter
vim.list_extend(opts.ensure_installed, {
"tsx",
"typescript",
})
end,
},
-- the opts function can also be used to change the default opts:
{
"nvim-lualine/lualine.nvim",
event = "VeryLazy",
opts = function(_, opts)
table.insert(opts.sections.lualine_x, {
function()
return "😄"
end,
})
end,
},
-- or you can return new options to override all the defaults
{
"nvim-lualine/lualine.nvim",
event = "VeryLazy",
opts = function()
return {
--[[add your custom lualine config here]]
}
end,
},
-- use mini.starter instead of alpha
{ import = "lazyvim.plugins.extras.ui.mini-starter" },
-- add jsonls and schemastore packages, and setup treesitter for json, json5 and jsonc
{ import = "lazyvim.plugins.extras.lang.json" },
-- add any tools you want to have installed below
{
"williamboman/mason.nvim",
opts = {
ensure_installed = {
"stylua",
"shellcheck",
"shfmt",
"flake8",
},
},
},
}
+3
View File
@@ -0,0 +1,3 @@
return {
{ "xiyaowong/transparent.nvim", lazy = false },
}
@@ -0,0 +1,13 @@
return {
"maxmx03/solarized.nvim",
lazy = false,
priority = 1000,
---@type solarized.config
opts = {},
config = function(_, opts)
vim.o.termguicolors = true
vim.o.background = "dark"
require("solarized").setup(opts)
vim.cmd.colorscheme("solarized")
end,
}
+3
View File
@@ -0,0 +1,3 @@
indent_type = "Spaces"
indent_width = 2
column_width = 120
+101
View File
@@ -0,0 +1,101 @@
" 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 (they set bold
" attribute in terminals with less than 16 colors):
" LightBlack
" LightRed
" LightGreen
" LightYellow
" LightBlue
" LightMagenta
" LightCyan
" LightWhite
" Available attributes (some of them can be combined):
" bold
" underline
" reverse or inverse
" standout
" italic (on unsupported systems becomes reverse)
" combine
" 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 HardLink cterm=none ctermfg=yellow 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,reverse ctermfg=default ctermbg=default
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 WildBox 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 Border cterm=none ctermfg=black ctermbg=white
highlight OtherLine ctermfg=default ctermbg=default
highlight JobLine cterm=bold,reverse ctermfg=black ctermbg=white
highlight SuggestBox cterm=bold ctermfg=default ctermbg=default
highlight CmpMismatch cterm=bold ctermfg=white ctermbg=red
highlight CmpUnmatched cterm=bold ctermfg=white ctermbg=green
highlight CmpBlank ctermfg=default ctermbg=default
highlight AuxWin ctermfg=default ctermbg=default
highlight TabLine cterm=none ctermfg=white ctermbg=black
highlight TabLineSel cterm=bold,reverse ctermfg=default ctermbg=default
highlight User1 ctermfg=default ctermbg=default
highlight User2 ctermfg=default ctermbg=default
highlight User3 ctermfg=default ctermbg=default
highlight User4 ctermfg=default ctermbg=default
highlight User5 ctermfg=default ctermbg=default
highlight User6 ctermfg=default ctermbg=default
highlight User7 ctermfg=default ctermbg=default
highlight User8 ctermfg=default ctermbg=default
highlight User9 ctermfg=default ctermbg=default
highlight User10 ctermfg=default ctermbg=default
highlight User11 ctermfg=default ctermbg=default
highlight User12 ctermfg=default ctermbg=default
highlight User13 ctermfg=default ctermbg=default
highlight User14 ctermfg=default ctermbg=default
highlight User15 ctermfg=default ctermbg=default
highlight User16 ctermfg=default ctermbg=default
highlight User17 ctermfg=default ctermbg=default
highlight User18 ctermfg=default ctermbg=default
highlight User19 ctermfg=default ctermbg=default
highlight User20 ctermfg=default ctermbg=default
highlight OtherWin ctermfg=default ctermbg=default
highlight LineNr ctermfg=default ctermbg=default
highlight OddLine ctermfg=default ctermbg=default
+1
View File
@@ -0,0 +1 @@
{"gtabs":[{"panes":[{"ptabs":[{"history":[{"dir":"/home/fedor/w","file":"..","relpos":0,"ts":1760707093},{"dir":"/home/fedor","file":"Nextcloud","relpos":5,"ts":1760707093},{"dir":"/home/fedor/Nextcloud","file":"books","relpos":7,"ts":1760707093},{"dir":"/home/fedor/Nextcloud/books","file":"Stephen Bussey - Real-Time Phoenix.pdf","relpos":18,"ts":1760707093}],"filters":{"invert":true,"dot":true,"manual":"","auto":""},"last-location":"/home/fedor/Nextcloud/books","sorting":[2],"preview":false}]},{"ptabs":[{"history":[{"dir":"/home/fedor/w","file":"..","relpos":0,"ts":1760707093},{"dir":"/home/fedor","file":"books","relpos":10,"ts":1760707093},{"dir":"/home/fedor/books","file":"Elixir","relpos":1,"ts":1760707093},{"dir":"/home/fedor/books/Elixir","file":"phoenix","relpos":3,"ts":1760707093},{"dir":"/home/fedor/books/Elixir/phoenix","file":"Lance Halvorsen - Functional Web Development with Elixir, OTP, and Phoenix. Rethink the Modern Web App-Pragmatic Bookshelf (2017).pdf","relpos":3,"ts":1760707093}],"filters":{"invert":true,"dot":true,"manual":"","auto":""},"last-location":"/home/fedor/books/Elixir/phoenix","sorting":[2],"preview":false}]}],"active-pane":1,"preview":false,"splitter":{"pos":-1,"ratio":0.5,"orientation":"v","expanded":false}}],"active-gtab":0,"marks":{"H":{"dir":"/home/fedor/","file":"..","ts":1760706827},"b":{"dir":"/home/fedor/bin/","file":"..","ts":1760706827},"h":{"dir":"/home/fedor/","file":"..","ts":1760706827},"z":{"dir":"/home/fedor/.config/vifm","file":"..","ts":1760706827}},"bmarks":{},"cmd-hist":[{"text":"mkdir phoenix","ts":1760707093},{"text":"q","ts":1760707093}],"regs":{"\"":["/home/fedor/Nextcloud/books/Bruce Tate, Sophie DeBenedetto - Programming Phoenix LiveView_ Interactive Elixir Web Programming Without Writing Any JavaScript-Pragmatic Bookshelf (2022).pdf","/home/fedor/Nextcloud/books/Chris McCord, Bruce Tate, Jose Valim - Programming Phoenix 1.4_ Productive -_ Reliable -_ Fast-The Pragmatic Programmers (2019).pdf","/home/fedor/Nextcloud/books/Lance Halvorsen - Functional Web Development with Elixir, OTP, and Phoenix. Rethink the Modern Web App-Pragmatic Bookshelf (2017).pdf","/home/fedor/Nextcloud/books/Stephen Bussey - Real-Time Phoenix.pdf"]},"dir-stack":[],"use-term-multiplexer":false}
+627
View File
@@ -0,0 +1,627 @@
" vim: filetype=vifm :
"
" Sample configuration file for vifm (last updated: 11 May, 2025)
"
" 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.
"
" The purpose of this file
" ========================
" 1. Provide a sensible default configuration out of the box.
" 2. Demonstrate how a typical configuration file might look like.
" 3. Familiarize a user with commonly used features.
" 4. Provide some ideas/settings for various use cases.
"
" How to use this file
" ====================
" - Go through it top to bottom while reading comments.
" - Adjust/remove/comment/uncomment lines as you see fit.
" - Look up :commands or 'options' in the documentation to learn more.
"
" Some settings are set to provide more useful defaults without breaking
" compatibility and others are just a great fit (e.g., some bindings) and are
" almost universally useful, but most lines are provided simply as usage
" examples and can be removed without hesitation. Make configuration specific
" to your needs using this file as a starting point.
" ------------------------------------------------------------------------------
" Main settings
" ------------------------------------------------------------------------------
" 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.
if executable('vim')
set vicmd=vim
elseif executable('nvim')
set vicmd=nvim
elseif executable('elvis')
set vicmd=elvis\ -G\ termcap
elseif executable('vile')
set vicmd=vile
elseif $EDITOR != ''
echo 'Note: using `'.$EDITOR.'` as an editor'
let &vicmd = $EDITOR
endif
" 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
" What should be saved automatically on restarting vifm. Drop "savedirs"
" value if you don't want vifm to remember last visited directories for you.
set vifminfo=dhistory,savedirs,chistory,state,tui,tabs,shistory,ehistory,
\phistory,fhistory,dirstack,registers,bookmarks,bmarks,mchistory
" This is size of all of the many kinds of histories, in particular it's the
" number of last visited directories (not necessarily distinct ones) stored 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
" 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
" 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='%Y/%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 select search matches automatically
set nohlsearch
" Use increment searching (search while typing)
set incsearch
" Try to leave some space from cursor to upper/lower border in lists
set scrolloff=4
" Don't do too many requests to slow file systems
if !has('win')
set slowfs=curlftpfs
endif
" Set custom status line look
if !has('win')
set statusline=" Hint: %z%= %A %10u:%-7g %15s %20d "
else
set statusline=" Hint: %z%= %A %15s %20d "
endif
" Suppress "Permission denied" errors using syntax specific to GNU find
if system("find --version | grep -c 'GNU findutils'") != 0
set findprg='find %s %a -print , -type d \( ! -readable -o ! -executable \) -prune'
endif
" Add -s to the default value to suppress "Permission denied" errors
set grepprg="grep -n -H -I -r -s %i %a %s"
" List of color schemes to try (picks the first one supported by the terminal)
colorscheme Default-256 Default
" ------------------------------------------------------------------------------
" Bookmarks
" ------------------------------------------------------------------------------
" :mark mark /full/directory/path [filename]
mark b ~/bin/
mark h ~/
" ------------------------------------------------------------------------------
" Commands
" ------------------------------------------------------------------------------
" :com[mand][!] command_name action
"
" These are some of the macros that can be used in the action part:
" %a for user arguments
" %c for current file under the cursor
" %C for current file under the cursor of inactive pane
" %f for selected file(s)
" %F for selected file(s) of inactive pane
" %b is the same as %f %F
" %d for current directory name
" %D for current directory name of inactive pane
" %r{x} for list of files in register {x}
" %m runs the command in a menu window
" %u uses command's output to build a file list
" see `:help vifm-macros` and `:help vifm-filename-modifiers` for more
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
" ------------------------------------------------------------------------------
" File handlers and previewers
" ------------------------------------------------------------------------------
" Setting up handlers that are considered in all environments:
" filetype {pattern1,pattern2} program1,{Optional description}program2
"
" Setting up handlers that are considered only in a graphical environment:
" filextype {pattern} graphical-program %c
"
" Setting up previewers:
" fileviewer {pattern1,pattern2} console-viewer1,console-viewer2
"
" ORDER MATTERS! Both handlers and previewers are considered in the order of
" their definition, therefore they should be defined from most to least
" specific. In particular, catch-all patterns like `*`, `*/`, `.*`, `*.*`
" should be defined after all others.
"
" All entries matching a particular file are considered in order until an
" existing command is found. Other entries are accessible via :file command
" for handlers or via `a` and `A` keys for previewers in view mode.
"
" The ordering can be checked at run-time by running
" :filetype/:filextype/:fileviewer with a file name as the only argument.
" This displays a menu of defined entries annotated with availability of
" commands.
"
" More on syntax and usage:
" - macros like %c, %f, %d, etc. may be used in the commands
" - the %a macro is ignored
" - to insert a literal % use %%
" - spaces in an app name must be escaped, for example:
" + QuickTime\ Player.app
" + "c:/Program Files (x86)/app/app.exe"
" For automated FUSE mounts, you must register an extension with :file[x]type
" in one of the following formats:
"
" :filetype patterns FUSE_MOUNT|mount_cmd %SOURCE_FILE %DESTINATION_DIR
"
" %SOURCE_FILE and %DESTINATION_DIR are filled in at runtime.
"
" Example:
" :filetype *.zip,*.[jwe]ar FUSE_MOUNT|fuse-zip %SOURCE_FILE %DESTINATION_DIR
"
" :filetype patterns FUSE_MOUNT2|mount_cmd %PARAM %DESTINATION_DIR
"
" %PARAM and %DESTINATION_DIR are filled in at runtime.
"
" Example:
" :filetype *.ssh FUSE_MOUNT2|sshfs %PARAM %DESTINATION_DIR
"
" %PARAM value is the first line of the matched file, example: root@127.0.0.1:/
"
" You can also add %CLEAR if you want to clear screen before running FUSE
" program. There is also %FOREGROUND, which is useful for entering passwords.
" Pdf
filextype {*.pdf},<application/pdf> zathura %c %i, apvlv %c, xpdf %c
fileviewer {*.pdf},<application/pdf> pdftotext -nopgbrk %c -
" PostScript
filextype {*.ps,*.eps,*.ps.gz},<application/postscript>
\ {View in zathura}
\ zathura %f,
\ {View in gv}
\ gv %c %i,
" Djvu
filextype {*.djvu},<image/vnd.djvu>
\ {View in zathura}
\ zathura %f,
\ {View in apvlv}
\ apvlv %f,
" Midi
filetype {*.mid,*.kar}
\ {Play using TiMidity++}
\ timidity %f,
" Audio
filetype {*.wav,*.mp3,*.flac,*.m4a,*.wma,*.ape,*.ac3,*.og[agx],*.spx,*.opus,
\*.aac,*.mpga},
\<audio/*>
\ {Play using MPlayer}
\ mplayer %f,
\ {Play using mpv}
\ mpv --no-video %f %s,
\ {Play using ffplay}
\ ffplay -nodisp -hide_banner -autoexit %c,
fileviewer {*.wav,*.mp3,*.flac,*.m4a,*.wma,*.ape,*.ac3,*.og[agx],*.spx,*.opus,
\*.aac,*.mpga},
\<audio/*>
\ ffprobe -hide_banner -pretty %c 2>&1
" Video
filextype {*.avi,*.mp4,*.wmv,*.dat,*.3gp,*.ogv,*.mkv,*.mpg,*.mpeg,*.vob,
\*.fl[icv],*.m2v,*.mov,*.webm,*.mts,*.m4v,*.r[am],*.qt,*.divx,
\*.as[fx],*.unknown_video},
\<video/*>
\ {View using ffplay}
\ ffplay -fs -hide_banner -autoexit %f,
\ {View using Dragon}
\ dragon %f:p,
\ {View using mplayer}
\ mplayer %f,
\ {Play using mpv}
\ mpv %f,
fileviewer {*.avi,*.mp4,*.wmv,*.dat,*.3gp,*.ogv,*.mkv,*.mpg,*.mpeg,*.vob,
\*.fl[icv],*.m2v,*.mov,*.webm,*.mts,*.m4v,*.r[am],*.qt,*.divx,
\*.as[fx],*.unknown_video},
\<video/*>
\ ffprobe -hide_banner -pretty %c 2>&1
" Web
filextype {*.xhtml,*.html,*.htm},<text/html>
\ {Open with qutebrowser}
\ qutebrowser %f %i,
\ {Open with firefox}
\ firefox %f &,
filetype {*.xhtml,*.html,*.htm},<text/html> links, lynx
" Object
filetype {*.o},<application/x-object> nm %f | less
" Man page
filetype {*.[1-8]},<text/troff> man ./%c
fileviewer {*.[1-8]},<text/troff> man ./%c | col -b
" Images
filextype {*.svg,*.svgz},<image/svg+xml>
\ {Edit in Inkscape}
\ inkscape %f,
\ {View in Inkview}
\ inkview %f,
filextype {*.cr2}
\ {Open in Darktable}
\ darktable %f,
\ {Open in RawTherapee}
\ rawtherapee %f,
filextype {*.xcf}
\ {Open in GIMP}
\ gimp %f,
filextype {*.kra}
\ {Open in Krita}
\ krita %f,
filextype {*.blend}
\ {Open in Blender}
\ blender %c,
filextype {*.sh3d}
\ {Open in Sweet Home 3D}
\ sweethome3d %c:p,
filextype {*.bmp,*.jpg,*.jpeg,*.png,*.gif,*.xpm},<image/*>
\ {View in sxiv}
\ sxiv %f,
\ {View in gpicview}
\ gpicview %c,
\ {View in shotwell}
\ shotwell,
fileviewer {*.bmp,*.jpg,*.jpeg,*.png,*.gif,*.xpm},<image/*>
\ identify %f
" OpenRaster
filextype *.ora
\ {Edit in MyPaint}
\ mypaint %f,
" Mindmap
filextype *.vym
\ {Open with VYM}
\ vym %f &,
" MD5
filetype *.md5
\ {Check MD5 hash sum}
\ md5sum -c %f %S,
" SHA1
filetype *.sha1
\ {Check SHA1 hash sum}
\ sha1sum -c %f %S,
" SHA256
filetype *.sha256
\ {Check SHA256 hash sum}
\ sha256sum -c %f %S,
" SHA512
filetype *.sha512
\ {Check SHA512 hash sum}
\ sha512sum -c %f %S,
" GPG signature
filetype {*.asc},<application/pgp-signature>
\ {Check signature}
\ !!gpg --verify %c,
" Torrent
filetype {*.torrent},<application/x-bittorrent> ktorrent %f &
fileviewer {*.torrent},<application/x-bittorrent>
\ dumptorrent -v %c,
\ transmission-show %c
" FuseZipMount
filetype {*.zip,*.jar,*.war,*.ear,*.oxt,*.apkg},
\<application/zip,application/java-archive>
\ {Mount with fuse-zip}
\ FUSE_MOUNT|fuse-zip %SOURCE_FILE %DESTINATION_DIR,
\ {View contents}
\ unzip -l %f | less,
\ {Extract here}
\ unzip %c,
fileviewer *.zip,*.jar,*.war,*.ear,*.oxt unzip -l %f
" ArchiveMount
filetype {*.cpio,*.cpio.gz,*.rpm,*.tar,*.tar.bz2,*.tbz2,*.tgz,*.tar.gz,*.tar.xz,
\*.txz,*.tar.zst,*.tzst},
\<application/x-cpio,application/x-rpm,application/x-tar>
\ {Mount with archivemount}
\ FUSE_MOUNT|archivemount %SOURCE_FILE %DESTINATION_DIR,
fileviewer *.tgz,*.tar.gz tar -tzf %c
fileviewer *.tar.bz2,*.tbz2 tar -tjf %c
fileviewer *.tar.xz,*.txz tar -tJf %c
fileviewer *.tar.zst,*.tzst tar -t --zstd -f %c
fileviewer {*.tar},<application/x-tar> tar -tf %c
fileviewer {*.cpio},<application/x-cpio> cpio -t < %c
fileviewer {*.rpm},<application/x-rpm> rpm -q --list %c%q 2> /dev/null
" Rar2FsMount and rar archives
filetype {*.rar},<application/x-rar>
\ {Mount with rar2fs}
\ FUSE_MOUNT|rar2fs %SOURCE_FILE %DESTINATION_DIR,
fileviewer {*.rar},<application/x-rar> unrar v %c
" IsoMount
filetype {*.iso},<application/x-iso9660-image>
\ {Mount with fuseiso}
\ FUSE_MOUNT|fuseiso %SOURCE_FILE %DESTINATION_DIR,
" SshMount
filetype *.ssh
\ {Mount with sshfs}
\ FUSE_MOUNT2|sshfs %PARAM %DESTINATION_DIR %FOREGROUND,
" FtpMount
filetype *.ftp
\ {Mount with curlftpfs}
\ FUSE_MOUNT2|curlftpfs -o ftp_port=-,,disable_eprt %PARAM %DESTINATION_DIR %FOREGROUND,
" Fuse7z and 7z archives
filetype {*.7z},<application/x-7z-compressed>
\ {Mount with fuse-7z}
\ FUSE_MOUNT|fuse-7z %SOURCE_FILE %DESTINATION_DIR,
fileviewer {*.7z},<application/x-7z-compressed> 7z l %c
" Office files
filextype {*.odt,*.doc,*.docx,*.xls,*.xlsx,*.odp,*.pptx,*.ppt},
\<application/vnd.openxmlformats-officedocument.*,
\application/msword,
\application/vnd.ms-excel>
\ libreoffice %f &
fileviewer {*.doc},<application/msword> catdoc %c
fileviewer {*.docx},
\<application/
\vnd.openxmlformats-officedocument.wordprocessingml.document>
\ docx2txt.pl %f -
" TuDu files
filetype *.tudu tudu -f %c
" Qt projects
filextype *.pro qtcreator %f &
" Directories
filextype */
\ {View in thunar}
\ Thunar %f &,
" Syntax highlighting in preview
"
" Explicitly set highlight type for some extensions
"
" 256-color terminal
" fileviewer *.[ch],*.[ch]pp highlight -O xterm256 -s dante --syntax c %c
" fileviewer Makefile,Makefile.* highlight -O xterm256 -s dante --syntax make %c
"
" 16-color terminal
" fileviewer *.c,*.h highlight -O ansi -s dante %c
"
" Or leave it for automatic detection
" fileviewer *[^/] pygmentize -O style=monokai -f console256 -g
" Displaying pictures in terminal
" fileviewer *.jpg,*.png shellpic %c
" Open all other files with default system programs (you can also remove all
" :file[x]type commands above to ensure they don't interfere with system-wide
" settings). By default all unknown files are opened with 'vi[x]cmd'
" uncommenting one of lines below will result in ignoring 'vi[x]cmd' option
" for unknown file types.
" For *nix:
" filetype * xdg-open
" For OS X:
" filetype * open
" For Windows:
" filetype * explorer %"f &
" ------------------------------------------------------------------------------
" Sample keyboard mappings
" ------------------------------------------------------------------------------
" Start shell in current directory
nnoremap s :shell<cr>
" Display sorting dialog
nnoremap S :sort<cr>
" Toggle visibility of preview window
nnoremap w :view<cr>
vnoremap w :view<cr>gv
if $DISPLAY != '' && executable('gvim')
" Open file in existing instance of gvim
nnoremap o :!gvim --remote-tab-silent %f<cr>
" Open file in new instance of gvim
nnoremap O :!gvim %f<cr>
endif
" Open file in the background using its default program
nnoremap gb :file &<cr>l
" Interaction with system clipboard
if has('win')
" Yank current directory path to Windows clipboard with forward slashes
nnoremap yp :!echo %"d:gs!\!/! %i | clip<cr>
" Yank path to current file to Windows clipboard with forward slashes
nnoremap yf :!echo %"c:p:gs!\!/! %i | clip<cr>
elseif $WAYLAND_DISPLAY != ''
if executable('wl-copy')
" Yank current directory path into primary and selection clipboards
nnoremap yd :!echo -n %d | wl-copy %i &&
\ echo -n %d | wl-copy -p %i<cr>
" Yank current file path into into primary and selection clipboards
nnoremap yf :!echo -n %c:p | wl-copy %i &&
\ echo -n %c:p | wl-copy -p %i<cr>
endif
elseif $DISPLAY != ''
if executable('xclip')
" Yank current directory path into the clipboard
nnoremap yd :!echo -n %d | xclip -selection clipboard %i<cr>
" Yank current file path into the clipboard
nnoremap yf :!echo -n %c:p | xclip -selection clipboard %i<cr>
elseif executable('xsel')
" Yank current directory path into primary and selection clipboards
nnoremap yd :!echo -n %d | xsel --input --primary %i &&
\ echo -n %d | xsel --clipboard --input %i<cr>
" Yank current file path into into primary and selection clipboards
nnoremap yf :!echo -n %c:p | xsel --input --primary %i &&
\ echo -n %c:p | xsel --clipboard --input %i<cr>
endif
endif
" Mappings for faster renaming
nnoremap I cw<c-a>
nnoremap cc cw<c-u>
nnoremap A cw
" As above, but without the file extension
" nnoremap I cW<c-a>
" nnoremap cc cW<c-u>
" nnoremap A cW
" Open console in current directory
if $DISPLAY != '' && executable('xterm')
nnoremap ,t :!xterm &<cr>
elseif $TERMINAL != ''
nnoremap ,t :!$TERMINAL &<cr>
endif
" Open editor to edit vifmrc and apply settings after returning to vifm
nnoremap ,c :write | edit $MYVIFMRC | restart full<cr>
" Open gvim to edit vifmrc
if $DISPLAY != '' && executable('gvim')
nnoremap ,C :!gvim --remote-tab-silent $MYVIFMRC &<cr>
endif
" Toggle wrap setting on ,w key
nnoremap ,w :set wrap!<cr>
" Example of standard two-panel file managers mappings
nnoremap <f3> :!less %f<cr>
nnoremap <f4> :edit<cr>
nnoremap <f5> :copy<cr>
nnoremap <f6> :move<cr>
nnoremap <f7> :mkdir<space>
nnoremap <f8> :delete<cr>
" Midnight commander alike mappings
" Open current directory in the other pane
nnoremap <a-i> :sync<cr>
" Open directory under cursor in the other pane
nnoremap <a-o> :sync %c<cr>
" Swap panes (uncomment if you don't need builtin behaviour of Ctrl-U)
" nnoremap <c-u> <c-w>x
" ------------------------------------------------------------------------------
" Panel configuration examples
" ------------------------------------------------------------------------------
" Customize view columns a bit (enable ellipsis for truncated file names)
" set viewcolumns=-{name}..,6{}.
" Show vertical border
" set fillchars=vborder:│
" Filter-out build artifacts and temporary files
" filter! {*.lo,*.o,*.d,*.class,*.pyc,*.pyo,.*~}
" ------------------------------------------------------------------------------
" Various customization examples
" ------------------------------------------------------------------------------
" Use ag (the silver searcher) instead of grep
" set grepprg='ag --line-numbers %i %a %s'
" Add additional place to look for executables
" let $PATH = $HOME.'/bin/fuse:'.$PATH
" Disable particular shortcut
" nnoremap <left> <nop>
" Export IPC name of current instance as environment variable and use it to
" communicate with the instance later.
"
" It can be used in some shell script that gets run from inside vifm, for
" example, like this:
" vifm --server-name "$VIFM_SERVER_NAME" --remote +"cd '$PWD'"
"
" let $VIFM_SERVER_NAME = v:servername
" Activate screen/tmux support
" screen!
" ------------------------------------------------------------------------------
" Icon decorations example
" ------------------------------------------------------------------------------
" https://github.com/cirala/vifm_devicons
+9
View File
@@ -0,0 +1,9 @@
[user]
email = fedor.lyanguzov@ya.ru
name = Fedor Lyanguzov
[commit]
verbose = true
[core]
editor = nvim
[init]
defaultBranch = main
+2
View File
@@ -0,0 +1,2 @@
elixir 1.18.4-otp-28
erlang 28.1