-- Leo's gemini proxy

-- Connecting to tobykurien.com:1965...

-- Connected

-- Sending request

-- Meta line: 20 text/gemini; lang=en

Cyberdeck, mk 1


A quick update on my experiments with distraction-free computing (as outlined in my previous post). I hacked together a super simple cyberdeck, which I'm defining as a DIY, portable, keyboard-driven terminal. I wanted something I could play with ASAP with minimal fuss, so I made a simple base plate with retaining clips to hold my Raspberry Pi keyboard and Raspberry Pi tablet in a fixed laptop-like configuration, so that it's usable on my lap. I'm calling it the DFPi (distraction-free Pi).


The DFPi


Front view of DFPi


Rear view of DFPi


As you'll notice there's no mouse or trackpad (which makes the whole thing more compact), although the screen is a touch screen. It is powered by an external powerbank, although I can clip the powerbank onto the back of the screen if I want more portability. If I had to build it from scratch, I would do it differently - I'd use a Raspberry Pi 400 (keyboard with built-in Pi) with a hinged 7" HDMI screen. This would look something like a netbook, but more compact because there's no need for a trackpad.


I've spent much of January configuring and testing various ideas on the DFPi. In the spirit of "distraction-free", I decided to focus on one-app-at-a-time, with a preference for console apps. I enjoyed reading through Cadence's recent posts about command line, since I'd just gone through the same joys and difficulties myself:


gemini://cadence.moe/gemlog/2022-01-29-command-line-computing-difficulties.bliz


My main difficulties are that each TUI app uses it's own keybinding (which is especially frustrating when moving between amfora, lynx, elinks, w3m, etc). Another major frustration is that I haven't yet figured out how to manage file associations, e.g. if in "nnn" (my file explorer of choice) I select an image or video file, it opens it in links as garbled text, but in amfora/w3m/etc they don't know what to do with the file.


Something I noticed was that being "offline" (as in, not connected to the internet while I'm using the DFPi) wasn't of any noticable benefit, once I'd already restricted myself to single-tasking and using console apps. Even things like copy-and-paste was often (but not always) an indication that I was getting distracted, because I was obviously trying to switch between apps, and maybe I should just focus on one. As Cadence mentioned in their post, copy-and-paste doesn't just work out-of-the-box and I found that this adds the necessary friction to multi-tasking for me.


Here are some software and configurations I found useful/interesting so far:


Bubblewrap or Firejail: for sandboxing and creating a virtual environment where nothing persists, for example I can run an app that has no access to my home directory, but can write to my Downloads folder, and any other filesystem changes it makes is discarded when the app exits. Steep learning curve on Bubblewrap though.

cryptsetup: I store my sensitive files in an encrypted USB drive plugged into the back of the Raspberry Pi keyboard (it has a built-in USB hub), and use this to mount it.

fbterm: My terminal emulator of choice, which runs directly in the console via a framebuffer. This gives me nice fonts and colours. I found that setting "TERM=fbterm" fixes colours in vim and other apps.

Network Manager (nmtui): a very nice TUI that makes it a breeze to connect to WiFi networks. I replaced the default "dhcpcd" with this.

Fake KMS driver for RPi: enabling the "vc4-fkms-v3d" driver for the Pi 3B enables EGL, which allows Qt apps to run in the console with 3d acceleration, if you set "QT_QPA_PLATFORM=eglfs"

fbi, qimgv, jfbview: image viewers

qpdfview, jfbview: PDF and e-book viewers

mpv, ffplay, omxplayer: video players that work directly in the console

w3m with w3m-img: can browse the web and display images in the console.

links, lynx, elinks: other browsers I've tried. Hacker News looks nice in elinks since it supports some CSS styles.

Qutebrowser, Lagrange: graphical browsers. I struggled to get them to work purely in the console, so instead I installed a minimal X environment and run them directly via xinit. This way, they launch inside the minimal X with no desktop or other services, and shut down back to the console when done.



Use cases


After the novelty of mucking about with the DFPi, I'm currently using it mainly for:


Reviewing and updating my todos and knowledge base (in vimwiki). I think the fast booting and long battery life make my vimwiki more useful and used.

Reading PDFs like HackSpace magazine, which is not nice to read on a Kindle

Gemini catch-up when I want to relax.


Tags: #distractionfree #raspberrypi #cyberdeck #offline #terminal #console #commandline #tui #dfpi




__

Home

Email me

-- Response ended

-- Page fetched on Tue May 7 13:08:30 2024