A => _upload.sh +7 -0
@@ 1,7 @@
+#!/bin/sh
+# upload.sh DIRECTORY [DOMAIN]
+# Uploads a site to sourcehut pages.
+[ $# != 1 ] && [ $# != 2 ] && printf %s\\n "$0: Bad usage" && exit
+[ -z "$SOURCEHUT_USERNAME" ] && echo 'you need to set $SOURCEHUT_USERNAME' && exit
+[ -z "$SOURCEHUT_PAGES_TOKEN" ] && echo 'you need to set $SOURCEHUT_PAGES_TOKEN' && exit
+cd "$1" && tar -cz * | curl --oauth2-bearer "$SOURCEHUT_PAGES_TOKEN" -Fcontent=@- "https://pages.sr.ht/publish/${2:-$SOURCEHUT_USERNAME.srht.site}"
A => site/gaming.html +23 -0
@@ 1,23 @@
+<!doctype html>
+<html lang="en">
+<head>
+ <link rel="icon" href="favicon.png">
+ <meta charset="utf-8"/>
+ <meta name="author" content="John Gebbie">
+ <link rel="stylesheet" type="text/css" href="./main.css">
+ <title>Handsfree FOSS / Gaming</title>
+</head>
+<body>
+ <h1><a href="./index.html">Handsfree FOSS</a></h1>
+ <h2 id="subtitle">Gaming</h2>
+ <main>
+ <img href="oh dear" alt="WEBSITE UNDER CONSTRUCTION">
+ </main>
+ <footer>
+ <hr>
+ <a href="https://git.sr.ht/~geb/handsfree.dev">Source</a>
+ | 2023
+ <a href="https://johngebbie.com">John Gebbie</a>
+ </footer>
+</body>
+</html>
A => site/index.html +37 -0
@@ 1,37 @@
+<!doctype html>
+<html lang="en">
+<head>
+ <link rel="icon" href="favicon.png">
+ <meta charset="utf-8"/>
+ <meta name="author" content="John Gebbie">
+ <meta name="description" content="Free and open-source software for handsfree computing">
+ <meta name="keywords" content="voice control, voice typing, voice coding, handsfree computing, accessibility, linux">
+ <link rel="stylesheet" type="text/css" href="./main.css">
+ <title>Handsfree FOSS</title>
+</head>
+<body>
+ <h1><a href="./index.html">Handsfree FOSS</a></h1>
+ <main>
+<em>Welcome!</em>
+<p>
+Here we overview software for computing efficiently handsfree. The focus is
+on free and open-source solutions that keep you in control.
+<p>
+Disclaimer: I'm the maintainer of <a href="https://numenvoice.com">Numen</a>,
+so it's obviously the the best voice control.
+ <h2>Pages</h2>
+ <nav>
+ <a href="./voice-control.html">Voice Control</a>
+ <a href="./setup.html">My Setup</a>
+ <a href="./smartphones.html">Smartphones</a>
+ <a href="./gaming.html">Gaming</a>
+ </nav>
+ </main>
+ <footer>
+ <hr>
+ <a href="https://git.sr.ht/~geb/handsfree.dev">Source</a>
+ | 2023
+ <a href="https://johngebbie.com">John Gebbie</a>
+ </footer>
+</body>
+</html>
A => site/main.css +60 -0
@@ 1,60 @@
+html {
+ height: 100%;
+ font-family: monospace;
+ font-size: 15px;
+ line-height: 1.6em;
+}
+
+body {
+ display: flex;
+ flex-direction: column;
+ margin-left: auto;
+ margin-right: auto;
+ padding: 0 1ch;
+ max-width: 800px;
+ height: 100%;
+ background-color: #ffffff;
+ color: #232333;
+}
+
+h1 {
+ text-align: center;
+ font-size: 1.5rem;
+ font-weight: 500;
+ letter-spacing: 0.03rem;
+}
+
+h1 a {
+ text-decoration: wavy underline;
+ text-underline-offset: 0.1rem;
+}
+
+#subtitle {
+ text-align: center;
+}
+
+h2 {
+ font-size: 1.5rem;
+ font-weight: 500;
+ letter-spacing: 0.03rem;
+/* text-decoration: underline #9a9a9a;*/
+ text-decoration: underline pink;
+}
+
+main {
+ flex-grow: 1;
+}
+
+nav {
+ list-style: none;
+ padding-left: 2ch;
+}
+
+nav a {
+ display: block;
+}
+
+footer {
+ margin: 1em 0.25em;
+ text-align: right;
+}
A => site/setup.html +68 -0
@@ 1,68 @@
+<!doctype html>
+<html lang="en">
+<head>
+ <link rel="icon" href="favicon.png">
+ <meta charset="utf-8"/>
+ <meta name="author" content="John Gebbie">
+ <link rel="stylesheet" type="text/css" href="./main.css">
+ <title>Handsfree FOSS / My Setup</title>
+</head>
+<body>
+ <h1><a href="./index.html">Handsfree FOSS</a></h1>
+ <h2 id="subtitle">My Setup</h2>
+ <main>
+These are the main programs I use, but they're just the same power user
+tools I'd use if I typed with a keyboard instead of voice control.
+
+<h2>Window Manager</h2>
+
+I use a tiling window manager so applications don't need to be dragged
+about and I can navigate them nicely just like I would with a keyboard.
+My favorite is <a href="https://github.com/baskerville/bspwm">bspwm</a>,
+but there are others like <a href="https://swaywm.org">Sway</a> and <a
+href="https://dwm.suckless.org">dwm</a>.
+
+<h2>Text Editor</h2>
+
+The text editor I use is <a href="https://neovim.io">Neovim</a>, which
+lets me do fancy autocompletion and modal editing like <em>*indent to end
+of block*</em> and <em>*capitalize every first word*</em> without anything
+voice specific. I recommend turning on relative line numbers (<code>:set
+relativenumber number</code>) so you can easily see you want to <em>*comment
+out five lines*</em> or <em>*go down eight*</em>.
+
+<h2>Web Browser</h2>
+
+The web browser I use is <a href="https://qutebrowser.org">qutebrowser</a>,
+which lets you <em>*click that link*</em> or <em>*copy that block of code*</em>
+by typing a couple keys. It's homepage also has a list alternative tools,
+including add-ons for Firefox and Chromium.
+
+<h2>Terminal</h2>
+
+It's nothing too crazy, but I use the <a
+href="http://software.schmorp.de/pkg/rxvt-unicode.html">urxvt</a>
+terminal emulator with an <a
+href="https://github.com/muennich/urxvt-perls">extension</a> so I
+can select things from the buffer vim-style. There's a similar <a
+href="https://st.suckless.org/patches/keyboard_select">patch for st</a>.
+<p>
+I also get a lot from <a
+href="https://github.com/zsh-users/zsh-autosuggestions">shell
+autosuggestions</a>.
+
+<h2>Getting My Setup</h2>
+
+I've packaged my setup as a <a href="https://git.sr.ht/~geb/tiles">desktop
+environment</a> so it's easy to install (and uninstall!) my configs. It's got
+bunch of other small niceties for voice control like a shell-based filepicker
+and universal pasting with the media key.
+ </main>
+ <footer>
+ <hr>
+ <a href="https://git.sr.ht/~geb/handsfree.dev">Source</a>
+ | 2023
+ <a href="https://johngebbie.com">John Gebbie</a>
+ </footer>
+</body>
+</html>
A => site/smartphones.html +23 -0
@@ 1,23 @@
+<!doctype html>
+<html lang="en">
+<head>
+ <link rel="icon" href="favicon.png">
+ <meta charset="utf-8"/>
+ <meta name="author" content="John Gebbie">
+ <link rel="stylesheet" type="text/css" href="./main.css">
+ <title>Handsfree FOSS / Smartphones</title>
+</head>
+<body>
+ <h1><a href="./index.html">Handsfree FOSS</a></h1>
+ <h2 id="subtitle">Smartphones</h2>
+ <main>
+ <img href="oh dear" alt="WEBSITE UNDER CONSTRUCTION">
+ </main>
+ <footer>
+ <hr>
+ <a href="https://git.sr.ht/~geb/handsfree.dev">Source</a>
+ | 2023
+ <a href="https://johngebbie.com">John Gebbie</a>
+ </footer>
+</body>
+</html>
A => site/voice-control.html +43 -0
@@ 1,43 @@
+<!doctype html>
+<html lang="en">
+<head>
+ <link rel="icon" href="favicon.png">
+ <meta charset="utf-8"/>
+ <meta name="author" content="John Gebbie">
+ <link rel="stylesheet" type="text/css" href="./main.css">
+ <title>Handsfree FOSS / Voice Control</title>
+</head>
+<body>
+ <h1><a href="./index.html">Handsfree FOSS</a></h1>
+ <h2 id="subtitle">Voice Control</h2>
+ <main>
+Voice control can be a very efficient keyboard alternative, but the different
+software have different philosophies.
+
+<h2>Dragonfly/Caster</h2>
+<a href="https://github.com/dictation-toolbox/dragonfly">Dragonfly</a> is a
+framework that abstracts several speech recognition backends and lets you
+program domain specific grammars for voice control. Dragonfly is not an
+out-of-the-box solution in itself, but there is another project called <a
+href="https://github.com/dictation-toolbox/caster">Caster</a>, which builds
+on it and comes configured with rules and grammars for different domains.
+Caster is for people who would like something that focuses on high-level
+application and programming language specific phrases, and takes the role
+of their text editor and window manager. It works on Linux (X11 only),
+Windows and Mac.
+
+<h2>Numen</h2>
+<a href="https://numenvoice.com">Numen</a> is a simple alternative to a
+keyboard where you type by saying syllables and literal words. It's for people
+who would just like something close to a keyboard so they can use standard
+keyboard-focused tools without any integration or switching between phrases.
+It works system-wide on Linux.
+ </main>
+ <footer>
+ <hr>
+ <a href="https://git.sr.ht/~geb/handsfree.dev">Source</a>
+ | 2023
+ <a href="https://johngebbie.com">John Gebbie</a>
+ </footer>
+</body>
+</html>
A => upload.sh +2 -0
@@ 1,2 @@
+#!/bin/sh
+./_upload.sh site handsfree.dev