Complete Overhaul of flake.nix
This commit is contained in:
		
							
								
								
									
										19
									
								
								flake.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										19
									
								
								flake.lock
									
									
									
										generated
									
									
									
								
							@@ -577,7 +577,8 @@
 | 
			
		||||
        "hyprland-plugins": "hyprland-plugins",
 | 
			
		||||
        "nixcord": "nixcord",
 | 
			
		||||
        "nixpkgs": "nixpkgs_4",
 | 
			
		||||
        "spicetify-nix": "spicetify-nix"
 | 
			
		||||
        "spicetify-nix": "spicetify-nix",
 | 
			
		||||
        "unstable": "unstable"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "spicetify-nix": {
 | 
			
		||||
@@ -629,6 +630,22 @@
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "unstable": {
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1756787288,
 | 
			
		||||
        "narHash": "sha256-rw/PHa1cqiePdBxhF66V7R+WAP8WekQ0mCDG4CFqT8Y=",
 | 
			
		||||
        "owner": "nixos",
 | 
			
		||||
        "repo": "nixpkgs",
 | 
			
		||||
        "rev": "d0fc30899600b9b3466ddb260fd83deb486c32f1",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "owner": "nixos",
 | 
			
		||||
        "ref": "nixos-unstable",
 | 
			
		||||
        "repo": "nixpkgs",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "xdph": {
 | 
			
		||||
      "inputs": {
 | 
			
		||||
        "hyprland-protocols": [
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										201
									
								
								flake.nix
									
									
									
									
									
								
							
							
						
						
									
										201
									
								
								flake.nix
									
									
									
									
									
								
							@@ -5,34 +5,35 @@
 | 
			
		||||
  nixConfig = {
 | 
			
		||||
    extra-substituters = [
 | 
			
		||||
      "https://nix-community.cachix.org"
 | 
			
		||||
      "https://hyprland.cachix.org"
 | 
			
		||||
    ];
 | 
			
		||||
    extra-trusted-public-keys = [
 | 
			
		||||
      "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
 | 
			
		||||
      "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
 | 
			
		||||
    ];
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  inputs = {
 | 
			
		||||
    # Core
 | 
			
		||||
    nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11";
 | 
			
		||||
    unstable.url = "github:nixos/nixpkgs/nixos-unstable";
 | 
			
		||||
 | 
			
		||||
    # Desktop ENV
 | 
			
		||||
    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";
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    # Customization
 | 
			
		||||
    spicetify-nix.url = "github:Gerg-L/spicetify-nix";
 | 
			
		||||
    nixcord.url = "github:kaylorben/nixcord";
 | 
			
		||||
    catppuccin.url = "github:catppuccin/nix";
 | 
			
		||||
 | 
			
		||||
    # User Config
 | 
			
		||||
    home-manager.url = "github:nix-community/home-manager/release-24.11";
 | 
			
		||||
    home-manager.inputs.nixpkgs.follows = "nixpkgs";
 | 
			
		||||
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  outputs =
 | 
			
		||||
@@ -43,16 +44,83 @@
 | 
			
		||||
      catppuccin,
 | 
			
		||||
      ...
 | 
			
		||||
    }:
 | 
			
		||||
    {
 | 
			
		||||
      packages.x86_64-linux.default = self.nixosConfigurations.iso.config.system.build.isoImage;
 | 
			
		||||
      nixosConfigurations = {
 | 
			
		||||
        iso = nixpkgs.lib.nixosSystem {
 | 
			
		||||
 | 
			
		||||
    let
 | 
			
		||||
      system = "x86_64-linux";
 | 
			
		||||
          modules = [
 | 
			
		||||
 | 
			
		||||
      # Common Configuration
 | 
			
		||||
      commonModules = [
 | 
			
		||||
        (
 | 
			
		||||
              { pkgs, modulesPath, ... }:
 | 
			
		||||
          { config, ... }:
 | 
			
		||||
          {
 | 
			
		||||
            nix.settings = {
 | 
			
		||||
              accept-flake-config = true;
 | 
			
		||||
              experimental-features = [
 | 
			
		||||
                "nix-command"
 | 
			
		||||
                "flakes"
 | 
			
		||||
              ];
 | 
			
		||||
            };
 | 
			
		||||
          }
 | 
			
		||||
        )
 | 
			
		||||
      ];
 | 
			
		||||
 | 
			
		||||
      commonHomeManagerConfig =
 | 
			
		||||
        {
 | 
			
		||||
          username,
 | 
			
		||||
          monitorSetup ? "single",
 | 
			
		||||
        }:
 | 
			
		||||
        {
 | 
			
		||||
          home-manager = {
 | 
			
		||||
            useGlobalPkgs = true;
 | 
			
		||||
            useUserPackages = true;
 | 
			
		||||
            backupFileExtension = "backup";
 | 
			
		||||
            extraSpecialArgs = {
 | 
			
		||||
              inherit inputs;
 | 
			
		||||
              inherit username monitorSetup;
 | 
			
		||||
            };
 | 
			
		||||
            users.${username} = import ./users/${username}/home.nix;
 | 
			
		||||
            sharedModules = [
 | 
			
		||||
              inputs.catppuccin.homeModules.catppuccin
 | 
			
		||||
              inputs.nixcord.homeModules.nixcord
 | 
			
		||||
            ];
 | 
			
		||||
          };
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
      # System Builder
 | 
			
		||||
      mkSystem =
 | 
			
		||||
        {
 | 
			
		||||
          hostname,
 | 
			
		||||
          username,
 | 
			
		||||
          system ? "x86_64-linux",
 | 
			
		||||
          monitorSetup ? "single",
 | 
			
		||||
          extraModules ? [ ],
 | 
			
		||||
        }:
 | 
			
		||||
        nixpkgs.lib.nixosSystem {
 | 
			
		||||
          inherit system;
 | 
			
		||||
          specialArgs = {
 | 
			
		||||
            inherit inputs;
 | 
			
		||||
            inherit username monitorSetup;
 | 
			
		||||
          };
 | 
			
		||||
          modules =
 | 
			
		||||
            commonModules
 | 
			
		||||
            ++ [
 | 
			
		||||
              ./hosts/${hostname}
 | 
			
		||||
              ./users/${username}/nixos.nix
 | 
			
		||||
              home-manager.nixosModules.home-manager
 | 
			
		||||
              (commonHomeManagerConfig { inherit username monitorSetup; })
 | 
			
		||||
            ]
 | 
			
		||||
            ++ extraModules;
 | 
			
		||||
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
      # ISO configuration
 | 
			
		||||
      isoConfig = nixpkgs.lib.nixosSystem {
 | 
			
		||||
        inherit system;
 | 
			
		||||
        modules = [
 | 
			
		||||
          (import (nixpkgs + "/nixos/modules/installer/cd-dvd/installation-cd-minimal.nix"))
 | 
			
		||||
          (
 | 
			
		||||
            { pkgs, ... }:
 | 
			
		||||
            {
 | 
			
		||||
                imports = [ (modulesPath + "/installer/cd-dvd/installation-cd-minimal.nix") ];
 | 
			
		||||
              environment.systemPackages = with pkgs; [
 | 
			
		||||
                neovim
 | 
			
		||||
                git
 | 
			
		||||
@@ -68,88 +136,31 @@
 | 
			
		||||
        ];
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
        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;
 | 
			
		||||
      packages.${system}.default = self.nixosConfigurations.iso.config.system.build.isoImage;
 | 
			
		||||
 | 
			
		||||
                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
 | 
			
		||||
                ];
 | 
			
		||||
      nixosConfigurations = {
 | 
			
		||||
        iso = isoConfig;
 | 
			
		||||
 | 
			
		||||
                nix.settings.experimental-features = [
 | 
			
		||||
                  "nix-command"
 | 
			
		||||
                  "flakes"
 | 
			
		||||
                ];
 | 
			
		||||
              }
 | 
			
		||||
            ];
 | 
			
		||||
          };
 | 
			
		||||
 | 
			
		||||
        qemu =
 | 
			
		||||
          let
 | 
			
		||||
        qemu = mkSystem {
 | 
			
		||||
          hostname = "qemu";
 | 
			
		||||
          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;
 | 
			
		||||
              }
 | 
			
		||||
            ];
 | 
			
		||||
          monitorSetup = "single";
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        hp15-n028sg =
 | 
			
		||||
          let
 | 
			
		||||
        m920q = mkSystem {
 | 
			
		||||
          hostname = "m920q";
 | 
			
		||||
          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;
 | 
			
		||||
              }
 | 
			
		||||
            ];
 | 
			
		||||
          monitorSetup = "dual";
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        hp15-n028sg = mkSystem {
 | 
			
		||||
          hostname = "hp15-n028sg";
 | 
			
		||||
          username = "phil";
 | 
			
		||||
          monitorSetup = "dual";
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										40
									
								
								home/hyprland/cava.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								home/hyprland/cava.nix
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,40 @@
 | 
			
		||||
{ ... }:
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
  programs.cava = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    settings = {
 | 
			
		||||
 | 
			
		||||
      general = {
 | 
			
		||||
        framerate = 120;
 | 
			
		||||
        bars = 0;
 | 
			
		||||
        bar_width = 2;
 | 
			
		||||
        bar_spacing = 1;
 | 
			
		||||
        #bar_height = 32;
 | 
			
		||||
        sensitivity = 90;
 | 
			
		||||
        autosens = 1;
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
      input = {
 | 
			
		||||
        method = "pipewire";
 | 
			
		||||
        source = "auto";
 | 
			
		||||
        sample_rate = 44100;
 | 
			
		||||
        sample_bits = 16;
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
      output = {
 | 
			
		||||
        channels = "stereo";
 | 
			
		||||
        mono_option = "average";
 | 
			
		||||
        reverse = 0;
 | 
			
		||||
        waveform = 0;
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
      smoothing = {
 | 
			
		||||
        monstercat = 1;
 | 
			
		||||
        waves = 0;
 | 
			
		||||
        noise_reduction = 0.77;
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
@@ -1,14 +1,29 @@
 | 
			
		||||
{ pkgs, ... }:
 | 
			
		||||
{ monitorSetup, ... }:
 | 
			
		||||
{
 | 
			
		||||
  imports = [
 | 
			
		||||
    ./kitty.nix # Terminal
 | 
			
		||||
    ./alacritty.nix
 | 
			
		||||
    ./hyprland.nix
 | 
			
		||||
    ./hypridle.nix
 | 
			
		||||
    ./hyprlock.nix
 | 
			
		||||
    ./hyprpaper.nix
 | 
			
		||||
    ./rofi # App Launcher
 | 
			
		||||
    ./mako.nix # Notifyer
 | 
			
		||||
    ./cava.nix # Music Visualizer
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  programs.waybar =
 | 
			
		||||
    if monitorSetup == "single" then
 | 
			
		||||
      import ../../home/hyprland/waybar/single.nix
 | 
			
		||||
    else if monitorSetup == "dual" then
 | 
			
		||||
      import ../../home/hyprland/waybar/dual.nix
 | 
			
		||||
    else
 | 
			
		||||
      { };
 | 
			
		||||
 | 
			
		||||
  home.file.".config/waybar" = {
 | 
			
		||||
    source = ./waybar/configs;
 | 
			
		||||
    # copy the scripts directory recursively
 | 
			
		||||
    recursive = true;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  home.file.".config/hypr/hyprland.conf".enable = false;
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -7,7 +7,8 @@ let
 | 
			
		||||
  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";
 | 
			
		||||
  power = "rofi -show p -modi p:rofi-power-menu -theme $HOME/.config/rofi/power.rasi";
 | 
			
		||||
  apps = "rofi -show window ${theme}";
 | 
			
		||||
in
 | 
			
		||||
{
 | 
			
		||||
  home.packages = with pkgs; [
 | 
			
		||||
@@ -92,8 +93,8 @@ in
 | 
			
		||||
 | 
			
		||||
    general = {
 | 
			
		||||
      # See https://wiki.hyprland.org/Configuring/Variables/ for more
 | 
			
		||||
      gaps_in = 8;
 | 
			
		||||
      gaps_out = 16;
 | 
			
		||||
      gaps_in = 4;
 | 
			
		||||
      gaps_out = 0;
 | 
			
		||||
      border_size = 4;
 | 
			
		||||
 | 
			
		||||
      "col.active_border" = "$green";
 | 
			
		||||
@@ -106,10 +107,10 @@ in
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    decoration = {
 | 
			
		||||
      rounding = 12;
 | 
			
		||||
      rounding = 1;
 | 
			
		||||
 | 
			
		||||
      shadow = {
 | 
			
		||||
        enabled = true;
 | 
			
		||||
        enabled = false;
 | 
			
		||||
        range = 16;
 | 
			
		||||
        render_power = 4;
 | 
			
		||||
        ignore_window = true;
 | 
			
		||||
@@ -182,27 +183,36 @@ in
 | 
			
		||||
      "nofocus, class:^(xwaylandvideobridge)$"
 | 
			
		||||
    ];
 | 
			
		||||
 | 
			
		||||
    # See further https://wiki.hypr.land/Configuring/Workspace-Rules/
 | 
			
		||||
    exec-once = [
 | 
			
		||||
      "waybar &"
 | 
			
		||||
      "hyprpaper &"
 | 
			
		||||
      "[workspace 8] obsidian"
 | 
			
		||||
      "[workspace 1] floorp"
 | 
			
		||||
      "[workspace 2] spotify"
 | 
			
		||||
      "[workspace 2] kitty --class=cava-terminal -e cava"
 | 
			
		||||
      "[workspace 3] thunderbird"
 | 
			
		||||
      "[workspace 9] kitty"
 | 
			
		||||
    ];
 | 
			
		||||
 | 
			
		||||
    # Keybindings
 | 
			
		||||
    bind = [
 | 
			
		||||
 | 
			
		||||
      # Application Bindings
 | 
			
		||||
      "${super}, Q, exec, ${terminal}"
 | 
			
		||||
      "${super}, C, killactive, "
 | 
			
		||||
      "${super}, M, exit, "
 | 
			
		||||
      "${super}, E, exec, ${fileManager}"
 | 
			
		||||
      "${super}, V, togglefloating, "
 | 
			
		||||
      "${super}, O, exec, obsidian"
 | 
			
		||||
      "${super}, I, exec, floorp"
 | 
			
		||||
      "${super}, G, exec, thunderbird"
 | 
			
		||||
 | 
			
		||||
      # Lock Screen
 | 
			
		||||
      "${super}, M, exit, "
 | 
			
		||||
 | 
			
		||||
      # Rofi bindings
 | 
			
		||||
      "${super}, f, exec, ${filebrowser}"
 | 
			
		||||
      "${super}, A, exec, ${apps}"
 | 
			
		||||
      "${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"
 | 
			
		||||
@@ -210,6 +220,12 @@ in
 | 
			
		||||
      "${super}, up, movefocus, u"
 | 
			
		||||
      "${super}, down, movefocus, d"
 | 
			
		||||
 | 
			
		||||
      # Window Modifiers
 | 
			
		||||
      "${super}, P, pseudo, " # dwindle
 | 
			
		||||
      "${super}, J, togglesplit, " # dwindle
 | 
			
		||||
      "${super}, V, togglefloating, " # dwindle
 | 
			
		||||
      "${super}, C, killactive, "
 | 
			
		||||
 | 
			
		||||
      # Switch workspaces with mainMod + [0-9]
 | 
			
		||||
      "${super}, 1, workspace, 1"
 | 
			
		||||
      "${super}, 2, workspace, 2"
 | 
			
		||||
@@ -249,7 +265,7 @@ in
 | 
			
		||||
 | 
			
		||||
    bindl = [
 | 
			
		||||
      #", XF86AudioMute, exec, amixer set Master toggle
 | 
			
		||||
      ", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
 | 
			
		||||
      ", XF86AudioMute, exec, pamixer -t"
 | 
			
		||||
      ", XF86AudioPlay, exec, playerctl play-pause" # the stupid key is called play , but it toggles
 | 
			
		||||
      ", XF86AudioNext, exec, playerctl next"
 | 
			
		||||
      ", XF86AudioPrev, exec, playerctl previous"
 | 
			
		||||
@@ -257,12 +273,10 @@ in
 | 
			
		||||
 | 
			
		||||
    bindle = [
 | 
			
		||||
      # Multi Media Control
 | 
			
		||||
      ", XF86AudioRaiseVolume, exec, vol --up"
 | 
			
		||||
      ", XF86AudioLowerVolume, exec, vol --down"
 | 
			
		||||
      ", XF86AudioRaiseVolume, exec, pamixer -i 5"
 | 
			
		||||
      ", XF86AudioLowerVolume, exec, pamixer -d 5"
 | 
			
		||||
      ", XF86MonBrightnessUp, exec, bri --up"
 | 
			
		||||
      ", XF86MonBrightnessDown, exec, bri --down"
 | 
			
		||||
      ", XF86Search, exec, ${menu}"
 | 
			
		||||
 | 
			
		||||
    ];
 | 
			
		||||
 | 
			
		||||
    bindm = [
 | 
			
		||||
 
 | 
			
		||||
@@ -52,9 +52,12 @@ window {
 | 
			
		||||
 | 
			
		||||
    /* properties for all widgets */
 | 
			
		||||
    enabled:                     true;
 | 
			
		||||
    border-radius:               12px;
 | 
			
		||||
    border-radius:               1px;
 | 
			
		||||
    cursor:                      "default";
 | 
			
		||||
    background-color:            @base;
 | 
			
		||||
    
 | 
			
		||||
	border:		 				 4px;
 | 
			
		||||
	border-color: 				 @yellow;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Main Box */
 | 
			
		||||
@@ -72,7 +75,7 @@ imagebox {
 | 
			
		||||
    background-color:            transparent;
 | 
			
		||||
    background-image:            url("~/.config/rofi/background.png", height);
 | 
			
		||||
    orientation:                 vertical;
 | 
			
		||||
    children:                    [ "inputbar", "dummy", "mode-switcher" ];
 | 
			
		||||
    children:                    [  "inputbar", "weatherelement", "dummy", "mode-switcher" ];
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
listbox {
 | 
			
		||||
@@ -83,6 +86,13 @@ listbox {
 | 
			
		||||
    children:                    [ "message", "listview" ];
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
weatherelement {
 | 
			
		||||
		border-radius: 20px;
 | 
			
		||||
		background-color: transparent;
 | 
			
		||||
		text-color: @peach;
 | 
			
		||||
		str: "Hello This is text"; 
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
dummy {
 | 
			
		||||
    background-color:            transparent;
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								home/hyprland/rofi/configs/power.jpg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								home/hyprland/rofi/configs/power.jpg
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 447 KiB  | 
							
								
								
									
										162
									
								
								home/hyprland/rofi/configs/power.rasi
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										162
									
								
								home/hyprland/rofi/configs/power.rasi
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,162 @@
 | 
			
		||||
* {
 | 
			
		||||
  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 {
 | 
			
		||||
    font:						 "Icomoon-Feather 12";
 | 
			
		||||
    show-icons: 				 true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
USE_BUTTONS=YES
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
/*****----- Main Window -----*****/
 | 
			
		||||
window {
 | 
			
		||||
    transparency:                "real";
 | 
			
		||||
    location:                    center;
 | 
			
		||||
    anchor:                      center;
 | 
			
		||||
    fullscreen:                  false;
 | 
			
		||||
    width:                       1000px;
 | 
			
		||||
    x-offset:                    0px;
 | 
			
		||||
    y-offset:                    0px;
 | 
			
		||||
 | 
			
		||||
    padding:                     0px;
 | 
			
		||||
    border:                      4px solid;
 | 
			
		||||
    border-radius:               2px;
 | 
			
		||||
    border-color:                @blue;
 | 
			
		||||
    cursor:                      "default";
 | 
			
		||||
    background-color:            @base;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/*****----- Main Box -----*****/
 | 
			
		||||
mainbox {
 | 
			
		||||
    enabled:                     true;
 | 
			
		||||
    spacing:                     0px;
 | 
			
		||||
    margin:                      0px;
 | 
			
		||||
    padding:                     0px;
 | 
			
		||||
    border:                      0px solid;
 | 
			
		||||
    border-radius:               0px;
 | 
			
		||||
    border-color:                @blue;
 | 
			
		||||
    background-color:            transparent;
 | 
			
		||||
    children:                    [ "inputbar", "listview", "message" ];
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*****----- Inputbar -----*****/
 | 
			
		||||
inputbar {
 | 
			
		||||
    enabled:                     true;
 | 
			
		||||
    spacing:                     20px;
 | 
			
		||||
    padding:                     100px 40px;
 | 
			
		||||
    background-color:            transparent;
 | 
			
		||||
    background-image:            url("~/.config/rofi/power.jpg", width);
 | 
			
		||||
    children:                    [ "textbox-prompt-colon", "prompt"];
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
dummy {
 | 
			
		||||
    background-color:            transparent;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
textbox-prompt-colon {
 | 
			
		||||
    enabled:                     true;
 | 
			
		||||
    expand:                      false;
 | 
			
		||||
    str:                         " System";
 | 
			
		||||
    padding:                     15px;
 | 
			
		||||
    border:                      0px 0px 0px 10px;
 | 
			
		||||
    border-radius:               100% 100% 0px 100%;
 | 
			
		||||
    border-color:                @peach;
 | 
			
		||||
    background-color:            @crust;
 | 
			
		||||
    text-color:                  @text;
 | 
			
		||||
}
 | 
			
		||||
prompt {
 | 
			
		||||
    enabled:                     true;
 | 
			
		||||
    padding:                     15px;
 | 
			
		||||
    border:                      0px;
 | 
			
		||||
    border-radius:               0px 100% 100% 100%;
 | 
			
		||||
    border-color:                @blue;
 | 
			
		||||
    background-color:            @crust;
 | 
			
		||||
    text-color:                  @text;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/*****----- Listview -----*****/
 | 
			
		||||
listview {
 | 
			
		||||
    enabled:                     true;
 | 
			
		||||
    columns:                     6;
 | 
			
		||||
    lines:                       1;
 | 
			
		||||
    cycle:                       true;
 | 
			
		||||
    dynamic:                     true;
 | 
			
		||||
    scrollbar:                   false;
 | 
			
		||||
    layout:                      vertical;
 | 
			
		||||
    reverse:                     false;
 | 
			
		||||
    fixed-height:                true;
 | 
			
		||||
    fixed-columns:               true;
 | 
			
		||||
    
 | 
			
		||||
    spacing:                     30px;
 | 
			
		||||
    margin:                      30px;
 | 
			
		||||
    background-color:            transparent;
 | 
			
		||||
    cursor:                      "default";
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/*****----- Elements -----*****/
 | 
			
		||||
element {
 | 
			
		||||
    enabled:                     true;
 | 
			
		||||
    padding:                     35px 10px;
 | 
			
		||||
    border-radius:               5%;
 | 
			
		||||
    background-color:            @crust;
 | 
			
		||||
    text-color:                  @text;
 | 
			
		||||
    cursor:                      pointer;
 | 
			
		||||
}
 | 
			
		||||
element-text {
 | 
			
		||||
    background-color:            transparent;
 | 
			
		||||
    text-color:                  inherit;
 | 
			
		||||
    cursor:                      inherit;
 | 
			
		||||
    vertical-align:              0.5;
 | 
			
		||||
    horizontal-align:            0.5;
 | 
			
		||||
}
 | 
			
		||||
element selected.normal {
 | 
			
		||||
    background-color:            @crust;
 | 
			
		||||
    text-color:                  @sapphire;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/*****----- Message -----*****/
 | 
			
		||||
message {
 | 
			
		||||
    enabled:                     true;
 | 
			
		||||
    margin:                      0px;
 | 
			
		||||
    padding:                     15px;
 | 
			
		||||
    border-radius:               0px;
 | 
			
		||||
    background-color:            @crust;
 | 
			
		||||
    text-color:                  @yellow;
 | 
			
		||||
}
 | 
			
		||||
textbox {
 | 
			
		||||
    background-color:            inherit;
 | 
			
		||||
    text-color:                  inherit;
 | 
			
		||||
    vertical-align:              0.5;
 | 
			
		||||
    horizontal-align:            0.5;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -1,201 +0,0 @@
 | 
			
		||||
{
 | 
			
		||||
  pkgs,
 | 
			
		||||
  config,
 | 
			
		||||
  ...
 | 
			
		||||
}:
 | 
			
		||||
{
 | 
			
		||||
  programs.waybar = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    package = pkgs.waybar;
 | 
			
		||||
    settings = {
 | 
			
		||||
      mainBar = {
 | 
			
		||||
        layer = "top";
 | 
			
		||||
        position = "top";
 | 
			
		||||
        height = 30;
 | 
			
		||||
        output = [ "DP-1" ];
 | 
			
		||||
 | 
			
		||||
        modules-left = [
 | 
			
		||||
          "hyprland/workspaces"
 | 
			
		||||
          "mpris"
 | 
			
		||||
        ];
 | 
			
		||||
 | 
			
		||||
        modules-center = [ ];
 | 
			
		||||
 | 
			
		||||
        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;
 | 
			
		||||
        };
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  home.file.".config/waybar" = {
 | 
			
		||||
    source = ./configs;
 | 
			
		||||
    # copy the scripts directory recursively
 | 
			
		||||
    recursive = true;
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										188
									
								
								home/hyprland/waybar/dual.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										188
									
								
								home/hyprland/waybar/dual.nix
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,188 @@
 | 
			
		||||
{
 | 
			
		||||
  enable = true;
 | 
			
		||||
  settings = {
 | 
			
		||||
    mainBar = {
 | 
			
		||||
      layer = "top";
 | 
			
		||||
      position = "top";
 | 
			
		||||
      height = 30;
 | 
			
		||||
      output = [ "DP-1" ];
 | 
			
		||||
 | 
			
		||||
      modules-left = [
 | 
			
		||||
        "hyprland/workspaces"
 | 
			
		||||
        "mpris"
 | 
			
		||||
      ];
 | 
			
		||||
 | 
			
		||||
      modules-center = [ ];
 | 
			
		||||
 | 
			
		||||
      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;
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@@ -1,163 +0,0 @@
 | 
			
		||||
{
 | 
			
		||||
  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"
 | 
			
		||||
        ];
 | 
			
		||||
 | 
			
		||||
        modules-left = [
 | 
			
		||||
          "hyprland/workspaces"
 | 
			
		||||
          "mpris"
 | 
			
		||||
        ];
 | 
			
		||||
 | 
			
		||||
        modules-center = [
 | 
			
		||||
          "custom/weather"
 | 
			
		||||
        ];
 | 
			
		||||
 | 
			
		||||
        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";
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  home.file.".config/waybar" = {
 | 
			
		||||
    source = ./configs;
 | 
			
		||||
    # copy the scripts directory recursively
 | 
			
		||||
    recursive = true;
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										150
									
								
								home/hyprland/waybar/single.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										150
									
								
								home/hyprland/waybar/single.nix
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,150 @@
 | 
			
		||||
{
 | 
			
		||||
  enable = true;
 | 
			
		||||
  settings = {
 | 
			
		||||
    mainBar = {
 | 
			
		||||
      layer = "top";
 | 
			
		||||
      position = "top";
 | 
			
		||||
      height = 30;
 | 
			
		||||
      output = [
 | 
			
		||||
        "eDP-1"
 | 
			
		||||
        "DP-1"
 | 
			
		||||
        "HDMI-A-1"
 | 
			
		||||
        "Virtual-1"
 | 
			
		||||
      ];
 | 
			
		||||
 | 
			
		||||
      modules-left = [
 | 
			
		||||
        "hyprland/workspaces"
 | 
			
		||||
        "mpris"
 | 
			
		||||
      ];
 | 
			
		||||
 | 
			
		||||
      modules-center = [
 | 
			
		||||
        "custom/weather"
 | 
			
		||||
      ];
 | 
			
		||||
 | 
			
		||||
      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";
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@@ -2,7 +2,7 @@
 | 
			
		||||
# your system.  Help is available in the configuration.nix(5) man page
 | 
			
		||||
# and in the NixOS manual (accessible by running ‘nixos-help’).
 | 
			
		||||
 | 
			
		||||
{ config, pkgs, ... }:
 | 
			
		||||
{ config, lib, ... }:
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
  imports = [
 | 
			
		||||
 
 | 
			
		||||
@@ -3,9 +3,7 @@
 | 
			
		||||
# and in the NixOS manual (accessible by running ‘nixos-help’).
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
  config,
 | 
			
		||||
  pkgs,
 | 
			
		||||
  lib,
 | 
			
		||||
  ...
 | 
			
		||||
}:
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,7 @@
 | 
			
		||||
# 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, ... }:
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
  imports = [
 | 
			
		||||
 
 | 
			
		||||
@@ -6,6 +6,7 @@
 | 
			
		||||
      material-icons
 | 
			
		||||
      material-black-colors
 | 
			
		||||
      material-design-icons
 | 
			
		||||
      icomoon-feather
 | 
			
		||||
 | 
			
		||||
      # normal fonts
 | 
			
		||||
      noto-fonts
 | 
			
		||||
 
 | 
			
		||||
@@ -8,11 +8,17 @@
 | 
			
		||||
    geoclue2.enable = true;
 | 
			
		||||
    xserver.enable = true;
 | 
			
		||||
 | 
			
		||||
    udev.packages = with pkgs; [ pkgs.gnome-settings-daemon ];
 | 
			
		||||
    udev.packages = with pkgs; [ gnome-settings-daemon ];
 | 
			
		||||
 | 
			
		||||
    # Enable CUPS to print documents.
 | 
			
		||||
    printing.enable = true;
 | 
			
		||||
 | 
			
		||||
    power-profiles-daemon.enable = true;
 | 
			
		||||
    logind.extraConfig = ''
 | 
			
		||||
              HandlePowerKey=ignore
 | 
			
		||||
            	HandleSuspendKey=ignore 
 | 
			
		||||
            	HandleHibernateKey=ignore
 | 
			
		||||
      		'';
 | 
			
		||||
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,7 @@
 | 
			
		||||
{ pkgs, catppuccin, ... }:
 | 
			
		||||
{
 | 
			
		||||
  catppuccin,
 | 
			
		||||
  ...
 | 
			
		||||
}:
 | 
			
		||||
{
 | 
			
		||||
  ##################################################################################################################
 | 
			
		||||
  #
 | 
			
		||||
@@ -11,8 +14,6 @@
 | 
			
		||||
    ../../home/xdg.nix # Bindings
 | 
			
		||||
 | 
			
		||||
    ../../home/hyprland # Window Manager
 | 
			
		||||
    #    ../../home/themes/dark
 | 
			
		||||
    ../../home/hyprland/waybar/double-monitor.nix
 | 
			
		||||
 | 
			
		||||
    ../../home/programs/dev # Dev Tools
 | 
			
		||||
 | 
			
		||||
@@ -27,8 +28,6 @@
 | 
			
		||||
    ../../home/programs/productivity/obsidian.nix
 | 
			
		||||
 | 
			
		||||
    ../../home/programs/social/element.nix
 | 
			
		||||
    #    ../../home/programs/social/webcord.nix
 | 
			
		||||
    #    ../../home/programs/social/nixcord.nix
 | 
			
		||||
    ../../home/programs/social/zapzap.nix
 | 
			
		||||
    ../../home/programs/social/teamspeak.nix
 | 
			
		||||
 | 
			
		||||
@@ -38,12 +37,10 @@
 | 
			
		||||
 | 
			
		||||
    # Games
 | 
			
		||||
    ../../home/programs/games/itch.nix
 | 
			
		||||
    #    ../../home/programs/games/steam.nix
 | 
			
		||||
    ../../home/programs/games/lutris.nix
 | 
			
		||||
    ../../home/programs/games/opensource.nix
 | 
			
		||||
    ../../home/programs/games/airshipper.nix
 | 
			
		||||
 | 
			
		||||
    catppuccin.homeModules.catppuccin
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  catppuccin = {
 | 
			
		||||
@@ -56,6 +53,4 @@
 | 
			
		||||
    userEmail = "p.keier@beyerstedt-it.de";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  home.file.".config/hypr/hyprland.conf".enable = false;
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										156
									
								
								wl-copy
									
									
									
									
									
								
							
							
						
						
									
										156
									
								
								wl-copy
									
									
									
									
									
								
							@@ -1,156 +0,0 @@
 | 
			
		||||
{
 | 
			
		||||
  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