Tenho um problema com conflito de atalhos de teclado (um evento é disparado ao pressionar uma tecla em vez de soltá-la). (Este é um problema muito antigo, comum para usuários que usam 2 ou mais layouts de teclado).
Existe um X server
patch para esse problema. Gostaria de aplicá-lo, mas não tenho certeza de como fazer isso corretamente.
A solução deste comentário :
Como um usuário comum do Gentoo Linux, eu:
- baixei o patch anexado a este problema chamado "O mesmo patch, mas baseado em 1.19.1 (corrigido)" no diretório/etc/portage/patches/x11-base/xorg-server/
- executeiemerge xorg-server
para reinstalar o Xorg com este patch aplicado
- reiniciei o X para aproveitar as teclas de atalho funcionais :)
Pergunta: Como você corrige (corretamente) o X server
on Ubuntu
? (Atualmente estou usando Ubuntu 24.04
.)
No terminal:
Obtenha as fontes com
git clone https://gitlab.freedesktop.org/xorg/xserver
Entre no diretório clonado
cd xserver
git checkout branch-name
. Não importa muito em termos de estabilidade porque o xserver tem muito pouca atividade de desenvolvimento atualmente (porque as pessoas migraram principalmente para o Wayland) . Mas se o patch não se aplicar, você pode ter que mudar para algum branch mais antigo.Coloque o patch no diretório atual (por exemplo, baixando com
wget url-to-the.patch
)Aplique-o:
git am -3 your.patch
.Vale a pena notar aqui, às vezes as pessoas erroneamente chamam de "patch" o que na verdade é um diff. A grande diferença é que α)
git-am
lançará um erro de formato de arquivo β) aplicar um diff funciona pior do que um patch porque o git não pode olhar o histórico para renomeações e outras mudanças que podem ter bagunçado a aplicação do diff, mas de uma forma que o git poderia lidar muito bem.git apply your.diff
tem que ser usado se for realmente um diff e não um patch.Note que o aplicativo patch/diff pode falhar se o código ao qual ele está sendo aplicado tiver mudado. Duas coisas que você pode fazer neste caso: 1. Resolver conflitos manualmente 2. Usar
git checkout …
para encontrar uma versão do XServer que funcione.Outras etapas estão fora do escopo da sua pergunta, mas basicamente você tem que compilar o xserver com
meson setup build --prefix=/usr […other options…] && ninja -C build
, fazer um pacote dele (é importante, porque senão uma atualização do sistema pode sobrescrever arquivos) e então instalá-lo. Não se esqueça de passar--prefix=/usr
a opção durante a configuração do meson (como na frase anterior) . Para um exemplo de script que cria um pacote a partir da compilação, você pode olhar o final desta resposta , alternativamente você pode usarcheckinstall
. Para um exemplo de opções de configuração do meson no XServer, você pode olhar este bloco .