summaryrefslogtreecommitdiff
path: root/trivionomicon/templates/system-flake
diff options
context:
space:
mode:
authorAlejandro Soto <alejandro@34project.org>2025-08-24 15:48:29 -0600
committerAlejandro Soto <alejandro@34project.org>2025-08-24 15:48:29 -0600
commitecab16d635554150627403675642d5603ef64cc6 (patch)
treef94619061973fc0a5fd6097e27e80a5dde627fda /trivionomicon/templates/system-flake
parent0e11a692f223b268ca0d208b0ebf48c80caddfb6 (diff)
parent53a923158861a9c52b86f37d826c3f4637476dfa (diff)
Add 'trivionomicon/' from commit 'c651b8c4706cfc750303db12ae19e58164a6bebb'
git-subtree-dir: trivionomicon git-subtree-mainline: 02d3ab9583983e823909020c34b9d5a6894fb773 git-subtree-split: c651b8c4706cfc750303db12ae19e58164a6bebb
Diffstat (limited to 'trivionomicon/templates/system-flake')
-rw-r--r--trivionomicon/templates/system-flake/.gitignore3
-rw-r--r--trivionomicon/templates/system-flake/flake.nix28
-rw-r--r--trivionomicon/templates/system-flake/home/default.nix73
-rw-r--r--trivionomicon/templates/system-flake/home/platform/me@foo/default.nix10
-rw-r--r--trivionomicon/templates/system-flake/pkgs/config/default.nix5
-rw-r--r--trivionomicon/templates/system-flake/pkgs/config/unfree.nix7
-rw-r--r--trivionomicon/templates/system-flake/pkgs/default.nix12
-rw-r--r--trivionomicon/templates/system-flake/pkgs/hello-world/Makefile6
-rw-r--r--trivionomicon/templates/system-flake/pkgs/hello-world/default.nix14
-rw-r--r--trivionomicon/templates/system-flake/pkgs/hello-world/hello-world.c7
-rw-r--r--trivionomicon/templates/system-flake/pkgs/lib/default.nix3
-rw-r--r--trivionomicon/templates/system-flake/pkgs/lib/fibonacci.nix7
-rw-r--r--trivionomicon/templates/system-flake/sys/default.nix14
-rw-r--r--trivionomicon/templates/system-flake/sys/platform/foo/default.nix6
14 files changed, 195 insertions, 0 deletions
diff --git a/trivionomicon/templates/system-flake/.gitignore b/trivionomicon/templates/system-flake/.gitignore
new file mode 100644
index 0000000..21f979d
--- /dev/null
+++ b/trivionomicon/templates/system-flake/.gitignore
@@ -0,0 +1,3 @@
+!**/.keep
+result
+flake.lock
diff --git a/trivionomicon/templates/system-flake/flake.nix b/trivionomicon/templates/system-flake/flake.nix
new file mode 100644
index 0000000..6afe06f
--- /dev/null
+++ b/trivionomicon/templates/system-flake/flake.nix
@@ -0,0 +1,28 @@
+{
+ inputs = {
+ nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11";
+ unstable.url = "github:nixos/nixpkgs/nixos-unstable";
+
+ home-manager = {
+ url = "github:nix-community/home-manager/release-24.11";
+ inputs.nixpkgs.follows = "nixpkgs";
+ };
+
+ trivium = {
+ url = "git+https://git.posixlycorrect.com/deepState/trivionomicon.git";
+ inputs.nixpkgs.follows = "nixpkgs";
+ };
+ };
+
+ outputs = flakes @ {
+ self,
+ nixpkgs,
+ unstable,
+ home-manager,
+ trivium,
+ }:
+ trivium.lib.mkSystemFlake {
+ system = "x86_64-linux";
+ inherit flakes;
+ };
+}
diff --git a/trivionomicon/templates/system-flake/home/default.nix b/trivionomicon/templates/system-flake/home/default.nix
new file mode 100644
index 0000000..49439c7
--- /dev/null
+++ b/trivionomicon/templates/system-flake/home/default.nix
@@ -0,0 +1,73 @@
+{
+ config,
+ pkgs,
+ ...
+}: {
+ # This value determines the Home Manager release that your configuration is
+ # compatible with. This helps avoid breakage when a new Home Manager release
+ # introduces backwards incompatible changes.
+ #
+ # You should not change this value, even if you update Home Manager. If you do
+ # want to update the value, then make sure to first check the Home Manager
+ # release notes.
+ home.stateVersion = "24.11"; # Please read the comment before changing.
+
+ # The home.packages option allows you to install Nix packages into your
+ # environment.
+ home.packages = [
+ # # Adds the 'hello' command to your environment. It prints a friendly
+ # # "Hello, world!" when run.
+ # pkgs.hello
+
+ # # It is sometimes useful to fine-tune packages, for example, by applying
+ # # overrides. You can do that directly here, just don't forget the
+ # # parentheses. Maybe you want to install Nerd Fonts with a limited number of
+ # # fonts?
+ # (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; })
+
+ # # You can also create simple shell scripts directly inside your
+ # # configuration. For example, this adds a command 'my-hello' to your
+ # # environment:
+ # (pkgs.writeShellScriptBin "my-hello" ''
+ # echo "Hello, ${config.home.username}!"
+ # '')
+ ];
+
+ # Home Manager is pretty good at managing dotfiles. The primary way to manage
+ # plain files is through 'home.file'.
+ home.file = {
+ # # Building this configuration will create a copy of 'dotfiles/screenrc' in
+ # # the Nix store. Activating the configuration will then make '~/.screenrc' a
+ # # symlink to the Nix store copy.
+ # ".screenrc".source = dotfiles/screenrc;
+
+ # # You can also set the file content immediately.
+ # ".gradle/gradle.properties".text = ''
+ # org.gradle.console=verbose
+ # org.gradle.daemon.idletimeout=3600000
+ # '';
+ };
+
+ # Home Manager can also manage your environment variables through
+ # 'home.sessionVariables'. These will be explicitly sourced when using a
+ # shell provided by Home Manager. If you don't want to manage your shell
+ # through Home Manager then you have to manually source 'hm-session-vars.sh'
+ # located at either
+ #
+ # ~/.nix-profile/etc/profile.d/hm-session-vars.sh
+ #
+ # or
+ #
+ # ~/.local/state/nix/profiles/profile/etc/profile.d/hm-session-vars.sh
+ #
+ # or
+ #
+ # /etc/profiles/per-user/<user>/etc/profile.d/hm-session-vars.sh
+ #
+ home.sessionVariables = {
+ # EDITOR = "emacs";
+ };
+
+ # Let Home Manager install and manage itself.
+ programs.home-manager.enable = true;
+}
diff --git a/trivionomicon/templates/system-flake/home/platform/me@foo/default.nix b/trivionomicon/templates/system-flake/home/platform/me@foo/default.nix
new file mode 100644
index 0000000..6481e85
--- /dev/null
+++ b/trivionomicon/templates/system-flake/home/platform/me@foo/default.nix
@@ -0,0 +1,10 @@
+{
+ config,
+ pkgs,
+ ...
+}: {
+ # Home Manager needs a bit of information about you and the paths it should
+ # manage.
+ home.username = "ale";
+ home.homeDirectory = "/home/ale";
+}
diff --git a/trivionomicon/templates/system-flake/pkgs/config/default.nix b/trivionomicon/templates/system-flake/pkgs/config/default.nix
new file mode 100644
index 0000000..47abe76
--- /dev/null
+++ b/trivionomicon/templates/system-flake/pkgs/config/default.nix
@@ -0,0 +1,5 @@
+{lib}:
+with lib; {
+ android_sdk.accept_license = true;
+ allowUnfreePredicate = pkg: import ./unfree.nix lib (getName pkg);
+}
diff --git a/trivionomicon/templates/system-flake/pkgs/config/unfree.nix b/trivionomicon/templates/system-flake/pkgs/config/unfree.nix
new file mode 100644
index 0000000..deda971
--- /dev/null
+++ b/trivionomicon/templates/system-flake/pkgs/config/unfree.nix
@@ -0,0 +1,7 @@
+lib: name:
+with lib;
+ elem name [
+ "libproprietary-v3"
+ "closed-source-pkg"
+ "favorite-abandonware"
+ ]
diff --git a/trivionomicon/templates/system-flake/pkgs/default.nix b/trivionomicon/templates/system-flake/pkgs/default.nix
new file mode 100644
index 0000000..78a86d4
--- /dev/null
+++ b/trivionomicon/templates/system-flake/pkgs/default.nix
@@ -0,0 +1,12 @@
+final: prev:
+with prev.lib; let
+ inherit (final) callPackage fetchpatch;
+in {
+ lib = callPackage ./lib {};
+
+ hello-world = callPackage ./hello-world {};
+
+ override = {
+ sl = prev.sl.overrideAttrs {pname = "my-sl";};
+ };
+}
diff --git a/trivionomicon/templates/system-flake/pkgs/hello-world/Makefile b/trivionomicon/templates/system-flake/pkgs/hello-world/Makefile
new file mode 100644
index 0000000..4eef056
--- /dev/null
+++ b/trivionomicon/templates/system-flake/pkgs/hello-world/Makefile
@@ -0,0 +1,6 @@
+CFLAGS += -O3 -s
+
+all: hello-world
+
+%: %.c
+ $(CC) $(CFLAGS) -o $@ $<
diff --git a/trivionomicon/templates/system-flake/pkgs/hello-world/default.nix b/trivionomicon/templates/system-flake/pkgs/hello-world/default.nix
new file mode 100644
index 0000000..19047a1
--- /dev/null
+++ b/trivionomicon/templates/system-flake/pkgs/hello-world/default.nix
@@ -0,0 +1,14 @@
+{stdenv, ...}:
+stdenv.mkDerivation {
+ name = "hello-world";
+ version = "1.0.0";
+
+ src = ./.;
+
+ installPhase = ''
+ mkdir -p $out/bin
+ cp hello-world $out/bin
+ '';
+
+ meta.mainProgram = "hello-world";
+}
diff --git a/trivionomicon/templates/system-flake/pkgs/hello-world/hello-world.c b/trivionomicon/templates/system-flake/pkgs/hello-world/hello-world.c
new file mode 100644
index 0000000..d6cfa6b
--- /dev/null
+++ b/trivionomicon/templates/system-flake/pkgs/hello-world/hello-world.c
@@ -0,0 +1,7 @@
+#include <stdio.h>
+
+int main()
+{
+ printf("Hello, world!\n");
+ return 0;
+}
diff --git a/trivionomicon/templates/system-flake/pkgs/lib/default.nix b/trivionomicon/templates/system-flake/pkgs/lib/default.nix
new file mode 100644
index 0000000..ab54163
--- /dev/null
+++ b/trivionomicon/templates/system-flake/pkgs/lib/default.nix
@@ -0,0 +1,3 @@
+{callPackage}: {
+ fibonacci = callPackage ./fibonacci.nix {};
+}
diff --git a/trivionomicon/templates/system-flake/pkgs/lib/fibonacci.nix b/trivionomicon/templates/system-flake/pkgs/lib/fibonacci.nix
new file mode 100644
index 0000000..a12576b
--- /dev/null
+++ b/trivionomicon/templates/system-flake/pkgs/lib/fibonacci.nix
@@ -0,0 +1,7 @@
+let
+ fib = n:
+ if n > 1
+ then fib (n - 1) + fib (n - 2)
+ else 1;
+in
+ fib
diff --git a/trivionomicon/templates/system-flake/sys/default.nix b/trivionomicon/templates/system-flake/sys/default.nix
new file mode 100644
index 0000000..fa0f994
--- /dev/null
+++ b/trivionomicon/templates/system-flake/sys/default.nix
@@ -0,0 +1,14 @@
+{pkgs, ...}: {
+ # Let 'nixos-version --json' know about the Git revision
+ # of this flake.
+ system.configurationRevision = nixpkgs.lib.mkIf (self ? rev) self.rev;
+
+ # Network configuration.
+ networking.firewall.allowedTCPPorts = [80];
+
+ # Enable a web server.
+ services.httpd = {
+ enable = true;
+ adminAddr = "morty@example.org";
+ };
+}
diff --git a/trivionomicon/templates/system-flake/sys/platform/foo/default.nix b/trivionomicon/templates/system-flake/sys/platform/foo/default.nix
new file mode 100644
index 0000000..ef84269
--- /dev/null
+++ b/trivionomicon/templates/system-flake/sys/platform/foo/default.nix
@@ -0,0 +1,6 @@
+{pkgs, ...}: {
+ boot.isContainer = true;
+
+ # Network configuration.
+ networking.useDHCP = false;
+}