https://github.com/purejava/appindicator-gtk3-java
Java bindings for appindicator
https://github.com/purejava/appindicator-gtk3-java
application indicators java linux
Last synced: 16 days ago
JSON representation
Java bindings for appindicator
- Host: GitHub
- URL: https://github.com/purejava/appindicator-gtk3-java
- Owner: purejava
- License: mit
- Created: 2023-03-19T17:47:22.000Z (almost 3 years ago)
- Default Branch: develop
- Last Pushed: 2026-01-10T11:52:15.000Z (18 days ago)
- Last Synced: 2026-01-11T03:41:53.215Z (18 days ago)
- Topics: application, indicators, java, linux
- Language: Java
- Homepage:
- Size: 15 MB
- Stars: 11
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# appindicator-gtk3-java

[](https://github.com/purejava/appindicator-gtk3-java/blob/master/LICENSE)
Java bindings for libayatana-appindicator and libappindicator-gtk3 in 100% pure Java
Based on libayatana-appindicator3-1 (0.5.92-1)
Based on libappindicator3-1 (12.10.1+20.10.20200706.1-0ubuntu1)
# Requires
Java 22
- due to the use of the [Foreign Function & Memory API](https://openjdk.org/jeps/454). Please refer to an older version of this lib, if you are interested in using it with an older JDK (with `--enable-preview`).
# Usage
The bindings come in three flavors:
## Dependency including *all bindings* related to libappindicator:
- gtk-3.0
- glib-2.0
- cairo
- gdk-pixbuf-2.0
- pango-1.0
- atk-1.0
- harfbuzz
[](https://central.sonatype.com/search?q=libappindicator-gtk3-java-full&smo=true&namespace=org.purejava)
### Gradle
```groovy
implementation group: 'org.purejava', name: 'libappindicator-gtk3-java-full', version: '1.4.2'
```
### Maven
```java
org.purejava
libappindicator-gtk3-java-full
1.4.2
```
As the according jar has a size of ~9,6M, I decided to provide a **reduced variant of the bindings**, see below.
## Dependency for bindings that inlude **the following methods, class and constants**:
- app_indicator_build_menu_from_desktop
- app_indicator_get_category
- app_indicator_get_attention_icon
- app_indicator_get_id
- app_indicator_get_icon
- app_indicator_get_label
- app_indicator_get_menu
- app_indicator_get_ordering_index
- app_indicator_get_status
- app_indicator_get_title
- app_indicator_new
- app_indicator_new_with_path
- app_indicator_set_attention_icon
- app_indicator_set_icon
- app_indicator_set_label
- app_indicator_set_menu
- app_indicator_set_ordering_index
- app_indicator_set_status
- app_indicator_set_title
- g_error_free
- g_object_set_data_full
- g_signal_connect_object
- gtk_action_get_name
- gtk_action_group_new
- gtk_action_group_add_action
- gtk_action_group_add_actions
- gtk_container_add
- gtk_init
- gtk_main
- gtk_menu_item_new
- gtk_menu_item_set_label
- gtk_menu_item_set_submenu
- gtk_menu_new
- gtk_menu_shell_append
- gtk_message_dialog_new
- gtk_scrolled_window_new
- gtk_scrolled_window_set_policy
- gtk_scrolled_window_set_shadow_type
- gtk_statusbar_new
- gtk_table_new
- gtk_table_attach
- gtk_text_view_new
- gtk_widget_destroy
- gtk_widget_destroyed
- gtk_widget_grab_focus
- gtk_widget_set_sensitive
- gtk_widget_show
- gtk_widget_show_all
- gtk_window_add_accel_group
- gtk_window_new
- gtk_window_set_default_size
- gtk_window_set_icon
- gtk_window_set_icon_name
- gtk_window_set_title
- gtk_ui_manager_add_ui
- gtk_ui_manager_add_ui_from_string
- gtk_ui_manager_get_accel_group
- gtk_ui_manager_get_widget
- gtk_ui_manager_insert_action_group
- gtk_ui_manager_new
- GCallback
- APP_INDICATOR_CATEGORY_APPLICATION_STATUS
- APP_INDICATOR_CATEGORY_COMMUNICATIONS
- APP_INDICATOR_CATEGORY_SYSTEM_SERVICES
- APP_INDICATOR_CATEGORY_HARDWARE
- APP_INDICATOR_CATEGORY_OTHER
- APP_INDICATOR_STATUS_PASSIVE
- APP_INDICATOR_STATUS_ACTIVE
- APP_INDICATOR_STATUS_ATTENTION
[](https://central.sonatype.com/search?q=libappindicator-gtk3-java-minimal&smo=true&namespace=org.purejava)
### Gradle
```groovy
implementation group: 'org.purejava', name: 'libappindicator-gtk3-java-minimal', version: '1.4.2'
```
### Maven
```java
org.purejava
libappindicator-gtk3-java-minimal
1.4.2
```
### libappindicator-gtk3-java-minimal 1.1.0 - minimal is compatible to both libraries
Starting with version 1.1.0, the `minimal` artifact is compatible to libayatana-appindicator and libappindicator. When either of these two is installed on your system, this library will bind to it.
## Dependency including *all bindings* related to libayatana-appindicator:
- gtk-3.0
- glib-2.0
- cairo
- gdk-pixbuf-2.0
- pango-1.0
- atk-1.0
- harfbuzz
[](https://central.sonatype.com/search?q=libayatana-appindicator-java-full&smo=true&namespace=org.purejava)
### Gradle
```groovy
implementation group: 'org.purejava', name: 'libayatana-appindicator-java-full', version: '1.4.2'
```
### Maven
```java
org.purejava
libayatana-appindicator-java-full
1.4.2
```
# Documentation
For documentation please take a look at the [Wiki](https://github.com/purejava/appindicator-gtk3-java/wiki).
# Copyright
Copyright (C) 2023 Ralph Plawetzki
The libappindicator-gtk3-java logo is made from [Icon Fonts](http://www.onlinewebfonts.com/icon) and is licensed by CC BY 3.0