Compare commits
	
		
			3 Commits
		
	
	
		
			49e4f0e7ef
			...
			d3266d1c1d
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| d3266d1c1d | |||
| b693e9d02c | |||
| ac8850ae00 | 
							
								
								
									
										43
									
								
								flake.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										43
									
								
								flake.lock
									
									
									
										generated
									
									
									
								
							@@ -155,6 +155,27 @@
 | 
				
			|||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "flake-parts_3": {
 | 
				
			||||||
 | 
					      "inputs": {
 | 
				
			||||||
 | 
					        "nixpkgs-lib": [
 | 
				
			||||||
 | 
					          "nur",
 | 
				
			||||||
 | 
					          "nixpkgs"
 | 
				
			||||||
 | 
					        ]
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "locked": {
 | 
				
			||||||
 | 
					        "lastModified": 1733312601,
 | 
				
			||||||
 | 
					        "narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=",
 | 
				
			||||||
 | 
					        "owner": "hercules-ci",
 | 
				
			||||||
 | 
					        "repo": "flake-parts",
 | 
				
			||||||
 | 
					        "rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9",
 | 
				
			||||||
 | 
					        "type": "github"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "original": {
 | 
				
			||||||
 | 
					        "owner": "hercules-ci",
 | 
				
			||||||
 | 
					        "repo": "flake-parts",
 | 
				
			||||||
 | 
					        "type": "github"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "flake-utils": {
 | 
					    "flake-utils": {
 | 
				
			||||||
      "inputs": {
 | 
					      "inputs": {
 | 
				
			||||||
        "systems": "systems_2"
 | 
					        "systems": "systems_2"
 | 
				
			||||||
@@ -769,6 +790,27 @@
 | 
				
			|||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "nur": {
 | 
				
			||||||
 | 
					      "inputs": {
 | 
				
			||||||
 | 
					        "flake-parts": "flake-parts_3",
 | 
				
			||||||
 | 
					        "nixpkgs": [
 | 
				
			||||||
 | 
					          "nixpkgs"
 | 
				
			||||||
 | 
					        ]
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "locked": {
 | 
				
			||||||
 | 
					        "lastModified": 1758273929,
 | 
				
			||||||
 | 
					        "narHash": "sha256-8ZhQaoeWOcCpe14PLgJ7ZEhWFFISA2qcVuXTGlNZGgU=",
 | 
				
			||||||
 | 
					        "owner": "nix-community",
 | 
				
			||||||
 | 
					        "repo": "NUR",
 | 
				
			||||||
 | 
					        "rev": "2d644af21cc32d53594b9d17fa167c4eec6431cd",
 | 
				
			||||||
 | 
					        "type": "github"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "original": {
 | 
				
			||||||
 | 
					        "owner": "nix-community",
 | 
				
			||||||
 | 
					        "repo": "NUR",
 | 
				
			||||||
 | 
					        "type": "github"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "nuschtosSearch": {
 | 
					    "nuschtosSearch": {
 | 
				
			||||||
      "inputs": {
 | 
					      "inputs": {
 | 
				
			||||||
        "flake-utils": "flake-utils",
 | 
					        "flake-utils": "flake-utils",
 | 
				
			||||||
@@ -824,6 +866,7 @@
 | 
				
			|||||||
        "nixcord": "nixcord",
 | 
					        "nixcord": "nixcord",
 | 
				
			||||||
        "nixpkgs": "nixpkgs_4",
 | 
					        "nixpkgs": "nixpkgs_4",
 | 
				
			||||||
        "nixvim": "nixvim",
 | 
					        "nixvim": "nixvim",
 | 
				
			||||||
 | 
					        "nur": "nur",
 | 
				
			||||||
        "spicetify-nix": "spicetify-nix",
 | 
					        "spicetify-nix": "spicetify-nix",
 | 
				
			||||||
        "unstable": "unstable"
 | 
					        "unstable": "unstable"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										108
									
								
								flake.nix
									
									
									
									
									
								
							
							
						
						
									
										108
									
								
								flake.nix
									
									
									
									
									
								
							@@ -17,6 +17,10 @@
 | 
				
			|||||||
    # Core
 | 
					    # Core
 | 
				
			||||||
    nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11";
 | 
					    nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11";
 | 
				
			||||||
    unstable.url = "github:nixos/nixpkgs/nixos-unstable";
 | 
					    unstable.url = "github:nixos/nixpkgs/nixos-unstable";
 | 
				
			||||||
 | 
					    nur = {
 | 
				
			||||||
 | 
					      url = "github:nix-community/NUR";
 | 
				
			||||||
 | 
					      inputs.nixpkgs.follows = "nixpkgs";
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Editor
 | 
					    # Editor
 | 
				
			||||||
    nixvim = {
 | 
					    nixvim = {
 | 
				
			||||||
@@ -54,8 +58,6 @@
 | 
				
			|||||||
    }:
 | 
					    }:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    let
 | 
					    let
 | 
				
			||||||
      system = "x86_64-linux";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      # Common Configuration
 | 
					      # Common Configuration
 | 
				
			||||||
      commonModules = [
 | 
					      commonModules = [
 | 
				
			||||||
        (
 | 
					        (
 | 
				
			||||||
@@ -79,28 +81,22 @@
 | 
				
			|||||||
        )
 | 
					        )
 | 
				
			||||||
      ];
 | 
					      ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      commonHomeManagerConfig =
 | 
					      commonHomeManagerConfig = username: {
 | 
				
			||||||
        {
 | 
					        home-manager = {
 | 
				
			||||||
          username,
 | 
					          useGlobalPkgs = true;
 | 
				
			||||||
          monitorSetup ? "single",
 | 
					          useUserPackages = true;
 | 
				
			||||||
        }:
 | 
					          backupFileExtension = "backup";
 | 
				
			||||||
        {
 | 
					          extraSpecialArgs = {
 | 
				
			||||||
          home-manager = {
 | 
					            inherit inputs username;
 | 
				
			||||||
            useGlobalPkgs = true;
 | 
					 | 
				
			||||||
            useUserPackages = true;
 | 
					 | 
				
			||||||
            backupFileExtension = "backup";
 | 
					 | 
				
			||||||
            extraSpecialArgs = {
 | 
					 | 
				
			||||||
              inherit inputs;
 | 
					 | 
				
			||||||
              inherit username monitorSetup;
 | 
					 | 
				
			||||||
            };
 | 
					 | 
				
			||||||
            users.${username} = import ./users/${username}/home.nix;
 | 
					 | 
				
			||||||
            sharedModules = [
 | 
					 | 
				
			||||||
              inputs.catppuccin.homeModules.catppuccin
 | 
					 | 
				
			||||||
              inputs.nixcord.homeModules.nixcord
 | 
					 | 
				
			||||||
              inputs.nixvim.homeManagerModules.nixvim
 | 
					 | 
				
			||||||
            ];
 | 
					 | 
				
			||||||
          };
 | 
					          };
 | 
				
			||||||
 | 
					          users.${username} = import ./users/${username}/home.nix;
 | 
				
			||||||
 | 
					          sharedModules = [
 | 
				
			||||||
 | 
					            inputs.catppuccin.homeModules.catppuccin
 | 
				
			||||||
 | 
					            inputs.nixcord.homeModules.nixcord
 | 
				
			||||||
 | 
					            inputs.nixvim.homeManagerModules.nixvim
 | 
				
			||||||
 | 
					          ];
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      # System Builder for NixOS
 | 
					      # System Builder for NixOS
 | 
				
			||||||
      mkSystem =
 | 
					      mkSystem =
 | 
				
			||||||
@@ -109,13 +105,18 @@
 | 
				
			|||||||
          username,
 | 
					          username,
 | 
				
			||||||
          system ? "x86_64-linux",
 | 
					          system ? "x86_64-linux",
 | 
				
			||||||
          monitorSetup ? "single",
 | 
					          monitorSetup ? "single",
 | 
				
			||||||
 | 
					          containerization ? "none",
 | 
				
			||||||
          extraModules ? [ ],
 | 
					          extraModules ? [ ],
 | 
				
			||||||
        }:
 | 
					        }:
 | 
				
			||||||
        nixpkgs.lib.nixosSystem {
 | 
					        nixpkgs.lib.nixosSystem {
 | 
				
			||||||
          inherit system;
 | 
					          inherit system;
 | 
				
			||||||
          specialArgs = {
 | 
					          specialArgs = {
 | 
				
			||||||
            inherit inputs;
 | 
					            inherit
 | 
				
			||||||
            inherit username monitorSetup;
 | 
					              inputs
 | 
				
			||||||
 | 
					              username
 | 
				
			||||||
 | 
					              monitorSetup
 | 
				
			||||||
 | 
					              containerization
 | 
				
			||||||
 | 
					              ;
 | 
				
			||||||
          };
 | 
					          };
 | 
				
			||||||
          modules =
 | 
					          modules =
 | 
				
			||||||
            commonModules
 | 
					            commonModules
 | 
				
			||||||
@@ -124,59 +125,72 @@
 | 
				
			|||||||
              ./users/${username}/nixos.nix
 | 
					              ./users/${username}/nixos.nix
 | 
				
			||||||
              home-manager.nixosModules.home-manager
 | 
					              home-manager.nixosModules.home-manager
 | 
				
			||||||
              (commonHomeManagerConfig { inherit username monitorSetup; })
 | 
					              (commonHomeManagerConfig { inherit username monitorSetup; })
 | 
				
			||||||
 | 
					              ./modules/containerization
 | 
				
			||||||
            ]
 | 
					            ]
 | 
				
			||||||
            ++ extraModules;
 | 
					            ++ extraModules;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      # ISO configuration
 | 
					      # ISO configuration
 | 
				
			||||||
      isoConfig = nixpkgs.lib.nixosSystem {
 | 
					      mkIsoConfig =
 | 
				
			||||||
        inherit system;
 | 
					        { system }:
 | 
				
			||||||
        modules = [
 | 
					        nixpkgs.lib.nixosSystem {
 | 
				
			||||||
          (import (nixpkgs + "/nixos/modules/installer/cd-dvd/installation-cd-minimal.nix"))
 | 
					          inherit system;
 | 
				
			||||||
          (
 | 
					          modules = [
 | 
				
			||||||
            { pkgs, ... }:
 | 
					            (import (nixpkgs + "/nixos/modules/installer/cd-dvd/installation-cd-minimal.nix"))
 | 
				
			||||||
            {
 | 
					            (
 | 
				
			||||||
              environment.systemPackages = with pkgs; [
 | 
					              { pkgs, ... }:
 | 
				
			||||||
                neovim
 | 
					              {
 | 
				
			||||||
                git
 | 
					                environment.systemPackages = with pkgs; [
 | 
				
			||||||
                wget
 | 
					                  neovim
 | 
				
			||||||
                curl
 | 
					                  git
 | 
				
			||||||
              ];
 | 
					                  wget
 | 
				
			||||||
              nix.settings.experimental-features = [
 | 
					                  curl
 | 
				
			||||||
                "nix-command"
 | 
					                ];
 | 
				
			||||||
                "flakes"
 | 
					                nix.settings.experimental-features = [
 | 
				
			||||||
              ];
 | 
					                  "nix-command"
 | 
				
			||||||
            }
 | 
					                  "flakes"
 | 
				
			||||||
          )
 | 
					                ];
 | 
				
			||||||
        ];
 | 
					              }
 | 
				
			||||||
      };
 | 
					            )
 | 
				
			||||||
 | 
					          ];
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    in
 | 
					    in
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      packages.${system}.default = self.nixosConfigurations.iso.config.system.build.isoImage;
 | 
					      packages.x86_64-linux.iso = self.nixosConfigurations.iso.config.system.build.isoImage;
 | 
				
			||||||
 | 
					      packages.x86_64-linux.default = self.packages.x86_64-linux.iso;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      nixosConfigurations = {
 | 
					      nixosConfigurations = {
 | 
				
			||||||
        iso = isoConfig;
 | 
					        iso = mkIsoConfig { system = "x86_64-linux"; };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        qemu = mkSystem {
 | 
					        qemu = mkSystem {
 | 
				
			||||||
          hostname = "qemu";
 | 
					          hostname = "qemu";
 | 
				
			||||||
          username = "phil";
 | 
					          username = "phil";
 | 
				
			||||||
          monitorSetup = "single";
 | 
					          monitorSetup = "single";
 | 
				
			||||||
 | 
					          containerization = "none";
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        m920q = mkSystem {
 | 
					        m920q = mkSystem {
 | 
				
			||||||
          hostname = "m920q";
 | 
					          hostname = "m920q";
 | 
				
			||||||
          username = "phil";
 | 
					          username = "phil";
 | 
				
			||||||
          monitorSetup = "dual";
 | 
					          monitorSetup = "dual";
 | 
				
			||||||
 | 
					          containerization = "podman";
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        hp15-n028sg = mkSystem {
 | 
					        hp15-n028sg = mkSystem {
 | 
				
			||||||
          hostname = "hp15-n028sg";
 | 
					          hostname = "hp15-n028sg";
 | 
				
			||||||
          username = "phil";
 | 
					          username = "phil";
 | 
				
			||||||
          monitorSetup = "single";
 | 
					          monitorSetup = "single";
 | 
				
			||||||
 | 
					          containerization = "docker";
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        cloud = mkSystem {
 | 
				
			||||||
 | 
					          hostname = "cluster.cyperpunk.de";
 | 
				
			||||||
 | 
					          username = "phil";
 | 
				
			||||||
 | 
					          monitorSetup = "none";
 | 
				
			||||||
 | 
					          containerization = "podman";
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
      };
 | 
					      };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -9,9 +9,9 @@
 | 
				
			|||||||
    #./wpaperd.nix
 | 
					    #./wpaperd.nix
 | 
				
			||||||
    ./swww.nix
 | 
					    ./swww.nix
 | 
				
			||||||
    ./rofi # App Launcher
 | 
					    ./rofi # App Launcher
 | 
				
			||||||
    #./mako.nix # Notifyer
 | 
					    ./mako.nix # Notifyer
 | 
				
			||||||
    ./cava.nix # Music Visualizer
 | 
					    ./cava.nix # Music Visualizer
 | 
				
			||||||
    ./swaync.nix
 | 
					    #./swaync.nix
 | 
				
			||||||
  ];
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  programs.waybar =
 | 
					  programs.waybar =
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -88,6 +88,7 @@ in
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    input = {
 | 
					    input = {
 | 
				
			||||||
      kb_layout = "de";
 | 
					      kb_layout = "de";
 | 
				
			||||||
 | 
					      kb_variant = "mac";
 | 
				
			||||||
      repeat_rate = 50;
 | 
					      repeat_rate = 50;
 | 
				
			||||||
      repeat_delay = 300;
 | 
					      repeat_delay = 300;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -216,6 +217,9 @@ in
 | 
				
			|||||||
      # Lock Screen
 | 
					      # Lock Screen
 | 
				
			||||||
      "${super}, M, exit, "
 | 
					      "${super}, M, exit, "
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      # swaync
 | 
				
			||||||
 | 
					      "${super}, Y, exec, swaync-client -t -sw"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      # Rofi bindings
 | 
					      # Rofi bindings
 | 
				
			||||||
      "${super}, F, exec, ${filebrowser}"
 | 
					      "${super}, F, exec, ${filebrowser}"
 | 
				
			||||||
      "${super}, A, exec, ${apps}"
 | 
					      "${super}, A, exec, ${apps}"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -27,8 +27,8 @@
 | 
				
			|||||||
      background = [
 | 
					      background = [
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
          path = "~/Pictures/Wallpapers/lucy_with_cat.png";
 | 
					          path = "~/Pictures/Wallpapers/lucy_with_cat.png";
 | 
				
			||||||
          blur_passes = 0;
 | 
					          blur_passes = 1;
 | 
				
			||||||
          blur_size = 0;
 | 
					          blur_size = 5;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
      ];
 | 
					      ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -37,24 +37,48 @@
 | 
				
			|||||||
        {
 | 
					        {
 | 
				
			||||||
          monitor = "";
 | 
					          monitor = "";
 | 
				
			||||||
          text = "$TIME";
 | 
					          text = "$TIME";
 | 
				
			||||||
          color = "$text";
 | 
					          color = "$peach";
 | 
				
			||||||
          font_size = 90;
 | 
					          font_size = 90;
 | 
				
			||||||
          font_family = "$font";
 | 
					          font_family = "$font";
 | 
				
			||||||
          position = "-30, 0";
 | 
					          position = "0, -100";
 | 
				
			||||||
          halign = "right";
 | 
					          halign = "center";
 | 
				
			||||||
          valign = "top";
 | 
					          valign = "top";
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # DATE
 | 
					        # DATE
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
          monitor = "";
 | 
					          monitor = "";
 | 
				
			||||||
          text = ''cmd[update:43200000] date +"%A, %d %B %Y"'';
 | 
					          text = ''cmd[update:43200000]  date +"%A, %d %B %Y"'';
 | 
				
			||||||
          color = "$text";
 | 
					          color = "$peach";
 | 
				
			||||||
          font_size = 25;
 | 
					          font_size = 25;
 | 
				
			||||||
          font_family = "$font";
 | 
					          font_family = "$font";
 | 
				
			||||||
          position = "-30, -150";
 | 
					          position = "0, 100";
 | 
				
			||||||
          halign = "right";
 | 
					          halign = "center";
 | 
				
			||||||
          valign = "top";
 | 
					          valign = "bottom";
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        # Message
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					          monitor = "";
 | 
				
			||||||
 | 
					          text = "Waiting for you...";
 | 
				
			||||||
 | 
					          color = "$peach";
 | 
				
			||||||
 | 
					          font_size = 20;
 | 
				
			||||||
 | 
					          font_family = "$font";
 | 
				
			||||||
 | 
					          position = "0, 200";
 | 
				
			||||||
 | 
					          halign = "center";
 | 
				
			||||||
 | 
					          valign = "bottom";
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        # Weather
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					          monitor = "";
 | 
				
			||||||
 | 
					          text = ''cmd[update:60000] curl -s "wttr.in/52.281311,10.527029?format=1"'';
 | 
				
			||||||
 | 
					          color = "$peach";
 | 
				
			||||||
 | 
					          font_size = 20;
 | 
				
			||||||
 | 
					          font_family = "$font";
 | 
				
			||||||
 | 
					          position = "0, 50";
 | 
				
			||||||
 | 
					          halign = "center";
 | 
				
			||||||
 | 
					          valign = "bottom";
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
      ];
 | 
					      ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -42,4 +42,71 @@
 | 
				
			|||||||
        (builtins.concatStringsSep "," mappings) + " Symbols Nerd Font";
 | 
					        (builtins.concatStringsSep "," mappings) + " Symbols Nerd Font";
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  programs.starship = {
 | 
				
			||||||
 | 
					    enable = true;
 | 
				
			||||||
 | 
					    settings = {
 | 
				
			||||||
 | 
					      add_newline = true;
 | 
				
			||||||
 | 
					      command_timeout = 500;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      format = "$username$hostname $directory $git_branch$git_status\n$character ";
 | 
				
			||||||
 | 
					      right_format = "$cmd_duration";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      username = {
 | 
				
			||||||
 | 
					        style_user = "bold #cba6f7";
 | 
				
			||||||
 | 
					        style_root = "bold #f38ba8";
 | 
				
			||||||
 | 
					        format = "[┌](bold #a6e3a1)[$user]($style)";
 | 
				
			||||||
 | 
					        show_always = true;
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      hostname = {
 | 
				
			||||||
 | 
					        style = "bold #74c7ec";
 | 
				
			||||||
 | 
					        format = "[@](bold #fab387)[$hostname]($style)";
 | 
				
			||||||
 | 
					        ssh_only = false;
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      directory = {
 | 
				
			||||||
 | 
					        style = "bold #a6e3a1";
 | 
				
			||||||
 | 
					        truncation_length = 0;
 | 
				
			||||||
 | 
					        truncation_symbol = "";
 | 
				
			||||||
 | 
					        format = "[⤇ ](bold #f38ba8)[《$path》]($style)";
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      git_branch = {
 | 
				
			||||||
 | 
					        format = "[⟦$branch⟧]($style)";
 | 
				
			||||||
 | 
					        style = "bold #f9e2af";
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      # Git status module settings
 | 
				
			||||||
 | 
					      git_status = {
 | 
				
			||||||
 | 
					        format = "[[(*$conflicted$untracked$modified$staged$renamed$deleted)](red) ($ahead_behind$stashed)]($style)";
 | 
				
			||||||
 | 
					        style = "bold #a6e3a1";
 | 
				
			||||||
 | 
					        conflicted = "";
 | 
				
			||||||
 | 
					        untracked = "";
 | 
				
			||||||
 | 
					        modified = "";
 | 
				
			||||||
 | 
					        staged = "";
 | 
				
			||||||
 | 
					        renamed = "";
 | 
				
			||||||
 | 
					        deleted = "";
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      # Command duration module
 | 
				
			||||||
 | 
					      cmd_duration = {
 | 
				
			||||||
 | 
					        format = "[$duration]($style)";
 | 
				
			||||||
 | 
					        style = "bold #cdd6f4";
 | 
				
			||||||
 | 
					        min_time = 5000; # Only show if command takes longer than 5 seconds
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      # Character module (prompt symbol)
 | 
				
			||||||
 | 
					      character = {
 | 
				
			||||||
 | 
					        success_symbol = "[└──────⇴ ](bold #a6e3a1)";
 | 
				
			||||||
 | 
					        error_symbol = "[└──────⇴ ](bold #f38ba8)";
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      nix_shell = {
 | 
				
			||||||
 | 
					        format = "[$symbol$state( \($name\))]($style)";
 | 
				
			||||||
 | 
					        symbol = "U+02744";
 | 
				
			||||||
 | 
					        style = "bold #89dceb";
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,4 +1,4 @@
 | 
				
			|||||||
{ pkgs, ... }:
 | 
					{ ... }:
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  services.mako = {
 | 
					  services.mako = {
 | 
				
			||||||
    enable = true;
 | 
					    enable = true;
 | 
				
			||||||
@@ -10,6 +10,9 @@
 | 
				
			|||||||
    extraConfig = ''
 | 
					    extraConfig = ''
 | 
				
			||||||
      [app-name=Spotify]
 | 
					      [app-name=Spotify]
 | 
				
			||||||
      border-color=#a6e3a1
 | 
					      border-color=#a6e3a1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      [app-name=Thunderbird]
 | 
				
			||||||
 | 
					      border-color=#94e2d5
 | 
				
			||||||
    '';
 | 
					    '';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,7 +28,7 @@
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
configuration {
 | 
					configuration {
 | 
				
			||||||
    font:						 "Icomoon-Feather 12";
 | 
					    font:						 "Fira Code Bold 20px";
 | 
				
			||||||
    show-icons: 				 true;
 | 
					    show-icons: 				 true;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -85,11 +85,11 @@ dummy {
 | 
				
			|||||||
textbox-prompt-colon {
 | 
					textbox-prompt-colon {
 | 
				
			||||||
    enabled:                     true;
 | 
					    enabled:                     true;
 | 
				
			||||||
    expand:                      false;
 | 
					    expand:                      false;
 | 
				
			||||||
    str:                         " System";
 | 
					    str:                         "  System";
 | 
				
			||||||
    padding:                     15px;
 | 
					    padding:                     15px;
 | 
				
			||||||
    border:                      0px 0px 0px 10px;
 | 
					    border:                      0px 0px 0px 10px;
 | 
				
			||||||
    border-radius:               100% 100% 0px 100%;
 | 
					    border-radius:               100% 100% 0px 100%;
 | 
				
			||||||
    border-color:                @peach;
 | 
					    border-color:                @blue;
 | 
				
			||||||
    background-color:            @crust;
 | 
					    background-color:            @crust;
 | 
				
			||||||
    text-color:                  @text;
 | 
					    text-color:                  @text;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -117,7 +117,7 @@ listview {
 | 
				
			|||||||
    fixed-columns:               true;
 | 
					    fixed-columns:               true;
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    spacing:                     30px;
 | 
					    spacing:                     30px;
 | 
				
			||||||
    margin:                      30px;
 | 
					    margin:                      10px;
 | 
				
			||||||
    background-color:            transparent;
 | 
					    background-color:            transparent;
 | 
				
			||||||
    cursor:                      "default";
 | 
					    cursor:                      "default";
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -125,11 +125,12 @@ listview {
 | 
				
			|||||||
/*****----- Elements -----*****/
 | 
					/*****----- Elements -----*****/
 | 
				
			||||||
element {
 | 
					element {
 | 
				
			||||||
    enabled:                     true;
 | 
					    enabled:                     true;
 | 
				
			||||||
    padding:                     35px 10px;
 | 
					    padding:                     10px;
 | 
				
			||||||
    border-radius:               5%;
 | 
					    border-radius:               1%;
 | 
				
			||||||
    background-color:            @crust;
 | 
					    background-color:            @crust;
 | 
				
			||||||
    text-color:                  @text;
 | 
					    text-color:                  @text;
 | 
				
			||||||
    cursor:                      pointer;
 | 
					    cursor:                      pointer;
 | 
				
			||||||
 | 
						children:					 [ element-text ];
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
element-text {
 | 
					element-text {
 | 
				
			||||||
    background-color:            transparent;
 | 
					    background-color:            transparent;
 | 
				
			||||||
@@ -140,7 +141,7 @@ element-text {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
element selected.normal {
 | 
					element selected.normal {
 | 
				
			||||||
    background-color:            @crust;
 | 
					    background-color:            @crust;
 | 
				
			||||||
    text-color:                  @sapphire;
 | 
					    text-color:                  @yellow;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*****----- Message -----*****/
 | 
					/*****----- Message -----*****/
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,4 +1,110 @@
 | 
				
			|||||||
{ pkgs, ... }:
 | 
					{ ... }:
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  home.packages = [ pkgs.swaynotificationcenter ];
 | 
					  services.swaync = {
 | 
				
			||||||
 | 
					    enable = true;
 | 
				
			||||||
 | 
					    settings = {
 | 
				
			||||||
 | 
					      positionX = "center";
 | 
				
			||||||
 | 
					      positionY = "center";
 | 
				
			||||||
 | 
					      layer = "overlay";
 | 
				
			||||||
 | 
					      control-center-layer = "top";
 | 
				
			||||||
 | 
					      layer-shell = true;
 | 
				
			||||||
 | 
					      cssPriority = "user";
 | 
				
			||||||
 | 
					      control-center-margin-top = 100;
 | 
				
			||||||
 | 
					      control-center-margin-bottom = 200;
 | 
				
			||||||
 | 
					      control-center-margin-right = 0;
 | 
				
			||||||
 | 
					      control-center-margin-left = 0;
 | 
				
			||||||
 | 
					      notification-2fa-action = true;
 | 
				
			||||||
 | 
					      notification-inline-replies = false;
 | 
				
			||||||
 | 
					      notification-icon-size = 64;
 | 
				
			||||||
 | 
					      notification-body-image-height = 100;
 | 
				
			||||||
 | 
					      notification-body-image-width = 200;
 | 
				
			||||||
 | 
					      widgets = [
 | 
				
			||||||
 | 
					        "mpris"
 | 
				
			||||||
 | 
					        "volume"
 | 
				
			||||||
 | 
					        "inhibitors"
 | 
				
			||||||
 | 
					        "title"
 | 
				
			||||||
 | 
					        "dnd"
 | 
				
			||||||
 | 
					        "notifications"
 | 
				
			||||||
 | 
					      ];
 | 
				
			||||||
 | 
					      widget-config = {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        mpris = {
 | 
				
			||||||
 | 
					          blacklist = [ ];
 | 
				
			||||||
 | 
					          autohide = false;
 | 
				
			||||||
 | 
					          show-album-art = "always";
 | 
				
			||||||
 | 
					          loop-carousel = false;
 | 
				
			||||||
 | 
					          image-size = 96;
 | 
				
			||||||
 | 
					          image-radius = 12;
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        volume = {
 | 
				
			||||||
 | 
					          label = "gain";
 | 
				
			||||||
 | 
					          show-per-app = false;
 | 
				
			||||||
 | 
					          empty-list-label = "Nothin' is playin'";
 | 
				
			||||||
 | 
					          expand-button-label = "⤢";
 | 
				
			||||||
 | 
					          collaps-button-label = "⤡";
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        title = {
 | 
				
			||||||
 | 
					          text = "Hollerin'";
 | 
				
			||||||
 | 
					          clear-all-button = true;
 | 
				
			||||||
 | 
					          button-text = "Sheriff's Pardon";
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        dnd = {
 | 
				
			||||||
 | 
					          text = "Let'er rest";
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        menubar = {
 | 
				
			||||||
 | 
					          "menu#power" = {
 | 
				
			||||||
 | 
					            label = "Power";
 | 
				
			||||||
 | 
					            position = "right";
 | 
				
			||||||
 | 
					            animation-type = "slide_down";
 | 
				
			||||||
 | 
					            animation-duration = 250;
 | 
				
			||||||
 | 
					            actions = [
 | 
				
			||||||
 | 
					              {
 | 
				
			||||||
 | 
					                label = "Bolt It";
 | 
				
			||||||
 | 
					                command = "hyprlock";
 | 
				
			||||||
 | 
					              }
 | 
				
			||||||
 | 
					              {
 | 
				
			||||||
 | 
					                label = "Ride Out";
 | 
				
			||||||
 | 
					                command = "hyprctl dispatch exit";
 | 
				
			||||||
 | 
					              }
 | 
				
			||||||
 | 
					              {
 | 
				
			||||||
 | 
					                label = "Circle Back";
 | 
				
			||||||
 | 
					                command = "systemctl reboot";
 | 
				
			||||||
 | 
					              }
 | 
				
			||||||
 | 
					              {
 | 
				
			||||||
 | 
					                label = "Bet Down the Horses";
 | 
				
			||||||
 | 
					                command = "systemctl poweroff";
 | 
				
			||||||
 | 
					              }
 | 
				
			||||||
 | 
					            ];
 | 
				
			||||||
 | 
					          };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          "buttons#media" = {
 | 
				
			||||||
 | 
					            position = "left";
 | 
				
			||||||
 | 
					            actions = [
 | 
				
			||||||
 | 
					              {
 | 
				
			||||||
 | 
					                label = "Play/Pause";
 | 
				
			||||||
 | 
					                command = "playerctl play-pause";
 | 
				
			||||||
 | 
					              }
 | 
				
			||||||
 | 
					              {
 | 
				
			||||||
 | 
					                label = "Next";
 | 
				
			||||||
 | 
					                command = "playerctl next";
 | 
				
			||||||
 | 
					              }
 | 
				
			||||||
 | 
					              {
 | 
				
			||||||
 | 
					                label = "Previous";
 | 
				
			||||||
 | 
					                command = "playerctl previous";
 | 
				
			||||||
 | 
					              }
 | 
				
			||||||
 | 
					            ];
 | 
				
			||||||
 | 
					          };
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        notifications = {
 | 
				
			||||||
 | 
					          vexpand = true;
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -159,6 +159,27 @@
 | 
				
			|||||||
      interval = 60;
 | 
					      interval = 60;
 | 
				
			||||||
      tooltip = false;
 | 
					      tooltip = false;
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    "custom/notification" = {
 | 
				
			||||||
 | 
					      tooltip = false;
 | 
				
			||||||
 | 
					      format = "{icon}";
 | 
				
			||||||
 | 
					      format-icons = {
 | 
				
			||||||
 | 
					        notification = "<span foreground='red'><sup></sup></span>";
 | 
				
			||||||
 | 
					        none = " ";
 | 
				
			||||||
 | 
					        dnd-notification = "<span foreground='red'><sup></sup></span>";
 | 
				
			||||||
 | 
					        dnd-none = " ";
 | 
				
			||||||
 | 
					        inhibited-notification = "<span foreground='red'><sup></sup></span>";
 | 
				
			||||||
 | 
					        inhibited-none = " ";
 | 
				
			||||||
 | 
					        dnd-inhibited-notification = "<span foreground='red'><sup></sup></span>";
 | 
				
			||||||
 | 
					        dnd-inhibited-none = " ";
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					      return-type = "json";
 | 
				
			||||||
 | 
					      exec-if = "which swaync-client";
 | 
				
			||||||
 | 
					      exec = "swaync-client -swb";
 | 
				
			||||||
 | 
					      on-click = "swaync-client -t -sw";
 | 
				
			||||||
 | 
					      on-click-right = "swaync-client -d -sw";
 | 
				
			||||||
 | 
					      escape = true;
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -149,3 +149,12 @@ window#waybar.hidden {
 | 
				
			|||||||
   margin: 5px 20px;
 | 
					   margin: 5px 20px;
 | 
				
			||||||
   padding: 0px 10px;
 | 
					   padding: 0px 10px;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* SwayNC */ 
 | 
				
			||||||
 | 
					#custom-notification {
 | 
				
			||||||
 | 
					  font-family: "NotoSansMono Nerd Font";
 | 
				
			||||||
 | 
					  background: @green;
 | 
				
			||||||
 | 
					  border-radius: 10px;
 | 
				
			||||||
 | 
					  padding-left: 10px;
 | 
				
			||||||
 | 
					  padding-right: 5px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -18,6 +18,7 @@ in
 | 
				
			|||||||
        modules-center = [
 | 
					        modules-center = [
 | 
				
			||||||
          "hyprland/workspaces"
 | 
					          "hyprland/workspaces"
 | 
				
			||||||
          "niri/workspaces"
 | 
					          "niri/workspaces"
 | 
				
			||||||
 | 
					          "custom/notification"
 | 
				
			||||||
        ];
 | 
					        ];
 | 
				
			||||||
        modules-right = [
 | 
					        modules-right = [
 | 
				
			||||||
          "group/hardware"
 | 
					          "group/hardware"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -49,7 +49,7 @@ layout {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
spawn-at-startup "waybar"
 | 
					spawn-at-startup "waybar"
 | 
				
			||||||
spawn-at-startup "hyprpaper"
 | 
					spawn-at-startup "swaync"
 | 
				
			||||||
spawn-at-startup "while true; do sleep 300; $HOME/.config/hypr/rotate-wallpaper.sh"
 | 
					spawn-at-startup "while true; do sleep 300; $HOME/.config/hypr/rotate-wallpaper.sh"
 | 
				
			||||||
screenshot-path "~/Pictures/Screenshots/%Y-%m-%d_%H-%M-%S.png"
 | 
					screenshot-path "~/Pictures/Screenshots/%Y-%m-%d_%H-%M-%S.png"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -7,5 +7,6 @@
 | 
				
			|||||||
    ./sqllite_browser.nix
 | 
					    ./sqllite_browser.nix
 | 
				
			||||||
    ./compilers.nix
 | 
					    ./compilers.nix
 | 
				
			||||||
    ./beekeeper-studio.nix
 | 
					    ./beekeeper-studio.nix
 | 
				
			||||||
 | 
					    #./newelle.nix
 | 
				
			||||||
  ];
 | 
					  ];
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										8
									
								
								home/programs/dev/newelle.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								home/programs/dev/newelle.nix
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,8 @@
 | 
				
			|||||||
 | 
					{ pkgs, ... }:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  # Install fstl
 | 
				
			||||||
 | 
					  home.packages = with pkgs; [
 | 
				
			||||||
 | 
					    newelle
 | 
				
			||||||
 | 
					  ];
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -14,11 +14,9 @@
 | 
				
			|||||||
    ../../modules/localisation.nix
 | 
					    ../../modules/localisation.nix
 | 
				
			||||||
    ../../modules/openssh.nix
 | 
					    ../../modules/openssh.nix
 | 
				
			||||||
    ../../modules/pipewire.nix
 | 
					    ../../modules/pipewire.nix
 | 
				
			||||||
    ../../modules/podman.nix
 | 
					 | 
				
			||||||
    ../../modules/services.nix
 | 
					    ../../modules/services.nix
 | 
				
			||||||
    ../../modules/regreet/regreet.nix
 | 
					    ../../modules/regreet/regreet.nix
 | 
				
			||||||
    ../../modules/plymouth.nix
 | 
					    ../../modules/plymouth.nix
 | 
				
			||||||
    ../../modules/file_managers/spacefm.nix
 | 
					 | 
				
			||||||
    # Include the results of the hardware scan.
 | 
					    # Include the results of the hardware scan.
 | 
				
			||||||
    ./hardware-configuration.nix
 | 
					    ./hardware-configuration.nix
 | 
				
			||||||
  ];
 | 
					  ];
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -16,8 +16,6 @@
 | 
				
			|||||||
    ../../modules/localisation.nix
 | 
					    ../../modules/localisation.nix
 | 
				
			||||||
    ../../modules/openssh.nix
 | 
					    ../../modules/openssh.nix
 | 
				
			||||||
    ../../modules/pipewire.nix
 | 
					    ../../modules/pipewire.nix
 | 
				
			||||||
    #../../modules/podman.nix
 | 
					 | 
				
			||||||
    ../../modules/docker.nix
 | 
					 | 
				
			||||||
    ../../modules/services.nix
 | 
					    ../../modules/services.nix
 | 
				
			||||||
    ../../modules/regreet/regreet.nix
 | 
					    ../../modules/regreet/regreet.nix
 | 
				
			||||||
    ../../modules/plymouth.nix
 | 
					    ../../modules/plymouth.nix
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,7 +4,6 @@
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
  config,
 | 
					  config,
 | 
				
			||||||
  lib,
 | 
					  lib,
 | 
				
			||||||
  pkgs,
 | 
					 | 
				
			||||||
  modulesPath,
 | 
					  modulesPath,
 | 
				
			||||||
  ...
 | 
					  ...
 | 
				
			||||||
}:
 | 
					}:
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -14,11 +14,9 @@
 | 
				
			|||||||
    ../../modules/localisation.nix
 | 
					    ../../modules/localisation.nix
 | 
				
			||||||
    ../../modules/openssh.nix
 | 
					    ../../modules/openssh.nix
 | 
				
			||||||
    ../../modules/pipewire.nix
 | 
					    ../../modules/pipewire.nix
 | 
				
			||||||
    ../../modules/podman.nix
 | 
					 | 
				
			||||||
    ../../modules/services.nix
 | 
					    ../../modules/services.nix
 | 
				
			||||||
    ../../modules/regreet/regreet.nix
 | 
					    ../../modules/regreet/regreet.nix
 | 
				
			||||||
    ../../modules/plymouth.nix
 | 
					    ../../modules/plymouth.nix
 | 
				
			||||||
    ../../modules/file_managers/spacefm.nix
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Include the results of the hardware scan.
 | 
					    # Include the results of the hardware scan.
 | 
				
			||||||
    ./hardware-configuration.nix
 | 
					    ./hardware-configuration.nix
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										41
									
								
								modules/containerization/default.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								modules/containerization/default.nix
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,41 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  lib,
 | 
				
			||||||
 | 
					  pkgs,
 | 
				
			||||||
 | 
					  containerization ? "none",
 | 
				
			||||||
 | 
					  ...
 | 
				
			||||||
 | 
					}:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					let
 | 
				
			||||||
 | 
					  # Import the appropriate containerization module based on the parameter
 | 
				
			||||||
 | 
					  containerModule =
 | 
				
			||||||
 | 
					    if containerization == "podman" then
 | 
				
			||||||
 | 
					      import ./podman.nix
 | 
				
			||||||
 | 
					    else if containerization == "docker" then
 | 
				
			||||||
 | 
					      import ./docker.nix
 | 
				
			||||||
 | 
					    else if containerization == "none" then
 | 
				
			||||||
 | 
					      { }
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
					      throw "Unknown containerization type: ${containerization}. Valid options are: podman, docker, none";
 | 
				
			||||||
 | 
					in
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  imports = [ containerModule ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Common packages and configuration for all systems
 | 
				
			||||||
 | 
					  environment.systemPackages = with pkgs; [
 | 
				
			||||||
 | 
					    # Remove the curly braces {}
 | 
				
			||||||
 | 
					    dive # docker layer viewer
 | 
				
			||||||
 | 
					    tailscale # VPN
 | 
				
			||||||
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  virtualisation.containers.enable = true;
 | 
				
			||||||
 | 
					  virtualisation.oci-containers.containers = {
 | 
				
			||||||
 | 
					    /*
 | 
				
			||||||
 | 
					      container-name = {
 | 
				
			||||||
 | 
					          image = "image";
 | 
				
			||||||
 | 
					          autoStart = true;
 | 
				
			||||||
 | 
					          ports = [ "127.0.0.1:1234:1234" ];
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					    */
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										18
									
								
								modules/containerization/docker.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								modules/containerization/docker.nix
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,18 @@
 | 
				
			|||||||
 | 
					{ pkgs, ... }:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  environment.systemPackages = with pkgs; [
 | 
				
			||||||
 | 
					    docker-compose
 | 
				
			||||||
 | 
					    lazydocker # docker tui
 | 
				
			||||||
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  virtualisation.docker = {
 | 
				
			||||||
 | 
					    enable = true;
 | 
				
			||||||
 | 
					    rootless = {
 | 
				
			||||||
 | 
					      enable = true;
 | 
				
			||||||
 | 
					      setSocketVariable = true;
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  virtualisation.oci-containers.backend = "docker";
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										17
									
								
								modules/containerization/podman.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								modules/containerization/podman.nix
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,17 @@
 | 
				
			|||||||
 | 
					{ pkgs, ... }:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  environment.systemPackages = with pkgs; [
 | 
				
			||||||
 | 
					    podman-compose # docker-compose alternative
 | 
				
			||||||
 | 
					    podman-tui # status of containers in terminal
 | 
				
			||||||
 | 
					    podman-desktop # Desktop client
 | 
				
			||||||
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  virtualisation.podman = {
 | 
				
			||||||
 | 
					    enable = true;
 | 
				
			||||||
 | 
					    dockerCompat = true;
 | 
				
			||||||
 | 
					    defaultNetwork.settings.dns_enabled = true;
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  virtualisation.oci-containers.backend = "podman";
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -1,36 +0,0 @@
 | 
				
			|||||||
{ pkgs, ... }:
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  environment.systemPackages = with pkgs; [
 | 
					 | 
				
			||||||
    # Virtualisation
 | 
					 | 
				
			||||||
    docker-compose # docker-compose alternative
 | 
					 | 
				
			||||||
    dive # docker layer viewer
 | 
					 | 
				
			||||||
    tailscale # Vpn
 | 
					 | 
				
			||||||
  ];
 | 
					 | 
				
			||||||
  # Virtualisation
 | 
					 | 
				
			||||||
  virtualisation = {
 | 
					 | 
				
			||||||
    containers.enable = true;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    docker = {
 | 
					 | 
				
			||||||
      enable = true;
 | 
					 | 
				
			||||||
      rootless = {
 | 
					 | 
				
			||||||
        enable = true;
 | 
					 | 
				
			||||||
        setSocketVariable = true;
 | 
					 | 
				
			||||||
      };
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    oci-containers = {
 | 
					 | 
				
			||||||
      backend = "docker";
 | 
					 | 
				
			||||||
      containers = {
 | 
					 | 
				
			||||||
        /*
 | 
					 | 
				
			||||||
          container-name = {
 | 
					 | 
				
			||||||
              image = "image";
 | 
					 | 
				
			||||||
              autoStart = true;
 | 
					 | 
				
			||||||
              ports = [ "127.0.0.1:1234:1234" ];
 | 
					 | 
				
			||||||
          };
 | 
					 | 
				
			||||||
        */
 | 
					 | 
				
			||||||
      };
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@@ -1,4 +1,4 @@
 | 
				
			|||||||
{ pkgs, ... }:
 | 
					{ ... }:
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  # Set your time zone.
 | 
					  # Set your time zone.
 | 
				
			||||||
  time.timeZone = "Europe/Berlin";
 | 
					  time.timeZone = "Europe/Berlin";
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,36 +0,0 @@
 | 
				
			|||||||
{ pkgs, ... }:
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  environment.systemPackages = with pkgs; [
 | 
					 | 
				
			||||||
    # Virtualisation
 | 
					 | 
				
			||||||
    podman-compose # docker-compose alternative
 | 
					 | 
				
			||||||
    dive # docker layer viewer
 | 
					 | 
				
			||||||
    podman-tui # status of containers in terminal
 | 
					 | 
				
			||||||
    podman-desktop # Desktop client
 | 
					 | 
				
			||||||
    tailscale # Vpn
 | 
					 | 
				
			||||||
  ];
 | 
					 | 
				
			||||||
  # Virtualisation
 | 
					 | 
				
			||||||
  virtualisation = {
 | 
					 | 
				
			||||||
    containers.enable = true;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    podman = {
 | 
					 | 
				
			||||||
      enable = true;
 | 
					 | 
				
			||||||
      dockerCompat = true;
 | 
					 | 
				
			||||||
      defaultNetwork.settings.dns_enabled = true;
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    oci-containers = {
 | 
					 | 
				
			||||||
      backend = "podman";
 | 
					 | 
				
			||||||
      containers = {
 | 
					 | 
				
			||||||
        /*
 | 
					 | 
				
			||||||
          container-name = {
 | 
					 | 
				
			||||||
              image = "image";
 | 
					 | 
				
			||||||
              autoStart = true;
 | 
					 | 
				
			||||||
              ports = [ "127.0.0.1:1234:1234" ];
 | 
					 | 
				
			||||||
          };
 | 
					 | 
				
			||||||
        */
 | 
					 | 
				
			||||||
      };
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@@ -31,8 +31,9 @@
 | 
				
			|||||||
    enable = true;
 | 
					    enable = true;
 | 
				
			||||||
    interactiveShellInit = ''
 | 
					    interactiveShellInit = ''
 | 
				
			||||||
      fish_config prompt choose disco  
 | 
					      fish_config prompt choose disco  
 | 
				
			||||||
 | 
					      starship init fish | source
 | 
				
			||||||
      function fish_greeting
 | 
					      function fish_greeting
 | 
				
			||||||
          fastfetch
 | 
					      		fastfetch
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
    '';
 | 
					    '';
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user