Changed to using xkb for function key mapping, changed to using alt instead of control

for window management, so control can be used as expected in terminals

Cleaned up xkb implementation, made name of panfrost script fit the usual pattern of <function><target>.sh
This commit is contained in:
Hal Emmerich 2019-10-29 16:42:10 -05:00
parent a099220fc6
commit 716306ea99
9 changed files with 35 additions and 111 deletions

View File

@ -6,7 +6,7 @@ Some additional documentation for PrawnOS that wouldn't fit in the README
### Gestures: ### Gestures:
#### Config file: /etc/libinput-gestures.conf #### Config file: /etc/libinput-gestures.conf
* four finger swipe left: Switch to left workspace * four finger swipe left: Switch to left workspace
* four finger swipe right: Switch to right worksace * four finger swipe right: Switch to right workspace
### Keybindings ### Keybindings
@ -14,9 +14,9 @@ Some additional documentation for PrawnOS that wouldn't fit in the README
* control+alt+left: move window to left workspace * control+alt+left: move window to left workspace
* control+alt+right: move window to right workspace * control+alt+right: move window to right workspace
* control+left: tile widow to the left * alt+left: tile widow to the left
* control+right: tile window to the right * alt+right: tile window to the right
* control+up: maximize window * alt+up: maximize window
* alt+tab: app switcher * alt+tab: app switcher
@ -25,31 +25,20 @@ Some additional documentation for PrawnOS that wouldn't fit in the README
* control+alt+l: Lock screen * control+alt+l: Lock screen
* Brightness scripts are also called here and can be remapped here or in ~/.Xmodmap * Brightness scripts are also called here and can be remapped here or in ~/.Xmodmap
#### Configured using ~/.Xmodmap #### Configured using xkb
* "search" key: Mode switch aka m_s (function key) * "search" key: function (fn) key
* m_s + backspace: delete * fn + backspace: delete
* m_s + up: page up * fn + up: page up
* m_s + down: page down * fn + down: page down
* m_s + left: home * fn + left: home
* m_s + right: end * fn + right: end
* m_s + period: insert
* "brightness up key": increase backlight * fn + "brightness up key": increase backlight
* "brightness down key": decrease backlight * fn + "brightness down key": decrease backlight
* "volume mute": mute volume * fn + "volume mute": mute volume
* "volume down": decrease volume * fn + "volume down": decrease volume
* "volume up": increase volume * fn + "volume up": increase volume
* m_s + "brightness up key": F7
* m_s + "brightness down key": F6
* m_s + "volume mute key": F8
* m_s + "volume down key": F9
* m_s + "volume up key": F10
#### Configured using ~/.xinputrc
* alt+left left a word
* alt+right right a word
## Initramfs and Encryption ## Initramfs and Encryption
PrawnOS uses a custom initramfs, custom init script, and dmcrypt/LUKS to enable full root partition encryption PrawnOS uses a custom initramfs, custom init script, and dmcrypt/LUKS to enable full root partition encryption

View File

@ -18,8 +18,6 @@
<property name="XF86WWW" type="string" value="exo-open --launch WebBrowser"/> <property name="XF86WWW" type="string" value="exo-open --launch WebBrowser"/>
<property name="XF86Mail" type="string" value="exo-open --launch MailReader"/> <property name="XF86Mail" type="string" value="exo-open --launch MailReader"/>
<property name="override" type="bool" value="true"/> <property name="override" type="bool" value="true"/>
<property name="XF86MonBrightnessDown" type="string" value="/usr/sbin/backlight_down.sh"/>
<property name="XF86MonBrightnessUp" type="string" value="/usr/sbin/backlight_up.sh"/>
</property> </property>
</property> </property>
<property name="xfwm4" type="empty"> <property name="xfwm4" type="empty">
@ -69,9 +67,9 @@
<property name="&lt;Primary&gt;&lt;Alt&gt;KP_4" type="string" value="move_window_workspace_4_key"/> <property name="&lt;Primary&gt;&lt;Alt&gt;KP_4" type="string" value="move_window_workspace_4_key"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;KP_5" type="string" value="move_window_workspace_5_key"/> <property name="&lt;Primary&gt;&lt;Alt&gt;KP_5" type="string" value="move_window_workspace_5_key"/>
<property name="override" type="bool" value="true"/> <property name="override" type="bool" value="true"/>
<property name="&lt;Primary&gt;Up" type="string" value="maximize_window_key"/> <property name="&lt;Alt&gt;Up" type="string" value="maximize_window_key"/>
<property name="&lt;Primary&gt;Left" type="string" value="tile_left_key"/> <property name="&lt;Alt&gt;Left" type="string" value="tile_left_key"/>
<property name="&lt;Primary&gt;Right" type="string" value="tile_right_key"/> <property name="&lt;Alt&gt;Right" type="string" value="tile_right_key"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;Up" type="string" value="prev_workspace_key"/> <property name="&lt;Primary&gt;&lt;Alt&gt;Up" type="string" value="prev_workspace_key"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;Down" type="string" value="next_workspace_key"/> <property name="&lt;Primary&gt;&lt;Alt&gt;Down" type="string" value="next_workspace_key"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;Left" type="string" value="move_window_prev_workspace_key"/> <property name="&lt;Primary&gt;&lt;Alt&gt;Left" type="string" value="move_window_prev_workspace_key"/>

View File

@ -19,5 +19,6 @@
<property name="blank-on-battery" type="int" value="0"/> <property name="blank-on-battery" type="int" value="0"/>
<property name="dpms-on-battery-sleep" type="uint" value="0"/> <property name="dpms-on-battery-sleep" type="uint" value="0"/>
<property name="critical-power-action" type="uint" value="0"/> <property name="critical-power-action" type="uint" value="0"/>
<property name="handle-brightness-keys" type="bool" value="true"/>
</property> </property>
</channel> </channel>

View File

@ -1,30 +0,0 @@
! Search mapped to mode switch (basically the fn key)
! Referred to as ms later on
keycode 133 = Mode_switch NoSymbol Mode_switch
! Re-add some keyboard functionality
! Map insert to ms+period
keycode 60 = period greater Insert Insert
! Map page up to ms + up
keycode 111 = Up NoSymbol Prior
! Map page down to ms + down
keycode 116 = Down NoSymbol Next
! Map Home to ms+left
keycode 113 = Left NoSymbol Home
! Map End to ms+right
keycode 114 = Right NoSymbol End
! Map delete to ms+Backspace
keycode 22 = BackSpace BackSpace Delete Delete
! Now map the special functions
! Brightness keys
keycode 72 = XF86MonBrightnessDown XF86MonBrightnessDown F6 F6 F6 F6 XF86Switch_VT_6
keycode 73 = XF86MonBrightnessUp XF86MonBrightnessUp F7 F7 F7 F7 XF86Switch_VT_7
!Volume keys
keycode 74 = XF86AudioMute XF86AudioMute F8 F8 F8 F8 XF86Switch_VT_8
keycode 75 = XF86AudioLowerVolume XF86AudioLowerVolume F9 F9 F9 F9 XF86Switch_VT_9
keycode 76 = XF86AudioRaiseVolume XF86AudioRaiseVolume F10 F10 F10 F10 XF86Switch_VT_10

View File

@ -1 +0,0 @@
#[[ -f ~/.Xmodmap ]] && xmodmap ~/.Xmodmap

View File

@ -1,17 +0,0 @@
#!/bin/bash
cd /InstallResources/xkb
cp ./compat/* /usr/share/X11/xkb/compat/
cp ./keycodes/* /usr/share/X11/xkb/keycodes/
cp ./symbols/* /usr/share/X11/xkb/symbols/
patch /usr/share/X11/xkb/rules/base < ./rules/base.chromebook.patch
patch /usr/share/X11/xkb/rules/base.lst < ./rules/base.lst.chromebook.patch
patch /usr/share/X11/xkb/rules/base.xml < ./rules/base.xml.chromebook.patch
patch /usr/share/X11/xkb/rules/evdev < ./rules/evdev.chromebook.patch
patch /usr/share/X11/xkb/rules/evdev.lst < ./rules/evdev.lst.chromebook.patch
patch /usr/share/X11/xkb/rules/evdev.xml < ./rules/evdev.xml.chromebook.patch
cp keyboard /etc/default/keyboard

View File

@ -46,6 +46,20 @@ DEBIAN_FRONTEND=noninteractive apt -t buster install -y chromium || DEBIAN_FRONT
[ "$DE" = "xfce" ] && apt install -y xfce4 dbus-user-session system-config-printer tango-icon-theme xfce4-power-manager xfce4-terminal xfce4-goodies numix-gtk-theme plank accountsservice papirus-icon-theme [ "$DE" = "xfce" ] && apt install -y xfce4 dbus-user-session system-config-printer tango-icon-theme xfce4-power-manager xfce4-terminal xfce4-goodies numix-gtk-theme plank accountsservice papirus-icon-theme
[ "$DE" = "lxqt" ] && apt install -y lxqt pavucontrol-qt [ "$DE" = "lxqt" ] && apt install -y lxqt pavucontrol-qt
#install the keymap by patching xkb, then bindings work for any desktop environment
cp $DIR/xkb/compat/* /usr/share/X11/xkb/compat/
cp $DIR/xkb/keycodes/* /usr/share/X11/xkb/keycodes/
cp $DIR/xkb/symbols/* /usr/share/X11/xkb/symbols/
patch /usr/share/X11/xkb/rules/base < $DIR/xkb/rules/base.chromebook.patch
patch /usr/share/X11/xkb/rules/base.lst < $DIR/xkb/rules/base.lst.chromebook.patch
patch /usr/share/X11/xkb/rules/base.xml < $DIR/xkb/rules/base.xml.chromebook.patch
patch /usr/share/X11/xkb/rules/evdev < $DIR/xkb/rules/evdev.chromebook.patch
patch /usr/share/X11/xkb/rules/evdev.lst < $DIR/xkb/rules/evdev.lst.chromebook.patch
patch /usr/share/X11/xkb/rules/evdev.xml < $DIR/xkb/rules/evdev.xml.chromebook.patch
cp $DIR/xkb/keyboard /etc/default/keyboard
if [ "$DE" = "xfce" ] if [ "$DE" = "xfce" ]
then then
# remove light-locker, as it is broken on this machine. See issue https://github.com/SolidHal/PrawnOS/issues/56#issuecomment-504681175 # remove light-locker, as it is broken on this machine. See issue https://github.com/SolidHal/PrawnOS/issues/56#issuecomment-504681175
@ -105,17 +119,11 @@ then
cp -rf $DIR/fonts/* /usr/share/fonts/opentype/ cp -rf $DIR/fonts/* /usr/share/fonts/opentype/
fc-cache fc-cache
#Install xmodmap map, autostart
cp -rf $DIR/xfce-config/xmodmap/.Xmodmap /etc/skel/
cp -rf $DIR/xfce-config/xmodmap/.xinitrc /etc/skel/
#Install inputrc #Install inputrc
cp -rf $DIR/xfce-config/inputrc/.inputrc /etc/skel/ cp -rf $DIR/xfce-config/inputrc/.inputrc /etc/skel/
#Install brightness controls #Install brightness control scripts
cp $DIR/xfce-config/brightness/backlight_* /usr/sbin/ cp $DIR/xfce-config/brightness/backlight_* /usr/sbin/
mkdir -p /etc/udev/rules.d/
cp $DIR/xfce-config/brightness/backlight.rules /etc/udev/rules.d/
fi fi

View File

@ -1,24 +0,0 @@
#!/bin/bash
echo "
This Patch allows you to select all Chromebook Layouts.
For default behaviour, select chromebook_m in /etc/default/keyboard or
Chromebook (most models) | Search overlay in your DE Keyboard Selector.
Other Options:
chromebook_ralt Chromebook (most models) | Right alt overlay
chromebook_m Chromebook (most models) | Search overlay | F keys mapped to media keys
chromebook_m_ralt Chromebook (most models) | Right alt overlay | F keys mapped to media keys
chromebook_falco Chromebook Falco/Pixel/Pixel2 | Search overlay
chromebook_falco_ralt Chromebook Falco/Pixel/Pixel2 | Right alt overlay
chromebook_m_falco Chromebook Falco/Pixel/Pixel2 | Search overlay | F keys mapped to media keys
chromebook_m_falco_ralt Chromebook Falco/Pixel/Pixel2 | Right alt overlay | F keys mapped to media keys
chromebook_no_m Chromebook (most models) | No overlay | F keys mapped to media keys
After this patch, chromebook_m will be the default in /etc/default/keyboard with us layout
"
sudo /InstallResources/xkb/patchxkb.sh