~admicos/moonlander

Moonlander is the fanciest Gemini client in the entire solar system. (on hiatus)
22 days ago

Jaclyn Brockschmidt via projects

22 days ago

#moonlander

Moonlander was the fanciest Gemini client in the entire solar system.

#IMPORTANT: Maintenance Status

Moonlander has been abandoned for a few months at this point, and will likely not be maintained on it's current form. While you are free to fork and continue dealing with the spaghetti code powering Moonlander, the code in this specific repository has glaring bugs and obviously missing features, which a casual Gemini explorer might want to avoid.

This includes an unresolved bug in the Gemini connection backend that terminates connections to random servers, which might reflect badly upon the servers, when in reality it's the client's fault.

#Features

  • Custom, themeable rendering engine via Cairo & Pango
  • Tries to follow Gnome HIG

#Known Bugs

  • TLS Certificates aren't verified
  • Somewhat high resource usage (for a Gemini client)
  • Cannot navigate backwards through redirections
  • Renderer doesn't behave "native"
    • Cannot select/copy text
    • No interaction other than mouse clicks on links and scrolling

#Planned Features

  • Tabs

  • Render more than just text/gemini and plaintext.

    • Planned: Markdown & images
  • Possibly support other protocols

    • Gopher, etc.
    • Definitely not HTTP, unless excluding HTML
  • Syntax highlighting (?)

    • Waiting on text/gemini preformatting annotations to be somewhat standardized

#Building

git clone https://git.sr.ht/~admicos/moonlander
cd moonlander

cargo build --release

cd target/release
strip -s moonlander # optional, reduces file size by ~50%

#Requirements

  • GTK 3
  • Cairo
  • Pango
  • A new-ish Rust compiler
#Windows

See Gtk-rs Windows requirements

#Configuration

Run Moonlander for the first time to create the configuration defaults.

  • Windows: %APPDATA%/ecmelberk/moonlander/config.toml
  • Linux: $XDG_CONFIG_HOME/moonlander/config.toml ($XDG_CONFIG_HOME is $HOME/.config under most cases)
  • macOS: $HOME/Library/Preferences/com.ecmelberk.moonlander/config.toml

#Embedding

If you want to embed Moonlander's rendering engine in your own application, see the moonrender directory. If your application uses relm, you can use relm-moonrender.

#Patches, Bug Reports & Discussion

  • If you found any issues, please submit a ticket (~admicos/moonlander@todo.sr.ht).
  • For questions, patches or discussion, send an email (~admicos/projects@lists.sr.ht).

For patches sent via email, please make sure you indicate that it's for Moonlander by running the following on your clone of the repo:

git config format.subjectprefix "PATCH moonlander"

#License

Moonlander, Moonrender, relm-moonrender and the Gemini client under the gemini/ directory are all licensed under the MIT License, which is available in the LICENSE file of this repository.