Giter VIP home page Giter VIP logo

mmserver's People

Contributors

anoved avatar mrkmg avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

mmserver's Issues

Support application switcher mode

The Mobile Mouse app has an "application switcher" mode that, when connected to the Mac server, essentially lists the contents of the application part of the Dock (including icons). The server must send this information to the app. A linux implementation might use the list of windows.

Win/Mac modifier key icons

The function of the "WIN" or "MAC" string in the successful connection handshake packet is to advise the client which modifier key symbols to display. For instance, if the string is "WIN", the "Windows key" icon is displayed instead of the "Option" symbol. (Also, any value other than "WIN" may default to the Mac icons; I've been using "LINUX", not knowing what it does, and the Mac icons are shown.)

Provide a configuration option so the user can choose which keyboard icons they'd prefer to see.

No support to open in gdm and guest user

I'm trying to open the server using a guest user (Fedora 20 xguest package) and it just doesn't open, and doesn't throw exception to debug. Need to do a trace or something like that to descovery why isn't working in the guest account.

And add somehow to work in the GDM screen, it would be awesome! After that you can fully stop using fisical keyboard/mouse. For Gnome users.

"Keyboard" input limitations

The mobile app sends some keyboard input as keyboard keycodes + modifiers, but other input (such as some Unicode characters that are not input directly, as well as any character produced with the shift key, including capital letters and basic punctuation) is transmitted directly. The linux mm server works in a cross-app/context-independent fashion by translating app input to X keyboard events. Unfortunately, it's not immediately clear how to pass some characters through.

For shift-produced characters, a possible hack is to recognize them and insert a "shift" key event.

Numeric keypad behavior

MM app numeric keypad mode partly supported. Numeric keys are being using as cursor keys, which is not strictly incorrect, since that is their default behavior without numlock, but it is counterintuitive since the keys are labeled with numerals. The shift modifier in MM changes the display to arrows/home/end/pgup/pgdown, but they function the same.

no mouse movement until physically moved after reboot

I have mmserver configured to start at boot on my Ubuntu 16.04 LTS machine. It works great with one tiny issue.

After a reboot, before the iOS app lets me move the mouse in Ubuntu I have to move the mouse in Ubuntu with the physically attached mouse. After that I can use the iOS app as I please.

Any idea what is causing this?

Install config file direct from internal defaults

We install ~/.mmserver/mmserver.conf automatically if /usr/share/mmserver/mmserver.conf is available, but run from (unmodifiable) internal defaults if neither file is present. Consider writing internal defaults to file if necessary. Include help commentary present in current default config file.

If an equivalent default config can be generated from internal default values, consider scrapping the external sample file, or at least use the auto-generated version as the sample, rather than manually maintain two defaults (file and internal).

Test compatibility with Mobile Mouse client 3.0.0

Version 3.0.0 of the official Mobile Mouse client and server software was released today. It appears to introduce a few new options as well as a revised "iOS 7" interface. It is unclear from the release notes whether the protocol has changed, but there are no prominent warnings about backward compatibility with older versions of the server software.

Test it!

Gesture support

Support multi-touch gestures as additional hotkeys:

gesture-setup

Gesture packet text is formatted like: GESTURE.FOURFINGERSWIPELEFT. or GESTURE.THREEFINGERSINGLETAP.

Unhandled 'ALT' mode click packets

When the ALT lock key is engaged in the MM app's keyboard screen, click event packets (and possibly others - untested) are suffixed with ALT, which is not anticipated by the current click packet pattern.

mmserver[2555]: [192.168.1.2] unhandled packet: size(14)
  0x0000:  43 4c 49 43 4b 1e 52 1e 55 1e 41 4c 54 04          CLICK.R.U.ALT.  

Review initial code to see if it's something I inadvertently pruned. Test whether any other packets are modified when ALT is engaged.

What should happen if it is?

Config option to disregard keyboard

Add an option to disregard keyboard input. Use case is where Mobile mouse is desired as a pointing device but another keyboard is available. Mitigates risk of passive key packet snooping in public network contexts by requiring hardware keyboard use.

Simplified installation/distribution

Either a binary version or at least more formally defined dependencies in a format that common package managers can read. Point being to make it practical to install without requiring user to be familiar with command line.

Consider supporting OPENLINK packet type

Mobile Mouse 3 introduces an OPENLINK packet, which simply passes a URL to the server. Generated when clicking links for drawing stylus info in the client Options screen. Not sure if generated anywhere else.

It might be best to handle these packets simply by logging the URLs, at least if they are only used for cross-promotional advertising purposes.

Gtk warnings on some (non-GNOME?) OSes

Trying mmserver on elementaryos; works nicely, but logs the following errors on startup (and, of course related, the "tray icon" does not appear because there is no tray).

(mmserver:16585): Gtk-WARNING **: Unable to locate theme engine in module_path: "pixmap",
(mmserver:16585): Gtk-WARNING **: Unable to locate theme engine in module_path: "pixmap",
(mmserver:16585): Gtk-WARNING **: Unable to locate theme engine in module_path: "pixmap",
(mmserver:16585): Gtk-WARNING **: Unable to locate theme engine in module_path: "pixmap",
(mmserver:16585): Gtk-WARNING **: Unable to locate theme engine in module_path: "pixmap",

Performance profiling

The main loop and mouse motion handler should work as quickly as possible to minimize delay between input and response on screen. The extra timing/acceleration code in the motion handler may not help.

Analyze with profiling tools - something I need to learn how to do on linux anyway.

Add a "Restart" tray menu option

Compromise replacement for original auto-restart-after-preferences approach, which was perhaps convenient, but left the menu in an odd state while you were editing prefs.

Especially useful in cases where Mobile Mouse is the only active input device, to avoid leaving the system isolated if mmserver must be restarted for some reason (prefs change; recompile/reinstall).

Security audit and risk documentation

There are some pretty fundamental security risks inherent in an app like this: you're accepting unencrypted keyboard & mouse input over the network. Others could therefore passively monitor your input using a packet sniffer, or masquerade as a MM client (or simply use MM) to connect to and control your machine.

Cannot connect to mobile mouse lite on android

When I try to connect my phone to server, that happening every second:
mmserver[13489]: [192.168.1.18] session ended
mmserver[13489]: [192.168.1.18] connected
mmserver[13489]: [192.168.1.18] disconnected (read failed: Resource temporarily unavailable)
And android app is freezing with searching/connecting screen.

Preferences error if not installed/editor not found

mmserver can run if default preferences file is not installed in /usr/share/mmserver, but logs following error when you attempt to edit Preferences from tray menu:

cp: cannot stat ‘/usr/share/mmserver/mmserver.conf’: No such file or directory
sh: 1: gnome-text-editor: not found

Two issues here, actually; gnome-text-editor is not a great replacement for gedit after all, as eg it's not present on default Linux Mint 15.

So, basically, initial pref file setup and editing needs to be sorted out for a better "first-run experience".

Tapping client mouse button sends duplicate mouse events

Tapping the regular trackpad, for example, yields a mouse click left down/mouse click left up pair. Tapping the left mouse button, however, yields two of each events - presumably one generated by the button itself, and one for the trackpad area which the button is still part of? Right clicking by two-finger tapping on the right mouse button yields similar results, except only a single up event.

Android connect fails with invalid protocol

MMSERVER works fine with latest IOS, but latest Android fails like this:

mmserver[6963]: [192.168.254.67] connected
mmserver[6963]: [192.168.254.67] disconnected (invalid protocol)
0x0000: 43 4f 4e 4e 45 43 54 1e 6e 75 6c 6c 1e 41 6e 64 CONNECT.null.And
0x0010: 72 6f 69 64 1e 41 6e 64 72 6f 69 64 1e 32 2e 30 roid.Android.2.0
0x0020: 2e 36 1e 30 04 .6.0.

Update handshake packet to dismiss "old server" warnings

Sample handshake from MM server 3: CONNECTED.YES.MAC.Mini.Welcome.00:00:00:00:00:00.4.10.8.5.

Where MAC identifies server platform (mmserver reports WIN), Mini is hostname, "Welcome" is (presumably) standard filler text, 00:.. is server's MAC address (not to be confused with platform; may be blank 00), 4 is likely the version code we need to update, and 10.8.5 is the server OS version.

Uninstallation?

Hello,

I gave your mmserver a shot on my Manajro system and got it to compile and install just fine. However, my iPhone is unable to connect to it for some reason so I'd like to uninstall it but cannot figure out how to. I have tried yaourt -R mmserver, sudo pacman -R mmserver and going into /build/ in the cloned GH directory and using sudo make uninstall and none of these options worked. Can you enlightening me on how I can go about removing it?

I can tell it's good software, I think the connectivity problem is most likely from my phone and not your app.

Thanks a lot!

Are "keystring" packets even used?

There's a handler in place, but I'm not sure the Mobile Mouse app even sends keystrings like ".com" as a separate type of input. Perhaps this is residual from an earlier version?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.