Skip to content

Hard Hoof OS apps

Need a recipe? Use JEI in game. Need a starting route? Start here

Hard Hoof OS apps

Built-in apps ship in /rom/apps with Hard Hoof OS. Each is plain Volt with an @app header; you can read, copy, and change any of them. Browser and Remote are new in the development build, not in the 0.6.0 download. Pressure and Weather came with 0.6.0.

Hard Hoof OS treats apps as processes that own windows. Open one from its desktop icon, the Horn (Ctrl+Space), by typing its name in the shell, with open, or with proc.launch. Every app draws with the theme's colours, so a theme change repaints it.

Shipped apps

App File What it is
Terminal terminal.volt The shell window
Files files.volt Drive browser
Editor editor.volt Text and Volt editor
Help help.volt Opens the guide in the Editor
System system.volt CPU, power, processes, drives
Appearance appearance.volt Themes
Storage storage.volt Item Tanks, and crafting on an Assembler
Research research.volt A Research Lab's research
Worlds worlds.volt Plan and make worlds on a Dimension Creator; lead a Gateway to them
Printer printer.volt A Matter Printer's field, a layer at a time: break, mine, place
Zone zone.volt A Zone Projector's zone and rules
Devices devices.volt Every machine this computer reaches: its state, what programs can ask it, a way into its app
Browser browser.volt Real web pages as text, through an Internet Dish; the manuals as pages with no dish
Remote remote.volt This computer's Inter-Dimensional Address, a pairing code for Hard Hoof Studio, and who is connected
Pressure pressure.volt Connected pressure chambers, gas blenders, and airlocks
Pile pile.volt A Graphite Pile's state, control rods, and shutdown controls
Weather weather.volt Local weather, radar, and forecast
Hoof Hop hop.volt A goat runs the crags
Mines mines.volt Clear the field without opening a mine
Stack stack.volt Falling blocks
Sketch sketch.volt Pixel art
Beats beats.volt A drum machine and melody maker on the speaker
Calc calc.volt Sums, with a tape
Sky sky.volt Time, weather and the moon over the computer
Map map.volt The ground around the computer from above

Disk or /apps apps appear on the desktop and in the Horn when present.


Terminal

Opens a TTY and runs /rom/lib/shell.volt. As you type, what fits is listed under the line; a command turns green once it names a program; an earlier line that starts the same way shows faintly after the cursor (Right takes it). See Shell.

Files

Browse drives with a sidebar and a file list. Double-click opens a folder, or a file in the Editor; right-click for more. Read-only /rom entries cannot be changed in place. See Drives.

Editor

Volt syntax colours from the theme's terminal palette. Ctrl+S save, Ctrl+R save and run in a new Terminal, Ctrl+Z undo, Ctrl+C / X / V copy, cut, paste lines, Ctrl+G go to line.

System

CPU load graph, power and charge, the process table with End task, drive meters.

Appearance

Pick a theme and the whole screen changes at once; Keep makes it stay after a restart, and closing without keeping puts the old one back. Make my own copies a theme to /etc/themes and opens it in the Editor.

Storage

Needs an Item Controller (touching the computer, or on a Data Cable) piped to Item Tanks and to two named chests (input and output).

Tab Behavior
Stored Grid of items; search; pick one, then Get 1 / 16 / 64 to the output chest
Craft What the Assembler can make; it plans every step and makes the parts first

Research, Worlds

Research drives a Research Lab (pick, Start, Write to disk). Worlds plans a world on a Dimension Creator with a live map, makes it, and leads a Gateway's doorway to it.

Printer

The Matter Printer's field from above, a layer at a time, with ore in the colour of what it gives. Scroll (or click the gauge) to go up and down. Click a block: Break takes it into the printer's store; Mine all takes every one like it in the field, at the printer's pace. Pick an item in the store and an open spot, and Place puts it there. Show the field in the world lights its edges for eight seconds. Reading a layer costs 0.1 J a block.

Zone

The Zone Projector's zone to scale. Drag across the plan (or scroll over it) to size it. Click a sprout for that step of growth; switch No spawns and Low gravity; each rule shows what it draws. Nights runs the night service: spawns off and growth from dusk to dawn.

Devices

Every machine this computer reaches, touching it or on its Data Cables, with a dot for what each is doing (green working, red stopped, faint idle). Pick one for its state now (joules and watts in their units) and every operation a program can ask it, with what each does. Open goes to its own app when it has one (Printer, Zone, Worlds, Storage, Research, Browser). Click its name to rename it; the name then works anywhere an id does.

Browser

Needs an Internet Dish (touching the computer, or on a Data Cable) with power: 2 W on, 8 W while it fetches. The dish fetches and decodes each page; the Browser keeps only the part near the screen, so long pages fit a 64 KB Terminal (about 4 tabs and 3 pictures at a time; more RAM keeps more).

Action How
Go to an address, or search Ctrl+L, type, Enter (words that are not an address search the web)
Follow a link Click; middle-click opens it in a new tab; right-click to open or copy it
Back / forward / reload Alt+Left (or Backspace) / Alt+Right / F5 or Ctrl+R
Tabs Ctrl+T, Ctrl+W, Ctrl+PageDown / Ctrl+PageUp
Bookmarks, history Ctrl+D or the star; Ctrl+H. Both live in /home/.browser
Find in page Ctrl+F, then Enter (Shift+Enter goes back)
Walk the links and fields Tab / Shift+Tab, then Enter

Forms work (text fields, boxes, lists; GET and POST), and pictures arrive as small tiles once they scroll into view. about:home lists bookmarks and recent pages, about:help shows every manual as pages with no dish at all, and about:history lists what you opened. In a Terminal, web <address> opens the Browser, fetch <address> prints a page (-r the raw body, -h the status), and open understands addresses. Programs use /rom/lib/web.volt; man web and man api (Internet Dish) have the details. The Browser is new in the development build; the dish, limits and server settings are in The web & remote access.

Remote

Shows this computer's Inter-Dimensional Address (IDA) in large type, a Pair button that sends a one-use code for Hard Hoof Studio to your chat (never to the computer), and the list of people connected, with a button to end a session. It does what the remote command does. Needs an Internet Dish on the computer's cables; see The web & remote access.

Pressure, Pile, Weather

Pressure runs the pressure chamber, gas blender and airlocks the computer reaches. Pile drives a Graphite Pile: control rods, SCRAM, reset and hold. Weather shows a rain radar with range tabs and a forecast; the desktop clock shows local solar time. The weather, pressure and pile commands do the same from a shell.

The toys

  • Hoof Hop: Space, Up or a click jumps; jump again in the air for a second hop. The best five runs are kept with the runner's name.
  • Mines: left opens, right flags, a click on a number whose flags are all down opens the rest around it. The eye starts a new field; the tabs pick its size.
  • Stack: Left and Right move, Up turns, Down drops faster, Space drops at once, P pauses.
  • Sketch: draw with the left button in one colour and the right in another. Pen, Fill, Line and Pick; Ctrl+Z undoes. Pictures save as .pix files.
  • Beats: click a square to put a note on that step; right-click a lit square to raise it. Space plays and stops; the slider sets the tempo; keys A to K play the melody row by hand. Everyone nearby hears it.
  • Calc: Enter works out a sum; every answer goes on the tape, click one to use it again.
  • Sky: the time, the weather, the moon, and how long until night (and mobs) or morning.
  • Map: the ground around the computer, 49 blocks across; Heights paints it by height.

Add your own app

  1. Write /apps/greeter.volt (or /disk/apps/...):
// @app Greeter | app
let ui = import("ui")
let w = win.open("Greeter", 160, 40, {icon: "app"})
draw.clear(w, ui.theme.window)
draw.text(w, 8, 12, "Hello from Hard Hoof", ui.theme.text)
draw.present(w)
while true {
  let e = event.wait()
  if e.type == "closed" { exit() }
  if e.type == "theme" {
    draw.clear(w, ui.theme.window)
    draw.text(w, 8, 12, "Hello from Hard Hoof", ui.theme.text)
    draw.present(w)
  }
}
  1. It appears on the desktop and in the Horn at the next scan (saving to /apps rescans).
  2. Icons: shipped names (app, volt, gear, map, hoof, ...) are listed in man api.
↑↓ move↵ openesc close