Compare commits

..

1 Commits

Author SHA1 Message Date
Henrik Bakken 2b76fb6f31 nvim polish 2026-03-19 22:38:09 +01:00
22 changed files with 1688 additions and 335 deletions
+4 -18
View File
@@ -1,4 +1,4 @@
#? Config file for btop v.1.4.7 #? Config file for btop v.1.4.6
#* Name of a btop++/bpytop/bashtop formatted ".theme" file, "Default" and "TTY" for builtin themes. #* Name of a btop++/bpytop/bashtop formatted ".theme" file, "Default" and "TTY" for builtin themes.
#* Themes should be placed in "../share/btop/themes" relative to binary or "$HOME/.config/btop/themes" #* Themes should be placed in "../share/btop/themes" relative to binary or "$HOME/.config/btop/themes"
@@ -14,11 +14,6 @@ truecolor = true
#* Will force 16-color mode and TTY theme, set all graph symbols to "tty" and swap out other non tty friendly symbols. #* Will force 16-color mode and TTY theme, set all graph symbols to "tty" and swap out other non tty friendly symbols.
force_tty = false force_tty = false
#* Option to disable presets. Either the default preset, custom presets, or all presets.
#* "Off" All presets are enabled.
#* "Default" preset is disabled.#* "Custom" presets are disabled.#* "All" presets are disabled.
disable_presets = "Off"
#* Define presets for the layout of the boxes. Preset 0 is always all boxes shown with default settings. Max 9 presets. #* Define presets for the layout of the boxes. Preset 0 is always all boxes shown with default settings. Max 9 presets.
#* Format: "box_name:P:G,box_name:P:G" P=(0 or 1) for alternate positions, G=graph symbol to use for box. #* Format: "box_name:P:G,box_name:P:G" P=(0 or 1) for alternate positions, G=graph symbol to use for box.
#* Use whitespace " " as separator between different presets. #* Use whitespace " " as separator between different presets.
@@ -29,9 +24,6 @@ presets = "cpu:1:default,proc:0:default cpu:0:default,mem:0:default,net:0:defaul
#* Conflicting keys for h:"help" and k:"kill" is accessible while holding shift. #* Conflicting keys for h:"help" and k:"kill" is accessible while holding shift.
vim_keys = false vim_keys = false
#* Disable all mouse events.
disable_mouse = false
#* Rounded corners on boxes, is ignored if TTY mode is ON. #* Rounded corners on boxes, is ignored if TTY mode is ON.
rounded_corners = true rounded_corners = true
@@ -61,14 +53,14 @@ graph_symbol_net = "default"
graph_symbol_proc = "default" graph_symbol_proc = "default"
#* Manually set which boxes to show. Available values are "cpu mem net proc" and "gpu0" through "gpu5", separate values with whitespace. #* Manually set which boxes to show. Available values are "cpu mem net proc" and "gpu0" through "gpu5", separate values with whitespace.
shown_boxes = "gpu0 cpu mem net proc" shown_boxes = "cpu mem net proc gpu0"
#* Update time in milliseconds, recommended 2000 ms or above for better sample times for graphs. #* Update time in milliseconds, recommended 2000 ms or above for better sample times for graphs.
update_ms = 2000 update_ms = 2000
#* Processes sorting, "pid" "program" "arguments" "threads" "user" "memory" "cpu lazy" "cpu direct", #* Processes sorting, "pid" "program" "arguments" "threads" "user" "memory" "cpu lazy" "cpu direct",
#* "cpu lazy" sorts top process over time (easier to follow), "cpu direct" updates top process directly. #* "cpu lazy" sorts top process over time (easier to follow), "cpu direct" updates top process directly.
proc_sorting = "memory" proc_sorting = "cpu lazy"
#* Reverse sorting order, True or False. #* Reverse sorting order, True or False.
proc_reversed = false proc_reversed = false
@@ -100,9 +92,6 @@ proc_left = false
#* (Linux) Filter processes tied to the Linux kernel(similar behavior to htop). #* (Linux) Filter processes tied to the Linux kernel(similar behavior to htop).
proc_filter_kernel = false proc_filter_kernel = false
#* Should the process list follow the selected process when detailed view is open.
proc_follow_detailed = true
#* In tree-view, always accumulate child process resources in the parent process. #* In tree-view, always accumulate child process resources in the parent process.
proc_aggregate = false proc_aggregate = false
@@ -219,9 +208,6 @@ io_graph_combined = false
#* Example: "/mnt/media:100 /:20 /boot:1". #* Example: "/mnt/media:100 /:20 /boot:1".
io_graph_speeds = "" io_graph_speeds = ""
#* Swap the positions of the upload and download speed graphs. When true, upload will be on top.
swap_upload_download = false
#* Set fixed values for network graphs in Mebibits. Is only used if net_auto is also set to False. #* Set fixed values for network graphs in Mebibits. Is only used if net_auto is also set to False.
net_download = 100 net_download = 100
@@ -264,7 +250,7 @@ rsmi_measure_pcie_speeds = true
#* Horizontally mirror the GPU graph. #* Horizontally mirror the GPU graph.
gpu_mirror_graph = true gpu_mirror_graph = true
#* Set which GPU vendors to show. Available values are "nvidia amd intel apple" #* Set which GPU vendors to show. Available values are "nvidia amd intel"
shown_gpus = "nvidia amd intel" shown_gpus = "nvidia amd intel"
#* Custom gpu0 model name, empty string to disable. #* Custom gpu0 model name, empty string to disable.
+44 -3
View File
@@ -32,9 +32,6 @@ dpi-aware=yes
# selection-target=primary # selection-target=primary
# workers=<number of logical CPUs> # workers=<number of logical CPUs>
[main]
include=/usr/share/foot/themes/gruvbox
[environment] [environment]
SYSTEMD_EDITOR=/usr/bin/nvim SYSTEMD_EDITOR=/usr/bin/nvim
EDITOR=/usr/bin/nvim EDITOR=/usr/bin/nvim
@@ -71,6 +68,50 @@ lines=100000
# hide-when-typing=no # hide-when-typing=no
# alternate-scroll-mode=yes # alternate-scroll-mode=yes
[colors]
alpha=0.9 # Adjust alpha to change transparency level
foreground=cdd6f4
background=1e1e2e
cursor=11111b f5e0dc
regular0=45475a
regular1=f38ba8
regular2=a6e3a1
regular3=f9e2af
regular4=89b4fa
regular5=f5c2e7
regular6=94e2d5
regular7=bac2de
bright0=585b70
bright1=f38ba8
bright2=a6e3a1
bright3=f9e2af
bright4=89b4fa
bright5=f5c2e7
bright6=94e2d5
bright7=a6adc8
## dimmed colors (see foot.ini(5) man page)
# dim0=<not set>
# ...
# dim7=<not-set>
## The remaining 256-color palette
16=fab387
17=f5e0dc
# ...
# 255 = <256-color palette #255>
# Misc colors
selection-foreground=cdd6f4
selection-background=414356
jump-labels=11111b fab387
# scrollback-indicator=<regular0> <bright4> # black-on-bright-blue
search-box-no-match=11111b f38ba8
search-box-match=cdd6f4 313244
urls=89b4fa
[csd] [csd]
# preferred=server # preferred=server
size=0 size=0
+156
View File
@@ -0,0 +1,156 @@
# Syntax highlighting
# -------------------
"attribute" = "yellow"
"type" = "yellow"
"type.enum.variant" = "teal"
"constructor" = "sapphire"
"constant" = "peach"
"constant.character" = "teal"
"constant.character.escape" = "pink"
"string" = "green"
"string.regexp" = "pink"
"string.special" = "blue"
"string.special.symbol" = "red"
"comment" = { fg = "overlay2", modifiers = ["italic"] }
"variable" = "text"
"variable.parameter" = { fg = "maroon", modifiers = ["italic"] }
"variable.builtin" = "red"
"variable.other.member" = "teal"
"label" = "sapphire" # used for lifetimes
"punctuation" = "overlay2"
"punctuation.special" = "sky"
"keyword" = "mauve"
"keyword.control.conditional" = { fg = "mauve", modifiers = ["italic"] }
"operator" = "sky"
"function" = "blue"
"function.macro" = "mauve"
"tag" = "blue"
"namespace" = { fg = "yellow", modifiers = ["italic"] }
"special" = "blue" # fuzzy highlight
"markup.heading.marker" = { fg = "peach", modifiers = ["bold"] }
"markup.heading.1" = "lavender"
"markup.heading.2" = "mauve"
"markup.heading.3" = "green"
"markup.heading.4" = "yellow"
"markup.heading.5" = "pink"
"markup.heading.6" = "teal"
"markup.list" = "mauve"
"markup.bold" = { modifiers = ["bold"] }
"markup.italic" = { modifiers = ["italic"] }
"markup.link.url" = { fg = "blue", modifiers = ["italic", "underlined"] }
"markup.link.text" = "blue"
"markup.raw" = "flamingo"
"diff.plus" = "green"
"diff.minus" = "red"
"diff.delta" = "blue"
# User Interface
# --------------
"ui.background" = { fg = "text", bg = "base" }
"ui.linenr" = { fg = "surface1" }
"ui.linenr.selected" = { fg = "lavender" }
"ui.statusline" = { fg = "subtext1", bg = "mantle" }
"ui.statusline.inactive" = { fg = "surface2", bg = "mantle" }
"ui.statusline.normal" = { fg = "base", bg = "lavender", modifiers = ["bold"] }
"ui.statusline.insert" = { fg = "base", bg = "green", modifiers = ["bold"] }
"ui.statusline.select" = { fg = "base", bg = "flamingo", modifiers = ["bold"] }
"ui.popup" = { fg = "text", bg = "surface0" }
"ui.window" = { fg = "crust" }
"ui.help" = { fg = "overlay2", bg = "surface0" }
"ui.bufferline" = { fg = "subtext0", bg = "mantle" }
"ui.bufferline.active" = { fg = "mauve", bg = "base", underline = { color = "mauve", style = "line" } }
"ui.bufferline.background" = { bg = "crust" }
"ui.text" = "text"
"ui.text.focus" = { fg = "text", bg = "surface0", modifiers = ["bold"] }
"ui.text.inactive" = { fg = "overlay1" }
"ui.virtual" = "overlay0"
"ui.virtual.ruler" = { bg = "surface0" }
"ui.virtual.indent-guide" = "surface0"
"ui.virtual.inlay-hint" = { fg = "surface1", bg = "mantle" }
"ui.virtual.jump-label" = { fg = "rosewater", modifiers = ["bold"] }
"ui.selection" = { bg = "surface1" }
"ui.cursor" = { fg = "base", bg = "secondary_cursor" }
"ui.cursor.primary" = { fg = "base", bg = "rosewater" }
"ui.cursor.match" = { fg = "peach", modifiers = ["bold"] }
"ui.cursor.primary.normal" = { fg = "base", bg = "lavender" }
"ui.cursor.primary.insert" = { fg = "base", bg = "green" }
"ui.cursor.primary.select" = { fg = "base", bg = "flamingo" }
"ui.cursor.normal" = { fg = "base", bg = "secondary_cursor_normal" }
"ui.cursor.insert" = { fg = "base", bg = "secondary_cursor_insert" }
"ui.cursor.select" = { fg = "base", bg = "secondary_cursor" }
"ui.cursorline.primary" = { bg = "cursorline" }
"ui.highlight" = { bg = "surface1", modifiers = ["bold"] }
"ui.menu" = { fg = "overlay2", bg = "surface0" }
"ui.menu.selected" = { fg = "text", bg = "surface1", modifiers = ["bold"] }
"diagnostic.error" = { underline = { color = "red", style = "curl" } }
"diagnostic.warning" = { underline = { color = "yellow", style = "curl" } }
"diagnostic.info" = { underline = { color = "sky", style = "curl" } }
"diagnostic.hint" = { underline = { color = "teal", style = "curl" } }
error = "red"
warning = "yellow"
info = "sky"
hint = "teal"
[palette]
rosewater = "#f2d5cf"
flamingo = "#eebebe"
pink = "#f4b8e4"
mauve = "#ca9ee6"
red = "#e78284"
maroon = "#ea999c"
peach = "#ef9f76"
yellow = "#e5c890"
green = "#a6d189"
teal = "#81c8be"
sky = "#99d1db"
sapphire = "#85c1dc"
blue = "#8caaee"
lavender = "#babbf1"
text = "#c6d0f5"
subtext1 = "#b5bfe2"
subtext0 = "#a5adce"
overlay2 = "#949cbb"
overlay1 = "#838ba7"
overlay0 = "#737994"
surface2 = "#626880"
surface1 = "#51576d"
surface0 = "#414559"
base = "#303446"
mantle = "#292c3c"
crust = "#232634"
cursorline = "#3b3f52"
secondary_cursor = "#b8a5a6"
secondary_cursor_normal = "#9192be"
secondary_cursor_insert = "#83a275"
+156
View File
@@ -0,0 +1,156 @@
# Syntax highlighting
# -------------------
"attribute" = "yellow"
"type" = "yellow"
"type.enum.variant" = "teal"
"constructor" = "sapphire"
"constant" = "peach"
"constant.character" = "teal"
"constant.character.escape" = "pink"
"string" = "green"
"string.regexp" = "pink"
"string.special" = "blue"
"string.special.symbol" = "red"
"comment" = { fg = "overlay2", modifiers = ["italic"] }
"variable" = "text"
"variable.parameter" = { fg = "maroon", modifiers = ["italic"] }
"variable.builtin" = "red"
"variable.other.member" = "teal"
"label" = "sapphire" # used for lifetimes
"punctuation" = "overlay2"
"punctuation.special" = "sky"
"keyword" = "mauve"
"keyword.control.conditional" = { fg = "mauve", modifiers = ["italic"] }
"operator" = "sky"
"function" = "blue"
"function.macro" = "mauve"
"tag" = "blue"
"namespace" = { fg = "yellow", modifiers = ["italic"] }
"special" = "blue" # fuzzy highlight
"markup.heading.marker" = { fg = "peach", modifiers = ["bold"] }
"markup.heading.1" = "lavender"
"markup.heading.2" = "mauve"
"markup.heading.3" = "green"
"markup.heading.4" = "yellow"
"markup.heading.5" = "pink"
"markup.heading.6" = "teal"
"markup.list" = "mauve"
"markup.bold" = { modifiers = ["bold"] }
"markup.italic" = { modifiers = ["italic"] }
"markup.link.url" = { fg = "blue", modifiers = ["italic", "underlined"] }
"markup.link.text" = "blue"
"markup.raw" = "flamingo"
"diff.plus" = "green"
"diff.minus" = "red"
"diff.delta" = "blue"
# User Interface
# --------------
"ui.background" = { fg = "text", bg = "base" }
"ui.linenr" = { fg = "surface1" }
"ui.linenr.selected" = { fg = "lavender" }
"ui.statusline" = { fg = "subtext1", bg = "mantle" }
"ui.statusline.inactive" = { fg = "surface2", bg = "mantle" }
"ui.statusline.normal" = { fg = "base", bg = "lavender", modifiers = ["bold"] }
"ui.statusline.insert" = { fg = "base", bg = "green", modifiers = ["bold"] }
"ui.statusline.select" = { fg = "base", bg = "flamingo", modifiers = ["bold"] }
"ui.popup" = { fg = "text", bg = "surface0" }
"ui.window" = { fg = "crust" }
"ui.help" = { fg = "overlay2", bg = "surface0" }
"ui.bufferline" = { fg = "subtext0", bg = "mantle" }
"ui.bufferline.active" = { fg = "mauve", bg = "base", underline = { color = "mauve", style = "line" } }
"ui.bufferline.background" = { bg = "crust" }
"ui.text" = "text"
"ui.text.focus" = { fg = "text", bg = "surface0", modifiers = ["bold"] }
"ui.text.inactive" = { fg = "overlay1" }
"ui.virtual" = "overlay0"
"ui.virtual.ruler" = { bg = "surface0" }
"ui.virtual.indent-guide" = "surface0"
"ui.virtual.inlay-hint" = { fg = "surface1", bg = "mantle" }
"ui.virtual.jump-label" = { fg = "rosewater", modifiers = ["bold"] }
"ui.selection" = { bg = "surface1" }
"ui.cursor" = { fg = "base", bg = "secondary_cursor" }
"ui.cursor.primary" = { fg = "base", bg = "rosewater" }
"ui.cursor.match" = { fg = "peach", modifiers = ["bold"] }
"ui.cursor.primary.normal" = { fg = "base", bg = "lavender" }
"ui.cursor.primary.insert" = { fg = "base", bg = "green" }
"ui.cursor.primary.select" = { fg = "base", bg = "flamingo" }
"ui.cursor.normal" = { fg = "base", bg = "secondary_cursor_normal" }
"ui.cursor.insert" = { fg = "base", bg = "secondary_cursor_insert" }
"ui.cursor.select" = { fg = "base", bg = "secondary_cursor" }
"ui.cursorline.primary" = { bg = "cursorline" }
"ui.highlight" = { bg = "surface1", modifiers = ["bold"] }
"ui.menu" = { fg = "overlay2", bg = "surface0" }
"ui.menu.selected" = { fg = "text", bg = "surface1", modifiers = ["bold"] }
"diagnostic.error" = { underline = { color = "red", style = "curl" } }
"diagnostic.warning" = { underline = { color = "yellow", style = "curl" } }
"diagnostic.info" = { underline = { color = "sky", style = "curl" } }
"diagnostic.hint" = { underline = { color = "teal", style = "curl" } }
error = "red"
warning = "yellow"
info = "sky"
hint = "teal"
[palette]
rosewater = "#dc8a78"
flamingo = "#dd7878"
pink = "#ea76cb"
mauve = "#8839ef"
red = "#d20f39"
maroon = "#e64553"
peach = "#fe640b"
yellow = "#df8e1d"
green = "#40a02b"
teal = "#179299"
sky = "#04a5e5"
sapphire = "#209fb5"
blue = "#1e66f5"
lavender = "#7287fd"
text = "#4c4f69"
subtext1 = "#5c5f77"
subtext0 = "#6c6f85"
overlay2 = "#7c7f93"
overlay1 = "#8c8fa1"
overlay0 = "#9ca0b0"
surface2 = "#acb0be"
surface1 = "#bcc0cc"
surface0 = "#ccd0da"
base = "#eff1f5"
mantle = "#e6e9ef"
crust = "#dce0e8"
cursorline = "#e8ecf1"
secondary_cursor = "#e1a99d"
secondary_cursor_normal = "#97a7fb"
secondary_cursor_insert = "#74b867"
@@ -0,0 +1,159 @@
# Syntax highlighting
# -------------------
"attribute" = "yellow"
"type" = "yellow"
"type.enum.variant" = "teal"
"constructor" = "sapphire"
"constant" = "peach"
"constant.character" = "teal"
"constant.character.escape" = "pink"
"string" = "green"
"string.regexp" = "pink"
"string.special" = "blue"
"string.special.symbol" = "red"
"comment" = { fg = "overlay2", modifiers = ["italic"] }
"variable" = "text"
"variable.parameter" = { fg = "maroon", modifiers = ["italic"] }
"variable.builtin" = "red"
"variable.other.member" = "teal"
"label" = "sapphire" # used for lifetimes
"punctuation" = "overlay2"
"punctuation.special" = "sky"
"keyword" = "mauve"
"keyword.control.conditional" = { fg = "mauve", modifiers = ["italic"] }
"operator" = "sky"
"function" = "blue"
"function.macro" = "mauve"
"tag" = "blue"
"namespace" = { fg = "yellow", modifiers = ["italic"] }
"special" = "blue" # fuzzy highlight
"markup.heading.marker" = { fg = "peach", modifiers = ["bold"] }
"markup.heading.1" = "lavender"
"markup.heading.2" = "mauve"
"markup.heading.3" = "green"
"markup.heading.4" = "yellow"
"markup.heading.5" = "pink"
"markup.heading.6" = "teal"
"markup.list" = "mauve"
"markup.bold" = { modifiers = ["bold"] }
"markup.italic" = { modifiers = ["italic"] }
"markup.link.url" = { fg = "blue", modifiers = ["italic", "underlined"] }
"markup.link.text" = "blue"
"markup.raw" = "flamingo"
"diff.plus" = "green"
"diff.minus" = "red"
"diff.delta" = "blue"
# User Interface
# --------------
# fix issue with background color getting messed up in tmux...
"ui.background" = { }
# "ui.background" = { fg = "text", bg = "base" }
"ui.linenr" = { fg = "surface1" }
"ui.linenr.selected" = { fg = "lavender" }
"ui.statusline" = { fg = "subtext1", bg = "mantle" }
"ui.statusline.inactive" = { fg = "surface2", bg = "mantle" }
"ui.statusline.normal" = { fg = "base", bg = "lavender", modifiers = ["bold"] }
"ui.statusline.insert" = { fg = "base", bg = "green", modifiers = ["bold"] }
"ui.statusline.select" = { fg = "base", bg = "flamingo", modifiers = ["bold"] }
"ui.popup" = { fg = "text", bg = "surface0" }
"ui.window" = { fg = "crust" }
"ui.help" = { fg = "overlay2", bg = "surface0" }
"ui.bufferline" = { fg = "subtext0", bg = "mantle" }
"ui.bufferline.active" = { fg = "mauve", bg = "base", underline = { color = "mauve", style = "line" } }
"ui.bufferline.background" = { bg = "crust" }
"ui.text" = "text"
"ui.text.focus" = { fg = "text", bg = "surface0", modifiers = ["bold"] }
"ui.text.inactive" = { fg = "overlay1" }
"ui.virtual" = "overlay0"
"ui.virtual.ruler" = { bg = "surface0" }
"ui.virtual.indent-guide" = "surface0"
"ui.virtual.inlay-hint" = { fg = "surface1", bg = "mantle" }
"ui.virtual.jump-label" = { fg = "rosewater", modifiers = ["bold"] }
"ui.selection" = { bg = "surface1" }
"ui.cursor" = { fg = "base", bg = "secondary_cursor" }
"ui.cursor.primary" = { fg = "base", bg = "rosewater" }
"ui.cursor.match" = { fg = "peach", modifiers = ["bold"] }
"ui.cursor.primary.normal" = { fg = "base", bg = "lavender" }
"ui.cursor.primary.insert" = { fg = "base", bg = "green" }
"ui.cursor.primary.select" = { fg = "base", bg = "flamingo" }
"ui.cursor.normal" = { fg = "base", bg = "secondary_cursor_normal" }
"ui.cursor.insert" = { fg = "base", bg = "secondary_cursor_insert" }
"ui.cursor.select" = { fg = "base", bg = "secondary_cursor" }
"ui.cursorline.primary" = { bg = "cursorline" }
"ui.highlight" = { bg = "surface1", modifiers = ["bold"] }
"ui.menu" = { fg = "overlay2", bg = "surface0" }
"ui.menu.selected" = { fg = "text", bg = "surface1", modifiers = ["bold"] }
"diagnostic.error" = { underline = { color = "red", style = "curl" } }
"diagnostic.warning" = { underline = { color = "yellow", style = "curl" } }
"diagnostic.info" = { underline = { color = "sky", style = "curl" } }
"diagnostic.hint" = { underline = { color = "teal", style = "curl" } }
error = "red"
warning = "yellow"
info = "sky"
hint = "teal"
[palette]
rosewater = "#f4dbd6"
flamingo = "#f0c6c6"
pink = "#f5bde6"
mauve = "#c6a0f6"
red = "#ed8796"
maroon = "#ee99a0"
peach = "#f5a97f"
yellow = "#eed49f"
green = "#a6da95"
teal = "#8bd5ca"
sky = "#91d7e3"
sapphire = "#7dc4e4"
blue = "#8aadf4"
lavender = "#b7bdf8"
text = "#cad3f5"
subtext1 = "#b8c0e0"
subtext0 = "#a5adcb"
overlay2 = "#939ab7"
overlay1 = "#8087a2"
overlay0 = "#6e738d"
surface2 = "#5b6078"
surface1 = "#494d64"
surface0 = "#363a4f"
base = "#24273a"
mantle = "#1e2030"
crust = "#181926"
cursorline = "#303347"
secondary_cursor = "#b6a6a7"
secondary_cursor_normal = "#8b91bf"
secondary_cursor_insert = "#80a57a"
+156
View File
@@ -0,0 +1,156 @@
# Syntax highlighting
# -------------------
"attribute" = "yellow"
"type" = "yellow"
"type.enum.variant" = "teal"
"constructor" = "sapphire"
"constant" = "peach"
"constant.character" = "teal"
"constant.character.escape" = "pink"
"string" = "green"
"string.regexp" = "pink"
"string.special" = "blue"
"string.special.symbol" = "red"
"comment" = { fg = "overlay2", modifiers = ["italic"] }
"variable" = "text"
"variable.parameter" = { fg = "maroon", modifiers = ["italic"] }
"variable.builtin" = "red"
"variable.other.member" = "teal"
"label" = "sapphire" # used for lifetimes
"punctuation" = "overlay2"
"punctuation.special" = "sky"
"keyword" = "mauve"
"keyword.control.conditional" = { fg = "mauve", modifiers = ["italic"] }
"operator" = "sky"
"function" = "blue"
"function.macro" = "mauve"
"tag" = "blue"
"namespace" = { fg = "yellow", modifiers = ["italic"] }
"special" = "blue" # fuzzy highlight
"markup.heading.marker" = { fg = "peach", modifiers = ["bold"] }
"markup.heading.1" = "lavender"
"markup.heading.2" = "mauve"
"markup.heading.3" = "green"
"markup.heading.4" = "yellow"
"markup.heading.5" = "pink"
"markup.heading.6" = "teal"
"markup.list" = "mauve"
"markup.bold" = { modifiers = ["bold"] }
"markup.italic" = { modifiers = ["italic"] }
"markup.link.url" = { fg = "blue", modifiers = ["italic", "underlined"] }
"markup.link.text" = "blue"
"markup.raw" = "flamingo"
"diff.plus" = "green"
"diff.minus" = "red"
"diff.delta" = "blue"
# User Interface
# --------------
"ui.background" = { fg = "text", bg = "base" }
"ui.linenr" = { fg = "surface1" }
"ui.linenr.selected" = { fg = "lavender" }
"ui.statusline" = { fg = "subtext1", bg = "mantle" }
"ui.statusline.inactive" = { fg = "surface2", bg = "mantle" }
"ui.statusline.normal" = { fg = "base", bg = "lavender", modifiers = ["bold"] }
"ui.statusline.insert" = { fg = "base", bg = "green", modifiers = ["bold"] }
"ui.statusline.select" = { fg = "base", bg = "flamingo", modifiers = ["bold"] }
"ui.popup" = { fg = "text", bg = "surface0" }
"ui.window" = { fg = "crust" }
"ui.help" = { fg = "overlay2", bg = "surface0" }
"ui.bufferline" = { fg = "subtext0", bg = "mantle" }
"ui.bufferline.active" = { fg = "mauve", bg = "base", underline = { color = "mauve", style = "line" } }
"ui.bufferline.background" = { bg = "crust" }
"ui.text" = "text"
"ui.text.focus" = { fg = "text", bg = "surface0", modifiers = ["bold"] }
"ui.text.inactive" = { fg = "overlay1" }
"ui.virtual" = "overlay0"
"ui.virtual.ruler" = { bg = "surface0" }
"ui.virtual.indent-guide" = "surface0"
"ui.virtual.inlay-hint" = { fg = "surface1", bg = "mantle" }
"ui.virtual.jump-label" = { fg = "rosewater", modifiers = ["bold"] }
"ui.selection" = { bg = "surface1" }
"ui.cursor" = { fg = "base", bg = "secondary_cursor" }
"ui.cursor.primary" = { fg = "base", bg = "rosewater" }
"ui.cursor.match" = { fg = "peach", modifiers = ["bold"] }
"ui.cursor.primary.normal" = { fg = "base", bg = "lavender" }
"ui.cursor.primary.insert" = { fg = "base", bg = "green" }
"ui.cursor.primary.select" = { fg = "base", bg = "flamingo" }
"ui.cursor.normal" = { fg = "base", bg = "secondary_cursor_normal" }
"ui.cursor.insert" = { fg = "base", bg = "secondary_cursor_insert" }
"ui.cursor.select" = { fg = "base", bg = "secondary_cursor" }
"ui.cursorline.primary" = { bg = "cursorline" }
"ui.highlight" = { bg = "surface1", modifiers = ["bold"] }
"ui.menu" = { fg = "overlay2", bg = "surface0" }
"ui.menu.selected" = { fg = "text", bg = "surface1", modifiers = ["bold"] }
"diagnostic.error" = { underline = { color = "red", style = "curl" } }
"diagnostic.warning" = { underline = { color = "yellow", style = "curl" } }
"diagnostic.info" = { underline = { color = "sky", style = "curl" } }
"diagnostic.hint" = { underline = { color = "teal", style = "curl" } }
error = "red"
warning = "yellow"
info = "sky"
hint = "teal"
[palette]
rosewater = "#f5e0dc"
flamingo = "#f2cdcd"
pink = "#f5c2e7"
mauve = "#cba6f7"
red = "#f38ba8"
maroon = "#eba0ac"
peach = "#fab387"
yellow = "#f9e2af"
green = "#a6e3a1"
teal = "#94e2d5"
sky = "#89dceb"
sapphire = "#74c7ec"
blue = "#89b4fa"
lavender = "#b4befe"
text = "#cdd6f4"
subtext1 = "#bac2de"
subtext0 = "#a6adc8"
overlay2 = "#9399b2"
overlay1 = "#7f849c"
overlay0 = "#6c7086"
surface2 = "#585b70"
surface1 = "#45475a"
surface0 = "#313244"
base = "#1e1e2e"
mantle = "#181825"
crust = "#11111b"
cursorline = "#2a2b3c"
secondary_cursor = "#b5a6a8"
secondary_cursor_normal = "#878ec0"
secondary_cursor_insert = "#7ea87f"
@@ -0,0 +1,156 @@
# Syntax highlighting
# -------------------
"attribute" = "yellow"
"type" = "yellow"
"type.enum.variant" = "teal"
"constructor" = "sapphire"
"constant" = "peach"
"constant.character" = "teal"
"constant.character.escape" = "pink"
"string" = "green"
"string.regexp" = "pink"
"string.special" = "blue"
"string.special.symbol" = "red"
"comment" = { fg = "overlay2" }
"variable" = "text"
"variable.parameter" = { fg = "maroon" }
"variable.builtin" = "red"
"variable.other.member" = "teal"
"label" = "sapphire" # used for lifetimes
"punctuation" = "overlay2"
"punctuation.special" = "sky"
"keyword" = "mauve"
"keyword.control.conditional" = { fg = "mauve" }
"operator" = "sky"
"function" = "blue"
"function.macro" = "mauve"
"tag" = "blue"
"namespace" = { fg = "yellow" }
"special" = "blue" # fuzzy highlight
"markup.heading.marker" = { fg = "peach", modifiers = ["bold"] }
"markup.heading.1" = "lavender"
"markup.heading.2" = "mauve"
"markup.heading.3" = "green"
"markup.heading.4" = "yellow"
"markup.heading.5" = "pink"
"markup.heading.6" = "teal"
"markup.list" = "mauve"
"markup.bold" = { modifiers = ["bold"] }
"markup.italic" = { modifiers = ["italic"] }
"markup.link.url" = { fg = "blue", modifiers = ["underlined"] }
"markup.link.text" = "blue"
"markup.raw" = "flamingo"
"diff.plus" = "green"
"diff.minus" = "red"
"diff.delta" = "blue"
# User Interface
# --------------
"ui.background" = { fg = "text", bg = "base" }
"ui.linenr" = { fg = "surface1" }
"ui.linenr.selected" = { fg = "lavender" }
"ui.statusline" = { fg = "subtext1", bg = "mantle" }
"ui.statusline.inactive" = { fg = "surface2", bg = "mantle" }
"ui.statusline.normal" = { fg = "base", bg = "lavender", modifiers = ["bold"] }
"ui.statusline.insert" = { fg = "base", bg = "green", modifiers = ["bold"] }
"ui.statusline.select" = { fg = "base", bg = "flamingo", modifiers = ["bold"] }
"ui.popup" = { fg = "text", bg = "surface0" }
"ui.window" = { fg = "crust" }
"ui.help" = { fg = "overlay2", bg = "surface0" }
"ui.bufferline" = { fg = "subtext0", bg = "mantle" }
"ui.bufferline.active" = { fg = "mauve", bg = "base", underline = { color = "mauve", style = "line" } }
"ui.bufferline.background" = { bg = "crust" }
"ui.text" = "text"
"ui.text.focus" = { fg = "text", bg = "surface0", modifiers = ["bold"] }
"ui.text.inactive" = { fg = "overlay1" }
"ui.virtual" = "overlay0"
"ui.virtual.ruler" = { bg = "surface0" }
"ui.virtual.indent-guide" = "surface0"
"ui.virtual.inlay-hint" = { fg = "surface1", bg = "mantle" }
"ui.virtual.jump-label" = { fg = "rosewater", modifiers = ["bold"] }
"ui.selection" = { bg = "surface1" }
"ui.cursor" = { fg = "base", bg = "secondary_cursor" }
"ui.cursor.primary" = { fg = "base", bg = "rosewater" }
"ui.cursor.match" = { fg = "peach", modifiers = ["bold"] }
"ui.cursor.primary.normal" = { fg = "base", bg = "lavender" }
"ui.cursor.primary.insert" = { fg = "base", bg = "green" }
"ui.cursor.primary.select" = { fg = "base", bg = "flamingo" }
"ui.cursor.normal" = { fg = "base", bg = "secondary_cursor_normal" }
"ui.cursor.insert" = { fg = "base", bg = "secondary_cursor_insert" }
"ui.cursor.select" = { fg = "base", bg = "secondary_cursor" }
"ui.cursorline.primary" = { bg = "cursorline" }
"ui.highlight" = { bg = "surface1", modifiers = ["bold"] }
"ui.menu" = { fg = "overlay2", bg = "surface0" }
"ui.menu.selected" = { fg = "text", bg = "surface1", modifiers = ["bold"] }
"diagnostic.error" = { underline = { color = "red", style = "curl" } }
"diagnostic.warning" = { underline = { color = "yellow", style = "curl" } }
"diagnostic.info" = { underline = { color = "sky", style = "curl" } }
"diagnostic.hint" = { underline = { color = "teal", style = "curl" } }
error = "red"
warning = "yellow"
info = "sky"
hint = "teal"
[palette]
rosewater = "#f2d5cf"
flamingo = "#eebebe"
pink = "#f4b8e4"
mauve = "#ca9ee6"
red = "#e78284"
maroon = "#ea999c"
peach = "#ef9f76"
yellow = "#e5c890"
green = "#a6d189"
teal = "#81c8be"
sky = "#99d1db"
sapphire = "#85c1dc"
blue = "#8caaee"
lavender = "#babbf1"
text = "#c6d0f5"
subtext1 = "#b5bfe2"
subtext0 = "#a5adce"
overlay2 = "#949cbb"
overlay1 = "#838ba7"
overlay0 = "#737994"
surface2 = "#626880"
surface1 = "#51576d"
surface0 = "#414559"
base = "#303446"
mantle = "#292c3c"
crust = "#232634"
cursorline = "#3b3f52"
secondary_cursor = "#b8a5a6"
secondary_cursor_normal = "#9192be"
secondary_cursor_insert = "#83a275"
@@ -0,0 +1,156 @@
# Syntax highlighting
# -------------------
"attribute" = "yellow"
"type" = "yellow"
"type.enum.variant" = "teal"
"constructor" = "sapphire"
"constant" = "peach"
"constant.character" = "teal"
"constant.character.escape" = "pink"
"string" = "green"
"string.regexp" = "pink"
"string.special" = "blue"
"string.special.symbol" = "red"
"comment" = { fg = "overlay2" }
"variable" = "text"
"variable.parameter" = { fg = "maroon" }
"variable.builtin" = "red"
"variable.other.member" = "teal"
"label" = "sapphire" # used for lifetimes
"punctuation" = "overlay2"
"punctuation.special" = "sky"
"keyword" = "mauve"
"keyword.control.conditional" = { fg = "mauve" }
"operator" = "sky"
"function" = "blue"
"function.macro" = "mauve"
"tag" = "blue"
"namespace" = { fg = "yellow" }
"special" = "blue" # fuzzy highlight
"markup.heading.marker" = { fg = "peach", modifiers = ["bold"] }
"markup.heading.1" = "lavender"
"markup.heading.2" = "mauve"
"markup.heading.3" = "green"
"markup.heading.4" = "yellow"
"markup.heading.5" = "pink"
"markup.heading.6" = "teal"
"markup.list" = "mauve"
"markup.bold" = { modifiers = ["bold"] }
"markup.italic" = { modifiers = ["italic"] }
"markup.link.url" = { fg = "blue", modifiers = ["underlined"] }
"markup.link.text" = "blue"
"markup.raw" = "flamingo"
"diff.plus" = "green"
"diff.minus" = "red"
"diff.delta" = "blue"
# User Interface
# --------------
"ui.background" = { fg = "text", bg = "base" }
"ui.linenr" = { fg = "surface1" }
"ui.linenr.selected" = { fg = "lavender" }
"ui.statusline" = { fg = "subtext1", bg = "mantle" }
"ui.statusline.inactive" = { fg = "surface2", bg = "mantle" }
"ui.statusline.normal" = { fg = "base", bg = "lavender", modifiers = ["bold"] }
"ui.statusline.insert" = { fg = "base", bg = "green", modifiers = ["bold"] }
"ui.statusline.select" = { fg = "base", bg = "flamingo", modifiers = ["bold"] }
"ui.popup" = { fg = "text", bg = "surface0" }
"ui.window" = { fg = "crust" }
"ui.help" = { fg = "overlay2", bg = "surface0" }
"ui.bufferline" = { fg = "subtext0", bg = "mantle" }
"ui.bufferline.active" = { fg = "mauve", bg = "base", underline = { color = "mauve", style = "line" } }
"ui.bufferline.background" = { bg = "crust" }
"ui.text" = "text"
"ui.text.focus" = { fg = "text", bg = "surface0", modifiers = ["bold"] }
"ui.text.inactive" = { fg = "overlay1" }
"ui.virtual" = "overlay0"
"ui.virtual.ruler" = { bg = "surface0" }
"ui.virtual.indent-guide" = "surface0"
"ui.virtual.inlay-hint" = { fg = "surface1", bg = "mantle" }
"ui.virtual.jump-label" = { fg = "rosewater", modifiers = ["bold"] }
"ui.selection" = { bg = "surface1" }
"ui.cursor" = { fg = "base", bg = "secondary_cursor" }
"ui.cursor.primary" = { fg = "base", bg = "rosewater" }
"ui.cursor.match" = { fg = "peach", modifiers = ["bold"] }
"ui.cursor.primary.normal" = { fg = "base", bg = "lavender" }
"ui.cursor.primary.insert" = { fg = "base", bg = "green" }
"ui.cursor.primary.select" = { fg = "base", bg = "flamingo" }
"ui.cursor.normal" = { fg = "base", bg = "secondary_cursor_normal" }
"ui.cursor.insert" = { fg = "base", bg = "secondary_cursor_insert" }
"ui.cursor.select" = { fg = "base", bg = "secondary_cursor" }
"ui.cursorline.primary" = { bg = "cursorline" }
"ui.highlight" = { bg = "surface1", modifiers = ["bold"] }
"ui.menu" = { fg = "overlay2", bg = "surface0" }
"ui.menu.selected" = { fg = "text", bg = "surface1", modifiers = ["bold"] }
"diagnostic.error" = { underline = { color = "red", style = "curl" } }
"diagnostic.warning" = { underline = { color = "yellow", style = "curl" } }
"diagnostic.info" = { underline = { color = "sky", style = "curl" } }
"diagnostic.hint" = { underline = { color = "teal", style = "curl" } }
error = "red"
warning = "yellow"
info = "sky"
hint = "teal"
[palette]
rosewater = "#dc8a78"
flamingo = "#dd7878"
pink = "#ea76cb"
mauve = "#8839ef"
red = "#d20f39"
maroon = "#e64553"
peach = "#fe640b"
yellow = "#df8e1d"
green = "#40a02b"
teal = "#179299"
sky = "#04a5e5"
sapphire = "#209fb5"
blue = "#1e66f5"
lavender = "#7287fd"
text = "#4c4f69"
subtext1 = "#5c5f77"
subtext0 = "#6c6f85"
overlay2 = "#7c7f93"
overlay1 = "#8c8fa1"
overlay0 = "#9ca0b0"
surface2 = "#acb0be"
surface1 = "#bcc0cc"
surface0 = "#ccd0da"
base = "#eff1f5"
mantle = "#e6e9ef"
crust = "#dce0e8"
cursorline = "#e8ecf1"
secondary_cursor = "#e1a99d"
secondary_cursor_normal = "#97a7fb"
secondary_cursor_insert = "#74b867"
@@ -0,0 +1,156 @@
# Syntax highlighting
# -------------------
"attribute" = "yellow"
"type" = "yellow"
"type.enum.variant" = "teal"
"constructor" = "sapphire"
"constant" = "peach"
"constant.character" = "teal"
"constant.character.escape" = "pink"
"string" = "green"
"string.regexp" = "pink"
"string.special" = "blue"
"string.special.symbol" = "red"
"comment" = { fg = "overlay2" }
"variable" = "text"
"variable.parameter" = { fg = "maroon" }
"variable.builtin" = "red"
"variable.other.member" = "teal"
"label" = "sapphire" # used for lifetimes
"punctuation" = "overlay2"
"punctuation.special" = "sky"
"keyword" = "mauve"
"keyword.control.conditional" = { fg = "mauve" }
"operator" = "sky"
"function" = "blue"
"function.macro" = "mauve"
"tag" = "blue"
"namespace" = { fg = "yellow" }
"special" = "blue" # fuzzy highlight
"markup.heading.marker" = { fg = "peach", modifiers = ["bold"] }
"markup.heading.1" = "lavender"
"markup.heading.2" = "mauve"
"markup.heading.3" = "green"
"markup.heading.4" = "yellow"
"markup.heading.5" = "pink"
"markup.heading.6" = "teal"
"markup.list" = "mauve"
"markup.bold" = { modifiers = ["bold"] }
"markup.italic" = { modifiers = ["italic"] }
"markup.link.url" = { fg = "blue", modifiers = ["underlined"] }
"markup.link.text" = "blue"
"markup.raw" = "flamingo"
"diff.plus" = "green"
"diff.minus" = "red"
"diff.delta" = "blue"
# User Interface
# --------------
"ui.background" = { fg = "text", bg = "base" }
"ui.linenr" = { fg = "surface1" }
"ui.linenr.selected" = { fg = "lavender" }
"ui.statusline" = { fg = "subtext1", bg = "mantle" }
"ui.statusline.inactive" = { fg = "surface2", bg = "mantle" }
"ui.statusline.normal" = { fg = "base", bg = "lavender", modifiers = ["bold"] }
"ui.statusline.insert" = { fg = "base", bg = "green", modifiers = ["bold"] }
"ui.statusline.select" = { fg = "base", bg = "flamingo", modifiers = ["bold"] }
"ui.popup" = { fg = "text", bg = "surface0" }
"ui.window" = { fg = "crust" }
"ui.help" = { fg = "overlay2", bg = "surface0" }
"ui.bufferline" = { fg = "subtext0", bg = "mantle" }
"ui.bufferline.active" = { fg = "mauve", bg = "base", underline = { color = "mauve", style = "line" } }
"ui.bufferline.background" = { bg = "crust" }
"ui.text" = "text"
"ui.text.focus" = { fg = "text", bg = "surface0", modifiers = ["bold"] }
"ui.text.inactive" = { fg = "overlay1" }
"ui.virtual" = "overlay0"
"ui.virtual.ruler" = { bg = "surface0" }
"ui.virtual.indent-guide" = "surface0"
"ui.virtual.inlay-hint" = { fg = "surface1", bg = "mantle" }
"ui.virtual.jump-label" = { fg = "rosewater", modifiers = ["bold"] }
"ui.selection" = { bg = "surface1" }
"ui.cursor" = { fg = "base", bg = "secondary_cursor" }
"ui.cursor.primary" = { fg = "base", bg = "rosewater" }
"ui.cursor.match" = { fg = "peach", modifiers = ["bold"] }
"ui.cursor.primary.normal" = { fg = "base", bg = "lavender" }
"ui.cursor.primary.insert" = { fg = "base", bg = "green" }
"ui.cursor.primary.select" = { fg = "base", bg = "flamingo" }
"ui.cursor.normal" = { fg = "base", bg = "secondary_cursor_normal" }
"ui.cursor.insert" = { fg = "base", bg = "secondary_cursor_insert" }
"ui.cursor.select" = { fg = "base", bg = "secondary_cursor" }
"ui.cursorline.primary" = { bg = "cursorline" }
"ui.highlight" = { bg = "surface1", modifiers = ["bold"] }
"ui.menu" = { fg = "overlay2", bg = "surface0" }
"ui.menu.selected" = { fg = "text", bg = "surface1", modifiers = ["bold"] }
"diagnostic.error" = { underline = { color = "red", style = "curl" } }
"diagnostic.warning" = { underline = { color = "yellow", style = "curl" } }
"diagnostic.info" = { underline = { color = "sky", style = "curl" } }
"diagnostic.hint" = { underline = { color = "teal", style = "curl" } }
error = "red"
warning = "yellow"
info = "sky"
hint = "teal"
[palette]
rosewater = "#f4dbd6"
flamingo = "#f0c6c6"
pink = "#f5bde6"
mauve = "#c6a0f6"
red = "#ed8796"
maroon = "#ee99a0"
peach = "#f5a97f"
yellow = "#eed49f"
green = "#a6da95"
teal = "#8bd5ca"
sky = "#91d7e3"
sapphire = "#7dc4e4"
blue = "#8aadf4"
lavender = "#b7bdf8"
text = "#cad3f5"
subtext1 = "#b8c0e0"
subtext0 = "#a5adcb"
overlay2 = "#939ab7"
overlay1 = "#8087a2"
overlay0 = "#6e738d"
surface2 = "#5b6078"
surface1 = "#494d64"
surface0 = "#363a4f"
base = "#24273a"
mantle = "#1e2030"
crust = "#181926"
cursorline = "#303347"
secondary_cursor = "#b6a6a7"
secondary_cursor_normal = "#8b91bf"
secondary_cursor_insert = "#80a57a"
@@ -0,0 +1,156 @@
# Syntax highlighting
# -------------------
"attribute" = "yellow"
"type" = "yellow"
"type.enum.variant" = "teal"
"constructor" = "sapphire"
"constant" = "peach"
"constant.character" = "teal"
"constant.character.escape" = "pink"
"string" = "green"
"string.regexp" = "pink"
"string.special" = "blue"
"string.special.symbol" = "red"
"comment" = { fg = "overlay2" }
"variable" = "text"
"variable.parameter" = { fg = "maroon" }
"variable.builtin" = "red"
"variable.other.member" = "teal"
"label" = "sapphire" # used for lifetimes
"punctuation" = "overlay2"
"punctuation.special" = "sky"
"keyword" = "mauve"
"keyword.control.conditional" = { fg = "mauve" }
"operator" = "sky"
"function" = "blue"
"function.macro" = "mauve"
"tag" = "blue"
"namespace" = { fg = "yellow" }
"special" = "blue" # fuzzy highlight
"markup.heading.marker" = { fg = "peach", modifiers = ["bold"] }
"markup.heading.1" = "lavender"
"markup.heading.2" = "mauve"
"markup.heading.3" = "green"
"markup.heading.4" = "yellow"
"markup.heading.5" = "pink"
"markup.heading.6" = "teal"
"markup.list" = "mauve"
"markup.bold" = { modifiers = ["bold"] }
"markup.italic" = { modifiers = ["italic"] }
"markup.link.url" = { fg = "blue", modifiers = ["underlined"] }
"markup.link.text" = "blue"
"markup.raw" = "flamingo"
"diff.plus" = "green"
"diff.minus" = "red"
"diff.delta" = "blue"
# User Interface
# --------------
"ui.background" = { fg = "text", bg = "base" }
"ui.linenr" = { fg = "surface1" }
"ui.linenr.selected" = { fg = "lavender" }
"ui.statusline" = { fg = "subtext1", bg = "mantle" }
"ui.statusline.inactive" = { fg = "surface2", bg = "mantle" }
"ui.statusline.normal" = { fg = "base", bg = "lavender", modifiers = ["bold"] }
"ui.statusline.insert" = { fg = "base", bg = "green", modifiers = ["bold"] }
"ui.statusline.select" = { fg = "base", bg = "flamingo", modifiers = ["bold"] }
"ui.popup" = { fg = "text", bg = "surface0" }
"ui.window" = { fg = "crust" }
"ui.help" = { fg = "overlay2", bg = "surface0" }
"ui.bufferline" = { fg = "subtext0", bg = "mantle" }
"ui.bufferline.active" = { fg = "mauve", bg = "base", underline = { color = "mauve", style = "line" } }
"ui.bufferline.background" = { bg = "crust" }
"ui.text" = "text"
"ui.text.focus" = { fg = "text", bg = "surface0", modifiers = ["bold"] }
"ui.text.inactive" = { fg = "overlay1" }
"ui.virtual" = "overlay0"
"ui.virtual.ruler" = { bg = "surface0" }
"ui.virtual.indent-guide" = "surface0"
"ui.virtual.inlay-hint" = { fg = "surface1", bg = "mantle" }
"ui.virtual.jump-label" = { fg = "rosewater", modifiers = ["bold"] }
"ui.selection" = { bg = "surface1" }
"ui.cursor" = { fg = "base", bg = "secondary_cursor" }
"ui.cursor.primary" = { fg = "base", bg = "rosewater" }
"ui.cursor.match" = { fg = "peach", modifiers = ["bold"] }
"ui.cursor.primary.normal" = { fg = "base", bg = "lavender" }
"ui.cursor.primary.insert" = { fg = "base", bg = "green" }
"ui.cursor.primary.select" = { fg = "base", bg = "flamingo" }
"ui.cursor.normal" = { fg = "base", bg = "secondary_cursor_normal" }
"ui.cursor.insert" = { fg = "base", bg = "secondary_cursor_insert" }
"ui.cursor.select" = { fg = "base", bg = "secondary_cursor" }
"ui.cursorline.primary" = { bg = "cursorline" }
"ui.highlight" = { bg = "surface1", modifiers = ["bold"] }
"ui.menu" = { fg = "overlay2", bg = "surface0" }
"ui.menu.selected" = { fg = "text", bg = "surface1", modifiers = ["bold"] }
"diagnostic.error" = { underline = { color = "red", style = "curl" } }
"diagnostic.warning" = { underline = { color = "yellow", style = "curl" } }
"diagnostic.info" = { underline = { color = "sky", style = "curl" } }
"diagnostic.hint" = { underline = { color = "teal", style = "curl" } }
error = "red"
warning = "yellow"
info = "sky"
hint = "teal"
[palette]
rosewater = "#f5e0dc"
flamingo = "#f2cdcd"
pink = "#f5c2e7"
mauve = "#cba6f7"
red = "#f38ba8"
maroon = "#eba0ac"
peach = "#fab387"
yellow = "#f9e2af"
green = "#a6e3a1"
teal = "#94e2d5"
sky = "#89dceb"
sapphire = "#74c7ec"
blue = "#89b4fa"
lavender = "#b4befe"
text = "#cdd6f4"
subtext1 = "#bac2de"
subtext0 = "#a6adc8"
overlay2 = "#9399b2"
overlay1 = "#7f849c"
overlay0 = "#6c7086"
surface2 = "#585b70"
surface1 = "#45475a"
surface0 = "#313244"
base = "#1e1e2e"
mantle = "#181825"
crust = "#11111b"
cursorline = "#2a2b3c"
secondary_cursor = "#b5a6a8"
secondary_cursor_normal = "#878ec0"
secondary_cursor_insert = "#7ea87f"
+1 -2
View File
@@ -28,7 +28,7 @@ application/x-bittorrent=org.qbittorrent.qBittorrent.desktop;
inode/directory=yazi.desktop; inode/directory=yazi.desktop;
x-scheme-handler/msteams=teams.desktop; x-scheme-handler/msteams=teams.desktop;
text/calendar=userapp-khalimport.desktop; text/calendar=userapp-khalimport.desktop;
x-scheme-handler/discord=discord.desktop x-scheme-handler/discord=vesktop.desktop;
application/vnd.openxmlformats-officedocument.wordprocessingml.document=org.kde.okular.desktop; application/vnd.openxmlformats-officedocument.wordprocessingml.document=org.kde.okular.desktop;
text/markdown=org.kde.okular.desktop; text/markdown=org.kde.okular.desktop;
application/zip=userapp-file-roller.desktop; application/zip=userapp-file-roller.desktop;
@@ -38,7 +38,6 @@ x-scheme-handler/vnc=org.remmina.Remmina.desktop;
x-scheme-handler/remmina=org.remmina.Remmina.desktop; x-scheme-handler/remmina=org.remmina.Remmina.desktop;
application/x-remmina=org.remmina.Remmina.desktop; application/x-remmina=org.remmina.Remmina.desktop;
application/vnd.openxmlformats-officedocument.wordprocessingml.document=libreoffice-writer.desktop; application/vnd.openxmlformats-officedocument.wordprocessingml.document=libreoffice-writer.desktop;
image/heif=qimgv.desktop
[Added Associations] [Added Associations]
+98
View File
@@ -0,0 +1,98 @@
# ttrss
ttrss-flag-publish "b"
ttrss-flag-star "a"
ttrss-login "admin"
ttrss-mode "multi"
ttrss-passwordeval "pass show ttrss"
ttrss-url "https://rss.hjarl.com/"
urls-source "ttrss"
# data
cache-file "~/.cache/newsboat/cache.db"
cookie-cache "~/.cache/newsboat/cookies.txt"
# feeds
auto-reload yes
delete-read-articles-on-quit yes
feed-sort-order unreadarticlecount-asc
prepopulate-query-feeds yes
reload-threads 11
reload-time 30
scrolloff 15
# display
article-sort-order date
datetime-format "%D %R"
download-full-page yes
external-url-viewer "urlscan"
html-renderer "w3m -dump -T text/html"
show-read-articles no
show-read-feeds no
text-width 72
# navigation
browser "$BROWSER %u >/dev/null 2>&1 &"
#browser "w3m %u"
goto-next-feed yes
goto-first-unread no
mark-as-read-on-hover yes
# bindings
# original bindings here https://raw.githubusercontent.com/newsboat/newsboat/master/src/keymap.cpp
# unbind
unbind-key f
unbind-key F
unbind-key C
unbind-key n
unbind-key p
unbind-key ^k
unbind-key ,
# bind
bind SPACE everywhere macro-prefix
bind l everywhere open
bind h everywhere quit
bind j everywhere down
bind k everywhere up
bind J everywhere next-feed
bind K everywhere prev-feed
bind J article next
bind K article prev
bind n everywhere next
bind p everywhere prev
bind g everywhere home
bind G everywhere end
bind ^F everywhere halfpagedown
bind ^B everywhere halfpageup
bind ^D everywhere pagedown
bind ^U everywhere pageup
bind d everywhere delete-article
bind D everywhere delete-all-articles
bind $ everywhere purge-deleted
bind a everywhere mark-all-above-as-read
bind A everywhere mark-feed-read
bind ^A everywhere mark-all-feeds-read
bind i everywhere sort
bind I everywhere rev-sort
bind T everywhere set-tag
bind t everywhere toggle-article-read
bind b everywhere toggle-source-view
bind U everywhere toggle-show-read-feeds
# macros
macro w set browser "w3m %u"; open-in-browser ; set browser "$BROWSER %u >/dev/null 2>&1 &"
macro l set browser "links %u"; open-in-browser ; set browser "$BROWSER %u >/dev/null 2>&1 &"
macro m set browser "mpv %u"; open-in-browser ; set browser "$BROWSER %u >/dev/null 2>&1 &"
# format
feedlist-title-format "(%u unread, %t total) Your feeds%?T? - tag %T&?"
articlelist-title-format "(%u unread, %t total) Articles in feed %T - %U"
searchresult-title-format "(%u unread, %t total) Search result"
itemview-title-format "(%u unread, %t total) Article %T"
filebrowser-title-format "%?O?Open File&Save File? - %f"
help-title-format "Help"
selecttag-title-format "Select Tag"
selectfilter-title-format "Select Filter"
urlview-title-format "URLs"
dialogs-title-format "Dialogs"
include "~/.config/newsboat/themes/catppuccin.dark"
+19
View File
@@ -0,0 +1,19 @@
# https://raw.githubusercontent.com/catppuccin/newsboat/refs/heads/main/themes/dark
color listnormal color15 default
color listnormal_unread color2 default
color listfocus_unread color2 color0
color listfocus default color0
color background default default
color article default default
color end-of-text-marker color8 default
color info color4 color8
color hint-separator default color8
color hint-description default color8
color title color14 color8
highlight article "^(Feed|Title|Author|Link|Date): .+" color4 default bold
highlight article "^(Feed|Title|Author|Link|Date):" color14 default bold
highlight article "\\((link|image|video)\\)" color8 default
highlight article "https?://[^ ]+" color4 default
highlight article "\[[0-9]+\]" color6 default bold
+19
View File
@@ -0,0 +1,19 @@
# https://raw.githubusercontent.com/catppuccin/newsboat/refs/heads/main/themes/latte
color listnormal color15 default
color listnormal_unread color2 default
color listfocus_unread color2 color15
color listfocus default color15
color background default default
color article default default
color end-of-text-marker color8 default
color info color4 color7
color hint-separator default color7
color hint-description default color7
color title color14 color7
highlight article "^(Feed|Title|Author|Link|Date): .+" color4 default bold
highlight article "^(Feed|Title|Author|Link|Date):" color14 default bold
highlight article "\\((link|image|video)\\)" color8 default
highlight article "https?://[^ ]+" color4 default
highlight article "\[[0-9]+\]" color6 default bold
-1
View File
@@ -2,4 +2,3 @@ vim.o.colorcolumn = "100"
vim.opt.tabstop = 4 vim.opt.tabstop = 4
vim.opt.shiftwidth = 4 vim.opt.shiftwidth = 4
vim.opt.softtabstop = 4 vim.opt.softtabstop = 4
vim.g.no_python_maps = 1
+209 -248
View File
@@ -7,6 +7,7 @@ vim.opt.shell = "/usr/bin/zsh"
vim.g.BASH_Ctrl_j = "off" vim.g.BASH_Ctrl_j = "off"
vim.g.BASH_Ctrl_l = "off" vim.g.BASH_Ctrl_l = "off"
vim.opt.clipboard:append("unnamedplus") vim.opt.clipboard:append("unnamedplus")
vim.opt.guicursor = "n-v-c:block-CustomCursor,i:ver100-CustomICursor,n-v-c:blinkon0,i:blinkwait10"
vim.opt.cursorline = true vim.opt.cursorline = true
vim.opt.list = true vim.opt.list = true
vim.opt.listchars = { tab = "", trail = "·", extends = "", precedes = "", nbsp = "+" } vim.opt.listchars = { tab = "", trail = "·", extends = "", precedes = "", nbsp = "+" }
@@ -42,7 +43,7 @@ vim.opt.smartindent = false
vim.opt.sessionoptions = { "buffers", "curdir", "tabpages", "winsize", "help", "globals", "skiprtp", "folds" } vim.opt.sessionoptions = { "buffers", "curdir", "tabpages", "winsize", "help", "globals", "skiprtp", "folds" }
-- Completion Window/Popup settings -- Completion Window/Popup settings
vim.opt.completeopt = { "menu", "menuone", "longest", "noselect", "noinsert", "popup", "preview" } vim.opt.completeopt = { "menu", "popup", "preview" }
vim.opt.pumblend = 10 vim.opt.pumblend = 10
vim.opt.pumheight = 10 vim.opt.pumheight = 10
vim.opt.winminwidth = 5 vim.opt.winminwidth = 5
@@ -76,6 +77,7 @@ vim.opt.splitkeep = "screen"
vim.opt.splitright = true vim.opt.splitright = true
-- Terminal & Status Column -- Terminal & Status Column
vim.opt.termguicolors = true
vim.opt.number = true vim.opt.number = true
vim.opt.relativenumber = true vim.opt.relativenumber = true
vim.diagnostic.config({ vim.diagnostic.config({
@@ -89,18 +91,21 @@ vim.diagnostic.config({
}, },
}, },
signs = false, signs = false,
virtual_lines = { -- virtual_lines = {
current_line = true, -- current_line = true,
spacing = vim.o.shiftwidth, -- spacing = vim.o.shiftwidth,
severity = { min = vim.diagnostic.severity.ERROR }, -- severity = { min = vim.diagnostic.severity.ERROR },
}, -- },
float = { source = true }, float = { source = true },
}) })
vim.lsp.set_log_level(2)
vim.api.nvim_create_autocmd("BufEnter", { vim.api.nvim_create_autocmd("FileType", {
desc = "Disable auto-commenting on new line", desc = "Disable auto-commenting on new line",
pattern = "*", pattern = "*",
callback = function() vim.opt_local.formatoptions:remove({ "r", "o" }) end, callback = function()
vim.opt_local.formatoptions:remove({ "r", "o" })
end,
}) })
-- ---------------------------------------- -- ----------------------------------------
@@ -161,6 +166,10 @@ map("v", ">", ">gv")
map("v", "<Tab>", ">gv") map("v", "<Tab>", ">gv")
map("v", "<S-Tab>", "<gv") map("v", "<S-Tab>", "<gv")
-- commenting
map("n", "gco", "o<esc>Vcx<esc><cmd>normal gcc<cr>fxa<bs>", { desc = "Add Comment Below" })
map("n", "gcO", "O<esc>Vcx<esc><cmd>normal gcc<cr>fxa<bs>", { desc = "Add Comment Above" })
-- new file -- new file
map("n", "<leader>n", "<cmd>enew<cr>", { desc = "New File" }) map("n", "<leader>n", "<cmd>enew<cr>", { desc = "New File" })
@@ -211,22 +220,29 @@ map(
) )
-- LSP -- LSP
-- Global Diagnostic mappings (Diagnostics work independently of LSP) map("n", "<leader>ld", "<cmd>e ~/.local/state/nvim/lsp.log<cr>")
map("n", "<leader>lc", "<cmd>checkhealth<cr>")
local diagnostic_goto = function(count, severity) local diagnostic_goto = function(count, severity)
severity = severity and vim.diagnostic.severity[severity] or nil severity = severity and vim.diagnostic.severity[severity] or nil
return function() vim.diagnostic.jump({ severity = severity, count = count }) end return function() vim.diagnostic.jump({ severity, count = count }) end
end end
map("n", "<M-i>", function() vim.diagnostic.open_float({ source = true }) end)
map("n", "<leader>ld", "<cmd>e ~/.local/state/nvim/lsp.log<cr>", { desc = "LSP Log" })
map("n", "<leader>lc", "<cmd>checkhealth<cr>", { desc = "Checkhealth" })
map("n", "<M-i>", function() vim.diagnostic.open_float({ source = true }) end, { desc = "Line Diagnostics" })
map("n", "<M-n>", diagnostic_goto(1), { desc = "Next Diagnostic" }) map("n", "<M-n>", diagnostic_goto(1), { desc = "Next Diagnostic" })
map("n", "<M-p>", diagnostic_goto(-1), { desc = "Prev Diagnostic" }) map("n", "<M-p>", diagnostic_goto(-1), { desc = "Prev Diagnostic" })
map("n", "[e", diagnostic_goto(-1, "ERROR"), { desc = "Prev Error" }) map("n", "[e", diagnostic_goto(-1, "ERROR"), { desc = "Prev Error" })
map("n", "[w", diagnostic_goto(-1, "WARN"), { desc = "Prev Warning" }) map("n", "[w", diagnostic_goto(-1, "WARN"), { desc = "Prev Warning" })
map("n", "]e", diagnostic_goto(1, "ERROR"), { desc = "Next Error" }) map("n", "]e", diagnostic_goto(1, "ERROR"), { desc = "Next Error" })
map("n", "]w", diagnostic_goto(1, "WARN"), { desc = "Next Warning" }) map("n", "]w", diagnostic_goto(1, "WARN"), { desc = "Next Warning" })
map("n", "gd", vim.lsp.buf.definition, { desc = "Goto Definition" })
map("n", "gD", vim.lsp.buf.type_definition, { desc = "Goto Type Definition" })
map("n", "gi", vim.lsp.buf.declaration, { desc = "Goto Declaration" })
map("n", "gI", vim.lsp.buf.implementation, { desc = "Goto Implementation" })
map("n", "gl", vim.diagnostic.setloclist, { desc = "Diagnostics to Location List" }) map("n", "gl", vim.diagnostic.setloclist, { desc = "Diagnostics to Location List" })
map("n", "gr", function() vim.lsp.buf.references({ includeDeclaration = false }) end, { desc = "Goto References" })
map({ "n", "i" }, "<M-x>", vim.lsp.buf.signature_help)
map("n", "K", vim.lsp.buf.hover)
map("n", "<M-r>", vim.lsp.buf.rename)
map({ "n", "x" }, "<leader>ca", vim.lsp.buf.code_action, { desc = "Code Action" })
-- ---------------------------------------- -- ----------------------------------------
-- AUTOCMD -- AUTOCMD
@@ -298,37 +314,86 @@ vim.api.nvim_create_user_command("ConvertEOL", function(opts)
}) })
end, { nargs = 1 }) end, { nargs = 1 })
-- fix diff colors on some color schemes
-- https://codeyarns.com/tech/2011-07-29-vim-chart-of-color-names.html
vim.api.nvim_create_user_command("FixColors", function()
vim.api.nvim_set_hl(0, "CustomCursor", { fg = "salmon1", bg = "cyan" })
vim.api.nvim_set_hl(0, "CustomICursor", { fg = "salmon1", bg = "cyan" })
vim.api.nvim_set_hl(0, "ColorColumn", { bg = "salmon4" })
end, {})
-- ---------------------------------------- -- ----------------------------------------
-- SPECS -- SPECS
-- ---------------------------------------- -- ----------------------------------------
local function makespecs_themes() local function makespecs_themes()
return { return {
{ "aktersnurra/no-clown-fiesta.nvim", opts = { transparent = false } },
"NLKNguyen/papercolor-theme",
"junegunn/seoul256.vim", "junegunn/seoul256.vim",
"mcauley-penney/phobos-anomaly.nvim",
"folke/tokyonight.nvim", "folke/tokyonight.nvim",
{ "bluz71/vim-moonfly-colors", name = "moonfly", lazy = false },
{ {
"uloco/bluloco.nvim", "uloco/bluloco.nvim",
lazy = false, lazy = false,
dependencies = { "rktjmp/lush.nvim" }, dependencies = { "rktjmp/lush.nvim" },
opts = {}, opts = {},
}, },
"sainnhe/gruvbox-material", {
"sainnhe/everforest", "mhartington/oceanic-next",
"sainnhe/edge", config = function()
"sainnhe/sonokai", local customthemegroup = vim.api.nvim_create_augroup("customthemegroup", {})
{ "catppuccin/nvim", name = "catppuccin", opts = { auto_integrations = true } }, vim.api.nvim_create_autocmd("ColorScheme", {
pattern = { "OceanicNext" },
group = customthemegroup,
callback = function()
vim.api.nvim_set_hl(0, "DiffAdded", { default = false, link = "DiffAdd" })
vim.api.nvim_set_hl(0, "DiffRemoved", { default = false, link = "DiffDelete" })
vim.api.nvim_set_hl(0, "Normal", {})
vim.api.nvim_set_hl(0, "LineNr", {})
vim.api.nvim_set_hl(0, "SignColumn", {})
vim.api.nvim_set_hl(0, "EndOfBuffer", {})
end,
})
end,
},
"morhetz/gruvbox",
{
"catppuccin/nvim",
name = "catppuccin",
-- opts = { integrations = { grug_far = true, mason = true, noice = true, snacks = true, which_key = true } },
},
{
"Shatur/neovim-ayu",
init = function() vim.g.ayu_extended_palette = 1 end,
},
"tomasr/molokai",
"jnurmine/Zenburn",
} }
end end
local function makespec_lspconfig() local function makespec_lspconfig()
local rootdirfix = function(root_markers)
return function(bufnr, on_dir)
on_dir(require("lspconfig").util.root_pattern(unpack(root_markers))(vim.fn.bufname(bufnr)))
end
end
return { return {
"neovim/nvim-lspconfig", "neovim/nvim-lspconfig",
lazy = false,
event = { "BufReadPost", "BufNewFile" },
cmd = { "LspInfo", "LspRestart", "LspStart", "LspStop" },
keys = { { "<F4>", "<cmd>LspInfo<cr>", noremap = true } },
config = function() config = function()
-- Lua
vim.lsp.config("lua_ls", { vim.lsp.config("lua_ls", {
cmd = { "lua-language-server" },
settings = { settings = {
Lua = { Lua = {
workspace = { checkThirdParty = false, library = { vim.env.VIMRUNTIME } }, workspace = {
checkThirdParty = false,
library = { vim.env.VIMRUNTIME },
},
telemetry = { enable = false }, telemetry = { enable = false },
diagnostics = { globals = { "vim" } }, diagnostics = { globals = { "vim" } },
format = { enable = false }, format = { enable = false },
@@ -364,7 +429,7 @@ local function makespec_lspconfig()
vim.lsp.config("yamlls", { vim.lsp.config("yamlls", {
settings = { settings = {
yaml = { yaml = {
schemas = { kubernetes = vim.fn.expand("~/src/hjarl/system/manifests/*.yaml") }, schemas = { kubernetes = "/home/hjalmarlucius/src/hjarl/system/manifests/*.yaml" },
-- schemaStore = { enable = false, url = "" }, -- schemaStore = { enable = false, url = "" },
}, },
}, },
@@ -372,21 +437,24 @@ local function makespec_lspconfig()
vim.lsp.config("ty", { vim.lsp.config("ty", {
cmd = { "ty", "server" }, cmd = { "ty", "server" },
filetypes = { "python" }, filetypes = { "python" },
root_markers = { ".git" }, root_dir = rootdirfix({ ".git", "pyproject.toml", "setup.py", "setup.cfg" }),
settings = { ty = { completions = { autoImport = false }, experimental = { rename = true } } }, settings = { ty = { experimental = { rename = true } } },
}) })
vim.lsp.config("pyrefly", { vim.lsp.config("pyrefly", {
cmd = { "pyrefly", "lsp" }, cmd = { "pyrefly", "lsp" },
filetypes = { "python" }, filetypes = { "python" },
root_markers = { ".git" }, root_dir = rootdirfix({ ".git", "pyproject.toml", "setup.py", "setup.cfg", "pyrefly.toml" }),
}) })
vim.lsp.config("pylsp", { vim.lsp.config("pylsp", {
filetypes = { "python" }, filetypes = { "python" },
root_markers = { ".git" }, root_dir = rootdirfix({ ".git", "pyproject.toml", "setup.py", "setup.cfg" }),
settings = { settings = {
pylsp = { pylsp = {
plugins = { plugins = {
pylsp_mypy = { enabled = true, dmypy = true }, pylsp_mypy = {
enabled = true,
dmypy = true,
},
pycodestyle = { enabled = false }, pycodestyle = { enabled = false },
mccabe = { enabled = false }, mccabe = { enabled = false },
}, },
@@ -396,10 +464,11 @@ local function makespec_lspconfig()
vim.lsp.config("basedpyright", { vim.lsp.config("basedpyright", {
cmd = { "basedpyright-langserver", "--stdio", "--threads", "20" }, cmd = { "basedpyright-langserver", "--stdio", "--threads", "20" },
filetypes = { "python" }, filetypes = { "python" },
root_markers = { ".git" }, root_dir = rootdirfix({ ".git", "pyproject.toml", "setup.py", "setup.cfg", "pyrightconfig.json" }),
settings = { settings = {
python = { python = {
analysis = { analysis = {
-- logLevel = "Trace",
autoImportCompletions = false, autoImportCompletions = false,
diagnosticMode = "workspace", diagnosticMode = "workspace",
logTypeEvaluationTime = true, logTypeEvaluationTime = true,
@@ -416,12 +485,16 @@ local function makespec_lspconfig()
autoUseWorkspaceTsdk = true, autoUseWorkspaceTsdk = true,
experimental = { experimental = {
maxInlayHintLength = 30, maxInlayHintLength = 30,
completion = { enableServerSideFuzzyMatch = true }, completion = {
enableServerSideFuzzyMatch = true,
},
}, },
}, },
javascript = { javascript = {
updateImportsOnFileMove = { enabled = "always" }, updateImportsOnFileMove = { enabled = "always" },
suggest = { completeFunctionCalls = true }, suggest = {
completeFunctionCalls = true,
},
inlayHints = { inlayHints = {
enumMemberValues = { enabled = true }, enumMemberValues = { enabled = true },
functionLikeReturnTypes = { enabled = true }, functionLikeReturnTypes = { enabled = true },
@@ -433,7 +506,9 @@ local function makespec_lspconfig()
}, },
typescript = { typescript = {
updateImportsOnFileMove = { enabled = "always" }, updateImportsOnFileMove = { enabled = "always" },
suggest = { completeFunctionCalls = true }, suggest = {
completeFunctionCalls = true,
},
inlayHints = { inlayHints = {
enumMemberValues = { enabled = true }, enumMemberValues = { enabled = true },
functionLikeReturnTypes = { enabled = true }, functionLikeReturnTypes = { enabled = true },
@@ -446,18 +521,6 @@ local function makespec_lspconfig()
}, },
}) })
vim.lsp.config("tinymist", {
cmd = { "tinymist" },
filetypes = { "typst" },
root_markers = { ".git", "typst.toml" },
})
vim.lsp.config("bashls", {
cmd = { "bash-language-server", "start" },
filetypes = { "sh", "bash" },
root_markers = { ".git" },
})
vim.lsp.enable("bashls") vim.lsp.enable("bashls")
vim.lsp.enable("clangd") vim.lsp.enable("clangd")
vim.lsp.enable("html") vim.lsp.enable("html")
@@ -469,58 +532,10 @@ local function makespec_lspconfig()
vim.lsp.enable("tinymist") vim.lsp.enable("tinymist")
vim.lsp.enable("vtsls") vim.lsp.enable("vtsls")
vim.lsp.enable("yamlls") vim.lsp.enable("yamlls")
vim.api.nvim_create_autocmd("FileType", {
group = vim.api.nvim_create_augroup("DefeatFtpluginOmnifunc", { clear = true }),
pattern = { "python" },
callback = function(ev)
vim.schedule(function()
if vim.api.nvim_buf_is_valid(ev.buf) then vim.bo[ev.buf].omnifunc = "v:lua.vim.lsp.omnifunc" end
end)
end,
})
vim.api.nvim_create_autocmd("LspAttach", {
group = vim.api.nvim_create_augroup("UserLspConfig", { clear = true }),
callback = function(ev)
local bmap = function(mode, keys, func, desc)
vim.keymap.set(mode, keys, func, { buffer = ev.buf, desc = desc, silent = true })
end
bmap("n", "gd", vim.lsp.buf.definition, "Goto Definition")
bmap("n", "gD", vim.lsp.buf.declaration, "Goto Declaration")
bmap("n", "gy", vim.lsp.buf.type_definition, "Goto Type Definition")
bmap({ "n", "i" }, "<M-x>", vim.lsp.buf.signature_help, "Signature Help")
bmap("i", "<C-Space>", "<C-x><C-o>", "Trigger LSP Completion")
bmap("i", "<C-l>", "<C-n>", "Buffer/Keyword Completion")
bmap("i", "<C-f>", "<C-x><C-f>", "File Path Completion")
local client = vim.lsp.get_client_by_id(ev.data.client_id)
if client and client.server_capabilities.inlayHintProvider and vim.lsp.inlay_hint then
bmap(
"n",
"<leader>uh",
function() vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled()) end,
"Toggle Inlay Hints"
)
end
end,
})
end, end,
} }
end end
local function makespec_smearcursor()
return {
"sphamba/smear-cursor.nvim",
event = "VeryLazy",
opts = {
enabled = false, -- Dormant on startup
stiffness = 0.8,
trailing_stiffness = 0.5,
},
}
end
local function makespec_hexokinase() local function makespec_hexokinase()
return { return {
-- coloring of colornames -- coloring of colornames
@@ -535,12 +550,7 @@ local function makespec_lualine()
"nvim-lualine/lualine.nvim", "nvim-lualine/lualine.nvim",
dependencies = { "echasnovski/mini.icons", "folke/noice.nvim" }, dependencies = { "echasnovski/mini.icons", "folke/noice.nvim" },
opts = { opts = {
options = { options = { theme = "auto", globalstatus = false, always_divide_middle = false },
theme = "auto",
globalstatus = false,
always_divide_middle = false,
disabled_filetypes = { statusline = { "snacks_picker_list" } },
},
extensions = { "fugitive", "neo-tree", "lazy" }, extensions = { "fugitive", "neo-tree", "lazy" },
sections = { sections = {
lualine_a = { "mode" }, lualine_a = { "mode" },
@@ -578,6 +588,7 @@ local function makespec_lualine()
lualine_b = {}, lualine_b = {},
lualine_c = {}, lualine_c = {},
lualine_x = { lualine_x = {
-- { 'require("noice").api.status.message.get()', color = { fg = "#99c794" } }, -- gets too obtrusive
{ 'require("noice").api.status.mode.get()', color = "lualine_a_command" }, { 'require("noice").api.status.mode.get()', color = "lualine_a_command" },
{ 'require("noice").api.status.command.get()', color = "lualine_a_command" }, { 'require("noice").api.status.command.get()', color = "lualine_a_command" },
}, },
@@ -725,7 +736,7 @@ local function makespecs_previewers()
return { return {
{ {
"chomosuke/typst-preview.nvim", "chomosuke/typst-preview.nvim",
lazy = false, lazy = false, -- or ft = 'typst'
version = "1.*", version = "1.*",
opts = { opts = {
-- debug = true, -- debug = true,
@@ -736,9 +747,16 @@ local function makespecs_previewers()
get_root = function(filename) get_root = function(filename)
local root = os.getenv("TYPST_ROOT") local root = os.getenv("TYPST_ROOT")
if root then return root end if root then return root end
local git_root = vim.fs.root(filename, ".git") local dir0 = vim.fn.fnamemodify(filename, ":p:h")
if git_root then return git_root end local dir = dir0
return vim.fn.fnamemodify(filename, ":p:h") for _ = 1, 10 do
if vim.fn.isdirectory(dir .. "/.git/") ~= 0 or vim.fn.filereadable(dir .. "/.git") ~= 0 then
print("root dir: " .. dir)
return dir
end
dir = vim.fn.fnamemodify(dir, ":p:h:h")
end
return dir0
end, end,
}, },
}, },
@@ -842,17 +860,16 @@ local function makespec_fugitive()
"GBrowse", "GBrowse",
}, },
config = function() config = function()
vim.api.nvim_create_autocmd("FileType", { vim.api.nvim_create_autocmd("User", {
group = vim.api.nvim_create_augroup("fugitive_folds", { clear = true }), pattern = { "FugitiveCommit", "BufReadPost" },
pattern = { "fugitive", "gitcommit" },
callback = function() callback = function()
vim.opt_local.foldmethod = "expr" vim.opt_local.foldmethod = "syntax"
vim.opt_local.foldlevel = 99 vim.opt_local.foldlevel = 0
end, end,
}) })
end, end,
keys = { keys = {
{ "<leader>gg", "<cmd>vertical Git<cr>", desc = "Fugitive Status" }, { "<leader>gg", "<cmd>vertical Git<cr>", desc = "Fugitive" },
{ "<leader>gp", "<cmd>Git! push<cr>", desc = "Git Push" }, { "<leader>gp", "<cmd>Git! push<cr>", desc = "Git Push" },
{ "<leader>gP", "<cmd>Git! push -f<cr>", desc = "Git Force Push" }, { "<leader>gP", "<cmd>Git! push -f<cr>", desc = "Git Force Push" },
}, },
@@ -861,7 +878,7 @@ end
local function makespec_gitsigns() local function makespec_gitsigns()
local function on_gitsigns_attach(bufnr) local function on_gitsigns_attach(bufnr)
local gs = package.loaded.gitsigns local gs = require("gitsigns")
local function next_hunk() local function next_hunk()
if vim.wo.diff then if vim.wo.diff then
vim.cmd.normal({ "]c", bang = true }) vim.cmd.normal({ "]c", bang = true })
@@ -877,45 +894,43 @@ local function makespec_gitsigns()
end end
end end
local function bmap(mode, l, r, desc) vim.keymap.set(mode, l, r, { buffer = bufnr, desc = desc }) end local function bmap(l, r, desc, mode) vim.keymap.set(mode or "n", l, r, { buffer = bufnr, desc = desc }) end
-- Navigation -- Navigation
bmap("n", "<M-,>", next_hunk, "Prev Hunk") bmap("<M-,>", next_hunk, "Prev Hunk")
bmap("n", "<M-.>", prev_hunk, "Next Hunk") bmap("<M-.>", prev_hunk, "Next Hunk")
bmap("n", "[h", prev_hunk, "Prev Hunk") bmap("[h", prev_hunk, "Prev Hunk")
bmap("n", "]h", next_hunk, "Next Hunk") bmap("]h", next_hunk, "Next Hunk")
-- Blame -- Blame
bmap("n", "<leader>gB", gs.blame, "Blame Buffer") bmap("<leader>gB", gs.blame, "Blame Buffer")
bmap("n", "<leader>gb", function() gs.blame_line({ full = true }) end, "Blame Line") bmap("<leader>gb", function() gs.blame_line({ full = true }) end, "Blame Line")
-- Hunk -- Hunk
bmap("n", "<leader>gi", gs.preview_hunk_inline, "Preview Hunk Inline") bmap("<leader>gI", gs.preview_hunk_inline, "Preview Hunk Inline")
bmap("n", "<leader>gp", gs.preview_hunk, "Preview Hunk") bmap("<leader>gi", gs.preview_hunk, "Preview Hunk")
bmap("n", "<leader>gq", gs.setqflist, "File Hunks to QuickFix") bmap("<leader>gq", gs.setqflist, "File Hunks to QuickFix")
bmap("n", "<leader>gQ", function() gs.setqflist("all") end, "All Hunks to QuickFix") bmap("<leader>gQ", function() gs.setqflist("all") end, "All Hunks to QuickFix")
bmap("n", "<leader>gx", gs.reset_hunk, "Reset Hunk") bmap("<leader>gx", gs.reset_hunk, "Reset Hunk")
bmap("v", "<leader>gx", function() gs.reset_hunk({ vim.fn.line("."), vim.fn.line("v") }) end, "Reset Selection") bmap("<leader>gx", function() gs.reset_hunk({ vim.fn.line("."), vim.fn.line("v") }) end, "Reset Hunk", "v")
bmap("n", "<leader>gR", gs.reset_buffer, "Reset Buffer") bmap("<leader>gR", gs.reset_buffer, "Reset Buffer")
bmap("n", "<leader>gs", gs.stage_hunk, "Stage Hunk") bmap("<leader>gs", gs.stage_hunk, "Stage Hunk")
bmap("v", "<leader>gs", function() gs.stage_hunk({ vim.fn.line("."), vim.fn.line("v") }) end, "Stage Selection") bmap("<leader>gs", function() gs.stage_hunk({ vim.fn.line("."), vim.fn.line("v") }) end, "Stage Hunk", "v")
bmap("n", "<leader>gS", gs.stage_buffer, "Stage Buffer") bmap("<leader>gS", gs.stage_buffer, "Stage Buffer")
bmap({ "n", "v" }, "<leader>gv", gs.select_hunk, "Select Hunk") bmap("<leader>gv", gs.select_hunk, "Select Hunk", { "n", "v" })
-- Toggles -- Toggles
bmap("n", "<leader>gtw", gs.toggle_word_diff, "Toggle Diff Word Colors") bmap("<leader>gtw", gs.toggle_word_diff, "Toggle Diff Word Colors")
bmap("n", "<leader>gtl", gs.toggle_linehl, "Toggle Diff Line Highlight") bmap("<leader>gtl", gs.toggle_linehl, "Toggle Diff Line Highlight")
bmap("n", "<leader>gtn", gs.toggle_numhl, "Toggle Diff Line Number Highlight") bmap("<leader>gtb", gs.toggle_current_line_blame, "Toggle Line Blame")
bmap("n", "<leader>gtb", gs.toggle_current_line_blame, "Toggle Line Blame") bmap("<leader>gtn", gs.toggle_numhl, "Toggle Diff Line Number Highlight")
bmap("n", "<leader>gtd", gs.toggle_deleted, "Toggle Deleted")
-- Text object, e.g. for dih to delete hunk -- Text object, e.g. for dih to delete hunk
bmap({ "o", "x" }, "ih", ":<C-U>Gitsigns select_hunk<CR>", "Select Hunk") bmap("ih", "<cmd>Gitsigns select_hunk<CR>", "Select Hunk", { "o", "x" })
end end
return { return {
"lewis6991/gitsigns.nvim", "lewis6991/gitsigns.nvim",
event = { "BufReadPre", "BufNewFile" },
opts = { opts = {
signcolumn = true, signcolumn = true,
numhl = false, numhl = false,
@@ -944,6 +959,7 @@ local function makespec_whichkey()
"folke/which-key.nvim", "folke/which-key.nvim",
event = "VeryLazy", event = "VeryLazy",
opts = { opts = {
defaults = {},
spec = { spec = {
{ {
mode = { "n", "v" }, mode = { "n", "v" },
@@ -960,12 +976,6 @@ local function makespec_whichkey()
{ "[", group = "prev" }, { "[", group = "prev" },
{ "]", group = "next" }, { "]", group = "next" },
{ "g", group = "goto" }, { "g", group = "goto" },
{ "gr", group = "lsp actions", icon = { icon = "", color = "purple" } },
{ "gra", desc = "Code Action" },
{ "gri", desc = "Goto Implementation" },
{ "grn", desc = "Rename Symbol" },
{ "grr", desc = "Goto References" },
{ "gy", desc = "Goto Type Definition" },
{ "gs", group = "surround" }, { "gs", group = "surround" },
{ "z", group = "fold" }, { "z", group = "fold" },
{ "<leader><tab>", group = "tabs" }, { "<leader><tab>", group = "tabs" },
@@ -983,7 +993,7 @@ local function makespec_whichkey()
keys = { keys = {
{ {
"<leader>?", "<leader>?",
function() require("which-key").show({ global = true }) end, function() require("which-key").show({ global = false }) end,
desc = "Buffer Keymaps (which-key)", desc = "Buffer Keymaps (which-key)",
}, },
{ {
@@ -1027,13 +1037,27 @@ local function makespec_snacks()
notify = true, -- show notification when big file detected notify = true, -- show notification when big file detected
size = 1.5 * 1024 * 1024, -- 1.5MB size = 1.5 * 1024 * 1024, -- 1.5MB
line_length = 1000, -- average line length (useful for minified files) line_length = 1000, -- average line length (useful for minified files)
-- Enable or disable features when big file detected
---@param ctx {buf: number, ft:string}
setup = function(ctx)
if vim.fn.exists(":NoMatchParen") ~= 0 then vim.cmd([[NoMatchParen]]) end
Snacks.util.wo(0, { foldmethod = "manual", statuscolumn = "", conceallevel = 0 })
vim.schedule(function()
if vim.api.nvim_buf_is_valid(ctx.buf) then vim.bo[ctx.buf].syntax = ctx.ft end
end)
end,
}, },
bufdelete = { enabled = true }, bufdelete = { enabled = true },
debug = { enabled = true }, debug = { enabled = true },
image = { enabled = true }, image = { enabled = true },
indent = { enabled = true }, indent = { enabled = true },
lazygit = { enabled = vim.fn.has("lazygit") == 1 }, lazygit = { enabled = vim.fn.has("lazygit") == 1 },
notifier = { enabled = true, style = "minimal", refresh = 500, top_down = false }, notifier = {
enabled = true,
style = "minimal",
refresh = 500,
top_down = false,
},
---@class snacks.picker ---@class snacks.picker
picker = { picker = {
formatters = { file = { filename_first = true } }, formatters = { file = { filename_first = true } },
@@ -1053,7 +1077,12 @@ local function makespec_snacks()
}, },
}, },
toggle = { enabled = true }, toggle = { enabled = true },
styles = { lazygit = { width = 0, height = 0 } }, styles = {
lazygit = {
width = 0,
height = 0,
},
},
}, },
-- stylua: ignore -- stylua: ignore
keys = { keys = {
@@ -1066,10 +1095,10 @@ local function makespec_snacks()
{ "<M-f>", function() Snacks.picker.git_files() end, desc = "Find Git Files" }, { "<M-f>", function() Snacks.picker.git_files() end, desc = "Find Git Files" },
{ "<leader>fg", function() Snacks.picker.git_files() end, desc = "Find Git Files" }, { "<leader>fg", function() Snacks.picker.git_files() end, desc = "Find Git Files" },
{ "<leader>fa", function() Snacks.picker.files() end, desc = "Find Files" }, { "<leader>fa", function() Snacks.picker.files() end, desc = "Find Files" },
{ "<leader>fc", function() Snacks.picker.files({ cwd = vim.fn.expand("~/dotfiles"), title="Find Configs" }) end, desc = "Find Config" }, { "<leader>fc", function() Snacks.picker.files({ cwd = "/home/hjalmarlucius/dotfiles", title="Find Configs" }) end, desc = "Find Config" },
{ "<leader>fn", function() Snacks.picker.files({ cwd = vim.fn.expand("~/notes"), title="Find Notes" }) end, desc = "Find Note", }, { "<leader>fn", function() Snacks.picker.files({ cwd = "/home/hjalmarlucius/notes", title="Find Notes" }) end, desc = "Find Note", },
-- logs -- logs
{ "<leader>ll", function() Snacks.notifier.show_history() end, desc = "Notification History" }, { "<leader>ll", function() Snacks.picker.notifications() end, desc = "Notification History" },
-- code -- code
{ "<leader>cs", function() Snacks.picker.lsp_symbols() end, desc = "LSP Symbols" }, { "<leader>cs", function() Snacks.picker.lsp_symbols() end, desc = "LSP Symbols" },
{ "<leader>cw", function() Snacks.picker.lsp_workspace_symbols() end, desc = "LSP Workspace Symbols" }, { "<leader>cw", function() Snacks.picker.lsp_workspace_symbols() end, desc = "LSP Workspace Symbols" },
@@ -1118,12 +1147,6 @@ local function makespec_snacks()
Snacks.toggle.option("spell", { name = "Spelling" }):map("<leader>us") Snacks.toggle.option("spell", { name = "Spelling" }):map("<leader>us")
Snacks.toggle.treesitter():map("<leader>ut") Snacks.toggle.treesitter():map("<leader>ut")
Snacks.toggle.option("wrap", { name = "Wrap" }):map("<leader>uw") Snacks.toggle.option("wrap", { name = "Wrap" }):map("<leader>uw")
-- Toggle for Smear Cursor
Snacks.toggle({
name = "Smear Cursor",
get = function() return require("smear_cursor").enabled end,
set = function(state) require("smear_cursor").enabled = state end,
}):map("<leader>uS")
end, end,
}) })
end, end,
@@ -1137,25 +1160,6 @@ local function makespecs_mini()
opts = { options = { basic = true, extra_ui = true }, mappings = { move_with_alt = true } }, opts = { options = { basic = true, extra_ui = true }, mappings = { move_with_alt = true } },
}, },
{ "echasnovski/mini.icons", opts = {} }, { "echasnovski/mini.icons", opts = {} },
{
"echasnovski/mini.bracketed",
version = false,
event = "VeryLazy",
opts = {
-- Disabled because your custom LSP mappings (]e, ]w) are better!
diagnostic = { suffix = "", options = {} },
-- These are the heavy hitters. They map [ and ] automatically.
buffer = { suffix = "b", options = {} }, -- ]b / [b
quickfix = { suffix = "q", options = {} }, -- ]q / [q
location = { suffix = "l", options = {} }, -- ]l / [l
yank = { suffix = "y", options = {} }, -- ]y / [y (cycle pasted text)
indent = { suffix = "i", options = {} }, -- ]i / [i (match indent level)
file = { suffix = "f", options = {} }, -- ]f / [f (next file on disk)
window = { suffix = "w", options = {} }, -- ]w / [w (cycle windows)
undo = { suffix = "u", options = {} }, -- ]u / [u (traverse undo tree)
},
},
{ {
"echasnovski/mini.surround", "echasnovski/mini.surround",
version = false, version = false,
@@ -1224,15 +1228,15 @@ local function makespec_smartsplits()
lazy = false, lazy = false,
-- stylua: ignore -- stylua: ignore
keys = { keys = {
{ "<M-h>", function() require("smart-splits").move_cursor_left() end, desc = "Go to Left Window" }, { "<M-h>", function() require("smart-splits").move_cursor_left() end, { desc = "Go to Left Window", remap = true } },
{ "<M-j>", function() require("smart-splits").move_cursor_down() end, desc = "Go to Lower Window" }, { "<M-j>", function() require("smart-splits").move_cursor_down() end, { desc = "Go to Left Window", remap = true } },
{ "<M-k>", function() require("smart-splits").move_cursor_up() end, desc = "Go to Upper Window" }, { "<M-k>", function() require("smart-splits").move_cursor_up() end, { desc = "Go to Left Window", remap = true } },
{ "<M-l>", function() require("smart-splits").move_cursor_right() end, desc = "Go to Right Window" }, { "<M-l>", function() require("smart-splits").move_cursor_right() end, { desc = "Go to Left Window", remap = true } },
{ "<M-\\>", function() require("smart-splits").move_cursor_previous() end, desc = "Go to Previous Window" }, { "<M-\\>", function() require("smart-splits").move_cursor_previous() end, { desc = "Go to Previous Window", remap = true } },
{ "<C-h>", function() require("smart-splits").resize_left() end, desc = "Resize Window Left" }, { "<C-h>", function() require("smart-splits").resize_left() end, { desc = "Resize Window Left", remap = true } },
{ "<C-j>", function() require("smart-splits").resize_down() end, desc = "Resize Window Down" }, { "<C-j>", function() require("smart-splits").resize_down() end, { desc = "Resize Window Down", remap = true } },
{ "<C-k>", function() require("smart-splits").resize_up() end, desc = "Resize Window Up" }, { "<C-k>", function() require("smart-splits").resize_up() end, { desc = "Resize Window Up", remap = true } },
{ "<C-l>", function() require("smart-splits").resize_right() end, desc = "Resize Window Right" }, { "<C-l>", function() require("smart-splits").resize_right() end, { desc = "Resize Window Right", remap = true } },
}, },
} }
end end
@@ -1294,7 +1298,7 @@ local function makespec_flash()
exclude = { exclude = {
function(win) function(win)
return vim.bo[vim.api.nvim_win_get_buf(win)].filetype return vim.bo[vim.api.nvim_win_get_buf(win)].filetype
== "snacks_picker_list" ~= "snacks_picker_list"
end, end,
}, },
}, },
@@ -1341,8 +1345,6 @@ local function makespec_treesitter()
return { return {
"nvim-treesitter/nvim-treesitter", "nvim-treesitter/nvim-treesitter",
build = ":TSUpdate", build = ":TSUpdate",
lazy = false,
main = "nvim-treesitter.configs",
opts = { opts = {
ensure_installed = { ensure_installed = {
"bash", "bash",
@@ -1372,33 +1374,8 @@ local function makespec_treesitter()
}, },
auto_install = true, auto_install = true,
highlight = { enable = true }, highlight = { enable = true },
indent = { indent = { enable = true, disable = { "python" } },
enable = true, -- incremental_selection done by flash plugin
disable = function(lang, buf) return lang == "python" end,
},
},
}
end
local function makespec_treewalker()
return {
"aaronik/treewalker.nvim",
-- Load when you open a file that Treesitter supports
event = { "BufReadPost", "BufNewFile" },
opts = {
-- Briefly highlights the block of code you just jumped to
highlight = true,
},
keys = {
-- Normal and Visual mode mappings
{ "]]", "<cmd>Treewalker Down<cr>", mode = { "n", "v" }, desc = "Next Sibling (Current Level)" },
{ "[[", "<cmd>Treewalker Up<cr>", mode = { "n", "v" }, desc = "Prev Sibling (Current Level)" },
{ "((", "<cmd>Treewalker Left<cr>", mode = { "n", "v" }, desc = "Go Out (Parent Level)" },
{ "))", "<cmd>Treewalker Right<cr>", mode = { "n", "v" }, desc = "Go In (Child Level)" },
-- Optional: Swap nodes! (Move current block down/up past its sibling)
{ "<leader>Sj", "<cmd>Treewalker SwapDown<cr>", desc = "Swap Block Down" },
{ "<leader>Sk", "<cmd>Treewalker SwapUp<cr>", desc = "Swap Block Up" },
}, },
} }
end end
@@ -1433,20 +1410,15 @@ end
local function makespec_lint() local function makespec_lint()
return { return {
"mfussenegger/nvim-lint", "mfussenegger/nvim-lint",
event = { "BufReadPre", "BufNewFile" },
config = function() config = function()
local lint = require("lint") require("lint").linters_by_ft = {
lint.linters_by_ft = {
javascript = { "eslint_d" }, javascript = { "eslint_d" },
typescript = { "eslint_d" }, typescript = { "eslint_d" },
html = { "tidy", "eslint_d" }, html = { "tidy", "eslint_d" },
go = { "golangcilint" }, go = { "golangcilint" },
sh = { "shellcheck" }, sh = { "shellcheck" },
} }
local lint_augroup = vim.api.nvim_create_augroup("nvim_lint", { clear = true })
vim.api.nvim_create_autocmd({ "BufEnter", "BufWritePost", "InsertLeave" }, { vim.api.nvim_create_autocmd({ "BufEnter", "BufWritePost", "InsertLeave" }, {
group = lint_augroup,
callback = function() require("lint").try_lint() end, callback = function() require("lint").try_lint() end,
}) })
end, end,
@@ -1456,26 +1428,14 @@ end
local function makespec_conform() local function makespec_conform()
return { return {
"stevearc/conform.nvim", "stevearc/conform.nvim",
-- Load conform right before you save a file, or when you trigger a keymap lazy = true,
event = { "BufWritePre" },
cmd = { "ConformInfo" }, cmd = { "ConformInfo" },
keys = { keys = {
{ { "<leader>p", function() require("conform").format() end, silent = true, desc = "Autoformat" },
"<leader>p",
function() require("conform").format({ async = true, lsp_format = "fallback" }) end,
mode = { "n", "v" },
desc = "Autoformat",
},
{ "<leader>lp", "<cmd>ConformInfo<cr>", desc = "Conform log" }, { "<leader>lp", "<cmd>ConformInfo<cr>", desc = "Conform log" },
{ "<leader>lP", "<cmd>e ~/.local/state/nvim/conform.log<cr>", desc = "Conform log file" }, { "<leader>lP", "<cmd>e ~/.local/state/nvim/conform.log<cr>", desc = "Conform log" },
}, },
opts = { opts = {
-- format_on_save = function(bufnr)
-- -- Disable with a global or buffer-local variable
-- if vim.g.disable_autoformat or vim.b[bufnr].disable_autoformat then return end
-- return { timeout_ms = 3000, lsp_format = "fallback" }
-- end,
formatters_by_ft = { formatters_by_ft = {
["_"] = { "trim_whitespace" }, ["_"] = { "trim_whitespace" },
css = { "prettierd", "prettier", stop_after_first = true }, css = { "prettierd", "prettier", stop_after_first = true },
@@ -1494,6 +1454,7 @@ local function makespec_conform()
yaml = { "yamlfmt" }, yaml = { "yamlfmt" },
}, },
default_format_opts = { default_format_opts = {
timeout_ms = 3000,
lsp_format = "fallback", lsp_format = "fallback",
}, },
formatters = { formatters = {
@@ -1524,12 +1485,17 @@ local function makespec_avante()
providers = { providers = {
openai = { openai = {
model = "gpt-4.1", model = "gpt-4.1",
extra_request_body = { temperature = 0 }, extra_request_body = {
temperature = 0,
},
max_tokens = 4096, max_tokens = 4096,
}, },
gemini = { gemini = {
model = "gemini-2.5-flash", model = "gemini-2.5-flash",
extra_request_body = { temperature = 0, max_tokens = 4096 }, extra_request_body = {
temperature = 0,
max_tokens = 4096,
},
}, },
}, },
ignore_patterns = { ignore_patterns = {
@@ -1582,15 +1548,13 @@ local function makespec_noice()
return { return {
"folke/noice.nvim", "folke/noice.nvim",
event = "VeryLazy", event = "VeryLazy",
dependencies = { "MunifTanjim/nui.nvim" }, dependencies = { "MunifTanjim/nui.nvim", "rcarriga/nvim-notify" },
opts = { opts = {
-- Disable Noice's notification router so Snacks can handle it
notify = { enabled = false },
messages = { messages = {
enabled = true, enabled = true,
view = "mini", view = "notify",
view_error = "mini", view_error = "notify",
view_warn = "mini", view_warn = "notify",
view_history = "popup", view_history = "popup",
view_search = false, view_search = false,
}, },
@@ -1598,24 +1562,24 @@ local function makespec_noice()
override = { override = {
["vim.lsp.util.convert_input_to_markdown_lines"] = true, ["vim.lsp.util.convert_input_to_markdown_lines"] = true,
["vim.lsp.util.stylize_markdown"] = true, ["vim.lsp.util.stylize_markdown"] = true,
["cmp.entry.get_documentation"] = true,
}, },
signature = { enabled = true, auto_open = { enabled = false, throttle = 50 } }, signature = { enabled = true, auto_open = { enabled = false, throttle = 50 } },
}, },
presets = { presets = {
bottom_search = true,
command_palette = true, command_palette = true,
long_message_to_split = true, long_message_to_split = true,
lsp_doc_border = true,
}, },
routes = { routes = {
{ filter = { event = "msg_show", kind = "search_count" }, opts = { skip = true } }, { filter = { event = "msg_show", kind = "search_count" }, opts = { skip = true } },
{ filter = { kind = "", min_height = 2 }, view = "split" },
}, },
}, },
keys = { keys = {
{ "<leader>lx", function() require("noice").cmd("dismiss") end, desc = "Dismiss All" }, { "<leader>lx", function() require("noice").cmd("dismiss") end, desc = "Noice dismiss" },
{ "<leader>lh", function() require("noice").cmd("all") end, desc = "Noice History" }, { "<leader>lh", function() require("noice").cmd("all") end, desc = "Noice history" },
{ "<leader>ls", function() require("noice").cmd("stats") end, desc = "Noice Stats" }, { "<leader>ls", function() require("noice").cmd("stats") end, desc = "Noice stats" },
{ "<leader>un", function() require("noice").cmd("enable") end, desc = "Enable Noice" },
{ "<leader>uN", function() require("noice").cmd("disable") end, desc = "Disable Noice" },
}, },
} }
end end
@@ -1636,7 +1600,6 @@ for _, spec in ipairs({
makespec_conform(), -- autoformat makespec_conform(), -- autoformat
makespec_lspconfig(), makespec_lspconfig(),
makespec_treesitter(), makespec_treesitter(),
makespec_treewalker(),
makespec_todocomments(), makespec_todocomments(),
makespec_autotag(), makespec_autotag(),
makespec_lint(), makespec_lint(),
@@ -1650,7 +1613,6 @@ for _, spec in ipairs({
makespec_flash(), makespec_flash(),
makespec_grugfar(), makespec_grugfar(),
-- visuals -- visuals
makespec_smearcursor(),
makespec_hexokinase(), makespec_hexokinase(),
makespec_lualine(), makespec_lualine(),
makespec_noice(), makespec_noice(),
@@ -1689,6 +1651,5 @@ vim.opt.rtp:prepend(lazypath)
require("lazy").setup({ require("lazy").setup({
spec = lazyspecs, spec = lazyspecs,
checker = { enabled = true }, checker = { enabled = true },
rocks = { enabled = false },
}) })
vim.cmd("colorscheme sonokai") vim.cmd("colorscheme bluloco-dark")
+9 -20
View File
@@ -1,27 +1,23 @@
from typing import TYPE_CHECKING from typing import TYPE_CHECKING
if TYPE_CHECKING: if TYPE_CHECKING:
from qutebrowser.config.config import ConfigContainer from typing import Any
from qutebrowser.config.configfiles import ConfigAPI
c: "ConfigContainer" = c # type: ignore # noqa: F821 config: Any = None
config: "ConfigAPI" = config # type: ignore # noqa: F821 c: Any = None
from typing import TYPE_CHECKING
config.load_autoconfig(True) config.load_autoconfig(True)
config.bind("<", "tab-move -") config.bind("<", "tab-move -")
config.bind("<Ctrl+Shift+Tab>", "tab-prev") config.bind("<Ctrl+Shift+Tab>", "tab-prev")
config.bind("<Ctrl+Tab>", "tab-next") config.bind("<Ctrl+Tab>", "tab-next")
config.bind("<Ctrl+l>", "cmd-set-text :open {url:pretty}") config.bind("<Ctrl+l>", "cmd-set-text :open {url:pretty}")
config.unbind("r", mode="normal") config.bind("<Ctrl+r>", "reload")
config.bind("<Ctrl+r>", "reload -f")
config.bind("R", "reload", mode="normal")
config.bind("<Ctrl+n>", "tab-clone -w") config.bind("<Ctrl+n>", "tab-clone -w")
config.bind("<Ctrl+t>", "tab-clone -t") config.bind("<Ctrl+t>", "tab-clone -t")
config.bind("<Ctrl+Shift+r>", "restart", mode="normal") config.bind("<Ctrl+Shift+r>", "restart", mode="normal")
config.bind("<Ctrl+h>", "history") config.bind("<Ctrl+h>", "history")
config.bind("<F8>", "config-cycle colors.webpage.darkmode.enabled true false")
config.bind("<F2>", "edit-url") config.bind("<F2>", "edit-url")
config.bind("<F10>", "config-cycle colors.webpage.darkmode.enabled true false")
config.bind("<F11>", "config-cycle tabs.position top left") config.bind("<F11>", "config-cycle tabs.position top left")
config.bind("<F12>", "devtools") config.bind("<F12>", "devtools")
config.bind("<Shift+F12>", "view-source") config.bind("<Shift+F12>", "view-source")
@@ -50,8 +46,8 @@ config.bind("wk", "forward -w", mode="normal")
config.bind("ø", "cmd-set-text :") config.bind("ø", "cmd-set-text :")
config.bind("m", 'cmd-set-text :quickmark-add {url:pretty} "', mode="normal") config.bind("m", 'cmd-set-text :quickmark-add {url:pretty} "', mode="normal")
config.bind("D", "tab-close") config.bind("D", "tab-close")
config.bind(",m", "hint links spawn -d mpv {hint-url}", mode="normal") config.bind(",m", "hint links spawn mpv {hint-url}", mode="normal")
config.bind(",M", "spawn -d mpv {url}", mode="normal") config.bind(",M", "spawn mpv {url}", mode="normal")
config.unbind("co") # close all tabs except this one config.unbind("co") # close all tabs except this one
config.unbind("<Ctrl+x>") # navigate decrement config.unbind("<Ctrl+x>") # navigate decrement
config.unbind("<Ctrl+a>") # navigate increment config.unbind("<Ctrl+a>") # navigate increment
@@ -73,7 +69,7 @@ c.completion.open_categories = [
c.content.register_protocol_handler = False c.content.register_protocol_handler = False
c.content.blocking.enabled = True c.content.blocking.enabled = True
c.content.fullscreen.window = True c.content.fullscreen.window = True
c.content.blocking.method = "adblock" c.content.blocking.method = "both"
c.content.blocking.adblock.lists = [ c.content.blocking.adblock.lists = [
"https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/filters.txt", "https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/filters.txt",
"https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/badware.txt", "https://raw.githubusercontent.com/uBlockOrigin/uAssets/master/filters/badware.txt",
@@ -111,14 +107,6 @@ urlconfigs: dict[str, list[tuple[str, bool | str | dict[str, str]]]] = {
{"X-YouTube-Client-Name": "85", "X-YouTube-Client-Version": "2.0"}, {"X-YouTube-Client-Name": "85", "X-YouTube-Client-Version": "2.0"},
) )
], ],
"https://*.altinn.no": [
("content.cookies.accept", "all"),
("content.javascript.can_open_tabs_automatically", True),
],
"https://*.bankid.no": [
("content.cookies.accept", "all"),
("content.javascript.can_open_tabs_automatically", True),
],
} }
for url, urlconfig in urlconfigs.items(): for url, urlconfig in urlconfigs.items():
for setting, value in urlconfig: for setting, value in urlconfig:
@@ -143,6 +131,7 @@ c.input.insert_mode.auto_leave = False
c.input.insert_mode.plugins = True c.input.insert_mode.plugins = True
c.messages.timeout = 5000 c.messages.timeout = 5000
c.qt.force_platform = "wayland" c.qt.force_platform = "wayland"
c.qt.force_software_rendering = "qt-quick"
c.qt.highdpi = True c.qt.highdpi = True
c.scrolling.bar = "always" c.scrolling.bar = "always"
c.scrolling.smooth = False c.scrolling.smooth = False
+10 -12
View File
@@ -67,7 +67,7 @@ set $powermenu ~/.config/sway/scripts/power_menu.sh
# ------------------------------------------ # ------------------------------------------
# Launch the terminal # Launch the terminal
bindsym $mod+Return exec $term bindsym $mod+Return exec $term
bindsym Mod4+Shift+Return exec foot bash bindsym $mod+Shift+Return exec foot
# Kill focused window # Kill focused window
bindsym $mod+Shift+q kill bindsym $mod+Shift+q kill
# Lock screen # Lock screen
@@ -157,15 +157,15 @@ bindsym {
floating_modifier $mod normal floating_modifier $mod normal
bindsym { bindsym {
# Resize with arrow keys # Resize with arrow keys
$mod+ctrl+Right resize shrink width 100 px $mod+ctrl+Right resize shrink width 10 px
$mod+ctrl+Up resize grow height 100 px $mod+ctrl+Up resize grow height 10 px
$mod+ctrl+Down resize shrink height 100 px $mod+ctrl+Down resize shrink height 10 px
$mod+ctrl+Left resize grow width 100 px $mod+ctrl+Left resize grow width 10 px
# Resize with Vim keys # Resize with Vim keys
$mod+ctrl+$right resize shrink width 100 px $mod+ctrl+$right resize shrink width 10 px
$mod+ctrl+$up resize grow height 100 px $mod+ctrl+$up resize grow height 10 px
$mod+ctrl+$down resize shrink height 100 px $mod+ctrl+$down resize shrink height 10 px
$mod+ctrl+$left resize grow width 100 px $mod+ctrl+$left resize grow width 10 px
} }
# Resize floating windows with mouse scroll # Resize floating windows with mouse scroll
bindsym --whole-window --border { bindsym --whole-window --border {
@@ -294,7 +294,7 @@ exec_always swayidle -w \
idlehint 240 idlehint 240
# Start foot server # Start foot server
exec systemctl --user enable --now foot-server.service exec_always --no-startup-id foot --server
exec { exec {
# Desktop notifications # Desktop notifications
@@ -349,8 +349,6 @@ for_window [app_id="floating_shell"] floating enable, border pixel 1, sticky ena
for_window [title="Picture in picture"] floating enable, sticky enable for_window [title="Picture in picture"] floating enable, sticky enable
for_window [title="Save File"] floating enable for_window [title="Save File"] floating enable
for_window [app_id="firefox" title="Firefox — Sharing Indicator"] kill for_window [app_id="firefox" title="Firefox — Sharing Indicator"] kill
# only thunderbird main window as float
for_window [app_id="org.mozilla.Thunderbird" title="^((?!Mozilla Thunderbird).)*$"] floating enable
# steam # steam
# https://github.com/ValveSoftware/steam-for-linux/issues/1040 # https://github.com/ValveSoftware/steam-for-linux/issues/1040
-9
View File
@@ -18,9 +18,6 @@ set -g default-terminal "tmux-256color"
# Tell tmux which features the outer Foot client supports. # Tell tmux which features the outer Foot client supports.
set -as terminal-features ',foot*:RGB,clipboard,focus,title' set -as terminal-features ',foot*:RGB,clipboard,focus,title'
# Allow image passthrough
set -gq allow-passthrough on
# Start with index 1 # Start with index 1
set -g base-index 1 set -g base-index 1
setw -g pane-base-index 1 setw -g pane-base-index 1
@@ -107,10 +104,6 @@ bind t clock-mode
# Show pane numbers # Show pane numbers
bind i display-panes bind i display-panes
ps_pid='#(pgrep -P "#{pane_pid}" | tr "\n" " ")'
cmd='#(ps --no-headers -o args $(pgrep -P "#{pane_pid}"))'
bind P display-message -d 100000 "${cmd} FOLDER:#{pane_current_path} CMD:#{=/-20/…:pane_current_command} PID:${ps_pid}"
# Config Reloads # Config Reloads
bind r source-file ~/.config/tmux/tmux.conf \; refresh-client \; display-message "Config reloaded" bind r source-file ~/.config/tmux/tmux.conf \; refresh-client \; display-message "Config reloaded"
@@ -126,8 +119,6 @@ bind v split-window -h -c "#{pane_current_path}"
bind s split-window -v -c "#{pane_current_path}" bind s split-window -v -c "#{pane_current_path}"
bind V split-window -fh -c "#{pane_current_path}" bind V split-window -fh -c "#{pane_current_path}"
bind S split-window -fv -c "#{pane_current_path}" bind S split-window -fv -c "#{pane_current_path}"
bind x split-window -fh bash
# Change layouts # Change layouts
bind o rotate-window bind o rotate-window
+15 -15
View File
@@ -12,7 +12,7 @@ max_height = 1500
[open] [open]
prepend_rules = [ prepend_rules = [
{ url = "*.csv", use = "text" }, { name = "*.csv", use = "text" },
] ]
[opener] [opener]
@@ -24,36 +24,36 @@ text = [
[input] [input]
cursor_blink = true cursor_blink = true
[[plugin.append_previewers]]
url = "*"
run = "file-extra-metadata"
[[plugin.prepend_fetchers]] [[plugin.prepend_fetchers]]
group = "git" id = "git"
url = "*" name = "*"
run = "git" run = "git"
[[plugin.prepend_fetchers]] [[plugin.prepend_fetchers]]
group = "git" id = "git"
url = "*/" name = "*/"
run = "git" run = "git"
[[plugin.prepend_previewers]] [[plugin.prepend_previewers]]
url = "*.tar*" name = "*.tar*"
run = 'piper --format=url -- tar tf "$1"' run = 'piper --format=url -- tar tf "$1"'
[[plugin.prepend_previewers]] [[plugin.prepend_previewers]]
url = "*.csv" name = "*.csv"
run = 'piper -- bat -p --color=always "$1"' run = 'piper -- bat -p --color=always "$1"'
[[plugin.prepend_previewers]] [[plugin.prepend_previewers]]
url = "*.md" name = "*.md"
run = 'piper -- CLICOLOR_FORCE=1 glow -w=$w -s=dark "$1"' run = 'piper -- CLICOLOR_FORCE=1 glow -w=$w -s=dark "$1"'
[[plugin.prepend_previewers]] [[plugin.prepend_previewers]]
url = "*/" name = "*/"
run = 'piper -- eza -TL=3 --color=always --icons=always --group-directories-first --no-quotes "$1"' run = 'piper -- eza -TL=3 --color=always --icons=always --group-directories-first --no-quotes "$1"'
[[plugin.append_previewers]]
name = "*"
run = 'file-extra-metadata'
[[plugin.prepend_spotters]] [[plugin.prepend_spotters]]
url = "*" name = "*"
run = "file-extra-metadata" run = 'file-extra-metadata'
+1 -1
View File
@@ -14,7 +14,7 @@ alias ls='ls --color=auto -Ah'
alias ..='cd ..' alias ..='cd ..'
alias ...='cd ../..' alias ...='cd ../..'
catai () { catai () {
rg -l --hidden --glob '!.git/*' '^' -- "$@" | while IFS= read -r f; do rg --files --hidden --glob '!.git/*' "$@" | while read -r f; do
printf "\n── %s ──\n" "$f" printf "\n── %s ──\n" "$f"
echo '```' echo '```'
cat "$f" cat "$f"
+8 -6
View File
@@ -88,7 +88,6 @@ installmap = dict(
"v4l-utils", "v4l-utils",
# photos # photos
"qimgv", "qimgv",
"kimageformats5", # heif support
"digikam", "digikam",
# music # music
"quodlibet", "quodlibet",
@@ -114,6 +113,7 @@ installmap = dict(
"qutebrowser", "qutebrowser",
"firefox", "firefox",
"google-chrome", "google-chrome",
"microsoft-edge-stable-bin",
"w3m", "w3m",
"python-adblock", # for qutebrowser ad blocker "python-adblock", # for qutebrowser ad blocker
"python-tldextract", "python-tldextract",
@@ -124,11 +124,12 @@ installmap = dict(
"khard", # contacts "khard", # contacts
"khal", # calendar "khal", # calendar
"aerc", # email "aerc", # email
"eilmeldung", # rss reader "newsboat", # rss reader
"vdirsyncer", # sync calendar+contacts "vdirsyncer", # sync calendar+contacts
"pandoc", # md2html for aerc "pandoc", # md2html for aerc
"pass", # password manager for aerc "pass", # password manager for aerc and newsboat
"w3m", # terminal browser for aerc "w3m", # terminal browser for aerc and newsboat
"urlscan", # url finder for newsboat
"python-aiohttp-oauthlib", # for google vdirsyncer "python-aiohttp-oauthlib", # for google vdirsyncer
), ),
monitors=( monitors=(
@@ -140,7 +141,7 @@ installmap = dict(
"bandwhich", # network "bandwhich", # network
"sysstat", "sysstat",
), ),
apps=("keepassxc", "bitwarden", "qalculate-gtk", "discord"), apps=("keepassxc", "bitwarden", "qalculate-gtk", "vesktop"),
sway=( sway=(
"xdg-terminal-exec", "xdg-terminal-exec",
# visuals # visuals
@@ -357,12 +358,13 @@ def install_monitors(overwrite: bool, reinstall: bool) -> None:
def install_emailcalrss(overwrite: bool, reinstall: bool) -> None: def install_emailcalrss(overwrite: bool, reinstall: bool) -> None:
helper_install(*installmap["emailcalrss"], reinstall=reinstall) helper_install(*installmap["emailcalrss"], reinstall=reinstall)
for tgt in ["vdirsyncer", "khard", "khal", "aerc"]: for tgt in ["vdirsyncer", "khard", "khal", "aerc", "newsboat"]:
helper_clone_foldercontents(CFG_SRC, CFG_TGT, tgt, overwrite) helper_clone_foldercontents(CFG_SRC, CFG_TGT, tgt, overwrite)
tgt = ".local/share/applications/userapp-khalimport.desktop" tgt = ".local/share/applications/userapp-khalimport.desktop"
helper_maybe_copy(HOME_SRC, HOME_TGT, tgt, overwrite, symlink=True) helper_maybe_copy(HOME_SRC, HOME_TGT, tgt, overwrite, symlink=True)
run("systemctl enable --user --now vdirsyncer.timer".split()) run("systemctl enable --user --now vdirsyncer.timer".split())
run(f"chmod 600 {CFG_TGT / 'aerc/accounts.conf'}".split()) run(f"chmod 600 {CFG_TGT / 'aerc/accounts.conf'}".split())
(HOME_TGT / ".cache/newsboat").mkdir(exist_ok=True)
(HOME_TGT / "Calendars").mkdir(exist_ok=True) (HOME_TGT / "Calendars").mkdir(exist_ok=True)
(HOME_TGT / "Contacts").mkdir(exist_ok=True) (HOME_TGT / "Contacts").mkdir(exist_ok=True)