summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bash/dot-bash_aliases5
-rw-r--r--bash/dot-bashrc1
-rw-r--r--dunst/dunst/dunstrc10
-rwxr-xr-xdunst/dunst/set-urgent.sh1
-rw-r--r--feh/feh/buttons5
-rw-r--r--i3/i3/config18
-rwxr-xr-xinstall.sh18
-rw-r--r--kitty/kitty/dracula.conf58
-rw-r--r--kitty/kitty/greyscale.conf48
-rw-r--r--kitty/kitty/kitty.conf1199
-rw-r--r--konsole/Default.profile17
-rw-r--r--konsole/Dracula-Linux.colorscheme95
-rw-r--r--nvim/nvim/autoload/plug.vim241
-rw-r--r--nvim/nvim/init.lua6
-rw-r--r--nvim/nvim/lua/git.lua45
-rw-r--r--nvim/nvim/lua/ledger.lua48
-rw-r--r--nvim/nvim/lua/mappings.lua3
-rw-r--r--picom/picom.conf6
-rwxr-xr-xplasma-env/guix.sh15
-rw-r--r--reminder/reminder/exercise.scm6
-rw-r--r--shepherd/shepherd/init.d/exercise.scm17
-rw-r--r--shepherd/shepherd/init.d/redshift.scm12
-rw-r--r--shepherd/shepherd/init.scm2
-rw-r--r--sioyek/sioyek/keys_user.config1
-rw-r--r--sioyek/sioyek/prefs_user.config1
-rw-r--r--uninstall.sh18
26 files changed, 337 insertions, 1559 deletions
diff --git a/bash/dot-bash_aliases b/bash/dot-bash_aliases
index a76afaa..91956da 100644
--- a/bash/dot-bash_aliases
+++ b/bash/dot-bash_aliases
@@ -33,11 +33,6 @@ function whiteboard {
convert "$1" -morphology Convolve DoG:15,100,0 -negate -normalize -blur 0x1 -channel RBG -level 60%,91%,0.1 "$2"
}
-# Pandoc for ElenQ
-alias pandoc-xelatex="pandoc $@ --pdf-engine=xelatex --to latex -N"
-alias elenqdoc-article="pandoc-xelatex $@ --standalone --template elenq-article --metadata=documentclass:article --resource-path=~/.pandoc:."
-alias elenqdoc-book="pandoc-xelatex $@ --standalone --template elenq-book --metadata=documentclass:book --top-level-division=chapter --resource-path=~/.pandoc:."
-
# Open using xdg
alias open="xdg-open $@ &>/dev/null"
diff --git a/bash/dot-bashrc b/bash/dot-bashrc
index 83620db..26a0492 100644
--- a/bash/dot-bashrc
+++ b/bash/dot-bashrc
@@ -46,6 +46,7 @@ export HISTTIMEFORMAT="[%F %T] "
# Editors
export EDITOR=nvim
+export MANPAGER='nvim +Man!'
export PAGER=less
export TERMINAL=alacritty
diff --git a/dunst/dunst/dunstrc b/dunst/dunst/dunstrc
index 12a0973..12c2b40 100644
--- a/dunst/dunst/dunstrc
+++ b/dunst/dunst/dunstrc
@@ -3,3 +3,13 @@
dmenu = /usr/bin/env dmenu -p dunst
browser = xdg-open
+
+# Hide entries but set urgency hint in app
+[Dino]
+ appname = Dino
+ format = ""
+ script = $HOME/.config/dunst/set-urgent.sh
+[Daily]
+ appname = Daily
+ format = ""
+ script = $HOME/.config/dunst/set-urgent.sh
diff --git a/dunst/dunst/set-urgent.sh b/dunst/dunst/set-urgent.sh
new file mode 100755
index 0000000..02cbbb2
--- /dev/null
+++ b/dunst/dunst/set-urgent.sh
@@ -0,0 +1 @@
+wmctrl -r $1 -b add,demands_attention
diff --git a/feh/feh/buttons b/feh/feh/buttons
new file mode 100644
index 0000000..cdb3824
--- /dev/null
+++ b/feh/feh/buttons
@@ -0,0 +1,5 @@
+# scroll wheel for zoom
+prev_img
+next_img
+zoom_in 4
+zoom_out 5
diff --git a/i3/i3/config b/i3/i3/config
index edabe63..8df7fe8 100644
--- a/i3/i3/config
+++ b/i3/i3/config
@@ -26,6 +26,9 @@ font pango:monospace 10
# screen before suspend. Use loginctl lock-session to lock your screen.
exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork
+# Use a compositor for transparent backgrounds and hopefullo no tearing?
+exec --no-startup-id picom -b
+
# NetworkManager is the most popular way to manage wireless networks on Linux,
# and nm-applet is a desktop environment-independent system tray GUI for it.
exec --no-startup-id nm-applet
@@ -41,6 +44,12 @@ bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT
bindsym XF86MonBrightnessUp exec light -A 5 # increase screen brightness
bindsym XF86MonBrightnessDown exec light -U 5 # decrease screen brightness
+# Keyboard led control
+# TODO: toggle
+bindsym XF86KbdLightOnOff exec light -s sysfs/leds/rgb:kbd_backlight -T 0
+bindsym XF86KbdBrightnessDown exec light -s sysfs/leds/rgb:kbd_backlight -U 5
+bindsym XF86KbdBrightnessUp exec light -s sysfs/leds/rgb:kbd_backlight -A 5
+
# Use Mouse+$mod to drag floating windows to their wanted position
floating_modifier $mod
@@ -51,11 +60,11 @@ bindsym $mod+Return exec alacritty
bindsym $mod+Shift+q kill
# start dmenu (a program launcher)
-bindsym $mod+d exec dmenu_run
+#bindsym $mod+d exec dmenu_run
# There also is the (new) i3-dmenu-desktop which only displays applications
# shipping a .desktop file. It is a wrapper around dmenu, so you need that
# installed.
-# bindsym $mod+d exec --no-startup-id i3-dmenu-desktop
+bindsym $mod+d exec --no-startup-id j4-dmenu-desktop
# change focus
bindsym $mod+h focus left
@@ -214,8 +223,8 @@ bindsym $mod+p move workspace to output right
# 47 is ;(en) ñ(en)
bindcode $mod+47 exec dunstctl close
bindcode $mod+Shift+47 exec dunstctl close-all
+bindcode $mod+Control+Shift+47 exec dunstctl history-clear
bindsym $mod+period exec dunstctl history-pop
-bindsym $mod+Shift+period exec dunstctl history-clear
bindsym $mod+comma exec dunstctl context
@@ -224,3 +233,6 @@ exec --no-startup-id shepherd
# Start dunst
exec --no-startup-id dunst
+
+# Wallpaper
+exec --no-startup-id feh --bg-scale $HOME/Pictures/wallpaper.jpg
diff --git a/install.sh b/install.sh
index b81416a..27c8b6a 100755
--- a/install.sh
+++ b/install.sh
@@ -8,12 +8,7 @@ stow --dotfiles -Rt$HOME bash tmux git
# Link at XDG_CONFIG_HOME if set, if not to $HOME/.config (they should be the same)
stow -Rt $XDG_CONFIG_HOME nvim
-# konsole colors
-# stow -Rt "${XDG_CONFIG_HOME:=$HOME/.config}/konsole" konsole
-
-# kitty
-stow -Rt $XDG_CONFIG_HOME kitty
-# Alacritty (tries to replace kitty)
+# Alacritty
stow -Rt $XDG_CONFIG_HOME alacritty
# Guix channels
@@ -22,8 +17,6 @@ stow -Rt "$XDG_CONFIG_HOME/guix" guix
# i3
stow -Rt $XDG_CONFIG_HOME i3
stow -Rt $XDG_CONFIG_HOME i3status
-# Plasma session environment variables
-#stow -Rt "${XDG_CONFIG_HOME:=$HOME/.config}/plasma-workspace/env" plasma-env
# dunst
stow -Rt $XDG_CONFIG_HOME dunst
@@ -38,3 +31,12 @@ stow -Rt $XDG_CONFIG_HOME newsboat
# Sioyek
stow -Rt $XDG_CONFIG_HOME sioyek
+
+# Reminder
+stow -Rt $XDG_CONFIG_HOME reminder
+
+# feh
+stow -Rt $XDG_CONFIG_HOME feh
+
+# picom
+stow -Rt $XDG_CONFIG_HOME picom
diff --git a/kitty/kitty/dracula.conf b/kitty/kitty/dracula.conf
deleted file mode 100644
index f517731..0000000
--- a/kitty/kitty/dracula.conf
+++ /dev/null
@@ -1,58 +0,0 @@
-# https://draculatheme.com/kitty
-#
-# Installation instructions:
-#
-# cp dracula.conf ~/.config/kitty/
-# echo "include dracula.conf" >> ~/.config/kitty/kitty.conf
-#
-# Then reload kitty for the config to take affect.
-# Alternatively copy paste below directly into kitty.conf
-
-foreground #f8f8f2
-background #282a36
-selection_foreground #44475a
-selection_background #f8f8f2
-
-url_color #ffb86c
-
-# black
-color0 #21222c
-color8 #6272a4
-
-# red
-color1 #ff5555
-color9 #ff6e6e
-
-# green
-color2 #50fa7b
-color10 #69ff94
-
-# yellow
-color3 #f1fa8c
-color11 #ffffa5
-
-# blue
-color4 #bd93f9
-color12 #d6acff
-
-# magenta
-color5 #ff79c6
-color13 #ff92df
-
-# cyan
-color6 #8be9fd
-color14 #a4ffff
-
-# white
-color7 #f8f8f2
-color15 #ffffff
-
-# Cursor colors
-cursor #f8f8f2
-cursor_text_color background
-
-# Tab bar colors
-active_tab_foreground #44475a
-active_tab_background #f8f8f2
-inactive_tab_foreground #282a36
-inactive_tab_background #6272a4
diff --git a/kitty/kitty/greyscale.conf b/kitty/kitty/greyscale.conf
deleted file mode 100644
index 02cc41a..0000000
--- a/kitty/kitty/greyscale.conf
+++ /dev/null
@@ -1,48 +0,0 @@
-foreground #FFFFFF
-background #000000
-selection_foreground #FFFFFF
-selection_background #EEEEEE
-
-url_color #ffb86c
-
-# black
-color0 #000000
-color8 #000000
-
-# red
-color1 #444444
-color9 #555555
-
-# green
-color2 #888888
-color10 #999999
-
-# yellow
-color3 #333333
-color11 #DDDDDD
-
-# blue
-color4 #222222
-color12 #333333
-
-# magenta
-color5 #666666
-color13 #777777
-
-# cyan
-color6 #AAAAAA
-color14 #BBBBBB
-
-# white
-color7 #EEEEEE
-color15 #FFFFFF
-
-# Cursor colors
-cursor color15
-cursor_text_color background
-
-# Tab bar colors
-active_tab_foreground #44475a
-active_tab_background #f8f8f2
-inactive_tab_foreground #282a36
-inactive_tab_background #6272a4
diff --git a/kitty/kitty/kitty.conf b/kitty/kitty/kitty.conf
deleted file mode 100644
index 7af3157..0000000
--- a/kitty/kitty/kitty.conf
+++ /dev/null
@@ -1,1199 +0,0 @@
-# vim:fileencoding=utf-8:ft=conf:foldmethod=marker
-
-#: Fonts {{{
-
-#: kitty has very powerful font management. You can configure
-#: individual font faces and even specify special fonts for particular
-#: characters.
-
-font_family B612 Mono Regular
-bold_font B612 Mono Bold
-italic_font B612 Mono Italic
-bold_italic_font B612 Mono BoldItalic
-
-#: You can specify different fonts for the bold/italic/bold-italic
-#: variants. To get a full list of supported fonts use the `kitty
-#: list-fonts` command. By default they are derived automatically, by
-#: the OSes font system. Setting them manually is useful for font
-#: families that have many weight variants like Book, Medium, Thick,
-#: etc. For example::
-
-#: font_family Operator Mono Book
-#: bold_font Operator Mono Medium
-#: italic_font Operator Mono Book Italic
-#: bold_italic_font Operator Mono Medium Italic
-
-font_size 12.0
-
-#: Font size (in pts)
-
-# force_ltr no
-
-#: kitty does not support BIDI (bidirectional text), however, for RTL
-#: scripts, words are automatically displayed in RTL. That is to say,
-#: in an RTL script, the words "HELLO WORLD" display in kitty as
-#: "WORLD HELLO", and if you try to select a substring of an RTL-
-#: shaped string, you will get the character that would be there had
-#: the the string been LTR. For example, assuming the Hebrew word
-#: ירושלים, selecting the character that on the screen appears to be ם
-#: actually writes into the selection buffer the character י.
-
-#: kitty's default behavior is useful in conjunction with a filter to
-#: reverse the word order, however, if you wish to manipulate RTL
-#: glyphs, it can be very challenging to work with, so this option is
-#: provided to turn it off. Furthermore, this option can be used with
-#: the command line program GNU FriBidi
-#: <https://github.com/fribidi/fribidi#executable> to get BIDI
-#: support, because it will force kitty to always treat the text as
-#: LTR, which FriBidi expects for terminals.
-
-adjust_line_height 0
-adjust_column_width 0
-
-#: Change the size of each character cell kitty renders. You can use
-#: either numbers, which are interpreted as pixels or percentages
-#: (number followed by %), which are interpreted as percentages of the
-#: unmodified values. You can use negative pixels or percentages less
-#: than 100% to reduce sizes (but this might cause rendering
-#: artifacts).
-
-# symbol_map U+E0A0-U+E0A2,U+E0B0-U+E0B3 PowerlineSymbols
-
-#: Map the specified unicode codepoints to a particular font. Useful
-#: if you need special rendering for some symbols, such as for
-#: Powerline. Avoids the need for patched fonts. Each unicode code
-#: point is specified in the form U+<code point in hexadecimal>. You
-#: can specify multiple code points, separated by commas and ranges
-#: separated by hyphens. symbol_map itself can be specified multiple
-#: times. Syntax is::
-
-#: symbol_map codepoints Font Family Name
-
-disable_ligatures never
-
-#: Choose how you want to handle multi-character ligatures. The
-#: default is to always render them. You can tell kitty to not render
-#: them when the cursor is over them by using cursor to make editing
-#: easier, or have kitty never render them at all by using always, if
-#: you don't like them. The ligature strategy can be set per-window
-#: either using the kitty remote control facility or by defining
-#: shortcuts for it in kitty.conf, for example::
-
-#: map alt+1 disable_ligatures_in active always
-#: map alt+2 disable_ligatures_in all never
-#: map alt+3 disable_ligatures_in tab cursor
-
-# font_features none
-
-#: Choose exactly which OpenType features to enable or disable. This
-#: is useful as some fonts might have features worthwhile in a
-#: terminal. For example, Fira Code Retina includes a discretionary
-#: feature, zero, which in that font changes the appearance of the
-#: zero (0), to make it more easily distinguishable from Ø. Fira Code
-#: Retina also includes other discretionary features known as
-#: Stylistic Sets which have the tags ss01 through ss20.
-
-#: Note that this code is indexed by PostScript name, and not the font
-#: family. This allows you to define very precise feature settings;
-#: e.g. you can disable a feature in the italic font but not in the
-#: regular font.
-
-#: To get the PostScript name for a font, use kitty + list-fonts
-#: --psnames::
-
-#: $ kitty + list-fonts --psnames | grep Fira
-#: Fira Code
-#: Fira Code Bold (FiraCode-Bold)
-#: Fira Code Light (FiraCode-Light)
-#: Fira Code Medium (FiraCode-Medium)
-#: Fira Code Regular (FiraCode-Regular)
-#: Fira Code Retina (FiraCode-Retina)
-
-#: The part in brackets is the PostScript name.
-
-#: Enable alternate zero and oldstyle numerals::
-
-#: font_features FiraCode-Retina +zero +onum
-
-#: Enable only alternate zero::
-
-#: font_features FiraCode-Retina +zero
-
-#: Disable the normal ligatures, but keep the calt feature which (in
-#: this font) breaks up monotony::
-
-#: font_features TT2020StyleB-Regular -liga +calt
-
-#: In conjunction with force_ltr, you may want to disable Arabic
-#: shaping entirely, and only look at their isolated forms if they
-#: show up in a document. You can do this with e.g.::
-
-#: font_features UnifontMedium +isol -medi -fina -init
-
-box_drawing_scale 0.001, 1, 1.5, 2
-
-#: Change the sizes of the lines used for the box drawing unicode
-#: characters These values are in pts. They will be scaled by the
-#: monitor DPI to arrive at a pixel value. There must be four values
-#: corresponding to thin, normal, thick, and very thick lines.
-
-#: }}}
-
-#: Cursor customization {{{
-
-cursor #cccccc
-
-#: Default cursor color
-
-cursor_text_color #111111
-
-#: Choose the color of text under the cursor. If you want it rendered
-#: with the background color of the cell underneath instead, use the
-#: special keyword: background
-
-cursor_shape block
-
-#: The cursor shape can be one of (block, beam, underline)
-
-cursor_blink_interval -1
-
-#: The interval (in seconds) at which to blink the cursor. Set to zero
-#: to disable blinking. Negative values mean use system default. Note
-#: that numbers smaller than repaint_delay will be limited to
-#: repaint_delay.
-
-cursor_stop_blinking_after 15.0
-
-#: Stop blinking cursor after the specified number of seconds of
-#: keyboard inactivity. Set to zero to never stop blinking.
-
-#: }}}
-
-#: Scrollback {{{
-
-scrollback_lines -1
-
-#: Number of lines of history to keep in memory for scrolling back.
-#: Memory is allocated on demand. Negative numbers are (effectively)
-#: infinite scrollback. Note that using very large scrollback is not
-#: recommended as it can slow down resizing of the terminal and also
-#: use large amounts of RAM.
-
-scrollback_pager less --chop-long-lines --RAW-CONTROL-CHARS +INPUT_LINE_NUMBER
-
-#: Program with which to view scrollback in a new window. The
-#: scrollback buffer is passed as STDIN to this program. If you change
-#: it, make sure the program you use can handle ANSI escape sequences
-#: for colors and text formatting. INPUT_LINE_NUMBER in the command
-#: line above will be replaced by an integer representing which line
-#: should be at the top of the screen.
-
-scrollback_pager_history_size 0
-
-#: Separate scrollback history size, used only for browsing the
-#: scrollback buffer (in MB). This separate buffer is not available
-#: for interactive scrolling but will be piped to the pager program
-#: when viewing scrollback buffer in a separate window. The current
-#: implementation stores one character in 4 bytes, so approximatively
-#: 2500 lines per megabyte at 100 chars per line. A value of zero or
-#: less disables this feature. The maximum allowed size is 4GB.
-
-wheel_scroll_multiplier 5.0
-
-#: Modify the amount scrolled by the mouse wheel. Note this is only
-#: used for low precision scrolling devices, not for high precision
-#: scrolling on platforms such as macOS and Wayland. Use negative
-#: numbers to change scroll direction.
-
-touch_scroll_multiplier 1.0
-
-#: Modify the amount scrolled by a touchpad. Note this is only used
-#: for high precision scrolling devices on platforms such as macOS and
-#: Wayland. Use negative numbers to change scroll direction.
-
-#: }}}
-
-#: Mouse {{{
-
-mouse_hide_wait 3.0
-
-#: Hide mouse cursor after the specified number of seconds of the
-#: mouse not being used. Set to zero to disable mouse cursor hiding.
-#: Set to a negative value to hide the mouse cursor immediately when
-#: typing text. Disabled by default on macOS as getting it to work
-#: robustly with the ever-changing sea of bugs that is Cocoa is too
-#: much effort.
-
-url_color #0087bd
-url_style curly
-
-#: The color and style for highlighting URLs on mouse-over. url_style
-#: can be one of: none, single, double, curly
-
-open_url_modifiers kitty_mod
-
-#: The modifier keys to press when clicking with the mouse on URLs to
-#: open the URL
-
-open_url_with default
-
-#: The program with which to open URLs that are clicked on. The
-#: special value default means to use the operating system's default
-#: URL handler.
-
-copy_on_select no
-
-#: Copy to clipboard or a private buffer on select. With this set to
-#: clipboard, simply selecting text with the mouse will cause the text
-#: to be copied to clipboard. Useful on platforms such as macOS that
-#: do not have the concept of primary selections. You can instead
-#: specify a name such as a1 to copy to a private kitty buffer
-#: instead. Map a shortcut with the paste_from_buffer action to paste
-#: from this private buffer. For example::
-
-#: map cmd+shift+v paste_from_buffer a1
-
-#: Note that copying to the clipboard is a security risk, as all
-#: programs, including websites open in your browser can read the
-#: contents of the system clipboard.
-
-strip_trailing_spaces never
-
-#: Remove spaces at the end of lines when copying to clipboard. A
-#: value of smart will do it when using normal selections, but not
-#: rectangle selections. always will always do it.
-
-rectangle_select_modifiers ctrl+alt
-
-#: The modifiers to use rectangular selection (i.e. to select text in
-#: a rectangular block with the mouse)
-
-terminal_select_modifiers shift
-
-#: The modifiers to override mouse selection even when a terminal
-#: application has grabbed the mouse
-
-select_by_word_characters :@-./_~?&=%+#
-
-#: Characters considered part of a word when double clicking. In
-#: addition to these characters any character that is marked as an
-#: alphanumeric character in the unicode database will be matched.
-
-click_interval -1.0
-
-#: The interval between successive clicks to detect double/triple
-#: clicks (in seconds). Negative numbers will use the system default
-#: instead, if available, or fallback to 0.5.
-
-focus_follows_mouse no
-
-#: Set the active window to the window under the mouse when moving the
-#: mouse around
-
-pointer_shape_when_grabbed arrow
-
-#: The shape of the mouse pointer when the program running in the
-#: terminal grabs the mouse. Valid values are: arrow, beam and hand
-
-#: }}}
-
-#: Performance tuning {{{
-
-repaint_delay 10
-
-#: Delay (in milliseconds) between screen updates. Decreasing it,
-#: increases frames-per-second (FPS) at the cost of more CPU usage.
-#: The default value yields ~100 FPS which is more than sufficient for
-#: most uses. Note that to actually achieve 100 FPS you have to either
-#: set sync_to_monitor to no or use a monitor with a high refresh
-#: rate. Also, to minimize latency when there is pending input to be
-#: processed, repaint_delay is ignored.
-
-input_delay 3
-
-#: Delay (in milliseconds) before input from the program running in
-#: the terminal is processed. Note that decreasing it will increase
-#: responsiveness, but also increase CPU usage and might cause flicker
-#: in full screen programs that redraw the entire screen on each loop,
-#: because kitty is so fast that partial screen updates will be drawn.
-
-sync_to_monitor yes
-
-#: Sync screen updates to the refresh rate of the monitor. This
-#: prevents tearing (https://en.wikipedia.org/wiki/Screen_tearing)
-#: when scrolling. However, it limits the rendering speed to the
-#: refresh rate of your monitor. With a very high speed mouse/high
-#: keyboard repeat rate, you may notice some slight input latency. If
-#: so, set this to no.
-
-#: }}}
-
-#: Terminal bell {{{
-
-enable_audio_bell no
-
-#: Enable/disable the audio bell. Useful in environments that require
-#: silence.
-
-visual_bell_duration 0.0
-
-#: Visual bell duration. Flash the screen when a bell occurs for the
-#: specified number of seconds. Set to zero to disable.
-
-window_alert_on_bell yes
-
-#: Request window attention on bell. Makes the dock icon bounce on
-#: macOS or the taskbar flash on linux.
-
-bell_on_tab yes
-
-#: Show a bell symbol on the tab if a bell occurs in one of the
-#: windows in the tab and the window is not the currently focused
-#: window
-
-command_on_bell none
-
-#: Program to run when a bell occurs.
-
-#: }}}
-
-#: Window layout {{{
-
-remember_window_size yes
-initial_window_width 640
-initial_window_height 400
-
-#: If enabled, the window size will be remembered so that new
-#: instances of kitty will have the same size as the previous
-#: instance. If disabled, the window will initially have size
-#: configured by initial_window_width/height, in pixels. You can use a
-#: suffix of "c" on the width/height values to have them interpreted
-#: as number of cells instead of pixels.
-
-enabled_layouts *
-
-#: The enabled window layouts. A comma separated list of layout names.
-#: The special value all means all layouts. The first listed layout
-#: will be used as the startup layout. Default configuration is all
-#: layouts in alphabetical order. For a list of available layouts, see
-#: the https://sw.kovidgoyal.net/kitty/index.html#layouts.
-
-window_resize_step_cells 2
-window_resize_step_lines 2
-
-#: The step size (in units of cell width/cell height) to use when
-#: resizing windows. The cells value is used for horizontal resizing
-#: and the lines value for vertical resizing.
-
-window_border_width 1.0
-
-#: The width (in pts) of window borders. Will be rounded to the
-#: nearest number of pixels based on screen resolution. Note that
-#: borders are displayed only when more than one window is visible.
-#: They are meant to separate multiple windows.
-
-draw_minimal_borders yes
-
-#: Draw only the minimum borders needed. This means that only the
-#: minimum needed borders for inactive windows are drawn. That is only
-#: the borders that separate the inactive window from a neighbor. Note
-#: that setting a non-zero window margin overrides this and causes all
-#: borders to be drawn.
-
-window_margin_width 0.0
-
-#: The window margin (in pts) (blank area outside the border)
-
-single_window_margin_width -1000.0
-
-#: The window margin (in pts) to use when only a single window is
-#: visible. Negative values will cause the value of
-#: window_margin_width to be used instead.
-
-window_padding_width 0.0
-
-#: The window padding (in pts) (blank area between the text and the
-#: window border)
-
-placement_strategy center
-
-#: When the window size is not an exact multiple of the cell size, the
-#: cell area of the terminal window will have some extra padding on
-#: the sides. You can control how that padding is distributed with
-#: this option. Using a value of center means the cell area will be
-#: placed centrally. A value of top-left means the padding will be on
-#: only the bottom and right edges.
-
-active_border_color #00ff00
-
-#: The color for the border of the active window. Set this to none to
-#: not draw borders around the active window.
-
-inactive_border_color #cccccc
-
-#: The color for the border of inactive windows
-
-bell_border_color #ff5a00
-
-#: The color for the border of inactive windows in which a bell has
-#: occurred
-
-inactive_text_alpha 1.0
-
-#: Fade the text in inactive windows by the specified amount (a number
-#: between zero and one, with zero being fully faded).
-
-hide_window_decorations no
-
-#: Hide the window decorations (title-bar and window borders) with
-#: yes. On macOS, titlebar-only can be used to only hide the titlebar.
-#: Whether this works and exactly what effect it has depends on the
-#: window manager/operating system.
-
-resize_debounce_time 0.1
-
-#: The time (in seconds) to wait before redrawing the screen when a
-#: resize event is received. On platforms such as macOS, where the
-#: operating system sends events corresponding to the start and end of
-#: a resize, this number is ignored.
-
-resize_draw_strategy static
-
-#: Choose how kitty draws a window while a resize is in progress. A
-#: value of static means draw the current window contents, mostly
-#: unchanged. A value of scale means draw the current window contents
-#: scaled. A value of blank means draw a blank window. A value of size
-#: means show the window size in cells.
-
-# resize_in_steps no
-
-#: Resize the OS window in steps as large as the cells, instead of
-#: with the usual pixel accuracy. Combined with an
-#: initial_window_width and initial_window_height in number of cells,
-#: this option can be used to keep the margins as small as possible
-#: when resizing the OS window. Note that this does not currently work
-#: on Wayland.
-
-#: }}}
-
-#: Tab bar {{{
-
-tab_bar_edge bottom
-
-#: Which edge to show the tab bar on, top or bottom
-
-tab_bar_margin_width 0.0
-
-#: The margin to the left and right of the tab bar (in pts)
-
-tab_bar_style fade
-
-#: The tab bar style, can be one of: fade, separator, powerline, or
-#: hidden. In the fade style, each tab's edges fade into the
-#: background color, in the separator style, tabs are separated by a
-#: configurable separator, and the powerline shows the tabs as a
-#: continuous line.
-
-tab_bar_min_tabs 2
-
-#: The minimum number of tabs that must exist before the tab bar is
-#: shown
-
-tab_switch_strategy previous
-
-#: The algorithm to use when switching to a tab when the current tab
-#: is closed. The default of previous will switch to the last used
-#: tab. A value of left will switch to the tab to the left of the
-#: closed tab. A value of last will switch to the right-most tab.
-
-tab_fade 0.25 0.5 0.75 1
-
-#: Control how each tab fades into the background when using fade for
-#: the tab_bar_style. Each number is an alpha (between zero and one)
-#: that controls how much the corresponding cell fades into the
-#: background, with zero being no fade and one being full fade. You
-#: can change the number of cells used by adding/removing entries to
-#: this list.
-
-tab_separator " ┇"
-
-#: The separator between tabs in the tab bar when using separator as
-#: the tab_bar_style.
-
-tab_title_template {title}
-
-#: A template to render the tab title. The default just renders the
-#: title. If you wish to include the tab-index as well, use something
-#: like: {index}: {title}. Useful if you have shortcuts mapped for
-#: goto_tab N.
-
-# active_tab_title_template none
-
-#: Template to use for active tabs, if not specified falls back to
-#: tab_title_template.
-
-active_tab_foreground #000
-active_tab_background #eee
-active_tab_font_style bold-italic
-inactive_tab_foreground #444
-inactive_tab_background #999
-inactive_tab_font_style normal
-
-#: Tab bar colors and styles
-
-# tab_bar_background none
-
-#: Background color for the tab bar. Defaults to using the terminal
-#: background color.
-
-#: }}}
-
-#: Color scheme {{{
-
-foreground #dddddd
-background #000000
-
-#: The foreground and background colors
-
-background_opacity 1.0
-
-#: The opacity of the background. A number between 0 and 1, where 1 is
-#: opaque and 0 is fully transparent. This will only work if
-#: supported by the OS (for instance, when using a compositor under
-#: X11). Note that it only sets the default background color's
-#: opacity. This is so that things like the status bar in vim,
-#: powerline prompts, etc. still look good. But it means that if you
-#: use a color theme with a background color in your editor, it will
-#: not be rendered as transparent. Instead you should change the
-#: default background color in your kitty config and not use a
-#: background color in the editor color scheme. Or use the escape
-#: codes to set the terminals default colors in a shell script to
-#: launch your editor. Be aware that using a value less than 1.0 is a
-#: (possibly significant) performance hit. If you want to dynamically
-#: change transparency of windows set dynamic_background_opacity to
-#: yes (this is off by default as it has a performance cost)
-
-dynamic_background_opacity no
-
-#: Allow changing of the background_opacity dynamically, using either
-#: keyboard shortcuts (increase_background_opacity and
-#: decrease_background_opacity) or the remote control facility.
-
-dim_opacity 0.75
-
-#: How much to dim text that has the DIM/FAINT attribute set. One
-#: means no dimming and zero means fully dimmed (i.e. invisible).
-
-selection_foreground #000000
-
-#: The foreground for text selected with the mouse. A value of none
-#: means to leave the color unchanged.
-
-selection_background #fffacd
-
-#: The background for text selected with the mouse.
-
-
-#: The 16 terminal colors. There are 8 basic colors, each color has a
-#: dull and bright version. You can also set the remaining colors from
-#: the 256 color table as color16 to color255.
-
-color0 #000000
-color8 #767676
-
-#: black
-
-color1 #cc0403
-color9 #f2201f
-
-#: red
-
-color2 #19cb00
-color10 #23fd00
-
-#: green
-
-color3 #cecb00
-color11 #fffd00
-
-#: yellow
-
-color4 #0d73cc
-color12 #1a8fff
-
-#: blue
-
-color5 #cb1ed1
-color13 #fd28ff
-
-#: magenta
-
-color6 #0dcdcd
-color14 #14ffff
-
-#: cyan
-
-color7 #dddddd
-color15 #ffffff
-
-#: white
-
-# mark1_foreground black
-
-#: Color for marks of type 1
-
-# mark1_background #98d3cb
-
-#: Color for marks of type 1 (light steel blue)
-
-# mark2_foreground black
-
-#: Color for marks of type 2
-
-# mark2_background #f2dcd3
-
-#: Color for marks of type 1 (beige)
-
-# mark3_foreground black
-
-#: Color for marks of type 3
-
-# mark3_background #f274bc
-
-#: Color for marks of type 1 (violet)
-
-#: }}}
-
-#: Advanced {{{
-
-shell .
-
-#: The shell program to execute. The default value of . means to use
-#: whatever shell is set as the default shell for the current user.
-#: Note that on macOS if you change this, you might need to add
-#: --login to ensure that the shell starts in interactive mode and
-#: reads its startup rc files.
-
-editor .
-
-#: The console editor to use when editing the kitty config file or
-#: similar tasks. A value of . means to use the environment variables
-#: VISUAL and EDITOR in that order. Note that this environment
-#: variable has to be set not just in your shell startup scripts but
-#: system-wide, otherwise kitty will not see it.
-
-close_on_child_death no
-
-#: Close the window when the child process (shell) exits. If no (the
-#: default), the terminal will remain open when the child exits as
-#: long as there are still processes outputting to the terminal (for
-#: example disowned or backgrounded processes). If yes, the window
-#: will close as soon as the child process exits. Note that setting it
-#: to yes means that any background processes still using the terminal
-#: can fail silently because their stdout/stderr/stdin no longer work.
-
-allow_remote_control no
-
-#: Allow other programs to control kitty. If you turn this on other
-#: programs can control all aspects of kitty, including sending text
-#: to kitty windows, opening new windows, closing windows, reading the
-#: content of windows, etc. Note that this even works over ssh
-#: connections. You can chose to either allow any program running
-#: within kitty to control it, with yes or only programs that connect
-#: to the socket specified with the kitty --listen-on command line
-#: option, if you use the value socket-only. The latter is useful if
-#: you want to prevent programs running on a remote computer over ssh
-#: from controlling kitty.
-
-# env
-
-#: Specify environment variables to set in all child processes. Note
-#: that environment variables are expanded recursively, so if you
-#: use::
-
-#: env MYVAR1=a
-#: env MYVAR2=${MYVAR1}/${HOME}/b
-
-#: The value of MYVAR2 will be a/<path to home directory>/b.
-
-update_check_interval 24
-
-#: Periodically check if an update to kitty is available. If an update
-#: is found a system notification is displayed informing you of the
-#: available update. The default is to check every 24 hrs, set to zero
-#: to disable.
-
-startup_session none
-
-#: Path to a session file to use for all kitty instances. Can be
-#: overridden by using the kitty --session command line option for
-#: individual instances. See
-#: https://sw.kovidgoyal.net/kitty/index.html#sessions in the kitty
-#: documentation for details. Note that relative paths are interpreted
-#: with respect to the kitty config directory. Environment variables
-#: in the path are expanded.
-
-clipboard_control write-clipboard write-primary
-
-#: Allow programs running in kitty to read and write from the
-#: clipboard. You can control exactly which actions are allowed. The
-#: set of possible actions is: write-clipboard read-clipboard write-
-#: primary read-primary. You can additionally specify no-append to
-#: disable kitty's protocol extension for clipboard concatenation. The
-#: default is to allow writing to the clipboard and primary selection
-#: with concatenation enabled. Note that enabling the read
-#: functionality is a security risk as it means that any program, even
-#: one running on a remote server via SSH can read your clipboard.
-
-term xterm-kitty
-
-#: The value of the TERM environment variable to set. Changing this
-#: can break many terminal programs, only change it if you know what
-#: you are doing, not because you read some advice on Stack Overflow
-#: to change it. The TERM variable is used by various programs to get
-#: information about the capabilities and behavior of the terminal. If
-#: you change it, depending on what programs you run, and how
-#: different the terminal you are changing it to is, various things
-#: from key-presses, to colors, to various advanced features may not
-#: work.
-
-#: }}}
-
-#: OS specific tweaks {{{
-
-macos_titlebar_color system
-
-#: Change the color of the kitty window's titlebar on macOS. A value
-#: of system means to use the default system color, a value of
-#: background means to use the background color of the currently
-#: active window and finally you can use an arbitrary color, such as
-#: #12af59 or red. WARNING: This option works by using a hack, as
-#: there is no proper Cocoa API for it. It sets the background color
-#: of the entire window and makes the titlebar transparent. As such it
-#: is incompatible with background_opacity. If you want to use both,
-#: you are probably better off just hiding the titlebar with
-#: hide_window_decorations.
-
-macos_option_as_alt no
-
-#: Use the option key as an alt key. With this set to no, kitty will
-#: use the macOS native Option+Key = unicode character behavior. This
-#: will break any Alt+key keyboard shortcuts in your terminal
-#: programs, but you can use the macOS unicode input technique. You
-#: can use the values: left, right, or both to use only the left,
-#: right or both Option keys as Alt, instead.
-
-macos_hide_from_tasks no
-
-#: Hide the kitty window from running tasks (Option+Tab) on macOS.
-
-macos_quit_when_last_window_closed no
-
-#: Have kitty quit when all the top-level windows are closed. By
-#: default, kitty will stay running, even with no open windows, as is
-#: the expected behavior on macOS.
-
-macos_window_resizable yes
-
-#: Disable this if you want kitty top-level (OS) windows to not be
-#: resizable on macOS.
-
-macos_thicken_font 0
-
-#: Draw an extra border around the font with the given width, to
-#: increase legibility at small font sizes. For example, a value of
-#: 0.75 will result in rendering that looks similar to sub-pixel
-#: antialiasing at common font sizes.
-
-macos_traditional_fullscreen no
-
-#: Use the traditional full-screen transition, that is faster, but
-#: less pretty.
-
-macos_show_window_title_in all
-
-#: Show or hide the window title in the macOS window or menu-bar. A
-#: value of window will show the title of the currently active window
-#: at the top of the macOS window. A value of menubar will show the
-#: title of the currently active window in the macOS menu-bar, making
-#: use of otherwise wasted space. all will show the title everywhere
-#: and none hides the title in the window and the menu-bar.
-
-macos_custom_beam_cursor no
-
-#: Enable/disable custom mouse cursor for macOS that is easier to see
-#: on both light and dark backgrounds. WARNING: this might make your
-#: mouse cursor invisible on dual GPU machines.
-
-linux_display_server auto
-
-#: Choose between Wayland and X11 backends. By default, an appropriate
-#: backend based on the system state is chosen automatically. Set it
-#: to x11 or wayland to force the choice.
-
-#: }}}
-
-#: Keyboard shortcuts {{{
-
-#: For a list of key names, see: GLFW keys
-#: <https://www.glfw.org/docs/latest/group__keys.html>. The name to
-#: use is the part after the GLFW_KEY_ prefix. For a list of modifier
-#: names, see: GLFW mods
-#: <https://www.glfw.org/docs/latest/group__mods.html>
-
-#: On Linux you can also use XKB key names to bind keys that are not
-#: supported by GLFW. See XKB keys
-#: <https://github.com/xkbcommon/libxkbcommon/blob/master/xkbcommon/xkbcommon-
-#: keysyms.h> for a list of key names. The name to use is the part
-#: after the XKB_KEY_ prefix. Note that you should only use an XKB key
-#: name for keys that are not present in the list of GLFW keys.
-
-#: Finally, you can use raw system key codes to map keys. To see the
-#: system key code for a key, start kitty with the kitty --debug-
-#: keyboard option. Then kitty will output some debug text for every
-#: key event. In that text look for ``native_code`` the value of that
-#: becomes the key name in the shortcut. For example:
-
-#: .. code-block:: none
-
-#: on_key_input: glfw key: 65 native_code: 0x61 action: PRESS mods: 0x0 text: 'a'
-
-#: Here, the key name for the A key is 0x61 and you can use it with::
-
-#: map ctrl+0x61 something
-
-#: to map ctrl+a to something.
-
-#: You can use the special action no_op to unmap a keyboard shortcut
-#: that is assigned in the default configuration::
-
-#: map kitty_mod+space no_op
-
-#: You can combine multiple actions to be triggered by a single
-#: shortcut, using the syntax below::
-
-#: map key combine <separator> action1 <separator> action2 <separator> action3 ...
-
-#: For example::
-
-#: map kitty_mod+e combine : new_window : next_layout
-
-#: this will create a new window and switch to the next available
-#: layout
-
-#: You can use multi-key shortcuts using the syntax shown below::
-
-#: map key1>key2>key3 action
-
-#: For example::
-
-#: map ctrl+f>2 set_font_size 20
-
-kitty_mod ctrl+shift
-
-#: The value of kitty_mod is used as the modifier for all default
-#: shortcuts, you can change it in your kitty.conf to change the
-#: modifiers for all the default shortcuts.
-
-clear_all_shortcuts no
-
-#: You can have kitty remove all shortcut definition seen up to this
-#: point. Useful, for instance, to remove the default shortcuts.
-
-# kitten_alias hints hints --hints-offset=0
-
-#: You can create aliases for kitten names, this allows overriding the
-#: defaults for kitten options and can also be used to shorten
-#: repeated mappings of the same kitten with a specific group of
-#: options. For example, the above alias changes the default value of
-#: kitty +kitten hints --hints-offset to zero for all mappings,
-#: including the builtin ones.
-
-#: Clipboard {{{
-
-map kitty_mod+c copy_to_clipboard
-
-#: There is also a copy_or_interrupt action that can be optionally
-#: mapped to Ctrl+c. It will copy only if there is a selection and
-#: send an interrupt otherwise.
-
-map kitty_mod+v paste_from_clipboard
-map kitty_mod+s paste_from_selection
-map shift+insert paste_from_selection
-map kitty_mod+o pass_selection_to_program
-
-#: You can also pass the contents of the current selection to any
-#: program using pass_selection_to_program. By default, the system's
-#: open program is used, but you can specify your own, the selection
-#: will be passed as a command line argument to the program, for
-#: example::
-
-#: map kitty_mod+o pass_selection_to_program firefox
-
-#: You can pass the current selection to a terminal program running in
-#: a new kitty window, by using the @selection placeholder::
-
-#: map kitty_mod+y new_window less @selection
-
-#: }}}
-
-#: Scrolling {{{
-
-map kitty_mod+up scroll_line_up
-map kitty_mod+k scroll_line_up
-map kitty_mod+down scroll_line_down
-map kitty_mod+j scroll_line_down
-map kitty_mod+page_up scroll_page_up
-map kitty_mod+page_down scroll_page_down
-map kitty_mod+home scroll_home
-map kitty_mod+end scroll_end
-map kitty_mod+h show_scrollback
-
-#: You can pipe the contents of the current screen + history buffer as
-#: STDIN to an arbitrary program using the ``launch`` function. For
-#: example, the following opens the scrollback buffer in less in an
-#: overlay window::
-
-#: map f1 launch --stdin-source=@screen_scrollback --stdin-add-formatting --type=overlay less +G -R
-
-#: For more details on piping screen and buffer contents to external
-#: programs, see launch.
-
-#: }}}
-
-#: Window management {{{
-
-map kitty_mod+enter new_window
-
-#: You can open a new window running an arbitrary program, for
-#: example::
-
-#: map kitty_mod+y launch mutt
-
-#: You can open a new window with the current working directory set to
-#: the working directory of the current window using::
-
-#: map ctrl+alt+enter launch --cwd=current
-
-#: You can open a new window that is allowed to control kitty via the
-#: kitty remote control facility by prefixing the command line with @.
-#: Any programs running in that window will be allowed to control
-#: kitty. For example::
-
-#: map ctrl+enter launch --allow-remote-control some_program
-
-#: You can open a new window next to the currently active window or as
-#: the first window, with::
-
-#: map ctrl+n launch --location=neighbor some_program
-#: map ctrl+f launch --location=first some_program
-
-#: For more details, see launch.
-
-map kitty_mod+n new_os_window
-
-#: Works like new_window above, except that it opens a top level OS
-#: kitty window. In particular you can use new_os_window_with_cwd to
-#: open a window with the current working directory.
-
-map kitty_mod+w close_window
-map kitty_mod+] next_window
-map kitty_mod+[ previous_window
-map kitty_mod+f move_window_forward
-map kitty_mod+b move_window_backward
-map kitty_mod+` move_window_to_top
-map kitty_mod+r start_resizing_window
-map kitty_mod+1 first_window
-map kitty_mod+2 second_window
-map kitty_mod+3 third_window
-map kitty_mod+4 fourth_window
-map kitty_mod+5 fifth_window
-map kitty_mod+6 sixth_window
-map kitty_mod+7 seventh_window
-map kitty_mod+8 eighth_window
-map kitty_mod+9 ninth_window
-map kitty_mod+0 tenth_window
-#: }}}
-
-#: Tab management {{{
-
-map kitty_mod+right next_tab
-map kitty_mod+left previous_tab
-map kitty_mod+t new_tab
-map kitty_mod+q close_tab
-map kitty_mod+. move_tab_forward
-map kitty_mod+, move_tab_backward
-map kitty_mod+alt+t set_tab_title
-
-#: You can also create shortcuts to go to specific tabs, with 1 being
-#: the first tab, 2 the second tab and -1 being the previously active
-#: tab, and any number larger than the last tab being the last tab::
-
-#: map ctrl+alt+1 goto_tab 1
-#: map ctrl+alt+2 goto_tab 2
-
-#: Just as with new_window above, you can also pass the name of
-#: arbitrary commands to run when using new_tab and use
-#: new_tab_with_cwd. Finally, if you want the new tab to open next to
-#: the current tab rather than at the end of the tabs list, use::
-
-#: map ctrl+t new_tab !neighbor [optional cmd to run]
-#: }}}
-
-#: Layout management {{{
-
-map kitty_mod+l next_layout
-
-#: You can also create shortcuts to switch to specific layouts::
-
-#: map ctrl+alt+t goto_layout tall
-#: map ctrl+alt+s goto_layout stack
-
-#: Similarly, to switch back to the previous layout::
-
-#: map ctrl+alt+p last_used_layout
-#: }}}
-
-#: Font sizes {{{
-
-#: You can change the font size for all top-level kitty OS windows at
-#: a time or only the current one.
-
-map kitty_mod+equal change_font_size all +2.0
-map kitty_mod+minus change_font_size all -2.0
-map kitty_mod+backspace change_font_size all 0
-
-#: To setup shortcuts for specific font sizes::
-
-#: map kitty_mod+f6 change_font_size all 10.0
-
-#: To setup shortcuts to change only the current OS window's font
-#: size::
-
-#: map kitty_mod+f6 change_font_size current 10.0
-#: }}}
-
-#: Select and act on visible text {{{
-
-#: Use the hints kitten to select text and either pass it to an
-#: external program or insert it into the terminal or copy it to the
-#: clipboard.
-
-map kitty_mod+e kitten hints
-
-#: Open a currently visible URL using the keyboard. The program used
-#: to open the URL is specified in open_url_with.
-
-map kitty_mod+p>f kitten hints --type path --program -
-
-#: Select a path/filename and insert it into the terminal. Useful, for
-#: instance to run git commands on a filename output from a previous
-#: git command.
-
-map kitty_mod+p>shift+f kitten hints --type path
-
-#: Select a path/filename and open it with the default open program.
-
-map kitty_mod+p>l kitten hints --type line --program -
-
-#: Select a line of text and insert it into the terminal. Use for the
-#: output of things like: ls -1
-
-map kitty_mod+p>w kitten hints --type word --program -
-
-#: Select words and insert into terminal.
-
-map kitty_mod+p>h kitten hints --type hash --program -
-
-#: Select something that looks like a hash and insert it into the
-#: terminal. Useful with git, which uses sha1 hashes to identify
-#: commits
-
-map kitty_mod+p>n kitten hints --type linenum
-
-#: Select something that looks like filename:linenum and open it in
-#: vim at the specified line number.
-
-
-#: The hints kitten has many more modes of operation that you can map
-#: to different shortcuts. For a full description see kittens/hints.
-#: }}}
-
-#: Miscellaneous {{{
-
-map kitty_mod+f11 toggle_fullscreen
-map kitty_mod+f10 toggle_maximized
-map kitty_mod+u kitten unicode_input
-map kitty_mod+f2 edit_config_file
-map kitty_mod+escape kitty_shell window
-
-#: Open the kitty shell in a new window/tab/overlay/os_window to
-#: control kitty using commands.
-
-map kitty_mod+a>m set_background_opacity +0.1
-map kitty_mod+a>l set_background_opacity -0.1
-map kitty_mod+a>1 set_background_opacity 1
-map kitty_mod+a>d set_background_opacity default
-map kitty_mod+delete clear_terminal reset active
-
-#: You can create shortcuts to clear/reset the terminal. For example::
-
-#: # Reset the terminal
-#: map kitty_mod+f9 clear_terminal reset active
-#: # Clear the terminal screen by erasing all contents
-#: map kitty_mod+f10 clear_terminal clear active
-#: # Clear the terminal scrollback by erasing it
-#: map kitty_mod+f11 clear_terminal scrollback active
-#: # Scroll the contents of the screen into the scrollback
-#: map kitty_mod+f12 clear_terminal scroll active
-
-#: If you want to operate on all windows instead of just the current
-#: one, use all instead of active.
-
-#: It is also possible to remap Ctrl+L to both scroll the current
-#: screen contents into the scrollback buffer and clear the screen,
-#: instead of just clearing the screen::
-
-#: map ctrl+l combine : clear_terminal scroll active : send_text normal,application \x0c
-
-
-#: You can tell kitty to send arbitrary (UTF-8) encoded text to the
-#: client program when pressing specified shortcut keys. For example::
-
-#: map ctrl+alt+a send_text all Special text
-
-#: This will send "Special text" when you press the ctrl+alt+a key
-#: combination. The text to be sent is a python string literal so you
-#: can use escapes like \x1b to send control codes or \u21fb to send
-#: unicode characters (or you can just input the unicode characters
-#: directly as UTF-8 text). The first argument to send_text is the
-#: keyboard modes in which to activate the shortcut. The possible
-#: values are normal or application or kitty or a comma separated
-#: combination of them. The special keyword all means all modes. The
-#: modes normal and application refer to the DECCKM cursor key mode
-#: for terminals, and kitty refers to the special kitty extended
-#: keyboard protocol.
-
-#: Another example, that outputs a word and then moves the cursor to
-#: the start of the line (same as pressing the Home key)::
-
-#: map ctrl+alt+a send_text normal Word\x1b[H
-#: map ctrl+alt+a send_text application Word\x1bOH
-
-#: }}}
-
-# }}}
-#
-include dracula.conf
-
-# Zoom
-map alt+3 disable_ligatures_in tab cursor
-map kitty_mod+plus change_font_size all +2.0
-map kitty_mod+minus change_font_size all -2.0
-
-
-
-# extras
-# Open new tab in current working directory
-map kitty_mod+t launch --cwd=current --type=tab
-#map ctrl+alt+shift+t launch --type=tab
diff --git a/konsole/Default.profile b/konsole/Default.profile
deleted file mode 100644
index 33010ec..0000000
--- a/konsole/Default.profile
+++ /dev/null
@@ -1,17 +0,0 @@
-[Appearance]
-BoldIntense=true
-ColorScheme=Dracula-Linux
-Font=B612 Mono,12,-1,5,50,0,0,0,0,0,Regular
-LineSpacing=1
-UseFontLineChararacters=false
-
-[General]
-Name=Default
-Parent=FALLBACK/
-
-[Scrolling]
-HistoryMode=2
-
-[Terminal Features]
-FlowControlEnabled=false
-UrlHintsModifiers=0
diff --git a/konsole/Dracula-Linux.colorscheme b/konsole/Dracula-Linux.colorscheme
deleted file mode 100644
index b59cabb..0000000
--- a/konsole/Dracula-Linux.colorscheme
+++ /dev/null
@@ -1,95 +0,0 @@
-[Background]
-Color=40,42,54
-
-[BackgroundFaint]
-Color=40,42,54
-
-[BackgroundIntense]
-Color=40,42,54
-
-[Color0]
-Color=40,42,54
-
-[Color0Faint]
-Color=40,42,54
-
-[Color0Intense]
-Color=40,42,54
-
-[Color1]
-Color=255,85,85
-
-[Color1Faint]
-Color=255,85,85
-
-[Color1Intense]
-Color=255,85,85
-
-[Color2]
-Color=80,250,123
-
-[Color2Faint]
-Color=80,250,123
-
-[Color2Intense]
-Color=80,250,123
-
-[Color3]
-Color=241,250,140
-
-[Color3Faint]
-Color=241,250,140
-
-[Color3Intense]
-Color=241,250,140
-
-[Color4]
-Color=98,114,164
-
-[Color4Faint]
-Color=98,114,164
-
-[Color4Intense]
-Color=98,114,164
-
-[Color5]
-Color=255,121,198
-
-[Color5Faint]
-Color=255,121,198
-
-[Color5Intense]
-Color=255,121,198
-
-[Color6]
-Color=139,233,253
-
-[Color6Faint]
-Color=139,233,253
-
-[Color6Intense]
-Color=139,233,253
-
-[Color7]
-Color=248,248,242
-
-[Color7Faint]
-Color=248,248,242
-
-[Color7Intense]
-Color=248,248,242
-
-[Foreground]
-Color=248,248,242
-
-[ForegroundFaint]
-Color=248,248,242
-
-[ForegroundIntense]
-Color=248,248,242
-
-[General]
-Blur=false
-Description=Dracula-Linux
-Opacity=1
-Wallpaper=
diff --git a/nvim/nvim/autoload/plug.vim b/nvim/nvim/autoload/plug.vim
index 652caa8..5c910ca 100644
--- a/nvim/nvim/autoload/plug.vim
+++ b/nvim/nvim/autoload/plug.vim
@@ -1,67 +1,36 @@
" vim-plug: Vim plugin manager
" ============================
"
-" Download plug.vim and put it in ~/.vim/autoload
+" 1. Download plug.vim and put it in 'autoload' directory
"
+" # Vim
" curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
" https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
"
-" Edit your .vimrc
+" # Neovim
+" sh -c 'curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim --create-dirs \
+" https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'
"
-" call plug#begin('~/.vim/plugged')
+" 2. Add a vim-plug section to your ~/.vimrc (or ~/.config/nvim/init.vim for Neovim)
"
-" " Make sure you use single quotes
+" call plug#begin()
"
-" " Shorthand notation; fetches https://github.com/junegunn/vim-easy-align
-" Plug 'junegunn/vim-easy-align'
+" " List your plugins here
+" Plug 'tpope/vim-sensible'
"
-" " Any valid git URL is allowed
-" Plug 'https://github.com/junegunn/vim-github-dashboard.git'
-"
-" " Multiple Plug commands can be written in a single line using | separators
-" Plug 'SirVer/ultisnips' | Plug 'honza/vim-snippets'
-"
-" " On-demand loading
-" Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' }
-" Plug 'tpope/vim-fireplace', { 'for': 'clojure' }
-"
-" " Using a non-default branch
-" Plug 'rdnetto/YCM-Generator', { 'branch': 'stable' }
-"
-" " Using a tagged release; wildcard allowed (requires git 1.9.2 or above)
-" Plug 'fatih/vim-go', { 'tag': '*' }
-"
-" " Plugin options
-" Plug 'nsf/gocode', { 'tag': 'v.20150303', 'rtp': 'vim' }
-"
-" " Plugin outside ~/.vim/plugged with post-update hook
-" Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' }
-"
-" " Unmanaged plugin (manually installed and updated)
-" Plug '~/my-prototype-plugin'
-"
-" " Initialize plugin system
" call plug#end()
"
-" Then reload .vimrc and :PlugInstall to install plugins.
-"
-" Plug options:
+" 3. Reload the file or restart Vim, then you can,
"
-"| Option | Description |
-"| ----------------------- | ------------------------------------------------ |
-"| `branch`/`tag`/`commit` | Branch/tag/commit of the repository to use |
-"| `rtp` | Subdirectory that contains Vim plugin |
-"| `dir` | Custom directory for the plugin |
-"| `as` | Use different name for the plugin |
-"| `do` | Post-update hook (string or funcref) |
-"| `on` | On-demand loading: Commands or `<Plug>`-mappings |
-"| `for` | On-demand loading: File types |
-"| `frozen` | Do not update unless explicitly specified |
+" :PlugInstall to install plugins
+" :PlugUpdate to update plugins
+" :PlugDiff to review the changes from the last update
+" :PlugClean to remove plugins no longer in the list
"
-" More information: https://github.com/junegunn/vim-plug
+" For more information, see https://github.com/junegunn/vim-plug
"
"
-" Copyright (c) 2017 Junegunn Choi
+" Copyright (c) 2024 Junegunn Choi
"
" MIT License
"
@@ -238,7 +207,6 @@ endfunction
function! plug#begin(...)
if a:0 > 0
- let s:plug_home_org = a:1
let home = s:path(s:plug_fnamemodify(s:plug_expand(a:1), ':p'))
elseif exists('g:plug_home')
let home = s:path(g:plug_home)
@@ -391,6 +359,9 @@ function! plug#end()
if !empty(types)
augroup filetypedetect
call s:source(s:rtp(plug), 'ftdetect/**/*.vim', 'after/ftdetect/**/*.vim')
+ if has('nvim-0.5.0')
+ call s:source(s:rtp(plug), 'ftdetect/**/*.lua', 'after/ftdetect/**/*.lua')
+ endif
augroup END
endif
for type in types
@@ -438,6 +409,9 @@ endfunction
function! s:load_plugin(spec)
call s:source(s:rtp(a:spec), 'plugin/**/*.vim', 'after/plugin/**/*.vim')
+ if has('nvim-0.5.0')
+ call s:source(s:rtp(a:spec), 'plugin/**/*.lua', 'after/plugin/**/*.lua')
+ endif
endfunction
function! s:reload_plugins()
@@ -655,6 +629,9 @@ function! s:lod(names, types, ...)
let rtp = s:rtp(g:plugs[name])
for dir in a:types
call s:source(rtp, dir.'/**/*.vim')
+ if has('nvim-0.5.0') " see neovim#14686
+ call s:source(rtp, dir.'/**/*.lua')
+ endif
endfor
if a:0
if !s:source(rtp, a:1) && !empty(s:glob(rtp, a:2))
@@ -806,10 +783,11 @@ endfunction
function! s:syntax()
syntax clear
syntax region plug1 start=/\%1l/ end=/\%2l/ contains=plugNumber
- syntax region plug2 start=/\%2l/ end=/\%3l/ contains=plugBracket,plugX
+ syntax region plug2 start=/\%2l/ end=/\%3l/ contains=plugBracket,plugX,plugAbort
syn match plugNumber /[0-9]\+[0-9.]*/ contained
syn match plugBracket /[[\]]/ contained
syn match plugX /x/ contained
+ syn match plugAbort /\~/ contained
syn match plugDash /^-\{1}\ /
syn match plugPlus /^+/
syn match plugStar /^*/
@@ -834,6 +812,7 @@ function! s:syntax()
hi def link plug2 Repeat
hi def link plugH2 Type
hi def link plugX Exception
+ hi def link plugAbort Ignore
hi def link plugBracket Structure
hi def link plugNumber Number
@@ -869,7 +848,7 @@ function! s:lastline(msg)
endfunction
function! s:new_window()
- execute get(g:, 'plug_window', 'vertical topleft new')
+ execute get(g:, 'plug_window', '-tabnew')
endfunction
function! s:plug_window_exists()
@@ -931,7 +910,7 @@ function! s:prepare(...)
endif
endfor
- call s:job_abort()
+ call s:job_abort(0)
if s:switch_in()
if b:plug_preview == 1
pc
@@ -967,6 +946,8 @@ function! s:close_pane()
if b:plug_preview == 1
pc
let b:plug_preview = -1
+ elseif exists('s:jobs') && !empty(s:jobs)
+ call s:job_abort(1)
else
bd
endif
@@ -1031,6 +1012,11 @@ function! s:is_updated(dir)
endfunction
function! s:do(pull, force, todo)
+ if has('nvim')
+ " Reset &rtp to invalidate Neovim cache of loaded Lua modules
+ " See https://github.com/junegunn/vim-plug/pull/1157#issuecomment-1809226110
+ let &rtp = &rtp
+ endif
for [name, spec] in items(a:todo)
if !isdirectory(spec.dir)
continue
@@ -1092,12 +1078,14 @@ endfunction
function! s:checkout(spec)
let sha = a:spec.commit
let output = s:git_revision(a:spec.dir)
+ let error = 0
if !empty(output) && !s:hash_match(sha, s:lines(output)[0])
let credential_helper = s:git_version_requirement(2) ? '-c credential.helper= ' : ''
let output = s:system(
\ 'git '.credential_helper.'fetch --depth 999999 && git checkout '.plug#shellescape(sha).' --', a:spec.dir)
+ let error = v:shell_error
endif
- return output
+ return [output, error]
endfunction
function! s:finish(pull)
@@ -1158,7 +1146,7 @@ function! s:update_impl(pull, force, args) abort
let threads = (len(args) > 0 && args[-1] =~ '^[1-9][0-9]*$') ?
\ remove(args, -1) : get(g:, 'plug_threads', 16)
- let managed = filter(copy(g:plugs), 's:is_managed(v:key)')
+ let managed = filter(deepcopy(g:plugs), 's:is_managed(v:key)')
let todo = empty(args) ? filter(managed, '!v:val.frozen || !isdirectory(v:val.dir)') :
\ filter(managed, 'index(args, v:key) >= 0')
@@ -1292,9 +1280,11 @@ function! s:update_finish()
if !pos
continue
endif
+ let out = ''
+ let error = 0
if has_key(spec, 'commit')
call s:log4(name, 'Checking out '.spec.commit)
- let out = s:checkout(spec)
+ let [out, error] = s:checkout(spec)
elseif has_key(spec, 'tag')
let tag = spec.tag
if tag =~ '\*'
@@ -1307,19 +1297,16 @@ function! s:update_finish()
endif
call s:log4(name, 'Checking out '.tag)
let out = s:system('git checkout -q '.plug#shellescape(tag).' -- 2>&1', spec.dir)
- else
- let branch = s:git_origin_branch(spec)
- call s:log4(name, 'Merging origin/'.s:esc(branch))
- let out = s:system('git checkout -q '.plug#shellescape(branch).' -- 2>&1'
- \. (has_key(s:update.new, name) ? '' : ('&& git merge --ff-only '.plug#shellescape('origin/'.branch).' 2>&1')), spec.dir)
+ let error = v:shell_error
endif
- if !v:shell_error && filereadable(spec.dir.'/.gitmodules') &&
+ if !error && filereadable(spec.dir.'/.gitmodules') &&
\ (s:update.force || has_key(s:update.new, name) || s:is_updated(spec.dir))
call s:log4(name, 'Updating submodules. This may take a while.')
let out .= s:bang('git submodule update --init --recursive'.s:submodule_opt.' 2>&1', spec.dir)
+ let error = v:shell_error
endif
let msg = s:format_message(v:shell_error ? 'x': '-', name, out)
- if v:shell_error
+ if error
call add(s:update.errors, name)
call s:regress_bar()
silent execute pos 'd _'
@@ -1343,7 +1330,12 @@ function! s:update_finish()
endif
endfunction
-function! s:job_abort()
+function! s:mark_aborted(name, message)
+ let attrs = { 'running': 0, 'error': 1, 'abort': 1, 'lines': [a:message] }
+ let s:jobs[a:name] = extend(get(s:jobs, a:name, {}), attrs)
+endfunction
+
+function! s:job_abort(cancel)
if (!s:nvim && !s:vim8) || !exists('s:jobs')
return
endif
@@ -1357,8 +1349,18 @@ function! s:job_abort()
if j.new
call s:rm_rf(g:plugs[name].dir)
endif
+ if a:cancel
+ call s:mark_aborted(name, 'Aborted')
+ endif
endfor
- let s:jobs = {}
+
+ if a:cancel
+ for todo in values(s:update.todo)
+ let todo.abort = 1
+ endfor
+ else
+ let s:jobs = {}
+ endif
endfunction
function! s:last_non_empty_line(lines)
@@ -1372,6 +1374,16 @@ function! s:last_non_empty_line(lines)
return ''
endfunction
+function! s:bullet_for(job, ...)
+ if a:job.running
+ return a:job.new ? '+' : '*'
+ endif
+ if get(a:job, 'abort', 0)
+ return '~'
+ endif
+ return a:job.error ? 'x' : get(a:000, 0, '-')
+endfunction
+
function! s:job_out_cb(self, data) abort
let self = a:self
let data = remove(self.lines, -1) . a:data
@@ -1380,9 +1392,10 @@ function! s:job_out_cb(self, data) abort
" To reduce the number of buffer updates
let self.tick = get(self, 'tick', -1) + 1
if !self.running || self.tick % len(s:jobs) == 0
- let bullet = self.running ? (self.new ? '+' : '*') : (self.error ? 'x' : '-')
let result = self.error ? join(self.lines, "\n") : s:last_non_empty_line(self.lines)
- call s:log(bullet, self.name, result)
+ if len(result)
+ call s:log(s:bullet_for(self), self.name, result)
+ endif
endif
endfunction
@@ -1395,7 +1408,7 @@ endfunction
function! s:job_cb(fn, job, ch, data)
if !s:plug_window_exists() " plug window closed
- return s:job_abort()
+ return s:job_abort(0)
endif
call call(a:fn, [a:job, a:data])
endfunction
@@ -1406,16 +1419,17 @@ function! s:nvim_cb(job_id, data, event) dict abort
\ s:job_cb('s:job_exit_cb', self, 0, a:data)
endfunction
-function! s:spawn(name, cmd, opts)
- let job = { 'name': a:name, 'running': 1, 'error': 0, 'lines': [''],
- \ 'new': get(a:opts, 'new', 0) }
+function! s:spawn(name, spec, queue, opts)
+ let job = { 'name': a:name, 'spec': a:spec, 'running': 1, 'error': 0, 'lines': [''],
+ \ 'new': get(a:opts, 'new', 0), 'queue': copy(a:queue) }
+ let Item = remove(job.queue, 0)
+ let argv = type(Item) == s:TYPE.funcref ? call(Item, [a:spec]) : Item
let s:jobs[a:name] = job
if s:nvim
if has_key(a:opts, 'dir')
let job.cwd = a:opts.dir
endif
- let argv = a:cmd
call extend(job, {
\ 'on_stdout': function('s:nvim_cb'),
\ 'on_stderr': function('s:nvim_cb'),
@@ -1431,7 +1445,7 @@ function! s:spawn(name, cmd, opts)
\ 'Invalid arguments (or job table is full)']
endif
elseif s:vim8
- let cmd = join(map(copy(a:cmd), 'plug#shellescape(v:val, {"script": 0})'))
+ let cmd = join(map(copy(argv), 'plug#shellescape(v:val, {"script": 0})'))
if has_key(a:opts, 'dir')
let cmd = s:with_cd(cmd, a:opts.dir, 0)
endif
@@ -1451,27 +1465,33 @@ function! s:spawn(name, cmd, opts)
let job.lines = ['Failed to start job']
endif
else
- let job.lines = s:lines(call('s:system', has_key(a:opts, 'dir') ? [a:cmd, a:opts.dir] : [a:cmd]))
+ let job.lines = s:lines(call('s:system', has_key(a:opts, 'dir') ? [argv, a:opts.dir] : [argv]))
let job.error = v:shell_error != 0
let job.running = 0
endif
endfunction
function! s:reap(name)
- let job = s:jobs[a:name]
+ let job = remove(s:jobs, a:name)
if job.error
call add(s:update.errors, a:name)
elseif get(job, 'new', 0)
let s:update.new[a:name] = 1
endif
- let s:update.bar .= job.error ? 'x' : '='
- let bullet = job.error ? 'x' : '-'
+ let more = len(get(job, 'queue', []))
let result = job.error ? join(job.lines, "\n") : s:last_non_empty_line(job.lines)
- call s:log(bullet, a:name, empty(result) ? 'OK' : result)
- call s:bar()
+ if len(result)
+ call s:log(s:bullet_for(job), a:name, result)
+ endif
- call remove(s:jobs, a:name)
+ if !job.error && more
+ let job.spec.queue = job.queue
+ let s:update.todo[a:name] = job.spec
+ else
+ let s:update.bar .= s:bullet_for(job, '=')
+ call s:bar()
+ endif
endfunction
function! s:bar()
@@ -1524,6 +1544,16 @@ function! s:update_vim()
call s:tick()
endfunction
+function! s:checkout_command(spec)
+ let a:spec.branch = s:git_origin_branch(a:spec)
+ return ['git', 'checkout', '-q', a:spec.branch, '--']
+endfunction
+
+function! s:merge_command(spec)
+ let a:spec.branch = s:git_origin_branch(a:spec)
+ return ['git', 'merge', '--ff-only', 'origin/'.a:spec.branch]
+endfunction
+
function! s:tick()
let pull = s:update.pull
let prog = s:progress_opt(s:nvim || s:vim8)
@@ -1538,13 +1568,24 @@ while 1 " Without TCO, Vim stack is bound to explode
let name = keys(s:update.todo)[0]
let spec = remove(s:update.todo, name)
- let new = empty(globpath(spec.dir, '.git', 1))
+ if get(spec, 'abort', 0)
+ call s:mark_aborted(name, 'Skipped')
+ call s:reap(name)
+ continue
+ endif
- call s:log(new ? '+' : '*', name, pull ? 'Updating ...' : 'Installing ...')
- redraw
+ let queue = get(spec, 'queue', [])
+ let new = empty(globpath(spec.dir, '.git', 1))
+
+ if empty(queue)
+ call s:log(new ? '+' : '*', name, pull ? 'Updating ...' : 'Installing ...')
+ redraw
+ endif
let has_tag = has_key(spec, 'tag')
- if !new
+ if len(queue)
+ call s:spawn(name, spec, queue, { 'dir': spec.dir })
+ elseif !new
let [error, _] = s:git_validate(spec, 0)
if empty(error)
if pull
@@ -1555,7 +1596,11 @@ while 1 " Without TCO, Vim stack is bound to explode
if !empty(prog)
call add(cmd, prog)
endif
- call s:spawn(name, cmd, { 'dir': spec.dir })
+ let queue = [cmd, split('git remote set-head origin -a')]
+ if !has_tag && !has_key(spec, 'commit')
+ call extend(queue, [function('s:checkout_command'), function('s:merge_command')])
+ endif
+ call s:spawn(name, spec, queue, { 'dir': spec.dir })
else
let s:jobs[name] = { 'running': 0, 'lines': ['Already installed'], 'error': 0 }
endif
@@ -1570,7 +1615,7 @@ while 1 " Without TCO, Vim stack is bound to explode
if !empty(prog)
call add(cmd, prog)
endif
- call s:spawn(name, extend(cmd, [spec.uri, s:trim(spec.dir)]), { 'new': 1 })
+ call s:spawn(name, spec, [extend(cmd, [spec.uri, s:trim(spec.dir)]), function('s:checkout_command'), function('s:merge_command')], { 'new': 1 })
endif
if !s:jobs[name].running
@@ -2269,7 +2314,10 @@ endfunction
function! s:with_cd(cmd, dir, ...)
let script = a:0 > 0 ? a:1 : 1
- return printf('cd%s %s && %s', s:is_win ? ' /d' : '', plug#shellescape(a:dir, {'script': script}), a:cmd)
+ let pwsh = s:is_powershell(&shell)
+ let cd = s:is_win && !pwsh ? 'cd /d' : 'cd'
+ let sep = pwsh ? ';' : '&&'
+ return printf('%s %s %s %s', cd, plug#shellescape(a:dir, {'script': script, 'shell': &shell}), sep, a:cmd)
endfunction
function! s:system(cmd, ...)
@@ -2346,18 +2394,21 @@ function! s:git_validate(spec, check_branch)
\ current_branch, origin_branch)
endif
if empty(err)
- let [ahead, behind] = split(s:lastline(s:system([
- \ 'git', 'rev-list', '--count', '--left-right',
- \ printf('HEAD...origin/%s', origin_branch)
- \ ], a:spec.dir)), '\t')
- if !v:shell_error && ahead
- if behind
+ let ahead_behind = split(s:lastline(s:system([
+ \ 'git', 'rev-list', '--count', '--left-right',
+ \ printf('HEAD...origin/%s', origin_branch)
+ \ ], a:spec.dir)), '\t')
+ if v:shell_error || len(ahead_behind) != 2
+ let err = "Failed to compare with the origin. The default branch might have changed.\nPlugClean required."
+ else
+ let [ahead, behind] = ahead_behind
+ if ahead && behind
" Only mention PlugClean if diverged, otherwise it's likely to be
" pushable (and probably not that messed up).
let err = printf(
\ "Diverged from origin/%s (%d commit(s) ahead and %d commit(s) behind!\n"
\ .'Backup local changes and run PlugClean and PlugUpdate to reinstall it.', origin_branch, ahead, behind)
- else
+ elseif ahead
let err = printf("Ahead of origin/%s by %d commit(s).\n"
\ .'Cannot update until local changes are pushed.',
\ origin_branch, ahead)
@@ -2389,7 +2440,7 @@ function! s:clean(force)
let errs = {}
let [cnt, total] = [0, len(g:plugs)]
for [name, spec] in items(g:plugs)
- if !s:is_managed(name)
+ if !s:is_managed(name) || get(spec, 'frozen', 0)
call add(dirs, spec.dir)
else
let [err, clean] = s:git_validate(spec, 1)
@@ -2637,8 +2688,8 @@ function! s:preview_commit()
return
endif
- if exists('g:plug_pwindow') && !s:is_preview_window_open()
- execute g:plug_pwindow
+ if !s:is_preview_window_open()
+ execute get(g:, 'plug_pwindow', 'vertical rightbelow new')
execute 'e' title
else
execute 'pedit' title
diff --git a/nvim/nvim/init.lua b/nvim/nvim/init.lua
index 9428c32..fd6d1eb 100644
--- a/nvim/nvim/init.lua
+++ b/nvim/nvim/init.lua
@@ -7,6 +7,7 @@ vim.fn["plug#begin"]()
Plug("nvim-treesitter/nvim-treesitter")
Plug("julienvincent/nvim-paredit") -- Some paredit commands
Plug("windwp/nvim-autopairs") -- Autobalance parens
+ Plug("lewis6991/gitsigns.nvim")
Plug('luizribeiro/vim-cooklang')
Plug('Mofiqul/dracula.nvim')
Plug("othree/html5.vim")
@@ -118,7 +119,8 @@ vim.api.nvim_create_autocmd({ "BufEnter" }, {
require'nvim-treesitter.configs'.setup {
-- A list of parser names, or "all"
ensure_installed = { "c", "cpp", "python", "scheme", "javascript", "fennel",
- "zig", "clojure", "vimdoc", "vim", "bash", "markdown", "markdown_inline" },
+ "zig", "clojure", "vimdoc", "vim", "bash", "markdown", "markdown_inline",
+ "ledger"},
-- Install parsers synchronously (only applied to `ensure_installed`)
sync_install = false,
@@ -157,3 +159,5 @@ require 'mappings'
require 'highlight'
require 'colors'
require 'parens'
+require 'git'
+require 'ledger'
diff --git a/nvim/nvim/lua/git.lua b/nvim/nvim/lua/git.lua
new file mode 100644
index 0000000..95d4931
--- /dev/null
+++ b/nvim/nvim/lua/git.lua
@@ -0,0 +1,45 @@
+local gitsigns = require 'gitsigns'
+gitsigns.setup({
+ on_attach = function(bufnr)
+ local function map(mode, l, r, opts)
+ opts = opts or {}
+ opts.buffer = bufnr
+ vim.keymap.set(mode, l, r, opts)
+ end
+
+ -- Navigation
+ map('n', ']c', function()
+ if vim.wo.diff then
+ vim.cmd.normal({']c', bang = true})
+ else
+ gitsigns.nav_hunk('next')
+ end
+ end)
+
+ map('n', '[c', function()
+ if vim.wo.diff then
+ vim.cmd.normal({'[c', bang = true})
+ else
+ gitsigns.nav_hunk('prev')
+ end
+ end)
+
+ -- Actions
+ map('n', '<leader>hs', gitsigns.stage_hunk)
+ map('n', '<leader>hr', gitsigns.reset_hunk)
+ map('v', '<leader>hs', function() gitsigns.stage_hunk {vim.fn.line('.'), vim.fn.line('v')} end)
+ map('v', '<leader>hr', function() gitsigns.reset_hunk {vim.fn.line('.'), vim.fn.line('v')} end)
+ -- map('n', '<leader>hS', gitsigns.stage_buffer)
+ map('n', '<leader>hu', gitsigns.undo_stage_hunk)
+ -- map('n', '<leader>hR', gitsigns.reset_buffer)
+ map('n', '<leader>hp', gitsigns.preview_hunk)
+ map('n', '<leader>hb', function() gitsigns.blame_line{full=true} end)
+ map('n', '<leader>tb', gitsigns.toggle_current_line_blame)
+ map('n', '<leader>hd', gitsigns.diffthis)
+ map('n', '<leader>hD', function() gitsigns.diffthis('~') end)
+ map('n', '<leader>td', gitsigns.toggle_deleted)
+
+ -- Text object
+ map({'o', 'x'}, 'ih', ':<C-U>Gitsigns select_hunk<CR>')
+ end
+})
diff --git a/nvim/nvim/lua/ledger.lua b/nvim/nvim/lua/ledger.lua
new file mode 100644
index 0000000..a6a5cd4
--- /dev/null
+++ b/nvim/nvim/lua/ledger.lua
@@ -0,0 +1,48 @@
+function clock (start_end, text)
+ -- start_end: is "i" or "o"
+ -- text: is the account
+ local entry = os.date (start_end .. " %Y/%m/%d %H:%M:%S " .. text)
+ vim.api.nvim_put ({entry}, "l", true, true)
+end
+
+
+function complete (arglead, cmdline, cursorpos)
+ local account_pattern = "^account (%S+)%s*$"
+ local entry_pattern = "^[iIoO] %d+/%d%d/%d%d %d%d:%d%d:%d%d (%S+)%s?.*$"
+
+ local found = {}
+ for _,v in pairs(vim.api.nvim_buf_get_lines(0, 0, -1, false)) do
+ _, _, account = string.find(v, account_pattern)
+ if not account then
+ _, _, account = string.find(v, entry_pattern)
+ end
+ if account and string.sub(account, 1, #arglead) == arglead then
+ if not found[account] then
+ found[account] = true
+ end
+ end
+ end
+ local suggestions = {}
+ for i,_ in pairs(found) do
+ table.insert(suggestions, i)
+ end
+ table.sort(suggestions)
+ return suggestions
+end
+
+vim.api.nvim_create_user_command ('TimerStart',
+ function (opts) clock ("i", opts.fargs[1]) end,
+ {
+ desc="Start a ledger time entry",
+ nargs=1,
+ complete=complete
+ }
+)
+vim.api.nvim_create_user_command ('TimerStop',
+ function (opts) clock ("o", opts.fargs[1]) end,
+ {
+ desc="Stop a ledger time entry",
+ nargs=1,
+ complete=complete
+ }
+)
diff --git a/nvim/nvim/lua/mappings.lua b/nvim/nvim/lua/mappings.lua
index 83077f6..d15aa98 100644
--- a/nvim/nvim/lua/mappings.lua
+++ b/nvim/nvim/lua/mappings.lua
@@ -6,7 +6,8 @@ function trimWhiteSpaceVisual()
vim.cmd("'<,'>s/\\s\\+$//")
end
-vim.g.localleader=","
+vim.g.mapleader=","
+vim.g.maplocalleader=","
vim.keymap.set('n', '<F2>', trimWhiteSpace)
vim.keymap.set('v', '<F2>', trimWhiteSpaceVisual)
diff --git a/picom/picom.conf b/picom/picom.conf
new file mode 100644
index 0000000..f65d926
--- /dev/null
+++ b/picom/picom.conf
@@ -0,0 +1,6 @@
+ menu = { shadow = false; };
+dropdown_menu = { shadow = false; };
+popup_menu = { shadow = false; };
+utility = { shadow = false; };
+vsync = true;
+backend = "glx";
diff --git a/plasma-env/guix.sh b/plasma-env/guix.sh
deleted file mode 100755
index 94efdec..0000000
--- a/plasma-env/guix.sh
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/bin/bash
-export PATH="$HOME/.config/guix/current/bin${PATH:+:}$PATH"
-
-GUIX_PROFILE=${GUIX_ENVIRONMENT:="$HOME/.guix-profile"}
-. $GUIX_PROFILE/etc/profile
-
-# Make Desktop Environment find guix apps:
-export XDG_DATA_DIRS="$GUIX_PROFILE/share${XDG_DATA_DIRS:+:}$XDG_DATA_DIRS"
-
-export LIBRARY_PATH="$GUIX_PROFILE/lib${LIBRARY_PATH:+:}$LIBRARY_PATH"
-export CPATH="$GUIX_PROFILE/include${CPATH:+:}$CPATH"
-export GUIX_LOCPATH="$GUIX_PROFILE/lib/locale" # Locale directory
-
-export SSL_CERT_DIR="$GUIX_PROFILE/etc/ssl/certs"
-export SSL_CERT_FILE="$GUIX_PROFILE/etc/ssl/certs/ca-certificates.crt"
diff --git a/reminder/reminder/exercise.scm b/reminder/reminder/exercise.scm
new file mode 100644
index 0000000..e034a8c
--- /dev/null
+++ b/reminder/reminder/exercise.scm
@@ -0,0 +1,6 @@
+((period 45) ;; In minutes, how much time to period between notifications
+ (title "Crush it!") ;; Notification title (optional)
+ (messages ("Squats x 20" ;; Some text with each message to show
+ "Push-ups x 15" ;; Accepts simple markup like <i> <b>
+ "Pull-ups x 6"
+ "Kettlebell swings x 30")))
diff --git a/shepherd/shepherd/init.d/exercise.scm b/shepherd/shepherd/init.d/exercise.scm
new file mode 100644
index 0000000..2d07053
--- /dev/null
+++ b/shepherd/shepherd/init.d/exercise.scm
@@ -0,0 +1,17 @@
+(define config (or (getenv "XDG_CONFIG_HOME")
+ (string-append (getenv "HOME") "/.config")))
+
+(define exercise
+ (service
+ '(exercise)
+ #:documentation "When you are in the computer, you should pause and do some
+exercise. Dude, come on"
+ #:start (make-forkexec-constructor
+ `("guile" "-e" "(reminder)" "--" "-c"
+ ,(string-append config "/reminder/exercise.scm"))
+ #:log-file (string-append config "/reminder/exercise.log"))
+ #:stop (make-kill-destructor)
+ #:respawn? #t))
+(register-services exercise)
+
+(start-service exercise)
diff --git a/shepherd/shepherd/init.d/redshift.scm b/shepherd/shepherd/init.d/redshift.scm
index d17474f..9694128 100644
--- a/shepherd/shepherd/init.d/redshift.scm
+++ b/shepherd/shepherd/init.d/redshift.scm
@@ -1,9 +1,9 @@
(define redshift
- (make <service>
- #:provides '(redshift)
- #:docstring "Redshift adjusts the color temperature of your screen
- according to your surroundings. This may help your eyes hurt less if you are
- working in front of the screen at night."
+ (service
+ '(redshift)
+ #:documentation "Redshift adjusts the color temperature of your screen
+according to your surroundings. This may help your eyes hurt less if you are
+working in front of the screen at night."
#:start (make-forkexec-constructor '("redshift")
#:log-file (string-append
(or (getenv "XDG_CONFIG_HOME")
@@ -13,4 +13,4 @@
#:respawn? #t))
(register-services redshift)
-(start redshift)
+(start-service redshift)
diff --git a/shepherd/shepherd/init.scm b/shepherd/shepherd/init.scm
index 126684b..ff1fa7f 100644
--- a/shepherd/shepherd/init.scm
+++ b/shepherd/shepherd/init.scm
@@ -10,4 +10,4 @@
(string-suffix? ".scm" file))))
;; Send shepherd into the background
-(action 'shepherd 'daemonize)
+(perform-service-action root-service 'daemonize)
diff --git a/sioyek/sioyek/keys_user.config b/sioyek/sioyek/keys_user.config
index ebd638f..5dc5356 100644
--- a/sioyek/sioyek/keys_user.config
+++ b/sioyek/sioyek/keys_user.config
@@ -1,2 +1,3 @@
add_highlight_with_current_type H
set_select_highlight_type <C-h>
+close_window q
diff --git a/sioyek/sioyek/prefs_user.config b/sioyek/sioyek/prefs_user.config
new file mode 100644
index 0000000..d8eb738
--- /dev/null
+++ b/sioyek/sioyek/prefs_user.config
@@ -0,0 +1 @@
+should_launch_new_window 1
diff --git a/uninstall.sh b/uninstall.sh
index 02f0a5b..63c96e6 100644
--- a/uninstall.sh
+++ b/uninstall.sh
@@ -11,11 +11,8 @@ stow -Dt ${XDG_CONFIG_HOME:=$HOME/.config} nvim
# Shepherd
stow -Dt ${XDG_CONFIG_HOME:=$HOME/.config} shepherd
-# konsole colors
-# stow -Rt "${XDG_CONFIG_HOME:=$HOME/.config}/konsole" konsole
-
-# kitty
-stow -Dt ${XDG_CONFIG_HOME:=$HOME/.config} kitty
+# Alacritty
+stow -Dt ${XDG_CONFIG_HOME:=$HOME/.config} alacritty
# redshift
stow -Dt ${XDG_CONFIG_HOME:=$HOME/.config} redshift
@@ -27,11 +24,18 @@ stow -Dt "${XDG_CONFIG_HOME:=$HOME/.config}/guix" guix
stow -Dt ${XDG_CONFIG_HOME:=$HOME/.config} i3
stow -Dt ${XDG_CONFIG_HOME:=$HOME/.config} i3status
stow -Dt ${XDG_CONFIG_HOME:=$HOME/.config} dunst
-# Plasma session environment variables
-#stow -Rt "${XDG_CONFIG_HOME:=$HOME/.config}/plasma-workspace/env" plasma-env
# newsboat
stow -Dt ${XDG_CONFIG_HOME:=$HOME/.config} newsboat
# sioyek
stow -Dt ${XDG_CONFIG_HOME:=$HOME/.config} sioyek
+
+# Exercise reminder
+stow -Dt ${XDG_CONFIG_HOME:=$HOME/.config} reminder
+
+# feh
+stow -Dt ${XDG_CONFIG_HOME:=$HOME/.config} feh
+
+# picom
+stow -Dt ${XDG_CONFIG_HOME:=$HOME/.config} picom