From 8ceda16d9eb3ff274aaf35df700868d3d90269db Mon Sep 17 00:00:00 2001 From: Cameron Katri Date: Sun, 13 Jun 2021 16:11:26 -0400 Subject: Initial dotfiles --- .Xresources | 47 ++ .config/bspwm/autostart.sh | 18 + .config/bspwm/bspwmrc | 62 +++ .config/bspwm/picom.conf | 233 +++++++++ .config/bspwm/sxhkdrc | 331 +++++++++++++ .config/dunst/dunstrc | 95 ++++ .config/kitty/kitty.conf | 964 +++++++++++++++++++++++++++++++++++++ .config/neomutt/neomuttrc | 50 ++ .config/neomutt/nord.mutt | 42 ++ .config/nvim/ftdetect/control.vim | 1 + .config/nvim/init.vim | 59 +++ .config/polybar/launch.sh | 3 + .config/polybar/theme.ini | 151 ++++++ .config/rofi/config | 1 + .config/rofi/nord.rasi | 92 ++++ .gitconfig | 26 + .local/bin/bat-check | 35 ++ .local/bin/cleanup-after-bad-patch | 18 + .xinitrc | 19 + .zshrc | 107 ++++ 20 files changed, 2354 insertions(+) create mode 100644 .Xresources create mode 100755 .config/bspwm/autostart.sh create mode 100755 .config/bspwm/bspwmrc create mode 100644 .config/bspwm/picom.conf create mode 100755 .config/bspwm/sxhkdrc create mode 100644 .config/dunst/dunstrc create mode 100755 .config/kitty/kitty.conf create mode 100644 .config/neomutt/neomuttrc create mode 100644 .config/neomutt/nord.mutt create mode 100644 .config/nvim/ftdetect/control.vim create mode 100644 .config/nvim/init.vim create mode 100755 .config/polybar/launch.sh create mode 100644 .config/polybar/theme.ini create mode 100644 .config/rofi/config create mode 100644 .config/rofi/nord.rasi create mode 100644 .gitconfig create mode 100755 .local/bin/bat-check create mode 100755 .local/bin/cleanup-after-bad-patch create mode 100755 .xinitrc create mode 100755 .zshrc diff --git a/.Xresources b/.Xresources new file mode 100644 index 0000000..916a0ff --- /dev/null +++ b/.Xresources @@ -0,0 +1,47 @@ +! Copyright (c) 2016-present Arctic Ice Studio +! Copyright (c) 2016-present Sven Greb + +! Project: Nord XResources +! Version: 0.1.0 +! Repository: https://github.com/arcticicestudio/nord-xresources +! License: MIT + +#define nord0 #2E3440 +#define nord1 #3B4252 +#define nord2 #434C5E +#define nord3 #4C566A +#define nord4 #D8DEE9 +#define nord5 #E5E9F0 +#define nord6 #ECEFF4 +#define nord7 #8FBCBB +#define nord8 #88C0D0 +#define nord9 #81A1C1 +#define nord10 #5E81AC +#define nord11 #BF616A +#define nord12 #D08770 +#define nord13 #EBCB8B +#define nord14 #A3BE8C +#define nord15 #B48EAD + +*.foreground: nord4 +*.background: nord0 +*.cursorColor: nord4 +*fading: 35 +*fadeColor: nord3 + +*.color0: nord1 +*.color1: nord11 +*.color2: nord14 +*.color3: nord13 +*.color4: nord9 +*.color5: nord15 +*.color6: nord8 +*.color7: nord5 +*.color8: nord3 +*.color9: nord11 +*.color10: nord14 +*.color11: nord13 +*.color12: nord9 +*.color13: nord15 +*.color14: nord7 +*.color15: nord6 diff --git a/.config/bspwm/autostart.sh b/.config/bspwm/autostart.sh new file mode 100755 index 0000000..b6c83d8 --- /dev/null +++ b/.config/bspwm/autostart.sh @@ -0,0 +1,18 @@ +#!/bin/sh + +run() { + $@ & +} + +run nitrogen ~/Pictures/at-at-minimalist-pc-wallpaper-4k.png --set-scaled +run nitrogen ~/Pictures/WallpaperNew.png --set-scaled + +xsetroot -cursor_name left_ptr +run sxhkd -c $HOME/.config/bspwm/sxhkdrc + +run picom --experimental-backends --config $HOME/.config/bspwm/picom.conf + +$HOME/.config/polybar/launch.sh + +run dunst +run bat-check diff --git a/.config/bspwm/bspwmrc b/.config/bspwm/bspwmrc new file mode 100755 index 0000000..d025c02 --- /dev/null +++ b/.config/bspwm/bspwmrc @@ -0,0 +1,62 @@ +#!/bin/sh + +#LAUNCHERS +$HOME/.config/bspwm/autostart.sh + +# BSPWM configuration +bspc config border_width 2 +bspc config window_gap 10 +bspc config top_padding 25 +bspc config bottom_padding 0 +bspc config left_padding 0 +bspc config right_padding 0 + +bspc config single_monocle false +bspc config split_ratio 0.55 +bspc config borderless_monocle false +bspc config gapless_monocle false +bspc config focus_follows_pointer true + +bspc config pointer_modifier mod4 +bspc config pointer_action1 move +bspc config pointer_action2 resize_side +bspc config pointer_action3 resize_corner +bspc config remove_disabled_monitors true +bspc config merge_overlapping_monitors true + +bspc config automatic_scheme alternate + +#BSPWM coloring + +#bspc config normal_border_color "#3c3836" +#bspc config active_border_color "#504945" +#bspc config focused_border_color "#98971a" +#bspc config presel_feedback_color "#504945" + +bspc config focused_border_color "#5e81ac" +bspc config normal_border_color "#4c566a" +bspc config active_border_color "#2e3440" +bspc config presel_feedback_color "#2e3440" +bspc config urgent_border_color "#2e3440" + +# Laptop monitor +bspc monitor -d one two three four five six seven eight nine zero +# External monitor +# bspc monitor DP1 -d code web chat media other +# PC Monitor +# bspc monitor HDMI-1 -d code web chat media other + +bspc rule -a MultiMC5 state=floating +bspc rule -a Steam state=floating +bspc rule -a Transmission-gtk state=floating +bspc rule -a Qemu-system-x86_64 state=floating +bspc rule -a Virt-manager state=floating +bspc rule -a Pavucontrol state=floating +bspc rule -a Plug state=floating +bspc rule -a zoom state=floating +bspc rule -a Signal state=floating +bspc rule -a Spotify state=floating +bspc rule -a Cawbird state=floating +bspc rule -a krita state=floating + +bspc config border_radius 5 diff --git a/.config/bspwm/picom.conf b/.config/bspwm/picom.conf new file mode 100644 index 0000000..90c48f3 --- /dev/null +++ b/.config/bspwm/picom.conf @@ -0,0 +1,233 @@ +# Thank you code_nomad: http://9m.no/ꪯ鵞 +# and Arch Wiki contributors: https://wiki.archlinux.org/index.php/Compton + +################################# +# +# Backend +# +################################# + +# Backend to use: "xrender" or "glx". +# GLX backend is typically much faster but depends on a sane driver. +backend = "glx"; +#backend = "xrender" + +################################# +# +# GLX backend +# +################################# + +glx-no-stencil = true; + +# GLX backend: Copy unmodified regions from front buffer instead of redrawing them all. +# My tests with nvidia-drivers show a 10% decrease in performance when the whole screen is modified, +# but a 20% increase when only 1/4 is. +# My tests on nouveau show terrible slowdown. +glx-copy-from-front = false; + +# GLX backend: Use MESA_copy_sub_buffer to do partial screen update. +# My tests on nouveau shows a 200% performance boost when only 1/4 of the screen is updated. +# May break VSync and is not available on some drivers. +# Overrides --glx-copy-from-front. +# glx-use-copysubbuffermesa = true; + +# GLX backend: Avoid rebinding pixmap on window damage. +# Probably could improve performance on rapid window content changes, but is known to break things on some drivers (LLVMpipe). +# Recommended if it works. +# glx-no-rebind-pixmap = true; + +# GLX backend: GLX buffer swap method we assume. +# Could be undefined (0), copy (1), exchange (2), 3-6, or buffer-age (-1). +# undefined is the slowest and the safest, and the default value. +# copy is fastest, but may fail on some drivers, +# 2-6 are gradually slower but safer (6 is still faster than 0). +# Usually, double buffer means 2, triple buffer means 3. +# buffer-age means auto-detect using GLX_EXT_buffer_age, supported by some drivers. +# Useless with --glx-use-copysubbuffermesa. +# Partially breaks --resize-damage. +# Defaults to undefined. +#glx-swap-method = "undefined"; + +################################# +# +# Shadows +# +################################# + +# Enabled client-side shadows on windows. +shadow = true; +# The blur radius for shadows. (default 12) +shadow-radius = 15; +# The left offset for shadows. (default -15) +shadow-offset-x = -6; +# The top offset for shadows. (default -15) +shadow-offset-y = -6; +# The translucency for shadows. (default .75) +shadow-opacity = .75; + +log-level = "warn"; +#change your username here +#log-file = "/home/erik/.config/compton.log"; + +# Set if you want different colour shadows +# shadow-red = 0.0; +# shadow-green = 0.0; +# shadow-blue = 0.0; + +# The shadow exclude options are helpful if you have shadows enabled. Due to the way compton draws its shadows, certain applications will have visual glitches +# (most applications are fine, only apps that do weird things with xshapes or argb are affected). +# This list includes all the affected apps I found in my testing. The "! name~=''" part excludes shadows on any "Unknown" windows, this prevents a visual glitch with the XFWM alt tab switcher. +#shadow-exclude = [ +# "! name~=''", +# "name = 'Notification'", +# "name = 'Plank'", +# "name = 'Docky'", +# "name = 'Kupfer'", +# "name = 'xfce4-notifyd'", +# "name *= 'VLC'", +# "name *= 'compton'", +# "name *= 'Chromium'", +# "name *= 'Chrome'", +# "class_g = 'Firefox' && argb", +# "class_g = 'Conky'", +# "class_g = 'Kupfer'", +# "class_g = 'Synapse'", +# "class_g ?= 'Notify-osd'", +# "class_g ?= 'Cairo-dock'", +# "class_g = 'Cairo-clock'", +# "class_g ?= 'Xfce4-notifyd'", +# "class_g ?= 'Xfce4-power-manager'", +# "_GTK_FRAME_EXTENTS@:c", +# "_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'" +#]; +# Avoid drawing shadow on all shaped windows (see also: --detect-rounded-corners) +shadow-ignore-shaped = false; + +################################# +# +# Opacity +# +################################# + +inactive-opacity = 1; +active-opacity = 1; +frame-opacity = 1; +inactive-opacity-override = false; + +# Dim inactive windows. (0.0 - 1.0) +# inactive-dim = 0.2; +# Do not let dimness adjust based on window opacity. +# inactive-dim-fixed = true; +# Blur background of transparent windows. Bad performance with X Render backend. GLX backend is preferred. +blur-background = true; +# Blur background of opaque windows with transparent frames as well. +blur-background-frame = true; +# Do not let blur radius adjust based on window opacity. +blur-background-fixed = true; +blur-background-exclude = [ + "window_type = 'dock'", + "window_type = 'desktop'", + "_GTK_FRAME_EXTENTS@:c" +]; + +blur: { + method = "dual_kawase"; + strength = 2; +} + +################################# +# +# Fading +# +################################# + +# Fade windows during opacity changes. +fading = true; +# The time between steps in a fade in milliseconds. (default 10). +fade-delta = 4; +# Opacity change between steps while fading in. (default 0.028). +fade-in-step = 0.03; +# Opacity change between steps while fading out. (default 0.03). +fade-out-step = 0.03; +# Fade windows in/out when opening/closing +# no-fading-openclose = true; + +# Specify a list of conditions of windows that should not be faded. +fade-exclude = [ ]; + +################################# +# +# Other +# +################################# + +# Try to detect WM windows and mark them as active. +mark-wmwin-focused = true; +# Mark all non-WM but override-redirect windows active (e.g. menus). +mark-ovredir-focused = true; +# Use EWMH _NET_WM_ACTIVE_WINDOW to determine which window is focused instead of using FocusIn/Out events. +# Usually more reliable but depends on a EWMH-compliant WM. +use-ewmh-active-win = true; +# Detect rounded corners and treat them as rectangular when --shadow-ignore-shaped is on. +detect-rounded-corners = true; + +# Detect _NET_WM_OPACITY on client windows, useful for window managers not passing _NET_WM_OPACITY of client windows to frame windows. +# This prevents opacity being ignored for some apps. +# For example without this enabled my xfce4-notifyd is 100% opacity no matter what. +detect-client-opacity = true; + +# Specify refresh rate of the screen. +# If not specified or 0, compton will try detecting this with X RandR extension. +refresh-rate = 0; + +# Vertical synchronization: match the refresh rate of the monitor +# this breaks transparency in virtualbox - put a "#" before next line to fix that +vsync = true; + +# Enable DBE painting mode, intended to use with VSync to (hopefully) eliminate tearing. +# Reported to have no effect, though. +dbe = false; + +# Limit compton to repaint at most once every 1 / refresh_rate second to boost performance. +# This should not be used with --vsync drm/opengl/opengl-oml as they essentially does --sw-opti's job already, +# unless you wish to specify a lower refresh rate than the actual value. +#sw-opti = true; + +# Unredirect all windows if a full-screen opaque window is detected, to maximize performance for full-screen windows, like games. +# Known to cause flickering when redirecting/unredirecting windows. +unredir-if-possible = false; + +# Specify a list of conditions of windows that should always be considered focused. +focus-exclude = [ ]; + +# Use WM_TRANSIENT_FOR to group windows, and consider windows in the same group focused at the same time. +detect-transient = true; +# Use WM_CLIENT_LEADER to group windows, and consider windows in the same group focused at the same time. +# WM_TRANSIENT_FOR has higher priority if --detect-transient is enabled, too. +detect-client-leader = true; + +################################# +# +# Window type settings +# +################################# + +wintypes: +{ + tooltip = { fade = true; shadow = true; opacity = 0.9; focus = true;}; + dock = { shadow = false; } + dnd = { shadow = false; } + popup_menu = { opacity = 0.9; } + dropdown_menu = { opacity = 0.9; } +}; + +###################### +# +# XSync +# See: https://github.com/yshui/compton/commit/b18d46bcbdc35a3b5620d817dd46fbc76485c20d +# +###################### + +# Use X Sync fence to sync clients' draw calls. Needed on nvidia-drivers with GLX backend for some users. +xrender-sync-fence = true; diff --git a/.config/bspwm/sxhkdrc b/.config/bspwm/sxhkdrc new file mode 100755 index 0000000..3f81241 --- /dev/null +++ b/.config/bspwm/sxhkdrc @@ -0,0 +1,331 @@ +################################################################# +# KEYBOARD BINDINGS +################################################################# + +################################################################# +# SUPER + FUNCTION KEYS +################################################################# + +#Rofi +super + F12 + rofi-theme-selector + +################################################################# +# SUPER + ... KEYS +################################################################# + +#Rofit +super + space + rofi -show drun -show-icons -run-shell-command '{terminal} -e \\" {cmd}; read -n 1 -s\\"' + + +#Browser +super + w + firefox + +#calc start +super + c + kitty -e calc + +super + t + thunderbird +# kitty -e mutt + +#Spotify +super + s + pkill spotify; spotify + +# start discord +super + d + pkill Discord; Discord + +#Terminal +super + Return + kitty + +super + g + kitty -e gotop + +super + m + MultiMC + +super + ctrl + s + prime-run steam + +################################################################# +# SUPER + SHIFT KEYS +################################################################# + +# Make a window sticky +super + shift + t + bspc node focused --flag sticky + +# Quit xorg server +super + shift + x + bspc quit + +#File-Manager +super + shift + Return + kitty -e ranger + +#Keyboard dependent +#File-Manager +#super + shift + KP_Enter +# thunar + +#reload sxhkd: +super + shift + s + pkill -USR1 -x sxhkd + +#Keyboard dependent +#super + shift + KP_Enter +# thunar + +################################################################# +# CONTROL + ALT KEYS +################################################################# + + +################################################################# +# ALT + ... KEYS +################################################################# + + +################################################################# +#VARIETY KEYS WITH PYWAL +################################################################# + + +################################################################# +# CONTROL + SHIFT KEYS +################################################################# + + +################################################################# +# SCREENSHOTS +################################################################# + +# Screenshot +super + ctrl + 4 + maim | xclip -selection clipboard -t image/png + +super + ctrl + alt + 4 + maim -i $(xdotool getactivewindow) | xclip -selection clipboard -t image/png + +################################################################# +# FUNCTION KEYS +################################################################# + + +################################################################# +# MULTIMEDIA KEYS +################################################################# + +#Raises volume +XF86AudioRaiseVolume + pamixer -i 1 + +#Lowers volume +XF86AudioLowerVolume + pamixer -d 1 + +#Mute +XF86AudioMute + pamixer -t + +#Playerctl works for Pragha, Spotify and others +#Delete the line for playerctl if you want to use mpc +#and replace it with the corresponding code +#mpc works for e.g.ncmpcpp +#mpc toggle +#mpc next +#mpc prev +#mpc stop + +#PLAY +XF86AudioPlay + playerctl play-pause + +#Next +XF86AudioNext + playerctl next + +#previous +XF86AudioPrev + playerctl previous + +#Stop +XF86AudioStop + playerctl stop + +XF86MonBrightnessUp + light -A 5 + +XF86MonBrightnessDown + light -U 5 + +######################### +# POLYBAR # +######################### + + +################################################################# +################################################################# +################## DESKTOP SPECIFIC ######################## +################################################################# +################################################################# + +################################################################# +# CTRL + ALT KEYS +################################################################# + +################################################################# +# SUPER + KEYS +################################################################# + +#Toggle fullscreen of window +#super + f +super + f + bspc node --state \~fullscreen + + +# Toggle pseudo tiling of window +super + p + bspc node --state \~pseudo_tiled + +#kill +super + q + bspc node -c + +################################################################# +# SUPER KEYS +################################################################# + +#Focus selected desktop +#super + Tab +# rofi -show window + +# Increase/decrease window gap on focused desktop +super + bracket{left,right} + bspc config -d focused window_gap $((`bspc config -d focused window_gap` {-,+} 5 )) + +# set the window state +super + alt + space + bspc node -t {floating,tiled} + +# Move focus to other monitor +super + BackSpace + bspc monitor -f next + +################################################################# +# SUPER + ALT KEYS +################################################################# + +# Expand tiled space +super + alt + {h,j,k,l} + bspc node {@west -r -10,@south -r +10,@north -r -10,@east -r +10} + + +################################################################# +# SUPER + CONTROL KEYS +################################################################# + +################################################################# +# SUPER + SHIFT KEYS +################################################################# + +# toggle all to floating or tiled +super + shift + space + ~/.config/bspwm/scripts/toggle_all {floating,tiled} + +#Reload bspwm +super + shift + r + ~/.config/bspwm/bspwmrc + +#Logout +super + shift + x + bspc quit + +# Focus/swap windows by direction +super + {h,j,k,l} + bspc node --focus {west,south,north,east} + +super + shift + {h,j,k,l} + bspc node --swap {west,south,north,east} + +# Flip layout vertically/horizontally +super + {_,shift + }a + bspc node @/ --flip {vertical,horizontal} + +# Move focused window to other monitor +super + shift + Left + bspc node -m next --follow + +# Move focused window to other monitor +super + shift + Right + bspc node -m next --follow + +# Move focused window to other monitor +super + shift + Up + bspc node -m next --follow + +# Move focused window to other monitor +super + shift + Down + bspc node -m next --follow + +################################################################# +# SUPER + CONTROL KEYS +################################################################# + +# Contract tiled space +super + ctrl + {h,j,k,l} + bspc node {@east -r -10,@north -r +10,@south -r -10,@west -r +10} + +################################################################# +# ALT KEYS +################################################################# + + +################################################################# +# ALT + SHIFT KEYS +################################################################# + + +################################################################# +# CTRL + ALT KEYS +################################################################# + + +################################################################# +################################################################# +################## AZERTY/QWERTY/ ... KEYBOARD################# +################################################################# +################################################################# + +#Switch here between qwerty and azerty or make new one +#Focus selected desktop FOR QWERTY KEYBOARDS +super + {1-9,0} + bspc desktop -f '^{1-9,10}' + +#Focus selected desktop FOR AZERTY KEYBOARDS +#super + {ampersand,eacute,quotedbl,apostrophe,parenleft,section,egrave,exclam,ccedilla,agrave} +# bspc desktop -f '^{1-9,10}' + +################################################################# + +#Switch here between qwerty and azerty or make new one +#Move window to selected desktop FOR QWERTY KEYBOARDS +super + shift + {1-9,0} + id=$(bspc query -N -n); bspc node -d ^{1-9,10}; bspc node -f ${id}} + +#Move window to selected desktop FOR AZERTY KEYBOARDS +#super + shift + {ampersand,eacute,quotedbl,apostrophe,parenleft,section,egrave,exclam,ccedilla,agrave} +# id=$(bspc query -N -n); bspc node -d ^{1-9,10}; bspc node -f ${id}} + +################################################################# + +super + grave + dunstctl history-pop + +super + shift + grave + dunstctl close diff --git a/.config/dunst/dunstrc b/.config/dunst/dunstrc new file mode 100644 index 0000000..747194c --- /dev/null +++ b/.config/dunst/dunstrc @@ -0,0 +1,95 @@ + +[global] +monitor = 0 +#follow = keyboard +geometry = "400x0-10+34" +corner_radius = 0 +indicate_hidden = yes +shrink = yes +#transparency = 20 +notification_height = 0 +padding = 5 +horizontal_padding = 5 +frame_width = 2 +frame_color = "#84a0c6" + +separator_color = auto +separator_height = 2 + +sort = yes + +idle_threshold = 120 +font = Jet Brains Mono 12 +line_height = 0 +markup = full + +# The format of the message. Possible variables are: +# %a appname +# %s summary +# %b body +# %i iconname (including its path) +# %I iconname (without its path) +# %p progress value if set ([ 0%] to [100%]) or nothing +# %n progress value if set without any extra characters +# %% Literal % +# Markup is allowed +#format = "%s\n%b" +format = "%s\n%b" + +alignment = left +show_age_threshold = 60 +word_wrap = yes +ellipsize = middle +ignore_newline = no +stack_duplicates = true +hide_duplicate_count = true +show_indicators = yes +icon_position = left +max_icon_size = 80 +#icon_path = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/:/usr/share/icons/Adwaita/256x256/status/ +sticky_history = yes +history_length = 20 +browser = /usr/bin/firefox + +# Always run rule-defined scripts, even if the notification is suppressed +always_run_script = true + +title = Dunst +class = Dunst +startup_notification = false +force_xinerama = false + +mouse_left_click = do_action +mouse_middle_click = close_all +mouse_right_click = close_current + +[experimental] +per_monitor_dpi = false + +#[shortcuts] +#close = ctrl+space +#close_all = ctrl+shift+space +#history = ctrl+grave +#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 = "#161821" +foreground = "#c6c8d1" +frame_color = "#84a0c6" +timeout = 5 +# Icon for notifications with low urgency, uncomment to enable +#icon = ~/.local/share/arch.png + +[urgency_normal] +background = "#161821" +foreground = "#c6c8d1" +frame_color = "#84a0c6" +timeout = 5 + +[urgency_critical] +background = "#e27878" +foreground = "#161821" +frame_color = "#e27878" +timeout = 0 diff --git a/.config/kitty/kitty.conf b/.config/kitty/kitty.conf new file mode 100755 index 0000000..0a216bb --- /dev/null +++ b/.config/kitty/kitty.conf @@ -0,0 +1,964 @@ +# vim:fileencoding=utf-8:ft=conf:foldmethod=marker + +font_family JetBrains Mono +bold_font JetBrains Mono Bold +italic_font JetBrains Mono Italic +bold_italic_font JetBrains Mono Bold Italic +symbol_map U+2800-U+28FF Braille + +font_size 10 + +#: Font size (in pts) + +force_ltr no + +adjust_line_height 0 +adjust_column_width 0 + +disable_ligatures never + +font_features none + +box_drawing_scale 0.001, 1, 1.5, 2 + +cursor_text_color #111111 + +cursor_shape beam + +cursor_blink_interval 0.5 + +#cursor_stop_blinking_after 15.0 + +scrollback_lines 2000 + +scrollback_pager less --chop-long-lines --RAW-CONTROL-CHARS +INPUT_LINE_NUMBER + +scrollback_pager_history_size 0 + +wheel_scroll_multiplier 5.0 + +touch_scroll_multiplier 1.0 + +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 no + +#: Request window attention on bell. Makes the dock icon bounce on +#: macOS or the taskbar flash on linux. + +bell_on_tab no + +#: 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 15.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. + +#: }}} + +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//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. + +#: + +linux_display_server auto + +#: For a list of key names, see: GLFW keys +#: . The name to +#: use is the part after the GLFW_KEY_ prefix. For a list of modifier +#: names, see: GLFW mods +#: + +#: On Linux you can also use XKB key names to bind keys that are not +#: supported by GLFW. See XKB keys +#: 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 action1 action2 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 + +background_opacity 0.95 + +## ----------------------------------------------------------------------------- +## File: gruvbox-dark.conf +## Description: Retro groove colorscheme generalized +## Author: morhetz +## Source: https://github.com/morhetz/gruvbox-generalized +## Last Modified: 9 Feb 2019 +## ----------------------------------------------------------------------------- +# +## hard contrast: background #1d2021 +#background #282828 +## soft contrast: background #32302f +#foreground #ebdbb2 +#cursor #fbf1c7 +#url_color #83a598 +## Black + DarkGrey +#color0 #282828 +#color8 #928374 +## DarkRed + Red +#color1 #cc241d +#color9 #fb4934 +## DarkGreen + Green +#color2 #98971a +#color10 #b8bb26 +## DarkYellow + Yellow +#color3 #d79921 +#color11 #fabd2f +## DarkBlue + Blue +#color4 #458588 +#color12 #83a598 +## DarkMagenta + Magenta +#color5 #b16286 +#color13 #d3869b +## DarkCyan + Cyan +#color6 #689d6a +#color14 #8ec07c +## LightGrey + White +#color7 #a89984 +#color15 #ebdbb2 + +foreground #dddddd +# background #242a36 +background #2e3440 + +#: The foreground and background colors + +background_opacity 0.95 + +#: 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 #3B4252 +color8 #4C566A + +#: black + +color1 #BF616A +color9 #BF616A + +#: red + +color2 #A3BE8C +color10 #A3BE8C + +#: green + +color3 #EBCB8B +color11 #EBCB8B + +#: yellow + +color4 #81A1C1 +color12 #81A1C1 + +#: blue + +color5 #B48EAD +color13 #B48EAD + +#: magenta + +color6 #88C0D0 +color14 #8FBCBB + +#: cyan + +color7 #E5E9F0 +color15 #ECEFF4 + +#: 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 diff --git a/.config/neomutt/neomuttrc b/.config/neomutt/neomuttrc new file mode 100644 index 0000000..58eeeae --- /dev/null +++ b/.config/neomutt/neomuttrc @@ -0,0 +1,50 @@ +# Copyright (c) 2021 Cameron Katri +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +# SUCH DAMAGE. +# + +source ~/.config/neomutt/passwords.mutt +source ~/.config/neomutt/nord.mutt + +set smtp_authenticators="plain" + +set from="Cameron Katri " +set edit_headers=yes + +set spoolfile=+INBOX +set record="=Sent" +set postponed="=Drafts" + +set imap_check_subscribed +set sort=reverse-date-sent + +bind index G imap-fetch-mail + +set sidebar_visible +set sidebar_format = "%B%?F? [%F]?%* %?N?%N/?%S" +set mail_check_stats +bind index,pager \CP sidebar-prev +bind index,pager \CN sidebar-next +bind index,pager \CO sidebar-open + +# vim: syntax=neomuttrc diff --git a/.config/neomutt/nord.mutt b/.config/neomutt/nord.mutt new file mode 100644 index 0000000..5b8f152 --- /dev/null +++ b/.config/neomutt/nord.mutt @@ -0,0 +1,42 @@ +# mutt color scheme +# https://gitlab.uni-oldenburg.de/fili6799/dotfiles/ + +color normal default default # default colours +color index brightblue default ~N # new messages +color index red default ~F # flagged messages +color index blue default ~T # tagged messages +color index cyan default ~D # deleted messages +color body brightyellow default (https?|ftp)://[\-\.+,/%~_:?&=\#a-zA-Z0-9]+ +color body brightgreen default [\-\.+_a-zA-Z0-9]+@[\-\.a-zA-Z0-9]+ +color attachment magenta default # attachments +color signature brightwhite default # sigs +color search brightred black # highlight results + +color indicator brightyellow default # currently highlighted message +color error red default # error messages +color status white cyan # status line +color tree brightblack default # thread tree +color tilde cyan default # blank line padding + +color hdrdefault black cyan # default headers +color header brightwhite cyan "^From:" +color header brightwhite cyan "^Subject:" + +color quoted cyan default # quote colours +color quoted1 brightcyan default +color quoted2 blue default +color quoted3 green default +color quoted4 yellow default +color quoted5 red default + +color body green default "^gpg: Good signature from" +color body brightred default "^gpg: Bad signature from" +color body brightred default "^gpg: BAD signature from" +color body brightred default "^gpg: Note: This key has expired!" +color body brightyellow default "^gpg: WARNING: This key is not certified with a trusted signature!" +color body brightyellow default "^gpg: There is no indication that the signature belongs to the owner." +color body brightyellow default "^gpg: can't handle these multiple signatures" +color body brightyellow default "^gpg: signature verification suppressed" +color body brightyellow default "^gpg: invalid node with packet of type" + +# vim: syntax=neomuttrc diff --git a/.config/nvim/ftdetect/control.vim b/.config/nvim/ftdetect/control.vim new file mode 100644 index 0000000..dc3b7fa --- /dev/null +++ b/.config/nvim/ftdetect/control.vim @@ -0,0 +1 @@ +autocmd BufNewFile,BufRead *.control* set filetype=debcontrol diff --git a/.config/nvim/init.vim b/.config/nvim/init.vim new file mode 100644 index 0000000..ec7c481 --- /dev/null +++ b/.config/nvim/init.vim @@ -0,0 +1,59 @@ +call plug#begin() +Plug 'airblade/vim-gitgutter' +Plug 'vim-airline/vim-airline' +Plug 'neoclide/coc.nvim', {'branch': 'release'} +Plug 'dhruvasagar/vim-table-mode' +Plug 'chrisbra/Colorizer' +Plug 'octol/vim-cpp-enhanced-highlight' +Plug 'arcticicestudio/nord-vim' +Plug 'junegunn/fzf.vim' +Plug 'rhysd/git-messenger.vim' +Plug 'iamcco/markdown-preview.nvim', { 'do': 'cd app && yarn install' } +call plug#end() + +let g:coc_global_extensions = [ + \'coc-pairs', + \'coc-json', + \'coc-clangd', + \] + +set number +colorscheme nord + +set tabstop=2 +set softtabstop=2 +set shiftwidth=2 +set list lcs=tab:\¦\ +set noexpandtab +set completeopt-=preview +set cursorline + +tnoremap + +" use for trigger completion and navigate to the next complete item +function! s:check_back_space() abort + let col = col('.') - 1 + return !col || getline('.')[col - 1] =~ '\s' +endfunction + +inoremap + \ pumvisible() ? "\" : + \ check_back_space() ? "\" : + \ coc#refresh() + +let g:airline_skip_empty_sections = 1 +let g:airline_section_warning = '' +let g:airline_section_x='' +let g:airline_section_z = airline#section#create(['%3p%% ', 'linenr', ':%c']) +let g:airline#parts#ffenc#skip_expected_string='utf-8[unix]' +let g:airline#extensions#tabline#enabled = 1 +let g:airline#extensions#tabline#buffer_min_count = 2 " show tabline only if there is more than 1 buffer +let g:airline#extensions#tabline#fnamemod = ':t' " show only file name on tabs +let airline#extensions#coc#error_symbol = '✘:' +let airline#extensions#coc#warning_symbol = '⚠:' +if !exists('g:airline_symbols') + let g:airline_symbols = {} +endif +let g:airline_symbols.linenr = '' +let g:airline_symbols.branch = '⎇ ' +let g:airline_symbols.dirty= '' diff --git a/.config/polybar/launch.sh b/.config/polybar/launch.sh new file mode 100755 index 0000000..dc67ea1 --- /dev/null +++ b/.config/polybar/launch.sh @@ -0,0 +1,3 @@ +#!/bin/sh +pkill polybar +polybar main -r -c ~/.config/polybar/theme.ini & diff --git a/.config/polybar/theme.ini b/.config/polybar/theme.ini new file mode 100644 index 0000000..2f25629 --- /dev/null +++ b/.config/polybar/theme.ini @@ -0,0 +1,151 @@ +# My whole right side is pretty broken but I don't really care. +[colors] +background = #3b4252 +background-alt = #3b4252 +foreground = #d8dee9 + +red = #bf616a +green = #a3be8c +yellow = #ebcb8b + +[bar/main] +;width = 17% +height = 35 +fixed-center = true +override-redirect = true +background = #00000000 +foreground = ${colors.foreground} +line-color = ${colors.yellow} +border-size = 0 +border-color = #00000000 +module-margin-left = 1 +module-margin-right = 1 +font-0 = JetBrainsMono Nerd Font:size=10;1 +cursor-click = pointer +cursor-scroll = ns-resize +modules-left = bspwm +modules-center = date +;modules-right = spotify pulseaudio backlight battery wireless-network wired-network +modules-right = bsd-bat +padding-right = 2 + +[module/spotify] +type = custom/script +interval = 1 +format-prefix = " " +format-prefix-foreground = ${colors.yellow} +format =