touchcursor icon indicating copy to clipboard operation
touchcursor copied to clipboard

Multiple activate keys

Open Jaden- opened this issue 7 years ago • 22 comments

Hi,

First of all, I got to say I love this program. I've been using it for about 6 years and it greatly improves time and efficiency.

There's one thing though that would improve this program greatly, and I would imagen it's a relatively easy fix - multiple activate keys.

The reason is that I have all the default keybindings (J, K, L, I, U, O etc.) mirrored on the left side of the keyboard (S, D, F, E, W, R), but I would like to easily and practially activate these keybindings on both sides. Why? Imagen the following use cases:

  • You're reading a long wikipedia article and you would like to use 'Page up' and 'Page down' without moving your hand away from the mouse. You therefore use the left hand to use these keys.
  • You'd like to change parts of the URL. You press Alt + D to get to the URL-field in the browser, but you have no practical way of navigating parts of the url with the left hand, because the arrow keys are on the other side of the keyboard.
  • And many more.

One solution would be using the space bar, however I don't feel this is ergonomic solution, I much more prefer to use the the button on the right side of 'L' (right arrow) (':' on English keyboards, 'ø' on Norwegian keyboards). The issue is that I can't add another activate key. In this case, the second activate key would be on the left side of 'S' (left arrow), the key 'A'. Please see the following image for my suggestion of a solution: touchcursor - enhancement Only two dropdowns are necessary, as I don't see the purpose of more than two activate keys.

I hope you will implement this suggestion. Thank you.

Jaden- avatar Oct 30 '17 09:10 Jaden-

Hi Jaden. Glad you find TouchCursor useful. Right now other projects are consuming all my time, but I'd be open to a pull request for this feature.

martin-stone avatar Nov 03 '17 09:11 martin-stone

Hi,

I've downloaded wxWidgets 2.8, boost 1.39, and referenced both of them in touchcursor.vsprops. I downloaded Windows 8 SDK (Although I use Windows 10, but the project references seemed to need Windows 8 SDK). When I build in Visual Studio I get the following error: LNK1181 cannot open input file 'C:\Projects\touchcursor\bin\Debug\touchcursordll.lib' touchcursor C:\Projects\touchcursor\touchcursor\LINK 1

How do I resolve this error?

Jaden- avatar Nov 06 '17 12:11 Jaden-

That's an import library that should be created by compiling the touchcursordll project. The solution dependencies should cause that to be built first, but maybe that's not happening.

Are there any other errors. Can you paste all of the compiler output?

martin-stone avatar Nov 06 '17 17:11 martin-stone

• Error: LNK1181 cannot open input file 'C:\Projects\touchcursor\bin\Debug\touchcursordll.lib' touchcursor C:\Projects\touchcursor\touchcursor\LINK 1 • Error: LNK1104 cannot open file 'libboost_wserialization-vc100-mt-gd-1_39.lib' dll C:\Projects\touchcursor\touchcursordll\LINK 1 • Warning: MSB8012 TargetPath(C:\Projects\touchcursor\touchcursordll..\bin\Debug\dll.dll) does not match the Linker's OutputFile property value (C:\Projects\touchcursor\bin\Debug\touchcursor.dll). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile). dll C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Microsoft.CppBuild.targets 1198 • Warning: MSB8012 TargetName(dll) does not match the Linker's OutputFile property value (touchcursor). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile). dll C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Microsoft.CppBuild.targets 1200

In touchcursor.vsprops: (UserMacro Name="WXWIDGETS_DIR" Value="C:\Projects\external\wxMSW-2.8.0" /> (UserMacro Name="BOOST_DIR" Value="C:\Projects\external\boost_1_39_0" />

In touchcursor.props: (PropertyGroup Label="UserMacros"> (WXWIDGETS_DIR>C:\Projects\external\wxMSW-2.8.0</WXWIDGETS_DIR> (BOOST_DIR>C:\Projects\external\boost_1_39_0</BOOST_DIR> (/PropertyGroup>

'<' replaced with '(' just here in the comment as the line disappears otherwise.

Project dependencies (default): image

When attempting to build the 'dll'-project alone the same error & warnings occur except for the dll error (as the dll hasn't been created because of the other errors).

Jaden- avatar Nov 07 '17 08:11 Jaden-

Did you Build the boost libraries? It looks like the build can't find the Boost lib.

martin-stone avatar Nov 10 '17 11:11 martin-stone

There's a problem with the path to these libraries I think. If i input an incorrect path to touchcursor.vsprops I get the same error.

Looking at the build output of tcconfig:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.10.25017\bin\HostX86\x86\CL.exe /c /I..\external\boost_1_39_0 /Zi /nologo /W3 /WX- /diagnostics:classic /Od /Oy- /D WIN32 /D _DEBUG /D _LIB /D _SCL_SECURE_NO_WARNINGS /D _CRT_SECURE_NO_WARNINGS /D _VC80_UPGRADE=0x0710 /D _UNICODE /D UNICODE /Gm /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /GR /Fo"Debug\" /Fd"Debug\tclib.pdb" /Gd /TP /wd4800 /analyze- /errorReport:prompt launch.cpp options.cpp versionupdate.cpp win32funcs.cpp 1>win32funcs.cpp 1>versionupdate.cpp 1>options.cpp 1>options.cpp(23): fatal error C1083: Cannot open include file: 'boost/archive/text_woarchive.hpp': No such file or directory

With the relative path at touchcursor.vsprops (UserMacro Name="BOOST_DIR" Value="..\external\boost_1_39_0" /> My project is at C:\Projects\touchcursor. Boost is at: C:\Projects\external\boost_1_39_0

Do I need to do some actions for the touchcursor.vsprops changes to activate? I can't see anything about this is in the read-me file though.

Jaden- avatar Nov 10 '17 11:11 Jaden-

Which version of Visual Studio are you using? (I'll try to build from scratch with the same.) Last time I built it was with VS2010, I think.

martin-stone avatar Nov 11 '17 12:11 martin-stone

I don't have the laptop I used at my current location, but I think it's Visual Studio Community Version 2017.

Jaden- avatar Nov 11 '17 12:11 Jaden-

Any updates?

Jaden- avatar Nov 17 '17 10:11 Jaden-

I haven't had a chance to look into this properly, I'm afraid.

martin-stone avatar Nov 17 '17 17:11 martin-stone

it does not work for VS 2017 and VS Code

ehsaanwelcome avatar Dec 07 '17 13:12 ehsaanwelcome

It does work, if touch cursor is running in administrator mode

ehsaanwelcome avatar Dec 08 '17 10:12 ehsaanwelcome

@martin-stone I emailed you about this enhancement many years ago, it seems you're busy but I would just like to add, TouchCursor by far beats all other countless solutions from any other alternatives I have tried that make up for this lacking feature. The key delay on your program is impeccable, unlike any other that exists, which is why I have continued using this over others. I wish there was some way of making this happen...

mokanfar avatar Feb 11 '18 20:02 mokanfar

Hi @mokanfar. Unfortunately this isn't a trivial change, partly due to how that delay is eliminated. I'm not opposed to incorporating it, but it's not high priority for me (as I'm happy with TouchCursor as it is :-) ). To make this happen, somebody else will need to take it on.

martin-stone avatar Feb 13 '18 12:02 martin-stone

@martin-stone I hope this is OK to ask, but would $150 be a good incentive for you to implement this? I can paypal half in front and half afterwards. I pay all fees.

Jaden- avatar Apr 23 '18 08:04 Jaden-

Thanks for the offer. Unfortunately it doesn't conjure time out of nowhere :-) I do intend to sort out the build at some point anyway, so that at the very least other people could more easily contribute. But I can't make any promises about the timescale, with or without a financial incentive.

martin-stone avatar Apr 28 '18 11:04 martin-stone

Np! I'm giving a $150 bounty to anyone who implements this change Payment will be done through paypal.

  1. Clone or download the project at: https://github.com/martin-stone/touchcursor
  2. Look at the README.txt file at the same URL.
  3. Look at comments here to configure up the project. The user ehsaanwelcome mentioned earlier that it has to be run in administrator mode.
  4. Develop the requested change.
  5. Create a pull request.
  6. Wait for the pull request to be approved and inform me / the bounty givers when the new version is up at https://martin-stone.github.io/touchcursor/download.html.

Even if this comment is months or even years old in the future, the bounty is still up for grabs. I get an email for every comment written here, so I should see it fairly quickly. If the comment is like 6 months old and you're not sure if I still see comments here, just write a comment here and wait for me to reply before developing the change.

Are you also interested in getting this change implemented? Write a comment of what amount you want to add to the bounty! At some point it's bound to be implemented by someone.

Jaden- avatar May 02 '18 10:05 Jaden-

Increasing bounty to $300 👍

Jaden- avatar Aug 24 '18 12:08 Jaden-

Have you considered posting the bounty somewhere like Bountysource?

martin-stone avatar Aug 24 '18 16:08 martin-stone

I am interested in taking a look at this so I can understand the touch cursor source a little better. Not promising anything yet!

donniebreve avatar Oct 29 '18 18:10 donniebreve

@martin-stone Thank you for the suggestion, but then I have to 'lock' away the $300. I also think there's an inactivity fee for unclaimed money over 90 days.

Jaden- avatar Nov 30 '18 02:11 Jaden-

Just writing a comment to show that I'm still here and that the bounty is still alive :-)

Jaden- avatar Jun 02 '19 17:06 Jaden-