我发掘整理的一个Wharf(图标化的启动菜单),依赖很少,可以独立运行于任何桌面。---2012.04.05最后更新

讨论openbox,awesome,FVWM等WM
头像
ljj_jjl2008
论坛版主
帖子: 14253
注册时间: 2007-09-16 8:29
送出感谢: 94 次
接收感谢: 230 次

我发掘整理的一个Wharf(图标化的启动菜单),依赖很少,可以独立运行于任何桌面。---2012.04.05最后更新

#1

帖子 ljj_jjl2008 » 2011-09-05 8:11

(首先感谢10楼的兄弟做了DEB包)
有重大改动-----2012.03.16----deb包没有对应改动,请不要再使用deb包
有重大改动-----2012.04.03----deb包没有对应改动,请不要再使用deb包,新的包在28楼。这次改动,使用bash的shell脚本取代了原来的basic脚本(此包有bug,不要下载,只是为了保留历史记录)
有重大改动-----2012.04.05----deb包没有对应改动,请不要再使用deb包,新的包在29楼请到29楼阅读相关信息
特别注意:此wharf已经停止开发,已经转成一个新的软件
新软件:viewtopic.php?f=24&t=370538
已经发现本楼层的软件有bug,29楼有更新,请到29楼下载----2012.04.07
1,软件来源:
2,界面
3,特色
4,配置方法
5,缺陷

1,软件来源:
我的这个Wharf是从puppy iconmenu改造过来的。
wharf是afterstep应用程式的停靠站,以驻列的icon来表示即将想要执行的程式,按滑鼠的左键来启动应用程式,按滑鼠的右鍵可以将整排驻列收成一个icon。按键列上的每一个button也可以是一个folder,也就是说,当你点选这个button之後,实际上是内含了一排button可以点选,就有如抽屉一般。
Fvwm也有fvwmwharf,这个和afterstep的wharf一样的,正因为有这个,fvwm模拟afterstep就非常的容易。
可是这两个Wharf都是不能独立运行的,需要先启动起来afterstep及Fvwm,不能在其他Window manager里面运行。
另外,wmaker也有wharf,是通过dockapp实现的,常用的是wmdrawerrc,有兴趣的可以尝试一下,不过他通用行也不强,主要也是在Fvwm、Afterstep、wmaker里面用。
我曾经尝试使用这几种WM,感觉虽然不是十分喜欢他们的WM,但是较喜欢这种Wharf,希望他能够在其他Window manager里面运行。一开始的思路是找到afterstep及Fvwm的源程序,看看能不能把Wharf部分单独“抠”出来,做一个独立的包,研究以后发现凭我的能力,基本做不到。
unity的侧边栏,也是类似wharf的风格,只是它没有folder,而且还能用来切换已经打开的程序。
正在我要灰心时,我找到了下面的网址:
http://www.murga-linux.com/puppy/viewtopic.php?t=4407
,据说在puppy环境下仿照afterstep的wharf开发的,不过它是2005年发布的,基于puppy的。
他需要imlib2和PuppyBasic,我下载了他的安装包,在puppy内安装使用,效果一般,因为他为了配合puppy,使用的的是22x22的图片和图标,太小,很难看,而且中文乱码。
然后发现他有源程序,C语言配合Basic开发的,我研究了一上午源代码,居然勉强看懂他的原理了。他依赖puppy的只是一个PuppyBasic,一个Basic语言解释器。然后我把他这个Basic语言解释器从puppy内复制出来,放到了puppy iconmenu的目录里面。然后回到ubuntu安装了imlib2:
(2012.04.03重大改动,舍弃Basic,改用bash的shell重写,已经不再需要basic的解释器了)

代码: 全选

sudo apt-get install libimlib2
C语言的源码我不会改,我就把Basic源码改了,把运行所需要引用的文件和他们放到了一起,简化了Basic语句(原来是自动生成wharf配置文件,现在没有puppy环境,肯定生成不了,所以我把这个功能去掉了),手工修改了配置文件,替换成64x64的图标,居然完美的运行起来了,然后我复制了一个中文字体代替他软件包里面的字体,把乱码问题也解决了。

2,界面:
如下图左边:
抓图44.png

最新的截图:
图片


wharf未展开时的样子(左上,那个笑脸)
图片
界面的说明:
这个Wharf由3部分组成,截图中显示的是全部展开的样子。
最顶上的那一个icon是第一部分,软件启动起来以后显示的只有这一个icon,鼠标点击他可以显示/收起竖直的那一列icon,右键点击则重新调入配置文件。
竖直的一列icon是第二部分,点击后可以展开对应的水平的一列icon。
水平的icon是第三部分,点击水平的icon可以打开具体的程序。
3,特色:
(1),可以设置icon的大小
(2),可以人为设定包括主icon在内的所有icon
(3),可以自动收起下级icon,可以自动隐藏主icon
(4),可以重新调入配置文件(右键点击主icon)
(5),可以自定义背景图片
(6),只依赖一个imlib2,可以独立运行。
-------------以下是2012.03.16改版新加的功能
(7),可以在2级icon中直接放进去独立icon。
(8),可以设置:鼠标划过主icon就自动显示2级icon,点击3级icon则自动隐藏2级icon(也可以设置成 通过点击主icon来显示/收起2级icon,此时点击3级icon不会收起2级icon)


4,配置方法:
(1)主要文件和目录结构:(28楼的包,/bin目录里面的文件有变化。详细的情况请看28楼)

代码: 全选

├── bin
│   ├── iconrun1
│   ├── iconrun1.c
│   ├── iconrun2
│   ├── iconrun2.c
│   ├── iconrun2a  
│   ├── iconrun2a.c
│   ├── iconrun2b
│   ├── iconrun2b.c
│   ├── iconrun2c
│   ├── iconrun2c.c
│   ├── iconrun2d
│   ├── iconrun2d.c
│   ├── menue.wxb
│   ├── puppybasic -> wxbasicscript
│   ├── puppybasic2 -> wxbasicscript
│   ├── start.sh
│   ├── Vera.ttf
│   ├── wxbasicconsole -> puppybasic
│   ├── basefunctions.inc
│   └── wxbasicscript
├── iconcache
│   ├── amusement.png
│   ├── configuration.png
│   ├── graphics.png
│   ├── home.png
│   ├── music.png
│   ├── network.png
│   ├── terminal.png
│   ├── utility.png
│   └── word-processor.png
├── icons
│   ├── background1.jpg
│   ├── background3.jpg
│   ├── background-.jpg
│   ├── background.jpg
│   ├── images.jpg
│   └── imenu.jpg
├── menu.rc
└── pics
    └──  background.jpg -> ../icons/background.jpg
说明:
bin文件夹下面是可执行文件(及其源程序)。
│   ├── iconrun1(主icon)
│   ├── iconrun1.c(主icon源程序)
│   ├── iconrun2(二级icon)
│   ├── iconrun2.c(二级icon源程序)
│   ├── iconrun2a(三级icon的a --2012..03.15添加)
│   ├── iconrun2a.c(三级icon的a的源程序--2012..03.15添加)
│   ├── iconrun2b(三级icon的b)
│   ├── iconrun2b.c(三级icon的b的源程序)
│   ├── iconrun2c(三级icon的c --2012..03.15添加)
│   ├── iconrun2c.c(三级icon的c的源程序--2012..03.15添加)
│   ├── iconrun2a(三级icon的d --2012..03.15添加)
│   ├── iconrun2a.c(三级icon的d的源程序--2012..03.15添加)
│   ├── menue.wxb(我改动后的Basic语句)
│   ├── start.sh(启动脚本 命令格式:先cd到bin目录,然后 “./start.sh START”)
│   ├── Vera.ttf(字体,下面的软件包没有包含这个文件,请自己找一个中文字体,改成这个名字放进去
│   ├── puppybasic -> wxbasicscript(下面这几个文件都是basic的解释器,因为源程序中调用的原因,建立了多个,其实都是连接到了wxbasicscript这一个文件。)
│   ├── puppybasic2 -> wxbasicscript
│   ├── wxbasicconsole -> puppybasic
│   ├── basefunctions.inc
│   └── wxbasicscript
├── iconcache(放置图标用的目录,可以自己找喜欢的图标放进去。)
├── icons(放置背景图片的目录)
│   ├── background.jpg(背景图片,必须是jpg格式,可以用自己喜欢图片的替换,注意大小一致就行)
├── menu.rc(最主要的配置文件

配置文件menu.rc的内容:
(这里注意:
如果SubIconHidesAutomatically,即“其他icon自动隐藏”选0,则需要手动点击主icon来展开/收回2级icon。
如果选1,则点击独立icon和3级icon时自动收回2级icon。
选1时,左键点击主icon反而不能收回2级icon,右击2级icon才能收回2级icon。)

代码: 全选

#---------------------------------------------------------------------------------------------------
# Base-configuration:
#
# baseconfig:x y sizeOfMainIcons GapBetweenMainIcons sizeOfSubmenueIcons GapBetweenSubIcons  Lowered/Raised MainIconHidesAutomatically SubIconHidesAutomatically
# x y 主icon大小 二级icon间隔 其他icon大小 三级icon间隔 样式 主icon自动隐藏 其他icon自动隐藏
baseconfig:0 100 64 0 64 0 1 1 1

##参数的最后三个,推荐 (1 1 1)和(1 0 0),倒数第二个参数选(0)时,建议最左边的参数也选(0),即自动隐藏主icon时,要保证主icon贴屏幕左边。

#------------------------------------------------------------------
# Mainbutton
group0# /usr/share/icons/oxygen/48x48/emotes/face-smile.png
###group0#是主icon
single1# /usr/share/icons/hicolor/48x48/apps/chromium-browser.png  "chromium-browser" "chromium-browser"
### singleX# 是参杂在二级icon中的独立icon,点击直接打开程序。
group2# /usr/share/icons/oxygen/48x48/places/folder-favorites.png "文件浏览/位置"
### groupX# 是一组按钮,点击展开3级icon

###下面是横向的独立按钮: 图标文件 命令 描述
/usr/share/icons/oxygen/48x48/places/user-home.png "dolphin ~/" "个人目录"
/usr/share/icons/oxygen/48x48/places/folder-blue.png "dolphin /" "/ 根目录"
/usr/share/icons/oxygen/48x48/places/user-desktop.png "dolphin ~/Desktop/" "桌面"
/usr/share/icons/oxygen/48x48/places/folder-downloads.png "dolphin ~/下载/" "下载目录"
/usr/share/icons/oxygen/48x48/places/folder-documents.png "dolphin /dos/重要文件/" "文档目录"
/usr/share/icons/oxygen/48x48/places/folder-orange.png "kdesudo dolphin /" "root 权限打开"
group3# /usr/share/icons/oxygen/48x48/places/network-workgroup.png "互联网"
/usr/share/icons/hicolor/48x48/apps/chromium-browser.png  "chromium-browser" "chromium-browser"

(2)配置方法:修改menu.rc、 替换icons目录 background.jpg文件即可
(3)程序启动:

注意:下面这个包里面缺少中文字体,需要自己复制一个字体到bin子目录并改名为: Vera.ttf(因为字体文件太大,打包进来就无法上传了)

下载,解压,
然后修改menu.rc(为了控制压缩文件体积,我把图片删除了又打包的,这个包里面的menu.rc也不能对应你计算机里面的图片文件,所以务必要配置这个文件,否则无法启动
替换icons目录 background.jpg文件(可选)
拷贝一个中文字体到:/<解压目录>/bin/,改名为Vera.ttf(否则不能显示提示文本
最后执行以下指令:

代码: 全选

cd /<解压目录>/bin
./start.sh START
5,缺陷
(1),不能嵌入wmaker dockapp;
(2),必须是3级icon结构-----2012.03.15改进,现在可以在2级icon中包含独立按钮了。

(3),发现一个小bug:----2012.03.15

代码: 全选

# baseconfig:x y sizeOfMainIcons GapBetweenMainIcons sizeOfSubmenueIcons GapBetweenSubIcons  Lowered/Raised MainIconHidesAutomatically SubIconHidesAutomatically
# x y 主icon大小 二级icon间隔 其他icon大小 三级icon间隔 样式 主icon自动隐藏 其他icon自动隐藏
baseconfig:0 100 64 0 64 0 1 1 1
以上参数中,“主icon自动隐藏”如果设置为“1”,而“x坐标”非0时,鼠标无法点击到主icon,原因是主icon会自动隐藏到屏幕最左边,鼠标移动到隐藏位置才出现,但一出现就跳到鼠标以外指定的位置,然后接着又隐藏了。所以会来回闪烁,造成鼠标不能点击。

2012.03.16改动:如果最后面那个参数(2级icon自动显示/隐藏)设置为1,则鼠标移动到主icon时,二级icon自动出现。右键点击2级icon,或者点击3级icon(或独立icon)打开程序时,2级icon自动隐藏。
那个参数设置为0时,则鼠标移动到主icon时,二级icon不会自动出现,需要左键点击使之出现,再点击则隐藏。点击3级icon(或独立icon)打开程序时,2级icon也不会自动隐藏。
附件
iconmenu(不包含字体).tar.gz
(334.95 KiB) 下载 67 次
这些用户感谢了作者 ljj_jjl2008 于这个帖子:
careone (2011-10-06 18:07)
评价: 3.7%
头像
ljj_jjl2008
论坛版主
帖子: 14253
注册时间: 2007-09-16 8:29
送出感谢: 94 次
接收感谢: 230 次

Re: 我发掘整理的一个Wharf(图标化的启动菜单),依赖很少,可以独立运行的。

#2

帖子 ljj_jjl2008 » 2011-09-05 9:12

下面的内容是如何独立启动wmaker dockapp的:
viewtopic.php?f=168&t=343665&p=2469017#p2469017
两方面配合,基本实现了afterstep的wharf的全部功能。
这些用户感谢了作者 ljj_jjl2008 于这个帖子:
careone (2012-05-12 13:31)
评价: 3.7%
levee
帖子: 3030
注册时间: 2009-10-03 23:31
送出感谢: 0
接收感谢: 13 次

Re: 我发掘整理的一个Wharf(图标化的启动菜单),依赖很少,可以独立运行的。

#3

帖子 levee » 2011-09-05 11:00

Window maker和Afterstep最初都是为了模仿Nextstep而出现的,现在两者差别已经比较大了。
头像
ljj_jjl2008
论坛版主
帖子: 14253
注册时间: 2007-09-16 8:29
送出感谢: 94 次
接收感谢: 230 次

Re: 我发掘整理的一个Wharf(图标化的启动菜单),依赖很少,可以独立运行的。

#4

帖子 ljj_jjl2008 » 2011-09-05 14:57

一不小心就犯错呀,初始的包里面少包含了一个文件,幸亏自己忽然想试试,下载下来实验了一下,发现了,改正了。
已经改正了,保证可以正常使用了。
头像
phoenixlzx
论坛版主
帖子: 2245
注册时间: 2009-07-29 20:11
系统: Arch Linux
来自: Gensokyo
送出感谢: 4 次
接收感谢: 17 次
联系:

Re: 我发掘整理的一个Wharf(图标化的启动菜单),依赖很少,可以独立运行的。

#5

帖子 phoenixlzx » 2011-09-05 19:37

看起来挺不错的
头像
ljj_jjl2008
论坛版主
帖子: 14253
注册时间: 2007-09-16 8:29
送出感谢: 94 次
接收感谢: 230 次

Re: 我发掘整理的一个Wharf(图标化的启动菜单),依赖很少,可以独立运行的。

#6

帖子 ljj_jjl2008 » 2011-09-10 10:15

抓图60.png
这是改变背景后的效果:
抓图61.png
这是背景图片:
background.jpg
background.jpg (1.77 KiB) 查看 8361 次
├── icons(放置背景图片的目录)
│ ├── background.jpg(背景图片,必须是jpg格式,可以用自己喜欢图片的替换,注意大小一致就行)
头像
ljj_jjl2008
论坛版主
帖子: 14253
注册时间: 2007-09-16 8:29
送出感谢: 94 次
接收感谢: 230 次

Re: 我发掘整理的一个Wharf(图标化的启动菜单),依赖很少,可以独立运行的。

#7

帖子 ljj_jjl2008 » 2011-09-10 11:24

新做的大理石效果的背景:
抓图62.png
抓图63.png
这是背景图片:
background.jpg
background.jpg (4.32 KiB) 查看 8358 次
头像
ljj_jjl2008
论坛版主
帖子: 14253
注册时间: 2007-09-16 8:29
送出感谢: 94 次
接收感谢: 230 次

Re: 我发掘整理的一个Wharf(图标化的启动菜单),依赖很少,可以独立运行的。

#8

帖子 ljj_jjl2008 » 2011-09-16 16:30

闲着没事,又做了几个底纹:
background.jpg
background.jpg (2.5 KiB) 查看 8257 次
background4.jpg
background4.jpg (956 Bytes) 查看 8257 次
background5.jpg
background5.jpg (2.89 KiB) 查看 8257 次
background6.jpg
background6.jpg (2.38 KiB) 查看 8257 次
是一种木纹,3种金属。
头像
YeLee
论坛版主
帖子: 26386
注册时间: 2008-08-13 8:48
系统: Fundu i64
来自: 东海硇州,一双管钥。
送出感谢: 25 次
接收感谢: 307 次
联系:

Re: 我发掘整理的一个Wharf(图标化的启动菜单),依赖很少,可以独立运行的。

#9

帖子 YeLee » 2011-09-16 18:50

ljj_jjl2008 写了:闲着没事,又做了几个底纹:
background.jpg
background4.jpg
background5.jpg
background6.jpg
是一种木纹,3种金属。
第一张图片 :em70 :em70 :em70 :em70 :em70 :em70 :em70
◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关
头像
careone
帖子: 804
注册时间: 2007-12-17 21:41
送出感谢: 71 次
接收感谢: 24 次

Re: 我发掘整理的一个Wharf(图标化的启动菜单),依赖很少,可以独立运行的。

#10

帖子 careone » 2011-10-06 23:45

兄弟辛苦了!

我把你的程序和代码整理了一下,做了个软件 enjoytime , 放在这里:
方便自己,也方便新手和游戏爱好者。
viewtopic.php?f=88&t=347692&p=2501855#p2501855
魁拔不死,天下不宁。
魁拔既死,天下不平。
--------------
Careone <emacslocale^126.com>
https://sourceforge.net/projects/emacslocale/files/
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

Re: 我发掘整理的一个Wharf(图标化的启动菜单),依赖很少,可以独立运行的。

#11

帖子 eexpress » 2011-10-07 11:01

稍微熟悉点gtk。这样的软件随便写。何必折腾过时的。
这些软件,以前都试过。特殊wm才用。
● 鸣学
头像
ljj_jjl2008
论坛版主
帖子: 14253
注册时间: 2007-09-16 8:29
送出感谢: 94 次
接收感谢: 230 次

Re: 我发掘整理的一个Wharf(图标化的启动菜单),依赖很少,可以独立运行的。

#12

帖子 ljj_jjl2008 » 2011-10-07 11:27

eexpress 写了:稍微熟悉点gtk。这样的软件随便写。何必折腾过时的。
这些软件,以前都试过。特殊wm才用。
说的好听,你写个看看!!
头像
daf3707
论坛版主
帖子: 12668
注册时间: 2007-06-13 15:57
来自: 在他乡
送出感谢: 49 次
接收感谢: 85 次

Re: 我发掘整理的一个Wharf(图标化的启动菜单),依赖很少,可以独立运行的。

#13

帖子 daf3707 » 2011-10-07 11:43

jpg?连个PNG都不支持啊,透明多好 :em09
头像
ljj_jjl2008
论坛版主
帖子: 14253
注册时间: 2007-09-16 8:29
送出感谢: 94 次
接收感谢: 230 次

Re: 我发掘整理的一个Wharf(图标化的启动菜单),依赖很少,可以独立运行的。

#14

帖子 ljj_jjl2008 » 2011-10-07 12:06

daf3707 写了:jpg?连个PNG都不支持啊,透明多好 :em09
只是底纹必须是jpg,程序图标支持png。底纹不能透明,图标可以透明。图标放到底纹图片的中央,产生“按钮”样效果。
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

Re: 我发掘整理的一个Wharf(图标化的启动菜单),依赖很少,可以独立运行的。

#15

帖子 eexpress » 2011-10-07 12:08

真的简单的。
这软件创意,在以前还可以,现在不行了。没劲搞。

现在都clutter cairo了。时代进步了。以后还wayland了。
● 鸣学
回复

回到 “窗口管理器”