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"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "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": {
 | 
			
		||||
      "inputs": {
 | 
			
		||||
        "systems": "systems_2"
 | 
			
		||||
@@ -769,6 +790,27 @@
 | 
			
		||||
        "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": {
 | 
			
		||||
      "inputs": {
 | 
			
		||||
        "flake-utils": "flake-utils",
 | 
			
		||||
@@ -824,6 +866,7 @@
 | 
			
		||||
        "nixcord": "nixcord",
 | 
			
		||||
        "nixpkgs": "nixpkgs_4",
 | 
			
		||||
        "nixvim": "nixvim",
 | 
			
		||||
        "nur": "nur",
 | 
			
		||||
        "spicetify-nix": "spicetify-nix",
 | 
			
		||||
        "unstable": "unstable"
 | 
			
		||||
      }
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										44
									
								
								flake.nix
									
									
									
									
									
								
							
							
						
						
									
										44
									
								
								flake.nix
									
									
									
									
									
								
							@@ -17,6 +17,10 @@
 | 
			
		||||
    # Core
 | 
			
		||||
    nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11";
 | 
			
		||||
    unstable.url = "github:nixos/nixpkgs/nixos-unstable";
 | 
			
		||||
    nur = {
 | 
			
		||||
      url = "github:nix-community/NUR";
 | 
			
		||||
      inputs.nixpkgs.follows = "nixpkgs";
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    # Editor
 | 
			
		||||
    nixvim = {
 | 
			
		||||
@@ -54,8 +58,6 @@
 | 
			
		||||
    }:
 | 
			
		||||
 | 
			
		||||
    let
 | 
			
		||||
      system = "x86_64-linux";
 | 
			
		||||
 | 
			
		||||
      # Common Configuration
 | 
			
		||||
      commonModules = [
 | 
			
		||||
        (
 | 
			
		||||
@@ -79,19 +81,13 @@
 | 
			
		||||
        )
 | 
			
		||||
      ];
 | 
			
		||||
 | 
			
		||||
      commonHomeManagerConfig =
 | 
			
		||||
        {
 | 
			
		||||
          username,
 | 
			
		||||
          monitorSetup ? "single",
 | 
			
		||||
        }:
 | 
			
		||||
        {
 | 
			
		||||
      commonHomeManagerConfig = username: {
 | 
			
		||||
        home-manager = {
 | 
			
		||||
          useGlobalPkgs = true;
 | 
			
		||||
          useUserPackages = true;
 | 
			
		||||
          backupFileExtension = "backup";
 | 
			
		||||
          extraSpecialArgs = {
 | 
			
		||||
              inherit inputs;
 | 
			
		||||
              inherit username monitorSetup;
 | 
			
		||||
            inherit inputs username;
 | 
			
		||||
          };
 | 
			
		||||
          users.${username} = import ./users/${username}/home.nix;
 | 
			
		||||
          sharedModules = [
 | 
			
		||||
@@ -109,13 +105,18 @@
 | 
			
		||||
          username,
 | 
			
		||||
          system ? "x86_64-linux",
 | 
			
		||||
          monitorSetup ? "single",
 | 
			
		||||
          containerization ? "none",
 | 
			
		||||
          extraModules ? [ ],
 | 
			
		||||
        }:
 | 
			
		||||
        nixpkgs.lib.nixosSystem {
 | 
			
		||||
          inherit system;
 | 
			
		||||
          specialArgs = {
 | 
			
		||||
            inherit inputs;
 | 
			
		||||
            inherit username monitorSetup;
 | 
			
		||||
            inherit
 | 
			
		||||
              inputs
 | 
			
		||||
              username
 | 
			
		||||
              monitorSetup
 | 
			
		||||
              containerization
 | 
			
		||||
              ;
 | 
			
		||||
          };
 | 
			
		||||
          modules =
 | 
			
		||||
            commonModules
 | 
			
		||||
@@ -124,13 +125,16 @@
 | 
			
		||||
              ./users/${username}/nixos.nix
 | 
			
		||||
              home-manager.nixosModules.home-manager
 | 
			
		||||
              (commonHomeManagerConfig { inherit username monitorSetup; })
 | 
			
		||||
              ./modules/containerization
 | 
			
		||||
            ]
 | 
			
		||||
            ++ extraModules;
 | 
			
		||||
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
      # ISO configuration
 | 
			
		||||
      isoConfig = nixpkgs.lib.nixosSystem {
 | 
			
		||||
      mkIsoConfig =
 | 
			
		||||
        { system }:
 | 
			
		||||
        nixpkgs.lib.nixosSystem {
 | 
			
		||||
          inherit system;
 | 
			
		||||
          modules = [
 | 
			
		||||
            (import (nixpkgs + "/nixos/modules/installer/cd-dvd/installation-cd-minimal.nix"))
 | 
			
		||||
@@ -154,29 +158,39 @@
 | 
			
		||||
 | 
			
		||||
    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 = {
 | 
			
		||||
        iso = isoConfig;
 | 
			
		||||
        iso = mkIsoConfig { system = "x86_64-linux"; };
 | 
			
		||||
 | 
			
		||||
        qemu = mkSystem {
 | 
			
		||||
          hostname = "qemu";
 | 
			
		||||
          username = "phil";
 | 
			
		||||
          monitorSetup = "single";
 | 
			
		||||
          containerization = "none";
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        m920q = mkSystem {
 | 
			
		||||
          hostname = "m920q";
 | 
			
		||||
          username = "phil";
 | 
			
		||||
          monitorSetup = "dual";
 | 
			
		||||
          containerization = "podman";
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        hp15-n028sg = mkSystem {
 | 
			
		||||
          hostname = "hp15-n028sg";
 | 
			
		||||
          username = "phil";
 | 
			
		||||
          monitorSetup = "single";
 | 
			
		||||
          containerization = "docker";
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        cloud = mkSystem {
 | 
			
		||||
          hostname = "cluster.cyperpunk.de";
 | 
			
		||||
          username = "phil";
 | 
			
		||||
          monitorSetup = "none";
 | 
			
		||||
          containerization = "podman";
 | 
			
		||||
        };
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
    };
 | 
			
		||||
 
 | 
			
		||||
@@ -9,9 +9,9 @@
 | 
			
		||||
    #./wpaperd.nix
 | 
			
		||||
    ./swww.nix
 | 
			
		||||
    ./rofi # App Launcher
 | 
			
		||||
    #./mako.nix # Notifyer
 | 
			
		||||
    ./mako.nix # Notifyer
 | 
			
		||||
    ./cava.nix # Music Visualizer
 | 
			
		||||
    ./swaync.nix
 | 
			
		||||
    #./swaync.nix
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  programs.waybar =
 | 
			
		||||
 
 | 
			
		||||
@@ -88,6 +88,7 @@ in
 | 
			
		||||
 | 
			
		||||
    input = {
 | 
			
		||||
      kb_layout = "de";
 | 
			
		||||
      kb_variant = "mac";
 | 
			
		||||
      repeat_rate = 50;
 | 
			
		||||
      repeat_delay = 300;
 | 
			
		||||
 | 
			
		||||
@@ -216,6 +217,9 @@ in
 | 
			
		||||
      # Lock Screen
 | 
			
		||||
      "${super}, M, exit, "
 | 
			
		||||
 | 
			
		||||
      # swaync
 | 
			
		||||
      "${super}, Y, exec, swaync-client -t -sw"
 | 
			
		||||
 | 
			
		||||
      # Rofi bindings
 | 
			
		||||
      "${super}, F, exec, ${filebrowser}"
 | 
			
		||||
      "${super}, A, exec, ${apps}"
 | 
			
		||||
 
 | 
			
		||||
@@ -27,8 +27,8 @@
 | 
			
		||||
      background = [
 | 
			
		||||
        {
 | 
			
		||||
          path = "~/Pictures/Wallpapers/lucy_with_cat.png";
 | 
			
		||||
          blur_passes = 0;
 | 
			
		||||
          blur_size = 0;
 | 
			
		||||
          blur_passes = 1;
 | 
			
		||||
          blur_size = 5;
 | 
			
		||||
        }
 | 
			
		||||
      ];
 | 
			
		||||
 | 
			
		||||
@@ -37,11 +37,11 @@
 | 
			
		||||
        {
 | 
			
		||||
          monitor = "";
 | 
			
		||||
          text = "$TIME";
 | 
			
		||||
          color = "$text";
 | 
			
		||||
          color = "$peach";
 | 
			
		||||
          font_size = 90;
 | 
			
		||||
          font_family = "$font";
 | 
			
		||||
          position = "-30, 0";
 | 
			
		||||
          halign = "right";
 | 
			
		||||
          position = "0, -100";
 | 
			
		||||
          halign = "center";
 | 
			
		||||
          valign = "top";
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@@ -49,12 +49,36 @@
 | 
			
		||||
        {
 | 
			
		||||
          monitor = "";
 | 
			
		||||
          text = ''cmd[update:43200000]  date +"%A, %d %B %Y"'';
 | 
			
		||||
          color = "$text";
 | 
			
		||||
          color = "$peach";
 | 
			
		||||
          font_size = 25;
 | 
			
		||||
          font_family = "$font";
 | 
			
		||||
          position = "-30, -150";
 | 
			
		||||
          halign = "right";
 | 
			
		||||
          valign = "top";
 | 
			
		||||
          position = "0, 100";
 | 
			
		||||
          halign = "center";
 | 
			
		||||
          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";
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  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 = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
@@ -10,6 +10,9 @@
 | 
			
		||||
    extraConfig = ''
 | 
			
		||||
      [app-name=Spotify]
 | 
			
		||||
      border-color=#a6e3a1
 | 
			
		||||
 | 
			
		||||
      [app-name=Thunderbird]
 | 
			
		||||
      border-color=#94e2d5
 | 
			
		||||
    '';
 | 
			
		||||
 | 
			
		||||
  };
 | 
			
		||||
 
 | 
			
		||||
@@ -28,7 +28,7 @@
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
configuration {
 | 
			
		||||
    font:						 "Icomoon-Feather 12";
 | 
			
		||||
    font:						 "Fira Code Bold 20px";
 | 
			
		||||
    show-icons: 				 true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -89,7 +89,7 @@ textbox-prompt-colon {
 | 
			
		||||
    padding:                     15px;
 | 
			
		||||
    border:                      0px 0px 0px 10px;
 | 
			
		||||
    border-radius:               100% 100% 0px 100%;
 | 
			
		||||
    border-color:                @peach;
 | 
			
		||||
    border-color:                @blue;
 | 
			
		||||
    background-color:            @crust;
 | 
			
		||||
    text-color:                  @text;
 | 
			
		||||
}
 | 
			
		||||
@@ -117,7 +117,7 @@ listview {
 | 
			
		||||
    fixed-columns:               true;
 | 
			
		||||
    
 | 
			
		||||
    spacing:                     30px;
 | 
			
		||||
    margin:                      30px;
 | 
			
		||||
    margin:                      10px;
 | 
			
		||||
    background-color:            transparent;
 | 
			
		||||
    cursor:                      "default";
 | 
			
		||||
}
 | 
			
		||||
@@ -125,11 +125,12 @@ listview {
 | 
			
		||||
/*****----- Elements -----*****/
 | 
			
		||||
element {
 | 
			
		||||
    enabled:                     true;
 | 
			
		||||
    padding:                     35px 10px;
 | 
			
		||||
    border-radius:               5%;
 | 
			
		||||
    padding:                     10px;
 | 
			
		||||
    border-radius:               1%;
 | 
			
		||||
    background-color:            @crust;
 | 
			
		||||
    text-color:                  @text;
 | 
			
		||||
    cursor:                      pointer;
 | 
			
		||||
	children:					 [ element-text ];
 | 
			
		||||
}
 | 
			
		||||
element-text {
 | 
			
		||||
    background-color:            transparent;
 | 
			
		||||
@@ -140,7 +141,7 @@ element-text {
 | 
			
		||||
}
 | 
			
		||||
element selected.normal {
 | 
			
		||||
    background-color:            @crust;
 | 
			
		||||
    text-color:                  @sapphire;
 | 
			
		||||
    text-color:                  @yellow;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/*****----- 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;
 | 
			
		||||
      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;
 | 
			
		||||
   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 = [
 | 
			
		||||
          "hyprland/workspaces"
 | 
			
		||||
          "niri/workspaces"
 | 
			
		||||
          "custom/notification"
 | 
			
		||||
        ];
 | 
			
		||||
        modules-right = [
 | 
			
		||||
          "group/hardware"
 | 
			
		||||
 
 | 
			
		||||
@@ -49,7 +49,7 @@ layout {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
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"
 | 
			
		||||
screenshot-path "~/Pictures/Screenshots/%Y-%m-%d_%H-%M-%S.png"
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -7,5 +7,6 @@
 | 
			
		||||
    ./sqllite_browser.nix
 | 
			
		||||
    ./compilers.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/openssh.nix
 | 
			
		||||
    ../../modules/pipewire.nix
 | 
			
		||||
    ../../modules/podman.nix
 | 
			
		||||
    ../../modules/services.nix
 | 
			
		||||
    ../../modules/regreet/regreet.nix
 | 
			
		||||
    ../../modules/plymouth.nix
 | 
			
		||||
    ../../modules/file_managers/spacefm.nix
 | 
			
		||||
    # Include the results of the hardware scan.
 | 
			
		||||
    ./hardware-configuration.nix
 | 
			
		||||
  ];
 | 
			
		||||
 
 | 
			
		||||
@@ -16,8 +16,6 @@
 | 
			
		||||
    ../../modules/localisation.nix
 | 
			
		||||
    ../../modules/openssh.nix
 | 
			
		||||
    ../../modules/pipewire.nix
 | 
			
		||||
    #../../modules/podman.nix
 | 
			
		||||
    ../../modules/docker.nix
 | 
			
		||||
    ../../modules/services.nix
 | 
			
		||||
    ../../modules/regreet/regreet.nix
 | 
			
		||||
    ../../modules/plymouth.nix
 | 
			
		||||
 
 | 
			
		||||
@@ -4,7 +4,6 @@
 | 
			
		||||
{
 | 
			
		||||
  config,
 | 
			
		||||
  lib,
 | 
			
		||||
  pkgs,
 | 
			
		||||
  modulesPath,
 | 
			
		||||
  ...
 | 
			
		||||
}:
 | 
			
		||||
 
 | 
			
		||||
@@ -14,11 +14,9 @@
 | 
			
		||||
    ../../modules/localisation.nix
 | 
			
		||||
    ../../modules/openssh.nix
 | 
			
		||||
    ../../modules/pipewire.nix
 | 
			
		||||
    ../../modules/podman.nix
 | 
			
		||||
    ../../modules/services.nix
 | 
			
		||||
    ../../modules/regreet/regreet.nix
 | 
			
		||||
    ../../modules/plymouth.nix
 | 
			
		||||
    ../../modules/file_managers/spacefm.nix
 | 
			
		||||
 | 
			
		||||
    # Include the results of the hardware scan.
 | 
			
		||||
    ./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.
 | 
			
		||||
  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,6 +31,7 @@
 | 
			
		||||
    enable = true;
 | 
			
		||||
    interactiveShellInit = ''
 | 
			
		||||
      fish_config prompt choose disco  
 | 
			
		||||
      starship init fish | source
 | 
			
		||||
      function fish_greeting
 | 
			
		||||
      		fastfetch
 | 
			
		||||
      end
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user