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

各种窗口管理器和美化相关
头像
ljj_jjl2008
论坛版主
帖子: 14255
注册时间: 2007-09-16 8:29

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

#16

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

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

现在都clutter cairo了。时代进步了。以后还wayland了。
是不复杂,c源代码加起来不超过100行,而且很多行是同样的命令。可是,我不会c语言开发呀!

越进步越复杂的东西依赖越多、通用性越低。这个东西的特点就是通用行强、依赖少。至少我现在intel集成显卡,27套wm下,这个东西都能正常使用。别的行么?即使创意过时,我还在用,并且体会到了他的好用。"好(hao2)吃"不如“好(hao4)吃”.
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

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

#17

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

:em02 好吧。适合你的,就是好的。
● 鸣学
头像
qy117121
论坛版主
帖子: 50587
注册时间: 2007-12-14 13:40
系统: Winbuntu
来自: 志虚国乌由市
联系:

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

#20

帖子 qy117121 » 2012-02-12 9:51

:em06
渠月 · QY   
本人只会灌水,不负责回答问题
无聊可以点一下→ http://u.nu/ubuntu

邮箱 [email protected]
tusooa
帖子: 6548
注册时间: 2008-10-31 22:12
系统: 践兔
联系:

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

#22

帖子 tusooa » 2012-02-13 20:48

吾突然发现,你这源码,放到bin里去了。。。
:em06

代码: 全选

] ls -ld //
头像
ljj_jjl2008
论坛版主
帖子: 14255
注册时间: 2007-09-16 8:29

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

#23

帖子 ljj_jjl2008 » 2012-02-13 21:15

tusooa 写了:吾突然发现,你这源码,放到bin里去了。。。
:em06
哈哈,知识整理的,说不定要算盗版的。
因为有一个文件,我直接找到的二进制文件,没有源码。
xep007
帖子: 871
注册时间: 2006-01-03 20:44

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

#24

帖子 xep007 » 2012-02-13 22:32

好像不能自动更新吧。
头像
ljj_jjl2008
论坛版主
帖子: 14255
注册时间: 2007-09-16 8:29

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

#25

帖子 ljj_jjl2008 » 2012-03-15 13:23

版本更新说明----2012.03.15最新版
1,允许在2级icon中包含独立按钮了,可以减少鼠标点击。
2,配置文件增加了一个参数,用于设置是否:点击3级icon或者独立icon时,自动关闭2级icon和3级icon。
3,调整了basic脚本,修改和增加了脚本调用的程序,文件结构有所改动。
头像
ljj_jjl2008
论坛版主
帖子: 14255
注册时间: 2007-09-16 8:29

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

#26

帖子 ljj_jjl2008 » 2012-03-15 16:09

发现一个小bug:

代码: 全选

# 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会自动隐藏到屏幕最左边,鼠标移动到隐藏位置才出现,但一出现就跳到鼠标以外指定的位置,然后接着又隐藏了。所以会来回闪烁,造成鼠标不能点击。
头像
ljj_jjl2008
论坛版主
帖子: 14255
注册时间: 2007-09-16 8:29

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

#27

帖子 ljj_jjl2008 » 2012-03-16 8:12

2012.03.16改动:如果最后面那个参数(2级icon自动显示/隐藏)设置为1,则鼠标移动到主icon时,二级icon自动出现。右键点击2级icon,或者点击3级icon(或独立icon)打开程序时,2级icon自动隐藏。
那个参数设置为0时,则鼠标移动到主icon时,二级icon不会自动出现,需要左键点击使之出现,再点击则隐藏。点击3级icon(或独立icon)打开程序时,2级icon也不会自动隐藏。
头像
ljj_jjl2008
论坛版主
帖子: 14255
注册时间: 2007-09-16 8:29

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

#28

帖子 ljj_jjl2008 » 2012-04-03 10:50

此楼层的包有bug,已经在29楼修正,本楼层仅用于保留软件更新记录,请不要下载。
2012.04.03重大改动:舍弃了basic脚本,用shell重新写了脚本。
启动方式:
下载附件,解压,复制到:~/.iconmenu,然后:

代码: 全选

cd ~/.iconmenu/bin
./menue.sh INIT $HOME
此楼层的包有bug,已经在29楼修正,本楼层仅用于保留软件更新记录,请不要下载。
附件
iconmenu(不包含字体,shell脚本版本).tar.gz
(98.56 KiB) 已下载 144 次
头像
ljj_jjl2008
论坛版主
帖子: 14255
注册时间: 2007-09-16 8:29

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

#29

帖子 ljj_jjl2008 » 2012-04-05 11:15

(注意:上面楼层的基于basic的版本,和基于shell的版本,将停止更新,以后的更新,会以这个版本为基础)
1,软件来源:
2,界面
3,特色
4,配置方法
5,缺陷

1,软件来源:
我的这个Wharf是参照puppy iconmenu开发的,引用了很多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内安装使用,效果一般,而且中文乱码。
然后发现他有源程序,C语言配合Basic开发的,我把basic语言的部分用c重写,添加了若干功能,经过多次改版,形成了现在的样子。
2,界面:
图片见顶楼。
界面的说明:
这个Wharf由3部分组成:主icon(一个方形图标)、2级icon(竖直排列的方形图标)、3级icon(水平排列)
主icon:软件启动起来以后显示的只有主icon,鼠标(点击/划过)他可以显示/收起竖直的那一列icon,右键点击则重新调入配置文件。
2级icon:(点击/划过)后可以展开对应的 3级icon,或者直接打开对应程序(由配置文件决定)
3级icon:点击可以打开具体的程序。
3,特色:
(1),可以设置icon的大小
(2),可以人为设定包括主icon在内的所有icon(由配置文件决定)
(3),可以重新调入配置文件(右键点击主icon)
(4),可以自定义背景图片(通过覆盖图片文件)
(5),只依赖一个imlib2,可以独立运行于任何WM和DE环境。
(6),可以在2级icon中直接放进去独立icon。
(7),主icon有3种隐藏方式:不隐藏、贴左边全隐藏、贴左边半隐藏(由配置文件决定)
(8),2级icon也有3种隐藏方式:不隐藏、贴左边全隐藏、贴左边半隐藏(由配置文件决定)
(9),可以鼠标划过即打开2级icon、3级icon,也可通过点击来打开(由配置文件决定)
(10),主icon旁边显示一个小数字时钟。通过配置文件决定是否显示。(showclock:1)-----2012.04.07
(11),指向主icon,会出现一个提示窗口,显示现在的系统信息(cpu、内存、进程状况),离开后消失。----2012.04.07
4,配置方法:
(1)主要文件和目录结构:(28楼的包,/bin目录里面的文件有变化。详细的情况请看28楼)

代码: 全选

~/.iconmenu #(必须放到~/.iconmenu目录,否则会出错)
├── bin
│   ├── iconmenu #(这是主程序,启动方式: cd ~/.iconmenu/bin && ./iconmenu INIT $HOME)
│   ├── iconmenu.c
│   ├── iconrun1
│   ├── iconrun1.c
│   ├── iconrun2
│   ├── iconrun2.c
│   ├── iconrun3
│   ├── iconrun3.c
│   └── Vera.ttf
├── iconcache
│   └── ...
├── icons
│   ├── background.jpg
│   └── ...
├── menu.rc #(这是配置文件,请根据你的情况修改)
└── pics
    └──  background.jpg
配置文件menu.rc的内容:

代码: 全选

#---------------------------------------------------------------------------------------------------
# Base-configuration:
#
# baseconfig:x y sizeOfMainIcons GapBetweenMainIcons sizeOfSubmenueIcons GapBetweenSubIcons  Lowered/Raised(0/1)  MainIconHidesAutomatically(0/1/2) SubIconHidesAutomatically(0/1/2) MouseMoveOpenSubIcon(0/1/2)
#
baseconfig:0 160 64 0 64 0 1 2 2 2
#这一行是全局参数,从左到右分别是:x  y  主icon/2级icon大小   主icon/2级icon间隔   3级icon大小  3级icon间隔 是否长局顶端(0/1)    主icon隐藏方式(0/1/2)    2级icon隐藏方式(0/1/2)   打开2级icon/3级icon的方式(0/1/2)
# 主icon隐藏方式(0/1/2):0,不隐藏  1,贴左边完全隐藏  2,贴左边半隐藏
# 2级icon隐藏方式(0/1/2):0,不隐藏  1,贴左边完全隐藏  2,贴左边半隐藏
# 打开2级icon/3级icon的方式(0/1/2):0,鼠标单击打开,再单击收起   1,鼠标划过打开,打开程序收起2级icon/右键收起2级icon  2,第一次鼠标划过主icon打开2级icon,打开程序不收起2级icon,右键不收起2级icon
#千万注意:主icon隐藏方式(0/1/2)和 2级icon隐藏方式(0/1/2)不是 0 时,X(第一个参数)需要设置成较小的数字,否则图标乱跳动

showclock:1
#这一行指示是否在主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"
##single后面是独立2级icon的:图标文件 命令行 文字描述,用“空格”分割,可以用“英文双引号”扩起来

group2# /usr/share/icons/oxygen/48x48/places/folder-favorites.png "文件浏览/位置"
##group后面是2级icon的:图标文件 文字描述,用“空格”分割,可以用“英文双引号”扩起来

/usr/share/icons/oxygen/48x48/places/user-home.png "dolphin ~/" "个人目录"
/usr/share/icons/oxygen/48x48/places/folder-blue.png "dolphin /" "/ 根目录"
##以上是3级icon的:图标文件 命令行 文字描述,用“空格”分割,可以用“英文双引号”扩起来

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

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

下载,解压到~/.iconmenu,
然后修改menu.rc务必要配置这个文件,否则可能无法启动
替换icons目录 background.jpg文件(可选)
拷贝一个中文字体到:~/.iconmenu/bin/,改名为Vera.ttf(否则不能显示提示文本
最后执行以下指令:

代码: 全选

cd ~/.iconmenu/bin/
./iconmenu INIT $HOME
5,缺陷
(1),不能嵌入wmaker dockapp;这是我下一步开发的目标。
(2),打开2级icon/3级icon的方式(0/1/2)选择1和2时,如果鼠标移动速度太快,显示的图标会错乱,可能上一行3级icon没有消失,本行的已经显示出来了,也可能一行图标显示不全,中间缺几个。移动的慢点就没事了。



6,如何编译软件
我已经编译成二进制包了。大家如果想自己编译,则:
请安装编译工具包,和imlib2-dev,然后:

代码: 全选

cd ~/.iconmenu/bin/
g++ -o ./iconrun1 ./iconrun1.c  -lImlib2 -lX11
g++ -o ./iconrun2 ./iconrun2.c  -lImlib2 -lX11
g++ -o ./iconrun3 ./iconrun3.c  -lImlib2 -lX11
g++ -o ./iconmenu ./iconmenu.c  -lImlib2 -lX11
编译时有一些警告,不用理他。

7,下一步开发目标
(1),设法在2级icon中实现切换窗口。
(2),设法在某个icon中,实现显示系统托盘。

这是2012.04.07版本的截图,显示时钟、贴左边,半隐藏,自动打开下级菜单,鼠标已经指向主icon,显示了系统信息。
抓图203.png
附件
iconmenu(c语言,无字体).tar.gz
2012.04.07版本
(99.17 KiB) 已下载 145 次
头像
daf3707
论坛版主
帖子: 12739
注册时间: 2007-06-13 15:57
来自: 在他乡

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

#30

帖子 daf3707 » 2012-04-05 11:24

:em04
任何桌面……win也可以 :em05
回复