Some days ago i’ve written a post about the “Ultra-Geek” Linux Workstation developed by Joe Nelson.

Reading his post, I found many similarities with the current configuration of my laptop.

So I decided to share the setup of my ‘Ultra-Geek linux Laptop’, with ‘design goals’ very similar to those of Joe Nelson:

  • I need a really stable system with an immediate response, even on a hardware that is not too recent and powerful : so the system should use minimalist (but effective) tools.
  • Cache data offline when possible: no reason to repeatedly retrieve them from internet.
  • Avoid interpreted languages, web-based desktop apps, JavaScript garbage and background programs that can use a big amount of CPU.
  • Privacy: “Commercial software and operating systems have gotten so terrible about this.”

http://www.commitstrip.com/en/2016/12/22/terminal-forever/


Hardware

  • An old (and cheap) Dell Inspiron 15–3531 (4Gb RAM, Intel Celeron N2830 / 2.16 GHz, 120Gb OCZ SSD )

Operating System

  • Debian 9 “Stretch” ( the project was started with a Debian 8 )

Usually i install the base system without the graphical interface, starting with a ‘netinst’ image.

Once the base system is correctly installed, i add only the base GUI packets, and its dependencies (i3, Xorg and SLiM).


Desktop

  • Window manager: i3
  • Login Manager: SLiM
  • Application launcher: dmenu
  • Screenshots: ImageMagick , with a simple bash script:

  • Screen lock: slimlock
  • Terminal emulator: urxvt

System tools and utilities

  • VPN: OpenVPN and VPNC
  • Clipboard management: xclip
  • Todo manager: tudu
  • Desktop notifications: Dunst
  • Calendar: calcurse
  • File manager: ViFM
  • Calculator: tapecalc
  • Backup: rsync and bash script

Web and Social

  • Web browser: Firefox Beta and ELinks
  • Twitter client: Rainbow Stream
  • Reddit client: RTV
  • Torrent client: Webtorrent
  • RSS/Atom feed reader: newsbeuter

Email

  • MUA : NeoMutt (with maildir storage format)
  • MTA: msmtp
  • MRA: offlineimap (syncs the local mailbox with remote imap)
  • abook to store and retrieve addresses. Integration with neomutt using this snippet in .muttrc :
set query_command = "abook — mutt-query ‘%s’"
bind editor <Tab> complete-query

Security and Privacy

  • Encryption: GnuPG
  • Anonymous browsing: TorBrowser
  • Password management: passwordstore
  • OpenSSH key management: gpg-agent
  • Ads Blocker: ads blocked directly from hosts file

Chat

  • instant messenger: finch
  • irc client: irssi

System monitoring

  • Resource usage and process monitor: htop

Multimedia

  • Audio player: cmus
  • Video player: mplayer
  • Youtube Player/downloader: mps-youtube
  • Audio recording/editing: Audacity
  • Video editing: kdenlive
  • Video processing: HanbrakeCLI
  • Music notation: Musescore
  • Chromecast streaming: stream2chromecast

Images

  • Browsing: feh
  • Editing: GIMP

Office and Documents

  • Spreadsheets: sc
  • Preview Word files: docx2txt
  • Word processing: WordGrinder
  • Spell checker: aspell
  • Scanning: Sane /XSane
  • PDF viewing and annotation: MuPDF
  • Ebook management: Calibre (it can be used also from command line )