Better UI for multiple apps per profile

x64 Replacement/Alternative to Microsoft's IntelliMouse application.
Forum rules
Please read the forum rules before posting for the first time.
The more information you can provide, the quicker and more accurately someone can help.
NOTE: To reduce spam, new users can not post links, files or images until they have at least 4 posts.
Post Reply
User avatar
Killy
Dedicated
Posts: 46
Joined: Mon Nov 27, 2017 1:26 pm

Better UI for multiple apps per profile

Post by Killy »

First I brought this up quite some time ago, but it is still an issue for me, deserving it's own topic for discussion.

I have a bunch of customizations in the default profile, that don't work well with games.
And I have Games profile with minimal customizations.

I list game executables in the Application input field, separated with "||".
This string got quite long over time, and I can't clearly see what's already there, what I still need there and what can be removed, etc.
Process of adding new executable isn't pleasant either: don't forget to copy/cut the existing string, select new app, add "||", paste original string from clipboard.

What I'd like to see:

Transform the profiles list into grouped list:

Code: Select all

Profiles:
---------------
[V] Default
[V] Profile A
        App1
        App2
[ ] Profile B
        App3
        WindowClass4
        WhateverFilter5
Another option might be a separate list for applications under the profiles list (master - detail). Easier to implement (no non-trivial controls), but more clunky UI.

I could've also just used one profile per application, but having a lot of independent profiles doesn't appeal to me. I prefer to have one "Gaming" profile that works the same across all games - less things to edit and care about.
User avatar
phil
Site Admin
Posts: 7627
Joined: Sun Apr 06, 2003 11:12 pm

Re: Better UI for multiple apps per profile

Post by phil »

Killy wrote: Wed Dec 12, 2018 10:54 pm First I brought this up quite some time ago, but it is still an issue for me, deserving it's own topic for discussion.
LOL - if it deserves its own topic then create a new topic!
You will get some support, I know that... And it is on the list of things to do, along with lots of other things (not least some of your other requests!). I'm afraid XMBC is not the top of my priorities in life - its up there to some extent but I just don't have time time when I get home from work to spend all my hours on XMBC.

Ironically, the user interface is more than 70% of the work here (the rest being the actual profile detection and enumeration which while "simple" has to be incredibly optimized to cope with "searching" the list every time the mouse cursor moves) - its particularly painful/time consuming in C++ (compared to modern memory sucking alternatives - but I'm sticking with C++ because of its low overheads). It would perhaps be easier to break the application chooser down, offering a dropdown/sublist type of thing maybe with an add button so you don't have to copy/edit/paste etc (rather than grouping in the profile list).

I appreciate the ideas but I cant make any promises. 2.18 hasn't got all that much in it and yet it has been over 6 months since 2.17 - a sad fact of my life I'm afraid. I'm starting to think smaller changes (concentrate on one feature and bug fixes as appropriate) a little more often may be a good idea.

Regards,
Phil
--[ Phil ]--
--[ Administrator & XMBC Author ]--
Logitech G9/G604/M720/MX518, Microsoft Intellimouse, Trust 16341 BT Mouse
Windows 10 x64, AMD Ryzen 5900x, MSI x570 Tomahawk, 32GB DDR4,
nVidia RTX 2070s, Evo 970 1Tb NVME, 2x2TB WD Black (RAID1)
User avatar
Killy
Dedicated
Posts: 46
Joined: Mon Nov 27, 2017 1:26 pm

Re: Better UI for multiple apps per profile

Post by Killy »

I'm dropping in the ideas so they will be known when you will be touching the relevant code at least.
You're going so deep in excuses I'm having a hard time uncover and understand the relevant bits, lol.
phil wrote: Thu Dec 13, 2018 12:29 am It would perhaps be easier to break the application chooser down, offering a dropdown/sublist type of thing maybe with an add button
I can't depict it from this description.
If it's only about simplifying the addition process then it doesn't add much to the UX really.


By the way, the core app and the configurator don't need to be the same C++ application. That being said,
it urges me now to make .xmbcp profile editor in C#. Trickiest things will be to reproduce application chooser and the messaging with the core app to preview pressed buttons (if we imagine there is matching core app).
User avatar
phil
Site Admin
Posts: 7627
Joined: Sun Apr 06, 2003 11:12 pm

Re: Better UI for multiple apps per profile

Post by phil »

I must be going mad - did you move this post or did I completely screw up when I said "if it deserves its own topic then create a new topic!".
Looks like I have been having too many late nights!

My ideas above were to make it easier to add the profiles with multiple applications. Sure not the whole thing, but something I could do more quickly and a step in the right direction. My time is limited and Ive just been diagnosed with a potentially life changing disease... I might be stopping XMBC all together - we shall see; but I'm certainly not going to be doing massive changes in the near future - I need to spend less time sat at a computer, not more!

Don't get me wrong, I think this is a good idea and fit well along with Kukurykus and Maxoku's grouped profiles which also makes sense but will be a significant rewrite of the core and GUI function and potentially big performance hit in terms of profile cascading.

Your right, I could split the configuration from the actual mouse hook code (its already a separate DLL so that is definitely an option). But the original prime goal of XMBC was to keep it a very small, low memory and overhead application and as the configuration is always running, that means that too. I don't want a 50Mb+ process sitting there just to make some configuration changes. Maybe that is less of an issue in 2018 with all the RAM we have these days, but it does keep XMBC light weight and small. Yes it could start the config GUI as a separate process that only takes the memory while its running, but that is going to make the overall model a little more complex.

I originally wrote XMBC so I could map my 4th and 5th button to copy/paste when MS introduced 64bit Windows and there was no software form them (or Logitech) to do that. That is still pretty much all I use it for - so personally, spending a lot of time to do things I'm never going to use my self is not all that appealing. I do get some satisfaction out of making XMBC a tool for anyone, but there has to be a limit to what I can do. After long day at work sat behind a computer knocking out code, its difficult to find the motivation these days to continue that when I get home. Its not a full time job and it never will be because 99% of computer users are never going to need or want to install something like XMBC. There is of course, nothing stopping anyone from making their own tool-set to do what they want. Maybe XMBC's time is up and that will have to happen. Maybe I should open up XMBC (OSS) so others can contribute directly or fork it - my fear there is loosing control - maybe I shouldn't fear that and give it a go?!

Regards,
Phil
--[ Phil ]--
--[ Administrator & XMBC Author ]--
Logitech G9/G604/M720/MX518, Microsoft Intellimouse, Trust 16341 BT Mouse
Windows 10 x64, AMD Ryzen 5900x, MSI x570 Tomahawk, 32GB DDR4,
nVidia RTX 2070s, Evo 970 1Tb NVME, 2x2TB WD Black (RAID1)
User avatar
Kukurykus
Fanatic
Posts: 388
Joined: Sat Jul 02, 2016 1:15 pm

Re: Better UI for multiple apps per profile

Post by Kukurykus »

That is something I asked over year ago as well in fact. Few profiles per one application, so like main extendable app group with particular profiles (however each profile if used specific windows could be extendable as well, so there would be set of configured windows they could occur in other profile - if added - of same process, but were independent, so worked only if its parent class was chosen at time).


I understand this way XMBC would not be light tool anymore. But I have to suggest something I came with long time ago. Could not it exist as plugin? So something additionally downlable beside sole XMBC only for those that need it and their priority of using it is over weight of XMBC?

It could be downloadable always with XMBC, but (de)activated in settings. So the XMBC folder could have bigger size indeed, but sole XMBC be light unless someone decided to install the plugin.

Other idea is that installation could be adjusted to plugins, I mean during its process, users were asked to (un)check avialable plugins. Regarding updates if originally plugins were not installed they would not be installed until users downloaded them separately or with XMBC all together.


XMBC is still no popular in my opinion and though there are many talented programers I don't think sharing the source code would encourage others to develop it along with you. My idea is to extract only core part of source code that other could do plugins with, then send to you to implement to BETA for tests. If that worked you could decide to leave it as plugin or implement as regular feature to main XMBC code.

I do not know where you could find poeople to do this, for free of course, but maybe some users of AHK community would join such cooperation. Surely in that case they could create only plugins, as they were wrote in other programming language like autohotkey, but still it's quite good solution, as there was more chance someone wanted to get involved into.


In my opinion you should give up new features for longer time and rest from XMBC till you feel you got power and passion to play with it like you used. That may take months, perhpas up to a year, so maybe better limit your activity to fix all bugs only (and sometimes add something new that you find is kind of relax for you of doing so).
HAMA Roma, Rapoo 3920P
Windows 10 x64, Intel i5-4670K @ 3.40GHz, 8GB,
Intel(R) HD Graphics 4600, Intel SSD 179 GB HDD
User avatar
Killy
Dedicated
Posts: 46
Joined: Mon Nov 27, 2017 1:26 pm

Re: Better UI for multiple apps per profile

Post by Killy »

(I didn't move this topic.)

Of course everyone could go and make their own tool from scratch.
And spend the same number of years to do the low level hook stuff right.
Every program is composed of trivial things. Getting them work well together is what requires accumulated experience.

Don't just discard all your work, let someone to pick it up from where you stopped.
You're free to choose what parts, to whom, and at what license conditions to hand over.

Actively maintained open-source project can live under your control. It's easier to contribute to maintained project than spin off a fork.

If you just publish the sources archive - that will mean you're giving away the control over it to unknown people. Moving to Github/Gitlab yourself will mean you're still in control and we can trust this project. Github is simpler, Gitlab gives more control over your project, including free private project if you don't feel like making it public yet. If you have some concerns about the usage of open source project, then address it in the license.

There won't be many people rushing into the project, but for some of us it's the chance to get the desired feature done. Still, important part of maintaining of the project is to keep it focused - have a guide/roadmap for contributors, explaining what directions this project can or can not go...

-------

I think splitting GUI from from the core app will give more benefits than complexity. If anything, reducing the coupling between functionally different parts will provide a cleaner interface, easier to understand the responsibilities of each part, thus reducing the complexity. And the fear of doing so signifies some already existing problems to me.

The app itself, probably, only need to watch for config file changes, apply hooks according to the config, provide tray icon with menu to run the GUI app.
GUI can get away with it's own hook to read button presses (this is simpler way to reduce communication between processes, if there will be any in the end).

I see no benefits to keep GUI in memory. Currently, it opens slower than it would be to start a new 50+ MB process anyway, for some reason (for me at least).
It is probably possible to find a C++ GUI toolkit that will allow to provide more complex controls with low memory footprint, easier to maintain, in case we want to avoid extra runtime dependencies by all costs. But I can't bet on this, it will require more research - I know some libs, but I seldom touch any C++ code.
(With open source project, experiments like this can be done in separate branches.)
User avatar
Kukurykus
Fanatic
Posts: 388
Joined: Sat Jul 02, 2016 1:15 pm

Re: Better UI for multiple apps per profile

Post by Kukurykus »

A little off topic. There are many users willing to translate english XMBC to their languages. I don't need it, I use original version only. I say about it, as it's maybe worth to make separate topic where you find users who would like to attend in completing User Guide.

There is really a lot of old / new stuff I can't find in there hence I don't use much of it, and probably others don't know how powerful XMBC is. Wouldn't you like others help you with supplementing the instruction of everything there wasn't wrote, so things some particular users may be familiar with enough to describe it?

Not everyone will be willing to do so but I believe some may want to get involved into, at least to fill some lacking sections. Then they'll send you their work and you edit it to collect to existing instruction.

At the bottom there could be also Simulated Keys section (together with Chordings and Button Held).

In my opinion you are not able to do everything in short time and after all it kills your passion when you have to focus on tedious stuff. That User Guide exists so long, and still there are so many gaps they never can be filled while new features come up (which you do not always describe in manual or do it partially).

It's hard to do radical moves yet, however it may be easier to take it for consideration meanwhile letting for some controlled by you cooperation, you had always last word on.


btw, the link from XMBC to User Guise is uptodate (2018), while that from your website is dated to 2017:

http://vps.highrez.co.uk/downloads/X-Mo ... 0Guide.pdf

http://www.highrez.co.uk/downloads/x-mo ... 0guide.pdf
HAMA Roma, Rapoo 3920P
Windows 10 x64, Intel i5-4670K @ 3.40GHz, 8GB,
Intel(R) HD Graphics 4600, Intel SSD 179 GB HDD
User avatar
phil
Site Admin
Posts: 7627
Joined: Sun Apr 06, 2003 11:12 pm

Re: Better UI for multiple apps per profile

Post by phil »

Defiantly off topic... new thread NEXT time please :).

I didn't write the manual. A user (Maintrane) did - several years ago, and he was instrumental in some of the changes in XMBC v2.0. He has not been in contact for while now so I have been maintaining and updating it as I add new things.

In the last couple of weeks, I have had someone (another user) offer their services as a technical writer to help out in the new year. We shall see if that goes anywhere. But the current user manual should be pretty up to date (I updated it yesterday in fact in beta 18 but that wont go live until I release 2.18). But yeh its a bit limited in actual technical content - with a rather brief coverage of the main features. My thinking there is its too complex to go into detail and that would be better here where people can help and discuss. The user guide (like most manuals these days) covers the top level basics like what is button chording and simulated keys... not exactly how you use them.

However, the links two links you posted both deliver the SAME document to me so far as I can see?!
And on top of that the main website has two links - the primary one is identical to the first link you posted and the second (mirror) one is the second link you posted... So I'm lost as to how they are producing different documents than I am getting when I click on them!

EDIT: All user guide documents on all my servers are the same date 23/12/2017 which was when 2.17 was released (eeek I thought I had released 2.17 this year!). So the user manual is as up to date as the latest version of XMBC. So I don't know where your getting you info from - if you mean that the one installed in the start menu, well if you run the full install (not the updates) it will update your local copy of the manual - maybe thats what you mean by up to date?!

And anyway as WE all know, in IT no one reads the manual so I figured there wasn't all that much point spending all that much time on it :)
--[ Phil ]--
--[ Administrator & XMBC Author ]--
Logitech G9/G604/M720/MX518, Microsoft Intellimouse, Trust 16341 BT Mouse
Windows 10 x64, AMD Ryzen 5900x, MSI x570 Tomahawk, 32GB DDR4,
nVidia RTX 2070s, Evo 970 1Tb NVME, 2x2TB WD Black (RAID1)
User avatar
Kukurykus
Fanatic
Posts: 388
Joined: Sat Jul 02, 2016 1:15 pm

Re: Better UI for multiple apps per profile

Post by Kukurykus »

Yes they link you to same content, and I was aware of it. The different - updated content is that you open from XMBC / About / Open User Guide where at the bottom comparing to posted links there's not 2017 but 2018 year. Visually I saw the sole content is also different.

That makes sense - I use Beta - but I had no clue you updated manual before releasing regular XMBC v. ;)
HAMA Roma, Rapoo 3920P
Windows 10 x64, Intel i5-4670K @ 3.40GHz, 8GB,
Intel(R) HD Graphics 4600, Intel SSD 179 GB HDD
User avatar
phil
Site Admin
Posts: 7627
Joined: Sun Apr 06, 2003 11:12 pm

Re: Better UI for multiple apps per profile

Post by phil »

Yeh (I updated my post above after you had posted) but the "full" install of XMBC (beta or final) includes the PDF user manual. And if that is there, it will open that from the button in the about window rather than opening the link. This is good for beta because you can see the latest manual, before it gets released. A couple of times I have been asked to update/correct something in there.

But enough of this - this is not relevant to this topic and I really dislike it when people go on about non-relevant stuff in someone else's topic without creating their own - plus it makes it impossible to keep track of things or find things 6 months down the line).
--[ Phil ]--
--[ Administrator & XMBC Author ]--
Logitech G9/G604/M720/MX518, Microsoft Intellimouse, Trust 16341 BT Mouse
Windows 10 x64, AMD Ryzen 5900x, MSI x570 Tomahawk, 32GB DDR4,
nVidia RTX 2070s, Evo 970 1Tb NVME, 2x2TB WD Black (RAID1)
User avatar
phil
Site Admin
Posts: 7627
Joined: Sun Apr 06, 2003 11:12 pm

Re: Better UI for multiple apps per profile

Post by phil »

Killy wrote: Sun Dec 16, 2018 5:28 pm Actively maintained open-source project can live under your control. It's easier to contribute to maintained project than spin off a fork.

If you just publish the sources archive - that will mean you're giving away the control over it to unknown people. Moving to Github/Gitlab yourself will mean you're still in control and we can trust this project. Github is simpler, Gitlab gives more control over your project, including free private project if you don't feel like making it public yet. If you have some concerns about the usage of open source project, then address it in the license.

There won't be many people rushing into the project, but for some of us it's the chance to get the desired feature done. Still, important part of maintaining of the project is to keep it focused - have a guide/roadmap for contributors, explaining what directions this project can or can not go...
I already have a git repo (I just don't particularly trust git hub :)) so I host my own git repo on my own git server - either way it will be trivial to publish that and keep control to some extent.
Killy wrote: Sun Dec 16, 2018 5:28 pm I think splitting GUI from from the core app will give more benefits than complexity. If anything, reducing the coupling between functionally different parts will provide a cleaner interface, easier to understand the responsibilities of each part, thus reducing the complexity. And the fear of doing so signifies some already existing problems to me.
As I said, they are already separate in many aspects - the GUI is all inside the EXE (and thats all that is in there pretty much) and the hook all inside the DLL... The main communication between them IS the XML settings file (ok there are few other little bits and pieces, to allow the button highlights, layer tab changes etc). Of course, I'm not unhappy to admit its not perfect - some of it (mostly in the hook DLL) is all a bit of a mess (but much less so than a few years ago as I have slowly been refactoring it to a more sensible structure). But thats fairly normal in something that has evolved over 15 years as a hobby :) ... If I were to start again I would do things differently no doubt.
Killy wrote: Sun Dec 16, 2018 5:28 pm I see no benefits to keep GUI in memory. Currently, it opens slower than it would be to start a new 50+ MB process anyway, for some reason (for me at least).
Yes the XML library I use seems to be a bit slow - but actually the slowest thing is (it seems) using combo-boxes with lots of entries in them (the button dropdowns) really killed performance in MFC, even after visualizing them... Not something I experience in C# generally (which is my go to day to day environment).
It is probably possible to find a C++ GUI toolkit that will allow to provide more complex controls with low memory footprint, easier to maintain, in case we want to avoid extra runtime dependencies by all costs. But I can't bet on this, it will require more research - I know some libs, but I seldom touch any C++ code.
(With open source project, experiments like this can be done in separate branches.)
If separating it happens, then there would be no point separating it to another C++ app - the whole point would be to get some easier environment.. Although while C# is nicer, Im not sure, when it comes to GUI, there is ever an "easy" environment... :)
--[ Phil ]--
--[ Administrator & XMBC Author ]--
Logitech G9/G604/M720/MX518, Microsoft Intellimouse, Trust 16341 BT Mouse
Windows 10 x64, AMD Ryzen 5900x, MSI x570 Tomahawk, 32GB DDR4,
nVidia RTX 2070s, Evo 970 1Tb NVME, 2x2TB WD Black (RAID1)
User avatar
Killy
Dedicated
Posts: 46
Joined: Mon Nov 27, 2017 1:26 pm

Re: Better UI for multiple apps per profile

Post by Killy »

You can host your own Gitlab by the way. Gitlab is not Github, and you don't even need to host on their servers. This might give a better experience than bare repo and separate tracker...

-----

Speaking of documentation, in light of open source talks.

I find existing PDF file quite inconvenient.
I so much more used to web/html documentation now. Clear navigation is much more important than fancy formatting (not to mention bad looking screenshots in pdf). But that doesn't mean it's not possible to provide pdf too - there are tools to render Markdown files both to html and pdf.

And having a public repo for documentation will allow to provide patches for outdated screenshots for example. (Not everyone is ready to fill in the missing pieces for new functionality, but it will be easier to just fix the issues too small to be reported otherwise.)
Having it in this easily editable, trackable form (repo with markdown + building scripts) will also allow to run translation projects, will there be any interest in that.

(This topic was doomed from the moment it switched into discussion of what prevents the project from moving forward.)
Post Reply