• Home
  • Blog
    • Programming
    • Art
    • Recipes
    • Home Automation
    • Life
    • Friday Faves
    • Books
    • Writing
    • Games
    • Web Accessibility
    • Advent of Code
  • Projects
  • GLSL Shader Art
  • Glitch Art

  • Github
  • Bluesky
  • Mastodon
  • Duolingo
  • LinkedIn
  • RSS
  • Bridgy Fed

mary.codes

Web development, art, and tinkering with fun projects. JavaScript, Python, WebGL, GLSL, Rust, Lua, and whatever else I find interesting at the moment.

Developing on a Chromebook via SSH

Mary KnizeBlog iconNov 29th, 2021
2 min read

Programming

How I'm setting up my old ASUS Chromebook to do some development outside in nice weather.

I have a very old and cheap Chromebook that I like to use for some light development when I want to sit outside on a nice day. It's an ASUS with an ARM processor and hasn't been supported in ages; not something very well suited to development.

However, I've gotten it to work pretty well with a few tweaks. I'd turned on developer mode almost as soon as I'd gotten it, and I'd installed crouton forever ago, but I don't even need to boot into Linux to do some serious work!

SSH

The first thing I need to do is SSH into my desktop machine. To do that, I need to open a new terminal tab on the Chromebook with CTRL + ALT + T. Then, I type shell into the terminal window to get a bash prompt.

From there, I have access to ssh. I can ssh myusername@mylocalcomputer and get my files from there!

Vim

I use Vim for editing all my files. On desktop I use PHPStorm and WebStorm with Vim bindings, so I'm very used to using Vim. It's a little less convenient without the autocompletion and hints that the Jet Brains IDEs have, but it works just fine for me.

Node

A roadblock I ran into was compiling with npm. I would ssh into my desktop computer to make some file changes, but npm run build would fail because the version of node I was using was incompatible with one of the packages I'm using.

I use nvm on my Ubuntu desktop, but the version of node being used via ssh was located at /usr/local/bin/node, not nvm. It turned out that I already had the n version manager installed, so all I had to do was n 12.18.3 and then run n from the command line to pick the version that I wanted to use.

On my Chromebook, I can run node -v and it will now show 12.18.3 and I can build! The build and copy commands all work on my desktop machine, and I can open my test page, pointing to my desktop's IP address, and see my changes.

It feels redundant now to have both nvm and n installed, but there doesn't seem to be any conflict. Nvm seems to override n in my Ubuntu terminal, but n's version is what's used over SSH.

Upgrades

I'd like to eventually get sshfs working. Currently, when I try to mount my desktop's dev folder to my Chromebook, I receive a "Connection reset by peer" error. It would be nice to just open up my Chromebook and have the directory already mounted and ready to go. However, I haven't been able to fix that particular problem yet.


Other Programming posts

How I'm organizing my work in 2024

Finding the Design Engineer within the Full-Stack Developer

Displaying the current Git branch in my Linux terminal prompt

Generating a 3D map with OpenStreetMap and A-Frame

Translating OpenStreetMap data to HTML5 Canvas with Rust and WebAssembly

Latest posts

I started painting again

100 days of Japanese on Duolingo

How I'm organizing my work in 2024

Watch the documentary 'Good Night Oppy' if you're feeling science-y

Sculpted robo-goldfish, a rainbow office building, and a look inside click farms