mirror of
https://github.com/nmasur/dotfiles
synced 2025-08-23 23:04:41 +00:00
Compare commits
33 Commits
d756b0d394
...
master
Author | SHA1 | Date | |
---|---|---|---|
|
e64a9f14d0 | ||
|
e2e179c0e5 | ||
|
e975db7385 | ||
|
08ec8ce4b8 | ||
|
7388eed876 | ||
|
e53d9eb1a9 | ||
|
b956f9dd82 | ||
|
d7969cc8fc | ||
|
21d66d2be1 | ||
|
518848181a | ||
|
f9bf763f91 | ||
|
ca20fa0732 | ||
|
56d10c2765 | ||
|
3b6b4bd2e6 | ||
|
6f06b0a0c5 | ||
|
d3e69faf2f | ||
|
4755a27089 | ||
|
57303d61e9 | ||
|
b67c90dae0 | ||
|
2ff9254a0e | ||
|
59a8a6dc3f | ||
|
5943a6682e | ||
|
d38f767d03 | ||
|
ebd79aa348 | ||
|
f778bc58ac | ||
|
eb1c08f5da | ||
|
3e7afdc0b3 | ||
|
45aa5d01e5 | ||
|
6a9d1c14a7 | ||
|
3fe4843032 | ||
|
6a36408416 | ||
|
25c7aec532 | ||
|
b87db529ae |
48
flake.lock
generated
48
flake.lock
generated
@@ -22,11 +22,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1751313918,
|
"lastModified": 1755825449,
|
||||||
"narHash": "sha256-HsJM3XLa43WpG+665aGEh8iS8AfEwOIQWk3Mke3e7nk=",
|
"narHash": "sha256-XkiN4NM9Xdy59h69Pc+Vg4PxkSm9EWl6u7k6D5FZ5cM=",
|
||||||
"owner": "lnl7",
|
"owner": "lnl7",
|
||||||
"repo": "nix-darwin",
|
"repo": "nix-darwin",
|
||||||
"rev": "e04a388232d9a6ba56967ce5b53a8a6f713cdfcf",
|
"rev": "8df64f819698c1fee0c2969696f54a843b2231e8",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -43,11 +43,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1752718651,
|
"lastModified": 1755519972,
|
||||||
"narHash": "sha256-PkaR0qmyP9q/MDN3uYa+RLeBA0PjvEQiM0rTDDBXkL8=",
|
"narHash": "sha256-bU4nqi3IpsUZJeyS8Jk85ytlX61i4b0KCxXX9YcOgVc=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "disko",
|
"repo": "disko",
|
||||||
"rev": "d5ad4485e6f2edcc06751df65c5e16572877db88",
|
"rev": "4073ff2f481f9ef3501678ff479ed81402caae6d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -156,11 +156,11 @@
|
|||||||
"rust-overlay": "rust-overlay"
|
"rust-overlay": "rust-overlay"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1752851830,
|
"lastModified": 1755869734,
|
||||||
"narHash": "sha256-6MHI6FRiui4MR/Ek3s5yO84UVL7d1bPYdzF5LF0ZyCY=",
|
"narHash": "sha256-d9hwkPwlpbih4DVbsV0zrK5i2J6cRT7ifrDYK5LZQs8=",
|
||||||
"owner": "helix-editor",
|
"owner": "helix-editor",
|
||||||
"repo": "helix",
|
"repo": "helix",
|
||||||
"rev": "4418e338e8ea055663c6029080768572d159dba1",
|
"rev": "22a3b10dd8ab907367ae1fe57d9703e22b30d391",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -176,11 +176,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1752814804,
|
"lastModified": 1755914636,
|
||||||
"narHash": "sha256-irfg7lnfEpJY+3Cffkluzp2MTVw1Uq9QGxFp6qadcXI=",
|
"narHash": "sha256-VJ+Gm6YsHlPfUCpmRQxvdiZW7H3YPSrdVOewQHAhZN8=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "d0300c8808e41da81d6edfc202f3d3833c157daf",
|
"rev": "8b55a6ac58b678199e5bba701aaff69e2b3281c0",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -222,11 +222,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1752588843,
|
"lastModified": 1755344765,
|
||||||
"narHash": "sha256-T4vw0himO8ami5uR7cry+El9HlQkqNcy/UtIFwkcTMw=",
|
"narHash": "sha256-k/Cvh/mzb5lSvilKdgwNBCyAyYmD8YPr1nc0sTSgwxI=",
|
||||||
"owner": "gytis-ivaskevicius",
|
"owner": "gytis-ivaskevicius",
|
||||||
"repo": "nix2vim",
|
"repo": "nix2vim",
|
||||||
"rev": "94f136cece965e33aa4ccccb4ca1af04772851f4",
|
"rev": "78467c8de07719f92397179844bf75cdf2e58b83",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -273,11 +273,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1752687322,
|
"lastModified": 1755615617,
|
||||||
"narHash": "sha256-RKwfXA4OZROjBTQAl9WOZQFm7L8Bo93FQwSJpAiSRvo=",
|
"narHash": "sha256-HMwfAJBdrr8wXAkbGhtcby1zGFvs+StOp19xNsbqdOg=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "6e987485eb2c77e5dcc5af4e3c70843711ef9251",
|
"rev": "20075955deac2583bb12f07151c2df830ef346b4",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -327,11 +327,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1752895120,
|
"lastModified": 1755918818,
|
||||||
"narHash": "sha256-kzJ85DF2QSSDA34Pw6mh2Y2WQM1RWBjRVMD0/I3Iejg=",
|
"narHash": "sha256-a7k/fml8k4CxIcVW26luwqVl3lsRMNXBRCyC8uSF0GA=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nur",
|
"repo": "nur",
|
||||||
"rev": "d68ea61b416a6a14c036889652a4abe2024c3359",
|
"rev": "1a47d83c521c098debd6d1f2c2ae313a5bb729f9",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -449,11 +449,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1752682362,
|
"lastModified": 1755261305,
|
||||||
"narHash": "sha256-ZNIpqCG/CfhmV+TgIeyO/XbhDjSWpwWokHM44j0Mn0w=",
|
"narHash": "sha256-EOqCupB5X5WoGVHVcfOZcqy0SbKWNuY3kq+lj1wHdu8=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "NixOS-WSL",
|
"repo": "NixOS-WSL",
|
||||||
"rev": "20001f9bf0aaf2b1c307e43a5eec8cf8f800fe14",
|
"rev": "203a7b463f307c60026136dd1191d9001c43457f",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@@ -33,9 +33,6 @@ rec {
|
|||||||
|
|
||||||
system.stateVersion = "23.05";
|
system.stateVersion = "23.05";
|
||||||
|
|
||||||
# Overrides
|
|
||||||
services.automatic-timezoned.enable = false;
|
|
||||||
|
|
||||||
# Not sure what's necessary but too afraid to remove anything
|
# Not sure what's necessary but too afraid to remove anything
|
||||||
boot.initrd.availableKernelModules = [
|
boot.initrd.availableKernelModules = [
|
||||||
"xhci_pci"
|
"xhci_pci"
|
||||||
|
@@ -74,6 +74,8 @@ in
|
|||||||
"svg.context-properties.content.enabled" = true; # Sidebery styling
|
"svg.context-properties.content.enabled" = true; # Sidebery styling
|
||||||
"browser.tabs.hoverPreview.enabled" = false; # Disable tab previews
|
"browser.tabs.hoverPreview.enabled" = false; # Disable tab previews
|
||||||
"browser.tabs.hoverPreview.showThumbnails" = false; # Disable tab previews
|
"browser.tabs.hoverPreview.showThumbnails" = false; # Disable tab previews
|
||||||
|
"browser.gesture.swipe.left" = "cmd_scrollLeft"; # Disable swipe to go back
|
||||||
|
"browser.gesture.swipe.right" = "cmd_scrollRight"; # Disable swipe to go forward
|
||||||
};
|
};
|
||||||
userChrome = ''
|
userChrome = ''
|
||||||
:root {
|
:root {
|
||||||
|
@@ -1,6 +1,5 @@
|
|||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
pkgs,
|
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
@@ -66,6 +65,18 @@ in
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Personal jj config
|
||||||
|
programs.jujutsu.settings = {
|
||||||
|
"--scope" = [
|
||||||
|
{
|
||||||
|
"--when".repositories = [ "~/dev/personal" ];
|
||||||
|
user = {
|
||||||
|
name = cfg.personal.name;
|
||||||
|
email = cfg.personal.email;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -130,6 +130,7 @@ in
|
|||||||
|
|
||||||
ignores = [
|
ignores = [
|
||||||
"content/.obsidian/**"
|
"content/.obsidian/**"
|
||||||
|
".direnv/**"
|
||||||
];
|
];
|
||||||
|
|
||||||
settings = {
|
settings = {
|
||||||
@@ -146,6 +147,10 @@ in
|
|||||||
"keep_primary_selection"
|
"keep_primary_selection"
|
||||||
];
|
];
|
||||||
|
|
||||||
|
# Quit shortcuts
|
||||||
|
space.q = ":quit-all";
|
||||||
|
space.x = ":quit-all!";
|
||||||
|
|
||||||
# Enable and disable inlay hints
|
# Enable and disable inlay hints
|
||||||
space.H = ":toggle lsp.display-inlay-hints";
|
space.H = ":toggle lsp.display-inlay-hints";
|
||||||
|
|
||||||
@@ -160,7 +165,7 @@ in
|
|||||||
space.l = [
|
space.l = [
|
||||||
":write-all"
|
":write-all"
|
||||||
":new"
|
":new"
|
||||||
":insert-output ${lib.getExe pkgs.lazygit}"
|
":insert-output ${lib.getExe pkgs.lazygit} > /dev/tty"
|
||||||
":buffer-close!"
|
":buffer-close!"
|
||||||
":redraw"
|
":redraw"
|
||||||
":reload-all"
|
":reload-all"
|
||||||
@@ -168,6 +173,9 @@ in
|
|||||||
":set mouse true"
|
":set mouse true"
|
||||||
];
|
];
|
||||||
|
|
||||||
|
# Commandline git blame
|
||||||
|
space.B = ":echo %sh{git log -n1 --date=short --pretty=format:'%%h %%ad %%s' $(git blame -L %{cursor_line},+1 \"%{buffer_name}\" | cut -d' ' -f1)}";
|
||||||
|
|
||||||
# Open yazi
|
# Open yazi
|
||||||
# https://github.com/sxyazi/yazi/pull/2461
|
# https://github.com/sxyazi/yazi/pull/2461
|
||||||
# Won't work until next Helix release
|
# Won't work until next Helix release
|
||||||
@@ -195,6 +203,27 @@ in
|
|||||||
"paste_before"
|
"paste_before"
|
||||||
];
|
];
|
||||||
|
|
||||||
|
A-S-ret = [
|
||||||
|
"open_above"
|
||||||
|
"normal_mode"
|
||||||
|
];
|
||||||
|
A-ret = [
|
||||||
|
"open_below"
|
||||||
|
"normal_mode"
|
||||||
|
];
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
keys.insert = {
|
||||||
|
# Allows not continuing the comment
|
||||||
|
"A-ret" = [
|
||||||
|
"insert_newline"
|
||||||
|
"extend_to_line_bounds"
|
||||||
|
"delete_selection"
|
||||||
|
"insert_newline"
|
||||||
|
"move_line_up"
|
||||||
|
"insert_mode"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
editor = {
|
editor = {
|
||||||
@@ -216,10 +245,10 @@ in
|
|||||||
|
|
||||||
# Show hidden files
|
# Show hidden files
|
||||||
file-picker = {
|
file-picker = {
|
||||||
hidden = false;
|
hidden = false; # Show hidden files
|
||||||
git-ignore = true;
|
git-ignore = true; # Skip gitignore files
|
||||||
git-global = true;
|
git-global = true; # Skip global gitignore files
|
||||||
git-exclude = true;
|
git-exclude = true; # Skip excluded files
|
||||||
};
|
};
|
||||||
|
|
||||||
# Show whitespace visible to the user
|
# Show whitespace visible to the user
|
||||||
@@ -322,7 +351,7 @@ in
|
|||||||
bg = config.theme.colors.base00;
|
bg = config.theme.colors.base00;
|
||||||
};
|
};
|
||||||
"ui.cursor" = {
|
"ui.cursor" = {
|
||||||
fg = config.theme.colors.base0A;
|
fg = config.theme.colors.base04;
|
||||||
modifiers = [ "reversed" ];
|
modifiers = [ "reversed" ];
|
||||||
};
|
};
|
||||||
"ui.cursor.insert" = {
|
"ui.cursor.insert" = {
|
||||||
@@ -334,11 +363,11 @@ in
|
|||||||
bg = config.theme.colors.base01;
|
bg = config.theme.colors.base01;
|
||||||
};
|
};
|
||||||
"ui.cursor.match" = {
|
"ui.cursor.match" = {
|
||||||
fg = config.theme.colors.base0A;
|
fg = config.theme.colors.base03;
|
||||||
modifiers = [ "reversed" ];
|
modifiers = [ "reversed" ];
|
||||||
};
|
};
|
||||||
"ui.cursor.select" = {
|
"ui.cursor.select" = {
|
||||||
fg = config.theme.colors.base0A;
|
fg = config.theme.colors.base04;
|
||||||
modifiers = [ "reversed" ];
|
modifiers = [ "reversed" ];
|
||||||
};
|
};
|
||||||
"ui.gutter" = {
|
"ui.gutter" = {
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
|
pkgs,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
@@ -22,8 +23,18 @@ in
|
|||||||
name = config.programs.git.userName;
|
name = config.programs.git.userName;
|
||||||
email = config.programs.git.userEmail;
|
email = config.programs.git.userEmail;
|
||||||
};
|
};
|
||||||
|
ui.paginate = "never";
|
||||||
|
|
||||||
|
# Automatically snapshot when files change
|
||||||
|
fsmonitor.backend = "watchman";
|
||||||
|
fsmonitor.watchman.register-snapshot-trigger = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
home.packages = [
|
||||||
|
# Required for the fsmonitor to auto-snapshot
|
||||||
|
pkgs.watchman
|
||||||
|
];
|
||||||
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@@ -24,7 +24,7 @@ in
|
|||||||
# These are useful for triggering from zellij (rather than running directly in the shell)
|
# These are useful for triggering from zellij (rather than running directly in the shell)
|
||||||
nmasur.presets.programs.nixpkgs.commands.rebuildNixos = pkgs.writeShellScriptBin "rebuild-darwin" ''
|
nmasur.presets.programs.nixpkgs.commands.rebuildNixos = pkgs.writeShellScriptBin "rebuild-darwin" ''
|
||||||
git -C ${config.nmasur.presets.programs.dotfiles.path} add --intent-to-add --all
|
git -C ${config.nmasur.presets.programs.dotfiles.path} add --intent-to-add --all
|
||||||
darwin-rebuild switch --flake "${config.nmasur.presets.programs.dotfiles.path}#${config.nmasur.settings.host}"
|
sudo darwin-rebuild switch --flake "${config.nmasur.presets.programs.dotfiles.path}#${config.nmasur.settings.host}"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
programs.fish = {
|
programs.fish = {
|
||||||
@@ -40,13 +40,13 @@ in
|
|||||||
rebuild-darwin = {
|
rebuild-darwin = {
|
||||||
body = ''
|
body = ''
|
||||||
git -C ${config.nmasur.presets.programs.dotfiles.path} add --intent-to-add --all
|
git -C ${config.nmasur.presets.programs.dotfiles.path} add --intent-to-add --all
|
||||||
echo "darwin-rebuild switch --flake ${config.nmasur.presets.programs.dotfiles.path}#lookingglass"
|
echo "sudo darwin-rebuild switch --flake ${config.nmasur.presets.programs.dotfiles.path}#lookingglass"
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
rebuild-darwin-offline = {
|
rebuild-darwin-offline = {
|
||||||
body = ''
|
body = ''
|
||||||
git -C ${config.nmasur.presets.programs.dotfiles.path} add --intent-to-add --all
|
git -C ${config.nmasur.presets.programs.dotfiles.path} add --intent-to-add --all
|
||||||
echo "darwin-rebuild switch --option substitute false --flake ${config.nmasur.presets.programs.dotfiles.path}#lookingglass"
|
echo "sudo darwin-rebuild switch --option substitute false --flake ${config.nmasur.presets.programs.dotfiles.path}#lookingglass"
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
rebuild-home = lib.mkForce {
|
rebuild-home = lib.mkForce {
|
||||||
|
@@ -35,6 +35,7 @@ in
|
|||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
|
|
||||||
home.packages = [
|
home.packages = [
|
||||||
|
pkgs.nh # Allows rebuilding with a cleaner TUI
|
||||||
cfg.commands.rebuildHome
|
cfg.commands.rebuildHome
|
||||||
cfg.commands.rebuildNixos
|
cfg.commands.rebuildNixos
|
||||||
];
|
];
|
||||||
|
@@ -19,6 +19,7 @@ in
|
|||||||
enable = true;
|
enable = true;
|
||||||
enableFishIntegration = true;
|
enableFishIntegration = true;
|
||||||
enableBashIntegration = true;
|
enableBashIntegration = true;
|
||||||
|
enableTransience = true; # Replace previous prompts with custom string
|
||||||
settings = {
|
settings = {
|
||||||
add_newline = false; # Don't print new line at the start of the prompt
|
add_newline = false; # Don't print new line at the start of the prompt
|
||||||
format = lib.concatStrings [
|
format = lib.concatStrings [
|
||||||
@@ -80,6 +81,17 @@ in
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
programs.fish = {
|
||||||
|
functions = {
|
||||||
|
# Adjust the prompt in previous commands
|
||||||
|
starship_transient_prompt_func = {
|
||||||
|
body = "echo '$ '";
|
||||||
|
};
|
||||||
|
starship_transient_rprompt_func = {
|
||||||
|
body = "echo ' '";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@@ -7,6 +7,15 @@
|
|||||||
|
|
||||||
let
|
let
|
||||||
cfg = config.nmasur.presets.programs.zellij;
|
cfg = config.nmasur.presets.programs.zellij;
|
||||||
|
|
||||||
|
zellij-switch-to-last = pkgs.writeShellScriptBin "zellij-switch-to-last" ''
|
||||||
|
TARGET_SESSION=$(cat ~/.local/state/zellij-last-session)
|
||||||
|
if [ -z "$TARGET_SESSION" ]; then
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
echo "$ZELLIJ_SESSION_NAME" > ~/.local/state/zellij-last-session
|
||||||
|
zellij pipe --plugin file:$(which zellij-switch.wasm) -- "--session $TARGET_SESSION"
|
||||||
|
'';
|
||||||
in
|
in
|
||||||
|
|
||||||
{
|
{
|
||||||
@@ -31,6 +40,7 @@ in
|
|||||||
if test "$TARGET_DIR" = $(pwd)
|
if test "$TARGET_DIR" = $(pwd)
|
||||||
return 1
|
return 1
|
||||||
end
|
end
|
||||||
|
echo "$ZELLIJ_SESSION_NAME" > ~/.local/state/zellij-last-session
|
||||||
zellij pipe --plugin file:$(which zellij-switch.wasm) -- "--cwd $TARGET_DIR --layout default --session $(basename $TARGET_DIR)"
|
zellij pipe --plugin file:$(which zellij-switch.wasm) -- "--cwd $TARGET_DIR --layout default --session $(basename $TARGET_DIR)"
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
@@ -69,13 +79,13 @@ in
|
|||||||
programs.zellij = {
|
programs.zellij = {
|
||||||
|
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
|
# Auto start on shell init
|
||||||
enableBashIntegration = true;
|
enableBashIntegration = true;
|
||||||
enableFishIntegration = true;
|
enableFishIntegration = true;
|
||||||
enableZshIntegration = true;
|
enableZshIntegration = true;
|
||||||
|
attachExistingSession = true;
|
||||||
# Not yet available in unstable
|
exitShellOnExit = false;
|
||||||
# attachExistingSession = true;
|
|
||||||
# exitShellOnExit = true;
|
|
||||||
|
|
||||||
settings = {
|
settings = {
|
||||||
default_mode = "locked";
|
default_mode = "locked";
|
||||||
@@ -109,6 +119,14 @@ in
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
shared = {
|
shared = {
|
||||||
|
"bind \"Alt Shift s\"" = {
|
||||||
|
Run = {
|
||||||
|
_args = [
|
||||||
|
(lib.getExe zellij-switch-to-last)
|
||||||
|
];
|
||||||
|
close_on_exit = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
"bind \"Alt Shift p\"" = {
|
"bind \"Alt Shift p\"" = {
|
||||||
Run = {
|
Run = {
|
||||||
_args = [
|
_args = [
|
||||||
@@ -167,6 +185,19 @@ in
|
|||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
"bind \"Alt Shift j\"" = {
|
||||||
|
Run = {
|
||||||
|
_args = [
|
||||||
|
(lib.getExe pkgs.lazyjj)
|
||||||
|
];
|
||||||
|
close_on_exit = true;
|
||||||
|
floating = true;
|
||||||
|
x = "1%";
|
||||||
|
y = "1%";
|
||||||
|
width = "99%";
|
||||||
|
height = "99%";
|
||||||
|
};
|
||||||
|
};
|
||||||
"bind \"Super Shift ]\"" = {
|
"bind \"Super Shift ]\"" = {
|
||||||
GoToNextTab = { };
|
GoToNextTab = { };
|
||||||
};
|
};
|
||||||
@@ -190,11 +221,6 @@ in
|
|||||||
_args = [ "scroll" ];
|
_args = [ "scroll" ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
"bind \"Alt k\"" = lib.mkIf pkgs.stdenv.isLinux {
|
|
||||||
SwitchToMode = {
|
|
||||||
_args = [ "scroll" ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
"bind \"Super Shift e\"" = lib.mkIf pkgs.stdenv.isDarwin {
|
"bind \"Super Shift e\"" = lib.mkIf pkgs.stdenv.isDarwin {
|
||||||
EditScrollback = { };
|
EditScrollback = { };
|
||||||
SwitchToMode = {
|
SwitchToMode = {
|
||||||
|
@@ -214,9 +214,9 @@ in
|
|||||||
cfg.commands.lockScreen != null
|
cfg.commands.lockScreen != null
|
||||||
) "exec ${cfg.commands.lockScreen}";
|
) "exec ${cfg.commands.lockScreen}";
|
||||||
"${modifier}+Mod1+h" =
|
"${modifier}+Mod1+h" =
|
||||||
''exec --no-startup-id ${lib.getExe cfg.terminal} --command sh -c "${pkgs.home-manager}/bin/home-manager switch --flake ${config.nmasur.presets.programs.dotfiles.path}#''${hostname} || read" '';
|
''exec --no-startup-id ${lib.getExe cfg.terminal} --command="${pkgs.home-manager}/bin/home-manager switch --flake ${config.nmasur.presets.programs.dotfiles.path}#''${hostname} || read" '';
|
||||||
"${modifier}+Mod1+r" =
|
"${modifier}+Mod1+r" =
|
||||||
"exec --no-startup-id ${lib.getExe cfg.terminal} --command sh -c 'doas nixos-rebuild switch --flake ${config.nmasur.presets.programs.dotfiles.path} || read'";
|
"exec --no-startup-id ${lib.getExe cfg.terminal} --command='doas nixos-rebuild switch --flake ${config.nmasur.presets.programs.dotfiles.path} || read'";
|
||||||
|
|
||||||
# Window options
|
# Window options
|
||||||
"${modifier}+q" = "kill";
|
"${modifier}+q" = "kill";
|
||||||
|
@@ -17,10 +17,7 @@ in
|
|||||||
|
|
||||||
nmasur.presets.programs = {
|
nmasur.presets.programs = {
|
||||||
zed-editor.enable = lib.mkDefault true;
|
zed-editor.enable = lib.mkDefault true;
|
||||||
ghostty.enable = lib.mkDefault true;
|
jujutsu.enable = lib.mkDefault true;
|
||||||
helix.enable = lib.mkDefault true;
|
|
||||||
zellij.enable = lib.mkDefault true;
|
|
||||||
lazygit.enable = lib.mkDefault true;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
home.packages = [
|
home.packages = [
|
||||||
@@ -32,8 +29,6 @@ in
|
|||||||
pkgs.charm # Manage account and filesystem
|
pkgs.charm # Manage account and filesystem
|
||||||
pkgs.pop # Send emails from a TUI
|
pkgs.pop # Send emails from a TUI
|
||||||
|
|
||||||
pkgs.yazi # TUI file explorer
|
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|
||||||
programs.gh-dash.enable = lib.mkDefault true;
|
programs.gh-dash.enable = lib.mkDefault true;
|
||||||
|
@@ -25,16 +25,19 @@ in
|
|||||||
pkgs.jless # JSON viewer
|
pkgs.jless # JSON viewer
|
||||||
pkgs.jo # JSON output
|
pkgs.jo # JSON output
|
||||||
pkgs.mpd # TUI slideshows
|
pkgs.mpd # TUI slideshows
|
||||||
|
pkgs.nixfmt-rfc-style # Format Nix code
|
||||||
pkgs.nmasur.jqr # FZF fq JSON tool
|
pkgs.nmasur.jqr # FZF fq JSON tool
|
||||||
pkgs.nmasur.osc # Clipboard over SSH
|
pkgs.nmasur.osc # Clipboard over SSH
|
||||||
# pkgs.nmasur.ren-find # Rename files
|
pkgs.nmasur.ren-find # Rename files
|
||||||
# pkgs.nmasur.rep-grep # Replace text in files
|
pkgs.nmasur.rep-grep # Replace text in files
|
||||||
pkgs.pandoc # Convert text documents
|
pkgs.pandoc # Convert text documents
|
||||||
pkgs.qrencode # Generate qr codes
|
pkgs.qrencode # Generate qr codes
|
||||||
pkgs.spacer # Output lines in terminal
|
pkgs.spacer # Output lines in terminal
|
||||||
pkgs.tealdeer # Cheatsheets
|
pkgs.tealdeer # Cheatsheets
|
||||||
pkgs.tree # Print tree in terminal
|
pkgs.tree # Print tree in terminal
|
||||||
pkgs.vimv-rs # Batch rename files
|
pkgs.vimv-rs # Batch rename files
|
||||||
|
pkgs.yazi # TUI file explorer
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|
||||||
programs.fish.shellAliases = {
|
programs.fish.shellAliases = {
|
||||||
@@ -57,8 +60,10 @@ in
|
|||||||
fd.enable = lib.mkDefault true;
|
fd.enable = lib.mkDefault true;
|
||||||
fish.enable = lib.mkDefault true;
|
fish.enable = lib.mkDefault true;
|
||||||
fzf.enable = lib.mkDefault true;
|
fzf.enable = lib.mkDefault true;
|
||||||
|
ghostty.enable = lib.mkDefault true;
|
||||||
git.enable = lib.mkDefault true;
|
git.enable = lib.mkDefault true;
|
||||||
helix.enable = lib.mkDefault true;
|
helix.enable = lib.mkDefault true;
|
||||||
|
lazygit.enable = lib.mkDefault true;
|
||||||
neovim.enable = lib.mkDefault true;
|
neovim.enable = lib.mkDefault true;
|
||||||
nix-index.enable = lib.mkDefault true;
|
nix-index.enable = lib.mkDefault true;
|
||||||
nixpkgs.enable = lib.mkDefault true;
|
nixpkgs.enable = lib.mkDefault true;
|
||||||
@@ -67,6 +72,7 @@ in
|
|||||||
ripgrep.enable = lib.mkDefault true;
|
ripgrep.enable = lib.mkDefault true;
|
||||||
weather.enable = lib.mkDefault true;
|
weather.enable = lib.mkDefault true;
|
||||||
yt-dlp.enable = lib.mkDefault true;
|
yt-dlp.enable = lib.mkDefault true;
|
||||||
|
zellij.enable = lib.mkDefault true;
|
||||||
zoxide.enable = lib.mkDefault true;
|
zoxide.enable = lib.mkDefault true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -67,7 +67,7 @@ in
|
|||||||
|
|
||||||
# Tell Caddy to use Cloudflare DNS for ACME challenge validation
|
# Tell Caddy to use Cloudflare DNS for ACME challenge validation
|
||||||
services.caddy.package = pkgs.caddy.withPlugins {
|
services.caddy.package = pkgs.caddy.withPlugins {
|
||||||
plugins = [ "github.com/caddy-dns/cloudflare@v0.2.1" ];
|
plugins = [ "github.com/caddy-dns/cloudflare@8cbec3f04d5b4a768c52941a5468c4b71436509e" ]; # v0.2.1
|
||||||
hash = "sha256-2D7dnG50CwtCho+U+iHmSj2w14zllQXPjmTHr6lJZ/A=";
|
hash = "sha256-2D7dnG50CwtCho+U+iHmSj2w14zllQXPjmTHr6lJZ/A=";
|
||||||
};
|
};
|
||||||
nmasur.presets.services.caddy.tlsPolicies = [
|
nmasur.presets.services.caddy.tlsPolicies = [
|
||||||
@@ -159,8 +159,9 @@ in
|
|||||||
requires = [ "cloudflare-api-secret.service" ];
|
requires = [ "cloudflare-api-secret.service" ];
|
||||||
script =
|
script =
|
||||||
let
|
let
|
||||||
args =
|
args = [
|
||||||
[ "--cache-file /var/lib/cloudflare-dyndns/ip.cache" ]
|
"--cache-file /var/lib/cloudflare-dyndns/ip.cache"
|
||||||
|
]
|
||||||
++ (if config.services.cloudflare-dyndns.ipv4 then [ "-4" ] else [ "-no-4" ])
|
++ (if config.services.cloudflare-dyndns.ipv4 then [ "-4" ] else [ "-no-4" ])
|
||||||
++ (if config.services.cloudflare-dyndns.ipv6 then [ "-6" ] else [ "-no-6" ])
|
++ (if config.services.cloudflare-dyndns.ipv6 then [ "-6" ] else [ "-no-6" ])
|
||||||
++ lib.optional config.services.cloudflare-dyndns.deleteMissing "--delete-missing"
|
++ lib.optional config.services.cloudflare-dyndns.deleteMissing "--delete-missing"
|
||||||
|
@@ -24,6 +24,11 @@ in
|
|||||||
|
|
||||||
# Enable automatic timezone updates based on location
|
# Enable automatic timezone updates based on location
|
||||||
services.automatic-timezoned.enable = lib.mkDefault true;
|
services.automatic-timezoned.enable = lib.mkDefault true;
|
||||||
|
services.geoclue2 = {
|
||||||
|
# see: https://github.com/NixOS/nixpkgs/issues/68489#issuecomment-1484030107
|
||||||
|
enableDemoAgent = lib.mkForce true;
|
||||||
|
geoProviderUrl = "https://beacondb.net/v1/geolocate";
|
||||||
|
};
|
||||||
|
|
||||||
# Allow reading from Windows drives
|
# Allow reading from Windows drives
|
||||||
boot.supportedFilesystems = [ "ntfs" ];
|
boot.supportedFilesystems = [ "ntfs" ];
|
||||||
|
Reference in New Issue
Block a user