I have a hardware Dvorak keyboard that I would like to use to input texts in a non-Latin language. Naturally, the standard solution provided by XFCE4 does not work, as it translates the keys as if they are on a standard QWERTY layout. So I'm thinking that creating a custom layout would solve my problem. How can I do that?

  • This has always worked in my favor. For instance, Greek (polytonic) layout is based phonetically on qwerty, so my hardware dvorak keyboard makes the Greek layout phonetically based on dvorak for free! Obviously you have something else in mind, though. Mar 12 at 3:05

If you haven't set the keyboard layout system-wide, you can specify it in Xfce 4 Settings Manager.

For Setting Keyboard Layout, do the following steps:

  • Open Xfce 4 Settings Manager :

    Menu ⟹ Settings ⟹ Settings Manager

  • Click on the Keyboard icon.

  • Switch to the Layout tab.

  • Uncheck Use system defaults

  • Click the Add button and choose the appropriate keymap from the list.

  • Select the active layout.

For editing shortcuts, do the following:

Xfce4 parameters ⟹ window manager settings ⟹ Keyboard tab

In addition, if you want to switch between different layouts, you can use and download its plugins.

N.B. If above solutions didn't help, I recommend you read this article, I haven't tried that myself, but I think it might help. On this step if you are faced with any problem, the solution provided here from askubuntu might help.

  • 1
    I have a damaged key and needed to modify the layout to assign it's value somewhere. Just modifying the file quoted in the article did the job.
    – Vorac
    Apr 22 '18 at 19:37

I'm trying to do the same thing

I was able to add a custom layout to /usr/share/X11/xkb/symbols followed by chattr -i dvg to prevent ovewrites. Then I modified ~/home/gordon/.config/xfce4/xfconf/xfce-perchannel-xml/keyboard-layout.xml:

<?xml version="1.0" encoding="UTF-8"?>

<channel name="keyboard-layout" version="1.0">
  <property name="Default" type="empty">
    <property name="XkbDisable" type="bool" value="false"/>
    <property name="XkbOptions" type="empty">
      <property name="Group" type="string" value=""/>
      <property name="Compose" type="string" value=""/>
    <property name="XkbLayout" type="string" value="dvg"/>
    <!-- <property name="XkbVariant" type="string" value="dvp"/> -->
    <property name="XkbModel" type="string" value="asus_laptop"/>

I don't yet know how the get the list of keyboard layouts re-populated in the settings manager. It doesn't seem to be affected by changes in /usr/share/X11/xkb/symbols

  • XFCE is probably pulling available layouts from the XKB rules files (/usr/share/X11/xkb/rules/evdev{,.lst,.xml}). you'd have to add your layout and/or variants there. (GNOME reads the .xml; i can't say for sure that XFCE does too.)
    – quixotic
    Feb 16 '18 at 21:03

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.