GtkFileChooserDialog खोज को अक्षम कैसे करें?


23

अगर मैं किसी फ़ाइल को gtk3 ऐप (उदाहरण के लिए फ़ायरफ़ॉक्स) में खोलना या सहेजना चाहता हूं, तो मुझे किसी वर्ण को खोजने के बाद अवांछित खोज फ़ंक्शन मिलता है।

पुराना और उत्पादक व्यवहार: टाइपिंग dमुझे पहली फ़ाइल देता है d, टाइपिंग deमुझे पहली फ़ाइल देता है de

नया और अवांछित व्यवहार: टाइपिंग dएक खोज प्रक्रिया शुरू करता है और मुझे /home/myuser/Downloads/somestuff/DETLEFFया सिस्टम में कहीं और कोई फ़ाइल देता है।

उदाहरण: Gtk3FileChooser

मैं पुराने और उत्पादक व्यवहार में वापस कैसे बदल सकता हूं?

मेरी प्रणाली: archliux64, Gtk3: 3.18.6, windowmanager: fluxbox

जवाबों:


18

जिस सुविधा के लिए आप देख रहे हैं उसे "टाइपएडहेड" कहा जाता है और यह अक्षम है GtkFileChooserDialoggtk3-typeaheadAUR से पिछले व्यवहार को पुनर्स्थापित करता है।

पैकेज लेखक का कहना है कि टाइप-हेड को निष्क्रिय करना GTK + में हार्डकोड है और एक बग रिपोर्ट में कहा गया था: "बग नहीं, टाइप-फॉरवर्ड सर्च को हटाना बहुत जानबूझकर था।"

ध्यान दें कि शेल के व्यवहार की नकल करते हुए नाम / पता फ़ील्ड में अब कुछ (आंशिक रूप से टूटा हुआ) टैब-पूरा हो गया है।


6

अद्यतन उत्तर:

2019 तक, मैं आर्क के AUR रिपॉजिटरी (लेकिन अभी भी अपने डेबियन सिस्टम पर ) का उपयोग करने के लिए तैयार हूं । मैंने यह भी FreeBSD पर किया है, अब, छोटे (कुछ तुच्छ) पैच के साथ। यह "आर्क पर स्विच" उत्तर नहीं है।

यह पहली बार में स्थापित करना थोड़ा कठिन था, लेकिन इसका सार यह है कि आप वास्तव में आर्क के makepkgकार्यक्रम को संकलित कर सकते हैं और इसका उपयोग डेबियन पर AUR रिपॉजिटरी को संकलित करने के लिए कर सकते हैं। मैंने ऐसा किया (हालाँकि मैं कुछ निर्भरताएँ भूल गया हूँ):

नीचे के पास विभाजक के बाद भी मेरा पुराना उत्तर मौजूद है।

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। सभी (डेबियन) निर्भरता का निर्माण करने के लिए, जो कमोबेश आर्क के समान हैं, आपको पहले deb-srcअपने स्रोतों में एक पंक्ति होनी चाहिए । सूची ताकि 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"

यह अत्यंत स्क्रिप्ट योग्य है, और मेरी विनम्र राय में मेरी पुरानी लिपियों से निपटने की तुलना में थोड़ा कम है। यह भी अब डेबियन पर निर्भर नहीं करता है।


मूल उत्तर:

यह एक साल हो गया है और यह अभी भी मुझे परेशान करता है, क्योंकि GTK3 के लोगों ने इस व्यवहार को हार्डकोड करने का फैसला किया है, बिना किसी तरह के इसे वापस करने के बिना।

हालाँकि, टाइपबैड को वापस Ubuntu में वितरित के रूप में gtk3 में पैच किया गया था।

उबंटू ने फ़ाइल को चुनने के लिए फ़ाइल चयनकर्ता को एक डबल क्लिक की आवश्यकता होती है, इसके बजाय केवल एक क्लिक की आवश्यकता होती है यदि फ़ाइल पहले से ही चयनित थी। यदि आप gtk3 स्रोत कोड को पैच करने के साथ ठीक हैं, तो मैंने एक पैच बनाया है जो gtk + 3.22.7 के रूप में काम करता है, जिसमें ubuntu पैच का संयोजन है और उन्हें GTK के अधिक वर्तमान संस्करण में अपडेट कर रहा है।

इसके अतिरिक्त, मैंने अपने डेबियन सिस्टम के लिए एक स्क्रिप्ट बनाई जो पैकेज मैनेजर में नवीनतम संस्करण के लिए स्रोत को स्वचालित रूप से डाउनलोड करता है, इसे पैच करता है, और इसका अनुपालन करता है। डेबियन सिड पर सही ढंग से चलता है, और अन्य डेबियन डिस्ट्रोस के लिए भी ठीक काम करना चाहिए।


3

डेबियन अस्थिर होने पर, आप ctrl-lविंडो के खुले होने ( लुकहेड के लिए एल) को दबाकर टाइपहेड कार्यक्षमता प्राप्त कर सकते हैं , लेकिन केवल फ़ाइल के लिए खुले संवाद, न कि फ़ाइल सहेजने वाले संवाद। फ़ाइल सहेजें संवादों के लिए, ctrl-lकेवल सहेजे जाने वाले फ़ाइल के नाम पर प्रकाश डाला जाएगा। एक और अधिक बुद्धिमान तरीके से नेविगेट करने के लिए, आप टाइप कर सकते हैं ~, /, .सही संयोजन में अपने घर निर्देशिका, वर्तमान निर्देशिका, या जड़ से एक निर्देशिका पथ प्राप्त करने के लिए। साथ ही बैक एरो की को मारकर नाम को अचयनित कर सकते हैं और कर्सर को बॉक्स में रख सकते हैं ताकि आप वर्तमान नाम को ढीला न करें (जैसा कि "सेव अस" ऑपरेशन में होगा)।

ऐसा लगता है कि पुराना व्यवहार बहुत बेहतर था :)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.