kern-linux

Kern

Fast, Focused, Foundational.


Vision Statement

To define a modern, minimalist computing environment that prioritizes speed, focus, and user control by leveraging the Linux console as a first-class citizen. Kern is a philosophy of computing that rejects the complexity and resource overhead of traditional graphical desktop environments. It combines the power of the Linux kernel, the directness of the framebuffer, and the flexibility of modern TUI (Text-based User Interface) applications to create a cohesive, powerful, and entirely keyboard-driven workspace.


Core Principles

  1. Console First: The primary interface is the Linux Virtual Console, not a graphical display server like X11 or Wayland. All core interactions happen in this environment.

  2. Text as the Universal Interface: TUI and CLI applications are not afterthoughts; they are the primary application model. The environment is optimized for displaying and interacting with text.

  3. Minimalism by Default: The system starts with a minimal base (e.g., Arch Linux or Debian Netinstall). Every component is chosen deliberately. There is no bloat.

  4. Keyboard Driven: Workflows are optimized for keyboard-centric operation, minimizing reliance on the mouse to achieve maximum speed and efficiency.

  5. Composition over Integration: Following the Unix philosophy, the environment is built from simple, independent tools that work together. The user composes their ideal workflow rather than accepting a monolithic, pre-integrated desktop.

Plain Text Productivity

Plain text is foundational to Kern, enabling focused, efficient workflows in development, writing, and productivity. By prioritizing human-readable formats like Markdown, Kern leverages Unix principles for simplicity and composability. Key benefits include:


Why Kern? Why Not Alternatives?

Why not just use a lightweight tiling window manager (i3, dwm, Sway)?

Tiling window managers are a layer of optimization on top of a graphical stack. Kern eliminates the stack itself.

Why not just run tmux/zellij in a regular terminal emulator?

Why not use an existing minimal distro like Alpine or Void?

What about accessibility and graphics work?


System Architecture

The Kern environment is composed of five distinct layers, building from the base hardware up to the application ecosystem.

Layer 0: The Base System

Layer 1: The Console Environment

Layer 2: Session Management

Layer 3: Application Ecosystem

Layer 4: The Graphics & Multimedia Bridge

Methodology: Bypassing the terminal to render graphical content directly to the framebuffer via dedicated applications. The session is seamlessly restored upon exit.

Integrated Document & Media Workflows: Kern handles media through direct framebuffer applications and manages complex documents via a powerful command-line conversion pipeline. PDFs can be read as pure text (pdftotext) or viewed with full fidelity by converting pages to images (pdftoppm + fbi). Office documents and presentations are handled through pandoc and headless LibreOffice (unoconv), allowing you to stay in the console for over 90% of your workflow.


Variants & Hybrid Setups

Kern extends beyond Linux framebuffer setups, enabling keyboard-driven, text-focused workflows in GUI terminals or SSH. This “hybrid” mode uses Zellij (or tmux) as a session manager in a maximized terminal, with seamless switching to the host OS for graphics (e.g., browser/video).

GUI Terminals on macOS/Windows/Ubuntu

SSH Sessions

Example kern-hybrid.sh (download via curl or Git):

#!/bin/bash
# Core setup: Install/configure Zellij, fzf launcher, dotfiles.
# Example: zellij setup --layout default && ln -s ~/.config/kern ~/.zshrc
echo "Kern hybrid ready. Maximize terminal and run 'zellij'."

This variant makes Kern accessible on existing systems, preserving minimalist productivity.


Implementation & Distribution

Delivery Model

Kern is distributed as an installation script (similar to Omakub) that transforms a minimal Linux installation into a complete Kern environment.

Installation Process

  1. User installs a minimal base system (Arch, Debian netinstall, Alpine, etc.)
  2. Runs the Kern installer script: curl -fsSL getkern.sh | bash
  3. Script handles:
    • Framebuffer terminal installation and configuration (fbterm/kmscon)
    • Zellij installation and default layouts
    • Core TUI application installation (ranger, neovim, etc.)
    • fzf launcher setup with keybindings
    • Automatic session restoration configuration
    • Custom /etc/issue branding
    • Shell profile integration

Configuration Philosophy


User Experience (UX) Flow

  1. Boot: The system boots in seconds to a customized, text-based TTY login screen
  2. Login: The user logs in, which automatically executes their shell profile
  3. Session Start: The profile script transparently launches fbterm, which in turn starts or attaches to the user’s persistent zellij session
  4. Workspace: The user is instantly dropped into their fully configured, multi-pane workspace exactly as they left it
  5. Interaction: The user launches applications via the fzf pop-up, manages windows with zellij keybindings, and views media with framebuffer applications, all without leaving the console environment

Remote Access & SSH

How It Works

Mirrored Environments

Because all core applications are text-based, you can create identical Kern environments on multiple machines and switch between them seamlessly via SSH.


Resource Footprint

System Requirements

Ideal Use Cases


Future Development

Roadmap

Phase 1 (MVP): Stable framebuffer environment with core TUI tools

Phase 2: Enhanced launcher with app categories and recent items

Phase 3: Sixel graphics integration for in-terminal image previews

Phase 4: Community application repository and configuration sharing

Phase 5: Remote session management tools (kern-ssh helper scripts)

Community Goals


Technical Notes

Virtual Consoles (TTYs)

Linux provides multiple independent terminal sessions accessible via Ctrl + Alt + F1 through F6. Each virtual console (/dev/tty1, /dev/tty2, etc.) can run separate login sessions, providing kernel-level multitasking without any window manager.

Graphics Standards

Login Screen Customization

The TTY login screen is controlled by /etc/issue. You can customize it with:


Getting Started

  1. Install a minimal Linux distribution (recommended: Arch Linux or Debian netinstall)
  2. Boot to console and log in
  3. Run: curl -fsSL https://getkern.sh | bash
  4. Follow the interactive setup prompts
  5. Log out and back in to start your Kern session

Philosophy

Kern represents a return to computing fundamentals: direct hardware access, composable tools, and user control, anchored in plaintext for future-proof productivity—human-readable, portable, and automation-friendly across environments.

It rejects unnecessary graphical overhead, offering a spectrum from extreme framebuffer console (on Linux) to hybrid setups in GUI terminals or SSH, enabling keyboard-driven text workflows on macOS, Windows, Ubuntu, or beyond. For coding, writing, sysadmin, and research, this delivers unmatched speed, focus, and efficiency.

By blending Unix principles with modern TUIs/CLIs, Kern fuses retro terminal simplicity with 2020s tooling power, adaptable without compromise.

Fast. Focused. Foundational.