From 2eb145f3bb00334eab851f3e7e9ad73fc8b48eb3 Mon Sep 17 00:00:00 2001 From: alejandrogs73 Date: Sun, 27 Sep 2026 20:52:56 +0200 Subject: [PATCH] GTK: tema Everforest e iconos Papirus-Dark MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - install.sh tiene un paso nuevo, gtk: compila Everforest-GTK-Theme (verde, oscuro, medium) en ~/.themes desde un commit fijo, lo enlaza para GTK 4 y pone verdes las carpetas de Papirus (papirus-folders). - La parte de GTK 2 del tema trae los colores de Gruvbox, porque su plantilla no coincide con lo que sustituye su script. Se cambian por Everforest medium; pinentry-gtk es GTK 2 y se veía con otros colores. - home/: .gtkrc-2.0 y settings.ini de GTK 3 y 4 con el tema y Papirus-Dark. - dwm: pinentry-gtk flota (antes ocupaba toda la pantalla). Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_016UdJsHrbkmzhoCb6TthP2m --- README.md | 13 +++++++--- home/.config/gtk-3.0/settings.ini | 5 ++++ home/.config/gtk-4.0/settings.ini | 5 ++++ home/.gtkrc-2.0 | 3 +++ install.sh | 43 +++++++++++++++++++++++++++---- suckless/dwm/config.h | 1 + 6 files changed, 62 insertions(+), 8 deletions(-) create mode 100644 home/.config/gtk-3.0/settings.ini create mode 100644 home/.config/gtk-4.0/settings.ini create mode 100644 home/.gtkrc-2.0 diff --git a/README.md b/README.md index 5a2dfc2..57bbf74 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ En un Void recién instalado, como tu usuario (pide sudo cuando hace falta): git clone ssh://forgejo@ssh.alejandrogs.es/alejandrogs73/suckless.git ~/suckless cd ~/suckless && ./install.sh -Hace cinco pasos, que también se pueden lanzar por separado +Hace seis pasos, que también se pueden lanzar por separado (`./install.sh enlaces`, por ejemplo) y repetir sin problema: 1. `paquetes`: instala con xbps todo lo que usa la configuración. @@ -28,12 +28,19 @@ Hace cinco pasos, que también se pueden lanzar por separado 3. `enlaces`: enlaza cada archivo de `home/` en `~`. Si ya existía un archivo distinto, lo guarda como `.bak`. Como son enlaces, editar `~/.bashrc` es editar el repo. -4. `gnupg`: para después de copiar `~/.gnupg` a mano (de un USB, por +4. `gtk`: compila el tema [Everforest GTK](https://github.com/Fausto-Korpsvart/Everforest-GTK-Theme) + (verde, oscuro, paleta medium) en `~/.themes`, en una versión fija, y lo + enlaza para las apps de GTK 4. Corrige los colores de la parte de GTK 2 + (el tema trae los de Gruvbox) y pone verdes las carpetas de Papirus. Los + iconos son Papirus-Dark en todo. Si una actualización de + `papirus-icon-theme` devuelve las carpetas a azul, basta con repetir este + paso. +5. `gnupg`: para después de copiar `~/.gnupg` a mano (de un USB, por ejemplo). Arregla los permisos, pone `pinentry-gtk` (en una tty cae a curses solo), activa el agente SSH de gpg y añade a `sshcontrol` las subclaves de autenticación. `.bashrc` ya apunta `SSH_AUTH_SOCK` al agente. Si `~/.gnupg` no existe todavía, no hace nada. -5. `sistema`: copia `sistema/` en `/`, activa los servicios de runit (dbus, +6. `sistema`: copia `sistema/` en `/`, activa los servicios de runit (dbus, elogind, polkitd, NetworkManager, bluetoothd, acpid, chronyd), quita dhcpcd y wpa_supplicant (NetworkManager ya gestiona la red) y añade el usuario a los grupos audio, video, input, network y bluetooth. diff --git a/home/.config/gtk-3.0/settings.ini b/home/.config/gtk-3.0/settings.ini new file mode 100644 index 0000000..b07ff2f --- /dev/null +++ b/home/.config/gtk-3.0/settings.ini @@ -0,0 +1,5 @@ +# El tema lo instala install.sh (paso gtk). +[Settings] +gtk-theme-name=Everforest-Green-Dark-Medium +gtk-icon-theme-name=Papirus-Dark +gtk-application-prefer-dark-theme=1 diff --git a/home/.config/gtk-4.0/settings.ini b/home/.config/gtk-4.0/settings.ini new file mode 100644 index 0000000..b07ff2f --- /dev/null +++ b/home/.config/gtk-4.0/settings.ini @@ -0,0 +1,5 @@ +# El tema lo instala install.sh (paso gtk). +[Settings] +gtk-theme-name=Everforest-Green-Dark-Medium +gtk-icon-theme-name=Papirus-Dark +gtk-application-prefer-dark-theme=1 diff --git a/home/.gtkrc-2.0 b/home/.gtkrc-2.0 new file mode 100644 index 0000000..f92b938 --- /dev/null +++ b/home/.gtkrc-2.0 @@ -0,0 +1,3 @@ +# GTK 2 (pinentry-gtk, entre otros). El tema lo instala install.sh (paso gtk). +gtk-theme-name="Everforest-Green-Dark-Medium" +gtk-icon-theme-name="Papirus-Dark" diff --git a/install.sh b/install.sh index 8885a41..20f4026 100755 --- a/install.sh +++ b/install.sh @@ -2,8 +2,8 @@ # Deja un Void Linux recién instalado con este escritorio: paquetes, programas # de suckless, enlaces de la configuración en ~ y archivos de sistema. # -# Uso: ./install.sh [paquetes] [suckless] [enlaces] [gnupg] [sistema] -# Sin argumentos hace los cinco pasos, en ese orden. Se ejecuta como el +# Uso: ./install.sh [paquetes] [suckless] [enlaces] [gtk] [gnupg] [sistema] +# Sin argumentos hace los seis pasos, en ese orden. Se ejecuta como el # usuario normal; pide sudo cuando hace falta. Se puede repetir sin problema. set -eu @@ -20,7 +20,8 @@ PAQUETES=" picom dunst libnotify feh maim xclip pipewire wireplumber libspa-bluetooth alsa-pipewire rtkit pavucontrol NetworkManager bluez blueman acpid chrony - font-firacode nerd-fonts-symbols-ttf papirus-icon-theme + font-firacode nerd-fonts-symbols-ttf papirus-icon-theme papirus-folders + sassc gtk-engine-murrine gnome-themes-extra gnupg pinentry-gtk firefox thunderbird neovim git fuse-sshfs unzip @@ -28,6 +29,9 @@ PAQUETES=" " SUCKLESS="dwm st dmenu slstatus slock scroll clipmenu" +# Tema GTK Everforest, en una versión fija para que siempre salga igual +GTK_TEMA_REPO=https://github.com/Fausto-Korpsvart/Everforest-GTK-Theme +GTK_TEMA_COMMIT=9b8be4d6648ae9eaae3dd550105081f8c9054825 SERVICIOS="dbus elogind polkitd NetworkManager bluetoothd acpid chronyd" # NetworkManager gestiona la red él solo; estos servicios se pelean con él. SERVICIOS_FUERA="dhcpcd wpa_supplicant" @@ -75,6 +79,35 @@ enlaces() { cd "$DIR" } +# Compila el tema GTK Everforest (verde, oscuro, paleta medium) en ~/.themes +# y lo enlaza para las apps de GTK 4. Qué tema e iconos se usan lo dicen +# home/.gtkrc-2.0 y home/.config/gtk-*/settings.ini. Las carpetas de Papirus +# se ponen verdes; una actualización de papirus-icon-theme las devuelve a +# azul, y basta con repetir este paso. +gtk() { + msg "Compilando el tema GTK Everforest" + tmp=$(mktemp -d) + git clone -q "$GTK_TEMA_REPO" "$tmp" + git -C "$tmp" checkout -q "$GTK_TEMA_COMMIT" + "$tmp/themes/install.sh" -t green -c dark --tweaks medium -l >/dev/null + rm -rf "$tmp" + + # La plantilla de GTK 2 del tema trae los colores de Gruvbox (fallo del + # tema original): se cambian por Everforest medium. pinentry-gtk es GTK 2. + sed -i \ + -e 's|^gtk-color-scheme = "text_color:.*|gtk-color-scheme = "text_color:#d3c6aa\\nbase_color:#2d353b"|' \ + -e 's|^gtk-color-scheme = "fg_color:.*|gtk-color-scheme = "fg_color:#d3c6aa\\nbg_color:#2d353b"|' \ + -e 's|^gtk-color-scheme = "selected_fg_color:.*|gtk-color-scheme = "selected_fg_color:#2d353b\\nselected_bg_color:#a7c080"|' \ + -e 's|^gtk-color-scheme = "titlebar_fg_color:.*|gtk-color-scheme = "titlebar_fg_color:#d3c6aa\\ntitlebar_bg_color:#2d353b"|' \ + -e 's|^gtk-color-scheme = "menu_color:.*|gtk-color-scheme = "menu_color:#343f44"|' \ + -e 's|^gtk-color-scheme = "tooltip_fg_color:.*|gtk-color-scheme = "tooltip_fg_color:#d3c6aa\\ntooltip_bg_color:#3d484d"|' \ + -e 's|^gtk-color-scheme = "link_color:.*|gtk-color-scheme = "link_color:#7fbbb3\\nvisited_link_color:#d699b6"|' \ + "$HOME/.themes/Everforest-Green-Dark-Medium/gtk-2.0/gtkrc" + + msg "Carpetas de Papirus en verde" + sudo papirus-folders -C green --theme Papirus-Dark >/dev/null +} + # ~/.gnupg se copia a mano (de un USB, por ejemplo). Deja los permisos como # los quiere gpg, usa un pinentry gráfico (en una tty cae a curses solo) y # activa el agente SSH con las claves de autenticación. @@ -150,10 +183,10 @@ sistema() { die "esto es solo para Void Linux" [ "$(id -u)" -ne 0 ] || die "ejecútalo como tu usuario, no como root" -[ $# -gt 0 ] || set -- paquetes suckless enlaces gnupg sistema +[ $# -gt 0 ] || set -- paquetes suckless enlaces gtk gnupg sistema for paso; do case $paso in - paquetes|suckless|enlaces|gnupg|sistema) "$paso" ;; + paquetes|suckless|enlaces|gtk|gnupg|sistema) "$paso" ;; *) die "paso desconocido: $paso" ;; esac done diff --git a/suckless/dwm/config.h b/suckless/dwm/config.h index 2b4c6ac..3ecb2ab 100644 --- a/suckless/dwm/config.h +++ b/suckless/dwm/config.h @@ -42,6 +42,7 @@ static const Rule rules[] = { { "Gimp", NULL, NULL, 0, 1, 0, 0, -1 }, { NULL, "pavucontrol", NULL, 0, 1, 0, 0, -1 }, { NULL, "blueman-manager", NULL, 0, 1, 0, 0, -1 }, + { "Pinentry-gtk-2", NULL, NULL, 0, 1, 0, 1, -1 }, /* contraseña de gpg/ssh */ { "Firefox", "Places", NULL, 0, 1, 0, 0, -1 }, /* biblioteca/descargas */ { "Firefox", "Toolkit", NULL, 0, 1, 0, 0, -1 }, /* picture-in-picture */ { NULL, NULL, "Event Tester", 0, 0, 0, 1, -1 }, /* xev */