Compare commits
No commits in common. "main" and "master" have entirely different histories.
60 changed files with 1707 additions and 1878 deletions
21
.config/Code - OSS/User/settings.json
Normal file
21
.config/Code - OSS/User/settings.json
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
"files.insertFinalNewline": true,
|
||||||
|
"files.trimFinalNewlines": true,
|
||||||
|
"window.menuBarVisibility": "hidden",
|
||||||
|
"git.confirmSync": false,
|
||||||
|
"go.useLanguageServer": true,
|
||||||
|
"debug.console.fontFamily": "Source Code Pro",
|
||||||
|
"terminal.integrated.fontFamily": "Source Code Pro",
|
||||||
|
"git.autofetch": true,
|
||||||
|
"explorer.confirmDragAndDrop": false,
|
||||||
|
"explorer.compactFolders": false,
|
||||||
|
"files.trimTrailingWhitespace": true,
|
||||||
|
"workbench.colorTheme": "Bluloco Light",
|
||||||
|
"workbench.preferredDarkColorTheme": "Bluloco Dark",
|
||||||
|
"workbench.preferredLightColorTheme": "Bluloco Light",
|
||||||
|
"editor.renderWhitespace": "all",
|
||||||
|
"workbench.editor.showTabs": false,
|
||||||
|
"go.toolsManagement.autoUpdate": true,
|
||||||
|
"editor.fontFamily": "JetBrains Mono",
|
||||||
|
"window.zoomLevel": -1
|
||||||
|
}
|
766
.config/alacritty/alacritty.yml
Normal file
766
.config/alacritty/alacritty.yml
Normal file
|
@ -0,0 +1,766 @@
|
||||||
|
# Configuration for Alacritty, the GPU enhanced terminal emulator.
|
||||||
|
|
||||||
|
# Import additional configuration files
|
||||||
|
#
|
||||||
|
# These configuration files will be loaded in order, replacing values in files
|
||||||
|
# loaded earlier with those loaded later in the chain. The file itself will
|
||||||
|
# always be loaded last.
|
||||||
|
#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: 0
|
||||||
|
# lines: 0
|
||||||
|
|
||||||
|
# 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
|
||||||
|
|
||||||
|
# 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:
|
||||||
|
size: 10
|
||||||
|
# Normal (roman) font face
|
||||||
|
normal:
|
||||||
|
# Font family
|
||||||
|
#
|
||||||
|
# Default:
|
||||||
|
# - (macOS) Menlo
|
||||||
|
# - (Linux/BSD) monospace
|
||||||
|
# - (Windows) Consolas
|
||||||
|
family: JetBrains Mono
|
||||||
|
|
||||||
|
# The `style` can be specified to pick a specific face.
|
||||||
|
#style: Regular
|
||||||
|
|
||||||
|
# Bold font face
|
||||||
|
#bold:
|
||||||
|
# Font family
|
||||||
|
#
|
||||||
|
# If the bold family is not specified, it will fall back to the
|
||||||
|
# value specified for the normal font.
|
||||||
|
#family: monospace
|
||||||
|
|
||||||
|
# The `style` can be specified to pick a specific face.
|
||||||
|
#style: Bold
|
||||||
|
|
||||||
|
# Italic font face
|
||||||
|
#italic:
|
||||||
|
# Font family
|
||||||
|
#
|
||||||
|
# If the italic family is not specified, it will fall back to the
|
||||||
|
# value specified for the normal font.
|
||||||
|
#family: monospace
|
||||||
|
|
||||||
|
# The `style` can be specified to pick a specific face.
|
||||||
|
#style: Italic
|
||||||
|
|
||||||
|
# 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: Bold Italic
|
||||||
|
|
||||||
|
# Point size
|
||||||
|
#size: 11.0
|
||||||
|
|
||||||
|
# Offset is the extra space around each character. `offset.y` can be thought
|
||||||
|
# of as modifying the line spacing, and `offset.x` as modifying the letter
|
||||||
|
# spacing.
|
||||||
|
#offset:
|
||||||
|
# x: 0
|
||||||
|
# y: 0
|
||||||
|
|
||||||
|
# Glyph offset determines the locations of the glyphs within their cells with
|
||||||
|
# the default being at the bottom. Increasing `x` moves the glyph to the
|
||||||
|
# right, increasing `y` moves the glyph 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: false
|
||||||
|
|
||||||
|
# Colors (Tomorrow Night)
|
||||||
|
#colors:
|
||||||
|
# Default colors
|
||||||
|
#primary:
|
||||||
|
# background: '#1d1f21'
|
||||||
|
# foreground: '#c5c8c6'
|
||||||
|
|
||||||
|
# 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 and 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 and CellBackground, which reference the
|
||||||
|
# affected cell, or hexadecimal colors like #ff00ff.
|
||||||
|
#vi_mode_cursor:
|
||||||
|
# text: CellBackground
|
||||||
|
# cursor: CellForeground
|
||||||
|
|
||||||
|
# Selection colors
|
||||||
|
#
|
||||||
|
# Colors which should be used to draw the selection area.
|
||||||
|
#
|
||||||
|
# Allowed values are CellForeground and CellBackground, which reference the
|
||||||
|
# affected cell, or hexadecimal colors like #ff00ff.
|
||||||
|
#selection:
|
||||||
|
# text: CellBackground
|
||||||
|
# background: CellForeground
|
||||||
|
|
||||||
|
# Search colors
|
||||||
|
#
|
||||||
|
# Colors used for the search bar and match highlighting.
|
||||||
|
#search:
|
||||||
|
# Allowed values are CellForeground and CellBackground, which reference the
|
||||||
|
# affected cell, or hexadecimal colors like #ff00ff.
|
||||||
|
#matches:
|
||||||
|
# foreground: '#000000'
|
||||||
|
# background: '#ffffff'
|
||||||
|
#focused_match:
|
||||||
|
# foreground: CellBackground
|
||||||
|
# background: CellForeground
|
||||||
|
|
||||||
|
#bar:
|
||||||
|
# background: '#c5c8c6'
|
||||||
|
# foreground: '#1d1f21'
|
||||||
|
|
||||||
|
# Normal colors
|
||||||
|
#normal:
|
||||||
|
# black: '#1d1f21'
|
||||||
|
# red: '#cc6666'
|
||||||
|
# green: '#b5bd68'
|
||||||
|
# yellow: '#f0c674'
|
||||||
|
# blue: '#81a2be'
|
||||||
|
# magenta: '#b294bb'
|
||||||
|
# cyan: '#8abeb7'
|
||||||
|
# white: '#c5c8c6'
|
||||||
|
|
||||||
|
# Bright colors
|
||||||
|
#bright:
|
||||||
|
# black: '#666666'
|
||||||
|
# red: '#d54e53'
|
||||||
|
# green: '#b9ca4a'
|
||||||
|
# yellow: '#e7c547'
|
||||||
|
# blue: '#7aa6da'
|
||||||
|
# magenta: '#c397d8'
|
||||||
|
# cyan: '#70c0b1'
|
||||||
|
# white: '#eaeaea'
|
||||||
|
|
||||||
|
# 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: []
|
||||||
|
|
||||||
|
# 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
|
||||||
|
|
||||||
|
# Background opacity
|
||||||
|
#
|
||||||
|
# Window opacity as a floating point number from `0.0` to `1.0`.
|
||||||
|
# The value `0.0` is completely transparent and `1.0` is opaque.
|
||||||
|
#background_opacity: 1.0
|
||||||
|
|
||||||
|
#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
|
||||||
|
#
|
||||||
|
# Values for `style`:
|
||||||
|
# - ▇ Block
|
||||||
|
# - _ Underline
|
||||||
|
# - | Beam
|
||||||
|
#style: Block
|
||||||
|
|
||||||
|
# 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
|
||||||
|
|
||||||
|
# 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
|
||||||
|
|
||||||
|
# WinPTY backend (Windows only)
|
||||||
|
#
|
||||||
|
# Alacritty defaults to using the newer ConPTY backend if it is available,
|
||||||
|
# since it resolves a lot of bugs and is quite a bit faster. If it is not
|
||||||
|
# available, the WinPTY backend will be used instead.
|
||||||
|
#
|
||||||
|
# Setting this option to `true` makes Alacritty use the legacy WinPTY backend,
|
||||||
|
# even if the ConPTY backend is available.
|
||||||
|
#winpty_backend: false
|
||||||
|
|
||||||
|
# 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
|
||||||
|
|
||||||
|
#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 `launcher: None`, URL launching will be disabled completely.
|
||||||
|
#
|
||||||
|
# Default:
|
||||||
|
# - (macOS) open
|
||||||
|
# - (Linux/BSD) xdg-open
|
||||||
|
# - (Windows) explorer
|
||||||
|
#launcher:
|
||||||
|
# program: xdg-open
|
||||||
|
# args: []
|
||||||
|
|
||||||
|
# URL modifiers
|
||||||
|
#
|
||||||
|
# These are the modifiers that need to be held down for opening URLs when
|
||||||
|
# clicking on them. The available modifiers are documented in the key
|
||||||
|
# binding section.
|
||||||
|
#modifiers: None
|
||||||
|
|
||||||
|
# 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)
|
||||||
|
#
|
||||||
|
# And optionally:
|
||||||
|
#
|
||||||
|
# - `mods` (see key bindings)
|
||||||
|
#mouse_bindings:
|
||||||
|
# - { mouse: Middle, action: PasteSelection }
|
||||||
|
|
||||||
|
# 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
|
||||||
|
# Open URLs at the cursor location with the launcher configured in
|
||||||
|
# `url.launcher`.
|
||||||
|
# - 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.
|
||||||
|
#
|
||||||
|
# - 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
|
||||||
|
# - 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, 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: Vi, action: ScrollToBottom }
|
||||||
|
#- { key: Space, mods: Shift|Control, action: ToggleViMode }
|
||||||
|
#- { key: Escape, mode: Vi, action: ClearSelection }
|
||||||
|
#- { key: I, mode: Vi, action: ScrollToBottom }
|
||||||
|
#- { key: I, mode: Vi, action: ToggleViMode }
|
||||||
|
#- { key: C, mods: Control, mode: Vi, action: ToggleViMode }
|
||||||
|
#- { key: Y, mods: Control, mode: Vi, action: ScrollLineUp }
|
||||||
|
#- { key: E, mods: Control, mode: Vi, action: ScrollLineDown }
|
||||||
|
#- { key: G, mode: Vi, action: ScrollToTop }
|
||||||
|
#- { key: G, mods: Shift, mode: Vi, action: ScrollToBottom }
|
||||||
|
#- { key: B, mods: Control, mode: Vi, action: ScrollPageUp }
|
||||||
|
#- { key: F, mods: Control, mode: Vi, action: ScrollPageDown }
|
||||||
|
#- { key: U, mods: Control, mode: Vi, action: ScrollHalfPageUp }
|
||||||
|
#- { key: D, mods: Control, mode: Vi, action: ScrollHalfPageDown }
|
||||||
|
#- { key: Y, mode: Vi, action: Copy }
|
||||||
|
#- { key: Y, mode: Vi, action: ClearSelection }
|
||||||
|
#- { key: Copy, mode: Vi, action: ClearSelection }
|
||||||
|
#- { key: V, mode: Vi, action: ToggleNormalSelection }
|
||||||
|
#- { key: V, mods: Shift, mode: Vi, action: ToggleLineSelection }
|
||||||
|
#- { key: V, mods: Control, mode: Vi, action: ToggleBlockSelection }
|
||||||
|
#- { key: V, mods: Alt, mode: Vi, action: ToggleSemanticSelection }
|
||||||
|
#- { key: Return, mode: Vi, action: Open }
|
||||||
|
#- { key: K, mode: Vi, action: Up }
|
||||||
|
#- { key: J, mode: Vi, action: Down }
|
||||||
|
#- { key: H, mode: Vi, action: Left }
|
||||||
|
#- { key: L, mode: Vi, action: Right }
|
||||||
|
#- { key: Up, mode: Vi, action: Up }
|
||||||
|
#- { key: Down, mode: Vi, action: Down }
|
||||||
|
#- { key: Left, mode: Vi, action: Left }
|
||||||
|
#- { key: Right, mode: Vi, action: Right }
|
||||||
|
#- { key: Key0, mode: Vi, action: First }
|
||||||
|
#- { key: Key4, mods: Shift, mode: Vi, action: Last }
|
||||||
|
#- { key: Key6, mods: Shift, mode: Vi, action: FirstOccupied }
|
||||||
|
#- { key: H, mods: Shift, mode: Vi, action: High }
|
||||||
|
#- { key: M, mods: Shift, mode: Vi, action: Middle }
|
||||||
|
#- { key: L, mods: Shift, mode: Vi, action: Low }
|
||||||
|
#- { key: B, mode: Vi, action: SemanticLeft }
|
||||||
|
#- { key: W, mode: Vi, action: SemanticRight }
|
||||||
|
#- { key: E, mode: Vi, action: SemanticRightEnd }
|
||||||
|
#- { key: B, mods: Shift, mode: Vi, action: WordLeft }
|
||||||
|
#- { key: W, mods: Shift, mode: Vi, action: WordRight }
|
||||||
|
#- { key: E, mods: Shift, mode: Vi, action: WordRightEnd }
|
||||||
|
#- { key: Key5, mods: Shift, mode: Vi, action: Bracket }
|
||||||
|
#- { key: Slash, mode: Vi, action: SearchForward }
|
||||||
|
#- { key: Slash, mods: Shift, mode: Vi, action: SearchBackward }
|
||||||
|
#- { key: N, mode: Vi, action: SearchNext }
|
||||||
|
#- { key: N, mods: Shift, mode: Vi, action: SearchPrevious }
|
||||||
|
|
||||||
|
# (Windows, Linux, and BSD only)
|
||||||
|
#- { key: V, mods: Control|Shift, action: Paste }
|
||||||
|
#- { key: C, mods: Control|Shift, action: Copy }
|
||||||
|
#- { key: F, mods: Control|Shift, action: SearchForward }
|
||||||
|
#- { key: B, mods: Control|Shift, action: SearchBackward }
|
||||||
|
#- { key: C, mods: Control|Shift, mode: Vi, 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, chars: "\x0c" }
|
||||||
|
#- { 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: K, mods: Command, action: ClearHistory }
|
||||||
|
#- { key: V, mods: Command, action: Paste }
|
||||||
|
#- { key: C, mods: Command, action: Copy }
|
||||||
|
#- { key: C, mods: Command, mode: Vi, action: ClearSelection }
|
||||||
|
#- { key: H, mods: Command, action: Hide }
|
||||||
|
#- { 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, action: SearchForward }
|
||||||
|
#- { key: B, mods: Command, 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`:
|
||||||
|
# - None
|
||||||
|
# - Error
|
||||||
|
# - Warn
|
||||||
|
# - Info
|
||||||
|
# - Debug
|
||||||
|
# - Trace
|
||||||
|
#log_level: Warn
|
||||||
|
|
||||||
|
# Print all received window events.
|
||||||
|
#print_events: false
|
2
.config/chromium-flags.conf
Normal file
2
.config/chromium-flags.conf
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
--force-device-scale-factor=2
|
||||||
|
--ozone-platform-hint=auto
|
20
.config/mako/config
Normal file
20
.config/mako/config
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
font=Terminus 10
|
||||||
|
icons=1
|
||||||
|
max-icon-size=16
|
||||||
|
default-timeout=5000
|
||||||
|
|
||||||
|
[urgency=low]
|
||||||
|
text-color=#888888ff
|
||||||
|
background-color=#222222ff
|
||||||
|
|
||||||
|
[urgency=normal]
|
||||||
|
text-color=#ffffffff
|
||||||
|
background-color=#285577ff
|
||||||
|
|
||||||
|
[urgency=high]
|
||||||
|
ignore-timeout=1
|
||||||
|
default-timeout=0
|
||||||
|
text-color=#ffffffff
|
||||||
|
background-color=#900000ff
|
||||||
|
border-color=#ff0000ff
|
||||||
|
|
BIN
.config/mpv/scripts/mpris-0.5.so
Normal file
BIN
.config/mpv/scripts/mpris-0.5.so
Normal file
Binary file not shown.
6
.config/nvim/coc-settings.json
Normal file
6
.config/nvim/coc-settings.json
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"python.linting.enabled": true,
|
||||||
|
"python.linting.flake8Enabled": true,
|
||||||
|
"python.linting.pylintEnabled": false,
|
||||||
|
"python.formatting.provider": "black"
|
||||||
|
}
|
|
@ -1,26 +0,0 @@
|
||||||
-- Setup leader key
|
|
||||||
vim.g.mapleader = " "
|
|
||||||
|
|
||||||
-- Lazy: Ensure lazy is installed and present
|
|
||||||
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
|
|
||||||
if not vim.loop.fs_stat(lazypath) then
|
|
||||||
vim.fn.system({
|
|
||||||
"git",
|
|
||||||
"clone",
|
|
||||||
"--filter=blob:none",
|
|
||||||
"https://github.com/folke/lazy.nvim.git",
|
|
||||||
"--branch=stable", -- latest stable release
|
|
||||||
lazypath,
|
|
||||||
})
|
|
||||||
end
|
|
||||||
vim.opt.rtp:prepend(lazypath)
|
|
||||||
|
|
||||||
-- Load plugin configuration and init Lazy
|
|
||||||
require("lazy").setup("plugins", {
|
|
||||||
install = {
|
|
||||||
missing = true, -- Install missing plugins on startup
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
-- Keybinds
|
|
||||||
require("keybinds")
|
|
60
.config/nvim/init.vim
Normal file
60
.config/nvim/init.vim
Normal file
|
@ -0,0 +1,60 @@
|
||||||
|
"
|
||||||
|
" vim-plug
|
||||||
|
"
|
||||||
|
call plug#begin(stdpath('data') . '/plugged')
|
||||||
|
|
||||||
|
Plug 'ctrlpvim/ctrlp.vim'
|
||||||
|
|
||||||
|
" Code analysis and autocompletion
|
||||||
|
Plug 'neoclide/coc.nvim', {'branch': 'release'}
|
||||||
|
|
||||||
|
" Git
|
||||||
|
Plug 'airblade/vim-gitgutter'
|
||||||
|
|
||||||
|
" Undo tree
|
||||||
|
Plug 'mbbill/undotree'
|
||||||
|
|
||||||
|
call plug#end()
|
||||||
|
|
||||||
|
"
|
||||||
|
" General configuration
|
||||||
|
"
|
||||||
|
set title " Shows file name in title
|
||||||
|
set number " Shows line numbers
|
||||||
|
set nowrap " Do not wrap lines
|
||||||
|
|
||||||
|
set hidden " Allow buffer switch without saving
|
||||||
|
set ignorecase " Allows case insensitive searches
|
||||||
|
"set smartcase " Case sensitive searches if uppercase is used
|
||||||
|
|
||||||
|
set spelllang=en " Check language spelling in english
|
||||||
|
|
||||||
|
"
|
||||||
|
" Theming
|
||||||
|
"
|
||||||
|
colorscheme zellner
|
||||||
|
|
||||||
|
"
|
||||||
|
" CtrlP
|
||||||
|
"
|
||||||
|
map <C-S-P> <Esc>:CtrlPBuffer<CR>
|
||||||
|
|
||||||
|
"
|
||||||
|
" Deoplete
|
||||||
|
"
|
||||||
|
let g:deoplete#enable_at_startup = 1
|
||||||
|
|
||||||
|
" - Autocomplete with <Tab>
|
||||||
|
inoremap <expr><TAB> pumvisible() ? "\<C-n>" : "\<TAB>"
|
||||||
|
|
||||||
|
"
|
||||||
|
" UndoTree
|
||||||
|
"
|
||||||
|
map <C-S-u> <Esc>:UndotreeToggle<CR>
|
||||||
|
|
||||||
|
"
|
||||||
|
" Golang
|
||||||
|
"
|
||||||
|
" Auto imports on save/format
|
||||||
|
autocmd BufWritePre *.go :silent call CocAction('runCommand', 'editor.action.organizeImport')
|
||||||
|
|
|
@ -1,9 +0,0 @@
|
||||||
{
|
|
||||||
"lazy.nvim": { "branch": "main", "commit": "aedcd79811d491b60d0a6577a9c1701063c2a609" },
|
|
||||||
"mason.nvim": { "branch": "main", "commit": "c43eeb5614a09dc17c03a7fb49de2e05de203924" },
|
|
||||||
"none-ls.nvim": { "branch": "main", "commit": "c10b7be7751aee820a02f2d1fafe76bc316fe223" },
|
|
||||||
"nvim-lspconfig": { "branch": "master", "commit": "d12140c5687a1186b95b3f42dbc6cc769df0cf0d" },
|
|
||||||
"nvim-treesitter": { "branch": "master", "commit": "e7ea07e42c478cb466cf96124693b447add84011" },
|
|
||||||
"plenary.nvim": { "branch": "master", "commit": "4f71c0c4a196ceb656c824a70792f3df3ce6bb6d" },
|
|
||||||
"telescope.nvim": { "branch": "master", "commit": "d90956833d7c27e73c621a61f20b29fdb7122709" }
|
|
||||||
}
|
|
|
@ -1,17 +0,0 @@
|
||||||
local Util = require("lazy.util")
|
|
||||||
|
|
||||||
---@class PluginLspOpts
|
|
||||||
local opts = {
|
|
||||||
diagnostics = {
|
|
||||||
underline = true,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
local configFn = function(_, opts)
|
|
||||||
Util.format.register(Util.lsp.formatter())
|
|
||||||
end
|
|
||||||
|
|
||||||
return {
|
|
||||||
opts = opts,
|
|
||||||
config = configFn,
|
|
||||||
}
|
|
|
@ -1,12 +0,0 @@
|
||||||
config = function()
|
|
||||||
local configs = require("nvim-treesitter.configs")
|
|
||||||
|
|
||||||
configs.setup({
|
|
||||||
ensure_installed = { "lua", "go" },
|
|
||||||
sync_install = false,
|
|
||||||
highlight = { enable = true },
|
|
||||||
indent = { enable = true },
|
|
||||||
})
|
|
||||||
end
|
|
||||||
|
|
||||||
return config
|
|
|
@ -1,3 +0,0 @@
|
||||||
-- Telescope
|
|
||||||
vim.keymap.set('n', '<Leader>ff', '<cmd>:Telescope find_files<cr>')
|
|
||||||
vim.keymap.set('n', '<Leader>fb', '<cmd>:Telescope buffers<cr>')
|
|
|
@ -1,24 +0,0 @@
|
||||||
return {
|
|
||||||
"neovim/nvim-lspconfig",
|
|
||||||
dependencies = {
|
|
||||||
-- LSP Support
|
|
||||||
{
|
|
||||||
"williamboman/mason.nvim",
|
|
||||||
cmd = "Mason",
|
|
||||||
build = ":MasonUpdate",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
---@class PluginLspOpts
|
|
||||||
opts = {
|
|
||||||
---@type lspconfig.options
|
|
||||||
servers = {
|
|
||||||
lua_ls = {
|
|
||||||
settings = { Lua = { diagnostics = { globals = { "vim" }}}},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
config = function(_, opts)
|
|
||||||
require("mason").setup()
|
|
||||||
end
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,17 +0,0 @@
|
||||||
return {
|
|
||||||
"nvimtools/none-ls.nvim",
|
|
||||||
event = { "BufReadPre", "BufNewFile" },
|
|
||||||
dependencies = { "mason.nvim" },
|
|
||||||
opts = function()
|
|
||||||
local null_ls = require("null-ls")
|
|
||||||
local formatting = null_ls.builtins.formatting
|
|
||||||
local diagnostics = null_ls.builtins.diagnostics
|
|
||||||
local code_actions = null_ls.builtins.code_actions
|
|
||||||
local completion = null_ls.builtins.completion
|
|
||||||
return {
|
|
||||||
sources = {
|
|
||||||
formatting.stylua,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
end,
|
|
||||||
}
|
|
|
@ -1,7 +0,0 @@
|
||||||
return {
|
|
||||||
'nvim-telescope/telescope.nvim',
|
|
||||||
tag = '0.1.5',
|
|
||||||
dependencies = {
|
|
||||||
'nvim-lua/plenary.nvim',
|
|
||||||
},
|
|
||||||
}
|
|
|
@ -1,14 +0,0 @@
|
||||||
return {
|
|
||||||
"nvim-treesitter/nvim-treesitter",
|
|
||||||
build = ":TSUpdate",
|
|
||||||
config = function(_, opts)
|
|
||||||
local configs = require("nvim-treesitter.configs")
|
|
||||||
|
|
||||||
configs.setup({
|
|
||||||
ensure_installed = { "lua", "go" },
|
|
||||||
sync_install = false,
|
|
||||||
highlight = { enable = true },
|
|
||||||
indent = { enable = true },
|
|
||||||
})
|
|
||||||
end
|
|
||||||
}
|
|
|
@ -1,26 +0,0 @@
|
||||||
local plugins = {
|
|
||||||
{
|
|
||||||
'nvim-telescope/telescope.nvim',
|
|
||||||
tag = '0.1.5',
|
|
||||||
dependencies = {
|
|
||||||
'nvim-lua/plenary.nvim',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nvim-treesitter/nvim-treesitter",
|
|
||||||
build = ":TSUpdate",
|
|
||||||
config = require("config.nvim-treesitter"),
|
|
||||||
},
|
|
||||||
-- LSP
|
|
||||||
{
|
|
||||||
"neovim/nvim-lspconfig",
|
|
||||||
opts = require("config.lspconfig").opts,
|
|
||||||
config = require("config.lspconfig").config,
|
|
||||||
},
|
|
||||||
-- Quality of life
|
|
||||||
{
|
|
||||||
"folke/which-key.nvim",
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
return plugins
|
|
52
.config/qutebrowser/config.py
Normal file
52
.config/qutebrowser/config.py
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
from qutebrowser.api import interceptor
|
||||||
|
|
||||||
|
|
||||||
|
# Youtube Ad Blocker
|
||||||
|
# From: https://gist.github.com/Gavinok/f9c310a66576dc00329dd7bef2b122a1
|
||||||
|
|
||||||
|
def filter_youtube_ads(info: interceptor.Request):
|
||||||
|
"""Block the given request if necessary."""
|
||||||
|
url = info.request_url
|
||||||
|
# Video ads
|
||||||
|
if (
|
||||||
|
url.host() == "www.youtube.com"
|
||||||
|
and url.path() == "/get_video_info"
|
||||||
|
and "&adformat=" in url.query()
|
||||||
|
):
|
||||||
|
info.block()
|
||||||
|
|
||||||
|
|
||||||
|
interceptor.register(filter_youtube_ads)
|
||||||
|
|
||||||
|
# Fonts
|
||||||
|
c.fonts.default_family = "JetBrains Mono"
|
||||||
|
|
||||||
|
# Session save/restore
|
||||||
|
c.auto_save.session = True
|
||||||
|
c.auto_save.interval = 15000
|
||||||
|
|
||||||
|
# Search engines
|
||||||
|
c.url.searchengines = {
|
||||||
|
'DEFAULT': 'https://google.com/search?hl=en&q={}',
|
||||||
|
'!a': 'https://www.amazon.es/s?k={}',
|
||||||
|
'!gh': 'https://github.com/search?o=desc&q={}&s=stars',
|
||||||
|
}
|
||||||
|
|
||||||
|
# Default page and new tab
|
||||||
|
c.url.default_page = "https://miniflux.fmartingr.dev"
|
||||||
|
c.url.start_pages = ["https://miniflux.fmartingr.dev"]
|
||||||
|
|
||||||
|
# Keybindings
|
||||||
|
config.bind("1pc", ":spawn --userscript ~/Code/qute-1password/qute_1pass.py --cache-session --auto-submit fill_credentials")
|
||||||
|
config.bind("1pu", ":spawn --userscript ~/Code/qute-1password/qute_1pass.py --cache-session --auto-submit fill_username")
|
||||||
|
config.bind("1pp", ":spawn --userscript ~/Code/qute-1password/qute_1pass.py --cache-session --auto-submit fill_password")
|
||||||
|
config.bind("1po", ":spawn --userscript ~/Code/qute-1password/qute_1pass.py --cache-session --auto-submit fill_totp")
|
||||||
|
|
||||||
|
# QT Configuration
|
||||||
|
# Enables Hardware Acceleration.
|
||||||
|
# ignore-gpu-blacklist should not be needed on all computers though, we may need to
|
||||||
|
# update this configuration once more computers use it.
|
||||||
|
c.qt.args = ["enable-gpu-rasterization", "ignore-gpu-blocklist", "enable-native-gpu-memory-buffers", "num-raster-threads=4"]
|
||||||
|
|
||||||
|
# Load autoconfig
|
||||||
|
config.load_autoconfig()
|
6
.config/qutebrowser/quickmarks
Normal file
6
.config/qutebrowser/quickmarks
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
disc https://discord.com/channels/@me
|
||||||
|
gh https://github.com/
|
||||||
|
yt https://www.youtube.com/
|
||||||
|
tw https://twitter.com/
|
||||||
|
1p https://my.1password.com/signin
|
||||||
|
code https://code.fmartingr.dev/
|
4
.config/rofi/config.rasi
Normal file
4
.config/rofi/config.rasi
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
configuration {
|
||||||
|
font: "Terminus 14";
|
||||||
|
}
|
||||||
|
@theme "/usr/share/rofi/themes/Paper.rasi"
|
227
.config/sway/config
Normal file
227
.config/sway/config
Normal file
|
@ -0,0 +1,227 @@
|
||||||
|
# Default config for sway
|
||||||
|
#
|
||||||
|
# Copy this to ~/.config/sway/config and edit it to your liking.
|
||||||
|
#
|
||||||
|
# Read `man 5 sway` for a complete reference.
|
||||||
|
|
||||||
|
### Variables
|
||||||
|
#
|
||||||
|
# Logo key. Use Mod1 for Alt.
|
||||||
|
set $mod Mod4
|
||||||
|
# Home row direction keys, like vim
|
||||||
|
set $left h
|
||||||
|
set $down j
|
||||||
|
set $up k
|
||||||
|
set $right l
|
||||||
|
# Your preferred terminal emulator
|
||||||
|
set $term alacritty
|
||||||
|
# Your preferred application launcher
|
||||||
|
# Note: pass the final command to swaymsg so that the resulting window can be opened
|
||||||
|
# on the original workspace that the command was run on.
|
||||||
|
#set $menu dmenu_path | dmenu | xargs swaymsg exec --
|
||||||
|
set $menu rofi -show drun
|
||||||
|
|
||||||
|
# Fonts
|
||||||
|
set $font Terminus
|
||||||
|
|
||||||
|
font $font
|
||||||
|
|
||||||
|
### Output configuration
|
||||||
|
#
|
||||||
|
# Default wallpaper (more resolutions are available in /usr/share/backgrounds/sway/)
|
||||||
|
output * bg ~/.wallpaper fill
|
||||||
|
#
|
||||||
|
# Example configuration:
|
||||||
|
#
|
||||||
|
# output HDMI-A-1 resolution 1920x1080 position 1920,0
|
||||||
|
#
|
||||||
|
# You can get the names of your outputs by running: swaymsg -t get_outputs
|
||||||
|
|
||||||
|
### Idle configuration
|
||||||
|
#
|
||||||
|
# Example configuration:
|
||||||
|
#
|
||||||
|
# exec swayidle -w \
|
||||||
|
# timeout 300 'swaylock -f -c 000000' \
|
||||||
|
# timeout 600 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on"' \
|
||||||
|
# before-sleep 'swaylock -f -c 000000'
|
||||||
|
#
|
||||||
|
# This will lock your screen after 300 seconds of inactivity, then turn off
|
||||||
|
# your displays after another 300 seconds, and turn your screens back on when
|
||||||
|
# resumed. It will also lock your screen before your computer goes to sleep.
|
||||||
|
|
||||||
|
### Input configuration
|
||||||
|
#
|
||||||
|
# Example configuration:
|
||||||
|
#
|
||||||
|
# input "2:14:SynPS/2_Synaptics_TouchPad" {
|
||||||
|
# dwt enabled
|
||||||
|
# tap enabled
|
||||||
|
# natural_scroll enabled
|
||||||
|
# middle_emulation enabled
|
||||||
|
# }
|
||||||
|
#
|
||||||
|
# You can get the names of your inputs by running: swaymsg -t get_inputs
|
||||||
|
# Read `man 5 sway-input` for more information about this section.
|
||||||
|
|
||||||
|
### Key bindings
|
||||||
|
#
|
||||||
|
# Basics:
|
||||||
|
#
|
||||||
|
# Start a terminal
|
||||||
|
bindsym $mod+Return exec $term
|
||||||
|
|
||||||
|
# Kill focused window
|
||||||
|
bindsym $mod+Shift+q kill
|
||||||
|
|
||||||
|
# Start your launcher
|
||||||
|
bindsym $mod+d exec $menu
|
||||||
|
|
||||||
|
# Drag floating windows by holding down $mod and left mouse button.
|
||||||
|
# Resize them with right mouse button + $mod.
|
||||||
|
# Despite the name, also works for non-floating windows.
|
||||||
|
# Change normal to inverse to use left mouse button for resizing and right
|
||||||
|
# mouse button for dragging.
|
||||||
|
floating_modifier $mod normal
|
||||||
|
|
||||||
|
# Reload the configuration file
|
||||||
|
bindsym $mod+Shift+c reload
|
||||||
|
|
||||||
|
# Exit sway (logs you out of your Wayland session)
|
||||||
|
# bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -b 'Yes, exit sway' 'swaymsg exit'
|
||||||
|
#
|
||||||
|
# Moving around:
|
||||||
|
#
|
||||||
|
# Move your focus around
|
||||||
|
#bindsym $mod+$left focus left
|
||||||
|
#bindsym $mod+$down focus down
|
||||||
|
#bindsym $mod+$up focus up
|
||||||
|
#bindsym $mod+$right focus right
|
||||||
|
# Or use $mod+[up|down|left|right]
|
||||||
|
bindsym $mod+Left focus left
|
||||||
|
bindsym $mod+Down focus down
|
||||||
|
bindsym $mod+Up focus up
|
||||||
|
bindsym $mod+Right focus right
|
||||||
|
|
||||||
|
# Move the focused window with the same, but add Shift
|
||||||
|
bindsym $mod+Shift+$left move left
|
||||||
|
bindsym $mod+Shift+$down move down
|
||||||
|
bindsym $mod+Shift+$up move up
|
||||||
|
bindsym $mod+Shift+$right move right
|
||||||
|
# Ditto, with arrow keys
|
||||||
|
bindsym $mod+Shift+Left move left
|
||||||
|
bindsym $mod+Shift+Down move down
|
||||||
|
bindsym $mod+Shift+Up move up
|
||||||
|
bindsym $mod+Shift+Right move right
|
||||||
|
#
|
||||||
|
# Workspaces:
|
||||||
|
#
|
||||||
|
# Switch to workspace
|
||||||
|
bindsym $mod+1 workspace number 1
|
||||||
|
bindsym $mod+2 workspace number 2
|
||||||
|
bindsym $mod+3 workspace number 3
|
||||||
|
bindsym $mod+4 workspace number 4
|
||||||
|
bindsym $mod+5 workspace number 5
|
||||||
|
bindsym $mod+6 workspace number 6
|
||||||
|
bindsym $mod+7 workspace number 7
|
||||||
|
bindsym $mod+8 workspace number 8
|
||||||
|
bindsym $mod+9 workspace number 9
|
||||||
|
bindsym $mod+0 workspace number 10
|
||||||
|
# Move focused container to workspace
|
||||||
|
bindsym $mod+Shift+1 move container to workspace number 1
|
||||||
|
bindsym $mod+Shift+2 move container to workspace number 2
|
||||||
|
bindsym $mod+Shift+3 move container to workspace number 3
|
||||||
|
bindsym $mod+Shift+4 move container to workspace number 4
|
||||||
|
bindsym $mod+Shift+5 move container to workspace number 5
|
||||||
|
bindsym $mod+Shift+6 move container to workspace number 6
|
||||||
|
bindsym $mod+Shift+7 move container to workspace number 7
|
||||||
|
bindsym $mod+Shift+8 move container to workspace number 8
|
||||||
|
bindsym $mod+Shift+9 move container to workspace number 9
|
||||||
|
bindsym $mod+Shift+0 move container to workspace number 10
|
||||||
|
# Note: workspaces can have any name you want, not just numbers.
|
||||||
|
# We just use 1-10 as the default.
|
||||||
|
#
|
||||||
|
# Layout stuff:
|
||||||
|
#
|
||||||
|
# You can "split" the current object of your focus with
|
||||||
|
# $mod+b or $mod+v, for horizontal and vertical splits
|
||||||
|
# respectively.
|
||||||
|
bindsym $mod+b splith
|
||||||
|
bindsym $mod+v splitv
|
||||||
|
|
||||||
|
# Switch the current container between different layout styles
|
||||||
|
bindsym $mod+shift+s layout stacking
|
||||||
|
bindsym $mod+shift+w layout tabbed
|
||||||
|
bindsym $mod+shift+e layout toggle split
|
||||||
|
|
||||||
|
# Make the current focus fullscreen
|
||||||
|
bindsym $mod+f fullscreen
|
||||||
|
|
||||||
|
# Toggle the current focus between tiling and floating mode
|
||||||
|
bindsym $mod+Shift+space floating toggle
|
||||||
|
|
||||||
|
# Swap focus between the tiling area and the floating area
|
||||||
|
bindsym $mod+space focus mode_toggle
|
||||||
|
|
||||||
|
# Move focus to the parent container
|
||||||
|
bindsym $mod+a focus parent
|
||||||
|
|
||||||
|
#
|
||||||
|
# Scratchpad:
|
||||||
|
#
|
||||||
|
# Sway has a "scratchpad", which is a bag of holding for windows.
|
||||||
|
# You can send windows there and get them back later.
|
||||||
|
|
||||||
|
# Move the currently focused window to the scratchpad
|
||||||
|
bindsym $mod+Shift+minus move scratchpad
|
||||||
|
|
||||||
|
# Show the next scratchpad window or hide the focused scratchpad window.
|
||||||
|
# If there are multiple scratchpad windows, this command cycles through them.
|
||||||
|
bindsym $mod+minus scratchpad show
|
||||||
|
#
|
||||||
|
# Resizing containers:
|
||||||
|
#
|
||||||
|
mode "resize" {
|
||||||
|
# left will shrink the containers width
|
||||||
|
# right will grow the containers width
|
||||||
|
# up will shrink the containers height
|
||||||
|
# down will grow the containers height
|
||||||
|
bindsym $left resize shrink width 10px
|
||||||
|
bindsym $down resize grow height 10px
|
||||||
|
bindsym $up resize shrink height 10px
|
||||||
|
bindsym $right resize grow width 10px
|
||||||
|
|
||||||
|
# Ditto, with arrow keys
|
||||||
|
bindsym Left resize shrink width 10px
|
||||||
|
bindsym Down resize grow height 10px
|
||||||
|
bindsym Up resize shrink height 10px
|
||||||
|
bindsym Right resize grow width 10px
|
||||||
|
|
||||||
|
# Return to default mode
|
||||||
|
bindsym Return mode "default"
|
||||||
|
bindsym Escape mode "default"
|
||||||
|
}
|
||||||
|
bindsym $mod+r mode "resize"
|
||||||
|
|
||||||
|
#
|
||||||
|
# Status Bar:
|
||||||
|
#
|
||||||
|
# Read `man 5 sway-bar` for more information about this section.
|
||||||
|
bar {
|
||||||
|
position top
|
||||||
|
|
||||||
|
font $font
|
||||||
|
|
||||||
|
# When the status_command prints a new line to stdout, swaybar updates.
|
||||||
|
# The default just shows the current date and time.
|
||||||
|
#
|
||||||
|
#status_command while date +'%Y-%m-%d %l:%M:%S %p'; do sleep 1; done
|
||||||
|
status_command ~/.config/sway/swaybar.sh
|
||||||
|
colors {
|
||||||
|
statusline #ffffff
|
||||||
|
background #323232
|
||||||
|
inactive_workspace #32323200 #32323200 #5c5c5c
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
include ~/.config/sway/config.d/*.config
|
12
.config/sway/config.d/10-style.config
Normal file
12
.config/sway/config.d/10-style.config
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
#
|
||||||
|
# Gaps:
|
||||||
|
#
|
||||||
|
gaps inner 8
|
||||||
|
smart_gaps on
|
||||||
|
|
||||||
|
#
|
||||||
|
# Window decorations:
|
||||||
|
#
|
||||||
|
default_border pixel 2
|
||||||
|
hide_edge_borders smart
|
||||||
|
|
45
.config/sway/config.d/20-keybinds.config
Normal file
45
.config/sway/config.d/20-keybinds.config
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
set $locker ~/.dotfiles/bin/lock.sh
|
||||||
|
set $fileManager caja
|
||||||
|
|
||||||
|
# Notifications:
|
||||||
|
bindsym ctrl+space exec makoctl dismiss
|
||||||
|
bindsym ctrl+shift+space exec makoctl dismiss --all
|
||||||
|
|
||||||
|
# Screenshot
|
||||||
|
bindsym alt+shift+4 exec ~/.dotfiles/bin/screenshot.sh
|
||||||
|
|
||||||
|
# File manager
|
||||||
|
bindsym $mod+e exec $fileManager
|
||||||
|
|
||||||
|
# Multimedia Keys
|
||||||
|
# Requires: playerctl
|
||||||
|
bindsym XF86AudioRaiseVolume exec amixer -D pulse sset Master 5%+
|
||||||
|
bindsym XF86AudioLowerVolume exec amixer -D pulse sset Master 5%-
|
||||||
|
bindsym XF86AudioMute exec amixer sset Master toggle
|
||||||
|
bindsym XF86AudioPlay exec playerctl play-pause
|
||||||
|
bindsym XF86AudioNext exec playerctl next
|
||||||
|
bindsym XF86AudioPrev exec playerctl previous
|
||||||
|
|
||||||
|
# Screen brightness
|
||||||
|
bindsym XF86MonBrightnessUp exec brightnessctl set +5%
|
||||||
|
bindsym XF86MonBrightnessDown exec brightnessctl set 5%-
|
||||||
|
|
||||||
|
# Lock
|
||||||
|
bindsym $mod+l exec $locker
|
||||||
|
|
||||||
|
# Sticky windows
|
||||||
|
bindsym $mod+j sticky toggle
|
||||||
|
|
||||||
|
# System menu
|
||||||
|
set $mode_system System (l) lock, (e) logout, (s) suspend, (h) hibernate, (r) reboot, (Shift+s) shutdown
|
||||||
|
mode "$mode_system" {
|
||||||
|
bindsym l exec --no-startup-id $locker, mode "default"
|
||||||
|
bindsym e exec --no-startup-id swaymsg exit, mode "default"
|
||||||
|
bindsym s exec --no-startup-id $locker && systemctl suspend, mode "default"
|
||||||
|
bindsym h exec --no-startup-id $locker && systemctl hibernate, mode "default"
|
||||||
|
bindsym r exec --no-startup-id systemctl reboot, mode "default"
|
||||||
|
bindsym Shift+s exec --no-startup-id systemctl poweroff -i, mode "default"
|
||||||
|
bindsym Return mode "default"
|
||||||
|
bindsym Escape mode "default"
|
||||||
|
}
|
||||||
|
bindsym $mod+F12 mode "$mode_system"
|
43
.config/sway/swaybar.sh
Executable file
43
.config/sway/swaybar.sh
Executable file
|
@ -0,0 +1,43 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# vim: ts=4
|
||||||
|
|
||||||
|
source $HOME/.secrets/finnhub
|
||||||
|
|
||||||
|
function getPowerValue() {
|
||||||
|
POWER=$(cat /sys/class/power_supply/BAT0/capacity)%
|
||||||
|
echo $POWER
|
||||||
|
}
|
||||||
|
|
||||||
|
function getPowerStatus() {
|
||||||
|
POWERSTATUS=$(cat /sys/class/power_supply/BAT0/status)
|
||||||
|
if [ "$POWERSTATUS" == "Charging" ]; then
|
||||||
|
echo "+"
|
||||||
|
elif [ "$POWERSTATUS" == "Discharging" ]; then
|
||||||
|
echo "-"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function getDate() {
|
||||||
|
echo $(date +'%Y-%m-%d %H:%M')
|
||||||
|
}
|
||||||
|
|
||||||
|
function getVolume() {
|
||||||
|
echo $(amixer get Master | grep 'Left:' | awk -F"[][]" '{ print $2 }')
|
||||||
|
}
|
||||||
|
|
||||||
|
function getStock() {
|
||||||
|
curl -s "https://finnhub.io/api/v1/quote?symbol=$1&token=$SECRET_FINNHUB_TOKEN" | jq ".c"
|
||||||
|
}
|
||||||
|
|
||||||
|
function getNextEvent() {
|
||||||
|
khal list now -df "" | grep -v "^ " | head -n 1
|
||||||
|
}
|
||||||
|
|
||||||
|
function getCurrentSong() {
|
||||||
|
echo $(playerctl metadata artist) - $(playerctl metadata title)
|
||||||
|
}
|
||||||
|
|
||||||
|
while [ True ]; do
|
||||||
|
echo "$(getCurrentSong) | $(getNextEvent) | $(getVolume) | $(getPowerValue)$(getPowerStatus) | $(getDate)"
|
||||||
|
sleep 30
|
||||||
|
done
|
|
@ -1,5 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
for f in `ls $HOME/.dotfiles/bootstrap/*.sh`; do
|
|
||||||
bash $f
|
|
||||||
done
|
|
|
@ -1,75 +0,0 @@
|
||||||
# CLI
|
|
||||||
brew "act"
|
|
||||||
brew "ansible"
|
|
||||||
brew "ffmpeg"
|
|
||||||
brew "gh"
|
|
||||||
brew "go"
|
|
||||||
brew "golangci-lint"
|
|
||||||
brew "goreleaser/tap/goreleaser"
|
|
||||||
brew "grep" # Most recent grep
|
|
||||||
brew "httpie"
|
|
||||||
brew "jq"
|
|
||||||
brew "mas"
|
|
||||||
brew "mosh"
|
|
||||||
brew "ncdu"
|
|
||||||
brew "nodejs"
|
|
||||||
brew "nvim"
|
|
||||||
brew "pinentry-mac"
|
|
||||||
brew "pipx"
|
|
||||||
brew "tmux"
|
|
||||||
brew "watch"
|
|
||||||
brew "yadm"
|
|
||||||
|
|
||||||
# Cask
|
|
||||||
cask "arc"
|
|
||||||
cask "1password"
|
|
||||||
# cask "adobe-creative-cloud" # Just for testing Photoshop things
|
|
||||||
cask "appcleaner"
|
|
||||||
cask "caffeine"
|
|
||||||
cask "dash"
|
|
||||||
cask "element"
|
|
||||||
cask "fantastical"
|
|
||||||
# cask "firefox"
|
|
||||||
cask "gpg-suite"
|
|
||||||
cask "hammerspoon"
|
|
||||||
# cask "iterm2" # Downloaded beta version manually
|
|
||||||
cask "notion"
|
|
||||||
# cask "obsidian"
|
|
||||||
cask "orbstack"
|
|
||||||
cask "alfred"
|
|
||||||
cask "secretive"
|
|
||||||
cask "steam"
|
|
||||||
cask "synology-drive"
|
|
||||||
cask "tableplus"
|
|
||||||
cask "telegram"
|
|
||||||
cask "visual-studio-code"
|
|
||||||
cask "vlc"
|
|
||||||
|
|
||||||
# tap "guumaster/tap" # Wasn't using it
|
|
||||||
# brew "hostctl"
|
|
||||||
|
|
||||||
tap "homebrew/cask-versions"
|
|
||||||
cask "iterm2-beta"
|
|
||||||
|
|
||||||
# Fonts
|
|
||||||
tap "homebrew/cask-fonts"
|
|
||||||
cask "font-jetbrains-mono"
|
|
||||||
|
|
||||||
# Bun
|
|
||||||
tap "oven-sh/bun"
|
|
||||||
brew "bun"
|
|
||||||
|
|
||||||
# AI
|
|
||||||
cask "diffusionbee"
|
|
||||||
|
|
||||||
# Bandsnatch (download from bandcamp)
|
|
||||||
brew "ovyerus/tap/bandsnatch"
|
|
||||||
|
|
||||||
# Development dependencies
|
|
||||||
brew "imagemagick" # Required by lektor (installed using pipx)
|
|
||||||
|
|
||||||
# Applications from App Store
|
|
||||||
mas "Pixelmator Pro", id: 1289583905
|
|
||||||
mas "Tailscale", id: 1475387142
|
|
||||||
mas "virtualOS", id: 1614659226
|
|
||||||
mas "Xcode", id: 497799835
|
|
File diff suppressed because it is too large
Load diff
54
.dotfiles/bin/lock.sh
Executable file
54
.dotfiles/bin/lock.sh
Executable file
|
@ -0,0 +1,54 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# vi: ts=4
|
||||||
|
|
||||||
|
# Lockscreen script that will capture a screenshot, pixelate and add an overlay (all optional).
|
||||||
|
# If no toggle is enabled, the overlay image for the final image is used instead. $overlayPath with
|
||||||
|
# a black backgrond color.
|
||||||
|
# Optional features require the `imagemagick` package.
|
||||||
|
|
||||||
|
# Constants
|
||||||
|
lockscreenDir=$(mktemp -d)
|
||||||
|
lockscreenPath=$lockscreenDir/lock.png
|
||||||
|
|
||||||
|
# Config
|
||||||
|
screenshotBin=grim
|
||||||
|
lockscreenBin=swaylock
|
||||||
|
overlayPath=~/.dotfiles/lock_overlay.png
|
||||||
|
font=Terminus
|
||||||
|
extraArguments=
|
||||||
|
|
||||||
|
# Toggles
|
||||||
|
screenshot=false
|
||||||
|
pixelate=false
|
||||||
|
overlay=false
|
||||||
|
|
||||||
|
cd $lockscreenDir
|
||||||
|
|
||||||
|
# Take screenshot
|
||||||
|
if $screenshot; then
|
||||||
|
$screenshotBin $lockscreenPath
|
||||||
|
else
|
||||||
|
cp $HOME/.wallpaper $lockscreenPath
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Pixelate
|
||||||
|
if $pixelate; then
|
||||||
|
convert $lockscreenPath -scale 10% -scale 1000% $lockscreenPath
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Overlay
|
||||||
|
if $overlay; then
|
||||||
|
convert "$lockscreenPath" "$overlayPath" -gravity center -composite "$lockscreenPath"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! $screenshot && ! $pixelate && ! $overlay; then
|
||||||
|
lockscreenPath=$overlayPath
|
||||||
|
extraArguments="$extraArguments --scaling=center --color=#000001ff"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Lock screen
|
||||||
|
$lockscreenBin \
|
||||||
|
-n \
|
||||||
|
--image $lockscreenPath \
|
||||||
|
--font=$font \
|
||||||
|
$extraArguments
|
7
.dotfiles/bin/screenshot.sh
Executable file
7
.dotfiles/bin/screenshot.sh
Executable file
|
@ -0,0 +1,7 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
FILE_PATH=$HOME/Pictures/Screenshots/$(date -u +"%Y-%m-%d_%H-%M-%S").png
|
||||||
|
|
||||||
|
grim -g "$(slurp)" $FILE_PATH
|
||||||
|
|
||||||
|
cat $FILE_PATH | wl-copy
|
|
@ -1,11 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# Check if Xcode CLI tools are installed. Install if not.
|
|
||||||
if [ "$(xcode-select --version)" == "" ]; then
|
|
||||||
sudo xcode-select --install
|
|
||||||
|
|
||||||
sudo xcodebuild -license accept
|
|
||||||
|
|
||||||
echo "Press [ENTER] when install has finished"
|
|
||||||
read
|
|
||||||
fi
|
|
|
@ -1,12 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
# install homebrew if it's missing
|
|
||||||
if ! command -v brew >/dev/null 2>&1; then
|
|
||||||
echo "Installing homebrew"
|
|
||||||
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -f "$HOME/.Brewfile" ]; then
|
|
||||||
echo "Updating homebrew bundle"
|
|
||||||
brew bundle --global
|
|
||||||
fi
|
|
|
@ -1,11 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
system_type=$(uname -s)
|
|
||||||
iterm_config_path=$HOME/.dotfiles/config/iterm2
|
|
||||||
|
|
||||||
if [ "$system_type" = "Darwin" ]; then
|
|
||||||
if [ -d "$iterm_config_path" ]; then
|
|
||||||
echo "Setting iTerm preference folder"
|
|
||||||
defaults write com.googlecode.iterm2 PrefsCustomFolder "$iterm_config_path"
|
|
||||||
fi
|
|
||||||
fi
|
|
|
@ -1,81 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# <Dock>
|
|
||||||
# Autohide enabled
|
|
||||||
defaults write com.apple.dock "autohide" -bool "true" #&& killall Dock
|
|
||||||
|
|
||||||
# hide/show faster
|
|
||||||
defaults write com.apple.dock "autohide-delay" -float "0" #&& killall Dock
|
|
||||||
|
|
||||||
# Show only active applications
|
|
||||||
defaults write com.apple.dock "static-only" -bool "false" #&& killall Dock
|
|
||||||
|
|
||||||
# <Workspaces>
|
|
||||||
# Enable auto-switch to most recent app
|
|
||||||
defaults write com.apple.dock workspaces-auto-swoosh -bool YES #&& killall Dock
|
|
||||||
|
|
||||||
# Save in JPEG
|
|
||||||
defaults write com.apple.screencapture "type" -string "jpg"
|
|
||||||
|
|
||||||
# <Screenshots>
|
|
||||||
# Set default location
|
|
||||||
defaults write com.apple.screencapture "location" -string "$HOME/Desktop/Screenshots" && killall SystemUIServer
|
|
||||||
|
|
||||||
# <Finder>
|
|
||||||
# Show path bar
|
|
||||||
defaults write com.apple.finder "ShowPathbar" -bool "true" #&& killall Finder
|
|
||||||
|
|
||||||
# Show status bar
|
|
||||||
defaults write com.apple.finder ShowStatusBar -bool true #&& killall Finder
|
|
||||||
|
|
||||||
# Default view to columns
|
|
||||||
defaults write com.apple.finder "FXPreferredViewStyle" -string "clmv" #&& killall Finder
|
|
||||||
|
|
||||||
# Default search the current folder
|
|
||||||
defaults write com.apple.finder "FXDefaultSearchScope" -string "SCcf" #&& killall Finder
|
|
||||||
|
|
||||||
# Automatically delete old trash items
|
|
||||||
defaults write com.apple.finder "FXRemoveOldTrashItems" -bool "true" #&& killall Finder
|
|
||||||
|
|
||||||
# Disable file extension rename warning
|
|
||||||
defaults write com.apple.finder "FXEnableExtensionChangeWarning" -bool "true" #&& killall Finder
|
|
||||||
|
|
||||||
# Default save location to $HOME dir
|
|
||||||
defaults write NSGlobalDomain "NSDocumentSaveNewDocumentsToCloud" -bool "false"
|
|
||||||
|
|
||||||
# Show icons in the title bar
|
|
||||||
defaults write com.apple.universalaccess "showWindowTitlebarIcons" -bool "true" #&& killall Finder
|
|
||||||
|
|
||||||
# Hide internal disks on desktop
|
|
||||||
defaults write com.apple.finder "ShowHardDrivesOnDesktop" -bool "false" #&& killall Finder
|
|
||||||
|
|
||||||
# Show external disks on desktop
|
|
||||||
defaults write com.apple.finder "ShowExternalHardDrivesOnDesktop" -bool "true" #&& killall Finder
|
|
||||||
|
|
||||||
# Show removable media on desktop
|
|
||||||
defaults write com.apple.finder "ShowRemovableMediaOnDesktop" -bool "false" #&& killall Finder
|
|
||||||
|
|
||||||
# Show connected servers on desktop
|
|
||||||
defaults write com.apple.finder "ShowMountedServersOnDesktop" -bool "true" #&& killall Finder
|
|
||||||
|
|
||||||
# <Mouse>
|
|
||||||
# Disable natural scrolling
|
|
||||||
defaults write -g com.apple.swipescrolldirection -bool NO #&& killall SystemUIServer
|
|
||||||
|
|
||||||
# <Keyboard>
|
|
||||||
# Repeat characters on key hold
|
|
||||||
defaults write NSGlobalDomain "ApplePressAndHoldEnabled" -bool "false"
|
|
||||||
|
|
||||||
# <Time machine>
|
|
||||||
# Don't offer disks for backup
|
|
||||||
defaults write com.apple.TimeMachine "DoNotOfferNewDisksForBackup" -bool "false"
|
|
||||||
|
|
||||||
# <Music>
|
|
||||||
# Disable notifications for playing songs
|
|
||||||
defaults write com.apple.Music "userWantsPlaybackNotifications" -bool "false" #&& killall Music
|
|
||||||
|
|
||||||
# <Kill>
|
|
||||||
killall Dock 2> /dev/null
|
|
||||||
killall SystemUIServer 2> /dev/null
|
|
||||||
killall Finder 2> /dev/null
|
|
||||||
killall Music 2> /dev/null
|
|
|
@ -1,3 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
brew bundle --file=$HOME/.dotfiles/Brewfile
|
|
|
@ -1,8 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
pipx ensurepath
|
|
||||||
|
|
||||||
pipx install yt-dlp
|
|
||||||
pipx install lektor
|
|
||||||
|
|
||||||
pipx reinstall-all
|
|
|
@ -1,13 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# Install nvchad
|
|
||||||
if [ ! -d "$HOME/.config/nvim" ]; then
|
|
||||||
echo "Installing nvchad"
|
|
||||||
git clone https://github.com/NvChad/NvChad ~/.config/nvim --depth 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Check if .config/nvim/custom is a symlink, and if not, symlink to .dotfiles/nvchad/custom
|
|
||||||
if [[ -d "$HOME/.config/nvim/lua/custom" && ! -L "$HOME/.config/nvim/lua/custom" ]]; then
|
|
||||||
mv $HOME/.config/nvim/lua/custom $HOME/.config/nvim/lua/custom_2
|
|
||||||
ln -s $HOME/.dotfiles/nvchad/custom/ $HOME/.config/nvim/lua/
|
|
||||||
fi
|
|
|
@ -1,7 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# Install oh-my-zsh if the folder does not exist
|
|
||||||
if [ ! -d "$HOME/.oh-my-zsh" ]; then
|
|
||||||
echo "Installing oh-my-zsh"
|
|
||||||
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
|
|
||||||
fi
|
|
|
@ -1,7 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# Handled by brewfile
|
|
||||||
|
|
||||||
# mas install 1475387142 # Tailscale
|
|
||||||
# mas install 497799835 # Xcode
|
|
||||||
# mas install 1289583905 # Pixelmator Pro
|
|
7
.dotfiles/docs/arch.md
Normal file
7
.dotfiles/docs/arch.md
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
# ArchLinux
|
||||||
|
|
||||||
|
## Update mirrorlist
|
||||||
|
|
||||||
|
```
|
||||||
|
# systemctl start reflector
|
||||||
|
```
|
54
.dotfiles/docs/beets.md
Normal file
54
.dotfiles/docs/beets.md
Normal file
|
@ -0,0 +1,54 @@
|
||||||
|
# Beets
|
||||||
|
|
||||||
|
## Setup configuration file:
|
||||||
|
|
||||||
|
``` yaml
|
||||||
|
# ~/.config/beets/config.yaml
|
||||||
|
directory: ~/music
|
||||||
|
library: ~/music/library.db
|
||||||
|
import:
|
||||||
|
copy: no # Do not copy files into directory
|
||||||
|
move: no # Do not delete original files
|
||||||
|
write: yes # Write tags to file
|
||||||
|
plugins: duplicates fetchart embedart
|
||||||
|
```
|
||||||
|
|
||||||
|
## Import music
|
||||||
|
|
||||||
|
Using `--incremental` to avoid scanning the already imported albums.
|
||||||
|
|
||||||
|
```
|
||||||
|
beet import ~/music --incremental
|
||||||
|
```
|
||||||
|
|
||||||
|
To re-scan the music library:
|
||||||
|
|
||||||
|
```
|
||||||
|
beet update
|
||||||
|
```
|
||||||
|
|
||||||
|
## Download art files into a `cover.jpg` file
|
||||||
|
|
||||||
|
Requires plugin: `fetchart`.
|
||||||
|
|
||||||
|
```
|
||||||
|
beet fetchart
|
||||||
|
```
|
||||||
|
|
||||||
|
## Embed art into files
|
||||||
|
|
||||||
|
Requires plugin: `embedart` & `fetchart`.
|
||||||
|
|
||||||
|
```
|
||||||
|
beet embedart
|
||||||
|
```
|
||||||
|
|
||||||
|
## Scan for duplicates
|
||||||
|
|
||||||
|
Requires plugin `duplicates`.
|
||||||
|
|
||||||
|
Use `-p` to show the path to the duplicates instead of the name.
|
||||||
|
|
||||||
|
```
|
||||||
|
beet duplicates -p
|
||||||
|
```
|
20
.dotfiles/docs/chromium.md
Normal file
20
.dotfiles/docs/chromium.md
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
# Chromium
|
||||||
|
|
||||||
|
## Enable media casting
|
||||||
|
|
||||||
|
Just enable this flag and restart the browser:
|
||||||
|
|
||||||
|
```
|
||||||
|
chrome://flags/#load-media-router-component-extension
|
||||||
|
```
|
||||||
|
|
||||||
|
## Enable hardware acceleration
|
||||||
|
|
||||||
|
Enable this flag.
|
||||||
|
|
||||||
|
If not available, the VA-API packages must be required though I didn't have to
|
||||||
|
install anything to enable it.
|
||||||
|
|
||||||
|
```
|
||||||
|
chrome://flags/#enable-accelerated-video-decode
|
||||||
|
```
|
11
.dotfiles/docs/git.md
Normal file
11
.dotfiles/docs/git.md
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
# Git
|
||||||
|
|
||||||
|
## Setup GPG signing key
|
||||||
|
|
||||||
|
```
|
||||||
|
$ gpg --list-secret-keys --keyid-format LONG
|
||||||
|
...
|
||||||
|
$ git config --global user.signingkey <keyid>
|
||||||
|
|
||||||
|
$ export GPG_TTY=$(tty)
|
||||||
|
```
|
10
.dotfiles/docs/khal.md
Normal file
10
.dotfiles/docs/khal.md
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
# Khal
|
||||||
|
|
||||||
|
## Get only next event
|
||||||
|
|
||||||
|
```
|
||||||
|
# -df "": Show empty day headers
|
||||||
|
# grep -v "^ ": remove all-day events
|
||||||
|
# head -n 1: Get only the first item
|
||||||
|
khal list now -df "" | grep -v "^ " | head -n 1
|
||||||
|
```
|
7
.dotfiles/docs/mpv.md
Normal file
7
.dotfiles/docs/mpv.md
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
# MPV
|
||||||
|
|
||||||
|
## Playerctl support
|
||||||
|
|
||||||
|
Project: [https://github.com/hoyon/mpv-mpris](https://github.com/hoyon/mpv-mpris)
|
||||||
|
|
||||||
|
Added `mpris.so` manually to `~/.config/mpv/scripts` and it'll auto load.
|
7
.dotfiles/docs/nemo.md
Normal file
7
.dotfiles/docs/nemo.md
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
# Nemo
|
||||||
|
|
||||||
|
## Samba support
|
||||||
|
|
||||||
|
```
|
||||||
|
# pacman -S nemo-share gvfs-smb
|
||||||
|
```
|
9
.dotfiles/docs/nmcli.md
Normal file
9
.dotfiles/docs/nmcli.md
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
# nmcli
|
||||||
|
|
||||||
|
## Import OpenVPN configuration
|
||||||
|
|
||||||
|
> Make sure the file is an openvpn configuration and not a network manager connection
|
||||||
|
|
||||||
|
```
|
||||||
|
# nmcli connection import type openvpn file file.ovpn
|
||||||
|
```
|
39
.dotfiles/docs/qutebrowser.md
Normal file
39
.dotfiles/docs/qutebrowser.md
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
# Qutebrowser
|
||||||
|
|
||||||
|
## Update adblock lists
|
||||||
|
|
||||||
|
```
|
||||||
|
:adblock-update
|
||||||
|
```
|
||||||
|
|
||||||
|
## Set as default browser
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
$ xdg-settings set default-web-browser org.qutebrowser.qutebrowser.desktop
|
||||||
|
```
|
||||||
|
|
||||||
|
## Change default search engine
|
||||||
|
|
||||||
|
``` python
|
||||||
|
# ~/.config/qutebrowser/config.py
|
||||||
|
|
||||||
|
c.url.searchengines = {
|
||||||
|
"DEFAULT": "https://google.com/search?q={}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
## Change default start page
|
||||||
|
|
||||||
|
``` python
|
||||||
|
# ~/.config/qutebrowser/config.py
|
||||||
|
|
||||||
|
c.url.start_page = "https://google.es"
|
||||||
|
c.url.start_urls = ["https://google.es"]
|
||||||
|
```
|
||||||
|
|
||||||
|
## Auto load last session
|
||||||
|
|
||||||
|
``` python
|
||||||
|
# ~/.config/qutebrowser/config.py
|
||||||
|
c.auto_save.session true
|
||||||
|
c.auto_save.interval 15000
|
||||||
|
```
|
82
.dotfiles/docs/retroarch.md
Normal file
82
.dotfiles/docs/retroarch.md
Normal file
|
@ -0,0 +1,82 @@
|
||||||
|
# RetroArch
|
||||||
|
|
||||||
|
## Enable core downloading
|
||||||
|
|
||||||
|
```
|
||||||
|
# retroarch.cfg
|
||||||
|
menu_show_core_updater = "true"
|
||||||
|
```
|
||||||
|
|
||||||
|
## Setup core/info directories into user folder
|
||||||
|
|
||||||
|
|
||||||
|
```
|
||||||
|
# retroarch.cfg
|
||||||
|
libretro_directory = "~/.config/retroarch/cores"
|
||||||
|
libretro_info_path = "~/.config/retroarch/cores/info"
|
||||||
|
```
|
||||||
|
|
||||||
|
## Setup screenshots on content folder by system
|
||||||
|
|
||||||
|
Given a content (games) folder where games are sorted in folders by system, this will make the screenshots be sorted as well, instead of everything on the same folder.
|
||||||
|
|
||||||
|
```
|
||||||
|
# retroarch.cfg
|
||||||
|
# Automatic screenshot filename in content (games) directory
|
||||||
|
screenshots_in_content_dir = "true"
|
||||||
|
auto_screenshot_filename = "true"
|
||||||
|
|
||||||
|
# Notifications
|
||||||
|
notification_show_screenshot = "true"
|
||||||
|
notification_show_screenshot_duration = "1"
|
||||||
|
```
|
||||||
|
## Saves
|
||||||
|
|
||||||
|
Store saves alongide games. Same _trick_ we use with screenshots.
|
||||||
|
|
||||||
|
```
|
||||||
|
savefiles_in_content_dir = "true"
|
||||||
|
```
|
||||||
|
|
||||||
|
## States
|
||||||
|
|
||||||
|
This will make retroarch auto save/load states on launching/closing a game.
|
||||||
|
|
||||||
|
```
|
||||||
|
savestate_auto_load = "true"
|
||||||
|
savestate_auto_save = "true"
|
||||||
|
```
|
||||||
|
|
||||||
|
Store states alongside games. Same _trick_ we use with screenshots.
|
||||||
|
|
||||||
|
```
|
||||||
|
savestates_in_content_dir = "true"
|
||||||
|
```
|
||||||
|
|
||||||
|
Create a screenshot for a savestate, just for eye-candy.
|
||||||
|
|
||||||
|
```
|
||||||
|
savestate_thumbnail_enable = "true"
|
||||||
|
```
|
||||||
|
|
||||||
|
## Achievements
|
||||||
|
|
||||||
|
Enables achievements through the menu and sets up the configuration:
|
||||||
|
|
||||||
|
```
|
||||||
|
settings_show_achievements = "true"
|
||||||
|
|
||||||
|
cheevos_enable = "true"
|
||||||
|
cheevos_username = "<username>"
|
||||||
|
cheevos_password = "<password>"
|
||||||
|
cheevos_auto_screenshot = "true"
|
||||||
|
cheevos_badges_enable = "true"
|
||||||
|
cheevos_hardcore_mode_enable = "true"
|
||||||
|
cheevos_leaderboards_enable = "true"
|
||||||
|
cheevos_richpresence_enable = "true"
|
||||||
|
cheevos_start_active = "false"
|
||||||
|
cheevos_test_unofficial = "false"
|
||||||
|
cheevos_token = ""
|
||||||
|
cheevos_unlock_sound_enable = "true"
|
||||||
|
cheevos_verbose_enable = "false"
|
||||||
|
```
|
18
.dotfiles/docs/weechat.md
Normal file
18
.dotfiles/docs/weechat.md
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
# Weechat
|
||||||
|
|
||||||
|
- Website: https://weechat.org/
|
||||||
|
|
||||||
|
## Enable mouse support
|
||||||
|
|
||||||
|
```
|
||||||
|
/set weechat.look.mouse on
|
||||||
|
/mouse enable
|
||||||
|
```
|
||||||
|
|
||||||
|
## Hide join/part/quit messages
|
||||||
|
|
||||||
|
```
|
||||||
|
/set irc.look.smart_filter on
|
||||||
|
/filter add irc_smart * irc_smart_filter *
|
||||||
|
/set irc.look.smart_filter_delay 5
|
||||||
|
```
|
9
.dotfiles/docs/wf-recorder.md
Normal file
9
.dotfiles/docs/wf-recorder.md
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
# wf-recorder
|
||||||
|
|
||||||
|
## Record screen geometry
|
||||||
|
|
||||||
|
Requires [slurp](https://github.com/emersion/slurp)
|
||||||
|
|
||||||
|
```
|
||||||
|
wf-recorder -g "$(slurp)"
|
||||||
|
```
|
17
.dotfiles/docs/zsh.md
Normal file
17
.dotfiles/docs/zsh.md
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
# ZSH
|
||||||
|
|
||||||
|
## Use emacs style keybindings
|
||||||
|
|
||||||
|
``` zsh
|
||||||
|
bindkey -e
|
||||||
|
```
|
||||||
|
|
||||||
|
## Use selective up/down command history
|
||||||
|
|
||||||
|
In order to traverse the command history with up/down arrows but filtering by the command that is already written in the terminal, we need to use oh-my-zsh
|
||||||
|
|
||||||
|
Get installation instructions from [the oh-my-zsh github repository](https://github.com/ohmyzsh/ohmyzsh).
|
||||||
|
|
||||||
|
```
|
||||||
|
source $HOME/.oh-my-zsh/oh-my-zsh.sh
|
||||||
|
```
|
BIN
.dotfiles/lock_overlay.png
Normal file
BIN
.dotfiles/lock_overlay.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 110 KiB |
28
.emacs.d/init.el
Normal file
28
.emacs.d/init.el
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
(require 'package)
|
||||||
|
(setq package-enable-at-startup nil)
|
||||||
|
(setq package-archives '(("gnu" . "https://elpa.gnu.org/packages/")
|
||||||
|
("melpa" . "https://melpa.org/packages/")
|
||||||
|
("melpa-stable" . "https://stable.melpa.org/packages/")))
|
||||||
|
(package-initialize)
|
||||||
|
(unless (package-installed-p 'use-package)
|
||||||
|
(package-refresh-contents)
|
||||||
|
(package-install 'use-package))
|
||||||
|
|
||||||
|
(eval-when-compile
|
||||||
|
(require 'use-package))
|
||||||
|
|
||||||
|
(use-package magit
|
||||||
|
:ensure t
|
||||||
|
:bind ("C-x g" . magit-status))
|
||||||
|
(custom-set-variables
|
||||||
|
;; custom-set-variables was added by Custom.
|
||||||
|
;; If you edit it by hand, you could mess it up, so be careful.
|
||||||
|
;; Your init file should contain only one such instance.
|
||||||
|
;; If there is more than one, they won't work right.
|
||||||
|
'(package-selected-packages '(magit use-package)))
|
||||||
|
(custom-set-faces
|
||||||
|
;; custom-set-faces was added by Custom.
|
||||||
|
;; If you edit it by hand, you could mess it up, so be careful.
|
||||||
|
;; Your init file should contain only one such instance.
|
||||||
|
;; If there is more than one, they won't work right.
|
||||||
|
)
|
30
.gitconfig
Normal file
30
.gitconfig
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
[user]
|
||||||
|
name = Felipe M.
|
||||||
|
email = me@fmartingr.com
|
||||||
|
signingkey = 716BC147715E716F
|
||||||
|
|
||||||
|
[commit]
|
||||||
|
gpgsign = true
|
||||||
|
|
||||||
|
[filter "lfs"]
|
||||||
|
clean = git-lfs clean -- %f
|
||||||
|
smudge = git-lfs smudge -- %f
|
||||||
|
process = git-lfs filter-process
|
||||||
|
required = true
|
||||||
|
|
||||||
|
[core]
|
||||||
|
editor = nvim
|
||||||
|
askpass = /usr/bin/pinentry
|
||||||
|
|
||||||
|
[alias]
|
||||||
|
s = status
|
||||||
|
d = diff
|
||||||
|
co = checkout
|
||||||
|
br = branch
|
||||||
|
last = log -1 HEAD
|
||||||
|
cane = commit --amend --no-edit
|
||||||
|
lo = log --oneline -n 10
|
||||||
|
pr = pull --rebase
|
||||||
|
|
||||||
|
[diff]
|
||||||
|
noprefix = true
|
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
*
|
|
@ -1,92 +0,0 @@
|
||||||
-- --------------------------------------------------------------------------
|
|
||||||
--
|
|
||||||
-- Implementation of a dark mode library for detecting and setting dark
|
|
||||||
-- mode in MacOS.
|
|
||||||
--
|
|
||||||
-- --------------------------------------------------------------------------
|
|
||||||
--
|
|
||||||
-- Example:
|
|
||||||
--
|
|
||||||
-- dm = require "darkmode"
|
|
||||||
-- dm.addHandler(function(dm2) print('darkmode changed:',dm2) end)
|
|
||||||
-- print('darkmode:',dm.getDarkMode())
|
|
||||||
-- dm.setDarkMode(not dm.getDarkMode())
|
|
||||||
-- print('darkmode:',dm.getDarkMode())
|
|
||||||
-- dm.setDarkMode(not dm.getDarkMode())
|
|
||||||
--
|
|
||||||
-- --------------------------------------------------------------------------
|
|
||||||
|
|
||||||
-- --------------------------------------------------------------------------
|
|
||||||
-- internal Data which should not be garbage collected
|
|
||||||
-- --------------------------------------------------------------------------
|
|
||||||
|
|
||||||
local internalData = {
|
|
||||||
darkmode = false,
|
|
||||||
watcher = nil,
|
|
||||||
handler = {}
|
|
||||||
}
|
|
||||||
|
|
||||||
-- --------------------------------------------------------------------------
|
|
||||||
-- General functions
|
|
||||||
-- --------------------------------------------------------------------------
|
|
||||||
|
|
||||||
local function getDarkModeFromSystem()
|
|
||||||
-- local _, darkmode = hs.osascript.applescript('tell application "System Events"\nreturn dark mode of appearance preferences\nend tell')
|
|
||||||
local _, darkmode = hs.osascript.javascript("Application('System Events').appearancePreferences.darkMode.get()")
|
|
||||||
return darkmode
|
|
||||||
end
|
|
||||||
|
|
||||||
local function getDarkMode()
|
|
||||||
return internalData.darkmode
|
|
||||||
end
|
|
||||||
|
|
||||||
local function setDarkMode(state)
|
|
||||||
hs.osascript.javascript(string.format("Application('System Events').appearancePreferences.darkMode.set(%s)",state))
|
|
||||||
end
|
|
||||||
|
|
||||||
local function addHandler(fn)
|
|
||||||
-- add it here...
|
|
||||||
internalData.handler[#internalData.handler+1] = fn
|
|
||||||
end
|
|
||||||
|
|
||||||
-- --------------------------------------------------------------------------
|
|
||||||
-- Internal functions
|
|
||||||
-- --------------------------------------------------------------------------
|
|
||||||
|
|
||||||
local function initialize()
|
|
||||||
internalData.darkmode = getDarkModeFromSystem()
|
|
||||||
end
|
|
||||||
|
|
||||||
local function initializeWatcher()
|
|
||||||
-- exit if already watching
|
|
||||||
if internalData.watcher ~= nil then return end
|
|
||||||
|
|
||||||
internalData.watcher = hs.distributednotifications.new(function(name, object, userInfo)
|
|
||||||
local hasDarkMode = getDarkModeFromSystem()
|
|
||||||
if hasDarkMode ~= internalData.darkmode then
|
|
||||||
internalData.darkmode = hasDarkMode
|
|
||||||
-- execute each handler with the darkmode as parameter (may change in future)
|
|
||||||
for index, fn in ipairs(internalData.handler) do
|
|
||||||
fn(hasDarkMode)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end,'AppleInterfaceThemeChangedNotification')
|
|
||||||
|
|
||||||
internalData.watcher:start()
|
|
||||||
end
|
|
||||||
|
|
||||||
-- --------------------------------------------------------------------------
|
|
||||||
-- Initialization
|
|
||||||
-- --------------------------------------------------------------------------
|
|
||||||
|
|
||||||
initialize()
|
|
||||||
initializeWatcher()
|
|
||||||
|
|
||||||
local module = {
|
|
||||||
_ = internalData,
|
|
||||||
setDarkMode = setDarkMode,
|
|
||||||
getDarkMode = getDarkMode,
|
|
||||||
addHandler = addHandler
|
|
||||||
}
|
|
||||||
|
|
||||||
return module
|
|
|
@ -1,108 +0,0 @@
|
||||||
local darkmode = require("Spoons/darkmode")
|
|
||||||
|
|
||||||
-- Variables
|
|
||||||
local hyperKey = {"alt", "shift", "ctrl", "cmd"}
|
|
||||||
-- termApplication = "Alacritty"
|
|
||||||
local termApplication = "WezTerm"
|
|
||||||
|
|
||||||
-- Highlight the currently focused window
|
|
||||||
hs.window.highlight.start()
|
|
||||||
|
|
||||||
-- Enable spotlight to search applications by name
|
|
||||||
hs.application.enableSpotlightForNameSearches(true)
|
|
||||||
|
|
||||||
-- Reload configuration automatically
|
|
||||||
local function reloadConfig(files)
|
|
||||||
local doReload = false
|
|
||||||
for _, file in pairs(files) do
|
|
||||||
if file:sub(-4) == ".lua" then
|
|
||||||
doReload = true
|
|
||||||
end
|
|
||||||
end
|
|
||||||
if doReload then
|
|
||||||
hs.reload()
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
local myWatcher = hs.pathwatcher.new(os.getenv("HOME") .. "/.hammerspoon/", reloadConfig):start()
|
|
||||||
hs.alert.show("hs.config updated")
|
|
||||||
|
|
||||||
-- Allow a scratchpad-like behavior for a certain app with a key combination
|
|
||||||
local function scratchpadAppWithCombination(modifier, key, appName)
|
|
||||||
hs.hotkey.bind(modifier, key, function()
|
|
||||||
local app = hs.application.get(appName)
|
|
||||||
if app then
|
|
||||||
space = hs.spaces.activeSpaceOnScreen(hs.screen.mainScreen())
|
|
||||||
if not app:mainWindow() then
|
|
||||||
app:selectMenuItem({appName, "New OS window"})
|
|
||||||
elseif app:isFrontmost() then
|
|
||||||
app:hide()
|
|
||||||
else
|
|
||||||
app:unhide()
|
|
||||||
hs.spaces.moveWindowToSpace(app:focusedWindow(), space)
|
|
||||||
app:activate()
|
|
||||||
end
|
|
||||||
else
|
|
||||||
hs.application.launchOrFocus(appName)
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Focus a window with a combination
|
|
||||||
LastFocusedWindow = nil
|
|
||||||
local function focusAppWithCombination(modifier, key, appName)
|
|
||||||
hs.hotkey.bind(modifier, key, function()
|
|
||||||
local app = hs.application.get(appName)
|
|
||||||
if app then
|
|
||||||
if app:focusedWindow() == hs.window.focusedWindow() then
|
|
||||||
LastFocusedWindow:focus()
|
|
||||||
LastFocusedWindow = app:mainWindow()
|
|
||||||
else
|
|
||||||
LastFocusedWindow = hs.window.focusedWindow()
|
|
||||||
-- hs.application.launchOrFocus(appName)
|
|
||||||
app:mainWindow():focus()
|
|
||||||
end
|
|
||||||
else
|
|
||||||
hs.alert.show("iTerm not running")
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Setup
|
|
||||||
scratchpadAppWithCombination({"cmd", "shift"}, "-", "Obsidian")
|
|
||||||
-- scratchpadAppWithCombination(hyperKey, "-", "Notion")
|
|
||||||
scratchpadAppWithCombination({"ctrl"}, "return", termApplication)
|
|
||||||
|
|
||||||
-- Dark mode toggles
|
|
||||||
local function toggleMattermostTheme(dark)
|
|
||||||
print('theme changed to dark:', dark)
|
|
||||||
end
|
|
||||||
darkmode.addHandler(toggleMattermostTheme)
|
|
||||||
|
|
||||||
-- Test
|
|
||||||
|
|
||||||
-- function safariMouseBack()
|
|
||||||
|
|
||||||
-- end
|
|
||||||
|
|
||||||
-- termBinds = {}
|
|
||||||
|
|
||||||
-- function enableBinds()
|
|
||||||
-- -- hs.console.printStyledtext("term focused")
|
|
||||||
-- for k, v in pairs(termBinds) do
|
|
||||||
-- v:enable()
|
|
||||||
-- end
|
|
||||||
-- end
|
|
||||||
|
|
||||||
-- function disableBinds()
|
|
||||||
-- -- hs.console.printStyledtext("term unfocused")
|
|
||||||
-- for k, v in pairs(termBinds) do
|
|
||||||
-- v:disable()
|
|
||||||
-- end
|
|
||||||
-- end
|
|
||||||
|
|
||||||
-- local wf = hs.window.filter
|
|
||||||
|
|
||||||
-- wf_safari = wf.new {'Safari'}
|
|
||||||
-- wf_safari:subscribe(wf.windowFocused, enableBinds)
|
|
||||||
-- wf_safari:subscribe(wf.windowUnfocused, disableBinds)
|
|
4
.vscode-oss/extensions.txt
Normal file
4
.vscode-oss/extensions.txt
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
alexcvzz.vscode-sqlite
|
||||||
|
golang.go
|
||||||
|
ms-python.python
|
||||||
|
vscodevim.vim
|
58
.wezterm.lua
58
.wezterm.lua
|
@ -1,58 +0,0 @@
|
||||||
-- Pull in the wezterm API
|
|
||||||
local wezterm = require 'wezterm'
|
|
||||||
|
|
||||||
-- This will hold the configuration.
|
|
||||||
local config = wezterm.config_builder()
|
|
||||||
|
|
||||||
function scheme_for_appearance(appearance)
|
|
||||||
if appearance:find 'Dark' then
|
|
||||||
return 'Catppuccin Mocha'
|
|
||||||
else
|
|
||||||
return 'Catppuccin Latte'
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
local act = wezterm.action
|
|
||||||
|
|
||||||
local config = wezterm.config_builder()
|
|
||||||
config.keys = {
|
|
||||||
{
|
|
||||||
key = 'E',
|
|
||||||
mods = 'CTRL|SHIFT',
|
|
||||||
action = act.PromptInputLine {
|
|
||||||
description = 'Enter new name for tab',
|
|
||||||
action = wezterm.action_callback(function(window, pane, line)
|
|
||||||
-- line will be `nil` if they hit escape without entering anything
|
|
||||||
-- An empty string if they just hit enter
|
|
||||||
-- Or the actual line of text they wrote
|
|
||||||
if line then
|
|
||||||
window:active_tab():set_title(line)
|
|
||||||
end
|
|
||||||
end),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
wezterm.on('window-config-reloaded', function(window, pane)
|
|
||||||
local overrides = window:get_config_overrides() or {}
|
|
||||||
local appearance = window:get_appearance()
|
|
||||||
local scheme = scheme_for_appearance(appearance)
|
|
||||||
if overrides.color_scheme ~= scheme then
|
|
||||||
overrides.color_scheme = scheme
|
|
||||||
window:set_config_overrides(overrides)
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
|
||||||
-- This is where you actually apply your config choices
|
|
||||||
|
|
||||||
-- For example, changing the color scheme:
|
|
||||||
-- config.color_scheme = 'AdventureTime'
|
|
||||||
config.font = wezterm.font 'Victor Mono'
|
|
||||||
config.font_size = 14
|
|
||||||
config.window_background_opacity = 0.90
|
|
||||||
config.macos_window_background_blur = 20
|
|
||||||
config.use_fancy_tab_bar = false
|
|
||||||
config.hide_tab_bar_if_only_one_tab = true
|
|
||||||
config.window_decorations = "RESIZE"
|
|
||||||
-- and finally, return the configuration to wezterm
|
|
||||||
return config
|
|
120
.zshrc
120
.zshrc
|
@ -1,103 +1,41 @@
|
||||||
# If you come from bash you might have to change your $PATH.
|
bindkey -e
|
||||||
# export PATH=$HOME/bin:/usr/local/bin:$PATH
|
|
||||||
|
|
||||||
# Path to your oh-my-zsh installation.
|
|
||||||
export ZSH="$HOME/.oh-my-zsh"
|
export ZSH="$HOME/.oh-my-zsh"
|
||||||
|
|
||||||
# Set name of the theme to load --- if set to "random", it will
|
plugins=(fzf)
|
||||||
# load a random theme each time oh-my-zsh is loaded, in which case,
|
|
||||||
# to know which specific one was loaded, run: echo $RANDOM_THEME
|
|
||||||
# See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes
|
|
||||||
ZSH_THEME="half-life"
|
|
||||||
|
|
||||||
# Set list of themes to pick from when loading at random
|
|
||||||
# Setting this variable when ZSH_THEME=random will cause zsh to load
|
|
||||||
# a theme from this variable instead of looking in $ZSH/themes/
|
|
||||||
# If set to an empty array, this variable will have no effect.
|
|
||||||
# ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" )
|
|
||||||
|
|
||||||
# Uncomment the following line to use case-sensitive completion.
|
|
||||||
# CASE_SENSITIVE="true"
|
|
||||||
|
|
||||||
# Uncomment the following line to use hyphen-insensitive completion.
|
|
||||||
# Case-sensitive completion must be off. _ and - will be interchangeable.
|
|
||||||
# HYPHEN_INSENSITIVE="true"
|
|
||||||
|
|
||||||
# Uncomment one of the following lines to change the auto-update behavior
|
|
||||||
# zstyle ':omz:update' mode disabled # disable automatic updates
|
|
||||||
zstyle ':omz:update' mode auto # update automatically without asking
|
|
||||||
# zstyle ':omz:update' mode reminder # just remind me to update when it's time
|
|
||||||
|
|
||||||
# Uncomment the following line to change how often to auto-update (in days).
|
|
||||||
zstyle ':omz:update' frequency 7
|
|
||||||
|
|
||||||
# Uncomment the following line if pasting URLs and other text is messed up.
|
|
||||||
# DISABLE_MAGIC_FUNCTIONS="true"
|
|
||||||
|
|
||||||
# Uncomment the following line to disable colors in ls.
|
|
||||||
# DISABLE_LS_COLORS="true"
|
|
||||||
|
|
||||||
# Uncomment the following line to disable auto-setting terminal title.
|
|
||||||
# DISABLE_AUTO_TITLE="true"
|
|
||||||
|
|
||||||
# Uncomment the following line to enable command auto-correction.
|
|
||||||
# ENABLE_CORRECTION="true"
|
|
||||||
|
|
||||||
# Uncomment the following line to display red dots whilst waiting for completion.
|
|
||||||
# You can also set it to another string to have that shown instead of the default red dots.
|
|
||||||
# e.g. COMPLETION_WAITING_DOTS="%F{yellow}waiting...%f"
|
|
||||||
# Caution: this setting can cause issues with multiline prompts in zsh < 5.7.1 (see #5765)
|
|
||||||
# COMPLETION_WAITING_DOTS="true"
|
|
||||||
|
|
||||||
# Uncomment the following line if you want to disable marking untracked files
|
|
||||||
# under VCS as dirty. This makes repository status check for large repositories
|
|
||||||
# much, much faster.
|
|
||||||
DISABLE_UNTRACKED_FILES_DIRTY="true"
|
|
||||||
|
|
||||||
# Uncomment the following line if you want to change the command execution time
|
|
||||||
# stamp shown in the history command output.
|
|
||||||
# You can set one of the optional three formats:
|
|
||||||
# "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd"
|
|
||||||
# or set a custom format using the strftime function format specifications,
|
|
||||||
# see 'man strftime' for details.
|
|
||||||
# HIST_STAMPS="mm/dd/yyyy"
|
|
||||||
|
|
||||||
# Would you like to use another custom folder than $ZSH/custom?
|
|
||||||
# ZSH_CUSTOM=/path/to/new-custom-folder
|
|
||||||
|
|
||||||
# Which plugins would you like to load?
|
|
||||||
# Standard plugins can be found in $ZSH/plugins/
|
|
||||||
# Custom plugins may be added to $ZSH_CUSTOM/plugins/
|
|
||||||
# Example format: plugins=(rails git textmate ruby lighthouse)
|
|
||||||
# Add wisely, as too many plugins slow down shell startup.
|
|
||||||
plugins=(git)
|
|
||||||
|
|
||||||
source $ZSH/oh-my-zsh.sh
|
source $ZSH/oh-my-zsh.sh
|
||||||
|
|
||||||
# User configuration
|
alias magit="emacs -nw --eval '(progn (magit-status) (delete-other-windows))'"
|
||||||
|
alias ytdlf="youtube-dl -a ./youtube-dl.txt -f best -o \"./%(playlist_title)s/%(playlist_index)s_%(title)s.%(ext)s\""
|
||||||
|
|
||||||
# export MANPATH="/usr/local/man:$MANPATH"
|
function webp2jpg {
|
||||||
|
for x in ls *.webp; do
|
||||||
|
ffmpeg -i "$x" "${x%.webp}.jpg";
|
||||||
|
done
|
||||||
|
|
||||||
# You may need to manually set your language environment
|
rm *.webp
|
||||||
export LANG=en_US.UTF-8
|
}
|
||||||
|
|
||||||
# Preferred editor for local and remote sessions
|
# GPG tty
|
||||||
if [[ -n $SSH_CONNECTION ]]; then
|
export GPG_TTY=$(tty)
|
||||||
export EDITOR='vim'
|
|
||||||
else
|
|
||||||
export EDITOR='nvim'
|
|
||||||
fi
|
|
||||||
|
|
||||||
export PATH=$PATH:~/go/bin
|
# Golang
|
||||||
|
export GOPATH=~/.gocode
|
||||||
|
|
||||||
# Compilation flags
|
# Path
|
||||||
# export ARCHFLAGS="-arch x86_64"
|
export PATH=$PATH:$(go env GOPATH)/bin
|
||||||
|
export PATH=$PATH:$HOME/.local/bin
|
||||||
|
|
||||||
# Set personal aliases, overriding those provided by oh-my-zsh libs,
|
# Editor
|
||||||
# plugins, and themes. Aliases can be placed here, though oh-my-zsh
|
export EDITOR=nvim
|
||||||
# users are encouraged to define aliases within the ZSH_CUSTOM folder.
|
|
||||||
# For a full list of active aliases, run `alias`.
|
source /usr/share/zsh/share/antigen.zsh
|
||||||
#
|
|
||||||
# Example aliases
|
antigen use oh-my-zsh
|
||||||
# alias zshconfig="mate ~/.zshrc"
|
|
||||||
# alias ohmyzsh="mate ~/.oh-my-zsh"
|
antigen bundle git
|
||||||
|
|
||||||
|
antigen theme steeef
|
||||||
|
|
||||||
|
antigen apply
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue