Compare commits
No commits in common. "d9d4e43c35987ae4fdba307ce3357c940936bde5" and "ad3ded339f6a68dad9147365202ee60f730ca616" have entirely different histories.
d9d4e43c35
...
ad3ded339f
38 changed files with 2556 additions and 3122 deletions
33
;
33
;
|
|
@ -1,33 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
options,
|
|
||||||
machine,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
with lib;
|
|
||||||
{
|
|
||||||
options = {
|
|
||||||
custom.program = mkOption {
|
|
||||||
type = types.attrsOf (
|
|
||||||
types.submodule (
|
|
||||||
{ config, ... }:
|
|
||||||
{
|
|
||||||
options = {
|
|
||||||
name = mkOption {
|
|
||||||
type = types.string;
|
|
||||||
};
|
|
||||||
home-config = mkOption {
|
|
||||||
type = types.deferredModule;
|
|
||||||
};
|
|
||||||
system-config = mkOption {
|
|
||||||
type = types.deferredModule;
|
|
||||||
default = _: { };
|
|
||||||
};
|
|
||||||
};
|
|
||||||
config = if builtins.isNull machine.home-only then config.system-config else config.home-config;
|
|
||||||
}
|
|
||||||
)
|
|
||||||
);
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
133
config.nix
133
config.nix
|
|
@ -1,133 +0,0 @@
|
||||||
inputs@{
|
|
||||||
nixpkgs,
|
|
||||||
deploy-rs,
|
|
||||||
self,
|
|
||||||
pkgsForSystem,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
rec {
|
|
||||||
configs =
|
|
||||||
configs: builtins.foldl' (acc: val: nixpkgs.lib.recursiveUpdate (config val) acc) { } configs;
|
|
||||||
config =
|
|
||||||
{
|
|
||||||
hostname,
|
|
||||||
capabilities,
|
|
||||||
type,
|
|
||||||
home-only ? null,
|
|
||||||
extra-modules ? [ ],
|
|
||||||
system ? "x86_64-linux",
|
|
||||||
deploy-hostname ? hostname,
|
|
||||||
deploy-options ? {
|
|
||||||
user = if builtins.isNull home-only then "root" else home-only;
|
|
||||||
sshUser = if builtins.isNull home-only then "jana" else home-only;
|
|
||||||
},
|
|
||||||
home-manager ? builtins.isNull home-only,
|
|
||||||
stateVersion ? "26.05",
|
|
||||||
}:
|
|
||||||
with nixpkgs.lib;
|
|
||||||
let
|
|
||||||
inherit (nixpkgs) lib;
|
|
||||||
matches-capabilities =
|
|
||||||
# all requirements are contained in the machine capabilities
|
|
||||||
requirements: lib.all (req: builtins.elem req capabilities) requirements;
|
|
||||||
program =
|
|
||||||
{
|
|
||||||
inputs,
|
|
||||||
name,
|
|
||||||
requirements ? [ ],
|
|
||||||
home-config,
|
|
||||||
system-config ? (_: { }),
|
|
||||||
}:
|
|
||||||
if (matches-capabilities requirements) then
|
|
||||||
[ (if builtins.isNull home-only then (system-config inputs) else (home-config inputs)) ]
|
|
||||||
++
|
|
||||||
|
|
||||||
(
|
|
||||||
if builtins.isNull home-only then
|
|
||||||
[
|
|
||||||
(_: {
|
|
||||||
custom.program.${name}.defered-config = home-config;
|
|
||||||
})
|
|
||||||
]
|
|
||||||
else
|
|
||||||
[ ]
|
|
||||||
)
|
|
||||||
else
|
|
||||||
[ ];
|
|
||||||
specialArgsForHomeSystem =
|
|
||||||
{
|
|
||||||
system,
|
|
||||||
type,
|
|
||||||
capabilities,
|
|
||||||
}:
|
|
||||||
home-only: {
|
|
||||||
pkgs = pkgsForSystem system;
|
|
||||||
flakes = inputs;
|
|
||||||
inherit inputs;
|
|
||||||
inherit (inputs.secrets.packages.${system}) secrets;
|
|
||||||
machine = {
|
|
||||||
inherit
|
|
||||||
type
|
|
||||||
capabilities
|
|
||||||
stateVersion
|
|
||||||
home-only
|
|
||||||
program
|
|
||||||
;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
specialArgsForSystem = system: specialArgsForHomeSystem system null;
|
|
||||||
|
|
||||||
specialArgs = specialArgsForSystem {
|
|
||||||
inherit system type capabilities;
|
|
||||||
};
|
|
||||||
modules =
|
|
||||||
extra-modules
|
|
||||||
++ [ ./hosts/${hostname}/configuration.nix ]
|
|
||||||
++ (
|
|
||||||
if builtins.isNull home-only then
|
|
||||||
[ ./defaults/machine-config.nix ]
|
|
||||||
else
|
|
||||||
[ ./defaults/machine-or-home-config.nix ]
|
|
||||||
)
|
|
||||||
++ (
|
|
||||||
if home-manager then
|
|
||||||
[
|
|
||||||
inputs.home-manager.nixosModules.default
|
|
||||||
{
|
|
||||||
home-manager.extraSpecialArgs = specialArgs;
|
|
||||||
}
|
|
||||||
]
|
|
||||||
else
|
|
||||||
[ ]
|
|
||||||
);
|
|
||||||
in
|
|
||||||
{
|
|
||||||
deploy.nodes.${hostname} = {
|
|
||||||
hostname = deploy-hostname;
|
|
||||||
fastConnection = true;
|
|
||||||
profiles.system = {
|
|
||||||
path =
|
|
||||||
if (builtins.isNull home-only) then
|
|
||||||
deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.${hostname}
|
|
||||||
else
|
|
||||||
deploy-rs.lib.x86_64-linux.activate.home-manager self.nixosConfigurations.${hostname};
|
|
||||||
}
|
|
||||||
// deploy-options;
|
|
||||||
};
|
|
||||||
|
|
||||||
nixosConfigurations.${hostname} =
|
|
||||||
if builtins.isNull home-only then
|
|
||||||
(nixosSystem {
|
|
||||||
inherit system modules specialArgs;
|
|
||||||
})
|
|
||||||
else
|
|
||||||
inputs.home-manager.lib.homeManagerConfiguration {
|
|
||||||
extraSpecialArgs = specialArgsForHomeSystem {
|
|
||||||
inherit system type capabilities;
|
|
||||||
} home-only;
|
|
||||||
inherit modules;
|
|
||||||
pkgs = pkgsForSystem system;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,20 +1,20 @@
|
||||||
{
|
{
|
||||||
lib,
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
|
inputs,
|
||||||
flakes,
|
flakes,
|
||||||
machine,
|
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./machine-or-home-config.nix
|
(inputs.self + /modules/machine-type.nix)
|
||||||
|
(inputs.self + /modules/program.nix)
|
||||||
|
(inputs.self + /programs)
|
||||||
];
|
];
|
||||||
|
|
||||||
system.stateVersion = machine.stateVersion;
|
system.stateVersion = "26.05";
|
||||||
services.resolved.enable = false;
|
services.resolved.enable = false;
|
||||||
|
|
||||||
xdg.mime.enable = lib.mkForce false;
|
|
||||||
|
|
||||||
# Enable SSH
|
# Enable SSH
|
||||||
services.openssh = {
|
services.openssh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
@ -1,9 +0,0 @@
|
||||||
{ inputs, ... }:
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
(../modules/program.nix)
|
|
||||||
(../programs)
|
|
||||||
(../users)
|
|
||||||
];
|
|
||||||
|
|
||||||
}
|
|
||||||
500
flake.lock
generated
500
flake.lock
generated
|
|
@ -12,7 +12,7 @@
|
||||||
"ragenix",
|
"ragenix",
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
],
|
||||||
"systems": "systems_14"
|
"systems": "systems_12"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1761656077,
|
"lastModified": 1761656077,
|
||||||
|
|
@ -70,11 +70,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1771587924,
|
"lastModified": 1767967164,
|
||||||
"narHash": "sha256-eVYOGmF8nQBhudJyU6lHdgJI87kvGz8JyCq5/Vi9Mjk=",
|
"narHash": "sha256-Cx4VETh9dGoQYDtWhre7g66d7SAr+h1h6f+SSHxVrck=",
|
||||||
"owner": "catppuccin",
|
"owner": "catppuccin",
|
||||||
"repo": "nix",
|
"repo": "nix",
|
||||||
"rev": "b0c65edbf31c2ad3d84438d82c2310f2c28373f3",
|
"rev": "e973584280e3b0e1d5b5a1a5e9948dc222c54af7",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -83,10 +83,32 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"colmena": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-compat": "flake-compat",
|
||||||
|
"flake-utils": "flake-utils",
|
||||||
|
"nix-github-actions": "nix-github-actions",
|
||||||
|
"nixpkgs": "nixpkgs",
|
||||||
|
"stable": "stable"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1762034856,
|
||||||
|
"narHash": "sha256-QVey3iP3UEoiFVXgypyjTvCrsIlA4ecx6Acaz5C8/PQ=",
|
||||||
|
"owner": "zhaofengli",
|
||||||
|
"repo": "colmena",
|
||||||
|
"rev": "349b035a5027f23d88eeb3bc41085d7ee29f18ed",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "zhaofengli",
|
||||||
|
"repo": "colmena",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"compiler-construction-2021": {
|
"compiler-construction-2021": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-utils": "flake-utils",
|
"flake-utils": "flake-utils_2",
|
||||||
"nixpkgs": "nixpkgs"
|
"nixpkgs": "nixpkgs_2"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1759157554,
|
"lastModified": 1759157554,
|
||||||
|
|
@ -185,29 +207,9 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"deploy-rs": {
|
|
||||||
"inputs": {
|
|
||||||
"flake-compat": "flake-compat",
|
|
||||||
"nixpkgs": "nixpkgs_2",
|
|
||||||
"utils": "utils"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1770019181,
|
|
||||||
"narHash": "sha256-hwsYgDnby50JNVpTRYlF3UR/Rrpt01OrxVuryF40CFY=",
|
|
||||||
"owner": "serokell",
|
|
||||||
"repo": "deploy-rs",
|
|
||||||
"rev": "77c906c0ba56aabdbc72041bf9111b565cdd6171",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "serokell",
|
|
||||||
"repo": "deploy-rs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"dumpasm": {
|
"dumpasm": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-utils": "flake-utils_2",
|
"flake-utils": "flake-utils_3",
|
||||||
"nixpkgs": "nixpkgs_3"
|
"nixpkgs": "nixpkgs_3"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
|
|
@ -278,11 +280,11 @@
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"dir": "pkgs/firefox-addons",
|
"dir": "pkgs/firefox-addons",
|
||||||
"lastModified": 1771918157,
|
"lastModified": 1768881817,
|
||||||
"narHash": "sha256-MU/9oxyXCRKyAskjSgku8P7r0XpQiE50tvDKkNDveJg=",
|
"narHash": "sha256-yEG418W8a7C/bcmRI5Lgd03XbBc8K2yV0kp1WUHTYbA=",
|
||||||
"owner": "rycee",
|
"owner": "rycee",
|
||||||
"repo": "nur-expressions",
|
"repo": "nur-expressions",
|
||||||
"rev": "921c0db962c553e972d59c3563d29fd575437f03",
|
"rev": "bbd2046d41083954fd28c31cb4f2d3510c9e2b1e",
|
||||||
"type": "gitlab"
|
"type": "gitlab"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -311,27 +313,11 @@
|
||||||
"flake-compat": {
|
"flake-compat": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1733328505,
|
"lastModified": 1650374568,
|
||||||
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
|
"narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=",
|
||||||
"owner": "edolstra",
|
"owner": "edolstra",
|
||||||
"repo": "flake-compat",
|
"repo": "flake-compat",
|
||||||
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
|
"rev": "b4a34015c698c7793d592d66adbab377907a2be8",
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "edolstra",
|
|
||||||
"repo": "flake-compat",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"flake-compat_2": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1747046372,
|
|
||||||
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
|
|
||||||
"owner": "edolstra",
|
|
||||||
"repo": "flake-compat",
|
|
||||||
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
|
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -348,11 +334,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1769996383,
|
"lastModified": 1765835352,
|
||||||
"narHash": "sha256-AnYjnFWgS49RlqX7LrC4uA+sCCDBj0Ry/WOJ5XWAsa0=",
|
"narHash": "sha256-XswHlK/Qtjasvhd1nOa1e8MgZ8GS//jBoTqWtrS1Giw=",
|
||||||
"owner": "hercules-ci",
|
"owner": "hercules-ci",
|
||||||
"repo": "flake-parts",
|
"repo": "flake-parts",
|
||||||
"rev": "57928607ea566b5db3ad13af0e57e921e6b12381",
|
"rev": "a34fae9c08a15ad73f295041fec82323541400a9",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -362,15 +348,12 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-utils": {
|
"flake-utils": {
|
||||||
"inputs": {
|
|
||||||
"systems": "systems"
|
|
||||||
},
|
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1731533236,
|
"lastModified": 1659877975,
|
||||||
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
"narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "flake-utils",
|
"repo": "flake-utils",
|
||||||
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
"rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -381,7 +364,7 @@
|
||||||
},
|
},
|
||||||
"flake-utils_10": {
|
"flake-utils_10": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems_15"
|
"systems": "systems_13"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1731533236,
|
"lastModified": 1731533236,
|
||||||
|
|
@ -399,7 +382,7 @@
|
||||||
},
|
},
|
||||||
"flake-utils_11": {
|
"flake-utils_11": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems_16"
|
"systems": "systems_14"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1710146030,
|
"lastModified": 1710146030,
|
||||||
|
|
@ -417,7 +400,7 @@
|
||||||
},
|
},
|
||||||
"flake-utils_12": {
|
"flake-utils_12": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems_17"
|
"systems": "systems_15"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1731533236,
|
"lastModified": 1731533236,
|
||||||
|
|
@ -435,7 +418,7 @@
|
||||||
},
|
},
|
||||||
"flake-utils_13": {
|
"flake-utils_13": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems_18"
|
"systems": "systems_16"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1731533236,
|
"lastModified": 1731533236,
|
||||||
|
|
@ -453,7 +436,7 @@
|
||||||
},
|
},
|
||||||
"flake-utils_14": {
|
"flake-utils_14": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems_19"
|
"systems": "systems_17"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1731533236,
|
"lastModified": 1731533236,
|
||||||
|
|
@ -471,7 +454,7 @@
|
||||||
},
|
},
|
||||||
"flake-utils_15": {
|
"flake-utils_15": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems_20"
|
"systems": "systems_18"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1710146030,
|
"lastModified": 1710146030,
|
||||||
|
|
@ -489,7 +472,7 @@
|
||||||
},
|
},
|
||||||
"flake-utils_2": {
|
"flake-utils_2": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems_3"
|
"systems": "systems"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1731533236,
|
"lastModified": 1731533236,
|
||||||
|
|
@ -507,7 +490,7 @@
|
||||||
},
|
},
|
||||||
"flake-utils_3": {
|
"flake-utils_3": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems_4"
|
"systems": "systems_2"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1731533236,
|
"lastModified": 1731533236,
|
||||||
|
|
@ -525,14 +508,14 @@
|
||||||
},
|
},
|
||||||
"flake-utils_4": {
|
"flake-utils_4": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems_5"
|
"systems": "systems_3"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1710146030,
|
"lastModified": 1731533236,
|
||||||
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
|
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "flake-utils",
|
"repo": "flake-utils",
|
||||||
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
|
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -543,25 +526,7 @@
|
||||||
},
|
},
|
||||||
"flake-utils_5": {
|
"flake-utils_5": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems_6"
|
"systems": "systems_4"
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1731533236,
|
|
||||||
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "flake-utils",
|
|
||||||
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "flake-utils",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"flake-utils_6": {
|
|
||||||
"inputs": {
|
|
||||||
"systems": "systems_7"
|
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1710146030,
|
"lastModified": 1710146030,
|
||||||
|
|
@ -577,9 +542,9 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-utils_7": {
|
"flake-utils_6": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems_9"
|
"systems": "systems_5"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1731533236,
|
"lastModified": 1731533236,
|
||||||
|
|
@ -595,9 +560,27 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"flake-utils_7": {
|
||||||
|
"inputs": {
|
||||||
|
"systems": "systems_6"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1710146030,
|
||||||
|
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"flake-utils_8": {
|
"flake-utils_8": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems_11"
|
"systems": "systems_8"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1731533236,
|
"lastModified": 1731533236,
|
||||||
|
|
@ -615,7 +598,7 @@
|
||||||
},
|
},
|
||||||
"flake-utils_9": {
|
"flake-utils_9": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems_12"
|
"systems": "systems_10"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1731533236,
|
"lastModified": 1731533236,
|
||||||
|
|
@ -656,11 +639,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1771851181,
|
"lastModified": 1768836546,
|
||||||
"narHash": "sha256-gFgE6mGUftwseV3DUENMb0k0EiHd739lZexPo5O/sdQ=",
|
"narHash": "sha256-nJZkTamcXXMW+SMYiGFB6lB8l0aJw0xjssfN8xYd/Fs=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "9a4b494b1aa1b93d8edf167f46dc8e0c0011280c",
|
"rev": "b56c5ad14fcf8b5bc887463552483bf000ca562a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -677,11 +660,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1771851181,
|
"lastModified": 1768512489,
|
||||||
"narHash": "sha256-gFgE6mGUftwseV3DUENMb0k0EiHd739lZexPo5O/sdQ=",
|
"narHash": "sha256-jZi945d3e6DYhrw3K5Pew+QaL3qSgq3O6xiVaEVLgXs=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "9a4b494b1aa1b93d8edf167f46dc8e0c0011280c",
|
"rev": "bba859cd85b90dd9e4e6fd44b2af4aa64ae801a1",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -714,15 +697,15 @@
|
||||||
},
|
},
|
||||||
"homepage": {
|
"homepage": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-utils": "flake-utils_4",
|
"flake-utils": "flake-utils_5",
|
||||||
"nixpkgs": "nixpkgs_5"
|
"nixpkgs": "nixpkgs_5"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1772058280,
|
"lastModified": 1770464309,
|
||||||
"narHash": "sha256-8gZ6wh++43JAe6PH0hmm4Q8gPEScf0S7rkb0MmIxu2U=",
|
"narHash": "sha256-GQh77HwhXATPkWCB10oDeb1q6qZ7KJrPqttNy9NTtLk=",
|
||||||
"owner": "jdonszelmann",
|
"owner": "jdonszelmann",
|
||||||
"repo": "homepage",
|
"repo": "homepage",
|
||||||
"rev": "ead7bebdfa71b207d2513d7f002e164d0b17a264",
|
"rev": "72b2a7932aad8a896f52b788cece4379eefa6663",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -749,18 +732,18 @@
|
||||||
},
|
},
|
||||||
"jujutsu": {
|
"jujutsu": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-utils": "flake-utils_5",
|
"flake-utils": "flake-utils_6",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
],
|
||||||
"rust-overlay": "rust-overlay"
|
"rust-overlay": "rust-overlay"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1771879754,
|
"lastModified": 1768781827,
|
||||||
"narHash": "sha256-X0DpLExFW+/0o+cNCnIJuQZUZGRuBC0Tr9QsbNVXQ1U=",
|
"narHash": "sha256-IbWOHI/IlGC43Mg7AZUu6jCHjIEzFIPAoSlFDJG43A4=",
|
||||||
"owner": "martinvonz",
|
"owner": "martinvonz",
|
||||||
"repo": "jj",
|
"repo": "jj",
|
||||||
"rev": "f89aebceb3a327e33c5ac732b7af548d32ba8199",
|
"rev": "de8531b018a08fd1e2ee67b5c8848146c62be5f4",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -787,7 +770,7 @@
|
||||||
},
|
},
|
||||||
"mapf": {
|
"mapf": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-utils": "flake-utils_6",
|
"flake-utils": "flake-utils_7",
|
||||||
"nixpkgs": "nixpkgs_6"
|
"nixpkgs": "nixpkgs_6"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
|
|
@ -809,36 +792,36 @@
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
],
|
||||||
"systems": "systems_8"
|
"systems": "systems_7"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1770927856,
|
"lastModified": 1768585282,
|
||||||
"narHash": "sha256-2jcqAU8QutF8AE15LYwd8cy7KjayGxUGHxvWnqAiS5M=",
|
"narHash": "sha256-JTH+wQTt8pyS5iPb7+r/70pYfLgi/OFTzimcRmMcs2g=",
|
||||||
"owner": "InioX",
|
"owner": "InioX",
|
||||||
"repo": "matugen",
|
"repo": "matugen",
|
||||||
"rev": "e65259d68edc034905da477b6c1a349e89e2aa8d",
|
"rev": "5905cae968e02d3c1d23ee556e9a0719e5231227",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "InioX",
|
"owner": "InioX",
|
||||||
"ref": "v4.0.0",
|
"ref": "main",
|
||||||
"repo": "matugen",
|
"repo": "matugen",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"mifg": {
|
"mifg": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-utils": "flake-utils_7",
|
"flake-utils": "flake-utils_8",
|
||||||
"naersk": "naersk",
|
"naersk": "naersk",
|
||||||
"nixpkgs": "nixpkgs_8",
|
"nixpkgs": "nixpkgs_8",
|
||||||
"nixpkgs-mozilla": "nixpkgs-mozilla"
|
"nixpkgs-mozilla": "nixpkgs-mozilla"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1770456722,
|
"lastModified": 1768926700,
|
||||||
"narHash": "sha256-2zjh754j9iCkhJiYIQgQhwkaDiXo+K8AfGCayJoQLDI=",
|
"narHash": "sha256-/bANzWLzVAzdRDXua/p9wIDS/RGIHSBHqyduXoCd+P8=",
|
||||||
"ref": "refs/heads/main",
|
"ref": "refs/heads/main",
|
||||||
"rev": "204bf6ed1f899f788c025c7dfc79ce82d3e32002",
|
"rev": "7c883e02e2a77061bfa048d249df0d39b362a5cf",
|
||||||
"revCount": 74,
|
"revCount": 72,
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "ssh://forgejo@git.donsz.nl/jana/money.is.fckn.gay.git"
|
"url": "ssh://forgejo@git.donsz.nl/jana/money.is.fckn.gay.git"
|
||||||
},
|
},
|
||||||
|
|
@ -897,11 +880,11 @@
|
||||||
"xwayland-satellite-unstable": "xwayland-satellite-unstable"
|
"xwayland-satellite-unstable": "xwayland-satellite-unstable"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1771917018,
|
"lastModified": 1768767453,
|
||||||
"narHash": "sha256-igOZoXdb9wDhBtADaa8AfANZRgKzhW2lIq0mtqLVT0U=",
|
"narHash": "sha256-Omq1UHEJ1oxkTo2j8l6qQtmyPR7Uj+k7HC5Khd3jVVA=",
|
||||||
"owner": "sodiboo",
|
"owner": "sodiboo",
|
||||||
"repo": "niri-flake",
|
"repo": "niri-flake",
|
||||||
"rev": "1f65cd89e65431c64b492e505033c4b48c94b20e",
|
"rev": "8eab7c21ef4edc97cc56ddb8e76a842e0818d6d7",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -933,11 +916,11 @@
|
||||||
"rust-overlay": "rust-overlay_2"
|
"rust-overlay": "rust-overlay_2"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1771849386,
|
"lastModified": 1768678265,
|
||||||
"narHash": "sha256-CFvjBjS2LxbBMR3Lu6wZhME6ck3CXyKUufRoJA5tlmw=",
|
"narHash": "sha256-Ub8eed4DsfIDWyg30xEe+8bSxL/z5Af/gCjmvJ0V/Hs=",
|
||||||
"owner": "YaLTeR",
|
"owner": "YaLTeR",
|
||||||
"repo": "niri",
|
"repo": "niri",
|
||||||
"rev": "2dc6f4482c4eeed75ea8b133d89cad8658d38429",
|
"rev": "d7184a04b904e07113f4623610775ae78d32394c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -946,6 +929,27 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nix-github-actions": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"colmena",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1729742964,
|
||||||
|
"narHash": "sha256-B4mzTcQ0FZHdpeWcpDYPERtyjJd/NIuaQ9+BV1h+MpA=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nix-github-actions",
|
||||||
|
"rev": "e04df33f62cdcf93d73e9a04142464753a16db67",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nix-github-actions",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nix-index-database": {
|
"nix-index-database": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
|
|
@ -954,11 +958,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1771734689,
|
"lastModified": 1765267181,
|
||||||
"narHash": "sha256-/phvMgr1yutyAMjKnZlxkVplzxHiz60i4rc+gKzpwhg=",
|
"narHash": "sha256-d3NBA9zEtBu2JFMnTBqWj7Tmi7R5OikoU2ycrdhQEws=",
|
||||||
"owner": "Mic92",
|
"owner": "Mic92",
|
||||||
"repo": "nix-index-database",
|
"repo": "nix-index-database",
|
||||||
"rev": "8f590b832326ab9699444f3a48240595954a4b10",
|
"rev": "82befcf7dc77c909b0f2a09f5da910ec95c5b78f",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -989,36 +993,13 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nix-minecraft": {
|
|
||||||
"inputs": {
|
|
||||||
"flake-compat": "flake-compat_2",
|
|
||||||
"flake-utils": "flake-utils_9",
|
|
||||||
"nixpkgs": [
|
|
||||||
"p1n3appl3",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1769912969,
|
|
||||||
"narHash": "sha256-RtH34gy6R12oXcmBlUWXygdNeC+KuX3beEsLBXV44Qs=",
|
|
||||||
"owner": "Yeshey",
|
|
||||||
"repo": "nix-minecraft",
|
|
||||||
"rev": "7e3a114dd267e9303d092e29af67ca30c1db86ca",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "Yeshey",
|
|
||||||
"repo": "nix-minecraft",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixos-hardware": {
|
"nixos-hardware": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1771423359,
|
"lastModified": 1768499669,
|
||||||
"narHash": "sha256-yRKJ7gpVmXbX2ZcA8nFi6CMPkJXZGjie2unsiMzj3Ig=",
|
"narHash": "sha256-jJr/zDxu5evfQxlXtMrFFF68/RNj1UrctS/eIsay4k0=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixos-hardware",
|
"repo": "nixos-hardware",
|
||||||
"rev": "740a22363033e9f1bb6270fbfb5a9574067af15b",
|
"rev": "7297dfc69ae9b06e984a6f69900ce25e67c76f46",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -1045,11 +1026,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1759036355,
|
"lastModified": 1750134718,
|
||||||
"narHash": "sha256-0m27AKv6ka+q270dw48KflE0LwQYrO7Fm4/2//KCVWg=",
|
"narHash": "sha256-v263g4GbxXv87hMXMCpjkIxd/viIF7p3JpJrwgKdNiI=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "e9f00bd893984bc8ce46c895c3bf7cac95331127",
|
"rev": "9e83b64f727c88a7711a2c463a7b16eedb69a84c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -1093,11 +1074,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs-stable": {
|
"nixpkgs-stable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1771714954,
|
"lastModified": 1768621446,
|
||||||
"narHash": "sha256-nhZJPnBavtu40/L2aqpljrfUNb2rxmWTmSjK2c9UKds=",
|
"narHash": "sha256-6YwHV1cjv6arXdF/PQc365h1j+Qje3Pydk501Rm4Q+4=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "afbbf774e2087c3d734266c22f96fca2e78d3620",
|
"rev": "72ac591e737060deab2b86d6952babd1f896d7c5",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -1109,16 +1090,16 @@
|
||||||
},
|
},
|
||||||
"nixpkgs-stable_2": {
|
"nixpkgs-stable_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1771714954,
|
"lastModified": 1767313136,
|
||||||
"narHash": "sha256-nhZJPnBavtu40/L2aqpljrfUNb2rxmWTmSjK2c9UKds=",
|
"narHash": "sha256-16KkgfdYqjaeRGBaYsNrhPRRENs0qzkQVUooNHtoy2w=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "afbbf774e2087c3d734266c22f96fca2e78d3620",
|
"rev": "ac62194c3917d5f474c1a844b6fd6da2db95077d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"ref": "nixos-25.11",
|
"ref": "nixos-25.05",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
|
|
@ -1141,11 +1122,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs_11": {
|
"nixpkgs_11": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1771932323,
|
"lastModified": 1771067046,
|
||||||
"narHash": "sha256-3PadsTzuMJT/x0KmiD/Me1GG6rW8kaHoWVduSs0ue7o=",
|
"narHash": "sha256-fYZMOngn9UX4dyhKcMEqqLjjw3x8T3v3hlYnnbEZh2E=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "89bb5c5da7a857869cc88ef9b856bffdff8af264",
|
"rev": "75c4807ebe5f9cad5622862f4f26ca73c069be06",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -1156,11 +1137,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs_12": {
|
"nixpkgs_12": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1771369470,
|
"lastModified": 1768305791,
|
||||||
"narHash": "sha256-0NBlEBKkN3lufyvFegY4TYv5mCNHbi5OmBDrzihbBMQ=",
|
"narHash": "sha256-AIdl6WAn9aymeaH/NvBj0H9qM+XuAuYbGMZaP0zcXAQ=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "0182a361324364ae3f436a63005877674cf45efb",
|
"rev": "1412caf7bf9e660f2f962917c14b1ea1c3bc695e",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -1204,11 +1185,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs_15": {
|
"nixpkgs_15": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1768564909,
|
"lastModified": 1767379071,
|
||||||
"narHash": "sha256-Kell/SpJYVkHWMvnhqJz/8DqQg2b6PguxVWOuadbHCc=",
|
"narHash": "sha256-EgE0pxsrW9jp9YFMkHL9JMXxcqi/OoumPJYwf+Okucw=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "e4bae1bd10c9c57b2cf517953ab70060a828ee6f",
|
"rev": "fb7944c166a3b630f177938e478f0378e64ce108",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -1250,11 +1231,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs_18": {
|
"nixpkgs_18": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1771931193,
|
"lastModified": 1769248673,
|
||||||
"narHash": "sha256-IRPLf3y0HxdLirCVYoOYXQyoUBIM8llw7/96OHvyQoM=",
|
"narHash": "sha256-oyxrDiV2yFToXpzwiJUYkxCjFHvL21tMQ2BpQMyMDTw=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "12e7188b8c774804377e7b82f45fa95ee87836cb",
|
"rev": "c0301d62ba146fee37e79fbc4b6323af52a2834e",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -1266,11 +1247,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs_19": {
|
"nixpkgs_19": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1771207753,
|
"lastModified": 1768569498,
|
||||||
"narHash": "sha256-b9uG8yN50DRQ6A7JdZBfzq718ryYrlmGgqkRm9OOwCE=",
|
"narHash": "sha256-bB6Nt99Cj8Nu5nIUq0GLmpiErIT5KFshMQJGMZwgqUo=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "d1c15b7d5806069da59e819999d70e1cec0760bf",
|
"rev": "be5afa0fcb31f0a96bf9ecba05a516c66fcd8114",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -1282,16 +1263,16 @@
|
||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1743014863,
|
"lastModified": 1759036355,
|
||||||
"narHash": "sha256-jAIUqsiN2r3hCuHji80U7NNEafpIMBXiwKlSrjWMlpg=",
|
"narHash": "sha256-0m27AKv6ka+q270dw48KflE0LwQYrO7Fm4/2//KCVWg=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "bd3bac8bfb542dbde7ffffb6987a1a1f9d41699f",
|
"rev": "e9f00bd893984bc8ce46c895c3bf7cac95331127",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"ref": "nixpkgs-unstable",
|
"ref": "nixos-unstable",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
|
|
@ -1424,11 +1405,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs_9": {
|
"nixpkgs_9": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1771848320,
|
"lastModified": 1768564909,
|
||||||
"narHash": "sha256-0MAd+0mun3K/Ns8JATeHT1sX28faLII5hVLq0L3BdZU=",
|
"narHash": "sha256-Kell/SpJYVkHWMvnhqJz/8DqQg2b6PguxVWOuadbHCc=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "2fc6539b481e1d2569f25f8799236694180c0993",
|
"rev": "e4bae1bd10c9c57b2cf517953ab70060a828ee6f",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -1444,14 +1425,14 @@
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
],
|
||||||
"systems": "systems_10"
|
"systems": "systems_9"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1771135771,
|
"lastModified": 1768795384,
|
||||||
"narHash": "sha256-wyvBIhDuyCRyjB3yPg77qoyxrlgQtBR1rVW3c9knV3E=",
|
"narHash": "sha256-gZIXLzhupxAwRMMRTFgrl669ciYiiPmnA3PwocJ+6jQ=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nixvim",
|
"repo": "nixvim",
|
||||||
"rev": "ed0424f0b08d303a7348f52f7850ad1b2704f9ba",
|
"rev": "57d393deb53af1b28b14973d3e3885c3d17e7bbe",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -1467,11 +1448,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1771872869,
|
"lastModified": 1768845494,
|
||||||
"narHash": "sha256-evn+p0+T9yNtjdRr5UnYwXnhlHgFB8ilzhGQoYvgXhs=",
|
"narHash": "sha256-PKlKrQMhk+ygsVPny9iOcttZRic870ZbFLTpZEz3MUg=",
|
||||||
"owner": "noctalia-dev",
|
"owner": "noctalia-dev",
|
||||||
"repo": "noctalia-shell",
|
"repo": "noctalia-shell",
|
||||||
"rev": "90e44d6edd604a0877310b01ff20006abcf67e77",
|
"rev": "77aaf6923d19ec824ea142ce02018bfe9a967da4",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -1486,7 +1467,7 @@
|
||||||
"p1n3appl3",
|
"p1n3appl3",
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
],
|
||||||
"utils": "utils_2"
|
"utils": "utils"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1760151712,
|
"lastModified": 1760151712,
|
||||||
|
|
@ -1505,10 +1486,9 @@
|
||||||
"p1n3appl3": {
|
"p1n3appl3": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"catppuccin": "catppuccin",
|
"catppuccin": "catppuccin",
|
||||||
"flake-utils": "flake-utils_8",
|
"flake-utils": "flake-utils_9",
|
||||||
"home-manager": "home-manager_2",
|
"home-manager": "home-manager_2",
|
||||||
"nix-index-database": "nix-index-database",
|
"nix-index-database": "nix-index-database",
|
||||||
"nix-minecraft": "nix-minecraft",
|
|
||||||
"nixos-hardware": "nixos-hardware",
|
"nixos-hardware": "nixos-hardware",
|
||||||
"nixpkgs": "nixpkgs_12",
|
"nixpkgs": "nixpkgs_12",
|
||||||
"nixpkgs-stable": "nixpkgs-stable_2",
|
"nixpkgs-stable": "nixpkgs-stable_2",
|
||||||
|
|
@ -1520,11 +1500,11 @@
|
||||||
"slippi": "slippi"
|
"slippi": "slippi"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1771898420,
|
"lastModified": 1768515258,
|
||||||
"narHash": "sha256-8EhIWQZRL55RpAgydge71fk+frXroDdWX1Smt5E0MBI=",
|
"narHash": "sha256-MBDxLHOIIminP+BPP74UQ3WBDnkbFguoW6MV6WXaepE=",
|
||||||
"owner": "p1n3appl3",
|
"owner": "p1n3appl3",
|
||||||
"repo": "config",
|
"repo": "config",
|
||||||
"rev": "cf988820ffaaa44d0f8607f2417f9527d142b52c",
|
"rev": "e6de5bc3c0a67c2a0ed51231df0cd9e0adcfac60",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -1679,12 +1659,12 @@
|
||||||
},
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
|
"colmena": "colmena",
|
||||||
"compiler-construction-2021": "compiler-construction-2021",
|
"compiler-construction-2021": "compiler-construction-2021",
|
||||||
"deploy-rs": "deploy-rs",
|
|
||||||
"dumpasm": "dumpasm",
|
"dumpasm": "dumpasm",
|
||||||
"firefox-addons": "firefox-addons",
|
"firefox-addons": "firefox-addons",
|
||||||
"firefox-sidebar-css": "firefox-sidebar-css",
|
"firefox-sidebar-css": "firefox-sidebar-css",
|
||||||
"flake-utils": "flake-utils_3",
|
"flake-utils": "flake-utils_4",
|
||||||
"harmonica": "harmonica",
|
"harmonica": "harmonica",
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"homepage": "homepage",
|
"homepage": "homepage",
|
||||||
|
|
@ -1752,11 +1732,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1769482338,
|
"lastModified": 1762915112,
|
||||||
"narHash": "sha256-SVwjMqR981PEdEdRvYj5Mefnd61GLinWmIr7GMu7LW8=",
|
"narHash": "sha256-d9j1g8nKmYDHy+/bIOPQTh9IwjRliqaTM0QLHMV92Ic=",
|
||||||
"owner": "oxalica",
|
"owner": "oxalica",
|
||||||
"repo": "rust-overlay",
|
"repo": "rust-overlay",
|
||||||
"rev": "dc9c76a75a6d382613cdcb1a3f95640e9cedcdea",
|
"rev": "aa1e85921cfa04de7b6914982a94621fbec5cc02",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -1869,11 +1849,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1768682904,
|
"lastModified": 1760294822,
|
||||||
"narHash": "sha256-d4VEGrKHx9EisLHdGDN15w1PsuS5ZImvewwucTM3rUo=",
|
"narHash": "sha256-VSzDcCkS/kGrALPv81x5yjqjt5o7n4lVjE/gknlz+1w=",
|
||||||
"owner": "lytedev",
|
"owner": "lytedev",
|
||||||
"repo": "slippi-nix",
|
"repo": "slippi-nix",
|
||||||
"rev": "1f309afd4be00afedf34add3645ba2c1b97bdb40",
|
"rev": "abee78f6ad931c2a2f18dae102f51abcaf1a26c6",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -1887,11 +1867,11 @@
|
||||||
"nixpkgs": "nixpkgs_19"
|
"nixpkgs": "nixpkgs_19"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1771889317,
|
"lastModified": 1768709255,
|
||||||
"narHash": "sha256-YV17Q5lEU0S9ppw08Y+cs4eEQJBuc79AzblFoHORLMU=",
|
"narHash": "sha256-aigyBfxI20FRtqajVMYXHtj5gHXENY2gLAXEhfJ8/WM=",
|
||||||
"owner": "Mic92",
|
"owner": "Mic92",
|
||||||
"repo": "sops-nix",
|
"repo": "sops-nix",
|
||||||
"rev": "b027513c32e5b39b59f64626b87fbe168ae02094",
|
"rev": "5e8fae80726b66e9fec023d21cd3b3e638597aa9",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -1900,6 +1880,22 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"stable": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1750133334,
|
||||||
|
"narHash": "sha256-urV51uWH7fVnhIvsZIELIYalMYsyr2FCalvlRTzqWRw=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "36ab78dab7da2e4e27911007033713bab534187b",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-25.05",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"systems": {
|
"systems": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1681028828,
|
"lastModified": 1681028828,
|
||||||
|
|
@ -2050,21 +2046,6 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"systems_19": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1681028828,
|
|
||||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default",
|
|
||||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"systems_2": {
|
"systems_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1681028828,
|
"lastModified": 1681028828,
|
||||||
|
|
@ -2080,21 +2061,6 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"systems_20": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1681028828,
|
|
||||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default",
|
|
||||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"systems_3": {
|
"systems_3": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1681028828,
|
"lastModified": 1681028828,
|
||||||
|
|
@ -2156,21 +2122,6 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"systems_7": {
|
"systems_7": {
|
||||||
"locked": {
|
|
||||||
"lastModified": 1681028828,
|
|
||||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default",
|
|
||||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"systems_8": {
|
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1689347949,
|
"lastModified": 1689347949,
|
||||||
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
|
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
|
||||||
|
|
@ -2185,6 +2136,21 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"systems_8": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"systems_9": {
|
"systems_9": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1681028828,
|
"lastModified": 1681028828,
|
||||||
|
|
@ -2239,25 +2205,7 @@
|
||||||
},
|
},
|
||||||
"utils": {
|
"utils": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems_2"
|
"systems": "systems_11"
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1731533236,
|
|
||||||
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "flake-utils",
|
|
||||||
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "flake-utils",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"utils_2": {
|
|
||||||
"inputs": {
|
|
||||||
"systems": "systems_13"
|
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1731533236,
|
"lastModified": 1731533236,
|
||||||
|
|
@ -2308,11 +2256,11 @@
|
||||||
"xwayland-satellite-unstable": {
|
"xwayland-satellite-unstable": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1771787042,
|
"lastModified": 1768765571,
|
||||||
"narHash": "sha256-7bM6Y4KldhKnfopSALF8XALxcX7ehkomXH9sPl4MXp0=",
|
"narHash": "sha256-C1JbyJ3ftogmN3vmLNfyPtnJw2wY64TiUTIhFtk1Leg=",
|
||||||
"owner": "Supreeeme",
|
"owner": "Supreeeme",
|
||||||
"repo": "xwayland-satellite",
|
"repo": "xwayland-satellite",
|
||||||
"rev": "33c344fee50504089a447a8fef5878cf4f6215fc",
|
"rev": "ed1cef792b4def3321ff9ab5479df09609f17a69",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
|
||||||
130
flake.nix
130
flake.nix
|
|
@ -2,16 +2,21 @@
|
||||||
description = "jana's server infrastructure";
|
description = "jana's server infrastructure";
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:NixOS/nixpkgs";
|
nixpkgs.url = "github:NixOS/nixpkgs";
|
||||||
|
colmena.url = "github:zhaofengli/colmena";
|
||||||
flake-utils.url = "github:numtide/flake-utils";
|
flake-utils.url = "github:numtide/flake-utils";
|
||||||
|
sops-nix.url = "github:Mic92/sops-nix";
|
||||||
|
vpn-confinement.url = "github:Maroka-chan/VPN-Confinement";
|
||||||
home-manager = {
|
home-manager = {
|
||||||
url = "github:nix-community/home-manager";
|
url = "github:nix-community/home-manager";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
firefox-addons = {
|
||||||
# deployment
|
url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons";
|
||||||
deploy-rs.url = "github:serokell/deploy-rs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
# websites
|
# websites
|
||||||
|
|
||||||
homepage.url = "github:jdonszelmann/homepage";
|
homepage.url = "github:jdonszelmann/homepage";
|
||||||
totpal.url = "github:jdonszelmann/totpal";
|
totpal.url = "github:jdonszelmann/totpal";
|
||||||
harmonica.url = "git+ssh://git@github.com/jdonszelmann/harmonica-tabs";
|
harmonica.url = "git+ssh://git@github.com/jdonszelmann/harmonica-tabs";
|
||||||
|
|
@ -20,39 +25,39 @@
|
||||||
compiler-construction-2021.url = "git+ssh://forgejo@git.donsz.nl/jana/eelco-visser-compiler-construction.git";
|
compiler-construction-2021.url = "git+ssh://forgejo@git.donsz.nl/jana/eelco-visser-compiler-construction.git";
|
||||||
mifg.url = "git+ssh://forgejo@git.donsz.nl/jana/money.is.fckn.gay.git";
|
mifg.url = "git+ssh://forgejo@git.donsz.nl/jana/money.is.fckn.gay.git";
|
||||||
|
|
||||||
# server
|
|
||||||
raw-data.url = "git+ssh://forgejo@git.donsz.nl/jana/raw-data.git";
|
|
||||||
secrets.url = "git+ssh://forgejo@git.donsz.nl/jana/server-secrets.git";
|
secrets.url = "git+ssh://forgejo@git.donsz.nl/jana/server-secrets.git";
|
||||||
sops-nix.url = "github:Mic92/sops-nix";
|
|
||||||
vpn-confinement.url = "github:Maroka-chan/VPN-Confinement";
|
|
||||||
|
|
||||||
# home
|
|
||||||
nixvim = {
|
nixvim = {
|
||||||
url = "github:nix-community/nixvim";
|
url = "github:nix-community/nixvim";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
t.url = "github:jdonszelmann/t-rs";
|
t.url = "github:jdonszelmann/t-rs";
|
||||||
dumpasm.url = "github:jdonszelmann/dumpasm";
|
dumpasm.url = "github:jdonszelmann/dumpasm";
|
||||||
|
|
||||||
kitty-search = {
|
kitty-search = {
|
||||||
url = "github:trygveaa/kitty-kitten-search";
|
url = "github:trygveaa/kitty-kitten-search";
|
||||||
flake = false;
|
flake = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
jujutsu = {
|
jujutsu = {
|
||||||
url = "github:martinvonz/jj";
|
url = "github:martinvonz/jj";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
p1n3appl3 = {
|
p1n3appl3 = {
|
||||||
url = "github:p1n3appl3/config";
|
url = "github:p1n3appl3/config";
|
||||||
inputs.rahul-config.follows = "rahul-config";
|
inputs.rahul-config.follows = "rahul-config";
|
||||||
};
|
};
|
||||||
rahul-config.url = "github:jdonszelmann/nix-config";
|
rahul-config.url = "github:jdonszelmann/nix-config";
|
||||||
|
|
||||||
niri-unstable.url = "github:YaLTeR/niri";
|
niri-unstable.url = "github:YaLTeR/niri";
|
||||||
niri = {
|
niri = {
|
||||||
url = "github:sodiboo/niri-flake";
|
url = "github:sodiboo/niri-flake";
|
||||||
inputs.niri-unstable.follows = "niri-unstable";
|
inputs.niri-unstable.follows = "niri-unstable";
|
||||||
};
|
};
|
||||||
matugen = {
|
matugen = {
|
||||||
url = "github:/InioX/matugen/v4.0.0";
|
url = "github:/InioX/matugen/main";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
noctalia = {
|
noctalia = {
|
||||||
|
|
@ -60,23 +65,21 @@
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
pipethon.url = "git+ssh://forgejo@git.donsz.nl/jana/pipethon.git";
|
pipethon.url = "git+ssh://forgejo@git.donsz.nl/jana/pipethon.git";
|
||||||
firefox-addons = {
|
|
||||||
url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
firefox-sidebar-css = {
|
firefox-sidebar-css = {
|
||||||
url = "github:drannex/FirefoxSidebar";
|
url = "github:drannex/FirefoxSidebar";
|
||||||
flake = false;
|
flake = false;
|
||||||
};
|
};
|
||||||
|
raw-data.url = "git+ssh://forgejo@git.donsz.nl/jana/raw-data.git";
|
||||||
};
|
};
|
||||||
outputs =
|
outputs =
|
||||||
{
|
{
|
||||||
|
self,
|
||||||
nixpkgs,
|
nixpkgs,
|
||||||
|
colmena,
|
||||||
flake-utils,
|
flake-utils,
|
||||||
sops-nix,
|
sops-nix,
|
||||||
vpn-confinement,
|
vpn-confinement,
|
||||||
deploy-rs,
|
home-manager,
|
||||||
...
|
...
|
||||||
}@inputs:
|
}@inputs:
|
||||||
let
|
let
|
||||||
|
|
@ -92,40 +95,61 @@
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
configs = import ./config.nix (inputs // { inherit pkgsForSystem; });
|
|
||||||
in
|
in
|
||||||
(configs.configs [
|
|
||||||
{
|
{
|
||||||
hostname = "fili";
|
colmenaHive = colmena.lib.makeHive self.outputs.colmena;
|
||||||
capabilities = [ "cli" ];
|
|
||||||
type = "server";
|
colmena = {
|
||||||
extra-modules = [
|
meta =
|
||||||
|
let
|
||||||
|
system = "x86_64-linux";
|
||||||
|
in
|
||||||
|
{
|
||||||
|
nixpkgs = pkgsForSystem system;
|
||||||
|
specialArgs = {
|
||||||
|
flakes = inputs;
|
||||||
|
inherit inputs;
|
||||||
|
inherit (inputs.secrets.packages.${system}) secrets;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
fili = {
|
||||||
|
deployment = {
|
||||||
|
targetHost = "donsz.nl";
|
||||||
|
targetPort = 22;
|
||||||
|
replaceUnknownProfiles = false;
|
||||||
|
tags = [ "server" ];
|
||||||
|
# buildOnTarget = true;
|
||||||
|
targetUser = "jana";
|
||||||
|
};
|
||||||
|
|
||||||
|
imports = [
|
||||||
|
home-manager.nixosModules.home-manager
|
||||||
|
./hosts/fili/configuration.nix
|
||||||
|
./users
|
||||||
|
./default-machine-config.nix
|
||||||
sops-nix.nixosModules.sops
|
sops-nix.nixosModules.sops
|
||||||
vpn-confinement.nixosModules.default
|
vpn-confinement.nixosModules.default
|
||||||
];
|
];
|
||||||
}
|
};
|
||||||
{
|
|
||||||
hostname = "kili";
|
kili = {
|
||||||
deploy-hostname = "localhost";
|
deployment = {
|
||||||
capabilities = [
|
allowLocalDeployment = true;
|
||||||
"cli"
|
targetHost = null;
|
||||||
"graphical"
|
replaceUnknownProfiles = false;
|
||||||
"work"
|
tags = [ "laptop" ];
|
||||||
"fun"
|
# buildOnTarget = true;
|
||||||
|
targetUser = "jana";
|
||||||
|
};
|
||||||
|
imports = [
|
||||||
|
home-manager.nixosModules.home-manager
|
||||||
|
./hosts/kili/configuration.nix
|
||||||
|
./users
|
||||||
];
|
];
|
||||||
type = "pc";
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
{
|
|
||||||
hostname = "ragdoll";
|
|
||||||
deploy-hostname = "ragdoll";
|
|
||||||
home-only = "jana";
|
|
||||||
capabilities = [
|
|
||||||
"cli"
|
|
||||||
"work"
|
|
||||||
];
|
|
||||||
type = "pc";
|
|
||||||
}
|
|
||||||
])
|
|
||||||
// flake-utils.lib.eachDefaultSystem (
|
// flake-utils.lib.eachDefaultSystem (
|
||||||
system:
|
system:
|
||||||
let
|
let
|
||||||
|
|
@ -135,27 +159,17 @@
|
||||||
devShells.default = pkgs.mkShell {
|
devShells.default = pkgs.mkShell {
|
||||||
buildInputs = with pkgs; [
|
buildInputs = with pkgs; [
|
||||||
lix
|
lix
|
||||||
(pkgs.writeShellScriptBin "apply-local" ''
|
colmena.packages.${system}.colmena
|
||||||
apply $(hostname)
|
|
||||||
'')
|
|
||||||
(pkgs.writeShellScriptBin "apply" ''
|
(pkgs.writeShellScriptBin "apply" ''
|
||||||
set -e
|
colmena apply --no-substitute
|
||||||
if [ $# -eq 0 ]
|
'')
|
||||||
then
|
(pkgs.writeShellScriptBin "apply-local" ''
|
||||||
deploy -s
|
colmena apply-local --sudo
|
||||||
elif [ $# -eq 1 ]
|
|
||||||
then
|
|
||||||
deploy -s ".#$@"
|
|
||||||
else
|
|
||||||
echo "too many parameters"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
'')
|
'')
|
||||||
deploy-rs.packages.${system}.deploy-rs
|
|
||||||
];
|
];
|
||||||
shellHook = "exec $NIX_BUILD_SHELL";
|
shellHook = "exec $NIX_BUILD_SHELL";
|
||||||
};
|
};
|
||||||
custom-packages = custom pkgs;
|
packages = custom pkgs;
|
||||||
formatter = pkgs.nixfmt;
|
formatter = pkgs.nixfmt;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,13 @@ _: {
|
||||||
./services
|
./services
|
||||||
];
|
];
|
||||||
|
|
||||||
|
custom.machine = {
|
||||||
|
type = "server";
|
||||||
|
capabilities = [
|
||||||
|
"cli"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
networking.nameservers = [
|
networking.nameservers = [
|
||||||
"1.1.1.1"
|
"1.1.1.1"
|
||||||
"9.9.9.9"
|
"9.9.9.9"
|
||||||
|
|
@ -43,6 +50,4 @@ _: {
|
||||||
"media"
|
"media"
|
||||||
"nginx"
|
"nginx"
|
||||||
];
|
];
|
||||||
|
|
||||||
users.groups.media = { };
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -61,7 +61,7 @@ let
|
||||||
};
|
};
|
||||||
privateUsers = "no";
|
privateUsers = "no";
|
||||||
|
|
||||||
imports =
|
config =
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
|
|
|
||||||
|
|
@ -150,7 +150,7 @@
|
||||||
wget
|
wget
|
||||||
|
|
||||||
# used in deployments
|
# used in deployments
|
||||||
# flakes.deploy.defaultPackage."x86_64-linux"
|
flakes.colmena.defaultPackage."x86_64-linux"
|
||||||
lix
|
lix
|
||||||
openssh
|
openssh
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -68,21 +68,10 @@
|
||||||
|
|
||||||
settings = {
|
settings = {
|
||||||
server.externalDomain = "https://photos.donsz.nl";
|
server.externalDomain = "https://photos.donsz.nl";
|
||||||
logging.level = "log";
|
logging.level = "verbose";
|
||||||
|
|
||||||
passwordLogin.enabled = false;
|
passwordLogin.enabled = false;
|
||||||
|
|
||||||
storageTemplate = {
|
|
||||||
enabled = true;
|
|
||||||
# year / album name or "Other" / y m d / filename
|
|
||||||
template = "{{y}}/{{#if album}}{{album}}{{else}}Other{{/if}}/{{y}}-{{MM}}-{{dd}}/{{filename}}";
|
|
||||||
hashVerificationEnabled = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
reverseGeocoding = {
|
|
||||||
enabled = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
oauth = {
|
oauth = {
|
||||||
enabled = true;
|
enabled = true;
|
||||||
|
|
||||||
|
|
@ -95,7 +84,10 @@
|
||||||
roleClaim = "immich_role";
|
roleClaim = "immich_role";
|
||||||
scope = "openid email profile groups";
|
scope = "openid email profile groups";
|
||||||
tokenEndpointAuthMethod = "client_secret_post";
|
tokenEndpointAuthMethod = "client_secret_post";
|
||||||
storageLabelClaim = "preferred_username";
|
# storageLabelClaim: "",
|
||||||
|
# "mobileOverrideEnabled": false,
|
||||||
|
# "mobileRedirectUri": "",
|
||||||
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
mediaLocation = "/storage/storage/media-server/photos";
|
mediaLocation = "/storage/storage/media-server/photos";
|
||||||
|
|
|
||||||
|
|
@ -259,7 +259,7 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
services.grafana = {
|
services.grafana = {
|
||||||
enable = false;
|
enable = true;
|
||||||
|
|
||||||
settings = {
|
settings = {
|
||||||
server = {
|
server = {
|
||||||
|
|
|
||||||
|
|
@ -6,9 +6,19 @@
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
./kanata.nix
|
../../default-machine-config.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
|
custom.machine = {
|
||||||
|
type = "pc";
|
||||||
|
capabilities = [
|
||||||
|
"cli"
|
||||||
|
"graphical"
|
||||||
|
"work"
|
||||||
|
"fun"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
boot.loader.systemd-boot.enable = true;
|
boot.loader.systemd-boot.enable = true;
|
||||||
boot.loader.efi.canTouchEfiVariables = true;
|
boot.loader.efi.canTouchEfiVariables = true;
|
||||||
|
|
||||||
|
|
@ -42,7 +52,6 @@
|
||||||
extraGroups = [
|
extraGroups = [
|
||||||
"networkmanager"
|
"networkmanager"
|
||||||
"wheel"
|
"wheel"
|
||||||
"docker"
|
|
||||||
];
|
];
|
||||||
packages = with pkgs; [ ];
|
packages = with pkgs; [ ];
|
||||||
};
|
};
|
||||||
|
|
@ -52,8 +61,6 @@
|
||||||
# List packages installed in system profile. To search, run:
|
# List packages installed in system profile. To search, run:
|
||||||
# $ nix search wget
|
# $ nix search wget
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
gcc
|
|
||||||
docker
|
|
||||||
|
|
||||||
firefox
|
firefox
|
||||||
kitty
|
kitty
|
||||||
|
|
@ -80,13 +87,8 @@
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
) { })
|
) { })
|
||||||
|
|
||||||
config.boot.kernelPackages.perf
|
|
||||||
rr
|
|
||||||
];
|
];
|
||||||
|
|
||||||
virtualisation.docker.enable = true;
|
|
||||||
|
|
||||||
services.xserver.enable = true;
|
services.xserver.enable = true;
|
||||||
services.displayManager.gdm.enable = true;
|
services.displayManager.gdm.enable = true;
|
||||||
services.desktopManager.gnome.enable = true;
|
services.desktopManager.gnome.enable = true;
|
||||||
|
|
@ -155,13 +157,6 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
programs.steam = {
|
|
||||||
enable = true;
|
|
||||||
remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play
|
|
||||||
dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server
|
|
||||||
localNetworkGameTransfers.openFirewall = true; # Open ports in the firewall for Steam Local Network Game Transfers
|
|
||||||
};
|
|
||||||
|
|
||||||
# programs.mtr.enable = true;
|
# programs.mtr.enable = true;
|
||||||
# programs.gnupg.agent = {
|
# programs.gnupg.agent = {
|
||||||
# enable = true;
|
# enable = true;
|
||||||
|
|
|
||||||
|
|
@ -1,43 +1,27 @@
|
||||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||||
# and may be overwritten by future invocations. Please make changes
|
# and may be overwritten by future invocations. Please make changes
|
||||||
# to /etc/nixos/configuration.nix instead.
|
# to /etc/nixos/configuration.nix instead.
|
||||||
{
|
{ config, lib, pkgs, modulesPath, ... }:
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
modulesPath,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
{
|
{
|
||||||
imports = [
|
imports =
|
||||||
(modulesPath + "/installer/scan/not-detected.nix")
|
[ (modulesPath + "/installer/scan/not-detected.nix")
|
||||||
];
|
];
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = [
|
boot.initrd.availableKernelModules = [ "xhci_pci" "thunderbolt" "nvme" "usbhid" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ];
|
||||||
"xhci_pci"
|
|
||||||
"thunderbolt"
|
|
||||||
"nvme"
|
|
||||||
"usbhid"
|
|
||||||
"usb_storage"
|
|
||||||
"sd_mod"
|
|
||||||
"rtsx_pci_sdmmc"
|
|
||||||
];
|
|
||||||
boot.initrd.kernelModules = [ ];
|
boot.initrd.kernelModules = [ ];
|
||||||
boot.kernelModules = [ "kvm-intel" ];
|
boot.kernelModules = [ "kvm-intel" ];
|
||||||
boot.extraModulePackages = [ ];
|
boot.extraModulePackages = [ ];
|
||||||
|
|
||||||
fileSystems."/" = {
|
fileSystems."/" =
|
||||||
device = "/dev/disk/by-uuid/4919727e-d114-4d57-b206-522b5df5fccc";
|
{ device = "/dev/disk/by-uuid/4919727e-d114-4d57-b206-522b5df5fccc";
|
||||||
fsType = "ext4";
|
fsType = "ext4";
|
||||||
};
|
};
|
||||||
|
|
||||||
fileSystems."/boot" = {
|
fileSystems."/boot" =
|
||||||
device = "/dev/disk/by-uuid/26CD-373C";
|
{ device = "/dev/disk/by-uuid/26CD-373C";
|
||||||
fsType = "vfat";
|
fsType = "vfat";
|
||||||
options = [
|
options = [ "fmask=0077" "dmask=0077" ];
|
||||||
"fmask=0077"
|
|
||||||
"dmask=0077"
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
swapDevices = [ ];
|
swapDevices = [ ];
|
||||||
|
|
|
||||||
|
|
@ -1,13 +0,0 @@
|
||||||
{ pkgs, ... }:
|
|
||||||
{
|
|
||||||
# TODO: make kanata system pkgs only
|
|
||||||
users.groups.uinput = { };
|
|
||||||
users.extraUsers.jana.extraGroups = [
|
|
||||||
"uinput"
|
|
||||||
"input"
|
|
||||||
];
|
|
||||||
environment.systemPackages = [ pkgs.kanata-with-cmd ];
|
|
||||||
services.udev.extraRules = ''
|
|
||||||
KERNEL=="uinput", MODE="0660", GROUP="uinput", OPTIONS+="static_node=uinput"
|
|
||||||
'';
|
|
||||||
}
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
{
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
imports = [ ];
|
|
||||||
|
|
||||||
}
|
|
||||||
16
modules/home-info.nix
Normal file
16
modules/home-info.nix
Normal file
|
|
@ -0,0 +1,16 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib;
|
||||||
|
{
|
||||||
|
options = {
|
||||||
|
custom.home-info = mkOption {
|
||||||
|
type = types.submodule {
|
||||||
|
options = {
|
||||||
|
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
25
modules/machine-type.nix
Normal file
25
modules/machine-type.nix
Normal file
|
|
@ -0,0 +1,25 @@
|
||||||
|
{
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib;
|
||||||
|
{
|
||||||
|
options = {
|
||||||
|
custom.machine = mkOption {
|
||||||
|
type = types.submodule {
|
||||||
|
options = {
|
||||||
|
type = mkOption {
|
||||||
|
type = types.enum [
|
||||||
|
"server"
|
||||||
|
"pc"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
capabilities = mkOption {
|
||||||
|
type = types.listOf (types.enum (import ./capabilities.nix));
|
||||||
|
default = [ "cli" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
inputs@{
|
{
|
||||||
lib,
|
lib,
|
||||||
options,
|
options,
|
||||||
machine,
|
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
with lib;
|
with lib;
|
||||||
|
|
@ -9,16 +8,28 @@ with lib;
|
||||||
options = {
|
options = {
|
||||||
custom.program = mkOption {
|
custom.program = mkOption {
|
||||||
type = types.attrsOf (
|
type = types.attrsOf (
|
||||||
types.submodule (_: {
|
types.submodule (
|
||||||
|
{ config, ... }:
|
||||||
|
{
|
||||||
options = {
|
options = {
|
||||||
name = mkOption {
|
name = mkOption {
|
||||||
type = types.string;
|
type = types.string;
|
||||||
};
|
};
|
||||||
defered-config = mkOption {
|
requirements = mkOption {
|
||||||
|
type = types.listOf (types.enum (import ./capabilities.nix));
|
||||||
|
default = [ "cli" ];
|
||||||
|
};
|
||||||
|
home-config = mkOption {
|
||||||
type = types.deferredModule;
|
type = types.deferredModule;
|
||||||
};
|
};
|
||||||
|
system-config = mkOption {
|
||||||
|
# type = types.attrs;
|
||||||
|
type = types.deferredModule;
|
||||||
|
default = { };
|
||||||
};
|
};
|
||||||
})
|
};
|
||||||
|
}
|
||||||
|
)
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,31 +1,30 @@
|
||||||
args@{
|
{
|
||||||
lib,
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
config,
|
config,
|
||||||
machine,
|
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
with lib;
|
with lib;
|
||||||
let
|
let
|
||||||
cfg = config.custom.users;
|
cfg = config.custom.users;
|
||||||
inherit (machine) home-only;
|
machine = config.custom.machine;
|
||||||
inherit (machine) stateVersion;
|
|
||||||
|
|
||||||
valid-on-machine =
|
valid-on-machine =
|
||||||
on:
|
on:
|
||||||
# TODO: iterate over possibilities
|
# TODO: iterate over possibilities
|
||||||
(
|
|
||||||
if machine.type == "server" then
|
if machine.type == "server" then
|
||||||
on.server
|
on.server
|
||||||
else if machine.type == "pc" then
|
else if machine.type == "pc" then
|
||||||
on.pc
|
on.pc
|
||||||
else
|
else
|
||||||
false
|
false;
|
||||||
);
|
matches-capabilities =
|
||||||
|
# all requirements are contained in the machine capabilities
|
||||||
|
requirements: lib.all (req: builtins.elem req machine.capabilities) requirements;
|
||||||
users = lib.filterAttrs (_: value: valid-on-machine value.on) cfg;
|
users = lib.filterAttrs (_: value: valid-on-machine value.on) cfg;
|
||||||
home-users = lib.filterAttrs (_: value: value.apply-home-configs) users;
|
home-users = lib.filterAttrs (_: value: value.apply-home-configs) users;
|
||||||
|
stateVersion = config.system.stateVersion;
|
||||||
programs = lib.attrsets.attrValues config.custom.program;
|
programs = lib.attrsets.attrValues config.custom.program;
|
||||||
|
valid-programs = builtins.filter (program: matches-capabilities program.requirements) programs;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options =
|
options =
|
||||||
|
|
@ -76,47 +75,35 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config = lib.mkMerge [
|
config = lib.mkMerge ([
|
||||||
(
|
|
||||||
if (!builtins.isNull home-only) then
|
|
||||||
lib.mkMerge ([
|
|
||||||
{
|
|
||||||
home = {
|
|
||||||
inherit stateVersion;
|
|
||||||
username = toString home-only;
|
|
||||||
homeDirectory = "/home/${toString home-only}";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
]
|
|
||||||
# ++ map (program: program.home-config) programs
|
|
||||||
)
|
|
||||||
else
|
|
||||||
(lib.mkMerge ([
|
|
||||||
{
|
{
|
||||||
users.extraUsers = lib.mapAttrs (name: value: {
|
users.extraUsers = lib.mapAttrs (name: value: {
|
||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
extraGroups = value.groups;
|
extraGroups = value.groups;
|
||||||
openssh.authorizedKeys.keys = value.keys;
|
openssh.authorizedKeys.keys = value.keys;
|
||||||
inherit (value) shell;
|
shell = value.shell;
|
||||||
description = name;
|
description = name;
|
||||||
}) users;
|
}) users;
|
||||||
home-manager.users = lib.mapAttrs (
|
home-manager.users = lib.mapAttrs (
|
||||||
name: value:
|
name: value:
|
||||||
(_: {
|
(
|
||||||
|
{ pkgs, lib, ... }:
|
||||||
|
{
|
||||||
imports = (
|
imports = (
|
||||||
[
|
[
|
||||||
|
./home-info.nix
|
||||||
]
|
]
|
||||||
++ (map (program: program.defered-config) programs)
|
++ (map (program: program.home-config) valid-programs)
|
||||||
);
|
);
|
||||||
|
|
||||||
home = {
|
home = {
|
||||||
inherit stateVersion;
|
inherit stateVersion;
|
||||||
username = name;
|
username = name;
|
||||||
homeDirectory = "/home/${name}";
|
homeDirectory = "/home/${name}";
|
||||||
};
|
};
|
||||||
})
|
}
|
||||||
|
)
|
||||||
) home-users;
|
) home-users;
|
||||||
}
|
}
|
||||||
]))
|
]);
|
||||||
)
|
|
||||||
];
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
1
no current target
Normal file
1
no current target
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
Ptmux;_Gq=2,a=d,d=a\\
|
||||||
|
|
@ -1,9 +1,5 @@
|
||||||
{ machine, lib, ... }@inputs:
|
_: {
|
||||||
{
|
imports = [
|
||||||
|
|
||||||
imports = lib.concatLists [
|
|
||||||
[
|
|
||||||
./xdg.nix
|
|
||||||
./nvim
|
./nvim
|
||||||
./fish
|
./fish
|
||||||
./kanata
|
./kanata
|
||||||
|
|
@ -14,11 +10,9 @@
|
||||||
./niri
|
./niri
|
||||||
./zed
|
./zed
|
||||||
./firefox
|
./firefox
|
||||||
]
|
];
|
||||||
|
|
||||||
(machine.program {
|
custom.program.graphcial-packages = {
|
||||||
name = "graphcial-packages";
|
|
||||||
inherit inputs;
|
|
||||||
requirements = [ "graphical" ];
|
requirements = [ "graphical" ];
|
||||||
home-config =
|
home-config =
|
||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
|
|
@ -27,20 +21,15 @@
|
||||||
spotify
|
spotify
|
||||||
obsidian
|
obsidian
|
||||||
element-desktop
|
element-desktop
|
||||||
# chromium
|
chromium
|
||||||
bind.dnsutils
|
bind.dnsutils
|
||||||
mpv
|
mpv
|
||||||
vlc
|
vlc
|
||||||
libreoffice-qt
|
|
||||||
hunspell
|
|
||||||
hunspellDicts.en_US
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
})
|
};
|
||||||
|
|
||||||
(machine.program {
|
custom.program.discord = {
|
||||||
name = "discord";
|
|
||||||
inherit inputs;
|
|
||||||
requirements = [ "graphical" ];
|
requirements = [ "graphical" ];
|
||||||
home-config =
|
home-config =
|
||||||
{
|
{
|
||||||
|
|
@ -154,11 +143,9 @@
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
})
|
};
|
||||||
|
|
||||||
(machine.program {
|
custom.program.fun-packages = {
|
||||||
name = "fun-packages";
|
|
||||||
inherit inputs;
|
|
||||||
requirements = [ "fun" ];
|
requirements = [ "fun" ];
|
||||||
home-config =
|
home-config =
|
||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
|
|
@ -168,11 +155,9 @@
|
||||||
prismlauncher
|
prismlauncher
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
})
|
};
|
||||||
|
|
||||||
(machine.program {
|
custom.program.cli-packages = {
|
||||||
name = "cli-packages";
|
|
||||||
inherit inputs;
|
|
||||||
requirements = [ "cli" ];
|
requirements = [ "cli" ];
|
||||||
home-config =
|
home-config =
|
||||||
{ config, pkgs, ... }:
|
{ config, pkgs, ... }:
|
||||||
|
|
@ -197,7 +182,6 @@
|
||||||
comma
|
comma
|
||||||
unzip
|
unzip
|
||||||
pciutils
|
pciutils
|
||||||
difftastic
|
|
||||||
|
|
||||||
# dev tools
|
# dev tools
|
||||||
gdb
|
gdb
|
||||||
|
|
@ -236,6 +220,38 @@
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
})
|
};
|
||||||
];
|
|
||||||
|
custom.program.homedirs = {
|
||||||
|
home-config =
|
||||||
|
{ config, ... }:
|
||||||
|
{
|
||||||
|
home.file = {
|
||||||
|
"dl".source = config.lib.file.mkOutOfStoreSymlink "${config.xdg.userDirs.download}";
|
||||||
|
"doc".source = config.lib.file.mkOutOfStoreSymlink "${config.xdg.userDirs.documents}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
custom.program.xdg = {
|
||||||
|
home-config =
|
||||||
|
{ config, ... }:
|
||||||
|
{
|
||||||
|
xdg = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
configHome = "${config.home.homeDirectory}/.config";
|
||||||
|
userDirs = {
|
||||||
|
enable = true;
|
||||||
|
documents = "${config.home.homeDirectory}/Documents";
|
||||||
|
desktop = "${config.home.homeDirectory}/Documents";
|
||||||
|
download = "${config.home.homeDirectory}/Downloads";
|
||||||
|
music = "${config.home.homeDirectory}/Documents/personal/music";
|
||||||
|
pictures = "${config.home.homeDirectory}/Documents/personal/pictures";
|
||||||
|
};
|
||||||
|
|
||||||
|
mime.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,6 @@
|
||||||
inputs@{ machine, ... }:
|
_: {
|
||||||
{
|
custom.program.firefox.requirements = [ "graphical" ];
|
||||||
imports = machine.program {
|
custom.program.firefox.home-config =
|
||||||
name = "firefox";
|
|
||||||
inherit inputs;
|
|
||||||
requirements = [ "graphical" ];
|
|
||||||
home-config =
|
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
flakes,
|
flakes,
|
||||||
|
|
@ -166,5 +162,4 @@ inputs@{ machine, ... }:
|
||||||
defaultApplications."x-scheme-handler/unknown" = [ "firefox.desktop" ];
|
defaultApplications."x-scheme-handler/unknown" = [ "firefox.desktop" ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,6 @@
|
||||||
inputs@{ machine, ... }:
|
_: {
|
||||||
{
|
custom.program.fish.requirements = [ "cli" ];
|
||||||
imports = machine.program {
|
custom.program.fish.home-config =
|
||||||
name = "fish";
|
|
||||||
inherit inputs;
|
|
||||||
requirements = [ "cli" ];
|
|
||||||
home-config =
|
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
|
|
@ -179,19 +175,6 @@ inputs@{ machine, ... }:
|
||||||
interactiveShellInit = ''
|
interactiveShellInit = ''
|
||||||
fish_vi_key_bindings
|
fish_vi_key_bindings
|
||||||
|
|
||||||
bind \e\[3\;5~ kill-word
|
|
||||||
bind \cH backward-kill-word
|
|
||||||
bind \cV beginning-of-line
|
|
||||||
bind \f end-of-line
|
|
||||||
|
|
||||||
bind -M insert \e\[3\;5~ kill-word
|
|
||||||
bind -M insert \cH backward-kill-word
|
|
||||||
bind -M insert \cV beginning-of-line
|
|
||||||
bind -M insert \f end-of-line
|
|
||||||
|
|
||||||
bind \cl 'clear; commandline -f repaint'
|
|
||||||
bind -M insert \cl 'clear; commandline -f repaint'
|
|
||||||
|
|
||||||
set -g sponge_successful_exit_codes 0
|
set -g sponge_successful_exit_codes 0
|
||||||
set -g sponge_allow_previously_successful false
|
set -g sponge_allow_previously_successful false
|
||||||
set -g sponge_delay 10
|
set -g sponge_delay 10
|
||||||
|
|
@ -229,7 +212,6 @@ inputs@{ machine, ... }:
|
||||||
|
|
||||||
function fish_greeting
|
function fish_greeting
|
||||||
${pkgs.blahaj}/bin/blahaj -s
|
${pkgs.blahaj}/bin/blahaj -s
|
||||||
echo "welcome to $(uname -n), $(whoami)!"
|
|
||||||
end
|
end
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
@ -256,5 +238,4 @@ inputs@{ machine, ... }:
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,6 @@
|
||||||
inputs@{ machine, ... }:
|
_: {
|
||||||
{
|
custom.program.git.requirements = [ "cli" ];
|
||||||
imports = machine.program {
|
custom.program.git.home-config = _: {
|
||||||
name = "git";
|
|
||||||
inherit inputs;
|
|
||||||
requirements = [ "cli" ];
|
|
||||||
home-config = _: {
|
|
||||||
programs.git = {
|
programs.git = {
|
||||||
enable = true;
|
enable = true;
|
||||||
signing.key = "/home/jana/.ssh/id_ed25519.pub";
|
signing.key = "/home/jana/.ssh/id_ed25519.pub";
|
||||||
|
|
@ -40,5 +36,4 @@ inputs@{ machine, ... }:
|
||||||
enableGitIntegration = true;
|
enableGitIntegration = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,6 @@
|
||||||
inputs@{ machine, ... }:
|
_: {
|
||||||
{
|
custom.program.jujutsu.requirements = [ "cli" ];
|
||||||
imports = machine.program {
|
custom.program.jujutsu.home-config =
|
||||||
name = "jujutsu";
|
|
||||||
inherit inputs;
|
|
||||||
requirements = [ "cli" ];
|
|
||||||
home-config =
|
|
||||||
{ config, pkgs, ... }:
|
{ config, pkgs, ... }:
|
||||||
{
|
{
|
||||||
programs.jujutsu = {
|
programs.jujutsu = {
|
||||||
|
|
@ -49,9 +45,9 @@ inputs@{ machine, ... }:
|
||||||
fsmonitor.backend = "watchman";
|
fsmonitor.backend = "watchman";
|
||||||
fsmonitor.watchman.register-snapshot-trigger = true;
|
fsmonitor.watchman.register-snapshot-trigger = true;
|
||||||
|
|
||||||
revsets.log = "@ | ancestors(trunk()..(visible_heads() & mine()), 2) | trunk()";
|
# revsets.log = "@ | ancestors(trunk()..(visible_heads() & mine()), 2) | trunk()";
|
||||||
# revsets.log = "trunk()..@ | @..trunk() | trunk() | @:: | fork_point(trunk() | @)";
|
# revsets.log = "trunk()..@ | @..trunk() | trunk() | @:: | fork_point(trunk() | @)";
|
||||||
# revsets.log = "trunk() | ancestors(trunk()..heads(((trunk()..visible_heads()) & my() | @)::), 2)";
|
revsets.log = "trunk() | ancestors(trunk()..heads(((trunk()..visible_heads()) & my() | @)::), 2)";
|
||||||
|
|
||||||
revset-aliases = {
|
revset-aliases = {
|
||||||
"my()" = "user(\"${config.programs.jujutsu.settings.user.email}\")";
|
"my()" = "user(\"${config.programs.jujutsu.settings.user.email}\")";
|
||||||
|
|
@ -194,5 +190,4 @@ inputs@{ machine, ... }:
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
inputs@{ machine, pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
let
|
let
|
||||||
kanata-config = ''
|
kanata-config = ''
|
||||||
(defcfg
|
(defcfg
|
||||||
|
|
@ -27,28 +27,24 @@ let
|
||||||
(deflayer control
|
(deflayer control
|
||||||
@esc
|
@esc
|
||||||
grv 1 2 3 4 5 6 7 8 9 0 - = bspc
|
grv 1 2 3 4 5 6 7 8 9 0 - = bspc
|
||||||
tab @mcleft @mup @mcright @replay t y u i o p @wup @wdown \
|
tab q w e @replay t y u i o p @wup @wdown \
|
||||||
@cap @mleft @mdown @mright f g left down up right ; ' bspc
|
@cap a s d f g left down up right ; ' bspc
|
||||||
lsft z x C-c v bspc n @macro , . C-f rsft
|
lsft z x C-c v bspc n @macro , . C-f rsft
|
||||||
lctl lmet lalt spc ralt @rctl
|
lctl lmet lalt spc ralt @rctl
|
||||||
)
|
)
|
||||||
|
|
||||||
(deflayermap (other)
|
(deflayermap (programming)
|
||||||
w @mup
|
f (macro f n spc)
|
||||||
a @mleft
|
w (macro w h e r e spc)
|
||||||
s @mdown
|
l (macro l o o p { ret)
|
||||||
d @mright
|
u (macro u s e spc)
|
||||||
|
i (macro i m p o r t spc)
|
||||||
q @mcleft
|
s (macro s e l f spc)
|
||||||
e @mcright
|
|
||||||
|
|
||||||
[ @wup
|
|
||||||
] @wdown
|
|
||||||
)
|
)
|
||||||
|
|
||||||
(defalias
|
(defalias
|
||||||
;; hold esc
|
;; hold esc
|
||||||
esc (tap-hold 200 200 C-k (macro C-f esc))
|
esc (tap-hold 800 800 esc caps)
|
||||||
|
|
||||||
;; control
|
;; control
|
||||||
cap (tap-hold-release 200 200
|
cap (tap-hold-release 200 200
|
||||||
|
|
@ -62,14 +58,6 @@ let
|
||||||
lmet
|
lmet
|
||||||
)
|
)
|
||||||
|
|
||||||
mup (movemouse-up 1 1)
|
|
||||||
mleft (movemouse-left 1 1)
|
|
||||||
mdown (movemouse-down 1 1)
|
|
||||||
mright (movemouse-right 1 1)
|
|
||||||
|
|
||||||
mcleft mlft
|
|
||||||
mcright mrgt
|
|
||||||
|
|
||||||
macro (dynamic-macro-record 0)
|
macro (dynamic-macro-record 0)
|
||||||
replay (dynamic-macro-play 0)
|
replay (dynamic-macro-play 0)
|
||||||
|
|
||||||
|
|
@ -80,18 +68,15 @@ let
|
||||||
rctl (
|
rctl (
|
||||||
tap-hold-release
|
tap-hold-release
|
||||||
200 200
|
200 200
|
||||||
C-k (layer-while-held other)
|
C-k (layer-while-held programming)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
'';
|
'';
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
imports = machine.program {
|
custom.program.kanata.requirements = [ "graphical" ];
|
||||||
name = "kanata";
|
custom.program.kanata.home-config =
|
||||||
inherit inputs;
|
{ pkgs, config, ... }:
|
||||||
requirements = [ "graphical" ];
|
|
||||||
home-config =
|
|
||||||
{ pkgs, ... }:
|
|
||||||
{
|
{
|
||||||
systemd.user.services.kanata = {
|
systemd.user.services.kanata = {
|
||||||
Unit = {
|
Unit = {
|
||||||
|
|
@ -115,7 +100,6 @@ in
|
||||||
text = kanata-config;
|
text = kanata-config;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
|
||||||
|
|
||||||
# custom.program.kanata.system-config =
|
# custom.program.kanata.system-config =
|
||||||
# { pkgs, ... }:
|
# { pkgs, ... }:
|
||||||
|
|
@ -127,6 +111,15 @@ in
|
||||||
# reboot or sudo udevadm control --reload-rules && sudo udevadm trigger
|
# reboot or sudo udevadm control --reload-rules && sudo udevadm trigger
|
||||||
# sudo modprobe uinput
|
# sudo modprobe uinput
|
||||||
|
|
||||||
|
users.groups.uinput = { };
|
||||||
|
users.extraUsers.jana.extraGroups = [
|
||||||
|
"uinput"
|
||||||
|
"input"
|
||||||
|
];
|
||||||
|
environment.systemPackages = [ pkgs.kanata-with-cmd ];
|
||||||
|
services.udev.extraRules = ''
|
||||||
|
KERNEL=="uinput", MODE="0660", GROUP="uinput", OPTIONS+="static_node=uinput"
|
||||||
|
'';
|
||||||
# };
|
# };
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,6 @@
|
||||||
inputs@{ machine, ... }:
|
_: {
|
||||||
{
|
custom.program.kitty.requirements = [ "graphical" ];
|
||||||
imports = machine.program {
|
custom.program.kitty.home-config =
|
||||||
name = "kitty";
|
|
||||||
inherit inputs;
|
|
||||||
requirements = [ "graphical" ];
|
|
||||||
home-config =
|
|
||||||
{ pkgs, flakes, ... }:
|
{ pkgs, flakes, ... }:
|
||||||
{
|
{
|
||||||
home.packages = pkgs.custom.maple-fonts-pack;
|
home.packages = pkgs.custom.maple-fonts-pack;
|
||||||
|
|
@ -13,7 +9,7 @@ inputs@{ machine, ... }:
|
||||||
enable = true;
|
enable = true;
|
||||||
font = {
|
font = {
|
||||||
name = "Maple Mono NF";
|
name = "Maple Mono NF";
|
||||||
size = 11.0;
|
size = 13.0;
|
||||||
package = pkgs.jetbrains-mono;
|
package = pkgs.jetbrains-mono;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -53,10 +49,6 @@ inputs@{ machine, ... }:
|
||||||
"ctrl+0" = "change_font_size all 0";
|
"ctrl+0" = "change_font_size all 0";
|
||||||
# "ctrl+/" = "send_text all ";
|
# "ctrl+/" = "send_text all ";
|
||||||
"super+~" = "no_op";
|
"super+~" = "no_op";
|
||||||
|
|
||||||
# required for vim!!
|
|
||||||
# terminals map ctrl+i to tab. I want them to do different things in vim.
|
|
||||||
"ctrl+i" = "send_text all \\x01";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
|
|
@ -64,5 +56,4 @@ inputs@{ machine, ... }:
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,15 +1,12 @@
|
||||||
inputs@{ machine, ... }:
|
_: {
|
||||||
{
|
custom.program.niri.requirements = [ "graphical" ];
|
||||||
imports = machine.program {
|
custom.program.niri.home-config =
|
||||||
name = "niri";
|
{
|
||||||
inherit inputs;
|
config,
|
||||||
requirements = [ "graphical" ];
|
pkgs,
|
||||||
home-config =
|
flakes,
|
||||||
{ config
|
lib,
|
||||||
, pkgs
|
...
|
||||||
, flakes
|
|
||||||
, lib
|
|
||||||
, ...
|
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
noctalia =
|
noctalia =
|
||||||
|
|
@ -48,7 +45,6 @@ inputs@{ machine, ... }:
|
||||||
playerctl
|
playerctl
|
||||||
# brightness control
|
# brightness control
|
||||||
brightnessctl
|
brightnessctl
|
||||||
pavucontrol
|
|
||||||
|
|
||||||
fira
|
fira
|
||||||
jetbrains-mono
|
jetbrains-mono
|
||||||
|
|
@ -85,21 +81,6 @@ inputs@{ machine, ... }:
|
||||||
# focus the external screen first
|
# focus the external screen first
|
||||||
focus-at-startup = true;
|
focus-at-startup = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs."LG Electronics LG ULTRAWIDE 409NTAB3P496" = {
|
|
||||||
mode = {
|
|
||||||
width = 3440;
|
|
||||||
height = 1440;
|
|
||||||
refresh = 59.987;
|
|
||||||
};
|
|
||||||
position = {
|
|
||||||
x = -3440;
|
|
||||||
y = 240;
|
|
||||||
};
|
|
||||||
|
|
||||||
# focus the external screen first
|
|
||||||
focus-at-startup = true;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
home.sessionVariables = {
|
home.sessionVariables = {
|
||||||
|
|
@ -131,13 +112,6 @@ inputs@{ machine, ... }:
|
||||||
click-method = "clickfinger";
|
click-method = "clickfinger";
|
||||||
natural-scroll = false;
|
natural-scroll = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
focus-follows-mouse = {
|
|
||||||
enable = true;
|
|
||||||
max-scroll-amount = "0%";
|
|
||||||
};
|
|
||||||
|
|
||||||
workspace-auto-back-and-forth = true;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
debug = {
|
debug = {
|
||||||
|
|
@ -149,10 +123,10 @@ inputs@{ machine, ... }:
|
||||||
size = 10;
|
size = 10;
|
||||||
};
|
};
|
||||||
|
|
||||||
gestures.hot-corners.enable = true;
|
gestures.hot-corners.enable = false;
|
||||||
|
|
||||||
layout = {
|
layout = {
|
||||||
gaps = 8;
|
gaps = 5;
|
||||||
center-focused-column = "never";
|
center-focused-column = "never";
|
||||||
always-center-single-column = true;
|
always-center-single-column = true;
|
||||||
|
|
||||||
|
|
@ -178,29 +152,29 @@ inputs@{ machine, ... }:
|
||||||
|
|
||||||
focus-ring = {
|
focus-ring = {
|
||||||
width = 1;
|
width = 1;
|
||||||
active.color = "${config.programs.matugen.theme.colors.primary.default.color}";
|
active.color = "#${config.programs.matugen.theme.colors.primary.default}";
|
||||||
inactive.color = "${config.programs.matugen.theme.colors.surface.default.color}";
|
inactive.color = "#${config.programs.matugen.theme.colors.surface.default}";
|
||||||
urgent.color = "${config.programs.matugen.theme.colors.error.default.color}";
|
urgent.color = "#${config.programs.matugen.theme.colors.error.default}";
|
||||||
};
|
};
|
||||||
|
|
||||||
border = {
|
border = {
|
||||||
active.color = "${config.programs.matugen.theme.colors.primary.default.color}";
|
active.color = "#${config.programs.matugen.theme.colors.primary.default}";
|
||||||
inactive.color = "${config.programs.matugen.theme.colors.surface.default.color}";
|
inactive.color = "#${config.programs.matugen.theme.colors.surface.default}";
|
||||||
urgent.color = "${config.programs.matugen.theme.colors.error.default.color}";
|
urgent.color = "#${config.programs.matugen.theme.colors.error.default}";
|
||||||
};
|
};
|
||||||
|
|
||||||
shadow = {
|
shadow = {
|
||||||
color = "${config.programs.matugen.theme.colors.shadow.default.color}70";
|
color = "#${config.programs.matugen.theme.colors.shadow.default}70";
|
||||||
};
|
};
|
||||||
|
|
||||||
tab-indicator = {
|
tab-indicator = {
|
||||||
active.color = "${config.programs.matugen.theme.colors.primary.default.color}";
|
active.color = "#${config.programs.matugen.theme.colors.primary.default}";
|
||||||
inactive.color = "${config.programs.matugen.theme.colors.primary_container.default.color}";
|
inactive.color = "#${config.programs.matugen.theme.colors.primary_container.default}";
|
||||||
urgent.color = "${config.programs.matugen.theme.colors.error.default.color}";
|
urgent.color = "#${config.programs.matugen.theme.colors.error.default}";
|
||||||
};
|
};
|
||||||
|
|
||||||
insert-hint = {
|
insert-hint = {
|
||||||
display.color = "${config.programs.matugen.theme.colors.primary.default.color}80";
|
display.color = "#${config.programs.matugen.theme.colors.primary.default}80";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -220,29 +194,14 @@ inputs@{ machine, ... }:
|
||||||
|
|
||||||
window-rules = [
|
window-rules = [
|
||||||
{
|
{
|
||||||
matches = [
|
matches = [ { title = "Extension: (Bitwarden Password Manager).*"; } ];
|
||||||
{
|
|
||||||
|
|
||||||
app-id = "firefox$";
|
|
||||||
title = "Extension: (Bitwarden Password Manager)";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
open-floating = true;
|
open-floating = true;
|
||||||
open-focused = true;
|
open-focused = true;
|
||||||
block-out-from = "screen-capture";
|
block-out-from = "screen-capture";
|
||||||
}
|
}
|
||||||
{
|
|
||||||
matches = [
|
|
||||||
{
|
|
||||||
app-id = "firefox$";
|
|
||||||
title = "^Picture-in-Picture$";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
open-floating = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
{
|
{
|
||||||
matches = [{ app-id = "firefox"; }];
|
matches = [ { app-id = "firefox"; } ];
|
||||||
open-on-workspace = "browser";
|
open-on-workspace = "browser";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -256,7 +215,6 @@ inputs@{ machine, ... }:
|
||||||
app-id = "steam";
|
app-id = "steam";
|
||||||
title = "Steam Settings";
|
title = "Steam Settings";
|
||||||
}
|
}
|
||||||
{ app-id = "pavucontrol"; }
|
|
||||||
];
|
];
|
||||||
open-floating = true;
|
open-floating = true;
|
||||||
}
|
}
|
||||||
|
|
@ -312,7 +270,7 @@ inputs@{ machine, ... }:
|
||||||
action.spawn = noctalia "sessionMenu toggle";
|
action.spawn = noctalia "sessionMenu toggle";
|
||||||
};
|
};
|
||||||
|
|
||||||
"Mod+P" = {
|
"Mod+O" = {
|
||||||
hotkey-overlay.title = "Run an Application";
|
hotkey-overlay.title = "Run an Application";
|
||||||
action.spawn = noctalia "launcher toggle";
|
action.spawn = noctalia "launcher toggle";
|
||||||
};
|
};
|
||||||
|
|
@ -331,11 +289,11 @@ inputs@{ machine, ... }:
|
||||||
|
|
||||||
"XF86AudioRaiseVolume" = {
|
"XF86AudioRaiseVolume" = {
|
||||||
allow-when-locked = true;
|
allow-when-locked = true;
|
||||||
action.spawn-sh = "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.05+";
|
action.spawn-sh = "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1+";
|
||||||
};
|
};
|
||||||
"XF86AudioLowerVolume" = {
|
"XF86AudioLowerVolume" = {
|
||||||
allow-when-locked = true;
|
allow-when-locked = true;
|
||||||
action.spawn-sh = "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.05-";
|
action.spawn-sh = "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1-";
|
||||||
};
|
};
|
||||||
"XF86AudioMute" = {
|
"XF86AudioMute" = {
|
||||||
allow-when-locked = true;
|
allow-when-locked = true;
|
||||||
|
|
@ -363,15 +321,15 @@ inputs@{ machine, ... }:
|
||||||
};
|
};
|
||||||
"Mod+Period" = {
|
"Mod+Period" = {
|
||||||
allow-when-locked = true;
|
allow-when-locked = true;
|
||||||
action.spawn-sh = "playerctl nest";
|
action.spawn-sh = "playerctl previous";
|
||||||
};
|
};
|
||||||
"Mod+Comma" = {
|
"Mod+Comma" = {
|
||||||
allow-when-locked = true;
|
allow-when-locked = true;
|
||||||
action.spawn-sh = "playerctl previous";
|
action.spawn-sh = "playerctl next";
|
||||||
};
|
};
|
||||||
"Mod+Slash" = {
|
"Mod+Slash" = {
|
||||||
allow-when-locked = true;
|
allow-when-locked = true;
|
||||||
action.spawn-sh = "playerctl play-pause";
|
action.spawn-sh = "playerctl next";
|
||||||
};
|
};
|
||||||
|
|
||||||
# TODO
|
# TODO
|
||||||
|
|
@ -574,6 +532,9 @@ inputs@{ machine, ... }:
|
||||||
{
|
{
|
||||||
id = "plugin:catwalk";
|
id = "plugin:catwalk";
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
id = "plugin:brightness";
|
||||||
|
}
|
||||||
];
|
];
|
||||||
center = [
|
center = [
|
||||||
{
|
{
|
||||||
|
|
@ -593,14 +554,8 @@ inputs@{ machine, ... }:
|
||||||
{
|
{
|
||||||
id = "Bluetooth";
|
id = "Bluetooth";
|
||||||
}
|
}
|
||||||
{
|
|
||||||
id = "Brightness";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
id = "Volume";
|
|
||||||
}
|
|
||||||
]
|
]
|
||||||
++ [{ id = "Battery"; }]
|
++ [ { id = "Battery"; } ]
|
||||||
++ [
|
++ [
|
||||||
{
|
{
|
||||||
id = "KeyboardLayout";
|
id = "KeyboardLayout";
|
||||||
|
|
@ -658,10 +613,9 @@ inputs@{ machine, ... }:
|
||||||
# appearance
|
# appearance
|
||||||
"org/gnome/desktop/interface" = {
|
"org/gnome/desktop/interface" = {
|
||||||
color-scheme = "prefer-dark";
|
color-scheme = "prefer-dark";
|
||||||
enable-hot-corners = true;
|
enable-hot-corners = false;
|
||||||
gtk-enable-primary-paste = false;
|
gtk-enable-primary-paste = false;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -19,32 +19,134 @@ local esc = vim.api.nvim_replace_termcodes(
|
||||||
)
|
)
|
||||||
local api = require('Comment.api')
|
local api = require('Comment.api')
|
||||||
|
|
||||||
vim.keymap.set("n", "<C-_>", ":lua require('Comment.api').toggle.linewise.current()<CR>j", { remap = true })
|
vim.keymap.set("n", "<C-_>", ":lua require('Comment.api').toggle.linewise.current()<CR> j", { remap = true })
|
||||||
vim.keymap.set("i", "<C-_>", "<c-o>:lua require('Comment.api').toggle.linewise.current()<CR>", { remap = true })
|
vim.keymap.set("i", "<C-_>", "<c-o>:lua require('Comment.api').toggle.linewise.current()<CR>", { remap = true })
|
||||||
vim.keymap.set("x", "<C-_>", function()
|
vim.keymap.set("x", "<C-_>", function()
|
||||||
vim.api.nvim_feedkeys(esc, 'nx', false)
|
vim.api.nvim_feedkeys(esc, 'nx', false)
|
||||||
api.toggle.linewise(vim.fn.visualmode())
|
api.toggle.linewise(vim.fn.visualmode())
|
||||||
end, { remap = true })
|
end, { remap = true })
|
||||||
|
|
||||||
|
vim.keymap.set('n', 'gr', (function() builtin.lsp_references({jump_type="vsplit"}) end), {})
|
||||||
|
vim.keymap.set('n', 'gd', (function() builtin.lsp_definitions({jump_type="vsplit"}) end), {})
|
||||||
|
vim.keymap.set('n', 'gt', (function() builtin.lsp_type_definitions({jump_type="vsplit"}) end), {})
|
||||||
|
|
||||||
|
local barbar_state = require("barbar.state")
|
||||||
|
function find_windows_with_buffer(bufnum)
|
||||||
|
windows = {}
|
||||||
|
|
||||||
-- vim.keymap.set('n', 'gr', (function() builtin.lsp_references({jump_type="vsplit"}) end), {})
|
local window_list = vim.api.nvim_list_wins()
|
||||||
-- vim.keymap.set('n', 'gd', (function() builtin.lsp_definitions({jump_type="vsplit"}) end), {})
|
|
||||||
-- vim.keymap.set('n', 'gt', (function() builtin.lsp_type_definitions({jump_type="vsplit"}) end), {})
|
|
||||||
-- vim.keymap.set('n', 'gt', (function() builtin.lsp_type_definitions({jump_type="vsplit"}) end), {})
|
|
||||||
|
|
||||||
|
for _, window in ipairs(window_list) do
|
||||||
|
local win_info = vim.fn.getwininfo(window)
|
||||||
|
|
||||||
|
if win_info ~= nil then
|
||||||
|
for _, buf in ipairs(win_info) do
|
||||||
|
if buf.bufnr == bufnum then
|
||||||
|
table.insert(windows, window)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
-- local function close_floating()
|
return windows
|
||||||
-- for _, win in ipairs(vim.api.nvim_list_wins()) do
|
end
|
||||||
-- local config = vim.api.nvim_win_get_config(win)
|
|
||||||
-- if config.relative ~= "" then
|
function num_useful_windows()
|
||||||
-- vim.api.nvim_win_close(win, false)
|
local window_list = vim.api.nvim_tabpage_list_wins(0)
|
||||||
-- end
|
local num = 0
|
||||||
-- end
|
|
||||||
-- end
|
for _, window in ipairs(window_list) do
|
||||||
--
|
local win_info = vim.fn.getwininfo(window)
|
||||||
-- vim.keymap.set("n", "<Esc>", close_floating, { desc = "Close floats, clear highlights" })
|
|
||||||
|
if win_info ~= nil then
|
||||||
|
for _, win_info in ipairs(win_info) do
|
||||||
|
if buf_is_useful(win_info.bufnr) then
|
||||||
|
num = num + 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return num
|
||||||
|
end
|
||||||
|
|
||||||
|
function buf_is_useful(bufnr)
|
||||||
|
local bufname = vim.api.nvim_buf_get_name(bufnr)
|
||||||
|
|
||||||
|
-- if the window's buffer has no name, it's not useful
|
||||||
|
if bufname == '' then
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
-- print("bufname: ", bufname)
|
||||||
|
|
||||||
|
-- if the window's buffer is read only, it's not useful
|
||||||
|
local readonly = vim.api.nvim_buf_get_option(bufnr, 'readonly')
|
||||||
|
if readonly then
|
||||||
|
-- print("=readonly")
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
-- -- if the buffer is not listed, it's not useful
|
||||||
|
local listed = vim.api.nvim_buf_get_option(bufnr, 'buflisted')
|
||||||
|
if not listed then
|
||||||
|
-- print("=unlisted")
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
local buftype = vim.api.nvim_buf_get_option(bufnr, 'buftype')
|
||||||
|
if buftype == "quickfix" then
|
||||||
|
-- print("=readonly")
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
local lines = vim.api.nvim_buf_get_lines(bufnr, 0, -1, false)
|
||||||
|
if #lines > 1 or (#lines == 1 and #lines[1] > 0) then
|
||||||
|
return true -- If the buffer has content, return false
|
||||||
|
else
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
-- the window contains a useful buffer
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
|
||||||
|
function quit_window(window)
|
||||||
|
vim.api.nvim_win_call(window, function()
|
||||||
|
vim.cmd "quit"
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
|
||||||
|
vim.api.nvim_create_user_command('CloseBuffer', function (opts)
|
||||||
|
if num_useful_windows() > 1 then
|
||||||
|
vim.cmd {
|
||||||
|
cmd = "quit",
|
||||||
|
bang = opts.bang,
|
||||||
|
}
|
||||||
|
else
|
||||||
|
vim.cmd {
|
||||||
|
cmd = "BufferDelete",
|
||||||
|
bang = opts.bang,
|
||||||
|
}
|
||||||
|
if not buf_is_useful(vim.api.nvim_get_current_buf()) then
|
||||||
|
vim.cmd {
|
||||||
|
cmd = "quit",
|
||||||
|
bang = opts.bang,
|
||||||
|
}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end, { desc = "Close Current Buffer", bang = true, })
|
||||||
|
|
||||||
|
local function close_floating()
|
||||||
|
for _, win in ipairs(vim.api.nvim_list_wins()) do
|
||||||
|
local config = vim.api.nvim_win_get_config(win)
|
||||||
|
if config.relative ~= "" then
|
||||||
|
vim.api.nvim_win_close(win, false)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
vim.keymap.set("n", "<Esc>", close_floating, { desc = "Close floats, clear highlights" })
|
||||||
|
|
||||||
local builtin = require('telescope.builtin')
|
local builtin = require('telescope.builtin')
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,68 +1,15 @@
|
||||||
inputs@{ machine, ... }:
|
_: {
|
||||||
{
|
custom.program.nvim.requirements = [ "cli" ];
|
||||||
imports = machine.program {
|
custom.program.nvim.home-config =
|
||||||
name = "nvim";
|
{ pkgs, flakes, ... }:
|
||||||
inherit inputs;
|
|
||||||
requirements = [ "cli" ];
|
|
||||||
home-config =
|
|
||||||
{
|
|
||||||
pkgs,
|
|
||||||
flakes,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
nvim_mime_types = [
|
|
||||||
"application/x-zerosize"
|
|
||||||
"text/english"
|
|
||||||
"text/plain"
|
|
||||||
"text/x-makefile"
|
|
||||||
"text/x-c++hdr"
|
|
||||||
"text/x-c++src"
|
|
||||||
"text/x-chdr"
|
|
||||||
"text/x-csrc"
|
|
||||||
"text/x-java"
|
|
||||||
"text/x-moc"
|
|
||||||
"text/x-pascal"
|
|
||||||
"text/x-tcl"
|
|
||||||
"text/x-tex"
|
|
||||||
"application/x-shellscript"
|
|
||||||
"text/x-c"
|
|
||||||
"text/x-c++"
|
|
||||||
];
|
|
||||||
desktop-entry-name = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanvim";
|
|
||||||
desktop-entry = pkgs.makeDesktopItem {
|
|
||||||
name = desktop-entry-name;
|
|
||||||
desktopName = "neovim";
|
|
||||||
exec = "${./editor-hax.py} %F";
|
|
||||||
tryExec = "${./editor-hax.py}";
|
|
||||||
terminal = false;
|
|
||||||
type = "Application";
|
|
||||||
categories = [
|
|
||||||
"Utility"
|
|
||||||
"TextEditor"
|
|
||||||
];
|
|
||||||
icon = "terminal";
|
|
||||||
mimeTypes = nvim_mime_types;
|
|
||||||
};
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
|
||||||
home = {
|
home = {
|
||||||
sessionVariables = {
|
sessionVariables = {
|
||||||
EDITOR = "nvim";
|
EDITOR = "nvim";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
home.file.".local/share/applications/${desktop-entry-name}.desktop" = {
|
|
||||||
source = "${desktop-entry}/share/applications/${desktop-entry-name}.desktop";
|
|
||||||
};
|
|
||||||
|
|
||||||
xdg.mimeApps.associations.added = lib.mergeAttrsList (
|
|
||||||
map (mime: {
|
|
||||||
${mime} = [ "${desktop-entry-name}.desktop" ];
|
|
||||||
}) nvim_mime_types
|
|
||||||
);
|
|
||||||
|
|
||||||
imports = [
|
imports = [
|
||||||
flakes.nixvim.homeModules.nixvim
|
flakes.nixvim.homeModules.nixvim
|
||||||
./options.nix
|
./options.nix
|
||||||
|
|
@ -151,10 +98,7 @@ inputs@{ machine, ... }:
|
||||||
# lspconfig.noteslsp.setup{}
|
# lspconfig.noteslsp.setup{}
|
||||||
# ''
|
# ''
|
||||||
+ (builtins.readFile ./config.lua);
|
+ (builtins.readFile ./config.lua);
|
||||||
extraConfigLuaPost = ''
|
|
||||||
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,119 +0,0 @@
|
||||||
#!/usr/bin/env python
|
|
||||||
import subprocess
|
|
||||||
import os
|
|
||||||
import sys
|
|
||||||
import re
|
|
||||||
from urllib.parse import urlsplit
|
|
||||||
|
|
||||||
extract_line_regex = re.compile(r"(.*?)(?::([0-9]+))?(?::([0-9]+))?(:)?$")
|
|
||||||
|
|
||||||
main_editor = "nvim"
|
|
||||||
editors = [main_editor, "vim", "vi"]
|
|
||||||
real_editor = os.environ.get("REAL_EDITOR", None)
|
|
||||||
editor_command = main_editor
|
|
||||||
if real_editor is not None:
|
|
||||||
editors.append(real_editor)
|
|
||||||
editor_command = real_editor
|
|
||||||
|
|
||||||
def run(cmd, only_stdout=True):
|
|
||||||
res = subprocess.run(cmd, capture_output=True, text=True, shell=True)
|
|
||||||
if only_stdout:
|
|
||||||
return str(res.stdout)
|
|
||||||
else:
|
|
||||||
return res
|
|
||||||
|
|
||||||
def find_pane(window):
|
|
||||||
for editor in editors:
|
|
||||||
pane = run(f"tmux list-panes -a -f '#{{&&:#{{==:#{{window_id}},{window}}},#{{==:#{{pane_current_command}},{editor}}}}}' -F '#{{pane_id}}'").strip();
|
|
||||||
if pane != "":
|
|
||||||
return pane
|
|
||||||
|
|
||||||
def create_pane(args):
|
|
||||||
run(f'tmux split-window -h -P -F "#{{pane_id}}" {editor_command} {args}')
|
|
||||||
|
|
||||||
def find_or_create_pane(window, args):
|
|
||||||
if pane := find_pane(window):
|
|
||||||
# exit copy mode so we don't send these commands directly to tmux
|
|
||||||
run(f"tmux send-keys -t {pane} -X cancel")
|
|
||||||
# Escape for some reason doesn't get sent as the escape key if it shows up next to any other keys???
|
|
||||||
run(f"tmux send-keys -t {pane} Escape")
|
|
||||||
|
|
||||||
# note the space, this tells nvim not to save it in history
|
|
||||||
run(f"tmux send-keys -t {pane} \": drop {args}\" Enter")
|
|
||||||
run(f"tmux select-pane -t {pane} -Z")
|
|
||||||
else:
|
|
||||||
create_pane(args)
|
|
||||||
|
|
||||||
def split_line(filename):
|
|
||||||
mtch = extract_line_regex.match(filename)
|
|
||||||
file = mtch.group(1)
|
|
||||||
line = mtch.group(2)
|
|
||||||
column = mtch.group(3)
|
|
||||||
|
|
||||||
url = urlsplit(line)
|
|
||||||
if url.scheme == "file" and url.path != file:
|
|
||||||
file = url.path
|
|
||||||
|
|
||||||
file = os.path.abspath(file)
|
|
||||||
|
|
||||||
print(f"opening {file}:{line}:{column}")
|
|
||||||
return file, line, column
|
|
||||||
|
|
||||||
def join_line(filename, maybe_line, maybe_column):
|
|
||||||
assert not (maybe_line is None and maybe_column is not None)
|
|
||||||
|
|
||||||
if maybe_line is None:
|
|
||||||
return filename
|
|
||||||
|
|
||||||
if maybe_column is None:
|
|
||||||
maybe_column = "0"
|
|
||||||
|
|
||||||
return f"+normal!{maybe_line}G{maybe_column} {filename}"
|
|
||||||
|
|
||||||
def trim(arg):
|
|
||||||
if arg.startswith("\"") and not arg.endswith("\""):
|
|
||||||
arg = arg.lstrip("\"")
|
|
||||||
if arg.endswith("\"") and not arg.startswith("\""):
|
|
||||||
arg = arg.rstrip("\"")
|
|
||||||
return arg.strip()
|
|
||||||
|
|
||||||
def editor_hax(filename):
|
|
||||||
args = split_line(trim(filename))
|
|
||||||
current_window = run("tmux display-message -p \"#{window_id}\"").strip();
|
|
||||||
find_or_create_pane(current_window, join_line(*args))
|
|
||||||
|
|
||||||
def xdg_open(arg):
|
|
||||||
subprocess.run(f"xdg-open {trim(arg)}", shell=True)
|
|
||||||
|
|
||||||
def xdg_open_proxy(*args):
|
|
||||||
for arg in args:
|
|
||||||
try:
|
|
||||||
_file, line, _column = split_line(arg)
|
|
||||||
if line is not None:
|
|
||||||
editor_hax(arg)
|
|
||||||
else:
|
|
||||||
xdg_open(arg)
|
|
||||||
except:
|
|
||||||
xdg_open(arg)
|
|
||||||
|
|
||||||
|
|
||||||
def usage():
|
|
||||||
print(f"usage: {sys.argv[0]} filename:(line):(column)")
|
|
||||||
print(" Opens a file with line number and colum in the editor in another pane of the current tmux window")
|
|
||||||
print(f"usage: {sys.argv[0]} xdg-open-proxy filename:(line):(column)")
|
|
||||||
print(" Calls xdg-open on the given parameters. However, if any part contains a line number and or column, opens in nvim like editor-hax")
|
|
||||||
exit(1)
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
if len(sys.argv) < 2:
|
|
||||||
usage()
|
|
||||||
elif sys.argv[1] == "xdg-open-proxy":
|
|
||||||
if len(sys.argv) < 3:
|
|
||||||
usage()
|
|
||||||
else:
|
|
||||||
xdg_open_proxy(*sys.argv[1:])
|
|
||||||
elif len(sys.argv) > 2:
|
|
||||||
usage()
|
|
||||||
else:
|
|
||||||
editor_hax(sys.argv[1])
|
|
||||||
|
|
||||||
|
|
@ -17,23 +17,39 @@ in
|
||||||
# splitting
|
# splitting
|
||||||
(map "n" "<leader>s" "<cmd>vertical sb<cr>")
|
(map "n" "<leader>s" "<cmd>vertical sb<cr>")
|
||||||
|
|
||||||
|
# closing
|
||||||
|
(map "n" "<leader>w" "<cmd>BufferClose<cr>") # single buffer
|
||||||
|
(map "n" "<leader>cb" "<cmd>BufferClose<cr>") # single buffer
|
||||||
|
|
||||||
|
(map "n" "<leader>ct" "<cmd>CloseBuffer<cr>") # buffer or extra tab
|
||||||
|
(map "n" "<leader>q" "<cmd>CloseBuffer<cr>") # buffer or extra tab
|
||||||
|
|
||||||
|
(map "n" "<leader>co" "<cmd>silent! BufferCloseAllButVisible<cr>") # other buffers
|
||||||
|
(map "n" "<leader>cl" "<cmd>silent! BufferCloseBuffersLeft<cr>") # other buffers (left)
|
||||||
|
(map "n" "<leader>cr" "<cmd>silent! BufferCloseBuffersRight<cr>") # other buffers (right)
|
||||||
|
|
||||||
|
# moving
|
||||||
|
(map "n" "mL" "<cmd>BufferMovePrevious<cr>") # left
|
||||||
|
(map "n" "mr" "<cmd>BufferMoveNext<cr>") # right
|
||||||
|
(map "n" "m0" "<cmd>BufferMoveStart<cr>") # start
|
||||||
|
(map "n" "m$" "<cmd>BufferMoveEnd<cr>") # end
|
||||||
|
|
||||||
|
(map "n" "<leader>jb" "<cmd>BufferPick<cr>") # jump to tab
|
||||||
|
|
||||||
# jumplist
|
# jumplist
|
||||||
(map "" "<C-a>" "<C-i>") # note: C-a is actually C-i, remapped through kitty.
|
# (map "n" "<leader><Tab>" "<C-o>")
|
||||||
|
# (map "n" "<leader><S-Tab>" "<C-i>")
|
||||||
(luamap "n" "<leader>r" "${telescope}.jumplist()")
|
(luamap "n" "<leader>r" "${telescope}.jumplist()")
|
||||||
(luamap "n" "<leader>R" "${telescope}.loclist()")
|
|
||||||
|
|
||||||
# pickers
|
# pickers
|
||||||
(luamap "n" "<leader><leader>" "${telescope}.find_files()")
|
(luamap "n" "<leader><leader>" "${telescope}.find_files()")
|
||||||
(luamap "n" "<leader>f" "${telescope}.live_grep()")
|
(luamap "n" "<leader>f" "${telescope}.live_grep()")
|
||||||
(luamap "n" "<leader>t" "${telescope}.lsp_document_symbols()")
|
(luamap "n" "<leader>t" "${telescope}.lsp_document_symbols()")
|
||||||
(luamap "n" "<leader>T" "${telescope}.lsp_dynamic_workspace_symbols()")
|
(luamap "n" "<leader>T" "${telescope}.lsp_dynamic_workspace_symbols()")
|
||||||
(luamap "n" "<leader>/" "${telescope}.current_buffer_fuzzy_find()")
|
|
||||||
# last used pickers/searches
|
# last used pickers/searches
|
||||||
(luamap "n" "<leader>p" "${telescope}.pickers()")
|
(luamap "n" "<leader>h" "${telescope}.pickers()")
|
||||||
(luamap "n" "<leader>m" "${telescope}.search_history()")
|
|
||||||
# open buffers
|
# open buffers
|
||||||
(luamap "n" "<leader>b" "${telescope}.buffers({sort_mru = true})")
|
(luamap "n" "<leader>b" "${telescope}.buffers({sort_mru = true})")
|
||||||
(luamap "n" "<leader><Tab>" "${telescope}.buffers({sort_mru = true})")
|
|
||||||
|
|
||||||
# diagnostics
|
# diagnostics
|
||||||
(map "n" "<leader>d" "<cmd>Trouble diagnostics toggle filter.buf=0<cr>")
|
(map "n" "<leader>d" "<cmd>Trouble diagnostics toggle filter.buf=0<cr>")
|
||||||
|
|
@ -53,25 +69,26 @@ in
|
||||||
# expand macro
|
# expand macro
|
||||||
(map "n" "<leader>em" "<cmd>RustLsp expandMacro<cr>")
|
(map "n" "<leader>em" "<cmd>RustLsp expandMacro<cr>")
|
||||||
|
|
||||||
|
# easier quitting etc
|
||||||
|
(map "ca" "W" "w")
|
||||||
|
(map "ca" "X" "x")
|
||||||
|
|
||||||
|
(map "ca" "Q" "CloseBuffer")
|
||||||
|
(map "ca" "q" "CloseBuffer")
|
||||||
|
|
||||||
# navigation
|
# navigation
|
||||||
(map "" "<leader><Left>" "<C-w><Left>")
|
(map "" "<leader><Left>" "<C-w><Left>")
|
||||||
(map "" "<leader><Right>" "<C-w><Right>")
|
(map "" "<leader><Right>" "<C-w><Right>")
|
||||||
(map "" "<leader><Up>" "<C-w><Up>")
|
(map "" "<leader><Up>" "<C-w><Up>")
|
||||||
(map "" "<leader><Down>" "<C-w><Down>")
|
(map "" "<leader><Down>" "<C-w><Down>")
|
||||||
(map "" "<leader>h" "<C-w><Left>")
|
(map "" "<leader><Down>" "<C-w><Down>")
|
||||||
(map "" "<leader>l" "<C-w><Right>")
|
|
||||||
(map "" "<leader>k" "<C-w><Up>")
|
|
||||||
(map "" "<leader>j" "<C-w><Down>")
|
|
||||||
|
|
||||||
# close buffer
|
|
||||||
(map "" "<leader>c" "<cmd>bd<cr>")
|
|
||||||
|
|
||||||
# {
|
# {
|
||||||
# key = "/";
|
# key = "/";
|
||||||
# action = "<cmd>lua require('spectre').open_file_search({select_word=true})<CR>";
|
# action = "<cmd>lua require('spectre').open_file_search({select_word=true})<CR>";
|
||||||
# }
|
# }
|
||||||
|
|
||||||
# (map "n" "t" "<cmd>Neotree toggle<cr>")
|
(map "n" "t" "<cmd>Neotree toggle<cr>")
|
||||||
|
|
||||||
# tab for indent/dedent
|
# tab for indent/dedent
|
||||||
(map "n" "<tab>" ">>_")
|
(map "n" "<tab>" ">>_")
|
||||||
|
|
@ -81,9 +98,6 @@ in
|
||||||
(map "v" "<S-tab>" "<gv")
|
(map "v" "<S-tab>" "<gv")
|
||||||
|
|
||||||
# to avoid many typos
|
# to avoid many typos
|
||||||
# easier quitting etc
|
|
||||||
(map "n" ";" ":")
|
(map "n" ";" ":")
|
||||||
(map "ca" "W" "w")
|
|
||||||
(map "ca" "X" "x")
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -84,9 +84,5 @@ _: {
|
||||||
"noselect"
|
"noselect"
|
||||||
"noinsert"
|
"noinsert"
|
||||||
];
|
];
|
||||||
|
|
||||||
# disable auto-folding
|
|
||||||
foldlevel = 99;
|
|
||||||
foldlevelstart = 99;
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,15 @@ let
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
|
# fzy-lua-native = pkgs.vimUtils.buildVimPlugin {
|
||||||
|
# name = "fzy-lua-native";
|
||||||
|
# src = pkgs.fetchFromGitHub {
|
||||||
|
# owner = "romgrk";
|
||||||
|
# repo = "fzy-lua-native";
|
||||||
|
# rev = "9d720745d5c2fb563c0d86c17d77612a3519c506";
|
||||||
|
# hash = "sha256-pBV5iGa1+5gtM9BcDk8I5SKoQ9sydOJHsmyoBcxAct0=";
|
||||||
|
# };
|
||||||
|
# };
|
||||||
{
|
{
|
||||||
programs.nixvim = {
|
programs.nixvim = {
|
||||||
plugins = {
|
plugins = {
|
||||||
|
|
@ -159,11 +168,7 @@ in
|
||||||
crates.enable = true;
|
crates.enable = true;
|
||||||
fidget.enable = true;
|
fidget.enable = true;
|
||||||
nvim-autopairs.enable = true;
|
nvim-autopairs.enable = true;
|
||||||
spider.enable = true;
|
# nvim-highlight-colors.enable = true;
|
||||||
origami = {
|
|
||||||
enable = true;
|
|
||||||
settings.autofold.enabled = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
cmp = {
|
cmp = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
@ -216,16 +221,12 @@ in
|
||||||
"<C-Space>" = "cmp.mapping.complete()";
|
"<C-Space>" = "cmp.mapping.complete()";
|
||||||
"<CR>" = "cmp.mapping.confirm({ select = true })";
|
"<CR>" = "cmp.mapping.confirm({ select = true })";
|
||||||
"<C-d>" = ''
|
"<C-d>" = ''
|
||||||
function(fallback)
|
function()
|
||||||
if cmp.visible() then
|
|
||||||
if cmp.visible_docs() then
|
if cmp.visible_docs() then
|
||||||
cmp.close_docs()
|
cmp.close_docs()
|
||||||
else
|
else
|
||||||
cmp.open_docs()
|
cmp.open_docs()
|
||||||
end
|
end
|
||||||
else
|
|
||||||
fallback()
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
'';
|
'';
|
||||||
"<Tab>" = next;
|
"<Tab>" = next;
|
||||||
|
|
@ -269,7 +270,7 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
auto-session = {
|
auto-session = {
|
||||||
enable = false;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
auto_save_enabled = true;
|
auto_save_enabled = true;
|
||||||
auto_restore_enabled = true;
|
auto_restore_enabled = true;
|
||||||
|
|
@ -287,7 +288,7 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
neo-tree = {
|
neo-tree = {
|
||||||
enable = false;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
close_if_last_window = true;
|
close_if_last_window = true;
|
||||||
enable_git_status = false;
|
enable_git_status = false;
|
||||||
|
|
@ -659,7 +660,7 @@ in
|
||||||
return wilder.renderer_mux({
|
return wilder.renderer_mux({
|
||||||
[':'] = popupmenu_renderer,
|
[':'] = popupmenu_renderer,
|
||||||
['/'] = wildmenu_renderer,
|
['/'] = wildmenu_renderer,
|
||||||
substitute = wildmenu_enderer,
|
substitute = wildmenu_renderer,
|
||||||
})
|
})
|
||||||
end)()
|
end)()
|
||||||
'';
|
'';
|
||||||
|
|
@ -694,7 +695,7 @@ in
|
||||||
];
|
];
|
||||||
defaults = {
|
defaults = {
|
||||||
path_display = [ "smart" ];
|
path_display = [ "smart" ];
|
||||||
layout_strategy = "flex";
|
layout_strategy = "horizontal";
|
||||||
layout_config = {
|
layout_config = {
|
||||||
width = 0.99;
|
width = 0.99;
|
||||||
height = 0.99;
|
height = 0.99;
|
||||||
|
|
@ -708,6 +709,15 @@ in
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# tabs
|
||||||
|
barbar = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
options.diagnostics = "nvim_lsp";
|
||||||
|
focus_on_close = "previous";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
# for lsp/cmp inside markdown code blocks
|
# for lsp/cmp inside markdown code blocks
|
||||||
otter = {
|
otter = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,6 @@
|
||||||
inputs@{ machine, ... }:
|
_: {
|
||||||
{
|
custom.program.tmux.requirements = [ "cli" ];
|
||||||
imports = machine.program {
|
custom.program.tmux.home-config =
|
||||||
name = "tmux";
|
|
||||||
inherit inputs;
|
|
||||||
requirements = [ "cli" ];
|
|
||||||
home-config =
|
|
||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
programs.tmux = {
|
programs.tmux = {
|
||||||
|
|
@ -39,8 +35,6 @@ inputs@{ machine, ... }:
|
||||||
# unbind every single normal keybinding
|
# unbind every single normal keybinding
|
||||||
unbind-key -a
|
unbind-key -a
|
||||||
|
|
||||||
set -g status-left "#{?client_prefix,#[bg=colour2],#[bg=colour1]}#[fg=colour0] #S "
|
|
||||||
|
|
||||||
# for special characters to work right
|
# for special characters to work right
|
||||||
# like <C-_>
|
# like <C-_>
|
||||||
# set-window-option -g xterm-keys on
|
# set-window-option -g xterm-keys on
|
||||||
|
|
@ -99,30 +93,18 @@ inputs@{ machine, ... }:
|
||||||
bind j select-pane -D
|
bind j select-pane -D
|
||||||
bind k select-pane -U
|
bind k select-pane -U
|
||||||
bind l select-pane -R
|
bind l select-pane -R
|
||||||
bind Left select-pane -L
|
|
||||||
bind Down select-pane -D
|
|
||||||
bind Up select-pane -U
|
|
||||||
bind Right select-pane -R
|
|
||||||
bind L split-window -h -c "#{pane_current_path}"
|
bind L split-window -h -c "#{pane_current_path}"
|
||||||
bind J split-window -v -c "#{pane_current_path}"
|
bind J split-window -v -c "#{pane_current_path}"
|
||||||
bind H split-window -h -b -c "#{pane_current_path}"
|
bind H split-window -h -b -c "#{pane_current_path}"
|
||||||
bind K split-window -v -b -c "#{pane_current_path}"
|
bind K split-window -v -b -c "#{pane_current_path}"
|
||||||
bind S-Left split-window -h -c "#{pane_current_path}"
|
|
||||||
bind S-Down split-window -v -c "#{pane_current_path}"
|
|
||||||
bind S-Up split-window -h -b -c "#{pane_current_path}"
|
|
||||||
bind S-Right split-window -v -b -c "#{pane_current_path}"
|
|
||||||
bind-key -r -T prefix M-h resize-pane -L 5
|
|
||||||
bind-key -r -T prefix M-j resize-pane -D 5
|
|
||||||
bind-key -r -T prefix M-k resize-pane -U 5
|
|
||||||
bind-key -r -T prefix M-l resize-pane -R 5
|
|
||||||
bind x swap-pane -D
|
bind x swap-pane -D
|
||||||
|
|
||||||
# double-click ^k (or lshift with kanata) for previous pane like ^w in vim
|
# double-click ^k (or lshift with kanata) for previous pane like ^w in vim
|
||||||
bind -r ^k select-pane -l
|
bind -r ^k select-pane -l
|
||||||
bind-key q confirm-before -p "kill-pane #P? (y/n)" kill-pane
|
bind-key q confirm-before -p "kill-pane #P? (y/n)" kill-pane
|
||||||
|
|
||||||
# bind-key o choose-tree -wZ
|
bind-key o choose-tree -wZ
|
||||||
# bind-key O choose-tree -sZ
|
bind-key O choose-tree -sZ
|
||||||
|
|
||||||
# get back command mode and some other basics...
|
# get back command mode and some other basics...
|
||||||
bind : command-prompt
|
bind : command-prompt
|
||||||
|
|
@ -166,42 +148,23 @@ inputs@{ machine, ... }:
|
||||||
|
|
||||||
bind d select-pane -l \; send-keys [
|
bind d select-pane -l \; send-keys [
|
||||||
|
|
||||||
# f: file search
|
|
||||||
# unbound: git files
|
|
||||||
# g: git hashes
|
|
||||||
# u: urls
|
|
||||||
# C-d: numbers
|
|
||||||
# M-i: ips
|
|
||||||
# include line and column numbers in file search
|
|
||||||
# rebind `f` so we can reuse it here
|
|
||||||
bind-key -T prefix C-f command-prompt { find-window -Z "%%" }
|
|
||||||
# jyn is so sorry, and so am I now
|
|
||||||
# https://github.com/jyn514/dotfiles/blob/65be3c004113290f41f858f4d7f1a6799fabab19/config/tmux.conf#L203-L212
|
|
||||||
# see `search-regex.sh` for wtf this means
|
|
||||||
# TODO: include shell variable names
|
|
||||||
bind-key f copy-mode \; send-keys -X search-backward '(^|/|\<|[[:space:]"])((\.|\.\.)|[[:alnum:]~_"-]*)((/[][[:alnum:]_.#$%&+=@"-]+)+([/ "]|\.([][[:alnum:]_.#$%&+=@"-]+(:[0-9]+)?(:[0-9]+)?)|[][[:alnum:]_.#$%&+=@"-]+(:[0-9]+)(:[0-9]+)?)|(/[][[:alnum:]_.#$%&+=@"-]+){2,}([/ "]|\.([][[:alnum:]_.#$%&+=@"-]+(:[0-9]+)?(:[0-9]+)?)|[][[:alnum:]_.#$%&+=@"-]+(:[0-9]+)(:[0-9]+)?)?|(\.|\.\.)/([][[:alnum:]_.#$%&+=@"-]+(:[0-9]+)?(:[0-9]+)?))'
|
|
||||||
# urls
|
|
||||||
bind-key u copy-mode \; send-keys -X search-backward '(https?://|git@|git://|ssh://|ftp://|file:///)[[:alnum:]?=%/_.:,;~@!#$&*+-]*'
|
|
||||||
# hashes
|
|
||||||
bind-key g copy-mode \; send-keys -X search-backward '[[:<:]]([0-9a-f]{7,40}|[[:alnum:]]{52}|[0-9a-f]{64})[[:>:]]'
|
|
||||||
# ips
|
|
||||||
bind-key M-i copy-mode \; send-keys -X search-backward '[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}'
|
|
||||||
|
|
||||||
bind-key -T copy-mode-vi o send-keys -X copy-pipe \
|
|
||||||
'cd #{pane_current_path}; xargs -I {} echo "echo {}" | bash | xargs ${../nvim/editor-hax.py} xdg-open-proxy' \; \
|
|
||||||
if -F "#{alternate_on}" { send-keys -X cancel }
|
|
||||||
# save the buffer, then open an editor in the current pane
|
|
||||||
bind-key -T copy-mode-vi O send-keys -X copy-pipe-and-cancel \
|
|
||||||
'tmux send-keys "C-q"; xargs -I {} tmux send-keys "vim {}"; tmux send-keys "C-m"'
|
|
||||||
# search for the highlighted text
|
|
||||||
bind-key -T copy-mode-vi s send-keys -X copy-pipe \
|
|
||||||
"cd #{pane_current_path}; xargs -I {} open 'https://www.google.com/search?q={}'" \; \
|
|
||||||
if -F "#{alternate_on}" { send-keys -X cancel }
|
|
||||||
# save buffer and retype into the shell
|
|
||||||
bind-key -T copy-mode-vi Tab send-keys -X copy-selection-and-cancel \; paste-buffer -p
|
|
||||||
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
# bind-key -T root DoubleClick1Pane run-shell "cd '#{pane_current_path}'; echo '#{mouse_line}' | ${pkgs.writeScriptBin "open-file" ''
|
||||||
|
# open_file () {
|
||||||
|
# input=`cat`
|
||||||
|
# link=$(echo "$input" | grep -Po '[^ \\]*/[^ \\]*\.[^ \\]*\:[0-9]+' | sed 's/\:/|/g')
|
||||||
|
#
|
||||||
|
# if [ ! -z "$link" ]; then
|
||||||
|
# echo "LINK = $link"
|
||||||
|
# vim_proc=$(pgrep vim | xargs pwdx | grep $(pwd -P) | awk '{print $1}' | sed 's/\:*$//g' | xargs -I{} find /run/user/1000 -depth -maxdepth 1 -name "nvim.{}.0")
|
||||||
|
#
|
||||||
|
# nvim --server "$vim_proc" --remote-send "<C-\><C-N>:e $link<cr>"
|
||||||
|
# fi
|
||||||
|
# }
|
||||||
|
#
|
||||||
|
# open_file 2>&1 >> ~/open-file.log
|
||||||
|
#
|
||||||
|
# ''}/bin/open-file"
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
159
programs/xdg.nix
159
programs/xdg.nix
|
|
@ -1,159 +0,0 @@
|
||||||
{ machine, ... }@inputs:
|
|
||||||
let
|
|
||||||
browsers = [
|
|
||||||
"firefox.desktop"
|
|
||||||
];
|
|
||||||
|
|
||||||
defaultApps = {
|
|
||||||
text = [
|
|
||||||
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanvim.desktop"
|
|
||||||
];
|
|
||||||
image = [ "org.gnome.Loupe.desktop" ];
|
|
||||||
audio = [ "mpv.desktop" ];
|
|
||||||
video = [ "mpv.desktop" ];
|
|
||||||
directory = [
|
|
||||||
"nautilus.desktop"
|
|
||||||
"org.gnome.Nautilus.desktop"
|
|
||||||
];
|
|
||||||
mail = [ ] ++ browsers;
|
|
||||||
calendar = [ ] ++ browsers;
|
|
||||||
browser = [ ] ++ browsers;
|
|
||||||
office = [ "libreoffice.desktop" ];
|
|
||||||
pdf = [ ] ++ browsers;
|
|
||||||
ebook = [ ];
|
|
||||||
magnet = [ ];
|
|
||||||
signal = [ "signal.desktop" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
mimeMap = {
|
|
||||||
text = [
|
|
||||||
"text/plain"
|
|
||||||
"text/english"
|
|
||||||
"application/x-zerosize"
|
|
||||||
"text/x-makefile"
|
|
||||||
"text/x-c++hdr"
|
|
||||||
"text/x-c++src"
|
|
||||||
"text/x-chdr"
|
|
||||||
"text/x-csrc"
|
|
||||||
"text/x-java"
|
|
||||||
"text/x-moc"
|
|
||||||
"text/x-pascal"
|
|
||||||
"text/x-tcl"
|
|
||||||
"text/x-tex"
|
|
||||||
"application/x-shellscript"
|
|
||||||
"text/x-c"
|
|
||||||
"text/x-c++"
|
|
||||||
];
|
|
||||||
image = [
|
|
||||||
"image/bmp"
|
|
||||||
"image/gif"
|
|
||||||
"image/jpeg"
|
|
||||||
"image/jpg"
|
|
||||||
"image/png"
|
|
||||||
"image/svg+xml"
|
|
||||||
"image/tiff"
|
|
||||||
"image/vnd.microsoft.icon"
|
|
||||||
"image/webp"
|
|
||||||
];
|
|
||||||
audio = [
|
|
||||||
"audio/aac"
|
|
||||||
"audio/mpeg"
|
|
||||||
"audio/ogg"
|
|
||||||
"audio/opus"
|
|
||||||
"audio/wav"
|
|
||||||
"audio/webm"
|
|
||||||
"audio/x-matroska"
|
|
||||||
];
|
|
||||||
video = [
|
|
||||||
"video/mp2t"
|
|
||||||
"video/mp4"
|
|
||||||
"video/mpeg"
|
|
||||||
"video/ogg"
|
|
||||||
"video/webm"
|
|
||||||
"video/x-flv"
|
|
||||||
"video/x-matroska"
|
|
||||||
"video/x-msvideo"
|
|
||||||
];
|
|
||||||
directory = [ "inode/directory" ];
|
|
||||||
mail = [ "x-scheme-handler/mailto" ];
|
|
||||||
calendar = [
|
|
||||||
"text/calendar"
|
|
||||||
"x-scheme-handler/webcal"
|
|
||||||
];
|
|
||||||
browser = [
|
|
||||||
"text/html"
|
|
||||||
"x-scheme-handler/about"
|
|
||||||
"x-scheme-handler/http"
|
|
||||||
"x-scheme-handler/https"
|
|
||||||
"x-scheme-handler/unknown"
|
|
||||||
];
|
|
||||||
office = [
|
|
||||||
"application/vnd.oasis.opendocument.text"
|
|
||||||
"application/vnd.oasis.opendocument.spreadsheet"
|
|
||||||
"application/vnd.oasis.opendocument.presentation"
|
|
||||||
"application/vnd.openxmlformats-officedocument.wordprocessingml.document"
|
|
||||||
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
|
|
||||||
"application/vnd.openxmlformats-officedocument.presentationml.presentation"
|
|
||||||
"application/msword"
|
|
||||||
"application/vnd.ms-excel"
|
|
||||||
"application/vnd.ms-powerpoint"
|
|
||||||
"application/rtf"
|
|
||||||
];
|
|
||||||
pdf = [ "application/pdf" ];
|
|
||||||
ebook = [ "application/epub+zip" ];
|
|
||||||
magnet = [ "x-scheme-handler/magnet" ];
|
|
||||||
signal = [ "signal.desktop" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
associations =
|
|
||||||
with inputs.lib;
|
|
||||||
with builtins;
|
|
||||||
listToAttrs (
|
|
||||||
flatten (mapAttrsToList (key: map (type: attrsets.nameValuePair type defaultApps."${key}")) mimeMap)
|
|
||||||
);
|
|
||||||
removedAssociations = {
|
|
||||||
"text/plain" = "dev.zed.Zed.desktop";
|
|
||||||
"application/x-zerosize" = "dev.zed.Zed.desktop";
|
|
||||||
};
|
|
||||||
in
|
|
||||||
{
|
|
||||||
imports = machine.program {
|
|
||||||
name = "xdg";
|
|
||||||
inherit inputs;
|
|
||||||
requirements = [ ];
|
|
||||||
home-config =
|
|
||||||
{ config, ... }:
|
|
||||||
{
|
|
||||||
xdg = {
|
|
||||||
enable = true;
|
|
||||||
mime.enable = true;
|
|
||||||
configHome = "${config.home.homeDirectory}/.config";
|
|
||||||
userDirs = {
|
|
||||||
enable = true;
|
|
||||||
documents = "${config.home.homeDirectory}/Documents";
|
|
||||||
desktop = "${config.home.homeDirectory}/Documents";
|
|
||||||
download = "${config.home.homeDirectory}/Downloads";
|
|
||||||
music = "${config.home.homeDirectory}/Documents/personal/music";
|
|
||||||
pictures = "${config.home.homeDirectory}/Documents/personal/pictures";
|
|
||||||
};
|
|
||||||
configFile."mimeapps.list".force = true;
|
|
||||||
mimeApps = {
|
|
||||||
enable = true;
|
|
||||||
associations.added = associations;
|
|
||||||
associations.removed = removedAssociations;
|
|
||||||
defaultApplications = associations;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
system-config = _: {
|
|
||||||
xdg = {
|
|
||||||
mime = {
|
|
||||||
enable = true;
|
|
||||||
defaultApplications = associations;
|
|
||||||
addedAssociations = associations;
|
|
||||||
inherit removedAssociations;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,13 +1,6 @@
|
||||||
inputs@{ machine, ... }:
|
_: {
|
||||||
{
|
custom.program.zed.requirements = [ "work" ];
|
||||||
imports = machine.program {
|
custom.program.zed.home-config =
|
||||||
name = "zed";
|
|
||||||
inherit inputs;
|
|
||||||
requirements = [
|
|
||||||
"work"
|
|
||||||
"graphical"
|
|
||||||
];
|
|
||||||
home-config =
|
|
||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
home.packages = pkgs.custom.maple-fonts-pack;
|
home.packages = pkgs.custom.maple-fonts-pack;
|
||||||
|
|
@ -132,9 +125,6 @@ inputs@{ machine, ... }:
|
||||||
refreshSupport = true;
|
refreshSupport = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
binary = {
|
|
||||||
path_lookup = true;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
nil = {
|
nil = {
|
||||||
binary = {
|
binary = {
|
||||||
|
|
@ -180,5 +170,4 @@ inputs@{ machine, ... }:
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,9 @@
|
||||||
{ pkgs, ... }:
|
{ pkgs, inputs, ... }:
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
(../modules/users.nix)
|
(inputs.self + /modules/users.nix)
|
||||||
];
|
];
|
||||||
|
users.groups.media = { };
|
||||||
|
|
||||||
custom.users = {
|
custom.users = {
|
||||||
vivian = {
|
vivian = {
|
||||||
|
|
@ -18,16 +19,6 @@
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
mara = {
|
|
||||||
shell = pkgs.zsh;
|
|
||||||
keys = [
|
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKAzf3UCwTWJlF878EWqlrLUOBsxw/b/6PoLjbKkA8Xh"
|
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIHi5YnRt1VgK8tt6oSPsKo1X+0gcBXVyvCKXM03/vEh"
|
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFWF1MtDV5HJT+GhD8wrKICyDwQK8ZPQTxZdnsfaqWcs"
|
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIHi1EEGRry1aD6uPmdlcRqdiTiIty0JlnfoXeM0qKBC"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
jana = {
|
jana = {
|
||||||
shell = pkgs.fish;
|
shell = pkgs.fish;
|
||||||
keys = [
|
keys = [
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue