you'd be surprised our old professor for idk what god damn reason wanted us to use oracle forms 6 if you look at the last "patch" for the app, it's in 2007 biggest challenge was to install it and get everything working with other apps lmfao
Extremely niche use case: When you're playing Celeste at a high level, you can never have too many jump buttons, for instance, there's a room in a custom map called dashless+ which involves doing a trick where you press 3 jump keys at once. being able to set up extra jump keys without any conflicts with system keys would prove useful
@@WyattOShea I use f13 - f17 as controls when i am drawing. F13 to undo, f14 to redo, f15 to auto pick the colour where my mouse is, f16 to switch between pen and eraser and f17 to switch between two colours. I had a extra key thingie and it had f13 - f20 and i would just use that for my drawing tasks. I know all the above mentioned things can be done by pressing specific keys or holding a key while pressing with mouse but i found it much easier to do so. later i "accidently" broke my extra key thingie (i still have no idea what it is called but I just call it extra key thingie) and i just had to use my keyboard. Now that Joe has made it into a simple exe file, i can just use my mobile as secondary display via usb, the "F-key sender" would be on my mobile display and my drawing program on my laptop display and work easily. I know this sounds a really stupid use case of extra function keys but i just like it. I think it look cool (or maybe I am lazy). I also used to use f18 to mute and unmute on discord and f19 to defen. The above written use case is highly specific but hey I am lazy and if it can be automated with a button press, I should be automated with a button press, atleast for me.
That's so funny you mention this issue, I usually temporarily assign an f13-f24 key to my Razer Device whenever I need to map it into some other software and then change it back. This tool will help quite a bit lol.
This tool is super usful for configuring the macro buttons on my mouse. I was struggling to find a key I never use, however the F13-F24 keys work perfectly for this. Thank you for making this tool!
You are my hero. I use the F13 through F24 keys as mapping for disability stuff, and this makes it so much easier for things that require detecting keypresses. I haven't watched more than 30 seconds of the video, but I can tell it's going to be a good one.
There is actually a project called Avalonia UI which is an open source, cross platform, modernized implementation of Winforms. I used it to create a similarly basic GUI application but for Linux.
Winforms is fine. I really enjoy gtk3 which is mostly used by certain linux distros. That one's my favorite, but programming guis with it is an absolute pain. Still worth it, because your program will look dope.
For me it's because a ton of really useful tools over the years have been cobbled together using it so I associate with no frills, useful things that don't require me to download another 500 MB electron bullshit over and over again.
I still use a keyboard named the OmniKey Ultra. This dates from at least 35 years ago, probably more. In its day, it was considered the best keyboard available anywhere, and nothing about that has changed, but for all the dedicated Windows function keys added to the lexicon in the interim. It has a separate register of so-called "special function" keys, which are just the 13-24 keys. When I got it, programs didn't naturally recognize those keys, so Omni included a DOS-based program allowing the user to program their usage. With several office moves, over the years that disk and program disappeared, and I never made significant use of the idea anyway. It probably wouldn't work in a modern Windows environment anyway. So, I'll give this a try, although I'm not yet sure what I will program the keys to do if it works.
I can't tell you how much this helps! A lot of productivity software has a keyboard shortcut assignment menu with a bunch of useful options unassigned, because they ran out of key combinations to assign to them. Now I can have 12 of those directly assigned to either my G13 or my "MMO" mouse keys. Thanks a bunch!
@@dominic.h.3363 I wish you good luck assigning those keys to your Logitech hardware, my Roccat Gear doesn't Support those keys at all lmao. Just can't assign them
@@dominic.h.3363 I even wrote their customer support over the issue and they told me its not high enough priority to implement so yeah, been slowly replacing my roccat stuff lol
Whenever I start up a new game I make a custom profile for my mouse's macro buttons, and I have a lot of profiles lying around in a folder somewhere. Now I can have one web profile and one game profile and just remap the keybinds in the game instead of fiddling with the mouse software. A simple, easy to use software you only need to use once is close to perfect. Thank you.
For my mouse, I was able to bind F24 by creating a random function key bind, then opening the profile file in a file editor, finding the bind, and just changing a string like "F12" to "F24" I use Logitech's Gaming Software (9.02) for my Logitech G600 mouse.
I know from experience that SendInput sometimes has problem with being detected within Games when sent via a external Program and not a Driver. Tried this to automate fishing in MC, and SendInput would sometimes not work at all. I would use then Send Event as in KeyStrokes, basically the kbd_event, and it worked. Really depends on where you use it, since i guess some Programs just aren't that good at detecting External Program's SendInput If you're wondering which language, it's Autohotkey v1, Completely relied on Windows's own dlls and functions.
You use a timer for waiting until the user selects another window. You could do something like what Keepass does; send Shift+Alt+Tab to select the previous window. Or use a different API to list all open windows and activate it before sending the input. :)
That app looks really good in my opinion. Change the "(i)" to "context help" or sth. "Delay" to "Delay to key press" and "Hold duration" Time key is pressed. Change the list to Radio. Add help button ("Help") Put them both in seconds. That kinds of problems if at all.
That's super useful! I often record macros that use those keys for various tools that let you remap stuff but not quite. And sending F17 through AHK itself is a minor inconvenience that gets more and more annoying as I debug and test my scripts.
I used to manually edit the configs to assign F13-F24 keys to macro buttons, which is easy enough to do, but your tool will definitely make the process faster
oh my god I've actually been wanting a tool like this for SOOOOO long. Havn't even watched the video yet but I've always wanted an F13-F24 tool. I allready have F13, 16, 23, & 24 bound to some of my extra mouse buttons for random stuff, but being able to access all of them easiley with a tool like this is AMAZING
I write AutoHotkey scripts and bind keys like F13 to F24 and use the Corsair iCUE software to bind keys to those function keys. My Corsair K95 is the 18 G-Key edition, so I also bind some of the other keys to Int1-6 and/or Lang1-9. Who knew those were also hidden hardware keys? AutoHotkey can see those keys using scan codes so you can bind to SC073:: for Int1 for example.
@@repeekyraidcero I have to admit, It's far from everything. There's a lot of things missing, but the things that are not missing are totally worth it in my opinion.
First off, using F13-F24 makes sense only if you have a software app using them (mostly industrial or banking apps). And if you need it, you can buy a kbd with 24 F-keys, as many have suggested. And I think in Windows you can enter these codes using the Shift key, ie Shirt+F1 enters F13, Shift+F2 F14 and so on.
Thanks for bringing this to my attention, apparently auto hotkey v1 has the f13-24 keys built into its recognition so if you wanna just use some ahk script a::f24 return would turn a into f24 for example
Really cool idea. Only feature request I have would be to make it possible to set fractional seconds for the Delay. Looks like it allows decimals to be input, but then rounds to the nearest integer when the key is clicked.
Thank you! This is fantastic info and appreciate the effort you made to put the program together. Hoping one day keyboard manufacturers bring back options for those who want F13-F24 - until then this is a great stopgap.
An interesting use case for the additional F-keys: a video production computer called a Chyron Duet (which the TV station I worked for years ago used) had a row of additional keys that I'm pretty sure corresponded to the extended F-key set.
The 122-key keyboards are used for IBM 3270 and 5250 terminal emulation. Later PS/2s had BIOS support for the "host connect" keyboard with - of course - a PS/2 connection. Terminal emulation programs will typically just use [shift]+Fx for the upper row of function keys on a regular keyboard, and yes, they are used for some host functions. INT 15h, Function C0h reports whether there is 122-key keyboard support in BIOS - then there are INT 16h BIOS functions to get the keystrokes.
Whenever I need to use them, I personally just quickly program an Arduino Leonardo to virtualize keyboard inputs. It's very simple from the Arduino Docs... but also, you'd need hardware, so this method is a much better alternative.
I typically make use of these special F keys with OBS, which readily accepts being assigned hotkeys with them, and a KeyChron keyboard, which typically allows assigning their macro keys with them.
I remapped my F1 key to F13 (using powertoys) and rebound it wherever i actually needed F1 (i put F13 wherever F1 used to be in games or other programs that i care about) so it does not trigger help which is the default action for that key in windows and many programs since i found myself misclicking it so much...
this would have been really handy last year when I was trying to do precisely the same thing, and had to resort to crappy AHK scripts. mousbinds for tarkov and teamspeak will basically an entire 102-key lol
The tool gave me an idea of a tool I’ve been looking for, may fork and and give it a try for my use case…. Use case is when I connect to remote devices the client disables copy/paste text from host to remote device. Sometimes I need to send long strings of text (long URLs) this would be very useful.
a nice feature would be a drop down or other menu where you can pick from any key or at least the less common ones, a lot of stuff just isnt available on say a 60% keyboard and cant always be found in the software
i wish there were more FNumbers. I love asigning shortcuts on my programs that I use with another keyboard using HID macros and give it the fnumbers. never liked replacing default shortcuts, so fnumbers are pretty useful as a blank slate to assign
I once had to do something similar and used powershell for the same effect. It was relatively simple to setup but this looks very cute. I will defo use this if I ever need to again.
Thank you I didn't even know about the f13-f24 this is very useful for mouse button mapping. Especially because you made a super simple and easy to use program for them!
Last time i had to do this, i generated the fake inputs with the Autohotkey console. It's capable of sending inputs very reliably. But i already forgot how to do this. Autohotkey also has a simple UI framework and will package a script into a small-ish self contained executable for easy deployment. Perhaps i should make a tiny little USB keyboard with tiny little tact switches for the extended Fkeys that i misplace every time i need it. Based on the new one-dollar bluepill with the c6 version of the chip (32K flash, 10K RAM), which is just about capable enough of simple USB input tasks. The last batch that i got even has the correct USB pullup resistor! Only took them 10 years.
Good job, ThioJoe. Yes, it is probably useful for many applications and you can get an X-keys keyboard from P.I. Engineering an get some real good shortcut macros going. Of course, X-keys have their own software (Macroworks 3.1) but I'm going to try it with your software because I have an X-keys keyboard.
sadly alot of modern games are dropping support for F13+ keys. i use F13 and F14 for PTT for my discord and a utility button for my mouse but every new game i play that requires in game voip it never recognizes the input
My keyboard has 22*4 macro keys (steelseries apex 350 with 4 profiles) and my mouse has like 11 macro keys (steelseries rival 500), and I usually have trouble finding empty shortcuts to assign to them as macros. You just gave me 12*8 more options including the CRTL, ALT, SHIFT combos.
Thank you this is what I needed. I use a footswitch which with the included software I can assign any function key but the Logitech software is frustrating for assigning G keys.
Yeah, if you've used SDL any you'll get more familiar with crafting your own event structures and pushing them into the event loop. Done that a few times to change input mechanisms for various open source games and stuff like that. As for me, if I used Windows, I'd set the F14 key to display a tomcat when you press it, and F22 would put the computer in stealth mode. I don't know if Linux has any hidden function keys like that, but if so, maybe I should do something funny like that on Linux.
When I was learning to program, the biggest problem I had was how to refill the holes created by the keypunch machine whenever I made a typo for the line of code I was writing.
@ThioJoe Yes this will for sure be useful. I use the Logi software as well and some of the games I play and utilities it would be nice to use these extra key codes. Thank you :)
Imagine if it was possible to connect another keyboard, however the keys on that one, could be remapped to shortcuts in programs like video editors or CAD, photo editing etc. and you just marked the keys of that extra keyboard with the assigned shortcuts.
F13-24 is not a "holdover." You can buy keyboards with them - they are mostly marketed for industrial uses though. As for the code, that was also unnecessary. You can easily create create and use AutoHotKey scripts to bind and use them. I think you can even remap them with the registry or PowerToys (not 100% sure about this though)
Might as well have the whole keyboard, because people don't necessarily have full keyboard, but might want to assign those functions to mouse buttons etc.
This is what I've been looking for. I was using Autohotkey, but it was too clunky to use. Also the Power Automate that was recommended before wouldn't run on my pc, as it was stuck on error saying it couldn't update. Thanks for making it Open source, too.
Include all the 'linux-only' special keys and this'll be the ONLY free OSK out there that serves this. IDK any paid-for software that provides this too, actually. It's why i got here in the middle of my search, just now. Currently configuring a new midi gear i got to run macros on. In my setup, i'm forced to use an OSK. This program is a godsend. Too bad i'll have to find those 'linux-only' special keys on an OSK elsewhere. But still, can't be thankful enough for this!
Thio Jo, after ThePrimeTime and Theo, you are my favourite youtuber for a reason. You have a be of doing something smart/technical/useful to a niche and I just love that so much about your content. Thanks! :)
This is so useful. Cant remember which, but either iCUE (my mouse) or steelseries (my kb) doesn't list F13-24 keys, and I have 3 always on AHK scripts on tgose buttons, so now I can finally simplify those.
I've been doing exactly this for years. Whenever I get a mouse with a bunch of side buttons, I program them to be F13+ (along with modifiers for any "modes" the mouse might support). That way, I can intercept them with an AutoHotkey script to do whatever I want. Every time I do that, I have to create a new AHK script to send the F13-F24 keys (along with modifiers) to the mouse's mapping program. Now I won't have to redo it every time, I can just use Joe's program. That said, not all programs even WILL catch F13+, for example, the mapping program for Logitech and various lower-end devices like Redragon have all worked, but the one for Razer doesn't work, it refuses to accept F13+ when mapping buttons and keys. Just another reason I DESPISE Razer. 😒 Maybe I should just get an old PS1 keyboard with physical F13-F24 keys. 🤔 Either that, or I'll just create an Arduino device with physical keys for them. 🤷 3:47 Exactly. Years ago, I wrote an AHK script to let me easily map anything I want to every permutation of the function-keys, so when I got my first mouse or keyboard with extra programmable keys/buttons, I needed some unused scancodes. I checked the list and saw a bunch of unused ones like Kanji or Reset or whatever, but F13-F24 was just cleaner and more convenient and more universally supported (almost, **cough*Razer*cough** 😒). 4:04 C# 🤦 4:45 AHK supports several different input methods, all of which are easy to use. 4:53 Flashback to the old days of windows-programming with Visual Studio. 6:27 Joe using hard-mode. 😂 AHK ftw.
I think if you look hard enough you can find a decent 122-key 3270-style keyboard that is fully PC-compatible. Not cheap though, but useful if you still use tn3270.
I use winforms because I am a relatively old fart (40-something) and I started Windows programming in VB3 for Windows 3.1. Now I do niche data-wrangling coding in C# where I am the only person who is going to use my applications, Winforms is still quick and easy, so I make little Winforms dialogs. I don't need to make "cross platform" or "beautifully modern" interfaces, so I don't.
"Ugly, but it works"
Me when I test web pages I made that look like it was made almost 30 years ago.
Real
Subscribed
I hope they also work like old webpages, and load in old browsers. we have enough modern sludge
nah, the web pages are prob beautiful
My school forces us to use Winforms to learn application programming. This is the first time I have seen someone other than my school use Winforms xD
Same
winforms are kinda the easiest way to do it, if you only care about windows. if you want it to be cross platform than you obviously won't use winforms
@@collared ye ofc i know, i went to this course with a MacBook.... XD had to dualboot windows
you'd be surprised
our old professor for idk what god damn reason wanted us to use oracle forms 6
if you look at the last "patch" for the app, it's in 2007
biggest challenge was to install it and get everything working with other apps lmfao
@@xdct.4790 Why would you even use MacBook?
FINALLY I use F13-F24 all the time and nobody references them ever
Hi Lexi!
lexiiii
greetings
Wait, on a physical keyboard, or?
Same I use another keyboard for macros and flight sim shenanigans
(Yoo it's Lexi! :3)
Extremely niche use case:
When you're playing Celeste at a high level, you can never have too many jump buttons, for instance, there's a room in a custom map called dashless+ which involves doing a trick where you press 3 jump keys at once. being able to set up extra jump keys without any conflicts with system keys would prove useful
5250 or 3270 terminal emulation - although those programs typically map [shift]+Fx.
I NEEDED a tool like this. I cannot express how glad I am that you made this. Thank you so much for making this program.
If one person finds it useful then it’s worth it 😌
Yeah, you’re both right @@ThioJoe
What do you use it for?. I'm just curious as a person that has and probably never will have a real use case for this.
for waht?
@@WyattOShea I use f13 - f17 as controls when i am drawing. F13 to undo, f14 to redo, f15 to auto pick the colour where my mouse is, f16 to switch between pen and eraser and f17 to switch between two colours. I had a extra key thingie and it had f13 - f20 and i would just use that for my drawing tasks. I know all the above mentioned things can be done by pressing specific keys or holding a key while pressing with mouse but i found it much easier to do so. later i "accidently" broke my extra key thingie (i still have no idea what it is called but I just call it extra key thingie) and i just had to use my keyboard. Now that Joe has made it into a simple exe file, i can just use my mobile as secondary display via usb, the "F-key sender" would be on my mobile display and my drawing program on my laptop display and work easily. I know this sounds a really stupid use case of extra function keys but i just like it. I think it look cool (or maybe I am lazy). I also used to use f18 to mute and unmute on discord and f19 to defen. The above written use case is highly specific but hey I am lazy and if it can be automated with a button press, I should be automated with a button press, atleast for me.
"F25 key? Are you ready for this? Promise not to tell. I'm gonna hit the F25 key, get ready!"
I Was want talk like that
@@OfficialDubEnderDragon it's a reference to a meme.
@@ChillaxeMake i already know that meme
@@OfficialDubEnderDragon😐
*galaxian screaming noises*
That's so funny you mention this issue, I usually temporarily assign an f13-f24 key to my Razer Device whenever I need to map it into some other software and then change it back. This tool will help quite a bit lol.
This tool is super usful for configuring the macro buttons on my mouse. I was struggling to find a key I never use, however the F13-F24 keys work perfectly for this. Thank you for making this tool!
You are my hero. I use the F13 through F24 keys as mapping for disability stuff, and this makes it so much easier for things that require detecting keypresses. I haven't watched more than 30 seconds of the video, but I can tell it's going to be a good one.
I was actually looking for something like this ngl (for absolutely no reason, just wanted lots of keys 😂)
There is actually a project called Avalonia UI which is an open source, cross platform, modernized implementation of Winforms. I used it to create a similarly basic GUI application but for Linux.
actually it is inspired by wpf , wpf is a more modern version of winform but that come before windows store app (aka uwp app)
C# dev here, I still use WinForms a lot for little tools like this.
I couldn't really tell you why, but I've always liked the Winforms aesthetic. It's like brutalism for software.
Winforms is fine. I really enjoy gtk3 which is mostly used by certain linux distros. That one's my favorite, but programming guis with it is an absolute pain. Still worth it, because your program will look dope.
@@ulroxvladtepes4023 I certainly prefer Winforms to the overengineered mobile-on-desktop interfaces we have in Current Year, at any rate.
For me it's because a ton of really useful tools over the years have been cobbled together using it so I associate with no frills, useful things that don't require me to download another 500 MB electron bullshit over and over again.
Underrated comment
@@ulroxvladtepes4023WinForms and GTK3+ - both completely incapable of adhering to even basic DE customisation. Figures.
I still use a keyboard named the OmniKey Ultra. This dates from at least 35 years ago, probably more. In its day, it was considered the best keyboard available anywhere, and nothing about that has changed, but for all the dedicated Windows function keys added to the lexicon in the interim. It has a separate register of so-called "special function" keys, which are just the 13-24 keys. When I got it, programs didn't naturally recognize those keys, so Omni included a DOS-based program allowing the user to program their usage. With several office moves, over the years that disk and program disappeared, and I never made significant use of the idea anyway. It probably wouldn't work in a modern Windows environment anyway. So, I'll give this a try, although I'm not yet sure what I will program the keys to do if it works.
I can't tell you how much this helps! A lot of productivity software has a keyboard shortcut assignment menu with a bunch of useful options unassigned, because they ran out of key combinations to assign to them. Now I can have 12 of those directly assigned to either my G13 or my "MMO" mouse keys.
Thanks a bunch!
@@dominic.h.3363 I wish you good luck assigning those keys to your Logitech hardware, my Roccat Gear doesn't Support those keys at all lmao. Just can't assign them
@@p529. Damn, I always knew Roccat was garbage. I have a Nyth gathering dust in my desk drawer! :D
@@dominic.h.3363 I even wrote their customer support over the issue and they told me its not high enough priority to implement so yeah, been slowly replacing my roccat stuff lol
Whenever I start up a new game I make a custom profile for my mouse's macro buttons, and I have a lot of profiles lying around in a folder somewhere.
Now I can have one web profile and one game profile and just remap the keybinds in the game instead of fiddling with the mouse software.
A simple, easy to use software you only need to use once is close to perfect.
Thank you.
For my mouse, I was able to bind F24 by creating a random function key bind, then opening the profile file in a file editor, finding the bind, and just changing a string like "F12" to "F24"
I use Logitech's Gaming Software (9.02) for my Logitech G600 mouse.
I use F1 - F12 maybe once a year, so .... 😄But thank you for the effort, Joe.
Maybe you don't need that but it is worth learning some of the keys. F5 - refresh; F1 - help docs.
i am a power user of alt+f4... you can only imagine my disappointment when my new keyboard didn't have dedicated F keys at all.
I know from experience that SendInput sometimes has problem with being detected within Games when sent via a external Program and not a Driver.
Tried this to automate fishing in MC, and SendInput would sometimes not work at all. I would use then Send Event as in KeyStrokes, basically the kbd_event, and it worked.
Really depends on where you use it, since i guess some Programs just aren't that good at detecting External Program's SendInput
If you're wondering which language, it's Autohotkey v1, Completely relied on Windows's own dlls and functions.
You use a timer for waiting until the user selects another window. You could do something like what Keepass does; send Shift+Alt+Tab to select the previous window. Or use a different API to list all open windows and activate it before sending the input. :)
or wait for a defocus
That app looks really good in my opinion. Change the "(i)" to "context help" or sth. "Delay" to "Delay to key press" and "Hold duration" Time key is pressed. Change the list to Radio. Add help button ("Help") Put them both in seconds. That kinds of problems if at all.
Yes, the 7th tool that ThioJoe makes that no one will ever use productively :D
That's super useful! I often record macros that use those keys for various tools that let you remap stuff but not quite. And sending F17 through AHK itself is a minor inconvenience that gets more and more annoying as I debug and test my scripts.
Now we need this for the f25 key
I used to manually edit the configs to assign F13-F24 keys to macro buttons, which is easy enough to do, but your tool will definitely make the process faster
can't wait for the F25 Key... might need a much longer video to demonstrate 😂
oh my god I've actually been wanting a tool like this for SOOOOO long. Havn't even watched the video yet but I've always wanted an F13-F24 tool. I allready have F13, 16, 23, & 24 bound to some of my extra mouse buttons for random stuff, but being able to access all of them easiley with a tool like this is AMAZING
I write AutoHotkey scripts and bind keys like F13 to F24 and use the Corsair iCUE software to bind keys to those function keys. My Corsair K95 is the 18 G-Key edition, so I also bind some of the other keys to Int1-6 and/or Lang1-9. Who knew those were also hidden hardware keys? AutoHotkey can see those keys using scan codes so you can bind to SC073:: for Int1 for example.
I assigned such keys with Touch Portal. You can easily set it up, and on the mobile interface you can send those keystrokes.
I dare you, do this for linux, specifically for wayland.
WL would be a pain to target. Maybe a wrapper around the compositor, maybe a wlRoots specific hack?
Have you seen libei? :)
Why ?
I thought you guys had everything already ?
Jealous ? 🤣🤣🤣
(Jk)
@@repeekyraidcero I have to admit, It's far from everything. There's a lot of things missing, but the things that are not missing are totally worth it in my opinion.
First off, using F13-F24 makes sense only if you have a software app using them (mostly industrial or banking apps).
And if you need it, you can buy a kbd with 24 F-keys, as many have suggested.
And I think in Windows you can enter these codes using the Shift key, ie Shirt+F1 enters F13, Shift+F2 F14 and so on.
Thanks for bringing this to my attention, apparently auto hotkey v1 has the f13-24 keys built into its recognition so if you wanna just use some ahk script a::f24 return would turn a into f24 for example
So can you can set a key combo like Ctrl + any of the F13-F24 Keys and that would work too?
Really cool idea. Only feature request I have would be to make it possible to set fractional seconds for the Delay. Looks like it allows decimals to be input, but then rounds to the nearest integer when the key is clicked.
I use a mac keyboard on my windows PC, so I have F13 to F19 keys!
Jealous
It seems like they'd be useful for function macro's, especially if you work in programs like cad, and want shortcuts to make life easier.
Thank you! This is fantastic info and appreciate the effort you made to put the program together. Hoping one day keyboard manufacturers bring back options for those who want F13-F24 - until then this is a great stopgap.
An interesting use case for the additional F-keys: a video production computer called a Chyron Duet (which the TV station I worked for years ago used) had a row of additional keys that I'm pretty sure corresponded to the extended F-key set.
The 122-key keyboards are used for IBM 3270 and 5250 terminal emulation. Later PS/2s had BIOS support for the "host connect" keyboard with - of course - a PS/2 connection. Terminal emulation programs will typically just use [shift]+Fx for the upper row of function keys on a regular keyboard, and yes, they are used for some host functions.
INT 15h, Function C0h reports whether there is 122-key keyboard support in BIOS - then there are INT 16h BIOS functions to get the keystrokes.
03:45 Ctrl+F4 is pretty common to close the current document or tab. (Nowadays, programs also support Ctrl+W for that)
Whenever I need to use them, I personally just quickly program an Arduino Leonardo to virtualize keyboard inputs. It's very simple from the Arduino Docs... but also, you'd need hardware, so this method is a much better alternative.
I typically make use of these special F keys with OBS, which readily accepts being assigned hotkeys with them, and a KeyChron keyboard, which typically allows assigning their macro keys with them.
If were to assign functions from F13 to F24 keys, I'd forget what each one does 🙄. It's a great program Joe and thanks for the efforts!
I remapped my F1 key to F13 (using powertoys) and rebound it wherever i actually needed F1 (i put F13 wherever F1 used to be in games or other programs that i care about) so it does not trigger help which is the default action for that key in windows and many programs since i found myself misclicking it so much...
this would have been really handy last year when I was trying to do precisely the same thing, and had to resort to crappy AHK scripts. mousbinds for tarkov and teamspeak will basically an entire 102-key lol
The tool gave me an idea of a tool I’ve been looking for, may fork and and give it a try for my use case…. Use case is when I connect to remote devices the client disables copy/paste text from host to remote device. Sometimes I need to send long strings of text (long URLs) this would be very useful.
a nice feature would be a drop down or other menu where you can pick from any key or at least the less common ones, a lot of stuff just isnt available on say a 60% keyboard and cant always be found in the software
i wish there were more FNumbers. I love asigning shortcuts on my programs that I use with another keyboard using HID macros and give it the fnumbers. never liked replacing default shortcuts, so fnumbers are pretty useful as a blank slate to assign
I once had to do something similar and used powershell for the same effect. It was relatively simple to setup but this looks very cute. I will defo use this if I ever need to again.
Amazing stuff as usual.
Microsoft should just hire you part-time.
Thank you I didn't even know about the f13-f24 this is very useful for mouse button mapping. Especially because you made a super simple and easy to use program for them!
i, just today, made an autohotkey script to press f24 after a second explicitly for the logitech usecase you mentioned. would've liked this, lol
Last time i had to do this, i generated the fake inputs with the Autohotkey console. It's capable of sending inputs very reliably. But i already forgot how to do this.
Autohotkey also has a simple UI framework and will package a script into a small-ish self contained executable for easy deployment.
Perhaps i should make a tiny little USB keyboard with tiny little tact switches for the extended Fkeys that i misplace every time i need it. Based on the new one-dollar bluepill with the c6 version of the chip (32K flash, 10K RAM), which is just about capable enough of simple USB input tasks. The last batch that i got even has the correct USB pullup resistor! Only took them 10 years.
Good job, ThioJoe. Yes, it is probably useful for many applications and you can get an X-keys keyboard from P.I. Engineering an get some real good shortcut macros going. Of course, X-keys have their own software (Macroworks 3.1) but I'm going to try it with your software because I have an X-keys keyboard.
This is fantastic, I always had to write my own autohotkey scripts to push these buttons. Thank you!
A version where the app youre typing into retains focus would be useful (similar to how the windows on-screen keyboard works)
sadly alot of modern games are dropping support for F13+ keys. i use F13 and F14 for PTT for my discord and a utility button for my mouse but every new game i play that requires in game voip it never recognizes the input
I use PowerToys' Keyboard Manager to remap Shift+F1 to F13, Shift+F2 to F14, et cetera.
My keyboard has 22*4 macro keys (steelseries apex 350 with 4 profiles) and my mouse has like 11 macro keys (steelseries rival 500), and I usually have trouble finding empty shortcuts to assign to them as macros. You just gave me 12*8 more options including the CRTL, ALT, SHIFT combos.
Thank you this is what I needed. I use a footswitch which with the included software I can assign any function key but the Logitech software is frustrating for assigning G keys.
Yeah, if you've used SDL any you'll get more familiar with crafting your own event structures and pushing them into the event loop. Done that a few times to change input mechanisms for various open source games and stuff like that. As for me, if I used Windows, I'd set the F14 key to display a tomcat when you press it, and F22 would put the computer in stealth mode. I don't know if Linux has any hidden function keys like that, but if so, maybe I should do something funny like that on Linux.
Its always "fun" to end up going into a lower level of the OS API rabbit hole. Just come up for air when you see electrons whizzing by.
When I was learning to program, the biggest problem I had was how to refill the holes created by the keypunch machine whenever I made a typo for the line of code I was writing.
As someone who uses macros all the time, this is great! No one can stop you! 💪🏻
good vid , personally have no use for it. but now i know
@ThioJoe
Yes this will for sure be useful. I use the Logi software as well and some of the games I play and utilities it would be nice to use these extra key codes.
Thank you :)
WE ARE GOING BACK TO 1998 WITH THIS ONE🗣🗣🔥🔥
copyfarm
Except SendInput was introduced in Windows 2000 🧠
@@mandai2 I stand corrected
@@cybi124yeah
Imagine if it was possible to connect another keyboard, however the keys on that one, could be remapped to shortcuts in programs like video editors or CAD, photo editing etc. and you just marked the keys of that extra keyboard with the assigned shortcuts.
F13-24 is not a "holdover." You can buy keyboards with them - they are mostly marketed for industrial uses though. As for the code, that was also unnecessary. You can easily create create and use AutoHotKey scripts to bind and use them. I think you can even remap them with the registry or PowerToys (not 100% sure about this though)
you can use autohotkey but that doesn't work with Logitech software in my experience, which he specifically mentioned he tried to get working
@@darxoonwasser Works fine for me.
Might as well have the whole keyboard, because people don't necessarily have full keyboard, but might want to assign those functions to mouse buttons etc.
I was waiting for this.. Even though i probably could have used autohotkey.
Super cool! I will definitely be using this in the future.
f13-24 keys are such a blessing for macros because no software uses them, wish they were included in actual keyboards.
If they were included in actual keyboards then software would use them, and they would become useless for macros. ☹
This is what I've been looking for. I was using Autohotkey, but it was too clunky to use. Also the Power Automate that was recommended before wouldn't run on my pc, as it was stuck on error saying it couldn't update. Thanks for making it Open source, too.
Our Hero is back with a bang
Include all the 'linux-only' special keys and this'll be the ONLY free OSK out there that serves this.
IDK any paid-for software that provides this too, actually.
It's why i got here in the middle of my search, just now.
Currently configuring a new midi gear i got to run macros on. In my setup, i'm forced to use an OSK.
This program is a godsend. Too bad i'll have to find those 'linux-only' special keys on an OSK elsewhere. But still, can't be thankful enough for this!
This is great for some accessibility features.
I use them a lot with AHK, and press them with a GENOVATION MACRO KEYPAD CP48
i set up my mouse driver to f13+, works in most apps but not some old ones
Thio Jo, after ThePrimeTime and Theo, you are my favourite youtuber for a reason. You have a be of doing something smart/technical/useful to a niche and I just love that so much about your content. Thanks! :)
Power automate is actually a great tool I wish I lnew about earlier.
This is so useful. Cant remember which, but either iCUE (my mouse) or steelseries (my kb) doesn't list F13-24 keys, and I have 3 always on AHK scripts on tgose buttons, so now I can finally simplify those.
I've been doing exactly this for years. Whenever I get a mouse with a bunch of side buttons, I program them to be F13+ (along with modifiers for any "modes" the mouse might support). That way, I can intercept them with an AutoHotkey script to do whatever I want. Every time I do that, I have to create a new AHK script to send the F13-F24 keys (along with modifiers) to the mouse's mapping program.
Now I won't have to redo it every time, I can just use Joe's program. That said, not all programs even WILL catch F13+, for example, the mapping program for Logitech and various lower-end devices like Redragon have all worked, but the one for Razer doesn't work, it refuses to accept F13+ when mapping buttons and keys. Just another reason I DESPISE Razer. 😒
Maybe I should just get an old PS1 keyboard with physical F13-F24 keys. 🤔 Either that, or I'll just create an Arduino device with physical keys for them. 🤷
3:47 Exactly. Years ago, I wrote an AHK script to let me easily map anything I want to every permutation of the function-keys, so when I got my first mouse or keyboard with extra programmable keys/buttons, I needed some unused scancodes. I checked the list and saw a bunch of unused ones like Kanji or Reset or whatever, but F13-F24 was just cleaner and more convenient and more universally supported (almost, **cough*Razer*cough** 😒).
4:04 C# 🤦
4:45 AHK supports several different input methods, all of which are easy to use.
4:53 Flashback to the old days of windows-programming with Visual Studio.
6:27 Joe using hard-mode. 😂 AHK ftw.
I think if you look hard enough you can find a decent 122-key 3270-style keyboard that is fully PC-compatible.
Not cheap though, but useful if you still use tn3270.
Actually the new copilot pcs that have the copilot key, The copilot key corresponds to the F24 key
Useful? Unsure. Cool? Most definitely! Something to play around with on a lazy Sunday afternoon.
The anti-first comment.
As well as the second.
God bless you!
wha
Lol
@@_SJAnd the third 🎉
The program I didn’t know I needed. Ty for making this.
I use winforms because I am a relatively old fart (40-something) and I started Windows programming in VB3 for Windows 3.1. Now I do niche data-wrangling coding in C# where I am the only person who is going to use my applications, Winforms is still quick and easy, so I make little Winforms dialogs. I don't need to make "cross platform" or "beautifully modern" interfaces, so I don't.
You are in my Bing!! Yay!!!
Joe, once again you have helped me to better wrangle Windows. Always appreciated, and keep up the great work here that you are doing.
DUDE!!! I NEEDED THIS!!! THANK YOUUUuuuuuuu
It's more interesting for me, how you did those giant check boxes? Like really, it's .net application? It possible to scale checkboxes?
Thanks, I was looking for a tool for exactly this, beacause I have function keys on my keyboard but to bind them to a key I have to press the key.
How do you get the buttons to be held down for a certain amount of time?
key down and key up events I think
1:18
"We did it not because it was easy,
But because we thought it would be easy."
Bind SCROLL LOCK to something cool, like the calculator :D
I like hearing about Thio's programming projects
That's very cool! If I still had a keyboard with macro keys, I would rely on it right away 😁
Thanks it would help a lot