This commit is contained in:
Michael Thomson 2024-12-20 19:42:09 -05:00
parent ab70f1f9f9
commit abc55c6d4e
No known key found for this signature in database
GPG Key ID: 8EFECCD347C72F7D
9 changed files with 340 additions and 61 deletions

102
flake.lock generated
View File

@ -24,11 +24,11 @@
"flake-compat": {
"flake": false,
"locked": {
"lastModified": 1696426674,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
"lastModified": 1732722421,
"narHash": "sha256-HRJ/18p+WoXpWJkcdsk9St5ZiukCqSDgbOGFa8Okehg=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
"rev": "9ed2ac151eada2306ca8c418ebd97807bb08f6ac",
"type": "github"
},
"original": {
@ -75,11 +75,11 @@
]
},
"locked": {
"lastModified": 1730504689,
"narHash": "sha256-hgmguH29K2fvs9szpq2r3pz2/8cJd2LPS+b4tfNFCwE=",
"lastModified": 1733269028,
"narHash": "sha256-kVq/jAKKtbvWwbL9wf0SKDxtxsC5Gb+nlIYEFnyXhGA=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "506278e768c2a08bec68eb62932193e341f55c90",
"rev": "e37654df08605b510ad84eceaafcc7248495e843",
"type": "github"
},
"original": {
@ -135,11 +135,11 @@
"systems": "systems"
},
"locked": {
"lastModified": 1726560853,
"narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=",
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
@ -162,11 +162,11 @@
]
},
"locked": {
"lastModified": 1731363552,
"narHash": "sha256-vFta1uHnD29VUY4HJOO/D6p6rxyObnf+InnSMT4jlMU=",
"lastModified": 1732021966,
"narHash": "sha256-mnTbjpdqF0luOkou8ZFi2asa1N3AA2CchR/RqCNmsGE=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "cd1af27aa85026ac759d5d3fccf650abe7e1bbf0",
"rev": "3308484d1a443fc5bc92012435d79e80458fe43c",
"type": "github"
},
"original": {
@ -192,11 +192,11 @@
]
},
"locked": {
"lastModified": 1730814269,
"narHash": "sha256-fWPHyhYE6xvMI1eGY3pwBTq85wcy1YXqdzTZF+06nOg=",
"lastModified": 1732021966,
"narHash": "sha256-mnTbjpdqF0luOkou8ZFi2asa1N3AA2CchR/RqCNmsGE=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "d70155fdc00df4628446352fc58adc640cd705c2",
"rev": "3308484d1a443fc5bc92012435d79e80458fe43c",
"type": "github"
},
"original": {
@ -278,11 +278,11 @@
]
},
"locked": {
"lastModified": 1731535640,
"narHash": "sha256-2EckCJn4wxran/TsRiCOFcmVpep2m9EBKl99NBh2GnM=",
"lastModified": 1733317578,
"narHash": "sha256-anN/LcP5IuqEARvhPETg1vnbyG3IQ0wdvSAYEJfIQzA=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "35b055009afd0107b69c286fca34d2ad98940d57",
"rev": "ad48eb25cd0b00ce730da00fa1f8e6e6c27b397d",
"type": "github"
},
"original": {
@ -299,11 +299,11 @@
]
},
"locked": {
"lastModified": 1731235328,
"narHash": "sha256-NjavpgE9/bMe/ABvZpyHIUeYF1mqR5lhaep3wB79ucs=",
"lastModified": 1733175814,
"narHash": "sha256-zFOtOaqjzZfPMsm1mwu98syv3y+jziAq5DfWygaMtLg=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "60bb110917844d354f3c18e05450606a435d2d10",
"rev": "bf23fe41082aa0289c209169302afd3397092f22",
"type": "github"
},
"original": {
@ -350,11 +350,11 @@
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1731500640,
"narHash": "sha256-bxtcbR33ftcSA+7+E52i+cqWAdoCQNFpxR1180HRX48=",
"lastModified": 1733314815,
"narHash": "sha256-FxQzRALeGEfZg7ZA+ArlGBbs3Jtwd7Tr7+E6iucHKDA=",
"owner": "nix-community",
"repo": "neovim-nightly-overlay",
"rev": "1329ddcc318e77e4629eb629d39f7f7c9b2632f6",
"rev": "7545e949aa9bc2396130191100f1fbf9765bc448",
"type": "github"
},
"original": {
@ -366,11 +366,11 @@
"neovim-src": {
"flake": false,
"locked": {
"lastModified": 1731454739,
"narHash": "sha256-ihuASDo2BVZpUpsW6Z8Ll/xvczRPgGT/EGrrNt7NnwU=",
"lastModified": 1733247868,
"narHash": "sha256-TGXXXV/jWUBF2ZBiYt6RKIvUGpsefDe/RSXnUzejxMU=",
"owner": "neovim",
"repo": "neovim",
"rev": "1128d75550fa0b481b8953a194bae890d733a166",
"rev": "ae93c7f369a174f3d738ab55030de2c9dfc10c57",
"type": "github"
},
"original": {
@ -386,11 +386,11 @@
]
},
"locked": {
"lastModified": 1731454423,
"narHash": "sha256-TtwvgFxUa0wyptLhQbKaixgNW1UXf3+TDqfX3Kp63oM=",
"lastModified": 1733302587,
"narHash": "sha256-iIJoFsmQp0/nWRhO5c9uCGN4z2ZAJlYfqzyNBoiwASc=",
"owner": "LnL7",
"repo": "nix-darwin",
"rev": "6c71c49e2448e51ad830ed211024e6d0edc50116",
"rev": "e7a71f8ec55564f54791e0bd9274f2910c86f8f2",
"type": "github"
},
"original": {
@ -407,11 +407,11 @@
]
},
"locked": {
"lastModified": 1731153869,
"narHash": "sha256-3Ftf9oqOypcEyyrWJ0baVkRpvQqroK/SVBFLvU3nPuc=",
"lastModified": 1733105089,
"narHash": "sha256-Qs3YmoLYUJ8g4RkFj2rMrzrP91e4ShAioC9s+vG6ENM=",
"owner": "lnl7",
"repo": "nix-darwin",
"rev": "5c74ab862c8070cbf6400128a1b56abb213656da",
"rev": "c6b65d946097baf3915dd51373251de98199280d",
"type": "github"
},
"original": {
@ -422,11 +422,11 @@
},
"nixos-hardware": {
"locked": {
"lastModified": 1731403644,
"narHash": "sha256-T9V7CTucjRZ4Qc6pUEV/kpgNGzQbHWfGcfK6JJLfUeI=",
"lastModified": 1733217105,
"narHash": "sha256-fc6jTzIwCIVWTX50FtW6AZpuukuQWSEbPiyg6ZRGWFY=",
"owner": "NixOS",
"repo": "nixos-hardware",
"rev": "f6581f1c3b137086e42a08a906bdada63045f991",
"rev": "cceee0a31d2f01bcc98b2fbd591327c06a4ea4f9",
"type": "github"
},
"original": {
@ -438,11 +438,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1731245184,
"narHash": "sha256-vmLS8+x+gHRv1yzj3n+GTAEObwmhxmkkukB2DwtJRdU=",
"lastModified": 1733097829,
"narHash": "sha256-9hbb1rqGelllb4kVUCZ307G2k3/UhmA8PPGBoyuWaSw=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "aebe249544837ce42588aa4b2e7972222ba12e8f",
"rev": "2c15aa59df0017ca140d9ba302412298ab4bf22a",
"type": "github"
},
"original": {
@ -454,11 +454,11 @@
},
"nixpkgs_2": {
"locked": {
"lastModified": 1731139594,
"narHash": "sha256-IigrKK3vYRpUu+HEjPL/phrfh7Ox881er1UEsZvw9Q4=",
"lastModified": 1733212471,
"narHash": "sha256-M1+uCoV5igihRfcUKrr1riygbe73/dzNnzPsmaLCmpo=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "76612b17c0ce71689921ca12d9ffdc9c23ce40b2",
"rev": "55d15ad12a74eb7d4646254e13638ad0c4128776",
"type": "github"
},
"original": {
@ -483,11 +483,11 @@
"treefmt-nix": "treefmt-nix"
},
"locked": {
"lastModified": 1731527733,
"narHash": "sha256-12OpSgbLDiKmxvBXwVracIfGI9FpjFyHpa1r0Ho+NFA=",
"lastModified": 1733220378,
"narHash": "sha256-tWCskBne7LigfeXRWnUFJKKTLOYmmdqiwdqom2Sml1s=",
"owner": "nix-community",
"repo": "nixvim",
"rev": "f11a877bcc1d66cc8bd7990c704f91c1e99c7d08",
"rev": "78bfbf7b7eb7a1b6cf42e199547de55a55ba2cea",
"type": "github"
},
"original": {
@ -506,11 +506,11 @@
]
},
"locked": {
"lastModified": 1731060242,
"narHash": "sha256-43yLsOm/wxBbfYSNDWVJeVv5Ij+23X3BIjFUfsdx/6M=",
"lastModified": 1733006402,
"narHash": "sha256-BC1CecAQISV5Q4LZK72Gx0+faemOwaChiD9rMVfDPoA=",
"owner": "NuschtOS",
"repo": "search",
"rev": "ef493352f9e1f051e01a55c062731503a6b36b4e",
"rev": "16307548b7a1247291c84ae6a12c0aacb07dfba2",
"type": "github"
},
"original": {
@ -552,11 +552,11 @@
]
},
"locked": {
"lastModified": 1730321837,
"narHash": "sha256-vK+a09qq19QNu2MlLcvN4qcRctJbqWkX7ahgPZ/+maI=",
"lastModified": 1732894027,
"narHash": "sha256-2qbdorpq0TXHBWbVXaTqKoikN4bqAtAplTwGuII+oAc=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "746901bb8dba96d154b66492a29f5db0693dbfcc",
"rev": "6209c381904cab55796c5d7350e89681d3b2a8ef",
"type": "github"
},
"original": {

View File

@ -7,6 +7,7 @@
imports = [
inputs.home-manager.darwinModules.default
../../modules/nix-darwin/system.nix
../../modules/nix-darwin/aerospace.nix
];
nixpkgs.hostPlatform = "aarch64-darwin";
@ -48,6 +49,9 @@
cmd - return : kitty
'';
};
aerospace = {
enable = true;
};
};
home-manager = {

View File

@ -15,6 +15,7 @@
../../modules/home-manager/kubernetes.nix
../../modules/home-manager/nix-index.nix
../../modules/home-manager/bitwarden.nix
../../modules/home-manager/latex.nix
];
home.username = "mthomson";
home.homeDirectory = "/Users/mthomson";
@ -51,9 +52,19 @@
enable = true;
settings.updates.auto_update = true;
};
helix = {
enable = true;
};
neovide = {
enable = true;
settings = {};
};
};
home.packages = with pkgs; [
slides
graph-easy
obsidian
];
programs.home-manager.enable = true;

View File

@ -8,18 +8,18 @@
font = {
name = "JetBrainsMono Nerd Font Mono";
size = 12;
package = pkgs.nerdfonts.override {fonts = ["JetBrainsMono"];};
package = pkgs.nerd-fonts.jetbrains-mono;
};
shellIntegration = {
enableZshIntegration = true;
};
themeFile = "kanagawa";
themeFile = "Modus_Vivendi";
# darwinLaunchOptions = [
# "--single-instance"
# ];
settings = {
background_opacity = "0.9";
background_blur = 5;
};
# settings = {
# background_opacity = "0.9";
# background_blur = 5;
# };
};
}

View File

@ -0,0 +1,11 @@
{
pkgs,
config,
...
}: {
programs = {
texlive = {
enable = true;
};
};
}

View File

@ -2,6 +2,7 @@
inputs,
pkgs,
config,
lib,
...
}: {
imports = [
@ -15,11 +16,12 @@ config,
programs.nixvim = {
enable = true;
package = inputs.neovim-nightly-overlay.packages.${pkgs.system}.default;
defaultEditor = true;
vimdiffAlias = true;
colorschemes = {
kanagawa = {
modus = {
enable = true;
};
};
@ -87,6 +89,27 @@ config,
key = "<leader>zn";
action = "<cmd>ZkNew<CR>";
}
# quickfix/location list
{
mode = "n";
key = "]q";
action = "<cmd>cnext<CR>zz";
}
{
mode = "n";
key = "[q";
action = "<cmd>cprev<CR>zz";
}
{
mode = "n";
key = "]l";
action = "<cmd>lnext<CR>zz";
}
{
mode = "n";
key = "[l";
action = "<cmd>lprev<CR>zz";
}
# gitsigns
{
mode = "n";
@ -284,6 +307,9 @@ config,
sleuth = {
enable = true;
};
spectre = {
enable = true;
};
treesitter = {
enable = true;
folding = true;
@ -327,6 +353,7 @@ config,
ai = {
n_lines = 500;
};
splitjoin = {};
surround = {};
statusline = {
use_icons = true;
@ -334,6 +361,7 @@ config,
comment = {};
trailspace = {};
pick = {};
jump = {};
};
};
zk = {
@ -342,9 +370,36 @@ config,
picker = "minipick";
};
};
render-markdown = {
obsidian = {
enable = true;
settings = {
completion = {
min_chars = 1;
nvim_cmp = true;
};
notes_subir = "notes";
new_notes_location = "notes_subdir";
templates = {
folder = "templates";
};
workspaces = [
{
name = "personal";
path = "~/vaults/personal";
}
];
picker = {
name = "mini.pick";
};
daily_notes = {
folder = "dailies";
default_tags = [ "type/daily" ];
};
};
};
# render-markdown = {
# enable = true;
# };
friendly-snippets = {
enable = true;
};
@ -359,7 +414,6 @@ config,
};
cmp = {
enable = true;
settings = {
snippet = {
expand = ''
@ -470,6 +524,9 @@ config,
bashls = {
enable = true;
};
clangd = {
enable = true;
};
};
keymaps = {
diagnostic = {
@ -497,6 +554,12 @@ config,
};
};
};
nvim-jdtls = {
enable = true;
cmd = [
(lib.getExe pkgs.jdt-language-server)
];
};
};
};
}

View File

@ -12,6 +12,12 @@
};
nushell = {
enable = true;
extraConfig = ''
edit_mode: vim
'';
};
direnv = {
enableNushellIntegration = true;
};
zoxide = {
enable = true;

View File

@ -8,7 +8,6 @@
{
programs = {
tmux = {
shell = "${pkgs.zsh}/bin/zsh";
enable = true;
shortcut = "Space";
mouse = true;

View File

@ -0,0 +1,185 @@
{
services = {
aerospace = {
enable = true;
settings = {
# You can use it to add commands that run after login to macOS user session.
# 'start-at-login' needs to be 'true' for 'after-login-command' to work
# Available commands: https://nikitabobko.github.io/AeroSpace/commands
after-login-command = [];
# You can use it to add commands that run after AeroSpace startup.
# 'after-startup-command' is run after 'after-login-command'
# Available commands : https://nikitabobko.github.io/AeroSpace/commands
after-startup-command = [];
# Start AeroSpace at login
start-at-login = false;
# Normalizations. See: https://nikitabobko.github.io/AeroSpace/guide#normalization
enable-normalization-flatten-containers = true;
enable-normalization-opposite-orientation-for-nested-containers = true;
# See: https://nikitabobko.github.io/AeroSpace/guide#layouts
# The 'accordion-padding' specifies the size of accordion padding
# You can set 0 to disable the padding feature
accordion-padding = 30;
# Possible values: tiles|accordion
default-root-container-layout = "tiles";
# Possible values: horizontal|vertical|auto
# 'auto' means: wide monitor (anything wider than high) gets horizontal orientation,
# tall monitor (anything higher than wide) gets vertical orientation
default-root-container-orientation = "auto";
# Mouse follows focus when focused monitor changes
# Drop it from your config, if you don't like this behavior
# See https://nikitabobko.github.io/AeroSpace/guide#on-focus-changed-callbacks
# See https://nikitabobko.github.io/AeroSpace/commands#move-mouse
# Fallback value (if you omit the key): on-focused-monitor-changed = []
on-focused-monitor-changed = ["move-mouse monitor-lazy-center"];
# You can effectively turn off macOS "Hide application" (cmd-h) feature by toggling this flag
# Useful if you don't use this macOS feature, but accidentally hit cmd-h or cmd-alt-h key
# Also see: https://nikitabobko.github.io/AeroSpace/goodies#disable-hide-app
automatically-unhide-macos-hidden-apps = false;
key-mapping = {
# Possible values: (qwerty|dvorak)
# See https://nikitabobko.github.io/AeroSpace/guide#key-mapping
preset = "qwerty";
};
# Gaps between windows (inner-*) and between monitor edges (outer-*).
# Possible values:
# - Constant: gaps.outer.top = 8
# - Per monitor: gaps.outer.top = [{ monitor.main = 16 }, { monitor."some-pattern" = 32 }, 24]
# In this example, 24 is a default value when there is no match.
# Monitor pattern is the same as for 'workspace-to-monitor-force-assignment'.
# See: https://nikitabobko.github.io/AeroSpace/guide#assign-workspaces-to-monitors
gaps = {
inner.horizontal = 8;
inner.vertical = 8;
outer.left = 8;
outer.bottom = 8;
outer.top = 8;
outer.right = 8;
};
mode = {
main.binding = {
# See: https://nikitabobko.github.io/AeroSpace/commands#layout
alt-slash = "layout tiles horizontal vertical";
alt-comma = "layout accordion horizontal vertical";
# See: https://nikitabobko.github.io/AeroSpace/commands#focus
alt-h = "focus left";
alt-j = "focus down";
alt-k = "focus up";
alt-l = "focus right";
# See: https://nikitabobko.github.io/AeroSpace/commands#move
alt-shift-h = "move left";
alt-shift-j = "move down";
alt-shift-k = "move up";
alt-shift-l = "move right";
# See: https://nikitabobko.github.io/AeroSpace/commands#resize
alt-shift-minus = "resize smart -50";
alt-shift-equal = "resize smart +50";
# See: https://nikitabobko.github.io/AeroSpace/commands#workspace
alt-1 = "workspace 1";
alt-2 = "workspace 2";
alt-3 = "workspace 3";
alt-4 = "workspace 4";
alt-5 = "workspace 5";
alt-6 = "workspace 6";
alt-7 = "workspace 7";
alt-8 = "workspace 8";
alt-9 = "workspace 9";
alt-a = "workspace A"; # In your config, you can drop workspace bindings that you don"t need
alt-b = "workspace B";
alt-c = "workspace C";
alt-d = "workspace D";
alt-e = "workspace E";
alt-f = "workspace F";
alt-g = "workspace G";
alt-i = "workspace I";
alt-m = "workspace M";
alt-n = "workspace N";
alt-o = "workspace O";
alt-p = "workspace P";
alt-q = "workspace Q";
alt-r = "workspace R";
alt-s = "workspace S";
alt-t = "workspace T";
alt-u = "workspace U";
alt-v = "workspace V";
alt-w = "workspace W";
alt-x = "workspace X";
alt-y = "workspace Y";
alt-z = "workspace Z";
# See: https://nikitabobko.github.io/AeroSpace/commands#move-node-to-workspace
alt-shift-1 = "move-node-to-workspace 1";
alt-shift-2 = "move-node-to-workspace 2";
alt-shift-3 = "move-node-to-workspace 3";
alt-shift-4 = "move-node-to-workspace 4";
alt-shift-5 = "move-node-to-workspace 5";
alt-shift-6 = "move-node-to-workspace 6";
alt-shift-7 = "move-node-to-workspace 7";
alt-shift-8 = "move-node-to-workspace 8";
alt-shift-9 = "move-node-to-workspace 9";
alt-shift-a = "move-node-to-workspace A";
alt-shift-b = "move-node-to-workspace B";
alt-shift-c = "move-node-to-workspace C";
alt-shift-d = "move-node-to-workspace D";
alt-shift-e = "move-node-to-workspace E";
alt-shift-f = "move-node-to-workspace F";
alt-shift-g = "move-node-to-workspace G";
alt-shift-i = "move-node-to-workspace I";
alt-shift-m = "move-node-to-workspace M";
alt-shift-n = "move-node-to-workspace N";
alt-shift-o = "move-node-to-workspace O";
alt-shift-p = "move-node-to-workspace P";
alt-shift-q = "move-node-to-workspace Q";
alt-shift-r = "move-node-to-workspace R";
alt-shift-s = "move-node-to-workspace S";
alt-shift-t = "move-node-to-workspace T";
alt-shift-u = "move-node-to-workspace U";
alt-shift-v = "move-node-to-workspace V";
alt-shift-w = "move-node-to-workspace W";
alt-shift-x = "move-node-to-workspace X";
alt-shift-y = "move-node-to-workspace Y";
alt-shift-z = "move-node-to-workspace Z";
# See: https://nikitabobko.github.io/AeroSpace/commands#workspace-back-and-forth
alt-tab = "workspace-back-and-forth";
# See: https://nikitabobko.github.io/AeroSpace/commands#move-workspace-to-monitor
alt-shift-tab = "move-workspace-to-monitor --wrap-around next";
# See: https://nikitabobko.github.io/AeroSpace/commands#mode
alt-shift-semicolon = "mode service";
};
service.binding = {
esc = ["reload-config" "mode main"];
r = ["flatten-workspace-tree" "mode main"]; # reset layout
f = ["layout floating tiling" "mode main"]; # Toggle between floating and tiling layout
backspace = ["close-all-windows-but-current" "mode main"];
# sticky is not yet supported https://github.com/nikitabobko/AeroSpace/issues/2
#s = ["layout sticky tiling" "mode main"]
alt-shift-h = ["join-with left" "mode main"];
alt-shift-j = ["join-with down" "mode main"];
alt-shift-k = ["join-with up" "mode main"];
alt-shift-l = ["join-with right" "mode main"];
};
};
};
};
};
}