Обновленный ответ:
С 2019 года я перешел к использованию AUR-репозитория Arch (но все еще в моей системе Debian ). Я также сделал это на FreeBSD, теперь с небольшим (несколько тривиальным) патчем. Это НЕ ответ «переключиться на арку».
Сначала это было немного сложно настроить, но суть в том, что вы можете скомпилировать makepkg
программу Arch и использовать ее для компиляции репозиториев AUR в Debian. Я сделал это так (хотя, возможно, я забыл некоторые зависимости):
Мой старый ответ все еще присутствует после разделителя внизу.
1) Здание makepkg
:
sudo apt-get install bsdtar # pacman depends on bsdtar (libarchive) these days
git clone git://projects.archlinux.org/pacman.git
cd pacman
./configure --sysconfdir=/etc --localstatedir=/var --prefix=/opt/arch # Put built program outside of the usual '/usr/local' when installed to avoid conflicts
make
sudo make install # Install pacman/makepkg
# Make a directory pacman expects to exist to dodge makepkg errors
sudo mkdir -p /var/cache/pacman/pkg
2) Подготовка к компиляции источников GTK3:
Теперь собирать и устанавливать gtk3-typeahead
. Чтобы получить все зависимости (debian) для сборки, которые более или менее совпадают с зависимостями Arch, вы должны сначала добавить deb-src
строку в ваш sources.list, чтобы apt-get build-dep
успешно получить нужные -dev
пакеты.
Мой sources.list
содержит следующую строку, чтобы сделать это. Измените строку в зависимости от вашего выпуска и ближайшего сервера.
deb-src http://ftp.us.debian.org/debian/ sid main contrib
3) Здание gtk3-typeahead
:
Затем вы можете запустить следующее для сборки gtk3-typeahead
:
sudo apt-get update
sudo apt-get build-dep 'gtk+3.0' # install gtk3 build dependencies
mkdir /path/to/put/arch/git/repo/into
cd /path/to/put/arch/git/repo/into
git clone https://aur.archlinux.org/gtk3-typeahead.git gtk3-typeahead
cd gtk3-typeahead
# Tack onto configure script arguments so that libraries overwrite the official
# Debian ones in /usr/lib/x86_64-linux-gnu, instead of installing to /usr/lib.
# CHANGE THIS APPROPRIATELY IF RUNNING 32-BIT (or some other architecture like POWER/MIPS)
sed '/\-\-sysconfdir=/a\
--libdir=/usr/lib/x86_64-linux-gnu \\' PKGBUILD > PKGBUILD2
mv PKGBUILD2 PKGBUILD
# temporarily add archlinux programs to PATH so we can use 'makepkg'
PATH="/opt/arch/bin:""$PATH"
# Don't check pacman dependencies, since our dependency libraries weren't
# installed via pacman like makepkg expects!
makepkg --nodeps
После этого двоичные файлы будут упакованы в .tar.gz
архив на один уровень выше дерева мерзавцев. В моем примере это будет into
каталог.
Чтобы установить это:
TARBALLPATH="$(readlink -f gtk3-typeahead-*.tar.gz | sort | tail -n 1)" # get full path to tarball of most recent build, if multiple are available
cd /
bsdtar xf "$TARBALLPATH"
Это очень хорошо подходит для написания сценариев, и, по моему скромному мнению, это немного менее требовательно, чем работа со старыми сценариями. Это также больше не зависит от Debian.
Оригинальный ответ:
Это был год, и это до сих пор меня раздражает, так как ребята из GTK3 решили жестко закодировать это поведение без возможности отменить его без перекомпиляции.
Однако typeahead был исправлен обратно в gtk3, как он был распространен в Ubuntu.
Ubuntu также заставил средство выбора файлов требовать двойной щелчок для выбора файла, вместо того, чтобы требовать только один щелчок, если файл уже был выбран. Если у вас все в порядке с исправлением исходного кода gtk3, я сделал патч, который работает с gtk + 3.22.7, комбинируя патчи ubuntu и обновляя их до более новой версии GTK.
Кроме того, я создал скрипт для своей системы Debian, который автоматически загружает исходный код для последней версии в диспетчере пакетов, исправляет его и компилирует. Правильно работает на Debian Sid и должен нормально работать и на других дистрибутивах Debian.