1
0
Files
dotfiles/.config/fish/functions/layout.fish
2024-12-14 00:15:47 +01:00

61 lines
1.4 KiB
Fish

function layout
argparse -n "layout" "v/verbose" "t/target=" -- $argv
or return 1
set _target
if set -q _flag_target
set _target "$_flag_target"
end
if test -f "$_TEMP/curr-layout"
if not set -q _flag_target
switch (cat "$_TEMP/curr-layout")
case us
set _target "sv"
case se
set _target "us"
case sv
set _target "us"
case '*'
if set -q _flag_verbose
echo "Unregognized layout set in /curr-layout file; stopping..."
end
return 1
end
end
else
if set -q _flag_verbose; and not set -q _flag_target
echo "Could not determine current layout; defaulting to US"
end
echo "us" > "$_TEMP/curr-layout"
if not set -q _flag_target
set _target "sv"
end
end
if not set -q _target
return 2
end
if set -q _flag_verbose
switch (echo $_target)
case sv
echo "Switching to Swedish layout..."
case us
echo "Switching to U.S. layout..."
end
end
switch (echo $_target)
case sv
set _target se
case '*'
end
if setxkbmap -layout $_target
echo $_target > "$_TEMP/curr-layout"
end
return $status
end