Communities

Writing
Writing
Codidact Meta
Codidact Meta
The Great Outdoors
The Great Outdoors
Photography & Video
Photography & Video
Scientific Speculation
Scientific Speculation
Cooking
Cooking
Electrical Engineering
Electrical Engineering
Judaism
Judaism
Languages & Linguistics
Languages & Linguistics
Software Development
Software Development
Mathematics
Mathematics
Christianity
Christianity
Code Golf
Code Golf
Music
Music
Physics
Physics
Linux Systems
Linux Systems
Power Users
Power Users
Tabletop RPGs
Tabletop RPGs
Community Proposals
Community Proposals
tag:snake search within a tag
answers:0 unanswered questions
user:xxxx search by author id
score:0.5 posts with 0.5+ score
"snake oil" exact phrase
votes:4 posts with 4+ votes
created:<1w created < 1 week ago
post_type:xxxx type of post
Search help
Notifications
Mark all as read See all your notifications »
Q&A

Welcome to the Power Users community on Codidact!

Power Users is a Q&A site for questions about the usage of computer software and hardware. We are still a small site and would like to grow, so please consider joining our community. We are looking forward to your questions and answers; they are the building blocks of a repository of knowledge we are building together.

Comments on Remapping backspace with Karabiner Elements

Parent

Remapping backspace with Karabiner Elements

+1
−0

I'm using Karabiner-Elements to remap some keys.

I would like remap

  • backspace to forward delete

  • option + backspace to backward delete

To do this I tried to write the following rule and place the .json file in /Users/<username>/.config/karabiner/assets/complex_modifications, but the rule does not even show up in rule selection window.

rule selection window

{
  "title": "Swap backspace to forward delete",
  "rules": [
    {
      "description": "Backspace to Forward Delete",
      "manipulators": [
        {
          "type": "basic",
          "from": {
            "key_code": "delete_or_backspace",
          },
          "to": [
            {
              "key_code": "delete_forward"
            }
          ]
        }
      ]
    },
    {
      "description": "Option + Backspace to Backspace",
      "manipulators": [
        {
          "type": "basic",
          "from": {
            "key_code": "delete_or_backspace",
            "modifiers": {
              "mandatory":[
                "option"
              ]
            }            
          },
          "to": [
            {
              "key_code": "delete_backwards"
            }
          ]
        }
      ]
    }
  ]
}

Is there any syntax error in my rule or why doesn't it show up in the rule window?

History
Why does this post require attention from curators or moderators?
You might want to add some details to your flag.
Why should this post be closed?

0 comment threads

Post
+2
−0

It does look like you have a syntax error in the JSON data.

Specifically, you have a comma after the last element of a list on line 11:

"from": {
  "key_code": "delete_or_backspace", <---- here
},
"to": [

At least jq (which is a very useful tool for doing all kinds of parsing of JSON data) calls that out as an error; when fed what's in your question as input, the output of jq . is simply:

parse error: Expected another key-value pair at line 11, column 11

(In the jq query syntax, a bare . represents the root element of the input; also, portions of the input matching the query are output. So jq . essentially says "print everything from the input".)

I can't try it in the software you're using, but removing the extraneous , at the end of line 11 makes jq accept the JSON as valid.

History
Why does this post require attention from curators or moderators?
You might want to add some details to your flag.

1 comment thread

That was the culprit! Thanks a lot for finding this nasty little comma! (And thanks for the link to ... (5 comments)
That was the culprit! Thanks a lot for finding this nasty little comma! (And thanks for the link to ...
samcarter‭ wrote over 3 years ago

That was the culprit! Thanks a lot for finding this nasty little comma! (And thanks for the link to jq - looks like a really useful tool!)

elgonzo‭ wrote over 3 years ago · edited over 3 years ago

samcarter‭, there are also a number of online JSON validators out there that help in checking the syntactic correctness of some json text... ;-) (There is even one integrated in duckduckgo; you get it by searching for something like "json validator" in duckduckgo.)

samcarter‭ wrote over 3 years ago · edited over 3 years ago

@叶 问‭ Oh, that's really good to know! Thanks for these tips!

samcarter‭ wrote over 3 years ago

(Just tested with the ddg validator and it found the comma immediately - really useful tool)

Canina‭ wrote over 3 years ago · edited over 3 years ago

samcarter‭ elgonzo‭ jq works well as a validator, and that's how I used it here, but it's really a JSON parser and query tool, not a validator as such. Validation comes as a bonus feature because of jq's actual purpose simply because it's much harder to make something work reliably with syntactically invalid data than it is to just require syntactically valid data as input and throw an error if there's a syntax error. Another tool that operates on a similar principle is hxselect; when used for web pages (which are rarely well-formed XML), it virtually always needs its input first having been passed through something like tidy -asxhtml to be able to work with it.