• This repository has been archived on 30/Dec/2020
  • Stars
    star
    164
  • Rank 230,032 (Top 5 %)
  • Language
    Rust
  • License
    BSD 3-Clause "New...
  • Created about 8 years ago
  • Updated almost 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Allows rust applications to show a platform specific system tray icon and menu.

SYSTRAY-RS IS DEPRECATED AND ARCHIVED

systray-rs is now deprecated. I had some hopes about working on this, but I really am just not finding any intersection between this project and other projects I'm maintaining, so I think it's best to call it done then having everyone hold out for my updates that will most likely never arrive.

To anyone who wants to fork: You can, but I would really recommend against it. Use this repo as reference if you want to, but most of this code was written in 2016, when I was very new to Rust. It doesn't handle cross-platform GUI needs well at all.

If you're going to build your own version of this: Great! If/when you finish it, get in touch and I'll add a link here. But a word of advice: You really do not want to tackle this from the perspective of "Oh I'll do it on [insert prefered OS here] then other people will contribute other platforms". You need to plan for Win/macOS/Linux at the same time or you will end up with an unworkable mess. There are systray implementations in other languages (some of which are listed in the issues here), I'd definitely recommend cribbing from those, much as I tried to crib this one from Go.

I'm going to leave the issues and PRs up since they may also contain relevant reference info for whoever decides to take this on next.

Good luck.

systray-rs

Crates.io Crates.io

Build Status Build status

systray-rs is a Rust library that makes it easy for applications to have minimal UI in a platform specific way. It wraps the platform specific calls required to show an icon in the system tray, as well as add menu entries.

systray-rs is heavily influenced by the systray library for the Go Language.

systray-rs currently supports:

  • Linux GTK
  • Win32

Cocoa core still needed!

License

systray-rs includes some code from winapi-rs, by retep998. This code is covered under the MIT license. This code will be removed once winapi-rs has a 0.3 crate available.

systray-rs is BSD licensed.

Copyright (c) 2016-2020, Nonpolynomial Labs, LLC
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

* Redistributions of source code must retain the above copyright notice, this
  list of conditions and the following disclaimer.

* Redistributions in binary form must reproduce the above copyright notice,
  this list of conditions and the following disclaimer in the documentation
  and/or other materials provided with the distribution.

* Neither the name of the project nor the names of its
  contributors may be used to endorse or promote products derived from
  this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

More Repositories

1

deldo

Deldo is a sex toy control and teledildonics mode for Emacs
Emacs Lisp
183
star
2

keepoff

Reverse engineering the MyKeepon Dance Bot
Processing
38
star
3

lovesense-py

DEPRECATED - Python library for accessing and controlling bluetooth 2 capable Lovense sex toys (Max and Nora Only)
Python
22
star
4

buttpcap

USBPcap + XInput + Buttplug = Oh No
Rust
22
star
5

lovesense-rs

Rust implementation of the control protocol for Lovense toys (Max, Nora, Lush, Hush, etc...)
Rust
18
star
6

syncydink

A web based video player that supports multiple viewing modes, haptic formats, and output devices
TypeScript
18
star
7

lovesense-js

DEPRECATED - use https://buttplug.io - Javascript library and node.js module for accessing and controlling Lovense sex toys (Max, Nora, Lush, Hush, Etc...)
JavaScript
14
star
8

giflib.js

Emscripten'd version of giflib for optimized javascript based gif encoding/decoding
JavaScript
14
star
9

np_mindset

DEPRECATED - Max/Pd external for the Neurosky Mindset EEG Helmet
C++
12
star
10

org-gitbook

Emacs package to make exporting org-mode files to gitbook easier
Emacs Lisp
11
star
11

np_epoc

Emotiv EPOC Headset External for Max/MSP
Max
11
star
12

librealtouch

Linux/Mac server and code for accessing the Real Touch network protocol
CMake
10
star
13

buttplug-ultrakill

Quick Buttplug.io proof-of-concept for Ultrakill
C#
10
star
14

libambx

Crossplatform drivers for the AmbX ambient environment system
Python
9
star
15

vuepress-plugin-matomo

Matomo plugin for vuepress >= 1.0
JavaScript
9
star
16

libtrancevibe

Open Source Library for control of the Rez Trancevibrator
C
8
star
17

wejibe-py

Python drivers for We-Vibe toy control and data retreival - DEPRECATED - Moved to Buttplug Framework
8
star
18

video-sync-scripts

Sync scripts for various videos, in funscript and other formats
6
star
19

np_nifalcon

Flext based Max/Pd patch for the Novint Falcon, using libnifalcon
C++
6
star
20

lovesense-max

Max/MSP Patch for controlling Lovense Sex Toys (Max, Nora, Lush, Hush, etc...) - DEPRECATED - See https://buttplug.io for further work
Max
5
star
21

lovesense-docs

[DEPRECATED, replaced with stpihkal] Documentation for the Lovense Bluetooth Protocol
5
star
22

pen15-board

Code for programming/accessing the pen15 board
Java
5
star
23

intiface-desktop-egui

Intiface Desktop rewritten using egui
4
star
24

raunch-firmware

Open source firmware for the Fleshlight Launch
Assembly
4
star
25

kinect-recorder

Quick kinect recording hack to easily record depth to png at low framerates
C++
4
star
26

libsteelbat

Quick and dirty python access to the steel battalion controller
Python
4
star
27

jiggly.js

Vibration by any means possible. Which in this case means javascript, WebVibration, and audio.
JavaScript
4
star
28

haptic-movie-file-reader

Reads different types of haptic movie file formats, and produces commands when sent times
TypeScript
4
star
29

erosoutsider

Archive repo of old open source controls program from the ErosTek ET312B Electrostim Unit
Perl
4
star
30

lovesense-hush-js-demo

Quick WebBluetooth demo for Lovense Hush Buttplug Control - DEPRECATED - work moved to Buttplug.io
JavaScript
4
star
31

np_trancevibe

Trancevibrator External for Max/MSP and PureData
C++
3
star
32

libnifalcon_firmware

3
star
33

twitter_breakcore

Breakcore generator using Max/MSP and Twitter
Python
3
star
34

np_build_sys

Common modules used for NP Labs software project builds
Shell
3
star
35

jerkcity-project

A few different things related to jerkcity.
Emacs Lisp
3
star
36

fwiktr

Flickr + Twitter Art Generator
Python
3
star
37

libthirdspacevest

Open source, cross platform driver for the TN Games Third Space Vest
C
3
star
38

np_lightstone

Lightstone External for Max/MSP and PureData
C++
3
star
39

simple-teledildonics-app

Node/web implementation of a teledildonics server using buttplug
TypeScript
3
star
40

pointy

Modified version of the Processing based House of Cards Point Cloud viewer
2
star
41

np_thirdspacevest

Max/Pd External for the TN Games 3rd Space Vest
2
star
42

white-label-teledildonics-server

White Label Generic Teledildonics Server
JavaScript
2
star
43

deskcontrol

PyQt program and UI files for Desktop Light Control Program
Python
2
star
44

khole-py

kHole - Reverse Engineered Bluetooth Drivers for the Minna kGoal
Python
2
star
45

bt-dbus-test

C++
2
star
46

kgoal-boost-vrchat-osc

Utility for relaying KGoal Boost info into VRC
Rust
2
star
47

force-feedback-reality

Microcontroller code for the Force Feedback Reality project
C
2
star
48

sex-toy-orchestra

Using the virtual hole and trancevibrator to make music
Pure Data
2
star
49

libud7

User-space driver for the UD7 Display Device - http://www.gadgetdisplay.com
Python
2
star
50

raunch-js

Node.js and WebBluetooth drivers for the Fleshlight Launch Sex Toy - DEPRECATED - use https://buttplug.io
JavaScript
2
star
51

libtrancevibe-rs

Rez Trancevibrator control using Rust
Rust
2
star
52

mowcounter-telegram-bot

The telegram bot that counts mows.
Python
2
star
53

metafetish-telegram-bot

Metafetish Telegram Group Bot
Python
2
star
54

sex_toy_music

'cause I always said I'd play freebird on it.
Pure Data
2
star
55

reztunes

iTunes plugin for controlling the rez trancevibrator
C
2
star
56

kitelight

Lighting system for RGB LED control on kites
Python
1
star
57

conf_zsh

Conf files for ZSH setup, based heavily off of Madduck's ZSH files - git://git.madduck.net/etc/zsh.git
Shell
1
star
58

qblog

Conveinence functions for writing posts for my blogs in emacs
Emacs Lisp
1
star
59

bartris

Tetris drink mixing project for RoboExotica 2009
Python
1
star
60

np_virtualhole

A Max/Pd External for the bowling pin vagina only I have
C++
1
star
61

blog.feverything.com

Blog for the FEverything Project
CSS
1
star
62

libsomni

C++
1
star
63

mcor-iris

Reverse Engineering the communications protocol of the Mcor IRIS 3D Printer
1
star
64

compily_buildd

NP Labs Build System
Shell
1
star
65

np_boneyard

Archive of old code projects I find laying around that I'll probably never update
C++
1
star
66

kinect-teledildonics

Kinect Teledildonics Workshop Code for Art && Code 2011
1
star
67

pulse-project

Game for Paraflows 2010 Exhibition
Python
1
star
68

raunch-ios

iOS Implementation of the Fleshlight Launch protocol
Swift
1
star
69

petsafe-smartdog-trainer-webbluetooth

Client Side WebBluetooth control of the PetSafe SmartDog Bluetooth Training Collar
JavaScript
1
star
70

feverything.com

Website for the FEverything Project
CSS
1
star
71

vue-component-test-case

Test case to show vue component build error
TypeScript
1
star
72

metafetish-typescript-project-template

Typescript/Typedoc/Webpack/Etc config files for Metafetish Projects
JavaScript
1
star
73

boinkking-docs

Documentation of protocols and access methods for BKK Sex Toys - DEPRECATED - see https://stpihkal.docs.buttplug.io
Python
1
star
74

miiyoo-py

Python access and simulator for Kiiroo sex toys - DEPRECATED - work moved to https://buttplug.io
Python
1
star
75

miiyoo-js-demo

Quick WebBluetooth demo for Kiiroo toy control - DEPRECATED - Work moved to Buttplug.io
JavaScript
1
star
76

raunch-docs

[DEPRECATED, replaced with stpihkal] Documentation of protocols and access methods for the Fleshlight/Kiiroo Launch Sex Toy
1
star
77

qpm

qDot Portfolio Manager - The best electric razor for yak hair
1
star
78

flutter-rust-bridge-streamsink-race

C++
1
star
79

ikea-trettio

Hardware control code for ikea trettio lighting system
C
1
star
80

np-telegram-bot

Base code for NP Labs Telegram bots
Python
1
star
81

kiiroo-firmware-loader

Vue.js and WebBluetooth based web firmware loading utility for Kiiroo sex toys
TypeScript
1
star
82

osr2-stroker-js

Porting the python Stroker2 script to ES7 Javascript
1
star
83

giftic

Pure Javascript implementation of Toy Control via Optical Motion Tracking
CSS
1
star
84

yiffspot-netlify-redirect

Yiffspot redirector for Netlify
1
star
85

rpi-scanner

Script for automatic scanning and storing images to USB key on an rpi
Shell
1
star
86

kinect-falcon

Kinect + Falcon oF project for art&&code
C++
1
star
87

biometric-presentation

Max/MSP Patch for AE2009 Talk
1
star
88

master-beta-kit

Metafetish fork of the Orgasmatronics Master Beta Kit plans
1
star
89

realtouch.js

Javascript API for controlling the RealTouch Sex Toy
JavaScript
1
star
90

pelican-mode

Minor mode for editing pages and posts in Pelican sites
Emacs Lisp
1
star
91

mu4e-addons

Hacking/defadvicing things into mu4e before actually trying to integrate with the repo.
Emacs Lisp
1
star
92

buttplug-nogasm

Old code for connecting the nogasm serial output to buttplug
JavaScript
1
star
93

cockblender-docs

[DEPRECATED, replaced with stpihkal] Documentation of protocols and access methods for Vorze toys
1
star
94

millionbounce-js

Typescript/Javascript API for the MasterAMillion Bluetooth Bouncy Ball (Web/Node.js)
TypeScript
1
star
95

np_portfolio

NP Labs Project Portfolio Information
Python
1
star
96

projects.nonpolynomial.com

Project Portfolio Website
Shell
1
star
97

khole-js

Node.js and WebBluetooth drivers for the Minna KGoal Kegel Exerciser
JavaScript
1
star
98

bitlmacs

Utilities to tie together bitlbee and erc in emacs in a more coherent way
Emacs Lisp
1
star
99

project-euler

Solutions to Project Euler Problems
Haskell
1
star
100

vuepress-markdown

Copy of @vuepress/markdown for importing over actual package
JavaScript
1
star