stuff
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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
1198
flake.lock
generated
File diff suppressed because it is too large
Load Diff
100
flake.nix
100
flake.nix
@@ -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 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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";
|
||||||
|
|||||||
19
hosts/fe.nix
19
hosts/fe.nix
@@ -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 = [
|
||||||
|
|||||||
@@ -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
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
29
hosts/ki.nix
29
hosts/ki.nix
@@ -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";
|
||||||
|
|||||||
@@ -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 = {
|
||||||
|
|||||||
108
hosts/mac.nix
108
hosts/mac.nix
@@ -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";
|
||||||
};
|
};
|
||||||
|
|||||||
176
hosts/main.nix
176
hosts/main.nix
@@ -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;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -354,7 +354,7 @@ in {
|
|||||||
size = "100%";
|
size = "100%";
|
||||||
content = {
|
content = {
|
||||||
type = "filesystem";
|
type = "filesystem";
|
||||||
format = "ext4";
|
format = "exfat";
|
||||||
mountpoint = "/pub";
|
mountpoint = "/pub";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
45
hosts/ti.nix
45
hosts/ti.nix
@@ -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
895
log
@@ -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.
|
|
||||||
|
|||||||
@@ -1,2 +1,3 @@
|
|||||||
127.0.0.1 localhost
|
127.0.0.1 localhost
|
||||||
|
192.168.3.1 gw.c2vi.dev
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +0,0 @@
|
|||||||
10.1.1.3 phone
|
|
||||||
10.1.1.11 main
|
|
||||||
|
|
||||||
@@ -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
|
||||||
|
|||||||
78
mods/fesu-hosting-base.nix
Normal file
78
mods/fesu-hosting-base.nix
Normal 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
440
mods/fesu-services.nix
Normal 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)
|
||||||
|
[
|
||||||
|
]);
|
||||||
|
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -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"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
};
|
||||||
};
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
28
mods/nix-on-droid-base-module.nix
Normal file
28
mods/nix-on-droid-base-module.nix
Normal 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
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
83
mods/nix-on-droid-pkgs.nix
Normal file
83
mods/nix-on-droid-pkgs.nix
Normal 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;
|
||||||
|
}
|
||||||
@@ -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";
|
||||||
|
|||||||
4
mybin/ru
4
mybin/ru
@@ -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
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
22
overlays/patches/affin-edgeless-right-click-drag.patch
Normal file
22
overlays/patches/affin-edgeless-right-click-drag.patch
Normal 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();
|
||||||
@@ -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
|
||||||
|
|||||||
@@ -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 = ''
|
||||||
''${{
|
''${{
|
||||||
|
|||||||
@@ -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";
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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";
|
||||||
|
|||||||
@@ -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;
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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 @@
|
|||||||
})
|
})
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user