Merge branch 'master'

This commit is contained in:
Norman Köhring 2022-11-21 13:01:26 +01:00
commit e138560564
10 changed files with 586 additions and 222 deletions

186
dot.config/foot/foot.ini Normal file
View file

@ -0,0 +1,186 @@
# -*- conf -*-
# shell=$SHELL (if set, otherwise user's default shell from /etc/passwd)
# term=foot (or xterm-256color if built with -Dterminfo=disabled)
# login-shell=no
# app-id=foot
# title=foot
# locked-title=no
font=Monofur Nerd Font:size=11:antialias=true:autohint=true
# font-bold=<bold variant of regular font>
# font-italic=<italic variant of regular font>
# font-bold-italic=<bold+italic variant of regular font>
# line-height=<font metrics>
# letter-spacing=0
# horizontal-letter-offset=0
# vertical-letter-offset=0
# underline-offset=<font metrics>
# box-drawings-uses-font-glyphs=no
# dpi-aware=auto
# initial-window-size-pixels=700x500 # Or,
# initial-window-size-chars=<COLSxROWS>
initial-window-mode=maximized
# pad=2x2 # optionally append 'center'
# resize-delay-ms=100
# notify=notify-send -a ${app-id} -i ${app-id} ${title} ${body}
# bold-text-in-bright=no
# word-delimiters=,│`|:"'()[]{}<>
# selection-target=primary
# workers=<number of logical CPUs>
[bell]
# urgent=no
# notify=no
# command=
# command-focused=no
[scrollback]
# lines=1000
# multiplier=3.0
# indicator-position=relative
# indicator-format=
[url]
# launch=xdg-open ${url}
# label-letters=sadfjklewcmpgh
# osc8-underline=url-mode
# protocols=http, https, ftp, ftps, file, gemini, gopher
# uri-characters=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_.,~:;/?#@!$&%*+="'()[]
[cursor]
# style=block
# color=<inverse foreground/background>
# blink=no
# beam-thickness=1.5
# underline-thickness=<font underline thickness>
[mouse]
# hide-when-typing=no
# alternate-scroll-mode=yes
[colors]
# alpha=1.0
# foreground=dcdccc
# background=111111
## Normal/regular colors (color palette 0-7)
# regular0=222222 # black
# regular1=cc9393 # red
# regular2=7f9f7f # green
# regular3=d0bf8f # yellow
# regular4=6ca0a3 # blue
# regular5=dc8cc3 # magenta
# regular6=93e0e3 # cyan
# regular7=dcdccc # white
## Bright colors (color palette 8-15)
# bright0=666666 # bright black
# bright1=dca3a3 # bright red
# bright2=bfebbf # bright green
# bright3=f0dfaf # bright yellow
# bright4=8cd0d3 # bright blue
# bright5=fcace3 # bright magenta
# bright6=b3ffff # bright cyan
# bright7=ffffff # bright white
## dimmed colors (see foot.ini(5) man page)
# dim0=<not set>
# ...
# dim7=<not-set>
## The remaining 256-color palette
# 16 = <256-color palette #16>
# ...
# 255 = <256-color palette #255>
## Misc colors
# selection-foreground=<inverse foreground/background>
# selection-background=<inverse foreground/background>
# jump-labels=<regular0> <regular3>
# urls=<regular3>
# scrollback-indicator=<regular0> <bright4>
[csd]
preferred=none
# size=26
# font=<primary font>
# color=<foreground color>
# hide-when-typing=no
# border-width=0
# border-color=<csd.color>
# button-width=26
# button-color=<background color>
# button-minimize-color=<regular4>
# button-maximize-color=<regular2>
# button-close-color=<regular1>
[key-bindings]
# scrollback-up-page=Shift+Page_Up
# scrollback-up-half-page=none
# scrollback-up-line=none
# scrollback-down-page=Shift+Page_Down
# scrollback-down-half-page=none
# scrollback-down-line=none
# clipboard-copy=Control+Shift+c XF86Copy
# clipboard-paste=Control+Shift+v XF86Paste
# primary-paste=Shift+Insert
# search-start=Control+Shift+r
# font-increase=Control+plus Control+equal Control+KP_Add
# font-decrease=Control+minus Control+KP_Subtract
# font-reset=Control+0 Control+KP_0
# spawn-terminal=Control+Shift+n
# minimize=none
# maximize=none
fullscreen=F11
# pipe-visible=[sh -c "xurls | fuzzel | xargs -r firefox"] none
# pipe-scrollback=[sh -c "xurls | fuzzel | xargs -r firefox"] none
# pipe-selected=[xargs -r firefox] none
# show-urls-launch=Control+Shift+u
# show-urls-copy=none
# show-urls-persistent=none
# noop=none
[search-bindings]
# cancel=Control+g Control+c Escape
# commit=Return
# find-prev=Control+r
# find-next=Control+s
# cursor-left=Left Control+b
# cursor-left-word=Control+Left Mod1+b
# cursor-right=Right Control+f
# cursor-right-word=Control+Right Mod1+f
# cursor-home=Home Control+a
# cursor-end=End Control+e
# delete-prev=BackSpace
# delete-prev-word=Mod1+BackSpace Control+BackSpace
# delete-next=Delete
# delete-next-word=Mod1+d Control+Delete
# extend-to-word-boundary=Control+w
# extend-to-next-whitespace=Control+Shift+w
# clipboard-paste=Control+v Control+Shift+v Control+y XF86Paste
# primary-paste=Shift+Insert
[url-bindings]
# cancel=Control+g Control+c Control+d Escape
# toggle-url-visible=t
[text-bindings]
# \x03=Mod4+c # Map Super+c -> Ctrl+c
[mouse-bindings]
# selection-override-modifiers=Shift
# primary-paste=BTN_MIDDLE
# select-begin=BTN_LEFT
# select-begin-block=Control+BTN_LEFT
# select-extend=BTN_RIGHT
# select-extend-character-wise=Control+BTN_RIGHT
# select-word=BTN_LEFT-2
# select-word-whitespace=Control+BTN_LEFT-2
# select-row=BTN_LEFT-3
# vim: ft=dosini

View file

@ -107,6 +107,12 @@ roots = ["package.json"]
command = "html-languageserver"
args = ["--stdio"]
[language.svelte]
filetypes = ["svelte"]
roots = ["package.json"]
command = "svelteserver"
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]
@ -137,11 +143,11 @@ args = ["--stdio"]
# # See https://github.dev/eclipse/eclipse.jdt.ls
# # "java.format.insertSpaces" = true
[language.javascript]
filetypes = ["javascript"]
roots = [".flowconfig"]
command = "flow"
args = ["lsp"]
# [language.javascript]
# filetypes = ["javascript"]
# roots = [".flowconfig"]
# command = "flow"
# args = ["lsp"]
[language.json]
filetypes = ["json"]
@ -149,7 +155,9 @@ roots = ["package.json"]
command = "json-languageserver"
args = ["--stdio"]
# Requires Julia packages "LanguageServer", "StaticLint" and "SymbolServer"
# 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"]
@ -159,15 +167,30 @@ args = [
"--history-file=no",
"-e",
"""
using LanguageServer;
using Pkg;
import StaticLint;
import SymbolServer;
import REPL;
env_path = dirname(Pkg.Types.Context().env.project_file);
server = LanguageServer.LanguageServerInstance(stdin, stdout, env_path, "");
server.runlinter = true;
run(server);
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]
@ -198,7 +221,7 @@ forwardSearch.args = [
"""
sh -c '
echo "
evaluate-commands -client $kak_client %{
evaluate-commands -client %opt{texlab_client} %{
evaluate-commands -try-client %opt{jumpclient} %{
edit -- %{input} %{line}
}
@ -293,25 +316,25 @@ args = [
# 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.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"]
@ -323,7 +346,7 @@ args = ["serve"]
# rootModulePaths = []
[language.typescript]
filetypes = ["typescript"]
filetypes = ["typescript", "javascript"]
roots = ["package.json", "tsconfig.json", ".git", ".hg"]
command = "typescript-language-server"
args = ["--stdio"]
@ -337,6 +360,11 @@ args = ["--stdio"]
# enable = true
# lint = true
[language.vue]
filetypes = ["vue"]
roots = [".git", ".hg", ".env", "package.json", "tsconfig.json", "jsconfig.json", "vite.config.ts", "vue.config.js", "nuxt.config.ts"]
command = "vls"
[language.yaml]
filetypes = ["yaml"]
roots = [".git", ".hg"]
@ -358,8 +386,8 @@ command = "zls"
# 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/2645fb54ea1e764aff71dee0ecc8aceff3aabf56/client/src/common/semanticTokens.ts#L58
# - Rust Analyzer: https://github.com/rust-analyzer/rust-analyzer/blob/f6da603c7fe56c19a275dc7bab1f30fe1ad39707/crates/ide/src/syntax_highlighting.rs#L42
# - 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"]},

View file

@ -0,0 +1,83 @@
# 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"

View file

@ -0,0 +1,84 @@
# Catppuccin theme for Kakoune
# Color palette
declare-option str rosewater 'rgb:CB7459'
declare-option str red 'rgb:CA7081'
declare-option str mauve 'rgb:CA736C'
declare-option str maroon 'rgb:F2E6D4'
declare-option str pink 'rgb:BD72A8'
declare-option str cyan 'rgb:00A0BE'
declare-option str yellow 'rgb:A38F2D'
declare-option str green 'rgb:46A473'
declare-option str white 'rgb:BEBEBE'
declare-option str blue 'rgb:7E87D6'
declare-option str sky 'rgb:6E8DD5'
declare-option str lavender 'rgb:BC73A4'
declare-option str black1 'rgb:24272B'
declare-option str black2 'rgb:2F3339'
declare-option str black3 'rgb:3E4044'
declare-option str orange 'rgb:C27D40'
declare-option str teal 'rgb:00A2AF'
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 'rgb:FFF7ED'
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{bright_white},%opt{rosewater}"
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{rosewater},%opt{background}+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{blue}"
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}"
set-face global MatchingChar "%opt{bright_white},%opt{black1}+b"
# Code
set-face global value "%opt{orange}"
set-face global type "%opt{mauve}"
set-face global variable "%opt{white}"
set-face global module "%opt{maroon}"
set-face global function "%opt{sky}"
set-face global string "%opt{green}"
set-face global keyword "%opt{blue}"
set-face global operator "%opt{blue}"
set-face global attribute "%opt{green}"
set-face global comment "%opt{gray1}"
set-face global documentation comment
set-face global meta "%opt{pink}"
set-face global builtin "%opt{lavender}+b"

View file

@ -0,0 +1,19 @@
hook -group markdown-highlight global WinSetOption filetype=markdown %{
add-highlighter window/ wrap -word -width 80
add-highlighter window/ number-lines -hlcursor -separator ' '
}
hook global WinSetOption filetype=(?!markdown).* %{
add-highlighter window/ number-lines -hlcursor -separator ' '
}
hook global WinSetOption filetype=rust %{
racer-enable-autocomplete
set window formatcmd 'rustfmt'
hook window BufWritePre .* format
set buffer tabstop 4
set buffer indentwidth 4
}
hook global WinSetOption filetype=json %{
set window formatcmd 'jq --indent 2 .'
hook window BufWritePre .* format
}

View file

@ -1,149 +1,3 @@
colorscheme warm-pastel
set-option global scrolloff 5,5
set-option global incsearch true
set-option global aligntab true
set-option global ui_options ncurses_assistant=dilbert
set-option -add global ui_options ncurses_change_colors=true
set-option global grepcmd 'rg --column'
set-option global tabstop 2
set-option global indentwidth 2
# plug.kak plugin manager
source "%val{config}/plugins/plug.kak/rc/plug.kak"
plug "andreyorst/plug.kak" noload
plug "lenormf/kakoune-extra" load %{
autodownload.kak
}
plug "andreyorst/fzf.kak" config %{
map global normal <c-p> ': fzf-mode<ret>'
}
###############################################
# lsp support (https://github.com/ul/kak-lsp) #
# ...but it's not working yet #
###############################################
eval %sh{kak-lsp --kakoune -s $kak_session}
set-option global lsp_completion_trigger "execute-keys 'h<a-h><a-k>\S[^\h\n,=;*(){}\[\]]\z<ret>'"
set-option global lsp_diagnostic_line_error_sign '║'
set-option global lsp_diagnostic_line_warning_sign '┊'
define-command ne -docstring 'go to next error/warning from lsp' %{ lsp-find-error --include-warnings }
define-command pe -docstring 'go to previous error/warning from lsp' %{ lsp-find-error --previous --include-warnings }
define-command ee -docstring 'go to current error/warning from lsp' %{ lsp-find-error --include-warnings; lsp-find-error --previous --include-warnings }
hook global WinSetOption filetype=(c|cpp|rust|go|javascript|typescript) %{
# map window user "l" ": enter-user-mode lsp<ret>" -docstring "LSP mode"
map window user l %{: enter-user-mode lsp<ret>} -docstring "LSP mode"
set-option window lsp_auto_highlight_references true
set-option window lsp_hover_anchor true
set-face window DiagnosticError default+u
set-face window DiagnosticWarning default+u
lsp-enable-window
lsp-auto-hover-enable
lsp-auto-hover-insert-mode-disable
}
hook global WinSetOption filetype=rust %{
set-option window lsp_server_configuration rust.clippy_preference="on"
}
hook global KakEnd .* lsp-exit
#eval %sh{kak-lsp --kakoune -s $kak_session}
#hook global WinSetOption filetype=(rust|python|go|javascript|typescript|c|cpp) %{
# lsp-enable-window
#}
###########################################################
# kakoune-buffers #
# sets former b (word-back) to q and makes b a global key #
# for the new buffers command. I don't use macros anyway. #
###########################################################
plug 'delapouite/kakoune-buffers' config %{
map global normal ^ q
map global normal <a-^> Q
map global normal q b
map global normal Q B
map global normal <a-q> <a-b>
map global normal <a-Q> <a-B>
map global normal b ': enter-buffers-mode<ret>' -docstring 'buffers'
map global normal B ': enter-user-mode -lock buffers<ret>' -docstring 'buffers (lock)'
hook·global·WinDisplay·.*·info-buffers
}
plug "ABuffSeagull/kakoune-vue"
plug "ABuffSeagull/kakoune-wiki"
############################################################
# replace mode #
# that is one thing I missed in Kakoune: writing over text #
############################################################
plug "alexherbo2/replace.kak" noload config %{
## currently not working well
# map global user r -docstring 'Replace' ': replace<ret>'
}
###########################################################
# explore files (https://github.com/alexherbo2/explore.kak)
# use fd instead of find
###########################################################
plug "alexherbo2/explore.kak" config %{
define-command -hidden -override explore-files-recursive -params 0..1 %{
explore-files-display "fd %sh(test $kak_opt_explore_files_show_hidden = true && echo --hidden)" %arg(1)
}
}
# TODO: check out snippets
# plug "alexherbo2/snippets.kak" config %{
# }
# TODO: check out tagbar
# plug "andreyorst/tagbar.kak" config %{
# set-option global tagbar_sort false
# set-option global tagbar_size 40
# set-option global tagbar_display_anon false
#} config %{
# if you have wrap highlighter enamled in you configuration
# # files it's better to turn it off for tagbar, using this hook:
# hook global WinSetOption filetype=tagbar %{
# remove-highlighter window/wrap
# # you can also disable rendering whitespaces here, line numbers, and
# # matching characters
# }
#}
# set-option global fzf_filesearch_cmd "fd '%s'"
# with inspiration from
# https://github.com/Delapouite/dotfiles/blob/master/link/kak/kakrc
set global modelinefmt %{
%val{bufname} [%opt{filetype}]
· %val{cursor_line}:%val{cursor_char_column}
· {{context_info}} {{mode_info}}
}
hook global BufWritePre .* %{
lint
}
# defines tabe and vsplit commands
# def -file-completion -params 1 tabe %{ tmux-terminal-window edit %arg{1} }
# spaces instead tabs
map global insert <tab> ' '
# ← system clipboard
map global user y '<a-|>xsel --input --clipboard<ret>; :echo -color Information "copied selection to X11 clipboard"<ret>' -docstring 'yank from clipboard'
map global user p '<a-!>xsel --output --clipboard<ret>' -docstring 'replace from clipboard'
map global user P '!xsel --output --clipboard<ret>' -docstring 'print from clipboard'
# → system clipboard
hook global NormalKey y|d|c %{ nop %sh{
printf %s "$kak_reg_dquote" | xsel --input --clipboard
}}
# editorconfig support
hook global BufCreate .* %{editorconfig-load}
source "%val{config}/personalization.kak"
source "%val{config}/filetypes.kak"
source "%val{config}/plugins.kak"

View file

@ -0,0 +1,75 @@
colorscheme penumbra
set-option global scrolloff 5,5
set-option global incsearch true
set-option global aligntab true
set-option global ui_options terminal_assistant=dilbert
set-option -add global ui_options terminal_change_colors=true
set-option global grepcmd 'rg --with-filename --line-number --column'
set-option global tabstop 2
set-option global indentwidth 2
# hooks to show line numbers, whitespaces and matching brackets
hook -group DefaultHighlights global WinCreate .* %{
add-highlighter window/ show-whitespaces
add-highlighter window/ show-matching
add-highlighter window/ regex '\h+$' 0:default,red # highlight trailing whitepaces
add-highlighter window/ dynregex '%reg{/}' 0:+u 1:+b
set-face window Whitespace rgb:555555+b
}
# with inspiration from
# https://github.com/Delapouite/dotfiles/blob/master/link/kak/kakrc
set global modelinefmt %{
%val{bufname} [%opt{filetype}]
· %val{cursor_line}:%val{cursor_char_column}
· {{context_info}} {{mode_info}}
}
# spaces instead tabs
hook global InsertChar \t %{ try %{
execute-keys -draft "h<a-h><a-k>\A\h+\z<ret><a-;>;%opt{indentwidth}@"
}}
hook global InsertDelete ' ' %{ try %{
execute-keys -draft 'h<a-h><a-k>\A\h+\z<ret>i<space><esc><lt>'
}}
# Bring back S-x (kind of)
map global normal X 'Jx'
# editorconfig support
hook global BufCreate .* %{editorconfig-load}
# kak-lsp
eval %sh{kak-lsp --kakoune -s $kak_session} # Not needed if you load it with plug.kak.
hook global WinSetOption filetype=(rust|html|css|svelte|javascript|typescript|c|cpp) %{
lsp-enable-window
lsp-auto-hover-enable
lsp-auto-signature-help-enable
set-option global lsp_hover_anchor true
map global user l ': enter-user-mode lsp<ret>' -docstring 'lsp'
}
# theme config for kak-lsp info box
face global InfoDefault Information
face global InfoBlock Information
face global InfoBlockQuote Information
face global InfoBullet Information
face global InfoHeader Information
face global InfoLink Information
face global InfoLinkMono Information
face global InfoMono Information
face global InfoRule Information
face global InfoDiagnosticError Information
face global InfoDiagnosticHint Information
face global InfoDiagnosticInformation Information
face global InfoDiagnosticWarning Information
# Show various characters
# https://unicode-table.com
add-highlighter -override global/U+2013 regex '' '0:green+f'
add-highlighter -override global/U+2014 regex '—' '0:green+bf'
add-highlighter -override global/math-symbols regex '[×]' '0:cyan+f'
# Show the Unicode value under the cursor.
map -docstring 'Unicode' global user u ': echo -markup "{Information}U+%sh{printf ''%04x'' ""$kak_cursor_char_value""}"<ret>'

View file

@ -0,0 +1,55 @@
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
###########################################################
# kakoune-buffers #
# sets former b (word-back) to q and makes b a global key #
# for the new buffers command. I don't use macros anyway. #
###########################################################
plug 'delapouite/kakoune-buffers' config %{
map global normal ^ q
map global normal <a-^> Q
map global normal q b
map global normal Q B
map global normal <a-q> <a-b>
map global normal <a-Q> <a-B>
map global normal b ': enter-buffers-mode<ret>' -docstring 'buffers'
map global normal B ': enter-user-mode -lock buffers<ret>' -docstring 'buffers (lock)'
}
plug "andreyorst/kaktree" defer kaktree %{
set-option global kaktree_double_click_duration '0.5'
set-option global kaktree_indentation 1
set-option global kaktree_dir_icon_open '▾ 🗁 '
set-option global kaktree_dir_icon_close '▸ 🗀 '
set-option global kaktree_file_icon '⠀⠀🖺'
map global normal <F2> ': kaktree-toggle<ret>' -docstring 'toggle filetree'
} config %{
hook global WinSetOption filetype=kaktree %{
remove-highlighter buffer/numbers
remove-highlighter buffer/matching
remove-highlighter buffer/wrap
remove-highlighter buffer/show-whitespaces
}
kaktree-enable
}
plug "ABuffSeagull/kakoune-vue"
plug "schemar/kak-jsts" config %{
hook global WinSetOption filetype=(javascript|typescript|ecmascript) %{
map window user l -docstring 'lint' ': lint<ret>'
map window user f -docstring 'format' ': format-prettier<ret>'
hook window BufWritePre .* %{
evaluate-commands -no-hooks %{
format-prettier
}
}
}
}

View file

@ -1,45 +1,14 @@
source /etc/profile
export EDITOR=kak
export GOPATH=$HOME/src/go
export CARGO_HOME=$HOME/.cargo
export PATH=$HOME/.local/bin:$HOME/.yarn/bin:$HOME/.local/share/npm-global/bin:$GOPATH/bin:$CARGO_HOME/bin:$HOME/.gem/ruby/2.7.0/bin:$PATH
export MANPATH=$HOME/.local/share/man:/usr/share/man:/usr/local/share/man
export _JAVA_AWT_WM_NONREPARENTING=1
export FREETYPE_PROPERTIES="truetype:interpreter-version=35 cff:darkening-parameters=500,300,1000,200,1500,100,2000,0 autofitter:warping=1"
export INFINALITY_FT_FILTER_PARAMS='10 35 40 35 10'
export LD_LIBRARY_PATH=$HOME/.local/lib:$HOME/.local/lib/haxe:/lib
alias xi="sudo xbps-install"
alias xq="xbps-query -Rs"
alias xqi="xbps-query -RS"
alias xql="xbps-query -s"
alias xqf="xbps-query -f"
alias xqo="xbps-query -o"
alias xqre="xbps-query -R --regex -s"
alias howto="howdoi -c"
alias icat="kitty +kitten icat"
alias wttr="curl wttr.in"
# alias df="duf"
# alias du="dust"
alias md="glow -p"
alias ls="lsd"
alias l="lsd -lha"
alias ll="lsd -lh"
alias lt="lsd --tree"
alias pp="bat"
alias feh="feh --auto-rotate --draw-actions --draw-exif --draw-filename --draw-tinted"
# twtxt
alias ttt="txtnish tweet"
alias ttl="txtnish timeline"
alias ttf="txtnish follow"
alias ttu="txtnish unfollow"
alias ttr="txtnish reply"
alias rip="curl -G -H 'Accept: text/plain' --url https://dontbeevil.rip/search --data-urlencode "
short_url () {
curl -F "shorten=$1" https://0x0.st
@ -53,8 +22,19 @@ if [[ "$TTY" == "/dev/tty"* ]]
then
setfont drdos8x14
fi
. "$HOME/.cargo/env"
if [ "$TTY" = /dev/tty1 -a $USER != root -a ! -e /tmp/.X0-lock ]
export CARGO_HOME=$HOME/.cargo
export PNPM_HOME="$HOME/.local/share/pnpm"
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
export PATH=$HOME/.local/bin:$HOME/.yarn/bin:$PNPM_HOME:$GOPATH/bin:$CARGO_HOME/bin:$PATH
export MANPATH=$HOME/.local/share/man:/usr/share/man:/usr/local/share/man
TODO="$HOME/TODO/`date '+%Y%m%d'`.todo.txt"
if [ -f "$TODO" ]
then
startx && clear && exit
bat $TODO
fi

View file

@ -1,5 +1,5 @@
bindkey -v
source ~/src/pkg/zgen/zgen.zsh
source ~/pkg/zgen/zgen.zsh
source ~/.zsh/kitty.compl.zsh
if ! zgen saved; then
@ -26,7 +26,7 @@ ZSH_HIGHLIGHT_HIGHLIGHTERS=(main brackets pattern)
ZSH_HIGHLIGHT_PATTERNS+=('rm -fr*' 'fg=white,bold,bg=red')
ZSH_HIGHLIGHT_PATTERNS+=('rm -rf*' 'fg=white,bold,bg=red')
PROJECT_PATHS=(~/src/wunderdog ~/src/koehr ~/src/pkg/)
PROJECT_PATHS=(~/src/Spenoki ~/src/koehr ~/src/pkg/)
# The next line updates PATH for the Google Cloud SDK.
if [ -f '/home/nk/src/pkg/google-cloud-sdk/path.zsh.inc' ]; then . '/home/nk/src/pkg/google-cloud-sdk/path.zsh.inc'; fi