Browse Source

* initial commit - dotfiles based on DoomHammer

master
dimti 1 year ago
commit
17ade4a5e4
  1. 3
      .bash_logout
  2. 14
      .bash_profile
  3. 75
      .bashrc
  4. 134
      .config/alacritty/alacritty.yml
  5. 200
      .config/btop/btop.conf
  6. 3
      .config/lsd/config.yaml
  7. 24
      .config/lsd/themes/solarized.yaml
  8. 29
      .config/nix/installed_packages
  9. 6
      .config/nvim/init.vim
  10. 56
      .config/starship.toml
  11. 49
      .config/yadm/bootstrap
  12. 235
      .dircolors
  13. 122
      .gitconfig
  14. 1
      .gitignore
  15. 71
      .gitignore_global
  16. 13
      .gitmessage
  17. 25
      .profile
  18. 36
      .shell-aliases
  19. 11
      .shell-common
  20. 22
      .shell-env
  21. 26
      .shell-logout
  22. 89
      .tmux.conf
  23. 0
      .vim/undodir/.gitkeep
  24. 275
      .vimrc
  25. 1
      README.md

3
.bash_logout

@ -0,0 +1,3 @@
# ~/.bash_logout: executed by bash(1) when login shell exits.
test -r ~/.shell-logout && source ~/.shell-logout

14
.bash_profile

@ -0,0 +1,14 @@
# Via https://tanguy.ortolo.eu/blog/article25/shrc
#
# At startup, depending on the case:
# - run as a login shell (or with the option --login), it executes profile (or
# bash_profile instead if it exists (only user-specific version));
# - run as an interactive, non-login shell, it executes bashrc (the system-wide
# version is called bash.bashrc).
#
# At exit, it executes ~/.bash_logout (the system-wide version is called
# bash.bash_logout).
# Note the funny (read: insane) non-login condition for executing bashrc: it is
# often worked around by having the profile execute bashrc anyway.
[[ -f ~/.profile ]] && . ~/.profile

75
.bashrc

@ -0,0 +1,75 @@
# Via https://tanguy.ortolo.eu/blog/article25/shrc
#
# At startup, depending on the case:
# - run as a login shell (or with the option --login), it executes profile (or
# bash_profile instead if it exists (only user-specific version));
# - run as an interactive, non-login shell, it executes bashrc (the system-wide
# version is called bash.bashrc).
#
# At exit, it executes ~/.bash_logout (the system-wide version is called
# bash.bash_logout).
# Note the funny (read: insane) non-login condition for executing bashrc: it is
# often worked around by having the profile execute bashrc anyway.
# If not running interactively, don't do anything
[ -z "$PS1" ] && return
# Source global definitions
test -r /etc/bashrc && . /etc/bashrc
test -r ~/.shell-env && . ~/.shell-env
test -r ~/.shell-aliases && . ~/.shell-aliases
test -r ~/.shell-common && . ~/.shell-common
# don't put duplicate lines in the history. See bash(1) for more options
# ... or force ignoredups and ignorespace
HISTCONTROL=ignoreboth
export HISTIGNORE="&:ls:[bf]g:pwd:exit:cd .."
# append to the history file, don't overwrite it
shopt -s histappend
PROMPT_COMMAND="history -a;$PROMPT_COMMAND"
# Store multiline commands as one line.
shopt -s cmdhist
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=10000
HISTFILESIZE=20000
# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize
# Spellcheck directories
shopt -s dirspell
# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
test -f /usr/share/bash-completion/bash_completion && . /usr/share/bash-completion/bash_completion
test -f /etc/bash_completion && . /etc/bash_completion
test -f $BREW_PREFIX/etc/bash_completion && . $BREW_PREFIX/etc/bash_completion
test -r ~/.bashrc.local && . ~/.bashrc.local
if command -v fzf-share >/dev/null; then
source "$(fzf-share)/key-bindings.bash"
source "$(fzf-share)/completion.bash"
fi
eval "$(direnv hook bash)"
function right_prompt(){
RIGHT_PROMPT="$(starship prompt --right)"
RIGHT_PROMPT_RENDERED="${RIGHT_PROMPT@P}"
# For some reason this one is less accurate, while the other method below
# gives better precision, but also throws errors. Curious!
#RIGHT_PROMPT_RENDERED_stripped=$(sed "s,\x1B\[[0-9;]*[a-zA-Z],,g" <<<"$RIGHT_PROMPT_RENDERED")
RIGHT_PROMPT_RENDERED_stripped="$(sed -r 's:\\\[([^\\]|\\[^]])*\\\]::g' <<<$RIGHT_PROMPT_RENDERED)"
RIGHT_PROMPT_RENDERED_stripped="$(eval echo -e $RIGHT_PROMPT_RENDERED_stripped 2>/dev/null)"
printf "\033[50D\033[$((${COLUMNS:-$(tput cols)}-${#RIGHT_PROMPT_RENDERED_stripped}))C$RIGHT_PROMPT_RENDERED\n"
}
starship_precmd_user_func="right_prompt"
eval "$(starship init bash)"

134
.config/alacritty/alacritty.yml

@ -0,0 +1,134 @@
font:
normal:
family: Iosevka Nerd Font Mono
style: Regular
bold:
family: Iosevka Nerd Font Mono
style: Bold
italic:
family: Iosevka Nerd Font Mono
style: Italic
size: 14
use_thin_strokes: true
selection:
save_to_clipboard: true
key_bindings:
- { key: V, mods: Control|Shift, action: Paste }
# Support for Meta(Alt/Option)+key {{
# from: https://github.com/alacritty/alacritty/issues/62
- { key: A, mods: Alt, chars: "\x1ba" }
- { key: B, mods: Alt, chars: "\x1bb" }
- { key: C, mods: Alt, chars: "\x1bc" }
- { key: D, mods: Alt, chars: "\x1bd" }
- { key: E, mods: Alt, chars: "\x1be" }
- { key: F, mods: Alt, chars: "\x1bf" }
- { key: G, mods: Alt, chars: "\x1bg" }
- { key: H, mods: Alt, chars: "\x1bh" }
- { key: I, mods: Alt, chars: "\x1bi" }
- { key: J, mods: Alt, chars: "\x1bj" }
- { key: K, mods: Alt, chars: "\x1bk" }
- { key: L, mods: Alt, chars: "\x1bl" }
- { key: M, mods: Alt, chars: "\x1bm" }
- { key: N, mods: Alt, chars: "\x1bn" }
- { key: O, mods: Alt, chars: "\x1bo" }
- { key: P, mods: Alt, chars: "\x1bp" }
- { key: Q, mods: Alt, chars: "\x1bq" }
- { key: R, mods: Alt, chars: "\x1br" }
- { key: S, mods: Alt, chars: "\x1bs" }
- { key: T, mods: Alt, chars: "\x1bt" }
- { key: U, mods: Alt, chars: "\x1bu" }
- { key: V, mods: Alt, chars: "\x1bv" }
- { key: W, mods: Alt, chars: "\x1bw" }
- { key: X, mods: Alt, chars: "\x1bx" }
- { key: Y, mods: Alt, chars: "\x1by" }
- { key: Z, mods: Alt, chars: "\x1bz" }
- { key: A, mods: Alt|Shift, chars: "\x1bA" }
- { key: B, mods: Alt|Shift, chars: "\x1bB" }
- { key: C, mods: Alt|Shift, chars: "\x1bC" }
- { key: D, mods: Alt|Shift, chars: "\x1bD" }
- { key: E, mods: Alt|Shift, chars: "\x1bE" }
- { key: F, mods: Alt|Shift, chars: "\x1bF" }
- { key: G, mods: Alt|Shift, chars: "\x1bG" }
- { key: H, mods: Alt|Shift, chars: "\x1bH" }
- { key: I, mods: Alt|Shift, chars: "\x1bI" }
- { key: J, mods: Alt|Shift, chars: "\x1bJ" }
- { key: K, mods: Alt|Shift, chars: "\x1bK" }
- { key: L, mods: Alt|Shift, chars: "\x1bL" }
- { key: M, mods: Alt|Shift, chars: "\x1bM" }
- { key: N, mods: Alt|Shift, chars: "\x1bN" }
- { key: O, mods: Alt|Shift, chars: "\x1bO" }
- { key: P, mods: Alt|Shift, chars: "\x1bP" }
- { key: Q, mods: Alt|Shift, chars: "\x1bQ" }
- { key: R, mods: Alt|Shift, chars: "\x1bR" }
- { key: S, mods: Alt|Shift, chars: "\x1bS" }
- { key: T, mods: Alt|Shift, chars: "\x1bT" }
- { key: U, mods: Alt|Shift, chars: "\x1bU" }
- { key: V, mods: Alt|Shift, chars: "\x1bV" }
- { key: W, mods: Alt|Shift, chars: "\x1bW" }
- { key: X, mods: Alt|Shift, chars: "\x1bX" }
- { key: Y, mods: Alt|Shift, chars: "\x1bY" }
- { key: Z, mods: Alt|Shift, chars: "\x1bZ" }
- { key: Key1, mods: Alt, chars: "\x1b1" }
- { key: Key2, mods: Alt, chars: "\x1b2" }
- { key: Key3, mods: Alt, chars: "\x1b3" }
- { key: Key4, mods: Alt, chars: "\x1b4" }
- { key: Key5, mods: Alt, chars: "\x1b5" }
- { key: Key6, mods: Alt, chars: "\x1b6" }
- { key: Key7, mods: Alt, chars: "\x1b7" }
- { key: Key8, mods: Alt, chars: "\x1b8" }
- { key: Key9, mods: Alt, chars: "\x1b9" }
- { key: Key0, mods: Alt, chars: "\x1b0" }
- { key: Space, mods: Control, chars: "\x00" }
- { key: Grave, mods: Alt, chars: "\x1b`" }
- { key: Grave, mods: Alt|Shift, chars: "\x1b~" }
- { key: Period, mods: Alt, chars: "\x1b." }
- { key: Key8, mods: Alt|Shift, chars: "\x1b*" }
- { key: Key3, mods: Alt|Shift, chars: "\x1b#" }
- { key: Period, mods: Alt|Shift, chars: "\x1b>" }
- { key: Comma, mods: Alt|Shift, chars: "\x1b<" }
- { key: Minus, mods: Alt|Shift, chars: "\x1b_" }
- { key: Key5, mods: Alt|Shift, chars: "\x1b%" }
- { key: Key6, mods: Alt|Shift, chars: "\x1b^" }
- { key: Backslash, mods: Alt, chars: "\x1b\\" }
- { key: Backslash, mods: Alt|Shift, chars: "\x1b|" }
# Support for Meta(Alt/Option)+key {{
# from: https://github.com/alacritty/alacritty/issues/62
# Base16 Solarized Light - alacritty color config
# Ethan Schoonover (modified by aramisgithub)
colors:
# Default colors
primary:
background: '0xfdf6e3'
foreground: '0x586e75'
# Colors the cursor will use if `custom_cursor_colors` is true
cursor:
text: '0xfdf6e3'
cursor: '0x586e75'
# Normal colors
normal:
black: '0xfdf6e3'
red: '0xdc322f'
green: '0x859900'
yellow: '0xb58900'
blue: '0x268bd2'
magenta: '0x6c71c4'
cyan: '0x2aa198'
white: '0x586e75'
# Bright colors
bright:
black: '0x839496'
red: '0xcb4b16'
green: '0xeee8d5'
yellow: '0x93a1a1'
blue: '0x657b83'
magenta: '0x073642'
cyan: '0xd33682'
white: '0x002b36'
draw_bold_text_with_bright_colors: false

200
.config/btop/btop.conf

@ -0,0 +1,200 @@
#? Config file for btop v. 1.2.5
#* Name of a btop++/bpytop/bashtop formatted ".theme" file, "Default" and "TTY" for builtin themes.
#* Themes should be placed in "../share/btop/themes" relative to binary or "$HOME/.config/btop/themes"
color_theme = "solarized_dark"
#* If the theme set background should be shown, set to False if you want terminal background transparency.
theme_background = True
#* Sets if 24-bit truecolor should be used, will convert 24-bit colors to 256 color (6x6x6 color cube) if false.
truecolor = True
#* Set to true to force tty mode regardless if a real tty has been detected or not.
#* Will force 16-color mode and TTY theme, set all graph symbols to "tty" and swap out other non tty friendly symbols.
force_tty = False
#* Define presets for the layout of the boxes. Preset 0 is always all boxes shown with default settings. Max 9 presets.
#* Format: "box_name:P:G,box_name:P:G" P=(0 or 1) for alternate positions, G=graph symbol to use for box.
#* Use withespace " " as separator between different presets.
#* Example: "cpu:0:default,mem:0:tty,proc:1:default cpu:0:braille,proc:0:tty"
presets = "cpu:1:default,proc:0:default cpu:0:default,mem:0:default,net:0:default cpu:0:block,net:0:tty"
#* Set to True to enable "h,j,k,l,g,G" keys for directional control in lists.
#* Conflicting keys for h:"help" and k:"kill" is accessible while holding shift.
vim_keys = False
#* Rounded corners on boxes, is ignored if TTY mode is ON.
rounded_corners = True
#* Default symbols to use for graph creation, "braille", "block" or "tty".
#* "braille" offers the highest resolution but might not be included in all fonts.
#* "block" has half the resolution of braille but uses more common characters.
#* "tty" uses only 3 different symbols but will work with most fonts and should work in a real TTY.
#* Note that "tty" only has half the horizontal resolution of the other two, so will show a shorter historical view.
graph_symbol = "braille"
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
graph_symbol_cpu = "default"
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
graph_symbol_mem = "default"
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
graph_symbol_net = "default"
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
graph_symbol_proc = "default"
#* Manually set which boxes to show. Available values are "cpu mem net proc", separate values with whitespace.
shown_boxes = "cpu mem net proc"
#* Update time in milliseconds, recommended 2000 ms or above for better sample times for graphs.
update_ms = 2000
#* Processes sorting, "pid" "program" "arguments" "threads" "user" "memory" "cpu lazy" "cpu direct",
#* "cpu lazy" sorts top process over time (easier to follow), "cpu direct" updates top process directly.
proc_sorting = "memory"
#* Reverse sorting order, True or False.
proc_reversed = False
#* Show processes as a tree.
proc_tree = False
#* Use the cpu graph colors in the process list.
proc_colors = True
#* Use a darkening gradient in the process list.
proc_gradient = True
#* If process cpu usage should be of the core it's running on or usage of the total available cpu power.
proc_per_core = True
#* Show process memory as bytes instead of percent.
proc_mem_bytes = True
#* Use /proc/[pid]/smaps for memory information in the process info box (very slow but more accurate)
proc_info_smaps = False
#* Show proc box on left side of screen instead of right.
proc_left = False
#* Sets the CPU stat shown in upper half of the CPU graph, "total" is always available.
#* Select from a list of detected attributes from the options menu.
cpu_graph_upper = "total"
#* Sets the CPU stat shown in lower half of the CPU graph, "total" is always available.
#* Select from a list of detected attributes from the options menu.
cpu_graph_lower = "total"
#* Toggles if the lower CPU graph should be inverted.
cpu_invert_lower = True
#* Set to True to completely disable the lower CPU graph.
cpu_single_graph = False
#* Show cpu box at bottom of screen instead of top.
cpu_bottom = False
#* Shows the system uptime in the CPU box.
show_uptime = True
#* Show cpu temperature.
check_temp = True
#* Which sensor to use for cpu temperature, use options menu to select from list of available sensors.
cpu_sensor = "Auto"
#* Show temperatures for cpu cores also if check_temp is True and sensors has been found.
show_coretemp = True
#* Set a custom mapping between core and coretemp, can be needed on certain cpus to get correct temperature for correct core.
#* Use lm-sensors or similar to see which cores are reporting temperatures on your machine.
#* Format "x:y" x=core with wrong temp, y=core with correct temp, use space as separator between multiple entries.
#* Example: "4:0 5:1 6:3"
cpu_core_map = ""
#* Which temperature scale to use, available values: "celsius", "fahrenheit", "kelvin" and "rankine".
temp_scale = "celsius"
#* Use base 10 for bits/bytes sizes, KB = 1000 instead of KiB = 1024.
base_10_sizes = False
#* Show CPU frequency.
show_cpu_freq = True
#* Draw a clock at top of screen, formatting according to strftime, empty string to disable.
#* Special formatting: /host = hostname | /user = username | /uptime = system uptime
clock_format = "%X"
#* Update main ui in background when menus are showing, set this to false if the menus is flickering too much for comfort.
background_update = True
#* Custom cpu model name, empty string to disable.
custom_cpu_name = ""
#* Optional filter for shown disks, should be full path of a mountpoint, separate multiple values with whitespace " ".
#* Begin line with "exclude=" to change to exclude filter, otherwise defaults to "most include" filter. Example: disks_filter="exclude=/boot /home/user".
disks_filter = ""
#* Show graphs instead of meters for memory values.
mem_graphs = True
#* Show mem box below net box instead of above.
mem_below_net = False
#* If swap memory should be shown in memory box.
show_swap = True
#* Show swap as a disk, ignores show_swap value above, inserts itself after first disk.
swap_disk = True
#* If mem box should be split to also show disks info.
show_disks = True
#* Filter out non physical disks. Set this to False to include network disks, RAM disks and similar.
only_physical = True
#* Read disks list from /etc/fstab. This also disables only_physical.
use_fstab = True
#* Set to true to show available disk space for privileged users.
disk_free_priv = False
#* Toggles if io activity % (disk busy time) should be shown in regular disk usage view.
show_io_stat = True
#* Toggles io mode for disks, showing big graphs for disk read/write speeds.
io_mode = False
#* Set to True to show combined read/write io graphs in io mode.
io_graph_combined = False
#* Set the top speed for the io graphs in MiB/s (100 by default), use format "mountpoint:speed" separate disks with whitespace " ".
#* Example: "/mnt/media:100 /:20 /boot:1".
io_graph_speeds = ""
#* Set fixed values for network graphs in Mebibits. Is only used if net_auto is also set to False.
net_download = 100
net_upload = 100
#* Use network graphs auto rescaling mode, ignores any values set above and rescales down to 10 Kibibytes at the lowest.
net_auto = True
#* Sync the auto scaling for download and upload to whichever currently has the highest scale.
net_sync = False
#* Starts with the Network Interface specified here.
net_iface = ""
#* Show battery stats in top right if battery is present.
show_battery = True
#* Which battery to use if multiple are present. "Auto" for auto detection.
selected_battery = "Auto"
#* Set loglevel for "~/.config/btop/btop.log" levels are: "ERROR" "WARNING" "INFO" "DEBUG".
#* The level set includes all lower levels, i.e. "DEBUG" will show all logging info.
log_level = "WARNING"

3
.config/lsd/config.yaml

@ -0,0 +1,3 @@
color:
theme: solarized
indicators: true

24
.config/lsd/themes/solarized.yaml

@ -0,0 +1,24 @@
user: magenta
group: dark_magenta
permission:
read: dark_green
write: dark_yellow
exec: dark_red
exec-sticky: 5
no-access: 245
date:
hour-old: 40
day-old: 42
older: 36
size:
none: blue
small: dark_blue
medium: red
large: dark_red
inode:
valid: 13
invalid: 245
links:
valid: 13
invalid: 245
tree-edge: 245

29
.config/nix/installed_packages

@ -0,0 +1,29 @@
nixpkgs.btop
nixpkgs.cacert
nixpkgs.cmake
nixpkgs.coreutils
nixpkgs.croc
nixpkgs.curl
nixpkgs.direnv
nixpkgs.fd
nixpkgs.fzf
nixpkgs.git
nixpkgs.git-lfs
nixpkgs.gnumake
nixpkgs.go
nixpkgs.jq
nixpkgs.lesspipe
nixpkgs.lsd
nixpkgs.neovim
nixpkgs.nix
nixpkgs.nix-zsh-completions
nixpkgs.ripgrep
nixpkgs.silver-searcher
nixpkgs.starship
nixpkgs.tmate
nixpkgs.tmux
nixpkgs.unzip
nixpkgs.wget
nixpkgs.yadm
nixpkgs.zplug
nixpkgs.zsh

6
.config/nvim/init.vim

@ -0,0 +1,6 @@
" Configure python provider
let $PYTHONPATH = $HOME . '/.nix-profile/lib/python3.8/site-packages:' . $PYTHONPATH
let g:python3_host_prog = '~/.nix-profile/bin/python'
let g:loaded_python_provider = 0
source ~/.vimrc

56
.config/starship.toml

@ -0,0 +1,56 @@
format = """
$jobs\
$character\
"""
right_format = """
$cmd_duration\
$directory\
$git_branch\
$git_status\
$hostname\
"""
add_newline = false
[jobs]
format = "[\\[$number\\]]($style) "
style = "242"
number_threshold = 1
symbol_threshold = 2
[character]
success_symbol = "[%](blue)"
error_symbol = "[%](red)"
vicmd_symbol = "[%](blue)"
[cmd_duration]
format = "[$duration]($style) "
style = "150"
[directory]
style = "blue"
truncate_to_repo = false
truncation_length = 10
truncation_symbol = "…/"
[git_branch]
format = "[$branch]($style)"
style = "242"
[git_status]
format = " [$modified]($style)"
style = "242"
conflicted = ""
untracked = ""
modified = "+"
staged = ""
renamed = ""
deleted = ""
stashed = ""
[hostname]
format = "[$hostname]($style)"
ssh_only = true
style = "150"

49
.config/yadm/bootstrap

@ -0,0 +1,49 @@
#!/bin/sh
# vim: set ft=sh sw=2 et :
install_nix() {
# This one courtesy of:
# https://github.com/shadowrylander/shadowrylander/blob/35bb51822c46578d0a5da5810263fa85d464043c/.config/yadm/bootstrap#L56
install_nix_bin() {
curl -L https://nixos.org/nix/install | sh
if [ -e '/nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh' ]; then
. '/nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh'
fi
}
command -v nix >/dev/null 2>&1 || install_nix_bin
if [ -f "$HOME/.config/nix/installed_packages" ]; then
# This list created with `nix-env -qaPs|grep '^I'|awk '{print $2}' > ~/.config/nix/installed_packages`
cat "$HOME/.config/nix/installed_packages" | xargs nix-env -iA
fi
if [ -f "$HOME/.config/nix/installed_packages.local" ]; then
# Additional packages that might be needed here or there
cat "$HOME/.config/nix/installed_packages.local" | xargs nix-env -i
fi
}
#configure_zsh() {
# # FIXME: We deserve better
# source $HOME/.zshrc
#}
configure_vim() {
# Install vim-plug for Vim
curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
vim +'PlugInstall --sync' +qa
# Install vim-plug for Neovim
sh -c 'curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'
nvim +'PlugInstall --sync' +qa
}
configure_tmux() {
~/.tmux/plugins/tpm/bin/install_plugins
}
install_nix
#configure_zsh
configure_vim
configure_tmux

235
.dircolors

@ -0,0 +1,235 @@
# Configuration file for dircolors, a utility to help you set the
# LS_COLORS environment variable used by GNU ls with the --color option.
# Copyright (C) 1996, 1999-2010 Free Software Foundation, Inc.
# Copying and distribution of this file, with or without modification,
# are permitted provided the copyright notice and this notice are preserved.
# The keywords COLOR, OPTIONS, and EIGHTBIT (honored by the
# slackware version of dircolors) are recognized but ignored.
# Below, there should be one TERM entry for each termtype that is colorizable
TERM Eterm
TERM ansi
TERM color-xterm
TERM con132x25
TERM con132x30
TERM con132x43
TERM con132x60
TERM con80x25
TERM con80x28
TERM con80x30
TERM con80x43
TERM con80x50
TERM con80x60
TERM cons25
TERM console
TERM cygwin
TERM dtterm
TERM eterm-color
TERM gnome
TERM gnome-256color
TERM jfbterm
TERM konsole
TERM kterm
TERM linux
TERM linux-c
TERM mach-color
TERM mlterm
TERM putty
TERM rxvt
TERM rxvt-256color
TERM rxvt-cygwin
TERM rxvt-cygwin-native
TERM rxvt-unicode
TERM rxvt-unicode256
TERM rxvt-unicode-256color
TERM screen
TERM screen-256color
TERM screen-256color-bce
TERM screen-bce
TERM screen-w
TERM screen.linux
TERM vt100
TERM xterm
TERM xterm-16color
TERM xterm-256color
TERM xterm-88color
TERM xterm-color
TERM xterm-debian
# Below are the color init strings for the basic file types. A color init
# string consists of one or more of the following numeric codes:
# Attribute codes:
# 00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed
# Text color codes:
# 30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white
# Background color codes:
# 40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white
## dircolors 256 COLOR SUPPORT (see here: http://www.mail-archive.com/bug-coreutils@gnu.org/msg11030.html)
# Text 256 color coding:
# 38;5;COLOR_NUMBER
# Background 256 color coding:
# 48;5;COLOR_NUMBER
NORMAL 00;38;5;244 # no color code at all
#FILE 00 # regular file: use no color at all
RESET 0 # reset to "normal" color
DIR 00;38;5;33 # directory 01;34
LINK 01;38;5;33 # symbolic link. (If you set this to 'target' instead of a
# numerical value, the color is as for the file pointed to.)
MULTIHARDLINK 00 # regular file with more than one link
FIFO 48;5;230;38;5;136;01 # pipe
SOCK 48;5;230;38;5;136;01 # socket
DOOR 48;5;230;38;5;136;01 # door
BLK 48;5;230;38;5;244;01 # block device driver
CHR 48;5;230;38;5;244;01 # character device driver
ORPHAN 48;5;235;38;5;160 # symlink to nonexistent file, or non-stat'able file
SETUID 48;5;160;38;5;230 # file that is setuid (u+s)
SETGID 48;5;136;38;5;230 # file that is setgid (g+s)
CAPABILITY 30;41 # file with capability
STICKY_OTHER_WRITABLE 48;5;64;38;5;230 # dir that is sticky and other-writable (+t,o+w)
OTHER_WRITABLE 48;5;235;38;5;33 # dir that is other-writable (o+w) and not sticky
STICKY 48;5;33;38;5;230 # dir with the sticky bit set (+t) and not other-writable
# This is for files with execute permission:
EXEC 01;38;5;64
# List any file extensions like '.gz' or '.tar' that you would like ls
# to colorize below. Put the extension, a space, and the color init string.
# (and any comments you want to add after a '#')
# If you use DOS-style suffixes, you may want to uncomment the following:
#.cmd 01;32 # executables (bright green)
#.exe 01;32
#.com 01;32
#.btm 01;32
#.bat 01;32
# Or if you want to colorize scripts even if they do not have the
# executable bit actually set.
#.sh 01;32
#.csh 01;32
# archives or compressed (violet + bold for compression)
.tar 00;38;5;61
.tgz 01;38;5;61
.arj 01;38;5;61
.taz 01;38;5;61
.lzh 01;38;5;61
.lzma 01;38;5;61
.tlz 01;38;5;61
.txz 01;38;5;61
.zip 01;38;5;61
.z 01;38;5;61
.Z 01;38;5;61
.dz 01;38;5;61
.gz 01;38;5;61
.lz 01;38;5;61
.xz 01;38;5;61
.bz2 01;38;5;61
.bz 01;38;5;61
.tbz 01;38;5;61
.tbz2 01;38;5;61
.tz 01;38;5;61
.deb 01;38;5;61
.rpm 01;38;5;61
.jar 01;38;5;61
.rar 01;38;5;61
.ace 01;38;5;61
.zoo 01;38;5;61
.cpio 01;38;5;61
.7z 01;38;5;61
.rz 01;38;5;61
.apk 01;38;5;61
# image formats (yellow)
.jpg 00;38;5;136
.JPG 00;38;5;136 #stupid but needed
.jpeg 00;38;5;136
.gif 00;38;5;136
.bmp 00;38;5;136
.pbm 00;38;5;136
.pgm 00;38;5;136
.ppm 00;38;5;136
.tga 00;38;5;136
.xbm 00;38;5;136
.xpm 00;38;5;136
.tif 00;38;5;136
.tiff 00;38;5;136
.png 00;38;5;136
.svg 00;38;5;136
.svgz 00;38;5;136
.mng 00;38;5;136
.pcx 00;38;5;136
.dl 00;38;5;136
.xcf 00;38;5;136
.xwd 00;38;5;136
.yuv 00;38;5;136
.cgm 00;38;5;136
.emf 00;38;5;136
.eps 00;38;5;136
.CR2 00;38;5;136
# files of interest (base1 + bold)
.pdf 01;38;5;245
.tex 01;38;5;245
.rdf 01;38;5;245
.owl 01;38;5;245
.n3 01;38;5;245
.tt 01;38;5;245
.nt 01;38;5;245
.torrent 01;38;5;245
# "unimportant" files as logs and backups (base01)
.log 00;38;5;240
.bak 00;38;5;240
.aux 00;38;5;240
.bbl 00;38;5;240
.blg 00;38;5;240
*~ 00;38;5;240
*# 00;38;5;240
.part 00;38;5;240
.incomplete 00;38;5;240
.swp 00;38;5;240
# audio formats (orange)
.aac 00;38;5;166
.au 00;38;5;166
.flac 00;38;5;166
.mid 00;38;5;166
.midi 00;38;5;166
.mka 00;38;5;166
.mp3 00;38;5;166
.mpc 00;38;5;166
.ogg 00;38;5;166
.ra 00;38;5;166
.wav 00;38;5;166
.m4a 00;38;5;166
# http://wiki.xiph.org/index.php/MIME_Types_and_File_Extensions
.axa 00;38;5;166
.oga 00;38;5;166
.spx 00;38;5;166
.xspf 00;38;5;166
# video formats (as audio + bold)
.mov 01;38;5;166
.mpg 01;38;5;166
.mpeg 01;38;5;166
.m2v 01;38;5;166
.mkv 01;38;5;166
.ogm 01;38;5;166
.mp4 01;38;5;166
.m4v 01;38;5;166
.mp4v 01;38;5;166
.vob 01;38;5;166
.qt 01;38;5;166
.nuv 01;38;5;166
.wmv 01;38;5;166
.asf 01;38;5;166
.rm 01;38;5;166
.rmvb 01;38;5;166
.flc 01;38;5;166
.avi 01;38;5;166
.fli 01;38;5;166
.flv 01;38;5;166
.gl 01;38;5;166
.m2ts 01;38;5;166
# http://wiki.xiph.org/index.php/MIME_Types_and_File_Extensions
.axv 01;38;5;166
.anx 01;38;5;166
.ogv 01;38;5;166
.ogx 01;38;5;166

122
.gitconfig

@ -0,0 +1,122 @@
# vim: set sw=2 sts=2 ts=2 noexpandtab :
[color]
ui = auto
branch = auto
diff = auto
grep = auto
interactive = auto
status = auto
[user]
email = info@wpstudio.ru
name = WP Studio
[core]
autocrlf = false
excludesfile = ~/.gitignore_global
whitespace = blank-at-eol,blank-at-eof,space-before-tab
[push]
default = simple
[rerere]
enabled = true
autoupdate = true
[rebase]
# Automatically stash before a rebase and unstash afterwards.
autoStash = true
[commit]
# Show diff when preparing commit message
verbose = true
template = ~/.gitmessage
[alias]
a = add
s = status
st = status
ci = commit
b = branch
co = checkout
re = remote
d = diff
dc = diff --cached
lol = log --graph --decorate --pretty=oneline --abbrev-commit
lola = log --graph --decorate --pretty=oneline --abbrev-commit --all
ls = ls-files
lg = log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit
lgi = log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%ci) %C(bold blue)<%an>%Creset' --abbrev-commit
# Pull Upstream
pu = !"git fetch origin -v; git fetch upstream -v; git merge upstream/master"
# Commit Amend Reuse Message HEAD
carmh = commit --amend --reuse-message=HEAD
# Push Current
pc = !"f() { remote=\"${1:-origin}\"; git push -u \"$remote\" $(git rev-parse --abbrev-ref HEAD); }; f"
# Push Current Force
pcf = !"f() { echo git pc \"$@\" -f; }; f"
# Mainly for YADM
untracked = !"f() { git status --porcelain=v1 -zunormal | xargs -0n1 printf \"%s\\n\" | grep -E '^\\?\\? \\.' | cut -c4-; }; f"
# Current branch
current = rev-parse --abbrev-ref HEAD
cof = !git for-each-ref --format='%(refname:short)' refs/heads | fzf | xargs git checkout
[merge]
tool = vimdiff
conflictstyle = diff3
[mergetool]
prompt = false
keepBackup = false
[mergetool "vimdiff"]
cmd = nvim -d $BASE $LOCAL $REMOTE $MERGED -c '$wincmd w' -c 'wincmd J'
###
### Git-up specific
### https://github.com/aanand/git-up
###
[git-up "rebase"]
arguments = --preserve-merges
###
### Github specific
###
[github]
user = dimti
# read from given uri
# push to writable one
# http://bit.ly/g9c9Y2
#
[url "http://github.com/"]
insteadOf = "gh:"
[url "git@github.com:"]
pushInsteadOf = "https://github.com/"
pushInsteadOf = "http://github.com/"
pushInsteadOf = "gh:"
[credential]
helper = "cache --timeout 86400"
[pack]
threads = 2
###
### Include local overrides
###
[include]
path = .gitconfig.local
[pull]
rebase = true
[lfs]
fetchexclude = *
[filter "lfs"]
clean = git-lfs clean -- %f
smudge = git-lfs smudge -- %f
process = git-lfs filter-process
required = true

1
.gitignore

@ -0,0 +1 @@
/.idea

71
.gitignore_global

@ -0,0 +1,71 @@
.~lock.*#
# Mac stuff
.DS_Store
# vim-session
Session.vim
# Ctags
tags
TAGS
tags
.tags
# Backup
*.bak
*.tmp
*~
.*.sw*
# Python
*.pyc
# Archives
*.7z
*.jar
*.rar
*.zip
*.tgz
*.gz
*.bzip
*.xz
*.lzma
*.iso
*.tar
*.dmg
*.xpi
*.gem
*.egg
*.deb
*.rpm
# LaTeX
*.aux
*.bbl
*.blg
*.dvi
*.fdb_latexmk
*.glg
*.glo
*.gls
*.idx
*.ilg
*.ind
*.ist
*.lof
*.log
*.lot
*.nav
*.nlo
*.out
*.pdfsync
*.ps
*.snm
*.spl
*.synctex.gz
*.toc
*.vrb
*.maf
*.mtc
*.mtc0

13
.gitmessage

@ -0,0 +1,13 @@
# vi:ft=gitcommit:tw=72:sw=2:ts=2:expandtab:spell
#
# 50-character subject line
#
# If applied, this commit will...
# 72-character wrapped longer description.
#
# Why is this change needed?
# How does it address the issue?
# Provide links to any relevant tickets, articles or other resources

25
.profile

@ -0,0 +1,25 @@
# ~/.profile: executed by the command interpreter for login shells.
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists.
# see /usr/share/doc/bash/examples/startup-files for examples.
# the files are located in the bash-doc package.
# the default umask is set in /etc/profile; for setting the umask
# for ssh logins, install and configure the libpam-umask package.
#umask 022
# if running bash
if [ -n "$BASH_VERSION" ]; then
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
export BREW_PREFIX=/home/linuxbrew/.linuxbrew
export CHROME_REMOTE_DESKTOP_DEFAULT_DESKTOP_SIZES=1440x900

36
.shell-aliases

@ -0,0 +1,36 @@
# If not running interactively, don't do anything
[ -z "$PS1" ] && return
# Source global definitions
test -r /etc/bashrc && . /etc/bashrc
test -r ~/.bash_aliases && . ~/.bash_aliases
# don't put duplicate lines in the history. See bash(1) for more options
# ... or force ignoredups and ignorespace
HISTCONTROL=ignoreboth
export HISTIGNORE="&:ls:[bf]g:pwd:exit:cd .."
# append to the history file, don't overwrite it
shopt -s histappend
PROMPT_COMMAND="history -a;$PROMPT_COMMAND"
# Store multiline commands as one line.
shopt -s cmdhist
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=10000
HISTFILESIZE=20000
# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize
# Spellcheck directories
shopt -s dirspell
# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
test -f /usr/share/bash-completion/bash_completion && . /usr/share/bash-completion/bash_completion
test -f /etc/bash_completion && . /etc/bash_completion

11
.shell-common

@ -0,0 +1,11 @@
# vim: set ft=sh sw=2 et :
# make less more friendly for non-text input files, see lesspipe(1)
command -v lesspipe.sh >/dev/null 2>&1 && eval "$(SHELL=/bin/sh lesspipe.sh)"
# enable color support of ls and also add handy aliases
if command -v dircolors >/dev/null 2>&1; then
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
fi
test -r ~/.shell-common.local && source ~/.shell-common.local

22
.shell-env

@ -0,0 +1,22 @@
# vim: set ft=sh sw=2 et :
##
## Editors
##
export EDITOR=vi
export GIT_EDITOR="$EDITOR"
export USE_EDITOR="$EDITOR"
export VISUAL=$EDITOR
export PAGER=less
##
## Pager
##
export PAGER=less
export LESS='-iFMRSX -x4'
if [ -f "$HOME/.shell-env.local" ]; then
. "$HOME/.shell-env.local"
fi
umask 022

26
.shell-logout

@ -0,0 +1,26 @@
# vim: set ft=sh sw=2 et :
# when leaving the console clear the screen to increase privacy
if [ "$SHLVL" = 1 ]; then
[ -x /usr/bin/clear_console ] && /usr/bin/clear_console -q
fi
# When leaving the console clear the screen to increase privacy. Also clear the
# scroll-back buffer by switching to tty63 and back.
case "$(tty)" in
/dev/tty[0-9])
t=$(v=`tty` ; echo ${v##*ty})
clear
chvt 63; chvt "$t"
;;
/dev/tty[0-9][0-9])
t=$(v=`tty` ; echo ${v##*ty})
clear
chvt 63; chvt "$t"
;;
*)
;;
esac

89
.tmux.conf

@ -0,0 +1,89 @@
## Prefix like in screen
set -g prefix 'C-a'
## Use xterm keys (makes eg. Ctrl+Arrow navigate words)
set-window-option -g xterm-keys on
## List of plugins
# For this to work you need to install https://github.com/tmux-plugins/tpm
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
# Those two allow continuous saving and restoring of tmux sessions
set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @plugin 'tmux-plugins/tmux-continuum'
# Intuitive bindings for splitting panes
set -g @plugin 'tmux-plugins/tmux-pain-control'
# Integrations with system clipboard
set -g @plugin 'tmux-plugins/tmux-yank'
# Easier session management
set -g @plugin 'tmux-plugins/tmux-sessionist'
# Man in a split
set -g @plugin 'knakayama/tmux-man'
# Peek-a-boo
set -g @plugin 'knakayama/tmux-newline-detector'
## Plugin configuration
set -g @continuum-restore 'on'
set -g @continuum-save-interval '5'
set -g @resurrect-capture-pane-contents 'on'
set -g @yank_selection 'primary'
set -g @man-size '40%'
set -g @man-orientation 'h'
set -g @man-shell-interactive 'off'
# True colors (via: https://jdhao.github.io/2018/10/19/tmux_nvim_true_color/ )
set -g default-terminal "screen-256color"
# tell Tmux that outside terminal supports true color
set -ag terminal-overrides ",alacritty:RGB"
## Windows style
set-option -g status-style fg=yellow,bg=default
set-window-option -g pane-active-border-style ''
## A bit more space in right status bar
set -g status-right-length 50
## Rename windows to fit current application
setw -g automatic-rename on
# Use zsh regardless of default settings
if-shell 'test -x /usr/bin/zsh' 'set-option -g default-shell /usr/bin/zsh'
# switch panes using Alt-arrow without prefix
bind -n M-Left select-pane -L
bind -n M-Right select-pane -R
bind -n M-Up select-pane -U
bind -n M-Down select-pane -D
## Mouse On by default
set -g mouse on
# PageUp/PageDown works for scrolling
bind-key -T root PPage if-shell -F "#{alternate_on}" "send-keys PPage" "copy-mode -e; send-keys PPage"
bind-key -T copy-mode-vi PPage send-keys -X page-up
bind-key -T copy-mode-vi NPage send-keys -X page-down
# Same for the mouse scroll button
bind-key -T root WheelUpPane if-shell -F -t = "#{alternate_on}" "send-keys -M" "select-pane -t =; copy-mode -e; send-keys -M"
bind-key -T root WheelDownPane if-shell -F -t = "#{alternate_on}" "send-keys -M" "select-pane -t =; send-keys -M"
bind-key -T copy-mode-vi WheelUpPane send-keys -X halfpage-up
bind-key -T copy-mode-vi WheelDownPane send-keys -X halfpage-down
# Toggle prefix on/off with F12 (for nested remote sessions)
bind -T root F12 \
set prefix None \;\
set key-table off \;\
if -F '#{pane_in_mode}' 'send-keys -X cancel' \;\
refresh-client -S \;\
bind -T off F12 \
set -u prefix \;\
set -u key-table \;\
refresh-client -S
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
if "test ! -d ~/.tmux/plugins/tpm" \
"run 'git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm && ~/.tmux/plugins/tpm/bin/install_plugins'"
run '~/.tmux/plugins/tpm/tpm'
# vim: se ft=tmux :

0
.vim/undodir/.gitkeep

275
.vimrc

@ -0,0 +1,275 @@
" vim: set sw=2 et :
" Configure plug.vim
if has('nvim')
let vimautoloaddir='~/.config/nvim/site/autoload'
else
let vimautoloaddir='~/.vim/autoload'
endif
call plug#begin()
" This is taking care of the plugins
Plug 'junegunn/vim-plug'
" Neovim is sensible by default
if !has('nvim')
Plug 'tpope/vim-sensible'
endif
" Editing eye-candy
Plug 'junegunn/goyo.vim'
Plug 'junegunn/limelight.vim'
" Solarized colorscheme
Plug 'altercation/vim-colors-solarized'
" Tmux .conf
Plug 'tmux-plugins/vim-tmux'
" Tmux Focus Events
Plug 'tmux-plugins/vim-tmux-focus-events'
" Automatically detect indentation
Plug 'tpope/vim-sleuth'
if has('nvim')
" Asynchronous make for neovim
Plug 'neomake/neomake'
" Automated code formatter
Plug 'sbdchd/neoformat'
" Popup terminal
Plug 'kassio/neoterm'
" Nice tree view
Plug 'kyazdani42/nvim-tree.lua'
" Icons for the tree view
Plug 'kyazdani42/nvim-web-devicons'
" A buffer bar
Plug 'noib3/nvim-cokeline'
" Better syntax recognition
Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'}
" Mason is now preferred over LSP Installer
Plug 'williamboman/mason.nvim'
" LSP config
Plug 'neovim/nvim-lspconfig'
Plug 'williamboman/mason-lspconfig.nvim'
" Auto completion
Plug 'hrsh7th/cmp-nvim-lsp'
Plug 'hrsh7th/cmp-nvim-lsp-signature-help'
Plug 'hrsh7th/cmp-buffer'
Plug 'hrsh7th/cmp-path'
Plug 'hrsh7th/cmp-cmdline'
Plug 'hrsh7th/nvim-cmp'
" Snippets
Plug 'hrsh7th/cmp-vsnip'
Plug 'hrsh7th/vim-vsnip'
Plug 'rafamadriz/friendly-snippets'
" Telescope for quick switching
Plug 'nvim-lua/plenary.nvim'
Plug 'nvim-telescope/telescope.nvim'
Plug 'nvim-telescope/telescope-fzf-native.nvim', { 'do': 'make' }
" Copliot here
Plug 'github/copilot.vim'
" Nice colours for our NeoVim
Plug 'ishan9299/nvim-solarized-lua'
Plug 'shaunsingh/solarized.nvim'
" Show indent lines
Plug 'lukas-reineke/indent-blankline.nvim'
" Status line
Plug 'feline-nvim/feline.nvim'
" Dim inactive windows
Plug 'sunjon/shade.nvim'
endif
call plug#end()
if has('nvim')
" Add some colors
set termguicolors
colorscheme solarized-high
" When writing a buffer (no delay), and on normal mode changes (after 750ms).
call neomake#configure#automake('nw', 750)
" Call Neomake when writing a buffer (no delay)
let g:neomake_open_list = 2
" Configure Cokeline
lua << EOF
require('cokeline').setup({
show_if_buffers_are_at_least = 2
})
local map = vim.api.nvim_set_keymap
map('n', '<S-Tab>', '<Plug>(cokeline-focus-prev)', { silent = true })
map('n', '<Tab>', '<Plug>(cokeline-focus-next)', { silent = true })
map('n', '<Leader>h', '<Plug>(cokeline-focus-prev)', { silent = true })
map('n', '<Leader>l', '<Plug>(cokeline-focus-next)', { silent = true })
EOF
" Configure completion and LSP
set completeopt=menu,menuone,noselect
autocmd BufWritePre * lua vim.lsp.buf.formatting_sync(nil, 4000)
lua <<EOF
-- Setup nvim-cmp.
local cmp = require'cmp'
cmp.setup({
snippet = {
expand = function(args)
vim.fn["vsnip#anonymous"](args.body)
end,
},
mapping = cmp.mapping.preset.insert({
['<C-b>'] = cmp.mapping.scroll_docs(-4),
['<C-f>'] = cmp.mapping.scroll_docs(4),
['<C-Space>'] = cmp.mapping.complete(),
['<C-e>'] = cmp.mapping.abort(),
['<CR>'] = cmp.mapping.confirm({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items.
}),
sources = cmp.config.sources({
{ name = 'nvim_lsp' },
{ name = 'nvim_lsp_signature_help' },
{ name = 'vsnip' },
}, {
{ name = 'buffer' },
})
})
require("mason").setup({
automatic_installation = true,
})
require("mason-lspconfig").setup()
EOF
" Configure NvimTree
lua << EOF
require('nvim-tree').setup()
EOF
nmap <leader>n :NvimTreeToggle<CR>
" Configure Telescope
lua << EOF
require('telescope').load_extension('fzf')
EOF
" Find files using Telescope command-line sugar.
nnoremap <leader>ff <cmd>Telescope find_files<cr>
nnoremap <leader>fg <cmd>Telescope live_grep<cr>
nnoremap <leader>fb <cmd>Telescope buffers<cr>
nnoremap <leader>fh <cmd>Telescope help_tags<cr>
" Configure tree-sitter with folding
lua <<EOF
if vim.loop.os_uname().sysname == "Darwin" then
require('nvim-treesitter.install').compilers = { os.getenv("HOME")..'/.local/bin/clang-wrapper' }
end
require('nvim-treesitter.configs').setup({
-- One of "all", or a list of languages
ensure_installed = "all",
ignore_install = { "godot_resource", "teal" },
highlight = {
enable = true
},
indent = {
enable = true
},
})
EOF
set foldmethod=expr
set foldexpr=nvim_treesitter#foldexpr()
" Configure feline
lua <<EOF
require('feline').setup()
EOF
" Configure Shade
lua <<EOF
require('shade').setup({
overlay_opacity = 50,
opacity_step = 1,
keys = {
brightness_up = '<C-Up>',
brightness_down = '<C-Down>',
toggle = '<Leader>s',
}
})
EOF
endif
set background=light
" Keep at least 5 lines anove or below the cursor
set scrolloff=5
" use F2 to switch to paste mode
set pastetoggle=<F2>
" Configure Goyo
nmap <leader>] :Goyo<CR>
function! s:goyo_enter()
if exists('$TMUX')
" Hide the status panel and zoom in the current pane
silent !tmux set status off
" This hackery checks whether the pane is zoomed and toggles the status if
" not
silent !tmux list-panes -F '\#F'|grep -q Z || tmux resize-pane -Z
endif
" All eyes on me
Limelight
" Resize after zoom
if !exists("g:goyo_width")
let g:goyo_width=80
endif
if !exists("g:goyo_height")
let g:goyo_height='85%'
endif
execute "Goyo ".g:goyo_width."x".g:goyo_height
set scrolloff=999
endfunction
function! s:goyo_leave()
if exists('$TMUX')
" Show the status panel and zoom out the current pane
silent !tmux set status on
silent !tmux list-panes -F '\#F'|grep -q Z && tmux resize-pane -Z
endif
Limelight!
set scrolloff=5
endfunction
autocmd! User GoyoEnter nested call <SID>goyo_enter()
autocmd! User GoyoLeave nested call <SID>goyo_leave()
" Configure Limelight
let g:limelight_conceal_ctermfg = 245 " Solarized Base1
let g:limelight_conceal_guifg = '#8a8a8a' " Solarized Base1
"""
""" Visually indicate long columns
""" Taken from https://www.youtube.com/watch?v=aHm36-na4-4
"""
highlight ColorColumn ctermbg=magenta
call matchadd('ColorColumn', '\%81v', 100)
" Prefer two spaces
set shiftwidth=2
set softtabstop=2
" Show me those tabs, BTW
set list
set listchars=trail:~,nbsp:␣,tab:▸\
" Easy moves through wrapped lines
nnoremap j gj
nnoremap k gk
" Work with tmux mouse integration
set mouse=a
if has('nvim')
set undodir=~/.config/nvim/undodir
else
set undodir=~/.vim/undodir
endif
set undofile

1
README.md

@ -0,0 +1 @@
Based from https://github.com/DoomHammer/dotfiles.git
Loading…
Cancel
Save