GtkFileChooserDialog araması nasıl devre dışı bırakılır?


24

Bir dosyayı bir gtk3 uygulamasında (örn. Firefox) açmak veya kaydetmek istiyorsam, bir karakteri devirdikten sonra istenmeyen bir arama işlevi alıyorum.

Eski ve üretken davranışlar: yazmak dbana ilk dosyayı verir d, yazmak debana ilk dosyayı verir de.

Yeni ve istenmeyen davranış: yazmak dbir arama işlemi başlatır ve bana /home/myuser/Downloads/somestuff/DETLEFFveya başka bir dosyayı sistemde bir yere verir .

Misal: Gtk3FileChooser

Eski ve üretken davranışlara nasıl geri dönebilirim?

Sistemim: archliux64, Gtk3: 3.18.6, pencere yöneticisi: fluxbox

Yanıtlar:


18

Aradığınız özelliğe "daktilo başlığı" denir ve devre dışı bırakılır GtkFileChooserDialog. gtk3-typeaheadAUR'dan önceki davranışı geri yükler.

Paket yazarı GTK + ' da daktiloyu devre dışı bırakmanın sabit kodlanmış olduğunu ve bir hata raporunda şöyle dedi: "Bu bir hata değil; önden yazma aramasının kaldırılması çok kasıtlıydı."

Artık, ad / adres alanında kabuğun davranışını taklit eden bazı (kısmen kırık) sekme tamamlandığına dikkat edin.


6

Güncel cevap:

2019'dan beri Arch'ın AUR deposunu kullanmayı bıraktım (Ama yine de Debian sistemimde ). Bunu FreeBSD'de de küçük (biraz önemsiz) yama ile yaptım. Bu bir "Arch'a geçiş" cevabı DEĞİLDİR.

İlk başta kurmak biraz zor oldu, ama asıl amacı Arch'ın makepkgprogramını derleyip Debian'daki AUR depolarını derlemek için kullanabilmeniz. Bunu böyle yaptım (bazı bağımlılıkları unutmuş olsam da):

Eski cevabım hala tabana yakın ayırıcıdan sonra var.

1) Bina 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 kaynaklarını derlemeye hazırlık:

Şimdi, inşa etmek ve kurmak için gtk3-typeahead. Aşağı yukarı Arch ile aynı olan tüm (debian) derleme bağımlılıklarını elde etmek için, gerekli paketleri başarıyla getirebilmek için deb-srcöncelikle sources.list dosyasında bir satır olması gerekir .apt-get build-dep-dev

Benim sources.listbunu yapmak için aşağıdaki satırı içerir. Satırınızı sürümünüze ve en yakın sunucunuza göre değiştirin.

deb-src http://ftp.us.debian.org/debian/ sid main contrib

3) Bina gtk3-typeahead:

Ardından, oluşturmak için aşağıdakileri çalıştırabilirsiniz 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

Bunu yaptıktan sonra, ikili dosyalar .tar.gzgit ağacının bir düzey üstünde bir arşivde paketlenecektir . Örneğimde, bu intodizin olacaktır.

Yüklemek için:

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"

Bu son derece yazılabilir ve mütevazi görüşüme göre eski senaryolarımla uğraşmaktan biraz daha az titiz. Ayrıca artık debian'a bağlı değil.


Orijinal cevap:

Bir yıl oldu ve bu hala beni rahatsız ediyor, çünkü GTK3 halkı bu davranışı yeniden derlemeye gerek kalmadan geri almaya gerek kalmadan kodlamayı kararlaştırdı.

Bununla birlikte, typeahead, Ubuntu'da dağıtıldığı gibi gtk3'e yeniden eklenmiştir.

Ubuntu ayrıca, dosya seçiciyi, dosya zaten seçildiyse, tek bir tıklama gerektirmek yerine, bir dosya seçmek için çift tıklamaya ihtiyaç duydu. Gtk3 kaynak kodunu yamalamakta sorun yaşıyorsanız , ubuntu yamalarını birleştirip GTK'nın daha güncel bir sürümüne güncelleyerek gtk + 3.22.7'den itibaren çalışan bir yama yaptım .

Ayrıca, debian sistemim için paket yöneticisinde en son sürümün kaynağını otomatik olarak indiren, yama yapan ve derleyen bir betik yaptım . Debian Sid üzerinde düzgün çalışır ve diğer Debian dağıtımları için de iyi çalışmalıdır.


3

Debian kararsızda, ctrl-lpencere açıkken (ileri için l) tuşuna basarak yazım işlevini elde edebilirsiniz , ancak yalnızca dosya açma diyalogları için, dosya kaydetme diyalogları için değil. Dosya kaydetme iletişim ctrl-lkutuları için yalnızca kaydedilecek dosyanın adını vurgulayacaktır. Daha akıllı bir şekilde hareket etmek için yazabilirsiniz ~, /, .doğru kombinasyonlarda ev dizini, geçerli dizin veya kökünden bir dizin yolunu almak için. Ayrıca geri ok tuşuna basmak adın seçimini kaldırabilir ve imleci kutuda tutabilir, böylece geçerli adı kaybetmezsiniz ("Farklı Kaydet" işleminde olduğu gibi).

Eski davranışın çok daha iyi olduğu anlaşılıyor :)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.