summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/apps/default.nix15
-rw-r--r--lib/astal/gtk3/default.nix21
-rw-r--r--lib/astal/gtk3/src/widget/icon.vala19
-rw-r--r--lib/astal/gtk4/default.nix21
-rw-r--r--lib/astal/io/default.nix12
-rw-r--r--lib/auth/default.nix15
-rw-r--r--lib/battery/default.nix15
-rw-r--r--lib/bluetooth/default.nix10
-rw-r--r--lib/cava/default.nix56
-rw-r--r--lib/greet/default.nix15
-rw-r--r--lib/hyprland/default.nix15
-rw-r--r--lib/mpris/default.nix15
-rw-r--r--lib/network/default.nix16
-rw-r--r--lib/notifd/default.nix15
-rw-r--r--lib/powerprofiles/default.nix15
-rw-r--r--lib/river/default.nix15
-rw-r--r--lib/tray/default.nix41
-rw-r--r--lib/wireplumber/default.nix16
18 files changed, 344 insertions, 3 deletions
diff --git a/lib/apps/default.nix b/lib/apps/default.nix
new file mode 100644
index 0000000..64466a2
--- /dev/null
+++ b/lib/apps/default.nix
@@ -0,0 +1,15 @@
+{
+ mkAstalPkg,
+ pkgs,
+ ...
+}:
+mkAstalPkg {
+ pname = "astal-apps";
+ src = ./.;
+ packages = [pkgs.json-glib];
+
+ libname = "apps";
+ gir-suffix = "Apps";
+ authors = "Aylur";
+ description = "Application query library";
+}
diff --git a/lib/astal/gtk3/default.nix b/lib/astal/gtk3/default.nix
new file mode 100644
index 0000000..c86f3de
--- /dev/null
+++ b/lib/astal/gtk3/default.nix
@@ -0,0 +1,21 @@
+{
+ mkAstalPkg,
+ pkgs,
+ self,
+}:
+mkAstalPkg {
+ pname = "astal3";
+ src = ./.;
+ packages = [
+ self.packages.${pkgs.system}.io
+ pkgs.gtk3
+ pkgs.gtk-layer-shell
+ ];
+
+ libname = "astal3";
+ gir-suffix = "";
+ authors = "Aylur";
+ description = "Astal GTK3 widget library";
+ dependencies = ["AstalIO-0.1" "Gtk-3.0"];
+ repo-path = "astal/gtk3";
+}
diff --git a/lib/astal/gtk3/src/widget/icon.vala b/lib/astal/gtk3/src/widget/icon.vala
index 9a20359..ee6808c 100644
--- a/lib/astal/gtk3/src/widget/icon.vala
+++ b/lib/astal/gtk3/src/widget/icon.vala
@@ -9,7 +9,21 @@ public class Astal.Icon : Gtk.Image {
private double size { get; set; default = 14; }
public new Gdk.Pixbuf pixbuf { get; set; }
- public GLib.Icon g_icon { get; set; }
+
+ private static bool gicon_warned = false;
+ [Version (deprecated = true, deprecated_since = "0.1.0", replacement = "gicon")]
+ public GLib.Icon g_icon {
+ owned get {
+ return this.gicon;
+ }
+ set {
+ if( !gicon_warned ) {
+ GLib.warning("g-icon is deprecated. Use gicon instead.");
+ gicon_warned = true;
+ }
+ this.gicon = value;
+ }
+ }
/**
* Either a named icon or a path to a file.
@@ -57,7 +71,6 @@ public class Astal.Icon : Gtk.Image {
break;
case IconType.GICON:
pixel_size = (int)size;
- gicon = g_icon;
break;
}
@@ -86,7 +99,7 @@ public class Astal.Icon : Gtk.Image {
display_icon.begin();
});
- notify["g-icon"].connect(() => {
+ notify["gicon"].connect(() => {
type = IconType.GICON;
display_icon.begin();
});
diff --git a/lib/astal/gtk4/default.nix b/lib/astal/gtk4/default.nix
new file mode 100644
index 0000000..0bca3c0
--- /dev/null
+++ b/lib/astal/gtk4/default.nix
@@ -0,0 +1,21 @@
+{
+ mkAstalPkg,
+ pkgs,
+ self,
+}:
+mkAstalPkg {
+ pname = "astal4";
+ src = ./.;
+ packages = [
+ self.packages.${pkgs.system}.io
+ pkgs.gtk4
+ pkgs.gtk4-layer-shell
+ ];
+
+ libname = "astal4";
+ gir-suffix = "";
+ authors = "Aylur";
+ description = "Astal GTK4 widget library";
+ dependencies = ["AstalIO-0.1" "Gtk-4.0"];
+ repo-path = "astal/gtk4";
+}
diff --git a/lib/astal/io/default.nix b/lib/astal/io/default.nix
new file mode 100644
index 0000000..c33132a
--- /dev/null
+++ b/lib/astal/io/default.nix
@@ -0,0 +1,12 @@
+{mkAstalPkg, ...}:
+mkAstalPkg {
+ pname = "astal";
+ src = ./.;
+
+ libname = "io";
+ gir-suffix = "IO";
+ authors = "Aylur";
+ description = "Astal Core library";
+ repo-path = "astal/io";
+ website-path = "io";
+}
diff --git a/lib/auth/default.nix b/lib/auth/default.nix
new file mode 100644
index 0000000..3b8b276
--- /dev/null
+++ b/lib/auth/default.nix
@@ -0,0 +1,15 @@
+{
+ mkAstalPkg,
+ pkgs,
+ ...
+}:
+mkAstalPkg {
+ pname = "astal-auth";
+ src = ./.;
+ packages = [pkgs.pam];
+
+ libname = "auth";
+ gir-suffix = "Auth";
+ authors = "kotontrion";
+ description = "Authentication using pam";
+}
diff --git a/lib/battery/default.nix b/lib/battery/default.nix
new file mode 100644
index 0000000..17bf67a
--- /dev/null
+++ b/lib/battery/default.nix
@@ -0,0 +1,15 @@
+{
+ mkAstalPkg,
+ pkgs,
+ ...
+}:
+mkAstalPkg {
+ pname = "astal-battery";
+ src = ./.;
+ packages = [pkgs.json-glib];
+
+ libname = "battery";
+ authors = "Aylur";
+ gir-suffix = "Battery";
+ description = "DBus proxy for upowerd devices";
+}
diff --git a/lib/bluetooth/default.nix b/lib/bluetooth/default.nix
new file mode 100644
index 0000000..f2d58c8
--- /dev/null
+++ b/lib/bluetooth/default.nix
@@ -0,0 +1,10 @@
+{mkAstalPkg, ...}:
+mkAstalPkg {
+ pname = "astal-bluetooth";
+ src = ./.;
+
+ libname = "bluetooth";
+ authors = "Aylur";
+ gir-suffix = "Bluetooth";
+ description = "DBus proxy for bluez";
+}
diff --git a/lib/cava/default.nix b/lib/cava/default.nix
new file mode 100644
index 0000000..5472e8c
--- /dev/null
+++ b/lib/cava/default.nix
@@ -0,0 +1,56 @@
+{
+ mkAstalPkg,
+ pkgs,
+ ...
+}: let
+ libcava = pkgs.stdenv.mkDerivation rec {
+ pname = "cava";
+ version = "0.10.3";
+
+ src = pkgs.fetchFromGitHub {
+ owner = "LukashonakV";
+ repo = "cava";
+ rev = "0.10.3";
+ hash = "sha256-ZDFbI69ECsUTjbhlw2kHRufZbQMu+FQSMmncCJ5pagg=";
+ };
+
+ buildInputs = with pkgs; [
+ alsa-lib
+ libpulseaudio
+ ncurses
+ iniparser
+ sndio
+ SDL2
+ libGL
+ portaudio
+ jack2
+ pipewire
+ ];
+
+ propagatedBuildInputs = with pkgs; [
+ fftw
+ ];
+
+ nativeBuildInputs = with pkgs; [
+ autoreconfHook
+ autoconf-archive
+ pkgconf
+ meson
+ ninja
+ ];
+
+ preAutoreconf = ''
+ echo ${version} > version
+ '';
+ };
+in
+ mkAstalPkg {
+ pname = "astal-cava";
+ src = ./.;
+ packages = [libcava];
+
+ libname = "cava";
+ authors = "kotontrion";
+ gir-suffix = "Cava";
+ description = "Audio visualization library using cava";
+ }
diff --git a/lib/greet/default.nix b/lib/greet/default.nix
new file mode 100644
index 0000000..22b9456
--- /dev/null
+++ b/lib/greet/default.nix
@@ -0,0 +1,15 @@
+{
+ mkAstalPkg,
+ pkgs,
+ ...
+}:
+mkAstalPkg {
+ pname = "astal-greet";
+ src = ./.;
+ packages = [pkgs.json-glib];
+
+ libname = "greet";
+ authors = "Aylur";
+ gir-suffix = "Greet";
+ description = "IPC client for greetd";
+}
diff --git a/lib/hyprland/default.nix b/lib/hyprland/default.nix
new file mode 100644
index 0000000..6b5e15d
--- /dev/null
+++ b/lib/hyprland/default.nix
@@ -0,0 +1,15 @@
+{
+ mkAstalPkg,
+ pkgs,
+ ...
+}:
+mkAstalPkg {
+ pname = "astal-hyprland";
+ src = ./.;
+ packages = [pkgs.json-glib];
+
+ libname = "hyprland";
+ authors = "Aylur";
+ gir-suffix = "Hyprland";
+ description = "IPC client for Hyprland";
+}
diff --git a/lib/mpris/default.nix b/lib/mpris/default.nix
new file mode 100644
index 0000000..082c647
--- /dev/null
+++ b/lib/mpris/default.nix
@@ -0,0 +1,15 @@
+{
+ mkAstalPkg,
+ pkgs,
+ ...
+}:
+mkAstalPkg {
+ pname = "astal-mpris";
+ src = ./.;
+ packages = with pkgs; [gvfs json-glib];
+
+ libname = "mpris";
+ authors = "Aylur";
+ gir-suffix = "Mpris";
+ description = "Control mpris players";
+}
diff --git a/lib/network/default.nix b/lib/network/default.nix
new file mode 100644
index 0000000..cfa2378
--- /dev/null
+++ b/lib/network/default.nix
@@ -0,0 +1,16 @@
+{
+ mkAstalPkg,
+ pkgs,
+ ...
+}:
+mkAstalPkg {
+ pname = "astal-network";
+ src = ./.;
+ packages = [pkgs.networkmanager];
+
+ libname = "network";
+ authors = "Aylur";
+ gir-suffix = "Network";
+ description = "NetworkManager wrapper library";
+ dependencies = ["NM-1.0"];
+}
diff --git a/lib/notifd/default.nix b/lib/notifd/default.nix
new file mode 100644
index 0000000..e23528c
--- /dev/null
+++ b/lib/notifd/default.nix
@@ -0,0 +1,15 @@
+{
+ mkAstalPkg,
+ pkgs,
+ ...
+}:
+mkAstalPkg {
+ pname = "astal-notifd";
+ src = ./.;
+ packages = with pkgs; [json-glib gdk-pixbuf];
+
+ libname = "notifd";
+ authors = "Aylur";
+ gir-suffix = "Notifd";
+ description = "Notification daemon library";
+}
diff --git a/lib/powerprofiles/default.nix b/lib/powerprofiles/default.nix
new file mode 100644
index 0000000..f35f9e5
--- /dev/null
+++ b/lib/powerprofiles/default.nix
@@ -0,0 +1,15 @@
+{
+ mkAstalPkg,
+ pkgs,
+ ...
+}:
+mkAstalPkg {
+ pname = "astal-powerprofiles";
+ src = ./.;
+ packages = [pkgs.json-glib];
+
+ libname = "powerprofiles";
+ authors = "Aylur";
+ gir-suffix = "PowerProfiles";
+ description = "DBus proxy for upowerd profiles";
+}
diff --git a/lib/river/default.nix b/lib/river/default.nix
new file mode 100644
index 0000000..99f09dd
--- /dev/null
+++ b/lib/river/default.nix
@@ -0,0 +1,15 @@
+{
+ mkAstalPkg,
+ pkgs,
+ ...
+}:
+mkAstalPkg {
+ pname = "astal-river";
+ src = ./.;
+ packages = [pkgs.json-glib];
+
+ libname = "river";
+ authors = "kotontrion";
+ gir-suffix = "River";
+ description = "IPC client for River";
+}
diff --git a/lib/tray/default.nix b/lib/tray/default.nix
new file mode 100644
index 0000000..6dd0d61
--- /dev/null
+++ b/lib/tray/default.nix
@@ -0,0 +1,41 @@
+{
+ mkAstalPkg,
+ pkgs,
+ ...
+}: let
+ vala-panel-appmenu = pkgs.fetchFromGitLab {
+ owner = "vala-panel-project";
+ repo = "vala-panel-appmenu";
+ rev = "24.05";
+ hash = "sha256-8GWauw7r3zKhvGF2TNOI8GDVctUFDhtG/Vy1cNUpsVo=";
+ };
+
+ appmenu-glib-translator = pkgs.stdenv.mkDerivation {
+ pname = "appmenu-glib-translator";
+ version = "24.05";
+
+ src = "${vala-panel-appmenu}/subprojects/appmenu-glib-translator";
+
+ buildInputs = with pkgs; [
+ glib
+ ];
+
+ nativeBuildInputs = with pkgs; [
+ gobject-introspection
+ meson
+ pkg-config
+ ninja
+ vala
+ ];
+ };
+in
+ mkAstalPkg {
+ pname = "astal-tray";
+ src = ./.;
+ packages = [pkgs.json-glib appmenu-glib-translator];
+
+ libname = "tray";
+ authors = "kotontrion";
+ gir-suffix = "Tray";
+ description = "StatusNotifierItem implementation";
+ }
diff --git a/lib/wireplumber/default.nix b/lib/wireplumber/default.nix
new file mode 100644
index 0000000..f9eb832
--- /dev/null
+++ b/lib/wireplumber/default.nix
@@ -0,0 +1,16 @@
+{
+ mkAstalPkg,
+ pkgs,
+ ...
+}:
+mkAstalPkg {
+ pname = "astal-wireplumber";
+ src = ./.;
+ packages = [pkgs.wireplumber];
+
+ libname = "wireplumber";
+ authors = "kotontrion";
+ gir-suffix = "Wp";
+ description = "Wrapper library over the wireplumber API";
+ dependencies = ["WP-0.5"];
+}