mirror of
https://github.com/m-housh/dotfiles.git
synced 2026-02-14 14:12:41 +00:00
feat: Moves most configuration
This commit is contained in:
35
env/.config/clipse/config.json
vendored
Normal file
35
env/.config/clipse/config.json
vendored
Normal file
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"allowDuplicates": false,
|
||||
"historyFile": "$XDG_DATA_HOME/clipse/clipboard_history.json",
|
||||
"maxHistory": 50,
|
||||
"logFile": "$XDG_DATA_HOME/clipse/clipse.log",
|
||||
"themeFile": "custom_theme.json",
|
||||
"tempDir": "$XDG_DATA_HOME/clipse/tmp_files",
|
||||
"keyBindings": {
|
||||
"choose": "enter",
|
||||
"clearSelected": "S",
|
||||
"down": "down",
|
||||
"end": "end",
|
||||
"filter": "/",
|
||||
"home": "home",
|
||||
"more": "?",
|
||||
"nextPage": "right",
|
||||
"prevPage": "left",
|
||||
"preview": " ",
|
||||
"quit": "q",
|
||||
"remove": "x",
|
||||
"selectDown": "ctrl+down",
|
||||
"selectSingle": "s",
|
||||
"selectUp": "ctrl+up",
|
||||
"togglePin": "p",
|
||||
"togglePinned": "tab",
|
||||
"up": "up",
|
||||
"yankFilter": "ctrl+s"
|
||||
},
|
||||
"imageDisplay": {
|
||||
"type": "basic",
|
||||
"scaleX": 9,
|
||||
"scaleY": 9,
|
||||
"heightCut": 2
|
||||
}
|
||||
}
|
||||
29
env/.config/clipse/custom_theme.json
vendored
Normal file
29
env/.config/clipse/custom_theme.json
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"useCustomTheme": true,
|
||||
"TitleFore": "#6F4CBC",
|
||||
"TitleBack": "#1e1e2e",
|
||||
"TitleInfo": "#3498db",
|
||||
"NormalTitle": "#ffffff",
|
||||
"DimmedTitle": "#808080",
|
||||
"SelectedTitle": "#FF69B4",
|
||||
"NormalDesc": "#808080",
|
||||
"DimmedDesc": "#808080",
|
||||
"SelectedDesc": "#FF69B4",
|
||||
"StatusMsg": "#2ecc71",
|
||||
"PinIndicatorColor": "#FFD700",
|
||||
"SelectedBorder": "#3498db",
|
||||
"SelectedDescBorder": "#3498db",
|
||||
"FilteredMatch": "#ffffff",
|
||||
"FilterPrompt": "#2ecc71",
|
||||
"FilterInfo": "#3498db",
|
||||
"FilterText": "#ffffff",
|
||||
"FilterCursor": "#FFD700",
|
||||
"HelpKey": "#999999",
|
||||
"HelpDesc": "#808080",
|
||||
"PageActiveDot": "#3498db",
|
||||
"PageInactiveDot": "#808080",
|
||||
"DividerDot": "#3498db",
|
||||
"PreviewedText": "#ffffff",
|
||||
"PreviewBorder": "#3498db"
|
||||
}
|
||||
|
||||
39
env/.config/espanso/config/default.yml
vendored
Normal file
39
env/.config/espanso/config/default.yml
vendored
Normal file
@@ -0,0 +1,39 @@
|
||||
# espanso configuration file
|
||||
|
||||
# For a complete introduction, visit the official docs at: https://espanso.org/docs/
|
||||
|
||||
# You can use this file to define the global configuration options for espanso.
|
||||
# These are the parameters that will be used by default on every application,
|
||||
# but you can also override them on a per-application basis.
|
||||
|
||||
# To make customization easier, this file contains some of the commonly used
|
||||
# parameters. Feel free to uncomment and tune them to fit your needs!
|
||||
|
||||
# --- Toggle key
|
||||
|
||||
# Customize the key used to disable and enable espanso (when double tapped)
|
||||
# Available options: CTRL, SHIFT, ALT, CMD, OFF
|
||||
# You can also specify the key variant, such as LEFT_CTRL, RIGHT_SHIFT, etc...
|
||||
# toggle_key: ALT
|
||||
# You can also disable the toggle key completely with
|
||||
# toggle_key: OFF
|
||||
|
||||
# --- Injection Backend
|
||||
|
||||
# Espanso supports multiple ways of injecting text into applications. Each of
|
||||
# them has its quirks, therefore you may want to change it if you are having problems.
|
||||
# By default, espanso uses the "Auto" backend which should work well in most cases,
|
||||
# but you may want to try the "Clipboard" or "Inject" backend in case of issues.
|
||||
# backend: Clipboard
|
||||
|
||||
# --- Auto-restart
|
||||
|
||||
# Enable/disable the config auto-reload after a file change is detected.
|
||||
auto_restart: true
|
||||
# --- Clipboard threshold
|
||||
|
||||
# Because injecting long texts char-by-char is a slow operation, espanso automatically
|
||||
# uses the clipboard if the text is longer than 'clipboard_threshold' characters.
|
||||
# clipboard_threshold: 100
|
||||
|
||||
# For a list of all the available options, visit the official docs at: https://espanso.org/docs/
|
||||
5
env/.config/espanso/config/xcode.yml
vendored
Normal file
5
env/.config/espanso/config/xcode.yml
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
# Xcode specific configuration.
|
||||
|
||||
filter_exec: "Xcode"
|
||||
extra_includes:
|
||||
- "../match/_xcode_snippets.yml"
|
||||
13
env/.config/espanso/match/_xcode_snippets.yml
vendored
Normal file
13
env/.config/espanso/match/_xcode_snippets.yml
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
# These are Xcode specific matches.
|
||||
matches:
|
||||
- trigger: ":struct"
|
||||
replace: |
|
||||
struct $|$ {
|
||||
|
||||
}
|
||||
|
||||
- trigger: ":pstruct"
|
||||
replace: |
|
||||
public struct $|$ {
|
||||
|
||||
}
|
||||
17
env/.config/espanso/match/base.yml
vendored
Normal file
17
env/.config/espanso/match/base.yml
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
# espanso match file
|
||||
|
||||
# For a complete introduction, visit the official docs at: https://espanso.org/docs/
|
||||
# You can use this file to define the base matches (aka snippets)
|
||||
# that will be available in every application when using espanso.
|
||||
|
||||
# Matches are substitution rules: when you type the "trigger" string
|
||||
# it gets replaced by the "replace" string.
|
||||
|
||||
imports:
|
||||
- "./date.yml"
|
||||
- "./email.yml"
|
||||
- "./housecallpro.yml"
|
||||
- "./links.yml"
|
||||
- './symbols.yml'
|
||||
|
||||
|
||||
19
env/.config/espanso/match/date.yml
vendored
Normal file
19
env/.config/espanso/match/date.yml
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
matches:
|
||||
# Print the current date
|
||||
- trigger: ":date"
|
||||
replace: "{{mydate}}"
|
||||
vars:
|
||||
- name: mydate
|
||||
type: date
|
||||
params:
|
||||
format: "%m/%d/%Y"
|
||||
|
||||
# Iso-seconds
|
||||
- trigger: ":isosec"
|
||||
replace: "{{output}}"
|
||||
vars:
|
||||
- name: output
|
||||
type: shell
|
||||
params:
|
||||
cmd: "isosec"
|
||||
|
||||
11
env/.config/espanso/match/email.yml
vendored
Normal file
11
env/.config/espanso/match/email.yml
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
# Email configuration.
|
||||
|
||||
matches:
|
||||
# Email Addresses
|
||||
- trigger: ":@hhe"
|
||||
replace: "mhoush@houshhomeenergy.com"
|
||||
- trigger: ":@service"
|
||||
replace: "service@houshhomeenergy.com"
|
||||
- trigger: ":@me"
|
||||
replace: "michael@mhoush.com"
|
||||
|
||||
4
env/.config/espanso/match/git.yml
vendored
Normal file
4
env/.config/espanso/match/git.yml
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
matches:
|
||||
- trigger: ":gcl"
|
||||
replace: "git clone"
|
||||
|
||||
12
env/.config/espanso/match/housecallpro.yml
vendored
Normal file
12
env/.config/espanso/match/housecallpro.yml
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
# Commonly used in house call pro.
|
||||
matches:
|
||||
# House Call Pro
|
||||
- trigger: ":cc"
|
||||
replace: "Client Concern"
|
||||
- trigger: ":diag"
|
||||
replace: "Diagnostic"
|
||||
- trigger: ":wd"
|
||||
replace: "Work Description"
|
||||
- trigger: ":wp" # I often mistype for this.
|
||||
replace: "Work Description"
|
||||
|
||||
31
env/.config/espanso/match/links.yml
vendored
Normal file
31
env/.config/espanso/match/links.yml
vendored
Normal file
@@ -0,0 +1,31 @@
|
||||
# This file includes common url's / links.
|
||||
matches:
|
||||
# Github
|
||||
- trigger: ":gh"
|
||||
replace: "https://github.com"
|
||||
|
||||
# Personal Github
|
||||
- trigger: ":git"
|
||||
replace: "https://github.com/m-housh"
|
||||
|
||||
- trigger: ":pf"
|
||||
replace: "https://pointfree.co"
|
||||
|
||||
- trigger: ":gpf"
|
||||
replace: "https://github.com/pointfreeco"
|
||||
|
||||
- trigger: ":tca"
|
||||
replace: "https://github.com/pointfreeco/swift-composable-architecture"
|
||||
|
||||
# Youtube
|
||||
- trigger: ":yt"
|
||||
replace: "https://www.youtube.com/channel/UCb58SeURd5bObfTiL0KoliA"
|
||||
|
||||
# Discord
|
||||
- trigger: ":discord"
|
||||
replace: "https://discord.gg/W3p5GJfjry"
|
||||
|
||||
# TruTechTools
|
||||
- trigger: ":ttt"
|
||||
replace: "https://trutechtools.com"
|
||||
|
||||
14
env/.config/espanso/match/packages/actually-all-emojis-spaces/README.md
vendored
Normal file
14
env/.config/espanso/match/packages/actually-all-emojis-spaces/README.md
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
## Actually All Emojis
|
||||
|
||||
An up-to-date package for [espanso](https://espanso.org/) which provides triggers for all emojis (`v14.0`). Emojis and codes fetched from [Unicode.org](https://unicode.org/emoji/charts/full-emoji-list.html)
|
||||
|
||||
### Usage
|
||||
|
||||
To use this package, just type the name of the emoji between two colons. For example, to use the `smile` emoji 😄, you can type: `:smile:`
|
||||
|
||||
A full list of emojis and their CLDR Short Names can be found [here](https://unicode.org/emoji/charts/full-emoji-list.html)
|
||||
|
||||
**Note**: There are two options for this package. One with spaces between words, and one with underscores. This version uses _spaces_
|
||||
For example `:kissing face:`
|
||||
|
||||
To install the version with underscores use `actually-all-emojis`
|
||||
7
env/.config/espanso/match/packages/actually-all-emojis-spaces/_manifest.yml
vendored
Normal file
7
env/.config/espanso/match/packages/actually-all-emojis-spaces/_manifest.yml
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
author: Jobie Wong
|
||||
description: An updated package providing all v.14 emojis - fetched from unicode.org
|
||||
name: actually-all-emojis-spaces
|
||||
title: Actually All Emojis (Spaces)
|
||||
version: 0.1.0
|
||||
homepage: "https://github.com/jobiewong/espanso-emojis"
|
||||
tags: ["emoji", "chat"]
|
||||
2
env/.config/espanso/match/packages/actually-all-emojis-spaces/_pkgsource.yml
vendored
Normal file
2
env/.config/espanso/match/packages/actually-all-emojis-spaces/_pkgsource.yml
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
---
|
||||
hub
|
||||
3707
env/.config/espanso/match/packages/actually-all-emojis-spaces/package.yml
vendored
Normal file
3707
env/.config/espanso/match/packages/actually-all-emojis-spaces/package.yml
vendored
Normal file
File diff suppressed because it is too large
Load Diff
9
env/.config/espanso/match/symbols.yml
vendored
Normal file
9
env/.config/espanso/match/symbols.yml
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
matches:
|
||||
- trigger: ':deg:'
|
||||
replace: '°'
|
||||
- trigger: ':cmd:'
|
||||
replace: '⌘'
|
||||
- trigger: ':shift:'
|
||||
replace: '⇧'
|
||||
- trigger: ':noteq:'
|
||||
replace: '≠'
|
||||
104
env/.config/eza/theme.yml
vendored
Normal file
104
env/.config/eza/theme.yml
vendored
Normal file
@@ -0,0 +1,104 @@
|
||||
# see https://github.com/eza-community/eza-themes/blob/main/themes/catppuccin.yml
|
||||
|
||||
colourful: true
|
||||
|
||||
filekinds:
|
||||
normal: { foreground: "#BAC2DE" }
|
||||
directory: { foreground: "#89B4FA" }
|
||||
symlink: { foreground: "#89DCEB" }
|
||||
pipe: { foreground: "#7F849C" }
|
||||
block_device: { foreground: "#EBA0AC" }
|
||||
char_device: { foreground: "#EBA0AC" }
|
||||
socket: { foreground: "#585B70" }
|
||||
special: { foreground: "#CBA6F7" }
|
||||
executable: { foreground: "#A6E3A1" }
|
||||
mount_point: { foreground: "#74C7EC" }
|
||||
|
||||
perms:
|
||||
user_read: { foreground: "#CDD6F4" }
|
||||
user_write: { foreground: "#F9E2AF" }
|
||||
user_execute_file: { foreground: "#A6E3A1" }
|
||||
user_execute_other: { foreground: "#A6E3A1" }
|
||||
group_read: { foreground: "#BAC2DE" }
|
||||
group_write: { foreground: "#F9E2AF" }
|
||||
group_execute: { foreground: "#A6E3A1" }
|
||||
other_read: { foreground: "#A6ADC8" }
|
||||
other_write: { foreground: "#F9E2AF" }
|
||||
other_execute: { foreground: "#A6E3A1" }
|
||||
special_user_file: { foreground: "#CBA6F7" }
|
||||
special_other: { foreground: "#585B70" }
|
||||
attribute: { foreground: "#A6ADC8" }
|
||||
|
||||
size:
|
||||
major: { foreground: "#A6ADC8" }
|
||||
minor: { foreground: "#89DCEB" }
|
||||
number_byte: { foreground: "#CDD6F4" }
|
||||
number_kilo: { foreground: "#BAC2DE" }
|
||||
number_mega: { foreground: "#89B4FA" }
|
||||
number_giga: { foreground: "#CBA6F7" }
|
||||
number_huge: { foreground: "#CBA6F7" }
|
||||
unit_byte: { foreground: "#A6ADC8" }
|
||||
unit_kilo: { foreground: "#89B4FA" }
|
||||
unit_mega: { foreground: "#CBA6F7" }
|
||||
unit_giga: { foreground: "#CBA6F7" }
|
||||
unit_huge: { foreground: "#74C7EC" }
|
||||
|
||||
users:
|
||||
user_you: { foreground: "#CDD6F4" }
|
||||
user_root: { foreground: "#F38BA8" }
|
||||
user_other: { foreground: "#CBA6F7" }
|
||||
group_yours: { foreground: "#BAC2DE" }
|
||||
group_other: { foreground: "#7F849C" }
|
||||
group_root: { foreground: "#F38BA8" }
|
||||
|
||||
links:
|
||||
normal: { foreground: "#89DCEB" }
|
||||
multi_link_file: { foreground: "#74C7EC" }
|
||||
|
||||
git:
|
||||
new: { foreground: "#A6E3A1" }
|
||||
modified: { foreground: "#F9E2AF" }
|
||||
deleted: { foreground: "#F38BA8" }
|
||||
renamed: { foreground: "#94E2D5" }
|
||||
typechange: { foreground: "#F5C2E7" }
|
||||
ignored: { foreground: "#7F849C" }
|
||||
conflicted: { foreground: "#EBA0AC" }
|
||||
|
||||
git_repo:
|
||||
branch_main: { foreground: "#CDD6F4" }
|
||||
branch_other: { foreground: "#CBA6F7" }
|
||||
git_clean: { foreground: "#A6E3A1" }
|
||||
git_dirty: { foreground: "#F38BA8" }
|
||||
|
||||
security_context:
|
||||
colon: { foreground: "#7F849C" }
|
||||
user: { foreground: "#BAC2DE" }
|
||||
role: { foreground: "#CBA6F7" }
|
||||
typ: { foreground: "#585B70" }
|
||||
range: { foreground: "#CBA6F7" }
|
||||
|
||||
file_type:
|
||||
image: { foreground: "#F9E2AF" }
|
||||
video: { foreground: "#F38BA8" }
|
||||
music: { foreground: "#A6E3A1" }
|
||||
lossless: { foreground: "#94E2D5" }
|
||||
crypto: { foreground: "#585B70" }
|
||||
document: { foreground: "#CDD6F4" }
|
||||
compressed: { foreground: "#F5C2E7" }
|
||||
temp: { foreground: "#EBA0AC" }
|
||||
compiled: { foreground: "#74C7EC" }
|
||||
build: { foreground: "#585B70" }
|
||||
source: { foreground: "#89B4FA" }
|
||||
|
||||
punctuation: { foreground: "#7F849C" }
|
||||
date: { foreground: "#F9E2AF" }
|
||||
inode: { foreground: "#A6ADC8" }
|
||||
blocks: { foreground: "#9399B2" }
|
||||
header: { foreground: "#CDD6F4" }
|
||||
octal: { foreground: "#94E2D5" }
|
||||
flags: { foreground: "#CBA6F7" }
|
||||
|
||||
symlink_path: { foreground: "#89DCEB" }
|
||||
control_char: { foreground: "#74C7EC" }
|
||||
broken_symlink: { foreground: "#F38BA8" }
|
||||
broken_path_overlay: { foreground: "#585B70" }
|
||||
34
env/.config/ghostty/config
vendored
Normal file
34
env/.config/ghostty/config
vendored
Normal file
@@ -0,0 +1,34 @@
|
||||
theme = Catppuccin Mocha
|
||||
|
||||
confirm-close-surface = false
|
||||
|
||||
font-family = "Fira Code"
|
||||
font-size = 13
|
||||
font-thicken = false
|
||||
|
||||
window-save-state = always
|
||||
|
||||
# NOTE: This setting removes tabs, rounded borders, and window controls.
|
||||
# Also makes some of the below macos-titlebar-* things not matter, but
|
||||
# will take affect if this is set to true.
|
||||
window-decoration = true
|
||||
|
||||
copy-on-select = true
|
||||
quit-after-last-window-closed = true
|
||||
quit-after-last-window-closed-delay = 5m
|
||||
|
||||
# macos-auto-secure-input = true
|
||||
# macos-non-native-fullscreen = visible-menu
|
||||
# macos-titlebar-style = transparent
|
||||
# macos-titlebar-proxy-icon = hidden
|
||||
# macos-icon = custom-style
|
||||
|
||||
keybind = ctrl+shift+t=toggle_quick_terminal
|
||||
|
||||
# Splits
|
||||
keybind = super+j=goto_split:down
|
||||
keybind = super+h=goto_split:left
|
||||
keybind = super+k=goto_split:up
|
||||
keybind = super+l=goto_split:right
|
||||
keybind = super+shift+j=goto_split:previous
|
||||
keybind = super+shift+k=goto_split:next
|
||||
67
env/.config/git/config
vendored
Normal file
67
env/.config/git/config
vendored
Normal file
@@ -0,0 +1,67 @@
|
||||
[core]
|
||||
excludesfile = ~/.config/git/gitignore
|
||||
ignorecasse = false
|
||||
|
||||
[init]
|
||||
defaultBranch = main
|
||||
|
||||
[user]
|
||||
name = Michael Housh
|
||||
email = michael@mhoush.com
|
||||
signingkey = 0x90D3EB6274D5B7CF
|
||||
|
||||
[commit]
|
||||
gpgsign = true
|
||||
|
||||
[tag]
|
||||
gpgSign = true
|
||||
sort = version:refname
|
||||
|
||||
[color]
|
||||
ui = true
|
||||
|
||||
[credential]
|
||||
helper = gopass
|
||||
|
||||
[credential "https://git.housh.dev"]
|
||||
username = michael
|
||||
|
||||
[push]
|
||||
default = simple
|
||||
autoSetupRemote = true
|
||||
followTags = true
|
||||
|
||||
[fetch]
|
||||
prune = true
|
||||
#pruneTags = true
|
||||
#all = true
|
||||
|
||||
[pull]
|
||||
rebase = true
|
||||
|
||||
[filter "lfs"]
|
||||
process = git-lfs filter-process
|
||||
required = true
|
||||
clean = git-lfs clean -- %f
|
||||
smudge = git-lfs smudge -- %f
|
||||
|
||||
[column]
|
||||
ui = auto
|
||||
|
||||
[branch]
|
||||
sort = committerdate
|
||||
|
||||
[diff]
|
||||
algorithm = histogram
|
||||
colorMoved = plain
|
||||
mnemonicPrefix = true
|
||||
renames = true
|
||||
|
||||
[rerere]
|
||||
enabled = true
|
||||
autoupdate = true
|
||||
|
||||
[rebase]
|
||||
autoSquash = true
|
||||
autoStash = true
|
||||
updateRefs = true
|
||||
37
env/.config/git/gitignore
vendored
Normal file
37
env/.config/git/gitignore
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
# Compiled source #
|
||||
###################
|
||||
*.com
|
||||
*.class
|
||||
*.dll
|
||||
*.exe
|
||||
*.o
|
||||
*.so
|
||||
|
||||
# Packages #
|
||||
############
|
||||
# it's better to unpack these files and commit the raw source
|
||||
# git has its own built in compression methods
|
||||
*.7z
|
||||
*.dmg
|
||||
*.gz
|
||||
*.iso
|
||||
*.jar
|
||||
*.rar
|
||||
*.tar
|
||||
*.zip
|
||||
|
||||
# Logs and databases #
|
||||
######################
|
||||
*.log
|
||||
*.sql
|
||||
*.sqlite
|
||||
|
||||
# OS generated files #
|
||||
######################
|
||||
.DS_Store
|
||||
.DS_Store?
|
||||
._*
|
||||
.Spotlight-V100
|
||||
.Trashes
|
||||
ehthumbs.db
|
||||
Thumbs.db
|
||||
5
env/.config/npm/npmrc
vendored
Normal file
5
env/.config/npm/npmrc
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
# Needs linked to ~/.config/npm/npmrc
|
||||
|
||||
prefix=${XDG_DATA_HOME}/npm
|
||||
cache=${XDG_CACHE_HOME}/npm
|
||||
init-module=${XDG_CONFIG_HOME}/npm/config/npm-init.js
|
||||
8
env/.config/nvim/.gitignore
vendored
Normal file
8
env/.config/nvim/.gitignore
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
tt.*
|
||||
.tests
|
||||
doc/tags
|
||||
debug
|
||||
.repro
|
||||
foo.*
|
||||
*.log
|
||||
data
|
||||
15
env/.config/nvim/.neoconf.json
vendored
Normal file
15
env/.config/nvim/.neoconf.json
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"neodev": {
|
||||
"library": {
|
||||
"enabled": true,
|
||||
"plugins": true
|
||||
}
|
||||
},
|
||||
"neoconf": {
|
||||
"plugins": {
|
||||
"lua_ls": {
|
||||
"enabled": true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
201
env/.config/nvim/LICENSE
vendored
Normal file
201
env/.config/nvim/LICENSE
vendored
Normal file
@@ -0,0 +1,201 @@
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright [yyyy] [name of copyright owner]
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
4
env/.config/nvim/README.md
vendored
Normal file
4
env/.config/nvim/README.md
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
# 💤 LazyVim
|
||||
|
||||
A starter template for [LazyVim](https://github.com/LazyVim/LazyVim).
|
||||
Refer to the [documentation](https://lazyvim.github.io/installation) to get started.
|
||||
20
env/.config/nvim/after/ftplugin/markdown.lua
vendored
Normal file
20
env/.config/nvim/after/ftplugin/markdown.lua
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
-- Markdown specific key maps.
|
||||
--
|
||||
local todos = require("todo-comments")
|
||||
local keywords = { "WARN", "WARNING", "IMPORTANT" }
|
||||
|
||||
-- Show all the warnings in the quick fix list.
|
||||
vim.keymap.set(
|
||||
"n",
|
||||
"<leader>tw",
|
||||
"<CMD>Trouble todo toggle filter = {tag = {WARN, IMPORTANT}}<CR>",
|
||||
{ desc = "[T]odo [W]arnings" }
|
||||
)
|
||||
|
||||
vim.keymap.set("n", "]w", function()
|
||||
todos.jump_next({ keywords = keywords })
|
||||
end, { desc = "Next [W]arning" })
|
||||
|
||||
vim.keymap.set("n", "[w", function()
|
||||
todos.jump_prev({ keywords = keywords })
|
||||
end, { desc = "Previous [W]arning" })
|
||||
2
env/.config/nvim/after/ftplugin/swift.lua
vendored
Normal file
2
env/.config/nvim/after/ftplugin/swift.lua
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
vim.opt.tabstop = 2
|
||||
vim.opt.shiftwidth = 2
|
||||
15
env/.config/nvim/init.lua
vendored
Normal file
15
env/.config/nvim/init.lua
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
-- bootstrap lazy.nvim, LazyVim and your plugin
|
||||
vim.g.netrw_browsex_viewer = "xdg-open"
|
||||
|
||||
require("config.lazy")
|
||||
|
||||
vim.filetype.add({
|
||||
pattern = {
|
||||
[".*"] = function(path, bufnr)
|
||||
local first_line = vim.api.nvim_buf_get_lines(bufnr, 0, 1, false)[1] or ""
|
||||
if first_line:match("^#!.*zsh") then
|
||||
return "bash"
|
||||
end
|
||||
end,
|
||||
},
|
||||
})
|
||||
27
env/.config/nvim/lazyvim.json
vendored
Normal file
27
env/.config/nvim/lazyvim.json
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"extras": [
|
||||
"lazyvim.plugins.extras.coding.mini-snippets",
|
||||
"lazyvim.plugins.extras.coding.mini-surround",
|
||||
"lazyvim.plugins.extras.editor.fzf",
|
||||
"lazyvim.plugins.extras.editor.harpoon2",
|
||||
"lazyvim.plugins.extras.formatting.prettier",
|
||||
"lazyvim.plugins.extras.lang.ansible",
|
||||
"lazyvim.plugins.extras.lang.clangd",
|
||||
"lazyvim.plugins.extras.lang.cmake",
|
||||
"lazyvim.plugins.extras.lang.docker",
|
||||
"lazyvim.plugins.extras.lang.git",
|
||||
"lazyvim.plugins.extras.lang.json",
|
||||
"lazyvim.plugins.extras.lang.markdown",
|
||||
"lazyvim.plugins.extras.lang.sql",
|
||||
"lazyvim.plugins.extras.lang.tailwind",
|
||||
"lazyvim.plugins.extras.lang.tex",
|
||||
"lazyvim.plugins.extras.lang.toml",
|
||||
"lazyvim.plugins.extras.lang.yaml",
|
||||
"lazyvim.plugins.extras.util.startuptime"
|
||||
],
|
||||
"install_version": 8,
|
||||
"news": {
|
||||
"NEWS.md": "11866"
|
||||
},
|
||||
"version": 8
|
||||
}
|
||||
76
env/.config/nvim/lua/config/autocmds.lua
vendored
Normal file
76
env/.config/nvim/lua/config/autocmds.lua
vendored
Normal file
@@ -0,0 +1,76 @@
|
||||
local defaultGroupOptions = { clear = true }
|
||||
local markdownGroup = vim.api.nvim_create_augroup("MyMarkdownGroup", defaultGroupOptions)
|
||||
local createCmd = vim.api.nvim_create_autocmd
|
||||
|
||||
createCmd("BufEnter", {
|
||||
pattern = "*.md",
|
||||
group = markdownGroup,
|
||||
callback = function(_)
|
||||
-- HACK: Set filetype to markdown for '.md' files.
|
||||
-- Not sure why it doesn't detect these as markdown files, but this fixes the issue.
|
||||
vim.cmd.setlocal("filetype=markdown")
|
||||
vim.cmd.setlocal("textwidth=120")
|
||||
vim.cmd.setlocal("spell spelllang=en_us")
|
||||
end,
|
||||
})
|
||||
|
||||
-- Hyprlang LSP
|
||||
vim.api.nvim_create_autocmd({ "BufEnter", "BufWinEnter" }, {
|
||||
pattern = { "*.hl", "hypr*.conf" },
|
||||
callback = function(event)
|
||||
print(string.format("starting hyprls for %s", vim.inspect(event)))
|
||||
vim.lsp.start({
|
||||
name = "hyprlang",
|
||||
cmd = { "hyprls" },
|
||||
root_dir = vim.fn.getcwd(),
|
||||
})
|
||||
end,
|
||||
})
|
||||
|
||||
-- Markdown
|
||||
-- createCmd("BufWritePost", {
|
||||
-- pattern = { "*.md", "*.markdown" },
|
||||
-- group = markdownGroup,
|
||||
-- callback = function(_)
|
||||
-- -- local cursor = vim.fn.getpos(".")
|
||||
-- vim.cmd("FormatWrite")
|
||||
-- -- vim.fn.setpos(".", cursor)
|
||||
-- end,
|
||||
-- })
|
||||
|
||||
-- Go
|
||||
createCmd("BufWritePre", {
|
||||
pattern = "*.go",
|
||||
callback = function()
|
||||
require("go.format").goimport()
|
||||
end,
|
||||
group = vim.api.nvim_create_augroup("GoFormat", defaultGroupOptions),
|
||||
})
|
||||
|
||||
-- GoPass
|
||||
vim.api.nvim_exec2(
|
||||
[[
|
||||
autocmd BufNewFile,BufRead /private/**/gopass** setlocal noswapfile nobackup noundofile shada=""
|
||||
]],
|
||||
{}
|
||||
)
|
||||
|
||||
-- Highlight when yanking.
|
||||
createCmd("TextYankPost", {
|
||||
desc = "Highlight when yanking text.",
|
||||
group = vim.api.nvim_create_augroup("highlight-yank", { clear = true }),
|
||||
callback = function()
|
||||
vim.highlight.on_yank()
|
||||
end,
|
||||
})
|
||||
|
||||
-- Force zsh scripts to use bash syntax hyighlighting.
|
||||
vim.api.nvim_create_autocmd({ "BufRead", "BufNewFile" }, {
|
||||
pattern = "*",
|
||||
callback = function(args)
|
||||
local first_line = vim.api.nvim_buf_get_lines(args.buf, 0, 1, false)[1] or ""
|
||||
if first_line:match("^#!.*zsh") then
|
||||
vim.bo[args.buf].filetype = "bash"
|
||||
end
|
||||
end,
|
||||
})
|
||||
46
env/.config/nvim/lua/config/keymaps.lua
vendored
Normal file
46
env/.config/nvim/lua/config/keymaps.lua
vendored
Normal file
@@ -0,0 +1,46 @@
|
||||
-- Keymaps are automatically loaded on the VeryLazy event
|
||||
-- Default keymaps that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/keymaps.lua
|
||||
-- Add any additional keymaps here
|
||||
|
||||
local keymap = vim.keymap.set
|
||||
local default_options = { noremap = true, silent = true }
|
||||
local wk = require("which-key")
|
||||
|
||||
local wk_add = function(mode, keymaps)
|
||||
wk.add(keymaps, { mode = mode, silent = true })
|
||||
end
|
||||
|
||||
keymap("i", "jk", "<ESC>", default_options)
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
-- Normal Mode
|
||||
--------------------------------------------------------------------------------
|
||||
wk_add("n", {
|
||||
{ "<Left>", ":vertical resize +1<CR>", desc = "Resize Pane Left" },
|
||||
{ "<Right>", ":vertical resize -1<CR>", desc = "Resize Pane Right" },
|
||||
{ "<Up>", "resize -1<CR>", desc = "Resize Pane Up" },
|
||||
{ "<Down>", "resize +1<CR>", desc = "Resize Pane Down" },
|
||||
|
||||
{ "<leader>n", "<CMD>:noh<CR>", desc = "[N]o highlighting" },
|
||||
{ "<leader>s", "<CMD>:set spell!<CR>", desc = "[S]pell check toggle" },
|
||||
{ "<C-s>", "<CMD>:write<CR>", desc = "[S]ave" },
|
||||
|
||||
{ "J", ":move .+1<CR>==", desc = "Move line down" },
|
||||
{ "K", ":move .-2<CR>==", desc = "Move line up" },
|
||||
|
||||
{ "<leader>z", "<CMD>:ZenMode<CR>", desc = "[Z]en Mode" },
|
||||
})
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
-- Visual Mode
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
vim.keymap.set("v", "K", ":move '<-2<CR>gv=gv", { desc = "Move selected block up.", silent = true, noremap = true })
|
||||
vim.keymap.set("v", "J", ":move '>+1<CR>gv=gv", { desc = "Move selected block up.", silent = true, noremap = true })
|
||||
|
||||
-- Toggle term key maps, that get attached when terminal is opened.
|
||||
function _G.set_terminal_keymaps()
|
||||
local opts = { buffer = 0 }
|
||||
keymap("t", "<esc>", [[<C-\><C-n>]], opts)
|
||||
end
|
||||
vim.cmd("autocmd! TermOpen term://* lua set_terminal_keymaps()")
|
||||
69
env/.config/nvim/lua/config/lazy.lua
vendored
Normal file
69
env/.config/nvim/lua/config/lazy.lua
vendored
Normal file
@@ -0,0 +1,69 @@
|
||||
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
|
||||
if not (vim.uv or vim.loop).fs_stat(lazypath) then
|
||||
local lazyrepo = "https://github.com/folke/lazy.nvim.git"
|
||||
local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
|
||||
if vim.v.shell_error ~= 0 then
|
||||
vim.api.nvim_echo({
|
||||
{ "Failed to clone lazy.nvim:\n", "ErrorMsg" },
|
||||
{ out, "WarningMsg" },
|
||||
{ "\nPress any key to exit..." },
|
||||
}, true, {})
|
||||
vim.fn.getchar()
|
||||
os.exit(1)
|
||||
end
|
||||
end
|
||||
vim.opt.rtp:prepend(lazypath)
|
||||
|
||||
require("lazy").setup({
|
||||
spec = {
|
||||
-- add LazyVim and import its plugins
|
||||
{ "LazyVim/LazyVim", import = "lazyvim.plugins" },
|
||||
{
|
||||
import = "lazyvim.plugins.extras.editor.mini-files",
|
||||
opts = {
|
||||
options = {
|
||||
use_as_default_explorer = true,
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
import = "lazyvim.plugins.extras.coding.blink",
|
||||
keymap = {
|
||||
preset = "enter",
|
||||
["<C-y>"] = { "select_and_accept" },
|
||||
},
|
||||
},
|
||||
|
||||
-- import/override with your plugins
|
||||
{ import = "plugins" },
|
||||
},
|
||||
defaults = {
|
||||
-- By default, only LazyVim plugins will be lazy-loaded. Your custom plugins will load during startup.
|
||||
-- If you know what you're doing, you can set this to `true` to have all your custom plugins lazy-loaded by default.
|
||||
lazy = false,
|
||||
-- It's recommended to leave version=false for now, since a lot the plugin that support versioning,
|
||||
-- have outdated releases, which may break your Neovim install.
|
||||
version = false, -- always use the latest git commit
|
||||
-- version = "*", -- try installing the latest stable version for plugins that support semver
|
||||
},
|
||||
install = { colorscheme = { "tokyonight", "habamax" } },
|
||||
checker = {
|
||||
enabled = true, -- check for plugin updates periodically
|
||||
notify = false, -- notify on update
|
||||
}, -- automatically check for plugin updates
|
||||
performance = {
|
||||
rtp = {
|
||||
-- disable some rtp plugins
|
||||
disabled_plugins = {
|
||||
"gzip",
|
||||
-- "matchit",
|
||||
-- "matchparen",
|
||||
-- "netrwPlugin",
|
||||
"tarPlugin",
|
||||
"tohtml",
|
||||
"tutor",
|
||||
"zipPlugin",
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
72
env/.config/nvim/lua/config/options.lua
vendored
Normal file
72
env/.config/nvim/lua/config/options.lua
vendored
Normal file
@@ -0,0 +1,72 @@
|
||||
-- Options are automatically loaded before lazy.nvim startup
|
||||
-- Default options that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/options.lua
|
||||
-- Add any additional options here
|
||||
--
|
||||
local o = vim.opt
|
||||
local wo = vim.wo
|
||||
local fn = vim.fn
|
||||
|
||||
vim.cmd.set("inccommand=split")
|
||||
o.filetype = "on"
|
||||
o.updatetime = 500 -- faster completion
|
||||
o.timeoutlen = 800 -- time to wait for a mapped sequence to complete (in milliseconds)
|
||||
o.ttimeoutlen = 300 -- Time in milliseconds to wait for a key code sequence to complete
|
||||
o.backup = false -- creates a backup file
|
||||
o.swapfile = false -- enable/disable swap file creation
|
||||
o.dir = fn.stdpath("data") .. "/swp" -- swap file directory
|
||||
o.undofile = false -- enable/disable undo file creation
|
||||
o.undodir = fn.stdpath("data") .. "/undodir" -- set undo directory
|
||||
o.history = 500 -- Use the 'history' option to set the number of lines from command mode that are remembered.
|
||||
o.hidden = true -- required to keep multiple buffers and open multiple buffers
|
||||
--o.clipboard = "unnamedplus" -- allows neovim to access the system clipboard
|
||||
o.fileencoding = "utf-8" -- the encoding written to a file
|
||||
o.conceallevel = 0 -- so that `` is visible in markdown files
|
||||
o.number = true -- set numbered lines
|
||||
o.relativenumber = true -- set relative numbered lines
|
||||
o.cmdheight = 1 -- space for displaying messages/commands
|
||||
o.showmode = false -- we don't need to see things like -- INSERT -- anymore
|
||||
o.showtabline = 2 -- always show tabs
|
||||
o.laststatus = 2 -- The value of this option influences when the last window will have a status line (2 always)
|
||||
o.smartcase = true -- smart case
|
||||
o.smartindent = true -- make indenting smarter again
|
||||
o.splitbelow = true -- force all horizontal splits to go below current window
|
||||
o.splitright = true -- force all vertical splits to go to the right of current window
|
||||
o.autoindent = true -- turn on auto indent.
|
||||
o.expandtab = true -- convert tabs to spaces
|
||||
o.smarttab = true -- turn on smart tab
|
||||
o.shiftwidth = 2 -- the number of spaces inserted for each indentation
|
||||
o.tabstop = 2 -- how many columns a tab counts for
|
||||
o.termguicolors = true -- set term gui colors (most terminals support this)
|
||||
o.cursorline = true -- highlight the current line
|
||||
o.scrolloff = 20 -- Minimal number of screen lines to keep above and below the cursor
|
||||
o.sidescrolloff = 5 -- The minimal number of columns to scroll horizontally
|
||||
o.hlsearch = false -- highlight all matches on previous search pattern
|
||||
o.ignorecase = true -- ignore case in search patterns
|
||||
o.foldenable = false -- disable folding; enable with zi
|
||||
o.foldmethod = "expr"
|
||||
o.foldexpr = "nvim_treesitter#foldexpr()"
|
||||
vim.cmd.set("nolist") -- don't show listchars.
|
||||
-- o.listchars = "eol:¬,tab:>·,trail:~,extends:>,precedes:<"
|
||||
o.listchars = "eol:¬,tab:>·,trail:~,extends:>,precedes:<,space:␣"
|
||||
o.shortmess = o.shortmess + "c" -- prevent "pattern not found" messages
|
||||
wo.colorcolumn = "99999"
|
||||
o.wildmode = "full"
|
||||
o.lazyredraw = false -- do not redraw screen while running macros
|
||||
o.grepprg = "rg --hidden --vimgrep --smart-case --"
|
||||
o.completeopt = { "menu", "menuone", "noselect", "noinsert" } -- A comma separated list of options for Insert mode completion
|
||||
o.wildignorecase = true -- When set case is ignored when completing file names and directories
|
||||
o.wildignore = [[
|
||||
.git,.hg,.svn
|
||||
*.aux,*.out,*.toc
|
||||
*.o,*.obj,*.exe,*.dll,*.manifest,*.rbc,*.class
|
||||
*.ai,*.bmp,*.gif,*.ico,*.jpg,*.jpeg,*.png,*.psd,*.webp
|
||||
*.avi,*.divx,*.mp4,*.webm,*.mov,*.m2ts,*.mkv,*.vob,*.mpg,*.mpeg
|
||||
*.mp3,*.oga,*.ogg,*.wav,*.flac
|
||||
*.eot,*.otf,*.ttf,*.woff
|
||||
*.doc,*.pdf,*.cbr,*.cbz
|
||||
*.zip,*.tar.gz,*.tar.bz2,*.rar,*.tar.xz,*.kgb
|
||||
*.swp,.lock,.DS_Store,._*
|
||||
*/tmp/*,*.so,*.swp,*.zip,**/node_modules/**,**/target/**,**.terraform/**"
|
||||
]]
|
||||
o.viminfo = "" -- disable viminfo from copying information from current session, for security.
|
||||
vim.g.snacks_animate = false
|
||||
8
env/.config/nvim/lua/plugins/cmp.lua
vendored
Normal file
8
env/.config/nvim/lua/plugins/cmp.lua
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
return {
|
||||
"saghen/blink.cmp",
|
||||
opts = {
|
||||
keymap = {
|
||||
preset = "default"
|
||||
}
|
||||
}
|
||||
}
|
||||
9
env/.config/nvim/lua/plugins/colorscheme.lua
vendored
Normal file
9
env/.config/nvim/lua/plugins/colorscheme.lua
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
return {
|
||||
{ "catppuccin/nvim", name = "catppuccin", priority = 1000 },
|
||||
{
|
||||
"LazyVim/LazyVim",
|
||||
opts = {
|
||||
colorscheme = "catppuccin",
|
||||
},
|
||||
},
|
||||
}
|
||||
4
env/.config/nvim/lua/plugins/disabled.lua
vendored
Normal file
4
env/.config/nvim/lua/plugins/disabled.lua
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
return {
|
||||
{ "nvim-neo-tree/neo-tree.nvim", enabled = false },
|
||||
{ "akinsho/bufferline.nvim", enabled = false },
|
||||
}
|
||||
23
env/.config/nvim/lua/plugins/fidget.lua
vendored
Normal file
23
env/.config/nvim/lua/plugins/fidget.lua
vendored
Normal file
@@ -0,0 +1,23 @@
|
||||
return {
|
||||
"j-hui/fidget.nvim",
|
||||
event = "VeryLazy",
|
||||
config = function()
|
||||
local fidget = require("fidget")
|
||||
fidget.setup({
|
||||
notification = {
|
||||
window = {
|
||||
normal_hl = "String", -- Base highlight group in the notification window
|
||||
winblend = 0, -- Background color opacity in the notification window
|
||||
border = "rounded", -- Border around the notification window
|
||||
zindex = 45, -- Stacking priority of the notification window
|
||||
max_width = 0, -- Maximum width of the notification window
|
||||
max_height = 0, -- Maximum height of the notification window
|
||||
x_padding = 1, -- Padding from right edge of window boundary
|
||||
y_padding = 1, -- Padding from bottom edge of window boundary
|
||||
align = "bottom", -- How to align the notification window
|
||||
relative = "editor", -- What the notification window position is relative to
|
||||
},
|
||||
},
|
||||
})
|
||||
end,
|
||||
}
|
||||
30
env/.config/nvim/lua/plugins/formatter.lua
vendored
Normal file
30
env/.config/nvim/lua/plugins/formatter.lua
vendored
Normal file
@@ -0,0 +1,30 @@
|
||||
return {
|
||||
"stevearc/conform.nvim",
|
||||
opts = {
|
||||
formatters = {
|
||||
["markdown-toc"] = {
|
||||
condition = function(_, ctx)
|
||||
for _, line in ipairs(vim.api.nvim_buf_get_lines(ctx.buf, 0, -1, false)) do
|
||||
if line:find("<!%-%- toc %-%->") then
|
||||
return true
|
||||
end
|
||||
end
|
||||
end,
|
||||
},
|
||||
["markdownlint-cli2"] = {
|
||||
condition = function(_, ctx)
|
||||
local diag = vim.tbl_filter(function(d)
|
||||
return d.source == "markdownlint"
|
||||
end, vim.diagnostic.get(ctx.buf))
|
||||
return #diag > 0
|
||||
end,
|
||||
},
|
||||
},
|
||||
formatters_by_ft = {
|
||||
["markdown"] = { "prettier", "markdownlint-cli2", "markdown-toc" },
|
||||
["markdown.mdx"] = { "prettier", "markdownlint-cli2", "markdown-toc" },
|
||||
lua = { "stulua" },
|
||||
swift = { "swiftformat" },
|
||||
},
|
||||
},
|
||||
}
|
||||
78
env/.config/nvim/lua/plugins/harpoon.lua
vendored
Normal file
78
env/.config/nvim/lua/plugins/harpoon.lua
vendored
Normal file
@@ -0,0 +1,78 @@
|
||||
return {
|
||||
{
|
||||
"ThePrimeagen/harpoon",
|
||||
branch = "harpoon2",
|
||||
opts = {
|
||||
settings = {
|
||||
save_on_toggle = true,
|
||||
sync_on_ui_close = true,
|
||||
},
|
||||
},
|
||||
keys = {
|
||||
{
|
||||
"<C-e>",
|
||||
function()
|
||||
require("harpoon").ui:toggle_quick_menu(require("harpoon"):list())
|
||||
end,
|
||||
desc = "Open Harpoon window.",
|
||||
},
|
||||
{
|
||||
"<leader>a",
|
||||
function()
|
||||
require("harpoon"):list():add()
|
||||
end,
|
||||
desc = "[A]dd to the harpoon list.",
|
||||
},
|
||||
{
|
||||
"<A-y>",
|
||||
function()
|
||||
require("harpoon"):list():select(1)
|
||||
end,
|
||||
desc = "Select first harpoon buffer.",
|
||||
},
|
||||
{
|
||||
"<A-u>",
|
||||
function()
|
||||
require("harpoon"):list():select(2)
|
||||
end,
|
||||
desc = "Select second harpoon buffer.",
|
||||
},
|
||||
{
|
||||
"<A-i>",
|
||||
function()
|
||||
require("harpoon"):list():select(3)
|
||||
end,
|
||||
desc = "Select third harpoon buffer.",
|
||||
},
|
||||
{
|
||||
"<A-o>",
|
||||
function()
|
||||
require("harpoon"):list():select(4)
|
||||
end,
|
||||
desc = "Select fourth harpoon buffer.",
|
||||
},
|
||||
{
|
||||
"<C-[>",
|
||||
function()
|
||||
require("harpoon"):list():prev()
|
||||
end,
|
||||
desc = "Previous harpoon buffer.",
|
||||
},
|
||||
{
|
||||
"<C-]>",
|
||||
function()
|
||||
require("harpoon"):list():next()
|
||||
end,
|
||||
desc = "Next harpoon buffer.",
|
||||
},
|
||||
-- Extensions
|
||||
require("harpoon"):extend({
|
||||
UI_CREATE = function(cx)
|
||||
vim.keymap.set("n", "<C-v>", function()
|
||||
require("harpoon").ui:select_menu_item({ vsplit = true })
|
||||
end, { buffer = cx.buffer, desc = "Open in [V]split" })
|
||||
end,
|
||||
}),
|
||||
},
|
||||
},
|
||||
}
|
||||
29
env/.config/nvim/lua/plugins/init.lua
vendored
Normal file
29
env/.config/nvim/lua/plugins/init.lua
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
-- Plugins that don't require much configuration are in here.
|
||||
--
|
||||
return {
|
||||
{
|
||||
"folke/snacks.nvim",
|
||||
opts = {
|
||||
indent = { enabled = false },
|
||||
},
|
||||
},
|
||||
{
|
||||
"christoomey/vim-tmux-navigator",
|
||||
lazy = false,
|
||||
cmd = {
|
||||
"TmuxNavigateLeft",
|
||||
"TmuxNavigateDown",
|
||||
"TmuxNavigateUp",
|
||||
"TmuxNavigateRight",
|
||||
"TmuxNavigatePrevious",
|
||||
"TmuxNavigatorProcessList",
|
||||
},
|
||||
keys = {
|
||||
{ "<c-h>", "<cmd><C-U>TmuxNavigateLeft<cr>" },
|
||||
{ "<c-j>", "<cmd><C-U>TmuxNavigateDown<cr>" },
|
||||
{ "<c-k>", "<cmd><C-U>TmuxNavigateUp<cr>" },
|
||||
{ "<c-l>", "<cmd><C-U>TmuxNavigateRight<cr>" },
|
||||
{ "<c-\\>", "<cmd><C-U>TmuxNavigatePrevious<cr>" },
|
||||
},
|
||||
},
|
||||
}
|
||||
12
env/.config/nvim/lua/plugins/lint.lua
vendored
Normal file
12
env/.config/nvim/lua/plugins/lint.lua
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
return {
|
||||
{
|
||||
"mfussenegger/nvim-lint",
|
||||
opts = {
|
||||
linters = {
|
||||
markdownlint = {
|
||||
args = { "--config", "~/.markdownlint.jsonc", "--" },
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
169
env/.config/nvim/lua/plugins/lsp.lua
vendored
Normal file
169
env/.config/nvim/lua/plugins/lsp.lua
vendored
Normal file
@@ -0,0 +1,169 @@
|
||||
return {
|
||||
{
|
||||
"mason-org/mason.nvim",
|
||||
dependencies = {
|
||||
"neovim/nvim-lspconfig",
|
||||
},
|
||||
opts = {
|
||||
ensure_installed = {
|
||||
"clangd",
|
||||
"marksman",
|
||||
"shfmt",
|
||||
"tinymist",
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
opts = {
|
||||
ensure_installed = {
|
||||
"bash",
|
||||
"cmake",
|
||||
"dockerfile",
|
||||
"editorconfig",
|
||||
"ini",
|
||||
"jq",
|
||||
"latex",
|
||||
"make",
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
"neovim/nvim-lspconfig",
|
||||
event = { "BufReadPre", "BufNewFile" },
|
||||
opts = {
|
||||
servers = {
|
||||
bashls = {},
|
||||
clangd = {},
|
||||
dockerls = {},
|
||||
gopls = {},
|
||||
harper_ls = {},
|
||||
jsonls = {},
|
||||
lua_ls = {
|
||||
settings = {
|
||||
Lua = {
|
||||
runtime = {
|
||||
version = "LuaJIT",
|
||||
},
|
||||
diagnostics = {
|
||||
globals = { "vim" },
|
||||
},
|
||||
workspace = {
|
||||
library = vim.api.nvim_get_runtime_file("", true),
|
||||
},
|
||||
telemetry = {
|
||||
enable = false,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
marksman = {},
|
||||
sourcekit = {},
|
||||
tinymist = {
|
||||
settings = {
|
||||
formatterMode = "typstyle",
|
||||
},
|
||||
},
|
||||
yamlls = {},
|
||||
},
|
||||
setup = {
|
||||
clangd = function(_, opts)
|
||||
opts.capabilities.offsetEncoding = { "utf-16" }
|
||||
end,
|
||||
sourcekit = function(_, opts)
|
||||
opts.cmd = {
|
||||
vim.trim(vim.fn.system("xcrun -f sourcekit-lsp")) or nil,
|
||||
}
|
||||
end,
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
-- return {
|
||||
-- "neovim/nvim-lspconfig",
|
||||
-- event = { "BufReadPre", "BufNewFile" },
|
||||
-- dependencies = {
|
||||
-- "hrsh7th/cmp-nvim-lsp",
|
||||
-- { "antosha417/nvim-lsp-file-operations", config = true },
|
||||
-- "williamboman/mason.nvim",
|
||||
-- "williamboman/mason-lspconfig.nvim",
|
||||
-- {
|
||||
-- "folke/lazydev.nvim",
|
||||
-- ft = "lua",
|
||||
-- opts = {
|
||||
-- library = {
|
||||
-- { path = "${3rd}/luv/library", words = { "vim%.uv" } },
|
||||
-- },
|
||||
-- },
|
||||
-- },
|
||||
-- },
|
||||
-- config = function()
|
||||
-- require("mason").setup()
|
||||
-- require("mason-lspconfig").setup({
|
||||
-- opts = {
|
||||
-- ensure_installed = lsp_servers,
|
||||
-- },
|
||||
-- })
|
||||
-- local lspconfig = require("lspconfig")
|
||||
-- local cmp_nvim_lsp = require("cmp_nvim_lsp")
|
||||
-- local capabilities = cmp_nvim_lsp.default_capabilities()
|
||||
-- local opts = { noremap = true, silent = true }
|
||||
-- local on_attach = function(_, bufnr)
|
||||
-- opts.buffer = bufnr
|
||||
--
|
||||
-- opts.desc = "Show line diagnostics"
|
||||
-- vim.keymap.set("n", "<leader>d", vim.diagnostic.open_float, opts)
|
||||
--
|
||||
-- opts.desc = "Show diagnostics in Telescope"
|
||||
-- vim.keymap.set("n", "<leader><leader>d", "<CMD>Telescope diagnostics bufnr=0<CR>", opts)
|
||||
--
|
||||
-- opts.desc = "Show documentation for what is under cursor"
|
||||
-- vim.keymap.set("n", "<C-k>", vim.lsp.buf.hover, opts)
|
||||
--
|
||||
-- opts.desc = "[G]oto [D]efinition"
|
||||
-- vim.keymap.set("n", "gd", "<cmd>Telescope lsp_definitions trim_text=true<cr>", opts)
|
||||
--
|
||||
-- opts.desc = "[G]oto [D]eclaration"
|
||||
-- vim.keymap.set("n", "gD", vim.lsp.buf.declaration, opts)
|
||||
--
|
||||
-- opts.desc = "LSP [C]ode [A]ction"
|
||||
-- vim.keymap.set("n", "<leader>ca", vim.lsp.buf.code_action, opts)
|
||||
--
|
||||
-- --opts.desc = "[R]e-[N]ame"
|
||||
-- --vim.keymap.set("n", "<leader>rn", vim.lsp.buf.rename, opts)
|
||||
--
|
||||
-- opts.desc = "[R]eload or start LSP"
|
||||
-- vim.keymap.set("n", "<leader>rl", ":LspRestart | :LspStart<CR>", opts)
|
||||
--
|
||||
-- opts.desc = "Goto previous diagnostic"
|
||||
-- vim.keymap.set("n", "[d", vim.diagnostic.goto_prev, opts)
|
||||
--
|
||||
-- opts.desc = "Goto next diagnostic"
|
||||
-- vim.keymap.set("n", "]d", vim.diagnostic.goto_next, opts)
|
||||
-- end
|
||||
--
|
||||
-- for _, lsp in ipairs(lsp_servers) do
|
||||
-- lspconfig[lsp].setup({
|
||||
-- capabilities = capabilities,
|
||||
-- on_attach = on_attach,
|
||||
-- on_init = function(client)
|
||||
-- -- HACK: to fix some issues with LSP
|
||||
-- -- more details: https://github.com/neovim/neovim/issues/19237#issuecomment-2237037154
|
||||
-- client.offset_encoding = "utf-8"
|
||||
-- end,
|
||||
-- cmd = lsp == "sourcekit" and { vim.trim(vim.fn.system("xcrun -f sourcekit-lsp")) } or nil,
|
||||
-- })
|
||||
-- end
|
||||
--
|
||||
-- -- nice icons
|
||||
-- local signs = { Error = " ", Warn = " ", Hint = " ", Info = " " }
|
||||
-- for type, icon in pairs(signs) do
|
||||
-- local hl = "DiagnosticSign" .. type
|
||||
-- vim.fn.sign_define(hl, { text = icon, texthl = hl, numhl = "" })
|
||||
-- end
|
||||
--
|
||||
-- -- For some reason I was having trouble getting this to work inside the on-attach, so it's here.
|
||||
-- vim.keymap.set("n", "<leader>rn", vim.lsp.buf.rename, { desc = "[R]e-[N]ame" })
|
||||
-- end,
|
||||
-- }
|
||||
39
env/.config/nvim/lua/plugins/luasnip.lua
vendored
Normal file
39
env/.config/nvim/lua/plugins/luasnip.lua
vendored
Normal file
@@ -0,0 +1,39 @@
|
||||
return {
|
||||
{
|
||||
"L3MON4D3/LuaSnip",
|
||||
opts = function()
|
||||
LazyVim.cmp.actions.snippet_forward = function()
|
||||
if require("luasnip").jumpable(1) then
|
||||
require("luasnip").jump(1)
|
||||
return true
|
||||
end
|
||||
end
|
||||
LazyVim.cmp.actions.snippet_stop = function()
|
||||
if require("luasnip").expand_or_jumpable() then -- or just jumpable(1) is fine?
|
||||
require("luasnip").unlink_current()
|
||||
return true
|
||||
end
|
||||
end
|
||||
end,
|
||||
keys = {
|
||||
{
|
||||
"<C-k>",
|
||||
mode = { "i", "s" },
|
||||
function()
|
||||
if ls.expand_or_jumpable() then
|
||||
ls.expand_or_jump()
|
||||
end
|
||||
end
|
||||
},
|
||||
{
|
||||
"<C-j>",
|
||||
mode = { "i", "s" },
|
||||
function()
|
||||
if ls.jumpable(-1) then
|
||||
ls.jump(-1)
|
||||
end
|
||||
end
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
36
env/.config/nvim/lua/plugins/oil.lua
vendored
Normal file
36
env/.config/nvim/lua/plugins/oil.lua
vendored
Normal file
@@ -0,0 +1,36 @@
|
||||
return {
|
||||
"stevearc/oil.nvim",
|
||||
event = "VeryLazy",
|
||||
dependencies = {
|
||||
"nvim-tree/nvim-web-devicons",
|
||||
},
|
||||
opts = {
|
||||
columns = { "icon" },
|
||||
keymaps = {
|
||||
["<C-h>"] = false,
|
||||
["<M-h>"] = "actions.select_split",
|
||||
["<C-v>"] = {
|
||||
"actions.select",
|
||||
opts = { vertical = true },
|
||||
desc = "Open the entry in a vertical split",
|
||||
},
|
||||
view_options = {
|
||||
is_hidden_file = function(name, _) -- second arg is bufnr, but not currently used.
|
||||
-- Don't show .DS_Store in output.
|
||||
local is_ds_store = name ~= ".DS_Store"
|
||||
return not is_ds_store
|
||||
end,
|
||||
},
|
||||
}
|
||||
},
|
||||
keys = {
|
||||
-- Show the parent directory in current window.
|
||||
{ "-", "<CMD>Oil<CR>", desc = "Open parent directory." },
|
||||
-- Open parent directory in floating window.
|
||||
{
|
||||
"<space>-",
|
||||
function() require("oil").toggle_float() end,
|
||||
desc = "Open parent directory in floating window."
|
||||
},
|
||||
},
|
||||
}
|
||||
47
env/.config/nvim/lua/plugins/snacks.lua
vendored
Normal file
47
env/.config/nvim/lua/plugins/snacks.lua
vendored
Normal file
@@ -0,0 +1,47 @@
|
||||
-- NOTE: Header looks jacked up here, but fine when rendered in the ui.
|
||||
return {
|
||||
"folke/snacks.nvim",
|
||||
opts = {
|
||||
picker = {
|
||||
hidden = true,
|
||||
ignored = true
|
||||
},
|
||||
image = {
|
||||
doc = {
|
||||
enabled = true,
|
||||
},
|
||||
},
|
||||
dashboard = {
|
||||
row = nil,
|
||||
col = nil,
|
||||
preset = {
|
||||
header = [[
|
||||
*
|
||||
+++++
|
||||
+++++++++
|
||||
==+++++++++++
|
||||
+===:+++++++++++*
|
||||
+======--+++++++++++*##+====
|
||||
+==========:=+++++++++++#+====
|
||||
+=============-=++++++++++++====
|
||||
+================-:+++++++++++++==
|
||||
+===================--++++++++++++++*
|
||||
+======================--+++++++++++++++*
|
||||
=========================-++++++++++++++++
|
||||
==========================:+++++++++++++++
|
||||
===========================:++++++++++++++
|
||||
===========================-.-++++++++++++
|
||||
===========================-::.=++++++++++
|
||||
===========================----..=++++++++
|
||||
===========================------..:=+++++
|
||||
===========================--------:...-++
|
||||
===========================------------:.:
|
||||
===========================---------------
|
||||
===========================---------------
|
||||
===========================---------------
|
||||
]],
|
||||
},
|
||||
|
||||
},
|
||||
},
|
||||
}
|
||||
11
env/.config/nvim/lua/plugins/telescope.lua
vendored
Normal file
11
env/.config/nvim/lua/plugins/telescope.lua
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
return {
|
||||
{
|
||||
import = "lazyvim.plugins.extras.editor.telescope",
|
||||
enabled = false,
|
||||
opts = {
|
||||
ensure_installed = {
|
||||
"swift",
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
14
env/.config/nvim/lua/plugins/todo-comment.lua
vendored
Normal file
14
env/.config/nvim/lua/plugins/todo-comment.lua
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
return {
|
||||
"folke/todo-comments.nvim",
|
||||
dependencies = {
|
||||
"nvim-lua/plenary.nvim",
|
||||
"folke/trouble.nvim",
|
||||
},
|
||||
keys = {
|
||||
{ "<leader>xt", false },
|
||||
{ "<leader>xT", false },
|
||||
{ "<leader>tq", "<CMD>Trouble todo toggle<CR>", desc = "[T]odo [Q]uick fix list." },
|
||||
{ "<leader><leader>t", "<CMD>TodoTelescope<CR>", desc = "[T]odo telescope list." },
|
||||
{ "<leader>tl", "<CMD>TodoLocList<CR>", desc = "[T]odo [L]ocation list." },
|
||||
},
|
||||
}
|
||||
15
env/.config/nvim/lua/plugins/typst-preview.lua
vendored
Normal file
15
env/.config/nvim/lua/plugins/typst-preview.lua
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
return {
|
||||
'chomosuke/typst-preview.nvim',
|
||||
ft = 'typst', -- or ft = 'typst'
|
||||
version = '1.*',
|
||||
opts = {
|
||||
debug = true,
|
||||
}, -- lazy.nvim will implicitly calls `setup {}`
|
||||
keys = {
|
||||
{
|
||||
"<leader>tp",
|
||||
"<CMD>TypstPreviewToggle<CR>",
|
||||
desc = "Toggle typst preview."
|
||||
},
|
||||
}
|
||||
}
|
||||
73
env/.config/nvim/lua/plugins/xcodebuild.lua
vendored
Normal file
73
env/.config/nvim/lua/plugins/xcodebuild.lua
vendored
Normal file
@@ -0,0 +1,73 @@
|
||||
local progress_handle
|
||||
|
||||
return {
|
||||
"wojciech-kulik/xcodebuild.nvim",
|
||||
event = "VeryLazy",
|
||||
dependencies = {
|
||||
"nvim-telescope/telescope.nvim",
|
||||
"MunifTanjim/nui.nvim",
|
||||
},
|
||||
opts = {
|
||||
show_build_progress_bar = false,
|
||||
logs = {
|
||||
auto_open_on_success_tests = false,
|
||||
auto_open_on_failed_tests = false,
|
||||
auto_open_on_success_build = false,
|
||||
auto_open_on_failed_build = false,
|
||||
auto_focus = false,
|
||||
auto_close_on_app_launch = true,
|
||||
only_summary = true,
|
||||
notify = function(message, severity)
|
||||
local fidget = require("fidget")
|
||||
if progress_handle then
|
||||
progress_handle.message = message
|
||||
if not message:find("Loading") then
|
||||
progress_handle:finish()
|
||||
progress_handle = nil
|
||||
if vim.trim(message) ~= "" then
|
||||
fidget.notify(message, severity)
|
||||
end
|
||||
end
|
||||
else
|
||||
fidget.notify(message, severity)
|
||||
end
|
||||
end,
|
||||
notify_progress = function(message)
|
||||
local progress = require("fidget.progress")
|
||||
|
||||
if progress_handle then
|
||||
progress_handle.title = ""
|
||||
progress_handle.message = message
|
||||
else
|
||||
progress_handle = progress.handle.create({
|
||||
message = message,
|
||||
lsp_client = { name = "xcodebuild.nvim" },
|
||||
})
|
||||
end
|
||||
end,
|
||||
},
|
||||
code_coverage = {
|
||||
enabled = true,
|
||||
},
|
||||
},
|
||||
keys = {
|
||||
{ "<leader>X", "<cmd>XcodebuildPicker<cr>", desc = "Show Xcodebuild Actions" },
|
||||
{ "<leader>xf", "<cmd>XcodebuildProjectManager<cr>", desc = "Show Project Manager Actions" },
|
||||
{ "<leader>xb", "<cmd>XcodebuildBuild<cr>", desc = "Build Project" },
|
||||
{ "<leader>xB", "<cmd>XcodebuildBuildForTesting<cr>", desc = "Build For Testing" },
|
||||
{ "<leader>xr", "<cmd>XcodebuildBuildRun<cr>", desc = "Build & Run Project" },
|
||||
{ "<leader>xt", "<cmd>XcodebuildTest<cr>", desc = "Run Tests" },
|
||||
{ "<leader>xt", "<cmd>XcodebuildTestSelected<cr>", desc = "Run Selected Tests" },
|
||||
{ "<leader>xT", "<cmd>XcodebuildTestClass<cr>", desc = "Run This Test Class" },
|
||||
{ "<leader>xl", "<cmd>XcodebuildToggleLogs<cr>", desc = "Toggle Xcodebuild Logs" },
|
||||
{ "<leader>xc", "<cmd>XcodebuildToggleCodeCoverage<cr>", desc = "Toggle Code Coverage" },
|
||||
{ "<leader>xC", "<cmd>XcodebuildShowCodeCoverageReport<cr>", desc = "Show Code Coverage Report" },
|
||||
{ "<leader>xe", "<cmd>XcodebuildTestExplorerToggle<cr>", desc = "Toggle Test Explorer" },
|
||||
{ "<leader>xs", "<cmd>XcodebuildFailingSnapshots<cr>", desc = "Show Failing Snapshots" },
|
||||
{ "<leader>xd", "<cmd>XcodebuildSelectDevice<cr>", desc = "Select Device" },
|
||||
{ "<leader>xp", "<cmd>XcodebuildSelectTestPlan<cr>", desc = "Select Test Plan" },
|
||||
{ "<leader>xq", "<cmd>Telescope quickfix<cr", desc = "Show QuickFix List" },
|
||||
{ "<leader>xx", "<cmd>XcodebuildQuickfixLine<cr>", desc = "Quickfix Line" },
|
||||
{ "<leader>xa", "<cmd>XcodebuildCodeActions<cr>", desc = "Show Code Actions" },
|
||||
},
|
||||
}
|
||||
17
env/.config/nvim/snippets/init.lua
vendored
Normal file
17
env/.config/nvim/snippets/init.lua
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
-- Setup snippets here.
|
||||
local ls = require("luasnip")
|
||||
local s = ls.snippet
|
||||
local sn = ls.snippet_node
|
||||
local ms = ls.multi_snippet
|
||||
local i = ls.insert_node
|
||||
local f = ls.function_node
|
||||
local c = ls.choice_node
|
||||
local t = ls.text_node
|
||||
|
||||
ls.add_snippets("lua", {
|
||||
s("hello", {
|
||||
t('print("hello '),
|
||||
i(1),
|
||||
t(' world")'),
|
||||
}),
|
||||
})
|
||||
41
env/.config/nvim/snippets/lua.lua
vendored
Normal file
41
env/.config/nvim/snippets/lua.lua
vendored
Normal file
@@ -0,0 +1,41 @@
|
||||
-- Setup snippets here.
|
||||
local ls = require("luasnip")
|
||||
local s = ls.snippet
|
||||
local sn = ls.snippet_node
|
||||
local ms = ls.multi_snippet
|
||||
local i = ls.insert_node
|
||||
local f = ls.function_node
|
||||
local c = ls.choice_node
|
||||
local t = ls.text_node
|
||||
local fmt = require("luasnip.extras.fmt").fmt
|
||||
|
||||
ls.add_snippets("lua", {
|
||||
-- Setup a new snippet file.
|
||||
s("sf", {
|
||||
t({
|
||||
"-- Setup snippets.",
|
||||
'local ls = require("luasnip")',
|
||||
"local s = ls.snippet",
|
||||
"local sn = ls.snippet_node",
|
||||
"local ms = ls.multi_snippet",
|
||||
"local i = ls.insert_node",
|
||||
"local f = ls.function_node",
|
||||
"local c = ls.choice_node",
|
||||
"local t = ls.text_node",
|
||||
"-- Add snippets",
|
||||
}),
|
||||
t('ls.add_snippets("'),
|
||||
i(1, "<file-type>"),
|
||||
t({
|
||||
'", {',
|
||||
"\t-- Define snippets here.",
|
||||
"})",
|
||||
}),
|
||||
}),
|
||||
s("c", {
|
||||
c(1, {
|
||||
fmt("{}", { i(1), t("debug") }),
|
||||
fmt("{}", { i(1), t("warning") }),
|
||||
}),
|
||||
}),
|
||||
})
|
||||
131
env/.config/nvim/snippets/swift.lua
vendored
Normal file
131
env/.config/nvim/snippets/swift.lua
vendored
Normal file
@@ -0,0 +1,131 @@
|
||||
-- Setup snippets.
|
||||
local ls = require("luasnip")
|
||||
local s = ls.snippet
|
||||
local sn = ls.snippet_node
|
||||
local ms = ls.multi_snippet
|
||||
local i = ls.insert_node
|
||||
local f = ls.function_node
|
||||
local c = ls.choice_node
|
||||
local t = ls.text_node
|
||||
local fmt = require("luasnip.extras.fmt").fmt
|
||||
local rep = require("luasnip.extras").rep
|
||||
-- Add snippets
|
||||
ls.add_snippets("swift", {
|
||||
-- Add a dependency snippet.
|
||||
s({ trig = "@d", desc = "Add a dependency." }, fmt("@Dependency(\\.{}) var {}", { i(1), rep(1) })),
|
||||
|
||||
-- Add a dependency client.
|
||||
s(
|
||||
{
|
||||
trig = "@dc",
|
||||
desc = "Add a dependency client.",
|
||||
},
|
||||
fmt(
|
||||
[[
|
||||
public extension DependencyValues {{
|
||||
var {}: {} {{
|
||||
get {{ self[{}.self] }}
|
||||
set {{ self[{}.self] = newValue }}
|
||||
}}
|
||||
}}
|
||||
|
||||
@DependencyClient
|
||||
public struct {} {{
|
||||
|
||||
// Insert interface here.
|
||||
{}
|
||||
}}
|
||||
|
||||
extension {}: TestDependencyKey {{
|
||||
public static let testValue: {} = Self()
|
||||
}}
|
||||
|
||||
]],
|
||||
{
|
||||
i(1, "<name>"),
|
||||
i(2, "<Dependency>"),
|
||||
rep(2),
|
||||
rep(2),
|
||||
rep(2),
|
||||
i(0),
|
||||
rep(2),
|
||||
rep(2),
|
||||
}
|
||||
)
|
||||
),
|
||||
|
||||
s(
|
||||
{ trig = "str", desc = "Add a struct" },
|
||||
fmt(
|
||||
[[
|
||||
struct {}: {} {{
|
||||
{}
|
||||
}}
|
||||
]],
|
||||
{ i(1, "<Name>"), i(2, "<Protocols>"), i(0) }
|
||||
)
|
||||
),
|
||||
|
||||
-- Decorate a type or function with an @_spi(...)
|
||||
s({ trig = "@_s", desc = "Add spi modifier." }, fmt("@_spi({})", { i(1, "name") })),
|
||||
|
||||
-- Add an @_spi(...) import ...
|
||||
s(
|
||||
{ trig = "@_si", desc = "Import with spi." },
|
||||
fmt(
|
||||
[[
|
||||
@_spi({}) import {}
|
||||
{}
|
||||
]],
|
||||
{ i(1, "name"), i(2, "module"), i(0) }
|
||||
)
|
||||
),
|
||||
|
||||
-- Document a function
|
||||
-- TODO: add dynamic number of prameters.
|
||||
s(
|
||||
{ trig = "docf", desc = "Document a function." },
|
||||
fmt(
|
||||
[[
|
||||
/// {}
|
||||
///
|
||||
/// - Parameters:
|
||||
/// - {}: {}
|
||||
]],
|
||||
{ i(1, "A short description."), i(2, "<param>"), i(3, "Describe the parameter.") }
|
||||
)
|
||||
),
|
||||
|
||||
-- Add a parameter to a documentation string.
|
||||
s(
|
||||
{ trig = "param", desc = "Add a parameter to documentation" },
|
||||
fmt(
|
||||
[[
|
||||
/// - {}: {}
|
||||
]],
|
||||
{ i(1, "<param>"), i(2, "<description>") }
|
||||
)
|
||||
),
|
||||
|
||||
-- Add a withDependencies
|
||||
s(
|
||||
{ trig = "wd", desc = "withDependencies" },
|
||||
fmt(
|
||||
[[
|
||||
withDependencies {{
|
||||
$0.{} = {}
|
||||
}} operation: {{
|
||||
@Dependency(\.{}) var {}
|
||||
{}
|
||||
}}
|
||||
]],
|
||||
{
|
||||
i(1, "<dependency>"),
|
||||
i(2, "<override>"),
|
||||
rep(1),
|
||||
rep(1),
|
||||
i(0),
|
||||
}
|
||||
)
|
||||
),
|
||||
})
|
||||
21
env/.config/nvim/spell/en.utf-8.add
vendored
Executable file
21
env/.config/nvim/spell/en.utf-8.add
vendored
Executable file
@@ -0,0 +1,21 @@
|
||||
MeasureQuick
|
||||
Housh
|
||||
sealtite
|
||||
Subcool
|
||||
OEM
|
||||
NEC
|
||||
AHJ
|
||||
CFM
|
||||
Hydronic
|
||||
subpar
|
||||
quo
|
||||
IAQ
|
||||
wc
|
||||
HVAC
|
||||
dehumidification
|
||||
ansible
|
||||
orchestrator
|
||||
ethernet
|
||||
unifi
|
||||
wildcard
|
||||
Housh
|
||||
BIN
env/.config/nvim/spell/en.utf-8.add.spl
vendored
Executable file
BIN
env/.config/nvim/spell/en.utf-8.add.spl
vendored
Executable file
Binary file not shown.
3
env/.config/nvim/stylua.toml
vendored
Normal file
3
env/.config/nvim/stylua.toml
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
indent_type = "Spaces"
|
||||
indent_width = 2
|
||||
column_width = 120
|
||||
180
env/.config/starship/starship.toml
vendored
Normal file
180
env/.config/starship/starship.toml
vendored
Normal file
@@ -0,0 +1,180 @@
|
||||
"$schema" = 'https://starship.rs/config-schema.json'
|
||||
|
||||
command_timeout = 1000
|
||||
|
||||
format = """
|
||||
[](color_orange)\
|
||||
$os\
|
||||
$username\
|
||||
$hostname\
|
||||
[](bg:color_pink fg:color_orange)\
|
||||
$directory\
|
||||
[](fg:color_pink bg:color_lavender)\
|
||||
$git_branch\
|
||||
$git_status\
|
||||
[](fg:color_lavender bg:color_blue)\
|
||||
$c\
|
||||
$rust\
|
||||
$golang\
|
||||
$nodejs\
|
||||
$php\
|
||||
$java\
|
||||
$kotlin\
|
||||
$haskell\
|
||||
$python\
|
||||
[](fg:color_blue bg:color_bg3)\
|
||||
$docker_context\
|
||||
$conda\
|
||||
[](fg:color_bg3 bg:color_green)\
|
||||
$time\
|
||||
[ ](fg:color_green)\
|
||||
$line_break$character"""
|
||||
|
||||
palette = 'catppuccin_mocha'
|
||||
|
||||
[palettes.catppuccin_mocha]
|
||||
color_fg0 = '#cad3f5'
|
||||
color_bg1 = '#1e2030'
|
||||
color_bg3 = '#24273a'
|
||||
color_blue = '#8aadf4'
|
||||
color_aqua = '#94e2d5'
|
||||
color_green = '#a6e3a1'
|
||||
color_orange = '#f5a97f'
|
||||
color_purple = '#c6a0f6'
|
||||
color_lavender = '#b4befe'
|
||||
color_red = '#ed8796'
|
||||
color_yellow = '#eed49f'
|
||||
color_grey = '#585b70'
|
||||
color_maroon = '#eba0ac'
|
||||
color_pink = '#f5c2e7'
|
||||
|
||||
[os]
|
||||
disabled = false
|
||||
style = "bold bg:color_orange fg:color_fg0"
|
||||
|
||||
[os.symbols]
|
||||
Windows = ""
|
||||
Ubuntu = ""
|
||||
SUSE = ""
|
||||
Raspbian = ""
|
||||
Mint = ""
|
||||
Macos = ""
|
||||
Manjaro = ""
|
||||
Linux = ""
|
||||
Gentoo = ""
|
||||
Fedora = ""
|
||||
Alpine = ""
|
||||
Amazon = ""
|
||||
Android = ""
|
||||
Arch = ""
|
||||
Artix = ""
|
||||
CentOS = ""
|
||||
Debian = ""
|
||||
Redhat = ""
|
||||
RedHatEnterprise = ""
|
||||
|
||||
[username]
|
||||
show_always = true
|
||||
style_user = "bold bg:color_orange fg:color_grey"
|
||||
style_root = "bold bg:color_orange fg:color_grey"
|
||||
format = '[ $user ]($style)'
|
||||
|
||||
[hostname]
|
||||
ssh_only = true
|
||||
format = '[$ssh_symbol : $hostname](bold bg:color_orange fg:color_grey)'
|
||||
disabled = false
|
||||
|
||||
[directory]
|
||||
style = "bold fg:color_grey bg:color_pink"
|
||||
format = "[ $path ]($style)"
|
||||
truncation_length = 3
|
||||
truncation_symbol = "…/"
|
||||
truncate_to_repo = true
|
||||
|
||||
[directory.substitutions]
|
||||
"Documents" = " "
|
||||
"Downloads" = " "
|
||||
"Music" = " "
|
||||
"Pictures" = " "
|
||||
"Developer" = " "
|
||||
|
||||
[git_branch]
|
||||
symbol = ""
|
||||
style = "bg:color_blue"
|
||||
format = '[[ $symbol $branch ](bold fg:color_grey bg:color_lavender)]($style)'
|
||||
|
||||
[git_status]
|
||||
style = "bg:color_blue"
|
||||
format = '[[($all_status$ahead_behind )](bold fg:color_grey bg:color_lavender)]($style)'
|
||||
|
||||
[nodejs]
|
||||
symbol = ""
|
||||
style = "bg:color_blue"
|
||||
format = '[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)'
|
||||
|
||||
[c]
|
||||
symbol = " "
|
||||
style = "bg:color_blue"
|
||||
format = '[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)'
|
||||
|
||||
[rust]
|
||||
symbol = ""
|
||||
style = "bg:color_blue"
|
||||
format = '[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)'
|
||||
|
||||
[golang]
|
||||
symbol = ""
|
||||
style = "bg:color_blue"
|
||||
format = '[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)'
|
||||
|
||||
[php]
|
||||
symbol = ""
|
||||
style = "bg:color_blue"
|
||||
format = '[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)'
|
||||
|
||||
[java]
|
||||
symbol = " "
|
||||
style = "bg:color_blue"
|
||||
format = '[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)'
|
||||
|
||||
[kotlin]
|
||||
symbol = ""
|
||||
style = "bg:color_blue"
|
||||
format = '[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)'
|
||||
|
||||
[haskell]
|
||||
symbol = ""
|
||||
style = "bg:color_blue"
|
||||
format = '[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)'
|
||||
|
||||
[python]
|
||||
symbol = ""
|
||||
style = "bg:color_blue"
|
||||
format = '[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)'
|
||||
|
||||
[docker_context]
|
||||
symbol = ""
|
||||
style = "bg:color_bg3"
|
||||
format = '[[ $symbol( $context) ](fg:#83a598 bg:color_bg3)]($style)'
|
||||
|
||||
[conda]
|
||||
style = "bg:color_bg3"
|
||||
format = '[[ $symbol( $environment) ](fg:#83a598 bg:color_bg3)]($style)'
|
||||
|
||||
[time]
|
||||
disabled = false
|
||||
time_format = "%R"
|
||||
style = "bg:color_green"
|
||||
format = '[[ $time ](bold fg:color_grey bg:color_green)]($style)'
|
||||
|
||||
[line_break]
|
||||
disabled = false
|
||||
|
||||
[character]
|
||||
disabled = false
|
||||
success_symbol = '[❯](bold fg:color_green)'
|
||||
error_symbol = '[❯](bold fg:color_red)'
|
||||
vimcmd_symbol = '[❮](bold fg:color_green)'
|
||||
vimcmd_replace_one_symbol = '[❮](bold fg:color_purple)'
|
||||
vimcmd_replace_symbol = '[❮](bold fg:color_purple)'
|
||||
vimcmd_visual_symbol = '[❮](bold fg:color_yellow)'
|
||||
166
env/.config/tmux/tmux.conf
vendored
Executable file
166
env/.config/tmux/tmux.conf
vendored
Executable file
@@ -0,0 +1,166 @@
|
||||
# Some tweaks to the status line
|
||||
set -g status-right "%H:%M"
|
||||
set -g window-status-current-style "underscore"
|
||||
set -g status-position "top"
|
||||
|
||||
# If running inside tmux ($TMUX is set), then change the status line to red
|
||||
%if #{TMUX}
|
||||
set -g status-bg red
|
||||
%endif
|
||||
|
||||
TMUX_FZF_OPTIONS="-p -w 60% -h 80% -m"
|
||||
|
||||
# Enable RGB colour if running in xterm(1)
|
||||
set-option -sa terminal-overrides ",xterm*:Tc"
|
||||
|
||||
# Change the default $TERM to tmux-256color
|
||||
set -g default-terminal "xterm-256color"
|
||||
|
||||
# Change windows to start with an index of 1 instead of 0
|
||||
set -g base-index 1
|
||||
|
||||
# Change panes to start with an index of 1 instead of 0
|
||||
setw -g pane-base-index 1
|
||||
|
||||
# No bells at all
|
||||
set -g bell-action none
|
||||
|
||||
# Keep windows around after they exit
|
||||
set -g remain-on-exit on
|
||||
|
||||
# Set indexes to start at 1, instead of 0.
|
||||
set -g base-index 1
|
||||
|
||||
# Change the prefix key to C-a
|
||||
set -g prefix C-a
|
||||
unbind C-b
|
||||
bind C-a send-prefix
|
||||
|
||||
set-window-option -g mode-keys vi
|
||||
bind -T copy-mode-vi v send-keys -X begin-selection
|
||||
bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel 'xclip -in -selection clipboard'
|
||||
|
||||
# Turn the mouse on, but without copy mode dragging
|
||||
set -g mouse on
|
||||
unbind -n MouseDrag1Pane
|
||||
unbind -Tcopy-mode MouseDrag1Pane
|
||||
|
||||
# A key to toggle between smallest and largest sizes if a window is visible in
|
||||
# multiple places
|
||||
bind F set -w window-size
|
||||
|
||||
# Keys to toggle monitoring activity in a window and the synchronize-panes option
|
||||
bind m set monitor-activity
|
||||
bind y set synchronize-panes\; display 'synchronize-panes #{?synchronize-panes,on,off}'
|
||||
|
||||
# Better split pane
|
||||
bind \\ splitw -h
|
||||
bind - splitw -v
|
||||
|
||||
# Use Alt-arrow keys to navigate panes
|
||||
# bind -n M-Left select-pane -L
|
||||
# bind -n M-Right select-pane -R
|
||||
# bind -n M-Up select-pane -U
|
||||
# bind -n M-Down select-pane -D
|
||||
|
||||
# Close a pane quickly
|
||||
bind-key -r K kill-pane
|
||||
|
||||
# Use Shift-arrow keys to navigate windows.
|
||||
bind -n S-Left previous-window
|
||||
bind -n S-Right next-window
|
||||
bind -n M-h previous-window
|
||||
bind -n M-l next-window
|
||||
bind C-l send-keys 'C-l'
|
||||
|
||||
bind f run-shell "tmux display-popup -E -w 80% -h 80% $SCRIPTS/tmux-sessionator"
|
||||
bind-key -r C run-shell -b "~/.local/share/scripts/tmux-sessionator ~/.dotfiles"
|
||||
unbind s
|
||||
bind s run-shell -b "~/.config/tmux/plugins/tmux-fzf/scripts/session.sh switch"
|
||||
|
||||
# reload new changes
|
||||
bind-key r source-file ~/.config/tmux/tmux.conf\; \display-message "source-file done"
|
||||
|
||||
######################################## Plugins ########################################
|
||||
set -g @plugin 'tmux-plugins/tpm'
|
||||
set -g @plugin 'tmux-plugins/tmux-sensible'
|
||||
set -g @plugin 'tmux-plugins/tmux-resurrect'
|
||||
set -g @plugin 'sainnhe/tmux-fzf'
|
||||
set -g @plugin 'tmux-plugins/tmux-yank'
|
||||
#set -g @plugin 'erikw/tmux-powerline'
|
||||
set -g @plugin 'christoomey/vim-tmux-navigator'
|
||||
set -g @plugin 'catppuccin/tmux'
|
||||
set -g @plugin 'tmux-plugins/tmux-online-status'
|
||||
set -g @plugin 'tmux-plugins/tmux-battery'
|
||||
set -g @plugin 'omerxx/tmux-floax'
|
||||
|
||||
# Configure Catppuccin
|
||||
set -g @catppuccin_flavor "macchiato"
|
||||
set -g @catppuccin_status_background "none"
|
||||
set -g @catppuccin_window_status_style "none"
|
||||
set -g @catppuccin_pane_status_enabled "off"
|
||||
set -g @catppuccin_pane_border_status "off"
|
||||
|
||||
# Configure Online
|
||||
set -g @online_icon "ok"
|
||||
set -g @offline_icon "nok"
|
||||
|
||||
# status left look and feel
|
||||
set -g status-left-length 100
|
||||
set -g status-left ""
|
||||
# set -ga status-left "#{?#{e|>=:10,#{battery_percentage}},#{#[bg=#{@thm_red},fg=#{@thm_bg}]},#{#[bg=#{@thm_bg},fg=#{@thm_pink}]}} #{battery_icon} #{battery_percentage} "
|
||||
# set -ga status-left "#[bg=#{@thm_bg},fg=#{@thm_overlay_0}, none]│"
|
||||
# set -ga status-left "#[bg=#{@thm_bg}]#{?#{==:#{online_status},ok},#[fg=#{@thm_mauve}] on ,#[fg=#{@thm_red},bold]#[reverse] off }"
|
||||
# set -ga status-left "#[bg=#{@thm_bg},fg=#{@thm_overlay_0}, none]│"
|
||||
# set -ga status-left "#[bg=#{@thm_bg},fg=#{@thm_blue}] %Y-%m-%d %H:%M "
|
||||
|
||||
# status right look and feel
|
||||
set -g status-right-length 100
|
||||
set -g status-right ""
|
||||
set -ga status-right "#{?client_prefix,#{#[bg=#{@thm_red},fg=#{@thm_bg},bold] #S },#{#[bg=#{@thm_bg},fg=#{@thm_green}] #S }}"
|
||||
set -ga status-right "#[bg=#{@thm_bg},fg=#{@thm_overlay_0},none]│"
|
||||
set -ga status-right "#[bg=#{@thm_bg},fg=#{@thm_maroon}] #{pane_current_command} "
|
||||
set -ga status-right "#[bg=#{@thm_bg},fg=#{@thm_overlay_0},none]│"
|
||||
set -ga status-right "#[bg=#{@thm_bg},fg=#{@thm_blue}] #{=/-32/...:#{s|$USER|~|:#{b:pane_current_path}}} "
|
||||
set -ga status-right "#[bg=#{@thm_bg},fg=#{@thm_overlay_0},none]#{?window_zoomed_flag,│,}"
|
||||
set -ga status-right "#[bg=#{@thm_bg},fg=#{@thm_yellow}]#{?window_zoomed_flag, zoom ,}"
|
||||
|
||||
|
||||
# bootstrap tpm
|
||||
if "test ! -d ~/.config/tmux/plugins/tpm" \
|
||||
"run 'git clone https://github.com/tmux-plugins/tpm ~/.config/tmux/plugins/tpm && ~/.config/tmux/plugins/tpm/bin/install_plugins'"
|
||||
|
||||
# Configure Tmux
|
||||
set -g status-position top
|
||||
set -g status-style "bg=#{@thm_bg}"
|
||||
set -g status-justify "absolute-centre"
|
||||
|
||||
# For yazi images to work correctly
|
||||
set -gq allow-passthrough on
|
||||
set -g visual-activity off
|
||||
set -ga update-environment TERM
|
||||
set -ga update-environment TERM_PROGRAM
|
||||
|
||||
# pane border look and feel
|
||||
setw -g pane-border-status top
|
||||
setw -g pane-border-format ""
|
||||
setw -g pane-active-border-style "bg=#{@thm_bg},fg=#{@thm_overlay_0}"
|
||||
setw -g pane-border-style "bg=#{@thm_bg},fg=#{@thm_surface_0}"
|
||||
setw -g pane-border-lines single
|
||||
|
||||
# window look and feel
|
||||
set -wg automatic-rename on
|
||||
set -g automatic-rename-format "Window"
|
||||
|
||||
set -g window-status-format " #I#{?#{!=:#{window_name},Window},: #W,} "
|
||||
set -g window-status-style "bg=#{@thm_bg},fg=#{@thm_rosewater}"
|
||||
set -g window-status-last-style "bg=#{@thm_bg},fg=#{@thm_peach}"
|
||||
set -g window-status-activity-style "bg=#{@thm_red},fg=#{@thm_bg}"
|
||||
set -g window-status-bell-style "bg=#{@thm_red},fg=#{@thm_bg},bold"
|
||||
set -gF window-status-separator "#[bg=#{@thm_bg},fg=#{@thm_overlay_0}]│"
|
||||
|
||||
set -g window-status-current-format " #I#{?#{!=:#{window_name},Window},: #W,} "
|
||||
set -g window-status-current-style "bg=#{@thm_peach},fg=#{@thm_bg},bold"
|
||||
|
||||
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
|
||||
run '~/.config/tmux/plugins/tpm/tpm'
|
||||
68
env/.config/tree-sitter/config.json
vendored
Normal file
68
env/.config/tree-sitter/config.json
vendored
Normal file
@@ -0,0 +1,68 @@
|
||||
{
|
||||
"parser-directories": [
|
||||
"/home/michael/github",
|
||||
"/home/michael/src",
|
||||
"/home/michael/source",
|
||||
"/home/michael/projects",
|
||||
"/home/michael/dev",
|
||||
"/home/michael/git"
|
||||
],
|
||||
"theme": {
|
||||
"attribute": {
|
||||
"color": 124,
|
||||
"italic": true
|
||||
},
|
||||
"comment": {
|
||||
"color": 245,
|
||||
"italic": true
|
||||
},
|
||||
"constant": 94,
|
||||
"constant.builtin": {
|
||||
"bold": true,
|
||||
"color": 94
|
||||
},
|
||||
"constructor": 136,
|
||||
"embedded": null,
|
||||
"function": 26,
|
||||
"function.builtin": {
|
||||
"bold": true,
|
||||
"color": 26
|
||||
},
|
||||
"keyword": 56,
|
||||
"module": 136,
|
||||
"number": {
|
||||
"bold": true,
|
||||
"color": 94
|
||||
},
|
||||
"operator": {
|
||||
"bold": true,
|
||||
"color": 239
|
||||
},
|
||||
"property": 124,
|
||||
"property.builtin": {
|
||||
"bold": true,
|
||||
"color": 124
|
||||
},
|
||||
"punctuation": 239,
|
||||
"punctuation.bracket": 239,
|
||||
"punctuation.delimiter": 239,
|
||||
"punctuation.special": 239,
|
||||
"string": 28,
|
||||
"string.special": 30,
|
||||
"tag": 18,
|
||||
"type": 23,
|
||||
"type.builtin": {
|
||||
"bold": true,
|
||||
"color": 23
|
||||
},
|
||||
"variable": 252,
|
||||
"variable.builtin": {
|
||||
"bold": true,
|
||||
"color": 252
|
||||
},
|
||||
"variable.parameter": {
|
||||
"color": 252,
|
||||
"underline": true
|
||||
}
|
||||
}
|
||||
}
|
||||
138
env/.config/walker/config.toml
vendored
Normal file
138
env/.config/walker/config.toml
vendored
Normal file
@@ -0,0 +1,138 @@
|
||||
force_keyboard_focus = true # forces keyboard forcus to stay in Walker
|
||||
close_when_open = true # close walker when invoking while already opened
|
||||
selection_wrap = false # wrap list if at bottom or top
|
||||
global_argument_delimiter = "#" # query: firefox#https://benz.dev => part after delimiter will be ignored when querying. this should be the same as in the elephant config
|
||||
keep_open_modifier = "shift" # won't close on activation, but rather select the next item in the list
|
||||
exact_search_prefix = "'" # disable fuzzy searching
|
||||
theme = "default" # theme to use
|
||||
disable_mouse = false # disable mouse (on input and list only)
|
||||
|
||||
[shell]
|
||||
anchor_top = true
|
||||
anchor_bottom = true
|
||||
anchor_left = true
|
||||
anchor_right = true
|
||||
|
||||
[placeholders]
|
||||
"default" = { input = "Search", list = "No Results" } # placeholders for input and empty list, key is the providers name, so f.e. "desktopapplications" or "menus:other"
|
||||
|
||||
[keybinds]
|
||||
close = "Escape"
|
||||
next = "Down"
|
||||
previous = "Up"
|
||||
toggle_exact = "ctrl e"
|
||||
resume_last_query = "ctrl r"
|
||||
quick_activate = ["F1", "F2", "F3", "F4"]
|
||||
|
||||
[providers]
|
||||
default = [
|
||||
"desktopapplications",
|
||||
"calc",
|
||||
"runner",
|
||||
"menus",
|
||||
"websearch",
|
||||
] # providers to be queried by default
|
||||
empty = ["desktopapplications"] # providers to be queried when query is empty
|
||||
|
||||
[[providers.prefixes]]
|
||||
prefix = ";"
|
||||
provider = "providerlist"
|
||||
|
||||
[[providers.prefixes]]
|
||||
prefix = "/"
|
||||
provider = "files"
|
||||
|
||||
[[providers.prefixes]]
|
||||
prefix = "."
|
||||
provider = "symbols"
|
||||
|
||||
[[providers.prefixes]]
|
||||
prefix = "!"
|
||||
provider = "todo"
|
||||
|
||||
[[providers.prefixes]]
|
||||
prefix = "="
|
||||
provider = "calc"
|
||||
|
||||
[[providers.prefixes]]
|
||||
prefix = "@"
|
||||
provider = "websearch"
|
||||
|
||||
[[providers.prefixes]]
|
||||
prefix = ":"
|
||||
provider = "clipboard"
|
||||
|
||||
[providers.archlinuxpkgs]
|
||||
default = "install"
|
||||
install = "Return"
|
||||
remove = "ctrl d"
|
||||
|
||||
[providers.calc]
|
||||
default = "copy"
|
||||
copy = "Return"
|
||||
save = "ctrl s"
|
||||
delete = "ctrl d"
|
||||
|
||||
[providers.websearch]
|
||||
default = "search"
|
||||
search = "Return"
|
||||
remove_history = "ctrl BackSpace"
|
||||
|
||||
[providers.providerlist]
|
||||
default = "activate"
|
||||
activate = "Return"
|
||||
|
||||
[providers.clipboard]
|
||||
time_format = "%d.%m. - %H:%M" # format for the clipboard item date
|
||||
default = "copy"
|
||||
copy = "Return"
|
||||
delete = "ctrl d"
|
||||
edit = "ctrl o"
|
||||
toggle_images_only = "ctrl i"
|
||||
|
||||
[providers.desktopapplications]
|
||||
default = "start"
|
||||
start = "Return"
|
||||
start_keep_open = "shift Return"
|
||||
remove_history = "ctrl BackSpace"
|
||||
toggle_pin = "ctrl p"
|
||||
|
||||
[providers.files]
|
||||
default = "open"
|
||||
open = "Return"
|
||||
open_dir = "ctrl Return"
|
||||
copy_path = "ctrl shift c"
|
||||
copy_file = "ctrl c"
|
||||
|
||||
[providers.todo]
|
||||
default = "save"
|
||||
save = "Return"
|
||||
delete = "ctrl d"
|
||||
mark_active = "ctrl a"
|
||||
mark_done = "ctrl f"
|
||||
clear = "ctrl x"
|
||||
|
||||
[providers.runner]
|
||||
default = "start"
|
||||
start = "Return"
|
||||
start_terminal = "shift Return"
|
||||
remove_history = "ctrl BackSpace"
|
||||
|
||||
[providers.dmenu]
|
||||
default = "select"
|
||||
select = "Return"
|
||||
|
||||
[providers.symbols]
|
||||
default = "copy"
|
||||
copy = "Return"
|
||||
remove_history = "ctrl BackSpace"
|
||||
|
||||
[providers.unicode]
|
||||
default = "copy"
|
||||
copy = "Return"
|
||||
remove_history = "ctrl BackSpace"
|
||||
|
||||
[providers.menus]
|
||||
default = "activate"
|
||||
activate = "Return"
|
||||
remove_history = "ctrl BackSpace"
|
||||
79
env/.config/waybar/config.jsonc
vendored
Normal file
79
env/.config/waybar/config.jsonc
vendored
Normal file
@@ -0,0 +1,79 @@
|
||||
// -*- mode: jsonc -*-
|
||||
{
|
||||
"layer": "top",
|
||||
"position": "top",
|
||||
"modules-left": ["hyprland/workspaces"],
|
||||
"modules-center": ["clock"],
|
||||
"modules-right": [
|
||||
"pulseaudio",
|
||||
"tray",
|
||||
"cpu",
|
||||
"memory",
|
||||
"battery",
|
||||
"network",
|
||||
"custom/lock",
|
||||
],
|
||||
"hyprland/workspaces": {
|
||||
"format": "{name}: {icon}",
|
||||
"format-icons": {
|
||||
"active": "",
|
||||
"default": "",
|
||||
},
|
||||
},
|
||||
"tray": {
|
||||
"icon-size": 21,
|
||||
"spacing": 10,
|
||||
},
|
||||
"clock": {
|
||||
"timezone": "America/New_York",
|
||||
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
|
||||
"format": "{:%d - %H:%M}",
|
||||
},
|
||||
"network": {
|
||||
"format-wifi": " ",
|
||||
"format-ethernet": " ",
|
||||
"format-disconnected": " ",
|
||||
"interval": 5,
|
||||
"tooltip": false,
|
||||
},
|
||||
"cpu": {
|
||||
"interval": 1,
|
||||
"format": " {icon0}{icon1}{icon2}{icon3} {usage:>2}%",
|
||||
"format-icons": ["▁", "▂", "▃", "▄", "▅", "▆", "▇", "█"],
|
||||
},
|
||||
"memory": {
|
||||
"interval": 30,
|
||||
"format": " {used:0.1f}G/{total:0.1f}G",
|
||||
},
|
||||
"pulseaudio": {
|
||||
"format": "{icon} {volume}%",
|
||||
"format-muted": "",
|
||||
"format-icons": {
|
||||
"default": ["", "", " "],
|
||||
},
|
||||
"on-click": "pavucontrol",
|
||||
},
|
||||
"custom/lock": {
|
||||
"tooltip": false,
|
||||
"on-click": "sh -c '(sleep 0.5s; hyprlock)' & disown",
|
||||
"format": "",
|
||||
},
|
||||
"later": {
|
||||
"format": "<span class='icon'>{icon}</span> <span class='text'>{text}</span>",
|
||||
},
|
||||
"battery": {
|
||||
"states": {
|
||||
// "good": 95,
|
||||
"warning": 30,
|
||||
"critical": 15,
|
||||
},
|
||||
"format": "{capacity}% {icon}",
|
||||
"format-full": "{capacity}% {icon}",
|
||||
"format-charging": "{capacity}% ",
|
||||
"format-plugged": "{capacity}% ",
|
||||
"format-alt": "{time} {icon}",
|
||||
// "format-good": "", // An empty format will hide the module
|
||||
// "format-full": "",
|
||||
"format-icons": ["", "", "", "", ""],
|
||||
},
|
||||
}
|
||||
132
env/.config/waybar/style.css
vendored
Normal file
132
env/.config/waybar/style.css
vendored
Normal file
@@ -0,0 +1,132 @@
|
||||
@define-color foreground #cdd6f4;
|
||||
@define-color background rgba(24, 24, 37, 0.7);
|
||||
@define-color skyblue #89dceb;
|
||||
@define-color blue #89b4fa;
|
||||
@define-color red #f38ba8;
|
||||
@define-color yellow #f9e2af;
|
||||
@define-color peach #fab387;
|
||||
@define-color maroon #eba0ac;
|
||||
@define-color green #a6e3a1;
|
||||
|
||||
* {
|
||||
font-family: JetbrainsMono Nerd Font;
|
||||
font-size: 15px;
|
||||
min-height: 0;
|
||||
margin: 0px;
|
||||
}
|
||||
|
||||
#waybar {
|
||||
background: transparent;
|
||||
color: @foreground;
|
||||
margin: 0px;
|
||||
}
|
||||
|
||||
#workspaces {
|
||||
background: @background;
|
||||
border-radius: 10px;
|
||||
margin-top: 5px;
|
||||
margin-bottom: 5px;
|
||||
margin-left: 0.4rem;
|
||||
}
|
||||
|
||||
#workspaces button {
|
||||
color: @foreground;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
#workspaces button.active {
|
||||
color: @skyblue;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
#workspaces button:hover {
|
||||
color: #85c1dc;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
#custom-music,
|
||||
#tray,
|
||||
#backlight,
|
||||
#clock,
|
||||
#battery,
|
||||
#pulseaudio,
|
||||
#network,
|
||||
#cpu,
|
||||
#memory,
|
||||
#custom-lock,
|
||||
#custom-power {
|
||||
background-color: @background;
|
||||
padding: 0.5rem 1rem;
|
||||
margin: 5px 0;
|
||||
color: @foreground;
|
||||
/* border-radius: 0px 5px 5px 0px; */
|
||||
}
|
||||
|
||||
#clock {
|
||||
color: @foreground;
|
||||
border-radius: 5px;
|
||||
margin-right: 1rem;
|
||||
font-weight: 900;
|
||||
}
|
||||
|
||||
#pulseaudio {
|
||||
color: @red;
|
||||
border-radius: 10px 0px 0px 10px;
|
||||
margin-left: 1rem;
|
||||
}
|
||||
|
||||
#tray {
|
||||
color: @blue;
|
||||
border-radius: 0px 10px 10px 0px;
|
||||
margin-right: 1rem;
|
||||
}
|
||||
|
||||
#cpu {
|
||||
color: @lavender;
|
||||
border-radius: 10px 0px 0px 10px;
|
||||
}
|
||||
|
||||
#memory {
|
||||
color: @peach;
|
||||
margin-right: 1rem;
|
||||
border-radius: 0px 10px 10px 0px;
|
||||
}
|
||||
|
||||
#battery {
|
||||
border-radius: 10px 0px 0px 10px;
|
||||
color: @green;
|
||||
}
|
||||
|
||||
#battery.warning:not(.charging) {
|
||||
color: @yellow;
|
||||
}
|
||||
|
||||
#battery.critical:not(.charging) {
|
||||
color: @red;
|
||||
}
|
||||
|
||||
#backlight {
|
||||
color: #e5c890;
|
||||
}
|
||||
|
||||
#custom-music {
|
||||
color: #ca9ee6;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
#network {
|
||||
margin-right: 1rem;
|
||||
border-radius: 0px 10px 10px 0px;
|
||||
}
|
||||
|
||||
#custom-lock {
|
||||
border-radius: 10px;
|
||||
color: @yellow;
|
||||
margin-right: 0.4rem;
|
||||
}
|
||||
|
||||
#custom-power {
|
||||
margin-right: 1rem;
|
||||
border-radius: 0px 5px 5px 0px;
|
||||
color: #e78284;
|
||||
}
|
||||
193
env/.config/yazi/theme.toml
vendored
Normal file
193
env/.config/yazi/theme.toml
vendored
Normal file
@@ -0,0 +1,193 @@
|
||||
# https://github.com/yazi-rs/flavors.git
|
||||
# Catpuccin - Mocha
|
||||
# : Manager {{{
|
||||
|
||||
[mgr]
|
||||
cwd = { fg = "#94e2d5" }
|
||||
|
||||
# Hovered
|
||||
hovered = { reversed = true }
|
||||
preview_hovered = { underline = true }
|
||||
|
||||
# Find
|
||||
find_keyword = { fg = "#f9e2af", bold = true, italic = true, underline = true }
|
||||
find_position = { fg = "#f5c2e7", bg = "reset", bold = true, italic = true }
|
||||
|
||||
# Marker
|
||||
marker_copied = { fg = "#a6e3a1", bg = "#a6e3a1" }
|
||||
marker_cut = { fg = "#f38ba8", bg = "#f38ba8" }
|
||||
marker_marked = { fg = "#94e2d5", bg = "#94e2d5" }
|
||||
marker_selected = { fg = "#f9e2af", bg = "#f9e2af" }
|
||||
|
||||
# Tab
|
||||
tab_active = { reversed = true }
|
||||
tab_inactive = {}
|
||||
tab_width = 1
|
||||
|
||||
# Count
|
||||
count_copied = { fg = "#1e1e2e", bg = "#a6e3a1" }
|
||||
count_cut = { fg = "#1e1e2e", bg = "#f38ba8" }
|
||||
count_selected = { fg = "#1e1e2e", bg = "#f9e2af" }
|
||||
|
||||
# Border
|
||||
border_symbol = "│"
|
||||
border_style = { fg = "#7f849c" }
|
||||
|
||||
# : }}}
|
||||
|
||||
|
||||
# : Mode {{{
|
||||
|
||||
[mode]
|
||||
|
||||
normal_main = { fg = "#1e1e2e", bg = "#89b4fa", bold = true }
|
||||
normal_alt = { fg = "#89b4fa", bg = "#313244" }
|
||||
|
||||
# Select mode
|
||||
select_main = { fg = "#1e1e2e", bg = "#a6e3a1", bold = true }
|
||||
select_alt = { fg = "#a6e3a1", bg = "#313244" }
|
||||
|
||||
# Unset mode
|
||||
unset_main = { fg = "#1e1e2e", bg = "#f2cdcd", bold = true }
|
||||
unset_alt = { fg = "#f2cdcd", bg = "#313244" }
|
||||
|
||||
# : }}}
|
||||
|
||||
|
||||
# : Status bar {{{
|
||||
|
||||
[status]
|
||||
separator_open = ""
|
||||
separator_close = ""
|
||||
|
||||
# Progress
|
||||
progress_label = { fg = "#ffffff", bold = true }
|
||||
progress_normal = { fg = "#89b4fa", bg = "#45475a" }
|
||||
progress_error = { fg = "#f38ba8", bg = "#45475a" }
|
||||
|
||||
# Permissions
|
||||
perm_sep = { fg = "#7f849c" }
|
||||
perm_type = { fg = "#89b4fa" }
|
||||
perm_read = { fg = "#f9e2af" }
|
||||
perm_write = { fg = "#f38ba8" }
|
||||
perm_exec = { fg = "#a6e3a1" }
|
||||
|
||||
# TODO: -- remove these once Yazi 0.4 gets released
|
||||
separator_style = { fg = "#313244", bg = "#313244" }
|
||||
mode_normal = { fg = "#1e1e2e", bg = "#89b4fa", bold = true }
|
||||
mode_select = { fg = "#1e1e2e", bg = "#a6e3a1", bold = true }
|
||||
mode_unset = { fg = "#1e1e2e", bg = "#f2cdcd", bold = true }
|
||||
permissions_t = { fg = "#89b4fa" }
|
||||
permissions_r = { fg = "#f9e2af" }
|
||||
permissions_w = { fg = "#f38ba8" }
|
||||
permissions_x = { fg = "#a6e3a1" }
|
||||
permissions_s = { fg = "#7f849c" }
|
||||
# TODO: remove these once Yazi 0.4 gets released --
|
||||
|
||||
# : }}}
|
||||
|
||||
|
||||
# : Pick {{{
|
||||
|
||||
[pick]
|
||||
border = { fg = "#89b4fa" }
|
||||
active = { fg = "#f5c2e7", bold = true }
|
||||
inactive = {}
|
||||
|
||||
# TODO: -- remove these once Yazi 0.4 gets released
|
||||
[select]
|
||||
border = { fg = "#89b4fa" }
|
||||
active = { fg = "#f5c2e7", bold = true }
|
||||
inactive = {}
|
||||
# TODO: remove these once Yazi 0.4 gets released --
|
||||
|
||||
# : }}}
|
||||
|
||||
|
||||
# : Input {{{
|
||||
|
||||
[input]
|
||||
border = { fg = "#89b4fa" }
|
||||
title = {}
|
||||
value = {}
|
||||
selected = { reversed = true }
|
||||
|
||||
# : }}}
|
||||
|
||||
|
||||
# : Completion {{{
|
||||
|
||||
[completion]
|
||||
border = { fg = "#89b4fa" }
|
||||
|
||||
# : }}}
|
||||
|
||||
|
||||
# : Tasks {{{
|
||||
|
||||
[tasks]
|
||||
border = { fg = "#89b4fa" }
|
||||
title = {}
|
||||
hovered = { fg = "#f5c2e7", underline = true }
|
||||
|
||||
# : }}}
|
||||
|
||||
|
||||
# : Which {{{
|
||||
|
||||
[which]
|
||||
mask = { bg = "#313244" }
|
||||
cand = { fg = "#94e2d5" }
|
||||
rest = { fg = "#9399b2" }
|
||||
desc = { fg = "#f5c2e7" }
|
||||
separator = " "
|
||||
separator_style = { fg = "#585b70" }
|
||||
|
||||
# : }}}
|
||||
|
||||
|
||||
# : Help {{{
|
||||
|
||||
[help]
|
||||
on = { fg = "#94e2d5" }
|
||||
run = { fg = "#f5c2e7" }
|
||||
hovered = { reversed = true, bold = true }
|
||||
footer = { fg = "#313244", bg = "#cdd6f4" }
|
||||
|
||||
# : }}}
|
||||
|
||||
|
||||
# : Notify {{{
|
||||
|
||||
[notify]
|
||||
title_info = { fg = "#a6e3a1" }
|
||||
title_warn = { fg = "#f9e2af" }
|
||||
title_error = { fg = "#f38ba8" }
|
||||
|
||||
# : }}}
|
||||
|
||||
|
||||
# : File-specific styles {{{
|
||||
|
||||
[filetype]
|
||||
|
||||
rules = [
|
||||
# Images
|
||||
{ mime = "image/*", fg = "#94e2d5" },
|
||||
|
||||
# Media
|
||||
{ mime = "{audio,video}/*", fg = "#f9e2af" },
|
||||
|
||||
# Archives
|
||||
{ mime = "application/*zip", fg = "#f5c2e7" },
|
||||
{ mime = "application/x-{tar,bzip*,7z-compressed,xz,rar}", fg = "#f5c2e7" },
|
||||
|
||||
# Documents
|
||||
{ mime = "application/{pdf,doc,rtf,vnd.*}", fg = "#a6e3a1" },
|
||||
|
||||
# Fallback
|
||||
{ name = "*", fg = "#cdd6f4" },
|
||||
{ name = "*/", fg = "#89b4fa" }
|
||||
]
|
||||
|
||||
# : }}}
|
||||
193
env/.config/yazi/theme.toml-1748966637471042
vendored
Normal file
193
env/.config/yazi/theme.toml-1748966637471042
vendored
Normal file
@@ -0,0 +1,193 @@
|
||||
# https://github.com/yazi-rs/flavors.git
|
||||
# Catpuccin - Mocha
|
||||
# : Manager {{{
|
||||
|
||||
[manager]
|
||||
cwd = { fg = "#94e2d5" }
|
||||
|
||||
# Hovered
|
||||
hovered = { reversed = true }
|
||||
preview_hovered = { underline = true }
|
||||
|
||||
# Find
|
||||
find_keyword = { fg = "#f9e2af", bold = true, italic = true, underline = true }
|
||||
find_position = { fg = "#f5c2e7", bg = "reset", bold = true, italic = true }
|
||||
|
||||
# Marker
|
||||
marker_copied = { fg = "#a6e3a1", bg = "#a6e3a1" }
|
||||
marker_cut = { fg = "#f38ba8", bg = "#f38ba8" }
|
||||
marker_marked = { fg = "#94e2d5", bg = "#94e2d5" }
|
||||
marker_selected = { fg = "#f9e2af", bg = "#f9e2af" }
|
||||
|
||||
# Tab
|
||||
tab_active = { reversed = true }
|
||||
tab_inactive = {}
|
||||
tab_width = 1
|
||||
|
||||
# Count
|
||||
count_copied = { fg = "#1e1e2e", bg = "#a6e3a1" }
|
||||
count_cut = { fg = "#1e1e2e", bg = "#f38ba8" }
|
||||
count_selected = { fg = "#1e1e2e", bg = "#f9e2af" }
|
||||
|
||||
# Border
|
||||
border_symbol = "│"
|
||||
border_style = { fg = "#7f849c" }
|
||||
|
||||
# : }}}
|
||||
|
||||
|
||||
# : Mode {{{
|
||||
|
||||
[mode]
|
||||
|
||||
normal_main = { fg = "#1e1e2e", bg = "#89b4fa", bold = true }
|
||||
normal_alt = { fg = "#89b4fa", bg = "#313244" }
|
||||
|
||||
# Select mode
|
||||
select_main = { fg = "#1e1e2e", bg = "#a6e3a1", bold = true }
|
||||
select_alt = { fg = "#a6e3a1", bg = "#313244" }
|
||||
|
||||
# Unset mode
|
||||
unset_main = { fg = "#1e1e2e", bg = "#f2cdcd", bold = true }
|
||||
unset_alt = { fg = "#f2cdcd", bg = "#313244" }
|
||||
|
||||
# : }}}
|
||||
|
||||
|
||||
# : Status bar {{{
|
||||
|
||||
[status]
|
||||
separator_open = ""
|
||||
separator_close = ""
|
||||
|
||||
# Progress
|
||||
progress_label = { fg = "#ffffff", bold = true }
|
||||
progress_normal = { fg = "#89b4fa", bg = "#45475a" }
|
||||
progress_error = { fg = "#f38ba8", bg = "#45475a" }
|
||||
|
||||
# Permissions
|
||||
perm_sep = { fg = "#7f849c" }
|
||||
perm_type = { fg = "#89b4fa" }
|
||||
perm_read = { fg = "#f9e2af" }
|
||||
perm_write = { fg = "#f38ba8" }
|
||||
perm_exec = { fg = "#a6e3a1" }
|
||||
|
||||
# TODO: -- remove these once Yazi 0.4 gets released
|
||||
separator_style = { fg = "#313244", bg = "#313244" }
|
||||
mode_normal = { fg = "#1e1e2e", bg = "#89b4fa", bold = true }
|
||||
mode_select = { fg = "#1e1e2e", bg = "#a6e3a1", bold = true }
|
||||
mode_unset = { fg = "#1e1e2e", bg = "#f2cdcd", bold = true }
|
||||
permissions_t = { fg = "#89b4fa" }
|
||||
permissions_r = { fg = "#f9e2af" }
|
||||
permissions_w = { fg = "#f38ba8" }
|
||||
permissions_x = { fg = "#a6e3a1" }
|
||||
permissions_s = { fg = "#7f849c" }
|
||||
# TODO: remove these once Yazi 0.4 gets released --
|
||||
|
||||
# : }}}
|
||||
|
||||
|
||||
# : Pick {{{
|
||||
|
||||
[pick]
|
||||
border = { fg = "#89b4fa" }
|
||||
active = { fg = "#f5c2e7", bold = true }
|
||||
inactive = {}
|
||||
|
||||
# TODO: -- remove these once Yazi 0.4 gets released
|
||||
[select]
|
||||
border = { fg = "#89b4fa" }
|
||||
active = { fg = "#f5c2e7", bold = true }
|
||||
inactive = {}
|
||||
# TODO: remove these once Yazi 0.4 gets released --
|
||||
|
||||
# : }}}
|
||||
|
||||
|
||||
# : Input {{{
|
||||
|
||||
[input]
|
||||
border = { fg = "#89b4fa" }
|
||||
title = {}
|
||||
value = {}
|
||||
selected = { reversed = true }
|
||||
|
||||
# : }}}
|
||||
|
||||
|
||||
# : Completion {{{
|
||||
|
||||
[completion]
|
||||
border = { fg = "#89b4fa" }
|
||||
|
||||
# : }}}
|
||||
|
||||
|
||||
# : Tasks {{{
|
||||
|
||||
[tasks]
|
||||
border = { fg = "#89b4fa" }
|
||||
title = {}
|
||||
hovered = { fg = "#f5c2e7", underline = true }
|
||||
|
||||
# : }}}
|
||||
|
||||
|
||||
# : Which {{{
|
||||
|
||||
[which]
|
||||
mask = { bg = "#313244" }
|
||||
cand = { fg = "#94e2d5" }
|
||||
rest = { fg = "#9399b2" }
|
||||
desc = { fg = "#f5c2e7" }
|
||||
separator = " "
|
||||
separator_style = { fg = "#585b70" }
|
||||
|
||||
# : }}}
|
||||
|
||||
|
||||
# : Help {{{
|
||||
|
||||
[help]
|
||||
on = { fg = "#94e2d5" }
|
||||
run = { fg = "#f5c2e7" }
|
||||
hovered = { reversed = true, bold = true }
|
||||
footer = { fg = "#313244", bg = "#cdd6f4" }
|
||||
|
||||
# : }}}
|
||||
|
||||
|
||||
# : Notify {{{
|
||||
|
||||
[notify]
|
||||
title_info = { fg = "#a6e3a1" }
|
||||
title_warn = { fg = "#f9e2af" }
|
||||
title_error = { fg = "#f38ba8" }
|
||||
|
||||
# : }}}
|
||||
|
||||
|
||||
# : File-specific styles {{{
|
||||
|
||||
[filetype]
|
||||
|
||||
rules = [
|
||||
# Images
|
||||
{ mime = "image/*", fg = "#94e2d5" },
|
||||
|
||||
# Media
|
||||
{ mime = "{audio,video}/*", fg = "#f9e2af" },
|
||||
|
||||
# Archives
|
||||
{ mime = "application/*zip", fg = "#f5c2e7" },
|
||||
{ mime = "application/x-{tar,bzip*,7z-compressed,xz,rar}", fg = "#f5c2e7" },
|
||||
|
||||
# Documents
|
||||
{ mime = "application/{pdf,doc,rtf,vnd.*}", fg = "#a6e3a1" },
|
||||
|
||||
# Fallback
|
||||
{ name = "*", fg = "#cdd6f4" },
|
||||
{ name = "*/", fg = "#89b4fa" }
|
||||
]
|
||||
|
||||
# : }}}
|
||||
3
env/.config/yazi/yazi.toml
vendored
Normal file
3
env/.config/yazi/yazi.toml
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
[mgr]
|
||||
show_hidden = true
|
||||
show_symlink = true
|
||||
3
env/.config/yazi/yazi.toml-1748966636821415
vendored
Normal file
3
env/.config/yazi/yazi.toml-1748966636821415
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
[manager]
|
||||
show_hidden = true
|
||||
show_symlink = true
|
||||
256
env/.config/zsh/.zshrc
vendored
Executable file
256
env/.config/zsh/.zshrc
vendored
Executable file
@@ -0,0 +1,256 @@
|
||||
#!/usr/bin/env zsh
|
||||
|
||||
# _
|
||||
# _______| |__ _ __ ___
|
||||
# |_ / __| '_ \| '__/ __|
|
||||
# / /\__ \ | | | | | (__
|
||||
# /___|___/_| |_|_| \___|
|
||||
#
|
||||
#
|
||||
#------------------------------ utilites ------------------------------
|
||||
|
||||
_source_if() { test -r "$1" && source "$1" || return 0 }
|
||||
|
||||
#------------------------------ exports ------------------------------
|
||||
autoload -U up-line-or-beginning-search
|
||||
autoload -U down-line-or-beginning-search
|
||||
zle -N up-line-or-beginning-search
|
||||
zle -N down-line-or-beginning-search
|
||||
# Colors
|
||||
autoload -Uz colors && colors
|
||||
|
||||
#------------------------------ pager ------------------------------
|
||||
#eval "$(batman --export-env)"
|
||||
# export LESS_TERMCAP_mb="[35m" # magenta
|
||||
# export LESS_TERMCAP_md="[33m" # yellow
|
||||
# export LESS_TERMCAP_me=""
|
||||
# export LESS_TERMCAP_se=""
|
||||
# export LESS_TERMCAP_so="[34m" # blue
|
||||
# export LESS_TERMCAP_ue=""
|
||||
# export LESS_TERMCAP_so="[4m" # underline
|
||||
# export LESSHISTFILE="-"
|
||||
|
||||
#------------------------------ path ------------------------------
|
||||
|
||||
# Helper function to prepend to the $PATH
|
||||
path_prepend() {
|
||||
declare arg
|
||||
for arg in "$@"; do
|
||||
test -d "$arg" || continue
|
||||
PATH=${PATH//:"$arg:"/:}
|
||||
PATH=${PATH/#"$arg:"/}
|
||||
PATH=${PATH/%":$arg"/}
|
||||
export PATH="$arg${PATH:+":$PATH"}"
|
||||
done
|
||||
} && export path_prepend
|
||||
|
||||
# Helper function to prepend to the $FPATH
|
||||
fpath_prepend() {
|
||||
declare arg
|
||||
for arg in "$@"; do
|
||||
test -d "$arg" || continue
|
||||
FPATH=${FPATH//:"$arg:"/:}
|
||||
FPATH=${FPATH/#"$arg:"/}
|
||||
FPATH=${FPATH/%":$arg"/}
|
||||
export FPATH="$arg${FPATH:+":$FPATH"}"
|
||||
done
|
||||
} && export fpath_prepend
|
||||
|
||||
# last arg will be first in $PATH
|
||||
path_prepend \
|
||||
"/usr/local/bin" \
|
||||
"$HOME/.local/share/gem/bin" \
|
||||
"$GOROOT/bin" \
|
||||
"$GOPATH/bin" \
|
||||
"$XDG_DATA_HOME/bin" \
|
||||
"$HOME/.local/bin" \
|
||||
"$SCRIPTS" \
|
||||
"$HOME/.local/pnpm" \
|
||||
"$CARGO_HOME/bin" \
|
||||
"$HOME/.local/bin"
|
||||
|
||||
# last arg will be first in $FPATH
|
||||
fpath_prepend \
|
||||
"$ZDOTDIR/completions" \
|
||||
"$HOME/.local/share/zsh/completions" \
|
||||
"$ZDOTDIR/functions"
|
||||
|
||||
autoload -Uz $fpath[1]/*(.:t)
|
||||
|
||||
#------------------------------ history ------------------------------
|
||||
setopt appendhistory # append to history
|
||||
setopt sharehistory # share history across multiple sessions
|
||||
setopt incappendhistory # adds commands as typed, not at shell exit
|
||||
setopt hist_expire_dups_first # expire duplicates first
|
||||
setopt hist_ignore_dups # do not store duplicates
|
||||
setopt hist_find_no_dups # ignore duplicates when searching
|
||||
setopt hist_reduce_blanks # do not store blank lines.
|
||||
setopt histignorespace # do not store commands that start with a space in history
|
||||
|
||||
export HISTSIZE=5000
|
||||
export HISTFILESIZE=5000
|
||||
export SAVEHIST=5000
|
||||
export HISTFILE="$XDG_CONFIG_HOME/zsh/history"
|
||||
|
||||
#set -o vi
|
||||
|
||||
#------------------------------ cdpath ------------------------------
|
||||
setopt autocd
|
||||
|
||||
# NOTE: This may be overriden in local env overrides (typically located in $XDG_DATA_HOME/zsh/env.zsh
|
||||
export CDPATH=".:$REPOS:$REPOS/ansible:$DOTFILES:$LOCAL_REPOS:$BUCKET:$HOME"
|
||||
|
||||
#------------------------------ options ------------------------------
|
||||
# (see `man zshoptions`)
|
||||
setopt chaselinks
|
||||
setopt extended_glob
|
||||
setopt glob_dots
|
||||
setopt glob_star_short
|
||||
setopt clobber
|
||||
setopt interactive_comments
|
||||
setopt aliases
|
||||
setopt auto_pushd # Push the current directory on the stack.
|
||||
setopt pushd_ignore_dups # Ignore duplicates in stack
|
||||
setopt pushd_silent # Do not print stack after pushd or popd.
|
||||
setopt CORRECT # Offers corrections on misspelled commands.
|
||||
|
||||
bindkey -v # Enable vi mode
|
||||
export KEYTIMEOUT=1 # Switch between vim mode quicker.
|
||||
|
||||
# Load Useful Functions
|
||||
_source_if "${ZDOTDIR}/zsh-functions"
|
||||
|
||||
# Plugins
|
||||
zsh_add_plugin "zsh-users/zsh-autosuggestions"
|
||||
zsh_add_plugin "zsh-users/zsh-syntax-highlighting"
|
||||
zsh_add_plugin "Aloxaf/fzf-tab"
|
||||
|
||||
#------------------------------ completions ------------------------------
|
||||
# case insensitive path-completion
|
||||
zstyle ':completion:*' matcher-list 'm:{[:lower:][:upper:]}={[:upper:][:lower:]}' 'm:{[:lower:][:upper:]}={[:upper:][:lower:]} l:|=* r:|=*' 'm:{[:lower:][:upper:]}={[:upper:][:lower:]} l:|=* r:|=*' 'm:{[:lower:][:upper:]}={[:upper:][:lower:]} l:|=* r:|=*'
|
||||
|
||||
# partial completion suggestions
|
||||
zstyle ':completion:*' list-suffixes
|
||||
#
zstyle ':completion:*' expand prefix suffix
|
||||
|
||||
zstyle ':completion:*' menu no
|
||||
zstyle ':fzf-tab:complete:cd:*' fzf-preview 'ls --color $realpath'
|
||||
|
||||
autoload -Uz compinit; compinit # zstyle(s) should be added before this.
|
||||
zmodload zsh/complist
|
||||
_comp_options+=(globdots) # Include hidden files.
|
||||
|
||||
autoload bashcompinit && bashcompinit
|
||||
[[ -r "$PASSWORD_STORE_DIR/.extensions/completions/extensions.bash.completion" ]] && \
|
||||
source "$PASSWORD_STORE_DIR/.extensions/completions/extensions.bash.completion"
|
||||
|
||||
_source_if "$ZDOTDIR/plugins/fzf-tab/fzf-tab.plugin.zsh"
|
||||
|
||||
#------------------------------ prompt ------------------------------
|
||||
|
||||
# Prompt / managed by brew. (`brew install starship`)
|
||||
autoload -Uz promptinit; promptinit
|
||||
eval "$(starship init zsh)"
|
||||
#prompt pure
|
||||
|
||||
#------------------------------ aliases ------------------------------
|
||||
|
||||
alias bk='cd "${OLDPWD}"' # change to last directory
|
||||
alias cda='cd "$ANSIBLE_LOCAL"' # change into local ansible directory.
|
||||
alias cl='printf "\e[H\e[2J"' # clear the terminal
|
||||
alias clear='printf "\e[H\e[2J"' # clear the terminal
|
||||
alias czets='cd "${ZETDIR}"' # move into zettlekasten notes
|
||||
alias d='docker' # run docker commands quickly
|
||||
alias dc='docker compose' # run docker-compose commands quickly
|
||||
alias dv='dirs -v' # list directory info
|
||||
alias essh='edit-ssh-config' # edit ssh config quickly
|
||||
alias fl='find-latest' # Find the last modified file in a directory.
|
||||
alias g='git' # access git commands quickly
|
||||
alias ga='git add' # add files to git quickly
|
||||
alias gcb='git checkout -b' # checkout a new git branch, creating if needed.
|
||||
alias gco='git checkout' # checkout an already existing git branch
|
||||
alias gcm='git commit -a -m' # commit files to git quickly
|
||||
alias gen='just --justfile "$ANSIBLE_GEN_DIR/justfile"' # generate template files / directories
|
||||
alias gp='git push' # push repo to git
|
||||
alias gs='git status' # git status quickly
|
||||
alias hn='hugo new' # generate a hugo site
|
||||
alias hnc='hugo new content' # generate new hugo site content quickly
|
||||
alias j='just' # run justfile's quickly.
|
||||
alias l='eza --long --git --group --links --icons --all' # better ls command.
|
||||
alias lfs='ls -lahH --color=auto "$ZDOTDIR/functions"' # List functions.
|
||||
alias ls='eza --long --git --group --links --icons --all'
|
||||
alias lt='eza --long --git --group --links --icons --tree'
|
||||
alias pass='gopass'
|
||||
alias p='gopass' # run the pass command quickly.
|
||||
alias pf='pass fzf' # fuzzy find a password quickly and copy selection to clipboard.
|
||||
alias pg='gopass show' # get an attribute of a password file quickly.
|
||||
alias pgc='gopass show --clip' # get an attribute of a password file and copy to the clipboard.
|
||||
alias reload='exec zsh -l' # reload the shell, useful when making changes.
|
||||
alias s='swift' # shorthand to access swift commands
|
||||
alias st='swift test' # swift test
|
||||
alias sb='swift build' # swift build
|
||||
alias t='tmux' # access tmux quickly
|
||||
alias tka='tmux kill-server' # kill tmux server and all sessions.
|
||||
alias ts='$SCRIPTS/tmux-sessionator' # create new tmux session, fuzzy finding common locations.
|
||||
alias tss='$SCRIPTS/tmux-sessionator --choose' # attach to an existing tmux session.
|
||||
alias tls='tmux list-sessions' # list tmux sessions
|
||||
alias tks='tmux kill-session -t' # kill tmux session
|
||||
alias temp='cd $(mktemp -d)' # create a temporary directory and move into it.
|
||||
alias vi='nvim' # set vi to open neovim
|
||||
alias newf='"$SCRIPTS"/newx --function' # generate a new shell function
|
||||
alias nlnv='nvim "$LOCAL_ENV"' # open local environment overrides file in neovime
|
||||
alias nvim='unset VIMINIT && unset MYVIMRC && nvim' # alias nvim to unset vimrc, useful when using both vim & neovim
|
||||
alias nvim-mhoush='NVIM_APPNAME=m-housh && nvim' # set neovim to use my config.
|
||||
alias nvim-kickstart='NVIM_APPNAME=kickstart nvim' # set neovim to use kickstart config.
|
||||
alias nvim-lazy='NVIM_APPNAME=lazy nvim' # set neovim to use lazy config.
|
||||
alias wget="wget --hsts-file=$XDG_DATA_HOME/wget-hsts" # set wget history location.
|
||||
# GPG Yubikey restart relearn when switching keys and stubbed.
|
||||
alias yubikeyrestart='gpg-connect-agent killagent /bye && gpg-connect-agent "scd serialno" "learn --force" /bye && gpg --card-status'
|
||||
alias z='zoxide'
|
||||
|
||||
# NOTE: This needs to stay near the bottom, or it doesn't work properly.
|
||||
# Use fzf in history / search contexts.
|
||||
source <(fzf --zsh)
|
||||
#source <(kubectl completion zsh)
|
||||
|
||||
#------------------------------ local configs ------------------------------
|
||||
|
||||
# TODO: The .zshrc-local is a legacy location and should be removed once my machines are
|
||||
# use the new location in XDG_DATA_HOME.
|
||||
# HACK: These need to stay here, otherwise environment overrides do not work properly
|
||||
# I tried sourcing them in the the `.zshenv` files, but did not work.
|
||||
_source_if "$ZDOTDIR/.zshrc-local"
|
||||
_source_if "$LOCAL_ENV"
|
||||
|
||||
# pnpm
|
||||
export PNPM_HOME="/Users/michael/.local/share/pnpm"
|
||||
case ":$PATH:" in
|
||||
*":$PNPM_HOME:"*) ;;
|
||||
*) export PATH="$PNPM_HOME:$PATH" ;;
|
||||
esac
|
||||
# pnpm end
|
||||
|
||||
# The following lines have been added by Docker Desktop to enable Docker CLI completions.
|
||||
fpath=(/Users/michael/.docker/completions $fpath)
|
||||
autoload -Uz compinit
|
||||
compinit
|
||||
|
||||
#eval "$(ssh-agent -s)" 1>/dev/null
|
||||
|
||||
########################################
|
||||
# Set things up for using gpg-agent
|
||||
|
||||
export GPG_TTY=$(tty)
|
||||
|
||||
function use-gpg-agent-for-ssh {
|
||||
SOCK="$( gpgconf --list-dirs agent-ssh-socket )"
|
||||
if [[ -n "${SOCK:-}" ]]
|
||||
then
|
||||
unset SSH_AGENT_PID
|
||||
export SSH_AUTH_SOCK="$SOCK"
|
||||
fi
|
||||
}
|
||||
use-gpg-agent-for-ssh
|
||||
|
||||
command -v direnv >/dev/null 2>&1 && eval "$(direnv hook zsh)"
|
||||
command -v zoxide >/dev/null 2>&1 && eval "$(zoxide init --cmd cd zsh)"
|
||||
5
env/.config/zsh/functions/brew-update
vendored
Executable file
5
env/.config/zsh/functions/brew-update
vendored
Executable file
@@ -0,0 +1,5 @@
|
||||
#!/usr/bin/env zsh
|
||||
|
||||
function brew-update() {
|
||||
brew update && brew upgrade --greedy && brew cleanup
|
||||
}
|
||||
6
env/.config/zsh/functions/cdots
vendored
Executable file
6
env/.config/zsh/functions/cdots
vendored
Executable file
@@ -0,0 +1,6 @@
|
||||
#!/usr/bin/env zsh
|
||||
|
||||
function cdots() {
|
||||
"$SCRIPTS/tmux-sessionator" "$DOTFILES"
|
||||
}
|
||||
|
||||
8
env/.config/zsh/functions/chmox
vendored
Executable file
8
env/.config/zsh/functions/chmox
vendored
Executable file
@@ -0,0 +1,8 @@
|
||||
#!/bin/zsh
|
||||
|
||||
# makes files executable
|
||||
|
||||
function chmox() {
|
||||
[ ! -f "$1" ] && echo "usage: chmox <file>" && return 1
|
||||
chmod u+x "$1"
|
||||
}
|
||||
7
env/.config/zsh/functions/clean-screenshots
vendored
Executable file
7
env/.config/zsh/functions/clean-screenshots
vendored
Executable file
@@ -0,0 +1,7 @@
|
||||
#!/bin/zsh
|
||||
|
||||
function clean-screenshots() {
|
||||
for file in "$SCREENSHOTS"/*; do
|
||||
rm "$file"
|
||||
done
|
||||
}
|
||||
23
env/.config/zsh/functions/desktop
vendored
Executable file
23
env/.config/zsh/functions/desktop
vendored
Executable file
@@ -0,0 +1,23 @@
|
||||
#!/bin/zsh
|
||||
|
||||
function desktop() {
|
||||
declare hide
|
||||
declare show
|
||||
|
||||
zparseopts -D -E -K -- \
|
||||
{h,-hide}=hide \
|
||||
{s,-show}=show
|
||||
|
||||
if [ -n "$hide" ]; then
|
||||
defaults write com.apple.finder CreateDesktop false && killall Finder
|
||||
return 0
|
||||
fi
|
||||
|
||||
if [ -n "$show" ]; then
|
||||
defaults write com.apple.finder CreateDesktop true && killall Finder
|
||||
return 0
|
||||
fi
|
||||
|
||||
echo "Please pass in --hide | --show"
|
||||
return 1
|
||||
}
|
||||
16
env/.config/zsh/functions/dmg
vendored
Executable file
16
env/.config/zsh/functions/dmg
vendored
Executable file
@@ -0,0 +1,16 @@
|
||||
#!/bin/zsh
|
||||
|
||||
# Creates an encrypted disk image from a folder
|
||||
function dmg() {
|
||||
from="$1"
|
||||
to="$2"
|
||||
|
||||
if [ -z "$1" ] || [ -z "$2" ]; then
|
||||
echo "Usage: dmg <fromdir> <todir>"
|
||||
echo ""
|
||||
return 1
|
||||
fi
|
||||
|
||||
name="$(isosec).dmg"
|
||||
hdiutil create -encryption AES-256 -srcfolder "$from" "$to/$name"
|
||||
}
|
||||
12
env/.config/zsh/functions/dp
vendored
Executable file
12
env/.config/zsh/functions/dp
vendored
Executable file
@@ -0,0 +1,12 @@
|
||||
#!/bin/zsh
|
||||
|
||||
function dp() {
|
||||
[ -z "$1" ] && echo "Must supply temperature" && return 1
|
||||
[ -z "$2" ] && echo "Must supply relative humidity" && return 1
|
||||
|
||||
local temperature=$1
|
||||
local humidity=$2
|
||||
|
||||
/opt/homebrew/bin/psychrometrics dew-point --dry-bulb "$temperature" --relative-humidity "$humidity"
|
||||
|
||||
}
|
||||
5
env/.config/zsh/functions/edit-ssh-config
vendored
Executable file
5
env/.config/zsh/functions/edit-ssh-config
vendored
Executable file
@@ -0,0 +1,5 @@
|
||||
#!/bin/zsh
|
||||
|
||||
function edit-ssh-config() {
|
||||
ansible-vault edit "$DOTFILES/ssh/config"
|
||||
}
|
||||
7
env/.config/zsh/functions/find-latest
vendored
Executable file
7
env/.config/zsh/functions/find-latest
vendored
Executable file
@@ -0,0 +1,7 @@
|
||||
#!/bin/zsh
|
||||
|
||||
# Find the last modified file in a directory.
|
||||
function find-latest() {
|
||||
local dir=$1
|
||||
echo "$(find $dir -maxdepth 1 -mindepth 1 -type f | sort -nr | head -1)"
|
||||
}
|
||||
8
env/.config/zsh/functions/gl
vendored
Executable file
8
env/.config/zsh/functions/gl
vendored
Executable file
@@ -0,0 +1,8 @@
|
||||
#!/bin/zsh
|
||||
|
||||
# Prettier git log
|
||||
function gl() {
|
||||
git log --graph \
|
||||
--pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' \
|
||||
--abbrev-commit
|
||||
}
|
||||
11
env/.config/zsh/functions/gma
vendored
Executable file
11
env/.config/zsh/functions/gma
vendored
Executable file
@@ -0,0 +1,11 @@
|
||||
#!/bin/zsh
|
||||
|
||||
# Add all and commit to git.
|
||||
|
||||
function gma() {
|
||||
[ -z "$1" ] \
|
||||
&& echo "usage: gma <commit-message>" \
|
||||
&& return 1
|
||||
|
||||
git add . && git commit -m "$1"
|
||||
}
|
||||
5
env/.config/zsh/functions/gpgreset
vendored
Executable file
5
env/.config/zsh/functions/gpgreset
vendored
Executable file
@@ -0,0 +1,5 @@
|
||||
#!/bin/zsh
|
||||
|
||||
function gpgreset() {
|
||||
gpgconf --kill all && gpgconf --launch all
|
||||
}
|
||||
12
env/.config/zsh/functions/mkcd
vendored
Executable file
12
env/.config/zsh/functions/mkcd
vendored
Executable file
@@ -0,0 +1,12 @@
|
||||
#!/usr/bin/env zsh
|
||||
|
||||
# Creates a directory then `cd`'s into the directory
|
||||
|
||||
function mkcd() {
|
||||
dir=$1
|
||||
if [ -z "$dir" ]; then
|
||||
echo "usage: mkcd <dir>" && return 1
|
||||
fi
|
||||
mkdir "$dir"
|
||||
cd "$dir"
|
||||
}
|
||||
25
env/.config/zsh/functions/n
vendored
Executable file
25
env/.config/zsh/functions/n
vendored
Executable file
@@ -0,0 +1,25 @@
|
||||
#!/usr/bin/env zsh
|
||||
|
||||
# Open's neovim.
|
||||
#
|
||||
# If the argument passed in is a directory or not supplied, then
|
||||
# open neovim with telescope find files opened. Otherwise open the
|
||||
# file that is supplied.
|
||||
#
|
||||
|
||||
function n() {
|
||||
# if [ -z "$1" ]; then
|
||||
# local gitdir=$(git rev-parse --show-toplevel 2> /dev/null)
|
||||
#
|
||||
# [ -n "$gitdir" ] \
|
||||
# && nvim -c ":Telescope git_files" \
|
||||
# && return 0
|
||||
#
|
||||
# [ -d "$1" ] \
|
||||
# && nvim -c ":Telescope find_files" \
|
||||
# && return 0
|
||||
# fi
|
||||
|
||||
nvim "$@"
|
||||
}
|
||||
|
||||
13
env/.config/zsh/functions/new-proposal
vendored
Executable file
13
env/.config/zsh/functions/new-proposal
vendored
Executable file
@@ -0,0 +1,13 @@
|
||||
#!/bin/zsh
|
||||
|
||||
prefix=$(date '+%y.%m.%d')
|
||||
name=$(gum input --placeholder="Enter customer name...")
|
||||
|
||||
if [ -z "$name" ]; then
|
||||
echo "Name should not be blank." && exit 1
|
||||
fi
|
||||
|
||||
cleanedName="${name%% *}${name##* }"
|
||||
directory="$PROPOSALS/$prefix.$cleanedName"
|
||||
mkdir "$directory"
|
||||
echo "$directory"
|
||||
7
env/.config/zsh/functions/shortdate
vendored
Executable file
7
env/.config/zsh/functions/shortdate
vendored
Executable file
@@ -0,0 +1,7 @@
|
||||
#!/bin/zsh
|
||||
|
||||
# Formats the date as '23.10.12'.
|
||||
|
||||
function shortdate() {
|
||||
echo "$(date '+%Y.%m.%d' | cut -c3-)"
|
||||
}
|
||||
17
env/.config/zsh/functions/tns
vendored
Executable file
17
env/.config/zsh/functions/tns
vendored
Executable file
@@ -0,0 +1,17 @@
|
||||
#!/usr/bin/env zsh
|
||||
|
||||
# Create a tmux session.
|
||||
#
|
||||
# This accepts a path argument that is used to create the tmux session
|
||||
# in, using it's basename for the session name.
|
||||
#
|
||||
# If an argument is not supplied, then we will create a tmux session in
|
||||
# the current working directory.
|
||||
|
||||
function tns() {
|
||||
local directory=$1
|
||||
if [ -n "$directory" ]; then
|
||||
directory=${PWD}
|
||||
fi
|
||||
tmux-sessionator --directory "$directory"
|
||||
}
|
||||
6
env/.config/zsh/functions/update-dots
vendored
Executable file
6
env/.config/zsh/functions/update-dots
vendored
Executable file
@@ -0,0 +1,6 @@
|
||||
#!/bin/zsh
|
||||
|
||||
function update-dots() {
|
||||
find "$ANSIBLE_MACOS_PLAYBOOK_DIR" -type f -maxdepth 1 -mindepth 1 -name justfile \
|
||||
| xargs -I {} just --justfile {} run-playbook --tags dotfiles "$@"
|
||||
}
|
||||
19
env/.config/zsh/functions/vic
vendored
Executable file
19
env/.config/zsh/functions/vic
vendored
Executable file
@@ -0,0 +1,19 @@
|
||||
#!/bin/zsh
|
||||
|
||||
function vic() {
|
||||
# opens a shell command in $EDITOR
|
||||
cmd="$(command -v $1)"
|
||||
|
||||
[ -f "$cmd" ] \
|
||||
&& "$EDITOR" "$cmd" \
|
||||
&& return 0
|
||||
|
||||
# if command was not found try the function directory.
|
||||
cmd="$ZFUNCDIR/$1"
|
||||
[ -f "$cmd" ] \
|
||||
&& "$EDITOR" "$cmd" \
|
||||
&& return 0
|
||||
|
||||
echo "Command not found: $1"
|
||||
return 1
|
||||
}
|
||||
32
env/.config/zsh/zsh-functions
vendored
Executable file
32
env/.config/zsh/zsh-functions
vendored
Executable file
@@ -0,0 +1,32 @@
|
||||
#!/bin/zsh
|
||||
# Function to source files if they exist
|
||||
function zsh_add_file() {
|
||||
[ -f "$ZDOTDIR/$1" ] && source "$ZDOTDIR/$1"
|
||||
}
|
||||
|
||||
function zsh_add_plugin() {
|
||||
PLUGIN_NAME=$(echo $1 | cut -d "/" -f 2)
|
||||
if [ -d "$ZDOTDIR/plugins/$PLUGIN_NAME" ]; then
|
||||
# For plugins
|
||||
zsh_add_file "plugins/$PLUGIN_NAME/$PLUGIN_NAME.plugin.zsh" || \
|
||||
zsh_add_file "plugins/$PLUGIN_NAME/$PLUGIN_NAME.zsh"
|
||||
else
|
||||
git clone "https://github.com/$1.git" "$ZDOTDIR/plugins/$PLUGIN_NAME"
|
||||
fi
|
||||
}
|
||||
|
||||
function zsh_add_completion() {
|
||||
PLUGIN_NAME=$(echo $1 | cut -d "/" -f 2)
|
||||
if [ -d "$ZDOTDIR/plugins/$PLUGIN_NAME" ]; then
|
||||
# For completions
|
||||
completion_file_path=$(ls $ZDOTDIR/plugins/$PLUGIN_NAME/_*)
|
||||
fpath+="$(dirname "${completion_file_path}")"
|
||||
zsh_add_file "plugins/$PLUGIN_NAME/$PLUGIN_NAME.plugin.zsh"
|
||||
else
|
||||
git clone "https://github.com/$1.git" "$ZDOTDIR/plugins/$PLUGIN_NAME"
|
||||
fpath+=$(ls $ZDOTDIR/plugins/$PLUGIN_NAME/_*)
|
||||
[ -f $ZDOTDIR/.zccompdump ] && $ZDOTDIR/.zccompdump
|
||||
fi
|
||||
completion_file="$(basename "${completion_file_path}")"
|
||||
if [ "$2" = true ] && compinit "${completion_file:1}"
|
||||
}
|
||||
Reference in New Issue
Block a user