More fun, and a gamepad, with Karabiner-Elements

After the initial success of using Karabiner-Elements with a keyboard I had laying around, I decided to move a step further by adding a gamepad to the mix and programming it with hotkeys. And it worked with great success.

The gamepad of choice, or rather, the gamepad on sale, is the BlueFinger Gaming Keyboard, which is in essence the left side of a regular keyboard.

Now, it's no Logitech or Razer, but I'm not going to use it that way. It's standard plastic all round, but it's got a decent size, feels sturdy enough and shows up as a generic keyboard. It was also $30, so many boxes checked there.

Next, with the help of a very cool website-Karabiner Complex Modification, I was able to create a list of my own custom rules, which are loaded under the Complex Rules tab.

Instead of pressing CAPS LOCK and then another key, I wanted one-click action. So, if I press A, I get Control-Option-Command-Shift-A.

Using the site, you can create a file that looks similar to the following, which shows the use of the modifier keys:

{
  "title": "Keyboard Maestro Demo",
  "rules": [
    {
      "description": "Keyboard Maestro A",
      "manipulators": [
        {
          "type": "basic",
          "from": {
            "key_code": "a"
          },
          "to_if_alone": [
            {
              "repeat": true,
              "modifiers": [
                "left_gui",
                "left_control",
                "left_alt",
                "left_shift"
              ]
            }
          ]
        }
      ]
    }
  ]
}

The file can then be "installed" from the web based version of loaded in:

~/.config/karabiner/assets/complex_modifications

I have this set up for 15 keys on the gamepad. Using the site tool, you can set up key combinations that work for you. You could also set up Alt-A to mean a completely different key combination that Ctrl-A, when used on that keyboard.

There is more experimentation to come, but at each stage there has been success. It's possible to use a full-sized keyboard if you have space, or get a gamepad and program it with your hotkeys.

Karabiner Complex Modification

Other articles of interest:

Creating 3rd party file formats from inside DevonThink

With DevonThink as the hub of my document management, I want to create files from inside the app itself. This works great for text related documents .txt, .rtf, .md, but what about .docx, .xlsx, .pptx and the like. Or even a document format to be named later?

The answer is very simple and I’m surprised and perhaps a little disappointed it took me this long to get around to sorting it out.

The process involves making a document of the type you plan to use in the future then making that available to DevonThink as a template.

First, within DevonThink, select Data->New From Template->Open Templates Folder. This will open the Templates.noindex folder.

Next, make a blank document from each application you want to work with in the future. For example, open Writer from within LibreOffice and save a blank document as .docx, then another for .odt. Do the same for Calc as .xlsx and .ods, Presentation and all your other document types. I have this setup for Taskpaper, Scapple, and Mellel as well.

When DevonThink makes a new document, it will copy whatever is in your file to the new document. So, it is indeed a template. If you need to add header text, set up formatting, set a default font, or add instructions, now is the time to do it.

Gather up all your new files and drag them to the location opened when you selected Open Templates Folder.

All done.

Within DevonThink, right click in a location and select, New From Template Or from the menu select Data->New From Template. The documents you just created will be listed. When selected, a new document of that type will be created with the Kind attribute set to that document type.

You can now double-click the document to have it open in the parent application. Or right click, Open With and select the parent application.

Depending on how many file types you want to work with, this should only take a few minutes.

Other articles of interest:

Speculation: Could the new Apple Silicon bring back the Mac Pro 2013?

This is pure speculation. A total hypothesis. A complete, "What if". But, what if the new Apple Silicon could bring back the Mac Pro 2013, or at least the form factor, as a bridge between the Mac mini and the Mac Pro 2019?

Currently, there is no "Mac." There is an iMac, iMac Pro, Mac mini, and Mac Pro, but not a desktop machine called "Mac." Something that is more powerful than the Mac mini, but not the set your hair on fire specs of the Mac Pro.

For example, a desktop machine that allows both memory and video card upgrades. The Mac Pro form factor would a good choice for it's design and use of space.

So, what if Apple made some tweaks, revamped the video cards, offered a higher ceiling for the ram, upped the internal SSD and re-offered the 2013 model as a "Mac"?

It could easily be an 8-12 core machine, like the final high end 2013 model was. It could support 64-256GB so as to go beyond the mini, but not upset the Pro. It would support the same dual video cards for higher video performance running multiple screens. Cards that could be upgraded, so it has some room to grow, but again, not the same cards as the Pro. And finally, 1TB-4TB internal SSD for storage with enough ports to hook up external drives.

The base Mac Pro doesn't really have enough power to justify the cost. Instead, you are buying all the technology and expandability of the motherboard and ram. Not to mention the massive powerfully, processor upgrades, ports and other upgrade options.

A cylinder Mac would allow ram and video upgrades, the processor would stay static, except through some incremental upgrades.

There is a lot of room to work with from the (2500 price point of kitted out Mac mini that can't be upgraded and the )6000 of a Mac Pro, that already needs to be upgraded.

I would love to buy a machine like that. I want to get a new machine, but I really don't want a Mac mini, yet I don't really need a Mac Pro. The size of the 2013 Mac Pro would be a great form factor to work with. It's compact but can still deliver plenty of power, especially with the refinements that have been made over the years.

I'm really excited over the possibilities of Apple Silicon, and I'd really like to see a "Mac" come onto the market.

Other articles of interest:

Creating and Restoring Syntax Highlighting in Katalon Studio

While Katalon Studio comes with some formatting and syntax highlighting, it’s very beneficial to set up your own. The time investment will be worth it later when you can focus in on your code based on it’s color without having to read each and every line.

Katalon has two areas where you can set formatting options. Both are under Preferences.

The first is under General > Appearance > Colors and Fonts.

This handles the main font style, color and size of the editor window.

The other, related to syntax highlighting is located under: ​Java > Editor > Syntax Coloring

You will then have Java, JavaDocs, and Comments.

Java contains most of the options you will be interested in and you will see an example of your syntax highlighting in the Preview window.

Once this is set, it’s awesome, however, when you upgrade Katalon, those formatting options will be overwritten. This is not awesome.

But, it’s easily handled by making a copy of the files and restoring them after the upgrade.

The files for syntax highlighting can be found in:

/Applications/Katalon Studio.app/Contents/MacOS/config/.metadata/.plugins/org.eclipse.core.runtime/.settings

In there, you will find files by the name of:

com.kms.katalon.application.prefs
org.eclipse.jdt.ui.prefs
org.eclipse.ui.workbench.prefs
Etc.

I copy the entire directory and store it on my iCloud Drive. After upgrading, I copy the files back to the same location, overwriting what’s already there.

Keep in mind, you will need to start Katalon Studio at least once after the upgrade to create the correct folder structure and write the new files. I have noticed they don’t exists if you go straight in after upgrading.

You should now be able to set up your syntax highlighting and keep it between upgrades.

ks-syntax-coloring

Other articles of interest:

Setting up a secondary keyboard for macros

After setting up several keyboard shortcuts within Alfred and Keyboard Maestro, it became clear that I was putting together some bizarre key combinations and odd hand gestures to make sure I wasn’t interfering with other applications. Then it occurred to me, don’t video and audio editors have dedicated keyboards for shortcuts? Can the same thing be done for keyboard macros?

The answer is, yes it can. And rather easily too, using a standard keyboard and Karabiner Elements.

You don’t have to buy a specialty keyboard or programmable keypad or anything else. You can use any USB keyboard you have lying around. I have dozens from all the Windows machines I’ve ordered throughout the years.

This also works for a Bluetooth keyboard, so it doesn’t have to be wired.

The easiest way to configure this is install Karabiner Elements and go to the devices tab. Turn off all the other keyboard except the secondary one you plan to use for macros.

Then select the Complex Modifications tab, and enable the option for Caps Lock key to act like “command+control+option+shift”.

And that’s it. If you click into Keyboard Maestro and for the Hotkey Trigger, hold Caps Lock and click another key, it will be seen as Command Control Option Shift + Letter.

Because we disabled the other keyboard in Karabiner, this only works for the secondary keyboard. Pressing Caps Lock and another key on your main keyboard behaves the way you could expect. It toggles the uppercase of the letter.

This works for the standard letter keys, numbers, the number pad and the Home, End, PgUp, PgDn, etc.

You should now have 50-80 macros keys to program depending on keyboard.

karabiner-elements-deviceskarabiner-elements-caps-lockkeyboard-maestro-test

Other articles of interest:

Recent Comments

  • Integrating DevonAgent Pro with Alfred (1)
    • J. Garr: Beautiful, sweet, and simple. I love it; thanks for posting this solution.
  • Round and Round with the For..Next in Katalon Studio (1)
    • Sweet Ophaline Labador: Hello can you help me how to loop this scenario. Checking the elements is just the same. I want to check that the following function is available in www.siacargo.com: Track Shipment – clicking on this can...
  • How To Disable the Quicken Registration Prompt (30)
    • David: A BIG Thank you! I regularly reinstall Windows OS’s using different hardware configs. In short, Quicken 2011 (it’s March of 2020 as I write this) has been a program I’ve been very happy with and continue to use....
    • Karen L: Today I rang Reckon Australia again, got a different guy and he talked me through the process of getting me a new product key to enter since I already had the licence and it had been extended. Reckon have only extended it by 1...
    • Karen L: I have Australian Quicken 2008 on Windows 8.1. It keeps asking me to renew my licence which Reckon did for me however the activation won’t work. I tried this to disable the registration prompt however it did not stop the...
  • Parsing Strings in Katalon – Split, Substring and Readlines (6)
    • Don Pedro: String tempText=”Date Month January. Revenue $1,355,721.00″ println(tempText.split(“ \$”)[1]) You need to escape the $ with \$ The [1] on the split captures characters on the right of the split [0]...
    • Prasad: Hi, I need to get the substring from the below string ‘Date Month January. Revenue $1,355,721.00’ I want to extract text after $ value. Please help Thank you
  • Working with Dates and Date Formatting in Katalon Studio (15)
    • Sangeethaa: How to get previous day’s date(Yesterday’s date)? Actually I was using today.previous() before,it was working fine till today morning.Now its not retrieving right date. Can anyone please guide me on this.
    • Don Pedro: That could be a little tricky. First, is the text/format always going to be the same? You will need to do some parsing. Separate the first but of text at 2019. After that, split the text again to get rid of Central Standard...
    • Don Pedro: It should be of the same Date type as today. You could then do some calendar trickery with Calendar /*Calendar c = Calendar.getInstance(); //c.set(Calendar.MONTH, 1) //Set the month, 0=January, 11=December println...
    • josh: I’m testing a page with a string like “Updated November 21, 2019 16:25:32 PM Central Standard Time.” How might I capture the date and time and compare it to current time to verify that the update time was within...
    • zakir hussain: today = new Date() lastWeek = (today – 1.week) can u please help me in understanding what is the return type of lastweek? and I wanted to set nextyear date how can i do it
  • Output status messages and test information by writing to the Log File Viewer in Katalon Studio (6)
    • Saranya: Good One. Could you plz share link to access all your katalon related blogs. ThankQ
    • Rodrigo Calabretta: I’m using the KeywordUtil.markFailed or KeywordUtil.markError and my test stops is being shown as Error and If I use in the @afterTestCase the testCaseContext.getTestCaseSta tus() to show the status test case...
  • Setting up Environment Profiles in Katalon Studio (2)
    • Don Pedro: Not quite sure I understand. The term “Execution Profile” is normally used now, but they are still GlobalVariables and are created in the same way for version 7 as previous. You make a new execution profile, then...