GtkFileChooserDialog 검색을 비활성화하는 방법?


24

gtk3 앱 (예 : 파이어 폭스)에서 파일을 열거 나 저장하려면 캐릭터를 기울인 후 원치 않는 검색 기능을 사용할 수 있습니다.

오래되고 생산적인 행동 : 타이핑 d은로 시작 하는 첫 번째 파일을 제공 d하고 타이핑 de은로 시작 하는 첫 번째 파일을 제공 de합니다.

새롭고 원치 않는 동작 : 입력 d하면 검색 프로세스가 시작 /home/myuser/Downloads/somestuff/DETLEFF되고 시스템 어딘가에 나나 다른 파일이 나타납니다.

예: Gtk3FileChooser

오래되고 생산적인 행동으로 다시 바꾸려면 어떻게해야합니까?

내 시스템 : archliux64, Gtk3 : 3.18.6, 창 관리자 : fluxbox

답변:


18

찾고있는 기능을 "typeahead"라고하며에서 비활성화되어 GtkFileChooserDialog있습니다. gtk3-typeaheadAUR에서 이전 동작을 복원합니다.

패키지 작성자 는 typeahead 비활성화가 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.gzgit 트리의 한 레벨 위의 아카이브에 압축됩니다 . 이 예에서는 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 사람들은 재 컴파일하지 않고 되돌릴 방법이 없어서이 동작을 하드 코딩하기로 결정했기 때문에 1 년이 지났지 만 여전히 짜증납니다.

그러나 typeahead는 우분투에 배포 된 gtk3에 다시 패치되었습니다.

우분투는 또한 파일 선택기가 파일을 이미 선택한 경우 한 번만 클릭하는 대신 파일을 선택하기 위해 더블 클릭을 요구했습니다. gtk3 소스 코드를 패치해도 괜찮다면 gtk + 3.22.7부터 작동하는 패치를 만들었다 , 우분투 패치를 결합하고 최신 GTK 버전으로 업데이트하는 .

또한 패키지 관리자에서 최신 버전의 소스를 자동으로 다운로드하여 패치하고 컴파일하는 데비안 시스템 용 스크립트만들었 습니다. 데비안 시드에서 올바르게 실행되며 다른 데비안 배포판에서도 잘 작동합니다.


3

데비안 불안정한 ctrl-l경우, 창이 열릴 때 (lookahead의 경우 l) 파일 저장 대화가 아닌 파일 열기 대화에 대해서만 누르면 자동 완성 기능을 사용할 수 있습니다 . 파일 저장 대화 상자의 경우 저장할 파일 ctrl-l이름 만 강조 표시됩니다. 더 지능적인 방법으로 이동하려면, 당신은 입력 할 수 있습니다 ~, /, .올바른 조합으로 홈 디렉토리, 현재 디렉토리, 또는 루트에서 디렉토리 경로를 얻을 수 있습니다. 또한 뒤로 화살표 키를 누르면 이름을 선택 해제하고 상자에 커서를 유지하여 "다른 이름으로 저장"작업에서와 같이 현재 이름을 잃지 않도록 할 수 있습니다.

오래된 행동이 훨씬 낫습니다 :)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.