~julienxx/castor

A graphical browser for plain-text protocols
Add support for mailto, xmpp, irc links
Add forward button

clone

read-only
https://git.sr.ht/~julienxx/castor
read/write
git@git.sr.ht:~julienxx/castor

You can also use your local clone with git send-email.

#Castor

A graphical client for plain-text protocols written in Rust with GTK. It currently supports the Gemini, Gopher and Finger protocols.

Gemini:

Screenshot

Gopher:

Screenshot

Finger:

Screenshot

Gemini with some theming:

Screenshot

#Installation

Castor needs a recent Rust version >= 1.39. Please consider using Rustup if you OS does not package a recent version.

#Dependencies

You will need some development libraries:

  • openssl
  • gtk+3
  • gdk-pixbuf
  • pango
  • atk
  • cairo

#Build and install

#Building on Ubuntu

  • apt install build-essential rustc cargo libgtk-3-dev libgdk-pixbuf2.0-dev libssl-dev
  • make and make install

#Building on MacOS

See instructions here

#Building on Windows

See instructions here

#Changing settings

You can change some settings like initial URL, colors and delimiters for Headers, Lists, Text and Background. Edit ~/.config/castor/settings.toml and add the values you need. These are the keys currently supported, you can use hex codes, plain colors names or even emojis!

[general]
start_url = "gemini://gemini.circumlunar.space/capcom"
max_width = 200

[colors]
h1 = "red"
h2 = "#FF6347"
h3 = "green"
list = "#C71585"
text = "#FF1493"
background = "#FFC0CB"
[colors.quote]
    foreground="#e4e4e4"
    background="grey"

[characters]
h1 = ">"
h2 = "))"
h3 = "}}}"
list = "🌼 "

[fonts]
[fonts.finger]
    family = "monospace"
    size = 11
[fonts.gemini.text]
    family = "serif"
    size = 11
[fonts.gemini.h1]
    family = "sans"
    size = 16
    style = "normal"
[fonts.gemini.h2]
    family = "monospace"
    size = 13
    style = "italic"
[fonts.gemini.h3]
    family = "monospace"
    size = 12
[fonts.gemini.list]
    family = "sans"
    size = 11
    style = "oblique"
[fonts.gemini.quote]
    family = "sans"
    size = 10
    style = "italic"
[fonts.gopher]
    family = "monospace"
    size = 11

#Using client certificate

Castor expects your certificates to be placed in your home directory and named after the gemini capsule domain. For example to water your plant on gemini://astrobotany.mozz.us/plant you will need to have astrobotany.mozz.us.crt and astrobotany.mozz.us.key available in your home.

#Mailing list

If you have questions, feature requests, bugs or you just want to keep up to date with Castor you can send a message to the mailing list

#Roadmap

You can view my current roadmap here

#Thanks

  • Leonora Tindall for the great article on Rust and GTK that helped me bootstrap this project
  • tiwesdaeg for the incredible icon
  • sloum for the great advices
  • the gemini/gopher/finger community for being awesome