Remove old dotfiles, switch to shared
This commit is contained in:
		
							parent
							
								
									f29c50b992
								
							
						
					
					
						commit
						72e7e498cc
					
				
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@ -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
 | 
					 | 
				
			||||||
@ -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
 | 
					 | 
				
			||||||
@ -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"]
 | 
					 | 
				
			||||||
@ -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  | 
@ -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
 | 
					 | 
				
			||||||
@ -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%
 | 
					 | 
				
			||||||
@ -1,4 +0,0 @@
 | 
				
			|||||||
#! /usr/bin/env sh
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
sleep 1
 | 
					 | 
				
			||||||
cava
 | 
					 | 
				
			||||||
@ -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  | 
@ -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"},
 | 
					 | 
				
			||||||
]
 | 
					 | 
				
			||||||
@ -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"
 | 
					 | 
				
			||||||
@ -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"
 | 
					 | 
				
			||||||
@ -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"
 | 
					 | 
				
			||||||
@ -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
 | 
					 | 
				
			||||||
@ -1 +0,0 @@
 | 
				
			|||||||
 | 
					 | 
				
			||||||
@ -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}"
 | 
					 | 
				
			||||||
@ -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/"
 | 
					 | 
				
			||||||
@ -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"
 | 
					 | 
				
			||||||
@ -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'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@ -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
											
										
									
								
							@ -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
 | 
					 | 
				
			||||||
@ -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,
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@ -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
 | 
					 | 
				
			||||||
@ -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
 | 
					 | 
				
			||||||
@ -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;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@ -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
 | 
				
			||||||
  '';
 | 
					  # '';
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -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 = {
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user