helio.loureiro.eng.br
  • Home
  • Unix
  • Linux
  • Blog
  • Python
  • Programação
  • Tudo
  • Suécia
  1. You are here:  
  2. Home
  3. Blog
  4. Il nome della rosa birra

Os artigos mais lidos de 2025

  • Configurando o grafana alloy pra monitorar VMs
  • Configurando traefik com ssh
  • Acessos de robôs nos logs web
  • Configurando o teclado Keychron C3 no Linux
  • Parâmetros de compilação pra Go!

O plugin do national geographics pra Gimp v3

Details
Written by: Helio Loureiro
Category: Blog
Published: October 23, 2026
Hits: 4

Desde que lançaram o Gimp v3, eu meio que fiquei órfão do plugin "national geographics", que dá um tchans legal nas fotos.

Mas hoje eu resolvi apostar na... AI.  Se ela faz algumas tarefas com pés nas costas, porque não arriscar converter o plugin pra Gimp V3?

E foi o que fiz.

Aqui está uma foto normal, sem o plugin.

 

e agora com o plugin aplicado:

Dá ou não dá aquele talento na foto?  Claro que dá.

O script convertido segue abaixo:

 


#!/usr/bin/env gimp-script-fu-interpreter-3.0
;
; GIMP 3 port of elsamuko National Geographic (2008).
; Reconstructed layer pipeline. Requires testing against the target GIMP 3 build.
;
(define (ng-apply image drawables shadowopacity sharpness screenopacity overlayopacity localcontrast screenmask tint)
  (script-fu-use-v3)
  (let* ((source (vector-ref drawables 0))
         (shadow 0)
         (sharp 0)
         (screen 0)
         (overlay1 0)
         (overlay2 0)
         (temp1 0)
         (temp2 0)
         (contrast 0))
    (gimp-context-push)
    (gimp-image-undo-group-start image)
    (if (> shadowopacity 0)
      (begin
        (set! shadow (gimp-layer-copy source))
        (gimp-image-insert-layer image shadow 0 0)
        (gimp-drawable-desaturate shadow DESATURATE-LIGHTNESS)
        (gimp-drawable-invert shadow #f)
        (gimp-layer-set-mode shadow LAYER-MODE-OVERLAY-LEGACY)
        (gimp-layer-set-opacity shadow shadowopacity)
        (gimp-item-set-name shadow "Shadow Recovery")))
    (if (> sharpness 0)
      (begin
        (set! sharp (gimp-layer-new-from-visible image image "Sharpen"))
        (gimp-image-insert-layer image sharp 0 0)
        (gimp-drawable-merge-new-filter sharp "gegl:unsharp-mask" "Sharpen" LAYER-MODE-REPLACE 1.0
          #:std-dev 1.0 #:scale sharpness #:threshold 0.0)
        (gimp-layer-set-opacity sharp 80.0)))
    (if (> localcontrast 0)
      (begin
        (set! temp1 (gimp-layer-new-from-visible image image "Temp 1"))
        (set! temp2 (gimp-layer-new-from-visible image image "Temp 2"))
        (gimp-image-insert-layer image temp1 0 0)
        (gimp-image-insert-layer image temp2 0 0)
        (gimp-drawable-merge-new-filter temp1 "gegl:unsharp-mask" "Local contrast" LAYER-MODE-REPLACE 1.0
          #:std-dev 60.0 #:scale localcontrast #:threshold 0.0)
        (gimp-layer-set-mode temp2 LAYER-MODE-GRAIN-EXTRACT-LEGACY)
        (set! contrast (gimp-layer-new-from-visible image image "Local Contrast"))
        (gimp-image-insert-layer image contrast 0 0)
        (gimp-layer-set-mode contrast LAYER-MODE-GRAIN-MERGE-LEGACY)
        (gimp-image-remove-layer image temp1)
        (gimp-image-remove-layer image temp2)))
    (set! screen (gimp-layer-new-from-visible image image "Screen"))
    (set! overlay1 (gimp-layer-new-from-visible image image "Overlay"))
    (set! overlay2 (gimp-layer-new-from-visible image image "Overlay 2"))
    (gimp-image-insert-layer image screen 0 0)
    (gimp-image-insert-layer image overlay1 0 0)
    (gimp-image-insert-layer image overlay2 0 0)
    (gimp-drawable-desaturate screen DESATURATE-LIGHTNESS)
    (gimp-drawable-desaturate overlay1 DESATURATE-LIGHTNESS)
    (gimp-drawable-desaturate overlay2 DESATURATE-LIGHTNESS)
    (gimp-layer-set-mode screen LAYER-MODE-SCREEN-LEGACY)
    (gimp-layer-set-mode overlay1 LAYER-MODE-OVERLAY-LEGACY)
    (gimp-layer-set-mode overlay2 LAYER-MODE-OVERLAY-LEGACY)
    (gimp-layer-set-opacity screen screenopacity)
    (gimp-layer-set-opacity overlay1 overlayopacity)
    (gimp-layer-set-opacity overlay2 overlayopacity)
    (if screenmask
      (let* ((mask (gimp-layer-create-mask screen ADD-MASK-COPY)))
        (gimp-layer-add-mask screen mask)
        (gimp-drawable-invert mask #f)))
    (if (or (= tint 1) (= tint 2))
      (let* ((hue (if (= tint 1) 0.0 225.0)))
        (gimp-drawable-colorize-hsl screen hue 40.0 0.0)
        (gimp-drawable-colorize-hsl overlay1 hue 40.0 0.0)
        (gimp-drawable-colorize-hsl overlay2 hue 40.0 0.0)))
    (gimp-image-undo-group-end image)
    (gimp-displays-flush)
    (gimp-context-pop)))

(script-fu-register-filter "ng-apply"
  "_National Geographic (GIMP 3)"
  "National Geographic-inspired tonal effect; GIMP 3 adaptation."
  "elsamuko; GIMP 3 adaptation"
  "GPL-3.0-or-later"
  "2026"
  "RGB*"
  SF-ONE-DRAWABLE
  SF-ADJUSTMENT "Shadow Recovery Opacity" '(60 0 100 1 5 0 0)
  SF-ADJUSTMENT "Sharpness" '(0.5 0 2 0.1 1 1 0)
  SF-ADJUSTMENT "Screen Layer Opacity" '(50 0 100 1 5 0 0)
  SF-ADJUSTMENT "Overlay Layer Opacity" '(50 0 100 1 5 0 0)
  SF-ADJUSTMENT "Local Contrast" '(0.4 0 2 0.1 1 1 0)
  SF-TOGGLE "Layer Mask for Screen Layer" #t
  SF-OPTION "Overlay Tint" '("Neutral" "Red" "Blue"))
(script-fu-menu-register "ng-apply" "/Filters/Generic")


Eu copiei esse conteúdo pro arquivo  ~/.config/GIMP/3.2/scripts/elsamuko-national-geographic-gimp3.scm e iniciei o Gimp.

O original é daqui: https://github.com/elsamuko/gimp-elsamuko/blob/master/scripts/elsamuko-national-geographic.scm

Como é slop generated, eu não copiei esse plugin pra nenhum lugar, nenhum repositório.  O próprio codeberg proíbe uso de slop generated code.   Então fica aqui pra quem quiser.

ThinkPad rodando Ubuntu 26.10

Details
Written by: Helio Loureiro
Category: Blog
Published: October 23, 2026
Hits: 3

Acabei fazendo upgrade do meu laptop de trabalho pro Ubuntu 26.10.  Algo que fiz pro meu laptop pessoal também.

Eu geralmente fico nas LTS, sendo a última 26.04.  Mas eu fiz uma bela duma bobagem que me fez repensar em reinstalar com o 26.10.  Essa bobagem foi que fiz upgrade de firmware e sistema operacional tudo junto.  E só depois percebi o problema que gerou: parou de funcionar o suspend.  Então fiquei sem saber se o problema era hardware, por conta do upgrade de firmware, ou de software.

Pra tirar a dúvida, dei boot por um pendrive de instalação e simplemente fechei o laptop.  E ele hibernou.  Então isso me fez acreditar que era software.

Então esperei sair o 26.10 e fiz uma instalação limpa em cima.  Mas fiz backup do /home pra não precisar refazer tudo.

Terminada a instalação, fechei a tampa e... não suspendeu.   Meio que suspendeu, mas não inteiramente.  Ele mostra o led naquele modo lento de acender e apagar, mas pelos logs eu vi que estava uma parte funcionando.  Isso parece ter sido consequência do upgrade de firmware, que só deixou o modo s2idle pra suspender/hibernar.  E claro que descobri despois de tirar o laptop da mochila e o dito estar quase derretendo de tão quente que ficou.

No fim eu consegui configurar mais swap no ZFS em disco mesmo e forçar a hibernar com o comando: systemctl hybrid-sleep --verbose --force

Não sei ainda se o problema é totalmente hadware uma vez que agora hiberna na força bruta.  Mas ao menos é melhor que ficar desligando todo dia como eu vinha fazendo já por alguns meses.

  1. Adicionado disco de 10 TB
  2. E cancelei o storage extra do Google One
  3. Rodando meu próprio Google Photos
  4. Corrigindo as imagens automáticas do artigos no Linux-BR

Page 1 of 79

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

Estatísticas

  • Users 2
  • Articles 522
  • Articles View Hits 3794644

Imagem aleatória