From f0de9b9111e1a850081cfebc93bed059761285e3 Mon Sep 17 00:00:00 2001 From: Ezri Date: Mon, 25 Mar 2024 12:15:08 -0600 Subject: [PATCH] application launcher now has support for environment variables --- .config/sway/workspaces.json##hostname.rocinante | 14 ++++++++++---- .local/bin/default-application-launcher | 8 ++++++++ 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/.config/sway/workspaces.json##hostname.rocinante b/.config/sway/workspaces.json##hostname.rocinante index fee2811..532ad55 100644 --- a/.config/sway/workspaces.json##hostname.rocinante +++ b/.config/sway/workspaces.json##hostname.rocinante @@ -4,25 +4,31 @@ { "index": 1, "name": "terminal", - "exec": "alacritty", + "exec": "console", "program_name": "console" }, { "index": 2, "name": "code", - "exec": "alacritty", + "exec": "console", "program_name": "console" }, { "index": 3, "name": "internet", - "exec": "env MOZ_ENABLE_WAYLAND=0 firefox --new-window", + "exec": "firefox --new-window", + "environ": { + "MOZ_ENABLE_WAYLAND": "1" + }, "program_name": "firefox" }, { "index": 4, "name": "project", - "exec": "env MOZ_ENABLE_WAYLAND=0 firefox --new-window", + "exec": "firefox --new-window", + "environ": { + "MOZ_ENABLE_WAYLAND": "1" + }, "program_name": "firefox" }, { diff --git a/.local/bin/default-application-launcher b/.local/bin/default-application-launcher index 71d0743..cf68878 100755 --- a/.local/bin/default-application-launcher +++ b/.local/bin/default-application-launcher @@ -15,6 +15,7 @@ program_name=$(echo $ws_data | jq -r '.program_name') memory_profile=$(echo $ws_data | jq '.memory_profile' -c) run_with_systemd=$(echo $ws_data | jq '.systemd' -r) void_output=$(echo $ws_data | jq '.void_output' -r) +IFS=$'\n' environ=($(echo $ws_data | jq '.environ | to_entries | map("\(.key)=\(.value|tostring)") | .[]' -r 2> /dev/null)) systemd_run_args="" @@ -37,8 +38,15 @@ fi echo "Launching application $program" +if [[ $environ != "" ]]; then + for env in $environ; do + export $env + done +fi + if [[ $program == "console" ]] && [[ $pty == "alacritty" ]]; then # Create a new window if an instance is already running, otherwise start the service + echo "Creating new alacritty window" $pty msg create-window || /usr/bin/systemctl --user start alacritty.service exit 0 elif [[ $program == "console" ]]; then