70 Commits

Author SHA1 Message Date
b7edc19958 feat: More hyprland configuration 2025-09-23 12:06:51 -04:00
8bc955b12f feat: More hyprland updates 2025-09-23 09:23:26 -04:00
28c71ee752 feat: Working on more hyprland configuration 2025-09-23 08:21:23 -04:00
920d87f8e0 Working on hyprland configuration, working hyprlock, hyprpaper not working. 2025-09-21 14:05:54 -04:00
d90146fde3 feat: Adds arch specific scripts and removes raycast (macOS) specific scripts. 2025-09-21 01:03:39 -04:00
40fe096baa feat: Removes macOS specific configurations or apps that I no longer use 2025-09-21 00:53:32 -04:00
9dd5559af5 Updated git config, gopass config, hyprland config, kitty config 2025-09-21 00:35:51 -04:00
c96dd116c9 feat: Adds hyprland keybind to launch gitea web app. 2025-09-19 18:34:51 -04:00
92fbde1e00 feat: Initial hyprland setup 2025-09-19 18:19:02 -04:00
b77180638a feat: Updates todos. 2025-09-18 17:14:48 -04:00
a06f1cc2a6 feat: Renames mason config repo in lazynvim 2025-09-18 16:50:02 -04:00
2a54c8c599 feat: Updates vim-tmux-navigator config to work properly. 2025-09-18 16:47:38 -04:00
dddcb877d6 feat: Adds some split navigation to ghostty config. 2025-09-18 16:31:06 -04:00
0bd1e6242d feat: updates nvim and adds gpgreset function 2025-09-18 11:36:44 -04:00
e8de865417 feat: Sets up correction suggestions for zsh 2025-09-17 14:45:49 -04:00
3825ef78ff feat: Updates ghostty config 2025-09-17 10:49:51 -04:00
81582b2194 feat: Adds 'z' alias for zoxide 2025-09-17 10:26:29 -04:00
9363055e5a feat: Removes zoxide from echoing path. 2025-09-17 10:23:55 -04:00
3230fb7007 feat: Adds zoxide to shell 2025-09-17 10:20:00 -04:00
6f11d99043 feat: Updates CARGO_HOME shell variable and location. 2025-09-17 08:55:49 -04:00
802ea082c8 feat: Updates path to include rust / cargo bin 2025-09-16 14:59:09 -04:00
9cb3792223 Adds dp function 2025-06-26 10:25:05 -04:00
3041d0a5e5 feat: Adds typst preview toggle to nvim key maps. 2025-04-24 14:11:46 -04:00
ecf3e98e25 feat: Adds typst preview and language server. 2025-04-23 11:08:11 -04:00
cbe4ebc538 feat: Adds harper_ls to lsp config. 2025-04-17 15:20:25 -04:00
511c7307b6 feat: Updates to git config and snacks.nvim 2025-04-04 17:12:56 -04:00
30ac84ecac fix: Fixes find latest function. 2025-04-03 08:53:00 -04:00
547cc41436 feat: Adds find-latest function to zsh, 'fl' alias for it, lazyvim config changes. 2025-04-03 08:50:04 -04:00
3fd33cd92e feat: Surpresses undefined global 'vim' in lua_ls setup. 2025-04-01 12:48:03 -04:00
8c83898abf feat: Removes project.nvim. 2025-04-01 12:07:13 -04:00
3fc1054206 feat: Updates lazyvim configuration, adds some configuration files. 2025-04-01 11:58:35 -04:00
6c6c5c507d feat: More lazyvim configuration changes. 2025-03-31 15:23:21 -04:00
b627d68ae3 feat: Updates lazyvim configuration, adds some configuration files. 2025-03-31 13:18:07 -04:00
d8feb9535d feat: Adds yubikeyrestart alias 2025-03-31 11:31:30 -04:00
73973aed67 feat: Updates lazyvim. 2025-03-31 09:49:32 -04:00
534a902512 feat: Adds needed LaunchAgents for using gpg ssh keys. 2025-03-31 09:36:27 -04:00
5dc1b33da8 feat: Working on trying lazyvim 2025-03-31 09:33:04 -04:00
4624fa48d3 feat: Adds gpg configuration. 2025-03-29 23:46:49 -04:00
fa0cf72ae0 feat: Configuration changes. 2025-03-29 23:41:16 -04:00
e10715940f feat: Adds ssh-agent eval to zshrc to use open-ssh instead of default macos installed ssh. 2025-03-28 15:47:38 -04:00
a5ca5b4f63 feat: Removes using gpg as an ssh agent. 2025-03-28 12:34:53 -04:00
26b98e444d feat: Check if signing key is fixed. 2025-03-28 10:57:52 -04:00
3796572324 fix: Remains of merge conflict. 2025-03-27 17:08:30 -04:00
3382c4b165 feat: Adds gpg-agent ssh_auth_sock export to zshrc 2025-03-27 17:01:34 -04:00
afdedc5acf feat: Updates git config. 2025-03-26 19:53:07 -04:00
ad5ade6679 feat: Adds CONSULTS environment variable 2025-03-26 10:45:25 -04:00
994ff17ceb feat: Adds DRIVE environment variable. 2025-03-26 10:41:16 -04:00
ccc2367bc3 feat: Adds hpa config. 2025-03-26 10:40:19 -04:00
7f98d4046f feat: Adds sketchybar configuration. 2025-03-26 09:21:33 -04:00
98804b3aa5 feat: Adds new-proposal function 2025-03-11 09:09:55 -04:00
53db3f3e8f feat: Adds new-proposal function 2025-03-11 08:57:37 -04:00
86422bd68b feat: Adds kubectl completions to zshrc. 2025-01-29 13:41:26 -05:00
95139d50ba feat: Adds leaf autocommand to set the filetype to html for better highlight groups. 2025-01-05 13:14:26 -05:00
15b1aded69 feat: Adds ask-gpt script. 2025-01-03 16:12:56 -05:00
dcac27db37 feat: Updates nvim config to include ghostty config highlighting 2025-01-03 13:44:02 -05:00
a71ae05e5b feat: Adds ghostty config syntax highlighting. 2025-01-02 17:46:57 -05:00
9a1b00610e feat adds render-markdown.nvim plugin 2025-01-02 17:46:57 -05:00
4f47e288ea feat: Ghostty config changes. 2024-12-31 07:57:38 -05:00
963fcd2810 feat: Adds mini-ai, ghostty config updates, tmux config updates. 2024-12-29 09:07:18 -05:00
9ead148f34 feat: More ghostty config and updates tmux config to allow image pass through. 2024-12-26 18:57:33 -05:00
0d8364eaf9 feat: Adds ghostty config 2024-12-26 18:26:51 -05:00
4d42fa4dab feat: Adds brew-update function 2024-12-25 16:02:39 -05:00
f23adad4b0 feat: Disables blink.cmp 2024-12-23 08:46:59 -05:00
44f5c35d38 feat: Luasnip working with blink.cmp 2024-12-21 20:10:28 -05:00
25ddde6e12 feat: Updates todo comments. 2024-12-20 22:16:04 -05:00
4a023203bd feat: Adds filetype to xcodebuild.nvim plugin for lazy loading 2024-12-20 10:01:24 -05:00
5f07ffede9 fix: Fixes luasnip not loading custom snippets. 2024-12-20 09:55:53 -05:00
6cdf85b4e3 feat: Reworking nvim configuration 2024-12-20 09:48:54 -05:00
876e7f6d0e feat: Rearranges nvim configuration 2024-12-20 08:13:43 -05:00
b78fb64bd3 feat: Rearranges nvim configuration 2024-12-20 08:10:53 -05:00
123 changed files with 2697 additions and 2893 deletions

3
.markdownlint.jsonc Normal file
View File

@@ -0,0 +1,3 @@
{
"MD013": { "code_blocks": false }
}

2
.prettierrc.yaml Normal file
View File

@@ -0,0 +1,2 @@
proseWrap: always
printWidth: 80

View File

@@ -5,3 +5,5 @@
- Add tmux-powerline linking to `dots` cli manager. - Add tmux-powerline linking to `dots` cli manager.
- Clean up zet commands, maybe make a gum / fzf filter script. - Clean up zet commands, maybe make a gum / fzf filter script.
- Update README to reflect ansible installation - Update README to reflect ansible installation
- Update ansible to do gpg installation.
- Update ansible to include sketchybar.

View File

@@ -1,11 +0,0 @@
# Facebook Bot Instructions
This is used to programmaticly make posts to Facebook.
## References
- https://developers.facebook.com/docs/graph-api/reference/v18.0/group/feed
- https://developers.facebook.com/tools/explorer?method=GET&path=896542914538874&version=v18.0
An access token with `publish_to_groups` permissions is required to post to
groups.

32
ghostty/config Normal file
View File

@@ -0,0 +1,32 @@
theme = Catppuccin Mocha
confirm-close-surface = false
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
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 = super+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

View File

@@ -1,29 +1,67 @@
[core] [core]
excludesfile = ~/.config/git/gitignore excludesfile = ~/.config/git/gitignore
ignorecasse = false ignorecasse = false
[init] [init]
defaultBranch = main defaultBranch = main
[user] [user]
name = Michael Housh name = Michael Housh
email = mhoush@houshhomeenergy.com email = michael@mhoush.com
signingkey = mhoush@houshhomeenergy.com signingkey = 0x90D3EB6274D5B7CF
[commit] [commit]
gpgsign = true gpgsign = true
[tag] [tag]
gpgSign = true gpgSign = true
sort = version:refname
[color] [color]
ui = true ui = true
[filter "lfs"]
clean = git-lfs clean -- %f
smudge = git-lfs smudge -- %f
process = git-lfs filter-process
required = true
[credential] [credential]
helper = gopass helper = gopass
[credential "https://git.housh.dev"] [credential "https://git.housh.dev"]
username = michael username = michael
[push] [push]
default = simple
autoSetupRemote = true 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

View File

@@ -1,6 +1,13 @@
[mounts] [mounts]
path = /Users/michael/.local/share/password-store path = /home/michael/.local/share/gopass/passwordstore
[recipients] [recipients]
hash = 3199e2acda60d6f17a15882ba11749feda9775cf848554c8f04f12bc84521fd3 hash = 6a408ace969698b274c7c7580f7b0187e8aab4018ae06c5de895d69ae99b8b44
[mounts "servers"] [mounts "servers"]
path = /Users/michael/.local/share/gopass/stores/servers [recipients "homelab"]
hash = e4e019251bcd688aa1691b6b4363a9798593f4aed464afb63d11149ea771b4e0
[mounts "homelab"]
[recipients "new-test"]
hash = 3199e2acda60d6f17a15882ba11749feda9775cf848554c8f04f12bc84521fd3
[mounts "new-test"]
[recipients "servers"]
hash = e4e019251bcd688aa1691b6b4363a9798593f4aed464afb63d11149ea771b4e0

View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/ProperyList-1.0/dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>net.jms1.gpg-agent-symlink</string>
<key>ProgramArguments</key>
<array>
<string>/bin/sh</string>
<string>-c</string>
<string>/bin/ln -sf $HOME/.gnupg/S.gpg-agent.ssh $SSH_AUTH_SOCK</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>

View File

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>net.jms1.gpg-agent</string>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<false/>
<key>ProgramArguments</key>
<array>
<string>/usr/local/MacGPG2/bin/gpg-connect-agent</string>
<string>/bye</string>
</array>
</dict>
</plist>

13
gpg/gpg-agent.conf Normal file
View File

@@ -0,0 +1,13 @@
# https://github.com/drduh/config/blob/main/gpg-agent.conf
# https://www.gnupg.org/documentation/manuals/gnupg/Agent-Options.html
enable-ssh-support
ttyname $GPG_TTY
default-cache-ttl 60
max-cache-ttl 120
#pinentry-program /usr/bin/pinentry-curses
#pinentry-program /usr/bin/pinentry-gnome3
#pinentry-program /usr/bin/pinentry-tty
#pinentry-program /usr/bin/pinentry-x11
#pinentry-program /usr/local/bin/pinentry-curses
#pinentry-program /opt/homebrew/bin/pinentry-mac

70
gpg/gpg.conf Normal file
View File

@@ -0,0 +1,70 @@
# https://github.com/drduh/config/blob/main/gpg.conf
# https://www.gnupg.org/documentation/manuals/gnupg/GPG-Options.html
# 'gpg --version' to get capabilities
# Use AES256, 192, or 128 as cipher
personal-cipher-preferences AES256 AES192 AES
# Use SHA512, 384, or 256 as digest
personal-digest-preferences SHA512 SHA384 SHA256
# Use ZLIB, BZIP2, ZIP, or no compression
personal-compress-preferences ZLIB BZIP2 ZIP Uncompressed
# Default preferences for new keys
default-preference-list SHA512 SHA384 SHA256 AES256 AES192 AES ZLIB BZIP2 ZIP Uncompressed
# SHA512 as digest to sign keys
cert-digest-algo SHA512
# SHA512 as digest for symmetric ops
s2k-digest-algo SHA512
# AES256 as cipher for symmetric ops
s2k-cipher-algo AES256
# UTF-8 support for compatibility
charset utf-8
# No comments in messages
no-comments
# No version in output
no-emit-version
# Disable banner
no-greeting
# Long key id format
keyid-format 0xlong
# Display UID validity
list-options show-uid-validity
verify-options show-uid-validity
# Display all keys and their fingerprints
with-fingerprint
# Display key origins and updates
#with-key-origin
# Cross-certify subkeys are present and valid
require-cross-certification
# Enforce memory locking to avoid accidentally swapping GPG memory to disk
require-secmem
# Disable caching of passphrase for symmetrical ops
no-symkey-cache
# Output ASCII instead of binary
armor
# Enable smartcard
use-agent
# Disable recipient key ID in messages (breaks Mailvelope)
throw-keyids
# Default key ID to use (helpful with throw-keyids)
#default-key 0xFF00000000000001
#trusted-key 0xFF00000000000001
# Group recipient keys (preferred ID last)
#group keygroup = 0xFF00000000000003 0xFF00000000000002 0xFF00000000000001
# Keyserver URL
#keyserver hkps://keys.openpgp.org
#keyserver hkps://keys.mailvelope.com
#keyserver hkps://keyserver.ubuntu.com:443
#keyserver hkps://pgpkeys.eu
#keyserver hkps://pgp.circl.lu
#keyserver hkp://zkaan2xfbuxia2wpf7ofnkbz6r5zdbbvxbunvp5g2iebopbfc4iqmbad.onion
# Keyserver proxy
#keyserver-options http-proxy=http://127.0.0.1:8118
#keyserver-options http-proxy=socks5-hostname://127.0.0.1:9050
# Enable key retrieval using WKD and DANE
#auto-key-locate wkd,dane,local
#auto-key-retrieve
# Trust delegation mechanism
#trust-model tofu+pgp
# Show expired subkeys
#list-options show-unusable-subkeys
# Verbose output
#verbose

View File

@@ -1,15 +0,0 @@
theme = "nightfox"
[editor]
line-number = "relative"
cursorline = true
color-modes = true
shell = ["zsh", "-c"]
[editor.cursor-shape]
insert = "bar"
normal = "block"
select = "underline"
[editor.file-picker]
hidden = false

71
hpa/config.toml Normal file
View File

@@ -0,0 +1,71 @@
# NOTE:
# Configuration settings for the `hpa` command line tool.
# You can delete settings that are not applicable to your use case.
# Default arguments / options that get passed into `ansible-playbook` commands.
# WARNING: Do not put arguments / options that contain spaces in the same string,
# they should be separate strings, for example do not do something like
# ['--tags debug'], instead use ['--tags', 'debug'].
#
args = []
# Set to true if you want to pass the vault args to `ansible-playbook` commands.
useVaultArgs = true
# NOTE:
# Configuration for running the generate command(s). This allows custimizations
# to the files that get used to generate the final output (generally a pdf).
# See `pandoc --help`. Below are the defaults that get used, which only need
# adjusted if your template does not follow the default template design or if
# you add extra files to your template that need to be included in the final
# output. Also be aware that any of the files specified in the `files` or
# `includeInHeader` options, need to be inside the `buildDirectory` when generating
# the final output file.
# [generate]
# this relative to the project directory.
# buildDirectory = '.build'
# pdfEngine = 'xelatex'
# includeInHeader = [
# 'head.tex',
# 'footer.tex'
# ]
# files = [
# 'Report.md',
# 'Definitions.md'
# ]
# outputFileName = 'Report'
# NOTE:
# These are more for local development of the ansible playbook and should not be needed
# in most cases. Uncomment the lines if you want to customize the playbook and use it
# instead of the provided / default playbook.
#[playbook]
#directory = '/path/to/local/playbook-directory'
#inventory = '/path/to/local/inventory.ini'
#version = 'main'
# NOTE:
# These are to declare where your template files are either on your local system or
# a remote git repository.
[template]
# The directory path on your local system to the template files.
directory = '/Volumes/Bucket/Repos/hhe-consult-template'
# The url to a git repository that contains your template files.
url = 'https://git.housh.dev/hhe/consult-template.git'
# The version, tag, branch, or sha of the template files to clone from the remote
# template repository. In general it is best practice to use a version instead of a
# branch.
version = 'main'
# NOTE:
# Holds settings for `ansible-vault` commands.
[vault]
# Arguments to pass to commands that use `ansible-vault`, such as encrypting or decrypting
# files.
args = [ '--vault-id=consults@$SCRIPTS/vault-gopass-client' ]
# An id to use when encrypting `ansible-vault` files.
encryptId = 'consults'

35
hypr/env.conf Normal file
View File

@@ -0,0 +1,35 @@
#############################
### ENVIRONMENT VARIABLES ###
#############################
# See https://wiki.hyprland.org/Configuring/Environment-variables/
# Cursor size
env = XCURSOR_SIZE,24
env = HYPRCURSOR_SIZE,24
# Force all apps to use Wayland
env = GDK_BACKEND,wayland,x11,*
env = QT_QPA_PLATFORM,wayland;xcb
env = QT_STYLE_OVERRIDE,kvantum
env = SDL_VIDEODRIVER,wayland
env = MOZ_ENABLE_WAYLAND,1
env = ELECTRON_OZONE_PLATFORM_HINT,wayland
env = OZONE_PLATFORM,wayland
env = XDG_SESSION_TYPE,wayland
# Allow better support for screen sharing (Google Meet, Discord, etc)
env = XDG_CURRENT_DESKTOP,Hyprland
env = XDG_SESSION_DESKTOP,Hyprland
xwayland {
force_zero_scaling = true
}
# Use XCompose file
env = XCOMPOSEFILE,~/.XCompose
# Don't show update on first launch
ecosystem {
no_update_news = true
}

188
hypr/hyprland.conf Normal file
View File

@@ -0,0 +1,188 @@
# #######################################################################################
# HYPRLAND - GENERAL CONFIG
# #######################################################################################
# Refer to the wiki for more information.
# https://wiki.hyprland.org/Configuring/
#################
### AUTOSTART ###
#################
# Autostart necessary processes (like notifications daemons, status bars, etc.)
# Or execute your favorite apps at launch like this:
exec-once = waybar & swaync & elephant & hyprpaper
source = ~/.config/hypr/windows.conf
source = ~/.config/hypr/env.conf
###################
### PERMISSIONS ###
###################
# See https://wiki.hyprland.org/Configuring/Permissions/
# Please note permission changes here require a Hyprland restart and are not applied on-the-fly
# for security reasons
# ecosystem {
# enforce_permissions = 1
# }
# permission = /usr/(bin|local/bin)/grim, screencopy, allow
# permission = /usr/(lib|libexec|lib64)/xdg-desktop-portal-hyprland, screencopy, allow
# permission = /usr/(bin|local/bin)/hyprpm, plugin, allow
#####################
### LOOK AND FEEL ###
#####################
# Refer to https://wiki.hyprland.org/Configuring/Variables/
# https://wiki.hyprland.org/Configuring/Variables/#general
general {
gaps_in = 2
gaps_out = 5
border_size = 1
# https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
col.inactive_border = rgba(595959aa)
# Set to true enable resizing windows by clicking and dragging on borders and gaps
resize_on_border = true
# Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
allow_tearing = false
layout = dwindle
}
# https://wiki.hyprland.org/Configuring/Variables/#decoration
decoration {
rounding = 2
rounding_power = 2
# Change transparency of focused and unfocused windows
active_opacity = 1.0
inactive_opacity = 1.0
shadow {
enabled = true
range = 4
render_power = 3
color = rgba(1a1a1aee)
}
# https://wiki.hyprland.org/Configuring/Variables/#blur
blur {
enabled = true
size = 3
passes = 1
vibrancy = 0.1696
}
}
# https://wiki.hyprland.org/Configuring/Variables/#animations
animations {
enabled = yes, please :)
# Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
bezier = easeOutQuint,0.23,1,0.32,1
bezier = easeInOutCubic,0.65,0.05,0.36,1
bezier = linear,0,0,1,1
bezier = almostLinear,0.5,0.5,0.75,1.0
bezier = quick,0.15,0,0.1,1
animation = global, 1, 10, default
animation = border, 1, 5.39, easeOutQuint
animation = windows, 1, 4.79, easeOutQuint
animation = windowsIn, 1, 4.1, easeOutQuint, popin 87%
animation = windowsOut, 1, 1.49, linear, popin 87%
animation = fadeIn, 1, 1.73, almostLinear
animation = fadeOut, 1, 1.46, almostLinear
animation = fade, 1, 3.03, quick
animation = layers, 1, 3.81, easeOutQuint
animation = layersIn, 1, 4, easeOutQuint, fade
animation = layersOut, 1, 1.5, linear, fade
animation = fadeLayersIn, 1, 1.79, almostLinear
animation = fadeLayersOut, 1, 1.39, almostLinear
animation = workspaces, 1, 1.94, almostLinear, fade
animation = workspacesIn, 1, 1.21, almostLinear, fade
animation = workspacesOut, 1, 1.94, almostLinear, fade
}
# Ref https://wiki.hyprland.org/Configuring/Workspace-Rules/
# "Smart gaps" / "No gaps when only"
# uncomment all if you wish to use that.
# workspace = w[tv1], gapsout:0, gapsin:0
# workspace = f[1], gapsout:0, gapsin:0
# windowrule = bordersize 0, floating:0, onworkspace:w[tv1]
# windowrule = rounding 0, floating:0, onworkspace:w[tv1]
# windowrule = bordersize 0, floating:0, onworkspace:f[1]
# windowrule = rounding 0, floating:0, onworkspace:f[1]
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
dwindle {
pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
preserve_split = true # You probably want this
}
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
master {
new_status = master
}
# https://wiki.hyprland.org/Configuring/Variables/#misc
misc {
force_default_wallpaper = 1 # Set to 0 or 1 to disable the anime mascot wallpapers
disable_hyprland_logo = false # If true disables the random hyprland logo / anime girl background. :(
}
#############
### INPUT ###
#############
# https://wiki.hyprland.org/Configuring/Variables/#input
input {
kb_layout = us
kb_variant =
kb_model =
kb_options = ctrl:nocaps
kb_rules =
repeat_rate = 35
repeat_delay = 200
follow_mouse = 2
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
touchpad {
natural_scroll = true
tap-to-click = false
}
}
# https://wiki.hyprland.org/Configuring/Variables/#gestures
gestures {
workspace_swipe = false
}
# Example per-device config
# See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more
device {
name = epic-mouse-v1
sensitivity = -0.5
}
source = ~/.config/hypr/windows.conf
# Include the keybinds file.
source = ~/.config/hypr/keybinds.conf

109
hypr/hyprlock.conf Normal file
View File

@@ -0,0 +1,109 @@
# sample hyprlock.conf
# for more configuration options, refer https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock
#
# rendered text in all widgets supports pango markup (e.g. <b> or <i> tags)
# ref. https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock/#general-remarks
#
# shortcuts to clear password buffer: ESC, Ctrl+U, Ctrl+Backspace
#
# you can get started by copying this config to ~/.config/hypr/hyprlock.conf
#
$font = Monospace
general {
hide_cursor = false
}
# uncomment to enable fingerprint authentication
# auth {
# fingerprint {
# enabled = true
# ready_message = Scan fingerprint to unlock
# present_message = Scanning...
# retry_delay = 250 # in milliseconds
# }
# }
# NOTE: Currently enabling animations and background 'path = screenshot' causes hyprlock
# to not work, so they are disabled.
animations {
enabled = false
bezier = linear, 1, 1, 0, 0
animation = fadeIn, 1, 5, linear
animation = fadeOut, 1, 5, linear
animaution = inputFieldDots, 1, 2, linear
}
background {
monitor =
#path = screenshot
path = ~/.config/hypr/wallpaper.png
blur_passes = 3
}
input-field {
monitor = eDP-1
size = 20%, 5%
outline_thickness = 3
inner_color = rgba(0, 0, 0, 0.0) # no fill
outer_color = rgba(33ccffee) rgba(00ff99ee) 45deg
check_color = rgba(00ff99ee) rgba(ff6633ee) 120deg
fail_color = rgba(ff6633ee) rgba(ff0066ee) 40deg
font_color = rgb(143, 143, 143)
fade_on_empty = false
rounding = 15
font_family = $font
placeholder_text = Input password...
fail_text = $PAMFAIL
# uncomment to use a letter instead of a dot to indicate the typed password
# dots_text_format = *
# dots_size = 0.4
dots_spacing = 0.3
# uncomment to use an input indicator that does not show the password length (similar to swaylock's input indicator)
# hide_input = true
position = 0, -20
halign = center
valign = center
}
# TIME
label {
monitor =
text = $TIME # ref. https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock/#variable-substitution
font_size = 90
font_family = $font
position = -30, 0
halign = right
valign = top
}
# DATE
label {
monitor =
text = cmd[update:60000] date +"%A, %d %B %Y" # update every 60 seconds
font_size = 25
font_family = $font
position = -30, -150
halign = right
valign = top
}
label {
monitor =
text = $LAYOUT[en,ru]
font_size = 24
onclick = hyprctl switchxkblayout all next
position = 250, -20
halign = center
valign = center
}

3
hypr/hyprpaper.conf Normal file
View File

@@ -0,0 +1,3 @@
preload = /home/michael/.config/hypr/wallpaper.png
wallpaper = ,/home/michael/.config/hypr/wallpaper.png
splash = true

136
hypr/keybinds.conf Normal file
View File

@@ -0,0 +1,136 @@
##############################
### HYPRLAND - KEYBINDINGS ###
##############################
# See https://wiki.hyprland.org/Configuring/Keywords/
$mainMod = SUPER # Sets "Command/Windows" key as main modifier
###################
### MY PROGRAMS ###
###################
# See https://wiki.hyprland.org/Configuring/Keywords/
#
# Set programs that you use
$terminal = ghostty
$browser = zen-browser
$fileManager = $terminal -e yazi
$fileBrowser = nautilus
$menu = walker
#$pwa = chromium --profile-directory=Default --enable-features=UseOzonePlatform --ozone-platform=wayland
$pwa = ~/.local/bin/launch-webapp
$launch = gtk-launch
$btop = $terminal -e btop
$config = $terminal -e ~/.local/share/scripts/tmux-sessionator ~/.config
$email = $pwa "https://mail.proton.me" # proton mail
$excalidraw = $pwa "https://draw.housh.dev"
$gitea = $pwa "https://git.housh.dev"
$neovim = $terminal -e nvim
$protonPass = $pwa "https://pass.proton.me"
$youtube = $pwa "https://youtube.com"
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
# Apps
bind = $mainMod, Space, exec, $menu # launcher (set above)
bind = $mainMod, Return, exec, $terminal
bind = $mainMod, A, exec, $pwa "https://chatgpt.com"
bind = $mainMod, B, exec, $browser
bind = $mainMod SHIFT, B, exec, $browser --private-window
bind = $mainMod, C, exec, $config
bind = $mainMod, D, exec, $excalidraw
bind = $mainMod SHIFT, D, exec, ~/.local/bin/toggle-desktop
bind = $mainMod, E, exec, $email
bind = $mainMod, F, exec, $fileManager
bind = $mainMod, K, exec, $launch Komodo
bind = $mainMod SHIFT, F, exec, $fileBrowser
bind = $mainMod, G, exec, $gitea
bind = $mainMod, N, exec, $neovim
bind = $mainMod, P, exec, $protonPass
bind = $mainMod, Y, exec, $youtube
bind = $mainMod, W, killactive,
# TODO: change modifier key.
#bind = $mainMod SHIFT, L, exec, hyprlock
# TODO: change modifier key.
bind = $mainMod, M, exec, ~/.local/bin/toggle-waybar
bind = $mainMod, V, togglefloating
#bind = $mainMod, P, pseudo, # dwindle
#bind = $mainMod, J, togglesplit, # dwindle
#
# Screenshots
bind = $mainMod SHIFT ALT, 3, exec, hyprshot -m window -o ~/Pictures
bind = $mainMod SHIFT ALT, 4, exec, hyprshot -m region -o ~/Pictures
bind = CTRL, F, exec, hyprctl dispatch togglefloating \
&& hyprctl dispatch centerwindow
# Move focus with mainMod + arrow keys
bind = $mainMod, H, movefocus, l
bind = $mainMod, L, movefocus, r
bind = $mainMod, K, movefocus, u
bind = $mainMod, J, movefocus, d
# Move windows with mainMod + Shift
bind = $mainMod SHIFT, H, movewindow, l
bind = $mainMod SHIFT, L, movewindow, r
bind = $mainMod SHIFT, K, movewindow, u
bind = $mainMod SHIFT, J, movewindow, d
# Switch workspaces with mainMod + [0-9]
bind = $mainMod, 1, workspace, 1
bind = $mainMod, 2, workspace, 2
bind = $mainMod, 3, workspace, 3
bind = $mainMod, 4, workspace, 4
bind = $mainMod, 5, workspace, 5
bind = $mainMod, 6, workspace, 6
bind = $mainMod, 7, workspace, 7
bind = $mainMod, 8, workspace, 8
bind = $mainMod, 9, workspace, 9
bind = $mainMod, 0, workspace, 10
# Move active window to a workspace with mainMod + SHIFT + [0-9]
bind = $mainMod SHIFT, 1, movetoworkspace, 1
bind = $mainMod SHIFT, 2, movetoworkspace, 2
bind = $mainMod SHIFT, 3, movetoworkspace, 3
bind = $mainMod SHIFT, 4, movetoworkspace, 4
bind = $mainMod SHIFT, 5, movetoworkspace, 5
bind = $mainMod SHIFT, 6, movetoworkspace, 6
bind = $mainMod SHIFT, 7, movetoworkspace, 7
bind = $mainMod SHIFT, 8, movetoworkspace, 8
bind = $mainMod SHIFT, 9, movetoworkspace, 9
bind = $mainMod SHIFT, 0, movetoworkspace, 10
# Example special workspace (scratchpad)
bind = $mainMod, S, togglespecialworkspace, magic
bind = $mainMod SHIFT, S, movetoworkspace, special:magic
# Scroll through existing workspaces with mainMod + scroll
bind = $mainMod, mouse_down, workspace, e+1
bind = $mainMod, mouse_up, workspace, e-1
# Move/resize windows with mainMod + LMB/RMB and dragging
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow
bindm = $mainMod SHIFT, mouse_down, resizewindow
# Laptop multimedia keys for volume and LCD brightness
bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+
bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
bindel = ,XF86MonBrightnessUp, exec, brightnessctl -e4 -n2 set 5%+
bindel = ,XF86MonBrightnessDown, exec, brightnessctl -e4 -n2 set 5%-
# Requires playerctl
bindl = , XF86AudioNext, exec, playerctl next
bindl = , XF86AudioPause, exec, playerctl play-pause
bindl = , XF86AudioPlay, exec, playerctl play-pause
bindl = , XF86AudioPrev, exec, playerctl previous
# Shut off laptop monitor when lid is closed and on when lid is open.
bindl = , switch:on:Lid Switch, exec, hyprctl dispatch dpms off
bindl = , switch:off:Lid Switch, exec, hyprctl dispatch dpms on

9
hypr/monitors.conf Normal file
View File

@@ -0,0 +1,9 @@
################
### MONITORS ###
################
# See https://wiki.hyprland.org/Configuring/Monitors/
monitor= ,preferred,auto,auto
monitor = HDMI-A-1, 3440x1440@59.97, 0x0, 1

BIN
hypr/wallpaper.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

25
hypr/windows.conf Normal file
View File

@@ -0,0 +1,25 @@
##############################
### WINDOWS AND WORKSPACES ###
##############################
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules
windowrule = float,class:^(float)$
#windowrule = float,title:InstallWebApp
windowrule = size 800 600,class:^(float)$,title:^(Install Web App)$
windowrule = center,class:^(float)$,title:^(Install Web App)$
# Ignore maximize requests from apps. You'll probably like this.
windowrule = suppressevent maximize, class:.*
# Just a dash of opacity by default.
windowrule = opacity 0.97 0.92, class:.*
# Fix some dragging issues with XWayland
windowrule = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0
#windowrule = float, class:.*pass.proton.me.*
workspace = special:hidden, invisible

0
hypr/workspaces.conf Normal file
View File

View File

@@ -1,202 +0,0 @@
{
"global": {
"ask_for_confirmation_before_quitting": true,
"check_for_updates_on_startup": true,
"show_in_menu_bar": true,
"show_profile_name_in_menu_bar": false,
"unsafe_ui": false
},
"profiles": [
{
"complex_modifications": {
"parameters": {
"basic.simultaneous_threshold_milliseconds": 50,
"basic.to_delayed_action_delay_milliseconds": 500,
"basic.to_if_alone_timeout_milliseconds": 1000,
"basic.to_if_held_down_threshold_milliseconds": 500,
"mouse_motion_to_scroll.speed": 100
},
"rules": []
},
"devices": [
{
"disable_built_in_keyboard_if_exists": false,
"fn_function_keys": [],
"game_pad_swap_sticks": false,
"identifiers": {
"is_game_pad": false,
"is_keyboard": true,
"is_pointing_device": false,
"product_id": 834,
"vendor_id": 1452
},
"ignore": false,
"manipulate_caps_lock_led": true,
"mouse_flip_horizontal_wheel": false,
"mouse_flip_vertical_wheel": false,
"mouse_flip_x": false,
"mouse_flip_y": false,
"mouse_swap_wheels": false,
"mouse_swap_xy": false,
"simple_modifications": [],
"treat_as_built_in_keyboard": false
},
{
"disable_built_in_keyboard_if_exists": false,
"fn_function_keys": [],
"game_pad_swap_sticks": false,
"identifiers": {
"is_game_pad": false,
"is_keyboard": false,
"is_pointing_device": true,
"product_id": 834,
"vendor_id": 1452
},
"ignore": true,
"manipulate_caps_lock_led": false,
"mouse_flip_horizontal_wheel": false,
"mouse_flip_vertical_wheel": false,
"mouse_flip_x": false,
"mouse_flip_y": false,
"mouse_swap_wheels": false,
"mouse_swap_xy": false,
"simple_modifications": [],
"treat_as_built_in_keyboard": false
}
],
"fn_function_keys": [
{
"from": {
"key_code": "f1"
},
"to": [
{
"consumer_key_code": "display_brightness_decrement"
}
]
},
{
"from": {
"key_code": "f2"
},
"to": [
{
"consumer_key_code": "display_brightness_increment"
}
]
},
{
"from": {
"key_code": "f3"
},
"to": [
{
"apple_vendor_keyboard_key_code": "mission_control"
}
]
},
{
"from": {
"key_code": "f4"
},
"to": [
{
"apple_vendor_keyboard_key_code": "spotlight"
}
]
},
{
"from": {
"key_code": "f5"
},
"to": [
{
"consumer_key_code": "dictation"
}
]
},
{
"from": {
"key_code": "f6"
},
"to": [
{
"key_code": "f6"
}
]
},
{
"from": {
"key_code": "f7"
},
"to": [
{
"consumer_key_code": "rewind"
}
]
},
{
"from": {
"key_code": "f8"
},
"to": [
{
"consumer_key_code": "play_or_pause"
}
]
},
{
"from": {
"key_code": "f9"
},
"to": [
{
"consumer_key_code": "fast_forward"
}
]
},
{
"from": {
"key_code": "f10"
},
"to": [
{
"consumer_key_code": "mute"
}
]
},
{
"from": {
"key_code": "f11"
},
"to": [
{
"consumer_key_code": "volume_decrement"
}
]
},
{
"from": {
"key_code": "f12"
},
"to": [
{
"consumer_key_code": "volume_increment"
}
]
}
],
"name": "Default profile",
"parameters": {
"delay_milliseconds_before_open_device": 1000
},
"selected": true,
"simple_modifications": [],
"virtual_hid_keyboard": {
"country_code": 0,
"indicate_sticky_modifier_keys_state": true,
"mouse_key_xy_scale": 100
}
}
]
}

View File

@@ -1,240 +0,0 @@
{
"global": {
"ask_for_confirmation_before_quitting": true,
"check_for_updates_on_startup": true,
"show_in_menu_bar": true,
"show_profile_name_in_menu_bar": false,
"unsafe_ui": false
},
"profiles": [
{
"complex_modifications": {
"parameters": {
"basic.simultaneous_threshold_milliseconds": 50,
"basic.to_delayed_action_delay_milliseconds": 500,
"basic.to_if_alone_timeout_milliseconds": 1000,
"basic.to_if_held_down_threshold_milliseconds": 500,
"mouse_motion_to_scroll.speed": 100
},
"rules": [
{
"manipulators": [
{
"description": "Change caps_lock to command+control+option+shift.",
"from": {
"key_code": "caps_lock",
"modifiers": {
"optional": [
"any"
]
}
},
"to": [
{
"key_code": "left_shift",
"modifiers": [
"left_command",
"left_control",
"left_option"
]
}
],
"type": "basic"
}
]
}
]
},
"devices": [
{
"disable_built_in_keyboard_if_exists": false,
"fn_function_keys": [],
"game_pad_swap_sticks": false,
"identifiers": {
"is_game_pad": false,
"is_keyboard": true,
"is_pointing_device": false,
"product_id": 834,
"vendor_id": 1452
},
"ignore": false,
"manipulate_caps_lock_led": true,
"mouse_flip_horizontal_wheel": false,
"mouse_flip_vertical_wheel": false,
"mouse_flip_x": false,
"mouse_flip_y": false,
"mouse_swap_wheels": false,
"mouse_swap_xy": false,
"simple_modifications": [
{
"from": {
"key_code": "caps_lock"
},
"to": [
{
"key_code": "left_control"
}
]
}
],
"treat_as_built_in_keyboard": false
},
{
"disable_built_in_keyboard_if_exists": false,
"fn_function_keys": [],
"game_pad_swap_sticks": false,
"identifiers": {
"is_game_pad": false,
"is_keyboard": false,
"is_pointing_device": true,
"product_id": 834,
"vendor_id": 1452
},
"ignore": true,
"manipulate_caps_lock_led": false,
"mouse_flip_horizontal_wheel": false,
"mouse_flip_vertical_wheel": false,
"mouse_flip_x": false,
"mouse_flip_y": false,
"mouse_swap_wheels": false,
"mouse_swap_xy": false,
"simple_modifications": [],
"treat_as_built_in_keyboard": false
}
],
"fn_function_keys": [
{
"from": {
"key_code": "f1"
},
"to": [
{
"consumer_key_code": "display_brightness_decrement"
}
]
},
{
"from": {
"key_code": "f2"
},
"to": [
{
"consumer_key_code": "display_brightness_increment"
}
]
},
{
"from": {
"key_code": "f3"
},
"to": [
{
"apple_vendor_keyboard_key_code": "mission_control"
}
]
},
{
"from": {
"key_code": "f4"
},
"to": [
{
"apple_vendor_keyboard_key_code": "spotlight"
}
]
},
{
"from": {
"key_code": "f5"
},
"to": [
{
"consumer_key_code": "dictation"
}
]
},
{
"from": {
"key_code": "f6"
},
"to": [
{
"key_code": "f6"
}
]
},
{
"from": {
"key_code": "f7"
},
"to": [
{
"consumer_key_code": "rewind"
}
]
},
{
"from": {
"key_code": "f8"
},
"to": [
{
"consumer_key_code": "play_or_pause"
}
]
},
{
"from": {
"key_code": "f9"
},
"to": [
{
"consumer_key_code": "fast_forward"
}
]
},
{
"from": {
"key_code": "f10"
},
"to": [
{
"consumer_key_code": "mute"
}
]
},
{
"from": {
"key_code": "f11"
},
"to": [
{
"consumer_key_code": "volume_decrement"
}
]
},
{
"from": {
"key_code": "f12"
},
"to": [
{
"consumer_key_code": "volume_increment"
}
]
}
],
"name": "Default profile",
"parameters": {
"delay_milliseconds_before_open_device": 1000
},
"selected": true,
"simple_modifications": [],
"virtual_hid_keyboard": {
"country_code": 0,
"indicate_sticky_modifier_keys_state": true,
"mouse_key_xy_scale": 100
}
}
]
}

View File

@@ -1,11 +1,89 @@
# vim:ft=kitty
# _ _ _ ___ ___ _ _ ____ ____ _ _ ____ # _ _ _ ___ ___ _ _ ____ ____ _ _ ____
# |_/ | | | \_/ | | | |\ | |___ # |_/ | | | \_/ | | | |\ | |___
# | \_ | | | | .|___ |__| | \| | # | \_ | | | | .|___ |__| | \| |
# #
## name: Catppuccin Kitty Mocha
## author: Catppuccin Org
## license: MIT
## upstream: https://github.com/catppuccin/kitty/blob/main/themes/mocha.conf
## blurb: Soothing pastel theme for the high-spirited!
# The basic colors
foreground #cdd6f4
background #1e1e2e
selection_foreground #1e1e2e
selection_background #f5e0dc
# Cursor colors
cursor #f5e0dc
cursor_text_color #1e1e2e
# URL underline color when hovering with mouse
url_color #f5e0dc
# Kitty window border colors
active_border_color #b4befe
inactive_border_color #6c7086
bell_border_color #f9e2af
# OS Window titlebar colors
wayland_titlebar_color system
macos_titlebar_color system
# Tab bar colors
active_tab_foreground #11111b
active_tab_background #cba6f7
inactive_tab_foreground #cdd6f4
inactive_tab_background #181825
tab_bar_background #11111b
# Colors for marks (marked text in the terminal)
mark1_foreground #1e1e2e
mark1_background #b4befe
mark2_foreground #1e1e2e
mark2_background #cba6f7
mark3_foreground #1e1e2e
mark3_background #74c7ec
# The 16 terminal colors
# black
color0 #45475a
color8 #585b70
# red
color1 #f38ba8
color9 #f38ba8
# green
color2 #a6e3a1
color10 #a6e3a1
# yellow
color3 #f9e2af
color11 #f9e2af
# blue
color4 #89b4fa
color12 #89b4fa
# magenta
color5 #f5c2e7
color13 #f5c2e7
# cyan
color6 #94e2d5
color14 #94e2d5
# white
color7 #bac2de
color15 #a6adc8
font_family Droid Sans Mono for Powerline Regular font_family Droid Sans Mono for Powerline Regular
font_size 16.0 font_size 13.0
symbol_map U+E0A0-U+E0A3,U+E0C0-U+E0C7 1 symbol_map U+E0A0-U+E0A3,U+E0C0-U+E0C7 1
narrow_symbols U+E0A0-U+E0A3,U+E0C0-U+E0C7 1 narrow_symbols U+E0A0-U+E0A3,U+E0C0-U+E0C7 1
@@ -15,3 +93,4 @@ background_opacity 0.9
#hide_window_decorations titlebar-only #hide_window_decorations titlebar-only
hide_window_decorations no hide_window_decorations no
confirm_os_window_close 0

View File

@@ -1,720 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>AllowClipboardAccess</key>
<true/>
<key>Default Bookmark Guid</key>
<string>A30A702C-1CC2-4C2A-A29F-505BC017C0A6</string>
<key>DoubleClickPerformsSmartSelection</key>
<true/>
<key>EnableProxyIcon</key>
<false/>
<key>HapticFeedbackForEsc</key>
<false/>
<key>HotkeyMigratedFromSingleToMulti</key>
<true/>
<key>IRMemory</key>
<integer>4</integer>
<key>New Bookmarks</key>
<array>
<dict>
<key>ASCII Anti Aliased</key>
<true/>
<key>Ambiguous Double Width</key>
<false/>
<key>Ansi 0 Color</key>
<dict>
<key>Blue Component</key>
<string>0</string>
<key>Green Component</key>
<string>0</string>
<key>Red Component</key>
<string>0</string>
</dict>
<key>Ansi 1 Color</key>
<dict>
<key>Blue Component</key>
<string>0</string>
<key>Green Component</key>
<string>0</string>
<key>Red Component</key>
<string>0.8</string>
</dict>
<key>Ansi 10 Color</key>
<dict>
<key>Blue Component</key>
<string>0.2039216</string>
<key>Green Component</key>
<string>0.8862745</string>
<key>Red Component</key>
<string>0.5411764999999999</string>
</dict>
<key>Ansi 11 Color</key>
<dict>
<key>Blue Component</key>
<string>0.3098039</string>
<key>Green Component</key>
<string>0.9137255</string>
<key>Red Component</key>
<string>0.9882353</string>
</dict>
<key>Ansi 12 Color</key>
<dict>
<key>Blue Component</key>
<string>0.8117647</string>
<key>Green Component</key>
<string>0.6235294</string>
<key>Red Component</key>
<string>0.4470588</string>
</dict>
<key>Ansi 13 Color</key>
<dict>
<key>Blue Component</key>
<string>0.6588235</string>
<key>Green Component</key>
<string>0.4980392</string>
<key>Red Component</key>
<string>0.6784314</string>
</dict>
<key>Ansi 14 Color</key>
<dict>
<key>Blue Component</key>
<string>0.8862745</string>
<key>Green Component</key>
<string>0.8862745</string>
<key>Red Component</key>
<string>0.2039216</string>
</dict>
<key>Ansi 15 Color</key>
<dict>
<key>Blue Component</key>
<string>0.9254902</string>
<key>Green Component</key>
<string>0.9333333</string>
<key>Red Component</key>
<string>0.9333333</string>
</dict>
<key>Ansi 2 Color</key>
<dict>
<key>Blue Component</key>
<string>0.02352941</string>
<key>Green Component</key>
<string>0.6039215999999999</string>
<key>Red Component</key>
<string>0.3058824</string>
</dict>
<key>Ansi 3 Color</key>
<dict>
<key>Blue Component</key>
<string>0</string>
<key>Green Component</key>
<string>0.627451</string>
<key>Red Component</key>
<string>0.7686275</string>
</dict>
<key>Ansi 4 Color</key>
<dict>
<key>Blue Component</key>
<string>0.6431373</string>
<key>Green Component</key>
<string>0.3960784</string>
<key>Red Component</key>
<string>0.2039216</string>
</dict>
<key>Ansi 5 Color</key>
<dict>
<key>Blue Component</key>
<string>0.4823529</string>
<key>Green Component</key>
<string>0.3137255</string>
<key>Red Component</key>
<string>0.4588235</string>
</dict>
<key>Ansi 6 Color</key>
<dict>
<key>Blue Component</key>
<string>0.6039215999999999</string>
<key>Green Component</key>
<string>0.5960785</string>
<key>Red Component</key>
<string>0.02352941</string>
</dict>
<key>Ansi 7 Color</key>
<dict>
<key>Blue Component</key>
<string>0.8117647</string>
<key>Green Component</key>
<string>0.8431373</string>
<key>Red Component</key>
<string>0.827451</string>
</dict>
<key>Ansi 8 Color</key>
<dict>
<key>Blue Component</key>
<string>0.3254902</string>
<key>Green Component</key>
<string>0.3411765</string>
<key>Red Component</key>
<string>0.3333333</string>
</dict>
<key>Ansi 9 Color</key>
<dict>
<key>Blue Component</key>
<string>0.1607843</string>
<key>Green Component</key>
<string>0.1607843</string>
<key>Red Component</key>
<string>0.9372549</string>
</dict>
<key>BM Growl</key>
<true/>
<key>Background Color</key>
<dict>
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.10000000000000001</real>
<key>Color Space</key>
<string>sRGB</string>
<key>Green Component</key>
<real>0.10000000000000001</real>
<key>Red Component</key>
<real>0.10000000000000001</real>
</dict>
<key>Background Image Location</key>
<string></string>
<key>Badge Color</key>
<dict>
<key>Alpha Component</key>
<real>0.5</real>
<key>Blue Component</key>
<real>0.0</real>
<key>Color Space</key>
<string>sRGB</string>
<key>Green Component</key>
<real>0.14910030364990234</real>
<key>Red Component</key>
<real>1</real>
</dict>
<key>Blinking Cursor</key>
<false/>
<key>Blur</key>
<false/>
<key>Bold Color</key>
<dict>
<key>Blue Component</key>
<string>1</string>
<key>Green Component</key>
<string>1</string>
<key>Red Component</key>
<string>1</string>
</dict>
<key>Bound Hosts</key>
<array/>
<key>Character Encoding</key>
<integer>4</integer>
<key>Close Sessions On End</key>
<true/>
<key>Columns</key>
<integer>180</integer>
<key>Command</key>
<string></string>
<key>Cursor Color</key>
<dict>
<key>Blue Component</key>
<string>1</string>
<key>Green Component</key>
<string>1</string>
<key>Red Component</key>
<string>1</string>
</dict>
<key>Cursor Guide Color</key>
<dict>
<key>Alpha Component</key>
<real>0.25</real>
<key>Blue Component</key>
<real>1</real>
<key>Color Space</key>
<string>sRGB</string>
<key>Green Component</key>
<real>0.92681378126144409</real>
<key>Red Component</key>
<real>0.70214027166366577</real>
</dict>
<key>Cursor Text Color</key>
<dict>
<key>Blue Component</key>
<string>0</string>
<key>Green Component</key>
<string>0</string>
<key>Red Component</key>
<string>0</string>
</dict>
<key>Custom Command</key>
<string>No</string>
<key>Custom Directory</key>
<string>No</string>
<key>Default Bookmark</key>
<string>No</string>
<key>Description</key>
<string>Default</string>
<key>Disable Window Resizing</key>
<true/>
<key>Flashing Bell</key>
<false/>
<key>Foreground Color</key>
<dict>
<key>Blue Component</key>
<string>1</string>
<key>Green Component</key>
<string>1</string>
<key>Red Component</key>
<string>1</string>
</dict>
<key>Guid</key>
<string>A30A702C-1CC2-4C2A-A29F-505BC017C0A6</string>
<key>Horizontal Spacing</key>
<real>1</real>
<key>Idle Code</key>
<integer>0</integer>
<key>Jobs to Ignore</key>
<array>
<string>rlogin</string>
<string>ssh</string>
<string>slogin</string>
<string>telnet</string>
</array>
<key>Keyboard Map</key>
<dict>
<key>0x2d-0x40000</key>
<dict>
<key>Action</key>
<integer>11</integer>
<key>Text</key>
<string>0x1f</string>
</dict>
<key>0x32-0x40000</key>
<dict>
<key>Action</key>
<integer>11</integer>
<key>Text</key>
<string>0x00</string>
</dict>
<key>0x33-0x40000</key>
<dict>
<key>Action</key>
<integer>11</integer>
<key>Text</key>
<string>0x1b</string>
</dict>
<key>0x34-0x40000</key>
<dict>
<key>Action</key>
<integer>11</integer>
<key>Text</key>
<string>0x1c</string>
</dict>
<key>0x35-0x40000</key>
<dict>
<key>Action</key>
<integer>11</integer>
<key>Text</key>
<string>0x1d</string>
</dict>
<key>0x36-0x40000</key>
<dict>
<key>Action</key>
<integer>11</integer>
<key>Text</key>
<string>0x1e</string>
</dict>
<key>0x37-0x40000</key>
<dict>
<key>Action</key>
<integer>11</integer>
<key>Text</key>
<string>0x1f</string>
</dict>
<key>0x38-0x40000</key>
<dict>
<key>Action</key>
<integer>11</integer>
<key>Text</key>
<string>0x7f</string>
</dict>
<key>0xf700-0x220000</key>
<dict>
<key>Action</key>
<integer>10</integer>
<key>Text</key>
<string>[1;2A</string>
</dict>
<key>0xf700-0x240000</key>
<dict>
<key>Action</key>
<integer>10</integer>
<key>Text</key>
<string>[1;5A</string>
</dict>
<key>0xf700-0x260000</key>
<dict>
<key>Action</key>
<integer>10</integer>
<key>Text</key>
<string>[1;6A</string>
</dict>
<key>0xf700-0x280000</key>
<dict>
<key>Action</key>
<integer>11</integer>
<key>Text</key>
<string>0x1b 0x1b 0x5b 0x41</string>
</dict>
<key>0xf701-0x220000</key>
<dict>
<key>Action</key>
<integer>10</integer>
<key>Text</key>
<string>[1;2B</string>
</dict>
<key>0xf701-0x240000</key>
<dict>
<key>Action</key>
<integer>10</integer>
<key>Text</key>
<string>[1;5B</string>
</dict>
<key>0xf701-0x260000</key>
<dict>
<key>Action</key>
<integer>10</integer>
<key>Text</key>
<string>[1;6B</string>
</dict>
<key>0xf701-0x280000</key>
<dict>
<key>Action</key>
<integer>11</integer>
<key>Text</key>
<string>0x1b 0x1b 0x5b 0x42</string>
</dict>
<key>0xf702-0x220000</key>
<dict>
<key>Action</key>
<integer>10</integer>
<key>Text</key>
<string>[1;2D</string>
</dict>
<key>0xf702-0x240000</key>
<dict>
<key>Action</key>
<integer>10</integer>
<key>Text</key>
<string>[1;5D</string>
</dict>
<key>0xf702-0x260000</key>
<dict>
<key>Action</key>
<integer>10</integer>
<key>Text</key>
<string>[1;6D</string>
</dict>
<key>0xf702-0x280000</key>
<dict>
<key>Action</key>
<integer>11</integer>
<key>Text</key>
<string>0x1b 0x1b 0x5b 0x44</string>
</dict>
<key>0xf703-0x220000</key>
<dict>
<key>Action</key>
<integer>10</integer>
<key>Text</key>
<string>[1;2C</string>
</dict>
<key>0xf703-0x240000</key>
<dict>
<key>Action</key>
<integer>10</integer>
<key>Text</key>
<string>[1;5C</string>
</dict>
<key>0xf703-0x260000</key>
<dict>
<key>Action</key>
<integer>10</integer>
<key>Text</key>
<string>[1;6C</string>
</dict>
<key>0xf703-0x280000</key>
<dict>
<key>Action</key>
<integer>11</integer>
<key>Text</key>
<string>0x1b 0x1b 0x5b 0x43</string>
</dict>
<key>0xf704-0x20000</key>
<dict>
<key>Action</key>
<integer>10</integer>
<key>Text</key>
<string>[1;2P</string>
</dict>
<key>0xf705-0x20000</key>
<dict>
<key>Action</key>
<integer>10</integer>
<key>Text</key>
<string>[1;2Q</string>
</dict>
<key>0xf706-0x20000</key>
<dict>
<key>Action</key>
<integer>10</integer>
<key>Text</key>
<string>[1;2R</string>
</dict>
<key>0xf707-0x20000</key>
<dict>
<key>Action</key>
<integer>10</integer>
<key>Text</key>
<string>[1;2S</string>
</dict>
<key>0xf708-0x20000</key>
<dict>
<key>Action</key>
<integer>10</integer>
<key>Text</key>
<string>[15;2~</string>
</dict>
<key>0xf709-0x20000</key>
<dict>
<key>Action</key>
<integer>10</integer>
<key>Text</key>
<string>[17;2~</string>
</dict>
<key>0xf70a-0x20000</key>
<dict>
<key>Action</key>
<integer>10</integer>
<key>Text</key>
<string>[18;2~</string>
</dict>
<key>0xf70b-0x20000</key>
<dict>
<key>Action</key>
<integer>10</integer>
<key>Text</key>
<string>[19;2~</string>
</dict>
<key>0xf70c-0x20000</key>
<dict>
<key>Action</key>
<integer>10</integer>
<key>Text</key>
<string>[20;2~</string>
</dict>
<key>0xf70d-0x20000</key>
<dict>
<key>Action</key>
<integer>10</integer>
<key>Text</key>
<string>[21;2~</string>
</dict>
<key>0xf70e-0x20000</key>
<dict>
<key>Action</key>
<integer>10</integer>
<key>Text</key>
<string>[23;2~</string>
</dict>
<key>0xf70f-0x20000</key>
<dict>
<key>Action</key>
<integer>10</integer>
<key>Text</key>
<string>[24;2~</string>
</dict>
<key>0xf729-0x20000</key>
<dict>
<key>Action</key>
<integer>10</integer>
<key>Text</key>
<string>[1;2H</string>
</dict>
<key>0xf729-0x40000</key>
<dict>
<key>Action</key>
<integer>10</integer>
<key>Text</key>
<string>[1;5H</string>
</dict>
<key>0xf72b-0x20000</key>
<dict>
<key>Action</key>
<integer>10</integer>
<key>Text</key>
<string>[1;2F</string>
</dict>
<key>0xf72b-0x40000</key>
<dict>
<key>Action</key>
<integer>10</integer>
<key>Text</key>
<string>[1;5F</string>
</dict>
</dict>
<key>Link Color</key>
<dict>
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>0.73422706127166748</real>
<key>Color Space</key>
<string>sRGB</string>
<key>Green Component</key>
<real>0.35915294289588928</real>
<key>Red Component</key>
<real>0.0</real>
</dict>
<key>Mouse Reporting</key>
<true/>
<key>Name</key>
<string>mhoush</string>
<key>Non Ascii Font</key>
<string>icomoon 12</string>
<key>Non-ASCII Anti Aliased</key>
<true/>
<key>Normal Font</key>
<string>InconsolataNerdFontCompleteM-Regular 20</string>
<key>Option Key Sends</key>
<integer>0</integer>
<key>Prompt Before Closing 2</key>
<false/>
<key>Right Option Key Sends</key>
<integer>0</integer>
<key>Rows</key>
<integer>60</integer>
<key>Screen</key>
<integer>-1</integer>
<key>Scrollback Lines</key>
<integer>1000</integer>
<key>Selected Text Color</key>
<dict>
<key>Blue Component</key>
<string>0</string>
<key>Green Component</key>
<string>0</string>
<key>Red Component</key>
<string>0</string>
</dict>
<key>Selection Color</key>
<dict>
<key>Blue Component</key>
<string>1</string>
<key>Green Component</key>
<string>0.8353</string>
<key>Red Component</key>
<string>0.7098</string>
</dict>
<key>Send Code When Idle</key>
<false/>
<key>Shortcut</key>
<string></string>
<key>Show Status Bar</key>
<false/>
<key>Silence Bell</key>
<false/>
<key>Sync Title</key>
<false/>
<key>Tags</key>
<array/>
<key>Terminal Type</key>
<string>xterm-256color</string>
<key>Transparency</key>
<real>0.0</real>
<key>Unlimited Scrollback</key>
<false/>
<key>Use Bold Font</key>
<true/>
<key>Use Bright Bold</key>
<true/>
<key>Use Italic Font</key>
<true/>
<key>Use Non-ASCII Font</key>
<false/>
<key>Vertical Spacing</key>
<real>1</real>
<key>Visual Bell</key>
<true/>
<key>Window Type</key>
<integer>0</integer>
<key>Working Directory</key>
<string>/Users/michael</string>
</dict>
</array>
<key>OnlyWhenMoreTabs</key>
<false/>
<key>OpenArrangementAtStartup</key>
<false/>
<key>OpenNoWindowsAtStartup</key>
<false/>
<key>OpenTmuxWindowsIn</key>
<integer>0</integer>
<key>PointerActions</key>
<dict>
<key>Button,1,1,,</key>
<dict>
<key>Action</key>
<string>kContextMenuPointerAction</string>
</dict>
<key>Button,2,1,,</key>
<dict>
<key>Action</key>
<string>kPasteFromClipboardPointerAction</string>
</dict>
<key>Gesture,ThreeFingerSwipeDown,,</key>
<dict>
<key>Action</key>
<string>kPrevWindowPointerAction</string>
</dict>
<key>Gesture,ThreeFingerSwipeLeft,,</key>
<dict>
<key>Action</key>
<string>kPrevTabPointerAction</string>
</dict>
<key>Gesture,ThreeFingerSwipeRight,,</key>
<dict>
<key>Action</key>
<string>kNextTabPointerAction</string>
</dict>
<key>Gesture,ThreeFingerSwipeUp,,</key>
<dict>
<key>Action</key>
<string>kNextWindowPointerAction</string>
</dict>
</dict>
<key>Print In Black And White</key>
<true/>
<key>PromptOnQuit</key>
<false/>
<key>QuitWhenAllWindowsClosed</key>
<true/>
<key>SoundForEsc</key>
<false/>
<key>SwitchPaneModifier</key>
<integer>1</integer>
<key>TabStyleWithAutomaticOption</key>
<integer>5</integer>
<key>VisualIndicatorForEsc</key>
<false/>
<key>kCPKSelectionViewPreferredModeKey</key>
<integer>5</integer>
<key>kCPKSelectionViewShowHSBTextFieldsKey</key>
<false/>
</dict>
</plist>

View File

@@ -1,360 +0,0 @@
{
"Link Color" : {
"Red Component" : 0,
"Color Space" : "sRGB",
"Blue Component" : 0.73422706127166748,
"Alpha Component" : 1,
"Green Component" : 0.35915294289588928
},
"Tags" : [
],
"Ansi 12 Color" : {
"Green Component" : "0.6235294",
"Blue Component" : "0.8117647",
"Red Component" : "0.4470588"
},
"Ansi 7 Color" : {
"Green Component" : "0.8431373",
"Blue Component" : "0.8117647",
"Red Component" : "0.827451"
},
"Ansi 8 Color" : {
"Green Component" : "0.3411765",
"Blue Component" : "0.3254902",
"Red Component" : "0.3333333"
},
"Bold Color" : {
"Green Component" : "1",
"Blue Component" : "1",
"Red Component" : "1"
},
"Ansi 9 Color" : {
"Green Component" : "0.1607843",
"Blue Component" : "0.1607843",
"Red Component" : "0.9372549"
},
"Horizontal Spacing" : 1,
"Right Option Key Sends" : 0,
"Rows" : 60,
"Default Bookmark" : "No",
"Cursor Guide Color" : {
"Red Component" : 0.70214027166366577,
"Color Space" : "sRGB",
"Blue Component" : 1,
"Alpha Component" : 0.25,
"Green Component" : 0.92681378126144409
},
"Non-ASCII Anti Aliased" : true,
"Use Bright Bold" : true,
"Ansi 10 Color" : {
"Green Component" : "0.8862745",
"Blue Component" : "0.2039216",
"Red Component" : "0.5411764999999999"
},
"Ambiguous Double Width" : false,
"Jobs to Ignore" : [
"rlogin",
"ssh",
"slogin",
"telnet"
],
"Show Status Bar" : false,
"Ansi 15 Color" : {
"Green Component" : "0.9333333",
"Blue Component" : "0.9254902",
"Red Component" : "0.9333333"
},
"Foreground Color" : {
"Green Component" : "1",
"Blue Component" : "1",
"Red Component" : "1"
},
"Bound Hosts" : [
],
"Working Directory" : "\/Users\/michael",
"Blinking Cursor" : false,
"Disable Window Resizing" : true,
"Sync Title" : false,
"Prompt Before Closing 2" : false,
"BM Growl" : true,
"Command" : "",
"Description" : "Default",
"Mouse Reporting" : true,
"Screen" : -1,
"Selection Color" : {
"Green Component" : "0.8353",
"Blue Component" : "1",
"Red Component" : "0.7098"
},
"Columns" : 180,
"Idle Code" : 0,
"Ansi 13 Color" : {
"Green Component" : "0.4980392",
"Blue Component" : "0.6588235",
"Red Component" : "0.6784314"
},
"Custom Command" : "No",
"ASCII Anti Aliased" : true,
"Non Ascii Font" : "icomoon 12",
"Vertical Spacing" : 1,
"Use Bold Font" : true,
"Option Key Sends" : 0,
"Selected Text Color" : {
"Green Component" : "0",
"Blue Component" : "0",
"Red Component" : "0"
},
"Background Color" : {
"Red Component" : 0.10000000000000001,
"Color Space" : "sRGB",
"Blue Component" : 0.10000000000000001,
"Alpha Component" : 1,
"Green Component" : 0.10000000000000001
},
"Character Encoding" : 4,
"Ansi 11 Color" : {
"Green Component" : "0.9137255",
"Blue Component" : "0.3098039",
"Red Component" : "0.9882353"
},
"Use Italic Font" : true,
"Unlimited Scrollback" : false,
"Keyboard Map" : {
"0xf700-0x260000" : {
"Text" : "[1;6A",
"Action" : 10
},
"0x37-0x40000" : {
"Text" : "0x1f",
"Action" : 11
},
"0x32-0x40000" : {
"Text" : "0x00",
"Action" : 11
},
"0xf709-0x20000" : {
"Text" : "[17;2~",
"Action" : 10
},
"0xf70c-0x20000" : {
"Text" : "[20;2~",
"Action" : 10
},
"0xf729-0x20000" : {
"Text" : "[1;2H",
"Action" : 10
},
"0xf72b-0x40000" : {
"Text" : "[1;5F",
"Action" : 10
},
"0xf705-0x20000" : {
"Text" : "[1;2Q",
"Action" : 10
},
"0xf703-0x260000" : {
"Text" : "[1;6C",
"Action" : 10
},
"0xf700-0x220000" : {
"Text" : "[1;2A",
"Action" : 10
},
"0xf701-0x280000" : {
"Text" : "0x1b 0x1b 0x5b 0x42",
"Action" : 11
},
"0x38-0x40000" : {
"Text" : "0x7f",
"Action" : 11
},
"0x33-0x40000" : {
"Text" : "0x1b",
"Action" : 11
},
"0xf703-0x220000" : {
"Text" : "[1;2C",
"Action" : 10
},
"0xf701-0x240000" : {
"Text" : "[1;5B",
"Action" : 10
},
"0xf70d-0x20000" : {
"Text" : "[21;2~",
"Action" : 10
},
"0xf702-0x260000" : {
"Text" : "[1;6D",
"Action" : 10
},
"0xf729-0x40000" : {
"Text" : "[1;5H",
"Action" : 10
},
"0xf706-0x20000" : {
"Text" : "[1;2R",
"Action" : 10
},
"0x34-0x40000" : {
"Text" : "0x1c",
"Action" : 11
},
"0xf700-0x280000" : {
"Text" : "0x1b 0x1b 0x5b 0x41",
"Action" : 11
},
"0x2d-0x40000" : {
"Text" : "0x1f",
"Action" : 11
},
"0xf70e-0x20000" : {
"Text" : "[23;2~",
"Action" : 10
},
"0xf702-0x220000" : {
"Text" : "[1;2D",
"Action" : 10
},
"0xf703-0x280000" : {
"Text" : "0x1b 0x1b 0x5b 0x43",
"Action" : 11
},
"0xf700-0x240000" : {
"Text" : "[1;5A",
"Action" : 10
},
"0xf707-0x20000" : {
"Text" : "[1;2S",
"Action" : 10
},
"0xf70a-0x20000" : {
"Text" : "[18;2~",
"Action" : 10
},
"0x35-0x40000" : {
"Text" : "0x1d",
"Action" : 11
},
"0xf70f-0x20000" : {
"Text" : "[24;2~",
"Action" : 10
},
"0xf703-0x240000" : {
"Text" : "[1;5C",
"Action" : 10
},
"0xf701-0x260000" : {
"Text" : "[1;6B",
"Action" : 10
},
"0xf702-0x280000" : {
"Text" : "0x1b 0x1b 0x5b 0x44",
"Action" : 11
},
"0xf72b-0x20000" : {
"Text" : "[1;2F",
"Action" : 10
},
"0x36-0x40000" : {
"Text" : "0x1e",
"Action" : 11
},
"0xf708-0x20000" : {
"Text" : "[15;2~",
"Action" : 10
},
"0xf701-0x220000" : {
"Text" : "[1;2B",
"Action" : 10
},
"0xf70b-0x20000" : {
"Text" : "[19;2~",
"Action" : 10
},
"0xf702-0x240000" : {
"Text" : "[1;5D",
"Action" : 10
},
"0xf704-0x20000" : {
"Text" : "[1;2P",
"Action" : 10
}
},
"Window Type" : 0,
"Background Image Location" : "",
"Blur" : false,
"Badge Color" : {
"Red Component" : 1,
"Color Space" : "sRGB",
"Blue Component" : 0,
"Alpha Component" : 0.5,
"Green Component" : 0.14910030364990234
},
"Scrollback Lines" : 1000,
"Send Code When Idle" : false,
"Close Sessions On End" : true,
"Terminal Type" : "xterm-256color",
"Visual Bell" : true,
"Flashing Bell" : false,
"Silence Bell" : false,
"Ansi 14 Color" : {
"Green Component" : "0.8862745",
"Blue Component" : "0.8862745",
"Red Component" : "0.2039216"
},
"Name" : "mhoush",
"Cursor Text Color" : {
"Green Component" : "0",
"Blue Component" : "0",
"Red Component" : "0"
},
"Shortcut" : "",
"Cursor Color" : {
"Green Component" : "1",
"Blue Component" : "1",
"Red Component" : "1"
},
"Transparency" : 0,
"Ansi 1 Color" : {
"Green Component" : "0",
"Blue Component" : "0",
"Red Component" : "0.8"
},
"Ansi 2 Color" : {
"Green Component" : "0.6039215999999999",
"Blue Component" : "0.02352941",
"Red Component" : "0.3058824"
},
"Ansi 3 Color" : {
"Green Component" : "0.627451",
"Blue Component" : "0",
"Red Component" : "0.7686275"
},
"Ansi 4 Color" : {
"Green Component" : "0.3960784",
"Blue Component" : "0.6431373",
"Red Component" : "0.2039216"
},
"Ansi 5 Color" : {
"Green Component" : "0.3137255",
"Blue Component" : "0.4823529",
"Red Component" : "0.4588235"
},
"Use Non-ASCII Font" : false,
"Ansi 6 Color" : {
"Green Component" : "0.5960785",
"Blue Component" : "0.6039215999999999",
"Red Component" : "0.02352941"
},
"Normal Font" : "InconsolataNerdFontCompleteM-Regular 20",
"Custom Directory" : "No",
"Ansi 0 Color" : {
"Green Component" : "0",
"Blue Component" : "0",
"Red Component" : "0"
},
"Guid" : "A30A702C-1CC2-4C2A-A29F-505BC017C0A6"
}

View File

@@ -1,33 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.micheal.clear-screenshots</string>
<key>ProgramArguments</key>
<array>
<string>zsh</string>
<string>-c</string>
<string>/Users/michael/.config/zsh/functions/clean-screenshots</string>
</array>
<key>StartCalendarInterval</key>
<dict>
<key>Day</key>
<integer>1</integer>
<key>Hour</key>
<integer>0</integer>
<key>Minute</key>
<integer>0</integer>
<key>Weekday</key>
<integer>0</integer>
</dict>
<key>UserName</key>
<string>michael</string>
<key>RunAtLoad</key>
<true/>
<key>StandardOutPath</key>
<string>/var/log/com.michael.clear-screenshots.out.log</string>
<key>StandardErrorPath</key>
<string>/var/log/com.michael.clear-screenshots.error.log</string>
</dict>
</plist>

View File

@@ -1,31 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.micheal.dotfiles.commit</string>
<key>WorkingDirectory</key>
<string>/Users/michael/.dotfiles</string>
<key>ProgramArguments</key>
<array>
<string>/Users/michael/.local/share/scripts/auto-git-commit</string>
</array>
<key>StartInterval</key>
<integer>3600</integer>
<key>KeepAlive</key>
<true/>
<key>RunAtLoad</key>
<true/>
<key>StandardOutPath</key>
<string>/tmp/com.michael.dotfiles.commit.log</string>
<key>StandardErrorPath</key>
<string>/tmp/com.michael.dotfiles.commit.error.log</string>
</dict>
</plist>

View File

@@ -1,17 +0,0 @@
# Configuration
home: ~/.local/nap
default_language: go
theme: nord
# Colors
background: "0"
foreground: "7"
primary_color: "#AFBEE1"
primary_color_subdued: "#64708D"
green: "#527251"
bright_green: "#BCE1AF"
bright_red: "#E49393"
red: "#A46060"
black: "#373B41"
gray: "240"
white: "#FFFFFF"

View File

@@ -1,14 +1,27 @@
{ {
"extras": [ "extras": [
"lazyvim.plugins.extras.coding.luasnip", "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.editor.harpoon2",
"lazyvim.plugins.extras.formatting.prettier", "lazyvim.plugins.extras.formatting.prettier",
"lazyvim.plugins.extras.lang.ansible", "lazyvim.plugins.extras.lang.ansible",
"lazyvim.plugins.extras.lang.clangd", "lazyvim.plugins.extras.lang.clangd",
"lazyvim.plugins.extras.lang.docker" "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": {
"NEWS.md": "10960" "NEWS.md": "11866"
}, },
"version": 7 "version": 8
} }

View File

@@ -1,28 +1,29 @@
local defaultGroupOptions = { clear = true } local defaultGroupOptions = { clear = true }
local markdownGroup = vim.api.nvim_create_augroup("MyMarkdownGroup", defaultGroupOptions) local markdownGroup = vim.api.nvim_create_augroup("MyMarkdownGroup", defaultGroupOptions)
local spellGroup = vim.api.nvim_create_augroup("SpellGroup", defaultGroupOptions)
local createCmd = vim.api.nvim_create_autocmd local createCmd = vim.api.nvim_create_autocmd
-- Spell check
createCmd("BufEnter", { createCmd("BufEnter", {
pattern = { "*.md", "*.markdown", "*.txt", "*.tex" }, pattern = "*.md",
group = spellGroup, group = markdownGroup,
callback = function(_) 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=80") vim.cmd.setlocal("textwidth=80")
vim.cmd.setlocal("spell spelllang=en_us") vim.cmd.setlocal("spell spelllang=en_us")
end, end,
}) })
-- Markdown -- Markdown
createCmd("BufWritePost", { -- createCmd("BufWritePost", {
pattern = { "*.md", "*.markdown" }, -- pattern = { "*.md", "*.markdown" },
group = markdownGroup, -- group = markdownGroup,
callback = function(_) -- callback = function(_)
local cursor = vim.fn.getpos(".") -- -- local cursor = vim.fn.getpos(".")
vim.cmd("FormatWrite") -- vim.cmd("FormatWrite")
vim.fn.setpos(".", cursor) -- -- vim.fn.setpos(".", cursor)
end, -- end,
}) -- })
-- Go -- Go
createCmd("BufWritePre", { createCmd("BufWritePre", {
@@ -33,6 +34,7 @@ createCmd("BufWritePre", {
group = vim.api.nvim_create_augroup("GoFormat", defaultGroupOptions), group = vim.api.nvim_create_augroup("GoFormat", defaultGroupOptions),
}) })
-- GoPass
vim.api.nvim_exec2( vim.api.nvim_exec2(
[[ [[
autocmd BufNewFile,BufRead /private/**/gopass** setlocal noswapfile nobackup noundofile shada="" autocmd BufNewFile,BufRead /private/**/gopass** setlocal noswapfile nobackup noundofile shada=""

View File

@@ -18,6 +18,22 @@ require("lazy").setup({
spec = { spec = {
-- add LazyVim and import its plugins -- add LazyVim and import its plugins
{ "LazyVim/LazyVim", import = "lazyvim.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/override with your plugins
{ import = "plugins" }, { import = "plugins" },
}, },

View File

@@ -0,0 +1,8 @@
return {
"saghen/blink.cmp",
opts = {
keymap = {
preset = "default"
}
}
}

View File

@@ -1,3 +1,4 @@
return { return {
{ "nvim-neo-tree/neo-tree.nvim", enabled = false }, { "nvim-neo-tree/neo-tree.nvim", enabled = false },
{ "akinsho/bufferline.nvim", enabled = false },
} }

View File

@@ -1,23 +1,30 @@
return { return {
"stevearc/conform.nvim", "stevearc/conform.nvim",
opts = { 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 = { formatters_by_ft = {
["markdown"] = { "prettier", "markdownlint-cli2", "markdown-toc" },
["markdown.mdx"] = { "prettier", "markdownlint-cli2", "markdown-toc" },
lua = { "stulua" }, lua = { "stulua" },
markdown = {
"prettier",
prepend_args = {
"--print-width",
"100",
"--prose-wrap",
"always",
"--parser",
"markdown",
},
},
swift = { "swiftformat" }, swift = { "swiftformat" },
-- ["*"] = {
-- require("formatter.filetypes.any").remove_trailing_whitespace,
-- },
}, },
}, },
} }

View File

@@ -1,21 +1,6 @@
-- Plugins that don't require much configuration are in here. -- Plugins that don't require much configuration are in here.
-- --
return { return {
{ import = "lazyvim.plugins.extras.lang.ansible" },
{ import = "lazyvim.plugins.extras.lang.cmake" },
{ import = "lazyvim.plugins.extras.lang.docker" },
{ import = "lazyvim.plugins.extras.lang.json" },
{ import = "lazyvim.plugins.extras.lang.markdown" },
{ import = "lazyvim.plugins.extras.lang.yaml" },
{ import = "lazyvim.plugins.extras.coding.luasnip" },
{
import = "lazyvim.plugins.extras.editor.mini-files",
opts = {
options = {
use_as_default_explorer = true,
},
},
},
{ {
"folke/snacks.nvim", "folke/snacks.nvim",
opts = { opts = {
@@ -23,10 +8,22 @@ return {
}, },
}, },
{ {
import = "lazyvim.plugins.extras.coding.blink", "christoomey/vim-tmux-navigator",
keymap = { lazy = false,
preset = "enter", cmd = {
["<C-y>"] = { "select_and_accept" }, "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>" },
}, },
}, },
} }

View File

@@ -0,0 +1,12 @@
return {
{
"mfussenegger/nvim-lint",
opts = {
linters = {
markdownlint = {
args = { "--config", "~/.markdownlint.jsonc", "--" },
},
},
},
},
}

View File

@@ -1,6 +1,6 @@
return { return {
{ {
"williamboman/mason.nvim", "mason-org/mason.nvim",
dependencies = { dependencies = {
"neovim/nvim-lspconfig", "neovim/nvim-lspconfig",
}, },
@@ -9,6 +9,7 @@ return {
"clangd", "clangd",
"marksman", "marksman",
"shfmt", "shfmt",
"tinymist",
}, },
}, },
}, },
@@ -38,10 +39,33 @@ return {
clangd = {}, clangd = {},
dockerls = {}, dockerls = {},
gopls = {}, gopls = {},
harper_ls = {},
jsonls = {}, jsonls = {},
lua_ls = {}, lua_ls = {
settings = {
Lua = {
runtime = {
version = "LuaJIT",
},
diagnostics = {
globals = { "vim" },
},
workspace = {
library = vim.api.nvim_get_runtime_file("", true),
},
telemetry = {
enable = false
}
},
}
},
marksman = {}, marksman = {},
sourcekit = {}, sourcekit = {},
tinymist = {
settings = {
formatterMode = "typstyle",
},
},
yamlls = {}, yamlls = {},
}, },
setup = { setup = {

View 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 = [[
*
+++++
+++++++++
==+++++++++++
+===:+++++++++++*
+======--+++++++++++*##+====
+==========:=+++++++++++#+====
+=============-=++++++++++++====
+================-:+++++++++++++==
+===================--++++++++++++++*
+======================--+++++++++++++++*
=========================-++++++++++++++++
==========================:+++++++++++++++
===========================:++++++++++++++
===========================-.-++++++++++++
===========================-::.=++++++++++
===========================----..=++++++++
===========================------..:=+++++
===========================--------:...-++
===========================------------:.:
===========================---------------
===========================---------------
===========================---------------
]],
},
},
},
}

View File

@@ -1,6 +1,7 @@
return { return {
{ {
import = "lazyvim.plugins.extras.editor.telescope", import = "lazyvim.plugins.extras.editor.telescope",
enabled = false,
opts = { opts = {
ensure_installed = { ensure_installed = {
"swift", "swift",

View 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."
},
}
}

View File

@@ -7,6 +7,7 @@ local i = ls.insert_node
local f = ls.function_node local f = ls.function_node
local c = ls.choice_node local c = ls.choice_node
local t = ls.text_node local t = ls.text_node
local fmt = require("luasnip.extras.fmt").fmt
ls.add_snippets("lua", { ls.add_snippets("lua", {
-- Setup a new snippet file. -- Setup a new snippet file.
@@ -31,4 +32,10 @@ ls.add_snippets("lua", {
"})", "})",
}), }),
}), }),
s("c", {
c(1, {
fmt("{}", { i(1), t("debug") }),
fmt("{}", { i(1), t("warning") }),
}),
}),
}) })

View File

@@ -14,3 +14,8 @@ wc
HVAC HVAC
dehumidification dehumidification
ansible ansible
orchestrator
ethernet
unifi
wildcard
Housh

Binary file not shown.

View File

@@ -7,16 +7,16 @@ vim.g.maplocalleader = " "
-- file for projects. -- file for projects.
-- Common settings -- Common settings
require("user.settings") require("config.settings")
-- Auto commands -- Auto commands
require("user.autocmd") require("config.autocmd")
-- Plugins -- Plugins
require("user.plugins") require("config.lazy")
-- Key maps -- Key maps
require("user.keymaps") require("config.keymaps")
-- Theme (must stay after plugins are loaded) -- Theme (must stay after plugins are loaded)
require("user.theme") require("config.theme")

View File

@@ -33,6 +33,14 @@ createCmd("BufWritePre", {
group = vim.api.nvim_create_augroup("GoFormat", defaultGroupOptions), group = vim.api.nvim_create_augroup("GoFormat", defaultGroupOptions),
}) })
-- Leaf
createCmd({ "BufRead", "BufNewFile" }, {
pattern = "*.leaf",
callback = function()
vim.opt.filetype = "html"
end,
})
vim.api.nvim_exec2( vim.api.nvim_exec2(
[[ [[
autocmd BufNewFile,BufRead /private/**/gopass** setlocal noswapfile nobackup noundofile shada="" autocmd BufNewFile,BufRead /private/**/gopass** setlocal noswapfile nobackup noundofile shada=""

View File

@@ -0,0 +1,83 @@
-- Bootstrap Lazy.
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
vim.fn.system({
"git",
"clone",
"--filter=blob:none",
"https://github.com/folke/lazy.nvim.git",
"--branch=stable", -- latest stable release
lazypath,
})
end
vim.opt.rtp:prepend(lazypath)
require("lazy").setup({
dev = {
path = "~/LocalProjects/plugins",
fallback = true,
},
-- Import all the plugin configs in the 'plugin' directory
{ import = "plugins" },
-- Plugins that don't have a configuration file.
{
"folke/zen-mode.nvim",
opts = {},
},
{
"christoomey/vim-tmux-navigator",
lazy = false,
},
{ "NoahTheDuke/vim-just", ft = { "just" } },
{
"chipsenkbeil/distant.nvim",
version = "v0.*",
event = "VeryLazy",
},
{
"echasnovski/mini.ai",
version = "*",
config = function()
require("mini.ai").setup({})
end,
},
{
"vhyrro/luarocks.nvim",
enabled = true,
priority = 1001, -- this plugin needs to run before anything else
opts = {
rocks = { "magick" },
},
},
{
"folke/lazydev.nvim",
ft = "lua", -- only load on lua files
opts = {
library = {
-- See the configuration section for more details
-- Load luvit types when the `vim.uv` word is found
{ path = "${3rd}/luv/library", words = { "vim%.uv" } },
},
},
},
{
"MeanderingProgrammer/render-markdown.nvim",
-- dependencies = { "nvim-treesitter/nvim-treesitter", "echasnovski/mini.nvim" }, -- if you use the mini.nvim suite
dependencies = { "nvim-treesitter/nvim-treesitter", "echasnovski/mini.icons" }, -- if you use standalone mini plugins
-- dependencies = { 'nvim-treesitter/nvim-treesitter', 'nvim-tree/nvim-web-devicons' }, -- if you prefer nvim-web-devicons
opts = {},
},
}, {
checker = {
enabled = true,
notify = false,
},
change_detection = {
notify = false,
},
rocks = {
hererocks = true, -- recommended if you do not have global installation of Lua 5.1.
},
})
vim.keymap.set("n", "<leader>ll", "<CMD>Lazy<CR>", { desc = "Open [L]azy" })

View File

@@ -0,0 +1,61 @@
-- https://cmp.saghen.dev/
return {
{
"saghen/blink.cmp",
enabled = false,
dependencies = {
-- "rafamadriz/friendly-snippets",
{ "L3MON4D3/LuaSnip", version = "v2.*" },
},
version = "v0.*",
opts = {
signature = { enabled = true },
sources = {
default = { "lsp", "path", "snippets", "buffer", "luasnip" },
providers = {
lsp = {
name = "lsp",
enabled = true,
module = "blink.cmp.sources.lsp",
score_offset = 1000, -- higher = higher priority
},
luasnip = {
name = "luasnip",
enabled = true,
module = "blink.cmp.sources.luasnip",
score_offset = 950,
},
snippets = {
name = "snippets",
enabled = true,
module = "blink.cmp.sources.snippets",
score_offset = 900,
},
},
},
snippets = {
expand = function(snippet)
require("luasnip").lsp_expand(snippet)
end,
active = function(filter)
if filter and filter.direction then
return require("luasnip").jumpable(filter.direction)
end
return require("luasnip").in_snippet()
end,
jump = function(direction)
require("luasnip").jump(direction)
end,
},
},
opts_extend = { "sources.default" },
keymap = {
preset = "default",
["<Tab>"] = {},
["<S-Tab>"] = {},
["<C-b>"] = { "snippet_backward", "fallback" },
["<C-f>"] = { "snippet_forward", "fallback" },
},
},
}

View File

@@ -3,6 +3,8 @@ return {
enabled = true, enabled = true,
event = "VeryLazy", event = "VeryLazy",
dependencies = { dependencies = {
"MeanderingProgrammer/render-markdown.nvim",
"folke/lazydev.nvim",
"hrsh7th/cmp-nvim-lsp", "hrsh7th/cmp-nvim-lsp",
"hrsh7th/cmp-buffer", -- source for text in buffer "hrsh7th/cmp-buffer", -- source for text in buffer
"hrsh7th/cmp-path", -- source for file system paths "hrsh7th/cmp-path", -- source for file system paths
@@ -74,8 +76,10 @@ return {
}), }),
-- sources for autocompletion -- sources for autocompletion
sources = cmp.config.sources({ sources = cmp.config.sources({
{ name = "lazydev", group_index = 0 },
{ name = "nvim_lsp" }, { name = "nvim_lsp" },
{ name = "luasnip" }, -- snippets { name = "luasnip" }, -- snippets
{ name = "render-markdown" }, -- markdown
{ name = "buffer" }, -- text within current buffer { name = "buffer" }, -- text within current buffer
{ name = "path" }, -- file system paths { name = "path" }, -- file system paths
}), }),

View File

@@ -1,7 +1,7 @@
return { return {
'numToStr/Comment.nvim', 'numToStr/Comment.nvim',
event = { 'BufReadPre', 'BufNewFile' },
opts = { opts = {
-- add any options here -- add any options here
}, },
event = { 'BufReadPre', 'BufNewFile' },
} }

View File

@@ -0,0 +1,20 @@
return {
"j-hui/fidget.nvim",
event = "VeryLazy",
opts = {
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
},
},
},
}

View File

@@ -0,0 +1,56 @@
return {
"folke/flash.nvim",
event = "VeryLazy",
opts = {
search = {
mode = "normal",
},
modes = {
char = {
enabled = false,
},
},
},
keys = {
{
"s",
mode = { "n", "x", "o" },
function()
require("flash").jump()
end,
desc = "Flash",
},
{
"S",
mode = { "n", "x", "o" },
function()
require("flash").treesitter()
end,
desc = "Flash Treesitter",
},
{
"r",
mode = "o",
function()
require("flash").remote()
end,
desc = "Remote Flash",
},
{
"R",
mode = { "o", "x" },
function()
require("flash").treesitter_search()
end,
desc = "Treesitter Search",
},
{
"<c-s>",
mode = { "c" },
function()
require("flash").toggle()
end,
desc = "Toggle Flash Search",
},
},
}

View File

@@ -1,7 +1,19 @@
return { return {
"mhartington/formatter.nvim", "mhartington/formatter.nvim",
event = { "BufReadPre", "BufNewFile" }, event = { "BufReadPre", "BufNewFile" },
config = function() keys = {
{
"<leader>f",
":Format",
desc = "[F]ormat",
},
{
"<leader>F",
":FormatWrite",
desc = "[F]ormat write",
},
},
config = function(_, opts)
local util = require("formatter.util") local util = require("formatter.util")
require("formatter").setup({ require("formatter").setup({
filetype = { filetype = {
@@ -50,13 +62,6 @@ return {
}, },
}) })
-- Keymaps
local wk = require("which-key")
wk.add({
{ "<space>f", ":Format", desc = "[F]ormat" },
{ "<space>F", ":FormateWrite", desc = "[F]ormat write" },
}, { mode = "n", silent = true })
local augroup = vim.api.nvim_create_augroup local augroup = vim.api.nvim_create_augroup
local autocmd = vim.api.nvim_create_autocmd local autocmd = vim.api.nvim_create_autocmd

View File

@@ -0,0 +1,5 @@
return {
"ghostty",
dir = vim.env.GHOSTTY_PATH .. "/Contents/Resources/vim/vimfiles/",
lazy = false,
}

View File

@@ -0,0 +1,86 @@
return {
"ThePrimeagen/harpoon",
branch = "harpoon2",
event = "VeryLazy",
dependencies = {
"nvim-lua/plenary.nvim",
},
config = function()
local harpoon = require("harpoon")
harpoon:setup({
settings = {
save_on_toggle = true,
sync_on_ui_close = true,
key = function()
return vim.loop.cwd()
end,
},
})
local conf = require("telescope.config").values
local function toggle_telescope(harpoon_files)
local file_paths = {}
for _, item in ipairs(harpoon_files.items) do
table.insert(file_paths, item.value)
end
require("telescope.pickers")
.new({}, {
prompt_title = "Harpoon",
finder = require("telescope.finders").new_table({
results = file_paths,
}),
previewer = conf.file_previewer({}),
sorter = conf.generic_sorter({}),
})
:find()
end
-- Keymaps
vim.keymap.set("n", "<C-e>", function()
toggle_telescope(harpoon:list())
end, { desc = "Open Harpoon window" })
vim.keymap.set("n", "<leader>a", function()
harpoon:list():add()
end, { desc = "[A]dd to harpoon list." })
vim.keymap.set("n", "<C-e>", function()
harpoon.ui:toggle_quick_menu(harpoon:list())
end, { desc = "Toggle quick menu." })
-- Buffer key maps. Currently keeping all buffer movements
-- isolated to top left row of keys on keyboard and all begin
-- with the <Control> key.
-- Select buffer numbers.
vim.keymap.set("n", "<A-y>", function()
harpoon:list():select(1)
end, { desc = "Select first harpoon buffer." })
vim.keymap.set("n", "<A-u>", function()
harpoon:list():select(2)
end, { desc = "Select second harpoon buffer." })
vim.keymap.set("n", "<A-i>", function()
harpoon:list():select(3)
end, { desc = "Select third harpoon buffer." })
vim.keymap.set("n", "<A-o>", function()
harpoon:list():select(4)
end, { desc = "Select fourth harpoon buffer." })
-- Toggle previous and next buffers.
vim.keymap.set("n", "<C-[>", function()
harpoon:list():prev()
end, { desc = "[P]revious harpoon buffer." })
vim.keymap.set("n", "<C-]>", function()
harpoon:list():next()
end, { desc = "[N]ext harpoon buffer." })
-- Extensions
harpoon:extend({
UI_CREATE = function(cx)
vim.keymap.set("n", "<C-v>", function()
harpoon.ui:select_menu_item({ vsplit = true })
end, { buffer = cx.buffer, desc = "Open in [V]split" })
end,
})
end,
}

View File

@@ -0,0 +1,45 @@
return {
"3rd/image.nvim",
event = "VeryLazy",
dependencies = {
{
"nvim-treesitter/nvim-treesitter",
build = ":TSUpdate",
config = function()
require("nvim-treesitter.configs").setup({
ensure_installed = { "markdown" },
highlight = { enable = true },
})
end,
},
},
opts = {
backend = "kitty",
--backend = "ueberzug",
integrations = {
markdown = {
enabled = true,
clear_in_insert_mode = false,
download_remote_images = true,
only_render_image_at_cursor = true,
floating_windows = true,
filetypes = { "markdown", "vimwiki" }, -- markdown extensions (ie. quarto) can go here
},
neorg = {
enabled = true,
clear_in_insert_mode = false,
download_remote_images = true,
only_render_image_at_cursor = false,
filetypes = { "norg" },
},
},
max_width = nil,
max_height = nil,
max_width_window_percentage = nil,
max_height_window_percentage = 50,
editor_only_render_when_focused = true, -- auto show/hide images when the editor gains/looses focus
tmux_show_only_in_active_window = false, -- auto show/hide images in the correct Tmux window (needs visual-activity off)
kitty_method = "normal",
hijack_file_patterns = { "*.png", "*.jpg", "*.jpeg", "*.gif", "*.webp", "*.avif" }, -- render image files as images when opened
},
}

120
nvim/m-housh/lua/plugins/lsp.lua Executable file
View File

@@ -0,0 +1,120 @@
return {
{
"neovim/nvim-lspconfig",
event = { "BufReadPre", "BufNewFile" },
dependencies = {
"hrsh7th/cmp-nvim-lsp",
-- "saghen/blink.cmp",
{ "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({
ensure_installed = {
"bashls",
"clangd",
"dockerls",
"gopls",
"jinja_lsp",
"jqls",
"jsonls",
"ltex",
"lua_ls",
"marksman",
"tinymist",
"yamlls",
},
automatic_installation = true,
})
local lspconfig = require("lspconfig")
local cmp_nvim_lsp = require("cmp_nvim_lsp")
local capabilities = cmp_nvim_lsp.default_capabilities()
-- local capabilities = require("blink.cmp").get_lsp_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 = "[G]oto [R]eferences"
vim.keymap.set("n", "gr", "<CMD>Telescope lsp_references<CR>", 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", "x" }, "<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
-- The language servers to setup.
local lsp_servers = {
"bashls",
"clangd",
"dockerls",
"gopls",
"jsonls",
"lua_ls",
"marksman",
"sourcekit",
"tinymist",
"yamlls",
}
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,
},
}

View File

@@ -0,0 +1,69 @@
local function xcodebuild_device()
if vim.g.xcodebuild_platform == "macOS" then
return " macOS"
end
if vim.g.xcodebuild_os then
return "" .. vim.g.xcodebuild_device_name .. " (" .. vim.g.xcodebuild_os .. ")"
end
return "" .. vim.g.xcodebuild_device_name
end
return {
"nvim-lualine/lualine.nvim",
dependencies = { "nvim-tree/nvim-web-devicons" },
opts = {
options = {
globalstatus = true,
theme = "auto",
symbols = {
alternate_file = "#",
directory = "",
readonly = "",
unnamed = "[No Name]",
newfile = "[New]",
},
disabled_buftypes = { "quickfix", "prompt" },
component_separators = "",
section_separators = { left = "", right = "" },
},
sections = {
lualine_a = {
-- { "mode" },
{ "filename" },
},
lualine_b = {
{ "diagnostics" },
{ "diff" },
{
"searchcount",
maxcount = 999,
timeout = 500,
},
},
lualine_c = {},
lualine_x = {
{ "' ' .. vim.g.xcodebuild_last_status", color = { fg = "#a6e3a1" } },
-- { "'󰙨 ' .. vim.g.xcodebuild_test_plan", color = { fg = "#a6e3a1", bg = "#161622" } },
{ xcodebuild_device, color = { fg = "#f9e2af", bg = "#161622" } },
},
lualine_y = {
{ "branch" },
},
lualine_z = {
{ "location" },
},
},
inactive_sections = {
lualine_a = {},
lualine_b = {},
lualine_c = { "filename" },
lualine_x = {},
lualine_y = {},
lualine_z = {},
},
extensions = { "nvim-dap-ui", "quickfix", "trouble", "nvim-tree", "lazy", "mason" },
},
}

View File

@@ -0,0 +1,55 @@
return {
"L3MON4D3/LuaSnip",
version = "v2.*",
event = "VeryLazy",
keys = {
{
"<C-k>",
mode = { "i", "s" },
function()
local ls = require("luasnip")
if ls.expand_or_jumpable() then
ls.expand_or_jump()
end
end,
},
{
"<C-j>",
mode = { "i", "s" },
function()
local ls = require("luasnip")
if ls.jumpable(-1) then
ls.jump(-1)
end
end,
},
{
"<C-n>",
mode = { "i", "s" },
function()
local ls = require("luasnip")
if ls.choice_active() then
ls.change_choice(1)
end
end,
},
},
config = function()
local ls = require("luasnip")
ls.setup({
history = true,
enable_autosnippets = false,
updatevents = "TextChanged,TextChangedI",
extra_opts = {
[require("luasnip.util.types").choiceNode] = {
active = {
virt_text = { { "choiceNode", "Comment" } },
},
},
},
})
require("luasnip.loaders.from_vscode").lazy_load()
require("luasnip.loaders.from_lua").lazy_load({ paths = vim.fn.stdpath("config") .. "/snippets" })
end,
}

View File

@@ -0,0 +1,24 @@
-- This needs some work, as it's not working. May need to install a different browser??
return {
"iamcco/markdown-preview.nvim",
enabled = false,
cmd = { "MarkdownPreviewToggle", "MarkdownPreview", "MarkdownPreviewStop" },
ft = { "markdown" },
config = function()
return {
mkdp_browser = "Vivaldi",
}
end,
keys = {
{
"<leader>mp",
ft = "markdown",
"<cmd>MarkdownPreviewToggle<cr>",
desc = "Markdown Preview",
},
},
build = "cd app && yarn install",
init = function()
vim.g.mkdp_filetypes = { "markdown" }
end,
}

View File

@@ -0,0 +1,46 @@
return {
"folke/noice.nvim",
event = "VeryLazy",
dependencies = {
-- if you lazy-load any plugin below, make sure to add proper `module="..."` entries
"MunifTanjim/nui.nvim",
-- OPTIONAL:
-- `nvim-notify` is only needed, if you want to use the notification view.
-- If not available, we use `mini` as the fallback
"rcarriga/nvim-notify",
},
opts = {
lsp = {
-- override markdown rendering so that **cmp** and other plugins use **Treesitter**
override = {
["vim.lsp.util.convert_input_to_markdown_lines"] = true,
["vim.lsp.util.stylize_markdown"] = true,
["cmp.entry.get_documentation"] = true,
},
-- you can enable a preset for easier configuration
presets = {
bottom_search = true, -- use a classic bottom cmdline for search
command_palette = true, -- position the cmdline and popupmenu together
long_message_to_split = true, -- long messages will be sent to a split
inc_rename = false, -- enables an input dialog for inc-rename.nvim
lsp_doc_border = false, -- add a border to hover docs and signature help
},
signature = { enabled = false },
},
routes = {
{ -- enables messages for showing macro recording.
view = "notify",
filter = { event = "msg_showmode" },
},
{ -- Hide the written messages.
view = "notify",
filter = {
event = "msg_show",
kind = "",
find = "written",
},
opts = { skip = true },
},
},
},
}

View File

@@ -0,0 +1,38 @@
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 directory." },
-- Open parent directory in floating window.
{
"<leader>-",
function()
require("oil").toggle_float()
end,
desc = "Open directory in float.",
},
},
}

View File

@@ -0,0 +1,8 @@
return {
"sotte/presenting.nvim",
opts = {
-- fill in your options here
-- see :help Presenting.config
},
cmd = { "Presenting" },
}

View File

@@ -0,0 +1,49 @@
return {
"folke/todo-comments.nvim",
event = "VeryLazy",
dependencies = {
"nvim-lua/plenary.nvim",
"folke/trouble.nvim",
},
opts = {
keywords = {
-- Adds the important keyword, I primarily use this in markdown
-- documents to be able to jump and color appropriately.
FIX = { alt = { "IMPORTANT" } },
-- Adds mark keyword, used in swift.
NOTE = { alt = { "MARK" } },
},
},
keys = {
{
"<leader>tq",
"<CMD>Trouble todo toggle<CR>",
desc = "Todo quick fix list.",
},
{
"<leader><leader>t",
"<CMD>TodoTelescope<CR>",
desc = "Todo telescope list.",
},
{
"<leader>tl",
"<CMD>TodoLocList<CR>",
desc = "Todo location list.",
},
{
"]t",
function()
require("todo-comments").jump_next()
end,
desc = "Next todo.",
},
{
"[t",
function()
require("todo-comments").jump_prev()
end,
desc = "Previous todo.",
},
},
}

View File

@@ -0,0 +1,76 @@
return {
"nvim-treesitter/nvim-treesitter",
dependencies = {
"nvim-telescope/telescope-fzf-native.nvim",
"nvim-treesitter/nvim-treesitter-textobjects",
},
build = ":TSUpdate",
event = { "BufReadPre", "BufNewFile" },
opts = {
ensure_installed = {
"bash",
"cmake",
"dockerfile",
"go",
"hcl",
"html",
"java",
"javascript",
"json",
"latex",
"ledger",
"llvm",
"lua",
"make",
"markdown",
"python",
"swift",
"toml",
"xml",
"yaml",
}, -- one of "all", "maintained" (parsers with maintainers), or a list of languages
ignore_install = {}, -- List of parsers to ignore installing
highlight = {
enable = true, -- false will disable the whole extension
disable = {}, -- list of language that will be disabled
},
incremental_selection = {
enable = true,
keymaps = {
init_selection = "<CR>",
scope_incremental = "<CR>",
node_incremental = "<TAB>",
node_decremental = "<S-TAB>",
},
},
indent = { enable = true },
autopairs = { { enable = true } },
textobjects = {
select = {
enable = true,
-- Automatically jump forward to textobj, similar to targets.vim
lookahead = true,
keymaps = {
-- You can use the capture groups defined in textobjects.scm
["af"] = "@function.outer",
["if"] = "@function.inner",
["ac"] = "@class.outer",
["ic"] = "@class.inner",
["al"] = "@loop.outer",
["il"] = "@loop.inner",
["ib"] = "@block.inner",
["ab"] = "@block.outer",
["ir"] = "@parameter.inner",
["ar"] = "@parameter.outer",
["a="] = "@assignment.outer",
["i="] = "@assignment.inner",
},
},
},
rainbow = {
enable = true,
extended_mode = true, -- Highlight also non-parentheses delimiters, boolean or table: lang -> boolean
max_file_lines = 2000, -- Do not enable for files with more than specified lines
},
},
}

View File

@@ -0,0 +1,16 @@
return {
"folke/which-key.nvim",
event = "VeryLazy",
opts = {
preset = "helix",
},
keys = {
{
"<leader>?",
function()
require("which-key").show({ global = false })
end,
desc = "Buffer Local Keymaps (which-key)",
},
},
}

View File

@@ -2,7 +2,8 @@ local progress_handle
return { return {
"wojciech-kulik/xcodebuild.nvim", "wojciech-kulik/xcodebuild.nvim",
event = "VeryLazy", --event = "VeryLazy",
ft = "swift",
--branch = "fix/issue-249", --branch = "fix/issue-249",
dependencies = { dependencies = {
"nvim-telescope/telescope.nvim", "nvim-telescope/telescope.nvim",

View File

@@ -1,58 +0,0 @@
return {
{
"saghen/blink.cmp",
enabeld = false,
dependencies = {
"rafamadriz/friendly-snippets",
--"L3MON4D3/LuaSnip",
},
version = "v0.*",
opts = {
appearance = {
use_nvim_cmp_as_default = true,
nerd_font_variant = "mono",
},
signature = { enabled = true },
keymap = {
preset = "default",
["<CR>"] = { "accept", "fallback" },
["<C-space>"] = {
function(cmp)
cmp.show({ providers = { "snippets" } })
end,
},
--["<C-k>"] = { "select_prev", "fallback" },
--["<C-j>"] = { "select_next", "fallback" },
["<C-n>"] = {
function(cmp)
if cmp.snippet_active() then
return cmp.accept()
else
return cmp.select_and_accept()
end
end,
"snippet_forward",
"fallback",
},
},
-- snippets = {
-- expand = function(snippet)
-- require("luasnip").lsp_expand(snippet)
-- end,
-- active = function(filter)
-- if filter and filter.direction then
-- return require("luasnip").jumpable(filter.direction)
-- end
-- return require("luasnip").in_snippet()
-- end,
-- jump = function(direction)
-- require("luasnip").jump(direction)
-- end,
-- },
sources = {
default = { "lsp", "path", "snippets", "buffer" },
},
},
opts_extend = { "sources.default" },
},
}

View File

@@ -1,23 +0,0 @@
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,
}

View File

@@ -1,86 +0,0 @@
return {
"ThePrimeagen/harpoon",
branch = "harpoon2",
event = "VeryLazy",
dependencies = {
"nvim-lua/plenary.nvim",
},
config = function()
local harpoon = require("harpoon")
harpoon:setup({
settings = {
save_on_toggle = true,
sync_on_ui_close = true,
key = function()
return vim.loop.cwd()
end,
},
})
local conf = require("telescope.config").values
local function toggle_telescope(harpoon_files)
local file_paths = {}
for _, item in ipairs(harpoon_files.items) do
table.insert(file_paths, item.value)
end
require("telescope.pickers")
.new({}, {
prompt_title = "Harpoon",
finder = require("telescope.finders").new_table({
results = file_paths,
}),
previewer = conf.file_previewer({}),
sorter = conf.generic_sorter({}),
})
:find()
end
-- Keymaps
vim.keymap.set("n", "<C-e>", function()
toggle_telescope(harpoon:list())
end, { desc = "Open Harpoon window" })
vim.keymap.set("n", "<leader>a", function()
harpoon:list():add()
end, { desc = "[A]dd to harpoon list." })
vim.keymap.set("n", "<C-e>", function()
harpoon.ui:toggle_quick_menu(harpoon:list())
end, { desc = "Toggle quick menu." })
-- Buffer key maps. Currently keeping all buffer movements
-- isolated to top left row of keys on keyboard and all begin
-- with the <Control> key.
-- Select buffer numbers.
vim.keymap.set("n", "<A-y>", function()
harpoon:list():select(1)
end, { desc = "Select first harpoon buffer." })
vim.keymap.set("n", "<A-u>", function()
harpoon:list():select(2)
end, { desc = "Select second harpoon buffer." })
vim.keymap.set("n", "<A-i>", function()
harpoon:list():select(3)
end, { desc = "Select third harpoon buffer." })
vim.keymap.set("n", "<A-o>", function()
harpoon:list():select(4)
end, { desc = "Select fourth harpoon buffer." })
-- Toggle previous and next buffers.
vim.keymap.set("n", "<C-[>", function()
harpoon:list():prev()
end, { desc = "[P]revious harpoon buffer." })
vim.keymap.set("n", "<C-]>", function()
harpoon:list():next()
end, { desc = "[N]ext harpoon buffer." })
-- Extensions
harpoon:extend({
UI_CREATE = function(cx)
vim.keymap.set("n", "<C-v>", function()
harpoon.ui:select_menu_item({ vsplit = true })
end, { buffer = cx.buffer, desc = "Open in [V]split" })
end,
})
end,
}

View File

@@ -1,105 +0,0 @@
-- The language servers to setup.
local lsp_servers = {
"bashls",
"clangd",
"dockerls",
"gopls",
"jsonls",
"lua_ls",
"marksman",
"sourcekit",
"yamlls",
}
return {
"neovim/nvim-lspconfig",
event = { "BufReadPre", "BufNewFile" },
dependencies = {
-- "hrsh7th/cmp-nvim-lsp",
"saghen/blink.cmp",
{ "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 capabilities = require("blink.cmp").get_lsp_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 = "[G]oto [R]eferences"
vim.keymap.set("n", "gr", "<CMD>Telescope lsp_references<CR>", 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,
}

View File

@@ -1,217 +0,0 @@
return {
"nvim-lualine/lualine.nvim",
dependencies = { "nvim-tree/nvim-web-devicons" },
config = function()
local lualine = require("lualine")
local function xcodebuild_device()
if vim.g.xcodebuild_platform == "macOS" then
return " macOS"
end
if vim.g.xcodebuild_os then
return "" .. vim.g.xcodebuild_device_name .. " (" .. vim.g.xcodebuild_os .. ")"
end
return "" .. vim.g.xcodebuild_device_name
end
lualine.setup({
options = {
globalstatus = true,
theme = "auto",
symbols = {
alternate_file = "#",
directory = "",
readonly = "",
unnamed = "[No Name]",
newfile = "[New]",
},
disabled_buftypes = { "quickfix", "prompt" },
component_separators = "",
section_separators = { left = "", right = "" },
},
sections = {
lualine_a = {
-- { "mode" },
{ "filename" },
},
lualine_b = {
{ "diagnostics" },
{ "diff" },
{
"searchcount",
maxcount = 999,
timeout = 500,
},
},
lualine_c = {},
lualine_x = {
{ "' ' .. vim.g.xcodebuild_last_status", color = { fg = "#a6e3a1" } },
-- { "'󰙨 ' .. vim.g.xcodebuild_test_plan", color = { fg = "#a6e3a1", bg = "#161622" } },
{ xcodebuild_device, color = { fg = "#f9e2af", bg = "#161622" } },
},
lualine_y = {
{ "branch" },
},
lualine_z = {
{ "location" },
},
},
inactive_sections = {
lualine_a = {},
lualine_b = {},
lualine_c = { "filename" },
lualine_x = {},
lualine_y = {},
lualine_z = {},
},
extensions = { "nvim-dap-ui", "quickfix", "trouble", "nvim-tree", "lazy", "mason" },
})
end,
}
-- return {
-- "nvim-lualine/lualine.nvim",
-- config = function()
-- local colors = {
-- red = '#ca1243',
-- grey = '#a0a1a7',
-- black = '#383a42',
-- white = '#f3f3f3',
-- light_green = '#83a598',
-- orange = '#fe8019',
-- green = '#8ec07c',
-- }
--
-- local empty = require('lualine.component'):extend()
-- function empty:draw(default_highlight)
-- self.status = ''
-- self.applied_separator = ''
-- self:apply_highlights(default_highlight)
-- self:apply_section_separators()
-- return self.status
-- end
--
-- -- Put proper separators and gaps between components in sections
-- local function process_sections(sections)
-- for name, section in pairs(sections) do
-- local left = name:sub(9, 10) < 'x'
-- for pos = 1, name ~= 'lualine_z' and #section or #section - 1 do
-- table.insert(section, pos * 2, { empty, color = { fg = colors.white, bg = colors.white } })
-- end
-- for id, comp in ipairs(section) do
-- if type(comp) ~= 'table' then
-- comp = { comp }
-- section[id] = comp
-- end
-- comp.separator = left and { right = '' } or { left = '' }
-- end
-- end
-- return sections
-- end
--
-- local function search_result()
-- if vim.v.hlsearch == 0 then
-- return ''
-- end
-- local last_search = vim.fn.getreg '/'
-- if not last_search or last_search == '' then
-- return ''
-- end
-- local searchcount = vim.fn.searchcount { maxcount = 9999 }
-- return last_search .. '(' .. searchcount.current .. '/' .. searchcount.total .. ')'
-- end
--
-- local function modified()
-- if vim.bo.modified then
-- return '+'
-- elseif vim.bo.modifiable == false or vim.bo.readonly == true then
-- return '-'
-- end
-- return ''
-- end
--
-- local function xcodebuild_device()
-- if vim.g.xcodebuild_platform == "macOS" then
-- return " macOS"
-- end
--
-- local deviceIcon = ""
-- if vim.g.xcodebuild_platform:match("watch") then
-- deviceIcon = "􀟤"
-- elseif vim.g.xcodebuild_platform:match("tv") then
-- deviceIcon = "􀡴 "
-- elseif vim.g.xcodebuild_platform:match("vision") then
-- deviceIcon = "􁎖 "
-- end
--
-- if vim.g.xcodebuild_os then
-- return deviceIcon .. " " .. vim.g.xcodebuild_device_name .. " (" .. vim.g.xcodebuild_os .. ")"
-- end
--
-- return deviceIcon .. " " .. vim.g.xcodebuild_device_name
-- end
--
--
-- require('lualine').setup {
-- options = {
-- theme = 'auto',
-- component_separators = '',
-- section_separators = { left = '', right = '' },
-- },
-- sections = process_sections {
-- lualine_a = { 'mode' },
-- lualine_b = {
-- 'branch',
-- 'diff',
-- {
-- 'diagnostics',
-- source = { 'nvim' },
-- sections = { 'error' },
-- diagnostics_color = { error = { bg = colors.red, fg = colors.white } },
-- },
-- {
-- 'diagnostics',
-- source = { 'nvim' },
-- sections = { 'warn' },
-- diagnostics_color = { warn = { bg = colors.orange, fg = colors.white } },
-- },
-- { 'filename', file_status = false, path = 1 },
-- { modified, color = { bg = colors.red } },
-- {
-- '%w',
-- cond = function()
-- return vim.wo.previewwindow
-- end,
-- },
-- {
-- '%r',
-- cond = function()
-- return vim.bo.readonly
-- end,
-- },
-- {
-- '%q',
-- cond = function()
-- return vim.bo.buftype == 'quickfix'
-- end,
-- },
-- },
-- lualine_c = {},
-- lualine_x = {
-- { "' ' .. vim.g.xcodebuild_last_status", color = { fg = "Gray" } },
-- { "'󰙨 ' .. vim.g.xcodebuild_test_plan", color = { fg = "#a6e3a1", bg = "#161622" } },
-- { xcodebuild_device, color = { fg = "#f9e2af", bg = "#161622" } },
-- },
-- lualine_y = { search_result, 'filetype' },
-- lualine_z = { '%l:%c', '%p%%/%L' },
-- },
-- inactive_sections = {
-- lualine_c = { '%f %y %m' },
-- lualine_x = {},
-- },
-- tabline = {},
-- extensions = {"nvim-tree"}
-- }
-- end
-- }

View File

@@ -1,45 +0,0 @@
return {
"L3MON4D3/LuaSnip",
version = "v2.*",
event = "VeryLazy",
config = function()
local ls = require("luasnip")
local types = require("luasnip.util.types")
ls.setup({
history = true,
enable_autosnippets = false,
updatevents = "TextChanged,TextChangedI",
extra_opts = {
[types.choiceNode] = {
active = {
virt_text = { { "choiceNode", "Comment" } },
},
},
},
})
require("luasnip.loaders.from_vscode").lazy_load()
require("luasnip.loaders.from_lua").lazy_load({ paths = vim.fn.stdpath("config") .. "/snippets" })
-- Keymaps
local opts = { silent = true }
-- Use <Ctrl>k to expand snippets.
-- This will expand the current item or jump to the next item within the snippet.
vim.keymap.set({ "i", "s" }, "<C-k>", function()
if ls.expand_or_jumpable() then
ls.expand_or_jump()
end
end, opts)
-- Use <Ctrl>j to jump backwards in a snippet.
-- This always moves to the previous item within a snippet.
vim.keymap.set({ "i", "s" }, "<C-j>", function()
if ls.jumpable(-1) then
ls.jump(-1)
end
end, opts)
-- Reload snippets.
vim.keymap.set("n", "<leader><leader>s", "<CMD>source ~/.config/m-housh/lua/user/plugin/luasnip.lua<CR>")
end,
}

View File

@@ -1,47 +0,0 @@
return {
"folke/noice.nvim",
event = "VeryLazy",
-- config.lsp.signature.enabled = false
opts = {
lsp = {
-- override markdown rendering so that **cmp** and other plugins use **Treesitter**
override = {
["vim.lsp.util.convert_input_to_markdown_lines"] = true,
["vim.lsp.util.stylize_markdown"] = true,
["cmp.entry.get_documentation"] = true,
},
-- you can enable a preset for easier configuration
presets = {
bottom_search = true, -- use a classic bottom cmdline for search
command_palette = true, -- position the cmdline and popupmenu together
long_message_to_split = true, -- long messages will be sent to a split
inc_rename = false, -- enables an input dialog for inc-rename.nvim
lsp_doc_border = false, -- add a border to hover docs and signature help
},
signature = { enabled = false },
},
routes = {
{ -- enables messages for showing macro recording.
view = "notify",
filter = { event = "msg_showmode" },
},
{ -- Hide the written messages.
view = 'notify',
filter = {
event = "msg_show",
kind = "",
find = "written"
},
opts = { skip = true }
}
},
},
dependencies = {
-- if you lazy-load any plugin below, make sure to add proper `module="..."` entries
"MunifTanjim/nui.nvim",
-- OPTIONAL:
-- `nvim-notify` is only needed, if you want to use the notification view.
-- If not available, we use `mini` as the fallback
"rcarriga/nvim-notify",
},
}

View File

@@ -1,68 +0,0 @@
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 directory." },
-- Open parent directory in floating window.
{
"<leader>-",
function()
require("oil").toggle_float()
end,
desc = "Open directory in float.",
},
},
-- config = function()
-- require("oil").setup({
-- 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,
-- },
-- })
--
-- -- Show the parent directory in current window.
-- vim.keymap.set("n", "-", "<CMD>Oil<CR>", { desc = "Open parent directory." })
--
-- -- Open parent directory in floating window.
-- vim.keymap.set("n", "<space>-", require("oil").toggle_float)
--
-- -- Old habits die hard, map what used to toggle neo-tree to just open a float.
-- vim.keymap.set("n", "<C-n>", require("oil").toggle_float)
-- end,
}

View File

@@ -1,29 +0,0 @@
return {
"folke/todo-comments.nvim",
dependencies = {
"nvim-lua/plenary.nvim",
"folke/trouble.nvim",
},
opts = {},
config = function()
local todos = require("todo-comments")
todos.setup({
keywords = {
-- Adds the important keyword, I primarily use this in markdown
-- documents to be able to jump and color appropriately.
FIX = { alt = { "IMPORTANT" } },
},
})
vim.keymap.set("n", "<leader>tq", "<CMD>Trouble todo toggle<CR>", { desc = "[T]odo [Q]uick fix list." })
vim.keymap.set("n", "<leader><leader>t", "<CMD>TodoTelescope<CR>", { desc = "[T]odo telescope list." })
vim.keymap.set("n", "<leader>tl", "<CMD>TodoLocList<CR>", { desc = "[T]odo [L]ocation list." })
vim.keymap.set("n", "]t", function()
todos.jump_next()
end, { desc = "Next [T]odo" })
vim.keymap.set("n", "[t", function()
todos.jump_prev()
end, { desc = "Previous [T]odo" })
end,
}

View File

@@ -1,78 +0,0 @@
return {
"nvim-treesitter/nvim-treesitter",
dependencies = {
"nvim-telescope/telescope-fzf-native.nvim",
"nvim-treesitter/nvim-treesitter-textobjects",
},
build = ":TSUpdate",
event = { "BufReadPre", "BufNewFile" },
config = function()
require("nvim-treesitter.configs").setup({
ensure_installed = {
"bash",
"cmake",
"dockerfile",
"go",
"hcl",
"html",
"java",
"javascript",
"json",
"latex",
"ledger",
"llvm",
"lua",
"make",
"markdown",
"python",
"swift",
"toml",
"xml",
"yaml",
}, -- one of "all", "maintained" (parsers with maintainers), or a list of languages
ignore_install = {}, -- List of parsers to ignore installing
highlight = {
enable = true, -- false will disable the whole extension
disable = {}, -- list of language that will be disabled
},
incremental_selection = {
enable = true,
keymaps = {
init_selection = "<CR>",
scope_incremental = "<CR>",
node_incremental = "<TAB>",
node_decremental = "<S-TAB>",
},
},
indent = { enable = true },
autopairs = { { enable = true } },
textobjects = {
select = {
enable = true,
-- Automatically jump forward to textobj, similar to targets.vim
lookahead = true,
keymaps = {
-- You can use the capture groups defined in textobjects.scm
["af"] = "@function.outer",
["if"] = "@function.inner",
["ac"] = "@class.outer",
["ic"] = "@class.inner",
["al"] = "@loop.outer",
["il"] = "@loop.inner",
["ib"] = "@block.inner",
["ab"] = "@block.outer",
["ir"] = "@parameter.inner",
["ar"] = "@parameter.outer",
["a="] = "@assignment.outer",
["i="] = "@assignment.inner",
},
},
},
rainbow = {
enable = true,
extended_mode = true, -- Highlight also non-parentheses delimiters, boolean or table: lang -> boolean
max_file_lines = 2000, -- Do not enable for files with more than specified lines
},
})
end,
}

View File

@@ -1,8 +0,0 @@
return {
"folke/which-key.nvim",
event = "VeryLazy",
init = function()
vim.o.timeout = true
vim.o.timeoutlen = 300
end,
}

View File

@@ -1,47 +0,0 @@
-- Bootstrap Lazy.
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
vim.fn.system({
"git",
"clone",
"--filter=blob:none",
"https://github.com/folke/lazy.nvim.git",
"--branch=stable", -- latest stable release
lazypath,
})
end
vim.opt.rtp:prepend(lazypath)
require("lazy").setup({
dev = {
path = "~/LocalProjects/plugins",
fallback = true,
},
-- Import all the plugin configs in the 'plugin' directory
{ import = "user.plugin" },
-- Plugins that don't have a configuration file.
{
"folke/zen-mode.nvim",
opts = {},
},
{
"christoomey/vim-tmux-navigator",
lazy = false,
},
{ "NoahTheDuke/vim-just", ft = { "just" } },
{
"chipsenkbeil/distant.nvim",
version = "v0.*",
event = "VeryLazy",
},
}, {
checker = {
enabled = true,
notify = false,
},
change_detection = {
notify = false,
},
})
vim.keymap.set("n", "<leader>ll", "<CMD>Lazy<CR>", { desc = "Open [L]azy" })

View File

@@ -31,4 +31,11 @@ ls.add_snippets("lua", {
"})", "})",
}), }),
}), }),
s("c", {
c(1, {
t("1st"),
t("2nd"),
}),
}),
}) })

View File

@@ -11,8 +11,18 @@ local fmt = require("luasnip.extras.fmt").fmt
local rep = require("luasnip.extras").rep local rep = require("luasnip.extras").rep
-- Add snippets -- Add snippets
ls.add_snippets("swift", { ls.add_snippets("swift", {
-- Logging
s(
{ trig = "logg", desc = "Log a message" },
fmt('logger.{}("{}")', {
i(1),
i(2),
})
),
-- Add a dependency snippet. -- Add a dependency snippet.
s({ trig = "@d", desc = "Add a dependency." }, fmt("@Dependency(\\.{}) var {}", { i(1), rep(1) })), s({ trig = "@dep", desc = "Add a dependency." }, fmt("@Dependency(\\.{}) var {}", { i(1), rep(1) })),
-- Add a dependency client. -- Add a dependency client.
s( s(

7
scripts/arch/launch-webapp Executable file
View File

@@ -0,0 +1,7 @@
#!/bin/bash
# Adapted from https://github.com/basecamp/omarchy/tree/master?tab=readme-ov-file
#
browser="chromium.desktop"
exec setsid uwsm app -- $(sed -n 's/^Exec=\([^ ]*\).*/\1/p' {~/.local,~/.nix-profile,/usr}/share/applications/$browser 2>/dev/null | head -1) --app="$1" "${@:2}"

29
scripts/arch/toggle-desktop Executable file
View File

@@ -0,0 +1,29 @@
#!/usr/bin/env bash
# Workspace to hide everything in
HIDE_WS="special:hidden"
# File to store original workspace ID
STATE_FILE="/tmp/hypr_hide_state"
# Get current workspace ID
CUR_WS=$(hyprctl -j activeworkspace | jq -r '.id')
# Check if we're currently hidden
if [[ -f "$STATE_FILE" ]]; then
# Restore windows
ORIG_WS=$(cat "$STATE_FILE")
for win in $(hyprctl -j clients | jq -r '.[] | select(.workspace.name | contains("$HIDE_WS")) | .address'); do
hyprctl dispatch movetoworkspace "$ORIG_WS,address:$win"
hyprctl dispatch workspace "$ORIG_WS"
done
rm "$STATE_FILE"
else
# Hide all windows (move to special hidden workspace)
for win in $(hyprctl -j clients | jq -r ".[] | select(.workspace.id == $CUR_WS) | .address"); do
hyprctl dispatch movetoworkspace "$HIDE_WS,address:$win"
hyprctl dispatch togglespecialworkspace "$HIDE_WS"
done
rm "$STATE_FILE"
echo "$CUR_WS" >"$STATE_FILE"
fi

Some files were not shown because too many files have changed in this diff Show More