Tópicos especiais

Transitioning from darktable to Ansel

What was removed from mainstream darktable

Features

The tethering view 
It relies on the lib GPhoto2 which is super brittle and buggy. The tethering view is merely a GUI over Gphoto2, much like Entangle . The problem is GPhoto2 is known to break something different at each new release, so it’s simply not worth the trouble to maintain a GUI over a Schrödinger cat. Use Entangle if you need to.
The easter egg video game
Not funny if you happen to be with a client on April 1st and your working app opens on a silly game that can’t even be closed with Ctrl+Q. (Yes, it happened to me).
The histogram overlay control for exposure and black level 
It’s too easy to inadvertently mess up exposure when cycling through scopes (especially with a Wacom tablet) and it adds unnecessary GUI motion events and redraws. In cases of multiple instances of exposure module, it is automatically linked to the controls of the last instance, which is generally wrong because it is typically masked.
The new filtering option
A beautiful shit made of 6300 lines of bloat and still counting, that needs a screen-reader to understand WTF those icons mean, supposed to fix a problem nobody had with something that adds bugs and trouble. That thing is the poster case of everything that’s wrong in Geektable 4.0. It should be called a regression. The same feature is achieved in Ansel with about 580 lines of code. And to say that the new filtering started as a refactoring project… Never let the darktable idiots refactor anything, it’s too dangerous.
The stars rating  toolbar in lighttable
It’s redundant with overlays and requires to travel too far with the cursor to set it. Use overlays with cursor or key shortcuts to set stars.
The timeline 
terrible code and a huge loss of CPU cycles for a niche feature that essentially serves no purpose. This was responsible for way too many SQL requests and removing it is responsible for most of the GUI responsiveness improvement.
The main window borders with collapsing arrows / silly cycling through headers
The borders marked with arrows allow to collapse or expand the GUI panels. But they waste space, are typically too narrow for many displays, and tend to reappear when you don’t want them because their state is defined per view. For now, collapsing side-bars can be achieved with Ctrl + Shift + L(eft), Ctrl + Shift + R(ight), top bar with Ctrl + Shift + T(op) and bottom bar with Ctrl + Shift + B(ottom). In the future, a global menu (you know, like in any app since 1990) will take care of that with a view menu.
The silly cycling through all the possible combinations of headers and bottoms that happened when hitting Ctrl + Shift + T(op) or Ctrl + Shift + B(ottom) has been completly removed. Ctrl + Shift + T(op) toggles the top toolbar only and leaves the main header unchanged (use Ctrl + H(eader) to toggle it). Ctrl + Shift + B(ottom) toggles the bottom toolbar only and leaves the filmstrip unchanged (use Ctrl + F(ilmstrip) to toggle it).
Removing the borders allowed to increase the width of the sidebars scrolling sliders for better interaction.
The second darkroom window 
darktable is slow enough with 2 pipelines (thumbnail & preview), a third one is not realistic. This should have been the main preview redirected to another window but the code has been hastily hacked by copy-pasting, it’s terrible. Also there is no traceability on which display profile will be used, good luck with that.
The block and timeout overlay mode in lighttable
terrible code for another niche feature that nobody tests until bug appear on the issue tracker that will be answered with “it works on my computer”.
The extended overlays mode for thumbnails
each of the EXIF metadata display triggered its own SQL request per-thumbnail, because no cache was used, because the guy who coded that doesn’t learn or doesn’t care, but such a loss of CPU cycles is inacceptable.
The non-dynamic culling mode and the zoomable lighttable view
They are not really used and need a lot of spaghetti code to be handled.
The dark and icon themes
dark themes trigger all sorts of unwanted visual illusions that make color assessment impossible. Their use is discouraged everywhere on darktable’s doc but they are still there.
The ability to assign keyboard shortcuts to Gtk notebook tabs, as well as switching tabs by mouse scroll.
Just because you can doesn’t mean you should, and capturing mouse scroll on inner tabs messes up with sidebar scrolling (you know, the regular scolling over content that doesn’t fit in the viewport).
The VIM-style shortcuts
I bet you never knew, but if you start typing : in darktable, followed by a command, you can trigger stuff. This feature has never documented and the available features are really limited, but that still listens to all keystrokes to check if it should capture them.
The histogram profile
That thing is coded by copy-pasting the display code, instead of writing reusable functions. It wouldn’t be that bad if it wasn’t completely misleading and actually broke the over-exposure alert (because, yes, it’s used there too). Because the histogram is captured at the far end of the pipeline, in display color space, it might be already clipped to display gamut. Say you use Rec2020 space as the histogram profile, because it’s the working space, what you see is RGB clipped to display space then rescaled to Rec2020, which means your clipping peak will not be at the far end of the graph, where you expect it. The result is highly misleading and voids the whole principle of a scope. That’s just a whole pile of crap coded by people who have no idea of what a graphic pipeline is and hack small bits here and there because the concept of “modules” fooled them. They might be modular, but they still apply in sequence in the pipeline, so better check your inputs.
Warning messages in modules
I’m responsible for that stupidity. The warning messages were supposed to tell users they are doing things not really intended by the designer (for example, using 2 different steps of white balance correction) and to ask them to double-check if that’s really what they wanted. That backfired badly because users don’t get the difference between an error and an alert, so even when instructed to use 2 white balances (for example, a custom-corrected raw WB), they would get afraid by the “error” and annoy me with questions. Given that this feature is clearly not helping anybody, and did not trigger the expected behaviour (that is, RTFM), there is no point in keeping it. The option to hide them is removed as well.
Favourite presets button
There was this favourite presets button at the left of the bottom panel in darkroom, and I found nobody who ever used it. In fact, most people who I asked did not ever know it even existed. So it’s gone.
Importing from camera
darktable has a way to mount the camera file system (SD or CF memory cards) through USB, using the library GPhoto2. But the desktop environment is also be able to mount the camera as a local hard drive using PTP and/or MTP protocol, possibly also through Gphoto2. In that case, darktable and the OS may compete for access to the USB media, so you need to unmount it first from the OS to be able to open it from darktable. On Windows, you even need to install custom USB drivers to make it work with GPhoto2, but these drivers will prevent the camera to work with the OS until you completly remove and reset them. So this feature is completely removed, and Ansel loads memory cards as USB media through the OS mounts. To enable this, you may have to install Linux packages such as libmtp, linuxptp, libptp, libgphoto2 and possibly gphoto2. For your desktop environnment, you may install kio-mtp and kio-extras on KDE or gvfs-mtp and gvfs-gphoto2 on Gnome. In any case, you are advised to simply use an SD of CF card reader, it’s cheap and prevents most issues that can arise from udev and cameras connected through USB.

Overall, 5 to 6 SQL requests per thumbnail per “mouse over” event are now spared, due to the features removed (which still lets 3 requests…, aka 2 more than what should be).

variáveis

O Ansel suporta a substituição de variáveis em diversos módulos e configurações de preferências. Por exemplo:

variáveis disponíveis

As seguintes variáveis estão disponíveis, ainda que nem todas sejam aplicáveis em todos os contextos:

pipeline de cor do Ansel

A maioria dos aplicativos de processamento de imagens teve origem nos anos 1990 e/ou herdaram o fluxo de trabalho desses anos. Estes aplicativos processavam imagens codificadas com números inteiros de 8 bits sem sinal porque era mais eficiente no uso da memória e computacionalmente. No entanto, devido ao uso de um formato inteiro (o que implica em erros de arredondamento), eles tiveram que aplicar um “gama” (essencialmente uma função de transferência aplicando uma potência de 1/2,2 ou 1/2,4 para codificar os valores de RGB) e aumentar a profundidade de bits em condições de pouca luz para reduzir os erros de arredondamento (os seres humanos são muito mais sensíveis aos detalhes em pouca luz). Os formatos de números inteiros de 8 bits também estão tecnicamente limitados ao intervalo de 0-255. Qualquer coisa fora deste intervalo transborda e é recortado ao limite mais próximo.

suporte a dispositivo midi

O sistema de mapeamento de atalho foi testado mais extensivamente com o Behringer X-Touch Mini e contém código personalizado para lidar com os recursos específicos deste dispositivo. Todos os outros dispositivos são tratados como “midi genéricos” e podem ou não funcionar (bem) ou precisar de alguma configuração manual a cada utilização. Uma estrutura de configuração (possivelmente em lua) para suportar recursos específicos de dispositivos adicionais está na lista de tarefas.

traduzir o dtdocs

Translation of the darktable documentation is done via our Weblate instance .

Você pode usar a interface gráfica do Weblate para traduzir a documentação ou baixar a tradução do Weblate para seu computador, editá-la e depois enviar as mudanças.

Por favor, faça todo o trabalho de tradução usando o Weblate. Nós não aceitaremos pull requests diretamente no github para atualizar arquivos PO.

Criar um novo branch no git

  1. Make a new branch to work on it in git. For example: git checkout -b fr-translation-init

Adicionar um novo idioma ao Hugo

  1. In the files config.yaml and config-pdf.yaml, locate the languages: line.
  2. Add the language you wish to translate. For example, the English looks like this:
    1  en-us:
    2    title: darktable 3.4 user manual

date: 2022-12-04T02:19:02+01:00 weight: 1

Search

You can also ask Chantal, the AI search engine.