Allow users to modify XDG_DATA_DIRS in the fish rc files
The only downside of this new technique is that it is no longer possible to set XDG_DATA_DIRS to an empty var in kitty.conf Since an empty XDG_DATA_DIRS breaks lots fo things, I dont think that is a big concern.
This commit is contained in:
parent
6fa0a21b3c
commit
b5e8b5a124
@ -65,15 +65,12 @@ def setup_fish_integration(env: Dict[str, str]) -> None:
|
|||||||
|
|
||||||
def setup_fish_env(env: Dict[str, str]) -> None:
|
def setup_fish_env(env: Dict[str, str]) -> None:
|
||||||
val = env.get('XDG_DATA_DIRS')
|
val = env.get('XDG_DATA_DIRS')
|
||||||
if val is None:
|
env['KITTY_FISH_XDG_DATA_DIR'] = shell_integration_dir
|
||||||
|
if not val:
|
||||||
env['XDG_DATA_DIRS'] = shell_integration_dir
|
env['XDG_DATA_DIRS'] = shell_integration_dir
|
||||||
elif not val:
|
|
||||||
env['XDG_DATA_DIRS'] = shell_integration_dir
|
|
||||||
env['KITTY_FISH_XDG_DATA_DIRS'] = ''
|
|
||||||
else:
|
else:
|
||||||
dirs = list(filter(None, val.split(os.pathsep)))
|
dirs = list(filter(None, val.split(os.pathsep)))
|
||||||
dirs.insert(0, shell_integration_dir)
|
dirs.insert(0, shell_integration_dir)
|
||||||
env['KITTY_FISH_XDG_DATA_DIRS'] = val
|
|
||||||
env['XDG_DATA_DIRS'] = os.pathsep.join(dirs)
|
env['XDG_DATA_DIRS'] = os.pathsep.join(dirs)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -2,14 +2,21 @@
|
|||||||
|
|
||||||
function _ksi_main
|
function _ksi_main
|
||||||
test -z "$KITTY_SHELL_INTEGRATION" && return
|
test -z "$KITTY_SHELL_INTEGRATION" && return
|
||||||
if set -q KITTY_FISH_XDG_DATA_DIRS
|
if set -q XDG_DATA_DIRS
|
||||||
set --global --export XDG_DATA_DIRS "$KITTY_FISH_XDG_DATA_DIRS"
|
set --global --export --path XDG_DATA_DIRS "$XDG_DATA_DIRS"
|
||||||
else
|
if set -q KITTY_FISH_XDG_DATA_DIR
|
||||||
set --erase XDG_DATA_DIRS
|
if set -l index (contains -i "$KITTY_FISH_XDG_DATA_DIR" $XDG_DATA_DIRS)
|
||||||
|
set --erase --global XDG_DATA_DIRS[$index]
|
||||||
|
test -z "$XDG_DATA_DIRS" && set --erase --global XDG_DATA_DIRS
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if set -q XDG_DATA_DIRS
|
||||||
|
set --global --export --unpath XDG_DATA_DIRS "$XDG_DATA_DIRS"
|
||||||
|
end
|
||||||
end
|
end
|
||||||
set --local _ksi (string split " " -- "$KITTY_SHELL_INTEGRATION")
|
set --local _ksi (string split " " -- "$KITTY_SHELL_INTEGRATION")
|
||||||
set --erase KITTY_SHELL_INTEGRATION
|
set --erase KITTY_SHELL_INTEGRATION
|
||||||
set --erase KITTY_FISH_XDG_DATA_DIRS
|
set --erase KITTY_FISH_XDG_DATA_DIR
|
||||||
|
|
||||||
function _ksi_osc
|
function _ksi_osc
|
||||||
printf "\e]%s\a" "$argv[1]"
|
printf "\e]%s\a" "$argv[1]"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user