Repository navigation
Clipboard Monitor
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.
✅ 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.
- 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.
Para instalar Clipboard Monitor en tu sistema, sigue los pasos de la Guía de Instalación.
Si deseas que el monitor del portapapeles corra en segundo plano sin abrir la UI, sigue los pasos en la Configuración del Daemon.
¡Este es un proyecto de práctica en Rust, y cualquier contribución es bienvenida! 🚀
Si quieres colaborar, revisa la Guía para Contribuidores.
Actualmente, Clipboard Monitor está disponible para Linux en formatos .deb y .rpm.
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
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
sh
CopiarEditar
sudo dnf install clipboard-monitor-1.0.0-1.x86_64.rpm
-
Modo UI:
sh CopiarEditar clipboard-monitor -
Modo Daemon:
sh CopiarEditar clipboard-monitor --daemon &
Para que Clipboard Monitor se ejecute automáticamente al iniciar el sistema, podemos configurarlo como un servicio de systemd.
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
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
¡Gracias por tu interés en contribuir! Este proyecto está en fase de práctica, así que cualquier sugerencia o mejora será bienvenida.
-
Forkea el Repositorio
-
Clona tu fork en tu máquina:
sh CopiarEditar git clone https://github.com/KDONJS/ClipboardMonitor.git cd clipboard-monitor -
Crea una rama para tu contribución:
sh CopiarEditar git checkout -b feature-nueva-funcionalidad -
Realiza cambios y sube tu código:
sh CopiarEditar git add . git commit -m "Agregada nueva funcionalidad" git push origin feature-nueva-funcionalidad -
Abre un Pull Request en GitHub. Explícame tu cambio y lo revisaremos juntos. 😃
✅ Mejorar la UI
✅ Optimizar el manejo del portapapeles
✅ Agregar opciones de configuración
✅ Empaquetar para más distribuciones
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
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