Skip to content

Repository files navigation

Redshift GUI

Frontend gráfico en GTK3 para Redshift, pensado para Linux Mint MATE (compatible con cualquier entorno GTK3/X11).

Redshift ajusta la temperatura de color y el brillo de la pantalla. Esta app no reemplaza ni modifica Redshift: solo lo controla mediante subprocess, con sliders y un switch en vez de flags de terminal.

Este es mi primer programa publicado — a partir de ahora voy a ir compartiendo más herramientas por acá.

Python GTK Platform License

Funcionalidades

  • Activar / desactivar Redshift con un switch.
  • Slider de temperatura de color (1000K–10000K).
  • Slider de brillo (0.1–1.0).
  • Restaurar valores por defecto (6000K / 0.75).
  • Recuerda la última configuración usada entre reinicios de la app.
  • Detecta si Redshift no está instalado y avisa en la UI.
  • Muestra errores de forma clara si algún comando falla.

Requisitos

  • Linux con X11 y GTK3.
  • Python 3.8+
  • Redshift instalado en el sistema.
  • PyGObject (bindings de Python para GTK3).

Instalación

Opción A — Paquete .deb (recomendado para Debian/Ubuntu/Mint)

Descargá el .deb desde Releases e instalalo:

sudo apt install ./redshift-gui_1.0.0_all.deb

Esto instala el binario, el lanzador de menú y resuelve las dependencias automáticamente. Para desinstalar:

sudo apt remove redshift-gui

Opción B — Desde el código fuente

sudo apt install redshift python3-gi gir1.2-gtk-3.0
git clone https://github.com/LautaroSantiago/redshift-gui.git
cd redshift-gui
python3 main.py

Uso

  1. Activá el switch "Activar Redshift" para aplicar el filtro.
  2. Ajustá temperatura y brillo con los sliders; los cambios se aplican en tiempo real (con un pequeño debounce para no saturar el sistema mientras arrastrás).
  3. "Restaurar valores" vuelve a 6000K / 0.75.
  4. "Salir" (o cerrar la ventana) guarda tu configuración actual para la próxima vez.

Atajo de teclado (opcional)

Podés asignar un atajo global desde Menú → Preferencias → Métodos abreviados de teclado → Atajos personalizados, apuntando el comando a redshift-gui (si instalaste el .deb) o a python3 /ruta/a/redshift-gui/main.py (si corrés desde el código fuente).

Como la app reutiliza la misma instancia (Gtk.Application), si ya está abierta el atajo solo la enfoca en vez de duplicarla.

Estructura del proyecto

redshift-gui/
├── main.py                 # Punto de entrada
├── app.py                  # Gtk.Application, ciclo de vida
├── window.py                # UI: sliders, switch, botones (sin lógica de negocio)
├── controller.py            # Conecta UI <-> redshift_manager <-> config
├── redshift_manager.py      # Única capa que ejecuta `redshift` via subprocess
├── config.py                 # Persistencia en ~/.config/redshift-gui/config.json
├── packaging/debian/         # Estructura para armar el paquete .deb
├── build_deb.sh               # Script para generar el .deb
└── README.md

Arquitectura en capas: la UI (window.py) no sabe nada de Redshift ni de subprocess; solo dispara callbacks. El controller.py orquesta redshift_manager.py (ejecución de comandos) y config.py (persistencia). Esto permite testear la lógica de Redshift de forma aislada y cambiar la UI sin tocar el resto.

Detalles técnicos

  • Cada aplicación de color usa redshift -P -O <temp> -b <brillo>. El flag -P resetea las rampas de gamma atómicamente antes de aplicar el nuevo valor, evitando que ajustes sucesivos se acumulen sobre el gamma ya cargado.
  • Los cambios de slider tienen un debounce de 150ms (GLib.timeout_add) para no disparar un proceso redshift por cada píxel de arrastre.
  • La configuración persiste en ~/.config/redshift-gui/config.json.

Solución de problemas

Problema Causa probable Solución
"Redshift no está instalado" Falta el binario sudo apt install redshift
ModuleNotFoundError: No module named 'gi' Faltan bindings de GTK sudo apt install python3-gi gir1.2-gtk-3.0
Pantalla se pone negra Versión vieja sin -P, o proceso redshift colgado redshift -x y actualizar redshift_manager.py
Ventana se abre vacía Falta self.show_all() en window.py Ya corregido en este repo

Licencia

MIT — ver LICENSE.

Autor

Lautaro Subeldia

GitHub: https://github.com/LautaroSantiago

About

Frontend gráfico en GTK3 para Redshift, pensado para Linux Mint MATE (compatible con cualquier entorno GTK3/X11).

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages