GtkFileChooserDialog検索を無効にする方法は?


24

gtk3アプリ(firefoxなど)でファイルを開いたり保存したい場合、キャラクターを傾けた後に不要な検索機能を取得します。

古い生産的な動作:タイピングdはで始まる最初のファイルを与えd、タイピングdeはで始まる最初のファイルを与えますde

新しい望ましくない動作:入力dすると検索プロセスが開始さ/home/myuser/Downloads/somestuff/DETLEFFれ、システム内のどこかに自分または他のファイルが表示されます。

例: Gtk3FileChooser

古い生産的な動作に戻すにはどうすればよいですか?

私のシステム:archliux64、Gtk3:3.18.6、windowmanager:fluxbox

回答:


18

お探しの機能は「typeahead」と呼ばれ、では無効になっていGtkFileChooserDialogます。gtk3-typeaheadAURから以前の動作を復元します。

パッケージ作成者は、typeaheadを無効にすることは GTK +でハードコードされており、バグレポートに次のように述べられていると述べています。

シェルの動作を模倣する名前/アドレスフィールドに(部分的に壊れた)タブ補完があることに注意してください。


6

更新された回答:

2019年の時点で、ArchのAURリポジトリを使用することを期待しています(しかし、まだDebianシステム上にあります)。また、FreeBSDでこれを行って、今では小さな(やや些細な)パッチを適用しています。これは「Archへの切り替え」の答えではありません。

最初は設定するのが少し大変でしたが、その要点は、Archのmakepkgプログラムを実際にコンパイルし、それを使用してDebianで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ます。Archのビルドとほぼ同じである(debian)ビルドの依存関係をすべて取得するには、必要なパッケージを正常に取得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.gzgitツリーの1レベル上のアーカイブにパックされます。私の例では、これは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の人々はこの動作をハードコードすることを決定し、再コンパイルせずに元に戻すことはできなかったので、1年が経ちましたが、これでもいらいらします。

ただし、typeaheadはUbuntuで配布されているようにgtk3にパッチが適用されました。

また、Ubuntuは、ファイルが既に選択されている場合にシングルクリックだけを要求するのではなく、ファイルを選択するためにダブルクリックを必要とするファイル選択を行いました。gtk3ソースコードにパッチを適用しても問題ない場合は、ubktu パッチを組み合わせてGTKの最新バージョンに更新するgtk + 3.22.7の時点で機能するパッチを作成しました。

さらに、パッケージマネージャーで最新バージョンのソースを自動的にダウンロードし、パッチを適用してコンパイルする、debianシステム用のスクリプトを作成しました。Debian Sidで正しく実行され、他のDebianディストリビューションでも正常に動作するはずです。


3

Debian不安定版でctrl-lは、ウィンドウが開いているときに押すことで先行入力機能を取得できます(lookaheadの場合はl)。ただし、ファイル保存ダイアログではなく、ファイルを開くダイアログに対してのみ使用できます。ファイル保存ダイアログでctrl-lは、保存するファイルの名前のみが強調表示されます。より賢明な方法で移動するには、次のように入力することができ~/.正しい組み合わせで、ホームディレクトリ、カレントディレクトリ、またはルートからのディレクトリパスを取得します。また、戻る矢印キーを押すと、名前を選択解除してカーソルをボックス内に保持できるため、現在の名前を失うことはありません(「名前を付けて保存」操作で発生します)。

古い動作がはるかに優れていたようです:)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.