Compare commits
91
Commits
server
...
2c0282778e
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2c0282778e | ||
|
|
1a264a66f8 | ||
|
|
38e8a9ed54 | ||
|
|
75deb4987e | ||
|
|
7b2c21ddc0 | ||
|
|
c0c05c951a | ||
|
|
53d420f979 | ||
|
|
d88d0565dc | ||
|
|
083ff173c7 | ||
|
|
85ec4e4a7b | ||
|
|
aa4250e839 | ||
|
|
dca783e4ae | ||
|
|
51249a271d | ||
|
|
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 |
@@ -0,0 +1,63 @@
|
|||||||
|
[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 = true
|
||||||
|
|
||||||
|
[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
|
||||||
|
|
||||||
|
[[keyboard.bindings]]
|
||||||
|
key = "Return"
|
||||||
|
mods = "Shift"
|
||||||
|
chars = "\u001B\r"
|
||||||
@@ -1,43 +0,0 @@
|
|||||||
import:
|
|
||||||
- ~/.config/alacritty/schemes.yml
|
|
||||||
|
|
||||||
env:
|
|
||||||
TERM: xterm-256color
|
|
||||||
font:
|
|
||||||
# The size to use.
|
|
||||||
size: 12
|
|
||||||
# The normal (roman) font face to use.
|
|
||||||
normal:
|
|
||||||
family: "MesloLGS NF"
|
|
||||||
# Style can be specified to pick a specific face.
|
|
||||||
style: Regular
|
|
||||||
bold:
|
|
||||||
family: "MesloLGS NF"
|
|
||||||
# Style can be specified to pick a specific face.
|
|
||||||
style: Bold
|
|
||||||
bold:
|
|
||||||
family: "MesloLGS NF"
|
|
||||||
# Style can be specified to pick a specific face.
|
|
||||||
style: Bold
|
|
||||||
|
|
||||||
window:
|
|
||||||
dynamic_title: true
|
|
||||||
padding:
|
|
||||||
x: 0
|
|
||||||
y: 0
|
|
||||||
|
|
||||||
scrolling:
|
|
||||||
history: 0
|
|
||||||
|
|
||||||
shell:
|
|
||||||
program: zsh
|
|
||||||
args:
|
|
||||||
- "-c"
|
|
||||||
- "$HOME/.tmux/tmux_attach.sh"
|
|
||||||
|
|
||||||
alt_send_esc: false
|
|
||||||
live_config_reload: true
|
|
||||||
|
|
||||||
key_bindings:
|
|
||||||
- { key: F, mods: Control, command: {program: "zsh", args: ["-c","python3 ~/.config/alacritty/color_switcher.py"]} }
|
|
||||||
- { key: T, mods: Command, command: {program: "alacritty", args: ["-e","zsh"]} } # Spawn alacritty without tmux
|
|
||||||
@@ -2,14 +2,15 @@
|
|||||||
|
|
||||||
import os
|
import os
|
||||||
import re
|
import re
|
||||||
|
import sys
|
||||||
|
|
||||||
|
ALACRITTY_CONFIG_FILE_NAME = "alacritty.toml"
|
||||||
CONFIG_FILE_NAME = "schemes.yml"
|
|
||||||
CONFIG_FILE_DIR = os.path.expanduser("~/.config/alacritty/")
|
CONFIG_FILE_DIR = os.path.expanduser("~/.config/alacritty/")
|
||||||
CONFIG_FILE_PATH = os.path.join(CONFIG_FILE_DIR, CONFIG_FILE_NAME)
|
ALACRITTY_CONFIG_FILE_PATH = os.path.join(CONFIG_FILE_DIR, ALACRITTY_CONFIG_FILE_NAME)
|
||||||
|
|
||||||
COLOR_SCHEME_LINE_SEARCH = "colors: \*(\S+)"
|
COLOR_SCHEME_LINE_SEARCH = r'import = \[.*\]'
|
||||||
COLOR_SCHEME_LINE_TEMPLATE = "colors: *{}\n"
|
ALACRITTY_LIGHT_THEME="solarized_light.toml"
|
||||||
|
ALACRITTY_DARK_THEME="dark_mode.toml"
|
||||||
|
|
||||||
NVIM_CONFIG_FILE_DIR = os.path.expanduser("~/.config/nvim/")
|
NVIM_CONFIG_FILE_DIR = os.path.expanduser("~/.config/nvim/")
|
||||||
NVIM_CONFIG_FILE_NAME = "scheme.vim"
|
NVIM_CONFIG_FILE_NAME = "scheme.vim"
|
||||||
@@ -18,30 +19,37 @@ 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_SEARCH = "set background=(\S+)\ncolorscheme (\S+)"
|
||||||
NVIM_COLOR_SCHEME_LINE_TEMPLATE = "set background={}\ncolorscheme {}"
|
NVIM_COLOR_SCHEME_LINE_TEMPLATE = "set background={}\ncolorscheme {}"
|
||||||
|
|
||||||
def change_alacritty_theme():
|
def change_alacritty_theme(light_mode=None):
|
||||||
with open(CONFIG_FILE_PATH, "r") as config_file:
|
with open(ALACRITTY_CONFIG_FILE_PATH, "r") as scheme_file:
|
||||||
config_file.seek(0)
|
scheme_file.seek(0)
|
||||||
lines = config_file.readlines()
|
lines = scheme_file.readlines()
|
||||||
|
|
||||||
colors_line_index = -1
|
colors_line_index = -1
|
||||||
for i, line in enumerate(lines):
|
for i, line in enumerate(lines):
|
||||||
match = re.search(COLOR_SCHEME_LINE_SEARCH, line)
|
match = re.search(COLOR_SCHEME_LINE_SEARCH, line)
|
||||||
if match is not None:
|
if match is not None:
|
||||||
current_color_scheme = match.group(1)
|
|
||||||
colors_line_index = i
|
colors_line_index = i
|
||||||
|
color_line = lines[i]
|
||||||
|
break
|
||||||
|
|
||||||
|
if light_mode is None:
|
||||||
if current_color_scheme == "dark_mode":
|
if ALACRITTY_DARK_THEME in color_line:
|
||||||
new_scheme = "solarized_light"
|
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:
|
else:
|
||||||
new_scheme = "dark_mode"
|
color_line = color_line.replace(ALACRITTY_LIGHT_THEME, ALACRITTY_DARK_THEME)
|
||||||
|
new_scheme = "dark"
|
||||||
lines[colors_line_index] = COLOR_SCHEME_LINE_TEMPLATE.format(
|
lines[colors_line_index] = color_line
|
||||||
new_scheme)
|
with open(ALACRITTY_CONFIG_FILE_PATH, "w") as scheme_file:
|
||||||
|
|
||||||
with open(CONFIG_FILE_PATH, "w") as config_file:
|
|
||||||
for line in lines:
|
for line in lines:
|
||||||
config_file.write(line)
|
scheme_file.write(line)
|
||||||
|
|
||||||
return new_scheme
|
return new_scheme
|
||||||
|
|
||||||
def change_vim_theme(light_mode=False):
|
def change_vim_theme(light_mode=False):
|
||||||
@@ -57,10 +65,13 @@ def change_vim_theme(light_mode=False):
|
|||||||
config = config_file.write(res)
|
config = config_file.write(res)
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main(light_mode=None):
|
||||||
new_theme = change_alacritty_theme()
|
new_theme = change_alacritty_theme(light_mode)
|
||||||
change_vim_theme(new_theme == "solarized_light")
|
change_vim_theme(new_theme == "light")
|
||||||
|
|
||||||
|
|
||||||
if __name__=="__main__":
|
if __name__=="__main__":
|
||||||
main()
|
if len(sys.argv) == 2:
|
||||||
|
main(sys.argv == "light")
|
||||||
|
else:
|
||||||
|
main()
|
||||||
|
|||||||
@@ -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"
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -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")
|
||||||
@@ -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,3 +1,4 @@
|
|||||||
*.swp
|
*.swp
|
||||||
tags
|
tags
|
||||||
.DS_STORE
|
.DS_STORE
|
||||||
|
__pycache__
|
||||||
|
|||||||
@@ -0,0 +1,26 @@
|
|||||||
|
.DS_Store
|
||||||
|
.localized
|
||||||
|
__MACOSX/
|
||||||
|
.AppleDouble
|
||||||
|
.LSOverride
|
||||||
|
|
||||||
|
# Resource forks
|
||||||
|
._*
|
||||||
|
|
||||||
|
# Files and directories that might appear in the root of a volume
|
||||||
|
.DocumentRevisions-V100
|
||||||
|
.fseventsd
|
||||||
|
.Spotlight-V100
|
||||||
|
.TemporaryItems
|
||||||
|
.Trashes
|
||||||
|
.VolumeIcon.icns
|
||||||
|
.com.apple.timemachine.donotpresent
|
||||||
|
.com.apple.timemachine.supported
|
||||||
|
.PKInstallSandboxManager
|
||||||
|
.PKInstallSandboxManager-SystemSoftware
|
||||||
|
.hotfiles.btree
|
||||||
|
.vol
|
||||||
|
.file
|
||||||
|
.disk_label*
|
||||||
|
lost+found
|
||||||
|
.nobackup
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
[subtree "tmux"]
|
|
||||||
url = git@vcs.murgi.de:dotfiles_fabian/tmux.git
|
|
||||||
path = tmux
|
|
||||||
branch = master
|
|
||||||
|
|
||||||
[subtree "zsh"]
|
|
||||||
url = git@vcs.murgi.de:dotfiles_fabian/zsh.git
|
|
||||||
path = zsh
|
|
||||||
branch = master
|
|
||||||
|
|
||||||
[subtree "vim"]
|
|
||||||
url = git@vcs.murgi.de:dotfiles_fabian/vim.git
|
|
||||||
path = vim
|
|
||||||
branch = master
|
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
# CLAUDE.md
|
||||||
|
|
||||||
|
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
||||||
|
|
||||||
|
This is a personal dotfiles repository targeting macOS (Apple Silicon + Intel) and Arch Linux. It is installed by symlinking config directories/files from the repo into `$HOME`, so files here are live configs — editing them changes the running system.
|
||||||
|
|
||||||
|
## Installation & setup
|
||||||
|
|
||||||
|
Setup is platform-specific and runs from the repo root:
|
||||||
|
|
||||||
|
- **macOS:** `./setup_mac.sh` — brews dependencies, creates a `neovim` virtualenv, then calls `./clone_and_link_mac.sh`. Uses GNU coreutils' `gln` (not `ln`), so coreutils must be installed first.
|
||||||
|
- **Arch:** `./setup_arch.sh` — pacman deps, then `./clone_and_link.sh` + `./copy_fonts_arch.sh`.
|
||||||
|
- `clone_and_link*.sh` create the symlinks (`~/.zsh`, `~/.zshrc`, `~/.tmux`, `~/.tmux.conf`, `~/.config/nvim`, `~/.config/alacritty`, virtualenvwrapper hooks). `link_config.sh` is a simpler standalone variant.
|
||||||
|
- `general_setup.sh` switches the login shell to zsh and triggers plugin installs.
|
||||||
|
|
||||||
|
## Platform-specific config via `.example` templates
|
||||||
|
|
||||||
|
The most important repo-wide convention: platform variants live as `.example` files and the active file is a symlink/copy produced at setup time. The setup scripts loop over files matching `zsh/.*_mac.example`, `tmux/.*_arch.example`, etc., and link/copy each to the name with the `_<platform>.example` suffix stripped.
|
||||||
|
|
||||||
|
Practical rule: **edit the `.example` source, not the generated symlink target.** The unsuffixed active files are git-ignored (see each subdir's `.gitignore`). Templates that are copied (not symlinked) at setup — `nvim/scheme.vim.template` → `scheme.vim`, `.config/alacritty/schemes.yml.template` → `schemes.yml` — are also git-ignored once activated.
|
||||||
|
|
||||||
|
## Component architecture
|
||||||
|
|
||||||
|
- **zsh** (`zsh/.zshrc`): Powerlevel10k instant prompt + [antidote](https://github.com/mattmc3/antidote) plugin manager (plugin list in `zsh/.zsh_plugins.txt`). `.zshrc` sources optional layered configs if present: `.powerline_config`, `.user_config`, `.virtual_env_config.zsh`, `.mac_config.zsh`, `.local_config`. `update_dotfiles()` auto-`git pull`s this repo in the background on every shell start. Machine-local overrides belong in `.local_config` (not committed).
|
||||||
|
- **nvim** (`nvim/init.vim`): [vim-plug](https://github.com/junegunn/vim-plug), auto-bootstrapped on first launch (`:PlugInstall`). Python provider points at the `~/python-envs/neovim` virtualenv on Apple Silicon. `colors/` holds a large bundled colorscheme collection.
|
||||||
|
- **tmux** (`tmux/.tmux.conf`): TPM-style `plugins/`. `tmux/tmux_attach.sh` is an attach helper.
|
||||||
|
- **alacritty** (`.config/alacritty/`): active theme selected via the `import = [...]` line in `alacritty.toml`.
|
||||||
|
- **gitconfig** (`gitconfig/gitconfig`): identity/behavior split by remote host using `includeIf "hasconfig:remote.*.url:..."` — `github`, `fhms` (fh-muenster), `murgi`, and `sit` (Fraunhofer) each load their own `*.gitconfig`. Change per-context email/signing in the matching include file, not the base config.
|
||||||
|
|
||||||
|
## Light/dark theme switching
|
||||||
|
|
||||||
|
`.config/alacritty/color_switcher.py` toggles light/dark across the terminal **and** nvim in one shot: it rewrites the `import` line in `alacritty.toml` (`solarized_light.toml` ↔ `dark_mode.toml`) and the `background`/`colorscheme` lines in `~/.config/nvim/scheme.vim`. Keep the regex-matched line formats in those files intact when editing them by hand. `screenshot_mode.py` is a related toggle.
|
||||||
|
|
||||||
|
## Maintenance
|
||||||
|
|
||||||
|
- `./update_mac.sh` — macOS update runner. Default (no args) runs `--brew-update --cleanup --diagnostics --update-others`; other flags: `--system-update`, `--permission-fix` (strips Caskroom/App quarantine xattrs). Run `./update_mac.sh --help` for the list. `--update-others` also runs `claude --update`.
|
||||||
|
- `brew_autoupdate` — sets up scheduled brew auto-updates.
|
||||||
Executable
+10
@@ -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
|
||||||
@@ -12,3 +12,5 @@ ln -Tsv ~/.zsh/.zshrc $HOME/.zshrc
|
|||||||
ln -Tsv $PWD/tmux $HOME/.tmux
|
ln -Tsv $PWD/tmux $HOME/.tmux
|
||||||
ln -Tsv ~/.tmux/.tmux.conf $HOME/.tmux.conf
|
ln -Tsv ~/.tmux/.tmux.conf $HOME/.tmux.conf
|
||||||
ln -Tsv $PWD/nvim $HOME/.config/nvim
|
ln -Tsv $PWD/nvim $HOME/.config/nvim
|
||||||
|
ln -Tsv $PWD/.config/alacritty $HOME/.config/alacritty
|
||||||
|
ln -fsv $PWD/virtualenvwrapper/* $VIRTUALENVWRAPPER_HOOK_DIR
|
||||||
|
|||||||
@@ -11,7 +11,10 @@ gln -Tsv $PWD/zsh $HOME/.zsh
|
|||||||
gln -Tsv ~/.zsh/.zshrc $HOME/.zshrc
|
gln -Tsv ~/.zsh/.zshrc $HOME/.zshrc
|
||||||
gln -Tsv $PWD/tmux $HOME/.tmux
|
gln -Tsv $PWD/tmux $HOME/.tmux
|
||||||
gln -Tsv ~/.tmux/.tmux.conf $HOME/.tmux.conf
|
gln -Tsv ~/.tmux/.tmux.conf $HOME/.tmux.conf
|
||||||
mkdir -p $HOME/.config/nvim
|
|
||||||
gln -Tsv $PWD/nvim $HOME/.config/nvim
|
gln -Tsv $PWD/nvim $HOME/.config/nvim
|
||||||
gln -Tsv $PWD/.config/alacritty $HOME/.config/alacritty
|
gln -Tsv $PWD/.config/alacritty $HOME/.config/alacritty
|
||||||
gln -Tsv $PWD/zsh/.p10k.mac.zsh.example $PWD/zsh/.p10k.mac.zsh
|
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
|
||||||
|
|||||||
Executable
+9
@@ -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
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,3 @@
|
|||||||
|
[user]
|
||||||
|
name = Fabian Ising
|
||||||
|
email = f.ising@fh-muenster.de
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
# 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 = ~/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
|
||||||
|
[rebase]
|
||||||
|
autoStash = true
|
||||||
|
[pull]
|
||||||
|
rebase = true
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
[user]
|
||||||
|
name = Fabian Ising
|
||||||
|
email = github@murgi.de
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
[user]
|
||||||
|
name = Fabian Ising
|
||||||
|
email = fabian@murgi.de
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
[user]
|
||||||
|
name = Fabian Ising
|
||||||
|
email = fabian.ising@sit.fraunhofer.de
|
||||||
@@ -11,3 +11,4 @@ for filename in .config/*; do
|
|||||||
done
|
done
|
||||||
|
|
||||||
ln -Ts $PWD/nvim $HOME/.config/nvim
|
ln -Ts $PWD/nvim $HOME/.config/nvim
|
||||||
|
ln -Ts $PWD/gitconfig/gitconfig $HOME/.gitconfig
|
||||||
|
|||||||
+122
-23
@@ -1,15 +1,40 @@
|
|||||||
set nocompatible
|
set nocompatible
|
||||||
filetype off
|
filetype off
|
||||||
|
|
||||||
|
" 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
|
||||||
|
|
||||||
" Plugins
|
" Plugins
|
||||||
" Note: on most systems, this will make the plugins reside in \
|
" Note: on most systems, this will make the plugins reside in \
|
||||||
" ~/.local/share/nvim/plugged/
|
" ~/.local/share/nvim/plugged/
|
||||||
let data_dir = has('nvim') ? stdpath('data') . '/site' : '~/.vim'
|
let data_dir = has('nvim') ? stdpath('data') . '/site' : expand('~/.vim')
|
||||||
if empty(glob(data_dir . '/autoload/plug.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'
|
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
|
autocmd VimEnter * PlugInstall --sync | source $MYVIMRC
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
" Disable Perl
|
||||||
|
let g:loaded_perl_provider = 0
|
||||||
|
|
||||||
call plug#begin()
|
call plug#begin()
|
||||||
|
|
||||||
|
if !exists('g:vscode')
|
||||||
|
" Warn about plugin updates
|
||||||
|
Plug 'semanser/vim-outdated-plugins'
|
||||||
|
|
||||||
" Powerline replacement
|
" Powerline replacement
|
||||||
Plug 'vim-airline/vim-airline'
|
Plug 'vim-airline/vim-airline'
|
||||||
Plug 'vim-airline/vim-airline-themes'
|
Plug 'vim-airline/vim-airline-themes'
|
||||||
@@ -35,18 +60,22 @@ Plug 'ConradIrwin/vim-bracketed-paste'
|
|||||||
Plug 'christoomey/vim-tmux-navigator'
|
Plug 'christoomey/vim-tmux-navigator'
|
||||||
|
|
||||||
" YouCompleteMe
|
" YouCompleteMe
|
||||||
Plug 'Valloric/YouCompleteMe'
|
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'
|
Plug 'rdnetto/YCM-Generator'
|
||||||
|
|
||||||
" Git
|
" Git
|
||||||
Plug 'tpope/vim-fugitive'
|
Plug 'tpope/vim-fugitive'
|
||||||
|
|
||||||
" Comments
|
|
||||||
Plug 'scrooloose/nerdcommenter'
|
|
||||||
|
|
||||||
" Surround
|
|
||||||
Plug 'tpope/vim-surround'
|
|
||||||
|
|
||||||
" Snippets
|
" Snippets
|
||||||
" Track the engine.
|
" Track the engine.
|
||||||
Plug 'SirVer/ultisnips'
|
Plug 'SirVer/ultisnips'
|
||||||
@@ -69,6 +98,18 @@ Plug 'lervag/vimtex'
|
|||||||
"Go
|
"Go
|
||||||
Plug '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()
|
call plug#end()
|
||||||
|
|
||||||
" Run PlugInstall if there are missing plugins
|
" Run PlugInstall if there are missing plugins
|
||||||
@@ -81,8 +122,7 @@ filetype plugin indent on
|
|||||||
set cinkeys-=0#
|
set cinkeys-=0#
|
||||||
|
|
||||||
" Terminal emulator settings
|
" Terminal emulator settings
|
||||||
set t_Co=256
|
set termguicolors
|
||||||
"set term=screen-256color
|
|
||||||
|
|
||||||
" Color configuration
|
" Color configuration
|
||||||
try
|
try
|
||||||
@@ -90,6 +130,7 @@ try
|
|||||||
catch
|
catch
|
||||||
" Ignore non existing file
|
" Ignore non existing file
|
||||||
endtry
|
endtry
|
||||||
|
highlight Comment cterm=italic gui=italic
|
||||||
syntax enable " enable syntax processing
|
syntax enable " enable syntax processing
|
||||||
|
|
||||||
" Disable annoying bell
|
" Disable annoying bell
|
||||||
@@ -102,7 +143,8 @@ set modeline
|
|||||||
let mapleader = "\<Space>" " Make space the leader key
|
let mapleader = "\<Space>" " Make space the leader key
|
||||||
nnoremap <Leader>w :w<CR>| " Write file
|
nnoremap <Leader>w :w<CR>| " Write file
|
||||||
nnoremap <Leader>q :q<CR>| " Close 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
|
nmap <Leader><Leader> V| " Change to visual line mode
|
||||||
map q: :q| " No command history
|
map q: :q| " No command history
|
||||||
@@ -114,14 +156,23 @@ nmap <Leader>mt :tab sp<CR> | " maximize window to new tab
|
|||||||
nmap <Leader>. <C-w>= | " Split windows equally
|
nmap <Leader>. <C-w>= | " Split windows equally
|
||||||
map gb :bnext<CR>
|
map gb :bnext<CR>
|
||||||
map gB :bNext<CR>
|
map gB :bNext<CR>
|
||||||
|
if !exists('g:vscode')
|
||||||
call submode#enter_with('grow/shrink', 'n', '', '<Leader>r', '<Nop>')
|
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>-')
|
||||||
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 splitbelow
|
||||||
set splitright
|
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:
|
"disable submode timeouts:
|
||||||
let g:submode_timeout = 0
|
let g:submode_timeout = 0
|
||||||
" don't consume submode-leaving key
|
" don't consume submode-leaving key
|
||||||
@@ -191,6 +242,56 @@ nmap <Leader>t :call TextWrapToggle()<CR>
|
|||||||
"augroup END
|
"augroup END
|
||||||
|
|
||||||
"Copying
|
"Copying
|
||||||
|
if !exists('g:vscode')
|
||||||
|
lua << EOF
|
||||||
|
local uname = vim.loop.os_uname()
|
||||||
|
_G.OS = uname.sysname
|
||||||
|
local IS_LINUX = _G.OS == 'Linux'
|
||||||
|
_G.IS_WSL = IS_LINUX and uname.release:lower():find 'microsoft' and true or false
|
||||||
|
if _G.IS_WSL then
|
||||||
|
vim.g.clipboard = {
|
||||||
|
name = 'WslClipboard',
|
||||||
|
copy = {
|
||||||
|
['+'] = 'clip.exe',
|
||||||
|
['*'] = 'clip.exe',
|
||||||
|
},
|
||||||
|
paste = {
|
||||||
|
['+'] = 'powershell.exe -NoLogo -NoProfile -c [Console]::Out.Write($(Get-Clipboard -Raw).tostring().replace("`r", ""))',
|
||||||
|
['*'] = 'powershell.exe -NoLogo -NoProfile -c [Console]::Out.Write($(Get-Clipboard -Raw).tostring().replace("`r", ""))',
|
||||||
|
},
|
||||||
|
cache_enabled = 0,
|
||||||
|
}
|
||||||
|
else
|
||||||
|
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('*'),
|
||||||
|
},
|
||||||
|
}
|
||||||
|
end
|
||||||
|
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
|
set clipboard=unnamedplus,unnamed " Copy/Paste
|
||||||
|
|
||||||
" Airline
|
" Airline
|
||||||
@@ -203,9 +304,12 @@ nmap <C-]> <C-w><C-]><C-w>T
|
|||||||
|
|
||||||
" YouCompleteMe
|
" YouCompleteMe
|
||||||
let g:ycm_collect_identifiers_from_tags_files = 1 " Read from tag files
|
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_enable_diagnostic_signs = 0 " Do not show semantic error bar
|
||||||
let g:ycm_server_python_interpreter = 'python3'
|
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_select_completion = ['<C-j>', '<C-n>', '<Down>']
|
||||||
let g:ycm_key_list_previous_completion = ['<C-k>', '<C-p>', '<Up>']
|
let g:ycm_key_list_previous_completion = ['<C-k>', '<C-p>', '<Up>']
|
||||||
|
|
||||||
@@ -244,16 +348,16 @@ let g:UltiSnipsEditSplit="vertical"
|
|||||||
set rtp+=~/.config/nvim/my-snippets
|
set rtp+=~/.config/nvim/my-snippets
|
||||||
|
|
||||||
" Folding
|
" Folding
|
||||||
set foldmethod=syntax
|
set foldmethod=indent
|
||||||
set foldlevel=100
|
set foldlevel=100
|
||||||
" Use F9 to toggle folding
|
" Use F9 or <Leader>z to toggle folding
|
||||||
inoremap <F9> <C-O>za
|
inoremap <F9> <C-O>za
|
||||||
nnoremap <F9> za
|
nnoremap <F9> za
|
||||||
onoremap <F9> <C-C>za
|
onoremap <F9> <C-C>za
|
||||||
vnoremap <F9> zf
|
vnoremap <F9> zf
|
||||||
nnoremap <Leader>a za
|
nnoremap <Leader>z za
|
||||||
onoremap <Leader>a <C-C>za
|
onoremap <Leader>z <C-C>za
|
||||||
vnoremap <Leader>a zf
|
vnoremap <Leader>z zf
|
||||||
|
|
||||||
try
|
try
|
||||||
source ~/.config/nvim/.vimrc_config_expand_region
|
source ~/.config/nvim/.vimrc_config_expand_region
|
||||||
@@ -269,8 +373,3 @@ catch
|
|||||||
endtry
|
endtry
|
||||||
let g:tex_flavor = "latex"
|
let g:tex_flavor = "latex"
|
||||||
autocmd FileType yaml setlocal ts=2 sts=2 sw=2 expandtab
|
autocmd FileType yaml setlocal ts=2 sts=2 sw=2 expandtab
|
||||||
|
|
||||||
if has("macunix")
|
|
||||||
" Required for virtualenvs
|
|
||||||
let g:python3_host_prog="/usr/local/bin/python3"
|
|
||||||
endif
|
|
||||||
|
|||||||
@@ -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
|
|
||||||
+6
-7
@@ -5,15 +5,17 @@
|
|||||||
#
|
#
|
||||||
# Distributed under terms of the MIT license.
|
# Distributed under terms of the MIT license.
|
||||||
#
|
#
|
||||||
|
set -e
|
||||||
|
|
||||||
sudo pacman --needed -Sy archlinux-keyring --noconfirm
|
sudo pacman --needed -Sy archlinux-keyring --noconfirm
|
||||||
sudo pacman --needed -Syu --noconfirm
|
sudo pacman --needed -Syu --noconfirm
|
||||||
sudo pacman --needed -Sy base-devel xorg xorg-xinit gnome gnome-extra neovim zsh tmux openssh alacritty powerline-fonts python-pip --noconfirm
|
sudo pacman --needed -Sy base-devel gnome neovim zsh tmux openssh alacritty powerline-fonts python-pip python-pynvim --noconfirm
|
||||||
cp $PWD/nvim/scheme.vim.template $PWD/nvim/scheme.vim
|
|
||||||
cp $PWD/.config/alacritty/schemes.yml.template $PWD/.config/alacritty/schemes.yml
|
|
||||||
pip3 install neovim
|
|
||||||
./clone_and_link.sh
|
./clone_and_link.sh
|
||||||
./copy_fonts_arch.sh
|
./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
|
if [ $SHELL != "/bin/zsh" ]; then
|
||||||
chsh -s /usr/bin/zsh;
|
chsh -s /usr/bin/zsh;
|
||||||
fi
|
fi
|
||||||
@@ -26,7 +28,4 @@ for filename in tmux/.*_arch.example; do
|
|||||||
cp $filename ${filename:0:-13}
|
cp $filename ${filename:0:-13}
|
||||||
done
|
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."
|
echo "You should now start tmux (and zsh) and nvim for automatic plugin installation."
|
||||||
|
|||||||
+11
-10
@@ -1,4 +1,4 @@
|
|||||||
#! /bin/sh
|
#! /bin/zsh
|
||||||
#
|
#
|
||||||
# setup_mac.sh
|
# setup_mac.sh
|
||||||
# Copyright (C) 2022 fabian <fabian@FordPrefect.home>
|
# Copyright (C) 2022 fabian <fabian@FordPrefect.home>
|
||||||
@@ -6,8 +6,11 @@
|
|||||||
# Distributed under terms of the MIT license.
|
# Distributed under terms of the MIT license.
|
||||||
#
|
#
|
||||||
|
|
||||||
brew install neovim tmux alacritty coreutils
|
brew install neovim tmux alacritty coreutils cmake golang npm virtualenvwrapper
|
||||||
pip3 install neovim
|
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'\
|
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.
|
to the path. This will require your root password.
|
||||||
sudo launchctl config user path /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
|
sudo launchctl config user path /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
|
||||||
@@ -15,16 +18,14 @@ cp $PWD/nvim/scheme.vim.template $PWD/nvim/scheme.vim
|
|||||||
cp $PWD/.config/alacritty/schemes.yml.template $PWD/.config/alacritty/schemes.yml
|
cp $PWD/.config/alacritty/schemes.yml.template $PWD/.config/alacritty/schemes.yml
|
||||||
./clone_and_link_mac.sh
|
./clone_and_link_mac.sh
|
||||||
|
|
||||||
for filename in zsh/.*_mac.example; do
|
for filename in zsh/.*_mac.example(N); do
|
||||||
cp $filename ${filename:0:-12}
|
gln -Tsvf $PWD/$filename $PWD/${filename:0:-12}
|
||||||
done
|
done
|
||||||
|
|
||||||
for filename in tmux/.*_mac.example; do
|
for filename in tmux/.*_mac.example(N); do
|
||||||
cp $filename ${filename:0:-12}
|
gln -Tsvf $PWD/$filename $PWD/${filename:0:-12}
|
||||||
done
|
done
|
||||||
|
|
||||||
for filename in vim/.*_mac.example; do
|
open fonts/*.ttf
|
||||||
cp $filename ${filename:0:-12}
|
|
||||||
done
|
|
||||||
|
|
||||||
echo "You should now start tmux (and zsh) and nvim for automatic plugin installation."
|
echo "You should now start tmux (and zsh) and nvim for automatic plugin installation."
|
||||||
|
|||||||
+33
-5
@@ -1,5 +1,6 @@
|
|||||||
set-environment -g PATH "/usr/local/bin:/bin:/usr/bin"
|
set-environment -g PATH "/usr/local/bin:/bin:/usr/bin:/opt/homebrew/bin"
|
||||||
set -g default-terminal "xterm-256color"
|
set -g default-terminal "tmux-256color"
|
||||||
|
set -sa terminal-features ",xterm-256color:RGB"
|
||||||
|
|
||||||
set -g history-limit 20000
|
set -g history-limit 20000
|
||||||
|
|
||||||
@@ -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-keys C-b
|
||||||
#bind-key -n C-b send-prefix
|
#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
|
setw -g mode-keys vi
|
||||||
set-option -g status-keys vi
|
set-option -g status-keys vi
|
||||||
|
|
||||||
@@ -33,9 +47,10 @@ bind k clear-history\; display "History cleared"
|
|||||||
|
|
||||||
bind-key a set-window-option synchronize-panes
|
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 -g mouse on
|
||||||
|
set-option -g focus-events on
|
||||||
|
|
||||||
#bind-key -Tcopy-mode-vi 'v' send -X begin-selection
|
#bind-key -Tcopy-mode-vi 'v' send -X begin-selection
|
||||||
#bind-key -Tcopy-mode-vi 'y' send -X copy-selection
|
#bind-key -Tcopy-mode-vi 'y' send -X copy-selection
|
||||||
@@ -59,9 +74,13 @@ bind-key C-o send-keys C-o
|
|||||||
# move tmux copy buffer into x clipboard
|
# move tmux copy buffer into x clipboard
|
||||||
# Vi copypaste mode
|
# Vi copypaste mode
|
||||||
set-window-option -g mode-keys vi
|
set-window-option -g mode-keys vi
|
||||||
set-option -s set-clipboard on
|
set -g allow-passthrough on
|
||||||
|
set-option -g set-clipboard on
|
||||||
set -g @yank_with_mouse off
|
set -g @yank_with_mouse off
|
||||||
set -g @yank_action 'copy-pipe'
|
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 ]' \
|
if '[ `uname` == Darwin ]' \
|
||||||
'source-file ~/.tmux/.mac_config'
|
'source-file ~/.tmux/.mac_config'
|
||||||
@@ -69,6 +88,12 @@ if '[ `uname` == Darwin ]' \
|
|||||||
set-option -g set-titles on
|
set-option -g set-titles on
|
||||||
|
|
||||||
|
|
||||||
|
set -g visual-bell on
|
||||||
|
# Forward bells from ALL panes to terminal (not just active one)
|
||||||
|
set -g bell-action any
|
||||||
|
# Enable bell monitoring
|
||||||
|
set -g monitor-bell on
|
||||||
|
|
||||||
# Escape timeout for nvim
|
# Escape timeout for nvim
|
||||||
set -sg escape-time 10
|
set -sg escape-time 10
|
||||||
|
|
||||||
@@ -78,7 +103,10 @@ set -g @plugin 'tmux-plugins/tpm'
|
|||||||
set -g @plugin 'tmux-plugins/tmux-open'
|
set -g @plugin 'tmux-plugins/tmux-open'
|
||||||
set -g @plugin 'tmux-plugins/tmux-yank'
|
set -g @plugin 'tmux-plugins/tmux-yank'
|
||||||
set -g @plugin 'jimeh/tmux-themepack'
|
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'
|
||||||
|
|
||||||
|
set -g @tpm-clean 'u'
|
||||||
|
|
||||||
setenv -g TMUX_PLUGIN_MANAGER_PATH "$HOME/.tmux/plugins/"
|
setenv -g TMUX_PLUGIN_MANAGER_PATH "$HOME/.tmux/plugins/"
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
#!/bin/bash
|
#!/bin/sh
|
||||||
#
|
#
|
||||||
# tmux-attach - attach to first unattached session or
|
# tmux-attach - attach to first unattached session or
|
||||||
# create new session if none are found
|
# create new session if none are found
|
||||||
|
|||||||
Executable
+99
@@ -0,0 +1,99 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# This file echoes a bunch of 24-bit color codes
|
||||||
|
# to the terminal to demonstrate its functionality.
|
||||||
|
# The foreground escape sequence is ^[38;2;<r>;<g>;<b>m
|
||||||
|
# The background escape sequence is ^[48;2;<r>;<g>;<b>m
|
||||||
|
# <r> <g> <b> range from 0 to 255 inclusive.
|
||||||
|
# The escape sequence ^[0m returns output to default
|
||||||
|
|
||||||
|
setBackgroundColor()
|
||||||
|
{
|
||||||
|
echo -en "\x1b[48;2;$1;$2;$3""m"
|
||||||
|
}
|
||||||
|
|
||||||
|
resetOutput()
|
||||||
|
{
|
||||||
|
echo -en "\x1b[0m\n"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Gives a color $1/255 % along HSV
|
||||||
|
# Who knows what happens when $1 is outside 0-255
|
||||||
|
# Echoes "$red $green $blue" where
|
||||||
|
# $red $green and $blue are integers
|
||||||
|
# ranging between 0 and 255 inclusive
|
||||||
|
rainbowColor()
|
||||||
|
{
|
||||||
|
let h=$1/43
|
||||||
|
let f=$1-43*$h
|
||||||
|
let t=$f*255/43
|
||||||
|
let q=255-t
|
||||||
|
|
||||||
|
if [ $h -eq 0 ]
|
||||||
|
then
|
||||||
|
echo "255 $t 0"
|
||||||
|
elif [ $h -eq 1 ]
|
||||||
|
then
|
||||||
|
echo "$q 255 0"
|
||||||
|
elif [ $h -eq 2 ]
|
||||||
|
then
|
||||||
|
echo "0 255 $t"
|
||||||
|
elif [ $h -eq 3 ]
|
||||||
|
then
|
||||||
|
echo "0 $q 255"
|
||||||
|
elif [ $h -eq 4 ]
|
||||||
|
then
|
||||||
|
echo "$t 0 255"
|
||||||
|
elif [ $h -eq 5 ]
|
||||||
|
then
|
||||||
|
echo "255 0 $q"
|
||||||
|
else
|
||||||
|
# execution should never reach here
|
||||||
|
echo "0 0 0"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
for i in `seq 0 127`; do
|
||||||
|
setBackgroundColor $i 0 0
|
||||||
|
echo -en " "
|
||||||
|
done
|
||||||
|
resetOutput
|
||||||
|
for i in `seq 255 128`; do
|
||||||
|
setBackgroundColor $i 0 0
|
||||||
|
echo -en " "
|
||||||
|
done
|
||||||
|
resetOutput
|
||||||
|
|
||||||
|
for i in `seq 0 127`; do
|
||||||
|
setBackgroundColor 0 $i 0
|
||||||
|
echo -n " "
|
||||||
|
done
|
||||||
|
resetOutput
|
||||||
|
for i in `seq 255 128`; do
|
||||||
|
setBackgroundColor 0 $i 0
|
||||||
|
echo -n " "
|
||||||
|
done
|
||||||
|
resetOutput
|
||||||
|
|
||||||
|
for i in `seq 0 127`; do
|
||||||
|
setBackgroundColor 0 0 $i
|
||||||
|
echo -n " "
|
||||||
|
done
|
||||||
|
resetOutput
|
||||||
|
for i in `seq 255 128`; do
|
||||||
|
setBackgroundColor 0 0 $i
|
||||||
|
echo -n " "
|
||||||
|
done
|
||||||
|
resetOutput
|
||||||
|
|
||||||
|
for i in `seq 0 127`; do
|
||||||
|
setBackgroundColor `rainbowColor $i`
|
||||||
|
echo -n " "
|
||||||
|
done
|
||||||
|
resetOutput
|
||||||
|
for i in `seq 255 128`; do
|
||||||
|
setBackgroundColor `rainbowColor $i`
|
||||||
|
echo -n " "
|
||||||
|
done
|
||||||
|
resetOutput
|
||||||
|
|
||||||
Executable
+91
@@ -0,0 +1,91 @@
|
|||||||
|
#!/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
|
||||||
|
}
|
||||||
|
function update_others {
|
||||||
|
echo "----------"
|
||||||
|
echo "Update other stuff"
|
||||||
|
echo "----------"
|
||||||
|
|
||||||
|
if [ -x "$(command -v claude)" ]; then
|
||||||
|
echo "-- CLAUDE"
|
||||||
|
claude --update
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
if [[ $* == *--help* ]]; then
|
||||||
|
echo "Usage: $0 [option]"
|
||||||
|
echo "Default options: --brew-update --update-others --cleanup --diagnostics"
|
||||||
|
echo -e "Options:\n\t--brew-update\n\t--update-others\n\t--cleanup\n\t--diagnostics\n\t--permission-fix\n\t--system-update"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -z $* ]]; then
|
||||||
|
set -- "$*" "--brew-update --cleanup --diagnostics --update-others"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ $* == *--system-update* ]]; then
|
||||||
|
software_update
|
||||||
|
fi
|
||||||
|
if [[ $* == *--brew-update* ]]; then
|
||||||
|
update_brew
|
||||||
|
fi
|
||||||
|
if [[ $* == *--update-others* ]]; then
|
||||||
|
update_others
|
||||||
|
fi
|
||||||
|
if [[ $* == *--cleanup* ]]; then
|
||||||
|
cleanup
|
||||||
|
fi
|
||||||
|
if [[ $* == *--diagnostics* ]]; then
|
||||||
|
diagnostics
|
||||||
|
fi
|
||||||
|
if [[ $* == *--permission-fix* ]]; then
|
||||||
|
set_permissions
|
||||||
|
fi
|
||||||
@@ -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
|
||||||
@@ -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
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
#!/bin/zsh
|
||||||
|
# This hook is sourced after a new virtualenv is activated.
|
||||||
|
|
||||||
|
pip3 install neovim
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
.*_config*
|
.*_config*
|
||||||
!.*_config*.example
|
!.*_config*.example
|
||||||
|
.p10k.zsh
|
||||||
.p10k.mac.zsh
|
.p10k.mac.zsh
|
||||||
antigen/
|
antigen/
|
||||||
|
|||||||
@@ -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"
|
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
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"
|
||||||
|
#alias virt-manager="LD_PRELOAD=/opt/homebrew/Cellar/glib/2.86.0/lib $HOME/python-envs/virt-manager/bin/python3 $HOME/stuff/virt-manager/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}"
|
||||||
-1635
File diff suppressed because it is too large
Load Diff
@@ -1,4 +1,15 @@
|
|||||||
|
ARCH=`uname -m`
|
||||||
|
if [[ $ARCH == "arm64" ]]; then
|
||||||
|
PREFIX="/opt/homebrew"
|
||||||
|
else
|
||||||
|
PREFIX="/usr/local"
|
||||||
|
fi
|
||||||
|
|
||||||
export WORKON_HOME=~/python-envs
|
export WORKON_HOME=~/python-envs
|
||||||
export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/bin/virtualenv
|
export VIRTUALENVWRAPPER_VIRTUALENV=$PREFIX/bin/virtualenv
|
||||||
mkdir -p $WORKON_HOME
|
mkdir -p $WORKON_HOME
|
||||||
source /usr/local/bin/virtualenvwrapper.sh
|
source $PREFIX/bin/virtualenvwrapper.sh
|
||||||
|
|
||||||
|
if [ -n "$VIRTUAL_ENV" ] && [[ -f "$VIRTUAL_ENV/bin/activate" ]]; then
|
||||||
|
source $VIRTUAL_ENV/bin/activate;
|
||||||
|
fi
|
||||||
|
|||||||
@@ -1,22 +1,27 @@
|
|||||||
# Load OMZ plugins
|
# Load OMZ plugins
|
||||||
ohmyzsh/ohmyzsh
|
ohmyzsh/ohmyzsh
|
||||||
|
ohmyzsh/ohmyzsh path:lib
|
||||||
ohmyzsh/ohmyzsh path:plugins/git
|
ohmyzsh/ohmyzsh path:plugins/git
|
||||||
ohmyzsh/ohmyzsh path:plugins/golang
|
ohmyzsh/ohmyzsh path:plugins/golang
|
||||||
ohmyzsh/ohmyzsh path:plugins/ssh-agent
|
ohmyzsh/ohmyzsh path:plugins/ssh-agent
|
||||||
ohmyzsh/ohmyzsh path:plugins/pip
|
ohmyzsh/ohmyzsh path:plugins/pip
|
||||||
ohmyzsh/ohmyzsh path:plugins/python
|
ohmyzsh/ohmyzsh path:plugins/python
|
||||||
|
ohmyzsh/ohmyzsh path:plugins/brew
|
||||||
ohmyzsh/ohmyzsh path:plugins/virtualenv
|
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
|
romkatv/powerlevel10k
|
||||||
zsh-users/zsh-syntax-highlighting
|
|
||||||
zsh-users/zsh-autosuggestions
|
zsh-users/zsh-autosuggestions
|
||||||
zsh-users/zsh-completions
|
zsh-users/zsh-completions
|
||||||
zsh-users/zsh-history-substring-search
|
zsh-users/zsh-history-substring-search
|
||||||
urbainvaes/fzf-marks
|
urbainvaes/fzf-marks
|
||||||
greymd/docker-zsh-completion
|
zdharma-continuum/fast-syntax-highlighting
|
||||||
zdharma-continuum/fast-syntax-highlighting kind:defer
|
# Select with shift
|
||||||
|
jirutka/zsh-shift-select
|
||||||
|
|
||||||
# Initialize completions
|
# Initialize completions
|
||||||
belak/zsh-utils path:completion
|
belak/zsh-utils path:completion
|
||||||
|
|||||||
+91
-21
@@ -1,17 +1,27 @@
|
|||||||
# Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc.
|
# Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc.
|
||||||
# Initialization code that may require console input (password prompts, [y/n]
|
# Initialization code that may require console input (password prompts, [y/n]
|
||||||
# confirmations, etc.) must go above this block; everything else may go below.
|
# 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/.powerline_config ]] && source ~/.zsh/.powerline_config
|
||||||
[[ -f ~/.zsh/.user_config ]] && source ~/.zsh/.user_config
|
[[ -f ~/.zsh/.user_config ]] && source ~/.zsh/.user_config
|
||||||
[[ -f ~/.zsh/.virtual_env_config.zsh ]] && source ~/.zsh/.virtual_env_config.zsh
|
[[ -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
|
[[ -f ~/.zsh/.local_config ]] && source ~/.zsh/.local_config
|
||||||
|
|
||||||
|
# On shell start, bring ~/dotfiles up to date by fast-forwarding the CURRENT
|
||||||
|
# branch to its upstream only. Never rebase or stash in the background: if the
|
||||||
|
# branch diverged or local edits block it, warn and leave it for a manual pull.
|
||||||
|
# Per-branch, so `server` on each device fast-forwards to origin/server.
|
||||||
|
update_dotfiles() {
|
||||||
|
local repo="$HOME/dotfiles"
|
||||||
|
git -C "$repo" fetch --quiet 2>/dev/null || return
|
||||||
|
git -C "$repo" rev-parse --abbrev-ref '@{u}' >/dev/null 2>&1 || return # no upstream
|
||||||
|
git -C "$repo" merge-base --is-ancestor '@{u}' HEAD 2>/dev/null && return # already current
|
||||||
|
git -C "$repo" merge --ff-only --quiet '@{u}' 2>/dev/null \
|
||||||
|
|| print -u2 "⚠ dotfiles: $(git -C "$repo" symbolic-ref --short HEAD) can't fast-forward to @{u} — run: git -C ~/dotfiles pull"
|
||||||
|
}
|
||||||
|
|
||||||
|
update_dotfiles &!
|
||||||
|
export LC_OSC52=1
|
||||||
|
|
||||||
# Load Antidote
|
# Load Antidote
|
||||||
mkdir -p ${ZDOTDIR:-~}/.cache/zsh
|
mkdir -p ${ZDOTDIR:-~}/.cache/zsh
|
||||||
static_file=${ZDOTDIR:-~}/.cache/zsh/.zsh_plugins.zsh
|
static_file=${ZDOTDIR:-~}/.cache/zsh/.zsh_plugins.zsh
|
||||||
@@ -21,28 +31,45 @@ if ! [[ -e ${ZDOTDIR:-~}/.antidote ]]; then
|
|||||||
git clone https://github.com/mattmc3/antidote.git ${ZDOTDIR:-~}/.antidote
|
git clone https://github.com/mattmc3/antidote.git ${ZDOTDIR:-~}/.antidote
|
||||||
fi
|
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 antidote and load plugins from `${ZDOTDIR:-~}/.zsh_plugins.txt`
|
||||||
source ${ZDOTDIR:-~}/.antidote/antidote.zsh
|
source ${ZDOTDIR:-~}/.antidote/antidote.zsh
|
||||||
antidote load ${plugins_txt} ${static_file}
|
antidote load ${plugins_txt} ${static_file}
|
||||||
|
|
||||||
setopt interactivecomments
|
setopt interactivecomments
|
||||||
setopt HIST_IGNORE_SPACE
|
|
||||||
|
# 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
|
# Clear screen by ctrl+q
|
||||||
bindkey '^q' clear-screen
|
bindkey '^q' clear-screen
|
||||||
|
|
||||||
|
# Bind Ctrl-W to kill-region
|
||||||
|
bindkey "^w" kill-region
|
||||||
|
bindkey -v
|
||||||
|
VI_MODE_SET_CURSOR=true
|
||||||
|
|
||||||
alias vim=nvim
|
alias vim=nvim
|
||||||
alias sudo='sudo '
|
alias sudo='sudo '
|
||||||
export EDITOR='nvim'
|
export EDITOR='nvim'
|
||||||
|
export VISUAL='nvim'
|
||||||
|
|
||||||
#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"
|
alias ls="ls --color=always"
|
||||||
#export PATH="$PATH:${HOME}/Labor/tls-in-muas/starttls-research/99-Tools:/home/fabian/go/bin"
|
alias cgrep="grep --color=always"
|
||||||
# For ccache
|
|
||||||
#export CCACHE_CPP2=YES
|
|
||||||
|
|
||||||
delzip() {
|
delzip() {
|
||||||
unzip -Z -1 "$@" | xargs -I{} rm -rf {}
|
unzip -Z -1 "$@" | xargs -I{} rm -rf {}
|
||||||
@@ -50,15 +77,58 @@ delzip() {
|
|||||||
# mitmproxy
|
# mitmproxy
|
||||||
export MITMPROXY_SSLKEYLOGFILE="~/.mitmproxy/sslkeylogfile.txt"
|
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
|
# Powerlevel 10k
|
||||||
# Remove padding on right side
|
# Remove padding on right side
|
||||||
ZLE_RPROMPT_INDENT=0
|
ZLE_RPROMPT_INDENT=0
|
||||||
|
|
||||||
# To customize prompt, run `p10k configure` or edit ~/dotfiles/zsh/.p10k.zsh.
|
# To customize prompt, run `p10k configure` or edit ~/dotfiles/zsh/.p10k.zsh.
|
||||||
if test -f ~/dotfiles/zsh/.p10k.mac.zsh; then
|
function load_p10k() {
|
||||||
source ~/dotfiles/zsh/.p10k.mac.zsh
|
if test -f ~/dotfiles/zsh/.p10k.mac.zsh; then
|
||||||
else
|
source ~/dotfiles/zsh/.p10k.mac.zsh
|
||||||
[[ ! -f ~/dotfiles/zsh/.p10k.zsh ]] || source ~/dotfiles/zsh/.p10k.zsh
|
else
|
||||||
fi
|
[[ ! -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user