Set Styling for rofi
This commit is contained in:
		
							
								
								
									
										90
									
								
								flake.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										90
									
								
								flake.lock
									
									
									
										generated
									
									
									
								
							@@ -67,6 +67,38 @@
 | 
			
		||||
        "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": {
 | 
			
		||||
      "inputs": {
 | 
			
		||||
        "nixpkgs": [
 | 
			
		||||
@@ -399,6 +431,26 @@
 | 
			
		||||
        "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": {
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1743583204,
 | 
			
		||||
@@ -415,6 +467,21 @@
 | 
			
		||||
        "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": {
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1742669843,
 | 
			
		||||
@@ -432,6 +499,22 @@
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "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": {
 | 
			
		||||
        "lastModified": 1743576891,
 | 
			
		||||
        "narHash": "sha256-vXiKURtntURybE6FMNFAVpRPr8+e8KoLPrYs9TGuAKc=",
 | 
			
		||||
@@ -447,7 +530,7 @@
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "nixpkgs_4": {
 | 
			
		||||
    "nixpkgs_5": {
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1751984180,
 | 
			
		||||
        "narHash": "sha256-LwWRsENAZJKUdD3SpLluwDmdXY9F45ZEgCb0X+xgOL0=",
 | 
			
		||||
@@ -492,13 +575,14 @@
 | 
			
		||||
        "home-manager": "home-manager",
 | 
			
		||||
        "hyprland": "hyprland",
 | 
			
		||||
        "hyprland-plugins": "hyprland-plugins",
 | 
			
		||||
        "nixpkgs": "nixpkgs_3",
 | 
			
		||||
        "nixcord": "nixcord",
 | 
			
		||||
        "nixpkgs": "nixpkgs_4",
 | 
			
		||||
        "spicetify-nix": "spicetify-nix"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "spicetify-nix": {
 | 
			
		||||
      "inputs": {
 | 
			
		||||
        "nixpkgs": "nixpkgs_4",
 | 
			
		||||
        "nixpkgs": "nixpkgs_5",
 | 
			
		||||
        "systems": "systems_2"
 | 
			
		||||
      },
 | 
			
		||||
      "locked": {
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										226
									
								
								flake.nix
									
									
									
									
									
								
							
							
						
						
									
										226
									
								
								flake.nix
									
									
									
									
									
								
							@@ -1,17 +1,8 @@
 | 
			
		||||
{
 | 
			
		||||
  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!
 | 
			
		||||
  nixConfig = {
 | 
			
		||||
    # substituers will be appended to the default substituters when fetching packages
 | 
			
		||||
    # nix com    extra-substituters = [munity's cache server
 | 
			
		||||
    extra-substituters = [
 | 
			
		||||
      "https://nix-community.cachix.org"
 | 
			
		||||
    ];
 | 
			
		||||
@@ -24,11 +15,14 @@
 | 
			
		||||
    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";
 | 
			
		||||
    };*/
 | 
			
		||||
    /*
 | 
			
		||||
      nixvim = {
 | 
			
		||||
          url = "github:nix-community/nixvim/nixos-24.11";
 | 
			
		||||
          inputs.nixpkgs.follows = "nixpkgs";
 | 
			
		||||
      };
 | 
			
		||||
    */
 | 
			
		||||
 | 
			
		||||
    catppuccin.url = "github:catppuccin/nix";
 | 
			
		||||
 | 
			
		||||
@@ -36,104 +30,126 @@
 | 
			
		||||
    home-manager.inputs.nixpkgs.follows = "nixpkgs";
 | 
			
		||||
 | 
			
		||||
    hyprland-plugins = {
 | 
			
		||||
        url = "github:hyprwm/hyprland-plugins";
 | 
			
		||||
        inputs.hyprland.follows = "hyprland";
 | 
			
		||||
      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, ... }: {
 | 
			
		||||
  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
 | 
			
		||||
                  neovim
 | 
			
		||||
                  git
 | 
			
		||||
                  wget
 | 
			
		||||
                  curl
 | 
			
		||||
                ];
 | 
			
		||||
                nix.settings.experimental-features = ["nix-command" "flakes"];
 | 
			
		||||
             })
 | 
			
		||||
        ];
 | 
			
		||||
                nix.settings.experimental-features = [
 | 
			
		||||
                  "nix-command"
 | 
			
		||||
                  "flakes"
 | 
			
		||||
                ];
 | 
			
		||||
              }
 | 
			
		||||
            )
 | 
			
		||||
          ];
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        m920q =
 | 
			
		||||
          let
 | 
			
		||||
            username = "phil";
 | 
			
		||||
            specialArgs = {
 | 
			
		||||
              inherit inputs 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.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;
 | 
			
		||||
              }
 | 
			
		||||
            ];
 | 
			
		||||
          };
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
      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
 | 
			
		||||
        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;
 | 
			
		||||
            }
 | 
			
		||||
          ];
 | 
			
		||||
        }; 
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,5 @@
 | 
			
		||||
{username, ...}: {
 | 
			
		||||
{ username, ... }:
 | 
			
		||||
{
 | 
			
		||||
  # Home Manager needs a bit of information about you and the
 | 
			
		||||
  # paths it should manage.
 | 
			
		||||
  home = {
 | 
			
		||||
 
 | 
			
		||||
@@ -1,8 +1,8 @@
 | 
			
		||||
{ pkgs, ... }:
 | 
			
		||||
{
 | 
			
		||||
    home.packages = with pkgs; [
 | 
			
		||||
        kdePackages.dolphin
 | 
			
		||||
        libsForQt5.kio-extras
 | 
			
		||||
        kio-fuse
 | 
			
		||||
    ];
 | 
			
		||||
  home.packages = with pkgs; [
 | 
			
		||||
    kdePackages.dolphin
 | 
			
		||||
    libsForQt5.kio-extras
 | 
			
		||||
    kio-fuse
 | 
			
		||||
  ];
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,11 +1,11 @@
 | 
			
		||||
{ pkgs, ... }:
 | 
			
		||||
{
 | 
			
		||||
	home.packages = with pkgs; [
 | 
			
		||||
		krusader
 | 
			
		||||
		krename
 | 
			
		||||
		kdiff3
 | 
			
		||||
#		kdePackages.kompare
 | 
			
		||||
		xxdiff
 | 
			
		||||
	];
 | 
			
		||||
  home.packages = with pkgs; [
 | 
			
		||||
    krusader
 | 
			
		||||
    krename
 | 
			
		||||
    kdiff3
 | 
			
		||||
    #		kdePackages.kompare
 | 
			
		||||
    xxdiff
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
{ pkgs, ... }:
 | 
			
		||||
{
 | 
			
		||||
	progams.spacefm.enable = true;
 | 
			
		||||
  progams.spacefm.enable = true;
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,4 @@
 | 
			
		||||
{ pkgs, ... }:
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
    
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,8 +1,48 @@
 | 
			
		||||
{ pkgs, ... }:
 | 
			
		||||
{
 | 
			
		||||
	programs.alacritty = {
 | 
			
		||||
		enable = true;
 | 
			
		||||
  programs.alacritty = {
 | 
			
		||||
    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, ...}: {
 | 
			
		||||
    imports = [
 | 
			
		||||
        ./kitty.nix # Terminal
 | 
			
		||||
	    ./alacritty.nix
 | 
			
		||||
        ./hyprland.nix
 | 
			
		||||
        ./hypridle.nix
 | 
			
		||||
        ./hyprlock.nix
 | 
			
		||||
        ./hyprpaper.nix
 | 
			
		||||
        ./rofi # App Launcher
 | 
			
		||||
        ./mako.nix # Notifyer
 | 
			
		||||
    ];
 | 
			
		||||
{ pkgs, ... }:
 | 
			
		||||
{
 | 
			
		||||
  imports = [
 | 
			
		||||
    ./kitty.nix # Terminal
 | 
			
		||||
    ./alacritty.nix
 | 
			
		||||
    ./hyprland.nix
 | 
			
		||||
    ./hypridle.nix
 | 
			
		||||
    ./hyprlock.nix
 | 
			
		||||
    ./hyprpaper.nix
 | 
			
		||||
    ./rofi # App Launcher
 | 
			
		||||
    ./mako.nix # Notifyer
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,34 +1,35 @@
 | 
			
		||||
{ pkgs, ... }:
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
    # Hyprland and related packages
 | 
			
		||||
    home.packages = with pkgs; [
 | 
			
		||||
        hypridle
 | 
			
		||||
    ];
 | 
			
		||||
  # Hyprland and related packages
 | 
			
		||||
  home.packages = with pkgs; [
 | 
			
		||||
    hypridle
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
    # Hypridle configuration
 | 
			
		||||
    services.hypridle = {
 | 
			
		||||
        enable = true;
 | 
			
		||||
        settings = {
 | 
			
		||||
            general = {
 | 
			
		||||
                after_sleep_cmd = "hyprctl dispatch dpms on";
 | 
			
		||||
                ignore_dbus_inhibit = false;
 | 
			
		||||
                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
 | 
			
		||||
="$HOME/.config/hypr/avatar.png" --app-name="Hyprlock"'';
 | 
			
		||||
            };
 | 
			
		||||
  # Hypridle configuration
 | 
			
		||||
  services.hypridle = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    settings = {
 | 
			
		||||
      general = {
 | 
			
		||||
        after_sleep_cmd = "hyprctl dispatch dpms on";
 | 
			
		||||
        ignore_dbus_inhibit = false;
 | 
			
		||||
        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
 | 
			
		||||
          ="$HOME/.config/hypr/avatar.png" --app-name="Hyprlock"'';
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
            listener = [
 | 
			
		||||
                {
 | 
			
		||||
                    timeout = 300;
 | 
			
		||||
                    on-timeout = "hyprlock";
 | 
			
		||||
                }
 | 
			
		||||
                {
 | 
			
		||||
                    timeout = 600;
 | 
			
		||||
                    on-timeout = "hyprctl dispatch dpms off";
 | 
			
		||||
                    on-resume = "hyprctl dispatch dpms on";
 | 
			
		||||
                }
 | 
			
		||||
            ];
 | 
			
		||||
        };
 | 
			
		||||
      listener = [
 | 
			
		||||
        {
 | 
			
		||||
          timeout = 300;
 | 
			
		||||
          on-timeout = "hyprlock";
 | 
			
		||||
        }
 | 
			
		||||
        {
 | 
			
		||||
          timeout = 600;
 | 
			
		||||
          on-timeout = "hyprctl dispatch dpms off";
 | 
			
		||||
          on-resume = "hyprctl dispatch dpms on";
 | 
			
		||||
        }
 | 
			
		||||
      ];
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,281 +1,280 @@
 | 
			
		||||
{ inputs, pkgs, ...}:
 | 
			
		||||
{ pkgs, ... }:
 | 
			
		||||
let
 | 
			
		||||
    package = pkgs.hyprland;
 | 
			
		||||
    super = "SUPER";
 | 
			
		||||
    terminal = "kitty";
 | 
			
		||||
    fileManager = "spacefm";
 | 
			
		||||
    theme = "-theme $HOME/.config/rofi/catppuccin-default.rasi";
 | 
			
		||||
    menu = "rofi -show drun ${theme}";
 | 
			
		||||
    filebrowser = "rofi -show filebrowser ${theme}";
 | 
			
		||||
    power = "rofi -show p -modi p:rofi-power-menu";
 | 
			
		||||
  package = pkgs.hyprland;
 | 
			
		||||
  super = "SUPER";
 | 
			
		||||
  terminal = "kitty";
 | 
			
		||||
  fileManager = "yazi";
 | 
			
		||||
  theme = "-theme $HOME/.config/rofi/custom.rasi";
 | 
			
		||||
  menu = "rofi -show drun ${theme}";
 | 
			
		||||
  filebrowser = "rofi -show filebrowser ${theme}";
 | 
			
		||||
  power = "rofi -show p -modi p:rofi-power-menu";
 | 
			
		||||
in
 | 
			
		||||
{
 | 
			
		||||
    home.packages = with pkgs; [
 | 
			
		||||
        grim
 | 
			
		||||
        slurp
 | 
			
		||||
        wl-clipboard
 | 
			
		||||
  home.packages = with pkgs; [
 | 
			
		||||
    grim
 | 
			
		||||
    slurp
 | 
			
		||||
    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" = {
 | 
			
		||||
        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"
 | 
			
		||||
    env = [
 | 
			
		||||
      "NIXOS_OZONE_WL,1"
 | 
			
		||||
      "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"
 | 
			
		||||
    ];
 | 
			
		||||
 | 
			
		||||
    wayland.windowManager.hyprland = {
 | 
			
		||||
        inherit package;
 | 
			
		||||
        enable = true;
 | 
			
		||||
    monitor = [
 | 
			
		||||
      "DP-1, 1920x1080@60, 1920x0, 1"
 | 
			
		||||
      "HDMI-A-2, 1920x1080@60, 0x0, 1"
 | 
			
		||||
    ];
 | 
			
		||||
 | 
			
		||||
        xwayland.enable = true;
 | 
			
		||||
    input = {
 | 
			
		||||
      kb_layout = "de";
 | 
			
		||||
      repeat_rate = 50;
 | 
			
		||||
      repeat_delay = 300;
 | 
			
		||||
 | 
			
		||||
        systemd = {
 | 
			
		||||
            enable = true;
 | 
			
		||||
            variables = [ "--all" ];
 | 
			
		||||
            enableXdgAutostart = true;
 | 
			
		||||
        };
 | 
			
		||||
      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;
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
        plugins = [
 | 
			
		||||
            #inputs.hyprland-plugins.packages.${pkgs.stdenv.hostPlatform.system}.hyprbars
 | 
			
		||||
        ];
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    wayland.windowManager.hyprland.settings = {
 | 
			
		||||
	source = [
 | 
			
		||||
		"~/.config/hypr/mocha.conf"
 | 
			
		||||
	];
 | 
			
		||||
    general = {
 | 
			
		||||
      # See https://wiki.hyprland.org/Configuring/Variables/ for more
 | 
			
		||||
      gaps_in = 8;
 | 
			
		||||
      gaps_out = 16;
 | 
			
		||||
      border_size = 4;
 | 
			
		||||
 | 
			
		||||
        env = [
 | 
			
		||||
            "NIXOS_OZONE_WL,1"
 | 
			
		||||
            "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"
 | 
			
		||||
        ];
 | 
			
		||||
      "col.active_border" = "$green";
 | 
			
		||||
      "col.inactive_border" = "$red";
 | 
			
		||||
 | 
			
		||||
        monitor = [
 | 
			
		||||
            "DP-1, 1920x1080@60, 1920x0, 1"  
 | 
			
		||||
            "HDMI-A-2, 1920x1080@60, 0x0, 1"
 | 
			
		||||
        ];
 | 
			
		||||
      layout = "dwindle";
 | 
			
		||||
 | 
			
		||||
        input = {
 | 
			
		||||
            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;
 | 
			
		||||
            };
 | 
			
		||||
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        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"
 | 
			
		||||
        ];
 | 
			
		||||
      # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
 | 
			
		||||
      allow_tearing = false;
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    # 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;
 | 
			
		||||
    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
 | 
			
		||||
  # 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, ... }:
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
    # Hyprland and related packages
 | 
			
		||||
    home.packages = with pkgs; [
 | 
			
		||||
        hyprlock
 | 
			
		||||
    ];
 | 
			
		||||
  # Hyprland and related packages
 | 
			
		||||
  home.packages = with pkgs; [
 | 
			
		||||
    hyprlock
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
    catppuccin.hyprlock.enable = false;
 | 
			
		||||
  catppuccin.hyprlock.enable = false;
 | 
			
		||||
 | 
			
		||||
    # Hyprlock configuration
 | 
			
		||||
    programs.hyprlock = {
 | 
			
		||||
    	enable = true;
 | 
			
		||||
	settings = {
 | 
			
		||||
  # Hyprlock configuration
 | 
			
		||||
  programs.hyprlock = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    settings = {
 | 
			
		||||
 | 
			
		||||
		source = "$HOME/.config/hypr/mocha.conf";
 | 
			
		||||
      source = "$HOME/.config/hypr/mocha.conf";
 | 
			
		||||
 | 
			
		||||
		"$accent" = "$mauve";
 | 
			
		||||
		"$accentAlpha" = "$mauveAlpha";
 | 
			
		||||
		"$font" = "JetBrainsMono Nerd Font";
 | 
			
		||||
      "$accent" = "$mauve";
 | 
			
		||||
      "$accentAlpha" = "$mauveAlpha";
 | 
			
		||||
      "$font" = "JetBrainsMono Nerd Font";
 | 
			
		||||
 | 
			
		||||
		general = {
 | 
			
		||||
			disable_loading_bar = true;
 | 
			
		||||
			hide_cursor = true;
 | 
			
		||||
		};
 | 
			
		||||
      general = {
 | 
			
		||||
        disable_loading_bar = true;
 | 
			
		||||
        hide_cursor = true;
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
		background = [
 | 
			
		||||
			{
 | 
			
		||||
				path="~/Pictures/Wallpapers/lucy_with_cat.png";
 | 
			
		||||
				blur_passes = 0;
 | 
			
		||||
				blur_size = 0;
 | 
			
		||||
			}
 | 
			
		||||
		];
 | 
			
		||||
      background = [
 | 
			
		||||
        {
 | 
			
		||||
          path = "~/Pictures/Wallpapers/lucy_with_cat.png";
 | 
			
		||||
          blur_passes = 0;
 | 
			
		||||
          blur_size = 0;
 | 
			
		||||
        }
 | 
			
		||||
      ];
 | 
			
		||||
 | 
			
		||||
		label = [
 | 
			
		||||
			# TIME
 | 
			
		||||
			{
 | 
			
		||||
			  monitor = "";
 | 
			
		||||
			  text = "$TIME";
 | 
			
		||||
			  color = "$text";
 | 
			
		||||
			  font_size = 90;
 | 
			
		||||
			  font_family = "$font";
 | 
			
		||||
			  position = "-30, 0";
 | 
			
		||||
			  halign = "right";
 | 
			
		||||
			  valign = "top";
 | 
			
		||||
			}
 | 
			
		||||
      label = [
 | 
			
		||||
        # TIME
 | 
			
		||||
        {
 | 
			
		||||
          monitor = "";
 | 
			
		||||
          text = "$TIME";
 | 
			
		||||
          color = "$text";
 | 
			
		||||
          font_size = 90;
 | 
			
		||||
          font_family = "$font";
 | 
			
		||||
          position = "-30, 0";
 | 
			
		||||
          halign = "right";
 | 
			
		||||
          valign = "top";
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
			# DATE
 | 
			
		||||
			{
 | 
			
		||||
			  monitor = "";
 | 
			
		||||
			  text = ''cmd[update:43200000] date +"%A, %d %B %Y"'';
 | 
			
		||||
			  color = "$text";
 | 
			
		||||
			  font_size = 25;
 | 
			
		||||
			  font_family = "$font";
 | 
			
		||||
			  position = "-30, -150";
 | 
			
		||||
			  halign = "right";
 | 
			
		||||
			  valign = "top";
 | 
			
		||||
			}
 | 
			
		||||
		];
 | 
			
		||||
        # DATE
 | 
			
		||||
        {
 | 
			
		||||
          monitor = "";
 | 
			
		||||
          text = ''cmd[update:43200000] date +"%A, %d %B %Y"'';
 | 
			
		||||
          color = "$text";
 | 
			
		||||
          font_size = 25;
 | 
			
		||||
          font_family = "$font";
 | 
			
		||||
          position = "-30, -150";
 | 
			
		||||
          halign = "right";
 | 
			
		||||
          valign = "top";
 | 
			
		||||
        }
 | 
			
		||||
      ];
 | 
			
		||||
 | 
			
		||||
		# INPUT FIELD
 | 
			
		||||
		input-field = {
 | 
			
		||||
		  monitor = "";
 | 
			
		||||
		  size = "300, 60";
 | 
			
		||||
		  outline_thickness = 4;
 | 
			
		||||
		  dots_size = 0.2;
 | 
			
		||||
		  dots_spacing = 0.2;
 | 
			
		||||
		  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";
 | 
			
		||||
		};
 | 
			
		||||
      # INPUT FIELD
 | 
			
		||||
      input-field = {
 | 
			
		||||
        monitor = "";
 | 
			
		||||
        size = "300, 60";
 | 
			
		||||
        outline_thickness = 4;
 | 
			
		||||
        dots_size = 0.2;
 | 
			
		||||
        dots_spacing = 0.2;
 | 
			
		||||
        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";
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
      image = {
 | 
			
		||||
        monitor = "";
 | 
			
		||||
        path = "~/.config/hypr/avatar.png";
 | 
			
		||||
        size = 300;
 | 
			
		||||
        border_color = "$teal";
 | 
			
		||||
        position = "0, 75";
 | 
			
		||||
        halign = "center";
 | 
			
		||||
        valign = "center";
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,24 +1,22 @@
 | 
			
		||||
{ pkgs, ... }:
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
    home.packages = with pkgs; [
 | 
			
		||||
        hyprpaper
 | 
			
		||||
    ];
 | 
			
		||||
  home.packages = with pkgs; [
 | 
			
		||||
    hyprpaper
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
    home.file = {
 | 
			
		||||
        "Pictures/Wallpapers" = {
 | 
			
		||||
            source = ../../wallpapers;
 | 
			
		||||
            recursive = true;
 | 
			
		||||
        };
 | 
			
		||||
  home.file = {
 | 
			
		||||
    "Pictures/Wallpapers" = {
 | 
			
		||||
      source = ../../wallpapers;
 | 
			
		||||
      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 {
 | 
			
		||||
      enable = true;
 | 
			
		||||
      settings = {
 | 
			
		||||
      	themeFile = "Catppuccin-Mocha";
 | 
			
		||||
        confirm_os_window_close = 0;
 | 
			
		||||
        dynamic_background_opacity = true;
 | 
			
		||||
        enable_audio_bell = false;
 | 
			
		||||
        mouse_hide_wait = "-1.0";
 | 
			
		||||
        window_padding_width = 10;
 | 
			
		||||
        background_opacity = "0.5";
 | 
			
		||||
        background_blur = 5;
 | 
			
		||||
	tab_bar_min_tabs = 1;
 | 
			
		||||
	tab_bar_edge = "bottom";
 | 
			
		||||
	tab_bar_style = "powerline";
 | 
			
		||||
	tab_powerline_style = "slanted";
 | 
			
		||||
	tab_title_template = "{title}{' :{}:'.format(num_windows) if num_windows > 1 else ''}";
 | 
			
		||||
        symbol_map = let
 | 
			
		||||
  programs.kitty = lib.mkForce {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    settings = {
 | 
			
		||||
      themeFile = "Catppuccin-Mocha";
 | 
			
		||||
      confirm_os_window_close = 0;
 | 
			
		||||
      dynamic_background_opacity = true;
 | 
			
		||||
      enable_audio_bell = false;
 | 
			
		||||
      mouse_hide_wait = "-1.0";
 | 
			
		||||
      window_padding_width = 10;
 | 
			
		||||
      background_opacity = "0.8";
 | 
			
		||||
      background_blur = 5;
 | 
			
		||||
      tab_bar_min_tabs = 1;
 | 
			
		||||
      tab_bar_edge = "bottom";
 | 
			
		||||
      tab_bar_style = "powerline";
 | 
			
		||||
      tab_powerline_style = "slanted";
 | 
			
		||||
      tab_title_template = "{title}{' :{}:'.format(num_windows) if num_windows > 1 else ''}";
 | 
			
		||||
      symbol_map =
 | 
			
		||||
        let
 | 
			
		||||
          mappings = [
 | 
			
		||||
            "U+23FB-U+23FE"
 | 
			
		||||
            "U+2B58"
 | 
			
		||||
@@ -38,7 +39,7 @@
 | 
			
		||||
            "U+E5FA-U+E62B"
 | 
			
		||||
          ];
 | 
			
		||||
        in
 | 
			
		||||
          (builtins.concatStringsSep "," mappings) + " Symbols Nerd Font";
 | 
			
		||||
      };
 | 
			
		||||
        (builtins.concatStringsSep "," mappings) + " Symbols Nerd Font";
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,17 +1,16 @@
 | 
			
		||||
{ pkgs, ... }:
 | 
			
		||||
{
 | 
			
		||||
    services.mako = {
 | 
			
		||||
        enable = true;
 | 
			
		||||
        font = "FiraCodeNerdFontPropo 12";
 | 
			
		||||
	borderSize = 4;
 | 
			
		||||
	borderRadius = 8;
 | 
			
		||||
        defaultTimeout = 5000;
 | 
			
		||||
  services.mako = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    font = "FiraCodeNerdFontPropo 12";
 | 
			
		||||
    borderSize = 4;
 | 
			
		||||
    borderRadius = 8;
 | 
			
		||||
    defaultTimeout = 5000;
 | 
			
		||||
 | 
			
		||||
        extraConfig = ''
 | 
			
		||||
[app-name=Spotify]
 | 
			
		||||
border-color=#a6e3a1
 | 
			
		||||
        '';
 | 
			
		||||
    extraConfig = ''
 | 
			
		||||
      [app-name=Spotify]
 | 
			
		||||
      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,
 | 
			
		||||
  config,
 | 
			
		||||
  ...
 | 
			
		||||
}: {
 | 
			
		||||
    home.packages = with pkgs; [
 | 
			
		||||
        rofi-power-menu
 | 
			
		||||
    ];
 | 
			
		||||
}:
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
    programs.rofi = {
 | 
			
		||||
        enable = true;
 | 
			
		||||
        cycle = false;
 | 
			
		||||
        package = pkgs.rofi-wayland;
 | 
			
		||||
    };
 | 
			
		||||
  home.packages = with pkgs; [
 | 
			
		||||
    rofi-power-menu
 | 
			
		||||
    rofi-calc
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
    home.file.".config/rofi" = {
 | 
			
		||||
        source = ./configs;
 | 
			
		||||
        # copy the scripts directory recursively
 | 
			
		||||
        recursive = true;
 | 
			
		||||
    };
 | 
			
		||||
  programs.rofi = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    cycle = false;
 | 
			
		||||
    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,
 | 
			
		||||
  config,
 | 
			
		||||
  ...
 | 
			
		||||
}: {
 | 
			
		||||
    programs.waybar = {
 | 
			
		||||
        enable = true;
 | 
			
		||||
        package = pkgs.waybar;
 | 
			
		||||
        /*settings = {
 | 
			
		||||
            mainBar = {
 | 
			
		||||
                layer = "top";
 | 
			
		||||
                position = "top";
 | 
			
		||||
                height = 30;
 | 
			
		||||
                output = [
 | 
			
		||||
                    "eDP-1"
 | 
			
		||||
                    "DP-1"
 | 
			
		||||
                    "HDMI-A-1"
 | 
			
		||||
                    "Virtual-1"
 | 
			
		||||
                ];
 | 
			
		||||
}:
 | 
			
		||||
{
 | 
			
		||||
  programs.waybar = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    package = pkgs.waybar;
 | 
			
		||||
    /*
 | 
			
		||||
      settings = {
 | 
			
		||||
          mainBar = {
 | 
			
		||||
              layer = "top";
 | 
			
		||||
              position = "top";
 | 
			
		||||
              height = 30;
 | 
			
		||||
              output = [
 | 
			
		||||
                  "eDP-1"
 | 
			
		||||
                  "DP-1"
 | 
			
		||||
                  "HDMI-A-1"
 | 
			
		||||
                  "Virtual-1"
 | 
			
		||||
              ];
 | 
			
		||||
 | 
			
		||||
                modules-left = [ "sway/workspaces" "sway/mode" "wlr/taskbar" ];
 | 
			
		||||
                modules-center = [ "sway/window" "custom/hello-from-waybar" ];
 | 
			
		||||
                modules-right = [ "mpd" "custom/mymodule#with-css-id" "temperature" ];
 | 
			
		||||
              modules-left = [ "sway/workspaces" "sway/mode" "wlr/taskbar" ];
 | 
			
		||||
              modules-center = [ "sway/window" "custom/hello-from-waybar" ];
 | 
			
		||||
              modules-right = [ "mpd" "custom/mymodule#with-css-id" "temperature" ];
 | 
			
		||||
 | 
			
		||||
                "sway/workspaces" = {
 | 
			
		||||
                    disable-scroll = true;
 | 
			
		||||
                    all-outputs = true;
 | 
			
		||||
                };
 | 
			
		||||
                "custom/hello-from-waybar" = {
 | 
			
		||||
                    format = "hello {}";
 | 
			
		||||
                    max-length = 40;
 | 
			
		||||
                    interval = "once";
 | 
			
		||||
                    exec = pkgs.writeShellScript "hello-from-waybar" ''
 | 
			
		||||
                        echo "from within waybar $USER"
 | 
			
		||||
                    '';
 | 
			
		||||
                };
 | 
			
		||||
            };
 | 
			
		||||
        };*/
 | 
			
		||||
    };
 | 
			
		||||
              "sway/workspaces" = {
 | 
			
		||||
                  disable-scroll = true;
 | 
			
		||||
                  all-outputs = true;
 | 
			
		||||
              };
 | 
			
		||||
              "custom/hello-from-waybar" = {
 | 
			
		||||
                  format = "hello {}";
 | 
			
		||||
                  max-length = 40;
 | 
			
		||||
                  interval = "once";
 | 
			
		||||
                  exec = pkgs.writeShellScript "hello-from-waybar" ''
 | 
			
		||||
                      echo "from within waybar $USER"
 | 
			
		||||
                  '';
 | 
			
		||||
              };
 | 
			
		||||
          };
 | 
			
		||||
      };
 | 
			
		||||
    */
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
    home.file.".config/waybar" = {
 | 
			
		||||
        source = ./configs;
 | 
			
		||||
        # copy the scripts directory recursively
 | 
			
		||||
        recursive = true;
 | 
			
		||||
    };
 | 
			
		||||
  home.file.".config/waybar" = {
 | 
			
		||||
    source = ./configs;
 | 
			
		||||
    # copy the scripts directory recursively
 | 
			
		||||
    recursive = true;
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -2,171 +2,200 @@
 | 
			
		||||
  pkgs,
 | 
			
		||||
  config,
 | 
			
		||||
  ...
 | 
			
		||||
} : {
 | 
			
		||||
    programs.waybar = {
 | 
			
		||||
        enable = true;
 | 
			
		||||
        package = pkgs.waybar;
 | 
			
		||||
        settings = {
 | 
			
		||||
            mainBar = {
 | 
			
		||||
                layer = "top";
 | 
			
		||||
                position = "top";
 | 
			
		||||
                height = 30;
 | 
			
		||||
                output = [ "DP-1" ];
 | 
			
		||||
}:
 | 
			
		||||
{
 | 
			
		||||
  programs.waybar = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    package = pkgs.waybar;
 | 
			
		||||
    settings = {
 | 
			
		||||
      mainBar = {
 | 
			
		||||
        layer = "top";
 | 
			
		||||
        position = "top";
 | 
			
		||||
        height = 30;
 | 
			
		||||
        output = [ "DP-1" ];
 | 
			
		||||
 | 
			
		||||
                modules-left = [ 
 | 
			
		||||
                    "hyprland/workspaces"
 | 
			
		||||
                    "mpris"
 | 
			
		||||
                ];
 | 
			
		||||
        modules-left = [
 | 
			
		||||
          "hyprland/workspaces"
 | 
			
		||||
          "mpris"
 | 
			
		||||
        ];
 | 
			
		||||
 | 
			
		||||
                modules-center = [];
 | 
			
		||||
        modules-center = [ ];
 | 
			
		||||
 | 
			
		||||
                modules-right = [
 | 
			
		||||
                    "network"
 | 
			
		||||
                    "memory"
 | 
			
		||||
                    "cpu"
 | 
			
		||||
                    "clock"
 | 
			
		||||
                ];
 | 
			
		||||
        modules-right = [
 | 
			
		||||
          "network"
 | 
			
		||||
          "memory"
 | 
			
		||||
          "cpu"
 | 
			
		||||
          "clock"
 | 
			
		||||
        ];
 | 
			
		||||
 | 
			
		||||
                # Widgets
 | 
			
		||||
                "sway/workspaces" = {
 | 
			
		||||
                    disable-scroll = true;
 | 
			
		||||
                    all-outputs = true;
 | 
			
		||||
                };
 | 
			
		||||
                
 | 
			
		||||
                mpris = {
 | 
			
		||||
                    format = "{player_icon} {dynamic}";
 | 
			
		||||
                    format-paused = "<span color='grey'>{status_icon} {dynamic}</span>";
 | 
			
		||||
                    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;
 | 
			
		||||
                };
 | 
			
		||||
	    };
 | 
			
		||||
        # Widgets
 | 
			
		||||
        "sway/workspaces" = {
 | 
			
		||||
          disable-scroll = true;
 | 
			
		||||
          all-outputs = true;
 | 
			
		||||
        };
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    home.file.".config/waybar" = {
 | 
			
		||||
        source = ./configs;
 | 
			
		||||
        # copy the scripts directory recursively
 | 
			
		||||
        recursive = true;
 | 
			
		||||
        mpris = {
 | 
			
		||||
          format = "{player_icon} {dynamic}";
 | 
			
		||||
          format-paused = "<span color='grey'>{status_icon} {dynamic}</span>";
 | 
			
		||||
          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,
 | 
			
		||||
  config,
 | 
			
		||||
  ...
 | 
			
		||||
} : {
 | 
			
		||||
    programs.waybar = {
 | 
			
		||||
        enable = true;
 | 
			
		||||
        package = pkgs.waybar;
 | 
			
		||||
        settings = {
 | 
			
		||||
            mainBar = {
 | 
			
		||||
                layer = "top";
 | 
			
		||||
                position = "top";
 | 
			
		||||
                height = 30;
 | 
			
		||||
                output = [
 | 
			
		||||
                    "eDP-1"
 | 
			
		||||
                    "DP-1"
 | 
			
		||||
                    "HDMI-A-1"
 | 
			
		||||
                    "Virtual-1"
 | 
			
		||||
                ];
 | 
			
		||||
}:
 | 
			
		||||
{
 | 
			
		||||
  programs.waybar = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    package = pkgs.waybar;
 | 
			
		||||
    settings = {
 | 
			
		||||
      mainBar = {
 | 
			
		||||
        layer = "top";
 | 
			
		||||
        position = "top";
 | 
			
		||||
        height = 30;
 | 
			
		||||
        output = [
 | 
			
		||||
          "eDP-1"
 | 
			
		||||
          "DP-1"
 | 
			
		||||
          "HDMI-A-1"
 | 
			
		||||
          "Virtual-1"
 | 
			
		||||
        ];
 | 
			
		||||
 | 
			
		||||
                modules-left = [ 
 | 
			
		||||
                    "hyprland/workspaces"
 | 
			
		||||
                    "mpris"
 | 
			
		||||
                ];
 | 
			
		||||
        modules-left = [
 | 
			
		||||
          "hyprland/workspaces"
 | 
			
		||||
          "mpris"
 | 
			
		||||
        ];
 | 
			
		||||
 | 
			
		||||
                modules-center = [
 | 
			
		||||
                    "custom/weather"
 | 
			
		||||
                ];
 | 
			
		||||
        modules-center = [
 | 
			
		||||
          "custom/weather"
 | 
			
		||||
        ];
 | 
			
		||||
 | 
			
		||||
                modules-right = [
 | 
			
		||||
                    "network"
 | 
			
		||||
                    "memory"
 | 
			
		||||
                    "cpu"
 | 
			
		||||
                    "clock"
 | 
			
		||||
                ];
 | 
			
		||||
        modules-right = [
 | 
			
		||||
          "network"
 | 
			
		||||
          "memory"
 | 
			
		||||
          "cpu"
 | 
			
		||||
          "clock"
 | 
			
		||||
        ];
 | 
			
		||||
 | 
			
		||||
                # Widgets
 | 
			
		||||
                "sway/workspaces" = {
 | 
			
		||||
                    disable-scroll = true;
 | 
			
		||||
                    all-outputs = true;
 | 
			
		||||
                };
 | 
			
		||||
                
 | 
			
		||||
                mpris = {
 | 
			
		||||
                    format = "{player_icon} {dynamic}";
 | 
			
		||||
                    format-paused = "<span color='grey'>{status_icon} {dynamic}</span>";
 | 
			
		||||
                    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";
 | 
			
		||||
                };
 | 
			
		||||
 | 
			
		||||
            };
 | 
			
		||||
        # Widgets
 | 
			
		||||
        "sway/workspaces" = {
 | 
			
		||||
          disable-scroll = true;
 | 
			
		||||
          all-outputs = true;
 | 
			
		||||
        };
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    home.file.".config/waybar" = {
 | 
			
		||||
        source = ./configs;
 | 
			
		||||
        # copy the scripts directory recursively
 | 
			
		||||
        recursive = true;
 | 
			
		||||
        mpris = {
 | 
			
		||||
          format = "{player_icon} {dynamic}";
 | 
			
		||||
          format-paused = "<span color='grey'>{status_icon} {dynamic}</span>";
 | 
			
		||||
          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, ... }:
 | 
			
		||||
{
 | 
			
		||||
	programs.niri.enable = true;
 | 
			
		||||
  programs.niri.enable = true;
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -3,7 +3,8 @@
 | 
			
		||||
  pkgs,
 | 
			
		||||
  catppuccin-bat,
 | 
			
		||||
  ...
 | 
			
		||||
}: {
 | 
			
		||||
}:
 | 
			
		||||
{
 | 
			
		||||
  home.packages = with pkgs; [
 | 
			
		||||
 | 
			
		||||
  ];
 | 
			
		||||
 
 | 
			
		||||
@@ -1,24 +1,24 @@
 | 
			
		||||
{ pkgs, ... }:
 | 
			
		||||
{
 | 
			
		||||
    home.packages = with pkgs; [
 | 
			
		||||
        # C / C++
 | 
			
		||||
        clang
 | 
			
		||||
        #gcc
 | 
			
		||||
        lua
 | 
			
		||||
  home.packages = with pkgs; [
 | 
			
		||||
    # C / C++
 | 
			
		||||
    clang
 | 
			
		||||
    #gcc
 | 
			
		||||
    lua
 | 
			
		||||
 | 
			
		||||
        # Rust
 | 
			
		||||
        cargo
 | 
			
		||||
        rustc
 | 
			
		||||
    # Rust
 | 
			
		||||
    cargo
 | 
			
		||||
    rustc
 | 
			
		||||
 | 
			
		||||
        # Zig
 | 
			
		||||
        zig 
 | 
			
		||||
    # Zig
 | 
			
		||||
    zig
 | 
			
		||||
 | 
			
		||||
        #python
 | 
			
		||||
        python314
 | 
			
		||||
    ];
 | 
			
		||||
    #python
 | 
			
		||||
    python314
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
    programs.go = {
 | 
			
		||||
        enable = true;
 | 
			
		||||
        packages = {};
 | 
			
		||||
    };
 | 
			
		||||
  programs.go = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    packages = { };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,11 +1,11 @@
 | 
			
		||||
{
 | 
			
		||||
    imports = [
 | 
			
		||||
        ./git.nix
 | 
			
		||||
        ./neovim
 | 
			
		||||
        ./fstl.nix
 | 
			
		||||
        ./openscad.nix
 | 
			
		||||
        ./sqllite_browser.nix
 | 
			
		||||
        ./compilers.nix
 | 
			
		||||
        ./beekeeper-studio.nix
 | 
			
		||||
    ];
 | 
			
		||||
  imports = [
 | 
			
		||||
    ./git.nix
 | 
			
		||||
    ./neovim
 | 
			
		||||
    ./fstl.nix
 | 
			
		||||
    ./openscad.nix
 | 
			
		||||
    ./sqllite_browser.nix
 | 
			
		||||
    ./compilers.nix
 | 
			
		||||
    ./beekeeper-studio.nix
 | 
			
		||||
  ];
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,8 +1,9 @@
 | 
			
		||||
{
 | 
			
		||||
  pkgs,
 | 
			
		||||
  ...
 | 
			
		||||
}: {
 | 
			
		||||
  home.packages = [pkgs.gh];
 | 
			
		||||
}:
 | 
			
		||||
{
 | 
			
		||||
  home.packages = [ pkgs.gh ];
 | 
			
		||||
 | 
			
		||||
  programs.git = {
 | 
			
		||||
    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, ... }: {
 | 
			
		||||
    programs.neovim = {
 | 
			
		||||
        enable = true;
 | 
			
		||||
        viAlias = true;
 | 
			
		||||
        vimAlias = true;
 | 
			
		||||
        defaultEditor = true;
 | 
			
		||||
        /*plugins = with pkgs.vimPlugins; [
 | 
			
		||||
            nvim-tree-lua
 | 
			
		||||
            nvim-treesitter.withAllGrammars
 | 
			
		||||
        ];*/
 | 
			
		||||
    };
 | 
			
		||||
{ pkgs, ... }:
 | 
			
		||||
{
 | 
			
		||||
  programs.neovim = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    viAlias = true;
 | 
			
		||||
    vimAlias = true;
 | 
			
		||||
    defaultEditor = true;
 | 
			
		||||
    #extraPackages = with pkgs; [ ];
 | 
			
		||||
 | 
			
		||||
    home.file.".config/nvim" = {
 | 
			
		||||
	source = ./configs;
 | 
			
		||||
	recursive = true;
 | 
			
		||||
    };
 | 
			
		||||
    plugins = with pkgs.vimPlugins; [
 | 
			
		||||
      nvim-treesitter
 | 
			
		||||
      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, ... }:
 | 
			
		||||
{
 | 
			
		||||
    home.packages = with pkgs; [
 | 
			
		||||
        airshipper
 | 
			
		||||
    ];
 | 
			
		||||
  home.packages = with pkgs; [
 | 
			
		||||
    airshipper
 | 
			
		||||
  ];
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -2,8 +2,9 @@
 | 
			
		||||
  pkgs,
 | 
			
		||||
  config,
 | 
			
		||||
  ...
 | 
			
		||||
}: {
 | 
			
		||||
    home.packages = with pkgs; [
 | 
			
		||||
        itch
 | 
			
		||||
    ];
 | 
			
		||||
}:
 | 
			
		||||
{
 | 
			
		||||
  home.packages = with pkgs; [
 | 
			
		||||
    itch
 | 
			
		||||
  ];
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -2,8 +2,9 @@
 | 
			
		||||
  pkgs,
 | 
			
		||||
  config,
 | 
			
		||||
  ...
 | 
			
		||||
}: {
 | 
			
		||||
    home.packages = with pkgs; [
 | 
			
		||||
        lutris
 | 
			
		||||
    ];
 | 
			
		||||
}:
 | 
			
		||||
{
 | 
			
		||||
  home.packages = with pkgs; [
 | 
			
		||||
    lutris
 | 
			
		||||
  ];
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -2,12 +2,13 @@
 | 
			
		||||
  pkgs,
 | 
			
		||||
  config,
 | 
			
		||||
  ...
 | 
			
		||||
}: {
 | 
			
		||||
    home.packages = with pkgs; [
 | 
			
		||||
        xonotic
 | 
			
		||||
#    armagetron
 | 
			
		||||
#        freeciv
 | 
			
		||||
#        mindustry
 | 
			
		||||
#        openra
 | 
			
		||||
    ];
 | 
			
		||||
}:
 | 
			
		||||
{
 | 
			
		||||
  home.packages = with pkgs; [
 | 
			
		||||
    xonotic
 | 
			
		||||
    #    armagetron
 | 
			
		||||
    #        freeciv
 | 
			
		||||
    #        mindustry
 | 
			
		||||
    #        openra
 | 
			
		||||
  ];
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -2,14 +2,17 @@
 | 
			
		||||
  pkgs,
 | 
			
		||||
  config,
 | 
			
		||||
  ...
 | 
			
		||||
}: {
 | 
			
		||||
    /*home.packages = with pkgs; [
 | 
			
		||||
}:
 | 
			
		||||
{
 | 
			
		||||
  /*
 | 
			
		||||
    home.packages = with pkgs; [
 | 
			
		||||
        steam
 | 
			
		||||
    ];*/
 | 
			
		||||
    programs.steam = {
 | 
			
		||||
        enable = true;
 | 
			
		||||
        remotePlay.openFirewall = true;
 | 
			
		||||
        dedicatedServer.openFirewall = true;
 | 
			
		||||
        localNetworkGameTransfers.openFirewall = true;
 | 
			
		||||
    };
 | 
			
		||||
    ];
 | 
			
		||||
  */
 | 
			
		||||
  programs.steam = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    remotePlay.openFirewall = true;
 | 
			
		||||
    dedicatedServer.openFirewall = true;
 | 
			
		||||
    localNetworkGameTransfers.openFirewall = true;
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
{ pkgs, ... }:
 | 
			
		||||
{
 | 
			
		||||
	home.packages = with pkgs; [
 | 
			
		||||
		audacity
 | 
			
		||||
		yt-dlp
 | 
			
		||||
	];
 | 
			
		||||
  home.packages = with pkgs; [
 | 
			
		||||
    audacity
 | 
			
		||||
    yt-dlp
 | 
			
		||||
  ];
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -4,14 +4,14 @@
 | 
			
		||||
  ...
 | 
			
		||||
}:
 | 
			
		||||
{
 | 
			
		||||
    home.packages = with pkgs; [
 | 
			
		||||
        # audio control
 | 
			
		||||
        pavucontrol
 | 
			
		||||
        playerctl
 | 
			
		||||
        pulsemixer
 | 
			
		||||
    ]; 
 | 
			
		||||
  home.packages = with pkgs; [
 | 
			
		||||
    # audio control
 | 
			
		||||
    pavucontrol
 | 
			
		||||
    playerctl
 | 
			
		||||
    pulsemixer
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
    services = {
 | 
			
		||||
        playerctld.enable = true;
 | 
			
		||||
    };
 | 
			
		||||
  services = {
 | 
			
		||||
    playerctld.enable = true;
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -4,9 +4,9 @@
 | 
			
		||||
  ...
 | 
			
		||||
}:
 | 
			
		||||
{
 | 
			
		||||
    home.packages = with pkgs; [
 | 
			
		||||
        # images
 | 
			
		||||
        imv
 | 
			
		||||
    ];
 | 
			
		||||
  home.packages = with pkgs; [
 | 
			
		||||
    # images
 | 
			
		||||
    imv
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -5,10 +5,10 @@
 | 
			
		||||
}:
 | 
			
		||||
# media - control and enjoy audio/video
 | 
			
		||||
{
 | 
			
		||||
    imports = [
 | 
			
		||||
        ./audio.nix
 | 
			
		||||
        ./image.nix
 | 
			
		||||
        ./webcam.nix
 | 
			
		||||
    ];
 | 
			
		||||
  imports = [
 | 
			
		||||
    ./audio.nix
 | 
			
		||||
    ./image.nix
 | 
			
		||||
    ./webcam.nix
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,14 +1,14 @@
 | 
			
		||||
{ pkgs, ... }:
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
    programs.obs-studio = {
 | 
			
		||||
        enable = true;
 | 
			
		||||
        #enableVirtualCamera = true;
 | 
			
		||||
        plugins = with pkgs.obs-studio-plugins; [
 | 
			
		||||
            wlrobs
 | 
			
		||||
            obs-vkcapture
 | 
			
		||||
            obs-backgroundremoval
 | 
			
		||||
            obs-pipewire-audio-capture
 | 
			
		||||
        ];
 | 
			
		||||
    };
 | 
			
		||||
  programs.obs-studio = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    #enableVirtualCamera = true;
 | 
			
		||||
    plugins = with pkgs.obs-studio-plugins; [
 | 
			
		||||
      wlrobs
 | 
			
		||||
      obs-vkcapture
 | 
			
		||||
      obs-backgroundremoval
 | 
			
		||||
      obs-pipewire-audio-capture
 | 
			
		||||
    ];
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,15 +1,39 @@
 | 
			
		||||
{ pkgs, inputs } :
 | 
			
		||||
{ pkgs, inputs, ... }:
 | 
			
		||||
{
 | 
			
		||||
    imports = [
 | 
			
		||||
        inputs.spicetify-nix.homeManagerModules.default
 | 
			
		||||
    ];
 | 
			
		||||
  imports = [
 | 
			
		||||
    inputs.spicetify-nix.homeManagerModules.default
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
    programs.spicetify = 
 | 
			
		||||
  programs.spicetify =
 | 
			
		||||
    let
 | 
			
		||||
        spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.system};
 | 
			
		||||
      spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.system};
 | 
			
		||||
    in
 | 
			
		||||
    {
 | 
			
		||||
        enable = true;
 | 
			
		||||
        theme = spicePkgs.themes.catppuccin;
 | 
			
		||||
    }
 | 
			
		||||
      enable = true;
 | 
			
		||||
      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, ... }:
 | 
			
		||||
{
 | 
			
		||||
    home.packages = with pkgs; [
 | 
			
		||||
        ffmpeg_6-full
 | 
			
		||||
        gphoto2
 | 
			
		||||
        v4l-utils
 | 
			
		||||
    ];
 | 
			
		||||
  home.packages = with pkgs; [
 | 
			
		||||
    ffmpeg_6-full
 | 
			
		||||
    gphoto2
 | 
			
		||||
    v4l-utils
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
    programs.mpv = {
 | 
			
		||||
        enable = true;
 | 
			
		||||
        defaultProfiles = ["gpu-hq"];
 | 
			
		||||
        scripts = [pkgs.mpvScripts.mpris];
 | 
			
		||||
    };
 | 
			
		||||
  programs.mpv = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    defaultProfiles = [ "gpu-hq" ];
 | 
			
		||||
    scripts = [ pkgs.mpvScripts.mpris ];
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
{ pkgs, ... }:
 | 
			
		||||
{
 | 
			
		||||
    home.programs.geary.enable = true;
 | 
			
		||||
  home.programs.geary.enable = true;
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,13 +1,13 @@
 | 
			
		||||
{ pkgs, ... }:
 | 
			
		||||
let
 | 
			
		||||
	logseq-patch = pkgs.logseq.override {
 | 
			
		||||
		electron_27 = pkgs.electron_34;
 | 
			
		||||
	};
 | 
			
		||||
  logseq-patch = pkgs.logseq.override {
 | 
			
		||||
    electron_27 = pkgs.electron_34;
 | 
			
		||||
  };
 | 
			
		||||
in
 | 
			
		||||
{
 | 
			
		||||
	home.packages = with pkgs; [
 | 
			
		||||
		logseq-patch
 | 
			
		||||
		logseq
 | 
			
		||||
	];
 | 
			
		||||
  home.packages = with pkgs; [
 | 
			
		||||
    logseq-patch
 | 
			
		||||
    logseq
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
{ pkgs, ... }:
 | 
			
		||||
{
 | 
			
		||||
    home.packages = with pkgs; [ notesnook ];
 | 
			
		||||
  home.packages = with pkgs; [ notesnook ];
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
{ pkgs, ... }:
 | 
			
		||||
{
 | 
			
		||||
	home.packages = [ pkgs.libsForQt5.okular ];
 | 
			
		||||
  home.packages = [ pkgs.libsForQt5.okular ];
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,8 +1,8 @@
 | 
			
		||||
{ pkgs, ... }:
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
	# Install OnlyOffice Desktop Editors
 | 
			
		||||
	home.packages = with pkgs; [
 | 
			
		||||
		onlyoffice-desktopeditors
 | 
			
		||||
	];
 | 
			
		||||
  # Install OnlyOffice Desktop Editors
 | 
			
		||||
  home.packages = with pkgs; [
 | 
			
		||||
    onlyoffice-desktopeditors
 | 
			
		||||
  ];
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
{ 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, ... }:
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
  # Install Element Desktop
 | 
			
		||||
  # Install Teamspeak Desktop
 | 
			
		||||
  home.packages = with pkgs; [
 | 
			
		||||
    teamspeak3
 | 
			
		||||
    #    teamspeak6-client
 | 
			
		||||
  ];
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -3,6 +3,6 @@
 | 
			
		||||
{
 | 
			
		||||
  # Install Element Desktop
 | 
			
		||||
  home.packages = with pkgs; [
 | 
			
		||||
	zapzap 
 | 
			
		||||
    zapzap
 | 
			
		||||
  ];
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -2,12 +2,13 @@
 | 
			
		||||
  pkgs,
 | 
			
		||||
  config,
 | 
			
		||||
  ...
 | 
			
		||||
}: {
 | 
			
		||||
    programs.chromium = {
 | 
			
		||||
        enable = true;
 | 
			
		||||
        commandLineArgs = ["--enable-features=TouchpadOverscrollHistoryNavigation"];
 | 
			
		||||
        extensions = [
 | 
			
		||||
            # {id = "";}  // extension id, query from chrome web store
 | 
			
		||||
        ];
 | 
			
		||||
    };
 | 
			
		||||
}:
 | 
			
		||||
{
 | 
			
		||||
  programs.chromium = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    commandLineArgs = [ "--enable-features=TouchpadOverscrollHistoryNavigation" ];
 | 
			
		||||
    extensions = [
 | 
			
		||||
      # {id = "";}  // extension id, query from chrome web store
 | 
			
		||||
    ];
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -3,9 +3,10 @@
 | 
			
		||||
  config,
 | 
			
		||||
  username,
 | 
			
		||||
  ...
 | 
			
		||||
}: {
 | 
			
		||||
    programs.firefox = {
 | 
			
		||||
        enable = true;
 | 
			
		||||
        profiles.${username} = {};
 | 
			
		||||
    };
 | 
			
		||||
}:
 | 
			
		||||
{
 | 
			
		||||
  programs.firefox = {
 | 
			
		||||
    enable = false;
 | 
			
		||||
    profiles.${username} = { };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -3,9 +3,11 @@
 | 
			
		||||
  config,
 | 
			
		||||
  username,
 | 
			
		||||
  ...
 | 
			
		||||
}: {
 | 
			
		||||
    programs.floorp = {
 | 
			
		||||
        enable = true;
 | 
			
		||||
        profiles.${username} = {};
 | 
			
		||||
    };
 | 
			
		||||
}:
 | 
			
		||||
{
 | 
			
		||||
  programs.floorp = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    profiles.${username} = { };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,9 +1,9 @@
 | 
			
		||||
{ pkgs, ... }:
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
    imports = [
 | 
			
		||||
        ./qt.nix
 | 
			
		||||
#        ./gtk.nix
 | 
			
		||||
    ];
 | 
			
		||||
  imports = [
 | 
			
		||||
    ./qt.nix
 | 
			
		||||
    #        ./gtk.nix
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,22 +1,22 @@
 | 
			
		||||
{ pkgs, ... }:
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
    gtk = {
 | 
			
		||||
        enable = true;
 | 
			
		||||
  gtk = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
 | 
			
		||||
        theme = {
 | 
			
		||||
            package = pkgs.flat-remix-gtk;
 | 
			
		||||
            name = "Flat-Remix-GTK-Grey-Darkest";
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        iconTheme = {
 | 
			
		||||
            package = pkgs.adwaita-icon-theme;
 | 
			
		||||
            name = "Adwaita";
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        font = {
 | 
			
		||||
            name = "Sans";
 | 
			
		||||
            size = 12;
 | 
			
		||||
        };
 | 
			
		||||
    theme = {
 | 
			
		||||
      package = pkgs.flat-remix-gtk;
 | 
			
		||||
      name = "Flat-Remix-GTK-Grey-Darkest";
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    iconTheme = {
 | 
			
		||||
      package = pkgs.adwaita-icon-theme;
 | 
			
		||||
      name = "Adwaita";
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    font = {
 | 
			
		||||
      name = "Sans";
 | 
			
		||||
      size = 12;
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,19 +1,19 @@
 | 
			
		||||
{ pkgs, ... }:
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
    home.packages = with pkgs.libsForQt5; [
 | 
			
		||||
        qt5ct
 | 
			
		||||
        qtstyleplugin-kvantum
 | 
			
		||||
    ];
 | 
			
		||||
  home.packages = with pkgs.libsForQt5; [
 | 
			
		||||
    qt5ct
 | 
			
		||||
    qtstyleplugin-kvantum
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
    qt = {
 | 
			
		||||
        enable = true;
 | 
			
		||||
        platformTheme.name = "qtct";
 | 
			
		||||
        style.name = "kvantum";
 | 
			
		||||
    };
 | 
			
		||||
  qt = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    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";
 | 
			
		||||
    };
 | 
			
		||||
  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
 | 
			
		||||
  browser = ["firefox.desktop"];
 | 
			
		||||
{ pkgs, config, ... }:
 | 
			
		||||
let
 | 
			
		||||
  browser = [ "floorp.desktop" ];
 | 
			
		||||
 | 
			
		||||
  # XDG MIME types
 | 
			
		||||
  associations = {
 | 
			
		||||
@@ -11,22 +12,23 @@
 | 
			
		||||
    "application/xhtml+xml" = browser;
 | 
			
		||||
    "text/html" = 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/http" = browser;
 | 
			
		||||
    "x-scheme-handler/https" = browser;
 | 
			
		||||
    "x-scheme-handler/unknown" = browser;
 | 
			
		||||
 | 
			
		||||
    "audio/*" = ["mpv.desktop"];
 | 
			
		||||
    "video/*" = ["mpv.dekstop"];
 | 
			
		||||
    "image/*" = ["imv.desktop"];
 | 
			
		||||
    "audio/*" = [ "mpv.desktop" ];
 | 
			
		||||
    "video/*" = [ "mpv.dekstop" ];
 | 
			
		||||
    "image/*" = [ "kitty-icat.desktop" ];
 | 
			
		||||
    "application/json" = browser;
 | 
			
		||||
    "application/pdf" = ["org.pwmt.zathura.desktop.desktop"];
 | 
			
		||||
    "x-scheme-handler/discord" = ["discordcanary.desktop"];
 | 
			
		||||
    "x-scheme-handler/spotify" = ["spotify.desktop"];
 | 
			
		||||
    "x-scheme-handler/tg" = ["telegramdesktop.desktop"];
 | 
			
		||||
    "application/pdf" = [ "okular.desktop" ];
 | 
			
		||||
    "x-scheme-handler/discord" = [ "discordcanary.desktop" ];
 | 
			
		||||
    "x-scheme-handler/spotify" = [ "spotify.desktop" ];
 | 
			
		||||
    "x-scheme-handler/tg" = [ "telegramdesktop.desktop" ];
 | 
			
		||||
  };
 | 
			
		||||
in {
 | 
			
		||||
in
 | 
			
		||||
{
 | 
			
		||||
  xdg = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    cacheHome = config.home.homeDirectory + "/.local/cache";
 | 
			
		||||
@@ -36,6 +38,20 @@ in {
 | 
			
		||||
      defaultApplications = associations;
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    desktopEntries = {
 | 
			
		||||
      kitty-icat = {
 | 
			
		||||
        name = "Kitty Icat";
 | 
			
		||||
        exec = "kitty +kitten icat %F";
 | 
			
		||||
        terminal = true;
 | 
			
		||||
        type = "Application";
 | 
			
		||||
        mimeType = [ "image/*" ];
 | 
			
		||||
        categories = [
 | 
			
		||||
          "Viewer"
 | 
			
		||||
          "Graphics"
 | 
			
		||||
        ];
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    userDirs = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
      createDirectories = true;
 | 
			
		||||
@@ -45,16 +61,20 @@ in {
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    portal = {
 | 
			
		||||
	enable = true;
 | 
			
		||||
	xdgOpenUsePortal = true;
 | 
			
		||||
	config = {
 | 
			
		||||
		common.default = [ "gtk" ];
 | 
			
		||||
		hyprland.default = [ "gtk" "hyprland" ];
 | 
			
		||||
	};
 | 
			
		||||
	extraPortals = [
 | 
			
		||||
		pkgs.xdg-desktop-portal-gtk
 | 
			
		||||
		pkgs.xdg-desktop-portal-hyprland
 | 
			
		||||
	];
 | 
			
		||||
      enable = true;
 | 
			
		||||
      xdgOpenUsePortal = true;
 | 
			
		||||
      config = {
 | 
			
		||||
        common.default = [ "gtk" ];
 | 
			
		||||
        hyprland.default = [
 | 
			
		||||
          "gtk"
 | 
			
		||||
          "hyprland"
 | 
			
		||||
        ];
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
      extraPortals = [
 | 
			
		||||
        pkgs.xdg-desktop-portal-gtk
 | 
			
		||||
        pkgs.xdg-desktop-portal-hyprland
 | 
			
		||||
      ];
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -5,74 +5,72 @@
 | 
			
		||||
{ config, pkgs, ... }:
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
    imports = [
 | 
			
		||||
        ../../modules/system.nix
 | 
			
		||||
        ../../modules/nix-settings.nix
 | 
			
		||||
        ../../modules/vpn.nix
 | 
			
		||||
        ../../modules/fonts.nix
 | 
			
		||||
        ../../modules/firewall.nix
 | 
			
		||||
        ../../modules/localisation.nix
 | 
			
		||||
        ../../modules/openssh.nix
 | 
			
		||||
        ../../modules/pipewire.nix
 | 
			
		||||
        ../../modules/podman.nix
 | 
			
		||||
        ../../modules/services.nix
 | 
			
		||||
        ../../modules/regreet/regreet.nix
 | 
			
		||||
        ../../modules/plymouth.nix
 | 
			
		||||
        ../../modules/file_managers/spacefm.nix
 | 
			
		||||
        ../../modules/python.nix
 | 
			
		||||
# Include the results of the hardware scan.
 | 
			
		||||
        ./hardware-configuration.nix
 | 
			
		||||
  imports = [
 | 
			
		||||
    ../../modules/system.nix
 | 
			
		||||
    ../../modules/nix-settings.nix
 | 
			
		||||
    ../../modules/vpn.nix
 | 
			
		||||
    ../../modules/fonts.nix
 | 
			
		||||
    ../../modules/firewall.nix
 | 
			
		||||
    ../../modules/localisation.nix
 | 
			
		||||
    ../../modules/openssh.nix
 | 
			
		||||
    ../../modules/pipewire.nix
 | 
			
		||||
    ../../modules/podman.nix
 | 
			
		||||
    ../../modules/services.nix
 | 
			
		||||
    ../../modules/regreet/regreet.nix
 | 
			
		||||
    ../../modules/plymouth.nix
 | 
			
		||||
    ../../modules/file_managers/spacefm.nix
 | 
			
		||||
    ../../modules/python.nix
 | 
			
		||||
    # Include the results of the hardware scan.
 | 
			
		||||
    ./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;
 | 
			
		||||
 | 
			
		||||
    boot.loader = {
 | 
			
		||||
    	systemd-boot.enable = true;
 | 
			
		||||
        efi.canTouchEfiVariables = true;
 | 
			
		||||
  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;
 | 
			
		||||
 | 
			
		||||
    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"
 | 
			
		||||
	];
 | 
			
		||||
    prime = {
 | 
			
		||||
      intelBusId = "PCI:0:2:0";
 | 
			
		||||
      nvidiaBusId = "PCI:10:0:0";
 | 
			
		||||
      sync.enable = true;
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
    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 = {
 | 
			
		||||
		intelBusId = "PCI:0:2:0";
 | 
			
		||||
		nvidiaBusId = "PCI:10:0:0";
 | 
			
		||||
		sync.enable = true;
 | 
			
		||||
	};
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    system.stateVersion = "25.11"; # Did you read the comment?
 | 
			
		||||
  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’
 | 
			
		||||
# and may be overwritten by future invocations.  Please make changes
 | 
			
		||||
# to /etc/nixos/configuration.nix instead.
 | 
			
		||||
{ config, lib, pkgs, modulesPath, ... }:
 | 
			
		||||
{
 | 
			
		||||
  config,
 | 
			
		||||
  lib,
 | 
			
		||||
  pkgs,
 | 
			
		||||
  modulesPath,
 | 
			
		||||
  ...
 | 
			
		||||
}:
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
  imports =
 | 
			
		||||
    [ (modulesPath + "/installer/scan/not-detected.nix")
 | 
			
		||||
    ];
 | 
			
		||||
  imports = [
 | 
			
		||||
    (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.kernelModules = [ "kvm-intel" ];
 | 
			
		||||
  boot.extraModulePackages = [ ];
 | 
			
		||||
 | 
			
		||||
  fileSystems."/" =
 | 
			
		||||
    { device = "/dev/disk/by-label/NIXROOT";
 | 
			
		||||
      fsType = "ext4";
 | 
			
		||||
    };
 | 
			
		||||
  fileSystems."/" = {
 | 
			
		||||
    device = "/dev/disk/by-label/NIXROOT";
 | 
			
		||||
    fsType = "ext4";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  fileSystems."/boot" =
 | 
			
		||||
    { device = "/dev/disk/by-label/NIXBOOT";
 | 
			
		||||
      fsType = "vfat";
 | 
			
		||||
      options = [ "fmask=0022" "dmask=0022" ];
 | 
			
		||||
    };
 | 
			
		||||
  fileSystems."/boot" = {
 | 
			
		||||
    device = "/dev/disk/by-label/NIXBOOT";
 | 
			
		||||
    fsType = "vfat";
 | 
			
		||||
    options = [
 | 
			
		||||
      "fmask=0022"
 | 
			
		||||
      "dmask=0022"
 | 
			
		||||
    ];
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  swapDevices = [ ];
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -2,13 +2,18 @@
 | 
			
		||||
# 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`).
 | 
			
		||||
 | 
			
		||||
{ config, lib, pkgs, ... }:
 | 
			
		||||
{
 | 
			
		||||
  config,
 | 
			
		||||
  lib,
 | 
			
		||||
  pkgs,
 | 
			
		||||
  ...
 | 
			
		||||
}:
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
  imports =
 | 
			
		||||
    [ # Include the results of the hardware scan.
 | 
			
		||||
      ./hardware-configuration.nix
 | 
			
		||||
    ];
 | 
			
		||||
  imports = [
 | 
			
		||||
    # Include the results of the hardware scan.
 | 
			
		||||
    ./hardware-configuration.nix
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  # Use the systemd-boot EFI boot loader.
 | 
			
		||||
  boot.loader.systemd-boot.enable = true;
 | 
			
		||||
@@ -17,7 +22,7 @@
 | 
			
		||||
  # networking.hostName = "nixos"; # Define your hostname.
 | 
			
		||||
  # Pick only one of the below networking options.
 | 
			
		||||
  # 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.
 | 
			
		||||
  time.timeZone = "Europe/Berlin";
 | 
			
		||||
@@ -37,9 +42,6 @@
 | 
			
		||||
  # Enable the X11 windowing system.
 | 
			
		||||
  # services.xserver.enable = true;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
 | 
			
		||||
  # Configure keymap in X11
 | 
			
		||||
  services.xserver.xkb.layout = "de";
 | 
			
		||||
  # 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’.
 | 
			
		||||
  users.users.phil = {
 | 
			
		||||
     initialPassword = "!P2h3i4lon";
 | 
			
		||||
     isNormalUser = true;
 | 
			
		||||
     extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user.
 | 
			
		||||
     packages = with pkgs; [
 | 
			
		||||
       tree
 | 
			
		||||
       neovim
 | 
			
		||||
       git
 | 
			
		||||
       wget
 | 
			
		||||
       curl
 | 
			
		||||
     ];
 | 
			
		||||
   };
 | 
			
		||||
    initialPassword = "!P2h3i4lon";
 | 
			
		||||
    isNormalUser = true;
 | 
			
		||||
    extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user.
 | 
			
		||||
    packages = with pkgs; [
 | 
			
		||||
      tree
 | 
			
		||||
      neovim
 | 
			
		||||
      git
 | 
			
		||||
      wget
 | 
			
		||||
      curl
 | 
			
		||||
    ];
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  # programs.firefox.enable = true;
 | 
			
		||||
 | 
			
		||||
@@ -125,4 +127,3 @@
 | 
			
		||||
  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
 | 
			
		||||
# and in the NixOS manual (accessible by running ‘nixos-help’).
 | 
			
		||||
 | 
			
		||||
{ config, pkgs, lib, ... }:
 | 
			
		||||
{
 | 
			
		||||
  config,
 | 
			
		||||
  pkgs,
 | 
			
		||||
  lib,
 | 
			
		||||
  ...
 | 
			
		||||
}:
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
    imports = [
 | 
			
		||||
        ../../modules/system.nix
 | 
			
		||||
        ../../modules/nix-settings.nix
 | 
			
		||||
        ../../modules/vpn.nix
 | 
			
		||||
        ../../modules/fonts.nix
 | 
			
		||||
        ../../modules/firewall.nix
 | 
			
		||||
        ../../modules/localisation.nix
 | 
			
		||||
        ../../modules/openssh.nix
 | 
			
		||||
        ../../modules/pipewire.nix
 | 
			
		||||
        #../../modules/podman.nix
 | 
			
		||||
        ../../modules/docker.nix
 | 
			
		||||
        ../../modules/services.nix
 | 
			
		||||
        ../../modules/regreet/regreet.nix
 | 
			
		||||
        ../../modules/plymouth.nix
 | 
			
		||||
        ../../modules/file_managers/spacefm.nix
 | 
			
		||||
        ../../modules/appimage.nix
 | 
			
		||||
        ../../modules/qemu.nix
 | 
			
		||||
        ../../modules/thunderbird.nix
 | 
			
		||||
        ../../modules/canon_eos_550d.nix
 | 
			
		||||
# Include the results of the hardware scan.
 | 
			
		||||
        ./hardware-configuration.nix
 | 
			
		||||
    ];
 | 
			
		||||
  imports = [
 | 
			
		||||
    ../../modules/system.nix
 | 
			
		||||
    ../../modules/nix-settings.nix
 | 
			
		||||
    ../../modules/vpn.nix
 | 
			
		||||
    ../../modules/fonts.nix
 | 
			
		||||
    ../../modules/firewall.nix
 | 
			
		||||
    ../../modules/localisation.nix
 | 
			
		||||
    ../../modules/openssh.nix
 | 
			
		||||
    ../../modules/pipewire.nix
 | 
			
		||||
    #../../modules/podman.nix
 | 
			
		||||
    ../../modules/docker.nix
 | 
			
		||||
    ../../modules/services.nix
 | 
			
		||||
    ../../modules/regreet/regreet.nix
 | 
			
		||||
    ../../modules/plymouth.nix
 | 
			
		||||
    ../../modules/file_managers/spacefm.nix
 | 
			
		||||
    ../../modules/appimage.nix
 | 
			
		||||
    ../../modules/qemu.nix
 | 
			
		||||
    ../../modules/thunderbird.nix
 | 
			
		||||
    ../../modules/canon_eos_550d.nix
 | 
			
		||||
    # Include the results of the hardware scan.
 | 
			
		||||
    ./hardware-configuration.nix
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  # Bootloader.
 | 
			
		||||
  boot.loader = {
 | 
			
		||||
@@ -35,27 +40,29 @@
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  networking = {
 | 
			
		||||
  	hostName = "nix-desktop";
 | 
			
		||||
	networkmanager.enable = true;
 | 
			
		||||
	#useDHCP = lib.mkForce true;
 | 
			
		||||
	#dhcpcd.enable = true;
 | 
			
		||||
  	interfaces = {
 | 
			
		||||
		eno1.ipv4.addresses = [{
 | 
			
		||||
			address = "192.168.2.40";
 | 
			
		||||
			prefixLength = 24;
 | 
			
		||||
		}];
 | 
			
		||||
	};
 | 
			
		||||
    hostName = "nix-desktop";
 | 
			
		||||
    networkmanager.enable = true;
 | 
			
		||||
    #useDHCP = lib.mkForce true;
 | 
			
		||||
    #dhcpcd.enable = true;
 | 
			
		||||
    interfaces = {
 | 
			
		||||
      eno1.ipv4.addresses = [
 | 
			
		||||
        {
 | 
			
		||||
          address = "192.168.2.40";
 | 
			
		||||
          prefixLength = 24;
 | 
			
		||||
        }
 | 
			
		||||
      ];
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
	defaultGateway = {
 | 
			
		||||
		address = "192.168.2.1";
 | 
			
		||||
		interface = "eno1";
 | 
			
		||||
	};
 | 
			
		||||
    defaultGateway = {
 | 
			
		||||
      address = "192.168.2.1";
 | 
			
		||||
      interface = "eno1";
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
	nameservers = [
 | 
			
		||||
		"192.168.2.2"
 | 
			
		||||
		"1.1.1.1"
 | 
			
		||||
		"8.8.8.8"
 | 
			
		||||
	];
 | 
			
		||||
    nameservers = [
 | 
			
		||||
      "192.168.2.2"
 | 
			
		||||
      "1.1.1.1"
 | 
			
		||||
      "8.8.8.8"
 | 
			
		||||
    ];
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  hardware.graphics.enable = true;
 | 
			
		||||
@@ -65,5 +72,3 @@
 | 
			
		||||
  environment.systemPackages = [ pkgs.onlyoffice-bin ];
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,36 +1,55 @@
 | 
			
		||||
# Do not modify this file!  It was generated by ‘nixos-generate-config’
 | 
			
		||||
# and may be overwritten by future invocations.  Please make changes
 | 
			
		||||
# to /etc/nixos/configuration.nix instead.
 | 
			
		||||
{ config, lib, pkgs, modulesPath, ... }:
 | 
			
		||||
{
 | 
			
		||||
  config,
 | 
			
		||||
  lib,
 | 
			
		||||
  pkgs,
 | 
			
		||||
  modulesPath,
 | 
			
		||||
  ...
 | 
			
		||||
}:
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
  imports =
 | 
			
		||||
    [ (modulesPath + "/installer/scan/not-detected.nix")
 | 
			
		||||
    ];
 | 
			
		||||
  imports = [
 | 
			
		||||
    (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.kernelModules = [ "kvm-intel" "v4l2loopback"];
 | 
			
		||||
  boot.kernelModules = [
 | 
			
		||||
    "kvm-intel"
 | 
			
		||||
    "v4l2loopback"
 | 
			
		||||
  ];
 | 
			
		||||
  boot.extraModulePackages = [ config.boot.kernelPackages.v4l2loopback.out ];
 | 
			
		||||
  boot.extraModprobeConfig = ''
 | 
			
		||||
    options v4l2loopback exclusive_caps=1 card_label="Virtual Camera"
 | 
			
		||||
  '';
 | 
			
		||||
 | 
			
		||||
  fileSystems."/" =
 | 
			
		||||
    { device = "/dev/disk/by-label/NIXROOT";
 | 
			
		||||
      fsType = "ext4";
 | 
			
		||||
    };
 | 
			
		||||
  fileSystems."/" = {
 | 
			
		||||
    device = "/dev/disk/by-label/NIXROOT";
 | 
			
		||||
    fsType = "ext4";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  fileSystems."/boot" =
 | 
			
		||||
    { device = "/dev/disk/by-label/NIXBOOT";
 | 
			
		||||
      fsType = "vfat";
 | 
			
		||||
      options = [ "fmask=0022" "dmask=0022" ];
 | 
			
		||||
    };
 | 
			
		||||
  fileSystems."/boot" = {
 | 
			
		||||
    device = "/dev/disk/by-label/NIXBOOT";
 | 
			
		||||
    fsType = "vfat";
 | 
			
		||||
    options = [
 | 
			
		||||
      "fmask=0022"
 | 
			
		||||
      "dmask=0022"
 | 
			
		||||
    ];
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  fileSystems."/storage" = 
 | 
			
		||||
    { device = "/dev/disk/by-label/STORAGE";
 | 
			
		||||
      fsType = "ext4";
 | 
			
		||||
    };
 | 
			
		||||
  fileSystems."/storage" = {
 | 
			
		||||
    device = "/dev/disk/by-label/STORAGE";
 | 
			
		||||
    fsType = "ext4";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  swapDevices = [ ];
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -5,40 +5,38 @@
 | 
			
		||||
{ config, pkgs, ... }:
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
    imports = [
 | 
			
		||||
        ../../modules/system.nix
 | 
			
		||||
        ../../modules/nix-settings.nix
 | 
			
		||||
        ../../modules/vpn.nix
 | 
			
		||||
        ../../modules/fonts.nix
 | 
			
		||||
        ../../modules/firewall.nix
 | 
			
		||||
        ../../modules/localisation.nix
 | 
			
		||||
        ../../modules/openssh.nix
 | 
			
		||||
        ../../modules/pipewire.nix
 | 
			
		||||
        ../../modules/podman.nix
 | 
			
		||||
        ../../modules/services.nix
 | 
			
		||||
        ../../modules/regreet/regreet.nix
 | 
			
		||||
        ../../modules/plymouth.nix
 | 
			
		||||
        ../../modules/file_managers/spacefm.nix
 | 
			
		||||
  imports = [
 | 
			
		||||
    ../../modules/system.nix
 | 
			
		||||
    ../../modules/nix-settings.nix
 | 
			
		||||
    ../../modules/vpn.nix
 | 
			
		||||
    ../../modules/fonts.nix
 | 
			
		||||
    ../../modules/firewall.nix
 | 
			
		||||
    ../../modules/localisation.nix
 | 
			
		||||
    ../../modules/openssh.nix
 | 
			
		||||
    ../../modules/pipewire.nix
 | 
			
		||||
    ../../modules/podman.nix
 | 
			
		||||
    ../../modules/services.nix
 | 
			
		||||
    ../../modules/regreet/regreet.nix
 | 
			
		||||
    ../../modules/plymouth.nix
 | 
			
		||||
    ../../modules/file_managers/spacefm.nix
 | 
			
		||||
 | 
			
		||||
# Include the results of the hardware scan.
 | 
			
		||||
        ./hardware-configuration.nix
 | 
			
		||||
    ];
 | 
			
		||||
    # Include the results of the hardware scan.
 | 
			
		||||
    ./hardware-configuration.nix
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
    programs.geary.enable = true;
 | 
			
		||||
  programs.geary.enable = true;
 | 
			
		||||
 | 
			
		||||
    boot.loader = {
 | 
			
		||||
        grub = {
 | 
			
		||||
            enable = true;
 | 
			
		||||
            device = "/dev/sda";
 | 
			
		||||
        };
 | 
			
		||||
  boot.loader = {
 | 
			
		||||
    grub = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
      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’
 | 
			
		||||
# and may be overwritten by future invocations.  Please make changes
 | 
			
		||||
# to /etc/nixos/configuration.nix instead.
 | 
			
		||||
{ config, lib, pkgs, modulesPath, ... }:
 | 
			
		||||
{
 | 
			
		||||
  config,
 | 
			
		||||
  lib,
 | 
			
		||||
  pkgs,
 | 
			
		||||
  modulesPath,
 | 
			
		||||
  ...
 | 
			
		||||
}:
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
  imports =
 | 
			
		||||
    [ (modulesPath + "/profiles/qemu-guest.nix")
 | 
			
		||||
    ];
 | 
			
		||||
  imports = [
 | 
			
		||||
    (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.kernelModules = [ "kvm-intel" ];
 | 
			
		||||
  boot.extraModulePackages = [ ];
 | 
			
		||||
 | 
			
		||||
  fileSystems."/" =
 | 
			
		||||
    { device = "/dev/disk/by-label/NIXROOT";
 | 
			
		||||
      fsType = "ext4";
 | 
			
		||||
    };
 | 
			
		||||
  fileSystems."/" = {
 | 
			
		||||
    device = "/dev/disk/by-label/NIXROOT";
 | 
			
		||||
    fsType = "ext4";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  fileSystems."/boot" =
 | 
			
		||||
    { device = "/dev/disk/by-label/NIXBOOT";
 | 
			
		||||
      fsType = "vfat";
 | 
			
		||||
      options = [ "fmask=0022" "dmask=0022" ];
 | 
			
		||||
    };
 | 
			
		||||
  fileSystems."/boot" = {
 | 
			
		||||
    device = "/dev/disk/by-label/NIXBOOT";
 | 
			
		||||
    fsType = "vfat";
 | 
			
		||||
    options = [
 | 
			
		||||
      "fmask=0022"
 | 
			
		||||
      "dmask=0022"
 | 
			
		||||
    ];
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  swapDevices = [ ];
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
{ pkgs, ... }:
 | 
			
		||||
{
 | 
			
		||||
	programs.appimage = {
 | 
			
		||||
		enable = true;
 | 
			
		||||
		binfmt = true;
 | 
			
		||||
	};
 | 
			
		||||
  programs.appimage = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    binfmt = true;
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,21 +1,21 @@
 | 
			
		||||
{ pkgs, ... }:
 | 
			
		||||
{
 | 
			
		||||
    hardware.bluetooth = {
 | 
			
		||||
        enable = true;
 | 
			
		||||
        powerOnBoot = true;
 | 
			
		||||
        settings = {
 | 
			
		||||
            General = {
 | 
			
		||||
                Enable = "Source,Sink,Media,Socket";
 | 
			
		||||
                Experimental = true;
 | 
			
		||||
            }
 | 
			
		||||
        };
 | 
			
		||||
    }
 | 
			
		||||
  hardware.bluetooth = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    powerOnBoot = true;
 | 
			
		||||
    settings = {
 | 
			
		||||
      General = {
 | 
			
		||||
        Enable = "Source,Sink,Media,Socket";
 | 
			
		||||
        Experimental = true;
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
    services.blueman.enable = true; # Graphical Manager
 | 
			
		||||
  services.blueman.enable = true; # Graphical Manager
 | 
			
		||||
 | 
			
		||||
    hardware.pulseaudio = {
 | 
			
		||||
        enable = true;
 | 
			
		||||
        package = pkgs.pulseaudioFull;
 | 
			
		||||
        extraModules = [ pkgs.pulseaudio-modules-bt ];
 | 
			
		||||
    }
 | 
			
		||||
  hardware.pulseaudio = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    package = pkgs.pulseaudioFull;
 | 
			
		||||
    extraModules = [ pkgs.pulseaudio-modules-bt ];
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,25 +1,25 @@
 | 
			
		||||
{ pkgs, ... }:
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
    services.udev.extraRules = ''
 | 
			
		||||
        ACTION=="add", \
 | 
			
		||||
        SUBSYSTEM=="usb", \
 | 
			
		||||
        ATTR{idVendor}=="04a9", \
 | 
			
		||||
        ATTR{idProduct}=="31ea", \
 | 
			
		||||
    '';
 | 
			
		||||
#        RUN+="systemctl restart webcam"
 | 
			
		||||
  services.udev.extraRules = ''
 | 
			
		||||
    ACTION=="add", \
 | 
			
		||||
    SUBSYSTEM=="usb", \
 | 
			
		||||
    ATTR{idVendor}=="04a9", \
 | 
			
		||||
    ATTR{idProduct}=="31ea", \
 | 
			
		||||
  '';
 | 
			
		||||
  #        RUN+="systemctl restart webcam"
 | 
			
		||||
 | 
			
		||||
    systemd.services.webcam = {
 | 
			
		||||
        enable = true;
 | 
			
		||||
        script = ''
 | 
			
		||||
            ${pkgs.gphoto2}/bin/gphoto2 --stdout --capture-movie |
 | 
			
		||||
            ${pkgs.ffmpeg}/bin/ffmpeg \
 | 
			
		||||
                -i - \
 | 
			
		||||
                -vcodec rawvideo \
 | 
			
		||||
                -pix_fmt yuv420p \
 | 
			
		||||
                -f v4l2 \
 | 
			
		||||
                /dev/video0
 | 
			
		||||
        '';
 | 
			
		||||
        #wantedBy = [ "multi-user.target" ];
 | 
			
		||||
    };
 | 
			
		||||
  systemd.services.webcam = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    script = ''
 | 
			
		||||
      ${pkgs.gphoto2}/bin/gphoto2 --stdout --capture-movie |
 | 
			
		||||
      ${pkgs.ffmpeg}/bin/ffmpeg \
 | 
			
		||||
          -i - \
 | 
			
		||||
          -vcodec rawvideo \
 | 
			
		||||
          -pix_fmt yuv420p \
 | 
			
		||||
          -f v4l2 \
 | 
			
		||||
          /dev/video0
 | 
			
		||||
    '';
 | 
			
		||||
    #wantedBy = [ "multi-user.target" ];
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,34 +1,36 @@
 | 
			
		||||
{ pkgs, ...}:
 | 
			
		||||
{ pkgs, ... }:
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
    environment.systemPackages = with pkgs; [
 | 
			
		||||
        # Virtualisation 
 | 
			
		||||
        docker-compose # docker-compose alternative
 | 
			
		||||
        dive # docker layer viewer
 | 
			
		||||
        tailscale # Vpn
 | 
			
		||||
    ];
 | 
			
		||||
  environment.systemPackages = with pkgs; [
 | 
			
		||||
    # Virtualisation
 | 
			
		||||
    virtualisation = {
 | 
			
		||||
        containers.enable = true;
 | 
			
		||||
    docker-compose # docker-compose alternative
 | 
			
		||||
    dive # docker layer viewer
 | 
			
		||||
    tailscale # Vpn
 | 
			
		||||
  ];
 | 
			
		||||
  # Virtualisation
 | 
			
		||||
  virtualisation = {
 | 
			
		||||
    containers.enable = true;
 | 
			
		||||
 | 
			
		||||
        docker = {
 | 
			
		||||
            enable = true;
 | 
			
		||||
            rootless = {
 | 
			
		||||
                enable = true;
 | 
			
		||||
                setSocketVariable = true;
 | 
			
		||||
            };
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        oci-containers = {
 | 
			
		||||
            backend = "docker";
 | 
			
		||||
            containers = {
 | 
			
		||||
                /*container-name = {
 | 
			
		||||
                    image = "image";
 | 
			
		||||
                    autoStart = true;
 | 
			
		||||
                    ports = [ "127.0.0.1:1234:1234" ];
 | 
			
		||||
                };*/
 | 
			
		||||
            };
 | 
			
		||||
        };
 | 
			
		||||
    docker = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
      rootless = {
 | 
			
		||||
        enable = true;
 | 
			
		||||
        setSocketVariable = true;
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    oci-containers = {
 | 
			
		||||
      backend = "docker";
 | 
			
		||||
      containers = {
 | 
			
		||||
        /*
 | 
			
		||||
          container-name = {
 | 
			
		||||
              image = "image";
 | 
			
		||||
              autoStart = true;
 | 
			
		||||
              ports = [ "127.0.0.1:1234:1234" ];
 | 
			
		||||
          };
 | 
			
		||||
        */
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
{ pkgs, ... }:
 | 
			
		||||
{
 | 
			
		||||
	programs.spacefm.enable = true;
 | 
			
		||||
  programs.spacefm.enable = true;
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,13 +1,13 @@
 | 
			
		||||
{ pkgs, ... }:
 | 
			
		||||
{
 | 
			
		||||
    programs.xfconf.enable = true;
 | 
			
		||||
    services.gvfs.enable = true;
 | 
			
		||||
    services.tumbler.enable = true;
 | 
			
		||||
    programs.thunar = {
 | 
			
		||||
        enable = true;
 | 
			
		||||
        plugins = with pkgs.xfce; [
 | 
			
		||||
            thunar-archive-plugin
 | 
			
		||||
            thunar-volman
 | 
			
		||||
        ];
 | 
			
		||||
    };
 | 
			
		||||
  programs.xfconf.enable = true;
 | 
			
		||||
  services.gvfs.enable = true;
 | 
			
		||||
  services.tumbler.enable = true;
 | 
			
		||||
  programs.thunar = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    plugins = with pkgs.xfce; [
 | 
			
		||||
      thunar-archive-plugin
 | 
			
		||||
      thunar-volman
 | 
			
		||||
    ];
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
{ pkgs, ... }:
 | 
			
		||||
{
 | 
			
		||||
    networking.firewall.allowedTCPPorts = [ 57621 ];
 | 
			
		||||
    networking.firewall.allowedUDPPorts = [ 5353 ];
 | 
			
		||||
    # Or disable the firewall altogether.
 | 
			
		||||
    networking.firewall.enable = false;
 | 
			
		||||
  networking.firewall.allowedTCPPorts = [ 57621 ];
 | 
			
		||||
  networking.firewall.allowedUDPPorts = [ 5353 ];
 | 
			
		||||
  # Or disable the firewall altogether.
 | 
			
		||||
  networking.firewall.enable = false;
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,30 +1,39 @@
 | 
			
		||||
{ pkgs, ... }:
 | 
			
		||||
{
 | 
			
		||||
    fonts = {
 | 
			
		||||
        packages = with pkgs; [
 | 
			
		||||
            # icon fonts
 | 
			
		||||
            material-icons
 | 
			
		||||
            material-black-colors
 | 
			
		||||
            material-design-icons
 | 
			
		||||
  fonts = {
 | 
			
		||||
    packages = with pkgs; [
 | 
			
		||||
      # icon fonts
 | 
			
		||||
      material-icons
 | 
			
		||||
      material-black-colors
 | 
			
		||||
      material-design-icons
 | 
			
		||||
 | 
			
		||||
            # normal fonts
 | 
			
		||||
            noto-fonts
 | 
			
		||||
            noto-fonts-emoji
 | 
			
		||||
      # normal fonts
 | 
			
		||||
      noto-fonts
 | 
			
		||||
      noto-fonts-emoji
 | 
			
		||||
 | 
			
		||||
            nerdfonts
 | 
			
		||||
        ];
 | 
			
		||||
      nerdfonts
 | 
			
		||||
    ];
 | 
			
		||||
 | 
			
		||||
        # use fonts specified by user rather than default ones
 | 
			
		||||
        enableDefaultPackages = false;
 | 
			
		||||
    # use fonts specified by user rather than default ones
 | 
			
		||||
    enableDefaultPackages = false;
 | 
			
		||||
 | 
			
		||||
        # user defined fonts
 | 
			
		||||
        # 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
 | 
			
		||||
        fontconfig.defaultFonts = {
 | 
			
		||||
          serif = ["Noto Serif" "Noto Color Emoji"];
 | 
			
		||||
          sansSerif = ["Noto Sans" "Noto Color Emoji"];
 | 
			
		||||
          monospace = ["JetBrainsMono Nerd Font" "Noto Color Emoji"];
 | 
			
		||||
          emoji = ["Noto Color Emoji"];
 | 
			
		||||
        };
 | 
			
		||||
    # user defined fonts
 | 
			
		||||
    # 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
 | 
			
		||||
    fontconfig.defaultFonts = {
 | 
			
		||||
      serif = [
 | 
			
		||||
        "Noto Serif"
 | 
			
		||||
        "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, ... }:
 | 
			
		||||
{
 | 
			
		||||
    # Set your time zone.
 | 
			
		||||
    time.timeZone = "Europe/Berlin";
 | 
			
		||||
  # Set your time zone.
 | 
			
		||||
  time.timeZone = "Europe/Berlin";
 | 
			
		||||
 | 
			
		||||
    # Select internationalisation properties.
 | 
			
		||||
    i18n.defaultLocale = "en_US.UTF-8";
 | 
			
		||||
  # Select internationalisation properties.
 | 
			
		||||
  i18n.defaultLocale = "en_US.UTF-8";
 | 
			
		||||
 | 
			
		||||
    i18n.extraLocaleSettings = {
 | 
			
		||||
        LC_ADDRESS = "de_DE.UTF-8";
 | 
			
		||||
        LC_IDENTIFICATION = "de_DE.UTF-8";
 | 
			
		||||
        LC_MEASUREMENT = "de_DE.UTF-8";
 | 
			
		||||
        LC_MONETARY = "de_DE.UTF-8";
 | 
			
		||||
        LC_NAME = "de_DE.UTF-8";
 | 
			
		||||
        LC_NUMERIC = "de_DE.UTF-8";
 | 
			
		||||
        LC_PAPER = "de_DE.UTF-8";
 | 
			
		||||
        LC_TELEPHONE = "de_DE.UTF-8";
 | 
			
		||||
        LC_TIME = "de_DE.UTF-8";
 | 
			
		||||
    };
 | 
			
		||||
  i18n.extraLocaleSettings = {
 | 
			
		||||
    LC_ADDRESS = "de_DE.UTF-8";
 | 
			
		||||
    LC_IDENTIFICATION = "de_DE.UTF-8";
 | 
			
		||||
    LC_MEASUREMENT = "de_DE.UTF-8";
 | 
			
		||||
    LC_MONETARY = "de_DE.UTF-8";
 | 
			
		||||
    LC_NAME = "de_DE.UTF-8";
 | 
			
		||||
    LC_NUMERIC = "de_DE.UTF-8";
 | 
			
		||||
    LC_PAPER = "de_DE.UTF-8";
 | 
			
		||||
    LC_TELEPHONE = "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:
 | 
			
		||||
    #    1. `nixConfig.substituers` in `flake.nix`
 | 
			
		||||
    #    2. command line args `--options substituers http://xxx`
 | 
			
		||||
    nix.settings.trusted-users = [username];
 | 
			
		||||
  pkgs,
 | 
			
		||||
  username,
 | 
			
		||||
  lib,
 | 
			
		||||
  ...
 | 
			
		||||
}:
 | 
			
		||||
{
 | 
			
		||||
  # 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`
 | 
			
		||||
    nix.settings = {
 | 
			
		||||
        # enable flakes globally
 | 
			
		||||
        experimental-features = ["nix-command" "flakes"];
 | 
			
		||||
        auto-optimise-store = true;
 | 
			
		||||
        substituters = [
 | 
			
		||||
          "https://cache.nixos.org"
 | 
			
		||||
          "https://hyprland.cachix.org"
 | 
			
		||||
        ];
 | 
			
		||||
 | 
			
		||||
        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"
 | 
			
		||||
  # customise /etc/nix/nix.conf declaratively via `nix.settings`
 | 
			
		||||
  nix.settings = {
 | 
			
		||||
    # enable flakes globally
 | 
			
		||||
    experimental-features = [
 | 
			
		||||
      "nix-command"
 | 
			
		||||
      "flakes"
 | 
			
		||||
    ];
 | 
			
		||||
    auto-optimise-store = true;
 | 
			
		||||
    substituters = [
 | 
			
		||||
      "https://cache.nixos.org"
 | 
			
		||||
      "https://hyprland.cachix.org"
 | 
			
		||||
    ];
 | 
			
		||||
 | 
			
		||||
    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, ... }:
 | 
			
		||||
{
 | 
			
		||||
    # Enable the OpenSSH daemon.
 | 
			
		||||
    services.openssh = {
 | 
			
		||||
        enable = true;
 | 
			
		||||
        settings = {
 | 
			
		||||
          X11Forwarding = true;
 | 
			
		||||
          PermitRootLogin = "no"; # disable root login
 | 
			
		||||
          PasswordAuthentication = false; # disable password login
 | 
			
		||||
        };
 | 
			
		||||
        openFirewall = true;
 | 
			
		||||
  # Enable the OpenSSH daemon.
 | 
			
		||||
  services.openssh = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    settings = {
 | 
			
		||||
      X11Forwarding = true;
 | 
			
		||||
      PermitRootLogin = "no"; # disable root login
 | 
			
		||||
      PasswordAuthentication = false; # disable password login
 | 
			
		||||
    };
 | 
			
		||||
    openFirewall = true;
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,20 +1,20 @@
 | 
			
		||||
{ pkgs, ... }:
 | 
			
		||||
{
 | 
			
		||||
    # Enable sound with pipewire.
 | 
			
		||||
    #sound.enable = true;
 | 
			
		||||
    hardware.pulseaudio.enable = false;
 | 
			
		||||
    environment.systemPackages = with pkgs; [ pamixer ];
 | 
			
		||||
    services.pipewire = {
 | 
			
		||||
          enable = true;
 | 
			
		||||
          #alsa.enable = true;
 | 
			
		||||
          #alsa.support32Bit = true;
 | 
			
		||||
          #pulse.enable = true;
 | 
			
		||||
          # If you want to use JACK applications, uncomment this
 | 
			
		||||
          #jack.enable = true;
 | 
			
		||||
  # Enable sound with pipewire.
 | 
			
		||||
  #sound.enable = true;
 | 
			
		||||
  hardware.pulseaudio.enable = false;
 | 
			
		||||
  environment.systemPackages = with pkgs; [ pamixer ];
 | 
			
		||||
  services.pipewire = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    #alsa.enable = true;
 | 
			
		||||
    #alsa.support32Bit = true;
 | 
			
		||||
    #pulse.enable = true;
 | 
			
		||||
    # If you want to use JACK applications, uncomment this
 | 
			
		||||
    #jack.enable = true;
 | 
			
		||||
 | 
			
		||||
          # 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)
 | 
			
		||||
          #media-session.enable = true;
 | 
			
		||||
    };
 | 
			
		||||
    # 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)
 | 
			
		||||
    #media-session.enable = true;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,5 @@
 | 
			
		||||
{ pkgs, ... }: {
 | 
			
		||||
{ pkgs, ... }:
 | 
			
		||||
{
 | 
			
		||||
  boot = {
 | 
			
		||||
 | 
			
		||||
    plymouth = {
 | 
			
		||||
 
 | 
			
		||||
@@ -1,34 +1,36 @@
 | 
			
		||||
{ pkgs, ...}:
 | 
			
		||||
{ 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
 | 
			
		||||
    ];
 | 
			
		||||
  environment.systemPackages = with pkgs; [
 | 
			
		||||
    # Virtualisation
 | 
			
		||||
    virtualisation = {
 | 
			
		||||
        containers.enable = true;
 | 
			
		||||
    podman-compose # docker-compose alternative
 | 
			
		||||
    dive # docker layer viewer
 | 
			
		||||
    podman-tui # status of containers in terminal
 | 
			
		||||
    podman-desktop # Desktop client
 | 
			
		||||
    tailscale # Vpn
 | 
			
		||||
  ];
 | 
			
		||||
  # Virtualisation
 | 
			
		||||
  virtualisation = {
 | 
			
		||||
    containers.enable = true;
 | 
			
		||||
 | 
			
		||||
        podman = {
 | 
			
		||||
            enable = true;
 | 
			
		||||
            dockerCompat = true;
 | 
			
		||||
            defaultNetwork.settings.dns_enabled = true;
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        oci-containers = {
 | 
			
		||||
            backend = "podman";
 | 
			
		||||
            containers = {
 | 
			
		||||
                /*container-name = {
 | 
			
		||||
                    image = "image";
 | 
			
		||||
                    autoStart = true;
 | 
			
		||||
                    ports = [ "127.0.0.1:1234:1234" ];
 | 
			
		||||
                };*/
 | 
			
		||||
            };
 | 
			
		||||
        };
 | 
			
		||||
    podman = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
      dockerCompat = true;
 | 
			
		||||
      defaultNetwork.settings.dns_enabled = true;
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    oci-containers = {
 | 
			
		||||
      backend = "podman";
 | 
			
		||||
      containers = {
 | 
			
		||||
        /*
 | 
			
		||||
          container-name = {
 | 
			
		||||
              image = "image";
 | 
			
		||||
              autoStart = true;
 | 
			
		||||
              ports = [ "127.0.0.1:1234:1234" ];
 | 
			
		||||
          };
 | 
			
		||||
        */
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,12 +1,12 @@
 | 
			
		||||
{ pkgs, ... }:
 | 
			
		||||
{
 | 
			
		||||
	environment.systemPackages = with pkgs; [
 | 
			
		||||
		qemu
 | 
			
		||||
		quickemu
 | 
			
		||||
	];
 | 
			
		||||
	systemd.tmpfiles.rules = [ "L+ /var/lib/qemu/firmware - - - - ${pkgs.qemu}/share/qemu/firmware" ];
 | 
			
		||||
	boot.binfmt.emulatedSystems = [
 | 
			
		||||
		"aarch64-linux"
 | 
			
		||||
		"riscv64-linux"
 | 
			
		||||
	];
 | 
			
		||||
  environment.systemPackages = with pkgs; [
 | 
			
		||||
    qemu
 | 
			
		||||
    quickemu
 | 
			
		||||
  ];
 | 
			
		||||
  systemd.tmpfiles.rules = [ "L+ /var/lib/qemu/firmware - - - - ${pkgs.qemu}/share/qemu/firmware" ];
 | 
			
		||||
  boot.binfmt.emulatedSystems = [
 | 
			
		||||
    "aarch64-linux"
 | 
			
		||||
    "riscv64-linux"
 | 
			
		||||
  ];
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,61 +1,82 @@
 | 
			
		||||
{ pkgs, username, lib, ... }: {
 | 
			
		||||
    /*services.greetd = {
 | 
			
		||||
	enable = true;
 | 
			
		||||
	settings = {
 | 
			
		||||
		default_session = {
 | 
			
		||||
			user = username;
 | 
			
		||||
			command = "$HOME/.wayland-session";
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
    };*/
 | 
			
		||||
 | 
			
		||||
    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;
 | 
			
		||||
            };
 | 
			
		||||
{
 | 
			
		||||
  pkgs,
 | 
			
		||||
  username,
 | 
			
		||||
  lib,
 | 
			
		||||
  ...
 | 
			
		||||
}:
 | 
			
		||||
{
 | 
			
		||||
  /*
 | 
			
		||||
    services.greetd = {
 | 
			
		||||
    	enable = true;
 | 
			
		||||
    	settings = {
 | 
			
		||||
    		default_session = {
 | 
			
		||||
    			user = username;
 | 
			
		||||
    			command = "$HOME/.wayland-session";
 | 
			
		||||
    		};
 | 
			
		||||
    	};
 | 
			
		||||
        };
 | 
			
		||||
  */
 | 
			
		||||
 | 
			
		||||
  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, ... }:
 | 
			
		||||
{
 | 
			
		||||
    services = {
 | 
			
		||||
        dbus.packages = [pkgs.gcr];
 | 
			
		||||
  services = {
 | 
			
		||||
    dbus.packages = [ pkgs.gcr ];
 | 
			
		||||
 | 
			
		||||
#        flatpak.enable = true;
 | 
			
		||||
#        xdg.portals.enable = true;
 | 
			
		||||
        geoclue2.enable = true;           	
 | 
			
		||||
        xserver.enable = true;
 | 
			
		||||
    #        flatpak.enable = true;
 | 
			
		||||
    #        xdg.portals.enable = true;
 | 
			
		||||
    geoclue2.enable = true;
 | 
			
		||||
    xserver.enable = true;
 | 
			
		||||
 | 
			
		||||
        udev.packages = with pkgs; [pkgs.gnome-settings-daemon];
 | 
			
		||||
    udev.packages = with pkgs; [ pkgs.gnome-settings-daemon ];
 | 
			
		||||
 | 
			
		||||
        # Enable CUPS to print documents.
 | 
			
		||||
        printing.enable = true;
 | 
			
		||||
    # Enable CUPS to print documents.
 | 
			
		||||
    printing.enable = true;
 | 
			
		||||
 | 
			
		||||
        power-profiles-daemon.enable = true;
 | 
			
		||||
    };
 | 
			
		||||
    power-profiles-daemon.enable = true;
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -5,83 +5,95 @@
 | 
			
		||||
  ...
 | 
			
		||||
}:
 | 
			
		||||
{
 | 
			
		||||
# ============================= User related =============================
 | 
			
		||||
  # ============================= User related =============================
 | 
			
		||||
 | 
			
		||||
# Define a user account. Don't forget to set a password with ‘passwd’.
 | 
			
		||||
    users.users.${username} = {
 | 
			
		||||
        isNormalUser = true;
 | 
			
		||||
        description = username;
 | 
			
		||||
        extraGroups = ["networkmanager" "wheel" "podman"];
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    programs.steam.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
 | 
			
		||||
 | 
			
		||||
        # Archives
 | 
			
		||||
        zip
 | 
			
		||||
        unzip
 | 
			
		||||
        p7zip
 | 
			
		||||
        xz
 | 
			
		||||
 | 
			
		||||
        postman
 | 
			
		||||
  # Define a user account. Don't forget to set a password with ‘passwd’.
 | 
			
		||||
  users.users.${username} = {
 | 
			
		||||
    isNormalUser = true;
 | 
			
		||||
    description = username;
 | 
			
		||||
    extraGroups = [
 | 
			
		||||
      "networkmanager"
 | 
			
		||||
      "wheel"
 | 
			
		||||
      "podman"
 | 
			
		||||
    ];
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
    security.polkit.enable = true;
 | 
			
		||||
    security.rtkit.enable = true;
 | 
			
		||||
  programs.steam.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, ... }:
 | 
			
		||||
{
 | 
			
		||||
    services.tailscale = {
 | 
			
		||||
        enable = true;
 | 
			
		||||
        openFirewall = true;
 | 
			
		||||
    };
 | 
			
		||||
  services.tailscale = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    openFirewall = true;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,5 @@
 | 
			
		||||
{pkgs, catppuccin, ...}: {
 | 
			
		||||
{ pkgs, catppuccin, ... }:
 | 
			
		||||
{
 | 
			
		||||
  ##################################################################################################################
 | 
			
		||||
  #
 | 
			
		||||
  # All Phil's Home Manager Configuration
 | 
			
		||||
@@ -10,7 +11,7 @@
 | 
			
		||||
    ../../home/xdg.nix # Bindings
 | 
			
		||||
 | 
			
		||||
    ../../home/hyprland # Window Manager
 | 
			
		||||
#    ../../home/themes/dark
 | 
			
		||||
    #    ../../home/themes/dark
 | 
			
		||||
    ../../home/hyprland/waybar/double-monitor.nix
 | 
			
		||||
 | 
			
		||||
    ../../home/programs/dev # Dev Tools
 | 
			
		||||
@@ -18,7 +19,7 @@
 | 
			
		||||
    ../../home/programs/media/media.nix
 | 
			
		||||
    ../../home/programs/media/audacity.nix
 | 
			
		||||
    ../../home/programs/media/obs.nix
 | 
			
		||||
#    ../../home/programs/media/spicetify.nix
 | 
			
		||||
    ../../home/programs/media/spicetify.nix
 | 
			
		||||
 | 
			
		||||
    ../../home/programs/productivity/blender.nix
 | 
			
		||||
    ../../home/programs/productivity/slicer.nix
 | 
			
		||||
@@ -26,8 +27,10 @@
 | 
			
		||||
    ../../home/programs/productivity/obsidian.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/teamspeak.nix
 | 
			
		||||
 | 
			
		||||
    ../../home/programs/web/firefox.nix
 | 
			
		||||
    ../../home/programs/web/chromium.nix
 | 
			
		||||
@@ -35,7 +38,7 @@
 | 
			
		||||
 | 
			
		||||
    # Games
 | 
			
		||||
    ../../home/programs/games/itch.nix
 | 
			
		||||
#    ../../home/programs/games/steam.nix
 | 
			
		||||
    #    ../../home/programs/games/steam.nix
 | 
			
		||||
    ../../home/programs/games/lutris.nix
 | 
			
		||||
    ../../home/programs/games/opensource.nix
 | 
			
		||||
    ../../home/programs/games/airshipper.nix
 | 
			
		||||
@@ -44,12 +47,15 @@
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  catppuccin = {
 | 
			
		||||
  	enable = true;
 | 
			
		||||
  	flavor = "mocha";
 | 
			
		||||
    enable = true;
 | 
			
		||||
    flavor = "mocha";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  programs.git = {
 | 
			
		||||
    userName = "DerGrumpf";
 | 
			
		||||
    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 = {
 | 
			
		||||
	# authorizedKeys
 | 
			
		||||
        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"
 | 
			
		||||
        ];
 | 
			
		||||
        shell = pkgs.fish;
 | 
			
		||||
    };
 | 
			
		||||
  users.users.phil = {
 | 
			
		||||
    # authorizedKeys
 | 
			
		||||
    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"
 | 
			
		||||
    ];
 | 
			
		||||
    shell = pkgs.fish;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
    # Fix underlying System POSIX bugs
 | 
			
		||||
    programs.bash = {
 | 
			
		||||
  # Fix underlying System POSIX bugs
 | 
			
		||||
  programs.bash = {
 | 
			
		||||
    interactiveShellInit = ''
 | 
			
		||||
      if [[ $(${pkgs.procps}/bin/ps --no-header --pid=$PPID --format=comm) != "fish" && -z ''${BASH_EXECUTION_STRING} ]]
 | 
			
		||||
      then
 | 
			
		||||
@@ -24,16 +24,16 @@
 | 
			
		||||
        exec ${pkgs.fish}/bin/fish $LOGIN_OPTION
 | 
			
		||||
      fi
 | 
			
		||||
    '';
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
    programs.fish = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
      interactiveShellInit = ''
 | 
			
		||||
        fish_config prompt choose disco
 | 
			
		||||
        function fish_greeting
 | 
			
		||||
            fastfetch
 | 
			
		||||
        end
 | 
			
		||||
      '';
 | 
			
		||||
    };
 | 
			
		||||
  programs.fish = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    interactiveShellInit = ''
 | 
			
		||||
      fish_config prompt choose disco
 | 
			
		||||
      function fish_greeting
 | 
			
		||||
          fastfetch
 | 
			
		||||
      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