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 "$@"
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
5
nix/.stfolder/syncthing-folder-a0745f.txt
Normal file
5
nix/.stfolder/syncthing-folder-a0745f.txt
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
# This directory is a Syncthing folder marker.
|
||||||
|
# Do not delete.
|
||||||
|
|
||||||
|
folderID: nix
|
||||||
|
created: 2026-01-29T23:05:44-06:00
|
||||||
2
nix/.stignore
Normal file
2
nix/.stignore
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
device.nix
|
||||||
|
hardware-configuration.nix
|
||||||
1
nix/device.nix
Normal file
1
nix/device.nix
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{ device = "desktop"; }
|
||||||
807
nix/flake.lock
generated
Normal file
807
nix/flake.lock
generated
Normal file
@@ -0,0 +1,807 @@
|
|||||||
|
{
|
||||||
|
"nodes": {
|
||||||
|
"base16": {
|
||||||
|
"inputs": {
|
||||||
|
"fromYaml": "fromYaml"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1755819240,
|
||||||
|
"narHash": "sha256-qcMhnL7aGAuFuutH4rq9fvAhCpJWVHLcHVZLtPctPlo=",
|
||||||
|
"owner": "SenchoPens",
|
||||||
|
"repo": "base16.nix",
|
||||||
|
"rev": "75ed5e5e3fce37df22e49125181fa37899c3ccd6",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "SenchoPens",
|
||||||
|
"repo": "base16.nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"base16-fish": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1765809053,
|
||||||
|
"narHash": "sha256-XCUQLoLfBJ8saWms2HCIj4NEN+xNsWBlU1NrEPcQG4s=",
|
||||||
|
"owner": "tomyun",
|
||||||
|
"repo": "base16-fish",
|
||||||
|
"rev": "86cbea4dca62e08fb7fd83a70e96472f92574782",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "tomyun",
|
||||||
|
"repo": "base16-fish",
|
||||||
|
"rev": "86cbea4dca62e08fb7fd83a70e96472f92574782",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"base16-helix": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1760703920,
|
||||||
|
"narHash": "sha256-m82fGUYns4uHd+ZTdoLX2vlHikzwzdu2s2rYM2bNwzw=",
|
||||||
|
"owner": "tinted-theming",
|
||||||
|
"repo": "base16-helix",
|
||||||
|
"rev": "d646af9b7d14bff08824538164af99d0c521b185",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "tinted-theming",
|
||||||
|
"repo": "base16-helix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"base16-vim": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1732806396,
|
||||||
|
"narHash": "sha256-e0bpPySdJf0F68Ndanwm+KWHgQiZ0s7liLhvJSWDNsA=",
|
||||||
|
"owner": "tinted-theming",
|
||||||
|
"repo": "base16-vim",
|
||||||
|
"rev": "577fe8125d74ff456cf942c733a85d769afe58b7",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "tinted-theming",
|
||||||
|
"repo": "base16-vim",
|
||||||
|
"rev": "577fe8125d74ff456cf942c733a85d769afe58b7",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"copyparty": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils",
|
||||||
|
"nixpkgs": "nixpkgs"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1770758715,
|
||||||
|
"narHash": "sha256-FlRSDJ8OlCiWX+tIAZJkQnkBAAwbO125aUdAC6VJlOk=",
|
||||||
|
"owner": "9001",
|
||||||
|
"repo": "copyparty",
|
||||||
|
"rev": "d44ea245307c06eb060b6e6f5c2cba91a759c940",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "9001",
|
||||||
|
"repo": "copyparty",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"firefox-gnome-theme": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1764873433,
|
||||||
|
"narHash": "sha256-1XPewtGMi+9wN9Ispoluxunw/RwozuTRVuuQOmxzt+A=",
|
||||||
|
"owner": "rafaelmardojai",
|
||||||
|
"repo": "firefox-gnome-theme",
|
||||||
|
"rev": "f7ffd917ac0d253dbd6a3bf3da06888f57c69f92",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "rafaelmardojai",
|
||||||
|
"repo": "firefox-gnome-theme",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-compat": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1746162366,
|
||||||
|
"narHash": "sha256-5SSSZ/oQkwfcAz/o/6TlejlVGqeK08wyREBQ5qFFPhM=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"rev": "0f158086a2ecdbb138cd0429410e44994f1b7e4b",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-parts": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs-lib": [
|
||||||
|
"nix-citizen",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1769996383,
|
||||||
|
"narHash": "sha256-AnYjnFWgS49RlqX7LrC4uA+sCCDBj0Ry/WOJ5XWAsa0=",
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"rev": "57928607ea566b5db3ad13af0e57e921e6b12381",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-parts_2": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs-lib": "nixpkgs-lib"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1769996383,
|
||||||
|
"narHash": "sha256-AnYjnFWgS49RlqX7LrC4uA+sCCDBj0Ry/WOJ5XWAsa0=",
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"rev": "57928607ea566b5db3ad13af0e57e921e6b12381",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-parts_3": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs-lib": [
|
||||||
|
"stylix",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1767609335,
|
||||||
|
"narHash": "sha256-feveD98mQpptwrAEggBQKJTYbvwwglSbOv53uCfH9PY=",
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"rev": "250481aafeb741edfe23d29195671c19b36b6dca",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-utils": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1678901627,
|
||||||
|
"narHash": "sha256-U02riOqrKKzwjsxc/400XnElV+UtPUQWpANPlyazjH0=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "93a2b84fc4b70d9e089d029deacc3583435c2ed6",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-utils_2": {
|
||||||
|
"inputs": {
|
||||||
|
"systems": "systems_3"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681202837,
|
||||||
|
"narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "cfacdce06f30d2b68473a46042957675eebb3401",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flatpaks": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1767983141,
|
||||||
|
"narHash": "sha256-7ZCulYUD9RmJIDULTRkGLSW1faMpDlPKcbWJLYHoXcs=",
|
||||||
|
"owner": "gmodena",
|
||||||
|
"repo": "nix-flatpak",
|
||||||
|
"rev": "440818969ac2cbd77bfe025e884d0aa528991374",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "gmodena",
|
||||||
|
"ref": "latest",
|
||||||
|
"repo": "nix-flatpak",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"fromYaml": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1731966426,
|
||||||
|
"narHash": "sha256-lq95WydhbUTWig/JpqiB7oViTcHFP8Lv41IGtayokA8=",
|
||||||
|
"owner": "SenchoPens",
|
||||||
|
"repo": "fromYaml",
|
||||||
|
"rev": "106af9e2f715e2d828df706c386a685698f3223b",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "SenchoPens",
|
||||||
|
"repo": "fromYaml",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"gnome-shell": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"host": "gitlab.gnome.org",
|
||||||
|
"lastModified": 1767737596,
|
||||||
|
"narHash": "sha256-eFujfIUQDgWnSJBablOuG+32hCai192yRdrNHTv0a+s=",
|
||||||
|
"owner": "GNOME",
|
||||||
|
"repo": "gnome-shell",
|
||||||
|
"rev": "ef02db02bf0ff342734d525b5767814770d85b49",
|
||||||
|
"type": "gitlab"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"host": "gitlab.gnome.org",
|
||||||
|
"owner": "GNOME",
|
||||||
|
"ref": "gnome-49",
|
||||||
|
"repo": "gnome-shell",
|
||||||
|
"type": "gitlab"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"home-manager": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": "nixpkgs_2"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1770654520,
|
||||||
|
"narHash": "sha256-mg5WZMIPGsFu9MxSrUcuJUPMbfMsF77el5yb/7rc10k=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"rev": "6c4fdbe1ad198fac36c320fd45c5957324a80b8e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"hytale-launcher": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": "nixpkgs_3"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1770408363,
|
||||||
|
"narHash": "sha256-ocMI5t0EBxao7dRRnQi7Aa9jpBvtSZmOpPbXx8fbOjw=",
|
||||||
|
"owner": "JPyke3",
|
||||||
|
"repo": "hytale-launcher-nix",
|
||||||
|
"rev": "89db7a709e20525f145ea8ba729f32f8c6b43ac6",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "JPyke3",
|
||||||
|
"repo": "hytale-launcher-nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nix-citizen": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-parts": "flake-parts",
|
||||||
|
"nix-gaming": [
|
||||||
|
"nix-gaming"
|
||||||
|
],
|
||||||
|
"nix-github-actions": "nix-github-actions",
|
||||||
|
"nixpkgs": "nixpkgs_4",
|
||||||
|
"systems": "systems",
|
||||||
|
"treefmt-nix": "treefmt-nix"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1770673830,
|
||||||
|
"narHash": "sha256-m/4WPh6komkPfizenqHmEVZBzn/CpL+WAD4B7axDjqs=",
|
||||||
|
"owner": "LovingMelody",
|
||||||
|
"repo": "nix-citizen",
|
||||||
|
"rev": "8a7401f3ff547d4ee1a54e893a5e52d4c18cc9ff",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "LovingMelody",
|
||||||
|
"repo": "nix-citizen",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nix-gaming": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-parts": "flake-parts_2",
|
||||||
|
"nixpkgs": "nixpkgs_5"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1770691919,
|
||||||
|
"narHash": "sha256-e3G2ebDGaMfNCeRRSFQivSC+iWktI7a37AEzZ9I+JZA=",
|
||||||
|
"owner": "fufexan",
|
||||||
|
"repo": "nix-gaming",
|
||||||
|
"rev": "6cc488d4779f9dd15dd4831e97b15d2432ae761b",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "fufexan",
|
||||||
|
"repo": "nix-gaming",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nix-github-actions": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nix-citizen",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1737420293,
|
||||||
|
"narHash": "sha256-F1G5ifvqTpJq7fdkT34e/Jy9VCyzd5XfJ9TO8fHhJWE=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nix-github-actions",
|
||||||
|
"rev": "f4158fa080ef4503c8f4c820967d946c2af31ec9",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nix-github-actions",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixos-cosmic": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-compat": "flake-compat",
|
||||||
|
"nixpkgs": "nixpkgs_6",
|
||||||
|
"nixpkgs-stable": "nixpkgs-stable",
|
||||||
|
"rust-overlay": "rust-overlay"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1751591814,
|
||||||
|
"narHash": "sha256-A4lgvuj4v+Pr8MniXz1FBG0DXOygi8tTECR+j53FMhM=",
|
||||||
|
"owner": "lilyinstarlight",
|
||||||
|
"repo": "nixos-cosmic",
|
||||||
|
"rev": "fef2d0c78c4e4d6c600a88795af193131ff51bdc",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "lilyinstarlight",
|
||||||
|
"repo": "nixos-cosmic",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1748162331,
|
||||||
|
"narHash": "sha256-rqc2RKYTxP3tbjA+PB3VMRQNnjesrT0pEofXQTrMsS8=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "7c43f080a7f28b2774f3b3f43234ca11661bf334",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"id": "nixpkgs",
|
||||||
|
"ref": "nixos-25.05",
|
||||||
|
"type": "indirect"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs-lib": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1769909678,
|
||||||
|
"narHash": "sha256-cBEymOf4/o3FD5AZnzC3J9hLbiZ+QDT/KDuyHXVJOpM=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nixpkgs.lib",
|
||||||
|
"rev": "72716169fe93074c333e8d0173151350670b824c",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nixpkgs.lib",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs-stable": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1751048012,
|
||||||
|
"narHash": "sha256-MYbotu4UjWpTsq01wglhN5xDRfZYLFtNk7SBY0BcjkU=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "a684c58d46ebbede49f280b653b9e56100aa3877",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-24.11",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1770197578,
|
||||||
|
"narHash": "sha256-AYqlWrX09+HvGs8zM6ebZ1pwUqjkfpnv8mewYwAo+iM=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "00c21e4c93d963c50d4c0c89bfa84ed6e0694df2",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_3": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1770197578,
|
||||||
|
"narHash": "sha256-AYqlWrX09+HvGs8zM6ebZ1pwUqjkfpnv8mewYwAo+iM=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "00c21e4c93d963c50d4c0c89bfa84ed6e0694df2",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_4": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1770562336,
|
||||||
|
"narHash": "sha256-ub1gpAONMFsT/GU2hV6ZWJjur8rJ6kKxdm9IlCT0j84=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "d6c71932130818840fc8fe9509cf50be8c64634f",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_5": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1770537093,
|
||||||
|
"narHash": "sha256-pF1quXG5wsgtyuPOHcLfYg/ft/QMr8NnX0i6tW2187s=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "fef9403a3e4d31b0a23f0bacebbec52c248fbb51",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixpkgs-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_6": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1751011381,
|
||||||
|
"narHash": "sha256-krGXKxvkBhnrSC/kGBmg5MyupUUT5R6IBCLEzx9jhMM=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "30e2e2857ba47844aa71991daa6ed1fc678bcbb7",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_7": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1770562336,
|
||||||
|
"narHash": "sha256-ub1gpAONMFsT/GU2hV6ZWJjur8rJ6kKxdm9IlCT0j84=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "d6c71932130818840fc8fe9509cf50be8c64634f",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_8": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1682134069,
|
||||||
|
"narHash": "sha256-TnI/ZXSmRxQDt2sjRYK/8j8iha4B4zP2cnQCZZ3vp7k=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "fd901ef4bf93499374c5af385b2943f5801c0833",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"id": "nixpkgs",
|
||||||
|
"type": "indirect"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nur": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-parts": [
|
||||||
|
"stylix",
|
||||||
|
"flake-parts"
|
||||||
|
],
|
||||||
|
"nixpkgs": [
|
||||||
|
"stylix",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1767810917,
|
||||||
|
"narHash": "sha256-ZKqhk772+v/bujjhla9VABwcvz+hB2IaRyeLT6CFnT0=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "NUR",
|
||||||
|
"rev": "dead29c804adc928d3a69dfe7f9f12d0eec1f1a4",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "NUR",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"inputs": {
|
||||||
|
"copyparty": "copyparty",
|
||||||
|
"flatpaks": "flatpaks",
|
||||||
|
"home-manager": "home-manager",
|
||||||
|
"hytale-launcher": "hytale-launcher",
|
||||||
|
"nix-citizen": "nix-citizen",
|
||||||
|
"nix-gaming": "nix-gaming",
|
||||||
|
"nixos-cosmic": "nixos-cosmic",
|
||||||
|
"nixpkgs": "nixpkgs_7",
|
||||||
|
"stylix": "stylix",
|
||||||
|
"vscode-server": "vscode-server"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"rust-overlay": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixos-cosmic",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1751251399,
|
||||||
|
"narHash": "sha256-y+viCuy/eKKpkX1K2gDvXIJI/yzvy6zA3HObapz9XZ0=",
|
||||||
|
"owner": "oxalica",
|
||||||
|
"repo": "rust-overlay",
|
||||||
|
"rev": "b22d5ee8c60ed1291521f2dde48784edd6bf695b",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "oxalica",
|
||||||
|
"repo": "rust-overlay",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"stylix": {
|
||||||
|
"inputs": {
|
||||||
|
"base16": "base16",
|
||||||
|
"base16-fish": "base16-fish",
|
||||||
|
"base16-helix": "base16-helix",
|
||||||
|
"base16-vim": "base16-vim",
|
||||||
|
"firefox-gnome-theme": "firefox-gnome-theme",
|
||||||
|
"flake-parts": "flake-parts_3",
|
||||||
|
"gnome-shell": "gnome-shell",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"nur": "nur",
|
||||||
|
"systems": "systems_2",
|
||||||
|
"tinted-foot": "tinted-foot",
|
||||||
|
"tinted-kitty": "tinted-kitty",
|
||||||
|
"tinted-schemes": "tinted-schemes",
|
||||||
|
"tinted-tmux": "tinted-tmux",
|
||||||
|
"tinted-zed": "tinted-zed"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1770587906,
|
||||||
|
"narHash": "sha256-N9ZTG3ia7l4iQO+9JlOj+sX4yu6gl7a3aozrlhSIJwQ=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "stylix",
|
||||||
|
"rev": "72e6483a88d51471a6c55e1d43e7ed2bc47a76a4",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "stylix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"systems": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"systems_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"systems_3": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tinted-foot": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1726913040,
|
||||||
|
"narHash": "sha256-+eDZPkw7efMNUf3/Pv0EmsidqdwNJ1TaOum6k7lngDQ=",
|
||||||
|
"owner": "tinted-theming",
|
||||||
|
"repo": "tinted-foot",
|
||||||
|
"rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "tinted-theming",
|
||||||
|
"repo": "tinted-foot",
|
||||||
|
"rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tinted-kitty": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1735730497,
|
||||||
|
"narHash": "sha256-4KtB+FiUzIeK/4aHCKce3V9HwRvYaxX+F1edUrfgzb8=",
|
||||||
|
"owner": "tinted-theming",
|
||||||
|
"repo": "tinted-kitty",
|
||||||
|
"rev": "de6f888497f2c6b2279361bfc790f164bfd0f3fa",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "tinted-theming",
|
||||||
|
"repo": "tinted-kitty",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tinted-schemes": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1767710407,
|
||||||
|
"narHash": "sha256-+W1EB79Jl0/gm4JqmO0Nuc5C7hRdp4vfsV/VdzI+des=",
|
||||||
|
"owner": "tinted-theming",
|
||||||
|
"repo": "schemes",
|
||||||
|
"rev": "2800e2b8ac90f678d7e4acebe4fa253f602e05b2",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "tinted-theming",
|
||||||
|
"repo": "schemes",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tinted-tmux": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1767489635,
|
||||||
|
"narHash": "sha256-e6nnFnWXKBCJjCv4QG4bbcouJ6y3yeT70V9MofL32lU=",
|
||||||
|
"owner": "tinted-theming",
|
||||||
|
"repo": "tinted-tmux",
|
||||||
|
"rev": "3c32729ccae99be44fe8a125d20be06f8d7d8184",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "tinted-theming",
|
||||||
|
"repo": "tinted-tmux",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"tinted-zed": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1767488740,
|
||||||
|
"narHash": "sha256-wVOj0qyil8m+ouSsVZcNjl5ZR+1GdOOAooAatQXHbuU=",
|
||||||
|
"owner": "tinted-theming",
|
||||||
|
"repo": "base16-zed",
|
||||||
|
"rev": "11abb0b282ad3786a2aae088d3a01c60916f2e40",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "tinted-theming",
|
||||||
|
"repo": "base16-zed",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"treefmt-nix": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nix-citizen",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1770228511,
|
||||||
|
"narHash": "sha256-wQ6NJSuFqAEmIg2VMnLdCnUc0b7vslUohqqGGD+Fyxk=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "treefmt-nix",
|
||||||
|
"rev": "337a4fe074be1042a35086f15481d763b8ddc0e7",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "treefmt-nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"vscode-server": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils_2",
|
||||||
|
"nixpkgs": "nixpkgs_8"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1770124655,
|
||||||
|
"narHash": "sha256-yHmd2B13EtBUPLJ+x0EaBwNkQr9LTne1arLVxT6hSnY=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nixos-vscode-server",
|
||||||
|
"rev": "92ce71c3ba5a94f854e02d57b14af4997ab54ef0",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nixos-vscode-server",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "root",
|
||||||
|
"version": 7
|
||||||
|
}
|
||||||
90
nix/flake.nix
Normal file
90
nix/flake.nix
Normal file
@@ -0,0 +1,90 @@
|
|||||||
|
{
|
||||||
|
inputs = {
|
||||||
|
# nixpkgs.follows = "nixos-cosmic/nixpkgs";
|
||||||
|
|
||||||
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||||
|
|
||||||
|
flatpaks.url = "github:gmodena/nix-flatpak/?ref=latest";
|
||||||
|
|
||||||
|
nixos-cosmic.url = "github:lilyinstarlight/nixos-cosmic";
|
||||||
|
|
||||||
|
hytale-launcher.url = "github:JPyke3/hytale-launcher-nix";
|
||||||
|
|
||||||
|
stylix = {
|
||||||
|
url = "github:nix-community/stylix";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
|
vscode-server.url = "github:nix-community/nixos-vscode-server";
|
||||||
|
|
||||||
|
home-manager.url = "github:nix-community/home-manager";
|
||||||
|
|
||||||
|
nix-citizen.url = "github:LovingMelody/nix-citizen";
|
||||||
|
|
||||||
|
nix-gaming.url = "github:fufexan/nix-gaming";
|
||||||
|
nix-citizen.inputs.nix-gaming.follows = "nix-gaming";
|
||||||
|
|
||||||
|
copyparty.url = "github:9001/copyparty";
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs = inputs@{ self, nixpkgs, stylix, home-manager, flatpaks, hytale-launcher, vscode-server, copyparty, nix-citizen, ... }:
|
||||||
|
let
|
||||||
|
deviceType = import ./device.nix;
|
||||||
|
system = "x86_64-linux";
|
||||||
|
in
|
||||||
|
{
|
||||||
|
nixosConfigurations = {
|
||||||
|
nix = nixpkgs.lib.nixosSystem {
|
||||||
|
inherit system;
|
||||||
|
|
||||||
|
specialArgs = { inherit inputs; inherit (deviceType) device; };
|
||||||
|
|
||||||
|
modules = [
|
||||||
|
{
|
||||||
|
nix.settings = {
|
||||||
|
substituters = [ "https://cosmic.cachix.org/" ];
|
||||||
|
trusted-public-keys = [ "cosmic.cachix.org-1:Dya9IyXD4xdBehWjrkPv6rtxpmMdRel02smYzA85dPE=" ];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
nix-citizen.nixosModules.default
|
||||||
|
|
||||||
|
flatpaks.nixosModules.nix-flatpak
|
||||||
|
|
||||||
|
./main.nix
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
box = nixpkgs.lib.nixosSystem {
|
||||||
|
inherit system;
|
||||||
|
|
||||||
|
specialArgs = { inherit inputs; inherit (deviceType) device; };
|
||||||
|
|
||||||
|
modules = [
|
||||||
|
./main.nix
|
||||||
|
|
||||||
|
vscode-server.nixosModules.default
|
||||||
|
|
||||||
|
copyparty.nixosModules.default
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
homeConfigurations = {
|
||||||
|
bug = home-manager.lib.homeManagerConfiguration {
|
||||||
|
pkgs = nixpkgs.legacyPackages.x86_64-linux;
|
||||||
|
|
||||||
|
extraSpecialArgs = {
|
||||||
|
inherit inputs;
|
||||||
|
inherit (deviceType) device;
|
||||||
|
};
|
||||||
|
|
||||||
|
modules = [
|
||||||
|
stylix.homeModules.stylix
|
||||||
|
|
||||||
|
./home.nix
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
42
nix/home.nix
Normal file
42
nix/home.nix
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
{inputs, config, pkgs, device, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./modules/syncthing.nix
|
||||||
|
] ++ (if device == "server" then [
|
||||||
|
|
||||||
|
] else [
|
||||||
|
./modules/stylix.nix
|
||||||
|
./modules/beets.nix
|
||||||
|
|
||||||
|
#./modules/firefox.nix
|
||||||
|
]);
|
||||||
|
|
||||||
|
home = {
|
||||||
|
username = "bug";
|
||||||
|
homeDirectory = "/home/bug";
|
||||||
|
|
||||||
|
stateVersion = "25.11";
|
||||||
|
|
||||||
|
packages = with pkgs; [
|
||||||
|
|
||||||
|
] ++ (if device == "server" then [
|
||||||
|
gh
|
||||||
|
luajit
|
||||||
|
nodejs
|
||||||
|
node2nix
|
||||||
|
cloudflared
|
||||||
|
] else []);
|
||||||
|
|
||||||
|
file = {};
|
||||||
|
|
||||||
|
sessionVariables = {
|
||||||
|
EDITOR = "micro";
|
||||||
|
MICRO_TRUECOLOR = 1;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
|
||||||
|
#programs.home-manager.enable = true;
|
||||||
|
}
|
||||||
119
nix/main.nix
Normal file
119
nix/main.nix
Normal file
@@ -0,0 +1,119 @@
|
|||||||
|
{ lib, config, inputs, pkgs, options, device, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
/etc/nixos/hardware-configuration.nix
|
||||||
|
|
||||||
|
./modules/users.nix
|
||||||
|
./modules/boot.nix
|
||||||
|
./modules/network.nix
|
||||||
|
./modules/locale.nix
|
||||||
|
./modules/security.nix
|
||||||
|
] ++ (if device == "server" then [
|
||||||
|
./modules/mailserver.nix
|
||||||
|
./modules/vscode-server.nix
|
||||||
|
./modules/copyparty.nix
|
||||||
|
./modules/searxng.nix
|
||||||
|
./modules/cloudflared.nix
|
||||||
|
./modules/invidious.nix
|
||||||
|
./modules/glances.nix
|
||||||
|
./modules/redlib.nix
|
||||||
|
|
||||||
|
({ pkgs, ... }: {
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
nh comma nix-index home-manager micro wget git fastfetch
|
||||||
|
];
|
||||||
|
})
|
||||||
|
] else [
|
||||||
|
./modules/packages.nix
|
||||||
|
./modules/cosmic.nix
|
||||||
|
./modules/graphics.nix
|
||||||
|
./modules/audio.nix
|
||||||
|
./modules/swap.nix
|
||||||
|
./modules/virtualisation.nix
|
||||||
|
./modules/mpd.nix
|
||||||
|
./modules/sshfs.nix
|
||||||
|
|
||||||
|
#./modules/firefox.nix
|
||||||
|
]) ++ (if device == "laptop" then [
|
||||||
|
|
||||||
|
] else []) ++ (if device == "desktop" then [
|
||||||
|
|
||||||
|
] else []);
|
||||||
|
|
||||||
|
system = {
|
||||||
|
stateVersion = "25.11";
|
||||||
|
|
||||||
|
autoUpgrade = {
|
||||||
|
enable = true;
|
||||||
|
allowReboot = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
nix = {
|
||||||
|
optimise.automatic = true;
|
||||||
|
settings.experimental-features = [ "nix-command" "flakes" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
nixpkgs = {
|
||||||
|
config = {
|
||||||
|
allowUnfree = true;
|
||||||
|
|
||||||
|
cudaSupport = (device == "desktop");
|
||||||
|
nvidia.acceptLicense = (device == "desktop");
|
||||||
|
};
|
||||||
|
|
||||||
|
overlays = [
|
||||||
|
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.sessionVariables.NIXPKGS_ALLOW_UNFREE = 1;
|
||||||
|
|
||||||
|
systemd = {
|
||||||
|
user.extraConfig = ''
|
||||||
|
DefaultEnvironment="PATH=/run/current-system/sw/bin"
|
||||||
|
'';
|
||||||
|
|
||||||
|
services.monitord.wantedBy = [ "multi-user.target" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
services.fstrim.enable = true;
|
||||||
|
|
||||||
|
programs = {
|
||||||
|
bash.shellAliases = {
|
||||||
|
fetch = "fastfetch --file ~/nix/nix.ans";
|
||||||
|
|
||||||
|
rebuild = "nh os switch ~/nix"; #"sudo nixos-rebuild switch --impure"; # home-manager switch --impure
|
||||||
|
|
||||||
|
#pissh = "ssh -t $(avahi-resolve-host-name -4 pi.home | awk '{print $2}')";
|
||||||
|
#pi = "pissh \"cd $(pwd) && bash\"";
|
||||||
|
#pi = "ssh pi.bug.tools";
|
||||||
|
box = "ssh box.bug.tools";
|
||||||
|
|
||||||
|
unbox = "sh -c 'ssh -N -L \"$1\":0.0.0.0:\"$1\" box.bug.tools &' --";
|
||||||
|
|
||||||
|
rebox = "sh -c 'fuser -k \"$1\"/tcp' --";
|
||||||
|
|
||||||
|
dock = "sh -c 'ssh -N -D \"$1\" box.bug.tools &' --";
|
||||||
|
|
||||||
|
pico = "ssh pico.sh";
|
||||||
|
|
||||||
|
# tuns name port
|
||||||
|
tuns = "bash -c '\''if [ \"$#\" -ne 2 ]; then echo \"Usage: tun name port\"; exit 1; fi;
|
||||||
|
if [[ \"$1\" =~ ^[0-9]+$ ]]; then port=\"$1\"; name=\"$2\";
|
||||||
|
elif [[ \"$2\" =~ ^[0-9]+$ ]]; then port=\"$2\"; name=\"$1\";
|
||||||
|
else echo \"Error: One argument must be a number (port)\"; exit 1; fi;
|
||||||
|
ssh -R \"$\{name}:80:localhost:$\{port}\" tuns.sh'\'' _";
|
||||||
|
|
||||||
|
# pgs name directory
|
||||||
|
pgs = "bash -c '\''if [ \"$#\" -ne 2 ]; then echo \"Usage: pgs NAME DIRECTORY\"; exit 1; fi; rsync -rv \"$2\" pgs.sh:/\"$1\"'\'' _";
|
||||||
|
|
||||||
|
bambu = "env -u WAYLAND_DISPLAY XDG_SESSION_TYPE=x11 WEBKIT_FORCE_COMPOSITING_MODE=1 WEBKIT_DISABLE_COMPOSITING_MODE=1 GBM_BACKEND=dri bambu-studio";
|
||||||
|
|
||||||
|
scale = "env GDK_BACKEND=x11 GDK_SCALE=1 GDK_DPI_SCALE=1";
|
||||||
|
|
||||||
|
hytale = "env -u WAYLAND_DISPLAY -u EGL_PLATFORM -u ELECTRON_ENABLE_WAYLAND DISPLAY=:0 XDG_SESSION_TYPE=x11 __GLX_VENDOR_LIBRARY_NAME=nvidia LD_LIBRARY_PATH=/run/opengl-driver/lib hytale-launcher";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
24
nix/modules/audio.nix
Normal file
24
nix/modules/audio.nix
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
{ config, pkgs, device, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
security.rtkit.enable = true;
|
||||||
|
|
||||||
|
services = {
|
||||||
|
pulseaudio.enable = false;
|
||||||
|
|
||||||
|
pipewire = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
wireplumber.enable = true;
|
||||||
|
|
||||||
|
alsa.enable = true;
|
||||||
|
alsa.support32Bit = true;
|
||||||
|
|
||||||
|
pulse.enable = true;
|
||||||
|
|
||||||
|
lowLatency.enable = false;
|
||||||
|
|
||||||
|
jack.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
52
nix/modules/beets.nix
Normal file
52
nix/modules/beets.nix
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
home = {
|
||||||
|
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
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
||||||
23
nix/modules/boot.nix
Normal file
23
nix/modules/boot.nix
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
{ config, pkgs, device, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
boot = {
|
||||||
|
kernelModules = if (device == "desktop") then ["nvidia" "nvidia_modeset" "nvidia_uvm" "nvidia_drm" "uinput"] else [];
|
||||||
|
kernelParams = if (device == "desktop") then ["nvidia-drm.modeset=1" "nvidia_drm.fbdev=1"] else [];
|
||||||
|
|
||||||
|
kernelPackages = pkgs.linuxPackages_zen;
|
||||||
|
|
||||||
|
initrd.checkJournalingFS = false;
|
||||||
|
|
||||||
|
loader = {
|
||||||
|
grub.splashImage = null;
|
||||||
|
|
||||||
|
systemd-boot = {
|
||||||
|
enable = true;
|
||||||
|
configurationLimit = 25;
|
||||||
|
};
|
||||||
|
|
||||||
|
efi.canTouchEfiVariables = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
28
nix/modules/cloudflared.nix
Normal file
28
nix/modules/cloudflared.nix
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
{ config, 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";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
48
nix/modules/copyparty.nix
Normal file
48
nix/modules/copyparty.nix
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
{ config, pkgs, inputs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
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";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
groups = {
|
||||||
|
g1 = [ "bug" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
volumes = {
|
||||||
|
"/" = {
|
||||||
|
path = "/srv/copyparty";
|
||||||
|
|
||||||
|
access = {
|
||||||
|
r = "*";
|
||||||
|
rw = [ "bug" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
flags = {
|
||||||
|
fk = 4;
|
||||||
|
scan = 60;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
openFilesLimit = 8192;
|
||||||
|
};
|
||||||
|
}
|
||||||
62
nix/modules/cosmic.nix
Normal file
62
nix/modules/cosmic.nix
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
{ config, pkgs, device, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
services = {
|
||||||
|
greetd.enable = true;
|
||||||
|
|
||||||
|
system76-scheduler.enable = true;
|
||||||
|
|
||||||
|
displayManager = {
|
||||||
|
cosmic-greeter.enable = true;
|
||||||
|
|
||||||
|
autoLogin = {
|
||||||
|
enable = (device == "desktop");
|
||||||
|
user = "bug";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
desktopManager.cosmic.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
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";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
90
nix/modules/firefox.nix
Normal file
90
nix/modules/firefox.nix
Normal file
@@ -0,0 +1,90 @@
|
|||||||
|
{ config, pkgs, device, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.firefox = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.librewolf;
|
||||||
|
|
||||||
|
profiles = {
|
||||||
|
"bug" = {
|
||||||
|
id = 0;
|
||||||
|
name = "bug";
|
||||||
|
isDefault = true;
|
||||||
|
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
policies = {
|
||||||
|
DisableTelemetry = true;
|
||||||
|
DisableFirefoxStudies = true;
|
||||||
|
|
||||||
|
Preferences = {
|
||||||
|
"cookiebanners.service.mode" = 2;
|
||||||
|
"cookiebanners.service.mode.privateBrowsing" = 2;
|
||||||
|
"network.cookie.lifetimePolicy" = 0;
|
||||||
|
"privacy.clearonShutdown.cookies" = false;
|
||||||
|
"privacy.claerOnShutdown.history" = false;
|
||||||
|
"privacy.donottrackheader.enabled" = true;
|
||||||
|
"privacy.fingerprintingProtection.enabled" = true;
|
||||||
|
"privacy.resistFingerprinting" = false;
|
||||||
|
"privacy.trackingprotection.enabled" = true;
|
||||||
|
"privacy.trackingprotection.socialtracking.enabled" = true;
|
||||||
|
"privacy.trackingprotection.fingerprinting.enabled" = true;
|
||||||
|
"privacy.trackingprotection.emailtracking.enabled" = true;
|
||||||
|
"webgl.disabled" = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
ExtensionSettings = {
|
||||||
|
# catppuccin no borders https://addons.mozilla.org/en-US/firefox/addon/catppuccin-mocha-no-borders/
|
||||||
|
"catppuccin-mocha-no-borders@skyrpex" = {
|
||||||
|
installation_mode = "force_installed";
|
||||||
|
install_url = "https://addons.mozilla.org/firefox/downloads/latest/catppuccin-mocha-no-borders/latest.xpi";
|
||||||
|
};
|
||||||
|
|
||||||
|
# DeArrow
|
||||||
|
"dearrow@jetpack" = {
|
||||||
|
installation_mode = "force_installed";
|
||||||
|
install_url = "https://addons.mozilla.org/firefox/downloads/latest/dearrow-jetpack/latest.xpi";
|
||||||
|
};
|
||||||
|
|
||||||
|
# Return Youtube Dislike
|
||||||
|
"return-youtube-dislike@0.4.11" = {
|
||||||
|
installation_mode = "force_installed";
|
||||||
|
install_url = "https://addons.mozilla.org/firefox/downloads/latest/return-youtube-dislike/latest.xpi";
|
||||||
|
};
|
||||||
|
|
||||||
|
# SponsorBlock for YouTube
|
||||||
|
"sponsorblock@sponsorblock.com" = {
|
||||||
|
installation_mode = "force_installed";
|
||||||
|
install_url = "https://addons.mozilla.org/firefox/downloads/latest/sponsorblock-for-youtube/latest.xpi";
|
||||||
|
};
|
||||||
|
|
||||||
|
# Stylus
|
||||||
|
"stylus@stylus" = {
|
||||||
|
installation_mode = "force_installed";
|
||||||
|
install_url = "https://addons.mozilla.org/firefox/downloads/latest/stylus/latest.xpi";
|
||||||
|
};
|
||||||
|
|
||||||
|
# Tampermonkey
|
||||||
|
"tampermonkey.net" = {
|
||||||
|
installation_mode = "force_installed";
|
||||||
|
install_url = "https://addons.mozilla.org/firefox/downloads/latest/tampermonkey/latest.xpi";
|
||||||
|
};
|
||||||
|
|
||||||
|
# uBlock Origin
|
||||||
|
"ublockorigin@raymondhill.net" = {
|
||||||
|
installation_mode = "force_installed";
|
||||||
|
install_url = "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi";
|
||||||
|
};
|
||||||
|
|
||||||
|
# BTRoblox
|
||||||
|
"btroblox@btroblox" = {
|
||||||
|
installation_mode = "force_installed";
|
||||||
|
install_url = "https://addons.mozilla.org/firefox/downloads/latest/btroblox/latest.xpi";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
*/
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
44
nix/modules/glances.nix
Normal file
44
nix/modules/glances.nix
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
{ config, pkgs, lib, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
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;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
88
nix/modules/graphics.nix
Normal file
88
nix/modules/graphics.nix
Normal file
@@ -0,0 +1,88 @@
|
|||||||
|
{ config, pkgs, device, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
services = {
|
||||||
|
xserver = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
videoDrivers = if (device == "desktop") then ["nvidia"] else ["amdgpu"];
|
||||||
|
excludePackages = [pkgs.xterm];
|
||||||
|
|
||||||
|
xkb = {
|
||||||
|
layout = "us";
|
||||||
|
variant = "";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
hardware = {
|
||||||
|
graphics = {
|
||||||
|
enable = true;
|
||||||
|
enable32Bit = true;
|
||||||
|
|
||||||
|
extraPackages = with pkgs; [
|
||||||
|
libva-vdpau-driver
|
||||||
|
libvdpau
|
||||||
|
libvdpau-va-gl
|
||||||
|
vdpauinfo
|
||||||
|
libva
|
||||||
|
libva-utils
|
||||||
|
libglvnd
|
||||||
|
mesa
|
||||||
|
] ++ (if (device == "desktop") then [
|
||||||
|
nvidia-vaapi-driver
|
||||||
|
] else [
|
||||||
|
|
||||||
|
]);
|
||||||
|
};
|
||||||
|
|
||||||
|
nvidia = if (device == "desktop") then {
|
||||||
|
modesetting.enable = true;
|
||||||
|
|
||||||
|
powerManagement.enable = false;
|
||||||
|
powerManagement.finegrained = false;
|
||||||
|
|
||||||
|
open = false;
|
||||||
|
|
||||||
|
nvidiaSettings = true;
|
||||||
|
|
||||||
|
package = config.boot.kernelPackages.nvidiaPackages.beta;
|
||||||
|
|
||||||
|
nvidiaPersistenced = true;
|
||||||
|
} else {};
|
||||||
|
|
||||||
|
enableRedistributableFirmware = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
environment = {
|
||||||
|
variables = {
|
||||||
|
|
||||||
|
} // (if (device == "desktop") then {
|
||||||
|
WGPU_BACKEND = "gl";
|
||||||
|
GBM_BACKEND = "nvidia-drm";
|
||||||
|
LIBVA_DRIVER_NAME = "nvidia";
|
||||||
|
__GLX_VENDOR_LIBRARY_NAME = "nvidia";
|
||||||
|
EGL_PLATFORM = "wayland";
|
||||||
|
} else {
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
sessionVariables = {
|
||||||
|
WEBKIT_DISABLE_COMPOSITING_MODE = "1";
|
||||||
|
} // (if (device == "desktop") then {
|
||||||
|
WGPU_BACKEND = "gl";
|
||||||
|
GBM_BACKEND = "nvidia-drm";
|
||||||
|
LIBVA_DRIVER_NAME = "nvidia";
|
||||||
|
__GLX_VENDOR_LIBRARY_NAME = "nvidia";
|
||||||
|
EGL_PLATFORM = "wayland";
|
||||||
|
} else {
|
||||||
|
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
services.logind.settings.Login = {
|
||||||
|
HandleLidSwitch = "ignore";
|
||||||
|
HandleLidSwitchDocked = "ignore";
|
||||||
|
};
|
||||||
|
}
|
||||||
56
nix/modules/invidious.nix
Normal file
56
nix/modules/invidious.nix
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
{ config, pkgs, lib, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
companionPort = 8282;
|
||||||
|
companionPath = "/companion";
|
||||||
|
companionKey = "kKg3RKeZjE7frmuw";
|
||||||
|
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 = false;
|
||||||
|
external_port = 3030;
|
||||||
|
|
||||||
|
invidious_companion = [
|
||||||
|
{ private_url = "http://127.0.0.1:${toString companionPort}${companionPath}"; }
|
||||||
|
];
|
||||||
|
|
||||||
|
invidious_companion_key = companionKey;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.services.invidious = let dep = "podman-invidious-companion.service"; in {
|
||||||
|
wants = [ dep ];
|
||||||
|
after = [ dep ];
|
||||||
|
requires = [ dep ];
|
||||||
|
};
|
||||||
|
}
|
||||||
21
nix/modules/locale.nix
Normal file
21
nix/modules/locale.nix
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
{ config, pkgs, device, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
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";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
45
nix/modules/mailserver.nix
Normal file
45
nix/modules/mailserver.nix
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
{ config, pkgs, device, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
(builtins.fetchTarball {
|
||||||
|
url = "https://gitlab.com/simple-nixos-mailserver/nixos-mailserver/-/archive/master.tar.gz";
|
||||||
|
|
||||||
|
sha256 = "0xlhl8zhcz5c6hvmpkfw9ay2lfnk6nhax8pphvbv3vzxf1p9dhw9";
|
||||||
|
})
|
||||||
|
];
|
||||||
|
|
||||||
|
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"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
"pare@bug.tools" = {
|
||||||
|
hashedPasswordFile = "/home/bug/mailserver/pare.passwd";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
37
nix/modules/mpd.nix
Normal file
37
nix/modules/mpd.nix
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
{ config, pkgs, device, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
services = {
|
||||||
|
mpd = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
music_directory = (if (device == "desktop") then "/home/bug/Music" else "/run/media/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";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
25
nix/modules/network.nix
Normal file
25
nix/modules/network.nix
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
{ config, pkgs, device, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
networking = {
|
||||||
|
hostName = if (device == "server") then "box" else "nix";
|
||||||
|
|
||||||
|
networkmanager.enable = true;
|
||||||
|
|
||||||
|
nameservers = [ "1.1.1.1" "1.0.0.1" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
services = {
|
||||||
|
cloudflare-warp.enable = (device == "laptop");
|
||||||
|
|
||||||
|
openssh = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
PrintMotd = true;
|
||||||
|
X11Forwarding = true;
|
||||||
|
AllowTcpForwarding = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
360
nix/modules/packages.nix
Normal file
360
nix/modules/packages.nix
Normal file
@@ -0,0 +1,360 @@
|
|||||||
|
{ lib, config, inputs, pkgs, options, device, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
nix-gaming = import (builtins.fetchTarball "https://github.com/fufexan/nix-gaming/archive/master.tar.gz");
|
||||||
|
|
||||||
|
nix-alien = import (
|
||||||
|
builtins.fetchTarball "https://github.com/thiagokokada/nix-alien/tarball/master"
|
||||||
|
) {};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
nix-gaming.nixosModules.platformOptimizations
|
||||||
|
nix-gaming.nixosModules.pipewireLowLatency
|
||||||
|
];
|
||||||
|
|
||||||
|
nixpkgs = {
|
||||||
|
config = {
|
||||||
|
allowUnfree = true;
|
||||||
|
|
||||||
|
cudaSupport = (device == "desktop");
|
||||||
|
nvidia.acceptLicense = (device == "desktop");
|
||||||
|
};
|
||||||
|
|
||||||
|
overlays = [
|
||||||
|
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.sessionVariables = {
|
||||||
|
BROWSER = "firefox";
|
||||||
|
NIXPKGS_ALLOW_UNFREE = 1;
|
||||||
|
};
|
||||||
|
|
||||||
|
users.users.bug.packages = with pkgs; [
|
||||||
|
vscode
|
||||||
|
|
||||||
|
(luajit.withPackages (ps: with ps; [
|
||||||
|
luasocket
|
||||||
|
bit32
|
||||||
|
]))
|
||||||
|
|
||||||
|
go
|
||||||
|
|
||||||
|
#(python3.withPackages (ps: with ps; [
|
||||||
|
#unidecode
|
||||||
|
#discordpy
|
||||||
|
#setuptools
|
||||||
|
|
||||||
|
#pip
|
||||||
|
#pynput
|
||||||
|
#python-uinput
|
||||||
|
|
||||||
|
#mido
|
||||||
|
|
||||||
|
#pyautogui
|
||||||
|
#pygobject3
|
||||||
|
#pycairo
|
||||||
|
|
||||||
|
#tkinter
|
||||||
|
|
||||||
|
#numpy
|
||||||
|
#scipy
|
||||||
|
#imageio
|
||||||
|
|
||||||
|
#evdev
|
||||||
|
#]))
|
||||||
|
|
||||||
|
nodejs
|
||||||
|
|
||||||
|
(blender.withPackages (ps: with ps; [
|
||||||
|
libGLU
|
||||||
|
gcc
|
||||||
|
zlib
|
||||||
|
libX11
|
||||||
|
fontconfig
|
||||||
|
pcre2
|
||||||
|
libXext
|
||||||
|
libxcb
|
||||||
|
glib
|
||||||
|
]))
|
||||||
|
|
||||||
|
plasticity
|
||||||
|
obsidian
|
||||||
|
vesktop
|
||||||
|
nicotine-plus
|
||||||
|
fastfetch
|
||||||
|
tree
|
||||||
|
gh
|
||||||
|
scanmem
|
||||||
|
samrewritten
|
||||||
|
impression
|
||||||
|
|
||||||
|
mission-center
|
||||||
|
|
||||||
|
authenticator
|
||||||
|
|
||||||
|
steamtinkerlaunch
|
||||||
|
|
||||||
|
obs-studio
|
||||||
|
|
||||||
|
#prismlauncher
|
||||||
|
|
||||||
|
euphonica
|
||||||
|
|
||||||
|
kooha
|
||||||
|
|
||||||
|
loupe
|
||||||
|
|
||||||
|
arduino-ide
|
||||||
|
|
||||||
|
geary
|
||||||
|
];
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
home-manager
|
||||||
|
comma # run nixpkgs without installing
|
||||||
|
nix-index
|
||||||
|
|
||||||
|
git
|
||||||
|
wget
|
||||||
|
|
||||||
|
gcc
|
||||||
|
gnumake
|
||||||
|
|
||||||
|
nmap
|
||||||
|
inetutils
|
||||||
|
|
||||||
|
nix-prefetch
|
||||||
|
nix-output-monitor
|
||||||
|
nvd # nix pkg diff
|
||||||
|
|
||||||
|
nixfmt # nix formatter
|
||||||
|
nixd # nix language server
|
||||||
|
nil # nix language server
|
||||||
|
|
||||||
|
nh # nix helper
|
||||||
|
|
||||||
|
gnome-boxes # gnome vm manager
|
||||||
|
vulkan-tools
|
||||||
|
|
||||||
|
openjdk
|
||||||
|
zlib
|
||||||
|
glfw
|
||||||
|
glew
|
||||||
|
|
||||||
|
wine64
|
||||||
|
wineWow64Packages.full
|
||||||
|
|
||||||
|
lug-helper
|
||||||
|
|
||||||
|
appimage-run
|
||||||
|
|
||||||
|
|
||||||
|
vulkan-validation-layers
|
||||||
|
vulkan-loader
|
||||||
|
|
||||||
|
pulseaudioFull
|
||||||
|
|
||||||
|
gamemode
|
||||||
|
|
||||||
|
winetricks
|
||||||
|
|
||||||
|
steam-run
|
||||||
|
|
||||||
|
firmware-updater
|
||||||
|
|
||||||
|
cosmic-applets
|
||||||
|
cosmic-edit
|
||||||
|
cosmic-ext-calculator
|
||||||
|
cosmic-ext-tweaks
|
||||||
|
cosmic-screenshot
|
||||||
|
quick-webapps
|
||||||
|
|
||||||
|
nix-alien.nix-alien
|
||||||
|
|
||||||
|
file-roller
|
||||||
|
unzip
|
||||||
|
|
||||||
|
xdg-desktop-portal-gtk
|
||||||
|
xdg-desktop-portal-cosmic
|
||||||
|
|
||||||
|
mangohud
|
||||||
|
mesa-demos
|
||||||
|
|
||||||
|
lutris
|
||||||
|
|
||||||
|
gnome-software
|
||||||
|
|
||||||
|
neovim
|
||||||
|
|
||||||
|
micro
|
||||||
|
|
||||||
|
inputs.hytale-launcher.packages.${pkgs.system}.default
|
||||||
|
|
||||||
|
baobab
|
||||||
|
|
||||||
|
psmisc
|
||||||
|
|
||||||
|
firefox-bin
|
||||||
|
] ++ (if (device == "desktop") then [
|
||||||
|
#(nix-gaming.packages.${pkgs.stdenv.hostPlatform.system}.star-citizen.override {
|
||||||
|
# tricks = [ "arial" "vcrun2019" "win10" "sound=alsa" ];
|
||||||
|
#})
|
||||||
|
|
||||||
|
inputs.nix-citizen.packages.${system}.rsi-launcher
|
||||||
|
|
||||||
|
libxshmfence
|
||||||
|
|
||||||
|
(appimage-run.override {
|
||||||
|
extraPkgs = pkgs: [ pkgs.xorg.libxshmfence pkgs.linuxPackages.nvidia_x11 ];
|
||||||
|
})
|
||||||
|
] else [
|
||||||
|
bambu-studio
|
||||||
|
]);
|
||||||
|
|
||||||
|
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 = {
|
||||||
|
rsi-launcher = {
|
||||||
|
enable = (device == "desktop");
|
||||||
|
|
||||||
|
preCommands = ''
|
||||||
|
export DISPLAY=;
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
appimage = {
|
||||||
|
enable = true;
|
||||||
|
binfmt = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
firefox = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
package = pkgs.firefox-bin;
|
||||||
|
};
|
||||||
|
|
||||||
|
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
|
||||||
|
]);
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
35
nix/modules/redlib.nix
Normal file
35
nix/modules/redlib.nix
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
services.redlib = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
address = "127.0.0.1";
|
||||||
|
port = 8975;
|
||||||
|
openFirewall = false;
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
SFW_ONLY = "off"; # ["on", "off"]
|
||||||
|
ROBOTS_DISABLE_INDEXING = "on"; # ["on", "off"]
|
||||||
|
ENABLE_RSS = "on"; # ["on", "off"]
|
||||||
|
THEME = "system"; # ["system", "light", "dark", "black", "dracula", "nord", "laserwave", "violet", "gold", "rosebox", "gruvboxdark", "gruvboxlight", "tokyoNight", "icebergDark", "doomone", "libredditBlack", "libredditDark", "libredditLight"]
|
||||||
|
FRONT_PAGE = "default"; # ["default", "popular", "all"]
|
||||||
|
LAYOUT = "card"; # ["card", "clean", "compact"]
|
||||||
|
WIDE = "on"; # ["on", "off"]
|
||||||
|
POST_SORT = "hot"; # ["hot", "new", "top", "rising", "controversial"]
|
||||||
|
COMMENT_SORT = "confidence"; # ["confidence", "top", "new", "controversial", "old"]
|
||||||
|
BLUR_SPOILER = "off"; # ["on", "off"]
|
||||||
|
SHOW_NSFW = "on"; # ["on", "off"]
|
||||||
|
BLUR_NSFW = "off"; # ["on", "off"]
|
||||||
|
USE_HLS = "on"; # ["on", "off"]
|
||||||
|
HIDE_HLS_NOTIFICATION = "off"; # ["on", "off"]
|
||||||
|
AUTOPLAY_VIDEOS = "off"; # ["on", "off"]
|
||||||
|
HIDE_AWARDS = "off"; # ["on", "off"]
|
||||||
|
DISABLE_VISIT_REDDIT_CONFIRMATION = "off"; # ["on", "off"]
|
||||||
|
HIDE_SCORE = "off"; # ["on", "off"]
|
||||||
|
HIDE_SIDEBAR_AND_SUMMARY = "off"; # ["on", "off"]
|
||||||
|
FIXED_NAVBAR = "on"; # ["on", "off"]
|
||||||
|
REMOVE_DEFAULT_FEEDS = "off"; # ["on", "off"]
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
23
nix/modules/searxng.nix
Executable file
23
nix/modules/searxng.nix
Executable file
@@ -0,0 +1,23 @@
|
|||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
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
nix/modules/searxng.yml
Normal file
2826
nix/modules/searxng.yml
Normal file
File diff suppressed because it is too large
Load Diff
12
nix/modules/security.nix
Normal file
12
nix/modules/security.nix
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
{ config, pkgs, device, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
security = {
|
||||||
|
polkit.enable = true;
|
||||||
|
|
||||||
|
sudo = {
|
||||||
|
enable = true;
|
||||||
|
wheelNeedsPassword = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
0
nix/modules/sish.nix
Normal file
0
nix/modules/sish.nix
Normal file
18
nix/modules/sshfs.nix
Normal file
18
nix/modules/sshfs.nix
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
{ config, pkgs, device, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
fileSystems."/mnt/box" = {
|
||||||
|
device = "bug@box.bug.tools:/";
|
||||||
|
fsType = "fuse.sshfs";
|
||||||
|
options = [
|
||||||
|
"identityfile=/home/bug/.ssh/id_ed25519"
|
||||||
|
"idmap=user"
|
||||||
|
"x-systemd.automount"
|
||||||
|
"allow_other"
|
||||||
|
"user"
|
||||||
|
"_netdev"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
boot.supportedFilesystems."fuse.sshfs" = true;
|
||||||
|
}
|
||||||
41
nix/modules/stylix.nix
Normal file
41
nix/modules/stylix.nix
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
{ config, pkgs, device, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
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;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
17
nix/modules/swap.nix
Normal file
17
nix/modules/swap.nix
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
{ config, pkgs, device, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
boot.kernel.sysctl = {
|
||||||
|
"fs.file-max" = 524288;
|
||||||
|
};
|
||||||
|
|
||||||
|
swapDevices = [{
|
||||||
|
device = "/var/lib/swapfile";
|
||||||
|
size = 8 * 1024;
|
||||||
|
}];
|
||||||
|
|
||||||
|
zramSwap = {
|
||||||
|
enable = true;
|
||||||
|
memoryMax = 64 * 1024 * 1024 * 1024;
|
||||||
|
};
|
||||||
|
}
|
||||||
73
nix/modules/syncthing.nix
Normal file
73
nix/modules/syncthing.nix
Normal file
@@ -0,0 +1,73 @@
|
|||||||
|
{ config, pkgs, device, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
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"];
|
||||||
|
|
||||||
|
ignorePatterns = [
|
||||||
|
"device.nix"
|
||||||
|
"hardware-configuration.nix"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
"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 = (if (device == "desktop") then "/home/bug/Music" else "/run/media/bug/Music/");
|
||||||
|
devices = ["desktop" "laptop"];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
19
nix/modules/users.nix
Normal file
19
nix/modules/users.nix
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
{ config, pkgs, device, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
users.users = {
|
||||||
|
bug = {
|
||||||
|
isNormalUser = true;
|
||||||
|
description = "bug";
|
||||||
|
extraGroups = [ "networkmanager" "wheel" "audio" "video" "libvirtd" "ydotool" "dialout" ];
|
||||||
|
};
|
||||||
|
} // (if (device == "server") then {
|
||||||
|
levi = {
|
||||||
|
isNormalUser = true;
|
||||||
|
description = "levi";
|
||||||
|
extraGroups = [];
|
||||||
|
|
||||||
|
hashedPasswordFile = "/home/bug/users/levi.passwd";
|
||||||
|
};
|
||||||
|
} else {});
|
||||||
|
}
|
||||||
9
nix/modules/virtualisation.nix
Normal file
9
nix/modules/virtualisation.nix
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
{ config, pkgs, device, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
virtualisation = {
|
||||||
|
libvirtd.enable = true;
|
||||||
|
|
||||||
|
spiceUSBRedirection.enable = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
7
nix/modules/vscode-server.nix
Normal file
7
nix/modules/vscode-server.nix
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
{ config, pkgs, device, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
services = {
|
||||||
|
vscode-server.enable = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
16
nix/nix.ans
Executable file
16
nix/nix.ans
Executable file
@@ -0,0 +1,16 @@
|
|||||||
|
[38;2;82;119;195m ◢██◣[38;2;127;183;255m ◥███◣ ◢██◣
|
||||||
|
[38;2;82;119;195m ◥███◣[38;2;127;183;255m ◥███◣◢███◤
|
||||||
|
[38;2;82;119;195m ◥███◣[38;2;127;183;255m ◥██████◤
|
||||||
|
[38;2;82;119;195m ◢████████████[48;2;127;183;255m◣[0m[38;2;127;183;255m████◤[38;2;82;119;195m ◢◣
|
||||||
|
[38;2;82;119;195m ◢██████████████[48;2;127;183;255m◣[0m[38;2;127;183;255m███◣[38;2;82;119;195m ◢██◣
|
||||||
|
[38;2;127;183;255m ◢███◤ ◥███◣[38;2;82;119;195m◢███◤
|
||||||
|
[38;2;127;183;255m ◢███◤ ◥██[48;2;82;119;195m◤[0m[38;2;82;119;195m███◤
|
||||||
|
[38;2;127;183;255m◢█████████◤ ◥[48;2;82;119;195m◤[0m[38;2;82;119;195m████████◣
|
||||||
|
[38;2;127;183;255m◥████████[48;2;82;119;195m◤[0m[38;2;82;119;195m◣ ◢█████████◤
|
||||||
|
[38;2;127;183;255m ◢███[48;2;82;119;195m◤[0m[38;2;82;119;195m██◣ ◢███◤
|
||||||
|
[38;2;127;183;255m ◢███◤[38;2;82;119;195m◥███◣ ◢███◤
|
||||||
|
[38;2;127;183;255m ◥██◤ [38;2;82;119;195m◥███[48;2;127;183;255m◣[0m[38;2;127;183;255m██████████████◤
|
||||||
|
[38;2;127;183;255m ◥◤ [38;2;82;119;195m◢████[48;2;127;183;255m◣[0m[38;2;127;183;255m████████████◤
|
||||||
|
[38;2;82;119;195m ◢██████◣[38;2;127;183;255m ◥███◣
|
||||||
|
[38;2;82;119;195m ◢███◤◥███◣[38;2;127;183;255m ◥███◣
|
||||||
|
[38;2;82;119;195m ◥██◤ ◥███◣[38;2;127;183;255m ◥██◤
|
||||||
BIN
nix/nix.png
Normal file
BIN
nix/nix.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 78 KiB |
16
resources/nix.ans
Executable file
16
resources/nix.ans
Executable file
@@ -0,0 +1,16 @@
|
|||||||
|
[38;2;82;119;195m ◢██◣[38;2;127;183;255m ◥███◣ ◢██◣
|
||||||
|
[38;2;82;119;195m ◥███◣[38;2;127;183;255m ◥███◣◢███◤
|
||||||
|
[38;2;82;119;195m ◥███◣[38;2;127;183;255m ◥██████◤
|
||||||
|
[38;2;82;119;195m ◢████████████[48;2;127;183;255m◣[0m[38;2;127;183;255m████◤[38;2;82;119;195m ◢◣
|
||||||
|
[38;2;82;119;195m ◢██████████████[48;2;127;183;255m◣[0m[38;2;127;183;255m███◣[38;2;82;119;195m ◢██◣
|
||||||
|
[38;2;127;183;255m ◢███◤ ◥███◣[38;2;82;119;195m◢███◤
|
||||||
|
[38;2;127;183;255m ◢███◤ ◥██[48;2;82;119;195m◤[0m[38;2;82;119;195m███◤
|
||||||
|
[38;2;127;183;255m◢█████████◤ ◥[48;2;82;119;195m◤[0m[38;2;82;119;195m████████◣
|
||||||
|
[38;2;127;183;255m◥████████[48;2;82;119;195m◤[0m[38;2;82;119;195m◣ ◢█████████◤
|
||||||
|
[38;2;127;183;255m ◢███[48;2;82;119;195m◤[0m[38;2;82;119;195m██◣ ◢███◤
|
||||||
|
[38;2;127;183;255m ◢███◤[38;2;82;119;195m◥███◣ ◢███◤
|
||||||
|
[38;2;127;183;255m ◥██◤ [38;2;82;119;195m◥███[48;2;127;183;255m◣[0m[38;2;127;183;255m██████████████◤
|
||||||
|
[38;2;127;183;255m ◥◤ [38;2;82;119;195m◢████[48;2;127;183;255m◣[0m[38;2;127;183;255m████████████◤
|
||||||
|
[38;2;82;119;195m ◢██████◣[38;2;127;183;255m ◥███◣
|
||||||
|
[38;2;82;119;195m ◢███◤◥███◣[38;2;127;183;255m ◥███◣
|
||||||
|
[38;2;82;119;195m ◥██◤ ◥███◣[38;2;127;183;255m ◥██◤
|
||||||
BIN
resources/nix.png
Normal file
BIN
resources/nix.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 78 KiB |
Reference in New Issue
Block a user