Search code examples
pythonlinuxubuntuterminalshortcut-file

Lubuntu Terminal Python Desktop Shortcut


So im trying to create a desktop shortcut for a terminal mp3player i made in python. I'm using Lubuntu.

My program looks like this

#!/usr/bin/python
# -*- coding: utf-8 -*-
from __future__ import print_function
import os
import sys
import random
from sys import stdout

from pygame import mixer # Load the required library


class mp3Player(object):
    def __init__(self):
        self.mix = mixer
        self.mix.init()

    def play(self, filelist):
        for root, mp3file in filelist:
            try:
                stdout.write(root + '\n')
                stdout.write("Playing %s\n"%mp3file)

                self.mix.music.load(os.path.join(root, mp3file))
                self.mix.music.play()

                while self.mix.music.get_busy():
                    choice = raw_input("[skip, exit, pause, shuffle]\n")
                    if choice == "skip":
                        break
                    elif choice == "pause":
                        self.mix.music.pause()
                        raw_input("Press enter to continiue.")
                        self.mix.music.unpause()
                    elif choice == "shuffle":
                        random.shuffle(filelist)
                        break
                    elif choice == "exit":
                        raise KeyboardInterrupt
                    else:
                        pass

            except KeyboardInterrupt, e:
                self.mix.music.stop()
                print("User Interrupted")
                sys.exit(0)

            stdout.flush()

class mp3Files(object):
    def __init__(self):
        self.mp3player = mp3Player()
        self.filelist = []

    def search(self):
        for root, dirs, files in os.walk(os.getcwd()):
            for mp3file in files:
                if mp3file.endswith(".mp3"):
                    self.filelist.append((root, mp3file))

        self.mp3player.play(self.filelist)

def main():
    mp3 = mp3Files()
    mp3.search()

if __name__ == "__main__":
    main()

You will need pygame in order to test it and i would recommend to execute it in your music folder because it searches the current directory recursivly for mp3 files and when it's done it plays the list. However, this is my .desktop file.

[Desktop Entry]
Version=1.0
Name=mp3playa
Comment=Terminal mp3player
Exec=/media/jan/Volume/Musik/mp3playa
TryExec=/media/jan/Volume/Musik/mp3playa
Terminal=true
Categories=Application
Type=Application
GenericName=Simple terminal mp3player

When i double click it, it only opens a terminal without executing the script. What am i doing wrong? oO

Thanks in advance.

Edit:

The file is executable and i executed

 sudo update-desktop-database

and got a warning

Warning in file "/usr/share/applications/gnumeric.desktop": usage of
MIME type "zz-application/zz-winassoc-xls" is discouraged ("zz-
application/zz-winassoc-xls" should be replaced with 
"application/vnd.ms-excel")

Solution

  • Finally found what i was missing.

    Had to start the lxterminal first with the script as command argument.

    Exec=lxterminal --command="/home/jan/Schreibtisch/mp3playa/mp3playa"