olback / tray-item-rs

Multi-platform Tray Indicator
https://crates.io/crates/tray-item
MIT License
287 stars 39 forks source link

Feature use ksni #22

Closed stephengeorgewest closed 1 year ago

stephengeorgewest commented 2 years ago

I rebased @njust branch onto the new changes, and added the feature switching. I had to re-add Sync to pub fn add_menu_item for ksni add_menu_item.

I didn't test macos, but it didn't change much.

ksni has far fewer dependencies than libappindicator, so that is something.

stephen@ao751h:~/Documents/projects/tray-item-rs$ cargo tree --features ksni
    Updating crates.io index
tray-item v0.7.0 (/home/stephen/Documents/projects/tray-item-rs)
└── ksni v0.1.3
    ├── dbus v0.9.5
    │   ├── libc v0.2.126
    │   └── libdbus-sys v0.2.2
    │       [build-dependencies]
    │       └── pkg-config v0.3.25
    ├── dbus-tree v0.9.2
    │   └── dbus v0.9.5 (*)
    └── thiserror v1.0.31
        └── thiserror-impl v1.0.31 (proc-macro)
            ├── proc-macro2 v1.0.39
            │   └── unicode-ident v1.0.0
            ├── quote v1.0.18
            │   └── proc-macro2 v1.0.39 (*)
            └── syn v1.0.95
                ├── proc-macro2 v1.0.39 (*)
                ├── quote v1.0.18 (*)
                └── unicode-ident v1.0.0
    [build-dependencies]
    └── dbus-codegen v0.9.1
        ├── clap v2.34.0
        │   ├── ansi_term v0.12.1
        │   ├── atty v0.2.14
        │   │   └── libc v0.2.126
        │   ├── bitflags v1.3.2
        │   ├── strsim v0.8.0
        │   ├── textwrap v0.11.0
        │   │   └── unicode-width v0.1.9
        │   ├── unicode-width v0.1.9
        │   └── vec_map v0.8.2
        ├── dbus v0.9.5 (*)
        └── xml-rs v0.8.4
stephen@ao751h:~/Documents/projects/tray-item-rs$ cargo tree --features libappindicator
tray-item v0.7.0 (/home/stephen/Documents/projects/tray-item-rs)
├── gtk v0.15.5
│   ├── atk v0.15.1
│   │   ├── atk-sys v0.15.1
│   │   │   ├── glib-sys v0.15.10
│   │   │   │   └── libc v0.2.126
│   │   │   │   [build-dependencies]
│   │   │   │   └── system-deps v6.0.2
│   │   │   │       ├── cfg-expr v0.10.3
│   │   │   │       │   └── smallvec v1.8.0
│   │   │   │       ├── heck v0.4.0
│   │   │   │       ├── pkg-config v0.3.25
│   │   │   │       ├── toml v0.5.9
│   │   │   │       │   └── serde v1.0.137
│   │   │   │       └── version-compare v0.1.0
│   │   │   ├── gobject-sys v0.15.10
│   │   │   │   ├── glib-sys v0.15.10 (*)
│   │   │   │   └── libc v0.2.126
│   │   │   │   [build-dependencies]
│   │   │   │   └── system-deps v6.0.2 (*)
│   │   │   └── libc v0.2.126
│   │   │   [build-dependencies]
│   │   │   └── system-deps v6.0.2 (*)
│   │   ├── bitflags v1.3.2
│   │   ├── glib v0.15.11
│   │   │   ├── bitflags v1.3.2
│   │   │   ├── futures-channel v0.3.21
│   │   │   │   └── futures-core v0.3.21
│   │   │   ├── futures-core v0.3.21
│   │   │   ├── futures-executor v0.3.21
│   │   │   │   ├── futures-core v0.3.21
│   │   │   │   ├── futures-task v0.3.21
│   │   │   │   └── futures-util v0.3.21
│   │   │   │       ├── futures-core v0.3.21
│   │   │   │       ├── futures-task v0.3.21
│   │   │   │       ├── pin-project-lite v0.2.9
│   │   │   │       ├── pin-utils v0.1.0
│   │   │   │       └── slab v0.4.6
│   │   │   ├── futures-task v0.3.21
│   │   │   ├── glib-macros v0.15.11 (proc-macro)
│   │   │   │   ├── anyhow v1.0.57
│   │   │   │   ├── heck v0.4.0
│   │   │   │   ├── proc-macro-crate v1.1.3
│   │   │   │   │   ├── thiserror v1.0.31
│   │   │   │   │   │   └── thiserror-impl v1.0.31 (proc-macro)
│   │   │   │   │   │       ├── proc-macro2 v1.0.39
│   │   │   │   │   │       │   └── unicode-ident v1.0.0
│   │   │   │   │   │       ├── quote v1.0.18
│   │   │   │   │   │       │   └── proc-macro2 v1.0.39 (*)
│   │   │   │   │   │       └── syn v1.0.95
│   │   │   │   │   │           ├── proc-macro2 v1.0.39 (*)
│   │   │   │   │   │           ├── quote v1.0.18 (*)
│   │   │   │   │   │           └── unicode-ident v1.0.0
│   │   │   │   │   └── toml v0.5.9 (*)
│   │   │   │   ├── proc-macro-error v1.0.4
│   │   │   │   │   ├── proc-macro-error-attr v1.0.4 (proc-macro)
│   │   │   │   │   │   ├── proc-macro2 v1.0.39 (*)
│   │   │   │   │   │   └── quote v1.0.18 (*)
│   │   │   │   │   │   [build-dependencies]
│   │   │   │   │   │   └── version_check v0.9.4
│   │   │   │   │   ├── proc-macro2 v1.0.39 (*)
│   │   │   │   │   ├── quote v1.0.18 (*)
│   │   │   │   │   └── syn v1.0.95 (*)
│   │   │   │   │   [build-dependencies]
│   │   │   │   │   └── version_check v0.9.4
│   │   │   │   ├── proc-macro2 v1.0.39 (*)
│   │   │   │   ├── quote v1.0.18 (*)
│   │   │   │   └── syn v1.0.95 (*)
│   │   │   ├── glib-sys v0.15.10 (*)
│   │   │   ├── gobject-sys v0.15.10 (*)
│   │   │   ├── libc v0.2.126
│   │   │   ├── once_cell v1.12.0
│   │   │   ├── smallvec v1.8.0
│   │   │   └── thiserror v1.0.31 (*)
│   │   └── libc v0.2.126
│   ├── bitflags v1.3.2
│   ├── cairo-rs v0.15.11
│   │   ├── bitflags v1.3.2
│   │   ├── cairo-sys-rs v0.15.1
│   │   │   ├── glib-sys v0.15.10 (*)
│   │   │   └── libc v0.2.126
│   │   │   [build-dependencies]
│   │   │   └── system-deps v6.0.2 (*)
│   │   ├── glib v0.15.11 (*)
│   │   ├── libc v0.2.126
│   │   └── thiserror v1.0.31 (*)
│   ├── field-offset v0.3.4
│   │   └── memoffset v0.6.5
│   │       [build-dependencies]
│   │       └── autocfg v1.1.0
│   │   [build-dependencies]
│   │   └── rustc_version v0.3.3
│   │       └── semver v0.11.0
│   │           └── semver-parser v0.10.2
│   │               └── pest v2.1.3
│   │                   └── ucd-trie v0.1.3
│   ├── futures-channel v0.3.21 (*)
│   ├── gdk v0.15.4
│   │   ├── bitflags v1.3.2
│   │   ├── cairo-rs v0.15.11 (*)
│   │   ├── gdk-pixbuf v0.15.11
│   │   │   ├── bitflags v1.3.2
│   │   │   ├── gdk-pixbuf-sys v0.15.10
│   │   │   │   ├── gio-sys v0.15.10
│   │   │   │   │   ├── glib-sys v0.15.10 (*)
│   │   │   │   │   ├── gobject-sys v0.15.10 (*)
│   │   │   │   │   └── libc v0.2.126
│   │   │   │   │   [build-dependencies]
│   │   │   │   │   └── system-deps v6.0.2 (*)
│   │   │   │   ├── glib-sys v0.15.10 (*)
│   │   │   │   ├── gobject-sys v0.15.10 (*)
│   │   │   │   └── libc v0.2.126
│   │   │   │   [build-dependencies]
│   │   │   │   └── system-deps v6.0.2 (*)
│   │   │   ├── gio v0.15.11
│   │   │   │   ├── bitflags v1.3.2
│   │   │   │   ├── futures-channel v0.3.21 (*)
│   │   │   │   ├── futures-core v0.3.21
│   │   │   │   ├── futures-io v0.3.21
│   │   │   │   ├── gio-sys v0.15.10 (*)
│   │   │   │   ├── glib v0.15.11 (*)
│   │   │   │   ├── libc v0.2.126
│   │   │   │   ├── once_cell v1.12.0
│   │   │   │   └── thiserror v1.0.31 (*)
│   │   │   ├── glib v0.15.11 (*)
│   │   │   └── libc v0.2.126
│   │   ├── gdk-sys v0.15.1
│   │   │   ├── cairo-sys-rs v0.15.1 (*)
│   │   │   ├── gdk-pixbuf-sys v0.15.10 (*)
│   │   │   ├── gio-sys v0.15.10 (*)
│   │   │   ├── glib-sys v0.15.10 (*)
│   │   │   ├── gobject-sys v0.15.10 (*)
│   │   │   ├── libc v0.2.126
│   │   │   └── pango-sys v0.15.10
│   │   │       ├── glib-sys v0.15.10 (*)
│   │   │       ├── gobject-sys v0.15.10 (*)
│   │   │       └── libc v0.2.126
│   │   │       [build-dependencies]
│   │   │       └── system-deps v6.0.2 (*)
│   │   │   [build-dependencies]
│   │   │   ├── pkg-config v0.3.25
│   │   │   └── system-deps v6.0.2 (*)
│   │   ├── gio v0.15.11 (*)
│   │   ├── glib v0.15.11 (*)
│   │   ├── libc v0.2.126
│   │   └── pango v0.15.10
│   │       ├── bitflags v1.3.2
│   │       ├── glib v0.15.11 (*)
│   │       ├── libc v0.2.126
│   │       ├── once_cell v1.12.0
│   │       └── pango-sys v0.15.10 (*)
│   ├── gdk-pixbuf v0.15.11 (*)
│   ├── gio v0.15.11 (*)
│   ├── glib v0.15.11 (*)
│   ├── gtk-sys v0.15.3
│   │   ├── atk-sys v0.15.1 (*)
│   │   ├── cairo-sys-rs v0.15.1 (*)
│   │   ├── gdk-pixbuf-sys v0.15.10 (*)
│   │   ├── gdk-sys v0.15.1 (*)
│   │   ├── gio-sys v0.15.10 (*)
│   │   ├── glib-sys v0.15.10 (*)
│   │   ├── gobject-sys v0.15.10 (*)
│   │   ├── libc v0.2.126
│   │   └── pango-sys v0.15.10 (*)
│   │   [build-dependencies]
│   │   └── system-deps v6.0.2 (*)
│   ├── gtk3-macros v0.15.4 (proc-macro)
│   │   ├── anyhow v1.0.57
│   │   ├── proc-macro-crate v1.1.3 (*)
│   │   ├── proc-macro-error v1.0.4 (*)
│   │   ├── proc-macro2 v1.0.39 (*)
│   │   ├── quote v1.0.18 (*)
│   │   └── syn v1.0.95 (*)
│   ├── libc v0.2.126
│   ├── once_cell v1.12.0
│   └── pango v0.15.10 (*)
│   [build-dependencies]
│   └── pkg-config v0.3.25
└── libappindicator v0.7.0
    ├── glib v0.15.11 (*)
    ├── gtk v0.15.5 (*)
    ├── gtk-sys v0.15.3 (*)
    ├── libappindicator-sys v0.7.2
    │   ├── gtk-sys v0.15.3 (*)
    │   ├── libloading v0.7.3
    │   │   └── cfg-if v1.0.0
    │   └── once_cell v1.12.0
    └── log v0.4.17
        └── cfg-if v1.0.0
stephengeorgewest commented 2 years ago

fix for #2