1
0
mirror of https://github.com/kmein/niveum synced 2026-03-16 10:11:08 +01:00

9 Commits

Author SHA1 Message Date
b4f8503c16 use more lib.getExe 2025-12-29 21:05:02 +01:00
30e54f5e4e comma 2025-12-29 17:56:07 +01:00
e5d2bda7ad clean up flake.lock 2025-12-29 17:54:39 +01:00
98e9083763 nix-topology 2025-12-29 16:31:56 +01:00
ea61c3024a flake: remove empty lib 2025-12-29 16:21:49 +01:00
c5379bf926 nixos-hardware 2025-12-29 16:21:35 +01:00
31a6cb384e i3: remove old keybinds 2025-12-29 16:20:26 +01:00
fdff04c94b format 2025-12-29 15:26:13 +01:00
69e752bb6b flake: document ControlPath=none 2025-12-29 15:23:53 +01:00
7 changed files with 226 additions and 1142 deletions

View File

@@ -249,10 +249,10 @@ in
"${modifier}+d" = "${modifier}+d" =
"exec ${pkgs.writers.writeDash "run" ''exec rofi -modi run,ssh,window -show run''}"; "exec ${pkgs.writers.writeDash "run" ''exec rofi -modi run,ssh,window -show run''}";
"${modifier}+Shift+d" = "exec ${pkgs.notemenu}/bin/notemenu"; "${modifier}+Shift+d" = "exec ${lib.getExe pkgs.notemenu}";
"${modifier}+p" = "exec rofi-pass"; "${modifier}+p" = "exec rofi-pass";
"${modifier}+Shift+p" = "exec rofi-pass --insert"; "${modifier}+Shift+p" = "exec rofi-pass --insert";
"${modifier}+u" = "exec ${pkgs.unicodmenu}/bin/unicodmenu"; "${modifier}+u" = "exec ${lib.getExe pkgs.unicodmenu}";
"${modifier}+Shift+u" = "${modifier}+Shift+u" =
"exec ${pkgs.writers.writeDash "last-unicode" ''${pkgs.xdotool}/bin/xdotool type --delay 1000 "$(${pkgs.gawk}/bin/awk 'END{print $1}' ~/.cache/unicodmenu)"''}"; "exec ${pkgs.writers.writeDash "last-unicode" ''${pkgs.xdotool}/bin/xdotool type --delay 1000 "$(${pkgs.gawk}/bin/awk 'END{print $1}' ~/.cache/unicodmenu)"''}";
@@ -264,15 +264,15 @@ in
fi fi
''}"; ''}";
"${modifier}+F12" = "exec ${klem}/bin/klem"; "${modifier}+F12" = "exec ${klem}/bin/klem";
"XF86AudioLowerVolume" = "exec ${pkgs.pamixer}/bin/pamixer -d 5"; "XF86AudioLowerVolume" = "exec ${lib.getExe pkgs.pamixer} -d 5";
"XF86AudioMute" = "exec ${pkgs.pamixer}/bin/pamixer -t"; "XF86AudioMute" = "exec ${lib.getExe pkgs.pamixer} -t";
"XF86AudioRaiseVolume" = "exec ${pkgs.pamixer}/bin/pamixer -i 5"; "XF86AudioRaiseVolume" = "exec ${pkgs.pamixer}/bin/pamixer -i 5";
"XF86Calculator" = "exec ${pkgs.st}/bin/st -c floating -e ${pkgs.bc}/bin/bc"; "XF86Calculator" = "exec ${lib.getExe pkgs.st} -c floating -e ${pkgs.bc}/bin/bc";
"XF86AudioPause" = "exec ${pkgs.playerctl}/bin/playerctl play-pause"; "XF86AudioPause" = "exec ${lib.getExe pkgs.playerctl} play-pause";
"XF86AudioPlay" = "exec ${pkgs.playerctl}/bin/playerctl play-pause"; "XF86AudioPlay" = "exec ${lib.getExe pkgs.playerctl} play-pause";
"XF86AudioNext" = "exec ${pkgs.playerctl}/bin/playerctl next"; "XF86AudioNext" = "exec ${lib.getExe pkgs.playerctl} next";
"XF86AudioPrev" = "exec ${pkgs.playerctl}/bin/playerctl previous"; "XF86AudioPrev" = "exec ${lib.getExe pkgs.playerctl} previous";
"XF86AudioStop" = "exec ${pkgs.playerctl}/bin/playerctl stop"; "XF86AudioStop" = "exec ${lib.getExe pkgs.playerctl} stop";
# key names detected with xorg.xev: # key names detected with xorg.xev:
# XF86WakeUp (fn twice) # XF86WakeUp (fn twice)
@@ -297,12 +297,12 @@ in
extraConfig = '' extraConfig = ''
bindsym --release ${modifier}+Shift+w exec xsecurelock bindsym --release ${modifier}+Shift+w exec xsecurelock
exec "${pkgs.obsidian}/bin/obsidian" exec "${lib.getExe pkgs.obsidian}"
for_window [class="obsidian"] , move scratchpad for_window [class="obsidian"] , move scratchpad
assign [class="message"] ${messageWorkspace} assign [class="message"] ${messageWorkspace}
exec "${pkgs.writers.writeDash "irc" "exec ${pkgs.alacritty}/bin/alacritty --class message -e ssh weechat@makanek -t tmux attach-session -t IM"}" exec "${pkgs.writers.writeDash "irc" "exec ${lib.getExe pkgs.alacritty} --class message -e ssh weechat@makanek -t tmux attach-session -t IM"}"
exec "${pkgs.writers.writeDash "email" "exec ${pkgs.alacritty}/bin/alacritty --class message -e aerc"}" exec "${pkgs.writers.writeDash "email" "exec ${lib.getExe pkgs.alacritty} --class message -e aerc"}"
exec --no-startup-id ${pkgs.xss-lock}/bin/xss-lock -- xsecurelock exec --no-startup-id ${pkgs.xss-lock}/bin/xss-lock -- xsecurelock
''; '';
@@ -317,14 +317,12 @@ in
colors colors
; ;
keybindings = keybindings // { keybindings = keybindings // {
"${modifier}+F6" = "exec ${pkgs.xorg.xkill}/bin/xkill";
"${modifier}+F9" = "exec ${pkgs.redshift}/bin/redshift -O 4000 -b 0.85"; "${modifier}+F9" = "exec ${pkgs.redshift}/bin/redshift -O 4000 -b 0.85";
"${modifier}+F10" = "exec ${pkgs.redshift}/bin/redshift -x"; "${modifier}+F10" = "exec ${pkgs.redshift}/bin/redshift -x";
"${modifier}+F11" = "exec ${pkgs.xcalib}/bin/xcalib -invert -alter";
"Print" = "exec flameshot gui"; "Print" = "exec flameshot gui";
# "${modifier}+Shift+x" = "exec ${move-to-new-workspace}"; # "${modifier}+Shift+x" = "exec ${move-to-new-workspace}";
# "${modifier}+x" = "exec ${new-workspace}"; # "${modifier}+x" = "exec ${new-workspace}";
"XF86Display" = "exec ${pkgs.dmenu-randr}/bin/dmenu-randr"; "XF86Display" = "exec ${lib.getExe pkgs.dmenu-randr}";
}; };
}; };
}; };

View File

@@ -185,6 +185,7 @@ in
nix-prefetch-git nix-prefetch-git
nix-git nix-git
nixfmt-rfc-style nixfmt-rfc-style
comma
par par
qrencode qrencode

View File

@@ -152,7 +152,6 @@ let
}; };
}; };
coptic = { coptic = {
dictionary = pkgs.coptic-stardict;
Crum = pkgs.fetchzip { Crum = pkgs.fetchzip {
url = locker "stardict-Coptic-English_all_dialects-2.4.2.tar.bz2"; url = locker "stardict-Coptic-English_all_dialects-2.4.2.tar.bz2";
sha256 = "1fi281mb9yzv40wjsdapi8fzpa7x2yscz582lv2qnss9g8zzzzr9"; sha256 = "1fi281mb9yzv40wjsdapi8fzpa7x2yscz582lv2qnss9g8zzzzr9";

View File

@@ -4,19 +4,9 @@
lib, lib,
... ...
}: }:
let
generatedWallpaper = pkgs.runCommand "wallpaper.png" { } ''
${pkgs.wp-gen}/bin/wallpaper-generator lines \
--output $out \
${lib.concatMapStringsSep " " (
n: "--base0${lib.toHexString n}=${config.lib.stylix.colors.withHashtag."base0${lib.toHexString n}"}"
) (lib.range 0 15)}
'';
in
{ {
# https://danth.github.io/stylix/tricks.html # https://danth.github.io/stylix/tricks.html
stylix.enable = true; stylix.enable = true;
stylix.image = generatedWallpaper;
stylix.base16Scheme = "${pkgs.base16-schemes}/share/themes/gruvbox-dark-medium.yaml"; stylix.base16Scheme = "${pkgs.base16-schemes}/share/themes/gruvbox-dark-medium.yaml";

View File

@@ -1,4 +1,9 @@
{ config, lib, pkgs, ... }: {
config,
lib,
pkgs,
...
}:
let let
sshPort = pkgs.lib.niveum.machines.${config.networking.hostName}.sshPort; sshPort = pkgs.lib.niveum.machines.${config.networking.hostName}.sshPort;
in in
@@ -13,11 +18,13 @@ in
services.tor.relay.onionServices = { services.tor.relay.onionServices = {
"ssh" = { "ssh" = {
version = 3; version = 3;
map = [{ map = [
port = sshPort; {
target.port = sshPort; port = sshPort;
target.addr = "127.0.0.1"; target.port = sshPort;
}]; target.addr = "127.0.0.1";
}
];
}; };
}; };
} }

1241
flake.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -6,16 +6,14 @@
agenix.url = "github:ryantm/agenix"; agenix.url = "github:ryantm/agenix";
autorenkalender.url = "github:kmein/autorenkalender"; autorenkalender.url = "github:kmein/autorenkalender";
coptic-dictionary.url = "github:kmein/coptic-dictionary";
home-manager.url = "github:nix-community/home-manager/release-25.11"; home-manager.url = "github:nix-community/home-manager/release-25.11";
menstruation-backend.url = "github:kmein/menstruation.rs"; menstruation-backend.url = "github:kmein/menstruation.rs";
menstruation-telegram.url = "github:kmein/menstruation-telegram"; menstruation-telegram.url = "github:kmein/menstruation-telegram";
nix-index-database.url = "github:nix-community/nix-index-database"; nix-index-database.url = "github:nix-community/nix-index-database";
nixpkgs-old.url = "github:NixOS/nixpkgs/50fc86b75d2744e1ab3837ef74b53f103a9b55a0"; nixpkgs-old.url = "github:NixOS/nixpkgs/50fc86b75d2744e1ab3837ef74b53f103a9b55a0";
nixpkgs-unstable.url = "github:NixOS/nixpkgs/master";
nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11"; nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11";
nixos-hardware.url = "github:NixOS/nixos-hardware";
nur.url = "github:nix-community/NUR"; nur.url = "github:nix-community/NUR";
recht.url = "github:kmein/recht";
retiolum.url = "github:krebs/retiolum"; retiolum.url = "github:krebs/retiolum";
scripts.url = "github:kmein/scripts"; scripts.url = "github:kmein/scripts";
stockholm.url = "github:krebs/stockholm"; stockholm.url = "github:krebs/stockholm";
@@ -24,43 +22,60 @@
tinc-graph.url = "github:kmein/tinc-graph"; tinc-graph.url = "github:kmein/tinc-graph";
treefmt-nix.url = "github:numtide/treefmt-nix"; treefmt-nix.url = "github:numtide/treefmt-nix";
voidrice.url = "github:Lukesmithxyz/voidrice"; voidrice.url = "github:Lukesmithxyz/voidrice";
wallpaper-generator.url = "github:pinpox/wallpaper-generator/v1.1";
wallpapers.url = "github:kmein/wallpapers"; wallpapers.url = "github:kmein/wallpapers";
nix-topology.url = "github:oddlama/nix-topology";
voidrice.flake = false;
wallpapers.flake = false;
naersk.url = "github:nix-community/naersk";
fenix.url = "github:nix-community/fenix";
naersk.inputs.fenix.follows = "fenix";
menstruation-backend.inputs.fenix.follows = "fenix";
tinc-graph.inputs.fenix.follows = "fenix";
scripts.inputs.fenix.follows = "fenix";
tinc-graph.inputs.naersk.follows = "naersk";
scripts.inputs.naersk.follows = "naersk";
menstruation-telegram.inputs.menstruation-backend.follows = "menstruation-backend";
menstruation-telegram.inputs.nixpkgs.follows = "nixpkgs-old";
telebots.inputs.nixpkgs.follows = "nixpkgs-old";
agenix.inputs.home-manager.follows = "home-manager"; agenix.inputs.home-manager.follows = "home-manager";
agenix.inputs.nixpkgs.follows = "nixpkgs"; agenix.inputs.nixpkgs.follows = "nixpkgs";
autorenkalender.inputs.nixpkgs.follows = "nixpkgs"; autorenkalender.inputs.nixpkgs.follows = "nixpkgs";
coptic-dictionary.inputs.nixpkgs.follows = "nixpkgs";
home-manager.inputs.nixpkgs.follows = "nixpkgs"; home-manager.inputs.nixpkgs.follows = "nixpkgs";
menstruation-telegram.inputs.menstruation-backend.follows = "menstruation-backend"; naersk.inputs.nixpkgs.follows = "nixpkgs";
menstruation-telegram.inputs.nixpkgs.follows = "nixpkgs-old"; fenix.inputs.nixpkgs.follows = "nixpkgs";
treefmt-nix.inputs.nixpkgs.follows = "nixpkgs";
nur.inputs.nixpkgs.follows = "nixpkgs";
nix-topology.inputs.nixpkgs.follows = "nixpkgs";
stockholm.inputs.nixpkgs.follows = "nixpkgs";
menstruation-backend.inputs.nixpkgs.follows = "nixpkgs";
nix-index-database.inputs.nixpkgs.follows = "nixpkgs"; nix-index-database.inputs.nixpkgs.follows = "nixpkgs";
recht.inputs.nixpkgs.follows = "nixpkgs";
scripts.inputs.nixpkgs.follows = "nixpkgs"; scripts.inputs.nixpkgs.follows = "nixpkgs";
stylix.inputs.nixpkgs.follows = "nixpkgs"; stylix.inputs.nixpkgs.follows = "nixpkgs";
tinc-graph.inputs.nixpkgs.follows = "nixpkgs"; tinc-graph.inputs.nixpkgs.follows = "nixpkgs";
voidrice.flake = false;
wallpapers.flake = false;
}; };
outputs = outputs =
{ {
self, self,
nixpkgs, nixpkgs,
nixpkgs-unstable,
nur, nur,
home-manager, home-manager,
agenix, agenix,
retiolum, retiolum,
coptic-dictionary,
menstruation-backend, menstruation-backend,
menstruation-telegram, menstruation-telegram,
scripts, scripts,
tinc-graph, tinc-graph,
recht, nix-topology,
nixos-hardware,
treefmt-nix, treefmt-nix,
autorenkalender, autorenkalender,
wallpaper-generator,
telebots, telebots,
stockholm, stockholm,
nix-index-database, nix-index-database,
@@ -87,6 +102,7 @@
); );
in in
{ {
apps = apps =
let let
localSystem = "x86_64-linux"; localSystem = "x86_64-linux";
@@ -128,6 +144,10 @@
# Set SSH options based on address type # Set SSH options based on address type
if [[ "$reachable" == *.onion ]]; then if [[ "$reachable" == *.onion ]]; then
# why? ControlPath=none
# SSH is trying to create a control socket with a path that includes
# the full .onion hostname, and Unix domain sockets have a path length
# limit (typically 108 characters). The .onion address is too long.
export NIX_SSHOPTS="-p ${ export NIX_SSHOPTS="-p ${
toString machines.${hostname}.sshPort toString machines.${hostname}.sshPort
} -o ProxyCommand='${pkgs.netcat}/bin/nc -x localhost:9050 %h %p' -o ControlPath=none" } -o ProxyCommand='${pkgs.netcat}/bin/nc -x localhost:9050 %h %p' -o ControlPath=none"
@@ -166,9 +186,6 @@
go-webring = import modules/go-webring.nix; go-webring = import modules/go-webring.nix;
}; };
lib = {
};
overlays.default = final: prev: { overlays.default = final: prev: {
niveum-terminal = prev.alacritty; niveum-terminal = prev.alacritty;
niveum-browser = prev.firefox; niveum-browser = prev.firefox;
@@ -253,10 +270,8 @@
telebots = telebots.packages.${prev.stdenv.hostPlatform.system}.telebots; telebots = telebots.packages.${prev.stdenv.hostPlatform.system}.telebots;
hesychius = scripts.packages.${prev.stdenv.hostPlatform.system}.hesychius; hesychius = scripts.packages.${prev.stdenv.hostPlatform.system}.hesychius;
autorenkalender = autorenkalender.packages.${prev.stdenv.hostPlatform.system}.default; autorenkalender = autorenkalender.packages.${prev.stdenv.hostPlatform.system}.default;
coptic-stardict = coptic-dictionary.packages.${prev.stdenv.hostPlatform.system}.coptic-stardict;
onomap = scripts.packages.${prev.stdenv.hostPlatform.system}.onomap; onomap = scripts.packages.${prev.stdenv.hostPlatform.system}.onomap;
tinc-graph = tinc-graph.packages.${prev.stdenv.hostPlatform.system}.tinc-graph; tinc-graph = tinc-graph.packages.${prev.stdenv.hostPlatform.system}.tinc-graph;
wp-gen = wallpaper-generator.packages.${prev.stdenv.hostPlatform.system}.wp-gen;
# krebs # krebs
brainmelter = prev.callPackage packages/brainmelter.nix { }; brainmelter = prev.callPackage packages/brainmelter.nix { };
@@ -310,7 +325,7 @@
tocharian-font = prev.callPackage packages/tocharian-font.nix { }; tocharian-font = prev.callPackage packages/tocharian-font.nix { };
ttspaste = prev.callPackage packages/ttspaste.nix { }; ttspaste = prev.callPackage packages/ttspaste.nix { };
niveum-ssh = prev.callPackage packages/niveum-ssh.nix { }; niveum-ssh = prev.callPackage packages/niveum-ssh.nix { };
try-connect = prev.callPackage packages/try-connect.nix {}; try-connect = prev.callPackage packages/try-connect.nix { };
unicodmenu = prev.callPackage packages/unicodmenu.nix { }; unicodmenu = prev.callPackage packages/unicodmenu.nix { };
vg = prev.callPackage packages/vg.nix { }; vg = prev.callPackage packages/vg.nix { };
vim-kmein = prev.callPackage packages/vim-kmein { }; vim-kmein = prev.callPackage packages/vim-kmein { };
@@ -336,6 +351,7 @@
{ nixpkgs.overlays = [ self.overlays.default ]; } { nixpkgs.overlays = [ self.overlays.default ]; }
agenix.nixosModules.default agenix.nixosModules.default
retiolum.nixosModules.retiolum retiolum.nixosModules.retiolum
nix-topology.nixosModules.default
configs/mycelium.nix configs/mycelium.nix
configs/tor.nix configs/tor.nix
configs/retiolum.nix configs/retiolum.nix
@@ -432,6 +448,7 @@
++ profiles.desktop ++ profiles.desktop
++ [ ++ [
systems/manakish/configuration.nix systems/manakish/configuration.nix
nixos-hardware.nixosModules.lenovo-thinkpad-x230
]; ];
}; };
kabsa = nixpkgs.lib.nixosSystem { kabsa = nixpkgs.lib.nixosSystem {
@@ -441,6 +458,7 @@
++ profiles.desktop ++ profiles.desktop
++ [ ++ [
systems/kabsa/configuration.nix systems/kabsa/configuration.nix
nixos-hardware.nixosModules.lenovo-thinkpad-x220
]; ];
}; };
fatteh = nixpkgs.lib.nixosSystem { fatteh = nixpkgs.lib.nixosSystem {
@@ -450,6 +468,7 @@
++ profiles.desktop ++ profiles.desktop
++ [ ++ [
systems/fatteh/configuration.nix systems/fatteh/configuration.nix
nixos-hardware.nixosModules.lenovo-thinkpad-t480
]; ];
}; };
}; };
@@ -468,10 +487,17 @@
overlays = [ overlays = [
nur.overlays.default nur.overlays.default
self.overlays.default self.overlays.default
nix-topology.overlays.default
]; ];
}; };
in in
{ {
topology = import nix-topology {
inherit pkgs;
modules = [
{ nixosConfigurations = self.nixosConfigurations; }
];
};
inherit (pkgs) inherit (pkgs)
auc auc
betacode betacode