Merge remote-tracking branch 'refs/remotes/origin/master'
This commit is contained in:
commit
7af9c5dc03
41 changed files with 702 additions and 66 deletions
549
.config/alacritty/alacritty.yml
Normal file
549
.config/alacritty/alacritty.yml
Normal file
|
@ -0,0 +1,549 @@
|
||||||
|
# Configuration for Alacritty, the GPU enhanced terminal emulator.
|
||||||
|
|
||||||
|
# Any items in the `env` entry below will be added as
|
||||||
|
# environment variables. Some entries may override variables
|
||||||
|
# set by alacritty itself.
|
||||||
|
#env:
|
||||||
|
# TERM variable
|
||||||
|
#
|
||||||
|
# This value is used to set the `$TERM` environment variable for
|
||||||
|
# each instance of Alacritty. If it is not present, alacritty will
|
||||||
|
# check the local terminfo database and use `alacritty` if it is
|
||||||
|
# available, otherwise `xterm-256color` is used.
|
||||||
|
#TERM: xterm-256color
|
||||||
|
|
||||||
|
window:
|
||||||
|
# Window dimensions (changes require restart)
|
||||||
|
#
|
||||||
|
# Specified in number of columns/lines, not pixels.
|
||||||
|
# If both are `0`, this setting is ignored.
|
||||||
|
dimensions:
|
||||||
|
columns: 0
|
||||||
|
lines: 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: 2
|
||||||
|
y: 2
|
||||||
|
|
||||||
|
# Spread additional padding evenly around the terminal content.
|
||||||
|
dynamic_padding: false
|
||||||
|
|
||||||
|
# Window decorations
|
||||||
|
#
|
||||||
|
# Values for `decorations`:
|
||||||
|
# - full: Borders and title bar
|
||||||
|
# - none: Neither borders nor title bar
|
||||||
|
#
|
||||||
|
# Values for `decorations` (macOS only):
|
||||||
|
# - transparent: Title bar, transparent background and title bar buttons
|
||||||
|
# - buttonless: Title bar, transparent background, but no title bar buttons
|
||||||
|
decorations: full
|
||||||
|
|
||||||
|
# When true, alacritty starts maximized.
|
||||||
|
start_maximized: false
|
||||||
|
|
||||||
|
scrolling:
|
||||||
|
# Maximum number of lines in the scrollback buffer.
|
||||||
|
# Specifying '0' will disable scrolling.
|
||||||
|
history: 10000
|
||||||
|
|
||||||
|
# Number of lines the viewport will move for every line scrolled when
|
||||||
|
# scrollback is enabled (history > 0).
|
||||||
|
multiplier: 3
|
||||||
|
|
||||||
|
# Faux Scrolling
|
||||||
|
#
|
||||||
|
# The `faux_multiplier` setting controls the number of lines the terminal
|
||||||
|
# should scroll when the alternate screen buffer is active. This is used
|
||||||
|
# to allow mouse scrolling for applications like `man`.
|
||||||
|
#
|
||||||
|
# Specifying `0` will disable faux scrolling.
|
||||||
|
faux_multiplier: 3
|
||||||
|
|
||||||
|
# Scroll to the bottom when new text is written to the terminal.
|
||||||
|
auto_scroll: false
|
||||||
|
|
||||||
|
# Spaces per Tab (changes require restart)
|
||||||
|
#
|
||||||
|
# This setting defines the width of a tab in cells.
|
||||||
|
#
|
||||||
|
# Some applications, like Emacs, rely on knowing about the width of a tab.
|
||||||
|
# To prevent unexpected behavior in these applications, it's also required to
|
||||||
|
# change the `it` value in terminfo when altering this setting.
|
||||||
|
tabspaces: 8
|
||||||
|
|
||||||
|
# Font configuration (changes require restart)
|
||||||
|
font:
|
||||||
|
# Normal (roman) font face
|
||||||
|
normal:
|
||||||
|
# Font family
|
||||||
|
#
|
||||||
|
# Default:
|
||||||
|
# - (macOS) Menlo
|
||||||
|
# - (Linux) monospace
|
||||||
|
# - (Windows) Consolas
|
||||||
|
family: Fira Code
|
||||||
|
|
||||||
|
# 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: Fira Code
|
||||||
|
|
||||||
|
# The `style` can be specified to pick a specific face.
|
||||||
|
#style: Bold
|
||||||
|
|
||||||
|
# Italic font face
|
||||||
|
italic:
|
||||||
|
# Font family
|
||||||
|
#
|
||||||
|
# If the italic family is not specified, it will fall back to the
|
||||||
|
# value specified for the normal font.
|
||||||
|
family: Fira Code
|
||||||
|
|
||||||
|
# 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: -2
|
||||||
|
y: 0
|
||||||
|
|
||||||
|
# Glyph offset determines the locations of the glyphs within their cells with
|
||||||
|
# the default being at the bottom. Increasing `x` moves the glyph to the right,
|
||||||
|
# increasing `y` moves the glyph upwards.
|
||||||
|
glyph_offset:
|
||||||
|
x: 0
|
||||||
|
y: 0
|
||||||
|
|
||||||
|
# Thin stroke font rendering (macOS only)
|
||||||
|
#
|
||||||
|
# Thin strokes are suitable for retina displays, but for non-retina screens
|
||||||
|
# it is recommended to set `use_thin_strokes` to `false`
|
||||||
|
#
|
||||||
|
# macOS >= 10.14.x:
|
||||||
|
#
|
||||||
|
# If the font quality on non-retina display looks bad then set
|
||||||
|
# `use_thin_strokes` to `true` and enable font smoothing by running the
|
||||||
|
# following command:
|
||||||
|
# `defaults write -g CGFontRenderingFontSmoothingDisabled -bool NO`
|
||||||
|
#
|
||||||
|
# This is a global setting and will require a log out or restart to take
|
||||||
|
# effect.
|
||||||
|
use_thin_strokes: true
|
||||||
|
|
||||||
|
# Display the time it takes to redraw each frame.
|
||||||
|
render_timer: false
|
||||||
|
|
||||||
|
# Keep the log file after quitting Alacritty.
|
||||||
|
persistent_logging: false
|
||||||
|
|
||||||
|
# If `true`, bold text is drawn using the bright color variants.
|
||||||
|
draw_bold_text_with_bright_colors: false
|
||||||
|
# Colors (Iceberg)
|
||||||
|
colors:
|
||||||
|
# Default colors
|
||||||
|
primary:
|
||||||
|
background: '0x161821'
|
||||||
|
foreground: '0xd2d4de'
|
||||||
|
|
||||||
|
# Normal colors
|
||||||
|
normal:
|
||||||
|
black: '0x161821'
|
||||||
|
red: '0xe27878'
|
||||||
|
green: '0xb4be82'
|
||||||
|
yellow: '0xe2a478'
|
||||||
|
blue: '0x84a0c6'
|
||||||
|
magenta: '0xa093c7'
|
||||||
|
cyan: '0x89b8c2'
|
||||||
|
white: '0xc6c8d1'
|
||||||
|
|
||||||
|
# Bright colors
|
||||||
|
bright:
|
||||||
|
black: '0x6b7089'
|
||||||
|
red: '0xe98989'
|
||||||
|
green: '0xc0ca8e'
|
||||||
|
yellow: '0xe9b189'
|
||||||
|
blue: '0x91acd1'
|
||||||
|
magenta: '0xada0d3'
|
||||||
|
cyan: '0x95c4ce'
|
||||||
|
white: '0xd2d4de'
|
||||||
|
# Dim colors
|
||||||
|
#
|
||||||
|
# If the dim colors are not set, they will be calculated automatically based
|
||||||
|
# on the `normal` colors.
|
||||||
|
#dim:
|
||||||
|
# black: '0x000000'
|
||||||
|
# red: '0x8c3336'
|
||||||
|
# green: '0x7a8530'
|
||||||
|
# yellow: '0x97822e'
|
||||||
|
# blue: '0x506d8f'
|
||||||
|
# magenta: '0x80638e'
|
||||||
|
# cyan: '0x497e7a'
|
||||||
|
# white: '0x9a9a9a'
|
||||||
|
|
||||||
|
# Indexed Colors
|
||||||
|
#
|
||||||
|
# The indexed colors include all colors from 16 to 256.
|
||||||
|
# When these are not set, they're filled with sensible defaults.
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# `- { index: 16, color: '0xff00ff' }`
|
||||||
|
#
|
||||||
|
indexed_colors: []
|
||||||
|
|
||||||
|
# Visual Bell
|
||||||
|
#
|
||||||
|
# Any time the BEL code is received, Alacritty "rings" the visual bell. Once
|
||||||
|
# rung, the terminal background will be set to white and transition back to the
|
||||||
|
# default background color. You can control the rate of this transition by
|
||||||
|
# setting the `duration` property (represented in milliseconds). You can also
|
||||||
|
# configure the transition function by setting the `animation` property.
|
||||||
|
#
|
||||||
|
# Values for `animation`:
|
||||||
|
# - Ease
|
||||||
|
# - EaseOut
|
||||||
|
# - EaseOutSine
|
||||||
|
# - EaseOutQuad
|
||||||
|
# - EaseOutCubic
|
||||||
|
# - EaseOutQuart
|
||||||
|
# - EaseOutQuint
|
||||||
|
# - EaseOutExpo
|
||||||
|
# - EaseOutCirc
|
||||||
|
# - Linear
|
||||||
|
#
|
||||||
|
# Specifying a `duration` of `0` will disable the visual bell.
|
||||||
|
visual_bell:
|
||||||
|
animation: EaseOutCubic
|
||||||
|
duration: 0
|
||||||
|
color: '0x222220'
|
||||||
|
|
||||||
|
# Background opacity
|
||||||
|
#
|
||||||
|
# Window opacity as a floating point number from `0.0` to `1.0`.
|
||||||
|
# The value `0.0` is completely transparent and `1.0` is opaque.
|
||||||
|
background_opacity: 0.99
|
||||||
|
|
||||||
|
# Mouse bindings
|
||||||
|
#
|
||||||
|
# Available fields:
|
||||||
|
# - mouse
|
||||||
|
# - action
|
||||||
|
# - mods (optional)
|
||||||
|
#
|
||||||
|
# Values for `mouse`:
|
||||||
|
# - Middle
|
||||||
|
# - Left
|
||||||
|
# - Right
|
||||||
|
# - Numeric identifier such as `5`
|
||||||
|
#
|
||||||
|
# All available `mods` and `action` values are documented in the key binding
|
||||||
|
# section.
|
||||||
|
mouse_bindings:
|
||||||
|
- { mouse: Middle, action: PasteSelection }
|
||||||
|
|
||||||
|
mouse:
|
||||||
|
# Click settings
|
||||||
|
#
|
||||||
|
# The `double_click` and `triple_click` settings control the time
|
||||||
|
# alacritty should wait for accepting multiple clicks as one double
|
||||||
|
# or triple click.
|
||||||
|
double_click: { threshold: 300 }
|
||||||
|
triple_click: { threshold: 300 }
|
||||||
|
|
||||||
|
# If this is `true`, the cursor is temporarily hidden when typing.
|
||||||
|
hide_when_typing: false
|
||||||
|
|
||||||
|
url:
|
||||||
|
# URL launcher
|
||||||
|
#
|
||||||
|
# This program is executed when clicking on a text which is recognized as a URL.
|
||||||
|
# The URL is always added to the command as the last parameter.
|
||||||
|
#
|
||||||
|
# When set to `None`, URL launching will be disabled completely.
|
||||||
|
#
|
||||||
|
# Default:
|
||||||
|
# - (macOS) open
|
||||||
|
# - (Linux) xdg-open
|
||||||
|
# - (Windows) explorer
|
||||||
|
#launcher: xdg-open
|
||||||
|
|
||||||
|
# URL modifiers
|
||||||
|
#
|
||||||
|
# These are the modifiers that need to be held down for opening URLs when clicking
|
||||||
|
# on them. The available modifiers are documented in the key binding section.
|
||||||
|
modifiers: None
|
||||||
|
|
||||||
|
selection:
|
||||||
|
semantic_escape_chars: ",│`|:\"' ()[]{}<>"
|
||||||
|
|
||||||
|
# When set to `true`, selected text will be copied to the primary clipboard.
|
||||||
|
save_to_clipboard: true
|
||||||
|
|
||||||
|
# Allow terminal applications to change Alacritty's window title.
|
||||||
|
dynamic_title: true
|
||||||
|
|
||||||
|
cursor:
|
||||||
|
# Cursor style
|
||||||
|
#
|
||||||
|
# Values for `style`:
|
||||||
|
# - ▇ Block
|
||||||
|
# - _ Underline
|
||||||
|
# - | Beam
|
||||||
|
style: Beam
|
||||||
|
|
||||||
|
# If this is `true`, the cursor will be rendered as a hollow box when the
|
||||||
|
# window is not focused.
|
||||||
|
unfocused_hollow: true
|
||||||
|
|
||||||
|
# Live config reload (changes require restart)
|
||||||
|
live_config_reload: true
|
||||||
|
|
||||||
|
# Shell
|
||||||
|
#
|
||||||
|
# You can set `shell.program` to the path of your favorite shell, e.g. `/bin/fish`.
|
||||||
|
# Entries in `shell.args` are passed unmodified as arguments to the shell.
|
||||||
|
#
|
||||||
|
# Default:
|
||||||
|
# - (Linux/macOS) /bin/bash --login
|
||||||
|
# - (Windows) powershell
|
||||||
|
#shell:
|
||||||
|
# program: /bin/bash
|
||||||
|
# args:
|
||||||
|
# - --login
|
||||||
|
|
||||||
|
# Windows 10 ConPTY backend (Windows only)
|
||||||
|
#
|
||||||
|
# This will enable better color support and may resolve other issues,
|
||||||
|
# however this API and its implementation is still young and so is
|
||||||
|
# disabled by default, as stability may not be as good as the winpty
|
||||||
|
# backend.
|
||||||
|
#
|
||||||
|
# Alacritty will fall back to the WinPTY automatically if the ConPTY
|
||||||
|
# backend cannot be initialized.
|
||||||
|
enable_experimental_conpty_backend: false
|
||||||
|
|
||||||
|
# Send ESC (\x1b) before characters when alt is pressed.
|
||||||
|
alt_send_esc: true
|
||||||
|
|
||||||
|
# Key bindings
|
||||||
|
#
|
||||||
|
# Key bindings are specified as a list of objects. Each binding will specify a
|
||||||
|
# key and modifiers required to trigger it, terminal modes where the binding is
|
||||||
|
# applicable, and what should be done when the key binding fires. It can either
|
||||||
|
# send a byte sequence to the running application (`chars`), execute a
|
||||||
|
# predefined action (`action`) or fork and execute a specified command plus
|
||||||
|
# arguments (`command`).
|
||||||
|
#
|
||||||
|
# Bindings are always filled by default, but will be replaced when a new binding
|
||||||
|
# with the same triggers is defined. To unset a default binding, it can be
|
||||||
|
# mapped to the `None` action.
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# `- { key: V, mods: Control|Shift, action: Paste }`
|
||||||
|
#
|
||||||
|
# Available fields:
|
||||||
|
# - key
|
||||||
|
# - mods (optional)
|
||||||
|
# - chars | action | command (exactly one required)
|
||||||
|
# - mode (optional)
|
||||||
|
#
|
||||||
|
# Values for `key`:
|
||||||
|
# - `A` -> `Z`
|
||||||
|
# - `F1` -> `F12`
|
||||||
|
# - `Key1` -> `Key0`
|
||||||
|
#
|
||||||
|
# A full list with available key codes can be found here:
|
||||||
|
# https://docs.rs/glutin/*/glutin/enum.VirtualKeyCode.html#variants
|
||||||
|
#
|
||||||
|
# Instead of using the name of the keys, the `key` field also supports using
|
||||||
|
# the scancode of the desired key. Scancodes have to be specified as a
|
||||||
|
# decimal number.
|
||||||
|
# This command will allow you to display the hex scancodes for certain keys:
|
||||||
|
# `showkey --scancodes`
|
||||||
|
#
|
||||||
|
# Values for `mods`:
|
||||||
|
# - Command
|
||||||
|
# - Control
|
||||||
|
# - Super
|
||||||
|
# - Shift
|
||||||
|
# - Alt
|
||||||
|
#
|
||||||
|
# Multiple `mods` can be combined using `|` like this: `mods: Control|Shift`.
|
||||||
|
# Whitespace and capitalization is relevant and must match the example.
|
||||||
|
#
|
||||||
|
# Values for `chars`:
|
||||||
|
# The `chars` field writes the specified string to the terminal. This makes
|
||||||
|
# it possible to pass escape sequences.
|
||||||
|
# To find escape codes for bindings like `PageUp` ("\x1b[5~"), you can run
|
||||||
|
# the command `showkey -a` outside of tmux.
|
||||||
|
# Note that applications use terminfo to map escape sequences back to
|
||||||
|
# keys. It is therefore required to update the terminfo when
|
||||||
|
# changing an escape sequence.
|
||||||
|
#
|
||||||
|
# Values for `action`:
|
||||||
|
# - Paste
|
||||||
|
# - PasteSelection
|
||||||
|
# - Copy
|
||||||
|
# - IncreaseFontSize
|
||||||
|
# - DecreaseFontSize
|
||||||
|
# - ResetFontSize
|
||||||
|
# - ScrollPageUp
|
||||||
|
# - ScrollPageDown
|
||||||
|
# - ScrollToTop
|
||||||
|
# - ScrollToBottom
|
||||||
|
# - ClearHistory
|
||||||
|
# - Hide
|
||||||
|
# - Quit
|
||||||
|
# - ClearLogNotice
|
||||||
|
# - SpawnNewInstance
|
||||||
|
# - None
|
||||||
|
#
|
||||||
|
# Values for `command`:
|
||||||
|
# The `command` field must be a map containing a `program` string and
|
||||||
|
# an `args` array of command line parameter strings.
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# `command: { program: "alacritty", args: ["-e", "vttest"] }`
|
||||||
|
#
|
||||||
|
# Values for `mode`:
|
||||||
|
# - ~AppCursor
|
||||||
|
# - AppCursor
|
||||||
|
# - ~AppKeypad
|
||||||
|
# - AppKeypad
|
||||||
|
key_bindings:
|
||||||
|
# (Windows/Linux only)
|
||||||
|
#- { key: V, mods: Control|Shift, action: Paste }
|
||||||
|
#- { key: C, mods: Control|Shift, action: Copy }
|
||||||
|
#- { key: Insert, mods: Shift, action: PasteSelection }
|
||||||
|
#- { key: Key0, mods: Control, action: ResetFontSize }
|
||||||
|
#- { key: Equals, mods: Control, action: IncreaseFontSize }
|
||||||
|
#- { key: Subtract, mods: Control, action: DecreaseFontSize }
|
||||||
|
|
||||||
|
# (macOS only)
|
||||||
|
#- { key: Key0, mods: Command, action: ResetFontSize }
|
||||||
|
#- { key: Equals, mods: Command, action: IncreaseFontSize }
|
||||||
|
#- { key: Minus, mods: Command, action: DecreaseFontSize }
|
||||||
|
#- { key: K, mods: Command, action: ClearHistory }
|
||||||
|
#- { key: K, mods: Command, chars: "\x0c" }
|
||||||
|
#- { key: V, mods: Command, action: Paste }
|
||||||
|
#- { key: C, mods: Command, action: Copy }
|
||||||
|
#- { key: H, mods: Command, action: Hide }
|
||||||
|
#- { key: Q, mods: Command, action: Quit }
|
||||||
|
#- { key: W, mods: Command, action: Quit }
|
||||||
|
|
||||||
|
- { key: Paste, action: Paste }
|
||||||
|
- { key: Copy, action: Copy }
|
||||||
|
- { key: L, mods: Control, action: ClearLogNotice }
|
||||||
|
- { key: L, mods: Control, chars: "\x0c" }
|
||||||
|
- { key: Home, chars: "\x1bOH", mode: AppCursor }
|
||||||
|
- { key: Home, chars: "\x1b[H", mode: ~AppCursor }
|
||||||
|
- { key: End, chars: "\x1bOF", mode: AppCursor }
|
||||||
|
- { key: End, chars: "\x1b[F", mode: ~AppCursor }
|
||||||
|
- { key: PageUp, mods: Shift, action: ScrollPageUp, mode: ~Alt }
|
||||||
|
- { key: PageUp, mods: Shift, chars: "\x1b[5;2~", mode: Alt }
|
||||||
|
- { key: PageUp, mods: Control, chars: "\x1b[5;5~" }
|
||||||
|
- { key: PageUp, chars: "\x1b[5~" }
|
||||||
|
- { key: PageDown, mods: Shift, action: ScrollPageDown, mode: ~Alt }
|
||||||
|
- { key: PageDown, mods: Shift, chars: "\x1b[6;2~", mode: Alt }
|
||||||
|
- { key: PageDown, mods: Control, chars: "\x1b[6;5~" }
|
||||||
|
- { key: PageDown, chars: "\x1b[6~" }
|
||||||
|
- { key: Tab, mods: Shift, chars: "\x1b[Z" }
|
||||||
|
- { key: Back, chars: "\x7f" }
|
||||||
|
- { key: Back, mods: Alt, chars: "\x1b\x7f" }
|
||||||
|
- { key: Insert, chars: "\x1b[2~" }
|
||||||
|
- { key: Delete, chars: "\x1b[3~" }
|
||||||
|
- { key: Left, mods: Shift, chars: "\x1b[1;2D" }
|
||||||
|
- { key: Left, mods: Control, chars: "\x1b[1;5D" }
|
||||||
|
- { key: Left, mods: Alt, chars: "\x1b[1;3D" }
|
||||||
|
- { key: Left, chars: "\x1b[D", mode: ~AppCursor }
|
||||||
|
- { key: Left, chars: "\x1bOD", mode: AppCursor }
|
||||||
|
- { key: Right, mods: Shift, chars: "\x1b[1;2C" }
|
||||||
|
- { key: Right, mods: Control, chars: "\x1b[1;5C" }
|
||||||
|
- { key: Right, mods: Alt, chars: "\x1b[1;3C" }
|
||||||
|
- { key: Right, chars: "\x1b[C", mode: ~AppCursor }
|
||||||
|
- { key: Right, chars: "\x1bOC", mode: AppCursor }
|
||||||
|
- { key: Up, mods: Shift, chars: "\x1b[1;2A" }
|
||||||
|
- { key: Up, mods: Control, chars: "\x1b[1;5A" }
|
||||||
|
- { key: Up, mods: Alt, chars: "\x1b[1;3A" }
|
||||||
|
- { key: Up, chars: "\x1b[A", mode: ~AppCursor }
|
||||||
|
- { key: Up, chars: "\x1bOA", mode: AppCursor }
|
||||||
|
- { key: Down, mods: Shift, chars: "\x1b[1;2B" }
|
||||||
|
- { key: Down, mods: Control, chars: "\x1b[1;5B" }
|
||||||
|
- { key: Down, mods: Alt, chars: "\x1b[1;3B" }
|
||||||
|
- { key: Down, chars: "\x1b[B", mode: ~AppCursor }
|
||||||
|
- { key: Down, chars: "\x1bOB", mode: AppCursor }
|
||||||
|
- { key: F1, chars: "\x1bOP" }
|
||||||
|
- { key: F2, chars: "\x1bOQ" }
|
||||||
|
- { key: F3, chars: "\x1bOR" }
|
||||||
|
- { key: F4, chars: "\x1bOS" }
|
||||||
|
- { key: F5, chars: "\x1b[15~" }
|
||||||
|
- { key: F6, chars: "\x1b[17~" }
|
||||||
|
- { key: F7, chars: "\x1b[18~" }
|
||||||
|
- { key: F8, chars: "\x1b[19~" }
|
||||||
|
- { key: F9, chars: "\x1b[20~" }
|
||||||
|
- { key: F10, chars: "\x1b[21~" }
|
||||||
|
- { key: F11, chars: "\x1b[23~" }
|
||||||
|
- { key: F12, chars: "\x1b[24~" }
|
||||||
|
- { key: F1, mods: Shift, chars: "\x1b[1;2P" }
|
||||||
|
- { key: F2, mods: Shift, chars: "\x1b[1;2Q" }
|
||||||
|
- { key: F3, mods: Shift, chars: "\x1b[1;2R" }
|
||||||
|
- { key: F4, mods: Shift, chars: "\x1b[1;2S" }
|
||||||
|
- { key: F5, mods: Shift, chars: "\x1b[15;2~" }
|
||||||
|
- { key: F6, mods: Shift, chars: "\x1b[17;2~" }
|
||||||
|
- { key: F7, mods: Shift, chars: "\x1b[18;2~" }
|
||||||
|
- { key: F8, mods: Shift, chars: "\x1b[19;2~" }
|
||||||
|
- { key: F9, mods: Shift, chars: "\x1b[20;2~" }
|
||||||
|
- { key: F10, mods: Shift, chars: "\x1b[21;2~" }
|
||||||
|
- { key: F11, mods: Shift, chars: "\x1b[23;2~" }
|
||||||
|
- { key: F12, mods: Shift, chars: "\x1b[24;2~" }
|
||||||
|
- { key: F1, mods: Control, chars: "\x1b[1;5P" }
|
||||||
|
- { key: F2, mods: Control, chars: "\x1b[1;5Q" }
|
||||||
|
- { key: F3, mods: Control, chars: "\x1b[1;5R" }
|
||||||
|
- { key: F4, mods: Control, chars: "\x1b[1;5S" }
|
||||||
|
- { key: F5, mods: Control, chars: "\x1b[15;5~" }
|
||||||
|
- { key: F6, mods: Control, chars: "\x1b[17;5~" }
|
||||||
|
- { key: F7, mods: Control, chars: "\x1b[18;5~" }
|
||||||
|
- { key: F8, mods: Control, chars: "\x1b[19;5~" }
|
||||||
|
- { key: F9, mods: Control, chars: "\x1b[20;5~" }
|
||||||
|
- { key: F10, mods: Control, chars: "\x1b[21;5~" }
|
||||||
|
- { key: F11, mods: Control, chars: "\x1b[23;5~" }
|
||||||
|
- { key: F12, mods: Control, chars: "\x1b[24;5~" }
|
||||||
|
- { key: F1, mods: Alt, chars: "\x1b[1;6P" }
|
||||||
|
- { key: F2, mods: Alt, chars: "\x1b[1;6Q" }
|
||||||
|
- { key: F3, mods: Alt, chars: "\x1b[1;6R" }
|
||||||
|
- { key: F4, mods: Alt, chars: "\x1b[1;6S" }
|
||||||
|
- { key: F5, mods: Alt, chars: "\x1b[15;6~" }
|
||||||
|
- { key: F6, mods: Alt, chars: "\x1b[17;6~" }
|
||||||
|
- { key: F7, mods: Alt, chars: "\x1b[18;6~" }
|
||||||
|
- { key: F8, mods: Alt, chars: "\x1b[19;6~" }
|
||||||
|
- { key: F9, mods: Alt, chars: "\x1b[20;6~" }
|
||||||
|
- { key: F10, mods: Alt, chars: "\x1b[21;6~" }
|
||||||
|
- { key: F11, mods: Alt, chars: "\x1b[23;6~" }
|
||||||
|
- { key: F12, mods: Alt, chars: "\x1b[24;6~" }
|
||||||
|
- { key: F1, mods: Super, chars: "\x1b[1;3P" }
|
||||||
|
- { key: F2, mods: Super, chars: "\x1b[1;3Q" }
|
||||||
|
- { key: F3, mods: Super, chars: "\x1b[1;3R" }
|
||||||
|
- { key: F4, mods: Super, chars: "\x1b[1;3S" }
|
||||||
|
- { key: F5, mods: Super, chars: "\x1b[15;3~" }
|
||||||
|
- { key: F6, mods: Super, chars: "\x1b[17;3~" }
|
||||||
|
- { key: F7, mods: Super, chars: "\x1b[18;3~" }
|
||||||
|
- { key: F8, mods: Super, chars: "\x1b[19;3~" }
|
||||||
|
- { key: F9, mods: Super, chars: "\x1b[20;3~" }
|
||||||
|
- { key: F10, mods: Super, chars: "\x1b[21;3~" }
|
||||||
|
- { key: F11, mods: Super, chars: "\x1b[23;3~" }
|
||||||
|
- { key: F12, mods: Super, chars: "\x1b[24;3~" }
|
||||||
|
- { key: NumpadEnter, chars: "\n" }
|
|
@ -1,34 +0,0 @@
|
||||||
#TAG,NAME IN REPO (or git url),PURPOSE (should be a verb phrase to sound right while installing)
|
|
||||||
,i3-gaps,"is the main graphical user interface and window manager."
|
|
||||||
,i3blocks,"is the status bar block provider for i3."
|
|
||||||
,xorg-server,"is the graphical server."
|
|
||||||
,xorg-xinit,"starts the graphical server."
|
|
||||||
,ranger,"is an extensive terminal file manager that everyone likes."
|
|
||||||
,dosfstools,"allows your computer to access dos-like filesystems."
|
|
||||||
,neovim,"a tidier vim with some useful features"
|
|
||||||
,i3blocks,"is the status bar."
|
|
||||||
,i3lock,"is the screen lock."
|
|
||||||
,mpv,"is the patrician's choice video/gif player."
|
|
||||||
,networkmanager,"does exactly what it sounds like."
|
|
||||||
,ntfs-3g,"allows accessing NTFS partitions."
|
|
||||||
,pulseaudio,"is the audio system (>inb4 bloat)."
|
|
||||||
,pulseaudio-alsa,"is an audio interface with ALSA."
|
|
||||||
,pulsemixer,"is an intuitive ncurses audio controller."
|
|
||||||
,tmux,"is a terminal multiplexer and the dropdown window in LARBS."
|
|
||||||
,unrar,"extracts rar's."
|
|
||||||
,unzip,"unzips zips."
|
|
||||||
,xclip,"allows for copying and pasting from the command line."
|
|
||||||
,xdotool,"provides window action utilities on the command line."
|
|
||||||
,youtube-dl,"can download any YouTube video (or playlist or channel) when given the link."
|
|
||||||
,atool,"manages and gives information about archives."
|
|
||||||
,fzf,"is a fuzzy finder tool."
|
|
||||||
,zsh,"is a shell alternative to bash."
|
|
||||||
A,nerd-fonts-fira-code,"is the mono-space font of choice, patched with embedded icon symbols."
|
|
||||||
,qutebrowser,"is a keyboard focused browser with vim-keys enabled."
|
|
||||||
,mopidy,"is an extensible music server written in python."
|
|
||||||
A,mopidy-spotify,"is a mopidy extension to play music from spotify."
|
|
||||||
A,mopidy-scrobbler,"is a mopidy extension to scrobble to last.fm."
|
|
||||||
A,mopidy-spotify-tunigo,"is a mopidy extension to enable spotify browsing."
|
|
||||||
A,mopidy-podcast,"is a mopidy extension to search and browse podcasts."
|
|
||||||
,rxvt-unicode,"is a simple and efficient terminal emulator."
|
|
||||||
|
|
|
|
@ -32,7 +32,7 @@ font $font
|
||||||
floating_modifier $mod
|
floating_modifier $mod
|
||||||
|
|
||||||
# start a terminal
|
# start a terminal
|
||||||
bindsym $mod+Return exec i3-sensible-terminal
|
bindsym $mod+Return exec alacritty #i3-sensible-terminal
|
||||||
|
|
||||||
# kill focused window
|
# kill focused window
|
||||||
bindsym $mod+Shift+x kill
|
bindsym $mod+Shift+x kill
|
||||||
|
@ -94,10 +94,18 @@ bindsym $mod+a focus parent
|
||||||
# focus the child container
|
# focus the child container
|
||||||
#bindsym $mod+d focus child
|
#bindsym $mod+d focus child
|
||||||
|
|
||||||
|
# disable titles and borders, necessary for i3gaps to work apparently
|
||||||
|
for_window [class="^.*"] border pixel 0
|
||||||
|
# no gaps if there is only 1 window - I am satisfied with choosing manually
|
||||||
|
#smart_gaps on
|
||||||
|
# enable / disable gaps (g disables, G enables)
|
||||||
|
bindsym $mod+shift+g gaps inner current set 10; gaps outer current set 10
|
||||||
|
bindsym $mod+g gaps inner current set 0; gaps outer current set 0
|
||||||
|
|
||||||
# Define names for default workspaces for which we configure key bindings later on.
|
# Define names for default workspaces for which we configure key bindings later on.
|
||||||
# We use variables to avoid repeating the names in multiple places.
|
# We use variables to avoid repeating the names in multiple places.
|
||||||
set $ws1 "1"
|
set $ws1 "1:"
|
||||||
set $ws2 "2"
|
set $ws2 "2:"
|
||||||
set $ws3 "3"
|
set $ws3 "3"
|
||||||
set $ws4 "4"
|
set $ws4 "4"
|
||||||
set $ws5 "5"
|
set $ws5 "5"
|
||||||
|
@ -162,7 +170,8 @@ bindsym $mod+r mode "resize"
|
||||||
# Start i3bar to display a workspace bar (plus the system information i3status
|
# Start i3bar to display a workspace bar (plus the system information i3status
|
||||||
# finds out, if available)
|
# finds out, if available)
|
||||||
bar {
|
bar {
|
||||||
font $font
|
strip_workspace_numbers yes
|
||||||
|
font $font
|
||||||
position bottom
|
position bottom
|
||||||
colors {
|
colors {
|
||||||
background #232323
|
background #232323
|
||||||
|
@ -182,3 +191,6 @@ bindsym $mod+Shift+s exec --no-startup-id `[ $(printf "NO\nYES" | dmenu \
|
||||||
-nf "#7777bb" -i -p "Exit i3 X session?") = "YES" ] && i3-msg exit`
|
-nf "#7777bb" -i -p "Exit i3 X session?") = "YES" ] && i3-msg exit`
|
||||||
# lock i3 screen
|
# lock i3 screen
|
||||||
bindsym $mod+Shift+p exec i3lock
|
bindsym $mod+Shift+p exec i3lock
|
||||||
|
|
||||||
|
# set a pretty wallpaper
|
||||||
|
exec_always --no-startup-id feh --bg-scale ~/Pictures/wall.jpg
|
||||||
|
|
1
.config/scripts/bin/syu
Symbolic link
1
.config/scripts/bin/syu
Symbolic link
|
@ -0,0 +1 @@
|
||||||
|
/usr/bin/topgrade
|
|
@ -5,18 +5,25 @@
|
||||||
|
|
||||||
### OPTIONS AND VARIABLES ###
|
### OPTIONS AND VARIABLES ###
|
||||||
|
|
||||||
while getopts ":a:r:p:h" o; do case "${o}" in
|
# unset our temp variables, just in case they were used for something else in shell
|
||||||
h) printf "Optional arguments for custom use:\\n -r: Dotfiles repository (local file or url)\\n -p: Dependencies and programs csv (local file or url)\\n -a: AUR helper (must have pacman-like syntax)\\n -h: Show this message\\n" && exit ;;
|
unset pkgfiles dotfilesrepo targetuser targetpassword targetdeployment quietmode aurhelper loginshell
|
||||||
|
|
||||||
|
while getopts ":a:r:f:F:t:s:h" o; do case "${o}" in
|
||||||
|
h) printf "Optional arguments for custom use:\\n -r: Dotfiles repository (local file or url)\\n -f: Dependencies and programs csv alongside defaults (local file or url)\\n -F: Dependencies and programs csv replacing defaults (local file or url)\\n -a: AUR helper (must have pacman-like syntax), defaults to yay\\n -t: Target deployment (laptop, desktop, headless, none) to set up relevant package function groups\\n -s: Default user shell. Must be a full path to the shell (/bin/zsh by default).\n -h: Show this message\\n" && exit ;;
|
||||||
r) dotfilesrepo=${OPTARG} && git ls-remote "$dotfilesrepo" || exit ;;
|
r) dotfilesrepo=${OPTARG} && git ls-remote "$dotfilesrepo" || exit ;;
|
||||||
p) progsfile=${OPTARG} ;;
|
|
||||||
a) aurhelper=${OPTARG} ;;
|
a) aurhelper=${OPTARG} ;;
|
||||||
|
f) pkgfiles=${OPTARG} ;;
|
||||||
|
F) pkgfiles=${OPTARG} && exclusivepkgfiles=true ;;
|
||||||
|
t) targetdeployment=${OPTARG} ;;
|
||||||
|
s) loginshell=${OPTARG} ;;
|
||||||
*) printf "Invalid option: -%s\\n" "$OPTARG" && exit ;;
|
*) printf "Invalid option: -%s\\n" "$OPTARG" && exit ;;
|
||||||
esac done
|
esac done
|
||||||
|
|
||||||
# DEFAULTS:
|
# DEFAULTS:
|
||||||
[ -z "$dotfilesrepo" ] && dotfilesrepo="https://gitlab.com/marty-oehme/dotfiles.git"
|
[ -z "$dotfilesrepo" ] && dotfilesrepo="https://gitlab.com/marty-oehme/dotfiles.git"
|
||||||
[ -z "$progsfile" ] && progsfile="https://gitlab.com/marty-oehme/dotfiles/snippets/1828258/raw"
|
[ -z "$pkgfiles" ] && pkgfiles=""
|
||||||
[ -z "$aurhelper" ] && aurhelper="yay"
|
[ -z "$aurhelper" ] && aurhelper="yay"
|
||||||
|
[ -z "$loginshell" ] && loginshell="/bin/zsh"
|
||||||
|
|
||||||
### FUNCTIONS ###
|
### FUNCTIONS ###
|
||||||
|
|
||||||
|
@ -57,6 +64,10 @@ adduserandpass() { \
|
||||||
echo "$name:$pass1" | chpasswd
|
echo "$name:$pass1" | chpasswd
|
||||||
unset pass1 pass2 ;}
|
unset pass1 pass2 ;}
|
||||||
|
|
||||||
|
deploydialog() {
|
||||||
|
targetdeployment=$(dialog --title "Deployment Configuration" --radiolist "Select a target package configuration." 0 0 5 desktop "base, network, shell, gui, multimedia, development" on laptop "base, network, shell, gui, multimedia, development, battery, touchpad" off headless "base, network, shell" off none "Installs no packages." off 3>&1 1>&2 2>&3 3>&1)
|
||||||
|
}
|
||||||
|
|
||||||
refreshkeys() { \
|
refreshkeys() { \
|
||||||
dialog --infobox "Refreshing Arch Keyring..." 4 40
|
dialog --infobox "Refreshing Arch Keyring..." 4 40
|
||||||
pacman --noconfirm -Sy archlinux-keyring >/dev/null 2>&1
|
pacman --noconfirm -Sy archlinux-keyring >/dev/null 2>&1
|
||||||
|
@ -97,9 +108,29 @@ aurinstall() { \
|
||||||
sudo -u "$name" $aurhelper -S --noconfirm "$1" >/dev/null 2>&1
|
sudo -u "$name" $aurhelper -S --noconfirm "$1" >/dev/null 2>&1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# get the link to the package collection
|
||||||
|
getpackagegrouplink() {
|
||||||
|
case "$1" in
|
||||||
|
"none") pkggroup="";;
|
||||||
|
"desktop") pkggroup="https://gitlab.com/marty-oehme/dotfiles/snippets/1828258/raw" ;;
|
||||||
|
"laptop") pkggroup="https://gitlab.com/marty-oehme/dotfiles/snippets/1834307/raw" ;;
|
||||||
|
"headless") pkggroup="https://gitlab.com/marty-oehme/dotfiles/snippets/1834308/raw" ;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
# can be called with as many csv files filled with packages as necessary
|
||||||
|
# appends them all to one temporary file for the installation
|
||||||
|
gatherpackages() {
|
||||||
|
concfile=$1
|
||||||
|
shift
|
||||||
|
touch $concfile
|
||||||
|
for progs in "$@"; do
|
||||||
|
([ -f "$progs" ] && cat "$progs" >> $concfile) || curl -Ls "$progs" | sed '/^#/d' >> $concfile
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
installationloop() { \
|
installationloop() { \
|
||||||
([ -f "$progsfile" ] && cp "$progsfile" /tmp/progs.csv) || curl -Ls "$progsfile" | sed '/^#/d' > /tmp/progs.csv
|
total=$(wc -l < $1)
|
||||||
total=$(wc -l < /tmp/progs.csv)
|
|
||||||
aurinstalled=$(pacman -Qm | awk '{print $1}')
|
aurinstalled=$(pacman -Qm | awk '{print $1}')
|
||||||
while IFS=, read -r tag program comment; do
|
while IFS=, read -r tag program comment; do
|
||||||
n=$((n+1))
|
n=$((n+1))
|
||||||
|
@ -109,7 +140,7 @@ installationloop() { \
|
||||||
"A") aurinstall "$program" "$comment" ;;
|
"A") aurinstall "$program" "$comment" ;;
|
||||||
"G") gitmakeinstall "$program" "$comment" ;;
|
"G") gitmakeinstall "$program" "$comment" ;;
|
||||||
esac
|
esac
|
||||||
done < /tmp/progs.csv ;}
|
done < $1 ;}
|
||||||
|
|
||||||
dotfiles() { \
|
dotfiles() { \
|
||||||
gpath=$1
|
gpath=$1
|
||||||
|
@ -126,16 +157,16 @@ putgitrepo() { # Downlods a gitrepo $1 and places the files in $2 only overwriti
|
||||||
sudo -u "$name" git clone --bare "$1" "$dir/gitrepo" >/dev/null 2>&1 &&
|
sudo -u "$name" git clone --bare "$1" "$dir/gitrepo" >/dev/null 2>&1 &&
|
||||||
sudo -u "$name" cp -rfT "$dir/gitrepo" $dfdir/.dotfiles
|
sudo -u "$name" cp -rfT "$dir/gitrepo" $dfdir/.dotfiles
|
||||||
|
|
||||||
dotfiles $dfdir checkout
|
sudo -u "$name" dotfiles $dfdir checkout
|
||||||
if [ $? = 0 ]; then
|
if [ $? = 0 ]; then
|
||||||
echo "Checked out dotfiles.";
|
echo "Checked out dotfiles.";
|
||||||
else
|
else
|
||||||
echo "Backing up existing dotfiles.";
|
echo "Backing up existing dotfiles.";
|
||||||
mkdir -p $2/.dotfiles-backup
|
mkdir -p $2/.dotfiles-backup
|
||||||
dotfiles $dfdir checkout 2>&1 | egrep "\s+\." | awk {'print $1'} | xargs -I{} mv {} $2/.dotfiles-backup/{}
|
sudo -u "$name" dotfiles $dfdir checkout 2>&1 | egrep "\s+\." | awk {'print $1'} | xargs -I{} mv {} $2/.dotfiles-backup/{}
|
||||||
fi;
|
fi;
|
||||||
dotfiles $dfdir checkout
|
sudo -u "$name" dotfiles $dfdir checkout
|
||||||
dotfiles $dfdir config status.showUntrackedFiles no
|
sudo -u "$name" dotfiles $dfdir config status.showUntrackedFiles no
|
||||||
}
|
}
|
||||||
|
|
||||||
serviceinit() { for service in "$@"; do
|
serviceinit() { for service in "$@"; do
|
||||||
|
@ -173,6 +204,11 @@ getuserandpass || error "User exited."
|
||||||
# Give warning if user already exists.
|
# Give warning if user already exists.
|
||||||
usercheck || error "User exited."
|
usercheck || error "User exited."
|
||||||
|
|
||||||
|
# Let user select groups of packages to pre-install.
|
||||||
|
if [ -z "$targetdeployment" ]; then
|
||||||
|
deploydialog || error "User exited."
|
||||||
|
fi
|
||||||
|
|
||||||
# Last chance for user to back out before install.
|
# Last chance for user to back out before install.
|
||||||
preinstallmsg || error "User exited."
|
preinstallmsg || error "User exited."
|
||||||
|
|
||||||
|
@ -199,16 +235,31 @@ sed -i "s/-j2/-j$(nproc)/;s/^#MAKEFLAGS/MAKEFLAGS/" /etc/makepkg.conf
|
||||||
|
|
||||||
manualinstall $aurhelper || error "Failed to install AUR helper."
|
manualinstall $aurhelper || error "Failed to install AUR helper."
|
||||||
|
|
||||||
|
# the command that sets the correct link to gather our package files from
|
||||||
|
# correct link depends on target deployment: desktop, laptop, server,..
|
||||||
|
getpackagegrouplink $targetdeployment
|
||||||
|
|
||||||
|
# append the default packages to whatever custom package csv links were passed in or
|
||||||
|
# only use the custom packages if forced with -F
|
||||||
|
[ ! "$exclusivepkgfiles" ] && pkgfiles="$(curl -Ls $pkggroup | cat ) $pkgfiles"
|
||||||
|
|
||||||
|
tmpfile=/tmp/pkgs.csv
|
||||||
|
# actually gather the individual package installation lines from the various links and files
|
||||||
|
gatherpackages $tmpfile $pkgfiles
|
||||||
|
|
||||||
# The command that does all the installing. Reads the progs.csv file and
|
# The command that does all the installing. Reads the progs.csv file and
|
||||||
# installs each needed program the way required. Be sure to run this only after
|
# installs each needed program the way required. Be sure to run this only after
|
||||||
# the user has been created and has priviledges to run sudo without a password
|
# the user has been created and has privileges to run sudo without a password
|
||||||
# and all build dependencies are installed.
|
# and all build dependencies are installed.
|
||||||
installationloop
|
installationloop $tmpfile
|
||||||
|
|
||||||
# Install the dotfiles in the user's home directory
|
# Install the dotfiles in the user's home directory
|
||||||
putgitrepo "$dotfilesrepo" "/home/$name"
|
putgitrepo "$dotfilesrepo" "/home/$name"
|
||||||
rm "/home/$name/README.md"
|
rm "/home/$name/README.md"
|
||||||
|
|
||||||
|
# Set user login shell to desired shell - usually zsh
|
||||||
|
chsh -s $loginshell $name
|
||||||
|
|
||||||
# Pulseaudio, if/when initially installed, often needs a restart to work immediately.
|
# Pulseaudio, if/when initially installed, often needs a restart to work immediately.
|
||||||
[ -f /usr/bin/pulseaudio ] && resetpulse
|
[ -f /usr/bin/pulseaudio ] && resetpulse
|
||||||
|
|
3
.config/scripts/bootstrap/pkg/base.csv
Normal file
3
.config/scripts/bootstrap/pkg/base.csv
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
,ntfs-3g,"allows accessing NTFS partitions."
|
||||||
|
,dosfstools,"allows your computer to access dos-like filesystems."
|
||||||
|
,topgrade,"tries to be your universal updater running everything in one go."
|
|
5
.config/scripts/bootstrap/pkg/dev.csv
Normal file
5
.config/scripts/bootstrap/pkg/dev.csv
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
,code,"is an open source gui code editor in the style of atom/sublime - but better."
|
||||||
|
,vagrant,"is a development environment provisioning system which easily spins up virtual machines for you."
|
||||||
|
,virtualbox,"is a virtual machine framework which is mainly used by vagrant."
|
||||||
|
,docker,"should need no introduction, but allows you to run everything in a container."
|
||||||
|
,docker-compose,"allows you to run many, many containers much more easily."
|
|
11
.config/scripts/bootstrap/pkg/media.csv
Normal file
11
.config/scripts/bootstrap/pkg/media.csv
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
,pulseaudio,"is the audio system (>inb4 bloat)."
|
||||||
|
,pulseaudio-alsa,"is an audio interface with ALSA."
|
||||||
|
,pulsemixer,"is an intuitive ncurses audio controller."
|
||||||
|
,mopidy,"is an extensible music server written in python."
|
||||||
|
,ncmpcpp,"is a client for the mopidy music server (or, optionally, for mpd)"
|
||||||
|
A,mopidy-spotify,"is a mopidy extension to play music from spotify."
|
||||||
|
A,mopidy-scrobbler,"is a mopidy extension to scrobble to last.fm."
|
||||||
|
A,mopidy-spotify-tunigo,"is a mopidy extension to enable spotify browsing."
|
||||||
|
A,mopidy-podcast,"is a mopidy extension to search and browse podcasts."
|
||||||
|
,mpv,"is the patrician's choice video/gif player."
|
||||||
|
,youtube-dl,"can download any YouTube video (or playlist or channel) when given the link."
|
|
2
.config/scripts/bootstrap/pkg/network.csv
Normal file
2
.config/scripts/bootstrap/pkg/network.csv
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
,networkmanager,"does exactly what it sounds like."
|
||||||
|
,openssh,"allows using ssh connections to connect to others or be connected to."
|
|
8
.config/scripts/bootstrap/pkg/shell.csv
Normal file
8
.config/scripts/bootstrap/pkg/shell.csv
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
,zsh,"is a shell alternative to bash."
|
||||||
|
,tmux,"is a terminal multiplexer and the dropdown window in LARBS."
|
||||||
|
,neovim,"a tidier vim with some useful features"
|
||||||
|
,ranger,"is an extensive terminal file manager that everyone likes."
|
||||||
|
,fzf,"is a fuzzy finder tool."
|
||||||
|
,unrar,"extracts rar's."
|
||||||
|
,unzip,"unzips zips."
|
||||||
|
,atool,"manages and gives information about archives."
|
|
6
.config/scripts/bootstrap/pkg/testing.csv
Normal file
6
.config/scripts/bootstrap/pkg/testing.csv
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
#TAG,NAME IN REPO (or git url),PURPOSE (should be a verb phrase to sound right while installing)
|
||||||
|
A,enpass-bin,"is a cross-platform personal password manager with gui."
|
||||||
|
,gtk3,"is a gui toolkit, necessary for enpass-bin to work. (enpass forgets to install it)"
|
||||||
|
,compton,"is a compositor for X that works well with i3."
|
||||||
|
A,flashfocus,"is a simple toll that flashes any window which gains focus."
|
||||||
|
,feh,"is a simple image viewer. Unfortunately it does not play well with tiled windows."
|
|
14
.config/scripts/bootstrap/pkg/x.csv
Normal file
14
.config/scripts/bootstrap/pkg/x.csv
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
,xorg-server,"is the graphical server."
|
||||||
|
,xorg-xinit,"starts the graphical server."
|
||||||
|
,xorg-xauth,"manages X authentication settings."
|
||||||
|
,xclip,"allows for copying and pasting from the command line."
|
||||||
|
,xdotool,"provides window action utilities on the command line."
|
||||||
|
,xcape,"allows using keys for different things whether pressed on their own or with others. For example, map capslock to escape."
|
||||||
|
,i3-gaps,"is the main graphical user interface and window manager."
|
||||||
|
,i3blocks,"is the status bar block provider for i3."
|
||||||
|
,i3status,"is the status bar for i3."
|
||||||
|
,i3lock,"is the i3 screen lock provider."
|
||||||
|
A,j4-dmenu-desktop,"is a faster dmenu replacement, the application launcher of the i3 suite."
|
||||||
|
A,nerd-fonts-fira-code,"is the mono-space font of choice, patched with embedded icon symbols."
|
||||||
|
,alacritty,"is an efficient, unicode compatible terminal emulator."
|
||||||
|
,qutebrowser,"is a keyboard focused browser with vim-keys enabled."
|
|
|
@ -50,13 +50,11 @@ set -ga terminal-overrides '*:Ss=\E[%p1%d q:Se=\E[ q'
|
||||||
#run-shell ~/.tmux-plugins/resurrect/resurrect.tmux
|
#run-shell ~/.tmux-plugins/resurrect/resurrect.tmux
|
||||||
set -g @plugin 'tmux-plugins/tpm'
|
set -g @plugin 'tmux-plugins/tpm'
|
||||||
set -g @plugin 'tmux-plugins/tmux-sensible'
|
set -g @plugin 'tmux-plugins/tmux-sensible'
|
||||||
# Recently removed due to causing too many incompatibilities with how I want it set up
|
|
||||||
#set -g @plugin 'tmux-plugins/tmux-pain-control'
|
|
||||||
set -g @plugin 'tmux-plugins/tmux-yank'
|
set -g @plugin 'tmux-plugins/tmux-yank'
|
||||||
set -g @plugin 'tmux-plugins/tmux-prefix-highlight'
|
set -g @plugin 'tmux-plugins/tmux-prefix-highlight'
|
||||||
set -g @plugin 'Morantron/tmux-fingers'
|
set -g @plugin 'Morantron/tmux-fingers'
|
||||||
|
|
||||||
run -b "${TMUX_PLUGIN_MANAGER_PATH}/tpm/tpm"
|
run "${TMUX_PLUGIN_MANAGER_PATH}/tpm/tpm"
|
||||||
|
|
||||||
#####################
|
#####################
|
||||||
## 3. KEYBINDINGS ##
|
## 3. KEYBINDINGS ##
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# enables git management through dotfiles command
|
# enables git management through dot command
|
||||||
alias dotfiles='/usr/bin/git --git-dir=/home/marty/.dotfiles/ --work-tree=/home/marty'
|
alias dot='/usr/bin/git --git-dir=/home/marty/.dotfiles/ --work-tree=/home/marty'
|
||||||
|
|
||||||
# The following commands are run on your git repo if you installed through the script
|
# The following commands are run on your git repo if you installed through the script
|
||||||
# You can invoke them manually, but it's not recommended to keep them active in here.
|
# You can invoke them manually, but it's not recommended to keep them active in here.
|
||||||
|
@ -16,8 +16,8 @@ alias dotfiles='/usr/bin/git --git-dir=/home/marty/.dotfiles/ --work-tree=/home/
|
||||||
# Read more: https://stackoverflow.com/questions/4308610/how-to-ignore-certain-files-in-git
|
# Read more: https://stackoverflow.com/questions/4308610/how-to-ignore-certain-files-in-git
|
||||||
# and: https://stackoverflow.com/questions/653454/how-do-you-make-git-ignore-files-without-using-gitignore
|
# and: https://stackoverflow.com/questions/653454/how-do-you-make-git-ignore-files-without-using-gitignore
|
||||||
#
|
#
|
||||||
#dotfiles update-index --no-assume-unchanged README.md
|
#dot update-index --no-assume-unchanged README.md
|
||||||
#dotfiles update-index --assume-unchanged README.md
|
#dot update-index --assume-unchanged README.md
|
||||||
|
|
||||||
## Make git not show untracked files (i.e. ALL other files in your home dir)
|
## Make git not show untracked files (i.e. ALL other files in your home dir)
|
||||||
#dotfiles config status.showUntrackedFiles no
|
#dot config status.showUntrackedFiles no
|
|
@ -1,6 +1,6 @@
|
||||||
# Clone tmux plugin manager if not existing
|
# Clone tmux plugin manager if not existing
|
||||||
if [[ -z "$TPM_PARENT_DIR" ]]; then
|
if [[ -z "$TPM_PARENT_DIR" ]]; then
|
||||||
TPM_PARENT_DIR=${XDG_CONFIG_DIR:-$HOME/.config}/tmux
|
TPM_PARENT_DIR=${XDG_CONFIG_HOME:-$HOME/.config}/tmux
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ ! -f $TPM_PARENT_DIR/plugins/tpm/tpm ]]; then
|
if [[ ! -f $TPM_PARENT_DIR/plugins/tpm/tpm ]]; then
|
3
.profile
3
.profile
|
@ -1,5 +1,4 @@
|
||||||
export XDG_CONFIG_DIR="$HOME/.config"
|
export XDG_CONFIG_HOME="$HOME/.config"
|
||||||
export XDG_CONFIG_HOME=$XDG_CONFIG_DIR
|
|
||||||
export XDG_CACHE_HOME="$HOME/.cache"
|
export XDG_CACHE_HOME="$HOME/.cache"
|
||||||
|
|
||||||
export EDITOR=nvim
|
export EDITOR=nvim
|
||||||
|
|
5
.xinitrc
5
.xinitrc
|
@ -48,4 +48,9 @@ setxkbmap -option terminate:ctrl_alt_bksp
|
||||||
# Needs xcape package installed. https://github.com/alols/xcape
|
# Needs xcape package installed. https://github.com/alols/xcape
|
||||||
type xcape >/dev/null 2>&1 && xcape -e 'Control_L=Escape'
|
type xcape >/dev/null 2>&1 && xcape -e 'Control_L=Escape'
|
||||||
|
|
||||||
|
# if compton exists then we can start it as our compositor
|
||||||
|
type compton >/dev/null 2>&1 && compton &
|
||||||
|
# same deal with flashfocus as our active window indicator
|
||||||
|
type flashfocus >/dev/null 2>&1 && flashfocus &
|
||||||
|
|
||||||
type i3 >/dev/null 2>&1 && exec i3
|
type i3 >/dev/null 2>&1 && exec i3
|
||||||
|
|
10
.zshrc
10
.zshrc
|
@ -15,6 +15,8 @@
|
||||||
#
|
#
|
||||||
####
|
####
|
||||||
|
|
||||||
|
autoload zmv
|
||||||
|
|
||||||
## Show debug information
|
## Show debug information
|
||||||
#
|
#
|
||||||
# ZSH_SETUP_SHOW_DEBUG="true"
|
# ZSH_SETUP_SHOW_DEBUG="true"
|
||||||
|
@ -29,7 +31,7 @@ print_dbg() {
|
||||||
# Clone zgen if you haven't already
|
# Clone zgen if you haven't already
|
||||||
check_zgen_installation() {
|
check_zgen_installation() {
|
||||||
if [[ -z "$ZGEN_PARENT_DIR" ]]; then
|
if [[ -z "$ZGEN_PARENT_DIR" ]]; then
|
||||||
ZGEN_PARENT_DIR=${${XDG_CONFIG_DIR}:="$HOME/.config/"}
|
ZGEN_PARENT_DIR=${${XDG_CONFIG_HOME}:="$HOME/.config/"}
|
||||||
ZGEN_DIR="$ZGEN_PARENT_DIR/zgen"
|
ZGEN_DIR="$ZGEN_PARENT_DIR/zgen"
|
||||||
fi
|
fi
|
||||||
if [[ ! -f $ZGEN_DIR/zgen.zsh ]]; then
|
if [[ ! -f $ZGEN_DIR/zgen.zsh ]]; then
|
||||||
|
@ -90,9 +92,9 @@ load_config_files() {
|
||||||
|
|
||||||
# Set ZSH_CONFIG_DIR to default to ~/.config/zsh, or let user override
|
# Set ZSH_CONFIG_DIR to default to ~/.config/zsh, or let user override
|
||||||
# Exit early if no configuration directory has been found
|
# Exit early if no configuration directory has been found
|
||||||
if [ ! -d ${ZSH_CONFIG_DIR:="${XDG_CONFIG_DIR:-$HOME/.config}/zsh"} ]; then
|
if [ ! -d ${ZSH_CONFIG_DIR:="${XDG_CONFIG_HOME:-$HOME/.config}/zsh"} ]; then
|
||||||
# If the user explicitly overrode the path give him an error
|
# If the user explicitly overrode the path give him an error
|
||||||
if [ ! $ZSH_CONFIG_DIR = "${XDG_CONFIG_DIR:-$HOME/.config/}/zsh" ]; then
|
if [ ! $ZSH_CONFIG_DIR = "${XDG_CONFIG_HOME:-$HOME/.config/}/zsh" ]; then
|
||||||
printf "\$ZSH_CONFIG_DIR=$ZSH_CONFIG_DIR/ does not exist.\n"
|
printf "\$ZSH_CONFIG_DIR=$ZSH_CONFIG_DIR/ does not exist.\n"
|
||||||
fi
|
fi
|
||||||
PS1="$HOME $ "
|
PS1="$HOME $ "
|
||||||
|
@ -144,7 +146,7 @@ load_config_files $ZSH_CONFIG_DIR 3456789
|
||||||
# fi
|
# fi
|
||||||
|
|
||||||
# put personal scripts on the PATH to be callable
|
# put personal scripts on the PATH to be callable
|
||||||
export PATH="$(du $ZSH_CONFIG_DIR/scripts/ | cut -f2 | tr '\n' ':')$PATH"
|
export PATH="$(du $XDG_CONFIG_HOME/scripts/bin | cut -f2 | tr '\n' ':')$PATH"
|
||||||
|
|
||||||
unset ZSH_CONFIG_DIR
|
unset ZSH_CONFIG_DIR
|
||||||
# unset ZGEN_DIR -- Needs to remain set for some plugins to function
|
# unset ZGEN_DIR -- Needs to remain set for some plugins to function
|
||||||
|
|
|
@ -35,6 +35,10 @@ Or, to **only** use these dotfiles two steps are necessary
|
||||||
|
|
||||||
[VSCode & Vue focused dotfiles setup](https://github.com/sobolevn/dotfiles) -- looks interesting, maybe steal some tidbits
|
[VSCode & Vue focused dotfiles setup](https://github.com/sobolevn/dotfiles) -- looks interesting, maybe steal some tidbits
|
||||||
|
|
||||||
|
[Various tidbits and aliases](https://github.com/ahmedelgabri/talks/blob/master/cli-and-git/cli-and-git.md)
|
||||||
|
|
||||||
|
[dotfiles from the author of above link](https://github.com/ahmedelgabri/dotfiles)
|
||||||
|
|
||||||
# Roadmap
|
# Roadmap
|
||||||
|
|
||||||
## Perfectly setting up Arch
|
## Perfectly setting up Arch
|
||||||
|
|
Loading…
Reference in a new issue