Migrate to home-manager

This commit is contained in:
Daniel Lundin 2024-08-02 11:12:36 +02:00
parent 6781866277
commit 2f6d4e1d3c
No known key found for this signature in database
147 changed files with 6181 additions and 6078 deletions

View file

@ -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 }

View file

@ -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"]

View file

@ -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 din 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 din 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

View file

@ -1,3 +0,0 @@
--italic-text=always
--plain
--theme=ansi

File diff suppressed because it is too large Load diff

View file

@ -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
}
]

View file

@ -1 +0,0 @@
/home/dln/.local/share/broot/launcher/bash/1

View file

@ -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

View file

@ -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
}
]

View file

@ -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)
}

View file

@ -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
# }
]

View file

@ -1,7 +0,0 @@
[worker.oci]
enabled = false
[worker.containerd]
enabled = true
rootless = true
address = "/run/user/1000/containerd/containerd.sock"

View file

@ -1 +0,0 @@
--enable-features=OzonePlatform --ozone-platform=wayland

View file

@ -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" }

View file

@ -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

View file

@ -1 +0,0 @@
DFT_BACKGROUND=light

View file

@ -1 +0,0 @@
DOCKER_HOST=unix://${XDG_RUNTIME_DIR}/podman/podman.sock

View file

@ -1 +0,0 @@
GOPROXY=https://athens.aarn.shelman.io

View file

@ -1,2 +0,0 @@
MOZ_ENABLE_WAYLAND=1
MOZ_DISABLE_RDD_SANDBOX=1

View file

@ -1,3 +0,0 @@
OTEL_EXPORTER_OTLP_ENDPOINT=https://otel.aarn.shelman.io
OTEL_RESOURCE_ATTRIBUTES=instance=dln-dev
OTEL_LOG_LEVEL=debug

View file

@ -1 +0,0 @@
SSH_AUTH_SOCK=${XDG_RUNTIME_DIR}/gcr/ssh

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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'

View file

@ -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/*"

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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=

View file

@ -1,3 +0,0 @@
#!/usr/bin/env bash
set -euo pipefail
ssh-add -L | awk '/^sk-ssh/ { print "key::" $1 " " $2 }'

View file

@ -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"

View file

@ -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"]

View file

@ -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'

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -1,3 +0,0 @@
debug_full = false
snapshotter = "native"
insecure_registry = false

View file

@ -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
}

View file

@ -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,
},
}

View file

@ -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" },
},
},
}

View file

@ -1,10 +0,0 @@
#rytographically
crytographically/!
OIDC
Kubernetes
auth
JWT
PKCE
OPA
#askfile
Taskfile/!

Binary file not shown.

View file

@ -1,8 +0,0 @@
Include = /etc/paru.conf
[options]
RemoveMake = ask
SkipReview
[bin]
Sudo = doas

View file

@ -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

View file

@ -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 = ""

View file

@ -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)"

View file

@ -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

View file

@ -1,10 +0,0 @@
[Unit]
Description=Run tmux server
[Service]
Restart=always
StartLimitIntervalSec=0
ExecStart=/usr/bin/tmux -D -u
[Install]
WantedBy=default.target

View file

@ -1,3 +0,0 @@
include "linux-with-two-alt-keys"
keycode 58 = Control

View file

@ -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
View file

@ -0,0 +1,2 @@
# shellcheck shell=bash
use flake

View file

@ -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
View file

@ -1,14 +0,0 @@
*~
*.a
*.class
/.idea
*.iml
*.ipr
*.iwr
*.iws
*.la
*.o
*.pyc
*.so
*.swp

View file

@ -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

View file

@ -1,2 +0,0 @@
#use-agent
keyid-format LONG

View file

@ -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

View file

@ -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())"

View file

@ -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

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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

View file

@ -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;

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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;

View file

@ -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

View file

@ -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

View file

@ -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
View file

@ -1,2 +0,0 @@
#token_helper = "/home/dln/bin/vault-token-helper"

3
README.md Normal file
View file

@ -0,0 +1,3 @@
# Home Manager
IT in a box!

View file

@ -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'

View file

@ -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!

View file

@ -1 +0,0 @@
/home/dln/src/github.com/dln/ktoolbox/ktoolbox

15
bin/pst
View file

@ -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"

View file

@ -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

View file

@ -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

View file

@ -1 +0,0 @@
tmux-nvim-helper

View file

@ -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"

View 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

View file

@ -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"

View 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}"

View file

@ -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

View file

@ -1,2 +0,0 @@
#!/bin/bash
echo "$@" | xclip -selection clipboard

View file

@ -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

View file

@ -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)

View file

@ -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
View 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
View 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
View 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
View 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
View 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
View 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