Skip to content

wxPython MOO client with MCP 2.1, ANSI, and fuzzy love

License

MIT, MIT licenses found

Licenses found

MIT
LICENSE
MIT
LICENSE.wxasync
Notifications You must be signed in to change notification settings

emersonrp/wxpymoo

Repository files navigation

wxpymoo

wxpymoo (pronounced "wispy-moo") is a wxPython MOO/MUD client, very work-in-progress. It's intended to run on Windows, MacOS, and Linux/etc.

This is a response to Andrew Wilson's fantastic tkMOO-light MOO client being long abandoned, tk-based, which is ugly, and coded in TCL which ouch. So I thought I'd see if I could reproduce the 75% of it that I use, using Perl which I understand, and Wx which looks at least somewhat modern.

Which I did. And then I started discovering how difficult it is to package and release wxPerl applications.

So I punted, and reimplemented the entire thing in wxPython. And here we are.

Done

  • Connects to arbitrary host/port combinations
  • Contains a "worlds list" full of ~50 currently-active MOOs/MUDS/etc to choose from.
  • ANSI 16, 256, and 24-bit support, as well as FANSI; multiple color themes for core ANSI colors
  • Partial MCP/2.1 implementation -- mcp-negotiate is implemented; mcp-cord only partially.
  • MCP packages:
    • dns-com-awns-displayurl
    • dns-com-awns-rehash (partial)
    • dns-com-awns-serverinfo
    • dns-com-awns-status (partial)
    • dns-com-vmoo-client
    • dns-com-vmoo-smartcomplete
    • dns-org-mud-moo-simpleedit
  • A growing number of MUD protocols supported:
  • Multiple connections supported via tabbed interface
  • SSL support per-world
  • Works at least reasonably well on Linux, MacOS, Windows.
  • Basic but functional command history.
  • Tab-complete, currently fed from dns-com-vmoo-smartcomplete

Immediate Concerns

  • fix output pane scroll-to-bottom behavior to dwym.
  • More keyboard accelerators; page-up/down etc
  • Finish toast-style popups for dns-com-awns-status et al

To do

  • Add proper prefs and world/connection handling (85% done)
  • Pondering schemes to scrape online MOO lists to offer suggestions. (70% done)
  • Start rolling binary packages for all platforms once it's remotely useful to anyone but me.
  • Per-world settings? Colors, fonts?
  • Finish implementation of MCP 2.1 and the various supported packages.
  • More MCP packages as I find them.
  • MOO object browser, like MacMOOSE but hopefully nicer.
  • Implement "SSH Forwarding" connection type.
  • color theme editor
  • Support more MUD protocols
  • More complete VT100 support
  • Character-mode improvements for non-MOO worlds

Blue-sky

  • HTML help, using jtext?
  • MIME-based external apps, ie mplayer for audio/flac etc? MCP package to accept MIME+data? dns-com-vmoo-mmedia?
  • inline MOO syntax highlighting? Like, detect the output of "@list $player:tell" and auto-highlight it?

Guiding thoughts

  • Monospaced fonts and line-based terminal output are not mutually incompatible with intuitive, pleasant UIs.
  • There are many wheels out there that have been invented well already. My MOO client doesn't need its own built-in text editor. Lather, rinse, repeat.
  • Nobody's living on a shell account on a VMS machine. The MOO doesn't need to be a black-and-white culdesac. There are dozens of interesting things a MOO client could do, connected to the 21st-century Internet, that I haven't thought of yet. Detect chat in a different language and offer to translate? Tweet you when your friends log on? Display Google Maps for a MOO that knows how to host that?

Contributors

Credits

wxpymoo contains:

  • wxasync (c) 2018 Christian Bodt
  • EnhancedStatusBar (c) 2005 Andrea Gavana and Nitro
  • Feather Icons (c) 2013-2017 Cole Bemis
  • The color themes were lovingly lifted from Terminal Sexy by George Czabania

wxpymoo owes a great debt to tkMOO-light by Andrew Wilson.

Dependencies

Windows / Mac users:

  • Clone this repo
  • Go to the Python link above, get the latest version of Python
  • Install it
  • Open a terminal, type pip3 install wxPython
  • Double-click "wxpymoo.py" inside the wxpymoo directory

Linux / etc users:

  • Clone this repo
  • install the latest version of python3 and of wxpython from your distribution
  • Either run ./wxpymoo.py from a terminal or double-click it in your file manager

About

wxPython MOO client with MCP 2.1, ANSI, and fuzzy love

Topics

Resources

License

MIT, MIT licenses found

Licenses found

MIT
LICENSE
MIT
LICENSE.wxasync

Stars

Watchers

Forks

Packages

No packages published

Languages