notes-computer-msSurfaceGo

Review

i've only had it for a week but so far the Surface Go is great. It's good as a tablet and as a laptop.

I used to use my cellphone instead of a tablet but it's too small for reading PDFs; i used to use my Surface Pro 4 for travel but it's a little too large, especially for airplane seats when the person in front puts their seat back. If you are going to get one, i would recommend getting the higher-end (8GB) model, and also purchasing the optional keyboard.

This would also be a perfect computer for someone in school; it would be great for notetaking in class (assuming you get both the optional keyboard and the optional pen; when i bought it there was a package deal where you could buy both of these and a warranty at the same time you purchased the Go), for browsing the web, for homework, and for email and chat. You may need a more powerful computer for computer games, computer programming, or computer graphics, however.

Some reviewers complained that the Surface Go is slow but it seems plenty fast for me. That said, i haven't tried opening a zillion tabs at once, or playing a video while doing other stuff, or playing music while doing other stuff, etc. For heavy computations (like data analysis or program compilation) i would use another computer.

There is no fan and the keyboard is relatively quiet, making it less likely that you will bother people by using this to take notes in a meeting.

i was pleasantly surprised by how well WSL (windows subsystem for Linux) works on the Surface Go. It runs commandline terminal programs including mutt, offlineimap, and postfix with no problem, and with the addition of a third-party X server (vcxsrv) it runs emacs in a graphical window. The Emacs in the X (vcxsrv) window can copy/past to/from Windows apps. You can access Windows files and start windows programs from within WSL (for example, a Linux commandline script can open URLS in the Windows Firefox).

The 10" Surface Go slightly larger than i'd like for a tablet (it's the size of an iPad; i would have preferred the size of an iPad Mini (8" screen diagonal)), but the additional size lets you fit more on the screen, allowing it to be a decent laptop computer as well as a tablet. Still, i would have preferred if it were 8" or 9" instead of 10". 10" takes up a little too much space on the table at lunch and i bet the 10" size will be a little difficult to hold one-handed while standing on a packed train. That being said, overall it's great.

---

Installation (Windows stuff)

Initial install

During install, in the privacy selections screen, opt-out of everything.

windows update->check for updates (wait for install, then tell it to go ahead and reboot)

settings->update->windows update->change active hours (to whatever you want)

settings->update->windows update->advanced->more notifications about restarting

settings->update->windows update->advanced->delivery optimization->allow downloads from other PCs->off settings->update->windows update->advanced->delivery optimization->advanced options->upload bandwidth limit->5% settings->update->windows update->advanced->delivery optimization->advanced options->monthly upload limit->5 GB

settings->update->windows update->advanced->give me updates for other Microsoft products when i update Windows->yes

microsoft store -> search for 'switch out of s mode' (you have to add or create a microsoft account to do this), install restart

Colemak

download colemak from colemak.com. extract it, double click on setup.exe. To switch to it, click on the 'ENG US' in the taskbar, then select Colemak.

to make Colemak the default keyboard layout, not just a non-default optional one: after adding Colemak, pull up the keyboard layout selection menu from the task bar icon, Language Preferences->English->Options, select US QWERTY and Remove, then re-add it

Options

battery settings->turn on battery saver if battery falls below: 45% (default was 20%)

settings->privacy->general->let windows track app launches->off

settings->privacy->activity history->let windows collect my activites from this PC->off

settings->privacy->camera->choose apps which can access your camera->all off settings->privacy->camera->allow apps to access your camera->off settings->privacy->camera->allow access to the camera on this device->off

same for microphone

(note: now if you want to Skype or whatever you'll have to undo these settings)

same (or similar) for notifications

same for account info

settings->system->power lengthen the times, also when plugged in, PC goes to sleep:never

to free up space in the taskbar for more application icons (esp. in portrait rotation when using without the keyboard):

right click on empty space in taskbar, uncheck 'show task view button', check 'show touch keyboard button'

right click on empty space in taskbar, taskbar settings->select which icons appear on the taskbar, unselect all

right click on empty space in taskbar, taskbar settings->turn system icons on or off, action center->off

in file explorer header, tab 'view', check boxes 'file name extensions' and 'hidden items'

settings->devices->pen & windows ink->handwriting->write directly into text field settings->devices->pen & windows ink->pen shortcuts->click once->When your device is locked click once can open your Windows Ink Workspace notes->yes settings->devices->pen & windows ink->pen shortcuts->double click->launch a universal app, OneNote? settings->devices->press and hold->nothing

note: the pen won't work unless bluetooth is enabled. You can do that using the menu that pulls in from the right.

Applications

Dropbox

install dropbox (via their website, not via the microsoft store, as the latter only installs the Dropbox Mobile app)

Firefox

using Edge, d/l and install firefox

login for firefox sync, if desired

options->general->startup->restore previous session options->general->startup->firefox is not your default browser->make default

options->search->default search engine, uncheck provide search suggestions in address bar results options->search->one-click search engines, deselect alternatives options->search->search bar->add search bar in toolbar

options->home->firefox home content, unselect all except web search

options->general->cntl+tab cycles through tabs in recently used order

options->general->check your selling as you type

options->privacy->browser privacy->tracking protection->always options->privacy->browser privacy->do not track->always

options->privacy->prevent accessibility services from accesing your browser

options->privacy->permissions->for each, use Settings to 'Block new requests asking to access..'

options->privacy->permissions->prevent accessibility services from accesing your browser

options->privacy->firefox data collection and use->uncheck all

Advanced->General Under "Accessibility", uncheck "Search for text when I start typing". Under "Browsing", uncheck "Check my spelling as I type".

go to 'add-ons', and install:

Open a File Explorer window. In the lefthand column, near the bottom, open 'Local Disk (C:)'. Go to Users \ YOUR_USERNAME \ AppData? \ Roaming \ Microsoft \ Windows \ Start Menu \ Programs \ Startup . Create a shortcut to Firefox there. Also, with Firefox open, right-click or long-press on the Firefox icon in the task bar and select 'Pin to taskbar'. Move the Firefox icon to the leftmost position in the Task Bar.

Now Firefox will start upon boot, and pressing Windows-1 (that is, holding down the 'Windows' key and then also pressing the '1' key) will focus the Firefox window.

Xodo PDF reader/annotator

install xodo.

OneNote? is already installed. I think Xodo and OneNote? are probably the apps to use for notetaking in class or in meetings.

(i like xodo, but other ppl also like drawboard and foxit and sumatrapdf. Drawboard costs $10, i tried foxit and sumatrapdf and adobe reader touch and i prefer xodo over them. But the Microsoft Edge web browser is pretty good too (i don't think it has an 'open file' command but you can find a file in the File Explorer and double-click on it and select to open it in Edge; and Edge is more convenient for reading PDFs directly from the web without saving them locally) [1]. ppl online also like onenote and edge)

Chocolatey package manager

As administrator, install https://chocolatey.org/

Install WSL and Ubuntu

home->search->turn windows features on or off->windows subsystem for linux->on then "restart now"

microsoft store->search for ubuntu and install, then pin to taskbar and launch. It says "Installing, this may take a few minutes" and indeed it does -- one online source said it took 4 minutes for them, another said "a healthy coffee break". I waited an hour and nothing had happened, but then i pressed enter and in fact it was already complete and was just waiting for me to press enter (maybe because i had accidentally selected some text in the terminal? i'm not sure -- in any case, try pressing 'enter' every 5 or 10 minutes or so)


Installation (GNU/linux stuff)

Do the following in a WSL terminal. Note: In a windows terminal, copy is enter, paste is right click. Sometimes if you select text the terminal freezes and stops updating and you have to press enter before you see further changes. You can usually copy/paste between WSL terminals and Windows programs; however if emacs is running on a WSL terminal then you can't copy/paste between it and anything else; however if emacs is running in a Vcxsrv X window (see below), then you can copy/paste between it and everything else.

sudo apt-get update sudo apt-get install aptitude sudo aptitude install ubuntu-desktop sudo aptitude install emacs qiv ssh gnupg ack-grep xkbset screen tmux pwgen atop iotop acpidump whois powertop htop vim git pymacs python-mode perl-doc xournal gimp xpdf mutt-patched urlview postfix offlineimap mairix vlc vlc-nox youtube-dl ffmpeg traceroute w3m

  1. this takes forever: sudo aptitude install texlive-full
  2. some stuff that i use but that many people won't need: sudo aptitude install ipython3 python3-scipy octave python3-matplotlib python3-setuptools python3-mode graphviz python3-virtualenv python3-decorator git ack-grep atop gnupg iptraf python3-pip python python3-dev gcc g++ libatlas-dev gfortran liblapack-dev python3-pandas cython3 python3-requests python3-sklearn python3-numpy gcc python3 gnupg python3-imaging python3-rpy2 python3-prettytable python-statsmodels pymacs python-mode perl-doc

sudo aptitude install postfix

in the prompts that come up, leave the defaults, except for:

ln -s /mnt/c/Users/YOUR_USERNAME/Dropbox ~/

mv ~/.bashrc ~/.bashrc-orig cp -ra ~/Dropbox/skel/home/.* ~/. cp -ra ~/Dropbox/skel/home/* ~/.

cp -ra ~/Dropbox/skel/etc/postfix/* /etc/postfix/

cp -ra ~/Dropbox/skel/etc/sudoers.d/* /etc/sudoers.d

use vi to create and edit ~/.bashrc-local and place the following into it:

export BROWSER=/home/YOUR-USERNAME/bin/winbrowser.sh echo -ne "\033]0.wsl terminal \007"

mkdir -p Mail/bsgmail

offlineimap -o 1

encrypt and copy .offlineimap from another computer encrypt and copy /etc/postfix/passwd* from another computer

contents of my ~/Dropbox/skel/etc/sudoers.d/daemons:

%sudo ALL=NOPASSWD: /etc/init.d/postfix

contents of my ~/Dropbox/skel/home:

.bashrc .emacs.d .exrc .muttrc .muttrc.d .spaceemacs.d bin

contents of my ~/Dropbox/skel/home/bin: emacsserver muttrunner_runner myemacsclient_graphical myemacsclientm startcron winbrowser.sh winmuttrun muttrunner myemacsclient myemacsclientcmd oi startpostfix winemacsserver

contents of my ~/Dropbox/skel/home/bin/winmuttrun:

  1. !/bin/sh echo -ne "\033]0;mutt\007" export BROWSER=w3m ~/bin/muttrunner

contents of my ~/Dropbox/skel/home/bin/winemacsserver:

  1. !/bin/sh echo -ne "\033]0;emacs\007" /mnt/c/Program\ Files/VcXsrv?/xlaunch.exe -run /mnt/c/Users/YOUR_USERNAME/bin/vcxsrv_xlaunch_config export DISPLAY=:0 setxkbmap -model pc104 -layout us -variant colemak emacs -f server-start

Back in Windows (more WSL stuff)

Open cmd.exe as Administrator (do this by searching for 'cmd' and then right-clicking on the result 'Command Prompt' and then selecting 'Run as administrator'. Run 'choco install vcxsrv'.

Run XLaunch (it should be in the Start Menu). A window pops up asking you to 'Select display settings'. Leave it on Multiple windows (the default), and click Next. The it asks you to 'Select how to start clients'. Leave it on 'Start no client', and click Next. Then it asks you about 'Extra settings', leave it on the defaults, and click Next. Now it says 'Configuration complete' but instead of pressing Next, press 'Save configuration'. Save it as C:\Users\bshanks\bin\vcxsrv_xlaunch_config (create a new folder 'bin' inside Users\bshanks).

Note: whenever Windows Defender asks if you want to allow vcxsrv through the firewall, cancel/deny!

Open a File Explorer window. In the lefthand column, near the bottom, open 'Local Disk (C:)'. Go to Users \ YOUR_USERNAME \ AppData? \ Roaming \ Microsoft \ Windows \ Start Menu \ Programs \ Startup .

(note: AppData? is 'hidden' and will not show unless you checked 'Hidden items' in the View tab of File Explorer, as noted earlier)

In this folder, create 5 shortcuts to cmd.exe. Rename them:

For each of them in turn, right-click or long-press and select Properties. In the Shortcut tab, change the respective Targets to:

(for example, in the 'wslterm' shortcut, the Target field should be '%windir%\system32\cmd.exe /c wsl')

Find the xlaunch.exe executable file and right-click and go to Properties. Select the "compatibility" tab. Click on 'Change High DPI settings". In the section at the bottom named 'High DPI scaling override", check the checkbox "Override high DPI scaling behavior" and in the pulldown menu directly beneath it labeled 'Scaling performed by:', select "Application" if it is not already selected.

Reboot to make sure everything works. Upon startup, this should:

Now right-click or long-press on the icons corresponding to emacs (the X/vcsrv Emacs window), wslterm, and mutt in the taskbar and select 'Pin to taskbar'. Then move them into the 2nd, 3rd, and 5th positions, respectively. Now you can use the Win-2, Win-3, and Win-5 keyboard shortcuts to focus emacs, wsl terminal, and mutt respectively.

Note: emacs in a vcxsrv seems to have LESS keypress latency than in a WSL terminal! sweet!

Note: clicking in a emacs text terminal window (NOT a Vcxsrv X window) sends a weird escape sequence to emacs (something like "esc [ < 0 ; 2 9 ; 1 7 M-" where the digits are replaced by other digits indicating the cursor location). I don't know how to stop this but it doesn't matter b/c you can just use the emacs in the vcxsrv window instead. E.g. if you start to compose an email in mutt, a text-mode emacs will appear in the mutt commandline window, but you can just switch focus to the emacs vcxsrv window, change the buffer in that window to the mutt draft buffer (it is already in the bufferlist because the text-mode emacs in the muttrc window is a client of the emacsserver in the vcxsrv window), edit it, and close it (closing it in the vcxsrv window closes it in the mutt terminal window too, allowing mutt to proceed with the send dialog)

note: in ~/bin/winemacsserver (win emacs server), i have the line 'setxkbmap -model pc104 -layout us -variant colemak' to set the keyboard variant to Colemak. If you want to see a list of which others are available, see look in the file bin/VcXsrv?/xkbdata/rules/base.lst

---

tips

use tablet mode [2]

note however that u have to disable tablet mode to get most virtual desktop functionality to work

alt-tab, alt-esc, and win-tab to switch between programs

cntl-win-left and cntl-win-right to switch between virtual desktops (after creating a second virtual desktop by win-taw then clicking the New Desktop + (in the upper left?)

useful keyboard shortcuts:

https://github.com/Microsoft/WSL/issues/1797

once after rebooting one terminal said that no WSL distribution was installedn, and when i tried to start Ubuntu i got the error:

"WslRegisterDistribution? failed with error: 0x800703fa Error: 0x800703fa Illegal operation attempted on a registry key that has been marked for deletion."

the solution was just to reboot again.

---

someday mb try

stop windows updates from restarting by putting the Reboot subtask into a subfolder: http://www.tomshardware.com/faq/id-3680352/windows-updates-restarting.html

get it working so that when opening HTML email in Mutt, which saves it in /tmp, it actually gets passed to the Windows browser. This may be helpful after the next Windows minor version release: https://stackoverflow.com/questions/46877300/how-to-get-path-to-linux-installation-from-within-wsl-in-fall-creators-update

https://support.microsoft.com/en-us/surfacerecoveryimage

try conemu, and configure to 'copy on select' and 'paste with middle click'.

in the future:

misc bug:

this didn't happen to me but for future reference, iif you encounter this bug:

" [–]Fulk0 2 points 1 month ago

I was trying to do this yesterday and gave up. I downloaded latest stable build and tried to compile it. Everything good but it said I didn't have an X software, so I downloaded XFCE4 and x11libdev. After doing this I compiled and when Emacs opens the buffer is just the background. If I pass the mouse on top I can see the links of the main screen are there but I can't see them. Thought I messed up the WSL so I installed a fresh one again. Tried to compile again, installing all dependencies and just had the same experience. If I download Emacs 24 from apt it works just fine. Would it be too much asking if you could tell me what process do you follow to get yours working?

[–]npostavs 2 points 1 month ago

    Vcxsrvr

This sounds like #25474 - Buffer content invisible over remote display (SecureCRT? + VcXsrv?) when double buffering enabled, try disabling double buffering.

    permalinkembedsaveparentreportgive goldreply

[–]Fulk0 1 point 1 month ago

Yup. Seems exactly like this. Sorry but I'm kinda new, could you please tell me where should I put this function? In my dotfile, init file...? I'm using spacemacs

    permalinkembedsaveparentreportgive goldreply

[–]npostavs 1 point 1 month ago

I think you need (add-to-list 'default-frame-alist '(inhibit-double-buffering . t)) in your init file.

I've never used spacemacs though, so I'm not sure exactly how it affects startup config files.

    permalinkembedsaveparentreportgive goldreply"

-- [3]

to have emacs links open in your Windows web browser (i didn't set this up)

for browsing links (note the first comment):

https://adam.kruszewski.name/2017/09/emacs-in-wsl-and-opening-links/

(defun my--browse-url (url &optional _new-window) ;; new-window ignored "Opens link via powershell.exe" (interactive (browse-url-interactive-arg "URL: ")) (let ((quotedUrl (format "start '%s'" url))) (apply 'call-process "/mnt/c/Windows/System32/WindowsPowerShell?/v1.0/powershell.exe" nil 0 nil (list "-Command" quotedUrl))))

swipe left from the right side of the screen to bring up the activity center, which also has some settings that you can quickly change (eg brightness, rotation lock)

---