【问题标题】:Lubuntu Terminal Python Desktop ShortcutLubuntu 终端 Python 桌面快捷方式
【发布时间】:2016-07-18 14:48:28
【问题描述】:

所以我试图为我用 python 制作的终端 mp3player 创建一个桌面快捷方式。我正在使用 Lubuntu。

我的程序是这样的

#!/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()

你需要 pygame 来测试它,我建议在你的音乐文件夹中执行它,因为它会递归搜索当前目录中的 mp3 文件,并在完成后播放列表。 但是,这是我的 .desktop 文件。

[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

当我双击它时,它只打开一个终端而不执行脚本。 我究竟做错了什么? oO

提前致谢。

编辑:

文件是可执行的,我执行了

 sudo update-desktop-database

收到警告

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")

【问题讨论】:

  • 您是否尝试过在命令行上运行“Exec”条目?换句话说:您确定您的脚本实际上是可执行的吗?并且当您尝试运行它时(在将其变成启动器之前)会发生正确的事情?!只是为了确定:您在对启动器进行更改后确实运行了“sudo update-desktop-database”;确保在更改后触发启动器之前反映任何更新?
  • 是的,它可以从命令行执行。如果我在终端中键入 ./mp3playa,它就会执行。我尝试了“sudo update-desktop-database”并在文件“/usr/share/applications/gnumeric.desktop”中收到警告:不鼓励使用 MIME 类型“zz-application/zz-winassoc-xls”(“zz- application/zz-winassoc-xls" 应替换为 "application/vnd.ms-excel")。是否因为我的 .desktop 文件而出现此警告? ://
  • 好吧,指向 gnumeric.desktop 文件的警告非常清楚;所以这很可能与您的脚本无关。

标签: python linux ubuntu terminal desktop-shortcut


【解决方案1】:

终于找到了我缺少的东西。

必须首先使用脚本作为命令参数启动 lxterminal。

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

【讨论】:

  • 因为这实际上是一个python脚本;你也可以试试“Exec=python /bla/script”。
  • 我也试过了,但似乎 Lubuntu 的 lxterminal 明确地希望以这种方式执行命令。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-03-14
  • 1970-01-01
  • 2020-07-26
  • 2022-10-19
  • 1970-01-01
  • 1970-01-01
  • 2018-11-16
相关资源
最近更新 更多