Migrate to home-manager
This commit is contained in:
parent
6781866277
commit
2f6d4e1d3c
147 changed files with 6181 additions and 6078 deletions
|
@ -1,77 +0,0 @@
|
||||||
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 }
|
|
|
@ -1,205 +0,0 @@
|
||||||
## 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"]
|
|
|
@ -1,157 +0,0 @@
|
||||||
[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
|
|
|
@ -1,3 +0,0 @@
|
||||||
--italic-text=always
|
|
||||||
--plain
|
|
||||||
--theme=ansi
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,40 +0,0 @@
|
||||||
show_selection_mark: true
|
|
||||||
true_colors: true
|
|
||||||
icon_theme: nerdfont
|
|
||||||
|
|
||||||
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: true
|
|
||||||
content_search_max_file_size: 10MB
|
|
||||||
enable_kitty_keyboard: true
|
|
||||||
lines_before_match_in_preview: 1
|
|
||||||
lines_after_match_in_preview: 1
|
|
||||||
|
|
||||||
imports: [
|
|
||||||
verbs.hjson
|
|
||||||
|
|
||||||
{
|
|
||||||
luma: dark
|
|
||||||
file: skins/dieter-dark.hjson
|
|
||||||
}
|
|
||||||
{
|
|
||||||
luma: [
|
|
||||||
light
|
|
||||||
unknown
|
|
||||||
]
|
|
||||||
file: skins/dieter-light.hjson
|
|
||||||
}
|
|
||||||
]
|
|
|
@ -1 +0,0 @@
|
||||||
/home/dln/.local/share/broot/launcher/bash/1
|
|
|
@ -1,4 +0,0 @@
|
||||||
|
|
||||||
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
|
|
|
@ -1,17 +0,0 @@
|
||||||
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
|
|
||||||
}
|
|
||||||
]
|
|
||||||
|
|
|
@ -1,84 +0,0 @@
|
||||||
###############################################################
|
|
||||||
# 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(0) None
|
|
||||||
tree: gray(20) None / gray(18) None
|
|
||||||
file: gray(1) None / gray(8) None
|
|
||||||
directory: gray(4) None Bold / ansi(4) 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(20)
|
|
||||||
char_match: None ansi(226)
|
|
||||||
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)
|
|
||||||
}
|
|
|
@ -1,184 +0,0 @@
|
||||||
###############################################################
|
|
||||||
# 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: edit
|
|
||||||
key: enter
|
|
||||||
shortcut: e
|
|
||||||
execution: "wezterm-edit-helper {file}"
|
|
||||||
apply_to: text_file
|
|
||||||
leave_broot: true
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
|
||||||
invocation: nvim
|
|
||||||
key: enter
|
|
||||||
apply_to: text_file
|
|
||||||
execution: "wezterm-edit-helper {file}"
|
|
||||||
leave_broot: true
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
|
||||||
invocation: broot_home
|
|
||||||
key: ctrl-7
|
|
||||||
execution: br $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
|
|
||||||
# }
|
|
||||||
]
|
|
||||||
|
|
|
@ -1,7 +0,0 @@
|
||||||
[worker.oci]
|
|
||||||
enabled = false
|
|
||||||
|
|
||||||
[worker.containerd]
|
|
||||||
enabled = true
|
|
||||||
rootless = true
|
|
||||||
address = "/run/user/1000/containerd/containerd.sock"
|
|
|
@ -1 +0,0 @@
|
||||||
--enable-features=OzonePlatform --ozone-platform=wayland
|
|
|
@ -1,769 +0,0 @@
|
||||||
# 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" }
|
|
|
@ -1,14 +0,0 @@
|
||||||
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 +0,0 @@
|
||||||
DFT_BACKGROUND=light
|
|
|
@ -1 +0,0 @@
|
||||||
DOCKER_HOST=unix://${XDG_RUNTIME_DIR}/podman/podman.sock
|
|
|
@ -1 +0,0 @@
|
||||||
GOPROXY=https://athens.aarn.shelman.io
|
|
|
@ -1,2 +0,0 @@
|
||||||
MOZ_ENABLE_WAYLAND=1
|
|
||||||
MOZ_DISABLE_RDD_SANDBOX=1
|
|
|
@ -1,3 +0,0 @@
|
||||||
OTEL_EXPORTER_OTLP_ENDPOINT=https://otel.aarn.shelman.io
|
|
||||||
OTEL_RESOURCE_ATTRIBUTES=instance=dln-dev
|
|
||||||
OTEL_LOG_LEVEL=debug
|
|
|
@ -1 +0,0 @@
|
||||||
SSH_AUTH_SOCK=${XDG_RUNTIME_DIR}/gcr/ssh
|
|
|
@ -1,6 +0,0 @@
|
||||||
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
|
|
|
@ -1,10 +0,0 @@
|
||||||
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
|
|
|
@ -1,91 +0,0 @@
|
||||||
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
|
|
||||||
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
|
|
||||||
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
|
|
|
@ -1,56 +0,0 @@
|
||||||
# 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
|
|
|
@ -1,37 +0,0 @@
|
||||||
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'
|
|
|
@ -1,100 +0,0 @@
|
||||||
# =============================================================================
|
|
||||||
#
|
|
||||||
# Utility functions for zoxide.
|
|
||||||
#
|
|
||||||
|
|
||||||
# pwd based on the value of _ZO_RESOLVE_SYMLINKS.
|
|
||||||
function __zoxide_pwd
|
|
||||||
builtin pwd -L
|
|
||||||
end
|
|
||||||
|
|
||||||
# A copy of fish's internal cd function. This makes it possible to use
|
|
||||||
# `alias cd=z` without causing an infinite loop.
|
|
||||||
if ! builtin functions --query __zoxide_cd_internal
|
|
||||||
if builtin functions --query cd
|
|
||||||
builtin functions --copy cd __zoxide_cd_internal
|
|
||||||
else
|
|
||||||
alias __zoxide_cd_internal='builtin cd'
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
# cd + custom logic based on the value of _ZO_ECHO.
|
|
||||||
function __zoxide_cd
|
|
||||||
__zoxide_cd_internal $argv
|
|
||||||
end
|
|
||||||
|
|
||||||
# =============================================================================
|
|
||||||
#
|
|
||||||
# Hook configuration for zoxide.
|
|
||||||
#
|
|
||||||
|
|
||||||
# Initialize hook to add new entries to the database.
|
|
||||||
function __zoxide_hook --on-variable PWD
|
|
||||||
test -z "$fish_private_mode"
|
|
||||||
and command zoxide add -- (__zoxide_pwd)
|
|
||||||
end
|
|
||||||
|
|
||||||
# =============================================================================
|
|
||||||
#
|
|
||||||
# When using zoxide with --no-cmd, alias these internal functions as desired.
|
|
||||||
#
|
|
||||||
|
|
||||||
if test -z $__zoxide_z_prefix
|
|
||||||
set __zoxide_z_prefix 'z!'
|
|
||||||
end
|
|
||||||
set __zoxide_z_prefix_regex ^(string escape --style=regex $__zoxide_z_prefix)
|
|
||||||
|
|
||||||
# Jump to a directory using only keywords.
|
|
||||||
function __zoxide_z
|
|
||||||
set -l argc (count $argv)
|
|
||||||
if test $argc -eq 0
|
|
||||||
__zoxide_cd $HOME
|
|
||||||
else if test "$argv" = -
|
|
||||||
__zoxide_cd -
|
|
||||||
else if test $argc -eq 1 -a -d $argv[1]
|
|
||||||
__zoxide_cd $argv[1]
|
|
||||||
else if set -l result (string replace --regex $__zoxide_z_prefix_regex '' $argv[-1]); and test -n $result
|
|
||||||
__zoxide_cd $result
|
|
||||||
else
|
|
||||||
set -l result (command zoxide query --exclude (__zoxide_pwd) -- $argv)
|
|
||||||
and __zoxide_cd $result
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
# Completions.
|
|
||||||
function __zoxide_z_complete
|
|
||||||
set -l tokens (commandline --current-process --tokenize)
|
|
||||||
set -l curr_tokens (commandline --cut-at-cursor --current-process --tokenize)
|
|
||||||
|
|
||||||
if test (count $tokens) -le 2 -a (count $curr_tokens) -eq 1
|
|
||||||
# If there are < 2 arguments, use `cd` completions.
|
|
||||||
complete --do-complete "'' "(commandline --cut-at-cursor --current-token) | string match --regex '.*/$'
|
|
||||||
else if test (count $tokens) -eq (count $curr_tokens); and ! string match --quiet --regex $__zoxide_z_prefix_regex. $tokens[-1]
|
|
||||||
# If the last argument is empty and the one before doesn't start with
|
|
||||||
# $__zoxide_z_prefix, use interactive selection.
|
|
||||||
set -l query $tokens[2..-1]
|
|
||||||
set -l result (zoxide query --exclude (__zoxide_pwd) --interactive -- $query)
|
|
||||||
and echo $__zoxide_z_prefix$result
|
|
||||||
commandline --function repaint
|
|
||||||
end
|
|
||||||
end
|
|
||||||
complete --command __zoxide_z --no-files --arguments '(__zoxide_z_complete)'
|
|
||||||
|
|
||||||
# Jump to a directory using interactive search.
|
|
||||||
function __zoxide_zi
|
|
||||||
set -l result (command zoxide query --interactive -- $argv)
|
|
||||||
and __zoxide_cd $result
|
|
||||||
end
|
|
||||||
|
|
||||||
# =============================================================================
|
|
||||||
#
|
|
||||||
# Commands for zoxide. Disable these using --no-cmd.
|
|
||||||
#
|
|
||||||
|
|
||||||
abbr --erase cd &>/dev/null
|
|
||||||
alias cd=__zoxide_z
|
|
||||||
|
|
||||||
abbr --erase cdi &>/dev/null
|
|
||||||
alias cdi=__zoxide_zi
|
|
||||||
|
|
||||||
set -gx _ZO_EXCLUDE_DIRS "$HOME/media:$HOME/media/*"
|
|
|
@ -1,71 +0,0 @@
|
||||||
set fish_greeting
|
|
||||||
set fish_emoji_width 2
|
|
||||||
|
|
||||||
fish_add_path $HOME/.cargo/bin
|
|
||||||
fish_add_path $HOME/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
|
|
||||||
|
|
||||||
bind \cg __zoxide_zi
|
|
||||||
|
|
||||||
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)
|
|
||||||
set _dir $(br -f --conf "$HOME/.config/broot/conf.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
|
|
|
@ -1,48 +0,0 @@
|
||||||
# This file contains fish universal variable definitions.
|
|
||||||
# VERSION: 3.0
|
|
||||||
SETUVAR __fish_initialized:3400
|
|
||||||
SETUVAR fish_color_autosuggestion:\x2d\x2ditalics\x1e\x2d\x2dbold\x1ered
|
|
||||||
SETUVAR fish_color_cancel:\x1d
|
|
||||||
SETUVAR fish_color_command:\x2d\x2dbold
|
|
||||||
SETUVAR fish_color_comment:\x2d\x2ditalic\x1e\x2d\x2ddim
|
|
||||||
SETUVAR fish_color_cwd:normal
|
|
||||||
SETUVAR fish_color_cwd_root:normal
|
|
||||||
SETUVAR fish_color_end:\x1d
|
|
||||||
SETUVAR fish_color_error:\x1d
|
|
||||||
SETUVAR fish_color_escape:\x1d
|
|
||||||
SETUVAR fish_color_gray:6c7086
|
|
||||||
SETUVAR fish_color_history_current:\x1d
|
|
||||||
SETUVAR fish_color_host:normal
|
|
||||||
SETUVAR fish_color_host_remote:yellow
|
|
||||||
SETUVAR fish_color_keyword:\x1d
|
|
||||||
SETUVAR fish_color_match:\x1d
|
|
||||||
SETUVAR fish_color_normal:normal
|
|
||||||
SETUVAR fish_color_operator:\x1d
|
|
||||||
SETUVAR fish_color_option:\x1d
|
|
||||||
SETUVAR fish_color_param:normal
|
|
||||||
SETUVAR fish_color_quote:\x2d\x2ditalics
|
|
||||||
SETUVAR fish_color_redirection:\x1d
|
|
||||||
SETUVAR fish_color_search_match:\x2dr
|
|
||||||
SETUVAR fish_color_selection:\x2dr
|
|
||||||
SETUVAR fish_color_status:normal
|
|
||||||
SETUVAR fish_color_string:\x2d\x2ditalics
|
|
||||||
SETUVAR fish_color_user:normal
|
|
||||||
SETUVAR fish_color_valid_path:\x1d
|
|
||||||
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:normal
|
|
||||||
SETUVAR fish_pager_color_description:brblack
|
|
||||||
SETUVAR fish_pager_color_prefix:\x2d\x2dunderline
|
|
||||||
SETUVAR fish_pager_color_progress:brblack
|
|
||||||
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:\x2dr
|
|
||||||
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/\x2enix\x2dprofile/bin\x1e/home/dln/\x2ekrew/bin\x1e/home/dln/bin\x1e/home/dln/\x2ecargo/bin
|
|
||||||
SETUVAR --export theme:Catppuccin\x20Latte
|
|
|
@ -1,30 +0,0 @@
|
||||||
# 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
|
|
|
@ -1,3 +0,0 @@
|
||||||
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=
|
|
|
@ -1,3 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
set -euo pipefail
|
|
||||||
ssh-add -L | awk '/^sk-ssh/ { print "key::" $1 " " $2 }'
|
|
|
@ -1,52 +0,0 @@
|
||||||
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"
|
|
|
@ -1,46 +0,0 @@
|
||||||
[[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"]
|
|
||||||
|
|
|
@ -1,193 +0,0 @@
|
||||||
|
|
||||||
# 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'
|
|
||||||
|
|
|
@ -1,42 +0,0 @@
|
||||||
k9s:
|
|
||||||
liveViewAutoRefresh: false
|
|
||||||
screenDumpDir: /home/dln/.local/state/k9s/screen-dumps
|
|
||||||
refreshRate: 2
|
|
||||||
maxConnRetry: 5
|
|
||||||
readOnly: false
|
|
||||||
noExitOnCtrlC: false
|
|
||||||
ui:
|
|
||||||
enableMouse: false
|
|
||||||
headless: true
|
|
||||||
logoless: true
|
|
||||||
crumbsless: true
|
|
||||||
reactive: false
|
|
||||||
noIcons: false
|
|
||||||
defaultsToFullScreen: true
|
|
||||||
skin: dieter
|
|
||||||
skipLatestRevCheck: false
|
|
||||||
disablePodCounting: false
|
|
||||||
shellPod:
|
|
||||||
image: busybox:1.35.0
|
|
||||||
namespace: default
|
|
||||||
limits:
|
|
||||||
cpu: 100m
|
|
||||||
memory: 100Mi
|
|
||||||
imageScans:
|
|
||||||
enable: false
|
|
||||||
exclusions:
|
|
||||||
namespaces: []
|
|
||||||
labels: {}
|
|
||||||
logger:
|
|
||||||
tail: 100
|
|
||||||
buffer: 5000
|
|
||||||
sinceSeconds: -1
|
|
||||||
textWrap: false
|
|
||||||
showTime: false
|
|
||||||
thresholds:
|
|
||||||
cpu:
|
|
||||||
critical: 90
|
|
||||||
warn: 70
|
|
||||||
memory:
|
|
||||||
critical: 90
|
|
||||||
warn: 70
|
|
|
@ -1,22 +0,0 @@
|
||||||
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
|
|
|
@ -1,76 +0,0 @@
|
||||||
# Dieter
|
|
||||||
|
|
||||||
k9s:
|
|
||||||
body:
|
|
||||||
fgColor: default
|
|
||||||
bgColor: default
|
|
||||||
logoColor: default
|
|
||||||
prompt:
|
|
||||||
fgColor: default
|
|
||||||
bgColor: default
|
|
||||||
suggestColor: default
|
|
||||||
info:
|
|
||||||
fgColor: default
|
|
||||||
sectionColor: default
|
|
||||||
dialog:
|
|
||||||
fgColor: default
|
|
||||||
bgColor: default
|
|
||||||
buttonFgColor: default
|
|
||||||
buttonBgColor: default
|
|
||||||
buttonFocusFgColor: white
|
|
||||||
buttonFocusBgColor: darkblue
|
|
||||||
labelFgColor: default
|
|
||||||
fieldFgColor: default
|
|
||||||
frame:
|
|
||||||
border:
|
|
||||||
fgColor: default
|
|
||||||
focusColor: default
|
|
||||||
menu:
|
|
||||||
fgColor: default
|
|
||||||
keyColor: default
|
|
||||||
numKeyColor: default
|
|
||||||
crumbs:
|
|
||||||
fgColor: default
|
|
||||||
bgColor: default
|
|
||||||
activeColor: default
|
|
||||||
status:
|
|
||||||
newColor: default
|
|
||||||
modifyColor: default
|
|
||||||
addColor: default
|
|
||||||
errorColor: red
|
|
||||||
highlightColor: default
|
|
||||||
killColor: default
|
|
||||||
completedColor: default
|
|
||||||
title:
|
|
||||||
fgColor: default
|
|
||||||
bgColor: default
|
|
||||||
highlightColor: default
|
|
||||||
counterColor: default
|
|
||||||
filterColor: default
|
|
||||||
views:
|
|
||||||
table:
|
|
||||||
fgColor: default
|
|
||||||
bgColor: default
|
|
||||||
cursorFgColor: teal
|
|
||||||
cursorBgColor: darkblue
|
|
||||||
header:
|
|
||||||
fgColor: default
|
|
||||||
bgColor: default
|
|
||||||
sorterColor: blue
|
|
||||||
xray:
|
|
||||||
fgColor: default
|
|
||||||
bgColor: default
|
|
||||||
cursorColor: blue
|
|
||||||
graphicColor: blue
|
|
||||||
yaml:
|
|
||||||
keyColor: default
|
|
||||||
colonColor: default
|
|
||||||
valueColor: default
|
|
||||||
logs:
|
|
||||||
fgColor: default
|
|
||||||
bgColor: default
|
|
||||||
indicator:
|
|
||||||
fgColor: default
|
|
||||||
bgColor: default
|
|
||||||
toggleOnColor: default
|
|
||||||
toggleOffColor: default
|
|
|
@ -1,3 +0,0 @@
|
||||||
debug_full = false
|
|
||||||
snapshotter = "native"
|
|
||||||
insecure_registry = false
|
|
|
@ -1,24 +0,0 @@
|
||||||
{
|
|
||||||
"extras": [
|
|
||||||
"lazyvim.plugins.extras.dap.core",
|
|
||||||
"lazyvim.plugins.extras.formatting.prettier",
|
|
||||||
"lazyvim.plugins.extras.lang.go",
|
|
||||||
"lazyvim.plugins.extras.lang.json",
|
|
||||||
"lazyvim.plugins.extras.lang.markdown",
|
|
||||||
"lazyvim.plugins.extras.lang.nix",
|
|
||||||
"lazyvim.plugins.extras.lang.rust",
|
|
||||||
"lazyvim.plugins.extras.lang.toml",
|
|
||||||
"lazyvim.plugins.extras.lang.typescript",
|
|
||||||
"lazyvim.plugins.extras.lang.yaml",
|
|
||||||
"lazyvim.plugins.extras.lsp.none-ls",
|
|
||||||
"lazyvim.plugins.extras.test.core",
|
|
||||||
"lazyvim.plugins.extras.ui.edgy",
|
|
||||||
"lazyvim.plugins.extras.ui.treesitter-context",
|
|
||||||
"lazyvim.plugins.extras.util.gitui",
|
|
||||||
"lazyvim.plugins.extras.util.project"
|
|
||||||
],
|
|
||||||
"news": {
|
|
||||||
"NEWS.md": "6077"
|
|
||||||
},
|
|
||||||
"version": 6
|
|
||||||
}
|
|
|
@ -1,71 +0,0 @@
|
||||||
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.49,
|
|
||||||
-- 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,
|
|
||||||
},
|
|
||||||
}
|
|
|
@ -1,90 +0,0 @@
|
||||||
return {
|
|
||||||
{
|
|
||||||
"folke/which-key.nvim",
|
|
||||||
opts = function(_, opts)
|
|
||||||
if LazyVim.has("noice.nvim") then
|
|
||||||
opts.defaults["<leader>o"] = { name = "+overseer" }
|
|
||||||
end
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
"folke/edgy.nvim",
|
|
||||||
optional = true,
|
|
||||||
opts = function(_, opts)
|
|
||||||
opts.right = opts.right or {}
|
|
||||||
table.insert(opts.right, {
|
|
||||||
title = "Overseer",
|
|
||||||
ft = "OverseerList",
|
|
||||||
open = function()
|
|
||||||
require("overseer").open()
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
"nvim-neotest/neotest",
|
|
||||||
dependencies = "stevearc/overseer.nvim",
|
|
||||||
opts = function(_, opts)
|
|
||||||
local consumers = opts.consumers or {}
|
|
||||||
consumers.overseer = require("neotest.consumers.overseer")
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
"stevearc/overseer.nvim",
|
|
||||||
cmd = {
|
|
||||||
"OverseerOpen",
|
|
||||||
"OverseerClose",
|
|
||||||
"OverseerToggle",
|
|
||||||
"OverseerSaveBundle",
|
|
||||||
"OverseerLoadBundle",
|
|
||||||
"OverseerDeleteBundle",
|
|
||||||
"OverseerRunCmd",
|
|
||||||
"OverseerRun",
|
|
||||||
"OverseerInfo",
|
|
||||||
"OverseerBuild",
|
|
||||||
"OverseerQuickAction",
|
|
||||||
"OverseerTaskAction",
|
|
||||||
"OverseerClearCache",
|
|
||||||
},
|
|
||||||
dependencies = "nvim-telescope/telescope.nvim",
|
|
||||||
opts = {
|
|
||||||
dap = false,
|
|
||||||
task_list = {
|
|
||||||
bindings = {
|
|
||||||
["<C-h>"] = false,
|
|
||||||
["<C-j>"] = false,
|
|
||||||
["<C-k>"] = false,
|
|
||||||
["<C-l>"] = false,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
form = {
|
|
||||||
win_opts = {
|
|
||||||
winblend = 0,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
confirm = {
|
|
||||||
win_opts = {
|
|
||||||
winblend = 0,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
task_win = {
|
|
||||||
win_opts = {
|
|
||||||
winblend = 0,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
-- stylua: ignore
|
|
||||||
keys = {
|
|
||||||
{ "<leader>ow", "<cmd>OverseerToggle<cr>", desc = "Task list" },
|
|
||||||
{ "<leader>oo", "<cmd>OverseerRun<cr>", desc = "Run task" },
|
|
||||||
{ "<leader>oq", "<cmd>OverseerQuickAction<cr>", desc = "Action recent task" },
|
|
||||||
{ "<leader>oi", "<cmd>OverseerInfo<cr>", desc = "Overseer Info" },
|
|
||||||
{ "<leader>ob", "<cmd>OverseerBuild<cr>", desc = "Task builder" },
|
|
||||||
{ "<leader>ot", "<cmd>OverseerTaskAction<cr>", desc = "Task action" },
|
|
||||||
{ "<leader>oc", "<cmd>OverseerClearCache<cr>", desc = "Clear cache" },
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
|
@ -1,10 +0,0 @@
|
||||||
#rytographically
|
|
||||||
crytographically/!
|
|
||||||
OIDC
|
|
||||||
Kubernetes
|
|
||||||
auth
|
|
||||||
JWT
|
|
||||||
PKCE
|
|
||||||
OPA
|
|
||||||
#askfile
|
|
||||||
Taskfile/!
|
|
Binary file not shown.
|
@ -1,8 +0,0 @@
|
||||||
Include = /etc/paru.conf
|
|
||||||
|
|
||||||
[options]
|
|
||||||
RemoveMake = ask
|
|
||||||
SkipReview
|
|
||||||
|
|
||||||
[bin]
|
|
||||||
Sudo = doas
|
|
|
@ -1,10 +0,0 @@
|
||||||
--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
|
|
|
@ -1,22 +0,0 @@
|
||||||
[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 = ""
|
|
||||||
|
|
|
@ -1,77 +0,0 @@
|
||||||
"$schema" = 'https://starship.rs/config-schema.json'
|
|
||||||
|
|
||||||
add_newline = true
|
|
||||||
|
|
||||||
format = """\
|
|
||||||
$fill\
|
|
||||||
${custom.pwd}\
|
|
||||||
$line_break\
|
|
||||||
$hostname\
|
|
||||||
$directory\
|
|
||||||
($character)\
|
|
||||||
"""
|
|
||||||
|
|
||||||
right_format = """\
|
|
||||||
$cmd_duration\
|
|
||||||
$git_branch$git_commit$git_status$git_state\
|
|
||||||
"""
|
|
||||||
|
|
||||||
[hostname]
|
|
||||||
ssh_only = false
|
|
||||||
format = "[$hostname](italic bold)"
|
|
||||||
disabled = false
|
|
||||||
|
|
||||||
[time]
|
|
||||||
disabled = false
|
|
||||||
format = '[ $time](italic dimmed inverted)'
|
|
||||||
time_format = '%R'
|
|
||||||
|
|
||||||
[custom.pwd]
|
|
||||||
command = "prompt_pwd -D 100"
|
|
||||||
when = true
|
|
||||||
format = "[ $output]($style)"
|
|
||||||
style = "italic dimmed"
|
|
||||||
|
|
||||||
[directory]
|
|
||||||
fish_style_pwd_dir_length = 1
|
|
||||||
truncation_length = 1
|
|
||||||
truncate_to_repo = false
|
|
||||||
truncation_symbol = "…"
|
|
||||||
style = "italic"
|
|
||||||
|
|
||||||
[line_break]
|
|
||||||
disabled = false
|
|
||||||
|
|
||||||
[fill]
|
|
||||||
symbol = '┄'
|
|
||||||
style = 'dimmed fg:#888888'
|
|
||||||
|
|
||||||
[character]
|
|
||||||
success_symbol = "[%](bold)"
|
|
||||||
error_symbol = "[✖](bold red)"
|
|
||||||
|
|
||||||
[cmd_duration]
|
|
||||||
min_time = 500
|
|
||||||
format = '[ $duration ](yellow)'
|
|
||||||
|
|
||||||
[git_branch]
|
|
||||||
format = "[$symbol$branch]($style)"
|
|
||||||
style = "italic bold green"
|
|
||||||
symbol = " "
|
|
||||||
truncation_length = 16
|
|
||||||
truncation_symbol = ""
|
|
||||||
|
|
||||||
[git_commit]
|
|
||||||
format = "[ $hash$tag]($style) "
|
|
||||||
style = "cyan"
|
|
||||||
|
|
||||||
[git_state]
|
|
||||||
style = ""
|
|
||||||
|
|
||||||
[git_status]
|
|
||||||
format = '([$all_status$ahead_behind]($style))'
|
|
||||||
style = "fg:#00ac73"
|
|
||||||
modified = "[ ](yellow)"
|
|
||||||
deleted = "[ ✘](red)"
|
|
||||||
untracked = "[ ?](purple)"
|
|
||||||
staged = "[ ](cyan)"
|
|
|
@ -1,11 +0,0 @@
|
||||||
[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
|
|
|
@ -1,10 +0,0 @@
|
||||||
[Unit]
|
|
||||||
Description=Run tmux server
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
Restart=always
|
|
||||||
StartLimitIntervalSec=0
|
|
||||||
ExecStart=/usr/bin/tmux -D -u
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=default.target
|
|
|
@ -1,3 +0,0 @@
|
||||||
include "linux-with-two-alt-keys"
|
|
||||||
keycode 58 = Control
|
|
||||||
|
|
|
@ -1,13 +0,0 @@
|
||||||
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
Normal file
2
.envrc
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
# shellcheck shell=bash
|
||||||
|
use flake
|
150
.gitconfig
150
.gitconfig
|
@ -1,150 +0,0 @@
|
||||||
[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 --pretty='format:%x1B[0;3;36m%as %G? %x1B[0;95;3m%<(12,trunc)%al %x1B[3;32m• %h%x1B[0;1;92m%(decorate:prefix= [,suffix=]%n)%>|(35)%Creset %s'"
|
|
||||||
lla = "log --graph --all --topo-order --pretty='format:\t%x1B[0;3;36m%as %x1B[0;95;3m%<(12)%al %x1B[3;32m• %h%x1B[0;1;92m%d%x1B[0m %s'"
|
|
||||||
|
|
||||||
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]
|
|
||||||
file-added-label = "[+]"
|
|
||||||
file-decoration-style=none
|
|
||||||
file-modified-label = "[*]"
|
|
||||||
file-removed-label = "[-]"
|
|
||||||
file-renamed-label = "[>]"
|
|
||||||
file-style = bold reverse
|
|
||||||
file-transformation = "s/$/ ░▒▓/"
|
|
||||||
hunk-header-decoration-style=none
|
|
||||||
hunk-header-file-style = bold
|
|
||||||
hunk-header-line-number-style = bold
|
|
||||||
hunk-header-style = line-number bold
|
|
||||||
hunk-label = "⯁"
|
|
||||||
hunk-label-style = bold
|
|
||||||
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 = false
|
|
||||||
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
|
|
14
.gitignore
vendored
14
.gitignore
vendored
|
@ -1,14 +0,0 @@
|
||||||
*~
|
|
||||||
*.a
|
|
||||||
*.class
|
|
||||||
/.idea
|
|
||||||
*.iml
|
|
||||||
*.ipr
|
|
||||||
*.iwr
|
|
||||||
*.iws
|
|
||||||
*.la
|
|
||||||
*.o
|
|
||||||
*.pyc
|
|
||||||
*.so
|
|
||||||
*.swp
|
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
enable-ssh-support
|
|
||||||
default-cache-ttl 3600
|
|
||||||
max-cache-ttl 3600
|
|
||||||
extra-socket /run/user/1000/gnupg/S.gpg-agent.extra
|
|
|
@ -1,2 +0,0 @@
|
||||||
#use-agent
|
|
||||||
keyid-format LONG
|
|
11
.inputrc
11
.inputrc
|
@ -1,11 +0,0 @@
|
||||||
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
|
|
||||||
|
|
|
@ -1,21 +0,0 @@
|
||||||
[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
46
.lessfilter
|
@ -1,46 +0,0 @@
|
||||||
#! /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
|
|
|
@ -1,13 +0,0 @@
|
||||||
[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;
|
|
|
@ -1,13 +0,0 @@
|
||||||
[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;
|
|
|
@ -1,11 +0,0 @@
|
||||||
[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;
|
|
|
@ -1,11 +0,0 @@
|
||||||
[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;
|
|
|
@ -1,11 +0,0 @@
|
||||||
[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;
|
|
|
@ -1,9 +0,0 @@
|
||||||
[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
|
|
|
@ -1,9 +0,0 @@
|
||||||
[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;
|
|
|
@ -1,11 +0,0 @@
|
||||||
[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
|
|
|
@ -1,10 +0,0 @@
|
||||||
[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
|
|
|
@ -1,10 +0,0 @@
|
||||||
[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
|
|
|
@ -1,10 +0,0 @@
|
||||||
[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
|
|
|
@ -1,10 +0,0 @@
|
||||||
[Desktop Entry]
|
|
||||||
Name=wezterm-nemo
|
|
||||||
GenericName=wezterm-nemo
|
|
||||||
StartupWMClass=org.wezfurlong.wezterm-nemo
|
|
||||||
Type=Application
|
|
||||||
TryExec=/usr/bin/wezterm
|
|
||||||
Icon=org.wezfurlong.wezterm
|
|
||||||
Terminal=false
|
|
||||||
Categories=System;TerminalEmulator;
|
|
||||||
Exec=/usr/bin/wezterm --config 'default_prog={"fish"}' start --class=org.wezfurlong.wezterm-nemo --domain=nemo
|
|
|
@ -1,9 +0,0 @@
|
||||||
[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;
|
|
35
.ssh/config
35
.ssh/config
|
@ -1,35 +0,0 @@
|
||||||
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
|
|
||||||
#RemoteForward ${XDG_RUNTIME_DIR}/opener.sock ${XDG_RUNTIME_DIR}/opener.dln-dev.sock
|
|
||||||
|
|
||||||
Host nemo
|
|
||||||
Hostname 10.1.100.20
|
|
||||||
ForwardAgent yes
|
|
||||||
ExitOnForwardFailure yes
|
|
||||||
Compression no
|
|
||||||
RemoteForward ${XDG_RUNTIME_DIR}/opener.sock ${XDG_RUNTIME_DIR}/opener.nemo.sock
|
|
||||||
#LocalForward localhost:3000 localhost:3000
|
|
||||||
LocalForward localhost:8000 localhost:8000
|
|
||||||
LocalForward localhost:8080 localhost:8080
|
|
||||||
|
|
||||||
Host *
|
|
||||||
ForwardAgent no
|
|
4
.ssh/rc
4
.ssh/rc
|
@ -1,4 +0,0 @@
|
||||||
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
96
.tmux.conf
|
@ -1,96 +0,0 @@
|
||||||
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
2
.vault
|
@ -1,2 +0,0 @@
|
||||||
#token_helper = "/home/dln/bin/vault-token-helper"
|
|
||||||
|
|
3
README.md
Normal file
3
README.md
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
# Home Manager
|
||||||
|
|
||||||
|
IT in a box!
|
36
bin/git-st
36
bin/git-st
|
@ -1,36 +0,0 @@
|
||||||
#!/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
364
bin/git-wtf
|
@ -1,364 +0,0 @@
|
||||||
#!/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 +0,0 @@
|
||||||
/home/dln/src/github.com/dln/ktoolbox/ktoolbox
|
|
15
bin/pst
15
bin/pst
|
@ -1,15 +0,0 @@
|
||||||
#!/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"
|
|
|
@ -1,26 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
set -xfeuo pipefail
|
|
||||||
|
|
||||||
state="${XDG_RUNTIME_DIR}/starship-sl-status"
|
|
||||||
checkout="${state}.checkout"
|
|
||||||
status="${state}.data"
|
|
||||||
|
|
||||||
if [[ "$PWD" != $(readlink -f "$state")* ]]; then
|
|
||||||
rm -f "$state"
|
|
||||||
root="$(sl root 2>/dev/null || true)"
|
|
||||||
ln -s "$root" "$state"
|
|
||||||
if [[ -z "${root}" ]]; then
|
|
||||||
echo >"${status}"
|
|
||||||
echo >"${checkout}"
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
saved_cid=$(cat "${checkout}" 2>/dev/null || true)
|
|
||||||
root_cid=$(cat "${state}/.sl/checkoutidentifier" || true)
|
|
||||||
if [[ ${root_cid} != "${saved_cid}" ]]; then
|
|
||||||
echo "${root_cid}" >"${checkout}"
|
|
||||||
sl log -r . -T '{if(github_pull_request_number, "#{github_pull_request_number} @ ", if(bookmarks, "{bookmarks} @ "))}{node|short}{if(remotenames, ":{remotenames}")}' >"${status}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
cat "$status" || true
|
|
|
@ -1,4 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
set -ef -o pipefail
|
|
||||||
eval "$(direnv export bash)"
|
|
||||||
eval "${BUILD_COMMAND:-echo 'BUILD_COMMAND not set'}" | bat --paging=always
|
|
|
@ -1 +0,0 @@
|
||||||
tmux-nvim-helper
|
|
|
@ -1,4 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
set -eo pipefail
|
|
||||||
_file=$(fre --store_name edit-history --sorted | exec fzf --no-sort --preview "bat {}" --preview-window=down,70%,wrap,border-top --color=bg+:16,fg+:49,pointer:49 --layout=reverse "--bind=alt-e:become(tmux-edit-helper)")
|
|
||||||
[ -n "$_file" ] && exec tmux-edit-helper "$_file"
|
|
|
@ -1,44 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
set -eo pipefail
|
|
||||||
|
|
||||||
eval "$(direnv export bash 2>/dev/null)"
|
|
||||||
|
|
||||||
PATH="$HOME/bin:$PATH"
|
|
||||||
|
|
||||||
if [ -n "$1" ]; then
|
|
||||||
_file=$(readlink -f "$@")
|
|
||||||
else
|
|
||||||
FZF=${FZF:-"fzf-tmux -p 90%,90% -y 0"}
|
|
||||||
_root=$(git rev-parse --show-toplevel 2>/dev/null || pwd)
|
|
||||||
_store=$(echo "$_root" | sha1sum | cut -d ' ' -f 1)
|
|
||||||
_file=$( ( (fre --store_name "$_store" --sorted | xargs -n 100 ls -d 2>/dev/null || true) && fd --type f --hidden --follow --exclude .git --ignore-file "${_root}/.gitignore" . "$_root") | cat -n | sort -k2 -k1n | uniq -f1 | sort -nk1,1 | cut -f2- | sed -e "s#^${_root}/##" | $FZF --no-sort --preview "bat {}" --preview-window=bottom,70%,border-top --color=bg+:16,fg+:49,pointer:49 --layout=reverse "--bind=alt-e:become(tmux-edit-history)")
|
|
||||||
_file="${_root}/${_file}"
|
|
||||||
fre --store_name "$_store" --add "$_file"
|
|
||||||
fi
|
|
||||||
|
|
||||||
fre --store_name "edit-history" --add "$_file"
|
|
||||||
|
|
||||||
tmux-shortcut 1 env \
|
|
||||||
"AR=$AR" \
|
|
||||||
"AS=$AS" \
|
|
||||||
"BUILD_COMMAND=$BUILD_COMMAND" \
|
|
||||||
"CC=$CC" \
|
|
||||||
"CXX=$CXX" \
|
|
||||||
"GOFLAGS=$GOFLAGS" \
|
|
||||||
"GOPACKAGESDRIVER=$GOPACKAGESDRIVER" \
|
|
||||||
"LC_ALL=$LC_ALL" \
|
|
||||||
"LD=$LD" \
|
|
||||||
"NM=$NM" \
|
|
||||||
"NM=$NM" \
|
|
||||||
"OBJCOPY=$OBJCOPY" \
|
|
||||||
"OBJDUMP=$OBJDUMP" \
|
|
||||||
"PATH=$PATH" \
|
|
||||||
"RANLIB=$RANLIB" \
|
|
||||||
"READELF=$READELF" \
|
|
||||||
"RUST_SRC_PATH=$RUST_SRC_PATH" \
|
|
||||||
"SIZE=$SIZE" \
|
|
||||||
"STRIP=$STRIP" \
|
|
||||||
helix "${_file}"
|
|
||||||
sleep 0.1
|
|
||||||
tmux send-keys Escape &&
|
|
||||||
tmux send-keys ":open ${_file}" Enter ":reload" Enter
|
|
|
@ -1,46 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
set -fe -o pipefail
|
|
||||||
|
|
||||||
eval "$(direnv export bash 2>/dev/null)"
|
|
||||||
|
|
||||||
PATH="$HOME/bin:$PATH"
|
|
||||||
|
|
||||||
if [ -n "$1" ]; then
|
|
||||||
_file=$(readlink -f "$@")
|
|
||||||
else
|
|
||||||
FZF=${FZF:-"fzf-tmux -p 90%,50% -y 0 --layout=reverse"}
|
|
||||||
_root=$(git rev-parse --show-toplevel 2>/dev/null || jj workspace root 2>/dev/null || pwd)
|
|
||||||
_store=$(echo "$_root" | sha1sum | cut -d ' ' -f 1)
|
|
||||||
_file=$( ( (fre --store_name "$_store" --sorted | xargs -n 100 ls -d 2>/dev/null || true) && fd --type f --hidden --follow --exclude .git --exclude .jj --ignore-file "${_root}/.gitignore" . "$_root") | cat -n | sort -k2 -k1n | uniq -f1 | sort -nk1,1 | cut -f2- | sed -e "s#^${_root}/##" | $FZF --no-sort)
|
|
||||||
_file="${_root}/${_file}"
|
|
||||||
fre --store_name "$_store" --add "$_file"
|
|
||||||
fi
|
|
||||||
|
|
||||||
fre --store_name "edit-history" --add "$_file"
|
|
||||||
|
|
||||||
_nvim_socket="$XDG_RUNTIME_DIR/nvim-persistent.sock"
|
|
||||||
|
|
||||||
(tmux select-window -t nvim 2>/dev/null && tmux select-pane -t 0) && exec nvim --server "$_nvim_socket" --remote "$_file"
|
|
||||||
|
|
||||||
# nvim is not running/listening on remote socket, so start it.
|
|
||||||
tmux new-window -S -t 42 -n nvim \
|
|
||||||
-e "AR=$AR" \
|
|
||||||
-e "AS=$AS" \
|
|
||||||
-e "BUILD_COMMAND=$BUILD_COMMAND" \
|
|
||||||
-e "CC=$CC" \
|
|
||||||
-e "CXX=$CXX" \
|
|
||||||
-e "GOFLAGS=$GOFLAGS" \
|
|
||||||
-e "GOPACKAGESDRIVER=$GOPACKAGESDRIVER" \
|
|
||||||
-e "LC_ALL=$LC_ALL" \
|
|
||||||
-e "LD=$LD" \
|
|
||||||
-e "NM=$NM" \
|
|
||||||
-e "NM=$NM" \
|
|
||||||
-e "OBJCOPY=$OBJCOPY" \
|
|
||||||
-e "OBJDUMP=$OBJDUMP" \
|
|
||||||
-e "PATH=$PATH" \
|
|
||||||
-e "RANLIB=$RANLIB" \
|
|
||||||
-e "READELF=$READELF" \
|
|
||||||
-e "RUST_SRC_PATH=$RUST_SRC_PATH" \
|
|
||||||
-e "SIZE=$SIZE" \
|
|
||||||
-e "STRIP=$STRIP" \
|
|
||||||
nvim --listen "$_nvim_socket" "$_file"
|
|
|
@ -1,20 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
set -eo pipefail
|
|
||||||
|
|
||||||
nr="@app-${1}"
|
|
||||||
shift
|
|
||||||
|
|
||||||
pane="$(tmux show -vg ${nr} || true)"
|
|
||||||
if [[ -n "${pane}" ]] && tmux has-session -t "${pane}" ; then
|
|
||||||
if tmux list-panes -F "#{pane_id}" | grep "^${pane}\$" >>/dev/null ; then
|
|
||||||
# Pane is on this window. Focus it and exit.
|
|
||||||
exec tmux select-pane -t "${pane}"
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
# App pane does not exist, so create a new window.
|
|
||||||
pane=$(tmux new-window -d -P -F '#{pane_id}' "$@")
|
|
||||||
tmux set -g "${nr}" "${pane}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Swap active pane for app
|
|
||||||
tmux swap-pane -s "${pane}"
|
|
|
@ -1,24 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
set -e
|
|
||||||
|
|
||||||
store=$1
|
|
||||||
if [ -z "$store" ]; then
|
|
||||||
echo "Usage: $0 [store-name]"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
export TPM2_PKCS11_STORE=$HOME/.local/share/tpm2-pkcs11/${store}
|
|
||||||
|
|
||||||
echo "=> Initializing store ${TPM2_PKCS11_STORE}"
|
|
||||||
mkdir -p $TPM2_PKCS11_STORE
|
|
||||||
tpm2_ptool init
|
|
||||||
tpm2_ptool addtoken --pid=1 --label=ssh --sopin="$(systemd-ask-password SOPIN)" --userpin="$(systemd-ask-password USERPIN)"
|
|
||||||
|
|
||||||
echo
|
|
||||||
echo "=> Adding SSH key"
|
|
||||||
tpm2_ptool addkey --label=ssh --algorithm=ecc256 --userpin="$(systemd-ask-password USERPIN)"
|
|
||||||
|
|
||||||
echo
|
|
||||||
echo "Store path: $TPM2_PKCS11_STORE"
|
|
||||||
echo "SSH public key:"
|
|
||||||
ssh-keygen -D /usr/lib/pkcs11/libtpm2_pkcs11.so 2>>/dev/null
|
|
|
@ -1,2 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
echo "$@" | xclip -selection clipboard
|
|
|
@ -1,55 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
# Vault Token helper for the Linux key retention service.
|
|
||||||
#
|
|
||||||
# Since version 2.6, the Linux kernel has included a efficiently store
|
|
||||||
# authentication data on a per thread, per process, per user, or per session
|
|
||||||
# bases.
|
|
||||||
#
|
|
||||||
# Linux Key Management Utilities (keyutils) provides `keyctl` to control
|
|
||||||
# the facility from the shell.
|
|
||||||
#
|
|
||||||
# see https://www.kernel.org/doc/Documentation/security/keys/core.rst
|
|
||||||
# see https://www.kernel.org/doc/Documentation/security/keys.txt
|
|
||||||
# see https://lwn.net/Articles/210502/
|
|
||||||
# see https://www.ibm.com/developerworks/library/l-key-retention/index.html
|
|
||||||
#
|
|
||||||
# Vault allows an external programs to be configured as a token helper
|
|
||||||
# that can get, store, and erase tokens on behalf of the Vault client.
|
|
||||||
#
|
|
||||||
# see https://www.vaultproject.io/docs/commands/token-helper.html
|
|
||||||
#
|
|
||||||
# To use this script, make it executable and set your ~/.vault file to
|
|
||||||
# contain:
|
|
||||||
#
|
|
||||||
# token_helper = "/path/to/vault-token-helper.sh"
|
|
||||||
|
|
||||||
# Exit on error.
|
|
||||||
set -o errexit
|
|
||||||
# Exit on error inside any functions or subshells.
|
|
||||||
set -o errtrace
|
|
||||||
# Do not allow use of undefined vars.
|
|
||||||
set -o nounset
|
|
||||||
# Catch the error if any piped command fails.
|
|
||||||
set -o pipefail
|
|
||||||
|
|
||||||
desc=VAULT_TOKEN:${VAULT_ADDR}
|
|
||||||
|
|
||||||
case $1 in
|
|
||||||
get)
|
|
||||||
# If the key is not set, keyctl returns "request_key: Required key not available"
|
|
||||||
# on stderr and exits with a non-zero status. The implied
|
|
||||||
key_id=$(keyctl request user ${desc} || echo '')
|
|
||||||
[ -z ${key_id} ] && exit 0
|
|
||||||
keyctl pipe ${key_id}
|
|
||||||
;;
|
|
||||||
store)
|
|
||||||
# Vault sends the token on stdin but there is no linebreak, so EOF is reached
|
|
||||||
# which causes read to return a non-zero status.
|
|
||||||
read -r token || true
|
|
||||||
echo -n ${token} | keyctl padd user ${desc} @u
|
|
||||||
;;
|
|
||||||
erase)
|
|
||||||
keyctl purge user ${desc}
|
|
||||||
;;
|
|
||||||
esac
|
|
|
@ -1,25 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
set -fe -o pipefail
|
|
||||||
|
|
||||||
eval "$(direnv export bash 2>/dev/null)"
|
|
||||||
|
|
||||||
PATH="$HOME/bin:$PATH"
|
|
||||||
|
|
||||||
if [ -n "$1" ]; then
|
|
||||||
_file=$(readlink -f "$@")
|
|
||||||
else
|
|
||||||
FZF=${FZF:-"fzf-tmux -p 90%,50% -y 0 --layout=reverse"}
|
|
||||||
_root=$(git rev-parse --show-toplevel 2>/dev/null || jj workspace root 2>/dev/null || pwd)
|
|
||||||
_store=$(echo "$_root" | sha1sum | cut -d ' ' -f 1)
|
|
||||||
_file=$( ( (fre --store_name "$_store" --sorted | xargs -n 100 ls -d 2>/dev/null || true) && fd --type f --hidden --follow --exclude .git --exclude .jj --ignore-file "${_root}/.gitignore" . "$_root") | cat -n | sort -k2 -k1n | uniq -f1 | sort -nk1,1 | cut -f2- | sed -e "s#^${_root}/##" | $FZF --no-sort)
|
|
||||||
_file="${_root}/${_file}"
|
|
||||||
fre --store_name "$_store" --add "$_file"
|
|
||||||
fi
|
|
||||||
|
|
||||||
fre --store_name "edit-history" --add "$_file"
|
|
||||||
|
|
||||||
rm -f "$XDG_RUNTIME_DIR/nvim-persistent.sock"
|
|
||||||
nvim --server "$XDG_RUNTIME_DIR/nvim-persistent.sock" --remote "$_file" &>/dev/null
|
|
||||||
|
|
||||||
# Wezterm: switch tab to nvim
|
|
||||||
printf "\033]1337;SetUserVar=%s=%s\007" nvim_activate $(date +%s | base64)
|
|
11
bin/xdg-open
11
bin/xdg-open
|
@ -1,11 +0,0 @@
|
||||||
#!/usr/bin/env sh
|
|
||||||
set -e
|
|
||||||
|
|
||||||
# Use local xdg-open if not in an ssh session
|
|
||||||
[ -n "$SSH_TTY" ] || exec xdg-open "$@"
|
|
||||||
|
|
||||||
if [ -p /dev/stdin ]; then
|
|
||||||
exec nc -U "$XDG_RUNTIME_DIR/opener.sock" </dev/stdin
|
|
||||||
else
|
|
||||||
echo "$@" | nc -U "$XDG_RUNTIME_DIR/opener.sock"
|
|
||||||
fi
|
|
40
common/atuin.nix
Normal file
40
common/atuin.nix
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
programs.atuin = {
|
||||||
|
enable = true;
|
||||||
|
enableFishIntegration = true;
|
||||||
|
settings = {
|
||||||
|
ctrl_n_shortcuts = true;
|
||||||
|
enter_accept = true;
|
||||||
|
filter_mode_shell_up_key_binding = "session";
|
||||||
|
history_filter = [ ];
|
||||||
|
inline_height = 8;
|
||||||
|
prefers_reduced_motion = true;
|
||||||
|
search_mode_shell_up_key_binding = "prefix";
|
||||||
|
show_help = false;
|
||||||
|
style = "compact";
|
||||||
|
sync_address = "https://atuin.aarn.shelman.io";
|
||||||
|
sync.records = true;
|
||||||
|
|
||||||
|
stats.common_subcommands = [
|
||||||
|
"cargo"
|
||||||
|
"git"
|
||||||
|
"go"
|
||||||
|
"jj"
|
||||||
|
"just"
|
||||||
|
"kubectl"
|
||||||
|
"nix"
|
||||||
|
"npm"
|
||||||
|
"pnpm"
|
||||||
|
"talosctl"
|
||||||
|
"task"
|
||||||
|
"yarn"
|
||||||
|
];
|
||||||
|
|
||||||
|
stats.common_prefix = [
|
||||||
|
"doas"
|
||||||
|
"sudo"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
63
common/broot.nix
Normal file
63
common/broot.nix
Normal file
|
@ -0,0 +1,63 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
programs.broot = {
|
||||||
|
enable = true;
|
||||||
|
enableFishIntegration = true;
|
||||||
|
settings = {
|
||||||
|
content_search_max_file_size = "10MB";
|
||||||
|
enable_kitty_keyboard = lib.mkForce true;
|
||||||
|
icon_theme = "nerdfont";
|
||||||
|
lines_before_match_in_preview = 1;
|
||||||
|
lines_after_match_in_preview = 1;
|
||||||
|
quit_on_last_cancel = true;
|
||||||
|
show_selection_mark = true;
|
||||||
|
special_paths = {
|
||||||
|
"~/media" = {
|
||||||
|
list = "never";
|
||||||
|
sum = "never";
|
||||||
|
};
|
||||||
|
"~/.config" = {
|
||||||
|
show = "always";
|
||||||
|
};
|
||||||
|
"trav" = {
|
||||||
|
show = "always";
|
||||||
|
list = "always";
|
||||||
|
sum = "never";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
true_colors = true;
|
||||||
|
|
||||||
|
verbs = [
|
||||||
|
{
|
||||||
|
invocation = "broot_home";
|
||||||
|
key = "ctrl-7";
|
||||||
|
external = "br $HOME";
|
||||||
|
from_shell = true;
|
||||||
|
leave_broot = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
invocation = "edit";
|
||||||
|
key = "enter";
|
||||||
|
shortcut = "e";
|
||||||
|
external = "edit {file}";
|
||||||
|
apply_to = "text_file";
|
||||||
|
from_shell = true;
|
||||||
|
leave_broot = true;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
invocation = "nvim";
|
||||||
|
key = "enter";
|
||||||
|
apply_to = "text_file";
|
||||||
|
external = "edit {file}";
|
||||||
|
from_shell = true;
|
||||||
|
leave_broot = true;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
21
common/default.nix
Normal file
21
common/default.nix
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
{ lib, ... }:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./atuin.nix
|
||||||
|
./broot.nix
|
||||||
|
./devel.nix
|
||||||
|
./fish.nix
|
||||||
|
./gnome.nix
|
||||||
|
./k8s.nix
|
||||||
|
./nix.nix
|
||||||
|
./nvim.nix
|
||||||
|
./scripts.nix
|
||||||
|
./ssh.nix
|
||||||
|
./utils.nix
|
||||||
|
./vcs.nix
|
||||||
|
./web.nix
|
||||||
|
./wezterm.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
options.shelman.desktop.enable = lib.mkEnableOption "Desktop environment";
|
||||||
|
}
|
24
common/devel.nix
Normal file
24
common/devel.nix
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
bacon
|
||||||
|
cargo
|
||||||
|
clang
|
||||||
|
codeium
|
||||||
|
gnumake
|
||||||
|
go
|
||||||
|
just
|
||||||
|
ldns
|
||||||
|
nixfmt-rfc-style
|
||||||
|
nodejs_22
|
||||||
|
passage
|
||||||
|
rage
|
||||||
|
prettierd
|
||||||
|
rust-analyzer
|
||||||
|
rustc
|
||||||
|
sqlite
|
||||||
|
stylua
|
||||||
|
tree-sitter
|
||||||
|
zig
|
||||||
|
];
|
||||||
|
}
|
122
common/fish.nix
Normal file
122
common/fish.nix
Normal file
|
@ -0,0 +1,122 @@
|
||||||
|
{ lib, pkgs, ... }:
|
||||||
|
{
|
||||||
|
|
||||||
|
programs.fish = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
plugins = [
|
||||||
|
{
|
||||||
|
name = "transient-fish";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "zzhaolei";
|
||||||
|
repo = "transient.fish";
|
||||||
|
rev = "deb35c4d07ea6acc56b073d7ba84f8ed76356abd";
|
||||||
|
sha256 = "sha256-BQvuqY7D+9fTDeLb7Fz9Ll/7uIlqrmRmn0S+G9v+2Uc=";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
functions = {
|
||||||
|
edit = {
|
||||||
|
description = "Open a file in already running nvim and switch tab";
|
||||||
|
argumentNames = [ "file" ];
|
||||||
|
body = ''
|
||||||
|
set _file (readlink -f "$file")
|
||||||
|
if test -z "$file"
|
||||||
|
set _root (vcs_root)
|
||||||
|
set _file (fd --type f . "$_root" | sed -e "s#^$_root/##" | fzf --no-sort --layout=reverse)
|
||||||
|
set _file "$_root/$_file"
|
||||||
|
end
|
||||||
|
nvim --server "$XDG_RUNTIME_DIR/nvim-persistent.sock" --remote "$_file" &>/dev/null
|
||||||
|
or return 1
|
||||||
|
# Wezterm: switch tab to nvim
|
||||||
|
printf "\033]1337;SetUserVar=nvim_activate=\007"
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
__zoxide_zi_repaint.body = ''
|
||||||
|
__zoxide_zi
|
||||||
|
commandline -f repaint
|
||||||
|
'';
|
||||||
|
|
||||||
|
fish_jj_prompt.body = ''
|
||||||
|
# Is jj installed?
|
||||||
|
if not command -sq jj
|
||||||
|
return 1
|
||||||
|
end
|
||||||
|
|
||||||
|
# Are we in a jj repo?
|
||||||
|
if not jj root --quiet &>/dev/null
|
||||||
|
return 1
|
||||||
|
end
|
||||||
|
|
||||||
|
# Generate prompt
|
||||||
|
jj log --ignore-working-copy --no-graph --color always -r @ -T '
|
||||||
|
separate(
|
||||||
|
" ",
|
||||||
|
change_id.shortest(),
|
||||||
|
coalesce(
|
||||||
|
surround(
|
||||||
|
"\"",
|
||||||
|
"\"",
|
||||||
|
if(
|
||||||
|
description.first_line().substr(0, 24).starts_with(description.first_line()),
|
||||||
|
description.first_line().substr(0, 24),
|
||||||
|
description.first_line().substr(0, 23) ++ "…"
|
||||||
|
)
|
||||||
|
),
|
||||||
|
"(no description set)"
|
||||||
|
),
|
||||||
|
branches.join(", "),
|
||||||
|
commit_id.shortest(),
|
||||||
|
if(conflict, "(conflict)"),
|
||||||
|
if(empty, "(empty)"),
|
||||||
|
if(divergent, "(divergent)"),
|
||||||
|
if(hidden, "(hidden)"),
|
||||||
|
)
|
||||||
|
'
|
||||||
|
'';
|
||||||
|
|
||||||
|
fish_prompt.body = ''
|
||||||
|
echo
|
||||||
|
string join "" -- (set_color --italics) (prompt_hostname) ':' (prompt_pwd) (set_color green) ' ❯ ' (set_color normal)
|
||||||
|
'';
|
||||||
|
|
||||||
|
fish_right_prompt.body = ''
|
||||||
|
fish_jj_prompt || fish_vcs_prompt
|
||||||
|
'';
|
||||||
|
|
||||||
|
transient_prompt_func.body = ''
|
||||||
|
echo
|
||||||
|
string join "" -- (set_color green) '❯ ' (set_color normal)
|
||||||
|
'';
|
||||||
|
|
||||||
|
rg.body = ''
|
||||||
|
if status is-interactive
|
||||||
|
command rg -p $argv | bat
|
||||||
|
else
|
||||||
|
command rg $argv
|
||||||
|
end
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
interactiveShellInit = lib.concatStringsSep "\n" [
|
||||||
|
(builtins.readFile ../files/config/fish/config.fish)
|
||||||
|
(builtins.readFile ../files/config/fish/semantic-prompt.fish)
|
||||||
|
(builtins.readFile ../files/config/fish/go-task.fish)
|
||||||
|
(builtins.readFile ../files/config/fish/jj.fish)
|
||||||
|
(builtins.readFile ../files/config/fish/vcs.fish)
|
||||||
|
];
|
||||||
|
|
||||||
|
shellAbbrs = {
|
||||||
|
e = "edit";
|
||||||
|
l = "bat";
|
||||||
|
ls = "eza";
|
||||||
|
tree = "eza --tree";
|
||||||
|
top = "btm --basic --enable_cache_memory --enable_gpu_memory --battery";
|
||||||
|
ts = "TZ=Z date '+%Y%m%dT%H%M%SZ'";
|
||||||
|
w = "viddy -n1 $history[1]";
|
||||||
|
xc = "fish_clipboard_copy";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
194
common/gnome.nix
Normal file
194
common/gnome.nix
Normal file
|
@ -0,0 +1,194 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib.hm.gvariant;
|
||||||
|
{
|
||||||
|
config = lib.mkIf config.shelman.desktop.enable {
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
gnome-tweaks
|
||||||
|
gnome-pomodoro
|
||||||
|
gnomeExtensions.desktop-clock
|
||||||
|
gnomeExtensions.just-perfection
|
||||||
|
gnomeExtensions.vitals
|
||||||
|
];
|
||||||
|
|
||||||
|
dconf.settings = {
|
||||||
|
"org/gnome/desktop/background" = {
|
||||||
|
color-shading-type = "solid";
|
||||||
|
picture-options = "zoom";
|
||||||
|
picture-uri = "file:///run/current-system/sw/share/backgrounds/gnome/vnc-l.png";
|
||||||
|
picture-uri-dark = "file:///run/current-system/sw/share/backgrounds/gnome/vnc-d.png";
|
||||||
|
primary-color = "#77767B";
|
||||||
|
secondary-color = "#000000";
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/screensaver" = {
|
||||||
|
color-shading-type = "solid";
|
||||||
|
picture-options = "zoom";
|
||||||
|
picture-uri = "file:///run/current-system/sw/share/backgrounds/gnome/vnc-l.png";
|
||||||
|
primary-color = "#77767B";
|
||||||
|
secondary-color = "#000000";
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/wm/keybindings" = {
|
||||||
|
close = [ "<Super>q" ];
|
||||||
|
toggle-on-all-workspaces = [ "<Super>s" ];
|
||||||
|
toggle-maximized = [ "<Super>m" ];
|
||||||
|
maximize-vertically = [ "<Super>Up" ];
|
||||||
|
minimize = [ "<Super>comma" ];
|
||||||
|
move-to-center = [ "<Super>c" ];
|
||||||
|
switch-applications = [ "<Super>Tab" ];
|
||||||
|
switch-windows = [ "<Alt>Tab" ];
|
||||||
|
move-to-workspace-1 = [ "<Shift>F1" ];
|
||||||
|
move-to-workspace-2 = [ "<Shift>F2" ];
|
||||||
|
move-to-workspace-3 = [ "<Shift>F3" ];
|
||||||
|
move-to-workspace-4 = [ "<Shift>F4" ];
|
||||||
|
move-to-workspace-5 = [ "<Shift>F5" ];
|
||||||
|
move-to-workspace-6 = [ "<Shift>F6" ];
|
||||||
|
move-to-workspace-7 = [ "<Shift>F7" ];
|
||||||
|
move-to-workspace-8 = [ "<Shift>F8" ];
|
||||||
|
move-to-workspace-9 = [ "<Shift>F9" ];
|
||||||
|
switch-to-workspace-1 = [ "F1" ];
|
||||||
|
switch-to-workspace-2 = [ "F2" ];
|
||||||
|
switch-to-workspace-3 = [ "F3" ];
|
||||||
|
switch-to-workspace-4 = [ "F4" ];
|
||||||
|
switch-to-workspace-5 = [ "F5" ];
|
||||||
|
switch-to-workspace-6 = [ "F6" ];
|
||||||
|
switch-to-workspace-7 = [ "F7" ];
|
||||||
|
switch-to-workspace-8 = [ "F8" ];
|
||||||
|
switch-to-workspace-9 = [ "F9" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/input-sources" = {
|
||||||
|
mru-sources = [
|
||||||
|
(mkTuple [
|
||||||
|
"xkb"
|
||||||
|
"us"
|
||||||
|
])
|
||||||
|
];
|
||||||
|
sources = [
|
||||||
|
(mkTuple [
|
||||||
|
"xkb"
|
||||||
|
"se+us"
|
||||||
|
])
|
||||||
|
];
|
||||||
|
xkb-options = [ "caps:ctrl_modifier" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/interface" = {
|
||||||
|
enable-animations = false;
|
||||||
|
enable-hot-corners = false;
|
||||||
|
show-battery-percentage = true;
|
||||||
|
font-antialiasing = "grayscale";
|
||||||
|
font-hinting = "slight";
|
||||||
|
font-name = "Inter Variable 11";
|
||||||
|
document-font-name = "Inter Variable 11";
|
||||||
|
monospace-font-name = "BerkeleyMono Nerd Font 11";
|
||||||
|
toolkit-accessibility = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/search-providers" = {
|
||||||
|
disabled = [
|
||||||
|
"org.gnome.Contacts.desktop"
|
||||||
|
"org.gnome.Nautilus.desktop"
|
||||||
|
"org.gnome.Calendar.desktop"
|
||||||
|
"org.gnome.clocks.desktop"
|
||||||
|
"org.gnome.Epiphany.desktop"
|
||||||
|
];
|
||||||
|
sort-order = [
|
||||||
|
"org.gnome.Contacts.desktop"
|
||||||
|
"org.gnome.Documents.desktop"
|
||||||
|
"org.gnome.Nautilus.desktop"
|
||||||
|
"org.gnome.Settings.desktop"
|
||||||
|
"org.gnome.Calculator.desktop"
|
||||||
|
"org.gnome.Calendar.desktop"
|
||||||
|
"org.gnome.clocks.desktop"
|
||||||
|
"org.gnome.seahorse.Application.desktop"
|
||||||
|
"org.gnome.Weather.desktop"
|
||||||
|
"org.gnome.Characters.desktop"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/wm/preferences" = {
|
||||||
|
focus-mode = "sloppy";
|
||||||
|
num-workspaces = 10;
|
||||||
|
resize-with-right-button = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/GWeather4" = {
|
||||||
|
temperature-unit = "centigrade";
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/Weather" = {
|
||||||
|
locations = [
|
||||||
|
(mkVariant (mkTuple [
|
||||||
|
(mkUint32 2)
|
||||||
|
(mkVariant (mkTuple [
|
||||||
|
"Stockholm-Arlanda Airport"
|
||||||
|
"ESSA"
|
||||||
|
false
|
||||||
|
[
|
||||||
|
(mkTuple [
|
||||||
|
1.0410888988146176
|
||||||
|
0.31328660073298215
|
||||||
|
])
|
||||||
|
]
|
||||||
|
[
|
||||||
|
(mkTuple [
|
||||||
|
1.0410888988146176
|
||||||
|
0.31328660073298215
|
||||||
|
])
|
||||||
|
]
|
||||||
|
]))
|
||||||
|
]))
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/desktop/calendar" = {
|
||||||
|
show-weekdate = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/mutter" = {
|
||||||
|
center-new-windows = true;
|
||||||
|
edge-tiling = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/settings-daemon/plugins/color" = {
|
||||||
|
night-light-schedule-automatic = false;
|
||||||
|
night-light-schedule-from = 0.0;
|
||||||
|
night-light-schedule-to = 0.0;
|
||||||
|
night-light-temperature = mkUint32 3575;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/shell" = {
|
||||||
|
enabled-extensions = [
|
||||||
|
"just-perfection-desktop@just-perfection"
|
||||||
|
"Vitals@CoreCoding.com"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/shell/extensions/just-perfection" = {
|
||||||
|
animation = 0;
|
||||||
|
notification-banner-position = 2;
|
||||||
|
osd-position = 6;
|
||||||
|
panel = false;
|
||||||
|
panel-in-overview = true;
|
||||||
|
startup-status = 0;
|
||||||
|
switcher-popup-delay = false;
|
||||||
|
top-panel-position = 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/shell/extensions/vitals" = {
|
||||||
|
update-time = 15;
|
||||||
|
};
|
||||||
|
|
||||||
|
"org/gnome/tweaks" = {
|
||||||
|
show-extensions-notice = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue