[continued from the Bongos3 forum]... Do multiple addons need to embed this [libKeyBoundExtra] functionality? I do not think that this is the case. I think we can get by with just an addon that has the functionality.
Ok so its a packaging issue. You want it disembedded by making the lib a mod. I can understand the arguments for that.
On the other hand for me I want it packaged with AutoBar as a one stop keybinding solution that does everything except for miscellaneous Blizzard keybinds. As soon as I finish the cancel button for the LibKeyBound Key Bindings mode it will also be superior to the Blizzard system for all supporting mods and their bindings. If this part is split into a mod then it becomes less discoverable to users. Only people reading forums would know about it.
Another perspective is that the whole LibKeyBound package should really be lod, and not there unless you want to actually bind keys. If it is lod, then it makes sense for it to be complete rather than split up since the tiny bit of bloat (<6k raw uncompiled code) is usually not loaded. I am not sure if this is desirable. The implementation code would have to change a fair bit. However if it is worth splitting out KeyBoundExtra then it should be even more worth making the whole shebang lod.
So I am not sure how to proceed. I am inclined to include it into LibKeyBound as was originally done and then work on making it lod instead. Alternatively a mod can be made that simply packages LibKeyBoundExtra into say KeyBoundExtra.
From my experience, users never know that the spellbook binding functionality exists until you explicitly tell them about it. Having them need to download a separate addon for it will allow them to discover it easily, especially if it is on somewhere like wowinterface or curse.
I would also encourage you to provide any extra functionality (cancelling, lod) into new major versions of keybound.
From my experience, users never know that the spellbook binding functionality exists until you explicitly tell them about it...
Yes splitting it out derailed my plans to document it in the little explanation panel.
Quote from Tuller »
...I would also encourage you to provide any extra functionality (cancelling, lod) into new major versions of keybound.
lod breaks backward compatability so it obviously would have a new major version.
Canceling is just a bonus feature requiring nothing from authors to work.
So I am doing this in 3 phases:
1) The panel gets an Okay and Cancel button. Cancel reverts, Okay commits. The hide box goes away.
2) Move the macro & spell book stuff back inside the lib + add localized text informing you of the ability.
3) lod, with a new major.
All right, part 1 is checked in. There is now revert and commit via the Cancel and Okay buttons added to the panel. The hide box is removed. The delayed till after combat action it had is moved to the Okay and Cancel button. Toggling the Key Bindings Mode does a commit.
There is no functional difference except that saving of the buttons is now delayed till the Okay button is pressed or the panel is toggled (via an implementing mod). Before these changes each binding was immediately saved to disk.
Yes splitting it out derailed my plans to document it in the little explanation panel.
Really, adding it into the main library is akin to making AutoBar an embedded library. I'm not coding this, so I cannot control you, but I still advise against it.
Really, adding it into the main library is akin to making AutoBar an embedded library. I'm not coding this, so I cannot control you, but I still advise against it.
Tuller, instead of saying what you are against, please start saying what you are for. It was my understanding that you are for things to only be included once. Fair enough, many people are fetishistic about running disembeded etc. Splitting it out into a lod mod accomplishes this. Why are you now still objecting?
This is what I am for: a key bindings lib that is common for as many mods as care to implement it. It's value is enhanced when all mods that implement it are on the same version since then you can bind them all at once. it's value is further enhanced if it has consistent behaviour across mods. Including spell and macro bindings accomplishes that.
Personally I want spell and macro binding to be a part of it. Why? It saves me time, it covers missing territory. It is elegant, it is useful, I use it, I used it as recently as 4 hours ago. Not including it is just half-assing it imo and for no good reason that I can see.
This is not about being able to control me. This is about you needing to make a really good case for why the lib should be gimped. Frankly, I just dont see any reason for gimping it.
I think that what Tuller wants is that what you designed as a library becomes an addon. An addon that would embed LibKeyBound-1.0 and use it to provide Spell Binding for the spell book. It just doesn't need to be a embeddable library, simply an addon.
I think that what Tuller wants is that what you designed as a library becomes an addon. An addon that would embed LibKeyBound-1.0 and use it to provide Spell Binding for the spell book. It just doesn't need to be a embeddable library, simply an addon.
Ok here is what I truly care about happening & I am not too concerned about how it comes about or is packaged etc. I really only care about the user experience:
1) Explanatory text mentioning you can bind spell book and macro buttons is added to the bindings panel that currently tells you what to do, has Cancel and Okay buttons and the Character Specific checkbox. This is localized.
2) The spell book and macro buttons are bindable during the key bindings mode.
3) This is the case for all mods using the lib or mod or combination or whatever it is.
Now step 3 below is to make it lod. This does mean there is a mod. I was planning on it all just being shoved together. As it is lod, it really does not matter how it is packaged right?
On the other hand as suggested I can just add the text to the lib, and convert LibKeyBoundExtra to a mod and say who cares about it being lod. Users can just eat the extra memory it occupies. This apeals to my need to move on to other things and it svoids moving to 2.0 or any such thing.
From a design perspective:
The scope of LibKeyBound should be "a library that provides a simple interface for binding keys to buttons" and that's it. Spell and macro bindings should be provided as a standalone addon that embeds keybound. Removing the functionality from the library is not "gimping the library", but simply keeping the library within scope.
From a usability perspective:
Having to tell the user that "you can also bind keys to the spellbook!" in the help dialog that is displayed when in binding mode feels like a bandaid. The best way to make a user aware of the functionality is for them to explicitly download an addon that provides it. Beyond that, not every user wants to bind keys to spells or macros.
Again, apologies for sounding hostile. I just feel since you're making keybound a library, you should know my intent of what it should be.
We are going in circles here and while I understand what you are getting at with modularity etc. I see no evidence that you understand the implications of doing it as a lod mod. Therefore I am just going to do the easy thing as mentioned below:
I will turn LibKeyBoundExtra into the mod KeyBoundExtra. There will be localized text explaining its functionality in the panel. It is no more a band aid than the current text in that panel. I am going to place this localization wherever it is most convenient. This accomplishes my goals even if not in the efficient manner I would want.
What I am no longer going to do is make it all a lod mod which only gets loaded if actually needed. Instead the mod and lib as described above will always be loaded. This is sad, because the only motivation you have for wanting to separate lib & mod is to be efficient and now we have an inefficient solution. Please note this part because it is important: throwing it all together into a lod mod is much better efficiency wise than this kludge being advocated here. Making it lod means there is no lib, there is just the mod which completely replaces it.
If someone else wants to do the lod part that would be great, or I may do it when Ace4 gets done.
The cancel and okay buttons just have strange placement. They should be next to each other.
We are going in circles here and while I understand what you are getting at with modularity etc. I see no evidence that you understand the implications of doing it as a lod mod. Therefore I am just going to do the easy thing as mentioned below
I've been arguing about scope, not implementation :P
Here's what I want as far as implementation goes:
* Works and performs as well as the original version. There are exceptions to this, obviously (translations, etc).
* No separate download required. I consider the "ability to bind keys" critical to addons using keybound.
The cancel and okay buttons just have strange placement. They should be next to each other.
Yeah I have been moving them around. (The windows style placement irks me because MS did it just to be different from Mac, not to be sensible). I'll move them back together but change Okay to say Save. That will make it more obvious, and also give both tooltips. That will cut down on the bogus "I was in the middle of changing stuff, then reloaded and nothing changed" bug reports, as well as make it more obvious this is the one interface setting where settings are actually immediately and permanently saved to disk.
On a related note I am debating adding the confirm dialog when you leave character specific settings. Doing so destroys them so its not the simple checkbox operation it apears to be. I think I can just call the Blizzard one directly so its not much overhead.
Quote from Tuller »
I've been arguing about scope, not implementation :P
I know. I've been trying to get it all bundled into a single lod mod with no lib. Or really the mod is the lib.
Quote from Tuller »
Here's what I want as far as implementation goes:
* Works and performs as well as the original version. There are exceptions to this, obviously (translations, etc).
* No separate download required. I consider the "ability to bind keys" critical to addons using keybound.
Well no matter what it now handles all possible character keys (for shortening) that I know of, as well as a Mac specific one + they can be localized if appropriate (AutoBar's technological distinctiveness was added to LibKeyBound). The Cancel and Save buttons are extra code but it addresses my and some other people's first reaction which is that it was too easy to break bindings you do not want to break.
Well there are 2 implementations I can see:
1) Lib + Mod: Works as well as the original +/- LibStub overhead, BUT you need to dl the separate mod to get macro & spell button binding. Only people that included LibKeyBoundExtra are inconvenienced since they need to switch to KeyBoundExtra as an optional dep. Well, also alphabetically early mods, because they will get the memory bloat blame.
2) lod Mod: Works and performs as well as the original (+/- initial load when first invoking it). When not used it works even better since it is not loaded at all and takes up no space or processing time. The only downside is more complex implementation as you need to listen for it to load then hook it up later instead of the current straight forward lib aproach.
Now I think since it is lod it is ok to just bundle it all together at that point. Yes from a computer science point of view it is cleaner to split it out but really, nobody wants to load 1 mod per feature they want. Sometimes bundling is ok. After all, the original was bundled ...
Inconveniences everyone as it breaks backwards compatability. Also, I think this breaks the "No separate download required" clause? Only an actual mod can be lod right? Not libs?
I think I am happy to call it good enough for now and live with option 1.
spellBound and macroBound were bundled simply because I was too lazy to make keybound into an embeddable library.
I really don't know how you plan on implementing a LOD library, but the key selling point is "I don't want to have to download a separate addon just so that I can bind keys to my action buttons"
...I really don't know how you plan on implementing a LOD library...
Well last time I looked at the relevant blizz API you could only make an actual mod lod (it needs a toc setting). So the idea is to pretty much call the lib a mod, give it a toc and have it lod separately. I do not think this API has changed so really until it does, it makes sense to go with option one since you want an included solution not a 2 mod solution.
You know thinking about it some more perhaps making the lib lod is not necessary. If a mod does not want the lib always loaded then it should make its own config lod. The issues remain the same but at least the lib does not have to be saddled with them.
The only drawback is you are not forcing an author to do the right thing but instead leading them down the garden path of always including and loading the lib. I guess I can document the wiki with a lod example.
So, why don't we make right click the normal key to clear bindings? I've run into a couple instances of people who actually use escape as a normal binding.
Big issue would obviously be mac users. Option + click for them?
So, why don't we make right click the normal key to clear bindings? I've run into a couple instances of people who actually use escape as a normal binding.
Big issue would obviously be mac users. Option + click for them?
Control-click, actually, but Macs handle this internally ;-)
Hi guys.
I'm using Infinibars, and it does not use default actionbars keybindings system (as it seems to me) and i use /kb for my bind in IB.
Everything is just fine for me untill i change the keyboard layout (RU<>EN), so for example, i've got some binds not functioning, because they might have some another system identification.
Previously, while using standart keybinds and standart action bars (or bartender) i used to use double binds feature (1st bind, 2nd bind) implemented in default bindings system.
So long story short, is it possible using /kb to bind on single actionbar button two keybinds?
I would love to see this.
Now i have to have "copy" of the actiobar buttons to bind there the 2nd keys.
Hi guys.
I'm using Infinibars, and it does not use default actionbars keybindings system (as it seems to me) and i use /kb for my bind in IB.
Everything is just fine for me untill i change the keyboard layout (RU<>EN), so for example, i've got some binds not functioning, because they might have some another system identification.
Previously, while using standart keybinds and standart action bars (or bartender) i used to use double binds feature (1st bind, 2nd bind) implemented in default bindings system.
So long story short, is it possible using /kb to bind on single actionbar button two keybinds?
I would love to see this.
Now i have to have "copy" of the actiobar buttons to bind there the 2nd keys.
You can bind two keys to one button, just bind click a second one while hovering, should not be any problem at all. Works for me.. :)
Rollback Post to RevisionRollBack
To post a comment, please login or register a new account.
Ok so its a packaging issue. You want it disembedded by making the lib a mod. I can understand the arguments for that.
On the other hand for me I want it packaged with AutoBar as a one stop keybinding solution that does everything except for miscellaneous Blizzard keybinds. As soon as I finish the cancel button for the LibKeyBound Key Bindings mode it will also be superior to the Blizzard system for all supporting mods and their bindings. If this part is split into a mod then it becomes less discoverable to users. Only people reading forums would know about it.
Another perspective is that the whole LibKeyBound package should really be lod, and not there unless you want to actually bind keys. If it is lod, then it makes sense for it to be complete rather than split up since the tiny bit of bloat (<6k raw uncompiled code) is usually not loaded. I am not sure if this is desirable. The implementation code would have to change a fair bit. However if it is worth splitting out KeyBoundExtra then it should be even more worth making the whole shebang lod.
So I am not sure how to proceed. I am inclined to include it into LibKeyBound as was originally done and then work on making it lod instead. Alternatively a mod can be made that simply packages LibKeyBoundExtra into say KeyBoundExtra.
I would also encourage you to provide any extra functionality (cancelling, lod) into new major versions of keybound.
Yes splitting it out derailed my plans to document it in the little explanation panel.
lod breaks backward compatability so it obviously would have a new major version.
Canceling is just a bonus feature requiring nothing from authors to work.
So I am doing this in 3 phases:
1) The panel gets an Okay and Cancel button. Cancel reverts, Okay commits. The hide box goes away.
2) Move the macro & spell book stuff back inside the lib + add localized text informing you of the ability.
3) lod, with a new major.
There is no functional difference except that saving of the buttons is now delayed till the Okay button is pressed or the panel is toggled (via an implementing mod). Before these changes each binding was immediately saved to disk.
Really, adding it into the main library is akin to making AutoBar an embedded library. I'm not coding this, so I cannot control you, but I still advise against it.
Tuller, instead of saying what you are against, please start saying what you are for. It was my understanding that you are for things to only be included once. Fair enough, many people are fetishistic about running disembeded etc. Splitting it out into a lod mod accomplishes this. Why are you now still objecting?
This is what I am for: a key bindings lib that is common for as many mods as care to implement it. It's value is enhanced when all mods that implement it are on the same version since then you can bind them all at once. it's value is further enhanced if it has consistent behaviour across mods. Including spell and macro bindings accomplishes that.
Personally I want spell and macro binding to be a part of it. Why? It saves me time, it covers missing territory. It is elegant, it is useful, I use it, I used it as recently as 4 hours ago. Not including it is just half-assing it imo and for no good reason that I can see.
This is not about being able to control me. This is about you needing to make a really good case for why the lib should be gimped. Frankly, I just dont see any reason for gimping it.
Ok here is what I truly care about happening & I am not too concerned about how it comes about or is packaged etc. I really only care about the user experience:
1) Explanatory text mentioning you can bind spell book and macro buttons is added to the bindings panel that currently tells you what to do, has Cancel and Okay buttons and the Character Specific checkbox. This is localized.
2) The spell book and macro buttons are bindable during the key bindings mode.
3) This is the case for all mods using the lib or mod or combination or whatever it is.
Now step 3 below is to make it lod. This does mean there is a mod. I was planning on it all just being shoved together. As it is lod, it really does not matter how it is packaged right?
On the other hand as suggested I can just add the text to the lib, and convert LibKeyBoundExtra to a mod and say who cares about it being lod. Users can just eat the extra memory it occupies. This apeals to my need to move on to other things and it svoids moving to 2.0 or any such thing.
The scope of LibKeyBound should be "a library that provides a simple interface for binding keys to buttons" and that's it. Spell and macro bindings should be provided as a standalone addon that embeds keybound. Removing the functionality from the library is not "gimping the library", but simply keeping the library within scope.
From a usability perspective:
Having to tell the user that "you can also bind keys to the spellbook!" in the help dialog that is displayed when in binding mode feels like a bandaid. The best way to make a user aware of the functionality is for them to explicitly download an addon that provides it. Beyond that, not every user wants to bind keys to spells or macros.
Again, apologies for sounding hostile. I just feel since you're making keybound a library, you should know my intent of what it should be.
I will turn LibKeyBoundExtra into the mod KeyBoundExtra. There will be localized text explaining its functionality in the panel. It is no more a band aid than the current text in that panel. I am going to place this localization wherever it is most convenient. This accomplishes my goals even if not in the efficient manner I would want.
What I am no longer going to do is make it all a lod mod which only gets loaded if actually needed. Instead the mod and lib as described above will always be loaded. This is sad, because the only motivation you have for wanting to separate lib & mod is to be efficient and now we have an inefficient solution. Please note this part because it is important: throwing it all together into a lod mod is much better efficiency wise than this kludge being advocated here. Making it lod means there is no lib, there is just the mod which completely replaces it.
If someone else wants to do the lod part that would be great, or I may do it when Ace4 gets done.
PS: Are you happy with the Cancel and Okay stuff?
I've been arguing about scope, not implementation :P
Here's what I want as far as implementation goes:
* Works and performs as well as the original version. There are exceptions to this, obviously (translations, etc).
* No separate download required. I consider the "ability to bind keys" critical to addons using keybound.
Yeah I have been moving them around. (The windows style placement irks me because MS did it just to be different from Mac, not to be sensible). I'll move them back together but change Okay to say Save. That will make it more obvious, and also give both tooltips. That will cut down on the bogus "I was in the middle of changing stuff, then reloaded and nothing changed" bug reports, as well as make it more obvious this is the one interface setting where settings are actually immediately and permanently saved to disk.
On a related note I am debating adding the confirm dialog when you leave character specific settings. Doing so destroys them so its not the simple checkbox operation it apears to be. I think I can just call the Blizzard one directly so its not much overhead.
I know. I've been trying to get it all bundled into a single lod mod with no lib. Or really the mod is the lib.
Well no matter what it now handles all possible character keys (for shortening) that I know of, as well as a Mac specific one + they can be localized if appropriate (AutoBar's technological distinctiveness was added to LibKeyBound). The Cancel and Save buttons are extra code but it addresses my and some other people's first reaction which is that it was too easy to break bindings you do not want to break.
Well there are 2 implementations I can see:
1) Lib + Mod: Works as well as the original +/- LibStub overhead, BUT you need to dl the separate mod to get macro & spell button binding. Only people that included LibKeyBoundExtra are inconvenienced since they need to switch to KeyBoundExtra as an optional dep. Well, also alphabetically early mods, because they will get the memory bloat blame.
2) lod Mod: Works and performs as well as the original (+/- initial load when first invoking it). When not used it works even better since it is not loaded at all and takes up no space or processing time. The only downside is more complex implementation as you need to listen for it to load then hook it up later instead of the current straight forward lib aproach.
Now I think since it is lod it is ok to just bundle it all together at that point. Yes from a computer science point of view it is cleaner to split it out but really, nobody wants to load 1 mod per feature they want. Sometimes bundling is ok. After all, the original was bundled ...
Inconveniences everyone as it breaks backwards compatability. Also, I think this breaks the "No separate download required" clause? Only an actual mod can be lod right? Not libs?
I think I am happy to call it good enough for now and live with option 1.
I really don't know how you plan on implementing a LOD library, but the key selling point is "I don't want to have to download a separate addon just so that I can bind keys to my action buttons"
Well last time I looked at the relevant blizz API you could only make an actual mod lod (it needs a toc setting). So the idea is to pretty much call the lib a mod, give it a toc and have it lod separately. I do not think this API has changed so really until it does, it makes sense to go with option one since you want an included solution not a 2 mod solution.
The only drawback is you are not forcing an author to do the right thing but instead leading them down the garden path of always including and loading the lib. I guess I can document the wiki with a lod example.
Big issue would obviously be mac users. Option + click for them?
Control-click, actually, but Macs handle this internally ;-)
I'm using Infinibars, and it does not use default actionbars keybindings system (as it seems to me) and i use /kb for my bind in IB.
Everything is just fine for me untill i change the keyboard layout (RU<>EN), so for example, i've got some binds not functioning, because they might have some another system identification.
Previously, while using standart keybinds and standart action bars (or bartender) i used to use double binds feature (1st bind, 2nd bind) implemented in default bindings system.
So long story short, is it possible using /kb to bind on single actionbar button two keybinds?
I would love to see this.
Now i have to have "copy" of the actiobar buttons to bind there the 2nd keys.
You can bind two keys to one button, just bind click a second one while hovering, should not be any problem at all. Works for me.. :)