Hyprland icon indicating copy to clipboard operation
Hyprland copied to clipboard

Plugin version mismatch on nixos

Open Uncorrupt3318 opened this issue 1 year ago • 33 comments

Regression?

No

System Info and Version

System/Version info
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

Uncorrupt3318 avatar Jul 17 '24 09:07 Uncorrupt3318

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.

donovanglover avatar Jul 17 '24 11:07 donovanglover

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.

Uncorrupt3318 avatar Jul 17 '24 14:07 Uncorrupt3318

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.

fufexan avatar Jul 17 '24 20:07 fufexan

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 avatar Jul 17 '24 20:07 Uncorrupt3318

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

Uncorrupt3318 avatar Jul 18 '24 10:07 Uncorrupt3318

Hyprexpo from nixpkgs or from hyprland-plugins?

fufexan avatar Jul 18 '24 16:07 fufexan

Hyprland-plugins

Uncorrupt3318 avatar Jul 18 '24 16:07 Uncorrupt3318

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

fufexan avatar Jul 18 '24 17:07 fufexan

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

Uncorrupt3318 avatar Jul 19 '24 06:07 Uncorrupt3318

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?

fufexan avatar Jul 26 '24 20:07 fufexan

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 :/

Uncorrupt3318 avatar Jul 26 '24 20:07 Uncorrupt3318

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.

fufexan avatar Jul 26 '24 20:07 fufexan

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

Uncorrupt3318 avatar Jul 26 '24 20:07 Uncorrupt3318

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

fufexan avatar Jul 26 '24 20:07 fufexan

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

Uncorrupt3318 avatar Jul 26 '24 20:07 Uncorrupt3318

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?

Uncorrupt3318 avatar Jul 26 '24 20:07 Uncorrupt3318

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

fufexan avatar Jul 26 '24 21:07 fufexan

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!

PolarizedIons avatar Jul 29 '24 18:07 PolarizedIons

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

I tried:

  • enabling the plugin in the flake, nixos-rebuild switch, reboot
  • enabling the plugin in the flake, nixos-rebuild boot, reboot

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.

Uncorrupt3318 avatar Jul 29 '24 19:07 Uncorrupt3318

@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 .

PolarizedIons avatar Jul 29 '24 19:07 PolarizedIons

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

Uncorrupt3318 avatar Jul 29 '24 20:07 Uncorrupt3318

@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.

PolarizedIons avatar Jul 31 '24 20:07 PolarizedIons

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

Uncorrupt3318 avatar Jul 31 '24 20:07 Uncorrupt3318

I am facing the same thing with hyprbars

Vortriz avatar Aug 01 '24 17:08 Vortriz

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

PolarizedIons avatar Aug 01 '24 18:08 PolarizedIons

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

Uncorrupt3318 avatar Aug 01 '24 19:08 Uncorrupt3318

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.

Vortriz avatar Aug 02 '24 06:08 Vortriz

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.

niksingh710 avatar Oct 14 '24 22:10 niksingh710

@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?

fufexan avatar Oct 15 '24 13:10 fufexan

@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
  ];
}

niksingh710 avatar Oct 15 '24 17:10 niksingh710