wiki: al mismo nivel que la de movil, con capturas propias
Tenia cinco paginas de texto y una sola captura. Ahora cada apartado tiene la suya, tomadas de esta rama corriendo en un navegador real. - Karvan: el recorrido entero, del menu lateral a la sala con mensajes. - Chats (nueva): la respuesta citada, y como esta hecha sin JavaScript. - Temas (nueva): el modulo con los cuatro temas, y por que Clear-SNH necesita su propio bloque. - Diferencias (nueva): que cambia respecto a la version de movil y por que. - Instalar: multicuenta con OASIS_ACCOUNT, y el aviso de las fuentes que faltan cuando los iconos salen como cuadros. - Estado: lo probado y lo no probado, separado. - Barra lateral de navegacion.
64
Chats.md
Normal file
|
|
@ -0,0 +1,64 @@
|
||||||
|
# Chats
|
||||||
|
|
||||||
|
> ⚠ Rama experimental, no oficial. El Oasis oficial es
|
||||||
|
> https://github.com/epsylon/oasis · [Volver a la portada](Home)
|
||||||
|
|
||||||
|
Los chats de Oasis son **salas cifradas que sí se guardan**: cada mensaje se publica
|
||||||
|
firmado en tu registro SSB y se replica a quien te siga. Son lo contrario de
|
||||||
|
[Karvan](Karvan), que no guarda nada.
|
||||||
|
|
||||||
|
Esta rama no cambia cómo funcionan. Le añade una cosa: **responder citando** un
|
||||||
|
mensaje anterior.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## La pantalla
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
En escritorio el chat se abre en dos columnas: a la izquierda la ficha de la sala
|
||||||
|
—imagen, estado **OPEN**, etiqueta **E2E**, participantes, etiquetas—, y a la derecha
|
||||||
|
el hilo de mensajes con el formulario debajo.
|
||||||
|
|
||||||
|
Arriba, los filtros de siempre: ALL, MINE, RECENT, FAVORITES, OPEN, CLOSED y
|
||||||
|
**Create Chat**.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Responder citando
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Cada burbuja tiene una **flecha ↩**. Al pulsarla, el formulario de abajo se prepara
|
||||||
|
para responder a ese mensaje: aparece una cita con el autor y el principio del texto,
|
||||||
|
y una **✕** para cancelar.
|
||||||
|
|
||||||
|
Al enviar, la respuesta sale con la cita dentro —la barra amarilla de la última
|
||||||
|
burbuja de la captura—, así que se ve a qué contesta sin tener que buscarlo.
|
||||||
|
|
||||||
|
### Cómo está hecho
|
||||||
|
|
||||||
|
Sin JavaScript en el cliente, como el resto de Oasis:
|
||||||
|
|
||||||
|
1. El botón ↩ es un enlace a `?replyTo=<id>#chat-compose`.
|
||||||
|
2. El backend lee ese parámetro y se lo pasa a la vista.
|
||||||
|
3. La vista pinta la cita sobre el formulario y añade un campo oculto `replyTo`.
|
||||||
|
4. Al enviar, el identificador viaja con el mensaje y **se guarda dentro de él**.
|
||||||
|
5. Al pintar el hilo, la vista arma un índice de mensajes por identificador y resuelve
|
||||||
|
cada cita contra él.
|
||||||
|
|
||||||
|
Si el mensaje citado ya no está —se borró, o es más viejo que lo que se carga—, la
|
||||||
|
burbuja sale sin cita en lugar de romperse.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Cuándo usar cada cosa
|
||||||
|
|
||||||
|
| | Chats | [Karvan](Karvan) |
|
||||||
|
|---|---|---|
|
||||||
|
| Dónde viven los mensajes | En tu registro SSB, en disco | Solo en memoria |
|
||||||
|
| Cuánto duran | Para siempre | Hasta que vence la sala |
|
||||||
|
| Se replican a la red | Sí | No |
|
||||||
|
| Quién puede entrar | Miembros del chat | Quien tenga el enlace |
|
||||||
|
| Llamadas | No | Sí |
|
||||||
|
| Sirve para | Lo que quieres conservar | Lo que no |
|
||||||
65
Diferencias.md
Normal file
|
|
@ -0,0 +1,65 @@
|
||||||
|
# Diferencias con la versión de móvil
|
||||||
|
|
||||||
|
> ⚠ Rama experimental, no oficial. El Oasis oficial es
|
||||||
|
> https://github.com/epsylon/oasis · [Volver a la portada](Home)
|
||||||
|
|
||||||
|
Hay dos repositorios hermanos:
|
||||||
|
|
||||||
|
| | |
|
||||||
|
|---|---|
|
||||||
|
| **OASIS_LINUX** (este) | Oasis de escritorio + Karvan + respuesta citada |
|
||||||
|
| **[OASIS_MOBILE](https://gitea.laenre.net/hacklab/OASIS_MOBILE)** | Lo mismo, más una interfaz propia para Android y su envoltorio |
|
||||||
|
|
||||||
|
Las funciones son las mismas. Lo que cambia es cómo se llega a ellas.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## La navegación
|
||||||
|
|
||||||
|
| | Escritorio | Móvil |
|
||||||
|
|---|---|---|
|
||||||
|
| Menú | Dos columnas laterales, agrupadas por temas | Panal de hexágonos en el inicio |
|
||||||
|
| Acceso rápido | No hay | Barra inferior con cuatro módulos a elegir |
|
||||||
|
| Filtros | No hay | Personal / Community, reducen el panal a la mitad |
|
||||||
|
| Nombres de las categorías | Los de epsylon: Community, Library, Multiverse | Los de la rama: Network, Media, Fediverse |
|
||||||
|
|
||||||
|
Esa última fila es una decisión, no un descuido. La versión de móvil viene de antes y
|
||||||
|
sus nombres estaban ya en uso; la de escritorio se mantiene pegada a upstream para que
|
||||||
|
cada versión nueva de epsylon se integre sin conflictos.
|
||||||
|
|
||||||
|
## Las llamadas
|
||||||
|
|
||||||
|
En el escritorio **los permisos los pide el navegador**, que es como funciona la web
|
||||||
|
desde siempre: pulsas Call y Firefox o Chromium preguntan por la cámara.
|
||||||
|
|
||||||
|
En Android hace falta que la aplicación declare los permisos al compilar **y** que su
|
||||||
|
envoltorio implemente `WebChromeClient.onPermissionRequest`. La APK oficial no hace
|
||||||
|
ninguna de las dos cosas, y por eso la rama de móvil trae su propio proyecto Gradle.
|
||||||
|
Está contado en
|
||||||
|
[su wiki](https://gitea.laenre.net/hacklab/OASIS_MOBILE/wiki/Llamadas).
|
||||||
|
|
||||||
|
En resumen: **en escritorio las llamadas no necesitaban desbloquear nada**.
|
||||||
|
|
||||||
|
## El código
|
||||||
|
|
||||||
|
El módulo Karvan es **el mismo fichero por fichero** en los dos repositorios: modelo,
|
||||||
|
vista, rutas, cliente WebRTC y estilos. Se decidió duplicar y adaptar en vez de
|
||||||
|
extraer un paquete común, porque un paquete compartido obligaría a versionar y
|
||||||
|
publicar por separado algo que todavía cambia cada semana.
|
||||||
|
|
||||||
|
Lo que sí difiere:
|
||||||
|
|
||||||
|
- `src/views/fork/hive_nav.js` —el panal, la topbar y la barra inferior— existe en los
|
||||||
|
dos, pero sus funciones empiezan con `if (process.env.OASIS_MOBILE !== '1') return "";`,
|
||||||
|
así que en escritorio no dibujan nada. Está en ambos para que `main_views.js` sea
|
||||||
|
idéntico y las actualizaciones de upstream se apliquen una sola vez.
|
||||||
|
- El fichero de traducciones de la rama, `i18n_fork.js`, tiene en móvil las claves de
|
||||||
|
la interfaz propia; en escritorio solo las del módulo Karvan.
|
||||||
|
- `android/` solo existe en el repositorio de móvil.
|
||||||
|
|
||||||
|
## Qué se comparte de verdad
|
||||||
|
|
||||||
|
Una sala de Karvan creada en el móvil **se puede abrir en el ordenador** si los dos
|
||||||
|
nodos se replican: la invitación viaja como mensaje privado de SSB y el nodo que la
|
||||||
|
recibe adopta la sala. Ese es el puente entre los dos, y es también la parte que deja
|
||||||
|
de ser efímera —el mensaje privado queda en el registro para siempre—.
|
||||||
47
Home.md
|
|
@ -19,44 +19,51 @@ Versión base: **Oasis 0.9.5**. Rama: `PRUEBAS`.
|
||||||
|
|
||||||
## Qué añade respecto al oficial
|
## Qué añade respecto al oficial
|
||||||
|
|
||||||
Una sola cosa, pero grande: **Karvan**, un módulo de salas efímeras con llamadas.
|
Dos cosas, y ninguna cambia la interfaz que ya conoces:
|
||||||
|
|
||||||

|
- **[Karvan](Karvan)**, un módulo de salas efímeras con llamadas de audio y vídeo.
|
||||||
|
- **Responder citando** en los [chats](Chats) de Oasis.
|
||||||
|
|
||||||
El resto es Oasis 0.9.5 tal cual. La interfaz es la del proyecto original: el menú
|
El resto es Oasis 0.9.5 tal cual: el menú lateral por grupos del proyecto original, no
|
||||||
lateral por grupos, no la rejilla de hexágonos, que es de la versión para móvil.
|
la rejilla de hexágonos, que es de la versión para móvil.
|
||||||
|
|
||||||
| | |
|

|
||||||
|
|
||||||
|
| Página | De qué va |
|
||||||
|---|---|
|
|---|---|
|
||||||
| **[Karvan](Karvan)** | Salas que viven solo en memoria y se autodestruyen |
|
| **[Instalar](Instalar)** | Puesta en marcha, TURN y avisos antes de tocar tu `~/.ssb` |
|
||||||
| **[Llamadas](Llamadas)** | Audio y vídeo sobre WebRTC, sin servidores de terceros |
|
| **[Karvan](Karvan)** | Salas efímeras: crearlas, entrar, invitar, qué protege y qué no |
|
||||||
| **[Instalar](Instalar)** | Igual que el oficial |
|
| **[Llamadas](Llamadas)** | WebRTC sin servidores de terceros, y cómo montar un TURN propio |
|
||||||
|
| **[Chats](Chats)** | Los chats cifrados, con respuesta citada |
|
||||||
|
| **[Temas](Temas)** | Cómo se ve el módulo con los cuatro temas |
|
||||||
|
| **[Diferencias con la versión de móvil](Diferencias)** | Qué cambia y por qué |
|
||||||
| **[Estado](Roadmap)** | Qué funciona y qué no |
|
| **[Estado](Roadmap)** | Qué funciona y qué no |
|
||||||
|
|
||||||
|
Todas las capturas de esta wiki están tomadas de esta rama funcionando en un navegador
|
||||||
|
real. Lo que se ve es lo que sale.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Instalación
|
## Karvan, de un vistazo
|
||||||
|
|
||||||
Exactamente igual que el Oasis oficial:
|

|
||||||
|
|
||||||
```sh
|
Una sala efímera: el tiempo que le queda arriba a la derecha, los botones de llamada,
|
||||||
cd src/server && npm install
|
y los mensajes, que **solo viven en la memoria del proceso**. Al vencer el plazo
|
||||||
cd ../.. && ./oasis.sh
|
desaparece todo. Explicado en detalle en **[Karvan](Karvan)**.
|
||||||
```
|
|
||||||
|
|
||||||
Karvan aparece en el menú lateral, en el grupo de comunicación, junto a los chats. Se
|
|
||||||
puede apagar desde `/modules` como cualquier otro módulo.
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Relación con la versión para móvil
|
## Relación con la versión para móvil
|
||||||
|
|
||||||
Hay un repositorio hermano, **OASIS_MOBILE**, con la versión de Android: misma base y
|
Hay un repositorio hermano,
|
||||||
mismo módulo Karvan, pero con una interfaz distinta pensada para el pulgar.
|
**[OASIS_MOBILE](https://gitea.laenre.net/hacklab/OASIS_MOBILE)**, con la versión de
|
||||||
|
Android: misma base y mismo módulo Karvan, pero con una interfaz distinta pensada para
|
||||||
|
el pulgar.
|
||||||
|
|
||||||
El código de Karvan es el mismo en ambos. Lo que cambia es el enganche: aquí un enlace
|
El código de Karvan es el mismo en ambos. Lo que cambia es el enganche: aquí un enlace
|
||||||
en el menú lateral siguiendo el patrón del proyecto original, allí una rejilla de
|
en el menú lateral siguiendo el patrón del proyecto original, allí una rejilla de
|
||||||
hexágonos.
|
hexágonos. Está desarrollado en **[Diferencias](Diferencias)**.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
|
||||||
42
Instalar.md
|
|
@ -13,9 +13,49 @@ cd ../.. && ./oasis.sh
|
||||||
|
|
||||||
Abre `http://localhost:3000`.
|
Abre `http://localhost:3000`.
|
||||||
|
|
||||||
|
Al arrancar verás en el terminal el resumen de siempre y, al final,
|
||||||
|
`Modules loaded: [ 999 ]`. Eso significa que el backend está en pie.
|
||||||
|
|
||||||
## Activar Karvan
|
## Activar Karvan
|
||||||
|
|
||||||
Viene activado. Si no lo ves en el menú lateral, míralo en `/modules`.
|
Viene activado. Si no lo ves en el menú lateral, míralo en `/modules`: aparece entre
|
||||||
|
Jobs y L.A.R.P.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## Varias identidades en el mismo equipo
|
||||||
|
|
||||||
|
Esta rama admite más de una cuenta. La variable `OASIS_ACCOUNT` decide **dónde vive
|
||||||
|
todo**: el `secret`, la base de datos y los blobs.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
./oasis.sh # la de siempre, en ~/.ssb
|
||||||
|
OASIS_ACCOUNT=pruebas ./oasis.sh # otra identidad, en ~/.pruebas
|
||||||
|
```
|
||||||
|
|
||||||
|
El nombre se valida (letras, números, guion y guion bajo, hasta 32 caracteres) porque
|
||||||
|
acaba formando rutas de fichero y hay operaciones destructivas —el modo pánico borra
|
||||||
|
el directorio de la cuenta— que no deben poder apuntar fuera de sitio.
|
||||||
|
|
||||||
|
Sirve para probar esta rama **sin tocar tu identidad real**, que es lo recomendable:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
OASIS_ACCOUNT=pruebas ./oasis.sh gui --host=127.0.0.1 --port=3010
|
||||||
|
```
|
||||||
|
|
||||||
|
> Todavía **no hay selector en la interfaz**: se elige al arrancar. Ver
|
||||||
|
> [Estado](Roadmap).
|
||||||
|
|
||||||
|
## Si los iconos se ven como cuadros
|
||||||
|
|
||||||
|
Oasis usa caracteres Unicode poco comunes para los iconos del menú. Si te salen como
|
||||||
|
□, tu sistema no tiene una fuente que los cubra:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
sudo apt install fonts-noto-core # Debian, Ubuntu y derivadas
|
||||||
|
```
|
||||||
|
|
||||||
|
No es un fallo de Oasis y no afecta a nada más que a cómo se ve.
|
||||||
|
|
||||||
## Configurar un TURN
|
## Configurar un TURN
|
||||||
|
|
||||||
|
|
|
||||||
72
Karvan.md
|
|
@ -6,16 +6,74 @@
|
||||||
Salas de chat que **viven solo en memoria** y se destruyen solas. Nada se escribe en
|
Salas de chat que **viven solo en memoria** y se destruyen solas. Nada se escribe en
|
||||||
disco ni en el registro de SSB.
|
disco ni en el registro de SSB.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## Cómo funciona
|
## Recorrido completo, paso a paso
|
||||||
|
|
||||||
Al crear una sala eliges cuánto vive. A partir de ahí:
|
### 1. Encontrar Karvan
|
||||||
|
|
||||||
- **Se autodestruye por inactividad** (30 minutos por defecto) y **por tiempo
|

|
||||||
absoluto** (2 horas), lo que ocurra antes. El plazo absoluto no se renueva con la
|
|
||||||
actividad: la sala muere igual.
|
Karvan está en el menú lateral derecho, dentro de **Community**, al final de la lista,
|
||||||
- Al vencer, **se borra todo**: mensajes, señales y la lista de miembros.
|
detrás de Chats. Es un enlace normal del menú, hecho con el mismo patrón que los
|
||||||
- Si reinicias Oasis, las salas desaparecen. Es lo correcto: solo existían en memoria.
|
demás.
|
||||||
|
|
||||||
|
> Si los iconos del menú se ven como cuadros vacíos (□), no es un fallo de Oasis: le
|
||||||
|
> falta a tu sistema una fuente con cobertura Unicode amplia. En Debian y derivadas se
|
||||||
|
> arregla con `apt install fonts-noto-core`.
|
||||||
|
|
||||||
|
### 2. Crear una sala
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
La pantalla tiene dos partes. Arriba el formulario: un **nombre opcional** y **cuánto
|
||||||
|
vive** —30 minutos, 2 horas u 8 horas—, con el botón **Create ephemeral room**.
|
||||||
|
|
||||||
|
Debajo, **Active rooms**: las salas que existen ahora mismo en este nodo, con su
|
||||||
|
número de mensajes y lo que les queda de vida.
|
||||||
|
|
||||||
|
Sin nombre, la sala se llama por su identificador. El nombre no es una credencial: no
|
||||||
|
sirve para entrar, solo para reconocerla en la lista.
|
||||||
|
|
||||||
|
### 3. Dentro de la sala
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
De arriba abajo:
|
||||||
|
|
||||||
|
- **‹ Rooms** vuelve a la lista, el nombre de la sala en el centro, y a la derecha el
|
||||||
|
tiempo que le queda. Ese contador baja siempre; no se renueva porque haya
|
||||||
|
conversación.
|
||||||
|
- **server relay** con un punto gris: por dónde van los mensajes ahora mismo. Gris es
|
||||||
|
a través del servidor; se pone verde cuando hay canal directo entre navegadores.
|
||||||
|
- Los **botones de llamada**: 📞 Call, micrófono, cámara y colgar. Ver
|
||||||
|
**[Llamadas](Llamadas)**.
|
||||||
|
- Los **mensajes**, y más abajo el campo para escribir y el de invitar por `@feed-id`.
|
||||||
|
|
||||||
|
### 4. Invitar a alguien
|
||||||
|
|
||||||
|
Dos formas:
|
||||||
|
|
||||||
|
**Pasar el enlace** — el identificador de la sala son 72 bits al azar y es la única
|
||||||
|
credencial que existe.
|
||||||
|
|
||||||
|
**Invitar por identidad** — se pega el `@feed-id` de un contacto y Oasis le manda un
|
||||||
|
**mensaje privado de SSB** con el enlace dentro, sin publicarlo en ningún sitio.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Cuánto vive una sala
|
||||||
|
|
||||||
|
Dos relojes corren a la vez, y se destruye con el que llegue antes:
|
||||||
|
|
||||||
|
| | |
|
||||||
|
|---|---|
|
||||||
|
| **Por inactividad** | 30 minutos sin actividad. Este sí se reinicia con cada mensaje |
|
||||||
|
| **Por tiempo absoluto** | El que elegiste al crearla. **No** se reinicia nunca |
|
||||||
|
| **Tope duro** | 24 horas, aunque se pida más |
|
||||||
|
|
||||||
|
Al vencer, **se borra todo**: mensajes, señales y la lista de miembros. Si reinicias
|
||||||
|
Oasis, las salas desaparecen: es lo correcto, solo existían en memoria.
|
||||||
|
|
||||||
## Quién puede entrar
|
## Quién puede entrar
|
||||||
|
|
||||||
|
|
|
||||||
26
Llamadas.md
|
|
@ -7,13 +7,35 @@ Dentro de una sala de [Karvan](Karvan) hay un botón de llamada. El audio y el v
|
||||||
van **directamente entre los participantes** por WebRTC, cifrados de extremo a extremo
|
van **directamente entre los participantes** por WebRTC, cifrados de extremo a extremo
|
||||||
por el propio protocolo.
|
por el propio protocolo.
|
||||||
|
|
||||||
|
## Los botones
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Están dentro de la sala, encima de los mensajes, y son cuatro:
|
||||||
|
|
||||||
|
| | |
|
||||||
|
|---|---|
|
||||||
|
| **📞 Call** | Inicia la llamada. Es el que dispara la petición de permisos |
|
||||||
|
| **🎤** | Silencia y devuelve el micrófono sin colgar |
|
||||||
|
| **🎥** | Apaga y enciende la cámara sin colgar |
|
||||||
|
| **⛔** | Cuelga y devuelve la sala a su estado inicial |
|
||||||
|
|
||||||
|
Mientras hay llamada, los tres primeros se ponen encendidos y debajo aparece el estado
|
||||||
|
(`mic ON · cam ON`). El vídeo propio y el de los demás salen encima de la barra, en
|
||||||
|
una rejilla que se adapta al número de participantes.
|
||||||
|
|
||||||
|
Los mensajes de la sala siguen funcionando durante la llamada: no hay que elegir entre
|
||||||
|
hablar y escribir.
|
||||||
|
|
||||||
## Permisos de cámara y micrófono
|
## Permisos de cámara y micrófono
|
||||||
|
|
||||||
En escritorio los pide el navegador directamente, la primera vez que inicias una
|
En escritorio los pide el navegador directamente, la primera vez que inicias una
|
||||||
llamada. No hay nada especial que configurar.
|
llamada. No hay nada especial que configurar.
|
||||||
|
|
||||||
En la versión de Android hizo falta un envoltorio propio para poder concederlos; aquí
|
En la versión de Android hizo falta un envoltorio propio para poder concederlos,
|
||||||
no aplica.
|
porque la APK oficial ni declara los permisos ni implementa el método que se los
|
||||||
|
concede al contenido web. Aquí no aplica: eso lo resuelve el navegador. Ver
|
||||||
|
[Diferencias](Diferencias).
|
||||||
|
|
||||||
## Sin servidores de terceros
|
## Sin servidores de terceros
|
||||||
|
|
||||||
|
|
|
||||||
33
Roadmap.md
|
|
@ -3,22 +3,41 @@
|
||||||
> ⚠ Rama experimental, no oficial. El Oasis oficial es
|
> ⚠ Rama experimental, no oficial. El Oasis oficial es
|
||||||
> https://github.com/epsylon/oasis · [Volver a la portada](Home)
|
> https://github.com/epsylon/oasis · [Volver a la portada](Home)
|
||||||
|
|
||||||
|
Sin fechas: esto se hace cuando se puede.
|
||||||
|
|
||||||
## Hecho
|
## Hecho
|
||||||
|
|
||||||
- Base **Oasis 0.9.5**, al día con el proyecto oficial.
|
- Base **Oasis 0.9.5**, al día con el proyecto oficial.
|
||||||
- **[Karvan](Karvan)** con su enlace en el menú lateral, siguiendo el mismo patrón que
|
- **[Karvan](Karvan)** con su enlace en el menú lateral, siguiendo el mismo patrón que
|
||||||
el resto de módulos.
|
el resto de módulos, y su fila en `/modules` en orden alfabético.
|
||||||
- Estilos del módulo en su propia hoja, para que se vea igual con cualquier tema.
|
- Estilos del módulo en su propia hoja, cargada después del tema, **probada con los
|
||||||
|
cuatro temas**. Ver [Temas](Temas).
|
||||||
|
- **Responder citando** en los [chats](Chats), sin JavaScript en el cliente.
|
||||||
- **Sin STUN de terceros**, con configuración para TURN propio.
|
- **Sin STUN de terceros**, con configuración para TURN propio.
|
||||||
|
- **Multicuenta en el arranque**: `OASIS_ACCOUNT=<nombre>` levanta una identidad
|
||||||
|
separada en `~/.<nombre>`, con su propio `secret`, su base de datos y sus blobs.
|
||||||
|
|
||||||
|
## En curso
|
||||||
|
|
||||||
|
- **Selector de identidad en la interfaz.** La base está —el arranque ya soporta
|
||||||
|
varias cuentas— pero falta la pantalla para cambiar de una a otra, que además tiene
|
||||||
|
que reiniciar el proceso.
|
||||||
|
- Poner en marcha un TURN en un pub, para las llamadas fuera de la red local.
|
||||||
|
|
||||||
## Sin empezar
|
## Sin empezar
|
||||||
|
|
||||||
- Poner en marcha un TURN en un pub.
|
|
||||||
- Varias identidades en el mismo equipo con cambio desde la interfaz.
|
|
||||||
- Empaquetado `.deb` de esta rama.
|
- Empaquetado `.deb` de esta rama.
|
||||||
|
- Automatizar la construcción cuando el proyecto oficial publica una versión.
|
||||||
|
|
||||||
|
## Probado y no probado
|
||||||
|
|
||||||
|
**Probado**: arranque con cuenta aislada, crear salas, mensajes, respuesta citada,
|
||||||
|
`/modules`, los cuatro temas, y el panel de llamada en su sitio.
|
||||||
|
|
||||||
|
**No probado**: una llamada real entre dos equipos distintos con TURN de por medio.
|
||||||
|
Lo que está verificado es que el panel se dibuja bien y que el navegador pide los
|
||||||
|
permisos; la negociación entre dos nodos separados por NAT está pendiente.
|
||||||
|
|
||||||
## Diferencias con la versión para móvil
|
## Diferencias con la versión para móvil
|
||||||
|
|
||||||
La versión de Android lleva además una interfaz propia (hexágonos, barra de accesos
|
Están en su propia página: **[Diferencias](Diferencias)**.
|
||||||
rápidos) y algunos módulos recortados por peso. Aquí no: la interfaz es la del
|
|
||||||
proyecto original y están todos los módulos.
|
|
||||||
|
|
|
||||||
55
Temas.md
Normal file
|
|
@ -0,0 +1,55 @@
|
||||||
|
# Temas
|
||||||
|
|
||||||
|
> ⚠ Rama experimental, no oficial. El Oasis oficial es
|
||||||
|
> https://github.com/epsylon/oasis · [Volver a la portada](Home)
|
||||||
|
|
||||||
|
Oasis trae cuatro temas y se cambian en **Settings**. Karvan funciona con los cuatro.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
De izquierda a derecha y de arriba abajo: **Dark-SNH** (el de fábrica), **Clear-SNH**,
|
||||||
|
**Matrix-SNH** y **Purple-SNH**. La misma sala, el mismo módulo.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Por qué Karvan tiene su propia hoja de estilos
|
||||||
|
|
||||||
|
El módulo trae `karvan.css`, aparte de los temas. Es el mismo patrón que usa
|
||||||
|
`highlight.css` en el proyecto original: una hoja que no pertenece a ningún tema
|
||||||
|
concreto porque define **la forma** —las burbujas, los botones redondos de llamada, la
|
||||||
|
rejilla de vídeo— y no los colores de la interfaz.
|
||||||
|
|
||||||
|
Se carga después del tema, así que la forma del módulo se mantiene con cualquiera de
|
||||||
|
los cuatro.
|
||||||
|
|
||||||
|
## La excepción: el tema claro
|
||||||
|
|
||||||
|
**Clear-SNH** usa `!important` en casi todas sus reglas, así que gana siempre sobre
|
||||||
|
cualquier hoja posterior. Es una decisión del tema, no un fallo, y no tiene sentido
|
||||||
|
pelearse con ella a base de más `!important`.
|
||||||
|
|
||||||
|
La solución es la que ya usa Oasis: **que el tema pinte el módulo**. Clear-SNH lleva
|
||||||
|
al final un bloque que traduce Karvan a su paleta clara —burbujas color crema, texto
|
||||||
|
oscuro, títulos naranja—, igual que hace con el resto de la interfaz.
|
||||||
|
|
||||||
|
Sin ese bloque, las burbujas salían negras sobre fondo blanco y el texto secundario en
|
||||||
|
amarillo pálido, ilegible. Se ve la diferencia comparando la captura de arriba a la
|
||||||
|
derecha con cualquier versión anterior.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Si añades un tema
|
||||||
|
|
||||||
|
Basta con copiar uno de los cuatro y cambiarle los colores: Karvan no necesita nada
|
||||||
|
más, porque su forma viene de `karvan.css`.
|
||||||
|
|
||||||
|
Solo si tu tema usa `!important` —como Clear-SNH— tendrás que añadirle un bloque
|
||||||
|
propio para el módulo. La lista de clases que conviene cubrir:
|
||||||
|
|
||||||
|
```
|
||||||
|
.karvan-back .karvan-room-title .kr-title títulos y navegación
|
||||||
|
.karvan-sub .karvan-expire .karvan-live .kr-meta textos secundarios
|
||||||
|
.karvan-room-item cada sala de la lista
|
||||||
|
.karvan-msg .karvan-msg-self las burbujas
|
||||||
|
.km-from .km-text autor y texto del mensaje
|
||||||
|
```
|
||||||
22
_Sidebar.md
Normal file
|
|
@ -0,0 +1,22 @@
|
||||||
|
### Oasis Linux · rama `PRUEBAS`
|
||||||
|
|
||||||
|
**⚠ No es Oasis oficial**
|
||||||
|
[El oficial es este](https://github.com/epsylon/oasis)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
- [Portada](Home)
|
||||||
|
- [Instalar](Instalar)
|
||||||
|
- [Karvan · salas efímeras](Karvan)
|
||||||
|
- [Llamadas](Llamadas)
|
||||||
|
- [Chats](Chats)
|
||||||
|
- [Temas](Temas)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
- [Diferencias con móvil](Diferencias)
|
||||||
|
- [Estado](Roadmap)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
[Versión de Android](https://gitea.laenre.net/hacklab/OASIS_MOBILE)
|
||||||
|
Before Width: | Height: | Size: 62 KiB |
BIN
img/01-karvan-lista.png
Normal file
|
After Width: | Height: | Size: 100 KiB |
BIN
img/02-karvan-sala.png
Normal file
|
After Width: | Height: | Size: 112 KiB |
BIN
img/03-menu-lateral.png
Normal file
|
After Width: | Height: | Size: 104 KiB |
BIN
img/04-chat.png
Normal file
|
After Width: | Height: | Size: 153 KiB |
BIN
img/05-chat-respuesta.png
Normal file
|
After Width: | Height: | Size: 224 KiB |
BIN
img/06-temas.png
Normal file
|
After Width: | Height: | Size: 66 KiB |
BIN
img/07-modules.png
Normal file
|
After Width: | Height: | Size: 127 KiB |
BIN
img/08-portada.png
Normal file
|
After Width: | Height: | Size: 113 KiB |