This commit is contained in:
Sebastian Moser
2026-02-17 22:30:17 +01:00
parent d3f6e79b85
commit e6a35ee756
34 changed files with 2839 additions and 796 deletions

View File

@@ -13,7 +13,7 @@
programs.dconf.enable = true; programs.dconf.enable = true;
# set root user pwd # set root user pwd
users.users.root.password = "changeme"; #users.users.root.password = "changeme";
# Set your time zone. # Set your time zone.
time.timeZone = "Europe/Vienna"; time.timeZone = "Europe/Vienna";
@@ -40,6 +40,13 @@
services.openssh.settings.GatewayPorts = "clientspecified"; services.openssh.settings.GatewayPorts = "clientspecified";
# add extre nix registries
nix.registry = {
ni.flake = inputs.nixpkgs;
nu.flake = inputs.nixpkgs-unstable;
me.flake = self;
};
# This value determines the NixOS release from which the default # This value determines the NixOS release from which the default

View File

@@ -8,12 +8,14 @@
# - win + D command # - win + D command
# - kernel output for luks pwd on all displays # - kernel output for luks pwd on all displays
{ lib, pkgs, nur, unstable, ... }: { lib, pkgs, nur, unstable, inputs, ... }:
let let
newerUnstableSrc = builtins.getFlake "nixpkgs/d0fc30899600b9b3466ddb260fd83deb486c32f1"; newerUnstableSrc = builtins.getFlake "nixpkgs/d0fc30899600b9b3466ddb260fd83deb486c32f1";
newerUnstable = import newerUnstableSrc.outPath {}; newerUnstable = import newerUnstableSrc.outPath {};
mySway = newerUnstable.sway.override { mySway = newerUnstable.sway;
myOtherSway = newerUnstable.sway.override {
sway-unwrapped = (newerUnstable.sway-unwrapped.overrideAttrs (prev: { sway-unwrapped = (newerUnstable.sway-unwrapped.overrideAttrs (prev: {
/* /*
src = pkgs.fetchFromGitHub { src = pkgs.fetchFromGitHub {
@@ -31,13 +33,15 @@ let
}; };
})).override { })).override {
wlroots = newerUnstable.wlroots.overrideAttrs (prev: { wlroots = newerUnstable.wlroots.overrideAttrs (prev: {
nativeBuildInputs = prev.nativeBuildInputs ++ [ pkgs.cmake pkgs.libdrm pkgs.pkg-config pkgs.wayland ];
buildInputs = prev.nativeBuildInputs ++ [ pkgs.cmake pkgs.libdrm pkgs.pkg-config pkgs.wayland ];
version = "master"; version = "master";
src = pkgs.fetchFromGitLab { src = pkgs.fetchFromGitLab {
domain = "gitlab.freedesktop.org"; domain = "gitlab.freedesktop.org";
owner = "wlroots"; owner = "wlroots";
repo = "wlroots"; repo = "wlroots";
rev = "master"; rev = "2c64b30a6750d5e585c00c4c116f415bac33d18f";
sha256 = "sha256-2FK6FGRpgf/YYqwJST0LVA/pnNRSUDrfrrp6mSwA0Fk="; sha256 = "sha256-Hxf3xVJddSlSHytYJNNq7f2oQdiSXp0tmK1FepRpqaA=";
}; };
}); });
@@ -45,6 +49,10 @@ let
}; };
in { in {
# aparently also needed for wayland... or not idk
services.xserver.xkb.layout = "de";
services.greetd = { services.greetd = {
enable = true; enable = true;
settings = rec { settings = rec {
@@ -123,42 +131,17 @@ in {
services.blueman.enable = true; services.blueman.enable = true;
hardware.bluetooth.enable = true; hardware.bluetooth.enable = true;
# fix bluetooth-3-0-keyboard not reporting left and right cmd seperately (and remapping the other things the way i want them)
services.udev.extraHwdb = ''
evdev:input:b0005v05AC*
KEYBOARD_KEY_700e3=leftctrl
KEYBOARD_KEY_700e7=rightalt
KEYBOARD_KEY_700e2=leftmeta
KEYBOARD_KEY_700e0=leftalt
'';
services.keyd = {
enable = true;
/*
keyboards.bluetooth-3-0-keyboard = {
ids = [ "05ac:0255:f22563e9" ];
settings.main = {
leftalt = "meta";
leftcontrol = "leftalt";
};
};
*/
#keyboards.default.ids = [ "-05ac:0255" ]; completely disables my rebinding...... hmmmm
keyboards.default.settings = {
main = {
leftalt = "leftcontrol";
leftcontrol = "leftalt";
};
};
};
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
# flameshot where clipboard works with wayland # flameshot where clipboard works with wayland
# i am not even using flameshot anymore....
/*
(flameshot.overrideAttrs (prev: { (flameshot.overrideAttrs (prev: {
nativeBuildInputs = prev.nativeBuildInputs or [] ++ [ libsForQt5.kguiaddons ]; nativeBuildInputs = prev.nativeBuildInputs or [] ++ [ libsForQt5.kguiaddons ];
cmakeFlags = prev.nativeBuildInputs or [] ++ [ "-DUSE_WAYLAND_CLIPBOARD=true" "-DUSE_WAYLAND_GRIM=ON" ]; cmakeFlags = prev.nativeBuildInputs or [] ++ [ "-DUSE_WAYLAND_CLIPBOARD=true" "-DUSE_WAYLAND_GRIM=ON" ];
patches = prev.patches or [] ++ [ ../overlays/patches/flameshot-wayland.patch ]; patches = prev.patches or [] ++ [ ../overlays/patches/flameshot-wayland.patch ];
})) }))
*/
hyprpicker hyprpicker
satty satty
@@ -187,7 +170,7 @@ in {
xdg-desktop-portal xdg-desktop-portal
wlr-randr wlr-randr
rofi-wayland rofi
wev wev
wl-clipboard wl-clipboard
zoxide zoxide
@@ -275,27 +258,35 @@ in {
output * scale 1 bg #121212 solid_color output * scale 1 bg #121212 solid_color
#################### from nwg-display #################### from nwg-display
# Generated by nwg-displays on 2025-09-18 at 21:21:58. Do not edit manually. # Generated by nwg-displays on 2025-10-20 at 18:16:29. Do not edit manually.
output "eDP-1" {
mode 1920x1080@60.001Hz
pos 0 1888
transform normal
scale 1.0
scale_filter nearest
adaptive_sync off
dpms on
}
output "DP-1" { output "DP-1" {
mode 3840x2160@59.997Hz mode 3840x2160@59.997Hz
pos 1920 0 pos 3840 0
transform normal
scale 1.0
scale_filter nearest
adaptive_sync off
dpms on
}
output "eDP-1" {
mode 1920x1080@60.001Hz
pos 1920 1080
transform normal
scale 1.0
scale_filter nearest
adaptive_sync off
dpms on
}
output "HDMI-A-1" {
mode 1920x1080@60.0Hz
pos 0 1080
transform normal transform normal
scale 1.0 scale 1.0
scale_filter nearest scale_filter nearest
adaptive_sync off adaptive_sync off
dpms on dpms on
} }
output "DP-2" disable
#################### end from nwg-display #################### end from nwg-display
set $disp2 "DP-1" set $disp2 "DP-1"
@@ -329,6 +320,10 @@ in {
pointer_accel -0.5 pointer_accel -0.5
} }
# the lan-mouse input
#input 0:0:wlr_virtual_pointer_v1 {
#}
### Border colors and looks ### Border colors and looks
client.focused #ff4060 #222222 #ff4060 #ff4060 #ff4060 client.focused #ff4060 #222222 #ff4060 #ff4060 #ff4060
client.focused_inactive #222222 #222222 #ff4060 #222222 #222222 client.focused_inactive #222222 #222222 #ff4060 #222222 #222222
@@ -342,6 +337,7 @@ in {
#exec "/usr/bin/env bash ${./..}/scripts/idlescript" # Manages suspending and locking #exec "/usr/bin/env bash ${./..}/scripts/idlescript" # Manages suspending and locking
exec ${pkgs.bash}/bin/bash ${./..}/scripts/batteryscript.sh # Sends battery notifications when necessary exec ${pkgs.bash}/bin/bash ${./..}/scripts/batteryscript.sh # Sends battery notifications when necessary
exec tmux # create a tmux session in which one can run commands that need WAYLAND_DISPLAY set
exec nm-applet # Networkmanager applet exec nm-applet # Networkmanager applet
exec blueman-applet # Bluetoothmanager applet exec blueman-applet # Bluetoothmanager applet
exec blueman-tray # Bluetoothmanager tray icon exec blueman-tray # Bluetoothmanager tray icon
@@ -463,6 +459,7 @@ in {
# the sticky workspaces, that are the same in all workrooms # the sticky workspaces, that are the same in all workrooms
bindsym $mod+1 workspace number 1 bindsym $mod+1 workspace number 1
bindsym $mod+4 workspace number 4
bindsym $mod+7 workspace number 7 bindsym $mod+7 workspace number 7
bindsym $mod+8 workspace number 8 bindsym $mod+8 workspace number 8
bindsym $mod+9 workspace number 9 bindsym $mod+9 workspace number 9
@@ -470,6 +467,7 @@ in {
bindsym $mod+Shift+1 move container to workspace number 1 bindsym $mod+Shift+1 move container to workspace number 1
bindsym $mod+Shift+4 move container to workspace number 4
bindsym $mod+Shift+7 move container to workspace number 7 bindsym $mod+Shift+7 move container to workspace number 7
bindsym $mod+Shift+8 move container to workspace number 8 bindsym $mod+Shift+8 move container to workspace number 8
bindsym $mod+Shift+9 move container to workspace number 9 bindsym $mod+Shift+9 move container to workspace number 9
@@ -478,6 +476,7 @@ in {
# default display outputs for workspaces with fallback to disp1 # default display outputs for workspaces with fallback to disp1
workspace 1 output $disp2 $disp1 workspace 1 output $disp2 $disp1
workspace 6 output $disp2 $disp1 workspace 6 output $disp2 $disp1
workspace 4 output $disp2 $disp1
workspace 8 output $disp2 $disp1 workspace 8 output $disp2 $disp1
workspace 9 output $disp2 $disp1 workspace 9 output $disp2 $disp1
workspace 7 output eDP-1 workspace 7 output eDP-1
@@ -493,14 +492,12 @@ in {
# nav to workspaces in workrooms # nav to workspaces in workrooms
bindsym $mod+2 set $$workspace 2; workspace $$workroom$$workspace bindsym $mod+2 set $$workspace 2; workspace $$workroom$$workspace
bindsym $mod+3 set $$workspace 3; workspace $$workroom$$workspace bindsym $mod+3 set $$workspace 3; workspace $$workroom$$workspace
bindsym $mod+4 set $$workspace 4; workspace $$workroom$$workspace
bindsym $mod+5 set $$workspace 5; workspace $$workroom$$workspace bindsym $mod+5 set $$workspace 5; workspace $$workroom$$workspace
bindsym $mod+6 set $$workspace 6; workspace $$workroom$$workspace bindsym $mod+6 set $$workspace 6; workspace $$workroom$$workspace
# move windows to workspaces in workrooms # move windows to workspaces in workrooms
bindsym $mod+Shift+2 set $$tmp-workspace 2; move container to workspace $$workroom$$tmp-workspace bindsym $mod+Shift+2 set $$tmp-workspace 2; move container to workspace $$workroom$$tmp-workspace
bindsym $mod+Shift+3 set $$tmp-workspace 3; move container to workspace $$workroom$$tmp-workspace bindsym $mod+Shift+3 set $$tmp-workspace 3; move container to workspace $$workroom$$tmp-workspace
bindsym $mod+Shift+4 set $$tmp-workspace 4; move container to workspace $$workroom$$tmp-workspace
bindsym $mod+Shift+5 set $$tmp-workspace 5; move container to workspace $$workroom$$tmp-workspace bindsym $mod+Shift+5 set $$tmp-workspace 5; move container to workspace $$workroom$$tmp-workspace
bindsym $mod+Shift+6 set $$tmp-workspace 6; move container to workspace $$workroom$$tmp-workspace bindsym $mod+Shift+6 set $$tmp-workspace 6; move container to workspace $$workroom$$tmp-workspace

View File

@@ -4,7 +4,7 @@
# excluding for example my phone phone # excluding for example my phone phone
{ {
system.stateVersion = "23.05"; # Did you read the comment? ##system.stateVersion = "23.05"; # Did you read the comment?
# Select internationalisation properties. # Select internationalisation properties.
@@ -24,11 +24,7 @@
# the hosts file # the hosts file
networking.extraHosts = '' networking.extraHosts = ''
${builtins.readFile "${self}/misc/my-hosts"} ${builtins.readFile "${self}/misc/my-hosts"}
${builtins.readFile "${self}/misc/my-hosts-me"}
${builtins.readFile "${self}/misc/my-hosts-t"} ${builtins.readFile "${self}/misc/my-hosts-t"}
''; '';
environment.etc.current_hosts.text = builtins.readFile "${self}/misc/my-hosts-me";
environment.etc.current_hosts.mode = "rw";
} }

1198
flake.lock generated

File diff suppressed because it is too large Load Diff

100
flake.nix
View File

@@ -4,9 +4,10 @@
################################### INPUTS ######################################### ################################### INPUTS #########################################
inputs = { inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/release-25.05"; nixpkgs.url = "github:NixOS/nixpkgs/release-25.05";
#nixpkgs.url = "github:NixOS/nixpkgs/b9562c824b11473587286eb499680129c2d0d4f1";
#nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; #nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
nixpkgs-new.url = "github:NixOS/nixpkgs/release-25.11";
nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable"; nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
nixpkgs-old.url = "github:NixOS/nixpkgs/release-23.11"; nixpkgs-old.url = "github:NixOS/nixpkgs/release-23.11";
@@ -19,12 +20,36 @@
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
zed.url = "github:zed-industries/zed";
#zed.inputs.nixpkgs.follows = "nixpkgs";
hetzner_ddns = {
url = "github:c2vi/hetzner_ddns";
flake = false;
};
home-manager = { home-manager = {
url = "github:nix-community/home-manager/release-25.05"; url = "github:nix-community/home-manager/release-25.05";
#url = "github:nix-community/home-manager/release-24.05"; #url = "github:nix-community/home-manager/release-24.05";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
compass = {
url = "github:ppc-social/compass";
inputs.nixpkgs.follows = "nixpkgs";
};
elephant = {
url = "github:abenz1267/elephant";
#inputs.nixpkgs.follows = "nixpkgs";
};
walker = {
url = "github:abenz1267/walker";
inputs.elephant.follows = "elephant";
#inputs.nixpkgs.follows = "nixpkgs";
};
home-manager-old = { home-manager-old = {
url = "github:nix-community/home-manager/release-23.11"; url = "github:nix-community/home-manager/release-23.11";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
@@ -62,16 +87,16 @@
#inputs.nixpkgs.follows = "nixpkgs"; #inputs.nixpkgs.follows = "nixpkgs";
}; };
# use fork see: https://github.com/nix-community/nix-on-droid/pull/203#issuecomment-2956162178
nix-on-droid = { nix-on-droid = {
url = "github:nix-community/nix-on-droid/release-23.05"; url = "github:frankitox/nix-on-droid/supervisord";
#url = "github:zhaofengli/nix-on-droid";
inputs.nixpkgs.follows = "nixpkgs";
inputs.home-manager.follows = "home-manager"; inputs.home-manager.follows = "home-manager";
inputs.nixpkgs.follows = "nixpkgs";
}; };
# for bootstrap zip ball creation and proot-termux builds, we use a fixed version of nixpkgs to ease maintanence. # for bootstrap zip ball creation and proot-termux builds, we use a fixed version of nixpkgs to ease maintanence.
# head of nixos-23.05 as of 2023-06-18 # head of nixos-23.05 as of 2023-06-18
# note: when updating nixpkgs-for-bootstrap, update store paths of proot-termux in modules/environment/login/default.nix # note: when updating nixpkgs-for-bootstrap, update store paths of proot-termux in modules/environment/login/default.nix
nixpkgs-for-bootstrap.url = "github:NixOS/nixpkgs/c7ff1b9b95620ce8728c0d7bd501c458e6da9e04"; nixpkgs-for-nix-on-droid-bootstrap.url = "github:NixOS/nixpkgs/49ee0e94463abada1de470c9c07bfc12b36dcf40";
nix-wsl.url = "github:nix-community/NixOS-WSL"; nix-wsl.url = "github:nix-community/NixOS-WSL";
@@ -115,7 +140,7 @@
workDir = "/home/me/work"; workDir = "/home/me/work";
secretsDir = "/home/me/secrets"; secretsDir = "/home/me/secrets";
persistentDir = "/home/me/work/app-data"; persistentDir = "/home/me/work/app-data";
dataDir = "/home/me/host"; dataDir = "/home/server/host";
tunepkgs = import nixpkgs { tunepkgs = import nixpkgs {
@@ -189,9 +214,16 @@
overlays = [ (import ./overlays/static-overlay.nix) (import ./overlays/my-overlay.nix) ]; overlays = [ (import ./overlays/static-overlay.nix) (import ./overlays/my-overlay.nix) ];
}; };
acern = self.nixosConfigurations.acern.config.system.build.tarballBuilder; nod = (mypkgs.callPackage ./mods/nix-on-droid-pkgs.nix {
lush = self.nixosConfigurations.lush.config.system.build.sdImage; system = "aarch64-linux";
rpi = self.nixosConfigurations.rpi.config.system.build.sdImage; _nativeSystem = "x86_64-linux";
nix-on-droid-flake = inputs.nix-on-droid;
nixpkgs = inputs.nixpkgs-for-nix-on-droid-bootstrap;
nixOnDroidChannelURL = "${inputs.nix-on-droid}";
nixpkgsChannelURL = "${inputs.nixpkgs-for-nix-on-droid-bootstrap}";
home-manager-flake = inputs.home-manager-old;
#nixOnDroidFlakeURL = inputs.nix-on-droid.
}).customPkgs.bootstrapZip;
# collection of only my nur pkgs # collection of only my nur pkgs
# my nur is unstable by default # my nur is unstable by default
@@ -359,7 +391,6 @@
ki = createFlashScript "ki"; ki = createFlashScript "ki";
fasu = createFlashScript "fasu"; fasu = createFlashScript "fasu";
}; };
test = inputs.nix-on-droid.outputs.apps.x86_64-linux.deploy;
wsl = { wsl = {
type = "app"; type = "app";
@@ -425,6 +456,46 @@
############ nixosConfigurations ################ ############ nixosConfigurations ################
nixosConfigurations = rec { nixosConfigurations = rec {
"_lsp_dummp" = nixpkgs.lib.nixosSystem {
inherit specialArgs;
system = "x86_64-linux";
modules = [
inputs.home-manager.nixosModules.home-manager
inputs.networkmanager.nixosModules.networkmanager
inputs.arion.nixosModules.arion
inputs.disko.nixosModules.disko
# other overlay and home manager module access
{
nixpkgs.overlays = [
# overlay for nix vscode extensions to appear in packages
#nix-vscode-extensions.overlays.default
];
# a dummy user to expose home-manager modules
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.extraSpecialArgs = {
inherit self;
};
users.users._lsp_dummy_user = {
isNormalUser = true;
description = "dummy";
};
# the user is managed by home-manager
home-manager.users._lsp_dummy_user = {
home.username = "_lsp_dummy_user";
home.homeDirectory = "/home/_lsp_dummy_user";
home.stateVersion = "24.05";
# add custom and third party options and configurations
imports = [
inputs.lan-mouse.homeManagerModules.default
];
};
}
];
};
"main" = nixpkgs.lib.nixosSystem { "main" = nixpkgs.lib.nixosSystem {
inherit specialArgs; inherit specialArgs;
system = "x86_64-linux"; system = "x86_64-linux";
@@ -515,9 +586,9 @@
}; };
# my asus tinker board # my asus tinker board
"ti" = nixpkgs.lib.nixosSystem { "ti" = nixpkgs.lib.nixosSystem rec {
inherit specialArgs; specialArgs = { inherit inputs confDir workDir secretsDir persistentDir self unstable nur dataDir system;};
system = "x86_64-linux"; system = "aarch64-linux";
modules = [ modules = [
./hosts/ti.nix ./hosts/ti.nix
]; ];
@@ -728,6 +799,7 @@
############ nixOnDroidConfigurations ################ ############ nixOnDroidConfigurations ################
nixOnDroidConfigurations = rec { nixOnDroidConfigurations = rec {
"phone" = inputs.nix-on-droid.lib.nixOnDroidConfiguration { "phone" = inputs.nix-on-droid.lib.nixOnDroidConfiguration {
pkgs = import nixpkgs { system = "aarch64-linux"; };
modules = [ modules = [
./hosts/phone/nix-on-droid.nix ./hosts/phone/nix-on-droid.nix
{ {
@@ -743,6 +815,7 @@
]; ];
}; };
"tab" = inputs.nix-on-droid.lib.nixOnDroidConfiguration { "tab" = inputs.nix-on-droid.lib.nixOnDroidConfiguration {
pkgs = import nixpkgs { system = "aarch64-linux"; };
modules = [ modules = [
./hosts/tab/nix-on-droid.nix ./hosts/tab/nix-on-droid.nix
{ {
@@ -761,4 +834,3 @@
}; };
}; };
} }

View File

@@ -26,6 +26,8 @@
} }
]; ];
services.tailscale.enable = true;
#fileSystems."/boot" = { #fileSystems."/boot" = {
# device = "/dev/disk/by-label/fusu-boot"; # device = "/dev/disk/by-label/fusu-boot";
@@ -114,6 +116,19 @@
boot.loader.grub.extraConfig = '' boot.loader.grub.extraConfig = ''
set timeout=2 set timeout=2
''; '';
# Add these modules
boot.initrd.availableKernelModules = [
"xhci_pci"
"ehci_pci"
"ahci"
"usbhid"
"usb_storage"
"sd_mod"
"virtio_balloon"
"virtio_blk"
"virtio_pci"
"virtio_ring"
];
# the flash drive in use for fasu # the flash drive in use for fasu
disko.devices.disk.root.device = "/dev/nbd0"; disko.devices.disk.root.device = "/dev/nbd0";

View File

@@ -13,8 +13,17 @@
../users/me/headless.nix ../users/me/headless.nix
../users/root/default.nix ../users/root/default.nix
../users/server/headless.nix ../users/server/headless.nix
inputs.arion.nixosModules.arion
../mods/fesu-services.nix
]; ];
users.users.server.openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKNXOPxlnSxkhm050ui56D5SHrkhuFwUOU0Gf0C+Vmks melektron@goarnix"
];
users.users.me.openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKNXOPxlnSxkhm050ui56D5SHrkhuFwUOU0Gf0C+Vmks melektron@goarnix"
];
services.tailscale.enable = true; services.tailscale.enable = true;
@@ -24,7 +33,6 @@
qemuSwtpm = true; qemuSwtpm = true;
#qemuOvmfPackage = pkgs.OVMFFull; #qemuOvmfPackage = pkgs.OVMFFull;
}; };
virtualisation.docker.enable = true;
users.users.server.extraGroups = [ "docker" ]; users.users.server.extraGroups = [ "docker" ];
# Use the GRUB 2 boot loader. # Use the GRUB 2 boot loader.
@@ -54,7 +62,7 @@
settings.PasswordAuthentication = false; settings.PasswordAuthentication = false;
settings.KbdInteractiveAuthentication = false; settings.KbdInteractiveAuthentication = false;
settings.PermitRootLogin = "yes"; settings.PermitRootLogin = "yes";
ports = [ 22 ]; ports = [ 22 49004 ];
settings.X11Forwarding = true; settings.X11Forwarding = true;
@@ -75,6 +83,9 @@
services.samba.openFirewall = true; services.samba.openFirewall = true;
networking.firewall.allowedTCPPorts = [ networking.firewall.allowedTCPPorts = [
80 # http
443 # https
8888 # for general usage 8888 # for general usage
9999 # for general usage 9999 # for general usage
8080 # for mitm proxy 8080 # for mitm proxy
@@ -94,10 +105,10 @@
networking.firewall.allowedTCPPortRanges = [ networking.firewall.allowedTCPPortRanges = [
{ from = 25500; to = 27777;} # minecraft { from = 49000; to = 49300;} # general
]; ];
networking.firewall.allowedUDPPortRanges = [ networking.firewall.allowedUDPPortRanges = [
{ from = 27700; to = 28800;} # minecraft { from = 49000; to = 49300;} # general
]; ];
networking.firewall.allowedUDPPorts = [ networking.firewall.allowedUDPPorts = [

View File

@@ -1,5 +1,5 @@
{ inputs, pkgs, secretsDir, config, system, ... }: let { inputs, pkgs, secretsDir, config, dataDir, ... }: let
in { in {
@@ -27,6 +27,17 @@ in {
#"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHTV1VoNAjMha5IP+qb8XABDo02pW3iN0yPBIbSqZA27 me@acern" #"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHTV1VoNAjMha5IP+qb8XABDo02pW3iN0yPBIbSqZA27 me@acern"
#]; #];
virtualisation.libvirtd = {
enable = true;
qemuOvmf = true;
qemuSwtpm = true;
};
# store libvirt data in dataDir
fileSystems."/var/lib/libvirt" = {
device = "/home/me/host/libvirt";
options = [ "bind" ];
};
# allow server user to shutdown fusu # allow server user to shutdown fusu
@@ -53,6 +64,16 @@ in {
networking.firewall.interfaces."tailscale0".allowedTCPPorts = [ networking.firewall.interfaces."tailscale0".allowedTCPPorts = [
44444 # resilio sync 44444 # resilio sync
9000 # resilio webui 9000 # resilio webui
9001 # fwin vnc
9002 # fwin rdp
9003 # fwin ssh
];
networking.firewall.interfaces."br0".allowedTCPPorts = [
44444 # resilio sync
9000 # resilio webui
9001 # fwin vnc
9002 # fwin rdp
9003 # fwin ssh
]; ];

View File

@@ -52,6 +52,7 @@ in {
networking.firewall.allowedUDPPorts = [ networking.firewall.allowedUDPPorts = [
48899 # GoodWe inverter discovery 48899 # GoodWe inverter discovery
4410 # lan-mouse 4410 # lan-mouse
41641 # tailscale
]; ];
services.resilio = { services.resilio = {
@@ -150,6 +151,7 @@ in {
uuid = "e0103dac-7da0-4e32-a01b-487b8c4c813c"; uuid = "e0103dac-7da0-4e32-a01b-487b8c4c813c";
type = "wifi"; type = "wifi";
interface-name = "wlp2s0"; interface-name = "wlp2s0";
autoconnect-priority = "200";
}; };
wifi = { wifi = {
@@ -170,6 +172,33 @@ in {
}; };
}; };
gw = {
connection = {
id = "gw";
uuid = "de655c52-1af2-4b46-b7b2-8ddad9edb52f";
type = "wifi";
interface-name = "wlp2s0";
autoconnect-priority = "300";
};
wifi = {
hidden = "false";
mode = "infrastructure";
ssid = builtins.readFile "${secretsDir}/gw-ssid";
};
wifi-security = {
key-mgmt = "wpa-psk";
psk = builtins.readFile "${secretsDir}/gw-password";
};
ipv4 = {
#address1 = "192.168.20.11/24";
dns = "1.1.1.1;8.8.8.8;";
method = "auto";
};
};
hot = { hot = {
connection = { connection = {
id = "hot"; id = "hot";

View File

@@ -155,6 +155,32 @@
method = "auto"; method = "auto";
}; };
}; };
gw = {
connection = {
id = "gw";
uuid = "de655c52-1af2-4b46-b7b2-8ddad9edb52f";
type = "wifi";
interface-name = "wlan0";
autoconnect-priority = "300";
};
wifi = {
hidden = "true";
mode = "infrastructure";
ssid = builtins.readFile "${secretsDir}/gw-ssid";
};
wifi-security = {
key-mgmt = "wpa-psk";
psk = builtins.readFile "${secretsDir}/gw-password";
};
ipv4 = {
#address1 = "192.168.20.11/24";
dns = "1.1.1.1;8.8.8.8;";
method = "auto";
};
};
hh40 = { hh40 = {
connection = { connection = {

View File

@@ -4,6 +4,7 @@ myobs = pkgs.wrapOBS {
plugins = with pkgs.obs-studio-plugins; [ plugins = with pkgs.obs-studio-plugins; [
obs-ndi obs-ndi
obs-teleport obs-teleport
droidcam-obs
]; ];
}; };
@@ -24,7 +25,7 @@ in {
services.tailscale.enable = true; services.tailscale.enable = true;
programs.nix-ld.enable = true; programs.nix-ld.enable = true;
services.pid-fan-controller.enable = true; #services.pid-fan-controller.enable = true;
networking.hostName = "mac"; networking.hostName = "mac";
networking.firewall.enable = false; networking.firewall.enable = false;
@@ -61,6 +62,19 @@ in {
4410 # lan-mouse 4410 # lan-mouse
]; ];
##### Netbird Configuration
services.netbird.clients.ppc = {
#login = {
#enable = true;
#setupKeyFile = "${secretsDir}/netbird-setup-key";
#};
port = 51821;
ui.enable = false;
openFirewall = true;
#openInternalFirewall = true;
};
swapDevices = [ { device = "/swapfile"; } ]; swapDevices = [ { device = "/swapfile"; } ];
boot.kernelModules = [ "usbip_core" ]; boot.kernelModules = [ "usbip_core" ];
@@ -89,7 +103,31 @@ in {
''; '';
}; };
# fix bluetooth-3-0-keyboard not reporting left and right cmd seperately (and remapping the other things the way i want them)
services.udev.extraHwdb = ''
evdev:input:b0005v05AC*
KEYBOARD_KEY_700e3=leftctrl
KEYBOARD_KEY_700e7=rightalt
KEYBOARD_KEY_700e2=leftmeta
KEYBOARD_KEY_700e0=leftalt
'';
# fan speed fix
systemd.services.my-fan-speed-fix = {
description = "Set applesmc fan values";
serviceConfig = {
Type = "oneshot";
ExecStart = ''
/bin/sh -c 'echo 1 > /sys/devices/platform/applesmc.768/fan2_manual; echo 1000 > /sys/devices/platform/applesmc.768/fan2_output'
'';
};
#startAt = "*:0/3"; # Runs every 3 minutes
wantedBy = [ "multi-user.target" "suspend.target" "hibernate.target" "hybrid-sleep.target" ];
after = [ "suspend.target" "hibernate.target" "hybrid-sleep.target" ];
};
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
myobs
lm_sensors lm_sensors
linuxPackages.usbip linuxPackages.usbip
helvum helvum
@@ -112,20 +150,7 @@ in {
}; };
networking = { networking = {
#usePredictableInterfaceNames = false;
defaultGateway = {
address = "192.168.1.1";
interface = "enp2s0";
};
nameservers = [ "1.1.1.1" "8.8.8.8" ]; nameservers = [ "1.1.1.1" "8.8.8.8" ];
interfaces = {
"enp2s0" = {
name = "enp2s0";
ipv4.addresses = [
{ address = "192.168.1.33"; prefixLength = 24;}
];
};
};
}; };
services.openssh = { services.openssh = {
@@ -142,12 +167,12 @@ in {
''; '';
}; };
home-manager.users.me.home.file.".config/sway/config".text = '' #home-manager.users.me.home.file.".config/sway/config".text = ''
exec ${pkgs.wayvnc}/bin/wayvnc 0.0.0.0 6666 #exec ${pkgs.wayvnc}/bin/wayvnc 0.0.0.0 6666
#exec 'wl-paste -w ${pkgs.netcat-openbsd}/bin/nc 192.168.1.11 4405' #exec 'wl-paste -w ${pkgs.netcat-openbsd}/bin/nc 192.168.1.11 4405'
#exec 'sh -c "while true; do ${pkgs.netcat-openbsd}/bin/nc -l 4405 | wl-copy; done"' #exec 'sh -c "while true; do ${pkgs.netcat-openbsd}/bin/nc -l 4405 | wl-copy; done"'
#exec 'sh -c "while true; do cat ~/clipboard | wl-paste; done"' #exec 'sh -c "while true; do cat ~/clipboard | wl-paste; done"'
''; #'';
home-manager.users.me.programs.lan-mouse = { home-manager.users.me.programs.lan-mouse = {
enable = true; enable = true;
@@ -160,10 +185,8 @@ in {
position = "left"; position = "left";
hostname = "main"; hostname = "main";
activate_on_startup = true; activate_on_startup = true;
ips = [ "192.168.1.11" ]; ips = [ "192.168.4.2" "100.71.47.106" ];
port = 4410; port = 4410;
#enter_hook = "${pkgs.wl-clipboard}/bin/wl-paste | ${pkgs.netcat-openbsd}/bin/nc 192.168.1.11 4405";
enter_hook = "/run/current-system/sw/bin/cat /home/me/.cache/clipboard | ${pkgs.netcat-openbsd}/bin/nc 192.168.1.11 4405 -N";
} }
]; ];
}; };
@@ -175,7 +198,6 @@ in {
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPgKLRF9iYRH3Y8hPjLX1ZY6GyavruqcQ0Q0Y8bnmpv9 me@tab" "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPgKLRF9iYRH3Y8hPjLX1ZY6GyavruqcQ0Q0Y8bnmpv9 me@tab"
]; ];
services.greetd = lib.mkForce { services.greetd = lib.mkForce {
enable = true; enable = true;
settings = rec { settings = rec {
@@ -350,6 +372,21 @@ in {
networking.networkmanager.enable = true; networking.networkmanager.enable = true;
networking.networkmanager.profiles = { networking.networkmanager.profiles = {
home = {
connection = {
id = "home";
uuid = "a02273d9-ad12-395e-8372-f61129635b6f";
type = "ethernet";
autoconnect-priority = "300";
interface-name = "enp2s0";
};
ipv4 = {
address2 = "192.168.4.3/24";
dns = "1.1.1.1;";
method = "manual";
};
};
pw = { pw = {
connection = { connection = {
id = "pw"; id = "pw";
@@ -377,6 +414,33 @@ in {
}; };
}; };
gw = {
connection = {
id = "gw";
uuid = "de655c52-1af2-4b46-b7b2-8ddad9edb52f";
type = "wifi";
interface-name = "wlp3s0";
autoconnect-priority = "300";
};
wifi = {
hidden = "true";
mode = "infrastructure";
ssid = builtins.readFile "${secretsDir}/gw-ssid";
};
wifi-security = {
key-mgmt = "wpa-psk";
psk = builtins.readFile "${secretsDir}/gw-password";
};
ipv4 = {
#address1 = "192.168.20.11/24";
dns = "1.1.1.1;8.8.8.8;";
method = "auto";
};
};
hot = { hot = {
connection = { connection = {
id = "hot"; id = "hot";
@@ -429,7 +493,7 @@ in {
id = "dhcp"; id = "dhcp";
uuid = "c006389a-1697-4f77-91c3-95b466f85f13"; uuid = "c006389a-1697-4f77-91c3-95b466f85f13";
type = "ethernet"; type = "ethernet";
autoconnect = true; autoconnect = false;
autoconnect-priority = "200"; autoconnect-priority = "200";
interface-name = "enp2s0"; interface-name = "enp2s0";
}; };

View File

@@ -40,12 +40,13 @@
enableVirtualCamera = true; enableVirtualCamera = true;
plugins = with pkgs.obs-studio-plugins; [ plugins = with pkgs.obs-studio-plugins; [
droidcam-obs droidcam-obs
obs-ndi #distroav
obs-teleport obs-teleport
]; ];
}; };
# virtual display # virtual display
/*
hardware.display = { hardware.display = {
edid.packages = [ edid.packages = [
@@ -66,12 +67,13 @@
UUEwQzAxNzgwMDEKACU= UUEwQzAxNzgwMDEKACU=
EOF EOF
'') '')
*/
]; ];
*/
# find a free GPU output using this command: # find a free GPU output using this command:
# for p in /sys/class/drm/*/status; do con=${p%/status}; echo -n "${con#*/card?-}: "; cat $p; done # for p in /sys/class/drm/*/status; do con=${p%/status}; echo -n "${con#*/card?-}: "; cat $p; done
/*
outputs."DP-2" = { outputs."DP-2" = {
edid = "virtual.bin"; edid = "virtual.bin";
@@ -81,10 +83,25 @@
mode = "1920x1080e"; mode = "1920x1080e";
}; };
}; };
*/
##### Netbird Configuration
services.netbird.clients.ppc = {
#login = {
#enable = true;
#setupKeyFile = "${secretsDir}/netbird-setup-key";
#};
port = 51821;
ui.enable = false;
openFirewall = true;
#openInternalFirewall = true;
};
programs.fuse.userAllowOther = true; programs.fuse.userAllowOther = true;
services.gnome.gnome-keyring.enable = true;
services.sunshine = { services.sunshine = {
enable = false; enable = false;
autoStart = true; autoStart = true;
@@ -128,6 +145,10 @@
}); });
}; };
fonts.packages = with pkgs; [
league-gothic
];
hardware.graphics.extraPackages = with pkgs; [ hardware.graphics.extraPackages = with pkgs; [
@@ -135,22 +156,41 @@
]; ];
services.keyd = {
enable = true;
/*
keyboards.bluetooth-3-0-keyboard = {
ids = [ "05ac:0255:f22563e9" ];
settings.main = {
leftalt = "meta";
leftcontrol = "leftalt";
};
};
*/
#keyboards.default.ids = [ "-05ac:0255" ]; completely disables my rebinding...... hmmmm
keyboards.default.settings = {
main = {
leftalt = "leftcontrol";
leftcontrol = "leftalt";
};
};
};
home-manager.users.me.programs.lan-mouse = { home-manager.users.me.programs.lan-mouse = {
enable = true; enable = true;
settings = { settings = {
authorized_fingerprints."0d:4f:2c:8a:46:d5:6a:e2:22:c9:02:89:39:da:75:69:2d:e9:32:39:d7:dc:e6:e2:50:d6:20:22:a5:26:d4:44" = "mac"; authorized_fingerprints."20:e2:a0:c1:e9:52:9b:72:d5:68:8c:7c:91:c0:ac:33:ba:ec:bc:61:73:e9:8e:c1:a8:30:1a:ea:ae:2b:55:33" = "mac";
port = 4410; port = 4410;
clients = [ clients = [
{ {
position = "right"; position = "right";
hostname = "mac"; hostname = "mac";
activate_on_startup = true; activate_on_startup = true;
ips = [ "192.168.1.33" ]; ips = [ "192.168.4.3" "100.100.55.117" ];
port = 4410; port = 4410;
#enter_hook = "${pkgs.wl-clipboard}/bin/wl-paste | ${pkgs.openssh}/bin/ssh mac 'cat > ~/clipboard'";
#enter_hook = "/run/current-system/sw/bin/echo hooooooooooo > /home/me/p1";
enter_hook = "/run/current-system/sw/bin/cat /home/me/.cache/clipboard | /run/current-system/sw/bin/ssh mac 'cat >~/clipboard'";
} }
]; ];
}; };
@@ -165,7 +205,7 @@
services.tailscale.enable = true; services.tailscale.enable = true;
services.resilio = { services.resilio = {
enable = true; enable = false;
enableWebUI = true; enableWebUI = true;
httpListenAddr = "100.71.47.106"; httpListenAddr = "100.71.47.106";
checkForUpdates = false; checkForUpdates = false;
@@ -231,6 +271,7 @@
#../common/nixos-graphical.nix #../common/nixos-graphical.nix
../common/nixos-wayland.nix ../common/nixos-wayland.nix
../common/building.nix ../common/building.nix
../common/nixos.nix
../mods/battery_monitor.nix ../mods/battery_monitor.nix
inputs.networkmanager.nixosModules.networkmanager inputs.networkmanager.nixosModules.networkmanager
@@ -246,12 +287,17 @@
#inputs.waveforms.nixosModule #inputs.waveforms.nixosModule
]; ];
services.udev.packages = [ inputs.waveforms.packages.${system}.adept2-runtime ];
users.users.rslsync.extraGroups = ["users"]; #services.udev.packages = [ inputs.waveforms.packages.${system}.adept2-runtime ];
#users.users.rslsync.extraGroups = ["users"];
# add myself to plugdev group for waveforms # add myself to plugdev group for waveforms
# and incus-admin to use incus without sudo # and incus-admin to use incus without sudo
users.users.me.extraGroups = [ "incus-admin" "plugdev" "rslsync" ]; users.users.me.extraGroups = [
"incus-admin" "plugdev"
#"rslsync"
"docker"
];
nixpkgs.config.permittedInsecurePackages = [ nixpkgs.config.permittedInsecurePackages = [
@@ -260,7 +306,14 @@
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
inputs.waveforms.packages.${system}.waveforms
((builtins.getFlake "nixpkgs/96bc8fec15133d6056410ed3abae2fb9419fb545").legacyPackages.${system}.affine.overrideAttrs {
patches = [
../overlays/patches/affin-edgeless-right-click-drag.patch
];
})
#inputs.waveforms.packages.${system}.waveforms
intel-compute-runtime-legacy1 intel-compute-runtime-legacy1
ffmpeg-full ffmpeg-full
remmina remmina
@@ -294,7 +347,7 @@
dhcpcd dhcpcd
looking-glass-client looking-glass-client
swtpm swtpm
win-virtio virtio-win
]; ];
# shedule nix builds with low priority, so the laptop is still usable while building something # shedule nix builds with low priority, so the laptop is still usable while building something
@@ -428,12 +481,16 @@
elif [[ "$host" == "phone" ]] elif [[ "$host" == "phone" ]]
then then
ssh phone "source ~/.bashrc && on" ssh phone "source ~/.bashrc && on" &
${pkgs.rustdesk}/bin/rustdesk --connect 100.77.80.77 ${pkgs.rustdesk}/bin/rustdesk --connect 100.77.80.77
elif [[ "$host" == "vnc-fwin" ]]
then
${pkgs.remmina}/bin/remmina -c ${persistentDir}/remmina/fwin.remmina
elif [[ "$host" == "fwin" ]] elif [[ "$host" == "fwin" ]]
then then
${pkgs.remmina}/bin/remmina -c ${persistentDir}/remmina/fwin.remmina xfreerdp /u:"me" /v:fusu:9002 /p:$(cat /home/me/secrets/win-vm-pwd) /dynamic-resolution +clipboard +auto-reconnect +home-drive /wm-class:"Microsoft Windows";
elif [[ "$host" == "ki" ]] elif [[ "$host" == "ki" ]]
then then
@@ -517,6 +574,7 @@
53 # allow dns 53 # allow dns
48899 # GoodWe inverter discovery 48899 # GoodWe inverter discovery
4410 # lan-mouse 4410 # lan-mouse
41641 # tailscale
]; ];
#networking.search = [ "c2vi.local" ]; #networking.search = [ "c2vi.local" ];
@@ -532,10 +590,10 @@
uuid = "a02273d9-ad12-395e-8372-f61129635b6f"; uuid = "a02273d9-ad12-395e-8372-f61129635b6f";
type = "ethernet"; type = "ethernet";
autoconnect-priority = "-999"; autoconnect-priority = "-999";
interface-name = "enp1s0"; interface-name = "enp0s13f0u1u4u3";
}; };
ipv4 = { ipv4 = {
address1 = "192.168.1.11/24,192.168.1.1"; address2 = "192.168.4.2/24";
dns = "1.1.1.1;"; dns = "1.1.1.1;";
method = "manual"; method = "manual";
}; };
@@ -592,6 +650,7 @@
uuid = "e0103dac-7da0-4e32-a01b-487b8c4c813c"; uuid = "e0103dac-7da0-4e32-a01b-487b8c4c813c";
type = "wifi"; type = "wifi";
interface-name = "wlo1"; interface-name = "wlo1";
autoconnect-priority = "200";
}; };
wifi = { wifi = {
@@ -612,6 +671,33 @@
}; };
}; };
gw = {
connection = {
id = "gw";
uuid = "de655c52-1af2-4b46-b7b2-8ddad9edb52f";
type = "wifi";
interface-name = "wlo1";
autoconnect-priority = "300";
};
wifi = {
hidden = "true";
mode = "infrastructure";
ssid = builtins.readFile "${secretsDir}/gw-ssid";
};
wifi-security = {
key-mgmt = "wpa-psk";
psk = builtins.readFile "${secretsDir}/gw-password";
};
ipv4 = {
#address1 = "192.168.20.11/24";
dns = "1.1.1.1;8.8.8.8;";
method = "auto";
};
};
hec = { hec = {
connection = { connection = {
id = "hec"; id = "hec";
@@ -685,8 +771,8 @@
id = "dhcp"; id = "dhcp";
uuid = "c006389a-1697-4f77-91c3-95b466f85f13"; uuid = "c006389a-1697-4f77-91c3-95b466f85f13";
type = "ethernet"; type = "ethernet";
autoconnect = "false"; autoconnect = "true";
interface-name = "enp1s0"; interface-name = "enp0s13f0u1u3";
}; };
ethernet = { ethernet = {
@@ -780,9 +866,10 @@
######################################### virtualisation ############################### ######################################### virtualisation ###############################
virtualisation.docker.enable = true;
virtualisation.libvirtd = { virtualisation.libvirtd = {
enable = true; enable = true;
qemuOvmf = true; #qemuOvmf = true;
qemuSwtpm = true; qemuSwtpm = true;
#qemuOvmfPackage = pkgs.OVMFFull; #qemuOvmfPackage = pkgs.OVMFFull;
}; };
@@ -835,9 +922,9 @@
# boot.resumeDevice = "/swapfile"; # boot.resumeDevice = "/swapfile";
services.logind = { services.logind = {
extraConfig = '' #extraConfig = ''
HandlePowerKey=suspend-then-hibernate #HandlePowerKey=suspend-then-hibernate
''; #'';
lidSwitch = "lock"; lidSwitch = "lock";
lidSwitchExternalPower = "lock"; lidSwitchExternalPower = "lock";
lidSwitchDocked = "ignore"; lidSwitchDocked = "ignore";
@@ -846,6 +933,45 @@
HibernateDelaySec=4h HibernateDelaySec=4h
HibernateMode=shutdown HibernateMode=shutdown
''; '';
############################## swap and hibernate ###################################
/*
fileSystems."/home/me/work/things/ppc" = {
device = "https://dav.ppc.social";
fsType = "davfs";
options = [
"netdev"
"rw"
"user"
"uid=1000"
"filemode=0644"
"dirmode=0755"
"noauto"
"x-systemd.automount"
];
};
*/
services = {
davfs2 = {
enable = true;
davUser = "me";
settings = {
globalSection = {
gui_optimize = true;
file_refresh = 30;
};
sections = {
"/home/me/work/things/ppc" = {
gui_optimize = true;
file_refresh = 30;
};
};
};
};
};
} }

View File

@@ -354,7 +354,7 @@ in {
size = "100%"; size = "100%";
content = { content = {
type = "filesystem"; type = "filesystem";
format = "ext4"; format = "exfat";
mountpoint = "/pub"; mountpoint = "/pub";
}; };
}; };

View File

@@ -23,6 +23,10 @@
# "${workDir}/htl/labor/nas/nixos/lush-module.nix" # "${workDir}/htl/labor/nas/nixos/lush-module.nix"
]; ];
#nixpkgs.config.allowUnsupportedSystem = true;
#nixpkgs.hostPlatform.system = "aarch64-linux";
#nixpkgs.buildPlatform.system = "x86_64-linux";
# fix bluetooth # fix bluetooth
hardware = { hardware = {
bluetooth = { bluetooth = {
@@ -38,12 +42,7 @@
]; ];
boot.kernelParams = lib.mkForce ["console=ttyS0,115200n8" "console=ttyAMA0,115200n8" "console=tty0" "nohibernate" "loglevel=7" ]; #boot.kernelParams = lib.mkForce ["console=ttyS0,115200n8" "console=ttyAMA0,115200n8" "console=tty0" "nohibernate" "loglevel=7" ];
# hardware.bluetooth.enable = true;
# home-manager.users.me = import ../users/me/home-headless.nix;
/* for cross compiling /* for cross compiling
@@ -87,7 +86,6 @@
}; };
boot = { boot = {
#kernelPackages = lib.mkForce pkgs.linuxPackages_latest;
loader = { loader = {
generic-extlinux-compatible.enable = lib.mkDefault true; generic-extlinux-compatible.enable = lib.mkDefault true;
grub.enable = lib.mkDefault false; grub.enable = lib.mkDefault false;
@@ -124,7 +122,7 @@
3240 # usbip 3240 # usbip
]; ];
networking.hostName = "lush"; networking.hostName = "ti";
networking.networkmanager.enable = true; networking.networkmanager.enable = true;
@@ -156,6 +154,33 @@
}; };
}; };
gw = {
connection = {
id = "gw";
uuid = "de655c52-1af2-4b46-b7b2-8ddad9edb52f";
type = "wifi";
interface-name = "wlp2s0";
autoconnect-priority = "300";
};
wifi = {
hidden = "false";
mode = "infrastructure";
ssid = builtins.readFile "${secretsDir}/gw-ssid";
};
wifi-security = {
key-mgmt = "wpa-psk";
psk = builtins.readFile "${secretsDir}/gw-password";
};
ipv4 = {
#address1 = "192.168.20.11/24";
dns = "1.1.1.1;8.8.8.8;";
method = "auto";
};
};
hh40 = { hh40 = {
connection = { connection = {
id = "hh40"; id = "hh40";
@@ -189,7 +214,7 @@
uuid = "c006389a-1697-4f77-91c3-95b466f85f13"; uuid = "c006389a-1697-4f77-91c3-95b466f85f13";
type = "ethernet"; type = "ethernet";
autoconnect = "true"; autoconnect = "true";
interface-name = "end0"; interface-name = "eth0";
}; };
ethernet = { ethernet = {
@@ -208,7 +233,7 @@
uuid = "f55f34e3-4595-4642-b1f6-df3185bc0a04"; uuid = "f55f34e3-4595-4642-b1f6-df3185bc0a04";
type = "ethernet"; type = "ethernet";
autoconnect = false; autoconnect = false;
interface-name = "end0"; interface-name = "eth0";
}; };
ethernet = { ethernet = {

895
log
View File

@@ -5,7 +5,513 @@ evaluation warning: You have set specialArgs.pkgs, which means that options like
please import the `nixosModules.readOnlyPkgs` module from the nixpkgs flake or please import the `nixosModules.readOnlyPkgs` module from the nixpkgs flake or
`(modulesPath + "/misc/nixpkgs/read-only.nix"), and set `{ nixpkgs.pkgs = <your pkgs>; }`. `(modulesPath + "/misc/nixpkgs/read-only.nix"), and set `{ nixpkgs.pkgs = <your pkgs>; }`.
This properly disables the ignored options to prevent future surprises. This properly disables the ignored options to prevent future surprises.
evaluation warning: nix-index-database: flake output `hmModules` has been renamed to `homeModules`
evaluation warning: In order to support declarative extension configuration,
extension installation has been moved from
programs.firefox.profiles.<profile>.extensions
to
programs.firefox.profiles.<profile>.extensions.packages
evaluation warning: 'system' has been renamed to/replaced by 'stdenv.hostPlatform.system'
error: error:
… while calling anonymous lambda
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/attrsets.nix:1691:14:
1690| zipAttrsWith (
1691| n: values:
| ^
1692| let
… while calling the 'head' builtin
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/attrsets.nix:1696:13:
1695| if length values == 1 || pred here (elemAt values 1) (head values) then
1696| head values
| ^
1697| else
… while calling anonymous lambda
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/attrsets.nix:1188:17:
1187| mapAttrs (
1188| name: value:
| ^
1189| if isAttrs value && cond value then recurse (path ++ [ name ]) value else f (path ++ [ name ]) value
… from call site
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/attrsets.nix:1189:85:
1188| name: value:
1189| if isAttrs value && cond value then recurse (path ++ [ name ]) value else f (path ++ [ name ]) value
| ^
1190| );
… while calling anonymous lambda
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/modules.nix:275:71:
274| # For definitions that have an associated option
275| declaredConfig = mapAttrsRecursiveCond (v: !isOption v) (_: v: v.value) options;
| ^
276|
… while evaluating the attribute 'value'
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/modules.nix:1118:7:
1117| // {
1118| value = addErrorContext "while evaluating the option `${showOption loc}':" value;
| ^
1119| inherit (res.defsFinal') highestPrio;
… while evaluating the option `system.build.toplevel':
… while evaluating the attribute 'mergedValue'
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/modules.nix:1192:5:
1191| # Type-check the remaining definitions, and merge them. Or throw if no definitions.
1192| mergedValue =
| ^
1193| if isDefined then
… while evaluating a branch condition
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/modules.nix:1193:7:
1192| mergedValue =
1193| if isDefined then
| ^
1194| if type.merge ? v2 then
… while evaluating the attribute 'values'
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/modules.nix:1186:9:
1185| {
1186| values = defsSorted;
| ^
1187| inherit (defsFiltered) highestPrio;
… while evaluating a branch condition
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/modules.nix:1180:11:
1179| # Avoid sorting if we don't have to.
1180| if any (def: def.value._type or "" == "order") defsFiltered.values then
| ^
1181| sortProperties defsFiltered.values
… while calling the 'any' builtin
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/modules.nix:1180:14:
1179| # Avoid sorting if we don't have to.
1180| if any (def: def.value._type or "" == "order") defsFiltered.values then
| ^
1181| sortProperties defsFiltered.values
… while evaluating the attribute 'values'
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/modules.nix:1360:7:
1359| {
1360| values = concatMap (def: if getPrio def == highestPrio then [ (strip def) ] else [ ]) defs;
| ^
1361| inherit highestPrio;
… while calling the 'concatMap' builtin
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/modules.nix:1360:16:
1359| {
1360| values = concatMap (def: if getPrio def == highestPrio then [ (strip def) ] else [ ]) defs;
| ^
1361| inherit highestPrio;
… while calling the 'concatMap' builtin
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/modules.nix:1160:26:
1159| # Process mkMerge and mkIf properties.
1160| defsNormalized = concatMap (
| ^
1161| m:
… while calling anonymous lambda
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/modules.nix:1161:11:
1160| defsNormalized = concatMap (
1161| m:
| ^
1162| map (
… while calling the 'map' builtin
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/modules.nix:1162:11:
1161| m:
1162| map (
| ^
1163| value:
… while evaluating definitions from `/nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/nixos/modules/system/activation/top-level.nix':
… from call site
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/modules.nix:1171:80:
1170| }
1171| ) (addErrorContext "while evaluating definitions from `${m.file}':" (dischargeProperties m.value))
| ^
1172| ) defs;
… while calling 'dischargeProperties'
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/modules.nix:1311:5:
1310| dischargeProperties =
1311| def:
| ^
1312| if def._type or "" == "merge" then
… while evaluating a branch condition
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/modules.nix:1312:5:
1311| def:
1312| if def._type or "" == "merge" then
| ^
1313| concatMap dischargeProperties def.contents
… while evaluating the attribute 'value'
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/modules.nix:805:21:
804| inherit (module) file;
805| inherit value;
| ^
806| }) module.config
… from call site
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/nixos/modules/system/activation/top-level.nix:81:26:
80| # Handle assertions and warnings
81| baseSystemAssertWarn = lib.asserts.checkAssertWarn config.assertions config.warnings baseSystem;
| ^
82|
… while calling 'checkAssertWarn'
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/asserts.nix:193:27:
192| checkAssertWarn =
193| assertions: warnings: val:
| ^
194| let
… from call site
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/asserts.nix:200:7:
199| else
200| showWarnings warnings val;
| ^
201|
… while calling 'showWarnings'
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/trivial.nix:982:28:
981|
982| showWarnings = warnings: res: lib.foldr (w: x: warn w x) res warnings;
| ^
983|
… from call site
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/trivial.nix:982:33:
981|
982| showWarnings = warnings: res: lib.foldr (w: x: warn w x) res warnings;
| ^
983|
… while calling 'foldr'
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/lists.nix:139:14:
138| foldr =
139| op: nul: list:
| ^
140| let
… from call site
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/lists.nix:144:5:
143| in
144| fold' 0;
| ^
145|
… while calling 'fold''
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/lists.nix:142:15:
141| len = length list;
142| fold' = n: if n == len then nul else op (elemAt list n) (fold' (n + 1));
| ^
143| in
… while evaluating a branch condition
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/lists.nix:142:18:
141| len = length list;
142| fold' = n: if n == len then nul else op (elemAt list n) (fold' (n + 1));
| ^
143| in
… while calling the 'length' builtin
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/lists.nix:141:13:
140| let
141| len = length list;
| ^
142| fold' = n: if n == len then nul else op (elemAt list n) (fold' (n + 1));
… from call site
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/nixos/modules/system/activation/top-level.nix:81:72:
80| # Handle assertions and warnings
81| baseSystemAssertWarn = lib.asserts.checkAssertWarn config.assertions config.warnings baseSystem;
| ^
82|
… while calling anonymous lambda
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/attrsets.nix:1188:17:
1187| mapAttrs (
1188| name: value:
| ^
1189| if isAttrs value && cond value then recurse (path ++ [ name ]) value else f (path ++ [ name ]) value
… from call site
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/attrsets.nix:1189:85:
1188| name: value:
1189| if isAttrs value && cond value then recurse (path ++ [ name ]) value else f (path ++ [ name ]) value
| ^
1190| );
… while calling anonymous lambda
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/modules.nix:275:71:
274| # For definitions that have an associated option
275| declaredConfig = mapAttrsRecursiveCond (v: !isOption v) (_: v: v.value) options;
| ^
276|
… while evaluating the attribute 'value'
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/modules.nix:1118:7:
1117| // {
1118| value = addErrorContext "while evaluating the option `${showOption loc}':" value;
| ^
1119| inherit (res.defsFinal') highestPrio;
… while evaluating the option `warnings':
(10 duplicate frames omitted)
… while evaluating definitions from `/nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/nixos/modules/system/boot/systemd.nix':
… from call site
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/modules.nix:1171:80:
1170| }
1171| ) (addErrorContext "while evaluating definitions from `${m.file}':" (dischargeProperties m.value))
| ^
1172| ) defs;
… while calling 'dischargeProperties'
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/modules.nix:1311:5:
1310| dischargeProperties =
1311| def:
| ^
1312| if def._type or "" == "merge" then
… while evaluating a branch condition
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/modules.nix:1312:5:
1311| def:
1312| if def._type or "" == "merge" then
| ^
1313| concatMap dischargeProperties def.contents
… while evaluating the attribute 'value'
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/modules.nix:805:21:
804| inherit (module) file;
805| inherit value;
| ^
806| }) module.config
… while calling the 'concatLists' builtin
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/nixos/modules/system/boot/systemd.nix:494:7:
493| in
494| concatLists (
| ^
495| mapAttrsToList (
… while calling anonymous lambda
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/nixos/modules/system/boot/systemd.nix:496:17:
495| mapAttrsToList (
496| name: service:
| ^
497| let
… while calling the 'concatLists' builtin
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/nixos/modules/system/boot/systemd.nix:502:11:
501| in
502| concatLists [
| ^
503| (optional (type == "oneshot" && (restart == "always" || restart == "on-success"))
… from call site
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/nixos/modules/system/boot/systemd.nix:503:14:
502| concatLists [
503| (optional (type == "oneshot" && (restart == "always" || restart == "on-success"))
| ^
504| "Service '${name}.service' with 'Type=oneshot' cannot have 'Restart=always' or 'Restart=on-success'"
… while calling 'optional'
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/lists.nix:777:20:
776| */
777| optional = cond: elem: if cond then [ elem ] else [ ];
| ^
778|
… while evaluating a branch condition
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/lists.nix:777:26:
776| */
777| optional = cond: elem: if cond then [ elem ] else [ ];
| ^
778|
… in the left operand of the AND (&&) operator
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/nixos/modules/system/boot/systemd.nix:503:42:
502| concatLists [
503| (optional (type == "oneshot" && (restart == "always" || restart == "on-success"))
| ^
504| "Service '${name}.service' with 'Type=oneshot' cannot have 'Restart=always' or 'Restart=on-success'"
… from call site
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/nixos/modules/system/boot/systemd.nix:498:20:
497| let
498| type = service.serviceConfig.Type or "";
| ^
499| restart = service.serviceConfig.Restart or "no";
… while calling anonymous lambda
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/attrsets.nix:1188:17:
1187| mapAttrs (
1188| name: value:
| ^
1189| if isAttrs value && cond value then recurse (path ++ [ name ]) value else f (path ++ [ name ]) value
… from call site
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/attrsets.nix:1189:85:
1188| name: value:
1189| if isAttrs value && cond value then recurse (path ++ [ name ]) value else f (path ++ [ name ]) value
| ^
1190| );
… while calling anonymous lambda
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/modules.nix:275:71:
274| # For definitions that have an associated option
275| declaredConfig = mapAttrsRecursiveCond (v: !isOption v) (_: v: v.value) options;
| ^
276|
… while evaluating the attribute 'value'
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/modules.nix:1118:7:
1117| // {
1118| value = addErrorContext "while evaluating the option `${showOption loc}':" value;
| ^
1119| inherit (res.defsFinal') highestPrio;
… while evaluating the option `systemd.services.home-manager-me.serviceConfig':
… while evaluating the attribute 'mergedValue'
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/modules.nix:1192:5:
1191| # Type-check the remaining definitions, and merge them. Or throw if no definitions.
1192| mergedValue =
| ^
1193| if isDefined then
… while evaluating the attribute 'value'
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/types.nix:878:17:
877| headError = checkDefsForError check loc defs;
878| value = mapAttrs (
| ^
879| n: v:
… while calling the 'mapAttrs' builtin
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/types.nix:878:25:
877| headError = checkDefsForError check loc defs;
878| value = mapAttrs (
| ^
879| n: v:
… from call site
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/types.nix:872:21:
871| # Meaning it is less lazy
872| filterAttrs (n: v: v.optionalValue ? value) (
| ^
873| zipAttrsWith (name: defs: mergeDefinitions (loc ++ [ name ]) elemType defs) (pushPositions defs)
… while calling 'filterAttrs'
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/attrsets.nix:663:23:
662| */
663| filterAttrs = pred: set: removeAttrs set (filter (name: !pred name set.${name}) (attrNames set));
| ^
664|
… while calling the 'removeAttrs' builtin
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/attrsets.nix:663:28:
662| */
663| filterAttrs = pred: set: removeAttrs set (filter (name: !pred name set.${name}) (attrNames set));
| ^
664|
… while calling the 'filter' builtin
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/attrsets.nix:663:45:
662| */
663| filterAttrs = pred: set: removeAttrs set (filter (name: !pred name set.${name}) (attrNames set));
| ^
664|
… while calling anonymous lambda
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/attrsets.nix:663:53:
662| */
663| filterAttrs = pred: set: removeAttrs set (filter (name: !pred name set.${name}) (attrNames set));
| ^
664|
… in the argument of the not operator
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/attrsets.nix:663:60:
662| */
663| filterAttrs = pred: set: removeAttrs set (filter (name: !pred name set.${name}) (attrNames set));
| ^
664|
… from call site
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/attrsets.nix:663:60:
662| */
663| filterAttrs = pred: set: removeAttrs set (filter (name: !pred name set.${name}) (attrNames set));
| ^
664|
… while calling anonymous lambda
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/types.nix:872:37:
871| # Meaning it is less lazy
872| filterAttrs (n: v: v.optionalValue ? value) (
| ^
873| zipAttrsWith (name: defs: mergeDefinitions (loc ++ [ name ]) elemType defs) (pushPositions defs)
… while evaluating the attribute 'optionalValue'
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/modules.nix:1256:5:
1255|
1256| optionalValue = if isDefined then { value = mergedValue; } else { };
| ^
1257| };
… while evaluating a branch condition
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/modules.nix:1256:21:
1255|
1256| optionalValue = if isDefined then { value = mergedValue; } else { };
| ^
1257| };
(8 duplicate frames omitted)
… while evaluating definitions from `/nix/store/s7l9ap273g9f7jkci4i2m6mi87lax03b-source/nixos':
… from call site
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/modules.nix:1171:80:
1170| }
1171| ) (addErrorContext "while evaluating definitions from `${m.file}':" (dischargeProperties m.value))
| ^
1172| ) defs;
… while calling 'dischargeProperties'
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/modules.nix:1311:5:
1310| dischargeProperties =
1311| def:
| ^
1312| if def._type or "" == "merge" then
… while evaluating a branch condition
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/modules.nix:1312:5:
1311| def:
1312| if def._type or "" == "merge" then
| ^
1313| concatMap dischargeProperties def.contents
… while evaluating the attribute 'value'
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/types.nix:819:15:
818| inherit (def) file;
819| value = v;
| ^
820| }) def.value
… while calling the 'getAttr' builtin
at <nix/derivation-internal.nix>:50:17:
49| value = commonAttrs // {
50| outPath = builtins.getAttr outputName strict;
| ^
51| drvPath = strict.drvPath;
… while calling the 'derivationStrict' builtin … while calling the 'derivationStrict' builtin
at <nix/derivation-internal.nix>:37:12: at <nix/derivation-internal.nix>:37:12:
36| 36|
@@ -13,208 +519,303 @@ error:
| ^ | ^
38| 38|
… while evaluating derivation 'nixos-image-sd-card-25.05.20250710.10e6872-x86_64-linux.img.zst' … while evaluating derivation 'home-manager-generation'
whose name attribute is located at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/pkgs/stdenv/generic/make-derivation.nix:480:13 whose name attribute is located at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/pkgs/stdenv/generic/make-derivation.nix:541:13
… while evaluating attribute 'buildCommand' of derivation 'nixos-image-sd-card-25.05.20250710.10e6872-x86_64-linux.img.zst' … while evaluating attribute 'buildCommand' of derivation 'home-manager-generation'
at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/nixos/modules/installer/sd-card/sd-image.nix:235:9: at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/pkgs/build-support/trivial-builders/default.nix:80:17:
234| 79| enableParallelBuilding = true;
235| buildCommand = '' 80| inherit buildCommand name;
| ^ | ^
236| mkdir -p $out/nix-support $out/sd-image 81| passAsFile = [ "buildCommand" ] ++ (derivationArgs.passAsFile or [ ]);
… while calling the 'getAttr' builtin
at <nix/derivation-internal.nix>:50:17:
49| value = commonAttrs // {
50| outPath = builtins.getAttr outputName strict;
| ^
51| drvPath = strict.drvPath;
… while calling the 'derivationStrict' builtin
at <nix/derivation-internal.nix>:37:12:
36|
37| strict = derivationStrict drvAttrs;
| ^
38|
… while evaluating derivation 'activation-script'
whose name attribute is located at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/pkgs/stdenv/generic/make-derivation.nix:541:13
… while evaluating attribute 'text' of derivation 'activation-script'
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/pkgs/build-support/trivial-builders/default.nix:129:13:
128| inherit
129| text
| ^
130| executable
… while calling the 'concatStringsSep' builtin
at /nix/store/s7l9ap273g9f7jkci4i2m6mi87lax03b-source/modules/home-environment.nix:756:13:
755| if sortedCommands ? result then
756| lib.concatStringsSep "\n" (map mkCmd sortedCommands.result)
| ^
757| else
… while calling 'mkCmd'
at /nix/store/s7l9ap273g9f7jkci4i2m6mi87lax03b-source/modules/home-environment.nix:749:17:
748| let
749| mkCmd = res: ''
| ^
750| _iNote "Activating %s" "${res.name}"
… while evaluating the attribute 'data'
at /nix/store/s7l9ap273g9f7jkci4i2m6mi87lax03b-source/modules/lib/dag.nix:100:45:
99| {
100| result = map (v: { inherit (v) name data; }) sorted.result;
| ^
101| }
… while evaluating the attribute 'data'
at /nix/store/s7l9ap273g9f7jkci4i2m6mi87lax03b-source/modules/lib/dag.nix:92:9:
91| name = n;
92| data = v.data;
| ^
93| after = v.after ++ dagBefore dag n;
… from call site … from call site
at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/nixos/modules/installer/sd-card/sd-image.nix:285:13: at /nix/store/s7l9ap273g9f7jkci4i2m6mi87lax03b-source/modules/lib/dag.nix:92:16:
284| mkdir firmware 91| name = n;
285| ${config.sdImage.populateFirmwareCommands} 92| data = v.data;
| ^ | ^
286| 93| after = v.after ++ dagBefore dag n;
… while calling anonymous lambda … while calling anonymous lambda
at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/lib/attrsets.nix:1182:17: at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/attrsets.nix:1188:17:
1181| mapAttrs ( 1187| mapAttrs (
1182| name: value: 1188| name: value:
| ^ | ^
1183| if isAttrs value && cond value then recurse (path ++ [ name ]) value else f (path ++ [ name ]) value 1189| if isAttrs value && cond value then recurse (path ++ [ name ]) value else f (path ++ [ name ]) value
… from call site … from call site
at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/lib/attrsets.nix:1183:85: at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/attrsets.nix:1189:85:
1182| name: value: 1188| name: value:
1183| if isAttrs value && cond value then recurse (path ++ [ name ]) value else f (path ++ [ name ]) value 1189| if isAttrs value && cond value then recurse (path ++ [ name ]) value else f (path ++ [ name ]) value
| ^ | ^
1184| ); 1190| );
… while calling anonymous lambda … while calling anonymous lambda
at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/lib/modules.nix:273:71: at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/modules.nix:275:71:
272| # For definitions that have an associated option 274| # For definitions that have an associated option
273| declaredConfig = mapAttrsRecursiveCond (v: !isOption v) (_: v: v.value) options; 275| declaredConfig = mapAttrsRecursiveCond (v: !isOption v) (_: v: v.value) options;
| ^ | ^
274| 276|
… while evaluating the attribute 'value' … while evaluating the attribute 'value'
at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/lib/modules.nix:1084:7: at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/modules.nix:1118:7:
1083| // { 1117| // {
1084| value = addErrorContext "while evaluating the option `${showOption loc}':" value; 1118| value = addErrorContext "while evaluating the option `${showOption loc}':" value;
| ^ | ^
1085| inherit (res.defsFinal') highestPrio; 1119| inherit (res.defsFinal') highestPrio;
… while evaluating the option `sdImage.populateFirmwareCommands': … while evaluating the option `home-manager.users.me.home.activation.installPackages.data':
… while evaluating the attribute 'mergedValue' (10 duplicate frames omitted)
at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/lib/modules.nix:1131:5:
1130| # Type-check the remaining definitions, and merge them. Or throw if no definitions. … while evaluating definitions from `/nix/store/s7l9ap273g9f7jkci4i2m6mi87lax03b-source/modules/home-environment.nix':
1131| mergedValue =
(6 duplicate frames omitted)
… while evaluating derivation 'home-manager-path'
whose name attribute is located at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/pkgs/stdenv/generic/make-derivation.nix:541:13
… while evaluating attribute 'passAsFile' of derivation 'home-manager-path'
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/pkgs/build-support/trivial-builders/default.nix:81:9:
80| inherit buildCommand name;
81| passAsFile = [ "buildCommand" ] ++ (derivationArgs.passAsFile or [ ]);
| ^ | ^
1132| if isDefined then 82| }
… while evaluating the attribute 'passAsFile'
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/pkgs/build-support/buildenv/default.nix:114:9:
113| # XXX: The size is somewhat arbitrary
114| passAsFile = if builtins.stringLength pkgs >= 128 * 1024 then [ "pkgs" ] else [ ];
| ^
115| }
… while evaluating a branch condition … while evaluating a branch condition
at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/lib/modules.nix:1132:7: at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/pkgs/build-support/buildenv/default.nix:114:22:
1131| mergedValue = 113| # XXX: The size is somewhat arbitrary
1132| if isDefined then 114| passAsFile = if builtins.stringLength pkgs >= 128 * 1024 then [ "pkgs" ] else [ ];
| ^ | ^
1133| if all (def: type.check def.value) defsFinal then 115| }
while evaluating the attribute 'values' … in the argument of the not operator
at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/lib/modules.nix:1125:9: at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/pkgs/build-support/buildenv/default.nix:114:52:
1124| { 113| # XXX: The size is somewhat arbitrary
1125| values = defs'''; 114| passAsFile = if builtins.stringLength pkgs >= 128 * 1024 then [ "pkgs" ] else [ ];
| ^ | ^
1126| inherit (defs'') highestPrio; 115| }
… while evaluating a branch condition … while calling the 'lessThan' builtin
at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/lib/modules.nix:1119:11: at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/pkgs/build-support/buildenv/default.nix:114:52:
1118| # Avoid sorting if we don't have to. 113| # XXX: The size is somewhat arbitrary
1119| if any (def: def.value._type or "" == "order") defs''.values then 114| passAsFile = if builtins.stringLength pkgs >= 128 * 1024 then [ "pkgs" ] else [ ];
| ^ | ^
1120| sortProperties defs''.values 115| }
… while calling the 'any' builtin … while calling the 'stringLength' builtin
at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/lib/modules.nix:1119:14: at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/pkgs/build-support/buildenv/default.nix:114:25:
1118| # Avoid sorting if we don't have to. 113| # XXX: The size is somewhat arbitrary
1119| if any (def: def.value._type or "" == "order") defs''.values then 114| passAsFile = if builtins.stringLength pkgs >= 128 * 1024 then [ "pkgs" ] else [ ];
| ^ | ^
1120| sortProperties defs''.values 115| }
… while evaluating the attribute 'values' … while calling the 'toJSON' builtin
at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/lib/modules.nix:1252:7: at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/pkgs/build-support/buildenv/default.nix:109:16:
1251| { 108| pathsToLinkJSON = builtins.toJSON pathsToLink;
1252| values = concatMap (def: if getPrio def == highestPrio then [ (strip def) ] else [ ]) defs; 109| pkgs = builtins.toJSON chosenOutputs;
| ^ | ^
1253| inherit highestPrio; 110| extraPathsFrom = lib.optional includeClosures (writeClosure pathsForClosure);
… while calling the 'concatMap' builtin … while evaluating list element at index 34
at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/lib/modules.nix:1252:16:
1251| {
1252| values = concatMap (def: if getPrio def == highestPrio then [ (strip def) ] else [ ]) defs;
| ^
1253| inherit highestPrio;
… while calling the 'concatMap' builtin … while evaluating attribute 'paths'
at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/lib/modules.nix:1099:17: at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/pkgs/build-support/buildenv/default.nix:68:7:
1098| # Process mkMerge and mkIf properties. 67| chosenOutputs = map (drv: {
1099| defs' = concatMap ( 68| paths =
| ^ | ^
1100| m: 69| # First add the usual output(s): respect if user has chosen explicitly,
… while calling anonymous lambda … while evaluating list element at index 0
at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/lib/modules.nix:1100:11: at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/pkgs/build-support/buildenv/default.nix:68:7:
1099| defs' = concatMap ( 67| chosenOutputs = map (drv: {
1100| m: 68| paths =
| ^ | ^
1101| map ( 69| # First add the usual output(s): respect if user has chosen explicitly,
… while calling the 'getAttr' builtin
at <nix/derivation-internal.nix>:50:17:
49| value = commonAttrs // {
50| outPath = builtins.getAttr outputName strict;
| ^
51| drvPath = strict.drvPath;
… while calling the 'derivationStrict' builtin
at <nix/derivation-internal.nix>:37:12:
36|
37| strict = derivationStrict drvAttrs;
| ^
38|
… while evaluating derivation 'python3-3.10.19-env'
whose name attribute is located at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/pkgs/stdenv/generic/make-derivation.nix:541:13
… while evaluating attribute 'passAsFile' of derivation 'python3-3.10.19-env'
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/pkgs/build-support/trivial-builders/default.nix:81:9:
80| inherit buildCommand name;
81| passAsFile = [ "buildCommand" ] ++ (derivationArgs.passAsFile or [ ]);
| ^
82| }
(6 duplicate frames omitted)
… while calling the 'map' builtin … while calling the 'map' builtin
at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/lib/modules.nix:1101:11: at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/pkgs/build-support/buildenv/default.nix:67:21:
1100| m: 66| let
1101| map ( 67| chosenOutputs = map (drv: {
| ^ | ^
1102| value: 68| paths =
… while evaluating definitions from `/nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/nixos/modules/installer/sd-card/sd-image-aarch64.nix':
… from call site … from call site
at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/lib/modules.nix:1110:80: at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/pkgs/development/interpreters/python/wrapper.nix:26:15:
1109| } 25| let
1110| ) (addErrorContext "while evaluating definitions from `${m.file}':" (dischargeProperties m.value)) 26| paths = requiredPythonModules (extraLibs ++ [ python ]) ++ [
| ^ | ^
1111| ) defs; 27| (runCommand "bin" { } ''
… while calling 'dischargeProperties' … while calling 'requiredPythonModules'
at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/lib/modules.nix:1203:5: at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/pkgs/development/interpreters/python/python-packages-base.nix:94:5:
1202| dischargeProperties = 93| requiredPythonModules =
1203| def: 94| drvs:
| ^ | ^
1204| if def._type or "" == "merge" then 95| let
… while calling the 'foldl'' builtin
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/pkgs/development/interpreters/python/python-packages-base.nix:98:5:
97| in
98| lib.unique (
| ^
99| [ python ] ++ modules ++ lib.concatLists (lib.catAttrs "requiredPythonModules" modules)
… while calling the 'concatLists' builtin
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/pkgs/development/interpreters/python/python-packages-base.nix:99:32:
98| lib.unique (
99| [ python ] ++ modules ++ lib.concatLists (lib.catAttrs "requiredPythonModules" modules)
| ^
100| );
… while calculating requiredPythonModules for python3.10-pandas-2.3.1:
… from call site
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/pkgs/development/interpreters/python/python-packages-base.nix:121:11:
120| requiredPythonModules = builtins.addErrorContext "while calculating requiredPythonModules for ${drv.name or drv.pname}:" (
121| requiredPythonModules drv.propagatedBuildInputs
| ^
122| );
… while calling 'requiredPythonModules'
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/pkgs/development/interpreters/python/python-packages-base.nix:94:5:
93| requiredPythonModules =
94| drvs:
| ^
95| let
… while calling the 'foldl'' builtin
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/pkgs/development/interpreters/python/python-packages-base.nix:98:5:
97| in
98| lib.unique (
| ^
99| [ python ] ++ modules ++ lib.concatLists (lib.catAttrs "requiredPythonModules" modules)
… while calling anonymous lambda
at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/lists.nix:1857:25:
1856| */
1857| unique = foldl' (acc: e: if elem e acc then acc else acc ++ [ e ]) [ ];
| ^
1858|
… while evaluating a branch condition … while evaluating a branch condition
at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/lib/modules.nix:1204:5: at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/lists.nix:1857:28:
1203| def: 1856| */
1204| if def._type or "" == "merge" then 1857| unique = foldl' (acc: e: if elem e acc then acc else acc ++ [ e ]) [ ];
| ^ | ^
1205| concatMap dischargeProperties def.contents 1858|
… while evaluating the attribute 'value' … while calling the 'elem' builtin
at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/lib/modules.nix:770:21: at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/lists.nix:1857:31:
769| inherit (module) file; 1856| */
770| inherit value; 1857| unique = foldl' (acc: e: if elem e acc then acc else acc ++ [ e ]) [ ];
| ^ | ^
771| }) module.config 1858|
… in the condition of the assert statement … in the condition of the assert statement
at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/lib/customisation.nix:422:9: at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/lib/customisation.nix:412:15:
421| outPath = 411| outPath =
422| assert condition; 412| assert condition;
| ^ | ^
423| drv.outPath; 413| drv.${outputName}.outPath;
while evaluating the attribute 'handled' … in the right operand of the IMPL (->) operator
at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/pkgs/stdenv/generic/check-meta.nix:653:9: at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/pkgs/development/interpreters/python/mk-python-derivation.nix:464:11:
652| # or, alternatively, just output a warning message. 463| drv.disabled
653| handled = ( 464| -> throw "${removePrefix namePrefix drv.name} not supported for interpreter ${python.executable}"
| ^ | ^
654| if valid == "yes" then 465| ) { } drv
… from call site
at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/pkgs/stdenv/generic/check-meta.nix:657:14:
656| else if valid == "no" then
657| (handleEvalIssue { inherit meta attrs; } { inherit (validity) reason errormsg; })
| ^
658| else if valid == "warn" then
… while calling 'handleEvalIssue'
at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/pkgs/stdenv/generic/check-meta.nix:301:5:
300| { meta, attrs }:
301| {
| ^
302| reason,
… while calling the 'throw' builtin … while calling the 'throw' builtin
at /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/pkgs/stdenv/generic/check-meta.nix:318:5: at /nix/store/ql735ybqjzwjdsjhywplx17cfvq9s1fm-source/pkgs/development/interpreters/python/mk-python-derivation.nix:464:14:
317| in 463| drv.disabled
318| handler msg; 464| -> throw "${removePrefix namePrefix drv.name} not supported for interpreter ${python.executable}"
| ^ | ^
319| 465| ) { } drv
error: Package uboot-rpi_3_defconfig-2025.01 in /nix/store/f4989aa56frar4hhr107kg3dxmvv4g9h-source/pkgs/misc/uboot/default.nix:148 is not available on the requested hostPlatform: error: numpy-2.3.4 not supported for interpreter python3.10
hostPlatform.config = "x86_64-unknown-linux-gnu"
package.meta.platforms = [
"aarch64-linux"
]
package.meta.badPlatforms = [ ]
, refusing to evaluate.
a) To temporarily allow packages that are unsupported for this system, you can use an environment variable
for a single invocation of the nix tools.
$ export NIXPKGS_ALLOW_UNSUPPORTED_SYSTEM=1
Note: When using `nix shell`, `nix build`, `nix develop`, etc with a flake,
then pass `--impure` in order to allow use of environment variables.
b) For `nixos-rebuild` you can set
{ nixpkgs.config.allowUnsupportedSystem = true; }
in configuration.nix to override this.
c) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
{ allowUnsupportedSystem = true; }
to ~/.config/nixpkgs/config.nix.

View File

@@ -1,2 +1,3 @@
127.0.0.1 localhost 127.0.0.1 localhost
192.168.3.1 gw.c2vi.dev

View File

@@ -1,3 +0,0 @@
10.1.1.3 phone
10.1.1.11 main

View File

@@ -10,3 +10,5 @@
100.96.201.42 ki 100.96.201.42 ki
100.107.101.77 fe 100.107.101.77 fe
100.107.101.77 fesu 100.107.101.77 fesu
100.93.225.52 fasu
100.91.200.82 fwin

View File

@@ -0,0 +1,78 @@
{ lib, pkgs, ... }:
{
nix.settings = {
experimental-features = lib.mkDefault "nix-command flakes";
trusted-users = [ "root" "@wheel" ];
};
nixpkgs.config.allowUnfree = true;
boot.tmp.useTmpfs = true;
virtualisation.docker.enable = true;
programs.bash.shellInit = ''
cd /root/host
export HISTFILE=$HOME/host/bash_history
export HISTSIZE=10000
'';
environment.systemPackages = with pkgs; [
vim
wget
# required for ppc wiki publish.sh
git
rsync
nodejs
];
users.users.root.openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPAgNB1nsKZ5KXnmR6KWjQLfwhFKDispw24o8M7g/nbR me@bitwarden"
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAII/mCDzCBE2J1jGnEhhtttIRMKkXMi1pKCAEkxu+FAim me@main"
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGw5kYmBQl8oolNg2VUlptvvSrFSESfeuWpsXRovny0x me@phone"
];
services.openssh = {
enable = true;
# require public key authentication for better security
settings.PasswordAuthentication = false;
settings.KbdInteractiveAuthentication = false;
settings.PermitRootLogin = "yes";
settings.X11Forwarding = true;
extraConfig = ''
X11UseLocalhost no
'';
};
/*
system.activationScripts.addDefaultRoute = {
text = ''
ip route add default via dev eth0
'';
};
*/
networking = {
defaultGateway = "192.168.1.4";
# Use systemd-resolved inside the container
# Workaround for bug https://github.com/NixOS/nixpkgs/issues/162686
useHostResolvConf = lib.mkForce false;
#useNetworkd = true;
/*
interfaces.eth0.ipv4.routes = [
{
via = "192.168.101.1";
address = "default";
prefixLength = 24;
}
];
*/
};
services.resolved.enable = true;
networking.firewall.enable = false;
#systemd.network.enable = true;
system.stateVersion = "24.11";
}

440
mods/fesu-services.nix Normal file
View File

@@ -0,0 +1,440 @@
{ pkgs, dataDir, config, inputs, system, lib, secretsDir, ... }:
/*
## ports
- 49001 ssh me-hosting
- 49002 ssh ppc-hosting
- 49003 ssh pcmc
- 49004 ssh fe
- 49101 mc first
- 49102 mc first voice
- 49103 mc nonstop
- 49104 mc nonstop voice
- 49105 mc lage0
- 49106 mc lage0 voice
- 49107 mc lobby
- 49108 mc lobby voice
- 49109 mc compass
- 49110 mc compass voice
- 49111 mc second
- 49112 mc second voice
- 49113 mc second bedrock
- 49114 mc lobby bedrock
- me hosting ports
- 8000 wiki site
- 8001 lage0 site
- 8002 plausible site
- 8003 ppc-site
- 8004 instant db
- 8005 instant webui
- ppc hosting ports
- 8000 dav
- 8001 affine
## hosting container ips (on the interface br-proxy
- fusu 192.168.101.1
- me-hosting 192.168.101.2
- ppc-hosting 192.168.101.3
- pcmc 192.168.101.4
*/
let
/**
thanks: @melektron
This builder creates a small shell script that wraps arion to specify
it to operate on a specific registered arion service identified by `srv_name`.
This can be used to manage the docker-compose functionality of an arion service
that is defined in the NixOS system, independently from the systemctl service that
starts it. If you start/stop compose projects using this, you should first stop
the systemctl service.
*/
createArionServiceManager = srv_name: setup: (
pkgs.writeShellScriptBin "manage-arion-${srv_name}" ''
echo operating on: ${config.virtualisation.arion.projects."${srv_name}".settings.out.dockerComposeYaml}
${setup}
${pkgs.lib.getExe inputs.arion.packages."${system}".arion} --prebuilt-file ${config.virtualisation.arion.projects."${srv_name}".settings.out.dockerComposeYaml} $@
''
);
basicTraefikSettingAttrs = configs: extraRouters: extraServices: let
tmp = map (val: basicTraefikSetting val) configs;
routerList = map (val: val.routers) tmp;
serviceList = map (val: val.services) tmp;
routers = lib.attrsets.mergeAttrsList (routerList ++ extraRouters);
services = lib.attrsets.mergeAttrsList (serviceList ++ extraServices);
in { inherit routers services; };
basicTraefikSetting = { name, domain, host, port }: let
host_ip =
if host == "me-hosting" then "192.168.1.20"
else if host == "pcmc" then "192.168.1.23"
else if host == "ppc-hosting" then "192.168.1.21"
else if host == "fesu" then "192.168.1.4"
else host;
in {
impotrs = [
"${inputs.hetzner_ddns}/release/nixos_module.nix"
];
routers.${name} = {
rule = "Host(`${domain}`)";
service = name;
tls = {
certResolver = "LE";
domains = [
{ main = domain; }
];
};
};
services.${name}.loadBalancer.servers = [
{ url = "http://${host_ip}:${builtins.toString port}"; }
];
};
in {
imports = [
"${inputs.hetzner_ddns}/release/NixOS/nixos_module.nix"
];
environment.systemPackages = [
pkgs.arion
# Do install the docker CLI to talk to podman.
# Not needed when virtualisation.docker.enable = true;
pkgs.docker-client
# add all the service managers
];
############################ virtualisation #########################
# Arion works with Docker, but for NixOS-based containers, you need Podman
# since NixOS 21.05.
virtualisation.docker.enable = false;
virtualisation.podman.enable = true;
virtualisation.podman.dockerSocket.enable = true;
virtualisation.libvirtd.enable = true;
virtualisation.arion = {
backend = "podman-socket";
};
users.extraUsers.me.extraGroups = ["podman"];
# incus
virtualisation.incus.enable = true;
users.users.me.extraGroups = [
"incus-admin"
];
networking.nftables.enable = true;
############################ networking #########################
boot.kernel.sysctl = {
"net.ipv4.ip_forward" = true;
};
############################ dyndns #########################
systemd.services.hetzner_ddns.serviceConfig = {
User = "me";
Group = "users";
};
services.hetzner_ddns = {
protections = false;
enable = true;
api_key_file = "/home/me/secrets/hetzner_ddns_key";
zones = [
{
domain = "c2vi.dev";
records = [
{
name = "home";
type = "A";
}
];
}
{
domain = "ppc.social";
records = [
{
name = "@";
type = "A";
}
];
}
];
};
############################ containers #########################
# me-hosting container
containers.me-hosting = {
autoStart = true;
privateNetwork = true;
privateUsers = "pick";
#hostAddress = "192.168.100.10";
hostBridge = "br0";
#localAddress = "192.168.100.11";
localAddress = "192.168.1.20/24";
extraFlags = [ "--system-call-filter=@keyring" ];
allowedDevices = [
{
modifier = "rwm";
node = "/dev/net/tun";
}
{
modifier = "rwm";
node = "/dev/fuse";
}
];
bindMounts."data-dir" = {
mountPoint = "/root/host:idmap";
hostPath = "${dataDir}/me-hosting";
isReadOnly = false;
};
# see: https://github.com/systemd/systemd/issues/27994
bindMounts."/run/sys" = {
hostPath = "/sys";
isReadOnly = false;
};
forwardPorts = [
{
hostPort = 49001;
containerPort = 22;
protocol = "tcp";
}
];
config = { config, pkgs, lib, ... }: {
imports = [
./fesu-hosting-base.nix
];
};
};
# ppc-hosting container
containers.ppc-hosting = {
autoStart = true;
privateNetwork = true;
privateUsers = "pick";
#hostAddress = "192.168.100.12";
hostBridge = "br0";
#localAddress = "192.168.100.13";
localAddress = "192.168.1.21/24";
extraFlags = [ "--system-call-filter=@keyring" ];
allowedDevices = [
{
modifier = "rwm";
node = "/dev/net/tun";
}
{
modifier = "rwm";
node = "/dev/fuse";
}
];
bindMounts."data-dir" = {
mountPoint = "/root/host:idmap";
hostPath = "${dataDir}/ppc-hosting";
isReadOnly = false;
};
# see: https://github.com/systemd/systemd/issues/27994
bindMounts."/run/sys" = {
hostPath = "/sys";
isReadOnly = false;
};
forwardPorts = [
{
hostPort = 49002;
containerPort = 22;
protocol = "tcp";
}
];
config = { config, pkgs, lib, ... }: {
imports = [
./fesu-hosting-base.nix
];
users.users.root = {
openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICuH2ilZeIQrr9wYtBtQyRD5oaVkuLImjm9EIGfn+wqw" # Mr3DAlien
];
};
};
};
# pcmc container
containers.pcmc = {
autoStart = true;
privateNetwork = true;
privateUsers = "pick";
#hostAddress = "192.168.100.14";
hostBridge = "br0";
#localAddress = "192.168.100.15";
localAddress = "192.168.1.23/24";
extraFlags = [ "--system-call-filter=@keyring" ];
allowedDevices = [
{
modifier = "rwm";
node = "/dev/net/tun";
}
{
modifier = "rwm";
node = "/dev/fuse";
}
];
bindMounts."data-dir" = {
mountPoint = "/root/host:idmap";
hostPath = "${dataDir}/pcmc";
isReadOnly = false;
};
# see: https://github.com/systemd/systemd/issues/27994
bindMounts."/run/sys" = {
hostPath = "/sys";
isReadOnly = false;
};
forwardPorts = [
{ # ssh port
hostPort = 49003;
containerPort = 22;
protocol = "tcp";
}
]
++ # add all mc server ports as tcp
(map (port: {
hostPort = port;
containerPort = port;
protocol = "tcp";
}) (lib.range 49100 49200))
++ # add all mc server ports as udp
(map (port: {
hostPort = port;
containerPort = port;
protocol = "udp";
}) (lib.range 49100 49200))
;
config = { config, pkgs, lib, ... }: {
imports = [
./fesu-hosting-base.nix
];
};
};
############################ compass app #########################
systemd.services.compass = {
enable = true;
description = "Compass Bot Deployment";
unitConfig = {
Type = "simple";
};
serviceConfig = {
User = "server";
Group = "server";
Restart = "always";
RestartSec = "500s";
ExecStart = "${lib.getExe inputs.compass.packages.${system}.default} --data ${dataDir}/compass --config ${dataDir}/compass/config.json --db ${dataDir}/compass/compass.db --settings ${dataDir}/compass/settings.json";
};
wantedBy = [ "multi-user.target" ];
after = [ "network.target" ];
};
############################ traefik #########################
services.traefik = {
enable = true;
#dataDir = "${dataDir}/traefik";
staticConfigOptions = {
entryPoints = {
web = {
address = ":80";
asDefault = true;
http.redirections.entrypoint = {
to = "websecure";
scheme = "https";
};
};
websecure = {
address = ":443";
asDefault = true;
http.tls.certResolver = "LE";
};
};
log = {
level = "TRACE";
#filePath = "${config.services.traefik.dataDir}/traefik.log";
#format = "json";
};
certificatesResolvers.LE.acme = {
email = "c2vi.dev@gmail.com";
storage = "${config.services.traefik.dataDir}/acme.json";
httpChallenge.entryPoint = "web";
};
api.dashboard = true;
api.insecure = true;
};
dynamicConfigOptions = {
http = (basicTraefikSettingAttrs
# basic configs
[
{ name = "wiki-site"; domain = "wiki.ppc.social"; host = "me-hosting"; port = 8000; }
{ name = "lage0-site"; domain = "lage0.c2vi.dev"; host = "me-hosting"; port = 8001; }
{ name = "plausible"; domain = "plausible.c2vi.dev"; host = "me-hosting"; port = 8002; }
{ name = "ppc-site"; domain = "ppc.social"; host = "me-hosting"; port = 8003; }
{ name = "compass-site"; domain = "compass.ppc.social"; host = "fesu"; port = 3000; }
{ name = "dav"; domain = "dav.ppc.social"; host = "ppc-hosting"; port = 8000; }
{ name = "instant"; domain = "instant.ppc.social"; host = "me-hosting"; port = 8004; }
{ name = "instant-backend"; domain = "instant-backend.ppc.social"; host = "me-hosting"; port = 8005; }
{ name = "isotoke-website"; domain = "isotoke.ppc.social"; host = "192.168.1.26"; port = 80; }
{ name = "affine"; domain = "affine.ppc.social"; host = "ppc-hosting"; port = 8001; }
]
# extraRouters (full configs)
[
]
# extraServices (full configs)
[
]);
};
};
}

View File

@@ -27,7 +27,6 @@ in {
pkgs.docker-client pkgs.docker-client
# add all the service managers # add all the service managers
(createArionServiceManager "libvirt" "")
]; ];
# Arion works with Docker, but for NixOS-based containers, you need Podman # Arion works with Docker, but for NixOS-based containers, you need Podman
@@ -38,37 +37,12 @@ in {
users.extraUsers.me.extraGroups = ["podman"]; users.extraUsers.me.extraGroups = ["podman"];
######################## libvirtd in container #########################
virtualisation.arion = { virtualisation.arion = {
backend = "podman-socket"; backend = "podman-socket";
projects.libvirt.settings.services.libvirt = { pkgs, lib, ... }: {
nixos.useSystemd = true;
service.useHostStore = true;
nixos.configuration = {
boot.tmp.useTmpfs = true;
virtualisation.libvirtd = {
enable = true;
};
users.users.me = {
uid = 1001;
isNormalUser = true;
password = "changeme";
extraGroups = [ "networkmanager" "wheel" "libvirtd" "plugdev" ];
};
};
service = {
privileged = true;
volumes = [
"${dataDir}/libvirt/run:/run/libvirt"
"${dataDir}/libvirt/lib:/var/lib/libvirt"
];
};
}; };
};
} }

View File

@@ -0,0 +1,28 @@
{ ... }: {
services.openssh = {
enable = true;
allowSFTP = true;
extraConfig = ''
X11UseLocalhost no
PasswordAuthentication no
KbdInteractiveAuthentication no
PermitRootLogin no
X11Forwarding yes
'';
};
home-manager.useUserPackages = false;
home-manager.config = {
home.stateVersion = "23.05";
home.file.".ssh/authorized_keys".text = ''
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPAgNB1nsKZ5KXnmR6KWjQLfwhFKDispw24o8M7g/nbR me@bitwarden
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAII/mCDzCBE2J1jGnEhhtttIRMKkXMi1pKCAEkxu+FAim me@main
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGw5kYmBQl8oolNg2VUlptvvSrFSESfeuWpsXRovny0x me@phone
'';
};
}

View File

@@ -0,0 +1,83 @@
# Copyright (c) 2019-2024, see AUTHORS. Licensed under MIT License, see LICENSE.
# copied from: https://github.com/nix-community/nix-on-droid/blob/1c306c07b3e99ab79b967ead32f9af7b8672a7ef/pkgs/default.nix
{ nixpkgs
, system # system to compile for, user-facing name of targetSystem
, _nativeSystem ? null # system to cross-compile from, see flake.nix
, nixOnDroidChannelURL ? null
, nixpkgsChannelURL ? null
, nixOnDroidFlakeURL ? null
, nix-on-droid-flake
, home-manager-flake
}:
let
nativeSystem = if _nativeSystem == null then system else _nativeSystem;
nixDirectory = callPackage "${nix-on-droid-flake}/pkgs/nix-directory.nix" { inherit system; };
initialPackageInfo = import "${nixDirectory}/nix-support/package-info.nix";
pkgs = import nixpkgs { system = nativeSystem; };
urlOptionValue = url: envVar:
let
envValue = builtins.getEnv envVar;
in
pkgs.lib.mkIf
(envValue != "" || url != null)
(if url == null then envValue else url);
modules = import "${nix-on-droid-flake}/modules" {
inherit pkgs;
targetSystem = system;
home-manager-path = home-manager-flake;
isFlake = true;
config = {
imports = [
"${nix-on-droid-flake}/modules/build/initial-build.nix"
./nix-on-droid-base-module.nix
];
_module.args = {
inherit initialPackageInfo;
pkgs = pkgs.lib.mkForce pkgs; # to override ./modules/nixpkgs/config.nix
};
system.stateVersion = "24.05";
# Fix invoking bash after initial build.
user.shell = "${initialPackageInfo.bash}/bin/bash";
build = {
channel = {
nixpkgs = urlOptionValue nixpkgsChannelURL "NIXPKGS_CHANNEL_URL";
nix-on-droid = urlOptionValue nixOnDroidChannelURL "NIX_ON_DROID_CHANNEL_URL";
};
flake.nix-on-droid = urlOptionValue nixOnDroidFlakeURL "NIX_ON_DROID_FLAKE_URL";
};
};
};
callPackage = pkgs.lib.callPackageWith (
pkgs // customPkgs // {
inherit (modules) config;
inherit callPackage nixpkgs nixDirectory initialPackageInfo;
targetSystem = system;
}
);
customPkgs = {
bootstrap = callPackage "${nix-on-droid-flake}/pkgs/bootstrap.nix" { };
bootstrapZip = callPackage "${nix-on-droid-flake}/pkgs/bootstrap-zip.nix" { };
prootTermux = callPackage "${nix-on-droid-flake}/pkgs/cross-compiling/proot-termux.nix" { };
tallocStatic = callPackage "${nix-on-droid-flake}/pkgs/cross-compiling/talloc-static.nix" { };
};
in
{
inherit (modules) config;
inherit customPkgs;
}

View File

@@ -14,7 +14,7 @@ rustPlatform.buildRustPackage rec {
sha256 = "sha256-vRqYQd5OaYXAc74Jlg8twBGDr9YxP+Mk1ZY9JGJTmvc="; sha256 = "sha256-vRqYQd5OaYXAc74Jlg8twBGDr9YxP+Mk1ZY9JGJTmvc=";
}; };
cargoHash = "sha256-xz+pi6awwDeiISGqJs5DxqFdryc5mY8wMuds1ZXRr1Q="; cargoHash = "sha256-RoDXIPCjygdmG9dfDMtKiSdj2rgDAfxkKUXkIUAWotI=";
meta = with lib; { meta = with lib; {
description = "Command line utilities for the Simple Voice Chat Minecraft Mod"; description = "Command line utilities for the Simple Voice Chat Minecraft Mod";

View File

@@ -166,9 +166,7 @@ sudo systemctl hibernate
elif [ "$1" == "suspend" ] elif [ "$1" == "suspend" ]
then then
sudo systemctl suspend-then-hibernate sudo systemctl suspend
fi fi

View File

@@ -0,0 +1,22 @@
diff --git a/blocksuite/affine/gfx/pointer/src/tools/pan-tool.ts b/blocksuite/affine/gfx/pointer/src/tools/pan-tool.ts
index c1abe0aea..b86367ca5 100644
--- a/blocksuite/affine/gfx/pointer/src/tools/pan-tool.ts
+++ b/blocksuite/affine/gfx/pointer/src/tools/pan-tool.ts
@@ -54,7 +54,7 @@ export class PanTool extends BaseTool<PanToolOption> {
override mounted(): void {
this.addHook('pointerDown', evt => {
- const shouldPanWithMiddle = evt.raw.button === MouseButton.MIDDLE;
+ const shouldPanWithMiddle = evt.raw.button === MouseButton.SECONDARY;
if (!shouldPanWithMiddle) {
return;
@@ -111,7 +111,7 @@ export class PanTool extends BaseTool<PanToolOption> {
});
const dispose = on(document, 'pointerup', evt => {
- if (evt.button === MouseButton.MIDDLE) {
+ if (evt.button === MouseButton.SECONDARY) {
restoreToPrevious();
}
dispose();

View File

@@ -1,4 +1,4 @@
{ secretsDir, confDir, hostname, self, pkgs, config, system, workDir, ... }: { lib, secretsDir, confDir, hostname, self, pkgs, config, system, workDir, ... }:
{ {
programs.bash = { programs.bash = {
@@ -21,7 +21,6 @@
# check the window size after each command and, if necessary, # check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS. # update the values of LINES and COLUMNS.
"checkwinsize" "checkwinsize"
# If set, the pattern "**" used in a pathname expansion context will # If set, the pattern "**" used in a pathname expansion context will
# match all files and zero or more directories and subdirectories. # match all files and zero or more directories and subdirectories.
"globstar" "globstar"
@@ -34,19 +33,21 @@
# is needed to that ssh works # is needed to that ssh works
# TERM = "xterm"; # TERM = "xterm";
# my prompt
PS1 = ''\[\033[01;34m\]\W\[\033[00m\]\[\033[01;32m\]\[\033[00m\] '';
TEST = "hiiiiiiiiiiiiiiiiiiiiiiiiiii"; TEST = "hiiiiiiiiiiiiiiiiiiiiiiiiiii";
}; };
shellAliases = { shellAliases = {
archive-video = "${lib.getExe pkgs.yt-dlp} -f \"bv*+ba/b\" --merge-output-format mp4 --embed-thumbnail --write-thumbnail --convert-thumbnails png --add-metadata -o \"%(title)s.%(ext)s\"";
zed="WAYLAND_DISPLAY= zeditor";
npm="pnpm";
md="~/work/modules/modules/dev/run"; md="~/work/modules/modules/dev/run";
mize="~/work/mize/mize"; mize="~/work/mize/mize";
m="~/work/mize/mize"; m="~/work/mize/mize";
c2="~/work/c2-system/target/debug/system-c2-cli"; c2="~/work/c2-system/cli/target/debug/system-c2-cli";
ports = "${pkgs.lsof}/bin/lsof -i -P -n"; ports = "${pkgs.lsof}/bin/lsof -i -P -n";
losetup = "${pkgs.util-linux}/bin/losetup"; losetup = "${pkgs.util-linux}/bin/losetup";
@@ -65,7 +66,7 @@
shutdown = "echo try harder.... xD"; shutdown = "echo try harder.... xD";
npw = "nmcli c up pw"; npw = "nmcli c up pw";
flex = "neofetch | lolcat"; flex = "neofetch | lolcat";
kwoche = "curl https://kalenderwoche.celll.net/?api=1; echo"; kwoche = "curl -k https://kalenderwoche.celll.net/?api=1; echo";
psg = "ps -e | grep"; psg = "ps -e | grep";
vilias = "nvim -c 'set syntax=bash' ${confDir}/common/programs/bash.nix"; vilias = "nvim -c 'set syntax=bash' ${confDir}/common/programs/bash.nix";
stl = "sudo systemctl"; stl = "sudo systemctl";
@@ -117,9 +118,16 @@
# my prompt # my prompt
if [[ "${hostname}" == "main" ]] if [[ "${hostname}" == "main" ]]
then then
export PS1="\[\033[01;34m\]\W\[\033[00m\]\[\033[01;32m\]\[\033[00m\] " #export PS1="\[\033[01;34m\]\W\[\033[00m\]\[\033[01;32m\]\[\033[00m\] "
#export PS1="\[\033[01;34m\]\W\[\033[00m\]\[\033[01;32m\]\[\033[00m\] > "
# \n\[\033[1;34m\][\[\e]0;\u@\h: \w\a\]\u@\h:\w]\$\[\033[0m\]
#export PS1="\W > ";
export PS1="\[\033[01;34m\]\W\033[00m "
else else
export PS1="\033[1;32m${hostname} \[\033[01;34m\]\W\[\033[00m\]\[\033[01;32m\]\[\033[00m\] " #export PS1="\033[1;32m${hostname} \[\033[01;34m\]\W\[\033[00m\]\[\033[01;32m\]\[\033[00m\] "
export PS1="\033[1;32m${hostname}\[\033[01;34m\] \W\033[00m "
fi fi
@@ -188,6 +196,7 @@
fi fi
} }
tph(){ tph(){
if [[ "$1" == "" ]] if [[ "$1" == "" ]]
then then

View File

@@ -13,10 +13,19 @@
cmakeFlags = prev.cmakeFlags or [] ++ [ "-DENABLE_SWAY=ON" ]; cmakeFlags = prev.cmakeFlags or [] ++ [ "-DENABLE_SWAY=ON" ];
}); });
mylf = pkgs.lf.overrideAttrs (final: prev: { oldpkgs = (builtins.getFlake "nixpkgs/release-25.05").legacyPackages.${system};
mylf = oldpkgs.lf.overrideAttrs (final: prev: {
patches = (prev.patches or [ ]) ++ [ patches = (prev.patches or [ ]) ++ [
./lf-filter.patch ./lf-filter.patch
]; ];
/*
src = pkgs.fetchFromGitHub { # use the old v35 version of lf... so that my patch applies
owner = "gokcehan";
repo = "lf";
rev = "r35";
hash = "sha256-0ZyIbEKiQ9l30gqHlpW7l/6/TzqVRvnKk9c2FiQ6E6Y=";
};
*/
checkPhase = ""; checkPhase = "";
}); });
@@ -52,7 +61,7 @@
exiftool # (metadata/audio, and file detection for .webm files) exiftool # (metadata/audio, and file detection for .webm files)
jq # (json and metadata) jq # (json and metadata)
lynx # (html/web pages) lynx # (html/web pages)
poppler_utils # pdftoppm # (pdf) poppler-utils # pdftoppm # (pdf)
odt2txt # (odt) odt2txt # (odt)
imagemagick # convert from imagemagick (fonts) imagemagick # convert from imagemagick (fonts)
atool # (archives) atool # (archives)
@@ -105,7 +114,7 @@
enable = true; enable = true;
commands = { commands = {
dragon-out = ''%${pkgs.xdragon}/bin/xdragon -a -x "$fx"''; dragon-out = ''%${pkgs.dragon-drop}/bin/xdragon -a -x "$fx"'';
editor-open = ''$$EDITOR $f''; editor-open = ''$$EDITOR $f'';
mkdir = '' mkdir = ''
''${{ ''${{

View File

@@ -1,5 +1,9 @@
{ pkgs, ... }: { pkgs, ... }:
{ {
home.packages = with pkgs; [
ccls
];
programs.neovim = { programs.neovim = {
enable = true; enable = true;
withPython3 = true; withPython3 = true;
@@ -25,6 +29,16 @@
"rust-analyzer.diagnostics.enable" = true; "rust-analyzer.diagnostics.enable" = true;
"rust-analyzer.checkOnSave.enable" = false; "rust-analyzer.checkOnSave.enable" = false;
"languageserver" = { "languageserver" = {
"ccls" = {
"command" = "ccls";
"filetypes" = ["c" "cpp" "objc" "objcpp"];
"rootPatterns" = [".ccls" "compile_commands.json" ".vim/" ".git/" ".hg/"];
"initializationOptions" = {
"cache" = {
"directory" = "/tmp/ccls";
};
};
};
"slint" = { "slint" = {
"filetypes" = [ "slint" ]; "filetypes" = [ "slint" ];
"command" = "slint-lsp"; "command" = "slint-lsp";

View File

@@ -40,6 +40,29 @@
port = 49388; port = 49388;
user = "server"; user = "server";
}; };
fwin = {
user = "me";
hostname = "fwin";
};
feh = {
user = "root";
hostname = "100.107.101.77";
port = 49001;
};
ppc-hosting = {
user = "root";
hostname = "100.107.101.77";
port = 49002;
};
pcmc = {
user = "root";
hostname = "100.107.101.77";
port = 49003;
};
phone = { phone = {
user = "u0_a345"; user = "u0_a345";
port = 8022; port = 8022;

View File

@@ -1,5 +1,6 @@
{ pkgs, config, persistentDir, ... }: { { pkgs, config, persistentDir, ... }: {
## thunderbird settings
programs.thunderbird = { programs.thunderbird = {
enable = true; enable = true;
@@ -8,8 +9,23 @@
}; };
}; };
## mail archiveing...
## email accounts
/*
accounts.email.accounts.sewi-gmail = {
flavor = "gmail.com";
};
accounts.email.accounts.c2vi-gmail = {
flavor = "gmail.com";
};
*/
/* /*
# not working....
home.file.".thunderbird" = { home.file.".thunderbird" = {
force = true; force = true;
source = config.lib.file.mkOutOfStoreSymlink "${persistentDir}/thunderbird"; source = config.lib.file.mkOutOfStoreSymlink "${persistentDir}/thunderbird";

View File

@@ -7,6 +7,11 @@
lib = pkgs.lib; lib = pkgs.lib;
in rec { in rec {
affine = pkgs.affine.overrideAttrs {
patches = [
../overlays/patches/affin-edgeless-right-click-drag.patch
];
runc = pkgs.runc.overrideAttrs ({ runc = pkgs.runc.overrideAttrs ({
src = /home/me/work/config/gitignore/runc; src = /home/me/work/config/gitignore/runc;
}); });

View File

@@ -21,8 +21,11 @@
home.sessionVariables = { home.sessionVariables = {
EDITOR = "nvim"; EDITOR = "nvim";
}; };
home.sessionPath = [
"/home/me/work/path-extra"
"${self}/mybin"
];
home.sessionPath = [ "${self}/mybin" ];
home.file = { home.file = {
".subversion/config".text = '' ".subversion/config".text = ''
@@ -34,6 +37,8 @@
} // (if hostname == "main" then { ".rclone.conf".source = config.lib.file.mkOutOfStoreSymlink "${secretsDir}/rclone-conf"; } else {}); } // (if hostname == "main" then { ".rclone.conf".source = config.lib.file.mkOutOfStoreSymlink "${secretsDir}/rclone-conf"; } else {});
home.packages = with pkgs; [ home.packages = with pkgs; [
unar
lm_sensors
borgbackup borgbackup
rclone rclone
archivemount archivemount
@@ -41,7 +46,8 @@
pkgs.hostname pkgs.hostname
vim vim
tree tree
htop lsof
htop-vim
subversion subversion
pv pv
nodejs nodejs
@@ -62,7 +68,7 @@
wakeonlan wakeonlan
# python.... # python....
(python310.withPackages (p: with p; [ (python3.withPackages (p: with p; [
pandas pandas
click click
click-aliases click-aliases

View File

@@ -1,5 +1,5 @@
{ config, pkgs, self, workDir, inputs, persistentDir, system, ... }: { config, secretsDir, pkgs, self, workDir, inputs, persistentDir, system, pkgsUnstable, ... }:
{ {
imports = [ imports = [
@@ -17,8 +17,20 @@
inputs.lan-mouse.homeManagerModules.default inputs.lan-mouse.homeManagerModules.default
"${inputs.vscode-server}/modules/vscode-server/home.nix" "${inputs.vscode-server}/modules/vscode-server/home.nix"
inputs.walker.homeManagerModules.default
]; ];
services.vscode-server.enable = true;
programs.zed-editor = {
enable = true;
package = inputs.zed.packages.x86_64-linux.default;
};
programs.walker = {
enable = false;
runAsService = true;
};
programs.vscode.enable = true; programs.vscode.enable = true;
programs.vscode.extensions = with pkgs.vscode-extensions; [ programs.vscode.extensions = with pkgs.vscode-extensions; [
@@ -55,12 +67,15 @@
home.sessionVariables = { home.sessionVariables = {
inherit system; inherit system;
VIC_BINARY = "/home/me/work/victorinix/vic"; VIC_BINARY = "/home/me/work/victorinix/vic";
PPC_DATA_DIR = "/home/me/work/gitignore/ppc/data";
}; };
services.dunst.enable = true; services.dunst.enable = true;
home.file = { home.file = {
".davfs2/secrets".source = config.lib.file.mkOutOfStoreSymlink "${secretsDir}/davfs2-secrets";
#".mozilla/firefox".source = config.lib.file.mkOutOfStoreSymlink "${persistentDir}/firefox"; #".mozilla/firefox".source = config.lib.file.mkOutOfStoreSymlink "${persistentDir}/firefox";
".cache/rofi-3.runcache".source = config.lib.file.mkOutOfStoreSymlink "${persistentDir}/rofi-run-cache"; ".cache/rofi-3.runcache".source = config.lib.file.mkOutOfStoreSymlink "${persistentDir}/rofi-run-cache";
@@ -76,6 +91,7 @@
# packages that i might not need everywhere?? # packages that i might not need everywhere??
#wstunnel #wstunnel
rclone rclone
pkgsUnstable.tsx
playerctl playerctl
alsa-utils alsa-utils
usbutils usbutils
@@ -122,7 +138,7 @@
xorg.xmodmap xorg.xmodmap
inkscape inkscape
kazam kazam
onlyoffice-bin onlyoffice-desktopeditors
# my own packages # my own packages
supabase-cli supabase-cli
@@ -147,12 +163,14 @@
libvirt libvirt
virt-manager virt-manager
freerdp freerdp
nixd
#(pkgs.writeShellApplication { #(pkgs.writeShellApplication {
#name = "log"; #name = "log";
#runtimeInputs = [ inputs.my-log.packages.${system}.pythonForLog ]; #runtimeInputs = [ inputs.my-log.packages.${system}.pythonForLog ];
#text = "cd /home/me/work/log/new; nix develop -c 'python ${workDir}/log/new/client.py'"; #text = "cd /home/me/work/log/new; nix develop -c 'python ${workDir}/log/new/client.py'";
#text = ''${inputs.my-log.packages.${system}.pythonForLog}/bin/python ${workDir}/log/new/client.py "$@"''; #text = ''${inputs.my-log.packages.${system}.pythonForLog}/bin/python ${workDir}/log/new/client.py "$@"'';
#}) #})
(pkgs.writeShellApplication { (pkgs.writeShellApplication {
name = "rpi"; name = "rpi";
text = let text = let
@@ -298,5 +316,3 @@
}) })
]; ];
} }