wiki:C201

X Init

I'm using xdm to login.

apt-get install xdm

X Fonts

lack of unicode fonts suck.

apt-get install xfonts-100dpi xfonts-75dpi xfonts-base xfonts-encodings xfonts-intl-japanese xfonts-intl-japanese-big xfonts-scalable xfonts-terminus xfonts-utils

Xorg

Recompile x without config_vt, so that we work with the chrome-OS kernel.

diff --git a/xorg-server-1.18.4/hw/xfree86/common/xf86Globals.c b/xorg-server-1.18.4/hw/xfree86/common/xf86Globals.c
index 93a35b8..6d5f77a 100644
--- a/xorg-server-1.18.4/hw/xfree86/common/xf86Globals.c
+++ b/xorg-server-1.18.4/hw/xfree86/common/xf86Globals.c
@@ -104,6 +104,9 @@ xf86InfoRec xf86Info = {
     .dontVTSwitch = FALSE,
     .autoVTSwitch = TRUE,
     .ShareVTs = FALSE,
+#ifdef linux
+    .NoVTs = FALSE,
+#endif
     .dontZap = FALSE,
     .dontZoom = FALSE,
     .notrapSignals = FALSE,
diff --git a/xorg-server-1.18.4/hw/xfree86/common/xf86Init.c b/xorg-server-1.18.4/hw/xfree86/common/xf86Init.c
index 9bade90..4ce6cfc 100644
--- a/xorg-server-1.18.4/hw/xfree86/common/xf86Init.c
+++ b/xorg-server-1.18.4/hw/xfree86/common/xf86Init.c
@@ -1457,6 +1457,12 @@ ddxProcessArgument(int argc, char **argv, int i)
         xf86Info.ShareVTs = TRUE;
         return 1;
     }
+#ifdef linux
+    if (!strcmp(argv[i], "-novts")) {
+        xf86Info.NoVTs = TRUE;
+        return 1;
+    }
+#endif
     if (!strcmp(argv[i], "-iglx") || !strcmp(argv[i], "+iglx")) {
         xf86Info.iglxFrom = X_CMDLINE;
         return 0;
diff --git a/xorg-server-1.18.4/hw/xfree86/common/xf86Privstr.h b/xorg-server-1.18.4/hw/xfree86/common/xf86Privstr.h
index c5d24ea..3269372 100644
--- a/xorg-server-1.18.4/hw/xfree86/common/xf86Privstr.h
+++ b/xorg-server-1.18.4/hw/xfree86/common/xf86Privstr.h
@@ -61,6 +61,9 @@ typedef struct {
     Bool dontVTSwitch;
     Bool autoVTSwitch;
     Bool ShareVTs;
+#ifdef linux
+    Bool NoVTs;
+#endif
     Bool dontZap;
     Bool dontZoom;
     Bool notrapSignals;         /* don't exit cleanly - die at fault */
diff --git a/xorg-server-1.18.4/hw/xfree86/os-support/linux/lnx_init.c b/xorg-server-1.18.4/hw/xfree86/os-support/linux/lnx_init.c
index ca17493..6a6c349 100644
--- a/xorg-server-1.18.4/hw/xfree86/os-support/linux/lnx_init.c
+++ b/xorg-server-1.18.4/hw/xfree86/os-support/linux/lnx_init.c
@@ -179,6 +179,7 @@ xf86OpenConsole(void)
     const char *vcs[] = { "/dev/vc/%d", "/dev/tty%d", NULL };
 
     if (serverGeneration == 1) {
+        if (xf86Info.NoVTs != FALSE) {
         linux_parse_vt_settings(FALSE);
 
         if (!KeepTty) {
@@ -289,6 +290,7 @@ xf86OpenConsole(void)
             cfsetospeed(&nTty, 9600);
             tcsetattr(xf86Info.consoleFd, TCSANOW, &nTty);
         }
+        }
     }
     else {                      /* serverGeneration != 1 */
         if (!xf86Info.ShareVTs && xf86Info.autoVTSwitch) {

locales

apt-get install locales

set up en-utf8, jp-utf8, and C locales.

dpkg-reconfigure locales

Touchpad

Yes, I did a bad thing, and edited /usr/share/X11/xorg.conf.d/70-synaptics.conf .

This provides middleclick as three fingers, right click as 2 fingers, click as one finger, and the bottom of the pad is divided into click and right click when pressed. It also provides two finger scroll top to bottom, and two finger scroll left to right.

# Example xorg.conf.d snippet that assigns the touchpad driver
# to all touchpads. See xorg.conf.d(5) for more information on
# InputClass.
# DO NOT EDIT THIS FILE, your distribution will likely overwrite
# it when updating. Copy (and rename) this file into
# /etc/X11/xorg.conf.d first.
# Additional options may be added in the form of
#   Option "OptionName" "value"
#
Section "InputClass"
        Identifier "touchpad catchall"
        Driver "synaptics"
        MatchIsTouchpad "on"
# This option is recommend on all Linux systems using evdev, but cannot be
# enabled by default. See the following link for details:
# http://who-t.blogspot.com/2010/11/how-to-ignore-configuration-errors.html
#       MatchDevicePath "/dev/input/event*"
EndSection

Section "InputClass"
        Identifier "touchpad ignore duplicates"
        MatchIsTouchpad "on"
        MatchOS "Linux"
        MatchDevicePath "/dev/input/mouse*"
        Option "Ignore" "on"
EndSection

# This option enables the bottom right corner to be a right button on clickpads
# and the right and middle top areas to be right / middle buttons on clickpads
# with a top button area.
# This option is only interpreted by clickpads.
Section "InputClass"
        Identifier "Default clickpad buttons"
        MatchDriver "synaptics"
        # FIXME: describe these better.
        # these options are not adjustable via synclient
        Option "SoftButtonAreas" "50% 0 82% 0 0 0 0 0"
#       Option "SoftButtonAreas" "0 50% 82% 0 0 0 0 0" 
#       Option "SecondarySoftButtonAreas" "0 42% 0 0 15% 42% 58% 0 15%"
        Option "SecondarySoftButtonAreas" "0 42% 0 0 15% 42% 58% 0 15%"

        # the rest of this is adjustable via synclient.

        # Enable 1, 2, and 3 finger clicking as left, right, and middle click, respectively.
        Option "TapButton1" "1"
        Option "TapButton2" "3"
        Option "TapButton3" "2"

        # Calm the pad down while clicking.
        Option "VertHysteresis" "50"
        Option "HorizHysteresis" "50"

        # Drag Lock
        Option "LockedDrags" "1"

        # Tap to click thresholds.
        Option "FingerLow" "35"
        Option "FingerHigh" "40"

        # Prevent accidental clicks
        Option "PalmDetect" "1"
        Option "PalmMinWidth" "10"
        Option "PalmMinZ" "80"

        # scrolling.
        Option "VertTwoFingerScroll" "1"
#       Option "VertScrollDelta" "-90"
        Option "VertScrollDelta" "90"
        Option "HorizTwoFingerScroll" "1"
        Option "HorizScrollDelta" "-90"

        # Aceleration
        Option "MinSpeed" "1"
        Option "MaxSpeed" "1"

        Option "AccelerationProfile" "2"
        Option "ConstantDeceleration" "4"
EndSection

# This option disables software buttons on Apple touchpads.
# This option is only interpreted by clickpads.
Section "InputClass"
        Identifier "Disable clickpad buttons on Apple touchpads"
        MatchProduct "Apple|bcm5974"
        MatchDriver "synaptics"
        Option "SoftButtonAreas" "0 0 0 0 0 0 0 0"
EndSection

~/.xinitrc

The .xinitrc for my user should switch us to dvorak, and pull in the keymap for this keyboard.

setxkbmap -variant dvorak
if [ -s ~/.Xmodmap ]; then
   xmodmap ~/.Xmodmap
fi

~/.Xmodmap

This makes the search button, and the control buttons control:

clear control
clear mod4
keycode 133=Super_L
add control = Control_L Control_R Super_L
add mod4 = Super_R

Backlight

The backlight buttons are mappable, but need scripts to plumb them to actually manipulating the values in sysfs.

in /sys/class/backlight/backlight.20, there is a file called 'brightness'. echo a value from 0 to 255 into this to change the backlight level.

Last modified 3 years ago Last modified on 08/01/16 19:19:30