Remap "next song" -Taste in Ubuntu, um mit Spotify und Wein zu arbeiten

7351
Daniel T. Magnusson

Ich möchte das Lied in Spotify mit einem globalen Schlüssel in Ubuntu ändern. Dies ist unter Windows mit einer Sondertaste auf der Tastatur möglich, die "Nächste Liedtaste" (?)

Wie kann ich eine Taste in Ubuntu neu zuordnen (hier kein "Nächster Song"), um als "Nächster Song" zu arbeiten? wie "Strg + rechte Taste".

Und wie würde ich das mit Spotify machen, das Wein durchläuft?

Im Grunde möchte ich wissen, was der ASCII-Code für den "Nächster Song" -Knopf ist, und wie kann ich ihn unter Ubuntu einer Tastenkombination zuordnen. Und ich hoffe, es leitet diesen Befehl problemlos durch den Wein.

Edit: Ich habe nicht die Schaltfläche "Nächster Song" auf der Ubuntu-Maschine.

5

4 Antworten auf die Frage

3
Kevin

Für Ubuntu gibt es jetzt ein " Spotify für Linux ". Bei der Zuordnung einer Tastenkombination zum "nächsten Song" kann der dconf-editor helfen ( siehe hier ). Sobald ein Keymapping für das "nächste Lied" erstellt wurde, gibt es einen schönen Spotify-Wrapper für die Integration von Medienschlüsseln, der von John Reese geschrieben wurde.

BEARBEITEN: Spotify für Linux unterstützt jetzt Medientasten.

3
qboileau

Oder Jbonney hat mit dbus-send hier eine ziemlich nette Lösung gefunden

Oder wenn Sie es eilig haben:

"dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.PlayPause" XF86AudioPlay "dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Stop" XF86AudioStop "dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Next" XF86AudioNext "dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Previous" XF86AudioPrevious 
du bist der Mann! Snow vor 6 Jahren 0
1
quack quixote

Verwenden Sie xev(X-Ereignisanzeige), um zu bestimmen, welcher Schlüsselcode gesendet wird, wenn Sie diese Taste drücken. Dann können Sie den Schlüssel im Keymapping-Dienstprogramm des verwendeten Systems (Gnome, KDE, nacktes X usw.) neu zuordnen.

Auf meinem Debian-System xevwird das x11-utilsPaket installiert, daher ist es wahrscheinlich in einer typischen Ubuntu-Desktop-Installation enthalten.

Anwendungsbeispiel:

$ xev [example keypress: right option key on an apple USB keyboard]  KeyPress event, serial 33, synthetic NO, window 0x1200001, root 0x2e, subw 0x0, time 122600873, (-49,299), root:(679,325), state 0x0, keycode 255 (keysym 0xffec, Super_R), same_screen YES, XLookupString gives 0 bytes: XmbLookupString gives 0 bytes: XFilterEvent returns: False  KeyRelease event, serial 34, synthetic NO, window 0x1200001, root 0x2e, subw 0x0, time 122600971, (-49,299), root:(679,325), state 0x0, keycode 255 (keysym 0xffec, Super_R), same_screen YES, XLookupString gives 0 bytes: XFilterEvent returns: False 
Vielen Dank für die Antwort, ein Teil des Problems ist, dass ich auf diesem Computer keine Schaltfläche für das nächste Lied habe. Ich kann also nicht herausfinden, welcher Keycode an mich gesendet wird. Daniel T. Magnusson vor 15 Jahren 0
ack! Es tut mir leid, ich habe Ihre Frage falsch gelesen. Diese Antwort wird nicht angezeigt, da sie möglicherweise hilfreich ist. Sie suchen jedoch nach Details zu den Keymapping-Dienstprogrammen. quack quixote vor 15 Jahren 0
1
Ben Kraft

Ich verwende dazu das folgende Bash-Skript, das ich mit verschiedenen Befehlen geschrieben habe, die aus anderen Quellen stammen. Sie fragen nur nach der "Playpause" -Funktion, aber ich dachte mir, ich könnte das Ganze genauso gut einbeziehen. Der Teil, den Sie wollen, ist:

#!/bin/bash  # Spotify Launch Script by Ben Kraft  # Borrows some commands from Spotify Control by Tommy Matilla: # http://sites.google.com/site/tommymattila/home/spotifycontrol # which itself is based on Stuart Colville's # http://muffinresearch.co.uk/archives/2009/10/22/ubuntu-lock-screen-and-pause-spotify/  # Requires wmctrl and xvkbd  WP="$HOME/.wine" SPATH="$HOME/.wine/drive_c/Program Files/Spotify/spotify.exe" TITLE=$(wmctrl -xl | grep -o -e "spotify\.exe\.Wine.*$" | grep -o -e "Spotify.*$") ACTIVEWIN=$(wmctrl -va ":ACTIVE:" 2>&1 | grep -o -e "0x.*$")  sendkeys () { wmctrl -xa "spotify.exe.Wine" || return 1 xvkbd -q -delay 100 -text "$1" wmctrl -ia $ACTIVEWIN }  if [ -z $TITLE ] ; then echo "Spotify is not running! exit 1 else sendkeys '\ ' fi exit 0 

Kurz gesagt, es wird verwendet wmctrl, um zum Arbeitsbereich zu wechseln, in dem Spotify aktiviert ist, verwendet xvkbdeinen Leertastaturbefehl an Spotify und dann wmctrlzurück.

Um es zu verwenden, speichern Sie es in einer Datei, markieren Sie die ausführbare Datei (im Dialogfeld mit den Dateiberechtigungen) und fügen Sie sie mit dem CompizConfig Settings Manager zu Befehlen hinzu. (Setzen Sie bash /path/to/scriptdas erste Kästchen auf der Registerkarte "Befehle" ein, und fügen Sie dann in der zweiten Registerkarte eine Tastenbindung hinzu. Dies kann der beliebige Schlüssel sein, den Sie verwenden möchten.) Sie benötigen wmctrlund xvkbdinstalliert sind; Suche sie im Ubuntu Software Center.

Das gesamte Skript, das einige weitere nützliche Funktionen enthält, wie zum vorherigen oder nächsten Titel zu gehen und den Titel des Songs anzuzeigen, ist unten aufgeführt. Sie verwenden es genauso wie das obige Snippet, außer dass Sie bash /path/to/script --optiondas Befehlsfeld eingeben müssen, in dem --optionalle im Skript aufgeführten Elemente stehen können.

#!/bin/bash  # Spotify Launch Script by Ben Kraft  # Borrows some commands from Spotify Control by Tommy Matilla: # http://sites.google.com/site/tommymattila/home/spotifycontrol # which itself is based on Stuart Colville's # http://muffinresearch.co.uk/archives/2009/10/22/ubuntu-lock-screen-and-pause-spotify/  # Requires wmctrl and xvkbd # Usage: USAGE=" usage: spotify [OPTIONS]  OPTIONS: --play: Starts Spotify playing if it isn't already --pause: Pauses Spotify if it isn't already --playpause: Toggles Spotify between playing and pausing --prev: Plays the previous song --next: Plays the next song --display: Prints the currently playing song and artist to stdout --notify-send: Use only *after* --display; also pops up a notification with currently playing song and artist --uri URI: tells Spotify to display URI (e.g. a playlist or user).  With no options, this script will kill a currently running instance of spotify if there is one. With --uri, it starts Spotify iff it isn't running. With any other option, it will return 1 if Spotify is not running. "  WP="$HOME/.wine" SPATH="$HOME/.wine/drive_c/Program Files/Spotify/spotify.exe" TITLE=$(wmctrl -xl | grep -o -e "spotify\.exe\.Wine.*$" | grep -o -e "Spotify.*$") ACTIVEWIN=$(wmctrl -va ":ACTIVE:" 2>&1 | grep -o -e "0x.*$")  sendkeys () { wmctrl -xa "spotify.exe.Wine" || return 1 xvkbd -q -delay 100 -text "$1" wmctrl -ia $ACTIVEWIN }  if [ $# -eq 0 ] ; then if pgrep spotify.exe &>/dev/null ; then killall spotify.exe fi exec env WINEPREFIX="$WP" wine "$SPATH" elif [ "$1" == "--uri" ] ; then shift exec env WINEPREFIX="$WP" wine "$SPATH" /uri "$@" elif [ -z "$TITLE" ] ; then echo "Spotify is not running" >&2 if [ "$@" = "--display --notify-send" ] ; then notify-send "Spotify is not running" fi exit 1 else case "$1" in --playpause) #toggles sendkeys '\ ' ;;  --next) sendkeys '\C\[Right]' ;;  --prev) sendkeys '\C\[Left]' ;;  --pause) #pauses if playing; does nothing if not if [ -n "$" ] ; then sendkeys '\ ' fi ;;  --play) #plays if paused; does nothing if not if [ -z "$" ] ; then sendkeys '\ ' fi ;;  --display) if [ -n "$" ] ; then OUT1="Now Playing" OUT2="$" else OUT1="Spotify paused." OUT2="" fi echo "$OUT" if [ "$#" -ge 2 ] && [ $2 == "--notify-send" ] ; then notify-send "$OUT1" "$OUT2" fi ;; *) echo "$USAGE" exit 2 ;; esac fi  exit 0