This commit is contained in:
Jana Dönszelmann 2026-03-19 10:24:29 +01:00
parent 194cefe340
commit ac7e310e00
No known key found for this signature in database
9 changed files with 181 additions and 111 deletions

View file

@ -3,6 +3,7 @@ inputs@{
deploy-rs, deploy-rs,
self, self,
pkgsForSystem, pkgsForSystem,
unstablePkgsForSystem,
... ...
}: }:
@ -63,6 +64,7 @@ rec {
}: }:
home-only: { home-only: {
pkgs = pkgsForSystem system; pkgs = pkgsForSystem system;
pkgs-unstable = unstablePkgsForSystem system;
flakes = inputs; flakes = inputs;
inherit inputs; inherit inputs;
inherit (inputs.secrets.packages.${system}) secrets; inherit (inputs.secrets.packages.${system}) secrets;

25
flake.lock generated
View file

@ -718,11 +718,11 @@
"nixpkgs": "nixpkgs_5" "nixpkgs": "nixpkgs_5"
}, },
"locked": { "locked": {
"lastModified": 1773832951, "lastModified": 1774289893,
"narHash": "sha256-qzWEWTC1l7aofSoYoW9Zckh/gNLK8pbjiUuRl9qRc7k=", "narHash": "sha256-si2LHcNiLuF01yOuaUs90p1U09hhaketA8tyanWwiP0=",
"owner": "jdonszelmann", "owner": "jdonszelmann",
"repo": "homepage", "repo": "homepage",
"rev": "92cb1f2f367d52a64bf088f413aacb6446642794", "rev": "635f900ce31b7f901da33c6fa830a2e7c116552f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1123,6 +1123,22 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs-unstable": {
"locked": {
"lastModified": 1766185129,
"narHash": "sha256-ldujgxS7lslpNf3oV2DHCEgNutfzEtMPv5O6l22XHNY=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "5d9ea8caac0dda3bc216047d29943b8a59e431b7",
"type": "github"
},
"original": {
"owner": "nixos",
"repo": "nixpkgs",
"rev": "5d9ea8caac0dda3bc216047d29943b8a59e431b7",
"type": "github"
}
},
"nixpkgs_10": { "nixpkgs_10": {
"locked": { "locked": {
"lastModified": 1757967192, "lastModified": 1757967192,
@ -1458,7 +1474,7 @@
"inputs": { "inputs": {
"flake-parts": "flake-parts", "flake-parts": "flake-parts",
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs-unstable"
], ],
"systems": "systems_10" "systems": "systems_10"
}, },
@ -1712,6 +1728,7 @@
"niri": "niri", "niri": "niri",
"niri-unstable": "niri-unstable", "niri-unstable": "niri-unstable",
"nixpkgs": "nixpkgs_11", "nixpkgs": "nixpkgs_11",
"nixpkgs-unstable": "nixpkgs-unstable",
"nixvim": "nixvim", "nixvim": "nixvim",
"noctalia": "noctalia", "noctalia": "noctalia",
"p1n3appl3": "p1n3appl3", "p1n3appl3": "p1n3appl3",

View file

@ -2,6 +2,7 @@
description = "jana's server infrastructure"; description = "jana's server infrastructure";
inputs = { inputs = {
nixpkgs.url = "github:NixOS/nixpkgs"; nixpkgs.url = "github:NixOS/nixpkgs";
nixpkgs-unstable.url = "github:nixos/nixpkgs/5d9ea8caac0dda3bc216047d29943b8a59e431b7";
flake-utils.url = "github:numtide/flake-utils"; flake-utils.url = "github:numtide/flake-utils";
home-manager = { home-manager = {
url = "github:nix-community/home-manager"; url = "github:nix-community/home-manager";
@ -29,7 +30,7 @@
# home # home
nixvim = { nixvim = {
url = "github:nix-community/nixvim"; url = "github:nix-community/nixvim";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs-unstable";
}; };
t.url = "github:jdonszelmann/t-rs"; t.url = "github:jdonszelmann/t-rs";
dumpasm.url = "github:jdonszelmann/dumpasm"; dumpasm.url = "github:jdonszelmann/dumpasm";
@ -71,18 +72,21 @@
vimium-options.url = "github:uimataso/vimium-nixos"; vimium-options.url = "github:uimataso/vimium-nixos";
}; };
outputs = outputs =
{ nixpkgs {
, flake-utils nixpkgs,
, sops-nix nixpkgs-unstable,
, vpn-confinement flake-utils,
, deploy-rs sops-nix,
, ... vpn-confinement,
deploy-rs,
...
}@inputs: }@inputs:
let let
custom = pkgs: import ./pkgs/custom.nix (inputs // { inherit pkgs; }); custom = pkgs: import ./pkgs/custom.nix (inputs // { inherit pkgs; });
pkgsForSystem =
system: pkgsForSystemShared =
import nixpkgs { np: system:
import np {
inherit system; inherit system;
config.allowUnfree = true; config.allowUnfree = true;
overlays = [ overlays = [
@ -91,7 +95,9 @@
}) })
]; ];
}; };
configs = import ./config.nix (inputs // { inherit pkgsForSystem; }); pkgsForSystem = pkgsForSystemShared nixpkgs;
unstablePkgsForSystem = pkgsForSystemShared nixpkgs-unstable;
configs = import ./config.nix (inputs // { inherit pkgsForSystem unstablePkgsForSystem; });
in in
(configs.configs [ (configs.configs [
{ {

View file

@ -5,6 +5,7 @@
[ [
./xdg.nix ./xdg.nix
./ssh.nix ./ssh.nix
./less.nix
./nvim ./nvim
./fish ./fish
./kanata ./kanata

View file

@ -13,12 +13,12 @@ inputs@{ machine, ... }:
settings = { settings = {
user = { user = {
email = config.programs.git.settings.user.email; inherit (config.programs.git.settings.user) email;
name = config.programs.git.settings.user.name; inherit (config.programs.git.settings.user) name;
}; };
ui = { ui = {
paginate = "never"; # paginate = "never";
# pager = "${pkgs.delta}/bin/delta"; # pager = "${pkgs.delta}/bin/delta";
# for delta # for delta
# diff-formatter = ":git"; # diff-formatter = ":git";
@ -32,7 +32,6 @@ inputs@{ machine, ... }:
default-command = [ default-command = [
"log" "log"
"--reversed" "--reversed"
"--no-pager"
]; ];
merge-editor = [ merge-editor = [
"${pkgs.meld}/bin/meld" "${pkgs.meld}/bin/meld"
@ -154,14 +153,26 @@ inputs@{ machine, ... }:
"--from" "--from"
"trunk()" "trunk()"
]; ];
n = [ "edit" "@+" ]; n = [
p = [ "edit" "@-" ]; "edit"
"@+"
];
p = [
"edit"
"@-"
];
gp = [ "git" "push" ]; gp = [
"git"
"push"
];
t = tug; t = tug;
d = "describe"; d = "describe";
dm = [ "describe" "-m" ]; dm = [
"describe"
"-m"
];
e = "edit"; e = "edit";
s = "squash"; s = "squash";
si = "squash -i"; si = "squash -i";

22
programs/less.nix Normal file
View file

@ -0,0 +1,22 @@
inputs@{ machine, ... }:
{
imports = machine.program {
name = "less";
inherit inputs;
requirements = [ "cli" ];
home-config =
{ pkgs, ... }:
{
home.packages = with pkgs; [ less ];
programs.less = {
enable = true;
config = ''
#command
#env
LESS=--quit-if-one-screen --ignore-case --long-prompt --tabs=4 --redraw-on-quit --use-color --RAW-CONTROL-CHARS --chop-long-lines --exit-follow-on-close +F
'';
};
};
};
}

View file

@ -5,10 +5,12 @@ inputs@{ machine, ... }:
inherit inputs; inherit inputs;
requirements = [ "cli" ]; requirements = [ "cli" ];
home-config = home-config =
{ pkgs {
, flakes pkgs,
, lib pkgs-unstable,
, ... flakes,
lib,
...
}: }:
let let
nvim_mime_types = [ nvim_mime_types = [
@ -50,6 +52,10 @@ inputs@{ machine, ... }:
sessionVariables = { sessionVariables = {
EDITOR = "nvim"; EDITOR = "nvim";
}; };
packages = with pkgs-unstable; [
tree-sitter
];
}; };
home.file.".local/share/applications/${desktop-entry-name}.desktop" = { home.file.".local/share/applications/${desktop-entry-name}.desktop" = {
@ -57,11 +63,9 @@ inputs@{ machine, ... }:
}; };
xdg.mimeApps.associations.added = lib.mergeAttrsList ( xdg.mimeApps.associations.added = lib.mergeAttrsList (
map map (mime: {
(mime: { ${mime} = [ "${desktop-entry-name}.desktop" ];
${mime} = [ "${desktop-entry-name}.desktop" ]; }) nvim_mime_types
})
nvim_mime_types
); );
imports = [ imports = [
@ -90,11 +94,10 @@ inputs@{ machine, ... }:
performance = { performance = {
byteCompileLua.enable = true; byteCompileLua.enable = true;
combinePlugins = { combinePlugins = {
enable = true; enable = false;
standalonePlugins = [ standalonePlugins = [
# clashes with lualine # clashes with lualine
"onedark.nvim"
]; ];
}; };
}; };
@ -103,7 +106,8 @@ inputs@{ machine, ... }:
extraPackages = [ pkgs.imagemagick ]; extraPackages = [ pkgs.imagemagick ];
# package = (import inputs.unstable { inherit (pkgs) system; }).neovim-unwrapped; # package = (import inputs.unstable { inherit (pkgs) system; }).neovim-unwrapped;
package = pkgs.neovim-unwrapped; # package = pkgs.neovim-unwrapped;
package = with pkgs-unstable; neovim-unwrapped;
colorschemes.onedark = { colorschemes.onedark = {
enable = true; enable = true;

View file

@ -1,4 +1,9 @@
{ pkgs, config, ... }: {
pkgs,
pkgs-unstable,
config,
...
}:
let let
render-markdown = pkgs.vimUtils.buildVimPlugin { render-markdown = pkgs.vimUtils.buildVimPlugin {
name = "render-markdown"; name = "render-markdown";
@ -127,17 +132,19 @@ in
treesitter = { treesitter = {
enable = true; enable = true;
nixGrammars = false; nixGrammars = true;
grammarPackages = pkgs.vimPlugins.nvim-treesitter.allGrammars;
nixvimInjections = false; nixvimInjections = false;
# package = with pkgs-unstable; tree-sitter;
settings = { settings = {
indent.enable = true; indent.enable = true;
ensure_installed = "all"; # ensure_installed = "all";
ignore_install = [ # ignore_install = [
"wing" # "wing"
"brightscript" # "brightscript"
]; # ];
highlight.enable = true; highlight.enable = true;
@ -435,8 +442,8 @@ in
__unkeyed-1 = "filetype"; __unkeyed-1 = "filetype";
} }
]; ];
lualine_y = [{ __unkeyed-1 = "progress"; }]; lualine_y = [ { __unkeyed-1 = "progress"; } ];
lualine_z = [{ __unkeyed-1 = "location"; }]; lualine_z = [ { __unkeyed-1 = "location"; } ];
}; };
}; };
}; };
@ -623,36 +630,37 @@ in
}; };
options = { options = {
pipeline = config.lib.nixvim.mkRaw '' # pipeline = config.lib.nixvim.mkRaw "";
wilder.branch( #''
wilder.cmdline_pipeline({ # wilder.branch(
language = 'python', # wilder.cmdline_pipeline({
fuzzy = 2, # language = 'python',
}), # fuzzy = 2,
wilder.python_search_pipeline({ # }),
pattern = wilder.python_fuzzy_pattern(), # wilder.python_search_pipeline({
sorter = wilder.python_difflib_sorter(), # pattern = wilder.python_fuzzy_pattern(),
engine = 're', # sorter = wilder.python_difflib_sorter(),
}), # engine = 're',
wilder.substitute_pipeline({ # }),
pipeline = wilder.python_search_pipeline({ # wilder.substitute_pipeline({
skip_cmdtype_check = 1, # pipeline = wilder.python_search_pipeline({
pattern = wilder.python_fuzzy_pattern({ # skip_cmdtype_check = 1,
start_at_boundary = 0, # pattern = wilder.python_fuzzy_pattern({
}), # start_at_boundary = 0,
}), # }),
}), # }),
{ # }),
wilder.check(function(ctx, x) return x == "" end), # {
wilder.history(), # wilder.check(function(ctx, x) return x == "" end),
}, # wilder.history(),
wilder.python_file_finder_pipeline({ # },
file_command = {'${pkgs.ripgrep}/bin/rg', '--files'}, # wilder.python_file_finder_pipeline({
dir_command = {'${pkgs.fd}/bin/fd', '-td'}, # file_command = {'${pkgs.ripgrep}/bin/rg', '--files'},
filters = {'cpsm_filter'}, # dir_command = {'${pkgs.fd}/bin/fd', '-td'},
}) # filters = {'cpsm_filter'},
) # })
''; # )
# '';
renderer = config.lib.nixvim.mkRaw '' renderer = config.lib.nixvim.mkRaw ''
(function() (function()

View file

@ -1,42 +1,41 @@
inputs@{ machine, ... }: { inputs@{ machine, ... }:
imports = {
machine.program { imports = machine.program {
name = "ssh"; name = "ssh";
inherit inputs; inherit inputs;
requirements = [ "cli" ]; requirements = [ "cli" ];
home-config = _: { home-config = _: {
programs.ssh = { programs.ssh = {
enable = true; enable = true;
enableDefaultConfig = false; enableDefaultConfig = false;
matchBlocks = { matchBlocks = {
fili = { fili = {
user = "jana"; user = "jana";
hostname = "donsz.nl"; hostname = "donsz.nl";
}; };
icecube = { icecube = {
hostname = "192.168.178.138"; hostname = "192.168.178.138";
proxyJump = "fili"; proxyJump = "fili";
}; };
ragdoll = { ragdoll = {
hostname = "192.168.178.138"; hostname = "192.168.178.138";
proxyJump = "fili"; proxyJump = "fili";
}; };
"*" = { "*" = {
forwardAgent = false; forwardAgent = false;
serverAliveInterval = 0; serverAliveInterval = 0;
serverAliveCountMax = 3; serverAliveCountMax = 3;
compression = false; compression = false;
addKeysToAgent = null; addKeysToAgent = null;
hashKnownHosts = false; hashKnownHosts = false;
userKnownHostsFile = "~/.ssh/known_hosts"; userKnownHostsFile = "~/.ssh/known_hosts";
controlMaster = "no"; controlMaster = "no";
controlPath = "~/.ssh/master-%r@%n:%p"; controlPath = "~/.ssh/master-%r@%n:%p";
controlPersist = null; controlPersist = null;
};
}; };
}; };
}; };
} };
; };
} }