本篇主要讲通过makefile方式来安装rhythmbox插件的相关知识。


makefile


如果makefile是什么,请自行谷歌

参考了pandasunny同学的rhythmbox-baidu-music,如有冒犯请指出

  1. SCHEMAS_DIR=$(DESTDIR)/usr/share/glib-2.0/schemas
  2. PLUGIN_DIR=$(DESTDIR)/usr/lib/rhythmbox/plugins/xiami
  3. PLUGIN_DATA_DIR=$(DESTDIR)/usr/share/rhythmbox/plugins/xiami
  4. PLUGIN_USER_DIR=$(HOME)/.local/share/rhythmbox/plugins/xiami
  5. PLUGIN_LOCALE_DIR=$(DESTDIR)/usr/share/locale
  6.  
  7. clear:
  8. rm -f *.py[co] */*.py[co]
  9. install: install-po schemas
  10. mkdir -p $(PLUGIN_DIR)
  11. mkdir -p $(PLUGIN_DATA_DIR)
  12. cp -r *.py baidu-music.plugin $(PLUGIN_DIR)
  13. cp -r *.ui popup-ui.xml images $(PLUGIN_DATA_DIR)
  14. install-local: install-po schemas
  15. mkdir -p $(PLUGIN_USER_DIR)
  16. cp -r *.py *.ui popup-ui.xml xiami.plugin images $(PLUGIN_USER_DIR)
  17. uninstall:
  18. rm -rf $(PLUGIN_DIR)
  19. rm -rf $(PLUGIN_DATA_DIR)
  20. rm -rf $(PLUGIN_USER_DIR)
  21. rm -f $(SCHEMAS_DIR)/org.gnome.rhythmbox.plugins.xiami.gschema.xml
  22. glib-compile-schemas $(SCHEMAS_DIR)
  23. for i in ./po/*.po; do \
  24. lang=`basename $$i .po`; \
  25. rm -f $(PLUGIN_LOCALE_DIR)/$$lang/LC_MESSAGES/rhythmbox-xiami.mo; \
  26. done
  27. install-po:
  28. for i in ./po/*.po; do \
  29. lang=`basename $$i .po`; \
  30. msgfmt -c ./po/$$lang.po -o ./po/$$lang.mo; \
  31. mkdir -p $(PLUGIN_LOCALE_DIR)/$$lang/LC_MESSAGES; \
  32. mv ./po/$$lang.mo $(PLUGIN_LOCALE_DIR)/$$lang/LC_MESSAGES/rhythmbox-xiami.mo; \
  33. done
  34. rm -f ./po/*.mo
  35. schemas:
  36. if [ ! -d $(SCHEMAS_DIR) ]; then \
  37. mkdir -p $(SCHEMAS_DIR); \
  38. fi
  39. cp org.gnome.rhythmbox.plugins.xiami.gschema.xml $(SCHEMAS_DIR)
  40. glib-compile-schemas $(SCHEMAS_DIR)

schema


由于编写插件的过程中需要处理一些设定文件,所以用到了

  1. self.setting = Gio.Settings("org.gnome.rhythmbox.plugins.xiami")

Gio.Settings 实际上是封装了GTK 3的GSettings。它将需要的设定存到后缀名为gschema.xml的schema文件中。

下面给出schema文件的例子

  1. <schemalist>
  2. <schema id="org.gnome.rhythmbox.plugins.xiami" path="/org/gnome/rhythmbox/plugins/xiami/">
  3. <key name="username" type="s">
  4. <default>''</default>
  5. <summary>Username</summary>
  6. <description>The username of xiami account.</description>
  7. </key>
  8. <key name="password" type="s">
  9. <default>''</default>
  10. <summary>Password</summary>
  11. <description>The password of xiami account.</description>
  12. </key>
  13. <key name="lyric-path" type="s">
  14. <default>'~/.lyrics/'</default>
  15. <summary>Lyric dir</summary>
  16. <description>The dir of lyrics</description>
  17. </key>
  18. <child name="source" schema="org.gnome.rhythmbox.source"/>
  19. </schema>
  20. </schemalist>

要想能在GSettings中能使用这个文件,还需要两步(如MakeFIle的39行和40行所示):

1将这个文件拷贝到文件夹/usr/share/glib-2.0/schemas/下

2用glib-compile-schemas编译这个文件夹。

参考了下面两篇文章:

http://www.micahcarrick.com/gsettings-python-gnome-3.html

http://lazka.github.io/pgi-docs/Gio-2.0/classes/Settings.html


po

对mo,po的解释这篇文章讲的很好,就不赘述了。MakeFile的27-34行描述了对mo,po文件的具体操作。


下一篇将详细介绍通过插件自定义rhythmbox界面的具体方法。

rhythmbox插件开发笔记3:安装 makefile && schema && po的更多相关文章

  1. rhythmbox插件开发笔记1:简介&入门

    rhythmbox是gnome下一款开源的音乐播放软件.ubuntu和fedora的桌面环境中均默认安装了rhythmbox. rhythmbox架构非常灵活,几乎所有地方都可以用插件来修改.用户想实 ...

  2. rhythmbox插件开发笔记2:背景知识学习 D-Bus&VFS&Gio& Python GTK+ 3

    这次主要简单介绍下相关的背景知识 D-Bus&VFS&Gio& Python GTK+ 3  D-Bus D-Bus是开源的进程通信(IPC)系统,它允许多个进程进行实时通信. ...

  3. CentOS学习笔记--Tomcat安装

    Tomcat安装 通常情况下我们要配置Tomcat是很容易的一件事情,但是如果您要架设多用户多服务的Java虚拟主机就不那么容易了.其中最大的一个问题就是Tomcat执行权限.普通方式配置的Tomca ...

  4. (转)ZooKeeper 笔记(1) 安装部署及hello world

    ZooKeeper 笔记(1) 安装部署及hello world   先给一堆学习文档,方便以后查看 官网文档地址大全: OverView(概述) http://zookeeper.apache.or ...

  5. LNMP笔记:安装 Xcache 缓存扩展,降低服务器负载

    LNMP笔记:安装 Xcache 缓存扩展,降低服务器负载 2014/11/27 教程笔记 4,743 14     WordPress 精品主机推荐:恒创主机 | 阿里云(本站目前所用云主机) 倡萌 ...

  6. OracleDesigner学习笔记1――安装篇

    OracleDesigner学习笔记1――安装篇   QQ:King MSN:qiutianwh@msn.com Email:qqking@gmail.com 一.       前言 Oracle是当 ...

  7. 笔记-docker-2安装(centos6.5环境)

    笔记-docker-2安装(centos6.5环境) 1.      centos6.5安装docker 1.1.    升级内核 安装docker,官方文档要求linux kernel至少3.8以上 ...

  8. 笔记-redis安装

    笔记-redis安装配置 1.      redis安装配置 1.1.    windows环境安装 win8已有redis 查看版本:redis-server –version 想更新到5.0.0, ...

  9. Docker笔记--ubuntu安装docker

    Docker笔记--ubuntu安装docker 1.更换国内软件源,推荐中国科技大学的源,稳定速度快(可选) sudo cp /etc/apt/sources.list /etc/apt/sourc ...

随机推荐

  1. map中根据value获取key

    public static String getKeyByValue(Map map, Object value) { String keys=""; Iterator it =  ...

  2. 黑科技抢先尝(续) - Windows terminal中WSL Linux 终端的极简美化指南

    目录 修改默认源,为apt-get安装提速 安装python 和 python pip 安装 zsh 安装powerline-font中的特定字体 安装powerline-shell 修改~目录下的配 ...

  3. 洛谷 - P2324 - 骑士精神 - A*搜索

    为什么估价是16,因为最后一步复原空格可以恢复两个位置,当然设成17.18都可以. #include<bits/stdc++.h> using namespace std; typedef ...

  4. TensorFlow中设置学习率的方式

    目录 1. 指数衰减 2. 分段常数衰减 3. 自然指数衰减 4. 多项式衰减 5. 倒数衰减 6. 余弦衰减 6.1 标准余弦衰减 6.2 重启余弦衰减 6.3 线性余弦噪声 6.4 噪声余弦衰减 ...

  5. codeforces358D Dima and Hares【dp】

    从本质入手,这个东西影响取值的就是相邻两个哪个先取 设f[i][0/1]为前i个(i-1,i)中先取i/i-1的值(这里不算上i的贡献 转移就显然了,注意要先复制-inf #include<io ...

  6. 洛谷P1447 [NOI2010]能量采集(容斥)

    传送门 很明显题目要求的东西可以写成$\sum_{i=1}^{n}\sum_{j=1}^m gcd(i,j)*2-1$(一点都不明显) 如果直接枚举肯定爆炸 那么我们设$f[i]$表示存在公因数$i$ ...

  7. GHOST操作

    通过详细的图文说明,怎么用ghost备份系统,以备系统中毒或者感觉不好用时,快速恢复到备份时的状态! 工具/原料 2013最新雨林木风ghostxpxp3系统或者老毛桃等工具 方法/步骤 1 重新启动 ...

  8. 《SQL 进阶教程》 case:练习题1-1-1 多列数据的最大值

    select name, case when case when x > y then x else y end < z then z else case when x < y th ...

  9. CC34:判断直线相交

    题目 解法 水题,判断斜率.判断截距,ok..... class CrossLine { public: bool checkCrossLine(double s1, double s2, doubl ...

  10. JSPs only permit GET POST or HEAD的解决方案(REST风格)

    问题:原文链接 https://blog.csdn.net/tiberroot/article/details/76615727 看到很多人解决办法使用 @ResponseBody注解 这个意思是按照 ...