diff --git a/flake.lock b/flake.lock index 3d42a20..949900a 100644 --- a/flake.lock +++ b/flake.lock @@ -247,6 +247,22 @@ "type": "github" } }, + "mobile-nixos": { + "flake": false, + "locked": { + "lastModified": 1763065138, + "narHash": "sha256-46lJeUYH8YrfTccAoKQbO9lprq4dlo9VVLk+StPBSWM=", + "owner": "nixos", + "repo": "mobile-nixos", + "rev": "1943b7b06fcd1a2c87f4b89df58231915cc2ca44", + "type": "github" + }, + "original": { + "owner": "nixos", + "repo": "mobile-nixos", + "type": "github" + } + }, "nix-minecraft": { "inputs": { "flake-compat": "flake-compat", @@ -365,6 +381,7 @@ "root": { "inputs": { "home-manager": "home-manager", + "mobile-nixos": "mobile-nixos", "nix-minecraft": "nix-minecraft", "nixos-generators": "nixos-generators", "nixos-hardware": "nixos-hardware", diff --git a/flake.nix b/flake.nix index f83a39e..3799f40 100644 --- a/flake.nix +++ b/flake.nix @@ -14,6 +14,8 @@ nix-minecraft.inputs.nixpkgs.follows = "nixpkgs"; nixos-generators.url = "github:nix-community/nixos-generators"; nixos-generators.inputs.nixpkgs.follows = "nixpkgs"; + mobile-nixos.url = "github:nixos/mobile-nixos"; + mobile-nixos.flake = false; }; outputs = inputs: inputs.snowfall-lib.mkFlake { @@ -56,6 +58,12 @@ systems.hosts.Rubtrm.modules = with inputs; [ ]; + # Modules for Host NoMra7 + systems.hosts.NoMra7.modules = with inputs; [ + (import "${inputs.mobile-nixos}/lib/configuration.nix" { device = "oneplus-fajita"; }) + stylix.nixosModules.stylix + ]; + # Modules that get imported to every NixOS system systems.modules.nixos = with inputs; [ sops-nix.nixosModules.sops diff --git a/homes/aarch64-linux/kb@NoMra7/default.nix b/homes/aarch64-linux/kb@NoMra7/default.nix new file mode 100644 index 0000000..d5a1876 --- /dev/null +++ b/homes/aarch64-linux/kb@NoMra7/default.nix @@ -0,0 +1,59 @@ +{ config, pkgs, lib, inputs, ... }: +{ + imports = [ + #./ssh.nix + ]; + + home.username = "kb"; + home.homeDirectory = "/home/kb"; + home.packages = with pkgs; [ + # Office + logseq + # Security + gnupg + keepassxc + pass-wayland + #veracrypt + protonvpn-gui + # Media + freetube + blender + gimp + vlc + kdePackages.filelight + # Messengers + element-desktop # Matrix Client + signal-desktop + deltachat-desktop + # Development + vscodium + # Gaming + prismlauncher + gnome-sudoku + #lutris-free + # Terminal Tools + mosh + btop + fastfetch + ]; + + suites.desktop.enable = true; + suites.desktop.waybar.enable = false; + + services.syncthing.enable = true; + services.syncthing.extraOptions = [ + "--config=/home/kb/.config/syncthing" + "--data=/home/kb/sync" + ]; + + services.safeeyes.enable = false; + + services.gpg-agent.enable = true; + + programs.vim.enable = true; + programs.vim.defaultEditor = true; + + gtk.gtk2.force = true; + + home.stateVersion = "25.11"; +} diff --git a/modules/home/suites/desktop/chromium.nix b/modules/home/suites/desktop/chromium.nix index 7551cb7..ee10517 100644 --- a/modules/home/suites/desktop/chromium.nix +++ b/modules/home/suites/desktop/chromium.nix @@ -39,7 +39,7 @@ in })]) ++ (lib.lists.optionals (cfg.chromium.disableIDontCareAboutCookies == false) [(createChromiumExtension { # I still don't care about cookies id = "edibdbjcniadpccecjdfdjjppcpchdlm"; - sha256 = "sha256:11k7cxcjafs8ziaxl4bilbfwbgl2yf1p6v1bvwszadcr14xyvgsj"; + sha256 = "sha256-RrbNwwND3Sl8bTTZF5xeHMHuQEyOY7FU3vFY4TAQw30="; version = "1.1.8"; })]) ++ (lib.lists.optionals (cfg.chromium.disableKeepassxcBrowser == false) [(createChromiumExtension { # KeePassXC-Browser @@ -54,7 +54,7 @@ in })]) ++ (lib.lists.optionals (cfg.chromium.disableDarkReader == false) [(createChromiumExtension { # dark reader id = "eimadpbcbfnmbkopoojfekhnkhdbieeh"; - sha256 = "sha256-8/tzlj4xc1h/+Zeek4r9l0I4/Kw3EJgLaqTTxZbRGcU="; + sha256 = "sha256-aCAGePzaywNfNUwqSqhsM+GifJPz+NT71RiT0Z6QMkI="; version = "4.9.115"; })]); }; diff --git a/systems/aarch64-linux/NoMra7/default.nix b/systems/aarch64-linux/NoMra7/default.nix new file mode 100644 index 0000000..3d757dc --- /dev/null +++ b/systems/aarch64-linux/NoMra7/default.nix @@ -0,0 +1,146 @@ +{ config, lib, pkgs, ... }: + +{ + imports = [ + ./hardware.nix + ./stylix.nix + ]; + + # Configure Nix + nix.package = pkgs.lix; + nix.settings.experimental-features = [ "nix-command" "flakes" ]; + nix.settings.connect-timeout = 5; + nix.settings.fallback = true; + nixpkgs.config.permittedInsecurePackages = [ + "olm-3.2.16" + ]; + nixpkgs.config.allowUnfreePredicate = with pkgs; [ + "joypixels" + ]; + nixpkgs.config.joypixels.acceptLicense = true; + nix.settings.trusted-public-keys = [ + "cache-pkpnafs:guOMrEa3XPWnRihJtf7KraRRFLHlKvd1bmWbk7BZEow=" + "cache-senfnvp:8fiqd165A80WZD8gLgzMjiQk6/8AdaANZqERktzIXkU=" + "cache-Ohybke:0D+ovjv+/WqRX7hQ2qJzBbpE8NEBGtzmWQDpmlszcHQ=" + ]; + #nix.settings.trusted-substituters = [ + # "ssh://ssh-nix@pkpnafs" + #]; + #nix.extraOptions = '' + # secret-key-files = /root/secrets/cache-senfnvp.sec + #''; + + + # Users + users.users.kb = { + isNormalUser = true; + # Numeric pin makes it **possible** to input on the lockscreen. + password = "1234"; # INSECURE!!! + home = "/home/kb"; + extraGroups = [ + "dialout" + "feedbackd" + "networkmanager" + "video" + "wheel" + ]; + openssh.authorizedKeys.keys = [ + "sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIOQXozfSEQACDiOJ4gpuOJx8AhkRk7cT1LhD0AdX4R2iAAAAD3NzaDprYi1zc2hAbTFuaQ== kb-ssh@m1ni" + ]; + }; + users.users.root.password = "nixos"; # INSECURE!!! + + # KDE Desktop +# services.displayManager.autoLogin.enable = true; +# services.displayManager.autoLogin.user = "kb"; +# services.displayManager.defaultSession = "plasma-mobile"; +# services.xserver = { +# enable = true; +# desktopManager.plasma5.mobile.enable = true; +# displayManager.lightdm = { +# enable = true; +# # Workaround for autologin only working at first launch. +# # A logout or session crashing will show the login screen otherwise. +# extraSeatDefaults = '' +# session-cleanup-script=${pkgs.procps}/bin/pkill -P1 -fx ${pkgs.lightdm}/sbin/lightdm +# ''; +# }; +# }; + + +# services.xserver.desktopManager.phosh = { +# enable = true; +# user = "kb"; +# group = "users"; +# }; + services.displayManager.gdm.enable = true; + services.desktopManager.gnome.enable = true; + services.gnome.games.enable = false; + + services.libinput.enable = true; + + # Audio + services.pipewire.enable = lib.mkDefault true; + services.pulseaudio.enable = lib.mkDefault false; + + # Bluetooth + hardware.bluetooth.enable = true; + + # Mobile Configuration + mobile.boot.stage-1.networking.enable = lib.mkDefault true; + mobile.boot.stage-1.kernel.useStrictKernelConfig = lib.mkDefault true; + mobile.beautification = { + silentBoot = lib.mkDefault true; + splash = lib.mkDefault true; + }; + mobile.quirks.audio.alsa-ucm-meld = true; + #mobile.adbd.enable = true; + #mobile.usb.mode = lib.mkDefault "gadgetfs"; + programs.calls.enable = true; + + # Networking + networking.hostName = "NoMra7"; + networking.networkmanager.enable = true; + networking.networkmanager.unmanaged = [ "rndis0" "usb0" ]; + powerManagement.enable = true; + + # SSH and Mosh + services.openssh = { + enable = true; + settings.PasswordAuthentication = false; + settings.KbdInteractiveAuthentication = false; + ports = [ 7274 ]; + openFirewall = true; + }; + programs.mosh.enable = true; + + # Localization + time.timeZone = "Europe/Amsterdam"; + i18n.defaultLocale = "en_US.UTF-8"; + console = { + font = "Lat2-Terminus16"; + #keyMap = "de"; + useXkbConfig = true; # use xkb.options in tty. + }; + services.xserver.xkb.layout = "de"; + + environment.systemPackages = with pkgs; [ + vim + git + fastfetch + btop + chatty # IM and SMS + epiphany # Web browser + gnome-console # Terminal + megapixels # Camera + kdePackages.kate + # Touch Keyboards + squeekboard + maliit-keyboard + svkbd + + usbutils + ]; + + system.stateVersion = "25.11"; # NEVER CHANGE!!!! +} diff --git a/systems/aarch64-linux/NoMra7/hardware.nix b/systems/aarch64-linux/NoMra7/hardware.nix new file mode 100644 index 0000000..dccc052 --- /dev/null +++ b/systems/aarch64-linux/NoMra7/hardware.nix @@ -0,0 +1,24 @@ +{ config, lib, pkgs, modulesPath, ... }: + +{ + imports = [ + (modulesPath + "/installer/scan/not-detected.nix") + ]; + + boot.initrd.availableKernelModules = [ ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ ]; + boot.extraModulePackages = [ ]; + + fileSystems."/" = { + device = "/dev/disk/by-label/NIXOS_SYSTEM"; + fsType = "ext4"; + }; + + swapDevices = [{ + device = "/.swapfile"; + size = 6*1024; + }]; + + nixpkgs.hostPlatform = lib.mkDefault "aarch64-linux"; +} diff --git a/systems/aarch64-linux/NoMra7/stylix.nix b/systems/aarch64-linux/NoMra7/stylix.nix new file mode 100644 index 0000000..971a927 --- /dev/null +++ b/systems/aarch64-linux/NoMra7/stylix.nix @@ -0,0 +1,60 @@ +{ config, pkgs, lib, inputs, ... }: +{ + # Configure Home-Manager + home-manager.backupFileExtension = "backup"; + home-manager.sharedModules = [ + { + stylix.enable = true; + } + ]; + + stylix.enable = true; + stylix.image = pkgs.fetchurl { + # MaKeleLele: Space Base + #url = "https://w.wallhaven.cc/full/1j/wallhaven-1j6239.png"; + #hash = "sha256-NM5nyeOQAL0yvXxwLWsshDi1WD7DvIytNofu6GX3dNw="; + # p4r4d0x: Pink Vapourwave + #url = "https://w.wallhaven.cc/full/73/wallhaven-736k8e.jpg"; + #hash = "sha256-xnn8HnrMMQByh6EnIgvHmZzWVQL75tClz/MKtcqEyAM="; + # WallHAven4o: Colorfull Shapes + #url = "https://w.wallhaven.cc/full/ox/wallhaven-ox7e7l.jpg"; + #hash = "sha256-vOXANXLSP8FVluwjFBPbR6XtEIIrZ4xl9O2c+wd/KL0="; + # deleted: Fox Singularity + url = "https://w.wallhaven.cc/full/q2/wallhaven-q2llr5.png"; + hash = "sha256-Sg2Q1tNcwh8Cj+V+xcijvcT6X5eDbC+bfzjqwVtsVMU="; + # delted: Arc Raiders Selfie + #url = "https://w.wallhaven.cc/full/k8/wallhaven-k89ezm.jpg"; + #hash = "sha256-Y7VI+q9oueiglfdqqfPau4XUT6rjvjk7L4716xMjO4Q="; + # delted: Flowers in Window + #url = "https://w.wallhaven.cc/full/83/wallhaven-83ze72.jpg"; + #hash = "sha256-U9CQK6hzk0UwOQlawFp/l0g3LytfkKQcWmCvZ7UMP98="; + # hdkr947: Fox Silhouette + #url = "https://w.wallhaven.cc/full/1k/wallhaven-1k99o9.png"; + #hash = "sha256-XRRk0YjFbBaYWw8D4VQIxVAKSXFlX7Z0oheTzIMw6Q8="; + }; + stylix.polarity = "dark"; + + stylix.fonts = { + serif = { + package = pkgs.kb-one.poly-nerdfont; + name = "Poly Nerd Font"; + }; + + sansSerif = { + package = pkgs.kb-one.sauce-sans-pro; + name = "SauceSansPro Nerd Font"; + }; + + monospace = { + package = pkgs.nerd-fonts.dejavu-sans-mono; + name = "DejaVuSansM Nerd Font"; + }; + + emoji = { + package = pkgs.joypixels; + name = "JoyPixels"; + }; + }; + +} +