Durante vários anos, não houve nenhuma configuração para tornar konsole
respect $PWD
. No entanto, existe uma opção de linha de comando --workdir
que pode ser explorada por um script para tornar a função konsole
conforme desejado.
-
Verifique o caminho para localizar um local acessível pelo usuário que tenha precedência sobre
/usr/bin
examinando a saída deecho $PATH
. Opções típicas incluem~/bin/
e~/.local/bin/
. -
Crie um arquivo chamado
~/bin/konsole
(ou~/.local/bin/konsole
) com o seguinte conteúdo:#!/usr/bin/env bash # make konsole respect $PWD, as other terminals do # save as ~/bin/konsole or ~/.local/bin/konsole # catch unset or mis-set PWD [[ -z $PWD ]] && PWD="$HOME" [[ "$PWD" == '/' ]] && PWD="$HOME" term_cls='konsole' # window class needed for xdotool to activate window term_bin='type -a -p konsole | tail -n 1' # location of original 'konsole' term_cmd=( "$term_bin" ) [[ $PWD ]] && term_cmd+=( --workdir "$PWD" ) term_tab=( "${term_cmd[@]}" --new-tab ) case $1 in -h|--help|-v|--version|--author|--license|--list-profiles|--list-profile-properties) "$term_bin" "$1" ;; -p) echo 'cannot change profile properties at this time' ;; *) find_app=( xdotool search --onlyvisible --class "$term_cls" windowactivate exec "${term_tab[@]}" ) "${find_app[@]}" || xdotool exec "${term_cmd[@]}" ;; esac
-
Dê ao novo script permissões de execução.
chmod +x ~/bin/konsole
Agora, sempre que esse script for executado, ele processará $PWD
e executará /usr/bin/konsole --workdir "$PWD"
. Se colocar na pasta certa, terá prioridade sobre o real konsole
e o uso será transparente. Scripts semelhantes podem ser criados para outros programas que não se comportam como desejado.