NohBoard

Free NohBoard v1.3.0

HAJohnny

New Member
NohBoard scroll and middle mouse button workaround

Hiya, for those of you who have been wanting scroll or middle mouse button functionality, I've made a little workaround using autohotkey. It remaps scroll up, scroll down, and middle mouse button to themselves, along with a standard keyboard key. For my purposes, I'm using number pad 7 for scroll up, number pad 8 for scroll down, and number pad 9 for middle mouse button. These can be mapped in NohBoard with a different name, I use ScU, ScD, and MMB. The keycodes I use for these are 103, 104, and 105 respectively.

Note that in order to make this work, I had to add a delay in the emulated keystroke for the scrollwheel, as without a delay NohBoard does not display the keystroke. The initial scroll itself isn't delayed, but there will be 25 milliseconds between allowed scroll inputs. This makes browser scrolling unusable but the delay is not very noticeable for TF2 weapon switching. 25 milliseconds seems to be reasonable stable for multiple rolls, any less and NohBoard does not display the scrolls well. This delay might hinder someone like Gocnak who likely wants no delay between scroll commands for his jump bind.

Middle Mouse Button seems to work fine.

Here's the autohotkey script. I'm new to the program so there's probably a way to remove the delay between scrolls, retaining full wheel functionality, but I am not sure how to do that yet.
To use this you'll have to install the AutoHotKey and create the script. Run it before you tab into your game and you're good to go.

Code:
#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn  ; Enable warnings to assist with detecting common errors.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.

WheelUp::
Send {WheelUp}
Send {Numpad7 down}
Sleep, 25
Send {Numpad7 up}
return

WheelDown::
Send {WheelDown}
Send {Numpad8 down}
Sleep, 25
Send {Numpad8 up}
return

MButton::
Send {MButton}
Send {Numpad9 down}
KeyWait MButton
Send {Numpad9 up}
return

I modified the FPS Layout to include the MMB and scroll buttons. Again, Numpad 7 8 and 9 are used to represent the mouse functions.



Code:
KBVersion 3
width 431
height 267
nKeysDefined 27
category Games
key 9 9 53 67 43 Tab Tab 0 1
key 32 187 185 131 43 %0% %0% 0 0
key 49 53 9 43 43 1 ! 0 0
key 50 97 9 43 43 2 @ 0 0
key 51 141 9 43 43 3 # 0 0
key 52 185 9 43 43 4 $ 0 0
key 53 229 9 43 43 5 % 0 0
key 65 89 97 43 43 a A 1 0
key 67 198 141 43 43 c C 1 0
key 68 177 97 43 43 d D 1 0
key 69 165 53 43 43 e E 1 0
key 70 221 97 43 43 f F 1 0
key 81 77 53 43 43 q Q 1 0
key 82 209 53 43 43 r R 1 0
key 83 133 97 43 43 s S 1 0
key 86 242 141 43 43 v V 1 0
key 87 121 53 43 43 w W 1 0
key 88 154 141 43 43 x X 1 0
key 90 110 141 43 43 z Z 1 0
key 103 335 53 43 43 ScU ScU 0 1
key 104 335 141 43 43 ScD ScD 0 1
key 105 335 97 43 43 MMB MMB 0 1
key 160 9 141 100 43 %shift% %shift% 0 0
key 162 9 185 65 43 Ctrl Ctrl 0 1
key 164 130 185 56 43 Alt Alt 0 1
key 1026 291 97 43 43 LMB LMB 1 1
key 1027 379 97 43 43 RMB RMB 1 1

I've made a different kind of fps style layout for my own purposes. Maybe someone else might find this useful.


Code:
KBVersion 3
width 475
height 179
nKeysDefined 21
category Games
key 9 9 31 23 43 Tab Tab 0 1
key 32 265 78 69 30 Jump Jump 0 1
key 65 45 75 43 43 a A 1 0
key 67 265 9 22 22 c C 1 0
key 68 133 75 43 43 d D 1 0
key 69 121 31 43 43 e E 1 0
key 70 177 75 43 43 f F 1 0
key 71 221 75 43 43 g G 1 0
key 81 33 31 43 43 q Q 1 0
key 82 165 31 43 43 r R 1 0
key 83 89 75 43 43 s S 1 0
key 87 77 31 43 43 w W 1 0
key 88 265 32 22 22 x X 1 0
key 90 265 55 22 22 z Z 1 0
key 103 379 9 43 43 ScU ScU 0 1
key 104 379 97 43 43 ScD ScD 0 1
key 105 379 53 43 43 MMB MMB 0 1
key 162 265 109 69 31 Crouch Crouch 0 1
key 1026 335 53 43 43 LMB LMB 1 1
key 1027 423 53 43 43 RMB RMB 1 1
key 1028 288 20 45 0 0 0 0 1
 

ThoNohT

Developer
Re: [TOOL] NohBoard - a keyboard visualizer - v0.12b

Interesting script. I have had a small look at it recently, tried to make it output some other unused keys, but I either failed to do that, or NohBoard simply also refused to pick those up.

This also inspired me to look at http://oblita.com/interception.html again in more detail. But it doesn't support Windows 8, which is what I'm on, and which is also a requirement for me. I could not try it out, and I also don't know how it works, I know developing for it requires a driver to be installed, because it essentially is a keyboard driver. If that's also the case for any person using NohBoard, then that would not be acceptable anyway. So that plan is discarded for now.

Now here's a thing. AHK does capture all those keys, so I'm quite sure it's possible, I just wonder how they do it. If anyone has any pointers, I could try and have a look at that.
 
Re: [TOOL] NohBoard - a keyboard visualizer - v0.12b

For some reason when I try to start this program via a command line/batch file it says No Keyboard could be found.

I use a batch file to open some of my games and apps that I use along with them. Any ideas?
If I open the program manually, no issues.
 

ThoNohT

Developer
Re: [TOOL] NohBoard - a keyboard visualizer - v0.12b

I might be able to fix this in the code, but I have a workaround for you if you're interested.

Basically, what you are doing in your bach file is:
start parth/to/NohBoard/NohBoard.exe

If you were to change this to:
cd path/to/NohBoard
start NohBoard.exe

It would work. You can always cd to any other path if you want to afterwards.

Edit: I actually found the problem, it's some pretty stupid mistake on my side that made it mess up the current directory if called from another directory. I know how to fix it, and it actually should fix the settings window while debugging, which is also nice (for me). I'll probably make a new release somewhere this week, after I also included the newly posted keyboard files.

Edit2: I fixed it, the code is now on GitHub, but I want to take a look at detecting other keys before I make a new release. I hope the workaround is enough for you at this moment.

Edit3: I am definitely getting a response from the middle mouse button, the vertical and horizontal scroll and the side mouse buttons. That's all the buttons I have on my mouse, so all I can test. I'll be spending the free time I have this week on figuring that out.

Edit4: Middle mouse, vertical and horizontal scroll, side buttons are all working. I just need to make something to cleanly handle releasing the scroll wheel, and come up with an example kb file to demonstrate this, and then I'll be able to make a release with the added buttons and the recently provided kb files.
 
Re: [TOOL] NohBoard - a keyboard visualizer - v0.12b

Glad I was able to maybe help out then. Thanks for the alt fix. I'll look forward to your updates!
 

ThoNohT

Developer
v0.13b released. This contains the fix for starting NohBoard from a different folder, and has the extra mouse buttons as described in my previous post added. The two kb files provided by HAJohnny are also added.

To check out the extra mouse buttons, the mouseAll.kb layout under the Mouse category showcases all possible mouse buttons.
 

HAJohnny

New Member
Thanks for your work ThoNohT, makes my life easier. I'm very glad I won't have to see 8888888888 when I forget to turn off the autohotkey script. Mouse4 and 5 as well as scroll left and right seem to work well.

One interesting thing I've found is that in the FPS games that I've played (Team Fortress 2 and other Valve games) the mouse tracker behaves a bit strangely because of how the games trap the mouse in the window (Even in full screen). The game launches the mouse pointer back to the center of the game window after any movement, which is recognized by nohboard as a mouse movement. As a result, the mouse tracker first tracks the initial movement, then shows the compensation movement after. So you get a weird flicky mouse movement appearance in the tracker, back and forth.

I doubt there's a way to fix this without changing how nohboard captures the mouse movement though. It really might not need to be fixed anyhow seeing it would be for an fps, where you can clearly see where the mouse is going.
 

ThoNohT

Developer
Well, this should be usable with FPS games too for all I care. I also doubt if there is anything I can do about it, but for what it's worth, I'll have a look at it soon anyway.
 

hype

New Member
Thanks ThoNohT for NohBoard, great tool.

I too have had issues with the window capture of NohBoard showing grey in capture (or preview). I do sometimes see the title bar shows and I know capture is working as the mouse pointer will be captured when I have that enabled - the main body of the NohBoard application will show grey however.

Reading previous posts regarding this issue it is advised to plug in a second monitor, moving OBS, NohBoard etc to that monitor. As I already had a second monitor attached I removed it and hey presto, NohBoard shows in OBS. Thank you for the tip where to look.

I hope this might give someone a place to look for a fix, but as there are such wide ranging variations of software and hardware it might be difficult to pinpoint. For instance I'm on Windows 8.1 on a laptop with Nvidia Optimus - which usually has me digging around for workarounds.

Thanks again for some great tools.
 

ThoNohT

Developer
Probably by making it small and the just upscaling the window. There is no line width in the settings.
 

ball2hi

Member
I like to use transparency for my NohBoard, by making everything the same color until pressed. That way there isn't a giant ugly keyboard on my screen, just the keys that I pressed. However, with the new "mouse" option, this makes it impossible to see on my transparency because it uses the same color as "Loose key color". Would it be possible to make mouse movement (When detected) change to "Pressed key color" or even have an entirely different option for mouse movement?

Great app btw, been using it for over a year. If only I got viewers lol.
 

ThoNohT

Developer
Over a year, really? I don't think it's a year old yet, lol. But getting there, slowly. It's been around longer than I expected actually, that's pretty neat, 1 year on 7 May.

Anyway, to get to your question, it would definitely be possible, I'd just have to make some changes. I'm currently still somewhat low on time. But in like two or three weeks, I hope to have finally moved and have some free time on my hands again. I'll look into making the colors for the mouse speed thingy configurable separately then.
 

LevelPulse

New Member
Just started using this so viewers could be more intrigued in how many keys i press at one time when playing a certain game.

Great tool, enjoy it a lot.
 

Raive

New Member
Nicely done!

Was able to add mouse to full KB layout with relative ease.
Was able to render transparent except live keypresses using chroma selection.

Feature requests:
1) Ability to define fonts individually by key in .kb file as I'd like to use the following from "Wingdings"
Keyboard:
0xD5 Backspace
0xFF Windows
0x33 Menu
Mouse:
0xDB Scroll Left
0xDC Scroll Right
0xDD Scroll Up
0xDE Scroll Down

2) Alternate corners for keys.

Thanks for all the work you've done thus far, and any further work you implement in the future!
 

ThoNohT

Developer
ThoNohT updated NohBoard with a new update entry:

Scroll counter added.

YaLTeR has been kind enough to share his code for the scroll counter with me. This release is purely the addition of this code in the official NohBoard.
To enable the scroll counter, edit NohBoard.config and edit the following lines:

scrollCounter 1 <- This enables the counter
scrollHold 1000 <- Holding a bit longer is sensible for the counter so it doesnt instantly reset.

Read the rest of this update entry...
 

ThoNohT

Developer
I'm sorry I didn't see this reply earlier. I'll answer right now.

Nicely done!

Was able to add mouse to full KB layout with relative ease.
Was able to render transparent except live keypresses using chroma selection.

Feature requests:
1) Ability to define fonts individually by key in .kb file as I'd like to use the following from "Wingdings"
Keyboard:
0xD5 Backspace
0xFF Windows
0x33 Menu
Mouse:
0xDB Scroll Left
0xDC Scroll Right
0xDD Scroll Up
0xDE Scroll Down

2) Alternate corners for keys.

Thanks for all the work you've done thus far, and any further work you implement in the future!

1) Well, might be possible, of course. For now, couldn't you use the large font for the keys you want in wingdings, and the small font for the keys you want displayed normally? You can set different fonts for those two. If I want to enable more cusomization per key, I'll have to improve the settings and keyboard file management, as it is very basic at the moment. A keyboard file editor would be awesome to make, too.

2) Do you mean things like rounding the corners, etc? I would really like that. At the moment, I'm really just rendering simple squares. More advanced graphics are something I would really like, but that'll most likely not happen until I learn more about working with directx.

In addition to that, I'm also still going to look at making colors for the mouse speed thing configurable separately. I might want to allow custom backgrounds, I want to be able to make any shape key, so you don't have to hack an oddly shaped enter key togetber by using two squares.
 

Mould

New Member
Having some issues with this.
When I'm using it, I have it set to use window capture. When I have it not in front of the game, it will stop recording the board itself and simply record the game in front of it again. So it looks like that below:

Thanks for this tool. It looks really useful.

This was fixed by turning on aero - sorry for spam
 

Attachments

  • Capture.PNG
    Capture.PNG
    255.1 KB · Views: 106
Last edited:

Jack0r

The Helping Squad
@Mould: Activating Aero in Windows fixes this. (The transparency effect off the taskbar and window border, make sure OBS is not set to disable it on start)
 
Top