Files
pi-im/README.md

130 lines
4.8 KiB
Markdown
Raw Normal View History

2025-08-04 18:11:24 +00:00
<center>
2025-08-08 07:59:19 +00:00
<img width="100" height="100" src="https://github.com/sunglocto/pi/blob/255bc3749c089e3945871ddf19dd17d14a83f9ff/pi.png">
2025-08-04 18:11:24 +00:00
</center>
2025-08-12 11:04:53 +00:00
[![Linux](https://github.com/sunglocto/pi/actions/workflows/linux.yml/badge.svg)](https://github.com/sunglocto/pi/actions/workflows/linux.yml)
[![Windows](https://github.com/sunglocto/pi/actions/workflows/windows.yml/badge.svg)](https://github.com/sunglocto/pi/actions/workflows/windows.yml)
[![Darwin](https://github.com/sunglocto/pi/actions/workflows/macos.yml/badge.svg)](https://github.com/sunglocto/pi/actions/workflows/macos.yml)
[![FreeBSD](https://github.com/sunglocto/pi/actions/workflows/freebsd.yml/badge.svg)](https://github.com/sunglocto/pi/actions/workflows/freebsd.yml)
2025-08-08 07:59:19 +00:00
<img width="1920" height="1080" alt="image" src="https://github.com/user-attachments/assets/9e2d9209-6ad5-4f22-94d0-4cc18c835372" />
2025-08-06 09:29:30 +00:00
2025-08-05 09:16:48 +00:00
## the XMPP client from hell
2025-08-06 00:07:54 +01:00
> it's 10% code. 20% ai
2025-07-30 16:01:44 +00:00
2025-08-06 00:07:54 +01:00
Experimental and extremely weird XMPP client written in Go. No solicitors.
2025-07-30 16:04:05 +00:00
2025-08-06 00:07:54 +01:00
pi is currently pre-pre-pre-pre alpha software which you should not use as your primary XMPP client.
2025-07-30 16:04:05 +00:00
2025-08-08 16:07:17 +00:00
pi uses [Fyne](https://fyne.io) for the frontend and uses the [Oasis SDK](https://github.com/jjj333-p/oasis-sdk) by [Joseph Winkie](https://pain.agency) for XMPP functionality.
2025-08-04 10:05:43 +01:00
pi is an extremely opinionated client. It aims to have as little extra windows as possible, instead using alt-menus to perform many of the actions you'd see in a typical client.
## διαμόρφωση
(configuration)
2025-08-05 11:58:55 +00:00
When you launch pi, you will be greeted with a create account screen. You will then be able to enter your XMPP account details and then relaunch the application to log in.
2025-08-06 00:07:54 +01:00
If you want to add MUCs or DMs, you must configure the program by editing the pi.xml file. Here is an example configuration:
2025-08-05 17:49:29 +01:00
```xml
<piConfig>
<Login>
<Host>example.com:5222</Host>
<User>user@example.com</User>
<Password>123456789</Password>
<DisplayName>sunglocto</DisplayName>
<TLSoff>false</TLSoff>
<StartTLS>true</StartTLS>
<MucsToJoin>room1@muc.example.com</MucsToJoin>
<MucsToJoin>room2@muc.example.com</MucsToJoin>
</Login>
<Notifications>true</Notifications>
2025-08-08 16:07:17 +00:00
<DMs>person1@example.com</DMs>
2025-08-05 17:49:29 +01:00
</piConfig>
2025-08-04 10:05:43 +01:00
```
2025-08-08 16:07:17 +00:00
The file is usually located at, on GNU/Linux systems:
```
~/.config/fyne/pi-im/Documents/pi.xml
```
This will be changed eventually, likely before a 3b release.
Currently joining and saving DM tabs is not supported, nor is getting avatars, reactions or encryption.
2025-08-04 10:05:43 +01:00
2025-08-08 16:07:17 +00:00
As of writing, pi supports basic message sending and receiving, replies, file upload and corrections.
2025-08-04 10:05:43 +01:00
## να χτίσω
(building)
To build pi, you will need the latest version of Go, at least 1.21. You can grab it [here](https://go.dev).
2025-08-08 16:12:43 +00:00
The build instructions are very simple. Simply clone the repo, fetch the repositories and build the program.
2025-08-04 10:05:43 +01:00
2025-08-08 16:10:26 +00:00
Here is a summary of the commands you would need to use:
2025-08-04 10:05:43 +01:00
```bash
2025-08-08 16:10:26 +00:00
git clone https://github.com/sunglocto/pi-im
cd pi-im
2025-08-04 10:05:43 +01:00
go mod tidy
go build .
2025-08-08 16:10:26 +00:00
./pi-im
2025-08-04 10:05:43 +01:00
```
2025-08-04 18:14:05 +00:00
> Uh, Windows???
2025-08-10 12:40:45 +00:00
The commands above should be virtually identical, aside from changing `./pi-im` to `pi-im.exe`. If you compile it, it will most likely work with no issues:
<img width="1627" height="1022" alt="image" src="https://github.com/user-attachments/assets/5a6c188f-e890-4398-856c-e88f5804e9d2" />
2025-08-04 10:05:43 +01:00
Static executable snapshots are also provided for GNU/Linux systems on every new version, and CI runs on every commit, producing a binary on every successful build, for Linux, Windows and MacOS.
You're welcome.
2025-08-04 10:05:43 +01:00
2025-08-08 16:07:17 +00:00
## εγκατάσταση
(installation)
2025-08-08 16:08:19 +00:00
Pi currently has no consolidated way of installing it. There is an [Arch User Repository package available](https://aur.archlinux.org/pi-im), which is maintained by [snit](https://isekai.rocks/~snit).
2025-08-04 18:07:37 +00:00
2025-08-06 00:07:54 +01:00
## υποστήριξη
(support)
You can file an issue and explain the problem you are having.
If you would like a more instant method of communication, join the [pi XMPP room.](xmpp:pi@room.sunglocto.net?join)
2025-08-06 00:07:54 +01:00
## μαρτυρίες
(testimonials)
From fellow insane and schizophrenic XMPP users:
> anyways this is your "just IM" client things ig.
> this looks like shit
> fyne is the best UI toolkit (sarcastic)
> i am going to explode you
> pi devstream when
2025-08-06 21:05:15 +00:00
<img width="361" height="66" alt="image" src="https://github.com/user-attachments/assets/5a926f6b-1005-4795-a6ef-4e0538bb4d5a" />
<img width="316" height="73" alt="image" src="https://github.com/user-attachments/assets/52309c60-8110-43eb-9c45-56c9cfd82cc4" />
2025-08-06 00:07:54 +01:00
## επιπλέον
2025-08-04 18:07:37 +00:00
(extra)
Pi version numbers are the digits of Pi followed by a letter indicating the phase of development the program is in.
2025-08-04 18:08:37 +00:00
2025-08-04 18:07:37 +00:00
For example, the version string:
2025-08-04 18:08:37 +00:00
2025-08-04 18:07:37 +00:00
`3.14a`
2025-08-04 18:08:37 +00:00
2025-08-04 18:07:37 +00:00
Is the third version produced in the alpha phase.
2025-08-04 18:08:37 +00:00
2025-08-04 18:07:37 +00:00
The digits of Pi will reset back to `3` when moving to a new phase.
2025-08-04 18:08:37 +00:00
If the number gets too long, it will reset to one digit of 2π. Once that gets too long, it will be digits of 3π and etc.
2025-08-04 18:15:28 +00:00
Named after [Psi](https://github.com/psi-im/psi).