电子墨水屏的出现可以说是软件开发工程师的福音,我是电脑屏幕的重度使用者,一直都寄望于有一家公司能开发出一套电子墨水屏显示器的解决方案。大上科技公司发布了一款以13.3寸的电子墨水显示器,看官方的介绍,确实是一款令我心动的产品。我很早就购入了电纸书,使用过Bambook、Kindle和Boox,比较喜欢基于Android系统的Boox产品,鉴于其系统的开放性,利用现有的设备搭建一套解决方案是完全有可能的。经过很长一段时间的摸索,我找到了一套可让电纸书成为开发工具的方案。

1 旧方案

1.1 配置概述

  1. 使用Microsoft Wedge Keyboard蓝牙键盘作为输入设备。
  2. 使用Linux Deploy构建完成的Linux系统,配合v-yadll定制的终端模拟器进行操作。该终端模拟器优化了光标的行为,竖线光标有效避免方块光标在电子墨水屏幕下中英文混排时残影问题。
  3. 编译vim 8和youcompleteme插件。
  4. 安装Eamcs和Spacemacs插件包。
  5. 安装常用的运行环境。

1.2 构建过程

1.2.1 获取root权限

使用Root大师获取Boox M96的root权限,网上说towelroot v1版本更加好用。

1.3 安装Linux子系统

从github下载最新版的Linux Deploy,https://github.com/meefik/linuxdeploy/releases

  1. 使用的默认的Profile,发行版选择deiban,安装源填国内镜像http://ftp.cn.debian.org/debian
  2. 虚拟磁盘的填2252MB,sdcard分区就只剩下20M空间,96整机只有8G储存空间,sdcard分区只有2.2G,选择需要空间的更小的debian应该会更加合适。虽然我更加喜欢Arch Linux,但是Android4.04的内核对于Arch Lnux来说太老了,无法正确Chroot到Arch子系统。
  3. 选择ssh服务器,不要选择图形化子系统,只安装最基础的系统就可以了。
  4. 开始安装,整个过程将持续10分钟左右。

1.4 安装终端模拟器

下载地址https://github.com/v-yadli/Android-Terminal-Emulator/releases 由于该模拟器并没有包含ssh、telnet和bash等常用工具,需要从JuiceSSH中提取telnet和bash,ssh可以从termux的前身opkg工具包当中得到,安装教程http://dan.drown.org/android

#提取telnet和bash到系统默认的PATH路径中
su -c busybox cp /data/data/com.sonelli.juicessh/files/bin/arm/nopie/{telnet,bash} /system/bin
#安装opkg工具包,将android系统的data目录挂载到Linux子系统下,通过juicessh登录到Linux子系统。
cd /data/local
curl http://dan.drown.org/android/opkg.tar.gz -o opkg.tar.gz
>>>>>>>>还需要增加安装步骤
tar zxvf opkg.tar.gz
#增加.bashrc文件到$HOME目录,使得打开终端就能使用opkg工具包的工具。
cat >> ~/.bashrc << EOF
export PATH=$PATH:/data/local/bin
PS1='\u@\h\w:$ '
cd ~
EOF
opkg update
opkg install openssh vim

1.5 安装Emacs和Spacemacs插件包

ssh youname@localhost
sudo apt-get install emacs git
git clone https://github.com/syl20bnr/spacemacs ~/.emacs.d

debian7自带的vim版本比较旧,无法使用最新版的youcompleteme插件,如果你只需要c++的自动完成功能可以直接安装debian仓库的vim-youcompleteme包。想要功能更丰富的vim,就需要自己编译了。

1.6 编译vim和vim-web插件包

sudo apt-get install make gcc ncurses-dev python2 python3 libxt-dev
wget https://github.com/vim/vim/archive/master.zip
unzip master.zip
./configure --with-compiledby="Wing" --prefix=/usr --enable-l
argefile --enable-multibyte sniff --enable-perlinterp --enable-python3interp --enable-pythoninterp --enable-rubyinterp --enable-luainterp --enable-fontset --with-features=huge --with-x=yes
make
sudo make install
git clone https://github.com/wing-ho/vim-web ~/.vim
#安装vim插件
vim
:PlugInstall

1.7 编译youcompleteme插件

Boox M96的cpu是单核1G的CPU,编译youcompleteme插件的时候会挂掉,我是借助手机的上安装的Debian Linux环境完成编译的,编译好之后把${Plugin}/YouCompleteMe/third_party/ycmd/ycmd_core.so复制回电纸书的对应目录。平时用js比较多,虽然编译选项只添加JavaScript支持,但其实c,c++,java都能够比较好的支持的,电纸书的里的Debian系统只是用于算法学习和源代码阅读的,单核1G的CPU无法满足开发的需要,实际开发中,我一般都直接ssh到pc上进行。

cd ~/.vim/plugged/YouCompleteMe/
python install.py --tern-completer

1.8 安装tmux管理多个session

sudo apt-get install tmux 
#我的配置文件
cat >> ~/.tmux.conf << EOF
set -g base-index 1
#set -g prefix M-b
#unbind C-b
bind r source-file ~/.tmux.conf \; display "Reloaded!"
#up
bind-key k select-pane -U
#down
bind-key j select-pane -D
#left
bind-key h select-pane -L
#right
bind-key l select-pane -R

#select last window
bind-key C-l select-window -l
bind-key -n M-1 select-window -t :1
bind-key -n M-2 select-window -t :2
bind-key -n M-3 select-window -t :3
bind-key -n M-4 select-window -t :4
bind-key -n M-5 select-window -t :5
bind-key -n M-6 select-window -t :6
bind-key -n M-7 select-window -t :7
bind-key -n M-8 select-window -t :8
bind-key -n M-9 select-window -t :9

#copy-mode 将快捷键设置为vi 模式
setw -g mode-keys vi

# copy mode
# enter copy mode (prefix Escape)
bind Escape copy-mode
# paste buffer (prefix Ctrl+p)
bind ^p pasteb
# select (v)
bind -t vi-copy v begin-selection
# copy (y)
bind -t vi-copy y copy-selection
set -g status-right "#(date +%H:%M' ')"
EOF

因为alt键在这个终端模拟器中无法使用,但在JuiceSSH终端模拟器中是可以正常使用的,我会根据不同的使用场景在这两个终端之间切换着使用,所以部分快捷键可能无法使用。

1.9 安装w3m浏览器

sudo apt-get install w3m
#更改两个我常用的快捷键
cat >> ~/.w3m/keymap << EOF
keymap d NEXT_PAGE
keymap u PREV_PAGE
EOF

1.10 安装google拼音输入法

由于Boox M96是Android 4.04,只能安装google pinyin 4.2.1,可以用手机乐园下载到低版本的谷歌拼音输入法。

2 新方案

把电纸书当成一个显示器来使用,BVNC Pro连本机Linux Delopy中运行的vnc server,这个App对键盘的各个键支持比较完善,可以避免Android Terminal和Android输入法的各种缺陷。可以有时需要浏览一些网站,我甚至给电纸书编译了vimb浏览器,一个纯键盘操作的轻量的浏览器,这样泡图书馆的时候,就可以只带电纸书和键盘。但最近我淘了部Intel芯片的手机(zenfone2)作为便携主机,性能相当好,甚至可以通过kvm安装Windows系统,搭配着电纸书使用简直完美。zenfone2可以有什么骚操作,可以参考我的另外一篇博文《把开发环境装进你的口袋》。

Last Updated 2018-10-14 日 23:38.
Created by Emacs 25.1.1 (Org mode 9.1.14)