As of 2019, I have since hopped to using Arch's AUR repository (But still on my Debian system). I've also done this on FreeBSD, now, with small (somewhat trivial) patch. This is NOT a "switch to Arch" answer.
It was a bit hard to set up at first, but the gist of it is that you can in fact compile Arch's
makepkg program and use it to compile AUR repositories on Debian. I did this like so (though I may have forgotten some dependencies):
My old answer is still present after the separator near the bottom.
sudo apt-get install bsdtar # pacman depends on bsdtar (libarchive) these days
git clone git://projects.archlinux.org/pacman.git
./configure --sysconfdir=/etc --localstatedir=/var --prefix=/opt/arch # Put built program outside of the usual '/usr/local' when installed to avoid conflicts
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) Preparation to compile the GTK3 sources:
Now, to build and install
gtk3-typeahead. To get all the (debian) build dependencies, which more or less are the same as the Arch ones, you must first have a
deb-src line in your sources.list so that
apt-get build-dep will successfully fetch the necessary
sources.list contains the following line to do that. Change the line based on your release and nearest server.
deb-src http://ftp.us.debian.org/debian/ sid main contrib
Then, you can run the following to build
sudo apt-get update
sudo apt-get build-dep 'gtk+3.0' # install gtk3 build dependencies
git clone https://aur.archlinux.org/gtk3-typeahead.git 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)
--libdir=/usr/lib/x86_64-linux-gnu \\' PKGBUILD > PKGBUILD2
mv PKGBUILD2 PKGBUILD
# temporarily add archlinux programs to PATH so we can use 'makepkg'
# Don't check pacman dependencies, since our dependency libraries weren't
# installed via pacman like makepkg expects!
After doing this, the binaries will be packed up in a
.tar.gz archive one level above the git tree. In my example, this would be the
To install it:
TARBALLPATH="$(readlink -f gtk3-typeahead-*.tar.gz | sort | tail -n 1)" # get full path to tarball of most recent build, if multiple are available
bsdtar xf "$TARBALLPATH"
This is highly scriptable, and a bit less finnicky than dealing with my old scripts in my humble opinion. It also no longer depends on debian.
It's been a year and this still annoys me, since the GTK3 folks decided to hardcode this behaviour in, with no way to revert it without recompiling.
However, typeahead was patched back in to gtk3 as distributed in Ubuntu.
Ubuntu also made the file chooser require a doubleclick to choose a file, instead of only requiring a single click if the file was already selected. If you are OK with patching the gtk3 source code, I have made a patch which works as of gtk+ 3.22.7 combining the ubuntu patches and updating them to a more current version of GTK.
Additionally, I made a script for my debian system which automatically downloads the source for the latest version in the package manager, patches it, and compiles it. Runs correctly on Debian Sid, and should work fine for other Debian distros, too.