Compare commits
116 Commits
master
...
9c1360d9d5
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9c1360d9d5 | ||
|
|
c90a8a783a | ||
|
|
ff125f4c7a | ||
|
|
cda37c3415 | ||
|
|
6fd62c340d | ||
|
|
4718c8cccc | ||
|
|
022895d1b2 | ||
|
|
fb8dc68cfd | ||
|
|
a13204c4b5 | ||
|
|
e4400b13a8 | ||
|
|
b26a9904a5 | ||
|
|
ec6b42cb65 | ||
|
|
f76728180a | ||
|
|
950d1d371d | ||
|
|
ea019a8e23 | ||
|
|
d599275642 | ||
|
|
2da801cc05 | ||
|
|
3e43a85d37 | ||
|
|
26a04410cd | ||
|
|
15fbcb9787 | ||
|
|
17235038a3 | ||
|
|
4357ddfab9 | ||
|
|
2ec6bd1753 | ||
|
|
8407f9178f | ||
|
|
01219976e2 | ||
|
|
ec600ea478 | ||
|
|
154a77b825 | ||
|
|
1a34f11484 | ||
|
|
cb58e2601b | ||
|
|
83ca8d206e | ||
|
|
d1594924ac | ||
|
|
58f9f1832f | ||
|
|
4cbb1f271b | ||
|
|
47badc0949 | ||
|
|
65cc09edea | ||
|
|
e2e61cd55c | ||
|
|
696a8e7250 | ||
|
|
700a61ab36 | ||
|
|
12e36af05d | ||
|
|
717a2c29b7 | ||
|
|
d9b50de699 | ||
|
|
175e11ab4a | ||
|
|
5eaab4e1f9 | ||
|
|
777a1eeacb | ||
|
|
619c86e1c8 | ||
|
|
c421b2be7f | ||
|
|
3673889d55 | ||
|
|
35e6c623dd | ||
|
|
ea17ee824b | ||
|
|
fbac99c3c5 | ||
|
|
d27b3c1101 | ||
|
|
e1b640fac5 | ||
|
|
7a0f8b2645 | ||
|
|
b08cff74e3 | ||
|
|
2303f6f7f3 | ||
|
|
bb76a182df | ||
|
|
58c80b2b1d | ||
|
|
ad66c9387f | ||
|
|
eb9b2a0792 | ||
|
|
5ec861b4ef | ||
|
|
1c4d4f26fa | ||
|
|
dc6da63645 | ||
|
|
4e6224981e | ||
|
|
4b9610dfb9 | ||
|
|
796510f1da | ||
|
|
7a58e5f86a | ||
|
|
6ac05e9c1c | ||
|
|
f18711f073 | ||
|
|
29cb35f4f3 | ||
|
|
3af2ef2226 | ||
|
|
7039ee7377 | ||
|
|
586492d910 | ||
|
|
7ccb7c4c22 | ||
|
|
4aa982ced8 | ||
|
|
ceb1fb4474 | ||
|
|
bf0d1ea78e | ||
|
|
13b015c693 | ||
|
|
852f6a527e | ||
|
|
b78a34f74a | ||
|
|
2e783e24b6 | ||
|
|
ebd8e331d6 | ||
|
|
b4d81ec06a | ||
|
|
982dd1d1bf | ||
|
|
0b2f96683c | ||
|
|
de0e1a53e7 | ||
|
|
90f96f875f | ||
|
|
6b6bbf6fcc | ||
|
|
532d539ddc | ||
|
|
0e60423de9 | ||
|
|
629c3b6985 | ||
|
|
19d2d39e15 | ||
|
|
0b3db63868 | ||
|
|
71b9db4cae | ||
|
|
11a589d138 | ||
|
|
b2b8d42d70 | ||
|
|
9352ac948e | ||
|
|
9cd5f4323f | ||
|
|
c80b8a7c71 | ||
|
|
6e1373a67d | ||
|
|
3ccf1b4023 | ||
|
|
916095cebd | ||
|
|
cd1f0ada29 | ||
|
|
ce7869b2f0 | ||
|
|
3bac32cbec | ||
|
|
eaddae6937 | ||
|
|
303b3f4055 | ||
|
|
3c91b8eed4 | ||
|
|
76af77e37f | ||
|
|
db0af81c9f | ||
|
|
83b60feaf7 | ||
|
|
3f271925e8 | ||
|
|
3a457db8e4 | ||
|
|
5f7464780f | ||
|
|
40efd721fd | ||
|
|
d0ae4ef7f8 | ||
|
|
f511ee7e4c |
1
.config/alacritty/.gitignore
vendored
Normal file
1
.config/alacritty/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
schemes.yml
|
||||
58
.config/alacritty/alacritty.toml
Normal file
58
.config/alacritty/alacritty.toml
Normal file
@@ -0,0 +1,58 @@
|
||||
[general]
|
||||
import = ["~/.config/alacritty/solarized_light.toml"]
|
||||
live_config_reload = true
|
||||
|
||||
[env]
|
||||
TERM = "xterm-256color"
|
||||
|
||||
[font]
|
||||
size = 14
|
||||
|
||||
[font.bold]
|
||||
family = "Fira Mono for Powerline"
|
||||
style = "Bold"
|
||||
|
||||
[font.italic]
|
||||
family = "Fira Mono for Powerline"
|
||||
style = "Regular"
|
||||
|
||||
[font.normal]
|
||||
family = "Fira Mono for Powerline"
|
||||
style = "Medium"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
key = "F"
|
||||
mods = "Control"
|
||||
|
||||
[keyboard.bindings.command]
|
||||
args = ["-c", "python3 ~/.config/alacritty/color_switcher.py"]
|
||||
program = "zsh"
|
||||
|
||||
[[keyboard.bindings]]
|
||||
key = "T"
|
||||
mods = "Command"
|
||||
|
||||
[keyboard.bindings.command]
|
||||
args = ["-e", "zsh"]
|
||||
program = "alacritty"
|
||||
|
||||
[scrolling]
|
||||
history = 0
|
||||
|
||||
[selection]
|
||||
save_to_clipboard = false
|
||||
|
||||
[terminal]
|
||||
osc52 = "OnlyCopy"
|
||||
|
||||
[terminal.shell]
|
||||
args = ["-c", "$HOME/.tmux/tmux_attach.sh"]
|
||||
program = "/bin/zsh"
|
||||
|
||||
[window]
|
||||
dynamic_title = true
|
||||
option_as_alt = "None"
|
||||
|
||||
[window.padding]
|
||||
x = 2
|
||||
y = 0
|
||||
@@ -1,48 +0,0 @@
|
||||
font:
|
||||
# The size to use.
|
||||
size: 12
|
||||
# The normal (roman) font face to use.
|
||||
normal:
|
||||
family: DejaVu Sans Mono For Powerline
|
||||
# Style can be specified to pick a specific face.
|
||||
style: Regular
|
||||
|
||||
# The bold font face
|
||||
bold:
|
||||
family: DejaVu Sans Mono For Powerline
|
||||
# Style can be specified to pick a specific face.
|
||||
# style: Bold
|
||||
|
||||
# The italic font face
|
||||
italic:
|
||||
family: DejaVu Sans Mono For Powerline
|
||||
# Style can be specified to pick a specific face.
|
||||
# style: Italic
|
||||
|
||||
colors:
|
||||
# Default colors
|
||||
primary:
|
||||
background: '0x323232'
|
||||
foreground: '0xeeeeec'
|
||||
|
||||
# Normal colors
|
||||
normal:
|
||||
black: '0x2e3436'
|
||||
red: '0xcc0000'
|
||||
green: '0x4e9a06'
|
||||
yellow: '0xc4a000'
|
||||
blue: '0x3465a4'
|
||||
magenta: '0x75507b'
|
||||
cyan: '0x06989a'
|
||||
white: '0xd3d7cf'
|
||||
|
||||
# Bright colors
|
||||
bright:
|
||||
black: '0x555753'
|
||||
red: '0xef2929'
|
||||
green: '0x8ae234'
|
||||
yellow: '0xfce94f'
|
||||
blue: '0x729fcf'
|
||||
magenta: '0xad7fa8'
|
||||
cyan: '0x34e2e2'
|
||||
white: '0xeeeeec'
|
||||
77
.config/alacritty/color_switcher.py
Executable file
77
.config/alacritty/color_switcher.py
Executable file
@@ -0,0 +1,77 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import os
|
||||
import re
|
||||
import sys
|
||||
|
||||
ALACRITTY_CONFIG_FILE_NAME = "alacritty.toml"
|
||||
CONFIG_FILE_DIR = os.path.expanduser("~/.config/alacritty/")
|
||||
ALACRITTY_CONFIG_FILE_PATH = os.path.join(CONFIG_FILE_DIR, ALACRITTY_CONFIG_FILE_NAME)
|
||||
|
||||
COLOR_SCHEME_LINE_SEARCH = r'import = \[.*\]'
|
||||
ALACRITTY_LIGHT_THEME="solarized_light.toml"
|
||||
ALACRITTY_DARK_THEME="dark_mode.toml"
|
||||
|
||||
NVIM_CONFIG_FILE_DIR = os.path.expanduser("~/.config/nvim/")
|
||||
NVIM_CONFIG_FILE_NAME = "scheme.vim"
|
||||
NVIM_CONFIG_FILE_PATH = os.path.join(NVIM_CONFIG_FILE_DIR, NVIM_CONFIG_FILE_NAME)
|
||||
|
||||
NVIM_COLOR_SCHEME_LINE_SEARCH = "set background=(\S+)\ncolorscheme (\S+)"
|
||||
NVIM_COLOR_SCHEME_LINE_TEMPLATE = "set background={}\ncolorscheme {}"
|
||||
|
||||
def change_alacritty_theme(light_mode=None):
|
||||
with open(ALACRITTY_CONFIG_FILE_PATH, "r") as scheme_file:
|
||||
scheme_file.seek(0)
|
||||
lines = scheme_file.readlines()
|
||||
|
||||
colors_line_index = -1
|
||||
for i, line in enumerate(lines):
|
||||
match = re.search(COLOR_SCHEME_LINE_SEARCH, line)
|
||||
if match is not None:
|
||||
colors_line_index = i
|
||||
color_line = lines[i]
|
||||
break
|
||||
|
||||
if light_mode is None:
|
||||
if ALACRITTY_DARK_THEME in color_line:
|
||||
color_line = color_line.replace(ALACRITTY_DARK_THEME, ALACRITTY_LIGHT_THEME)
|
||||
new_scheme = "light"
|
||||
else:
|
||||
color_line = color_line.replace(ALACRITTY_LIGHT_THEME, ALACRITTY_DARK_THEME)
|
||||
new_scheme = "dark"
|
||||
elif light_mode == True:
|
||||
new_scheme = "light"
|
||||
color_line = color_line.replace(ALACRITTY_DARK_THEME, ALACRITTY_LIGHT_THEME)
|
||||
else:
|
||||
color_line = color_line.replace(ALACRITTY_LIGHT_THEME, ALACRITTY_DARK_THEME)
|
||||
new_scheme = "dark"
|
||||
lines[colors_line_index] = color_line
|
||||
with open(ALACRITTY_CONFIG_FILE_PATH, "w") as scheme_file:
|
||||
for line in lines:
|
||||
scheme_file.write(line)
|
||||
|
||||
return new_scheme
|
||||
|
||||
def change_vim_theme(light_mode=False):
|
||||
with open(NVIM_CONFIG_FILE_PATH, "r") as config_file:
|
||||
config_file.seek(0)
|
||||
config = config_file.read()
|
||||
if light_mode:
|
||||
color_line = NVIM_COLOR_SCHEME_LINE_TEMPLATE.format("light", "solarized")
|
||||
else:
|
||||
color_line = NVIM_COLOR_SCHEME_LINE_TEMPLATE.format("dark", "badwolf")
|
||||
res = re.sub(NVIM_COLOR_SCHEME_LINE_SEARCH, color_line, config)
|
||||
with open(NVIM_CONFIG_FILE_PATH, "w") as config_file:
|
||||
config = config_file.write(res)
|
||||
|
||||
|
||||
def main(light_mode=None):
|
||||
new_theme = change_alacritty_theme(light_mode)
|
||||
change_vim_theme(new_theme == "light")
|
||||
|
||||
|
||||
if __name__=="__main__":
|
||||
if len(sys.argv) == 2:
|
||||
main(sys.argv == "light")
|
||||
else:
|
||||
main()
|
||||
23
.config/alacritty/dark_mode.toml
Normal file
23
.config/alacritty/dark_mode.toml
Normal file
@@ -0,0 +1,23 @@
|
||||
[colors.bright]
|
||||
black = "0x555753"
|
||||
blue = "0x729fcf"
|
||||
cyan = "0x34e2e2"
|
||||
green = "0x8ae234"
|
||||
magenta = "0xad7fa8"
|
||||
red = "0xef2929"
|
||||
white = "0xeeeeec"
|
||||
yellow = "0xfce94f"
|
||||
|
||||
[colors.normal]
|
||||
black = "0x2e3436"
|
||||
blue = "0x3465a4"
|
||||
cyan = "0x06989a"
|
||||
green = "0x4e9a06"
|
||||
magenta = "0x75507b"
|
||||
red = "0xcc0000"
|
||||
white = "0xd3d7cf"
|
||||
yellow = "0xc4a000"
|
||||
|
||||
[colors.primary]
|
||||
background = "0x323232"
|
||||
foreground = "0xeeeeec"
|
||||
41
.config/alacritty/screenshot_mode.py
Normal file
41
.config/alacritty/screenshot_mode.py
Normal file
@@ -0,0 +1,41 @@
|
||||
#! /usr/bin/env python3
|
||||
# vim:fenc=utf-8
|
||||
#
|
||||
# Copyright © 2023 ising <ising@mac-nurmi>
|
||||
#
|
||||
# Distributed under terms of the MIT license.
|
||||
|
||||
"""
|
||||
|
||||
"""
|
||||
import os
|
||||
import sys
|
||||
import color_switcher
|
||||
|
||||
CONFIG_FILE_NAME = "alacritty.toml"
|
||||
CONFIG_FILE_DIR = os.path.expanduser("~/.config/alacritty/")
|
||||
CONFIG_FILE_PATH = os.path.join(CONFIG_FILE_DIR, CONFIG_FILE_NAME)
|
||||
|
||||
def main(turn_on=False):
|
||||
padding_line = None
|
||||
with open(CONFIG_FILE_PATH, "r") as config_file:
|
||||
config_file.seek(0)
|
||||
config_lines = config_file.readlines()
|
||||
for i, line in enumerate(config_lines):
|
||||
if "[window.padding]" in line and "x =" in config_lines[i+1]:
|
||||
padding_line = i
|
||||
if padding_line is None:
|
||||
return
|
||||
if turn_on:
|
||||
config_lines[padding_line+1] = "x = 10\n"
|
||||
config_lines[padding_line+2] = "y = 10\n"
|
||||
else:
|
||||
config_lines[padding_line+1] = "x = 0\n"
|
||||
config_lines[padding_line+2] = "y = 0\n"
|
||||
with open(CONFIG_FILE_PATH, "w") as config_file:
|
||||
for line in config_lines:
|
||||
config_file.write(line)
|
||||
|
||||
if __name__=="__main__":
|
||||
main(len(sys.argv) == 2 and sys.argv[1] == "on")
|
||||
#color_switcher.main(len(sys.argv) == 2 and sys.argv[1] == "on")
|
||||
23
.config/alacritty/solarized_light.toml
Normal file
23
.config/alacritty/solarized_light.toml
Normal file
@@ -0,0 +1,23 @@
|
||||
[colors.bright]
|
||||
black = "0x002b36"
|
||||
blue = "0x839496"
|
||||
cyan = "0x93a1a1"
|
||||
green = "0x586e75"
|
||||
magenta = "0x6c71c4"
|
||||
red = "0xcb4b16"
|
||||
white = "0xfdf6e3"
|
||||
yellow = "0x657b83"
|
||||
|
||||
[colors.normal]
|
||||
black = "0x073642"
|
||||
blue = "0x268bd2"
|
||||
cyan = "0x2aa198"
|
||||
green = "0x859900"
|
||||
magenta = "0xd33682"
|
||||
red = "0xdc322f"
|
||||
white = "0xeee8d5"
|
||||
yellow = "0xb58900"
|
||||
|
||||
[colors.primary]
|
||||
background = "0xfdf6e3"
|
||||
foreground = "0x586e75"
|
||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1,3 +1,4 @@
|
||||
*.swp
|
||||
tags
|
||||
.DS_STORE
|
||||
__pycache__
|
||||
|
||||
1
.gitignore_global
Normal file
1
.gitignore_global
Normal file
@@ -0,0 +1 @@
|
||||
.DS_Store
|
||||
15
.gitmodules
vendored
15
.gitmodules
vendored
@@ -1,15 +0,0 @@
|
||||
[submodule "plugins/tpm"]
|
||||
path = tmux/plugins/tpm
|
||||
url = https://github.com/tmux-plugins/tpm.git
|
||||
|
||||
[submodule "antigen"]
|
||||
path = zsh/antigen
|
||||
url = https://github.com/zsh-users/antigen.git
|
||||
|
||||
[submodule "bundle/Vundle.vim"]
|
||||
path = vim/bundle/Vundle.vim
|
||||
url = https://github.com/VundleVim/Vundle.vim.git
|
||||
|
||||
[submodule "nvim/bundle/Vundle.vim"]
|
||||
path = nvim/bundle/Vundle.vim
|
||||
url = https://github.com/VundleVim/Vundle.vim.git
|
||||
10
brew_autoupdate
Executable file
10
brew_autoupdate
Executable file
@@ -0,0 +1,10 @@
|
||||
#!/bin/sh
|
||||
export HOMEBREW_NO_BOTTLE_SOURCE_FALLBACK=1
|
||||
export PATH='/opt/homebrew/Library/Homebrew/shims/shared:/opt/homebrew/opt/coreutils/libexec/gnubin:/Users/ising/.local/bin:/opt/homebrew/bin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/Library/TeX/texbin:/Applications/VMware Fusion.app/Contents/Public:/Users/ising/.cargo/bin:/opt/homebrew/sbin:/Users/ising/go/bin:/opt/homebrew/Library/Taps/homebrew/homebrew-autoupdate/cmd:/opt/homebrew/Library/Taps/homebrew/homebrew-command-not-found/cmd:/opt/homebrew/Library/Taps/homebrew/homebrew-services/cmd'
|
||||
export HOMEBREW_CACHE='/Users/ising/Library/Caches/Homebrew'
|
||||
export HOMEBREW_LOGS='/Users/ising/Library/Logs/Homebrew'
|
||||
export SUDO_ASKPASS='/Users/ising/Library/Application Support/com.github.domt4.homebrew-autoupdate/brew_autoupdate_sudo_gui'
|
||||
defaults export com.apple.dock "/tmp/dock-layout.plist"
|
||||
/bin/date && /opt/homebrew/bin/brew update && /opt/homebrew/bin/brew upgrade --formula -v && /opt/homebrew/bin/brew upgrade --cask -v && /opt/homebrew/bin/brew cleanup && /usr/bin/open -g /opt/homebrew/Library/Taps/homebrew/homebrew-autoupdate/notifier/brew-autoupdate.app
|
||||
defaults import com.apple.dock "/tmp/dock-layout.plist"
|
||||
killall dock
|
||||
@@ -7,12 +7,10 @@
|
||||
#
|
||||
|
||||
|
||||
git submodule update --init --recursive
|
||||
echo "ln -s $PWD/vim $HOME/.vim"
|
||||
ln -Tsv $PWD/vim $HOME/.vim
|
||||
ln -Tsv ~/.vim/.vimrc $HOME/.vimrc
|
||||
ln -Tsv $PWD/zsh $HOME/.zsh
|
||||
ln -Tsv ~/.zsh/.zshrc $HOME/.zshrc
|
||||
ln -Tsv $PWD/tmux $HOME/.tmux
|
||||
ln -Tsv ~/.tmux/.tmux.conf $HOME/.tmux.conf
|
||||
ln -Tsv $PWD/nvim $HOME/.config/nvim
|
||||
ln -Tsv $PWD/.config/alacritty $HOME/.config/alacritty
|
||||
ln -fsv $PWD/virtualenvwrapper/* $VIRTUALENVWRAPPER_HOOK_DIR
|
||||
|
||||
@@ -7,12 +7,14 @@
|
||||
#
|
||||
|
||||
|
||||
git submodule update --init --recursive
|
||||
echo "ln -s $PWD/vim $HOME/.vim"
|
||||
ln -sv $PWD/vim $HOME/.vim
|
||||
ln -sv ~/.vim/.vimrc $HOME/.vimrc
|
||||
ln -sv $PWD/zsh $HOME/.zsh
|
||||
ln -sv ~/.zsh/.zshrc $HOME/.zshrc
|
||||
ln -sv $PWD/tmux $HOME/.tmux
|
||||
ln -sv ~/.tmux/.tmux.conf $HOME/.tmux.conf
|
||||
|
||||
gln -Tsv $PWD/zsh $HOME/.zsh
|
||||
gln -Tsv ~/.zsh/.zshrc $HOME/.zshrc
|
||||
gln -Tsv $PWD/tmux $HOME/.tmux
|
||||
gln -Tsv ~/.tmux/.tmux.conf $HOME/.tmux.conf
|
||||
gln -Tsv $PWD/nvim $HOME/.config/nvim
|
||||
gln -Tsv $PWD/.config/alacritty $HOME/.config/alacritty
|
||||
gln -Tsv $PWD/zsh/.p10k.zsh_mac.example $PWD/zsh/.p10k.mac.zsh
|
||||
gln -Tsv $PWD/zsh/.mac_config.example $PWD/zsh/.mac_config
|
||||
gln -Tsv $PWD/zsh/.virtual_env_config.zsh_mac.example $PWD/zsh/.virtual_env_config.zsh
|
||||
gln -fsv $PWD/virtualenvwrapper/* $VIRTUALENVWRAPPER_HOOK_DIR
|
||||
gln -Tsv $PWD/update_mac.sh $HOME/update_mac.sh
|
||||
|
||||
9
compile_ycm.sh
Executable file
9
compile_ycm.sh
Executable file
@@ -0,0 +1,9 @@
|
||||
#! /bin/sh
|
||||
#
|
||||
# compile_ycm.sh
|
||||
# Copyright (C) 2024 ising <ising@mac-nurmi>
|
||||
#
|
||||
# Distributed under terms of the MIT license.
|
||||
#
|
||||
|
||||
python3 ~/.local/share/nvim/plugged/install.py --all
|
||||
12
copy_fonts_arch.sh
Executable file
12
copy_fonts_arch.sh
Executable file
@@ -0,0 +1,12 @@
|
||||
#! /bin/sh
|
||||
#
|
||||
# copy_fonts_arch.sh
|
||||
# Copyright (C) 2022 fabian <fabian@krikkit>
|
||||
#
|
||||
# Distributed under terms of the MIT license.
|
||||
#
|
||||
|
||||
mkdir -p $HOME/.local/share/fonts
|
||||
for filename in fonts/*; do
|
||||
cp "$filename" "$HOME/.local/share/$filename"
|
||||
done
|
||||
BIN
fonts/FuraMono-Bold Powerline.otf
Normal file
BIN
fonts/FuraMono-Bold Powerline.otf
Normal file
Binary file not shown.
BIN
fonts/FuraMono-Medium Powerline.otf
Normal file
BIN
fonts/FuraMono-Medium Powerline.otf
Normal file
Binary file not shown.
BIN
fonts/FuraMono-Regular Powerline.otf
Normal file
BIN
fonts/FuraMono-Regular Powerline.otf
Normal file
Binary file not shown.
BIN
fonts/MesloLGS NF Bold Italic.ttf
Normal file
BIN
fonts/MesloLGS NF Bold Italic.ttf
Normal file
Binary file not shown.
BIN
fonts/MesloLGS NF Bold.ttf
Normal file
BIN
fonts/MesloLGS NF Bold.ttf
Normal file
Binary file not shown.
BIN
fonts/MesloLGS NF Italic.ttf
Normal file
BIN
fonts/MesloLGS NF Italic.ttf
Normal file
Binary file not shown.
BIN
fonts/MesloLGS NF Regular.ttf
Normal file
BIN
fonts/MesloLGS NF Regular.ttf
Normal file
Binary file not shown.
3
gitconfig/fhms.gitconfig
Normal file
3
gitconfig/fhms.gitconfig
Normal file
@@ -0,0 +1,3 @@
|
||||
[user]
|
||||
name = Fabian Ising
|
||||
email = f.ising@fh-muenster.de
|
||||
35
gitconfig/gitconfig
Normal file
35
gitconfig/gitconfig
Normal file
@@ -0,0 +1,35 @@
|
||||
# This is Git's per-user configuration file.
|
||||
[user]
|
||||
# Please adapt and uncomment the following lines:
|
||||
name = Fabian Ising
|
||||
email = github@murgi.de
|
||||
|
||||
[includeIf "hasconfig:remote.*.url:https://github.com/**"]
|
||||
path = ~/dotfiles/gitconfig/github.gitconfig
|
||||
[includeIf "hasconfig:remote.*.url:git@github.com/**"]
|
||||
path = ~/dotfiles/gitconfig/github.gitconfig
|
||||
[includeIf "hasconfig:remote.*.url:https://git.fh-muenster.de/**"]
|
||||
path = ~/dotfiles/gitconfig/fhms.gitconfig
|
||||
[includeIf "hasconfig:remote.*.url:git@git.fh-muenster.de:*/**"]
|
||||
path = ~/dotfiles/gitconfig/fhms.gitconfig
|
||||
[includeIf "hasconfig:remote.*.url:ssh://git@git.fh-muenster.de:*/**"]
|
||||
path = ~/dotfiles/gitconfig/fhms.gitconfig
|
||||
[includeIf "hasconfig:remote.*.url:https://vcs.murgi.de/**"]
|
||||
path = ~/dotfiles/gitconfig/murgi.gitconfig
|
||||
[includeIf "hasconfig:remote.*.url:ssh://git@vcs.murgi.de:*/**"]
|
||||
path = ~/dotfiles/gitconfig/murgi.gitconfig
|
||||
[includeIf "hasconfig:remote.*.url:git@vcs.murgi.de:*/**"]
|
||||
path = ~/dotfiles/gitconfig/murgi.gitconfig
|
||||
[includeIf "hasconfig:remote.*.url:git@git-int.sit.fraunhofer.de:*/**"]
|
||||
path = ~/dotfiles/gitconfig/sit.gitconfig
|
||||
[includeIf "hasconfig:remote.*.url:https://git-int.sit.fraunhofer.de/**"]
|
||||
path = ~/dotfiles/gitconfig/sit.gitconfig
|
||||
[core]
|
||||
excludesfile = /Users/ising/dotfiles/.gitignore_global
|
||||
[submodule]
|
||||
recurse = true
|
||||
[filter "lfs"]
|
||||
clean = git-lfs clean -- %f
|
||||
smudge = git-lfs smudge -- %f
|
||||
process = git-lfs filter-process
|
||||
required = true
|
||||
3
gitconfig/github.gitconfig
Normal file
3
gitconfig/github.gitconfig
Normal file
@@ -0,0 +1,3 @@
|
||||
[user]
|
||||
name = Fabian Ising
|
||||
email = github@murgi.de
|
||||
3
gitconfig/murgi.gitconfig
Normal file
3
gitconfig/murgi.gitconfig
Normal file
@@ -0,0 +1,3 @@
|
||||
[user]
|
||||
name = Fabian Ising
|
||||
email = fabian@murgi.de
|
||||
3
gitconfig/sit.gitconfig
Normal file
3
gitconfig/sit.gitconfig
Normal file
@@ -0,0 +1,3 @@
|
||||
[user]
|
||||
name = Fabian Ising
|
||||
email = fabian.ising@sit.fraunhofer.de
|
||||
@@ -11,3 +11,4 @@ for filename in .config/*; do
|
||||
done
|
||||
|
||||
ln -Ts $PWD/nvim $HOME/.config/nvim
|
||||
ln -Ts $PWD/gitconfig/gitconfig $HOME/.gitconfig
|
||||
|
||||
3
nvim/.gitignore
vendored
3
nvim/.gitignore
vendored
@@ -6,3 +6,6 @@ __pycache__/
|
||||
bundle/*
|
||||
!bundle/Vundle.vim
|
||||
*.swp
|
||||
|
||||
# Prevent changes to propagate to all systems
|
||||
scheme.vim
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
set rtp+=/usr/lib/python3.6/site-packages/powerline/bindings/vim
|
||||
@@ -1 +0,0 @@
|
||||
set rtp+=/usr/local/lib/python2.7/dist-packages/powerline/bindings/vim
|
||||
@@ -1 +0,0 @@
|
||||
set rtp+=$HOME/.local/lib/python3.9/site-packages/powerline/bindings/vim
|
||||
@@ -1,347 +0,0 @@
|
||||
" pathogen.vim - path option manipulation
|
||||
" Maintainer: Tim Pope <http://tpo.pe/>
|
||||
" Version: 2.3
|
||||
|
||||
" Install in ~/.vim/autoload (or ~\vimfiles\autoload).
|
||||
"
|
||||
" For management of individually installed plugins in ~/.vim/bundle (or
|
||||
" ~\vimfiles\bundle), adding `execute pathogen#infect()` to the top of your
|
||||
" .vimrc is the only other setup necessary.
|
||||
"
|
||||
" The API is documented inline below.
|
||||
|
||||
if exists("g:loaded_pathogen") || &cp
|
||||
finish
|
||||
endif
|
||||
let g:loaded_pathogen = 1
|
||||
|
||||
" Point of entry for basic default usage. Give a relative path to invoke
|
||||
" pathogen#interpose() (defaults to "bundle/{}"), or an absolute path to invoke
|
||||
" pathogen#surround(). Curly braces are expanded with pathogen#expand():
|
||||
" "bundle/{}" finds all subdirectories inside "bundle" inside all directories
|
||||
" in the runtime path.
|
||||
function! pathogen#infect(...) abort
|
||||
for path in a:0 ? filter(reverse(copy(a:000)), 'type(v:val) == type("")') : ['bundle/{}']
|
||||
if path =~# '^\%({\=[$~\\/]\|{\=\w:[\\/]\).*[{}*]'
|
||||
call pathogen#surround(path)
|
||||
elseif path =~# '^\%([$~\\/]\|\w:[\\/]\)'
|
||||
call s:warn('Change pathogen#infect('.string(path).') to pathogen#infect('.string(path.'/{}').')')
|
||||
call pathogen#surround(path . '/{}')
|
||||
elseif path =~# '[{}*]'
|
||||
call pathogen#interpose(path)
|
||||
else
|
||||
call s:warn('Change pathogen#infect('.string(path).') to pathogen#infect('.string(path.'/{}').')')
|
||||
call pathogen#interpose(path . '/{}')
|
||||
endif
|
||||
endfor
|
||||
call pathogen#cycle_filetype()
|
||||
if pathogen#is_disabled($MYVIMRC)
|
||||
return 'finish'
|
||||
endif
|
||||
return ''
|
||||
endfunction
|
||||
|
||||
" Split a path into a list.
|
||||
function! pathogen#split(path) abort
|
||||
if type(a:path) == type([]) | return a:path | endif
|
||||
if empty(a:path) | return [] | endif
|
||||
let split = split(a:path,'\\\@<!\%(\\\\\)*\zs,')
|
||||
return map(split,'substitute(v:val,''\\\([\\,]\)'',''\1'',"g")')
|
||||
endfunction
|
||||
|
||||
" Convert a list to a path.
|
||||
function! pathogen#join(...) abort
|
||||
if type(a:1) == type(1) && a:1
|
||||
let i = 1
|
||||
let space = ' '
|
||||
else
|
||||
let i = 0
|
||||
let space = ''
|
||||
endif
|
||||
let path = ""
|
||||
while i < a:0
|
||||
if type(a:000[i]) == type([])
|
||||
let list = a:000[i]
|
||||
let j = 0
|
||||
while j < len(list)
|
||||
let escaped = substitute(list[j],'[,'.space.']\|\\[\,'.space.']\@=','\\&','g')
|
||||
let path .= ',' . escaped
|
||||
let j += 1
|
||||
endwhile
|
||||
else
|
||||
let path .= "," . a:000[i]
|
||||
endif
|
||||
let i += 1
|
||||
endwhile
|
||||
return substitute(path,'^,','','')
|
||||
endfunction
|
||||
|
||||
" Convert a list to a path with escaped spaces for 'path', 'tag', etc.
|
||||
function! pathogen#legacyjoin(...) abort
|
||||
return call('pathogen#join',[1] + a:000)
|
||||
endfunction
|
||||
|
||||
" Turn filetype detection off and back on again if it was already enabled.
|
||||
function! pathogen#cycle_filetype() abort
|
||||
if exists('g:did_load_filetypes')
|
||||
filetype off
|
||||
filetype on
|
||||
endif
|
||||
endfunction
|
||||
|
||||
" Check if a bundle is disabled. A bundle is considered disabled if its
|
||||
" basename or full name is included in the list g:pathogen_disabled.
|
||||
function! pathogen#is_disabled(path) abort
|
||||
if a:path =~# '\~$'
|
||||
return 1
|
||||
endif
|
||||
let sep = pathogen#slash()
|
||||
let blacklist = map(
|
||||
\ get(g:, 'pathogen_blacklist', get(g:, 'pathogen_disabled', [])) +
|
||||
\ pathogen#split($VIMBLACKLIST),
|
||||
\ 'substitute(v:val, "[\\/]$", "", "")')
|
||||
return index(blacklist, fnamemodify(a:path, ':t')) != -1 || index(blacklist, a:path) != -1
|
||||
endfunction "}}}1
|
||||
|
||||
" Prepend the given directory to the runtime path and append its corresponding
|
||||
" after directory. Curly braces are expanded with pathogen#expand().
|
||||
function! pathogen#surround(path) abort
|
||||
let sep = pathogen#slash()
|
||||
let rtp = pathogen#split(&rtp)
|
||||
let path = fnamemodify(a:path, ':p:s?[\\/]\=$??')
|
||||
let before = filter(pathogen#expand(path), '!pathogen#is_disabled(v:val)')
|
||||
let after = filter(reverse(pathogen#expand(path.sep.'after')), '!pathogen#is_disabled(v:val[0:-7])')
|
||||
call filter(rtp, 'index(before + after, v:val) == -1')
|
||||
let &rtp = pathogen#join(before, rtp, after)
|
||||
return &rtp
|
||||
endfunction
|
||||
|
||||
" For each directory in the runtime path, add a second entry with the given
|
||||
" argument appended. Curly braces are expanded with pathogen#expand().
|
||||
function! pathogen#interpose(name) abort
|
||||
let sep = pathogen#slash()
|
||||
let name = a:name
|
||||
if has_key(s:done_bundles, name)
|
||||
return ""
|
||||
endif
|
||||
let s:done_bundles[name] = 1
|
||||
let list = []
|
||||
for dir in pathogen#split(&rtp)
|
||||
if dir =~# '\<after$'
|
||||
let list += reverse(filter(pathogen#expand(dir[0:-6].name.sep.'after'), '!pathogen#is_disabled(v:val[0:-7])')) + [dir]
|
||||
else
|
||||
let list += [dir] + filter(pathogen#expand(dir.sep.name), '!pathogen#is_disabled(v:val)')
|
||||
endif
|
||||
endfor
|
||||
let &rtp = pathogen#join(pathogen#uniq(list))
|
||||
return 1
|
||||
endfunction
|
||||
|
||||
let s:done_bundles = {}
|
||||
|
||||
" Invoke :helptags on all non-$VIM doc directories in runtimepath.
|
||||
function! pathogen#helptags() abort
|
||||
let sep = pathogen#slash()
|
||||
for glob in pathogen#split(&rtp)
|
||||
for dir in map(split(glob(glob), "\n"), 'v:val.sep."/doc/".sep')
|
||||
if (dir)[0 : strlen($VIMRUNTIME)] !=# $VIMRUNTIME.sep && filewritable(dir) == 2 && !empty(split(glob(dir.'*.txt'))) && (!filereadable(dir.'tags') || filewritable(dir.'tags'))
|
||||
silent! execute 'helptags' pathogen#fnameescape(dir)
|
||||
endif
|
||||
endfor
|
||||
endfor
|
||||
endfunction
|
||||
|
||||
command! -bar Helptags :call pathogen#helptags()
|
||||
|
||||
" Execute the given command. This is basically a backdoor for --remote-expr.
|
||||
function! pathogen#execute(...) abort
|
||||
for command in a:000
|
||||
execute command
|
||||
endfor
|
||||
return ''
|
||||
endfunction
|
||||
|
||||
" Section: Unofficial
|
||||
|
||||
function! pathogen#is_absolute(path) abort
|
||||
return a:path =~# (has('win32') ? '^\%([\\/]\|\w:\)[\\/]\|^[~$]' : '^[/~$]')
|
||||
endfunction
|
||||
|
||||
" Given a string, returns all possible permutations of comma delimited braced
|
||||
" alternatives of that string. pathogen#expand('/{a,b}/{c,d}') yields
|
||||
" ['/a/c', '/a/d', '/b/c', '/b/d']. Empty braces are treated as a wildcard
|
||||
" and globbed. Actual globs are preserved.
|
||||
function! pathogen#expand(pattern) abort
|
||||
if a:pattern =~# '{[^{}]\+}'
|
||||
let [pre, pat, post] = split(substitute(a:pattern, '\(.\{-\}\){\([^{}]\+\)}\(.*\)', "\\1\001\\2\001\\3", ''), "\001", 1)
|
||||
let found = map(split(pat, ',', 1), 'pre.v:val.post')
|
||||
let results = []
|
||||
for pattern in found
|
||||
call extend(results, pathogen#expand(pattern))
|
||||
endfor
|
||||
return results
|
||||
elseif a:pattern =~# '{}'
|
||||
let pat = matchstr(a:pattern, '^.*{}[^*]*\%($\|[\\/]\)')
|
||||
let post = a:pattern[strlen(pat) : -1]
|
||||
return map(split(glob(substitute(pat, '{}', '*', 'g')), "\n"), 'v:val.post')
|
||||
else
|
||||
return [a:pattern]
|
||||
endif
|
||||
endfunction
|
||||
|
||||
" \ on Windows unless shellslash is set, / everywhere else.
|
||||
function! pathogen#slash() abort
|
||||
return !exists("+shellslash") || &shellslash ? '/' : '\'
|
||||
endfunction
|
||||
|
||||
function! pathogen#separator() abort
|
||||
return pathogen#slash()
|
||||
endfunction
|
||||
|
||||
" Convenience wrapper around glob() which returns a list.
|
||||
function! pathogen#glob(pattern) abort
|
||||
let files = split(glob(a:pattern),"\n")
|
||||
return map(files,'substitute(v:val,"[".pathogen#slash()."/]$","","")')
|
||||
endfunction "}}}1
|
||||
|
||||
" Like pathogen#glob(), only limit the results to directories.
|
||||
function! pathogen#glob_directories(pattern) abort
|
||||
return filter(pathogen#glob(a:pattern),'isdirectory(v:val)')
|
||||
endfunction "}}}1
|
||||
|
||||
" Remove duplicates from a list.
|
||||
function! pathogen#uniq(list) abort
|
||||
let i = 0
|
||||
let seen = {}
|
||||
while i < len(a:list)
|
||||
if (a:list[i] ==# '' && exists('empty')) || has_key(seen,a:list[i])
|
||||
call remove(a:list,i)
|
||||
elseif a:list[i] ==# ''
|
||||
let i += 1
|
||||
let empty = 1
|
||||
else
|
||||
let seen[a:list[i]] = 1
|
||||
let i += 1
|
||||
endif
|
||||
endwhile
|
||||
return a:list
|
||||
endfunction
|
||||
|
||||
" Backport of fnameescape().
|
||||
function! pathogen#fnameescape(string) abort
|
||||
if exists('*fnameescape')
|
||||
return fnameescape(a:string)
|
||||
elseif a:string ==# '-'
|
||||
return '\-'
|
||||
else
|
||||
return substitute(escape(a:string," \t\n*?[{`$\\%#'\"|!<"),'^[+>]','\\&','')
|
||||
endif
|
||||
endfunction
|
||||
|
||||
" Like findfile(), but hardcoded to use the runtimepath.
|
||||
function! pathogen#runtime_findfile(file,count) abort "{{{1
|
||||
let rtp = pathogen#join(1,pathogen#split(&rtp))
|
||||
let file = findfile(a:file,rtp,a:count)
|
||||
if file ==# ''
|
||||
return ''
|
||||
else
|
||||
return fnamemodify(file,':p')
|
||||
endif
|
||||
endfunction
|
||||
|
||||
" Section: Deprecated
|
||||
|
||||
function! s:warn(msg) abort
|
||||
echohl WarningMsg
|
||||
echomsg a:msg
|
||||
echohl NONE
|
||||
endfunction
|
||||
|
||||
" Prepend all subdirectories of path to the rtp, and append all 'after'
|
||||
" directories in those subdirectories. Deprecated.
|
||||
function! pathogen#runtime_prepend_subdirectories(path) abort
|
||||
call s:warn('Change pathogen#runtime_prepend_subdirectories('.string(a:path).') to pathogen#infect('.string(a:path.'/{}').')')
|
||||
return pathogen#surround(a:path . pathogen#slash() . '{}')
|
||||
endfunction
|
||||
|
||||
function! pathogen#incubate(...) abort
|
||||
let name = a:0 ? a:1 : 'bundle/{}'
|
||||
call s:warn('Change pathogen#incubate('.(a:0 ? string(a:1) : '').') to pathogen#infect('.string(name).')')
|
||||
return pathogen#interpose(name)
|
||||
endfunction
|
||||
|
||||
" Deprecated alias for pathogen#interpose().
|
||||
function! pathogen#runtime_append_all_bundles(...) abort
|
||||
if a:0
|
||||
call s:warn('Change pathogen#runtime_append_all_bundles('.string(a:1).') to pathogen#infect('.string(a:1.'/{}').')')
|
||||
else
|
||||
call s:warn('Change pathogen#runtime_append_all_bundles() to pathogen#infect()')
|
||||
endif
|
||||
return pathogen#interpose(a:0 ? a:1 . '/{}' : 'bundle/{}')
|
||||
endfunction
|
||||
|
||||
if exists(':Vedit')
|
||||
finish
|
||||
endif
|
||||
|
||||
let s:vopen_warning = 0
|
||||
|
||||
function! s:find(count,cmd,file,lcd)
|
||||
let rtp = pathogen#join(1,pathogen#split(&runtimepath))
|
||||
let file = pathogen#runtime_findfile(a:file,a:count)
|
||||
if file ==# ''
|
||||
return "echoerr 'E345: Can''t find file \"".a:file."\" in runtimepath'"
|
||||
endif
|
||||
if !s:vopen_warning
|
||||
let s:vopen_warning = 1
|
||||
let warning = '|echohl WarningMsg|echo "Install scriptease.vim to continue using :V'.a:cmd.'"|echohl NONE'
|
||||
else
|
||||
let warning = ''
|
||||
endif
|
||||
if a:lcd
|
||||
let path = file[0:-strlen(a:file)-2]
|
||||
execute 'lcd `=path`'
|
||||
return a:cmd.' '.pathogen#fnameescape(a:file) . warning
|
||||
else
|
||||
return a:cmd.' '.pathogen#fnameescape(file) . warning
|
||||
endif
|
||||
endfunction
|
||||
|
||||
function! s:Findcomplete(A,L,P)
|
||||
let sep = pathogen#slash()
|
||||
let cheats = {
|
||||
\'a': 'autoload',
|
||||
\'d': 'doc',
|
||||
\'f': 'ftplugin',
|
||||
\'i': 'indent',
|
||||
\'p': 'plugin',
|
||||
\'s': 'syntax'}
|
||||
if a:A =~# '^\w[\\/]' && has_key(cheats,a:A[0])
|
||||
let request = cheats[a:A[0]].a:A[1:-1]
|
||||
else
|
||||
let request = a:A
|
||||
endif
|
||||
let pattern = substitute(request,'/\|\'.sep,'*'.sep,'g').'*'
|
||||
let found = {}
|
||||
for path in pathogen#split(&runtimepath)
|
||||
let path = expand(path, ':p')
|
||||
let matches = split(glob(path.sep.pattern),"\n")
|
||||
call map(matches,'isdirectory(v:val) ? v:val.sep : v:val')
|
||||
call map(matches,'expand(v:val, ":p")[strlen(path)+1:-1]')
|
||||
for match in matches
|
||||
let found[match] = 1
|
||||
endfor
|
||||
endfor
|
||||
return sort(keys(found))
|
||||
endfunction
|
||||
|
||||
command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Ve :execute s:find(<count>,'edit<bang>',<q-args>,0)
|
||||
command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vedit :execute s:find(<count>,'edit<bang>',<q-args>,0)
|
||||
command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vopen :execute s:find(<count>,'edit<bang>',<q-args>,1)
|
||||
command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vsplit :execute s:find(<count>,'split',<q-args>,<bang>1)
|
||||
command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vvsplit :execute s:find(<count>,'vsplit',<q-args>,<bang>1)
|
||||
command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vtabedit :execute s:find(<count>,'tabedit',<q-args>,<bang>1)
|
||||
command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vpedit :execute s:find(<count>,'pedit',<q-args>,<bang>1)
|
||||
command! -bar -bang -range=1 -nargs=1 -complete=customlist,s:Findcomplete Vread :execute s:find(<count>,'read',<q-args>,<bang>1)
|
||||
|
||||
" vim:set et sw=2 foldmethod=expr foldexpr=getline(v\:lnum)=~'^\"\ Section\:'?'>1'\:getline(v\:lnum)=~#'^fu'?'a1'\:getline(v\:lnum)=~#'^endf'?'s1'\:'=':
|
||||
Submodule nvim/bundle/Vundle.vim deleted from b255382d62
1
nvim/ftplugin/python.vim
Normal file
1
nvim/ftplugin/python.vim
Normal file
@@ -0,0 +1 @@
|
||||
set foldmethod=indent
|
||||
201
nvim/init.vim
201
nvim/init.vim
@@ -1,81 +1,136 @@
|
||||
set nocompatible
|
||||
filetype off
|
||||
|
||||
" Plugins
|
||||
set rtp+=~/.config/nvim/bundle/Vundle.vim
|
||||
call vundle#begin("~/.config/nvim/bundle")
|
||||
" Find python
|
||||
if has("macunix")
|
||||
" Required for virtualenvs
|
||||
let arch=substitute(system('uname -m'), '\n', '', '')
|
||||
if arch == 'arm64'
|
||||
let g:python_interpreter=expand("~/python-envs/neovim/bin/python3")
|
||||
else
|
||||
let g:python_interpreter="/usr/local/bin/python3"
|
||||
endif
|
||||
let g:tagbar_ctags="/opt/homebrew/bin/ctags"
|
||||
else
|
||||
let g:python_interpreter = 'python3'
|
||||
endif
|
||||
let g:python3_host_prog=g:python_interpreter
|
||||
|
||||
Plugin 'VundleVim/Vundle.vim'
|
||||
" Plugins
|
||||
" Note: on most systems, this will make the plugins reside in \
|
||||
" ~/.local/share/nvim/plugged/
|
||||
let data_dir = has('nvim') ? stdpath('data') . '/site' : expand('~/.vim')
|
||||
if empty(glob(data_dir . '/autoload/plug.vim'))
|
||||
silent execute '!curl -fLo '.data_dir.'/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'
|
||||
let &runtimepath = &runtimepath
|
||||
autocmd VimEnter * PlugInstall --sync | source $MYVIMRC
|
||||
endif
|
||||
|
||||
" Disable Perl
|
||||
let g:loaded_perl_provider = 0
|
||||
|
||||
call plug#begin()
|
||||
|
||||
if !exists('g:vscode')
|
||||
" Warn about plugin updates
|
||||
Plug 'semanser/vim-outdated-plugins'
|
||||
|
||||
" Powerline replacement
|
||||
Plugin 'vim-airline/vim-airline'
|
||||
Plugin 'vim-airline/vim-airline-themes'
|
||||
Plug 'vim-airline/vim-airline'
|
||||
Plug 'vim-airline/vim-airline-themes'
|
||||
|
||||
" Tags
|
||||
Plugin 'xolox/vim-misc'
|
||||
Plug 'xolox/vim-misc'
|
||||
"Plugin 'ludovicchabant/vim-gutentags'
|
||||
Plugin 'majutsushi/tagbar'
|
||||
Plug 'majutsushi/tagbar'
|
||||
|
||||
" Templates
|
||||
Plugin 'aperezdc/vim-template'
|
||||
Plug 'aperezdc/vim-template'
|
||||
|
||||
" Selection expand
|
||||
Plugin 'terryma/vim-expand-region'
|
||||
Plugin 'kana/vim-textobj-user'
|
||||
Plugin 'kana/vim-textobj-line'
|
||||
Plugin 'kana/vim-submode'
|
||||
Plug 'terryma/vim-expand-region'
|
||||
Plug 'kana/vim-textobj-user'
|
||||
Plug 'kana/vim-textobj-line'
|
||||
Plug 'kana/vim-submode'
|
||||
|
||||
" Better Pasting
|
||||
Plugin 'ConradIrwin/vim-bracketed-paste'
|
||||
Plug 'ConradIrwin/vim-bracketed-paste'
|
||||
|
||||
" Tmux navigation
|
||||
Plugin 'christoomey/vim-tmux-navigator'
|
||||
Plug 'christoomey/vim-tmux-navigator'
|
||||
|
||||
" YouCompleteMe
|
||||
Plugin 'Valloric/YouCompleteMe'
|
||||
Plugin 'rdnetto/YCM-Generator'
|
||||
function! BuildYCM(info)
|
||||
" info is a dictionary with 3 fields
|
||||
" - name: name of the plugin
|
||||
" - status: 'installed', 'updated', or 'unchanged'
|
||||
" - force: set on PlugInstall! or PlugUpdate!
|
||||
if a:info.status == 'installed' || a:info.status == 'updated' || a:info.force
|
||||
execute '!' . g:python_interpreter . ' ./install.py --all'
|
||||
endif
|
||||
endfunction
|
||||
|
||||
Plug 'ycm-core/YouCompleteMe', { 'do': function('BuildYCM') }
|
||||
Plug 'rdnetto/YCM-Generator'
|
||||
|
||||
" Git
|
||||
Plugin 'tpope/vim-fugitive'
|
||||
|
||||
" Comments
|
||||
Plugin 'scrooloose/nerdcommenter'
|
||||
|
||||
" Surround
|
||||
Plugin 'tpope/vim-surround'
|
||||
Plug 'tpope/vim-fugitive'
|
||||
|
||||
" Snippets
|
||||
" Track the engine.
|
||||
Plugin 'SirVer/ultisnips'
|
||||
Plug 'SirVer/ultisnips'
|
||||
" Snippets are separated from the engine. Add this if you want them:
|
||||
Plugin 'honza/vim-snippets'
|
||||
Plugin 'ervandew/supertab'
|
||||
Plug 'honza/vim-snippets'
|
||||
Plug 'ervandew/supertab'
|
||||
|
||||
"Buftabeline
|
||||
"Plugin 'ap/vim-buftabline'
|
||||
"Plug 'ap/vim-buftabline'
|
||||
|
||||
" Highlight matching xml tags
|
||||
Plugin 'Valloric/MatchTagAlways'
|
||||
Plug 'Valloric/MatchTagAlways'
|
||||
|
||||
"Javascript
|
||||
Plugin 'pangloss/vim-javascript'
|
||||
Plug 'pangloss/vim-javascript'
|
||||
|
||||
" Tex
|
||||
Plugin 'lervag/vimtex'
|
||||
Plug 'lervag/vimtex'
|
||||
|
||||
"Go
|
||||
Plugin 'fatih/vim-go'
|
||||
Plug 'fatih/vim-go'
|
||||
|
||||
"Macdown (only on macOS)
|
||||
"if has("macunix")
|
||||
"Plug 'hashrocket/vim-macdown'
|
||||
"endif
|
||||
" Comments
|
||||
Plug 'scrooloose/nerdcommenter'
|
||||
|
||||
" Surround
|
||||
Plug 'tpope/vim-surround'
|
||||
|
||||
endif
|
||||
|
||||
call plug#end()
|
||||
|
||||
" Run PlugInstall if there are missing plugins
|
||||
autocmd VimEnter * if len(filter(values(g:plugs), '!isdirectory(v:val.dir)'))
|
||||
\| PlugInstall --sync | source $MYVIMRC
|
||||
\| endif
|
||||
|
||||
|
||||
call vundle#end()
|
||||
filetype plugin indent on
|
||||
set cinkeys-=0#
|
||||
|
||||
" Terminal emulator settings
|
||||
set t_Co=256
|
||||
"set term=screen-256color
|
||||
set termguicolors
|
||||
|
||||
" Color configuration
|
||||
colorscheme badwolf " some color ..
|
||||
try
|
||||
source ~/.config/nvim/scheme.vim
|
||||
catch
|
||||
" Ignore non existing file
|
||||
endtry
|
||||
highlight Comment cterm=italic gui=italic
|
||||
syntax enable " enable syntax processing
|
||||
|
||||
" Disable annoying bell
|
||||
@@ -88,7 +143,8 @@ set modeline
|
||||
let mapleader = "\<Space>" " Make space the leader key
|
||||
nnoremap <Leader>w :w<CR>| " Write file
|
||||
nnoremap <Leader>q :q<CR>| " Close file
|
||||
nnoremap <Leader>s :w !sudo tee %<CR>L<CR>
|
||||
nnoremap <Leader>s :w !sudo -A tee %<CR>L<CR>
|
||||
cmap w!! w !sudo -A tee > /dev/null %
|
||||
|
||||
nmap <Leader><Leader> V| " Change to visual line mode
|
||||
map q: :q| " No command history
|
||||
@@ -100,14 +156,23 @@ nmap <Leader>mt :tab sp<CR> | " maximize window to new tab
|
||||
nmap <Leader>. <C-w>= | " Split windows equally
|
||||
map gb :bnext<CR>
|
||||
map gB :bNext<CR>
|
||||
if !exists('g:vscode')
|
||||
call submode#enter_with('grow/shrink', 'n', '', '<Leader>r', '<Nop>')
|
||||
call submode#map('grow/shrink', 'n', '', '+', '<C-w>+')
|
||||
call submode#map('grow/shrink', 'n', '', '-', '<C-w>-')
|
||||
call submode#map('grow/shrink', 'n', '', '<', '<C-w><')
|
||||
call submode#map('grow/shrink', 'n', '', '>', '<C-w>>')
|
||||
endif
|
||||
set splitbelow
|
||||
set splitright
|
||||
|
||||
" Delete without copying
|
||||
nnoremap <leader>d "_d
|
||||
xnoremap <leader>d "_d
|
||||
nnoremap <leader>x "_x
|
||||
xnoremap <leader>x "_x
|
||||
xnoremap <leader>p "_dP
|
||||
|
||||
"disable submode timeouts:
|
||||
let g:submode_timeout = 0
|
||||
" don't consume submode-leaving key
|
||||
@@ -177,6 +242,37 @@ nmap <Leader>t :call TextWrapToggle()<CR>
|
||||
"augroup END
|
||||
|
||||
"Copying
|
||||
if !exists('g:vscode')
|
||||
lua << EOF
|
||||
vim.g.clipboard = {
|
||||
name = 'OSC 52',
|
||||
copy = {
|
||||
['+'] = require('vim.ui.clipboard.osc52').copy('+'),
|
||||
['*'] = require('vim.ui.clipboard.osc52').copy('*'),
|
||||
},
|
||||
paste = {
|
||||
['+'] = require('vim.ui.clipboard.osc52').paste('+'),
|
||||
['*'] = require('vim.ui.clipboard.osc52').paste('*'),
|
||||
},
|
||||
}
|
||||
if vim.env.TMUX ~= nil then
|
||||
local copy = {'tmux', 'load-buffer', '-w', '-'}
|
||||
local paste = {'bash', '-c', 'tmux refresh-client -l && sleep 0.05 && tmux save-buffer -'}
|
||||
vim.g.clipboard = {
|
||||
name = 'tmux',
|
||||
copy = {
|
||||
['+'] = copy,
|
||||
['*'] = copy,
|
||||
},
|
||||
paste = {
|
||||
['+'] = paste,
|
||||
['*'] = paste,
|
||||
},
|
||||
cache_enabled = 0,
|
||||
}
|
||||
end
|
||||
EOF
|
||||
endif
|
||||
set clipboard=unnamedplus,unnamed " Copy/Paste
|
||||
|
||||
" Airline
|
||||
@@ -189,9 +285,12 @@ nmap <C-]> <C-w><C-]><C-w>T
|
||||
|
||||
" YouCompleteMe
|
||||
let g:ycm_collect_identifiers_from_tags_files = 1 " Read from tag files
|
||||
let g:ycm_global_ycm_extra_conf = '~/.config/nvim/.ycm_extra_conf.py' " Standard conf
|
||||
let g:ycm_global_ycm_extra_conf = expand('~/.config/nvim/.ycm_extra_conf.py') " Standard conf
|
||||
let g:ycm_enable_diagnostic_signs = 0 " Do not show semantic error bar
|
||||
let g:ycm_server_python_interpreter = 'python'
|
||||
let g:ycm_server_python_interpreter=g:python_interpreter
|
||||
let g:ycm_python_interpreter_path=g:python_interpreter
|
||||
" Enable virtualenv autocompletion
|
||||
let g:ycm_python_binary_path = 'python3'
|
||||
let g:ycm_key_list_select_completion = ['<C-j>', '<C-n>', '<Down>']
|
||||
let g:ycm_key_list_previous_completion = ['<C-k>', '<C-p>', '<Up>']
|
||||
|
||||
@@ -199,14 +298,14 @@ let g:ycm_key_list_previous_completion = ['<C-k>', '<C-p>', '<Up>']
|
||||
let g:easytags_async = 1
|
||||
|
||||
" make
|
||||
autocmd QuickFixCmdPre make set cmdheight=2
|
||||
set switchbuf=split
|
||||
"autocmd QuickFixCmdPre make set cmdheight=2
|
||||
"autocmd QuickFixCmdPost make nested cwindow "Open the quickfix window
|
||||
"autocmd QuickFixCmdPost make nested lwindow "Change to the quickfix window
|
||||
set switchbuf=split
|
||||
nmap <F9> :silent! make<CR>:redraw!<CR>
|
||||
nmap <Leader>m :silent! make<CR>:redraw!<CR>
|
||||
nmap <Leader>x :silent! make ex<CR>:redraw!<CR>
|
||||
imap <F9> <ESC>:make<CR>:redraw!<CR>i
|
||||
"nmap <F9> :silent! make<CR>:redraw!<CR>
|
||||
"nmap <Leader>m :silent! make<CR>:redraw!<CR>
|
||||
"nmap <Leader>x :silent! make ex<CR>:redraw!<CR>
|
||||
"imap <F9> <ESC>:make<CR>:redraw!<CR>i
|
||||
|
||||
" vim-templates config-file
|
||||
try
|
||||
@@ -229,6 +328,18 @@ let g:UltiSnipsJumpBackwardTrigger="<s-tab>"
|
||||
let g:UltiSnipsEditSplit="vertical"
|
||||
set rtp+=~/.config/nvim/my-snippets
|
||||
|
||||
" Folding
|
||||
set foldmethod=indent
|
||||
set foldlevel=100
|
||||
" Use F9 or <Leader>z to toggle folding
|
||||
inoremap <F9> <C-O>za
|
||||
nnoremap <F9> za
|
||||
onoremap <F9> <C-C>za
|
||||
vnoremap <F9> zf
|
||||
nnoremap <Leader>z za
|
||||
onoremap <Leader>z <C-C>za
|
||||
vnoremap <Leader>z zf
|
||||
|
||||
try
|
||||
source ~/.config/nvim/.vimrc_config_expand_region
|
||||
catch
|
||||
|
||||
2
nvim/scheme.vim.template
Normal file
2
nvim/scheme.vim.template
Normal file
@@ -0,0 +1,2 @@
|
||||
set background=dark
|
||||
colorscheme badwolf
|
||||
14
push.sh
14
push.sh
@@ -1,14 +0,0 @@
|
||||
#! /bin/sh
|
||||
#
|
||||
# update.sh
|
||||
# Copyright (C) 2017 Fabian Ising <fabian@murgi.de>
|
||||
#
|
||||
# Distributed under terms of the Apache v2.0 license.
|
||||
#
|
||||
|
||||
git pull
|
||||
|
||||
git subtree push --prefix=i3 i3 master
|
||||
git subtree push --prefix=tmux tmux master
|
||||
git subtree push --prefix=zsh zsh master
|
||||
git subtree push --prefix=vim vim master
|
||||
@@ -5,14 +5,17 @@
|
||||
#
|
||||
# Distributed under terms of the MIT license.
|
||||
#
|
||||
set -e
|
||||
|
||||
sudo pacman --needed -Sy archlinux-keyring --noconfirm
|
||||
sudo pacman --needed -Syu --noconfirm
|
||||
yes | sudo pacman --needed -Sy vte3-ng
|
||||
sudo pacman --needed -Sy base-devel xorg xorg-xinit gnome gnome-extra neovim zsh tmux openssh termite powerline powerline-fonts i3 rofi nitrogen python-pip --noconfirm
|
||||
sudo pacman --needed -Sy base-devel gnome neovim zsh tmux openssh alacritty powerline-fonts python-pip python-pynvim --noconfirm
|
||||
|
||||
./clone_and_link.sh
|
||||
cp zsh/.powerline_config_arch.example zsh/.powerline_config
|
||||
cp vim/.vimrc_config_powerline_arch.example vim/.vimrc_config_powerline
|
||||
./copy_fonts_arch.sh
|
||||
|
||||
cp $PWD/nvim/scheme.vim.template $PWD/nvim/scheme.vim
|
||||
cp $PWD/.config/alacritty/schemes.yml.template $PWD/.config/alacritty/schemes.yml
|
||||
if [ $SHELL != "/bin/zsh" ]; then
|
||||
chsh -s /usr/bin/zsh;
|
||||
fi
|
||||
@@ -28,3 +31,4 @@ done
|
||||
for filename in vim/.*_arch.example; do
|
||||
cp $filename ${filename:0:-13}
|
||||
done
|
||||
echo "You should now start tmux (and zsh) and nvim for automatic plugin installation."
|
||||
|
||||
35
setup_mac.sh
Executable file
35
setup_mac.sh
Executable file
@@ -0,0 +1,35 @@
|
||||
#! /bin/zsh
|
||||
#
|
||||
# setup_mac.sh
|
||||
# Copyright (C) 2022 fabian <fabian@FordPrefect.home>
|
||||
#
|
||||
# Distributed under terms of the MIT license.
|
||||
#
|
||||
|
||||
brew install neovim tmux alacritty coreutils cmake golang npm virtualenvwrapper
|
||||
source /opt/homebrew/bin/virtualenvwrapper.sh
|
||||
mkvirtualenv neovim
|
||||
pip3 install pynvim
|
||||
npm install -g neovim
|
||||
echo For alacritty to work seemlessly with tmux, we will have to add '/usr/local/bin'\
|
||||
to the path. This will require your root password.
|
||||
sudo launchctl config user path /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
|
||||
cp $PWD/nvim/scheme.vim.template $PWD/nvim/scheme.vim
|
||||
cp $PWD/.config/alacritty/schemes.yml.template $PWD/.config/alacritty/schemes.yml
|
||||
./clone_and_link_mac.sh
|
||||
|
||||
for filename in zsh/.*_mac.example(N); do
|
||||
gln -Tsvf $PWD/$filename $PWD/${filename:0:-12}
|
||||
done
|
||||
|
||||
for filename in tmux/.*_mac.example(N); do
|
||||
gln -Tsvf $PWD/$filename $PWD/${filename:0:-12}
|
||||
done
|
||||
|
||||
for filename in vim/.*_mac.example(N); do
|
||||
gln -Tsvf $PWD/$filename $PWD/${filename:0:-12}
|
||||
done
|
||||
|
||||
open fonts/*.ttf
|
||||
|
||||
echo "You should now start tmux (and zsh) and nvim for automatic plugin installation."
|
||||
@@ -1,13 +0,0 @@
|
||||
#! /bin/sh
|
||||
#
|
||||
# setup_remotes.sh
|
||||
# Copyright (C) 2017 Fabian Ising <fabian@murgi.de>
|
||||
#
|
||||
# Distributed under terms of the Apache v2.0 license.
|
||||
#
|
||||
|
||||
git remote add i3 git@vcs.murgi.de:dotfiles_fabian/i3config.git
|
||||
git remote add tmux git@vcs.murgi.de:dotfiles_fabian/tmux.git
|
||||
git remote add tmux git@vcs.murgi.de:dotfiles_fabian/tmux.git
|
||||
git remote add vim git@vcs.murgi.de:dotfiles_fabian/vim.git
|
||||
git remote add zsh git@vcs.murgi.de:dotfiles_fabian/zsh.git
|
||||
1
tmux/.gitignore
vendored
1
tmux/.gitignore
vendored
@@ -1,5 +1,4 @@
|
||||
.tmux_config_*
|
||||
!.tmux_config_*.example
|
||||
plugins/
|
||||
!plugins/tpm
|
||||
*.log
|
||||
|
||||
3
tmux/.gitmodules
vendored
3
tmux/.gitmodules
vendored
@@ -1,3 +0,0 @@
|
||||
[submodule "plugins/tpm"]
|
||||
path = plugins/tpm
|
||||
url = https://github.com/tmux-plugins/tpm.git
|
||||
@@ -1,4 +1,4 @@
|
||||
set-option -g default-shell /bin/zsh
|
||||
bind -Tcopy-mode-vi y send -X copy-pipe "pbcopy" \; display-message "copied to system clipboard"
|
||||
bind C-p run "tmux set-buffer \"$pbpaste\"; tmux paste-buffer"
|
||||
bind C-y run "tmux save-buffer - | pbcopy"
|
||||
#bind -Tcopy-mode-vi y send -X copy-pipe "pbcopy" \; display-message "copied to system clipboard"
|
||||
#bind C-p run "tmux set-buffer \"$pbpaste\"; tmux paste-buffer"
|
||||
#bind C-y run "tmux save-buffer - | pbcopy"
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
set-environment -g PATH "/usr/local/bin:/bin:/usr/bin"
|
||||
set -g default-terminal "xterm-256color"
|
||||
set-environment -g PATH "/usr/local/bin:/bin:/usr/bin:/opt/homebrew/bin"
|
||||
set -g default-terminal "tmux-256color"
|
||||
set -sa terminal-features ",xterm-256color:RGB"
|
||||
|
||||
set -g history-limit 100000
|
||||
set -g history-limit 20000
|
||||
|
||||
# Remap prefix
|
||||
unbind C-b
|
||||
@@ -10,6 +11,19 @@ bind-key C-a send-prefix
|
||||
bind-key -n C-b send-keys C-b
|
||||
#bind-key -n C-b send-prefix
|
||||
|
||||
# Use F12 to toggle hotekys on/off for nested remote tmux sessions
|
||||
bind -T root F12 \
|
||||
set prefix None \;\
|
||||
set key-table off \;\
|
||||
set status-style "fg=colour245,bg=colour238"\;\
|
||||
refresh-client -S
|
||||
|
||||
bind -T off F12 \
|
||||
set -u prefix \;\
|
||||
set -u key-table \;\
|
||||
set -u status-style \;\
|
||||
refresh-client -S
|
||||
|
||||
setw -g mode-keys vi
|
||||
set-option -g status-keys vi
|
||||
|
||||
@@ -33,15 +47,14 @@ bind k clear-history\; display "History cleared"
|
||||
|
||||
bind-key a set-window-option synchronize-panes
|
||||
|
||||
bind r source-file ~/.tmux.conf\; display "Conf reloaded!"
|
||||
bind r source-file ~/.tmux.conf\; display "Tmux conf reloaded!"
|
||||
|
||||
set -g mouse on
|
||||
set-option -g focus-events on
|
||||
|
||||
# Vi copypaste mode
|
||||
set-window-option -g mode-keys vi
|
||||
bind-key -Tcopy-mode-vi 'v' send -X begin-selection
|
||||
bind-key -Tcopy-mode-vi 'y' send -X copy-selection
|
||||
bind -Tcopy-mode-vi y send -X copy-pipe "xclip -i -sel p -f | xclip -i -sel c" \; display-message "copied to system clipboard"
|
||||
#bind-key -Tcopy-mode-vi 'v' send -X begin-selection
|
||||
#bind-key -Tcopy-mode-vi 'y' send -X copy-selection
|
||||
#bind -Tcopy-mode-vi y send -X copy-pipe "xclip -i -sel p -f | xclip -i -sel c" \; display-message "copied to system clipboard"
|
||||
|
||||
# Smart pane switching with awareness of vim splits
|
||||
# See: https://github.com/christoomey/vim-tmux-navigator
|
||||
@@ -55,15 +68,24 @@ bind -n C-l if-shell "$is_vim" "send-keys C-l" "select-pane -R"
|
||||
bind-key C-x send-keys C-x
|
||||
bind-key C-o send-keys C-o
|
||||
|
||||
# Copying
|
||||
# Copying - Most of this is done in tmux-yank!
|
||||
# move x clipboard into tmux paste buffer
|
||||
bind C-p run "tmux set-buffer \"$(xclip -o)\"; tmux paste-buffer"
|
||||
#bind C-p run "tmux set-buffer \"$(xclip -o)\"; tmux paste-buffer"
|
||||
# move tmux copy buffer into x clipboard
|
||||
set-option -s set-clipboard on
|
||||
# Vi copypaste mode
|
||||
set-window-option -g mode-keys vi
|
||||
set -g allow-passthrough on
|
||||
set-option -g set-clipboard on
|
||||
set -g @yank_with_mouse off
|
||||
set -g @yank_action 'copy-pipe'
|
||||
bind-key -Tcopy-mode-vi 'C-right' send -X next-word
|
||||
bind-key -Tcopy-mode-vi 'C-left' send -X previous-word
|
||||
unbind-key -T copy-mode-vi MouseDragEnd1Pane
|
||||
|
||||
if '[ `uname` == Darwin ]' \
|
||||
'source-file ~/.tmux/.mac_config'
|
||||
source-file ~/.tmux/.tmux_config_powerline
|
||||
|
||||
set-option -g set-titles on
|
||||
|
||||
|
||||
# Escape timeout for nvim
|
||||
@@ -72,17 +94,19 @@ set -sg escape-time 10
|
||||
|
||||
# List of plugins
|
||||
set -g @plugin 'tmux-plugins/tpm'
|
||||
#set -g @plugin 'tmux-plugins/tmux-sensible'
|
||||
set -g @plugin 'tmux-plugins/tmux-sidebar'
|
||||
set -g @plugin 'tmux-plugins/tmux-open'
|
||||
set -g @plugin 'tmux-plugins/tmux-yank'
|
||||
set -g @plugin 'jimeh/tmux-themepack'
|
||||
set -g @themepack 'powerline/double/blue'
|
||||
set -g @plugin 'nhdaly/tmux-better-mouse-mode'
|
||||
set -g @themepack 'powerline/double/green'
|
||||
|
||||
# Other examples:
|
||||
# set -g @plugin 'github_username/plugin_name'
|
||||
# set -g @plugin 'git@github.com/user/plugin'
|
||||
# set -g @plugin 'git@bitbucket.com/user/plugin'
|
||||
set -g @tpm-clean 'u'
|
||||
|
||||
setenv -g TMUX_PLUGIN_MANAGER_PATH "$HOME/.tmux/plugins/"
|
||||
|
||||
if "test ! -d ~/.tmux/plugins/tpm" \
|
||||
"run 'git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm && \
|
||||
~/.tmux/plugins/tpm/bin/install_plugins'"
|
||||
|
||||
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
|
||||
run '~/.tmux/plugins/tpm/tpm' # >> /tmp/tpm_out 2>&1 >> /tmp/tpm_out'
|
||||
run -b '~/.tmux/plugins/tpm/tpm || true'
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
source /usr/lib/python3.7/site-packages/powerline/bindings/tmux/powerline.conf
|
||||
@@ -1 +0,0 @@
|
||||
source /usr/local/lib/python2.7/dist-packages/powerline/bindings/tmux/powerline.conf
|
||||
@@ -1,2 +0,0 @@
|
||||
source $HOME/.local/lib/python3.9/site-packages/powerline/bindings/tmux/powerline.conf
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
source '/usr/local/lib/python3.6/site-packages/powerline/bindings/tmux/powerline.conf'
|
||||
@@ -1,11 +0,0 @@
|
||||
#! /bin/sh
|
||||
#
|
||||
# test.sh
|
||||
# Copyright (C) 2018 fabian <fabian@FordPrefect.local>
|
||||
#
|
||||
# Distributed under terms of the MIT license.
|
||||
#
|
||||
|
||||
|
||||
export PATH=$PATH:/usr/local/bin
|
||||
tmux
|
||||
Submodule tmux/plugins/tpm deleted from 26d9ace1b4
@@ -1 +0,0 @@
|
||||
/Users/fabian/Masterarbeit/thesis 40
|
||||
13
tmux/tmux_attach.sh
Executable file
13
tmux/tmux_attach.sh
Executable file
@@ -0,0 +1,13 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# tmux-attach - attach to first unattached session or
|
||||
# create new session if none are found
|
||||
#
|
||||
N=$(tmux ls | grep -v attached | head -1 | cut -d: -f1)
|
||||
|
||||
if [[ ! -z $N ]]
|
||||
then
|
||||
ATTACH_OPTS="attach -t $N"
|
||||
fi
|
||||
|
||||
exec tmux $ATTACH_OPTS
|
||||
14
update.sh
14
update.sh
@@ -1,14 +0,0 @@
|
||||
#! /bin/sh
|
||||
#
|
||||
# update.sh
|
||||
# Copyright (C) 2017 Fabian Ising <fabian@murgi.de>
|
||||
#
|
||||
# Distributed under terms of the Apache v2.0 license.
|
||||
#
|
||||
|
||||
git pull
|
||||
|
||||
git subtree pull --prefix=i3 i3 master --squash
|
||||
git subtree pull --prefix=tmux tmux master --squash
|
||||
git subtree pull --prefix=zsh zsh master --squash
|
||||
git subtree pull --prefix=vim vim master --squash
|
||||
77
update_mac.sh
Executable file
77
update_mac.sh
Executable file
@@ -0,0 +1,77 @@
|
||||
#!/bin/bash
|
||||
|
||||
ARCH=`uname -m`
|
||||
if [[ $ARCH == "arm64" ]]; then
|
||||
PREFIX="/opt/homebrew/"
|
||||
else
|
||||
PREFIX="/usr/local/"
|
||||
fi
|
||||
|
||||
function set_permissions {
|
||||
echo "----------"
|
||||
echo "Disabling Quarantine for Casks ..."
|
||||
echo "----------"
|
||||
sudo find $PREFIX/Caskroom -name *.app -exec bash -c "xattr -d com.apple.quarantine {} 2> /dev/null" \;
|
||||
sudo find $PREFIX/Caskroom -type f -perm +111 -exec bash -c "xattr -d com.apple.quarantine {} 2> /dev/null" \;
|
||||
sudo find /Applications/ -name *.app -exec bash -c 'xattr -d com.apple.quarantine "{}" 2> /dev/null' \;
|
||||
sudo find /Applications/ -type f -perm +111 -exec bash -c 'xattr -d com.apple.quarantine "{}" 2> /dev/null' \;
|
||||
}
|
||||
|
||||
function software_update {
|
||||
echo "----------"
|
||||
echo "Running software update"
|
||||
echo "----------"
|
||||
softwareupdate --all --install --force
|
||||
}
|
||||
|
||||
function update_brew {
|
||||
echo "----------"
|
||||
echo "Updating brew software"
|
||||
echo "----------"
|
||||
brew update
|
||||
sudo -u $USER brew upgrade
|
||||
echo "----------"
|
||||
echo "Updating casks"
|
||||
echo "----------"
|
||||
sudo -u $USER brew upgrade --cask --greedy --verbose
|
||||
}
|
||||
|
||||
function cleanup {
|
||||
echo "----------"
|
||||
echo "Running cleanup"
|
||||
echo "----------"
|
||||
sudo -u $USER brew cleanup -s
|
||||
}
|
||||
|
||||
function diagnostics {
|
||||
echo "----------"
|
||||
echo "Running diagnostics"
|
||||
echo "----------"
|
||||
brew doctor
|
||||
brew missing
|
||||
}
|
||||
if [[ $* == *--help* ]]; then
|
||||
echo "Usage: $0 [option]"
|
||||
echo "Default options: --brew-update --cleanup --diagnostics"
|
||||
echo -e "Options:\n\t--brew-update\n\t--cleanup\n\t--diagnostics\n\t--permission-fix\n\t--system-update"
|
||||
fi
|
||||
|
||||
if [[ -z $* ]]; then
|
||||
set -- "$*" "--brew-update --cleanup --diagnostics"
|
||||
fi
|
||||
|
||||
if [[ $* == *--system-update* ]]; then
|
||||
software_update
|
||||
fi
|
||||
if [[ $* == *--brew-update* ]]; then
|
||||
update_brew
|
||||
fi
|
||||
if [[ $* == *--cleanup* ]]; then
|
||||
cleanup
|
||||
fi
|
||||
if [[ $* == *--diagnostics* ]]; then
|
||||
diagnostics
|
||||
fi
|
||||
if [[ $* == *--permission-fix* ]]; then
|
||||
set_permissions
|
||||
fi
|
||||
6
virtualenvwrapper/postactivate
Normal file
6
virtualenvwrapper/postactivate
Normal file
@@ -0,0 +1,6 @@
|
||||
#!/bin/zsh
|
||||
# This hook is sourced after every virtualenv is activated.
|
||||
|
||||
if [[ -n "$TMUX" ]]; then
|
||||
tmux set-environment VIRTUAL_ENV $VIRTUAL_ENV
|
||||
fi
|
||||
6
virtualenvwrapper/postdeactivate
Normal file
6
virtualenvwrapper/postdeactivate
Normal file
@@ -0,0 +1,6 @@
|
||||
#!/bin/zsh
|
||||
# This hook is sourced after every virtualenv is deactivated.
|
||||
|
||||
if [[ -n "$TMUX" ]]; then
|
||||
tmux set-environment -r VIRTUAL_ENV
|
||||
fi
|
||||
4
virtualenvwrapper/postmkvirtualenv
Normal file
4
virtualenvwrapper/postmkvirtualenv
Normal file
@@ -0,0 +1,4 @@
|
||||
#!/bin/zsh
|
||||
# This hook is sourced after a new virtualenv is activated.
|
||||
|
||||
pip3 install neovim
|
||||
3
zsh/.gitignore
vendored
3
zsh/.gitignore
vendored
@@ -1,2 +1,5 @@
|
||||
.*_config*
|
||||
!.*_config*.example
|
||||
.p10k.zsh
|
||||
.p10k.mac.zsh
|
||||
antigen/
|
||||
|
||||
3
zsh/.gitmodules
vendored
3
zsh/.gitmodules
vendored
@@ -1,3 +0,0 @@
|
||||
[submodule "antigen"]
|
||||
path = antigen
|
||||
url = https://github.com/zsh-users/antigen.git
|
||||
@@ -1,13 +0,0 @@
|
||||
export LC_ALL=en_US.UTF-8
|
||||
export LANG=en_US.UTF-8
|
||||
export POWERLINE_CONFIG_COMMAND=/usr/local/bin/powerline-config
|
||||
export JAVA_HOME=`/usr/libexec/java_home -v 1.8`
|
||||
|
||||
# Set path to work with pycharm ...
|
||||
[[ "$PATH" =~ /usr/local/bin ]] || export PATH=$PATH:/usr/local/bin
|
||||
PATH="/usr/local/opt/coreutils/libexec/gnubin:$PATH"
|
||||
|
||||
test -e "${HOME}/.iterm2_shell_integration.zsh" && source "${HOME}/.iterm2_shell_integration.zsh"
|
||||
|
||||
# Research
|
||||
export PATH="/Users/fabian/Labor/Research/code_signing/02-tools:$PATH"
|
||||
31
zsh/.mac_config.zsh_mac.example
Normal file
31
zsh/.mac_config.zsh_mac.example
Normal file
@@ -0,0 +1,31 @@
|
||||
export LC_ALL=en_US.UTF-8
|
||||
export LANG=en_US.UTF-8
|
||||
export JAVA_HOME=`/usr/libexec/java_home`
|
||||
defaults write .GlobalPreferences AppleLocale en_DE
|
||||
|
||||
# Set path to work with pycharm ...
|
||||
# [[ "$PATH" =~ /usr/local/bin ]] || export PATH=$PATH:/usr/local/bin
|
||||
|
||||
ARCH=`uname -m`
|
||||
if [[ $ARCH == "arm64" ]]; then
|
||||
HOMEBREWPREFIX="/opt/homebrew"
|
||||
else
|
||||
HOMEBREWPREFIX="/usr/local"
|
||||
fi
|
||||
export PATH="$HOMEBREWPREFIX/opt/coreutils/libexec/gnubin:$HOME/.local/bin:$HOMEBREWPREFIX/bin:$PATH:$HOMEBREWPREFIX/sbin"
|
||||
|
||||
# test -e "${HOME}/.iterm2_shell_integration.zsh" && source "${HOME}/.iterm2_shell_integration.zsh"
|
||||
|
||||
# Research
|
||||
# export PATH="/Users/fabian/Labor/Research/code_signing/02-tools:$PATH"
|
||||
alias tailscale=/Applications/Tailscale.app/Contents/MacOS/Tailscale
|
||||
alias virt-manager="LD_PRELOAD=/opt/homebrew/Cellar/glib/2.86.0/lib virt-manager"
|
||||
|
||||
HOMEBREW_COMMAND_NOT_FOUND_HANDLER="$(brew --repository)/Library/Homebrew/command-not-found/handler.sh"
|
||||
if [ -f "$HOMEBREW_COMMAND_NOT_FOUND_HANDLER" ]; then
|
||||
source "$HOMEBREW_COMMAND_NOT_FOUND_HANDLER";
|
||||
fi
|
||||
|
||||
export DYLD_FALLBACK_LIBRARY_PATH="$HOMEBREW_PREFIX/lib:${DYLD_FALLBACK_LIBRARY_PATH}"
|
||||
export GI_TYPELIB_PATH="$HOMEBREW_PREFIX/lib/girepository-1.0:${GI_TYPELIB_PATH}"
|
||||
export PKG_CONFIG_PATH="$HOMEBREW_PREFIX/lib/pkgconfig:$HOMEBREW_PREFIX/share/pkgconfig:${PKG_CONFIG_PATH}"
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1 +0,0 @@
|
||||
source /usr/lib/python3.8/site-packages/powerline/bindings/zsh/powerline.zsh
|
||||
@@ -1 +0,0 @@
|
||||
source /usr/local/lib/python2.7/dist-packages/powerline/bindings/zsh/powerline.zsh
|
||||
@@ -1 +0,0 @@
|
||||
source $HOME/.local/lib/python3.9/site-packages/powerline/bindings/zsh/powerline.zsh
|
||||
15
zsh/.virtual_env_config.zsh_mac.example
Normal file
15
zsh/.virtual_env_config.zsh_mac.example
Normal file
@@ -0,0 +1,15 @@
|
||||
ARCH=`uname -m`
|
||||
if [[ $ARCH == "arm64" ]]; then
|
||||
PREFIX="/opt/homebrew"
|
||||
else
|
||||
PREFIX="/usr/local"
|
||||
fi
|
||||
|
||||
export WORKON_HOME=~/python-envs
|
||||
export VIRTUALENVWRAPPER_VIRTUALENV=$PREFIX/bin/virtualenv
|
||||
mkdir -p $WORKON_HOME
|
||||
source $PREFIX/bin/virtualenvwrapper.sh
|
||||
|
||||
if [ -n "$VIRTUAL_ENV" ] && [[ -f "$VIRTUAL_ENV/bin/activate" ]]; then
|
||||
source $VIRTUAL_ENV/bin/activate;
|
||||
fi
|
||||
29
zsh/.zsh_plugins.txt
Normal file
29
zsh/.zsh_plugins.txt
Normal file
@@ -0,0 +1,29 @@
|
||||
# Load OMZ plugins
|
||||
ohmyzsh/ohmyzsh
|
||||
ohmyzsh/ohmyzsh path:lib
|
||||
ohmyzsh/ohmyzsh path:plugins/git
|
||||
ohmyzsh/ohmyzsh path:plugins/golang
|
||||
ohmyzsh/ohmyzsh path:plugins/ssh-agent
|
||||
ohmyzsh/ohmyzsh path:plugins/pip
|
||||
ohmyzsh/ohmyzsh path:plugins/python
|
||||
ohmyzsh/ohmyzsh path:plugins/brew
|
||||
ohmyzsh/ohmyzsh path:plugins/virtualenv
|
||||
ohmyzsh/ohmyzsh path:plugins/python
|
||||
ohmyzsh/ohmyzsh path:plugins/command-not-found
|
||||
ohmyzsh/ohmyzsh path:plugins/docker-compose
|
||||
ohmyzsh/ohmyzsh path:plugins/docker
|
||||
ohmyzsh/ohmyzsh path:plugins/vi-mode
|
||||
|
||||
|
||||
romkatv/powerlevel10k
|
||||
zsh-users/zsh-syntax-highlighting
|
||||
zsh-users/zsh-autosuggestions
|
||||
zsh-users/zsh-completions
|
||||
zsh-users/zsh-history-substring-search
|
||||
urbainvaes/fzf-marks
|
||||
zdharma-continuum/fast-syntax-highlighting
|
||||
# Select with shift
|
||||
jirutka/zsh-shift-select
|
||||
|
||||
# Initialize completions
|
||||
belak/zsh-utils path:completion
|
||||
152
zsh/.zshrc
152
zsh/.zshrc
@@ -1,74 +1,69 @@
|
||||
# Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc.
|
||||
# Initialization code that may require console input (password prompts, [y/n]
|
||||
# confirmations, etc.) must go above this block; everything else may go below.
|
||||
#if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
|
||||
#source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
|
||||
#fi
|
||||
export PATH="$HOME/.local/bin:$PATH"
|
||||
|
||||
[[ -f ~/.zsh/.powerline_config ]] && source ~/.zsh/.powerline_config
|
||||
[[ -f ~/.zsh/.user_config ]] && source ~/.zsh/.user_config
|
||||
[[ -f ~/.zsh/.virtual_env_config.zsh ]] && source ~/.zsh/.virtual_env_config.zsh
|
||||
[[ -f /usr/share/doc/find-the-command/ftc.zsh ]] && source /usr/share/doc/find-the-command/ftc.zsh
|
||||
[[ -f ~/.zsh/.local_config ]] && source ~/.zsh/.local_config
|
||||
|
||||
# Load Antigen
|
||||
setopt interactivecomments
|
||||
setopt HIST_IGNORE_SPACE
|
||||
source ~/.zsh/antigen/antigen.zsh
|
||||
update_dotfiles() {
|
||||
cd ~/dotfiles || return
|
||||
if git fetch --dry-run 2>&1 | grep -q .; then
|
||||
git pull > /dev/null 2>&1
|
||||
fi
|
||||
}
|
||||
|
||||
update_dotfiles 2>&1 &!
|
||||
export LC_OSC52=1
|
||||
|
||||
# Load Antidote
|
||||
mkdir -p ${ZDOTDIR:-~}/.cache/zsh
|
||||
static_file=${ZDOTDIR:-~}/.cache/zsh/.zsh_plugins.zsh
|
||||
plugins_txt=${ZDOTDIR:-~}/.zsh/.zsh_plugins.txt
|
||||
# clone antidote if necessary
|
||||
if ! [[ -e ${ZDOTDIR:-~}/.antidote ]]; then
|
||||
git clone https://github.com/mattmc3/antidote.git ${ZDOTDIR:-~}/.antidote
|
||||
fi
|
||||
|
||||
zstyle ':completion:*:ssh:*' hosts off
|
||||
zstyle ':completion:*:scp:*' hosts off
|
||||
|
||||
# Run rehash for external commands
|
||||
zstyle ":completion:*:commands" rehash 1
|
||||
# source antidote and load plugins from `${ZDOTDIR:-~}/.zsh_plugins.txt`
|
||||
source ${ZDOTDIR:-~}/.antidote/antidote.zsh
|
||||
antidote load ${plugins_txt} ${static_file}
|
||||
|
||||
setopt interactivecomments
|
||||
|
||||
# History options
|
||||
HISTSIZE=100000 # Set the amount of lines you want saved
|
||||
SAVEHIST=100000 # This is required to actually save them, needs to match with HISTSIZE
|
||||
setopt EXTENDED_HISTORY # Write the history file in the ":start:elapsed;command" format.
|
||||
setopt INC_APPEND_HISTORY # Write to the history file immediately, not when the shell exits.
|
||||
setopt SHARE_HISTORY # Share history between all sessions.
|
||||
setopt HIST_EXPIRE_DUPS_FIRST # Expire duplicate entries first when trimming history.
|
||||
setopt HIST_IGNORE_DUPS # Don\'t record an entry that was just recorded again.
|
||||
setopt HIST_IGNORE_ALL_DUPS # Delete old recorded entry if new entry is a duplicate.
|
||||
setopt HIST_FIND_NO_DUPS # Do not display a line previously found.
|
||||
setopt HIST_IGNORE_SPACE # Don\'t record an entry starting with a space.
|
||||
setopt HIST_SAVE_NO_DUPS # Don\'t write duplicate entries in the history file.
|
||||
setopt HIST_REDUCE_BLANKS # Remove superfluous blanks before recording entry.
|
||||
# Clear screen by ctrl+q
|
||||
bindkey '^q' clear-screen
|
||||
|
||||
# Load various lib files
|
||||
antigen use oh-my-zsh
|
||||
# Bind Ctrl-W to kill-region
|
||||
bindkey "^w" kill-region
|
||||
bindkey -v
|
||||
VI_MODE_SET_CURSOR=true
|
||||
|
||||
# Antigen Theme
|
||||
antigen theme romkatv/powerlevel10k powerlevel10k
|
||||
|
||||
# Antigen Bundles
|
||||
|
||||
antigen bundle git
|
||||
antigen bundle heroku
|
||||
#antigen bundle command-not-found
|
||||
antigen bundle go
|
||||
|
||||
# antigen bundle tmuxinator
|
||||
antigen bundle zsh-users/zsh-syntax-highlighting
|
||||
antigen bundle zsh-users/zsh-autosuggestions
|
||||
antigen bundle zsh-users/zsh-completions
|
||||
antigen bundle urbainvaes/fzf-marks
|
||||
|
||||
# For SSH, starting ssh-agent is annoying
|
||||
antigen bundle ssh-agent
|
||||
|
||||
# Python Plugins
|
||||
antigen bundle pip
|
||||
antigen bundle python
|
||||
antigen bundle virtualenv
|
||||
|
||||
antigen bundle virtualenv
|
||||
|
||||
antigen bundle "greymd/docker-zsh-completion"
|
||||
|
||||
antigen apply
|
||||
alias vim=nvim
|
||||
alias sudo='sudo '
|
||||
export EDITOR='nvim'
|
||||
export PATH="/usr/local/opt/gnu-getopt/bin:$PATH"
|
||||
export VISUAL='nvim'
|
||||
|
||||
test -e "${HOME}/.iterm2_shell_integration.zsh" && source "${HOME}/.iterm2_shell_integration.zsh"
|
||||
|
||||
|
||||
PATH="/home/fabian/perl5/bin${PATH:+:${PATH}}"; export PATH;
|
||||
PERL5LIB="/home/fabian/perl5/lib/perl5${PERL5LIB:+:${PERL5LIB}}"; export PERL5LIB;
|
||||
PERL_LOCAL_LIB_ROOT="/home/fabian/perl5${PERL_LOCAL_LIB_ROOT:+:${PERL_LOCAL_LIB_ROOT}}"; export PERL_LOCAL_LIB_ROOT;
|
||||
PERL_MB_OPT="--install_base \"/home/fabian/perl5\""; export PERL_MB_OPT;
|
||||
PERL_MM_OPT="INSTALL_BASE=/home/fabian/perl5"; export PERL_MM_OPT;
|
||||
alias ls="ls --color=always"
|
||||
export PATH="$PATH:${HOME}/Labor/tls-in-muas/starttls-research/99-Tools:/home/fabian/go/bin"
|
||||
# For ccache
|
||||
export CCACHE_CPP2=YES
|
||||
alias cgrep="grep --color=always"
|
||||
|
||||
delzip() {
|
||||
unzip -Z -1 "$@" | xargs -I{} rm -rf {}
|
||||
@@ -76,11 +71,58 @@ delzip() {
|
||||
# mitmproxy
|
||||
export MITMPROXY_SSLKEYLOGFILE="~/.mitmproxy/sslkeylogfile.txt"
|
||||
|
||||
[[ -f ~/.zsh/.mac_config ]] && source ~/.zsh/.mac_config
|
||||
[[ -f ~/.zsh/.mac_config.zsh ]] && source ~/.zsh/.mac_config.zsh
|
||||
if `which go &>/dev/null`; then
|
||||
export PATH="$PATH:$(go env GOPATH)/bin"
|
||||
export GOPATH=$(go env GOPATH)
|
||||
fi
|
||||
|
||||
if [[ -f ~/.ssh/sudo_key ]]; then
|
||||
[[ -e /tmp/sudo-agent.sock ]] || ssh-agent -a /tmp/sudo-agent.sock &> /dev/null
|
||||
SSH_AUTH_SOCK=/tmp/sudo-agent.sock ssh-add -l | grep -q `ssh-keygen -lf ~/.ssh/sudo_key | awk '{print $2}'` || SSH_AUTH_SOCK=/tmp/sudo-agent.sock ssh-add ~/.ssh/sudo_key
|
||||
fi
|
||||
|
||||
# Sudo workaround for neovim
|
||||
export SUDO_ASKPASS=$(command -v ssh-askpass)
|
||||
|
||||
# Workaround for async issues https://github.com/romkatv/powerlevel10k/issues/1554
|
||||
unset ZSH_AUTOSUGGEST_USE_ASYNC
|
||||
|
||||
# Fixate language
|
||||
export LANG="en_US.UTF-8"
|
||||
export LC_CTYPE="en_US.UTF-8"
|
||||
export TIME_STYLE="long-iso"
|
||||
|
||||
# Powerlevel 10k
|
||||
# Remove padding on right side
|
||||
ZLE_RPROMPT_INDENT=0
|
||||
|
||||
# To customize prompt, run `p10k configure` or edit ~/dotfiles/zsh/.p10k.zsh.
|
||||
[[ ! -f ~/dotfiles/zsh/.p10k.zsh ]] || source ~/dotfiles/zsh/.p10k.zsh
|
||||
function load_p10k() {
|
||||
if test -f ~/dotfiles/zsh/.p10k.mac.zsh; then
|
||||
source ~/dotfiles/zsh/.p10k.mac.zsh
|
||||
else
|
||||
[[ ! -f ~/dotfiles/zsh/.p10k.zsh ]] || source ~/dotfiles/zsh/.p10k.zsh
|
||||
fi
|
||||
}
|
||||
load_p10k
|
||||
|
||||
alias screenshot_mode='powerlevel10k_plugin_unload; export PS1="$ "; python3 ~/.config/alacritty/screenshot_mode.py on'
|
||||
alias screenshot_mode_off='prompt_powerlevel9k_setup; python3 ~/.config/alacritty/screenshot_mode.py off'
|
||||
antidote update &> /dev/null &|
|
||||
|
||||
# This speeds up pasting w/ autosuggest
|
||||
# https://github.com/zsh-users/zsh-autosuggestions/issues/238
|
||||
pasteinit() {
|
||||
OLD_SELF_INSERT=${${(s.:.)widgets[self-insert]}[2,3]}
|
||||
zle -N self-insert url-quote-magic # I wonder if you'd need `.url-quote-magic`?
|
||||
}
|
||||
|
||||
pastefinish() {
|
||||
zle -N self-insert $OLD_SELF_INSERT
|
||||
}
|
||||
zstyle :bracketed-paste-magic paste-init pasteinit
|
||||
zstyle :bracketed-paste-magic paste-finish pastefinish
|
||||
|
||||
# https://github.com/zsh-users/zsh-autosuggestions/issues/351
|
||||
ZSH_AUTOSUGGEST_CLEAR_WIDGETS+=(bracketed-paste)
|
||||
|
||||
Submodule zsh/antigen deleted from 74aa897570
Reference in New Issue
Block a user