Set Styling for rofi
This commit is contained in:
		
							
								
								
									
										90
									
								
								flake.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										90
									
								
								flake.lock
									
									
									
										generated
									
									
									
								
							@@ -67,6 +67,38 @@
 | 
				
			|||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "flake-compat_2": {
 | 
				
			||||||
 | 
					      "locked": {
 | 
				
			||||||
 | 
					        "lastModified": 1733328505,
 | 
				
			||||||
 | 
					        "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
 | 
				
			||||||
 | 
					        "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
 | 
				
			||||||
 | 
					        "revCount": 69,
 | 
				
			||||||
 | 
					        "type": "tarball",
 | 
				
			||||||
 | 
					        "url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.1.0/01948eb7-9cba-704f-bbf3-3fa956735b52/source.tar.gz?rev=ff81ac966bb2cae68946d5ed5fc4994f96d0ffec&revCount=69"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "original": {
 | 
				
			||||||
 | 
					        "type": "tarball",
 | 
				
			||||||
 | 
					        "url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "flake-parts": {
 | 
				
			||||||
 | 
					      "inputs": {
 | 
				
			||||||
 | 
					        "nixpkgs-lib": "nixpkgs-lib"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "locked": {
 | 
				
			||||||
 | 
					        "lastModified": 1754091436,
 | 
				
			||||||
 | 
					        "narHash": "sha256-XKqDMN1/Qj1DKivQvscI4vmHfDfvYR2pfuFOJiCeewM=",
 | 
				
			||||||
 | 
					        "owner": "hercules-ci",
 | 
				
			||||||
 | 
					        "repo": "flake-parts",
 | 
				
			||||||
 | 
					        "rev": "67df8c627c2c39c41dbec76a1f201929929ab0bd",
 | 
				
			||||||
 | 
					        "type": "github"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "original": {
 | 
				
			||||||
 | 
					        "owner": "hercules-ci",
 | 
				
			||||||
 | 
					        "repo": "flake-parts",
 | 
				
			||||||
 | 
					        "type": "github"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "gitignore": {
 | 
					    "gitignore": {
 | 
				
			||||||
      "inputs": {
 | 
					      "inputs": {
 | 
				
			||||||
        "nixpkgs": [
 | 
					        "nixpkgs": [
 | 
				
			||||||
@@ -399,6 +431,26 @@
 | 
				
			|||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "nixcord": {
 | 
				
			||||||
 | 
					      "inputs": {
 | 
				
			||||||
 | 
					        "flake-compat": "flake-compat_2",
 | 
				
			||||||
 | 
					        "flake-parts": "flake-parts",
 | 
				
			||||||
 | 
					        "nixpkgs": "nixpkgs_3"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "locked": {
 | 
				
			||||||
 | 
					        "lastModified": 1755307498,
 | 
				
			||||||
 | 
					        "narHash": "sha256-6AXJWZnW/Y9qxlblabRx3NeMtfeMGicndefYEolzgtg=",
 | 
				
			||||||
 | 
					        "owner": "kaylorben",
 | 
				
			||||||
 | 
					        "repo": "nixcord",
 | 
				
			||||||
 | 
					        "rev": "a171d05a26467a74c66138ac83f1dd1fb07e4a3e",
 | 
				
			||||||
 | 
					        "type": "github"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "original": {
 | 
				
			||||||
 | 
					        "owner": "kaylorben",
 | 
				
			||||||
 | 
					        "repo": "nixcord",
 | 
				
			||||||
 | 
					        "type": "github"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "nixpkgs": {
 | 
					    "nixpkgs": {
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1743583204,
 | 
					        "lastModified": 1743583204,
 | 
				
			||||||
@@ -415,6 +467,21 @@
 | 
				
			|||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "nixpkgs-lib": {
 | 
				
			||||||
 | 
					      "locked": {
 | 
				
			||||||
 | 
					        "lastModified": 1753579242,
 | 
				
			||||||
 | 
					        "narHash": "sha256-zvaMGVn14/Zz8hnp4VWT9xVnhc8vuL3TStRqwk22biA=",
 | 
				
			||||||
 | 
					        "owner": "nix-community",
 | 
				
			||||||
 | 
					        "repo": "nixpkgs.lib",
 | 
				
			||||||
 | 
					        "rev": "0f36c44e01a6129be94e3ade315a5883f0228a6e",
 | 
				
			||||||
 | 
					        "type": "github"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "original": {
 | 
				
			||||||
 | 
					        "owner": "nix-community",
 | 
				
			||||||
 | 
					        "repo": "nixpkgs.lib",
 | 
				
			||||||
 | 
					        "type": "github"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "nixpkgs_2": {
 | 
					    "nixpkgs_2": {
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1742669843,
 | 
					        "lastModified": 1742669843,
 | 
				
			||||||
@@ -432,6 +499,22 @@
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "nixpkgs_3": {
 | 
					    "nixpkgs_3": {
 | 
				
			||||||
 | 
					      "locked": {
 | 
				
			||||||
 | 
					        "lastModified": 1754028485,
 | 
				
			||||||
 | 
					        "narHash": "sha256-IiiXB3BDTi6UqzAZcf2S797hWEPCRZOwyNThJIYhUfk=",
 | 
				
			||||||
 | 
					        "owner": "NixOS",
 | 
				
			||||||
 | 
					        "repo": "nixpkgs",
 | 
				
			||||||
 | 
					        "rev": "59e69648d345d6e8fef86158c555730fa12af9de",
 | 
				
			||||||
 | 
					        "type": "github"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "original": {
 | 
				
			||||||
 | 
					        "owner": "NixOS",
 | 
				
			||||||
 | 
					        "ref": "nixos-25.05",
 | 
				
			||||||
 | 
					        "repo": "nixpkgs",
 | 
				
			||||||
 | 
					        "type": "github"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "nixpkgs_4": {
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1743576891,
 | 
					        "lastModified": 1743576891,
 | 
				
			||||||
        "narHash": "sha256-vXiKURtntURybE6FMNFAVpRPr8+e8KoLPrYs9TGuAKc=",
 | 
					        "narHash": "sha256-vXiKURtntURybE6FMNFAVpRPr8+e8KoLPrYs9TGuAKc=",
 | 
				
			||||||
@@ -447,7 +530,7 @@
 | 
				
			|||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "nixpkgs_4": {
 | 
					    "nixpkgs_5": {
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1751984180,
 | 
					        "lastModified": 1751984180,
 | 
				
			||||||
        "narHash": "sha256-LwWRsENAZJKUdD3SpLluwDmdXY9F45ZEgCb0X+xgOL0=",
 | 
					        "narHash": "sha256-LwWRsENAZJKUdD3SpLluwDmdXY9F45ZEgCb0X+xgOL0=",
 | 
				
			||||||
@@ -492,13 +575,14 @@
 | 
				
			|||||||
        "home-manager": "home-manager",
 | 
					        "home-manager": "home-manager",
 | 
				
			||||||
        "hyprland": "hyprland",
 | 
					        "hyprland": "hyprland",
 | 
				
			||||||
        "hyprland-plugins": "hyprland-plugins",
 | 
					        "hyprland-plugins": "hyprland-plugins",
 | 
				
			||||||
        "nixpkgs": "nixpkgs_3",
 | 
					        "nixcord": "nixcord",
 | 
				
			||||||
 | 
					        "nixpkgs": "nixpkgs_4",
 | 
				
			||||||
        "spicetify-nix": "spicetify-nix"
 | 
					        "spicetify-nix": "spicetify-nix"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "spicetify-nix": {
 | 
					    "spicetify-nix": {
 | 
				
			||||||
      "inputs": {
 | 
					      "inputs": {
 | 
				
			||||||
        "nixpkgs": "nixpkgs_4",
 | 
					        "nixpkgs": "nixpkgs_5",
 | 
				
			||||||
        "systems": "systems_2"
 | 
					        "systems": "systems_2"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										210
									
								
								flake.nix
									
									
									
									
									
								
							
							
						
						
									
										210
									
								
								flake.nix
									
									
									
									
									
								
							@@ -1,17 +1,8 @@
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
  description = "NixOS configuration of DerGrumpf";
 | 
					  description = "NixOS configuration of DerGrumpf";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  ##################################################################################################################
 | 
					 | 
				
			||||||
  #
 | 
					 | 
				
			||||||
  # Want to know Nix in details? Looking for a beginner-friendly tutorial?
 | 
					 | 
				
			||||||
  # Check out https://github.com/ryan4yin/nixos-and-flakes-book !
 | 
					 | 
				
			||||||
  #
 | 
					 | 
				
			||||||
  ##################################################################################################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  # the nixConfig here only affects the flake itself, not the system configuration!
 | 
					  # the nixConfig here only affects the flake itself, not the system configuration!
 | 
				
			||||||
  nixConfig = {
 | 
					  nixConfig = {
 | 
				
			||||||
    # substituers will be appended to the default substituters when fetching packages
 | 
					 | 
				
			||||||
    # nix com    extra-substituters = [munity's cache server
 | 
					 | 
				
			||||||
    extra-substituters = [
 | 
					    extra-substituters = [
 | 
				
			||||||
      "https://nix-community.cachix.org"
 | 
					      "https://nix-community.cachix.org"
 | 
				
			||||||
    ];
 | 
					    ];
 | 
				
			||||||
@@ -24,11 +15,14 @@
 | 
				
			|||||||
    nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11";
 | 
					    nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11";
 | 
				
			||||||
    hyprland.url = "github:hyprwm/Hyprland";
 | 
					    hyprland.url = "github:hyprwm/Hyprland";
 | 
				
			||||||
    spicetify-nix.url = "github:Gerg-L/spicetify-nix";
 | 
					    spicetify-nix.url = "github:Gerg-L/spicetify-nix";
 | 
				
			||||||
    
 | 
					    nixcord.url = "github:kaylorben/nixcord";
 | 
				
			||||||
    /*nixvim = {
 | 
					
 | 
				
			||||||
        url = "github:nix-community/nixvim/nixos-24.11";
 | 
					    /*
 | 
				
			||||||
        inputs.nixpkgs.follows = "nixpkgs";
 | 
					      nixvim = {
 | 
				
			||||||
    };*/
 | 
					          url = "github:nix-community/nixvim/nixos-24.11";
 | 
				
			||||||
 | 
					          inputs.nixpkgs.follows = "nixpkgs";
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					    */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    catppuccin.url = "github:catppuccin/nix";
 | 
					    catppuccin.url = "github:catppuccin/nix";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -36,104 +30,126 @@
 | 
				
			|||||||
    home-manager.inputs.nixpkgs.follows = "nixpkgs";
 | 
					    home-manager.inputs.nixpkgs.follows = "nixpkgs";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    hyprland-plugins = {
 | 
					    hyprland-plugins = {
 | 
				
			||||||
        url = "github:hyprwm/hyprland-plugins";
 | 
					      url = "github:hyprwm/hyprland-plugins";
 | 
				
			||||||
        inputs.hyprland.follows = "hyprland";
 | 
					      inputs.hyprland.follows = "hyprland";
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  outputs = inputs @ {
 | 
					  outputs =
 | 
				
			||||||
    self,
 | 
					    inputs@{
 | 
				
			||||||
    nixpkgs,
 | 
					      self,
 | 
				
			||||||
    home-manager,
 | 
					      nixpkgs,
 | 
				
			||||||
    catppuccin,
 | 
					      home-manager,
 | 
				
			||||||
    ...
 | 
					      catppuccin,
 | 
				
			||||||
  }: {
 | 
					      ...
 | 
				
			||||||
    packages.x86_64-linux.default = self.nixosConfigurations.iso.config.system.build.isoImage;
 | 
					    }:
 | 
				
			||||||
    nixosConfigurations = {
 | 
					    {
 | 
				
			||||||
      iso = nixpkgs.lib.nixosSystem {
 | 
					      packages.x86_64-linux.default = self.nixosConfigurations.iso.config.system.build.isoImage;
 | 
				
			||||||
        system = "x86_64-linux";
 | 
					      nixosConfigurations = {
 | 
				
			||||||
        modules = [
 | 
					        iso = nixpkgs.lib.nixosSystem {
 | 
				
			||||||
            ({ pkgs, modulesPath, ... }: {
 | 
					          system = "x86_64-linux";
 | 
				
			||||||
 | 
					          modules = [
 | 
				
			||||||
 | 
					            (
 | 
				
			||||||
 | 
					              { pkgs, modulesPath, ... }:
 | 
				
			||||||
 | 
					              {
 | 
				
			||||||
                imports = [ (modulesPath + "/installer/cd-dvd/installation-cd-minimal.nix") ];
 | 
					                imports = [ (modulesPath + "/installer/cd-dvd/installation-cd-minimal.nix") ];
 | 
				
			||||||
                environment.systemPackages = with pkgs; [
 | 
					                environment.systemPackages = with pkgs; [
 | 
				
			||||||
                    neovim 
 | 
					                  neovim
 | 
				
			||||||
                    git
 | 
					                  git
 | 
				
			||||||
                    wget
 | 
					                  wget
 | 
				
			||||||
                    curl
 | 
					                  curl
 | 
				
			||||||
                ];
 | 
					                ];
 | 
				
			||||||
                nix.settings.experimental-features = ["nix-command" "flakes"];
 | 
					                nix.settings.experimental-features = [
 | 
				
			||||||
             })
 | 
					                  "nix-command"
 | 
				
			||||||
        ];
 | 
					                  "flakes"
 | 
				
			||||||
      };
 | 
					                ];
 | 
				
			||||||
 | 
					              }
 | 
				
			||||||
      m920q = let
 | 
					            )
 | 
				
			||||||
        username = "phil";
 | 
					 | 
				
			||||||
        specialArgs = {inherit username;};
 | 
					 | 
				
			||||||
      in
 | 
					 | 
				
			||||||
        nixpkgs.lib.nixosSystem {
 | 
					 | 
				
			||||||
          inherit specialArgs;
 | 
					 | 
				
			||||||
          system = "x86_64-linux";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
          modules = [
 | 
					 | 
				
			||||||
            ./hosts/m920q
 | 
					 | 
				
			||||||
            ./users/${username}/nixos.nix
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            home-manager.nixosModules.home-manager
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
              home-manager.useGlobalPkgs = true;
 | 
					 | 
				
			||||||
              home-manager.useUserPackages = true;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
              home-manager.extraSpecialArgs = inputs // specialArgs;
 | 
					 | 
				
			||||||
              home-manager.users.${username} = import ./users/${username}/home.nix;
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
          ];
 | 
					          ];
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      qemu = let
 | 
					        m920q =
 | 
				
			||||||
        username = "phil";
 | 
					          let
 | 
				
			||||||
        specialArgs = {inherit username;};
 | 
					            username = "phil";
 | 
				
			||||||
      in
 | 
					            specialArgs = {
 | 
				
			||||||
        nixpkgs.lib.nixosSystem {
 | 
					              inherit inputs username;
 | 
				
			||||||
          inherit specialArgs;
 | 
					            };
 | 
				
			||||||
          system = "x86_64-linux";
 | 
					          in
 | 
				
			||||||
 | 
					          nixpkgs.lib.nixosSystem {
 | 
				
			||||||
 | 
					            inherit specialArgs;
 | 
				
			||||||
 | 
					            system = "x86_64-linux";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
          modules = [
 | 
					            modules = [
 | 
				
			||||||
            ./hosts/qemu
 | 
					              ./hosts/m920q
 | 
				
			||||||
            ./users/${username}/nixos.nix
 | 
					              ./users/${username}/nixos.nix
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            home-manager.nixosModules.home-manager
 | 
					              home-manager.nixosModules.home-manager
 | 
				
			||||||
            {
 | 
					              {
 | 
				
			||||||
              home-manager.useGlobalPkgs = true;
 | 
					                home-manager.useGlobalPkgs = true;
 | 
				
			||||||
              home-manager.useUserPackages = true;
 | 
					                home-manager.useUserPackages = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
              home-manager.extraSpecialArgs = inputs // specialArgs;
 | 
					                home-manager.backupFileExtension = "backup";
 | 
				
			||||||
              home-manager.users.${username} = import ./users/${username}/home.nix;
 | 
					                home-manager.extraSpecialArgs = inputs // specialArgs;
 | 
				
			||||||
            }
 | 
					                home-manager.users.${username} = import ./users/${username}/home.nix;
 | 
				
			||||||
          ];
 | 
					                home-manager.sharedModules = [
 | 
				
			||||||
        }; 
 | 
					                  inputs.nixcord.homeModules.nixcord
 | 
				
			||||||
 | 
					                ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      hp15-n028sg = let
 | 
					                nix.settings.experimental-features = [
 | 
				
			||||||
        username = "phil";
 | 
					                  "nix-command"
 | 
				
			||||||
        specialArgs = {inherit username;};
 | 
					                  "flakes"
 | 
				
			||||||
      in
 | 
					                ];
 | 
				
			||||||
        nixpkgs.lib.nixosSystem {
 | 
					              }
 | 
				
			||||||
          inherit specialArgs;
 | 
					            ];
 | 
				
			||||||
          system = "x86_64-linux";
 | 
					          };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
          modules = [
 | 
					        qemu =
 | 
				
			||||||
            ./hosts/hp15-n028sg
 | 
					          let
 | 
				
			||||||
            ./users/${username}/nixos.nix
 | 
					            username = "phil";
 | 
				
			||||||
 | 
					            specialArgs = { inherit username; };
 | 
				
			||||||
 | 
					          in
 | 
				
			||||||
 | 
					          nixpkgs.lib.nixosSystem {
 | 
				
			||||||
 | 
					            inherit specialArgs;
 | 
				
			||||||
 | 
					            system = "x86_64-linux";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            home-manager.nixosModules.home-manager
 | 
					            modules = [
 | 
				
			||||||
            {
 | 
					              ./hosts/qemu
 | 
				
			||||||
              home-manager.useGlobalPkgs = true;
 | 
					              ./users/${username}/nixos.nix
 | 
				
			||||||
              home-manager.useUserPackages = true;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
              home-manager.extraSpecialArgs = inputs // specialArgs;
 | 
					              home-manager.nixosModules.home-manager
 | 
				
			||||||
              home-manager.users.${username} = import ./users/${username}/home.nix;
 | 
					              {
 | 
				
			||||||
            }
 | 
					                home-manager.useGlobalPkgs = true;
 | 
				
			||||||
          ];
 | 
					                home-manager.useUserPackages = true;
 | 
				
			||||||
        }; 
 | 
					
 | 
				
			||||||
 | 
					                home-manager.extraSpecialArgs = inputs // specialArgs;
 | 
				
			||||||
 | 
					                home-manager.users.${username} = import ./users/${username}/home.nix;
 | 
				
			||||||
 | 
					              }
 | 
				
			||||||
 | 
					            ];
 | 
				
			||||||
 | 
					          };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        hp15-n028sg =
 | 
				
			||||||
 | 
					          let
 | 
				
			||||||
 | 
					            username = "phil";
 | 
				
			||||||
 | 
					            specialArgs = { inherit username; };
 | 
				
			||||||
 | 
					          in
 | 
				
			||||||
 | 
					          nixpkgs.lib.nixosSystem {
 | 
				
			||||||
 | 
					            inherit specialArgs;
 | 
				
			||||||
 | 
					            system = "x86_64-linux";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            modules = [
 | 
				
			||||||
 | 
					              ./hosts/hp15-n028sg
 | 
				
			||||||
 | 
					              ./users/${username}/nixos.nix
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					              home-manager.nixosModules.home-manager
 | 
				
			||||||
 | 
					              {
 | 
				
			||||||
 | 
					                home-manager.useGlobalPkgs = true;
 | 
				
			||||||
 | 
					                home-manager.useUserPackages = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                home-manager.extraSpecialArgs = inputs // specialArgs;
 | 
				
			||||||
 | 
					                home-manager.users.${username} = import ./users/${username}/home.nix;
 | 
				
			||||||
 | 
					              }
 | 
				
			||||||
 | 
					            ];
 | 
				
			||||||
 | 
					          };
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,4 +1,5 @@
 | 
				
			|||||||
{username, ...}: {
 | 
					{ username, ... }:
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
  # Home Manager needs a bit of information about you and the
 | 
					  # Home Manager needs a bit of information about you and the
 | 
				
			||||||
  # paths it should manage.
 | 
					  # paths it should manage.
 | 
				
			||||||
  home = {
 | 
					  home = {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,8 +1,8 @@
 | 
				
			|||||||
{ pkgs, ... }:
 | 
					{ pkgs, ... }:
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    home.packages = with pkgs; [
 | 
					  home.packages = with pkgs; [
 | 
				
			||||||
        kdePackages.dolphin
 | 
					    kdePackages.dolphin
 | 
				
			||||||
        libsForQt5.kio-extras
 | 
					    libsForQt5.kio-extras
 | 
				
			||||||
        kio-fuse
 | 
					    kio-fuse
 | 
				
			||||||
    ];
 | 
					  ];
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,11 +1,11 @@
 | 
				
			|||||||
{ pkgs, ... }:
 | 
					{ pkgs, ... }:
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	home.packages = with pkgs; [
 | 
					  home.packages = with pkgs; [
 | 
				
			||||||
		krusader
 | 
					    krusader
 | 
				
			||||||
		krename
 | 
					    krename
 | 
				
			||||||
		kdiff3
 | 
					    kdiff3
 | 
				
			||||||
#		kdePackages.kompare
 | 
					    #		kdePackages.kompare
 | 
				
			||||||
		xxdiff
 | 
					    xxdiff
 | 
				
			||||||
	];
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,4 +1,4 @@
 | 
				
			|||||||
{ pkgs, ... }:
 | 
					{ pkgs, ... }:
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	progams.spacefm.enable = true;
 | 
					  progams.spacefm.enable = true;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,4 @@
 | 
				
			|||||||
{ pkgs, ... }:
 | 
					{ pkgs, ... }:
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,8 +1,48 @@
 | 
				
			|||||||
{ pkgs, ... }:
 | 
					{ pkgs, ... }:
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	programs.alacritty = {
 | 
					  programs.alacritty = {
 | 
				
			||||||
		enable = true;
 | 
					    enable = true;
 | 
				
			||||||
 | 
					    settings = {
 | 
				
			||||||
 | 
					      # Font
 | 
				
			||||||
 | 
					      font = {
 | 
				
			||||||
 | 
					        normal = {
 | 
				
			||||||
 | 
					          family = "FiraCode Nerd Font Mono"; # Change to your preferred Nerd Font
 | 
				
			||||||
 | 
					          style = "Regular";
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					        bold = {
 | 
				
			||||||
 | 
					          family = "FiraCode Nerd Font Mono";
 | 
				
			||||||
 | 
					          style = "Bold";
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					        italic = {
 | 
				
			||||||
 | 
					          family = "FiraCode Nerd Font Mono";
 | 
				
			||||||
 | 
					          style = "Italic";
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					        size = 11;
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					      window = {
 | 
				
			||||||
 | 
					        opacity = 0.6; # Adjust between 0.0 (fully transparent) and 1.0 (opaque)
 | 
				
			||||||
 | 
					        padding = {
 | 
				
			||||||
 | 
					          x = 10;
 | 
				
			||||||
 | 
					          y = 10;
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					        decorations = "full"; # none, transparent, full, buttonless
 | 
				
			||||||
 | 
					        title = "Alacritty";
 | 
				
			||||||
 | 
					        dynamic_title = true;
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	};
 | 
					    };
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  fonts = {
 | 
				
			||||||
 | 
					    fontconfig = {
 | 
				
			||||||
 | 
					      enable = true;
 | 
				
			||||||
 | 
					      defaultFonts = {
 | 
				
			||||||
 | 
					        monospace = [ "FiraCode Nerd Font Mono" ];
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  home.packages = with pkgs; [
 | 
				
			||||||
 | 
					    fira-code-nerdfont
 | 
				
			||||||
 | 
					  ];
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,13 +1,14 @@
 | 
				
			|||||||
{ pkgs, ...}: {
 | 
					{ pkgs, ... }:
 | 
				
			||||||
    imports = [
 | 
					{
 | 
				
			||||||
        ./kitty.nix # Terminal
 | 
					  imports = [
 | 
				
			||||||
	    ./alacritty.nix
 | 
					    ./kitty.nix # Terminal
 | 
				
			||||||
        ./hyprland.nix
 | 
					    ./alacritty.nix
 | 
				
			||||||
        ./hypridle.nix
 | 
					    ./hyprland.nix
 | 
				
			||||||
        ./hyprlock.nix
 | 
					    ./hypridle.nix
 | 
				
			||||||
        ./hyprpaper.nix
 | 
					    ./hyprlock.nix
 | 
				
			||||||
        ./rofi # App Launcher
 | 
					    ./hyprpaper.nix
 | 
				
			||||||
        ./mako.nix # Notifyer
 | 
					    ./rofi # App Launcher
 | 
				
			||||||
    ];
 | 
					    ./mako.nix # Notifyer
 | 
				
			||||||
   
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,34 +1,35 @@
 | 
				
			|||||||
{ pkgs, ... }:
 | 
					{ pkgs, ... }:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    # Hyprland and related packages
 | 
					  # Hyprland and related packages
 | 
				
			||||||
    home.packages = with pkgs; [
 | 
					  home.packages = with pkgs; [
 | 
				
			||||||
        hypridle
 | 
					    hypridle
 | 
				
			||||||
    ];
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Hypridle configuration
 | 
					  # Hypridle configuration
 | 
				
			||||||
    services.hypridle = {
 | 
					  services.hypridle = {
 | 
				
			||||||
        enable = true;
 | 
					    enable = true;
 | 
				
			||||||
        settings = {
 | 
					    settings = {
 | 
				
			||||||
            general = {
 | 
					      general = {
 | 
				
			||||||
                after_sleep_cmd = "hyprctl dispatch dpms on";
 | 
					        after_sleep_cmd = "hyprctl dispatch dpms on";
 | 
				
			||||||
                ignore_dbus_inhibit = false;
 | 
					        ignore_dbus_inhibit = false;
 | 
				
			||||||
                lock_cmd = "hyprlock";
 | 
					        lock_cmd = "hyprlock";
 | 
				
			||||||
		before_sleep_cmd = ''notify-send -u critical "Hey master, I’m getting sleepy… I’ll see you in my code dreams 💖" --icon
 | 
					        before_sleep_cmd = ''
 | 
				
			||||||
="$HOME/.config/hypr/avatar.png" --app-name="Hyprlock"'';
 | 
					          notify-send -u critical "Hey master, I’m getting sleepy… I’ll see you in my code dreams 💖" --icon
 | 
				
			||||||
            };
 | 
					          ="$HOME/.config/hypr/avatar.png" --app-name="Hyprlock"'';
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            listener = [
 | 
					      listener = [
 | 
				
			||||||
                {
 | 
					        {
 | 
				
			||||||
                    timeout = 300;
 | 
					          timeout = 300;
 | 
				
			||||||
                    on-timeout = "hyprlock";
 | 
					          on-timeout = "hyprlock";
 | 
				
			||||||
                }
 | 
					        }
 | 
				
			||||||
                {
 | 
					        {
 | 
				
			||||||
                    timeout = 600;
 | 
					          timeout = 600;
 | 
				
			||||||
                    on-timeout = "hyprctl dispatch dpms off";
 | 
					          on-timeout = "hyprctl dispatch dpms off";
 | 
				
			||||||
                    on-resume = "hyprctl dispatch dpms on";
 | 
					          on-resume = "hyprctl dispatch dpms on";
 | 
				
			||||||
                }
 | 
					        }
 | 
				
			||||||
            ];
 | 
					      ];
 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,281 +1,280 @@
 | 
				
			|||||||
{ inputs, pkgs, ...}:
 | 
					{ pkgs, ... }:
 | 
				
			||||||
let 
 | 
					let
 | 
				
			||||||
    package = pkgs.hyprland;
 | 
					  package = pkgs.hyprland;
 | 
				
			||||||
    super = "SUPER";
 | 
					  super = "SUPER";
 | 
				
			||||||
    terminal = "kitty";
 | 
					  terminal = "kitty";
 | 
				
			||||||
    fileManager = "spacefm";
 | 
					  fileManager = "yazi";
 | 
				
			||||||
    theme = "-theme $HOME/.config/rofi/catppuccin-default.rasi";
 | 
					  theme = "-theme $HOME/.config/rofi/custom.rasi";
 | 
				
			||||||
    menu = "rofi -show drun ${theme}";
 | 
					  menu = "rofi -show drun ${theme}";
 | 
				
			||||||
    filebrowser = "rofi -show filebrowser ${theme}";
 | 
					  filebrowser = "rofi -show filebrowser ${theme}";
 | 
				
			||||||
    power = "rofi -show p -modi p:rofi-power-menu";
 | 
					  power = "rofi -show p -modi p:rofi-power-menu";
 | 
				
			||||||
in 
 | 
					in
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    home.packages = with pkgs; [
 | 
					  home.packages = with pkgs; [
 | 
				
			||||||
        grim
 | 
					    grim
 | 
				
			||||||
        slurp
 | 
					    slurp
 | 
				
			||||||
        wl-clipboard
 | 
					    wl-clipboard
 | 
				
			||||||
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  home.file.".config/hypr" = {
 | 
				
			||||||
 | 
					    source = ./configs;
 | 
				
			||||||
 | 
					    # copy the scripts directory recursively
 | 
				
			||||||
 | 
					    recursive = true;
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  home.pointerCursor = {
 | 
				
			||||||
 | 
					    gtk.enable = true;
 | 
				
			||||||
 | 
					    package = pkgs.bibata-cursors;
 | 
				
			||||||
 | 
					    name = "Bibata-Modern-Classic";
 | 
				
			||||||
 | 
					    size = 16;
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  systemd.user.targets.hyprland-sessionn.Unit.Wants = [
 | 
				
			||||||
 | 
					    "xdg-desktop-autostart.target"
 | 
				
			||||||
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  wayland.windowManager.hyprland = {
 | 
				
			||||||
 | 
					    inherit package;
 | 
				
			||||||
 | 
					    enable = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    xwayland.enable = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    systemd = {
 | 
				
			||||||
 | 
					      enable = true;
 | 
				
			||||||
 | 
					      variables = [ "--all" ];
 | 
				
			||||||
 | 
					      enableXdgAutostart = true;
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    plugins = [
 | 
				
			||||||
 | 
					      #inputs.hyprland-plugins.packages.${pkgs.stdenv.hostPlatform.system}.hyprbars
 | 
				
			||||||
 | 
					    ];
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  wayland.windowManager.hyprland.settings = {
 | 
				
			||||||
 | 
					    source = [
 | 
				
			||||||
 | 
					      "~/.config/hypr/mocha.conf"
 | 
				
			||||||
    ];
 | 
					    ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    home.file.".config/hypr" = {
 | 
					    env = [
 | 
				
			||||||
        source = ./configs;
 | 
					      "NIXOS_OZONE_WL,1"
 | 
				
			||||||
        # copy the scripts directory recursively
 | 
					      "MOZ_ENABLE_WAYLAND,1"
 | 
				
			||||||
        recursive = true;
 | 
					      "MOZ_WEBRENDER,1"
 | 
				
			||||||
    };
 | 
					      "_JAVA_AWT_WM_NONREPARENTING,1"
 | 
				
			||||||
 | 
					      "QT_WAYLAND_DISABLE_WINDOWDECORATION,1"
 | 
				
			||||||
    home.pointerCursor = {
 | 
					      "QT_QPA_PLATFORM,wayland"
 | 
				
			||||||
        gtk.enable = true;
 | 
					      "SDL_VIDEODRIVER,wayland"
 | 
				
			||||||
        package = pkgs.bibata-cursors;
 | 
					      "GDK_BACKEND,wayland,x11"
 | 
				
			||||||
        name = "Bibata-Modern-Classic";
 | 
					      "XCURSOR_SIZE,24"
 | 
				
			||||||
        size = 16;
 | 
					      "EDITOR,nvim"
 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    systemd.user.targets.hyprland-sessionn.Unit.Wants = [
 | 
					 | 
				
			||||||
        "xdg-desktop-autostart.target"
 | 
					 | 
				
			||||||
    ];
 | 
					    ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    wayland.windowManager.hyprland = {
 | 
					    monitor = [
 | 
				
			||||||
        inherit package;
 | 
					      "DP-1, 1920x1080@60, 1920x0, 1"
 | 
				
			||||||
        enable = true;
 | 
					      "HDMI-A-2, 1920x1080@60, 0x0, 1"
 | 
				
			||||||
 | 
					    ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        xwayland.enable = true;
 | 
					    input = {
 | 
				
			||||||
 | 
					      kb_layout = "de";
 | 
				
			||||||
 | 
					      repeat_rate = 50;
 | 
				
			||||||
 | 
					      repeat_delay = 300;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        systemd = {
 | 
					      accel_profile = "flat";
 | 
				
			||||||
            enable = true;
 | 
					      follow_mouse = 1;
 | 
				
			||||||
            variables = [ "--all" ];
 | 
					      mouse_refocus = false;
 | 
				
			||||||
            enableXdgAutostart = true;
 | 
					      sensitivity = 0; # -1.0 to 1.0, 0 means no modification.
 | 
				
			||||||
        };
 | 
					
 | 
				
			||||||
 | 
					      numlock_by_default = 1;
 | 
				
			||||||
 | 
					      touchpad = {
 | 
				
			||||||
 | 
					        natural_scroll = true;
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        plugins = [
 | 
					 | 
				
			||||||
            #inputs.hyprland-plugins.packages.${pkgs.stdenv.hostPlatform.system}.hyprbars
 | 
					 | 
				
			||||||
        ];
 | 
					 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    wayland.windowManager.hyprland.settings = {
 | 
					    general = {
 | 
				
			||||||
	source = [
 | 
					      # See https://wiki.hyprland.org/Configuring/Variables/ for more
 | 
				
			||||||
		"~/.config/hypr/mocha.conf"
 | 
					      gaps_in = 8;
 | 
				
			||||||
	];
 | 
					      gaps_out = 16;
 | 
				
			||||||
 | 
					      border_size = 4;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        env = [
 | 
					      "col.active_border" = "$green";
 | 
				
			||||||
            "NIXOS_OZONE_WL,1"
 | 
					      "col.inactive_border" = "$red";
 | 
				
			||||||
            "MOZ_ENABLE_WAYLAND,1"
 | 
					 | 
				
			||||||
            "MOZ_WEBRENDER,1"
 | 
					 | 
				
			||||||
            "_JAVA_AWT_WM_NONREPARENTING,1"
 | 
					 | 
				
			||||||
            "QT_WAYLAND_DISABLE_WINDOWDECORATION,1"
 | 
					 | 
				
			||||||
            "QT_QPA_PLATFORM,wayland"
 | 
					 | 
				
			||||||
            "SDL_VIDEODRIVER,wayland"
 | 
					 | 
				
			||||||
            "GDK_BACKEND,wayland,x11"
 | 
					 | 
				
			||||||
            "XCURSOR_SIZE,24"
 | 
					 | 
				
			||||||
            "EDITOR,nvim"
 | 
					 | 
				
			||||||
        ];
 | 
					 | 
				
			||||||
        
 | 
					 | 
				
			||||||
        monitor = [
 | 
					 | 
				
			||||||
            "DP-1, 1920x1080@60, 1920x0, 1"  
 | 
					 | 
				
			||||||
            "HDMI-A-2, 1920x1080@60, 0x0, 1"
 | 
					 | 
				
			||||||
        ];
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        input = {
 | 
					      layout = "dwindle";
 | 
				
			||||||
            kb_layout = "de";
 | 
					 | 
				
			||||||
            repeat_rate = 50;
 | 
					 | 
				
			||||||
            repeat_delay = 300;
 | 
					 | 
				
			||||||
            
 | 
					 | 
				
			||||||
            accel_profile = "flat";
 | 
					 | 
				
			||||||
            follow_mouse = 1;
 | 
					 | 
				
			||||||
            mouse_refocus = false;
 | 
					 | 
				
			||||||
            sensitivity = 0; # -1.0 to 1.0, 0 means no modification.
 | 
					 | 
				
			||||||
            
 | 
					 | 
				
			||||||
            numlock_by_default = 1;
 | 
					 | 
				
			||||||
            touchpad = {
 | 
					 | 
				
			||||||
                natural_scroll = true;
 | 
					 | 
				
			||||||
            };
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        };
 | 
					      # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
 | 
				
			||||||
 | 
					      allow_tearing = false;
 | 
				
			||||||
        general = {
 | 
					 | 
				
			||||||
            # See https://wiki.hyprland.org/Configuring/Variables/ for more
 | 
					 | 
				
			||||||
            gaps_in = 8;
 | 
					 | 
				
			||||||
            gaps_out = 16;
 | 
					 | 
				
			||||||
            border_size = 4;
 | 
					 | 
				
			||||||
            
 | 
					 | 
				
			||||||
            "col.active_border" = "$green";
 | 
					 | 
				
			||||||
            "col.inactive_border" = "$red";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            layout = "dwindle";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
 | 
					 | 
				
			||||||
            allow_tearing = false;
 | 
					 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        decoration = {
 | 
					 | 
				
			||||||
            rounding = 12;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            shadow = {
 | 
					 | 
				
			||||||
                enabled = true;
 | 
					 | 
				
			||||||
                range = 16;
 | 
					 | 
				
			||||||
                render_power = 4;
 | 
					 | 
				
			||||||
                ignore_window = true;
 | 
					 | 
				
			||||||
                color = "$green";
 | 
					 | 
				
			||||||
                color_inactive = "$red";
 | 
					 | 
				
			||||||
            };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            blur = {
 | 
					 | 
				
			||||||
                enabled = true;
 | 
					 | 
				
			||||||
                size = 1;
 | 
					 | 
				
			||||||
                passes = 3;
 | 
					 | 
				
			||||||
                new_optimizations = 1;
 | 
					 | 
				
			||||||
                noise = 0.04;
 | 
					 | 
				
			||||||
            };
 | 
					 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        animations = {
 | 
					 | 
				
			||||||
            enabled = "yes";
 | 
					 | 
				
			||||||
            bezier = "myBezier, 0.05, 0.9, 0.1, 1.05";
 | 
					 | 
				
			||||||
            animation = [
 | 
					 | 
				
			||||||
                "windows, 1, 7, myBezier"
 | 
					 | 
				
			||||||
                "windowsOut, 1, 7, default, popin 80%"
 | 
					 | 
				
			||||||
                "border, 1, 10, default"
 | 
					 | 
				
			||||||
                "borderangle, 1, 8, default"
 | 
					 | 
				
			||||||
                "fade, 1, 7, default"
 | 
					 | 
				
			||||||
                "workspaces, 1, 6, default"
 | 
					 | 
				
			||||||
            ];
 | 
					 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        layerrule = [
 | 
					 | 
				
			||||||
            "blur,gtk-layer-shell"
 | 
					 | 
				
			||||||
            "ignorezero,gtk-layer-shell"
 | 
					 | 
				
			||||||
            "blur,notifications"
 | 
					 | 
				
			||||||
            "ignorezero,notifications"
 | 
					 | 
				
			||||||
            "blur,rofi"
 | 
					 | 
				
			||||||
            "ignorezero,rofi"
 | 
					 | 
				
			||||||
        ];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        dwindle = {
 | 
					 | 
				
			||||||
            # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
 | 
					 | 
				
			||||||
            pseudotile = "yes"; # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
 | 
					 | 
				
			||||||
            preserve_split = "yes"; # you probably want this
 | 
					 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        gestures = {
 | 
					 | 
				
			||||||
            # See https://wiki.hyprland.org/Configuring/Variables/ for more
 | 
					 | 
				
			||||||
            workspace_swipe = "off";
 | 
					 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        misc = {
 | 
					 | 
				
			||||||
            # See https://wiki.hyprland.org/Configuring/Variables/ for more
 | 
					 | 
				
			||||||
            force_default_wallpaper = 0; # Set to 0 or 1 to disable the anime mascot wallpapers
 | 
					 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        # Example per-device config
 | 
					 | 
				
			||||||
        # See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more
 | 
					 | 
				
			||||||
        device = {
 | 
					 | 
				
			||||||
            name = "epic-mouse-v1";
 | 
					 | 
				
			||||||
            sensitivity = -0.5;
 | 
					 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        windowrulev2 = "suppressevent maximize, class:.*";
 | 
					 | 
				
			||||||
        
 | 
					 | 
				
			||||||
        windowrule = [
 | 
					 | 
				
			||||||
            "opacity 0.0 override, class:^(xwaylandvideobridge)$"
 | 
					 | 
				
			||||||
            "noanim, class:^(xwaylandvideobridge)$"
 | 
					 | 
				
			||||||
            "noinitialfocus, class:^(xwaylandvideobridge)$"
 | 
					 | 
				
			||||||
            "maxsize 1 1, class:^(xwaylandvideobridge)$"
 | 
					 | 
				
			||||||
            "noblur, class:^(xwaylandvideobridge)$"
 | 
					 | 
				
			||||||
            "nofocus, class:^(xwaylandvideobridge)$"
 | 
					 | 
				
			||||||
        ];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        exec-once = [
 | 
					 | 
				
			||||||
            "waybar &"
 | 
					 | 
				
			||||||
            "hyprpaper &"
 | 
					 | 
				
			||||||
        ];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        # Keybindings
 | 
					 | 
				
			||||||
        bind = [
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            "${super}, Q, exec, ${terminal}"
 | 
					 | 
				
			||||||
            "${super}, C, killactive, "
 | 
					 | 
				
			||||||
            "${super}, M, exit, "
 | 
					 | 
				
			||||||
            "${super}, E, exec, ${fileManager}"
 | 
					 | 
				
			||||||
            "${super}, V, togglefloating, "
 | 
					 | 
				
			||||||
            "${super}, R, exec, ${menu}"
 | 
					 | 
				
			||||||
            "${super}, S, exec, ${power}"
 | 
					 | 
				
			||||||
            "${super}, F, exec, ${filebrowser}"
 | 
					 | 
				
			||||||
            "${super}, P, pseudo, " # dwindle
 | 
					 | 
				
			||||||
            "${super}, J, togglesplit, "# dwindle
 | 
					 | 
				
			||||||
            "${super}, O, exec, obsidian"
 | 
					 | 
				
			||||||
            "${super}, I, exec, firefox"
 | 
					 | 
				
			||||||
            "${super}, G, exec, thunderbird"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            # Move focus with mainMod + arrow keys
 | 
					 | 
				
			||||||
            "${super}, left, movefocus, l"
 | 
					 | 
				
			||||||
            "${super}, right, movefocus, r"
 | 
					 | 
				
			||||||
            "${super}, up, movefocus, u"
 | 
					 | 
				
			||||||
            "${super}, down, movefocus, d"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            # Switch workspaces with mainMod + [0-9]
 | 
					 | 
				
			||||||
            "${super}, 1, workspace, 1"
 | 
					 | 
				
			||||||
            "${super}, 2, workspace, 2"
 | 
					 | 
				
			||||||
            "${super}, 3, workspace, 3"
 | 
					 | 
				
			||||||
            "${super}, 4, workspace, 4"
 | 
					 | 
				
			||||||
            "${super}, 5, workspace, 5"
 | 
					 | 
				
			||||||
            "${super}, 6, workspace, 6"
 | 
					 | 
				
			||||||
            "${super}, 7, workspace, 7"
 | 
					 | 
				
			||||||
            "${super}, 8, workspace, 8"
 | 
					 | 
				
			||||||
            "${super}, 9, workspace, 9"
 | 
					 | 
				
			||||||
            "${super}, 0, workspace, 10"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            # Move active window to a workspace with mainMod + SHIFT + [0-9]
 | 
					 | 
				
			||||||
            "${super} SHIFT, 1, movetoworkspace, 1"
 | 
					 | 
				
			||||||
            "${super} SHIFT, 2, movetoworkspace, 2"
 | 
					 | 
				
			||||||
            "${super} SHIFT, 3, movetoworkspace, 3"
 | 
					 | 
				
			||||||
            "${super} SHIFT, 4, movetoworkspace, 4"
 | 
					 | 
				
			||||||
            "${super} SHIFT, 5, movetoworkspace, 5"
 | 
					 | 
				
			||||||
            "${super} SHIFT, 6, movetoworkspace, 6"
 | 
					 | 
				
			||||||
            "${super} SHIFT, 7, movetoworkspace, 7"
 | 
					 | 
				
			||||||
            "${super} SHIFT, 8, movetoworkspace, 8"
 | 
					 | 
				
			||||||
            "${super} SHIFT, 9, movetoworkspace, 9"
 | 
					 | 
				
			||||||
            "${super} SHIFT, 0, movetoworkspace, 10"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            # Example special workspace (scratchpad)
 | 
					 | 
				
			||||||
            #"${super}, S, togglespecialworkspace, magic"
 | 
					 | 
				
			||||||
            "${super} SHIFT, S, movetoworkspace, special:magic"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            # Scroll through existing workspaces with mainMod + scroll
 | 
					 | 
				
			||||||
            "${super}, mouse_down, workspace, e+1"
 | 
					 | 
				
			||||||
            "${super}, mouse_up, workspace, e-1"
 | 
					 | 
				
			||||||
            
 | 
					 | 
				
			||||||
            # Screenshot
 | 
					 | 
				
			||||||
            ''${super}, Z, exec, grim -g "$(slurp)" $HOME/Pictures/Screenshots/$(date +'%s_grim.png')''
 | 
					 | 
				
			||||||
            ''${super}, U, exec, grim $HOME/Pictures/Screenshots/$(date +'%s_grim.png')'' 
 | 
					 | 
				
			||||||
        ];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        bindl = [
 | 
					 | 
				
			||||||
            #", XF86AudioMute, exec, amixer set Master toggle
 | 
					 | 
				
			||||||
            ", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
 | 
					 | 
				
			||||||
            ", XF86AudioPlay, exec, playerctl play-pause" # the stupid key is called play , but it toggles 
 | 
					 | 
				
			||||||
            ", XF86AudioNext, exec, playerctl next" 
 | 
					 | 
				
			||||||
            ", XF86AudioPrev, exec, playerctl previous"
 | 
					 | 
				
			||||||
        ];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        bindle = [
 | 
					 | 
				
			||||||
            # Multi Media Control
 | 
					 | 
				
			||||||
            ", XF86AudioRaiseVolume, exec, vol --up"
 | 
					 | 
				
			||||||
            ", XF86AudioLowerVolume, exec, vol --down"
 | 
					 | 
				
			||||||
            ", XF86MonBrightnessUp, exec, bri --up"
 | 
					 | 
				
			||||||
            ", XF86MonBrightnessDown, exec, bri --down"
 | 
					 | 
				
			||||||
            ", XF86Search, exec, ${menu}"
 | 
					 | 
				
			||||||
         
 | 
					 | 
				
			||||||
        ];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        bindm = [
 | 
					 | 
				
			||||||
            "${super}, mouse:272, movewindow"
 | 
					 | 
				
			||||||
            "${super}, mouse:273, resizewindow"
 | 
					 | 
				
			||||||
        ];
 | 
					 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
    
 | 
					
 | 
				
			||||||
    # NOTE: this executable is used by greetd to start a wayland session when system boot up
 | 
					    decoration = {
 | 
				
			||||||
    # with such a vendor-no-locking script, we can switch to another wayland compositor without modifying greetd's config in NixOS module
 | 
					      rounding = 12;
 | 
				
			||||||
    home.file.".wayland-session" = {
 | 
					
 | 
				
			||||||
        source = "${package}/bin/Hyprland";
 | 
					      shadow = {
 | 
				
			||||||
        executable = true;
 | 
					        enabled = true;
 | 
				
			||||||
 | 
					        range = 16;
 | 
				
			||||||
 | 
					        render_power = 4;
 | 
				
			||||||
 | 
					        ignore_window = true;
 | 
				
			||||||
 | 
					        color = "$green";
 | 
				
			||||||
 | 
					        color_inactive = "$red";
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      blur = {
 | 
				
			||||||
 | 
					        enabled = true;
 | 
				
			||||||
 | 
					        size = 1;
 | 
				
			||||||
 | 
					        passes = 3;
 | 
				
			||||||
 | 
					        new_optimizations = 1;
 | 
				
			||||||
 | 
					        noise = 0.04;
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    animations = {
 | 
				
			||||||
 | 
					      enabled = "yes";
 | 
				
			||||||
 | 
					      bezier = "myBezier, 0.05, 0.9, 0.1, 1.05";
 | 
				
			||||||
 | 
					      animation = [
 | 
				
			||||||
 | 
					        "windows, 1, 7, myBezier"
 | 
				
			||||||
 | 
					        "windowsOut, 1, 7, default, popin 80%"
 | 
				
			||||||
 | 
					        "border, 1, 10, default"
 | 
				
			||||||
 | 
					        "borderangle, 1, 8, default"
 | 
				
			||||||
 | 
					        "fade, 1, 7, default"
 | 
				
			||||||
 | 
					        "workspaces, 1, 6, default"
 | 
				
			||||||
 | 
					      ];
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    layerrule = [
 | 
				
			||||||
 | 
					      "blur,gtk-layer-shell"
 | 
				
			||||||
 | 
					      "ignorezero,gtk-layer-shell"
 | 
				
			||||||
 | 
					      "blur,notifications"
 | 
				
			||||||
 | 
					      "ignorezero,notifications"
 | 
				
			||||||
 | 
					      "blur,rofi"
 | 
				
			||||||
 | 
					      "ignorezero,rofi"
 | 
				
			||||||
 | 
					    ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    dwindle = {
 | 
				
			||||||
 | 
					      # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
 | 
				
			||||||
 | 
					      pseudotile = "yes"; # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
 | 
				
			||||||
 | 
					      preserve_split = "yes"; # you probably want this
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    gestures = {
 | 
				
			||||||
 | 
					      # See https://wiki.hyprland.org/Configuring/Variables/ for more
 | 
				
			||||||
 | 
					      workspace_swipe = "off";
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    misc = {
 | 
				
			||||||
 | 
					      # See https://wiki.hyprland.org/Configuring/Variables/ for more
 | 
				
			||||||
 | 
					      force_default_wallpaper = 0; # Set to 0 or 1 to disable the anime mascot wallpapers
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # Example per-device config
 | 
				
			||||||
 | 
					    # See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more
 | 
				
			||||||
 | 
					    device = {
 | 
				
			||||||
 | 
					      name = "epic-mouse-v1";
 | 
				
			||||||
 | 
					      sensitivity = -0.5;
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    windowrulev2 = "suppressevent maximize, class:.*";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    windowrule = [
 | 
				
			||||||
 | 
					      "opacity 0.0 override, class:^(xwaylandvideobridge)$"
 | 
				
			||||||
 | 
					      "noanim, class:^(xwaylandvideobridge)$"
 | 
				
			||||||
 | 
					      "noinitialfocus, class:^(xwaylandvideobridge)$"
 | 
				
			||||||
 | 
					      "maxsize 1 1, class:^(xwaylandvideobridge)$"
 | 
				
			||||||
 | 
					      "noblur, class:^(xwaylandvideobridge)$"
 | 
				
			||||||
 | 
					      "nofocus, class:^(xwaylandvideobridge)$"
 | 
				
			||||||
 | 
					    ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    exec-once = [
 | 
				
			||||||
 | 
					      "waybar &"
 | 
				
			||||||
 | 
					      "hyprpaper &"
 | 
				
			||||||
 | 
					    ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # Keybindings
 | 
				
			||||||
 | 
					    bind = [
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      "${super}, Q, exec, ${terminal}"
 | 
				
			||||||
 | 
					      "${super}, C, killactive, "
 | 
				
			||||||
 | 
					      "${super}, M, exit, "
 | 
				
			||||||
 | 
					      "${super}, E, exec, ${fileManager}"
 | 
				
			||||||
 | 
					      "${super}, V, togglefloating, "
 | 
				
			||||||
 | 
					      "${super}, R, exec, ${menu}"
 | 
				
			||||||
 | 
					      "${super}, S, exec, ${power}"
 | 
				
			||||||
 | 
					      "${super}, F, exec, ${filebrowser}"
 | 
				
			||||||
 | 
					      "${super}, P, pseudo, " # dwindle
 | 
				
			||||||
 | 
					      "${super}, J, togglesplit, " # dwindle
 | 
				
			||||||
 | 
					      "${super}, O, exec, obsidian"
 | 
				
			||||||
 | 
					      "${super}, I, exec, firefox"
 | 
				
			||||||
 | 
					      "${super}, G, exec, thunderbird"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      # Move focus with mainMod + arrow keys
 | 
				
			||||||
 | 
					      "${super}, left, movefocus, l"
 | 
				
			||||||
 | 
					      "${super}, right, movefocus, r"
 | 
				
			||||||
 | 
					      "${super}, up, movefocus, u"
 | 
				
			||||||
 | 
					      "${super}, down, movefocus, d"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      # Switch workspaces with mainMod + [0-9]
 | 
				
			||||||
 | 
					      "${super}, 1, workspace, 1"
 | 
				
			||||||
 | 
					      "${super}, 2, workspace, 2"
 | 
				
			||||||
 | 
					      "${super}, 3, workspace, 3"
 | 
				
			||||||
 | 
					      "${super}, 4, workspace, 4"
 | 
				
			||||||
 | 
					      "${super}, 5, workspace, 5"
 | 
				
			||||||
 | 
					      "${super}, 6, workspace, 6"
 | 
				
			||||||
 | 
					      "${super}, 7, workspace, 7"
 | 
				
			||||||
 | 
					      "${super}, 8, workspace, 8"
 | 
				
			||||||
 | 
					      "${super}, 9, workspace, 9"
 | 
				
			||||||
 | 
					      "${super}, 0, workspace, 10"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      # Move active window to a workspace with mainMod + SHIFT + [0-9]
 | 
				
			||||||
 | 
					      "${super} SHIFT, 1, movetoworkspace, 1"
 | 
				
			||||||
 | 
					      "${super} SHIFT, 2, movetoworkspace, 2"
 | 
				
			||||||
 | 
					      "${super} SHIFT, 3, movetoworkspace, 3"
 | 
				
			||||||
 | 
					      "${super} SHIFT, 4, movetoworkspace, 4"
 | 
				
			||||||
 | 
					      "${super} SHIFT, 5, movetoworkspace, 5"
 | 
				
			||||||
 | 
					      "${super} SHIFT, 6, movetoworkspace, 6"
 | 
				
			||||||
 | 
					      "${super} SHIFT, 7, movetoworkspace, 7"
 | 
				
			||||||
 | 
					      "${super} SHIFT, 8, movetoworkspace, 8"
 | 
				
			||||||
 | 
					      "${super} SHIFT, 9, movetoworkspace, 9"
 | 
				
			||||||
 | 
					      "${super} SHIFT, 0, movetoworkspace, 10"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      # Example special workspace (scratchpad)
 | 
				
			||||||
 | 
					      #"${super}, S, togglespecialworkspace, magic"
 | 
				
			||||||
 | 
					      "${super} SHIFT, S, movetoworkspace, special:magic"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      # Scroll through existing workspaces with mainMod + scroll
 | 
				
			||||||
 | 
					      "${super}, mouse_down, workspace, e+1"
 | 
				
			||||||
 | 
					      "${super}, mouse_up, workspace, e-1"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      # Screenshot
 | 
				
			||||||
 | 
					      ''${super}, Z, exec, grim -g "$(slurp)" $HOME/Pictures/Screenshots/$(date +'%s_grim.png')''
 | 
				
			||||||
 | 
					      ''${super}, U, exec, grim $HOME/Pictures/Screenshots/$(date +'%s_grim.png')''
 | 
				
			||||||
 | 
					    ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    bindl = [
 | 
				
			||||||
 | 
					      #", XF86AudioMute, exec, amixer set Master toggle
 | 
				
			||||||
 | 
					      ", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
 | 
				
			||||||
 | 
					      ", XF86AudioPlay, exec, playerctl play-pause" # the stupid key is called play , but it toggles
 | 
				
			||||||
 | 
					      ", XF86AudioNext, exec, playerctl next"
 | 
				
			||||||
 | 
					      ", XF86AudioPrev, exec, playerctl previous"
 | 
				
			||||||
 | 
					    ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    bindle = [
 | 
				
			||||||
 | 
					      # Multi Media Control
 | 
				
			||||||
 | 
					      ", XF86AudioRaiseVolume, exec, vol --up"
 | 
				
			||||||
 | 
					      ", XF86AudioLowerVolume, exec, vol --down"
 | 
				
			||||||
 | 
					      ", XF86MonBrightnessUp, exec, bri --up"
 | 
				
			||||||
 | 
					      ", XF86MonBrightnessDown, exec, bri --down"
 | 
				
			||||||
 | 
					      ", XF86Search, exec, ${menu}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    bindm = [
 | 
				
			||||||
 | 
					      "${super}, mouse:272, movewindow"
 | 
				
			||||||
 | 
					      "${super}, mouse:273, resizewindow"
 | 
				
			||||||
 | 
					    ];
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # NOTE: this executable is used by greetd to start a wayland session when system boot up
 | 
				
			||||||
 | 
					  # with such a vendor-no-locking script, we can switch to another wayland compositor without modifying greetd's config in NixOS module
 | 
				
			||||||
 | 
					  home.file.".wayland-session" = {
 | 
				
			||||||
 | 
					    source = "${package}/bin/Hyprland";
 | 
				
			||||||
 | 
					    executable = true;
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,96 +1,96 @@
 | 
				
			|||||||
{ pkgs, catppuccin, ... }:
 | 
					{ pkgs, catppuccin, ... }:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    # Hyprland and related packages
 | 
					  # Hyprland and related packages
 | 
				
			||||||
    home.packages = with pkgs; [
 | 
					  home.packages = with pkgs; [
 | 
				
			||||||
        hyprlock
 | 
					    hyprlock
 | 
				
			||||||
    ];
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    catppuccin.hyprlock.enable = false;
 | 
					  catppuccin.hyprlock.enable = false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Hyprlock configuration
 | 
					  # Hyprlock configuration
 | 
				
			||||||
    programs.hyprlock = {
 | 
					  programs.hyprlock = {
 | 
				
			||||||
    	enable = true;
 | 
					    enable = true;
 | 
				
			||||||
	settings = {
 | 
					    settings = {
 | 
				
			||||||
		
 | 
					 | 
				
			||||||
		source = "$HOME/.config/hypr/mocha.conf";
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
		"$accent" = "$mauve";
 | 
					      source = "$HOME/.config/hypr/mocha.conf";
 | 
				
			||||||
		"$accentAlpha" = "$mauveAlpha";
 | 
					 | 
				
			||||||
		"$font" = "JetBrainsMono Nerd Font";
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
		general = {
 | 
					      "$accent" = "$mauve";
 | 
				
			||||||
			disable_loading_bar = true;
 | 
					      "$accentAlpha" = "$mauveAlpha";
 | 
				
			||||||
			hide_cursor = true;
 | 
					      "$font" = "JetBrainsMono Nerd Font";
 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
		background = [
 | 
					      general = {
 | 
				
			||||||
			{
 | 
					        disable_loading_bar = true;
 | 
				
			||||||
				path="~/Pictures/Wallpapers/lucy_with_cat.png";
 | 
					        hide_cursor = true;
 | 
				
			||||||
				blur_passes = 0;
 | 
					      };
 | 
				
			||||||
				blur_size = 0;
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
		];
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
		label = [
 | 
					      background = [
 | 
				
			||||||
			# TIME
 | 
					        {
 | 
				
			||||||
			{
 | 
					          path = "~/Pictures/Wallpapers/lucy_with_cat.png";
 | 
				
			||||||
			  monitor = "";
 | 
					          blur_passes = 0;
 | 
				
			||||||
			  text = "$TIME";
 | 
					          blur_size = 0;
 | 
				
			||||||
			  color = "$text";
 | 
					        }
 | 
				
			||||||
			  font_size = 90;
 | 
					      ];
 | 
				
			||||||
			  font_family = "$font";
 | 
					 | 
				
			||||||
			  position = "-30, 0";
 | 
					 | 
				
			||||||
			  halign = "right";
 | 
					 | 
				
			||||||
			  valign = "top";
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
			# DATE
 | 
					      label = [
 | 
				
			||||||
			{
 | 
					        # TIME
 | 
				
			||||||
			  monitor = "";
 | 
					        {
 | 
				
			||||||
			  text = ''cmd[update:43200000] date +"%A, %d %B %Y"'';
 | 
					          monitor = "";
 | 
				
			||||||
			  color = "$text";
 | 
					          text = "$TIME";
 | 
				
			||||||
			  font_size = 25;
 | 
					          color = "$text";
 | 
				
			||||||
			  font_family = "$font";
 | 
					          font_size = 90;
 | 
				
			||||||
			  position = "-30, -150";
 | 
					          font_family = "$font";
 | 
				
			||||||
			  halign = "right";
 | 
					          position = "-30, 0";
 | 
				
			||||||
			  valign = "top";
 | 
					          halign = "right";
 | 
				
			||||||
			}
 | 
					          valign = "top";
 | 
				
			||||||
		];
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		# INPUT FIELD
 | 
					        # DATE
 | 
				
			||||||
		input-field = {
 | 
					        {
 | 
				
			||||||
		  monitor = "";
 | 
					          monitor = "";
 | 
				
			||||||
		  size = "300, 60";
 | 
					          text = ''cmd[update:43200000] date +"%A, %d %B %Y"'';
 | 
				
			||||||
		  outline_thickness = 4;
 | 
					          color = "$text";
 | 
				
			||||||
		  dots_size = 0.2;
 | 
					          font_size = 25;
 | 
				
			||||||
		  dots_spacing = 0.2;
 | 
					          font_family = "$font";
 | 
				
			||||||
		  dots_center = "true";
 | 
					          position = "-30, -150";
 | 
				
			||||||
		  outer_color = "$red";
 | 
					          halign = "right";
 | 
				
			||||||
		  inner_color = "$surface0";
 | 
					          valign = "top";
 | 
				
			||||||
		  font_color = "$text";
 | 
					        }
 | 
				
			||||||
		  fade_on_empty = false;
 | 
					      ];
 | 
				
			||||||
		  placeholder_text = ''<span foreground="##$textAlpha"><i> Logged in as </i><span foreground="##$accentAlpha">$USER</span></span>'';
 | 
					 | 
				
			||||||
		  hide_input = false;
 | 
					 | 
				
			||||||
		  check_color = "$accent";
 | 
					 | 
				
			||||||
		  fail_color = "$red";
 | 
					 | 
				
			||||||
		  fail_text = "<i>$FAIL <b>($ATTEMPTS)</b></i>";
 | 
					 | 
				
			||||||
		  capslock_color = "$yellow";
 | 
					 | 
				
			||||||
		  position = "0, -150";
 | 
					 | 
				
			||||||
		  halign = "center";
 | 
					 | 
				
			||||||
		  valign = "center";
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
		image = {
 | 
					      # INPUT FIELD
 | 
				
			||||||
		  monitor = "";
 | 
					      input-field = {
 | 
				
			||||||
		  path = "~/.config/hypr/avatar.png";
 | 
					        monitor = "";
 | 
				
			||||||
		  size = 300;
 | 
					        size = "300, 60";
 | 
				
			||||||
		  border_color = "$teal";
 | 
					        outline_thickness = 4;
 | 
				
			||||||
		  position = "0, 75";
 | 
					        dots_size = 0.2;
 | 
				
			||||||
		  halign = "center";
 | 
					        dots_spacing = 0.2;
 | 
				
			||||||
		  valign = "center";
 | 
					        dots_center = "true";
 | 
				
			||||||
		};
 | 
					        outer_color = "$red";
 | 
				
			||||||
	};
 | 
					        inner_color = "$surface0";
 | 
				
			||||||
 | 
					        font_color = "$text";
 | 
				
			||||||
 | 
					        fade_on_empty = false;
 | 
				
			||||||
 | 
					        placeholder_text = ''<span foreground="##$textAlpha"><i> Logged in as </i><span foreground="##$accentAlpha">$USER</span></span>'';
 | 
				
			||||||
 | 
					        hide_input = false;
 | 
				
			||||||
 | 
					        check_color = "$accent";
 | 
				
			||||||
 | 
					        fail_color = "$red";
 | 
				
			||||||
 | 
					        fail_text = "<i>$FAIL <b>($ATTEMPTS)</b></i>";
 | 
				
			||||||
 | 
					        capslock_color = "$yellow";
 | 
				
			||||||
 | 
					        position = "0, -150";
 | 
				
			||||||
 | 
					        halign = "center";
 | 
				
			||||||
 | 
					        valign = "center";
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      image = {
 | 
				
			||||||
 | 
					        monitor = "";
 | 
				
			||||||
 | 
					        path = "~/.config/hypr/avatar.png";
 | 
				
			||||||
 | 
					        size = 300;
 | 
				
			||||||
 | 
					        border_color = "$teal";
 | 
				
			||||||
 | 
					        position = "0, 75";
 | 
				
			||||||
 | 
					        halign = "center";
 | 
				
			||||||
 | 
					        valign = "center";
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,24 +1,22 @@
 | 
				
			|||||||
{ pkgs, ... }:
 | 
					{ pkgs, ... }:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    home.packages = with pkgs; [
 | 
					  home.packages = with pkgs; [
 | 
				
			||||||
        hyprpaper
 | 
					    hyprpaper
 | 
				
			||||||
    ];
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    home.file = {
 | 
					  home.file = {
 | 
				
			||||||
        "Pictures/Wallpapers" = {
 | 
					    "Pictures/Wallpapers" = {
 | 
				
			||||||
            source = ../../wallpapers;
 | 
					      source = ../../wallpapers;
 | 
				
			||||||
            recursive = true;
 | 
					      recursive = true;
 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Hyprpaper configuration
 | 
				
			||||||
 | 
					  services.hyprpaper.enable = true;
 | 
				
			||||||
 | 
					  services.hyprpaper.settings = {
 | 
				
			||||||
 | 
					    preload = "Pictures/Wallpapers/tokio.png";
 | 
				
			||||||
 | 
					    wallpaper = ", Pictures/Wallpapers/tokio.png";
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Hyprpaper configuration
 | 
					 | 
				
			||||||
    services.hyprpaper.enable = true;
 | 
					 | 
				
			||||||
    services.hyprpaper.settings = {
 | 
					 | 
				
			||||||
        preload = "Pictures/Wallpapers/tokio.png";
 | 
					 | 
				
			||||||
        wallpaper = ", Pictures/Wallpapers/tokio.png";
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,22 +1,23 @@
 | 
				
			|||||||
{ pkgs, lib, ... }:
 | 
					{ lib, ... }:
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    programs.kitty = lib.mkForce {
 | 
					  programs.kitty = lib.mkForce {
 | 
				
			||||||
      enable = true;
 | 
					    enable = true;
 | 
				
			||||||
      settings = {
 | 
					    settings = {
 | 
				
			||||||
      	themeFile = "Catppuccin-Mocha";
 | 
					      themeFile = "Catppuccin-Mocha";
 | 
				
			||||||
        confirm_os_window_close = 0;
 | 
					      confirm_os_window_close = 0;
 | 
				
			||||||
        dynamic_background_opacity = true;
 | 
					      dynamic_background_opacity = true;
 | 
				
			||||||
        enable_audio_bell = false;
 | 
					      enable_audio_bell = false;
 | 
				
			||||||
        mouse_hide_wait = "-1.0";
 | 
					      mouse_hide_wait = "-1.0";
 | 
				
			||||||
        window_padding_width = 10;
 | 
					      window_padding_width = 10;
 | 
				
			||||||
        background_opacity = "0.5";
 | 
					      background_opacity = "0.8";
 | 
				
			||||||
        background_blur = 5;
 | 
					      background_blur = 5;
 | 
				
			||||||
	tab_bar_min_tabs = 1;
 | 
					      tab_bar_min_tabs = 1;
 | 
				
			||||||
	tab_bar_edge = "bottom";
 | 
					      tab_bar_edge = "bottom";
 | 
				
			||||||
	tab_bar_style = "powerline";
 | 
					      tab_bar_style = "powerline";
 | 
				
			||||||
	tab_powerline_style = "slanted";
 | 
					      tab_powerline_style = "slanted";
 | 
				
			||||||
	tab_title_template = "{title}{' :{}:'.format(num_windows) if num_windows > 1 else ''}";
 | 
					      tab_title_template = "{title}{' :{}:'.format(num_windows) if num_windows > 1 else ''}";
 | 
				
			||||||
        symbol_map = let
 | 
					      symbol_map =
 | 
				
			||||||
 | 
					        let
 | 
				
			||||||
          mappings = [
 | 
					          mappings = [
 | 
				
			||||||
            "U+23FB-U+23FE"
 | 
					            "U+23FB-U+23FE"
 | 
				
			||||||
            "U+2B58"
 | 
					            "U+2B58"
 | 
				
			||||||
@@ -38,7 +39,7 @@
 | 
				
			|||||||
            "U+E5FA-U+E62B"
 | 
					            "U+E5FA-U+E62B"
 | 
				
			||||||
          ];
 | 
					          ];
 | 
				
			||||||
        in
 | 
					        in
 | 
				
			||||||
          (builtins.concatStringsSep "," mappings) + " Symbols Nerd Font";
 | 
					        (builtins.concatStringsSep "," mappings) + " Symbols Nerd Font";
 | 
				
			||||||
      };
 | 
					 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,17 +1,16 @@
 | 
				
			|||||||
{ pkgs, ... }:
 | 
					{ pkgs, ... }:
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    services.mako = {
 | 
					  services.mako = {
 | 
				
			||||||
        enable = true;
 | 
					    enable = true;
 | 
				
			||||||
        font = "FiraCodeNerdFontPropo 12";
 | 
					    font = "FiraCodeNerdFontPropo 12";
 | 
				
			||||||
	borderSize = 4;
 | 
					    borderSize = 4;
 | 
				
			||||||
	borderRadius = 8;
 | 
					    borderRadius = 8;
 | 
				
			||||||
        defaultTimeout = 5000;
 | 
					    defaultTimeout = 5000;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        extraConfig = ''
 | 
					    extraConfig = ''
 | 
				
			||||||
[app-name=Spotify]
 | 
					      [app-name=Spotify]
 | 
				
			||||||
border-color=#a6e3a1
 | 
					      border-color=#a6e3a1
 | 
				
			||||||
        '';
 | 
					    '';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										
											BIN
										
									
								
								home/hyprland/rofi/configs/background.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								home/hyprland/rofi/configs/background.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 9.2 MiB  | 
							
								
								
									
										222
									
								
								home/hyprland/rofi/configs/custom.rasi
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										222
									
								
								home/hyprland/rofi/configs/custom.rasi
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,222 @@
 | 
				
			|||||||
 | 
					* {
 | 
				
			||||||
 | 
					  rosewater: #f5e0dc;
 | 
				
			||||||
 | 
					  flamingo: #f2cdcd;
 | 
				
			||||||
 | 
					  pink: #f5c2e7;
 | 
				
			||||||
 | 
					  mauve: #cba6f7;
 | 
				
			||||||
 | 
					  red: #f38ba8;
 | 
				
			||||||
 | 
					  maroon: #eba0ac;
 | 
				
			||||||
 | 
					  peach: #fab387;
 | 
				
			||||||
 | 
					  yellow: #f9e2af;
 | 
				
			||||||
 | 
					  green: #a6e3a1;
 | 
				
			||||||
 | 
					  teal: #94e2d5;
 | 
				
			||||||
 | 
					  sky: #89dceb;
 | 
				
			||||||
 | 
					  sapphire: #74c7ec;
 | 
				
			||||||
 | 
					  blue: #89b4fa;
 | 
				
			||||||
 | 
					  lavender: #b4befe;
 | 
				
			||||||
 | 
					  text: #cdd6f4;
 | 
				
			||||||
 | 
					  subtext1: #bac2de;
 | 
				
			||||||
 | 
					  subtext0: #a6adc8;
 | 
				
			||||||
 | 
					  overlay2: #9399b2;
 | 
				
			||||||
 | 
					  overlay1: #7f849c;
 | 
				
			||||||
 | 
					  overlay0: #6c7086;
 | 
				
			||||||
 | 
					  surface2: #585b70;
 | 
				
			||||||
 | 
					  surface1: #45475a;
 | 
				
			||||||
 | 
					  surface0: #313244;
 | 
				
			||||||
 | 
					  base: #1e1e2e;
 | 
				
			||||||
 | 
					  mantle: #181825;
 | 
				
			||||||
 | 
					  crust: #11111b;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					configuration {
 | 
				
			||||||
 | 
					    show-icons: 				 true;
 | 
				
			||||||
 | 
					    modi:						 "window,drun,filebrowser";
 | 
				
			||||||
 | 
						display-drun:				 "Apps";
 | 
				
			||||||
 | 
						display-filebrowser:		 "Files";
 | 
				
			||||||
 | 
						display-run:				 "RUN";
 | 
				
			||||||
 | 
						display-window:				 "Active";
 | 
				
			||||||
 | 
						drun-display-format:		 "{name}";
 | 
				
			||||||
 | 
						window-format:				 "{w} · {c} · {t}";
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Main Window */
 | 
				
			||||||
 | 
					window {
 | 
				
			||||||
 | 
					    /* properties for window widget */
 | 
				
			||||||
 | 
					    transparency:                "real";
 | 
				
			||||||
 | 
					    location:                    center;
 | 
				
			||||||
 | 
					    anchor:                      center;
 | 
				
			||||||
 | 
					    fullscreen:                  false;
 | 
				
			||||||
 | 
					    width:                       50%;
 | 
				
			||||||
 | 
						height:						 90%;
 | 
				
			||||||
 | 
					    x-offset:                    0px;
 | 
				
			||||||
 | 
					    y-offset:                    0px;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /* properties for all widgets */
 | 
				
			||||||
 | 
					    enabled:                     true;
 | 
				
			||||||
 | 
					    border-radius:               12px;
 | 
				
			||||||
 | 
					    cursor:                      "default";
 | 
				
			||||||
 | 
					    background-color:            @base;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Main Box */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					mainbox {
 | 
				
			||||||
 | 
					    enabled:                     true;
 | 
				
			||||||
 | 
					    spacing:                     0px;
 | 
				
			||||||
 | 
					    background-color:            transparent;
 | 
				
			||||||
 | 
					    orientation:                 horizontal;
 | 
				
			||||||
 | 
					    children:                    [ "imagebox", "listbox" ];
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					imagebox {
 | 
				
			||||||
 | 
					    padding:                     20px;
 | 
				
			||||||
 | 
					    background-color:            transparent;
 | 
				
			||||||
 | 
					    background-image:            url("~/.config/rofi/background.png", height);
 | 
				
			||||||
 | 
					    orientation:                 vertical;
 | 
				
			||||||
 | 
					    children:                    [ "inputbar", "dummy", "mode-switcher" ];
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					listbox {
 | 
				
			||||||
 | 
					    spacing:                     20px;
 | 
				
			||||||
 | 
					    padding:                     20px;
 | 
				
			||||||
 | 
					    background-color:            transparent;
 | 
				
			||||||
 | 
					    orientation:                 vertical;
 | 
				
			||||||
 | 
					    children:                    [ "message", "listview" ];
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dummy {
 | 
				
			||||||
 | 
					    background-color:            transparent;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Input */ 
 | 
				
			||||||
 | 
					inputbar {
 | 
				
			||||||
 | 
					    enabled:                     true;
 | 
				
			||||||
 | 
					    spacing:                     10px;
 | 
				
			||||||
 | 
					    padding:                     15px;
 | 
				
			||||||
 | 
					    border-radius:               10px;
 | 
				
			||||||
 | 
					    background-color:            @crust;
 | 
				
			||||||
 | 
					    text-color:                  @text;
 | 
				
			||||||
 | 
					    children:                    [ "textbox-prompt-colon", "entry" ];
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					textbox-prompt-colon {
 | 
				
			||||||
 | 
					    enabled:                     true;
 | 
				
			||||||
 | 
					    expand:                      false;
 | 
				
			||||||
 | 
					    str:                         "";
 | 
				
			||||||
 | 
					    background-color:            inherit;
 | 
				
			||||||
 | 
					    text-color:                  inherit;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					entry {
 | 
				
			||||||
 | 
					    enabled:                     true;
 | 
				
			||||||
 | 
					    background-color:            inherit;
 | 
				
			||||||
 | 
					    text-color:                  inherit;
 | 
				
			||||||
 | 
					    cursor:                      text;
 | 
				
			||||||
 | 
					    placeholder:                 "Search";
 | 
				
			||||||
 | 
					    placeholder-color:           inherit;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Mode Switcher */
 | 
				
			||||||
 | 
					mode-switcher{
 | 
				
			||||||
 | 
					    enabled:                     true;
 | 
				
			||||||
 | 
					    spacing:                     20px;
 | 
				
			||||||
 | 
					    background-color:            transparent;
 | 
				
			||||||
 | 
					    text-color:                  @text;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					button {
 | 
				
			||||||
 | 
					    padding:                     15px;
 | 
				
			||||||
 | 
					    border-radius:               10px;
 | 
				
			||||||
 | 
					    background-color:            @base;
 | 
				
			||||||
 | 
					    text-color:                  inherit;
 | 
				
			||||||
 | 
					    cursor:                      pointer;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					button selected {
 | 
				
			||||||
 | 
					    background-color:            @base;
 | 
				
			||||||
 | 
					    text-color:                  @pink;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Listview */
 | 
				
			||||||
 | 
					listview {
 | 
				
			||||||
 | 
					    enabled:                     true;
 | 
				
			||||||
 | 
					    columns:                     1;
 | 
				
			||||||
 | 
					    lines:                       8;
 | 
				
			||||||
 | 
					    cycle:                       true;
 | 
				
			||||||
 | 
					    dynamic:                     true;
 | 
				
			||||||
 | 
					    scrollbar:                   false;
 | 
				
			||||||
 | 
					    layout:                      vertical;
 | 
				
			||||||
 | 
					    reverse:                     false;
 | 
				
			||||||
 | 
					    fixed-height:                true;
 | 
				
			||||||
 | 
					    fixed-columns:               true;
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    spacing:                     10px;
 | 
				
			||||||
 | 
					    background-color:            transparent;
 | 
				
			||||||
 | 
					    text-color:                  @text;
 | 
				
			||||||
 | 
					    cursor:                      "default";
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Elements */ 
 | 
				
			||||||
 | 
					element {
 | 
				
			||||||
 | 
					    enabled:                     true;
 | 
				
			||||||
 | 
					    spacing:                     15px;
 | 
				
			||||||
 | 
					    padding:                     8px;
 | 
				
			||||||
 | 
					    border-radius:               10px;
 | 
				
			||||||
 | 
					    background-color:            transparent;
 | 
				
			||||||
 | 
					    text-color:                  @mauve;
 | 
				
			||||||
 | 
					    cursor:                      pointer;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					element normal.normal {
 | 
				
			||||||
 | 
					    background-color:            inherit;
 | 
				
			||||||
 | 
					    text-color:                  inherit;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					element normal.urgent {
 | 
				
			||||||
 | 
					    background-color:            inherit;
 | 
				
			||||||
 | 
					    text-color:                  @red;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					element normal.active {
 | 
				
			||||||
 | 
					    background-color:            inherit;
 | 
				
			||||||
 | 
					    text-color:                  @blue;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					element selected.normal {
 | 
				
			||||||
 | 
					    background-color:            @crust;
 | 
				
			||||||
 | 
					    text-color:                  @pink;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					element selected.urgent {
 | 
				
			||||||
 | 
					    background-color:            @crust;
 | 
				
			||||||
 | 
					    text-color:                  @maroon;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					element selected.active {
 | 
				
			||||||
 | 
					    background-color:            @crust;
 | 
				
			||||||
 | 
					    text-color:                  @sky;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					element-icon {
 | 
				
			||||||
 | 
					    background-color:            transparent;
 | 
				
			||||||
 | 
					    text-color:                  inherit;
 | 
				
			||||||
 | 
					    size:                        32px;
 | 
				
			||||||
 | 
					    cursor:                      inherit;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					element-text {
 | 
				
			||||||
 | 
					    background-color:            transparent;
 | 
				
			||||||
 | 
					    text-color:                  inherit;
 | 
				
			||||||
 | 
					    cursor:                      inherit;
 | 
				
			||||||
 | 
					    vertical-align:              0.5;
 | 
				
			||||||
 | 
					    horizontal-align:            0.0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Message */
 | 
				
			||||||
 | 
					message {
 | 
				
			||||||
 | 
					    background-color:            transparent;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					textbox {
 | 
				
			||||||
 | 
					    padding:                     15px;
 | 
				
			||||||
 | 
					    border-radius:               10px;
 | 
				
			||||||
 | 
					    background-color:            @overlay0;
 | 
				
			||||||
 | 
					    text-color:                  @peach;
 | 
				
			||||||
 | 
					    vertical-align:              0.5;
 | 
				
			||||||
 | 
					    horizontal-align:            0.0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					error-message {
 | 
				
			||||||
 | 
					    padding:                     15px;
 | 
				
			||||||
 | 
					    border-radius:               20px;
 | 
				
			||||||
 | 
					    background-color:            @surface0;
 | 
				
			||||||
 | 
					    text-color:                  @red;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -1,21 +1,28 @@
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
  pkgs,
 | 
					  pkgs,
 | 
				
			||||||
  config,
 | 
					 | 
				
			||||||
  ...
 | 
					  ...
 | 
				
			||||||
}: {
 | 
					}:
 | 
				
			||||||
    home.packages = with pkgs; [
 | 
					{
 | 
				
			||||||
        rofi-power-menu
 | 
					 | 
				
			||||||
    ];
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    programs.rofi = {
 | 
					  home.packages = with pkgs; [
 | 
				
			||||||
        enable = true;
 | 
					    rofi-power-menu
 | 
				
			||||||
        cycle = false;
 | 
					    rofi-calc
 | 
				
			||||||
        package = pkgs.rofi-wayland;
 | 
					  ];
 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    home.file.".config/rofi" = {
 | 
					  programs.rofi = {
 | 
				
			||||||
        source = ./configs;
 | 
					    enable = true;
 | 
				
			||||||
        # copy the scripts directory recursively
 | 
					    cycle = false;
 | 
				
			||||||
        recursive = true;
 | 
					    package = pkgs.rofi-wayland;
 | 
				
			||||||
    };
 | 
					    font = "FiraCode Nerd Font Mono 12";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    location = "center";
 | 
				
			||||||
 | 
					    terminal = "${pkgs.kitty}/bin/kitty";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  home.file.".config/rofi" = {
 | 
				
			||||||
 | 
					    source = ./configs;
 | 
				
			||||||
 | 
					    # copy the scripts directory recursively
 | 
				
			||||||
 | 
					    recursive = true;
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,45 +2,48 @@
 | 
				
			|||||||
  pkgs,
 | 
					  pkgs,
 | 
				
			||||||
  config,
 | 
					  config,
 | 
				
			||||||
  ...
 | 
					  ...
 | 
				
			||||||
}: {
 | 
					}:
 | 
				
			||||||
    programs.waybar = {
 | 
					{
 | 
				
			||||||
        enable = true;
 | 
					  programs.waybar = {
 | 
				
			||||||
        package = pkgs.waybar;
 | 
					    enable = true;
 | 
				
			||||||
        /*settings = {
 | 
					    package = pkgs.waybar;
 | 
				
			||||||
            mainBar = {
 | 
					    /*
 | 
				
			||||||
                layer = "top";
 | 
					      settings = {
 | 
				
			||||||
                position = "top";
 | 
					          mainBar = {
 | 
				
			||||||
                height = 30;
 | 
					              layer = "top";
 | 
				
			||||||
                output = [
 | 
					              position = "top";
 | 
				
			||||||
                    "eDP-1"
 | 
					              height = 30;
 | 
				
			||||||
                    "DP-1"
 | 
					              output = [
 | 
				
			||||||
                    "HDMI-A-1"
 | 
					                  "eDP-1"
 | 
				
			||||||
                    "Virtual-1"
 | 
					                  "DP-1"
 | 
				
			||||||
                ];
 | 
					                  "HDMI-A-1"
 | 
				
			||||||
 | 
					                  "Virtual-1"
 | 
				
			||||||
 | 
					              ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                modules-left = [ "sway/workspaces" "sway/mode" "wlr/taskbar" ];
 | 
					              modules-left = [ "sway/workspaces" "sway/mode" "wlr/taskbar" ];
 | 
				
			||||||
                modules-center = [ "sway/window" "custom/hello-from-waybar" ];
 | 
					              modules-center = [ "sway/window" "custom/hello-from-waybar" ];
 | 
				
			||||||
                modules-right = [ "mpd" "custom/mymodule#with-css-id" "temperature" ];
 | 
					              modules-right = [ "mpd" "custom/mymodule#with-css-id" "temperature" ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                "sway/workspaces" = {
 | 
					              "sway/workspaces" = {
 | 
				
			||||||
                    disable-scroll = true;
 | 
					                  disable-scroll = true;
 | 
				
			||||||
                    all-outputs = true;
 | 
					                  all-outputs = true;
 | 
				
			||||||
                };
 | 
					              };
 | 
				
			||||||
                "custom/hello-from-waybar" = {
 | 
					              "custom/hello-from-waybar" = {
 | 
				
			||||||
                    format = "hello {}";
 | 
					                  format = "hello {}";
 | 
				
			||||||
                    max-length = 40;
 | 
					                  max-length = 40;
 | 
				
			||||||
                    interval = "once";
 | 
					                  interval = "once";
 | 
				
			||||||
                    exec = pkgs.writeShellScript "hello-from-waybar" ''
 | 
					                  exec = pkgs.writeShellScript "hello-from-waybar" ''
 | 
				
			||||||
                        echo "from within waybar $USER"
 | 
					                      echo "from within waybar $USER"
 | 
				
			||||||
                    '';
 | 
					                  '';
 | 
				
			||||||
                };
 | 
					              };
 | 
				
			||||||
            };
 | 
					          };
 | 
				
			||||||
        };*/
 | 
					      };
 | 
				
			||||||
    };
 | 
					    */
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    home.file.".config/waybar" = {
 | 
					  home.file.".config/waybar" = {
 | 
				
			||||||
        source = ./configs;
 | 
					    source = ./configs;
 | 
				
			||||||
        # copy the scripts directory recursively
 | 
					    # copy the scripts directory recursively
 | 
				
			||||||
        recursive = true;
 | 
					    recursive = true;
 | 
				
			||||||
    };
 | 
					  };
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,171 +2,200 @@
 | 
				
			|||||||
  pkgs,
 | 
					  pkgs,
 | 
				
			||||||
  config,
 | 
					  config,
 | 
				
			||||||
  ...
 | 
					  ...
 | 
				
			||||||
} : {
 | 
					}:
 | 
				
			||||||
    programs.waybar = {
 | 
					{
 | 
				
			||||||
        enable = true;
 | 
					  programs.waybar = {
 | 
				
			||||||
        package = pkgs.waybar;
 | 
					    enable = true;
 | 
				
			||||||
        settings = {
 | 
					    package = pkgs.waybar;
 | 
				
			||||||
            mainBar = {
 | 
					    settings = {
 | 
				
			||||||
                layer = "top";
 | 
					      mainBar = {
 | 
				
			||||||
                position = "top";
 | 
					        layer = "top";
 | 
				
			||||||
                height = 30;
 | 
					        position = "top";
 | 
				
			||||||
                output = [ "DP-1" ];
 | 
					        height = 30;
 | 
				
			||||||
 | 
					        output = [ "DP-1" ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                modules-left = [ 
 | 
					        modules-left = [
 | 
				
			||||||
                    "hyprland/workspaces"
 | 
					          "hyprland/workspaces"
 | 
				
			||||||
                    "mpris"
 | 
					          "mpris"
 | 
				
			||||||
                ];
 | 
					        ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                modules-center = [];
 | 
					        modules-center = [ ];
 | 
				
			||||||
                
 | 
					 | 
				
			||||||
                modules-right = [
 | 
					 | 
				
			||||||
                    "network"
 | 
					 | 
				
			||||||
                    "memory"
 | 
					 | 
				
			||||||
                    "cpu"
 | 
					 | 
				
			||||||
                    "clock"
 | 
					 | 
				
			||||||
                ];
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
                # Widgets
 | 
					        modules-right = [
 | 
				
			||||||
                "sway/workspaces" = {
 | 
					          "network"
 | 
				
			||||||
                    disable-scroll = true;
 | 
					          "memory"
 | 
				
			||||||
                    all-outputs = true;
 | 
					          "cpu"
 | 
				
			||||||
                };
 | 
					          "clock"
 | 
				
			||||||
                
 | 
					        ];
 | 
				
			||||||
                mpris = {
 | 
					 | 
				
			||||||
                    format = "{player_icon} {dynamic}";
 | 
					 | 
				
			||||||
                    format-paused = "<span color='grey'>{status_icon} {dynamic}</span>";
 | 
					 | 
				
			||||||
                    max-length = 100;
 | 
					 | 
				
			||||||
                    
 | 
					 | 
				
			||||||
                    player-icons = {
 | 
					 | 
				
			||||||
                        default = "⏸";
 | 
					 | 
				
			||||||
                        mpv = "🎵";
 | 
					 | 
				
			||||||
                    };
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    status-icons = {
 | 
					        # Widgets
 | 
				
			||||||
                        paused = "▶"; 
 | 
					        "sway/workspaces" = {
 | 
				
			||||||
                    };
 | 
					          disable-scroll = true;
 | 
				
			||||||
                };
 | 
					          all-outputs = true;
 | 
				
			||||||
                
 | 
					 | 
				
			||||||
                "hyprland/workspaces" = {
 | 
					 | 
				
			||||||
                    format = "{icon}";
 | 
					 | 
				
			||||||
                    format-icons = {
 | 
					 | 
				
			||||||
                        default = "";
 | 
					 | 
				
			||||||
                        active = "";
 | 
					 | 
				
			||||||
                    };
 | 
					 | 
				
			||||||
                };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                network = {
 | 
					 | 
				
			||||||
                        tooltip = true;
 | 
					 | 
				
			||||||
                        format-wifi = "{icon} ";
 | 
					 | 
				
			||||||
                        format-icons = [""  ""  ""]; 
 | 
					 | 
				
			||||||
                        rotate = 0;
 | 
					 | 
				
			||||||
                        format-ethernet = " ";
 | 
					 | 
				
			||||||
                        tooltip-format = "Network: <big><b>{essid}</b></big>\nSignal strength: <b>{signaldBm}dBm ({signalStrength}%)</b>\nFrequency: <b>{frequency}MHz</b>\nInterface: <b>{ifname}</b>\nIP: <b>{ipaddr}/{cidr}</b>\nGateway: <b>{gwaddr}</b>\nNetmask: <b>{netmask}</b>";
 | 
					 | 
				
			||||||
                        format-linked = " {ifname} (No IP)";
 | 
					 | 
				
			||||||
                        format-disconnected = " ";
 | 
					 | 
				
			||||||
                        tooltip-format-disconnected = "Disconnected";
 | 
					 | 
				
			||||||
                        on-click = "/usr/local/bin/ags -t ControlPanel";
 | 
					 | 
				
			||||||
                        interval = 2;
 | 
					 | 
				
			||||||
                };
 | 
					 | 
				
			||||||
                    
 | 
					 | 
				
			||||||
                memory = {
 | 
					 | 
				
			||||||
                    interval = 1;
 | 
					 | 
				
			||||||
                    rotate = 270;
 | 
					 | 
				
			||||||
                    format = "{icon}";
 | 
					 | 
				
			||||||
                    format-icons = ["" "" "" "" "" "" "" "" ""];
 | 
					 | 
				
			||||||
                    max-length = 10;
 | 
					 | 
				
			||||||
                };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                cpu = {
 | 
					 | 
				
			||||||
                    interval = 1;
 | 
					 | 
				
			||||||
                    format = "{icon}";
 | 
					 | 
				
			||||||
                    rotate = 270;
 | 
					 | 
				
			||||||
                    format-icons = ["" "" "" "" "" "" "" "" ""];
 | 
					 | 
				
			||||||
                };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                clock = {
 | 
					 | 
				
			||||||
                    format = "{:%I:%M %p}";
 | 
					 | 
				
			||||||
                    rotate = 0;
 | 
					 | 
				
			||||||
                    on-click = "/usr/local/bin/ags -t ActivityCenter";
 | 
					 | 
				
			||||||
                    tooltip-format = "<tt>{calendar}</tt>";
 | 
					 | 
				
			||||||
                    
 | 
					 | 
				
			||||||
                    calendar = {
 | 
					 | 
				
			||||||
                        mode = "month";
 | 
					 | 
				
			||||||
                        mode-mon-col = 3;
 | 
					 | 
				
			||||||
                        on-scroll = 1;
 | 
					 | 
				
			||||||
                        on-click-right = "mode";
 | 
					 | 
				
			||||||
                        format = {
 | 
					 | 
				
			||||||
                            months = "<span color='#ffead3'><b>{}</b></span>";
 | 
					 | 
				
			||||||
                            weekdays = "<span color='#ffcc66'><b>{}</b></span>";
 | 
					 | 
				
			||||||
                            today = "<span color='#ff6699'><b>{}</b></span>";
 | 
					 | 
				
			||||||
                        };
 | 
					 | 
				
			||||||
                    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    actions = {
 | 
					 | 
				
			||||||
                        on-click-right = "mode";
 | 
					 | 
				
			||||||
                        on-click-forward = "tz_up";
 | 
					 | 
				
			||||||
                        on-click-backward = "tz_down";
 | 
					 | 
				
			||||||
                        on-scroll-up = "shift_up";
 | 
					 | 
				
			||||||
                        on-scroll-down = "shift_down";
 | 
					 | 
				
			||||||
                    };
 | 
					 | 
				
			||||||
                };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	    secondBar = {
 | 
					 | 
				
			||||||
		layer = "top";
 | 
					 | 
				
			||||||
                position = "top";
 | 
					 | 
				
			||||||
                height = 30;
 | 
					 | 
				
			||||||
                output = [
 | 
					 | 
				
			||||||
		    "HDMI-A-2"
 | 
					 | 
				
			||||||
                ];
 | 
					 | 
				
			||||||
		
 | 
					 | 
				
			||||||
		modules-left = [ 
 | 
					 | 
				
			||||||
                    "hyprland/workspaces"
 | 
					 | 
				
			||||||
                ];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                modules-center = [
 | 
					 | 
				
			||||||
                ];
 | 
					 | 
				
			||||||
                
 | 
					 | 
				
			||||||
                modules-right = [
 | 
					 | 
				
			||||||
		    "network"
 | 
					 | 
				
			||||||
                ];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		"hyprland/workspaces" = {
 | 
					 | 
				
			||||||
                    format = "{icon}";
 | 
					 | 
				
			||||||
                    format-icons = {
 | 
					 | 
				
			||||||
                        default = "";
 | 
					 | 
				
			||||||
                        active = "";
 | 
					 | 
				
			||||||
                    };
 | 
					 | 
				
			||||||
                };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		"custom/weather" = {
 | 
					 | 
				
			||||||
                    exec = "~/.config/waybar/weather.py waybar";
 | 
					 | 
				
			||||||
                    restart-interval = 900;
 | 
					 | 
				
			||||||
                    return-type = "json";
 | 
					 | 
				
			||||||
                };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		network = {
 | 
					 | 
				
			||||||
                        tooltip = true;
 | 
					 | 
				
			||||||
                        format-wifi = "{icon} ";
 | 
					 | 
				
			||||||
                        format-icons = [""  ""  ""]; 
 | 
					 | 
				
			||||||
                        rotate = 0;
 | 
					 | 
				
			||||||
                        format-ethernet = "{bandwidthTotalBits}  {bandwidthUpBits}  {bandwidthDownBits}   ";
 | 
					 | 
				
			||||||
                        tooltip-format = "Network: <big><b>{essid}</b></big>\nSignal strength: <b>{signaldBm}dBm ({signalStrength}%)</b>\nFrequency: <b>{frequency}MHz</b>\nInterface: <b>{ifname}</b>\nIP: <b>{ipaddr}/{cidr}</b>\nGateway: <b>{gwaddr}</b>\nNetmask: <b>{netmask}</b>";
 | 
					 | 
				
			||||||
                        format-linked = " {ifname} (No IP)";
 | 
					 | 
				
			||||||
                        format-disconnected = " ";
 | 
					 | 
				
			||||||
                        tooltip-format-disconnected = "Disconnected";
 | 
					 | 
				
			||||||
                        on-click = "/usr/local/bin/ags -t ControlPanel";
 | 
					 | 
				
			||||||
                        interval = 2;
 | 
					 | 
				
			||||||
                };
 | 
					 | 
				
			||||||
	    };
 | 
					 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    home.file.".config/waybar" = {
 | 
					        mpris = {
 | 
				
			||||||
        source = ./configs;
 | 
					          format = "{player_icon} {dynamic}";
 | 
				
			||||||
        # copy the scripts directory recursively
 | 
					          format-paused = "<span color='grey'>{status_icon} {dynamic}</span>";
 | 
				
			||||||
        recursive = true;
 | 
					          max-length = 100;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          player-icons = {
 | 
				
			||||||
 | 
					            default = "⏸";
 | 
				
			||||||
 | 
					            mpv = "🎵";
 | 
				
			||||||
 | 
					          };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          status-icons = {
 | 
				
			||||||
 | 
					            paused = "▶";
 | 
				
			||||||
 | 
					          };
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        "hyprland/workspaces" = {
 | 
				
			||||||
 | 
					          format = "{icon}";
 | 
				
			||||||
 | 
					          format-icons = {
 | 
				
			||||||
 | 
					            default = "";
 | 
				
			||||||
 | 
					            active = "";
 | 
				
			||||||
 | 
					          };
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        network = {
 | 
				
			||||||
 | 
					          tooltip = true;
 | 
				
			||||||
 | 
					          format-wifi = "{icon} ";
 | 
				
			||||||
 | 
					          format-icons = [
 | 
				
			||||||
 | 
					            ""
 | 
				
			||||||
 | 
					            ""
 | 
				
			||||||
 | 
					            ""
 | 
				
			||||||
 | 
					          ];
 | 
				
			||||||
 | 
					          rotate = 0;
 | 
				
			||||||
 | 
					          format-ethernet = " ";
 | 
				
			||||||
 | 
					          tooltip-format = "Network: <big><b>{essid}</b></big>\nSignal strength: <b>{signaldBm}dBm ({signalStrength}%)</b>\nFrequency: <b>{frequency}MHz</b>\nInterface: <b>{ifname}</b>\nIP: <b>{ipaddr}/{cidr}</b>\nGateway: <b>{gwaddr}</b>\nNetmask: <b>{netmask}</b>";
 | 
				
			||||||
 | 
					          format-linked = " {ifname} (No IP)";
 | 
				
			||||||
 | 
					          format-disconnected = " ";
 | 
				
			||||||
 | 
					          tooltip-format-disconnected = "Disconnected";
 | 
				
			||||||
 | 
					          on-click = "/usr/local/bin/ags -t ControlPanel";
 | 
				
			||||||
 | 
					          interval = 2;
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        memory = {
 | 
				
			||||||
 | 
					          interval = 1;
 | 
				
			||||||
 | 
					          rotate = 270;
 | 
				
			||||||
 | 
					          format = "{icon}";
 | 
				
			||||||
 | 
					          format-icons = [
 | 
				
			||||||
 | 
					            ""
 | 
				
			||||||
 | 
					            ""
 | 
				
			||||||
 | 
					            ""
 | 
				
			||||||
 | 
					            ""
 | 
				
			||||||
 | 
					            ""
 | 
				
			||||||
 | 
					            ""
 | 
				
			||||||
 | 
					            ""
 | 
				
			||||||
 | 
					            ""
 | 
				
			||||||
 | 
					            ""
 | 
				
			||||||
 | 
					          ];
 | 
				
			||||||
 | 
					          max-length = 10;
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        cpu = {
 | 
				
			||||||
 | 
					          interval = 1;
 | 
				
			||||||
 | 
					          format = "{icon}";
 | 
				
			||||||
 | 
					          rotate = 270;
 | 
				
			||||||
 | 
					          format-icons = [
 | 
				
			||||||
 | 
					            ""
 | 
				
			||||||
 | 
					            ""
 | 
				
			||||||
 | 
					            ""
 | 
				
			||||||
 | 
					            ""
 | 
				
			||||||
 | 
					            ""
 | 
				
			||||||
 | 
					            ""
 | 
				
			||||||
 | 
					            ""
 | 
				
			||||||
 | 
					            ""
 | 
				
			||||||
 | 
					            ""
 | 
				
			||||||
 | 
					          ];
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        clock = {
 | 
				
			||||||
 | 
					          format = "{:%I:%M %p}";
 | 
				
			||||||
 | 
					          rotate = 0;
 | 
				
			||||||
 | 
					          on-click = "/usr/local/bin/ags -t ActivityCenter";
 | 
				
			||||||
 | 
					          tooltip-format = "<tt>{calendar}</tt>";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          calendar = {
 | 
				
			||||||
 | 
					            mode = "month";
 | 
				
			||||||
 | 
					            mode-mon-col = 3;
 | 
				
			||||||
 | 
					            on-scroll = 1;
 | 
				
			||||||
 | 
					            on-click-right = "mode";
 | 
				
			||||||
 | 
					            format = {
 | 
				
			||||||
 | 
					              months = "<span color='#ffead3'><b>{}</b></span>";
 | 
				
			||||||
 | 
					              weekdays = "<span color='#ffcc66'><b>{}</b></span>";
 | 
				
			||||||
 | 
					              today = "<span color='#ff6699'><b>{}</b></span>";
 | 
				
			||||||
 | 
					            };
 | 
				
			||||||
 | 
					          };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          actions = {
 | 
				
			||||||
 | 
					            on-click-right = "mode";
 | 
				
			||||||
 | 
					            on-click-forward = "tz_up";
 | 
				
			||||||
 | 
					            on-click-backward = "tz_down";
 | 
				
			||||||
 | 
					            on-scroll-up = "shift_up";
 | 
				
			||||||
 | 
					            on-scroll-down = "shift_down";
 | 
				
			||||||
 | 
					          };
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      secondBar = {
 | 
				
			||||||
 | 
					        layer = "top";
 | 
				
			||||||
 | 
					        position = "top";
 | 
				
			||||||
 | 
					        height = 30;
 | 
				
			||||||
 | 
					        output = [
 | 
				
			||||||
 | 
					          "HDMI-A-2"
 | 
				
			||||||
 | 
					        ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        modules-left = [
 | 
				
			||||||
 | 
					          "hyprland/workspaces"
 | 
				
			||||||
 | 
					        ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        modules-center = [
 | 
				
			||||||
 | 
					        ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        modules-right = [
 | 
				
			||||||
 | 
					          "network"
 | 
				
			||||||
 | 
					        ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        "hyprland/workspaces" = {
 | 
				
			||||||
 | 
					          format = "{icon}";
 | 
				
			||||||
 | 
					          format-icons = {
 | 
				
			||||||
 | 
					            default = "";
 | 
				
			||||||
 | 
					            active = "";
 | 
				
			||||||
 | 
					          };
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        "custom/weather" = {
 | 
				
			||||||
 | 
					          exec = "~/.config/waybar/weather.py waybar";
 | 
				
			||||||
 | 
					          restart-interval = 900;
 | 
				
			||||||
 | 
					          return-type = "json";
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        network = {
 | 
				
			||||||
 | 
					          tooltip = true;
 | 
				
			||||||
 | 
					          format-wifi = "{icon} ";
 | 
				
			||||||
 | 
					          format-icons = [
 | 
				
			||||||
 | 
					            ""
 | 
				
			||||||
 | 
					            ""
 | 
				
			||||||
 | 
					            ""
 | 
				
			||||||
 | 
					          ];
 | 
				
			||||||
 | 
					          rotate = 0;
 | 
				
			||||||
 | 
					          format-ethernet = "{bandwidthTotalBits}  {bandwidthUpBits}  {bandwidthDownBits}   ";
 | 
				
			||||||
 | 
					          tooltip-format = "Network: <big><b>{essid}</b></big>\nSignal strength: <b>{signaldBm}dBm ({signalStrength}%)</b>\nFrequency: <b>{frequency}MHz</b>\nInterface: <b>{ifname}</b>\nIP: <b>{ipaddr}/{cidr}</b>\nGateway: <b>{gwaddr}</b>\nNetmask: <b>{netmask}</b>";
 | 
				
			||||||
 | 
					          format-linked = " {ifname} (No IP)";
 | 
				
			||||||
 | 
					          format-disconnected = " ";
 | 
				
			||||||
 | 
					          tooltip-format-disconnected = "Disconnected";
 | 
				
			||||||
 | 
					          on-click = "/usr/local/bin/ags -t ControlPanel";
 | 
				
			||||||
 | 
					          interval = 2;
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  home.file.".config/waybar" = {
 | 
				
			||||||
 | 
					    source = ./configs;
 | 
				
			||||||
 | 
					    # copy the scripts directory recursively
 | 
				
			||||||
 | 
					    recursive = true;
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,137 +2,162 @@
 | 
				
			|||||||
  pkgs,
 | 
					  pkgs,
 | 
				
			||||||
  config,
 | 
					  config,
 | 
				
			||||||
  ...
 | 
					  ...
 | 
				
			||||||
} : {
 | 
					}:
 | 
				
			||||||
    programs.waybar = {
 | 
					{
 | 
				
			||||||
        enable = true;
 | 
					  programs.waybar = {
 | 
				
			||||||
        package = pkgs.waybar;
 | 
					    enable = true;
 | 
				
			||||||
        settings = {
 | 
					    package = pkgs.waybar;
 | 
				
			||||||
            mainBar = {
 | 
					    settings = {
 | 
				
			||||||
                layer = "top";
 | 
					      mainBar = {
 | 
				
			||||||
                position = "top";
 | 
					        layer = "top";
 | 
				
			||||||
                height = 30;
 | 
					        position = "top";
 | 
				
			||||||
                output = [
 | 
					        height = 30;
 | 
				
			||||||
                    "eDP-1"
 | 
					        output = [
 | 
				
			||||||
                    "DP-1"
 | 
					          "eDP-1"
 | 
				
			||||||
                    "HDMI-A-1"
 | 
					          "DP-1"
 | 
				
			||||||
                    "Virtual-1"
 | 
					          "HDMI-A-1"
 | 
				
			||||||
                ];
 | 
					          "Virtual-1"
 | 
				
			||||||
 | 
					        ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                modules-left = [ 
 | 
					        modules-left = [
 | 
				
			||||||
                    "hyprland/workspaces"
 | 
					          "hyprland/workspaces"
 | 
				
			||||||
                    "mpris"
 | 
					          "mpris"
 | 
				
			||||||
                ];
 | 
					        ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                modules-center = [
 | 
					        modules-center = [
 | 
				
			||||||
                    "custom/weather"
 | 
					          "custom/weather"
 | 
				
			||||||
                ];
 | 
					        ];
 | 
				
			||||||
                
 | 
					 | 
				
			||||||
                modules-right = [
 | 
					 | 
				
			||||||
                    "network"
 | 
					 | 
				
			||||||
                    "memory"
 | 
					 | 
				
			||||||
                    "cpu"
 | 
					 | 
				
			||||||
                    "clock"
 | 
					 | 
				
			||||||
                ];
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
                # Widgets
 | 
					        modules-right = [
 | 
				
			||||||
                "sway/workspaces" = {
 | 
					          "network"
 | 
				
			||||||
                    disable-scroll = true;
 | 
					          "memory"
 | 
				
			||||||
                    all-outputs = true;
 | 
					          "cpu"
 | 
				
			||||||
                };
 | 
					          "clock"
 | 
				
			||||||
                
 | 
					        ];
 | 
				
			||||||
                mpris = {
 | 
					 | 
				
			||||||
                    format = "{player_icon} {dynamic}";
 | 
					 | 
				
			||||||
                    format-paused = "<span color='grey'>{status_icon} {dynamic}</span>";
 | 
					 | 
				
			||||||
                    max-length = 100;
 | 
					 | 
				
			||||||
                    
 | 
					 | 
				
			||||||
                    player-icons = {
 | 
					 | 
				
			||||||
                        default = "⏸";
 | 
					 | 
				
			||||||
                        mpv = "🎵";
 | 
					 | 
				
			||||||
                    };
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    status-icons = {
 | 
					        # Widgets
 | 
				
			||||||
                        paused = "▶"; 
 | 
					        "sway/workspaces" = {
 | 
				
			||||||
                    };
 | 
					          disable-scroll = true;
 | 
				
			||||||
                };
 | 
					          all-outputs = true;
 | 
				
			||||||
                
 | 
					 | 
				
			||||||
                "hyprland/workspaces" = {
 | 
					 | 
				
			||||||
                    format = "{icon}";
 | 
					 | 
				
			||||||
                    format-icons = {
 | 
					 | 
				
			||||||
                        default = "";
 | 
					 | 
				
			||||||
                        active = "";
 | 
					 | 
				
			||||||
                    };
 | 
					 | 
				
			||||||
                };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                network = {
 | 
					 | 
				
			||||||
                        tooltip = true;
 | 
					 | 
				
			||||||
                        format-wifi = "{icon} ";
 | 
					 | 
				
			||||||
                        format-icons = [""  ""  ""]; 
 | 
					 | 
				
			||||||
                        rotate = 0;
 | 
					 | 
				
			||||||
                        format-ethernet = " ";
 | 
					 | 
				
			||||||
                        tooltip-format = "Network = <big><b>{essid}</b></big>\nSignal strength: <b>{signaldBm}dBm ({signalStrength}%)</b>\nFrequency: <b>{frequency}MHz</b>\nInterface: <b>{ifname}</b>\nIP: <b>{ipaddr}/{cidr}</b>\nGateway: <b>{gwaddr}</b>\nNetmask: <b>{netmask}</b>";
 | 
					 | 
				
			||||||
                        format-linked = " {ifname} (No IP)";
 | 
					 | 
				
			||||||
                        format-disconnected = " ";
 | 
					 | 
				
			||||||
                        tooltip-format-disconnected = "Disconnected";
 | 
					 | 
				
			||||||
                        on-click = "/usr/local/bin/ags -t ControlPanel";
 | 
					 | 
				
			||||||
                        interval = 2;
 | 
					 | 
				
			||||||
                };
 | 
					 | 
				
			||||||
                    
 | 
					 | 
				
			||||||
                memory = {
 | 
					 | 
				
			||||||
                    interval = 1;
 | 
					 | 
				
			||||||
                    rotate = 270;
 | 
					 | 
				
			||||||
                    format = "{icon}";
 | 
					 | 
				
			||||||
                    format-icons = ["" "" "" "" "" "" "" "" ""];
 | 
					 | 
				
			||||||
                    max-length = 10;
 | 
					 | 
				
			||||||
                };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                cpu = {
 | 
					 | 
				
			||||||
                    interval = 1;
 | 
					 | 
				
			||||||
                    format = "{icon}";
 | 
					 | 
				
			||||||
                    rotate = 270;
 | 
					 | 
				
			||||||
                    format-icons = ["" "" "" "" "" "" "" "" ""];
 | 
					 | 
				
			||||||
                };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                clock = {
 | 
					 | 
				
			||||||
                    format = "{:%I:%M %p}";
 | 
					 | 
				
			||||||
                    rotate = 0;
 | 
					 | 
				
			||||||
                    on-click = "/usr/local/bin/ags -t ActivityCenter";
 | 
					 | 
				
			||||||
                    tooltip-format = "<tt>{calendar}</tt>";
 | 
					 | 
				
			||||||
                    
 | 
					 | 
				
			||||||
                    calendar = {
 | 
					 | 
				
			||||||
                        mode = "month";
 | 
					 | 
				
			||||||
                        mode-mon-col = 3;
 | 
					 | 
				
			||||||
                        on-scroll = 1;
 | 
					 | 
				
			||||||
                        on-click-right = "mode";
 | 
					 | 
				
			||||||
                        format = {
 | 
					 | 
				
			||||||
                            months = "<span color='#ffead3'><b>{}</b></span>";
 | 
					 | 
				
			||||||
                            weekdays = "<span color='#ffcc66'><b>{}</b></span>";
 | 
					 | 
				
			||||||
                            today = "<span color='#ff6699'><b>{}</b></span>";
 | 
					 | 
				
			||||||
                        };
 | 
					 | 
				
			||||||
                    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    actions = {
 | 
					 | 
				
			||||||
                        on-click-right = "mode";
 | 
					 | 
				
			||||||
                        on-click-forward = "tz_up";
 | 
					 | 
				
			||||||
                        on-click-backward = "tz_down";
 | 
					 | 
				
			||||||
                        on-scroll-up = "shift_up";
 | 
					 | 
				
			||||||
                        on-scroll-down = "shift_down";
 | 
					 | 
				
			||||||
                    };
 | 
					 | 
				
			||||||
                };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                # Custom Widgets
 | 
					 | 
				
			||||||
                "custom/weather" = {
 | 
					 | 
				
			||||||
                    exec = "python3 ~/.config/waybar/weather.py waybar";
 | 
					 | 
				
			||||||
                    restart-interval = 900;
 | 
					 | 
				
			||||||
                    return-type = "json";
 | 
					 | 
				
			||||||
                };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            };
 | 
					 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    home.file.".config/waybar" = {
 | 
					        mpris = {
 | 
				
			||||||
        source = ./configs;
 | 
					          format = "{player_icon} {dynamic}";
 | 
				
			||||||
        # copy the scripts directory recursively
 | 
					          format-paused = "<span color='grey'>{status_icon} {dynamic}</span>";
 | 
				
			||||||
        recursive = true;
 | 
					          max-length = 100;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          player-icons = {
 | 
				
			||||||
 | 
					            default = "⏸";
 | 
				
			||||||
 | 
					            mpv = "🎵";
 | 
				
			||||||
 | 
					          };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          status-icons = {
 | 
				
			||||||
 | 
					            paused = "▶";
 | 
				
			||||||
 | 
					          };
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        "hyprland/workspaces" = {
 | 
				
			||||||
 | 
					          format = "{icon}";
 | 
				
			||||||
 | 
					          format-icons = {
 | 
				
			||||||
 | 
					            default = "";
 | 
				
			||||||
 | 
					            active = "";
 | 
				
			||||||
 | 
					          };
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        network = {
 | 
				
			||||||
 | 
					          tooltip = true;
 | 
				
			||||||
 | 
					          format-wifi = "{icon} ";
 | 
				
			||||||
 | 
					          format-icons = [
 | 
				
			||||||
 | 
					            ""
 | 
				
			||||||
 | 
					            ""
 | 
				
			||||||
 | 
					            ""
 | 
				
			||||||
 | 
					          ];
 | 
				
			||||||
 | 
					          rotate = 0;
 | 
				
			||||||
 | 
					          format-ethernet = " ";
 | 
				
			||||||
 | 
					          tooltip-format = "Network = <big><b>{essid}</b></big>\nSignal strength: <b>{signaldBm}dBm ({signalStrength}%)</b>\nFrequency: <b>{frequency}MHz</b>\nInterface: <b>{ifname}</b>\nIP: <b>{ipaddr}/{cidr}</b>\nGateway: <b>{gwaddr}</b>\nNetmask: <b>{netmask}</b>";
 | 
				
			||||||
 | 
					          format-linked = " {ifname} (No IP)";
 | 
				
			||||||
 | 
					          format-disconnected = " ";
 | 
				
			||||||
 | 
					          tooltip-format-disconnected = "Disconnected";
 | 
				
			||||||
 | 
					          on-click = "/usr/local/bin/ags -t ControlPanel";
 | 
				
			||||||
 | 
					          interval = 2;
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        memory = {
 | 
				
			||||||
 | 
					          interval = 1;
 | 
				
			||||||
 | 
					          rotate = 270;
 | 
				
			||||||
 | 
					          format = "{icon}";
 | 
				
			||||||
 | 
					          format-icons = [
 | 
				
			||||||
 | 
					            ""
 | 
				
			||||||
 | 
					            ""
 | 
				
			||||||
 | 
					            ""
 | 
				
			||||||
 | 
					            ""
 | 
				
			||||||
 | 
					            ""
 | 
				
			||||||
 | 
					            ""
 | 
				
			||||||
 | 
					            ""
 | 
				
			||||||
 | 
					            ""
 | 
				
			||||||
 | 
					            ""
 | 
				
			||||||
 | 
					          ];
 | 
				
			||||||
 | 
					          max-length = 10;
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        cpu = {
 | 
				
			||||||
 | 
					          interval = 1;
 | 
				
			||||||
 | 
					          format = "{icon}";
 | 
				
			||||||
 | 
					          rotate = 270;
 | 
				
			||||||
 | 
					          format-icons = [
 | 
				
			||||||
 | 
					            ""
 | 
				
			||||||
 | 
					            ""
 | 
				
			||||||
 | 
					            ""
 | 
				
			||||||
 | 
					            ""
 | 
				
			||||||
 | 
					            ""
 | 
				
			||||||
 | 
					            ""
 | 
				
			||||||
 | 
					            ""
 | 
				
			||||||
 | 
					            ""
 | 
				
			||||||
 | 
					            ""
 | 
				
			||||||
 | 
					          ];
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        clock = {
 | 
				
			||||||
 | 
					          format = "{:%I:%M %p}";
 | 
				
			||||||
 | 
					          rotate = 0;
 | 
				
			||||||
 | 
					          on-click = "/usr/local/bin/ags -t ActivityCenter";
 | 
				
			||||||
 | 
					          tooltip-format = "<tt>{calendar}</tt>";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          calendar = {
 | 
				
			||||||
 | 
					            mode = "month";
 | 
				
			||||||
 | 
					            mode-mon-col = 3;
 | 
				
			||||||
 | 
					            on-scroll = 1;
 | 
				
			||||||
 | 
					            on-click-right = "mode";
 | 
				
			||||||
 | 
					            format = {
 | 
				
			||||||
 | 
					              months = "<span color='#ffead3'><b>{}</b></span>";
 | 
				
			||||||
 | 
					              weekdays = "<span color='#ffcc66'><b>{}</b></span>";
 | 
				
			||||||
 | 
					              today = "<span color='#ff6699'><b>{}</b></span>";
 | 
				
			||||||
 | 
					            };
 | 
				
			||||||
 | 
					          };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          actions = {
 | 
				
			||||||
 | 
					            on-click-right = "mode";
 | 
				
			||||||
 | 
					            on-click-forward = "tz_up";
 | 
				
			||||||
 | 
					            on-click-backward = "tz_down";
 | 
				
			||||||
 | 
					            on-scroll-up = "shift_up";
 | 
				
			||||||
 | 
					            on-scroll-down = "shift_down";
 | 
				
			||||||
 | 
					          };
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        # Custom Widgets
 | 
				
			||||||
 | 
					        "custom/weather" = {
 | 
				
			||||||
 | 
					          exec = "python3 ~/.config/waybar/weather.py waybar";
 | 
				
			||||||
 | 
					          restart-interval = 900;
 | 
				
			||||||
 | 
					          return-type = "json";
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  home.file.".config/waybar" = {
 | 
				
			||||||
 | 
					    source = ./configs;
 | 
				
			||||||
 | 
					    # copy the scripts directory recursively
 | 
				
			||||||
 | 
					    recursive = true;
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,5 @@
 | 
				
			|||||||
{ pkgs, ... }:
 | 
					{ pkgs, ... }:
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	programs.niri.enable = true;
 | 
					  programs.niri.enable = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3,7 +3,8 @@
 | 
				
			|||||||
  pkgs,
 | 
					  pkgs,
 | 
				
			||||||
  catppuccin-bat,
 | 
					  catppuccin-bat,
 | 
				
			||||||
  ...
 | 
					  ...
 | 
				
			||||||
}: {
 | 
					}:
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
  home.packages = with pkgs; [
 | 
					  home.packages = with pkgs; [
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  ];
 | 
					  ];
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,24 +1,24 @@
 | 
				
			|||||||
{ pkgs, ... }:
 | 
					{ pkgs, ... }:
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    home.packages = with pkgs; [
 | 
					  home.packages = with pkgs; [
 | 
				
			||||||
        # C / C++
 | 
					    # C / C++
 | 
				
			||||||
        clang
 | 
					    clang
 | 
				
			||||||
        #gcc
 | 
					    #gcc
 | 
				
			||||||
        lua
 | 
					    lua
 | 
				
			||||||
        
 | 
					 | 
				
			||||||
        # Rust
 | 
					 | 
				
			||||||
        cargo
 | 
					 | 
				
			||||||
        rustc
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # Zig
 | 
					    # Rust
 | 
				
			||||||
        zig 
 | 
					    cargo
 | 
				
			||||||
        
 | 
					    rustc
 | 
				
			||||||
        #python
 | 
					 | 
				
			||||||
        python314
 | 
					 | 
				
			||||||
    ];
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    programs.go = {
 | 
					    # Zig
 | 
				
			||||||
        enable = true;
 | 
					    zig
 | 
				
			||||||
        packages = {};
 | 
					
 | 
				
			||||||
    };
 | 
					    #python
 | 
				
			||||||
 | 
					    python314
 | 
				
			||||||
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  programs.go = {
 | 
				
			||||||
 | 
					    enable = true;
 | 
				
			||||||
 | 
					    packages = { };
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,11 +1,11 @@
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
    imports = [
 | 
					  imports = [
 | 
				
			||||||
        ./git.nix
 | 
					    ./git.nix
 | 
				
			||||||
        ./neovim
 | 
					    ./neovim
 | 
				
			||||||
        ./fstl.nix
 | 
					    ./fstl.nix
 | 
				
			||||||
        ./openscad.nix
 | 
					    ./openscad.nix
 | 
				
			||||||
        ./sqllite_browser.nix
 | 
					    ./sqllite_browser.nix
 | 
				
			||||||
        ./compilers.nix
 | 
					    ./compilers.nix
 | 
				
			||||||
        ./beekeeper-studio.nix
 | 
					    ./beekeeper-studio.nix
 | 
				
			||||||
    ];
 | 
					  ];
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,8 +1,9 @@
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
  pkgs,
 | 
					  pkgs,
 | 
				
			||||||
  ...
 | 
					  ...
 | 
				
			||||||
}: {
 | 
					}:
 | 
				
			||||||
  home.packages = [pkgs.gh];
 | 
					{
 | 
				
			||||||
 | 
					  home.packages = [ pkgs.gh ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  programs.git = {
 | 
					  programs.git = {
 | 
				
			||||||
    enable = true;
 | 
					    enable = true;
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										268
									
								
								home/programs/dev/neovim/config.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										268
									
								
								home/programs/dev/neovim/config.lua
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,268 @@
 | 
				
			|||||||
 | 
					-- Basics
 | 
				
			||||||
 | 
					vim.g.mapleader = " "
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-- Yank to system clipboard
 | 
				
			||||||
 | 
					vim.keymap.set("n", "y", '"+y', { desc = "Yank to clipboard" })
 | 
				
			||||||
 | 
					vim.keymap.set("v", "y", '"+y', { desc = "Yank to clipboard" })
 | 
				
			||||||
 | 
					vim.keymap.set("n", "Y", '"+Y', { desc = "Yank line to clipboard" })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-- Also make delete operations use system clipboard
 | 
				
			||||||
 | 
					vim.keymap.set("n", "d", '"+d', { desc = "Delete to clipboard" })
 | 
				
			||||||
 | 
					vim.keymap.set("v", "d", '"+d', { desc = "Delete to clipboard" })
 | 
				
			||||||
 | 
					vim.keymap.set("n", "D", '"+D', { desc = "Delete line to clipboard" })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-- Paste from system clipboard
 | 
				
			||||||
 | 
					vim.keymap.set("n", "p", '"+p', { desc = "Paste from clipboard" })
 | 
				
			||||||
 | 
					vim.keymap.set("v", "p", '"+p', { desc = "Paste from clipboard" })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-- Treesitter
 | 
				
			||||||
 | 
					require("nvim-treesitter.configs").setup({
 | 
				
			||||||
 | 
						ensure_installed = { "lua", "nix", "python", "javascript", "rust", "rasi" },
 | 
				
			||||||
 | 
						sync_install = false,
 | 
				
			||||||
 | 
						auto_install = true,
 | 
				
			||||||
 | 
						highlight = {
 | 
				
			||||||
 | 
							enable = true,
 | 
				
			||||||
 | 
							additional_vim_regex_highlighting = false,
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						parser_install_dir = vim.fn.stdpath("data") .. "/treesitter",
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					vim.opt.runtimepath:append(vim.fn.stdpath("data") .. "/treesitter")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-- Linting
 | 
				
			||||||
 | 
					require("lint").linters_by_ft = {}
 | 
				
			||||||
 | 
					vim.api.nvim_create_autocmd({ "BufWritePost" }, {
 | 
				
			||||||
 | 
						callback = function()
 | 
				
			||||||
 | 
							require("lint").try_lint()
 | 
				
			||||||
 | 
						end,
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-- Mason Setup
 | 
				
			||||||
 | 
					require("mason").setup({
 | 
				
			||||||
 | 
						ui = {
 | 
				
			||||||
 | 
							icons = {
 | 
				
			||||||
 | 
								package_installed = "✓",
 | 
				
			||||||
 | 
								package_pending = "➜",
 | 
				
			||||||
 | 
								package_uninstalled = "✗",
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					require("mason-lspconfig").setup({
 | 
				
			||||||
 | 
						ensure_installed = {
 | 
				
			||||||
 | 
							"lua_ls",
 | 
				
			||||||
 | 
							"nil_ls",
 | 
				
			||||||
 | 
							"rust_analyzer",
 | 
				
			||||||
 | 
							"pylsp",
 | 
				
			||||||
 | 
							"stylelint-lsp",
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						automatic_installation = true,
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-- LSP Config
 | 
				
			||||||
 | 
					local cmp = require("cmp")
 | 
				
			||||||
 | 
					cmp.setup({
 | 
				
			||||||
 | 
						snippet = {
 | 
				
			||||||
 | 
							expand = function(args)
 | 
				
			||||||
 | 
								require("luasnip").lsp_expand(args.body)
 | 
				
			||||||
 | 
							end,
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						mapping = cmp.mapping.preset.insert({
 | 
				
			||||||
 | 
							["<C-b>"] = cmp.mapping.scroll_docs(-4),
 | 
				
			||||||
 | 
							["<C-f>"] = cmp.mapping.scroll_docs(4),
 | 
				
			||||||
 | 
							["<C-Space>"] = cmp.mapping.complete(),
 | 
				
			||||||
 | 
							["<C-e>"] = cmp.mapping.abort(),
 | 
				
			||||||
 | 
							["<CR>"] = cmp.mapping.confirm({ select = true }),
 | 
				
			||||||
 | 
						}),
 | 
				
			||||||
 | 
						sources = cmp.config.sources({
 | 
				
			||||||
 | 
							{ name = "nvim_lsp" },
 | 
				
			||||||
 | 
							{ name = "luasnip" },
 | 
				
			||||||
 | 
						}, {
 | 
				
			||||||
 | 
							{ name = "buffer" },
 | 
				
			||||||
 | 
							{ name = "path" },
 | 
				
			||||||
 | 
						}),
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					local lspconfig = require("lspconfig")
 | 
				
			||||||
 | 
					local capabilities = require("cmp_nvim_lsp").default_capabilities()
 | 
				
			||||||
 | 
					vim.keymap.set("n", "gd", vim.lsp.buf.definition, {})
 | 
				
			||||||
 | 
					vim.keymap.set("n", "K", vim.lsp.buf.hover, {})
 | 
				
			||||||
 | 
					vim.keymap.set("n", "<leader>rn", vim.lsp.buf.rename, {})
 | 
				
			||||||
 | 
					vim.keymap.set("n", "<leader>ca", vim.lsp.buf.code_action, {})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-- Setup language servers
 | 
				
			||||||
 | 
					lspconfig.lua_ls.setup({
 | 
				
			||||||
 | 
						capabilities = capabilities,
 | 
				
			||||||
 | 
						settings = {
 | 
				
			||||||
 | 
							Lua = {
 | 
				
			||||||
 | 
								runtime = { version = "LuaJIT" },
 | 
				
			||||||
 | 
								diagnostics = { globals = { "vim" } },
 | 
				
			||||||
 | 
								workspace = { library = vim.api.nvim_get_runtime_file("", true) },
 | 
				
			||||||
 | 
								telemetry = { enable = false },
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					lspconfig.nil_ls.setup({ capabilities = capabilities })
 | 
				
			||||||
 | 
					lspconfig.rust_analyzer.setup({ capabilities = capabilities })
 | 
				
			||||||
 | 
					lspconfig.pylsp.setup({ capabilities = capabilities })
 | 
				
			||||||
 | 
					lspconfig.stylelint_lsp.setup({
 | 
				
			||||||
 | 
							cmd = { "stylelint-lsp", "--stdio" },
 | 
				
			||||||
 | 
							filetypes = { "css", "scss", "rasi" },
 | 
				
			||||||
 | 
							capabilities = vim.lsp.protocol.make_client_capabilities(),
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-- Conform
 | 
				
			||||||
 | 
					require("conform").setup({
 | 
				
			||||||
 | 
						formatters_by_ft = {
 | 
				
			||||||
 | 
							lua = { "stylua" },
 | 
				
			||||||
 | 
							nix = { "nixfmt" },
 | 
				
			||||||
 | 
							python = { "black" },
 | 
				
			||||||
 | 
							rust = { "rustfmt" },
 | 
				
			||||||
 | 
							rasi = { "prettierd" },
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						format_on_save = {
 | 
				
			||||||
 | 
							timeout_ms = 500,
 | 
				
			||||||
 | 
							lsp_fallback = true,
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-- Yazi
 | 
				
			||||||
 | 
					require("yazi").setup({
 | 
				
			||||||
 | 
						open_for_directories = true,
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					vim.keymap.set("n", "<leader>fy", function()
 | 
				
			||||||
 | 
						require("yazi").yazi(nil, vim.loop.cwd())
 | 
				
			||||||
 | 
					end, { desc = "Open Yazi file manager" })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					vim.keymap.set("n", "<leader>fd", function()
 | 
				
			||||||
 | 
						require("yazi").yazi(nil, vim.fn.expand("%:p:h"))
 | 
				
			||||||
 | 
					end, { desc = "Open Yazi in current file directory" })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-- Telescope
 | 
				
			||||||
 | 
					require("telescope").setup()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					local telescope = require("telescope.builtin")
 | 
				
			||||||
 | 
					vim.keymap.set("n", "<leader>ff", telescope.find_files, { desc = "Telescope find files" })
 | 
				
			||||||
 | 
					vim.keymap.set("n", "<leader>fg", telescope.live_grep, { desc = "Telescope live grep" })
 | 
				
			||||||
 | 
					vim.keymap.set("n", "<leader>fb", telescope.buffers, { desc = "Telescope buffers" })
 | 
				
			||||||
 | 
					vim.keymap.set("n", "<leader>fh", telescope.help_tags, { desc = "Telescope help tags" })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-- Styling
 | 
				
			||||||
 | 
					require("catppuccin").setup({
 | 
				
			||||||
 | 
						flavour = "mocha",
 | 
				
			||||||
 | 
						transparent_background = true,
 | 
				
			||||||
 | 
						term_colors = true,
 | 
				
			||||||
 | 
						integration = {
 | 
				
			||||||
 | 
							treesitter = true,
 | 
				
			||||||
 | 
							mason = true,
 | 
				
			||||||
 | 
							lsp_trouble = true,
 | 
				
			||||||
 | 
							which_key = true,
 | 
				
			||||||
 | 
							cmp = true,
 | 
				
			||||||
 | 
							gitsigns = true,
 | 
				
			||||||
 | 
							telescope = true,
 | 
				
			||||||
 | 
							nvimtree = true,
 | 
				
			||||||
 | 
							dashboard = true,
 | 
				
			||||||
 | 
							notify = true,
 | 
				
			||||||
 | 
							indent_blankline = true,
 | 
				
			||||||
 | 
							toggleterm = true, -- Important for transparent terminals
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					vim.cmd.colorscheme("catppuccin")
 | 
				
			||||||
 | 
					vim.opt.number = true
 | 
				
			||||||
 | 
					vim.opt.cursorline = true
 | 
				
			||||||
 | 
					vim.opt.showmode = false
 | 
				
			||||||
 | 
					vim.opt.syntax = "enable"
 | 
				
			||||||
 | 
					vim.opt.hlsearch = true
 | 
				
			||||||
 | 
					vim.opt.incsearch = true
 | 
				
			||||||
 | 
					vim.opt.tabstop = 4
 | 
				
			||||||
 | 
					vim.opt.termguicolors = true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					local colors = require("catppuccin.palettes").get_palette("mocha")
 | 
				
			||||||
 | 
					vim.api.nvim_set_hl(0, "LineNr", { fg = colors.text, bg = "NONE" })
 | 
				
			||||||
 | 
					vim.api.nvim_set_hl(0, "CursorLineNr", { fg = colors.pink, bg = "NONE", bold = true })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-- ToggleTerm setup
 | 
				
			||||||
 | 
					require("toggleterm").setup({
 | 
				
			||||||
 | 
						size = 20,
 | 
				
			||||||
 | 
						open_mapping = [[<c-\>]],
 | 
				
			||||||
 | 
						direction = "float",
 | 
				
			||||||
 | 
						float_opts = {
 | 
				
			||||||
 | 
							border = "single",
 | 
				
			||||||
 | 
							width = 200,
 | 
				
			||||||
 | 
							height = 40,
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					vim.keymap.set("n", "<leader>h", function()
 | 
				
			||||||
 | 
						require("toggleterm").toggle(1, 10, vim.loop.cwd(), "horizontal")
 | 
				
			||||||
 | 
					end, { desc = "Toggle terminal (horizontal)" })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					vim.keymap.set("n", "<leader>v", function()
 | 
				
			||||||
 | 
						require("toggleterm").toggle(2, 60, vim.loop.cwd(), "vertical")
 | 
				
			||||||
 | 
					end, { desc = "Toggle terminal (vertical)" })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					vim.keymap.set("n", "<leader>ft", function()
 | 
				
			||||||
 | 
						require("toggleterm").toggle(3, 20, vim.loop.cwd(), "float")
 | 
				
			||||||
 | 
					end, { desc = "Toggle terminal (float)" })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					vim.keymap.set("t", "<C-t>", "<Cmd>ToggleTerm<CR>", { desc = "Toggle terminal" })
 | 
				
			||||||
 | 
					vim.keymap.set("t", "<C-v>", "<C-\\><C-n>v", { desc = "Exit terminal and enter visual mode" })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-- Statusline
 | 
				
			||||||
 | 
					require("lualine").setup({
 | 
				
			||||||
 | 
						options = {
 | 
				
			||||||
 | 
							theme = "catppuccin",
 | 
				
			||||||
 | 
							component_separators = { left = "|", right = "|" },
 | 
				
			||||||
 | 
							section_separators = { left = "", right = "" },
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-- Dashboard
 | 
				
			||||||
 | 
					local alpha = require("alpha")
 | 
				
			||||||
 | 
					local dashboard = require("alpha.themes.dashboard")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dashboard.section.header.val = {
 | 
				
			||||||
 | 
						"⣿⣿⣿⣿⣿⣿⣿⣿⣿⢿⣯⣿⠿⣟⣷⣯⣛⢿⣿⣿⣾⣟⣿⣿⣿⣿⣿⣿⣿⣿⣿",
 | 
				
			||||||
 | 
						"⣿⣿⣿⣿⣿⣿⣿⡿⣵⣿⡿⣴⣽⡟⣳⢿⢽⣽⣕⣽⢿⡿⣿⣟⣿⣿⣿⣿⣿⣿⣿",
 | 
				
			||||||
 | 
						"⣿⣿⣿⣷⣿⣿⢟⣫⣿⢟⢟⣾⣾⣿⣿⣞⢳⣻⢞⣎⠿⢞⣊⣿⣞⣿⣿⣿⣿⣿⢽",
 | 
				
			||||||
 | 
						"⣿⣿⣿⣿⣿⣏⢯⣿⣏⣏⠔⢇⣿⢢⢆⢀⢆⣧⣼⢻⢰⡧⢻⣝⣏⡸⣧⣾⣿⣿⣿",
 | 
				
			||||||
 | 
						"⣿⣿⣿⣿⡟⣻⣿⣿⡾⡿⡼⢸⡝⣝⡳⢢⣧⢳⣳⢷⡇⣗⢺⡺⣿⡧⣿⣿⣿⢿⢿",
 | 
				
			||||||
 | 
						"⣿⡿⣿⣼⡼⣿⣿⡗⡧⣧⠁⡝⣧⣳⠅⡾⠈⣎⢮⣧⣿⣿⣗⣷⣻⢷⣏⣼⢏⣺⣿",
 | 
				
			||||||
 | 
						"⣿⣿⣿⣻⣿⣿⣿⢧⣿⢹⠉⢷⢿⣧⣲⡏⡀⡈⢆⠳⣿⡿⢿⣿⣱⢿⢫⣷⣝⣿⣿",
 | 
				
			||||||
 | 
						"⣿⣿⣿⡯⡟⣿⣿⢽⣡⠟⢿⣮⠁⠙⠛⠈⡴⢿⣿⡷⣬⣽⢽⠧⣷⡏⣿⡇⣧⣽⣿",
 | 
				
			||||||
 | 
						"⣿⠟⢻⡧⡇⣿⡇⣇⣆⢄⡜⢃⡀⡀⡀⡀⡀⢎⣁⠁⣸⣗⣸⣿⣧⣼⡿⢹⢿⢾⣿",
 | 
				
			||||||
 | 
						"⣿⣷⣾⣿⢻⣿⢧⢻⣽⡀⡀⡀⡀⢄⡀⡀⡀⡀⡀⢀⣷⡸⡟⣿⣶⣻⣧⡛⡱⢝⣿",
 | 
				
			||||||
 | 
						"⣿⣿⣿⣿⢸⡿⢚⡜⣿⣇⡀⡀⡀⡀⡀⡀⡀⡀⠚⢁⢣⣜⡿⣿⡇⢼⣿⠨⣸⣿⣿",
 | 
				
			||||||
 | 
						"⣿⣄⣿⣗⢾⢻⣧⢿⣾⣿⣦⡀⡀⠑⠚⠉⡀⡀⣤⣿⢨⣿⠗⣻⢣⣿⢹⢈⣽⣿⣿",
 | 
				
			||||||
 | 
						"⣿⣿⣿⣿⢎⡄⢿⣞⡇⣿⠹⣿⣶⣀⡀⣀⡴⡩⢸⢏⣿⣿⣶⢻⣾⢏⡞⠡⢽⣇⣾",
 | 
				
			||||||
 | 
						"⣿⣿⣿⣮⣼⢬⣦⢿⣳⣌⠧⡉⠈⣇⣛⣁⣈⣼⣿⡸⠫⠛⠐⠛⠕⣙⣻⣬⣼⣿⣿",
 | 
				
			||||||
 | 
						"⢟⢿⣿⣿⣿⡢⣃⣪⣭⣡⣤⣶⠟⡿⠿⠿⠿⠛⢁⣿⣿⢩⠉⡀⠈⠓⡝⣿⣿⣿⣿",
 | 
				
			||||||
 | 
						"⣾⣿⣿⣿⣿⠞⢔⡣⡴⣾⣿⠓⣤⢧⡼⣉⠠⢤⣿⣿⠇⠃⡀⡀⡀⡀⡸⢿⣾⣿⣿",
 | 
				
			||||||
 | 
						"⣿⣿⣿⡿⣺⡸⢗⢠⣇⣿⣿⠊⠃⡀⠉⡀⢠⣿⣿⠟⡸⡀⡀⡀⡀⡀⣃⣬⠽⠿⣿",
 | 
				
			||||||
 | 
						"⣿⣿⣿⣿⡇⡏⢸⣿⠟⣽⡇⡀⡀⡀⡀⣴⣟⢭⣾⣿⡇⠎⣠⠒⠉⠈⢀⡀⢨⡋⣿",
 | 
				
			||||||
 | 
						"⠛⠛⠛⠋⠃⠓⠚⠛⠘⠛⠃⡀⠊⡀⠛⠛⠛⠂⠛⠛⠓⠁⠚⡀⠂⠒⠒⠐⠒⠋⠛",
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dashboard.section.buttons.val = {
 | 
				
			||||||
 | 
						dashboard.button("e", "[+] New file", ":ene <BAR> startinsert <CR>"),
 | 
				
			||||||
 | 
						dashboard.button("f", "[?] Find file", ":Telescope find_files <CR>"),
 | 
				
			||||||
 | 
						dashboard.button("r", "[~] Recent files", ":Telescope oldfiles <CR>"),
 | 
				
			||||||
 | 
						dashboard.button("y", "[Y] Yazi", ":Yazi<CR>"),
 | 
				
			||||||
 | 
						dashboard.button("m", "[M] Mason", ":Mason<CR>"),
 | 
				
			||||||
 | 
						dashboard.button("q", "[X] Quit", ":qa<CR>"),
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dashboard.section.footer.val = "Circuits hum in anticipation of your will."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					vim.api.nvim_create_autocmd("VimEnter", {
 | 
				
			||||||
 | 
						callback = function()
 | 
				
			||||||
 | 
							if vim.fn.argc() == 0 then
 | 
				
			||||||
 | 
								require("alpha").start()
 | 
				
			||||||
 | 
							end
 | 
				
			||||||
 | 
						end,
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					alpha.setup(dashboard.config)
 | 
				
			||||||
@@ -1,37 +0,0 @@
 | 
				
			|||||||
vim.g.base46_cache = vim.fn.stdpath "data" .. "/base46/"
 | 
					 | 
				
			||||||
vim.g.mapleader = " "
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
-- bootstrap lazy and all plugins
 | 
					 | 
				
			||||||
local lazypath = vim.fn.stdpath "data" .. "/lazy/lazy.nvim"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if not vim.uv.fs_stat(lazypath) then
 | 
					 | 
				
			||||||
  local repo = "https://github.com/folke/lazy.nvim.git"
 | 
					 | 
				
			||||||
  vim.fn.system { "git", "clone", "--filter=blob:none", repo, "--branch=stable", lazypath }
 | 
					 | 
				
			||||||
end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
vim.opt.rtp:prepend(lazypath)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
local lazy_config = require "configs.lazy"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
-- load plugins
 | 
					 | 
				
			||||||
require("lazy").setup({
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    "NvChad/NvChad",
 | 
					 | 
				
			||||||
    lazy = false,
 | 
					 | 
				
			||||||
    branch = "v2.5",
 | 
					 | 
				
			||||||
    import = "nvchad.plugins",
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  { import = "plugins" },
 | 
					 | 
				
			||||||
}, lazy_config)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
-- load theme
 | 
					 | 
				
			||||||
dofile(vim.g.base46_cache .. "defaults")
 | 
					 | 
				
			||||||
dofile(vim.g.base46_cache .. "statusline")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
require "options"
 | 
					 | 
				
			||||||
require "nvchad.autocmds"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
vim.schedule(function()
 | 
					 | 
				
			||||||
  require "mappings"
 | 
					 | 
				
			||||||
end)
 | 
					 | 
				
			||||||
@@ -1,34 +0,0 @@
 | 
				
			|||||||
{
 | 
					 | 
				
			||||||
  "LuaSnip": { "branch": "master", "commit": "c9b9a22904c97d0eb69ccb9bab76037838326817" },
 | 
					 | 
				
			||||||
  "NvChad": { "branch": "v2.5", "commit": "6f25b2739684389ca69ea8229386c098c566c408" },
 | 
					 | 
				
			||||||
  "base46": { "branch": "v3.0", "commit": "59566882e09a8a77dbdb33b678a93680c36ae089" },
 | 
					 | 
				
			||||||
  "cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
 | 
					 | 
				
			||||||
  "cmp-nvim-lsp": { "branch": "main", "commit": "99290b3ec1322070bcfb9e846450a46f6efa50f0" },
 | 
					 | 
				
			||||||
  "cmp-nvim-lua": { "branch": "main", "commit": "f12408bdb54c39c23e67cab726264c10db33ada8" },
 | 
					 | 
				
			||||||
  "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
 | 
					 | 
				
			||||||
  "cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" },
 | 
					 | 
				
			||||||
  "conform.nvim": { "branch": "master", "commit": "db8a4a9edb217067b1d7a2e0362c74bfe9cc944d" },
 | 
					 | 
				
			||||||
  "friendly-snippets": { "branch": "main", "commit": "efff286dd74c22f731cdec26a70b46e5b203c619" },
 | 
					 | 
				
			||||||
  "fzf.vim": { "branch": "master", "commit": "245eaf8e50fe440729056ce8d4e7e2bb5b1ff9c9" },
 | 
					 | 
				
			||||||
  "gitsigns.nvim": { "branch": "main", "commit": "4c40357994f386e72be92a46f41fc1664c84c87d" },
 | 
					 | 
				
			||||||
  "indent-blankline.nvim": { "branch": "master", "commit": "e10626f7fcd51ccd56d7ffc00883ba7e0aa28f78" },
 | 
					 | 
				
			||||||
  "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" },
 | 
					 | 
				
			||||||
  "mason-conform.nvim": { "branch": "main", "commit": "1983f353b29d8716751665c18d57e1ac0473a59a" },
 | 
					 | 
				
			||||||
  "mason-lspconfig.nvim": { "branch": "main", "commit": "1a31f824b9cd5bc6f342fc29e9a53b60d74af245" },
 | 
					 | 
				
			||||||
  "mason.nvim": { "branch": "main", "commit": "fc98833b6da5de5a9c5b1446ac541577059555be" },
 | 
					 | 
				
			||||||
  "menu": { "branch": "main", "commit": "7769b17c2a131108c02b10e9f844e504aa605cc2" },
 | 
					 | 
				
			||||||
  "minty": { "branch": "main", "commit": "aafc9e8e0afe6bf57580858a2849578d8d8db9e0" },
 | 
					 | 
				
			||||||
  "nvim-autopairs": { "branch": "master", "commit": "68f0e5c3dab23261a945272032ee6700af86227a" },
 | 
					 | 
				
			||||||
  "nvim-cmp": { "branch": "main", "commit": "c27370703e798666486e3064b64d59eaf4bdc6d5" },
 | 
					 | 
				
			||||||
  "nvim-lint": { "branch": "master", "commit": "6e9dd545a1af204c4022a8fcd99727ea41ffdcc8" },
 | 
					 | 
				
			||||||
  "nvim-lspconfig": { "branch": "master", "commit": "8a1529e46eef5efc86c34c8d9bdd313abc2ecba0" },
 | 
					 | 
				
			||||||
  "nvim-tree.lua": { "branch": "master", "commit": "c09ff35de503a41fa62465c6b4ae72d96e7a7ce4" },
 | 
					 | 
				
			||||||
  "nvim-treesitter": { "branch": "master", "commit": "1a314a58d6d7695d226b56f6b61b1596993d5ac7" },
 | 
					 | 
				
			||||||
  "nvim-web-devicons": { "branch": "master", "commit": "ab4cfee554e501f497bce0856788d43cf2eb93d7" },
 | 
					 | 
				
			||||||
  "openscad.nvim": { "branch": "main", "commit": "58baf76fd2f9e2fe2ca83ea120d56084edb8871e" },
 | 
					 | 
				
			||||||
  "plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" },
 | 
					 | 
				
			||||||
  "telescope.nvim": { "branch": "master", "commit": "814f102cd1da3dc78c7d2f20f2ef3ed3cdf0e6e4" },
 | 
					 | 
				
			||||||
  "ui": { "branch": "v3.0", "commit": "57d403c219353b1f8e4cd635d058fbfcd9d647ea" },
 | 
					 | 
				
			||||||
  "volt": { "branch": "main", "commit": "21a2351697abfed26d4469b88d3ab124d55a1b3f" },
 | 
					 | 
				
			||||||
  "which-key.nvim": { "branch": "main", "commit": "370ec46f710e058c9c1646273e6b225acf47cbed" }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@@ -1,24 +0,0 @@
 | 
				
			|||||||
-- This file needs to have same structure as nvconfig.lua
 | 
					 | 
				
			||||||
-- https://github.com/NvChad/ui/blob/v3.0/lua/nvconfig.lua
 | 
					 | 
				
			||||||
-- Please read that file to know all available options :(
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
---@type ChadrcConfig
 | 
					 | 
				
			||||||
local M = {}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
M.base46 = {
 | 
					 | 
				
			||||||
    theme = "radium",
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    -- hl_override = {
 | 
					 | 
				
			||||||
    -- 	Comment = { italic = true },
 | 
					 | 
				
			||||||
    -- 	["@comment"] = { italic = true },
 | 
					 | 
				
			||||||
    -- },
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
-- M.nvdash = { load_on_startup = true }
 | 
					 | 
				
			||||||
-- M.ui = {
 | 
					 | 
				
			||||||
--       tabufline = {
 | 
					 | 
				
			||||||
--          lazyload = false
 | 
					 | 
				
			||||||
--      }
 | 
					 | 
				
			||||||
--}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
return M
 | 
					 | 
				
			||||||
@@ -1,15 +0,0 @@
 | 
				
			|||||||
local options = {
 | 
					 | 
				
			||||||
    formatters_by_ft = {
 | 
					 | 
				
			||||||
        lua = { "stylua" },
 | 
					 | 
				
			||||||
        -- css = { "prettier" },
 | 
					 | 
				
			||||||
        -- html = { "prettier" },
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    format_on_save = {
 | 
					 | 
				
			||||||
        -- These options will be passed to conform.format()
 | 
					 | 
				
			||||||
        timeout_ms = 500,
 | 
					 | 
				
			||||||
        lsp_fallback = true,
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
return options
 | 
					 | 
				
			||||||
@@ -1,47 +0,0 @@
 | 
				
			|||||||
return {
 | 
					 | 
				
			||||||
  defaults = { lazy = true },
 | 
					 | 
				
			||||||
  install = { colorscheme = { "nvchad" } },
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  ui = {
 | 
					 | 
				
			||||||
    icons = {
 | 
					 | 
				
			||||||
      ft = "",
 | 
					 | 
				
			||||||
      lazy = " ",
 | 
					 | 
				
			||||||
      loaded = "",
 | 
					 | 
				
			||||||
      not_loaded = "",
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  performance = {
 | 
					 | 
				
			||||||
    rtp = {
 | 
					 | 
				
			||||||
      disabled_plugins = {
 | 
					 | 
				
			||||||
        "2html_plugin",
 | 
					 | 
				
			||||||
        "tohtml",
 | 
					 | 
				
			||||||
        "getscript",
 | 
					 | 
				
			||||||
        "getscriptPlugin",
 | 
					 | 
				
			||||||
        "gzip",
 | 
					 | 
				
			||||||
        "logipat",
 | 
					 | 
				
			||||||
        "netrw",
 | 
					 | 
				
			||||||
        "netrwPlugin",
 | 
					 | 
				
			||||||
        "netrwSettings",
 | 
					 | 
				
			||||||
        "netrwFileHandlers",
 | 
					 | 
				
			||||||
        "matchit",
 | 
					 | 
				
			||||||
        "tar",
 | 
					 | 
				
			||||||
        "tarPlugin",
 | 
					 | 
				
			||||||
        "rrhelper",
 | 
					 | 
				
			||||||
        "spellfile_plugin",
 | 
					 | 
				
			||||||
        "vimball",
 | 
					 | 
				
			||||||
        "vimballPlugin",
 | 
					 | 
				
			||||||
        "zip",
 | 
					 | 
				
			||||||
        "zipPlugin",
 | 
					 | 
				
			||||||
        "tutor",
 | 
					 | 
				
			||||||
        "rplugin",
 | 
					 | 
				
			||||||
        "syntax",
 | 
					 | 
				
			||||||
        "synmenu",
 | 
					 | 
				
			||||||
        "optwin",
 | 
					 | 
				
			||||||
        "compiler",
 | 
					 | 
				
			||||||
        "bugreport",
 | 
					 | 
				
			||||||
        "ftplugin",
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
  },
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@@ -1,21 +0,0 @@
 | 
				
			|||||||
local lint = require("lint")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
lint.linters_by_ft = {
 | 
					 | 
				
			||||||
    lua = { "luacheck" },
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
lint.linters.luacheck.args = {
 | 
					 | 
				
			||||||
    "--globals",
 | 
					 | 
				
			||||||
    "vim",
 | 
					 | 
				
			||||||
    "--formatter",
 | 
					 | 
				
			||||||
    "plain",
 | 
					 | 
				
			||||||
    "--codes",
 | 
					 | 
				
			||||||
    "--ranges",
 | 
					 | 
				
			||||||
    "-",
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
vim.api.nvim_create_autocmd({ "BufEnter", "BufWritePost", "InsertLeave" }, {
 | 
					 | 
				
			||||||
    callback = function()
 | 
					 | 
				
			||||||
        lint.try_lint()
 | 
					 | 
				
			||||||
    end,
 | 
					 | 
				
			||||||
})
 | 
					 | 
				
			||||||
@@ -1,57 +0,0 @@
 | 
				
			|||||||
-- load defaults i.e lua_lsp
 | 
					 | 
				
			||||||
local on_attach = require("nvchad.configs.lspconfig").on_attach
 | 
					 | 
				
			||||||
local on_init = require("nvchad.configs.lspconfig").on_init
 | 
					 | 
				
			||||||
local capabilities = require("nvchad.configs.lspconfig").capabilities
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
local lspconfig = require("lspconfig")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
-- List of all servers configured
 | 
					 | 
				
			||||||
lspconfig.servers = {
 | 
					 | 
				
			||||||
    "lua_ls",
 | 
					 | 
				
			||||||
    "templ",
 | 
					 | 
				
			||||||
    "jedi_language_server",
 | 
					 | 
				
			||||||
    --    "gopls",
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
-- List of servers configured with default config
 | 
					 | 
				
			||||||
local default_servers = {
 | 
					 | 
				
			||||||
    "templ",
 | 
					 | 
				
			||||||
    --    "gopls",
 | 
					 | 
				
			||||||
    "jedi_language_server",
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
-- lsps with default config
 | 
					 | 
				
			||||||
for _, lsp in ipairs(default_servers) do
 | 
					 | 
				
			||||||
    lspconfig[lsp].setup({
 | 
					 | 
				
			||||||
        on_attach = on_attach,
 | 
					 | 
				
			||||||
        on_init = on_init,
 | 
					 | 
				
			||||||
        capabilities = capabilities,
 | 
					 | 
				
			||||||
    })
 | 
					 | 
				
			||||||
end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
-- Lua LSP
 | 
					 | 
				
			||||||
lspconfig.lua_ls.setup({
 | 
					 | 
				
			||||||
    on_attach = on_attach,
 | 
					 | 
				
			||||||
    on_init = on_init,
 | 
					 | 
				
			||||||
    capabilities = capabilities,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    settings = {
 | 
					 | 
				
			||||||
        Lua = {
 | 
					 | 
				
			||||||
            diagnostics = {
 | 
					 | 
				
			||||||
                enable = false, -- Disable all diagnostics from lua_ls
 | 
					 | 
				
			||||||
                -- globals = { "vim" }
 | 
					 | 
				
			||||||
            },
 | 
					 | 
				
			||||||
            workspace = {
 | 
					 | 
				
			||||||
                library = {
 | 
					 | 
				
			||||||
                    vim.fn.expand("$VIMRUNTIME/lua"),
 | 
					 | 
				
			||||||
                    vim.fn.expand("$VIMRUNTIME/lua/vim/lsp"),
 | 
					 | 
				
			||||||
                    vim.fn.stdpath("data") .. "/lazy/ui/nvchad_types",
 | 
					 | 
				
			||||||
                    vim.fn.stdpath("data") .. "/lazy/lazy.nvim/lua/lazy",
 | 
					 | 
				
			||||||
                    --"${3rd}/love2d/library",
 | 
					 | 
				
			||||||
                },
 | 
					 | 
				
			||||||
                maxPreload = 100000,
 | 
					 | 
				
			||||||
                preloadFileSize = 10000,
 | 
					 | 
				
			||||||
            },
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
})
 | 
					 | 
				
			||||||
@@ -1,4 +0,0 @@
 | 
				
			|||||||
require("mason-conform").setup({
 | 
					 | 
				
			||||||
    -- List of formatters to ignore during install
 | 
					 | 
				
			||||||
    ignore_install = {},
 | 
					 | 
				
			||||||
})
 | 
					 | 
				
			||||||
@@ -1,26 +0,0 @@
 | 
				
			|||||||
local lint = package.loaded["lint"]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
local ignore_install = {}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
local function table_contains(table, value)
 | 
					 | 
				
			||||||
    for _, v in ipairs(table) do
 | 
					 | 
				
			||||||
        if v == value then
 | 
					 | 
				
			||||||
            return true
 | 
					 | 
				
			||||||
        end
 | 
					 | 
				
			||||||
    end
 | 
					 | 
				
			||||||
    return false
 | 
					 | 
				
			||||||
end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
local all_linters = {}
 | 
					 | 
				
			||||||
for _, v in pairs(lint.linters_by_ft) do
 | 
					 | 
				
			||||||
    for _, linter in ipairs(v) do
 | 
					 | 
				
			||||||
        if not table_contains(ignore_install, linter) then
 | 
					 | 
				
			||||||
            table.insert(all_linters, linter)
 | 
					 | 
				
			||||||
        end
 | 
					 | 
				
			||||||
    end
 | 
					 | 
				
			||||||
end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
require("mason-nvim-lint").setup({
 | 
					 | 
				
			||||||
    ensure_installed = all_linters,
 | 
					 | 
				
			||||||
    automatic_installation = false,
 | 
					 | 
				
			||||||
})
 | 
					 | 
				
			||||||
@@ -1,24 +0,0 @@
 | 
				
			|||||||
local lspconfig = package.loaded["lspconfig"]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
local ignore_install = {}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
local function table_contains(table, value)
 | 
					 | 
				
			||||||
    for _, v in ipairs(table) do
 | 
					 | 
				
			||||||
        if v == value then
 | 
					 | 
				
			||||||
            return true
 | 
					 | 
				
			||||||
        end
 | 
					 | 
				
			||||||
    end
 | 
					 | 
				
			||||||
    return false
 | 
					 | 
				
			||||||
end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
local all_servers = {}
 | 
					 | 
				
			||||||
for _, s in ipairs(lspconfig.servers) do
 | 
					 | 
				
			||||||
    if not table_contains(ignore_install, s) then
 | 
					 | 
				
			||||||
        table.insert(all_servers, s)
 | 
					 | 
				
			||||||
    end
 | 
					 | 
				
			||||||
end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
require("mason-lspconfig").setup({
 | 
					 | 
				
			||||||
    ensure_installed = all_servers,
 | 
					 | 
				
			||||||
    automatic_installation = false,
 | 
					 | 
				
			||||||
})
 | 
					 | 
				
			||||||
@@ -1,26 +0,0 @@
 | 
				
			|||||||
local options = {
 | 
					 | 
				
			||||||
    ensure_installed = {
 | 
					 | 
				
			||||||
        "bash",
 | 
					 | 
				
			||||||
        "fish",
 | 
					 | 
				
			||||||
        "lua",
 | 
					 | 
				
			||||||
        "luadoc",
 | 
					 | 
				
			||||||
        "markdown",
 | 
					 | 
				
			||||||
        "printf",
 | 
					 | 
				
			||||||
        "toml",
 | 
					 | 
				
			||||||
        "vim",
 | 
					 | 
				
			||||||
        "vimdoc",
 | 
					 | 
				
			||||||
        "yaml",
 | 
					 | 
				
			||||||
        -- Languages
 | 
					 | 
				
			||||||
        "python",
 | 
					 | 
				
			||||||
        "templ",
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    highlight = {
 | 
					 | 
				
			||||||
        enable = true,
 | 
					 | 
				
			||||||
        use_languagetree = true,
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    indent = { enable = true },
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
require("nvim-treesitter.configs").setup(options)
 | 
					 | 
				
			||||||
@@ -1,10 +0,0 @@
 | 
				
			|||||||
require "nvchad.mappings"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
-- add yours here
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
local map = vim.keymap.set
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
map("n", ";", ":", { desc = "CMD enter command mode" })
 | 
					 | 
				
			||||||
map("i", "jk", "<ESC>")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
-- map({ "n", "i", "v" }, "<C-s>", "<cmd> w <cr>")
 | 
					 | 
				
			||||||
@@ -1,7 +0,0 @@
 | 
				
			|||||||
require("nvchad.options")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
-- add yours here!
 | 
					 | 
				
			||||||
local o = vim.o
 | 
					 | 
				
			||||||
o.shiftwidth = 4
 | 
					 | 
				
			||||||
o.tabstop = 4
 | 
					 | 
				
			||||||
o.softtabstop = 4
 | 
					 | 
				
			||||||
@@ -1,70 +0,0 @@
 | 
				
			|||||||
return {
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        "nvim-treesitter/nvim-treesitter",
 | 
					 | 
				
			||||||
        event = { "BufReadPre", "BufNewFile" },
 | 
					 | 
				
			||||||
        config = function()
 | 
					 | 
				
			||||||
            require("configs.treesitter")
 | 
					 | 
				
			||||||
        end,
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        "mfussenegger/nvim-lint",
 | 
					 | 
				
			||||||
        event = { "BufReadPre", "BufNewFile" },
 | 
					 | 
				
			||||||
        config = function()
 | 
					 | 
				
			||||||
            require("configs.lint")
 | 
					 | 
				
			||||||
        end,
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    -- {
 | 
					 | 
				
			||||||
    --     "rshkarin/mason-nvim-lint",
 | 
					 | 
				
			||||||
    --     event = "VeryLazy",
 | 
					 | 
				
			||||||
    --     config = function()
 | 
					 | 
				
			||||||
    --         require("config.mason-lint")
 | 
					 | 
				
			||||||
    --     end,
 | 
					 | 
				
			||||||
    -- },
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        "stevearc/conform.nvim",
 | 
					 | 
				
			||||||
        event = "BufWritePre", -- uncomment for format on save
 | 
					 | 
				
			||||||
        opts = require("configs.conform"),
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        "zapling/mason-conform.nvim",
 | 
					 | 
				
			||||||
        event = "VeryLazy",
 | 
					 | 
				
			||||||
        dependencies = { "conform.nvim" },
 | 
					 | 
				
			||||||
        config = function()
 | 
					 | 
				
			||||||
            require("configs.mason-conform")
 | 
					 | 
				
			||||||
        end,
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        "neovim/nvim-lspconfig",
 | 
					 | 
				
			||||||
        event = { "BufReadPre", "BufNewFile" },
 | 
					 | 
				
			||||||
        config = function()
 | 
					 | 
				
			||||||
            require("nvchad.configs.lspconfig").defaults()
 | 
					 | 
				
			||||||
            require("configs.lspconfig")
 | 
					 | 
				
			||||||
        end,
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        "williamboman/mason-lspconfig.nvim",
 | 
					 | 
				
			||||||
        event = "VeryLazy",
 | 
					 | 
				
			||||||
        dependencies = { "nvim-lspconfig" },
 | 
					 | 
				
			||||||
        config = function()
 | 
					 | 
				
			||||||
            require("configs.mason-lspconfig")
 | 
					 | 
				
			||||||
        end,
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        "salkin-mada/openscad.nvim",
 | 
					 | 
				
			||||||
        config = function()
 | 
					 | 
				
			||||||
            vim.g.openscad_load_snippets = true
 | 
					 | 
				
			||||||
            vim.g.openscad_default_mappings = true
 | 
					 | 
				
			||||||
            vim.g.openscad_auto_open = true
 | 
					 | 
				
			||||||
            require("openscad")
 | 
					 | 
				
			||||||
        end,
 | 
					 | 
				
			||||||
        dependencies = { "L3MON4D3/LuaSnip", "junegunn/fzf.vim" },
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@@ -1,17 +1,72 @@
 | 
				
			|||||||
{ pkgs, ... }: {
 | 
					{ pkgs, ... }:
 | 
				
			||||||
    programs.neovim = {
 | 
					{
 | 
				
			||||||
        enable = true;
 | 
					  programs.neovim = {
 | 
				
			||||||
        viAlias = true;
 | 
					    enable = true;
 | 
				
			||||||
        vimAlias = true;
 | 
					    viAlias = true;
 | 
				
			||||||
        defaultEditor = true;
 | 
					    vimAlias = true;
 | 
				
			||||||
        /*plugins = with pkgs.vimPlugins; [
 | 
					    defaultEditor = true;
 | 
				
			||||||
            nvim-tree-lua
 | 
					    #extraPackages = with pkgs; [ ];
 | 
				
			||||||
            nvim-treesitter.withAllGrammars
 | 
					 | 
				
			||||||
        ];*/
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    home.file.".config/nvim" = {
 | 
					    plugins = with pkgs.vimPlugins; [
 | 
				
			||||||
	source = ./configs;
 | 
					      nvim-treesitter
 | 
				
			||||||
	recursive = true;
 | 
					      nvim-lint
 | 
				
			||||||
    };
 | 
					      catppuccin-nvim
 | 
				
			||||||
 | 
					      mason-nvim
 | 
				
			||||||
 | 
					      mason-lspconfig-nvim
 | 
				
			||||||
 | 
					      nvim-lspconfig
 | 
				
			||||||
 | 
					      nvim-cmp
 | 
				
			||||||
 | 
					      cmp-nvim-lsp
 | 
				
			||||||
 | 
					      cmp-buffer
 | 
				
			||||||
 | 
					      cmp-path
 | 
				
			||||||
 | 
					      cmp-cmdline
 | 
				
			||||||
 | 
					      luasnip
 | 
				
			||||||
 | 
					      lualine-nvim
 | 
				
			||||||
 | 
					      yazi-nvim
 | 
				
			||||||
 | 
					      alpha-nvim
 | 
				
			||||||
 | 
					      cheatsheet-nvim
 | 
				
			||||||
 | 
					      toggleterm-nvim
 | 
				
			||||||
 | 
					      avante-nvim # AI Stuff
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      # Add conform.nvim as a custom plugin
 | 
				
			||||||
 | 
					      (pkgs.vimUtils.buildVimPlugin {
 | 
				
			||||||
 | 
					        name = "conform-nvim";
 | 
				
			||||||
 | 
					        src = pkgs.fetchFromGitHub {
 | 
				
			||||||
 | 
					          owner = "stevearc";
 | 
				
			||||||
 | 
					          repo = "conform.nvim";
 | 
				
			||||||
 | 
					          rev = "stable";
 | 
				
			||||||
 | 
					          sha256 = "sha256-pUF9F5QoDzCZuVRcJEF91M8Qjkh/xosMkf9tRavkmJs=";
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      # Add telescope.vim as a custom plugin
 | 
				
			||||||
 | 
					      (pkgs.vimUtils.buildVimPlugin {
 | 
				
			||||||
 | 
					        name = "telescope-nvim";
 | 
				
			||||||
 | 
					        src = pkgs.fetchFromGitHub {
 | 
				
			||||||
 | 
					          owner = "nvim-telescope";
 | 
				
			||||||
 | 
					          repo = "telescope.nvim";
 | 
				
			||||||
 | 
					          rev = "0.1.8";
 | 
				
			||||||
 | 
					          sha256 = "sha256-e1ulhc4IIvUgpjKQrSqPY4WpXuez6wlxL6Min9U0o5Q=";
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					      })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    extraLuaConfig = builtins.readFile (./. + "/config.lua");
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  home.packages = with pkgs; [
 | 
				
			||||||
 | 
					    nixfmt-rfc-style
 | 
				
			||||||
 | 
					    stylua
 | 
				
			||||||
 | 
					    black
 | 
				
			||||||
 | 
					    nodePackages.prettier
 | 
				
			||||||
 | 
					    rustfmt
 | 
				
			||||||
 | 
					    nodejs
 | 
				
			||||||
 | 
					    prettierd
 | 
				
			||||||
 | 
					    stylelint-lsp
 | 
				
			||||||
 | 
					    # Mason Binarys
 | 
				
			||||||
 | 
					    lua-language-server
 | 
				
			||||||
 | 
					    nil
 | 
				
			||||||
 | 
					    rust-analyzer
 | 
				
			||||||
 | 
					    python3Packages.python-lsp-server
 | 
				
			||||||
 | 
					  ];
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
{ pkgs, ... }:
 | 
					{ pkgs, ... }:
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    home.packages = with pkgs; [
 | 
					  home.packages = with pkgs; [
 | 
				
			||||||
        airshipper
 | 
					    airshipper
 | 
				
			||||||
    ];
 | 
					  ];
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,8 +2,9 @@
 | 
				
			|||||||
  pkgs,
 | 
					  pkgs,
 | 
				
			||||||
  config,
 | 
					  config,
 | 
				
			||||||
  ...
 | 
					  ...
 | 
				
			||||||
}: {
 | 
					}:
 | 
				
			||||||
    home.packages = with pkgs; [
 | 
					{
 | 
				
			||||||
        itch
 | 
					  home.packages = with pkgs; [
 | 
				
			||||||
    ];
 | 
					    itch
 | 
				
			||||||
 | 
					  ];
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,8 +2,9 @@
 | 
				
			|||||||
  pkgs,
 | 
					  pkgs,
 | 
				
			||||||
  config,
 | 
					  config,
 | 
				
			||||||
  ...
 | 
					  ...
 | 
				
			||||||
}: {
 | 
					}:
 | 
				
			||||||
    home.packages = with pkgs; [
 | 
					{
 | 
				
			||||||
        lutris
 | 
					  home.packages = with pkgs; [
 | 
				
			||||||
    ];
 | 
					    lutris
 | 
				
			||||||
 | 
					  ];
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,12 +2,13 @@
 | 
				
			|||||||
  pkgs,
 | 
					  pkgs,
 | 
				
			||||||
  config,
 | 
					  config,
 | 
				
			||||||
  ...
 | 
					  ...
 | 
				
			||||||
}: {
 | 
					}:
 | 
				
			||||||
    home.packages = with pkgs; [
 | 
					{
 | 
				
			||||||
        xonotic
 | 
					  home.packages = with pkgs; [
 | 
				
			||||||
#    armagetron
 | 
					    xonotic
 | 
				
			||||||
#        freeciv
 | 
					    #    armagetron
 | 
				
			||||||
#        mindustry
 | 
					    #        freeciv
 | 
				
			||||||
#        openra
 | 
					    #        mindustry
 | 
				
			||||||
    ];
 | 
					    #        openra
 | 
				
			||||||
 | 
					  ];
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,14 +2,17 @@
 | 
				
			|||||||
  pkgs,
 | 
					  pkgs,
 | 
				
			||||||
  config,
 | 
					  config,
 | 
				
			||||||
  ...
 | 
					  ...
 | 
				
			||||||
}: {
 | 
					}:
 | 
				
			||||||
    /*home.packages = with pkgs; [
 | 
					{
 | 
				
			||||||
 | 
					  /*
 | 
				
			||||||
 | 
					    home.packages = with pkgs; [
 | 
				
			||||||
        steam
 | 
					        steam
 | 
				
			||||||
    ];*/
 | 
					    ];
 | 
				
			||||||
    programs.steam = {
 | 
					  */
 | 
				
			||||||
        enable = true;
 | 
					  programs.steam = {
 | 
				
			||||||
        remotePlay.openFirewall = true;
 | 
					    enable = true;
 | 
				
			||||||
        dedicatedServer.openFirewall = true;
 | 
					    remotePlay.openFirewall = true;
 | 
				
			||||||
        localNetworkGameTransfers.openFirewall = true;
 | 
					    dedicatedServer.openFirewall = true;
 | 
				
			||||||
    };
 | 
					    localNetworkGameTransfers.openFirewall = true;
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,7 +1,7 @@
 | 
				
			|||||||
{ pkgs, ... }:
 | 
					{ pkgs, ... }:
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	home.packages = with pkgs; [
 | 
					  home.packages = with pkgs; [
 | 
				
			||||||
		audacity
 | 
					    audacity
 | 
				
			||||||
		yt-dlp
 | 
					    yt-dlp
 | 
				
			||||||
	];
 | 
					  ];
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,14 +4,14 @@
 | 
				
			|||||||
  ...
 | 
					  ...
 | 
				
			||||||
}:
 | 
					}:
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    home.packages = with pkgs; [
 | 
					  home.packages = with pkgs; [
 | 
				
			||||||
        # audio control
 | 
					    # audio control
 | 
				
			||||||
        pavucontrol
 | 
					    pavucontrol
 | 
				
			||||||
        playerctl
 | 
					    playerctl
 | 
				
			||||||
        pulsemixer
 | 
					    pulsemixer
 | 
				
			||||||
    ]; 
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    services = {
 | 
					  services = {
 | 
				
			||||||
        playerctld.enable = true;
 | 
					    playerctld.enable = true;
 | 
				
			||||||
    };
 | 
					  };
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,9 +4,9 @@
 | 
				
			|||||||
  ...
 | 
					  ...
 | 
				
			||||||
}:
 | 
					}:
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    home.packages = with pkgs; [
 | 
					  home.packages = with pkgs; [
 | 
				
			||||||
        # images
 | 
					    # images
 | 
				
			||||||
        imv
 | 
					    imv
 | 
				
			||||||
    ];
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -5,10 +5,10 @@
 | 
				
			|||||||
}:
 | 
					}:
 | 
				
			||||||
# media - control and enjoy audio/video
 | 
					# media - control and enjoy audio/video
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    imports = [
 | 
					  imports = [
 | 
				
			||||||
        ./audio.nix
 | 
					    ./audio.nix
 | 
				
			||||||
        ./image.nix
 | 
					    ./image.nix
 | 
				
			||||||
        ./webcam.nix
 | 
					    ./webcam.nix
 | 
				
			||||||
    ];
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,14 +1,14 @@
 | 
				
			|||||||
{ pkgs, ... }:
 | 
					{ pkgs, ... }:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    programs.obs-studio = {
 | 
					  programs.obs-studio = {
 | 
				
			||||||
        enable = true;
 | 
					    enable = true;
 | 
				
			||||||
        #enableVirtualCamera = true;
 | 
					    #enableVirtualCamera = true;
 | 
				
			||||||
        plugins = with pkgs.obs-studio-plugins; [
 | 
					    plugins = with pkgs.obs-studio-plugins; [
 | 
				
			||||||
            wlrobs
 | 
					      wlrobs
 | 
				
			||||||
            obs-vkcapture
 | 
					      obs-vkcapture
 | 
				
			||||||
            obs-backgroundremoval
 | 
					      obs-backgroundremoval
 | 
				
			||||||
            obs-pipewire-audio-capture
 | 
					      obs-pipewire-audio-capture
 | 
				
			||||||
        ];
 | 
					    ];
 | 
				
			||||||
    };
 | 
					  };
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,15 +1,39 @@
 | 
				
			|||||||
{ pkgs, inputs } :
 | 
					{ pkgs, inputs, ... }:
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    imports = [
 | 
					  imports = [
 | 
				
			||||||
        inputs.spicetify-nix.homeManagerModules.default
 | 
					    inputs.spicetify-nix.homeManagerModules.default
 | 
				
			||||||
    ];
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    programs.spicetify = 
 | 
					  programs.spicetify =
 | 
				
			||||||
    let 
 | 
					    let
 | 
				
			||||||
        spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.system};
 | 
					      spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.system};
 | 
				
			||||||
    in 
 | 
					    in
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        enable = true;
 | 
					      enable = true;
 | 
				
			||||||
        theme = spicePkgs.themes.catppuccin;
 | 
					      spotifyPackage = pkgs.spotify;
 | 
				
			||||||
    }
 | 
					      theme = spicePkgs.themes.catppuccin;
 | 
				
			||||||
 | 
					      colorScheme = "mocha";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      enabledExtensions = with spicePkgs.extensions; [
 | 
				
			||||||
 | 
					        bookmark
 | 
				
			||||||
 | 
					        fullAppDisplay
 | 
				
			||||||
 | 
					        keyboardShortcut
 | 
				
			||||||
 | 
					        popupLyrics
 | 
				
			||||||
 | 
					        shuffle
 | 
				
			||||||
 | 
					        autoVolume
 | 
				
			||||||
 | 
					        betterGenres
 | 
				
			||||||
 | 
					        adblock
 | 
				
			||||||
 | 
					        wikify
 | 
				
			||||||
 | 
					        songStats
 | 
				
			||||||
 | 
					      ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      enabledCustomApps = with spicePkgs.apps; [
 | 
				
			||||||
 | 
					        lyricsPlus
 | 
				
			||||||
 | 
					        newReleases
 | 
				
			||||||
 | 
					        marketplace
 | 
				
			||||||
 | 
					      ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      #enabledSnippets = with spicePkgs.snippets; [ ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,14 +1,14 @@
 | 
				
			|||||||
{ pkgs, ... }:
 | 
					{ pkgs, ... }:
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    home.packages = with pkgs; [
 | 
					  home.packages = with pkgs; [
 | 
				
			||||||
        ffmpeg_6-full
 | 
					    ffmpeg_6-full
 | 
				
			||||||
        gphoto2
 | 
					    gphoto2
 | 
				
			||||||
        v4l-utils
 | 
					    v4l-utils
 | 
				
			||||||
    ];
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    programs.mpv = {
 | 
					  programs.mpv = {
 | 
				
			||||||
        enable = true;
 | 
					    enable = true;
 | 
				
			||||||
        defaultProfiles = ["gpu-hq"];
 | 
					    defaultProfiles = [ "gpu-hq" ];
 | 
				
			||||||
        scripts = [pkgs.mpvScripts.mpris];
 | 
					    scripts = [ pkgs.mpvScripts.mpris ];
 | 
				
			||||||
    };
 | 
					  };
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,4 +1,4 @@
 | 
				
			|||||||
{ pkgs, ... }:
 | 
					{ pkgs, ... }:
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    home.programs.geary.enable = true;
 | 
					  home.programs.geary.enable = true;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,13 +1,13 @@
 | 
				
			|||||||
{ pkgs, ... }:
 | 
					{ pkgs, ... }:
 | 
				
			||||||
let 
 | 
					let
 | 
				
			||||||
	logseq-patch = pkgs.logseq.override {
 | 
					  logseq-patch = pkgs.logseq.override {
 | 
				
			||||||
		electron_27 = pkgs.electron_34;
 | 
					    electron_27 = pkgs.electron_34;
 | 
				
			||||||
	};
 | 
					  };
 | 
				
			||||||
in
 | 
					in
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	home.packages = with pkgs; [
 | 
					  home.packages = with pkgs; [
 | 
				
			||||||
		logseq-patch
 | 
					    logseq-patch
 | 
				
			||||||
		logseq
 | 
					    logseq
 | 
				
			||||||
	];
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,4 +1,4 @@
 | 
				
			|||||||
{ pkgs, ... }:
 | 
					{ pkgs, ... }:
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    home.packages = with pkgs; [ notesnook ];
 | 
					  home.packages = with pkgs; [ notesnook ];
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,4 +1,4 @@
 | 
				
			|||||||
{ pkgs, ... }:
 | 
					{ pkgs, ... }:
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	home.packages = [ pkgs.libsForQt5.okular ];
 | 
					  home.packages = [ pkgs.libsForQt5.okular ];
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,8 +1,8 @@
 | 
				
			|||||||
{ pkgs, ... }:
 | 
					{ pkgs, ... }:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	# Install OnlyOffice Desktop Editors
 | 
					  # Install OnlyOffice Desktop Editors
 | 
				
			||||||
	home.packages = with pkgs; [
 | 
					  home.packages = with pkgs; [
 | 
				
			||||||
		onlyoffice-desktopeditors
 | 
					    onlyoffice-desktopeditors
 | 
				
			||||||
	];
 | 
					  ];
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,4 +1,4 @@
 | 
				
			|||||||
{ pkgs, ... }:
 | 
					{ pkgs, ... }:
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	home.packages = [ pkgs.trilium-desktop ];
 | 
					  home.packages = [ pkgs.trilium-desktop ];
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										50
									
								
								home/programs/social/nixcord.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								home/programs/social/nixcord.nix
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,50 @@
 | 
				
			|||||||
 | 
					{ pkgs, ... }:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# home.nix
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  # ...
 | 
				
			||||||
 | 
					  programs.nixcord = {
 | 
				
			||||||
 | 
					    enable = true; # Enable Nixcord (It also installs Discord)
 | 
				
			||||||
 | 
					    vesktop.enable = true; # Vesktop
 | 
				
			||||||
 | 
					    dorion.enable = true; # Dorion
 | 
				
			||||||
 | 
					    quickCss = "some CSS"; # quickCSS file
 | 
				
			||||||
 | 
					    config = {
 | 
				
			||||||
 | 
					      useQuickCss = true; # use out quickCSS
 | 
				
			||||||
 | 
					      themeLinks = [
 | 
				
			||||||
 | 
					        # or use an online theme
 | 
				
			||||||
 | 
					        "https://raw.githubusercontent.com/link/to/some/theme.css"
 | 
				
			||||||
 | 
					      ];
 | 
				
			||||||
 | 
					      frameless = true; # Set some Vencord options
 | 
				
			||||||
 | 
					      plugins = {
 | 
				
			||||||
 | 
					        hideAttachments.enable = true; # Enable a Vencord plugin
 | 
				
			||||||
 | 
					        ignoreActivities = {
 | 
				
			||||||
 | 
					          # Enable a plugin and set some options
 | 
				
			||||||
 | 
					          enable = true;
 | 
				
			||||||
 | 
					          ignorePlaying = true;
 | 
				
			||||||
 | 
					          ignoreWatching = true;
 | 
				
			||||||
 | 
					          ignoredActivities = [ "someActivity" ];
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					    dorion = {
 | 
				
			||||||
 | 
					      theme = "dark";
 | 
				
			||||||
 | 
					      zoom = "1.1";
 | 
				
			||||||
 | 
					      blur = "acrylic"; # "none", "blur", or "acrylic"
 | 
				
			||||||
 | 
					      sysTray = true;
 | 
				
			||||||
 | 
					      openOnStartup = true;
 | 
				
			||||||
 | 
					      autoClearCache = true;
 | 
				
			||||||
 | 
					      disableHardwareAccel = false;
 | 
				
			||||||
 | 
					      rpcServer = true;
 | 
				
			||||||
 | 
					      rpcProcessScanner = true;
 | 
				
			||||||
 | 
					      pushToTalk = true;
 | 
				
			||||||
 | 
					      pushToTalkKeys = [ "RControl" ];
 | 
				
			||||||
 | 
					      desktopNotifications = true;
 | 
				
			||||||
 | 
					      unreadBadge = true;
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					    extraConfig = {
 | 
				
			||||||
 | 
					      # Some extra JSON config here
 | 
				
			||||||
 | 
					      # ...
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					  # ...
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -1,8 +1,9 @@
 | 
				
			|||||||
{ pkgs, ... }:
 | 
					{ pkgs, ... }:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  # Install Element Desktop
 | 
					  # Install Teamspeak Desktop
 | 
				
			||||||
  home.packages = with pkgs; [
 | 
					  home.packages = with pkgs; [
 | 
				
			||||||
    teamspeak3
 | 
					    teamspeak3
 | 
				
			||||||
 | 
					    #    teamspeak6-client
 | 
				
			||||||
  ];
 | 
					  ];
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3,6 +3,6 @@
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
  # Install Element Desktop
 | 
					  # Install Element Desktop
 | 
				
			||||||
  home.packages = with pkgs; [
 | 
					  home.packages = with pkgs; [
 | 
				
			||||||
	zapzap 
 | 
					    zapzap
 | 
				
			||||||
  ];
 | 
					  ];
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,12 +2,13 @@
 | 
				
			|||||||
  pkgs,
 | 
					  pkgs,
 | 
				
			||||||
  config,
 | 
					  config,
 | 
				
			||||||
  ...
 | 
					  ...
 | 
				
			||||||
}: {
 | 
					}:
 | 
				
			||||||
    programs.chromium = {
 | 
					{
 | 
				
			||||||
        enable = true;
 | 
					  programs.chromium = {
 | 
				
			||||||
        commandLineArgs = ["--enable-features=TouchpadOverscrollHistoryNavigation"];
 | 
					    enable = true;
 | 
				
			||||||
        extensions = [
 | 
					    commandLineArgs = [ "--enable-features=TouchpadOverscrollHistoryNavigation" ];
 | 
				
			||||||
            # {id = "";}  // extension id, query from chrome web store
 | 
					    extensions = [
 | 
				
			||||||
        ];
 | 
					      # {id = "";}  // extension id, query from chrome web store
 | 
				
			||||||
    };
 | 
					    ];
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3,9 +3,10 @@
 | 
				
			|||||||
  config,
 | 
					  config,
 | 
				
			||||||
  username,
 | 
					  username,
 | 
				
			||||||
  ...
 | 
					  ...
 | 
				
			||||||
}: {
 | 
					}:
 | 
				
			||||||
    programs.firefox = {
 | 
					{
 | 
				
			||||||
        enable = true;
 | 
					  programs.firefox = {
 | 
				
			||||||
        profiles.${username} = {};
 | 
					    enable = false;
 | 
				
			||||||
    };
 | 
					    profiles.${username} = { };
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3,9 +3,11 @@
 | 
				
			|||||||
  config,
 | 
					  config,
 | 
				
			||||||
  username,
 | 
					  username,
 | 
				
			||||||
  ...
 | 
					  ...
 | 
				
			||||||
}: {
 | 
					}:
 | 
				
			||||||
    programs.floorp = {
 | 
					{
 | 
				
			||||||
        enable = true;
 | 
					  programs.floorp = {
 | 
				
			||||||
        profiles.${username} = {};
 | 
					    enable = true;
 | 
				
			||||||
    };
 | 
					    profiles.${username} = { };
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,9 +1,9 @@
 | 
				
			|||||||
{ pkgs, ... }:
 | 
					{ pkgs, ... }:
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    imports = [
 | 
					  imports = [
 | 
				
			||||||
        ./qt.nix
 | 
					    ./qt.nix
 | 
				
			||||||
#        ./gtk.nix
 | 
					    #        ./gtk.nix
 | 
				
			||||||
    ];
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,22 +1,22 @@
 | 
				
			|||||||
{ pkgs, ... }:
 | 
					{ pkgs, ... }:
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    gtk = {
 | 
					  gtk = {
 | 
				
			||||||
        enable = true;
 | 
					    enable = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        theme = {
 | 
					    theme = {
 | 
				
			||||||
            package = pkgs.flat-remix-gtk;
 | 
					      package = pkgs.flat-remix-gtk;
 | 
				
			||||||
            name = "Flat-Remix-GTK-Grey-Darkest";
 | 
					      name = "Flat-Remix-GTK-Grey-Darkest";
 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        iconTheme = {
 | 
					 | 
				
			||||||
            package = pkgs.adwaita-icon-theme;
 | 
					 | 
				
			||||||
            name = "Adwaita";
 | 
					 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        font = {
 | 
					 | 
				
			||||||
            name = "Sans";
 | 
					 | 
				
			||||||
            size = 12;
 | 
					 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    iconTheme = {
 | 
				
			||||||
 | 
					      package = pkgs.adwaita-icon-theme;
 | 
				
			||||||
 | 
					      name = "Adwaita";
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    font = {
 | 
				
			||||||
 | 
					      name = "Sans";
 | 
				
			||||||
 | 
					      size = 12;
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,19 +1,19 @@
 | 
				
			|||||||
{ pkgs, ... }:
 | 
					{ pkgs, ... }:
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    
 | 
					 | 
				
			||||||
    home.packages = with pkgs.libsForQt5; [
 | 
					 | 
				
			||||||
        qt5ct
 | 
					 | 
				
			||||||
        qtstyleplugin-kvantum
 | 
					 | 
				
			||||||
    ];
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    qt = {
 | 
					  home.packages = with pkgs.libsForQt5; [
 | 
				
			||||||
        enable = true;
 | 
					    qt5ct
 | 
				
			||||||
        platformTheme.name = "qtct";
 | 
					    qtstyleplugin-kvantum
 | 
				
			||||||
        style.name = "kvantum";
 | 
					  ];
 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    xdg.configFile = {
 | 
					  qt = {
 | 
				
			||||||
        "Kvantum/ArcDark".source = "${pkgs.arc-kde-theme}/share/Kvantum/ArcDark";
 | 
					    enable = true;
 | 
				
			||||||
        "Kvantum/kvantum.kvconfig".text = "[General]\ntheme=ArcDark";
 | 
					    platformTheme.name = "qtct";
 | 
				
			||||||
    };
 | 
					    style.name = "kvantum";
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  xdg.configFile = {
 | 
				
			||||||
 | 
					    "Kvantum/ArcDark".source = "${pkgs.arc-kde-theme}/share/Kvantum/ArcDark";
 | 
				
			||||||
 | 
					    "Kvantum/kvantum.kvconfig".text = "[General]\ntheme=ArcDark";
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										62
									
								
								home/xdg.nix
									
									
									
									
									
								
							
							
						
						
									
										62
									
								
								home/xdg.nix
									
									
									
									
									
								
							@@ -1,5 +1,6 @@
 | 
				
			|||||||
{pkgs, config, ...}: let
 | 
					{ pkgs, config, ... }:
 | 
				
			||||||
  browser = ["firefox.desktop"];
 | 
					let
 | 
				
			||||||
 | 
					  browser = [ "floorp.desktop" ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # XDG MIME types
 | 
					  # XDG MIME types
 | 
				
			||||||
  associations = {
 | 
					  associations = {
 | 
				
			||||||
@@ -11,22 +12,23 @@
 | 
				
			|||||||
    "application/xhtml+xml" = browser;
 | 
					    "application/xhtml+xml" = browser;
 | 
				
			||||||
    "text/html" = browser;
 | 
					    "text/html" = browser;
 | 
				
			||||||
    "x-scheme-handler/about" = browser;
 | 
					    "x-scheme-handler/about" = browser;
 | 
				
			||||||
    "x-scheme-handler/chrome" = ["chromium-browser.desktop"];
 | 
					    "x-scheme-handler/chrome" = [ "chromium-browser.desktop" ];
 | 
				
			||||||
    "x-scheme-handler/ftp" = browser;
 | 
					    "x-scheme-handler/ftp" = browser;
 | 
				
			||||||
    "x-scheme-handler/http" = browser;
 | 
					    "x-scheme-handler/http" = browser;
 | 
				
			||||||
    "x-scheme-handler/https" = browser;
 | 
					    "x-scheme-handler/https" = browser;
 | 
				
			||||||
    "x-scheme-handler/unknown" = browser;
 | 
					    "x-scheme-handler/unknown" = browser;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    "audio/*" = ["mpv.desktop"];
 | 
					    "audio/*" = [ "mpv.desktop" ];
 | 
				
			||||||
    "video/*" = ["mpv.dekstop"];
 | 
					    "video/*" = [ "mpv.dekstop" ];
 | 
				
			||||||
    "image/*" = ["imv.desktop"];
 | 
					    "image/*" = [ "kitty-icat.desktop" ];
 | 
				
			||||||
    "application/json" = browser;
 | 
					    "application/json" = browser;
 | 
				
			||||||
    "application/pdf" = ["org.pwmt.zathura.desktop.desktop"];
 | 
					    "application/pdf" = [ "okular.desktop" ];
 | 
				
			||||||
    "x-scheme-handler/discord" = ["discordcanary.desktop"];
 | 
					    "x-scheme-handler/discord" = [ "discordcanary.desktop" ];
 | 
				
			||||||
    "x-scheme-handler/spotify" = ["spotify.desktop"];
 | 
					    "x-scheme-handler/spotify" = [ "spotify.desktop" ];
 | 
				
			||||||
    "x-scheme-handler/tg" = ["telegramdesktop.desktop"];
 | 
					    "x-scheme-handler/tg" = [ "telegramdesktop.desktop" ];
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
in {
 | 
					in
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
  xdg = {
 | 
					  xdg = {
 | 
				
			||||||
    enable = true;
 | 
					    enable = true;
 | 
				
			||||||
    cacheHome = config.home.homeDirectory + "/.local/cache";
 | 
					    cacheHome = config.home.homeDirectory + "/.local/cache";
 | 
				
			||||||
@@ -36,6 +38,20 @@ in {
 | 
				
			|||||||
      defaultApplications = associations;
 | 
					      defaultApplications = associations;
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    desktopEntries = {
 | 
				
			||||||
 | 
					      kitty-icat = {
 | 
				
			||||||
 | 
					        name = "Kitty Icat";
 | 
				
			||||||
 | 
					        exec = "kitty +kitten icat %F";
 | 
				
			||||||
 | 
					        terminal = true;
 | 
				
			||||||
 | 
					        type = "Application";
 | 
				
			||||||
 | 
					        mimeType = [ "image/*" ];
 | 
				
			||||||
 | 
					        categories = [
 | 
				
			||||||
 | 
					          "Viewer"
 | 
				
			||||||
 | 
					          "Graphics"
 | 
				
			||||||
 | 
					        ];
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    userDirs = {
 | 
					    userDirs = {
 | 
				
			||||||
      enable = true;
 | 
					      enable = true;
 | 
				
			||||||
      createDirectories = true;
 | 
					      createDirectories = true;
 | 
				
			||||||
@@ -45,16 +61,20 @@ in {
 | 
				
			|||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    portal = {
 | 
					    portal = {
 | 
				
			||||||
	enable = true;
 | 
					      enable = true;
 | 
				
			||||||
	xdgOpenUsePortal = true;
 | 
					      xdgOpenUsePortal = true;
 | 
				
			||||||
	config = {
 | 
					      config = {
 | 
				
			||||||
		common.default = [ "gtk" ];
 | 
					        common.default = [ "gtk" ];
 | 
				
			||||||
		hyprland.default = [ "gtk" "hyprland" ];
 | 
					        hyprland.default = [
 | 
				
			||||||
	};
 | 
					          "gtk"
 | 
				
			||||||
	extraPortals = [
 | 
					          "hyprland"
 | 
				
			||||||
		pkgs.xdg-desktop-portal-gtk
 | 
					        ];
 | 
				
			||||||
		pkgs.xdg-desktop-portal-hyprland
 | 
					      };
 | 
				
			||||||
	];
 | 
					
 | 
				
			||||||
 | 
					      extraPortals = [
 | 
				
			||||||
 | 
					        pkgs.xdg-desktop-portal-gtk
 | 
				
			||||||
 | 
					        pkgs.xdg-desktop-portal-hyprland
 | 
				
			||||||
 | 
					      ];
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -5,74 +5,72 @@
 | 
				
			|||||||
{ config, pkgs, ... }:
 | 
					{ config, pkgs, ... }:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    imports = [
 | 
					  imports = [
 | 
				
			||||||
        ../../modules/system.nix
 | 
					    ../../modules/system.nix
 | 
				
			||||||
        ../../modules/nix-settings.nix
 | 
					    ../../modules/nix-settings.nix
 | 
				
			||||||
        ../../modules/vpn.nix
 | 
					    ../../modules/vpn.nix
 | 
				
			||||||
        ../../modules/fonts.nix
 | 
					    ../../modules/fonts.nix
 | 
				
			||||||
        ../../modules/firewall.nix
 | 
					    ../../modules/firewall.nix
 | 
				
			||||||
        ../../modules/localisation.nix
 | 
					    ../../modules/localisation.nix
 | 
				
			||||||
        ../../modules/openssh.nix
 | 
					    ../../modules/openssh.nix
 | 
				
			||||||
        ../../modules/pipewire.nix
 | 
					    ../../modules/pipewire.nix
 | 
				
			||||||
        ../../modules/podman.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
 | 
					    ../../modules/file_managers/spacefm.nix
 | 
				
			||||||
        ../../modules/python.nix
 | 
					    ../../modules/python.nix
 | 
				
			||||||
# Include the results of the hardware scan.
 | 
					    # Include the results of the hardware scan.
 | 
				
			||||||
        ./hardware-configuration.nix
 | 
					    ./hardware-configuration.nix
 | 
				
			||||||
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  programs.geary.enable = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  boot.loader = {
 | 
				
			||||||
 | 
					    systemd-boot.enable = true;
 | 
				
			||||||
 | 
					    efi.canTouchEfiVariables = true;
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  networking = {
 | 
				
			||||||
 | 
					    hostName = "nix-hp";
 | 
				
			||||||
 | 
					    #networkmanager.enable = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    wireless = {
 | 
				
			||||||
 | 
					      enable = true;
 | 
				
			||||||
 | 
					      networks = {
 | 
				
			||||||
 | 
					        LANFRED.pskRaw = "36e2b41b51328800a9582be1a05f13f796f943569610ccdb61304803b86ce3da";
 | 
				
			||||||
 | 
					        #free.wifi = {};
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    nameservers = [
 | 
				
			||||||
 | 
					      "1.1.1.1"
 | 
				
			||||||
 | 
					      "1.0.0.1"
 | 
				
			||||||
 | 
					      "8.8.8.8"
 | 
				
			||||||
 | 
					      "8.8.4.4"
 | 
				
			||||||
    ];
 | 
					    ];
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    programs.geary.enable = true;
 | 
					  nixpkgs.config.nvidia.acceptLicense = true;
 | 
				
			||||||
 | 
					  hardware.graphics.enable = true;
 | 
				
			||||||
    boot.loader = {
 | 
					  services.xserver.videoDrivers = [ "nvidia" ];
 | 
				
			||||||
    	systemd-boot.enable = true;
 | 
					  hardware.nvidia = {
 | 
				
			||||||
        efi.canTouchEfiVariables = true;
 | 
					    package = config.boot.kernelPackages.nvidiaPackages.legacy_470;
 | 
				
			||||||
 | 
					    modesetting.enable = true;
 | 
				
			||||||
 | 
					    open = false;
 | 
				
			||||||
 | 
					    powerManagement = {
 | 
				
			||||||
 | 
					      enable = false;
 | 
				
			||||||
 | 
					      finegrained = false;
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					    nvidiaSettings = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    networking = {
 | 
					    prime = {
 | 
				
			||||||
	hostName = "nix-hp";
 | 
					      intelBusId = "PCI:0:2:0";
 | 
				
			||||||
	#networkmanager.enable = true;
 | 
					      nvidiaBusId = "PCI:10:0:0";
 | 
				
			||||||
	
 | 
					      sync.enable = true;
 | 
				
			||||||
	wireless = {
 | 
					 | 
				
			||||||
		enable = true;
 | 
					 | 
				
			||||||
		networks = {
 | 
					 | 
				
			||||||
			LANFRED.pskRaw = "36e2b41b51328800a9582be1a05f13f796f943569610ccdb61304803b86ce3da";
 | 
					 | 
				
			||||||
			#free.wifi = {};
 | 
					 | 
				
			||||||
		};
 | 
					 | 
				
			||||||
	};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	nameservers = [
 | 
					 | 
				
			||||||
		"1.1.1.1"
 | 
					 | 
				
			||||||
		"1.0.0.1"
 | 
					 | 
				
			||||||
		"8.8.8.8"
 | 
					 | 
				
			||||||
		"8.8.4.4"
 | 
					 | 
				
			||||||
	];
 | 
					 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
	
 | 
					  };
 | 
				
			||||||
    nixpkgs.config.nvidia.acceptLicense = true;
 | 
					 | 
				
			||||||
    hardware.graphics.enable = true;
 | 
					 | 
				
			||||||
    services.xserver.videoDrivers = [ "nvidia" ];
 | 
					 | 
				
			||||||
    hardware.nvidia = {
 | 
					 | 
				
			||||||
	package = config.boot.kernelPackages.nvidiaPackages.legacy_470;
 | 
					 | 
				
			||||||
	modesetting.enable = true;
 | 
					 | 
				
			||||||
	open = false;
 | 
					 | 
				
			||||||
	powerManagement = {
 | 
					 | 
				
			||||||
		enable = false;
 | 
					 | 
				
			||||||
		finegrained = false;
 | 
					 | 
				
			||||||
	};
 | 
					 | 
				
			||||||
	nvidiaSettings = true;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	prime = {
 | 
					  system.stateVersion = "25.11"; # Did you read the comment?
 | 
				
			||||||
		intelBusId = "PCI:0:2:0";
 | 
					 | 
				
			||||||
		nvidiaBusId = "PCI:10:0:0";
 | 
					 | 
				
			||||||
		sync.enable = true;
 | 
					 | 
				
			||||||
	};
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    system.stateVersion = "25.11"; # Did you read the comment?
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,28 +1,44 @@
 | 
				
			|||||||
# Do not modify this file!  It was generated by ‘nixos-generate-config’
 | 
					# Do not modify this file!  It was generated by ‘nixos-generate-config’
 | 
				
			||||||
# and may be overwritten by future invocations.  Please make changes
 | 
					# and may be overwritten by future invocations.  Please make changes
 | 
				
			||||||
# to /etc/nixos/configuration.nix instead.
 | 
					# to /etc/nixos/configuration.nix instead.
 | 
				
			||||||
{ config, lib, pkgs, modulesPath, ... }:
 | 
					{
 | 
				
			||||||
 | 
					  config,
 | 
				
			||||||
 | 
					  lib,
 | 
				
			||||||
 | 
					  pkgs,
 | 
				
			||||||
 | 
					  modulesPath,
 | 
				
			||||||
 | 
					  ...
 | 
				
			||||||
 | 
					}:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  imports =
 | 
					  imports = [
 | 
				
			||||||
    [ (modulesPath + "/installer/scan/not-detected.nix")
 | 
					    (modulesPath + "/installer/scan/not-detected.nix")
 | 
				
			||||||
    ];
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  boot.initrd.availableKernelModules = [ "xhci_pci" "ehci_pci" "ahci" "usb_storage" "sd_mod" "sr_mod" ];
 | 
					  boot.initrd.availableKernelModules = [
 | 
				
			||||||
 | 
					    "xhci_pci"
 | 
				
			||||||
 | 
					    "ehci_pci"
 | 
				
			||||||
 | 
					    "ahci"
 | 
				
			||||||
 | 
					    "usb_storage"
 | 
				
			||||||
 | 
					    "sd_mod"
 | 
				
			||||||
 | 
					    "sr_mod"
 | 
				
			||||||
 | 
					  ];
 | 
				
			||||||
  boot.initrd.kernelModules = [ ];
 | 
					  boot.initrd.kernelModules = [ ];
 | 
				
			||||||
  boot.kernelModules = [ "kvm-intel" ];
 | 
					  boot.kernelModules = [ "kvm-intel" ];
 | 
				
			||||||
  boot.extraModulePackages = [ ];
 | 
					  boot.extraModulePackages = [ ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  fileSystems."/" =
 | 
					  fileSystems."/" = {
 | 
				
			||||||
    { device = "/dev/disk/by-label/NIXROOT";
 | 
					    device = "/dev/disk/by-label/NIXROOT";
 | 
				
			||||||
      fsType = "ext4";
 | 
					    fsType = "ext4";
 | 
				
			||||||
    };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  fileSystems."/boot" =
 | 
					  fileSystems."/boot" = {
 | 
				
			||||||
    { device = "/dev/disk/by-label/NIXBOOT";
 | 
					    device = "/dev/disk/by-label/NIXBOOT";
 | 
				
			||||||
      fsType = "vfat";
 | 
					    fsType = "vfat";
 | 
				
			||||||
      options = [ "fmask=0022" "dmask=0022" ];
 | 
					    options = [
 | 
				
			||||||
    };
 | 
					      "fmask=0022"
 | 
				
			||||||
 | 
					      "dmask=0022"
 | 
				
			||||||
 | 
					    ];
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  swapDevices = [ ];
 | 
					  swapDevices = [ ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,13 +2,18 @@
 | 
				
			|||||||
# your system. Help is available in the configuration.nix(5) man page, on
 | 
					# your system. Help is available in the configuration.nix(5) man page, on
 | 
				
			||||||
# https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
 | 
					# https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
{ config, lib, pkgs, ... }:
 | 
					{
 | 
				
			||||||
 | 
					  config,
 | 
				
			||||||
 | 
					  lib,
 | 
				
			||||||
 | 
					  pkgs,
 | 
				
			||||||
 | 
					  ...
 | 
				
			||||||
 | 
					}:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  imports =
 | 
					  imports = [
 | 
				
			||||||
    [ # Include the results of the hardware scan.
 | 
					    # Include the results of the hardware scan.
 | 
				
			||||||
      ./hardware-configuration.nix
 | 
					    ./hardware-configuration.nix
 | 
				
			||||||
    ];
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # Use the systemd-boot EFI boot loader.
 | 
					  # Use the systemd-boot EFI boot loader.
 | 
				
			||||||
  boot.loader.systemd-boot.enable = true;
 | 
					  boot.loader.systemd-boot.enable = true;
 | 
				
			||||||
@@ -17,7 +22,7 @@
 | 
				
			|||||||
  # networking.hostName = "nixos"; # Define your hostname.
 | 
					  # networking.hostName = "nixos"; # Define your hostname.
 | 
				
			||||||
  # Pick only one of the below networking options.
 | 
					  # Pick only one of the below networking options.
 | 
				
			||||||
  # networking.wireless.enable = true;  # Enables wireless support via wpa_supplicant.
 | 
					  # networking.wireless.enable = true;  # Enables wireless support via wpa_supplicant.
 | 
				
			||||||
  networking.networkmanager.enable = true;  # Easiest to use and most distros use this by default.
 | 
					  networking.networkmanager.enable = true; # Easiest to use and most distros use this by default.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # Set your time zone.
 | 
					  # Set your time zone.
 | 
				
			||||||
  time.timeZone = "Europe/Berlin";
 | 
					  time.timeZone = "Europe/Berlin";
 | 
				
			||||||
@@ -37,9 +42,6 @@
 | 
				
			|||||||
  # Enable the X11 windowing system.
 | 
					  # Enable the X11 windowing system.
 | 
				
			||||||
  # services.xserver.enable = true;
 | 
					  # services.xserver.enable = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  # Configure keymap in X11
 | 
					  # Configure keymap in X11
 | 
				
			||||||
  services.xserver.xkb.layout = "de";
 | 
					  services.xserver.xkb.layout = "de";
 | 
				
			||||||
  # services.xserver.xkb.options = "eurosign:e,caps:escape";
 | 
					  # services.xserver.xkb.options = "eurosign:e,caps:escape";
 | 
				
			||||||
@@ -60,17 +62,17 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  # Define a user account. Don't forget to set a password with ‘passwd’.
 | 
					  # Define a user account. Don't forget to set a password with ‘passwd’.
 | 
				
			||||||
  users.users.phil = {
 | 
					  users.users.phil = {
 | 
				
			||||||
     initialPassword = "!P2h3i4lon";
 | 
					    initialPassword = "!P2h3i4lon";
 | 
				
			||||||
     isNormalUser = true;
 | 
					    isNormalUser = true;
 | 
				
			||||||
     extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user.
 | 
					    extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user.
 | 
				
			||||||
     packages = with pkgs; [
 | 
					    packages = with pkgs; [
 | 
				
			||||||
       tree
 | 
					      tree
 | 
				
			||||||
       neovim
 | 
					      neovim
 | 
				
			||||||
       git
 | 
					      git
 | 
				
			||||||
       wget
 | 
					      wget
 | 
				
			||||||
       curl
 | 
					      curl
 | 
				
			||||||
     ];
 | 
					    ];
 | 
				
			||||||
   };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # programs.firefox.enable = true;
 | 
					  # programs.firefox.enable = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -125,4 +127,3 @@
 | 
				
			|||||||
  system.stateVersion = "24.11"; # Did you read the comment?
 | 
					  system.stateVersion = "24.11"; # Did you read the comment?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,31 +2,36 @@
 | 
				
			|||||||
# your system.  Help is available in the configuration.nix(5) man page
 | 
					# your system.  Help is available in the configuration.nix(5) man page
 | 
				
			||||||
# and in the NixOS manual (accessible by running ‘nixos-help’).
 | 
					# and in the NixOS manual (accessible by running ‘nixos-help’).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
{ config, pkgs, lib, ... }:
 | 
					{
 | 
				
			||||||
 | 
					  config,
 | 
				
			||||||
 | 
					  pkgs,
 | 
				
			||||||
 | 
					  lib,
 | 
				
			||||||
 | 
					  ...
 | 
				
			||||||
 | 
					}:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    imports = [
 | 
					  imports = [
 | 
				
			||||||
        ../../modules/system.nix
 | 
					    ../../modules/system.nix
 | 
				
			||||||
        ../../modules/nix-settings.nix
 | 
					    ../../modules/nix-settings.nix
 | 
				
			||||||
        ../../modules/vpn.nix
 | 
					    ../../modules/vpn.nix
 | 
				
			||||||
        ../../modules/fonts.nix
 | 
					    ../../modules/fonts.nix
 | 
				
			||||||
        ../../modules/firewall.nix
 | 
					    ../../modules/firewall.nix
 | 
				
			||||||
        ../../modules/localisation.nix
 | 
					    ../../modules/localisation.nix
 | 
				
			||||||
        ../../modules/openssh.nix
 | 
					    ../../modules/openssh.nix
 | 
				
			||||||
        ../../modules/pipewire.nix
 | 
					    ../../modules/pipewire.nix
 | 
				
			||||||
        #../../modules/podman.nix
 | 
					    #../../modules/podman.nix
 | 
				
			||||||
        ../../modules/docker.nix
 | 
					    ../../modules/docker.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
 | 
					    ../../modules/file_managers/spacefm.nix
 | 
				
			||||||
        ../../modules/appimage.nix
 | 
					    ../../modules/appimage.nix
 | 
				
			||||||
        ../../modules/qemu.nix
 | 
					    ../../modules/qemu.nix
 | 
				
			||||||
        ../../modules/thunderbird.nix
 | 
					    ../../modules/thunderbird.nix
 | 
				
			||||||
        ../../modules/canon_eos_550d.nix
 | 
					    ../../modules/canon_eos_550d.nix
 | 
				
			||||||
# Include the results of the hardware scan.
 | 
					    # Include the results of the hardware scan.
 | 
				
			||||||
        ./hardware-configuration.nix
 | 
					    ./hardware-configuration.nix
 | 
				
			||||||
    ];
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # Bootloader.
 | 
					  # Bootloader.
 | 
				
			||||||
  boot.loader = {
 | 
					  boot.loader = {
 | 
				
			||||||
@@ -35,27 +40,29 @@
 | 
				
			|||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  networking = {
 | 
					  networking = {
 | 
				
			||||||
  	hostName = "nix-desktop";
 | 
					    hostName = "nix-desktop";
 | 
				
			||||||
	networkmanager.enable = true;
 | 
					    networkmanager.enable = true;
 | 
				
			||||||
	#useDHCP = lib.mkForce true;
 | 
					    #useDHCP = lib.mkForce true;
 | 
				
			||||||
	#dhcpcd.enable = true;
 | 
					    #dhcpcd.enable = true;
 | 
				
			||||||
  	interfaces = {
 | 
					    interfaces = {
 | 
				
			||||||
		eno1.ipv4.addresses = [{
 | 
					      eno1.ipv4.addresses = [
 | 
				
			||||||
			address = "192.168.2.40";
 | 
					        {
 | 
				
			||||||
			prefixLength = 24;
 | 
					          address = "192.168.2.40";
 | 
				
			||||||
		}];
 | 
					          prefixLength = 24;
 | 
				
			||||||
	};
 | 
					        }
 | 
				
			||||||
 | 
					      ];
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	defaultGateway = {
 | 
					    defaultGateway = {
 | 
				
			||||||
		address = "192.168.2.1";
 | 
					      address = "192.168.2.1";
 | 
				
			||||||
		interface = "eno1";
 | 
					      interface = "eno1";
 | 
				
			||||||
	};
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	nameservers = [
 | 
					    nameservers = [
 | 
				
			||||||
		"192.168.2.2"
 | 
					      "192.168.2.2"
 | 
				
			||||||
		"1.1.1.1"
 | 
					      "1.1.1.1"
 | 
				
			||||||
		"8.8.8.8"
 | 
					      "8.8.8.8"
 | 
				
			||||||
	];
 | 
					    ];
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  hardware.graphics.enable = true;
 | 
					  hardware.graphics.enable = true;
 | 
				
			||||||
@@ -65,5 +72,3 @@
 | 
				
			|||||||
  environment.systemPackages = [ pkgs.onlyoffice-bin ];
 | 
					  environment.systemPackages = [ pkgs.onlyoffice-bin ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,36 +1,55 @@
 | 
				
			|||||||
# Do not modify this file!  It was generated by ‘nixos-generate-config’
 | 
					# Do not modify this file!  It was generated by ‘nixos-generate-config’
 | 
				
			||||||
# and may be overwritten by future invocations.  Please make changes
 | 
					# and may be overwritten by future invocations.  Please make changes
 | 
				
			||||||
# to /etc/nixos/configuration.nix instead.
 | 
					# to /etc/nixos/configuration.nix instead.
 | 
				
			||||||
{ config, lib, pkgs, modulesPath, ... }:
 | 
					{
 | 
				
			||||||
 | 
					  config,
 | 
				
			||||||
 | 
					  lib,
 | 
				
			||||||
 | 
					  pkgs,
 | 
				
			||||||
 | 
					  modulesPath,
 | 
				
			||||||
 | 
					  ...
 | 
				
			||||||
 | 
					}:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  imports =
 | 
					  imports = [
 | 
				
			||||||
    [ (modulesPath + "/installer/scan/not-detected.nix")
 | 
					    (modulesPath + "/installer/scan/not-detected.nix")
 | 
				
			||||||
    ];
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod" ];
 | 
					  boot.initrd.availableKernelModules = [
 | 
				
			||||||
 | 
					    "xhci_pci"
 | 
				
			||||||
 | 
					    "ahci"
 | 
				
			||||||
 | 
					    "nvme"
 | 
				
			||||||
 | 
					    "usbhid"
 | 
				
			||||||
 | 
					    "usb_storage"
 | 
				
			||||||
 | 
					    "sd_mod"
 | 
				
			||||||
 | 
					  ];
 | 
				
			||||||
  boot.initrd.kernelModules = [ ];
 | 
					  boot.initrd.kernelModules = [ ];
 | 
				
			||||||
  boot.kernelModules = [ "kvm-intel" "v4l2loopback"];
 | 
					  boot.kernelModules = [
 | 
				
			||||||
 | 
					    "kvm-intel"
 | 
				
			||||||
 | 
					    "v4l2loopback"
 | 
				
			||||||
 | 
					  ];
 | 
				
			||||||
  boot.extraModulePackages = [ config.boot.kernelPackages.v4l2loopback.out ];
 | 
					  boot.extraModulePackages = [ config.boot.kernelPackages.v4l2loopback.out ];
 | 
				
			||||||
  boot.extraModprobeConfig = ''
 | 
					  boot.extraModprobeConfig = ''
 | 
				
			||||||
    options v4l2loopback exclusive_caps=1 card_label="Virtual Camera"
 | 
					    options v4l2loopback exclusive_caps=1 card_label="Virtual Camera"
 | 
				
			||||||
  '';
 | 
					  '';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  fileSystems."/" =
 | 
					  fileSystems."/" = {
 | 
				
			||||||
    { device = "/dev/disk/by-label/NIXROOT";
 | 
					    device = "/dev/disk/by-label/NIXROOT";
 | 
				
			||||||
      fsType = "ext4";
 | 
					    fsType = "ext4";
 | 
				
			||||||
    };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  fileSystems."/boot" =
 | 
					  fileSystems."/boot" = {
 | 
				
			||||||
    { device = "/dev/disk/by-label/NIXBOOT";
 | 
					    device = "/dev/disk/by-label/NIXBOOT";
 | 
				
			||||||
      fsType = "vfat";
 | 
					    fsType = "vfat";
 | 
				
			||||||
      options = [ "fmask=0022" "dmask=0022" ];
 | 
					    options = [
 | 
				
			||||||
    };
 | 
					      "fmask=0022"
 | 
				
			||||||
 | 
					      "dmask=0022"
 | 
				
			||||||
 | 
					    ];
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  fileSystems."/storage" = 
 | 
					  fileSystems."/storage" = {
 | 
				
			||||||
    { device = "/dev/disk/by-label/STORAGE";
 | 
					    device = "/dev/disk/by-label/STORAGE";
 | 
				
			||||||
      fsType = "ext4";
 | 
					    fsType = "ext4";
 | 
				
			||||||
    };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  swapDevices = [ ];
 | 
					  swapDevices = [ ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -5,40 +5,38 @@
 | 
				
			|||||||
{ config, pkgs, ... }:
 | 
					{ config, pkgs, ... }:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    imports = [
 | 
					  imports = [
 | 
				
			||||||
        ../../modules/system.nix
 | 
					    ../../modules/system.nix
 | 
				
			||||||
        ../../modules/nix-settings.nix
 | 
					    ../../modules/nix-settings.nix
 | 
				
			||||||
        ../../modules/vpn.nix
 | 
					    ../../modules/vpn.nix
 | 
				
			||||||
        ../../modules/fonts.nix
 | 
					    ../../modules/fonts.nix
 | 
				
			||||||
        ../../modules/firewall.nix
 | 
					    ../../modules/firewall.nix
 | 
				
			||||||
        ../../modules/localisation.nix
 | 
					    ../../modules/localisation.nix
 | 
				
			||||||
        ../../modules/openssh.nix
 | 
					    ../../modules/openssh.nix
 | 
				
			||||||
        ../../modules/pipewire.nix
 | 
					    ../../modules/pipewire.nix
 | 
				
			||||||
        ../../modules/podman.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
 | 
					    ../../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
 | 
				
			||||||
    ];
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    programs.geary.enable = true;
 | 
					  programs.geary.enable = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    boot.loader = {
 | 
					  boot.loader = {
 | 
				
			||||||
        grub = {
 | 
					    grub = {
 | 
				
			||||||
            enable = true;
 | 
					      enable = true;
 | 
				
			||||||
            device = "/dev/sda";
 | 
					      device = "/dev/sda";
 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    networking.hostName = "nix-qemu"; # Define your hostname.
 | 
					  networking.hostName = "nix-qemu"; # Define your hostname.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    hardware.graphics.enable = true;
 | 
					  hardware.graphics.enable = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    system.stateVersion = "25.11"; # Did you read the comment?
 | 
					  system.stateVersion = "25.11"; # Did you read the comment?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,28 +1,42 @@
 | 
				
			|||||||
# Do not modify this file!  It was generated by ‘nixos-generate-config’
 | 
					# Do not modify this file!  It was generated by ‘nixos-generate-config’
 | 
				
			||||||
# and may be overwritten by future invocations.  Please make changes
 | 
					# and may be overwritten by future invocations.  Please make changes
 | 
				
			||||||
# to /etc/nixos/configuration.nix instead.
 | 
					# to /etc/nixos/configuration.nix instead.
 | 
				
			||||||
{ config, lib, pkgs, modulesPath, ... }:
 | 
					{
 | 
				
			||||||
 | 
					  config,
 | 
				
			||||||
 | 
					  lib,
 | 
				
			||||||
 | 
					  pkgs,
 | 
				
			||||||
 | 
					  modulesPath,
 | 
				
			||||||
 | 
					  ...
 | 
				
			||||||
 | 
					}:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  imports =
 | 
					  imports = [
 | 
				
			||||||
    [ (modulesPath + "/profiles/qemu-guest.nix")
 | 
					    (modulesPath + "/profiles/qemu-guest.nix")
 | 
				
			||||||
    ];
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  boot.initrd.availableKernelModules = [ "ata_piix" "floppy" "sd_mod" "sr_mod" ];
 | 
					  boot.initrd.availableKernelModules = [
 | 
				
			||||||
 | 
					    "ata_piix"
 | 
				
			||||||
 | 
					    "floppy"
 | 
				
			||||||
 | 
					    "sd_mod"
 | 
				
			||||||
 | 
					    "sr_mod"
 | 
				
			||||||
 | 
					  ];
 | 
				
			||||||
  boot.initrd.kernelModules = [ ];
 | 
					  boot.initrd.kernelModules = [ ];
 | 
				
			||||||
  boot.kernelModules = [ "kvm-intel" ];
 | 
					  boot.kernelModules = [ "kvm-intel" ];
 | 
				
			||||||
  boot.extraModulePackages = [ ];
 | 
					  boot.extraModulePackages = [ ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  fileSystems."/" =
 | 
					  fileSystems."/" = {
 | 
				
			||||||
    { device = "/dev/disk/by-label/NIXROOT";
 | 
					    device = "/dev/disk/by-label/NIXROOT";
 | 
				
			||||||
      fsType = "ext4";
 | 
					    fsType = "ext4";
 | 
				
			||||||
    };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  fileSystems."/boot" =
 | 
					  fileSystems."/boot" = {
 | 
				
			||||||
    { device = "/dev/disk/by-label/NIXBOOT";
 | 
					    device = "/dev/disk/by-label/NIXBOOT";
 | 
				
			||||||
      fsType = "vfat";
 | 
					    fsType = "vfat";
 | 
				
			||||||
      options = [ "fmask=0022" "dmask=0022" ];
 | 
					    options = [
 | 
				
			||||||
    };
 | 
					      "fmask=0022"
 | 
				
			||||||
 | 
					      "dmask=0022"
 | 
				
			||||||
 | 
					    ];
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  swapDevices = [ ];
 | 
					  swapDevices = [ ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,7 +1,7 @@
 | 
				
			|||||||
{ pkgs, ... }:
 | 
					{ pkgs, ... }:
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	programs.appimage = {
 | 
					  programs.appimage = {
 | 
				
			||||||
		enable = true;
 | 
					    enable = true;
 | 
				
			||||||
		binfmt = true;
 | 
					    binfmt = true;
 | 
				
			||||||
	};
 | 
					  };
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,21 +1,21 @@
 | 
				
			|||||||
{ pkgs, ... }:
 | 
					{ pkgs, ... }:
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    hardware.bluetooth = {
 | 
					  hardware.bluetooth = {
 | 
				
			||||||
        enable = true;
 | 
					    enable = true;
 | 
				
			||||||
        powerOnBoot = true;
 | 
					    powerOnBoot = true;
 | 
				
			||||||
        settings = {
 | 
					    settings = {
 | 
				
			||||||
            General = {
 | 
					      General = {
 | 
				
			||||||
                Enable = "Source,Sink,Media,Socket";
 | 
					        Enable = "Source,Sink,Media,Socket";
 | 
				
			||||||
                Experimental = true;
 | 
					        Experimental = true;
 | 
				
			||||||
            }
 | 
					      };
 | 
				
			||||||
        };
 | 
					    };
 | 
				
			||||||
    }
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    services.blueman.enable = true; # Graphical Manager
 | 
					  services.blueman.enable = true; # Graphical Manager
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    hardware.pulseaudio = {
 | 
					  hardware.pulseaudio = {
 | 
				
			||||||
        enable = true;
 | 
					    enable = true;
 | 
				
			||||||
        package = pkgs.pulseaudioFull;
 | 
					    package = pkgs.pulseaudioFull;
 | 
				
			||||||
        extraModules = [ pkgs.pulseaudio-modules-bt ];
 | 
					    extraModules = [ pkgs.pulseaudio-modules-bt ];
 | 
				
			||||||
    }
 | 
					  };
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,25 +1,25 @@
 | 
				
			|||||||
{ pkgs, ... }:
 | 
					{ pkgs, ... }:
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    services.udev.extraRules = ''
 | 
					  services.udev.extraRules = ''
 | 
				
			||||||
        ACTION=="add", \
 | 
					    ACTION=="add", \
 | 
				
			||||||
        SUBSYSTEM=="usb", \
 | 
					    SUBSYSTEM=="usb", \
 | 
				
			||||||
        ATTR{idVendor}=="04a9", \
 | 
					    ATTR{idVendor}=="04a9", \
 | 
				
			||||||
        ATTR{idProduct}=="31ea", \
 | 
					    ATTR{idProduct}=="31ea", \
 | 
				
			||||||
    '';
 | 
					  '';
 | 
				
			||||||
#        RUN+="systemctl restart webcam"
 | 
					  #        RUN+="systemctl restart webcam"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    systemd.services.webcam = {
 | 
					  systemd.services.webcam = {
 | 
				
			||||||
        enable = true;
 | 
					    enable = true;
 | 
				
			||||||
        script = ''
 | 
					    script = ''
 | 
				
			||||||
            ${pkgs.gphoto2}/bin/gphoto2 --stdout --capture-movie |
 | 
					      ${pkgs.gphoto2}/bin/gphoto2 --stdout --capture-movie |
 | 
				
			||||||
            ${pkgs.ffmpeg}/bin/ffmpeg \
 | 
					      ${pkgs.ffmpeg}/bin/ffmpeg \
 | 
				
			||||||
                -i - \
 | 
					          -i - \
 | 
				
			||||||
                -vcodec rawvideo \
 | 
					          -vcodec rawvideo \
 | 
				
			||||||
                -pix_fmt yuv420p \
 | 
					          -pix_fmt yuv420p \
 | 
				
			||||||
                -f v4l2 \
 | 
					          -f v4l2 \
 | 
				
			||||||
                /dev/video0
 | 
					          /dev/video0
 | 
				
			||||||
        '';
 | 
					    '';
 | 
				
			||||||
        #wantedBy = [ "multi-user.target" ];
 | 
					    #wantedBy = [ "multi-user.target" ];
 | 
				
			||||||
    };
 | 
					  };
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,34 +1,36 @@
 | 
				
			|||||||
{ pkgs, ...}:
 | 
					{ pkgs, ... }:
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    environment.systemPackages = with pkgs; [
 | 
					  environment.systemPackages = with pkgs; [
 | 
				
			||||||
        # Virtualisation 
 | 
					 | 
				
			||||||
        docker-compose # docker-compose alternative
 | 
					 | 
				
			||||||
        dive # docker layer viewer
 | 
					 | 
				
			||||||
        tailscale # Vpn
 | 
					 | 
				
			||||||
    ];
 | 
					 | 
				
			||||||
    # Virtualisation
 | 
					    # Virtualisation
 | 
				
			||||||
    virtualisation = {
 | 
					    docker-compose # docker-compose alternative
 | 
				
			||||||
        containers.enable = true;
 | 
					    dive # docker layer viewer
 | 
				
			||||||
 | 
					    tailscale # Vpn
 | 
				
			||||||
 | 
					  ];
 | 
				
			||||||
 | 
					  # Virtualisation
 | 
				
			||||||
 | 
					  virtualisation = {
 | 
				
			||||||
 | 
					    containers.enable = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        docker = {
 | 
					    docker = {
 | 
				
			||||||
            enable = true;
 | 
					      enable = true;
 | 
				
			||||||
            rootless = {
 | 
					      rootless = {
 | 
				
			||||||
                enable = true;
 | 
					        enable = true;
 | 
				
			||||||
                setSocketVariable = true;
 | 
					        setSocketVariable = true;
 | 
				
			||||||
            };
 | 
					      };
 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        oci-containers = {
 | 
					 | 
				
			||||||
            backend = "docker";
 | 
					 | 
				
			||||||
            containers = {
 | 
					 | 
				
			||||||
                /*container-name = {
 | 
					 | 
				
			||||||
                    image = "image";
 | 
					 | 
				
			||||||
                    autoStart = true;
 | 
					 | 
				
			||||||
                    ports = [ "127.0.0.1:1234:1234" ];
 | 
					 | 
				
			||||||
                };*/
 | 
					 | 
				
			||||||
            };
 | 
					 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    oci-containers = {
 | 
				
			||||||
 | 
					      backend = "docker";
 | 
				
			||||||
 | 
					      containers = {
 | 
				
			||||||
 | 
					        /*
 | 
				
			||||||
 | 
					          container-name = {
 | 
				
			||||||
 | 
					              image = "image";
 | 
				
			||||||
 | 
					              autoStart = true;
 | 
				
			||||||
 | 
					              ports = [ "127.0.0.1:1234:1234" ];
 | 
				
			||||||
 | 
					          };
 | 
				
			||||||
 | 
					        */
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,4 +1,4 @@
 | 
				
			|||||||
{ pkgs, ... }:
 | 
					{ pkgs, ... }:
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	programs.spacefm.enable = true;
 | 
					  programs.spacefm.enable = true;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,13 +1,13 @@
 | 
				
			|||||||
{ pkgs, ... }:
 | 
					{ pkgs, ... }:
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    programs.xfconf.enable = true;
 | 
					  programs.xfconf.enable = true;
 | 
				
			||||||
    services.gvfs.enable = true;
 | 
					  services.gvfs.enable = true;
 | 
				
			||||||
    services.tumbler.enable = true;
 | 
					  services.tumbler.enable = true;
 | 
				
			||||||
    programs.thunar = {
 | 
					  programs.thunar = {
 | 
				
			||||||
        enable = true;
 | 
					    enable = true;
 | 
				
			||||||
        plugins = with pkgs.xfce; [
 | 
					    plugins = with pkgs.xfce; [
 | 
				
			||||||
            thunar-archive-plugin
 | 
					      thunar-archive-plugin
 | 
				
			||||||
            thunar-volman
 | 
					      thunar-volman
 | 
				
			||||||
        ];
 | 
					    ];
 | 
				
			||||||
    };
 | 
					  };
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,7 +1,7 @@
 | 
				
			|||||||
{ pkgs, ... }:
 | 
					{ pkgs, ... }:
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    networking.firewall.allowedTCPPorts = [ 57621 ];
 | 
					  networking.firewall.allowedTCPPorts = [ 57621 ];
 | 
				
			||||||
    networking.firewall.allowedUDPPorts = [ 5353 ];
 | 
					  networking.firewall.allowedUDPPorts = [ 5353 ];
 | 
				
			||||||
    # Or disable the firewall altogether.
 | 
					  # Or disable the firewall altogether.
 | 
				
			||||||
    networking.firewall.enable = false;
 | 
					  networking.firewall.enable = false;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,30 +1,39 @@
 | 
				
			|||||||
{ pkgs, ... }:
 | 
					{ pkgs, ... }:
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    fonts = {
 | 
					  fonts = {
 | 
				
			||||||
        packages = with pkgs; [
 | 
					    packages = with pkgs; [
 | 
				
			||||||
            # icon fonts
 | 
					      # icon fonts
 | 
				
			||||||
            material-icons
 | 
					      material-icons
 | 
				
			||||||
            material-black-colors
 | 
					      material-black-colors
 | 
				
			||||||
            material-design-icons
 | 
					      material-design-icons
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            # normal fonts
 | 
					      # normal fonts
 | 
				
			||||||
            noto-fonts
 | 
					      noto-fonts
 | 
				
			||||||
            noto-fonts-emoji
 | 
					      noto-fonts-emoji
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            nerdfonts
 | 
					      nerdfonts
 | 
				
			||||||
        ];
 | 
					    ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # use fonts specified by user rather than default ones
 | 
					    # use fonts specified by user rather than default ones
 | 
				
			||||||
        enableDefaultPackages = false;
 | 
					    enableDefaultPackages = false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # user defined fonts
 | 
					    # user defined fonts
 | 
				
			||||||
        # the reason there's Noto Color Emoji everywhere is to override DejaVu's
 | 
					    # the reason there's Noto Color Emoji everywhere is to override DejaVu's
 | 
				
			||||||
        # B&W emojis that would sometimes show instead of some Color emojis
 | 
					    # B&W emojis that would sometimes show instead of some Color emojis
 | 
				
			||||||
        fontconfig.defaultFonts = {
 | 
					    fontconfig.defaultFonts = {
 | 
				
			||||||
          serif = ["Noto Serif" "Noto Color Emoji"];
 | 
					      serif = [
 | 
				
			||||||
          sansSerif = ["Noto Sans" "Noto Color Emoji"];
 | 
					        "Noto Serif"
 | 
				
			||||||
          monospace = ["JetBrainsMono Nerd Font" "Noto Color Emoji"];
 | 
					        "Noto Color Emoji"
 | 
				
			||||||
          emoji = ["Noto Color Emoji"];
 | 
					      ];
 | 
				
			||||||
        };
 | 
					      sansSerif = [
 | 
				
			||||||
 | 
					        "Noto Sans"
 | 
				
			||||||
 | 
					        "Noto Color Emoji"
 | 
				
			||||||
 | 
					      ];
 | 
				
			||||||
 | 
					      monospace = [
 | 
				
			||||||
 | 
					        "JetBrainsMono Nerd Font"
 | 
				
			||||||
 | 
					        "Noto Color Emoji"
 | 
				
			||||||
 | 
					      ];
 | 
				
			||||||
 | 
					      emoji = [ "Noto Color Emoji" ];
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,20 +1,20 @@
 | 
				
			|||||||
{ pkgs, ... }: 
 | 
					{ pkgs, ... }:
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    # Set your time zone.
 | 
					  # Set your time zone.
 | 
				
			||||||
    time.timeZone = "Europe/Berlin";
 | 
					  time.timeZone = "Europe/Berlin";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Select internationalisation properties.
 | 
					  # Select internationalisation properties.
 | 
				
			||||||
    i18n.defaultLocale = "en_US.UTF-8";
 | 
					  i18n.defaultLocale = "en_US.UTF-8";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    i18n.extraLocaleSettings = {
 | 
					  i18n.extraLocaleSettings = {
 | 
				
			||||||
        LC_ADDRESS = "de_DE.UTF-8";
 | 
					    LC_ADDRESS = "de_DE.UTF-8";
 | 
				
			||||||
        LC_IDENTIFICATION = "de_DE.UTF-8";
 | 
					    LC_IDENTIFICATION = "de_DE.UTF-8";
 | 
				
			||||||
        LC_MEASUREMENT = "de_DE.UTF-8";
 | 
					    LC_MEASUREMENT = "de_DE.UTF-8";
 | 
				
			||||||
        LC_MONETARY = "de_DE.UTF-8";
 | 
					    LC_MONETARY = "de_DE.UTF-8";
 | 
				
			||||||
        LC_NAME = "de_DE.UTF-8";
 | 
					    LC_NAME = "de_DE.UTF-8";
 | 
				
			||||||
        LC_NUMERIC = "de_DE.UTF-8";
 | 
					    LC_NUMERIC = "de_DE.UTF-8";
 | 
				
			||||||
        LC_PAPER = "de_DE.UTF-8";
 | 
					    LC_PAPER = "de_DE.UTF-8";
 | 
				
			||||||
        LC_TELEPHONE = "de_DE.UTF-8";
 | 
					    LC_TELEPHONE = "de_DE.UTF-8";
 | 
				
			||||||
        LC_TIME = "de_DE.UTF-8";
 | 
					    LC_TIME = "de_DE.UTF-8";
 | 
				
			||||||
    };
 | 
					  };
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,42 +1,50 @@
 | 
				
			|||||||
{ pkgs, username, lib, ... }: 
 | 
					 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    # given the users in this list the right to specify additional substituters via:
 | 
					  pkgs,
 | 
				
			||||||
    #    1. `nixConfig.substituers` in `flake.nix`
 | 
					  username,
 | 
				
			||||||
    #    2. command line args `--options substituers http://xxx`
 | 
					  lib,
 | 
				
			||||||
    nix.settings.trusted-users = [username];
 | 
					  ...
 | 
				
			||||||
 | 
					}:
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  # given the users in this list the right to specify additional substituters via:
 | 
				
			||||||
 | 
					  #    1. `nixConfig.substituers` in `flake.nix`
 | 
				
			||||||
 | 
					  #    2. command line args `--options substituers http://xxx`
 | 
				
			||||||
 | 
					  nix.settings.trusted-users = [ username ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # customise /etc/nix/nix.conf declaratively via `nix.settings`
 | 
					  # customise /etc/nix/nix.conf declaratively via `nix.settings`
 | 
				
			||||||
    nix.settings = {
 | 
					  nix.settings = {
 | 
				
			||||||
        # enable flakes globally
 | 
					    # enable flakes globally
 | 
				
			||||||
        experimental-features = ["nix-command" "flakes"];
 | 
					    experimental-features = [
 | 
				
			||||||
        auto-optimise-store = true;
 | 
					      "nix-command"
 | 
				
			||||||
        substituters = [
 | 
					      "flakes"
 | 
				
			||||||
          "https://cache.nixos.org"
 | 
					    ];
 | 
				
			||||||
          "https://hyprland.cachix.org"
 | 
					    auto-optimise-store = true;
 | 
				
			||||||
        ];
 | 
					    substituters = [
 | 
				
			||||||
 | 
					      "https://cache.nixos.org"
 | 
				
			||||||
        trusted-public-keys = [
 | 
					      "https://hyprland.cachix.org"
 | 
				
			||||||
          "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
 | 
					 | 
				
			||||||
          "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
 | 
					 | 
				
			||||||
        ];
 | 
					 | 
				
			||||||
        builders-use-substitutes = true;
 | 
					 | 
				
			||||||
        download-buffer-size = 524288000;
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # do garbage collection weekly to keep disk usage low
 | 
					 | 
				
			||||||
    nix.gc = {
 | 
					 | 
				
			||||||
        automatic = lib.mkDefault true;
 | 
					 | 
				
			||||||
        dates = lib.mkDefault "1 h";
 | 
					 | 
				
			||||||
        options = lib.mkDefault "--delete-older-than +3";
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    # Allow unfree packages
 | 
					 | 
				
			||||||
    nixpkgs.config.allowUnfree = true;
 | 
					 | 
				
			||||||
    nixpkgs.config.allowBroken = true;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    nixpkgs.config.permittedInsecurePackages = [
 | 
					 | 
				
			||||||
        "dotnet-sdk-6.0.428"
 | 
					 | 
				
			||||||
	    "dotnet-runtime-6.0.36"
 | 
					 | 
				
			||||||
    ];
 | 
					    ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    trusted-public-keys = [
 | 
				
			||||||
 | 
					      "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
 | 
				
			||||||
 | 
					      "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
 | 
				
			||||||
 | 
					    ];
 | 
				
			||||||
 | 
					    builders-use-substitutes = true;
 | 
				
			||||||
 | 
					    download-buffer-size = 524288000;
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # do garbage collection weekly to keep disk usage low
 | 
				
			||||||
 | 
					  nix.gc = {
 | 
				
			||||||
 | 
					    automatic = lib.mkDefault true;
 | 
				
			||||||
 | 
					    dates = lib.mkDefault "1 h";
 | 
				
			||||||
 | 
					    options = lib.mkDefault "--delete-older-than +3";
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Allow unfree packages
 | 
				
			||||||
 | 
					  nixpkgs.config.allowUnfree = true;
 | 
				
			||||||
 | 
					  nixpkgs.config.allowBroken = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  nixpkgs.config.permittedInsecurePackages = [
 | 
				
			||||||
 | 
					    "dotnet-sdk-6.0.428"
 | 
				
			||||||
 | 
					    "dotnet-runtime-6.0.36"
 | 
				
			||||||
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,13 +1,13 @@
 | 
				
			|||||||
{ pkgs, ... }:
 | 
					{ pkgs, ... }:
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    # Enable the OpenSSH daemon.
 | 
					  # Enable the OpenSSH daemon.
 | 
				
			||||||
    services.openssh = {
 | 
					  services.openssh = {
 | 
				
			||||||
        enable = true;
 | 
					    enable = true;
 | 
				
			||||||
        settings = {
 | 
					    settings = {
 | 
				
			||||||
          X11Forwarding = true;
 | 
					      X11Forwarding = true;
 | 
				
			||||||
          PermitRootLogin = "no"; # disable root login
 | 
					      PermitRootLogin = "no"; # disable root login
 | 
				
			||||||
          PasswordAuthentication = false; # disable password login
 | 
					      PasswordAuthentication = false; # disable password login
 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
        openFirewall = true;
 | 
					 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					    openFirewall = true;
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,20 +1,20 @@
 | 
				
			|||||||
{ pkgs, ... }:
 | 
					{ pkgs, ... }:
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    # Enable sound with pipewire.
 | 
					  # Enable sound with pipewire.
 | 
				
			||||||
    #sound.enable = true;
 | 
					  #sound.enable = true;
 | 
				
			||||||
    hardware.pulseaudio.enable = false;
 | 
					  hardware.pulseaudio.enable = false;
 | 
				
			||||||
    environment.systemPackages = with pkgs; [ pamixer ];
 | 
					  environment.systemPackages = with pkgs; [ pamixer ];
 | 
				
			||||||
    services.pipewire = {
 | 
					  services.pipewire = {
 | 
				
			||||||
          enable = true;
 | 
					    enable = true;
 | 
				
			||||||
          #alsa.enable = true;
 | 
					    #alsa.enable = true;
 | 
				
			||||||
          #alsa.support32Bit = true;
 | 
					    #alsa.support32Bit = true;
 | 
				
			||||||
          #pulse.enable = true;
 | 
					    #pulse.enable = true;
 | 
				
			||||||
          # If you want to use JACK applications, uncomment this
 | 
					    # If you want to use JACK applications, uncomment this
 | 
				
			||||||
          #jack.enable = true;
 | 
					    #jack.enable = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
          # use the example session manager (no others are packaged yet so this is enabled by default,
 | 
					    # use the example session manager (no others are packaged yet so this is enabled by default,
 | 
				
			||||||
          # no need to redefine it in your config for now)
 | 
					    # no need to redefine it in your config for now)
 | 
				
			||||||
          #media-session.enable = true;
 | 
					    #media-session.enable = true;
 | 
				
			||||||
    };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,4 +1,5 @@
 | 
				
			|||||||
{ pkgs, ... }: {
 | 
					{ pkgs, ... }:
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
  boot = {
 | 
					  boot = {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    plymouth = {
 | 
					    plymouth = {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,34 +1,36 @@
 | 
				
			|||||||
{ pkgs, ...}:
 | 
					{ pkgs, ... }:
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    environment.systemPackages = with 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
 | 
				
			||||||
    virtualisation = {
 | 
					    podman-compose # docker-compose alternative
 | 
				
			||||||
        containers.enable = true;
 | 
					    dive # docker layer viewer
 | 
				
			||||||
 | 
					    podman-tui # status of containers in terminal
 | 
				
			||||||
 | 
					    podman-desktop # Desktop client
 | 
				
			||||||
 | 
					    tailscale # Vpn
 | 
				
			||||||
 | 
					  ];
 | 
				
			||||||
 | 
					  # Virtualisation
 | 
				
			||||||
 | 
					  virtualisation = {
 | 
				
			||||||
 | 
					    containers.enable = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        podman = {
 | 
					    podman = {
 | 
				
			||||||
            enable = true;
 | 
					      enable = true;
 | 
				
			||||||
            dockerCompat = true;
 | 
					      dockerCompat = true;
 | 
				
			||||||
            defaultNetwork.settings.dns_enabled = true;
 | 
					      defaultNetwork.settings.dns_enabled = true;
 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        oci-containers = {
 | 
					 | 
				
			||||||
            backend = "podman";
 | 
					 | 
				
			||||||
            containers = {
 | 
					 | 
				
			||||||
                /*container-name = {
 | 
					 | 
				
			||||||
                    image = "image";
 | 
					 | 
				
			||||||
                    autoStart = true;
 | 
					 | 
				
			||||||
                    ports = [ "127.0.0.1:1234:1234" ];
 | 
					 | 
				
			||||||
                };*/
 | 
					 | 
				
			||||||
            };
 | 
					 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    oci-containers = {
 | 
				
			||||||
 | 
					      backend = "podman";
 | 
				
			||||||
 | 
					      containers = {
 | 
				
			||||||
 | 
					        /*
 | 
				
			||||||
 | 
					          container-name = {
 | 
				
			||||||
 | 
					              image = "image";
 | 
				
			||||||
 | 
					              autoStart = true;
 | 
				
			||||||
 | 
					              ports = [ "127.0.0.1:1234:1234" ];
 | 
				
			||||||
 | 
					          };
 | 
				
			||||||
 | 
					        */
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,12 +1,12 @@
 | 
				
			|||||||
{ pkgs, ... }:
 | 
					{ pkgs, ... }:
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	environment.systemPackages = with pkgs; [
 | 
					  environment.systemPackages = with pkgs; [
 | 
				
			||||||
		qemu
 | 
					    qemu
 | 
				
			||||||
		quickemu
 | 
					    quickemu
 | 
				
			||||||
	];
 | 
					  ];
 | 
				
			||||||
	systemd.tmpfiles.rules = [ "L+ /var/lib/qemu/firmware - - - - ${pkgs.qemu}/share/qemu/firmware" ];
 | 
					  systemd.tmpfiles.rules = [ "L+ /var/lib/qemu/firmware - - - - ${pkgs.qemu}/share/qemu/firmware" ];
 | 
				
			||||||
	boot.binfmt.emulatedSystems = [
 | 
					  boot.binfmt.emulatedSystems = [
 | 
				
			||||||
		"aarch64-linux"
 | 
					    "aarch64-linux"
 | 
				
			||||||
		"riscv64-linux"
 | 
					    "riscv64-linux"
 | 
				
			||||||
	];
 | 
					  ];
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,61 +1,82 @@
 | 
				
			|||||||
{ pkgs, username, lib, ... }: {
 | 
					{
 | 
				
			||||||
    /*services.greetd = {
 | 
					  pkgs,
 | 
				
			||||||
	enable = true;
 | 
					  username,
 | 
				
			||||||
	settings = {
 | 
					  lib,
 | 
				
			||||||
		default_session = {
 | 
					  ...
 | 
				
			||||||
			user = username;
 | 
					}:
 | 
				
			||||||
			command = "$HOME/.wayland-session";
 | 
					{
 | 
				
			||||||
		};
 | 
					  /*
 | 
				
			||||||
	};
 | 
					    services.greetd = {
 | 
				
			||||||
    };*/
 | 
					    	enable = true;
 | 
				
			||||||
 | 
					    	settings = {
 | 
				
			||||||
    services.displayManager = {
 | 
					    		default_session = {
 | 
				
			||||||
        sessionPackages = [ pkgs.hyprland ];
 | 
					    			user = username;
 | 
				
			||||||
    };
 | 
					    			command = "$HOME/.wayland-session";
 | 
				
			||||||
 | 
					    		};
 | 
				
			||||||
    environment.etc= {
 | 
					    	};
 | 
				
			||||||
        "greetd/background.png".source = ../../wallpapers/lucy_with_cat.png;
 | 
					 | 
				
			||||||
        "greetd/environments".text = ''
 | 
					 | 
				
			||||||
        hyprland
 | 
					 | 
				
			||||||
        fish
 | 
					 | 
				
			||||||
        '';
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    programs.regreet = {
 | 
					 | 
				
			||||||
        enable = true;
 | 
					 | 
				
			||||||
        cageArgs = ["-s" "-m" "last" ];
 | 
					 | 
				
			||||||
        settings = {
 | 
					 | 
				
			||||||
            background = { 
 | 
					 | 
				
			||||||
                path = "/etc/greetd/background.png";
 | 
					 | 
				
			||||||
                fit = "Fill";
 | 
					 | 
				
			||||||
            };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            env.SESSION_DIRS = "$HOME/.wayland-session";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            GTK = {
 | 
					 | 
				
			||||||
                application_prefer_dark_theme = true;
 | 
					 | 
				
			||||||
                cursor_theme_name = "Adwaita";
 | 
					 | 
				
			||||||
                font_name = lib.mkForce "FiraCodeNerdFontPropo 12";
 | 
					 | 
				
			||||||
                icon_theme_name = lib.mkForce "materialdesignicons";
 | 
					 | 
				
			||||||
                theme_name = "Adwaita";
 | 
					 | 
				
			||||||
            };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            commands = {
 | 
					 | 
				
			||||||
                reboot = ["systemctl" "reboot"];
 | 
					 | 
				
			||||||
                poweroff = ["systemctl" "poweroff"];
 | 
					 | 
				
			||||||
                x11_prefix = [ "startx" "/usr/bin/env" ];
 | 
					 | 
				
			||||||
            };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            appearance = {
 | 
					 | 
				
			||||||
                greeting_msg = "Hey there, Master!";
 | 
					 | 
				
			||||||
            };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            widget.clock = {
 | 
					 | 
				
			||||||
                format = "%A %d.%m.%Y %T";
 | 
					 | 
				
			||||||
                resolution = "500ms";
 | 
					 | 
				
			||||||
                timezone = "Europe/Berlin";
 | 
					 | 
				
			||||||
                label_width = 150;
 | 
					 | 
				
			||||||
            };
 | 
					 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
 | 
					  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  services.displayManager = {
 | 
				
			||||||
 | 
					    sessionPackages = [ pkgs.hyprland ];
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  environment.etc = {
 | 
				
			||||||
 | 
					    "greetd/background.png".source = ../../wallpapers/lucy_with_cat.png;
 | 
				
			||||||
 | 
					    "greetd/environments".text = ''
 | 
				
			||||||
 | 
					      hyprland
 | 
				
			||||||
 | 
					      fish
 | 
				
			||||||
 | 
					    '';
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  programs.regreet = {
 | 
				
			||||||
 | 
					    enable = true;
 | 
				
			||||||
 | 
					    cageArgs = [
 | 
				
			||||||
 | 
					      "-s"
 | 
				
			||||||
 | 
					      "-m"
 | 
				
			||||||
 | 
					      "last"
 | 
				
			||||||
 | 
					    ];
 | 
				
			||||||
 | 
					    settings = {
 | 
				
			||||||
 | 
					      background = {
 | 
				
			||||||
 | 
					        path = "/etc/greetd/background.png";
 | 
				
			||||||
 | 
					        fit = "Fill";
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      env.SESSION_DIRS = "$HOME/.wayland-session";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      GTK = {
 | 
				
			||||||
 | 
					        application_prefer_dark_theme = true;
 | 
				
			||||||
 | 
					        cursor_theme_name = "Adwaita";
 | 
				
			||||||
 | 
					        font_name = lib.mkForce "FiraCodeNerdFontPropo 12";
 | 
				
			||||||
 | 
					        icon_theme_name = lib.mkForce "materialdesignicons";
 | 
				
			||||||
 | 
					        theme_name = "Adwaita";
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      commands = {
 | 
				
			||||||
 | 
					        reboot = [
 | 
				
			||||||
 | 
					          "systemctl"
 | 
				
			||||||
 | 
					          "reboot"
 | 
				
			||||||
 | 
					        ];
 | 
				
			||||||
 | 
					        poweroff = [
 | 
				
			||||||
 | 
					          "systemctl"
 | 
				
			||||||
 | 
					          "poweroff"
 | 
				
			||||||
 | 
					        ];
 | 
				
			||||||
 | 
					        x11_prefix = [
 | 
				
			||||||
 | 
					          "startx"
 | 
				
			||||||
 | 
					          "/usr/bin/env"
 | 
				
			||||||
 | 
					        ];
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      appearance = {
 | 
				
			||||||
 | 
					        greeting_msg = "Hey there, Master!";
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      widget.clock = {
 | 
				
			||||||
 | 
					        format = "%A %d.%m.%Y %T";
 | 
				
			||||||
 | 
					        resolution = "500ms";
 | 
				
			||||||
 | 
					        timezone = "Europe/Berlin";
 | 
				
			||||||
 | 
					        label_width = 150;
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,18 +1,18 @@
 | 
				
			|||||||
{ pkgs, ... }:
 | 
					{ pkgs, ... }:
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    services = {
 | 
					  services = {
 | 
				
			||||||
        dbus.packages = [pkgs.gcr];
 | 
					    dbus.packages = [ pkgs.gcr ];
 | 
				
			||||||
        
 | 
					 | 
				
			||||||
#        flatpak.enable = true;
 | 
					 | 
				
			||||||
#        xdg.portals.enable = true;
 | 
					 | 
				
			||||||
        geoclue2.enable = true;           	
 | 
					 | 
				
			||||||
        xserver.enable = true;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        udev.packages = with pkgs; [pkgs.gnome-settings-daemon];
 | 
					    #        flatpak.enable = true;
 | 
				
			||||||
 | 
					    #        xdg.portals.enable = true;
 | 
				
			||||||
 | 
					    geoclue2.enable = true;
 | 
				
			||||||
 | 
					    xserver.enable = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # Enable CUPS to print documents.
 | 
					    udev.packages = with pkgs; [ pkgs.gnome-settings-daemon ];
 | 
				
			||||||
        printing.enable = true;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        power-profiles-daemon.enable = true;
 | 
					    # Enable CUPS to print documents.
 | 
				
			||||||
    };
 | 
					    printing.enable = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    power-profiles-daemon.enable = true;
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3,85 +3,97 @@
 | 
				
			|||||||
  lib,
 | 
					  lib,
 | 
				
			||||||
  username,
 | 
					  username,
 | 
				
			||||||
  ...
 | 
					  ...
 | 
				
			||||||
}: 
 | 
					}:
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
# ============================= User related =============================
 | 
					  # ============================= User related =============================
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Define a user account. Don't forget to set a password with ‘passwd’.
 | 
					  # Define a user account. Don't forget to set a password with ‘passwd’.
 | 
				
			||||||
    users.users.${username} = {
 | 
					  users.users.${username} = {
 | 
				
			||||||
        isNormalUser = true;
 | 
					    isNormalUser = true;
 | 
				
			||||||
        description = username;
 | 
					    description = username;
 | 
				
			||||||
        extraGroups = ["networkmanager" "wheel" "podman"];
 | 
					    extraGroups = [
 | 
				
			||||||
    };
 | 
					      "networkmanager"
 | 
				
			||||||
 | 
					      "wheel"
 | 
				
			||||||
    programs.steam.enable = true;
 | 
					      "podman"
 | 
				
			||||||
    programs.dconf.enable = true;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# List packages installed in system profile. To search, run:
 | 
					 | 
				
			||||||
# $ nix search wget
 | 
					 | 
				
			||||||
    environment.systemPackages = with pkgs; [   
 | 
					 | 
				
			||||||
        # Bare minimum
 | 
					 | 
				
			||||||
        neovim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
 | 
					 | 
				
			||||||
        wget
 | 
					 | 
				
			||||||
        git
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        # System tools
 | 
					 | 
				
			||||||
        sysstat
 | 
					 | 
				
			||||||
        lm_sensors # for `sensors` command
 | 
					 | 
				
			||||||
        ethtool
 | 
					 | 
				
			||||||
        pciutils # lspci
 | 
					 | 
				
			||||||
        usbutils # lsusb
 | 
					 | 
				
			||||||
        lshw
 | 
					 | 
				
			||||||
        nvme-cli
 | 
					 | 
				
			||||||
        smartmontools
 | 
					 | 
				
			||||||
        bluez
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        # Graphics
 | 
					 | 
				
			||||||
        libGL
 | 
					 | 
				
			||||||
        glxinfo
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        # Rizz
 | 
					 | 
				
			||||||
        fastfetch
 | 
					 | 
				
			||||||
        cpufetch
 | 
					 | 
				
			||||||
        hyfetch
 | 
					 | 
				
			||||||
        ramfetch
 | 
					 | 
				
			||||||
        neofetch
 | 
					 | 
				
			||||||
        ghfetch
 | 
					 | 
				
			||||||
        libnotify
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        # Terminal
 | 
					 | 
				
			||||||
        yazi # file manager
 | 
					 | 
				
			||||||
        jq # JSON Parser
 | 
					 | 
				
			||||||
        yq-go # YAML Parser
 | 
					 | 
				
			||||||
        glow # Markdown Reader
 | 
					 | 
				
			||||||
        btop # system monitor
 | 
					 | 
				
			||||||
        iotop # iomonitor
 | 
					 | 
				
			||||||
        iftop # network monitor
 | 
					 | 
				
			||||||
        iperf3 # network tester
 | 
					 | 
				
			||||||
        nmap # network discovery
 | 
					 | 
				
			||||||
        eza # ls replacement
 | 
					 | 
				
			||||||
        curl
 | 
					 | 
				
			||||||
        dnsutils
 | 
					 | 
				
			||||||
        ldns
 | 
					 | 
				
			||||||
        file
 | 
					 | 
				
			||||||
        which
 | 
					 | 
				
			||||||
        tree
 | 
					 | 
				
			||||||
        gnused
 | 
					 | 
				
			||||||
        gnutar
 | 
					 | 
				
			||||||
        gawk
 | 
					 | 
				
			||||||
        zstd
 | 
					 | 
				
			||||||
        gnupg
 | 
					 | 
				
			||||||
        fzf
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        # Archives
 | 
					 | 
				
			||||||
        zip
 | 
					 | 
				
			||||||
        unzip
 | 
					 | 
				
			||||||
        p7zip
 | 
					 | 
				
			||||||
        xz
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        postman
 | 
					 | 
				
			||||||
    ];
 | 
					    ];
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    security.polkit.enable = true;
 | 
					  programs.steam.enable = true;
 | 
				
			||||||
    security.rtkit.enable = true;
 | 
					  programs.dconf.enable = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # List packages installed in system profile. To search, run:
 | 
				
			||||||
 | 
					  # $ nix search wget
 | 
				
			||||||
 | 
					  environment.systemPackages = with pkgs; [
 | 
				
			||||||
 | 
					    # Bare minimum
 | 
				
			||||||
 | 
					    neovim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
 | 
				
			||||||
 | 
					    wget
 | 
				
			||||||
 | 
					    git
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # System tools
 | 
				
			||||||
 | 
					    sysstat
 | 
				
			||||||
 | 
					    lm_sensors # for `sensors` command
 | 
				
			||||||
 | 
					    ethtool
 | 
				
			||||||
 | 
					    pciutils # lspci
 | 
				
			||||||
 | 
					    usbutils # lsusb
 | 
				
			||||||
 | 
					    lshw
 | 
				
			||||||
 | 
					    nvme-cli
 | 
				
			||||||
 | 
					    smartmontools
 | 
				
			||||||
 | 
					    bluez
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # Graphics
 | 
				
			||||||
 | 
					    libGL
 | 
				
			||||||
 | 
					    glxinfo
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # Rizz
 | 
				
			||||||
 | 
					    fastfetch
 | 
				
			||||||
 | 
					    cpufetch
 | 
				
			||||||
 | 
					    hyfetch
 | 
				
			||||||
 | 
					    ramfetch
 | 
				
			||||||
 | 
					    neofetch
 | 
				
			||||||
 | 
					    ghfetch
 | 
				
			||||||
 | 
					    libnotify
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # Terminal
 | 
				
			||||||
 | 
					    yazi # file manager
 | 
				
			||||||
 | 
					    jq # JSON Parser
 | 
				
			||||||
 | 
					    yq-go # YAML Parser
 | 
				
			||||||
 | 
					    glow # Markdown Reader
 | 
				
			||||||
 | 
					    btop # system monitor
 | 
				
			||||||
 | 
					    iotop # iomonitor
 | 
				
			||||||
 | 
					    iftop # network monitor
 | 
				
			||||||
 | 
					    iperf3 # network tester
 | 
				
			||||||
 | 
					    nmap # network discovery
 | 
				
			||||||
 | 
					    eza # ls replacement
 | 
				
			||||||
 | 
					    curl
 | 
				
			||||||
 | 
					    dnsutils
 | 
				
			||||||
 | 
					    ldns
 | 
				
			||||||
 | 
					    file
 | 
				
			||||||
 | 
					    which
 | 
				
			||||||
 | 
					    tree
 | 
				
			||||||
 | 
					    gnused
 | 
				
			||||||
 | 
					    gnutar
 | 
				
			||||||
 | 
					    gawk
 | 
				
			||||||
 | 
					    zstd
 | 
				
			||||||
 | 
					    gnupg
 | 
				
			||||||
 | 
					    fzf
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # nix related
 | 
				
			||||||
 | 
					    nix-index
 | 
				
			||||||
 | 
					    nix-tree
 | 
				
			||||||
 | 
					    nix-health
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # Archives
 | 
				
			||||||
 | 
					    zip
 | 
				
			||||||
 | 
					    unzip
 | 
				
			||||||
 | 
					    p7zip
 | 
				
			||||||
 | 
					    xz
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    postman
 | 
				
			||||||
 | 
					    #teamspeak6-client
 | 
				
			||||||
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  security.polkit.enable = true;
 | 
				
			||||||
 | 
					  security.rtkit.enable = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  programs.ssh.startAgent = true;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,4 +1,4 @@
 | 
				
			|||||||
{ pkgs, ...}:
 | 
					{ pkgs, ... }:
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	programs.thunderbird.enable = true;
 | 
					  programs.thunderbird.enable = true;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,8 +1,8 @@
 | 
				
			|||||||
{ pkgs, ... }:
 | 
					{ pkgs, ... }:
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    services.tailscale = {
 | 
					  services.tailscale = {
 | 
				
			||||||
        enable = true;
 | 
					    enable = true;
 | 
				
			||||||
        openFirewall = true;
 | 
					    openFirewall = true;
 | 
				
			||||||
    };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,4 +1,5 @@
 | 
				
			|||||||
{pkgs, catppuccin, ...}: {
 | 
					{ pkgs, catppuccin, ... }:
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
  ##################################################################################################################
 | 
					  ##################################################################################################################
 | 
				
			||||||
  #
 | 
					  #
 | 
				
			||||||
  # All Phil's Home Manager Configuration
 | 
					  # All Phil's Home Manager Configuration
 | 
				
			||||||
@@ -10,24 +11,26 @@
 | 
				
			|||||||
    ../../home/xdg.nix # Bindings
 | 
					    ../../home/xdg.nix # Bindings
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    ../../home/hyprland # Window Manager
 | 
					    ../../home/hyprland # Window Manager
 | 
				
			||||||
#    ../../home/themes/dark
 | 
					    #    ../../home/themes/dark
 | 
				
			||||||
    ../../home/hyprland/waybar/double-monitor.nix
 | 
					    ../../home/hyprland/waybar/double-monitor.nix
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    ../../home/programs/dev # Dev Tools
 | 
					    ../../home/programs/dev # Dev Tools
 | 
				
			||||||
    
 | 
					
 | 
				
			||||||
    ../../home/programs/media/media.nix
 | 
					    ../../home/programs/media/media.nix
 | 
				
			||||||
    ../../home/programs/media/audacity.nix
 | 
					    ../../home/programs/media/audacity.nix
 | 
				
			||||||
    ../../home/programs/media/obs.nix
 | 
					    ../../home/programs/media/obs.nix
 | 
				
			||||||
#    ../../home/programs/media/spicetify.nix
 | 
					    ../../home/programs/media/spicetify.nix
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    ../../home/programs/productivity/blender.nix
 | 
					    ../../home/programs/productivity/blender.nix
 | 
				
			||||||
    ../../home/programs/productivity/slicer.nix
 | 
					    ../../home/programs/productivity/slicer.nix
 | 
				
			||||||
    ../../home/programs/productivity/okular.nix
 | 
					    ../../home/programs/productivity/okular.nix
 | 
				
			||||||
    ../../home/programs/productivity/obsidian.nix
 | 
					    ../../home/programs/productivity/obsidian.nix
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    ../../home/programs/social/element.nix 
 | 
					    ../../home/programs/social/element.nix
 | 
				
			||||||
    ../../home/programs/social/webcord.nix
 | 
					    #    ../../home/programs/social/webcord.nix
 | 
				
			||||||
 | 
					    #    ../../home/programs/social/nixcord.nix
 | 
				
			||||||
    ../../home/programs/social/zapzap.nix
 | 
					    ../../home/programs/social/zapzap.nix
 | 
				
			||||||
 | 
					    ../../home/programs/social/teamspeak.nix
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    ../../home/programs/web/firefox.nix
 | 
					    ../../home/programs/web/firefox.nix
 | 
				
			||||||
    ../../home/programs/web/chromium.nix
 | 
					    ../../home/programs/web/chromium.nix
 | 
				
			||||||
@@ -35,7 +38,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    # Games
 | 
					    # Games
 | 
				
			||||||
    ../../home/programs/games/itch.nix
 | 
					    ../../home/programs/games/itch.nix
 | 
				
			||||||
#    ../../home/programs/games/steam.nix
 | 
					    #    ../../home/programs/games/steam.nix
 | 
				
			||||||
    ../../home/programs/games/lutris.nix
 | 
					    ../../home/programs/games/lutris.nix
 | 
				
			||||||
    ../../home/programs/games/opensource.nix
 | 
					    ../../home/programs/games/opensource.nix
 | 
				
			||||||
    ../../home/programs/games/airshipper.nix
 | 
					    ../../home/programs/games/airshipper.nix
 | 
				
			||||||
@@ -44,12 +47,15 @@
 | 
				
			|||||||
  ];
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  catppuccin = {
 | 
					  catppuccin = {
 | 
				
			||||||
  	enable = true;
 | 
					    enable = true;
 | 
				
			||||||
  	flavor = "mocha";
 | 
					    flavor = "mocha";
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  programs.git = {
 | 
					  programs.git = {
 | 
				
			||||||
    userName = "DerGrumpf";
 | 
					    userName = "DerGrumpf";
 | 
				
			||||||
    userEmail = "p.keier@beyerstedt-it.de";
 | 
					    userEmail = "p.keier@beyerstedt-it.de";
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  home.file.".config/hypr/hyprland.conf".enable = false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,4 +1,4 @@
 | 
				
			|||||||
{ pkgs, ... } :
 | 
					{ pkgs, ... }:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  ##################################################################################################################
 | 
					  ##################################################################################################################
 | 
				
			||||||
@@ -7,16 +7,16 @@
 | 
				
			|||||||
  #
 | 
					  #
 | 
				
			||||||
  ##################################################################################################################
 | 
					  ##################################################################################################################
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    users.users.phil = {
 | 
					  users.users.phil = {
 | 
				
			||||||
	# authorizedKeys
 | 
					    # authorizedKeys
 | 
				
			||||||
        openssh.authorizedKeys.keys = [
 | 
					    openssh.authorizedKeys.keys = [
 | 
				
			||||||
            "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCaLHfxVylghDMYR8t4QMUpeRRqXasNABQKBEy9MmhbUXCcWiPbPMSZH8FMHON34rm2OrXP1kY/8jQxqBJDA+SqpFR2AZ4Khk9iVMaq5GHxxpn2amZUjoBa+fB29WaiE1npV5JVJV3O0ylw6GtiCnpneE6fGx2MO1vOY/7zKrUX/OK7WfwkDpeEzZgV/j/md917HrzUVeZwdeTq3WCRO8Gew6R8Xs6FRjSiGuH0dq14D4Ow5Zf1cI1jx+JfD/5vGasw8HXPu1NdxsOE+6D7/22IKqGr+S74/lAoyyD5qqk0s05lw8UY/PXBLJaNLZu9Fwx0BqTHpJEvftpmvd9wUxgR3msx9VXtKNSrqivIbDgeU+3oGzzkrGZODl7FCp4XKGmbrX85Z6lKwEGgv5jez4MLZcmT86bxB7m1wIbqSbVtfhS+GI7yPTA/kLzzFa14Im/+LTj95pb8qs2ALMwTMP1j2f9A6D3RriOFihL+68qn+YbK58KuV1R0f+CQRmlfVbk= phil@web.cyperpunk.de"
 | 
					      "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCaLHfxVylghDMYR8t4QMUpeRRqXasNABQKBEy9MmhbUXCcWiPbPMSZH8FMHON34rm2OrXP1kY/8jQxqBJDA+SqpFR2AZ4Khk9iVMaq5GHxxpn2amZUjoBa+fB29WaiE1npV5JVJV3O0ylw6GtiCnpneE6fGx2MO1vOY/7zKrUX/OK7WfwkDpeEzZgV/j/md917HrzUVeZwdeTq3WCRO8Gew6R8Xs6FRjSiGuH0dq14D4Ow5Zf1cI1jx+JfD/5vGasw8HXPu1NdxsOE+6D7/22IKqGr+S74/lAoyyD5qqk0s05lw8UY/PXBLJaNLZu9Fwx0BqTHpJEvftpmvd9wUxgR3msx9VXtKNSrqivIbDgeU+3oGzzkrGZODl7FCp4XKGmbrX85Z6lKwEGgv5jez4MLZcmT86bxB7m1wIbqSbVtfhS+GI7yPTA/kLzzFa14Im/+LTj95pb8qs2ALMwTMP1j2f9A6D3RriOFihL+68qn+YbK58KuV1R0f+CQRmlfVbk= phil@web.cyperpunk.de"
 | 
				
			||||||
        ];
 | 
					    ];
 | 
				
			||||||
        shell = pkgs.fish;
 | 
					    shell = pkgs.fish;
 | 
				
			||||||
    };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Fix underlying System POSIX bugs
 | 
					  # Fix underlying System POSIX bugs
 | 
				
			||||||
    programs.bash = {
 | 
					  programs.bash = {
 | 
				
			||||||
    interactiveShellInit = ''
 | 
					    interactiveShellInit = ''
 | 
				
			||||||
      if [[ $(${pkgs.procps}/bin/ps --no-header --pid=$PPID --format=comm) != "fish" && -z ''${BASH_EXECUTION_STRING} ]]
 | 
					      if [[ $(${pkgs.procps}/bin/ps --no-header --pid=$PPID --format=comm) != "fish" && -z ''${BASH_EXECUTION_STRING} ]]
 | 
				
			||||||
      then
 | 
					      then
 | 
				
			||||||
@@ -24,16 +24,16 @@
 | 
				
			|||||||
        exec ${pkgs.fish}/bin/fish $LOGIN_OPTION
 | 
					        exec ${pkgs.fish}/bin/fish $LOGIN_OPTION
 | 
				
			||||||
      fi
 | 
					      fi
 | 
				
			||||||
    '';
 | 
					    '';
 | 
				
			||||||
    };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    programs.fish = {
 | 
					  programs.fish = {
 | 
				
			||||||
      enable = true;
 | 
					    enable = true;
 | 
				
			||||||
      interactiveShellInit = ''
 | 
					    interactiveShellInit = ''
 | 
				
			||||||
        fish_config prompt choose disco
 | 
					      fish_config prompt choose disco
 | 
				
			||||||
        function fish_greeting
 | 
					      function fish_greeting
 | 
				
			||||||
            fastfetch
 | 
					          fastfetch
 | 
				
			||||||
        end
 | 
					      end
 | 
				
			||||||
      '';
 | 
					    '';
 | 
				
			||||||
    };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										156
									
								
								wl-copy
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										156
									
								
								wl-copy
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,156 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  description = "NixOS configuration of DerGrumpf";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # the nixConfig here only affects the flake itself, not the system configuration!
 | 
				
			||||||
 | 
					  nixConfig = {
 | 
				
			||||||
 | 
					    extra-substituters = [
 | 
				
			||||||
 | 
					      "https://nix-community.cachix.org"
 | 
				
			||||||
 | 
					    ];
 | 
				
			||||||
 | 
					    extra-trusted-public-keys = [
 | 
				
			||||||
 | 
					      "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
 | 
				
			||||||
 | 
					    ];
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  inputs = {
 | 
				
			||||||
 | 
					    nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11";
 | 
				
			||||||
 | 
					    hyprland.url = "github:hyprwm/Hyprland";
 | 
				
			||||||
 | 
					    spicetify-nix.url = "github:Gerg-L/spicetify-nix";
 | 
				
			||||||
 | 
					    nixcord.url = "github:kaylorben/nixcord";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /*
 | 
				
			||||||
 | 
					      nixvim = {
 | 
				
			||||||
 | 
					          url = "github:nix-community/nixvim/nixos-24.11";
 | 
				
			||||||
 | 
					          inputs.nixpkgs.follows = "nixpkgs";
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					    */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    catppuccin.url = "github:catppuccin/nix";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    home-manager.url = "github:nix-community/home-manager/release-24.11";
 | 
				
			||||||
 | 
					    home-manager.inputs.nixpkgs.follows = "nixpkgs";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    hyprland-plugins = {
 | 
				
			||||||
 | 
					      url = "github:hyprwm/hyprland-plugins";
 | 
				
			||||||
 | 
					      inputs.hyprland.follows = "hyprland";
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  outputs =
 | 
				
			||||||
 | 
					    inputs@{
 | 
				
			||||||
 | 
					      self,
 | 
				
			||||||
 | 
					      nixpkgs,
 | 
				
			||||||
 | 
					      home-manager,
 | 
				
			||||||
 | 
					      catppuccin,
 | 
				
			||||||
 | 
					      ...
 | 
				
			||||||
 | 
					    }:
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      packages.x86_64-linux.default = self.nixosConfigurations.iso.config.system.build.isoImage;
 | 
				
			||||||
 | 
					      nixosConfigurations = {
 | 
				
			||||||
 | 
					        iso = nixpkgs.lib.nixosSystem {
 | 
				
			||||||
 | 
					          system = "x86_64-linux";
 | 
				
			||||||
 | 
					          modules = [
 | 
				
			||||||
 | 
					            (
 | 
				
			||||||
 | 
					              { pkgs, modulesPath, ... }:
 | 
				
			||||||
 | 
					              {
 | 
				
			||||||
 | 
					                imports = [ (modulesPath + "/installer/cd-dvd/installation-cd-minimal.nix") ];
 | 
				
			||||||
 | 
					                environment.systemPackages = with pkgs; [
 | 
				
			||||||
 | 
					                  neovim
 | 
				
			||||||
 | 
					                  git
 | 
				
			||||||
 | 
					                  wget
 | 
				
			||||||
 | 
					                  curl
 | 
				
			||||||
 | 
					                ];
 | 
				
			||||||
 | 
					                nix.settings.experimental-features = [
 | 
				
			||||||
 | 
					                  "nix-command"
 | 
				
			||||||
 | 
					                  "flakes"
 | 
				
			||||||
 | 
					                ];
 | 
				
			||||||
 | 
					              }
 | 
				
			||||||
 | 
					            )
 | 
				
			||||||
 | 
					          ];
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        m920q =
 | 
				
			||||||
 | 
					          let
 | 
				
			||||||
 | 
					            username = "phil";
 | 
				
			||||||
 | 
					            specialArgs = {
 | 
				
			||||||
 | 
					              inherit username;
 | 
				
			||||||
 | 
					              inherit inputs;
 | 
				
			||||||
 | 
					            };
 | 
				
			||||||
 | 
					          in
 | 
				
			||||||
 | 
					          nixpkgs.lib.nixosSystem {
 | 
				
			||||||
 | 
					            inherit specialArgs;
 | 
				
			||||||
 | 
					            system = "x86_64-linux";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            modules = [
 | 
				
			||||||
 | 
					              ./hosts/m920q
 | 
				
			||||||
 | 
					              ./users/${username}/nixos.nix
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					              home-manager.nixosModules.home-manager
 | 
				
			||||||
 | 
					              {
 | 
				
			||||||
 | 
					                home-manager.useGlobalPkgs = true;
 | 
				
			||||||
 | 
					                home-manager.useUserPackages = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                home-manager.backupFileExtension = "backup";
 | 
				
			||||||
 | 
					                home-manager.extraSpecialArgs = inputs // specialArgs;
 | 
				
			||||||
 | 
					                home-manager.users.${username} = import ./users/${username}/home.nix;
 | 
				
			||||||
 | 
					                home-manager.sharedModules = [
 | 
				
			||||||
 | 
					                  inputs.nixcord.homeModules.nixcord
 | 
				
			||||||
 | 
					                ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                nix.settings.experimental-features = [
 | 
				
			||||||
 | 
					                  "nix-command"
 | 
				
			||||||
 | 
					                  "flakes"
 | 
				
			||||||
 | 
					                ];
 | 
				
			||||||
 | 
					              }
 | 
				
			||||||
 | 
					            ];
 | 
				
			||||||
 | 
					          };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        qemu =
 | 
				
			||||||
 | 
					          let
 | 
				
			||||||
 | 
					            username = "phil";
 | 
				
			||||||
 | 
					            specialArgs = { inherit username; };
 | 
				
			||||||
 | 
					          in
 | 
				
			||||||
 | 
					          nixpkgs.lib.nixosSystem {
 | 
				
			||||||
 | 
					            inherit specialArgs;
 | 
				
			||||||
 | 
					            system = "x86_64-linux";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            modules = [
 | 
				
			||||||
 | 
					              ./hosts/qemu
 | 
				
			||||||
 | 
					              ./users/${username}/nixos.nix
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					              home-manager.nixosModules.home-manager
 | 
				
			||||||
 | 
					              {
 | 
				
			||||||
 | 
					                home-manager.useGlobalPkgs = true;
 | 
				
			||||||
 | 
					                home-manager.useUserPackages = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                home-manager.extraSpecialArgs = inputs // specialArgs;
 | 
				
			||||||
 | 
					                home-manager.users.${username} = import ./users/${username}/home.nix;
 | 
				
			||||||
 | 
					              }
 | 
				
			||||||
 | 
					            ];
 | 
				
			||||||
 | 
					          };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        hp15-n028sg =
 | 
				
			||||||
 | 
					          let
 | 
				
			||||||
 | 
					            username = "phil";
 | 
				
			||||||
 | 
					            specialArgs = { inherit username; };
 | 
				
			||||||
 | 
					          in
 | 
				
			||||||
 | 
					          nixpkgs.lib.nixosSystem {
 | 
				
			||||||
 | 
					            inherit specialArgs;
 | 
				
			||||||
 | 
					            system = "x86_64-linux";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            modules = [
 | 
				
			||||||
 | 
					              ./hosts/hp15-n028sg
 | 
				
			||||||
 | 
					              ./users/${username}/nixos.nix
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					              home-manager.nixosModules.home-manager
 | 
				
			||||||
 | 
					              {
 | 
				
			||||||
 | 
					                home-manager.useGlobalPkgs = true;
 | 
				
			||||||
 | 
					                home-manager.useUserPackages = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                home-manager.extraSpecialArgs = inputs // specialArgs;
 | 
				
			||||||
 | 
					                home-manager.users.${username} = import ./users/${username}/home.nix;
 | 
				
			||||||
 | 
					              }
 | 
				
			||||||
 | 
					            ];
 | 
				
			||||||
 | 
					          };
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Reference in New Issue
	
	Block a user