backlog
3
.gitmodules
vendored
|
@ -4,3 +4,6 @@
|
||||||
[submodule "linux/.config/awesome/lain"]
|
[submodule "linux/.config/awesome/lain"]
|
||||||
path = linux/.config/awesome/lain
|
path = linux/.config/awesome/lain
|
||||||
url = https://github.com/lcpz/lain.git
|
url = https://github.com/lcpz/lain.git
|
||||||
|
[submodule "linux/.config/awesome/cyclefocus"]
|
||||||
|
path = linux/.config/awesome/cyclefocus
|
||||||
|
url = https://github.com/blueyed/awesome-cyclefocus
|
||||||
|
|
|
@ -2,6 +2,7 @@ local wezterm = require("wezterm");
|
||||||
local config = {
|
local config = {
|
||||||
font_size = 9.0,
|
font_size = 9.0,
|
||||||
freetype_load_target = "Mono",
|
freetype_load_target = "Mono",
|
||||||
|
use_cap_height_to_scale_fallback_fonts = true,
|
||||||
color_scheme = "Tokyo Night",
|
color_scheme = "Tokyo Night",
|
||||||
color_schemes = {
|
color_schemes = {
|
||||||
everforest = {
|
everforest = {
|
||||||
|
@ -203,8 +204,9 @@ if wezterm.target_triple == "x86_64-pc-windows-msvc" then
|
||||||
})
|
})
|
||||||
else
|
else
|
||||||
config.font = wezterm.font_with_fallback({
|
config.font = wezterm.font_with_fallback({
|
||||||
"Terminus",
|
{family = "tewi", weight = "Regular"},
|
||||||
"Siji",
|
{family = "tewi", weight = "Bold"},
|
||||||
|
"Terminus (TTF)",
|
||||||
"Unifont",
|
"Unifont",
|
||||||
"Noto Emoji",
|
"Noto Emoji",
|
||||||
})
|
})
|
||||||
|
|
|
@ -1,865 +0,0 @@
|
||||||
# Configuration for Alacritty, the GPU enhanced terminal emulator.
|
|
||||||
|
|
||||||
# Import additional configuration files
|
|
||||||
#
|
|
||||||
# Imports are loaded in order, skipping all missing files, with the importing
|
|
||||||
# file being loaded last. If a field is already present in a previous import, it
|
|
||||||
# will be replaced.
|
|
||||||
#
|
|
||||||
# All imports must either be absolute paths starting with `/`, or paths relative
|
|
||||||
# to the user's home directory starting with `~/`.
|
|
||||||
#import:
|
|
||||||
# - /path/to/alacritty.yml
|
|
||||||
|
|
||||||
# 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: alacritty
|
|
||||||
|
|
||||||
window:
|
|
||||||
# Window dimensions (changes require restart)
|
|
||||||
#
|
|
||||||
# Number of lines/columns (not pixels) in the terminal. The number of columns
|
|
||||||
# must be at least `2`, while using a value of `0` for columns and lines will
|
|
||||||
# fall back to the window manager's recommended size.
|
|
||||||
dimensions:
|
|
||||||
columns: 84
|
|
||||||
lines: 24
|
|
||||||
|
|
||||||
# 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 and no title bar buttons
|
|
||||||
#decorations: full
|
|
||||||
|
|
||||||
# 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.
|
|
||||||
#opacity: 1.0
|
|
||||||
|
|
||||||
# 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
|
|
||||||
|
|
||||||
# Allow terminal applications to change Alacritty's window title.
|
|
||||||
#dynamic_title: true
|
|
||||||
|
|
||||||
# Window class (Linux/BSD only):
|
|
||||||
#class:
|
|
||||||
# Application instance name
|
|
||||||
#instance: Alacritty
|
|
||||||
# General application class
|
|
||||||
#general: Alacritty
|
|
||||||
|
|
||||||
# GTK theme variant (Linux/BSD only)
|
|
||||||
#
|
|
||||||
# Override the variant of the GTK theme. Commonly supported values are `dark`
|
|
||||||
# and `light`. Set this to `None` to use the default theme variant.
|
|
||||||
#gtk_theme_variant: None
|
|
||||||
|
|
||||||
#scrolling:
|
|
||||||
# Maximum number of lines in the scrollback buffer.
|
|
||||||
# Specifying '0' will disable scrolling.
|
|
||||||
#history: 10000
|
|
||||||
|
|
||||||
# Scrolling distance multiplier.
|
|
||||||
#multiplier: 3
|
|
||||||
|
|
||||||
# Font configuration
|
|
||||||
font:
|
|
||||||
# Normal (roman) font face
|
|
||||||
normal:
|
|
||||||
# Font family
|
|
||||||
#
|
|
||||||
# Default:
|
|
||||||
# - (macOS) Menlo
|
|
||||||
# - (Linux/BSD) monospace
|
|
||||||
# - (Windows) Consolas
|
|
||||||
family: Terminus
|
|
||||||
|
|
||||||
# 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: Regular
|
|
||||||
|
|
||||||
# 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
|
|
||||||
|
|
||||||
# Bold italic font face
|
|
||||||
#bold_italic:
|
|
||||||
# Font family
|
|
||||||
#
|
|
||||||
# If the bold 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: 9.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 upward.
|
|
||||||
#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`.
|
|
||||||
#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)
|
|
||||||
colors:
|
|
||||||
# Default colors
|
|
||||||
primary:
|
|
||||||
background: '#2a2331'
|
|
||||||
foreground: '#dedbeb'
|
|
||||||
|
|
||||||
# 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: '#828482'
|
|
||||||
#bright_foreground: '#eaeaea'
|
|
||||||
|
|
||||||
# Cursor colors
|
|
||||||
#
|
|
||||||
# Colors which should be used to draw the terminal cursor.
|
|
||||||
#
|
|
||||||
# Allowed values are CellForeground/CellBackground, which reference the
|
|
||||||
# affected cell, or hexadecimal colors like #ff00ff.
|
|
||||||
#cursor:
|
|
||||||
# text: CellBackground
|
|
||||||
# cursor: CellForeground
|
|
||||||
|
|
||||||
# Vi mode cursor colors
|
|
||||||
#
|
|
||||||
# Colors for the cursor when the vi mode is active.
|
|
||||||
#
|
|
||||||
# Allowed values are CellForeground/CellBackground, which reference the
|
|
||||||
# affected cell, or hexadecimal colors like #ff00ff.
|
|
||||||
#vi_mode_cursor:
|
|
||||||
# text: CellBackground
|
|
||||||
# cursor: CellForeground
|
|
||||||
|
|
||||||
# Search colors
|
|
||||||
#
|
|
||||||
# Colors used for the search bar and match highlighting.
|
|
||||||
#search:
|
|
||||||
# Allowed values are CellForeground/CellBackground, which reference the
|
|
||||||
# affected cell, or hexadecimal colors like #ff00ff.
|
|
||||||
#matches:
|
|
||||||
# foreground: '#000000'
|
|
||||||
# background: '#ffffff'
|
|
||||||
#focused_match:
|
|
||||||
# foreground: '#ffffff'
|
|
||||||
# background: '#000000'
|
|
||||||
|
|
||||||
#bar:
|
|
||||||
# background: '#c5c8c6'
|
|
||||||
# foreground: '#1d1f21'
|
|
||||||
|
|
||||||
# Keyboard regex hints
|
|
||||||
#hints:
|
|
||||||
# First character in the hint label
|
|
||||||
#
|
|
||||||
# Allowed values are CellForeground/CellBackground, which reference the
|
|
||||||
# affected cell, or hexadecimal colors like #ff00ff.
|
|
||||||
#start:
|
|
||||||
# foreground: '#1d1f21'
|
|
||||||
# background: '#e9ff5e'
|
|
||||||
|
|
||||||
# All characters after the first one in the hint label
|
|
||||||
#
|
|
||||||
# Allowed values are CellForeground/CellBackground, which reference the
|
|
||||||
# affected cell, or hexadecimal colors like #ff00ff.
|
|
||||||
#end:
|
|
||||||
# foreground: '#e9ff5e'
|
|
||||||
# background: '#1d1f21'
|
|
||||||
|
|
||||||
# Line indicator
|
|
||||||
#
|
|
||||||
# Color used for the indicator displaying the position in history during
|
|
||||||
# search and vi mode.
|
|
||||||
#
|
|
||||||
# By default, these will use the opposing primary color.
|
|
||||||
#line_indicator:
|
|
||||||
# foreground: None
|
|
||||||
# background: None
|
|
||||||
|
|
||||||
# Selection colors
|
|
||||||
#
|
|
||||||
# Colors which should be used to draw the selection area.
|
|
||||||
#
|
|
||||||
# Allowed values are CellForeground/CellBackground, which reference the
|
|
||||||
# affected cell, or hexadecimal colors like #ff00ff.
|
|
||||||
#selection:
|
|
||||||
# text: CellBackground
|
|
||||||
# background: '#634e75'
|
|
||||||
|
|
||||||
# Normal colors
|
|
||||||
normal:
|
|
||||||
black: '#231d29'
|
|
||||||
red: '#e83f80'
|
|
||||||
green: '#a2baa8'
|
|
||||||
yellow: '#eacac0'
|
|
||||||
blue: '#9985d1'
|
|
||||||
magenta: '#e68ac1'
|
|
||||||
cyan: '#aabae7'
|
|
||||||
white: '#dedbeb'
|
|
||||||
|
|
||||||
# Bright colors
|
|
||||||
bright:
|
|
||||||
black: '#302838'
|
|
||||||
red: '#f55d8f'
|
|
||||||
green: '#bfd1c3'
|
|
||||||
yellow: '#f0ddd8'
|
|
||||||
blue: '#b4a4de'
|
|
||||||
magenta: '#edabd2'
|
|
||||||
cyan: '#c4d1f5'
|
|
||||||
white: '#edebf7'
|
|
||||||
|
|
||||||
# Dim colors
|
|
||||||
#
|
|
||||||
# If the dim colors are not set, they will be calculated automatically based
|
|
||||||
# on the `normal` colors.
|
|
||||||
#dim:
|
|
||||||
# black: '#131415'
|
|
||||||
# red: '#864343'
|
|
||||||
# green: '#777c44'
|
|
||||||
# yellow: '#9e824c'
|
|
||||||
# blue: '#556a7d'
|
|
||||||
# magenta: '#75617b'
|
|
||||||
# cyan: '#5b7d78'
|
|
||||||
# white: '#828482'
|
|
||||||
|
|
||||||
# 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: '#ff00ff' }`
|
|
||||||
#
|
|
||||||
#indexed_colors: []
|
|
||||||
|
|
||||||
# Transparent cell backgrounds
|
|
||||||
#
|
|
||||||
# Whether or not `window.opacity` applies to all cell backgrounds or only to
|
|
||||||
# the default background. When set to `true` all cells will be transparent
|
|
||||||
# regardless of their background color.
|
|
||||||
#transparent_background_colors: false
|
|
||||||
|
|
||||||
# Bell
|
|
||||||
#
|
|
||||||
# The bell is rung every time the BEL control character is received.
|
|
||||||
#bell:
|
|
||||||
# Visual Bell Animation
|
|
||||||
#
|
|
||||||
# Animation effect for flashing the screen when the visual bell is rung.
|
|
||||||
#
|
|
||||||
# Values for `animation`:
|
|
||||||
# - Ease
|
|
||||||
# - EaseOut
|
|
||||||
# - EaseOutSine
|
|
||||||
# - EaseOutQuad
|
|
||||||
# - EaseOutCubic
|
|
||||||
# - EaseOutQuart
|
|
||||||
# - EaseOutQuint
|
|
||||||
# - EaseOutExpo
|
|
||||||
# - EaseOutCirc
|
|
||||||
# - Linear
|
|
||||||
#animation: EaseOutExpo
|
|
||||||
|
|
||||||
# Duration of the visual bell flash in milliseconds. A `duration` of `0` will
|
|
||||||
# disable the visual bell animation.
|
|
||||||
#duration: 0
|
|
||||||
|
|
||||||
# Visual bell animation color.
|
|
||||||
#color: '#ffffff'
|
|
||||||
|
|
||||||
# Bell Command
|
|
||||||
#
|
|
||||||
# This program is executed whenever the bell is rung.
|
|
||||||
#
|
|
||||||
# When set to `command: None`, no command will be executed.
|
|
||||||
#
|
|
||||||
# Example:
|
|
||||||
# command:
|
|
||||||
# program: notify-send
|
|
||||||
# args: ["Hello, World!"]
|
|
||||||
#
|
|
||||||
#command: None
|
|
||||||
|
|
||||||
#selection:
|
|
||||||
# This string contains all characters that are used as separators for
|
|
||||||
# "semantic words" in Alacritty.
|
|
||||||
#semantic_escape_chars: ",│`|:\"' ()[]{}<>\t"
|
|
||||||
|
|
||||||
# When set to `true`, selected text will be copied to the primary clipboard.
|
|
||||||
#save_to_clipboard: false
|
|
||||||
|
|
||||||
#cursor:
|
|
||||||
# Cursor style
|
|
||||||
#style:
|
|
||||||
# Cursor shape
|
|
||||||
#
|
|
||||||
# Values for `shape`:
|
|
||||||
# - ▇ Block
|
|
||||||
# - _ Underline
|
|
||||||
# - | Beam
|
|
||||||
#shape: Block
|
|
||||||
|
|
||||||
# Cursor blinking state
|
|
||||||
#
|
|
||||||
# Values for `blinking`:
|
|
||||||
# - Never: Prevent the cursor from ever blinking
|
|
||||||
# - Off: Disable blinking by default
|
|
||||||
# - On: Enable blinking by default
|
|
||||||
# - Always: Force the cursor to always blink
|
|
||||||
#blinking: Off
|
|
||||||
|
|
||||||
# Vi mode cursor style
|
|
||||||
#
|
|
||||||
# If the vi mode cursor style is `None` or not specified, it will fall back to
|
|
||||||
# the style of the active value of the normal cursor.
|
|
||||||
#
|
|
||||||
# See `cursor.style` for available options.
|
|
||||||
#vi_mode_style: None
|
|
||||||
|
|
||||||
# Cursor blinking interval in milliseconds.
|
|
||||||
#blink_interval: 750
|
|
||||||
|
|
||||||
# If this is `true`, the cursor will be rendered as a hollow box when the
|
|
||||||
# window is not focused.
|
|
||||||
#unfocused_hollow: true
|
|
||||||
|
|
||||||
# Thickness of the cursor relative to the cell width as floating point number
|
|
||||||
# from `0.0` to `1.0`.
|
|
||||||
#thickness: 0.15
|
|
||||||
|
|
||||||
# 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:
|
|
||||||
# - (macOS) /bin/bash --login
|
|
||||||
# - (Linux/BSD) user login shell
|
|
||||||
# - (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
|
|
||||||
|
|
||||||
# Send ESC (\x1b) before characters when alt is pressed.
|
|
||||||
#alt_send_esc: true
|
|
||||||
|
|
||||||
#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
|
|
||||||
|
|
||||||
# Regex hints
|
|
||||||
#
|
|
||||||
# Terminal hints can be used to find text in the visible part of the terminal
|
|
||||||
# and pipe it to other applications.
|
|
||||||
#hints:
|
|
||||||
# Keys used for the hint labels.
|
|
||||||
#alphabet: "jfkdls;ahgurieowpq"
|
|
||||||
|
|
||||||
# List with all available hints
|
|
||||||
#
|
|
||||||
# Each hint must have a `regex` and either an `action` or a `command` field.
|
|
||||||
# The fields `mouse`, `binding` and `post_processing` are optional.
|
|
||||||
#
|
|
||||||
# The fields `command`, `binding.key`, `binding.mods`, `binding.mode` and
|
|
||||||
# `mouse.mods` accept the same values as they do in the `key_bindings` section.
|
|
||||||
#
|
|
||||||
# The `mouse.enabled` field controls if the hint should be underlined while
|
|
||||||
# the mouse with all `mouse.mods` keys held or the vi mode cursor is above it.
|
|
||||||
#
|
|
||||||
# If the `post_processing` field is set to `true`, heuristics will be used to
|
|
||||||
# shorten the match if there are characters likely not to be part of the hint
|
|
||||||
# (e.g. a trailing `.`). This is most useful for URIs.
|
|
||||||
#
|
|
||||||
# Values for `action`:
|
|
||||||
# - Copy
|
|
||||||
# Copy the hint's text to the clipboard.
|
|
||||||
# - Paste
|
|
||||||
# Paste the hint's text to the terminal or search.
|
|
||||||
# - Select
|
|
||||||
# Select the hint's text.
|
|
||||||
# - MoveViModeCursor
|
|
||||||
# Move the vi mode cursor to the beginning of the hint.
|
|
||||||
#enabled:
|
|
||||||
# - regex: "(ipfs:|ipns:|magnet:|mailto:|gemini:|gopher:|https:|http:|news:|file:|git:|ssh:|ftp:)\
|
|
||||||
# [^\u0000-\u001F\u007F-\u009F<>\"\\s{-}\\^⟨⟩`]+"
|
|
||||||
# command: xdg-open
|
|
||||||
# post_processing: true
|
|
||||||
# mouse:
|
|
||||||
# enabled: true
|
|
||||||
# mods: None
|
|
||||||
# binding:
|
|
||||||
# key: U
|
|
||||||
# mods: Control|Shift
|
|
||||||
|
|
||||||
# Mouse bindings
|
|
||||||
#
|
|
||||||
# Mouse bindings are specified as a list of objects, much like the key
|
|
||||||
# bindings further below.
|
|
||||||
#
|
|
||||||
# To trigger mouse bindings when an application running within Alacritty
|
|
||||||
# captures the mouse, the `Shift` modifier is automatically added as a
|
|
||||||
# requirement.
|
|
||||||
#
|
|
||||||
# Each mouse binding will specify a:
|
|
||||||
#
|
|
||||||
# - `mouse`:
|
|
||||||
#
|
|
||||||
# - Middle
|
|
||||||
# - Left
|
|
||||||
# - Right
|
|
||||||
# - Numeric identifier such as `5`
|
|
||||||
#
|
|
||||||
# - `action` (see key bindings for actions not exclusive to mouse mode)
|
|
||||||
#
|
|
||||||
# - Mouse exclusive actions:
|
|
||||||
#
|
|
||||||
# - ExpandSelection
|
|
||||||
# Expand the selection to the current mouse cursor location.
|
|
||||||
#
|
|
||||||
# And optionally:
|
|
||||||
#
|
|
||||||
# - `mods` (see key bindings)
|
|
||||||
mouse_bindings:
|
|
||||||
# - { mouse: Right, action: ExpandSelection }
|
|
||||||
- { mouse: Middle, action: Paste }
|
|
||||||
|
|
||||||
# Key bindings
|
|
||||||
#
|
|
||||||
# Key bindings are specified as a list of objects. For example, this is the
|
|
||||||
# default paste binding:
|
|
||||||
#
|
|
||||||
# `- { key: V, mods: Control|Shift, action: Paste }`
|
|
||||||
#
|
|
||||||
# Each key binding will specify a:
|
|
||||||
#
|
|
||||||
# - `key`: Identifier of the key pressed
|
|
||||||
#
|
|
||||||
# - A-Z
|
|
||||||
# - F1-F24
|
|
||||||
# - Key0-Key9
|
|
||||||
#
|
|
||||||
# A full list with available key codes can be found here:
|
|
||||||
# https://docs.rs/glutin/*/glutin/event/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`.
|
|
||||||
#
|
|
||||||
# Then exactly one of:
|
|
||||||
#
|
|
||||||
# - `chars`: Send a byte sequence to the running application
|
|
||||||
#
|
|
||||||
# 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.
|
|
||||||
#
|
|
||||||
# - `action`: Execute a predefined action
|
|
||||||
#
|
|
||||||
# - ToggleViMode
|
|
||||||
# - SearchForward
|
|
||||||
# Start searching toward the right of the search origin.
|
|
||||||
# - SearchBackward
|
|
||||||
# Start searching toward the left of the search origin.
|
|
||||||
# - Copy
|
|
||||||
# - Paste
|
|
||||||
# - IncreaseFontSize
|
|
||||||
# - DecreaseFontSize
|
|
||||||
# - ResetFontSize
|
|
||||||
# - ScrollPageUp
|
|
||||||
# - ScrollPageDown
|
|
||||||
# - ScrollHalfPageUp
|
|
||||||
# - ScrollHalfPageDown
|
|
||||||
# - ScrollLineUp
|
|
||||||
# - ScrollLineDown
|
|
||||||
# - ScrollToTop
|
|
||||||
# - ScrollToBottom
|
|
||||||
# - ClearHistory
|
|
||||||
# Remove the terminal's scrollback history.
|
|
||||||
# - Hide
|
|
||||||
# Hide the Alacritty window.
|
|
||||||
# - Minimize
|
|
||||||
# Minimize the Alacritty window.
|
|
||||||
# - Quit
|
|
||||||
# Quit Alacritty.
|
|
||||||
# - ToggleFullscreen
|
|
||||||
# - SpawnNewInstance
|
|
||||||
# Spawn a new instance of Alacritty.
|
|
||||||
# - ClearLogNotice
|
|
||||||
# Clear Alacritty's UI warning and error notice.
|
|
||||||
# - ClearSelection
|
|
||||||
# Remove the active selection.
|
|
||||||
# - ReceiveChar
|
|
||||||
# - None
|
|
||||||
#
|
|
||||||
# - Vi mode exclusive actions:
|
|
||||||
#
|
|
||||||
# - Open
|
|
||||||
# Perform the action of the first matching hint under the vi mode cursor
|
|
||||||
# with `mouse.enabled` set to `true`.
|
|
||||||
# - ToggleNormalSelection
|
|
||||||
# - ToggleLineSelection
|
|
||||||
# - ToggleBlockSelection
|
|
||||||
# - ToggleSemanticSelection
|
|
||||||
# Toggle semantic selection based on `selection.semantic_escape_chars`.
|
|
||||||
#
|
|
||||||
# - Vi mode exclusive cursor motion actions:
|
|
||||||
#
|
|
||||||
# - Up
|
|
||||||
# One line up.
|
|
||||||
# - Down
|
|
||||||
# One line down.
|
|
||||||
# - Left
|
|
||||||
# One character left.
|
|
||||||
# - Right
|
|
||||||
# One character right.
|
|
||||||
# - First
|
|
||||||
# First column, or beginning of the line when already at the first column.
|
|
||||||
# - Last
|
|
||||||
# Last column, or beginning of the line when already at the last column.
|
|
||||||
# - FirstOccupied
|
|
||||||
# First non-empty cell in this terminal row, or first non-empty cell of
|
|
||||||
# the line when already at the first cell of the row.
|
|
||||||
# - High
|
|
||||||
# Top of the screen.
|
|
||||||
# - Middle
|
|
||||||
# Center of the screen.
|
|
||||||
# - Low
|
|
||||||
# Bottom of the screen.
|
|
||||||
# - SemanticLeft
|
|
||||||
# Start of the previous semantically separated word.
|
|
||||||
# - SemanticRight
|
|
||||||
# Start of the next semantically separated word.
|
|
||||||
# - SemanticLeftEnd
|
|
||||||
# End of the previous semantically separated word.
|
|
||||||
# - SemanticRightEnd
|
|
||||||
# End of the next semantically separated word.
|
|
||||||
# - WordLeft
|
|
||||||
# Start of the previous whitespace separated word.
|
|
||||||
# - WordRight
|
|
||||||
# Start of the next whitespace separated word.
|
|
||||||
# - WordLeftEnd
|
|
||||||
# End of the previous whitespace separated word.
|
|
||||||
# - WordRightEnd
|
|
||||||
# End of the next whitespace separated word.
|
|
||||||
# - Bracket
|
|
||||||
# Character matching the bracket at the cursor's location.
|
|
||||||
# - SearchNext
|
|
||||||
# Beginning of the next match.
|
|
||||||
# - SearchPrevious
|
|
||||||
# Beginning of the previous match.
|
|
||||||
# - SearchStart
|
|
||||||
# Start of the match to the left of the vi mode cursor.
|
|
||||||
# - SearchEnd
|
|
||||||
# End of the match to the right of the vi mode cursor.
|
|
||||||
#
|
|
||||||
# - Search mode exclusive actions:
|
|
||||||
# - SearchFocusNext
|
|
||||||
# Move the focus to the next search match.
|
|
||||||
# - SearchFocusPrevious
|
|
||||||
# Move the focus to the previous search match.
|
|
||||||
# - SearchConfirm
|
|
||||||
# - SearchCancel
|
|
||||||
# - SearchClear
|
|
||||||
# Reset the search regex.
|
|
||||||
# - SearchDeleteWord
|
|
||||||
# Delete the last word in the search regex.
|
|
||||||
# - SearchHistoryPrevious
|
|
||||||
# Go to the previous regex in the search history.
|
|
||||||
# - SearchHistoryNext
|
|
||||||
# Go to the next regex in the search history.
|
|
||||||
#
|
|
||||||
# - macOS exclusive actions:
|
|
||||||
# - ToggleSimpleFullscreen
|
|
||||||
# Enter fullscreen without occupying another space.
|
|
||||||
#
|
|
||||||
# - Linux/BSD exclusive actions:
|
|
||||||
#
|
|
||||||
# - CopySelection
|
|
||||||
# Copy from the selection buffer.
|
|
||||||
# - PasteSelection
|
|
||||||
# Paste from the selection buffer.
|
|
||||||
#
|
|
||||||
# - `command`: Fork and execute a specified command plus arguments
|
|
||||||
#
|
|
||||||
# The `command` field must be a map containing a `program` string and an
|
|
||||||
# `args` array of command line parameter strings. For example:
|
|
||||||
# `{ program: "alacritty", args: ["-e", "vttest"] }`
|
|
||||||
#
|
|
||||||
# And optionally:
|
|
||||||
#
|
|
||||||
# - `mods`: Key modifiers to filter binding actions
|
|
||||||
#
|
|
||||||
# - Command
|
|
||||||
# - Control
|
|
||||||
# - Option
|
|
||||||
# - Super
|
|
||||||
# - Shift
|
|
||||||
# - Alt
|
|
||||||
#
|
|
||||||
# Multiple `mods` can be combined using `|` like this:
|
|
||||||
# `mods: Control|Shift`.
|
|
||||||
# Whitespace and capitalization are relevant and must match the example.
|
|
||||||
#
|
|
||||||
# - `mode`: Indicate a binding for only specific terminal reported modes
|
|
||||||
#
|
|
||||||
# This is mainly used to send applications the correct escape sequences
|
|
||||||
# when in different modes.
|
|
||||||
#
|
|
||||||
# - AppCursor
|
|
||||||
# - AppKeypad
|
|
||||||
# - Search
|
|
||||||
# - Alt
|
|
||||||
# - Vi
|
|
||||||
#
|
|
||||||
# A `~` operator can be used before a mode to apply the binding whenever
|
|
||||||
# the mode is *not* active, e.g. `~Alt`.
|
|
||||||
#
|
|
||||||
# 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 `ReceiveChar` action. Alternatively, you can use `None` for
|
|
||||||
# a no-op if you do not wish to receive input characters for that binding.
|
|
||||||
#
|
|
||||||
# If the same trigger is assigned to multiple actions, all of them are executed
|
|
||||||
# in the order they were defined in.
|
|
||||||
key_bindings:
|
|
||||||
#- { key: Paste, action: Paste }
|
|
||||||
#- { key: Copy, action: Copy }
|
|
||||||
#- { key: L, mods: Control, action: ClearLogNotice }
|
|
||||||
#- { key: L, mods: Control, mode: ~Vi|~Search, chars: "\x0c" }
|
|
||||||
#- { key: PageUp, mods: Shift, mode: ~Alt, action: ScrollPageUp, }
|
|
||||||
#- { key: PageDown, mods: Shift, mode: ~Alt, action: ScrollPageDown }
|
|
||||||
#- { key: Home, mods: Shift, mode: ~Alt, action: ScrollToTop, }
|
|
||||||
#- { key: End, mods: Shift, mode: ~Alt, action: ScrollToBottom }
|
|
||||||
|
|
||||||
# Vi Mode
|
|
||||||
#- { key: Space, mods: Shift|Control, mode: ~Search, action: ToggleViMode }
|
|
||||||
#- { key: Space, mods: Shift|Control, mode: Vi|~Search, action: ScrollToBottom }
|
|
||||||
#- { key: Escape, mode: Vi|~Search, action: ClearSelection }
|
|
||||||
#- { key: I, mode: Vi|~Search, action: ToggleViMode }
|
|
||||||
#- { key: I, mode: Vi|~Search, action: ScrollToBottom }
|
|
||||||
#- { key: C, mods: Control, mode: Vi|~Search, action: ToggleViMode }
|
|
||||||
#- { key: Y, mods: Control, mode: Vi|~Search, action: ScrollLineUp }
|
|
||||||
#- { key: E, mods: Control, mode: Vi|~Search, action: ScrollLineDown }
|
|
||||||
#- { key: G, mode: Vi|~Search, action: ScrollToTop }
|
|
||||||
#- { key: G, mods: Shift, mode: Vi|~Search, action: ScrollToBottom }
|
|
||||||
#- { key: B, mods: Control, mode: Vi|~Search, action: ScrollPageUp }
|
|
||||||
#- { key: F, mods: Control, mode: Vi|~Search, action: ScrollPageDown }
|
|
||||||
#- { key: U, mods: Control, mode: Vi|~Search, action: ScrollHalfPageUp }
|
|
||||||
#- { key: D, mods: Control, mode: Vi|~Search, action: ScrollHalfPageDown }
|
|
||||||
#- { key: Y, mode: Vi|~Search, action: Copy }
|
|
||||||
#- { key: Y, mode: Vi|~Search, action: ClearSelection }
|
|
||||||
#- { key: Copy, mode: Vi|~Search, action: ClearSelection }
|
|
||||||
#- { key: V, mode: Vi|~Search, action: ToggleNormalSelection }
|
|
||||||
#- { key: V, mods: Shift, mode: Vi|~Search, action: ToggleLineSelection }
|
|
||||||
#- { key: V, mods: Control, mode: Vi|~Search, action: ToggleBlockSelection }
|
|
||||||
#- { key: V, mods: Alt, mode: Vi|~Search, action: ToggleSemanticSelection }
|
|
||||||
#- { key: Return, mode: Vi|~Search, action: Open }
|
|
||||||
#- { key: K, mode: Vi|~Search, action: Up }
|
|
||||||
#- { key: J, mode: Vi|~Search, action: Down }
|
|
||||||
#- { key: H, mode: Vi|~Search, action: Left }
|
|
||||||
#- { key: L, mode: Vi|~Search, action: Right }
|
|
||||||
#- { key: Up, mode: Vi|~Search, action: Up }
|
|
||||||
#- { key: Down, mode: Vi|~Search, action: Down }
|
|
||||||
#- { key: Left, mode: Vi|~Search, action: Left }
|
|
||||||
#- { key: Right, mode: Vi|~Search, action: Right }
|
|
||||||
#- { key: Key0, mode: Vi|~Search, action: First }
|
|
||||||
#- { key: Key4, mods: Shift, mode: Vi|~Search, action: Last }
|
|
||||||
#- { key: Key6, mods: Shift, mode: Vi|~Search, action: FirstOccupied }
|
|
||||||
#- { key: H, mods: Shift, mode: Vi|~Search, action: High }
|
|
||||||
#- { key: M, mods: Shift, mode: Vi|~Search, action: Middle }
|
|
||||||
#- { key: L, mods: Shift, mode: Vi|~Search, action: Low }
|
|
||||||
#- { key: B, mode: Vi|~Search, action: SemanticLeft }
|
|
||||||
#- { key: W, mode: Vi|~Search, action: SemanticRight }
|
|
||||||
#- { key: E, mode: Vi|~Search, action: SemanticRightEnd }
|
|
||||||
#- { key: B, mods: Shift, mode: Vi|~Search, action: WordLeft }
|
|
||||||
#- { key: W, mods: Shift, mode: Vi|~Search, action: WordRight }
|
|
||||||
#- { key: E, mods: Shift, mode: Vi|~Search, action: WordRightEnd }
|
|
||||||
#- { key: Key5, mods: Shift, mode: Vi|~Search, action: Bracket }
|
|
||||||
#- { key: Slash, mode: Vi|~Search, action: SearchForward }
|
|
||||||
#- { key: Slash, mods: Shift, mode: Vi|~Search, action: SearchBackward }
|
|
||||||
#- { key: N, mode: Vi|~Search, action: SearchNext }
|
|
||||||
#- { key: N, mods: Shift, mode: Vi|~Search, action: SearchPrevious }
|
|
||||||
|
|
||||||
# Search Mode
|
|
||||||
#- { key: Return, mode: Search|Vi, action: SearchConfirm }
|
|
||||||
#- { key: Escape, mode: Search, action: SearchCancel }
|
|
||||||
#- { key: C, mods: Control, mode: Search, action: SearchCancel }
|
|
||||||
#- { key: U, mods: Control, mode: Search, action: SearchClear }
|
|
||||||
#- { key: W, mods: Control, mode: Search, action: SearchDeleteWord }
|
|
||||||
#- { key: P, mods: Control, mode: Search, action: SearchHistoryPrevious }
|
|
||||||
#- { key: N, mods: Control, mode: Search, action: SearchHistoryNext }
|
|
||||||
#- { key: Up, mode: Search, action: SearchHistoryPrevious }
|
|
||||||
#- { key: Down, mode: Search, action: SearchHistoryNext }
|
|
||||||
#- { key: Return, mode: Search|~Vi, action: SearchFocusNext }
|
|
||||||
#- { key: Return, mods: Shift, mode: Search|~Vi, action: SearchFocusPrevious }
|
|
||||||
|
|
||||||
# (Windows, Linux, and BSD only)
|
|
||||||
- { key: V, mods: Control|Shift, action: Paste }
|
|
||||||
- { key: C, mods: Control|Shift, action: Copy }
|
|
||||||
#- { key: F, mods: Control|Shift, mode: ~Search, action: SearchForward }
|
|
||||||
#- { key: B, mods: Control|Shift, mode: ~Search, action: SearchBackward }
|
|
||||||
#- { key: C, mods: Control|Shift, mode: Vi|~Search, action: ClearSelection }
|
|
||||||
#- { key: Insert, mods: Shift, action: PasteSelection }
|
|
||||||
#- { key: Key0, mods: Control, action: ResetFontSize }
|
|
||||||
#- { key: Equals, mods: Control, action: IncreaseFontSize }
|
|
||||||
#- { key: Plus, mods: Control, action: IncreaseFontSize }
|
|
||||||
#- { key: NumpadAdd, mods: Control, action: IncreaseFontSize }
|
|
||||||
#- { key: Minus, mods: Control, action: DecreaseFontSize }
|
|
||||||
#- { key: NumpadSubtract, mods: Control, action: DecreaseFontSize }
|
|
||||||
|
|
||||||
# (Windows only)
|
|
||||||
#- { key: Return, mods: Alt, action: ToggleFullscreen }
|
|
||||||
|
|
||||||
# (macOS only)
|
|
||||||
#- { key: K, mods: Command, mode: ~Vi|~Search, chars: "\x0c" }
|
|
||||||
#- { key: K, mods: Command, mode: ~Vi|~Search, action: ClearHistory }
|
|
||||||
#- { key: Key0, mods: Command, action: ResetFontSize }
|
|
||||||
#- { key: Equals, mods: Command, action: IncreaseFontSize }
|
|
||||||
#- { key: Plus, mods: Command, action: IncreaseFontSize }
|
|
||||||
#- { key: NumpadAdd, mods: Command, action: IncreaseFontSize }
|
|
||||||
#- { key: Minus, mods: Command, action: DecreaseFontSize }
|
|
||||||
#- { key: NumpadSubtract, mods: Command, action: DecreaseFontSize }
|
|
||||||
#- { key: V, mods: Command, action: Paste }
|
|
||||||
#- { key: C, mods: Command, action: Copy }
|
|
||||||
#- { key: C, mods: Command, mode: Vi|~Search, action: ClearSelection }
|
|
||||||
#- { key: H, mods: Command, action: Hide }
|
|
||||||
#- { key: H, mods: Command|Alt, action: HideOtherApplications }
|
|
||||||
#- { key: M, mods: Command, action: Minimize }
|
|
||||||
#- { key: Q, mods: Command, action: Quit }
|
|
||||||
#- { key: W, mods: Command, action: Quit }
|
|
||||||
#- { key: N, mods: Command, action: SpawnNewInstance }
|
|
||||||
#- { key: F, mods: Command|Control, action: ToggleFullscreen }
|
|
||||||
#- { key: F, mods: Command, mode: ~Search, action: SearchForward }
|
|
||||||
#- { key: B, mods: Command, mode: ~Search, action: SearchBackward }
|
|
||||||
|
|
||||||
#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`:
|
|
||||||
# - Off
|
|
||||||
# - Error
|
|
||||||
# - Warn
|
|
||||||
# - Info
|
|
||||||
# - Debug
|
|
||||||
# - Trace
|
|
||||||
#log_level: Warn
|
|
||||||
|
|
||||||
# Print all received window events.
|
|
||||||
#print_events: false
|
|
|
@ -1,865 +0,0 @@
|
||||||
# Configuration for Alacritty, the GPU enhanced terminal emulator.
|
|
||||||
|
|
||||||
# Import additional configuration files
|
|
||||||
#
|
|
||||||
# Imports are loaded in order, skipping all missing files, with the importing
|
|
||||||
# file being loaded last. If a field is already present in a previous import, it
|
|
||||||
# will be replaced.
|
|
||||||
#
|
|
||||||
# All imports must either be absolute paths starting with `/`, or paths relative
|
|
||||||
# to the user's home directory starting with `~/`.
|
|
||||||
#import:
|
|
||||||
# - /path/to/alacritty.yml
|
|
||||||
|
|
||||||
# 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: alacritty
|
|
||||||
|
|
||||||
window:
|
|
||||||
# Window dimensions (changes require restart)
|
|
||||||
#
|
|
||||||
# Number of lines/columns (not pixels) in the terminal. The number of columns
|
|
||||||
# must be at least `2`, while using a value of `0` for columns and lines will
|
|
||||||
# fall back to the window manager's recommended size.
|
|
||||||
dimensions:
|
|
||||||
columns: 84
|
|
||||||
lines: 24
|
|
||||||
|
|
||||||
# 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 and no title bar buttons
|
|
||||||
#decorations: full
|
|
||||||
|
|
||||||
# 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.
|
|
||||||
#opacity: 1.0
|
|
||||||
|
|
||||||
# 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
|
|
||||||
|
|
||||||
# Allow terminal applications to change Alacritty's window title.
|
|
||||||
#dynamic_title: true
|
|
||||||
|
|
||||||
# Window class (Linux/BSD only):
|
|
||||||
#class:
|
|
||||||
# Application instance name
|
|
||||||
#instance: Alacritty
|
|
||||||
# General application class
|
|
||||||
#general: Alacritty
|
|
||||||
|
|
||||||
# GTK theme variant (Linux/BSD only)
|
|
||||||
#
|
|
||||||
# Override the variant of the GTK theme. Commonly supported values are `dark`
|
|
||||||
# and `light`. Set this to `None` to use the default theme variant.
|
|
||||||
#gtk_theme_variant: None
|
|
||||||
|
|
||||||
#scrolling:
|
|
||||||
# Maximum number of lines in the scrollback buffer.
|
|
||||||
# Specifying '0' will disable scrolling.
|
|
||||||
#history: 10000
|
|
||||||
|
|
||||||
# Scrolling distance multiplier.
|
|
||||||
#multiplier: 3
|
|
||||||
|
|
||||||
# Font configuration
|
|
||||||
font:
|
|
||||||
# Normal (roman) font face
|
|
||||||
normal:
|
|
||||||
# Font family
|
|
||||||
#
|
|
||||||
# Default:
|
|
||||||
# - (macOS) Menlo
|
|
||||||
# - (Linux/BSD) monospace
|
|
||||||
# - (Windows) Consolas
|
|
||||||
family: Terminus
|
|
||||||
|
|
||||||
# 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: Regular
|
|
||||||
|
|
||||||
# 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
|
|
||||||
|
|
||||||
# Bold italic font face
|
|
||||||
#bold_italic:
|
|
||||||
# Font family
|
|
||||||
#
|
|
||||||
# If the bold 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: 9.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 upward.
|
|
||||||
#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`.
|
|
||||||
#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)
|
|
||||||
colors:
|
|
||||||
# Default colors
|
|
||||||
primary:
|
|
||||||
background: '%alacritty.background%'
|
|
||||||
foreground: '%alacritty.foreground%'
|
|
||||||
|
|
||||||
# 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: '#828482'
|
|
||||||
#bright_foreground: '#eaeaea'
|
|
||||||
|
|
||||||
# Cursor colors
|
|
||||||
#
|
|
||||||
# Colors which should be used to draw the terminal cursor.
|
|
||||||
#
|
|
||||||
# Allowed values are CellForeground/CellBackground, which reference the
|
|
||||||
# affected cell, or hexadecimal colors like #ff00ff.
|
|
||||||
#cursor:
|
|
||||||
# text: CellBackground
|
|
||||||
# cursor: CellForeground
|
|
||||||
|
|
||||||
# Vi mode cursor colors
|
|
||||||
#
|
|
||||||
# Colors for the cursor when the vi mode is active.
|
|
||||||
#
|
|
||||||
# Allowed values are CellForeground/CellBackground, which reference the
|
|
||||||
# affected cell, or hexadecimal colors like #ff00ff.
|
|
||||||
#vi_mode_cursor:
|
|
||||||
# text: CellBackground
|
|
||||||
# cursor: CellForeground
|
|
||||||
|
|
||||||
# Search colors
|
|
||||||
#
|
|
||||||
# Colors used for the search bar and match highlighting.
|
|
||||||
#search:
|
|
||||||
# Allowed values are CellForeground/CellBackground, which reference the
|
|
||||||
# affected cell, or hexadecimal colors like #ff00ff.
|
|
||||||
#matches:
|
|
||||||
# foreground: '#000000'
|
|
||||||
# background: '#ffffff'
|
|
||||||
#focused_match:
|
|
||||||
# foreground: '#ffffff'
|
|
||||||
# background: '#000000'
|
|
||||||
|
|
||||||
#bar:
|
|
||||||
# background: '#c5c8c6'
|
|
||||||
# foreground: '#1d1f21'
|
|
||||||
|
|
||||||
# Keyboard regex hints
|
|
||||||
#hints:
|
|
||||||
# First character in the hint label
|
|
||||||
#
|
|
||||||
# Allowed values are CellForeground/CellBackground, which reference the
|
|
||||||
# affected cell, or hexadecimal colors like #ff00ff.
|
|
||||||
#start:
|
|
||||||
# foreground: '#1d1f21'
|
|
||||||
# background: '#e9ff5e'
|
|
||||||
|
|
||||||
# All characters after the first one in the hint label
|
|
||||||
#
|
|
||||||
# Allowed values are CellForeground/CellBackground, which reference the
|
|
||||||
# affected cell, or hexadecimal colors like #ff00ff.
|
|
||||||
#end:
|
|
||||||
# foreground: '#e9ff5e'
|
|
||||||
# background: '#1d1f21'
|
|
||||||
|
|
||||||
# Line indicator
|
|
||||||
#
|
|
||||||
# Color used for the indicator displaying the position in history during
|
|
||||||
# search and vi mode.
|
|
||||||
#
|
|
||||||
# By default, these will use the opposing primary color.
|
|
||||||
#line_indicator:
|
|
||||||
# foreground: None
|
|
||||||
# background: None
|
|
||||||
|
|
||||||
# Selection colors
|
|
||||||
#
|
|
||||||
# Colors which should be used to draw the selection area.
|
|
||||||
#
|
|
||||||
# Allowed values are CellForeground/CellBackground, which reference the
|
|
||||||
# affected cell, or hexadecimal colors like #ff00ff.
|
|
||||||
#selection:
|
|
||||||
# text: CellBackground
|
|
||||||
# background: '#634e75'
|
|
||||||
|
|
||||||
# Normal colors
|
|
||||||
normal:
|
|
||||||
black: '%alacritty.color0%'
|
|
||||||
red: '%alacritty.color1%'
|
|
||||||
green: '%alacritty.color2%'
|
|
||||||
yellow: '%alacritty.color3%'
|
|
||||||
blue: '%alacritty.color4%'
|
|
||||||
magenta: '%alacritty.color5%'
|
|
||||||
cyan: '%alacritty.color6%'
|
|
||||||
white: '%alacritty.color7%'
|
|
||||||
|
|
||||||
# Bright colors
|
|
||||||
bright:
|
|
||||||
black: '%alacritty.color8%'
|
|
||||||
red: '%alacritty.color9%'
|
|
||||||
green: '%alacritty.color10%'
|
|
||||||
yellow: '%alacritty.color11%'
|
|
||||||
blue: '%alacritty.color12%'
|
|
||||||
magenta: '%alacritty.color13%'
|
|
||||||
cyan: '%alacritty.color14%'
|
|
||||||
white: '%alacritty.color15%'
|
|
||||||
|
|
||||||
# Dim colors
|
|
||||||
#
|
|
||||||
# If the dim colors are not set, they will be calculated automatically based
|
|
||||||
# on the `normal` colors.
|
|
||||||
#dim:
|
|
||||||
# black: '#131415'
|
|
||||||
# red: '#864343'
|
|
||||||
# green: '#777c44'
|
|
||||||
# yellow: '#9e824c'
|
|
||||||
# blue: '#556a7d'
|
|
||||||
# magenta: '#75617b'
|
|
||||||
# cyan: '#5b7d78'
|
|
||||||
# white: '#828482'
|
|
||||||
|
|
||||||
# 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: '#ff00ff' }`
|
|
||||||
#
|
|
||||||
#indexed_colors: []
|
|
||||||
|
|
||||||
# Transparent cell backgrounds
|
|
||||||
#
|
|
||||||
# Whether or not `window.opacity` applies to all cell backgrounds or only to
|
|
||||||
# the default background. When set to `true` all cells will be transparent
|
|
||||||
# regardless of their background color.
|
|
||||||
#transparent_background_colors: false
|
|
||||||
|
|
||||||
# Bell
|
|
||||||
#
|
|
||||||
# The bell is rung every time the BEL control character is received.
|
|
||||||
#bell:
|
|
||||||
# Visual Bell Animation
|
|
||||||
#
|
|
||||||
# Animation effect for flashing the screen when the visual bell is rung.
|
|
||||||
#
|
|
||||||
# Values for `animation`:
|
|
||||||
# - Ease
|
|
||||||
# - EaseOut
|
|
||||||
# - EaseOutSine
|
|
||||||
# - EaseOutQuad
|
|
||||||
# - EaseOutCubic
|
|
||||||
# - EaseOutQuart
|
|
||||||
# - EaseOutQuint
|
|
||||||
# - EaseOutExpo
|
|
||||||
# - EaseOutCirc
|
|
||||||
# - Linear
|
|
||||||
#animation: EaseOutExpo
|
|
||||||
|
|
||||||
# Duration of the visual bell flash in milliseconds. A `duration` of `0` will
|
|
||||||
# disable the visual bell animation.
|
|
||||||
#duration: 0
|
|
||||||
|
|
||||||
# Visual bell animation color.
|
|
||||||
#color: '#ffffff'
|
|
||||||
|
|
||||||
# Bell Command
|
|
||||||
#
|
|
||||||
# This program is executed whenever the bell is rung.
|
|
||||||
#
|
|
||||||
# When set to `command: None`, no command will be executed.
|
|
||||||
#
|
|
||||||
# Example:
|
|
||||||
# command:
|
|
||||||
# program: notify-send
|
|
||||||
# args: ["Hello, World!"]
|
|
||||||
#
|
|
||||||
#command: None
|
|
||||||
|
|
||||||
#selection:
|
|
||||||
# This string contains all characters that are used as separators for
|
|
||||||
# "semantic words" in Alacritty.
|
|
||||||
#semantic_escape_chars: ",│`|:\"' ()[]{}<>\t"
|
|
||||||
|
|
||||||
# When set to `true`, selected text will be copied to the primary clipboard.
|
|
||||||
#save_to_clipboard: false
|
|
||||||
|
|
||||||
#cursor:
|
|
||||||
# Cursor style
|
|
||||||
#style:
|
|
||||||
# Cursor shape
|
|
||||||
#
|
|
||||||
# Values for `shape`:
|
|
||||||
# - ▇ Block
|
|
||||||
# - _ Underline
|
|
||||||
# - | Beam
|
|
||||||
#shape: Block
|
|
||||||
|
|
||||||
# Cursor blinking state
|
|
||||||
#
|
|
||||||
# Values for `blinking`:
|
|
||||||
# - Never: Prevent the cursor from ever blinking
|
|
||||||
# - Off: Disable blinking by default
|
|
||||||
# - On: Enable blinking by default
|
|
||||||
# - Always: Force the cursor to always blink
|
|
||||||
#blinking: Off
|
|
||||||
|
|
||||||
# Vi mode cursor style
|
|
||||||
#
|
|
||||||
# If the vi mode cursor style is `None` or not specified, it will fall back to
|
|
||||||
# the style of the active value of the normal cursor.
|
|
||||||
#
|
|
||||||
# See `cursor.style` for available options.
|
|
||||||
#vi_mode_style: None
|
|
||||||
|
|
||||||
# Cursor blinking interval in milliseconds.
|
|
||||||
#blink_interval: 750
|
|
||||||
|
|
||||||
# If this is `true`, the cursor will be rendered as a hollow box when the
|
|
||||||
# window is not focused.
|
|
||||||
#unfocused_hollow: true
|
|
||||||
|
|
||||||
# Thickness of the cursor relative to the cell width as floating point number
|
|
||||||
# from `0.0` to `1.0`.
|
|
||||||
#thickness: 0.15
|
|
||||||
|
|
||||||
# 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:
|
|
||||||
# - (macOS) /bin/bash --login
|
|
||||||
# - (Linux/BSD) user login shell
|
|
||||||
# - (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
|
|
||||||
|
|
||||||
# Send ESC (\x1b) before characters when alt is pressed.
|
|
||||||
#alt_send_esc: true
|
|
||||||
|
|
||||||
#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
|
|
||||||
|
|
||||||
# Regex hints
|
|
||||||
#
|
|
||||||
# Terminal hints can be used to find text in the visible part of the terminal
|
|
||||||
# and pipe it to other applications.
|
|
||||||
#hints:
|
|
||||||
# Keys used for the hint labels.
|
|
||||||
#alphabet: "jfkdls;ahgurieowpq"
|
|
||||||
|
|
||||||
# List with all available hints
|
|
||||||
#
|
|
||||||
# Each hint must have a `regex` and either an `action` or a `command` field.
|
|
||||||
# The fields `mouse`, `binding` and `post_processing` are optional.
|
|
||||||
#
|
|
||||||
# The fields `command`, `binding.key`, `binding.mods`, `binding.mode` and
|
|
||||||
# `mouse.mods` accept the same values as they do in the `key_bindings` section.
|
|
||||||
#
|
|
||||||
# The `mouse.enabled` field controls if the hint should be underlined while
|
|
||||||
# the mouse with all `mouse.mods` keys held or the vi mode cursor is above it.
|
|
||||||
#
|
|
||||||
# If the `post_processing` field is set to `true`, heuristics will be used to
|
|
||||||
# shorten the match if there are characters likely not to be part of the hint
|
|
||||||
# (e.g. a trailing `.`). This is most useful for URIs.
|
|
||||||
#
|
|
||||||
# Values for `action`:
|
|
||||||
# - Copy
|
|
||||||
# Copy the hint's text to the clipboard.
|
|
||||||
# - Paste
|
|
||||||
# Paste the hint's text to the terminal or search.
|
|
||||||
# - Select
|
|
||||||
# Select the hint's text.
|
|
||||||
# - MoveViModeCursor
|
|
||||||
# Move the vi mode cursor to the beginning of the hint.
|
|
||||||
#enabled:
|
|
||||||
# - regex: "(ipfs:|ipns:|magnet:|mailto:|gemini:|gopher:|https:|http:|news:|file:|git:|ssh:|ftp:)\
|
|
||||||
# [^\u0000-\u001F\u007F-\u009F<>\"\\s{-}\\^⟨⟩`]+"
|
|
||||||
# command: xdg-open
|
|
||||||
# post_processing: true
|
|
||||||
# mouse:
|
|
||||||
# enabled: true
|
|
||||||
# mods: None
|
|
||||||
# binding:
|
|
||||||
# key: U
|
|
||||||
# mods: Control|Shift
|
|
||||||
|
|
||||||
# Mouse bindings
|
|
||||||
#
|
|
||||||
# Mouse bindings are specified as a list of objects, much like the key
|
|
||||||
# bindings further below.
|
|
||||||
#
|
|
||||||
# To trigger mouse bindings when an application running within Alacritty
|
|
||||||
# captures the mouse, the `Shift` modifier is automatically added as a
|
|
||||||
# requirement.
|
|
||||||
#
|
|
||||||
# Each mouse binding will specify a:
|
|
||||||
#
|
|
||||||
# - `mouse`:
|
|
||||||
#
|
|
||||||
# - Middle
|
|
||||||
# - Left
|
|
||||||
# - Right
|
|
||||||
# - Numeric identifier such as `5`
|
|
||||||
#
|
|
||||||
# - `action` (see key bindings for actions not exclusive to mouse mode)
|
|
||||||
#
|
|
||||||
# - Mouse exclusive actions:
|
|
||||||
#
|
|
||||||
# - ExpandSelection
|
|
||||||
# Expand the selection to the current mouse cursor location.
|
|
||||||
#
|
|
||||||
# And optionally:
|
|
||||||
#
|
|
||||||
# - `mods` (see key bindings)
|
|
||||||
mouse_bindings:
|
|
||||||
# - { mouse: Right, action: ExpandSelection }
|
|
||||||
- { mouse: Middle, action: Paste }
|
|
||||||
|
|
||||||
# Key bindings
|
|
||||||
#
|
|
||||||
# Key bindings are specified as a list of objects. For example, this is the
|
|
||||||
# default paste binding:
|
|
||||||
#
|
|
||||||
# `- { key: V, mods: Control|Shift, action: Paste }`
|
|
||||||
#
|
|
||||||
# Each key binding will specify a:
|
|
||||||
#
|
|
||||||
# - `key`: Identifier of the key pressed
|
|
||||||
#
|
|
||||||
# - A-Z
|
|
||||||
# - F1-F24
|
|
||||||
# - Key0-Key9
|
|
||||||
#
|
|
||||||
# A full list with available key codes can be found here:
|
|
||||||
# https://docs.rs/glutin/*/glutin/event/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`.
|
|
||||||
#
|
|
||||||
# Then exactly one of:
|
|
||||||
#
|
|
||||||
# - `chars`: Send a byte sequence to the running application
|
|
||||||
#
|
|
||||||
# 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.
|
|
||||||
#
|
|
||||||
# - `action`: Execute a predefined action
|
|
||||||
#
|
|
||||||
# - ToggleViMode
|
|
||||||
# - SearchForward
|
|
||||||
# Start searching toward the right of the search origin.
|
|
||||||
# - SearchBackward
|
|
||||||
# Start searching toward the left of the search origin.
|
|
||||||
# - Copy
|
|
||||||
# - Paste
|
|
||||||
# - IncreaseFontSize
|
|
||||||
# - DecreaseFontSize
|
|
||||||
# - ResetFontSize
|
|
||||||
# - ScrollPageUp
|
|
||||||
# - ScrollPageDown
|
|
||||||
# - ScrollHalfPageUp
|
|
||||||
# - ScrollHalfPageDown
|
|
||||||
# - ScrollLineUp
|
|
||||||
# - ScrollLineDown
|
|
||||||
# - ScrollToTop
|
|
||||||
# - ScrollToBottom
|
|
||||||
# - ClearHistory
|
|
||||||
# Remove the terminal's scrollback history.
|
|
||||||
# - Hide
|
|
||||||
# Hide the Alacritty window.
|
|
||||||
# - Minimize
|
|
||||||
# Minimize the Alacritty window.
|
|
||||||
# - Quit
|
|
||||||
# Quit Alacritty.
|
|
||||||
# - ToggleFullscreen
|
|
||||||
# - SpawnNewInstance
|
|
||||||
# Spawn a new instance of Alacritty.
|
|
||||||
# - ClearLogNotice
|
|
||||||
# Clear Alacritty's UI warning and error notice.
|
|
||||||
# - ClearSelection
|
|
||||||
# Remove the active selection.
|
|
||||||
# - ReceiveChar
|
|
||||||
# - None
|
|
||||||
#
|
|
||||||
# - Vi mode exclusive actions:
|
|
||||||
#
|
|
||||||
# - Open
|
|
||||||
# Perform the action of the first matching hint under the vi mode cursor
|
|
||||||
# with `mouse.enabled` set to `true`.
|
|
||||||
# - ToggleNormalSelection
|
|
||||||
# - ToggleLineSelection
|
|
||||||
# - ToggleBlockSelection
|
|
||||||
# - ToggleSemanticSelection
|
|
||||||
# Toggle semantic selection based on `selection.semantic_escape_chars`.
|
|
||||||
#
|
|
||||||
# - Vi mode exclusive cursor motion actions:
|
|
||||||
#
|
|
||||||
# - Up
|
|
||||||
# One line up.
|
|
||||||
# - Down
|
|
||||||
# One line down.
|
|
||||||
# - Left
|
|
||||||
# One character left.
|
|
||||||
# - Right
|
|
||||||
# One character right.
|
|
||||||
# - First
|
|
||||||
# First column, or beginning of the line when already at the first column.
|
|
||||||
# - Last
|
|
||||||
# Last column, or beginning of the line when already at the last column.
|
|
||||||
# - FirstOccupied
|
|
||||||
# First non-empty cell in this terminal row, or first non-empty cell of
|
|
||||||
# the line when already at the first cell of the row.
|
|
||||||
# - High
|
|
||||||
# Top of the screen.
|
|
||||||
# - Middle
|
|
||||||
# Center of the screen.
|
|
||||||
# - Low
|
|
||||||
# Bottom of the screen.
|
|
||||||
# - SemanticLeft
|
|
||||||
# Start of the previous semantically separated word.
|
|
||||||
# - SemanticRight
|
|
||||||
# Start of the next semantically separated word.
|
|
||||||
# - SemanticLeftEnd
|
|
||||||
# End of the previous semantically separated word.
|
|
||||||
# - SemanticRightEnd
|
|
||||||
# End of the next semantically separated word.
|
|
||||||
# - WordLeft
|
|
||||||
# Start of the previous whitespace separated word.
|
|
||||||
# - WordRight
|
|
||||||
# Start of the next whitespace separated word.
|
|
||||||
# - WordLeftEnd
|
|
||||||
# End of the previous whitespace separated word.
|
|
||||||
# - WordRightEnd
|
|
||||||
# End of the next whitespace separated word.
|
|
||||||
# - Bracket
|
|
||||||
# Character matching the bracket at the cursor's location.
|
|
||||||
# - SearchNext
|
|
||||||
# Beginning of the next match.
|
|
||||||
# - SearchPrevious
|
|
||||||
# Beginning of the previous match.
|
|
||||||
# - SearchStart
|
|
||||||
# Start of the match to the left of the vi mode cursor.
|
|
||||||
# - SearchEnd
|
|
||||||
# End of the match to the right of the vi mode cursor.
|
|
||||||
#
|
|
||||||
# - Search mode exclusive actions:
|
|
||||||
# - SearchFocusNext
|
|
||||||
# Move the focus to the next search match.
|
|
||||||
# - SearchFocusPrevious
|
|
||||||
# Move the focus to the previous search match.
|
|
||||||
# - SearchConfirm
|
|
||||||
# - SearchCancel
|
|
||||||
# - SearchClear
|
|
||||||
# Reset the search regex.
|
|
||||||
# - SearchDeleteWord
|
|
||||||
# Delete the last word in the search regex.
|
|
||||||
# - SearchHistoryPrevious
|
|
||||||
# Go to the previous regex in the search history.
|
|
||||||
# - SearchHistoryNext
|
|
||||||
# Go to the next regex in the search history.
|
|
||||||
#
|
|
||||||
# - macOS exclusive actions:
|
|
||||||
# - ToggleSimpleFullscreen
|
|
||||||
# Enter fullscreen without occupying another space.
|
|
||||||
#
|
|
||||||
# - Linux/BSD exclusive actions:
|
|
||||||
#
|
|
||||||
# - CopySelection
|
|
||||||
# Copy from the selection buffer.
|
|
||||||
# - PasteSelection
|
|
||||||
# Paste from the selection buffer.
|
|
||||||
#
|
|
||||||
# - `command`: Fork and execute a specified command plus arguments
|
|
||||||
#
|
|
||||||
# The `command` field must be a map containing a `program` string and an
|
|
||||||
# `args` array of command line parameter strings. For example:
|
|
||||||
# `{ program: "alacritty", args: ["-e", "vttest"] }`
|
|
||||||
#
|
|
||||||
# And optionally:
|
|
||||||
#
|
|
||||||
# - `mods`: Key modifiers to filter binding actions
|
|
||||||
#
|
|
||||||
# - Command
|
|
||||||
# - Control
|
|
||||||
# - Option
|
|
||||||
# - Super
|
|
||||||
# - Shift
|
|
||||||
# - Alt
|
|
||||||
#
|
|
||||||
# Multiple `mods` can be combined using `|` like this:
|
|
||||||
# `mods: Control|Shift`.
|
|
||||||
# Whitespace and capitalization are relevant and must match the example.
|
|
||||||
#
|
|
||||||
# - `mode`: Indicate a binding for only specific terminal reported modes
|
|
||||||
#
|
|
||||||
# This is mainly used to send applications the correct escape sequences
|
|
||||||
# when in different modes.
|
|
||||||
#
|
|
||||||
# - AppCursor
|
|
||||||
# - AppKeypad
|
|
||||||
# - Search
|
|
||||||
# - Alt
|
|
||||||
# - Vi
|
|
||||||
#
|
|
||||||
# A `~` operator can be used before a mode to apply the binding whenever
|
|
||||||
# the mode is *not* active, e.g. `~Alt`.
|
|
||||||
#
|
|
||||||
# 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 `ReceiveChar` action. Alternatively, you can use `None` for
|
|
||||||
# a no-op if you do not wish to receive input characters for that binding.
|
|
||||||
#
|
|
||||||
# If the same trigger is assigned to multiple actions, all of them are executed
|
|
||||||
# in the order they were defined in.
|
|
||||||
key_bindings:
|
|
||||||
#- { key: Paste, action: Paste }
|
|
||||||
#- { key: Copy, action: Copy }
|
|
||||||
#- { key: L, mods: Control, action: ClearLogNotice }
|
|
||||||
#- { key: L, mods: Control, mode: ~Vi|~Search, chars: "\x0c" }
|
|
||||||
#- { key: PageUp, mods: Shift, mode: ~Alt, action: ScrollPageUp, }
|
|
||||||
#- { key: PageDown, mods: Shift, mode: ~Alt, action: ScrollPageDown }
|
|
||||||
#- { key: Home, mods: Shift, mode: ~Alt, action: ScrollToTop, }
|
|
||||||
#- { key: End, mods: Shift, mode: ~Alt, action: ScrollToBottom }
|
|
||||||
|
|
||||||
# Vi Mode
|
|
||||||
#- { key: Space, mods: Shift|Control, mode: ~Search, action: ToggleViMode }
|
|
||||||
#- { key: Space, mods: Shift|Control, mode: Vi|~Search, action: ScrollToBottom }
|
|
||||||
#- { key: Escape, mode: Vi|~Search, action: ClearSelection }
|
|
||||||
#- { key: I, mode: Vi|~Search, action: ToggleViMode }
|
|
||||||
#- { key: I, mode: Vi|~Search, action: ScrollToBottom }
|
|
||||||
#- { key: C, mods: Control, mode: Vi|~Search, action: ToggleViMode }
|
|
||||||
#- { key: Y, mods: Control, mode: Vi|~Search, action: ScrollLineUp }
|
|
||||||
#- { key: E, mods: Control, mode: Vi|~Search, action: ScrollLineDown }
|
|
||||||
#- { key: G, mode: Vi|~Search, action: ScrollToTop }
|
|
||||||
#- { key: G, mods: Shift, mode: Vi|~Search, action: ScrollToBottom }
|
|
||||||
#- { key: B, mods: Control, mode: Vi|~Search, action: ScrollPageUp }
|
|
||||||
#- { key: F, mods: Control, mode: Vi|~Search, action: ScrollPageDown }
|
|
||||||
#- { key: U, mods: Control, mode: Vi|~Search, action: ScrollHalfPageUp }
|
|
||||||
#- { key: D, mods: Control, mode: Vi|~Search, action: ScrollHalfPageDown }
|
|
||||||
#- { key: Y, mode: Vi|~Search, action: Copy }
|
|
||||||
#- { key: Y, mode: Vi|~Search, action: ClearSelection }
|
|
||||||
#- { key: Copy, mode: Vi|~Search, action: ClearSelection }
|
|
||||||
#- { key: V, mode: Vi|~Search, action: ToggleNormalSelection }
|
|
||||||
#- { key: V, mods: Shift, mode: Vi|~Search, action: ToggleLineSelection }
|
|
||||||
#- { key: V, mods: Control, mode: Vi|~Search, action: ToggleBlockSelection }
|
|
||||||
#- { key: V, mods: Alt, mode: Vi|~Search, action: ToggleSemanticSelection }
|
|
||||||
#- { key: Return, mode: Vi|~Search, action: Open }
|
|
||||||
#- { key: K, mode: Vi|~Search, action: Up }
|
|
||||||
#- { key: J, mode: Vi|~Search, action: Down }
|
|
||||||
#- { key: H, mode: Vi|~Search, action: Left }
|
|
||||||
#- { key: L, mode: Vi|~Search, action: Right }
|
|
||||||
#- { key: Up, mode: Vi|~Search, action: Up }
|
|
||||||
#- { key: Down, mode: Vi|~Search, action: Down }
|
|
||||||
#- { key: Left, mode: Vi|~Search, action: Left }
|
|
||||||
#- { key: Right, mode: Vi|~Search, action: Right }
|
|
||||||
#- { key: Key0, mode: Vi|~Search, action: First }
|
|
||||||
#- { key: Key4, mods: Shift, mode: Vi|~Search, action: Last }
|
|
||||||
#- { key: Key6, mods: Shift, mode: Vi|~Search, action: FirstOccupied }
|
|
||||||
#- { key: H, mods: Shift, mode: Vi|~Search, action: High }
|
|
||||||
#- { key: M, mods: Shift, mode: Vi|~Search, action: Middle }
|
|
||||||
#- { key: L, mods: Shift, mode: Vi|~Search, action: Low }
|
|
||||||
#- { key: B, mode: Vi|~Search, action: SemanticLeft }
|
|
||||||
#- { key: W, mode: Vi|~Search, action: SemanticRight }
|
|
||||||
#- { key: E, mode: Vi|~Search, action: SemanticRightEnd }
|
|
||||||
#- { key: B, mods: Shift, mode: Vi|~Search, action: WordLeft }
|
|
||||||
#- { key: W, mods: Shift, mode: Vi|~Search, action: WordRight }
|
|
||||||
#- { key: E, mods: Shift, mode: Vi|~Search, action: WordRightEnd }
|
|
||||||
#- { key: Key5, mods: Shift, mode: Vi|~Search, action: Bracket }
|
|
||||||
#- { key: Slash, mode: Vi|~Search, action: SearchForward }
|
|
||||||
#- { key: Slash, mods: Shift, mode: Vi|~Search, action: SearchBackward }
|
|
||||||
#- { key: N, mode: Vi|~Search, action: SearchNext }
|
|
||||||
#- { key: N, mods: Shift, mode: Vi|~Search, action: SearchPrevious }
|
|
||||||
|
|
||||||
# Search Mode
|
|
||||||
#- { key: Return, mode: Search|Vi, action: SearchConfirm }
|
|
||||||
#- { key: Escape, mode: Search, action: SearchCancel }
|
|
||||||
#- { key: C, mods: Control, mode: Search, action: SearchCancel }
|
|
||||||
#- { key: U, mods: Control, mode: Search, action: SearchClear }
|
|
||||||
#- { key: W, mods: Control, mode: Search, action: SearchDeleteWord }
|
|
||||||
#- { key: P, mods: Control, mode: Search, action: SearchHistoryPrevious }
|
|
||||||
#- { key: N, mods: Control, mode: Search, action: SearchHistoryNext }
|
|
||||||
#- { key: Up, mode: Search, action: SearchHistoryPrevious }
|
|
||||||
#- { key: Down, mode: Search, action: SearchHistoryNext }
|
|
||||||
#- { key: Return, mode: Search|~Vi, action: SearchFocusNext }
|
|
||||||
#- { key: Return, mods: Shift, mode: Search|~Vi, action: SearchFocusPrevious }
|
|
||||||
|
|
||||||
# (Windows, Linux, and BSD only)
|
|
||||||
- { key: V, mods: Control|Shift, action: Paste }
|
|
||||||
- { key: C, mods: Control|Shift, action: Copy }
|
|
||||||
#- { key: F, mods: Control|Shift, mode: ~Search, action: SearchForward }
|
|
||||||
#- { key: B, mods: Control|Shift, mode: ~Search, action: SearchBackward }
|
|
||||||
#- { key: C, mods: Control|Shift, mode: Vi|~Search, action: ClearSelection }
|
|
||||||
#- { key: Insert, mods: Shift, action: PasteSelection }
|
|
||||||
#- { key: Key0, mods: Control, action: ResetFontSize }
|
|
||||||
#- { key: Equals, mods: Control, action: IncreaseFontSize }
|
|
||||||
#- { key: Plus, mods: Control, action: IncreaseFontSize }
|
|
||||||
#- { key: NumpadAdd, mods: Control, action: IncreaseFontSize }
|
|
||||||
#- { key: Minus, mods: Control, action: DecreaseFontSize }
|
|
||||||
#- { key: NumpadSubtract, mods: Control, action: DecreaseFontSize }
|
|
||||||
|
|
||||||
# (Windows only)
|
|
||||||
#- { key: Return, mods: Alt, action: ToggleFullscreen }
|
|
||||||
|
|
||||||
# (macOS only)
|
|
||||||
#- { key: K, mods: Command, mode: ~Vi|~Search, chars: "\x0c" }
|
|
||||||
#- { key: K, mods: Command, mode: ~Vi|~Search, action: ClearHistory }
|
|
||||||
#- { key: Key0, mods: Command, action: ResetFontSize }
|
|
||||||
#- { key: Equals, mods: Command, action: IncreaseFontSize }
|
|
||||||
#- { key: Plus, mods: Command, action: IncreaseFontSize }
|
|
||||||
#- { key: NumpadAdd, mods: Command, action: IncreaseFontSize }
|
|
||||||
#- { key: Minus, mods: Command, action: DecreaseFontSize }
|
|
||||||
#- { key: NumpadSubtract, mods: Command, action: DecreaseFontSize }
|
|
||||||
#- { key: V, mods: Command, action: Paste }
|
|
||||||
#- { key: C, mods: Command, action: Copy }
|
|
||||||
#- { key: C, mods: Command, mode: Vi|~Search, action: ClearSelection }
|
|
||||||
#- { key: H, mods: Command, action: Hide }
|
|
||||||
#- { key: H, mods: Command|Alt, action: HideOtherApplications }
|
|
||||||
#- { key: M, mods: Command, action: Minimize }
|
|
||||||
#- { key: Q, mods: Command, action: Quit }
|
|
||||||
#- { key: W, mods: Command, action: Quit }
|
|
||||||
#- { key: N, mods: Command, action: SpawnNewInstance }
|
|
||||||
#- { key: F, mods: Command|Control, action: ToggleFullscreen }
|
|
||||||
#- { key: F, mods: Command, mode: ~Search, action: SearchForward }
|
|
||||||
#- { key: B, mods: Command, mode: ~Search, action: SearchBackward }
|
|
||||||
|
|
||||||
#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`:
|
|
||||||
# - Off
|
|
||||||
# - Error
|
|
||||||
# - Warn
|
|
||||||
# - Info
|
|
||||||
# - Debug
|
|
||||||
# - Trace
|
|
||||||
#log_level: Warn
|
|
||||||
|
|
||||||
# Print all received window events.
|
|
||||||
#print_events: false
|
|
|
@ -15,6 +15,7 @@ Plug 'tpope/vim-sleuth'
|
||||||
Plug 'm-demare/hlargs.nvim'
|
Plug 'm-demare/hlargs.nvim'
|
||||||
Plug 'nvim-treesitter/nvim-treesitter'
|
Plug 'nvim-treesitter/nvim-treesitter'
|
||||||
Plug 'windwp/nvim-ts-autotag'
|
Plug 'windwp/nvim-ts-autotag'
|
||||||
|
Plug 'mileszs/ack.vim'
|
||||||
|
|
||||||
" interface
|
" interface
|
||||||
Plug 'romgrk/barbar.nvim'
|
Plug 'romgrk/barbar.nvim'
|
||||||
|
@ -28,8 +29,8 @@ Plug 'kevinhwang91/nvim-hlslens'
|
||||||
Plug 'sheerun/vim-polyglot'
|
Plug 'sheerun/vim-polyglot'
|
||||||
Plug 'dense-analysis/ale'
|
Plug 'dense-analysis/ale'
|
||||||
Plug 'neovim/nvim-lspconfig'
|
Plug 'neovim/nvim-lspconfig'
|
||||||
"Plug 'jose-elias-alvarez/null-ls.nvim'
|
|
||||||
|
|
||||||
|
" autocomplete
|
||||||
Plug 'hrsh7th/nvim-cmp'
|
Plug 'hrsh7th/nvim-cmp'
|
||||||
Plug 'hrsh7th/cmp-nvim-lsp'
|
Plug 'hrsh7th/cmp-nvim-lsp'
|
||||||
Plug 'hrsh7th/cmp-cmdline'
|
Plug 'hrsh7th/cmp-cmdline'
|
||||||
|
@ -78,6 +79,7 @@ let g:presence_buttons = 0
|
||||||
let g:ale_linters = {
|
let g:ale_linters = {
|
||||||
\ 'javascript': ['eslint'],
|
\ 'javascript': ['eslint'],
|
||||||
\ 'typescript': ['eslint', 'tsserver'],
|
\ 'typescript': ['eslint', 'tsserver'],
|
||||||
|
\ 'rust': ['rust-analyzer'],
|
||||||
\}
|
\}
|
||||||
let g:ale_fixers = {
|
let g:ale_fixers = {
|
||||||
\ '*': ['trim_whitespace'],
|
\ '*': ['trim_whitespace'],
|
||||||
|
@ -86,12 +88,15 @@ let g:ale_fixers = {
|
||||||
\ 'typescript': ['prettier', 'eslint'],
|
\ 'typescript': ['prettier', 'eslint'],
|
||||||
\ 'json': ['prettier'],
|
\ 'json': ['prettier'],
|
||||||
\ 'css': ['prettier'],
|
\ 'css': ['prettier'],
|
||||||
|
\ 'rust': ['rustfmt'],
|
||||||
\}
|
\}
|
||||||
let g:ale_fix_on_save = 1
|
let g:ale_fix_on_save = 1
|
||||||
|
|
||||||
set fillchars+=vert:▎
|
set fillchars+=vert:▎
|
||||||
|
|
||||||
set completeopt=menu,menuone,noselect
|
set completeopt=menu,menuone,noselect
|
||||||
|
|
||||||
|
let g:ackprg = 'ag --vimgrep'
|
||||||
" }}}
|
" }}}
|
||||||
|
|
||||||
" {{{ scripts
|
" {{{ scripts
|
||||||
|
@ -135,32 +140,6 @@ require("hlslens").setup(
|
||||||
)
|
)
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
lua << EOF
|
|
||||||
--[[local null_ls = require("null-ls")
|
|
||||||
local augroup = vim.api.nvim_create_augroup("LspFormatting", {})
|
|
||||||
|
|
||||||
null_ls.setup({
|
|
||||||
sources = {
|
|
||||||
null_ls.builtins.diagnostics.eslint,
|
|
||||||
null_ls.builtins.diagnostics.zsh,
|
|
||||||
null_ls.builtins.formatting.eslint,
|
|
||||||
null_ls.builtins.formatting.prettier,
|
|
||||||
},
|
|
||||||
on_attach = function(client, buffer)
|
|
||||||
if client.supports_method("textDocument/formatting") then
|
|
||||||
vim.api.nvim_clear_autocmds({group = augroup, buffer = buffer})
|
|
||||||
vim.api.nvim_create_autocmd("BufWritePre", {
|
|
||||||
group = augroup,
|
|
||||||
buffer = buffer,
|
|
||||||
callback = function()
|
|
||||||
vim.lsp.buf.formatting_sync()
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
end
|
|
||||||
end,
|
|
||||||
})--]]
|
|
||||||
EOF
|
|
||||||
|
|
||||||
lua <<EOF
|
lua <<EOF
|
||||||
local cmp = require("cmp")
|
local cmp = require("cmp")
|
||||||
|
|
||||||
|
@ -230,34 +209,31 @@ cmp.setup.cmdline(
|
||||||
{name = "cmdline", group_index = 1},
|
{name = "cmdline", group_index = 1},
|
||||||
{name = "cmdline_history", group_index = 2},
|
{name = "cmdline_history", group_index = 2},
|
||||||
},
|
},
|
||||||
mapping = cmp.mapping.preset.insert(mapping),
|
mapping = cmp.mapping.preset.cmdline(mapping),
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
cmp.setup.cmdline(
|
cmp.setup.cmdline(
|
||||||
"/",
|
{"/", "?"},
|
||||||
{
|
{
|
||||||
sources = {
|
sources = {
|
||||||
{name = "cmdline_history"},
|
|
||||||
{name = "buffer"}
|
{name = "buffer"}
|
||||||
},
|
},
|
||||||
mapping = cmp.mapping.preset.insert(mapping),
|
mapping = cmp.mapping.preset.cmdline(mapping),
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
local lspconfig = require("lspconfig")
|
local lspconfig = require("lspconfig")
|
||||||
local capabilities = require("cmp_nvim_lsp").default_capabilities(vim.lsp.protocol.make_client_capabilities())
|
local capabilities = require("cmp_nvim_lsp").default_capabilities(vim.lsp.protocol.make_client_capabilities())
|
||||||
|
|
||||||
lspconfig.eslint.setup(
|
local servers = {"eslint", "tsserver", "rust_analyzer"}
|
||||||
{
|
for _, lsp in ipairs(servers) do
|
||||||
capabilities = capabilities,
|
lspconfig[lsp].setup(
|
||||||
}
|
{
|
||||||
)
|
capabilities = capabilities,
|
||||||
--[[lspconfig.tsserver.setup(
|
}
|
||||||
{
|
)
|
||||||
capabilities = capabilities,
|
end
|
||||||
}
|
|
||||||
)--]]
|
|
||||||
EOF
|
EOF
|
||||||
" }}}
|
" }}}
|
||||||
|
|
||||||
|
@ -265,7 +241,7 @@ EOF
|
||||||
tnoremap <Esc> <C-\><C-n>
|
tnoremap <Esc> <C-\><C-n>
|
||||||
|
|
||||||
inoremap <silent> <C-f> <C-i>
|
inoremap <silent> <C-f> <C-i>
|
||||||
inoremap <silent> <C-S-f> <C-d>
|
cnoremap <silent> <C-f> <C-i>
|
||||||
map! <silent> <Tab> <Esc>
|
map! <silent> <Tab> <Esc>
|
||||||
cnoremap <silent> <Tab> <C-c>
|
cnoremap <silent> <Tab> <C-c>
|
||||||
|
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
local HOME = os.getenv("HOME")
|
local HOME = os.getenv("HOME")
|
||||||
|
|
||||||
return {
|
return {
|
||||||
terminal = "wezterm",
|
terminal = HOME .. "/.local/bin/wezterm",
|
||||||
terminal_separator = "start",
|
terminal_separator = "start",
|
||||||
editor = "nvim",
|
editor = "nvim",
|
||||||
launcher = "rofi -show combi",
|
screenshot = HOME .. "/.local/bin/screenie",
|
||||||
modkey = "Mod4",
|
modkey = "Mod4",
|
||||||
theme = "tokyo_night",
|
theme = "tokyo_night",
|
||||||
font = "Terminus 8",
|
font = "Terminus 8",
|
||||||
|
@ -16,10 +16,19 @@ return {
|
||||||
"fair",
|
"fair",
|
||||||
"fair.horizontal",
|
"fair.horizontal",
|
||||||
"floating",
|
"floating",
|
||||||
},
|
-- "spiral",
|
||||||
autostart = {
|
-- "spiral.dwindle",
|
||||||
"xrdb " .. HOME .. "/.config/xrdb/main.xrdb",
|
"tile.right",
|
||||||
"xrdb -merge " .. HOME .. "/.config/xrdb/colors/tokyonight.xrdb",
|
-- "tile.bottom",
|
||||||
"sh ~/.local/generic_autostart.sh",
|
-- "tile.left",
|
||||||
|
-- "tile.top",
|
||||||
|
-- "corner.ne",
|
||||||
|
-- "corner.se",
|
||||||
|
-- "corner.sw",
|
||||||
|
-- "corner.nw",
|
||||||
|
-- "lain:termfair",
|
||||||
|
-- "lain:termfair.center",
|
||||||
|
-- "lain:centerwork",
|
||||||
|
-- "lain:centerwork.horizontal",
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
1
linux/.config/awesome/cyclefocus
Submodule
|
@ -0,0 +1 @@
|
||||||
|
Subproject commit d7c8390052631f0fd9183b704a520ae5d40ad310
|
|
@ -1,7 +1,7 @@
|
||||||
return function(path, theme)
|
return function(path, theme)
|
||||||
-- Define the image to load
|
|
||||||
theme.menu_submenu_icon = path .. "/submenu.png"
|
theme.menu_submenu_icon = path .. "/submenu.png"
|
||||||
|
|
||||||
|
-- titlebar
|
||||||
theme.titlebar_close_button_normal = path .. "/titlebar/close.png"
|
theme.titlebar_close_button_normal = path .. "/titlebar/close.png"
|
||||||
theme.titlebar_close_button_focus = path .. "/titlebar/close.png"
|
theme.titlebar_close_button_focus = path .. "/titlebar/close.png"
|
||||||
|
|
||||||
|
@ -28,7 +28,7 @@ return function(path, theme)
|
||||||
theme.titlebar_maximized_button_normal_active = path .. "/titlebar/maximized_active.png"
|
theme.titlebar_maximized_button_normal_active = path .. "/titlebar/maximized_active.png"
|
||||||
theme.titlebar_maximized_button_focus_active = path .. "/titlebar/maximized_active.png"
|
theme.titlebar_maximized_button_focus_active = path .. "/titlebar/maximized_active.png"
|
||||||
|
|
||||||
-- You can use your own layout icons like this:
|
-- layouts
|
||||||
theme.layout_fairh = path .. "/layouts/fairh.png"
|
theme.layout_fairh = path .. "/layouts/fairh.png"
|
||||||
theme.layout_fairv = path .. "/layouts/fairv.png"
|
theme.layout_fairv = path .. "/layouts/fairv.png"
|
||||||
theme.layout_floating = path .. "/layouts/floating.png"
|
theme.layout_floating = path .. "/layouts/floating.png"
|
||||||
|
@ -45,4 +45,12 @@ return function(path, theme)
|
||||||
theme.layout_cornerne = path .. "/layouts/cornerne.png"
|
theme.layout_cornerne = path .. "/layouts/cornerne.png"
|
||||||
theme.layout_cornersw = path .. "/layouts/cornersw.png"
|
theme.layout_cornersw = path .. "/layouts/cornersw.png"
|
||||||
theme.layout_cornerse = path .. "/layouts/cornerse.png"
|
theme.layout_cornerse = path .. "/layouts/cornerse.png"
|
||||||
|
|
||||||
|
-- layouts (lain)
|
||||||
|
theme.layout_termfair = path .. "/layouts/lain/termfair.png"
|
||||||
|
theme.layout_centerfair = path .. "/layouts/lain/centerfair.png"
|
||||||
|
theme.layout_cascade = path .. "/layouts/lain/cascade.png"
|
||||||
|
theme.layout_cascadetile = path .. "/layouts/lain/cascadetile.png"
|
||||||
|
theme.layout_centerwork = path .. "/layouts/lain/centerwork.png"
|
||||||
|
theme.layout_centerworkh = path .. "/layouts/lain/centerworkh.png"
|
||||||
end
|
end
|
||||||
|
|
BIN
linux/.config/awesome/icons/bar/net_down.png
Normal file
After Width: | Height: | Size: 615 B |
BIN
linux/.config/awesome/icons/bar/net_up.png
Normal file
After Width: | Height: | Size: 609 B |
BIN
linux/.config/awesome/icons/bar/packages.png
Normal file
After Width: | Height: | Size: 610 B |
BIN
linux/.config/awesome/icons/layouts/lain/cascade.png
Normal file
After Width: | Height: | Size: 4.7 KiB |
BIN
linux/.config/awesome/icons/layouts/lain/cascadetile.png
Normal file
After Width: | Height: | Size: 4.7 KiB |
BIN
linux/.config/awesome/icons/layouts/lain/centerfair.png
Normal file
After Width: | Height: | Size: 4.6 KiB |
BIN
linux/.config/awesome/icons/layouts/lain/centerwork.png
Normal file
After Width: | Height: | Size: 4.6 KiB |
BIN
linux/.config/awesome/icons/layouts/lain/centerworkh.png
Normal file
After Width: | Height: | Size: 4.6 KiB |
BIN
linux/.config/awesome/icons/layouts/lain/termfair.png
Normal file
After Width: | Height: | Size: 4.7 KiB |
|
@ -15,6 +15,7 @@ local naughty = require("naughty")
|
||||||
local menubar = require("menubar")
|
local menubar = require("menubar")
|
||||||
local lain = require("lain")
|
local lain = require("lain")
|
||||||
local freedesktop = require("freedesktop")
|
local freedesktop = require("freedesktop")
|
||||||
|
local cyclefocus = require("cyclefocus")
|
||||||
local hotkeys_popup = require("awful.hotkeys_popup")
|
local hotkeys_popup = require("awful.hotkeys_popup")
|
||||||
-- Enable hotkeys help widget for VIM and other apps
|
-- Enable hotkeys help widget for VIM and other apps
|
||||||
-- when client with a matching name is opened:
|
-- when client with a matching name is opened:
|
||||||
|
@ -69,9 +70,12 @@ local terminal = config.terminal or "xterm"
|
||||||
local terminal_separator = config.terminal_separator or "-e"
|
local terminal_separator = config.terminal_separator or "-e"
|
||||||
local editor = config.editor or os.getenv("EDITOR") or "nano"
|
local editor = config.editor or os.getenv("EDITOR") or "nano"
|
||||||
local editor_cmd = terminal .. " " .. terminal_separator .. " " .. editor
|
local editor_cmd = terminal .. " " .. terminal_separator .. " " .. editor
|
||||||
|
local screenshot = config.screenshot
|
||||||
local modkey = config.modkey or "Mod4"
|
local modkey = config.modkey or "Mod4"
|
||||||
local altkey = config.altkey or "Mod1"
|
local altkey = config.altkey or "Mod1"
|
||||||
|
|
||||||
|
cyclefocus.move_mouse_pointer = false
|
||||||
|
|
||||||
-- Themes define colours, icons, font and wallpapers.
|
-- Themes define colours, icons, font and wallpapers.
|
||||||
do
|
do
|
||||||
local theme = require("themes/".. config.theme)
|
local theme = require("themes/".. config.theme)
|
||||||
|
@ -102,6 +106,19 @@ do
|
||||||
theme = beautiful.theme_assets.recolor_titlebar(theme, theme.fg_focus, "focus")
|
theme = beautiful.theme_assets.recolor_titlebar(theme, theme.fg_focus, "focus")
|
||||||
theme = beautiful.theme_assets.recolor_layout(theme, theme.layout_fg)
|
theme = beautiful.theme_assets.recolor_layout(theme, theme.layout_fg)
|
||||||
|
|
||||||
|
local lain_layouts = {
|
||||||
|
"termfair",
|
||||||
|
"centerfair",
|
||||||
|
"cascade",
|
||||||
|
"cascadetile",
|
||||||
|
"centerwork",
|
||||||
|
"centerworkh"
|
||||||
|
}
|
||||||
|
for _, key in ipairs(lain_layouts) do
|
||||||
|
local image = gears.surface.duplicate_surface(theme["layout_" .. key])
|
||||||
|
theme["layout_" .. key] = gears.color.recolor_image(image, theme.layout_fg)
|
||||||
|
end
|
||||||
|
|
||||||
do
|
do
|
||||||
local image = gears.surface.duplicate_surface(theme.menu_submenu_icon)
|
local image = gears.surface.duplicate_surface(theme.menu_submenu_icon)
|
||||||
theme.menu_submenu_icon = gears.color.recolor_image(image, theme.menu_fg_normal)
|
theme.menu_submenu_icon = gears.color.recolor_image(image, theme.menu_fg_normal)
|
||||||
|
@ -144,6 +161,18 @@ do
|
||||||
path = "music",
|
path = "music",
|
||||||
color = theme.widget_music,
|
color = theme.widget_music,
|
||||||
},
|
},
|
||||||
|
packages = {
|
||||||
|
path = "packages",
|
||||||
|
color = theme.widget_packages,
|
||||||
|
},
|
||||||
|
net_up = {
|
||||||
|
path = "net_up",
|
||||||
|
color = theme.widget_net_up,
|
||||||
|
},
|
||||||
|
net_down = {
|
||||||
|
path = "net_down",
|
||||||
|
color = theme.widget_net_down,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
for key, icon in pairs(bar_icons) do
|
for key, icon in pairs(bar_icons) do
|
||||||
|
@ -163,14 +192,20 @@ end
|
||||||
-- Table of layouts to cover with awful.layout.inc, order matters.
|
-- Table of layouts to cover with awful.layout.inc, order matters.
|
||||||
awful.layout.layouts = {}
|
awful.layout.layouts = {}
|
||||||
for _, layout in ipairs(config.layouts) do
|
for _, layout in ipairs(config.layouts) do
|
||||||
|
local layoutRef = awful.layout.suit
|
||||||
|
if layout:find("^lain:") then
|
||||||
|
layoutRef = lain.layout
|
||||||
|
layout = layout:gsub("^lain:","")
|
||||||
|
end
|
||||||
|
|
||||||
if layout:find("%.") then
|
if layout:find("%.") then
|
||||||
local perStart, perEnd = layout:find("%.")
|
local perStart, perEnd = layout:find("%.")
|
||||||
local first = layout:sub(1, perStart - 1)
|
local first = layout:sub(1, perStart - 1)
|
||||||
local second = layout:sub(perEnd + 1, #layout)
|
local second = layout:sub(perEnd + 1, #layout)
|
||||||
|
|
||||||
table.insert(awful.layout.layouts, awful.layout.suit[first][second])
|
table.insert(awful.layout.layouts, layoutRef[first][second])
|
||||||
else
|
else
|
||||||
table.insert(awful.layout.layouts, awful.layout.suit[layout])
|
table.insert(awful.layout.layouts, layoutRef[layout])
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
-- }}}
|
-- }}}
|
||||||
|
@ -295,7 +330,21 @@ local function makeBarIcon(icon)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Widgets
|
-- Widgets
|
||||||
local volume_icon = makeBarIcon("volume")
|
local clock = wibox.widget.textclock(markup(beautiful.widget_clock or beautiful.wibar_fg, "%H:%M:%S"), 1)
|
||||||
|
local calendar = lain.widget.cal({
|
||||||
|
attach_to = {clock},
|
||||||
|
week_start = 1,
|
||||||
|
week_number = "left",
|
||||||
|
followtag = true,
|
||||||
|
icons = "",
|
||||||
|
notification_preset = {
|
||||||
|
font = config.font,
|
||||||
|
fg = beautiful.notification_fg,
|
||||||
|
bg = beautiful.notification_bg,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
--[[local volume_icon = makeBarIcon("volume")
|
||||||
local volume = lain.widget.alsa({
|
local volume = lain.widget.alsa({
|
||||||
settings = function()
|
settings = function()
|
||||||
if volume_now.status == "off" then
|
if volume_now.status == "off" then
|
||||||
|
@ -324,7 +373,7 @@ local volume_buttons = awful.util.table.join(
|
||||||
end)
|
end)
|
||||||
)
|
)
|
||||||
volume.widget:buttons(volume_buttons)
|
volume.widget:buttons(volume_buttons)
|
||||||
volume_icon:buttons(volume_buttons)
|
volume_icon:buttons(volume_buttons)--]]
|
||||||
|
|
||||||
local memory = lain.widget.mem({
|
local memory = lain.widget.mem({
|
||||||
settings = function()
|
settings = function()
|
||||||
|
@ -338,28 +387,157 @@ local cpu = lain.widget.cpu({
|
||||||
end
|
end
|
||||||
})
|
})
|
||||||
|
|
||||||
local cpu_temp = lain.widget.temp({
|
local cpu_temp = wibox.widget.textbox()
|
||||||
settings = function()
|
|
||||||
widget:set_markup(markup(beautiful.widget_cpu or beautiful.wibar_fg, coretemp_now .. " °C"))
|
|
||||||
end
|
|
||||||
})
|
|
||||||
|
|
||||||
local music_icon = makeBarIcon("music")
|
|
||||||
local music = wibox.widget.textbox()
|
|
||||||
awful.widget.watch(
|
awful.widget.watch(
|
||||||
'bash -c "~/.config/awesome/scripts/cmus.sh"',
|
'bash -c "cat /sys/class/hwmon/hwmon1/temp1_input"',
|
||||||
1,
|
1,
|
||||||
function(widget, stdout, stderr)
|
function(widget, stdout, stderr)
|
||||||
if stdout == "<not running>" then
|
widget:set_markup(markup(beautiful.widget_cpu or beautiful.wibar_fg, math.floor(tonumber(stdout) / 1000) .. "°C"))
|
||||||
music_icon._private.image = nil
|
end,
|
||||||
music_icon:emit_signal("widget::redraw_needed")
|
cpu_temp
|
||||||
music_icon:emit_signal("widget::layout_changed")
|
)
|
||||||
|
|
||||||
|
local gpu = wibox.widget.textbox()
|
||||||
|
awful.widget.watch(
|
||||||
|
'bash -c "radeontop -d - -l 1"',
|
||||||
|
1,
|
||||||
|
function(widget, stdout, stderr)
|
||||||
|
local usage = math.floor(tonumber(stdout:match("gpu (.-)%%")))
|
||||||
|
local vram = math.floor(tonumber(stdout:match("vram .- (.-)mb")))
|
||||||
|
|
||||||
|
widget:set_markup(markup(beautiful.widget_gpu or beautiful.wibar_fg, usage .. "%, " .. vram .. " MB"))
|
||||||
|
end,
|
||||||
|
gpu
|
||||||
|
)
|
||||||
|
|
||||||
|
local gpu_temp = wibox.widget.textbox()
|
||||||
|
awful.widget.watch(
|
||||||
|
'bash -c "cat /sys/class/hwmon/hwmon0/temp1_input"',
|
||||||
|
1,
|
||||||
|
function(widget, stdout, stderr)
|
||||||
|
widget:set_markup(markup(beautiful.widget_gpu or beautiful.wibar_fg, math.floor(tonumber(stdout) / 1000) .. "°C"))
|
||||||
|
end,
|
||||||
|
gpu_temp
|
||||||
|
)
|
||||||
|
|
||||||
|
local packages_icon = makeBarIcon("packages")
|
||||||
|
local packages = wibox.widget.textbox()
|
||||||
|
local packages_wrapper = wibox.widget({
|
||||||
|
{
|
||||||
|
packages_icon,
|
||||||
|
packages,
|
||||||
|
layout = wibox.layout.fixed.horizontal,
|
||||||
|
},
|
||||||
|
top = 2,
|
||||||
|
bottom = 2,
|
||||||
|
left = 4,
|
||||||
|
right = 4,
|
||||||
|
layout = wibox.container.margin,
|
||||||
|
})
|
||||||
|
|
||||||
|
awful.widget.watch(
|
||||||
|
'bash -c "xbps-install -Mun | wc -l"',
|
||||||
|
900,
|
||||||
|
function(widget, stdout, stderr)
|
||||||
|
local count = tonumber(stdout)
|
||||||
|
if count == 0 then
|
||||||
|
packages_wrapper.visible = false
|
||||||
|
|
||||||
widget:set_markup("")
|
widget:set_markup("")
|
||||||
else
|
else
|
||||||
music_icon.image = beautiful.bar_music
|
packages_wrapper.visible = true
|
||||||
|
widget:set_markup(markup(beautiful.widget_packages or beautiful.wibar_fg, count .. " pkg" .. (count > 1 and "s" or "")))
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
packages
|
||||||
|
)
|
||||||
|
|
||||||
widget:set_markup(markup(beautiful.widget_music, stdout))
|
local function gm_round(num, idp)
|
||||||
|
local mult = 10 ^ (idp or 0)
|
||||||
|
return math.floor(num * mult + 0.5) / mult
|
||||||
|
end
|
||||||
|
local function format_size(size)
|
||||||
|
size = tonumber(size)
|
||||||
|
|
||||||
|
if size <= 0 then return "0" end
|
||||||
|
if size < 1024 then return size .. " B" end
|
||||||
|
if size < 1024 * 1024 then return gm_round(size / 1024, 2) .. " KB" end
|
||||||
|
if size < 1024 * 1024 * 1024 then return gm_round( size / (1024 * 1024), 2) .. " MB" end
|
||||||
|
|
||||||
|
return gm_round(size / (1024 * 1024 * 1024), 2) .. " GB"
|
||||||
|
end
|
||||||
|
|
||||||
|
--[[local net_up_icon = makeBarIcon("net_up")
|
||||||
|
local net_down_icon = makeBarIcon("net_down")
|
||||||
|
local net_down = wibox.widget.textbox()
|
||||||
|
local net_up = lain.widget.net({
|
||||||
|
units = 1,
|
||||||
|
settings = function()
|
||||||
|
widget:set_markup(markup(beautiful.widget_net_up or beautiful.wibar_fg, format_size(net_now.sent)))
|
||||||
|
net_down:set_markup(markup(beautiful.widget_net_down or beautiful.wibar_fg, format_size(net_now.received)))
|
||||||
|
end,
|
||||||
|
})--]]
|
||||||
|
|
||||||
|
local function format_time(time)
|
||||||
|
local out = ""
|
||||||
|
|
||||||
|
if time >= 3600 then
|
||||||
|
out = out .. string.format("%02d:", math.floor(time / 3600))
|
||||||
|
end
|
||||||
|
|
||||||
|
out = out .. string.format("%02d:%02d", math.floor(time % 3600 / 60), math.floor(time % 60))
|
||||||
|
|
||||||
|
return out
|
||||||
|
end
|
||||||
|
|
||||||
|
local music_icon = makeBarIcon("music")
|
||||||
|
local music = wibox.widget.textbox()
|
||||||
|
local music_wrapper = wibox.widget({
|
||||||
|
{
|
||||||
|
music_icon,
|
||||||
|
music,
|
||||||
|
layout = wibox.layout.fixed.horizontal,
|
||||||
|
},
|
||||||
|
top = 2,
|
||||||
|
bottom = 2,
|
||||||
|
left = 4,
|
||||||
|
right = 4,
|
||||||
|
layout = wibox.container.margin,
|
||||||
|
})
|
||||||
|
|
||||||
|
awful.widget.watch(
|
||||||
|
'bash -c "~/.config/awesome/scripts/cmus-wrapper.sh"',
|
||||||
|
1,
|
||||||
|
function(widget, stdout, stderr, reason, code)
|
||||||
|
if code ~= 0 then
|
||||||
|
music_wrapper.visible = false
|
||||||
|
|
||||||
|
widget:set_markup("")
|
||||||
|
else
|
||||||
|
music_wrapper.visible = true
|
||||||
|
|
||||||
|
local nowplaying = ""
|
||||||
|
|
||||||
|
local status = stdout:match("status (.-)\n")
|
||||||
|
local duration = tonumber(stdout:match("duration (.-)\n"))
|
||||||
|
local position = tonumber(stdout:match("position (.-)\n"))
|
||||||
|
|
||||||
|
if duration == -1 and stdout:find("stream ") then
|
||||||
|
local stream = stdout:match("stream (.-)\n"):gsub("^%s*(.-)%s*$", "%1")
|
||||||
|
|
||||||
|
nowplaying = stream .. " [" .. format_time(position) .. "]"
|
||||||
|
else
|
||||||
|
local artist = stdout:match("tag artist (.-)\n"):gsub("^%s*(.-)%s*$", "%1")
|
||||||
|
local title = stdout:match("tag title (.-)\n"):gsub("^%s*(.-)%s*$", "%1")
|
||||||
|
|
||||||
|
nowplaying = artist .. " - " .. title .. " [" .. format_time(position) .. "/" .. format_time(duration) .. "]"
|
||||||
|
end
|
||||||
|
|
||||||
|
if status == "stopped" or status == "paused" then
|
||||||
|
nowplaying = nowplaying .. " [" .. status .. "]"
|
||||||
|
end
|
||||||
|
|
||||||
|
widget:set_markup(markup(beautiful.widget_music, gears.string.xml_escape(nowplaying)))
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
music
|
music
|
||||||
|
@ -445,18 +623,7 @@ awful.screen.connect_for_each_screen(function(s)
|
||||||
|
|
||||||
-- Right widgets
|
-- Right widgets
|
||||||
{
|
{
|
||||||
{
|
music_wrapper,
|
||||||
{
|
|
||||||
music_icon,
|
|
||||||
music,
|
|
||||||
layout = wibox.layout.fixed.horizontal,
|
|
||||||
},
|
|
||||||
top = 2,
|
|
||||||
bottom = 2,
|
|
||||||
left = 4,
|
|
||||||
right = 4,
|
|
||||||
layout = wibox.container.margin,
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
makeBarIcon("cpu"),
|
makeBarIcon("cpu"),
|
||||||
|
@ -472,7 +639,31 @@ awful.screen.connect_for_each_screen(function(s)
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
makeBarIcon("cpu_temp"),
|
makeBarIcon("cpu_temp"),
|
||||||
cpu_temp.widget,
|
cpu_temp,
|
||||||
|
layout = wibox.layout.fixed.horizontal,
|
||||||
|
},
|
||||||
|
top = 2,
|
||||||
|
bottom = 2,
|
||||||
|
left = 4,
|
||||||
|
right = 4,
|
||||||
|
layout = wibox.container.margin,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
{
|
||||||
|
makeBarIcon("gpu"),
|
||||||
|
gpu,
|
||||||
|
layout = wibox.layout.fixed.horizontal,
|
||||||
|
},
|
||||||
|
top = 2,
|
||||||
|
bottom = 2,
|
||||||
|
left = 4,
|
||||||
|
right = 4,
|
||||||
|
layout = wibox.container.margin,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
{
|
||||||
|
makeBarIcon("gpu_temp"),
|
||||||
|
gpu_temp,
|
||||||
layout = wibox.layout.fixed.horizontal,
|
layout = wibox.layout.fixed.horizontal,
|
||||||
},
|
},
|
||||||
top = 2,
|
top = 2,
|
||||||
|
@ -481,7 +672,6 @@ awful.screen.connect_for_each_screen(function(s)
|
||||||
right = 4,
|
right = 4,
|
||||||
layout = wibox.container.margin,
|
layout = wibox.container.margin,
|
||||||
},
|
},
|
||||||
-- TODO: GPU + Temp when not in VM
|
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
makeBarIcon("memory"),
|
makeBarIcon("memory"),
|
||||||
|
@ -494,10 +684,10 @@ awful.screen.connect_for_each_screen(function(s)
|
||||||
right = 4,
|
right = 4,
|
||||||
layout = wibox.container.margin,
|
layout = wibox.container.margin,
|
||||||
},
|
},
|
||||||
{
|
--[[{
|
||||||
{
|
{
|
||||||
volume_icon,
|
net_down_icon,
|
||||||
volume.widget,
|
net_down,
|
||||||
layout = wibox.layout.fixed.horizontal,
|
layout = wibox.layout.fixed.horizontal,
|
||||||
},
|
},
|
||||||
top = 2,
|
top = 2,
|
||||||
|
@ -506,10 +696,35 @@ awful.screen.connect_for_each_screen(function(s)
|
||||||
right = 4,
|
right = 4,
|
||||||
layout = wibox.container.margin,
|
layout = wibox.container.margin,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
{
|
||||||
|
net_up_icon,
|
||||||
|
net_up.widget,
|
||||||
|
layout = wibox.layout.fixed.horizontal,
|
||||||
|
},
|
||||||
|
top = 2,
|
||||||
|
bottom = 2,
|
||||||
|
left = 4,
|
||||||
|
right = 4,
|
||||||
|
layout = wibox.container.margin,
|
||||||
|
},--]]
|
||||||
|
packages_wrapper,
|
||||||
|
--[[{
|
||||||
|
{
|
||||||
|
volume_icon,
|
||||||
|
volume.widget,
|
||||||
|
layout = wibox.layout.fixed.horizontal,
|
||||||
|
},
|
||||||
|
top = 2,
|
||||||
|
bottom = 2,
|
||||||
|
left = 4,
|
||||||
|
right = 4,
|
||||||
|
layout = wibox.container.margin,
|
||||||
|
},--]]
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
makeBarIcon("clock"),
|
makeBarIcon("clock"),
|
||||||
wibox.widget.textclock(markup(beautiful.widget_clock or beautiful.wibar_fg, "%H:%M:%S"), 1),
|
clock,
|
||||||
layout = wibox.layout.fixed.horizontal,
|
layout = wibox.layout.fixed.horizontal,
|
||||||
},
|
},
|
||||||
top = 2,
|
top = 2,
|
||||||
|
@ -623,6 +838,16 @@ globalkeys = gears.table.join(
|
||||||
group = "launcher",
|
group = "launcher",
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
|
awful.key(
|
||||||
|
{}, "Print",
|
||||||
|
function()
|
||||||
|
awful.spawn(screenshot)
|
||||||
|
end,
|
||||||
|
{
|
||||||
|
description = "run screenshot tool",
|
||||||
|
group = "launcher",
|
||||||
|
}
|
||||||
|
),
|
||||||
|
|
||||||
-- client
|
-- client
|
||||||
awful.key(
|
awful.key(
|
||||||
|
@ -673,7 +898,7 @@ globalkeys = gears.table.join(
|
||||||
group = "client",
|
group = "client",
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
awful.key(
|
--[[awful.key(
|
||||||
{altkey}, "Tab",
|
{altkey}, "Tab",
|
||||||
function()
|
function()
|
||||||
awful.client.focus.history.previous()
|
awful.client.focus.history.previous()
|
||||||
|
@ -685,6 +910,12 @@ globalkeys = gears.table.join(
|
||||||
description = "go back",
|
description = "go back",
|
||||||
group = "client",
|
group = "client",
|
||||||
}
|
}
|
||||||
|
),--]]
|
||||||
|
cyclefocus.key(
|
||||||
|
{altkey}, Tab
|
||||||
|
),
|
||||||
|
cyclefocus.key(
|
||||||
|
{altkey, "Shift"}, Tab
|
||||||
),
|
),
|
||||||
|
|
||||||
-- layout
|
-- layout
|
||||||
|
@ -884,6 +1115,24 @@ clientkeys = gears.table.join(
|
||||||
description = "(un)maximize horizontally",
|
description = "(un)maximize horizontally",
|
||||||
group = "client",
|
group = "client",
|
||||||
}
|
}
|
||||||
|
),
|
||||||
|
awful.key(
|
||||||
|
{modkey, "Shift"}, "r",
|
||||||
|
function(c)
|
||||||
|
local scr = awful.screen.focused({client = true})
|
||||||
|
local x = scr.geometry.x + (scr.geometry.width / 2 - 800)
|
||||||
|
local y = scr.geometry.y + (scr.geometry.height / 2 - 450)
|
||||||
|
c:geometry({
|
||||||
|
x = x,
|
||||||
|
y = y,
|
||||||
|
width = 1600,
|
||||||
|
height = 900,
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
{
|
||||||
|
description = "resize to 1600x900",
|
||||||
|
group = "client",
|
||||||
|
}
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -1122,7 +1371,28 @@ client.connect_signal("unfocus", function(c) c.border_color = beautiful.border_n
|
||||||
-- }}}
|
-- }}}
|
||||||
|
|
||||||
--{{{ Autostart
|
--{{{ Autostart
|
||||||
for _, program in ipairs(config.autostart) do
|
-- taken from: https://gitlab.com/luna/til/-/blob/main/awesome/rc.lua
|
||||||
awful.spawn(program)
|
awful.spawn.with_line_callback(HOME .. "/.local/bin/autostart.sh", {
|
||||||
end
|
stdout = function(line)
|
||||||
|
--[[naughty.notify({
|
||||||
|
title = "autostart",
|
||||||
|
text = "pid: "..line.." already started",
|
||||||
|
timeout = 7,
|
||||||
|
position = "top_right"
|
||||||
|
})--]]
|
||||||
|
end,
|
||||||
|
exit = function(reason, code)
|
||||||
|
local data = {
|
||||||
|
title = "autostart exited",
|
||||||
|
text = reason .. ' ' .. code,
|
||||||
|
timeout = 4,
|
||||||
|
}
|
||||||
|
|
||||||
|
if reason ~= "exit" and code ~= 0 then
|
||||||
|
data.preset = naughty.config.presets.critical
|
||||||
|
end
|
||||||
|
|
||||||
|
naughty.notify(data)
|
||||||
|
end
|
||||||
|
})
|
||||||
--}}}
|
--}}}
|
||||||
|
|
10
linux/.config/awesome/scripts/cmus-wrapper.sh
Executable file
|
@ -0,0 +1,10 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# this only exists to stop socket deadlocking (hopefully)
|
||||||
|
|
||||||
|
if ! pgrep -x cmus ; then
|
||||||
|
echo "cmus-remote: cmus is not running"
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
cmus-remote -Q
|
||||||
|
fi
|
|
@ -1,44 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
if [ "`pgrep -x cmus`" == "" ]; then
|
|
||||||
echo "<not running>"
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
data="$(cmus-remote -Q)"
|
|
||||||
|
|
||||||
status=$(echo "$data" | awk '/status / {print $2}')
|
|
||||||
artist=$(echo "$data" | awk '/tag artist / {$1="";$2="";print substr($0,3)}')
|
|
||||||
title=$(echo "$data" | awk '/tag title / {$1="";$2="";print substr($0,3)}')
|
|
||||||
duration=$(echo "$data" | awk '/duration/ {print $2}')
|
|
||||||
position=$(echo "$data" | awk '/position/ {print $2}')
|
|
||||||
|
|
||||||
nowplaying="$artist - $title"
|
|
||||||
|
|
||||||
position_formatted=""
|
|
||||||
duration_formatted=""
|
|
||||||
|
|
||||||
if [ "$position" != "" ]; then
|
|
||||||
if [ $position -ge 3600 ]; then
|
|
||||||
position_formatted+=$(printf '%02d:' $(($position/3600)))
|
|
||||||
fi
|
|
||||||
|
|
||||||
position_formatted+=$(printf '%02d:%02d' $(($position%3600/60)) $(($position%60)))
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$duration" != "" ]; then
|
|
||||||
if [ $duration -ge 3600 ]; then
|
|
||||||
duration_formatted+=$(printf '%02d:' $(($duration/3600)))
|
|
||||||
fi
|
|
||||||
|
|
||||||
duration_formatted+=$(printf '%02d:%02d' $(($duration%3600/60)) $(($duration%60)))
|
|
||||||
fi
|
|
||||||
|
|
||||||
nowplaying+=" [$position_formatted/$duration_formatted]"
|
|
||||||
|
|
||||||
if [ "$status" == "paused" ]; then
|
|
||||||
nowplaying+=" [paused]"
|
|
||||||
elif [ "$status" == "stopped" ]; then
|
|
||||||
nowplaying+=" [stopped]"
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "$nowplaying"
|
|
|
@ -90,11 +90,14 @@ theme.layout_fg = colors.foreground
|
||||||
-- bar items
|
-- bar items
|
||||||
theme.widget_clock = colors.color6
|
theme.widget_clock = colors.color6
|
||||||
theme.widget_volume = colors.color4
|
theme.widget_volume = colors.color4
|
||||||
theme.widget_volume_muted = colors.color1
|
theme.widget_volume_muted = colors.color9
|
||||||
theme.widget_cpu = colors.color2
|
theme.widget_cpu = colors.color10
|
||||||
theme.widget_gpu = colors.color4
|
theme.widget_gpu = colors.color14
|
||||||
theme.widget_memory = colors.color3
|
theme.widget_memory = colors.color11
|
||||||
theme.widget_music = colors.color5
|
theme.widget_music = colors.color13
|
||||||
|
theme.widget_packages = colors.color4
|
||||||
|
theme.widget_net_up = colors.color1
|
||||||
|
theme.widget_net_down = colors.color2
|
||||||
|
|
||||||
-- Generate taglist squares:
|
-- Generate taglist squares:
|
||||||
--[[local taglist_square_size = dpi(4)
|
--[[local taglist_square_size = dpi(4)
|
||||||
|
|
BIN
linux/.local/bin/assets/capture.wav
Normal file
BIN
linux/.local/bin/assets/done.wav
Normal file
BIN
linux/.local/bin/assets/error.wav
Normal file
36
linux/.local/bin/autostart.sh
Executable file
|
@ -0,0 +1,36 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
COLORSCHEME="tokyonight"
|
||||||
|
|
||||||
|
run() {
|
||||||
|
if ! pgrep "$1" ;
|
||||||
|
then
|
||||||
|
notify-send "autostart: starting $1"
|
||||||
|
"$@" &
|
||||||
|
else
|
||||||
|
notify-send "autostart: $1 already running"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
notify-send "begin autostart"
|
||||||
|
|
||||||
|
xrdb ~/.config/xrdb/main.xrdb
|
||||||
|
xrdb -merge "~/.config/xrdb/colors/$COLORSCHEME.xrdb"
|
||||||
|
xmodmap -e "keysym Menu = Multi_key"
|
||||||
|
|
||||||
|
run pipewire
|
||||||
|
|
||||||
|
run picom --config ~/.config/picom.conf
|
||||||
|
run xscreensaver -no-splash
|
||||||
|
|
||||||
|
run xmousepasteblock
|
||||||
|
|
||||||
|
run flameshot
|
||||||
|
|
||||||
|
# manual pgrep because env vars
|
||||||
|
if ! pgrep "nicotine" ; then
|
||||||
|
notify-send "autostart: starting nicotine"
|
||||||
|
env GTK_CSD=0 LD_PRELOAD=/usr/lib/libgtk3-nocsd.so.0 nicotine &
|
||||||
|
else
|
||||||
|
notify-send "autostart: nicotine already running"
|
||||||
|
fi
|
|
@ -3,14 +3,14 @@
|
||||||
|
|
||||||
get_albumart() {
|
get_albumart() {
|
||||||
rm /tmp/albumart.jpg
|
rm /tmp/albumart.jpg
|
||||||
local dir_name=$( dirname "$1" )
|
local dir_name=$( dirname "$1" )
|
||||||
local names=(folder cover albumart front "$2")
|
local names=(folder cover albumart front "$2")
|
||||||
for item in "${names[@]}" ; do
|
for item in "${names[@]}" ; do
|
||||||
img_file=$( find "$dir_name" -maxdepth 1 -iregex ".*$item*\.\(jpg\|jpeg\|gif\|png\|\)$" -print -quit )
|
img_file=$( find "$dir_name" -maxdepth 1 -iregex ".*$item*\.\(jpg\|jpeg\|gif\|png\|\)$" -print -quit )
|
||||||
[ -n "$img_file" ] && cp "$img_file" /tmp/_albumart.jpg && break
|
[ -n "$img_file" ] && cp "$img_file" /tmp/_albumart.jpg && break
|
||||||
done
|
done
|
||||||
[ -z "$img_file" ] && ffmpeg -i "$1" -an -v:c copy "/tmp/_albumart.jpg" -y && img_file="/tmp/_albumart.jpg"
|
[ -z "$img_file" ] && ffmpeg -i "$1" -an -vcodec copy "/tmp/_albumart.jpg" -y && img_file="/tmp/_albumart.jpg"
|
||||||
[ -n "$img_file" ] && ffmpeg -i /tmp/_albumart.jpg -vf scale=72:-1 /tmp/albumart.jpg && rm /tmp/_albumart.jpg
|
[ -n "$img_file" ] && ffmpeg -i /tmp/_albumart.jpg -vf scale=72:-1 /tmp/albumart.jpg && rm /tmp/_albumart.jpg
|
||||||
}
|
}
|
||||||
|
|
||||||
if [ $2 == "playing" ]; then
|
if [ $2 == "playing" ]; then
|
||||||
|
@ -32,5 +32,23 @@ if [ $2 == "playing" ]; then
|
||||||
duration_formatted+=$(printf '%02d:%02d' $(($_duration%3600/60)) $(($_duration%60)))
|
duration_formatted+=$(printf '%02d:%02d' $(($_duration%3600/60)) $(($_duration%60)))
|
||||||
fi
|
fi
|
||||||
|
|
||||||
notify-send -t 5000 -i /tmp/albumart.jpg "$_title" "$_artist\n$_album\n$duration_formatted"
|
details=""
|
||||||
|
|
||||||
|
if [ "$_artist" != "" ]; then
|
||||||
|
details+="$_artist"
|
||||||
|
fi
|
||||||
|
if [ "$_album" != "" ]; then
|
||||||
|
if [ "$details" != "" ]; then
|
||||||
|
details+="\n"
|
||||||
|
fi
|
||||||
|
details+="$_album"
|
||||||
|
fi
|
||||||
|
if [ "$duration_formatted" != "" ]; then
|
||||||
|
if [ "$details" != "" ]; then
|
||||||
|
details+="\n"
|
||||||
|
fi
|
||||||
|
details+="$duration_formatted"
|
||||||
|
fi
|
||||||
|
|
||||||
|
notify-send -t 5000 -i /tmp/albumart.jpg "$_title" "$details"
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -92,12 +92,14 @@ function upload_file_and_notify() {
|
||||||
if [[ $macos == "true" ]]; then
|
if [[ $macos == "true" ]]; then
|
||||||
osascript -e "display notification \"${response}\" with title \"Success!\""
|
osascript -e "display notification \"${response}\" with title \"Success!\""
|
||||||
else
|
else
|
||||||
|
aplay "$HOME/.local/bin/assets/done.wav" &
|
||||||
notify-send -t 5000 "Success!" "${response}" -i "${1}" --hint=int:transient:1
|
notify-send -t 5000 "Success!" "${response}" -i "${1}" --hint=int:transient:1
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
if [[ $macos == "true" ]]; then
|
if [[ $macos == "true" ]]; then
|
||||||
osascript -e "display notification \"Error uploading file\" with title \"Error!\""
|
osascript -e "display notification \"Error uploading file\" with title \"Error!\""
|
||||||
else
|
else
|
||||||
|
aplay "$HOME/.local/bin/assets/error.wav" &
|
||||||
notify-send -t 5000 "Error!" --hint=int:transient:1
|
notify-send -t 5000 "Error!" --hint=int:transient:1
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -26,11 +26,12 @@ mkdir -p "$screenshot_folder"
|
||||||
date_str=$(date +'%Y-%m-%d-%H_%M_%S')
|
date_str=$(date +'%Y-%m-%d-%H_%M_%S')
|
||||||
target="$screenshot_folder/screenie-$date_str.png"
|
target="$screenshot_folder/screenie-$date_str.png"
|
||||||
|
|
||||||
maim -s "$target"
|
flameshot gui -r > "$target"
|
||||||
|
|
||||||
if [ ! -f "$target" ]; then
|
if [ ! -s "$target" ]; then
|
||||||
notify-send -t 5000 "screenshot not found, skipping sending"
|
notify-send "screenshot aborted, skipping sending"
|
||||||
else
|
else
|
||||||
|
aplay "$HOME/.local/bin/assets/capture.wav" &
|
||||||
notify-send -t 5000 "screenie: sending: $target"
|
notify-send -t 5000 "screenie: sending: $target"
|
||||||
source ~/.secrets
|
source ~/.secrets
|
||||||
$elixiremanager "$target"
|
$elixiremanager "$target"
|
||||||
|
|