GTK: tema Everforest e iconos Papirus-Dark

- 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 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016UdJsHrbkmzhoCb6TthP2m
This commit is contained in:
Alejandro Guerrero 2026-09-27 20:52:56 +02:00
parent 53498b8cd3
commit 2eb145f3bb
6 changed files with 62 additions and 8 deletions

View file

@ -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 git clone ssh://forgejo@ssh.alejandrogs.es/alejandrogs73/suckless.git ~/suckless
cd ~/suckless && ./install.sh 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: (`./install.sh enlaces`, por ejemplo) y repetir sin problema:
1. `paquetes`: instala con xbps todo lo que usa la configuración. 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 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 distinto, lo guarda como `.bak`. Como son enlaces, editar `~/.bashrc` es
editar el repo. 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 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 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. subclaves de autenticación. `.bashrc` ya apunta `SSH_AUTH_SOCK` al agente.
Si `~/.gnupg` no existe todavía, no hace nada. 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 elogind, polkitd, NetworkManager, bluetoothd, acpid, chronyd), quita
dhcpcd y wpa_supplicant (NetworkManager ya gestiona la red) y añade el dhcpcd y wpa_supplicant (NetworkManager ya gestiona la red) y añade el
usuario a los grupos audio, video, input, network y bluetooth. usuario a los grupos audio, video, input, network y bluetooth.

View file

@ -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

View file

@ -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

3
home/.gtkrc-2.0 Normal file
View file

@ -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"

View file

@ -2,8 +2,8 @@
# Deja un Void Linux recién instalado con este escritorio: paquetes, programas # Deja un Void Linux recién instalado con este escritorio: paquetes, programas
# de suckless, enlaces de la configuración en ~ y archivos de sistema. # de suckless, enlaces de la configuración en ~ y archivos de sistema.
# #
# Uso: ./install.sh [paquetes] [suckless] [enlaces] [gnupg] [sistema] # Uso: ./install.sh [paquetes] [suckless] [enlaces] [gtk] [gnupg] [sistema]
# Sin argumentos hace los cinco pasos, en ese orden. Se ejecuta como el # 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. # usuario normal; pide sudo cuando hace falta. Se puede repetir sin problema.
set -eu set -eu
@ -20,7 +20,8 @@ PAQUETES="
picom dunst libnotify feh maim xclip picom dunst libnotify feh maim xclip
pipewire wireplumber libspa-bluetooth alsa-pipewire rtkit pavucontrol pipewire wireplumber libspa-bluetooth alsa-pipewire rtkit pavucontrol
NetworkManager bluez blueman acpid chrony 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 gnupg pinentry-gtk
firefox thunderbird neovim git fuse-sshfs unzip firefox thunderbird neovim git fuse-sshfs unzip
@ -28,6 +29,9 @@ PAQUETES="
" "
SUCKLESS="dwm st dmenu slstatus slock scroll clipmenu" 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" SERVICIOS="dbus elogind polkitd NetworkManager bluetoothd acpid chronyd"
# NetworkManager gestiona la red él solo; estos servicios se pelean con él. # NetworkManager gestiona la red él solo; estos servicios se pelean con él.
SERVICIOS_FUERA="dhcpcd wpa_supplicant" SERVICIOS_FUERA="dhcpcd wpa_supplicant"
@ -75,6 +79,35 @@ enlaces() {
cd "$DIR" 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 # ~/.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 # 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. # activa el agente SSH con las claves de autenticación.
@ -150,10 +183,10 @@ sistema() {
die "esto es solo para Void Linux" die "esto es solo para Void Linux"
[ "$(id -u)" -ne 0 ] || die "ejecútalo como tu usuario, no como root" [ "$(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 for paso; do
case $paso in case $paso in
paquetes|suckless|enlaces|gnupg|sistema) "$paso" ;; paquetes|suckless|enlaces|gtk|gnupg|sistema) "$paso" ;;
*) die "paso desconocido: $paso" ;; *) die "paso desconocido: $paso" ;;
esac esac
done done

View file

@ -42,6 +42,7 @@ static const Rule rules[] = {
{ "Gimp", NULL, NULL, 0, 1, 0, 0, -1 }, { "Gimp", NULL, NULL, 0, 1, 0, 0, -1 },
{ NULL, "pavucontrol", NULL, 0, 1, 0, 0, -1 }, { NULL, "pavucontrol", NULL, 0, 1, 0, 0, -1 },
{ NULL, "blueman-manager", 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", "Places", NULL, 0, 1, 0, 0, -1 }, /* biblioteca/descargas */
{ "Firefox", "Toolkit", NULL, 0, 1, 0, 0, -1 }, /* picture-in-picture */ { "Firefox", "Toolkit", NULL, 0, 1, 0, 0, -1 }, /* picture-in-picture */
{ NULL, NULL, "Event Tester", 0, 0, 0, 1, -1 }, /* xev */ { NULL, NULL, "Event Tester", 0, 0, 0, 1, -1 }, /* xev */