general update to fedora sway based setup

main
koehr 2 months ago
parent e138560564
commit d755d93ea9

@ -4,20 +4,25 @@ System configuration files
Here you can find all relevant configurations. This is thought equally as
public viewport and backup. I appreciate suggestions, rants and bug reports :)
requirements
------------
Requirements & Usage
--------------------
My zshrc expects the zgen repository checked out in `~/src/pkg/`:
My zshrc expects the zgenom repository checked out in `~/src/pkg/`:
```sh
mkdir -p ~/src/pkg
git clone https://github.com/tarjoilija/zgen.git ~/src/pkg/zgen
git clone https://github.com/jandamm/zgenom.git ~/src/pkg/zgenom
```
Wayland
-------
Most things can be simply copied over, but I used a special naming scheme where hidden (dot) files start with `dot`, like `.profile` becomes `dot.profile`, to ensure visibility.
For a while I used wayland and sway. You can check out [this reddit post](https://www.reddit.com/r/unixporn/comments/d0fuc1/sway_mario_plays_the_blues/) for some pretty imagery. My current setup is back to X11 because I needed some things that don't work on a pure wayland setup yet.
I also brought the zsh and tmux config into the config folder, but still use the original config files (`~/.zshrc` and `~/.tmux.conf` respectively) to load the actual configs. This feels more consistent in my opinion.
If you want to check out the wayland config (which is most probably very outdated after so many years), you can find [the wayland branch on github](https://github.com/nkoehring/configs/tree/wayland).
My ZSH prompt is written by myself and uses [Powerline Extra Symbols](https://github.com/ryanoasis/powerline-extra-symbols), so make sure to install a compatible font. I would suggest checking out [Nerdfonts](https://www.nerdfonts.com/).
Wayland vs X11
--------------
I used to have seperate branches for Wayland and X11 based setups, but all issues I had with Wayland are gone now, so there is no need for me to keep X11 configs around. You can still find them in the commit tree, though.
You can check out my old setup on [this reddit post](https://www.reddit.com/r/unixporn/comments/d0fuc1/sway_mario_plays_the_blues/).

@ -1,134 +0,0 @@
! ~/.Xdefaults - Norman Köhring
! with ideas from:
! http://galois.com/~emertens/Xresources
! and http://dotfiles.org/~tenebrous/.Xdefaults
! and others
! general settings:
Xft.antialias: 1
Xft.autohint: 0
Xft.lcdfilter: lcddefault
Xft.hintstyle: hintfull
Xft.hinting: 1
Xft.rgba: rgb
Xft.dpi: 96
*font: xft:MonofurNerdFont-14
*faceName: xft:MonofurNerdFont-14
! --- ~/.Xresources ------------------------------------------------------------
! ------------------------------------------------------------------------------
! --- generated with 4bit Terminal Color Scheme Designer -----------------------
! ------------------------------------------------------------------------------
! --- http://ciembor.github.com/4bit -------------------------------------------
! ------------------------------------------------------------------------------
! --- special colors ---
*background: #271512
*foreground: #d9e6f2
! --- standard colors ---
! black
*color0: #232323
! bright_black
*color8: #353535
! red
*color1: #af8384
! bright_red
*color9: #d7c1c1
! green
*color2: #84af83
! bright_green
*color10: #c1d7c1
! yellow
*color3: #afae83
! bright_yellow
*color11: #d7d7c1
! blue
*color4: #8384af
! bright_blue
*color12: #c1c1d7
! magenta
*color5: #ae83af
! bright_magenta
*color13: #d7c1d7
! cyan
*color6: #83afae
! bright_cyan
*color14: #c1d7d7
! white
*color7: #c6c6c6
! bright_white
*color15: #e4e4e4
! ------------------------------------------------------------------------------
! --- end of terminal colors section -------------------------------------------
! ------------------------------------------------------------------------------
! xmessage settings:
.xmessage.form.okay.shapeStyle: round
.xmessage.form.okay.background: #333333
.xmessage.form.okay.foreground: snow
.xmessage.message.font: -*-proggyclean-*-*-*-*-*-*-*-*-*-*-*-*
.xmessage.message.background: #333333
.xmessage.form.background: #333333
.xmessage.defaultButton:
!CursorFoo
Xcursor.theme: Chameleon-Anthracite-Regular
Xcursor.size: 16
!TerminalFoo
Rxvt*termName: rxvt-256color
Rxvt*title: terminal
Rxvt*name: terminal
Rxvt*geometry: 106x52
Rxvt*background: black
Rxvt*foreground: white
Rxvt*scrollBar: False
Rxvt*visualBell: True
Rxvt*urgentOnBell: True
URxvt*transparent: False
URxvt*fading: 80
URxvt*fadeColor: #101010
!URxvt*shading: 20
!URxvt*blurRadius: 24
! URL FOO
URxvt.perl-ext: default,selection,mark-yank-urls
URxvt.perl-ext-common: default,matcher
URxvt*colorUL: #86A2BE
URxvt.keysym.M-u: perl:mark-yank-urls:activate_mark_mode
URxvt.underlineURLs: true
urxvt.urlLauncher: /usr/bin/vimprobable2
urxvt.scrollstyle: plain
urxvt.scrollBar: false
URxvt*matcher.button: 3
!URxvt.keysym.C-minus: command:\033]50;xft:Monospace:size=10:antialias=true\007
URxvt.keysym.C-minus: perl:mark-yank-urls:activate_mark_mode
rofi.pid: /home/nk/.cache/rofi.pid
rofi.modi: run,calc,emoji,drun
rofi.font: Monofur Nerdfont 14
rofi.theme: Monokai
rofi.fuzzy: false

@ -1,90 +0,0 @@
" Settings
set nohud
set smoothscroll
set noautofocus " The opposite of autofocus; this setting stops
" sites from focusing on an input box when they load
set typelinkhints
let searchlimit = 30
let scrollstep = 70
let barposition = "bottom"
let locale = "uk" " Current choices are 'jp' and 'uk'. This allows cVim to use sites like google.co.uk
" or google.co.jp to search rather than google.com. Support is currently limited.
" Let me know if you need a different locale for one of the completion/search engines
let hintcharacters = "asdfgqwertzxcvb12345"
let searchengine dogpile = "https://duckduckgo.com/?q=" " If you leave out the '%s' at the end of the URL,
" your query will be appended to the link.
" Otherwise, your query will replace the '%s'.
" This will do the same thing as above, except typing ':tabnew withbase' into to command bar
" without any search parameters will open 'http://www.dogpile.com'
let searchengine withbase = ["https://duckduckgo.com", "https://duckduckgo.com/?q=%s"]
let completionengines = ["duckduckgo", "amazon", "imdb", "dogpile"]
let searchalias ddg = "duckduckgo" " Create a shortcut for search engines.
" For example, typing ':tabnew g example'
" would act the same way as ':tabnew google example'
" Open all of these in a tab with `gnb` or open one of these with <N>goa where <N>
" let qmark a = ["http://www.reddit.com", "http://www.google.com", "http://twitter.com"]
" let blacklists = ["https://mail.google.com/*", "*://mail.google.com/*", "@https://mail.google.com/mail/*"]
" blacklists prefixed by '@' act as a whitelist
let mapleader = ","
" Mappings
map <Leader>r reloadTabUncached
" map <Leader>x :restore<Space>
" This remaps the default 'j' mapping
map j scrollUp
" You can use <Space>, which is interpreted as a
" literal " " character, to enter buffer completion mode
map b :buffer<Space>
map B :bookmarks<Space>
" This remaps the default 'f' mapping to the current 'F' mapping
" map f F
" Toggle the current HUD display value
" map <C-h> :set hud!<CR>
" Switch between alphabetical hint characters and numeric hints
" map <C-i> :set numerichints!<CR>
" Create a variable that can be used/referenced in the command bar
" let @@reddit_prog = 'http://www.reddit.com/r/programming'
" let @@top_all = 'top?sort=top&t=all'
" let @@top_day = 'top?sort=top&t=day'
" TA binding opens 'http://www.reddit.com/r/programming/top?sort=top&t=all' in a new tab
" map TA :tabnew @@reddit_prog/@@top_all<CR>
" map TD :tabnew @@reddit_prog/@@top_day<CR>
" Use paste buffer in mappings
map T :tabnew wikipedia @"<CR>
" Code blocks (see below for more info)
getIP() -> {{
httpRequest({url: 'http://api.ipify.org/?format=json', json: true},
function(res) { Status.setMessage('IP: ' + res.ip); });
}}
" Displays your public IP address in the status bar
map ci :call getIP<CR>
" Script hints
echo(link) -> {{
alert(link.href);
}}
map <C-f> createScriptHint(echo)
let configpath = '~/.config/cvimrc'
set localconfig " Update settings via a local file (and the `:source` command) rather
" than the default options page in chrome
" As long as localconfig is set in the .cvimrc file. cVim will continue to read
" settings from there

@ -1,3 +1,5 @@
# See dunst(5) for all configuration options
[global]
### Display ###
@ -15,105 +17,45 @@
#
# If this option is set to mouse or keyboard, the monitor option
# will be ignored.
follow = mouse
# The geometry of the window:
# [{width}]x{height}[+/-{x}+/-{y}]
# The geometry of the message window.
# The height is measured in number of notifications everything else
# in pixels. If the width is omitted but the height is given
# ("-geometry x2"), the message window expands over the whole screen
# (dmenu-like). If width is 0, the window expands to the longest
# message displayed. A positive x is measured from the left, a
# negative from the right side of the screen. Y is measured from
# the top and down respectively.
# The width can be negative. In this case the actual width is the
# screen width minus the width defined in within the geometry option.
geometry = "300x5-20+40"
# Show how many messages are currently hidden (because of geometry).
indicate_hidden = yes
follow = none
# Shrink window if it's smaller than the width. Will be ignored if
# width is 0.
shrink = yes
### Geometry ###
width = (300, 900)
height = 600
origin = top-center
offset = 10x50
# The transparency of the window. Range: [0; 100].
# This option will only work if a compositing window manager is
# present (e.g. xcompmgr, compiz, etc.).
transparency = 0
# Scale factor. It is auto-detected if value is 0.
scale = 0
# The height of the entire notification. If the height is smaller
# than the font height and padding combined, it will be raised
# to the font height and padding.
notification_height = 0
# Maximum number of notification (0 means no limit)
notification_limit = 20
# Draw a line of "separator_height" pixel height between two
# notifications.
# Set to 0 to disable.
separator_height = 2
### Progress bar ###
progress_bar = true
progress_bar_height = 6
progress_bar_frame_width = 1
progress_bar_min_width = 150
progress_bar_max_width = 900
progress_bar_corner_radius = 0
icon_corner_radius = 0
# Padding between text and separator.
indicate_hidden = yes
transparency = 0
separator_height = 2
padding = 8
# Horizontal padding.
horizontal_padding = 8
# Defines width in pixels of frame around the notification window.
# Set to 0 to disable.
text_icon_padding = 0
frame_width = 3
# Defines color of the frame around the notification window.
frame_color = "#aaaaaa"
# Define a color for the separator.
# possible values are:
# * auto: dunst tries to find a color fitting to the background;
# * foreground: use the same color as the foreground;
# * frame: use the same color as the frame;
# * anything else will be interpreted as a X color.
separator_color = frame
# Sort messages by urgency.
gap_size = 0
separator_color = auto
sort = yes
# Don't remove messages, if the user is idle (no mouse or keyboard input)
# for longer than idle_threshold seconds.
# Set to 0 to disable.
# A client can set the 'transient' hint to bypass this. See the rules
# section for how to disable this if necessary
idle_threshold = 120
idle_threshold = 60
### Text ###
font = Monospace 10
# The spacing between lines. If the height is smaller than the
# font height, it will get raised to the font height.
line_height = 0
# Possible values are:
# full: Allow a small subset of html markup in notifications:
# <b>bold</b>
# <i>italic</i>
# <s>strikethrough</s>
# <u>underline</u>
#
# For a complete reference see
# <http://developer.gnome.org/pango/stable/PangoMarkupFormat.html>.
#
# strip: This setting is provided for compatibility with some broken
# clients that send markup even though it's not enabled on the
# server. Dunst will try to strip the markup but the parsing is
# simplistic so using this option outside of matching rules for
# specific applications *IS GREATLY DISCOURAGED*.
#
# no: Disable markup parsing, incoming notifications will be treated as
# plain text. Dunst will not advertise that it has the body-markup
# capability if this is set as a global setting.
#
# It's important to note that markup inside the format option will be parsed
# regardless of what this is set to.
font = Monofur Nerd Font 14
line_height = 16
markup = full
# The format of the message. Possible variables are:
@ -127,93 +69,53 @@
# %% Literal %
# Markup is allowed
format = "<b>%s</b>\n%b"
# Alignment of message text.
# Possible values are "left", "center" and "right".
alignment = center
vertical_alignment = center
show_age_threshold = 30
# Show age of message if message is older than show_age_threshold
# seconds.
# Set to -1 to disable.
show_age_threshold = 60
# Split notifications into multiple lines if they don't fit into
# geometry.
word_wrap = yes
# When word_wrap is set to no, specify where to make an ellipsis in long lines.
# Specify where to make an ellipsis in long lines.
# Possible values are "start", "middle" and "end".
ellipsize = middle
# Ignore newlines '\n' in notifications.
ignore_newline = no
# Stack together notifications with the same content
stack_duplicates = true
# Hide the count of stacked notifications with the same content
hide_duplicate_count = false
# Display indicators for URLs (U) and actions (A).
show_indicators = yes
### Icons ###
# Align icons left/right/off
enable_recursive_icon_lookup = true
icon_theme = Adwaita
# You can also set multiple icon themes, with the leftmost one being used first.
# icon_theme = "Adwaita, breeze"
icon_position = left
# Scale larger icons down to this size, set to 0 to disable
min_icon_size = 32
max_icon_size = 128
# Paths to default icons.
icon_path = /usr/share/icons/AwOkenDark/clear/128x128/status/:/usr/share/icons/AwOkenDark/clear/128x128/devices/:/usr/share/icons/AwOkenDark/clear/128x128/emotes/
# Paths to default icons (only neccesary when not using recursive icon lookup)
icon_path = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/
### History ###
# Should a notification popped up from history be sticky or timeout
# as if it would normally do.
sticky_history = yes
# Maximum amount of notifications kept in history
history_length = 20
### Misc/Advanced ###
# dmenu path.
dmenu = /usr/bin/dmenu -p dunst:
# Browser for opening urls in context menu.
browser = /usr/bin/firefox -new-tab
# Always run rule-defined scripts, even if the notification is suppressed
browser = /usr/bin/xdg-open
always_run_script = true
# Define the title of the windows spawned by dunst
title = Dunst
# Define the class of the windows spawned by dunst
class = Dunst
corner_radius = 1
ignore_dbusclose = false
### Wayland ###
# These settings are Wayland-specific. They have no effect when using X11
# Print a notification on startup.
# This is mainly for error detection, since dbus (re-)starts dunst
# automatically after a crash.
startup_notification = false
# Manage dunst's desire for talking
# Can be one of the following values:
# crit: Critical features. Dunst aborts
# warn: Only non-fatal warnings
# mesg: Important Messages
# info: all unimportant stuff
# debug: all less than unimportant stuff
verbosity = mesg
# Define the corner radius of the notification window
# in pixel size. If the radius is 0, you have no rounded
# corners.
# The radius will be automatically lowered if it exceeds half of the
# notification height to avoid clipping text and/or icons.
corner_radius = 0
# Uncomment this if you want to let notications appear under fullscreen
# applications (default: overlay)
# layer = top
# Set this to true to use X11 output on Wayland.
force_xwayland = false
### Legacy
@ -229,15 +131,21 @@
### mouse
# Defines action of mouse event
# Defines list of actions for each mouse event
# Possible values are:
# * none: Don't do anything.
# * do_action: If the notification has exactly one action, or one is marked as default,
# invoke it. If there are multiple and no default, open the context menu.
# * do_action: Invoke the action determined by the action_name rule. If there is no
# such action, open the context menu.
# * open_url: If the notification has exactly one url, open it. If there are multiple
# ones, open the context menu.
# * close_current: Close current notification.
# * close_all: Close all notifications.
# * context: Open context menu for the notification.
# * context_all: Open context menu for all notifications.
# These values can be strung together for each mouse event, and
# will be executed in sequence.
mouse_left_click = close_current
mouse_middle_click = do_action
mouse_middle_click = do_action, close_current
mouse_right_click = close_all
# Experimental features that may or may not work correctly. Do not expect them
@ -248,53 +156,32 @@
# dunst will attempt to calculate an appropriate dpi value for each monitor
# using the resolution and physical size. This might be useful in setups
# where there are multiple screens with very different dpi values.
per_monitor_dpi = true
[shortcuts]
# Shortcuts are specified as [modifier+][modifier+]...key
# Available modifiers are "ctrl", "mod1" (the alt-key), "mod2",
# "mod3" and "mod4" (windows-key).
# Xev might be helpful to find names for keys.
per_monitor_dpi = false
# Close notification.
close = ctrl+space
# Close all notifications.
close_all = ctrl+shift+space
# Redisplay last message(s).
# On the US keyboard layout "grave" is normally above TAB and left
# of "1". Make sure this key actually exists on your keyboard layout,
# e.g. check output of 'xmodmap -pke'
history = ctrl+grave
# Context menu.
context = ctrl+shift+period
[urgency_low]
# IMPORTANT: colors have to be defined in quotation marks.
# Otherwise the "#" and following would be interpreted as a comment.
background = "#334466"
foreground = "#aaaaaa"
background = "#222222"
foreground = "#888888"
timeout = 10
# Icon for notifications with low urgency, uncomment to enable
#icon = /path/to/icon
#default_icon = /path/to/icon
[urgency_normal]
background = "#222222"
background = "#285577"
foreground = "#ffffff"
timeout = 10
# Icon for notifications with normal urgency, uncomment to enable
#icon = /path/to/icon
#default_icon = /path/to/icon
[urgency_critical]
background = "#600000"
background = "#900000"
foreground = "#ffffff"
frame_color = "#dd3333"
frame_color = "#ff0000"
timeout = 0
# Icon for notifications with critical urgency, uncomment to enable
#icon = /path/to/icon
#default_icon = /path/to/icon
# Every section that isn't one of the above is interpreted as a rules to
# override settings for certain messages.
@ -319,8 +206,17 @@
# new_icon
# set_stack_tag
# set_transient
# set_category
# timeout
# urgency
# icon_position
# skip_display
# history_ignore
# action_name
# word_wrap
# ellipsize
# alignment
# hide_text
#
# Shell-like globbing will get expanded.
#
@ -335,8 +231,6 @@
# script appname summary body icon urgency
# where urgency can be "LOW", "NORMAL" or "CRITICAL".
#
# NOTE: if you don't want a notification to be displayed, set the format
# to "".
# NOTE: It might be helpful to run dunst -print in a terminal in order
# to find fitting options for rules.
@ -375,7 +269,7 @@
#[ignore]
# # This notification will not be displayed
# summary = "foobar"
# format = ""
# skip_display = true
#[history-ignore]
# # This notification will not be saved in history

@ -1,186 +1,4 @@
# -*- 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
font=Monofur Nerd Font:style=Regular:size=16
font-bold=Monofur Nerd Font:style=Bold:size=16
font-italic=Monofur Nerd Font:style=Italic:size=16
shell=tmux new -A -s 0

@ -0,0 +1,41 @@
theme = "pop-dark"
[editor]
line-number = "absolute"
mouse = true
bufferline = "multiple"
text-width = 120
cursorline = true
rulers = [120]
[editor.cursor-shape]
insert = "bar"
normal = "block"
select = "underline"
[editor.indent-guides]
character = "╎"
render = true
[editor.lsp]
auto-signature-help = true
display-messages = true
[editor.file-picker]
hidden = false
[editor.statusline]
left = ["mode", "spinner", "version-control", "file-name"]
[keys.normal]
"A-," = "goto_previous_buffer"
"A-." = "goto_next_buffer"
"A-w" = ":buffer-close"
"A-/" = "repeat_last_motion"
A-x = "extend_to_line_bounds"
X = ["extend_line_up", "extend_to_line_bounds"]
[keys.select]
A-x = "extend_to_line_bounds"
X = ["extend_line_up", "extend_to_line_bounds"]

@ -1,404 +0,0 @@
snippet_support = false
verbosity = 2
[server]
# exit session if no requests were received during given period in seconds
# works only in unix sockets mode (-s/--session)
# 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.crystal]
filetypes = ["crystal"]
roots = ["shard.yml"]
command = "scry"
[language.css]
filetypes = ["css"]
roots = ["package.json", ".git", ".hg"]
command = "css-languageserver"
args = ["--stdio"]
[language.less]
filetypes = ["less"]
roots = ["package.json", ".git", ".hg"]
command = "css-languageserver"
args = ["--stdio"]
[language.scss]
filetypes = ["scss"]
roots = ["package.json", ".git", ".hg"]
command = "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 = "sh"
args = ["-c", "dart $(dirname $(command -v dart))/snapshots/analysis_server.dart.snapshot --lsp"]
[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.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 = ["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 = "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]
# 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.javascript]
# filetypes = ["javascript"]
# roots = [".flowconfig"]
# command = "flow"
# args = ["lsp"]
[language.json]
filetypes = ["json"]
roots = ["package.json"]
command = "json-languageserver"
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/blob/master/docs/options.md
#
# Preview configuration for zathura with SyncTeX search.
# For other PDF viewers see https://github.com/latex-lsp/texlab/blob/master/docs/previewing.md
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.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"]
roots = ["Makefile", "opam", "*.opam", "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.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"]
[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"]
[language.ruby.settings]
# See https://github.com/castwide/solargraph/blob/master/lib/solargraph/language_server/host.rb
# "solargraph.completion" = true
[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.typescript]
filetypes = ["typescript", "javascript"]
roots = ["package.json", "tsconfig.json", ".git", ".hg"]
command = "typescript-language-server"
args = ["--stdio"]
# [language.typescript]
# filetypes = ["typescript"]
# roots = ["package.json", "tsconfig.json", ".git", ".hg"]
# command = "deno"
# args = ["lsp"]
# [language.typescript.settings.deno]
# 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"]
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 +0,0 @@
/usr/share/kak/rc/

@ -1,32 +0,0 @@
# 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
}
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=(javascript|ecmascript) %{
set window formatcmd 'prettier-standard'
#hook window BufWritePre .* format
}
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
}

@ -1 +0,0 @@
/home/nk/src/koehr/kakoune-svelte/svelte.kak

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

@ -1,49 +0,0 @@
# code
face global value rgb:fa9672,default
face global type rgb:bfbfab,default
face global identifier rgb:fa9672,default
face global variable rgb:fa9672,default
face global module rgb:fa9672,default
face global function rgb:fa9672,default
face global string rgb:fa8072,default
face global error default,rgb:ffffff
face global keyword rgb:bfabab,default+b
face global operator rgb:dedede,default
face global attribute rgb:ccb4a3,default
face global comment rgb:787878,default+i
face global meta rgb:fa9672,default
# text
face global title rgb:ccb4a3,default+b
face global header rgb:ccb4a3,default
face global bold rgb:ccb4a3,default+b
face global italic rgb:ccb4a3,default+i
face global mono rgb:cccccc,rgb:212121
face global block rgb:cccccc,rgb:212121
face global link rgb:acacbf,default
face global bullet rgb:ccb4a3,default
face global list rgb:dedede,default
# kakoune UI
face global Default rgb:ccb4a3,rgb:272020
face global PrimarySelection default,rgba:CC8E5760
face global SecondarySelection default,rgba:CC8E5730
face global PrimaryCursor rgb:000000,rgb:ffffff+b
face global SecondaryCursor rgb:121212,rgb:dedede+b
face global MatchingChar rgb:ffff00,default+b
face global Search default,rgb:333333
face global Whitespace default,rgb:333333
face global BufferPadding rgb:333333,default
face global LineNumbers rgb:383333,default
face global LineNumberCursor rgb:666666,default
face global MenuForeground rgb:bfbfbf,rgb:594a4a+b
face global MenuBackground default,rgb:403a3a
face global MenuInfo rgb:bfbfbf,rgb:594a4a
face global Information default,rgb:4d4242
face global Error rgb:121212,rgb:dedede
face global StatusLine rgb:cccccc,rgb:20252d
face global StatusLineMode rgb:bfbfbf,rgb:594a4a
face global StatusLineInfo rgb:ffddcc,rgb:20252d
face global StatusLineValue rgb:fffacc,rgb:20252d
face global StatusCursor default,rgb:787878
face global Prompt rgb:ababbf,rgb:474747

@ -1,19 +0,0 @@
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
}

@ -1,3 +0,0 @@
source "%val{config}/personalization.kak"
source "%val{config}/filetypes.kak"
source "%val{config}/plugins.kak"

@ -1,75 +0,0 @@
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>'

@ -1,55 +0,0 @@
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
}