mirror of
https://github.com/nmasur/dotfiles
synced 2024-11-26 10:45:36 +00:00
Merge branch 'experimental'
This commit is contained in:
commit
2f58396c61
12
.gitignore
vendored
12
.gitignore
vendored
@ -1,15 +1,5 @@
|
|||||||
.DS_Store
|
.DS_Store
|
||||||
newsboat.configlink/history.search
|
|
||||||
newsboat.configlink/urls
|
|
||||||
nvim.configlink/dirs/*
|
|
||||||
nvim.configlink/.netrwhist
|
|
||||||
nvim.configlink/plugin/**
|
|
||||||
nvim.configlink/plugged/**
|
|
||||||
nvim.configlink/autoload/**
|
|
||||||
fish.configlink/config.fish.bac
|
|
||||||
fish.configlink/functions/vim.fish
|
|
||||||
fish_variables
|
|
||||||
homebrew/*.lock.json
|
|
||||||
*.bak
|
*.bak
|
||||||
*.db
|
*.db
|
||||||
**/.direnv/**
|
**/.direnv/**
|
||||||
|
result
|
||||||
|
40
Makefile
40
Makefile
@ -1,40 +0,0 @@
|
|||||||
bootstrap:
|
|
||||||
./scripts/bootstrap
|
|
||||||
./scripts/setup_symlinks
|
|
||||||
|
|
||||||
all:
|
|
||||||
./scripts/bootstrap
|
|
||||||
./scripts/setup_symlinks
|
|
||||||
./scripts/setup_fish
|
|
||||||
./scripts/brews
|
|
||||||
./scripts/update_rust_analyzer
|
|
||||||
./scripts/rust
|
|
||||||
./scripts/cargos
|
|
||||||
./scripts/setup_cheatsheet
|
|
||||||
./scripts/setup_ytfzf
|
|
||||||
|
|
||||||
fish: bootstrap
|
|
||||||
./scripts/setup_fish
|
|
||||||
|
|
||||||
macos: bootstrap
|
|
||||||
./scripts/configure_macos
|
|
||||||
|
|
||||||
brews: bootstrap
|
|
||||||
./scripts/brews
|
|
||||||
|
|
||||||
casks: bootstrap
|
|
||||||
./scripts/casks
|
|
||||||
|
|
||||||
rust:
|
|
||||||
./scripts/update_rust_analyzer
|
|
||||||
./scripts/rust
|
|
||||||
|
|
||||||
cargos: rust
|
|
||||||
./scripts/rust
|
|
||||||
|
|
||||||
programs:
|
|
||||||
./scripts/setup_cheatsheet
|
|
||||||
./scripts/setup_ytfzf
|
|
||||||
|
|
||||||
python: brews
|
|
||||||
npm install -g pyright
|
|
@ -1,840 +0,0 @@
|
|||||||
# Configuration for Alacritty, the GPU enhanced terminal emulator.
|
|
||||||
|
|
||||||
# Any items in the `env` entry below will be added as
|
|
||||||
# environment variables. Some entries may override variables
|
|
||||||
# set by alacritty itself.
|
|
||||||
#env:
|
|
||||||
# TERM variable
|
|
||||||
#
|
|
||||||
# This value is used to set the `$TERM` environment variable for
|
|
||||||
# each instance of Alacritty. If it is not present, alacritty will
|
|
||||||
# check the local terminfo database and use `alacritty` if it is
|
|
||||||
# available, otherwise `xterm-256color` is used.
|
|
||||||
#TERM: alacritty
|
|
||||||
#TERM: xterm-256color
|
|
||||||
|
|
||||||
window:
|
|
||||||
# Window dimensions (changes require restart)
|
|
||||||
#
|
|
||||||
# Specified in number of columns/lines, not pixels.
|
|
||||||
# If both are `0`, this setting is ignored.
|
|
||||||
dimensions:
|
|
||||||
columns: 130
|
|
||||||
lines: 50
|
|
||||||
|
|
||||||
# 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: 20
|
|
||||||
y: 20
|
|
||||||
|
|
||||||
# Spread additional padding evenly around the terminal content.
|
|
||||||
#dynamic_padding: false
|
|
||||||
|
|
||||||
# Window decorations
|
|
||||||
#
|
|
||||||
# Values for `decorations`:
|
|
||||||
# - full: Borders and title bar
|
|
||||||
# - none: Neither borders nor title bar
|
|
||||||
#
|
|
||||||
# Values for `decorations` (macOS only):
|
|
||||||
# - transparent: Title bar, transparent background and title bar buttons
|
|
||||||
# - buttonless: Title bar, transparent background, but no title bar buttons
|
|
||||||
decorations: full
|
|
||||||
|
|
||||||
# Startup Mode (changes require restart)
|
|
||||||
#
|
|
||||||
# Values for `startup_mode`:
|
|
||||||
# - Windowed
|
|
||||||
# - Maximized
|
|
||||||
# - Fullscreen
|
|
||||||
#
|
|
||||||
# Values for `startup_mode` (macOS only):
|
|
||||||
# - SimpleFullscreen
|
|
||||||
startup_mode: SimpleFullscreen
|
|
||||||
|
|
||||||
# Window title
|
|
||||||
#title: Alacritty
|
|
||||||
|
|
||||||
# Window class (Linux/BSD only):
|
|
||||||
#class:
|
|
||||||
# Application instance name
|
|
||||||
#instance: Alacritty
|
|
||||||
# General application class
|
|
||||||
#general: Alacritty
|
|
||||||
|
|
||||||
# GTK theme variant (Linux/BSD only)
|
|
||||||
#
|
|
||||||
# Override the variant of the GTK theme. Commonly supported values are `dark` and `light`.
|
|
||||||
# Set this to `None` to use the default theme variant.
|
|
||||||
#gtk_theme_variant: None
|
|
||||||
|
|
||||||
scrolling:
|
|
||||||
# Maximum number of lines in the scrollback buffer.
|
|
||||||
# Specifying '0' will disable scrolling.
|
|
||||||
history: 10000
|
|
||||||
|
|
||||||
# Scrolling distance multiplier.
|
|
||||||
#multiplier: 3
|
|
||||||
|
|
||||||
# Font configuration
|
|
||||||
font:
|
|
||||||
# Normal (roman) font face
|
|
||||||
normal:
|
|
||||||
# Font family
|
|
||||||
#
|
|
||||||
# Default:
|
|
||||||
# - (macOS) Menlo
|
|
||||||
# - (Linux/BSD) monospace
|
|
||||||
# - (Windows) Consolas
|
|
||||||
#family: Fira Code
|
|
||||||
#family: Noto Sans Mono
|
|
||||||
# family: Fira Mono for Powerline
|
|
||||||
family: FiraMono Nerd Font
|
|
||||||
|
|
||||||
# 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: 17.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.
|
|
||||||
#
|
|
||||||
# Allowed values are CellForeground and CellBackground, which reference the
|
|
||||||
# affected cell, or hexadecimal colors like #ff00ff.
|
|
||||||
#search:
|
|
||||||
# matches:
|
|
||||||
# foreground: '#000000'
|
|
||||||
# background: '#ffffff'
|
|
||||||
#
|
|
||||||
# bar:
|
|
||||||
# background: CellForeground
|
|
||||||
# foreground: CellBackground
|
|
||||||
|
|
||||||
# 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. 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:
|
|
||||||
#semantic_escape_chars: ",│`|:\"' ()[]{}<>\t"
|
|
||||||
|
|
||||||
# When set to `true`, selected text will be copied to the primary clipboard.
|
|
||||||
#save_to_clipboard: false
|
|
||||||
|
|
||||||
# Allow terminal applications to change Alacritty's window title.
|
|
||||||
#dynamic_title: true
|
|
||||||
|
|
||||||
#cursor:
|
|
||||||
# Cursor style
|
|
||||||
#
|
|
||||||
# Values for `style`:
|
|
||||||
# - ▇ Block
|
|
||||||
# - _ Underline
|
|
||||||
# - | Beam
|
|
||||||
#style: Block
|
|
||||||
|
|
||||||
# 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: Block
|
|
||||||
|
|
||||||
# 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: /usr/local/bin/fish
|
|
||||||
args:
|
|
||||||
- --login
|
|
||||||
- --init-command
|
|
||||||
- tmux a -t noah || tmux new -s noah
|
|
||||||
|
|
||||||
# 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
|
|
||||||
# - SearchBackward
|
|
||||||
# - Copy
|
|
||||||
# - Paste
|
|
||||||
# - PasteSelection
|
|
||||||
# - IncreaseFontSize
|
|
||||||
# - DecreaseFontSize
|
|
||||||
# - ResetFontSize
|
|
||||||
# - ScrollPageUp
|
|
||||||
# - ScrollPageDown
|
|
||||||
# - ScrollHalfPageUp
|
|
||||||
# - ScrollHalfPageDown
|
|
||||||
# - ScrollLineUp
|
|
||||||
# - ScrollLineDown
|
|
||||||
# - ScrollToTop
|
|
||||||
# - ScrollToBottom
|
|
||||||
# - ClearHistory
|
|
||||||
# - Hide
|
|
||||||
# - Minimize
|
|
||||||
# - Quit
|
|
||||||
# - ToggleFullscreen
|
|
||||||
# - SpawnNewInstance
|
|
||||||
# - ClearLogNotice
|
|
||||||
# - ClearSelection
|
|
||||||
# - ReceiveChar
|
|
||||||
# - None
|
|
||||||
#
|
|
||||||
# (`mode: Vi` only):
|
|
||||||
# - Open
|
|
||||||
# - Up
|
|
||||||
# - Down
|
|
||||||
# - Left
|
|
||||||
# - Right
|
|
||||||
# - First
|
|
||||||
# - Last
|
|
||||||
# - FirstOccupied
|
|
||||||
# - High
|
|
||||||
# - Middle
|
|
||||||
# - Low
|
|
||||||
# - SemanticLeft
|
|
||||||
# - SemanticRight
|
|
||||||
# - SemanticLeftEnd
|
|
||||||
# - SemanticRightEnd
|
|
||||||
# - WordRight
|
|
||||||
# - WordLeft
|
|
||||||
# - WordRightEnd
|
|
||||||
# - WordLeftEnd
|
|
||||||
# - Bracket
|
|
||||||
# - ToggleNormalSelection
|
|
||||||
# - ToggleLineSelection
|
|
||||||
# - ToggleBlockSelection
|
|
||||||
# - ToggleSemanticSelection
|
|
||||||
# - SearchNext
|
|
||||||
# - SearchPrevious
|
|
||||||
# - SearchStart
|
|
||||||
# - SearchEnd
|
|
||||||
#
|
|
||||||
# (macOS only):
|
|
||||||
# - ToggleSimpleFullscreen: Enters fullscreen without occupying another space
|
|
||||||
#
|
|
||||||
# (Linux/BSD only):
|
|
||||||
# - CopySelection: Copies into 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
|
|
||||||
#
|
|
||||||
# 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: F, mods: Super, action: ToggleSimpleFullscreen }
|
|
||||||
|
|
||||||
# Reference for escape codes: https://www.gaijin.at/en/infos/ascii-ansi-character-table
|
|
||||||
|
|
||||||
- { key: L, mods : Super, chars: "\x1F" } # CMD-L sends null key for fish
|
|
||||||
- { key: H, mods : Super|Shift, chars: "\x02p" } # CMD-SHIFT-H previous tmux window
|
|
||||||
- { key: L, mods : Super|Shift, chars: "\x02n" } # CMD-SHIFT-L next tmux window
|
|
||||||
|
|
||||||
- { key: Return, mods : Shift, chars: "\x1b[13;2u" }
|
|
||||||
- { key: Return, mods : Control, chars: "\x1b[13;5u" }
|
|
||||||
- { key: Return, mods : Control|Shift, chars: "\x1b[13;6u" }
|
|
||||||
|
|
||||||
- { key: N, mods: Command, action: SpawnNewInstance }
|
|
||||||
- { key: PageUp, action: ScrollPageUp }
|
|
||||||
- { key: PageUp, mode: Alt, chars: "\x1B[5~" }
|
|
||||||
- { key: PageUp, mods: Shift, chars: "\x1B[5~" }
|
|
||||||
- { key: PageDown, action: ScrollPageDown }
|
|
||||||
- { key: PageDown, mode: Alt, chars: "\x1B[6~" }
|
|
||||||
- { key: PageDown, mods: Shift, chars: "\x1B[6~" }
|
|
||||||
- { key: Home, action: ScrollToTop }
|
|
||||||
- { key: Home, mode: Alt, chars: "\x1BOH" }
|
|
||||||
- { key: Home, mods: Shift, chars: "\x1B[H" }
|
|
||||||
- { key: End, action: ScrollToBottom }
|
|
||||||
- { key: End, mode: Alt, chars: "\x1BOF" }
|
|
||||||
- { key: End, mods: Shift, chars: "\x1B[F" }
|
|
||||||
- { key: Tab, mods: Alt, chars: "\x1B\t" }
|
|
||||||
- { key: Tab, mods: Alt|Shift, chars: "\x1B\x1B[Z" }
|
|
||||||
- { key: Back, chars: "\x7F" }
|
|
||||||
- { key: Back, mods: Alt, chars: "\x1B\x7F" }
|
|
||||||
- { key: Back, mods: Alt|Shift, chars: "\x1B\x08" }
|
|
||||||
- { key: Space, mods: Control, chars: "\x00" }
|
|
||||||
- { key: Space, mods: Alt, chars: "\x20" }
|
|
||||||
- { key: Left, mods: Alt, chars: "\x1Bb" }
|
|
||||||
- { key: Left, mods: Alt|Shift, chars: "\x1B\x1B[D" }
|
|
||||||
- { key: Right, mods: Alt, chars: "\x1Bf" }
|
|
||||||
- { key: Right, mods: Alt|Shift, chars: "\x1B\x1B[C" }
|
|
||||||
- { key: Down, mods: Alt, chars: "\x1B\x1B[B" }
|
|
||||||
- { key: Down, mods: Alt|Shift, chars: "\x1B\x1B[B" }
|
|
||||||
- { key: Up, mods: Alt, chars: "\x1B\x1B[A" }
|
|
||||||
- { key: Up, mods: Alt|Shift, chars: "\x1B\x1B[A" }
|
|
||||||
- { key: A, mods: Alt, chars: "\x1Ba" }
|
|
||||||
- { key: A, mods: Alt|Shift, chars: "\x1BA" }
|
|
||||||
- { key: B, mods: Alt, chars: "\x1Bb" }
|
|
||||||
- { key: B, mods: Alt|Shift, chars: "\x1BB" }
|
|
||||||
- { key: C, mods: Alt, chars: "\x1Bc" }
|
|
||||||
- { key: C, mods: Alt|Shift, chars: "\x1BC" }
|
|
||||||
- { key: D, mods: Alt, chars: "\x1Bd" }
|
|
||||||
- { key: D, mods: Alt|Shift, chars: "\x1BD" }
|
|
||||||
- { key: E, mods: Alt, chars: "\x1Be" }
|
|
||||||
- { key: E, mods: Alt|Shift, chars: "\x1BE" }
|
|
||||||
- { key: F, mods: Alt, chars: "\x1Bf" }
|
|
||||||
- { key: F, mods: Alt|Shift, chars: "\x1BF" }
|
|
||||||
- { key: G, mods: Alt, chars: "\x1Bg" }
|
|
||||||
- { key: G, mods: Alt|Shift, chars: "\x1BG" }
|
|
||||||
- { key: H, mods: Alt, chars: "\x1Bh" }
|
|
||||||
- { key: H, mods: Alt|Shift, chars: "\x1BH" }
|
|
||||||
- { key: I, mods: Alt, chars: "\x1Bi" }
|
|
||||||
- { key: I, mods: Alt|Shift, chars: "\x1BI" }
|
|
||||||
- { key: J, mods: Alt, chars: "\x1Bj" }
|
|
||||||
- { key: J, mods: Alt|Shift, chars: "\x1BJ" }
|
|
||||||
- { key: K, mods: Alt, chars: "\x1Bk" }
|
|
||||||
- { key: K, mods: Alt|Shift, chars: "\x1BK" }
|
|
||||||
- { key: L, mods: Alt, chars: "\x1Bl" }
|
|
||||||
- { key: L, mods: Alt|Shift, chars: "\x1BL" }
|
|
||||||
- { key: M, mods: Alt, chars: "\x1Bm" }
|
|
||||||
- { key: M, mods: Alt|Shift, chars: "\x1BM" }
|
|
||||||
- { key: N, mods: Alt, chars: "\x1Bn" }
|
|
||||||
- { key: N, mods: Alt|Shift, chars: "\x1BN" }
|
|
||||||
- { key: O, mods: Alt, chars: "\x1Bo" }
|
|
||||||
- { key: O, mods: Alt|Shift, chars: "\x1BO" }
|
|
||||||
- { key: P, mods: Alt, chars: "\x1Bp" }
|
|
||||||
- { key: P, mods: Alt|Shift, chars: "\x1BP" }
|
|
||||||
- { key: Q, mods: Alt, chars: "\x1Bq" }
|
|
||||||
- { key: Q, mods: Alt|Shift, chars: "\x1BQ" }
|
|
||||||
- { key: R, mods: Alt, chars: "\x1Br" }
|
|
||||||
- { key: R, mods: Alt|Shift, chars: "\x1BR" }
|
|
||||||
- { key: S, mods: Alt, chars: "\x1Bs" }
|
|
||||||
- { key: S, mods: Alt|Shift, chars: "\x1BS" }
|
|
||||||
- { key: T, mods: Alt, chars: "\x1Bt" }
|
|
||||||
- { key: T, mods: Alt|Shift, chars: "\x1BT" }
|
|
||||||
- { key: U, mods: Alt, chars: "\x1Bu" }
|
|
||||||
- { key: U, mods: Alt|Shift, chars: "\x1BU" }
|
|
||||||
- { key: V, mods: Alt, chars: "\x1Bv" }
|
|
||||||
- { key: V, mods: Alt|Shift, chars: "\x1BV" }
|
|
||||||
- { key: W, mods: Alt, chars: "\x1Bw" }
|
|
||||||
- { key: W, mods: Alt|Shift, chars: "\x1BW" }
|
|
||||||
- { key: X, mods: Alt, chars: "\x1Bx" }
|
|
||||||
- { key: X, mods: Alt|Shift, chars: "\x1BX" }
|
|
||||||
- { key: Y, mods: Alt, chars: "\x1By" }
|
|
||||||
- { key: Y, mods: Alt|Shift, chars: "\x1BY" }
|
|
||||||
- { key: Z, mods: Alt, chars: "\x1Bz" }
|
|
||||||
- { key: Z, mods: Alt|Shift, chars: "\x1BZ" }
|
|
||||||
- { key: Key1, mods: Alt, chars: "\x1B1" }
|
|
||||||
- { key: Key1, mods: Alt|Shift, chars: "\x1B!" }
|
|
||||||
- { key: Key2, mods: Alt, chars: "\x1B2" }
|
|
||||||
- { key: Key2, mods: Alt|Shift, chars: "\x1B#" }
|
|
||||||
- { key: Key3, mods: Alt, chars: "\x1B3" }
|
|
||||||
- { key: Key3, mods: Alt|Shift, chars: "\x1B#" }
|
|
||||||
- { key: Key4, mods: Alt, chars: "\x1B4" }
|
|
||||||
- { key: Key4, mods: Alt|Shift, chars: "\x1B$" }
|
|
||||||
- { key: Key5, mods: Alt, chars: "\x1B5" }
|
|
||||||
- { key: Key5, mods: Alt|Shift, chars: "\x1B%" }
|
|
||||||
- { key: Key6, mods: Alt, chars: "\x1B6" }
|
|
||||||
- { key: Key6, mods: Alt|Shift, chars: "\x1B^" }
|
|
||||||
- { key: Key7, mods: Alt, chars: "\x1B7" }
|
|
||||||
- { key: Key7, mods: Alt|Shift, chars: "\x1B&" }
|
|
||||||
- { key: Key8, mods: Alt, chars: "\x1B8" }
|
|
||||||
- { key: Key8, mods: Alt|Shift, chars: "\x1B*" }
|
|
||||||
- { key: Key9, mods: Alt, chars: "\x1B9" }
|
|
||||||
- { key: Key9, mods: Alt|Shift, chars: "\x1B(" }
|
|
||||||
- { key: Key0, mods: Alt, chars: "\x1B0" }
|
|
||||||
- { key: Key0, mods: Alt|Shift, chars: "\x1B)" }
|
|
||||||
- { key: Minus, mods: Alt, chars: "\x1B-" }
|
|
||||||
- { key: Minus, mods: Alt|Shift, chars: "\x1B_" }
|
|
||||||
- { key: Equals, mods: Alt, chars: "\x1B=" }
|
|
||||||
- { key: Equals, mods: Alt|Shift, chars: "\x1B+" }
|
|
||||||
- { key: LBracket, mods: Alt, chars: "\x1B[" }
|
|
||||||
- { key: LBracket, mods: Alt|Shift, chars: "\x1B{" }
|
|
||||||
- { key: RBracket, mods: Alt, chars: "\x1B]" }
|
|
||||||
- { key: RBracket, mods: Alt|Shift, chars: "\x1B}" }
|
|
||||||
- { key: Backslash, mods: Alt, chars: "\x1B\\" }
|
|
||||||
- { key: Backslash, mods: Alt|Shift, chars: "\x1B|" }
|
|
||||||
- { key: Semicolon, mods: Alt, chars: "\x1B;" }
|
|
||||||
- { key: Semicolon, mods: Alt|Shift, chars: "\x1B:" }
|
|
||||||
- { key: Apostrophe, mods: Alt, chars: "\x1B'" }
|
|
||||||
- { key: Apostrophe, mods: Alt|Shift, chars: "\x1B\"" }
|
|
||||||
- { key: Comma, mods: Alt, chars: "\x1B," }
|
|
||||||
- { key: Comma, mods: Alt|Shift, chars: "\x1B<" }
|
|
||||||
- { key: Period, mods: Alt, chars: "\x1B." }
|
|
||||||
- { key: Period, mods: Alt|Shift, chars: "\x1B>" }
|
|
||||||
- { key: Slash, mods: Alt, chars: "\x1B/" }
|
|
||||||
- { key: Slash, mods: Alt|Shift, chars: "\x1B?" }
|
|
||||||
- { key: Grave, mods: Alt, chars: "\x1B`" }
|
|
||||||
- { key: Grave, mods: Alt|Shift, chars: "\x1B~" }
|
|
||||||
# - { key: E, mods: Alt, chars: "\x1be" } # Send ALT-E for fish
|
|
||||||
|
|
||||||
#- { 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: 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: Add, mods: Control, action: IncreaseFontSize }
|
|
||||||
#- { key: Subtract, mods: Control, action: DecreaseFontSize }
|
|
||||||
#- { key: Minus, 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: Add, mods: Command, action: IncreaseFontSize }
|
|
||||||
#- { key: Minus, 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
|
|
15
bin/bookmark
15
bin/bookmark
@ -1,15 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
URL=$1
|
|
||||||
TITLE=$2
|
|
||||||
DESCRIPTION=$3
|
|
||||||
FEED=$4
|
|
||||||
|
|
||||||
printf "\n\n## [%s](%s)\n%s\nFrom %s: added on [%s](%s.md).\n\n---\n" \
|
|
||||||
"$TITLE" \
|
|
||||||
"$URL" \
|
|
||||||
"$DESCRIPTION" \
|
|
||||||
"$FEED" \
|
|
||||||
"$TODAY_NOTE" \
|
|
||||||
"$TODAY_NOTE" \
|
|
||||||
>>"$NOTES_PATH/bookmarks.md"
|
|
13
bin/calc
13
bin/calc
@ -1,13 +0,0 @@
|
|||||||
#!/usr/bin/env ruby
|
|
||||||
#
|
|
||||||
# Run a quick calculation with Ruby
|
|
||||||
#
|
|
||||||
# Usage: calc "1/2"
|
|
||||||
|
|
||||||
class Integer
|
|
||||||
def /(other)
|
|
||||||
fdiv(other)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
puts eval(ARGV.join(""))
|
|
@ -1,3 +0,0 @@
|
|||||||
#!/usr/bin/env sh
|
|
||||||
|
|
||||||
doas -u localtimed localtimed
|
|
@ -1,3 +0,0 @@
|
|||||||
#!/usr/bin/env sh
|
|
||||||
|
|
||||||
nixos-rebuild switch -I nixos-config="/home/noah/dev/personal/dotfiles/nixos/configuration.nix"
|
|
@ -1,3 +0,0 @@
|
|||||||
#!/usr/bin/env sh
|
|
||||||
|
|
||||||
home-manager switch -f "/home/noah/dev/personal/dotfiles/nixos/home.nix"
|
|
13
bin/nuke
13
bin/nuke
@ -1,13 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
nuke() {
|
|
||||||
local pid
|
|
||||||
pid=$(ps -ef | grep -v ^root | sed 1d | fzf -m | awk '{print $2}')
|
|
||||||
|
|
||||||
if [ "x$pid" != "x" ]
|
|
||||||
then
|
|
||||||
echo $pid | xargs kill -${1:-9}
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
nuke
|
|
@ -1,4 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
security find-generic-password -s 1Password -w | op signin enterprise_console --output=raw > $HOME/.op_tmux_token_tmp
|
|
||||||
|
|
44
bin/vimv
44
bin/vimv
@ -1,44 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
set -eu
|
|
||||||
|
|
||||||
# Lists the current directory's files in Vim, so you can edit it and save to rename them
|
|
||||||
# USAGE: vimv [file1 file2]
|
|
||||||
# https://github.com/thameera/vimv
|
|
||||||
|
|
||||||
declare -r FILENAMES_FILE=$(mktemp "${TMPDIR:-/tmp}/vimv.XXX")
|
|
||||||
|
|
||||||
trap '{ rm -f "${FILENAMES_FILE}" ; }' EXIT
|
|
||||||
|
|
||||||
if [ $# -ne 0 ]; then
|
|
||||||
src=( "$@" )
|
|
||||||
else
|
|
||||||
IFS=$'\r\n' GLOBIGNORE='*' command eval 'src=($(ls))'
|
|
||||||
fi
|
|
||||||
|
|
||||||
for ((i=0;i<${#src[@]};++i)); do
|
|
||||||
echo "${src[i]}" >> "${FILENAMES_FILE}"
|
|
||||||
done
|
|
||||||
|
|
||||||
${EDITOR:-vi} "${FILENAMES_FILE}"
|
|
||||||
|
|
||||||
IFS=$'\r\n' GLOBIGNORE='*' command eval 'dest=($(cat "${FILENAMES_FILE}"))'
|
|
||||||
|
|
||||||
if (( ${#src[@]} != ${#dest[@]} )); then
|
|
||||||
echo "WARN: Number of files changed. Did you delete a line by accident? Aborting.." >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
declare -i count=0
|
|
||||||
for ((i=0;i<${#src[@]};++i)); do
|
|
||||||
if [ "${src[i]}" != "${dest[i]}" ]; then
|
|
||||||
mkdir -p "$(dirname "${dest[i]}")"
|
|
||||||
if git ls-files --error-unmatch "${src[i]}" > /dev/null 2>&1; then
|
|
||||||
git mv "${src[i]}" "${dest[i]}"
|
|
||||||
else
|
|
||||||
mv "${src[i]}" "${dest[i]}"
|
|
||||||
fi
|
|
||||||
((++count))
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
echo "$count" files renamed.
|
|
@ -1,6 +0,0 @@
|
|||||||
# Packages to install with Cargo
|
|
||||||
|
|
||||||
toml-cli # Parse TOML from the command line
|
|
||||||
rates # See exchange rates
|
|
||||||
wrangler # Cloudflare Workers CLI
|
|
||||||
csview # Quick display CSV as tables
|
|
93
darwin_setup.sh
Executable file
93
darwin_setup.sh
Executable file
@ -0,0 +1,93 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# List brews
|
||||||
|
brew list --formula
|
||||||
|
|
||||||
|
# List dependencies
|
||||||
|
brew list -1 | while read -r cask; do
|
||||||
|
echo -ne "\x1B[1;34m $cask \x1B[0m"
|
||||||
|
brew uses "$cask" --installed | awk '{printf(" %s ", $0)}'
|
||||||
|
echo ""
|
||||||
|
done
|
||||||
|
|
||||||
|
# Uninstall brews
|
||||||
|
brew remove --force "$(brew list --formula)"
|
||||||
|
brew remove --force sd
|
||||||
|
brew remove --force zoxide
|
||||||
|
brew remove --force bat
|
||||||
|
brew remove --force fzf
|
||||||
|
brew remove --force tealdeer
|
||||||
|
brew remove --force glow
|
||||||
|
brew remove --force dos2unix
|
||||||
|
brew remove --force tree
|
||||||
|
brew remove --force wget
|
||||||
|
brew remove --force telnet
|
||||||
|
brew remove --force prettyping
|
||||||
|
brew remove --force httpie
|
||||||
|
brew remove --force gpg
|
||||||
|
brew remove --force qrencode
|
||||||
|
brew remove --force mpv
|
||||||
|
brew remove --force youtube-dl
|
||||||
|
brew remove --force pandoc
|
||||||
|
brew remove --force saulpw/vd/visidata
|
||||||
|
brew remove --force mdp
|
||||||
|
brew remove --force ansible
|
||||||
|
brew remove --force terraform
|
||||||
|
brew remove --force packer
|
||||||
|
brew remove --force awscli
|
||||||
|
brew remove --force kubectl
|
||||||
|
brew remove --force k9s
|
||||||
|
brew remove --force nmasur/repo/drips
|
||||||
|
brew remove --force hashicorp/tap/terraform-ls
|
||||||
|
brew remove --force tflint
|
||||||
|
brew remove --force noti
|
||||||
|
brew remove --force awslogs
|
||||||
|
brew remove --force shellcheck
|
||||||
|
brew remove --force shfmt
|
||||||
|
brew remove --force stylua
|
||||||
|
brew remove --force python
|
||||||
|
brew remove --force ipython
|
||||||
|
brew remove --force poetry
|
||||||
|
brew remove --force ruby
|
||||||
|
brew remove --force node
|
||||||
|
brew remove --force jq
|
||||||
|
brew remove --force gh
|
||||||
|
brew remove --force direnv
|
||||||
|
brew remove --force git
|
||||||
|
brew remove --force ripgrep
|
||||||
|
brew remove --force fd
|
||||||
|
brew remove --force neovim
|
||||||
|
brew remove --force exa
|
||||||
|
brew remove --force starship
|
||||||
|
brew remove --force tmux
|
||||||
|
brew remove --force fish
|
||||||
|
# brew remove --force trash
|
||||||
|
|
||||||
|
# Uninstall casks
|
||||||
|
brew remove --force keybase
|
||||||
|
brew remove --force discord
|
||||||
|
brew remove --force obsidian
|
||||||
|
brew remove --force dropbox
|
||||||
|
brew remove --force 1password
|
||||||
|
brew remove --force firefox
|
||||||
|
brew remove --force font-fira-mono-nerd-font
|
||||||
|
brew remove --force alacritty
|
||||||
|
# brew remove --force scroll-reverser
|
||||||
|
# brew remove --force meetingbar
|
||||||
|
# brew remove --force gitify
|
||||||
|
# brew remove --force hammerspoon
|
||||||
|
# brew remove --force logitech-g-hub
|
||||||
|
|
||||||
|
# Uninstall homebrew
|
||||||
|
bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh)"
|
||||||
|
|
||||||
|
# Install Nix
|
||||||
|
sh -c "$(curl -L https://nixos.org/nix/install)"
|
||||||
|
|
||||||
|
# Install nix-darwin
|
||||||
|
nix-build https://github.com/LnL7/nix-darwin/archive/master.tar.gz -A installer
|
||||||
|
./result/bin/darwin-installer
|
||||||
|
|
||||||
|
# Use with flake (requires installing first)
|
||||||
|
darwin-rebuild switch --flake .
|
||||||
|
darwin-rebuild switch --flake .#macbook # not sure if required
|
@ -1 +0,0 @@
|
|||||||
+noall +answer
|
|
@ -1,13 +0,0 @@
|
|||||||
layout_poetry() {
|
|
||||||
if [[ ! -f pyproject.toml ]]; then
|
|
||||||
log_error 'No pyproject.toml found. Use `poetry new` or `poetry init` to create one first.'
|
|
||||||
exit 2
|
|
||||||
fi
|
|
||||||
|
|
||||||
# create venv if it doesn't exist
|
|
||||||
poetry run true
|
|
||||||
|
|
||||||
export VIRTUAL_ENV=$(poetry env info --path)
|
|
||||||
export POETRY_ACTIVE=1
|
|
||||||
PATH_add "$VIRTUAL_ENV/bin"
|
|
||||||
}
|
|
@ -1,8 +0,0 @@
|
|||||||
!.env*
|
|
||||||
!.github/
|
|
||||||
!.gitignore
|
|
||||||
!*.tfvars
|
|
||||||
.terraform/
|
|
||||||
.target/
|
|
||||||
/Library/
|
|
||||||
target
|
|
@ -1,9 +0,0 @@
|
|||||||
|
|
||||||
function __complete_nomad
|
|
||||||
set -lx COMP_LINE (commandline -cp)
|
|
||||||
test -z (commandline -ct)
|
|
||||||
and set COMP_LINE "$COMP_LINE "
|
|
||||||
/usr/local/bin/nomad
|
|
||||||
end
|
|
||||||
complete -f -c nomad -a "(__complete_nomad)"
|
|
||||||
|
|
@ -1,44 +0,0 @@
|
|||||||
#!/usr/local/bin/fish
|
|
||||||
|
|
||||||
if status --is-interactive
|
|
||||||
|
|
||||||
# Add directories to path
|
|
||||||
set PATH $PATH \
|
|
||||||
/usr/local/bin \
|
|
||||||
~/.local/bin \
|
|
||||||
$DOTS/bin \
|
|
||||||
~/.cargo/bin
|
|
||||||
|
|
||||||
# Use `vi` in the shell with cursor shapes
|
|
||||||
fish_vi_key_bindings
|
|
||||||
bind yy fish_clipboard_copy
|
|
||||||
bind Y fish_clipboard_copy
|
|
||||||
bind -M visual y fish_clipboard_copy
|
|
||||||
bind p fish_clipboard_paste
|
|
||||||
set -g fish_vi_force_cursor
|
|
||||||
set -g fish_cursor_default block
|
|
||||||
set -g fish_cursor_insert line
|
|
||||||
set -g fish_cursor_visual block
|
|
||||||
set -g fish_cursor_replace_one underscore
|
|
||||||
fish_vi_cursor
|
|
||||||
|
|
||||||
# Autojump
|
|
||||||
zoxide init fish | source
|
|
||||||
|
|
||||||
# Colors
|
|
||||||
if test -e $DOTS/fish.configlink/fish_colors
|
|
||||||
command cat $DOTS/fish.configlink/fish_colors
|
|
||||||
end
|
|
||||||
|
|
||||||
# Fuzzy finder
|
|
||||||
fzf_key_bindings
|
|
||||||
set -gx FZF_DEFAULT_COMMAND 'fd --type file'
|
|
||||||
set -g FZF_CTRL_T_COMMAND "$FZF_DEFAULT_COMMAND"
|
|
||||||
set -g FZF_DEFAULT_OPTS '-m --height 50% --border'
|
|
||||||
|
|
||||||
# Use `starship` prompt
|
|
||||||
starship init fish | source
|
|
||||||
|
|
||||||
# Hook into direnv
|
|
||||||
direnv hook fish | source
|
|
||||||
end
|
|
@ -1 +0,0 @@
|
|||||||
]4;1;rgb:cc/24/1d]4;2;rgb:98/97/1a]4;3;rgb:d7/99/21]4;4;rgb:45/85/88]4;5;rgb:b1/62/86]4;6;rgb:68/9d/6a]11;rgb:28/28/28]10;rgb:eb/db/b2]4;0;rgb:28/28/28]4;7;rgb:a8/99/84]4;8;rgb:92/83/74]4;9;rgb:fb/59/34]4;10;rgb:b8/bb/26]4;11;rgb:fa/bd/2f]4;12;rgb:83/a5/98]4;13;rgb:d3/86/9b]4;14;rgb:8e/c0/7c]4;15;rgb:eb/db/b2]4;236;rgb:32/30/2f]4;234;rgb:1d/20/21]4;235;rgb:28/28/28]4;237;rgb:3c/38/36]4;239;rgb:50/49/45]4;241;rgb:66/5c/54]4;243;rgb:7c/6f/64]4;244;rgb:92/83/74]4;245;rgb:92/83/74]4;228;rgb:f2/e5/bc]4;230;rgb:f9/f5/d7]4;229;rgb:fb/f1/c7]4;223;rgb:eb/db/b2]4;250;rgb:d5/c4/a1]4;248;rgb:bd/ae/93]4;246;rgb:a8/99/84]4;167;rgb:fb/49/34]4;142;rgb:b8/bb/26]4;214;rgb:fa/bd/2f]4;109;rgb:83/a5/98]4;175;rgb:d3/86/9b]4;108;rgb:8e/c0/7c]4;208;rgb:fe/80/19]4;88;rgb:9d/00/06]4;100;rgb:79/74/0e]4;136;rgb:b5/76/14]4;24;rgb:07/66/78]4;96;rgb:8f/3f/71]4;66;rgb:42/7b/58]4;130;rgb:af/3a/03
|
|
@ -1,152 +0,0 @@
|
|||||||
#!/usr/local/bin/fish
|
|
||||||
|
|
||||||
function abbrs --description 'All abbreviations'
|
|
||||||
|
|
||||||
# Directory aliases
|
|
||||||
abbr -a l ls
|
|
||||||
abbr -a lh 'ls -lh'
|
|
||||||
abbr -a ll 'ls -alhF'
|
|
||||||
abbr -a lf 'ls -lh | fzf'
|
|
||||||
abbr -a c cd
|
|
||||||
abbr -a -- - 'cd -'
|
|
||||||
abbr -a proj 'cd $PROJ'
|
|
||||||
abbr -a mkd 'mkdir -pv'
|
|
||||||
|
|
||||||
# Tmux
|
|
||||||
abbr -a ta 'tmux attach-session'
|
|
||||||
abbr -a tan 'tmux attach-session -t noah'
|
|
||||||
abbr -a tnn 'tmux new-session -s noah'
|
|
||||||
|
|
||||||
# Git
|
|
||||||
abbr -a g git
|
|
||||||
abbr -a gs 'git status'
|
|
||||||
abbr -a gd 'git diff'
|
|
||||||
abbr -a gds 'git diff --staged'
|
|
||||||
abbr -a gdp 'git diff HEAD^'
|
|
||||||
abbr -a ga 'git add'
|
|
||||||
abbr -a gaa 'git add -A'
|
|
||||||
abbr -a gac 'git commit -am'
|
|
||||||
abbr -a gc 'git commit -m'
|
|
||||||
abbr -a gca 'git commit --amend --no-edit'
|
|
||||||
abbr -a gcae 'git commit --amend'
|
|
||||||
abbr -a gu 'git pull'
|
|
||||||
abbr -a gp 'git push'
|
|
||||||
abbr -a gpp git-push-upstream
|
|
||||||
abbr -a gl 'git log --graph --decorate --oneline -20'
|
|
||||||
abbr -a gll 'git log --graph --decorate --oneline'
|
|
||||||
abbr -a gco 'git checkout'
|
|
||||||
abbr -a gcom 'git checkout (git symbolic-ref refs/remotes/origin/HEAD | cut -d"/" -f4)'
|
|
||||||
abbr -a gcob 'git checkout -b'
|
|
||||||
abbr -a gb 'git branch'
|
|
||||||
abbr -a gbd 'git branch -d'
|
|
||||||
abbr -a gbD 'git branch -D'
|
|
||||||
abbr -a gr 'git reset'
|
|
||||||
abbr -a grh 'git reset --hard'
|
|
||||||
abbr -a gm 'git merge'
|
|
||||||
abbr -a gcp 'git cherry-pick'
|
|
||||||
abbr -a cdg 'cd (git rev-parse --show-toplevel)'
|
|
||||||
|
|
||||||
# GitHub
|
|
||||||
abbr -a ghr 'gh repo view -w'
|
|
||||||
abbr -a gha 'gh run list | head -1 | awk \'{ print $(NF-2) }\' | xargs gh run view'
|
|
||||||
abbr -a grw 'noti gh run watch'
|
|
||||||
abbr -a grf 'gh run view --log-failed'
|
|
||||||
abbr -a grl 'gh run view --log'
|
|
||||||
abbr -a ghpr 'gh pr create && sleep 3 && noti gh run watch'
|
|
||||||
abbr -a ghm 'gh pr merge -s -d && git pull'
|
|
||||||
|
|
||||||
# Vim
|
|
||||||
if command -v nvim >/dev/null
|
|
||||||
alias --save vim='nvim'
|
|
||||||
abbr -a vimrc 'vim $HOME/.config/nvim/init.lua'
|
|
||||||
else
|
|
||||||
alias --save vim='vim'
|
|
||||||
abbr -a vimrc 'vim $HOME/.vimrc'
|
|
||||||
end
|
|
||||||
abbr -a v vim
|
|
||||||
abbr -a vl 'vim -c "normal! `0"'
|
|
||||||
abbr -a vll 'vim -c "Telescope oldfiles"'
|
|
||||||
abbr -a vh 'vim -c "Telescope oldfiles"'
|
|
||||||
|
|
||||||
# Notes
|
|
||||||
abbr -a qn quicknote
|
|
||||||
abbr -a sn syncnotes
|
|
||||||
abbr -a to today
|
|
||||||
abbr -a work 'vim $NOTES_PATH/work.md'
|
|
||||||
|
|
||||||
# RSS
|
|
||||||
abbr -a nb newsboat
|
|
||||||
|
|
||||||
# Improved CLI Tools
|
|
||||||
abbr -a cat bat # Swap cat with bat
|
|
||||||
abbr -a h 'http -Fh --all' # Curl site for headers
|
|
||||||
abbr -a j just
|
|
||||||
abbr -a scim sc-im
|
|
||||||
|
|
||||||
# Fun CLI Tools
|
|
||||||
abbr weather 'curl wttr.in/$WEATHER_CITY'
|
|
||||||
abbr moon 'curl wttr.in/Moon'
|
|
||||||
|
|
||||||
# Dotfile and config shortcuts
|
|
||||||
abbr -a s sudo
|
|
||||||
abbr -a boot '$DOTS/scripts/bootstrap'
|
|
||||||
abbr -a sshc 'vim ~/.ssh/config'
|
|
||||||
abbr -a hosts 'sudo nvim /etc/hosts'
|
|
||||||
abbr -a frc 'vim $HOME/.config/fish/config.fish'
|
|
||||||
abbr -a falias 'vim $HOME/.config/fish/functions/abbrs.fish'
|
|
||||||
|
|
||||||
# Cheat Sheets
|
|
||||||
abbr -a ssl 'openssl req -new -newkey rsa:2048 -nodes' \
|
|
||||||
'-keyout server.key -out server.csr'
|
|
||||||
abbr -a fingerprint 'ssh-keyscan myhost.com | ssh-keygen -lf -'
|
|
||||||
abbr -a publickey 'ssh-keygen -y -f ~/.ssh/id_rsa > ~/.ssh/id_rsa.pub'
|
|
||||||
abbr -a forloop 'for i in (seq 1 100)'
|
|
||||||
abbr -a gatekeeper 'sudo spctl --master-disable'
|
|
||||||
abbr -a flushdns 'sudo dscacheutil -flushcache && sudo killall -HUP mDNSResponder'
|
|
||||||
|
|
||||||
# Docker
|
|
||||||
abbr -a dc '$DOTS/bin/docker_cleanup'
|
|
||||||
abbr -a dr 'docker run --rm -it'
|
|
||||||
abbr -a db 'docker build . -t'
|
|
||||||
abbr -a ds 'docker ps -a'
|
|
||||||
abbr -a de 'docker exec -it'
|
|
||||||
abbr -a dpy 'docker run --rm -it -v $PWD:/project python:alpine python'
|
|
||||||
abbr -a alp 'docker run --rm -it -v $PWD:/project alpine sh'
|
|
||||||
|
|
||||||
# Terraform
|
|
||||||
abbr -a te terraform
|
|
||||||
abbr -a tap 'terraform apply'
|
|
||||||
|
|
||||||
# Kubernetes
|
|
||||||
abbr -a k kubectl
|
|
||||||
abbr -a pods 'kubectl get pods -A'
|
|
||||||
abbr -a nodes 'kubectl get nodes'
|
|
||||||
abbr -a deploys 'kubectl get deployments -A'
|
|
||||||
abbr -a dash kube-dashboard
|
|
||||||
abbr -a ks k9s
|
|
||||||
|
|
||||||
# Cloud
|
|
||||||
abbr -a awsc 'vim ~/.aws/credentials'
|
|
||||||
|
|
||||||
# Python
|
|
||||||
abbr -a py python
|
|
||||||
abbr -a po poetry
|
|
||||||
abbr -a pr 'poetry run python'
|
|
||||||
abbr -a pl 'poetry run pylint *'
|
|
||||||
abbr -a black 'poetry run black --target-version py38 .'
|
|
||||||
abbr -a bl 'poetry run black --target-version py38 .'
|
|
||||||
|
|
||||||
# Rust
|
|
||||||
abbr -a ca cargo
|
|
||||||
|
|
||||||
# macOS
|
|
||||||
abbr -a casks 'vim $DOTS/homebrew/Caskfile'
|
|
||||||
abbr -a t trash
|
|
||||||
|
|
||||||
# Linux
|
|
||||||
if [ (uname) = Linux ]
|
|
||||||
linux
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
end
|
|
@ -1,10 +0,0 @@
|
|||||||
function brews --description "Open Homebrew bundles file"
|
|
||||||
set -lx brewdir $DOTS/homebrew
|
|
||||||
set -l brewfile (basename $brewdir/*.Brewfile \
|
|
||||||
| fzf \
|
|
||||||
--height 70% \
|
|
||||||
--preview-window right:70% \
|
|
||||||
--preview 'bat --color=always $brewdir/{}' \
|
|
||||||
)
|
|
||||||
and vim $brewdir/$brewfile
|
|
||||||
end
|
|
@ -1,9 +0,0 @@
|
|||||||
function brewsearch --description "Install brew plugins"
|
|
||||||
set -l inst (brew formulae | eval "fzf $FZF_DEFAULT_OPTS -m --header='[press ctrl-i for info, enter to install]' --bind 'ctrl-i:preview(brew info {})'")
|
|
||||||
|
|
||||||
if not test (count $inst) = 0
|
|
||||||
for prog in $inst
|
|
||||||
brew install "$prog"
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
@ -1,10 +0,0 @@
|
|||||||
#!/usr/local/bin/fish
|
|
||||||
|
|
||||||
function commandline-git-commits
|
|
||||||
set commit (git-commits)
|
|
||||||
if [ $commit ]
|
|
||||||
commandline -i "$commit"
|
|
||||||
else
|
|
||||||
commandline -i "HEAD"
|
|
||||||
end
|
|
||||||
end
|
|
@ -1,3 +0,0 @@
|
|||||||
function copy --description 'Copy file contents into clipboard'
|
|
||||||
cat $argv | pbcopy
|
|
||||||
end
|
|
@ -1,6 +0,0 @@
|
|||||||
function edit --description "Open a file in Vim"
|
|
||||||
set vimfile (fzf)
|
|
||||||
and set vimfile (echo $vimfile | tr -d '\r')
|
|
||||||
and commandline -r "vim $vimfile"
|
|
||||||
and commandline -f execute
|
|
||||||
end
|
|
@ -1,3 +0,0 @@
|
|||||||
function envs --description 'Set from a bash environment variables file'
|
|
||||||
set -gx (cat $argv | tr "=" " " | string split ' ')
|
|
||||||
end
|
|
@ -1,12 +0,0 @@
|
|||||||
function fcd --description 'Jump to directory' -a 'directory'
|
|
||||||
if test -z $directory
|
|
||||||
set directory "$HOME"
|
|
||||||
end
|
|
||||||
if ! test -d $directory
|
|
||||||
echo "Directory not found: $directory"
|
|
||||||
return 1
|
|
||||||
end
|
|
||||||
set jump (fd -t d . $directory | fzf)
|
|
||||||
and cd $jump $argv;
|
|
||||||
and commandline -f execute;
|
|
||||||
end
|
|
@ -1,17 +0,0 @@
|
|||||||
#!/usr/local/bin/fish
|
|
||||||
|
|
||||||
function fish_user_key_bindings
|
|
||||||
bind -M insert \co 'edit'
|
|
||||||
bind -M default \co 'edit'
|
|
||||||
bind -M insert \ca 'cd ~; and edit; and commandline -a "; cd -"; commandline -f execute'
|
|
||||||
bind -M default \ca 'cd ~; and edit; and commandline -a "; cd -"; commandline -f execute'
|
|
||||||
bind -M insert \ce 'recent'
|
|
||||||
bind -M default \ce 'recent'
|
|
||||||
bind -M insert \cg 'commandline-git-commits'
|
|
||||||
bind -M insert \cf 'fcd'
|
|
||||||
bind -M default \cf 'fcd'
|
|
||||||
bind -M insert \cp 'prj'
|
|
||||||
bind -M default \cp 'prj'
|
|
||||||
bind -M insert \x1F accept-autosuggestion
|
|
||||||
bind -M default \x1F accept-autosuggestion
|
|
||||||
end
|
|
@ -1 +0,0 @@
|
|||||||
/usr/local/opt/fzf/shell/key-bindings.fish
|
|
@ -1,8 +0,0 @@
|
|||||||
# This function creates an output file of just the printf values for
|
|
||||||
# modifying the shell colors. This output file is used to load the
|
|
||||||
# current colors into my shell much faster than running the function on
|
|
||||||
# prompt.
|
|
||||||
|
|
||||||
function generate_fish_colors --description "Create fish colors file"
|
|
||||||
theme_gruvbox dark > $DOTS/fish.configlink/fish_colors
|
|
||||||
end
|
|
@ -1,16 +0,0 @@
|
|||||||
function git-add-fuzzy
|
|
||||||
set gitfile (git status -s \
|
|
||||||
| fzf \
|
|
||||||
--height 50% \
|
|
||||||
-m \
|
|
||||||
--preview-window right:70% \
|
|
||||||
--layout reverse \
|
|
||||||
--preview 'set -l IFS; set gd (git diff --color=always (echo {} | awk \'{$1=$1};1\' | cut -d" " -f2)); if test "$gd"; echo "$gd"; else; bat --color=always (echo {} | awk \'{$1=$1};1\' | cut -d" " -f2); end')
|
|
||||||
and for gf in $gitfile
|
|
||||||
set gf (echo $gf \
|
|
||||||
| awk '{$1=$1};1' \
|
|
||||||
| cut -d' ' -f2 \
|
|
||||||
)
|
|
||||||
and git add $gf
|
|
||||||
end
|
|
||||||
end
|
|
@ -1,4 +0,0 @@
|
|||||||
function git-checkout-fuzzy
|
|
||||||
set branch (git-fuzzy-branch "checkout branch...")
|
|
||||||
and git checkout $branch
|
|
||||||
end
|
|
@ -1,10 +0,0 @@
|
|||||||
function git-commits
|
|
||||||
set commitline (git log \
|
|
||||||
--pretty="format:%C(auto)%ar %h%d %s" \
|
|
||||||
| fzf \
|
|
||||||
--height 50% \
|
|
||||||
--preview 'git show --color=always (echo {} | cut -d" " -f4)' \
|
|
||||||
)
|
|
||||||
and set commit (echo $commitline | cut -d" " -f4)
|
|
||||||
and echo $commit
|
|
||||||
end
|
|
@ -1,4 +0,0 @@
|
|||||||
function git-delete-fuzzy
|
|
||||||
set branch (git-fuzzy-branch "delete branch...")
|
|
||||||
and git branch -d $branch
|
|
||||||
end
|
|
@ -1,4 +0,0 @@
|
|||||||
function git-force-delete-fuzzy
|
|
||||||
set branch (git-fuzzy-branch "force delete branch...")
|
|
||||||
and git branch -D $branch
|
|
||||||
end
|
|
@ -1,12 +0,0 @@
|
|||||||
function git-fuzzy-branch -a header
|
|
||||||
set -l current (git rev-parse --abbrev-ref HEAD | tr -d '\n')
|
|
||||||
set -l branch (git branch \
|
|
||||||
--format "%(refname:short)" \
|
|
||||||
| fzf \
|
|
||||||
--height 50% \
|
|
||||||
--header="On $current, $header" \
|
|
||||||
--preview-window right:70% \
|
|
||||||
--preview 'git log {} --color=always --pretty="format:%C(auto)%ar %h%d %s"' \
|
|
||||||
)
|
|
||||||
and echo $branch
|
|
||||||
end
|
|
@ -1,16 +0,0 @@
|
|||||||
function git-history
|
|
||||||
if not count $argv > /dev/null
|
|
||||||
echo "Must provide filename."
|
|
||||||
return 1
|
|
||||||
end
|
|
||||||
set commitline ( git log \
|
|
||||||
--follow \
|
|
||||||
--pretty="format:%C(auto)%ar %h%d %s" \
|
|
||||||
-- ./$argv \
|
|
||||||
| fzf \
|
|
||||||
--height 100% \
|
|
||||||
--preview "git diff --color=always (echo {} | cut -d' ' -f4)^1..(echo {} | cut -d' ' -f4) -- ./$argv" \
|
|
||||||
)
|
|
||||||
and set commit (echo $commitline | cut -d" " -f4)
|
|
||||||
and echo $commit
|
|
||||||
end
|
|
@ -1,4 +0,0 @@
|
|||||||
function git-merge-fuzzy
|
|
||||||
set branch (git-fuzzy-branch "merge from...")
|
|
||||||
and git merge $branch
|
|
||||||
end
|
|
@ -1,6 +0,0 @@
|
|||||||
function git-push-upstream --description "Create upstream branch"
|
|
||||||
set -l branch (git branch 2>/dev/null | grep '^\*' | colrm 1 2)
|
|
||||||
set -l command "git push --set-upstream origin $branch"
|
|
||||||
commandline -r $command
|
|
||||||
commandline -f execute
|
|
||||||
end
|
|
@ -1,8 +0,0 @@
|
|||||||
function git-show-fuzzy
|
|
||||||
set commitline (git log \
|
|
||||||
--pretty="format:%C(auto)%ar %h%d %s" \
|
|
||||||
| fzf \
|
|
||||||
)
|
|
||||||
and set commit (echo $commitline | cut -d" " -f4 )
|
|
||||||
and git show $commit
|
|
||||||
end
|
|
@ -1,39 +0,0 @@
|
|||||||
function git
|
|
||||||
if contains f $argv
|
|
||||||
switch $argv[1]
|
|
||||||
case "checkout"
|
|
||||||
git-checkout-fuzzy
|
|
||||||
case "add"
|
|
||||||
git-add-fuzzy
|
|
||||||
case "show"
|
|
||||||
git-show-fuzzy
|
|
||||||
case "merge"
|
|
||||||
git-merge-fuzzy
|
|
||||||
case "branch"
|
|
||||||
if test "$argv[2]" = "-d"
|
|
||||||
git-delete-fuzzy
|
|
||||||
else if test "$argv[2]" = "-D"
|
|
||||||
git-force-delete-fuzzy
|
|
||||||
else
|
|
||||||
echo "Not a fuzzy option."
|
|
||||||
return 1
|
|
||||||
end
|
|
||||||
case "reset"
|
|
||||||
set commit (git-commits)
|
|
||||||
and if test "$argv[2]" = "--hard"
|
|
||||||
git reset --hard $commit
|
|
||||||
else
|
|
||||||
git reset $commit
|
|
||||||
end
|
|
||||||
case "*"
|
|
||||||
echo "No fuzzy option."
|
|
||||||
return 1
|
|
||||||
end
|
|
||||||
else
|
|
||||||
if count $argv > /dev/null
|
|
||||||
command git $argv
|
|
||||||
else
|
|
||||||
command git status -sb
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
@ -1,7 +0,0 @@
|
|||||||
function ip
|
|
||||||
if count $argv > /dev/null
|
|
||||||
curl ipinfo.io/$argv
|
|
||||||
else
|
|
||||||
curl checkip.amazonaws.com
|
|
||||||
end
|
|
||||||
end
|
|
@ -1,10 +0,0 @@
|
|||||||
function journal --description "Create today's journal"
|
|
||||||
note-dates
|
|
||||||
if [ -f $TODAY_NOTE_FILE ]
|
|
||||||
echo "Already exists."
|
|
||||||
else
|
|
||||||
note-header
|
|
||||||
printf $JOURNAL_HEADER > $TODAY_NOTE_FILE
|
|
||||||
echo "New journal added."
|
|
||||||
end
|
|
||||||
end
|
|
@ -1,3 +0,0 @@
|
|||||||
function json --description "Tidy up JSON with jq"
|
|
||||||
pbpaste | jq '.' | pbcopy
|
|
||||||
end
|
|
@ -1,4 +0,0 @@
|
|||||||
function linux --description "Load only on Linux"
|
|
||||||
alias pbcopy='xclip -selection clipboard -in'
|
|
||||||
alias pbpaste='xclip -selection clipboard -out'
|
|
||||||
end
|
|
@ -1,3 +0,0 @@
|
|||||||
function ls --description "Use exa to list files"
|
|
||||||
exa $argv
|
|
||||||
end
|
|
@ -1,11 +0,0 @@
|
|||||||
function meeting --description "Describe a meeting" -a "name"
|
|
||||||
note-dates
|
|
||||||
set today_date (date -j +"%Y-%m-%d")
|
|
||||||
set time (date +"%I:%M%p" | tr '[:upper:]' '[:lower:]')
|
|
||||||
set meeting_name (echo $name | tr ' ' '-' | tr '[:upper:]' '[:lower:]')
|
|
||||||
set meeting_note $today_date-$meeting_name
|
|
||||||
set meeting_file meetings/$meeting_note.md
|
|
||||||
printf "[$TODAY_NOTE](../journal/$TODAY_NOTE.md) | #meeting\n\n# $name\n\n---\n\n" > $NOTES_PATH/$meeting_file
|
|
||||||
printf "\n\n---\n\n$time - [$name](../$meeting_file)\n\n---\n\n" >> $TODAY_NOTE_FILE
|
|
||||||
vim $NOTES_PATH/$meeting_file
|
|
||||||
end
|
|
@ -1,7 +0,0 @@
|
|||||||
function note-dates
|
|
||||||
set -g TODAY_NOTE (date +"%Y-%m-%d_%a")
|
|
||||||
set -g YESTERDAY_NOTE (date -jv "-1d" +"%Y-%m-%d_%a")
|
|
||||||
set -g TOMORROW_NOTE (date -jv "+1d" +"%Y-%m-%d_%a")
|
|
||||||
set -g LONG_DATE (date +"%A, %B %e, %Y" | sed 's/ */ /g')
|
|
||||||
set -g TODAY_NOTE_FILE $NOTES_PATH/journal/$TODAY_NOTE.md
|
|
||||||
end
|
|
@ -1,4 +0,0 @@
|
|||||||
function note-header
|
|
||||||
set -g CURRENT_WEATHER (curl -s "https://wttr.in/?format=1")
|
|
||||||
set -g JOURNAL_HEADER "[Yesterday]($YESTERDAY_NOTE.md) | [Home](../home.md) | [Today](obsidian://advanced-uri?daily=true) | [Tomorrow]($TOMORROW_NOTE.md)\n\n$LONG_DATE\n$CURRENT_WEATHER\n#journal\n\n---\n\n"
|
|
||||||
end
|
|
@ -1,10 +0,0 @@
|
|||||||
function note --description "Edit or create a note" -a "filename"
|
|
||||||
if test -n "$filename"
|
|
||||||
vim $NOTES_PATH/$filename.md
|
|
||||||
else
|
|
||||||
set file (ls $NOTES_PATH | fzf)
|
|
||||||
if [ $status -eq 0 ]
|
|
||||||
vim $NOTES_PATH/$file
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
@ -1,3 +0,0 @@
|
|||||||
function ping --description "Improved ping" -a "target"
|
|
||||||
prettyping --nolegend $target
|
|
||||||
end
|
|
@ -1,5 +0,0 @@
|
|||||||
function prj --description "cd to a project"
|
|
||||||
set projdir (ls $PROJ | fzf)
|
|
||||||
and cd $PROJ/$projdir
|
|
||||||
and commandline -f execute
|
|
||||||
end
|
|
@ -1,3 +0,0 @@
|
|||||||
function psf --description "Search for open process" -a "process"
|
|
||||||
ps aux | rg -v "$USER.*rg $argv" | rg $argv
|
|
||||||
end
|
|
@ -1,3 +0,0 @@
|
|||||||
function qr
|
|
||||||
qrencode $argv[1] -o /tmp/qr.png | open /tmp/qr.png
|
|
||||||
end
|
|
@ -1,5 +0,0 @@
|
|||||||
function quicknote --description "Write a quick note" -a "note"
|
|
||||||
note-dates
|
|
||||||
set time (date +"%I:%M%p" | tr '[:upper:]' '[:lower:]')
|
|
||||||
printf "\n\n---\n\n#### $time\n$note\n" >> $TODAY_NOTE_FILE
|
|
||||||
end
|
|
@ -1,6 +0,0 @@
|
|||||||
function recent --description "Open a recent file in Vim"
|
|
||||||
set vimfile (fd -t f --exec stat -f "%m%t%N" | sort -nr | cut -f2 | fzf)
|
|
||||||
and set vimfile (echo $vimfile | tr -d '\r')
|
|
||||||
and commandline -r "vim $vimfile"
|
|
||||||
and commandline -f execute
|
|
||||||
end
|
|
@ -1,3 +0,0 @@
|
|||||||
function reload --description "Reload fish configuration"
|
|
||||||
source $DOTS/fish.configlink/config.fish
|
|
||||||
end
|
|
@ -1,42 +0,0 @@
|
|||||||
#!/usr/local/bin/fish
|
|
||||||
|
|
||||||
function repos --description 'Clone GitHub repositories' -a 'organization'
|
|
||||||
set directory (gh-repos $organization)
|
|
||||||
and cd $directory
|
|
||||||
end
|
|
||||||
#switch $organization
|
|
||||||
# case t2; set organization "take-two"
|
|
||||||
# case d2c; set organization "take-two-t2gp"
|
|
||||||
# case t2gp; set organization "take-two-t2gp"
|
|
||||||
# case pd; set organization "private-division"
|
|
||||||
# case dots; set organization "playdots"
|
|
||||||
# case '*'; set organization "nmasur"
|
|
||||||
#end
|
|
||||||
|
|
||||||
#set selected (gh repo list "$organization" \
|
|
||||||
# --limit 50 \
|
|
||||||
# --no-archived \
|
|
||||||
# --json=name,description,isPrivate,updatedAt,primaryLanguage \
|
|
||||||
# | jq -r '.[] | .name + "," + if .description == "" then "-" else .description end + "," + .updatedAt + "," + .primaryLanguage.name' \
|
|
||||||
# | begin
|
|
||||||
# echo "REPO,DESCRIPTION,UPDATED,LANGUAGE"
|
|
||||||
# cat -
|
|
||||||
# end | column -s , -t
|
|
||||||
# | fzf \
|
|
||||||
# --header-lines=1 \
|
|
||||||
# --layout=reverse
|
|
||||||
#--bind "ctrl-o:execute:gh repo view -w $organization/{1}" \
|
|
||||||
#--preview "GH_FORCE_TTY=49% gh repo view $organization/{1} | glow -" \
|
|
||||||
#--preview-window up
|
|
||||||
#)
|
|
||||||
#if test -n (echo $selected | tr -d '\r')
|
|
||||||
# set directory "$HOME/dev/work"
|
|
||||||
# if test $organization = "nmasur"
|
|
||||||
# set directory "$HOME/dev/personal"
|
|
||||||
# end
|
|
||||||
# set repo (echo $selected | awk '{print $1}')
|
|
||||||
# set repo_full "$organization/$repo"
|
|
||||||
# gh repo clone "$repo_full" "$directory/$repo"
|
|
||||||
# cd "$directory/$repo"
|
|
||||||
#end
|
|
||||||
#end
|
|
@ -1,9 +0,0 @@
|
|||||||
function syncnotes --description "Full git commit on notes"
|
|
||||||
set current_dir $PWD
|
|
||||||
cd $NOTES_PATH
|
|
||||||
git pull
|
|
||||||
git add -A
|
|
||||||
git commit -m "autosync"
|
|
||||||
git push
|
|
||||||
cd $current_dir
|
|
||||||
end
|
|
@ -1,141 +0,0 @@
|
|||||||
#!/usr/bin/fish
|
|
||||||
function theme_gruvbox --description 'Apply gruvbox theme'
|
|
||||||
set -l mode 'light'
|
|
||||||
if test (count $argv) -gt 0
|
|
||||||
set mode $argv[1]
|
|
||||||
end
|
|
||||||
|
|
||||||
set -g contrast 'medium'
|
|
||||||
if test (count $argv) -gt 1
|
|
||||||
set contrast $argv[2]
|
|
||||||
end
|
|
||||||
|
|
||||||
switch $contrast
|
|
||||||
case 'soft'
|
|
||||||
case 'medium'
|
|
||||||
case 'hard'
|
|
||||||
case '*'
|
|
||||||
set_color $fish_color_error
|
|
||||||
echo 'Unknown contrast $contrast, choose soft, medium or hard'
|
|
||||||
set_color $fish_color_normal
|
|
||||||
return 1
|
|
||||||
end
|
|
||||||
|
|
||||||
switch $mode
|
|
||||||
case 'light'
|
|
||||||
__theme_gruvbox_base
|
|
||||||
__theme_gruvbox_light
|
|
||||||
case 'dark'
|
|
||||||
__theme_gruvbox_base
|
|
||||||
__theme_gruvbox_dark
|
|
||||||
case '*'
|
|
||||||
set_color $fish_color_error
|
|
||||||
echo 'Unknown mode $mode, choose light or dark'
|
|
||||||
set_color $fish_color_normal
|
|
||||||
return 1
|
|
||||||
end
|
|
||||||
__theme_gruvbox_palette
|
|
||||||
return 0
|
|
||||||
end
|
|
||||||
|
|
||||||
function __theme_gruvbox_base
|
|
||||||
__printf_color 1 'cc/24/1d'
|
|
||||||
__printf_color 2 '98/97/1a'
|
|
||||||
__printf_color 3 'd7/99/21'
|
|
||||||
__printf_color 4 '45/85/88'
|
|
||||||
__printf_color 5 'b1/62/86'
|
|
||||||
__printf_color 6 '68/9d/6a'
|
|
||||||
end
|
|
||||||
|
|
||||||
function __theme_gruvbox_light
|
|
||||||
set -l bg 'fb/f1/c7'
|
|
||||||
switch $contrast
|
|
||||||
case "soft"
|
|
||||||
set bg 'f2/e5/bc'
|
|
||||||
case "hard"
|
|
||||||
set bg 'f9/f5/d7'
|
|
||||||
end
|
|
||||||
command printf "\033]11;rgb:$bg\007"
|
|
||||||
|
|
||||||
set -l fg '3c/38/36'
|
|
||||||
command printf "\033]10;rgb:$fg\007"
|
|
||||||
|
|
||||||
__printf_color 0 $bg
|
|
||||||
__printf_color 7 '7c/6f/64'
|
|
||||||
__printf_color 8 '92/83/74'
|
|
||||||
__printf_color 9 '9d/00/06'
|
|
||||||
__printf_color 10 '79/74/0e'
|
|
||||||
__printf_color 11 'b5/76/14'
|
|
||||||
__printf_color 12 '07/66/78'
|
|
||||||
__printf_color 13 '8f/3f/71'
|
|
||||||
__printf_color 14 '42/7b/58'
|
|
||||||
__printf_color 15 $fg
|
|
||||||
end
|
|
||||||
|
|
||||||
function __theme_gruvbox_dark
|
|
||||||
set -l bg '28/28/28'
|
|
||||||
switch $contrast
|
|
||||||
case "soft"
|
|
||||||
set bg '32/30/2f'
|
|
||||||
case "hard"
|
|
||||||
set bg '1d/20/21'
|
|
||||||
end
|
|
||||||
command printf "\033]11;rgb:$bg\007"
|
|
||||||
|
|
||||||
set -l fg 'eb/db/b2'
|
|
||||||
command printf "\033]10;rgb:$fg\007"
|
|
||||||
|
|
||||||
__printf_color 0 $bg
|
|
||||||
__printf_color 7 'a8/99/84'
|
|
||||||
__printf_color 8 '92/83/74'
|
|
||||||
__printf_color 9 'fb/59/34'
|
|
||||||
__printf_color 10 'b8/bb/26'
|
|
||||||
__printf_color 11 'fa/bd/2f'
|
|
||||||
__printf_color 12 '83/a5/98'
|
|
||||||
__printf_color 13 'd3/86/9b'
|
|
||||||
__printf_color 14 '8e/c0/7c'
|
|
||||||
__printf_color 15 $fg
|
|
||||||
end
|
|
||||||
|
|
||||||
function __theme_gruvbox_palette
|
|
||||||
__printf_color 236 '32/30/2f'
|
|
||||||
__printf_color 234 '1d/20/21'
|
|
||||||
|
|
||||||
__printf_color 235 '28/28/28'
|
|
||||||
__printf_color 237 '3c/38/36'
|
|
||||||
__printf_color 239 '50/49/45'
|
|
||||||
__printf_color 241 '66/5c/54'
|
|
||||||
__printf_color 243 '7c/6f/64'
|
|
||||||
|
|
||||||
__printf_color 244 '92/83/74'
|
|
||||||
__printf_color 245 '92/83/74'
|
|
||||||
|
|
||||||
__printf_color 228 'f2/e5/bc'
|
|
||||||
__printf_color 230 'f9/f5/d7'
|
|
||||||
|
|
||||||
__printf_color 229 'fb/f1/c7'
|
|
||||||
__printf_color 223 'eb/db/b2'
|
|
||||||
__printf_color 250 'd5/c4/a1'
|
|
||||||
__printf_color 248 'bd/ae/93'
|
|
||||||
__printf_color 246 'a8/99/84'
|
|
||||||
|
|
||||||
__printf_color 167 'fb/49/34'
|
|
||||||
__printf_color 142 'b8/bb/26'
|
|
||||||
__printf_color 214 'fa/bd/2f'
|
|
||||||
__printf_color 109 '83/a5/98'
|
|
||||||
__printf_color 175 'd3/86/9b'
|
|
||||||
__printf_color 108 '8e/c0/7c'
|
|
||||||
__printf_color 208 'fe/80/19'
|
|
||||||
|
|
||||||
__printf_color 88 '9d/00/06'
|
|
||||||
__printf_color 100 '79/74/0e'
|
|
||||||
__printf_color 136 'b5/76/14'
|
|
||||||
__printf_color 24 '07/66/78'
|
|
||||||
__printf_color 96 '8f/3f/71'
|
|
||||||
__printf_color 66 '42/7b/58'
|
|
||||||
__printf_color 130 'af/3a/03'
|
|
||||||
end
|
|
||||||
|
|
||||||
function __printf_color
|
|
||||||
command printf "\033]4;$argv[1];rgb:$argv[2]\007"
|
|
||||||
end
|
|
@ -1,11 +0,0 @@
|
|||||||
#!/usr/local/bin/fish
|
|
||||||
|
|
||||||
function tickers --description "Stock and money tickers"
|
|
||||||
abbr -a tk 'tickrs -s'
|
|
||||||
abbr -a vt 'tickrs -s vt'
|
|
||||||
abbr -a vti 'tickrs -s vti'
|
|
||||||
abbr -a vxus 'tickrs -s vxus'
|
|
||||||
abbr -a btc 'rates btc usd'
|
|
||||||
abbr -a ada 'rates ada usd'
|
|
||||||
abbr -a eth 'rates eth usd'
|
|
||||||
end
|
|
@ -1,11 +0,0 @@
|
|||||||
function today --description "Open today's journal"
|
|
||||||
note-dates
|
|
||||||
if [ -f $TODAY_NOTE_FILE ]
|
|
||||||
vim $TODAY_NOTE_FILE
|
|
||||||
else
|
|
||||||
note-header
|
|
||||||
printf $JOURNAL_HEADER > $TODAY_NOTE_FILE
|
|
||||||
echo "New journal added."
|
|
||||||
vim $TODAY_NOTE_FILE
|
|
||||||
end
|
|
||||||
end
|
|
@ -1,16 +0,0 @@
|
|||||||
#!/usr/local/bin/fish
|
|
||||||
|
|
||||||
function uncommitted --description "Find uncommitted git repos"
|
|
||||||
set current_dir (pwd)
|
|
||||||
cd $HOME/dev
|
|
||||||
find . -type d -name '.git' | \
|
|
||||||
while read dir
|
|
||||||
cd $dir/../
|
|
||||||
and if test -n (echo (git status -s))
|
|
||||||
pwd
|
|
||||||
git status -s
|
|
||||||
end
|
|
||||||
cd -
|
|
||||||
end
|
|
||||||
cd $current_dir
|
|
||||||
end
|
|
@ -1,6 +0,0 @@
|
|||||||
#!/usr/bin/local/fish
|
|
||||||
|
|
||||||
function unsetaws --description "Clear AWS credentials environment variables"
|
|
||||||
set -e AWS_ACCESS_KEY_ID
|
|
||||||
set -e AWS_SECRET_ACCESS_KEY
|
|
||||||
end
|
|
@ -1,29 +0,0 @@
|
|||||||
# by @farcaller from https://github.com/fish-shell/fish-shell/issues/825#issuecomment-440286038
|
|
||||||
|
|
||||||
function up-or-search -d "Depending on cursor position and current mode, either search backward or move up one line"
|
|
||||||
# If we are already in search mode, continue
|
|
||||||
if commandline --search-mode
|
|
||||||
commandline -f history-search-backward
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
# If we are navigating the pager, then up always navigates
|
|
||||||
if commandline --paging-mode
|
|
||||||
commandline -f up-line
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
# We are not already in search mode.
|
|
||||||
# If we are on the top line, start search mode,
|
|
||||||
# otherwise move up
|
|
||||||
set lineno (commandline -L)
|
|
||||||
|
|
||||||
switch $lineno
|
|
||||||
case 1
|
|
||||||
commandline -f history-search-backward
|
|
||||||
history merge # <-- ADDED THIS
|
|
||||||
|
|
||||||
case '*'
|
|
||||||
commandline -f up-line
|
|
||||||
end
|
|
||||||
end
|
|
@ -1,3 +0,0 @@
|
|||||||
function worldmap --description "Terminal atlas"
|
|
||||||
telnet mapscii.me
|
|
||||||
end
|
|
104
flake.lock
Normal file
104
flake.lock
Normal file
@ -0,0 +1,104 @@
|
|||||||
|
{
|
||||||
|
"nodes": {
|
||||||
|
"darwin": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1651916036,
|
||||||
|
"narHash": "sha256-UuD9keUGm4IuVEV6wdSYbuRm7CwfXE63hVkzKDjVsh4=",
|
||||||
|
"owner": "lnl7",
|
||||||
|
"repo": "nix-darwin",
|
||||||
|
"rev": "2f2bdf658d2b79bada78dc914af99c53cad37cba",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "lnl7",
|
||||||
|
"ref": "master",
|
||||||
|
"repo": "nix-darwin",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"home-manager": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1654422613,
|
||||||
|
"narHash": "sha256-ZxkMM13AnrMwYOV99ohzcqeTkAOqD9Q2SBdZ9WoFE9Y=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"rev": "20703892473d01c70fb10248442231fe94f4ceb4",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"ref": "master",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1654230545,
|
||||||
|
"narHash": "sha256-8Vlwf0x8ow6pPOK2a04bT+pxIeRnM1+O0Xv9/CuDzRs=",
|
||||||
|
"owner": "nixos",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "236cc2971ac72acd90f0ae3a797f9f83098b17ec",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nixos",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nur": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1654429664,
|
||||||
|
"narHash": "sha256-rQe6/72yWA78RzWogM8ZT++XYoYrZJdF/T6mjcCqsfU=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nur",
|
||||||
|
"rev": "18fa7520a7ca968eb74b46036329f3f7606bd541",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nur",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"inputs": {
|
||||||
|
"darwin": "darwin",
|
||||||
|
"home-manager": "home-manager",
|
||||||
|
"nixpkgs": "nixpkgs",
|
||||||
|
"nur": "nur",
|
||||||
|
"wallpapers": "wallpapers"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"wallpapers": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1653239252,
|
||||||
|
"narHash": "sha256-Fiw5P+XULgqlLRGf+GKaRZ+Nw0UIx5TaYa7ipiA0+X4=",
|
||||||
|
"owner": "exorcist365",
|
||||||
|
"repo": "wallpapers",
|
||||||
|
"rev": "4e0a72a8d67264e58fa0424693fd93cb24bc527c",
|
||||||
|
"type": "gitlab"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "exorcist365",
|
||||||
|
"repo": "wallpapers",
|
||||||
|
"type": "gitlab"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "root",
|
||||||
|
"version": 7
|
||||||
|
}
|
91
flake.nix
Normal file
91
flake.nix
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
{
|
||||||
|
description = "My system";
|
||||||
|
|
||||||
|
# Other flakes that we want to pull from
|
||||||
|
inputs = {
|
||||||
|
|
||||||
|
# Used for system packages
|
||||||
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||||
|
|
||||||
|
# Used for MacOS system config
|
||||||
|
darwin = {
|
||||||
|
url = "github:/lnl7/nix-darwin/master";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
|
# Used for user packages
|
||||||
|
home-manager = {
|
||||||
|
url = "github:nix-community/home-manager/master";
|
||||||
|
inputs.nixpkgs.follows =
|
||||||
|
"nixpkgs"; # Use system packages list where available
|
||||||
|
};
|
||||||
|
|
||||||
|
# Community packages; used for Firefox extensions
|
||||||
|
nur.url = "github:nix-community/nur";
|
||||||
|
|
||||||
|
# Wallpapers
|
||||||
|
wallpapers = {
|
||||||
|
url = "gitlab:exorcist365/wallpapers";
|
||||||
|
flake = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs = { self, nixpkgs, darwin, home-manager, nur, wallpapers }:
|
||||||
|
|
||||||
|
let
|
||||||
|
|
||||||
|
# Global configuration for my systems
|
||||||
|
globals = {
|
||||||
|
user = "noah";
|
||||||
|
fullName = "Noah Masur";
|
||||||
|
gitEmail = "7386960+nmasur@users.noreply.github.com";
|
||||||
|
mailServer = "noahmasur.com";
|
||||||
|
dotfilesRepo = "https://github.com/nmasur/dotfiles";
|
||||||
|
};
|
||||||
|
|
||||||
|
# System types to support.
|
||||||
|
supportedSystems =
|
||||||
|
[ "x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin" ];
|
||||||
|
|
||||||
|
# Helper function to generate an attrset '{ x86_64-linux = f "x86_64-linux"; ... }'.
|
||||||
|
forAllSystems = nixpkgs.lib.genAttrs supportedSystems;
|
||||||
|
|
||||||
|
in {
|
||||||
|
|
||||||
|
# You can load it from any NixOS system with:
|
||||||
|
# nix-shell -p nixFlakes
|
||||||
|
# sudo nixos-rebuild switch --flake github:nmasur/dotfiles#desktop
|
||||||
|
nixosConfigurations = {
|
||||||
|
desktop = import ./hosts/desktop {
|
||||||
|
inherit nixpkgs home-manager nur globals wallpapers;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
darwinConfigurations = {
|
||||||
|
macbook = import ./hosts/macbook {
|
||||||
|
inherit nixpkgs darwin home-manager nur globals;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# You can partition, format, and install from a live disk with:
|
||||||
|
# nix-shell -p nixFlakes
|
||||||
|
# nix run github:nmasur/dotfiles#installer -- nvme0n1 desktop
|
||||||
|
# Will erase drives; use at your own risk!
|
||||||
|
apps = forAllSystems (system:
|
||||||
|
let pkgs = import nixpkgs { inherit system; };
|
||||||
|
in {
|
||||||
|
installer = import ./modules/system/installer.nix { inherit pkgs; };
|
||||||
|
});
|
||||||
|
|
||||||
|
# Used to run commands and edit files in this repo
|
||||||
|
devShells = forAllSystems (system:
|
||||||
|
let pkgs = import nixpkgs { inherit system; };
|
||||||
|
in {
|
||||||
|
default = pkgs.mkShell {
|
||||||
|
buildInputs = with pkgs; [ git stylua nixfmt shfmt shellcheck ];
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
@ -1,18 +0,0 @@
|
|||||||
[filter "lfs"]
|
|
||||||
clean = git-lfs clean -- %f
|
|
||||||
smudge = git-lfs smudge -- %f
|
|
||||||
process = git-lfs filter-process
|
|
||||||
required = true
|
|
||||||
[user]
|
|
||||||
name = Noah Masur
|
|
||||||
email = 7386960+nmasur@users.noreply.github.com
|
|
||||||
[hub]
|
|
||||||
host = github.take2games.com
|
|
||||||
[pager]
|
|
||||||
branch = false
|
|
||||||
[core]
|
|
||||||
editor = nvim
|
|
||||||
[pull]
|
|
||||||
ff = only
|
|
||||||
[credential]
|
|
||||||
helper = osxkeychain
|
|
79
hosts/common.nix
Normal file
79
hosts/common.nix
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
{ config, lib, pkgs, ... }: {
|
||||||
|
|
||||||
|
imports = [ ../modules/shell ../modules/editor ../modules/mail/himalaya.nix ];
|
||||||
|
|
||||||
|
options = with lib; {
|
||||||
|
user = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
description = "Primary user of the system";
|
||||||
|
};
|
||||||
|
userDirs = {
|
||||||
|
# Required to prevent infinite recursion when referenced by himalaya
|
||||||
|
download = lib.mkOption {
|
||||||
|
type = lib.types.str;
|
||||||
|
description = "XDG directory for downloads";
|
||||||
|
default =
|
||||||
|
if pkgs.stdenv.isDarwin then "$HOME/Downloads" else "$HOME/downloads";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
gui = {
|
||||||
|
enable = mkEnableOption {
|
||||||
|
description = "Enable graphics";
|
||||||
|
default = false;
|
||||||
|
};
|
||||||
|
colorscheme = mkOption {
|
||||||
|
type = types.attrs;
|
||||||
|
description = "Base16 color scheme";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
homePath = mkOption {
|
||||||
|
type = types.path;
|
||||||
|
description = "Path of user's home directory.";
|
||||||
|
default = builtins.toPath (if pkgs.stdenv.isDarwin then
|
||||||
|
"/Users/${config.user}"
|
||||||
|
else
|
||||||
|
"/home/${config.user}");
|
||||||
|
};
|
||||||
|
dotfilesPath = mkOption {
|
||||||
|
type = types.path;
|
||||||
|
description = "Path of dotfiles repository.";
|
||||||
|
default = config.homePath + "/dev/personal/dotfiles";
|
||||||
|
};
|
||||||
|
dotfilesRepo = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
description = "Link to dotfiles repository.";
|
||||||
|
};
|
||||||
|
unfreePackages = mkOption {
|
||||||
|
type = types.listOf types.str;
|
||||||
|
description = "List of unfree packages to allow.";
|
||||||
|
default = [ ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = {
|
||||||
|
|
||||||
|
# Enable features in Nix commands
|
||||||
|
nix.extraOptions = "experimental-features = nix-command flakes";
|
||||||
|
|
||||||
|
# Basic common system packages for all devices
|
||||||
|
environment.systemPackages = with pkgs; [ git vim wget curl ];
|
||||||
|
|
||||||
|
# Use the system-level nixpkgs instead of Home Manager's
|
||||||
|
home-manager.useGlobalPkgs = true;
|
||||||
|
|
||||||
|
# Install packages to /etc/profiles instead of ~/.nix-profile, useful when
|
||||||
|
# using multiple profiles for one user
|
||||||
|
home-manager.useUserPackages = true;
|
||||||
|
|
||||||
|
# Allow specified unfree packages (identified elsewhere)
|
||||||
|
nixpkgs.config.allowUnfreePredicate = pkg:
|
||||||
|
builtins.elem (lib.getName pkg) config.unfreePackages;
|
||||||
|
|
||||||
|
# Set a variable for dotfiles repo, not necessary but convenient
|
||||||
|
home-manager.users.${config.user} = {
|
||||||
|
home.sessionVariables = { DOTS = config.dotfilesPath; };
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
38
hosts/desktop/default.nix
Normal file
38
hosts/desktop/default.nix
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
{ nixpkgs, home-manager, nur, globals, wallpapers, ... }:
|
||||||
|
|
||||||
|
# System configuration for my desktop
|
||||||
|
nixpkgs.lib.nixosSystem {
|
||||||
|
system = "x86_64-linux";
|
||||||
|
specialArgs = { };
|
||||||
|
modules = [
|
||||||
|
globals
|
||||||
|
home-manager.nixosModules.home-manager
|
||||||
|
{
|
||||||
|
networking.hostName = "desktop";
|
||||||
|
nixpkgs.overlays = [ nur.overlay ];
|
||||||
|
gaming.steam = true;
|
||||||
|
gaming.leagueoflegends = true;
|
||||||
|
gaming.legendary = true;
|
||||||
|
gui = {
|
||||||
|
enable = true;
|
||||||
|
compositor.enable = true;
|
||||||
|
colorscheme = (import ../../modules/colorscheme/gruvbox);
|
||||||
|
wallpaper = "${wallpapers}/gruvbox/road.jpg";
|
||||||
|
gtk.theme = { name = "Adwaita-dark"; };
|
||||||
|
};
|
||||||
|
passwordHash =
|
||||||
|
"$6$PZYiMGmJIIHAepTM$Wx5EqTQ5GApzXx58nvi8azh16pdxrN6Qrv1wunDlzveOgawitWzcIxuj76X9V868fsPi/NOIEO8yVXqwzS9UF.";
|
||||||
|
}
|
||||||
|
|
||||||
|
./hardware-configuration.nix
|
||||||
|
../common.nix
|
||||||
|
../../modules/hardware
|
||||||
|
../../modules/system
|
||||||
|
../../modules/graphical
|
||||||
|
../../modules/gaming
|
||||||
|
../../modules/applications
|
||||||
|
../../modules/services/keybase.nix
|
||||||
|
../../modules/services/gnupg.nix
|
||||||
|
../../modules/services/mullvad.nix
|
||||||
|
];
|
||||||
|
}
|
30
hosts/desktop/hardware-configuration.nix
Normal file
30
hosts/desktop/hardware-configuration.nix
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||||
|
# and may be overwritten by future invocations. Please make changes
|
||||||
|
# to /etc/nixos/configuration.nix instead.
|
||||||
|
{ config, lib, pkgs, modulesPath, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
|
||||||
|
|
||||||
|
boot.initrd.availableKernelModules =
|
||||||
|
[ "xhci_pci" "ahci" "nvme" "usb_storage" "usbhid" "sd_mod" ];
|
||||||
|
boot.initrd.kernelModules = [ ];
|
||||||
|
boot.kernelModules = [ "kvm-intel" ];
|
||||||
|
boot.extraModulePackages = [ ];
|
||||||
|
|
||||||
|
fileSystems."/" = {
|
||||||
|
device = "/dev/disk/by-label/nixos";
|
||||||
|
fsType = "ext4";
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/boot" = {
|
||||||
|
device = "/dev/disk/by-label/boot";
|
||||||
|
fsType = "vfat";
|
||||||
|
};
|
||||||
|
|
||||||
|
swapDevices = [ ];
|
||||||
|
|
||||||
|
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
|
||||||
|
hardware.cpu.intel.updateMicrocode =
|
||||||
|
lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
|
}
|
21
hosts/macbook/default.nix
Normal file
21
hosts/macbook/default.nix
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
{ nixpkgs, darwin, home-manager, nur, globals, ... }:
|
||||||
|
|
||||||
|
# System configuration for my MacBook
|
||||||
|
darwin.lib.darwinSystem {
|
||||||
|
system = "x86_64-darwin";
|
||||||
|
specialArgs = { };
|
||||||
|
modules = [
|
||||||
|
globals
|
||||||
|
home-manager.darwinModules.home-manager
|
||||||
|
{
|
||||||
|
user = "Noah.Masur";
|
||||||
|
gui.enable = true;
|
||||||
|
gui.colorscheme = (import ../modules/colorscheme/gruvbox);
|
||||||
|
nixpkgs.overlays = [ nur.overlay ];
|
||||||
|
}
|
||||||
|
../common.nix
|
||||||
|
../../modules/darwin
|
||||||
|
../../modules/applications/alacritty.nix
|
||||||
|
../../modules/applications/discord.nix
|
||||||
|
];
|
||||||
|
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user