My workspace 1 is named in the i3 config file as
set $ws1 "1: Browser "
I have set up execution of Firefox at startup and assigned it to ws1 in the config file as:
# Startup appplication run
exec firefox
assign [class="Firefox"] $ws1
However, this means that whenever I open Firefox, the window opens only in ws1. I only want the startup firefox to open in ws1 and have the option to open Firefox in any other workspace of my choice as well.
Question 1: How can I do it?
Question 2: Any efficient way to do this for multiple apps?
You probably missed it in the excellent i3 user documentation (see 4.17), but you can achieve that with a construct as
to start firefox on startup on workspace 3.
It is unclear what you consider an "efficient way". You need to issue a command for any application you want to autostart. You could include multiple statements to change workspaces and launch different applications in the construct above, but at some point, you will hamper the readability of your configuration file.