push
This commit is contained in:
28
modules/core/audio/audio.nix
Normal file
28
modules/core/audio/audio.nix
Normal file
@@ -0,0 +1,28 @@
|
||||
{
|
||||
den.aspects.audio = {
|
||||
nixos = {
|
||||
security.rtkit.enable = true;
|
||||
|
||||
services = {
|
||||
pulseaudio.enable = false;
|
||||
|
||||
pipewire = {
|
||||
enable = true;
|
||||
|
||||
wireplumber.enable = true;
|
||||
|
||||
alsa = {
|
||||
enable = true;
|
||||
support32Bit = true;
|
||||
};
|
||||
|
||||
pulse.enable = true;
|
||||
|
||||
#lowLatency.enable = false;
|
||||
|
||||
jack.enable = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
39
modules/core/audio/mpd.nix
Normal file
39
modules/core/audio/mpd.nix
Normal file
@@ -0,0 +1,39 @@
|
||||
{
|
||||
den.aspects.mpd = {
|
||||
nixos = {
|
||||
services = {
|
||||
mpd = {
|
||||
enable = true;
|
||||
|
||||
settings = {
|
||||
music_directory = "/home/bug/Music";
|
||||
|
||||
decoder = [
|
||||
{
|
||||
plugin = "ffmpeg";
|
||||
enabled = "yes";
|
||||
}
|
||||
{
|
||||
plugin = "opus";
|
||||
enabled = "no";
|
||||
}
|
||||
];
|
||||
|
||||
audio_output = [{
|
||||
type = "pipewire";
|
||||
name = "PipeWire Sound Server";
|
||||
}];
|
||||
};
|
||||
|
||||
user = "bug";
|
||||
};
|
||||
};
|
||||
|
||||
systemd.services = {
|
||||
mpd.environment = {
|
||||
XDG_RUNTIME_DIR = "/run/user/1000";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
15
modules/core/dendritic.nix
Normal file
15
modules/core/dendritic.nix
Normal file
@@ -0,0 +1,15 @@
|
||||
{ inputs, ... }: {
|
||||
imports = [
|
||||
(inputs.flake-file.flakeModules.dendritic or {})
|
||||
(inputs.den.flakeModules.dendritic or {})
|
||||
];
|
||||
|
||||
flake-file.inputs = {
|
||||
den.url = "github:vic/den";
|
||||
flake-file.url = "github:vic/flake-file";
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
};
|
||||
}
|
||||
75
modules/core/desktop/cosmic.nix
Normal file
75
modules/core/desktop/cosmic.nix
Normal file
@@ -0,0 +1,75 @@
|
||||
{
|
||||
den.aspects.cosmic = {
|
||||
nixos = { pkgs, ... }: {
|
||||
services = {
|
||||
greetd.enable = true;
|
||||
|
||||
system76-scheduler.enable = true;
|
||||
|
||||
displayManager = {
|
||||
cosmic-greeter.enable = true;
|
||||
|
||||
autoLogin = {
|
||||
enable = true;
|
||||
user = "bug";
|
||||
};
|
||||
};
|
||||
|
||||
desktopManager.cosmic.enable = true;
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
cosmic-applets
|
||||
cosmic-edit
|
||||
cosmic-ext-calculator
|
||||
cosmic-ext-tweaks
|
||||
cosmic-screenshot
|
||||
|
||||
xdg-desktop-portal-gtk
|
||||
xdg-desktop-portal-cosmic
|
||||
];
|
||||
|
||||
environment.sessionVariables = {
|
||||
COSMIC_DATA_CONTROL_ENABLED = 1;
|
||||
};
|
||||
|
||||
xdg = {
|
||||
portal = {
|
||||
enable = true;
|
||||
xdgOpenUsePortal = true;
|
||||
|
||||
config.common.default = ["gtk"];
|
||||
|
||||
extraPortals = [pkgs.xdg-desktop-portal-gtk pkgs.xdg-desktop-portal-cosmic];
|
||||
};
|
||||
|
||||
mime = {
|
||||
enable = true;
|
||||
|
||||
defaultApplications = {
|
||||
"text/html" = "firefox.desktop";
|
||||
"x-scheme-handler/http" = "firefox.desktop";
|
||||
"x-scheme-handler/https" = "firefox.desktop";
|
||||
"x-scheme-handler/about" = "firefox.desktop";
|
||||
"x-scheme-handler/unknown" = "firefox.desktop";
|
||||
"application/pdf" = "firefox.desktop";
|
||||
|
||||
"inode/directory" = "com.system76.CosmicFiles.desktop";
|
||||
|
||||
"text/plain" = "com.system76.CosmicEdit.desktop";
|
||||
"text/markdown" = "com.system76.CosmicEdit.desktop";
|
||||
|
||||
"application/zip" = "org.gnome.FileRoller.desktop";
|
||||
"application/x-7z-compressed" = "org.gnome.FileRoller.desktop";
|
||||
"application/x-tar" = "org.gnome.FileRoller.desktop";
|
||||
"application/gzip" = "org.gnome.FileRoller.desktop";
|
||||
"application/x-xz" = "org.gnome.FileRoller.desktop";
|
||||
"application/x-zip-compressed" = "org.gnome.FileRoller.desktop";
|
||||
|
||||
"application/x-ms-dos-executable" = "wine.desktop";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
10
modules/core/graphics/amdgpu.nix
Normal file
10
modules/core/graphics/amdgpu.nix
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
den.aspects.amdgpu = {
|
||||
nixos = {
|
||||
services.xserver = {
|
||||
enable = true;
|
||||
videoDrivers = ["amdgpu"];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
45
modules/core/graphics/nvidia.nix
Normal file
45
modules/core/graphics/nvidia.nix
Normal file
@@ -0,0 +1,45 @@
|
||||
{
|
||||
den.aspects.nvidia = {
|
||||
nixos = { pkgs, config, ... }: {
|
||||
hardware.graphics = {
|
||||
enable = true;
|
||||
enable32Bit = true;
|
||||
|
||||
extraPackages = with pkgs; [
|
||||
libva-vdpau-driver
|
||||
libvdpau
|
||||
libvdpau-va-gl
|
||||
vdpauinfo
|
||||
libva
|
||||
libva-utils
|
||||
libglvnd
|
||||
mesa
|
||||
nvidia-vaapi-driver
|
||||
];
|
||||
};
|
||||
|
||||
services.xserver = {
|
||||
enable = true;
|
||||
videoDrivers = ["nvidia"];
|
||||
};
|
||||
|
||||
hardware.nvidia = {
|
||||
modesetting.enable = true;
|
||||
|
||||
powerManagement.enable = false;
|
||||
powerManagement.finegrained = false;
|
||||
|
||||
open = false;
|
||||
|
||||
nvidiaSettings = true;
|
||||
|
||||
package = config.boot.kernelPackages.nvidiaPackages.beta;
|
||||
};
|
||||
|
||||
nixpkgs.config = {
|
||||
cudaSupport = true;
|
||||
nvidia.acceptLicense = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
9
modules/core/network/cloudflare-warp.nix
Normal file
9
modules/core/network/cloudflare-warp.nix
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
den.aspects.cloudflare-warp = {
|
||||
nixos = {
|
||||
services.cloudflare-warp = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
1
modules/core/network/crab-hole.nix
Normal file
1
modules/core/network/crab-hole.nix
Normal file
@@ -0,0 +1 @@
|
||||
{}
|
||||
11
modules/core/network/dns.nix
Normal file
11
modules/core/network/dns.nix
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
den.aspects.dns = {
|
||||
nixos = {
|
||||
networking = {
|
||||
networkmanager.enable = true;
|
||||
|
||||
nameservers = [ "1.1.1.1" "1.0.0.1" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
15
modules/core/network/openssh.nix
Normal file
15
modules/core/network/openssh.nix
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
den.aspects.openssh = {
|
||||
nixos = {
|
||||
services.openssh = {
|
||||
enable = true;
|
||||
|
||||
settings = {
|
||||
PrintMotd = true;
|
||||
X11Forwarding = true;
|
||||
AllowTcpForwarding = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
19
modules/core/swap.nix
Normal file
19
modules/core/swap.nix
Normal file
@@ -0,0 +1,19 @@
|
||||
{
|
||||
den.aspects.swap = {
|
||||
nixos = {
|
||||
boot.kernel.sysctl = {
|
||||
"fs.file-max" = 524288;
|
||||
};
|
||||
|
||||
swapDevices = [{
|
||||
device = "/var/lib/swapfile";
|
||||
size = 8 * 1024;
|
||||
}];
|
||||
|
||||
zramSwap = {
|
||||
enable = true;
|
||||
memoryMax = 64 * 1024 * 1024 * 1024;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
11
modules/core/virtualisation.nix
Normal file
11
modules/core/virtualisation.nix
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
den.aspects.virtualisation = {
|
||||
nixos = {
|
||||
virtualisation = {
|
||||
libvirtd.enable = true;
|
||||
|
||||
spiceUSBRedirection.enable = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
15
modules/hosts.nix
Normal file
15
modules/hosts.nix
Normal file
@@ -0,0 +1,15 @@
|
||||
let
|
||||
bug = {
|
||||
isNormalUser = true;
|
||||
description = "bug";
|
||||
extraGroups = [ "networkmanager" "wheel" "audio" "video" "libvirtd" "ydotool" "dialout" ];
|
||||
};
|
||||
in {
|
||||
den.hosts.x86_64-linux = {
|
||||
nix.users.bug = bug;
|
||||
laptop.users.bug = bug;
|
||||
box.users.bug = bug;
|
||||
};
|
||||
|
||||
den.homes.x86_64-linux.bug = { aspect = "bug"; };
|
||||
}
|
||||
35
modules/hosts/box/box.nix
Normal file
35
modules/hosts/box/box.nix
Normal file
@@ -0,0 +1,35 @@
|
||||
|
||||
{ den, ... }: {
|
||||
den.aspects.box = {
|
||||
includes = with den.aspects; [
|
||||
den.provides.home-manager
|
||||
syncthing
|
||||
fish
|
||||
|
||||
cloudflared
|
||||
searxng
|
||||
copyparty
|
||||
glances
|
||||
#invidious
|
||||
mailserver
|
||||
matrix
|
||||
redlib
|
||||
sish
|
||||
vscode-server
|
||||
dns
|
||||
openssh
|
||||
];
|
||||
|
||||
nixos = {
|
||||
networking.hostName = "box";
|
||||
|
||||
users.users.levi = {
|
||||
isNormalUser = true;
|
||||
description = "levi";
|
||||
extraGroups = [];
|
||||
|
||||
hashedPasswordFile = "/home/bug/users/levi.passwd";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
98
modules/hosts/defaults.nix
Normal file
98
modules/hosts/defaults.nix
Normal file
@@ -0,0 +1,98 @@
|
||||
{
|
||||
den.default = {
|
||||
nixos = { pkgs, ... }: {
|
||||
imports = [
|
||||
/etc/nixos/hardware-configuration.nix
|
||||
];
|
||||
|
||||
system = {
|
||||
stateVersion = "26.05";
|
||||
|
||||
autoUpgrade = {
|
||||
enable = true;
|
||||
allowReboot = false;
|
||||
};
|
||||
};
|
||||
|
||||
nixpkgs = {
|
||||
config = {
|
||||
allowUnfree = true;
|
||||
};
|
||||
};
|
||||
|
||||
nix = {
|
||||
optimise.automatic = true;
|
||||
settings.experimental-features = [ "nix-command" "flakes" ];
|
||||
};
|
||||
|
||||
security = {
|
||||
sudo = {
|
||||
enable = true;
|
||||
wheelNeedsPassword = false;
|
||||
};
|
||||
};
|
||||
|
||||
boot = {
|
||||
kernelPackages = pkgs.linuxPackages_zen;
|
||||
|
||||
initrd.checkJournalingFS = false;
|
||||
|
||||
loader = {
|
||||
grub.splashImage = null;
|
||||
|
||||
systemd-boot = {
|
||||
enable = true;
|
||||
configurationLimit = 25;
|
||||
};
|
||||
|
||||
efi.canTouchEfiVariables = true;
|
||||
};
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
comma
|
||||
fastfetch
|
||||
git
|
||||
home-manager
|
||||
inetutils
|
||||
micro
|
||||
nh
|
||||
nil
|
||||
nixd
|
||||
nixfmt
|
||||
nix-index
|
||||
nix-output-monitor
|
||||
nix-prefetch
|
||||
nvd
|
||||
psmisc
|
||||
tree
|
||||
unzip
|
||||
wget
|
||||
];
|
||||
|
||||
time.timeZone = "America/Chicago";
|
||||
|
||||
i18n = {
|
||||
defaultLocale = "en_US.UTF-8";
|
||||
|
||||
extraLocaleSettings = {
|
||||
LC_ADDRESS = "en_US.UTF-8";
|
||||
LC_IDENTIFICATION = "en_US.UTF-8";
|
||||
LC_MEASUREMENT = "en_US.UTF-8";
|
||||
LC_MONETARY = "en_US.UTF-8";
|
||||
LC_NAME = "en_US.UTF-8";
|
||||
LC_NUMERIC = "en_US.UTF-8";
|
||||
LC_PAPER = "en_US.UTF-8";
|
||||
LC_TELEPHONE = "en_US.UTF-8";
|
||||
LC_TIME = "en_US.UTF-8";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
homeManager = {
|
||||
home = {
|
||||
stateVersion = "26.05";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
36
modules/hosts/laptop/laptop.nix
Normal file
36
modules/hosts/laptop/laptop.nix
Normal file
@@ -0,0 +1,36 @@
|
||||
|
||||
{ den, ... }: {
|
||||
den.aspects.laptop = {
|
||||
includes = with den.aspects; [
|
||||
amdgpu
|
||||
cosmic
|
||||
firefox
|
||||
audio
|
||||
|
||||
den.provides.home-manager
|
||||
stylix
|
||||
#nvidia
|
||||
syncthing
|
||||
swap
|
||||
cloudflare-warp
|
||||
packages
|
||||
development
|
||||
#cad
|
||||
mpd
|
||||
virtualisation
|
||||
flatpak
|
||||
fish
|
||||
dns
|
||||
openssh
|
||||
];
|
||||
|
||||
nixos = {
|
||||
networking.hostName = "nix";
|
||||
|
||||
services.logind.settings.Login = {
|
||||
HandleLidSwitch = "ignore";
|
||||
HandleLidSwitchDocked = "ignore";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
31
modules/hosts/nix/nix.nix
Normal file
31
modules/hosts/nix/nix.nix
Normal file
@@ -0,0 +1,31 @@
|
||||
{ den, ... }:
|
||||
{
|
||||
den.aspects.nix = {
|
||||
includes = with den.aspects; [
|
||||
#amdgpu
|
||||
cosmic
|
||||
firefox
|
||||
audio
|
||||
|
||||
den.provides.home-manager
|
||||
stylix
|
||||
nvidia
|
||||
syncthing
|
||||
swap
|
||||
#cloudflare-warp
|
||||
packages
|
||||
development
|
||||
#cad
|
||||
mpd
|
||||
virtualisation
|
||||
flatpak
|
||||
fish
|
||||
dns
|
||||
openssh
|
||||
];
|
||||
|
||||
nixos = {
|
||||
networking.hostName = "nix";
|
||||
};
|
||||
};
|
||||
}
|
||||
31
modules/infra/cloudflared.nix
Normal file
31
modules/infra/cloudflared.nix
Normal file
@@ -0,0 +1,31 @@
|
||||
{
|
||||
den.aspects.cloudflared = {
|
||||
nixos = { pkgs, ...}: let
|
||||
TUNNEL_UUID = "4118935e-359b-4dd2-95bd-eb27f7b0c5bb";
|
||||
in {
|
||||
environment.systemPackages = [ pkgs.cloudflared ];
|
||||
|
||||
environment.etc."cloudflared/${TUNNEL_UUID}.json".source = "/home/bug/.cloudflared/${TUNNEL_UUID}.json";
|
||||
|
||||
services.cloudflared = {
|
||||
enable = true;
|
||||
|
||||
tunnels."${TUNNEL_UUID}" = {
|
||||
credentialsFile = "/etc/cloudflared/${TUNNEL_UUID}.json";
|
||||
default = "http_status:404";
|
||||
|
||||
ingress = {
|
||||
"tvtun.bug.tools" = "http://127.0.0.1:3001";
|
||||
"search.bug.tools" = "http://127.0.0.1:8888";
|
||||
"files.bug.tools" = "http://127.0.0.1:3210";
|
||||
"tube.bug.tools" = "http://127.0.0.1:3030";
|
||||
"monitor.bug.tools" = "http://127.0.0.1:61208";
|
||||
"reddit.bug.tools" = "http://127.0.0.1:8975";
|
||||
"matrix.bug.tools" = "http://127.0.0.1:8008";
|
||||
"bug.tools" = "http://127.0.0.1:8080";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
70
modules/infra/syncthing.nix
Normal file
70
modules/infra/syncthing.nix
Normal file
@@ -0,0 +1,70 @@
|
||||
{
|
||||
den.aspects.syncthing = {
|
||||
homeManager = {
|
||||
services.syncthing = {
|
||||
enable = true;
|
||||
|
||||
overrideDevices = true;
|
||||
overrideFolders = true;
|
||||
|
||||
key = "/home/bug/.syncthing/key.pem";
|
||||
cert = "/home/bug/.syncthing/cert.pem";
|
||||
|
||||
settings = {
|
||||
devices = {
|
||||
desktop.id = "VEZXY3W-U6UXWTP-6BHANIG-O5EKNZY-XNV5YOX-4V4O3HB-ETECIUX-T2DK7AV";
|
||||
laptop.id = "I6NW53P-IJMMT73-7O53TXY-3GAHS2U-4EAADM7-ZNB5ZPB-62QHKVW-H7DYXQ2";
|
||||
server.id = "KJECAIP-Y2Y3FHV-NOJKIQV-LWIDMMZ-5ITEAZ4-LQCQL72-3BGW6T7-BFPFJQA";
|
||||
};
|
||||
|
||||
folders = {
|
||||
"Documents" = {
|
||||
path = "/home/bug/Documents";
|
||||
devices = ["desktop" "laptop" "server"];
|
||||
};
|
||||
|
||||
"Downloads" = {
|
||||
path = "/home/bug/Downloads";
|
||||
devices = ["desktop" "laptop" "server"];
|
||||
};
|
||||
|
||||
"Pictures" = {
|
||||
path = "/home/bug/Pictures";
|
||||
devices = ["desktop" "laptop" "server"];
|
||||
};
|
||||
|
||||
"Videos" = {
|
||||
path = "/home/bug/Videos";
|
||||
devices = ["desktop" "laptop" "server"];
|
||||
};
|
||||
|
||||
"nix" = {
|
||||
path = "/home/bug/nix";
|
||||
devices = ["desktop" "laptop" "server"];
|
||||
};
|
||||
|
||||
"hytale" = {
|
||||
path = "/home/bug/.local/share/Hytale/UserData/Saves";
|
||||
devices = ["desktop" "laptop"];
|
||||
};
|
||||
|
||||
"ssh" = {
|
||||
path = "/home/bug/.ssh";
|
||||
devices = ["desktop" "laptop" "server"];
|
||||
};
|
||||
|
||||
"cloudflared" = {
|
||||
path = "/home/bug/.cloudflared";
|
||||
devices = ["desktop" "laptop" "server"];
|
||||
};
|
||||
|
||||
"Music" = {
|
||||
path = "/home/bug/Music/";
|
||||
devices = ["desktop" "laptop" "server"];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
82
modules/services/copyparty.nix
Normal file
82
modules/services/copyparty.nix
Normal file
@@ -0,0 +1,82 @@
|
||||
{ inputs, ... }: {
|
||||
den.aspects.copyparty = {
|
||||
nixos = {
|
||||
imports = [ inputs.copyparty.nixosModules.default ];
|
||||
|
||||
nixpkgs.overlays = [ inputs.copyparty.overlays.default ];
|
||||
|
||||
services.copyparty = {
|
||||
enable = true;
|
||||
|
||||
user = "bug";
|
||||
group = "copyparty";
|
||||
|
||||
settings = {
|
||||
i = "0.0.0.0";
|
||||
p = [ 3210 3211 ];
|
||||
no-reload = true;
|
||||
ignored-flag = false;
|
||||
};
|
||||
|
||||
accounts = {
|
||||
bug = {
|
||||
passwordFile = "/home/bug/mailserver/bug.passwd";
|
||||
};
|
||||
|
||||
sang = {
|
||||
passwordFile = "/home/bug/nix/sang.passwd";
|
||||
};
|
||||
};
|
||||
|
||||
groups = {
|
||||
g1 = [ "bug" ];
|
||||
};
|
||||
|
||||
volumes = {
|
||||
"/" = {
|
||||
path = "/srv/copyparty";
|
||||
|
||||
access = {
|
||||
r = "*";
|
||||
rw = [ "bug" ];
|
||||
};
|
||||
|
||||
flags = {
|
||||
fk = 4;
|
||||
scan = 60;
|
||||
};
|
||||
};
|
||||
|
||||
"/music" = {
|
||||
path = "/home/bug/Music";
|
||||
|
||||
access = {
|
||||
r = "*";
|
||||
rw = [ "bug" ];
|
||||
};
|
||||
|
||||
flags = {
|
||||
fk = 4;
|
||||
scan = 60;
|
||||
};
|
||||
};
|
||||
|
||||
"/sang" = {
|
||||
path = "/srv/sang";
|
||||
|
||||
access = {
|
||||
rw = [ "bug" "sang" ];
|
||||
};
|
||||
|
||||
flags = {
|
||||
fk = 4;
|
||||
scan = 60;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
openFilesLimit = 8192;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
44
modules/services/glances.nix
Normal file
44
modules/services/glances.nix
Normal file
@@ -0,0 +1,44 @@
|
||||
{
|
||||
den.aspects.glances = {
|
||||
nixos = { pkgs, ... }: {
|
||||
environment.systemPackages = [ pkgs.glances ];
|
||||
|
||||
users.users.glances = {
|
||||
isSystemUser = true;
|
||||
group = "glances";
|
||||
home = "/var/lib/glances";
|
||||
createHome = true;
|
||||
};
|
||||
|
||||
users.groups.glances = {};
|
||||
|
||||
systemd.services.glances-web = {
|
||||
description = "glances web interface";
|
||||
after = [ "network-online.target" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
|
||||
serviceConfig = {
|
||||
User = "glances";
|
||||
Group = "glances";
|
||||
|
||||
ExecStart = ''
|
||||
${pkgs.glances}/bin/glances \
|
||||
-w \
|
||||
-p 61208 \
|
||||
-B 0.0.0.0
|
||||
'';
|
||||
|
||||
Restart = "always";
|
||||
RestartSec = 5;
|
||||
|
||||
NoNewPrivileges = true;
|
||||
PrivateTmp = true;
|
||||
ProtectSystem = "strict";
|
||||
ProtectHome = true;
|
||||
LockPersonality = true;
|
||||
MemoryDenyWriteExecute = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
65
modules/services/invidious.nix
Normal file
65
modules/services/invidious.nix
Normal file
@@ -0,0 +1,65 @@
|
||||
{
|
||||
den.aspects.invidious = {
|
||||
nixos = { pkgs, lib, ... }: let
|
||||
companionPort = 8282;
|
||||
companionPath = "/companion";
|
||||
companionKey = "kKg3RKeZjE7frmvw";
|
||||
in {
|
||||
virtualisation.podman.enable = true;
|
||||
virtualisation.oci-containers.backend = lib.mkDefault "podman";
|
||||
|
||||
virtualisation.oci-containers.containers.invidious-companion = {
|
||||
image = "quay.io/invidious/invidious-companion:latest";
|
||||
extraOptions = [ "--network=host" "--pull=always" ];
|
||||
|
||||
environment = {
|
||||
SERVER_SECRET_KEY = companionKey;
|
||||
HOST = "127.0.0.1";
|
||||
PORT = toString companionPort;
|
||||
SERVER_BASE_URL = "http://127.0.0.1:${toString companionPort}";
|
||||
|
||||
# HTTP_PROXY = "http://proxy.example:3128";
|
||||
# HTTPS_PROXY = "http://proxy.example:3128";
|
||||
# NO_PROXY = "127.0.0.1,localhost";
|
||||
};
|
||||
};
|
||||
|
||||
services.invidious = {
|
||||
enable = true;
|
||||
package = pkgs.invidious;
|
||||
|
||||
address = "127.0.0.1";
|
||||
port = 3030;
|
||||
|
||||
nginx.enable = false;
|
||||
sig-helper.enable = false;
|
||||
|
||||
settings = {
|
||||
domain = "tube.bug.tools";
|
||||
https_only = true;
|
||||
external_port = 443;
|
||||
|
||||
use_pubsub_feeds = true;
|
||||
use_innertube_for_captions = true;
|
||||
|
||||
visitor_data = "Cgt6ZmQ4UEtOUkJJNCjwtcPMBjIKCgJVUxIEGgAgXA%3D%3D";
|
||||
po_token = "Mni77CY6tviRIrvQXWaz6OfDryNNzAlKeIj4m0N1SHIITM94AZ8R0fK2dfuYke5tjZJjD33c4jB94p1Wy_XKCJPNbSkE2dgzRPdP502Q8ufofOe6fd4hV-fZFitud_tZO_BcNa18nKgfnupVYgV8huPgaFu-RKyGPIU=";
|
||||
|
||||
invidious_companion = [
|
||||
{ private_url = "http://127.0.0.1:${toString companionPort}${companionPath}"; }
|
||||
];
|
||||
|
||||
popular_enabled = true;
|
||||
|
||||
invidious_companion_key = companionKey;
|
||||
};
|
||||
};
|
||||
|
||||
systemd.services.invidious = let dep = "podman-invidious-companion.service"; in {
|
||||
wants = [ dep ];
|
||||
after = [ dep ];
|
||||
requires = [ dep ];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
52
modules/services/mailserver.nix
Normal file
52
modules/services/mailserver.nix
Normal file
@@ -0,0 +1,52 @@
|
||||
{
|
||||
den.aspects.mailserver = {
|
||||
nixos = {
|
||||
imports = [
|
||||
(builtins.fetchTarball {
|
||||
url = "https://gitlab.com/simple-nixos-mailserver/nixos-mailserver/-/archive/master.tar.gz";
|
||||
sha256 = "0rm5f749xakmkqrpkl5ay1pydbnlinr50pvwg1vm795js2infmj5";
|
||||
})
|
||||
];
|
||||
|
||||
security.acme = {
|
||||
acceptTerms = true;
|
||||
defaults.email = "security@bug.tools";
|
||||
|
||||
certs."mail.bug.tools" = {
|
||||
listenHTTP = "1360";
|
||||
};
|
||||
};
|
||||
|
||||
mailserver = {
|
||||
enable = true;
|
||||
|
||||
stateVersion = 3;
|
||||
|
||||
fqdn = "mail.bug.tools";
|
||||
domains = [ "bug.tools" ];
|
||||
|
||||
x509.useACMEHost = "mail.bug.tools";
|
||||
|
||||
loginAccounts = {
|
||||
"bug@bug.tools" = {
|
||||
hashedPasswordFile = "/home/bug/mailserver/bug.passwd";
|
||||
aliases = [
|
||||
"admin@bug.tools"
|
||||
"google@bug.tools"
|
||||
"apple@bug.tools"
|
||||
"roblox@bug.tools"
|
||||
"twitch@bug.tools"
|
||||
"discord@bug.tools"
|
||||
"github@bug.tools"
|
||||
"matrix@bug.tools"
|
||||
];
|
||||
};
|
||||
|
||||
"pare@bug.tools" = {
|
||||
hashedPasswordFile = "/home/bug/mailserver/pare.passwd";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
7
modules/services/matrix.nix
Normal file
7
modules/services/matrix.nix
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
den.aspects.matrix = {
|
||||
nixos = {
|
||||
|
||||
};
|
||||
};
|
||||
}
|
||||
1
modules/services/portmap.nix
Normal file
1
modules/services/portmap.nix
Normal file
@@ -0,0 +1 @@
|
||||
{}
|
||||
37
modules/services/redlib.nix
Normal file
37
modules/services/redlib.nix
Normal file
@@ -0,0 +1,37 @@
|
||||
{
|
||||
den.aspects.redlib = {
|
||||
nixos = {
|
||||
services.redlib = {
|
||||
enable = true;
|
||||
|
||||
address = "127.0.0.1";
|
||||
port = 8975;
|
||||
openFirewall = false;
|
||||
|
||||
settings = {
|
||||
SFW_ONLY = "off";
|
||||
ROBOTS_DISABLE_INDEXING = "on";
|
||||
ENABLE_RSS = "on";
|
||||
THEME = "system";
|
||||
FRONT_PAGE = "default";
|
||||
LAYOUT = "card";
|
||||
WIDE = "on";
|
||||
POST_SORT = "hot";
|
||||
COMMENT_SORT = "confidence";
|
||||
BLUR_SPOILER = "off";
|
||||
SHOW_NSFW = "on";
|
||||
BLUR_NSFW = "off";
|
||||
USE_HLS = "on";
|
||||
HIDE_HLS_NOTIFICATION = "off";
|
||||
AUTOPLAY_VIDEOS = "off";
|
||||
HIDE_AWARDS = "off";
|
||||
DISABLE_VISIT_REDDIT_CONFIRMATION = "off";
|
||||
HIDE_SCORE = "off";
|
||||
HIDE_SIDEBAR_AND_SUMMARY = "off";
|
||||
FIXED_NAVBAR = "on";
|
||||
REMOVE_DEFAULT_FEEDS = "off";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
25
modules/services/searxng/searxng.nix
Normal file
25
modules/services/searxng/searxng.nix
Normal file
@@ -0,0 +1,25 @@
|
||||
{
|
||||
den.aspects.searxng = {
|
||||
nixos = {
|
||||
systemd.services.searx-init.serviceConfig.EnvironmentFile = [
|
||||
"/home/bug/.searxng.env"
|
||||
];
|
||||
|
||||
services.searx = {
|
||||
enable = true;
|
||||
redisCreateLocally = false;
|
||||
configureUwsgi = false;
|
||||
settingsFile = ./searxng.yml;
|
||||
environmentFile = "/home/bug/.searxng.env";
|
||||
|
||||
settings = {
|
||||
general.instance_name = "search.bug.tools";
|
||||
|
||||
server.port = 8888;
|
||||
server.bind_address = "0.0.0.0";
|
||||
server.secret_key = "$SEARX_SECRET_KEY";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
2826
modules/services/searxng/searxng.yml
Normal file
2826
modules/services/searxng/searxng.yml
Normal file
File diff suppressed because it is too large
Load Diff
7
modules/services/sish.nix
Normal file
7
modules/services/sish.nix
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
den.aspects.sish = {
|
||||
nixos = {
|
||||
|
||||
};
|
||||
};
|
||||
}
|
||||
11
modules/services/vscode-server.nix
Normal file
11
modules/services/vscode-server.nix
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
den.aspects.vscode-server = {
|
||||
nixos = {
|
||||
imports = [
|
||||
(fetchTarball "https://github.com/nix-community/nixos-vscode-server/tarball/master")
|
||||
];
|
||||
|
||||
services.vscode-server.enable = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
51
modules/software/beets.nix
Normal file
51
modules/software/beets.nix
Normal file
@@ -0,0 +1,51 @@
|
||||
{
|
||||
den.aspects.beets = {
|
||||
homeManager = { pkgs, ... }: {
|
||||
packages = with pkgs; [
|
||||
beets
|
||||
ffmpeg
|
||||
chromaprint
|
||||
];
|
||||
|
||||
file.".config/beets/config.yaml".text = ''
|
||||
library: ~/.local/share/beets/library.db
|
||||
directory: ~/Music
|
||||
|
||||
import:
|
||||
write: true
|
||||
copy: true
|
||||
|
||||
plugins:
|
||||
- convert
|
||||
- fetchart
|
||||
- embedart
|
||||
- fromfilename
|
||||
- chroma
|
||||
- smartplaylist
|
||||
|
||||
paths:
|
||||
default: $artist/$album/$track - $title
|
||||
|
||||
convert:
|
||||
auto: true
|
||||
format: opus
|
||||
formats:
|
||||
opus: ffmpeg -i $source -y -vn -c:a libopus -b:a 160k $dest
|
||||
dest: /home/bug/Music
|
||||
|
||||
fetchart:
|
||||
auto: yes
|
||||
ifempty: yes
|
||||
art_filename: folder
|
||||
|
||||
embedart:
|
||||
auto: yes
|
||||
|
||||
smartplaylist:
|
||||
playlist_dir: ~/Music/playlists
|
||||
relative_to: library
|
||||
output: extm3u
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
11
modules/software/cad.nix
Normal file
11
modules/software/cad.nix
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
den.aspects.cad = {
|
||||
nixos = { pkgs, ... }: {
|
||||
users.users.bug.packages = with pkgs; [
|
||||
blender
|
||||
plasticity
|
||||
orca-slicer
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
1
modules/software/compatibility.nix
Normal file
1
modules/software/compatibility.nix
Normal file
@@ -0,0 +1 @@
|
||||
{}
|
||||
21
modules/software/development.nix
Normal file
21
modules/software/development.nix
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
den.aspects.development = {
|
||||
nixos = { pkgs, ... }: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
file-roller
|
||||
];
|
||||
|
||||
users.users.bug.packages = with pkgs; [
|
||||
zed-editor
|
||||
|
||||
vscode
|
||||
|
||||
tree
|
||||
gh
|
||||
scanmem
|
||||
|
||||
arduino-ide
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
11
modules/software/firefox.nix
Normal file
11
modules/software/firefox.nix
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
den.aspects.firefox = {
|
||||
nixos = { pkgs, ... }: {
|
||||
programs.firefox = {
|
||||
enable = true;
|
||||
|
||||
package = pkgs.firefox-bin;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
9
modules/software/fish.nix
Normal file
9
modules/software/fish.nix
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
den.aspects.fish = {
|
||||
nixos = {
|
||||
programs.fish.shellAliases = {
|
||||
box = "ssh box.bug.tools";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
55
modules/software/flatpak.nix
Normal file
55
modules/software/flatpak.nix
Normal file
@@ -0,0 +1,55 @@
|
||||
{ inputs, lib, ... }: {
|
||||
den.aspects.flatpak = {
|
||||
nixos = { pkgs, ... }: {
|
||||
imports = [ inputs.nix-flatpak.nixosModules.nix-flatpak ];
|
||||
|
||||
services.flatpak = {
|
||||
enable = true;
|
||||
|
||||
remotes = lib.mkOptionDefault [{
|
||||
name = "flathub-beta";
|
||||
location = "https://flathub.org/beta-repo/flathub-beta.flatpakrepo";
|
||||
}];
|
||||
|
||||
update.auto.enable = true;
|
||||
uninstallUnmanaged = true;
|
||||
|
||||
packages = [
|
||||
"org.vinegarhq.Sober"
|
||||
"org.vinegarhq.Vinegar"
|
||||
"org.gnome.Decibels"
|
||||
"org.pipewire.Helvum"
|
||||
"community.pathofbuilding.PathOfBuilding"
|
||||
"io.github.gaheldev.Millisecond"
|
||||
|
||||
{
|
||||
appId = "com.hytale.Launcher";
|
||||
sha256 = "sha256-SUxfyovC2umZmsOj5bOTZ8WfGCpnWcz7svOESwNekV0=";
|
||||
bundle = "${pkgs.fetchurl {
|
||||
url = "https://launcher.hytale.com/builds/release/linux/amd64/hytale-launcher-latest.flatpak";
|
||||
sha256 = "sha256-SUxfyovC2umZmsOj5bOTZ8WfGCpnWcz7svOESwNekV0=";
|
||||
}}";
|
||||
}
|
||||
|
||||
# add Polytoria client
|
||||
# https://cdn.polytoria.com/releases/installer/linux/Polytoria%20Setup%204.12.0.flatpak
|
||||
|
||||
{
|
||||
appId = "com.polytoria.launcher";
|
||||
sha256 = "sha256-VjhNiJfSdCtlH2SuP3Mn8jjOrx5xcOqhtDKaWYIwxYg=";
|
||||
bundle = "${pkgs.fetchurl {
|
||||
url = "https://github.com/4DBug/poly/releases/download/poly/poly.flatpak";
|
||||
sha256 = "sha256-VjhNiJfSdCtlH2SuP3Mn8jjOrx5xcOqhtDKaWYIwxYg=";
|
||||
}}";
|
||||
}
|
||||
];
|
||||
|
||||
overrides = {
|
||||
global = {
|
||||
Context.sockets = ["wayland" "!x11" "!fallback-x11"];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
1
modules/software/gaming.nix
Normal file
1
modules/software/gaming.nix
Normal file
@@ -0,0 +1 @@
|
||||
{}
|
||||
1
modules/software/music.nix
Normal file
1
modules/software/music.nix
Normal file
@@ -0,0 +1 @@
|
||||
{}
|
||||
195
modules/software/placeholder.nix
Normal file
195
modules/software/placeholder.nix
Normal file
@@ -0,0 +1,195 @@
|
||||
{
|
||||
den.aspects.packages = {
|
||||
nixos = { pkgs, options, ... }: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
gnome-boxes
|
||||
|
||||
wine64
|
||||
wineWow64Packages.full
|
||||
|
||||
appimage-run
|
||||
|
||||
pulseaudioFull
|
||||
|
||||
lug-helper
|
||||
gamemode
|
||||
steam-run
|
||||
|
||||
firmware-updater
|
||||
|
||||
file-roller
|
||||
|
||||
baobab
|
||||
|
||||
firefox-bin
|
||||
];
|
||||
|
||||
users.users.bug.packages = with pkgs; [
|
||||
obsidian
|
||||
vesktop
|
||||
nicotine-plus
|
||||
fastfetch
|
||||
gh
|
||||
scanmem
|
||||
samrewritten
|
||||
impression
|
||||
|
||||
mission-center
|
||||
|
||||
authenticator
|
||||
|
||||
steamtinkerlaunch
|
||||
|
||||
#prismlauncher
|
||||
|
||||
euphonica
|
||||
|
||||
kooha
|
||||
|
||||
loupe
|
||||
|
||||
arduino-ide
|
||||
|
||||
geary
|
||||
|
||||
fractal
|
||||
|
||||
gnome-calendar
|
||||
];
|
||||
|
||||
|
||||
services = {
|
||||
/*
|
||||
flatpak = {
|
||||
enable = true;
|
||||
|
||||
remotes = lib.mkOptionDefault [{
|
||||
name = "flathub-beta";
|
||||
location = "https://flathub.org/beta-repo/flathub-beta.flatpakrepo";
|
||||
}];
|
||||
|
||||
update.auto.enable = true;
|
||||
uninstallUnmanaged = true;
|
||||
|
||||
packages = [
|
||||
"org.vinegarhq.Sober"
|
||||
"org.vinegarhq.Vinegar"
|
||||
"org.gnome.Decibels"
|
||||
"org.pipewire.Helvum"
|
||||
"community.pathofbuilding.PathOfBuilding"
|
||||
"io.github.gaheldev.Millisecond"
|
||||
|
||||
{
|
||||
appId = "com.hytale.Launcher";
|
||||
sha256 = "sha256-SUxfyovC2umZmsOj5bOTZ8WfGCpnWcz7svOESwNekV0=";
|
||||
bundle = "${pkgs.fetchurl {
|
||||
url = "https://launcher.hytale.com/builds/release/linux/amd64/hytale-launcher-latest.flatpak";
|
||||
sha256 = "sha256-SUxfyovC2umZmsOj5bOTZ8WfGCpnWcz7svOESwNekV0=";
|
||||
}}";
|
||||
}
|
||||
|
||||
# add Polytoria client
|
||||
# https://cdn.polytoria.com/releases/installer/linux/Polytoria%20Setup%204.12.0.flatpak
|
||||
|
||||
{
|
||||
appId = "com.polytoria.launcher";
|
||||
sha256 = "sha256-VjhNiJfSdCtlH2SuP3Mn8jjOrx5xcOqhtDKaWYIwxYg=";
|
||||
bundle = "${pkgs.fetchurl {
|
||||
url = "https://github.com/4DBug/poly/releases/download/poly/poly.flatpak";
|
||||
sha256 = "sha256-VjhNiJfSdCtlH2SuP3Mn8jjOrx5xcOqhtDKaWYIwxYg=";
|
||||
}}";
|
||||
}
|
||||
];
|
||||
|
||||
overrides = {
|
||||
global = {
|
||||
Context.sockets = ["wayland" "!x11" "!fallback-x11"];
|
||||
};
|
||||
};
|
||||
};
|
||||
*/
|
||||
|
||||
ollama = {
|
||||
enable = false;
|
||||
|
||||
loadModels = [ "llama3.2:3b" "deepseek-r1:1.5b" "deepseek-r1:8b"];
|
||||
};
|
||||
};
|
||||
|
||||
fonts = {
|
||||
fontDir.enable = true;
|
||||
enableDefaultPackages = true;
|
||||
|
||||
packages = with pkgs; [
|
||||
twitter-color-emoji
|
||||
nerd-fonts.fira-code
|
||||
nerd-fonts.droid-sans-mono
|
||||
];
|
||||
|
||||
fontconfig = {
|
||||
enable = true;
|
||||
useEmbeddedBitmaps = true;
|
||||
|
||||
defaultFonts = {
|
||||
emoji = [ "Twitter Color Emoji" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
programs = {
|
||||
appimage = {
|
||||
enable = true;
|
||||
binfmt = true;
|
||||
};
|
||||
|
||||
steam = {
|
||||
enable = true;
|
||||
|
||||
remotePlay.openFirewall = true;
|
||||
dedicatedServer.openFirewall = false;
|
||||
|
||||
localNetworkGameTransfers.openFirewall = true;
|
||||
|
||||
gamescopeSession.enable = true;
|
||||
|
||||
extraCompatPackages = with pkgs; [
|
||||
proton-ge-bin
|
||||
];
|
||||
|
||||
#platformOptimizations.enable = true;
|
||||
};
|
||||
|
||||
ydotool.enable = true;
|
||||
|
||||
gamescope = {
|
||||
enable = true;
|
||||
capSysNice = true;
|
||||
args = [
|
||||
"--rt"
|
||||
"--expose-wayland"
|
||||
];
|
||||
};
|
||||
|
||||
virt-manager.enable = true;
|
||||
|
||||
nix-ld = {
|
||||
enable = true;
|
||||
|
||||
libraries = options.programs.nix-ld.libraries.default ++ (with pkgs; [
|
||||
libxml2
|
||||
udev
|
||||
gcc
|
||||
egl-wayland
|
||||
mesa
|
||||
libglvnd
|
||||
wayland
|
||||
libX11
|
||||
libXcursor
|
||||
libXrandr
|
||||
libXi
|
||||
]);
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
1
modules/software/social.nix
Normal file
1
modules/software/social.nix
Normal file
@@ -0,0 +1 @@
|
||||
{}
|
||||
47
modules/software/stylix.nix
Normal file
47
modules/software/stylix.nix
Normal file
@@ -0,0 +1,47 @@
|
||||
{ inputs, ... }: {
|
||||
den.aspects.stylix = {
|
||||
homeManager = { pkgs, ... }: {
|
||||
imports = [
|
||||
(inputs.stylix.homeModules.stylix or {})
|
||||
];
|
||||
|
||||
stylix = {
|
||||
enable = true;
|
||||
autoEnable = true;
|
||||
polarity = "dark";
|
||||
|
||||
# catppuccin mocha
|
||||
base16Scheme = {
|
||||
base00 = "1E1E2E";
|
||||
base01 = "181825";
|
||||
base02 = "313244";
|
||||
base03 = "45475A";
|
||||
base04 = "585B70";
|
||||
base05 = "CDD6F4";
|
||||
base06 = "F5E0DC";
|
||||
base07 = "B4BEFE";
|
||||
base08 = "F38BA8";
|
||||
base09 = "FAB387";
|
||||
base0A = "F9E2AF";
|
||||
base0B = "A6E3A1";
|
||||
base0C = "94E2D5";
|
||||
base0D = "89B4FA";
|
||||
base0E = "CBA6F7";
|
||||
base0F = "F2CDCD";
|
||||
};
|
||||
|
||||
fonts.emoji = {
|
||||
name = "Twitter Color Emoji";
|
||||
package = pkgs.twitter-color-emoji;
|
||||
};
|
||||
|
||||
targets = {
|
||||
vesktop.enable = true;
|
||||
gnome.enable = true;
|
||||
gtk.enable = true;
|
||||
firefox.enable = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
10
modules/users/bug.nix
Normal file
10
modules/users/bug.nix
Normal file
@@ -0,0 +1,10 @@
|
||||
{ den, ... }:
|
||||
{
|
||||
den.aspects.bug = {
|
||||
includes = [
|
||||
den.provides.primary-user
|
||||
(den.provides.user-shell "fish")
|
||||
den.provides.home-manager
|
||||
];
|
||||
};
|
||||
}
|
||||
16
modules/vm.nix
Normal file
16
modules/vm.nix
Normal file
@@ -0,0 +1,16 @@
|
||||
# nix run .#vm
|
||||
|
||||
{ inputs, den, ... }: {
|
||||
den.aspects.nix.includes = [ (den.provides.tty-autologin "bug") ];
|
||||
|
||||
perSystem = { pkgs, ... }: {
|
||||
packages.vm = pkgs.writeShellApplication {
|
||||
name = "vm";
|
||||
text = let
|
||||
host = inputs.self.nixosConfigurations.nix.config;
|
||||
in ''
|
||||
${host.system.build.vm}/bin/run-${host.networking.hostName}-vm "$@"
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user