hyprwm / Hyprland

Hyprland is an independent, highly customizable, dynamic tiling Wayland compositor that doesn't sacrifice on its looks.
https://hyprland.org
BSD 3-Clause "New" or "Revised" License
21.95k stars 912 forks source link

Plugin version mismatch on nixos #6910

Open Uncorrupt3318 opened 4 months ago

Uncorrupt3318 commented 4 months ago

Regression?

No

System Info and Version

System/Version info ```sh Hyprland, built from branch main at commit 918d8340afd652b011b937d29d5eea0be08467f5 (flake.lock: update). Date: 2024-06-25 Tag: v0.41.2, commits: 918d8340afd652b011b937d29d5eea0be08467f5 flags: (if any) System Information: System name: Linux Node name: xxxxxx Release: 6.6.39 Version: #1-NixOS SMP PREEMPT_DYNAMIC Thu Jul 11 10:49:22 UTC 2024 GPU information: 28:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 31 [Radeon RX 7900 XT/7900 XTX/7900M] [1002:744c] (rev cc) (prog-if 00 [VGA controller]) os-release: ANSI_COLOR="1;34" BUG_REPORT_URL="https://github.com/NixOS/nixpkgs/issues" BUILD_ID="24.05.20240714.53e81e7" DOCUMENTATION_URL="https://nixos.org/learn.html" HOME_URL="https://nixos.org/" ID=nixos IMAGE_ID="" IMAGE_VERSION="" LOGO="nix-snowflake" NAME=NixOS PRETTY_NAME="NixOS 24.05 (Uakari)" SUPPORT_END="2024-12-31" SUPPORT_URL="https://nixos.org/community.html" VERSION="24.05 (Uakari)" VERSION_CODENAME=uakari VERSION_ID="24.05" plugins: ======Config-Start====== Config File: /home/xxxxxx/.config/hypr/hyprland.conf: Read Succeeded exec-once = /nix/store/nn54yahdasinv9hyk1hjwpakw8sqqyq0-dbus-1.14.10/bin/dbus-update-activation-environment --systemd DISPLAY HYPRLAND_INSTANCE_SIGNATURE WAYLAND_DISPLAY XDG_CURRENT_DESKTOP && systemctl --user stop hyprland-session.target && systemctl --user start hyprland-session.target plugin=/nix/store/611ni8dn971ab7wa5r25vlqnsm9zx27f-hyprsplit-0.1/lib/libhyprsplit.so #exec-once = /nix/store/nn54yahdasinv9hyk1hjwpakw8sqqyq0-dbus-1.14.10/bin/dbus-update-activation-environment --systemd DISPLAY HYPRLAND_INSTANCE_SIGNATURE WAYLAND_DISPLAY XDG_CURRENT_DESKTOP && systemctl --user stop hyprland-session.target && systemctl --user start hyprland-session.target # https://wiki.hyprland.org/Configuring/Configuring-Hyprland/ ################ ### MONITORS ### ################ # See https://wiki.hyprland.org/Configuring/Monitors/ monitor=DP-1,1920x1080@60,0x0,1 monitor=DP-3,1920x1080@60,-1920x75,1 ################### ### MY PROGRAMS ### ################### # See https://wiki.hyprland.org/Configuring/Keywords/ # Set programs that you use $terminal = kitty $fileManager = thunar $menu = wofi --show drun ################# ### AUTOSTART ### ################# exec-once = easyeffects --gapplication-service ############################# ### ENVIRONMENT VARIABLES ### ############################# # See https://wiki.hyprland.org/Configuring/Environment-variables/ env = XCURSOR_SIZE,24 env = HYPRCURSOR_SIZE,24 exec-once = hyprctl setcursor capitaine-cursors-light 24 ##################### ### LOOK AND FEEL ### ##################### # Refer to https://wiki.hyprland.org/Configuring/Variables/ # https://wiki.hyprland.org/Configuring/Variables/#general general { gaps_in = 5 gaps_out = 20 border_size = 2 # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors col.active_border = rgba(b4d6f2aa) col.inactive_border = rgba(595959aa) # Set to true enable resizing windows by clicking and dragging on borders and gaps resize_on_border = false # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on allow_tearing = false layout = dwindle } # https://wiki.hyprland.org/Configuring/Variables/#decoration decoration { rounding = 10 drop_shadow = true shadow_range = 4 shadow_render_power = 3 col.shadow = rgba(1a1a1aee) # https://wiki.hyprland.org/Configuring/Variables/#blur blur { enabled = true size = 5 passes = 3 new_optimizations=true } } # https://wiki.hyprland.org/Configuring/Variables/#animations animations { enabled = true # Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more bezier = myBezier, 0.05, 0.9, 0.1, 1.05 animation = windows, 1, 7, myBezier animation = windowsOut, 1, 7, default, popin 80% animation = border, 1, 10, default animation = borderangle, 1, 8, default animation = fade, 1, 7, default animation = workspaces, 1, 6, default } # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more dwindle { pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below preserve_split = true # You probably want this } # https://wiki.hyprland.org/Configuring/Variables/#misc misc { force_default_wallpaper = 0 # Set to 0 or 1 to disable the anime mascot wallpapers disable_hyprland_logo = true # If true disables the random hyprland logo / anime girl background. :( disable_splash_rendering = true focus_on_activate = true } binds { workspace_back_and_forth = true workspace_center_on = 1 } ############# ### INPUT ### ############# # https://wiki.hyprland.org/Configuring/Variables/#input input { kb_layout = us,pl kb_variant = kb_model = kb_options = kb_rules = follow_mouse = 1 sensitivity = 0 # -1.0 - 1.0, 0 means no modification. touchpad { natural_scroll = false } } # https://wiki.hyprland.org/Configuring/Variables/#gestures gestures { workspace_swipe = false } # 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 } #################### ### KEYBINDINGSS ### #################### # See https://wiki.hyprland.org/Configuring/Keywords/ $mainMod = SUPER # Sets "Windows" key as main modifier # Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more bind = $mainMod, Q, exec, $terminal bind = $mainMod SHIFT, C, killactive, bind = $mainMod, M, fullscreen, 1 bind = $mainMod, E, exec, $fileManager bind = $mainMod, F, togglefloating, bind = $mainMod, B, exec, floorp bind = $mainMod, D, exec, vesktop --enable-features=VaapiIgnoreDriverChecks,VaapiVideoEncoder,VaapiVideoDecoder,CanvasOopRasterization,UseMultiPlaneFormatForHardwareVideo bind = $mainMod, K, exec, hyprctl switchxkblayout royuan-akko-multi-modes-keyboard-b next bind = $mainMod, R, fullscreen # Move focus with mainMod + arrow keys bind = $mainMod, left, movewindow, l bind = $mainMod, right, movewindow, r bind = $mainMod CTRL_L, left, swapactiveworkspaces, DP-1 DP-3 bind = $mainMod CTRL_L, right, swapactiveworkspaces, DP-1 DP-3 # Switch workspaces with mainMod + [0-9] bind = $mainMod, 1, workspace, 1 bind = $mainMod, 2, workspace, 2 bind = $mainMod, 3, workspace, 3 bind = $mainMod, 4, workspace, 4 bind = $mainMod, 5, workspace, 5 bind = $mainMod, 6, workspace, 6 bind = $mainMod, 7, workspace, 7 bind = $mainMod, 8, workspace, 8 bind = $mainMod, 9, workspace, 9 bind = $mainMod, 0, workspace, 10 # Move active window to a workspace with mainMod + SHIFT + [0-9] bind = $mainMod SHIFT, 1, movetoworkspace, 1 bind = $mainMod SHIFT, 2, movetoworkspace, 2 bind = $mainMod SHIFT, 3, movetoworkspace, 3 bind = $mainMod SHIFT, 4, movetoworkspace, 4 bind = $mainMod SHIFT, 5, movetoworkspace, 5 bind = $mainMod SHIFT, 6, movetoworkspace, 6 bind = $mainMod SHIFT, 7, movetoworkspace, 7 bind = $mainMod SHIFT, 8, movetoworkspace, 8 bind = $mainMod SHIFT, 9, movetoworkspace, 9 bind = $mainMod SHIFT, 0, movetoworkspace, 10 # Scroll through existing workspaces with mainMod + scroll bind = $mainMod, mouse_down, workspace, e+1 bind = $mainMod, mouse_up, workspace, e-1 # Move/resize windows with mainMod + LMB/RMB and dragging bindm = $mainMod, mouse:272, movewindow bindm = $mainMod, mouse:273, resizewindow # Asking for password in various situations exec-once=/usr/lib/polkit-kde-authentication-agent-1 # Waybar exec-once=waybar # rofi bind = CTRL, SPACE, exec, rofi -show combi -combi-modes "window,drun" -modes combi # grimblast (screenshots) bind = SHIFT, PRINT, exec, grimblast save area bind = , PRINT, exec, grimblast copy area bind = CTRL_SHIFT, PRINT, exec, grimblast save output bind = CTRL, PRINT, exec, grimblast copy output # copyq exec-once = copyq --start-server bind = $mainMod, V, exec, copyq show windowrule = float,(com.github.hluk.copyq) windowrule = size 400 250,(com.github.hluk.copyq) # waybar reload bind = SUPER, M, exec, killall waybar && waybar # Wallpaper exec-once = swaybg -i .config/wallpapers/stars.jpg -m fit layerrule = noanim, swaybg # League of Legends windowrule = fullscreen,(league of legends.exe) windowrule = monitor DP-1,(league of legends.exe) # GTA 5 windowrulev2 = fullscreen,class:(steam_app_271590),title:(Grand Theft Auto V) windowrule = monitor DP-1,title:(Grand Theft Auto V) bind = SUPER_ALT, G, exec, pkill -STOP GTA5.exe && sleep 10 && pkill -CONT GTA5.exe # play pause next previous bind = $mainMod, Z, exec, playerctl previous bind = $mainMod, X, exec, playerctl next bind = $mainMod, C, exec, playerctl play-pause # nwg-bar bind = $mainMod, L, exec, nwg-bar # steam friends list windowrulev2 = float,title:(Friends List) # File Operation Progress windowrulev2 = float,title:(File Operation Progress) windowrule = move 1450 75,title:(File Operation Progress) windowrule = noinitialfocus,title:(File Operation Progress) # File Operation Dialog windowrulev2 = float,title:(Confirm to replace files) # File upload window windowrule = size 960 700,title:(File Upload) windowrule = move 500 200,title:(File Upload) # Hyprshade exec-once = dbus-update-activation-environment --systemd HYPRLAND_INSTANCE_SIGNATURE exec = hyprshade auto bind = $mainMod, H, exec, hyprshade toggle ======Config-End======== ```

Description

Hi, I'm trying to install hyprsplit, but I'm getting hyprsplit: Failure in initialization: Version mismatch (headers ver is not equal to running hyprland ver. Configs seem correct, but there must be something wrong if it doesn't work.

I've asked the hyprsplit author, but he doesn't use nix, so I thought I would have more luck here.

How to reproduce

flake.nix

  inputs = {
    nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05";
    hyprland.url = "git+https://github.com/hyprwm/Hyprland?submodules=1";
    hyprsplit = {
      url = "github:shezdy/hyprsplit/main";
      inputs.hyprland.follows = "hyprland";
    };
    home-manager = {
      url = "github:nix-community/home-manager/release-24.05";
      inputs.nixpkgs.follows = "nixpkgs";
    };
  };

  ...

    outputs = { nixpkgs, hyprland, home-manager, ... } @ inputs:
  {
    nixosConfigurations.kubapc = nixpkgs.lib.nixosSystem {
      specialArgs = { inherit inputs; };

      ...

        home-manager.nixosModules.home-manager
        {
          home-manager.extraSpecialArgs = { inherit inputs; };
          home-manager.useGlobalPkgs = true;
          home-manager.useUserPackages = true;
          home-manager.users.jakub = import ./home.nix;

          # Optionally, use home-manager.extraSpecialArgs to pass
          # arguments to home.nix
        }
      ];
   };

  };
}

home.nix

{ config, pkgs, inputs, ... }:

{
  wayland.windowManager.hyprland.enable = true;
  wayland.windowManager.hyprland.extraConfig = ''${builtins.readFile ./dotfiles/hypr/hyprland.conf}'';
  wayland.windowManager.hyprland.plugins = [ inputs.hyprsplit.packages.${pkgs.stdenv.hostPlatform.system}.hyprsplit ];
}

configuration.nix

  programs.hyprland.enable = true;
  programs.hyprland.package = inputs.hyprland.packages."${pkgs.system}".hyprland;

Crash reports, logs, images, videos

No response

donovanglover commented 4 months ago

Make sure you're starting the correct Hyprland version from your display manager. With the flake you'll want to make sure that you don't use pkgs.hyprland anywhere in the config.

You can also try packaging the plugin for nixpkgs and using that instead of the Hyprland flake, which simplifies the config a bit.

Uncorrupt3318 commented 4 months ago

Make sure you're starting the correct Hyprland version from your display manager

Still doesn't work. I added services.displayManager.sddm.settings.Wayland.SessionDir = "${inputs.hyprland.packages.x86_64-linux.hyprland}/share/wayland-sessions"; still no dice.

don't use pkgs.hyprland anywhere in the config

I don't use it in any of the configuration, flake or home files. Only the inputs.hyprland.packages...

You can also try packaging the plugin

Might be the easiest to do honestly, but I'll see if anyone has any other suggestions first.

fufexan commented 4 months ago

I suspect the issue comes from hyprsplit not using the same stdenv as hyprland (https://github.com/shezdy/hyprsplit/blob/main/flake.nix#L18). A simple inputs.hyprland.packages.${system}.default.stdenv.mkDerivation in place of pkgs.stdenv.mkDerivation should do the trick.

Uncorrupt3318 commented 4 months ago

So I cloned the hyprsplit repo, changed what you said. Updated the flake in the repo. Changed the input of the main flake to the local repo. Aaaaand it still doesn't work. I feel like I'm doing something wrong, but I have no clue how to find that error

Uncorrupt3318 commented 4 months ago

Fun fact, I tried installing the hyprexpo plugin just now, and it has exactly the same error.

Please keep in mind I only switched to nixos recently, and I can be making just some basic mistake

fufexan commented 4 months ago

Hyprexpo from nixpkgs or from hyprland-plugins?

Uncorrupt3318 commented 4 months ago

Hyprland-plugins

fufexan commented 4 months ago

Trying to repro, but I'm hitting other issues while at it. Will post when I'm done.

Uncorrupt3318 commented 4 months ago

Awesome, thanks! Let me know if you need any more info or anything

fufexan commented 4 months ago

Sorry I didn't get back to you on this, but I haven't had time to test. Does it still happen now, after the aquamarine merge?

Uncorrupt3318 commented 4 months ago

No problem, everyone's busy :) Yeah it still happens for both hyprsplit and hyprexpo, and probably the rest of the plugins as well. It's probably my config, or something that I did that messed something up :/

fufexan commented 4 months ago

In my case it seems to load just fine using hyprctl plugin load /path/to/libhyprexpo.so. I'll test adding it to the config shortly.

Uncorrupt3318 commented 4 months ago

I tried the same thing just now

error in loading plugin, last error: Plugin /nix/store/hmhhaspiaw38xnn5b4nnr1c8dqxzb29j-hyprexpo-0.1/lib/libhyprexpo.so could not be loaded: plugin crashed/threw in main: [he] Version mismatch

I think it actually builds with a different version, but I have no idea how. Even tho hyprland-plugins follows hyprland in the flake.

├───Hyprspace: github:KZDKM/Hyprspace/e8662093ae5b6e13a3cf1145d21d4804a3e84aeb
│   └───hyprland follows input 'hyprland'
├───home-manager: github:nix-community/home-manager/e1391fb22e18a36f57e6999c7a9f966dc80ac073
│   └───nixpkgs follows input 'nixpkgs'
├───hyprland: git+https://github.com/hyprwm/Hyprland?ref=refs/heads/main&rev=33a5c8ce325e1657ec5571b57e05c6378706f4cd
│   ├───aquamarine: github:hyprwm/aquamarine/353dc1b7299d43f08de44276b93ae32726ff9d70
│   │   ├───hyprutils follows input 'hyprland/hyprutils'
│   │   ├───hyprwayland-scanner follows input 'hyprland/hyprwayland-scanner'
│   │   ├───nixpkgs follows input 'hyprland/nixpkgs'
│   │   └───systems follows input 'hyprland/systems'
│   ├───hyprcursor: github:hyprwm/hyprcursor/4493a972b48f9c3014befbbf381ed5fff91a65dc
│   │   ├───hyprlang follows input 'hyprland/hyprlang'
│   │   ├───nixpkgs follows input 'hyprland/nixpkgs'
│   │   └───systems follows input 'hyprland/systems'
│   ├───hyprlang: github:hyprwm/hyprlang/adbefbf49664a6c2c8bf36b6487fd31e3eb68086
│   │   ├───hyprutils follows input 'hyprland/hyprutils'
│   │   ├───nixpkgs follows input 'hyprland/nixpkgs'
│   │   └───systems follows input 'hyprland/systems'
│   ├───hyprutils: github:hyprwm/hyprutils/962582a090bc233c4de9d9897f46794280288989
│   │   ├───nixpkgs follows input 'hyprland/nixpkgs'
│   │   └───systems follows input 'hyprland/systems'
│   ├───hyprwayland-scanner: github:hyprwm/hyprwayland-scanner/a048a6cb015340bd82f97c1f40a4b595ca85cc30
│   │   ├───nixpkgs follows input 'hyprland/nixpkgs'
│   │   └───systems follows input 'hyprland/systems'
│   ├───nixpkgs: github:NixOS/nixpkgs/1d9c2c9b3e71b9ee663d11c5d298727dace8d374
│   ├───systems: github:nix-systems/default-linux/31732fcf5e8fea42e59c2488ad31a0e651500f68
│   └───xdph: github:hyprwm/xdg-desktop-portal-hyprland/663be9cad424b170b28b9fa8a61042d721007f3b
│       ├───hyprland-protocols: github:hyprwm/hyprland-protocols/1b61f0093afff20ab44d88ad707aed8bf2215290
│       │   ├───nixpkgs follows input 'hyprland/xdph/nixpkgs'
│       │   └───systems follows input 'hyprland/xdph/systems'
│       ├───hyprlang follows input 'hyprland/hyprlang'
│       ├───nixpkgs follows input 'hyprland/nixpkgs'
│       └───systems follows input 'hyprland/systems'
├───hyprland-plugins: github:hyprwm/hyprland-plugins/4c2cef8326711fbd91b7a313f095545eb50d2a57
│   ├───hyprland follows input 'hyprland'
│   ├───nixpkgs follows input 'hyprland-plugins/hyprland/nixpkgs'
│   └───systems follows input 'hyprland-plugins/hyprland/systems'
├───hyprsplit: github:shezdy/hyprsplit/fcf00b770e3b89fd93de2de1bb5e68721090f5fe
│   └───hyprland follows input 'hyprland'
├───nixpkgs: github:nixos/nixpkgs/d0907b75146a0ccc1ec0d6c3db287ec287588ef6
└───nixpkgs-unstable: github:nixos/nixpkgs/4f02464258baaf54992debfd010a7a3662a25536
fufexan commented 4 months ago

Can you remove the lockfile and then nix flake lock to regenerate it? In some weird cases the lockfile isn't updated properly.

Uncorrupt3318 commented 4 months ago

Should I try adding the plugin now, or should I nix flake update before? (better ask lol)

Uncorrupt3318 commented 4 months ago

Never mind, I tried both, still the same thing. Can it be that home-manager has to be on the same nixpkgs as hyprland and by extension, the plugins?

fufexan commented 4 months ago

No, all it does is it sets up your config nix -> hyprlang. The problem lies between hyprland and the plugins.

PolarizedIons commented 4 months ago

I had the exact same issue, spent about 9 hours debugging and searching online. Turns out, for me at least, that switch-ing nix profiles doesn't play nicely with hyprland. Once I enabled the plugins, and received the mismatch errors, I simply rebooted and they loaded fine afterwards. Hope this can help someone!

Uncorrupt3318 commented 4 months ago

Okay, I'm curious, but could you explain step by step what you did please?

I tried:

And neither work. I guess they're both switching the profile. So what do you mean by

Once I enabled the plugins, and received the mismatch errors, I simply rebooted and they loaded fine afterwards.

PolarizedIons commented 4 months ago

@jeikashu sorry, I meant nixos-rebuild switch alone didn't work. I rebooted afterwards and it did. You're welcome to look at my config to see if there's maybe something different from your one https://github.com/PolarizedIons/nixos-config/tree/7a2e79e0d1a0180eb2323b01c650c335ed594e6a .

Uncorrupt3318 commented 4 months ago

Yeah that didn't work :/. I saw your config, but it really seems the same as mine. I installed NixOS to not have to deal with this, and here I am lmao

PolarizedIons commented 4 months ago

@jeikashu only other thing I can think of, is that I ran sudo nix-collect-garbage -d not too long before I made that comment.

Uncorrupt3318 commented 4 months ago

Tried just now, and nothing (: How is this even possible lmao

Vortriz commented 4 months ago

I am facing the same thing with hyprbars

PolarizedIons commented 4 months ago

Maybe make sure you're using inputs.hyprland.homeManagerModules.default home manager module, and inputs.hyprland.nixosModules.default nixos module, since they setup some stuff iirc as well

Uncorrupt3318 commented 4 months ago

Might have worked, but after adding inputs.hyprland.homeManagerModules.default to hyprland flake and inputs.hyprland.nixosModules.default to configuration.nix, Hyprland-wrapp dumps core lol

Vortriz commented 4 months ago

Maybe make sure you're using inputs.hyprland.homeManagerModules.default home manager module, and inputs.hyprland.nixosModules.default nixos module, since they setup some stuff iirc as well

I did but hyprland completely failed to open from terminal. So i just kept nixos module. It opened but still getting the same error.

niksingh710 commented 1 month ago

Just tried installing plugins and faced this mismatch error.

i have cachix enabled

and my flake.nix is

   hyprland.url = "github:hyprwm/Hyprland";
    hyprland-plugins = {
      url = "github:hyprwm/hyprland-plugins";
      inputs.hyprland.follows = "hyprland";
    };

and everywhere i have made sure to use this input hyprland only.

fufexan commented 1 month ago

@niksingh710 I've just compiled the whole hyprland-plugins repo with the latest hyprland with no errors. Can you provide more info? Are you sure your inputs are up to date?

niksingh710 commented 1 month ago

@fufexan Just updated my whole flake and below is the details.

image

image

flake.lock

    nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
    hyprland.url = "github:hyprwm/Hyprland";
    hyprland-plugins = {
      url = "github:hyprwm/hyprland-plugins";
      inputs.hyprland.follows = "hyprland";
    };

Overlay

nixpkgs.overlays = [   
(next: prev: {  
wmhypr = inputs.hyprland.inputs.nixpkgs.legacyPackages.${prev.system};
})
];

Hyprland Config

programs.hyprland = {
enable = true;
package = pkgs.wmhypr.hyprland;
portalPackage = pkgs.wmhypr.xdg-desktop-portal-hyprland;
};

plugins.nix

{ inputs, pkgs, ... }: {
wayland.windowManager.hyprland.plugins = [
inputs.hyprland-plugins.packages.${pkgs.system}.hyprtrails
];
}
fufexan commented 1 month ago

Weird. Maybe needs a bump or something.

h3xitsec commented 1 month ago

i have the same issue here on NixOS unstable;

flake.nix input

hyprland.url = "github:hyprwm/Hyprland";
hyprland-plugins.url = "github:hyprwm/hyprland-plugins";
hyprland-plugins.inputs.hyprland.follows = "hyprland";

system config

programs.hyprland = {
    enable = true;
    package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
    xwayland.enable = true;
  };

home-manager config

programs.hyprland.enable = true;
programs.hyprland.package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;1

flake.lock

"hyprland": {
      "inputs": {
        "aquamarine": "aquamarine",
        "hyprcursor": "hyprcursor",
        "hyprland-protocols": "hyprland-protocols",
        "hyprlang": "hyprlang_2",
        "hyprutils": "hyprutils_2",
        "hyprwayland-scanner": "hyprwayland-scanner",
        "nixpkgs": "nixpkgs_2",
        "pre-commit-hooks": "pre-commit-hooks",
        "systems": "systems_2",
        "xdph": "xdph"
      },
      "locked": {
        "lastModified": 1729905757,
        "narHash": "sha256-4KlQKI/SqiF25pMr7tLZbqHXFdEeoT1KZF+b/6Af7yw=",
        "owner": "hyprwm",
        "repo": "Hyprland",
        "rev": "0b29caf9ab86518ff474eed5e7d19c12f96ebbd0",
        "type": "github"
      },
      "original": {
        "owner": "hyprwm",
        "repo": "Hyprland",
        "type": "github"
      }
    },
    "hyprland-plugins": {
      "inputs": {
        "hyprland": [
          "hyprland"
        ],
        "nixpkgs": [
          "hyprland-plugins",
          "hyprland",
          "nixpkgs"
        ],
        "systems": [
          "hyprland-plugins",
          "hyprland",
          "systems"
        ]
      },
      "locked": {
        "lastModified": 1729596320,
        "narHash": "sha256-sBPr6O2Ad916f+L7biAjmJVx4TLDITC4joKgeOT47V8=",
        "owner": "hyprwm",
        "repo": "hyprland-plugins",
        "rev": "4d7f0b5d8b952f31f7d2e29af22ab0a55ca5c219",
        "type": "github"
      },
      "original": {
        "owner": "hyprwm",
        "repo": "hyprland-plugins",
        "type": "github"
      }
    },