Small question: The default commands/buttons (copy, delete,...) include a "@disablenosel", but join/split need explicitly a "@disablenosel". Did you forgot them?
And just as info: "@disablenosel" doesn't work when placed directly within user-commands und you use them in a button.
Do they? They don't here (although they behave as if they did automatically).
The Join command still works if no file is selected (it shows a UI where you can add files as a second step).
Split does indeed need a file; I'll see if we can make it be disabled when nothing is selected. (Edit: Not worth bumping the thread but for the record this was done in Beta 4.)