I just managed to make a quick hack which achieves the effect that I wanted. I added the following to the Custom Javascript tab in ACP:
function showreplies() {
$('li[component="post"]').has('a[component="post/parent"]').addClass('hidden');
$('[component="post/replies/open"]').click();
}
function noreply(event, data){
if(data.posts.length==1 && data.posts[0].toPid) { // this is a reply to some post
var el = $('li[data-pid="'+data.posts[0].pid+'"]'); // newly added post
if(el.parent('div[component="post/replies"]').length===0){ // added as a standalone post
el.addClass('hidden');
}
}
$('div[component="post/replies"]').find('a[component="post/reply"], a[component="post/quote"]').addClass('hidden');
}
$(window).on('action:ajaxify.end', showreplies);
$(window).on('action:posts.loaded', noreply);
The first line in function showreplies hides those posts which are replies to previous posts, and the second line opens up the replies below the relevant posts. (@baris This was my attempt before I read your answer. Thanks for the pointer to the code! I will try that out).
I added the handler for action:posts.loaded in order to
Eliminate Reply and Quote buttons for the replies in order not to generate higher levels of nesting (this is ok for me)
After adding a reply to a post, by default it is also added at the end - in order to avoid that I set it to hidden. This does not work so well as the page gets scrolled to the top after that.. - I am not quite sure how to fix it. If I figure it out I'll make an update..