Skip to content

guide

The Deck: A pocket cyberdeck for terminals on the move — Build Guide

A Raspberry Pi 5, a 7-inch touchscreen and a low-profile keyboard in whatever chassis you dream up. It SSHes into everything and looks like the future 1985 promised.

· 12 min read

Devs At Home is a participant in the Amazon Services LLC Associates Program, an affiliate advertising program. We earn from qualifying purchases. This never affects what we recommend or what we say about it.

Key points

  • The core is a Raspberry Pi 5 with 8GB RAM, a 7-inch IPS touchscreen, and a low-profile mechanical keyboard that fits in a case small enough to carry daily.
  • The Vilros Raspberry Pi 5-8GB Starter Kit includes the board, power supply, and heatsink; the Hosyond 7 Inch Touch Screen IPS Display connects via the Pi's DSI ribbon cable.
  • The Keychron K3 Version 2 measures 12.6 inches wide in 75% layout and runs over Bluetooth, eliminating a USB cable to the Pi.
  • Expect two weekends to build and configure, then ongoing tweaks to shell scripts, SSH keys, and case modifications as you actually use it.
  • A SANDISK 128GB Extreme microSD Card holds the OS and your config; the Shargeek 140 Power Bank Retro 67 GaN Charger runs the Pi and charges the keyboard from a single battery.
  • The chassis is not specified here because half the point is finding or making your own: Pelican-style cases, 3D-printed shells, gutted vintage portables.

What you are building and why it is worth two weekends plus tinkering forever

You are building a portable Linux terminal that boots in seconds, SSHes into your home server or cloud instances, and fits in a bag next to a notebook. The Raspberry Pi 5 is the brain. The 7-inch touchscreen is the display. A low-profile mechanical keyboard gives you real keys without the height of a full board. Everything runs off a single USB-C power bank.

It is not a laptop. It will not run Docker builds or compile Rust projects. It is a thin client with a physical keyboard, optimised for SSH sessions, configuration files, and terminal multiplexers. You reach for it when you need a shell on the train or in a coffee shop and a phone screen is too small.

The appeal is two parts practical, one part aesthetic. Practically: it is lighter than a laptop, faster to boot than most, and costs less than any comparable x86 device. Aesthetically: it looks like nothing else on the table, and you built it yourself. That second part matters more than it should, and pretending otherwise is dishonest.

You will spend one weekend on the hardware and a second on the software stack. Then you will modify it forever. That is the actual time cost.

The parts list: what each item does

ComponentModelPurposeConnection
Single-board computerVilros Raspberry Pi 5-8GB Starter KitRuns the OS and SSH clientUSB-C for power, DSI for display
DisplayHosyond 7 Inch Touch Screen IPS Display for Raspberry Pi1024×600 IPS panel with resistive touchDSI ribbon cable to Pi, USB for touch input
KeyboardKeychron K3 Version 2 QMK 75% Wireless Low-Profile Mechanical KeyboardMechanical keys in a compact layoutBluetooth to Pi, USB-C to charge
PowerShargeek 140 Power Bank Retro 67 GaN ChargerPowers Pi and charges peripheralsUSB-C out to Pi and keyboard
StorageSANDISK 128GB Extreme microSD Card + AdapterHolds Raspberry Pi OS and your dotfilesmicroSD slot on Pi

The Vilros kit includes the Pi 5 board, an official 27W USB-C power supply, and an active heatsink with a fan. You will use the heatsink. The power supply stays on your desk; the power bank replaces it in the field.

The Hosyond display connects via the Pi's DSI port using the included ribbon cable. Touch input runs over a separate USB cable. Resistive touch is not as responsive as capacitive, but you will mostly use the keyboard anyway.

The Keychron K3 is a 75% layout with low-profile mechanical switches. It is 12.6 inches wide and 0.9 inches tall with keycaps. Bluetooth 5.1 means no cable to the Pi. The internal battery lasts weeks between charges.

The Shargeek power bank outputs 140W total across three USB-C ports. The Pi 5 draws roughly 5W idle and 10W under load. You will get a full day of terminal work from a single charge.

What you supply yourself, honestly

A chassis. This is the part the guide cannot specify because it is the part that makes the build yours. Some builders use Pelican-style waterproof cases and cut foam inserts. Others 3D-print shells in two halves that snap together. A few gut vintage portable computers and fit modern components inside.

The dimensions are driven by the keyboard. The Keychron K3 is 12.6 by 4.9 inches. Your case needs to be at least that wide and deep, plus clearance for the Pi and battery. Depth depends on how you stack components: side by side is shallower than layered.

Short cables. You need a micro-HDMI to HDMI cable if your display does not have DSI, though the Hosyond does and you will not. You need short USB-C to USB-C cables from the power bank to the Pi and from the bank to the keyboard. Measure your layout before ordering. Six-inch cables usually fit; twelve-inch cables create a mess.

Standoffs, screws, and mounting hardware. The Pi and display both have mounting holes. How you secure them depends on your case material. M2.5 standoffs work for the Pi. Double-sided foam tape works for the display if you are not drilling.

A USB stick for the Raspberry Pi Imager if you are flashing the OS from another machine. The SANDISK card works in any computer with an SD slot or adapter.

The build, in numbered phases sized to an evening each

Phase one: Flash the OS and boot the Pi

Download Raspberry Pi Imager on your main machine. Insert the SANDISK microSD card. Select Raspberry Pi OS Lite if you want a terminal-only system or Raspberry Pi OS with desktop if you want a GUI fallback. Write the image. Before ejecting, create an empty file named ssh in the boot partition to enable SSH on first boot. Create another file named wpa_supplicant.conf with your Wi-Fi credentials.

Insert the card into the Pi. Attach the heatsink. Connect USB-C power. The Pi will boot, connect to your network, and appear as an SSH target. Find its IP on your router or use a network scanner. SSH in as user pi, default password raspberry. Change the password immediately.

Phase two: Connect and test the display

Power down the Pi. Connect the Hosyond display's DSI ribbon cable to the Pi's DSI port, metal contacts facing the USB ports. Connect the USB cable from the display to any USB port on the Pi for touch input. Power on.

The display should show the boot sequence. If it stays black, check the ribbon cable orientation. The most common error is reversing it. If you see output but the resolution is wrong, edit /boot/config.txt and add hdmi_group and hdmi_mode lines. The Hosyond is 1024×600, which is HDMI mode 87 with custom timing.

Test touch input by tapping the screen. The cursor should move. If it does not, check dmesg for USB device enumeration. The touchscreen appears as a HID device.

Phase three: Pair the keyboard

The Keychron K3 ships in Windows mode. Hold Fn and X for four seconds to switch to Mac mode, which the Pi expects. Hold Fn and 1 for three seconds to enter Bluetooth pairing. On the Pi, run bluetoothctl, then scan on, pair with the keyboard's MAC address, trust it, and connect. The keyboard will reconnect automatically on boot after the first pairing.

Test typing in a terminal. If keys repeat or lag, check Bluetooth signal strength with hcitool rssi. The Pi 5's Bluetooth radio is adequate but not exceptional. Keep the keyboard within three feet.

Phase four: Install your stack

Update the system: sudo apt update && sudo apt upgrade. Install tmux, vim or neovim, git, and whatever shell you prefer. Copy your dotfiles from a repository or your main machine. Set up SSH keys for the servers you access regularly. Configure tmux to attach to an existing session or create one on login.

This phase takes as long as your configuration is complex. If you use a minimal shell and three aliases, an hour. If you maintain 2,000 lines of vim config, longer.

Phase five: Fit everything into the case

Lay out the components before securing them. The keyboard goes on top. The Pi and display sit beneath or beside it, depending on your case depth. The power bank can go underneath or in a separate compartment.

Route cables before you mount anything. The DSI ribbon cable is short and fragile. The USB cables are more forgiving. Leave slack for opening the case later.

Secure the Pi with standoffs or adhesive. Secure the display the same way. Test that the lid closes without pressing on components. Test that you can access the SD card and USB ports without disassembly.

Where this build actually stalls, and how to get unstuck

The display does not turn on. Check the DSI cable orientation first. Metal contacts face the USB ports on the Pi. Check that the cable is seated fully at both ends. If the Pi boots but the display stays dark, the cable is probably reversed or loose.

The keyboard will not pair. The Pi 5's Bluetooth stack occasionally drops devices during pairing. Run sudo systemctl restart bluetooth and try again. If it pairs but disconnects, check for USB devices drawing too much power. The Pi 5 is better about power than the Pi 4, but a bus-powered hub can still cause issues.

The Pi thermal-throttles under load. The active heatsink should prevent this, but a poorly ventilated case will trap heat. Add ventilation holes or a small fan. The Pi 5 throttles at 80 degrees Celsius. Check current temp with vcgencmd measure_temp.

Touch input registers in the wrong place. Run xinput_calibrator if you are using X11, or edit the libinput configuration. Resistive touchscreens drift and need recalibration occasionally.

You cannot SSH from the deck to your servers. Check that your SSH keys are in ~/.ssh and have correct permissions. 600 for private keys, 644 for public. Check that the Pi can reach the internet with ping. Check that your home firewall allows outbound SSH if you are connecting to external servers.

Safety, etiquette and the cleanup that keeps you allowed to do this again

The Pi 5 draws more current than earlier models. The official power supply is 27W for a reason. Do not run it from a underpowered USB port on another device. Use the power bank or the wall supply.

The heatsink fan is audible in a quiet room. It is not loud, but you will hear it. Do not run CPU-intensive tasks if you are in a library or shared office. This is a thin client, not a build machine, and pretending otherwise annoys people around you.

Resistive touchscreens scratch. Do not throw the deck in a bag without a screen cover. A microfibre cloth between the keyboard and display prevents this.

The case will accumulate dust, crumbs, and debris. Clean it before it gets bad enough that someone comments. The keyboard will attract more attention than a laptop, and a filthy one reflects poorly.

Do not modify the deck on someone else's desk without asking. Soldering, drilling, and flashing firmware are workshop tasks, not coffee-shop tasks. The exception is software configuration, which is silent and expected.

Ways to take it further once the base build works

Add a USB hub inside the case. A compact four-port hub lets you plug in a USB drive or Ethernet adapter without opening the lid. The Pi 5 has two USB 3.0 ports and two USB 2.0 ports. Put the hub on a 3.0 port.

Replace the resistive touchscreen with a capacitive one if touch is important to your workflow. Capacitive displays cost more but respond better. The Hosyond is resistive because it is inexpensive, not because resistive is ideal.

Add a battery meter. The Shargeek power bank has an LED indicator, but it is not always visible inside a case. A small OLED connected to the Pi's GPIO pins can show battery percentage and Pi CPU temp.

Set up a VPN client to run on boot. WireGuard is lightweight and fast. Configure it to connect to your home network or a cloud VPN so you can reach internal services from anywhere.

Script common tasks with shell aliases and keybindings. SSH into your most-used servers with one keystroke. Open a tmux layout with your standard panes. The point of a thin client is speed of access, and aliases are faster than typing.

Build a second one with different trade-offs. A larger display and a full-size keyboard in a Pelican case for field work. A smaller display and a 60% keyboard in a 3D-printed shell for travel. The components are modular enough that the second build is easier than the first.

Common questions

How long does the power bank last running the Pi and keyboard?

The Shargeek 140 has a 20,000mAh capacity at 3.7V nominal, which is roughly 74Wh. The Pi 5 draws 5 to 10W depending on load. The Keychron K3 draws negligible power over Bluetooth. Expect eight to twelve hours of terminal work with the screen at moderate brightness. Heavy CPU usage or maximum brightness shortens that.

Can this run VS Code or a full IDE?

No, not well. The Pi 5 can run VS Code's ARM build, but the 7-inch display is too small for a useful editor layout and the Pi is too slow for language servers on large projects. Use vim, neovim, or a lightweight editor. If you need an IDE, SSH from the deck into a machine that can run one and use terminal-based remote editing.

Does the Pi 5 overheat in a closed case?

It can, depending on ventilation. The active heatsink keeps it below throttling temp in open air, but a sealed case traps heat. Add ventilation holes or a small fan. Monitor temperature with vcgencmd measure_temp. If it stays above 70 degrees Celsius idle, you need more airflow.

Can I swap the Keychron for a different keyboard?

Yes. Any Bluetooth keyboard that pairs with Linux will work. The Keychron K3 is listed here because it is low-profile, mechanical, and compact, but it is not the only option. A membrane keyboard is lighter and cheaper. A split keyboard is more ergonomic. Measure your case before choosing.

What if I do not have a 3D printer or machine tools for a case?

Use a Pelican-style case or a project enclosure from an electronics supplier. Pelican cases come with foam that you can cut to fit components without any tools beyond a knife. Project enclosures are plastic boxes with removable lids and mounting posts. Neither is as elegant as a custom shell, but both work.

How do I back up the SD card after I have everything configured?

Shut down the Pi and remove the card. Insert it into another computer and use dd on Linux or Mac, or Win32 Disk Imager on Windows, to write the card to an image file. Store that image somewhere safe. When the card fails, and it will, write the image to a new card and you are back up in five minutes.

Can I use an external monitor instead of the 7-inch display?

Yes, but it defeats the point of a portable build. The Pi 5 has two micro-HDMI ports. Connect any monitor with a micro-HDMI to HDMI cable. If you use an external monitor regularly, consider whether you need the internal display at all. A Pi in a case with just a keyboard is lighter.

Does this work as a daily driver?

No, unless your job is entirely SSH and shell scripts. It is a thin client. It is excellent at that. It is not a replacement for a laptop with a proper display, a fast CPU, and the ability to run local builds and tests. Use it as a portable terminal for servers, not as your only machine.

Who should build this

Build this if you spend most of your working day in SSH sessions, if you already maintain dotfiles and shell scripts, and if the idea of a custom portable terminal appeals enough that you will finish it. You will get a device that does one thing well: gives you a keyboard and a shell on any server you can reach.

Do not build this if you need a general-purpose laptop, if you do not already work in the terminal daily, or if you want something that just works without configuration. The deck is a project, and projects require maintenance. It will not replace your main machine. It will not run Docker or compile large codebases. It is a thin client with personality, not a workhorse.

Build it because you want to, not because you need to. The need is small. The want is enough.

One email a week

New reviews, teardowns and the occasional deal worth knowing about. No spam, unsubscribe any time.