commit 16e1ab5b9cc5b35b39a6628a1eba19f5105e9482 Author: Alex Kelly Date: Tue Jun 1 13:54:14 2021 -0400 Initial checkin diff --git a/dot_config/kitty/kitty.conf b/dot_config/kitty/kitty.conf new file mode 100644 index 0000000..9355fd1 --- /dev/null +++ b/dot_config/kitty/kitty.conf @@ -0,0 +1,1336 @@ +# 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 Hasklig +bold_font auto +italic_font auto +bold_italic_font auto + +#: 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 11.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 +#: 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+E0A3,U+E0C0-U+E0C7 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+. 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 + +#: Note that this refers to programming ligatures, typically +#: implemented using the calt OpenType feature. For disabling general +#: ligatures, use the font_features setting. + +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. + +#: On Linux, these are read from the FontConfig database first and +#: then this, setting is applied, so they can be configured in a +#: single, central place. + +#: To get the PostScript name for a font, use kitty + list-fonts +#: --psnames: + +#: .. code-block:: sh + +#: $ 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_beam_thickness 1.5 + +#: Defines the thickness of the beam cursor (in pts) + +cursor_underline_thickness 2.0 + +#: Defines the thickness of the underline cursor (in pts) + +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 2000 + +#: 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 performance of the terminal and +#: also use large amounts of RAM. Instead, consider using +#: scrollback_pager_history_size. + +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. Similarly CURSOR_LINE and +#: CURSOR_COLUMN will be replaced by the current cursor position. + +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 the data in UTF-8, so approximatively 10000 +#: lines per megabyte at 100 chars per line, for pure ASCII text, +#: unformatted text. A value of zero or less disables this feature. +#: The maximum allowed size is 4GB. + +scrollback_fill_enlarged_window no + +#: Fill new space with lines from the scrollback buffer after +#: enlarging a window. + +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. + +url_prefixes http https file ftp gemini irc gopher mailto news git + +#: The set of URL prefixes to look for when detecting a URL under the +#: mouse cursor. + +detect_urls yes + +#: Detect URLs under the mouse. Detected URLs are highlighted with an +#: underline and the mouse cursor becomes a hand over them. Even if +#: this option is disabled, URLs are still clickable. + +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 + +default_pointer_shape beam + +#: The default shape of the mouse pointer. Valid values are: arrow, +#: beam and hand + +pointer_shape_when_dragging beam + +#: The default shape of the mouse pointer when dragging across text. +#: 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 yes + +#: 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 0.5pt + +#: The width of window borders. Can be either in pixels (px) or pts +#: (pt). Values in pts will be rounded to the nearest number of pixels +#: based on screen resolution. If not specified the unit is assumed to +#: be pts. 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 + +#: The window margin (in pts) (blank area outside the border). A +#: single value sets all four sides. Two values set the vertical and +#: horizontal sides. Three values set top, horizontal and bottom. Four +#: values set top, right, bottom and left. + +single_window_margin_width -1 + +#: 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. A single value sets all +#: four sides. Two values set the vertical and horizontal sides. Three +#: values set top, horizontal and bottom. Four values set top, right, +#: bottom and left. + +window_padding_width 0 + +#: The window padding (in pts) (blank area between the text and the +#: window border). A single value sets all four sides. Two values set +#: the vertical and horizontal sides. Three values set top, horizontal +#: and bottom. Four values set top, right, bottom and left. + +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 yes + +#: 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. + +confirm_os_window_close 0 + +#: Ask for confirmation when closing an OS window or a tab that has at +#: least this number of kitty windows in it. A value of zero disables +#: confirmation. This confirmation also applies to requests to quit +#: the entire application (all OS windows, via the quit action). + +#: }}} + +#: 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. If you use the hidden style, you might want to +#: create a mapping for the select_tab action which presents you with +#: a list of tabs and allows for easy switching to a tab. + +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 right will switch to the tab to the right 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_powerline_style angled + +#: The powerline separator style between tabs in the tab bar when +#: using powerline as the tab_bar_style, can be one of: angled, +#: slanted, or round. + +tab_activity_symbol none + +#: Some text or a unicode symbol to show on the tab if a window in the +#: tab that does not have focus has some activity. + +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. In addition you can use {layout_name} for the current +#: layout name and {num_windows} for the number of windows in the tab. +#: Note that formatting is done by Python's string formatting +#: machinery, so you can use, for instance, {layout_name[:2].upper()} +#: to show only the first two letters of the layout name, upper-cased. +#: If you want to style the text, you can use styling directives, for +#: example: {fmt.fg.red}red{fmt.fg.default}normal{fmt.bg._00FF00}green +#: bg{fmt.bg.normal}. Similarly, for bold and italic: +#: {fmt.bold}bold{fmt.nobold}normal{fmt.italic}italic{fmt.noitalic}. + +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 .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 background color's opacity in +#: cells that have the same background color as the default terminal +#: background. 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) + +background_image none + +#: Path to a background image. Must be in PNG format. + +background_image_layout tiled + +#: Whether to tile or scale the background image. + +background_image_linear no + +#: When background image is scaled, whether linear interpolation +#: should be used. + +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. + +background_tint 0.0 + +#: How much to tint the background image by the background color. The +#: tint is applied only under the text area, not margin/borders. Makes +#: it easier to read the text. Tinting is done using the current +#: background color for each window. This setting applies only if +#: background_opacity is set and transparent windows are supported or +#: background_image is set. + +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 256 terminal colors. There are 8 basic colors, each color has a +#: dull and bright version, for the first 16 colors. You can set the +#: remaining 240 colors 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. + +listen_on none + +#: Tell kitty to listen to the specified unix/tcp socket for remote +#: control connections. Note that this will apply to all kitty +#: instances. It can be overridden by the kitty --listen-on command +#: line flag. This option accepts only UNIX sockets, such as +#: unix:${TEMP}/mykitty or (on Linux) unix:@mykitty. Environment +#: variables are expanded. If {kitty_pid} is present then it is +#: replaced by the PID of the kitty process, otherwise the PID of the +#: kitty process is appended to the value, with a hyphen. This option +#: is ignored unless you also set allow_remote_control to enable +#: remote control. See the help for kitty --listen-on for more +#: details. + +# 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. + +allow_hyperlinks yes + +#: Process hyperlink (OSC 8) escape sequences. If disabled OSC 8 +#: escape sequences are ignored. Otherwise they become clickable +#: links, that you can click by holding down ctrl+shift and clicking +#: with the mouse. The special value of ``ask`` means that kitty will +#: ask before opening the link. + +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 {{{ + +wayland_titlebar_color system + +#: Change the color of the kitty window's titlebar on Wayland systems +#: with client side window decorations such as GNOME. 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. + +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 {{{ + +#: Keys are identified simply by their lowercase unicode characters. +#: For example: ``a`` for the A key, ``[`` for the left square bracket +#: key, etc. For functional keys, such as ``Enter or Escape`` the +#: names are present at https://sw.kovidgoyal.net/kitty/keyboard- +#: protocol.html#functional-key-definitions. 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 can only use an XKB key +#: name for keys that are not known as GLFW keys. + +#: Finally, you can use raw system key codes to map keys, again only +#: for keys that are not known as GLFW 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. Similarly, copy_and_clear_or_interrupt +#: will copy and clear the selection or send an interrupt if there is +#: no selection. + +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+plus change_font_size all +2.0 +map kitty_mod+kp_add change_font_size all +2.0 +map kitty_mod+minus change_font_size all -2.0 +map kitty_mod+kp_subtract 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. + +map kitty_mod+p>y kitten hints --type hyperlink + +#: Select a hyperlink (i.e. a URL that has been marked as such by the +#: terminal program, for example, by ls --hyperlink=auto). + + +#: 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 + +#: }}} + +# }}} diff --git a/dot_config/nvim/init.vim b/dot_config/nvim/init.vim new file mode 100644 index 0000000..d8a7ea9 --- /dev/null +++ b/dot_config/nvim/init.vim @@ -0,0 +1,212 @@ +let g:plugged_home = '~/.vim/plugged' + +call plug#begin(g:plugged_home) + " UI related + Plug 'chriskempson/base16-vim' + Plug 'vim-airline/vim-airline' + Plug 'vim-airline/vim-airline-themes' + " Better Visual Guide + Plug 'Yggdroot/indentLine' + " syntax check + Plug 'w0rp/ale' + " Autocomplete + Plug 'ncm2/ncm2' + Plug 'roxma/nvim-yarp' + Plug 'ncm2/ncm2-bufword' + Plug 'ncm2/ncm2-path' + Plug 'ncm2/ncm2-jedi' + " Formater + Plug 'Chiel92/vim-autoformat' + " Theme + Plug 'pineapplegiant/spaceduck', { 'branch': 'main' } + " Python Plugins + Plug 'Valloric/YouCompleteMe' + Plug 'vim-syntastic/syntastic' + Plug 'nvie/vim-flake8' + Plug 'python-mode/python-mode' + Plug 'airblade/vim-gitgutter' + " + "general development plugins + Plug 'scrooloose/nerdtree' + Plug 'flazz/vim-colorschemes' + Plug 'davidhalter/jedi-vim' + Plug 'ervandew/supertab' + Plug 'ryanoasis/vim-webdevicons' + Plug 'direnv/direnv.vim' + Plug 'sheerun/vim-polyglot' + Plug 'tpope/vim-fugitive' + Plug 'psf/black', { 'branch': 'stable' } + " This was fun and all, but getting data out sucked, so if they ever get an + " update, maybe try again + "Plugin 'ActivityWatch/aw-watcher-vim' + " + " Bind zonefile stuff + Plug 'seveas/bind.vim' + " + " extline extends rst stuff + Plug 'drmikehenry/vim-extline' + Plug 'brookhong/DBGPavim' + Plug 'dhruvasagar/vim-table-mode' + Plug 'godlygeek/tabular' + Plug 'plasticboy/vim-markdown' + " Additional languages + Plug 'nathanielc/vim-tickscript' + Plug 'fatih/vim-go' + Plug 'dbeniamine/cheat.sh-vim' + Plug 'jacqueswww/vim-vyper' + Plug 'tomlion/vim-solidity' +call plug#end() + +filetype plugin indent on +" Set colors for spaceduck +if exists('+termguicolors') + let &t_8f = "\[38;2;%lu;%lu;%lum" + let &t_8b = "\[48;2;%lu;%lu;%lum" + set termguicolors +endif +let g:airline_theme = 'spaceduck' +if exists('+termguicolors') + let &t_8f = "\[38;2;%lu;%lu;%lum" + let &t_8b = "\[48;2;%lu;%lu;%lum" + set termguicolors + endif + + colorscheme spaceduck + +" set the number style to hybrid +set number relativenumber + + +" READ FROM .vimrc + +set nocompatible " required +set splitright +filetype off " required +" Handy hack to force a write using sudo when you forget to 'sudo vi' +cmap w!! w !sudo tee > /dev/null % + +set pastetoggle= + +set incsearch +set encoding=utf-8 +set wrap +set linebreak +set nolist + +" Attempt to fix python/python3 issue +" To run py2 stuff, you can force with "vim --cmd 'let py2 = 1' +"if exists('py2') && has('python') +"elseif has('python3') +if !has('patch-8.1.201') + silent! python3 1 +endif + +"let g:deoplete#enable_at_startup = 1 +"Plugin 'Shougo/deoplete.nvim' + +" Add all your plugins here (note older versions of Vundle used Bundle instead +" of Plugin) + +" All of your Plugins must be added before the following line +filetype plugin indent on " required +"Powerline setup +"set guifont=PowerLineSymbols\ DejaVu\ Sans\ Mono\ for\ Powerline\ 9 +" set guifont=DejaVu\ Sans\ Mono\ for\ Powerline\ Plus\ Nerd\ File\ Types\ 9 +set guifont=Sauce\ Code\ Powerline\ Plus\ Nerd\ File\ Types\ 9 +" set guifont=Anonymous\ Pro\ for\ Powerline\ Regular/9 +let g:Powerline_symbols = 'fancy' +let g:airline_powerline_fonts = 1 +set laststatus=2 + +"NerdTree map to +map :NERDTreeToggle + +"colorscheme jellybeans + +"Make python-friendly tabs +set tabstop=4 +set shiftwidth=4 +set smarttab +set softtabstop=4 +set autoindent +set expandtab +"let &colorcolumn="80,".join(range(81,999),",") + +augroup vimrc_autocmds + autocmd! + "highlight characters past col 80 + autocmd FileType python highlight Excess ctermbg=DarkGrey guibg=Black + autocmd FileType python match Excess /\%80v.*/ + autocmd FileType python set nowrap +" autocmd FileType rst set textwidth=80 + autocmd FileType markdown set textwidth=80 +augroup END + +set mouse=a + +" python-mode settings +" Python-mode +" Activate rope +" Keys: +" K Show python docs +" Rope autocomplete +" g Rope goto definition +" d Rope show documentation +" f Rope find occurrences +" b Set, unset breakpoint (g:pymode_breakpoint enabled) +" [[ Jump on previous class or function (normal, visual, operator +" modes) +" ]] Jump on next class or function (normal, visual, operator +" modes) +" [M Jump on previous class or method (normal, visual, operator +" modes) +" ]M Jump on next class or method (normal, visual, operator +" modes) +let g:pymode_rope = 0 + +" Documentation +let g:pymode_doc = 1 +let g:pymode_doc_key = 'K' + +"Linting +let g:pymode_lint = 1 +"let g:pymode_lint_checker = "pyflakes,pep8" +let g:pymode_lint_checker = "flake8,pep8" +" Auto check on save +let g:pymode_lint_write = 1 + +" Support virtualenv +let g:pymode_virtualenv = 1 + +" Enable breakpoints plugin + let g:pymode_breakpoint = 1 + let g:pymode_breakpoint_key = 'b' + +" syntax highlighting +let g:pymode_syntax = 1 +let g:pymode_syntax_all = 1 +let g:pymode_syntax_indent_errors = g:pymode_syntax_all +let g:pymode_syntax_space_errors = g:pymode_syntax_all + +" Don't autofold code +let g:pymode_folding = 0 +let g:riv_fold_level = 0 +let g:riv_fold_auto_update = 0 +nnoremap za + +let g:dbgPavimPort = 9000 +let g:dbgPavimBreakAtEntry = 0 +let g:dbgPavimOnce = 1 + +let python_highlight_all=1 +syntax on + +let g:pymode_python = 'python3' + +" For table mode RST friendliness +let g:table_mode_corner_corner='+' +let g:table_mode_header_fillchar='=' +let g:webdevicons_enable = 1 +let g:webdevicons_enable_nerdtree = 1 +autocmd FileType yaml setlocal ts=2 sts=2 sw=2 expandtab +autocmd BufWritePre *.py execute ':Black' diff --git a/dot_direnvrc b/dot_direnvrc new file mode 100644 index 0000000..4abe70d --- /dev/null +++ b/dot_direnvrc @@ -0,0 +1,9 @@ +layout_virtualenv() { + local venv_path="$1" + source ${venv_path}/bin/activate +} + +layout_virtualenvwrapper() { + local venv_path="${WORKON_HOME}/$1" + layout_virtualenv $venv_path +} diff --git a/dot_muttrc b/dot_muttrc new file mode 100644 index 0000000..69c1b91 --- /dev/null +++ b/dot_muttrc @@ -0,0 +1,48 @@ +#set record=~/Maildir/arachnitech/Sent +set sidebar_visible = yes +set sidebar_short_path # Shorten mailbox names +set sidebar_delim_chars="/" # Delete everything up to the last / character +set sidebar_width=27 +#set sidebar_folder_indent # Indent folders whose names we've shortened +#set sidebar_indent_string=" " # Indent with two spaces +color sidebar_new yellow default +color sidebar_indicator default color17 # Dark blue background +color sidebar_highlight white color238 # Grey background +color sidebar_spoolfile yellow default # Yellow +color sidebar_new green default # Green +color sidebar_ordinary default default # Default colors +color sidebar_flagged red default # Red +color sidebar_divider color8 default # Dark grey +## set record="~/Maildir/Sent Mail" +set spoolfile="+franklin/INBOX" +# set header cache +set header_cache=~/Localmail/hcache +set mbox_type=Maildir +set folder=~/Maildir/ +set sort=reverse-date-received +set pager_stop=yes +set fast_reply +set include=yes +# IMAP and INBOX (this should map to any existing IMAP folders) +folder-hook arachnitech/* source ~/.mutt/accounts/arachnitech +folder-hook franklin/* source ~/.mutt/accounts/franklin +# auto_view text/html +#alternative_order text/plain text/enriched text/html +auto_view text/html +auto_view text/calendar + +# Just do what I tell you to, consequences be damned +set noconfirmappend +#set confirmappend=yes +set delete=yes +# Show new notification when mail arrives +set new_mail_command="notify-send -t 2000 --icon='/home/kellya/images/mutt-1.png' -a mutt -c mail \ + 'New Emails' '%n new messages' &" + +# Run a script to cat anything that has .rc as the extension to auto source things +source ~/.mutt/sources.sh| + +# Addressbook lookup +set query_command="khard email -p '%s'" +bind editor complete-query +set editor="nvim -S ~/.mutt/vimrc" diff --git a/dot_offlineimaprc b/dot_offlineimaprc new file mode 100644 index 0000000..d9ca3e5 --- /dev/null +++ b/dot_offlineimaprc @@ -0,0 +1,45 @@ +[general] +accounts = arachnitech, franklin +maxsyncaccounts = 2 +fsync = true + +[Account arachnitech] +localrepository = arachnitech-Local +remoterepository = arachnitech-Remote +postsynchook = notmuch new +autorefresh = 5 + +[Repository arachnitech-Remote] +type = IMAP +remotehost = 192.168.0.125 +remoteuser = kellya +remotepassfile = ~/.credentials/arachnitech_imap +ssl = no +idlefolders = ['INBOX',] + +[Repository arachnitech-Local] +type = Maildir +localfolders = ~/Maildir/arachnitech +restoreatime = no + +[Account franklin] +localrepository = franklin-Local +remoterepository = franklin-Remote +autorefresh = 5 + +postsynchook = notmuch new + +[Repository franklin-Remote] +type = IMAP +remotehost = 127.0.0.1 +remoteport = 1143 +remoteuser = alex.kelly@franklin.edu +remotepassfile = ~/.credentials/franklin_imap +ssl = no +idlefolders = ['INBOX',] +folderfilter = lambda foldername: foldername not in ['STFU','Newsletters', 'Clutter', 'Lego', 'Lego/Registrations', 'remote_addrbook', 'Conversation History', 'issues', 'spam', 'Windows crap', 'Sync Issues', 'Unsent Messages', 'Unsent Messages/Voicemessages', 'Junk', 'Unsent Messages/VoiceOutbox', 'Sync Issues/Server Failures', 'Sync Issues/Local Failures', 'Sync Issues/Conflicts'] + +[Repository franklin-Local] +type = Maildir +localfolders = ~/Maildir/franklin +restoreatime = no diff --git a/dot_taskrc b/dot_taskrc new file mode 100644 index 0000000..049cdf0 --- /dev/null +++ b/dot_taskrc @@ -0,0 +1,108 @@ +# [Created by task 2.5.1 8/22/2016 14:01:12] +# Taskwarrior program configuration file. +# For more documentation, see http://taskwarrior.org or try 'man task', 'man task-color', +# 'man task-sync' or 'man taskrc' + +# Here is an example of entries that use the default, override and blank values +# variable=foo -- By specifying a value, this overrides the default +# variable= -- By specifying no value, this means no default +# #variable=foo -- By commenting out the line, or deleting it, this uses the default + +# Use the command 'task show' to see all defaults and overrides + +# Files +data.location=~/.task + +# Color theme (uncomment one to use) + +#include /usr/share/task/dark-16.theme +#include /usr/share/task/dark-256.theme +#include /usr/share/task/dark-blue-256.theme +##This next one is the best guess so far +include /usr/share/task/dark-gray-256.theme +#The active task on dark gray blue is too hard to read +#include /usr/share/task/dark-gray-blue-256.theme +#include /usr/share/task/dark-green-256.theme +#include /usr/share/task/dark-red-256.theme +#include /usr/share/task/dark-violets-256.theme +## dark yellow green looks better than you'd think +#include /usr/share/task/dark-yellow-green.theme +#include /usr/share/task/light-16.theme +# The ones below this line officially look like ass +#include /usr/share/task/solarized-dark-256.theme +#include /usr/share/task/solarized-light-256.theme +#include /usr/share/task/light-256.theme +#include /usr/share/task/no-color.theme + +taskd.certificate=/home/kellya/.task/private.certificate.pem +taskd.key=/home/kellya/.task/private.key.pem +taskd.ca=/home/kellya/.task/ca.cert.pem +taskd.server=taskwarrior.inthe.am:53589 +taskd.credentials=inthe_am/alexpkelly/4a97112d-3460-46dc-a3d1-dbd404d80f18 +taskd.trust=ignore hostname +#'taskd.ciphers=NORMAL:%COMPAT' +uda.reviewed.type=date +uda.reviewed.label=Reviewed +report._reviewed.description=Tasksh review report. Adjust the filter to your needs. +report._reviewed.columns=uuid +report._reviewed.sort=reviewed+,modified+ +report._reviewed.filter=( reviewed.none: or reviewed.before:now-6days ) and ( +PENDING or +WAITING ) +uda.evernote.type=string +uda.evernote.label=Evernote +uda.intheamtrellolistname.type=string +uda.intheamtrellolistname.label=Inthe.AM Trello List Name +uda.messageid.type=string +uda.messageid.label=Message-ID +verbose=no +report.simple.description=Simple list of open tasks by project +report.simple.columns=id,project,description.count +report.simple.labels=ID,Proj,Desc +report.simple.sort=project+\/,entry+ +report.simple.filter=status:pending +complete.all.tags=yes +active.indicator=▸ +recurrence.indicator=♺ +nag= +# [Created by task 2.5.1 7/6/2018 18:50:31] +# Taskwarrior program configuration file. +# For more documentation, see http://taskwarrior.org or try 'man task', 'man task-color', +# 'man task-sync' or 'man taskrc' + +# Here is an example of entries that use the default, override and blank values +# variable=foo -- By specifying a value, this overrides the default +# variable= -- By specifying no value, this means no default +# #variable=foo -- By commenting out the line, or deleting it, this uses the default + +# Use the command 'task show' to see all defaults and overrides + +# Files +data.location=~/.task + +# Color theme (uncomment one to use) +#include /usr/share/taskwarrior/light-16.theme +#include /usr/share/taskwarrior/light-256.theme +#include /usr/share/taskwarrior/dark-16.theme +#include /usr/share/taskwarrior/dark-256.theme +#include /usr/share/taskwarrior/dark-red-256.theme +#include /usr/share/taskwarrior/dark-green-256.theme +#include /usr/share/taskwarrior/dark-blue-256.theme +#include /usr/share/taskwarrior/dark-violets-256.theme +#include /usr/share/taskwarrior/dark-yellow-green.theme +#include /usr/share/taskwarrior/dark-gray-256.theme +#include /usr/share/taskwarrior/dark-gray-blue-256.theme +#include /usr/share/taskwarrior/solarized-dark-256.theme +#include /usr/share/taskwarrior/solarized-light-256.theme +#include /usr/share/taskwarrior/no-color.theme + +#WingTask sync server +#taskd.server=app.wingtask.com:53589 +#taskd.key=/home/kellya/.wingtask_certs/kellya@arachnitech.com.key.pem +#taskd.ca=/home/kellya/.wingtask_certs/dst.pem +#taskd.certificate=/home/kellya/.wingtask_certs/kellya@arachnitech.com.cert.pem +#taskd.credentials=WingTask/kellya@arachnitech.com/df7a90d6-94b3-4406-9f34-066c9149db2b +dateformat=Y-M-DTH:N +context.work.read=+work -home or -TAGGED +context.work.write=+work +context.home.read=+home -work or -TAGGED +context.home.write=+home +context=work diff --git a/dot_tmux.conf b/dot_tmux.conf new file mode 100644 index 0000000..1dea53d --- /dev/null +++ b/dot_tmux.conf @@ -0,0 +1,98 @@ +bind a setw synchronize-panes +#source /usr/share/tmux/powerline.conf + +#Prefix is Ctrl-a +#set -g prefix C-a +#bind C-a send-prefix +#unbind C-b + +set -sg escape-time 1 +set -g base-index 1 +setw -g pane-base-index 1 + +#Mouse works as expected +set -g mouse on +#setw -g mode-mouse on +#set -g mouse-select-pane on +#set -g mouse-resize-pane on +#set -g mouse-select-window on + +setw -g monitor-activity on +set -g visual-activity on + +set -g mode-keys vi +set -g history-limit 10000 + +set -g status-bg blue +set -g status-fg white + +# y and p as in vim +bind Escape copy-mode +unbind p +bind p paste-buffer +#bind -t vi-copy 'v' begin-selection +#bind -t vi-copy 'y' copy-selection +#bind -t vi-copy 'Space' halfpage-down +#bind -t vi-copy 'Bspace' halfpage-up + +# extra commands for interacting with the ICCCM clipboard +bind C-c run "tmux save-buffer - | xclip -i -sel clipboard" +bind C-v run "tmux set-buffer \"$(xclip -o -sel clipboard)\"; tmux paste-buffer" + +# easy-to-remember split pane commands +bind | split-window -h +bind - split-window -v +unbind '"' +unbind % + +# moving between panes with vim movement keys +bind h select-pane -L +bind j select-pane -D +bind k select-pane -U +bind l select-pane -R + +# moving between windows with vim movement keys +bind -r C-h select-window -t :- +bind -r C-l select-window -t :+ + +# resize panes with vim movement keys +bind -r H resize-pane -L 5 +bind -r J resize-pane -D 5 +bind -r K resize-pane -U 5 +bind -r L resize-pane -R 5 + +#set border colors +#set -g pane-active-border-fg blue +#Commented to enable spaceduck +#set-option -g pane-active-border-style fg=blue +#set -g default-terminal "screen-256color" +#set-option -sa terminal-overrides ',XXX:RGB' + + + +# Basic color support setting + set-option -g default-terminal "screen-256color" + + # Default bar color + set-option -g status-style bg='#1b1c36',fg='#ecf0c1' + + # Active Pane + set -g pane-active-border-style "fg=#5ccc96" + + # Inactive Pane + set -g pane-border-style "fg=#686f9a" + + # Active window + set-option -g window-status-current-style bg='#686f9a',fg='#ffffff' + + # Message + set-option -g message-style bg='#686f9a',fg='#ecf0c1' + set-option -g message-command-style bg='#686f9a',fg='#ecf0c1' + + # When Commands are run + set -g message-style "fg=#0f111b,bg=#686f9a" + +set -g @plugin 'tmux-plugins/tpm' +set -g @plugin 'tmux-plugins/tmux-sensible' +set -g @plugin 'tmux-plugins/tmux-resurrect' +run -b '~/.tmux/plugins/tpm/tpm' diff --git a/dot_vimrc b/dot_vimrc new file mode 100644 index 0000000..b77e714 --- /dev/null +++ b/dot_vimrc @@ -0,0 +1,179 @@ +set nocompatible " required +set splitright +filetype off " required +" Handy hack to force a write using sudo when you forget to 'sudo vi' +cmap w!! w !sudo tee > /dev/null % + +set pastetoggle= + +set incsearch +set encoding=utf-8 +set wrap +set linebreak +set nolist + +" Attempt to fix python/python3 issue +" To run py2 stuff, you can force with "vim --cmd 'let py2 = 1' +"if exists('py2') && has('python') +"elseif has('python3') +if !has('patch-8.1.201') + silent! python3 1 +endif +" set the runtime path to include Vundle and initialize +set rtp+=~/.vim/bundle/Vundle.vim +call vundle#begin() + +" alternatively, pass a path where Vundle should install plugins +"call vundle#begin('~/some/path/here') + +" let Vundle manage Vundle, required +Plugin 'gmarik/Vundle.vim' +" +" Python Plugins +Plugin 'Valloric/YouCompleteMe' +Plugin 'vim-syntastic/syntastic' +Plugin 'nvie/vim-flake8' +Plugin 'python-mode/python-mode' +Plugin 'airblade/vim-gitgutter' +" +"general development plugins +Plugin 'scrooloose/nerdtree' +Plugin 'powerline/powerline', {'rtp': 'powerline/bindings/vim'} +Plugin 'flazz/vim-colorschemes' +Plugin 'davidhalter/jedi-vim' +Plugin 'ervandew/supertab' +Plugin 'ryanoasis/vim-webdevicons' +Plugin 'direnv/direnv.vim' +" This was fun and all, but getting data out sucked, so if they ever get an +" update, maybe try again +"Plugin 'ActivityWatch/aw-watcher-vim' +" +" Bind zonefile stuff +Plugin 'seveas/bind.vim' +" +" extline extends rst stuff +Plugin 'drmikehenry/vim-extline' +Plugin 'tpope/vim-surround.git' +Plugin 'brookhong/DBGPavim' +Plugin 'dhruvasagar/vim-table-mode' +Plugin 'godlygeek/tabular' +Plugin 'plasticboy/vim-markdown' +" Additional languages +Plugin 'nathanielc/vim-tickscript' +Plugin 'fatih/vim-go' +Plugin 'dbeniamine/cheat.sh-vim' +Plugin 'jacqueswww/vim-vyper' +Plugin 'tomlion/vim-solidity' +Plugin 'kien/ctrlp.vim' + + +"let g:deoplete#enable_at_startup = 1 +"Plugin 'Shougo/deoplete.nvim' + +" Add all your plugins here (note older versions of Vundle used Bundle instead +" of Plugin) + +" All of your Plugins must be added before the following line +call vundle#end() " required +filetype plugin indent on " required +"Powerline setup +"set guifont=PowerLineSymbols\ DejaVu\ Sans\ Mono\ for\ Powerline\ 9 +" set guifont=DejaVu\ Sans\ Mono\ for\ Powerline\ Plus\ Nerd\ File\ Types\ 9 +set guifont=Sauce\ Code\ Powerline\ Plus\ Nerd\ File\ Types\ 9 +" set guifont=Anonymous\ Pro\ for\ Powerline\ Regular/9 +let g:Powerline_symbols = 'fancy' +let g:airline_powerline_fonts = 1 +set laststatus=2 + +"NerdTree map to +map :NERDTreeToggle + +colorscheme jellybeans + +"Make python-friendly tabs +set tabstop=4 +set shiftwidth=4 +set smarttab +set softtabstop=4 +set autoindent +set expandtab +let &colorcolumn="80,".join(range(81,999),",") + +augroup vimrc_autocmds + autocmd! + "highlight characters past col 80 + autocmd FileType python highlight Excess ctermbg=DarkGrey guibg=Black + autocmd FileType python match Excess /\%80v.*/ + autocmd FileType python set nowrap +" autocmd FileType rst set textwidth=80 + autocmd FileType markdown set textwidth=80 +augroup END + +set mouse=a + +" python-mode settings +" Python-mode +" Activate rope +" Keys: +" K Show python docs +" Rope autocomplete +" g Rope goto definition +" d Rope show documentation +" f Rope find occurrences +" b Set, unset breakpoint (g:pymode_breakpoint enabled) +" [[ Jump on previous class or function (normal, visual, operator +" modes) +" ]] Jump on next class or function (normal, visual, operator +" modes) +" [M Jump on previous class or method (normal, visual, operator +" modes) +" ]M Jump on next class or method (normal, visual, operator +" modes) +let g:pymode_rope = 0 + +" Documentation +let g:pymode_doc = 1 +let g:pymode_doc_key = 'K' + +"Linting +let g:pymode_lint = 1 +"let g:pymode_lint_checker = "pyflakes,pep8" +let g:pymode_lint_checker = "flake8,pep8" +" Auto check on save +let g:pymode_lint_write = 1 + +" Support virtualenv +let g:pymode_virtualenv = 1 + +" Enable breakpoints plugin + let g:pymode_breakpoint = 1 + let g:pymode_breakpoint_key = 'b' + +" syntax highlighting +let g:pymode_syntax = 1 +let g:pymode_syntax_all = 1 +let g:pymode_syntax_indent_errors = g:pymode_syntax_all +let g:pymode_syntax_space_errors = g:pymode_syntax_all + +" Don't autofold code +let g:pymode_folding = 0 +let g:riv_fold_level = 0 +let g:riv_fold_auto_update = 0 +nnoremap za + +let g:dbgPavimPort = 9000 +let g:dbgPavimBreakAtEntry = 0 +let g:dbgPavimOnce = 1 + +let python_highlight_all=1 +syntax on + +let g:pymode_python = 'python3' + +" For table mode RST friendliness +let g:table_mode_corner_corner='+' +let g:table_mode_header_fillchar='=' +let g:webdevicons_enable = 1 +let g:webdevicons_enable_nerdtree = 1 +set relativenumber +set number diff --git a/dot_zshrc b/dot_zshrc new file mode 100644 index 0000000..adacfc1 --- /dev/null +++ b/dot_zshrc @@ -0,0 +1,161 @@ +# Path to your oh-my-zsh installation. +export ZSH=/home/kellya/.oh-my-zsh + +# Set name of the theme to load. +# Look in ~/.oh-my-zsh/themes/ +# Optionally, if you set this to "random", it'll load a random theme each +# time that oh-my-zsh is loaded. +ZSH_THEME="agnoster" + +# Uncomment the following line to use case-sensitive completion. +# CASE_SENSITIVE="true" + +# Uncomment the following line to disable bi-weekly auto-update checks. +# DISABLE_AUTO_UPDATE="true" + +# Uncomment the following line to change how often to auto-update (in days). +# export UPDATE_ZSH_DAYS=13 + +# Uncomment the following line to disable colors in ls. +# DISABLE_LS_COLORS="true" + +# Uncomment the following line to disable auto-setting terminal title. +# DISABLE_AUTO_TITLE="true" + +# Uncomment the following line to enable command auto-correction. +# ENABLE_CORRECTION="true" + +# Uncomment the following line to display red dots whilst waiting for completion. +COMPLETION_WAITING_DOTS="true" + +# Uncomment the following line if you want to disable marking untracked files +# under VCS as dirty. This makes repository status check for large repositories +# much, much faster. +# DISABLE_UNTRACKED_FILES_DIRTY="true" + +# Uncomment the following line if you want to change the command execution time +# stamp shown in the history command output. +# The optional three formats: "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd" +# HIST_STAMPS="mm/dd/yyyy" +HIST_STAMPS="yyyy-mm-dd" + +# Would you like to use another custom folder than $ZSH/custom? +# ZSH_CUSTOM=/path/to/new-custom-folder + +# Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*) +# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/ +# Example format: plugins=(rails git textmate ruby lighthouse) +# Add wisely, as too many plugins slow down shell startup. +# plugins=(git) +plugins=(sudo taskwarrior common-aliases git-flow github vi-mode fzf python) +#plugins+=(zsh-vi-mode) +plugins+=(fzf-tab) + +# User configuration +export PATH="/usr/lib64/qt-3.3/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/home/kellya/bin:/home/kellya/incoming/git-annex.linux:/home/kellya/bin/keybase/bin:/home/kellya/.local/bin:/home/kellya/.cargo/bin" +# export MANPATH="/usr/local/man:$MANPATH" + + +DISABLE_AUTO_UPDATE='true' +source $ZSH/oh-my-zsh.sh + +source ~/dotfiles/zsh/zsh-git-prompt/zshrc.sh +RPS1='$(git_super_status)' + +#source ~/.autoenv/activate.sh + +# changing over to direnv from autoenv +eval "$(direnv hook zsh)" + +# Add PS1 for python virtualenv in direnv +show_virtual_env() { + if [[ -n "$VIRTUAL_ENV" && -n "$DIRENV_DIR" ]]; then + echo "($(basename $VIRTUAL_ENV))" + fi + } + PS1='$(show_virtual_env)'$PS1 + +#--------- End of direnv block ------------------------------------------------ + +unsetopt histverify +alias in='task add +in' +alias rtask="task rc:/home/kellya/.taskrc_tinslin" +alias atwork="task context work" +alias athome="task context home" +alias atschool="task context school" +alias atnone="task context none;" +alias icat="kitty +kitten icat" +alias d="kitty +kitten diff" +#eval "$(ntfy shell-integration)" +#source /usr/share/gems/gems/tmuxinator-0.6.11/completion/tmuxinator.zsh +source ~/.private_aliases +source /usr/bin/virtualenvwrapper.sh + + +#Aliases +alias dum='du -sh *|egrep ".*\.?[0-9]M"' +alias keploy='echo -e "\e[101;97mKeploy was removed, its functionality is already built in ssh-copy-id, just use that\e[49m"; ssh-copy-id' +alias shrug='curl shrug.io|xclip' +alias weather='curl wttr.in' +alias ipython='ipython --no-confirm-exit' + +#Variable Exports +export EDITOR='vim' +export PATH="$PATH:/home/kellya/go/bin" +#export WORKON_HOME=/mnt/vdisks/projects/python_virtualenvs +export LPASS_AGENT_TIMEOUT=0 +export PATH="/usr/local/heroku/bin:$PATH" + +#Source all the custom functions +# Load custom functions +for f (~/.functions/**/*(N.)) . $f + +#This didn't work, but I'll leave it here in case someday it does +#export AGNOSTER_PROMPT_SEGMENTS=("prompt_status" "prompt_context" "prompt_virtualenv" "prompt_dir" "prompt_end") +#cat /home/kellya/.local/share/franklinlogo.txt + +#Stop the annoying git prompt +prompt_git () { + : +} + + +# hyperdrive autocomplete setup +HYPERDRIVE_AC_ZSH_SETUP_PATH=/home/kellya/.cache/hyperdrive-daemon/autocomplete/zsh_setup && test -f $HYPERDRIVE_AC_ZSH_SETUP_PATH && source $HYPERDRIVE_AC_ZSH_SETUP_PATH; +alias vi=nvim +alias ashow="litecli --auto-vertical-output /home/kellya/snap/accountable2you/common/storage.db -e \"select * from log;\"" +alias akill="litecli --auto-vertical-output /home/kellya/snap/accountable2you/common/storage.db -e \"delete from log;\"" +alias mutt="neomutt" +fpath+=~/.zfunc +compinit +kitty + complete setup zsh | source /dev/stdin +# +# Enable 'z' tracking for directory speediness +source /usr/libexec/z.sh + +export PATH="$HOME/.poetry/bin:$PATH" + +#function chpwd() { +# if [ -r $PWD/.zsh_config ]; then +# source $PWD/.zsh_config +# else +# source $HOME/.zshrc +# fi +#} + +# +#FZF stuff +#source /usr/share/fzf/shell/key-bindings.zsh +zvm_after_init_commands+=('[ -f /usr/share/fzf/shell/key-bindings.zsh ] && source /usr/share/fzf/shell/key-bindings.zsh') +#source ~/.oh-my-zsh/completions/fzf_completion +export FZF_DEFAULT_OPTS="--extended" +export FZF_DEFAULT_COMMAND="fd --type f" +export FZF_CTRL_T_COMMAND="$FZF_DEFAULT_COMMAND" + +#ZVM customizations +# Cursors seem backwards, swap 'em +ZVM_INSERT_MODE_CURSOR=$ZVM_CURSOR_BLOCK +ZVM_NORMAL_MODE_CURSOR=$ZVM_CURSOR_BEAM +ZVM_OPPEND_MODE_CURSOR=$ZVM_CURSOR_UNDERLINE +# defaults to last, make each line always insert +ZVM_LINE_INIT_MODE=$ZVM_MODE_INSERT diff --git a/private_dot_mutt/accounts/arachnitech b/private_dot_mutt/accounts/arachnitech new file mode 100644 index 0000000..038cd48 --- /dev/null +++ b/private_dot_mutt/accounts/arachnitech @@ -0,0 +1,20 @@ +set from = "kellya@arachnitech.com" +set sendmail = "/usr/bin/msmtp -a arachnitech" +set mbox = "+arachnitech/archive" +set postponed = "+arachnitech/drafts" +set record=+arachnitech/sent + + +color status color38 default + +macro index D \ + "+arachnitech/Trash" \ + "move message to the trash" + +macro index S \ + "+arachnitech/Spam" \ + "mark message as spam" + +macro index A \ + "+arachnitech/Archive" \ + "Archive message" diff --git a/private_dot_mutt/accounts/franklin b/private_dot_mutt/accounts/franklin new file mode 100644 index 0000000..bffb27a --- /dev/null +++ b/private_dot_mutt/accounts/franklin @@ -0,0 +1,20 @@ +set from = "alex.kelly@franklin.edu" +set sendmail = "/usr/bin/msmtp -a franklin" +set mbox = "+franklin/archive" +set postponed = "+franklin/drafts" +set record=+franklin/Sent + +color status cyan default +set pgp_default_key = "FE3A66764329CE891E807CD7DC441667D5FCB16F" + +macro index D \ + "+franklin/Trash" \ + "move message to the trash" + +macro index S \ + "+franklin/Spam" \ + "mark message as spam" + +macro index A \ + "+franklin/Archive" \ + "Archive message" diff --git a/private_dot_mutt/bindings.rc b/private_dot_mutt/bindings.rc new file mode 100644 index 0000000..cbf18d3 --- /dev/null +++ b/private_dot_mutt/bindings.rc @@ -0,0 +1,23 @@ +# Rules for handling the sidebar +bind index,pager \Cp sidebar-prev +# Move the highlight to the next mailbox +bind index,pager \Cn sidebar-next +# Open the highlighted mailbox +bind index,pager \Co sidebar-open +# Move the highlight to the previous page +# This is useful if you have a LOT of mailboxes. +bind index,pager sidebar-page-up +# Move the highlight to the next page +# This is useful if you have a LOT of mailboxes. +bind index,pager sidebar-page-down +# Move the highlight to the previous mailbox containing new, or flagged, +# mail. +bind index,pager sidebar-prev-new +# Move the highlight to the next mailbox containing new, or flagged, mail. +bind index,pager sidebar-next-new +# Toggle the visibility of the Sidebar. +bind index,pager B sidebar-toggle-visible +# make it so vi keys navigate the index, capital vi keys navigate the sidebar +bind index K sidebar-prev # got to previous folder in sidebar +bind index J sidebar-next # got to next folder in sidebar +bind index sidebar-open # open selected folder from sidebar diff --git a/private_dot_mutt/colors.rc b/private_dot_mutt/colors.rc new file mode 100644 index 0000000..32a1d61 --- /dev/null +++ b/private_dot_mutt/colors.rc @@ -0,0 +1,10 @@ +color body brightblue black (https?|ftp)://[\-\.,/%~_:?&=\#a-zA-Z0-9]+ +color header cyan black subject +color header yellow black from +color header yellow black cc +color header color244 black to +color hdrdefault brightwhite black +color quoted brightgreen black +color status black cyan +color indicator default blue +color progress white red diff --git a/private_dot_mutt/executable_sources.sh b/private_dot_mutt/executable_sources.sh new file mode 100644 index 0000000..64440ca --- /dev/null +++ b/private_dot_mutt/executable_sources.sh @@ -0,0 +1 @@ +cat ~/.mutt/*.rc diff --git a/private_dot_mutt/gpg.old b/private_dot_mutt/gpg.old new file mode 100644 index 0000000..d773c15 --- /dev/null +++ b/private_dot_mutt/gpg.old @@ -0,0 +1,114 @@ +# -*-muttrc-*- +# +# Command formats for gpg. +# +# Some of the older commented-out versions of the commands use gpg-2comp from: +# http://70t.de/download/gpg-2comp.tar.gz +# +# %p The empty string when no passphrase is needed, +# the string "PGPPASSFD=0" if one is needed. +# +# This is mostly used in conditional % sequences. +# +# %f Most PGP commands operate on a single file or a file +# containing a message. %f expands to this file's name. +# +# %s When verifying signatures, there is another temporary file +# containing the detached signature. %s expands to this +# file's name. +# +# %a In "signing" contexts, this expands to the value of the +# configuration variable $pgp_sign_as, if set, otherwise +# $pgp_default_key. You probably need to +# use this within a conditional % sequence. +# +# %r In many contexts, mutt passes key IDs to pgp. %r expands to +# a list of key IDs. + + +# Section A: Key Management + +# The default key for encryption (used by $pgp_self_encrypt and +# $postpone_encrypt). +# +# It will also be used for signing unless $pgp_sign_as is set to a +# key. +# +# Unless your key does not have encryption capability, uncomment this +# line and replace the keyid with your own. +# +# set pgp_default_key="0x12345678" + +# If you have a separate signing key, or your key _only_ has signing +# capability, uncomment this line and replace the keyid with your +# signing keyid. +# +# set pgp_sign_as="0x87654321" + + +# Section B: Commands + +# Note that we explicitly set the comment armor header since GnuPG, when used +# in some localiaztion environments, generates 8bit data in that header, thereby +# breaking PGP/MIME. + +# decode application/pgp +set pgp_decode_command="gpg --status-fd=2 %?p?--passphrase-fd 0? --no-verbose --quiet --batch --output - %f" + +# verify a pgp/mime signature +set pgp_verify_command="gpg --status-fd=2 --no-verbose --quiet --batch --output - --verify %s %f" + +# decrypt a pgp/mime attachment +set pgp_decrypt_command="gpg --status-fd=2 %?p?--passphrase-fd 0? --no-verbose --quiet --batch --output - %f" + +# create a pgp/mime signed attachment +# set pgp_sign_command="gpg-2comp --comment '' --no-verbose --batch --output - %?p?--passphrase-fd 0? --armor --detach-sign --textmode %?a?-u %a? %f" +set pgp_sign_command="gpg --no-verbose --batch --quiet --output - %?p?--passphrase-fd 0? --armor --detach-sign --textmode %?a?-u %a? %f" + +# create a application/pgp signed (old-style) message +# set pgp_clearsign_command="gpg-2comp --comment '' --no-verbose --batch --output - %?p?--passphrase-fd 0? --armor --textmode --clearsign %?a?-u %a? %f" +set pgp_clearsign_command="gpg --no-verbose --batch --quiet --output - %?p?--passphrase-fd 0? --armor --textmode --clearsign %?a?-u %a? %f" + +# create a pgp/mime encrypted attachment +# set pgp_encrypt_only_command="pgpewrap gpg-2comp -v --batch --output - --encrypt --textmode --armor --always-trust -- -r %r -- %f" +set pgp_encrypt_only_command="pgpewrap gpg --batch --quiet --no-verbose --output - --encrypt --textmode --armor --always-trust -- -r %r -- %f" + +# create a pgp/mime encrypted and signed attachment +# set pgp_encrypt_sign_command="pgpewrap gpg-2comp %?p?--passphrase-fd 0? -v --batch --output - --encrypt --sign %?a?-u %a? --armor --always-trust -- -r %r -- %f" +set pgp_encrypt_sign_command="pgpewrap gpg %?p?--passphrase-fd 0? --batch --quiet --no-verbose --textmode --output - --encrypt --sign %?a?-u %a? --armor --always-trust -- -r %r -- %f" + +# import a key into the public key ring +set pgp_import_command="gpg --no-verbose --import %f" + +# export a key from the public key ring +set pgp_export_command="gpg --no-verbose --export --armor %r" + +# verify a key +set pgp_verify_key_command="gpg --verbose --batch --fingerprint --check-sigs %r" + +# read in the public key ring +# note: the second --with-fingerprint adds fingerprints to subkeys +set pgp_list_pubring_command="gpg --no-verbose --batch --quiet --with-colons --with-fingerprint --with-fingerprint --list-keys %r" + +# read in the secret key ring +# note: the second --with-fingerprint adds fingerprints to subkeys +set pgp_list_secring_command="gpg --no-verbose --batch --quiet --with-colons --with-fingerprint --with-fingerprint --list-secret-keys %r" + +# fetch keys +# set pgp_getkeys_command="pkspxycwrap %r" + +# pattern for good signature - may need to be adapted to locale! + +# set pgp_good_sign="^gpgv?: Good signature from " + +# OK, here's a version which uses gnupg's message catalog: +# set pgp_good_sign="`gettext -d gnupg -s 'Good signature from "' | tr -d '"'`" + +# This version uses --status-fd messages +set pgp_good_sign="^\\[GNUPG:\\] GOODSIG" + +# pattern to verify a decryption occurred +# This is now deprecated by pgp_check_gpg_decrypt_status_fd: +# set pgp_decryption_okay="^\\[GNUPG:\\] DECRYPTION_OKAY" +set pgp_check_gpg_decrypt_status_fd + diff --git a/private_dot_mutt/gpg.rc b/private_dot_mutt/gpg.rc new file mode 100644 index 0000000..407401d --- /dev/null +++ b/private_dot_mutt/gpg.rc @@ -0,0 +1,12 @@ +set crypt_use_gpgme=yes +set postpone_encrypt = yes +set pgp_self_encrypt = yes +set crypt_use_pka = no +set crypt_autosign = yes +set crypt_autoencrypt = no +set crypt_autopgp = yes +set pgp_sign_as=738CA93A2DAD8D06C991CE4E5495537542CF2D94 + +send2-hook . unset pgp_sign_as +send2-hook '~f alex.kelly@franklin.edu' set pgp_sign_as=738CA93A2DAD8D06C991CE4E5495537542CF2D94 +send2-hook '~f kellya@arachnitech.com' set pgp_sign_as=15CD8B0B88DD99E8882B7A90DB2139896E9F21BD diff --git a/private_dot_mutt/macros.rc b/private_dot_mutt/macros.rc new file mode 100644 index 0000000..3645446 --- /dev/null +++ b/private_dot_mutt/macros.rc @@ -0,0 +1,32 @@ +#index +macro index \ + "unset wait_key~/bin/mutt-notmuch --prompt search -o ~/Maildir/mutt_results~/Maildir/mutt_results" \ + "search mail (using notmuch)" +macro index \ + "unset wait_key~/bin/mutt-notmuch thread~/.cache/Maildir/set wait_key" \ + "search and reconstruct owning thread (using notmuch)" +# macro index,browser t "mutt2task" +macro index,browser,pager t "/home/kellya/projects/arachnitech/mutt2tw/mutt2tw.py"\ +"A" +# 'L' performs a notmuch query, showing only the results +macro index L "unset wait_keyread -p 'notmuch query: ' x; echo \$x >~/.cache/mutt_terms~i \"\`notmuch search --output=messages \$(cat ~/.cache/mutt_terms) | head -n 600 | perl -le '@a=<>;chomp@a;s/\^id:// for@a;$,=\"|\";print@a'\`\"" "show only messages matching a notmuch pattern" +# 'a' shows all messages again (supersedes default binding) +### Nutmuch stuff +macro index a "all\n" "show all messages (undo limit)" +macro index \\\\ "" # looks up a hand made query +macro index I "-inbox -unread\\n" # removed from inbox +macro index S "-inbox -unread +junk\\n" # tag as Junk mail +macro index + "+*\\n" # tag as starred +macro index - "-*\\n" # tag as unstarred +#### end notmuch stuff + +#Attachments +macro attach A "/home/kellya/projects/public/mutt-filters/vcalendar-filter | /home/kellya/projects/public/khal/misc/mutt2khal" + +# Archive +# macro index A ":set confirmappend=no delete=yes\n=archive\n:set confirmappend=no delete=yes\n+archive -unread -inbox\\n" +bind index,browser,pager . noop +macro index .cp 'source ~/.mutt/accounts/arachnitech~/Maildir/arachnitech/INBOX/' +macro index .cc 'source ~/.mutt/accounts/franklin~/Maildir/franklin/INBOX/' +#macro pager .ob 'urlview' 'Follow links with urlview' +macro index,pager .ob " urlscan" "call urlscan to extract URLs out of a message" diff --git a/private_dot_mutt/mailboxes.rc b/private_dot_mutt/mailboxes.rc new file mode 100644 index 0000000..56b5d5d --- /dev/null +++ b/private_dot_mutt/mailboxes.rc @@ -0,0 +1,5 @@ +named-mailboxes "━━━━━┫ Arachnitech ┣━━━━━" "+arachnitech/INBOX" +named-mailboxes " Blockchain" "+arachnitech/Blockchain" +named-mailboxes "━━━━━┫ Franklin ┣━━━━━" "+franklin/INBOX" +named-mailboxes " Archive" "+franklin/Archive" +named-mailboxes " Sent" "+franklin/Sent" diff --git a/private_dot_mutt/muttrc b/private_dot_mutt/muttrc new file mode 100644 index 0000000..69c1b91 --- /dev/null +++ b/private_dot_mutt/muttrc @@ -0,0 +1,48 @@ +#set record=~/Maildir/arachnitech/Sent +set sidebar_visible = yes +set sidebar_short_path # Shorten mailbox names +set sidebar_delim_chars="/" # Delete everything up to the last / character +set sidebar_width=27 +#set sidebar_folder_indent # Indent folders whose names we've shortened +#set sidebar_indent_string=" " # Indent with two spaces +color sidebar_new yellow default +color sidebar_indicator default color17 # Dark blue background +color sidebar_highlight white color238 # Grey background +color sidebar_spoolfile yellow default # Yellow +color sidebar_new green default # Green +color sidebar_ordinary default default # Default colors +color sidebar_flagged red default # Red +color sidebar_divider color8 default # Dark grey +## set record="~/Maildir/Sent Mail" +set spoolfile="+franklin/INBOX" +# set header cache +set header_cache=~/Localmail/hcache +set mbox_type=Maildir +set folder=~/Maildir/ +set sort=reverse-date-received +set pager_stop=yes +set fast_reply +set include=yes +# IMAP and INBOX (this should map to any existing IMAP folders) +folder-hook arachnitech/* source ~/.mutt/accounts/arachnitech +folder-hook franklin/* source ~/.mutt/accounts/franklin +# auto_view text/html +#alternative_order text/plain text/enriched text/html +auto_view text/html +auto_view text/calendar + +# Just do what I tell you to, consequences be damned +set noconfirmappend +#set confirmappend=yes +set delete=yes +# Show new notification when mail arrives +set new_mail_command="notify-send -t 2000 --icon='/home/kellya/images/mutt-1.png' -a mutt -c mail \ + 'New Emails' '%n new messages' &" + +# Run a script to cat anything that has .rc as the extension to auto source things +source ~/.mutt/sources.sh| + +# Addressbook lookup +set query_command="khard email -p '%s'" +bind editor complete-query +set editor="nvim -S ~/.mutt/vimrc" diff --git a/private_dot_mutt/notmuch.rc b/private_dot_mutt/notmuch.rc new file mode 100644 index 0000000..2817f5c --- /dev/null +++ b/private_dot_mutt/notmuch.rc @@ -0,0 +1,4 @@ +set nm_default_url = "notmuch:///home/kellya/Maildir" +virtual-mailboxes "━━━━━┫ Not Much ┣━━━━━" "notmuch://?query=tag:inbox" +virtual-mailboxes " Arachnitech INBOX" "notmuch://?query=tag:inbox&query=to:*arachnitech.com" +virtual-mailboxes " Franklin INBOX" "notmuch://?query=tag:inbox&query=to:*franklin.edu" diff --git a/private_dot_mutt/private_cache/private_bodies/private_imap:kellya@192.168.0.125:143/private_INBOX/private_1570538954-12920 b/private_dot_mutt/private_cache/private_bodies/private_imap:kellya@192.168.0.125:143/private_INBOX/private_1570538954-12920 new file mode 100644 index 0000000..55766d3 --- /dev/null +++ b/private_dot_mutt/private_cache/private_bodies/private_imap:kellya@192.168.0.125:143/private_INBOX/private_1570538954-12920 @@ -0,0 +1,264 @@ +Return-Path: +Received: from desis.arachnitech.com ([unix socket]) + by desis.arachnitech.com (Cyrus 2.5.15-28-g7d1550bfa-Kolab-2.5.15.28-1.20.el7.kolab_16) with LMTPA; + Wed, 10 Mar 2021 09:21:18 -0500 +X-Sieve: CMU Sieve 2.4 +X-Virus-Scanned: amavisd-new at arachnitech.com +X-Spam-Flag: NO +X-Spam-Score: -0.092 +X-Spam-Level: +X-Spam-Status: No, score=-0.092 tagged_above=-10 required=6.2 + tests=[DKIMWL_WL_HIGH=-0.243, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, + DKIM_VALID_AU=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.249, + HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, + URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no +Authentication-Results: desis.arachnitech.com (amavisd-new); + dkim=pass (1024-bit key) header.d=github.com +Received: from s214f.ik2.com (s214f.ik2.com [208.77.151.118]) + by desis.arachnitech.com (Postfix) with ESMTPS id 7ACBE350 + for ; Wed, 10 Mar 2021 09:21:14 -0500 (EST) +Received: from s250a.ik2.com + by s214f.ik2.com with esmtps (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) + (envelope-from ) id 1lJzi3-0004gV-TG + for kellya@arachnitech.com; Wed, 10 Mar 2021 14:21:12 +0000 +Received: from 192.30.252.201 by s250a.ik2.com (IK2 SMTP Server); + Wed, 10 Mar 2021 14:21:10 +0000 +Received: from github.com (hubbernetes-node-4f064af.va3-iad.github.net + [10.48.114.44]) + by smtp.github.com (Postfix) with ESMTPA id 057843406F2 + for ; Wed, 10 Mar 2021 06:21:08 -0800 (PST) +DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; + s=pf2014; t=1615386068; + bh=wfKjHC8f33f5tPC0r7vNXCoIwc1zGPt//UQubP8I+3Q=; + h=Date:From:To:Subject:From; + b=x9StawBnq6/L4X4nYAFqh0wbGYumrG5w0kox8qxPJOKLTYpIqu00DPSnKylTDXP5O + QI5c581RlP+snBhnlkw/QVv7mnbbEMg/0vjVlh73xa8Fp2oFPPtbyYWUIL1jA7wSsk + Ps2+CGwibuQ3i0ASH/K50enPoqaBeC9/9+qCdLN0= +Date: Wed, 10 Mar 2021 06:21:08 -0800 +From: GitHub +To: kellya@arachnitech.com +Message-ID: <6048d5d431e4_5ca17d41328f4@lowworker-7f6b9d8d47-rjzbw.mail> +Subject: =?UTF-8?Q?You're_in!_Welcome_to_GitHub_Sponsors_=F0=9F=92=96?= +Mime-Version: 1.0 +Content-Type: multipart/alternative; + boundary="--==_mimepart_6048d5d429f9_5ca17d41327fe"; + charset=UTF-8 +Content-Transfer-Encoding: 7bit +X-Auto-Response-Suppress: All +X-SF-RX-Return-Path: +X-SF-Originating-IP: 192.30.252.201 +X-SF-Score: 1.2 +X-SF-Alias: alex.kelly@arachnitech.com +X-SF-SRS: Sender address rewritten from to + +X-SF-Domain: ffsuvdhlly + + +----==_mimepart_6048d5d429f9_5ca17d41327fe +Content-Type: text/plain; + charset=UTF-8 +Content-Transfer-Encoding: quoted-printable + +# Welcome to GitHub Sponsors!=0D +=0D +You're just a couple of steps away from receiving your first funds as a s= +ponsored=0D +developer.=0D +=0D +### Step 1: Submit your contact information=0D +=0D +Before you can start filling out your GitHub Sponsors profile, please sub= +mit=0D +your contact information.=0D +=0D +https://github.com/sponsors/kellya/signup=0D +=0D +### Step 2: Create your GitHub Sponsors profile=0D +=0D +After submitting contact details, fill out your profile in your GitHub Sp= +onsors=0D +dashboard.=0D +=0D +https://github.com/sponsors/kellya/dashboard=0D +=0D +Here are some helpful guides:=0D +=0D +- Learn more about setting up your profile:=0D + https://docs.github.com/articles/becoming-a-sponsored-developer#complet= +ing-your-sponsored-developer-profile=0D +=0D +- Check out the Sponsors landing page to see how other developers set up = +their=0D + own profiles:=0D + https://github.com/sponsors=0D +=0D +### Step 3: Get your profile approved=0D +=0D +Once you complete your GitHub Sponsors profile, submit it for identity ve= +rification=0D +and approval by GitHub staff. We'll follow up by email when your profile = +has been approved.=0D +=0D +### Step 4: Get paid=0D +=0D + Once you receive your first sponsorship, you will be paid around the 22= +nd of each month!=0D +=0D +And that's it! Thank you for your contribution to open source =E2=80=94 w= +e're excited to see=0D +all the ways GitHub Sponsors can support you.=0D + +----==_mimepart_6048d5d429f9_5ca17d41327fe +Content-Type: text/html; + charset=UTF-8 +Content-Transfer-Encoding: 7bit + + + + + + +Welcome to GitHub Sponsors! + + + + + + + + + + + +
+
+ + +
+ + + + +
+ + GitHub + +
+
+ +

+ Welcome to GitHub Sponsors! +

+ +

+ You're just a couple of steps away from receiving your first funds as a sponsored developer. +

+ +

+ Step 1: Submit your contact information +

+ +

+ Before you can start filling out your GitHub Sponsors profile, please submit your contact information. +

+ +

+ Step 2: Create your GitHub Sponsors profile +

+ +pending GitHub Sponsors profile + +

+ Fill out your profile in + your GitHub Sponsors dashboard. Here are some helpful guides: +

+ + + +

+ Step 3: Get your profile approved +

+ +

+ Once you complete your GitHub Sponsors profile, submit it for identity verification and approval by GitHub staff. We'll follow up by email when your profile has been approved. +

+ +

+ Step 4: Get paid +

+ +

+ Once you receive your first sponsorship, you will be paid around the 22nd of each month! +

+ +

+ And that's it! Thank you for your contribution to open source — we're excited to see all the ways GitHub Sponsors can support you. +

+ + welcometocat + + +
+ +
+ + + + +----==_mimepart_6048d5d429f9_5ca17d41327fe-- diff --git a/private_dot_mutt/private_cache/private_headers b/private_dot_mutt/private_cache/private_headers new file mode 100644 index 0000000..6246f20 Binary files /dev/null and b/private_dot_mutt/private_cache/private_headers differ diff --git a/private_dot_mutt/vimrc b/private_dot_mutt/vimrc new file mode 100644 index 0000000..3319feb --- /dev/null +++ b/private_dot_mutt/vimrc @@ -0,0 +1,3 @@ +set textwidth=0 +set wrapmargin=0 +set spell spelllang=en_us