PhilipTrauner / cmus-osx

Adds track change notifications and media key support to cmus.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Broken on current --HEAD

atlcell opened this issue · comments

The setup script worked with the release when you use brew install cmus, however that version of cmus is broken with .aac/.m4a/.alac playback

I had to install cmus again via

I'm guessing the HEAD version isn't using ~/.config/cmus/ as its config directory. I'll try to replicate immediately but my intuition tells me that ~/.cmus/ is used instead. If that's indeed the issue please let me know so I don't have to (possibly) set up a build environment for cmus.

Just pushed a fix for what I think is the problem. Please follow up if the newest version does not fix your issue.

I'm installing the HEAD version right now, expect a patch in about 10 minutes 😄
EDIT: I also just accidentally fixed another issue 😆
EDIT 2: Installation of the HEAD version is taking longer than I had anticipated.

Everything is working fine on my end oddly enough.
Could you please clone the repo again and post the setup script output.

@PhilipTrauner Sure, are there any dotfiles or anything to make sure is deleted before I give it another shot

The new setup script now outputs the directory it is going to install cmus-osx into before going ahead and actually installing it. I think that's the only information I need + tracebacks if any Python exceptions occur.

@PhilipTrauner

after running pip3 install -r requirements.txt

Cells-MacBook-Air:cmus-osx cell$ pip3 install -r requirements.txt
Requirement already satisfied: Meh==1.1 in /usr/local/lib/python3.6/site-packages (from -r requirements.txt (line 1))
Requirement already satisfied: mutagen==1.36 in /usr/local/lib/python3.6/site-packages (from -r requirements.txt (line 2))
Requirement already satisfied: pyobjc==3.2.1 in /usr/local/lib/python3.6/site-packages (from -r requirements.txt (line 3))
Requirement already satisfied: pyobjc-framework-MapKit==3.2.1 in /usr/local/lib/python3.6/site-packages (from pyobjc==3.2.1->-r requirements.txt (line 3))
Requirement already satisfied: pyobjc-framework-ExceptionHandling==3.2.1 in /usr/local/lib/python3.6/site-packages (from pyobjc==3.2.1->-r requirements.txt (line 3))
Requirement already satisfied: pyobjc-framework-IMServicePlugIn==3.2.1 in /usr/local/lib/python3.6/site-packages (from pyobjc==3.2.1->-r requirements.txt (line 3))
Requirement already satisfied: pyobjc-framework-CoreBluetooth==3.2.1 in /usr/local/lib/python3.6/site-packages (from pyobjc==3.2.1->-r requirements.txt (line 3))
Requirement already satisfied: pyobjc-framework-Cocoa==3.2.1 in /usr/local/lib/python3.6/site-packages (from pyobjc==3.2.1->-r requirements.txt (line 3))
Requirement already satisfied: pyobjc-framework-SystemConfiguration==3.2.1 in /usr/local/lib/python3.6/site-packages (from pyobjc==3.2.1->-r requirements.txt (line 3))
Requirement already satisfied: pyobjc-framework-Social==3.2.1 in /usr/local/lib/python3.6/site-packages (from pyobjc==3.2.1->-r requirements.txt (line 3))
Requirement already satisfied: pyobjc-framework-FinderSync==3.2.1 in /usr/local/lib/python3.6/site-packages (from pyobjc==3.2.1->-r requirements.txt (line 3))
Requirement already satisfied: pyobjc-framework-AddressBook==3.2.1 in /usr/local/lib/python3.6/site-packages (from pyobjc==3.2.1->-r requirements.txt (line 3))
Requirement already satisfied: pyobjc-framework-NetworkExtension==3.2.1 in /usr/local/lib/python3.6/site-packages (from pyobjc==3.2.1->-r requirements.txt (line 3))
Requirement already satisfied: pyobjc-framework-DiskArbitration==3.2.1 in /usr/local/lib/python3.6/site-packages (from pyobjc==3.2.1->-r requirements.txt (line 3))
Requirement already satisfied: pyobjc-framework-AppleScriptKit==3.2.1 in /usr/local/lib/python3.6/site-packages (from pyobjc==3.2.1->-r requirements.txt (line 3))
Requirement already satisfied: pyobjc-framework-ContactsUI==3.2.1 in /usr/local/lib/python3.6/site-packages (from pyobjc==3.2.1->-r requirements.txt (line 3))
Requirement already satisfied: pyobjc-framework-MultipeerConnectivity==3.2.1 in /usr/local/lib/python3.6/site-packages (from pyobjc==3.2.1->-r requirements.txt (line 3))
Requirement already satisfied: pyobjc-framework-ScreenSaver==3.2.1 in /usr/local/lib/python3.6/site-packages (from pyobjc==3.2.1->-r requirements.txt (line 3))
Requirement already satisfied: pyobjc-framework-WebKit==3.2.1 in /usr/local/lib/python3.6/site-packages (from pyobjc==3.2.1->-r requirements.txt (line 3))
Requirement already satisfied: pyobjc-framework-ModelIO==3.2.1 in /usr/local/lib/python3.6/site-packages (from pyobjc==3.2.1->-r requirements.txt (line 3))
Requirement already satisfied: pyobjc-framework-PubSub==3.2.1 in /usr/local/lib/python3.6/site-packages (from pyobjc==3.2.1->-r requirements.txt (line 3))
Requirement already satisfied: pyobjc-framework-Contacts==3.2.1 in /usr/local/lib/python3.6/site-packages (from pyobjc==3.2.1->-r requirements.txt (line 3))
Requirement already satisfied: pyobjc-framework-Accounts==3.2.1 in /usr/local/lib/python3.6/site-packages (from pyobjc==3.2.1->-r requirements.txt (line 3))
Requirement already satisfied: pyobjc-framework-CryptoTokenKit==3.2.1 in /usr/local/lib/python3.6/site-packages (from pyobjc==3.2.1->-r requirements.txt (line 3))
Requirement already satisfied: pyobjc-framework-ImageCaptureCore==3.2.1 in /usr/local/lib/python3.6/site-packages (from pyobjc==3.2.1->-r requirements.txt (line 3))
Requirement already satisfied: pyobjc-framework-CoreText==3.2.1 in /usr/local/lib/python3.6/site-packages (from pyobjc==3.2.1->-r requirements.txt (line 3))
Requirement already satisfied: pyobjc-framework-LocalAuthentication==3.2.1 in /usr/local/lib/python3.6/site-packages (from pyobjc==3.2.1->-r requirements.txt (line 3))
Requirement already satisfied: pyobjc-framework-OpenDirectory==3.2.1 in /usr/local/lib/python3.6/site-packages (from pyobjc==3.2.1->-r requirements.txt (line 3))
Requirement already satisfied: pyobjc-framework-LatentSemanticMapping==3.2.1 in /usr/local/lib/python3.6/site-packages (from pyobjc==3.2.1->-r requirements.txt (line 3))
Requirement already satisfied: pyobjc-framework-SpriteKit==3.2.1 in /usr/local/lib/python3.6/site-packages (from pyobjc==3.2.1->-r requirements.txt (line 3))
Requirement already satisfied: pyobjc-framework-GameController==3.2.1 in /usr/local/lib/python3.6/site-packages (from pyobjc==3.2.1->-r requirements.txt (line 3))
Requirement already satisfied: pyobjc-framework-MediaLibrary==3.2.1 in /usr/local/lib/python3.6/site-packages (from pyobjc==3.2.1->-r requirements.txt (line 3))
Requirement already satisfied: pyobjc-framework-SafariServices==3.2.1 in /usr/local/lib/python3.6/site-packages (from pyobjc==3.2.1->-r requirements.txt (line 3))
Requirement already satisfied: pyobjc-framework-Quartz==3.2.1 in /usr/local/lib/python3.6/site-packages (from pyobjc==3.2.1->-r requirements.txt (line 3))
Requirement already satisfied: pyobjc-framework-CloudKit==3.2.1 in /usr/local/lib/python3.6/site-packages (from pyobjc==3.2.1->-r requirements.txt (line 3))
Requirement already satisfied: pyobjc-framework-CalendarStore==3.2.1 in /usr/local/lib/python3.6/site-packages (from pyobjc==3.2.1->-r requirements.txt (line 3))
Requirement already satisfied: pyobjc-framework-MediaAccessibility==3.2.1 in /usr/local/lib/python3.6/site-packages (from pyobjc==3.2.1->-r requirements.txt (line 3))
Requirement already satisfied: pyobjc-framework-ScriptingBridge==3.2.1 in /usr/local/lib/python3.6/site-packages (from pyobjc==3.2.1->-r requirements.txt (line 3))
Requirement already satisfied: pyobjc-framework-GameCenter==3.2.1 in /usr/local/lib/python3.6/site-packages (from pyobjc==3.2.1->-r requirements.txt (line 3))
Requirement already satisfied: pyobjc-framework-Automator==3.2.1 in /usr/local/lib/python3.6/site-packages (from pyobjc==3.2.1->-r requirements.txt (line 3))
Requirement already satisfied: pyobjc-framework-SearchKit==3.2.1 in /usr/local/lib/python3.6/site-packages (from pyobjc==3.2.1->-r requirements.txt (line 3))
Requirement already satisfied: pyobjc-framework-ServiceManagement==3.2.1 in /usr/local/lib/python3.6/site-packages (from pyobjc==3.2.1->-r requirements.txt (line 3))
Requirement already satisfied: pyobjc-framework-ApplicationServices==3.2.1 in /usr/local/lib/python3.6/site-packages (from pyobjc==3.2.1->-r requirements.txt (line 3))
Requirement already satisfied: pyobjc-framework-CFNetwork==3.2.1 in /usr/local/lib/python3.6/site-packages (from pyobjc==3.2.1->-r requirements.txt (line 3))
Requirement already satisfied: pyobjc-framework-CoreLocation==3.2.1 in /usr/local/lib/python3.6/site-packages (from pyobjc==3.2.1->-r requirements.txt (line 3))
Requirement already satisfied: pyobjc-framework-InstantMessage==3.2.1 in /usr/local/lib/python3.6/site-packages (from pyobjc==3.2.1->-r requirements.txt (line 3))
Requirement already satisfied: pyobjc-framework-CoreWLAN==3.2.1 in /usr/local/lib/python3.6/site-packages (from pyobjc==3.2.1->-r requirements.txt (line 3))
Requirement already satisfied: pyobjc-framework-Intents==3.2.1 in /usr/local/lib/python3.6/site-packages (from pyobjc==3.2.1->-r requirements.txt (line 3))
Requirement already satisfied: pyobjc-framework-CoreData==3.2.1 in /usr/local/lib/python3.6/site-packages (from pyobjc==3.2.1->-r requirements.txt (line 3))
Requirement already satisfied: pyobjc-framework-StoreKit==3.2.1 in /usr/local/lib/python3.6/site-packages (from pyobjc==3.2.1->-r requirements.txt (line 3))
Requirement already satisfied: pyobjc-framework-PreferencePanes==3.2.1 in /usr/local/lib/python3.6/site-packages (from pyobjc==3.2.1->-r requirements.txt (line 3))
Requirement already satisfied: pyobjc-framework-DictionaryServices==3.2.1 in /usr/local/lib/python3.6/site-packages (from pyobjc==3.2.1->-r requirements.txt (line 3))
Requirement already satisfied: pyobjc-framework-IOSurface==3.2.1 in /usr/local/lib/python3.6/site-packages (from pyobjc==3.2.1->-r requirements.txt (line 3))
Requirement already satisfied: pyobjc-framework-InstallerPlugins==3.2.1 in /usr/local/lib/python3.6/site-packages (from pyobjc==3.2.1->-r requirements.txt (line 3))
Requirement already satisfied: pyobjc-framework-Photos==3.2.1 in /usr/local/lib/python3.6/site-packages (from pyobjc==3.2.1->-r requirements.txt (line 3))
Requirement already satisfied: pyobjc-core==3.2.1 in /usr/local/lib/python3.6/site-packages (from pyobjc==3.2.1->-r requirements.txt (line 3))
Requirement already satisfied: pyobjc-framework-EventKit==3.2.1 in /usr/local/lib/python3.6/site-packages (from pyobjc==3.2.1->-r requirements.txt (line 3))
Requirement already satisfied: pyobjc-framework-FSEvents==3.2.1 in /usr/local/lib/python3.6/site-packages (from pyobjc==3.2.1->-r requirements.txt (line 3))
Requirement already satisfied: pyobjc-framework-AppleScriptObjC==3.2.1 in /usr/local/lib/python3.6/site-packages (from pyobjc==3.2.1->-r requirements.txt (line 3))
Requirement already satisfied: pyobjc-framework-MediaPlayer==3.2.1 in /usr/local/lib/python3.6/site-packages (from pyobjc==3.2.1->-r requirements.txt (line 3))
Requirement already satisfied: pyobjc-framework-NetFS==3.2.1 in /usr/local/lib/python3.6/site-packages (from pyobjc==3.2.1->-r requirements.txt (line 3))
Requirement already satisfied: pyobjc-framework-NotificationCenter==3.2.1 in /usr/local/lib/python3.6/site-packages (from pyobjc==3.2.1->-r requirements.txt (line 3))
Requirement already satisfied: pyobjc-framework-PhotosUI==3.2.1 in /usr/local/lib/python3.6/site-packages (from pyobjc==3.2.1->-r requirements.txt (line 3))
Requirement already satisfied: pyobjc-framework-SceneKit==3.2.1 in /usr/local/lib/python3.6/site-packages (from pyobjc==3.2.1->-r requirements.txt (line 3))
Requirement already satisfied: pyobjc-framework-SyncServices==3.2.1 in /usr/local/lib/python3.6/site-packages (from pyobjc==3.2.1->-r requirements.txt (line 3))
Requirement already satisfied: pyobjc-framework-Collaboration==3.2.1 in /usr/local/lib/python3.6/site-packages (from pyobjc==3.2.1->-r requirements.txt (line 3))
Requirement already satisfied: pyobjc-framework-LaunchServices==3.2.1 in /usr/local/lib/python3.6/site-packages (from pyobjc==3.2.1->-r requirements.txt (line 3))
Requirement already satisfied: pyobjc-framework-AVKit==3.2.1 in /usr/local/lib/python3.6/site-packages (from pyobjc==3.2.1->-r requirements.txt (line 3))
Requirement already satisfied: pyobjc-framework-QTKit==3.2.1 in /usr/local/lib/python3.6/site-packages (from pyobjc==3.2.1->-r requirements.txt (line 3))
Requirement already satisfied: pyobjc-framework-InputMethodKit==3.2.1 in /usr/local/lib/python3.6/site-packages (from pyobjc==3.2.1->-r requirements.txt (line 3))
Requirement already satisfied: pyobjc-framework-AVFoundation==3.2.1 in /usr/local/lib/python3.6/site-packages (from pyobjc==3.2.1->-r requirements.txt (line 3))
Cells-MacBook-Air:cmus-osx cell$

Then after running ./setup.py install

cmus config directory: '/Users/cell/.config/cmus/'
Traceback (most recent call last):
File "./setup.py", line 83, in
if argv[1] in COMMANDS:
IndexError: list index out of range

cmus-osx is located in ~/.config/cmus

I think I've spotted the problem:
You are running ./setup.py instead of ./setup.py install.
I've added a warning if no action is specified.

@PhilipTrauner good job baby, you're a Rockstar - it works!

Following you on here, and will contact you in the future regarding cmus-x or cmus-tunes, a set of scripts and programs that use cmus to replace iTunes

cmus-x / cmus-tunes has the following goals

  • became default system music player
  • light cocoa application that uses the cmus lib.pl file to render album art and the likes
  • drivers to sync the iOS library using cmus

Thank You once again Philip, you're a hero

one more note @PhilipTrauner

cmus let's you use a wrapper script to invoke multiple scripts via :set status_display_program

I can't get mine working for multiple scripts, setting it to the script file specific will work, and I know it's because I'm not writing up the file correctly. Could you please help?

I'm trying to do what the example here says https://github.com/cmus/cmus/wiki/status-display-programs


#!/bin/sh
program1 "$@" &
program2 "$@" &

but I have no idea what the synxtax is or whatever

trying to invoke your python script along with a bash album art viewer

:set status_display_program=/Users/cell/.config/cmus/cmus-cover-art/observe.sh
:set status_display_program=/Users/cell/.config/cmus/scripts.sh

Thanks

@PhilipTrauner

Setup also does not automatically set :set status_display_program=/Users/cell/.config/cmus/cmus-osx/notify.py (edit: corrected file ending to avoid possible confusion in the future)

I had to do that manaully

This is coming together tho

I'm not automatically setting status_display_programbecause most cmus users instead use a script to invoke multiple status programs (just like you mentioned).

Mine looks like this:

#!/bin/sh

/usr/local/bin/cmusfm "$@" &
/Users/philip/.config/cmus/cmus-osx/notify.py "$@" &

It's located in ~/.config/cmus/status_display_program.sh. To use it in cmus I therefor have to execute :set status_display_program=/Users/philip/.config/cmus/status_display_program.sh

Regarding your cmus project:
Sounds great! Currently mainly a Spotify user but I'd gladly migrate back to cmus if I could sync my iPhone with it.

@PhilipTrauner works flawlessly

thank you for your time sir

No problem 😉
I'll close this issue now, if any more problems come up don't hesitate to open another issue (please don't open issues for general cmus questions, send me a mail instead)