Librem5 - A custom squeekboard keyboard tutorial

Sorry I don’t understand you at this part.

The precise of the courser is a main issue, that’s right. That currently installed lens is also helping a lot to hit the point I want to. But I also use Shift + arrows on my PC from time to time, even without precise issues simply because it’s comfortable to use.

I have no idea what Android and iOS does since my smartphone before L5 was from 2012 or 2013 and just used it for SMS, calls and some simple photos. The usage is already totally different after using L5 2 weeks and I guess it would be also compared to a modern Android, because L5 is no smartphone and this way I also was thinking that Squeekboard should be able to do more than an Android keyboard UI.

Zooming every application where I could want to copy some text etc could be helpful. Text editor cannot handle this right now. But that would also not be a nice workflow since you have to zoom in and zoom out and zoom in and sometimes you want to mark longer texts. Not to say that it would take a huge amount of work to apply this change to every app. It’s also a little mess, even if marking could work better. I have no other idea right now.

What you’re describing is a GTK bug. Selecting text really sucks, and I actually agree because I had to do it 15 minutes ago, and I had to do like 10 attempts to select the first line in a text file, and when I figured it out, it still required too much manual precision. Other people are going to have this problem too. Do we expect all people with the problem to know that they should load a special input method to handle this? I don’t. This should be solved for everyone, and super secret workarounds are not enough.

I suggest reaching out to GTK and complaining about how text selection works.

Maybe the solution involves the input method, but it definitely does not involve emulating presses of switches on a keyboard.

I finished my advanced German terminal layout, but colors are still placeholder (have to think about a nice composition). It’s optimized for 150% screen scale. The @-layer contains also all additional France letters. The widescreen Squeekboard also contains some more characters, especially on shifted math layout. The small keys on the left are easy and precise to reach when sliding fingers from the side into the screen.

The last 2 layouts are orientated to the Neo keyboard. Also was thinking about doing same on main layers, but that could be very confusing and the benefits of Neo is more on physical layouts.

Do I miss something important or should I change anything?

@dcz (edit: sry pinged wrong person):
Do you have any specific requirements for up-streaming keyboards? At least I may want to create a default German terminal keyboard (orientated to us.yaml from repository). I think modifier are not allowed for non terminals. But what is about custom gtk.css requirement? Some characters need specific size, the black spacer are also just non functional buttons and or just for letting people modify colors easily.

1 Like

I don’t like the idea of custom css for keyboards because it makes the meanings of buttons inconsistent between layouts unless we enforce lots of rules, and I don’t have the time or expertise for that. But if the design team says it’s a good idea, I’ll follow that.

Black spacers need a css-free fix on the squeekboard side, so don’t worry about it.

Layouts specific to a certain script must not contain letters which do not appear in the script. Different people will want different extra letters, and I don’t want maintainers to become arbiters of language usage. Add symbols if you want to fill unused space.

Has anyone considered, or has been working on a gamepad version of squeekboard? It would be useful for some native desktop games like SuperTux, Minetest, but also for emulators.

Some potential issues:

  1. In some games (and apps for that matter too) input from squeekboard is not recognized (e.g. Sonic Robo Blast 2 Kart, YouTube Music Desktop). For apps at least, there is a workaround for Ctrl + C/X/V… working, and both still work with an external keyboard

  2. For analog stick input, I am not familiar enough myself with how this type of input is mapped. The best I’d be able to do on my own is a PS Classic style controller.

  3. For landscape mode, it would probably be best for small screens to split the keyboard in half, to be on either side of the screen for each hand, similar to the black bars that appear on 4:3 content on a 16:9 display

  4. If PureOS switches to an all gesture based UI as I imagine the direction is trending towards, then the keyboard would need a method to show the gamepad for specific applications, else the keyboard only would come up when it detects a text box is in focus

  5. Layout: not sure if it is best to map & visually display buttons to that similar that one would use to game (e.g. ASDF), or for how they typically are (e.g. ABXY). Select & Start could be backspace and enter, or space and ESC, or maybe all 4 are provided in that area. Would want to balance intuitiveness, minimizing workflow changes, and maximizing compatibility with all controller types into one pad

1 Like

This thread is more about editing layers and not about modify Squeekboard entirely. And some of your wishes are things that I think will never be supported with Squeekboard and need a totally different solution. Squeekbaord has predefined keys an cannot simulate everything. This may gets better if shortcuts would be implemented (this way we could implement up + left arrow to diagonal up-left arrow or even up-up-left).

Best thing would be if games support it by themselves. An additional keyboard is just a poor fix for unsupported inputs. However, in some cases it makes sense.

@ 5.) I created a new thread for that specific topic. Even if it could be handled in this thread, it’s better to make an own, because it’s for a very specific layout that will need a lot of work.

Very nice and posts. I have done the same with the default keyboard layout not quite being enough for me.

Here’s what I’ve got so far. It’s a bit more of a normal keyboard, with the symbol layer customised for writing Te Reo Māori (the New Zealand Native Language) and including symbols I use often. The keys are definitely on the small size, but seem to be big enough to minimise errors. I also made layouts for the Workman layout Workman-P in terminal as I have been wanting to switch to the layout for ages and figure this would be a good way to do it.

Todos:

  • fix the colouring on the keys (missing the return blue)
  • find some more symbols for the symbol layer
  • clean the layout code

us.yaml (also symlinked to terminal/us.yaml)
---
outlines:
    default:   { width: 50,   height: 50 }
    action:    { width: 90,   height: 37 }
    altline:   { width: 81,   height: 37 }
    wide:      { width: 90,   height: 37 }
    spaceline: { width: 200,  height: 37 }
    special:   { width: 50,   height: 37 }
    small:     { width: 50, height: 37 }

views:
    base:
        - "EscSmall TabSmall Ctrl Alt Insert Delete PgUp PgDn Home End \\"
        - "1 2 3 4 5 6 7 8 9 0 - ="
        - "q w e r t y u i o p [ ]"
        - "a s d f g h j k l ; '"
        - "Shift_L   z x c v b n m , . / BackSpace"
        - "` show_symbols preferences      space         ↑ ↓ ← → ReturnSmall"
    upper:
        - "F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 |"
        - "! @ # $ % ^ & * ( ) _ +"
        - "Q W E R T Y U I O P { }"
        - "A S D F G H J K L : \""
        - "Shift_L   Z X C V B N M < > ?  BackSpace"
        - "` show_symbols preferences      space         ↑ ↓ ← → ReturnSmall"
    symbols:
        - "EscSmall TabSmall Ctrl Alt Insert Delete PgUp PgDn Home End \\"
        - "! @ # $ % ^ & * ( ) _ +"
        - "ā ē ī ō ū _ - – — … © °"
        - "Ā Ē Ī Ō Ū ® £ € ¥ { }"
        - "Shift_L   Z X M C V K L < > ?  BackSpace"
        - "` show_letters preferences      space        ↑ ↓ ← → ReturnSmall"

buttons:
    Shift_L:
        action:
            locking:
                lock_view: "upper"
                unlock_view: "base"
        icon: "key-shift"
    BackSpace:
        icon: "edit-clear-symbolic"
        action: erase
    preferences:
        action: "show_prefs"
        outline: "special"
        icon: "keyboard-mode-symbolic"
    show_letters:
        action:
            set_view: "base"
        outline: "special"
        label: "ABC"
    show_symbols:
        action:
            set_view: "symbols"
        outline: "special"
        label: "ā°"
    period:
        outline: "altline"
        text: "."
    space:
        outline: "spaceline"
        text: " "
    Return:
        icon: "key-enter"
        keysym: "Return"
    ReturnSmall:
        icon: "key-enter"
        keysym: "Return"
        outline: "special"
    colon:
        text: ":"
    F1:
        keysym: "F1"
        outline: "small"
    F2:
        keysym: "F2"
        outline: "small"
    F3:
        keysym: "F3"
        outline: "small"
    F4:
        keysym: "F4"
        outline: "small"
    F5:
        keysym: "F5"
        outline: "small"
    F6:
        keysym: "F6"
        outline: "small"
    F7:
        keysym: "F7"
        outline: "small"
    F8:
        keysym: "F8"
        outline: "small"
    F9:
        keysym: "F9"
        outline: "small"
    F10:
        keysym: "F10"
        outline: "small"
    F11:
        keysym: "F11"
        outline: "small"
    F12:
        keysym: "F12"
        outline: "small"
    Esc:
        keysym: "Escape"
    EscSmall:
        outline: "small"
        keysym: "Escape"
        label: "Esc"
    Tab:
        outline: "action"
        keysym: "Tab"
    TabSmall:
        outline: "small"
        keysym: "Tab"
        label: "Tab"
    Delete:
        outline: "small"
        keysym: "Delete"
        label: "Del"
    Insert:
        outline: "small"
        keysym: "Insert"
        label: "Ins"
    Menu:
        outline: "action"
        keysym: "Menu"
    Pause:
        outline: "action"
        keysym: "Pause"
    Break:
        outline: "action"
        keysym: "Break"
    Home:
        outline: "small"
        keysym: "Home"
    End:
        outline: "small"
        keysym: "End"
    PgUp:
        outline: "small"
        keysym: "Page_Up"
    PgDn:
        outline: "small"
        keysym: "Page_Down"
    "↑":
        outline: "small"
        keysym: "Up"
    "↓":
        outline: "small"
        keysym: "Down"
    "←":
        outline: "small"
        keysym: "Left"
    "→":
        outline: "small"
        keysym: "Right"
    Up:
        label: "↑"
        outline: "action"
        keysym: "Up"
    Left:
        label: "←"
        outline: "action"
        keysym: "Left"
    Down:
        label: "↓"
        outline: "action"
        keysym: "Down"
    Right:
        label: "→"
        outline: "action"
        keysym: "Right"
    Ctrl:
        modifier: "Control"
        outline: "small"
        label: "Ctrl"
    Alt:
        modifier: "Alt"
        outline: "small"
        label: "Alt"
    "\\":
        outline: "small"
    "|":
        outline: "small"
    "`":
        outline: "small"
    "~":
        outline: "small"

us+workman.yaml
---
outlines:
    default:   { width: 50,   height: 50 }
    action:    { width: 50,   height: 37 }
    altline:   { width: 81,   height: 37 }
    wide:      { width: 90,   height: 37 }
    spaceline: { width: 200,  height: 37 }
    special:   { width: 50,   height: 37 }
    small:     { width: 50, height: 37 }

views:
    base:
        - "EscSmall TabSmall Ctrl Alt Insert Delete PgUp PgDn Home End \\"
        - "1 2 3 4 5 6 7 8 9 0 - ="
        - "q d r w b j f u p ; [ ]"
        - "a s h t g y n e o i '"
        - "Shift_L   z x m c v k l , . / BackSpace"
        - "` show_symbols preferences      space         ↑ ↓ ← → ReturnSmall"
    upper:
        - "F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 |"
        - "! @ # $ % ^ & * ( ) _ +"
        - "Q D R W B J F U P : { }"
        - "A S H T G Y N E O I \""
        - "Shift_L   Z X M C V K L < > ?  BackSpace"
        - "~ show_symbols preferences      space        ↑ ↓ ← → ReturnSmall"
    symbols:
        - "EscSmall TabSmall Ctrl Alt Insert Delete PgUp PgDn Home End \\"
        - "! @ # $ % ^ & * ( ) _ +"
        - "ā ē ī ō ū _ - – — … © °"
        - "Ā Ē Ī Ō Ū © ® £ € ¥ { }"
        - "Shift_L   Z X M C V K L < > ?  BackSpace"
        - "` show_letters preferences      space        ↑ ↓ ← → ReturnSmall"

buttons:
    Shift_L:
        action:
            locking:
                lock_view: "upper"
                unlock_view: "base"
        icon: "key-shift"
    BackSpace:
        icon: "edit-clear-symbolic"
        action: erase
    preferences:
        action: "show_prefs"
        outline: "special"
        icon: "keyboard-mode-symbolic"
    show_numbers:
        action:
            set_view: "numbers"
        outline: "wide"
        label: "123"
    show_numbers_from_symbols:
        action:
            set_view: "numbers"
        outline: "altline"
        label: "123"
    show_letters:
        action:
            set_view: "base"
        outline: "special"
        label: "ABC"
    show_symbols:
        action:
            set_view: "symbols"
        outline: "special"
        label: "ā°"
    period:
        outline: "altline"
        text: "."
    space:
        outline: "spaceline"
        text: " "
    Return:
        icon: "key-enter"
        keysym: "Return"
    ReturnSmall:
        icon: "key-enter"
        keysym: "Return"
        outline: "special"
    colon:
        text: ":"
    F1:
        keysym: "F1"
        outline: "small"
    F2:
        keysym: "F2"
        outline: "small"
    F3:
        keysym: "F3"
        outline: "small"
    F4:
        keysym: "F4"
        outline: "small"
    F5:
        keysym: "F5"
        outline: "small"
    F6:
        keysym: "F6"
        outline: "small"
    F7:
        keysym: "F7"
        outline: "small"
    F8:
        keysym: "F8"
        outline: "small"
    F9:
        keysym: "F9"
        outline: "small"
    F10:
        keysym: "F10"
        outline: "small"
    F11:
        keysym: "F11"
        outline: "small"
    F12:
        keysym: "F12"
        outline: "small"
    Esc:
        keysym: "Escape"
    EscSmall:
        outline: "small"
        keysym: "Escape"
        label: "Esc"
    Tab:
        outline: "action"
        keysym: "Tab"
    TabSmall:
        outline: "small"
        keysym: "Tab"
        label: "Tab"
    Delete:
        outline: "small"
        keysym: "Delete"
        label: "Del"
    Insert:
        outline: "small"
        keysym: "Insert"
        label: "Ins"
    Menu:
        outline: "action"
        keysym: "Menu"
    Pause:
        outline: "action"
        keysym: "Pause"
    Break:
        outline: "action"
        keysym: "Break"
    Home:
        outline: "small"
        keysym: "Home"
    End:
        outline: "small"
        keysym: "End"
    PgUp:
        outline: "small"
        keysym: "Page_Up"
    PgDn:
        outline: "small"
        keysym: "Page_Down"
    "↑":
        outline: "small"
        keysym: "Up"
    "↓":
        outline: "small"
        keysym: "Down"
    "←":
        outline: "small"
        keysym: "Left"
    "→":
        outline: "small"
        keysym: "Right"
    Up:
        label: "↑"
        outline: "action"
        keysym: "Up"
    Left:
        label: "←"
        outline: "action"
        keysym: "Left"
    Down:
        label: "↓"
        outline: "action"
        keysym: "Down"
    Right:
        label: "→"
        outline: "action"
        keysym: "Right"
    Ctrl:
        modifier: "Control"
        outline: "small"
        label: "Ctrl"
    Alt:
        modifier: "Alt"
        outline: "small"
        label: "Alt"
    "\\":
        outline: "small"
    "|":
        outline: "small"
    "`":
        outline: "small"
    "~":
        outline: "small"

terminal/us+workman.yaml (Workman-P)
---
outlines:
    default:   { width: 50,   height: 50 }
    action:    { width: 50,   height: 37 }
    altline:   { width: 81,   height: 37 }
    wide:      { width: 90,   height: 37 }
    spaceline: { width: 200,  height: 37 }
    special:   { width: 50,   height: 37 }
    small:     { width: 50, height: 37 }

views:
    base:
        - "EscSmall TabSmall Ctrl Alt Insert Delete PgUp PgDn Home End \\"
        - "! @ # $ % ^ & * ( ) _ +"
        - "q d r w b j f u p ; { }"
        - "a s h t g y n e o i '"
        - "Shift_L   z x m c v k l , . / BackSpace"
        - "` show_symbols preferences      space         ↑ ↓ ← → ReturnSmall"
    upper:
        - "F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 |"
        - "1 2 3 4 5 6 7 8 9 0 - ="
        - "Q D R W B J F U P : [ ]"
        - "A S H T G Y N E O I \""
        - "Shift_L   Z X M C V K L < > ?  BackSpace"
        - "~ show_symbols preferences      space        ↑ ↓ ← → ReturnSmall"
    symbols:
        - "EscSmall TabSmall Ctrl Alt Insert Delete PgUp PgDn Home End \\"
        - "! @ # $ % ^ & * ( ) _ +"
        - "ā ē ī ō ū _ - – — … © °"
        - "Ā Ē Ī Ō Ū ® £ € ¥ { }"
        - "Shift_L   Z X M C V K L < > ?  BackSpace"
        - "` show_letters preferences      space        ↑ ↓ ← → ReturnSmall"

buttons:
    Shift_L:
        action:
            locking:
                lock_view: "upper"
                unlock_view: "base"
        icon: "key-shift"
    BackSpace:
        icon: "edit-clear-symbolic"
        action: erase
    preferences:
        action: "show_prefs"
        outline: "special"
        icon: "keyboard-mode-symbolic"
    show_numbers:
        action:
            set_view: "numbers"
        outline: "wide"
        label: "123"
    show_numbers_from_symbols:
        action:
            set_view: "numbers"
        outline: "altline"
        label: "123"
    show_letters:
        action:
            set_view: "base"
        outline: "special"
        label: "ABC"
    show_symbols:
        action:
            set_view: "symbols"
        outline: "special"
        label: "ā°"
    period:
        outline: "altline"
        text: "."
    space:
        outline: "spaceline"
        text: " "
    Return:
        icon: "key-enter"
        keysym: "Return"
    ReturnSmall:
        icon: "key-enter"
        keysym: "Return"
        outline: "special"
    colon:
        text: ":"
    F1:
        keysym: "F1"
        outline: "small"
    F2:
        keysym: "F2"
        outline: "small"
    F3:
        keysym: "F3"
        outline: "small"
    F4:
        keysym: "F4"
        outline: "small"
    F5:
        keysym: "F5"
        outline: "small"
    F6:
        keysym: "F6"
        outline: "small"
    F7:
        keysym: "F7"
        outline: "small"
    F8:
        keysym: "F8"
        outline: "small"
    F9:
        keysym: "F9"
        outline: "small"
    F10:
        keysym: "F10"
        outline: "small"
    F11:
        keysym: "F11"
        outline: "small"
    F12:
        keysym: "F12"
        outline: "small"
    Esc:
        keysym: "Escape"
    EscSmall:
        outline: "small"
        keysym: "Escape"
        label: "Esc"
    Tab:
        outline: "action"
        keysym: "Tab"
    TabSmall:
        outline: "small"
        keysym: "Tab"
        label: "Tab"
    Delete:
        outline: "small"
        keysym: "Delete"
        label: "Del"
    Insert:
        outline: "small"
        keysym: "Insert"
        label: "Ins"
    Menu:
        outline: "action"
        keysym: "Menu"
    Pause:
        outline: "action"
        keysym: "Pause"
    Break:
        outline: "action"
        keysym: "Break"
    Home:
        outline: "small"
        keysym: "Home"
    End:
        outline: "small"
        keysym: "End"
    PgUp:
        outline: "small"
        keysym: "Page_Up"
    PgDn:
        outline: "small"
        keysym: "Page_Down"
    "↑":
        outline: "small"
        keysym: "Up"
    "↓":
        outline: "small"
        keysym: "Down"
    "←":
        outline: "small"
        keysym: "Left"
    "→":
        outline: "small"
        keysym: "Right"
    Up:
        label: "↑"
        outline: "action"
        keysym: "Up"
    Left:
        label: "←"
        outline: "action"
        keysym: "Left"
    Down:
        label: "↓"
        outline: "action"
        keysym: "Down"
    Right:
        label: "→"
        outline: "action"
        keysym: "Right"
    Ctrl:
        modifier: "Control"
        outline: "small"
        label: "Ctrl"
    Alt:
        modifier: "Alt"
        outline: "small"
        label: "Alt"
    "\\":
        outline: "small"
    "|":
        outline: "small"
    "`":
        outline: "small"
    "~":
        outline: "small"
1 Like

I worked on default terminal for Germany. I want to upstream it one day, but the whole process looks so complicated (never did a MR before nor compiled something from git) and I have not much time to learn it actually. However, for people who want the file right now, here it is:

de.yaml
outlines:
    default: { width: 35.33, height: 46 }
    action:  { width: 59,    height: 46 }
    altline: { width: 52.67, height: 46 }
    wide: { width: 59, height: 46 }
    spaceline: { width: 94, height: 46 }
    special: { width: 35.33, height: 46 }
    small: { width: 59, height: 22 }

views:
    base:
        - "Ctrl Alt ↑ ↓ ← →"
        - "q w e r t z u i o p"
        - "a s d f g h j k l  show_actions"
        - "Shift_L z y c v b n m  BackSpace"
        - "show_numbers show_eschars preferences      space     , .   Return"
    upper:
        - "Ctrl Alt PgUp PgDn Home End"
        - "Q W E R T Z U I O P"
        - "A S D F G H J K L show_actions"
        - "Shift_L   Y X C V B N M  BackSpace"
        - "show_numbers show_eschars preferences      space    ! ? Return"
    numbers:
        - "Ctrl Alt ↑ ↓ ← →"
        - "1 2 3 4 5 6 7 8 9 0"
        - "* # $ / & - _ + ( )"
        - "show_symbols   , \" ' colon ; ! ?  BackSpace"
        - "show_letters show_eschars preferences         space , . Return"
    symbols:
        - "Ctrl Alt ↑ ↓ ← →"
        - "~ ` | · √ π τ ÷ × ¶"
        - "© ® £ € ¥ ^ ° @ { }"
        - "show_numbers_from_symbols   \\ % < > = [ ]  BackSpace"
        - "show_letters show_eschars preferences         space , . Return"
    actions:
        - "Ctrl Alt PgUp PgDn Home End"
        - "F1  F2  F3  F4  F5  F6"
        - "F7  F8  F9  F10 F11 F12"
        - "Esc Tab Pause Insert Up Del"
        - "show_letters Menu Break Left Down Right"
    eschars:
        - "Ctrl Alt ↑ ↓ ← →"
        - "ä è é ö ü Ä È É Ö Ü"
        - "à â ê î ô À Â È Î Ô"
        - "show_numbers_from_symbols  « » ç Ç æ œ ß  BackSpace"
        - "show_letters show_eschars preferences         space        „ “ Return"

buttons:
    Shift_L:
        action:
            locking:
                lock_view: "upper"
                unlock_view: "base"
        outline: "altline"
        icon: "key-shift"
    BackSpace:
        outline: "altline"
        icon: "edit-clear-symbolic"
        action: erase
    preferences:
        action: "show_prefs"
        outline: "special"
        icon: "keyboard-mode-symbolic"
    show_numbers:
        action:
            set_view: "numbers"
        outline: "wide"
        label: "123"
    show_numbers_from_symbols:
        action:
            set_view: "numbers"
        outline: "altline"
        label: "123"
    show_letters:
        action:
            set_view: "base"
        outline: "wide"
        label: "ABC"
    show_symbols:
        action:
            set_view: "symbols"
        outline: "altline"
        label: "τ=\\"
    show_actions:
        action:
            set_view: "actions"
        outline: "special"
        label: ">_"
    show_eschars:
        action:
            locking:
                lock_view: "eschars"
                unlock_view: "base"
        outline: "special"
        label: "äÄ"
    space:
        outline: "spaceline"
        text: " "
    Return:
        outline: "wide"
        icon: "key-enter"
        keysym: "Return"
    colon:
        text: ":"
    F1:
        outline: "action"
        keysym: "F1"
    F2:
        outline: "action"
        keysym: "F2"
    F3:
        outline: "action"
        keysym: "F3"
    F4:
        outline: "action"
        keysym: "F4"
    F5:
        outline: "action"
        keysym: "F5"
    F6:
        outline: "action"
        keysym: "F6"
    F7:
        outline: "action"
        keysym: "F7"
    F8:
        outline: "action"
        keysym: "F8"
    F9:
        outline: "action"
        keysym: "F9"
    F10:
        outline: "action"
        keysym: "F10"
    F11:
        outline: "action"
        keysym: "F11"
    F12:
        outline: "action"
        keysym: "F12"
    Esc:
        outline: "action"
        keysym: "Escape"
    Tab:
        outline: "action"
        keysym: "Tab"
        label: "↹"
    Del:
        outline: "action"
        keysym: "Delete"
        label: "Entf"
    Insert:
        outline: "action"
        keysym: "Insert"
        label: "Einfg"
    Menu:
        outline: "action"
        keysym: "Menu"
        label: "Menü"
    Pause:
        outline: "action"
        keysym: "Pause"
    Break:
        outline: "action"
        keysym: "Break"
    Home:
        outline: "small"
        keysym: "Home"
        label: "Pos1"
    End:
        outline: "small"
        keysym: "End"
        label: "Ende"
    PgUp:
        outline: "small"
        keysym: "Page_Up"
        label: "Bild ↑"
    PgDn:
        outline: "small"
        keysym: "Page_Down"
        label: "Bild ↓"
    ↑:
        outline: "small"
        keysym: "Up"
    ↓:
        outline: "small"
        keysym: "Down"
    ←:
        outline: "small"
        keysym: "Left"
    →:
        outline: "small"
        keysym: "Right"
    Up:
        label: "↑"
        outline: "action"
        keysym: "Up"
    Left:
        label: "←"
        outline: "action"
        keysym: "Left"
    Down:
        label: "↓"
        outline: "action"
        keysym: "Down"
    Right:
        label: "→"
        outline: "action"
        keysym: "Right"
    Ctrl:
        modifier: "Control"
        outline: "small"
        label: "Strg"
    Alt:
        modifier: "Alt"
        outline: "small"
        label: "Alt"


@dos:
I run again into the issue where Modifiers get reset and tried to look deeper into the issue. So I found your bug report one day after you reported it - luckily was not looking before. That 8 bit border makes totally sense to me. But modifiers are not totally broken - if I copy a text and want to paste with Ctrl + v, I will write first time v and if I repeat it, it will paste what I copied. I’m just not allowed to do something else in between (like pushing backspace to remove the written V letter). That also works with nearly every other modifier and combination (except such as Ctrl+x, because marked text becomes letter x and so nothing to copy anymore).

Hopefully it get fixed soon, because my widescreen and terminal keyboard are modifier broken right now.

The cool thing with Squeekboard → we can add special use case keyboards. It speeds up things a lot. The padding-button typed padding: ;, so I just need to fill the values. I made this post to show you alternative ways to use Squeekboard.

Another use case can be a terminal layout with most common commands. Just don’t add a sudo-password-button. :wink:

5 Likes

ah, that could come in handy.

2 Likes

Initial Release of my custom layout is here. As you can see above, it is a German layout, but you can customize it. If you want, I will also add your customized languages, but only if they match this style more or less. Here is a screenshot of the current state.

There is a file for 100%/200% screen scale, but also for 125%, 150% and 175%. I did the math that they fit perfectly into portrait view and wont support other scales. Landscape needs an update before releasing it.

You also can decide between the color version you see above, but you also can use a color version that matches the default Squeekboard color. Currently I just have one color-theme. If you have any wishes, I will create some more (or upload your creations).

For default color you can decide if you want a css-fix for font size etc or if you stay default without any css-file. It may looks less good, but it should be usable in any case.

Also, if you find any bugs, please let me know (in best case with screenshot).

Installation etc is described on README-file. There is only a manual installation right now and I have not much experience in creating scripts yet. I’m not sure if or when I will create such. So if someone wants to create it (@Emma? *asking kindly*), I would be happy.

4 Likes

I get a “Page Not Found”.

1 Like

I’m a bit confused. When I log-out I also have no access, so it is something with authorization. But the repository is marked as “public”. I’m not sure what I’m doing wrong.

1 Like

I bet it has to do with your user profile.

2 Likes

Correct, now it’s fixed. Thanks for the hint, I did not expect such behavior. :smile:

2 Likes

For the benefit of those considering opening a codeberg account, what was the nature of the problem? Some privacy setting?

2 Likes

Their user profile was private; nothing involving mandatory 2FA by a corporate parent company.

2 Likes

For me one of the main reasons was the e.V. from Germany (eingetragener Verein aka registered association) behind. It’s much more trustworthy than Microsoft or even some smaller companies.

Another reason is the accessibility. Purism makes it not easy to create and activate an account and after I tried it, it got activated while I was not at home and 2 days later it was already deactivated, while the “send me a code to reactivate” never sent a code. I was tired by this and stopped trying. I understand that they want to protect their services, but I also don’t want to feel like begging for access.

And last but not least, user0 who didn’t accept any of the other git repositories accept this one. That can be interpreted as plus. :smile:

3 Likes

Thanks. All good to know. I already didn’t have a good feeling about what pain might be involved in opening a Purism source/issue reporting account. Now I’m even more aprehensive.

I have been researching the pros/cons of opening a Codeberg account and the information is readily available. What I was really asking above was the nature of the missing page problem, but it looks like FranklyFlawless has answered with what seems most likely.

2 Likes

There are other issues with Codeberg depending on your security practices: it is resistant to ephemeral email addresses and requires some JavaScript.

2 Likes