Skip to content

Clipboard Monitor

Yorlin Quispe edited this page Mar 14, 2025 · 1 revision

Clipboard Monitor es una aplicación escrita en Rust que permite monitorear y almacenar el historial del portapapeles en segundo plano, funcionando tanto con interfaz gráfica como en modo daemon.


✨ Características

✅ Monitorea el portapapeles y guarda los últimos 10 textos copiados.

✅ Interfaz gráfica para ver y copiar textos anteriores fácilmente.

✅ Funciona como un daemon para ejecutarse en segundo plano.

✅ Guarda el historial en JSON para que persista entre sesiones.

✅ Empaquetado en .deb y .rpm para fácil instalación en Linux.


🚀 ¿Cómo Funciona?

  • La aplicación captura automáticamente lo que copias y lo guarda en /tmp/clipboard_history.json.
  • Si ejecutas la UI, puedes ver el historial y copiar textos previos con un clic.
  • Si ejecutas el daemon, se ejecuta en segundo plano y sigue registrando sin necesidad de abrir la UI.

📥 Instalación

Para instalar Clipboard Monitor en tu sistema, sigue los pasos de la Guía de Instalación.


🛠 Modo Daemon

Si deseas que el monitor del portapapeles corra en segundo plano sin abrir la UI, sigue los pasos en la Configuración del Daemon.


🎯 Colabora en este Proyecto

¡Este es un proyecto de práctica en Rust, y cualquier contribución es bienvenida! 🚀

Si quieres colaborar, revisa la Guía para Contribuidores.


📌 Página 2 - Instalación.md

📥 Instalación

Actualmente, Clipboard Monitor está disponible para Linux en formatos .deb y .rpm.


🔧 Requisitos Previos

Antes de instalar, asegúrate de tener:

  • Linux (Debian, Ubuntu, Fedora, Arch, etc.)
  • Cargo (Rust)
  • Dependencias de X11 y clipboard

En Debian/Ubuntu:

sh
CopiarEditar
sudo apt install libx11-dev libxcb1-dev

En Fedora:

sh
CopiarEditar
sudo dnf install libX11-devel libxcb-devel


📦 Instalar el .deb en Debian/Ubuntu

sh
CopiarEditar
sudo dpkg -i clipboard-monitor_1.0.0_amd64.deb

Si hay dependencias faltantes, corrige con:

sh
CopiarEditar
sudo apt-get install -f


📦 Instalar el .rpm en Fedora/CentOS

sh
CopiarEditar
sudo dnf install clipboard-monitor-1.0.0-1.x86_64.rpm


🚀 Ejecutar la aplicación

  • Modo UI:

    sh
    CopiarEditar
    clipboard-monitor
    
    
  • Modo Daemon:

    sh
    CopiarEditar
    clipboard-monitor --daemon &
    
    

📌 Página 3 - Configuración-del-Daemon.md

⚙️ Configuración del Daemon

Para que Clipboard Monitor se ejecute automáticamente al iniciar el sistema, podemos configurarlo como un servicio de systemd.


📄 Crear el Servicio

Ejecuta:

sh
CopiarEditar
sudo nano /etc/systemd/system/clipboard-monitor.service

Pega lo siguiente:

ini
CopiarEditar
[Unit]
Description=Clipboard Monitor Daemon
After=network.target

[Service]
ExecStart=/usr/local/bin/clipboard-monitor --daemon
Restart=always
User=kdon
Group=kdon
StandardOutput=append:/var/log/clipboard-monitor.log
StandardError=append:/var/log/clipboard-monitor.log

[Install]
WantedBy=default.target


🛠 Activar el Servicio

sh
CopiarEditar
sudo systemctl daemon-reload
sudo systemctl enable clipboard-monitor
sudo systemctl start clipboard-monitor

Para verificar que está corriendo:

sh
CopiarEditar
systemctl status clipboard-monitor


📌 Página 4 - Contribuir.md

🤝 Guía para Contribuidores

¡Gracias por tu interés en contribuir! Este proyecto está en fase de práctica, así que cualquier sugerencia o mejora será bienvenida.


🚀 ¿Cómo Contribuir?

  1. Forkea el Repositorio

  2. Clona tu fork en tu máquina:

    sh
    CopiarEditar
    git clone https://github.com/KDONJS/ClipboardMonitor.git
    cd clipboard-monitor
    
    
  3. Crea una rama para tu contribución:

    sh
    CopiarEditar
    git checkout -b feature-nueva-funcionalidad
    
    
  4. Realiza cambios y sube tu código:

    sh
    CopiarEditar
    git add .
    git commit -m "Agregada nueva funcionalidad"
    git push origin feature-nueva-funcionalidad
    
    
  5. Abre un Pull Request en GitHub. Explícame tu cambio y lo revisaremos juntos. 😃


🔧 Áreas donde puedes contribuir

✅ Mejorar la UI

✅ Optimizar el manejo del portapapeles

✅ Agregar opciones de configuración

✅ Empaquetar para más distribuciones


📌 Página 5 - Estructura-del-Código.md

📂 Estructura del Código

sh
CopiarEditar
clipboard-monitor/
│── src/
│   ├── main.rs         # Logica inicial del app
│── assets/
│   ├── icon.png        # Ícono de la aplicación
│── Cargo.toml          # Configuración de Rust y dependencias
│── README.md           # Descripción del proyecto
│── clipboard-monitor.desktop  # Archivo para agregarlo al menú de Linux


📌 Página 6 - Diagrama.md

📊 Arquitectura del Proyecto

graph TD;
    A[Inicio] -->|¿Modo Daemon?| B{Argumento --daemon}
    B -->|Sí| C[Ejecutar Daemon en Segundo Plano]
    B -->|No| D[Ejecutar Interfaz de Usuario]

    subgraph ClipboardMonitor
        C
        D
    end

    subgraph Daemon
        E[Monitorear Portapapeles cada 1s]
        F[Guardar en /tmp/clipboard_history.json]
        C --> E
        E -->|Texto Copiado| F
    end

    subgraph UI
        G[Cargar historial desde /tmp/clipboard_history.json]
        H[Mostrar en Interfaz de Usuario]
        I[Copiar al Portapapeles]
        D --> G
        G --> H
        H -->|Seleccionar Texto| I
    end

    subgraph Sistema
        J[Usuario Copia Texto]
        J --> E
        I --> J
    end
Loading