Merge branch 'main' of github.com:wi11-holdsworth/dots

This commit is contained in:
wi11-holdsworth 2025-10-29 12:55:43 +11:00
commit 73740ab091
10 changed files with 205 additions and 35 deletions

View file

@ -25,7 +25,19 @@
networking.hostName = "${hostName}"; networking.hostName = "${hostName}";
services.openssh.enable = true; # hardened openssh
services.openssh = {
passwordAuthentication = false;
allowSFTP = false;
challengeResponseAuthentication = false;
extraConfig = ''
AllowTcpForwarding yes
X11Forwarding no
AllowAgentForwarding no
AllowStreamLocalForwarding no
AuthenticationMethods publickey
'';
};
system.stateVersion = "24.11"; system.stateVersion = "24.11";

View file

@ -13,6 +13,7 @@
"fish" "fish"
"gh" "gh"
"git" "git"
"lazygit"
"starship" "starship"
"yazi" "yazi"
"zoxide" "zoxide"

View file

@ -18,34 +18,164 @@
sort = "-r date"; sort = "-r date";
}; };
}; };
extraBinds = {
global = {
# keep-sorted start
"<C-n>" = ":next-tab <Enter>";
"<C-p>" = ":prev-tab<Enter>";
"<C-t>" = ":term<Enter>";
"?" = ":help keys<Enter>";
# keep-sorted end
};
messages = {
# keep-sorted start
"!" = ":term<space>";
"$" = ":term<space>";
"/" = ":search<space>-a<space>";
"<C-b>" = ":prev 100%<Enter>";
"<C-d>" = ":next 50%<Enter>";
"<C-f>" = ":next 100%<Enter>";
"<C-u>" = ":prev 50%<Enter>";
"<Down>" = ":next<Enter>";
"<Enter>" = ":view<Enter>";
"<Esc>" = ":clear<Enter>";
"<PgDn>" = ":next 100%<Enter>";
"<PgUp>" = ":prev 100%<Enter>";
"<Up>" = ":prev<Enter>";
"\\" = ":filter <space>";
"|" = ":pipe<space>";
A = ":archive flat<Enter>";
C = ":compose<Enter>";
D = ":move Trash<Enter>";
G = ":select -1<Enter>";
H = ":collapse-folder<Enter>";
J = ":next-folder <Enter>";
K = ":prev-folder<Enter>";
L = ":expand-folder<Enter>";
N = ":prev-result<Enter>";
R = ":read<Enter>";
Rq = ":reply -q<Enter>";
Rr = ":reply<Enter>";
T = ":toggle-threads<Enter>";
U = ":unread<Enter>";
V = ":mark -v<Enter>";
c = ":cf<space>";
d = ":prompt 'Really delete this message?' 'delete-message'<Enter>";
g = ":select 0 <Enter>";
j = ":next <Enter>";
k = ":prev <Enter>";
n = ":next-result<Enter>";
q = ":quit<Enter>";
rq = ":reply -aq<Enter>";
rr = ":reply -a<Enter>";
v = ":mark -t<Enter>";
# keep-sorted end
};
"messages:folder=Drafts" = {
"<Enter>" = ":recall<Enter>";
};
view = {
# keep-sorted start
"/" = ":toggle-key-passthrough <Enter> /";
"<C-j>" = ":next-part<Enter>";
"<C-k>" = ":prev-part<Enter>";
"<C-l>" = ":open-link <space>";
"|" = ":pipe<space>";
A = ":archive flat<Enter>";
D = ":move Trash<Enter>";
H = ":toggle-headers<Enter>";
J = ":next <Enter>";
K = ":prev<Enter>";
O = ":open<Enter>";
R = ":read<Enter>";
Rq = ":reply -q<Enter>";
Rr = ":reply<Enter>";
S = ":save<space>";
U = ":unread<Enter>";
f = ":forward <Enter>";
q = ":close<Enter>";
rq = ":reply -aq<Enter>";
rr = ":reply -a<Enter>";
# keep-sorted end
};
"view::passthrough" = {
# keep-sorted start
"$ex" = "<C-x>";
"$noinherit" = "true";
"<Esc>" = ":toggle-key-passthrough<Enter>";
# keep-sorted end
};
compose = {
# keep-sorted start
"$ex" = "<C-x>";
"$noinherit" = "true";
"<A-n>" = ":switch-account -n<Enter>";
"<A-p>" = ":switch-account -p<Enter>";
"<C-j>" = ":next-field<Enter>";
"<C-k>" = ":prev-field<Enter>";
"<C-n>" = ":next-tab<Enter>";
"<C-p>" = ":prev-tab<Enter>";
"<tab>" = ":next-field<Enter>";
# keep-sorted end
};
"compose::editor" = {
# keep-sorted start
"$ex" = "<C-x>";
"$noinherit" = "true";
"<C-j>" = ":next-field<Enter>";
"<C-k>" = ":prev-field<Enter>";
"<C-n>" = ":next-tab<Enter>";
"<C-p>" = ":prev-tab<Enter>";
# keep-sorted end
};
"compose::review" = {
# keep-sorted start
a = ":attach<space>";
d = ":detach<space>";
e = ":edit<Enter>";
n = ":abort<Enter>";
p = ":postpone<Enter>";
q = ":choose -o d discard abort -o p postpone postpone<Enter>";
y = ":send <Enter>";
# keep-sorted end
};
terminal = {
# keep-sorted start
"$ex" = "<C-x>";
"$noinherit" = "true";
"<C-n>" = ":next-tab<Enter>";
"<C-p>" = ":prev-tab<Enter>";
# keep-sorted end
};
};
stylesets.catppuccin-mocha = '' stylesets.catppuccin-mocha = ''
"*.default" = true; "*.default" = true
"*.normal" = true; "*.normal" = true
"default.fg" = "#cdd6f4"; "default.fg" = "#cdd6f4"
"error.fg" = "#f38ba8"; "error.fg" = "#f38ba8"
"warning.fg" = "#fab387"; "warning.fg" = "#fab387"
"success.fg" = "#a6e3a1"; "success.fg" = "#a6e3a1"
"tab.fg" = "#6c7086"; "tab.fg" = "#6c7086"
"tab.bg" = "#181825"; "tab.bg" = "#181825"
"tab.selected.fg" = "#cdd6f4"; "tab.selected.fg" = "#cdd6f4"
"tab.selected.bg" = "#1e1e2e"; "tab.selected.bg" = "#1e1e2e"
"tab.selected.bold" = true; "tab.selected.bold" = true
"border.fg" = "#11111b"; "border.fg" = "#11111b"
"border.bold" = true; "border.bold" = true
"msglist_unread.bold" = true; "msglist_unread.bold" = true
"msglist_flagged.fg" = "#f9e2af"; "msglist_flagged.fg" = "#f9e2af"
"msglist_flagged.bold" = true; "msglist_flagged.bold" = true
"msglist_result.fg" = "#89b4fa"; "msglist_result.fg" = "#89b4fa"
"msglist_result.bold" = true; "msglist_result.bold" = true
"msglist_*.selected.bold" = true; "msglist_*.selected.bold" = true
"msglist_*.selected.bg" = "#313244"; "msglist_*.selected.bg" = "#313244"
"dirlist_*.selected.bold" = true; "dirlist_*.selected.bold" = true
"dirlist_*.selected.bg" = "#313244"; "dirlist_*.selected.bg" = "#313244"
"statusline_default.fg" = "#9399b2"; "statusline_default.fg" = "#9399b2"
"statusline_default.bg" = "#313244"; "statusline_default.bg" = "#313244"
"statusline_error.bold" = true; "statusline_error.bold" = true
"statusline_success.bold" = true; "statusline_success.bold" = true
"completion_default.selected.bg" = "#313244"; "completion_default.selected.bg" = "#313244"
''; '';
}; };
} }

View file

@ -0,0 +1,14 @@
{
...
}:
{
programs.lazygit = {
enable = true;
settings = {
log = {
localBranchSortOrder = "recency";
remoteBranchSortOrder = "recency";
};
};
};
}

View file

@ -13,8 +13,7 @@
"localisation" "localisation"
"network" "network"
"nh" "nh"
"nix-settings" "nix"
"nixpkgs"
"nixvim" "nixvim"
"syncthing" "syncthing"
"systemd-boot" "systemd-boot"
@ -46,7 +45,6 @@
hexyl # hexadecimal viewer hexyl # hexadecimal viewer
hyperfine # benchmarking tool hyperfine # benchmarking tool
keep-sorted # alphabetical formatter keep-sorted # alphabetical formatter
lazygit # git tui
mprocs # run long running commands and monitor output mprocs # run long running commands and monitor output
navi # cheatsheet browser navi # cheatsheet browser
nb # note taking nb # note taking

View file

@ -6,5 +6,6 @@
networking = { networking = {
hostName = "${hostName}"; hostName = "${hostName}";
networkmanager.enable = true; networkmanager.enable = true;
firewall.enable = true;
}; };
} }

View file

@ -1,4 +1,14 @@
{ {
lib,
...
}:
{
# rip out default packages
environment.defaultPackages = lib.mkForce [ ];
# allow packages with non-free licenses
nixpkgs.config.allowUnfree = true;
nix = { nix = {
gc = { gc = {
automatic = true; automatic = true;
@ -11,6 +21,7 @@
persistent = true; persistent = true;
}; };
settings = { settings = {
allowed-users = [ "@wheel" ];
experimental-features = [ experimental-features = [
"nix-command" "nix-command"
"flakes" "flakes"

View file

@ -1,3 +0,0 @@
{
nixpkgs.config.allowUnfree = true;
}

View file

@ -30,7 +30,7 @@ in
]; ];
}; };
nginx.virtualHosts."miniflux.fi33.buzz" = { nginx.virtualHosts."paperless.fi33.buzz" = {
forceSSL = true; forceSSL = true;
useACMEHost = "fi33.buzz"; useACMEHost = "fi33.buzz";
locations."/".proxyPass = "http://localhost:${port}"; locations."/".proxyPass = "http://localhost:${port}";

View file

@ -0,0 +1,6 @@
{
...
}:
{
security.sudo.execWheelOnly = true;
}