So, I'm basically using #parch scheme which I luckily found on german Lilypond forums (sadly seems to be down now).. scheme for it is the following:
parch = #(define-music-function (parser location gap) (number?)
#{
\once \override Arpeggio.stencil = #(lambda (grob)
(ly:stencil-add
(ly:arpeggio::brew-chord-slur grob)
(ly:stencil-translate-axis
(ly:stencil-rotate (ly:arpeggio::brew-chord-slur grob) 180 0 0)
gap X)))
\once \override Arpeggio.X-extent = #(lambda (grob)
(ly:stencil-extent (ly:arpeggio::brew-chord-slur grob) X))
\once \override Arpeggio.positions = #(lambda (grob)
(interval-widen (ly:arpeggio::calc-positions grob) 1.5))
$(make-music 'EventChord 'elements (list (make-music 'ArpeggioEvent)))
#})
which I kinda made work by doing the chord on d# note with greater range, but with the upper note hidden, so the parenthese is not too small. However, if I make the chord with super low note, staff will stretch and it's not working.