Jump to content

Custom Keybinds


Recommended Posts

I have searched around a bit but I have found nothing, not even plugins to help with custom keybinds. The only things I found here are old posts where the answer is "no" and no further information or explanation as to why that is. I can't say that I can program, but I do know some basics, and I find it really hard to understand as to why we still after all these years can't have custom keybinds. One of the old posts I saw about this topic was a person with a non-qwerty keyboard where one of the keybinds didn't physically exist on their keyboard. I have kind of the same problem though not as severe, I still run qwerty but since I live in Scandinavia I have the nordic layout where our "specialty" letters take the place of the regular symbols on the right side of the keyboard. This makes it so that many of the symbols that are easily available to a person using a standard North American qwerty keyboard is for me and many others locked behind two or even three click combos (Ctrl, Shift, Alt, Alt Gr etc. etc.). As you can probably understand, something as easy as just changing the brush size may be just one click for you but for me it is a three click exercise which I would rather not deal with. I think I saw a comment on one of the older posts about this topic mention that it is "hard coded" into the program, but any respectable programmer would use a variable concerning keys and their different functions within the program, so usually in the very start of the code is an index with all the variables and what physical key represents it, would it then be so hard to just make a small window which has the program authority to change what key coorelates with what variable, essentially making a window where you can change the keybinds? If I could manage to create a small program which basically did what I just explained within the first 6 months of my very first programming class in High School how come it still isn't a thing here? Not only that but for people who are handicapped and may not have fingers or such and has to use a custom computer interface because they physically can't use a regular keyboard there is no option for them to make the program more useable for them and might make them opt for another program instead. Now I'm not saying that handicapped people are your biggest user base but that would be more of an extreme example and I definetly see it being the case.

Link to comment
Share on other sites

A plugin works with paint.net by referencing its assemblies so the plugin has access to the public functions defined in those assemblies. An API is composed of numerous public functions that both your plugin and paint.net are aware of; this is what gives plugins the potential to interface with paint.net. There is only an effects and filetype API at the moment, so it's infeasible to create a plugin that performs keymapping. Keymapping is usually performed once in a top-level class so the resulting key states can be passed around or statically accessed instead of reading the unchanged key states; this would be unrealistic for a plugin to implement.

 

You may then ask why this hasn't been done by the programmers working on paint.net. The answer is that there is only one programmer, Rick Brewster, who won't take volunteers due to licensing restrictions. He's prioritized rewriting and extending the plugin API beneath a number of other things, so while he's probably not against such a suggestion, you won't see any improvement soon.

Edited by Joshua Lamusga
Link to comment
Share on other sites

You explained it more technically than I did with the key mapping index with it being a public class where in each key stroke value has a pre assigned varuable and that is consistant throughout the whole code. Therefore, allowing the user to influence the keybind "index" (even through code if that is what it takes) you only have to switch out the different values to correspond to what you would like the program to interpret your keystrokes as. I will try to make a very simple demonstration that I will link through Github or something similar, it will be in c# as it is what I am most familiar with but it should be clear enough to get my point across :P

Link to comment
Share on other sites

There must be dozens of key remappers available. Why not try one of them?

Link to comment
Share on other sites

While a key remapper would probably do the job, I don't want to permanently change my keyboard layout and I also don't want to deal with opening the keymapping program everytime I open up pdn or even while switching from my browser and back to pdn as I sometimes use the specialty keys in my browser. What I would like to see is having it be built into the program natively, it shouldn't even be hard to add in, or as I said earlier, just give us access to the code and we can add it ourselves if the maker can't be arsed to do it himself

Link to comment
Share on other sites

4 hours ago, Besastan said:

it shouldn't even be hard to add in, or as I said earlier, just give us access to the code and we can add it ourselves if the maker can't be arsed to do it himself

 

You're on thin ice speaking that way about Rick. Choose your words more carefully in future.

Link to comment
Share on other sites

@Besastan, I think having custom bindings would be useful to some people. No one has an issue with you making a request.

 

I'm locking this. The way I see it, you have a poor attitude, and have been disrespectful.

If you were homeless, would you go into a 'soup kitchen' and complain that they never severe your favorite soup? Would the call the cooks lazy, because they won't prepare a soup that only you want?

 

6 hours ago, Besastan said:

... it shouldn't even be hard to add in ...

Sure, if you're creating a new program from scratch, it wouldn't difficult at all. However, paint.net is a large and complex code base. I think you're imagining it to be a lot simpler than it really is. You can't always just swap-in replacement code.

 

6 hours ago, Besastan said:

... if the maker can't be arsed to do it himself ...

I don't recall ever hearing that he can't be bothered adding this functionality.  There are, however, items of more importance/priority. Items that affect the majority of the users. Your "pet feature" may be important to you, but it's not important to most people. Sorry to be the bearer of bad news.

 

1 hour ago, Besastan said:

Oh right we wouldn't want Our Holy Lord And Savior Rick The Almighty The Creator of Life, Heavens and Earth to be called out as lazy now would we

I get that this is just sarcasm and hyperbole, but it is unacceptable. We asked you to speak more respectfully, but instead you joke that only deities deserve your respect.

This seems like a misanthropic attitude, even it is in jest.

  • Like 1

(September 25th, 2023)  Sorry about any broken images in my posts. I am aware of the issue.

bp-sig.png
My Gallery  |  My Plugin Pack

Layman's Guide to CodeLab

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...