emersonrp Posted September 29 Author Posted September 29 I have released v0.32-test1, which contains the immense rework of the Profile data, as well as dozens and dozens of other changes around the edges. It's almost certainly buggy. Check it out if you feel brave, and report bugs as you find them. Important: BACK UP YOUR PROFILES. This release changes almost everything about how the Profile Data are handled in code, and so the chances of bugs accidentally altering your Profile in undesirable ways are pretty good. Let me know your luck with it. I'll be continuing to test it myself, and releasing further -test releases as we go. https://github.com/emersonrp/bindcontrol/releases/tag/v0.32-test1
kenlon Posted September 30 Posted September 30 On 9/28/2025 at 7:39 PM, emersonrp said: In general I'm a little leery of splatting things onto keys that aren't explicitly chosen in BindControl, but I totally see where you're coming from. Honestly, you make a good point. Just having a checkbox for "Clear any existing team selection binds" would probably split the difference nicely. On 9/28/2025 at 7:39 PM, emersonrp said: But I'll probably just start with turning off the default keybinds for movement powers for new profiles. As a first pass, that works.
kenlon Posted September 30 Posted September 30 (edited) 13 hours ago, emersonrp said: Important: BACK UP YOUR PROFILES. This release changes almost everything about how the Profile Data are handled in code, and so the chances of bugs accidentally altering your Profile in undesirable ways are pretty good. What could possibly go wrong, I ask you? 😄 So far, it does seem to work smoothly enough. Edited September 30 by kenlon
kenlon Posted September 30 Posted September 30 Found a bug with v0.32 - if you do "Import saved build" it doesn't bring in any of your default profile settings. (And I did a "save as default" with my basic profile in 0.32 in case anything had changed with how it was saved in the ini file). Doing "new profile" inherits settings just fine.
emersonrp Posted September 30 Author Posted September 30 7 hours ago, kenlon said: Found a bug with v0.32 - if you do "Import saved build" it doesn't bring in any of your default profile settings. (And I did a "save as default" with my basic profile in 0.32 in case anything had changed with how it was saved in the ini file). Doing "new profile" inherits settings just fine. Ah good catch, yeah I'll get that for a -test2. I'm probably doing things in the wrong order during Profile initialization.
emersonrp Posted September 30 Author Posted September 30 (edited) 9 hours ago, kenlon said: Honestly, you make a good point. Just having a checkbox for "Clear any existing team selection binds" would probably split the difference nicely. As a first pass, that works. Cool, I'll try to roll those up for -test2. Edit: Oh I see that I already did the "no default movement key" thing for -test1. Edited September 30 by emersonrp
emersonrp Posted September 30 Author Posted September 30 OK I have released a -test2. I'm about to climb on a plane and be out of the loop until evening, so I'm just tossing this out there to see. Release notes: New "remove default team select binds" checkbox. This is smoke-tested but still might react weirdly with different / changing "Keybind Profile" settings. Bugfix: Various keybuttons were simply not getting fully initialized from the Profile data -- frankly I'm not sure how anything was working at all, but it should be working better now. Untested: Honor Default Profile when importing buildfile. This should just work fine, but because of time constraints today, I can't test it adequately. Check it out. Updated test_icons file to the new --forked version since I'm running pytest --forked by default now. https://github.com/emersonrp/bindcontrol/releases/tag/v0.32-test2
kenlon Posted September 30 Posted September 30 1 hour ago, emersonrp said: Untested: Honor Default Profile when importing buildfile. This should just work fine, but because of time constraints today, I can't test it adequately. Check it out. Nope, this doesn't work, sadly.
emersonrp Posted October 1 Author Posted October 1 10 hours ago, kenlon said: Nope, this doesn't work, sadly. Yeah, boy, that was just not the right thing at all, was it? OK, there's a -test3 out there now, where it -does- work, at least to a first approximation. There might still be a little weirdness because mashing one set of profile data on top of another is actually a bit more fiddly than I'd like. Check it out. https://github.com/emersonrp/bindcontrol/releases/tag/v0.32-test3
kenlon Posted Thursday at 01:17 AM Posted Thursday at 01:17 AM (edited) I really wish I knew what about your setup keeps getting the exe flagged by Defender. It's heuristic, since it's always a 'ml' detection. How are you packaging this? EDIT: I did just update the defs in the hopes that a new set would have clue, but no luck. Edited Thursday at 01:17 AM by kenlon
emersonrp Posted Thursday at 04:55 AM Author Posted Thursday at 04:55 AM 3 hours ago, kenlon said: I really wish I knew what about your setup keeps getting the exe flagged by Defender. It's heuristic, since it's always a 'ml' detection. How are you packaging this? EDIT: I did just update the defs in the hopes that a new set would have clue, but no luck. Oh, it's PyInstaller, it's always PyInstaller. I even wrote up a thing about it: https://github.com/emersonrp/bindcontrol/blob/main/Help/MalwareWarnings.md Not that that helps in any way. It's so completely aggravating, especially since I have explicitly pinned the version of python and of pyinstaller in the build script, so that they shouldn't be changing and confusing Windows Defender. Interestingly, on my Win11 laptop that I'm shackled to this week, I didn't get any malware warning with -test3, even when I explicitly scanned the folder. My Windows Defender virus defs here are 1.437.261.0, dated today, 10/1. Not that this should be a big deal, as PyInstaller 6.10 has (mostly) worked with Defender for months. If you're feeling extra adventurous, the "Running From Source" instructions in the README on GitHub can get you working with the raw Python source which will sidestep this entire problem completely, but it is more fiddly than just downloading release ZIPfiles.
kenlon Posted Thursday at 08:37 PM Posted Thursday at 08:37 PM Found an issue with test3: If you try to bind Incarnate powers, it doesn't quite work right. Example: the preview bind string for Ageless Core Epiphany is "powexectoggleon <class 'type'> Core Epiphany".
emersonrp Posted Thursday at 09:04 PM Author Posted Thursday at 09:04 PM 25 minutes ago, kenlon said: Found an issue with test3: If you try to bind Incarnate powers, it doesn't quite work right. Example: the preview bind string for Ageless Core Epiphany is "powexectoggleon <class 'type'> Core Epiphany". Yeah I just found that one earlier today, too. I have a fix out in the main branch already, so it'll be part of -test4 whenever that happens, maybe tonight. Also, out to the side, working on the business of importing the actual power picks from buildfiles, and using them to inform the PowerPicker popups and eventually things like movement power defaults.
kenlon Posted Friday at 02:03 AM Posted Friday at 02:03 AM 4 hours ago, emersonrp said: Also, out to the side, working on the business of importing the actual power picks from buildfiles, and using them to inform the PowerPicker popups and eventually things like movement power defaults. Would also be handy for things like powexec binds too, would make it simpler when setting up self-buff binds.
kenlon Posted Friday at 05:15 PM Posted Friday at 05:15 PM (edited) Saw you had a v0.32-test4 tagged, so I checked it out. The Incarnate powers are bindable now, but I ran into a small issue. PowerBinder doesn't have /powexec_location so I had to do it as a custom command. (I bound my Lore pet with "/powexec_location me" so they'd just drop at my feet in one click.) Edit: Additionally, is there a particular reason that ESC is unbindable, or is it just because hitting ESC to close windows is the default assumption of BindControl? Edited Friday at 05:35 PM by kenlon
emersonrp Posted Friday at 07:07 PM Author Posted Friday at 07:07 PM 1 hour ago, kenlon said: Saw you had a v0.32-test4 tagged, so I checked it out. The Incarnate powers are bindable now, but I ran into a small issue. PowerBinder doesn't have /powexec_location so I had to do it as a custom command. (I bound my Lore pet with "/powexec_location me" so they'd just drop at my feet in one click.) Oh yeah that's just an oversight. I'll add that in. 1 hour ago, kenlon said: Edit: Additionally, is there a particular reason that ESC is unbindable, or is it just because hitting ESC to close windows is the default assumption of BindControl? That's mostly the latter - the game handles binding ESC kinda weirdly, iirc, so I never dug into how to override the default toolkit behavior and capture ESC in the keybind dialog. If you have a use case for that, and I suppose you do or you wouldn't be asking, I can look into making that possible.
emersonrp Posted Friday at 07:18 PM Author Posted Friday at 07:18 PM 5 minutes ago, emersonrp said: That's mostly the latter - the game handles binding ESC kinda weirdly, iirc, so I never dug into how to override the default toolkit behavior and capture ESC in the keybind dialog. If you have a use case for that, and I suppose you do or you wouldn't be asking, I can look into making that possible. Wow OK, I have misremembered some of that. Apparently long long ago I explicitly grabbed ESC to close the KeySelect window and had forgotten in the intervening years. All I have to do is undo that, basically. So yeah, that'll be in -test5 for sure. Also now pondering adding an "Escape Wizard" that offers up a set of things one might want to do with the ESC key, like unselect, unqueue power, close extraneous windows, maybe a couple others, in a simpler UI. Possibly I'm just looking for things to do with the Wizard functionality that's just got the one thing so far.
emersonrp Posted Saturday at 01:16 AM Author Posted Saturday at 01:16 AM (edited) OK, I've just released a -test5 version with those two changes: bindable ESC key, and support for powexec_location in PowerBinder's "Use Power" command. The latter was a little hairier than I'd originally expected because I needed to provide UI for the various options for powexec_location, which I'm not 1000% happy with but it's better than nothing; also I had to gate all of that behind "if Homecoming" logic since Rebirth doesn't (yet?) have that slash command. Speaking of Rebirth, the server picker on the General page was not working at all and everything was Homecoming. I've fixed that, I believe. Rebirth players let me know if anything's weird with that. https://github.com/emersonrp/bindcontrol/releases/tag/v0.32-test5 Edited Saturday at 01:45 AM by emersonrp
kenlon Posted Saturday at 03:00 AM Posted Saturday at 03:00 AM I was considering binding ESC to the close all windows option, so I was curious about binding it.
emersonrp Posted Saturday at 10:30 PM Author Posted Saturday at 10:30 PM 19 hours ago, kenlon said: I was considering binding ESC to the close all windows option, so I was curious about binding it. You got me all inspired: Coming soon....
emersonrp Posted Sunday at 03:53 AM Author Posted Sunday at 03:53 AM Just released -test6, which fixes a couple of weirdnesses that would happen if you canceled adding a custom bind, and generally streamlined the "add custom bind" logic. https://github.com/emersonrp/bindcontrol/releases/tag/v0.32-test6
emersonrp Posted Sunday at 07:49 AM Author Posted Sunday at 07:49 AM Also cooking in a branch: Not in love with the UI yet, but it's being an interesting exercise.
emersonrp Posted yesterday at 07:16 AM Author Posted yesterday at 07:16 AM I've gone ahead and made this into an official v0.32 release. There are a few wee fixes from -test6, so go ahead and grab it. https://github.com/emersonrp/bindcontrol/releases Release Notes: This release radically reworks the internal representation of the Profile, making it separate from the UI state. This allows it to be tested without instantiating the UI, which will make it easier to avoid certain classes of bugs and regressions. This release has seen six test releases which were extremely helpful in finding issues with it, and now seems stable and workable. Please of course file bugs if you find them. Change notes from v0.31: Giant rework of storage of Profile data, as described above Many many many updates and additions to the pytest-based test suite "Remove default team select binds" option on Gameplay tab when using the Combined Team/Pet Selector binds Default Profile will now be honored / used when importing a buildfile New "Getting Started with BindControl" link on default start page to try to surface the wiki / documentation a bit more. "Miscellaneous Helpful Binds" on the Gameplay Page were simply not being written out, and now are. Added support for powexec_location to PowerBinder's "Use Power" command. It is now possible to bind "ESC" with the KeySelect dialog; previously trying to do this would simply close the dialog. Better flow adding a Custom Bind; several paths to weird behavior have been cleaned up. Multiple malformed / incomplete binds on the Custom Binds page will no longer each throw a separate warning dialog when writing binds; instead there will be a single dialog with a list of such binds Many more tiny updates and fixes that didn't merit individual notes at the time.
emersonrp Posted 21 hours ago Author Posted 21 hours ago And, because I'm wanting not to let things sit around and get stale, I've already rolled up the first beta-quality version of the "Escape Configurator" Wizard as v0.32.1-test1. It works fine as best I can tell but might want some UI / UX fiddling and/or functionality expansion. Check it out: https://github.com/emersonrp/bindcontrol/releases/tag/v0.32.1-test1
kenlon Posted 13 hours ago Posted 13 hours ago I ended up binding ESC to "/wdw_load" (after saving the window layout I want to use to Homecoming/settings/live/wdw.txt with /wdw_save) since I use the same layout for all characters. I used a custom bind, since your wdw save/load option uses wdwsavefile/wdwloadfile and I don't need separate window layouts at the moment. Just FYI. Another thing, the "default profile" being just a regular profile that you then use when creating new profiles has some drawbacks. If I add a new bind (custom or otherwise) to my default, or change one of my custom binds, I have to either recreate all my character-specific profiles or make the change to all of them myself. What I would really want, as an end user, is the following: The default profile is independent from manually created profiles, and when opening a profile for editing, the default is used as a base and then overwritten with any profile-specific changes that have been made. I can set all the movement type binds in the default, and then if I load a build/profile that has the associated powers in them, they are added to the binds written out by that profile. If I revise a shared bind, custom or not, all I have to do is open all the profiles, write out binds, save profile. Which is a much faster process than either recreating or manually saving and importing multiple custom binds, since you can't do a set at once. From looking over the code, that would be a bit of a pain to implement (at the very least), but I figured I'd at least mention it, given that you're already mucking around in the "which powers does this profile actually have" bits of Bindcontrol. The simplest way to do it, seems to me (though it may not be the best), would be to change up the file format so that each bind entry has an additional field that marks whether the bind is profile-specific or not. If the bind is from the default, not profile specific, then when opening the profile BindControl will update those binds to whatever the default has been changed to.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now