commit 3432a3afae22c13b35677f27943db2650a57a289
parent fef09667cd8f6dd08199499a5780c327fdf75672
Author: Katja Ramona Sophie Kwast (zaphyra) <git@zaphyra.eu>
Date: Tue, 2 Sep 2025 21:30:40 +0200
parent fef09667cd8f6dd08199499a5780c327fdf75672
Author: Katja Ramona Sophie Kwast (zaphyra) <git@zaphyra.eu>
Date: Tue, 2 Sep 2025 21:30:40 +0200
packages: add `ironbar`
1 file changed, 115 insertions(+), 0 deletions(-)
A
|
115
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
diff --git a/packages/ironbar/package.nix b/packages/ironbar/package.nix @@ -0,0 +1,115 @@ +{ + tgcMaintainers, + gtk3, + gdk-pixbuf, + librsvg, + webp-pixbuf-loader, + gobject-introspection, + glib-networking, + glib, + udev, + libevdev, + libinput, + shared-mime-info, + gsettings-desktop-schemas, + wrapGAppsHook3, + gtk-layer-shell, + adwaita-icon-theme, + libxkbcommon, + libdbusmenu-gtk3, + openssl, + pkg-config, + hicolor-icon-theme, + unstable, + lib, + fetchFromGitHub, + luajit, + luajitPackages, + libpulseaudio, + features ? [ ], +}: + +let + hasFeature = f: features == [ ] || builtins.elem f features; + +in +unstable.rustPlatform.buildRustPackage (finalAttrs: { + pname = "ironbar"; + version = "0.16.1"; + rev = "cf8a94614efc13ef36360a8e03cc977ceacb9f00"; + srcHash = "sha256-fpveW+pVy15oJZTi2T+cEjk5BqefdLO++PaJwjBhn2Q="; + cargoHash = "sha256-VChs3PqPERlK+T2Ou8LN7q+ChPpfZGCv+KJB9jodsWU="; + + src = fetchFromGitHub { + owner = "JakeStanger"; + repo = "ironbar"; + hash = finalAttrs.srcHash; + inherit (finalAttrs) rev; + }; + + buildInputs = [ + gtk3 + gdk-pixbuf + glib + gtk-layer-shell + glib-networking + shared-mime-info + adwaita-icon-theme + hicolor-icon-theme + gsettings-desktop-schemas + libxkbcommon + udev + libevdev + libinput + ] + ++ lib.optionals (hasFeature "http") [ openssl ] + ++ lib.optionals (hasFeature "volume") [ libpulseaudio ] + ++ lib.optionals (hasFeature "cairo") [ luajit ] + ++ lib.optionals (hasFeature "tray") [ libdbusmenu-gtk3 ]; + + nativeBuildInputs = [ + pkg-config + wrapGAppsHook3 + gobject-introspection + ]; + propagatedBuildInputs = [ gtk3 ]; + + runtimeDeps = [ luajitPackages.lgi ]; + + buildNoDefaultFeatures = features != [ ]; + buildFeatures = features; + + gappsWrapperArgs = '' + # Thumbnailers + --prefix XDG_DATA_DIRS : "${gdk-pixbuf}/share" + --prefix XDG_DATA_DIRS : "${librsvg}/share" + --prefix XDG_DATA_DIRS : "${webp-pixbuf-loader}/share" + --prefix XDG_DATA_DIRS : "${shared-mime-info}/share" + + # gtk-launch + --suffix PATH : "${lib.makeBinPath [ gtk3 ]}" + '' + + lib.optionalString (hasFeature "cairo") '' + --prefix LUA_PATH : "./?.lua;${luajitPackages.lgi}/share/lua/5.1/?.lua;${luajitPackages.lgi}/share/lua/5.1/?/init.lua;${luajit}/share/lua/5.1/\?.lua;${luajit}/share/lua/5.1/?/init.lua" + --prefix LUA_CPATH : "./?.so;${luajitPackages.lgi}/lib/lua/5.1/?.so;${luajit}/lib/lua/5.1/?.so;${luajit}/lib/lua/5.1/loadall.so" + ''; + + preFixup = '' + gappsWrapperArgs+=( + ${finalAttrs.gappsWrapperArgs} + ) + ''; + + meta = with lib; { + homepage = "https://github.com/JakeStanger/ironbar"; + description = "Customizable gtk-layer-shell wlroots/sway bar written in Rust"; + license = licenses.mit; + platforms = platforms.linux; + maintainers = with maintainers; [ + yavko + donovanglover + jakestanger + ]; + mainProgram = "ironbar"; + }; +})