I'd like you to develop an alternative to Wingpanel for Linux Desktop running X window.
That's basically a panel which sits at the top of Linux desktop screen, shows date and some icons.
It will be written in C or C++ or whatever, which can be compiled in Linux using Makefile. No java, no python, no such things, please.
See attached pictures to get an idea how it should look like.
Features:
- it must not depend on any libraries. If you essentially need it to depend on something, like GTK+3, we can discuss that, but I prefer if it's absolutely standalone without any dependencies. It will of course depend on Xorg libs and header files, no problem in that. However the panel should work even if only pure Xorg is installed in the system.
- configurable in a text config file, no GUI for config at the moment
- automatically adjusts its size based on its length
- always stays at the top of the screen/desktop
- dragging the panel by user can move it left & right, but not up/down
- possibility to configure it to stay on top above any other windows
- possibility to configure it to auto hide, and auto-show when mouse touches the top screen edge
- the application will not be square, so you'll probably need to resolve transparency
- if the panel is hiding, there will be animation (slide up). Similarly showing will slide down.
Shows:
text, icons
It will be your task to also design the configuration file format, so it allows custom look, for example some users will need three textual informations there (like CPU usage, date, free RAM), while some other users will want to see icons first and date at the end, etc.
Now how the panel is populated by text and icons. This is the tricky part.
The user will be able to configure the panel in configuration file. This file will be of variable size, thus some users may configure it just to show date, some other users will need icons, lots of other text, and so on.
All elements in the panel are a result of running bash commands mentioned in the configuration file. For example, if the first element should display current date/time, the user will simply configure that the output of "date" linux command will be printed there. If an icon is to be
It should be also possible to configure how often the command gets re-executed to refresh the status. It may be an integer in seconds (for example the date/time area will need to be updated only once per minute), or it can be configured as "hover", here the item will be updated every time user hovers mouse over it, or it can be set to "click", where the item will be updated on click.
Clicking any of the element will run a command configured by the user. Thus, if user specifies that "calendar" application is started when he clicks on the date, it will simply do that. So you need to keep this in mind in designing the config file format.
It needs to be also possible to "ping" the panel somehow (either using socket or pipe or something), so other applications can communicate that the panel needs updating (refresh).
Icons will be 16x16px.
Examples:
- date will be displayed by "date" linux command, and will need to refresh once per minute
- icon for sound volume will be diplayed accordingly to output of "sndvol" script, which simply prints full path to the icon file as output, nothing else.
There can be one configuration file for pannel settings, and another configuration file for items.
Proposed configuration file for panel:
[general]
autohide=false
Proposed configuration file for items:
[date_section]
command=date +"%m-%d-%y"
update=60
onclick=/sbin/calendar
[sound_volume_section]
command=sndvol -v
update=hover
onclick=/sbin/alsamixer
The panel should listen on a socket or pipe or something, and if it receives command "update", it updates all elements. If it receives command "update sound_volume_section", it updates only that part [sound_volume_section]
Example design is attached.
License: your software will be released under GNU GPL license.
Hi there, I have over 7 years experience working on Asterisk PBX, HTML, Wordpress, Magento, Database administration, Website Design, Logo / Banner Design Joomla, CSS, Bulk Email Marketing and Linux Administration. I have read the project description very well, and i would like to complete this project. Let’s complete this project.
Ready, sir !Ready, sir !Ready, sir !Ready, sir !Ready, sir !Ready, sir !Ready, sir !Ready, sir !Ready, sir !Ready, sir !Ready, sir !Ready, sir !Ready, sir !
Hi Thanks for reading my application. Linux is on my line. I am familiar with Fedora, RHEL, Ubuntu, CentOS, etc.
Please touch base with me anytime. I will prefer GTK/GTK++.
What kind of distribution do you recommend.?
All the best.