Merge branch 'experimental'

This commit is contained in:
Noah Masur 2022-06-20 09:23:26 -04:00
commit 2f58396c61
255 changed files with 4237 additions and 4485 deletions

2
.envrc
View File

@ -1 +1 @@
use nix
use flake

12
.gitignore vendored
View File

@ -1,15 +1,5 @@
.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
*.db
**/.direnv/**
result

View File

@ -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

View File

@ -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

View File

@ -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"

View File

@ -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(""))

View File

@ -1,3 +0,0 @@
#!/usr/bin/env sh
doas -u localtimed localtimed

View File

@ -1,3 +0,0 @@
#!/usr/bin/env sh
nixos-rebuild switch -I nixos-config="/home/noah/dev/personal/dotfiles/nixos/configuration.nix"

View File

@ -1,3 +0,0 @@
#!/usr/bin/env sh
home-manager switch -f "/home/noah/dev/personal/dotfiles/nixos/home.nix"

View File

@ -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

View File

@ -1,4 +0,0 @@
#!/bin/sh
security find-generic-password -s 1Password -w | op signin enterprise_console --output=raw > $HOME/.op_tmux_token_tmp

View File

@ -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.

View File

@ -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
View 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

View File

@ -1 +0,0 @@
+noall +answer

View File

@ -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"
}

View File

@ -1,8 +0,0 @@
!.env*
!.github/
!.gitignore
!*.tfvars
.terraform/
.target/
/Library/
target

View File

@ -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)"

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -1,3 +0,0 @@
function copy --description 'Copy file contents into clipboard'
cat $argv | pbcopy
end

View File

@ -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

View File

@ -1,3 +0,0 @@
function envs --description 'Set from a bash environment variables file'
set -gx (cat $argv | tr "=" " " | string split ' ')
end

View File

@ -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

View File

@ -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

View File

@ -1 +0,0 @@
/usr/local/opt/fzf/shell/key-bindings.fish

View File

@ -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

View File

@ -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

View File

@ -1,4 +0,0 @@
function git-checkout-fuzzy
set branch (git-fuzzy-branch "checkout branch...")
and git checkout $branch
end

View File

@ -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

View File

@ -1,4 +0,0 @@
function git-delete-fuzzy
set branch (git-fuzzy-branch "delete branch...")
and git branch -d $branch
end

View File

@ -1,4 +0,0 @@
function git-force-delete-fuzzy
set branch (git-fuzzy-branch "force delete branch...")
and git branch -D $branch
end

View File

@ -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

View File

@ -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

View File

@ -1,4 +0,0 @@
function git-merge-fuzzy
set branch (git-fuzzy-branch "merge from...")
and git merge $branch
end

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -1,7 +0,0 @@
function ip
if count $argv > /dev/null
curl ipinfo.io/$argv
else
curl checkip.amazonaws.com
end
end

View File

@ -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

View File

@ -1,3 +0,0 @@
function json --description "Tidy up JSON with jq"
pbpaste | jq '.' | pbcopy
end

View File

@ -1,4 +0,0 @@
function linux --description "Load only on Linux"
alias pbcopy='xclip -selection clipboard -in'
alias pbpaste='xclip -selection clipboard -out'
end

View File

@ -1,3 +0,0 @@
function ls --description "Use exa to list files"
exa $argv
end

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -1,3 +0,0 @@
function ping --description "Improved ping" -a "target"
prettyping --nolegend $target
end

View File

@ -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

View File

@ -1,3 +0,0 @@
function psf --description "Search for open process" -a "process"
ps aux | rg -v "$USER.*rg $argv" | rg $argv
end

View File

@ -1,3 +0,0 @@
function qr
qrencode $argv[1] -o /tmp/qr.png | open /tmp/qr.png
end

View File

@ -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

View File

@ -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

View File

@ -1,3 +0,0 @@
function reload --description "Reload fish configuration"
source $DOTS/fish.configlink/config.fish
end

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -1,3 +0,0 @@
function worldmap --description "Terminal atlas"
telnet mapscii.me
end

104
flake.lock generated Normal file
View 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
View 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 ];
};
});
};
}

View File

@ -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
View 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
View 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
];
}

View 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
View 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