Compare commits
No commits in common. "main" and "master" have entirely different histories.
169 changed files with 8398 additions and 5009 deletions
.config
alacritty
atuin
autostart
bat
broot
conf.hjson
launcher
select.hjsonskins
catppuccin-macchiato.hjsoncatppuccin-mocha.hjsondark-blue.hjsondark-gruvbox.hjsondark-orange.hjsonnative-16.hjsonsolarized-dark.hjsonsolarized-light.hjsonwhite.hjson
verbs.hjsonbuildkit
chrome-beta-flags.confcontour
efm-langserver
environment.d
fish
git
gitui
helix
k9s
nerdctl
nvim
paru
rg
sapling
starship.tomlsystemd/user
vconsole
wezterm
zsh-abbr
.gnupg
.inputrc.jjconfig.toml.lessfilter.local/share/applications
firefox-arity.desktopfirefox-work.desktopgoogle-chrome-beta-client.desktopgoogle-chrome-beta-private.desktopgoogle-chrome-beta-work.desktopmeet.desktopplex.desktopspotify.desktopwezterm-dev-secondary.desktopwezterm-dev.desktopwezterm-local.desktopyoutube-music.desktop
.ssh
.tmux.conf.vaultREADME.mdbin
77
.config/alacritty/alacritty.yml
Normal file
77
.config/alacritty/alacritty.yml
Normal file
|
@ -0,0 +1,77 @@
|
||||||
|
window:
|
||||||
|
decorations: none
|
||||||
|
startup_mode: Maximized
|
||||||
|
|
||||||
|
font:
|
||||||
|
normal:
|
||||||
|
family: Iosevka Term SS09
|
||||||
|
style: Regular
|
||||||
|
|
||||||
|
bold:
|
||||||
|
family: Iosevka Term SS09
|
||||||
|
style: Semibold
|
||||||
|
|
||||||
|
italic:
|
||||||
|
family: Iosevka Term Curly Slab
|
||||||
|
style: Light Italic
|
||||||
|
|
||||||
|
bold_italic:
|
||||||
|
family: Iosevka SS15
|
||||||
|
style: Extralight Italic
|
||||||
|
|
||||||
|
size: 10
|
||||||
|
|
||||||
|
offset:
|
||||||
|
x: 0
|
||||||
|
y: 3
|
||||||
|
|
||||||
|
glyph_offset:
|
||||||
|
x: 0
|
||||||
|
y: 2
|
||||||
|
|
||||||
|
cursor:
|
||||||
|
# Values for `style`:
|
||||||
|
# - ▇ Block
|
||||||
|
# - _ Underline
|
||||||
|
# - | Beam
|
||||||
|
style: Block
|
||||||
|
vi_mode_style: Beam
|
||||||
|
unfocused_hollow: true
|
||||||
|
thickness: 0.15
|
||||||
|
|
||||||
|
mouse:
|
||||||
|
hide_when_typing: true
|
||||||
|
# url:
|
||||||
|
# launcher:
|
||||||
|
# program: /home/dln/bin/url-copy
|
||||||
|
|
||||||
|
colors:
|
||||||
|
primary:
|
||||||
|
background: '#fcfcfc'
|
||||||
|
foreground: '#000000'
|
||||||
|
|
||||||
|
normal:
|
||||||
|
black: '#212121'
|
||||||
|
red: '#b7141e'
|
||||||
|
green: '#457b23'
|
||||||
|
yellow: '#f5971d'
|
||||||
|
blue: '#134eb2'
|
||||||
|
magenta: '#550087'
|
||||||
|
cyan: '#0e707c'
|
||||||
|
white: '#eeeeee'
|
||||||
|
bright:
|
||||||
|
black: '#424242'
|
||||||
|
red: '#e83a3f'
|
||||||
|
green: '#7aba39'
|
||||||
|
yellow: '#fee92e'
|
||||||
|
blue: '#53a4f3'
|
||||||
|
magenta: '#a94dbb'
|
||||||
|
cyan: '#26bad1'
|
||||||
|
white: '#d8d8d8'
|
||||||
|
|
||||||
|
key_bindings:
|
||||||
|
- { key: V, mods: Alt, action: Paste }
|
||||||
|
- { key: C, mods: Alt, action: Copy }
|
||||||
|
- { key: V, mods: Shift|Alt, action: Paste }
|
||||||
|
- { key: C, mods: Shift|Alt, action: Copy }
|
||||||
|
- { key: Return, mods: Alt, action: ToggleFullscreen }
|
205
.config/atuin/config.toml
Normal file
205
.config/atuin/config.toml
Normal file
|
@ -0,0 +1,205 @@
|
||||||
|
## where to store your database, default is your system data directory
|
||||||
|
## linux/mac: ~/.local/share/atuin/history.db
|
||||||
|
## windows: %USERPROFILE%/.local/share/atuin/history.db
|
||||||
|
# db_path = "~/.history.db"
|
||||||
|
|
||||||
|
## where to store your encryption key, default is your system data directory
|
||||||
|
## linux/mac: ~/.local/share/atuin/key
|
||||||
|
## windows: %USERPROFILE%/.local/share/atuin/key
|
||||||
|
# key_path = "~/.key"
|
||||||
|
|
||||||
|
## where to store your auth session token, default is your system data directory
|
||||||
|
## linux/mac: ~/.local/share/atuin/session
|
||||||
|
## windows: %USERPROFILE%/.local/share/atuin/session
|
||||||
|
# session_path = "~/.session"
|
||||||
|
|
||||||
|
## date format used, either "us" or "uk"
|
||||||
|
# dialect = "us"
|
||||||
|
|
||||||
|
## default timezone to use when displaying time
|
||||||
|
## either "l", "local" to use the system's current local timezone, or an offset
|
||||||
|
## from UTC in the format of "<+|->H[H][:M[M][:S[S]]]"
|
||||||
|
## for example: "+9", "-05", "+03:30", "-01:23:45", etc.
|
||||||
|
# timezone = "local"
|
||||||
|
|
||||||
|
## enable or disable automatic sync
|
||||||
|
# auto_sync = true
|
||||||
|
|
||||||
|
## enable or disable automatic update checks
|
||||||
|
# update_check = true
|
||||||
|
|
||||||
|
## address of the sync server
|
||||||
|
# sync_address = "https://api.atuin.sh"
|
||||||
|
|
||||||
|
## how often to sync history. note that this is only triggered when a command
|
||||||
|
## is ran, so sync intervals may well be longer
|
||||||
|
## set it to 0 to sync after every command
|
||||||
|
# sync_frequency = "10m"
|
||||||
|
|
||||||
|
## which search mode to use
|
||||||
|
## possible values: prefix, fulltext, fuzzy, skim
|
||||||
|
# search_mode = "fuzzy"
|
||||||
|
|
||||||
|
## which filter mode to use
|
||||||
|
## possible values: global, host, session, directory
|
||||||
|
# filter_mode = "global"
|
||||||
|
#filter_mode = "session"
|
||||||
|
|
||||||
|
## With workspace filtering enabled, Atuin will filter for commands executed
|
||||||
|
## in any directory within a git repository tree (default: false)
|
||||||
|
# workspaces = false
|
||||||
|
# workspaces = true
|
||||||
|
|
||||||
|
## which filter mode to use when atuin is invoked from a shell up-key binding
|
||||||
|
## the accepted values are identical to those of "filter_mode"
|
||||||
|
## leave unspecified to use same mode set in "filter_mode"
|
||||||
|
# filter_mode_shell_up_key_binding = "global"
|
||||||
|
filter_mode_shell_up_key_binding = "session"
|
||||||
|
|
||||||
|
## which search mode to use when atuin is invoked from a shell up-key binding
|
||||||
|
## the accepted values are identical to those of "search_mode"
|
||||||
|
## leave unspecified to use same mode set in "search_mode"
|
||||||
|
# search_mode_shell_up_key_binding = "fuzzy"
|
||||||
|
search_mode_shell_up_key_binding = "prefix"
|
||||||
|
|
||||||
|
## which style to use
|
||||||
|
## possible values: auto, full, compact
|
||||||
|
# style = "auto"
|
||||||
|
style = "compact"
|
||||||
|
|
||||||
|
## the maximum number of lines the interface should take up
|
||||||
|
## set it to 0 to always go full screen
|
||||||
|
# inline_height = 0
|
||||||
|
inline_height = 6
|
||||||
|
|
||||||
|
## Invert the UI - put the search bar at the top , Default to `false`
|
||||||
|
# invert = false
|
||||||
|
# invert = true
|
||||||
|
|
||||||
|
## enable or disable showing a preview of the selected command
|
||||||
|
## useful when the command is longer than the terminal width and is cut off
|
||||||
|
# show_preview = false
|
||||||
|
|
||||||
|
## what to do when the escape key is pressed when searching
|
||||||
|
## possible values: return-original, return-query
|
||||||
|
# exit_mode = "return-original"
|
||||||
|
|
||||||
|
## possible values: emacs, subl
|
||||||
|
# word_jump_mode = "emacs"
|
||||||
|
|
||||||
|
## characters that count as a part of a word
|
||||||
|
# word_chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
|
||||||
|
|
||||||
|
## number of context lines to show when scrolling by pages
|
||||||
|
# scroll_context_lines = 1
|
||||||
|
|
||||||
|
## use ctrl instead of alt as the shortcut modifier key for numerical UI shortcuts
|
||||||
|
## alt-0 .. alt-9
|
||||||
|
# ctrl_n_shortcuts = false
|
||||||
|
|
||||||
|
ctrl_n_shortcuts = true
|
||||||
|
|
||||||
|
## default history list format - can also be specified with the --format arg
|
||||||
|
# history_format = "{time}\t{command}\t{duration}"
|
||||||
|
|
||||||
|
## prevent commands matching any of these regexes from being written to history.
|
||||||
|
## Note that these regular expressions are unanchored, i.e. if they don't start
|
||||||
|
## with ^ or end with $, they'll match anywhere in the command.
|
||||||
|
## For details on the supported regular expression syntax, see
|
||||||
|
## https://docs.rs/regex/latest/regex/#syntax
|
||||||
|
# history_filter = [
|
||||||
|
# "^secret-cmd",
|
||||||
|
# "^innocuous-cmd .*--secret=.+"
|
||||||
|
# ]
|
||||||
|
|
||||||
|
history_filter = []
|
||||||
|
|
||||||
|
## prevent commands run with cwd matching any of these regexes from being written
|
||||||
|
## to history. Note that these regular expressions are unanchored, i.e. if they don't
|
||||||
|
## start with ^ or end with $, they'll match anywhere in CWD.
|
||||||
|
## For details on the supported regular expression syntax, see
|
||||||
|
## https://docs.rs/regex/latest/regex/#syntax
|
||||||
|
# cwd_filter = [
|
||||||
|
# "^/very/secret/area"
|
||||||
|
# ]
|
||||||
|
|
||||||
|
cwd_filter = ["^~/media", "^/home/dln/media"]
|
||||||
|
|
||||||
|
## Configure the maximum height of the preview to show.
|
||||||
|
## Useful when you have long scripts in your history that you want to distinguish
|
||||||
|
## by more than the first few lines.
|
||||||
|
# max_preview_height = 4
|
||||||
|
|
||||||
|
## Configure whether or not to show the help row, which includes the current Atuin
|
||||||
|
## version (and whether an update is available), a keymap hint, and the total
|
||||||
|
## amount of commands in your history.
|
||||||
|
# show_help = true
|
||||||
|
show_help = false
|
||||||
|
|
||||||
|
## Defaults to true. This matches history against a set of default regex, and will not save it if we get a match. Defaults include
|
||||||
|
## 1. AWS key id
|
||||||
|
## 2. Github pat (old and new)
|
||||||
|
## 3. Slack oauth tokens (bot, user)
|
||||||
|
## 4. Slack webhooks
|
||||||
|
## 5. Stripe live/test keys
|
||||||
|
# secrets_filter = true
|
||||||
|
|
||||||
|
## Defaults to true. If enabled, upon hitting enter Atuin will immediately execute the command. Press tab to return to the shell and edit.
|
||||||
|
# This applies for new installs. Old installs will keep the old behaviour unless configured otherwise.
|
||||||
|
# enter_accept = false
|
||||||
|
enter_accept = true
|
||||||
|
|
||||||
|
|
||||||
|
## Defaults to "emacs". This specifies the keymap on the startup of `atuin
|
||||||
|
## search`. If this is set to "auto", the startup keymap mode in the Atuin
|
||||||
|
## search is automatically selected based on the shell's keymap where the
|
||||||
|
## keybinding is defined. If this is set to "emacs", "vim-insert", or
|
||||||
|
## "vim-normal", the startup keymap mode in the Atuin search is forced to be
|
||||||
|
## the specified one.
|
||||||
|
# keymap_mode = "auto"
|
||||||
|
|
||||||
|
## Cursor style in each keymap mode. If specified, the cursor style is changed
|
||||||
|
## in entering the cursor shape. Available values are "default" and
|
||||||
|
## "{blink,steady}-{block,underilne,bar}".
|
||||||
|
# keymap_cursor = { emacs = "blink-block", vim_insert = "blink-block", vim_normal = "steady-block" }
|
||||||
|
|
||||||
|
# network_connect_timeout = 5
|
||||||
|
# network_timeout = 5
|
||||||
|
|
||||||
|
## Timeout (in seconds) for acquiring a local database connection (sqlite)
|
||||||
|
# local_timeout = 5
|
||||||
|
|
||||||
|
## Set this to true and Atuin will minimize motion in the UI - timers will not update live, etc.
|
||||||
|
## Alternatively, set env NO_MOTION=true
|
||||||
|
# prefers_reduced_motion = false
|
||||||
|
|
||||||
|
prefers_reduced_motion = true
|
||||||
|
|
||||||
|
#[stats]
|
||||||
|
# Set commands where we should consider the subcommand for statistics. Eg, kubectl get vs just kubectl
|
||||||
|
#common_subcommands = [
|
||||||
|
# "cargo",
|
||||||
|
# "go",
|
||||||
|
# "git",
|
||||||
|
# "npm",
|
||||||
|
# "yarn",
|
||||||
|
# "pnpm",
|
||||||
|
# "kubectl",
|
||||||
|
#]
|
||||||
|
|
||||||
|
[stats]
|
||||||
|
common_subcommands = [
|
||||||
|
"cargo",
|
||||||
|
"go",
|
||||||
|
"git",
|
||||||
|
"nix",
|
||||||
|
"npm",
|
||||||
|
"yarn",
|
||||||
|
"pnpm",
|
||||||
|
"kubectl",
|
||||||
|
"task",
|
||||||
|
]
|
||||||
|
# Set commands that should be totally stripped and ignored from stats
|
||||||
|
#common_prefix = ["sudo"]
|
||||||
|
#
|
||||||
|
common_prefix = ["doas", "sudo"]
|
157
.config/autostart/gnome-keyring-ssh.desktop
Normal file
157
.config/autostart/gnome-keyring-ssh.desktop
Normal file
|
@ -0,0 +1,157 @@
|
||||||
|
[Desktop Entry]
|
||||||
|
Type=Application
|
||||||
|
Name[af]=SSH-sleutelagent
|
||||||
|
Name[ar]=عميل مفاتيح SSH
|
||||||
|
Name[as]=SSH কি সহায়ক
|
||||||
|
Name[ast]=Axente de claves SSH
|
||||||
|
Name[be]=SSH-агент ключоў
|
||||||
|
Name[bg]=Агентът на SSH за ключове
|
||||||
|
Name[bn]=SSH কী এজেন্ট
|
||||||
|
Name[bn_IN]=SSH কি এজেন্ট
|
||||||
|
Name[bs]=Agent za SSH ključeve
|
||||||
|
Name[ca]=Agent de claus SSH
|
||||||
|
Name[ca@valencia]=Agent de claus SSH
|
||||||
|
Name[cs]=Agent klíčů SSH
|
||||||
|
Name[da]=SSH-nøgleagent
|
||||||
|
Name[de]=SSH-Schlüsselagent
|
||||||
|
Name[el]=Πράκτορας κλειδιού SSH
|
||||||
|
Name[en_GB]=SSH Key Agent
|
||||||
|
Name[eo]=SSH-ŝlosila agento
|
||||||
|
Name[es]=Agente de claves SSH
|
||||||
|
Name[et]=SSH-võtmete agent
|
||||||
|
Name[eu]=SSH gako-agentea
|
||||||
|
Name[fa]=عامل کلید SSH
|
||||||
|
Name[fi]=SSH-avainten agentti
|
||||||
|
Name[fr]=Agent de clés SSH
|
||||||
|
Name[fur]=Agjent clâfs SSH
|
||||||
|
Name[gd]=Àidseant iuchair SSH
|
||||||
|
Name[gl]=Axente de chave SSH
|
||||||
|
Name[gu]=SSH કી ઍજન્ટ
|
||||||
|
Name[he]=סוכן מפתחות SSH
|
||||||
|
Name[hi]=AFS कुँजी प्रतिनिधि
|
||||||
|
Name[hr]=Agent SSH ključa
|
||||||
|
Name[hu]=SSH-kulcs ügynök
|
||||||
|
Name[id]=Agen Kunci SSH
|
||||||
|
Name[it]=Agente chiavi SSH
|
||||||
|
Name[ja]=SSH 鍵エージェント
|
||||||
|
Name[kk]=SSH кілттер агенті
|
||||||
|
Name[km]=ភ្នាក់ងារសោ SSH
|
||||||
|
Name[kn]=SSH ಕೀಲಿ ಮಧ್ಯವರ್ತಿ
|
||||||
|
Name[ko]=SSH 키 에이전트
|
||||||
|
Name[lt]=SSH raktų tarnyba
|
||||||
|
Name[lv]=SSH atslēgu aģents
|
||||||
|
Name[mjw]=SSH Key Agent
|
||||||
|
Name[mk]=Агент за SSH клучеви
|
||||||
|
Name[ml]=എസ്എസ്എച് കീ ഏജന്റ്
|
||||||
|
Name[mr]=SSH कि एजंट
|
||||||
|
Name[ms]=Ejen Kunci SSH
|
||||||
|
Name[nb]=SSH-nøkkelagent
|
||||||
|
Name[nl]=SSH-sleutelagent
|
||||||
|
Name[nn]=Nøkkelagent for SSH
|
||||||
|
Name[oc]=Agent de claus SSH
|
||||||
|
Name[or]=SSH କି ସଦସ୍ୟ
|
||||||
|
Name[pa]=SSH ਕੁੰਜੀ ਏਜੰਟ
|
||||||
|
Name[pl]=Agent kluczy SSH
|
||||||
|
Name[pt]=Agente de chaves SSH
|
||||||
|
Name[pt_BR]=Agente de chaves SSH
|
||||||
|
Name[ro]=Agent pentru chei SSH
|
||||||
|
Name[ru]=Агент ключей SSH
|
||||||
|
Name[sk]=Agent kľúčov SSH
|
||||||
|
Name[sl]=Agent ključev SSH
|
||||||
|
Name[sr]=Агент за ССХ кључеве
|
||||||
|
Name[sr@latin]=Agent za SSH ključeve
|
||||||
|
Name[sv]=SSH-nyckelagent
|
||||||
|
Name[ta]=SSH முகவர்
|
||||||
|
Name[te]=SSH కీ వాహకము
|
||||||
|
Name[th]=เอเจนต์กุญแจ SSH
|
||||||
|
Name[tr]=SSH Anahtar Aracı
|
||||||
|
Name[ug]=SSH ئاچقۇچ ياردەمچىسى
|
||||||
|
Name[uk]=Агент ключів SSH
|
||||||
|
Name[vi]=Đại diện khóa SSH
|
||||||
|
Name[zh_CN]=SSH 密钥代理
|
||||||
|
Name[zh_HK]=SSH 密碼匙代理程式
|
||||||
|
Name[zh_TW]=SSH 金鑰代理程式
|
||||||
|
Name=SSH Key Agent
|
||||||
|
Comment[af]=GNOME-sleutelring: SSH-agent
|
||||||
|
Comment[ar]=حلقة مفاتيح جنوم: عميل SSH
|
||||||
|
Comment[as]=GNOME Keyring: SSH সহায়ক
|
||||||
|
Comment[ast]=Depósitu de claves de GNOME: axente SSH
|
||||||
|
Comment[be]=Вязкі ключоў GNOME: SSH-агент
|
||||||
|
Comment[bg]=Ключодържател на GNOME: агент на SSH
|
||||||
|
Comment[bn]=GNOME কী রিং: SSH এজেন্ট
|
||||||
|
Comment[bn_IN]=GNOME Keyring: SSH এজেন্ট
|
||||||
|
Comment[bs]=Gnomovi privjesci: SSH agent
|
||||||
|
Comment[ca]=Anell de claus del GNOME: agent SSH
|
||||||
|
Comment[ca@valencia]=Anell de claus del GNOME: agent SSH
|
||||||
|
Comment[cs]=Klíčenka GNOME: Agent SSH
|
||||||
|
Comment[da]=GNOME-nøgleringsdæmon: SSH-agent
|
||||||
|
Comment[de]=GNOME-Schlüsselbunddienst: SSH-Agent
|
||||||
|
Comment[el]=Κλειδοθήκη GNOME: Πράκτορας SSH
|
||||||
|
Comment[en_GB]=GNOME Keyring: SSH Agent
|
||||||
|
Comment[eo]=GNOME Ŝlosilaro: SSH-agento
|
||||||
|
Comment[es]=Depósito de claves de GNOME: agente SSH
|
||||||
|
Comment[et]=GNOME võtmerõngas: SSH-agent
|
||||||
|
Comment[eu]=GNOMEren gako-sorta: SSH agentea
|
||||||
|
Comment[fa]=دستهکلید گنوم: عامل SSH
|
||||||
|
Comment[fi]=Gnomen avainnippu: SSH-agentti
|
||||||
|
Comment[fr]=Trousseau de clés de GNOME : agent SSH
|
||||||
|
Comment[fur]=Puarteclâfs di GNOME: agjent SSH
|
||||||
|
Comment[gd]=Dul-iuchrach: Àidseant SSH
|
||||||
|
Comment[gl]=GNOME Keyring: Axente SSH
|
||||||
|
Comment[gu]=GNOME કીરીંગ: SSH ઍજન્ટ
|
||||||
|
Comment[he]=קבוצת מפתחות של GNOME: סוכן SSH
|
||||||
|
Comment[hi]=गनोम कीरिंग: SSH प्रतिनिधि
|
||||||
|
Comment[hr]=GNOME skup ključeva: SSH agent
|
||||||
|
Comment[hu]=GNOME kulcstartó – SSH-ügynök
|
||||||
|
Comment[id]=Ring Kunci GNOME: Agen SSH
|
||||||
|
Comment[it]=Portachiavi di GNOME: agente SSH
|
||||||
|
Comment[ja]=GNOME キーリング: SSH エージェント
|
||||||
|
Comment[kk]=GNOME Keyring: SSH агенті
|
||||||
|
Comment[km]=GNOME Keyring ៖ ភ្នាក់ងារ SSH
|
||||||
|
Comment[kn]=GNOME ಕೀಲಿಗೊಂಚಲು: SSH ಮಧ್ಯವರ್ತಿ
|
||||||
|
Comment[ko]=그놈 키 모음: SSH 에이전트
|
||||||
|
Comment[lt]=GNOME raktinė: SSH tarnyba
|
||||||
|
Comment[lv]=GNOME atslēgu saišķis — SSH aģents
|
||||||
|
Comment[mjw]=GNOME Keyring: SSH Agent
|
||||||
|
Comment[mk]=Приврзок на GNOME: SSH агент
|
||||||
|
Comment[ml]=ഗ്നോം കീറിങ്: എസ്എസ്എച് ഏജന്റ്
|
||||||
|
Comment[mr]=GNOME किरिंग: SSH एजंट
|
||||||
|
Comment[ms]=Gelang Kunci GNOME: Ejen SSH
|
||||||
|
Comment[nb]=GNOME nøkkelring: SSH-agent
|
||||||
|
Comment[ne]=जिनोम किरिङ : SSH एजेन्ट
|
||||||
|
Comment[nl]=Sleutelbos-service: SSH-agent
|
||||||
|
Comment[nn]=GNOME Nøkkelring: SSH-agent
|
||||||
|
Comment[oc]=Trossèl de claus GNOME : agent SSH
|
||||||
|
Comment[or]=GNOME କି ରିଙ୍ଗ: SSH ସଦସ୍ୟ
|
||||||
|
Comment[pa]=ਗਨੋਮ ਕੀਰਿੰਗ: SSH ਏਜੰਟ
|
||||||
|
Comment[pl]=Baza kluczy dla środowiska GNOME: agent SSH
|
||||||
|
Comment[pt]=GNOME Keyring: agente SSH
|
||||||
|
Comment[pt_BR]=Chaveiro do GNOME: Agente SSH
|
||||||
|
Comment[ro]=Inelul de chei GNOME: Agent SSH
|
||||||
|
Comment[ru]=Связка ключей GNOME: SSH-агент
|
||||||
|
Comment[sk]=SSH agent zväzku kľúčov GNOME
|
||||||
|
Comment[sl]=Zbirka ključev GNOME: agent SSH
|
||||||
|
Comment[sr]=Гномови привесци: ССХ агент
|
||||||
|
Comment[sr@latin]=Gnomovi privesci: SSH agent
|
||||||
|
Comment[sv]=GNOME-nyckelring: SSH-agent
|
||||||
|
Comment[ta]=GNOME கீரிங்: SSH முகவர்
|
||||||
|
Comment[te]=GNOME కీరింగ్: SSH వాహకం
|
||||||
|
Comment[th]=พวงกุญแจของ GNOME: เอเจนต์ SSH
|
||||||
|
Comment[tr]=GNOME Anahtarlığı: SSH Aracı
|
||||||
|
Comment[ug]=گىنوم ئاچقۇچ ھالقىسى:SSH ياردەمچىسى
|
||||||
|
Comment[uk]=Служба в'язки ключів GNOME: агент SSH
|
||||||
|
Comment[vi]=Chùm chìa khóa GNOME: Đại diện SSH
|
||||||
|
Comment[zh_CN]=GNOME 密钥环:SSH 代理
|
||||||
|
Comment[zh_HK]=GNOME 密碼匙圈:SSH 代理程式
|
||||||
|
Comment[zh_TW]=GNOME 鑰匙圈:SSH 代理程式
|
||||||
|
Comment=GNOME Keyring: SSH Agent
|
||||||
|
Exec=/usr/bin/gnome-keyring-daemon --start --components=ssh
|
||||||
|
OnlyShowIn=GNOME;Unity;MATE;Cinnamon;
|
||||||
|
X-GNOME-Autostart-Phase=PreDisplayServer
|
||||||
|
X-GNOME-AutoRestart=false
|
||||||
|
X-GNOME-Autostart-Notify=true
|
||||||
|
X-GNOME-Bugzilla-Bugzilla=GNOME
|
||||||
|
X-GNOME-Bugzilla-Product=gnome-keyring
|
||||||
|
X-GNOME-Bugzilla-Component=general
|
||||||
|
X-GNOME-Bugzilla-Version=42.1
|
||||||
|
Hidden=true
|
3
.config/bat/config
Normal file
3
.config/bat/config
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
--italic-text=always
|
||||||
|
--plain
|
||||||
|
--theme=ansi
|
2021
.config/bat/themes/Catppuccin Mocha.tmTheme
Normal file
2021
.config/bat/themes/Catppuccin Mocha.tmTheme
Normal file
File diff suppressed because it is too large
Load diff
260
.config/broot/conf.hjson
Normal file
260
.config/broot/conf.hjson
Normal file
|
@ -0,0 +1,260 @@
|
||||||
|
###############################################################
|
||||||
|
# This configuration file lets you
|
||||||
|
# - define new commands
|
||||||
|
# - change the shortcut or triggering keys of built-in verbs
|
||||||
|
# - change the colors
|
||||||
|
# - set default values for flags
|
||||||
|
# - set special behaviors on specific paths
|
||||||
|
# - and more...
|
||||||
|
#
|
||||||
|
# Configuration documentation is available at
|
||||||
|
# https://dystroy.org/broot
|
||||||
|
#
|
||||||
|
# This file's format is Hjson ( https://hjson.github.io/ ). Some
|
||||||
|
# properties are commented out. To enable them, remove the `#`.
|
||||||
|
#
|
||||||
|
###############################################################
|
||||||
|
|
||||||
|
###############################################################
|
||||||
|
# Default flags
|
||||||
|
# You can set up flags you want broot to start with by
|
||||||
|
# default, for example `default_flags="-ihp"` if you usually want
|
||||||
|
# to see hidden and gitignored files and the permissions (then
|
||||||
|
# if you don't want the hidden files at a specific launch,
|
||||||
|
# you can launch broot with `br -H`).
|
||||||
|
# A popular flag is the `g` one which displays git related info.
|
||||||
|
#
|
||||||
|
# default_flags:
|
||||||
|
|
||||||
|
###############################################################
|
||||||
|
# Terminal's title
|
||||||
|
# If you want the terminal's title to be updated when you change
|
||||||
|
# directory, set a terminal_title pattern by uncommenting one of
|
||||||
|
# the examples below and tuning it to your taste.
|
||||||
|
#
|
||||||
|
# terminal_title: "[broot] {git-name}"
|
||||||
|
# terminal_title: "{file} 🐄"
|
||||||
|
# terminal_title: "-= {file-name} =-"
|
||||||
|
|
||||||
|
###############################################################
|
||||||
|
# Date/Time format
|
||||||
|
# If you want to change the format for date/time, uncomment the
|
||||||
|
# following line and change it according to
|
||||||
|
# https://docs.rs/chrono/0.4.11/chrono/format/strftime/index.html
|
||||||
|
#
|
||||||
|
# date_time_format: %Y/%m/%d %R
|
||||||
|
|
||||||
|
###############################################################
|
||||||
|
# uncomment to activate modal mode
|
||||||
|
#
|
||||||
|
# (you really should read https://dystroy.org/broot/modal/
|
||||||
|
# before as it may not suit everybody even among vim users)
|
||||||
|
#
|
||||||
|
# You may start either in 'command' mode, or in 'input' mode
|
||||||
|
#
|
||||||
|
# modal: true
|
||||||
|
# initial_mode: command
|
||||||
|
|
||||||
|
###############################################################
|
||||||
|
# Whether to mark the selected line with a triangle
|
||||||
|
#
|
||||||
|
show_selection_mark: true
|
||||||
|
|
||||||
|
###############################################################
|
||||||
|
# Column order
|
||||||
|
# cols_order, if specified, must be a permutation of the following
|
||||||
|
# array. You should keep the name column at the end as it has a
|
||||||
|
# variable length.
|
||||||
|
#
|
||||||
|
# cols_order: [
|
||||||
|
# mark
|
||||||
|
# git
|
||||||
|
# size
|
||||||
|
# permission
|
||||||
|
# date
|
||||||
|
# count
|
||||||
|
# branch
|
||||||
|
# name
|
||||||
|
# ]
|
||||||
|
|
||||||
|
###############################################################
|
||||||
|
# True Colors
|
||||||
|
# If this parameter isn't set, broot tries to automatically
|
||||||
|
# determine whether true colors (24 bits) are available.
|
||||||
|
# As this process is unreliable, you may uncomment this setting
|
||||||
|
# and set it to false or true if you notice the colors in
|
||||||
|
# previewed images are too off.
|
||||||
|
#
|
||||||
|
# true_colors: false
|
||||||
|
|
||||||
|
###############################################################
|
||||||
|
# Icons
|
||||||
|
# If you want to display icons in broot, uncomment this line
|
||||||
|
# (see https://dystroy.org/broot/icons for installation and
|
||||||
|
# troubleshooting)
|
||||||
|
#
|
||||||
|
# icon_theme: vscode
|
||||||
|
icon_theme: nerdfont
|
||||||
|
|
||||||
|
###############################################################
|
||||||
|
# Special paths
|
||||||
|
# If some paths must be handled specially, uncomment (and change
|
||||||
|
# this section as per the examples)
|
||||||
|
# Setting "list":"never" on a dir prevents broot from looking at its
|
||||||
|
# children when searching, unless the dir is the selected root.
|
||||||
|
# Setting "sum":"never" on a dir prevents broot from looking at its
|
||||||
|
# children when computing the total size and count of files.
|
||||||
|
# Setting "show":"always" makes a file visible even if its name
|
||||||
|
# starts with a dot.
|
||||||
|
# Setting "list":"always" may be useful on a link to a directory
|
||||||
|
# (they're otherwise not entered by broot unless selected)
|
||||||
|
#
|
||||||
|
special_paths: {
|
||||||
|
"/media" : {
|
||||||
|
list: "never"
|
||||||
|
sum: "never"
|
||||||
|
}
|
||||||
|
"~/.config": { "show": "always" }
|
||||||
|
"trav": {
|
||||||
|
show: always
|
||||||
|
list: "always",
|
||||||
|
sum: "never"
|
||||||
|
}
|
||||||
|
# "~/useless": { "show": "never" }
|
||||||
|
# "~/my-link-I-want-to-explore": { "list": "always" }
|
||||||
|
}
|
||||||
|
|
||||||
|
###############################################################
|
||||||
|
# Quit on last cancel
|
||||||
|
# You can usually cancel the last state change on escape.
|
||||||
|
# If you want the escape key to quit broot when there's nothing
|
||||||
|
# to cancel (for example when you just opened broot), uncomment
|
||||||
|
# this parameter
|
||||||
|
#
|
||||||
|
# quit_on_last_cancel: true
|
||||||
|
|
||||||
|
quit_on_last_cancel: true
|
||||||
|
|
||||||
|
###############################################################
|
||||||
|
# Search modes
|
||||||
|
#
|
||||||
|
# broot allows many search modes.
|
||||||
|
# A search mode is defined by
|
||||||
|
# - the way to search: 'fuzzy', 'exact', 'regex', or 'tokens'.
|
||||||
|
# - where to search: file 'name', 'path', or file 'content'
|
||||||
|
# A search pattern may for example be "fuzzy path" (default),
|
||||||
|
# "regex content" or "exact path".
|
||||||
|
#
|
||||||
|
# The search mode is selected from its prefix. For example, if
|
||||||
|
# you type "abc", the default mode is "fuzzy path". If you type
|
||||||
|
# "/abc", the mode is "regex path". If you type "rn/abc", the mode
|
||||||
|
# is "regex name".
|
||||||
|
#
|
||||||
|
# This mapping may be modified. You may want to dedicate the
|
||||||
|
# empty prefix (the one which doesn't need a '/') to the
|
||||||
|
# search mode you use most often. The example below makes it
|
||||||
|
# easy to search on name rather than on the subpath.
|
||||||
|
#
|
||||||
|
# More information on
|
||||||
|
# https://dystroy.org/broot/input/#the-filtering-pattern
|
||||||
|
#
|
||||||
|
# search_modes: {
|
||||||
|
# <empty>: fuzzy name
|
||||||
|
# /: regex name
|
||||||
|
# }
|
||||||
|
|
||||||
|
###############################################################
|
||||||
|
# File Extension Colors
|
||||||
|
#
|
||||||
|
# uncomment and modify the next section if you want to color
|
||||||
|
# file name depending on their extension
|
||||||
|
#
|
||||||
|
# ext_colors: {
|
||||||
|
# png: rgb(255, 128, 75)
|
||||||
|
# rs: yellow
|
||||||
|
# }
|
||||||
|
|
||||||
|
###############################################################
|
||||||
|
# Max file size for content search
|
||||||
|
#
|
||||||
|
# Bigger files are ignored when searching their content. You
|
||||||
|
# can specify this size either in ISO units (eg 5GB) or in
|
||||||
|
# the old binary units (eg 44Kib)
|
||||||
|
content_search_max_file_size: 10MB
|
||||||
|
|
||||||
|
###############################################################
|
||||||
|
# Max Panels Count
|
||||||
|
#
|
||||||
|
# Change this if you sometimes want to have more than 2 panels
|
||||||
|
# open
|
||||||
|
# max_panels_count: 2
|
||||||
|
|
||||||
|
###############################################################
|
||||||
|
# Update work dir
|
||||||
|
#
|
||||||
|
# By default, broot process' work dir is kept in sync with the
|
||||||
|
# current's panel root. If you want to keep it unchanged,
|
||||||
|
# uncomment this setting
|
||||||
|
#
|
||||||
|
# update_work_dir: false
|
||||||
|
|
||||||
|
###############################################################
|
||||||
|
# Kitty Keyboard extension
|
||||||
|
#
|
||||||
|
# If you want to use advanced keyboard shortcuts in Kitty
|
||||||
|
# compatible terminals (Kitty, Wezterm), set this to true.
|
||||||
|
#
|
||||||
|
# This makes it possible to use shortcuts like 'space-n',
|
||||||
|
# 'ctrl-alt-a-b', 'shift-space', etc.
|
||||||
|
#
|
||||||
|
enable_kitty_keyboard: true
|
||||||
|
|
||||||
|
###############################################################
|
||||||
|
# lines around matching line in filtered preview
|
||||||
|
#
|
||||||
|
# When searching the content of a file, you can have either
|
||||||
|
# only the matching lines displayed, or some of the surrounding
|
||||||
|
# ones too.
|
||||||
|
#
|
||||||
|
lines_before_match_in_preview: 1
|
||||||
|
lines_after_match_in_preview: 1
|
||||||
|
|
||||||
|
###############################################################
|
||||||
|
# Imports
|
||||||
|
#
|
||||||
|
# While it's possible to have all configuration in one file,
|
||||||
|
# it's more convenient to split it in several ones.
|
||||||
|
# Importing also allows to set a condition on the terminal's
|
||||||
|
# color, which makes it possible to have a different skin
|
||||||
|
# chosen when your terminal has a light background and when
|
||||||
|
# it has a light one.
|
||||||
|
imports: [
|
||||||
|
|
||||||
|
# Verbs are better configured in verbs.hjson. But you
|
||||||
|
# can also add another files for your personal verbs
|
||||||
|
verbs.hjson
|
||||||
|
|
||||||
|
# This file contains the skin to use when the terminal
|
||||||
|
# is dark (or when this couldn't be determined)
|
||||||
|
{
|
||||||
|
luma: [
|
||||||
|
dark
|
||||||
|
unknown
|
||||||
|
]
|
||||||
|
# (un)comment to choose your preferred skin
|
||||||
|
file: skins/dark-blue.hjson
|
||||||
|
//file: skins/catppuccin-macchiato.hjson
|
||||||
|
//file: skins/catppuccin-mocha.hjson
|
||||||
|
//file: skins/dark-gruvbox.hjson
|
||||||
|
//file: skins/dark-orange.hjson
|
||||||
|
//file: skins/solarized-dark.hjson
|
||||||
|
}
|
||||||
|
|
||||||
|
# This skin is imported when your terminal is light
|
||||||
|
{
|
||||||
|
luma: light
|
||||||
|
# (un)comment to choose your preferred skin
|
||||||
|
//file: skins/solarized-light.hjson
|
||||||
|
file: skins/white.hjson
|
||||||
|
}
|
||||||
|
]
|
1
.config/broot/launcher/bash/br
Symbolic link
1
.config/broot/launcher/bash/br
Symbolic link
|
@ -0,0 +1 @@
|
||||||
|
/home/dln/.local/share/broot/launcher/bash/1
|
4
.config/broot/launcher/installed-v4
Normal file
4
.config/broot/launcher/installed-v4
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
|
||||||
|
This file tells broot the installation of the br function was done.
|
||||||
|
If there's a problem and you want to install it again run
|
||||||
|
broot -- install
|
17
.config/broot/select.hjson
Normal file
17
.config/broot/select.hjson
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
verbs: [
|
||||||
|
{
|
||||||
|
invocation: "ok"
|
||||||
|
key: "enter"
|
||||||
|
leave_broot: true
|
||||||
|
execution: ":print_path"
|
||||||
|
apply_to: "directory"
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
invocation: "broot_home"
|
||||||
|
keys: ["ctrl-7", "ctrl-g"]
|
||||||
|
execution: "broot -f --conf ~/.config/broot/select.hjson $HOME"
|
||||||
|
leave_broot: true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
171
.config/broot/skins/catppuccin-macchiato.hjson
Normal file
171
.config/broot/skins/catppuccin-macchiato.hjson
Normal file
|
@ -0,0 +1,171 @@
|
||||||
|
###############################################################
|
||||||
|
# A skin for a terminal with a dark background
|
||||||
|
# This skin uses RGB values so won't work for some
|
||||||
|
# terminals.
|
||||||
|
#
|
||||||
|
# Created by Majixed
|
||||||
|
# Based on the catppuccin-mocha theme by A. Taha Baki <atahabaki@pm.me>
|
||||||
|
#
|
||||||
|
# Doc at https://dystroy.org/broot/skins/
|
||||||
|
###############################################################
|
||||||
|
|
||||||
|
skin: {
|
||||||
|
input: rgb(202, 211, 245) none
|
||||||
|
# fg:none bg:$surface2
|
||||||
|
selected_line: none rgb(91, 96, 120)
|
||||||
|
# fg:$text bg:none
|
||||||
|
default: rgb(202, 211, 245) none
|
||||||
|
# fg:$overlay0 bg:none
|
||||||
|
tree: rgb(110, 115, 141) none
|
||||||
|
# fg:$sapphire bg:none
|
||||||
|
parent: rgb(125, 196, 228) none
|
||||||
|
file: none none
|
||||||
|
#
|
||||||
|
### PERMISSIONS
|
||||||
|
#
|
||||||
|
perm__: rgb(184, 192, 224) none
|
||||||
|
# $peach
|
||||||
|
perm_r: rgb(245, 169, 127) none
|
||||||
|
# $maroon
|
||||||
|
perm_w: rgb(238, 153, 160) none
|
||||||
|
# $green
|
||||||
|
perm_x: rgb(166, 218, 149) none
|
||||||
|
# $teal
|
||||||
|
owner: rgb(139, 213, 202) none
|
||||||
|
# $sky
|
||||||
|
group: rgb(145, 215, 227) none
|
||||||
|
#
|
||||||
|
### DATE
|
||||||
|
#
|
||||||
|
# $subtext1
|
||||||
|
dates: rgb(184, 192, 224) none
|
||||||
|
#
|
||||||
|
### DIRECTORY
|
||||||
|
#
|
||||||
|
# $lavender
|
||||||
|
directory: rgb(183, 189, 248) none Bold
|
||||||
|
# $green
|
||||||
|
exe: rgb(166, 218, 149) none
|
||||||
|
# $yellow
|
||||||
|
link: rgb(238, 212, 159) none
|
||||||
|
# $subtext0
|
||||||
|
pruning: rgb(165, 173, 203) none Italic
|
||||||
|
#
|
||||||
|
### PREVIEW
|
||||||
|
#
|
||||||
|
# fg:$text bg:$mantle
|
||||||
|
preview_title: rgb(202, 211, 245) rgb(30, 32, 48)
|
||||||
|
# fg:$text bg:$mantle
|
||||||
|
preview: rgb(202, 211, 245) rgb(30, 32, 48)
|
||||||
|
# fg:$overlay0
|
||||||
|
preview_line_number: rgb(110, 115, 141) none
|
||||||
|
# fg:$overlay0
|
||||||
|
preview_separator: rgb(110, 115, 141) none
|
||||||
|
#
|
||||||
|
### MATCH
|
||||||
|
#
|
||||||
|
char_match: rgb(238, 212, 159) rgb(73, 77, 100) Bold Italic
|
||||||
|
content_match: rgb(238, 212, 159) rgb(73, 77, 100) Bold Italic
|
||||||
|
preview_match: rgb(238, 212, 159) rgb(73, 77, 100) Bold Italic
|
||||||
|
|
||||||
|
# children count
|
||||||
|
# fg:$yellow bg:none
|
||||||
|
count: rgb(238, 212, 159) none
|
||||||
|
sparse: rgb(237, 135, 150) none
|
||||||
|
content_extract: rgb(237, 135, 150) none Italic
|
||||||
|
#
|
||||||
|
### GIT
|
||||||
|
#
|
||||||
|
git_branch: rgb(245, 169, 127) none
|
||||||
|
git_insertions: rgb(245, 169, 127) none
|
||||||
|
git_deletions: rgb(245, 169, 127) none
|
||||||
|
git_status_current: rgb(245, 169, 127) none
|
||||||
|
git_status_modified: rgb(245, 169, 127) none
|
||||||
|
git_status_new: rgb(245, 169, 127) none Bold
|
||||||
|
git_status_ignored: rgb(245, 169, 127) none
|
||||||
|
git_status_conflicted: rgb(245, 169, 127) none
|
||||||
|
git_status_other: rgb(245, 169, 127) none
|
||||||
|
staging_area_title: rgb(245, 169, 127) none
|
||||||
|
#
|
||||||
|
### FLAG
|
||||||
|
#
|
||||||
|
flag_label: rgb(237, 135, 150) none
|
||||||
|
flag_value: rgb(237, 135, 150) none Bold
|
||||||
|
#
|
||||||
|
### STATUS
|
||||||
|
#
|
||||||
|
# fg:none #bg:$mantle
|
||||||
|
status_normal: none rgb(30, 32, 48)
|
||||||
|
# fg:$red bg:$mantle
|
||||||
|
status_italic: rgb(237, 135, 150) rgb(30, 32, 48) Italic
|
||||||
|
# fg:$maroon bg:$mantle
|
||||||
|
status_bold: rgb(238, 153, 160) rgb(30, 32, 48) Bold
|
||||||
|
# fg:$maroon bg:$mantle
|
||||||
|
status_ellipsis: rgb(238, 153, 160) rgb(30, 32, 48) Bold
|
||||||
|
# fg:$text bg:$red
|
||||||
|
status_error: rgb(202, 211, 245) rgb(237, 135, 150)
|
||||||
|
# fg:$maroon bg:$mantle
|
||||||
|
status_job: rgb(238, 153, 160) rgb(40, 38, 37)
|
||||||
|
# fg:$maroon bg:$mantle
|
||||||
|
status_code: rgb(238, 153, 160) rgb(30, 32, 48) Italic
|
||||||
|
# fg:$maroon bg:$mantle
|
||||||
|
mode_command_mark: rgb(238, 153, 160) rgb(30, 32, 48) Bold
|
||||||
|
#
|
||||||
|
### HELP
|
||||||
|
#
|
||||||
|
# fg:$text
|
||||||
|
help_paragraph: rgb(202, 211, 245) none
|
||||||
|
# fg:$red
|
||||||
|
help_headers: rgb(237, 135, 150) none Bold
|
||||||
|
# fg:$peach
|
||||||
|
help_bold: rgb(245, 169, 127) none Bold
|
||||||
|
# fg:$yellow
|
||||||
|
help_italic: rgb(238, 212, 159) none Italic
|
||||||
|
# fg:green bg:$surface0
|
||||||
|
help_code: rgb(166, 218, 149) rgb(54, 58, 79)
|
||||||
|
# fg:$overlay0
|
||||||
|
help_table_border: rgb(110, 115, 141) none
|
||||||
|
#
|
||||||
|
### HEX
|
||||||
|
#
|
||||||
|
# fg:$text
|
||||||
|
hex_null: rgb(202, 211, 245) none
|
||||||
|
# fg:$peach
|
||||||
|
hex_ascii_graphic: rgb(245, 169, 127) none
|
||||||
|
# fg:$green
|
||||||
|
hex_ascii_whitespace: rgb(166, 218, 149) none
|
||||||
|
# fg: teal
|
||||||
|
hex_ascii_other: rgb(139, 213, 202) none
|
||||||
|
# fg: red
|
||||||
|
hex_non_ascii: rgb(237, 135, 150) none
|
||||||
|
|
||||||
|
# fg:$text bg:$red
|
||||||
|
file_error: rgb(243, 60, 44) none
|
||||||
|
#
|
||||||
|
### PURPOSE
|
||||||
|
#
|
||||||
|
purpose_normal: none none
|
||||||
|
purpose_italic: rgb(169, 90, 127) none Italic
|
||||||
|
purpose_bold: rgb(169, 90, 127) none Bold
|
||||||
|
purpose_ellipsis: none none
|
||||||
|
#
|
||||||
|
### SCROLLBAR
|
||||||
|
#
|
||||||
|
# fg:$surface0
|
||||||
|
scrollbar_track: rgb(54, 58, 79) none
|
||||||
|
# fg:$surface1
|
||||||
|
scrollbar_thumb: rgb(91, 96, 120) none
|
||||||
|
#
|
||||||
|
### GOODTOBAD
|
||||||
|
#
|
||||||
|
good_to_bad_0: rgb(166, 218, 149) none
|
||||||
|
good_to_bad_1: rgb(139, 213, 202) none
|
||||||
|
good_to_bad_2: rgb(145, 215, 227) none
|
||||||
|
good_to_bad_3: rgb(125, 196, 228) none
|
||||||
|
good_to_bad_4: rgb(138, 173, 244) none
|
||||||
|
good_to_bad_5: rgb(183, 189, 248) none
|
||||||
|
good_to_bad_6: rgb(198, 160, 246) none
|
||||||
|
good_to_bad_7: rgb(245, 169, 127) none
|
||||||
|
good_to_bad_8: rgb(238, 153, 160) none
|
||||||
|
good_to_bad_9: rgb(237, 135, 150) none
|
||||||
|
}
|
171
.config/broot/skins/catppuccin-mocha.hjson
Normal file
171
.config/broot/skins/catppuccin-mocha.hjson
Normal file
|
@ -0,0 +1,171 @@
|
||||||
|
###############################################################
|
||||||
|
# A skin for a terminal with a dark background
|
||||||
|
# This skin uses RGB values so won't work for some
|
||||||
|
# terminals.
|
||||||
|
#
|
||||||
|
# Created by A. Taha Baki <atahabaki@pm.me>
|
||||||
|
# Based on the built-in gruvbox theme.
|
||||||
|
#
|
||||||
|
# Doc at https://dystroy.org/broot/skins/
|
||||||
|
###############################################################
|
||||||
|
|
||||||
|
skin: {
|
||||||
|
input: rgb(205, 214, 244) none
|
||||||
|
# fg:none bg:$surface2
|
||||||
|
selected_line: none rgb(88, 91, 112)
|
||||||
|
# fg:$text bg:none
|
||||||
|
default: rgb(205, 214, 244) none
|
||||||
|
# fg:$overlay0 bg:none
|
||||||
|
tree: rgb(108, 112, 134) none
|
||||||
|
# fg:$sapphire bg:none
|
||||||
|
parent: rgb(116, 199, 236) none
|
||||||
|
file: none none
|
||||||
|
#
|
||||||
|
### PERMISSIONS
|
||||||
|
#
|
||||||
|
perm__: rgb(186, 194, 222) none
|
||||||
|
# $peach
|
||||||
|
perm_r: rgb(250, 179, 135) none
|
||||||
|
# $maroon
|
||||||
|
perm_w: rgb(235, 160, 172) none
|
||||||
|
# $green
|
||||||
|
perm_x: rgb(166, 227, 161) none
|
||||||
|
# $teal
|
||||||
|
owner: rgb(148, 226, 213) none
|
||||||
|
# $sky
|
||||||
|
group: rgb(137, 220, 235) none
|
||||||
|
#
|
||||||
|
### DATE
|
||||||
|
#
|
||||||
|
# $subtext1
|
||||||
|
dates: rgb(186, 194, 222) none
|
||||||
|
#
|
||||||
|
### DIRECTORY
|
||||||
|
#
|
||||||
|
# $lavender
|
||||||
|
directory: rgb(180, 190, 254) none Bold
|
||||||
|
# $green
|
||||||
|
exe: rgb(166, 227, 161) none
|
||||||
|
# $yellow
|
||||||
|
link: rgb(249, 226, 175) none
|
||||||
|
# $subtext0
|
||||||
|
pruning: rgb(166, 173, 200) none Italic
|
||||||
|
#
|
||||||
|
### PREVIEW
|
||||||
|
#
|
||||||
|
# fg:$text bg:$mantle
|
||||||
|
preview_title: rgb(205, 214, 244) rgb(24, 24, 37)
|
||||||
|
# fg:$text bg:$mantle
|
||||||
|
preview: rgb(205, 214, 244) rgb(24, 24, 37)
|
||||||
|
# fg:$overlay0
|
||||||
|
preview_line_number: rgb(108, 112, 134) none
|
||||||
|
# fg:$overlay0
|
||||||
|
preview_separator: rgb(108, 112, 134) none
|
||||||
|
#
|
||||||
|
### MATCH
|
||||||
|
#
|
||||||
|
char_match: rgb(249, 226, 175) rgb(69, 71, 90) Bold Italic
|
||||||
|
content_match: rgb(249, 226, 175) rgb(69, 71, 90) Bold Italic
|
||||||
|
preview_match: rgb(249, 226, 175) rgb(69, 71, 90) Bold Italic
|
||||||
|
|
||||||
|
# children count
|
||||||
|
# fg:$yellow bg:none
|
||||||
|
count: rgb(249, 226, 175) none
|
||||||
|
sparse: rgb(243, 139, 168) none
|
||||||
|
content_extract: rgb(243, 139, 168) none Italic
|
||||||
|
#
|
||||||
|
### GIT
|
||||||
|
#
|
||||||
|
git_branch: rgb(250, 179, 135) none
|
||||||
|
git_insertions: rgb(250, 179, 135) none
|
||||||
|
git_deletions: rgb(250, 179, 135) none
|
||||||
|
git_status_current: rgb(250, 179, 135) none
|
||||||
|
git_status_modified: rgb(250, 179, 135) none
|
||||||
|
git_status_new: rgb(250, 179, 135) none Bold
|
||||||
|
git_status_ignored: rgb(250, 179, 135) none
|
||||||
|
git_status_conflicted: rgb(250, 179, 135) none
|
||||||
|
git_status_other: rgb(250, 179, 135) none
|
||||||
|
staging_area_title: rgb(250, 179, 135) none
|
||||||
|
#
|
||||||
|
### FLAG
|
||||||
|
#
|
||||||
|
flag_label: rgb(243, 139, 168) none
|
||||||
|
flag_value: rgb(243, 139, 168) none Bold
|
||||||
|
#
|
||||||
|
### STATUS
|
||||||
|
#
|
||||||
|
# fg:none #bg:$mantle
|
||||||
|
status_normal: none rgb(24, 24, 37)
|
||||||
|
# fg:$red bg:$mantle
|
||||||
|
status_italic: rgb(243, 139, 168) rgb(24, 24, 37) Italic
|
||||||
|
# fg:$maroon bg:$mantle
|
||||||
|
status_bold: rgb(235, 160, 172) rgb(24, 24, 37) Bold
|
||||||
|
# fg:$maroon bg:$mantle
|
||||||
|
status_ellipsis: rgb(235, 160, 172) rgb(24, 24, 37) Bold
|
||||||
|
# fg:$text bg:$red
|
||||||
|
status_error: rgb(205, 214, 244) rgb(243, 139, 168)
|
||||||
|
# fg:$maroon bg:$mantle
|
||||||
|
status_job: rgb(235, 160, 172) rgb(40, 38, 37)
|
||||||
|
# fg:$maroon bg:$mantle
|
||||||
|
status_code: rgb(235, 160, 172) rgb(24, 24, 37) Italic
|
||||||
|
# fg:$maroon bg:$mantle
|
||||||
|
mode_command_mark: rgb(235, 160, 172) rgb(24, 24, 37) Bold
|
||||||
|
#
|
||||||
|
### HELP
|
||||||
|
#
|
||||||
|
# fg:$text
|
||||||
|
help_paragraph: rgb(205, 214, 244) none
|
||||||
|
# fg:$red
|
||||||
|
help_headers: rgb(243, 139, 168) none Bold
|
||||||
|
# fg:$peach
|
||||||
|
help_bold: rgb(250, 179, 135) none Bold
|
||||||
|
# fg:$yellow
|
||||||
|
help_italic: rgb(249, 226, 175) none Italic
|
||||||
|
# fg:green bg:$surface0
|
||||||
|
help_code: rgb(166, 227, 161) rgb(49, 50, 68)
|
||||||
|
# fg:$overlay0
|
||||||
|
help_table_border: rgb(108, 112, 134) none
|
||||||
|
#
|
||||||
|
### HEX
|
||||||
|
#
|
||||||
|
# fg:$text
|
||||||
|
hex_null: rgb(205, 214, 244) none
|
||||||
|
# fg:$peach
|
||||||
|
hex_ascii_graphic: rgb(250, 179, 135) none
|
||||||
|
# fg:$green
|
||||||
|
hex_ascii_whitespace: rgb(166, 227, 161) none
|
||||||
|
# fg: teal
|
||||||
|
hex_ascii_other: rgb(148, 226, 213) none
|
||||||
|
# fg: red
|
||||||
|
hex_non_ascii: rgb(243, 139, 168) none
|
||||||
|
|
||||||
|
# fg:$text bg:$red
|
||||||
|
file_error: rgb(251, 73, 52) none
|
||||||
|
#
|
||||||
|
### PURPOSE
|
||||||
|
#
|
||||||
|
purpose_normal: none none
|
||||||
|
purpose_italic: rgb(177, 98, 134) none Italic
|
||||||
|
purpose_bold: rgb(177, 98, 134) none Bold
|
||||||
|
purpose_ellipsis: none none
|
||||||
|
#
|
||||||
|
### SCROLLBAR
|
||||||
|
#
|
||||||
|
# fg:$surface0
|
||||||
|
scrollbar_track: rgb(49, 50, 68) none
|
||||||
|
# fg:$surface1
|
||||||
|
scrollbar_thumb: rgb(88, 91, 112) none
|
||||||
|
#
|
||||||
|
### GOODTOBAD
|
||||||
|
#
|
||||||
|
good_to_bad_0: rgb(166, 227, 161) none
|
||||||
|
good_to_bad_1: rgb(148, 226, 213) none
|
||||||
|
good_to_bad_2: rgb(137, 220, 235) none
|
||||||
|
good_to_bad_3: rgb(116, 199, 236) none
|
||||||
|
good_to_bad_4: rgb(137, 180, 250) none
|
||||||
|
good_to_bad_5: rgb(180, 190, 254) none
|
||||||
|
good_to_bad_6: rgb(203, 166, 247) none
|
||||||
|
good_to_bad_7: rgb(250, 179, 135) none
|
||||||
|
good_to_bad_8: rgb(235, 160, 172) none
|
||||||
|
good_to_bad_9: rgb(243, 139, 168) none
|
||||||
|
}
|
116
.config/broot/skins/dark-blue.hjson
Normal file
116
.config/broot/skins/dark-blue.hjson
Normal file
|
@ -0,0 +1,116 @@
|
||||||
|
###############################################################
|
||||||
|
# A skin for a terminal with a dark background
|
||||||
|
#
|
||||||
|
# To create your own skin, copy this file, change the entries
|
||||||
|
# and import your skin file from the main conf file (look
|
||||||
|
# for "imports")
|
||||||
|
#
|
||||||
|
# Doc at https://dystroy.org/broot/skins/
|
||||||
|
###############################################################
|
||||||
|
|
||||||
|
###############################################################
|
||||||
|
# Skin
|
||||||
|
# If you want to change the colors of broot,
|
||||||
|
# uncomment the following block and start messing
|
||||||
|
# with the various values.
|
||||||
|
# A skin entry value is made of two parts separated with a '/':
|
||||||
|
# The first one is the skin for the active panel.
|
||||||
|
# The second one, optional, is the skin for non active panels.
|
||||||
|
# You may find explanations and other skins on
|
||||||
|
# https://dystroy.org/broot/skins
|
||||||
|
###############################################################
|
||||||
|
skin: {
|
||||||
|
default: gray(22) none / gray(20) none
|
||||||
|
tree: gray(8) None / gray(4) None
|
||||||
|
parent: gray(18) None / gray(13) None
|
||||||
|
file: gray(22) None / gray(15) None
|
||||||
|
directory: ansi(110) None bold / ansi(110) None
|
||||||
|
exe: Cyan None
|
||||||
|
link: Magenta None
|
||||||
|
pruning: gray(12) None Italic
|
||||||
|
perm__: gray(5) None
|
||||||
|
perm_r: ansi(94) None
|
||||||
|
perm_w: ansi(132) None
|
||||||
|
perm_x: ansi(65) None
|
||||||
|
owner: ansi(138) None
|
||||||
|
group: ansi(131) None
|
||||||
|
count: ansi(138) gray(4)
|
||||||
|
dates: ansi(66) None
|
||||||
|
sparse: ansi(214) None
|
||||||
|
content_extract: ansi(29) None
|
||||||
|
content_match: ansi(34) None
|
||||||
|
device_id_major: ansi(138) None
|
||||||
|
device_id_sep: ansi(102) None
|
||||||
|
device_id_minor: ansi(138) None
|
||||||
|
git_branch: ansi(178) None
|
||||||
|
git_insertions: ansi(28) None
|
||||||
|
git_deletions: ansi(160) None
|
||||||
|
git_status_current: gray(5) None
|
||||||
|
git_status_modified: ansi(28) None
|
||||||
|
git_status_new: ansi(94) None bold
|
||||||
|
git_status_ignored: gray(17) None
|
||||||
|
git_status_conflicted: ansi(88) None
|
||||||
|
git_status_other: ansi(88) None
|
||||||
|
selected_line: None gray(6) / None gray(4)
|
||||||
|
char_match: Green None
|
||||||
|
file_error: Red None
|
||||||
|
flag_label: gray(15) gray(2)
|
||||||
|
flag_value: ansi(178) gray(2) bold
|
||||||
|
input: White gray(2) / gray(15) None
|
||||||
|
status_error: gray(22) ansi(124)
|
||||||
|
status_job: ansi(220) gray(5)
|
||||||
|
status_normal: gray(20) gray(4) / gray(2) gray(2)
|
||||||
|
status_italic: ansi(178) gray(4) / gray(2) gray(2)
|
||||||
|
status_bold: ansi(178) gray(4) bold / gray(2) gray(2)
|
||||||
|
status_code: ansi(229) gray(4) / gray(2) gray(2)
|
||||||
|
status_ellipsis: gray(19) gray(1) / gray(2) gray(2)
|
||||||
|
purpose_normal: gray(20) gray(2)
|
||||||
|
purpose_italic: ansi(178) gray(2)
|
||||||
|
purpose_bold: ansi(178) gray(2) bold
|
||||||
|
purpose_ellipsis: gray(20) gray(2)
|
||||||
|
scrollbar_track: gray(7) None / gray(4) None
|
||||||
|
scrollbar_thumb: gray(22) None / gray(14) None
|
||||||
|
help_paragraph: gray(20) None
|
||||||
|
help_bold: ansi(178) None bold
|
||||||
|
help_italic: ansi(229) None
|
||||||
|
help_code: gray(21) gray(3)
|
||||||
|
help_headers: ansi(178) None
|
||||||
|
help_table_border: ansi(239) None
|
||||||
|
preview: gray(20) gray(1) / gray(18) gray(2)
|
||||||
|
preview_title: gray(23) gray(2) / gray(21) gray(2)
|
||||||
|
preview_line_number: gray(12) gray(3)
|
||||||
|
preview_separator: gray(5) None
|
||||||
|
preview_match: None ansi(29)
|
||||||
|
hex_null: gray(8) None
|
||||||
|
hex_ascii_graphic: gray(18) None
|
||||||
|
hex_ascii_whitespace: ansi(143) None
|
||||||
|
hex_ascii_other: ansi(215) None
|
||||||
|
hex_non_ascii: ansi(167) None
|
||||||
|
staging_area_title: gray(22) gray(2) / gray(20) gray(3)
|
||||||
|
mode_command_mark: gray(5) ansi(204) bold
|
||||||
|
good_to_bad_0: ansi(28)
|
||||||
|
good_to_bad_1: ansi(29)
|
||||||
|
good_to_bad_2: ansi(29)
|
||||||
|
good_to_bad_3: ansi(29)
|
||||||
|
good_to_bad_4: ansi(29)
|
||||||
|
good_to_bad_5: ansi(100)
|
||||||
|
good_to_bad_6: ansi(136)
|
||||||
|
good_to_bad_7: ansi(172)
|
||||||
|
good_to_bad_8: ansi(166)
|
||||||
|
good_to_bad_9: ansi(196)
|
||||||
|
}
|
||||||
|
|
||||||
|
###############################################################
|
||||||
|
# Syntax Theme
|
||||||
|
#
|
||||||
|
# If you want to choose the theme used for preview, uncomment
|
||||||
|
# one of the following lines:
|
||||||
|
#
|
||||||
|
# syntax_theme: GitHub
|
||||||
|
# syntax_theme: SolarizedDark
|
||||||
|
# syntax_theme: SolarizedLight
|
||||||
|
syntax_theme: MochaDark
|
||||||
|
# syntax_theme: MochaDark
|
||||||
|
# syntax_theme: OceanDark
|
||||||
|
# syntax_theme: OceanLight
|
||||||
|
|
88
.config/broot/skins/dark-gruvbox.hjson
Normal file
88
.config/broot/skins/dark-gruvbox.hjson
Normal file
|
@ -0,0 +1,88 @@
|
||||||
|
###############################################################
|
||||||
|
# A skin for a terminal with a dark background
|
||||||
|
# This skin uses RGB values so won't work for some
|
||||||
|
# terminals.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# (initially contributed by @basbebe)
|
||||||
|
#
|
||||||
|
# Doc at https://dystroy.org/broot/skins/
|
||||||
|
###############################################################
|
||||||
|
|
||||||
|
skin: {
|
||||||
|
default: rgb(235, 219, 178) none / rgb(189, 174, 147) none
|
||||||
|
tree: rgb(70, 70, 80) None / rgb(60, 60, 60) None
|
||||||
|
parent: rgb(235, 219, 178) none / rgb(189, 174, 147) none Italic
|
||||||
|
file: None None / None None Italic
|
||||||
|
directory: rgb(131, 165, 152) None Bold / rgb(131, 165, 152) None
|
||||||
|
exe: rgb(184, 187, 38) None
|
||||||
|
link: rgb(104, 157, 106) None
|
||||||
|
pruning: rgb(124, 111, 100) None Italic
|
||||||
|
perm__: None None
|
||||||
|
perm_r: rgb(215, 153, 33) None
|
||||||
|
perm_w: rgb(204, 36, 29) None
|
||||||
|
perm_x: rgb(152, 151, 26) None
|
||||||
|
owner: rgb(215, 153, 33) None Bold
|
||||||
|
group: rgb(215, 153, 33) None
|
||||||
|
count: rgb(69, 133, 136) rgb(50, 48, 47)
|
||||||
|
dates: rgb(168, 153, 132) None
|
||||||
|
sparse: rgb(250, 189,47) None
|
||||||
|
content_extract: ansi(29) None Italic
|
||||||
|
content_match: ansi(34) None Bold
|
||||||
|
git_branch: rgb(251, 241, 199) None
|
||||||
|
git_insertions: rgb(152, 151, 26) None
|
||||||
|
git_deletions: rgb(190, 15, 23) None
|
||||||
|
git_status_current: rgb(60, 56, 54) None
|
||||||
|
git_status_modified: rgb(152, 151, 26) None
|
||||||
|
git_status_new: rgb(104, 187, 38) None Bold
|
||||||
|
git_status_ignored: rgb(213, 196, 161) None
|
||||||
|
git_status_conflicted: rgb(204, 36, 29) None
|
||||||
|
git_status_other: rgb(204, 36, 29) None
|
||||||
|
selected_line: None rgb(60, 56, 54) / None rgb(50, 48, 47)
|
||||||
|
char_match: rgb(250, 189, 47) None
|
||||||
|
file_error: rgb(251, 73, 52) None
|
||||||
|
flag_label: rgb(189, 174, 147) None
|
||||||
|
flag_value: rgb(211, 134, 155) None Bold
|
||||||
|
input: rgb(251, 241, 199) None / rgb(189, 174, 147) None Italic
|
||||||
|
status_error: rgb(213, 196, 161) rgb(204, 36, 29)
|
||||||
|
status_job: rgb(250, 189, 47) rgb(60, 56, 54)
|
||||||
|
status_normal: None rgb(40, 38, 37) / None None
|
||||||
|
status_italic: rgb(211, 134, 155) rgb(40, 38, 37) Italic / None None
|
||||||
|
status_bold: rgb(211, 134, 155) rgb(40, 38, 37) Bold / None None
|
||||||
|
status_code: rgb(251, 241, 199) rgb(40, 38, 37) / None None
|
||||||
|
status_ellipsis: rgb(251, 241, 199) rgb(40, 38, 37) Bold / None None
|
||||||
|
purpose_normal: None None
|
||||||
|
purpose_italic: rgb(177, 98, 134) None Italic
|
||||||
|
purpose_bold: rgb(177, 98, 134) None Bold
|
||||||
|
purpose_ellipsis: None None
|
||||||
|
scrollbar_track: rgb(80, 73, 69) None / rgb(50, 48, 47) None
|
||||||
|
scrollbar_thumb: rgb(213, 196, 161) None / rgb(102, 92, 84) None
|
||||||
|
help_paragraph: None None
|
||||||
|
help_bold: rgb(214, 93, 14) None Bold
|
||||||
|
help_italic: rgb(211, 134, 155) None Italic
|
||||||
|
help_code: rgb(142, 192, 124) rgb(50, 48, 47)
|
||||||
|
help_headers: rgb(254, 128, 25) None Bold
|
||||||
|
help_table_border: rgb(80, 73, 69) None
|
||||||
|
preview_title: rgb(235, 219, 178) rgb(40, 40, 40) / rgb(189, 174, 147) rgb(40, 40, 40)
|
||||||
|
preview: rgb(235, 219, 178) rgb(40, 40, 40) / rgb(235, 219, 178) rgb(40, 40, 40)
|
||||||
|
preview_line_number: rgb(124, 111, 100) None / rgb(124, 111, 100) rgb(40, 40, 40)
|
||||||
|
preview_separator: rgb(70, 70, 80) None / rgb(60, 60, 60) None
|
||||||
|
preview_match: None ansi(29) Bold
|
||||||
|
hex_null: rgb(189, 174, 147) None
|
||||||
|
hex_ascii_graphic: rgb(213, 196, 161) None
|
||||||
|
hex_ascii_whitespace: rgb(152, 151, 26) None
|
||||||
|
hex_ascii_other: rgb(254, 128, 25) None
|
||||||
|
hex_non_ascii: rgb(214, 93, 14) None
|
||||||
|
staging_area_title: rgb(235, 219, 178) rgb(40, 40, 40) / rgb(189, 174, 147) rgb(40, 40, 40)
|
||||||
|
mode_command_mark: gray(5) ansi(204) Bold
|
||||||
|
good_to_bad_0: ansi(28)
|
||||||
|
good_to_bad_1: ansi(29)
|
||||||
|
good_to_bad_2: ansi(29)
|
||||||
|
good_to_bad_3: ansi(29)
|
||||||
|
good_to_bad_4: ansi(29)
|
||||||
|
good_to_bad_5: ansi(100)
|
||||||
|
good_to_bad_6: ansi(136)
|
||||||
|
good_to_bad_7: ansi(172)
|
||||||
|
good_to_bad_8: ansi(166)
|
||||||
|
good_to_bad_9: ansi(196)
|
||||||
|
}
|
111
.config/broot/skins/dark-orange.hjson
Normal file
111
.config/broot/skins/dark-orange.hjson
Normal file
|
@ -0,0 +1,111 @@
|
||||||
|
###############################################################
|
||||||
|
# A skin for a terminal with a dark background
|
||||||
|
#
|
||||||
|
# To create your own skin, copy this file, change the entries
|
||||||
|
# and import your skin file from the main conf file (look
|
||||||
|
# for "imports")
|
||||||
|
#
|
||||||
|
# Doc at https://dystroy.org/broot/skins/
|
||||||
|
###############################################################
|
||||||
|
|
||||||
|
###############################################################
|
||||||
|
# Skin
|
||||||
|
# If you want to change the colors of broot,
|
||||||
|
# uncomment the following bloc and start messing
|
||||||
|
# with the various values.
|
||||||
|
# A skin entry value is made of two parts separated with a '/':
|
||||||
|
# The first one is the skin for the active panel.
|
||||||
|
# The second one, optional, is the skin for non active panels.
|
||||||
|
# You may find explanations and other skins on
|
||||||
|
# https://dystroy.org/broot/skins
|
||||||
|
###############################################################
|
||||||
|
skin: {
|
||||||
|
default: none none / gray(20) none
|
||||||
|
tree: ansi(94) None / gray(3) None
|
||||||
|
parent: gray(18) None / gray(13) None
|
||||||
|
file: gray(20) None / gray(15) None
|
||||||
|
directory: ansi(208) None Bold / ansi(172) None bold
|
||||||
|
exe: Cyan None
|
||||||
|
link: Magenta None
|
||||||
|
pruning: gray(12) None Italic
|
||||||
|
perm__: gray(5) None
|
||||||
|
perm_r: ansi(94) None
|
||||||
|
perm_w: ansi(132) None
|
||||||
|
perm_x: ansi(65) None
|
||||||
|
owner: ansi(138) None
|
||||||
|
group: ansi(131) None
|
||||||
|
count: ansi(136) gray(3)
|
||||||
|
dates: ansi(66) None
|
||||||
|
sparse: ansi(214) None
|
||||||
|
content_extract: ansi(29) None
|
||||||
|
content_match: ansi(34) None
|
||||||
|
git_branch: ansi(229) None
|
||||||
|
git_insertions: ansi(28) None
|
||||||
|
git_deletions: ansi(160) None
|
||||||
|
git_status_current: gray(5) None
|
||||||
|
git_status_modified: ansi(28) None
|
||||||
|
git_status_new: ansi(94) None Bold
|
||||||
|
git_status_ignored: gray(17) None
|
||||||
|
git_status_conflicted: ansi(88) None
|
||||||
|
git_status_other: ansi(88) None
|
||||||
|
selected_line: None gray(5) / None gray(4)
|
||||||
|
char_match: Yellow None
|
||||||
|
file_error: Red None
|
||||||
|
flag_label: gray(15) None
|
||||||
|
flag_value: ansi(208) None Bold
|
||||||
|
input: White None / gray(15) gray(2)
|
||||||
|
status_error: gray(22) ansi(124)
|
||||||
|
status_job: ansi(220) gray(5)
|
||||||
|
status_normal: gray(20) gray(3) / gray(2) gray(2)
|
||||||
|
status_italic: ansi(208) gray(3) / gray(2) gray(2)
|
||||||
|
status_bold: ansi(208) gray(3) Bold / gray(2) gray(2)
|
||||||
|
status_code: ansi(229) gray(3) / gray(2) gray(2)
|
||||||
|
status_ellipsis: gray(19) gray(1) / gray(2) gray(2)
|
||||||
|
purpose_normal: gray(20) gray(2)
|
||||||
|
purpose_italic: ansi(178) gray(2)
|
||||||
|
purpose_bold: ansi(178) gray(2) Bold
|
||||||
|
purpose_ellipsis: gray(20) gray(2)
|
||||||
|
scrollbar_track: gray(7) None / gray(4) None
|
||||||
|
scrollbar_thumb: gray(22) None / gray(14) None
|
||||||
|
help_paragraph: gray(20) None
|
||||||
|
help_bold: ansi(208) None Bold
|
||||||
|
help_italic: ansi(166) None
|
||||||
|
help_code: gray(21) gray(3)
|
||||||
|
help_headers: ansi(208) None
|
||||||
|
help_table_border: ansi(239) None
|
||||||
|
preview: gray(20) gray(1) / gray(18) gray(2)
|
||||||
|
preview_line_number: gray(12) gray(3)
|
||||||
|
preview_separator: ansi(94) None / gray(3) None
|
||||||
|
preview_match: None ansi(29)
|
||||||
|
hex_null: gray(11) None
|
||||||
|
hex_ascii_graphic: gray(18) None
|
||||||
|
hex_ascii_whitespace: ansi(143) None
|
||||||
|
hex_ascii_other: ansi(215) None
|
||||||
|
hex_non_ascii: ansi(167) None
|
||||||
|
good_to_bad_0: ansi(28)
|
||||||
|
good_to_bad_1: ansi(29)
|
||||||
|
good_to_bad_2: ansi(29)
|
||||||
|
good_to_bad_3: ansi(29)
|
||||||
|
good_to_bad_4: ansi(29)
|
||||||
|
good_to_bad_5: ansi(100)
|
||||||
|
good_to_bad_6: ansi(136)
|
||||||
|
good_to_bad_7: ansi(172)
|
||||||
|
good_to_bad_8: ansi(166)
|
||||||
|
good_to_bad_9: ansi(196)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
###############################################################
|
||||||
|
# Syntax Theme
|
||||||
|
#
|
||||||
|
# If you want to choose the theme used for preview, uncomment
|
||||||
|
# one of the following lines:
|
||||||
|
#
|
||||||
|
# syntax_theme: GitHub
|
||||||
|
# syntax_theme: SolarizedDark
|
||||||
|
# syntax_theme: SolarizedLight
|
||||||
|
syntax_theme: SolarizedDark
|
||||||
|
# syntax_theme: MochaDark
|
||||||
|
# syntax_theme: OceanDark
|
||||||
|
# syntax_theme: OceanLight
|
||||||
|
|
132
.config/broot/skins/native-16.hjson
Normal file
132
.config/broot/skins/native-16.hjson
Normal file
|
@ -0,0 +1,132 @@
|
||||||
|
###############################################################
|
||||||
|
# 16 ANSI color theme. Colors in this theme are restricted from
|
||||||
|
# ANSI color 0 - 15. This will allow the theme to adapt to your
|
||||||
|
# terminal emulator's theme. Note that, for now, the preview
|
||||||
|
# mode does not yet support this theme because of syntect not
|
||||||
|
# having a 16 ansi color theme.
|
||||||
|
#
|
||||||
|
# More info at https://jeffkreeftmeijer.com/vim-16-color/
|
||||||
|
# Doc at https://dystroy.org/broot/skins/
|
||||||
|
###############################################################
|
||||||
|
|
||||||
|
skin: {
|
||||||
|
directory: ansi(12)
|
||||||
|
file: ansi(7)
|
||||||
|
pruning: ansi(8) none italic
|
||||||
|
selected_line: none ansi(0)
|
||||||
|
tree: ansi(8)
|
||||||
|
|
||||||
|
# Search
|
||||||
|
char_match: ansi(3) none underlined
|
||||||
|
parent: ansi(4) none bold
|
||||||
|
|
||||||
|
# File properties
|
||||||
|
exe: ansi(2)
|
||||||
|
link: ansi(13)
|
||||||
|
sparse: ansi(12)
|
||||||
|
|
||||||
|
# Prompt
|
||||||
|
input: ansi(6)
|
||||||
|
|
||||||
|
# Status bar
|
||||||
|
status_bold: ansi(7) ansi(8) bold
|
||||||
|
status_code: ansi(10) ansi(8)
|
||||||
|
status_ellipsis: ansi(7) ansi(8)
|
||||||
|
status_error: ansi(7) ansi(8)
|
||||||
|
status_italic: ansi(7) ansi(8) italic
|
||||||
|
status_job: ansi(7) ansi(8)
|
||||||
|
status_normal: ansi(7) ansi(8)
|
||||||
|
|
||||||
|
# Flag status
|
||||||
|
flag_label: ansi(6)
|
||||||
|
flag_value: ansi(14) none bold
|
||||||
|
|
||||||
|
# Background
|
||||||
|
default: none none
|
||||||
|
|
||||||
|
# Scrollbar
|
||||||
|
scrollbar_track: ansi(0)
|
||||||
|
scrollbar_thumb: ansi(3)
|
||||||
|
|
||||||
|
# Git
|
||||||
|
git_branch: ansi(13)
|
||||||
|
git_deletions: ansi(1)
|
||||||
|
git_insertions: ansi(2)
|
||||||
|
git_status_conflicted: ansi(1)
|
||||||
|
git_status_current: ansi(6)
|
||||||
|
git_status_ignored: ansi(8)
|
||||||
|
git_status_modified: ansi(3)
|
||||||
|
git_status_new: ansi(2) none bold
|
||||||
|
git_status_other: ansi(5)
|
||||||
|
|
||||||
|
# Staging area
|
||||||
|
staging_area_title: ansi(3)
|
||||||
|
|
||||||
|
# Documentation
|
||||||
|
help_bold: ansi(7) none bold
|
||||||
|
help_code: ansi(4)
|
||||||
|
help_headers: ansi(3)
|
||||||
|
help_italic: ansi(7) none italic
|
||||||
|
help_paragraph: ansi(7)
|
||||||
|
help_table_border: ansi(8)
|
||||||
|
|
||||||
|
# Device column
|
||||||
|
device_id_major: ansi(5)
|
||||||
|
device_id_minor: ansi(5)
|
||||||
|
device_id_sep: ansi(5)
|
||||||
|
|
||||||
|
# Counts column
|
||||||
|
count: ansi(13)
|
||||||
|
|
||||||
|
# Dates column
|
||||||
|
dates: ansi(6)
|
||||||
|
|
||||||
|
# Permissions column
|
||||||
|
group: ansi(3)
|
||||||
|
owner: ansi(3)
|
||||||
|
perm__: ansi(8)
|
||||||
|
perm_r: ansi(3)
|
||||||
|
perm_w: ansi(1)
|
||||||
|
perm_x: ansi(2)
|
||||||
|
|
||||||
|
# Hex preview
|
||||||
|
hex_null: ansi(8)
|
||||||
|
hex_ascii_graphic: ansi(2)
|
||||||
|
hex_ascii_whitespace: ansi(3)
|
||||||
|
hex_ascii_other: ansi(4)
|
||||||
|
hex_non_ascii: ansi(5)
|
||||||
|
|
||||||
|
# Preview
|
||||||
|
# preview: none
|
||||||
|
# preview_line_number: none
|
||||||
|
# preview_match: none
|
||||||
|
# preview_title: none
|
||||||
|
|
||||||
|
# Used for displaying errors
|
||||||
|
file_error: ansi(1)
|
||||||
|
|
||||||
|
# Content searches
|
||||||
|
content_extract: ansi(7)
|
||||||
|
content_match: ansi(3) none underlined
|
||||||
|
|
||||||
|
# Used in status line
|
||||||
|
purpose_bold: ansi(0) ansi(7) bold
|
||||||
|
purpose_ellipsis: ansi(0)
|
||||||
|
purpose_italic: ansi(0) ansi(7) italic
|
||||||
|
purpose_normal: ansi(0)
|
||||||
|
|
||||||
|
# Modal indicator
|
||||||
|
mode_command_mark: ansi(7) ansi(4)
|
||||||
|
|
||||||
|
# File system occupation
|
||||||
|
good_to_bad_0: ansi(2)
|
||||||
|
good_to_bad_1: ansi(2)
|
||||||
|
good_to_bad_2: ansi(2)
|
||||||
|
good_to_bad_3: ansi(2)
|
||||||
|
good_to_bad_4: ansi(2)
|
||||||
|
good_to_bad_5: ansi(1)
|
||||||
|
good_to_bad_6: ansi(1)
|
||||||
|
good_to_bad_7: ansi(1)
|
||||||
|
good_to_bad_8: ansi(1)
|
||||||
|
good_to_bad_9: ansi(1)
|
||||||
|
}
|
66
.config/broot/skins/solarized-dark.hjson
Normal file
66
.config/broot/skins/solarized-dark.hjson
Normal file
|
@ -0,0 +1,66 @@
|
||||||
|
// contributed by [@danieltrautmann](https://github.com/danieltrautmann)
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// The Solarized Dark skin uses RGB values, so it might not work well with some
|
||||||
|
// terminals
|
||||||
|
//
|
||||||
|
// Doc at https://dystroy.org/broot/skins/
|
||||||
|
|
||||||
|
skin: {
|
||||||
|
default: "rgb(131, 148, 150) rgb(0, 43, 54) / rgb(131, 148, 150) rgb(7, 54, 66)" // base0 base03 / base01 base02
|
||||||
|
tree: "rgb(88, 110, 117) none" // base01 default
|
||||||
|
file: "none none" // default default
|
||||||
|
directory: "rgb(38, 139, 210) none bold" // blue default bold
|
||||||
|
exe: "rgb(211, 1, 2) none" // red default
|
||||||
|
link: "rgb(211, 54, 130) none" // magenta default
|
||||||
|
pruning: "rgb(88, 110, 117) none italic" // base01 default italic
|
||||||
|
perm__: "rgb(88, 110, 117) none" // base01 default
|
||||||
|
perm_r: "none none" // default default
|
||||||
|
perm_w: "none none" // default default
|
||||||
|
perm_x: "none none" // default default
|
||||||
|
owner: "rgb(88, 110, 117) none" // base01 default
|
||||||
|
group: "rgb(88, 110, 117) none" // base01 default
|
||||||
|
sparse: "none none" // default default
|
||||||
|
git_branch: "rgb(147, 161, 161) none" // base1 default
|
||||||
|
git_insertions: "rgb(133, 153, 0) none" // green default
|
||||||
|
git_deletions: "rgb(211, 1, 2) none" // red default
|
||||||
|
git_status_current: "none none" // default default
|
||||||
|
git_status_modified: "rgb(181, 137, 0) none" // yellow default
|
||||||
|
git_status_new: "rgb(133, 153, 0) none" // green default
|
||||||
|
git_status_ignored: "rgb(88, 110, 117) none" // base01 default
|
||||||
|
git_status_conflicted: "rgb(211, 1, 2) none" // red default
|
||||||
|
git_status_other: "rgb(211, 1, 2) none" // red default
|
||||||
|
selected_line: "none rgb(7, 54, 66)" // default base02
|
||||||
|
char_match: "rgb(133, 153, 0) none underlined" // green default underlined
|
||||||
|
file_error: "rgb(203, 75, 22) none italic" // orange default italic
|
||||||
|
flag_label: "none none" // default default
|
||||||
|
flag_value: "rgb(181, 137, 0) none bold" // yellow default bold
|
||||||
|
input: "none none" // default default
|
||||||
|
status_error: "rgb(203, 75, 22) rgb(7, 54, 66)" // orange base02
|
||||||
|
status_job: "rgb(108, 113, 196) rgb(7, 54, 66) bold" // violet base02 bold
|
||||||
|
status_normal: "none rgb(7, 54, 66)" // default base02
|
||||||
|
status_italic: "rgb(181, 137, 0) rgb(7, 54, 66)" // yellow base02
|
||||||
|
status_bold: "rgb(147, 161, 161) rgb(7, 54, 66) bold" // base1 base02 bold
|
||||||
|
status_code: "rgb(108, 113, 196) rgb(7, 54, 66)" // violet base02
|
||||||
|
status_ellipsis: "none rgb(7, 54, 66)" // default base02
|
||||||
|
scrollbar_track: "rgb(7, 54, 66) none" // base02 default
|
||||||
|
scrollbar_thumb: "none none" // default default
|
||||||
|
help_paragraph: "none none" // default default
|
||||||
|
help_bold: "rgb(147, 161, 161) none bold" // base1 default bold
|
||||||
|
help_italic: "rgb(147, 161, 161) none italic" // base1 default italic
|
||||||
|
help_code: "rgb(147, 161, 161) rgb(7, 54, 66)" // base1 base02
|
||||||
|
help_headers: "rgb(181, 137, 0) none" // yellow default
|
||||||
|
help_table_border: "none none" // default default
|
||||||
|
preview_title: "gray(20) rgb(0, 43, 54)"
|
||||||
|
staging_area_title: "gray(22) rgb(0, 43, 54)"
|
||||||
|
good_to_bad_0: "ansi(28)" // green
|
||||||
|
good_to_bad_1: "ansi(29)"
|
||||||
|
good_to_bad_2: "ansi(29)"
|
||||||
|
good_to_bad_3: "ansi(29)"
|
||||||
|
good_to_bad_4: "ansi(29)"
|
||||||
|
good_to_bad_5: "ansi(100)"
|
||||||
|
good_to_bad_6: "ansi(136)"
|
||||||
|
good_to_bad_7: "ansi(172)"
|
||||||
|
good_to_bad_8: "ansi(166)"
|
||||||
|
good_to_bad_9: "ansi(196)" // red
|
||||||
|
}
|
118
.config/broot/skins/solarized-light.hjson
Normal file
118
.config/broot/skins/solarized-light.hjson
Normal file
|
@ -0,0 +1,118 @@
|
||||||
|
// contributed by [@danieltrautmann](https://github.com/danieltrautmann)
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// The Solarized Light skin uses RGB values, so it might not work well with some
|
||||||
|
// terminals
|
||||||
|
//
|
||||||
|
// If you prefer to keep the background the same as your terminal background, change
|
||||||
|
// the "default" entry to
|
||||||
|
// default: "none none / rgb(147, 161, 161) none"
|
||||||
|
//
|
||||||
|
// Doc at https://dystroy.org/broot/skins/
|
||||||
|
|
||||||
|
skin: {
|
||||||
|
// base00 default / base1 base2
|
||||||
|
default: "rgb(101, 123, 131) none / rgb(147, 161, 161) none"
|
||||||
|
// base1 default
|
||||||
|
tree: "rgb(147, 161, 161) none"
|
||||||
|
// default default
|
||||||
|
file: "none none"
|
||||||
|
// blue default bold
|
||||||
|
directory: "rgb(38, 139, 210) none bold"
|
||||||
|
// red default
|
||||||
|
exe: "rgb(211, 1, 2) none"
|
||||||
|
// magenta default
|
||||||
|
link: "rgb(211, 54, 130) none"
|
||||||
|
// base1 default italic
|
||||||
|
pruning: "rgb(147, 161, 161) none italic"
|
||||||
|
// base1 default
|
||||||
|
perm__: "rgb(147, 161, 161) none"
|
||||||
|
// default default
|
||||||
|
perm_r: "none none"
|
||||||
|
// default default
|
||||||
|
perm_w: "none none"
|
||||||
|
// default default
|
||||||
|
perm_x: "none none"
|
||||||
|
// base1 default
|
||||||
|
owner: "rgb(147, 161, 161) none"
|
||||||
|
// base1 default
|
||||||
|
group: "rgb(147, 161, 161) none"
|
||||||
|
// default default
|
||||||
|
sparse: "none none"
|
||||||
|
// base01 default
|
||||||
|
git_branch: "rgb(88, 110, 117) none"
|
||||||
|
// green default
|
||||||
|
git_insertions: "rgb(133, 153, 0) none"
|
||||||
|
// red default
|
||||||
|
git_deletions: "rgb(211, 1, 2) none"
|
||||||
|
// default default
|
||||||
|
git_status_current: "none none"
|
||||||
|
// yellow default
|
||||||
|
git_status_modified: "rgb(181, 137, 0) none"
|
||||||
|
// green default
|
||||||
|
git_status_new: "rgb(133, 153, 0) none"
|
||||||
|
// base1 default
|
||||||
|
git_status_ignored: "rgb(147, 161, 161) none"
|
||||||
|
// red default
|
||||||
|
git_status_conflicted: "rgb(211, 1, 2) none"
|
||||||
|
// red default
|
||||||
|
git_status_other: "rgb(211, 1, 2) none"
|
||||||
|
// default base2
|
||||||
|
selected_line: "none rgb(238, 232, 213)"
|
||||||
|
// green default underlined
|
||||||
|
char_match: "rgb(133, 153, 0) none underlined"
|
||||||
|
// orange default italic
|
||||||
|
file_error: "rgb(203, 75, 22) none italic"
|
||||||
|
// default default
|
||||||
|
flag_label: "none none"
|
||||||
|
// yellow default bold
|
||||||
|
flag_value: "rgb(181, 137, 0) none bold"
|
||||||
|
// default default
|
||||||
|
input: "none none"
|
||||||
|
// orange base2
|
||||||
|
status_error: "rgb(203, 75, 22) rgb(238, 232, 213)"
|
||||||
|
// violet base2 bold
|
||||||
|
status_job: "rgb(108, 113, 196) rgb(238, 232, 213) bold"
|
||||||
|
// default base2
|
||||||
|
status_normal: "none rgb(238, 232, 213)"
|
||||||
|
// yellow base2
|
||||||
|
status_italic: "rgb(181, 137, 0) rgb(238, 232, 213)"
|
||||||
|
// base01 base2 bold
|
||||||
|
status_bold: "rgb(88, 110, 117) rgb(238, 232, 213) bold"
|
||||||
|
// violet base2
|
||||||
|
status_code: "rgb(108, 113, 196) rgb(238, 232, 213)"
|
||||||
|
// default base2
|
||||||
|
status_ellipsis: "none rgb(238, 232, 213)"
|
||||||
|
// base2 default
|
||||||
|
scrollbar_track: "rgb(238, 232, 213) none"
|
||||||
|
// default default
|
||||||
|
scrollbar_thumb: "none none"
|
||||||
|
// default default
|
||||||
|
help_paragraph: "none none"
|
||||||
|
// base01 default bold
|
||||||
|
help_bold: "rgb(88, 110, 117) none bold"
|
||||||
|
// base01 default italic
|
||||||
|
help_italic: "rgb(88, 110, 117) none italic"
|
||||||
|
// base01 base2
|
||||||
|
help_code: "rgb(88, 110, 117) rgb(238, 232, 213)"
|
||||||
|
// yellow default
|
||||||
|
help_headers: "rgb(181, 137, 0) none"
|
||||||
|
// default default
|
||||||
|
help_table_border: "none none"
|
||||||
|
preview_title: "rgb(147, 161, 161) rgb(238, 232, 213)"
|
||||||
|
preview: "rgb(101, 123, 131) rgb(253, 246, 227) / rgb(147, 161, 161) rgb(238, 232, 213)"
|
||||||
|
preview_line_number: "rgb(147, 161, 161) rgb(238, 232, 213)"
|
||||||
|
preview_separator: "rgb(147, 161, 161) rgb(238, 232, 213)"
|
||||||
|
preview_match: "None ansi(29)"
|
||||||
|
staging_area_title: "gray(22) rgb(253, 246, 227)"
|
||||||
|
good_to_bad_0: ansi(28)
|
||||||
|
good_to_bad_1: ansi(29)
|
||||||
|
good_to_bad_2: ansi(29)
|
||||||
|
good_to_bad_3: ansi(29)
|
||||||
|
good_to_bad_4: ansi(29)
|
||||||
|
good_to_bad_5: ansi(100)
|
||||||
|
good_to_bad_6: ansi(136)
|
||||||
|
good_to_bad_7: ansi(172)
|
||||||
|
good_to_bad_8: ansi(166)
|
||||||
|
good_to_bad_9: ansi(196)
|
||||||
|
}
|
84
.config/broot/skins/white.hjson
Normal file
84
.config/broot/skins/white.hjson
Normal file
|
@ -0,0 +1,84 @@
|
||||||
|
###############################################################
|
||||||
|
# A skin for a terminal with a white background
|
||||||
|
#
|
||||||
|
# To create your own skin, copy this file, change the entries
|
||||||
|
# and import your skin file from the main conf file (look
|
||||||
|
# for "imports")
|
||||||
|
#
|
||||||
|
# Doc at https://dystroy.org/broot/skins/
|
||||||
|
###############################################################
|
||||||
|
syntax_theme: base16-ocean.light
|
||||||
|
|
||||||
|
skin: {
|
||||||
|
default: gray(1) None
|
||||||
|
tree: gray(7) None / gray(18) None
|
||||||
|
file: gray(3) None / gray(8) None
|
||||||
|
directory: ansi(25) None Bold / ansi(25) None
|
||||||
|
exe: ansi(130) None
|
||||||
|
link: Magenta None
|
||||||
|
pruning: gray(12) None Italic
|
||||||
|
perm__: gray(5) None
|
||||||
|
perm_r: ansi(94) None
|
||||||
|
perm_w: ansi(132) None
|
||||||
|
perm_x: ansi(65) None
|
||||||
|
owner: ansi(138) None
|
||||||
|
group: ansi(131) None
|
||||||
|
dates: ansi(66) None
|
||||||
|
sparse: ansi(214) None
|
||||||
|
git_branch: ansi(229) None
|
||||||
|
git_insertions: ansi(28) None
|
||||||
|
git_deletions: ansi(160) None
|
||||||
|
git_status_current: gray(5) None
|
||||||
|
git_status_modified: ansi(28) None
|
||||||
|
git_status_new: ansi(94) None Bold
|
||||||
|
git_status_ignored: gray(17) None
|
||||||
|
git_status_conflicted: ansi(88) None
|
||||||
|
git_status_other: ansi(88) None
|
||||||
|
selected_line: None gray(19) / None gray(21)
|
||||||
|
char_match: ansi(22) None
|
||||||
|
file_error: Red None
|
||||||
|
flag_label: gray(9) None
|
||||||
|
flag_value: ansi(166) None Bold
|
||||||
|
input: gray(1) None / gray(4) gray(20)
|
||||||
|
status_error: gray(22) ansi(124)
|
||||||
|
status_normal: gray(2) gray(20)
|
||||||
|
status_job: ansi(220) gray(5)
|
||||||
|
status_italic: ansi(166) gray(20)
|
||||||
|
status_bold: ansi(166) gray(20)
|
||||||
|
status_code: ansi(17) gray(20)
|
||||||
|
status_ellipsis: gray(19) gray(15)
|
||||||
|
purpose_normal: gray(20) gray(2)
|
||||||
|
purpose_italic: ansi(178) gray(2)
|
||||||
|
purpose_bold: ansi(178) gray(2) Bold
|
||||||
|
purpose_ellipsis: gray(20) gray(2)
|
||||||
|
scrollbar_track: gray(20) none
|
||||||
|
scrollbar_thumb: ansi(238) none
|
||||||
|
help_paragraph: gray(2) none
|
||||||
|
help_bold: ansi(202) none bold
|
||||||
|
help_italic: ansi(202) none italic
|
||||||
|
help_code: gray(5) gray(22)
|
||||||
|
help_headers: ansi(202) none
|
||||||
|
help_table_border: ansi(239) None
|
||||||
|
preview_title: gray(3) None / gray(5) None
|
||||||
|
preview: gray(5) gray(23) / gray(7) gray(23)
|
||||||
|
preview_line_number: gray(6) gray(20)
|
||||||
|
preview_separator: gray(7) None / gray(18) None
|
||||||
|
preview_match: None ansi(29) Underlined
|
||||||
|
hex_null: gray(15) None
|
||||||
|
hex_ascii_graphic: gray(2) None
|
||||||
|
hex_ascii_whitespace: ansi(143) None
|
||||||
|
hex_ascii_other: ansi(215) None
|
||||||
|
hex_non_ascii: ansi(167) None
|
||||||
|
staging_area_title: gray(8) None / gray(13) None
|
||||||
|
mode_command_mark: gray(15) ansi(204) Bold
|
||||||
|
good_to_bad_0: ansi(28)
|
||||||
|
good_to_bad_1: ansi(29)
|
||||||
|
good_to_bad_2: ansi(29)
|
||||||
|
good_to_bad_3: ansi(29)
|
||||||
|
good_to_bad_4: ansi(29)
|
||||||
|
good_to_bad_5: ansi(100)
|
||||||
|
good_to_bad_6: ansi(136)
|
||||||
|
good_to_bad_7: ansi(172)
|
||||||
|
good_to_bad_8: ansi(166)
|
||||||
|
good_to_bad_9: ansi(196)
|
||||||
|
}
|
175
.config/broot/verbs.hjson
Normal file
175
.config/broot/verbs.hjson
Normal file
|
@ -0,0 +1,175 @@
|
||||||
|
###############################################################
|
||||||
|
# This file contains the verb definitions for broot
|
||||||
|
#
|
||||||
|
# Some verbs here are examples and not enabled by default: you
|
||||||
|
# need to uncomment them if you want to use them.
|
||||||
|
#
|
||||||
|
# Documentation at https://dystroy.org/broot/verbs/
|
||||||
|
###############################################################
|
||||||
|
|
||||||
|
verbs: [
|
||||||
|
{
|
||||||
|
invocation: nvim
|
||||||
|
key: enter
|
||||||
|
apply_to: text_file
|
||||||
|
execution: "wezterm-edit-helper {file}"
|
||||||
|
leave_broot: true
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
invocation: broot_home
|
||||||
|
key: ctrl-7
|
||||||
|
execution: broot $HOME
|
||||||
|
leave_broot: true
|
||||||
|
}
|
||||||
|
|
||||||
|
# You should customize this standard opening of text files.
|
||||||
|
# If you edit text files in your terminal (vi, emacs, helix, eg.), then
|
||||||
|
# you'll find it convenient to change the 'key' from 'ctrl-e' to 'enter'.
|
||||||
|
#
|
||||||
|
# If $EDITOR isn't set on your computer, you should either set it using
|
||||||
|
# something similar to
|
||||||
|
# export EDITOR=/usr/local/bin/nvim
|
||||||
|
# or just replace it with your editor of choice in the 'execution'
|
||||||
|
# pattern.
|
||||||
|
# If your editor is able to open a file on a specific line, use {line}
|
||||||
|
# so that you may jump directly at the right line from a preview or
|
||||||
|
# a content search.
|
||||||
|
# Examples depending on your favourite editor:
|
||||||
|
# execution: "nvim +{line} {file}"
|
||||||
|
# execution: "helix {file}:{line}"
|
||||||
|
{
|
||||||
|
invocation: edit
|
||||||
|
shortcut: e
|
||||||
|
key: ctrl-e
|
||||||
|
apply_to: text_file
|
||||||
|
execution: "$EDITOR {file}"
|
||||||
|
leave_broot: false
|
||||||
|
}
|
||||||
|
|
||||||
|
# Example 1: launching `tail -n` on the selected file (leaving broot)
|
||||||
|
# {
|
||||||
|
# name: tail_lines
|
||||||
|
# invocation: tl {lines_count}
|
||||||
|
# execution: "tail -f -n {lines_count} {file}"
|
||||||
|
# }
|
||||||
|
|
||||||
|
# Example 2: creating a new file without leaving broot
|
||||||
|
# {
|
||||||
|
# name: touch
|
||||||
|
# invocation: touch {new_file}
|
||||||
|
# execution: "touch {directory}/{new_file}"
|
||||||
|
# leave_broot: false
|
||||||
|
# }
|
||||||
|
|
||||||
|
# A convenient shortcut to create new text files in
|
||||||
|
# the current directory or below
|
||||||
|
{
|
||||||
|
invocation: create {subpath}
|
||||||
|
execution: "$EDITOR {directory}/{subpath}"
|
||||||
|
leave_broot: false
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
invocation: git_diff
|
||||||
|
shortcut: gd
|
||||||
|
leave_broot: false
|
||||||
|
execution: "git difftool -y {file}"
|
||||||
|
}
|
||||||
|
|
||||||
|
# On ctrl-b, propose the creation of a copy of the selection.
|
||||||
|
# While this might occasionally be useful, this verb is mostly here
|
||||||
|
# as an example to demonstrate rare standard groups like {file-stem}
|
||||||
|
# and {file-dot-extension} and the auto_exec verb property which
|
||||||
|
# allows verbs to stay unexecuted until you hit enter
|
||||||
|
{
|
||||||
|
invocation: "backup {version}"
|
||||||
|
key: ctrl-b
|
||||||
|
leave_broot: false
|
||||||
|
auto_exec: false
|
||||||
|
execution: "cp -r {file} {parent}/{file-stem}-{version}{file-dot-extension}"
|
||||||
|
}
|
||||||
|
|
||||||
|
# By default, `rm` does the system rm, and completely removes
|
||||||
|
# the file. If you prefer to have the file moved to the system
|
||||||
|
# trash, you may use the ':trash' internal with the verb below:
|
||||||
|
# {
|
||||||
|
# invocation: "rm"
|
||||||
|
# internal: "trash"
|
||||||
|
# leave_broot: false
|
||||||
|
# }
|
||||||
|
|
||||||
|
# This verb lets you launch a terminal on ctrl-T
|
||||||
|
# (on exit you'll be back in broot)
|
||||||
|
{
|
||||||
|
invocation: terminal
|
||||||
|
key: ctrl-t
|
||||||
|
execution: "$SHELL"
|
||||||
|
set_working_dir: true
|
||||||
|
leave_broot: false
|
||||||
|
}
|
||||||
|
|
||||||
|
# Here's an example of a verb needing the shell capabilities.
|
||||||
|
# It copies all children of the currently selected directory
|
||||||
|
# to a destination you type.
|
||||||
|
# It uses a star, which needs the shell for expansion. That's
|
||||||
|
# why such verb must have the `from_shell: true` parameter.
|
||||||
|
# {
|
||||||
|
# invocation: "cpa {dest}"
|
||||||
|
# external: "cp -r {directory}/* {dest}"
|
||||||
|
# from_shell: true
|
||||||
|
# }
|
||||||
|
|
||||||
|
# Here's an example of a shortcut bringing you to your home directory
|
||||||
|
# {
|
||||||
|
# invocation: home
|
||||||
|
# key: ctrl-home
|
||||||
|
# execution: ":focus ~"
|
||||||
|
# }
|
||||||
|
|
||||||
|
# Here's going to the work-dir root of the current git repository
|
||||||
|
# {
|
||||||
|
# invocation: gtr
|
||||||
|
# execution: ":focus {git-root}"
|
||||||
|
# }
|
||||||
|
|
||||||
|
# A popular set of shortcuts for going up and down:
|
||||||
|
#
|
||||||
|
# {
|
||||||
|
# key: ctrl-k
|
||||||
|
# execution: ":line_up"
|
||||||
|
# }
|
||||||
|
# {
|
||||||
|
# key: ctrl-j
|
||||||
|
# execution: ":line_down"
|
||||||
|
# }
|
||||||
|
# {
|
||||||
|
# key: ctrl-u
|
||||||
|
# execution: ":page_up"
|
||||||
|
# }
|
||||||
|
# {
|
||||||
|
# key: ctrl-d
|
||||||
|
# execution: ":page_down"
|
||||||
|
# }
|
||||||
|
|
||||||
|
# If you develop using git, you might like to often switch
|
||||||
|
# to the git status filter:
|
||||||
|
# {
|
||||||
|
# key: alt-g
|
||||||
|
# execution: ":toggle_git_status"
|
||||||
|
# }
|
||||||
|
|
||||||
|
# You can reproduce the bindings of Norton Commander
|
||||||
|
# on copying or moving to the other panel:
|
||||||
|
# {
|
||||||
|
# key: F5
|
||||||
|
# external: "cp -r {file} {other-panel-directory}"
|
||||||
|
# leave_broot: false
|
||||||
|
# }
|
||||||
|
# {
|
||||||
|
# key: F6
|
||||||
|
# external: "mv {file} {other-panel-directory}"
|
||||||
|
# leave_broot: false
|
||||||
|
# }
|
||||||
|
]
|
||||||
|
|
7
.config/buildkit/buildkitd.toml
Normal file
7
.config/buildkit/buildkitd.toml
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
[worker.oci]
|
||||||
|
enabled = false
|
||||||
|
|
||||||
|
[worker.containerd]
|
||||||
|
enabled = true
|
||||||
|
rootless = true
|
||||||
|
address = "/run/user/1000/containerd/containerd.sock"
|
1
.config/chrome-beta-flags.conf
Normal file
1
.config/chrome-beta-flags.conf
Normal file
|
@ -0,0 +1 @@
|
||||||
|
--enable-features=OzonePlatform --ozone-platform=wayland
|
769
.config/contour/contour.yml
Normal file
769
.config/contour/contour.yml
Normal file
|
@ -0,0 +1,769 @@
|
||||||
|
# Default Contour Configuration File.
|
||||||
|
|
||||||
|
# Overrides the auto-detected platform plugin to be loaded.
|
||||||
|
#
|
||||||
|
# Possible (incomplete list of) values are:
|
||||||
|
# - auto The platform will be auto-detected.
|
||||||
|
# - xcb Uses XCB plugin (for X11 environment).
|
||||||
|
# - cocoa Used to be run on Mac OS/X.
|
||||||
|
# - direct2d Windows platform plugin using Direct2D.
|
||||||
|
# - winrt Windows platform plugin using WinRT.
|
||||||
|
#
|
||||||
|
# Default: auto
|
||||||
|
platform_plugin: auto
|
||||||
|
|
||||||
|
# VT Renderer configuration.
|
||||||
|
# ADVANCED! Do not touch unless you know what you are doing.
|
||||||
|
renderer:
|
||||||
|
# Backend to use for rendering the terminal onto the screen
|
||||||
|
#
|
||||||
|
# Possible values are:
|
||||||
|
# - default Uses the default rendering option as decided by the terminal.
|
||||||
|
# - software Uses software-based rendering.
|
||||||
|
# - OpenGL Use (possibly) hardware accelerated OpenGL
|
||||||
|
backend: OpenGL
|
||||||
|
|
||||||
|
# Number of hashtable slots to map to the texture tiles.
|
||||||
|
# Larger values may increase performance, but too large may also decrease.
|
||||||
|
# This value is rounded up to a value equal to the power of two.
|
||||||
|
#
|
||||||
|
# Default: 4096
|
||||||
|
tile_hashtable_slots: 4096
|
||||||
|
|
||||||
|
# Number of tiles that must fit at lest into the texture atlas.
|
||||||
|
#
|
||||||
|
# This does not include direct mapped tiles (US-ASCII glyphs,
|
||||||
|
# cursor shapes and decorations), if tile_direct_mapping is set to true).
|
||||||
|
#
|
||||||
|
# Value must be at least as large as grid cells available in the terminal view.
|
||||||
|
# This value is automatically adjusted if too small.
|
||||||
|
#
|
||||||
|
# Default: 4000
|
||||||
|
tile_cache_count: 4000
|
||||||
|
|
||||||
|
# Enables/disables the use of direct-mapped texture atlas tiles for
|
||||||
|
# the most often used ones (US-ASCII, cursor shapes, underline styles)
|
||||||
|
# You most likely do not want to touch this.
|
||||||
|
#
|
||||||
|
# Default: true
|
||||||
|
tile_direct_mapping: true
|
||||||
|
|
||||||
|
# Word delimiters when selecting word-wise.
|
||||||
|
word_delimiters: " /\\()\"'-.,:;<>~!@#$%^&*+=[]{}~?|│"
|
||||||
|
|
||||||
|
# Default PTY read buffer size.
|
||||||
|
#
|
||||||
|
# This is an advance option. Use with care!
|
||||||
|
# Default: 16384
|
||||||
|
read_buffer_size: 16384
|
||||||
|
|
||||||
|
# Size in bytes per PTY Buffer Object.
|
||||||
|
#
|
||||||
|
# This is an advanced option of an internal storage. Only change with care!
|
||||||
|
pty_buffer_size: 1048576
|
||||||
|
|
||||||
|
default_profile: main
|
||||||
|
|
||||||
|
# Flag to determine whether to spawn new process or not when creating new terminal
|
||||||
|
# Default: false
|
||||||
|
spawn_new_process: false
|
||||||
|
|
||||||
|
# Whether or not to reflow the lines on terminal resize events.
|
||||||
|
# Default: true
|
||||||
|
reflow_on_resize: true
|
||||||
|
|
||||||
|
# Section of experimental features.
|
||||||
|
# All experimental features are disabled by default and must be explicitly enabled here.
|
||||||
|
# NOTE: Contour currently has no experimental features behind this configuration wall.
|
||||||
|
# experimental:
|
||||||
|
# # Enables experimental support for feature X/Y/Z
|
||||||
|
# feature_xyz: true
|
||||||
|
|
||||||
|
# This keyboard modifier can be used to bypass the terminal's mouse protocol,
|
||||||
|
# which can be used to select screen content even if the an application
|
||||||
|
# mouse protocol has been activated (Default: Shift).
|
||||||
|
#
|
||||||
|
# The same modifier values apply as with input modifiers (see below).
|
||||||
|
bypass_mouse_protocol_modifier: Shift
|
||||||
|
|
||||||
|
# Modifier to be pressed in order to initiate block-selection
|
||||||
|
# using the left mouse button.
|
||||||
|
#
|
||||||
|
# This is usually the Control modifier, but on OS/X that is not possible,
|
||||||
|
# so Alt or Meta would be recommended instead.
|
||||||
|
#
|
||||||
|
# Supported modifiers:
|
||||||
|
# - Alt
|
||||||
|
# - Control
|
||||||
|
# - Shift
|
||||||
|
# - Meta
|
||||||
|
#
|
||||||
|
# Default: Control
|
||||||
|
mouse_block_selection_modifier: Control
|
||||||
|
|
||||||
|
# Selects an action to perform when a text selection has been made.
|
||||||
|
#
|
||||||
|
# Possible values are:
|
||||||
|
#
|
||||||
|
# - None Does nothing
|
||||||
|
# - CopyToClipboard Copies the selection to the primary clipboard.
|
||||||
|
# - CopyToSelectionClipboard Copies the selection to the selection clipboard.
|
||||||
|
# This is not supported on all platforms.
|
||||||
|
#
|
||||||
|
# Default: CopyToSelectionClipboard
|
||||||
|
on_mouse_select: CopyToSelectionClipboard
|
||||||
|
|
||||||
|
# Determines whether the instance is reloading the configuration files whenever it is changing or not.
|
||||||
|
#
|
||||||
|
# Default: false
|
||||||
|
live_config: false
|
||||||
|
|
||||||
|
# Inline image related default configuration and limits
|
||||||
|
# -----------------------------------------------------
|
||||||
|
images:
|
||||||
|
# Enable or disable sixel scrolling (SM/RM ?80 default)
|
||||||
|
sixel_scrolling: true
|
||||||
|
# Configures the maximum number of color registers available when rendering Sixel graphics.
|
||||||
|
sixel_register_count: 4096
|
||||||
|
# maximum width in pixels of an image to be accepted (0 defaults to system screen pixel width)
|
||||||
|
max_width: 0
|
||||||
|
# maximum height in pixels of an image to be accepted (0 defaults to system screen pixel height)
|
||||||
|
max_height: 0
|
||||||
|
|
||||||
|
# Terminal Profiles
|
||||||
|
# -----------------
|
||||||
|
#
|
||||||
|
# Dominates how your terminal visually looks like. You will need at least one terminal profile.
|
||||||
|
profiles:
|
||||||
|
main:
|
||||||
|
# You can override the process to be started inside the terminal.
|
||||||
|
# If nothing is specified, the users' default login shell will be used.
|
||||||
|
# But you may as well log in to a remote host.
|
||||||
|
# shell: "ssh ubuntu-vm"
|
||||||
|
# shell: "/bin/bash"
|
||||||
|
# arguments: ["some", "optional", "arguments", "for", "the", "shell"]
|
||||||
|
|
||||||
|
# If this terminal is being executed from within Flatpak, enforces sandboxing
|
||||||
|
# then this boolean indicates whether or not that sandbox should be escaped or not.
|
||||||
|
#
|
||||||
|
# Default value is true.
|
||||||
|
#
|
||||||
|
# It only makes sense to set this value to false if you really know what you are doing.
|
||||||
|
escape_sandbox: true
|
||||||
|
|
||||||
|
# Advanced value that is useful when CopyPreviousMarkRange is used
|
||||||
|
# with multiline-prompts. This offset value is being added to the
|
||||||
|
# current cursor's line number minus 1 (i.e. the line above the current cursor).
|
||||||
|
#
|
||||||
|
# Default value is 0.
|
||||||
|
copy_last_mark_range_offset: 0
|
||||||
|
|
||||||
|
# Sets initial working directory when spawning a new terminal.
|
||||||
|
# A leading ~ is expanded to the user's home directory.
|
||||||
|
# Default value is the user's home directory.
|
||||||
|
initial_working_directory: "~"
|
||||||
|
|
||||||
|
# When this profile is *activated*, this flag decides
|
||||||
|
# whether or not the title bar will be shown
|
||||||
|
show_title_bar: false
|
||||||
|
# When this profile is being *activated*, this flag decides
|
||||||
|
# whether or not to put the terminal's screen into fullscreen mode.
|
||||||
|
#
|
||||||
|
# It is activated during startup as well as when switching from another profile to this one.
|
||||||
|
fullscreen: false
|
||||||
|
|
||||||
|
# When this profile is *activated*, this flag decides
|
||||||
|
# whether or not to put the window into maximized mode.
|
||||||
|
maximized: false
|
||||||
|
|
||||||
|
# Defines the class part of the WM_CLASS property of the window.
|
||||||
|
wm_class: "contour"
|
||||||
|
|
||||||
|
# Environment variables to be passed to the shell.
|
||||||
|
# environment:
|
||||||
|
# TERM: contour
|
||||||
|
# COLORTERM: truecolor
|
||||||
|
|
||||||
|
# Determines the terminal type that is being advertised.
|
||||||
|
# Possible values are:
|
||||||
|
# - VT100
|
||||||
|
# - VT220
|
||||||
|
# - VT240
|
||||||
|
# - VT330
|
||||||
|
# - VT340
|
||||||
|
# - VT320
|
||||||
|
# - VT420
|
||||||
|
# - VT510
|
||||||
|
# - VT520
|
||||||
|
# - VT525
|
||||||
|
# Default: VT525
|
||||||
|
terminal_id: VT525
|
||||||
|
|
||||||
|
# Determines the initial terminal size in characters.
|
||||||
|
terminal_size:
|
||||||
|
columns: 80
|
||||||
|
lines: 25
|
||||||
|
|
||||||
|
history:
|
||||||
|
# Number of lines to preserve (-1 for infinite).
|
||||||
|
limit: 1000
|
||||||
|
# Boolean indicating whether or not to scroll down to the bottom on screen updates.
|
||||||
|
auto_scroll_on_update: true
|
||||||
|
# Number of lines to scroll on ScrollUp & ScrollDown events.
|
||||||
|
# Default: 3
|
||||||
|
scroll_multiplier: 3
|
||||||
|
|
||||||
|
# visual scrollbar support
|
||||||
|
scrollbar:
|
||||||
|
# scroll bar position: Left, Right, Hidden (ignore-case)
|
||||||
|
position: Hidden
|
||||||
|
# whether or not to hide the scrollbar when in alt-screen.
|
||||||
|
hide_in_alt_screen: true
|
||||||
|
|
||||||
|
# mouse setting
|
||||||
|
mouse:
|
||||||
|
# whether or not to hide mouse when typing
|
||||||
|
#
|
||||||
|
# Default value: true
|
||||||
|
hide_while_typing: true
|
||||||
|
|
||||||
|
# Some VT sequences should need access permissions.
|
||||||
|
#
|
||||||
|
# These can be to:
|
||||||
|
# - allow Allows the given functionality
|
||||||
|
# - deny Denies the given functionality
|
||||||
|
# - ask Asks the user interactively via popup dialog for permission of the given action.
|
||||||
|
#
|
||||||
|
# Default for all of these entries should be: "ask".
|
||||||
|
permissions:
|
||||||
|
# Allows changing the font via `OSC 50 ; Pt ST`.
|
||||||
|
change_font: ask
|
||||||
|
# Allows capturing the screen buffer via `CSI > Pm ; Ps ; Pc ST`.
|
||||||
|
# The response can be read from stdin as sequence `OSC 314 ; <screen capture> ST`
|
||||||
|
capture_buffer: ask
|
||||||
|
# Allows displaying the "Host Writable Statusline" programmatically using `DECSSDT 2`.
|
||||||
|
display_host_writable_statusline: ask
|
||||||
|
|
||||||
|
# If enabled, and you double-click on a word in the primary screen,
|
||||||
|
# all other words matching this word will be highlighted as well.
|
||||||
|
# So the double-clicked word will be selected as well as highlighted, along with
|
||||||
|
# all other words being simply highlighted.
|
||||||
|
#
|
||||||
|
# This is currently implemented by initiating a search on the double-clicked word.
|
||||||
|
# Therefore one can even use FocusNextSearchMatch and FocusPreviousSearchMatch to
|
||||||
|
# jump to the next/previous same word, also outside of the current viewport.
|
||||||
|
#
|
||||||
|
# Default: true
|
||||||
|
highlight_word_and_matches_on_double_click: true
|
||||||
|
|
||||||
|
# Font related configuration (font face, styles, size, rendering mode).
|
||||||
|
font:
|
||||||
|
# Initial font size in pixels.
|
||||||
|
size: 20
|
||||||
|
|
||||||
|
# DPI scaling factor applied on top of the system configured on (default: 1.0).
|
||||||
|
dpi_scale: 1.0
|
||||||
|
|
||||||
|
# Font Locator API
|
||||||
|
# Selects an engine to use for locating font files on the system.
|
||||||
|
# This is implicitly also responsible for font fallback
|
||||||
|
# Possible values are:
|
||||||
|
# - native : automatically choose the best available on the current platform
|
||||||
|
# - fontconfig : uses fontconfig to select fonts
|
||||||
|
# - CoreText : uses OS/X CoreText to select fonts.
|
||||||
|
# - DirectWrite : selects DirectWrite engine (Windows only)
|
||||||
|
locator: native
|
||||||
|
|
||||||
|
# Text shaping related settings
|
||||||
|
text_shaping:
|
||||||
|
# Selects which text shaping and font rendering engine to use.
|
||||||
|
# Supported values are:
|
||||||
|
# - native : automatically choose the best available on the current platform.
|
||||||
|
# - DirectWrite : selects DirectWrite engine (Windows only)
|
||||||
|
# - CoreText : selects CoreText engine (Mac OS/X only) (currently not implemented)
|
||||||
|
# - OpenShaper : selects OpenShaper (harfbuzz/freetype/fontconfig, available on all
|
||||||
|
# platforms)
|
||||||
|
engine: native
|
||||||
|
|
||||||
|
# Uses builtin textures for pixel-perfect box drawing.
|
||||||
|
# If disabled, the font's provided box drawing characters
|
||||||
|
# will be used (Default: true).
|
||||||
|
builtin_box_drawing: true
|
||||||
|
|
||||||
|
# Font render modes tell the font rasterizer engine what rendering technique to use.
|
||||||
|
#
|
||||||
|
# Modes available are:
|
||||||
|
# - lcd Uses a subpixel rendering technique optimized for LCD displays.
|
||||||
|
# - light Uses a subpixel rendering technique in gray-scale.
|
||||||
|
# - gray Uses standard gray-scaled anti-aliasing.
|
||||||
|
# - monochrome Uses pixel-perfect bitmap rendering.
|
||||||
|
render_mode: gray
|
||||||
|
|
||||||
|
# Indicates whether or not to include *only* monospace fonts in the font and
|
||||||
|
# font-fallback list (Default: true).
|
||||||
|
strict_spacing: false
|
||||||
|
|
||||||
|
# Font family to use for displaying text.
|
||||||
|
#
|
||||||
|
# A font can be either described in detail as below or as a
|
||||||
|
# simple string value (e.g. "monospace" with the appropriate
|
||||||
|
# weight/slant applied automatically).
|
||||||
|
regular:
|
||||||
|
# Font family defines the font family name, such as:
|
||||||
|
# Fira Code", "Courier New", or "monospace" (default).
|
||||||
|
family: "Iosevka Term SS09 Light"
|
||||||
|
|
||||||
|
# Font weight can be one of:
|
||||||
|
# thin, extra_light, light, demilight, book, normal,
|
||||||
|
# medium, demibold, bold, extra_bold, black, extra_black.
|
||||||
|
weight: light
|
||||||
|
|
||||||
|
# Font slant can be one of: normal, italic, oblique.
|
||||||
|
slant: normal
|
||||||
|
|
||||||
|
# Set of optional font features to be enabled. This
|
||||||
|
# is usually a 4-letter code, such as ss01 or ss02 etc.
|
||||||
|
#
|
||||||
|
# Please see your font's documentation to find out what it
|
||||||
|
# supports.
|
||||||
|
#
|
||||||
|
# Default: []
|
||||||
|
features: [ss09]
|
||||||
|
|
||||||
|
# If bold/italic/bold_italic are not explicitly specified, the regular font with
|
||||||
|
# the respective weight and slant will be used.
|
||||||
|
bold:
|
||||||
|
family: "Iosevka Term SS09"
|
||||||
|
features: [ss09]
|
||||||
|
weight: demibold
|
||||||
|
italic:
|
||||||
|
family: "Iosevka Term Curly Slab"
|
||||||
|
weight: light
|
||||||
|
slant: italic
|
||||||
|
bold_italic:
|
||||||
|
family: "Iosevka Term Curly Slab Ex"
|
||||||
|
weight: regular
|
||||||
|
slant: italic
|
||||||
|
#bold: "Hack"
|
||||||
|
#italic: "Hack"
|
||||||
|
#bold_italic: "Hack"
|
||||||
|
|
||||||
|
# This is a special font to be used for displaying unicode symbols
|
||||||
|
# that are to be rendered in emoji presentation.
|
||||||
|
# Defaults to "emoji".
|
||||||
|
emoji: "Noto Color Emoji"
|
||||||
|
|
||||||
|
# Indicates whether or not bold text should be rendered in bright colors,
|
||||||
|
# for indexed colors.
|
||||||
|
#
|
||||||
|
# If disabled, normal color will be used instead.
|
||||||
|
#
|
||||||
|
# Default: false
|
||||||
|
draw_bold_text_with_bright_colors: false
|
||||||
|
|
||||||
|
# Terminal cursor display configuration
|
||||||
|
cursor:
|
||||||
|
# Supported shapes are:
|
||||||
|
#
|
||||||
|
# - block a filled rectangle
|
||||||
|
# - rectangle just the outline of a block
|
||||||
|
# - underscore a line under the text
|
||||||
|
# - bar: the well known i-Beam
|
||||||
|
shape: "bar"
|
||||||
|
# Determines whether or not the cursor will be blinking over time.
|
||||||
|
blinking: false
|
||||||
|
# Blinking interval (in milliseconds) to use when cursor is blinking.
|
||||||
|
blinking_interval: 500
|
||||||
|
|
||||||
|
# vi-like normal-mode specific settings.
|
||||||
|
# Note, currently only the cursor can be customized.
|
||||||
|
normal_mode:
|
||||||
|
cursor:
|
||||||
|
shape: block
|
||||||
|
blinking: false
|
||||||
|
blinking_interval: 500
|
||||||
|
|
||||||
|
# vi-like visual/visual-line/visual-block mode specific settings.
|
||||||
|
# Note, currently only the cursor can be customized.
|
||||||
|
visual_mode:
|
||||||
|
cursor:
|
||||||
|
shape: block
|
||||||
|
blinking: false
|
||||||
|
blinking_interval: 500
|
||||||
|
|
||||||
|
# Time duration in milliseconds for which yank highlight is shown.
|
||||||
|
vi_mode_highlight_timeout: 300
|
||||||
|
|
||||||
|
# Configures a `scrolloff` for cursor movements in normal and visual (block) modes.
|
||||||
|
#
|
||||||
|
# Default: 8
|
||||||
|
vi_mode_scrolloff: 8
|
||||||
|
|
||||||
|
status_line:
|
||||||
|
# Either none or indicator.
|
||||||
|
# This only reflects the initial state of the status line, as it can
|
||||||
|
# be changed at any time during runtime by the user or by an application.
|
||||||
|
display: none
|
||||||
|
|
||||||
|
# Position to place the status line to, if it is to be shown.
|
||||||
|
# This can be either value `top` or value `bottom`.
|
||||||
|
# Default: bottom
|
||||||
|
position: bottom
|
||||||
|
|
||||||
|
# Synchronize the window title with the Host Writable status_line if
|
||||||
|
# and only if the host writable status line was denied to be shown.
|
||||||
|
# Default: false
|
||||||
|
sync_to_window_title: false
|
||||||
|
|
||||||
|
# Background configuration
|
||||||
|
background:
|
||||||
|
# Background opacity to use. A value of 1.0 means fully opaque whereas 0.0 means fully
|
||||||
|
# transparent. Only values between 0.0 and 1.0 are allowed.
|
||||||
|
opacity: 1.0
|
||||||
|
# Some platforms can blur the transparent background (currently only Windows 10 is supported).
|
||||||
|
blur: false
|
||||||
|
|
||||||
|
# Specifies a colorscheme to use (alternatively the colors can be inlined).
|
||||||
|
colors: "default"
|
||||||
|
|
||||||
|
# Hyperlinks (via OSC-8) can be stylized and colorized on hover.
|
||||||
|
hyperlink_decoration:
|
||||||
|
normal: dotted
|
||||||
|
hover: underline
|
||||||
|
|
||||||
|
# Color Profiles
|
||||||
|
# --------------
|
||||||
|
#
|
||||||
|
# Here you can configure your color profiles, whereas a color can be expressed in standard web format,
|
||||||
|
# with a leading # followed by red/green/blue values, 7 characters in total.
|
||||||
|
# You may alternatively use 0x as prefix instead of #.
|
||||||
|
# For example 0x102030 is equal to '#102030'.
|
||||||
|
color_schemes:
|
||||||
|
default:
|
||||||
|
# Default colors
|
||||||
|
default:
|
||||||
|
# Default background color (this can be made transparent, see above).
|
||||||
|
background: "#11171d"
|
||||||
|
# Default foreground text color.
|
||||||
|
foreground: "#e3e0cd"
|
||||||
|
|
||||||
|
# Background image support.
|
||||||
|
background_image:
|
||||||
|
# Full path to the image to use as background.
|
||||||
|
#
|
||||||
|
# Default: empty string (disabled)
|
||||||
|
# path: '/Users/trapni/Pictures/bg.png'
|
||||||
|
|
||||||
|
# Image opacity to be applied to make the image not look to intense
|
||||||
|
# and not get too distracted by the background image.
|
||||||
|
# Default: 0.5
|
||||||
|
opacity: 0.5
|
||||||
|
|
||||||
|
# Optionally blurs background image to make it less distracting
|
||||||
|
# and keep the focus on the actual terminal contents.
|
||||||
|
#
|
||||||
|
# Default: false
|
||||||
|
blur: false
|
||||||
|
|
||||||
|
# Mandates the color of the cursor and potentially overridden text.
|
||||||
|
#
|
||||||
|
# The color can be specified in RGB as usual, plus
|
||||||
|
# - CellForeground: Selects the cell's foreground color.
|
||||||
|
# - CellBackground: Selects the cell's background color.
|
||||||
|
cursor:
|
||||||
|
# Specifies the color to be used for the actual cursor shape.
|
||||||
|
#
|
||||||
|
# Default: CellForeground
|
||||||
|
default: "#00d992"
|
||||||
|
# Specifies the color to be used for the characters that would
|
||||||
|
# be covered otherwise.
|
||||||
|
#
|
||||||
|
# Default: CellBackground
|
||||||
|
text: CellBackground
|
||||||
|
|
||||||
|
# color to pick for hyperlinks decoration, when hovering
|
||||||
|
hyperlink_decoration:
|
||||||
|
normal: "#f0f000"
|
||||||
|
hover: "#ff0000"
|
||||||
|
|
||||||
|
# Color to pick for vi_mode highlights.
|
||||||
|
# The value format is equivalent to how selection colors and alpha contribution is defined.
|
||||||
|
vi_mode_highlight:
|
||||||
|
foreground: CellForeground
|
||||||
|
foreground_alpha: 1.0
|
||||||
|
background: "#ffa500"
|
||||||
|
background_alpha: 0.5
|
||||||
|
|
||||||
|
# Color override for the current cursor's line when in vi_mode:
|
||||||
|
# The value format is equivalent to how selection colors and alpha contribution is defined.
|
||||||
|
# To disable cursorline in vi_mode, set foreground to CellForeground and background to CellBackground.
|
||||||
|
vi_mode_cursorline:
|
||||||
|
foreground: "#ffffff"
|
||||||
|
foreground_alpha: 0.2
|
||||||
|
background: "#808080"
|
||||||
|
background_alpha: 0.4
|
||||||
|
|
||||||
|
# The text selection color can be customized here.
|
||||||
|
# Leaving a value empty will default to the inverse of the content's color values.
|
||||||
|
#
|
||||||
|
# The color can be specified in RGB as usual, plus
|
||||||
|
# - CellForeground: Selects the cell's foreground color.
|
||||||
|
# - CellBackground: Selects the cell's background color.
|
||||||
|
selection:
|
||||||
|
# Specifies the color to be used for the selected text.
|
||||||
|
#
|
||||||
|
# Default: CellBackground
|
||||||
|
foreground: CellForeground
|
||||||
|
# Specifies the alpha value (between 0.0 and 1.0) the configured foreground color
|
||||||
|
# will contribute to the original color.
|
||||||
|
#
|
||||||
|
# A value of 1.0 will paint over, whereas a value of 0.5 will give
|
||||||
|
# a look of a half-transparently painted grid cell.
|
||||||
|
foreground_alpha: 1.0
|
||||||
|
# Specifies the color to be used for the selected background.
|
||||||
|
#
|
||||||
|
# Default: CellForeground
|
||||||
|
background: "#4040f0"
|
||||||
|
# Specifies the alpha value (between 0.0 and 1.0) the configured background color
|
||||||
|
# will contribute to the original color.
|
||||||
|
#
|
||||||
|
# A value of 1.0 will paint over, whereas a value of 0.5 will give
|
||||||
|
# a look of a half-transparently painted grid cell.
|
||||||
|
background_alpha: 0.5
|
||||||
|
|
||||||
|
# Search match highlighting. Similar to selection highlighting.
|
||||||
|
search_highlight:
|
||||||
|
foreground: CellBackground
|
||||||
|
background: CellForeground
|
||||||
|
foreground_alpha: 1.0
|
||||||
|
background_alpha: 1.0
|
||||||
|
|
||||||
|
# Search match highlighting (focused term). Similar to selection highlighting.
|
||||||
|
search_highlight_focused:
|
||||||
|
foreground: CellBackground
|
||||||
|
background: CellForeground
|
||||||
|
foreground_alpha: 1.0
|
||||||
|
background_alpha: 1.0
|
||||||
|
|
||||||
|
# Coloring for the word that is highlighted due to double-clicking it.
|
||||||
|
#
|
||||||
|
# The format is similar to selection highlighting.
|
||||||
|
word_highlight_current:
|
||||||
|
foreground: CellForeground
|
||||||
|
background: "#909090"
|
||||||
|
foreground_alpha: 1.0
|
||||||
|
background_alpha: 0.5
|
||||||
|
|
||||||
|
# Coloring for the word that is highlighted due to double-clicking
|
||||||
|
# another word that matches this word.
|
||||||
|
#
|
||||||
|
# The format is similar to selection highlighting.
|
||||||
|
word_highlight_other:
|
||||||
|
foreground: CellForeground
|
||||||
|
background: "#909090"
|
||||||
|
foreground_alpha: 1.0
|
||||||
|
background_alpha: 0.5
|
||||||
|
|
||||||
|
# Defines the colors to be used for the Indicator status line.
|
||||||
|
# Values must be in RGB form.
|
||||||
|
indicator_statusline:
|
||||||
|
# Default: default background
|
||||||
|
foreground: "#808080"
|
||||||
|
# Default: default foreground
|
||||||
|
background: "#000000"
|
||||||
|
|
||||||
|
# Alternate colors to be used for the indicator status line when
|
||||||
|
# this terminal is currently not in focus.
|
||||||
|
indicator_statusline_inactive:
|
||||||
|
# Default: default background
|
||||||
|
foreground: "#808080"
|
||||||
|
# Default: default foreground
|
||||||
|
background: "#000000"
|
||||||
|
|
||||||
|
# Colors for the IME (Input Method Editor) area.
|
||||||
|
input_method_editor:
|
||||||
|
# Default: default #FFFFFF
|
||||||
|
foreground: "#FFFFFF"
|
||||||
|
# Default: default #FF0000
|
||||||
|
background: "#FF0000"
|
||||||
|
|
||||||
|
# Normal colors
|
||||||
|
normal:
|
||||||
|
black: "#000000"
|
||||||
|
red: "#ff0035"
|
||||||
|
green: "#85ff00"
|
||||||
|
yellow: "#ffc900"
|
||||||
|
blue: "#00a7ff"
|
||||||
|
magenta: "#cb01ff"
|
||||||
|
cyan: "#00e0ff"
|
||||||
|
white: "#f0f0f0"
|
||||||
|
|
||||||
|
# Bright colors
|
||||||
|
bright:
|
||||||
|
black: "#000000"
|
||||||
|
red: "#ffb4af"
|
||||||
|
green: "#d2ffba"
|
||||||
|
yellow: "#ffebb7"
|
||||||
|
blue: "#b1deff"
|
||||||
|
magenta: "#edb5ff"
|
||||||
|
cyan: "#bdf4ff"
|
||||||
|
white: "#ffffff"
|
||||||
|
# Dim (faint) colors, if not set, they're automatically computed based on normal colors.
|
||||||
|
# dim:
|
||||||
|
# black: '#1d1f21'
|
||||||
|
# red: '#cc342b'
|
||||||
|
# green: '#198844'
|
||||||
|
# yellow: '#fba922'
|
||||||
|
# blue: '#3971ed'
|
||||||
|
# magenta: '#a36ac7'
|
||||||
|
# cyan: '#3971ed'
|
||||||
|
# white: '#c5c8c6'
|
||||||
|
|
||||||
|
# Key Bindings
|
||||||
|
# ------------
|
||||||
|
#
|
||||||
|
# In this section you can customize key bindings.
|
||||||
|
# Each array element in `input_mapping` represents one key binding,
|
||||||
|
# whereas `mods` represents an array of keyboard modifiers that must be pressed - as well as
|
||||||
|
# the `key` or `mouse` - in order to activate the corresponding action,
|
||||||
|
#
|
||||||
|
# Additionally one can filter input mappings based on special terminal modes using the `modes` option:
|
||||||
|
# - Alt : The terminal is currently in alternate screen buffer, otherwise it is in primary screen buffer.
|
||||||
|
# - AppCursor : The application key cursor mode is enabled (otherwise it's normal cursor mode).
|
||||||
|
# - AppKeypad : The application keypad mode is enabled (otherwise it's the numeric keypad mode).
|
||||||
|
# - Select : The terminal has currently an active grid cell selection (such as selected text).
|
||||||
|
# - Insert : The Insert input mode is active, that is the default and one way to test
|
||||||
|
# that the input mode is not in normal mode or any of the visual select modes.
|
||||||
|
# - Search : There is a search term currently being edited or already present.
|
||||||
|
# - Trace : The terminal is currently in trace-mode, i.e., each VT sequence can be interactively
|
||||||
|
# single-step executed using custom actions. See TraceEnter/TraceStep/TraceLeave actions.
|
||||||
|
#
|
||||||
|
# You can combine these modes by concatenating them via | and negate a single one
|
||||||
|
# by prefixing with ~.
|
||||||
|
#
|
||||||
|
# The `modes` option defaults to not filter at all (the input mappings always
|
||||||
|
# match based on modifier and key press / mouse event).
|
||||||
|
#
|
||||||
|
# `key` represents keys on your keyboard, and `mouse` represents buttons
|
||||||
|
# as well as the scroll wheel.
|
||||||
|
#
|
||||||
|
# Modifiers:
|
||||||
|
# - Alt
|
||||||
|
# - Control
|
||||||
|
# - Shift
|
||||||
|
# - Meta (this is the Windows key on Windows OS, and the Command key on OS/X, and Meta on anything else)
|
||||||
|
#
|
||||||
|
# Keys can be expressed case-insensitively symbolic:
|
||||||
|
# APOSTROPHE, ADD, BACKSLASH, COMMA, DECIMAL, DIVIDE, EQUAL, LEFT_BRACKET,
|
||||||
|
# MINUS, MULTIPLY, PERIOD, RIGHT_BRACKET, SEMICOLON, SLASH, SUBTRACT, SPACE
|
||||||
|
# Enter, Backspace, Tab, Escape, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12,
|
||||||
|
# DownArrow, LeftArrow, RightArrow, UpArrow, Insert, Delete, Home, End, PageUp, PageDown,
|
||||||
|
# Numpad_NumLock, Numpad_Divide, Numpad_Multiply, Numpad_Subtract, Numpad_CapsLock,
|
||||||
|
# Numpad_Add, Numpad_Decimal, Numpad_Enter, Numpad_Equal,
|
||||||
|
# Numpad_0, Numpad_1, Numpad_2, Numpad_3, Numpad_4,
|
||||||
|
# Numpad_5, Numpad_6, Numpad_7, Numpad_8, Numpad_9
|
||||||
|
# or in case of standard characters, just the character.
|
||||||
|
#
|
||||||
|
# Mouse buttons can be one of the following self-explanatory ones:
|
||||||
|
# Left, Middle, Right, WheelUp, WheelDown
|
||||||
|
#
|
||||||
|
# Actions:
|
||||||
|
# - CancelSelection Cancels currently active selection, if any.
|
||||||
|
# - ChangeProfile Changes the profile to the given profile `name`.
|
||||||
|
# - ClearHistoryAndReset Clears the history, performs a terminal hard reset and attempts to force a redraw of the currently running application.
|
||||||
|
# - CopyPreviousMarkRange Copies the most recent range that is delimited by vertical line marks into clipboard.
|
||||||
|
# - CopySelection Copies the current selection into the clipboard buffer.
|
||||||
|
# - DecreaseFontSize Decreases the font size by 1 pixel.
|
||||||
|
# - DecreaseOpacity Decreases the default-background opacity by 5%.
|
||||||
|
# - FocusNextSearchMatch Focuses the next search match (if any).
|
||||||
|
# - FocusPreviousSearchMatch Focuses the next previous match (if any).
|
||||||
|
# - FollowHyperlink Follows the hyperlink that is exposed via OSC 8 under the current cursor position.
|
||||||
|
# - IncreaseFontSize Increases the font size by 1 pixel.
|
||||||
|
# - IncreaseOpacity Increases the default-background opacity by 5%.
|
||||||
|
# - NewTerminal Spawns a new terminal at the current terminals current working directory.
|
||||||
|
# - NoSearchHighlight Disables current search highlighting, if anything is still highlighted due to a prior search.
|
||||||
|
# - OpenConfiguration Opens the configuration file.
|
||||||
|
# - OpenFileManager Opens the current working directory in a system file manager.
|
||||||
|
# - PasteClipboard Pastes clipboard to standard input. Pass boolean parameter 'strip' to indicate whether or not to strip repetitive whitespaces down to one and newlines to whitespaces.
|
||||||
|
# - PasteSelection Pastes current selection to standard input.
|
||||||
|
# - Quit Quits the application.
|
||||||
|
# - ReloadConfig Forces a configuration reload.
|
||||||
|
# - ResetConfig Overwrites current configuration with builtin default configuration and loads it. Attention, all your current configuration will be lost due to overwrite!
|
||||||
|
# - ResetFontSize Resets font size to what is configured in the config file.
|
||||||
|
# - ScreenshotVT Takes a screenshot in form of VT escape sequences.
|
||||||
|
# - ScrollDown Scrolls down by the multiplier factor.
|
||||||
|
# - ScrollMarkDown Scrolls one mark down (if none present, bottom of the screen)
|
||||||
|
# - ScrollMarkUp Scrolls one mark up
|
||||||
|
# - ScrollOneDown Scrolls down by exactly one line.
|
||||||
|
# - ScrollOneUp Scrolls up by exactly one line.
|
||||||
|
# - ScrollPageDown Scrolls a page down.
|
||||||
|
# - ScrollPageUp Scrolls a page up.
|
||||||
|
# - ScrollToBottom Scrolls to the bottom of the screen buffer.
|
||||||
|
# - ScrollToTop Scrolls to the top of the screen buffer.
|
||||||
|
# - ScrollUp Scrolls up by the multiplier factor.
|
||||||
|
# - SearchReverse Initiates search mode (starting to search at current cursor position, moving upwards).
|
||||||
|
# - SendChars Writes given characters in `chars` member to the applications input.
|
||||||
|
# - ToggleAllKeyMaps Disables/enables responding to all keybinds (this keybind will be preserved when disabling all others).
|
||||||
|
# - ToggleFullScreen Enables/disables full screen mode.
|
||||||
|
# - ToggleInputProtection Enables/disables terminal input protection.
|
||||||
|
# - ToggleStatusLine Shows/hides the VT320 compatible Indicator status line.
|
||||||
|
# - ToggleTitleBar Shows/Hides titlebar
|
||||||
|
# - TraceBreakAtEmptyQueue Executes any pending VT sequence from the VT sequence buffer in trace mode, then waits.
|
||||||
|
# - TraceEnter Enables trace mode, suspending execution until explicitly requested to continue (See TraceLeave and TraceStep).
|
||||||
|
# - TraceLeave Disables trace mode. Any pending VT sequence will be flushed out and normal execution will be resumed.
|
||||||
|
# - TraceStep Executes a single VT sequence that is to be executed next.
|
||||||
|
# - ViNormalMode Enters/Leaves Vi-like normal mode. The cursor can then be moved via h/j/k/l movements in normal mode and text can be selected via v, yanked via y, and clipboard pasted via p.
|
||||||
|
# - WriteScreen Writes VT sequence in `chars` member to the screen (bypassing the application).
|
||||||
|
|
||||||
|
input_mapping:
|
||||||
|
- { mods: [Control], mouse: Left, action: FollowHyperlink }
|
||||||
|
- { mods: [], mouse: Middle, action: PasteSelection }
|
||||||
|
- { mods: [], mouse: WheelDown, action: ScrollDown }
|
||||||
|
- { mods: [], mouse: WheelUp, action: ScrollUp }
|
||||||
|
- { mods: [Alt], key: Enter, action: ToggleFullscreen }
|
||||||
|
- { mods: [Alt], mouse: WheelDown, action: DecreaseOpacity }
|
||||||
|
- { mods: [Alt], mouse: WheelUp, action: IncreaseOpacity }
|
||||||
|
- { mods: [Control, Alt], key: S, action: ScreenshotVT }
|
||||||
|
- { mods: [Control, Shift], key: Plus, action: IncreaseFontSize }
|
||||||
|
- { mods: [Control], key: "0", action: ResetFontSize }
|
||||||
|
- { mods: [Control, Shift], key: Minus, action: DecreaseFontSize }
|
||||||
|
- { mods: [Control, Shift], key: "_", action: DecreaseFontSize }
|
||||||
|
- { mods: [Control, Shift], key: N, action: NewTerminal }
|
||||||
|
- { mods: [Control, Shift], key: V, action: PasteClipboard, strip: false }
|
||||||
|
- { mods: [Control, Alt], key: V, action: PasteClipboard, strip: true }
|
||||||
|
- { mods: [Control], key: C, action: CopySelection, mode: "Select|Insert" }
|
||||||
|
- { mods: [Control], key: C, action: CancelSelection, mode: "Select|Insert" }
|
||||||
|
- {
|
||||||
|
mods: [Control],
|
||||||
|
key: V,
|
||||||
|
action: PasteClipboard,
|
||||||
|
strip: false,
|
||||||
|
mode: "Select|Insert",
|
||||||
|
}
|
||||||
|
- { mods: [Control], key: V, action: CancelSelection, mode: "Select|Insert" }
|
||||||
|
- { mods: [], key: Escape, action: CancelSelection, mode: "Select|Insert" }
|
||||||
|
- { mods: [Control, Shift], key: Space, action: ViNormalMode, mode: "Insert" }
|
||||||
|
- { mods: [Control, Shift], key: Comma, action: OpenConfiguration }
|
||||||
|
- { mods: [Control, Shift], key: Q, action: Quit }
|
||||||
|
- { mods: [Control], mouse: WheelDown, action: DecreaseFontSize }
|
||||||
|
- { mods: [Control], mouse: WheelUp, action: IncreaseFontSize }
|
||||||
|
- { mods: [Shift], key: DownArrow, action: ScrollOneDown }
|
||||||
|
- { mods: [Shift], key: End, action: ScrollToBottom }
|
||||||
|
- { mods: [Shift], key: Home, action: ScrollToTop }
|
||||||
|
- { mods: [Shift], key: PageDown, action: ScrollPageDown }
|
||||||
|
- { mods: [Shift], key: PageUp, action: ScrollPageUp }
|
||||||
|
- { mods: [Shift], key: UpArrow, action: ScrollOneUp }
|
||||||
|
- { mods: [Control, Alt], key: K, action: ScrollMarkUp, mode: "~Alt" }
|
||||||
|
- { mods: [Control, Alt], key: J, action: ScrollMarkDown, mode: "~Alt" }
|
||||||
|
- { mods: [Shift], mouse: WheelDown, action: ScrollPageDown }
|
||||||
|
- { mods: [Shift], mouse: WheelUp, action: ScrollPageUp }
|
||||||
|
- { mods: [Control, Alt], key: O, action: OpenFileManager }
|
||||||
|
- { mods: [Control, Alt], key: ".", action: ToggleStatusLine }
|
||||||
|
- { mods: [Control, Shift], key: "F", action: SearchReverse }
|
||||||
|
- { mods: [Control, Shift], key: "H", action: NoSearchHighlight }
|
||||||
|
- { mods: [], key: "F3", action: FocusNextSearchMatch }
|
||||||
|
- { mods: [Shift], key: "F3", action: FocusPreviousSearchMatch }
|
||||||
|
# - { mods: [Control, Meta], key: 'E', action: TraceEnter, mode: "~Trace" }
|
||||||
|
# - { mods: [Control, Meta], key: 'E', action: TraceLeave, mode: "Trace" }
|
||||||
|
# - { mods: [Control, Meta], key: 'N', action: TraceStep, mode: "Trace" }
|
||||||
|
# - { mods: [Control, Meta], key: 'F', action: TraceBreakAtEmptyQueue, mode: "Trace" }
|
14
.config/efm-langserver/config.yaml
Normal file
14
.config/efm-langserver/config.yaml
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
version: 2
|
||||||
|
root-markers:
|
||||||
|
- .git/
|
||||||
|
|
||||||
|
tools:
|
||||||
|
clang-format: &clang-format
|
||||||
|
format-command: 'clang-format -style="{BasedOnStyle: Google, IndentWidth: 2, AlignConsecutiveDeclarations: true, AlignConsecutiveAssignments: true, ColumnLimit: 0}"'
|
||||||
|
format-stdin: true
|
||||||
|
|
||||||
|
languages:
|
||||||
|
proto:
|
||||||
|
- <<: *clang-format
|
||||||
|
|
||||||
|
|
1
.config/environment.d/difftastic.conf
Normal file
1
.config/environment.d/difftastic.conf
Normal file
|
@ -0,0 +1 @@
|
||||||
|
DFT_BACKGROUND=light
|
1
.config/environment.d/docker.conf
Normal file
1
.config/environment.d/docker.conf
Normal file
|
@ -0,0 +1 @@
|
||||||
|
DOCKER_HOST=unix://${XDG_RUNTIME_DIR}/podman/podman.sock
|
1
.config/environment.d/golang.conf
Normal file
1
.config/environment.d/golang.conf
Normal file
|
@ -0,0 +1 @@
|
||||||
|
GOPROXY=https://athens.aarn.shelman.io
|
2
.config/environment.d/mozilla.conf
Normal file
2
.config/environment.d/mozilla.conf
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
MOZ_ENABLE_WAYLAND=1
|
||||||
|
MOZ_DISABLE_RDD_SANDBOX=1
|
3
.config/environment.d/otel.conf
Normal file
3
.config/environment.d/otel.conf
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
OTEL_EXPORTER_OTLP_ENDPOINT=https://otel.aarn.shelman.io
|
||||||
|
OTEL_RESOURCE_ATTRIBUTES=instance=dln-dev
|
||||||
|
OTEL_LOG_LEVEL=debug
|
1
.config/environment.d/ssh.conf
Normal file
1
.config/environment.d/ssh.conf
Normal file
|
@ -0,0 +1 @@
|
||||||
|
SSH_AUTH_SOCK=${XDG_RUNTIME_DIR}/gcr/ssh
|
6
.config/fish/conf.d/abbr.fish
Normal file
6
.config/fish/conf.d/abbr.fish
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
abbr --add b git branch -va
|
||||||
|
abbr --add d git diff --stat -p -C --color-words
|
||||||
|
abbr --add new git checkout --detach main
|
||||||
|
abbr --add s git status -sb
|
||||||
|
abbr --add sl git branchless smartlog
|
||||||
|
abbr --add sw git branchless switch --interactive
|
10
.config/fish/conf.d/aliases.fish
Normal file
10
.config/fish/conf.d/aliases.fish
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
alias e='wezterm-edit-helper'
|
||||||
|
alias dotgit='git --work-tree $HOME --git-dir $HOME/.dot_git'
|
||||||
|
alias git='git-branchless wrap --'
|
||||||
|
alias l='bat --wrap=never --pager="less -S"'
|
||||||
|
alias ls=eza
|
||||||
|
alias tail='tail -n $LINES'
|
||||||
|
alias timestamp='TZ=Z date "+%Y%m%dT%H%M%SZ"'
|
||||||
|
alias top='btm --basic --enable_cache_memory --enable_gpu_memory --battery'
|
||||||
|
alias w="history -1 | sed -e 's/[0-9]* //' | xargs viddy -n1"
|
||||||
|
alias xc=fish_clipboard_copy
|
91
.config/fish/conf.d/prompt.fish
Normal file
91
.config/fish/conf.d/prompt.fish
Normal file
|
@ -0,0 +1,91 @@
|
||||||
|
function fish_prompt
|
||||||
|
switch "$fish_key_bindings"
|
||||||
|
case fish_hybrid_key_bindings fish_vi_key_bindings
|
||||||
|
set STARSHIP_KEYMAP "$fish_bind_mode"
|
||||||
|
case '*'
|
||||||
|
set STARSHIP_KEYMAP insert
|
||||||
|
end
|
||||||
|
set STARSHIP_CMD_PIPESTATUS $pipestatus
|
||||||
|
set STARSHIP_CMD_STATUS $status
|
||||||
|
# Account for changes in variable name between v2.7 and v3.0
|
||||||
|
set STARSHIP_DURATION "$CMD_DURATION$cmd_duration"
|
||||||
|
set STARSHIP_JOBS (count (jobs -p))
|
||||||
|
if test "$TRANSIENT" = 1
|
||||||
|
# Clear from cursor to end of screen as `commandline -f repaint` does not do this
|
||||||
|
# See https://github.com/fish-shell/fish-shell/issues/8418
|
||||||
|
printf \e\[0J
|
||||||
|
if type -q starship_transient_prompt_func
|
||||||
|
starship_transient_prompt_func
|
||||||
|
else
|
||||||
|
printf "\n\e[1;32m%%\e[0m "
|
||||||
|
end
|
||||||
|
else
|
||||||
|
/usr/bin/starship prompt --terminal-width="$COLUMNS" --status=$STARSHIP_CMD_STATUS --pipestatus="$STARSHIP_CMD_PIPESTATUS" --keymap=$STARSHIP_KEYMAP --cmd-duration=$STARSHIP_DURATION --jobs=$STARSHIP_JOBS
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function fish_right_prompt
|
||||||
|
switch "$fish_key_bindings"
|
||||||
|
case fish_hybrid_key_bindings fish_vi_key_bindings
|
||||||
|
set STARSHIP_KEYMAP "$fish_bind_mode"
|
||||||
|
case '*'
|
||||||
|
set STARSHIP_KEYMAP insert
|
||||||
|
end
|
||||||
|
set STARSHIP_CMD_PIPESTATUS $pipestatus
|
||||||
|
set STARSHIP_CMD_STATUS $status
|
||||||
|
# Account for changes in variable name between v2.7 and v3.0
|
||||||
|
set STARSHIP_DURATION "$CMD_DURATION$cmd_duration"
|
||||||
|
set STARSHIP_JOBS (count (jobs -p))
|
||||||
|
if test "$TRANSIENT" = 1
|
||||||
|
if type -q starship_transient_rprompt_func
|
||||||
|
starship_transient_rprompt_func
|
||||||
|
else
|
||||||
|
printf ""
|
||||||
|
end
|
||||||
|
else
|
||||||
|
/usr/bin/starship prompt --right --terminal-width="$COLUMNS" --status=$STARSHIP_CMD_STATUS --pipestatus="$STARSHIP_CMD_PIPESTATUS" --keymap=$STARSHIP_KEYMAP --cmd-duration=$STARSHIP_DURATION --jobs=$STARSHIP_JOBS
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# Disable virtualenv prompt, it breaks starship
|
||||||
|
set -g VIRTUAL_ENV_DISABLE_PROMPT 1
|
||||||
|
|
||||||
|
# Remove default mode prompt
|
||||||
|
builtin functions -e fish_mode_prompt
|
||||||
|
|
||||||
|
set -gx STARSHIP_SHELL fish
|
||||||
|
|
||||||
|
# Transience related functions
|
||||||
|
function reset-transient --on-event fish_postexec
|
||||||
|
set -g TRANSIENT 0
|
||||||
|
end
|
||||||
|
|
||||||
|
function transient_execute
|
||||||
|
if commandline --is-valid
|
||||||
|
set -g TRANSIENT 1
|
||||||
|
commandline -f repaint
|
||||||
|
else
|
||||||
|
set -g TRANSIENT 0
|
||||||
|
end
|
||||||
|
commandline -f execute
|
||||||
|
end
|
||||||
|
|
||||||
|
# --user is the default, but listed anyway to make it explicit.
|
||||||
|
function enable_transience --description 'enable transient prompt keybindings'
|
||||||
|
bind --user \r transient_execute
|
||||||
|
bind --user -M insert \r transient_execute
|
||||||
|
end
|
||||||
|
|
||||||
|
# Erase the transient prompt related key bindings.
|
||||||
|
# --user is the default, but listed anyway to make it explicit.
|
||||||
|
# Erasing a user binding will revert to the preset.
|
||||||
|
function disable_transience --description 'remove transient prompt keybindings'
|
||||||
|
bind --user -e \r
|
||||||
|
bind --user -M insert -e \r
|
||||||
|
end
|
||||||
|
|
||||||
|
# Set up the session key that will be used to store logs
|
||||||
|
# We don't use `random [min] [max]` because it is unavailable in older versions of fish shell
|
||||||
|
set -gx STARSHIP_SESSION_KEY (string sub -s1 -l16 (random)(random)(random)(random)(random)0000000000000000)
|
||||||
|
|
||||||
|
enable_transience
|
57
.config/fish/conf.d/semantic-prompt.fish
Normal file
57
.config/fish/conf.d/semantic-prompt.fish
Normal file
|
@ -0,0 +1,57 @@
|
||||||
|
#!/usr/bin/fish
|
||||||
|
# SPDX-License-Identifier: CC0-1.0
|
||||||
|
if status --is-interactive
|
||||||
|
set _fishprompt_aid "fish"$fish_pid
|
||||||
|
set _fishprompt_started 0
|
||||||
|
# empty if running; or a numeric exit code; or CANCEL
|
||||||
|
set _fishprompt_postexec ""
|
||||||
|
|
||||||
|
functions -c fish_prompt _fishprompt_saved_prompt
|
||||||
|
set _fishprompt_prompt_count 0
|
||||||
|
set _fishprompt_disp_count 0
|
||||||
|
function _fishprompt_start --on-event fish_prompt
|
||||||
|
set _fishprompt_prompt_count (math $_fishprompt_prompt_count + 1)
|
||||||
|
# don't use post-exec, because it is called *before* omitted-newline output
|
||||||
|
if [ -n "$_fishprompt_postexec" ]
|
||||||
|
printf "\033]133;D;%s;aid=%s\007" "$_fishprompt_postexec" $_fishprompt_aid
|
||||||
|
end
|
||||||
|
printf "\033]133;A;aid=%s;cl=m\007" $_fishprompt_aid
|
||||||
|
end
|
||||||
|
|
||||||
|
function fish_prompt
|
||||||
|
set _fishprompt_disp_count (math $_fishprompt_disp_count + 1)
|
||||||
|
printf "\033]133;P;k=i\007%b\033]133;B\007" (string join "\n" (_fishprompt_saved_prompt))
|
||||||
|
set _fishprompt_started 1
|
||||||
|
set _fishprompt_postexec ""
|
||||||
|
end
|
||||||
|
|
||||||
|
function _fishprompt_preexec --on-event fish_preexec
|
||||||
|
if [ "$_fishprompt_started" = 1 ]
|
||||||
|
printf "\033]133;C;\007"
|
||||||
|
end
|
||||||
|
set _fishprompt_started 0
|
||||||
|
end
|
||||||
|
|
||||||
|
function _fishprompt_postexec --on-event fish_postexec
|
||||||
|
set _fishprompt_postexec $status
|
||||||
|
_fishprompt_start
|
||||||
|
end
|
||||||
|
|
||||||
|
function __fishprompt_cancel --on-event fish_cancel
|
||||||
|
set _fishprompt_postexec CANCEL
|
||||||
|
_fishprompt_start
|
||||||
|
end
|
||||||
|
|
||||||
|
function _fishprompt_exit --on-process %self
|
||||||
|
if [ "$_fishprompt_started" = 1 ]
|
||||||
|
printf "\033]133;Z;aid=%s\007" $_fishprompt_aid
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if functions -q fish_right_prompt
|
||||||
|
functions -c fish_right_prompt _fishprompt_saved_right_prompt
|
||||||
|
function fish_right_prompt
|
||||||
|
printf "\033]133;P;k=r\007%b\033]133;B\007" (string join "\n" (_fishprompt_saved_right_prompt))
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
37
.config/fish/conf.d/task.fish
Normal file
37
.config/fish/conf.d/task.fish
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
set GO_TASK_PROGNAME task
|
||||||
|
|
||||||
|
function __task_get_tasks --description "Prints all available tasks with their description"
|
||||||
|
# Read the list of tasks (and potential errors)
|
||||||
|
$GO_TASK_PROGNAME --list-all 2>&1 | read -lz rawOutput
|
||||||
|
|
||||||
|
# Return on non-zero exit code (for cases when there is no Taskfile found or etc.)
|
||||||
|
if test $status -ne 0
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
# Grab names and descriptions (if any) of the tasks
|
||||||
|
set -l output (echo $rawOutput | sed -e '1d; s/\* \(.*\):\s*\(.*\)\s*(aliases.*/\1\t\2/' -e 's/\* \(.*\):\s*\(.*\)/\1\t\2/'| string split0)
|
||||||
|
if test $output
|
||||||
|
echo $output
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
complete -c $GO_TASK_PROGNAME -d 'Runs the specified task(s). Falls back to the "default" task if no task name was specified, or lists all tasks if an unknown task name was
|
||||||
|
specified.' -xa "(__task_get_tasks)"
|
||||||
|
|
||||||
|
complete -c $GO_TASK_PROGNAME -s c -l color -d 'colored output (default true)'
|
||||||
|
complete -c $GO_TASK_PROGNAME -s d -l dir -d 'sets directory of execution'
|
||||||
|
complete -c $GO_TASK_PROGNAME -l dry -d 'compiles and prints tasks in the order that they would be run, without executing them'
|
||||||
|
complete -c $GO_TASK_PROGNAME -s f -l force -d 'forces execution even when the task is up-to-date'
|
||||||
|
complete -c $GO_TASK_PROGNAME -s h -l help -d 'shows Task usage'
|
||||||
|
complete -c $GO_TASK_PROGNAME -s i -l init -d 'creates a new Taskfile.yml in the current folder'
|
||||||
|
complete -c $GO_TASK_PROGNAME -s l -l list -d 'lists tasks with description of current Taskfile'
|
||||||
|
complete -c $GO_TASK_PROGNAME -s o -l output -d 'sets output style: [interleaved|group|prefixed]' -xa "interleaved group prefixed"
|
||||||
|
complete -c $GO_TASK_PROGNAME -s p -l parallel -d 'executes tasks provided on command line in parallel'
|
||||||
|
complete -c $GO_TASK_PROGNAME -s s -l silent -d 'disables echoing'
|
||||||
|
complete -c $GO_TASK_PROGNAME -l status -d 'exits with non-zero exit code if any of the given tasks is not up-to-date'
|
||||||
|
complete -c $GO_TASK_PROGNAME -l summary -d 'show summary about a task'
|
||||||
|
complete -c $GO_TASK_PROGNAME -s t -l taskfile -d 'choose which Taskfile to run. Defaults to "Taskfile.yml"'
|
||||||
|
complete -c $GO_TASK_PROGNAME -s v -l verbose -d 'enables verbose mode'
|
||||||
|
complete -c $GO_TASK_PROGNAME -l version -d 'show Task version'
|
||||||
|
complete -c $GO_TASK_PROGNAME -s w -l watch -d 'enables watch of the given task'
|
92
.config/fish/config.fish
Normal file
92
.config/fish/config.fish
Normal file
|
@ -0,0 +1,92 @@
|
||||||
|
set fish_greeting
|
||||||
|
set fish_emoji_width 2
|
||||||
|
|
||||||
|
fish_add_path $HOME/.cargo/bin
|
||||||
|
fish_add_path $HOME/bin
|
||||||
|
|
||||||
|
## Nix
|
||||||
|
set -gx LOCALE_ARCHIVE /usr/lib/locale/locale-archive
|
||||||
|
set -gx NIX_REMOTE daemon
|
||||||
|
fish_add_path $HOME/.nix-profile/bin
|
||||||
|
|
||||||
|
if status is-interactive
|
||||||
|
|
||||||
|
## Pager
|
||||||
|
set -gx LESS "--mouse --wheel-lines=1 -nRXF"
|
||||||
|
set -gx LESSCOLORIZER bat
|
||||||
|
set -gx LESSOPEN "|lesspipe.sh %s"
|
||||||
|
set -gx PAGER bat
|
||||||
|
set -gx BAT_PAGER "less -r"
|
||||||
|
|
||||||
|
## OpenTelemetry
|
||||||
|
set -gx OTEL_EXPORTER_OTLP_ENDPOINT https://otel.aarn.shelman.io
|
||||||
|
set -gx OTEL_RESOURCE_ATTRIBUTES instance=dln-dev
|
||||||
|
set -gx OTEL_LOG_LEVEL debug
|
||||||
|
|
||||||
|
## Utilities
|
||||||
|
|
||||||
|
set -gx EDITOR (which nvim)
|
||||||
|
set -gx VISUAL $EDITOR
|
||||||
|
set -gx SUDO_EDITOR $EDITOR
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function tree
|
||||||
|
eza --tree --color=always $argv | bat --wrap=never
|
||||||
|
end
|
||||||
|
|
||||||
|
function rg --wraps rg --description 'ripgrep with bat'
|
||||||
|
/usr/bin/rg --color=always $argv | bat --wrap=never
|
||||||
|
end
|
||||||
|
|
||||||
|
## Directory jumping with frecency
|
||||||
|
|
||||||
|
function fre_after_cd --on-variable PWD
|
||||||
|
fre --add "$PWD"
|
||||||
|
end
|
||||||
|
|
||||||
|
function jump
|
||||||
|
set _dir $(fre --sorted | fzf --no-sort --color=fg:248,bg+:16,fg+:49,pointer:49,border:49 --border=rounded --layout=reverse '--bind=ctrl-g:become(br -f --conf ~/.config/broot/select.hjson $(git rev-parse --show-toplevel 2>/dev/null || pwd))')
|
||||||
|
[ -n "$_dir" ] && pushd $_dir >>/dev/null
|
||||||
|
commandline -f repaint
|
||||||
|
end
|
||||||
|
bind \cg jump
|
||||||
|
|
||||||
|
function git_jump
|
||||||
|
set _dir $(git rev-parse --show-toplevel 2>/dev/null || pwd)
|
||||||
|
if [ "$_dir" = "$PWD" ]
|
||||||
|
set _dir $(br -f --conf ~/.config/broot/select.hjson)
|
||||||
|
end
|
||||||
|
[ -n "$_dir" ] && pushd $_dir >>/dev/null
|
||||||
|
commandline -f repaint
|
||||||
|
end
|
||||||
|
bind \c_ git_jump
|
||||||
|
|
||||||
|
function git_broot
|
||||||
|
br $(git rev-parse --show-toplevel 2>/dev/null || pwd)
|
||||||
|
commandline -f repaint
|
||||||
|
end
|
||||||
|
|
||||||
|
bind \ee git_broot
|
||||||
|
bind \eg gitui
|
||||||
|
|
||||||
|
|
||||||
|
## Kubernetes
|
||||||
|
fish_add_path $HOME/.krew/bin
|
||||||
|
# function kubectl --wraps kubectl
|
||||||
|
# command kubecolor $argv
|
||||||
|
# end
|
||||||
|
|
||||||
|
## History
|
||||||
|
|
||||||
|
# FIXME: how to use autin history for these?
|
||||||
|
bind \cn history-prefix-search-forward
|
||||||
|
bind \cp history-prefix-search-backward
|
||||||
|
# bind \cP _atuin_bind_up
|
||||||
|
bind \cJ forward-char
|
||||||
|
|
||||||
|
atuin init fish | source
|
||||||
|
end
|
||||||
|
|
||||||
|
## Direnv
|
||||||
|
direnv hook fish | source
|
47
.config/fish/fish_variables
Normal file
47
.config/fish/fish_variables
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
# This file contains fish universal variable definitions.
|
||||||
|
# VERSION: 3.0
|
||||||
|
SETUVAR __fish_initialized:3400
|
||||||
|
SETUVAR fish_color_autosuggestion:6c7086
|
||||||
|
SETUVAR fish_color_cancel:f38ba8
|
||||||
|
SETUVAR fish_color_command:89b4fa
|
||||||
|
SETUVAR fish_color_comment:7f849c\x1e\x2d\x2ditalics\x1e\x2d\x2ddim
|
||||||
|
SETUVAR fish_color_cwd:f9e2af
|
||||||
|
SETUVAR fish_color_cwd_root:red
|
||||||
|
SETUVAR fish_color_end:fab387
|
||||||
|
SETUVAR fish_color_error:f38ba8
|
||||||
|
SETUVAR fish_color_escape:eba0ac
|
||||||
|
SETUVAR fish_color_gray:6c7086
|
||||||
|
SETUVAR fish_color_history_current:\x2d\x2dbold
|
||||||
|
SETUVAR fish_color_host:89b4fa
|
||||||
|
SETUVAR fish_color_host_remote:a6e3a1
|
||||||
|
SETUVAR fish_color_keyword:f38ba8
|
||||||
|
SETUVAR fish_color_match:\x2d\x2dbackground\x3dbrblue
|
||||||
|
SETUVAR fish_color_normal:cdd6f4
|
||||||
|
SETUVAR fish_color_operator:f5c2e7
|
||||||
|
SETUVAR fish_color_option:a6e3a1
|
||||||
|
SETUVAR fish_color_param:f2cdcd
|
||||||
|
SETUVAR fish_color_quote:a6e3a1
|
||||||
|
SETUVAR fish_color_redirection:f5c2e7
|
||||||
|
SETUVAR fish_color_search_match:\x2d\x2dbackground\x3d313244
|
||||||
|
SETUVAR fish_color_selection:\x2d\x2dbackground\x3d313244
|
||||||
|
SETUVAR fish_color_status:f38ba8
|
||||||
|
SETUVAR fish_color_user:94e2d5
|
||||||
|
SETUVAR fish_color_valid_path:\x2d\x2dunderline
|
||||||
|
SETUVAR fish_cursor_default:line
|
||||||
|
SETUVAR fish_cursor_normal:line
|
||||||
|
SETUVAR fish_key_bindings:fish_default_key_bindings
|
||||||
|
SETUVAR fish_pager_color_background:\x1d
|
||||||
|
SETUVAR fish_pager_color_completion:cdd6f4
|
||||||
|
SETUVAR fish_pager_color_description:6c7086
|
||||||
|
SETUVAR fish_pager_color_prefix:f5c2e7
|
||||||
|
SETUVAR fish_pager_color_progress:6c7086
|
||||||
|
SETUVAR fish_pager_color_secondary_background:\x1d
|
||||||
|
SETUVAR fish_pager_color_secondary_completion:\x1d
|
||||||
|
SETUVAR fish_pager_color_secondary_description:\x1d
|
||||||
|
SETUVAR fish_pager_color_secondary_prefix:\x1d
|
||||||
|
SETUVAR fish_pager_color_selected_background:\x1d
|
||||||
|
SETUVAR fish_pager_color_selected_completion:\x1d
|
||||||
|
SETUVAR fish_pager_color_selected_description:\x1d
|
||||||
|
SETUVAR fish_pager_color_selected_prefix:\x1d
|
||||||
|
SETUVAR fish_user_paths:/home/dln/\x2ekrew/bin\x1e/home/dln/bin\x1e/home/dln/\x2ecargo/bin
|
||||||
|
SETUVAR --export theme:Catppuccin\x20Latte
|
30
.config/fish/themes/Catppuccin Mocha.theme
Normal file
30
.config/fish/themes/Catppuccin Mocha.theme
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
# name: 'Catppuccin mocha'
|
||||||
|
# url: 'https://github.com/catppuccin/fish'
|
||||||
|
# preferred_background: 1e1e2e
|
||||||
|
|
||||||
|
fish_color_normal cdd6f4
|
||||||
|
fish_color_command 89b4fa
|
||||||
|
fish_color_param f2cdcd
|
||||||
|
fish_color_keyword f38ba8
|
||||||
|
fish_color_quote a6e3a1
|
||||||
|
fish_color_redirection f5c2e7
|
||||||
|
fish_color_end fab387
|
||||||
|
fish_color_comment 7f849c --italics --dim
|
||||||
|
fish_color_error f38ba8
|
||||||
|
fish_color_gray 6c7086
|
||||||
|
fish_color_selection --background=313244
|
||||||
|
fish_color_search_match --background=313244
|
||||||
|
fish_color_option a6e3a1
|
||||||
|
fish_color_operator f5c2e7
|
||||||
|
fish_color_escape eba0ac
|
||||||
|
fish_color_autosuggestion 6c7086
|
||||||
|
fish_color_cancel f38ba8
|
||||||
|
fish_color_cwd f9e2af
|
||||||
|
fish_color_user 94e2d5
|
||||||
|
fish_color_host 89b4fa
|
||||||
|
fish_color_host_remote a6e3a1
|
||||||
|
fish_color_status f38ba8
|
||||||
|
fish_pager_color_progress 6c7086
|
||||||
|
fish_pager_color_prefix f5c2e7
|
||||||
|
fish_pager_color_completion cdd6f4
|
||||||
|
fish_pager_color_description 6c7086
|
3
.config/git/allowed_signers
Normal file
3
.config/git/allowed_signers
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
dln@arity.se sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIFtd5SEEgKWzR6617GqxhSIi//4Afq7iRP0ny6fbwU7kAAAABHNzaDo=
|
||||||
|
daniel@arity.se sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIFtd5SEEgKWzR6617GqxhSIi//4Afq7iRP0ny6fbwU7kAAAABHNzaDo=
|
||||||
|
dln@shelman.io sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIFtd5SEEgKWzR6617GqxhSIi//4Afq7iRP0ny6fbwU7kAAAABHNzaDo=
|
3
.config/git/signing-key.sh
Executable file
3
.config/git/signing-key.sh
Executable file
|
@ -0,0 +1,3 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
set -euo pipefail
|
||||||
|
ssh-add -L | awk '/^sk-ssh/ { print "key::" $1 " " $2 }'
|
23
.config/gitui/theme.ron
Normal file
23
.config/gitui/theme.ron
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
(
|
||||||
|
selected_tab: Some(Reset),
|
||||||
|
command_fg: Some(Rgb(205, 214, 244)),
|
||||||
|
selection_bg: Some(Rgb(88, 91, 112)),
|
||||||
|
selection_fg: Some(Rgb(205, 214, 244)),
|
||||||
|
cmdbar_bg: Some(Rgb(24, 24, 37)),
|
||||||
|
cmdbar_extra_lines_bg: Some(Rgb(24, 24, 37)),
|
||||||
|
disabled_fg: Some(Rgb(127, 132, 156)),
|
||||||
|
diff_line_add: Some(Rgb(166, 227, 161)),
|
||||||
|
diff_line_delete: Some(Rgb(243, 139, 168)),
|
||||||
|
diff_file_added: Some(Rgb(249, 226, 175)),
|
||||||
|
diff_file_removed: Some(Rgb(235, 160, 172)),
|
||||||
|
diff_file_moved: Some(Rgb(203, 166, 247)),
|
||||||
|
diff_file_modified: Some(Rgb(250, 179, 135)),
|
||||||
|
commit_hash: Some(Rgb(180, 190, 254)),
|
||||||
|
commit_time: Some(Rgb(186, 194, 222)),
|
||||||
|
commit_author: Some(Rgb(116, 199, 236)),
|
||||||
|
danger_fg: Some(Rgb(243, 139, 168)),
|
||||||
|
push_gauge_bg: Some(Rgb(137, 180, 250)),
|
||||||
|
push_gauge_fg: Some(Rgb(30, 30, 46)),
|
||||||
|
tag_fg: Some(Rgb(245, 224, 220)),
|
||||||
|
branch_fg: Some(Rgb(148, 226, 213))
|
||||||
|
)
|
52
.config/helix/config.toml
Normal file
52
.config/helix/config.toml
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
theme = "sumi-e"
|
||||||
|
# theme = "github_light"
|
||||||
|
|
||||||
|
[editor]
|
||||||
|
true-color = true
|
||||||
|
undercurl = true
|
||||||
|
cursorline = true
|
||||||
|
color-modes = true
|
||||||
|
auto-pairs = false
|
||||||
|
popup-border = "all"
|
||||||
|
rulers = [80]
|
||||||
|
gutters = ["diagnostics", "line-numbers", "spacer", "diff", "spacer"]
|
||||||
|
|
||||||
|
[editor.cursor-shape]
|
||||||
|
insert = "bar"
|
||||||
|
normal = "block"
|
||||||
|
select = "underline"
|
||||||
|
|
||||||
|
[editor.indent-guides]
|
||||||
|
character = "│" # "╎"
|
||||||
|
render = true
|
||||||
|
skip-levels = 1
|
||||||
|
|
||||||
|
[editor.statusline]
|
||||||
|
separator = "│"
|
||||||
|
mode.normal = " "
|
||||||
|
mode.insert = " "
|
||||||
|
mode.select = " "
|
||||||
|
left = ["spinner", "mode", "diagnostics"]
|
||||||
|
center = ["file-name", "file-encoding"]
|
||||||
|
right = ["version-control", "separator", "selections", "register", "separator", "position"]
|
||||||
|
|
||||||
|
[editor.lsp]
|
||||||
|
display-inlay-hints = true
|
||||||
|
display-messages = true
|
||||||
|
|
||||||
|
[keys.normal]
|
||||||
|
backspace = "delete_char_backward"
|
||||||
|
C-h = "delete_char_backward"
|
||||||
|
C = ["select_mode", "goto_line_end", "normal_mode", "change_selection_noyank"]
|
||||||
|
H = ":toggle lsp.display-inlay-hints"
|
||||||
|
Z = { Z = ":write-quit-all" }
|
||||||
|
esc = ["keep_primary_selection", "collapse_selection"]
|
||||||
|
"`" = ["goto_last_accessed_file"]
|
||||||
|
tab = ["buffer_picker"]
|
||||||
|
C-r = ":config-reload"
|
||||||
|
C-f = [":new", ":insert-output lf -selection-path=/dev/stdout", "split_selection_on_newline", "goto_file", "goto_last_modification", "goto_last_modified_file", ":buffer-close!", ":redraw"]
|
||||||
|
V = ["goto_first_nonwhitespace", "extend_to_line_end"]
|
||||||
|
x = "extend_line"
|
||||||
|
|
||||||
|
[keys.select]
|
||||||
|
x = "extend_line"
|
46
.config/helix/languages.toml
Normal file
46
.config/helix/languages.toml
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
[[language]]
|
||||||
|
name = "rust"
|
||||||
|
auto-format = true
|
||||||
|
roots = [
|
||||||
|
"Cargo.toml",
|
||||||
|
"Cargo.lock"
|
||||||
|
]
|
||||||
|
language-servers = [
|
||||||
|
"rust-analyzer",
|
||||||
|
"gpt",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[language]]
|
||||||
|
name = "go"
|
||||||
|
language-servers = [
|
||||||
|
"gopls",
|
||||||
|
"gpt",
|
||||||
|
]
|
||||||
|
|
||||||
|
[language.auto-pairs]
|
||||||
|
'(' = ')'
|
||||||
|
'{' = '}'
|
||||||
|
'[' = ']'
|
||||||
|
'"' = '"'
|
||||||
|
'`' = '`'
|
||||||
|
|
||||||
|
[language-server.rust-analyzer]
|
||||||
|
command = "rust-analyzer"
|
||||||
|
|
||||||
|
[language-server.rust-analyzer.config.inlayHints]
|
||||||
|
bindingModeHints.enable = false
|
||||||
|
chainingHints.enable = false
|
||||||
|
# closingBraceHints.enable = false
|
||||||
|
closingBraceHints.minLines = 10
|
||||||
|
closureReturnTypeHints.enable = "with_block"
|
||||||
|
# discriminantHints.enable = "fieldless"
|
||||||
|
discriminantHints.enable = "always"
|
||||||
|
lifetimeElisionHints.enable = "skip_trivial"
|
||||||
|
parameterHints.enable = true
|
||||||
|
typeHints.enable = true
|
||||||
|
typeHints.hideClosureInitialization = false
|
||||||
|
|
||||||
|
[language-server.gpt]
|
||||||
|
command = "helix-gpt"
|
||||||
|
args = ["--handler", "copilot", "--logFile", "/home/dln/.cache/helix/helix-gpt.log"]
|
||||||
|
|
193
.config/helix/themes/sumi-e.toml
Normal file
193
.config/helix/themes/sumi-e.toml
Normal file
|
@ -0,0 +1,193 @@
|
||||||
|
|
||||||
|
# GENERAL ==============================
|
||||||
|
|
||||||
|
warning = { fg = "#ff7700", bg = "#221100", modifierd = [ "italic" ] }
|
||||||
|
error = { fg = "#ff0038", bg = "#220000", modifiers = [ "italic" ] }
|
||||||
|
hint = { fg = "#00d992", bg = "#002211", modifierd = [ "italic" ] }
|
||||||
|
info = { fg = "#ffcc00", bg = "#222200", modifiers = ["italic"] }
|
||||||
|
diagnostic = { fg = "#c49848"}
|
||||||
|
"diagnostic.info" = { underline = { color = "#ffcc00", style = "curl" } }
|
||||||
|
"diagnostic.hint" = { fg = "#00d992", underline = { color = "#00d992", style = "curl" } }
|
||||||
|
"diagnostic.warning" = { fg = "#ff7700", underline = { color = "#ff7700", style = "curl" } }
|
||||||
|
"diagnostic.error" = { fg = "#ff0038", underline = { color = "#ff0038", style = "curl" } }
|
||||||
|
"diagnostic.unnecessary" = { fg = "#ffcc00", modifiers = ["dim", "italic"], underline = { style = "curl" } }
|
||||||
|
"diagnostic.deprecated" = { modifiers = ["crossed_out"] }
|
||||||
|
|
||||||
|
|
||||||
|
# UI ==============================
|
||||||
|
# For styling helix itself.
|
||||||
|
|
||||||
|
'ui.background' = { bg="background" }
|
||||||
|
'ui.background.separator' = { fg="#00a171" }
|
||||||
|
'ui.window' = { bg="#224466" }
|
||||||
|
'ui.gutter' = { bg="#11171d" }
|
||||||
|
|
||||||
|
'ui.text' = { fg = "#cccccc" }
|
||||||
|
'ui.text.focus' = { bg = "#294467" }
|
||||||
|
'ui.text.info' = { }
|
||||||
|
|
||||||
|
'ui.cursor' = { bg = "#00a171", fg = "#000000" }
|
||||||
|
'ui.cursor.primary' = { bg ="#23fdb6", fg = "#000000" }
|
||||||
|
'ui.cursor.insert' = { fg = "#ff0000" }
|
||||||
|
'ui.cursor.select' = { fg = "#3399ff" }
|
||||||
|
'ui.cursor.match' = { fg = "#000000", bg = "#ffd54f" }
|
||||||
|
'ui.cursorline.primary' = { bg = "#141b23" }
|
||||||
|
|
||||||
|
'ui.selection' = { bg = "#294467" }
|
||||||
|
'ui.selection.primary' = { bg = "#294467" }
|
||||||
|
|
||||||
|
'ui.linenr' = { fg = "#374351", modifiers = [ "bold", "italic" ] }
|
||||||
|
'ui.linenr.selected' = { fg = "#617d9d", bg = "#14202e" }
|
||||||
|
|
||||||
|
'ui.virtual' = { }
|
||||||
|
"ui.virtual.indent-guide" = { fg = "#273341" }
|
||||||
|
"ui.virtual.inlay-hint" = { fg = "#51a0cf", modifiers = ["italic", "bold"] }
|
||||||
|
'ui.virtual.ruler' = { bg = "#11171d" }
|
||||||
|
'ui.virtual.whitespace' = { }
|
||||||
|
'ui.virtual.wrap' = { fg = "#ffd54f" }
|
||||||
|
"ui.virtual.jump-label" = { fg = "#96ffe6", bg = "#051e33", modifiers = ["bold", "italic"] }
|
||||||
|
|
||||||
|
# 'ui.statusline' = { bg = "#151920", fg = "#4d5a6c" }
|
||||||
|
'ui.statusline' = { bg = "#11171d", fg = "#637184", modifiers = ["italic", "bold"] }
|
||||||
|
'ui.statusline.inactive' = { }
|
||||||
|
"ui.statusline.normal" = { }
|
||||||
|
"ui.statusline.insert" = { fg = "#d7b640" }
|
||||||
|
"ui.statusline.select" = { fg = "#3dc9ff" }
|
||||||
|
|
||||||
|
'ui.help' = { }
|
||||||
|
|
||||||
|
'ui.highlight' = { bg="#224466" }
|
||||||
|
"ui.highlight.frameline" = { }
|
||||||
|
|
||||||
|
'ui.menu' = { bg = "#242d38", fg="#bfd5e2" }
|
||||||
|
'ui.menu.selected' = { bg = "#135d7e" }
|
||||||
|
|
||||||
|
'ui.popup' = { bg = "#253d6b", fg="#b2c6e9" }
|
||||||
|
'ui.popup.info' = { }
|
||||||
|
|
||||||
|
|
||||||
|
# SYNTAX HIGHLIGHTING ==============================
|
||||||
|
# All the keys here are Treesitter scopes.
|
||||||
|
|
||||||
|
'property' = { }
|
||||||
|
'special' = { fg="#ffecd3" }
|
||||||
|
'attribute' = { }
|
||||||
|
|
||||||
|
'type' = { }
|
||||||
|
'type.builtin' = { }
|
||||||
|
'type.enum.variant' = { }
|
||||||
|
|
||||||
|
'constructor' = { }
|
||||||
|
|
||||||
|
'constant' = { }
|
||||||
|
'constant.builtin' = { }
|
||||||
|
'constant.builtin.boolean' = { }
|
||||||
|
'constant.character' = { }
|
||||||
|
'constant.character.escape' = { }
|
||||||
|
'constant.numeric' = { }
|
||||||
|
'constant.numeric.integer' = { }
|
||||||
|
'constant.numeric.float' = { }
|
||||||
|
|
||||||
|
'string' = { fg="#88ab8a", modifiers=["italic"] }
|
||||||
|
'string.regexp' = { }
|
||||||
|
'string.special' = { }
|
||||||
|
'string.special.path' = { }
|
||||||
|
'string.special.url' = { }
|
||||||
|
'string.special.symbol' = { }
|
||||||
|
|
||||||
|
'comment' = { fg = "#e57373", modifiers = ["bold", "italic"] }
|
||||||
|
'comment.line' = { }
|
||||||
|
'comment.block' = { }
|
||||||
|
'comment.block.documentation' = { }
|
||||||
|
|
||||||
|
'variable' = { fg="#999999", modifiers = [ "italic" ] }
|
||||||
|
# 'variable.builtin' = { }
|
||||||
|
'variable.parameter' = { fg = "#eeccaa", modifiers = [ "italic" ] }
|
||||||
|
# 'variable.other.member' = { }
|
||||||
|
|
||||||
|
'label' = { }
|
||||||
|
|
||||||
|
'punctuation' = { fg = "#b0bec5" }
|
||||||
|
'punctuation.delimiter' = { fg = "#b0bec5" }
|
||||||
|
'punctuation.bracket' = { fg = "#b0bec5" }
|
||||||
|
|
||||||
|
'keyword' = { fg = "#d5d5d5" }
|
||||||
|
# 'keyword.control' = { }
|
||||||
|
# 'keyword.control.conditional' = { }
|
||||||
|
# 'keyword.control.repeat' = { }
|
||||||
|
# 'keyword.control.import' = { }
|
||||||
|
# 'keyword.control.return' = { }
|
||||||
|
# 'keyword.control.exception' = { }
|
||||||
|
# 'keyword.operator' = { }
|
||||||
|
# 'keyword.directive' = { }
|
||||||
|
# 'keyword.function' = { }
|
||||||
|
|
||||||
|
'operator' = { }
|
||||||
|
|
||||||
|
'function' = { fg = "#f7f7f7" }
|
||||||
|
'function.builtin' = { }
|
||||||
|
'function.method' = { }
|
||||||
|
'function.macro' = { }
|
||||||
|
'function.special' = { }
|
||||||
|
|
||||||
|
'tag' = { }
|
||||||
|
'tag.error' = { }
|
||||||
|
|
||||||
|
'namespace' = { fg = "#b0bec5" }
|
||||||
|
|
||||||
|
|
||||||
|
# Markup ==============================
|
||||||
|
# Colors for markup languages, like Markdown or XML.
|
||||||
|
|
||||||
|
'markup.heading.1' = { }
|
||||||
|
'markup.heading.2' = { }
|
||||||
|
'markup.heading.3' = { }
|
||||||
|
'markup.heading.4' = { }
|
||||||
|
'markup.heading.5' = { }
|
||||||
|
'markup.heading.6' = { }
|
||||||
|
'markup.heading.marker' = { }
|
||||||
|
|
||||||
|
'markup.list' = { }
|
||||||
|
'markup.list.numbered' = { }
|
||||||
|
'markup.list.unnumbered' = { }
|
||||||
|
|
||||||
|
'markup.bold' = { }
|
||||||
|
'markup.italic' = { }
|
||||||
|
|
||||||
|
'markup.link' = { }
|
||||||
|
'markup.link.url' = { }
|
||||||
|
'markup.link.label' = { }
|
||||||
|
'markup.link.text' = { }
|
||||||
|
|
||||||
|
'markup.quote' = { }
|
||||||
|
|
||||||
|
|
||||||
|
# Markup - Interface ==============================
|
||||||
|
# "These scopes are used for theming the editor interface."
|
||||||
|
|
||||||
|
'markup.normal' = { }
|
||||||
|
'markup.normal.completion' = { }
|
||||||
|
'markup.normal.raw' = { }
|
||||||
|
|
||||||
|
'markup.heading.completion' = { }
|
||||||
|
'markup.heading.raw' = { }
|
||||||
|
|
||||||
|
'markup.raw' = { }
|
||||||
|
'markup.raw.block' = { }
|
||||||
|
'markup.raw.inline' = { }
|
||||||
|
'markup.raw.inline.completion' = { }
|
||||||
|
'markup.raw.inline.hover' = { }
|
||||||
|
|
||||||
|
# Diff ==============================
|
||||||
|
# Version control changes.
|
||||||
|
|
||||||
|
'diff.plus' = { fg = "#678350" }
|
||||||
|
'diff.minus' = { fg = "#ff0038" }
|
||||||
|
'diff.delta' = { fg = "#897a21" }
|
||||||
|
'diff.delta.gutter' = { fg = "#ffff00" }
|
||||||
|
# 'diff.delta.moved' = { }
|
||||||
|
|
||||||
|
|
||||||
|
[palette] # Define your custom colors here.
|
||||||
|
white = '#ffffff'
|
||||||
|
|
22
.config/k9s/plugins.yaml
Normal file
22
.config/k9s/plugins.yaml
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
plugins:
|
||||||
|
raw-logs-follow:
|
||||||
|
shortCut: Shift-L
|
||||||
|
description: kubectl logs
|
||||||
|
scopes:
|
||||||
|
- po
|
||||||
|
command: bash
|
||||||
|
background: false
|
||||||
|
args:
|
||||||
|
- -c
|
||||||
|
- |
|
||||||
|
kubectl logs $NAME -n $NAMESPACE --context $CONTEXT | bat --wrap=never --pager="less" --force-colorization
|
||||||
|
toolbox:
|
||||||
|
shortCut: Shift-K
|
||||||
|
description: ktoolbox in current namespace
|
||||||
|
scopes:
|
||||||
|
- all
|
||||||
|
command: ktoolbox
|
||||||
|
background: false
|
||||||
|
args:
|
||||||
|
- -n
|
||||||
|
- $NAMESPACE
|
100
.config/k9s/skin.yml
Normal file
100
.config/k9s/skin.yml
Normal file
|
@ -0,0 +1,100 @@
|
||||||
|
# K9s Gruvbox Light Skin Contributed by [@indiebrain](https://github.com/indiebrain)
|
||||||
|
foreground: &foreground default
|
||||||
|
background: &background default
|
||||||
|
current_line: ¤t_line "#ebdbb2"
|
||||||
|
selection: &selection "#3c3735"
|
||||||
|
comment: &comment "#bdad93"
|
||||||
|
cyan: &cyan "#78ad79"
|
||||||
|
green: &green "#989719"
|
||||||
|
orange: &orange "#d79920"
|
||||||
|
magenta: &magenta "#b16185"
|
||||||
|
blue: &blue "#448488"
|
||||||
|
red: &red "#cc231c"
|
||||||
|
|
||||||
|
k9s:
|
||||||
|
body:
|
||||||
|
fgColor: *foreground
|
||||||
|
bgColor: *background
|
||||||
|
logoColor: *blue
|
||||||
|
prompt:
|
||||||
|
fgColor: *foreground
|
||||||
|
bgColor: *background
|
||||||
|
suggestColor: *orange
|
||||||
|
info:
|
||||||
|
fgColor: *magenta
|
||||||
|
sectionColor: *foreground
|
||||||
|
help:
|
||||||
|
fgColor: *foreground
|
||||||
|
bgColor: *background
|
||||||
|
keyColor: *magenta
|
||||||
|
numKeyColor: *blue
|
||||||
|
sectionColor: *green
|
||||||
|
dialog:
|
||||||
|
fgColor: *foreground
|
||||||
|
bgColor: *background
|
||||||
|
buttonFgColor: *foreground
|
||||||
|
buttonBgColor: *magenta
|
||||||
|
buttonFocusFgColor: white
|
||||||
|
buttonFocusBgColor: *cyan
|
||||||
|
labelFgColor: *orange
|
||||||
|
fieldFgColor: *foreground
|
||||||
|
frame:
|
||||||
|
border:
|
||||||
|
fgColor: *selection
|
||||||
|
focusColor: *current_line
|
||||||
|
menu:
|
||||||
|
fgColor: *foreground
|
||||||
|
keyColor: *magenta
|
||||||
|
numKeyColor: *magenta
|
||||||
|
crumbs:
|
||||||
|
fgColor: *foreground
|
||||||
|
bgColor: *comment
|
||||||
|
activeColor: *blue
|
||||||
|
status:
|
||||||
|
newColor: *cyan
|
||||||
|
modifyColor: *blue
|
||||||
|
addColor: *green
|
||||||
|
errorColor: *red
|
||||||
|
highlightColor: *orange
|
||||||
|
killColor: *comment
|
||||||
|
completedColor: *comment
|
||||||
|
title:
|
||||||
|
fgColor: *foreground
|
||||||
|
bgColor: *background
|
||||||
|
highlightColor: *orange
|
||||||
|
counterColor: *blue
|
||||||
|
filterColor: *magenta
|
||||||
|
views:
|
||||||
|
charts:
|
||||||
|
bgColor: background
|
||||||
|
defaultDialColors:
|
||||||
|
- *blue
|
||||||
|
- *red
|
||||||
|
defaultChartColors:
|
||||||
|
- *blue
|
||||||
|
- *red
|
||||||
|
table:
|
||||||
|
fgColor: *foreground
|
||||||
|
bgColor: *background
|
||||||
|
cursorFgColor: *foreground
|
||||||
|
cursorBgColor: *current_line
|
||||||
|
header:
|
||||||
|
fgColor: *foreground
|
||||||
|
bgColor: *background
|
||||||
|
sorterColor: *selection
|
||||||
|
xray:
|
||||||
|
fgColor: *foreground
|
||||||
|
bgColor: *background
|
||||||
|
cursorColor: *current_line
|
||||||
|
graphicColor: *blue
|
||||||
|
showIcons: false
|
||||||
|
yaml:
|
||||||
|
keyColor: *magenta
|
||||||
|
colonColor: *blue
|
||||||
|
valueColor: *foreground
|
||||||
|
logs:
|
||||||
|
fgColor: *foreground
|
||||||
|
bgColor: *background
|
||||||
|
indicator:
|
||||||
|
fgColor: *foreground
|
||||||
|
bgColor: *background
|
3
.config/nerdctl/nerdctl.toml
Normal file
3
.config/nerdctl/nerdctl.toml
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
debug_full = false
|
||||||
|
snapshotter = "native"
|
||||||
|
insecure_registry = false
|
2
.config/nvim/init.lua
Normal file
2
.config/nvim/init.lua
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
-- bootstrap lazy.nvim, LazyVim and your plugins
|
||||||
|
require("config.lazy")
|
72
.config/nvim/lazy-lock.json
Normal file
72
.config/nvim/lazy-lock.json
Normal file
|
@ -0,0 +1,72 @@
|
||||||
|
{
|
||||||
|
"LazyVim": { "branch": "main", "commit": "505ce3851c600a8c1fc0c57f1c4ea790891c6023" },
|
||||||
|
"SchemaStore.nvim": { "branch": "main", "commit": "931f9f3b7b60ec976159cb01b4a40da3829ac2fd" },
|
||||||
|
"alabaster.nvim": { "branch": "main", "commit": "5bb485d630d50796d4c8c7edc0f0fb9001fccde3" },
|
||||||
|
"catppuccin": { "branch": "main", "commit": "5215ea59df6d0a7e27da9a5cd1165e06d1b04cbe" },
|
||||||
|
"cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
|
||||||
|
"cmp-emoji": { "branch": "main", "commit": "e8398e2adf512a03bb4e1728ca017ffeac670a9f" },
|
||||||
|
"cmp-nvim-lsp": { "branch": "main", "commit": "39e2eda76828d88b773cc27a3f61d2ad782c922d" },
|
||||||
|
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
|
||||||
|
"codeium.nvim": { "branch": "main", "commit": "d3b88eb3aa1de6da33d325c196b8a41da2bcc825" },
|
||||||
|
"colorbuddy.nvim": { "branch": "master", "commit": "8b968581e5c19d22a861d5f3fe5dbd83394fa681" },
|
||||||
|
"conform.nvim": { "branch": "master", "commit": "f3b930db4964d60e255c8f9e37b7f2218dfc08cb" },
|
||||||
|
"crates.nvim": { "branch": "main", "commit": "d556c00d60c9421c913ee54ff690df2a34f6264e" },
|
||||||
|
"dashboard-nvim": { "branch": "master", "commit": "5182c09ac8085dc73b78ad0ea9f5479c9a866fc4" },
|
||||||
|
"direnv.vim": { "branch": "master", "commit": "ab2a7e08dd630060cd81d7946739ac7442a4f269" },
|
||||||
|
"dressing.nvim": { "branch": "master", "commit": "3c38ac861e1b8d4077ff46a779cde17330b29f3a" },
|
||||||
|
"edgy.nvim": { "branch": "main", "commit": "de79b7d92a5979cd71a9a1d8b6282515345e5055" },
|
||||||
|
"friendly-snippets": { "branch": "main", "commit": "dd2fd1281d4b22e7b4a5bfafa3e142d958e251f2" },
|
||||||
|
"fzf": { "branch": "master", "commit": "99bd6de5415dccec4b1b21121224116bbfbc462f" },
|
||||||
|
"fzfx.nvim": { "branch": "main", "commit": "be147216edf164a1739430c7fda210f9876cc430" },
|
||||||
|
"gitsigns.nvim": { "branch": "main", "commit": "cdfcd9d39d23c46ae9a040de2c6a8b8bf868746e" },
|
||||||
|
"headlines.nvim": { "branch": "master", "commit": "618ef1b2502c565c82254ef7d5b04402194d9ce3" },
|
||||||
|
"incline.nvim": { "branch": "main", "commit": "16fc9c073e3ea4175b66ad94375df6d73fc114c0" },
|
||||||
|
"indent-blankline.nvim": { "branch": "master", "commit": "d98f537c3492e87b6dc6c2e3f66ac517528f406f" },
|
||||||
|
"lazy.nvim": { "branch": "main", "commit": "24fa2a97085ca8a7220b5b078916f81e316036fd" },
|
||||||
|
"markdown-preview.nvim": { "branch": "master", "commit": "a923f5fc5ba36a3b17e289dc35dc17f66d0548ee" },
|
||||||
|
"mason-lspconfig.nvim": { "branch": "main", "commit": "a4caa0d083aab56f6cd5acf2d42331b74614a585" },
|
||||||
|
"mason-nvim-dap.nvim": { "branch": "main", "commit": "67210c0e775adec55de9826b038e8b62de554afc" },
|
||||||
|
"mason.nvim": { "branch": "main", "commit": "49ff59aded1047a773670651cfa40e76e63c6377" },
|
||||||
|
"mini.ai": { "branch": "main", "commit": "7859b6344f5cee567a94f173859d25e20ba1a77e" },
|
||||||
|
"mini.colors": { "branch": "main", "commit": "11b3b7056343d324abb69910e3cdec53bbf2a7c9" },
|
||||||
|
"mini.indentscope": { "branch": "main", "commit": "f0d7faa064c892b96997810afcddfadc3f2a15b3" },
|
||||||
|
"modes.nvim": { "branch": "main", "commit": "4035a46aaabe43faf1b54740575af9dd5bb03809" },
|
||||||
|
"neo-tree.nvim": { "branch": "v3.x", "commit": "29f7c215332ba95e470811c380ddbce2cebe2af4" },
|
||||||
|
"neocodeium": { "branch": "main", "commit": "4a46f6438bcdb21c562f83036bce75c719834072" },
|
||||||
|
"neoconf.nvim": { "branch": "main", "commit": "4e204e0d423e70293b81ba1655ed17e1f3c97986" },
|
||||||
|
"neodev.nvim": { "branch": "main", "commit": "ce9a2e8eaba5649b553529c5498acb43a6c317cd" },
|
||||||
|
"noice.nvim": { "branch": "main", "commit": "f119045f38792ad5311e5f9be7a879e4c1a95fe0" },
|
||||||
|
"none-ls.nvim": { "branch": "main", "commit": "60f5f80686f5a272ed3281a7d4962cb54dc5348e" },
|
||||||
|
"nui.nvim": { "branch": "main", "commit": "b1b3dcd6ed8f355c78bad3d395ff645be5f8b6ae" },
|
||||||
|
"nvim-cmp": { "branch": "main", "commit": "5260e5e8ecadaf13e6b82cf867a909f54e15fd07" },
|
||||||
|
"nvim-dap": { "branch": "master", "commit": "922ebc75c2fa9305e36402fbd8c984c8638770a0" },
|
||||||
|
"nvim-dap-go": { "branch": "main", "commit": "a0c5a2b991d7e9304a9a032cf177e22a4b0acda1" },
|
||||||
|
"nvim-dap-ui": { "branch": "master", "commit": "334cf3038c4756e6ab999cbac67c847fb654c190" },
|
||||||
|
"nvim-dap-virtual-text": { "branch": "master", "commit": "d7c695ea39542f6da94ee4d66176f5d660ab0a77" },
|
||||||
|
"nvim-lint": { "branch": "master", "commit": "e19842a05aae484957ad20710444757bc0a61d63" },
|
||||||
|
"nvim-lspconfig": { "branch": "master", "commit": "d70633830acf605ec03d9728698d9e7232442eb4" },
|
||||||
|
"nvim-navic": { "branch": "master", "commit": "8649f694d3e76ee10c19255dece6411c29206a54" },
|
||||||
|
"nvim-nio": { "branch": "master", "commit": "632024157d01e8bc48fd7df6a7de8ffe3fdd4f3a" },
|
||||||
|
"nvim-noirbuddy": { "branch": "master", "commit": "f3e35f42cf3f08b7351a69bf3a92b7e80a564f30" },
|
||||||
|
"nvim-notify": { "branch": "master", "commit": "d333b6f167900f6d9d42a59005d82919830626bf" },
|
||||||
|
"nvim-snippets": { "branch": "main", "commit": "67f44a552f03b5de23af1900d01af3256a3da2bc" },
|
||||||
|
"nvim-spectre": { "branch": "master", "commit": "366f46fdd4a1593cc237aea13d5ef113739a472c" },
|
||||||
|
"nvim-treesitter": { "branch": "master", "commit": "aa02427dfeaead86fae038024ae7b29299f08b8c" },
|
||||||
|
"nvim-treesitter-textobjects": { "branch": "master", "commit": "3557e41418b4a6c5b85d5d64abe94c9c50fa9b14" },
|
||||||
|
"nvim-ts-autotag": { "branch": "main", "commit": "8ae54b90e36ef1fc5267214b30c2cbff71525fe4" },
|
||||||
|
"nvim-web-devicons": { "branch": "master", "commit": "b77921fdc44833c994fdb389d658ccbce5490c16" },
|
||||||
|
"persistence.nvim": { "branch": "main", "commit": "5fe077056c821aab41f87650bd6e1c48cd7dd047" },
|
||||||
|
"plenary.nvim": { "branch": "master", "commit": "a3e3bc82a3f95c5ed0d7201546d5d2c19b20d683" },
|
||||||
|
"rustaceanvim": { "branch": "master", "commit": "e306c742bd7f7183e371cd91268b72d9db1bbae0" },
|
||||||
|
"smart-open.nvim": { "branch": "0.2.x", "commit": "87626ee8748b9bba22093adec7bb58c63e7214f0" },
|
||||||
|
"sqlite.lua": { "branch": "master", "commit": "d0ffd703b56d090d213b497ed4eb840495f14a11" },
|
||||||
|
"telescope-fzf-native.nvim": { "branch": "main", "commit": "9ef21b2e6bb6ebeaf349a0781745549bbb870d27" },
|
||||||
|
"telescope-fzy-native.nvim": { "branch": "master", "commit": "282f069504515eec762ab6d6c89903377252bf5b" },
|
||||||
|
"telescope.nvim": { "branch": "master", "commit": "4c96370cf93e2ba287548da12d673442d0ffecc3" },
|
||||||
|
"todo-comments.nvim": { "branch": "main", "commit": "e1549807066947818113a7d7ed48f637e49620d3" },
|
||||||
|
"tokyonight.nvim": { "branch": "main", "commit": "0fae425aaab04a5f97666bd431b96f2f19c36935" },
|
||||||
|
"trouble.nvim": { "branch": "dev", "commit": "e2185bf6e63ef9bd75f1819f43846e2b0f10953b" },
|
||||||
|
"ts-comments.nvim": { "branch": "main", "commit": "f7ded340b4c6b317593b867838bf7ace354a67d4" },
|
||||||
|
"which-key.nvim": { "branch": "main", "commit": "4433e5ec9a507e5097571ed55c02ea9658fb268a" },
|
||||||
|
"yanky.nvim": { "branch": "main", "commit": "32882f6d3e7bbc8687a71540a695853036511b2c" }
|
||||||
|
}
|
16
.config/nvim/lua/config/autocmds.lua
Normal file
16
.config/nvim/lua/config/autocmds.lua
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
-- Autocmds are automatically loaded on the VeryLazy event
|
||||||
|
-- Default autocmds that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/autocmds.lua
|
||||||
|
-- Add any additional autocmds here
|
||||||
|
|
||||||
|
local function augroup(name)
|
||||||
|
return vim.api.nvim_create_augroup("lazyvim_" .. name, { clear = true })
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Set comment string for CUE files
|
||||||
|
vim.api.nvim_create_autocmd("FileType", {
|
||||||
|
group = augroup("cue"),
|
||||||
|
pattern = { "cue" },
|
||||||
|
callback = function(ev)
|
||||||
|
vim.bo[ev.buf].commentstring = "// %s"
|
||||||
|
end,
|
||||||
|
})
|
11
.config/nvim/lua/config/keymaps.lua
Normal file
11
.config/nvim/lua/config/keymaps.lua
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
-- Keymaps are automatically loaded on the VeryLazy event
|
||||||
|
-- Default keymaps that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/keymaps.lua
|
||||||
|
-- Add any additional keymaps here
|
||||||
|
|
||||||
|
-- C-/ should be comment instead of lazyterm
|
||||||
|
vim.api.nvim_del_keymap("n", "<c-/>")
|
||||||
|
vim.api.nvim_set_keymap("n", "<c-/>", "gcc", {})
|
||||||
|
vim.api.nvim_set_keymap("v", "<c-/>", "gc", {})
|
||||||
|
vim.api.nvim_set_keymap("n", "<Leader><c-/>", "gcgc", {})
|
||||||
|
vim.api.nvim_set_keymap("n", "<Tab>", "<Space>,", {})
|
||||||
|
vim.api.nvim_set_keymap("n", "zz", "zt", {})
|
55
.config/nvim/lua/config/lazy.lua
Normal file
55
.config/nvim/lua/config/lazy.lua
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
|
||||||
|
if not vim.loop.fs_stat(lazypath) then
|
||||||
|
-- bootstrap lazy.nvim
|
||||||
|
-- stylua: ignore
|
||||||
|
vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", "--branch=stable", lazypath })
|
||||||
|
end
|
||||||
|
vim.opt.rtp:prepend(vim.env.LAZY or lazypath)
|
||||||
|
|
||||||
|
require("lazy").setup({
|
||||||
|
spec = {
|
||||||
|
-- add LazyVim and import its plugins
|
||||||
|
{ "LazyVim/LazyVim", import = "lazyvim.plugins" },
|
||||||
|
-- import any extras modules here
|
||||||
|
-- { import = "lazyvim.plugins.extras.ui.mini-animate" },
|
||||||
|
-- { import = "lazyvim.plugins.extras.coding.copilot" },
|
||||||
|
{ import = "lazyvim.plugins.extras.coding.codeium" },
|
||||||
|
{ import = "lazyvim.plugins.extras.coding.yanky" },
|
||||||
|
{ import = "lazyvim.plugins.extras.formatting.prettier" },
|
||||||
|
{ import = "lazyvim.plugins.extras.lang.go" },
|
||||||
|
{ import = "lazyvim.plugins.extras.lang.json" },
|
||||||
|
{ import = "lazyvim.plugins.extras.lang.markdown" },
|
||||||
|
{ import = "lazyvim.plugins.extras.lang.rust" },
|
||||||
|
{ import = "lazyvim.plugins.extras.lang.typescript" },
|
||||||
|
{ import = "lazyvim.plugins.extras.lang.yaml" },
|
||||||
|
{ import = "lazyvim.plugins.extras.lsp.none-ls" },
|
||||||
|
-- import/override with your plugins
|
||||||
|
{ import = "plugins" },
|
||||||
|
},
|
||||||
|
defaults = {
|
||||||
|
-- By default, only LazyVim plugins will be lazy-loaded. Your custom plugins will load during startup.
|
||||||
|
-- If you know what you're doing, you can set this to `true` to have all your custom plugins lazy-loaded by default.
|
||||||
|
lazy = false,
|
||||||
|
-- It's recommended to leave version=false for now, since a lot the plugin that support versioning,
|
||||||
|
-- have outdated releases, which may break your Neovim install.
|
||||||
|
version = false, -- always use the latest git commit
|
||||||
|
-- version = "*", -- try installing the latest stable version for plugins that support semver
|
||||||
|
},
|
||||||
|
install = { colorscheme = { "default" } },
|
||||||
|
checker = { enabled = false }, -- automatically check for plugin updates
|
||||||
|
performance = {
|
||||||
|
rtp = {
|
||||||
|
-- disable some rtp plugins
|
||||||
|
disabled_plugins = {
|
||||||
|
"gzip",
|
||||||
|
-- "matchit",
|
||||||
|
-- "matchparen",
|
||||||
|
"netrwPlugin",
|
||||||
|
"tarPlugin",
|
||||||
|
"tohtml",
|
||||||
|
"tutor",
|
||||||
|
"zipPlugin",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
40
.config/nvim/lua/config/options.lua
Normal file
40
.config/nvim/lua/config/options.lua
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
-- Options are automatically loaded before lazy.nvim startup
|
||||||
|
-- Default options that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/options.lua
|
||||||
|
-- Add any additional options here
|
||||||
|
|
||||||
|
vim.opt.number = true
|
||||||
|
vim.opt.relativenumber = false
|
||||||
|
vim.opt.clipboard = "unnamed" --"unnamedplus"
|
||||||
|
|
||||||
|
vim.g.do_filetype_lua = 1
|
||||||
|
vim.g.root_spec = { { ".git", "lua" }, "lsp", "cwd" }
|
||||||
|
|
||||||
|
vim.o.autochdir = true
|
||||||
|
vim.o.fillchars = "stl: ,stlnc: ,eob:🮙"
|
||||||
|
vim.o.scrolloff = 7
|
||||||
|
vim.o.splitkeep = "screen"
|
||||||
|
vim.o.updatetime = 2500
|
||||||
|
vim.o.timeout = true
|
||||||
|
vim.o.timeoutlen = 0
|
||||||
|
|
||||||
|
-- additional filetypes
|
||||||
|
vim.filetype.add({
|
||||||
|
extension = {
|
||||||
|
templ = "templ",
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
-- AutoCommand OSC7 workaround for tmux
|
||||||
|
-- see https://github.com/neovim/neovim/issues/21771
|
||||||
|
vim.api.nvim_create_autocmd("dirchanged", {
|
||||||
|
pattern = "*",
|
||||||
|
command = 'call chansend(v:stderr, printf("\\033]7;%s\\033", v:event.cwd))',
|
||||||
|
})
|
||||||
|
|
||||||
|
-- (No) Statusline
|
||||||
|
|
||||||
|
vim.opt.laststatus = 0
|
||||||
|
vim.api.nvim_set_hl(0, "Statusline", { link = "Normal" })
|
||||||
|
vim.api.nvim_set_hl(0, "StatuslineNC", { link = "Normal" })
|
||||||
|
local line = string.rep("▁", vim.api.nvim_win_get_width(0))
|
||||||
|
vim.opt.statusline = "%#WinSeparator#" .. line .. "%*"
|
56
.config/nvim/lua/plugins/coding.lua
Normal file
56
.config/nvim/lua/plugins/coding.lua
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
return {
|
||||||
|
{
|
||||||
|
"echasnovski/mini.pairs",
|
||||||
|
enabled = false,
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"nvim-cmp",
|
||||||
|
dependencies = { "hrsh7th/cmp-emoji" },
|
||||||
|
opts = function(_, opts)
|
||||||
|
local cmp = require("cmp")
|
||||||
|
table.insert(opts.sources, { name = "emoji" })
|
||||||
|
|
||||||
|
opts.view = { docs = { auto_open = false }, entries = { follow_cursor = true } }
|
||||||
|
-- opts.completion = {
|
||||||
|
-- autocomplete = false,
|
||||||
|
-- }
|
||||||
|
|
||||||
|
local winhighlight =
|
||||||
|
"Normal:NoiceCmdlinePopupTitle,FloatBorder:NoiceCmdlinePopupBorder,CursorLine:PMenuSel,Search:Search"
|
||||||
|
|
||||||
|
opts.window = {
|
||||||
|
completion = cmp.config.window.bordered({ winhighlight = winhighlight, border = "rounded" }),
|
||||||
|
documentation = cmp.config.window.bordered({ winhighlight = winhighlight, border = "rounded" }),
|
||||||
|
preview = cmp.config.window.bordered({ winhighlight = winhighlight, border = "rounded" }),
|
||||||
|
}
|
||||||
|
|
||||||
|
-- lua sorting = { comparators = { cmp.config.compare.sort_text, -- this needs to be 1st cmp.config.compare.offset, cmp.config.compare.exact, cmp.config.compare.score, cmp.config.compare.kind, cmp.config.compare.length, cmp.config.compare.order, } }
|
||||||
|
|
||||||
|
opts.sorting = {
|
||||||
|
priority_weight = 2,
|
||||||
|
comparators = {
|
||||||
|
cmp.config.compare.exact,
|
||||||
|
cmp.config.compare.recently_used,
|
||||||
|
cmp.config.compare.locality,
|
||||||
|
cmp.config.compare.offset,
|
||||||
|
-- cmp.config.compare.scopes,
|
||||||
|
cmp.config.compare.score,
|
||||||
|
cmp.config.compare.kind,
|
||||||
|
-- cmp.config.compare.sort_text,
|
||||||
|
cmp.config.compare.length,
|
||||||
|
cmp.config.compare.order,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
return opts
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"Exafunction/codeium.nvim",
|
||||||
|
opts = {
|
||||||
|
enable_chat = false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
253
.config/nvim/lua/plugins/colorscheme.lua
Normal file
253
.config/nvim/lua/plugins/colorscheme.lua
Normal file
|
@ -0,0 +1,253 @@
|
||||||
|
return {
|
||||||
|
{ "echasnovski/mini.colors", version = false },
|
||||||
|
|
||||||
|
{
|
||||||
|
-- "p00f/alabaster.nvim",
|
||||||
|
-- url = "https://git.sr.ht/~p00f/alabaster.nvim",
|
||||||
|
"lsjostro/alabaster.nvim",
|
||||||
|
lazy = false,
|
||||||
|
priority = 1000,
|
||||||
|
},
|
||||||
|
|
||||||
|
--[=====[
|
||||||
|
{
|
||||||
|
"LazyVim/LazyVim",
|
||||||
|
opts = {
|
||||||
|
colorscheme = "alabaster",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
--]=====]
|
||||||
|
|
||||||
|
{
|
||||||
|
"jesseleite/nvim-noirbuddy",
|
||||||
|
lazy = false,
|
||||||
|
dependencies = {
|
||||||
|
{ "tjdevries/colorbuddy.nvim" },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"LazyVim/LazyVim",
|
||||||
|
opts = {
|
||||||
|
colorscheme = function()
|
||||||
|
require("noirbuddy").setup({
|
||||||
|
preset = "slate",
|
||||||
|
styles = {
|
||||||
|
italic = true,
|
||||||
|
bold = true,
|
||||||
|
underline = true,
|
||||||
|
undercurl = true,
|
||||||
|
},
|
||||||
|
colors = {
|
||||||
|
background = "#11171d",
|
||||||
|
primary = "#FFECD3",
|
||||||
|
secondary = "#B0BEC5",
|
||||||
|
--
|
||||||
|
diagnostic_info = "#00d992",
|
||||||
|
diagnostic_hint = "#00d992",
|
||||||
|
},
|
||||||
|
})
|
||||||
|
--
|
||||||
|
local colorbuddy = require("colorbuddy")
|
||||||
|
local Color = colorbuddy.Color
|
||||||
|
local colors = colorbuddy.colors
|
||||||
|
local Group = colorbuddy.Group
|
||||||
|
local groups = colorbuddy.groups
|
||||||
|
local styles = colorbuddy.styles
|
||||||
|
|
||||||
|
Color.new("ColorColumn", "#171e26")
|
||||||
|
Group.new("ColorColumn", nil, colors.ColorColumn)
|
||||||
|
|
||||||
|
Color.new("normal", "#e3e0cd")
|
||||||
|
Group.new("Normal", colors.normal, nil)
|
||||||
|
|
||||||
|
Color.new("Visual", "#440066")
|
||||||
|
Group.new("ModesVisualVisual", nil, colors.Visual)
|
||||||
|
Group.new("Visual", nil, colors.Visual)
|
||||||
|
Group.new("VisualNOS", nil, colors.Visual)
|
||||||
|
Group.new("MatchParen", nil, colors.Visual)
|
||||||
|
|
||||||
|
Color.new("NeoCodeiumLabelBg", "#eda92d")
|
||||||
|
Color.new("NeoCodeiumLabelFg", "#000000")
|
||||||
|
Group.new("NeoCodeiumLabel", colors.NeoCodeiumLabelFg, colors.NeoCodeiumLabelBg)
|
||||||
|
|
||||||
|
Color.new("NeoCodeiumSuggestion", "#996611")
|
||||||
|
Group.new("NeoCodeiumSuggestion", colors.NeoCodeiumSuggestion, nil, styles.italic)
|
||||||
|
|
||||||
|
Color.new("NoiceCmdLineBg", "#112233")
|
||||||
|
Color.new("NoiceCmdLineFg", "#99ccff")
|
||||||
|
Group.new("NoiceCmdLine", colors.NoiceCmdLineFg, colors.NoiceCmdLineBg)
|
||||||
|
|
||||||
|
Color.new("NoiceFormatProgressTodo", "#223344")
|
||||||
|
Group.new("NoiceFormatProgressTodo", nil, colors.NoiceFormatProgressTodo)
|
||||||
|
Color.new("NoiceFormatProgressDone", "#446699")
|
||||||
|
Group.new("NoiceFormatProgressDone", nil, colors.NoiceFormatProgressDone)
|
||||||
|
|
||||||
|
Color.new("WinSeparator", "#223344")
|
||||||
|
Group.new("WinSeparator", colors.WinSeparator, nil)
|
||||||
|
|
||||||
|
Color.new("string", "#D7CCC8")
|
||||||
|
Color.new("symbol", "#ECEFF1")
|
||||||
|
|
||||||
|
Color.new("comment", "#E57373", nil, styles.italic)
|
||||||
|
Color.new("hlargs", "#FFF8E1")
|
||||||
|
|
||||||
|
Color.new("illuminate_bg", "#112210")
|
||||||
|
Color.new("illuminate_fg", "#00d992")
|
||||||
|
|
||||||
|
Color.new("search_bg", "#223311")
|
||||||
|
Color.new("search_fg", "#CCFF33")
|
||||||
|
|
||||||
|
Color.new("MiniIndentscopeSymbol", "#00d992")
|
||||||
|
Group.new("MiniIndentscopeSymbol", colors.MiniIndentscopeSymbol)
|
||||||
|
|
||||||
|
Color.new("CursorFg", "#000000", styles.nocombine)
|
||||||
|
Color.new("CursorBg", "#23fdb6", styles.nocombine)
|
||||||
|
Group.new("Cursor", colors.CursorFg, colors.CursorBg)
|
||||||
|
Color.new("CursorLine", "#141b23")
|
||||||
|
Group.new("CursorLine", nil, colors.CursorLine)
|
||||||
|
|
||||||
|
-- Color.new("TroubleBg", "#171e26")
|
||||||
|
Color.new("TroubleFg", "#e1d4c1")
|
||||||
|
Color.new("TroubleBg", "#10161d")
|
||||||
|
-- Color.new("TroubleBg", "#1d140f")
|
||||||
|
Group.new("TroubleNormal", colors.TroubleFg, colors.TroubleBg)
|
||||||
|
|
||||||
|
Color.new("NavicTextFg", "#5fbf9f")
|
||||||
|
Color.new("NavicTextBg", "#333333")
|
||||||
|
Color.new("NavicIcon", "#5fbf9f")
|
||||||
|
|
||||||
|
Group.new("NavicText", colors.NavicTextFg, colors.NavicTextBg)
|
||||||
|
Group.new("NavicIcon", colors.NavicIcon, colors.NavicTextBg)
|
||||||
|
Group.link("NavicIconsFile", groups.NavicIcon)
|
||||||
|
Group.link("NavicIconsModule", groups.NavicIcon)
|
||||||
|
Group.link("NavicIconsNamespace", groups.NavicIcon)
|
||||||
|
Group.link("NavicIconsPackage", groups.NavicIcon)
|
||||||
|
Group.link("NavicIconsClass", groups.NavicIcon)
|
||||||
|
Group.link("NavicIconsMethod", groups.NavicIcon)
|
||||||
|
Group.link("NavicIconsProperty", groups.NavicIcon)
|
||||||
|
Group.link("NavicIconsField", groups.NavicIcon)
|
||||||
|
Group.link("NavicIconsConstructor", groups.NavicIcon)
|
||||||
|
Group.link("NavicIconsEnum", groups.NavicIcon)
|
||||||
|
Group.link("NavicIconsInterface", groups.NavicIcon)
|
||||||
|
Group.link("NavicIconsFunction", groups.NavicIcon)
|
||||||
|
Group.link("NavicIconsVariable", groups.NavicIcon)
|
||||||
|
Group.link("NavicIconsConstant", groups.NavicIcon)
|
||||||
|
Group.link("NavicIconsString", groups.NavicIcon)
|
||||||
|
Group.link("NavicIconsNumber", groups.NavicIcon)
|
||||||
|
Group.link("NavicIconsBoolean", groups.NavicIcon)
|
||||||
|
Group.link("NavicIconsArray", groups.NavicIcon)
|
||||||
|
Group.link("NavicIconsObject", groups.NavicIcon)
|
||||||
|
Group.link("NavicIconsKey", groups.NavicIcon)
|
||||||
|
Group.link("NavicIconsNull", groups.NavicIcon)
|
||||||
|
Group.link("NavicIconsEnumMember", groups.NavicIcon)
|
||||||
|
Group.link("NavicIconsStruct", groups.NavicIcon)
|
||||||
|
Group.link("NavicIconsEvent", groups.NavicIcon)
|
||||||
|
Group.link("NavicIconsOperator", groups.NavicIcon)
|
||||||
|
Group.link("NavicIconsTypeParameter", groups.NavicIcon)
|
||||||
|
|
||||||
|
Color.new("NormalFloatFg", "#b8d1ef", styles.nocombine)
|
||||||
|
-- Color.new("NormalFloatBg", "#335a88", styles.nocombine)
|
||||||
|
Color.new("NormalFloatBg", "#242d38", styles.nocombine)
|
||||||
|
Color.new("NormalFloatBorder", "#00d992", styles.nocombine)
|
||||||
|
Group.new("NormalFloat", colors.NormalFloatFg, colors.NormalFloatBg)
|
||||||
|
Group.new("FloatBorder", colors.NormalFloatBorder, colors.NormalFloatBg)
|
||||||
|
|
||||||
|
-- Color.new("PmenuSelFg", "#f3d390", styles.nocombine)
|
||||||
|
-- Color.new("PmenuSelBg", "#335a88", styles.nocombine)
|
||||||
|
Color.new("PmenuSelFg", "#52ffb5", styles.nocombine)
|
||||||
|
Color.new("PmenuSelBg", "#003322", styles.nocombine)
|
||||||
|
Group.new("PmenuSel", colors.PmenuSelFg, colors.PmenuSelBg, styles.bold)
|
||||||
|
|
||||||
|
-- Color.new("PmenuSelBg", "#335a88", styles.nocombine)
|
||||||
|
-- Group.new("PmenuSel", colors.PmenuSelFg, colors.PmenuSelBg)
|
||||||
|
|
||||||
|
Color.new("TreesitterContext", "#242e38", styles.nocombine)
|
||||||
|
Group.new("TreesitterContext", nil, colors.TreesitterContext)
|
||||||
|
|
||||||
|
-- Color.new("NonText", "#955252", styles.nocombine)
|
||||||
|
Color.new("NonText", "#955252", styles.nocombine)
|
||||||
|
|
||||||
|
Color.new("comment2", "#51a0cf")
|
||||||
|
Group.new("Comment", colors.NonText, nil, styles.italic + styles.bold)
|
||||||
|
Group.new("LspInlayHint", colors.comment2, nil, styles.italic)
|
||||||
|
|
||||||
|
Group.new("NonText", colors.NonText, nil, styles.italic)
|
||||||
|
Group.new("NonText", colors.NonText, nil, styles.italic)
|
||||||
|
|
||||||
|
Color.new("spelling", "#ffce60")
|
||||||
|
Group.new("SpellBad", colors.spelling, nil, styles.undercurl)
|
||||||
|
|
||||||
|
-- Color.new("LuaLineFg", "#aebed0")
|
||||||
|
Color.new("InclineFg", "#aebed0")
|
||||||
|
Color.new("InclineBg", "#242e38")
|
||||||
|
Group.new("InclineNormal", colors.InclineFg, colors.InclineBg)
|
||||||
|
Group.new("InclineNormalNC", colors.InclineFg, colors.InclineBg)
|
||||||
|
|
||||||
|
Color.new("LspInfoTitle", "#955252")
|
||||||
|
Group.new("LspInfoTitle", colors.LspInfoTitle, nil, styles.italic)
|
||||||
|
-- Group.new("DiagnosticHint", colors.LspInfoTitle, nil, styles.italic)
|
||||||
|
--
|
||||||
|
-- Color.new("TroubleFg", "#ffce60", styles.nocombine)
|
||||||
|
-- Color.new("TroubleFg", "#ffce60", styles.nocombine)
|
||||||
|
-- Color.new("TroubleBg", "#260200", styles.nocombine)
|
||||||
|
-- Group.new("TroubleNormal", colors.TroubleFg, colors.TroubleBg)
|
||||||
|
-- Group.link("TroubleText", groups.TroubleNormal)
|
||||||
|
-- Group.link("TroubleSource", groups.TroubleNormal)
|
||||||
|
--
|
||||||
|
Color.new("Error", "#ffce60", styles.nocombine)
|
||||||
|
Group.new("ErrorMsg", colors.Error)
|
||||||
|
|
||||||
|
Color.new("FlashLabelFg", "#220011")
|
||||||
|
Color.new("FlashLabelBg", "#EA1199")
|
||||||
|
Group.new("FlashLabel", colors.FlashLabelFg, colors.FlashLabelBg)
|
||||||
|
|
||||||
|
Color.new("TelescopeBorder", "#23fdb6")
|
||||||
|
Group.new("TelescopeTitle", colors.TelescopeBorder)
|
||||||
|
Group.new("telescopeborder", colors.TelescopeBorder)
|
||||||
|
|
||||||
|
Color.new("TelescopeBorder", "#23fdb6")
|
||||||
|
|
||||||
|
Color.new("TelescopeNormal", "#b6c5bd")
|
||||||
|
Group.new("telescoperesultsnormal", colors.TelescopeNormal)
|
||||||
|
|
||||||
|
Color.new("TelescopeSelectionBg", "#003f29")
|
||||||
|
Color.new("TelescopeSelectionFg", "#f6fb2d")
|
||||||
|
Group.new(
|
||||||
|
"TelescopeSelection",
|
||||||
|
colors.TelescopeSelectionFg,
|
||||||
|
colors.TelescopeSelectionBg,
|
||||||
|
styles.nocombine + styles.bold
|
||||||
|
)
|
||||||
|
|
||||||
|
Group.new("@comment", colors.comment, nil, styles.italic + styles.bold)
|
||||||
|
Group.new("@string", colors.string, nil, styles.italic)
|
||||||
|
|
||||||
|
Group.new("@keyword", colors.noir_2)
|
||||||
|
Group.new("@keyword.function", colors.noir_2)
|
||||||
|
Group.new("@keyword.return", colors.noir_1)
|
||||||
|
|
||||||
|
Group.new("@operator", colors.noir_1)
|
||||||
|
Group.new("@keyword.operator", colors.noir_1)
|
||||||
|
-- Group.new("Hlargs", colors.noir_3, nil, styles.italic)
|
||||||
|
Group.new("@type.builtin", colors.noir_2)
|
||||||
|
|
||||||
|
Group.new("@variable", colors.symbol, nil)
|
||||||
|
Group.new("Hlargs", colors.hlargs, nil)
|
||||||
|
|
||||||
|
Group.new("@function", colors.noir_1, nil, styles.bold)
|
||||||
|
Group.new("@method", colors.noir_1, nil, styles.bold)
|
||||||
|
|
||||||
|
Group.new("@punctuation", colors.noir_4)
|
||||||
|
Group.new("@punctuation.bracket", colors.noir_4)
|
||||||
|
Group.new("@punctuation.delimiter", colors.noir_4)
|
||||||
|
|
||||||
|
Group.new("IlluminatedWordText", colors.illuminate_fg, colors.illuminate_bg)
|
||||||
|
|
||||||
|
Group.new("Search", colors.search_fg, colors.search_bg, styles.italic + styles.undercurl)
|
||||||
|
Group.new("IncSearch", colors.search_fg, colors.search_bg)
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
71
.config/nvim/lua/plugins/editor.lua
Normal file
71
.config/nvim/lua/plugins/editor.lua
Normal file
|
@ -0,0 +1,71 @@
|
||||||
|
return {
|
||||||
|
{
|
||||||
|
"folke/flash.nvim",
|
||||||
|
enabled = false,
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"danielfalk/smart-open.nvim",
|
||||||
|
branch = "0.2.x",
|
||||||
|
dependencies = {
|
||||||
|
"kkharji/sqlite.lua",
|
||||||
|
{ "nvim-telescope/telescope-fzf-native.nvim", build = "make" },
|
||||||
|
{ "nvim-telescope/telescope-fzy-native.nvim" },
|
||||||
|
},
|
||||||
|
config = function()
|
||||||
|
local util = require("lazyvim.util")
|
||||||
|
util.on_load("telescope.nvim", function()
|
||||||
|
local telescope = require("telescope")
|
||||||
|
telescope.load_extension("smart_open")
|
||||||
|
end)
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"telescope.nvim",
|
||||||
|
keys = {
|
||||||
|
{
|
||||||
|
"<leader><leader>",
|
||||||
|
function()
|
||||||
|
require("telescope").extensions.smart_open.smart_open({
|
||||||
|
filename_first = false,
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
desc = "Telescope smart open",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
opts = function(_, opts)
|
||||||
|
local actions = require("telescope.actions")
|
||||||
|
opts.defaults = {
|
||||||
|
layout_strategy = "horizontal",
|
||||||
|
layout_config = {
|
||||||
|
anchor = "top",
|
||||||
|
horizontal = {
|
||||||
|
prompt_position = "top",
|
||||||
|
mirror = false,
|
||||||
|
preview_width = 0.4,
|
||||||
|
-- preview_height = 0.5,
|
||||||
|
},
|
||||||
|
width = 0.9,
|
||||||
|
height = 0.9,
|
||||||
|
preview_cutoff = 10,
|
||||||
|
},
|
||||||
|
mappings = {
|
||||||
|
i = {
|
||||||
|
["<esc>"] = actions.close, -- <Esc> close popup
|
||||||
|
["<C-u>"] = false, -- <C-u> clear prompt
|
||||||
|
["<C-w>"] = false, -- <C-u> clear prompt
|
||||||
|
},
|
||||||
|
},
|
||||||
|
path_display = { "filename_first" },
|
||||||
|
previewer = false,
|
||||||
|
preview = {
|
||||||
|
hide_on_startup = true,
|
||||||
|
},
|
||||||
|
sorting_strategy = "ascending",
|
||||||
|
winblend = 0,
|
||||||
|
wrap_results = true,
|
||||||
|
}
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
}
|
110
.config/nvim/lua/plugins/extras.lua
Normal file
110
.config/nvim/lua/plugins/extras.lua
Normal file
|
@ -0,0 +1,110 @@
|
||||||
|
return {
|
||||||
|
{
|
||||||
|
"direnv/direnv.vim",
|
||||||
|
lazy = false,
|
||||||
|
priority = 900,
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"nvimtools/none-ls.nvim",
|
||||||
|
opts = function(_, opts)
|
||||||
|
local nls = require("null-ls")
|
||||||
|
opts.root_dir = opts.root_dir
|
||||||
|
or require("null-ls.utils").root_pattern(".null-ls-root", ".neoconf.json", "Makefile", ".git")
|
||||||
|
opts.sources = vim.list_extend(opts.sources or {}, {
|
||||||
|
nls.builtins.formatting.mdformat,
|
||||||
|
nls.builtins.formatting.stylua,
|
||||||
|
nls.builtins.formatting.shfmt,
|
||||||
|
nls.builtins.formatting.buf,
|
||||||
|
nls.builtins.formatting.buildifier,
|
||||||
|
nls.builtins.diagnostics.buildifier,
|
||||||
|
nls.builtins.diagnostics.buf.with({
|
||||||
|
args = { "lint", "--disable-symlinks", "--path", "$FILENAME" },
|
||||||
|
cwd = function()
|
||||||
|
local file_dir = vim.fn.expand("%:p:h") .. ";"
|
||||||
|
local buf_yaml = vim.fn.findfile("buf.yaml", file_dir)
|
||||||
|
if buf_yaml then
|
||||||
|
return vim.fn.fnamemodify(buf_yaml, ":h")
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
}),
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"nvim-neo-tree/neo-tree.nvim",
|
||||||
|
opts = {
|
||||||
|
window = {
|
||||||
|
width = 30,
|
||||||
|
position = "right",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"simrat39/rust-tools.nvim",
|
||||||
|
enabled = false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"mrcjkb/rustaceanvim",
|
||||||
|
version = "^4", -- Recommended
|
||||||
|
ft = { "rust" },
|
||||||
|
opts = {
|
||||||
|
server = {
|
||||||
|
on_attach = function(_, bufnr)
|
||||||
|
vim.keymap.set("n", "<leader>cR", function()
|
||||||
|
vim.cmd.RustLsp("codeAction")
|
||||||
|
end, { desc = "Code Action", buffer = bufnr })
|
||||||
|
vim.keymap.set("n", "<leader>dr", function()
|
||||||
|
vim.cmd.RustLsp("debuggables")
|
||||||
|
end, { desc = "Rust debuggables", buffer = bufnr })
|
||||||
|
vim.keymap.set("n", "<leader>cD", function()
|
||||||
|
vim.cmd.RustLsp("externalDocs")
|
||||||
|
end, { desc = "Rust external documentation", buffer = bufnr })
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
-- rust-analyzer language server configuration
|
||||||
|
["rust-analyzer"] = {
|
||||||
|
cargo = {
|
||||||
|
allFeatures = true,
|
||||||
|
loadOutDirsFromCheck = true,
|
||||||
|
runBuildScripts = true,
|
||||||
|
targetDir = true,
|
||||||
|
-- extraEnv = {
|
||||||
|
-- RUSTC_LINKER = "clang",
|
||||||
|
-- RUSTFLAGS = "-Clink-arg=-fuse-ld=mold",
|
||||||
|
-- },
|
||||||
|
},
|
||||||
|
-- Add clippy lints for Rust.
|
||||||
|
checkOnSave = {
|
||||||
|
allFeatures = true,
|
||||||
|
command = "clippy",
|
||||||
|
extraArgs = { "--no-deps" },
|
||||||
|
},
|
||||||
|
procMacro = {
|
||||||
|
enable = true,
|
||||||
|
ignored = {
|
||||||
|
["async-trait"] = { "async_trait" },
|
||||||
|
["napi-derive"] = { "napi" },
|
||||||
|
["async-recursion"] = { "async_recursion" },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"monkoose/neocodeium",
|
||||||
|
event = "VeryLazy",
|
||||||
|
config = function()
|
||||||
|
local neocodeium = require("neocodeium")
|
||||||
|
neocodeium.setup()
|
||||||
|
vim.keymap.set("i", "<C-j>", neocodeium.accept)
|
||||||
|
vim.keymap.set("i", "<C-h>", neocodeium.cycle_or_complete)
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
}
|
14
.config/nvim/lua/plugins/formatting.lua
Normal file
14
.config/nvim/lua/plugins/formatting.lua
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
return {
|
||||||
|
{
|
||||||
|
"stevearc/conform.nvim",
|
||||||
|
opts = {
|
||||||
|
formatters_by_ft = {
|
||||||
|
["cue"] = { { "cue_fmt" } },
|
||||||
|
["html"] = { { "prettierd", "prettier" } },
|
||||||
|
["sass"] = { { "prettierd", "prettier" } },
|
||||||
|
["proto"] = { { "buf" } },
|
||||||
|
["terraform"] = { { "terraform_fmt" } },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
75
.config/nvim/lua/plugins/incline.lua
Normal file
75
.config/nvim/lua/plugins/incline.lua
Normal file
|
@ -0,0 +1,75 @@
|
||||||
|
return {
|
||||||
|
"b0o/incline.nvim",
|
||||||
|
config = function()
|
||||||
|
local devicons = require("nvim-web-devicons")
|
||||||
|
require("incline").setup({
|
||||||
|
window = {
|
||||||
|
margin = {
|
||||||
|
horizontal = 0,
|
||||||
|
vertical = 0,
|
||||||
|
},
|
||||||
|
padding = 0,
|
||||||
|
placement = {
|
||||||
|
horizontal = "right",
|
||||||
|
vertical = "bottom",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
render = function(props)
|
||||||
|
local filename = vim.fn.fnamemodify(vim.api.nvim_buf_get_name(props.buf), ":t")
|
||||||
|
if filename == "" then
|
||||||
|
filename = "[No Name]"
|
||||||
|
end
|
||||||
|
local ft_icon, ft_color = devicons.get_icon_color(filename)
|
||||||
|
|
||||||
|
local function get_git_diff()
|
||||||
|
local icons = { removed = " ", changed = " ", added = " " }
|
||||||
|
local signs = vim.b[props.buf].gitsigns_status_dict
|
||||||
|
local labels = {}
|
||||||
|
if signs == nil then
|
||||||
|
return labels
|
||||||
|
end
|
||||||
|
for name, icon in pairs(icons) do
|
||||||
|
if tonumber(signs[name]) and signs[name] > 0 then
|
||||||
|
table.insert(labels, { icon .. signs[name] .. " ", group = "Diff" .. name })
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if #labels > 0 then
|
||||||
|
table.insert(labels, { "╱ " })
|
||||||
|
end
|
||||||
|
return labels
|
||||||
|
end
|
||||||
|
|
||||||
|
local function get_diagnostic_label()
|
||||||
|
local icons = { error = " ", warn = " ", info = " ", hint = " " }
|
||||||
|
local label = {}
|
||||||
|
|
||||||
|
for severity, icon in pairs(icons) do
|
||||||
|
local n = #vim.diagnostic.get(
|
||||||
|
props.buf,
|
||||||
|
{ severity = vim.diagnostic.severity[string.upper(severity)] }
|
||||||
|
)
|
||||||
|
if n > 0 then
|
||||||
|
table.insert(label, { icon .. n .. " ", group = "DiagnosticSign" .. severity })
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if #label > 0 then
|
||||||
|
table.insert(label, { "╱ " })
|
||||||
|
end
|
||||||
|
return label
|
||||||
|
end
|
||||||
|
|
||||||
|
local bg_color = "#242e38"
|
||||||
|
|
||||||
|
return {
|
||||||
|
{ "", guibg = "#0d1117", guifg = bg_color },
|
||||||
|
{ " ", guifg = "#0d1117", guibg = bg_color },
|
||||||
|
{ get_diagnostic_label(), guibg = bg_color },
|
||||||
|
{ get_git_diff() },
|
||||||
|
{ filename .. " ", gui = "italic" },
|
||||||
|
}
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
-- Optional: Lazy load Incline
|
||||||
|
event = "VeryLazy",
|
||||||
|
}
|
39
.config/nvim/lua/plugins/lsp.lua
Normal file
39
.config/nvim/lua/plugins/lsp.lua
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
return {
|
||||||
|
{
|
||||||
|
"neovim/nvim-lspconfig",
|
||||||
|
opts = {
|
||||||
|
inlay_hints = { enabled = false },
|
||||||
|
-- codelens = {
|
||||||
|
-- enabled = true,
|
||||||
|
-- },
|
||||||
|
servers = {
|
||||||
|
rust_analyzer = {
|
||||||
|
mason = false,
|
||||||
|
-- targetDir = true,
|
||||||
|
-- keys = {
|
||||||
|
-- { "K", "<cmd>RustHoverActions<cr>", desc = "Hover Actions (Rust)" },
|
||||||
|
-- { "<leader>cR", "<cmd>RustCodeAction<cr>", desc = "Code Action (Rust)" },
|
||||||
|
-- { "<leader>dr", "<cmd>RustDebuggables<cr>", desc = "Run Debuggables (Rust)" },
|
||||||
|
-- },
|
||||||
|
},
|
||||||
|
starpls = {},
|
||||||
|
yamlls = {
|
||||||
|
settings = {
|
||||||
|
yaml = {
|
||||||
|
schemas = {
|
||||||
|
-- kubernetes = "*.yaml",
|
||||||
|
["http://json.schemastore.org/github-workflow"] = ".github/workflows/*",
|
||||||
|
["http://json.schemastore.org/github-action"] = ".github/action.{yml,yaml}",
|
||||||
|
["http://json.schemastore.org/ansible-stable-2.9"] = "roles/tasks/*.{yml,yaml}",
|
||||||
|
["http://json.schemastore.org/chart"] = "Chart.{yml,yaml}",
|
||||||
|
["https://json.schemastore.org/dependabot-v2"] = ".github/dependabot.{yml,yaml}",
|
||||||
|
["https://raw.githubusercontent.com/OAI/OpenAPI-Specification/main/schemas/v3.1/schema.json"] = "*api*.{yml,yaml}",
|
||||||
|
["https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/v1.29.1/all.json"] = "/*.yaml",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
173
.config/nvim/lua/plugins/ui.lua
Normal file
173
.config/nvim/lua/plugins/ui.lua
Normal file
|
@ -0,0 +1,173 @@
|
||||||
|
local hooks = require("ibl.hooks")
|
||||||
|
-- create the highlight groups in the highlight setup hook, so they are reset
|
||||||
|
-- every time the colorscheme changes
|
||||||
|
hooks.register(hooks.type.HIGHLIGHT_SETUP, function()
|
||||||
|
local colorbuddy = require("colorbuddy")
|
||||||
|
local Color = colorbuddy.Color
|
||||||
|
local colors = colorbuddy.colors
|
||||||
|
local Group = colorbuddy.Group
|
||||||
|
local groups = colorbuddy.groups
|
||||||
|
local styles = colorbuddy.styles
|
||||||
|
Color.new("IndentBlanklineIndent", "#1e2835", styles.nocombine)
|
||||||
|
Group.new("IndentBlanklineIndent1", colors.IndentBlanklineIndent:light(0.1))
|
||||||
|
Group.new("IndentBlanklineIndent2", colors.IndentBlanklineIndent:light(0.15))
|
||||||
|
Group.new("IndentBlanklineIndent3", colors.IndentBlanklineIndent:light(0.2))
|
||||||
|
Group.new("IndentBlanklineIndent4", colors.IndentBlanklineIndent:light(0.25))
|
||||||
|
Group.new("IndentBlanklineIndent5", colors.IndentBlanklineIndent:light(0.3))
|
||||||
|
Group.new("IndentBlanklineIndent6", colors.IndentBlanklineIndent:light(0.35))
|
||||||
|
|
||||||
|
Color.new("IndentBlanklineContextChar", "#f0a972", styles.nocombine)
|
||||||
|
Group.new("IndentBlanklineContextChar", colors.IndentBlanklineContextChar)
|
||||||
|
end)
|
||||||
|
|
||||||
|
local logo = [[
|
||||||
|
███████ ██ ██ ███████ ██ ███ ███ █████ ███ ██ ██████ ██████ ██████ ██ ██ ██████
|
||||||
|
██ ██ ██ ██ ██ ████ ████ ██ ██ ████ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██
|
||||||
|
███████ ███████ █████ ██ ██ ████ ██ ███████ ██ ██ ██ ██ ███ ██████ ██ ██ ██ ██ ██████
|
||||||
|
██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██
|
||||||
|
███████ ██ ██ ███████ ███████ ██ ██ ██ ██ ██ ████ ██████ ██ ██ ██████ ██████ ██
|
||||||
|
]]
|
||||||
|
|
||||||
|
return {
|
||||||
|
{
|
||||||
|
"nvimdev/dashboard-nvim",
|
||||||
|
opts = {
|
||||||
|
theme = "hyper",
|
||||||
|
config = {
|
||||||
|
header = vim.split(string.rep("\n", 8) .. logo, "\n"),
|
||||||
|
week_header = { enable = false },
|
||||||
|
packages = { enable = false },
|
||||||
|
project = { enable = false },
|
||||||
|
footer = {},
|
||||||
|
shortcut = {},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"echasnovski/mini.indentscope",
|
||||||
|
opts = {
|
||||||
|
draw = {
|
||||||
|
delay = 50, -- ms
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"akinsho/bufferline.nvim",
|
||||||
|
enabled = false,
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"lukas-reineke/indent-blankline.nvim",
|
||||||
|
dependencies = {
|
||||||
|
{ "tjdevries/colorbuddy.nvim" },
|
||||||
|
},
|
||||||
|
main = "ibl",
|
||||||
|
opts = {
|
||||||
|
indent = {
|
||||||
|
char = "┊",
|
||||||
|
tab_char = "┊",
|
||||||
|
highlight = {
|
||||||
|
"IndentBlanklineIndent1",
|
||||||
|
"IndentBlanklineIndent2",
|
||||||
|
"IndentBlanklineIndent3",
|
||||||
|
"IndentBlanklineIndent4",
|
||||||
|
"IndentBlanklineIndent5",
|
||||||
|
"IndentBlanklineIndent6",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
scope = {
|
||||||
|
enabled = false,
|
||||||
|
show_start = false,
|
||||||
|
char = "│",
|
||||||
|
highlight = {
|
||||||
|
"IndentBlanklineIndent1",
|
||||||
|
"IndentBlanklineIndent2",
|
||||||
|
"IndentBlanklineIndent3",
|
||||||
|
"IndentBlanklineIndent4",
|
||||||
|
"IndentBlanklineIndent5",
|
||||||
|
"IndentBlanklineIndent6",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"mvllow/modes.nvim",
|
||||||
|
opts = {
|
||||||
|
colors = {
|
||||||
|
copy = "#f5c359",
|
||||||
|
delete = "#c75c6a",
|
||||||
|
insert = "#ffcc00",
|
||||||
|
visual = "#c343fc",
|
||||||
|
},
|
||||||
|
set_cursor = true,
|
||||||
|
set_cursorline = true,
|
||||||
|
set_number = true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"folke/noice.nvim",
|
||||||
|
event = "VeryLazy",
|
||||||
|
keys = {
|
||||||
|
{ "<leader>sna", "<cmd>NoiceTelescope<cr>", desc = "Show all messages in Telescope" },
|
||||||
|
},
|
||||||
|
opts = function()
|
||||||
|
local enable_conceal = true -- Hide command text if true
|
||||||
|
return {
|
||||||
|
presets = { bottom_search = true }, -- The kind of popup used for /
|
||||||
|
cmdline = {
|
||||||
|
view = "cmdline", -- The kind of popup used for :
|
||||||
|
format = {
|
||||||
|
cmdline = { conceal = enable_conceal },
|
||||||
|
search_down = { conceal = enable_conceal },
|
||||||
|
search_up = { conceal = enable_conceal },
|
||||||
|
filter = { conceal = enable_conceal },
|
||||||
|
lua = { conceal = enable_conceal },
|
||||||
|
help = { conceal = enable_conceal },
|
||||||
|
input = { conceal = enable_conceal },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
messages = { enabled = true },
|
||||||
|
lsp = {
|
||||||
|
hover = { enabled = false },
|
||||||
|
signature = { enabled = false },
|
||||||
|
progress = { enabled = true, view = "cmdline" },
|
||||||
|
message = { enabled = false },
|
||||||
|
smart_move = { enabled = false },
|
||||||
|
},
|
||||||
|
}
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"rcarriga/nvim-notify",
|
||||||
|
opts = {
|
||||||
|
stages = "fade_in_slide_out",
|
||||||
|
timeout = 1000,
|
||||||
|
background_colour = "#1e2835",
|
||||||
|
render = "wrapped-compact",
|
||||||
|
top_down = false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"nvim-lualine/lualine.nvim",
|
||||||
|
enabled = false,
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"linrongbin16/fzfx.nvim",
|
||||||
|
dependencies = { "nvim-tree/nvim-web-devicons", "junegunn/fzf" },
|
||||||
|
|
||||||
|
-- specify version to avoid break changes
|
||||||
|
version = "v5.*",
|
||||||
|
|
||||||
|
config = function()
|
||||||
|
require("fzfx").setup()
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
}
|
8
.config/paru/paru.conf
Normal file
8
.config/paru/paru.conf
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
Include = /etc/paru.conf
|
||||||
|
|
||||||
|
[options]
|
||||||
|
RemoveMake = ask
|
||||||
|
SkipReview
|
||||||
|
|
||||||
|
[bin]
|
||||||
|
Sudo = doas
|
10
.config/rg/rg.conf
Normal file
10
.config/rg/rg.conf
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
--glob=!/.git/
|
||||||
|
--glob=!/.terraform/
|
||||||
|
--pretty
|
||||||
|
--colors=column:fg:100,181,246
|
||||||
|
--colors=line:fg:100,181,246
|
||||||
|
--colors=path:fg:26,35,126
|
||||||
|
--colors=path:style:bold
|
||||||
|
--colors=match:style:nobold
|
||||||
|
--colors=match:bg:255,235,59
|
||||||
|
--colors=match:fg:0,0,0
|
22
.config/sapling/sapling.conf
Normal file
22
.config/sapling/sapling.conf
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
[ui]
|
||||||
|
username =Daniel Lundin <daniel@arity.se>
|
||||||
|
|
||||||
|
[alias]
|
||||||
|
sw = switch
|
||||||
|
switch = !sl sl -M -T ':\033[31m{node|short} \033[1;33m{bookmarks}{if(bookmarks, " ")}{remotenames} {if(github_pull_request_number, "\033[1;37;41m PR #{github_pull_request_number} ")}\033[0;3;32m {date|age} \033[35;1;3mby {author|user} - \033[0;34;3m{desc|firstline}\033[0m' | sed -E -e '/31m[0-9abcdef]{12}/!d' -e 's/.+ ://' | fzf-tmux -p 90%,50% -y 0 --ansi --color=light | sed "s/ .*//" | xargs -r -n1 sl go && sl log -r . -T status
|
||||||
|
|
||||||
|
l = ll
|
||||||
|
ll = log -G -T '\033[31m{node|short} \033[3;32m{date|age} \033[35;1;3mby {author|person}\n \033[0;34;3m{desc|firstline}\033[0m\n\n'
|
||||||
|
|
||||||
|
[pager]
|
||||||
|
pager = delta --hunk-header-style "line-number file" --line-numbers --max-line-distance 0.9 --inspect-raw-lines=false
|
||||||
|
|
||||||
|
[color]
|
||||||
|
sl.public = color70 bold
|
||||||
|
sl.draft = color208 bold
|
||||||
|
sl.current = color99 bold
|
||||||
|
sl.diff = red bold
|
||||||
|
|
||||||
|
[committemplate]
|
||||||
|
emptymsg = ""
|
||||||
|
|
78
.config/starship.toml
Normal file
78
.config/starship.toml
Normal file
|
@ -0,0 +1,78 @@
|
||||||
|
"$schema" = 'https://starship.rs/config-schema.json'
|
||||||
|
|
||||||
|
add_newline = true
|
||||||
|
|
||||||
|
format = """\
|
||||||
|
${custom.pwd}\
|
||||||
|
$fill\
|
||||||
|
$line_break\
|
||||||
|
$directory\
|
||||||
|
($character)\
|
||||||
|
"""
|
||||||
|
|
||||||
|
right_format = """\
|
||||||
|
$cmd_duration\
|
||||||
|
$git_branch$git_commit$git_status$git_state\
|
||||||
|
$hostname\
|
||||||
|
"""
|
||||||
|
|
||||||
|
[hostname]
|
||||||
|
ssh_only = false
|
||||||
|
format = " [](fg:#222222)[ $hostname ](italic dimmed bg:#222222 fg:#999999)"
|
||||||
|
disabled = false
|
||||||
|
|
||||||
|
[time]
|
||||||
|
disabled = false
|
||||||
|
format = ' [$time]($style)'
|
||||||
|
style = "italic dimmed fg:#666666"
|
||||||
|
time_format = '%R'
|
||||||
|
|
||||||
|
[custom.pwd]
|
||||||
|
command = "pwd"
|
||||||
|
when = true
|
||||||
|
format = "[($output)]($style) "
|
||||||
|
style = "italic dimmed fg:#777777"
|
||||||
|
|
||||||
|
[directory]
|
||||||
|
fish_style_pwd_dir_length = 1
|
||||||
|
truncation_length = 1
|
||||||
|
truncate_to_repo = false
|
||||||
|
truncation_symbol = "…"
|
||||||
|
style = "italic fg:#88aabb"
|
||||||
|
|
||||||
|
[line_break]
|
||||||
|
disabled = false
|
||||||
|
|
||||||
|
[fill]
|
||||||
|
symbol = '⎯'
|
||||||
|
style = 'fg:#333333'
|
||||||
|
|
||||||
|
[character]
|
||||||
|
success_symbol = "[%](bold fg:#66cc99)"
|
||||||
|
error_symbol = "[%](bold red)"
|
||||||
|
|
||||||
|
[cmd_duration]
|
||||||
|
min_time = 500
|
||||||
|
format = '[ $duration ](yellow)'
|
||||||
|
|
||||||
|
[git_branch]
|
||||||
|
format = "[$symbol$branch]($style)"
|
||||||
|
style = "italic bold fg:#00ac73"
|
||||||
|
symbol = " "
|
||||||
|
truncation_length = 16
|
||||||
|
truncation_symbol = ""
|
||||||
|
|
||||||
|
[git_commit]
|
||||||
|
format = "[ $hash$tag]($style) "
|
||||||
|
style = "fg:#00d992"
|
||||||
|
|
||||||
|
[git_state]
|
||||||
|
style = ""
|
||||||
|
|
||||||
|
[git_status]
|
||||||
|
format = '([$all_status$ahead_behind]($style)) '
|
||||||
|
style = "fg:#00ac73"
|
||||||
|
modified = "[ ](fg:#d1c000)"
|
||||||
|
deleted = "[ ✘](fg:#b93400)"
|
||||||
|
untracked = "[ ?](fg:#9c49aa)"
|
||||||
|
staged = "[ ](fg:#71a4aa)"
|
11
.config/systemd/user/opener@.service
Normal file
11
.config/systemd/user/opener@.service
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
[Unit]
|
||||||
|
Description=Open URL in your local web browser from the SSH-connected remote environment.
|
||||||
|
After=graphical-session.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Restart=always
|
||||||
|
Environment=OPENER_CONF=%t/opener.%i.conf
|
||||||
|
ExecStart=/bin/sh -c 'echo "address: %t/opener.%i.sock" > $OPENER_CONF && exec %h/bin/opener --config $OPENER_CONF'
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=graphical-session.target
|
10
.config/systemd/user/tmux.service
Normal file
10
.config/systemd/user/tmux.service
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
[Unit]
|
||||||
|
Description=Run tmux server
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Restart=always
|
||||||
|
StartLimitIntervalSec=0
|
||||||
|
ExecStart=/usr/bin/tmux -D -u
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=default.target
|
3
.config/vconsole/personal.map
Normal file
3
.config/vconsole/personal.map
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
include "linux-with-two-alt-keys"
|
||||||
|
keycode 58 = Control
|
||||||
|
|
40
.config/wezterm/colors/shelman-dark.toml
Normal file
40
.config/wezterm/colors/shelman-dark.toml
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
[metadata]
|
||||||
|
name = "Shelman Dark"
|
||||||
|
origin_url = ""
|
||||||
|
|
||||||
|
[colors]
|
||||||
|
ansi = [
|
||||||
|
"#000000",
|
||||||
|
"#ff0035",
|
||||||
|
"#85ff00",
|
||||||
|
"#ffc900",
|
||||||
|
"#00a7ff",
|
||||||
|
"#cb01ff",
|
||||||
|
"#00e0ff",
|
||||||
|
"#f0f0f0",
|
||||||
|
]
|
||||||
|
|
||||||
|
brights = [
|
||||||
|
"#000000",
|
||||||
|
"#ff8c88",
|
||||||
|
"#baff94",
|
||||||
|
"#ffe090",
|
||||||
|
"#88ccff",
|
||||||
|
"#e38dff",
|
||||||
|
"#97eeff",
|
||||||
|
"#ffffff",
|
||||||
|
]
|
||||||
|
|
||||||
|
# background = "#000000"
|
||||||
|
background = "#0d1117"
|
||||||
|
# background = "#11171d"
|
||||||
|
#background = "#171e26"
|
||||||
|
# background = "#161923"
|
||||||
|
# foreground = "#e3e0cd"
|
||||||
|
# foreground = "#d3d0bd"
|
||||||
|
foreground = "#cccccc"
|
||||||
|
cursor_bg = "#00d992"
|
||||||
|
cursor_fg = "#000000"
|
||||||
|
cursor_border = "#000000"
|
||||||
|
selection_bg = "#d7d7d7"
|
||||||
|
selection_fg = "#000000"
|
35
.config/wezterm/colors/shelman-light.toml
Normal file
35
.config/wezterm/colors/shelman-light.toml
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
[metadata]
|
||||||
|
name = "Shelman Light"
|
||||||
|
origin_url = ""
|
||||||
|
|
||||||
|
[colors]
|
||||||
|
ansi = [
|
||||||
|
"#000000",
|
||||||
|
"#9e001d",
|
||||||
|
"#306300",
|
||||||
|
"#deae00",
|
||||||
|
"#00669e",
|
||||||
|
"#7d009e",
|
||||||
|
"#008a9e",
|
||||||
|
"#f7f7f7",
|
||||||
|
]
|
||||||
|
|
||||||
|
brights = [
|
||||||
|
"#000000",
|
||||||
|
"#ff0035",
|
||||||
|
"#509e00",
|
||||||
|
"#ffc900",
|
||||||
|
"#00a7ff",
|
||||||
|
"#cb01ff",
|
||||||
|
"#00e0ff",
|
||||||
|
"#ffffff",
|
||||||
|
]
|
||||||
|
|
||||||
|
background = "#fefeff"
|
||||||
|
# foreground = "#2c363c"
|
||||||
|
foreground = "#000000"
|
||||||
|
cursor_bg = "#aa0000"
|
||||||
|
cursor_fg = "#ffffff"
|
||||||
|
cursor_border = "#ffffff"
|
||||||
|
selection_bg = "#ffe6a4"
|
||||||
|
selection_fg = "#483600"
|
245
.config/wezterm/wezterm.lua
Normal file
245
.config/wezterm/wezterm.lua
Normal file
|
@ -0,0 +1,245 @@
|
||||||
|
local wezterm = require("wezterm")
|
||||||
|
local mux = wezterm.mux
|
||||||
|
local act = wezterm.action
|
||||||
|
|
||||||
|
local config = {}
|
||||||
|
|
||||||
|
-- ------------------------------------------------------------------------------------
|
||||||
|
-- Workspace behavior
|
||||||
|
|
||||||
|
-- local nvim_args = { "nvim", "--listen", "$XDG_RUNTIME_DIR" .. "/nvim-persistent.sock" }
|
||||||
|
local nvim_args = { "nvim", "--listen", os.getenv("XDG_RUNTIME_DIR") .. "/nvim-persistent.sock" }
|
||||||
|
|
||||||
|
config.exec_domains = {
|
||||||
|
wezterm.exec_domain("dev", function(cmd)
|
||||||
|
local wrapped = { "/usr/bin/ssh", "-t", "dev" }
|
||||||
|
for _, arg in ipairs(cmd.args or { os.getenv("SHELL") }) do
|
||||||
|
table.insert(wrapped, arg)
|
||||||
|
end
|
||||||
|
cmd.args = wrapped
|
||||||
|
return cmd
|
||||||
|
end),
|
||||||
|
}
|
||||||
|
|
||||||
|
local function activate_nvim(window, pane)
|
||||||
|
wezterm.log_info("nvim")
|
||||||
|
for _, t in ipairs(window:mux_window():tabs_with_info()) do
|
||||||
|
for _, p in ipairs(t.tab:panes()) do
|
||||||
|
if p:get_title() == "nvim" or t.tab:get_title() == "nvim" then
|
||||||
|
window:perform_action(
|
||||||
|
act.Multiple({
|
||||||
|
act.ActivateTab(t.index),
|
||||||
|
act.MoveTab(0),
|
||||||
|
}),
|
||||||
|
pane
|
||||||
|
)
|
||||||
|
return
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local nvim_tab, nvim_pane, _ = window:mux_window():spawn_tab({ args = nvim_args })
|
||||||
|
window:perform_action(act.MoveTab(0), nvim_pane)
|
||||||
|
nvim_tab:set_title("nvim")
|
||||||
|
end
|
||||||
|
|
||||||
|
local function activate_tab(title, index)
|
||||||
|
return function(window, pane)
|
||||||
|
wezterm.log_info(title)
|
||||||
|
for _, t in ipairs(window:mux_window():tabs_with_info()) do
|
||||||
|
if t.tab:get_title() == title then
|
||||||
|
window:perform_action(
|
||||||
|
act.Multiple({
|
||||||
|
act.ActivateTab(t.index),
|
||||||
|
act.MoveTab(index),
|
||||||
|
}),
|
||||||
|
pane
|
||||||
|
)
|
||||||
|
return
|
||||||
|
end
|
||||||
|
end
|
||||||
|
local tab, _, _ = window:mux_window():spawn_tab({
|
||||||
|
cwd = "~",
|
||||||
|
})
|
||||||
|
tab:set_title(title)
|
||||||
|
window:perform_action(act.MoveTab(index), pane)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
wezterm.on("activate-nvim", activate_nvim)
|
||||||
|
wezterm.on("tab-2", activate_tab("t2", 1))
|
||||||
|
wezterm.on("tab-3", activate_tab("t3", 2))
|
||||||
|
wezterm.on("tab-4", activate_tab("t4", 3))
|
||||||
|
wezterm.on("tab-5", activate_tab("t5", 4))
|
||||||
|
wezterm.on("tab-6", activate_tab("t6", 5))
|
||||||
|
wezterm.on("tab-7", activate_tab("t7", 6))
|
||||||
|
wezterm.on("tab-8", activate_tab("t8", 7))
|
||||||
|
wezterm.on("tab-9", activate_tab("t9", 8))
|
||||||
|
wezterm.on("tab-10", activate_tab("t10", 9))
|
||||||
|
|
||||||
|
wezterm.on("user-var-changed", function(window, pane, name, _)
|
||||||
|
if name == "nvim_activate" then
|
||||||
|
activate_nvim(window, pane)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
|
||||||
|
-- ------------------------------------------------------------------------------------
|
||||||
|
-- Appearance
|
||||||
|
|
||||||
|
local function scheme_for_appearance(appearance)
|
||||||
|
if appearance:find("Dark") then
|
||||||
|
return "Shelman Dark"
|
||||||
|
else
|
||||||
|
return "Shelman Light"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local function font_for_appearance(appearance)
|
||||||
|
if appearance:find("Dark") then
|
||||||
|
return wezterm.font({
|
||||||
|
family = "IosevkaShelman Nerd Font",
|
||||||
|
weight = "Light",
|
||||||
|
})
|
||||||
|
else
|
||||||
|
return wezterm.font({
|
||||||
|
family = "IosevkaShelman Nerd Font",
|
||||||
|
--weight = "Regular",
|
||||||
|
})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
config.color_scheme = scheme_for_appearance(wezterm.gui.get_appearance())
|
||||||
|
|
||||||
|
-- ------------------------------------------------------------------------------------
|
||||||
|
-- Fonts
|
||||||
|
config.font = font_for_appearance(wezterm.gui.get_appearance())
|
||||||
|
config.font_rules = {
|
||||||
|
{
|
||||||
|
italic = true,
|
||||||
|
intensity = "Bold",
|
||||||
|
reverse = false,
|
||||||
|
font = wezterm.font("IosevkaShelman Nerd Font", { weight = "ExtraLight", italic = true }),
|
||||||
|
-- font = wezterm.font("Iosevka Term Curly Slab", { weight = "Thin", italic = true }),
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
italic = true,
|
||||||
|
intensity = "Normal",
|
||||||
|
reverse = false,
|
||||||
|
font = wezterm.font("IosevkaShelman Nerd Font", { weight = "Light", italic = true }),
|
||||||
|
},
|
||||||
|
}
|
||||||
|
-- config.dpi = 192
|
||||||
|
config.font_size = 15
|
||||||
|
config.line_height = 1.0
|
||||||
|
config.warn_about_missing_glyphs = false
|
||||||
|
config.bold_brightens_ansi_colors = false
|
||||||
|
config.unicode_version = 14
|
||||||
|
|
||||||
|
-- Config
|
||||||
|
config.enable_wayland = true
|
||||||
|
config.term = "wezterm"
|
||||||
|
config.check_for_updates = false
|
||||||
|
|
||||||
|
-- UI
|
||||||
|
config.command_palette_font_size = 13.5
|
||||||
|
config.initial_cols = 132
|
||||||
|
config.initial_rows = 45
|
||||||
|
config.status_update_interval = 100
|
||||||
|
config.audible_bell = "Disabled"
|
||||||
|
config.use_resize_increments = true
|
||||||
|
config.adjust_window_size_when_changing_font_size = false
|
||||||
|
config.window_decorations = "RESIZE"
|
||||||
|
config.window_frame = {
|
||||||
|
border_left_width = "4px",
|
||||||
|
border_right_width = "4px",
|
||||||
|
border_bottom_height = "4px",
|
||||||
|
border_top_height = "4px",
|
||||||
|
border_left_color = "#000000",
|
||||||
|
border_right_color = "#000000",
|
||||||
|
border_bottom_color = "#000000",
|
||||||
|
border_top_color = "#000000",
|
||||||
|
}
|
||||||
|
config.window_padding = {
|
||||||
|
left = 0,
|
||||||
|
right = 0,
|
||||||
|
top = 0,
|
||||||
|
bottom = 0,
|
||||||
|
}
|
||||||
|
|
||||||
|
-- Hyperlinks
|
||||||
|
config.hyperlink_rules = wezterm.default_hyperlink_rules()
|
||||||
|
|
||||||
|
table.insert(config.hyperlink_rules, {
|
||||||
|
regex = [[`rustc --explain E(\d+)`]],
|
||||||
|
format = "https://doc.rust-lang.org/error_codes/E$1.html",
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Tabs
|
||||||
|
config.enable_tab_bar = false
|
||||||
|
config.tab_bar_at_bottom = true
|
||||||
|
config.use_fancy_tab_bar = false
|
||||||
|
config.show_tab_index_in_tab_bar = true
|
||||||
|
|
||||||
|
-- Cursor
|
||||||
|
config.default_cursor_style = "SteadyBlock"
|
||||||
|
config.cursor_thickness = "6px"
|
||||||
|
config.cursor_blink_rate = 700
|
||||||
|
config.hide_mouse_cursor_when_typing = false
|
||||||
|
config.underline_position = -9
|
||||||
|
config.underline_thickness = 1
|
||||||
|
|
||||||
|
-- Scrolling
|
||||||
|
config.enable_scroll_bar = false
|
||||||
|
config.scrollback_lines = 5000
|
||||||
|
config.alternate_buffer_wheel_scroll_speed = 1
|
||||||
|
|
||||||
|
-- Keys
|
||||||
|
config.disable_default_key_bindings = true
|
||||||
|
config.keys = {
|
||||||
|
{ key = "c", mods = "ALT|SHIFT", action = act.CopyTo("ClipboardAndPrimarySelection") },
|
||||||
|
{ key = "v", mods = "ALT|SHIFT", action = act.PasteFrom("Clipboard") },
|
||||||
|
{ key = "0", mods = "CTRL", action = "ResetFontSize" },
|
||||||
|
{ key = "-", mods = "CTRL", action = "DecreaseFontSize" },
|
||||||
|
{ key = "=", mods = "CTRL", action = "IncreaseFontSize" },
|
||||||
|
{ key = "UpArrow", mods = "SHIFT", action = act.ScrollByLine(-1) },
|
||||||
|
{ key = "DownArrow", mods = "SHIFT", action = act.ScrollByLine(1) },
|
||||||
|
{ key = "PageUp", mods = "SHIFT", action = act.ScrollByPage(-0.5) },
|
||||||
|
{ key = "PageDown", mods = "SHIFT", action = act.ScrollByPage(0.5) },
|
||||||
|
{ key = "r", mods = "ALT", action = act.ReloadConfiguration },
|
||||||
|
{ key = "o", mods = "ALT", action = act.ActivateCommandPalette },
|
||||||
|
{ key = "Backspace", mods = "ALT", action = act.SwitchWorkspaceRelative(1) },
|
||||||
|
{ key = "1", mods = "ALT", action = act.EmitEvent("activate-nvim") },
|
||||||
|
{ key = "2", mods = "ALT", action = act.EmitEvent("tab-2") },
|
||||||
|
{ key = "3", mods = "ALT", action = act.EmitEvent("tab-3") },
|
||||||
|
{ key = "4", mods = "ALT", action = act.EmitEvent("tab-4") },
|
||||||
|
{ key = "5", mods = "ALT", action = act.EmitEvent("tab-5") },
|
||||||
|
{ key = "6", mods = "ALT", action = act.EmitEvent("tab-6") },
|
||||||
|
{ key = "7", mods = "ALT", action = act.EmitEvent("tab-7") },
|
||||||
|
{ key = "8", mods = "ALT", action = act.EmitEvent("tab-8") },
|
||||||
|
{ key = "9", mods = "ALT", action = act.EmitEvent("tab-9") },
|
||||||
|
{ key = "0", mods = "ALT", action = act.EmitEvent("tab-10") },
|
||||||
|
}
|
||||||
|
|
||||||
|
-- Mouse
|
||||||
|
config.mouse_bindings = {
|
||||||
|
{
|
||||||
|
event = { Down = { streak = 1, button = { WheelUp = 1 } } },
|
||||||
|
mods = "SHIFT",
|
||||||
|
action = act.ScrollByLine(-1),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
event = { Down = { streak = 1, button = { WheelDown = 1 } } },
|
||||||
|
mods = "SHIFT",
|
||||||
|
action = act.ScrollByLine(1),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
event = { Down = { streak = 1, button = { WheelUp = 1 } } },
|
||||||
|
action = act.ScrollByPage(-0.25),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
event = { Down = { streak = 1, button = { WheelDown = 1 } } },
|
||||||
|
action = act.ScrollByPage(0.25),
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
return config
|
13
.config/zsh-abbr/user-abbreviations
Normal file
13
.config/zsh-abbr/user-abbreviations
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
abbr "b"="git branch -va"
|
||||||
|
abbr "c"="git commit"
|
||||||
|
abbr "d"="git diff --stat -p -C --color-words"
|
||||||
|
abbr "g"="git"
|
||||||
|
abbr "gsw"="git gerrit-switch"
|
||||||
|
abbr "k"="kubectl"
|
||||||
|
abbr "new"="git checkout --detach main"
|
||||||
|
abbr "p"="git push"
|
||||||
|
abbr "rec"="git record"
|
||||||
|
abbr "s"="git st"
|
||||||
|
abbr "sl"="git branchless smartlog"
|
||||||
|
abbr "sw"="git branchless switch --interactive"
|
||||||
|
abbr "sy"="git sync --pull"
|
2
.envrc
2
.envrc
|
@ -1,2 +0,0 @@
|
||||||
# shellcheck shell=bash
|
|
||||||
use flake
|
|
151
.gitconfig
Normal file
151
.gitconfig
Normal file
|
@ -0,0 +1,151 @@
|
||||||
|
[alias]
|
||||||
|
b = branch -va
|
||||||
|
cl = clone --filter=blob:none
|
||||||
|
co = checkout
|
||||||
|
d = diff --stat -p -C --color-words
|
||||||
|
ds = diff --staged --stat -p -C --color-words
|
||||||
|
dt = difftool
|
||||||
|
patch = !git --no-pager diff --no-color
|
||||||
|
pullr = pull --rebase --autostash
|
||||||
|
sh = show --stat -p -C --color-words --show-signature
|
||||||
|
st = status -sb
|
||||||
|
t = tag --sort=-v:refname --format='%(color:bold italic)%(objectname:short)%(color:noitalic) %(refname:short)'
|
||||||
|
|
||||||
|
new = !git fetch -u origin main:main && git branchless switch -d origin/main
|
||||||
|
sl = branchless smartlog
|
||||||
|
sync = branchless sync
|
||||||
|
sw = branchless switch
|
||||||
|
s = branchless switch -i
|
||||||
|
|
||||||
|
copr = "!f() { \
|
||||||
|
pr=$1 \
|
||||||
|
&& test -n \"$pr\" || pr=`tea pr list -o simple | fzf --bind 'enter:become(echo {+1})'` \
|
||||||
|
&& git fetch origin refs/pull/$pr/head \
|
||||||
|
&& git checkout --detach FETCH_HEAD \
|
||||||
|
;};f"
|
||||||
|
|
||||||
|
g = graph -S -m simple -s round
|
||||||
|
ll = "log --first-parent --topo-order --pretty='format:%Creset%x1B[1;3;38:2:127:114:88m%h %G? ┼%x1B[0;38:2:154:234:255m%d%Creset %x1B[3;38:2:194:203:226m%s %x1B[38:2:93:112:164m᠁᠁᠁ %x1B[38:2:74:119:163m%al %x1B[2;38:2:93:112:164m%ah'"
|
||||||
|
lla = "log --graph --all --topo-order --pretty='format:%x1B[38:2:233:218:190m%h%x1B[38:2:154:234:255m%d%Creset %x1B[1;3;38:2:194:203:226m%s %x1B[38:2:93:112:164m᠁ %x1B[38:2:74:119:163m%al %x1B[2;38:2:93:112:164m%ah'"
|
||||||
|
|
||||||
|
guilt = "!f(){ git log --pretty='format:%an <%ae>' $@ | sort | uniq -c | sort -rn; }; f"
|
||||||
|
serve = daemon --verbose --export-all --base-path=.git --reuseaddr --strict-paths .git/
|
||||||
|
|
||||||
|
[apply]
|
||||||
|
whitespace = nowarn
|
||||||
|
|
||||||
|
[blame]
|
||||||
|
date = relative
|
||||||
|
|
||||||
|
[branch "main"]
|
||||||
|
rebase = true
|
||||||
|
|
||||||
|
[branch "master"]
|
||||||
|
rebase = true
|
||||||
|
|
||||||
|
[color]
|
||||||
|
branch = auto
|
||||||
|
diff = auto
|
||||||
|
status = auto
|
||||||
|
ui = auto
|
||||||
|
|
||||||
|
[column]
|
||||||
|
ui = auto
|
||||||
|
|
||||||
|
[core]
|
||||||
|
compression = 3
|
||||||
|
excludesfile = "~/.gitignore"
|
||||||
|
looseCompression = 3
|
||||||
|
pager = delta
|
||||||
|
|
||||||
|
[delta]
|
||||||
|
; # syntax-theme = GitHub
|
||||||
|
file-added-label = " ➕ ══"
|
||||||
|
file-decoration-style=none
|
||||||
|
file-modified-label = " ▲ ══"
|
||||||
|
file-removed-label = " ➖══"
|
||||||
|
file-renamed-label = " ➞ ══"
|
||||||
|
file-style = bold "#ffff66" "#333300"
|
||||||
|
file-transformation = "s/$/ ══ /"
|
||||||
|
hunk-header-decoration-style=none
|
||||||
|
hunk-header-file-style = bold "#66ddff"
|
||||||
|
hunk-header-line-number-style = bold "#66ccff"
|
||||||
|
hunk-header-style = line-number bold "#99eeff" "#001133"
|
||||||
|
hunk-label = "⯁"
|
||||||
|
hunk-label-style = bold "#66ccff"
|
||||||
|
line-numbers = true
|
||||||
|
max-line-distance = 0.9
|
||||||
|
|
||||||
|
[http]
|
||||||
|
cookiefile = /home/dln/.gitcookies
|
||||||
|
|
||||||
|
[hub]
|
||||||
|
protocol = git
|
||||||
|
|
||||||
|
[interactive]
|
||||||
|
diffFilter = delta --color-only --features=interactive
|
||||||
|
|
||||||
|
[commit]
|
||||||
|
gpgsign = true
|
||||||
|
verbose = true
|
||||||
|
|
||||||
|
[credential]
|
||||||
|
helper = store
|
||||||
|
|
||||||
|
[diff]
|
||||||
|
algorithm = histogram
|
||||||
|
tool = difft
|
||||||
|
|
||||||
|
[difftool]
|
||||||
|
prompt = false
|
||||||
|
|
||||||
|
[difftool "difft"]
|
||||||
|
cmd = difft --color=always --display inline "$LOCAL" "$REMOTE" | bat
|
||||||
|
|
||||||
|
[fetch]
|
||||||
|
prune = true
|
||||||
|
prunetags = true
|
||||||
|
showForcedUpdates = true
|
||||||
|
|
||||||
|
[filter "lfs"]
|
||||||
|
clean = git-lfs clean -- %f
|
||||||
|
process = git-lfs filter-process
|
||||||
|
required = true
|
||||||
|
smudge = git-lfs smudge -- %f
|
||||||
|
|
||||||
|
[gpg]
|
||||||
|
format = ssh
|
||||||
|
|
||||||
|
[gpg "ssh"]
|
||||||
|
allowedSignersFile = ~/.config/git/allowed_signers
|
||||||
|
defaultKeyCommand = /home/dln/.config/git/signing-key.sh
|
||||||
|
|
||||||
|
[init]
|
||||||
|
defaultBranch = main
|
||||||
|
|
||||||
|
[lfs]
|
||||||
|
concurrenttransfers = 32
|
||||||
|
|
||||||
|
[merge]
|
||||||
|
conflictstyle = zdiff3
|
||||||
|
|
||||||
|
[pack]
|
||||||
|
compression = 3
|
||||||
|
threads = 0
|
||||||
|
|
||||||
|
[push]
|
||||||
|
default = tracking
|
||||||
|
|
||||||
|
[rebase]
|
||||||
|
autosquash = true
|
||||||
|
|
||||||
|
[rerere]
|
||||||
|
enabled = true
|
||||||
|
|
||||||
|
[tag]
|
||||||
|
sort = -v:refname
|
||||||
|
|
||||||
|
[user]
|
||||||
|
email = dln@arity.se
|
||||||
|
name = Daniel Lundin
|
||||||
|
useConfigOnly = true
|
15
.gitignore
vendored
15
.gitignore
vendored
|
@ -1 +1,14 @@
|
||||||
/result
|
*~
|
||||||
|
*.a
|
||||||
|
*.class
|
||||||
|
/.idea
|
||||||
|
*.iml
|
||||||
|
*.ipr
|
||||||
|
*.iwr
|
||||||
|
*.iws
|
||||||
|
*.la
|
||||||
|
*.o
|
||||||
|
*.pyc
|
||||||
|
*.so
|
||||||
|
*.swp
|
||||||
|
|
||||||
|
|
4
.gnupg/gpg-agent.conf
Normal file
4
.gnupg/gpg-agent.conf
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
enable-ssh-support
|
||||||
|
default-cache-ttl 3600
|
||||||
|
max-cache-ttl 3600
|
||||||
|
extra-socket /run/user/1000/gnupg/S.gpg-agent.extra
|
2
.gnupg/gpg.conf
Normal file
2
.gnupg/gpg.conf
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
#use-agent
|
||||||
|
keyid-format LONG
|
11
.inputrc
Normal file
11
.inputrc
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
set meta-flag on
|
||||||
|
set convert-meta off
|
||||||
|
set output-meta on
|
||||||
|
set completion-ignore-case on
|
||||||
|
set visible-stats on
|
||||||
|
set show-all-if-ambiguous on
|
||||||
|
set completion-query-items 150
|
||||||
|
|
||||||
|
#"\C-p": history-search-backward
|
||||||
|
#"\C-n": history-search-forward
|
||||||
|
|
21
.jjconfig.toml
Normal file
21
.jjconfig.toml
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
[user]
|
||||||
|
name = "Daniel Lundin"
|
||||||
|
email = "dln@arity.se"
|
||||||
|
|
||||||
|
[ui]
|
||||||
|
default-command = "l"
|
||||||
|
diff-editor = ["scm-diff-editor", "--dir-diff", "$left", "$right"]
|
||||||
|
pager = ["delta", "--line-numbers", "--max-line-distance=0.9"]
|
||||||
|
|
||||||
|
[aliases]
|
||||||
|
l = ["log", "--ignore-working-copy", "-r", "(main..@): | (main..@)-"]
|
||||||
|
la = ["log", "--ignore-working-copy", "-r", "all()"]
|
||||||
|
b = ["branch", "list"]
|
||||||
|
n = ["new", "main"]
|
||||||
|
d = ["diff"]
|
||||||
|
|
||||||
|
[revset-aliases]
|
||||||
|
# The `main.. &` bit is an optimization to scan for non-`mine()` commits only
|
||||||
|
# among commits that are not in `main`.
|
||||||
|
"immutable_heads()" = "main@origin | (main@origin.. & ~mine())"
|
||||||
|
|
46
.lessfilter
Executable file
46
.lessfilter
Executable file
|
@ -0,0 +1,46 @@
|
||||||
|
#! /usr/bin/env bash
|
||||||
|
mime=$(file -Lbs --mime-type "$1")
|
||||||
|
category=${mime%%/*}
|
||||||
|
kind=${mime##*/}
|
||||||
|
ext=${1##*.}
|
||||||
|
if [ "$kind" = json ]; then
|
||||||
|
if [ "$(command -v jq)" ]; then
|
||||||
|
jq -Cr . "$1"
|
||||||
|
fi
|
||||||
|
elif [ "$kind" = vnd.sqlite3 ]; then
|
||||||
|
if [ "$(command -v yes)" ] && [ "$(command -v sqlite3)" ] && [ "$(command -v bat)" ]; then
|
||||||
|
yes .q | sqlite3 "$1" | bat --color=always -plsql
|
||||||
|
fi
|
||||||
|
# https://github.com/wofr06/lesspipe/pull/107
|
||||||
|
elif [ -d "$1" ]; then
|
||||||
|
if [ "$(command -v exa)" ]; then
|
||||||
|
exa --git -hl --color=always --icons "$1"
|
||||||
|
fi
|
||||||
|
# https://github.com/wofr06/lesspipe/pull/110
|
||||||
|
elif [ "$kind" = pdf ]; then
|
||||||
|
if [ "$(command -v pdftotext)" ] && [ "$(command -v sed)" ]; then
|
||||||
|
pdftotext -q "$1" - | sed "s/\f/$(hr ─)\n/g"
|
||||||
|
fi
|
||||||
|
# https://github.com/wofr06/lesspipe/pull/115
|
||||||
|
elif [ "$kind" = rfc822 ]; then
|
||||||
|
if [ "$(command -v bat)" ]; then
|
||||||
|
bat --color=always -lEmail "$1"
|
||||||
|
fi
|
||||||
|
# https://github.com/wofr06/lesspipe/pull/106
|
||||||
|
elif [ "$category" = image ]; then
|
||||||
|
if [ "$(command -v chafa)" ]; then
|
||||||
|
chafa -f symbols "$1"
|
||||||
|
fi
|
||||||
|
if [ "$(command -v exiftool)" ]; then
|
||||||
|
exiftool "$1" | bat --color=always -plyaml
|
||||||
|
fi
|
||||||
|
# https://github.com/wofr06/lesspipe/pull/117
|
||||||
|
elif [ "$category" = text ]; then
|
||||||
|
if [ "$(command -v bat)" ]; then
|
||||||
|
bat --color=always "$1"
|
||||||
|
elif [ "$(command -v pygmentize)" ]; then
|
||||||
|
pygmentize "$1" | less
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
exit 1
|
||||||
|
fi
|
13
.local/share/applications/firefox-arity.desktop
Normal file
13
.local/share/applications/firefox-arity.desktop
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
[Desktop Entry]
|
||||||
|
Version=1.0
|
||||||
|
Name=Firefox (Arity)
|
||||||
|
GenericName=Web Browser
|
||||||
|
Comment=Browse the Web
|
||||||
|
Exec=firefox %u -P Arity --name firefox-arity
|
||||||
|
Icon=firefox
|
||||||
|
Terminal=false
|
||||||
|
Type=Application
|
||||||
|
MimeType=text/html;text/xml;application/xhtml+xml;application/vnd.mozilla.xul+xml;text/mml;x-scheme-handler/http;x-scheme-handler/https;
|
||||||
|
StartupWMClass=firefox-arity
|
||||||
|
Categories=Network;WebBrowser;
|
||||||
|
Keywords=web;browser;internet;
|
13
.local/share/applications/firefox-work.desktop
Normal file
13
.local/share/applications/firefox-work.desktop
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
[Desktop Entry]
|
||||||
|
Version=1.0
|
||||||
|
Name=Firefox (Work)
|
||||||
|
GenericName=Web Browser
|
||||||
|
Comment=Browse the Web
|
||||||
|
Exec=firefox %u -P Work --new-instance --name firefox-work
|
||||||
|
Icon=firefox
|
||||||
|
Terminal=false
|
||||||
|
Type=Application
|
||||||
|
MimeType=text/html;text/xml;application/xhtml+xml;application/vnd.mozilla.xul+xml;text/mml;x-scheme-handler/http;x-scheme-handler/https;
|
||||||
|
StartupWMClass=firefox-work
|
||||||
|
Categories=Network;WebBrowser;
|
||||||
|
Keywords=web;browser;internet;
|
11
.local/share/applications/google-chrome-beta-client.desktop
Normal file
11
.local/share/applications/google-chrome-beta-client.desktop
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
[Desktop Entry]
|
||||||
|
Version=1.0
|
||||||
|
Name=Client Chrome
|
||||||
|
StartupWMClass=Google-chrome-beta-client
|
||||||
|
Exec=/usr/bin/google-chrome-beta %U --user-data-dir=.config/Google-chrome-beta-client --class=Google-chrome-beta-client
|
||||||
|
StartupNotify=true
|
||||||
|
Terminal=false
|
||||||
|
Icon=google-chrome-beta
|
||||||
|
Type=Application
|
||||||
|
Categories=Network;WebBrowser;
|
||||||
|
MimeType=application/pdf;application/rdf+xml;application/rss+xml;application/xhtml+xml;application/xhtml_xml;application/xml;image/gif;image/jpeg;image/png;image/webp;text/html;text/xml;x-scheme-handler/http;x-scheme-handler/https;
|
11
.local/share/applications/google-chrome-beta-private.desktop
Normal file
11
.local/share/applications/google-chrome-beta-private.desktop
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
[Desktop Entry]
|
||||||
|
Version=1.0
|
||||||
|
Name=Private Chrome
|
||||||
|
StartupWMClass=Google-chrome-beta-private
|
||||||
|
Exec=/usr/bin/google-chrome-beta %U --user-data-dir=.config/Google-chrome-beta-private --class=Google-chrome-beta-private
|
||||||
|
StartupNotify=true
|
||||||
|
Terminal=false
|
||||||
|
Icon=google-chrome-beta
|
||||||
|
Type=Application
|
||||||
|
Categories=Netprivate;WebBrowser;
|
||||||
|
MimeType=application/pdf;application/rdf+xml;application/rss+xml;application/xhtml+xml;application/xhtml_xml;application/xml;image/gif;image/jpeg;image/png;image/webp;text/html;text/xml;x-scheme-handler/http;x-scheme-handler/https;
|
11
.local/share/applications/google-chrome-beta-work.desktop
Normal file
11
.local/share/applications/google-chrome-beta-work.desktop
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
[Desktop Entry]
|
||||||
|
Version=1.0
|
||||||
|
Name=Work Chrome
|
||||||
|
StartupWMClass=Google-chrome-beta-work
|
||||||
|
Exec=/usr/bin/google-chrome-beta %U --user-data-dir=.config/Google-chrome-beta-work --class=Google-chrome-beta-work
|
||||||
|
StartupNotify=true
|
||||||
|
Terminal=false
|
||||||
|
Icon=google-chrome-beta
|
||||||
|
Type=Application
|
||||||
|
Categories=Network;WebBrowser;
|
||||||
|
MimeType=application/pdf;application/rdf+xml;application/rss+xml;application/xhtml+xml;application/xhtml_xml;application/xml;image/gif;image/jpeg;image/png;image/webp;text/html;text/xml;x-scheme-handler/http;x-scheme-handler/https;
|
9
.local/share/applications/meet.desktop
Normal file
9
.local/share/applications/meet.desktop
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
[Desktop Entry]
|
||||||
|
Version=1.0
|
||||||
|
Name=Google Meet
|
||||||
|
StartupWMClass=meet.google.com
|
||||||
|
Exec=/usr/bin/google-chrome-stable --profile-directory='Profile 1' --app=https://meet.google.com
|
||||||
|
Terminal=false
|
||||||
|
Icon=camera-video
|
||||||
|
Type=Application
|
||||||
|
Categories=Network;Office
|
9
.local/share/applications/plex.desktop
Normal file
9
.local/share/applications/plex.desktop
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
[Desktop Entry]
|
||||||
|
Version=1.0
|
||||||
|
Name=plex
|
||||||
|
StartupWMClass=plex.aarn.shelman.io
|
||||||
|
Exec=/usr/bin/google-chrome-stable --profile-directory='Profile 2' --app=https://plex.home:32400/web/index.html
|
||||||
|
Terminal=false
|
||||||
|
Icon=google-chrome
|
||||||
|
Type=Application
|
||||||
|
Categories=Audio;
|
11
.local/share/applications/spotify.desktop
Normal file
11
.local/share/applications/spotify.desktop
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
[Desktop Entry]
|
||||||
|
Type=Application
|
||||||
|
Name=Spotify
|
||||||
|
GenericName=Music Player
|
||||||
|
Icon=spotify-client
|
||||||
|
TryExec=spotify
|
||||||
|
Exec=spotify --force-device-scale-factor=2 %U
|
||||||
|
Terminal=false
|
||||||
|
MimeType=x-scheme-handler/spotify;
|
||||||
|
Categories=Audio;Music;Player;AudioVideo;
|
||||||
|
StartupWMClass=spotify
|
10
.local/share/applications/wezterm-dev-secondary.desktop
Normal file
10
.local/share/applications/wezterm-dev-secondary.desktop
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
[Desktop Entry]
|
||||||
|
Name=wezterm-dev-secondary
|
||||||
|
GenericName=wezterm-dev-secondary
|
||||||
|
StartupWMClass=org.wezfurlong.wezterm-dev-secondary
|
||||||
|
Type=Application
|
||||||
|
TryExec=/usr/bin/wezterm
|
||||||
|
Icon=org.wezfurlong.wezterm
|
||||||
|
Terminal=false
|
||||||
|
Categories=System;TerminalEmulator;
|
||||||
|
Exec=/usr/bin/wezterm --config 'default_prog={"/usr/bin/fish"}' start --class=org.wezfurlong.wezterm-dev-secondary --domain=dev
|
10
.local/share/applications/wezterm-dev.desktop
Normal file
10
.local/share/applications/wezterm-dev.desktop
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
[Desktop Entry]
|
||||||
|
Name=wezterm-dev
|
||||||
|
GenericName=wezterm-dev
|
||||||
|
StartupWMClass=org.wezfurlong.wezterm-dev
|
||||||
|
Type=Application
|
||||||
|
TryExec=/usr/bin/wezterm
|
||||||
|
Icon=org.wezfurlong.wezterm
|
||||||
|
Terminal=false
|
||||||
|
Categories=System;TerminalEmulator;
|
||||||
|
Exec=/usr/bin/wezterm --config 'default_prog={"/usr/bin/fish"}' start --class=org.wezfurlong.wezterm-dev --domain=dev
|
10
.local/share/applications/wezterm-local.desktop
Normal file
10
.local/share/applications/wezterm-local.desktop
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
[Desktop Entry]
|
||||||
|
Name=wezterm-local
|
||||||
|
GenericName=wezterm-local
|
||||||
|
StartupWMClass=wezterm-local
|
||||||
|
Type=Application
|
||||||
|
TryExec=/usr/bin/wezterm
|
||||||
|
Icon=org.wezfurlong.wezterm
|
||||||
|
Terminal=false
|
||||||
|
Categories=System;TerminalEmulator;
|
||||||
|
Exec=/usr/bin/wezterm --config 'default_prog={"tmux", "-u", "new", "-As0"}' start --class=wezterm-local
|
9
.local/share/applications/youtube-music.desktop
Normal file
9
.local/share/applications/youtube-music.desktop
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
[Desktop Entry]
|
||||||
|
Version=1.0
|
||||||
|
Name=YouTube Music (provar)
|
||||||
|
StartupWMClass=music.youtube.com
|
||||||
|
Exec=/usr/bin/google-chrome-stable --user-data-dir=$HOME/.config/google-chrome --profile-directory='Profile 2' --app=https://music.youtube.com --class=music.youtube.com
|
||||||
|
Terminal=false
|
||||||
|
Icon=google-chrome
|
||||||
|
Type=Application
|
||||||
|
Categories=Audio;
|
31
.ssh/config
Normal file
31
.ssh/config
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
ServerAliveInterval 15
|
||||||
|
ServerAliveCountMax 3
|
||||||
|
ControlMaster auto
|
||||||
|
ControlPath ${XDG_RUNTIME_DIR}/ssh_control:%h:%p:%r
|
||||||
|
ControlPersist 1200
|
||||||
|
Ciphers aes128-gcm@openssh.com,aes256-gcm@openssh.com,chacha20-poly1305@openssh.com,aes256-ctr,aes192-ctr,aes128-ctr
|
||||||
|
|
||||||
|
AddressFamily inet
|
||||||
|
PreferredAuthentications=publickey
|
||||||
|
|
||||||
|
Include ~/.ssh/private_config
|
||||||
|
|
||||||
|
Host 10.1.100.16
|
||||||
|
Host dln-dev
|
||||||
|
Host dev
|
||||||
|
Hostname 10.1.100.16
|
||||||
|
#Hostname aarn.shelman.io
|
||||||
|
#Port 2022
|
||||||
|
ForwardAgent yes
|
||||||
|
ExitOnForwardFailure yes
|
||||||
|
Compression no
|
||||||
|
LocalForward localhost:3000 localhost:3000
|
||||||
|
LocalForward localhost:8000 localhost:8000
|
||||||
|
LocalForward localhost:8080 localhost:8080
|
||||||
|
LocalForward localhost:9090 localhost:9090
|
||||||
|
LocalForward localhost:10000 localhost:10000
|
||||||
|
RemoteForward ${XDG_RUNTIME_DIR}/opener.sock ${XDG_RUNTIME_DIR}/opener.dln-dev.sock
|
||||||
|
RemoteForward localhost:9022 localhost:9022
|
||||||
|
|
||||||
|
Host *
|
||||||
|
ForwardAgent no
|
4
.ssh/rc
Executable file
4
.ssh/rc
Executable file
|
@ -0,0 +1,4 @@
|
||||||
|
if [[ -S "$SSH_AUTH_SOCK" && ! -h "$SSH_AUTH_SOCK" ]]; then
|
||||||
|
mkdir -p "${XDG_RUNTIME_DIR}/gcr";
|
||||||
|
ln -sf "$SSH_AUTH_SOCK" "${XDG_RUNTIME_DIR}/gcr/ssh";
|
||||||
|
fi
|
96
.tmux.conf
Normal file
96
.tmux.conf
Normal file
|
@ -0,0 +1,96 @@
|
||||||
|
set -g prefix ^o
|
||||||
|
|
||||||
|
set -g base-index 1
|
||||||
|
set -g display-panes-time 3000
|
||||||
|
set -s escape-time 10
|
||||||
|
set -g status on
|
||||||
|
set -g status-interval 30
|
||||||
|
set -g focus-events on
|
||||||
|
set -g allow-passthrough on
|
||||||
|
setw -g alternate-screen on
|
||||||
|
setw -g aggressive-resize on
|
||||||
|
setw -g automatic-rename off
|
||||||
|
setw -g mode-keys vi
|
||||||
|
set-option -g mouse on
|
||||||
|
|
||||||
|
# clipboard
|
||||||
|
set -g set-clipboard on
|
||||||
|
bind-key ] paste-buffer -p
|
||||||
|
|
||||||
|
set-environment -g "SSH_AUTH_SOCK" "$XDG_RUNTIME_DIR/gcr/ssh"
|
||||||
|
set -g update-environment "BUILD_COMMAND GOPACKAGESDRIVER SSH_AUTH_SOCK SSH_CONNECTION"
|
||||||
|
#set -g default-command "$SHELL"
|
||||||
|
set -g history-limit 10000
|
||||||
|
#
|
||||||
|
set -g default-terminal "wezterm"
|
||||||
|
set -ga terminal-features '*:clipboard:ccolor:hyperlinks:osc7:overline:sixel:strikethrough:title:usstyle:RGB'
|
||||||
|
set -ga terminal-overrides ',wezterm:cnorm=\E[?12h\E[?25h'
|
||||||
|
|
||||||
|
# Key bindings
|
||||||
|
bind -n M-Tab if-shell 'test #{window_panes} -gt 1' 'last-pane' 'last-window'
|
||||||
|
bind -n M-h select-pane -L
|
||||||
|
bind -n M-l select-pane -R
|
||||||
|
bind -n M-Left select-pane -L
|
||||||
|
bind -n M-Right select-pane -R
|
||||||
|
# bind -n M-j select-pane -U
|
||||||
|
# bind -n M-k select-pane -D
|
||||||
|
bind -T copy-mode-vi M-k send-keys -X cursor-up \; send-keys -X previous-prompt -o \; send-keys -X cursor-up
|
||||||
|
bind -T copy-mode-vi M-j send-keys -X cursor-down \; send-keys -X next-prompt -o \; send-keys -X cursor-up
|
||||||
|
bind -n M-k copy-mode \; send-keys -X previous-prompt -o \; send-keys -X cursor-up
|
||||||
|
bind -n M-j copy-mode \; send-keys -X previous-prompt -o \; send-keys -X cursor-up
|
||||||
|
bind -n M-Up select-pane -U
|
||||||
|
bind -n M-Down select-pane -D
|
||||||
|
bind -n M-1 select-window -t 42
|
||||||
|
bind -n M-2 select-window -t 2
|
||||||
|
bind -n M-3 select-window -t 3
|
||||||
|
bind -n M-4 select-window -t 4
|
||||||
|
bind -n M-5 select-window -t 5
|
||||||
|
bind -n M-6 select-window -t 6
|
||||||
|
bind -n M-7 select-window -t 7
|
||||||
|
bind -n M-8 select-window -t 8
|
||||||
|
bind -n M-9 select-window -t 9
|
||||||
|
bind -n M-0 select-window -t 10
|
||||||
|
|
||||||
|
bind -n M-m send-keys -t 9 q C-u "clear; tmux clear-history -t 9" C-m C-p C-p C-p C-m
|
||||||
|
bind C-o send-keys C-o
|
||||||
|
bind r source-file ~/.tmux.conf
|
||||||
|
bind -n C-Right next-window
|
||||||
|
bind -n C-Left previous-window
|
||||||
|
bind C-s set-option -g status
|
||||||
|
bind K confirm kill-server
|
||||||
|
bind C-k clear-history
|
||||||
|
bind -n C-l send-keys C-l \; clear-history
|
||||||
|
bind-key -T copy-mode-vi WheelUpPane select-pane \; send-keys -X -N 1 scroll-up
|
||||||
|
bind-key -T copy-mode-vi WheelDownPane select-pane \; send-keys -X -N 1 scroll-down
|
||||||
|
bind-key / copy-mode \; send-key ?
|
||||||
|
bind-key P 'capture-pane' \; capture-pane -S - \; save-buffer /tmp/tmux \; delete-buffer
|
||||||
|
bind-key -n C-\\ copy-mode \; send -X search-backward " % "\; send -X search-again
|
||||||
|
|
||||||
|
setw -g window-status-format ""
|
||||||
|
setw -g window-status-current-format ""
|
||||||
|
setw -g window-status-separator ""
|
||||||
|
set -g status-style "bg=#444444,fg=#dddddd,italics"
|
||||||
|
set -g popup-border-style "fg=#77fecc"
|
||||||
|
set -g pane-border-style "fg=#334455"
|
||||||
|
set -g pane-active-border-style "fg=#334455"
|
||||||
|
set -g status-position bottom
|
||||||
|
set -g status-left-length 0
|
||||||
|
set -g status-right-length 0
|
||||||
|
set -g status-left '[#I] #{pane_current_path}'
|
||||||
|
set -g status-right '%F | %R'
|
||||||
|
set -g status off
|
||||||
|
set -g set-titles on
|
||||||
|
set -g set-titles-string "#H - #T"
|
||||||
|
|
||||||
|
new -s0 -n 1
|
||||||
|
new-window -n 2
|
||||||
|
new-window -n 3
|
||||||
|
new-window -n 4
|
||||||
|
new-window -n 5
|
||||||
|
new-window -n 6
|
||||||
|
new-window -n 7
|
||||||
|
new-window -n 8
|
||||||
|
new-window -n 9
|
||||||
|
new-window -n 0
|
||||||
|
|
||||||
|
# vim:set ft=tmux:
|
2
.vault
Normal file
2
.vault
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
#token_helper = "/home/dln/bin/vault-token-helper"
|
||||||
|
|
|
@ -1,3 +0,0 @@
|
||||||
# Configuration and various sundries
|
|
||||||
|
|
||||||
IT in a box.
|
|
36
bin/git-st
Executable file
36
bin/git-st
Executable file
|
@ -0,0 +1,36 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
if git branchless query HEAD >/dev/null 2>&1; then
|
||||||
|
printf '\n ● \e[1m'
|
||||||
|
git branchless query HEAD
|
||||||
|
printf '\e[2;38;5;242m%*s\e[0m\n' "${COLUMNS:-$(tput cols)}" '' | tr ' ' '-'
|
||||||
|
fi
|
||||||
|
|
||||||
|
awk -vOFS='' '
|
||||||
|
NR==FNR {
|
||||||
|
all[i++] = $0;
|
||||||
|
difffiles[$1] = $0;
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
! ($2 in difffiles) {
|
||||||
|
print; next;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
gsub($2, difffiles[$2]);
|
||||||
|
print;
|
||||||
|
}
|
||||||
|
END {
|
||||||
|
if (NR != FNR) {
|
||||||
|
# Had diff output
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
# Had no diff output, just print lines from git status -sb
|
||||||
|
for (i in all) {
|
||||||
|
print all[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
' \
|
||||||
|
<(git diff --color --stat=$(($(tput cols) - 3)) HEAD | sed '$d; s/^ //') \
|
||||||
|
<(git -c color.status=always status -sb)
|
||||||
|
|
||||||
|
printf '\n'
|
364
bin/git-wtf
Executable file
364
bin/git-wtf
Executable file
|
@ -0,0 +1,364 @@
|
||||||
|
#!/usr/bin/env ruby
|
||||||
|
|
||||||
|
HELP = <<EOS
|
||||||
|
git-wtf displays the state of your repository in a readable, easy-to-scan
|
||||||
|
format. It's useful for getting a summary of how a branch relates to a remote
|
||||||
|
server, and for wrangling many topic branches.
|
||||||
|
|
||||||
|
git-wtf can show you:
|
||||||
|
- How a branch relates to the remote repo, if it's a tracking branch.
|
||||||
|
- How a branch relates to integration branches, if it's a feature branch.
|
||||||
|
- How a branch relates to the feature branches, if it's an integration
|
||||||
|
branch.
|
||||||
|
|
||||||
|
git-wtf is best used before a git push, or between a git fetch and a git
|
||||||
|
merge. Be sure to set color.ui to auto or yes for maximum viewing pleasure.
|
||||||
|
EOS
|
||||||
|
|
||||||
|
KEY = <<EOS
|
||||||
|
KEY:
|
||||||
|
() branch only exists locally
|
||||||
|
{} branch only exists on a remote repo
|
||||||
|
[] branch exists locally and remotely
|
||||||
|
|
||||||
|
x merge occurs both locally and remotely
|
||||||
|
~ merge occurs only locally
|
||||||
|
(space) branch isn't merged in
|
||||||
|
|
||||||
|
(It's possible for merges to occur remotely and not locally, of course, but
|
||||||
|
that's a less common case and git-wtf currently doesn't display anything
|
||||||
|
special for it.)
|
||||||
|
EOS
|
||||||
|
|
||||||
|
USAGE = <<EOS
|
||||||
|
Usage: git wtf [branch+] [options]
|
||||||
|
|
||||||
|
If [branch] is not specified, git-wtf will use the current branch. The possible
|
||||||
|
[options] are:
|
||||||
|
|
||||||
|
-l, --long include author info and date for each commit
|
||||||
|
-a, --all show all branches across all remote repos, not just
|
||||||
|
those from origin
|
||||||
|
-A, --all-commits show all commits, not just the first 5
|
||||||
|
-s, --short don't show commits
|
||||||
|
-k, --key show key
|
||||||
|
-r, --relations show relation to features / integration branches
|
||||||
|
--dump-config print out current configuration and exit
|
||||||
|
|
||||||
|
git-wtf uses some heuristics to determine which branches are integration
|
||||||
|
branches, and which are feature branches. (Specifically, it assumes the
|
||||||
|
integration branches are named "master", "next" and "edge".) If it guesses
|
||||||
|
incorrectly, you will have to create a .git-wtfrc file.
|
||||||
|
|
||||||
|
To start building a configuration file, run "git-wtf --dump-config >
|
||||||
|
.git-wtfrc" and edit it. The config file is a YAML file that specifies the
|
||||||
|
integration branches, any branches to ignore, and the max number of commits to
|
||||||
|
display when --all-commits isn't used. git-wtf will look for a .git-wtfrc file
|
||||||
|
starting in the current directory, and recursively up to the root.
|
||||||
|
|
||||||
|
IMPORTANT NOTE: all local branches referenced in .git-wtfrc must be prefixed
|
||||||
|
with heads/, e.g. "heads/master". Remote branches must be of the form
|
||||||
|
remotes/<remote>/<branch>.
|
||||||
|
EOS
|
||||||
|
|
||||||
|
COPYRIGHT = <<EOS
|
||||||
|
git-wtf Copyright 2008--2009 William Morgan <wmorgan at the masanjin dot nets>.
|
||||||
|
This program is free software: you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published by the Free
|
||||||
|
Software Foundation, either version 3 of the License, or (at your option)
|
||||||
|
any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||||
|
more details.
|
||||||
|
|
||||||
|
You can find the GNU General Public License at: http://www.gnu.org/licenses/
|
||||||
|
EOS
|
||||||
|
|
||||||
|
require 'yaml'
|
||||||
|
CONFIG_FN = ".git-wtfrc"
|
||||||
|
|
||||||
|
class Numeric; def pluralize s; "#{to_s} #{s}" + (self != 1 ? "s" : "") end end
|
||||||
|
|
||||||
|
if ARGV.delete("--help") || ARGV.delete("-h")
|
||||||
|
puts USAGE
|
||||||
|
exit
|
||||||
|
end
|
||||||
|
|
||||||
|
## poor man's trollop
|
||||||
|
$long = ARGV.delete("--long") || ARGV.delete("-l")
|
||||||
|
$short = ARGV.delete("--short") || ARGV.delete("-s")
|
||||||
|
$all = ARGV.delete("--all") || ARGV.delete("-a")
|
||||||
|
$all_commits = ARGV.delete("--all-commits") || ARGV.delete("-A")
|
||||||
|
$dump_config = ARGV.delete("--dump-config")
|
||||||
|
$key = ARGV.delete("--key") || ARGV.delete("-k")
|
||||||
|
$show_relations = ARGV.delete("--relations") || ARGV.delete("-r")
|
||||||
|
ARGV.each { |a| abort "Error: unknown argument #{a}." if a =~ /^--/ }
|
||||||
|
|
||||||
|
## search up the path for a file
|
||||||
|
def find_file fn
|
||||||
|
while true
|
||||||
|
return fn if File.exist? fn
|
||||||
|
fn2 = File.join("..", fn)
|
||||||
|
return nil if File.expand_path(fn2) == File.expand_path(fn)
|
||||||
|
fn = fn2
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
want_color = `git config color.wtf`
|
||||||
|
want_color = `git config color.ui` if want_color.empty?
|
||||||
|
$color = case want_color.chomp
|
||||||
|
when "true"; true
|
||||||
|
when "auto"; $stdout.tty?
|
||||||
|
end
|
||||||
|
|
||||||
|
def red s; $color ? "\033[31m#{s}\033[0m" : s end
|
||||||
|
def green s; $color ? "\033[32m#{s}\033[0m" : s end
|
||||||
|
def yellow s; $color ? "\033[33m#{s}\033[0m" : s end
|
||||||
|
def cyan s; $color ? "\033[36m#{s}\033[0m" : s end
|
||||||
|
def grey s; $color ? "\033[1;30m#{s}\033[0m" : s end
|
||||||
|
def purple s; $color ? "\033[35m#{s}\033[0m" : s end
|
||||||
|
|
||||||
|
## the set of commits in 'to' that aren't in 'from'.
|
||||||
|
## if empty, 'to' has been merged into 'from'.
|
||||||
|
def commits_between from, to
|
||||||
|
if $long
|
||||||
|
`git log --pretty=format:"- %s [#{yellow "%h"}] (#{purple "%ae"}; %ar)" #{from}..#{to}`
|
||||||
|
else
|
||||||
|
`git log --pretty=format:"- %s [#{yellow "%h"}]" #{from}..#{to}`
|
||||||
|
end.split(/[\r\n]+/)
|
||||||
|
end
|
||||||
|
|
||||||
|
def show_commits commits, prefix=" "
|
||||||
|
if commits.empty?
|
||||||
|
puts "#{prefix} none"
|
||||||
|
else
|
||||||
|
max = $all_commits ? commits.size : $config["max_commits"]
|
||||||
|
max -= 1 if max == commits.size - 1 # never show "and 1 more"
|
||||||
|
commits[0 ... max].each { |c| puts "#{prefix}#{c}" }
|
||||||
|
puts grey("#{prefix}... and #{commits.size - max} more (use -A to see all).") if commits.size > max
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def ahead_behind_string ahead, behind
|
||||||
|
[ahead.empty? ? nil : "#{ahead.size.pluralize 'commit'} ahead",
|
||||||
|
behind.empty? ? nil : "#{behind.size.pluralize 'commit'} behind"].
|
||||||
|
compact.join("; ")
|
||||||
|
end
|
||||||
|
|
||||||
|
def widget merged_in, remote_only=false, local_only=false, local_only_merge=false
|
||||||
|
left, right = case
|
||||||
|
when remote_only; %w({ })
|
||||||
|
when local_only; %w{( )}
|
||||||
|
else %w([ ])
|
||||||
|
end
|
||||||
|
middle = case
|
||||||
|
when merged_in && local_only_merge; green("~")
|
||||||
|
when merged_in; green("x")
|
||||||
|
else " "
|
||||||
|
end
|
||||||
|
print left, middle, right
|
||||||
|
end
|
||||||
|
|
||||||
|
def show b
|
||||||
|
have_both = b[:local_branch] && b[:remote_branch]
|
||||||
|
|
||||||
|
pushc, pullc, oosync = if have_both
|
||||||
|
[x = commits_between(b[:remote_branch], b[:local_branch]),
|
||||||
|
y = commits_between(b[:local_branch], b[:remote_branch]),
|
||||||
|
!x.empty? && !y.empty?]
|
||||||
|
end
|
||||||
|
|
||||||
|
if b[:local_branch]
|
||||||
|
puts "Local branch: " + green(b[:local_branch].sub(/^heads\//, ""))
|
||||||
|
|
||||||
|
if have_both
|
||||||
|
if pushc.empty?
|
||||||
|
puts "#{widget true} in sync with remote"
|
||||||
|
else
|
||||||
|
action = oosync ? "push after rebase / merge" : "push"
|
||||||
|
puts "#{widget false} NOT in sync with remote (you should #{action})"
|
||||||
|
show_commits pushc unless $short
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if b[:remote_branch]
|
||||||
|
puts "Remote branch: #{cyan b[:remote_branch]} (#{b[:remote_url]})"
|
||||||
|
|
||||||
|
if have_both
|
||||||
|
if pullc.empty?
|
||||||
|
puts "#{widget true} in sync with local"
|
||||||
|
else
|
||||||
|
action = pushc.empty? ? "merge" : "rebase / merge"
|
||||||
|
puts "#{widget false} NOT in sync with local (you should #{action})"
|
||||||
|
show_commits pullc unless $short
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
puts "\n#{red "WARNING"}: local and remote branches have diverged. A merge will occur unless you rebase." if oosync
|
||||||
|
end
|
||||||
|
|
||||||
|
def show_relations b, all_branches
|
||||||
|
ibs, fbs = all_branches.partition { |name, br| $config["integration-branches"].include?(br[:local_branch]) || $config["integration-branches"].include?(br[:remote_branch]) }
|
||||||
|
if $config["integration-branches"].include? b[:local_branch]
|
||||||
|
puts "\nFeature branches:" unless fbs.empty?
|
||||||
|
fbs.each do |name, br|
|
||||||
|
next if $config["ignore"].member?(br[:local_branch]) || $config["ignore"].member?(br[:remote_branch])
|
||||||
|
next if br[:ignore]
|
||||||
|
local_only = br[:remote_branch].nil?
|
||||||
|
remote_only = br[:local_branch].nil?
|
||||||
|
name = if local_only
|
||||||
|
purple br[:name]
|
||||||
|
elsif remote_only
|
||||||
|
cyan br[:name]
|
||||||
|
else
|
||||||
|
green br[:name]
|
||||||
|
end
|
||||||
|
|
||||||
|
## for remote_only branches, we'll compute wrt the remote branch head. otherwise, we'll
|
||||||
|
## use the local branch head.
|
||||||
|
head = remote_only ? br[:remote_branch] : br[:local_branch]
|
||||||
|
|
||||||
|
remote_ahead = b[:remote_branch] ? commits_between(b[:remote_branch], head) : []
|
||||||
|
local_ahead = b[:local_branch] ? commits_between(b[:local_branch], head) : []
|
||||||
|
|
||||||
|
if local_ahead.empty? && remote_ahead.empty?
|
||||||
|
puts "#{widget true, remote_only, local_only} #{name} #{local_only ? "(local-only) " : ""}is merged in"
|
||||||
|
elsif local_ahead.empty?
|
||||||
|
puts "#{widget true, remote_only, local_only, true} #{name} merged in (only locally)"
|
||||||
|
else
|
||||||
|
behind = commits_between head, (br[:local_branch] || br[:remote_branch])
|
||||||
|
ahead = remote_only ? remote_ahead : local_ahead
|
||||||
|
puts "#{widget false, remote_only, local_only} #{name} #{local_only ? "(local-only) " : ""}is NOT merged in (#{ahead_behind_string ahead, behind})"
|
||||||
|
show_commits ahead unless $short
|
||||||
|
end
|
||||||
|
end
|
||||||
|
else
|
||||||
|
puts "\nIntegration branches:" unless ibs.empty? # unlikely
|
||||||
|
ibs.sort_by { |v, br| v }.each do |v, br|
|
||||||
|
next if $config["ignore"].member?(br[:local_branch]) || $config["ignore"].member?(br[:remote_branch])
|
||||||
|
next if br[:ignore]
|
||||||
|
local_only = br[:remote_branch].nil?
|
||||||
|
remote_only = br[:local_branch].nil?
|
||||||
|
name = remote_only ? cyan(br[:name]) : green(br[:name])
|
||||||
|
|
||||||
|
ahead = commits_between v, (b[:local_branch] || b[:remote_branch])
|
||||||
|
if ahead.empty?
|
||||||
|
puts "#{widget true, local_only} merged into #{name}"
|
||||||
|
else
|
||||||
|
#behind = commits_between b[:local_branch], v
|
||||||
|
puts "#{widget false, local_only} NOT merged into #{name} (#{ahead.size.pluralize 'commit'} ahead)"
|
||||||
|
show_commits ahead unless $short
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
#### EXECUTION STARTS HERE ####
|
||||||
|
|
||||||
|
## find config file and load it
|
||||||
|
$config = { "integration-branches" => %w(heads/master heads/next heads/edge), "ignore" => [], "max_commits" => 5 }.merge begin
|
||||||
|
fn = find_file CONFIG_FN
|
||||||
|
if fn && (h = YAML::load_file(fn)) # yaml turns empty files into false
|
||||||
|
h["integration-branches"] ||= h["versions"] # support old nomenclature
|
||||||
|
h
|
||||||
|
else
|
||||||
|
{}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if $dump_config
|
||||||
|
puts $config.to_yaml
|
||||||
|
exit
|
||||||
|
end
|
||||||
|
|
||||||
|
## first, index registered remotes
|
||||||
|
remotes = `git config --get-regexp ^remote\.\*\.url`.split(/[\r\n]+/).inject({}) do |hash, l|
|
||||||
|
l =~ /^remote\.(.+?)\.url (.+)$/ or next hash
|
||||||
|
hash[$1] ||= $2
|
||||||
|
hash
|
||||||
|
end
|
||||||
|
|
||||||
|
## next, index followed branches
|
||||||
|
branches = `git config --get-regexp ^branch\.`.split(/[\r\n]+/).inject({}) do |hash, l|
|
||||||
|
case l
|
||||||
|
when /branch\.(.*?)\.remote (.+)/
|
||||||
|
name, remote = $1, $2
|
||||||
|
|
||||||
|
hash[name] ||= {}
|
||||||
|
hash[name].merge! :remote => remote, :remote_url => remotes[remote]
|
||||||
|
when /branch\.(.*?)\.merge ((refs\/)?heads\/)?(.+)/
|
||||||
|
name, remote_branch = $1, $4
|
||||||
|
hash[name] ||= {}
|
||||||
|
hash[name].merge! :remote_mergepoint => remote_branch
|
||||||
|
end
|
||||||
|
hash
|
||||||
|
end
|
||||||
|
|
||||||
|
## finally, index all branches
|
||||||
|
remote_branches = {}
|
||||||
|
`git show-ref`.split(/[\r\n]+/).each do |l|
|
||||||
|
sha1, ref = l.chomp.split " refs/"
|
||||||
|
|
||||||
|
if ref =~ /^heads\/(.+)$/ # local branch
|
||||||
|
name = $1
|
||||||
|
next if name == "HEAD"
|
||||||
|
branches[name] ||= {}
|
||||||
|
branches[name].merge! :name => name, :local_branch => ref
|
||||||
|
elsif ref =~ /^remotes\/(.+?)\/(.+)$/ # remote branch
|
||||||
|
remote, name = $1, $2
|
||||||
|
remote_branches["#{remote}/#{name}"] = true
|
||||||
|
next if name == "HEAD"
|
||||||
|
ignore = !($all || remote == "origin")
|
||||||
|
|
||||||
|
branch = name
|
||||||
|
if branches[name] && branches[name][:remote] == remote
|
||||||
|
# nothing
|
||||||
|
else
|
||||||
|
name = "#{remote}/#{branch}"
|
||||||
|
end
|
||||||
|
|
||||||
|
branches[name] ||= {}
|
||||||
|
branches[name].merge! :name => name, :remote => remote, :remote_branch => "#{remote}/#{branch}", :remote_url => remotes[remote], :ignore => ignore
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
## assemble remotes
|
||||||
|
branches.each do |k, b|
|
||||||
|
next unless b[:remote] && b[:remote_mergepoint]
|
||||||
|
b[:remote_branch] = if b[:remote] == "."
|
||||||
|
b[:remote_mergepoint]
|
||||||
|
else
|
||||||
|
t = "#{b[:remote]}/#{b[:remote_mergepoint]}"
|
||||||
|
remote_branches[t] && t # only if it's still alive
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
show_dirty = ARGV.empty?
|
||||||
|
targets = if ARGV.empty?
|
||||||
|
[`git symbolic-ref HEAD`.chomp.sub(/^refs\/heads\//, "")]
|
||||||
|
else
|
||||||
|
ARGV.map { |x| x.sub(/^heads\//, "") }
|
||||||
|
end.map { |t| branches[t] or abort "Error: can't find branch #{t.inspect}." }
|
||||||
|
|
||||||
|
targets.each do |t|
|
||||||
|
show t
|
||||||
|
show_relations t, branches if $show_relations || t[:remote_branch].nil?
|
||||||
|
end
|
||||||
|
|
||||||
|
modified = show_dirty && `git ls-files -m` != ""
|
||||||
|
uncommitted = show_dirty && `git diff-index --cached HEAD` != ""
|
||||||
|
|
||||||
|
if $key
|
||||||
|
puts
|
||||||
|
puts KEY
|
||||||
|
end
|
||||||
|
|
||||||
|
puts if modified || uncommitted
|
||||||
|
puts "#{red "NOTE"}: working directory contains modified files." if modified
|
||||||
|
puts "#{red "NOTE"}: staging area contains staged but uncommitted files." if uncommitted
|
||||||
|
|
||||||
|
# the end!
|
1
bin/ktoolbox
Symbolic link
1
bin/ktoolbox
Symbolic link
|
@ -0,0 +1 @@
|
||||||
|
/home/dln/src/github.com/dln/ktoolbox/ktoolbox
|
15
bin/pst
Executable file
15
bin/pst
Executable file
|
@ -0,0 +1,15 @@
|
||||||
|
#!/bin/bash
|
||||||
|
set -eo pipefail
|
||||||
|
|
||||||
|
URL="https://paste.aarn.shelman.io"
|
||||||
|
|
||||||
|
FILEPATH="$1"
|
||||||
|
FILENAME=$(basename -- "$FILEPATH")
|
||||||
|
EXTENSION="${FILENAME##*.}"
|
||||||
|
|
||||||
|
RESPONSE=$(curl -s --data-binary "@${FILEPATH:-/dev/stdin}" --url $URL)
|
||||||
|
PASTELINK="$URL$RESPONSE"
|
||||||
|
|
||||||
|
[ -z "$EXTENSION" ] &&
|
||||||
|
echo "$PASTELINK" ||
|
||||||
|
echo "$PASTELINK.$EXTENSION"
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue