Delete old/unused configs
This commit is contained in:
@@ -1,639 +0,0 @@
|
||||
# Configuration for Alacritty, the GPU enhanced terminal emulator.
|
||||
|
||||
# Any items in the `env` entry below will be added as
|
||||
# environment variables. Some entries may override variables
|
||||
# set by alacritty itself.
|
||||
#env:
|
||||
# TERM variable
|
||||
#
|
||||
# This value is used to set the `$TERM` environment variable for
|
||||
# each instance of Alacritty. If it is not present, alacritty will
|
||||
# check the local terminfo database and use `alacritty` if it is
|
||||
# available, otherwise `xterm-256color` is used.
|
||||
#TERM: xterm-256color
|
||||
|
||||
window:
|
||||
# Window dimensions (changes require restart)
|
||||
#
|
||||
# Specified in number of columns/lines, not pixels.
|
||||
# If both are `0`, this setting is ignored.
|
||||
dimensions:
|
||||
columns: 120
|
||||
lines: 40
|
||||
|
||||
# Window position (changes require restart)
|
||||
#
|
||||
# Specified in number of pixels.
|
||||
# If the position is not set, the window manager will handle the placement.
|
||||
#position:
|
||||
# x: 0
|
||||
# y: 0
|
||||
|
||||
# Window padding (changes require restart)
|
||||
#
|
||||
# Blank space added around the window in pixels. This padding is scaled
|
||||
# by DPI and the specified value is always added at both opposing sides.
|
||||
padding:
|
||||
x: 0
|
||||
y: 0
|
||||
|
||||
# Spread additional padding evenly around the terminal content.
|
||||
dynamic_padding: false
|
||||
|
||||
# Window decorations
|
||||
#
|
||||
# Values for `decorations`:
|
||||
# - full: Borders and title bar
|
||||
# - none: Neither borders nor title bar
|
||||
#
|
||||
# Values for `decorations` (macOS only):
|
||||
# - transparent: Title bar, transparent background and title bar buttons
|
||||
# - buttonless: Title bar, transparent background, but no title bar buttons
|
||||
decorations: none
|
||||
|
||||
# Startup Mode (changes require restart)
|
||||
#
|
||||
# Values for `startup_mode`:
|
||||
# - Windowed
|
||||
# - Maximized
|
||||
# - Fullscreen
|
||||
#
|
||||
# Values for `startup_mode` (macOS only):
|
||||
# - SimpleFullscreen
|
||||
startup_mode: Windowed
|
||||
|
||||
# Window title
|
||||
#title: Alacritty
|
||||
|
||||
# Window class (Linux only):
|
||||
#class: Alacritty
|
||||
|
||||
scrolling:
|
||||
# Maximum number of lines in the scrollback buffer.
|
||||
# Specifying '0' will disable scrolling.
|
||||
history: 10000
|
||||
|
||||
# Number of lines the viewport will move for every line scrolled when
|
||||
# scrollback is enabled (history > 0).
|
||||
multiplier: 3
|
||||
|
||||
# Faux Scrolling
|
||||
#
|
||||
# The `faux_multiplier` setting controls the number of lines the terminal
|
||||
# should scroll when the alternate screen buffer is active. This is used
|
||||
# to allow mouse scrolling for applications like `man`.
|
||||
#
|
||||
# Specifying `0` will disable faux scrolling.
|
||||
faux_multiplier: 3
|
||||
|
||||
# Scroll to the bottom when new text is written to the terminal.
|
||||
auto_scroll: false
|
||||
|
||||
# Spaces per Tab (changes require restart)
|
||||
#
|
||||
# This setting defines the width of a tab in cells.
|
||||
#
|
||||
# Some applications, like Emacs, rely on knowing about the width of a tab.
|
||||
# To prevent unexpected behavior in these applications, it's also required to
|
||||
# change the `it` value in terminfo when altering this setting.
|
||||
tabspaces: 8
|
||||
|
||||
# Font configuration (changes require restart)
|
||||
font:
|
||||
# Normal (roman) font face
|
||||
#normal:
|
||||
# Font family
|
||||
#
|
||||
# Default:
|
||||
# - (macOS) Menlo
|
||||
# - (Linux) monospace
|
||||
# - (Windows) Consolas
|
||||
#family: monospace
|
||||
|
||||
# The `style` can be specified to pick a specific face.
|
||||
#style: Regular
|
||||
|
||||
# Bold font face
|
||||
#bold:
|
||||
# Font family
|
||||
#
|
||||
# If the bold family is not specified, it will fall back to the
|
||||
# value specified for the normal font.
|
||||
#family: monospace
|
||||
|
||||
# The `style` can be specified to pick a specific face.
|
||||
#style: Bold
|
||||
|
||||
# Italic font face
|
||||
#italic:
|
||||
# Font family
|
||||
#
|
||||
# If the italic family is not specified, it will fall back to the
|
||||
# value specified for the normal font.
|
||||
#family: monospace
|
||||
|
||||
# The `style` can be specified to pick a specific face.
|
||||
#style: Italic
|
||||
|
||||
# Point size
|
||||
size: 11.0
|
||||
|
||||
# Offset is the extra space around each character. `offset.y` can be thought of
|
||||
# as modifying the line spacing, and `offset.x` as modifying the letter spacing.
|
||||
offset:
|
||||
x: 0
|
||||
y: 0
|
||||
|
||||
# Glyph offset determines the locations of the glyphs within their cells with
|
||||
# the default being at the bottom. Increasing `x` moves the glyph to the right,
|
||||
# increasing `y` moves the glyph upwards.
|
||||
glyph_offset:
|
||||
x: 0
|
||||
y: 0
|
||||
|
||||
# Thin stroke font rendering (macOS only)
|
||||
#
|
||||
# Thin strokes are suitable for retina displays, but for non-retina screens
|
||||
# it is recommended to set `use_thin_strokes` to `false`
|
||||
#
|
||||
# macOS >= 10.14.x:
|
||||
#
|
||||
# If the font quality on non-retina display looks bad then set
|
||||
# `use_thin_strokes` to `true` and enable font smoothing by running the
|
||||
# following command:
|
||||
# `defaults write -g CGFontRenderingFontSmoothingDisabled -bool NO`
|
||||
#
|
||||
# This is a global setting and will require a log out or restart to take
|
||||
# effect.
|
||||
use_thin_strokes: true
|
||||
|
||||
# If `true`, bold text is drawn using the bright color variants.
|
||||
draw_bold_text_with_bright_colors: true
|
||||
|
||||
# Colors (Tomorrow Night Bright)
|
||||
colors:
|
||||
# Default colors
|
||||
primary:
|
||||
background: '0x000000'
|
||||
foreground: '0xeaeaea'
|
||||
|
||||
# Bright and dim foreground colors
|
||||
#
|
||||
# The dimmed foreground color is calculated automatically if it is not present.
|
||||
# If the bright foreground color is not set, or `draw_bold_text_with_bright_colors`
|
||||
# is `false`, the normal foreground color will be used.
|
||||
#dim_foreground: '0x9a9a9a'
|
||||
#bright_foreground: '0xffffff'
|
||||
|
||||
# Cursor colors
|
||||
#
|
||||
# Colors which should be used to draw the terminal cursor. If these are unset,
|
||||
# the cursor color will be the inverse of the cell color.
|
||||
#cursor:
|
||||
# text: '0x000000'
|
||||
# cursor: '0xffffff'
|
||||
|
||||
# Selection colors
|
||||
#
|
||||
# Colors which should be used to draw the selection area. If selection
|
||||
# background is unset, selection color will be the inverse of the cell colors.
|
||||
# If only text is unset the cell text color will remain the same.
|
||||
#selection:
|
||||
# text: '0xeaeaea'
|
||||
# background: '0x404040'
|
||||
|
||||
# Normal colors
|
||||
normal:
|
||||
black: '0x000000'
|
||||
red: '0xd54e53'
|
||||
green: '0xb9ca4a'
|
||||
yellow: '0xe6c547'
|
||||
blue: '0x7aa6da'
|
||||
magenta: '0xc397d8'
|
||||
cyan: '0x70c0ba'
|
||||
white: '0xeaeaea'
|
||||
|
||||
# Bright colors
|
||||
bright:
|
||||
black: '0x666666'
|
||||
red: '0xff3334'
|
||||
green: '0x9ec400'
|
||||
yellow: '0xe7c547'
|
||||
blue: '0x7aa6da'
|
||||
magenta: '0xb77ee0'
|
||||
cyan: '0x54ced6'
|
||||
white: '0xffffff'
|
||||
|
||||
# Dim colors
|
||||
#
|
||||
# If the dim colors are not set, they will be calculated automatically based
|
||||
# on the `normal` colors.
|
||||
#dim:
|
||||
# black: '0x000000'
|
||||
# red: '0x8c3336'
|
||||
# green: '0x7a8530'
|
||||
# yellow: '0x97822e'
|
||||
# blue: '0x506d8f'
|
||||
# magenta: '0x80638e'
|
||||
# cyan: '0x497e7a'
|
||||
# white: '0x9a9a9a'
|
||||
|
||||
# Indexed Colors
|
||||
#
|
||||
# The indexed colors include all colors from 16 to 256.
|
||||
# When these are not set, they're filled with sensible defaults.
|
||||
#
|
||||
# Example:
|
||||
# `- { index: 16, color: '0xff00ff' }`
|
||||
#
|
||||
indexed_colors: []
|
||||
|
||||
# Visual Bell
|
||||
#
|
||||
# Any time the BEL code is received, Alacritty "rings" the visual bell. Once
|
||||
# rung, the terminal background will be set to white and transition back to the
|
||||
# default background color. You can control the rate of this transition by
|
||||
# setting the `duration` property (represented in milliseconds). You can also
|
||||
# configure the transition function by setting the `animation` property.
|
||||
#
|
||||
# Values for `animation`:
|
||||
# - Ease
|
||||
# - EaseOut
|
||||
# - EaseOutSine
|
||||
# - EaseOutQuad
|
||||
# - EaseOutCubic
|
||||
# - EaseOutQuart
|
||||
# - EaseOutQuint
|
||||
# - EaseOutExpo
|
||||
# - EaseOutCirc
|
||||
# - Linear
|
||||
#
|
||||
# Specifying a `duration` of `0` will disable the visual bell.
|
||||
bell:
|
||||
animation: EaseOutExpo
|
||||
duration: 0
|
||||
color: '0xffffff'
|
||||
|
||||
# Background opacity
|
||||
#
|
||||
# Window opacity as a floating point number from `0.0` to `1.0`.
|
||||
# The value `0.0` is completely transparent and `1.0` is opaque.
|
||||
background_opacity: 1.0
|
||||
|
||||
# Mouse bindings
|
||||
#
|
||||
# Available fields:
|
||||
# - mouse
|
||||
# - action
|
||||
# - mods (optional)
|
||||
#
|
||||
# Values for `mouse`:
|
||||
# - Middle
|
||||
# - Left
|
||||
# - Right
|
||||
# - Numeric identifier such as `5`
|
||||
#
|
||||
# All available `mods` and `action` values are documented in the key binding
|
||||
# section.
|
||||
mouse_bindings:
|
||||
- { mouse: Middle, action: PasteSelection }
|
||||
|
||||
mouse:
|
||||
# Click settings
|
||||
#
|
||||
# The `double_click` and `triple_click` settings control the time
|
||||
# alacritty should wait for accepting multiple clicks as one double
|
||||
# or triple click.
|
||||
double_click: { threshold: 300 }
|
||||
triple_click: { threshold: 300 }
|
||||
|
||||
# If this is `true`, the cursor is temporarily hidden when typing.
|
||||
hide_when_typing: false
|
||||
|
||||
url:
|
||||
# URL launcher
|
||||
#
|
||||
# This program is executed when clicking on a text which is recognized as a URL.
|
||||
# The URL is always added to the command as the last parameter.
|
||||
#
|
||||
# When set to `None`, URL launching will be disabled completely.
|
||||
#
|
||||
# Default:
|
||||
# - (macOS) open
|
||||
# - (Linux) xdg-open
|
||||
# - (Windows) explorer
|
||||
#launcher:
|
||||
# program: xdg-open
|
||||
# args: []
|
||||
|
||||
# URL modifiers
|
||||
#
|
||||
# These are the modifiers that need to be held down for opening URLs when clicking
|
||||
# on them. The available modifiers are documented in the key binding section.
|
||||
modifiers: Shift
|
||||
|
||||
selection:
|
||||
semantic_escape_chars: ",│`|:\"' ()[]{}<>"
|
||||
|
||||
# When set to `true`, selected text will be copied to the primary clipboard.
|
||||
save_to_clipboard: false
|
||||
|
||||
# Allow terminal applications to change Alacritty's window title.
|
||||
dynamic_title: true
|
||||
|
||||
cursor:
|
||||
# Cursor style
|
||||
#
|
||||
# Values for `style`:
|
||||
# - ▇ Block
|
||||
# - _ Underline
|
||||
# - | Beam
|
||||
style: Block
|
||||
|
||||
# If this is `true`, the cursor will be rendered as a hollow box when the
|
||||
# window is not focused.
|
||||
unfocused_hollow: true
|
||||
|
||||
# Live config reload (changes require restart)
|
||||
live_config_reload: true
|
||||
|
||||
# Shell
|
||||
#
|
||||
# You can set `shell.program` to the path of your favorite shell, e.g. `/bin/fish`.
|
||||
# Entries in `shell.args` are passed unmodified as arguments to the shell.
|
||||
#
|
||||
# Default:
|
||||
# - (Linux/macOS) /bin/bash --login
|
||||
# - (Windows) powershell
|
||||
#shell:
|
||||
# program: /bin/bash
|
||||
# args:
|
||||
# - --login
|
||||
|
||||
# Startup directory
|
||||
#
|
||||
# Directory the shell is started in. If this is unset, or `None`, the working
|
||||
# directory of the parent process will be used.
|
||||
working_directory: None
|
||||
|
||||
# Windows 10 ConPTY backend (Windows only)
|
||||
#
|
||||
# This will enable better color support and may resolve other issues,
|
||||
# however this API and its implementation is still young and so is
|
||||
# disabled by default, as stability may not be as good as the winpty
|
||||
# backend.
|
||||
#
|
||||
# Alacritty will fall back to the WinPTY automatically if the ConPTY
|
||||
# backend cannot be initialized.
|
||||
enable_experimental_conpty_backend: false
|
||||
|
||||
# Send ESC (\x1b) before characters when alt is pressed.
|
||||
alt_send_esc: true
|
||||
|
||||
debug:
|
||||
# Display the time it takes to redraw each frame.
|
||||
render_timer: false
|
||||
|
||||
# Keep the log file after quitting Alacritty.
|
||||
persistent_logging: false
|
||||
|
||||
# Log level
|
||||
#
|
||||
# Values for `log_level`:
|
||||
# - None
|
||||
# - Error
|
||||
# - Warn
|
||||
# - Info
|
||||
# - Debug
|
||||
# - Trace
|
||||
log_level: Warn
|
||||
|
||||
# Print all received window events.
|
||||
print_events: false
|
||||
|
||||
# Record all characters and escape sequences as test data.
|
||||
ref_test: false
|
||||
|
||||
# Key bindings
|
||||
#
|
||||
# Key bindings are specified as a list of objects. Each binding will specify a
|
||||
# key and modifiers required to trigger it, terminal modes where the binding is
|
||||
# applicable, and what should be done when the key binding fires. It can either
|
||||
# send a byte sequence to the running application (`chars`), execute a
|
||||
# predefined action (`action`) or fork and execute a specified command plus
|
||||
# arguments (`command`).
|
||||
#
|
||||
# Bindings are always filled by default, but will be replaced when a new binding
|
||||
# with the same triggers is defined. To unset a default binding, it can be
|
||||
# mapped to the `None` action.
|
||||
#
|
||||
# Example:
|
||||
# `- { key: V, mods: Control|Shift, action: Paste }`
|
||||
#
|
||||
# Available fields:
|
||||
# - key
|
||||
# - mods (optional)
|
||||
# - chars | action | command (exactly one required)
|
||||
# - mode (optional)
|
||||
#
|
||||
# Values for `key`:
|
||||
# - `A` -> `Z`
|
||||
# - `F1` -> `F12`
|
||||
# - `Key1` -> `Key0`
|
||||
#
|
||||
# A full list with available key codes can be found here:
|
||||
# https://docs.rs/glutin/*/glutin/enum.VirtualKeyCode.html#variants
|
||||
#
|
||||
# Instead of using the name of the keys, the `key` field also supports using
|
||||
# the scancode of the desired key. Scancodes have to be specified as a
|
||||
# decimal number.
|
||||
# This command will allow you to display the hex scancodes for certain keys:
|
||||
# `showkey --scancodes`
|
||||
#
|
||||
# Values for `mods`:
|
||||
# - Command
|
||||
# - Control
|
||||
# - Option
|
||||
# - Super
|
||||
# - Shift
|
||||
# - Alt
|
||||
#
|
||||
# Multiple `mods` can be combined using `|` like this: `mods: Control|Shift`.
|
||||
# Whitespace and capitalization is relevant and must match the example.
|
||||
#
|
||||
# Values for `chars`:
|
||||
# The `chars` field writes the specified string to the terminal. This makes
|
||||
# it possible to pass escape sequences.
|
||||
# To find escape codes for bindings like `PageUp` ("\x1b[5~"), you can run
|
||||
# the command `showkey -a` outside of tmux.
|
||||
# Note that applications use terminfo to map escape sequences back to
|
||||
# keys. It is therefore required to update the terminfo when
|
||||
# changing an escape sequence.
|
||||
#
|
||||
# Values for `action`:
|
||||
# - Paste
|
||||
# - PasteSelection
|
||||
# - Copy
|
||||
# - IncreaseFontSize
|
||||
# - DecreaseFontSize
|
||||
# - ResetFontSize
|
||||
# - ScrollPageUp
|
||||
# - ScrollPageDown
|
||||
# - ScrollLineUp
|
||||
# - ScrollLineDown
|
||||
# - ScrollToTop
|
||||
# - ScrollToBottom
|
||||
# - ClearHistory
|
||||
# - Hide
|
||||
# - Quit
|
||||
# - ClearLogNotice
|
||||
# - SpawnNewInstance
|
||||
# - ToggleFullscreen
|
||||
# - None
|
||||
#
|
||||
# Values for `action` (macOS only):
|
||||
# - ToggleSimpleFullscreen: Enters fullscreen without occupying another space
|
||||
#
|
||||
# Values for `command`:
|
||||
# The `command` field must be a map containing a `program` string and
|
||||
# an `args` array of command line parameter strings.
|
||||
#
|
||||
# Example:
|
||||
# `command: { program: "alacritty", args: ["-e", "vttest"] }`
|
||||
#
|
||||
# Values for `mode`:
|
||||
# - ~AppCursor
|
||||
# - AppCursor
|
||||
# - ~AppKeypad
|
||||
# - AppKeypad
|
||||
key_bindings:
|
||||
# (Windows/Linux only)
|
||||
#- { key: V, mods: Control|Shift, action: Paste }
|
||||
#- { key: C, mods: Control|Shift, action: Copy }
|
||||
#- { key: Insert, mods: Shift, action: PasteSelection }
|
||||
#- { key: Key0, mods: Control, action: ResetFontSize }
|
||||
#- { key: Equals, mods: Control, action: IncreaseFontSize }
|
||||
#- { key: Add, mods: Control, action: IncreaseFontSize }
|
||||
#- { key: Subtract, mods: Control, action: DecreaseFontSize }
|
||||
#- { key: Minus, mods: Control, action: DecreaseFontSize }
|
||||
- { key: N, mods: Control|Shift, action: SpawnNewInstance }
|
||||
|
||||
# (macOS only)
|
||||
#- { key: Key0, mods: Command, action: ResetFontSize }
|
||||
#- { key: Equals, mods: Command, action: IncreaseFontSize }
|
||||
#- { key: Add, mods: Command, action: IncreaseFontSize }
|
||||
#- { key: Minus, mods: Command, action: DecreaseFontSize }
|
||||
#- { key: K, mods: Command, action: ClearHistory }
|
||||
#- { key: K, mods: Command, chars: "\x0c" }
|
||||
#- { key: V, mods: Command, action: Paste }
|
||||
#- { key: C, mods: Command, action: Copy }
|
||||
#- { key: H, mods: Command, action: Hide }
|
||||
#- { key: Q, mods: Command, action: Quit }
|
||||
#- { key: W, mods: Command, action: Quit }
|
||||
|
||||
- { key: Paste, action: Paste }
|
||||
- { key: Copy, action: Copy }
|
||||
- { key: L, mods: Control, action: ClearLogNotice }
|
||||
- { key: L, mods: Control, chars: "\x0c" }
|
||||
- { key: Home, mods: Alt, chars: "\x1b[1;3H" }
|
||||
- { key: Home, chars: "\x1bOH", mode: AppCursor }
|
||||
- { key: Home, chars: "\x1b[H", mode: ~AppCursor }
|
||||
- { key: End, mods: Alt, chars: "\x1b[1;3F" }
|
||||
- { key: End, chars: "\x1bOF", mode: AppCursor }
|
||||
- { key: End, chars: "\x1b[F", mode: ~AppCursor }
|
||||
- { key: PageUp, mods: Shift, action: ScrollPageUp, mode: ~Alt }
|
||||
- { key: PageUp, mods: Shift, chars: "\x1b[5;2~", mode: Alt }
|
||||
- { key: PageUp, mods: Control, chars: "\x1b[5;5~" }
|
||||
- { key: PageUp, mods: Alt, chars: "\x1b[5;3~" }
|
||||
- { key: PageUp, chars: "\x1b[5~" }
|
||||
- { key: PageDown, mods: Shift, action: ScrollPageDown, mode: ~Alt }
|
||||
- { key: PageDown, mods: Shift, chars: "\x1b[6;2~", mode: Alt }
|
||||
- { key: PageDown, mods: Control, chars: "\x1b[6;5~" }
|
||||
- { key: PageDown, mods: Alt, chars: "\x1b[6;3~" }
|
||||
- { key: PageDown, chars: "\x1b[6~" }
|
||||
- { key: Tab, mods: Shift, chars: "\x1b[Z" }
|
||||
- { key: Back, chars: "\x7f" }
|
||||
- { key: Back, mods: Alt, chars: "\x1b\x7f" }
|
||||
- { key: Insert, chars: "\x1b[2~" }
|
||||
- { key: Delete, chars: "\x1b[3~" }
|
||||
- { key: Left, mods: Shift, chars: "\x1b[1;2D" }
|
||||
- { key: Left, mods: Control, chars: "\x1b[1;5D" }
|
||||
- { key: Left, mods: Alt, chars: "\x1b[1;3D" }
|
||||
- { key: Left, chars: "\x1b[D", mode: ~AppCursor }
|
||||
- { key: Left, chars: "\x1bOD", mode: AppCursor }
|
||||
- { key: Right, mods: Shift, chars: "\x1b[1;2C" }
|
||||
- { key: Right, mods: Control, chars: "\x1b[1;5C" }
|
||||
- { key: Right, mods: Alt, chars: "\x1b[1;3C" }
|
||||
- { key: Right, chars: "\x1b[C", mode: ~AppCursor }
|
||||
- { key: Right, chars: "\x1bOC", mode: AppCursor }
|
||||
- { key: Up, mods: Shift, chars: "\x1b[1;2A" }
|
||||
- { key: Up, mods: Control, chars: "\x1b[1;5A" }
|
||||
- { key: Up, mods: Alt, chars: "\x1b[1;3A" }
|
||||
- { key: Up, chars: "\x1b[A", mode: ~AppCursor }
|
||||
- { key: Up, chars: "\x1bOA", mode: AppCursor }
|
||||
- { key: Down, mods: Shift, chars: "\x1b[1;2B" }
|
||||
- { key: Down, mods: Control, chars: "\x1b[1;5B" }
|
||||
- { key: Down, mods: Alt, chars: "\x1b[1;3B" }
|
||||
- { key: Down, chars: "\x1b[B", mode: ~AppCursor }
|
||||
- { key: Down, chars: "\x1bOB", mode: AppCursor }
|
||||
- { key: F1, chars: "\x1bOP" }
|
||||
- { key: F2, chars: "\x1bOQ" }
|
||||
- { key: F3, chars: "\x1bOR" }
|
||||
- { key: F4, chars: "\x1bOS" }
|
||||
- { key: F5, chars: "\x1b[15~" }
|
||||
- { key: F6, chars: "\x1b[17~" }
|
||||
- { key: F7, chars: "\x1b[18~" }
|
||||
- { key: F8, chars: "\x1b[19~" }
|
||||
- { key: F9, chars: "\x1b[20~" }
|
||||
- { key: F10, chars: "\x1b[21~" }
|
||||
- { key: F11, chars: "\x1b[23~" }
|
||||
- { key: F12, chars: "\x1b[24~" }
|
||||
- { key: F1, mods: Shift, chars: "\x1b[1;2P" }
|
||||
- { key: F2, mods: Shift, chars: "\x1b[1;2Q" }
|
||||
- { key: F3, mods: Shift, chars: "\x1b[1;2R" }
|
||||
- { key: F4, mods: Shift, chars: "\x1b[1;2S" }
|
||||
- { key: F5, mods: Shift, chars: "\x1b[15;2~" }
|
||||
- { key: F6, mods: Shift, chars: "\x1b[17;2~" }
|
||||
- { key: F7, mods: Shift, chars: "\x1b[18;2~" }
|
||||
- { key: F8, mods: Shift, chars: "\x1b[19;2~" }
|
||||
- { key: F9, mods: Shift, chars: "\x1b[20;2~" }
|
||||
- { key: F10, mods: Shift, chars: "\x1b[21;2~" }
|
||||
- { key: F11, mods: Shift, chars: "\x1b[23;2~" }
|
||||
- { key: F12, mods: Shift, chars: "\x1b[24;2~" }
|
||||
- { key: F1, mods: Control, chars: "\x1b[1;5P" }
|
||||
- { key: F2, mods: Control, chars: "\x1b[1;5Q" }
|
||||
- { key: F3, mods: Control, chars: "\x1b[1;5R" }
|
||||
- { key: F4, mods: Control, chars: "\x1b[1;5S" }
|
||||
- { key: F5, mods: Control, chars: "\x1b[15;5~" }
|
||||
- { key: F6, mods: Control, chars: "\x1b[17;5~" }
|
||||
- { key: F7, mods: Control, chars: "\x1b[18;5~" }
|
||||
- { key: F8, mods: Control, chars: "\x1b[19;5~" }
|
||||
- { key: F9, mods: Control, chars: "\x1b[20;5~" }
|
||||
- { key: F10, mods: Control, chars: "\x1b[21;5~" }
|
||||
- { key: F11, mods: Control, chars: "\x1b[23;5~" }
|
||||
- { key: F12, mods: Control, chars: "\x1b[24;5~" }
|
||||
- { key: F1, mods: Alt, chars: "\x1b[1;6P" }
|
||||
- { key: F2, mods: Alt, chars: "\x1b[1;6Q" }
|
||||
- { key: F3, mods: Alt, chars: "\x1b[1;6R" }
|
||||
- { key: F4, mods: Alt, chars: "\x1b[1;6S" }
|
||||
- { key: F5, mods: Alt, chars: "\x1b[15;6~" }
|
||||
- { key: F6, mods: Alt, chars: "\x1b[17;6~" }
|
||||
- { key: F7, mods: Alt, chars: "\x1b[18;6~" }
|
||||
- { key: F8, mods: Alt, chars: "\x1b[19;6~" }
|
||||
- { key: F9, mods: Alt, chars: "\x1b[20;6~" }
|
||||
- { key: F10, mods: Alt, chars: "\x1b[21;6~" }
|
||||
- { key: F11, mods: Alt, chars: "\x1b[23;6~" }
|
||||
- { key: F12, mods: Alt, chars: "\x1b[24;6~" }
|
||||
- { key: F1, mods: Super, chars: "\x1b[1;3P" }
|
||||
- { key: F2, mods: Super, chars: "\x1b[1;3Q" }
|
||||
- { key: F3, mods: Super, chars: "\x1b[1;3R" }
|
||||
- { key: F4, mods: Super, chars: "\x1b[1;3S" }
|
||||
- { key: F5, mods: Super, chars: "\x1b[15;3~" }
|
||||
- { key: F6, mods: Super, chars: "\x1b[17;3~" }
|
||||
- { key: F7, mods: Super, chars: "\x1b[18;3~" }
|
||||
- { key: F8, mods: Super, chars: "\x1b[19;3~" }
|
||||
- { key: F9, mods: Super, chars: "\x1b[20;3~" }
|
||||
- { key: F10, mods: Super, chars: "\x1b[21;3~" }
|
||||
- { key: F11, mods: Super, chars: "\x1b[23;3~" }
|
||||
- { key: F12, mods: Super, chars: "\x1b[24;3~" }
|
||||
- { key: NumpadEnter, chars: "\n" }
|
||||
@@ -1,2 +0,0 @@
|
||||
install: --no-rdoc --no-ri
|
||||
update: --no-rdoc --no-ri
|
||||
@@ -1,10 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
MAX_DESKTOPS=20
|
||||
|
||||
WORKSPACES=$(seq -s '\n' 1 1 ${MAX_DESKTOPS})
|
||||
|
||||
EMPTY_WORKSPACE=$( (i3-msg -t get_workspaces | tr ',' '\n' | grep num | awk -F: '{print int($2)}' ; \
|
||||
echo -e ${WORKSPACES} ) | sort -n | uniq -u | head -n 1)
|
||||
|
||||
i3-msg workspace ${EMPTY_WORKSPACE}
|
||||
@@ -1,5 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
pushd ~/.dotfiles/i3/ &> /dev/null
|
||||
python3 binds.py > config
|
||||
i3-msg reload
|
||||
@@ -1,14 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
function gen_workspaces()
|
||||
{
|
||||
i3-msg -t get_workspaces | tr ',' '\n' | grep "name" | sed 's/"name":"\(.*\)"/\1/g' | sort -n
|
||||
}
|
||||
|
||||
|
||||
WORKSPACE=$( gen_workspaces | rofi -dmenu -i -p "Select workspace:")
|
||||
|
||||
if [ -n "${WORKSPACE}" ]
|
||||
then
|
||||
i3-msg move container to workspace "${WORKSPACE}"
|
||||
fi
|
||||
@@ -1,17 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
function gen_workspaces()
|
||||
{
|
||||
i3-msg -t get_workspaces | tr ',' '\n' | grep "name" | sed 's/"name":"\(.*\)"/\1/g' | sort -n
|
||||
}
|
||||
|
||||
|
||||
WORKSPACE=$( (echo empty; gen_workspaces) | rofi -dmenu -i -p "Select workspace:")
|
||||
|
||||
if [ x"empty" = x"${WORKSPACE}" ]
|
||||
then
|
||||
i3_empty_workspace.sh
|
||||
elif [ -n "${WORKSPACE}" ]
|
||||
then
|
||||
i3-msg workspace "${WORKSPACE}"
|
||||
fi
|
||||
@@ -1,22 +0,0 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Attach or create tmux session named the same as current directory.
|
||||
|
||||
session_name="$(basename "$PWD" | tr . -)"
|
||||
|
||||
session_exists() {
|
||||
tmux list-sessions | sed -E 's/:.*$//' | grep -q "^$session_name$"
|
||||
}
|
||||
|
||||
not_in_tmux() {
|
||||
[ -z "$TMUX" ]
|
||||
}
|
||||
|
||||
if not_in_tmux; then
|
||||
tmux new-session -As "$session_name"
|
||||
else
|
||||
if ! session_exists; then
|
||||
(TMUX='' tmux new-session -Ad -s "$session_name")
|
||||
fi
|
||||
tmux switch-client -t "$session_name"
|
||||
fi
|
||||
@@ -1,548 +0,0 @@
|
||||
# A script to generate keybindings for i3 Window Manager modes with consistent behavior and help text.
|
||||
from __future__ import annotations
|
||||
|
||||
import io
|
||||
from contextlib import redirect_stdout
|
||||
from dataclasses import dataclass, field
|
||||
from pathlib import Path
|
||||
from textwrap import indent
|
||||
from typing import List, Optional, Dict, Tuple
|
||||
|
||||
|
||||
@dataclass
|
||||
class Binding:
|
||||
"""An abstract superclass for both mode and command bindings."""
|
||||
|
||||
name: str
|
||||
key: str = field(default="")
|
||||
|
||||
# Execute the binding only on key release
|
||||
release: bool = field(default=False)
|
||||
|
||||
# A hidden binding won't show up in mode descriptions. Useful if you want to have
|
||||
# a second version of a binding with a modifier key, but don't need it to show up separately."""
|
||||
hidden: bool = field(default=False)
|
||||
# Override the binding's default hint text.
|
||||
hint: str = field(init=False, default="")
|
||||
|
||||
def __post_init__(self):
|
||||
if not self.key:
|
||||
self.key = self.name.lower()[0]
|
||||
|
||||
def binding(self, in_mode: Optional[str] = None) -> str:
|
||||
pass
|
||||
|
||||
def _bind_prefix(self, key: Optional[str] = None) -> str:
|
||||
prefix = "bindsym "
|
||||
if self.release:
|
||||
prefix += "--release "
|
||||
prefix += key or self.key
|
||||
return prefix
|
||||
|
||||
def mode_hint(self) -> str:
|
||||
"""How to display this binding in the help text of a Mode."""
|
||||
if self.hint:
|
||||
return self.hint
|
||||
|
||||
if len(self.key) == 1 and self.key in self.name:
|
||||
return self.name.replace(self.key, f"<b>{self.key}</b>", 1)
|
||||
|
||||
return f"[{self.key}]{self.name}"
|
||||
|
||||
|
||||
@dataclass
|
||||
class Mode(Binding):
|
||||
"""A mode which can contain a list of sub-bindings, which may be a mix of commands and modes.
|
||||
exit_bindings contains a list of binds that will cancel the mode and return to default."""
|
||||
|
||||
bindings: List[Binding] = field(default_factory=list)
|
||||
|
||||
exit_bindings = [
|
||||
"Return",
|
||||
"Escape",
|
||||
"control+g",
|
||||
"control+bracketleft",
|
||||
]
|
||||
|
||||
def __post_init__(self):
|
||||
super().__post_init__()
|
||||
|
||||
used_keys: Dict[str, Binding] = {}
|
||||
for binding in self.bindings:
|
||||
# Deconflicting directional bindings is complicated, so let's punt on it for now
|
||||
if isinstance(binding, Directional):
|
||||
continue
|
||||
err_base = (
|
||||
f"Binding {binding.key} for {self.name}.{binding.name} conflicts with "
|
||||
)
|
||||
if binding.key in self.exit_bindings:
|
||||
raise ValueError(err_base + "mode escape key.")
|
||||
if binding.key in used_keys:
|
||||
raise ValueError(err_base + used_keys[binding.key].name)
|
||||
used_keys[binding.key] = binding
|
||||
|
||||
def mode_name(self, parent: Optional[str]) -> str:
|
||||
"""The full name of the mode including its parents names, for disambiguation."""
|
||||
if parent:
|
||||
return f"{parent}_{self.name}"
|
||||
else:
|
||||
return self.name
|
||||
|
||||
def mode_var(self, parent: Optional[str]) -> str:
|
||||
"""The name of the variable representing the mode."""
|
||||
return f"$mode_{self.mode_name(parent)}"
|
||||
|
||||
def mode_label(self, parent: Optional[str]) -> str:
|
||||
"""The mode label to show at the start of the mode help text."""
|
||||
lineage = self.mode_name(parent).split("_")
|
||||
|
||||
# Remove the common [space] prefix on nested modes.
|
||||
if len(lineage) > 1:
|
||||
lineage.remove("space")
|
||||
return "".join(f"[{part}]" for part in lineage)
|
||||
|
||||
def mode_def(self, parent: Optional[str]) -> str:
|
||||
name = self.mode_name(parent)
|
||||
var = self.mode_var(parent)
|
||||
|
||||
binding_names = ", ".join(
|
||||
[binding.mode_hint() for binding in self.bindings if not binding.hidden]
|
||||
)
|
||||
help_text = f"{self.mode_label(parent)}: {binding_names}"
|
||||
|
||||
mode = f"set {var} {help_text}\n" f'mode --pango_markup "{var}" {{\n'
|
||||
|
||||
for binding in self.bindings:
|
||||
mode += indent(binding.binding(name) + "\n", " ")
|
||||
|
||||
for binding in self.exit_bindings:
|
||||
mode += indent(f'{self._bind_prefix(binding)} mode "default"\n', " ")
|
||||
|
||||
mode += "}\n"
|
||||
|
||||
submodes = [binding for binding in self.bindings if isinstance(binding, Mode)]
|
||||
|
||||
for sub in submodes:
|
||||
mode += "\n"
|
||||
mode += sub.mode_def(name)
|
||||
|
||||
return mode
|
||||
|
||||
def binding(self, parent: Optional[str] = None) -> str:
|
||||
return f'{self._bind_prefix()} mode "{self.mode_var(parent)}"'
|
||||
|
||||
|
||||
@dataclass
|
||||
class Command(Binding):
|
||||
command: Optional[str] = field(default=None)
|
||||
exit_mode: bool = field(default=True)
|
||||
|
||||
def __post_init__(self):
|
||||
super().__post_init__()
|
||||
if not self.command:
|
||||
self.command = self.name.lower()
|
||||
|
||||
def binding(self, parent: Optional[str] = None) -> str:
|
||||
return self._binding(self.key, self.command, parent)
|
||||
|
||||
def _binding(self, key: str, command: str, parent: Optional[str] = None) -> str:
|
||||
bind = f"{self._bind_prefix(key)} {command}"
|
||||
if parent and self.exit_mode:
|
||||
bind += ', mode "default"'
|
||||
return bind
|
||||
|
||||
|
||||
@dataclass
|
||||
class Exec(Command):
|
||||
startup_id: bool = field(default=False)
|
||||
|
||||
def binding(self, parent: Optional[str] = None) -> str:
|
||||
return self._binding(
|
||||
self.key,
|
||||
f"exec {'--no-startup-id ' if not self.startup_id else ''}{self.command}",
|
||||
parent,
|
||||
)
|
||||
|
||||
|
||||
@dataclass
|
||||
class Directional(Command):
|
||||
"""A convenience class for directional commands that can be executed upleft/down/up/right with h/j/k/l or the
|
||||
arrow keys. Optional parameters include a subset of directions to use, and a modifier for the command.
|
||||
The command should include the template variable {direction}."""
|
||||
|
||||
subset: Optional[List[str]] = None
|
||||
modifier: Optional[str] = None
|
||||
flip: bool = False
|
||||
|
||||
flips = {"left": "right", "right": "left", "down": "up", "up": "down"}
|
||||
|
||||
directions = {
|
||||
"left": ["h", "Left"],
|
||||
"down": ["j", "Down"],
|
||||
"up": ["k", "Up"],
|
||||
"right": ["l", "Right"],
|
||||
}
|
||||
|
||||
def prefix(self) -> str:
|
||||
return self.modifier + "+" if self.modifier else ""
|
||||
|
||||
def used_keys(self) -> Tuple[List[str], List[str]]:
|
||||
letter_keys = []
|
||||
arrow_keys = []
|
||||
|
||||
for direction in self.directions:
|
||||
if not self.subset or direction in self.subset:
|
||||
letter, arrow = self.directions[direction]
|
||||
letter_keys.append(letter)
|
||||
arrow_keys.append(arrow)
|
||||
|
||||
return letter_keys, arrow_keys
|
||||
|
||||
def mode_hint(self) -> str:
|
||||
letter_keys, arrow_keys = self.used_keys()
|
||||
|
||||
hint = self.prefix() + "<b>"
|
||||
|
||||
hint += "/".join(letter_keys)
|
||||
hint += "/"
|
||||
hint += "/".join(arrow_keys)
|
||||
|
||||
hint += f"</b> {self.name}"
|
||||
return hint
|
||||
|
||||
def binding(self, parent: Optional[str] = None):
|
||||
bind = ""
|
||||
for direction, keys in self.directions.items():
|
||||
if not self.subset or direction in self.subset:
|
||||
if self.flip:
|
||||
direction = self.flips[direction]
|
||||
for key in keys:
|
||||
bind += self._binding(self.prefix() + key, self.command).format(
|
||||
direction=direction
|
||||
)
|
||||
bind += "\n"
|
||||
return bind
|
||||
|
||||
|
||||
@dataclass
|
||||
class App:
|
||||
"""
|
||||
Required args:
|
||||
name: The name of the app.
|
||||
Accepted args:
|
||||
key: The key to use. Defaults to the first lower case letter of the name.
|
||||
Regular press will try to switch to the app if it's already open.
|
||||
Shift press will guarantee opening a new instance. Shift bindings are hidden from mode help text.
|
||||
|
||||
path: The binary to execute. Defaults to the lowercase version of the name.
|
||||
args: Args to pass to the app on launch
|
||||
class: The X11 Window Class to search for. Defaults to the app name. Case insensitive.
|
||||
title: The X11 Window Title to search for.
|
||||
switch: If True, switch to the app instead of launching a new instance unless shift is held. Default True.
|
||||
"""
|
||||
|
||||
name: str
|
||||
key: str = field(default="")
|
||||
path: str = field(default="")
|
||||
args: str = field(default="")
|
||||
window_class: str = field(default="")
|
||||
window_title: str = field(default="")
|
||||
switch: bool = field(default=True)
|
||||
|
||||
def __post_init__(self):
|
||||
if not self.key:
|
||||
self.key = self.name.lower()[0]
|
||||
if not self.path:
|
||||
self.path = self.name.lower()
|
||||
if not self.window_class:
|
||||
self.window_class = self.name
|
||||
|
||||
@property
|
||||
def class_query(self) -> str:
|
||||
return f'class="(?i){self.window_class}"'
|
||||
|
||||
@property
|
||||
def title_query(self) -> str:
|
||||
if self.window_title:
|
||||
return f' title="(?i){self.window_title}"'
|
||||
else:
|
||||
return ""
|
||||
|
||||
@property
|
||||
def query(self) -> str:
|
||||
return f"[{self.class_query}{self.title_query}]"
|
||||
|
||||
def commands(self) -> List[Command]:
|
||||
cmd = f"{self.path} {self.args}"
|
||||
switch_cmd = f"pgrep {self.path} && i3-msg '{self.query} focus' || {cmd}"
|
||||
|
||||
commands = [
|
||||
Exec(self.name, key=self.key, command=switch_cmd if self.switch else cmd),
|
||||
Exec(self.name, key=f"Shift+{self.key}", command=cmd, hidden=True),
|
||||
]
|
||||
|
||||
return commands
|
||||
|
||||
@staticmethod
|
||||
def find(name: str) -> Optional[App]:
|
||||
for app in apps:
|
||||
if app.name == name:
|
||||
return app
|
||||
return None
|
||||
|
||||
|
||||
apps = [
|
||||
App("firefox"),
|
||||
App("kitty", key="t", args="--single-instance", switch=False),
|
||||
App("emacs"),
|
||||
App("pycharm"),
|
||||
App("idea", key="j"),
|
||||
App("discord"),
|
||||
App("slack"),
|
||||
App("zoom"),
|
||||
App(
|
||||
"windows",
|
||||
path="virt-viewer",
|
||||
args="--connect qemu:///system -w Windows10",
|
||||
window_class="virt-viewer",
|
||||
),
|
||||
]
|
||||
|
||||
bindings = [
|
||||
Exec("Terminal", key="$mod+Return", command="kitty --single-instance"),
|
||||
Command("Close Window", key="$mod+q", command="kill"),
|
||||
Command("split", key="$mod+s", command="split h"),
|
||||
Command("vertical split", key="$mod+v", command="split v"),
|
||||
Command("next workspace", key="$mod+Tab", command="workspace next_on_output"),
|
||||
Command("next workspace", key="$alt+Shift+Next", command="workspace next_on_output"),
|
||||
Command("prev workspace", key="$mod+Shift+Tab", command="workspace prev_on_output"),
|
||||
Command("prev workspace", key="$alt+Shift+Prior", command="workspace prev_on_output"),
|
||||
# Volume control
|
||||
Exec(
|
||||
"Volume Up",
|
||||
key="XF86AudioRaiseVolume",
|
||||
command="pactl set-sink-volume @DEFAULT_SINK@ +10%",
|
||||
startup_id=False,
|
||||
),
|
||||
Exec(
|
||||
"Volume Down",
|
||||
key="XF86AudioLowerVolume",
|
||||
command="pactl set-sink-volume @DEFAULT_SINK@ -10%",
|
||||
startup_id=False,
|
||||
),
|
||||
Exec(
|
||||
"Mute",
|
||||
key="XF86AudioMute",
|
||||
command="pactl set-sink-mute @DEFAULT_SINK@ toggle",
|
||||
startup_id=False,
|
||||
),
|
||||
Directional("Focus", command="focus {direction}", modifier="$mod"),
|
||||
Directional(
|
||||
"Move", command="move {direction}", modifier="$mod+Shift", release=True
|
||||
),
|
||||
Mode(
|
||||
"space",
|
||||
key="$mod+space",
|
||||
bindings=[
|
||||
Exec("Run", key="space", command="rofi -show run"),
|
||||
Mode(
|
||||
"workspace",
|
||||
key="p",
|
||||
bindings=[
|
||||
Mode(
|
||||
"move",
|
||||
bindings=[
|
||||
Directional(
|
||||
"Move",
|
||||
command="exec --no-startup-id i3-msg move workspace to output {direction}",
|
||||
subset=["left", "right"],
|
||||
exit_mode=False,
|
||||
),
|
||||
],
|
||||
),
|
||||
Exec("switch to", key="p", command="i3_switch_workspace.sh"),
|
||||
],
|
||||
),
|
||||
Mode(
|
||||
"window",
|
||||
bindings=[
|
||||
Command("delete", command="kill"),
|
||||
Command("fullscreen", command="fullscreen toggle"),
|
||||
Command("float", key="o", command="floating toggle"),
|
||||
Command("parent", command="focus parent", exit_mode=False),
|
||||
Mode(
|
||||
"move",
|
||||
bindings=[
|
||||
Directional(
|
||||
"Move",
|
||||
command="move {direction}",
|
||||
exit_mode=False,
|
||||
release=True,
|
||||
),
|
||||
Exec(
|
||||
"to workspace",
|
||||
key="p",
|
||||
command="i3_send_to_workspace.sh",
|
||||
),
|
||||
],
|
||||
),
|
||||
Mode(
|
||||
"resize",
|
||||
bindings=[
|
||||
Directional(
|
||||
"Grow",
|
||||
command="resize grow {direction} 10 px or 10 ppt",
|
||||
exit_mode=False,
|
||||
),
|
||||
Directional(
|
||||
"Shrink",
|
||||
command="resize shrink {direction} 10 px or 10 ppt",
|
||||
modifier="Shift",
|
||||
exit_mode=False,
|
||||
flip=True,
|
||||
),
|
||||
],
|
||||
),
|
||||
Mode(
|
||||
"layout",
|
||||
bindings=[
|
||||
Command("split", command="toggle split"),
|
||||
Command("tabbed", command="layout tabbed"),
|
||||
Command("stacking", key="k", command="layout stacking"),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
Mode("open", bindings=[cmd for app in apps for cmd in app.commands()]),
|
||||
Mode(
|
||||
"goto",
|
||||
bindings=[
|
||||
Exec("server", command="rofi -show ssh"),
|
||||
],
|
||||
),
|
||||
Mode(
|
||||
"quit",
|
||||
bindings=[
|
||||
Exec("logout", key="q", command="i3-msg exit"),
|
||||
Exec("reload", command="i3_reconfigure", key="r"),
|
||||
Command("restart", key="Shift+r"),
|
||||
Mode(
|
||||
"system",
|
||||
bindings=[
|
||||
Exec(
|
||||
"suspend", startup_id=False, command="systemctl suspend"
|
||||
),
|
||||
Exec(
|
||||
"reboot", startup_id=False, command="systemctl reboot"
|
||||
),
|
||||
Exec(
|
||||
"power off",
|
||||
startup_id=False,
|
||||
command="systemctl poweroff",
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
]
|
||||
|
||||
|
||||
@dataclass
|
||||
class Output:
|
||||
name: str
|
||||
pos: str
|
||||
mode: str = field(default="2560x1440")
|
||||
rate: int = field(default=60)
|
||||
primary: bool = field(default=False)
|
||||
|
||||
def xrandr_flags(self) -> str:
|
||||
flags = f"--output {self.name} --pos {self.pos} --mode {self.mode} --rate {self.rate}"
|
||||
if self.primary:
|
||||
flags += " --primary"
|
||||
return flags
|
||||
|
||||
|
||||
outputs = [
|
||||
Output("DP-0", "0x0"),
|
||||
Output("DP-4", "2560x0", rate=144, primary=True),
|
||||
Output("HDMI-0", "5120x0"),
|
||||
]
|
||||
|
||||
|
||||
def xrandr_command() -> str:
|
||||
cmd = "exec --no-startup-id xrandr\\\n"
|
||||
for output in outputs:
|
||||
cmd += indent(output.xrandr_flags() + " \\\n", " ")
|
||||
cmd = cmd[:-3]
|
||||
return cmd
|
||||
|
||||
|
||||
@dataclass
|
||||
class Workspace:
|
||||
name: str
|
||||
output: str = field(default="primary")
|
||||
assigned_apps: List[str] = field(default_factory=list)
|
||||
|
||||
def config(self, index: int) -> str:
|
||||
ws_var = f"$ws_{self.name.lower()}"
|
||||
cfg = f"set {ws_var} {index}: {self.name}\n"
|
||||
cfg += f'workspace "{ws_var}" output {self.output}\n'
|
||||
for a in self.assigned_apps:
|
||||
app = App.find(a)
|
||||
if not app:
|
||||
raise ValueError(f"Couldn't find app {a}")
|
||||
cfg += f'assign {app.query} "{ws_var}"\n'
|
||||
|
||||
return cfg
|
||||
|
||||
|
||||
workspaces = [
|
||||
Workspace("Main", output="DP-4"),
|
||||
Workspace("Tasks", output="DP-0", assigned_apps=["windows"]),
|
||||
Workspace("Comms", output="HDMI-0", assigned_apps=["discord", "slack"]),
|
||||
Workspace("Python", output="primary", assigned_apps=["pycharm"]),
|
||||
Workspace("Java", output="primary", assigned_apps=["idea"]),
|
||||
]
|
||||
|
||||
|
||||
def workspace_config() -> str:
|
||||
f = io.StringIO()
|
||||
|
||||
with redirect_stdout(f):
|
||||
for idx, workspace in enumerate(workspaces):
|
||||
print(workspace.config(idx + 1))
|
||||
|
||||
return f.getvalue()
|
||||
|
||||
|
||||
def binds_config() -> str:
|
||||
f = io.StringIO()
|
||||
|
||||
preamble = (Path(__file__).parent / "preamble").read_text()
|
||||
postscript = (Path(__file__).parent / "postscript").read_text()
|
||||
|
||||
with redirect_stdout(f):
|
||||
print(preamble)
|
||||
print()
|
||||
print(xrandr_command())
|
||||
print()
|
||||
for binding in bindings:
|
||||
if isinstance(binding, Mode):
|
||||
print(binding.mode_def(None))
|
||||
print(binding.binding())
|
||||
|
||||
print()
|
||||
print(workspace_config(), end="")
|
||||
print(postscript)
|
||||
|
||||
return f.getvalue()
|
||||
|
||||
|
||||
def main():
|
||||
print(binds_config())
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -1,245 +0,0 @@
|
||||
set $mod Mod4
|
||||
set $alt Mod1
|
||||
|
||||
# Use Mouse+$mod to drag floating windows to their wanted position
|
||||
floating_modifier $alt
|
||||
|
||||
# Font for window titles. Will also be used by the bar unless a different font
|
||||
# is used in the bar {} block below.
|
||||
font pango:DejaVu Sans Mono 10
|
||||
|
||||
exec --no-startup-id compton
|
||||
|
||||
|
||||
exec --no-startup-id xrandr\
|
||||
--output DP-0 --pos 0x0 --mode 2560x1440 --rate 60 \
|
||||
--output DP-4 --pos 2560x0 --mode 2560x1440 --rate 144 --primary \
|
||||
--output HDMI-0 --pos 5120x0 --mode 2560x1440 --rate 60
|
||||
|
||||
bindsym $mod+Return exec --no-startup-id kitty --single-instance
|
||||
bindsym $mod+q kill
|
||||
bindsym $mod+s split h
|
||||
bindsym $mod+v split v
|
||||
bindsym $mod+Tab workspace next_on_output
|
||||
bindsym $alt+Shift+Next workspace next_on_output
|
||||
bindsym $mod+Shift+Tab workspace prev_on_output
|
||||
bindsym $alt+Shift+Prior workspace prev_on_output
|
||||
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10%
|
||||
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10%
|
||||
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle
|
||||
bindsym $mod+h focus left
|
||||
bindsym $mod+Left focus left
|
||||
bindsym $mod+j focus down
|
||||
bindsym $mod+Down focus down
|
||||
bindsym $mod+k focus up
|
||||
bindsym $mod+Up focus up
|
||||
bindsym $mod+l focus right
|
||||
bindsym $mod+Right focus right
|
||||
|
||||
bindsym --release $mod+Shift+h move left
|
||||
bindsym --release $mod+Shift+Left move left
|
||||
bindsym --release $mod+Shift+j move down
|
||||
bindsym --release $mod+Shift+Down move down
|
||||
bindsym --release $mod+Shift+k move up
|
||||
bindsym --release $mod+Shift+Up move up
|
||||
bindsym --release $mod+Shift+l move right
|
||||
bindsym --release $mod+Shift+Right move right
|
||||
|
||||
set $mode_space [space]: [space]Run, works<b>p</b>ace, <b>w</b>indow, <b>o</b>pen, <b>g</b>oto, <b>q</b>uit
|
||||
mode --pango_markup "$mode_space" {
|
||||
bindsym space exec --no-startup-id rofi -show run, mode "default"
|
||||
bindsym p mode "$mode_space_workspace"
|
||||
bindsym w mode "$mode_space_window"
|
||||
bindsym o mode "$mode_space_open"
|
||||
bindsym g mode "$mode_space_goto"
|
||||
bindsym q mode "$mode_space_quit"
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
bindsym control+g mode "default"
|
||||
bindsym control+bracketleft mode "default"
|
||||
}
|
||||
|
||||
set $mode_space_workspace [workspace]: <b>m</b>ove, [p]switch to
|
||||
mode --pango_markup "$mode_space_workspace" {
|
||||
bindsym m mode "$mode_space_workspace_move"
|
||||
bindsym p exec --no-startup-id i3_switch_workspace.sh, mode "default"
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
bindsym control+g mode "default"
|
||||
bindsym control+bracketleft mode "default"
|
||||
}
|
||||
|
||||
set $mode_space_workspace_move [workspace][move]: <b>h/l/Left/Right</b> Move
|
||||
mode --pango_markup "$mode_space_workspace_move" {
|
||||
bindsym h exec --no-startup-id i3-msg move workspace to output left
|
||||
bindsym Left exec --no-startup-id i3-msg move workspace to output left
|
||||
bindsym l exec --no-startup-id i3-msg move workspace to output right
|
||||
bindsym Right exec --no-startup-id i3-msg move workspace to output right
|
||||
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
bindsym control+g mode "default"
|
||||
bindsym control+bracketleft mode "default"
|
||||
}
|
||||
|
||||
set $mode_space_window [window]: <b>d</b>elete, <b>f</b>ullscreen, fl<b>o</b>at, <b>p</b>arent, <b>m</b>ove, <b>r</b>esize, <b>l</b>ayout
|
||||
mode --pango_markup "$mode_space_window" {
|
||||
bindsym d kill, mode "default"
|
||||
bindsym f fullscreen toggle, mode "default"
|
||||
bindsym o floating toggle, mode "default"
|
||||
bindsym p focus parent
|
||||
bindsym m mode "$mode_space_window_move"
|
||||
bindsym r mode "$mode_space_window_resize"
|
||||
bindsym l mode "$mode_space_window_layout"
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
bindsym control+g mode "default"
|
||||
bindsym control+bracketleft mode "default"
|
||||
}
|
||||
|
||||
set $mode_space_window_move [window][move]: <b>h/j/k/l/Left/Down/Up/Right</b> Move, to works<b>p</b>ace
|
||||
mode --pango_markup "$mode_space_window_move" {
|
||||
bindsym --release h move left
|
||||
bindsym --release Left move left
|
||||
bindsym --release j move down
|
||||
bindsym --release Down move down
|
||||
bindsym --release k move up
|
||||
bindsym --release Up move up
|
||||
bindsym --release l move right
|
||||
bindsym --release Right move right
|
||||
|
||||
bindsym p exec --no-startup-id i3_send_to_workspace.sh, mode "default"
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
bindsym control+g mode "default"
|
||||
bindsym control+bracketleft mode "default"
|
||||
}
|
||||
|
||||
set $mode_space_window_resize [window][resize]: <b>h/j/k/l/Left/Down/Up/Right</b> Grow, Shift+<b>h/j/k/l/Left/Down/Up/Right</b> Shrink
|
||||
mode --pango_markup "$mode_space_window_resize" {
|
||||
bindsym h resize grow left 10 px or 10 ppt
|
||||
bindsym Left resize grow left 10 px or 10 ppt
|
||||
bindsym j resize grow down 10 px or 10 ppt
|
||||
bindsym Down resize grow down 10 px or 10 ppt
|
||||
bindsym k resize grow up 10 px or 10 ppt
|
||||
bindsym Up resize grow up 10 px or 10 ppt
|
||||
bindsym l resize grow right 10 px or 10 ppt
|
||||
bindsym Right resize grow right 10 px or 10 ppt
|
||||
|
||||
bindsym Shift+h resize shrink right 10 px or 10 ppt
|
||||
bindsym Shift+Left resize shrink right 10 px or 10 ppt
|
||||
bindsym Shift+j resize shrink up 10 px or 10 ppt
|
||||
bindsym Shift+Down resize shrink up 10 px or 10 ppt
|
||||
bindsym Shift+k resize shrink down 10 px or 10 ppt
|
||||
bindsym Shift+Up resize shrink down 10 px or 10 ppt
|
||||
bindsym Shift+l resize shrink left 10 px or 10 ppt
|
||||
bindsym Shift+Right resize shrink left 10 px or 10 ppt
|
||||
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
bindsym control+g mode "default"
|
||||
bindsym control+bracketleft mode "default"
|
||||
}
|
||||
|
||||
set $mode_space_window_layout [window][layout]: <b>s</b>plit, <b>t</b>abbed, stac<b>k</b>ing
|
||||
mode --pango_markup "$mode_space_window_layout" {
|
||||
bindsym s toggle split, mode "default"
|
||||
bindsym t layout tabbed, mode "default"
|
||||
bindsym k layout stacking, mode "default"
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
bindsym control+g mode "default"
|
||||
bindsym control+bracketleft mode "default"
|
||||
}
|
||||
|
||||
set $mode_space_open [open]: <b>f</b>irefox, ki<b>t</b>ty, <b>e</b>macs, <b>p</b>ycharm, [j]idea, <b>d</b>iscord, <b>s</b>lack, <b>z</b>oom, <b>w</b>indows
|
||||
mode --pango_markup "$mode_space_open" {
|
||||
bindsym f exec --no-startup-id pgrep firefox && i3-msg '[class="(?i)firefox"] focus' || firefox , mode "default"
|
||||
bindsym Shift+f exec --no-startup-id firefox , mode "default"
|
||||
bindsym t exec --no-startup-id kitty --single-instance, mode "default"
|
||||
bindsym Shift+t exec --no-startup-id kitty --single-instance, mode "default"
|
||||
bindsym e exec --no-startup-id pgrep emacs && i3-msg '[class="(?i)emacs"] focus' || emacs , mode "default"
|
||||
bindsym Shift+e exec --no-startup-id emacs , mode "default"
|
||||
bindsym p exec --no-startup-id pgrep pycharm && i3-msg '[class="(?i)pycharm"] focus' || pycharm , mode "default"
|
||||
bindsym Shift+p exec --no-startup-id pycharm , mode "default"
|
||||
bindsym j exec --no-startup-id pgrep idea && i3-msg '[class="(?i)idea"] focus' || idea , mode "default"
|
||||
bindsym Shift+j exec --no-startup-id idea , mode "default"
|
||||
bindsym d exec --no-startup-id pgrep discord && i3-msg '[class="(?i)discord"] focus' || discord , mode "default"
|
||||
bindsym Shift+d exec --no-startup-id discord , mode "default"
|
||||
bindsym s exec --no-startup-id pgrep slack && i3-msg '[class="(?i)slack"] focus' || slack , mode "default"
|
||||
bindsym Shift+s exec --no-startup-id slack , mode "default"
|
||||
bindsym z exec --no-startup-id pgrep zoom && i3-msg '[class="(?i)zoom"] focus' || zoom , mode "default"
|
||||
bindsym Shift+z exec --no-startup-id zoom , mode "default"
|
||||
bindsym w exec --no-startup-id pgrep virt-viewer && i3-msg '[class="(?i)virt-viewer"] focus' || virt-viewer --connect qemu:///system -w Windows10, mode "default"
|
||||
bindsym Shift+w exec --no-startup-id virt-viewer --connect qemu:///system -w Windows10, mode "default"
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
bindsym control+g mode "default"
|
||||
bindsym control+bracketleft mode "default"
|
||||
}
|
||||
|
||||
set $mode_space_goto [goto]: <b>s</b>erver
|
||||
mode --pango_markup "$mode_space_goto" {
|
||||
bindsym s exec --no-startup-id rofi -show ssh, mode "default"
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
bindsym control+g mode "default"
|
||||
bindsym control+bracketleft mode "default"
|
||||
}
|
||||
|
||||
set $mode_space_quit [quit]: [q]logout, <b>r</b>eload, [Shift+r]restart, <b>s</b>ystem
|
||||
mode --pango_markup "$mode_space_quit" {
|
||||
bindsym q exec --no-startup-id i3-msg exit, mode "default"
|
||||
bindsym r exec --no-startup-id i3_reconfigure, mode "default"
|
||||
bindsym Shift+r restart, mode "default"
|
||||
bindsym s mode "$mode_space_quit_system"
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
bindsym control+g mode "default"
|
||||
bindsym control+bracketleft mode "default"
|
||||
}
|
||||
|
||||
set $mode_space_quit_system [quit][system]: <b>s</b>uspend, <b>r</b>eboot, <b>p</b>ower off
|
||||
mode --pango_markup "$mode_space_quit_system" {
|
||||
bindsym s exec --no-startup-id systemctl suspend, mode "default"
|
||||
bindsym r exec --no-startup-id systemctl reboot, mode "default"
|
||||
bindsym p exec --no-startup-id systemctl poweroff, mode "default"
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
bindsym control+g mode "default"
|
||||
bindsym control+bracketleft mode "default"
|
||||
}
|
||||
|
||||
bindsym $mod+space mode "$mode_space"
|
||||
|
||||
set $ws_main 1: Main
|
||||
workspace "$ws_main" output DP-4
|
||||
|
||||
set $ws_tasks 2: Tasks
|
||||
workspace "$ws_tasks" output DP-0
|
||||
assign [class="(?i)virt-viewer"] "$ws_tasks"
|
||||
|
||||
set $ws_comms 3: Comms
|
||||
workspace "$ws_comms" output HDMI-0
|
||||
assign [class="(?i)discord"] "$ws_comms"
|
||||
assign [class="(?i)slack"] "$ws_comms"
|
||||
|
||||
set $ws_python 4: Python
|
||||
workspace "$ws_python" output primary
|
||||
assign [class="(?i)pycharm"] "$ws_python"
|
||||
|
||||
set $ws_java 5: Java
|
||||
workspace "$ws_java" output primary
|
||||
assign [class="(?i)idea"] "$ws_java"
|
||||
|
||||
# Start i3bar to display a workspace bar (plus the system information i3status
|
||||
# finds out, if available)
|
||||
bar {
|
||||
tray_output primary
|
||||
tray_padding 20 px
|
||||
status_command i3status
|
||||
}
|
||||
|
||||
# Wallpaper
|
||||
exec --no-startup-id nitrogen --restore
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
# Start i3bar to display a workspace bar (plus the system information i3status
|
||||
# finds out, if available)
|
||||
bar {
|
||||
tray_output primary
|
||||
tray_padding 20 px
|
||||
status_command i3status
|
||||
}
|
||||
|
||||
# Wallpaper
|
||||
exec --no-startup-id nitrogen --restore
|
||||
@@ -1,11 +0,0 @@
|
||||
set $mod Mod4
|
||||
set $alt Mod1
|
||||
|
||||
# Use Mouse+$mod to drag floating windows to their wanted position
|
||||
floating_modifier $alt
|
||||
|
||||
# Font for window titles. Will also be used by the bar unless a different font
|
||||
# is used in the bar {} block below.
|
||||
font pango:DejaVu Sans Mono 10
|
||||
|
||||
exec --no-startup-id compton
|
||||
@@ -1,2 +0,0 @@
|
||||
require 'pp'
|
||||
IRB.conf[:AUTO_INDENT] = true
|
||||
@@ -1,17 +0,0 @@
|
||||
# Example configuration
|
||||
|
||||
This is an example `powerline` configuration that I'm using at the moment. To use it, copy all of its content under `~/.config/powerline` (or `$XDG_CONFIG_HOME/powerline`).
|
||||
|
||||
## Detailed steps
|
||||
|
||||
```
|
||||
$ pip install powerline-status xontrib-powerline-binding powerline-gitstatus git+https://github.com/shimtom/powerline-exitstatus
|
||||
$ mkdir -p ~/.config/powerline
|
||||
# standing in the root of the cloned repository
|
||||
$ cp example-powerline-config/* ~/.config/powerline/
|
||||
$ echo 'xontrib load powerline_binding' >> ~/.xonshrc
|
||||
```
|
||||
|
||||
## Orange underline issue
|
||||
|
||||
By default `powerline` uses non-breaking-spaces, but some terminals mark them (with orange underline for example). You can turn that off in your main powerline configuration by setting `use_non_breaking_spaces` to `false`. See the `powerline` documentation for reference: https://powerline.readthedocs.io/en/master/configuration/reference.html
|
||||
@@ -1,174 +0,0 @@
|
||||
{
|
||||
"colors": {
|
||||
"black": 16,
|
||||
"white": 231,
|
||||
|
||||
"green": 2,
|
||||
"darkestgreen": 22,
|
||||
"darkgreen": 28,
|
||||
"mediumgreen": 70,
|
||||
"brightgreen": 148,
|
||||
|
||||
"darkestcyan": 23,
|
||||
"darkcyan": 74,
|
||||
"mediumcyan": 117,
|
||||
"brightcyan": 159,
|
||||
|
||||
"darkestblue": 24,
|
||||
"darkblue": 31,
|
||||
|
||||
"red": 1,
|
||||
"darkestred": 52,
|
||||
"darkred": 88,
|
||||
"mediumred": 124,
|
||||
"brightred": 160,
|
||||
"brightestred": 196,
|
||||
|
||||
"darkestpurple": 55,
|
||||
"mediumpurple": 98,
|
||||
"brightpurple": 189,
|
||||
|
||||
"darkorange": 94,
|
||||
"mediumorange": 166,
|
||||
"brightorange": 208,
|
||||
"brightestorange": 214,
|
||||
|
||||
"yellow": 11,
|
||||
"brightyellow": 220,
|
||||
|
||||
"gray0": 233,
|
||||
"gray1": 235,
|
||||
"gray2": 236,
|
||||
"gray3": 239,
|
||||
"gray4": 240,
|
||||
"gray5": 241,
|
||||
"gray6": 244,
|
||||
"gray7": 245,
|
||||
"gray8": 247,
|
||||
"gray9": 250,
|
||||
"gray10": 252,
|
||||
|
||||
"gray11": 234,
|
||||
"gray90": 254,
|
||||
|
||||
"gray70": [249, "b3b3b3"],
|
||||
|
||||
"lightyellowgreen": 106,
|
||||
"gold3": 178,
|
||||
"orangered": 202,
|
||||
|
||||
"steelblue": 67,
|
||||
"darkorange3": 166,
|
||||
"skyblue1": 117,
|
||||
"khaki1": 228,
|
||||
|
||||
"solarized:base03": [8, "002b36"],
|
||||
"solarized:base02": [0, "073642"],
|
||||
"solarized:base01": [10, "586e75"],
|
||||
"solarized:base00": [11, "657b83"],
|
||||
"solarized:base0": [12, "839496"],
|
||||
"solarized:base1": [14, "93a1a1"],
|
||||
"solarized:base2": [7, "eee8d5"],
|
||||
"solarized:base3": [15, "fdf6e3"],
|
||||
"solarized:yellow": [3, "b58900"],
|
||||
"solarized:orange": [9, "cb4b16"],
|
||||
"solarized:red": [1, "dc322f"],
|
||||
"solarized:magenta": [5, "d33682"],
|
||||
"solarized:violet": [13, "6c71c4"],
|
||||
"solarized:blue": [4, "268bd2"],
|
||||
"solarized:cyan": [6, "2aa198"],
|
||||
"solarized:green": [2, "859900"],
|
||||
|
||||
"gruvbox:dark0_hard" : [234, "1d2021"],
|
||||
"gruvbox:dark0" : [235, "282828"],
|
||||
"gruvbox:dark0_soft" : [236, "32302f"],
|
||||
"gruvbox:dark1" : [237, "3c3836"],
|
||||
"gruvbox:dark2" : [239, "504945"],
|
||||
"gruvbox:dark3" : [241, "665c54"],
|
||||
"gruvbox:dark4" : [243, "7c6f64"],
|
||||
"gruvbox:dark4_256" : [243, "7c6f64"],
|
||||
|
||||
"gruvbox:gray_245" : [245, "928374"],
|
||||
"gruvbox:gray_244" : [244, "928374"],
|
||||
|
||||
"gruvbox:light0_hard" : [230, "f9f5d7"],
|
||||
"gruvbox:light0" : [229, "fbf1c7"],
|
||||
"gruvbox:light0_soft" : [228, "f2e5bc"],
|
||||
"gruvbox:light1" : [223, "ebdbb2"],
|
||||
"gruvbox:light2" : [250, "d5c4a1"],
|
||||
"gruvbox:light3" : [248, "bdae93"],
|
||||
"gruvbox:light4" : [246, "a89984"],
|
||||
"gruvbox:light4_256" : [246, "a89984"],
|
||||
|
||||
"gruvbox:bright_red" : [167, "fb4934"],
|
||||
"gruvbox:bright_green" : [142, "b8bb26"],
|
||||
"gruvbox:bright_yellow" : [214, "fabd2f"],
|
||||
"gruvbox:bright_blue" : [109, "04b5cc"],
|
||||
"gruvbox:bright_purple" : [175, "d3869b"],
|
||||
"gruvbox:bright_aqua" : [108, "8ec07c"],
|
||||
"gruvbox:bright_orange" : [208, "fe8019"],
|
||||
|
||||
"gruvbox:neutral_red" : [124, "cc241d"],
|
||||
"gruvbox:neutral_green" : [106, "98971a"],
|
||||
"gruvbox:neutral_yellow" : [172, "d79921"],
|
||||
"gruvbox:neutral_blue" : [66, "458588"],
|
||||
"gruvbox:neutral_purple" : [132, "b16286"],
|
||||
"gruvbox:neutral_aqua" : [72, "689d6a"],
|
||||
"gruvbox:neutral_orange" : [166, "d65d0e"],
|
||||
|
||||
"gruvbox:faded_red" : [88, "9d0006"],
|
||||
"gruvbox:faded_green" : [100, "79740e"],
|
||||
"gruvbox:faded_yellow" : [136, "b57614"],
|
||||
"gruvbox:faded_blue" : [24, "076678"],
|
||||
"gruvbox:faded_purple" : [96, "8f3f71"],
|
||||
"gruvbox:faded_aqua" : [66, "427b58"],
|
||||
"gruvbox:faded_orange" : [130, "af3a03"],
|
||||
|
||||
"repa:green" : [113, "8bc34a"],
|
||||
"repa:red" : [161, "e91e63"],
|
||||
"repa:ygreen" : [148, "afdf00"],
|
||||
"repa:gyellow" : [185, "cddc39"]
|
||||
},
|
||||
"gradients": {
|
||||
"dark_GREEN_Orange_red": [
|
||||
[22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 94, 94, 94, 94, 94, 94, 94, 88, 52],
|
||||
["006000", "006000", "006000", "006000", "006000", "006000", "006000", "006000", "006000", "036000", "076000", "0a6000", "0d6000", "106000", "126000", "146000", "166000", "186000", "1a6000", "1b6000", "1d6000", "1e6000", "206000", "216000", "236000", "246000", "256000", "266000", "286000", "296000", "2a6000", "2b6000", "2c6100", "2d6100", "2f6100", "306100", "316100", "326100", "336100", "346100", "356100", "366100", "376100", "386100", "386100", "396100", "3a6100", "3b6100", "3c6100", "3d6100", "3e6100", "3f6100", "406100", "406100", "416100", "426000", "436000", "446000", "456000", "456000", "466000", "476000", "486000", "496000", "496000", "4a6000", "4b6000", "4c6000", "4d6000", "4d6000", "4e6000", "4f6000", "506000", "506000", "516000", "526000", "536000", "536000", "546000", "556000", "566000", "566000", "576000", "586000", "596000", "596000", "5a6000", "5d6000", "616000", "646000", "686000", "6b6000", "6f6000", "726000", "766000", "796000", "7d6000", "806000", "7e5500", "6f3105", "5d0001"]
|
||||
],
|
||||
"GREEN_Orange_red": [
|
||||
[2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1],
|
||||
["005f00", "015f00", "025f00", "035f00", "045f00", "055f00", "065f00", "075f00", "085f00", "095f00", "0b5f00", "0c5f00", "0d5f00", "0e5f00", "0f5f00", "105f00", "115f00", "125f00", "135f00", "145f00", "165f00", "175f00", "185f00", "195f00", "1a5f00", "1b5f00", "1c5f00", "1d5f00", "1e5f00", "1f5f00", "215f00", "225f00", "235f00", "245f00", "255f00", "265f00", "275f00", "285f00", "295f00", "2a5f00", "2c5f00", "2d5f00", "2e5f00", "2f5f00", "305f00", "315f00", "325f00", "335f00", "345f00", "355f00", "375f00", "385f00", "395f00", "3a5f00", "3b5f00", "3c5f00", "3d5f00", "3e5f00", "3f5f00", "415f00", "425f00", "435f00", "445f00", "455f00", "465f00", "475f00", "485f00", "495f00", "4a5f00", "4c5f00", "4d5f00", "4e5f00", "4f5f00", "505f00", "515f00", "525f00", "535f00", "545f00", "555f00", "575f00", "585f00", "595f00", "5a5f00", "5b5f00", "5c5f00", "5d5f00", "5e5f00", "615f00", "655f00", "685f00", "6c5f00", "6f5f00", "735f00", "765f00", "7a5f00", "7d5f00", "815f00", "845f00", "815200", "702900"]
|
||||
],
|
||||
"green_yellow_red": [
|
||||
[190, 184, 178, 172, 166, 160],
|
||||
["8ae71c", "8ce71c", "8fe71c", "92e71c", "95e71d", "98e71d", "9ae71d", "9de71d", "a0e71e", "a3e71e", "a6e71e", "a8e71e", "abe71f", "aee71f", "b1e71f", "b4e71f", "b6e720", "b9e720", "bce720", "bfe720", "c2e821", "c3e721", "c5e621", "c7e521", "c9e522", "cbe422", "cde322", "cfe222", "d1e223", "d3e123", "d5e023", "d7df23", "d9df24", "dbde24", "dddd24", "dfdc24", "e1dc25", "e3db25", "e5da25", "e7d925", "e9d926", "e9d626", "e9d426", "e9d126", "e9cf27", "e9cc27", "e9ca27", "e9c727", "e9c528", "e9c228", "e9c028", "e9bd28", "e9bb29", "e9b829", "e9b629", "e9b329", "e9b12a", "e9ae2a", "e9ac2a", "e9a92a", "eaa72b", "eaa42b", "eaa22b", "ea9f2b", "ea9d2c", "ea9b2c", "ea982c", "ea962c", "ea942d", "ea912d", "ea8f2d", "ea8d2d", "ea8a2e", "ea882e", "ea862e", "ea832e", "ea812f", "ea7f2f", "ea7c2f", "ea7a2f", "eb7830", "eb7530", "eb7330", "eb7130", "eb6f31", "eb6c31", "eb6a31", "eb6831", "eb6632", "eb6332", "eb6132", "eb5f32", "eb5d33", "eb5a33", "eb5833", "eb5633", "eb5434", "eb5134", "eb4f34", "eb4d34", "ec4b35"]
|
||||
],
|
||||
"green_yellow_orange_red": [
|
||||
[2, 3, 9, 1],
|
||||
["719e07", "739d06", "759c06", "779c06", "799b06", "7b9a05", "7d9a05", "7f9905", "819805", "839805", "859704", "879704", "899604", "8b9504", "8d9504", "8f9403", "919303", "949303", "969203", "989102", "9a9102", "9c9002", "9e9002", "a08f02", "a28e01", "a48e01", "a68d01", "a88c01", "aa8c01", "ac8b00", "ae8a00", "b08a00", "b28900", "b58900", "b58700", "b68501", "b78302", "b78102", "b87f03", "b97d04", "b97b04", "ba7905", "bb7806", "bb7606", "bc7407", "bd7208", "bd7008", "be6e09", "bf6c0a", "bf6a0a", "c0690b", "c1670c", "c1650c", "c2630d", "c3610e", "c35f0e", "c45d0f", "c55b10", "c55a10", "c65811", "c75612", "c75412", "c85213", "c95014", "c94e14", "ca4c15", "cb4b16", "cb4a16", "cc4917", "cc4818", "cd4719", "cd4719", "ce461a", "ce451b", "cf441c", "cf441c", "d0431d", "d0421e", "d1411f", "d1411f", "d24020", "d23f21", "d33e22", "d33e22", "d43d23", "d43c24", "d53b25", "d53b25", "d63a26", "d63927", "d73828", "d73828", "d83729", "d8362a", "d9352b", "d9352b", "da342c", "da332d", "db322e", "dc322f"]
|
||||
],
|
||||
"yellow_red": [
|
||||
[220, 178, 172, 166, 160],
|
||||
["ffd700", "fdd500", "fbd300", "fad200", "f8d000", "f7cf00", "f5cd00", "f3cb00", "f2ca00", "f0c800", "efc700", "edc500", "ebc300", "eac200", "e8c000", "e7bf00", "e5bd00", "e3bb00", "e2ba00", "e0b800", "dfb700", "ddb500", "dbb300", "dab200", "d8b000", "d7af00", "d7ad00", "d7ab00", "d7aa00", "d7a800", "d7a700", "d7a500", "d7a300", "d7a200", "d7a000", "d79f00", "d79d00", "d79b00", "d79a00", "d79800", "d79700", "d79500", "d79300", "d79200", "d79000", "d78f00", "d78d00", "d78b00", "d78a00", "d78800", "d78700", "d78500", "d78300", "d78200", "d78000", "d77f00", "d77d00", "d77b00", "d77a00", "d77800", "d77700", "d77500", "d77300", "d77200", "d77000", "d76f00", "d76d00", "d76b00", "d76a00", "d76800", "d76700", "d76500", "d76300", "d76200", "d76000", "d75f00", "d75b00", "d75700", "d75300", "d74f00", "d74c00", "d74800", "d74400", "d74000", "d73c00", "d73900", "d73500", "d73100", "d72d00", "d72900", "d72600", "d72200", "d71e00", "d71a00", "d71600", "d71300", "d70f00", "d70b00", "d70700"]
|
||||
],
|
||||
"yellow_orange_red": [
|
||||
[3, 9, 1],
|
||||
["b58900", "b58700", "b58600", "b68501", "b68401", "b78202", "b78102", "b88003", "b87f03", "b87d03", "b97c04", "b97b04", "ba7a05", "ba7805", "bb7706", "bb7606", "bc7507", "bc7307", "bc7207", "bd7108", "bd7008", "be6e09", "be6d09", "bf6c0a", "bf6b0a", "c06a0b", "c0680b", "c0670b", "c1660c", "c1650c", "c2630d", "c2620d", "c3610e", "c3600e", "c35e0e", "c45d0f", "c45c0f", "c55b10", "c55910", "c65811", "c65711", "c75612", "c75412", "c75312", "c85213", "c85113", "c94f14", "c94e14", "ca4d15", "ca4c15", "cb4b16", "cb4a16", "cb4a17", "cc4917", "cc4918", "cc4818", "cd4819", "cd4719", "cd471a", "ce461a", "ce461b", "ce451b", "cf451c", "cf441c", "cf441d", "d0431d", "d0431e", "d0421e", "d1421f", "d1411f", "d14120", "d24020", "d24021", "d23f21", "d33f22", "d33e22", "d33e23", "d43d23", "d43d24", "d43c24", "d53c25", "d53b25", "d53b26", "d63a26", "d63a27", "d63927", "d73928", "d73828", "d73829", "d83729", "d8372a", "d8362a", "d9362b", "d9352b", "d9352c", "da342c", "da342d", "da332d", "db332e"]
|
||||
],
|
||||
"blue_red": [
|
||||
[39, 74, 68, 67, 103, 97, 96, 132, 131, 167, 203, 197],
|
||||
["19b4fe", "1bb2fc", "1db1fa", "1faff8", "22aef6", "24adf4", "26abf2", "29aaf0", "2ba9ee", "2da7ec", "30a6ea", "32a5e8", "34a3e6", "36a2e4", "39a0e2", "3b9fe1", "3d9edf", "409cdd", "429bdb", "449ad9", "4798d7", "4997d5", "4b96d3", "4d94d1", "5093cf", "5292cd", "5490cb", "578fc9", "598dc7", "5b8cc6", "5e8bc4", "6089c2", "6288c0", "6487be", "6785bc", "6984ba", "6b83b8", "6e81b6", "7080b4", "727eb2", "757db0", "777cae", "797aac", "7b79ab", "7e78a9", "8076a7", "8275a5", "8574a3", "8772a1", "89719f", "8c709d", "8e6e9b", "906d99", "926b97", "956a95", "976993", "996791", "9c668f", "9e658e", "a0638c", "a3628a", "a56188", "a75f86", "a95e84", "ac5c82", "ae5b80", "b05a7e", "b3587c", "b5577a", "b75678", "ba5476", "bc5374", "be5273", "c05071", "c34f6f", "c54e6d", "c74c6b", "ca4b69", "cc4967", "ce4865", "d14763", "d34561", "d5445f", "d7435d", "da415b", "dc4059", "de3f58", "e13d56", "e33c54", "e53a52", "e83950", "ea384e", "ec364c", "ee354a", "f13448", "f33246", "f53144", "f83042", "fa2e40"]
|
||||
],
|
||||
"white_red": [
|
||||
[231, 255, 223, 216, 209, 202, 196],
|
||||
["ffffff", "fefefe", "fdfdfd", "fdfdfd", "fcfcfc", "fbfbfb", "fafafa", "fafafa", "f9f9f9", "f8f8f8", "f7f7f7", "f7f7f7", "f6f6f6", "f5f5f5", "f4f4f4", "f4f3f4", "f3f3f3", "f2f2f2", "f1f1f1", "f0f0f0", "f0f0f0", "efefef", "eeeeee", "efecea", "f1eae4", "f2e8de", "f3e6d8", "f5e4d3", "f6e2cd", "f7e0c7", "f8dec2", "f9dcbc", "fadab6", "fad8b1", "fbd5ac", "fbd2a9", "fbcea5", "fbcaa1", "fbc79e", "fbc39a", "fbc097", "fbbc93", "fbb88f", "fbb58c", "fab188", "faad85", "faaa81", "fba67e", "fba37a", "fb9f76", "fb9c73", "fb986f", "fb946c", "fb9168", "fa8d65", "fa8961", "fa865c", "fa8256", "fb7f4f", "fb7b48", "fb7841", "fb743a", "fb7133", "fb6d2c", "fa6a23", "fa661a", "fa620e", "fa5f03", "fa5d03", "fa5b03", "fa5a03", "fa5803", "fa5703", "fa5503", "fa5303", "fa5103", "fa4f03", "fa4e03", "fa4c03", "fa4a04", "fa4804", "fa4604", "fa4404", "fa4204", "fa3f04", "fa3d04", "fa3b04", "fa3805", "fa3605", "fa3305", "fb3105", "fb2e05", "fb2a05", "fb2705", "fb2306", "fb1f06", "fb1b06", "fb1506", "fb0e06", "fa0506", "fa0007"]
|
||||
],
|
||||
"dark_green_gray": [
|
||||
[70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247],
|
||||
["51b000", "52b000", "54b000", "55b002", "56b007", "57b00d", "58b011", "59af15", "5aaf18", "5caf1b", "5daf1e", "5eaf21", "5faf23", "60ae25", "61ae27", "62ae2a", "63ae2c", "64ae2e", "65ae30", "66ae31", "67ad33", "68ad35", "69ad37", "69ad38", "6aad3a", "6bad3c", "6cac3d", "6dac3f", "6eac40", "6fac42", "70ac44", "70ac45", "71ab47", "72ab48", "73ab49", "74ab4b", "75ab4c", "75ab4e", "76aa4f", "77aa51", "78aa52", "79aa53", "79aa55", "7aaa56", "7ba957", "7ca959", "7ca95a", "7da95b", "7ea95d", "7fa95e", "7fa85f", "80a861", "81a862", "81a863", "82a865", "83a766", "83a767", "84a768", "85a76a", "85a76b", "86a66c", "87a66d", "87a66f", "88a670", "89a671", "89a672", "8aa574", "8ba575", "8ba576", "8ca577", "8da579", "8da47a", "8ea47b", "8ea47c", "8fa47d", "90a47f", "90a380", "91a381", "91a382", "92a384", "93a385", "93a286", "94a287", "94a288", "95a28a", "95a18b", "96a18c", "97a18d", "97a18e", "98a190", "98a091", "99a092", "99a093", "9aa094", "9aa096", "9b9f97", "9b9f98", "9c9f99", "9c9f9a", "9d9e9c", "9d9e9d"]
|
||||
],
|
||||
"light_green_gray": [
|
||||
[148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 148, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 187, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250],
|
||||
["a3d900", "a4d800", "a4d800", "a5d805", "a5d80d", "a6d714", "a6d719", "a6d71d", "a7d621", "a7d625", "a8d628", "a8d62b", "a8d52e", "a9d531", "a9d533", "aad536", "aad438", "aad43a", "abd43d", "abd33f", "abd341", "acd343", "acd345", "acd247", "add249", "add24b", "add14d", "aed14f", "aed151", "aed152", "afd054", "afd056", "afd058", "b0d059", "b0cf5b", "b0cf5d", "b1cf5e", "b1ce60", "b1ce62", "b1ce63", "b2ce65", "b2cd67", "b2cd68", "b3cd6a", "b3cc6b", "b3cc6d", "b3cc6e", "b4cc70", "b4cb71", "b4cb73", "b4cb75", "b5ca76", "b5ca78", "b5ca79", "b5ca7a", "b6c97c", "b6c97d", "b6c97f", "b6c880", "b6c882", "b7c883", "b7c885", "b7c786", "b7c788", "b7c789", "b8c68a", "b8c68c", "b8c68d", "b8c68f", "b8c590", "b9c591", "b9c593", "b9c494", "b9c496", "b9c497", "b9c498", "bac39a", "bac39b", "bac39d", "bac29e", "bac29f", "bac2a1", "bac2a2", "bac1a4", "bbc1a5", "bbc1a6", "bbc0a8", "bbc0a9", "bbc0aa", "bbc0ac", "bbbfad", "bbbfae", "bbbfb0", "bbbeb1", "bcbeb3", "bcbeb4", "bcbdb5", "bcbdb7", "bcbdb8", "bcbdb9", "bcbcbb"]
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,92 +0,0 @@
|
||||
{
|
||||
"name": "repa",
|
||||
"groups": {
|
||||
"information:additional": { "fg": "repa:gyellow", "bg": "gruvbox:dark2", "attrs": [] },
|
||||
"information:regular": { "fg": "repa:gyellow", "bg": "gruvbox:dark2", "attrs": ["bold"] },
|
||||
"information:highlighted": { "fg": "white", "bg": "gruvbox:dark2", "attrs": [] },
|
||||
"information:priority": { "fg": "brightyellow", "bg": "mediumorange", "attrs": [] },
|
||||
"warning:regular": { "fg": "white", "bg": "brightred", "attrs": ["bold"] },
|
||||
"critical:failure": { "fg": "white", "bg": "darkestred", "attrs": [] },
|
||||
"critical:success": { "fg": "white", "bg": "darkestgreen", "attrs": [] },
|
||||
|
||||
"background": { "fg": "white", "bg": "gruvbox:dark0_hard", "attrs": [] },
|
||||
"background:divider": { "fg": "gray5", "bg": "gruvbox:dark0_hard", "attrs": [] },
|
||||
|
||||
"session": { "fg": "black", "bg": "gray10", "attrs": ["bold"] },
|
||||
|
||||
"date": { "fg": "gray8", "bg": "gruvbox:dark0_hard", "attrs": [] },
|
||||
|
||||
"email_alert": "warning:regular",
|
||||
"email_alert_gradient": { "fg": "white", "bg": "yellow_orange_red", "attrs": ["bold"] },
|
||||
|
||||
"weather": { "fg": "gray8", "bg": "gruvbox:dark0_hard", "attrs": [] },
|
||||
"weather_temp_gradient": { "fg": "blue_red", "bg": "gruvbox:dark0_hard", "attrs": [] },
|
||||
"weather_condition_hot": { "fg": "khaki1", "bg": "gruvbox:dark0_hard", "attrs": [] },
|
||||
"weather_condition_snowy": { "fg": "skyblue1", "bg": "gruvbox:dark0_hard", "attrs": [] },
|
||||
"weather_condition_rainy": { "fg": "skyblue1", "bg": "gruvbox:dark0_hard", "attrs": [] },
|
||||
|
||||
"uptime": { "fg": "gray8", "bg": "gray0", "attrs": [] },
|
||||
"external_ip": { "fg": "gray8", "bg": "gray0", "attrs": [] },
|
||||
"internal_ip": { "fg": "gray8", "bg": "gray0", "attrs": [] },
|
||||
"network_load": { "fg": "gray8", "bg": "gray0", "attrs": [] },
|
||||
"network_load_gradient": { "fg": "green_yellow_orange_red", "bg": "gray0", "attrs": [] },
|
||||
"network_load_sent_gradient": "network_load_gradient",
|
||||
"network_load_recv_gradient": "network_load_gradient",
|
||||
"network_load:divider": "background:divider",
|
||||
|
||||
"system_load": { "fg": "gray8", "bg": "gruvbox:dark0_hard", "attrs": [] },
|
||||
"system_load_gradient": { "fg": "green_yellow_orange_red", "bg": "gruvbox:dark0_hard", "attrs": [] },
|
||||
|
||||
"environment": { "fg": "gray8", "bg": "gray0", "attrs": [] },
|
||||
"cpu_load_percent": { "fg": "gray8", "bg": "gray0", "attrs": [] },
|
||||
"cpu_load_percent_gradient": { "fg": "green_yellow_orange_red", "bg": "gray0", "attrs": [] },
|
||||
|
||||
"battery": { "fg": "gray8", "bg": "gruvbox:dark0_hard", "attrs": [] },
|
||||
"battery_gradient": { "fg": "white_red", "bg": "gruvbox:dark0_hard", "attrs": [] },
|
||||
"battery_full": { "fg": "red", "bg": "gruvbox:dark0_hard", "attrs": [] },
|
||||
"battery_empty": { "fg": "white", "bg": "gruvbox:dark0_hard", "attrs": [] },
|
||||
|
||||
"player": { "fg": "gray10", "bg": "black", "attrs": [] },
|
||||
"attached_clients": { "fg": "gray8", "bg": "gray0", "attrs": [] },
|
||||
|
||||
"gitstatus": { "fg": "gruvbox:light2", "bg": "gruvbox:dark1", "attrs": [] },
|
||||
"gitstatus_branch": { "fg": "gruvbox:light1", "bg": "gruvbox:dark1", "attrs": [] },
|
||||
"gitstatus_branch_clean": { "fg": "repa:green", "bg": "gruvbox:dark1", "attrs": [] },
|
||||
"gitstatus_branch_dirty": { "fg": "repa:red", "bg": "gruvbox:dark1", "attrs": [] },
|
||||
"gitstatus_branch_detached": { "fg": "gruvbox:bright_orange", "bg": "gruvbox:dark1", "attrs": [] },
|
||||
"gitstatus_tag": { "fg": "darkcyan", "bg": "gruvbox:dark1", "attrs": [] },
|
||||
"gitstatus_behind": { "fg": "gray10", "bg": "gruvbox:dark1", "attrs": [] },
|
||||
"gitstatus_ahead": { "fg": "gray10", "bg": "gruvbox:dark1", "attrs": [] },
|
||||
"gitstatus_staged": { "fg": "green", "bg": "gruvbox:dark1", "attrs": [] },
|
||||
"gitstatus_unmerged": { "fg": "brightred", "bg": "gruvbox:dark1", "attrs": [] },
|
||||
"gitstatus_changed": { "fg": "mediumorange", "bg": "gruvbox:dark1", "attrs": [] },
|
||||
"gitstatus_untracked": { "fg": "brightestorange", "bg": "gruvbox:dark1", "attrs": [] },
|
||||
"gitstatus_stashed": { "fg": "darkblue", "bg": "gruvbox:dark1", "attrs": [] },
|
||||
"gitstatus:divider": { "fg": "gray8", "bg": "gruvbox:dark1", "attrs": [] },
|
||||
|
||||
"hostname": { "fg": "gruvbox:dark0_hard", "bg": "repa:gyellow", "attrs": ["bold"] },
|
||||
"user": { "fg": "gruvbox:bright_green", "bg": "gruvbox:dark3", "attrs": ["bold"] },
|
||||
|
||||
"cwd": "information:additional",
|
||||
"cwd:current_folder": "information:regular",
|
||||
"cwd:divider": { "fg": "gruvbox:dark3", "bg": "gruvbox:dark2", "attrs": [] },
|
||||
"exit_status_fail": { "fg": "gruvbox:bright_red", "bg": "gruvbox:light0_hard", "attrs": [] },
|
||||
"exit_status_success": { "fg": "repa:green", "bg": "gruvbox:dark2", "attrs": [] },
|
||||
"exec_time": { "fg": "gruvbox:dark4", "bg": "gruvbox:dark1", "attrs": [] },
|
||||
|
||||
"branch": { "fg": "gruvbox:bright_yellow", "bg": "gruvbox:dark1", "attrs": [] },
|
||||
"branch_dirty": { "fg": "repa:red", "bg": "gruvbox:dark1", "attrs": [] },
|
||||
"branch_clean": { "fg": "repa:green", "bg": "gruvbox:dark1", "attrs": [] },
|
||||
"branch:divider": { "fg": "gruvbox:dark2", "bg": "gruvbox:dark1", "attrs": [] },
|
||||
"stash": "branch",
|
||||
"stash:divider": "branch:divider",
|
||||
|
||||
"virtualenv": { "fg": "gruvbox:bright_blue", "bg": "gruvbox:dark3", "attrs": [] },
|
||||
|
||||
"time": { "fg": "gruvbox:bright_yellow", "bg": "gruvbox:dark3", "attrs": [] },
|
||||
"time:divider": { "fg": "gray5", "bg": "gruvbox:dark3", "attrs": [] },
|
||||
"static_prompt1": { "fg": "repa:ygreen", "bg": "black", "attrs": [] },
|
||||
"static_prompt2": { "fg": "gruvbox:bright_yellow", "bg": "gruvbox:dark0", "attrs": [] },
|
||||
"static_prompt3": { "fg": "gruvbox:bright_red", "bg": "gruvbox:dark0", "attrs": [] }
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
{
|
||||
"common": {
|
||||
"term_truecolor": true
|
||||
},
|
||||
"ext": {
|
||||
"xonsh": {
|
||||
"theme": "ttm",
|
||||
"colorscheme": "repa"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,87 +0,0 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import re
|
||||
import json
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
INDENT = 2
|
||||
SPACE = " "
|
||||
NEWLINE = "\n"
|
||||
|
||||
|
||||
def to_json(o, level=0):
|
||||
ret = ""
|
||||
if isinstance(o, dict):
|
||||
ret += "{" + NEWLINE
|
||||
comma = ""
|
||||
for k, v in o.items():
|
||||
ret += comma
|
||||
comma = ",\n"
|
||||
ret += SPACE * INDENT * (level+1)
|
||||
ret += '"' + str(k) + '":' + SPACE
|
||||
ret += to_json(v, level + 1)
|
||||
|
||||
ret += NEWLINE + SPACE * INDENT * level + "}"
|
||||
elif isinstance(o, str):
|
||||
ret += '"' + o + '"'
|
||||
elif isinstance(o, list):
|
||||
ret += "[" + ",".join([to_json(e, level+1) for e in o]) + "]"
|
||||
elif isinstance(o, bool):
|
||||
ret += "true" if o else "false"
|
||||
elif isinstance(o, int):
|
||||
ret += str(o)
|
||||
elif isinstance(o, float):
|
||||
ret += '%.7g' % o
|
||||
elif o is None:
|
||||
ret += 'null'
|
||||
else:
|
||||
raise TypeError("Unknown type '%s' for json serialization" % str(type(o)))
|
||||
return ret
|
||||
|
||||
|
||||
def cterm(cname: str) -> int:
|
||||
if cname == "background":
|
||||
return 0
|
||||
if cname == "foreground":
|
||||
return 15
|
||||
if cname == "selection_background":
|
||||
return 2
|
||||
if cname == "selection_foreground":
|
||||
return 15
|
||||
if cname == "cursor":
|
||||
return 2
|
||||
|
||||
if "color" in cname:
|
||||
return int(cname.strip("color"))
|
||||
|
||||
|
||||
def parse_kitty_theme(name: str, theme: str) -> dict:
|
||||
d = {}
|
||||
|
||||
for line in theme.splitlines():
|
||||
colorname, colorhex = line.split()
|
||||
d[f"kitty:{colorname}"] = [cterm(colorname), colorhex[1:]]
|
||||
|
||||
return d
|
||||
|
||||
|
||||
def get_kitty_theme() -> Path:
|
||||
kitty_conf = Path.home() / ".config" / "kitty" / "kitty.conf"
|
||||
txt = kitty_conf.read_text()
|
||||
match = re.search(r"include (\./themes/.*.conf)", txt)
|
||||
theme_name = match.groups()[0]
|
||||
print("theme_name: ", theme_name)
|
||||
theme_path = kitty_conf.parent / theme_name
|
||||
print("theme_path: ", theme_path)
|
||||
return theme_path
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
f = get_kitty_theme()
|
||||
colors_file = Path(__file__).parent / "colors.json"
|
||||
powerline_colors = json.loads(colors_file.read_text())
|
||||
|
||||
kitty_colors = parse_kitty_theme(f.stem, f.read_text())
|
||||
powerline_colors["colors"].update(kitty_colors)
|
||||
colors_file.write_text(to_json(powerline_colors))
|
||||
@@ -1,66 +0,0 @@
|
||||
{
|
||||
"outer_padding": 0,
|
||||
"use_non_breaking_spaces": false,
|
||||
"segments": {
|
||||
"above": [{
|
||||
"left": [
|
||||
{
|
||||
"function": "powerline.segments.common.net.hostname",
|
||||
"args": {
|
||||
"only_if_ssh": true
|
||||
},
|
||||
"priority": 10
|
||||
},
|
||||
{
|
||||
"function": "powerline.segments.common.env.user",
|
||||
"priority": 30
|
||||
},
|
||||
{
|
||||
"function": "powerline.segments.common.env.virtualenv",
|
||||
"priority": 50
|
||||
},
|
||||
{
|
||||
"function": "powerline.segments.shell.cwd",
|
||||
"priority": 10
|
||||
},
|
||||
{
|
||||
"function": "powerline_gitstatus.gitstatus",
|
||||
"priority": 40
|
||||
},
|
||||
{
|
||||
"type": "string",
|
||||
"contents": " ",
|
||||
"highlight_groups": ["player"],
|
||||
"draw_hard_divider": false,
|
||||
"width": "auto"
|
||||
}
|
||||
],
|
||||
"right": [
|
||||
{
|
||||
"function": "powerline_xonsh.exec_time",
|
||||
"priority": 10
|
||||
},
|
||||
{
|
||||
"function": "powerline.segments.common.time.date",
|
||||
"after": " ",
|
||||
"args": {
|
||||
"format": "%H:%M:%S",
|
||||
"istime": true
|
||||
},
|
||||
"priority": 20
|
||||
}
|
||||
]
|
||||
}],
|
||||
"left": [
|
||||
{
|
||||
"type": "string",
|
||||
"contents": "❯ ",
|
||||
"draw_soft_divider": false,
|
||||
"draw_hard_divider": false,
|
||||
"highlight_groups": ["static_prompt1", "information:additional"]
|
||||
}
|
||||
],
|
||||
"right": [
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,61 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
JAVA=false
|
||||
WORK=false
|
||||
|
||||
PPAS=(
|
||||
"kelleyk/emacs"
|
||||
"git-core/ppa"
|
||||
"fish-shell/release-3"
|
||||
)
|
||||
|
||||
PACKAGES=(
|
||||
emacs27
|
||||
vim
|
||||
fish
|
||||
ripgrep
|
||||
fd-find
|
||||
clang
|
||||
git
|
||||
curl
|
||||
fzf
|
||||
ncdu
|
||||
autojump
|
||||
direnv
|
||||
tmux
|
||||
python3-venv
|
||||
xsel
|
||||
jq
|
||||
exfat-fuse
|
||||
exfat-utils
|
||||
ranger
|
||||
)
|
||||
|
||||
if [ "$JAVA" == "true" ]; then
|
||||
wget -O- https://apt.corretto.aws/corretto.key | sudo apt-key add -
|
||||
sudo add-apt-repository -y 'deb https://apt.corretto.aws stable main'
|
||||
PACKAGES+=(java-11-amazon-corretto-jdk)
|
||||
fi
|
||||
|
||||
if [ "$WORK" == "true" ]; then
|
||||
PACKAGES+=(
|
||||
# VPN
|
||||
vpnc
|
||||
)
|
||||
fi
|
||||
|
||||
for ppa in "${PPAS[@]}"
|
||||
do
|
||||
sudo add-apt-repository -y ppa:$ppa
|
||||
done
|
||||
|
||||
sudo apt update
|
||||
sudo apt install -y ${PACKAGES[@]}
|
||||
|
||||
# Use local time so as to not conflict with Windows
|
||||
timedatectl set-local-rtc 1 --adjust-system-clock
|
||||
|
||||
# Change default shell
|
||||
sudo chsh -s /usr/bin/fish $USER
|
||||
|
||||
bash ~/.dotfiles/setup_unix_common.sh
|
||||
@@ -1,22 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
|
||||
brew update
|
||||
brew install fish git
|
||||
brew cask install emacs
|
||||
|
||||
curl -s 'https://macapps.link/en/firefox-bettertouchtool-dropbox-alfred-sublime-iterm-unarchiver-transmit' | sh
|
||||
|
||||
sudo bash -c "echo /usr/local/bin/fish >> /etc/shells"
|
||||
chsh -s /usr/local/bin/fish
|
||||
|
||||
ssh-keygen -t rsa -f $HOME/.ssh/id_rsa -q -P ""
|
||||
|
||||
echo "Your SSH public key is:"
|
||||
echo ""
|
||||
cat ~/.ssh/id_rsa.pub
|
||||
echo ""
|
||||
read -p "Please add it to GitHub, then press enter to continue."
|
||||
|
||||
git clone git@github.com:tim-mccarthy/dotfiles.git $HOME/.dotfiles
|
||||
bash ~/.dotfiles/setup_unix_common.sh
|
||||
@@ -1,8 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
python3 $HOME/.dotfiles/deploy.py
|
||||
|
||||
git clone https://github.com/hlissner/doom-emacs ~/.emacs.d
|
||||
~/.emacs.d/bin/doom install
|
||||
~/.emacs.d/bin/doom sync
|
||||
Reference in New Issue
Block a user