Skip to content

Instantly share code, notes, and snippets.

@uogbuji
Forked from cassiozen/pixelbook-dev-setup.md
Last active January 4, 2026 00:29
Show Gist options
  • Select an option

  • Save uogbuji/714d06ad3a9e081b69337107a0beff18 to your computer and use it in GitHub Desktop.

Select an option

Save uogbuji/714d06ad3a9e081b69337107a0beff18 to your computer and use it in GitHub Desktop.

Revisions

  1. uogbuji revised this gist Jun 17, 2023. 1 changed file with 27 additions and 3 deletions.
    30 changes: 27 additions & 3 deletions pixelbook-dev-setup.md
    Original file line number Diff line number Diff line change
    @@ -99,15 +99,39 @@ Pin: release a=unstable
    Pin-Priority: 600
    ```

    Now, for example, you can install Python 3.11 as follows:
    Now you can install Python 3.11 as follows:

    ```shell
    sudo apt install -t sid python3.11
    sudo apt -t sid install python3.11
    ```

    Recent versions of many other packages should now be available.

    ### Set up virtualenv support

    Python
    Prepare:

    ```shell
    mkdir -p $HOME/.local/venv
    ```

    Make a virtualend called `main`. Use a different name, if you prefer:

    ```shell
    /usr/bin/python3.11 -m venv $HOME/.local/venv/main
    ```

    You only need to specify the full path to Python when creating the venv, as above.

    Activate:

    ```
    source $HOME/.local/venv/main/bin/activate
    pip install --upgrade pip #Needed from time to time, to make sure pip itself is up to date
    pip install wheel #One time per venv. Allows pip to install pre-compiled os-specific versions. Also you might get odd errors if you omit this.
    ```

    In future you only need the first line above to activate the venv.

    ## Generate new SSH Key

  2. uogbuji revised this gist Jun 15, 2023. 1 changed file with 47 additions and 7 deletions.
    54 changes: 47 additions & 7 deletions pixelbook-dev-setup.md
    Original file line number Diff line number Diff line change
    @@ -32,10 +32,10 @@ u2f_flags u2f,user_keys
    [Official instructions](https://support.google.com/pixelbook/answer/9031351?hl=en)

    1. Select the time in the bottom right to open your status area.
    1. Select Settings
    1. Under "Linux (Beta)," select Turn On.
    1. Follow the steps on the screen. Setup can take 10 minutes or more.
    1. A terminal window opens. You can run Linux commands, install more tools using the APT package manager, and customize your shell.
    1. Select Settings, then Advanced
    1. Under "Linux development environment" select Turn On.
    1. Follow the steps on the screen. Setup can take 5 minutes or more.
    1. A terminal window opens. You can run Linux commands, install more tools using the APT package manager (see below), and customize your shell.

    ## Initial update of container

    @@ -49,15 +49,21 @@ Note: some guides out there suggest setting the root password, but **never** do
    sudo passwd
    ```

    ## General kit
    ## Dev & general kit

    Since you'll probably be doing some sort of software building or development, you should use install relevant packages

    ```sh
    sudo apt-get install git build-essential libssl-dev libffi-dev
    ```

    If you're used to having certain system command line tools handy, you might need to install them on debian. I do:

    ```shell
    sudo apt install mtr dnsutils
    sudo apt install mtr dnsutils vim nano
    ```

    These days I use mtr rather than ping & traceroute, but if you want to go old school you can do:
    Actually I don't usually bother with nano, as I just deal with vim, but if you like that text editor better, it will be installed from the above. These days I use mtr rather than ping & traceroute, but if you want to go old school you can do:

    ```shell
    sudo apt install dnsutils traceroute iputils-ping
    @@ -69,6 +75,40 @@ You might also want some other useful tools. I do:
    sudo apt install zip whois tree xclip
    ```

    ## Install latest Python

    The Debian install on ChromeOS/Linux is "stable", only, and generally has only older Python versions available. We need to add sid for optional installs of more recent software. Step 1 is to add the repository. Edit (using vi or nano), e.g. `sudo vi /etc/apt/sources.list` and append the following as the new last line:

    ```
    deb http://http.us.debian.org/debian sid main non-free contrib
    ```

    Now the next step is important before you do anything more with apt, or you can make quite a mess. We only want to use sid packages if we exlicitly ask for them create a new file, e.g. `sudo vi /etc/apt/preferences` with the following contents:

    ```
    Package: *
    Pin: release a=stable
    Pin-Priority: 700
    Package: *
    Pin: release a=testing
    Pin-Priority: 650
    Package: *
    Pin: release a=unstable
    Pin-Priority: 600
    ```

    Now, for example, you can install Python 3.11 as follows:

    ```shell
    sudo apt install -t sid python3.11
    ```

    ### Set up virtualenv support

    Python

    ## Generate new SSH Key

    I [prefer to use an Ed25519 key](https://bagja.net/blog/upgrade-ssh-key-to-ed25519.html).
  3. uogbuji revised this gist Jun 10, 2023. 1 changed file with 10 additions and 8 deletions.
    18 changes: 10 additions & 8 deletions pixelbook-dev-setup.md
    Original file line number Diff line number Diff line change
    @@ -1,6 +1,6 @@
    # Pixelbook or Pixel Slate Setup

    *Partly updated December 2021*
    *Partly updated June 2023*

    General caution: Chrome OS is a secure OS by design, but this has at least one key consequence. If you change your Google account password, you will still be required to enter the old password the next time you access each Chrome OS device. Devices are encrypted with that password, so the OS needs to decrypt using the old password then re-encrypt using the new one. If you forget your old password you will lose access to your Chrome OS device data. As always, make sure you keep backups up to date.

    @@ -29,11 +29,13 @@ u2f_flags u2f,user_keys

    ## Enable Linux Apps

    1. Open drawer in bottom right and click gear icon
    1. Use the search box or scroll down to find **Linux Development**. Turn this on.
    1. After the install runs, you should have an application in ChromeOS called `Terminal`
    [Official instructions](https://support.google.com/pixelbook/answer/9031351?hl=en)

    **Update: the situation described in this paragraph appears to stem from a variety of known Chrome OS bugs, so might well be alleviated in future** Warning about Linux apps: it seems when the Pixelbook goes into certain modes of deep sleep, all crostini apps are terminated. I've found that this happens the most if you leave it open & not plugged in. If it's plugged in & open, the crostini apps seem to persist. Be aware of this in terms of work in progress & long-running processes (including cron).
    1. Select the time in the bottom right to open your status area.
    1. Select Settings
    1. Under "Linux (Beta)," select Turn On.
    1. Follow the steps on the screen. Setup can take 10 minutes or more.
    1. A terminal window opens. You can run Linux commands, install more tools using the APT package manager, and customize your shell.

    ## Initial update of container

    @@ -51,19 +53,19 @@ sudo passwd

    If you're used to having certain system command line tools handy, you might need to install them on debian. I do:

    ```
    ```shell
    sudo apt install mtr dnsutils
    ```

    These days I use mtr rather than ping & traceroute, but if you want to go old school you can do:

    ```
    ```shell
    sudo apt install dnsutils traceroute iputils-ping
    ```

    You might also want some other useful tools. I do:

    ```
    ```shell
    sudo apt install zip whois tree xclip
    ```

  4. uogbuji revised this gist Dec 5, 2021. 1 changed file with 4 additions and 15 deletions.
    19 changes: 4 additions & 15 deletions pixelbook-dev-setup.md
    Original file line number Diff line number Diff line change
    @@ -1,23 +1,12 @@
    # Pixelbook or Pixel Slate Setup

    *Updated August 2020*
    *Partly updated December 2021*

    General caution: Chrome OS is a secure OS by design, but this has at least one key consequence. If you change your Google account password, you will still be required to enter the old password he next time you access each Chrome OS device. Devices are encrypted with that password, so the OS needs to decrypt using the old password then re-encrypt using the new one. If you forget your old password you will lose access to your Chrome OS device data. As always, make sure you keep backups up to date.

    ## Change your channel

    Almost all the features mentioned in this document now work on stable challen, ut if you decide to use beta or dev to get the latest you can do the following:

    1. chrome://help in a browser window
    1. Click Detailed Build Information
    1. Change Channel
    1. Select Beta (Or Dev, if you're feeling adventurous. This [guide to choosing](https://www.techrepublic.com/article/which-chrome-os-channel-is-right-for-you/) is useful).
    1. Wait for Chromebook to download an update then show icon in bottom left
    1. Restart when update is ready
    General caution: Chrome OS is a secure OS by design, but this has at least one key consequence. If you change your Google account password, you will still be required to enter the old password the next time you access each Chrome OS device. Devices are encrypted with that password, so the OS needs to decrypt using the old password then re-encrypt using the new one. If you forget your old password you will lose access to your Chrome OS device data. As always, make sure you keep backups up to date.

    ## Fast User Switching

    If you have multiple accounts (Say, work and play), you can quickly sitch between them without logging out:
    If you have multiple Chrome OS accounts (Say, work and play), you can quickly sitch between them without logging out:

    1. Open the status area (the bottom-right menu)
    1. Click your account photo.
    @@ -41,7 +30,7 @@ u2f_flags u2f,user_keys
    ## Enable Linux Apps

    1. Open drawer in bottom right and click gear icon
    1. Scroll down to find **Linux Apps** or **Linux (Beta)** and select **TURN ON**
    1. Use the search box or scroll down to find **Linux Development**. Turn this on.
    1. After the install runs, you should have an application in ChromeOS called `Terminal`

    **Update: the situation described in this paragraph appears to stem from a variety of known Chrome OS bugs, so might well be alleviated in future** Warning about Linux apps: it seems when the Pixelbook goes into certain modes of deep sleep, all crostini apps are terminated. I've found that this happens the most if you leave it open & not plugged in. If it's plugged in & open, the crostini apps seem to persist. Be aware of this in terms of work in progress & long-running processes (including cron).
  5. uogbuji revised this gist Aug 13, 2020. 1 changed file with 5 additions and 5 deletions.
    10 changes: 5 additions & 5 deletions pixelbook-dev-setup.md
    Original file line number Diff line number Diff line change
    @@ -1,12 +1,12 @@
    # Pixelbook or Pixel Slate Setup

    *Updated June 2019 for Pixel Slate*
    *Updated August 2020*

    General caution: Chrome OS is a secure OS by design, but this has at least one key consequence. If you change your Google account password, you will still be required to enter the old password he next time you access each Chrome OS device. Devices are encrypted with that password, so the OS needs to decrypt using the old password then re-encrypt using the new one. If you forget your old password you will lose access to your Chrome OS device data. As always, make sure you keep backups up to date.

    ## Change your channel

    Some of the features mentioned in this document only work on the beta or Dev channel. To change your channel:
    Almost all the features mentioned in this document now work on stable challen, ut if you decide to use beta or dev to get the latest you can do the following:

    1. chrome://help in a browser window
    1. Click Detailed Build Information
    @@ -23,14 +23,14 @@ If you have multiple accounts (Say, work and play), you can quickly sitch betwee
    1. Click your account photo.
    1. Click Sign in another user.
    1. You'll see a reminder to use the feature only with people you trust. Click OK.
    1. Pick a person, then enter their password. You can add up to 7 users.
    1. Pick a person, then enter their password. You can add up to 7 users. Warning: sme sorts of Google accounts can only be used as the primary (first set up) account on a chromebook.

    You can then quick-switch between users with CTRL+ALT+, & CTRL+ALT+.


    ## Enable Power Button as 2FA

    Pixelbook's power button has a built-in 2fa/2sv key (think YubiKey), but it's disabled by default. If you use Two-Factor authentication on GitHub, Gmail etc, you can turn it on by entering this command on the Crosh shell (Ctrl+Alt+T):
    Pixelbook's power button (but apparently not the Slate's) has a built-in 2fa/2sv key (think YubiKey), but it's disabled by default. If you use Two-Factor authentication on GitHub, Gmail etc, you can turn it on by entering this command on the Crosh shell (Ctrl+Alt+T):

    ```
    u2f_flags u2f,user_keys
    @@ -66,7 +66,7 @@ If you're used to having certain system command line tools handy, you might need
    sudo apt install mtr dnsutils
    ```

    These days I use mtr rather than ping & traceroute, but if you wan to go old school you can do:
    These days I use mtr rather than ping & traceroute, but if you want to go old school you can do:

    ```
    sudo apt install dnsutils traceroute iputils-ping
  6. uogbuji revised this gist Mar 22, 2020. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion pixelbook-dev-setup.md
    Original file line number Diff line number Diff line change
    @@ -33,7 +33,7 @@ You can then quick-switch between users with CTRL+ALT+, & CTRL+ALT+.
    Pixelbook's power button has a built-in 2fa/2sv key (think YubiKey), but it's disabled by default. If you use Two-Factor authentication on GitHub, Gmail etc, you can turn it on by entering this command on the Crosh shell (Ctrl+Alt+T):

    ```
    u2f_flags u2f
    u2f_flags u2f,user_keys
    ```

    # Linux Setup (AKA Crostini)
  7. uogbuji revised this gist Aug 17, 2019. No changes.
  8. uogbuji revised this gist Jul 3, 2019. 1 changed file with 13 additions and 1 deletion.
    14 changes: 13 additions & 1 deletion pixelbook-dev-setup.md
    Original file line number Diff line number Diff line change
    @@ -75,7 +75,7 @@ sudo apt install dnsutils traceroute iputils-ping
    You might also want some other useful tools. I do:

    ```
    sudo apt install zip whois tree
    sudo apt install zip whois tree xclip
    ```

    ## Generate new SSH Key
    @@ -109,8 +109,14 @@ ssh-add ~/.ssh/id_ed25519

    But there are tools I've used in Linux to automatically pop up a prompt if a key hasn't been registered with the agent.

    ## Python environment

    I then follow [these Python dev setup steps for Linux](https://gist.github.com/uogbuji/435d86684894997dc3d8d46da7da1ea9)

    ## Backup

    Warning: Until [this bug](https://bugs.chromium.org/p/chromium/issues/detail?id=858815#c18) is addressed Crostini containers only grow in disk space; they never shrink, even if you delete files within them.

    The main approach to backup is to export the entire container:

    * Enable the "Crostini Backup" Flag – chrome://flags/#crostini-backup, then choose Restart
    @@ -242,6 +248,12 @@ I was using TextMate on Mac and Atom in my Linux Mint installs. I'm not much of

    Download via chrome and click through to the download location in Files app. Right click then "Install in Linux"

    If you use VSCode for Python dev and want to use VSCode plugins you'll want to do:

    ```
    sudo apt install python3-pip
    ```

    # Supplementary info

    ## Entering non-ASCII characters
  9. uogbuji revised this gist Jun 25, 2019. 1 changed file with 20 additions and 9 deletions.
    29 changes: 20 additions & 9 deletions pixelbook-dev-setup.md
    Original file line number Diff line number Diff line change
    @@ -49,7 +49,7 @@ u2f_flags u2f
    ## Initial update of container

    ```sh
    sudo apt-get update && sudo apt-get dist-upgrade
    sudo apt update && sudo apt dist-upgrade
    ```

    Note: some guides out there suggest setting the root password, but **never** do that unless you absolutely know what you're doing. If you need to use a feature that requires a password for root, set it on the Crostini default user instead:
    @@ -101,7 +101,7 @@ if [[ ! "$SSH_AUTH_SOCK" ]]; then
    fi
    ```

    I prefer to just after each reboot enter:
    I prefer to just after each restart enter:

    ```sh
    ssh-add ~/.ssh/id_ed25519
    @@ -122,7 +122,9 @@ To restore:

    ## File Sharing

    Now automatic between Chrome OS and Linux. You'll find Linux files/directories in the Files app, under "Linux Files". In order to access Chrome OS files you must make the desired folder or removable device available to Linux by right clicking in the Files app and selecting the option.
    Now automatic between Chrome OS and Linux. You'll find Linux files/directories in the Files app, under "Linux Files".

    In order to access Chrome OS files you must make the desired folder or removable device available to Linux by right clicking in the Files app and selecting the option. **Note: It seems you might have to reboot the device before this "Share with Linux" option appears.**

    ### Google Drive

    @@ -143,11 +145,15 @@ Instead just go to https://[your-channel].slack.com/ssb/signin_redirect/fallback

    Unfortunately Dropbox support for ChromeOS is poor. Main recommendation seems to be the third-party [File System for Dropbox](https://chrome.google.com/webstore/detail/file-system-for-dropbox/hlffpaajmfllggclnjppbblobdhokjhe?hl=en) but it doesn't support offline access. The official Dropbox Linux client ended support for all file systems except unencrypted ext4, which rules it out for crostini. Looking into [rclone](https://www.reddit.com/r/Crostini/comments/9g9d59/dropbox_is_dropping_support_for_all_linux/) and just using the Web client for now.

    ## Skype

    I tried the Skype for Linux DEB, but the microphone didn't work on Pixel Slate, and I've heard screen sharing might not work. I might try the Android app, but for now I'm just switching as much as I can to Google Meet.

    ## Applications

    Crostini (the Linux container on Chrome OS) understands Debian installation packages (`.deb`) - You can just download any installer and double-click it to install.

    And, being debian you also have `apt-get`, though in this case you might need to set up the installed apps to be launched by icon by placing a desktop file in `/usr/local/share/applications/`. [Details here](https://chromium.googlesource.com/chromiumos/platform2/+/master/vm_tools/garcon/#installed-applications).
    And, being debian you also have `apt`, though in this case you might need to set up the installed apps to be launched by icon by placing a desktop file in `/usr/local/share/applications/`. [Details here](https://chromium.googlesource.com/chromiumos/platform2/+/master/vm_tools/garcon/#installed-applications).

    ```sh
    sudo mkdir -p /usr/local/share/applications
    @@ -195,8 +201,6 @@ Add to `.bashrc` the Extraterm command for shell integration, e.g. add the line:

    Note: [You would think](http://mywiki.wooledge.org/DotFiles) this should be added to `.profile` but for some reason Extraterm under Crostini does not run a login shell (i.e. running `shopt login_shell` yields `off`).



    #### Tilix

    ```sh
    @@ -217,7 +221,7 @@ fi
    #### Gnome Terminal

    ```sh
    sudo apt-get install gnome-terminal
    sudo apt install gnome-terminal
    ```

    Also:
    @@ -252,6 +256,14 @@ Tip from mannkeithc on Reddit:

    *Flip your Pixelbook into tablet mode, and use the onscreen virtual keyboard. You can hold down a character key and then slide over to the respective international character you want—very similar to an iPad or Mac OS. Bring this same virtual keyboard onto the screen when you are in clamshell/laptop mode by first selecting "Handwriting input". This brings up a virtual input area. Select the keyboard symbol towards LH top of this window to get the virtual keyboard. You can then use the touch screen as in tablet mode to select the international characters you want.*

    ## Clipboard history

    On MacOS and Linux I've become used to the convenience of clipboard managers which e.g. allow you to manage a history of cut & paste, which can be very handy especially when editing code. It seems [Clipboard History Pro](https://chrome.google.com/webstore/detail/clipboard-history-pro/ajiejmhbejpdgkkigpddefnjmgcbkenk?hl=en) is the favorite choice of ChromeOS power users, but it's not yet entirely growing on mw. The keyboard shortcut doesn't seem to work and some of the other config options seem flaky. One note: it only stores the clipboard in your local browser storage, unless you explicitly upload an item to cloud storage (a useful feature), but I still recommend you never copy sensitive data such as passwords with any such tool.

    ## Using a pen

    Pixelbook and Pixel slate are of course touch and pen devices, but you probably don't need to buy Google's $100 pen. You can find the Lenovo Active Pen 1 for about $20 and I was able to buy the Lenovo Active Pen 2 for just over $30. Many reviews indicate that these work as well for all but the most advanced users.

    ## Launch a Chrome browser tab

    You can use the standard Python mechanism
    @@ -269,7 +281,7 @@ If you want to change the browser used, set the `BROWSER` environment variable.
    Some fonts can be installed using apt, for example I use Inconsolata

    ```sh
    sudo apt-get install fonts-inconsolata -y
    sudo apt install fonts-inconsolata -y
    sudo fc-cache -fv
    ```

    @@ -323,7 +335,6 @@ Icon=code
    ```


    Specifically for VSCode, I would also suggest adding these to your user settings

    ```
  10. uogbuji revised this gist Jun 19, 2019. 1 changed file with 11 additions and 11 deletions.
    22 changes: 11 additions & 11 deletions pixelbook-dev-setup.md
    Original file line number Diff line number Diff line change
    @@ -44,15 +44,15 @@ u2f_flags u2f
    1. Scroll down to find **Linux Apps** or **Linux (Beta)** and select **TURN ON**
    1. After the install runs, you should have an application in ChromeOS called `Terminal`

    Warning about Linux apps: it seems when the Pixelbook goes into certain modes of deep sleep, all crostini apps are terminated. I've found that this happens the most if you leave it open & not plugged in. If it's plugged in & open, the crostini apps seem to persist. Be aware of this in terms of work in progress & long-running processes (including cron).
    **Update: the situation described in this paragraph appears to stem from a variety of known Chrome OS bugs, so might well be alleviated in future** Warning about Linux apps: it seems when the Pixelbook goes into certain modes of deep sleep, all crostini apps are terminated. I've found that this happens the most if you leave it open & not plugged in. If it's plugged in & open, the crostini apps seem to persist. Be aware of this in terms of work in progress & long-running processes (including cron).

    ## Initial update of container

    ```sh
    sudo apt-get update && sudo apt-get dist-upgrade
    ```

    Note: some guides out there suggest setting the root password, but you should **never** do that. If you need to use a feature that requires a password for root, set it on the Crostini default user instead:
    Note: some guides out there suggest setting the root password, but **never** do that unless you absolutely know what you're doing. If you need to use a feature that requires a password for root, set it on the Crostini default user instead:

    ```sh
    sudo passwd
    @@ -165,32 +165,32 @@ So many choices, and so manby combos of distinct and/or overlapping and/or compl
    mkdir ~/Downloads
    cd ~/Downloads
    #Update to latest release
    wget https://github.com/sedwards2009/extraterm/releases/download/v0.41.0/extraterm-0.41.0-linux-x64.zip
    wget https://github.com/sedwards2009/extraterm/releases/download/v0.41.0/extraterm-commands-0.41.0.zip
    wget https://github.com/sedwards2009/extraterm/releases/download/v0.42.2/extraterm-0.42.2-linux-x64.zip
    wget https://github.com/sedwards2009/extraterm/releases/download/v0.42.2/extraterm-commands-0.42.2.zip
    cd /opt
    sudo unzip ~/Downloads/extraterm-0.41.0-linux-x64.zip
    sudo unzip ~/Downloads/extraterm-commands-0.41.0.zip
    sudo ln -s /opt/extraterm-0.41.0-linux-x64/extraterm /usr/local/bin/
    sudo unzip ~/Downloads/extraterm-0.42.2-linux-x64.zip
    sudo unzip ~/Downloads/extraterm-commands-0.42.2.zip
    sudo ln -s /opt/extraterm-0.42.2-linux-x64/extraterm /usr/local/bin/
    sudo apt install libnss3
    ```

    Put `extraterm.desktop` in `/usr/share/applications/` to get the launcher in Chrome OS:
    Edit (`sudo vi /usr/share/applications/extraterm.desktop`) to get the launcher in Chrome OS. Contents:

    ```
    [Desktop Entry]
    Name=Extraterm
    Keywords=shell;prompt;command;commandline;cmd;
    Version=0.41.0
    Version=0.42.2
    Comment=The swiss army chainsaw of terminal emulators
    Exec=/usr/local/bin/extraterm
    Icon=/opt/extraterm-0.41.0-linux-x64/resources/app/extraterm/resources/logo/extraterm_small_logo_256x256.png
    Icon=/opt/extraterm-0.42.2-linux-x64/resources/app/extraterm/resources/logo/extraterm_small_logo_256x256.png
    Type=Application
    ```

    Add to `.bashrc` the Extraterm command for shell integration, e.g. add the line:

    ```sh
    . /opt/extraterm-commands-0.41.0/setup_extraterm_bash.sh
    . /opt/extraterm-commands-0.42.2/setup_extraterm_bash.sh
    ```

    Note: [You would think](http://mywiki.wooledge.org/DotFiles) this should be added to `.profile` but for some reason Extraterm under Crostini does not run a login shell (i.e. running `shopt login_shell` yields `off`).
  11. uogbuji revised this gist Jun 16, 2019. 1 changed file with 3 additions and 1 deletion.
    4 changes: 3 additions & 1 deletion pixelbook-dev-setup.md
    Original file line number Diff line number Diff line change
    @@ -2,6 +2,8 @@

    *Updated June 2019 for Pixel Slate*

    General caution: Chrome OS is a secure OS by design, but this has at least one key consequence. If you change your Google account password, you will still be required to enter the old password he next time you access each Chrome OS device. Devices are encrypted with that password, so the OS needs to decrypt using the old password then re-encrypt using the new one. If you forget your old password you will lose access to your Chrome OS device data. As always, make sure you keep backups up to date.

    ## Change your channel

    Some of the features mentioned in this document only work on the beta or Dev channel. To change your channel:
    @@ -120,7 +122,7 @@ To restore:

    ## File Sharing

    Now automatic between Chrome OS and Linux. You'll find Linux files/directories in the Files app, under "Linux Files".
    Now automatic between Chrome OS and Linux. You'll find Linux files/directories in the Files app, under "Linux Files". In order to access Chrome OS files you must make the desired folder or removable device available to Linux by right clicking in the Files app and selecting the option.

    ### Google Drive

  12. uogbuji revised this gist Jun 8, 2019. 1 changed file with 8 additions and 8 deletions.
    16 changes: 8 additions & 8 deletions pixelbook-dev-setup.md
    Original file line number Diff line number Diff line change
    @@ -1,4 +1,6 @@
    # Pixelbook Setup
    # Pixelbook or Pixel Slate Setup

    *Updated June 2019 for Pixel Slate*

    ## Change your channel

    @@ -7,7 +9,7 @@ Some of the features mentioned in this document only work on the beta or Dev cha
    1. chrome://help in a browser window
    1. Click Detailed Build Information
    1. Change Channel
    1. Select Beta (Or Dev, if you're feeling adventurous)
    1. Select Beta (Or Dev, if you're feeling adventurous. This [guide to choosing](https://www.techrepublic.com/article/which-chrome-os-channel-is-right-for-you/) is useful).
    1. Wait for Chromebook to download an update then show icon in bottom left
    1. Restart when update is ready

    @@ -32,7 +34,7 @@ Pixelbook's power button has a built-in 2fa/2sv key (think YubiKey), but it's di
    u2f_flags u2f
    ```

    # Linux Setup
    # Linux Setup (AKA Crostini)

    ## Enable Linux Apps

    @@ -137,15 +139,13 @@ Instead just go to https://[your-channel].slack.com/ssb/signin_redirect/fallback

    ### Dropbox

    Unfortunately Dropbox support for ChromeOS is poor. Main recommendation seems to be the third-party [File System for Dropbox](https://chrome.google.com/webstore/detail/file-system-for-dropbox/hlffpaajmfllggclnjppbblobdhokjhe?hl=en) but it doesn't support offline access. The official Dropbox Linux client ended support for all file systems except unencrypted ext4, which rules it out for crostini. Looking into [rclone](https://www.reddit.com/r/Crostini/comments/9g9d59/dropbox_is_dropping_support_for_all_linux/).
    Unfortunately Dropbox support for ChromeOS is poor. Main recommendation seems to be the third-party [File System for Dropbox](https://chrome.google.com/webstore/detail/file-system-for-dropbox/hlffpaajmfllggclnjppbblobdhokjhe?hl=en) but it doesn't support offline access. The official Dropbox Linux client ended support for all file systems except unencrypted ext4, which rules it out for crostini. Looking into [rclone](https://www.reddit.com/r/Crostini/comments/9g9d59/dropbox_is_dropping_support_for_all_linux/) and just using the Web client for now.

    ## Applications

    Crostini (the Linux container on Chrome OS) understands Debian installation packages (`.deb`) - You can just download any installer, drag to the "Linux files" folder using the file manager and double-click it.

    And, being debian you also have `apt-get`.
    Crostini (the Linux container on Chrome OS) understands Debian installation packages (`.deb`) - You can just download any installer and double-click it to install.

    You can set up apps to be launched from icon by placing for each a desktop file in `/usr/local/share/applications/`. [Details here](https://chromium.googlesource.com/chromiumos/platform2/+/master/vm_tools/garcon/#installed-applications).
    And, being debian you also have `apt-get`, though in this case you might need to set up the installed apps to be launched by icon by placing a desktop file in `/usr/local/share/applications/`. [Details here](https://chromium.googlesource.com/chromiumos/platform2/+/master/vm_tools/garcon/#installed-applications).

    ```sh
    sudo mkdir -p /usr/local/share/applications
  13. uogbuji revised this gist May 23, 2019. 1 changed file with 22 additions and 0 deletions.
    22 changes: 22 additions & 0 deletions pixelbook-dev-setup.md
    Original file line number Diff line number Diff line change
    @@ -40,6 +40,8 @@ u2f_flags u2f
    1. Scroll down to find **Linux Apps** or **Linux (Beta)** and select **TURN ON**
    1. After the install runs, you should have an application in ChromeOS called `Terminal`

    Warning about Linux apps: it seems when the Pixelbook goes into certain modes of deep sleep, all crostini apps are terminated. I've found that this happens the most if you leave it open & not plugged in. If it's plugged in & open, the crostini apps seem to persist. Be aware of this in terms of work in progress & long-running processes (including cron).

    ## Initial update of container

    ```sh
    @@ -52,6 +54,26 @@ Note: some guides out there suggest setting the root password, but you should **
    sudo passwd
    ```

    ## General kit

    If you're used to having certain system command line tools handy, you might need to install them on debian. I do:

    ```
    sudo apt install mtr dnsutils
    ```

    These days I use mtr rather than ping & traceroute, but if you wan to go old school you can do:

    ```
    sudo apt install dnsutils traceroute iputils-ping
    ```

    You might also want some other useful tools. I do:

    ```
    sudo apt install zip whois tree
    ```

    ## Generate new SSH Key

    I [prefer to use an Ed25519 key](https://bagja.net/blog/upgrade-ssh-key-to-ed25519.html).
  14. uogbuji revised this gist May 18, 2019. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion pixelbook-dev-setup.md
    Original file line number Diff line number Diff line change
    @@ -220,7 +220,7 @@ Download via chrome and click through to the download location in Files app. Rig

    Coming from Mac OS's excellent setup for international character entry I have to say ChromeOS falls quite short. From the commonplace (SHIFT+OPTION+ - = em dash) to the less common (ALT+ e / i / SHIFT+ALT+ x = Igbo nasal i with rising tone) such keyboard shortcuts are nowhere to be found.

    Best friend is probably the Unicode entry hotkey CTRL+SHIFT+ u. When you press this you get an underlined u and you can type in a 4 digit hex Unicode value to get the character. Then you just have t remember your faborites (e.g. 2014 = em dash) or print out a chart to have handy.
    Best friend is probably the Unicode entry hotkey CTRL+SHIFT+ u. When you press this you get an underlined u and you can type in a 4 digit hex Unicode value to get the character. Then you just have to remember your faborites (e.g. 2014 = em dash) or print out a chart to have handy. [Here is a handy table](https://www.groovypost.com/howto/type-special-characters-chromebook-accents-symbols-em-dashes).

    There is the US International Keyboard (add it from the Input Methods menu near the screen bottom right), but if you mix other languages with English, you'll be annoyed e.g. that a regular apostrophe is always an accent acute.

  15. uogbuji revised this gist May 18, 2019. 1 changed file with 24 additions and 0 deletions.
    24 changes: 24 additions & 0 deletions pixelbook-dev-setup.md
    Original file line number Diff line number Diff line change
    @@ -216,6 +216,30 @@ Download via chrome and click through to the download location in Files app. Rig

    # Supplementary info

    ## Entering non-ASCII characters

    Coming from Mac OS's excellent setup for international character entry I have to say ChromeOS falls quite short. From the commonplace (SHIFT+OPTION+ - = em dash) to the less common (ALT+ e / i / SHIFT+ALT+ x = Igbo nasal i with rising tone) such keyboard shortcuts are nowhere to be found.

    Best friend is probably the Unicode entry hotkey CTRL+SHIFT+ u. When you press this you get an underlined u and you can type in a 4 digit hex Unicode value to get the character. Then you just have t remember your faborites (e.g. 2014 = em dash) or print out a chart to have handy.

    There is the US International Keyboard (add it from the Input Methods menu near the screen bottom right), but if you mix other languages with English, you'll be annoyed e.g. that a regular apostrophe is always an accent acute.

    Tip from mannkeithc on Reddit:

    *Flip your Pixelbook into tablet mode, and use the onscreen virtual keyboard. You can hold down a character key and then slide over to the respective international character you want—very similar to an iPad or Mac OS. Bring this same virtual keyboard onto the screen when you are in clamshell/laptop mode by first selecting "Handwriting input". This brings up a virtual input area. Select the keyboard symbol towards LH top of this window to get the virtual keyboard. You can then use the touch screen as in tablet mode to select the international characters you want.*

    ## Launch a Chrome browser tab

    You can use the standard Python mechanism

    `python -m webbrowser -t http://www.google.com`

    Or you can use [garcon](https://chromium.googlesource.com/chromiumos/platform2/+/master/vm_tools/garcon/):

    `/usr/bin/garcon-url-handler https://www.google.com`

    If you want to change the browser used, set the `BROWSER` environment variable.

    ## Install Fonts

    Some fonts can be installed using apt, for example I use Inconsolata
  16. uogbuji revised this gist Apr 20, 2019. 1 changed file with 10 additions and 1 deletion.
    11 changes: 10 additions & 1 deletion pixelbook-dev-setup.md
    Original file line number Diff line number Diff line change
    @@ -111,7 +111,7 @@ Files will be available under: /mnt/chomeos/Googledrive
    If you just launch & click "Sign in" you'll eventually land at the error: "We’re sorry
    It looks like you are on a device that we don’t yet support."

    Instead just go to https://[your-channel].slack.com/ssb/signin_redirect/fallback, clock "Copy sign-in key" then launch slack, which will automatically pick up the magic key from your clipboard. Repeat for any other accounts you have.
    Instead just go to https://[your-channel].slack.com/ssb/signin_redirect/fallback, click "Copy sign-in key" then launch slack, which will automatically pick up the magic key from your clipboard. Repeat for any other accounts you have.

    ### Dropbox

    @@ -218,6 +218,15 @@ Download via chrome and click through to the download location in Files app. Rig

    ## Install Fonts

    Some fonts can be installed using apt, for example I use Inconsolata

    ```sh
    sudo apt-get install fonts-inconsolata -y
    sudo fc-cache -fv
    ```

    If you just have the font file:

    - Copy .ttf file to ~/.local/share/fonts

    ```sh
  17. uogbuji revised this gist Apr 17, 2019. 1 changed file with 11 additions and 0 deletions.
    11 changes: 11 additions & 0 deletions pixelbook-dev-setup.md
    Original file line number Diff line number Diff line change
    @@ -83,6 +83,17 @@ ssh-add ~/.ssh/id_ed25519

    But there are tools I've used in Linux to automatically pop up a prompt if a key hasn't been registered with the agent.

    ## Backup

    The main approach to backup is to export the entire container:

    * Enable the "Crostini Backup" Flag – chrome://flags/#crostini-backup, then choose Restart
    * Open chrome://settings/crostini/exportImport and select "Backup" followed by "Save". Ideally save this on a external drive.

    To restore:

    * Open chrome://settings/crostini/exportImport and select "Restore". Select the export archive file. After it's done the exported version of Crostini should be in place.

    ## File Sharing

    Now automatic between Chrome OS and Linux. You'll find Linux files/directories in the Files app, under "Linux Files".
  18. uogbuji revised this gist Apr 5, 2019. 1 changed file with 9 additions and 0 deletions.
    9 changes: 9 additions & 0 deletions pixelbook-dev-setup.md
    Original file line number Diff line number Diff line change
    @@ -93,6 +93,15 @@ Go to the files app and right click on Google Drive, then click "Share with Linu

    Files will be available under: /mnt/chomeos/Googledrive

    ### Slack

    [Download the Linux package](https://slack.com/downloads/linux). Install with Linux.

    If you just launch & click "Sign in" you'll eventually land at the error: "We’re sorry
    It looks like you are on a device that we don’t yet support."

    Instead just go to https://[your-channel].slack.com/ssb/signin_redirect/fallback, clock "Copy sign-in key" then launch slack, which will automatically pick up the magic key from your clipboard. Repeat for any other accounts you have.

    ### Dropbox

    Unfortunately Dropbox support for ChromeOS is poor. Main recommendation seems to be the third-party [File System for Dropbox](https://chrome.google.com/webstore/detail/file-system-for-dropbox/hlffpaajmfllggclnjppbblobdhokjhe?hl=en) but it doesn't support offline access. The official Dropbox Linux client ended support for all file systems except unencrypted ext4, which rules it out for crostini. Looking into [rclone](https://www.reddit.com/r/Crostini/comments/9g9d59/dropbox_is_dropping_support_for_all_linux/).
  19. uogbuji revised this gist Mar 25, 2019. 1 changed file with 25 additions and 2 deletions.
    27 changes: 25 additions & 2 deletions pixelbook-dev-setup.md
    Original file line number Diff line number Diff line change
    @@ -61,9 +61,28 @@ ssh-keygen -o -a 100 -t ed25519 -f ~/.ssh/id_ed25519 -C "my_name.pixelbook"
    eval "$(ssh-agent -s)"
    ssh-add ~/.ssh/id_ed25519
    cat .ssh/id_ed25519.pub
    # Paste in GitHub/GitLab
    # Paste in GitHub/GitLab/etc.
    ```

    In order to [make sure SSH agent starts automatically](https://wiki.archlinux.org/index.php/SSH_keys#SSH_agents), and that only one ssh-agent process runs at a time, add the following to `.bashrc`:

    ```sh
    if ! pgrep -u "$USER" ssh-agent > /dev/null; then
    ssh-agent > ~/.ssh-agent-thing
    fi
    if [[ ! "$SSH_AUTH_SOCK" ]]; then
    eval "$(<~/.ssh-agent-thing)"
    fi
    ```

    I prefer to just after each reboot enter:

    ```sh
    ssh-add ~/.ssh/id_ed25519
    ```

    But there are tools I've used in Linux to automatically pop up a prompt if a key hasn't been registered with the agent.

    ## File Sharing

    Now automatic between Chrome OS and Linux. You'll find Linux files/directories in the Files app, under "Linux Files".
    @@ -124,12 +143,16 @@ Icon=/opt/extraterm-0.41.0-linux-x64/resources/app/extraterm/resources/logo/extr
    Type=Application
    ```

    Add to `.profile` the Extraterm command for shell integration, e.g. add the line:
    Add to `.bashrc` the Extraterm command for shell integration, e.g. add the line:

    ```sh
    . /opt/extraterm-commands-0.41.0/setup_extraterm_bash.sh
    ```

    Note: [You would think](http://mywiki.wooledge.org/DotFiles) this should be added to `.profile` but for some reason Extraterm under Crostini does not run a login shell (i.e. running `shopt login_shell` yields `off`).



    #### Tilix

    ```sh
  20. uogbuji revised this gist Mar 20, 2019. 1 changed file with 21 additions and 3 deletions.
    24 changes: 21 additions & 3 deletions pixelbook-dev-setup.md
    Original file line number Diff line number Diff line change
    @@ -64,9 +64,19 @@ cat .ssh/id_ed25519.pub
    # Paste in GitHub/GitLab
    ```

    ## File Sharing is now automatic between Chrome OS and Linux
    ## File Sharing

    You'll find Linux files/directories in the Files app, under "Linux Files".
    Now automatic between Chrome OS and Linux. You'll find Linux files/directories in the Files app, under "Linux Files".

    ### Google Drive

    Go to the files app and right click on Google Drive, then click "Share with Linux"

    Files will be available under: /mnt/chomeos/Googledrive

    ### Dropbox

    Unfortunately Dropbox support for ChromeOS is poor. Main recommendation seems to be the third-party [File System for Dropbox](https://chrome.google.com/webstore/detail/file-system-for-dropbox/hlffpaajmfllggclnjppbblobdhokjhe?hl=en) but it doesn't support offline access. The official Dropbox Linux client ended support for all file systems except unencrypted ext4, which rules it out for crostini. Looking into [rclone](https://www.reddit.com/r/Crostini/comments/9g9d59/dropbox_is_dropping_support_for_all_linux/).

    ## Applications

    @@ -153,11 +163,15 @@ Also:

    I was using TextMate on Mac and Atom in my Linux Mint installs. I'm not much of a fan of IDEs, but VSCode seems really popular among Pixelbook users, so I'll give it a whirl.

    #### Atom

    [Download the .deb installer from atom.io](https://atom.io/download/deb) (or the [beta version of Atom](https://atom.io/download/deb?channel=beta) if you prefer). Click "Show in folder" right click then "Install in Linux"

    #### VSCode

    Download via chrome and click through to the download location in Files app. Right click then "Install in Linux"

    # Supplementary info & possibly outdated concerns
    # Supplementary info

    ## Install Fonts

    @@ -174,6 +188,8 @@ The Pixelbook has a high-density display (HiDPI, roughly equivalent to the "Reti

    The good news is that you can use ChromeOS's built-in tool `Sommelier` to customize zoom levels for linux applications.

    See also [this reddit thread](https://www.reddit.com/r/Crostini/comments/8vhta1/fix_for_resolution/).


    ### Example Sommelier setup (with Visual Studio Code)
    Many installed programs will generate a `.desktop` file in /usr/share/applications, it contains an app description as well as its icon and launch command.
    @@ -218,4 +234,6 @@ Specifically for VSCode, I would also suggest adding these to your user settings

    # Key resources

    * [Pixelbook keyboard shortcuts](https://support.google.com/pixelbook/answer/7503852?hl=en)
    * [r/Crostini subreddit Wiki](https://www.reddit.com/r/Crostini/wiki/index)--huge wealth of useful info
    * If your world extends beyond English-only: [Choose the keyboard language & special characters on your Pixelbook](https://support.google.com/pixelbook/answer/9134758?hl=en)
  21. uogbuji revised this gist Mar 12, 2019. 1 changed file with 15 additions and 13 deletions.
    28 changes: 15 additions & 13 deletions pixelbook-dev-setup.md
    Original file line number Diff line number Diff line change
    @@ -149,14 +149,25 @@ Also:
    * mate-terminal
    * combos of the above with tmux or byobu

    ### VSCode
    ### Text editor/IDE

    I was using TextMate on Mac and Atom in my Linux Mint installs. I'm not much of a fan of IDEs, but VSCode seems really popular among Pixelbook users, so I'll give it a whirl.

    #### VSCode

    Download via chrome and click through to the download location in Files app. Right click then "Install in Linux"

    # Supplementary info & possibly outdated concerns

    ## Install Fonts

    - Copy .ttf file to ~/.local/share/fonts

    ```sh
    curl -L https://go.microsoft.com/fwlink/?LinkID=760868 > code.deb
    sudo apt-get install ./code.deb
    fc-cache -vf ~/.local/share/fonts
    fc-list | grep [your font name] # To verify
    ```


    ## HiDPI & Sommelier

    The Pixelbook has a high-density display (HiDPI, roughly equivalent to the "Retina display" term if you're comming from a Mac), but not all Linux apps are prepared to appear correctly in HiDPI displays. They can appear small or have regular size with tiny cursor...
    @@ -205,15 +216,6 @@ Specifically for VSCode, I would also suggest adding these to your user settings
    "editor.mouseWheelScrollSensitivity": 0.5
    ```

    ## Install Fonts

    - Copy .ttf file to ~/.local/share/fonts

    ```sh
    fc-cache -vf ~/.local/share/fonts
    fc-list | grep [your font name] # To verify
    ```

    # Key resources

    * [r/Crostini subreddit Wiki](https://www.reddit.com/r/Crostini/wiki/index)--huge wealth of useful info
  22. uogbuji revised this gist Mar 10, 2019. 1 changed file with 81 additions and 19 deletions.
    100 changes: 81 additions & 19 deletions pixelbook-dev-setup.md
    Original file line number Diff line number Diff line change
    @@ -40,50 +40,87 @@ u2f_flags u2f
    1. Scroll down to find **Linux Apps** or **Linux (Beta)** and select **TURN ON**
    1. After the install runs, you should have an application in ChromeOS called `Terminal`

    ## Initial setup of container
    ## Initial update of container

    ```sh
    sudo apt-get update && sudo apt-get dist-upgrade
    ```

    Note: some guides out there suggest setting the root password, but you should **never** do that. If you need to use a feature that requires a password for root, set it on the Crostini default user instead:

    ```sh
    sudo passwd
    ```

    ## Generate new SSH Key

    I [prefer to use an Ed25519 key](https://bagja.net/blog/upgrade-ssh-key-to-ed25519.html).

    ```sh
    ssh-keygen -t rsa -b 4096 -C pixelbook
    ssh-keygen -o -a 100 -t ed25519 -f ~/.ssh/id_ed25519 -C "my_name.pixelbook"
    eval "$(ssh-agent -s)"
    ssh-add ~/.ssh/id_rsa
    cat .ssh/id_rsa.pub
    ssh-add ~/.ssh/id_ed25519
    cat .ssh/id_ed25519.pub
    # Paste in GitHub/GitLab
    ```

    ## Set Password
    ## File Sharing is now automatic between Chrome OS and Linux

    `sudo passwd root`
    You'll find Linux files/directories in the Files app, under "Linux Files".

    ## Install Fonts
    ## Applications

    - Copy .ttf file to ~/.local/share/fonts
    Crostini (the Linux container on Chrome OS) understands Debian installation packages (`.deb`) - You can just download any installer, drag to the "Linux files" folder using the file manager and double-click it.

    And, being debian you also have `apt-get`.

    You can set up apps to be launched from icon by placing for each a desktop file in `/usr/local/share/applications/`. [Details here](https://chromium.googlesource.com/chromiumos/platform2/+/master/vm_tools/garcon/#installed-applications).

    ```sh
    fc-cache -vf ~/.local/share/fonts
    fc-list | grep [your font name] # To verify
    sudo mkdir -p /usr/local/share/applications
    ```

    ## Enable File Sharing between Chrome OS and Linux
    Some examples next

    1. Go to chrome://flags and turn on 'crostini-files'.
    1. Right-click on folders in FilesApp and select 'Share with Linux'
    1. Folders will show up in /ChromeOS/Downloads/ inside linux.
    ### Terminal alternatives

    ## Applications
    So many choices, and so manby combos of distinct and/or overlapping and/or complementary tools. I'm trying just Extraterm

    Crostini (the Linux container on Chrome OS) understands Debian installation packages (`.deb`) - You can just download any installer, drag to the "Linux files" folder using the file manager and double-click it.
    #### Extraterm

    And, being debian you also have `apt-get`.
    ```sh
    mkdir ~/Downloads
    cd ~/Downloads
    #Update to latest release
    wget https://github.com/sedwards2009/extraterm/releases/download/v0.41.0/extraterm-0.41.0-linux-x64.zip
    wget https://github.com/sedwards2009/extraterm/releases/download/v0.41.0/extraterm-commands-0.41.0.zip
    cd /opt
    sudo unzip ~/Downloads/extraterm-0.41.0-linux-x64.zip
    sudo unzip ~/Downloads/extraterm-commands-0.41.0.zip
    sudo ln -s /opt/extraterm-0.41.0-linux-x64/extraterm /usr/local/bin/
    sudo apt install libnss3
    ```

    Here are some examples
    Put `extraterm.desktop` in `/usr/share/applications/` to get the launcher in Chrome OS:

    ### Tilix (Terminal alternative)
    ```
    [Desktop Entry]
    Name=Extraterm
    Keywords=shell;prompt;command;commandline;cmd;
    Version=0.41.0
    Comment=The swiss army chainsaw of terminal emulators
    Exec=/usr/local/bin/extraterm
    Icon=/opt/extraterm-0.41.0-linux-x64/resources/app/extraterm/resources/logo/extraterm_small_logo_256x256.png
    Type=Application
    ```

    Add to `.profile` the Extraterm command for shell integration, e.g. add the line:

    ```sh
    . /opt/extraterm-commands-0.41.0/setup_extraterm_bash.sh
    ```

    #### Tilix

    ```sh
    echo 'deb http://ftp.debian.org/debian stretch-backports main' | sudo tee /etc/apt/sources.list.d/stretch-backports.list
    @@ -100,6 +137,18 @@ if [ $TILIX_ID ] || [ $VTE_VERSION ]; then
    fi
    ```

    #### Gnome Terminal

    ```sh
    sudo apt-get install gnome-terminal
    ```

    Also:

    * Terminator
    * mate-terminal
    * combos of the above with tmux or byobu

    ### VSCode

    ```sh
    @@ -155,3 +204,16 @@ Specifically for VSCode, I would also suggest adding these to your user settings
    "window.zoomLevel": 2,
    "editor.mouseWheelScrollSensitivity": 0.5
    ```

    ## Install Fonts

    - Copy .ttf file to ~/.local/share/fonts

    ```sh
    fc-cache -vf ~/.local/share/fonts
    fc-list | grep [your font name] # To verify
    ```

    # Key resources

    * [r/Crostini subreddit Wiki](https://www.reddit.com/r/Crostini/wiki/index)--huge wealth of useful info
  23. @cassiozen cassiozen revised this gist Nov 2, 2018. 1 changed file with 6 additions and 7 deletions.
    13 changes: 6 additions & 7 deletions pixelbook-dev-setup.md
    Original file line number Diff line number Diff line change
    @@ -32,13 +32,6 @@ Pixelbook's power button has a built-in 2fa/2sv key (think YubiKey), but it's di
    u2f_flags u2f
    ```

    ## Enable File Sharing between Chrome OS and Linux

    1. Go to chrome://flags and turn on 'crostini-files'.
    1. Right-click on folders in FilesApp and select 'Share with Linux'
    1. Folders will show up in /ChromeOS/Downloads/ inside linux.


    # Linux Setup

    ## Enable Linux Apps
    @@ -76,6 +69,12 @@ fc-cache -vf ~/.local/share/fonts
    fc-list | grep [your font name] # To verify
    ```

    ## Enable File Sharing between Chrome OS and Linux

    1. Go to chrome://flags and turn on 'crostini-files'.
    1. Right-click on folders in FilesApp and select 'Share with Linux'
    1. Folders will show up in /ChromeOS/Downloads/ inside linux.

    ## Applications

    Crostini (the Linux container on Chrome OS) understands Debian installation packages (`.deb`) - You can just download any installer, drag to the "Linux files" folder using the file manager and double-click it.
  24. @cassiozen cassiozen revised this gist Oct 29, 2018. 1 changed file with 24 additions and 8 deletions.
    32 changes: 24 additions & 8 deletions pixelbook-dev-setup.md
    Original file line number Diff line number Diff line change
    @@ -32,6 +32,13 @@ Pixelbook's power button has a built-in 2fa/2sv key (think YubiKey), but it's di
    u2f_flags u2f
    ```

    ## Enable File Sharing between Chrome OS and Linux

    1. Go to chrome://flags and turn on 'crostini-files'.
    1. Right-click on folders in FilesApp and select 'Share with Linux'
    1. Folders will show up in /ChromeOS/Downloads/ inside linux.


    # Linux Setup

    ## Enable Linux Apps
    @@ -69,13 +76,13 @@ fc-cache -vf ~/.local/share/fonts
    fc-list | grep [your font name] # To verify
    ```

    ## Enable File Sharing between Chrome OS and Linux
    ## Applications

    1. Go to chrome://flags and turn on 'crostini-files'.
    1. Right-click on folders in FilesApp and select 'Share with Linux'
    1. Folders will show up in /ChromeOS/Downloads/ inside linux.
    Crostini (the Linux container on Chrome OS) understands Debian installation packages (`.deb`) - You can just download any installer, drag to the "Linux files" folder using the file manager and double-click it.

    ## Applications
    And, being debian you also have `apt-get`.

    Here are some examples

    ### Tilix (Terminal alternative)

    @@ -102,10 +109,18 @@ sudo apt-get install ./code.deb
    ```


    By Default, VSCode opens with weird cursor sizes and scroll issues. This can be fixed by editing the `code.desktop` file and your user settings in VSCode:
    ## HiDPI & Sommelier

    The Pixelbook has a high-density display (HiDPI, roughly equivalent to the "Retina display" term if you're comming from a Mac), but not all Linux apps are prepared to appear correctly in HiDPI displays. They can appear small or have regular size with tiny cursor...

    The good news is that you can use ChromeOS's built-in tool `Sommelier` to customize zoom levels for linux applications.

    **`/usr/share/applications/code.desktop`**

    ### Example Sommelier setup (with Visual Studio Code)
    Many installed programs will generate a `.desktop` file in /usr/share/applications, it contains an app description as well as its icon and launch command.


    #### Example: `/usr/share/applications/code.desktop`

    Change `Exec` entries to specify Sommelier's DPI and zoom level:

    @@ -133,7 +148,8 @@ Icon=code
    ```

    **VSCode User settings**

    Specifically for VSCode, I would also suggest adding these to your user settings

    ```
    "window.titleBarStyle": "custom",
  25. @cassiozen cassiozen revised this gist Oct 29, 2018. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion pixelbook-dev-setup.md
    Original file line number Diff line number Diff line change
    @@ -29,7 +29,7 @@ You can then quick-switch between users with CTRL+ALT+, & CTRL+ALT+.
    Pixelbook's power button has a built-in 2fa/2sv key (think YubiKey), but it's disabled by default. If you use Two-Factor authentication on GitHub, Gmail etc, you can turn it on by entering this command on the Crosh shell (Ctrl+Alt+T):

    ```
    u2f_flags g2f
    u2f_flags u2f
    ```

    # Linux Setup
  26. @cassiozen cassiozen revised this gist Oct 27, 2018. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion pixelbook-dev-setup.md
    Original file line number Diff line number Diff line change
    @@ -107,7 +107,7 @@ By Default, VSCode opens with weird cursor sizes and scroll issues. This can be

    **`/usr/share/applications/code.desktop`**

    Change `Exec` entries to specify Sommelier's DPI and disable hardware acceleration (Not yet available on the linux container):
    Change `Exec` entries to specify Sommelier's DPI and zoom level:

    ```
    [Desktop Entry]
  27. @cassiozen cassiozen revised this gist Oct 27, 2018. 1 changed file with 5 additions and 4 deletions.
    9 changes: 5 additions & 4 deletions pixelbook-dev-setup.md
    Original file line number Diff line number Diff line change
    @@ -98,7 +98,7 @@ fi

    ```sh
    curl -L https://go.microsoft.com/fwlink/?LinkID=760868 > code.deb
    sudo apt-get install libxss1 libasound2 ./code.deb
    sudo apt-get install ./code.deb
    ```


    @@ -114,7 +114,7 @@ Change `Exec` entries to specify Sommelier's DPI and disable hardware accelerati
    Name=Visual Studio Code
    Comment=Code Editing. Redefined.
    GenericName=Text Editor
    Exec=sommelier --dpi=235 -X /usr/share/code/code "--disable-gpu --unity-launch %F"
    Exec=sommelier -X --scale=0.7 --dpi=160 /usr/share/code/code "--unity-launch %F"
    Icon=code
    Type=Application
    StartupNotify=true
    @@ -128,14 +128,15 @@ X-Desktop-File-Install-Version=0.23
    [Desktop Action new-empty-window]
    Name=New Empty Window
    Exec=sommelier --dpi=235 -X /usr/share/code/code "--disable-gpu --new-window %F"
    Exec=sommelier -X --scale=0.7 --dpi=160 /usr/share/code/code "--new-window %F"
    Icon=code
    ```

    **VSCode User settings**

    ```
    "window.titleBarStyle": "custom",
    "window.zoomLevel": 3.5,
    "window.zoomLevel": 2,
    "editor.mouseWheelScrollSensitivity": 0.5
    ```
  28. @cassiozen cassiozen revised this gist Oct 26, 2018. 1 changed file with 2 additions and 0 deletions.
    2 changes: 2 additions & 0 deletions pixelbook-dev-setup.md
    Original file line number Diff line number Diff line change
    @@ -13,6 +13,8 @@ Some of the features mentioned in this document only work on the beta or Dev cha

    ## Fast User Switching

    If you have multiple accounts (Say, work and play), you can quickly sitch between them without logging out:

    1. Open the status area (the bottom-right menu)
    1. Click your account photo.
    1. Click Sign in another user.
  29. @cassiozen cassiozen revised this gist Oct 25, 2018. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion pixelbook-dev-setup.md
    Original file line number Diff line number Diff line change
    @@ -41,7 +41,7 @@ u2f_flags g2f
    ## Initial setup of container

    ```sh
    sudo apt-get update
    sudo apt-get update && sudo apt-get dist-upgrade
    ```

    ## Generate new SSH Key
  30. @cassiozen cassiozen revised this gist Oct 25, 2018. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion pixelbook-dev-setup.md
    Original file line number Diff line number Diff line change
    @@ -2,7 +2,7 @@

    ## Change your channel

    Some of the features bellow only work on the beta or Dev channel:
    Some of the features mentioned in this document only work on the beta or Dev channel. To change your channel:

    1. chrome://help in a browser window
    1. Click Detailed Build Information