All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Syntax highlighting for preformatted text blocks with alt text (#252, #263, wiki page)
- Client certificates can be restricted to certain paths of a host (#115)
header
config option in[subscriptions]
to allow disabling the header text on the subscriptions page (#191)- Selected link and scroll position stays for non-cached pages (#122)
- Keybinding to open URL with URL handler instead of configured proxy (#143)
include
theme key to import themes from an external file (#154, #290)- Support SOCKS5 proxying by setting
AMFORA_SOCKS5
environment variable (#155) - When bookmarking a page, the first level one heading is suggested as the name (#267, #293)
- Confirmation prompts for URL schemes in new
[url-prompts]
config section (#301, #302)
- Center text automatically, removing
left_margin
from the config (#233) max_width
defaults to 80 columns instead of 100 (#233)- Tabs have the domain of the current page instead of numbers (#202)
- Closing Amfora with q was removed in favor of Shift-q (#243)
- Paging up or down scrolls by 50% instead of 75%, to match
less
(#303) - Update deps, require Go 1.17 (#336)
- Show local directory index file if available (#319)
- Updated Project Gemini URLs (#342)
- Modal can't be closed when opening non-gemini text URLs from the commandline (#283, #284)
- External programs started by Amfora remain as zombie processes (#219)
- Prevent link lines (and other types) from being wider than the
max_width
setting (#280) new:7
on new tab page fails to open link (#306)- Slashes aren't decoded in redirect URLs (#322, #324)
- Typing
localhost
in the bottom bar actually loads localhost instead of searching (#326, #327)
- Preformatted text color showing even when
color = false
(bug since v1.8.0 at least) (#278) - Link numbers and link text in color even when
color = false
(regression in v1.9.0) (#278)
- Deadlock when loading an invalid
about:
URL (#277) - Crash when rendering text from stdin
- Support for version 1.1 JSON feeds
- Copy current URL or selected URL to clipboard (#220, #225)
- Uses C and c by default
- Configurable keybindings for scrolling on pages (#211, #222)
- Ability to save
about:
pages (#210, #236) bind_beginning
andbind_end
keybindings- Display gemtext from stdin (#205, #242)
- Specifying
default
in the theme config uses the terminal's default background color, including transparency (#244, #245) - Redirects occur automatically if it only adds a trailing slash (#271)
- Non-gemini links are underlined by default to help color blind users (#189)
- Text and element colors of default theme change to be black on terminals with light backgrounds (#181)
- Support paths with spaces in
[url-handlers]
config settings (#214) - Display info modal when opening URL with custom application
- Files can be opened by relative path on the commandline (#231, #257)
- Support keybindings that use Shift (#269)
- Bookmarks are stored using XML in the XBEL format, old bookmarks are transferred (#68)
- Text no longer disappears under the left margin when scrolling (regression in v1.8.0) (#197)
- Default search engine changed to geminispace.info from gus.guru
- The user's terminal theme colors are used by default (#181)
- By default, non-gemini URI schemes are opened in the default application. This requires a config change for previous users, see the wiki (#207)
- Windows uses paths set by
XDG
variables overAPPDATA
if they are set (#255) - Treat status codes like 22 as equivalent to 20 as per the latest spec (#266)
- Show minimal loading page instead of
about:newtab
when loading a URL in a new tab (#272)
- Favicon support (#199)
- The default Amfora theme, get it back here (#181)
- Help text is now the same color as
regular_text
in the theme config - Non-ASCII (multibyte) characters can now be used as keybindings (#198, #200)
- Possible subscription update race condition on startup
- Plaintext documents are escaped properly (regression in v1.8.0)
- Help page scrollbar color matches what's in the theme config
- Regression where lists would not appear if
bullets = false
(#234, #235) - Support multiple bookmarks with the same name
- Cert change message grammar: "an security" -> "a security" (#274)
- Display an error modal for status codes that can't be handled
- Prevent user from getting trapped in the help menu when keybindings are pressed (#241, #261)
- Media type handlers - open non-text files in another application (#121, #134)
- Ability to set custom keybindings in config (#135)
- Added scrollbar, by default only appears on pages that go off-screen (#89, #107)
- More internal about pages, see
about:about
(#160, #187)
- Update cview to
d776e728ef6d2a9990a5cd86a70b31f0678613e2
for large performance and feature updates (#107) - Update to tcell v2 (dependency of cview)
- Display page even if mediatype params are malformed (#141)
- Sensitive input fields (status code 11) display with asterisks over the text (#106)
- Don't use cache when URL is typed in bottom bar (#159)
- Fix downloading of pages that are too large or timed out
about:
URLs can be typed into the bottom bar (#167)- Bookmarks modal closes on ESC like the others (#173)
- Handle empty META string (#176)
- Whitespace around the URL entered in the bottom bar is stripped (#184)
- Don't break visiting IPv6 hosts when port 1965 is specified (#195)
- More reliable start, no more flash of unindented text, or text that stays unindented (#107)
- Pages with ANSI resets don't use the terminal's default text and background colors (#107)
- ANSI documents don't leak color into the left margin (#107)
- Rendering very long documents is now ~96% faster, excluding gemtext parsing (#26, #107)
- Due to that same change, less memory is used per-page (#26, #107)
- Viewing subscriptions after subscribing to a certain user page won't crash Amfora (#157)
- Fixed bug that caused Amfora to crash when subscribing to a page (#151)
- Subscriptions to feeds and page changes (#61)
- Opening local files with
file://
URIs (#103, #117) show_link
option added in config to optionally see the URL (#133)- Support for Unicode in domain names (IDNs)
- Unnecessarily encoded characters in URLs will be decoded (#138)
- URLs are NFC-normalized before any processing (#138)
- Links to the wiki in the new tab
- Cache times out after 30 minutes by default (#110)
about:version
page (#126)
- Updated go-gemini to v0.11.0
- Supports CN-only wildcard certs
- Time out when header takes too long
- Preformatted text is now light yellow by default
- Downloading a file no longer uses a second request
- You can go back to the new tab page in history (#96)
- Single quotes are used in the default config for commands and paths so that Windows paths with backslashes will be parsed correctly
- Downloading now uses proxies when appropriate
- User-entered URLs with invalid characters will be percent-encoded (#138)
- Custom downloads dir is actually used (#148)
- Empty quote lines no longer disappear
- Support client certificates through config (#112)
ansi
config setting, to disable ANSI colors in pages (#79, #86)- Edit current URL with e (#87)
- If
emoji_favicons
is enabled, new bookmarks will have the domain's favicon prepended (#69, #90) - The
BROWSER
env var is now also checked when opening web links on Unix (#93) - More accurate error messages based on server response code
- Disabling the
color
config setting also disables ANSI colors in pages (#79, #86) - Updated go-isemoji to v1.1.0 to support Emoji 13.1 for favicons
- The web browser code doesn't check for Xorg anymore, just display variables (#93)
- Bookmarks can be made to non-gemini URLs (#94)
- Remove pointless directory fallbacks (#101)
- Don't load page from cache when redirected to it (#114)
- XDG user dir file is parsed instead of looking for XDG env vars (#97, #100)
- Support paths with spaces in HTTP browser config setting (#77)
- Clicking "Change" on an existing bookmark without changing the text no longer removes it (#91)
- Display HTTP Error if "Open In Portal" fails (#81)
- Support ANSI color codes again, but only in preformatted blocks (#59)
- Make the
..
command work lke it used to in v1.4.0
- Proxy support - see the
[proxies]
section in the config (#66, #80) - Emoji favicons can now be seen if
emoji_favicons
is enabled in the config (#62) shift_numbers
key in the config was added, so that non US keyboard users can navigate tabs (#64)- F1 and F2 keys for navigating to the previous and next tabs (#64)
- Resolving any relative path (starts with a
.
) in the bottom bar is supported, not just..
(#71) - You can now set external programs in the config to open other schemes, like
gopher://
ormagnet:
(#74) - Auto-redirecting can be enabled - redirect within Gemini up to 5 times automatically (#75)
- Help page now documents paging keys (#78)
- The new tab page can be customized by creating a gemtext file called
newtab.gmi
in the config directory (#67, #83)
- Update to go-gemini v0.8.4
- Two digit (and higher) link texts are now in line with one digit ones (#60)
- Race condition when reloading pages that could have caused the cache to still be used
- Prevent panic (crash) when the server sends an error with an empty meta string (#73)
- URLs with with colon-only schemes (like
mailto:
) are properly recognized - You can no longer navigate through the history when the help page is open (#55, #78)
- Theming - check out default-config.toml for details (#46)
- Tab now also enters link selecting mode, like Enter (#48)
- Number keys can be pressed to navigate to links 1 through 10 (#47)
- Permanent redirects are cached for the session (#22)
.ansi
is also supported fortext/x-ansi
files, as well as the already supported.ans
- Documented Ctrl-C as "Hard quit"
- Updated cview to latest commit:
cc7796c4ca44e3908f80d93e92e73694562d936a
- The bottom bar label now uses the same color as the tabs at the top
- Tab and blue link colors were changed very slightly to be part of the 256 Xterm colors, for better terminal support
- You can't change link selection while the page is loading
- Only one request is made for each URL -
v1.3.0
accidentally made two requests each time (#50) - Using the
..
command doesn't keep the query string (#49) - Any error that occurs when downloading a file will be displayed, and the partially downloaded file will be deleted
- Allow for opening a new tab while the current one is loading
- Pressing Escape after typing in the bottom bar no longer jumps you back to the top of the page
- Repeated redirects where the last one is cancelled by the user doesn't leave the
Loading...
text in the bottom bar (#53)
- Downloading content (#38)
- Configurable page size limit -
page_max_size
in config (#30) - Configurable page timeout -
page_max_time
in config - Link and heading lines are wrapped just like regular text lines
- Wrapped list items are indented to stay behind the bullet (#35)
- Certificate expiry date is stored when the cert IDs match (#39)
- What link was selected is remembered as you browse through history
- Render ANSI codes in
text/x-ansi
pages, or text pages that end with.ans
(#45)
- Pages are rewrapped dynamically, whenever the terminal size changes (#33)
- TOFU warning message mentions how long the previous cert was still valid for (#34)
- Many potential network and display race conditions eliminated
- Whether a tab is loading stays indicated when you switch away from it and go back
- Plain text documents are displayed faithfully (there were some edge conditions)
- Opening files in portal.mozz.us uses the
http
setting in the config (#42)
- Alt-Left and Alt-Right for history navigation (#23)
- You can type
..
in the bottom bar to go up a directory in the URL (#21) - Error popup for when input string would result in a too long out-of-spec URL (#25)
- Paging, using d and u, as well as Page Up and Page Down (#19)
- Esc can exit link highlighting mode (#24)
- Selected link URL is displayed in the bottom bar (#24)
- Pressing Ctrl-T with a link selected opens it in a new tab (#27)
- Writing
new:N
in the bottom bar will open link number N in a new tab (#27) - Quote lines are now in italics (#28)
- Bottom bar now says
URL/Num./Search:
when space is pressed - Update to go-gemini v0.6.0
- Help layout doesn't have borders anymore
- Pages with query strings are still cached (#29)
- URLs or searches typed in the bottom bar are not loaded from the cache (#29)
- Actual unicode bullet symbol is used for lists: U+2022
- Performance when loading very long cached pages improved (#26)
- Doesn't crash when wrapping certain complex lines (#20)
- Input fields are always in focus when they appear (#5)
- Reloading the new tab page doesn't cause an error popup
- Help table cells are hardwrapped so the text can still be read entirely on an 80-column terminal
- New tab text is wrapped to terminal width like other pages (#31)
- TOFU "continue anyway" popup has a question mark at the end
- Bookmarks (#10)
- Support over 55 charsets (#3)
- Search using the bottom bar
- Add titles to all modals
- Store ports in TOFU database (#7)
- Search from bottom bar
- Wrapping based on terminal width (#1)
left_margin
config option (#1)- Right margin for text (#1)
- Desktop entry file
- Option to continue anyway when cert doesn't match TOFU database
- Display all
text/*
documents, not just gemini and plain (#12) - Prefer XDG environment variables if they're set, to specify config dir, etc (#11)
- Version and help commands -
-v
,--version
,--help
,-h
(#14)
- Connection timeout is 15 seconds (was 5s)
- Hash
SubjectPublicKeyInfo
for TOFU instead (#7) wrap_width
config option becamemax_width
(#1)- Make the help table look better
- Opening multiple URLs from the command line
- Reset bottom bar on error / invalid URL
- Side scrolling doesn't cut off text on the left side (#1)
- Mark status code 21 as invalid
- Bottom bar is not in focus after clicking Enter
- Badly formed links on pages can no longer crash the browser
- Disabling color in config affects UI elements (#16)
- Keep bold for headings even with color disabled
- Don't make whole link text bold when color is disabled
- Get domain from URL for TOFU, not from certificate
Initial release.
- Tabbed browsing
- TOFU
- Styled content
- Basic history for each tab
- Input