วิธีปิดการใช้งานการค้นหา GtkFileChooserDialog?


24

หากฉันต้องการเปิดหรือบันทึกไฟล์ในแอพ gtk3 (เช่น firefox) ฉันจะได้รับฟังก์ชั่นการค้นหาที่ไม่ต้องการหลังจากทำการทิปอักขระ

เก่าและมีประสิทธิผลพฤติกรรม: การพิมพ์dให้ฉันไฟล์แรกเริ่มต้นด้วยdการพิมพ์ให้ฉันไฟล์แรกด้วยdede

พฤติกรรมใหม่และไม่พึงประสงค์: การพิมพ์dเริ่มกระบวนการค้นหาและให้/home/myuser/Downloads/somestuff/DETLEFFไฟล์ฉันหรือไฟล์อื่นไว้ในระบบ

ตัวอย่าง: Gtk3FileChooser

ฉันจะเปลี่ยนกลับไปเป็นพฤติกรรมเก่าและมีประสิทธิผลได้อย่างไร

ระบบของฉัน: archliux64, Gtk3: 3.18.6, windowmanager: fluxbox

คำตอบ:


18

คุณลักษณะที่คุณกำลังมองหาที่เรียกว่า "typeahead" GtkFileChooserDialogและจะมีการปิดใช้งานใน gtk3-typeaheadจาก AUR จะคืนค่าการทำงานก่อนหน้า

ผู้เขียนแพ็คเกจบอกว่าการปิดใช้งาน typeahead นั้นฮาร์ดโค้ดใน GTK + และในรายงานข้อผิดพลาดระบุว่า: "มันไม่ใช่ข้อผิดพลาด; การลบการค้นหาแบบพิมพ์ล่วงหน้านั้นมีเจตนามาก"

หมายเหตุขณะนี้มีบางแท็บที่เสร็จสมบูรณ์ (บางส่วนเสียหาย) ในฟิลด์ชื่อ / ที่อยู่เลียนแบบพฤติกรรมของเชลล์


6

คำตอบที่อัปเดต:

ตั้งแต่ปี 2019 ฉันเริ่มใช้พื้นที่เก็บข้อมูล AUR ของ Arch (แต่ยังอยู่ในระบบ Debian ของฉัน ) ฉันเคยทำสิ่งนี้ใน FreeBSD ด้วยแพทช์เล็ก ๆ นี่ไม่ใช่คำตอบ "เปลี่ยนเป็น Arch"

มันค่อนข้างยากในการตั้งค่าในตอนแรก แต่ส่วนสำคัญของมันคือคุณสามารถรวบรวมmakepkgโปรแกรมของ Arch และใช้เพื่อรวบรวม AUR repository ใน 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บรรทัดในแหล่งที่มาของคุณรายการเพื่อที่apt-get build-depจะสามารถดึง-devแพ็คเกจที่จำเป็นได้สำเร็จ

My 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"

นี่เป็นสคริปต์อย่างมากและฟินนิคกี้น้อยกว่าการจัดการกับสคริปต์เก่าของฉันในความเห็นต่ำต้อยของฉัน นอกจากนี้ยังไม่ขึ้นอยู่กับเดเบียนอีกต่อไป


คำตอบเดิม:

เป็นเวลาหนึ่งปีแล้วและสิ่งนี้ยังทำให้ฉันรำคาญอีกครั้งเนื่องจากกลุ่ม GTK3 ตัดสินใจที่จะเข้ารหัสพฤติกรรมนี้โดยไม่มีทางที่จะย้อนกลับโดยไม่ต้องคอมไพล์ใหม่

อย่างไรก็ตาม typeahead ได้รับการแก้ไขใน gtk3 ตามที่เผยแพร่ใน Ubuntu

อูบุนตูยังเลือกผู้เลือกไฟล์ด้วยการคลิกสองครั้งเพื่อเลือกไฟล์แทนที่จะต้องคลิกเพียงครั้งเดียวหากไฟล์นั้นถูกเลือกแล้ว หากคุณตกลงกับการแก้ไขซอร์สโค้ด gtk3 ฉันได้ทำการแก้ไขซึ่งทำงานเหมือนกับ gtk + 3.22.7 ที่รวมแพตช์ ubuntu และอัปเดตเป็น GTK เวอร์ชันปัจจุบัน

นอกจากนี้ฉันได้สร้างสคริปต์สำหรับระบบเดเบียนของฉันซึ่งดาวน์โหลดแหล่งที่มาสำหรับเวอร์ชันล่าสุดโดยอัตโนมัติในตัวจัดการแพคเกจแก้ไขและรวบรวม ทำงานอย่างถูกต้องบน Debian Sid และควรทำงานได้ดีสำหรับ Debian distros อื่น ๆ เช่นกัน


3

บน Debian ที่ไม่เสถียรคุณสามารถรับฟังก์ชั่น typeahead ได้โดยการกดctrl-lเมื่อหน้าต่างเปิด (l สำหรับ lookahead) แต่สำหรับการเปิดไฟล์เท่านั้นไม่ใช่ไดอะล็อกการบันทึกไฟล์ สำหรับctrl-lกล่องโต้ตอบบันทึกไฟล์จะเน้นเฉพาะชื่อไฟล์ที่จะบันทึก เพื่อนำทางไปในทางที่ชาญฉลาดมากขึ้นคุณสามารถพิมพ์~,/ , .ในชุดที่ถูกต้องที่จะได้รับไดเรกทอรีบ้านของไดเรกทอรีปัจจุบันหรือเส้นทางไดเรกทอรีจากราก การกดปุ่มลูกศรย้อนกลับสามารถยกเลิกการเลือกชื่อและเก็บเคอร์เซอร์ไว้ในกล่องเพื่อให้คุณไม่หลวมชื่อปัจจุบัน (เช่นจะเกิดขึ้นในการดำเนินการ "บันทึกเป็น")

ดูเหมือนว่าพฤติกรรมเก่านั้นดีกว่ามาก :)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.