rhythmbox插件开发笔记3:安装 makefile && schema && po
本篇主要讲通过makefile方式来安装rhythmbox插件的相关知识。
makefile
如果makefile是什么,请自行谷歌
参考了pandasunny同学的rhythmbox-baidu-music,如有冒犯请指出
- SCHEMAS_DIR=$(DESTDIR)/usr/share/glib-2.0/schemas
- PLUGIN_DIR=$(DESTDIR)/usr/lib/rhythmbox/plugins/xiami
- PLUGIN_DATA_DIR=$(DESTDIR)/usr/share/rhythmbox/plugins/xiami
- PLUGIN_USER_DIR=$(HOME)/.local/share/rhythmbox/plugins/xiami
- PLUGIN_LOCALE_DIR=$(DESTDIR)/usr/share/locale
- clear:
- rm -f *.py[co] */*.py[co]
- install: install-po schemas
- mkdir -p $(PLUGIN_DIR)
- mkdir -p $(PLUGIN_DATA_DIR)
- cp -r *.py baidu-music.plugin $(PLUGIN_DIR)
- cp -r *.ui popup-ui.xml images $(PLUGIN_DATA_DIR)
- install-local: install-po schemas
- mkdir -p $(PLUGIN_USER_DIR)
- cp -r *.py *.ui popup-ui.xml xiami.plugin images $(PLUGIN_USER_DIR)
- uninstall:
- rm -rf $(PLUGIN_DIR)
- rm -rf $(PLUGIN_DATA_DIR)
- rm -rf $(PLUGIN_USER_DIR)
- rm -f $(SCHEMAS_DIR)/org.gnome.rhythmbox.plugins.xiami.gschema.xml
- glib-compile-schemas $(SCHEMAS_DIR)
- for i in ./po/*.po; do \
- lang=`basename $$i .po`; \
- rm -f $(PLUGIN_LOCALE_DIR)/$$lang/LC_MESSAGES/rhythmbox-xiami.mo; \
- done
- install-po:
- for i in ./po/*.po; do \
- lang=`basename $$i .po`; \
- msgfmt -c ./po/$$lang.po -o ./po/$$lang.mo; \
- mkdir -p $(PLUGIN_LOCALE_DIR)/$$lang/LC_MESSAGES; \
- mv ./po/$$lang.mo $(PLUGIN_LOCALE_DIR)/$$lang/LC_MESSAGES/rhythmbox-xiami.mo; \
- done
- rm -f ./po/*.mo
- schemas:
- if [ ! -d $(SCHEMAS_DIR) ]; then \
- mkdir -p $(SCHEMAS_DIR); \
- fi
- cp org.gnome.rhythmbox.plugins.xiami.gschema.xml $(SCHEMAS_DIR)
- glib-compile-schemas $(SCHEMAS_DIR)
schema
由于编写插件的过程中需要处理一些设定文件,所以用到了
- self.setting = Gio.Settings("org.gnome.rhythmbox.plugins.xiami")
Gio.Settings 实际上是封装了GTK 3的GSettings。它将需要的设定存到后缀名为gschema.xml的schema文件中。
下面给出schema文件的例子
- <schemalist>
- <schema id="org.gnome.rhythmbox.plugins.xiami" path="/org/gnome/rhythmbox/plugins/xiami/">
- <key name="username" type="s">
- <default>''</default>
- <summary>Username</summary>
- <description>The username of xiami account.</description>
- </key>
- <key name="password" type="s">
- <default>''</default>
- <summary>Password</summary>
- <description>The password of xiami account.</description>
- </key>
- <key name="lyric-path" type="s">
- <default>'~/.lyrics/'</default>
- <summary>Lyric dir</summary>
- <description>The dir of lyrics</description>
- </key>
- <child name="source" schema="org.gnome.rhythmbox.source"/>
- </schema>
- </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的更多相关文章
- rhythmbox插件开发笔记1:简介&入门
rhythmbox是gnome下一款开源的音乐播放软件.ubuntu和fedora的桌面环境中均默认安装了rhythmbox. rhythmbox架构非常灵活,几乎所有地方都可以用插件来修改.用户想实 ...
- rhythmbox插件开发笔记2:背景知识学习 D-Bus&VFS&Gio& Python GTK+ 3
这次主要简单介绍下相关的背景知识 D-Bus&VFS&Gio& Python GTK+ 3 D-Bus D-Bus是开源的进程通信(IPC)系统,它允许多个进程进行实时通信. ...
- CentOS学习笔记--Tomcat安装
Tomcat安装 通常情况下我们要配置Tomcat是很容易的一件事情,但是如果您要架设多用户多服务的Java虚拟主机就不那么容易了.其中最大的一个问题就是Tomcat执行权限.普通方式配置的Tomca ...
- (转)ZooKeeper 笔记(1) 安装部署及hello world
ZooKeeper 笔记(1) 安装部署及hello world 先给一堆学习文档,方便以后查看 官网文档地址大全: OverView(概述) http://zookeeper.apache.or ...
- LNMP笔记:安装 Xcache 缓存扩展,降低服务器负载
LNMP笔记:安装 Xcache 缓存扩展,降低服务器负载 2014/11/27 教程笔记 4,743 14 WordPress 精品主机推荐:恒创主机 | 阿里云(本站目前所用云主机) 倡萌 ...
- OracleDesigner学习笔记1――安装篇
OracleDesigner学习笔记1――安装篇 QQ:King MSN:qiutianwh@msn.com Email:qqking@gmail.com 一. 前言 Oracle是当 ...
- 笔记-docker-2安装(centos6.5环境)
笔记-docker-2安装(centos6.5环境) 1. centos6.5安装docker 1.1. 升级内核 安装docker,官方文档要求linux kernel至少3.8以上 ...
- 笔记-redis安装
笔记-redis安装配置 1. redis安装配置 1.1. windows环境安装 win8已有redis 查看版本:redis-server –version 想更新到5.0.0, ...
- Docker笔记--ubuntu安装docker
Docker笔记--ubuntu安装docker 1.更换国内软件源,推荐中国科技大学的源,稳定速度快(可选) sudo cp /etc/apt/sources.list /etc/apt/sourc ...
随机推荐
- map中根据value获取key
public static String getKeyByValue(Map map, Object value) { String keys=""; Iterator it = ...
- 黑科技抢先尝(续) - Windows terminal中WSL Linux 终端的极简美化指南
目录 修改默认源,为apt-get安装提速 安装python 和 python pip 安装 zsh 安装powerline-font中的特定字体 安装powerline-shell 修改~目录下的配 ...
- 洛谷 - P2324 - 骑士精神 - A*搜索
为什么估价是16,因为最后一步复原空格可以恢复两个位置,当然设成17.18都可以. #include<bits/stdc++.h> using namespace std; typedef ...
- TensorFlow中设置学习率的方式
目录 1. 指数衰减 2. 分段常数衰减 3. 自然指数衰减 4. 多项式衰减 5. 倒数衰减 6. 余弦衰减 6.1 标准余弦衰减 6.2 重启余弦衰减 6.3 线性余弦噪声 6.4 噪声余弦衰减 ...
- codeforces358D Dima and Hares【dp】
从本质入手,这个东西影响取值的就是相邻两个哪个先取 设f[i][0/1]为前i个(i-1,i)中先取i/i-1的值(这里不算上i的贡献 转移就显然了,注意要先复制-inf #include<io ...
- 洛谷P1447 [NOI2010]能量采集(容斥)
传送门 很明显题目要求的东西可以写成$\sum_{i=1}^{n}\sum_{j=1}^m gcd(i,j)*2-1$(一点都不明显) 如果直接枚举肯定爆炸 那么我们设$f[i]$表示存在公因数$i$ ...
- GHOST操作
通过详细的图文说明,怎么用ghost备份系统,以备系统中毒或者感觉不好用时,快速恢复到备份时的状态! 工具/原料 2013最新雨林木风ghostxpxp3系统或者老毛桃等工具 方法/步骤 1 重新启动 ...
- 《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 ...
- CC34:判断直线相交
题目 解法 水题,判断斜率.判断截距,ok..... class CrossLine { public: bool checkCrossLine(double s1, double s2, doubl ...
- JSPs only permit GET POST or HEAD的解决方案(REST风格)
问题:原文链接 https://blog.csdn.net/tiberroot/article/details/76615727 看到很多人解决办法使用 @ResponseBody注解 这个意思是按照 ...