12

I Have a script that change my desktop layout using xrandr, but I also want to move my Panel.

So far I played round with kwinscripts, using
qdbus org.kde.plasmashell /PlasmaShell org.kde.PlasmaShell.showInteractiveConsole

If i move it using the mouse, the panel.screen changes between 0 and 2, but the script row panel.screen = 2 don't set it to 2, it stays, but panel.location='bottom' works fine.

var panel = panelById(panelIds[0])
print('before, panel.screen: ');
print(panel.screen);
panel.screen=2;
//panel.location='top';
panel.location='bottom';
print('after, panel.screen: ');
print(panel.screen);

Why isn't panel.screen=2; working?, and what else can I do to move it?

Puggan Se
  • 340
  • 4
  • 10
  • Having the same issue here... Did you find any solution to this? – Laimoncijus Aug 19 '16 at 06:14
  • @Laimoncijus: not a good one, as long as i have all 3 monitors connected, I can still move it using the mouse, and when I move my laptop, I can add an extra default panel on an active monitor. – Puggan Se Aug 24 '16 at 10:04
  • Looking for the same... I use i3wm as my WM + plasmashell, when I disconnect the monitor where the panel is, I cannot restore on the laptop monitor... Quite frustrating – tmow Aug 23 '19 at 07:08
  • Found this https://www.reddit.com/r/kde/comments/9d10na/how_can_i_restore_missing_panel_widgets_in_kde/ that is a quite useful workaround. cc @PugganSe – tmow Aug 23 '19 at 08:58

1 Answers1

0

It's possible that the panel.screen value is read-only and cannot be changed via the kwinscripts method. You could try using the qdbus command to move the panel instead:

qdbus org.kde.plasmashell /PlasmaShell org.kde.PlasmaShell.evaluateScript 'var panel = panelById(panelIds[0]); panel.geometry = QRect(0, 0, screenGeometry(2).width, panel.preferredSize.height);'

This command sets the panel's geometry to match the width of screen 2, effectively moving it to the bottom of the screen. You can adjust the values in the QRect() function to move the panel to a different location on the screen.

Toto
  • 17,001
  • 56
  • 30
  • 41
Mostafa
  • 1
  • 2