Secondary app instance to open another profile

I want to have 2 Joplin instances on separate monitors with 2 different existing profiles open.

Is it possible to open an existing profile in the secondary app instance? After I open the secondary instance, and I try to switch profile, there's only the default profile available:

I have a separate profile only for desktop use and the second that I use to sync with mobile. I move some of the notes from one profile to another and I have a lot of notes already, so doing so without 2 instances at the same time became infeasible. One solution is to use separate computers but it's an overkill. I guess I can delete the profile from my primary instance and set it up again in the secondary one. I guess it's a good choice as the secondary instance is meant to be a separate environment and I don't care about the plugins I use in my primary because the mobile profile is meant to be mobile-first anyway.

Maybe can I just cut and paste the right profile from the primary env folder to the secnodary env folder somewhere in ~/.config/ like ~/.config/joplin-desktop/profile-mobile => ~/.config/joplin-desktop-alt1/profile-mobile. I guess it's not gonna mess up anything?

Thoughts?


The Joplin version I'm using:
Joplin 3.3.5 (prod, linux)

Device: linux, x64
Client ID: 0f9530aca8ed4c4ea7055863313f8280
Sync Version: 3
Profile Version: 47
Keychain Supported: No
Alternative instance ID: alt1

Revision: b3a3690

Backup: 1.4.2
Freehand Drawing: 3.0.1

Many of us would like to use the second instance like this : we open it and all profiles are the same than in the first instance. So we open one profile inside the first instance and another one inside the second instance. And we should change of profile inside the first or inside the second instance from time to time.
But it's not working like this. :sad_but_relieved_face:
New instance = new profiles to create !
Of course you can export (.jex) the datas of a profile from the first instance and import it in the profile you want in the second instance...

Have a look at this topic:

Have a look at this topic:

I appreciate that I don't have to use a second computer anyway, I was already thinking about the way to sync between 2 computers, removing the profile from the 1st instance and adding it to the 2nd instance is not a big deal. Of course importing/exporting jex is easy when there's no syncing. Fortunately, I sync with the file system so it's not a big deal anyway I guess.

My question then: how do I launch the second instance (home) without the first having been launched first?

I see why it could be a problem for other people, it's not a problem for though as I have my desktop instance always open.

How to safely remove added profile

@Steph , I understand that swapping the blocks from one profile.json to another one between the instance folders is necessary, but what about the whole structure inside the sqlite db? I assume each profile has its own db, so moving the profile folder should do the trick right?
Also, all paths are relative so there's no problem with that?
Trying to figure out what potential problems the operation might bring about.

Of course, before doing anything : backup your datas !!!

-- Every profile has his directory with everything. You don't have to interfer.

-- Profile.json only deals with profiles names and accessibility to them from JOPLIN and not with datas on disk...
If you modify the .json you will have modifications here:

With that, without "killing" any datas you can make a profile appear or disappear in this list ! But you will have to remember that there's a profile on your disk with datas and one day make it visible again ! You can also change the name of profiles...

At this moment : don't touch anything because if you "break" the .json, Joplin will refuse to open. No risk for datas but boring to repair. Don't play with the "default profile". If you don't know what you are doing : give up this way.

-- If I were you I will start with something simple:

  1. sync if you need
  2. backup all profiles
  3. the goal : to "move" Instance1_profileA to Instance2
  4. On Instance1, export datas with a .jex
  5. On Instance2, create a new profile with a name similar but not identical to your profile A. We can name it A'
  6. Import the .jex in this profile A'.
  7. So you have now:
    Instance1_profilA and instance2_profileA', with identical datas.
  8. organize the sync for Instance2_profileA' and "forget" Instance1_profileA.
    It will be a starting point.

Use the .json if you want the Instance1_profilA to stop to appear in the list. But learn how to do it on another computer before with no risk for your Joplin workflow !

Of course you can "play" with directories but it's too much risk for little interest at this moment.

So at the end I made it moving the folder:

  1. check which folder corresponds to the profile in profile.json
  2. close Joplin
  3. move all the files and folders (the most important are resources, settings.json, database.sqlite, window-state-prod.json, lock) from the ~/.config/joplin-desktop/profile-abcdefgh directory to the ~/.config/joplin-desktop-alt1 (the path prefix depends on the system, see Home directory | Joplin)
  4. remove the profile-abcdefgh block from profile.json
  5. start Joplin again – the profile should be gone in the primary instance and you should find your notes in the default profile in the secondary instance :white_check_mark:

I faced no problems so far, it works great.

1 Like