Ok, first off KDE Connect is a killer app. It’s so slick and convenient. Love it.
My desktop is running Fedora 42 Workstation with Gnome. Since I’ve got GNOME instead of KDE, I’m using an extension called GSConnect to communicate with KDE connect on my phone. It’s working perfectly.
I’ve also got this extension called “Display Configuration Switcher” that lets me use a keyboard shortcut ( ctrl + ; ) to switch between two display configs:
- Standard desktop layout
- TV only.
(Fedora 42 is using Wayland, when I was on X11 I could use ARandR to create custom commands but Wayland is… more complicated.)
I want to add a command to KDE Connect/GSConnect to switch my display configuration from “desktop” output to “TV” output. The problem is I don’t know what command to invoke to trigger “Display Configuration Switcher” to swap configurations.
There are multiple ways to approach this. The best solution is just to figure out what command is invoked when I press the keyboard shortcut “ctrl + ;”, which is the shortcut to switch display configs. I’m not sure how to see what command is run when I press a button or shortcut.
Alternatively, I could find a way to send the ctrl + ; shortcut from the KDE connect app. Sending keyboard shortcuts would be handy regardless, but this is a workaround.
Any help would be appreciated. Thank you in advance!
as far as i can tell, those keybindings are handled internally, they don’t invoke shell commands
you can use something like wtype or ydotool to send keybindings from kdeconnect
ydotool is working! However I need to start the daemon in order for it to work, using:
ydotoold --socket-path="/run/user/1000/.ydotool_socket" --socket-own="$(id -u):$(id -g)"
So now I’m looking for a way to automatically run that on login so that it’s fully automatic. KDE has startup options that can run scripts, but GNOME seems to only let you run “apps” using GNOME tweaks.
So I need to figure out how to have Fedora/GNOME run a command in the background at startup, then I should be good to go.
(If no one replies to this post I’ll edit it later with my results.)
in this case, you’ll probably have to create a desktop entry in
~/.local/share/applications/ydotoold.desktop
something like
[Desktop Entry] Name=ydotool daemon Exec=the command you used to launch Type=Application
you can look at other .desktop in the same directory for reference
Ok, wtype looks really promising but I’m having issues building it. I cloned it, installed meson, and when I try “meson build” I get this error:
meson.build:1:0: ERROR: Unknown compiler(s): [['cc'], ['gcc'], ['clang'], ['nvc'], ['pgcc'], ['icc'], ['icx']] The following exception(s) were encountered: Running `cc --version` gave "[Errno 2] No such file or directory: 'cc'" Running `gcc --version` gave "[Errno 2] No such file or directory: 'gcc'" Running `clang --version` gave "[Errno 2] No such file or directory: 'clang'" Running `nvc --version` gave "[Errno 2] No such file or directory: 'nvc'" Running `pgcc --version` gave "[Errno 2] No such file or directory: 'pgcc'" Running `icc --version` gave "[Errno 2] No such file or directory: 'icc'" Running `icx --version` gave "[Errno 2] No such file or directory: 'icx'"
And I can’t figure out what I need to install to fix that. It looks like on debian based systems there’s a “build-essentials” package, but when I “sudo dnf search build-essential” I get nothing. I’ll keep searching but if you have any tips please let me know.
deleted by creator
Ok, so following the MesonBuild website, I needed to install a compiler toolchain:
sudo dnf install gcc-c++
Then I was still missing some dependencies, so I also dnf installed “cmake,” “rust-wayland-client+default-devel,” and “rust-xkbcommon+wayland-devel”
And now it builds and I was able to install! However, it doesn’t work. I get an error “Compositor does not support the virtual keyboard protocol,” which, looking at the issues on github, seems to be a known issue with Fedora and other GNOME desktops.
So wtype is out. I’ll try ydotool next!
I’ll look into these, thank you!
You are looking for gdctl. https://manpages.ubuntu.com/manpages/plucky/man1/gdctl.1.html
You may also want pactl for audio switching.
This looks promising, thank you!
EDIT: This is the way! I was able to use gdctl to change my monitor setup. I couldn’t find any tutorials online aside from the example at the bottom of the man page. Once I configure everything to my liking (including pactl) I’ll do a write up and edit my post. Thank you!
Yup! I’m here. I know how to add commands, I just don’t know the command to run.
I don’t know what command to invoke to trigger “Display Configuration Switcher” to swap configurations.
I appreciate the comment though!
Just send “CTRL +” if that’s what works locally. Am I missing something here?
How do you send the ctrl key? My mobile keyboard doesn’t have ctrl, alt, shift, or super modifiers.
Literally the link I sent you that you said you read. See the link to Userbase within for examples.
Edit: also https://www.reddit.com/r/kde/comments/v3svo7/alt_ctrl_and_super_key_input_with_kde_connect/
Thanks.
So the link you originally sent doesn’t say anything about sending ctrl/shift/alt modifier keystrokes. And I didn’t click the Userbase link at the end of that page because it said it was linking to scripts.
That Userbase link does mention sending keystrokes! However it uses “nircmd,” which is a windows-specific command (Example: nircmd sendkeypress shift+plus)
BUT! The reddit link mentions Unexpected Keyboard, which does work! Once installed and enabled I can go into KDE Connect > remote input > keyboard and hit the language icon/globe thing and my keyboard swaps between my preferred keyboard and Unexpected keyboard. On UK I can press Ctrl and swipe down&right on the “n” key to access semicolon and my display config switches. Success!
However it’s still not as clean as I would like it. It’s still 5 clicks/taps instead of 2. I decided to post on the app’s GitLab page to see if the developer could make a command or something that would trigger the switch. But in the mean time, I have one working solution. So thanks!