Remove old dotfiles, switch to shared

This commit is contained in:
Nathan Anderson 2025-10-26 16:58:17 -06:00
parent f29c50b992
commit 72e7e498cc
32 changed files with 59 additions and 6700 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,46 +0,0 @@
theme = "catppuccin-macchiato.conf"
###
# Font config
###
font-size = 14
font-family = "Monaspace Xenon Var"
font-family-bold = "Monaspace Argon Var"
font-family-italic = "Monaspace Radon Var"
font-family-bold-italic = "Monaspace Krypton Var"
font-variation = wght=400
font-variation = wdth=100
font-variation = slnt=-2
font-variation-bold = wght=600
font-variation-bold = wdth=100
font-variation-italic = wght=400
font-variation-italic = wdth=100
font-variation-italic = slnt=-10
font-variation-bold-italic = wght=700
font-variation-bold-italic = wdth=100
font-variation-bold-italic = slnt=-3
# Liguratures
font-feature = +ss01, +ss02, +ss03, +ss04, +ss05, +ss06, +ss07, +ss08, +ss09, +ss10
# Enables texture healing
font-feature = +calt
font-feature = +liga
###
# Keybinds
###
keybind = ctrl+shift+plus=increase_font_size:1
# keybind = ctrl+minus=decrease_font_size:1
###
# Misc
###
window-padding-x = 4
window-padding-y = 4

View File

@ -1,170 +0,0 @@
# Theme
theme = "catppuccin_macchiato"
[keys.normal]
# Navigation
n = "move_char_left" # Maps the 'a' key to the move_char_left command
i = "move_visual_line_down"
e = "move_visual_line_up"
o = "move_char_right"
I = "page_down"
E = "page_up"
# Modes
h = "insert_mode"
H = "insert_at_line_start"
l = "open_below"
L = "open_above"
# Search
k = "search_next"
K = "search_prev"
# Selection
C-s = "split_selection_on_newline"
C-minus = "merge_selections"
C-_ = "merge_consecutive_selections"
"C-;" = "flip_selections"
"C-:" = "ensure_selections_forward"
"C-," = "remove_primary_selection"
C-c = "change_selection_noyank"
C-d = "delete_selection_noyank"
"C-(" = "rotate_selection_contents_backward"
"C-)" = "rotate_selection_contents_forward"
C-x = "shrink_to_line_bounds"
C-J = "join_selections_space"
C-K = "remove_selections"
C-o = "expand_selection"
C-i = "shrink_selection"
C-p = "select_prev_sibling"
C-n = "select_next_sibling"
# Misc
"C-/" = "toggle_comments"
[keys.normal."C-space"]
x = ":wbc!"
s = ":w!" # save file
o = ":config-open"
c = ["vsplit", ":open llm-chat.md"]
[keys.normal.g]
"/" = "goto_next_buffer"
h = "goto_previous_buffer"
n = ["collapse_selection", "extend_to_line_start"]
o = ["collapse_selection", "extend_to_line_end"]
e = "move_line_up"
i = "move_line_down"
l = "goto_last_line"
p = "no_op"
k = "no_op"
j = "no_op"
[keys.normal.m]
m = ["select_mode", "match_brackets", "normal_mode"]
[keys.select]
n = "extend_char_left"
i = "extend_line_down"
e = "extend_line_up"
o = "extend_char_right"
[keys.select.g]
"/" = "goto_next_buffer"
h = "goto_previous_buffer"
n = "goto_line_start"
o = "goto_line_end"
e = "move_line_up"
i = "move_line_down"
l = "goto_last_line"
p = "no_op"
k = "no_op"
j = "no_op"
# Window mode
[keys.normal."C-w"]
h = "hsplit"
C-h = "hsplit"
n = "jump_view_left"
C-n = "jump_view_left"
i = "jump_view_down"
I = "swap_view_down"
C-i = "jump_view_down"
e = "jump_view_up"
E = "swap_view_up"
C-e = "jump_view_up"
o = "jump_view_right"
O = "swap_view_right"
C-o = "jump_view_right"
# Remove old
s = "no_op"
C-s = "no_op"
H = "no_op"
j = "no_op"
J = "no_op"
C-j = "no_op"
k = "no_op"
K = "no_op"
C-k = "no_op"
l = "no_op"
L = "no_op"
C-l = "no_op"
[keys.normal."space"]
h = "hover"
k = "select_references_to_symbol_under_cursor"
[editor]
bufferline = "always"
auto-save = true
line-number = "relative"
cursorline = true
cursorcolumn = true
color-modes = true
text-width = 120
auto-format = true
[editor.statusline]
left = ["mode", "spinner", "version-control"]
center = ["file-name"]
mode.normal = "Normal"
mode.insert = "Insert"
mode.select = "Select"
[editor.indent-guides]
render = true
[editor.lsp]
display-messages = true
display-inlay-hints = false
[editor.cursor-shape]
insert = "bar"
normal = "block"
select = "underline"
[editor.file-picker]
hidden = false
[editor.whitespace.render]
space = "all"
tab = "all"
tabpad = "all"
newline = "none"
nbsp = "none"
[editor.whitespace.characters]
space = "·"
tab = "⇀"
tabpad = " "
#w = "move_line_up" # Maps the 'w' key move_line_up
#"C-S-esc" = "extend_line" # Maps Ctrl-Shift-Escape to extend_line
#g = { a = "code_action" } # Maps `ga` to show possible code actions
#"ret" = ["open_below", "normal_mode"] # Maps the enter key to open_below then re-enter normal mode

View File

@ -1,112 +0,0 @@
###
### Configuration for LSP-AI
###
### Link here:
### https://github.com/SilasMarvin/lsp-ai
###
[language-server.lsp-ai]
command = "lsp-ai"
[language-server.lsp-ai.config.memory]
file_store = { }
[language-server.lsp-ai.config.models.sonnet]
type = "anthropic"
chat_endpoint = "https://api.anthropic.com/v1/messages"
model = "claude-3-5-sonnet-20241022"
auth_token_env_var_name = "ANTHROPIC_API_KEY"
[language-server.lsp-ai.config.models.haiku]
type = "anthropic"
chat_endpoint = "https://api.anthropic.com/v1/messages"
model = "claude-3-5-haiku-20241022"
auth_token_env_var_name = "ANTHROPIC_API_KEY"
[[language-server.lsp-ai.config.chat]]
trigger = "!C"
action_display_name = "Chat (Sonnet 󰤇)"
model = "sonnet"
parameters = { max_context = 4096, max_tokens = 4096, system = "You are a code assistant chatbot. The user will ask you for assistance coding and you will do you best to answer succinctly and accurately" }
[[language-server.lsp-ai.config.chat]]
trigger = "!C"
action_display_name = "Chat (Haiku 󰾆)"
model = "haiku"
parameters = { max_context = 4096, max_tokens = 4096, system = "You are a code assistant chatbot. The user will ask you for assistance coding and you will do you best to answer succinctly and accurately" }
[[language-server.lsp-ai.config.actions]]
action_display_name = "Complete (Sonnet 󰤇)"
model = "sonnet"
parameters = { max_context = 4096, max_tokens = 4096, messages = [{ role = "user", content = "{CODE}" }], system = "You are an AI coding assistant. Your task is to complete code snippets. The user's cursor position is marked by \"<CURSOR>\". Follow these steps:\n\n1. Analyze the code context and the cursor position.\n2. Provide your chain of thought reasoning, wrapped in <reasoning> tags. Include thoughts about the cursor position, what needs to be completed, and any necessary formatting.\n3. Determine the appropriate code to complete the current thought, including finishing partial words or lines.\n4. Replace \"<CURSOR>\" with the necessary code, ensuring proper formatting and line breaks.\n5. Wrap your code solution in <answer> tags.\n\nYour response should always include both the reasoning and the answer. Pay special attention to completing partial words or lines before adding new lines of code.\n\n<examples>\n<example>\nUser input:\n--main.py--\n# A function that reads in user inpu<CURSOR>\n\nResponse:\n<reasoning>\n1. The cursor is positioned after \"inpu\" in a comment describing a function that reads user input.\n2. We need to complete the word \"input\" in the comment first.\n3. After completing the comment, we should add a new line before defining the function.\n4. The function should use Python's built-in `input()` function to read user input.\n5. We'll name the function descriptively and include a return statement.\n</reasoning>\n\n<answer>t\ndef read_user_input():\n user_input = input(\"Enter your input: \")\n return user_input\n</answer>\n</example>\n\n<example>\nUser input:\n--main.py--\ndef fibonacci(n):\n if n <= 1:\n return n\n else:\n re<CURSOR>\n\n\nResponse:\n<reasoning>\n1. The cursor is positioned after \"re\" in the 'else' clause of a recursive Fibonacci function.\n2. We need to complete the return statement for the recursive case.\n3. The \"re\" already present likely stands for \"return\", so we'll continue from there.\n4. The Fibonacci sequence is the sum of the two preceding numbers.\n5. We should return the sum of fibonacci(n-1) and fibonacci(n-2).\n</reasoning>\n\n<answer>turn fibonacci(n-1) + fibonacci(n-2)</answer>\n</example>\n</examples>"}
post_process = { extractor = "(?s)<answer>(.*?)</answer>" }
[[language-server.lsp-ai.config.actions]]
action_display_name = "Complete (Haiku 󰾆)"
model = "haiku"
parameters = { max_context = 4096, max_tokens = 4096, messages = [{ role = "user", content = "{CODE}" }], system = "You are an AI coding assistant. Your task is to complete code snippets. The user's cursor position is marked by \"<CURSOR>\". Follow these steps:\n\n1. Analyze the code context and the cursor position.\n2. Provide your chain of thought reasoning, wrapped in <reasoning> tags. Include thoughts about the cursor position, what needs to be completed, and any necessary formatting.\n3. Determine the appropriate code to complete the current thought, including finishing partial words or lines.\n4. Replace \"<CURSOR>\" with the necessary code, ensuring proper formatting and line breaks.\n5. Wrap your code solution in <answer> tags.\n\nYour response should always include both the reasoning and the answer. Pay special attention to completing partial words or lines before adding new lines of code.\n\n<examples>\n<example>\nUser input:\n--main.py--\n# A function that reads in user inpu<CURSOR>\n\nResponse:\n<reasoning>\n1. The cursor is positioned after \"inpu\" in a comment describing a function that reads user input.\n2. We need to complete the word \"input\" in the comment first.\n3. After completing the comment, we should add a new line before defining the function.\n4. The function should use Python's built-in `input()` function to read user input.\n5. We'll name the function descriptively and include a return statement.\n</reasoning>\n\n<answer>t\ndef read_user_input():\n user_input = input(\"Enter your input: \")\n return user_input\n</answer>\n</example>\n\n<example>\nUser input:\n--main.py--\ndef fibonacci(n):\n if n <= 1:\n return n\n else:\n re<CURSOR>\n\n\nResponse:\n<reasoning>\n1. The cursor is positioned after \"re\" in the 'else' clause of a recursive Fibonacci function.\n2. We need to complete the return statement for the recursive case.\n3. The \"re\" already present likely stands for \"return\", so we'll continue from there.\n4. The Fibonacci sequence is the sum of the two preceding numbers.\n5. We should return the sum of fibonacci(n-1) and fibonacci(n-2).\n</reasoning>\n\n<answer>turn fibonacci(n-1) + fibonacci(n-2)</answer>\n</example>\n</examples>"}
post_process = { extractor = "(?s)<answer>(.*?)</answer>" }
[[language-server.lsp-ai.config.actions]]
action_display_name = "Refactor (Sonnet 󰤇)"
model = "sonnet"
parameters = { max_context = 4096, max_tokens = 4096, messages = [{ role = "user", content = "{SELECTED_TEXT}" }], system = "You are an AI coding assistant specializing in code refactoring. Your task is to analyze the given code snippet and provide a refactored version. Follow these steps:\n\n1. Analyze the code context and structure.\n2. Identify areas for improvement, such as code efficiency, readability, or adherence to best practices.\n3. Provide your chain of thought reasoning, wrapped in <reasoning> tags. Include your analysis of the current code and explain your refactoring decisions.\n4. Rewrite the entire code snippet with your refactoring applied.\n5. Wrap your refactored code solution in <answer> tags.\n\nYour response should always include both the reasoning and the refactored code.\n\n<examples>\n<example>\nUser input:\ndef calculate_total(items):\n total = 0\n for item in items:\n total = total + item['price'] * item['quantity']\n return total\n\n\nResponse:\n<reasoning>\n1. The function calculates the total cost of items based on price and quantity.\n2. We can improve readability and efficiency by:\n a. Using a more descriptive variable name for the total.\n b. Utilizing the sum() function with a generator expression.\n c. Using augmented assignment (+=) if we keep the for loop.\n3. We'll implement the sum() function approach for conciseness.\n4. We'll add a type hint for better code documentation.\n</reasoning>\n<answer>\nfrom typing import List, Dict\n\ndef calculate_total(items: List[Dict[str, float]]) -> float:\n return sum(item['price'] * item['quantity'] for item in items)\n</answer>\n</example>\n\n<example>\nUser input:\ndef is_prime(n):\n if n < 2:\n return False\n for i in range(2, n):\n if n % i == 0:\n return False\n return True\n\n\nResponse:\n<reasoning>\n1. This function checks if a number is prime, but it's not efficient for large numbers.\n2. We can improve it by:\n a. Adding an early return for 2, the only even prime number.\n b. Checking only odd numbers up to the square root of n.\n c. Using a more efficient range (start at 3, step by 2).\n3. We'll also add a type hint for better documentation.\n4. The refactored version will be more efficient for larger numbers.\n</reasoning>\n<answer>\nimport math\n\ndef is_prime(n: int) -> bool:\n if n < 2:\n return False\n if n == 2:\n return True\n if n % 2 == 0:\n return False\n \n for i in range(3, int(math.sqrt(n)) + 1, 2):\n if n % i == 0:\n return False\n return True\n</answer>\n</example>\n</examples>" }
post_process = { extractor = "(?s)<answer>(.*?)</answer>" }
[[language-server.lsp-ai.config.actions]]
action_display_name = "Refactor (Haiku 󰾆)"
model = "haiku"
parameters = { max_context = 4096, max_tokens = 4096, messages = [{ role = "user", content = "{SELECTED_TEXT}" }], system = "You are an AI coding assistant specializing in code refactoring. Your task is to analyze the given code snippet and provide a refactored version. Follow these steps:\n\n1. Analyze the code context and structure.\n2. Identify areas for improvement, such as code efficiency, readability, or adherence to best practices.\n3. Provide your chain of thought reasoning, wrapped in <reasoning> tags. Include your analysis of the current code and explain your refactoring decisions.\n4. Rewrite the entire code snippet with your refactoring applied.\n5. Wrap your refactored code solution in <answer> tags.\n\nYour response should always include both the reasoning and the refactored code.\n\n<examples>\n<example>\nUser input:\ndef calculate_total(items):\n total = 0\n for item in items:\n total = total + item['price'] * item['quantity']\n return total\n\n\nResponse:\n<reasoning>\n1. The function calculates the total cost of items based on price and quantity.\n2. We can improve readability and efficiency by:\n a. Using a more descriptive variable name for the total.\n b. Utilizing the sum() function with a generator expression.\n c. Using augmented assignment (+=) if we keep the for loop.\n3. We'll implement the sum() function approach for conciseness.\n4. We'll add a type hint for better code documentation.\n</reasoning>\n<answer>\nfrom typing import List, Dict\n\ndef calculate_total(items: List[Dict[str, float]]) -> float:\n return sum(item['price'] * item['quantity'] for item in items)\n</answer>\n</example>\n\n<example>\nUser input:\ndef is_prime(n):\n if n < 2:\n return False\n for i in range(2, n):\n if n % i == 0:\n return False\n return True\n\n\nResponse:\n<reasoning>\n1. This function checks if a number is prime, but it's not efficient for large numbers.\n2. We can improve it by:\n a. Adding an early return for 2, the only even prime number.\n b. Checking only odd numbers up to the square root of n.\n c. Using a more efficient range (start at 3, step by 2).\n3. We'll also add a type hint for better documentation.\n4. The refactored version will be more efficient for larger numbers.\n</reasoning>\n<answer>\nimport math\n\ndef is_prime(n: int) -> bool:\n if n < 2:\n return False\n if n == 2:\n return True\n if n % 2 == 0:\n return False\n \n for i in range(3, int(math.sqrt(n)) + 1, 2):\n if n % i == 0:\n return False\n return True\n</answer>\n</example>\n</examples>" }
post_process = { extractor = "(?s)<answer>(.*?)</answer>" }
###
### Configuration for languages
###
[[language]]
name = "go"
language-servers = ["gopls", "lsp-ai"]
[[language]]
name = "markdown"
language-servers = ["marksman", "lsp-ai"]
# Change dart format to 120 lines
[[language]]
name = "dart"
formatter = {command = "dart", args = ["format", "-l", "120"]}
language-servers = ["dart", "lsp-ai"]
[[language]]
name = "zig"
language-servers = ["zls", "lsp-ai"]
[language.debugger]
name = "codelldb-dap"
transport = "tcp"
command = "codelldb"
args = []
port-arg = "--port {}"
[[language.debugger.templates]]
name = "launch"
request = "launch"
completion = [ { name = "binary", completion = "filename" } ]
args = { console = "internalConsole", program = "{0}" }
[[language.debugger.templates]]
name = "attach"
request = "attach"
completion = [ "pid" ]
args = { console = "internalConsole", pid = "{0}" }
[[language.debugger.templates]]
name = "gdbserver attach"
request = "attach"
completion = [ { name = "lldb connect url", default = "connect://localhost:3333" }, { name = "file", completion = "filename" }, "pid" ]
args = { console = "internalConsole", attachCommands = [ "platform select remote-gdb-server", "platform connect {0}", "file {1}", "attach {2}" ] }
[[language]]
name = "nix"
language-servers = ["nil", "lsp-ai"]

View File

@ -1,10 +0,0 @@
general {
lock_cmd = swaylock # dbus/sysd lock command (loginctl lock-session)
before_sleep_cmd = swaylock
ignore_dbus_inhibit = false
}
listener {
timeout = 600 # in seconds
on-timeout = swaylock -C ~/.config/swaylock/idle-config # command to run when timeout has passed
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 376 KiB

View File

@ -1,6 +0,0 @@
https://www.youtube.com/watch?v=484RgaL990c
https://www.youtube.com/watch?v=6OGp_lZT2tM
https://www.youtube.com/watch?v=tIsiYbJLwIg
https://www.youtube.com/watch?v=pKw6s8w9rAI
https://www.youtube.com/watch?v=lFuErjQKoYg
https://www.youtube.com/@Denz1000

View File

@ -1,21 +0,0 @@
#! /usr/bin/env bash
hyprctl dispatch togglespecialworkspace music
YT_LINK=$(sort -R < ~/.config/hypr/scripts/music_links.txt | head -n 1)
firefox --new-window "$YT_LINK" &
sleep 1
hyprctl dispatch togglefloating
hyprctl dispatch movewindow u
hyprctl dispatch movewindow l
hyprctl dispatch resizeactive exact 45% 45%
hyprctl dispatch moveactive 30% 5%
ghostty ~/.config/hypr/scripts/music_setup_cmd.sh &
sleep 1
hyprctl dispatch togglefloating
hyprctl dispatch resizeactive exact 95% 30%
hyprctl dispatch movewindow d
hyprctl dispatch movewindow l
hyprctl dispatch moveactive -- 30 -5%

View File

@ -1,4 +0,0 @@
#! /usr/bin/env sh
sleep 1
cava

View File

@ -1,35 +0,0 @@
#!/usr/bin/env bash
entries="Screen Window Area Area+Edit"
selected=$(printf '%s\n' "$entries" | tr ' ' '\n' | wofi --style="$HOME"/.config/wofi/macc_style.css --conf="$HOME"/.config/wofi/config.screenshot | awk '{print tolower($1)}')
if [ "$1" == "clipboard" ]; then
case $selected in
screen)
hyprshot --notif-timeout 2000 -m output --clipboard-only;;
window)
hyprshot --notif-timeout 2000 -m window --clipboard-only;;
area)
hyprshot --notif-timeout 2000 -m region --clipboard-only;;
area+edit)
hyprshot --notif-timeout 2000 -m region --clipboard-only
sleep 0.1
flatpak run com.github.maoschanz.drawing -c
;;
esac
else
case $selected in
screen)
hyprshot --notif-timeout 2000 -m output -o ~/Pictures/;;
window)
hyprshot --notif-timeout 2000 -m window -o ~/Pictures/;;
area)
hyprshot --notif-timeout 2000 -m region -o ~/Pictures/;;
area+edit)
hyprshot --notif-timeout 2000 -m region --clipboard-only
sleep 0.1
flatpak run com.github.maoschanz.drawing -c
;;
esac
fi

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 MiB

View File

@ -1,447 +0,0 @@
snippet_support = true
verbosity = 2
[server]
# exit session if no requests were received during given period in seconds
# set to 0 to disable
timeout = 1800 # seconds = 30 minutes
[language.bash]
filetypes = ["sh"]
roots = [".git", ".hg"]
command = "bash-language-server"
args = ["start"]
[language.c_cpp]
filetypes = ["c", "cpp"]
roots = ["compile_commands.json", ".clangd", ".git", ".hg"]
command = "clangd"
[language.clojure]
filetypes = ["clojure"]
roots = ["project.clj", ".git", ".hg"]
command = "clojure-lsp"
settings_section = "_"
[language.clojure.settings._]
# See https://clojure-lsp.io/settings/#all-settings
# source-paths-ignore-regex = ["resources.*", "target.*"]
[language.cmake]
filetypes = ["cmake"]
roots = ["CMakeLists.txt", ".git", ".hg"]
command = "cmake-language-server"
[language.crystal]
filetypes = ["crystal"]
roots = ["shard.yml"]
command = "crystalline"
[language.css]
filetypes = ["css"]
roots = ["package.json", ".git", ".hg"]
command = "vscode-css-languageserver"
args = ["--stdio"]
[language.less]
filetypes = ["less"]
roots = ["package.json", ".git", ".hg"]
command = "vscode-css-languageserver"
args = ["--stdio"]
[language.scss]
filetypes = ["scss"]
roots = ["package.json", ".git", ".hg"]
command = "vscode-css-languageserver"
args = ["--stdio"]
[language.d]
filetypes = ["d", "di"]
roots = [".git", "dub.sdl", "dub.json"]
command = "dls"
[language.dart]
# start shell to find path to dart analysis server source
filetypes = ["dart"]
roots = ["pubspec.yaml", ".git", ".hg"]
command = "dart"
args = ["language-server"]
[language.dart.settings.dart]
lineLength = 120
[language.elixir]
filetypes = ["elixir"]
roots = ["mix.exs"]
command = "elixir-ls"
settings_section = "elixirLS"
[language.elixir.settings.elixirLS]
# See https://github.com/elixir-lsp/elixir-ls/blob/master/apps/language_server/lib/language_server/server.ex
# dialyzerEnable = true
[language.elm]
filetypes = ["elm"]
roots = ["elm.json"]
command = "elm-language-server"
args = ["--stdio"]
settings_section = "elmLS"
[language.elm.settings.elmLS]
# See https://github.com/elm-tooling/elm-language-server#server-settings
runtime = "node"
elmPath = "elm"
elmFormatPath = "elm-format"
elmTestPath = "elm-test"
[language.elvish]
filetypes = ["elvish"]
roots = [".git", ".hg"]
command = "elvish"
args = ["-lsp"]
[language.erlang]
filetypes = ["erlang"]
# See https://github.com/erlang-ls/erlang_ls.git for more information and
# how to configure. This default config should work in most cases though.
roots = ["rebar.config", "erlang.mk", ".git", ".hg"]
command = "erlang_ls"
[language.go]
filetypes = ["go"]
roots = ["Gopkg.toml", "go.mod", ".git", ".hg"]
command = "gopls"
settings_section = "gopls"
[language.go.settings.gopls]
# See https://github.com/golang/tools/blob/master/gopls/doc/settings.md
# "build.buildFlags" = []
[language.haskell]
filetypes = ["haskell"]
roots = ["hie.yaml", "cabal.project", "Setup.hs", "stack.yaml", "*.cabal"]
command = "haskell-language-server-wrapper"
args = ["--lsp"]
settings_section = "_"
[language.haskell.settings._]
# See https://haskell-language-server.readthedocs.io/en/latest/configuration.html
# haskell.formattingProvider = "ormolu"
[language.html]
filetypes = ["html"]
roots = ["package.json"]
command = "vscode-html-languageserver"
args = ["--stdio"]
# # Commented out by default because you still need to set the paths in the JDT
# # Language Server arguments below before this can become a valid configuration.
# [language.java]
# filetypes = ["java"]
# roots = [".git", "mvnw", "gradlew"]
# command = "java"
# args = [
# "-Declipse.application=org.eclipse.jdt.ls.core.id1",
# "-Dosgi.bundles.defaultStartLevel=4",
# "-Declipse.product=org.eclipse.jdt.ls.core.product",
# "-Dlog.level=ALL",
# "-Dfile.encoding=utf-8",
# "--add-modules=ALL-SYSTEM",
# "--add-opens",
# "java.base/java.util=ALL-UNNAMED",
# "--add-opens",
# "java.base/java.lang=ALL-UNNAMED",
# "-noverify",
# "-Xmx1G",
# "-jar",
# "/path/to/eclipse.jdt.ls/repository/plugins/org.eclipse.equinox.launcher_1.6.100.v20201223-0822.jar",
# "-configuration",
# "/path/to/eclipse.jdt.ls/repository/config_linux",
# "-data",
# "/path/to/eclipse-workspace",
# ]
# [language.java.settings]
# # See https://github.dev/eclipse/eclipse.jdt.ls
# # "java.format.insertSpaces" = true
[language.javascriptreact]
filetypes = ["javascript"]
roots = ["package.json", "tsconfig.json", ".git", ".hg"]
command = "typescript-language-server"
args = ["--stdio"]
settings_section = "_"
[language.javascriptreact.settings._]
# quotePreference = "single"
# javascript.format.semicolons = "insert"
[language.json]
filetypes = ["json"]
roots = ["package.json"]
command = "vscode-json-language-server"
args = ["--stdio"]
# Requires Julia package "LanguageServer"
# Run: `julia --project=@kak-lsp -e 'import Pkg; Pkg.add("LanguageServer")'` to install it
# Configuration adapted from https://github.com/neovim/nvim-lspconfig/blob/bcebfac7429cd8234960197dca8de1767f3ef5d3/lua/lspconfig/julials.lua
[language.julia]
filetypes = ["julia"]
roots = ["Project.toml", ".git", ".hg"]
command = "julia"
args = [
"--startup-file=no",
"--history-file=no",
"-e",
"""
ls_install_path = joinpath(get(DEPOT_PATH, 1, joinpath(homedir(), ".julia")), "environments", "kak-lsp");
pushfirst!(LOAD_PATH, ls_install_path);
using LanguageServer;
popfirst!(LOAD_PATH);
depot_path = get(ENV, "JULIA_DEPOT_PATH", "");
buffer_file = ENV["kak_buffile"];
project_path = let
dirname(something(
# 1. Check if there is an explicitly set project
Base.load_path_expand((
p = get(ENV, "JULIA_PROJECT", nothing);
p === nothing ? nothing : isempty(p) ? nothing : p
)),
# 2. Check for Project.toml in current working directory
Base.current_project(pwd()),
# 3. Check for Project.toml from buffer's full file path excluding the file name
Base.current_project(dirname(buffer_file)),
# 4. Fallback to global environment
Base.active_project()
))
end
server = LanguageServer.LanguageServerInstance(stdin, stdout, project_path, depot_path);
server.runlinter = true;
run(server);
""",
]
[language.julia.settings]
# See https://github.com/julia-vscode/LanguageServer.jl/blob/master/src/requests/workspace.jl
# Format options. See https://github.com/julia-vscode/DocumentFormat.jl/blob/master/src/DocumentFormat.jl
# "julia.format.indent" = 4
# Lint options. See https://github.com/julia-vscode/StaticLint.jl/blob/master/src/linting/checks.jl
# "julia.lint.call" = true
# Other options, see https://github.com/julia-vscode/LanguageServer.jl/blob/master/src/requests/workspace.jl
# "julia.lint.run" = "true"
[language.latex]
filetypes = ["latex"]
roots = [".git", ".hg"]
command = "texlab"
settings_section = "texlab"
[language.latex.settings.texlab]
# See https://github.com/latex-lsp/texlab/wiki/Configuration
#
# Preview configuration for zathura with SyncTeX search.
# For other PDF viewers see https://github.com/latex-lsp/texlab/wiki/Previewing
forwardSearch.executable = "zathura"
forwardSearch.args = [
"%p",
"--synctex-forward", # Support texlab-forward-search
"%l:1:%f",
"--synctex-editor-command", # Inverse search: use Control+Left-Mouse-Button to jump to source.
"""
sh -c '
echo "
evaluate-commands -client %opt{texlab_client} %{
evaluate-commands -try-client %opt{jumpclient} %{
edit -- %{input} %{line}
}
}
" | kak -p $kak_session
'
""",
]
[language.lua]
filetypes = ["lua"]
roots = [".git", ".hg"]
command = "lua-language-server"
[language.lua.settings.Lua]
# See https://github.com/sumneko/vscode-lua/blob/master/setting/schema.json
# diagnostics.enable = true
[language.markdown]
filetypes = ["md", "markdown"]
roots = [".git", ".hg"]
command = "vscode-markdown-language-server"
args = ["--stdio"]
# [[language]]
# name = "markdown"
# scope = "source.md"
# injection-regex = "md|markdown"
# file-types = ["md", "markdown", "PULLREQ_EDITMSG", "mkd", "mdwn", "mdown", "markdn", "mdtxt", "mdtext", "workbook"]
# roots = [".marksman.toml"]
# language-servers = [ "marksman" ]
# indent = { tab-width = 2, unit = " " }
[language.nim]
filetypes = ["nim"]
roots = ["*.nimble", ".git", ".hg"]
command = "nimlsp"
[language.nix]
filetypes = ["nix"]
roots = ["flake.nix", "shell.nix", ".git", ".hg"]
command = "rnix-lsp"
[language.ocaml]
filetypes = ["ocaml"]
# Often useful to simply do a `touch dune-workspace` in your project root folder if you have problems with root detection
roots = ["dune-workspace", "dune-project", "Makefile", "opam", "*.opam", "esy.json", ".git", ".hg", "dune"]
command = "ocamllsp"
[language.php]
filetypes = ["php"]
roots = [".htaccess", "composer.json"]
command = "intelephense"
args = ["--stdio"]
settings_section = "intelephense"
[language.php.settings]
intelephense.storagePath = "/tmp/intelephense"
[language.proto]
filetypes = ["protobuf"]
roots = [".git", ".hg"]
command = "pls" # https://github.com/lasorda/protobuf-language-server
[language.python]
filetypes = ["python"]
roots = ["requirements.txt", "setup.py", ".git", ".hg"]
command = "pylsp"
settings_section = "_"
[language.python.settings._]
# See https://github.com/python-lsp/python-lsp-server#configuration
# pylsp.configurationSources = ["flake8"]
pylsp.plugins.jedi_completion.include_params = true
[language.r]
filetypes = ["r"]
roots = ["DESCRIPTION", ".git", ".hg"]
command = "R"
args = ["--slave", "-e", "languageserver::run()"]
[language.racket]
filetypes = ["racket"]
roots = ["info.rkt"]
command = "racket"
args = ["-l", "racket-langserver"]
[language.reason]
filetypes = ["reason"]
roots = ["package.json", "Makefile", ".git", ".hg"]
command = "ocamllsp"
[language.ruby]
filetypes = ["ruby"]
roots = ["Gemfile"]
command = "solargraph"
args = ["stdio"]
settings_section = "_"
[language.ruby.settings._]
# See https://github.com/castwide/solargraph/blob/master/lib/solargraph/language_server/host.rb
# diagnostics = false
# [language.rust]
# filetypes = ["rust"]
# roots = ["Cargo.toml"]
# command = "sh"
# args = [
# "-c",
# """
# if path=$(rustup which rls 2>/dev/null); then
# "$path"
# else
# rls
# fi
# """,
# ]
# [language.rust.settings.rust]
# # See https://github.com/rust-lang/rls#configuration
# # features = []
[language.rust]
filetypes = ["rust"]
roots = ["Cargo.toml"]
command = "sh"
args = [
"-c",
"""
if path=$(rustup which rust-analyzer 2>/dev/null); then
"$path"
else
rust-analyzer
fi
""",
]
settings_section = "rust-analyzer"
[language.rust.settings.rust-analyzer]
# See https://rust-analyzer.github.io/manual.html#configuration
hoverActions.enable = false # kak-lsp doesn't support this at the moment
# cargo.features = []
[language.terraform]
filetypes = ["terraform"]
roots = ["*.tf"]
command = "terraform-ls"
args = ["serve"]
[language.terraform.settings.terraform-ls]
# See https://github.com/hashicorp/terraform-ls/blob/main/docs/SETTINGS.md
# rootModulePaths = []
# [language.typescriptreact]
# filetypes = ["typescript"]
# roots = ["package.json", "tsconfig.json", ".git", ".hg"]
# command = "typescript-language-server"
# args = ["--stdio"]
# settings_section = "_"
# [language.typescriptreact.settings._]
# quotePreference = "double"
# typescript.format.semicolons = "insert"
[language.tsx]
filetypes = ["typescript"]
roots = ["package.json", "tsconfig.json", ".git", ".hg"]
command = "typescript-language-server"
args = ["--stdio"]
settings_section = "_"
# [language.typescript.settings.deno]
# enable = true
# lint = true
[language.yaml]
filetypes = ["yaml"]
roots = [".git", ".hg"]
command = "yaml-language-server"
args = ["--stdio"]
[language.yaml.settings]
# See https://github.com/redhat-developer/yaml-language-server#language-server-settings
# Defaults are at https://github.com/redhat-developer/yaml-language-server/blob/master/src/yamlSettings.ts
# yaml.format.enable = true
[language.zig]
filetypes = ["zig"]
roots = ["build.zig"]
command = "zls"
# Semantic tokens support
# See https://microsoft.github.io/language-server-protocol/specifications/specification-current/#textDocument_semanticTokens
# for the default list of tokens and modifiers.
# However, many language servers implement their own values.
# Make sure to check the output of `lsp-capabilities` and each server's documentation and source code as well.
# Examples:
# - TypeScript: https://github.com/microsoft/vscode-languageserver-node/blob/main/client/src/common/semanticTokens.ts
# - Rust Analyzer: https://github.com/rust-analyzer/rust-analyzer/blob/master/crates/ide/src/syntax_highlighting.rs
[semantic_tokens]
faces = [
{face="documentation", token="comment", modifiers=["documentation"]},
{face="comment", token="comment"},
{face="function", token="function"},
{face="keyword", token="keyword"},
{face="module", token="namespace"},
{face="operator", token="operator"},
{face="string", token="string"},
{face="type", token="type"},
{face="default+d", token="variable", modifiers=["readonly"]},
{face="default+d", token="variable", modifiers=["constant"]},
{face="variable", token="variable"},
]

View File

@ -1,83 +0,0 @@
# Catppuccin theme for Kakoune
# Color palette
declare-option str rosewater 'rgb:f2d5cf'
declare-option str red 'rgb:e78284'
declare-option str mauve 'rgb:ca9ee6'
declare-option str maroon 'rgb:ea999c'
declare-option str pink 'rgb:f4b8e4'
declare-option str cyan 'rgb:85c1dc'
declare-option str yellow 'rgb:e5c890'
declare-option str green 'rgb:a6d189'
declare-option str white 'rgb:c6d0f5'
declare-option str blue 'rgb:8caaee'
declare-option str sky 'rgb:99d1db'
declare-option str lavender 'rgb:babbf1'
declare-option str black1 'rgb:292c3c'
declare-option str black2 'rgb:303446'
declare-option str black3 'rgb:414559'
declare-option str orange 'rgb:ef9f76'
declare-option str teal 'rgb:81c8be'
declare-option str gray0 'rgb:626880'
declare-option str gray1 'rgb:737994'
declare-option str bright_red %opt{red}
declare-option str bright_green %opt{green}
declare-option str bright_yellow %opt{yellow}
declare-option str bright_blue %opt{blue}
declare-option str bright_cyan %opt{cyan}
declare-option str bright_white %opt{white}
declare-option str foreground %opt{white}
declare-option str background %opt{black2}
# Markup
set-face global title "%opt{rosewater}"
set-face global header "%opt{bright_red}"
set-face global bold "%opt{mauve}"
set-face global italic "%opt{lavender}"
set-face global mono "%opt{green}"
set-face global block "%opt{cyan}"
set-face global link "%opt{green}"
set-face global bullet "%opt{green}"
set-face global list "%opt{white}"
# Builtins
set-face global Default "%opt{white},%opt{background}"
set-face global PrimarySelection "%opt{gray0},%opt{lavender}"
set-face global SecondarySelection "%opt{lavender},%opt{gray0}"
set-face global PrimaryCursor "%opt{background},%opt{rosewater}"
set-face global SecondaryCursor "%opt{black1},%opt{teal}"
set-face global PrimaryCursorEol "%opt{gray0},%opt{mauve}"
set-face global SecondaryCursorEol "%opt{gray0},%opt{maroon}"
set-face global LineNumbers "%opt{gray1},%opt{background}"
set-face global LineNumberCursor "%opt{lavender},%opt{gray0}+b"
set-face global LineNumbersWrapped "%opt{teal},%opt{black1}+i"
set-face global MenuForeground "%opt{white},%opt{gray0}+b"
set-face global MenuBackground "%opt{white},%opt{black3}"
set-face global MenuInfo "%opt{black1},%opt{blue}"
set-face global Information "%opt{black1},%opt{lavender}"
set-face global Error "%opt{red},%opt{black2}"
set-face global StatusLine "%opt{white},%opt{black1}"
set-face global StatusLineMode "%opt{black2},%opt{yellow}"
set-face global StatusLineInfo "%opt{background},%opt{green}"
set-face global StatusLineValue "%opt{orange},%opt{gray0}"
set-face global StatusCursor "%opt{black1},%opt{lavender}"
set-face global Prompt "%opt{green},%opt{black2}"
set-face global MatchingChar "%opt{maroon},%opt{black2}"
set-face global Whitespace "%opt{gray1},%opt{background}+f"
set-face global WrapMarker Whitespace
set-face global BufferPadding "%opt{background},%opt{background}"
# Code
set-face global value "%opt{orange}"
set-face global type "%opt{rosewater}"
set-face global variable "%opt{white}"
set-face global module "%opt{maroon}"
set-face global function "%opt{sky}"
set-face global string "%opt{green}"
set-face global keyword "%opt{blue}"
set-face global operator "%opt{blue}"
set-face global attribute "%opt{green}"
set-face global comment "%opt{gray1}"
set-face global documentation comment
set-face global meta "%opt{pink}"
set-face global builtin "%opt{lavender}+b"

View File

@ -1,83 +0,0 @@
# Catppuccin theme for Kakoune
# Color palette
declare-option str rosewater 'rgb:dc8a78'
declare-option str red 'rgb:d20f39'
declare-option str mauve 'rgb:8839ef'
declare-option str maroon 'rgb:e64553'
declare-option str pink 'rgb:ea76cb'
declare-option str cyan 'rgb:209fb5'
declare-option str yellow 'rgb:df8e1d'
declare-option str green 'rgb:40a02b'
declare-option str white 'rgb:4c4f69'
declare-option str blue 'rgb:1e66f5'
declare-option str sky 'rgb:04a5e5'
declare-option str lavender 'rgb:7287fd'
declare-option str black1 'rgb:e6e9ef'
declare-option str black2 'rgb:eff1f5'
declare-option str black3 'rgb:ccd0da'
declare-option str orange 'rgb:fe640b'
declare-option str teal 'rgb:179299'
declare-option str gray0 'rgb:acb0be'
declare-option str gray1 'rgb:9ca0b0'
declare-option str bright_red %opt{red}
declare-option str bright_green %opt{green}
declare-option str bright_yellow %opt{yellow}
declare-option str bright_blue %opt{blue}
declare-option str bright_cyan %opt{cyan}
declare-option str bright_white %opt{white}
declare-option str foreground %opt{white}
declare-option str background %opt{black2}
# Markup
set-face global title "%opt{rosewater}"
set-face global header "%opt{bright_red}"
set-face global bold "%opt{mauve}"
set-face global italic "%opt{lavender}"
set-face global mono "%opt{green}"
set-face global block "%opt{cyan}"
set-face global link "%opt{green}"
set-face global bullet "%opt{green}"
set-face global list "%opt{white}"
# Builtins
set-face global Default "%opt{white},%opt{background}"
set-face global PrimarySelection "%opt{gray0},%opt{lavender}"
set-face global SecondarySelection "%opt{lavender},%opt{gray0}"
set-face global PrimaryCursor "%opt{background},%opt{rosewater}"
set-face global SecondaryCursor "%opt{black1},%opt{teal}"
set-face global PrimaryCursorEol "%opt{gray0},%opt{mauve}"
set-face global SecondaryCursorEol "%opt{gray0},%opt{maroon}"
set-face global LineNumbers "%opt{gray1},%opt{background}"
set-face global LineNumberCursor "%opt{lavender},%opt{gray0}+b"
set-face global LineNumbersWrapped "%opt{teal},%opt{black1}+i"
set-face global MenuForeground "%opt{white},%opt{gray0}+b"
set-face global MenuBackground "%opt{white},%opt{black3}"
set-face global MenuInfo "%opt{black1},%opt{blue}"
set-face global Information "%opt{black1},%opt{lavender}"
set-face global Error "%opt{red},%opt{black2}"
set-face global StatusLine "%opt{white},%opt{black1}"
set-face global StatusLineMode "%opt{black2},%opt{yellow}"
set-face global StatusLineInfo "%opt{background},%opt{green}"
set-face global StatusLineValue "%opt{orange},%opt{gray0}"
set-face global StatusCursor "%opt{black1},%opt{lavender}"
set-face global Prompt "%opt{green},%opt{black2}"
set-face global MatchingChar "%opt{maroon},%opt{black2}"
set-face global Whitespace "%opt{gray1},%opt{background}+f"
set-face global WrapMarker Whitespace
set-face global BufferPadding "%opt{background},%opt{background}"
# Code
set-face global value "%opt{orange}"
set-face global type "%opt{rosewater}"
set-face global variable "%opt{white}"
set-face global module "%opt{maroon}"
set-face global function "%opt{sky}"
set-face global string "%opt{green}"
set-face global keyword "%opt{blue}"
set-face global operator "%opt{blue}"
set-face global attribute "%opt{green}"
set-face global comment "%opt{gray1}"
set-face global documentation comment
set-face global meta "%opt{pink}"
set-face global builtin "%opt{lavender}+b"

View File

@ -1,83 +0,0 @@
# Catppuccin theme for Kakoune
# Color palette
declare-option str rosewater 'rgb:f4dbd6'
declare-option str red 'rgb:ed8796'
declare-option str mauve 'rgb:c6a0f6'
declare-option str maroon 'rgb:ee99a0'
declare-option str pink 'rgb:f5bde6'
declare-option str cyan 'rgb:7dc4e4'
declare-option str yellow 'rgb:eed49f'
declare-option str green 'rgb:a6da95'
declare-option str white 'rgb:cad3f5'
declare-option str blue 'rgb:8aadf4'
declare-option str sky 'rgb:91d7e3'
declare-option str lavender 'rgb:b7bdf8'
declare-option str black1 'rgb:1e2030'
declare-option str black2 'rgb:24273a'
declare-option str black3 'rgb:363a4f'
declare-option str orange 'rgb:f5a97f'
declare-option str teal 'rgb:8bd5ca'
declare-option str gray0 'rgb:5b6078'
declare-option str gray1 'rgb:6e738d'
declare-option str bright_red %opt{red}
declare-option str bright_green %opt{green}
declare-option str bright_yellow %opt{yellow}
declare-option str bright_blue %opt{blue}
declare-option str bright_cyan %opt{cyan}
declare-option str bright_white %opt{white}
declare-option str foreground %opt{white}
declare-option str background %opt{black2}
# Markup
set-face global title "%opt{rosewater}"
set-face global header "%opt{bright_red}"
set-face global bold "%opt{mauve}"
set-face global italic "%opt{lavender}"
set-face global mono "%opt{green}"
set-face global block "%opt{cyan}"
set-face global link "%opt{green}"
set-face global bullet "%opt{green}"
set-face global list "%opt{white}"
# Builtins
set-face global Default "%opt{white},%opt{background}"
set-face global PrimarySelection "%opt{gray0},%opt{lavender}"
set-face global SecondarySelection "%opt{lavender},%opt{gray0}"
set-face global PrimaryCursor "%opt{background},%opt{rosewater}"
set-face global SecondaryCursor "%opt{black1},%opt{teal}"
set-face global PrimaryCursorEol "%opt{gray0},%opt{mauve}"
set-face global SecondaryCursorEol "%opt{gray0},%opt{maroon}"
set-face global LineNumbers "%opt{gray1},%opt{background}"
set-face global LineNumberCursor "%opt{lavender},%opt{gray0}+b"
set-face global LineNumbersWrapped "%opt{teal},%opt{black1}+i"
set-face global MenuForeground "%opt{white},%opt{gray0}+b"
set-face global MenuBackground "%opt{white},%opt{black3}"
set-face global MenuInfo "%opt{black1},%opt{blue}"
set-face global Information "%opt{black1},%opt{lavender}"
set-face global Error "%opt{red},%opt{black2}"
set-face global StatusLine "%opt{white},%opt{black1}"
set-face global StatusLineMode "%opt{black2},%opt{yellow}"
set-face global StatusLineInfo "%opt{background},%opt{green}"
set-face global StatusLineValue "%opt{orange},%opt{gray0}"
set-face global StatusCursor "%opt{black1},%opt{lavender}"
set-face global Prompt "%opt{green},%opt{black2}"
set-face global MatchingChar "%opt{maroon},%opt{black2}"
set-face global Whitespace "%opt{gray1},%opt{background}+f"
set-face global WrapMarker Whitespace
set-face global BufferPadding "%opt{background},%opt{background}"
# Code
set-face global value "%opt{orange}"
set-face global type "%opt{pink}"
set-face global variable "%opt{white}"
set-face global module "%opt{mauve}"
set-face global function "%opt{sky}"
set-face global string "%opt{green}"
set-face global keyword "%opt{blue}"
set-face global operator "%opt{blue}"
set-face global attribute "%opt{green}"
set-face global comment "%opt{gray1}"
set-face global documentation comment
set-face global meta "%opt{pink}"
set-face global builtin "%opt{lavender}+b"

View File

@ -1,83 +0,0 @@
# Catppuccin theme for Kakoune
# Color palette
declare-option str rosewater 'rgb:f5e0dc'
declare-option str red 'rgb:f38ba8'
declare-option str mauve 'rgb:cba6f7'
declare-option str maroon 'rgb:eba0ac'
declare-option str pink 'rgb:f5c2e7'
declare-option str cyan 'rgb:74c7ec'
declare-option str yellow 'rgb:f9e2af'
declare-option str green 'rgb:a6e3a1'
declare-option str white 'rgb:cdd6f4'
declare-option str blue 'rgb:89b4fa'
declare-option str sky 'rgb:89dceb'
declare-option str lavender 'rgb:b4befe'
declare-option str black1 'rgb:181825'
declare-option str black2 'rgb:1e1e2e'
declare-option str black3 'rgb:313244'
declare-option str orange 'rgb:fab387'
declare-option str teal 'rgb:94e2d5'
declare-option str gray0 'rgb:585b70'
declare-option str gray1 'rgb:6c7086'
declare-option str bright_red %opt{red}
declare-option str bright_green %opt{green}
declare-option str bright_yellow %opt{yellow}
declare-option str bright_blue %opt{blue}
declare-option str bright_cyan %opt{cyan}
declare-option str bright_white %opt{white}
declare-option str foreground %opt{white}
declare-option str background %opt{black2}
# Markup
set-face global title "%opt{rosewater}"
set-face global header "%opt{bright_red}"
set-face global bold "%opt{mauve}"
set-face global italic "%opt{lavender}"
set-face global mono "%opt{green}"
set-face global block "%opt{cyan}"
set-face global link "%opt{green}"
set-face global bullet "%opt{green}"
set-face global list "%opt{white}"
# Builtins
set-face global Default "%opt{white},%opt{background}"
set-face global PrimarySelection "%opt{gray0},%opt{lavender}"
set-face global SecondarySelection "%opt{lavender},%opt{gray0}"
set-face global PrimaryCursor "%opt{background},%opt{rosewater}"
set-face global SecondaryCursor "%opt{black1},%opt{teal}"
set-face global PrimaryCursorEol "%opt{gray0},%opt{mauve}"
set-face global SecondaryCursorEol "%opt{gray0},%opt{maroon}"
set-face global LineNumbers "%opt{gray1},%opt{background}"
set-face global LineNumberCursor "%opt{lavender},%opt{gray0}+b"
set-face global LineNumbersWrapped "%opt{teal},%opt{black1}+i"
set-face global MenuForeground "%opt{white},%opt{gray0}+b"
set-face global MenuBackground "%opt{white},%opt{black3}"
set-face global MenuInfo "%opt{black1},%opt{blue}"
set-face global Information "%opt{black1},%opt{lavender}"
set-face global Error "%opt{red},%opt{black2}"
set-face global StatusLine "%opt{white},%opt{black1}"
set-face global StatusLineMode "%opt{black2},%opt{yellow}"
set-face global StatusLineInfo "%opt{background},%opt{green}"
set-face global StatusLineValue "%opt{orange},%opt{gray0}"
set-face global StatusCursor "%opt{black1},%opt{lavender}"
set-face global Prompt "%opt{green},%opt{black2}"
set-face global MatchingChar "%opt{maroon},%opt{black2}"
set-face global Whitespace "%opt{gray1},%opt{background}+f"
set-face global WrapMarker Whitespace
set-face global BufferPadding "%opt{background},%opt{background}"
# Code
set-face global value "%opt{orange}"
set-face global type "%opt{rosewater}"
set-face global variable "%opt{white}"
set-face global module "%opt{maroon}"
set-face global function "%opt{sky}"
set-face global string "%opt{green}"
set-face global keyword "%opt{blue}"
set-face global operator "%opt{blue}"
set-face global attribute "%opt{green}"
set-face global comment "%opt{gray1}"
set-face global documentation comment
set-face global meta "%opt{pink}"
set-face global builtin "%opt{lavender}+b"

@ -1 +0,0 @@
Subproject commit 5db74769ca8710b27140cf5a1107183b339f2916

View File

@ -1 +0,0 @@

View File

@ -1,87 +0,0 @@
# Pastel theme for Kakoune
# Color palette
# declare-option str black 'rgb:2b2e33'
declare-option str black default
declare-option str dark 'rgb:3b3b46'
declare-option str gray 'rgb:5a5b5b'
declare-option str aqua 'rgb:6bbac1'
declare-option str white 'rgb:dcdbd7'
declare-option str blue 'rgb:65a4cf'
declare-option str cyan 'rgb:6dcac0'
declare-option str blue_green 'rgb:81bba3'
declare-option str green 'rgb:8dbc92'
declare-option str orange 'rgb:dea981'
declare-option str pink 'rgb:d38da9'
declare-option str purple 'rgb:ca9bf7'
declare-option str red 'rgb:db948e'
declare-option str yellow 'rgb:e1d179'
declare-option str lime 'rgb:adc47e'
declare-option str dimgray 'rgb:3d4747'
declare-option str psel 'rgba:46466480'
declare-option str ssel 'rgba:37375580'
declare-option str background %opt{black}
declare-option str dimmed_background %opt{gray}
declare-option str foreground %opt{white}
# Reference
# https://github.com/mawww/kakoune/blob/master/colors/default.kak
# For code
set-face global value "%opt{yellow}"
set-face global type "%opt{aqua}"
set-face global variable "%opt{purple}"
set-face global module "%opt{white}"
set-face global function "%opt{orange}"
set-face global string "%opt{pink}"
set-face global keyword "%opt{green}"
set-face global operator "%opt{aqua}"
set-face global attribute "%opt{blue_green}"
set-face global bracket "%opt{white}+b"
set-face global arguement "%opt{blue_green}"
set-face global comma "%opt{white}"
set-face global constant "%opt{blue_green}+b"
set-face global class "%opt{lime}"
set-face global comment "%opt{gray}+i"
set-face global meta "%opt{blue}"
set-face global builtin "%opt{cyan}+b"
# For markup
set-face global title "%opt{pink}"
set-face global header "%opt{orange}"
set-face global bold "%opt{pink}"
set-face global italic "%opt{purple}"
set-face global mono "%opt{green}"
set-face global block "%opt{cyan}"
set-face global link "%opt{green}"
set-face global bullet "%opt{green}"
set-face global list "%opt{white}"
# Builtin faces
set-face global Default "%opt{white},%opt{black}"
# set-face global Default "%opt{white},default"
set-face global PrimarySelection "default,%opt{psel}"
set-face global SecondarySelection "default,%opt{ssel}"
set-face global PrimaryCursor "%opt{dark},%opt{purple}"
set-face global SecondaryCursor "%opt{dark},%opt{aqua}"
set-face global PrimaryCursorEol "%opt{dark},%opt{yellow}"
set-face global SecondaryCursorEol "%opt{dark},%opt{blue}"
set-face global LineNumbers "%opt{gray},%opt{black}"
set-face global LineNumberCursor "%opt{purple},%opt{black}+b"
set-face global LineNumbersWrapped "%opt{gray},%opt{black}+i"
set-face global MenuForeground "%opt{dark},%opt{white}+b"
set-face global MenuBackground "%opt{white},%opt{dark}"
set-face global MenuInfo "%opt{dark},%opt{orange}"
set-face global Information "%opt{yellow},%opt{black}"
set-face global Error "%opt{red},%opt{black}"
set-face global StatusLine "%opt{white},%opt{black}"
set-face global StatusLineMode "%opt{aqua},%opt{black}"
set-face global StatusLineInfo "%opt{purple},%opt{black}"
set-face global StatusLineValue "%opt{orange},%opt{black}"
set-face global StatusCursor "%opt{white},%opt{blue}"
set-face global Prompt "%opt{green},%opt{black}"
set-face global MatchingChar "%opt{blue},%opt{black}"
set-face global Whitespace "%opt{dimgray},%opt{black}+f"
set-face global WrapMarker Whitespace
set-face global BufferPadding "%opt{black},%opt{black}"

View File

@ -1,275 +0,0 @@
# ------------------
# Plugin Setup
# ------------------
# IMORTANT NOTE:
# I needed to open kakoune and type ':plug-install' to actually
# install the plugins listed in this file. I did not see this
# mentioned in wikis or anything, so make sure to do this to
# avoid searching github wikis and reddit needlessly.
# Creates the /plugins folder if it doesnt exist each startup
evaluate-commands %sh{
plugins="$kak_config/plugins"
mkdir -p "$plugins"
[ ! -e "$plugins/plug.kak" ] && \
git clone -q https://github.com/andreyorst/plug.kak.git "$plugins/plug.kak"
printf "%s\n" "source '$plugins/plug.kak/rc/plug.kak'"
}
plug "andreyorst/plug.kak" noload
# ------------------
# Editor Settings
# ------------------
# Disables startup message showing
set-option global startup_info_version 30000000
set-option global tabstop 4
set-option global indentwidth 4
set-option global scrolloff 5,3
declare-option str kakrc_path "~/system/nate/dotfiles/kak/kakrc"
declare-option str sway_conf_path "~/system/nate/dotfiles/sway/config.d/default"
declare-option str shell_config "~/system/nate/modules/home-manager/home.nix"
# plug "catppuccin/kakoune" theme config %{
# colorscheme catppuccin_macchiato
# }
colorscheme catppuccin_macchiato
# relative line numbers
hook global BufCreate .* %{
add-highlighter buffer/ number-lines -hlcursor
}
# Git Gutters
hook global WinCreate .* %{ evaluate-commands %sh{
if [ $kak_buffile != $kak_bufname ] && git ls-files --error-unmatch "$kak_buffile" > /dev/null 2>&1; then
echo "git show-diff"
fi
}}
# Write on unfocus
hook global FocusOut .* %{ try %{
write
}}
hook global BufWritePost .* %{ evaluate-commands 'git update-diff' }
hook global BufReload .* %{ evaluate-commands 'git update-diff' }
# Color Render in Echo Area
hook global WinSetOption filetype=kak %{ hook global NormalIdle .* %{
evaluate-commands -save-regs 'a' %{ try %{
execute-keys -draft <a-i>w"ay
evaluate-commands %sh{ (
color="${kak_reg_a}"
inverted_color=$(echo "${color}" | perl -pe 'tr/0123456789abcdefABCDEF/fedcba9876543210543210/')
printf "%s\n" "evaluate-commands -client $kak_client %{ try %{
echo -markup %{{rgb:${inverted_color},rgb:${color}+b} #${color} }
}}" | kak -p $kak_session
) >/dev/null 2>&1 </dev/null & }
}}
}}
# Add default,red and bold style to these regex matches
add-highlighter global/ regex \b(TODO|FIXME|XXX|NOTE)\b 0:default,red+rb
# ------------------
# Key bindings
# ------------------
# Remap hjkl navigation to colemak-dh layout
map global normal n h
map global normal e k
map global normal i j
map global normal o l
map global normal N H
map global normal E K
map global normal I J
map global normal O L
# Remap insert command
map global normal h i
# Insert line above or below
map global normal l o
map global normal L O
# No alt, remap
map global normal <c-f> <a-f> -docstring 'same as [f] but in the other direction'
map global normal <c-t> <a-t> -docstring 'same as [t] but in the other direction'
map global normal <c-n> <a-h> -docstring 'select to beginning of line'
map global normal <c-o> <a-l> -docstring 'select to end of line'
map global normal <c-s> <a-s> -docstring 'split selections on line boundaries'
map global normal <c-S> <a-S> -docstring 'select first and last character of each selection'
map global normal '<c-;>' '<a-;>' -docstring 'flip direction of each selection'
map global normal <c-:> <a-:> -docstring 'ensure selections are in forward direction (cursor then anchor)'
map global normal <c-,> <a-,> -docstring 'clear the main selection'
map global normal <c-.> <a-.> -docstring 'Repeat last object or f/t selection'
# Scrolling remap
map global normal <c-e> <pageup> -docstring 'Scroll screen up'
map global normal <c-i> <pagedown> -docstring 'Scroll screen down'
map global normal <c-/> ':comment-line<ret>' -docstring 'comment selected lines'
# Ctrl-s to save
map global normal <c-s> ':w<ret>' -docstring 'write buffer'
# Ctrl-x to save and exit
map global normal <c-x> ':w<ret>:db<ret>' -docstring 'write close buffer'
# Colemak goto remappings
map global goto n h -docstring 'line start'
map global goto o l -docstring 'line end'
map global goto e k -docstring 'buffer top'
map global goto i j -docstring 'buffer bottom'
map global goto h n
map global goto l o
map global goto k e
map global goto j i
# Remap view keys
map global view n h
map global view o l
map global view e k
map global view i j
map global normal ( ': buffer-previous<ret>' -docstring 'prev buffer'
map global normal ) ': buffer-next<ret>' -docstring 'next buffer'
# map global normal [ ( -docstring 'rotate main selection'
# map global normal ] ) -docstring 'rotate main selection backwards'
# Make x select <param> lines up and down
def -params 1 extend-line-down %{
exec "<a-:>%arg{1}J"
}
def -params 1 extend-line-up %{
exec "<a-:><a-;>%arg{1}K<a-;>"
try %{
exec -draft ';<a-K>\n<ret>'
exec X
}
exec '<a-;><a-X>'
}
map global normal x ':extend-line-down %val{count}<ret>'
map global normal X ':extend-line-up %val{count}<ret>'
map global normal k n -docstring 'next result'
map global normal K N -docstring 'next result add selection'
map global normal <a-k> <c-n> -docstring 'prev result'
map global normal <a-K> <c-N> -docstring 'prev result add selection'
map global insert <down> <c-n> -docstring 'next completion'
map global insert <up> <c-p> -docstring 'prev completion'
# User Mode Bindings
# Accessed with <space>
declare-user-mode git
map global user g ': enter-user-mode git<ret>' -docstring "Git mode"
map global user p '<a-!>wl-paste -n<ret>' -docstring 'paste from system clip board'
hook global RegisterModified '"' %{ nop %sh{
printf %s "$kak_main_reg_dquote" | wl-copy > /dev/null 2>&1 &
}}
# Open kakrc, double quotes needed to ecsape the kakrc_path option
map global user o ":edit %opt{kakrc_path}<ret>" -docstring 'open kakrc'
map global user z ":edit %opt{shell_config}<ret>" -docstring 'open shell config'
map global user S ":edit %opt{sway_conf_path}<ret>" -docstring 'open wm config'
# Git Mode Bindings
map global git d '<esc>:git show-diff<ret>' -docstring "Show diff"
# -----------------
# LSP Configuration
# -----------------
plug "kak-lsp/kak-lsp" do %{
cargo install --locked --force --path .
mkdir -p ~/.config/kak-lsp
cp -n kak-lsp.toml ~/.config/kak-lsp/
} config %{
# enable inlay hints
lsp-inlay-hints-enable global
lsp-inlay-diagnostics-enable global
# set global lsp_diagnostic_line_error_sign '║'
# set global lsp_diagnostic_line_warning_sign '┊'
define-command lsp-restart -docstring 'restart lsp server' %{ lsp-stop; lsp-start }
map global insert <tab> '<a-;>:try lsp-snippets-select-next-placeholders catch %{ execute-keys -with-hooks <lt>tab> }<ret>' -docstring 'Select next snippet placeholder'
map global object a '<a-semicolon>lsp-object<ret>' -docstring 'LSP any symbol'
map global object <a-a> '<a-semicolon>lsp-object<ret>' -docstring 'LSP any symbol'
map global object e '<a-semicolon>lsp-object Function Method<ret>' -docstring 'LSP function or method'
map global object k '<a-semicolon>lsp-object Class Interface Struct<ret>' -docstring 'LSP class interface or struct'
map global object d '<a-semicolon>lsp-diagnostic-object --include-warnings<ret>' -docstring 'LSP errors and warnings'
map global object D '<a-semicolon>lsp-diagnostic-object<ret>' -docstring 'LSP errors'
# load lsp for supported filetypes
set-option global lsp_cmd "kak-lsp -s %val{session} -vvv --log /tmp/kak-lsp.log"
hook global WinSetOption filetype=(rust|python|go|javascript|typescript|c|cpp|zig|dart|ruby) %{
lsp-enable-window
# lsp-auto-hover-enable
map global user l ': enter-user-mode lsp<ret>' -docstring 'lsp mode'
map global user h ': enter-user-mode lsp<ret>h' -docstring 'lsp help'
map global user a ': enter-user-mode lsp<ret>a' -docstring 'lsp code action'
set-option global lsp_hover_anchor false
}
hook global KakEnd .* lsp-exit
}
# -----------------
# Other Plugins
# -----------------
map global goto f '<esc>:prompt -shell-script-candidates %{ fd --type f --hidden } file: %{ edit %val{text} }<ret>' -docstring "file"
map global goto b '<esc>:prompt -buffer-completion buffer: %{ buffer %val{text} }<ret>' -docstring "buffer"
# Fzf Plugin
plug "andreyorst/fzf.kak" config %{
# map global user f ':fzf-mode<ret>v' -docstring 'fzf file in project'
map global user b ':fzf-mode<ret>b' -docstring 'fzf current buffers'
map global user / ':fzf-mode<ret>g' -docstring 'fzf search in project'
# def fzf_file %{
# evaluate-commands %sh{
# printf "%s\n" ":fzf-mode<ret><esc>:fzf -items-cmd fd<ret>"
# }
# }
# Change FZF colors
# FZF_DEFAULT_OPTS=" \
# --color=bg+:#313244,bg:#1e1e2e,spinner:#f5e0dc,hl:#f38ba8 \
# --color=fg:#cdd6f4,header:#f38ba8,info:#cba6f7,pointer:#f5e0dc \
# --color=marker:#f5e0dc,fg+:#cdd6f4,prompt:#cba6f7,hl+:#f38ba8"
}
plug "alexherbo2/auto-pairs.kak" %{
enable-auto-pairs
}
plug "https://github.com/h-youhei/kakoune-surround"
map global normal <c-m> ':surround<ret>'
# Custom scripts
# evaluate-commands %sh{
# for file in ~/.config/kak/rc/*.kak; do
# printf "source %s\n" $file
# done
# }
# source "~/.config/kak/rc/"

View File

@ -1,40 +0,0 @@
#use evaluate-commands to collapse undo
define-command close_tag %{ evaluate-commands %{
#revert removing indent after leaving insert mode
try %{
execute-keys -draft '<a-h>s[^\n]<ret>'
} catch %{
execute-keys -draft 'K<a-&>'
}
execute-keys ';Gg<a-;>'
evaluate-commands %sh{
tag_list=`echo "$kak_selection" | grep -P -o '(?<=<)[^>]*[^/>](?=>)' | tac | cut -d ' ' -f 1`
close=
close_stack=
result=
for tag in $tag_list ; do
if [ `echo $tag | cut -c 1` = / ] ; then
close=${tag#/}
close_stack=$close\\n$close_stack
else
if [ $kak_opt_filetype != xml ] ; then
case $tag in
#self-closing tags
area|base|br|col|command|embed|hr|img|input|keygen|link|meta|param|source|track|wbr) continue ;;
esac
fi
if [ $tag = $close ] ; then
close_stack=${close_stack#*\\n}
close=`echo $close_stack | head -n 1`
else
result=$tag
break
fi
fi
done
[ -z $result ] && echo "fail 'no un-closed tag'"
echo "execute-keys -with-hooks \;i<lt>/$result><esc>"
}
}}
map global user c ':close_tag<ret>' -docstring "Close tag"

View File

@ -1,60 +0,0 @@
define-command fzzf -params .. %{ evaluate-commands %sh{
while [ $# -gt 0 ]; do
case $1 in
(-items-cmd) shift; items_cmd="$1" ;;
esac
shift
done
# fzf_tmp=$(mktemp -d "${TMPDIR:-/tmp}"/fzfgit.kak.XXXXXX)
# fzfcmd="${fzf_tmp}/fzfcmd"
# result="${fzf_tmp}/result"
# (
# shell_path="$(command -v sh)"
# if [ -n "${shell_path}" ]; then
# # portable shebang
# printf "%s\n" "#!${shell_path}"
# # set SHELL because fzf preview uses it
# printf "%s\n" "SHELL=${shell_path}"
# fi
# # compose entire fzf command with all args into single file which will be executed later
# # printf "%s\n" "export FZF_DEFAULT_OPTS=\"${kak_opt_fzf_default_opts:-}\""
# printf "%s\n" "cd \"${PWD}\" && $items_cmd | fzf > $result"
# printf "%s\n" "evaluate-commands -client ${kak_client} edit -existing $file" | kak -p "${kak_session}"
# printf "%s\n" "rm ${fzfcmd}"
# printf "%s\n" "fg"
# ) >> "${fzfcmd}"
# chmod 755 "${fzfcmd}"
kill -TSTP $kak_client_pid
cd `pwd` && $items_cmd | \
fzf | \
xargs printf "evaluate-commands -client ${kak_client} edit -existing %s\n" | \
kak -p
fg
# cmd="terminal $fzfcmd"
# Tells kakoune to open a terminal and run $fzfcmd
# printf "%s\n" "$fzfcmd"
# ( while [ -e "${fzfcmd}" ]; do sleep 0.1; done
# # printf "%s\n" "evaluate-commands -client ${kak_client} edit -existing ~/out.txt" | kak -p "${kak_session}"
# if [ -s "${result}" ]; then
# file=$(cat $result)
# printf "%s\n" "evaluate-commands -client ${kak_client} edit -existing $file" | kak -p "${kak_session}"
# fi
# rm -rf $fzf_temp
# ) > /dev/null 2>&1 < /dev/null &
# Bring kakoune back into the foreground
}}
# define-command fzf-project %{ fzzf -items-cmd 'fd -tfile' }
# map global user f ':fzf-project<ret>' -docstring 'fzf current project'

View File

@ -1,21 +0,0 @@
[General]
ConfigVersion=2
[Browser]
CustomProxyLocation=
Enabled=true
[GUI]
ApplicationTheme=dark
TrayIconAppearance=monochrome-light
[KeeShare]
Active="<?xml version=\"1.0\"?><KeeShare><Active/></KeeShare>\n"
Own="<?xml version=\"1.0\"?><KeeShare><PrivateKey>MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC8OYI/I2otsVMdam8HqfnEYa6emzV2EzXAST+1A4IOC8ojOJdGbhKbvScu5MwgPAWDRiS0yIr6fjNHpTfHCMqY/K8+UsaubHIAjVVR5SDrBvAroTfts/oIqFcW8ab9DYMPpopaxnXh25gGrmEBb33GzuL2LJ4kXz40BEYjsOSffOM83/RstRhmXaV86nPmtbswyLwSEGsPZZliMIgMEoT/Y2qcjfwRJIRIEWNybmlgrHWAzVj5sr00KQhfTRo6dQG/yBMoElYGNvKSTmQDy7WVR+Mh+rYPKOwb2v8D7UrPDKd1n+GheEBKpvE8mDcSg/vGlXOHirOBdtuk+/xhqAqxAgMBAAECggEAETzLs/WN0+5r4q3sdM1juCY2pC7UTWJtUeqYtilClVUOEiisw0CcXVKMI+wZ0jqSSgHipa3B+zZogtSw0Cj6yNpHQD67aZ45LdoY/ggs+hPSFeTMpu0MZmjoROEk6QLTmwYmSzGRT88DqVpPPEmWFrQRWU3KaSFRzy4JsFtoVz9OYeFw37d9pG8BYeruqE7kx+uzCYWRjQXrjmofFpbxGWhkIUcvbVZ8wUVso4gT4JxAQks6nryL5M9NXefU+x/e1Rkopa5aRG/H0dPMYX/8uV2lsr/AW4+kaMPrKoAsPUhErrrJDwNL2zCmcAzNgsthUo/6yLLKlnk+THAGnruEawKBgQDDG9qpvR+OCQrV1rUiX2JmomkMPKIkAf4xLFNAdOwnPMRnq1mRCn0OJmmPmRF+I5fM/64tFzGK/KD5fxll3ybN+mpA540ho9Gvk89AbILXmp9MQMEh92H5tf4/q1EKgsFjMM0aplg2zupsimyi4LuI6tCBUhWun5X5yxUsbyBW2wKBgQD296WmxLJEQJcHfHN/RYBs9HAKCWZTn8kLgoFgCxTHHTB+i5N9yug78N3LmsYUBYwbshpVewxcv6xrfxQJ/igB+zXAgDAghhvbqw+kAiFo+OapchX+Yvm6LzHdnpOIUEDcVhP/IPyGwCNqL3DYhX0A7Qudk4/g73MStAS5aHucYwKBgG4/RweyvincIitC74dErq2gCAvKFzSRi7jtev1pFCf3xmNuB2ZVruRYAD4MGD5Wjmhf8WO5P11x8uQIVamitqKdZXzXWoAvuUSlGO8mYajCzlCgJoGy78HSfKAthdWSnQQXh04PwLj3oq9CaLCAnHd5d+gbIfVSZ8SGZKh/Ap8RAoGADF8dgjwqPfcKWcqnMoH1y/92uVn9MUU42gXAm2ISuWLB8iTlz5Bhj9ciFTf8ojYg7aY/YXbXiLHlXkEwbMu5j1fZOnpxbr+pF5j7IJkmuU52p5had7LXlbcVhWeTNmnmxeLd/5LUc5+eZoxX19DgETLOuScSNw9nsVEpR2xvfMcCgYEAgR4j9M8Nq088dA5Z3VGGxJ/l3GI+gChogZBRmyG48GuBygMVujJ5Kowqid0a3ImAnvxa8BGvEJlinmAsKmyi1UsmXMCLzOWO+jRNuIRoscFk1m2D3IfG43NnjoOhr9aJZHga8DHd1FXNPTqT74jkePHlDzpGOaHXQUN5CyGNouA=</PrivateKey><PublicKey><Signer>nate</Signer><Key>MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC8OYI/I2otsVMdam8HqfnEYa6emzV2EzXAST+1A4IOC8ojOJdGbhKbvScu5MwgPAWDRiS0yIr6fjNHpTfHCMqY/K8+UsaubHIAjVVR5SDrBvAroTfts/oIqFcW8ab9DYMPpopaxnXh25gGrmEBb33GzuL2LJ4kXz40BEYjsOSffOM83/RstRhmXaV86nPmtbswyLwSEGsPZZliMIgMEoT/Y2qcjfwRJIRIEWNybmlgrHWAzVj5sr00KQhfTRo6dQG/yBMoElYGNvKSTmQDy7WVR+Mh+rYPKOwb2v8D7UrPDKd1n+GheEBKpvE8mDcSg/vGlXOHirOBdtuk+/xhqAqxAgMBAAECggEAETzLs/WN0+5r4q3sdM1juCY2pC7UTWJtUeqYtilClVUOEiisw0CcXVKMI+wZ0jqSSgHipa3B+zZogtSw0Cj6yNpHQD67aZ45LdoY/ggs+hPSFeTMpu0MZmjoROEk6QLTmwYmSzGRT88DqVpPPEmWFrQRWU3KaSFRzy4JsFtoVz9OYeFw37d9pG8BYeruqE7kx+uzCYWRjQXrjmofFpbxGWhkIUcvbVZ8wUVso4gT4JxAQks6nryL5M9NXefU+x/e1Rkopa5aRG/H0dPMYX/8uV2lsr/AW4+kaMPrKoAsPUhErrrJDwNL2zCmcAzNgsthUo/6yLLKlnk+THAGnruEawKBgQDDG9qpvR+OCQrV1rUiX2JmomkMPKIkAf4xLFNAdOwnPMRnq1mRCn0OJmmPmRF+I5fM/64tFzGK/KD5fxll3ybN+mpA540ho9Gvk89AbILXmp9MQMEh92H5tf4/q1EKgsFjMM0aplg2zupsimyi4LuI6tCBUhWun5X5yxUsbyBW2wKBgQD296WmxLJEQJcHfHN/RYBs9HAKCWZTn8kLgoFgCxTHHTB+i5N9yug78N3LmsYUBYwbshpVewxcv6xrfxQJ/igB+zXAgDAghhvbqw+kAiFo+OapchX+Yvm6LzHdnpOIUEDcVhP/IPyGwCNqL3DYhX0A7Qudk4/g73MStAS5aHucYwKBgG4/RweyvincIitC74dErq2gCAvKFzSRi7jtev1pFCf3xmNuB2ZVruRYAD4MGD5Wjmhf8WO5P11x8uQIVamitqKdZXzXWoAvuUSlGO8mYajCzlCgJoGy78HSfKAthdWSnQQXh04PwLj3oq9CaLCAnHd5d+gbIfVSZ8SGZKh/Ap8RAoGADF8dgjwqPfcKWcqnMoH1y/92uVn9MUU42gXAm2ISuWLB8iTlz5Bhj9ciFTf8ojYg7aY/YXbXiLHlXkEwbMu5j1fZOnpxbr+pF5j7IJkmuU52p5had7LXlbcVhWeTNmnmxeLd/5LUc5+eZoxX19DgETLOuScSNw9nsVEpR2xvfMcCgYEAgR4j9M8Nq088dA5Z3VGGxJ/l3GI+gChogZBRmyG48GuBygMVujJ5Kowqid0a3ImAnvxa8BGvEJlinmAsKmyi1UsmXMCLzOWO+jRNuIRoscFk1m2D3IfG43NnjoOhr9aJZHga8DHd1FXNPTqT74jkePHlDzpGOaHXQUN5CyGNouA=</Key></PublicKey></KeeShare>\n"
QuietSuccess=true
[PasswordGenerator]
AdditionalChars=
ExcludedChars=
Length=25
SpecialChars=false

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +0,0 @@
visualizer.fps=20
visualizer.spectrum.bar.spacing=1
visualizer.spectrum.bar.width=3
visualizer.spectrum.smoothing.mode=monstercat
visualizer.monstercat.smoothing.factor=3
audio.stereo.enabled=false

View File

@ -1,267 +0,0 @@
// Global
{
"layer": "top",
"position": "top",
"margin-top": 3,
"margin-left": 10,
"margin-right": 10,
"margin-bottom": 3,
// If height property would be not present, it'd be calculated dynamically
"height": 60,
"modules-left": [
"custom/launcher",
"sway/workspaces",
"sway/mode",
],
"modules-center": [
"custom/signal",
"custom/steam",
"custom/spotify",
"custom/firefox",
"custom/slack",
"custom/files",
"custom/pomo",
],
"modules-right": [
"network",
"idle_inhibitor",
"memory",
"cpu",
"pulseaudio",
"custom/keyboard-layout",
"battery",
//"custom/PBPbattery",
// "backlight#icon",
// "backlight#value",
"clock",
"tray",
//"custom/weather",
"custom/power",
],
// Modules
"idle_inhibitor": {
"format": "{icon} ",
"format-icons":{
"activated": "",
"deactivated": ""
}
},
"battery": {
"states": {
// "good": 95,
"warning": 30,
"critical": 15
},
"format": "{capacity}% {icon}",
"format-charging": "{capacity}% ",
"format-plugged": "{capacity}% ",
// "format-good": "", // An empty format will hide the module
// "format-full": "",
"format-icons": ["", "", "", "", ""]
},
"custom/PBPbattery": {
"exec": "~/.config/waybar/scripts/PBPbattery.sh",
"format": "{}",
},
"clock": {
"interval": 10,
"format-alt": " {:%e %b %Y}", // Icon: calendar-alt
"format": "{:%I:%M %p}",
"tooltip-format": "{:%e %B %Y}"
},
"cpu": {
"interval": 5,
"format": " {usage}% ({load})", // Icon: microchip
"states": {
"warning": 70,
"critical": 90,
},
"on-click": "foot -e 'htop'",
},
"custom/keyboard-layout": {
"exec": "swaymsg -t get_inputs | grep -m1 'xkb_active_layout_name' | cut -d '\"' -f4",
// Interval set only as a fallback, as the value is updated by signal
"interval": 30,
"format": " {}", // Icon: keyboard
// Signal sent by Sway key binding (~/.config/sway/key-bindings)
"signal": 1, // SIGHUP
"tooltip": false,
"on-click": "~/.config/waybar/scripts/keyboard_layout.sh",
},
"memory": {
"interval": 5,
"format": " {}%", // Icon: memory
"on-click": "foot -e 'htop'",
"states": {
"warning": 70,
"critical": 90
}
},
"network": {
"interval": 5,
"format-wifi": " {essid} ({signalStrength}%)", // Icon: wifi
"format-ethernet": " {ifname}: {ipaddr}/{cidr}", // Icon: ethernet
"format-disconnected": "⚠ Disconnected",
"tooltip-format": "{ifname}: {ipaddr}",
"on-click": "foot -e 'nmtui'",
},
"network#vpn": {
"interface": "tun0",
"format": " {essid} ({signalStrength}%)",
"format-disconnected": "⚠ Disconnected",
"tooltip-format": "{ifname}: {ipaddr}/{cidr}",
},
"sway/mode": {
"format": "{}",
"tooltip": false
},
"sway/window": {
"format": "{}",
"max-length": 120
},
"sway/workspaces": {
"disable-scroll": true,
"disable-markup" : false,
"all-outputs": true,
"format": " {icon} ",
//"format":"{icon}",
"format-icons": {
"1": "",
"2": "",
"3": "",
"4": "",
}
},
"pulseaudio": {
"scroll-step": 1, // %, can be a float
"format": "{volume}% {icon}",
"format-bluetooth": "{volume}% {icon}  {format_source}",
"format-bluetooth-muted": " {icon}  {format_source}",
"format-muted": " {format_source}",
"format-source": "{volume}% ",
"format-source-muted": "",
"format-icons": {
"headphone": "",
"hands-free": "",
"headset": "",
"phone": "",
"portable": "",
"car": "",
"default": [""]
},
"on-click": "pavucontrol",
"on-scroll-up": "pactl set-sink-volume @DEFAULT_SINK@ +2%",
"on-scroll-down": "pactl set-sink-volume @DEFAULT_SINK@ -2%",
},
// to use the weather module replace <your_location> with your city or town
// note: do not use spaces: new york would be newyork
"custom/weather": {
"exec": "~/.config/waybar/scripts/weather.sh <your_location>",
"return-type": "json",
"interval": 600,
},
// "custom/temp": {
// "exec": "notify-send \"temp thing\"",
// "interval": "once",
// "signal": 8,
// },
"tray": {
"icon-size": 18,
"spacing":10,
},
"backlight#icon": {
"format": "{icon}",
"format-icons": [""],
"on-scroll-down": "brightnessctl -c backlight set 1%-",
"on-scroll-up": "brightnessctl -c backlight set +1%"
},
"backlight#value" :{
"format": "{percent}%",
"on-scroll-down": "brightnessctl -c backlight set 1%-",
"on-scroll-up": "brightnessctl -c backlight set +1%"
},
"custom/signal": {
"format": "  ",
"on-click": "exec signal",
"tooltip": false,
},
"custom/steam": {
"format": "  ",
"on-click": "exec steam",
"tooltip": false,
},
"custom/spotify": {
"format": "  ",
"on-click": "foot -e 'ncspot'",
"tooltip": false,
},
"custom/firefox": {
"format": "  ",
"on-click": "exec firefox",
"tooltip": false,
},
"custom/slack": {
"format": "  ",
"on-click": "slack",
"tooltip": false,
"exec if": "pgrep slack"
},
"custom/files": {
"format": " 󰉋 ",
"on-click": "exec nautilus",
"tooltip": false,
},
"custom/pomo": {
"format": " {} ",
"exec": "/home/nate/source/pomozoro/zig-out/bin/pomozoro",
"return-type": "json",
"on-click": "echo 's' > ~/.local/share/pomozoro/pomopipe",
"on-click-right": "echo 'p' > ~/.local/share/pomozoro/pomopipe",
"on-click-middle": "echo 'r' > ~/.local/share/pomozoro/pomopipe",
// "signal": 8,
},
"custom/launcher": {
"format":" ",
"on-click": "exec wofi -c ~/.config/wofi/config -I",
"tooltip": false,
},
"custom/power": {
"format":"⏻",
"on-click": "exec ~/.config/waybar/scripts/power-menu.sh",
"tooltip": false,
},
}

View File

@ -1,16 +0,0 @@
#!/usr/bin/env bash
entries="Default Colemak"
selected=$(printf '%s\n' $entries | wofi --conf=$HOME/.config/wofi/config.power --style=$HOME/.config/wofi/style.widgets.css | awk '{print tolower($1)}')
case $selected in
default)
swaymsg input type:keyboard xkb_layout "us"
swaymsg input type:keyboard xkb_variant '""'
;;
colemak)
swaymsg input type:keyboard xkb_layout "us"
swaymsg input type:keyboard xkb_variant "colemak_dh"
;;
esac

View File

@ -1,16 +0,0 @@
#!/usr/bin/env bash
entries="Logout Suspend Reboot Shutdown"
selected=$(printf '%s\n' $entries | wofi --conf=$HOME/.config/wofi/config.power --style=$HOME/.config/wofi/style.widgets.css | awk '{print tolower($1)}')
case $selected in
logout)
swaymsg exit;;
suspend)
exec systemctl suspend;;
reboot)
exec systemctl reboot;;
shutdown)
exec systemctl poweroff -i;;
esac

View File

@ -1,314 +0,0 @@
/* =============================================================================
*
* Waybar configuration
*
* Configuration reference: https://github.com/Alexays/Waybar/wiki/Configuration
*
* =========================================================================== */
@define-color rosewater #f4dbd6;
@define-color flamingo #f0c6c6;
@define-color pink #f5bde6;
@define-color mauve #c6a0f6;
@define-color red #ed8796;
@define-color maroon #ee99a0;
@define-color peach #f5a97f;
@define-color yellow #eed49f;
@define-color green #a6da95;
@define-color teal #8bd5ca;
@define-color sky #91d7e3;
@define-color sapphire #7dc4e4;
@define-color blue #8aadf4;
@define-color lavender #b7bdf8;
@define-color text #cad3f5;
@define-color subtext1 #b8c0e0;
@define-color subtext0 #a5adcb;
@define-color overlay2 #939ab7;
@define-color overlay1 #8087a2;
@define-color overlay0 #6e738d;
@define-color surface2 #5b6078;
@define-color surface1 #494d64;
@define-color surface0 #363a4f;
@define-color base #24273a;
@define-color mantle #1e2030;
@define-color crust #181926;
/* -----------------------------------------------------------------------------
* Keyframes
* -------------------------------------------------------------------------- */
@keyframes blink-warning {
70% {
color: @overlay0;
}
to {
color: @overlay0;
background-color: @crust;
}
}
@keyframes blink-critical {
70% {
color: @overlay2;
}
to {
color: @overlay2;
background-color: @base;
}
}
/* -----------------------------------------------------------------------------
* Base styles
* -------------------------------------------------------------------------- */
/* Reset all styles */
* {
border: none;
border-radius: 0;
min-height: 0;
margin: 1px;
padding: 0;
}
/* The whole bar */
#waybar {
background: transparent;
background-color: transparent;
font-family: Overpass Nerd Font;
font-size: 20px;
color: @text;
}
#taskbar {
background: transparent;
}
#taskbar button {
padding-left: 3px;
padding-right: 3px;
margin-left: 3px;
margin-right: 3px;
color: transparent;
border-bottom: 2px solid;
}
#taskbar button.active {
color: @lavender;
}
.modules-left,
.modules-right,
.modules-center {
/* margin: 8px 8px 1px 8px; */
background: transparent;
/* color: @; */
background-color: @base;
border-radius: 25px;
padding: 0px 10px 0px 10px;
border-style: solid;
border-width: 3px;
border-color: @surface0;
}
/* Every modules */
#battery,
#clock,
#backlight,
#cpu,
#custom-keyboard-layout,
#memory,
#mode,
#custom-weather,
#network,
#pulseaudio,
#temperature,
#tray,
#idle_inhibitor,
#custom-PBPbattery {
padding: 0.5rem 0.6rem;
margin: 1px 0px;
}
/* -----------------------------------------------------------------------------
* Modules styles
* -------------------------------------------------------------------------- */
#battery {
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
}
#battery.warning {
color: @flamingo;
}
#battery.critical {
color: @red;
}
#battery.warning.discharging {
animation-name: blink-warning;
animation-duration: 3s;
}
#battery.critical.discharging {
animation-name: blink-critical;
animation-duration: 2s;
}
#cpu.warning {
color: @flamingo;
}
#cpu.critical {
color: @red;
}
#memory {
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
}
#memory.warning {
color: @flamingo;
}
#memory.critical {
color: @red;
animation-name: blink-critical;
animation-duration: 2s;
padding-left: 5px;
padding-right: 5px;
}
#mode {
background: @overlay0;
border-bottom: 3px transparent;
color: @text;
margin-left: 5px;
margin-right: 5px;
border-radius: 20px;
}
#network.disconnected {
color: @flamingo;
}
#pulseaudio {
padding-top: 6px;
}
#pulseaudio.muted {
color: @sky;
}
#temperature.critical {
color: @red;
}
#window {
font-weight: bold;
}
#workspaces {
font-size: 13px;
}
#workspaces button {
border-bottom: 3px solid transparent;
margin-bottom: 0px;
padding: 0px;
}
#custom-launcher {
color: @lavenderblush;
}
/* @define-color rosewater #f4dbd6; */
/* @define-color flamingo #f0c6c6; */
/* @define-color pink #f5bde6; */
/* @define-color mauve #c6a0f6; */
/* @define-color red #ed8796; */
/* @define-color maroon #ee99a0; */
/* @define-color peach #f5a97f; */
/* @define-color yellow #eed49f; */
/* @define-color green #a6da95; */
/* @define-color teal #8bd5ca; */
/* @define-color sky #91d7e3; */
/* @define-color sapphire #7dc4e4; */
/* @define-color blue #8aadf4; */
/* @define-color lavender #b7bdf8; */
#custom-signal {
color: @lavender;
padding: 0px 5px 0px 5px;
}
#custom-steam {
color: @teal;
padding: 0px 5px 0px 5px;
}
#custom-spotify {
color: @green;
padding: 0px 5px 0px 5px;
}
#custom-firefox {
color: @yellow;
padding: 0px 5px 0px 5px;
}
#custom-slack {
color: @peach;
padding: 0px 5px 0px 5px;
}
#custom-files {
color: @pink;
padding: 0px 5px 0px 5px;
}
#custom-pomo {
color: @red;
padding: 0px 5px 0px 5px;
}
#wiggle {
animation-name: blink-warning;
}
#workspaces button.focused {
border-bottom: 3px solid @green;
margin-bottom: 1px;
padding-left: 0;
}
#workspaces button.urgent {
border-color: @lavender;
color: @yellow;
}
#custom-power {
margin-left: 15px;
margin-right: 15px;
font-size: 15px;
color: @flamingo;
}
#custom-launcher {
font-size: 15px;
margin-left: 15px;
margin-right: 10px;
}
#backlight.icon {
padding-right: 1px;
font-size: 13px;
}

View File

@ -1,4 +1,4 @@
{ inputs, config, pkgs, ... }: { inputs, config, pkgs, lib, ... }:
let let
userName = "nate"; userName = "nate";
fullName = "Nathan Anderson"; fullName = "Nathan Anderson";
@ -82,6 +82,7 @@
# android-udev-rules # android-udev-rules
# android-tools # android-tools
# sdkmanager # sdkmanager
unstable.claude-code
usbutils usbutils
cli-visualizer cli-visualizer
openscad openscad
@ -163,11 +164,49 @@
# Home Manager is pretty good at managing dotfiles. The primary way to manage # Home Manager is pretty good at managing dotfiles. The primary way to manage
# plain files is through 'home.file'. # plain files is through 'home.file'.
home.file."${config.xdg.configHome}" = { # home.file."${config.xdg.configHome}" = {
source = ../../dotfiles; # source = ../../dotfiles;
recursive = true; # recursive = true;
}; # };
home.file = lib.mkMerge [
# Shared dotfiles
(let
sharedDotfilesPath = ../../../shared/dotfiles;
in
if builtins.pathExists sharedDotfilesPath then
builtins.listToAttrs (map (name: {
name = "${config.xdg.configHome}/${name}";
value = { source = lib.mkDefault (sharedDotfilesPath + "/${name}"); };
}) (builtins.attrNames (builtins.readDir sharedDotfilesPath)))
else {})
# Add local dotfiles, overriding from local over shared
(let
localDotfilesPath = ../../dotfiles;
in
if builtins.pathExists localDotfilesPath && builtins.readDir localDotfilesPath != {} then
builtins.listToAttrs (map (name: {
name = "${config.xdg.configHome}/${name}";
value = { source = localDotfilesPath + "/${name}"; };
}) (builtins.attrNames (builtins.readDir localDotfilesPath)))
else {})
];
xdg.configFile = {
# Active linked dotfiles
"hypr".source = config.lib.file.mkOutOfStoreSymlink "/home/nate/nixos/nate-work/linked-dotfiles/hypr";
"waybar".source = config.lib.file.mkOutOfStoreSymlink "/home/nate/nixos/nate-work/linked-dotfiles/waybar";
# Shared
"helix".source = config.lib.file.mkOutOfStoreSymlink "/home/nate/nixos/shared/linked-dotfiles/helix";
# Theme files
"gtk-4.0/assets".source = "${config.gtk.theme.package}/share/themes/${config.gtk.theme.name}/gtk-4.0/assets";
"gtk-4.0/gtk.css".source = "${config.gtk.theme.package}/share/themes/${config.gtk.theme.name}/gtk-4.0/gtk.css";
"gtk-4.0/gtk-dark.css".source = "${config.gtk.theme.package}/share/themes/${config.gtk.theme.name}/gtk-4.0/gtk-dark.css";
"Kvantum/kvantum.kvconfig".source = (pkgs.formats.ini {}).generate "kvantum.kvconfig" {
General.theme = "catppuccin-macchiato-lavender";
};
};
# For applying custom styles # For applying custom styles
# home.file.".mozilla/firefox/default" = { # home.file.".mozilla/firefox/default" = {
# source = ../../misc/firefox_styles; # source = ../../misc/firefox_styles;
@ -273,19 +312,19 @@
}; };
}; };
# Symlink in gtk and kvantum theme to ~/.config # Symlink in gtk and kvantum theme to ~/.config
xdg.configFile = { # xdg.configFile = {
"gtk-4.0/assets".source = "${config.gtk.theme.package}/share/themes/${config.gtk.theme.name}/gtk-4.0/assets"; # "gtk-4.0/assets".source = "${config.gtk.theme.package}/share/themes/${config.gtk.theme.name}/gtk-4.0/assets";
"gtk-4.0/gtk.css".source = "${config.gtk.theme.package}/share/themes/${config.gtk.theme.name}/gtk-4.0/gtk.css"; # "gtk-4.0/gtk.css".source = "${config.gtk.theme.package}/share/themes/${config.gtk.theme.name}/gtk-4.0/gtk.css";
"gtk-4.0/gtk-dark.css".source = "${config.gtk.theme.package}/share/themes/${config.gtk.theme.name}/gtk-4.0/gtk-dark.css"; # "gtk-4.0/gtk-dark.css".source = "${config.gtk.theme.package}/share/themes/${config.gtk.theme.name}/gtk-4.0/gtk-dark.css";
"Kvantum/kvantum.kvconfig".text = '' # "Kvantum/kvantum.kvconfig".text = ''
[General] # [General]
theme=Catppuccin-Frappe-Blue # theme=Catppuccin-Frappe-Blue
''; # '';
"Kvantum/Catppuccin-Frappe-Blue".source = "${pkgs.catppuccin-kvantum}/share/Kvantum/Catppuccin-Frappe-Blue"; # "Kvantum/Catppuccin-Frappe-Blue".source = "${pkgs.catppuccin-kvantum}/share/Kvantum/Catppuccin-Frappe-Blue";
}; # };
home.file.".icons/default/index.theme".text = '' # home.file.".icons/default/index.theme".text = ''
[icon theme] # [icon theme]
Inherits=Catppuccin-Macchiato-Lavender-Cursors # Inherits=Catppuccin-Macchiato-Lavender-Cursors
''; # '';
} }

View File

@ -108,6 +108,7 @@
programs.zsh.enable = true; programs.zsh.enable = true;
programs.steam = lib.mkIf config.swaywm.installGaming { programs.steam = lib.mkIf config.swaywm.installGaming {
enable = true; enable = true;
remotePlay.openFirewall = true;
gamescopeSession.enable = true; gamescopeSession.enable = true;
}; };
programs.gamemode = { programs.gamemode = {