Compare commits
8 Commits
forgejo
...
58816b2356
| Author | SHA1 | Date | |
|---|---|---|---|
| 58816b2356 | |||
| ca2f5ac7c8 | |||
| 904dd6e329 | |||
| 8073125f3e | |||
| f24a269af3 | |||
| a5a10772d1 | |||
| 510a026de7 | |||
| dd47ae94bf |
Generated
+25
-39
@@ -18,11 +18,11 @@
|
||||
},
|
||||
"flake-file": {
|
||||
"locked": {
|
||||
"lastModified": 1775848911,
|
||||
"narHash": "sha256-dqva/tlWxsXj32wYPdt06UrrR4l2QdK9JWyvPooWRi4=",
|
||||
"lastModified": 1776202746,
|
||||
"narHash": "sha256-RZVtJefKKy3Z2UvKWSbtRF3cUxt/2fHga2adN6MZQ1U=",
|
||||
"owner": "vic",
|
||||
"repo": "flake-file",
|
||||
"rev": "b36cbd5fc01e9794a001ccb0c58b314efaabae08",
|
||||
"rev": "7d16dfaeb912d5efdff0d0eda2aabc0c934168dd",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -95,11 +95,11 @@
|
||||
"nixpkgs": "nixpkgs"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1776046499,
|
||||
"narHash": "sha256-Wzc4nn07/0RL21ypPHRzNDQZcjhIC8LaYo7QJQjM5T4=",
|
||||
"lastModified": 1776562531,
|
||||
"narHash": "sha256-Lh5Ns9DI67E+lSMOCGK0S+mFPy0mz0yOGiJTUXiR9JI=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "287f84846c1eb3b72c986f5f6bebcff0bd67440d",
|
||||
"rev": "5b56ad02dc643808b8af6d5f3ff179e2ce9593f4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -215,33 +215,17 @@
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1775888245,
|
||||
"narHash": "sha256-qTVvODr6edFBLD2lncXPF8yTQeCafZUuKVtpV3Xb3yM=",
|
||||
"rev": "13043924aaa7375ce482ebe2494338e058282925",
|
||||
"lastModified": 1776329215,
|
||||
"narHash": "sha256-mBqzkn7oJti2hqeO8iTbDxKw+1ifxpP53feQ0CEXies=",
|
||||
"rev": "b86751bc4085f48661017fa226dee99fab6c651b",
|
||||
"type": "tarball",
|
||||
"url": "https://releases.nixos.org/nixpkgs/nixpkgs-26.05pre978638.13043924aaa7/nixexprs.tar.xz"
|
||||
"url": "https://releases.nixos.org/nixpkgs/nixpkgs-26.05pre981196.b86751bc4085/nixexprs.tar.xz"
|
||||
},
|
||||
"original": {
|
||||
"type": "tarball",
|
||||
"url": "https://channels.nixos.org/nixpkgs-unstable/nixexprs.tar.xz"
|
||||
}
|
||||
},
|
||||
"nixpkgs_3": {
|
||||
"locked": {
|
||||
"lastModified": 1775579569,
|
||||
"narHash": "sha256-/m3yyS/EnXqoPGBJYVy4jTOsirdgsEZ3JdN2gGkBr14=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "dfd9566f82a6e1d55c30f861879186440614696e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixpkgs-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nvf": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat",
|
||||
@@ -254,11 +238,11 @@
|
||||
"systems": "systems_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1775892726,
|
||||
"narHash": "sha256-1TK1pe33cEHNvGW41TP5xAzrbG1Gp7LfyFL6c3+xf+I=",
|
||||
"lastModified": 1776608870,
|
||||
"narHash": "sha256-lBKrueFu15TdmtMF6GsiSVCifwdrUBYFoa3+zZjYTFM=",
|
||||
"owner": "notashelf",
|
||||
"repo": "nvf",
|
||||
"rev": "5ab359ee7dfd3fa09a5c6f863efaf810bb9a9436",
|
||||
"rev": "d9ba7f0a9ed6c016dc9e526cc606d1a2f7898cd4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -292,11 +276,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1775971308,
|
||||
"narHash": "sha256-VKp9bhVSm0bT6JWctFy06ocqxGGnWHi1NfoE90IgIcY=",
|
||||
"lastModified": 1776119890,
|
||||
"narHash": "sha256-Zm6bxLNnEOYuS/SzrAGsYuXSwk3cbkRQZY0fJnk8a5M=",
|
||||
"owner": "Mic92",
|
||||
"repo": "sops-nix",
|
||||
"rev": "31ac5fe5d015f76b54058c69fcaebb66a55871a4",
|
||||
"rev": "d4971dd58c6627bfee52a1ad4237637c0a2fb0cd",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -337,14 +321,16 @@
|
||||
},
|
||||
"wrapper-modules": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs_3"
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1775940860,
|
||||
"narHash": "sha256-8Jxnn2uoFhm2H579ycVxFWDtrywJ6Mc8RmqWbZwk5So=",
|
||||
"lastModified": 1776464146,
|
||||
"narHash": "sha256-XwLFfJDz71vIF7BAhnbLhrzQjmDC2uXdo7N0oHUrYzA=",
|
||||
"owner": "BirdeeHub",
|
||||
"repo": "nix-wrapper-modules",
|
||||
"rev": "fb62851ffc5f6a4d53ebc00b93743e29b41e6224",
|
||||
"rev": "75febede14a0845f4ef429da692a0698bf433600",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -360,11 +346,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1775600302,
|
||||
"narHash": "sha256-2fgKImv78CXIcfo1RsY7EI4uMZ84x/MggA5rrusYc7c=",
|
||||
"lastModified": 1776505856,
|
||||
"narHash": "sha256-VbnOijrn4EdYYJwiNQFxQNXECKBa60U66UPxUQAGkBE=",
|
||||
"owner": "lassulus",
|
||||
"repo": "wrappers",
|
||||
"rev": "9d8397d8ef1ac35763085f3338589f558128f7db",
|
||||
"rev": "738d4bf81cbf306f6917c540a5b798110e3cf1e8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
||||
@@ -29,7 +29,10 @@
|
||||
url = "github:Mic92/sops-nix";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
wrapper-modules.url = "github:BirdeeHub/nix-wrapper-modules";
|
||||
wrapper-modules = {
|
||||
url = "github:BirdeeHub/nix-wrapper-modules";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
wrappers = {
|
||||
url = "github:lassulus/wrappers";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
hostname = "john-p14s";
|
||||
homeDirectory = config.home-manager.users.john.home.homeDirectory;
|
||||
flakeDir = "${homeDirectory}/Documents/dendritic";
|
||||
my-neovim = inputs.self.packages.${pkgs.stdenv.hostPlatform.system}.my-neovim;
|
||||
selfPkgs = inputs.self.packages.${pkgs.stdenv.hostPlatform.system};
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
@@ -41,7 +41,8 @@
|
||||
busybox
|
||||
dig
|
||||
samba
|
||||
my-neovim
|
||||
selfPkgs.my-neovim
|
||||
selfPkgs.wg-platform
|
||||
];
|
||||
|
||||
security.pam.services.swaylock = {};
|
||||
|
||||
@@ -56,9 +56,10 @@
|
||||
name = "nhms";
|
||||
runtimeInputs = [ coreutils hostname nh ];
|
||||
text = ''
|
||||
USERNAME=''${USER:-$(whoami)}
|
||||
HOSTNAME=$(hostname -s)
|
||||
echo "Switching to the $HOSTNAME home-manager profile"
|
||||
nh home switch ${flakeDir} -c "$HOSTNAME" "$@"
|
||||
nh home switch ${flakeDir} -c "$USERNAME@$HOSTNAME" "$@"
|
||||
'';
|
||||
};
|
||||
|
||||
|
||||
@@ -5,19 +5,27 @@
|
||||
enable = true;
|
||||
enableBashIntegration = true;
|
||||
enableZshIntegration = true;
|
||||
git = true;
|
||||
icons = "auto";
|
||||
colors = "auto";
|
||||
extraOptions = [
|
||||
package = inputs.self.packages.${pkgs.stdenv.hostPlatform.system}.my-eza;
|
||||
};
|
||||
};
|
||||
|
||||
perSystem = { system, pkgs, ... }: {
|
||||
packages.my-eza = inputs.wrappers.lib.wrapPackage {
|
||||
inherit pkgs;
|
||||
package = pkgs.eza;
|
||||
args = [
|
||||
"--all"
|
||||
"--long"
|
||||
"--group-directories-first"
|
||||
"--icons=auto"
|
||||
"--color=auto"
|
||||
"--sort=type"
|
||||
"--dereference"
|
||||
"--octal-permissions"
|
||||
"--smart-group"
|
||||
"--no-time"
|
||||
"--git"
|
||||
"$@"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [
|
||||
gdu
|
||||
# gdu
|
||||
# (writeShellScriptBin "lfcd" ''
|
||||
# . <(${lib.getExe pkgs.lf} -print-last-dir | sed 's/^/cd /')
|
||||
# '')
|
||||
|
||||
@@ -57,7 +57,6 @@ in
|
||||
in
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
eza
|
||||
age
|
||||
sops # This is necessary to make the sops binary available
|
||||
ssh-to-age
|
||||
|
||||
@@ -2,39 +2,13 @@
|
||||
flake.modules.nixos.wireguard = { config, pkgs, lib, ... }:
|
||||
let
|
||||
wgInterface = "platform";
|
||||
systemctl = lib.getExe' pkgs.systemd "systemctl";
|
||||
journalctl = lib.getExe' pkgs.systemd "journalctl";
|
||||
|
||||
mkConnect = interface:
|
||||
let
|
||||
serviceName = "wg-quick-${interface}";
|
||||
service = "${serviceName}.service";
|
||||
in
|
||||
pkgs.writeShellScriptBin "wg-connect-${interface}" ''
|
||||
${systemctl} start ${service}
|
||||
start_time=$(${systemctl} show -p ActiveEnterTimestamp ${serviceName} | cut -d= -f2)
|
||||
${journalctl} -u ${service} --since "$start_time" --no-pager
|
||||
'';
|
||||
mkDisconnect = interface:
|
||||
let
|
||||
serviceName = "wg-quick-${interface}";
|
||||
service = "${serviceName}.service";
|
||||
in
|
||||
pkgs.writeShellScriptBin "wg-disconnect-${interface}" ''
|
||||
STOPTIME=$(${lib.getExe' pkgs.coreutils "date"} '+%Y-%m-%d %H:%M:%S')
|
||||
${systemctl} stop ${service}
|
||||
start_time=$(${systemctl} show -p ActiveEnterTimestamp ${serviceName} | cut -d= -f2)
|
||||
${journalctl} -u ${service} --since "$STOPTIME" --no-pager
|
||||
'';
|
||||
in
|
||||
{
|
||||
imports = [ inputs.sops-nix.nixosModules.sops ];
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
wireguard-tools
|
||||
wg-netmanager
|
||||
(mkConnect "platform")
|
||||
(mkDisconnect "platform")
|
||||
wireguard-tools # https://github.com/WireGuard/wireguard-tools
|
||||
# wg-netmanager # https://github.com/gin66/wg_netmanager
|
||||
];
|
||||
|
||||
sops.secrets.wireguard_private_key = { };
|
||||
@@ -56,4 +30,38 @@
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
perSystem = { system, pkgs, lib, ... }:
|
||||
let
|
||||
connect = pkgs.writeShellApplication {
|
||||
name = "wg-platform-connect";
|
||||
text = ''
|
||||
sudo systemctl start wg-quick-platform.service
|
||||
START_TIME=$(sudo systemctl show -p ActiveEnterTimestamp wg-quick-platform | cut -d= -f2)
|
||||
journalctl -u wg-quick-platform --since "$START_TIME" --no-pager
|
||||
'';
|
||||
};
|
||||
|
||||
disconnect = pkgs.writeShellApplication {
|
||||
name = "wg-platform-disconnect";
|
||||
text = ''
|
||||
STOP_TIME=$(date '+%Y-%m-%d %H:%M:%S')
|
||||
systemctl stop wg-quick-platform.service
|
||||
journalctl -u wg-quick-platform.service --since "$STOP_TIME" --no-pager
|
||||
'';
|
||||
};
|
||||
in
|
||||
{
|
||||
packages.wg-platform = inputs.wrappers.lib.wrapPackage {
|
||||
inherit pkgs;
|
||||
runtimeInputs = with pkgs; [ coreutils systemd wireguard-tools ];
|
||||
package = pkgs.symlinkJoin {
|
||||
name = "wg-platform";
|
||||
paths = [
|
||||
connect
|
||||
disconnect
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
+92
-130
@@ -51,138 +51,100 @@ in
|
||||
};
|
||||
};
|
||||
|
||||
perSystem = { system, pkgs, ... }: {
|
||||
packages.jsl-zsh = inputs.wrapper-modules.wrappers.zsh.wrap {
|
||||
inherit pkgs;
|
||||
extraPackages = with pkgs; [
|
||||
inputs.self.packages.${pkgs.stdenv.hostPlatform.system}.neovim-min
|
||||
btop
|
||||
coreutils
|
||||
curl
|
||||
wget
|
||||
yazi
|
||||
zsh
|
||||
];
|
||||
};
|
||||
|
||||
packages.neovim-min = ((inputs.nvf.lib.neovimConfiguration {
|
||||
inherit pkgs;
|
||||
modules = [
|
||||
{
|
||||
# https://nvf.notashelf.dev/search.html
|
||||
config.vim = {
|
||||
options = {
|
||||
number = true;
|
||||
relativenumber = true;
|
||||
expandtab = true;
|
||||
shiftwidth = 4;
|
||||
tabstop = 4;
|
||||
softtabstop = 4;
|
||||
|
||||
wrap = true;
|
||||
linebreak = true;
|
||||
};
|
||||
|
||||
syntaxHighlighting = true;
|
||||
|
||||
# Enable custom theming options
|
||||
theme.enable = true;
|
||||
theme.name = "catppuccin";
|
||||
theme.style = "mocha";
|
||||
|
||||
git.enable = true;
|
||||
# git.neogit.enable = true;
|
||||
extraPlugins = with pkgs.vimPlugins; {
|
||||
icons = {
|
||||
package = nvim-web-devicons;
|
||||
};
|
||||
octo = {
|
||||
package = octo-nvim;
|
||||
setup = "require('octo').setup {}";
|
||||
after = ["telescope" "icons"];
|
||||
};
|
||||
};
|
||||
|
||||
# https://github.com/akinsho/toggleterm.nvim
|
||||
terminal.toggleterm.enable = true;
|
||||
terminal.toggleterm.lazygit.enable = true;
|
||||
terminal.toggleterm.lazygit.direction = "float";
|
||||
terminal.toggleterm.lazygit.mappings.open = "<C-g>";
|
||||
|
||||
utility.nix-develop.enable = true;
|
||||
|
||||
filetree.neo-tree.enable = true;
|
||||
|
||||
telescope = {
|
||||
enable = true;
|
||||
extensions = [
|
||||
{
|
||||
name = "fzf";
|
||||
packages = [pkgs.vimPlugins.telescope-fzf-native-nvim];
|
||||
setup = {fzf = {fuzzy = true;};};
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
languages = {
|
||||
enableTreesitter = true;
|
||||
enableFormat = true;
|
||||
|
||||
markdown = {
|
||||
enable = true;
|
||||
extensions = {
|
||||
markview-nvim.enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
bash.enable = true;
|
||||
yaml.enable = true;
|
||||
toml.enable = true;
|
||||
nix.enable = true;
|
||||
};
|
||||
|
||||
keymaps = [
|
||||
{
|
||||
desc = "Edit key mappings";
|
||||
key = "<leader>ekm";
|
||||
mode = [ "n" ];
|
||||
silent = false;
|
||||
action = "<cmd>:edit +/keymaps /home/john/.config/home-manager/jsl-dendritic/modules/programs/neovim.nix<CR>";
|
||||
}
|
||||
{
|
||||
desc = "Home Manager Switch";
|
||||
key = "<leader>nhms";
|
||||
mode = [ "n" ];
|
||||
silent = false;
|
||||
action = "<cmd>:TermExec cmd='clear && nhms && exit' name='Nix Home Manager Switch' direction=float<CR>";
|
||||
}
|
||||
{
|
||||
desc = "Key Maps [Telescope]";
|
||||
key = "<leader>fkm";
|
||||
mode = "n";
|
||||
silent = false;
|
||||
action = "<cmd>:Telescope keymaps<CR>";
|
||||
}
|
||||
{
|
||||
desc = "Toggle Filesystem Tree [NeoTree]";
|
||||
key = "<C-b>";
|
||||
mode = [ "n" "v" "t" ];
|
||||
silent = false;
|
||||
action = "<cmd>:Neotree toggle filesystem left action=show<CR>";
|
||||
}
|
||||
{
|
||||
key = "<C-`>";
|
||||
mode = ["n" "v" "t"];
|
||||
silent = false;
|
||||
action = "<cmd>:ToggleTerm<CR>";
|
||||
}
|
||||
];
|
||||
perSystem = { config, self', pkgs, lib, ... }: {
|
||||
packages.jsl-zsh =
|
||||
let
|
||||
ignorePatterns = [
|
||||
"ls" "eza" "history" "clear"
|
||||
];
|
||||
aliasStr = lib.concatStringsSep "\n" (
|
||||
lib.mapAttrsToList (k: v: "alias -- ${lib.escapeShellArg k}=${lib.escapeShellArg v}") {
|
||||
ls = "eza";
|
||||
ll = "eza -l";
|
||||
la = "eza -a";
|
||||
lt = "eza --tree";
|
||||
lla = "eza -la";
|
||||
ds = "gdu -i /snap /";
|
||||
});
|
||||
in
|
||||
(inputs.wrappers.wrapperModules.zsh.apply {
|
||||
inherit pkgs;
|
||||
binName = "jsl-zsh";
|
||||
settings = {
|
||||
completion = {
|
||||
enable = true;
|
||||
extraCompletions = true;
|
||||
caseInsensitive = true;
|
||||
fuzzySearch = true;
|
||||
};
|
||||
autoSuggestions = {
|
||||
enable = true;
|
||||
strategy = [ "history" "completion" ];
|
||||
};
|
||||
history = {
|
||||
append = true;
|
||||
expanded = true;
|
||||
share = true;
|
||||
ignoreAllDups = true;
|
||||
ignoreSpace = true;
|
||||
};
|
||||
integrations = {
|
||||
fzf.enable = true;
|
||||
starship = {
|
||||
enable = true;
|
||||
package = self'.packages.starship;
|
||||
};
|
||||
zoxide.enable = true;
|
||||
};
|
||||
};
|
||||
extraRC = ''
|
||||
HISTFILE=$HOME/.zsh_history
|
||||
HISTORY_IGNORE=${lib.escapeShellArg "(${lib.concatStringsSep "|" ignorePatterns})"}
|
||||
|
||||
HOSTNAME=$(hostname -s)
|
||||
|
||||
${aliasStr}
|
||||
|
||||
eval "$(direnv hook zsh)"
|
||||
'';
|
||||
extraPackages = with pkgs; [
|
||||
self'.packages.my-eza
|
||||
self'.packages.gdu
|
||||
busybox
|
||||
fd
|
||||
ripgrep
|
||||
hostname
|
||||
iproute2
|
||||
direnv
|
||||
];
|
||||
}).wrapper;
|
||||
|
||||
packages.starship = (inputs.wrappers.wrapperModules.starship.apply {
|
||||
inherit pkgs;
|
||||
settings = lib.mkMerge [
|
||||
(lib.importTOML (pkgs.fetchurl {
|
||||
url = https://starship.rs/presets/toml/catppuccin-powerline.toml;
|
||||
sha256 = "0bd8zx0bpri63rnb9dva0rav75d3i2wrzw44h63m75hq5220r26g";
|
||||
}))
|
||||
{
|
||||
palette = "catppuccin_mocha";
|
||||
add_newline = lib.mkForce true;
|
||||
line_break.disabled = lib.mkForce false;
|
||||
git_status.diverged = lib.mkForce "⇕⇡\${ahead_count}⇣\${behind_count}";
|
||||
cmd_duration.format = lib.mkForce " $duration";
|
||||
python.disabled = lib.mkForce true;
|
||||
}
|
||||
];
|
||||
}).neovim).overrideAttrs (old: {
|
||||
pname = "neovim-min";
|
||||
version = "custom";
|
||||
});
|
||||
}).wrapper;
|
||||
|
||||
packages.gdu = inputs.wrappers.lib.wrapPackage {
|
||||
inherit pkgs;
|
||||
package = pkgs.gdu;
|
||||
env = {
|
||||
LANG = "en_US.UTF-8";
|
||||
COLORTERM = "truecolor";
|
||||
};
|
||||
args = [ "-x" "--si" "--collapse-path" "--mouse" "$@" ];
|
||||
};
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user