12

By default, no layout on my Macbook Air allows me to print backtick (`) and tilde (~) symbols. Instead, I get backslash, pipe or whatever, depending from the layout.

I changed the behavior of the key that I want to use to print tilde using the following commands:

xev
<press tilde button>
keycode <keycode from xev output> = grave asciitilde >~/.Xmodmap
xmodmap ~/.xmodmaprc 

(instructions are based on these https://stackoverflow.com/questions/17757232/switch-tab-and-backtick-keys-ubuntu-linux)

But unfortunately, after I switch the layout, I get the default behavior again.

How to make these changes permanent?

Timofey
  • 291
  • 1
  • 2
  • 11
  • This is a problem I'm searching a *simple* solution for too. Just to add, the issue is that with Ubuntu 14.04 xmodmap is no longer functional. Its changes gets overwritten periodically (after a few minutes in my case) by xkb. I'm not an expert on this and still searching for a solution as well. This is just to inform you of the reason for this problem. – Boaz Rymland Nov 23 '14 at 07:39
  • @BoazRymland I solved the problem myself, just forgot to report. You may find the solution below, hope it helps you as well. – Timofey Nov 24 '14 at 11:27
  • thanks! I'll try it later. I don't like the idea of editing system file (or files that are suspected as such, with lack of knowing better) but I'm curious and want to resolve this. Thanks again! – Boaz Rymland Nov 24 '14 at 13:57
  • I don't even have tilde button on my Macbook Finnish keyboard. – jarno Jan 22 '18 at 08:36

4 Answers4

22

The solution that worked for Timofey did not work for me for some reason. However, a solution which did work was to put the line

echo 0 > /sys/module/hid_apple/parameters/iso_layout

into /etc/rc.local.

This suggestion comes from here:

https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1245081

via

https://stdio.sangwhan.com/backtick-tilde-problem-macbook-air/

yasmar
  • 321
  • 2
  • 4
7

Okay, I solved the problem.

First off, xmodmaprc doesn't work in Ubuntu 14.04. The solution is to edit xkb (X KeyBoard extension) config files.

Find the file /usr/share/X11/xkb/symbols/pc, backup it, then open and comment out the line:

key <LSGT> {    [ less, greater, bar, brokenbar ] };

And on the next line, add the following:

key <LSGT> { [ grave, asciitilde, grave, asciitilde ] };

If you need to change configuration for another locale, check the folder /usr/share/X11/xkb/symbols/ and find the file corresponding to the locale you want to change.

To apply the changes, you have to remove all xkb cache files:

rm -rf /var/lib/xkb/*
Timofey
  • 291
  • 1
  • 2
  • 11
2

Another solution which works as an unpriviledged user is:

setxkbmap -option apple:badmap

As a priviledged user this can also be used to fix the issue in the X config of the keyboard device with something like:

# /etc/X11/xorg.conf.d/90-custom-kbd.conf
Section "InputClass"
    Identifier "keyboard defaults"
    MatchIsKeyboard "on"

    Option "XKbOptions" "apple:badmap"
EndSection
bschlueter
  • 151
  • 5
  • None of the other solutions worked for me. This one did. I'm on a MBP late 2015 with US keyboard fixing Ubuntu 20.04 LTS running with Parallels Desktop 17. – Sebastian Sastre Feb 24 '22 at 00:59
1

On Ubuntu 16.04 with a Mac keyboard you should be able to get a tilde symbol by pressing Right Alt + ] key.

masitko
  • 171
  • 1
  • 2
  • Wow, I found it on a French Apple keyboard where you normally press Alt + N on OSX. I don't have any ], but it worked with *Right* Alt + N (but not Left Alt + N!) – hsandt Aug 10 '20 at 12:42