dimti
2 years ago
commit
17ade4a5e4
25 changed files with 1520 additions and 0 deletions
-
3.bash_logout
-
14.bash_profile
-
75.bashrc
-
134.config/alacritty/alacritty.yml
-
200.config/btop/btop.conf
-
3.config/lsd/config.yaml
-
24.config/lsd/themes/solarized.yaml
-
29.config/nix/installed_packages
-
6.config/nvim/init.vim
-
56.config/starship.toml
-
49.config/yadm/bootstrap
-
235.dircolors
-
122.gitconfig
-
1.gitignore
-
71.gitignore_global
-
13.gitmessage
-
25.profile
-
36.shell-aliases
-
11.shell-common
-
22.shell-env
-
26.shell-logout
-
89.tmux.conf
-
0.vim/undodir/.gitkeep
-
275.vimrc
-
1README.md
@ -0,0 +1,3 @@ |
|||
# ~/.bash_logout: executed by bash(1) when login shell exits. |
|||
|
|||
test -r ~/.shell-logout && source ~/.shell-logout |
@ -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 |
@ -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)" |
@ -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 |
@ -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" |
@ -0,0 +1,3 @@ |
|||
color: |
|||
theme: solarized |
|||
indicators: true |
@ -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 |
@ -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 |
@ -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 |
@ -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" |
@ -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 |
@ -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 |
@ -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 |
@ -0,0 +1 @@ |
|||
/.idea |
@ -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 |
@ -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 |
@ -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 |
@ -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 |
@ -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 |
@ -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 |
@ -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 |
@ -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,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 |
@ -0,0 +1 @@ |
|||
Based from https://github.com/DoomHammer/dotfiles.git |
Write
Preview
Loading…
Cancel
Save
Reference in new issue