Skip to content

Instantly share code, notes, and snippets.

@freekrai
Forked from ppoffice/README.md
Created March 20, 2021 15:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save freekrai/4a693290c6530e100be0a880e07fa776 to your computer and use it in GitHub Desktop.
Save freekrai/4a693290c6530e100be0a880e07fa776 to your computer and use it in GitHub Desktop.
Install Visual Studio Code (actually code-server) on Android
  1. Install Termux, an Android terminal emulator that provides a Linux execution environment and various tools.

  2. Update system packages in Termux:

    $ pkg update -y
  3. Install dependencies, including python, nodejs, and yarn:

    $ pkg install -y python nodejs yarn git
  4. Install code-server, an adaptation of Visual Studio Code that runs as a web app using the following command. The installation may take a while:

    $ yarn global add code-server
  5. Before starting code-server, we are going to fix an error caused by spdlog, which is a dependency of Visual Studio Code. First, change your working directory to ~/.config/yarn/global/node_modules/code-server/lib/vscode/node_modules/spdlog/:

    $ cd ~/.config/yarn/global/node_modules/code-server/lib/vscode/node_modules/spdlog/
  6. You will need a text editor for the next step. Here Vim is used for this task, but you are free to use whatever text editor you love:

    $ pkg install vim
  7. Open binding.gyp and enter edit mode. You can do this by pressing i once you open the file using Vim:

    $ vim binding.gyp
  8. Add "libraries": [ "-latomic" ] below "target_name": "spdlog",. This helps spdlog compile on Android.

    "targets": [{
            "target_name": "spdlog",
    +       "libraries": [ "-latomic" ]
            "sources": [
                    "src/main.cc",
                    "src/logger.cc"
            ],
  9. Save the file and quit text editor. You can do this by pressing ESC and then wq in Vim:

  10. Recompile spdlog using the following command:

    $ npm install
  11. (Optional) To see if spdlog works, run:

    $ npm test
  12. To fix the file search function of code-server, install ripgrep via pkg and link it to the correct place:

    $ pkg install ripgrep -y
    $ cd ~/.config/yarn/global/node_modules/code-server/lib/vscode/node_modules/vscode-ripgrep/bin
    $ ln -s $(which rg) .
  13. Finally, change the working directory back to home and start code-server with the following command:

    $ cd ~
    $ code-server --auth none --disable-telemetry
  14. Now, you can open your browser and visit code-server at http://localhost:8080.

  15. (Bonus) If you wish to visit this code-server from another device in the same local network, you can expose the HTTP service to all network interfaces by starting code-server with --bind-addr:

    $ code-server --bind-addr 0.0.0.0:8080 --disable-telemetry

    You can find the password under ~/.config/code-server/config.yaml:

    $ cat ~/.config/code-server/config.yaml

    You may also need to enable HTTPS to enable clipboard and others features of Visual Studio Code in browsers. To do this, install openssl-tool and let code-server generate a certificate on startup:

    $ pkg install openssl-tool
    $ code-server --bind-addr 0.0.0.0:8080 --cert --disable-telemetry

    You can get the public IP address of your device using the command below in Termux:

    $ ifconfig
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment