Percebi que redshift
não funciona mais na minha máquina com Linux Mint 21.3. Tenho certeza de que há cerca de meio ano ele ainda estava funcionando (embora pudesse estar no Linux Mint 21.2). Tentando depurar isso, descobri que o problema deve estar em geoclue
:
$ redshift
Trying location provider `geoclue2'...
Using provider `geoclue2'.
Could not connect to wayland display, exiting.
Failed to start adjustment method wayland.
Trying next method...
Using method `randr'.
Waiting for initial location to become available...
^Cpoll: Interrupted system call
Unable to get location from provider.
(Não sei porque fala de wayland, não é uma sessão de wayland.)
A execução /usr/libexec/geoclue-2.0/demos/where-am-i
do geoclue-2-demo
pacote expira depois de um tempo, sem qualquer saída ou erro. (Às vezes, produzia alguma mensagem de erro sobre algo faltando no IIRC, mas não consegui reproduzi-la de maneira confiável.)
Aqui está o status de geoclue.service
:
$ systemctl status geoclue.service | cat
● geoclue.service - Location Lookup Service
Loaded: loaded (/lib/systemd/system/geoclue.service; static)
Active: active (running) since Sat 2024-06-15 13:53:51 CEST; 7min ago
Main PID: 2434 (geoclue)
Tasks: 4 (limit: 18810)
Memory: 19.1M
CPU: 424ms
CGroup: /system.slice/geoclue.service
└─2434 /usr/libexec/geoclue
Jun 15 13:53:51 Alexey-InfinityBook-Mint systemd[1]: Started Location Lookup Service.
Jun 15 13:54:12 Alexey-InfinityBook-Mint geoclue[2434]: Failed to query location: Not Found
Jun 15 13:54:17 Alexey-InfinityBook-Mint geoclue[2434]: Failed to query location: Not Found
[...]
Pesquisar no Google "geoclue.service Falha ao consultar local não encontrado" não retornou nada relevante no topo dos resultados da pesquisa.
Eu tenho o mesmo problema (pelo menos parece o mesmo) no LMDE 6 (Linux Mint Debian Edition).
Qualquer ajuda será apreciada.
A questão subjacente é que o Redshift depende do GeoClue para obter informações sobre a localização da máquina para determinar a que horas o modo noturno deve ser aplicado. O GeoClue obtém essas informações por meio de uma solicitação da web a um serviço de localização. Por padrão, ele usa o Mozilla Location Services, que foi descontinuado em abril de 2024. O URL que ele tenta consultar ( https://location.services.mozilla.com/v1/geocate ) retorna um status
404 Not Found
neste momento, que é o motivo do erro que você está vendo em seu arquivo de log. Há um relatório de bug sobre isso no rastreador de bugs GeoClue , mas até agora não foi resolvido.No futuro, há duas maneiras de contornar isso:
Configurando um provedor de localização diferente para GeoClue
Você pode definir um provedor de localização personalizado para o GeoClue no arquivo de configuração em
/etc/geoclue/geoclue.conf
. Atualmente, os serviços de localização Mozilla e a API de geolocalização do Google parecem ser suportados. Como o primeiro foi retirado, apenas a opção Google parece ser uma alternativa viável por enquanto.Olhando a documentação, você precisa obter uma chave de API do Google. Parece-me que este é um serviço pago e não o testei.
Configurando o local manualmente na configuração do Redshift
O Redshift aceita um arquivo de configuração que você pode usar para definir um local estático. Eles fornecem um arquivo de configuração de amostra que contém todas as opções possíveis. Você precisa alterar as linhas com
lat
elon
para sua própria latitude e longitude.Nota: Se você estiver usando o AppArmor (que parece ser o padrão no Linux Mint), há atualmente um bug no perfil do AppArmor para Redshift. Para que seu arquivo de configuração possa ser lido pelo Redshift, ele deve ser colocado em
~/.config/redshift.conf
e não como~/.config/redshift/redshift.conf
sugerido pela documentação do Redshift.