{ pkgs, lib, config, ... }: let lock = value: { Value = value; Status = "locked"; }; in { system.stateVersion = "24.11"; networking.hostName = "c3terminal"; time.timeZone = "Europe/Berlin"; facter.reportPath = ./facter.json; programs.vim.enable = true; programs.vim.defaultEditor = true; services = { xserver = { xkb.layout = "de"; }; }; console = { enable = true; useXkbConfig = true; }; system.autoUpgrade = { enable = true; flake = "git+https://git.hamburg.ccc.de/jopejoe1/c3terminal"; dates = "5min"; }; users.users.c3terminal = { isNormalUser = true; password = "test"; extraGroups = [ "wheel" "networkmanager" ]; openssh.authorizedKeys.keys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFZDUoC+1lNR2JTY1Q+vhXpuLmKMdVl2OMFLVbQ3cGkw jopejoe1" "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPHns90pKP8pDOKM7ziCiG7ZjO3kFvScnbq7uBlUWG5H n0th1ng" "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDA/2vtzv7k2eEm7aedvy6U+hWp9SfLsjRnyY5xraBc1 toxicity@Opeth" ]; }; home-manager = { users.c3terminal = { home = { username = config.users.users.c3terminal.name; homeDirectory = config.users.users.c3terminal.home; stateVersion = config.system.stateVersion; sessionVariables = { MOZ_ENABLE_WAYLAND = 1; }; packages = with pkgs; [ git ]; }; programs = { firefox = { enable = true; package = pkgs.firefox-esr; policies = { SupportMenu = { Title = "Config"; URL = "https://git.hamburg.ccc.de/jopejoe1/c3terminal"; }; Preferences = { "browser.ssb.enabled" = lock true; #"ui.osk.detected_physical_keyboard" = lock false; #"browser.gesture.pinch.in" = lock false; #"browser.gesture.pinch.out" = lock false; "zoom.maxPercent" = lock 100; "zoom.minPercent" = lock 100; }; }; }; }; }; }; users.users.demo = { isNormalUser = true; password = "test"; }; users.users.root = { password = "test"; shell = lib.mkForce (lib.getExe pkgs.bash); extraGroups = [ "wheel" "networkmanager" ]; openssh.authorizedKeys.keys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFZDUoC+1lNR2JTY1Q+vhXpuLmKMdVl2OMFLVbQ3cGkw jopejoe1" "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPHns90pKP8pDOKM7ziCiG7ZjO3kFvScnbq7uBlUWG5H n0th1ng" "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDA/2vtzv7k2eEm7aedvy6U+hWp9SfLsjRnyY5xraBc1 toxicity@Opeth" ]; }; boot = { loader = { grub = { enable = true; }; efi = { canTouchEfiVariables = true; }; }; }; services = { openssh = { enable = true; settings = { PermitRootLogin = "no"; }; }; }; programs.sway = { enable = true; wrapperFeatures.gtk = true; }; nix = { settings = { substituters = lib.mkForce [ "https://cache.nixos.org" "https://nix-community.cachix.org" ]; trusted-public-keys = lib.mkForce [ "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" ]; sandbox = true; require-sigs = true; max-jobs = "auto"; allowed-users = [ "*" ]; trusted-users = [ "root" ]; experimental-features = [ "nix-command" "flakes" ]; use-xdg-base-directories = true; }; package = pkgs.lix; }; disko.devices = { disk = { main = { type = "disk"; device = "/dev/disk/by-id/wwn-0x502b2a201d1c1b1a"; content = { type = "gpt"; partitions = { boot = { size = "1M"; type = "EF02"; # for grub MBR }; ESP = { size = "512M"; type = "EF00"; content = { type = "filesystem"; format = "vfat"; mountpoint = "/boot"; mountOptions = [ "umask=0077" ]; }; }; root = { size = "100%"; content = { type = "filesystem"; format = "ext4"; mountpoint = "/"; }; }; }; }; }; }; }; }