Import of Debian version
This commit is contained in:
commit
1463ad60ca
28 changed files with 2244 additions and 0 deletions
340
COPYING
Normal file
340
COPYING
Normal file
|
@ -0,0 +1,340 @@
|
|||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Library General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) year name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Library General
|
||||
Public License instead of this License.
|
13
CREDITS
Normal file
13
CREDITS
Normal file
|
@ -0,0 +1,13 @@
|
|||
* Main Author:
|
||||
Peter Gnodde <peter@gnodde.org>
|
||||
|
||||
* Bug and patches reports:
|
||||
Jean Delvare (http://www.ensicaen.ismra.fr/~delvare/)
|
||||
Riccardo Stagni <unriccio@email.it>
|
||||
|
||||
* Manual page
|
||||
Lars Steinke <lss@debian.org>
|
||||
|
||||
Based largely on work on WMMemLoad and WMMemMon and WMCPULoad done by:
|
||||
Mark Staggs <me@markstaggs.net> (WMMemLoad)
|
||||
Seiichi SATO <ssato@sh.rim.or.jp> (The other two)
|
42
ChangeLog
Normal file
42
ChangeLog
Normal file
|
@ -0,0 +1,42 @@
|
|||
0.0.6 (2008-04-28)
|
||||
* Riccardo Stagni <unriccio@email.it> (the current Debian maintainer of this
|
||||
package) submitted a patch fixing some syntactic stuff in the -h output
|
||||
|
||||
0.0.5 (2005-06-23)
|
||||
* Found out Debian (http://www.debian.org/) has a package and the maintainer
|
||||
has added a manual page, which I've shamelessly copied. Only the part
|
||||
explaining this package had no manual page is removed, since it's no longer
|
||||
true :). Thanks to Lars Steinke <lss@debian.org> for maintaining the Debian
|
||||
package.
|
||||
|
||||
0.0.4 (2004-03-12)
|
||||
* Fixed a small bug in the Makefile, probably caused by an older version of
|
||||
sed, which caused gcc to complain about extra characters after an #include
|
||||
when compiling the xpms. Again thanks to Jean Delvare for pointing this out.
|
||||
|
||||
0.0.3 (2004-03-10)
|
||||
* Modified the background_off.xpm image a bit, so it would be more consistent
|
||||
with WMCPULoad and WMMemLoad (more shadow at the borders)
|
||||
* Added a flag to show temperatures in Fahrenheit
|
||||
* Added a flag to show temperatures in Kelvin
|
||||
* Modified the digit code so it could show values greater than 100
|
||||
* Modified the build system, so XPMs are build seperately instead of included
|
||||
in the main.c file
|
||||
* Stripped all long arguments, they are quite useless and take more effort to
|
||||
type
|
||||
* Do not wait <interval> seconds before the first update, just update, then
|
||||
enter the main loop.
|
||||
* Removed the optimization options for Pentium 4, not everybody has a Pentium
|
||||
4 to play with :). Also made de CFLAGS a bit more conservative.
|
||||
* Some textual changes in the help output, thanks to Jean Delvare
|
||||
(http://www.ensicaen.ismra.fr/~delvare/) for pointing that out.
|
||||
|
||||
0.0.2 (2004-03-08)
|
||||
* Added a couple of options, so CPU and SYS features could be swapped or
|
||||
entirely customized
|
||||
* Added README, COPYING and AUTHORS files and made the package
|
||||
|
||||
0.0.1 (2004-03-08)
|
||||
* Stripped WMMemLoad to the bones and replaced the memory statistics code
|
||||
with temperature statistics code, obtained from libsensors (a part of
|
||||
the lm_sensors package
|
48
Makefile
Normal file
48
Makefile
Normal file
|
@ -0,0 +1,48 @@
|
|||
#CC=gcc
|
||||
#LD=gcc
|
||||
SED=sed
|
||||
STRIP=strip
|
||||
|
||||
PREFIX?=/usr/local
|
||||
DEST=$(PREFIX)/bin
|
||||
MAN=$(PREFIX)/share/man/man1
|
||||
|
||||
CFLAGS?=-Wall -Werror -O2
|
||||
LDFLAGS?=
|
||||
INCLUDE=-I/usr/include/sensors -I/usr/local/include/sensors
|
||||
LIBS=-L/usr/X11R6/lib -L/usr/local/lib -lX11 -lXext -lXpm -lsensors
|
||||
|
||||
XPM=xpm/celcius_on.o xpm/celcius_off.o xpm/fahrenheit_on.o \
|
||||
xpm/fahrenheit_off.o xpm/kelvin_on.o xpm/kelvin_off.o xpm/parts.o
|
||||
OBJS=main.o dockapp.o temp.o $(XPM)
|
||||
|
||||
TARGET=wmtemp
|
||||
MANPAGE=wmtemp.1x
|
||||
|
||||
all: $(TARGET)
|
||||
|
||||
%.c: %.xpm
|
||||
echo "#include \"xpm.h\"" >$@
|
||||
$(SED) -e "s/^static //" <$< >>$@
|
||||
|
||||
.c.o:
|
||||
$(CC) $(CFLAGS) $(INCLUDE) -c -o $@ $<
|
||||
|
||||
$(TARGET): $(OBJS)
|
||||
$(CC) $(LDFLAGS) -o $@ $(OBJS) $(LIBS)
|
||||
|
||||
clean:
|
||||
rm -f *.o xpm/*.o xpm/*.c core $(TARGET)
|
||||
|
||||
install:
|
||||
cp $(TARGET) $(DEST)/$(TARGET)
|
||||
# $(STRIP) $(DEST)/$(TARGET)
|
||||
chmod 755 $(DEST)/$(TARGET)
|
||||
# cp $(MANPAGE) $(MAN)/$(MANPAGE)
|
||||
# gzip -9 $(MAN)/$(MANPAGE)
|
||||
# chmod 644 $(MAN)/$(MANPAGE)
|
||||
|
||||
main.o: dockapp.h temp.h xpm/xpm.h
|
||||
dockapp.o: dockapp.h
|
||||
temp.o: temp.h
|
||||
xpm/xpm.h: $(XPM)
|
28
README
Normal file
28
README
Normal file
|
@ -0,0 +1,28 @@
|
|||
Make sure lm_sensors is installed, it will not work without it.
|
||||
|
||||
You might want to take a look at the Makefile to change an include path or
|
||||
library path.
|
||||
|
||||
* Install with the following commands:
|
||||
|
||||
make
|
||||
su
|
||||
make install
|
||||
|
||||
|
||||
The default install path is /usr/local/bin, if you do not want this, use
|
||||
|
||||
make DEST=/to/another/path install
|
||||
|
||||
to install wmtemp to /to/an/other/path.
|
||||
|
||||
To install the manual page to another location (default is
|
||||
/usr/local/share/man/man1), use:
|
||||
|
||||
make MAN=/to/another/path install
|
||||
|
||||
Or combine the above :).
|
||||
|
||||
* Check out `wmtemp --help` for options.
|
||||
|
||||
* See the file COPYING for license information
|
112
debian/changelog
vendored
Normal file
112
debian/changelog
vendored
Normal file
|
@ -0,0 +1,112 @@
|
|||
wmtemp (0.0.6-3.3) unstable; urgency=low
|
||||
|
||||
* Non-maintainer upload.
|
||||
* Fix "FTBFS: dockapp.c:52:16: error: variable 'stat' set but not used
|
||||
[-Werror=unused-but-set-variable]": apply patch from peter green, removing
|
||||
two unused variables. (Closes: #646488)
|
||||
|
||||
-- gregor herrmann <gregoa@debian.org> Tue, 22 Nov 2011 20:45:17 +0100
|
||||
|
||||
wmtemp (0.0.6-3.2) unstable; urgency=low
|
||||
|
||||
* Non-maintainer upload to fix the previous upload.
|
||||
* Don't try to open /etc/sensors.conf, use the default path instead
|
||||
unless a configurationf file is specified.
|
||||
|
||||
-- Aurelien Jarno <aurel32@debian.org> Sat, 09 Apr 2011 16:10:42 +0200
|
||||
|
||||
wmtemp (0.0.6-3.1) unstable; urgency=low
|
||||
|
||||
* Non-maintainer upload.
|
||||
* Switch to libsensors4 api, thanks to Hugo Vanwoerkom for the patch.
|
||||
(Closes: #610816).
|
||||
|
||||
-- Aurelien Jarno <aurel32@debian.org> Sat, 12 Mar 2011 22:13:32 +0100
|
||||
|
||||
wmtemp (0.0.6-3) unstable; urgency=low
|
||||
|
||||
* Fix "backlight color change incomplete" changing the xpm files
|
||||
(Closes: #523890)
|
||||
* Now we use the automagical dh
|
||||
* Bumped Standards-Version to 3.8.3, no changes needed.
|
||||
* Lintian fixes: copyright-with-old-dh-make-debian-copyright
|
||||
|
||||
-- Riccardo Stagni <unriccio@email.it> Thu, 12 Nov 2009 21:42:55 +0100
|
||||
|
||||
wmtemp (0.0.6-2) unstable; urgency=low
|
||||
|
||||
* Bumped Standards-Version to 3.8.0, changed debian/rules to support the
|
||||
standard values of DEB_BUILD_OPTIONS:
|
||||
added support to parallel builds (even if we compile just 3 C source
|
||||
files) and removed the nostrip check (because we rely on dh_strip)
|
||||
* debian/control: lowered package priority (we depend on lm-sensors
|
||||
which is extra).
|
||||
* Removed useless xutils dependency
|
||||
(this also fixes lintian's build-depends-on-obsolete-package)
|
||||
* Added dependency on x11proto-xext-dev as we use some of its headers.
|
||||
|
||||
-- Riccardo Stagni <unriccio@email.it> Fri, 20 Jun 2008 02:34:07 +0200
|
||||
|
||||
wmtemp (0.0.6-1) unstable; urgency=low
|
||||
|
||||
* New upstream release
|
||||
- corrected some cosmetic issues within -h output (closes: #474107)
|
||||
* Removed the check from debian/rules for Makefile existance in the "clean"
|
||||
target: since we don't use autoconf, a missing makefile *should* be a
|
||||
problem anywhere.
|
||||
* Updated debian/copyright
|
||||
|
||||
-- Riccardo Stagni <unriccio@email.it> Mon, 28 Apr 2008 19:57:33 +0200
|
||||
|
||||
wmtemp (0.0.5-5) unstable; urgency=low
|
||||
|
||||
* New maintainer (closes: #465958)
|
||||
* Added Homepage field (from package description)
|
||||
* Update menu file
|
||||
* Standards-Version bumped to 3.7.3 (changed menu section)
|
||||
* lintian:
|
||||
- debian-rules-ignores-make-clean-error (even if we don't use autoconf)
|
||||
- copyright-without-copyright-notice (rewritten debian/copyright)
|
||||
- build-depends-on-1-revision
|
||||
* Disable forced stripping (closes: #438277)
|
||||
* Added watchfile
|
||||
|
||||
-- Riccardo Stagni <unriccio@email.it> Thu, 27 Mar 2008 01:22:25 +0100
|
||||
|
||||
wmtemp (0.0.5-4) unstable; urgency=low
|
||||
|
||||
* Fixed Build-Depends for xlibs-dev transition using
|
||||
xlibs-split-check and objdump (closes #346882).
|
||||
|
||||
-- Lars Steinke <lss@debian.org> Sat, 14 Jan 2006 14:22:10 +0100
|
||||
|
||||
wmtemp (0.0.5-3) unstable; urgency=low
|
||||
|
||||
* Fixed lintian warning concerning format of menu entry.
|
||||
|
||||
-- Lars Steinke <lss@debian.org> Sat, 14 Jan 2006 14:10:52 +0100
|
||||
|
||||
wmtemp (0.0.5-2) unstable; urgency=low
|
||||
|
||||
* Forgot calling dh_installmenu.
|
||||
|
||||
-- Lars Steinke <lss@debian.org> Sun, 18 Dec 2005 17:57:35 +0100
|
||||
|
||||
wmtemp (0.0.5-1) unstable; urgency=low
|
||||
|
||||
* New upstream (closes #315552).
|
||||
|
||||
-- Lars Steinke <lss@debian.org> Sun, 18 Dec 2005 17:14:00 +0200
|
||||
|
||||
wmtemp (0.0.4-2) unstable; urgency=low
|
||||
|
||||
* Manpage fixes.
|
||||
|
||||
-- Lars Steinke (Debian Developer) <lss@debian.org> Fri, 4 Jun 2004 17:14:00 +0200
|
||||
|
||||
wmtemp (0.0.4-1) unstable; urgency=low
|
||||
|
||||
* Initial Release.
|
||||
|
||||
-- Lars Steinke (Debian Developer) <lss@debian.org> Fri, 4 Jun 2004 15:14:00 +0200
|
||||
|
1
debian/compat
vendored
Normal file
1
debian/compat
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
7
|
14
debian/control
vendored
Normal file
14
debian/control
vendored
Normal file
|
@ -0,0 +1,14 @@
|
|||
Source: wmtemp
|
||||
Section: x11
|
||||
Priority: extra
|
||||
Maintainer: Riccardo Stagni <unriccio@email.it>
|
||||
Build-Depends: debhelper (>= 7.0.50~), libsensors4-dev (>= 3.1.2), libxpm-dev, libxext-dev, x11proto-xext-dev, libx11-dev
|
||||
Standards-Version: 3.8.3
|
||||
Homepage: http://gnodde.org/wmtemp/
|
||||
|
||||
Package: wmtemp
|
||||
Architecture: any
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}, lm-sensors
|
||||
Description: WM dock applet displaying lm_sensors temperature values
|
||||
Nifty small dock applet for Window Maker that continuously displays
|
||||
CPU and case temperature by virtue of lm_sensors
|
35
debian/copyright
vendored
Normal file
35
debian/copyright
vendored
Normal file
|
@ -0,0 +1,35 @@
|
|||
This package was debianized by Lars Steinke <lss@debian.org> on
|
||||
Fri, 4 Jun 2004 15:14:00 +0200.
|
||||
|
||||
It was downloaded from http://gnodde.org/wmtemp/wmtemp-0.0.6.tar.gz
|
||||
|
||||
Upstream Author: Peter Gnodde <peter@gnodde.org>
|
||||
Project Home: http://gnodde.org/wmtemp
|
||||
|
||||
Copyright:
|
||||
|
||||
All code and design by Peter Gnodde <peter@gnodde.org>
|
||||
Copyright 2003-2008 Peter Gnodde
|
||||
|
||||
License:
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the
|
||||
Free Software Foundation, Inc.,
|
||||
51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
|
||||
Please see /usr/share/common-licenses/GPL-2 for the full license.
|
||||
|
||||
The Debian packaging is copyright 2008, Riccardo Stagni <unriccio@email.it>
|
||||
and is licensed under the GPL, see `/usr/share/common-licenses/GPL'.
|
||||
|
2
debian/dirs
vendored
Normal file
2
debian/dirs
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
usr/bin
|
||||
usr/share/man/man1
|
1
debian/docs
vendored
Normal file
1
debian/docs
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
CREDITS
|
2
debian/menu
vendored
Normal file
2
debian/menu
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
?package(wmtemp):needs="X11" section="Applications/System/Monitoring"\
|
||||
title="wmtemp" command="/usr/bin/wmtemp"
|
10
debian/rules
vendored
Executable file
10
debian/rules
vendored
Executable file
|
@ -0,0 +1,10 @@
|
|||
#!/usr/bin/make -f
|
||||
%:
|
||||
dh $@
|
||||
|
||||
override_dh_auto_install:
|
||||
$(MAKE) install PREFIX=$(CURDIR)/debian/wmtemp/usr
|
||||
|
||||
override_dh_installman:
|
||||
dh_installman wmtemp.1x
|
||||
|
2
debian/watch
vendored
Normal file
2
debian/watch
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
version=3
|
||||
http://gnodde.org/wmtemp/wmtemp-([\d\.]*).tar.gz
|
391
dockapp.c
Normal file
391
dockapp.c
Normal file
|
@ -0,0 +1,391 @@
|
|||
/*
|
||||
* Copyright (c) 1999 Alfredo K. Kojima
|
||||
* Copyright (c) 2001, 2002 Seiichi SATO <ssato@sh.rim.or.jp>
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
||||
* AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
* This code is based on libdockapp-0.4.0
|
||||
* modified by Seiichi SATO <ssato@sh.rim.or.jp>
|
||||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
#include "dockapp.h"
|
||||
|
||||
#define WINDOWED_SIZE_W 64
|
||||
#define WINDOWED_SIZE_H 64
|
||||
|
||||
/* global */
|
||||
Display *display = NULL;
|
||||
Bool dockapp_iswindowed = False;
|
||||
Bool dockapp_isbrokenwm = False;
|
||||
|
||||
/* private */
|
||||
static Window window = None;
|
||||
static Window icon_window = None;
|
||||
static GC gc = NULL;
|
||||
static int depth = 0;
|
||||
static Atom delete_win;
|
||||
static int width, height;
|
||||
static int offset_w, offset_h;
|
||||
|
||||
void
|
||||
dockapp_open_window(char *display_specified, char *appname,
|
||||
unsigned w, unsigned h, int argc, char **argv)
|
||||
{
|
||||
XClassHint *classhint;
|
||||
XWMHints *wmhints;
|
||||
XTextProperty title;
|
||||
XSizeHints sizehints;
|
||||
Window root;
|
||||
int ww, wh;
|
||||
|
||||
/* Open Connection to X Server */
|
||||
display = XOpenDisplay(display_specified);
|
||||
if (!display) {
|
||||
fprintf(stderr, "%s: could not open display %s!\n", argv[0],
|
||||
XDisplayName(display_specified));
|
||||
exit(1);
|
||||
}
|
||||
root = DefaultRootWindow(display);
|
||||
|
||||
width = w;
|
||||
height = h;
|
||||
|
||||
if (dockapp_iswindowed) {
|
||||
offset_w = (WINDOWED_SIZE_W - w) / 2;
|
||||
offset_h = (WINDOWED_SIZE_H - h) / 2;
|
||||
ww = WINDOWED_SIZE_W;
|
||||
wh = WINDOWED_SIZE_H;
|
||||
} else {
|
||||
offset_w = offset_h = 0;
|
||||
ww = w;
|
||||
wh = h;
|
||||
}
|
||||
|
||||
/* Create Windows */
|
||||
icon_window = XCreateSimpleWindow(display, root, 0, 0, ww, wh, 0, 0, 0);
|
||||
if (dockapp_isbrokenwm) {
|
||||
window = XCreateSimpleWindow(display, root, 0, 0, ww, wh, 0, 0, 0);
|
||||
} else {
|
||||
window = XCreateSimpleWindow(display, root, 0, 0, 1, 1, 0, 0, 0);
|
||||
}
|
||||
|
||||
/* Set ClassHint */
|
||||
classhint = XAllocClassHint();
|
||||
if (classhint == NULL) {
|
||||
fprintf(stderr, "%s: can't allocate memory for wm hints!\n", argv[0]);
|
||||
exit(1);
|
||||
}
|
||||
classhint->res_class = "DockApp";
|
||||
classhint->res_name = appname;
|
||||
XSetClassHint(display, window, classhint);
|
||||
XFree(classhint);
|
||||
|
||||
/* Set WMHints */
|
||||
wmhints = XAllocWMHints();
|
||||
if (wmhints == NULL) {
|
||||
fprintf(stderr, "%s: can't allocate memory for wm hints!\n", argv[0]);
|
||||
exit(1);
|
||||
}
|
||||
wmhints->flags = IconWindowHint | WindowGroupHint;
|
||||
if (!dockapp_iswindowed) {
|
||||
wmhints->flags |= StateHint;
|
||||
wmhints->initial_state = WithdrawnState;
|
||||
}
|
||||
wmhints->window_group = window;
|
||||
wmhints->icon_window = icon_window;
|
||||
XSetWMHints(display, window, wmhints);
|
||||
XFree(wmhints);
|
||||
|
||||
/* Set WM Protocols */
|
||||
delete_win = XInternAtom(display, "WM_DELETE_WINDOW", False);
|
||||
XSetWMProtocols (display, icon_window, &delete_win, 1);
|
||||
|
||||
/* Set Size Hints */
|
||||
sizehints.flags = USSize;
|
||||
if (!dockapp_iswindowed) {
|
||||
sizehints.flags |= USPosition;
|
||||
sizehints.x = sizehints.y = 0;
|
||||
} else {
|
||||
sizehints.flags |= PMinSize | PMaxSize;
|
||||
sizehints.min_width = sizehints.max_width = WINDOWED_SIZE_W;
|
||||
sizehints.min_height = sizehints.max_height = WINDOWED_SIZE_H;
|
||||
}
|
||||
sizehints.width = ww;
|
||||
sizehints.height = wh;
|
||||
XSetWMNormalHints(display, icon_window, &sizehints);
|
||||
|
||||
/* Set WindowTitle for AfterStep Wharf */
|
||||
XStringListToTextProperty(&appname, 1, &title);
|
||||
XSetWMName(display, window, &title);
|
||||
XSetWMName(display, icon_window, &title);
|
||||
|
||||
/* Set Command to start the app so it can be docked properly */
|
||||
XSetCommand(display, window, argv, argc);
|
||||
|
||||
depth = DefaultDepth(display, DefaultScreen(display));
|
||||
gc = DefaultGC(display, DefaultScreen(display));
|
||||
|
||||
XFlush(display);
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
dockapp_set_eventmask(long mask)
|
||||
{
|
||||
XSelectInput(display, icon_window, mask);
|
||||
XSelectInput(display, window, mask);
|
||||
}
|
||||
|
||||
|
||||
static Pixmap
|
||||
create_bg_pixmap(void)
|
||||
{
|
||||
Pixmap bg;
|
||||
|
||||
bg = XCreatePixmap(display, icon_window, WINDOWED_SIZE_W, WINDOWED_SIZE_H,
|
||||
depth);
|
||||
XSetForeground(display, gc, dockapp_getcolor("rgb:ae/aa/ae"));
|
||||
XFillRectangle(display, bg, gc, 0, 0, WINDOWED_SIZE_W, WINDOWED_SIZE_H);
|
||||
XSetForeground(display, gc, dockapp_getcolor("rgb:ff/ff/ff"));
|
||||
XDrawLine(display, bg, gc, 0, 0, 0, 63);
|
||||
XDrawLine(display, bg, gc, 1, 0, 1, 62);
|
||||
XDrawLine(display, bg, gc, 2, 0, 63, 0);
|
||||
XDrawLine(display, bg, gc, 2, 1, 62, 1);
|
||||
XSetForeground(display, gc, dockapp_getcolor("rgb:52/55/52"));
|
||||
XDrawLine(display, bg, gc, 1, 63, 63, 63);
|
||||
XDrawLine(display, bg, gc, 2, 62, 63, 62);
|
||||
XDrawLine(display, bg, gc, 63, 1, 63, 61);
|
||||
XDrawLine(display, bg, gc, 62, 2, 62, 61);
|
||||
|
||||
return bg;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
dockapp_set_background(Pixmap pixmap)
|
||||
{
|
||||
if (dockapp_iswindowed) {
|
||||
Pixmap bg;
|
||||
bg = create_bg_pixmap();
|
||||
XCopyArea(display, pixmap, bg, gc, 0, 0, width, height,
|
||||
offset_w, offset_w);
|
||||
XSetWindowBackgroundPixmap(display, icon_window, bg);
|
||||
XSetWindowBackgroundPixmap(display, window, bg);
|
||||
XFreePixmap(display, bg);
|
||||
} else {
|
||||
XSetWindowBackgroundPixmap(display, icon_window, pixmap);
|
||||
XSetWindowBackgroundPixmap(display, window, pixmap);
|
||||
}
|
||||
XClearWindow(display, icon_window);
|
||||
XFlush(display);
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
dockapp_show(void)
|
||||
{
|
||||
if (!dockapp_iswindowed)
|
||||
XMapRaised(display, window);
|
||||
else
|
||||
XMapRaised(display, icon_window);
|
||||
|
||||
XFlush(display);
|
||||
}
|
||||
|
||||
|
||||
Bool
|
||||
dockapp_xpm2pixmap(char **data, Pixmap *pixmap, Pixmap *mask,
|
||||
XpmColorSymbol * colorSymbol, unsigned int nsymbols)
|
||||
{
|
||||
XpmAttributes xpmAttr;
|
||||
xpmAttr.valuemask = XpmCloseness;
|
||||
xpmAttr.closeness = 40000;
|
||||
|
||||
if (nsymbols) {
|
||||
xpmAttr.colorsymbols = colorSymbol;
|
||||
xpmAttr.numsymbols = nsymbols;
|
||||
xpmAttr.valuemask |= XpmColorSymbols;
|
||||
}
|
||||
|
||||
if (XpmCreatePixmapFromData(display, icon_window, data, pixmap, mask, &xpmAttr) != 0)
|
||||
return False;
|
||||
|
||||
return True;
|
||||
}
|
||||
|
||||
|
||||
Pixmap
|
||||
dockapp_XCreatePixmap(int w, int h)
|
||||
{
|
||||
return (XCreatePixmap(display, icon_window, w, h, depth));
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
dockapp_setshape(Pixmap mask, int x_ofs, int y_ofs)
|
||||
{
|
||||
XShapeCombineMask(display, icon_window, ShapeBounding, -x_ofs, -y_ofs,
|
||||
mask, ShapeSet);
|
||||
XShapeCombineMask(display, window, ShapeBounding, -x_ofs, -y_ofs,
|
||||
mask, ShapeSet);
|
||||
XFlush(display);
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
dockapp_copyarea(Pixmap src, Pixmap dist, int x_src, int y_src, int w, int h,
|
||||
int x_dist, int y_dist)
|
||||
{
|
||||
XCopyArea(display, src, dist, gc, x_src, y_src, w, h, x_dist, y_dist);
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
dockapp_copy2window (Pixmap src)
|
||||
{
|
||||
if (dockapp_isbrokenwm) {
|
||||
XCopyArea(display, src, window, gc, 0, 0, width, height, offset_w,
|
||||
offset_h);
|
||||
} else {
|
||||
XCopyArea(display, src, icon_window, gc, 0, 0, width, height, offset_w,
|
||||
offset_h);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Bool
|
||||
dockapp_nextevent_or_timeout(XEvent *event, unsigned long miliseconds)
|
||||
{
|
||||
struct timeval timeout;
|
||||
fd_set rset;
|
||||
|
||||
XSync(display, False);
|
||||
if (XPending(display)) {
|
||||
XNextEvent(display, event);
|
||||
return True;
|
||||
}
|
||||
|
||||
timeout.tv_sec = miliseconds / 1000;
|
||||
timeout.tv_usec = (miliseconds % 1000) * 1000;
|
||||
|
||||
FD_ZERO(&rset);
|
||||
FD_SET(ConnectionNumber(display), &rset);
|
||||
if (select(ConnectionNumber(display)+1, &rset, NULL, NULL, &timeout) > 0) {
|
||||
XNextEvent(display, event);
|
||||
if (event->type == ClientMessage) {
|
||||
if (event->xclient.data.l[0] == delete_win) {
|
||||
XDestroyWindow(display,event->xclient.window);
|
||||
XCloseDisplay(display);
|
||||
exit(0);
|
||||
}
|
||||
}
|
||||
if (dockapp_iswindowed) {
|
||||
event->xbutton.x -= offset_w;
|
||||
event->xbutton.y -= offset_h;
|
||||
}
|
||||
return True;
|
||||
}
|
||||
|
||||
return False;
|
||||
}
|
||||
|
||||
|
||||
unsigned long
|
||||
dockapp_getcolor(char *color_name)
|
||||
{
|
||||
XColor color;
|
||||
|
||||
if (!XParseColor(display, DefaultColormap(display, DefaultScreen(display)),
|
||||
color_name, &color))
|
||||
fprintf(stderr, "can't parse color %s\n", color_name), exit(1);
|
||||
|
||||
if (!XAllocColor(display, DefaultColormap(display, DefaultScreen(display)),
|
||||
&color)) {
|
||||
fprintf(stderr, "can't allocate color %s. Using black\n", color_name);
|
||||
return BlackPixel(display, DefaultScreen(display));
|
||||
}
|
||||
|
||||
return color.pixel;
|
||||
}
|
||||
|
||||
|
||||
unsigned long
|
||||
dockapp_blendedcolor(char *color_name, int r, int g, int b, float fac)
|
||||
{
|
||||
XColor color;
|
||||
|
||||
if ((r < -255 || r > 255)||(g < -255 || g > 255)||(b < -255 || b > 255)){
|
||||
fprintf(stderr, "r:%d,g:%d,b:%d (r,g,b must be 0 to 255)", r, g, b);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
r *= 255;
|
||||
g *= 255;
|
||||
b *= 255;
|
||||
|
||||
if (!XParseColor(display, DefaultColormap(display, DefaultScreen(display)),
|
||||
color_name, &color))
|
||||
fprintf(stderr, "can't parse color %s\n", color_name), exit(1);
|
||||
|
||||
if (!XAllocColor(display, DefaultColormap(display, DefaultScreen(display)),
|
||||
&color)) {
|
||||
fprintf(stderr, "can't allocate color %s. Using black\n", color_name);
|
||||
return BlackPixel(display, DefaultScreen(display));
|
||||
}
|
||||
|
||||
if (DefaultDepth(display, DefaultScreen(display)) < 16)
|
||||
return color.pixel;
|
||||
|
||||
/* red */
|
||||
if (color.red + r > 0xffff) {
|
||||
color.red = 0xffff;
|
||||
} else if (color.red + r < 0) {
|
||||
color.red = 0;
|
||||
} else {
|
||||
color.red = (unsigned short)(fac * color.red + r);
|
||||
}
|
||||
|
||||
/* green */
|
||||
if (color.green + g > 0xffff) {
|
||||
color.green = 0xffff;
|
||||
} else if (color.green + g < 0) {
|
||||
color.green = 0;
|
||||
} else {
|
||||
color.green = (unsigned short)(fac * color.green + g);
|
||||
}
|
||||
|
||||
/* blue */
|
||||
if (color.blue + b > 0xffff) {
|
||||
color.blue = 0xffff;
|
||||
} else if (color.blue + b < 0) {
|
||||
color.blue = 0;
|
||||
} else {
|
||||
color.blue = (unsigned short)(fac * color.blue + b);
|
||||
}
|
||||
|
||||
color.flags = DoRed | DoGreen | DoBlue;
|
||||
|
||||
if (!XAllocColor(display, DefaultColormap(display, DefaultScreen(display)),
|
||||
&color)) {
|
||||
fprintf(stderr, "can't allocate color %s. Using black\n", color_name);
|
||||
return BlackPixel(display, DefaultScreen(display));
|
||||
}
|
||||
|
||||
return color.pixel;
|
||||
}
|
96
dockapp.h
Normal file
96
dockapp.h
Normal file
|
@ -0,0 +1,96 @@
|
|||
/*
|
||||
* Copyright (c) 1999 Alfredo K. Kojima
|
||||
* Copyright (c) 2001, 2002 Seiichi SATO <ssato@sh.rim.or.jp>
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"), to deal
|
||||
* in the Software without restriction, including without limitation the rights
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the Software is
|
||||
* furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in
|
||||
* all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
|
||||
* AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
* This code is based on libdockapp-0.4.0
|
||||
* modified by Seiichi SATO <ssato@sh.rim.or.jp>
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#endif
|
||||
|
||||
#include <X11/Xlib.h>
|
||||
#include <X11/xpm.h>
|
||||
#include <X11/extensions/shape.h>
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
#if STDC_HEADERS
|
||||
# include <stdlib.h>
|
||||
# include <stddef.h>
|
||||
#else
|
||||
# if HAVE_STDLIB_H
|
||||
# include <stdlib.h>
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if HAVE_STRING_H
|
||||
# if !STDC_HEADERS && HAVE_MEMORY_H
|
||||
# include <memory.h>
|
||||
# endif
|
||||
# include <string.h>
|
||||
#endif
|
||||
#if HAVE_STRINGS_H
|
||||
# include <strings.h>
|
||||
#endif
|
||||
|
||||
#if HAVE_SELECT
|
||||
# include <sys/select.h>
|
||||
#endif
|
||||
|
||||
#if TIME_WITH_SYS_TIME
|
||||
# include <sys/time.h>
|
||||
# include <time.h>
|
||||
#else
|
||||
# if HAVE_SYS_TIME_H
|
||||
# include <sys/time.h>
|
||||
# else
|
||||
# include <time.h>
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if HAVE_UNISTD_H
|
||||
# include <unistd.h>
|
||||
#else
|
||||
/* We are in trouble. */
|
||||
#endif
|
||||
|
||||
extern Display *display;
|
||||
extern Bool dockapp_iswindowed;
|
||||
extern Bool dockapp_isbrokenwm;
|
||||
|
||||
|
||||
void dockapp_open_window(char *display_specified, char *appname,
|
||||
unsigned w, unsigned h, int argc, char **argv);
|
||||
void dockapp_set_eventmask(long mask);
|
||||
void dockapp_set_background(Pixmap pixmap);
|
||||
void dockapp_show(void);
|
||||
Bool dockapp_xpm2pixmap(char **data, Pixmap * pixmap, Pixmap * mask,
|
||||
XpmColorSymbol * colorSymbol,
|
||||
unsigned int nsymbols);
|
||||
Pixmap dockapp_XCreatePixmap(int w, int h);
|
||||
void dockapp_setshape(Pixmap mask, int x_ofs, int y_ofs);
|
||||
void dockapp_copyarea(Pixmap src, Pixmap dist, int x_src, int y_src,
|
||||
int w, int h, int x_dist, int y_dist);
|
||||
void dockapp_copy2window(Pixmap src);
|
||||
Bool dockapp_nextevent_or_timeout(XEvent * event, unsigned long miliseconds);
|
||||
unsigned long dockapp_getcolor(char *color);
|
||||
unsigned long dockapp_blendedcolor(char *color, int r, int g, int b, float fac);
|
429
main.c
Normal file
429
main.c
Normal file
|
@ -0,0 +1,429 @@
|
|||
/* WMtemp - A dockapp to monitor CPU and MB temperatures
|
||||
* Copyright (C) 2004 Peter Gnodde <peter@gnodde.org>
|
||||
*
|
||||
* Some ideas loaned from the wmgtemp dockapp
|
||||
*
|
||||
* Based on work by Mark Staggs <me@markstaggs.net>
|
||||
* Copyright (C) 2002 Mark Staggs <me@markstaggs.net>
|
||||
*
|
||||
* Based on work by Seiichi SATO <ssato@sh.rim.or.jp>
|
||||
* Copyright (C) 2001,2002 Seiichi SATO <ssato@sh.rim.or.jp>
|
||||
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*
|
||||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "dockapp.h"
|
||||
#include "temp.h"
|
||||
#include "xpm/xpm.h"
|
||||
|
||||
#define SIZE 58
|
||||
#define WINDOWED_BG " \tc #AEAAAE"
|
||||
#define MAX_HISTORY 16
|
||||
#define CPUNUM_NONE -1
|
||||
|
||||
typedef enum { LIGHTON, LIGHTOFF } light;
|
||||
|
||||
Pixmap pixmap;
|
||||
Pixmap backdrop_on;
|
||||
Pixmap backdrop_off;
|
||||
Pixmap parts;
|
||||
Pixmap mask;
|
||||
static char *display_name = "";
|
||||
static char *light_color = NULL; /* back-light color */
|
||||
static unsigned update_interval = 1;
|
||||
static light backlight = LIGHTOFF;
|
||||
|
||||
static unsigned int cpu_temp = 0;
|
||||
static unsigned int sys_temp = 0;
|
||||
static unsigned int alarm_cpu = 60;
|
||||
static unsigned int alarm_sys = 60;
|
||||
char *configfile = NULL;
|
||||
|
||||
static char **backlight_on_xpm;
|
||||
static char **backlight_off_xpm;
|
||||
|
||||
/* prototypes */
|
||||
static void update(void);
|
||||
static void switch_light(void);
|
||||
static void draw_cpudigit(int per);
|
||||
static void draw_sysdigit(int per);
|
||||
static void parse_arguments(int argc, char **argv);
|
||||
static void print_help(char *prog);
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
XEvent event;
|
||||
XpmColorSymbol colors[2] = { {"Back0", NULL, 0}, {"Back1", NULL, 0} };
|
||||
int ncolor = 0;
|
||||
|
||||
/* Parse CommandLine */
|
||||
parse_arguments(argc, argv);
|
||||
|
||||
if (t_type == FAHRENHEIT) {
|
||||
alarm_cpu = TO_FAHRENHEIT(alarm_cpu);
|
||||
alarm_sys = TO_FAHRENHEIT(alarm_sys);
|
||||
|
||||
backlight_on_xpm = fahrenheit_on_xpm;
|
||||
backlight_off_xpm = fahrenheit_off_xpm;
|
||||
} else if (t_type == KELVIN) {
|
||||
alarm_cpu = TO_KELVIN(alarm_cpu);
|
||||
alarm_sys = TO_KELVIN(alarm_sys);
|
||||
|
||||
backlight_on_xpm = kelvin_on_xpm;
|
||||
backlight_off_xpm = kelvin_off_xpm;
|
||||
} else {
|
||||
backlight_on_xpm = celcius_on_xpm;
|
||||
backlight_off_xpm = celcius_off_xpm;
|
||||
}
|
||||
|
||||
/* Initialize Application */
|
||||
temp_init(configfile);
|
||||
dockapp_open_window(display_name, PACKAGE, SIZE, SIZE, argc, argv);
|
||||
dockapp_set_eventmask(ButtonPressMask);
|
||||
|
||||
if(light_color)
|
||||
{
|
||||
colors[0].pixel = dockapp_getcolor(light_color);
|
||||
colors[1].pixel = dockapp_blendedcolor(light_color, -24, -24, -24, 1.0);
|
||||
ncolor = 2;
|
||||
}
|
||||
|
||||
/* change raw xpm data to pixmap */
|
||||
if(dockapp_iswindowed)
|
||||
backlight_on_xpm[1] = backlight_off_xpm[1] = WINDOWED_BG;
|
||||
|
||||
if(!dockapp_xpm2pixmap(backlight_on_xpm, &backdrop_on, &mask, colors, ncolor))
|
||||
{
|
||||
fprintf(stderr, "Error initializing backlit background image.\n");
|
||||
exit(1);
|
||||
}
|
||||
if(!dockapp_xpm2pixmap(backlight_off_xpm, &backdrop_off, NULL, NULL, 0))
|
||||
{
|
||||
fprintf(stderr, "Error initializing background image.\n");
|
||||
exit(1);
|
||||
}
|
||||
if(!dockapp_xpm2pixmap(parts_xpm, &parts, NULL, colors, ncolor))
|
||||
{
|
||||
fprintf(stderr, "Error initializing parts image.\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
/* shape window */
|
||||
if(!dockapp_iswindowed)
|
||||
dockapp_setshape(mask, 0, 0);
|
||||
if(mask) XFreePixmap(display, mask);
|
||||
|
||||
/* pixmap : draw area */
|
||||
pixmap = dockapp_XCreatePixmap(SIZE, SIZE);
|
||||
|
||||
/* Initialize pixmap */
|
||||
if(backlight == LIGHTON)
|
||||
dockapp_copyarea(backdrop_on, pixmap, 0, 0, SIZE, SIZE, 0, 0);
|
||||
else
|
||||
dockapp_copyarea(backdrop_off, pixmap, 0, 0, SIZE, SIZE, 0, 0);
|
||||
|
||||
dockapp_set_background(pixmap);
|
||||
dockapp_show();
|
||||
|
||||
update();
|
||||
|
||||
/* Main loop */
|
||||
while(1)
|
||||
{
|
||||
if (dockapp_nextevent_or_timeout(&event, update_interval * 1000))
|
||||
{
|
||||
/* Next Event */
|
||||
switch(event.type)
|
||||
{
|
||||
case ButtonPress:
|
||||
switch_light();
|
||||
break;
|
||||
default: /* make gcc happy */
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Time Out */
|
||||
update();
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* called by timer */
|
||||
static void update(void)
|
||||
{
|
||||
static light pre_backlight;
|
||||
static Bool in_alarm_mode = False;
|
||||
|
||||
/* get current cpu usage in percent */
|
||||
temp_getusage(&cpu_temp, &sys_temp);
|
||||
|
||||
/* alarm mode */
|
||||
if(cpu_temp >= alarm_cpu || sys_temp >= alarm_sys)
|
||||
{
|
||||
if(!in_alarm_mode)
|
||||
{
|
||||
in_alarm_mode = True;
|
||||
pre_backlight = backlight;
|
||||
}
|
||||
if(backlight == LIGHTOFF)
|
||||
{
|
||||
switch_light();
|
||||
return;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if(in_alarm_mode)
|
||||
{
|
||||
in_alarm_mode = False;
|
||||
if (backlight != pre_backlight)
|
||||
{
|
||||
switch_light();
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* all clear */
|
||||
if (backlight == LIGHTON)
|
||||
dockapp_copyarea(backdrop_on, pixmap, 0, 0, 58, 58, 0, 0);
|
||||
else
|
||||
dockapp_copyarea(backdrop_off, pixmap, 0, 0, 58, 58, 0, 0);
|
||||
|
||||
/* draw digit */
|
||||
draw_cpudigit(cpu_temp);
|
||||
draw_sysdigit(sys_temp);
|
||||
|
||||
/* show */
|
||||
dockapp_copy2window(pixmap);
|
||||
}
|
||||
|
||||
/* called when mouse button pressed */
|
||||
static void switch_light(void)
|
||||
{
|
||||
switch (backlight)
|
||||
{
|
||||
case LIGHTOFF:
|
||||
backlight = LIGHTON;
|
||||
dockapp_copyarea(backdrop_on, pixmap, 0, 0, 58, 58, 0, 0);
|
||||
break;
|
||||
case LIGHTON:
|
||||
backlight = LIGHTOFF;
|
||||
dockapp_copyarea(backdrop_off, pixmap, 0, 0, 58, 58, 0, 0);
|
||||
break;
|
||||
}
|
||||
|
||||
/* redraw digit */
|
||||
temp_getusage(&cpu_temp, &sys_temp);
|
||||
draw_cpudigit(cpu_temp);
|
||||
draw_sysdigit(sys_temp);
|
||||
|
||||
/* show */
|
||||
dockapp_copy2window(pixmap);
|
||||
}
|
||||
|
||||
static void draw_cpudigit(int per)
|
||||
{
|
||||
int v100, v10, v1;
|
||||
int y = 0;
|
||||
|
||||
if (per < 0) per = 0;
|
||||
|
||||
v100 = per / 100;
|
||||
v10 = (per - v100 * 100) / 10;
|
||||
v1 = (per - v100 * 100 - v10 * 10);
|
||||
|
||||
if (backlight == LIGHTON) y = 20;
|
||||
|
||||
/* draw digit */
|
||||
dockapp_copyarea(parts, pixmap, v1 * 10, y, 10, 20, 29, 7);
|
||||
if (v10 != 0 || v100 != 0) {
|
||||
dockapp_copyarea(parts, pixmap, v10 * 10, y, 10, 20, 17, 7);
|
||||
|
||||
if (v100 != 0) {
|
||||
dockapp_copyarea(parts, pixmap, v100 * 10, y, 10, 20, 5, 7);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void draw_sysdigit(int per)
|
||||
{
|
||||
int v100, v10, v1;
|
||||
int y = 0;
|
||||
|
||||
if (per < 0) per = 0;
|
||||
|
||||
v100 = per / 100;
|
||||
v10 = (per - v100 * 100) / 10;
|
||||
v1 = (per - v100 * 100 - v10 * 10);
|
||||
|
||||
if (backlight == LIGHTON) y = 20;
|
||||
|
||||
/* draw digit */
|
||||
dockapp_copyarea(parts, pixmap, v1 * 10, y, 10, 20, 29, 34);
|
||||
if (v10 != 0 || v100 != 0) {
|
||||
dockapp_copyarea(parts, pixmap, v10 * 10, y, 10, 20, 17, 34);
|
||||
|
||||
if (v100 != 0) {
|
||||
dockapp_copyarea(parts, pixmap, v100 * 10, y, 10, 20, 5, 34);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void parse_arguments(int argc, char **argv)
|
||||
{
|
||||
int i;
|
||||
int integer;
|
||||
for (i = 1; i < argc; i++)
|
||||
{
|
||||
if (!strcmp(argv[i], "-v"))
|
||||
printf("%s version %s\n", PACKAGE, VERSION), exit(0);
|
||||
else if (!strcmp(argv[i], "-d"))
|
||||
{
|
||||
display_name = argv[i + 1];
|
||||
i++;
|
||||
}
|
||||
else if (!strcmp(argv[i], "-ac"))
|
||||
{
|
||||
if (argc == i + 1)
|
||||
alarm_cpu = 60;
|
||||
else if (sscanf(argv[i + 1], "%i", &integer) != 1)
|
||||
alarm_cpu = 60;
|
||||
else if (integer < 0 || integer > 100)
|
||||
fprintf(stderr, "%s: argument %s must be from 0 to 100\n",
|
||||
argv[0], argv[i]), exit(1);
|
||||
else
|
||||
alarm_cpu = integer, i++;
|
||||
}
|
||||
else if (!strcmp(argv[i], "-as"))
|
||||
{
|
||||
if (argc == i + 1)
|
||||
alarm_sys = 60;
|
||||
else if (sscanf(argv[i + 1], "%i", &integer) != 1)
|
||||
alarm_sys = 60;
|
||||
else if (integer < 0 || integer > 100)
|
||||
fprintf(stderr, "%s: argument %s must be from 0 to 100\n",
|
||||
argv[0], argv[i]), exit(1);
|
||||
else
|
||||
alarm_sys = integer, i++;
|
||||
}
|
||||
else if (!strcmp(argv[i], "-bl"))
|
||||
backlight = LIGHTON;
|
||||
else if (!strcmp(argv[i], "-lc"))
|
||||
{
|
||||
light_color = argv[i + 1];
|
||||
i++;
|
||||
}
|
||||
else if (!strcmp(argv[i], "-i"))
|
||||
{
|
||||
if (argc == i + 1)
|
||||
fprintf(stderr, "%s: error parsing argument for option %s\n",
|
||||
argv[0], argv[i]), exit(1);
|
||||
if (sscanf(argv[i + 1], "%i", &integer) != 1)
|
||||
fprintf(stderr, "%s: error parsing argument for option %s\n",
|
||||
argv[0], argv[i]), exit(1);
|
||||
if (integer < 1)
|
||||
fprintf(stderr, "%s: argument %s must be >=1\n",
|
||||
argv[0], argv[i]), exit(1);
|
||||
update_interval = integer;
|
||||
i++;
|
||||
}
|
||||
else if (!strcmp(argv[i], "-w"))
|
||||
dockapp_iswindowed = True;
|
||||
else if (!strcmp(argv[i], "-bw"))
|
||||
dockapp_isbrokenwm = True;
|
||||
else if (!strcmp(argv[i], "-c")) {
|
||||
if (argc == i + 1) {
|
||||
fprintf(stderr, "%s: error parsing argument for option %s\n", argv[0], argv[i]);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
configfile = argv[i + 1];
|
||||
i++;
|
||||
}
|
||||
else if (!strcmp(argv[i], "-s")) {
|
||||
char *t;
|
||||
|
||||
t = cpu_feature_name;
|
||||
cpu_feature_name = sys_feature_name;
|
||||
sys_feature_name = t;
|
||||
}
|
||||
else if (!strcmp(argv[i], "-cf")) {
|
||||
if (argc == i + 1) {
|
||||
fprintf(stderr, "%s: error parsing argument for option %s\n", argv[0], argv[i]);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
cpu_feature_name = argv[i + 1];
|
||||
i++;
|
||||
}
|
||||
else if (!strcmp(argv[i], "-sf")) {
|
||||
if (argc == i + 1) {
|
||||
fprintf(stderr, "%s: error parsing argument for option %s\n", argv[0], argv[i]);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
sys_feature_name = argv[i + 1];
|
||||
i++;
|
||||
}
|
||||
else if (!strcmp(argv[i], "-f"))
|
||||
t_type = FAHRENHEIT;
|
||||
else if (!strcmp(argv[i], "-k"))
|
||||
t_type = KELVIN;
|
||||
else
|
||||
{
|
||||
print_help(argv[0]), exit(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void print_help(char *prog)
|
||||
{
|
||||
printf("Usage : %s [OPTIONS]\n", prog);
|
||||
printf("WMtemp - temperature monitor dockapp\n");
|
||||
printf(" -d <string> display to use\n");
|
||||
printf(" -bl turn on back-light\n");
|
||||
printf(" -lc <string> back-light color (rgb:6E/C6/3B is default)\n");
|
||||
printf(" -i <number> number of secs between updates (1 is default)\n");
|
||||
printf(" -h show this help text and exit\n");
|
||||
printf(" -v show program version and exit\n");
|
||||
printf(" -w run the application in windowed mode\n");
|
||||
printf(" -bw activate broken window manager fix\n");
|
||||
printf(" -ac <number> activate alarm mode of CPU\n");
|
||||
printf(" <number> is threshold from 0 to 100\n");
|
||||
printf(" (60 is default)\n");
|
||||
printf(" -as <number> activate alarm mode of system\n");
|
||||
printf(" <number> is threshold from 0 to 100\n");
|
||||
printf(" (60 is default)\n");
|
||||
printf(" -c <path> location of the sensors.conf file\n");
|
||||
printf(" ('/etc/sensors.conf' is default)\n");
|
||||
printf(" -cf <feature> which feature to use for cpu temperature\n");
|
||||
printf(" ('temp1_input' is default)\n");
|
||||
printf(" -sf <feature> which feature to use for sys temperature\n");
|
||||
printf(" ('temp2_input' is default)\n");
|
||||
printf(" -s swap the cpu and sys temperatures\n");
|
||||
printf(" (/etc/sensors.conf is default)\n");
|
||||
printf(" -f show temperatures in Fahrenheit\n");
|
||||
printf(" -k show temperatures in Kelvin\n");
|
||||
}
|
108
temp.c
Normal file
108
temp.c
Normal file
|
@ -0,0 +1,108 @@
|
|||
#define DEBUG(x) x
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <errno.h>
|
||||
#include <string.h>
|
||||
#include <sensors.h>
|
||||
|
||||
#include "temp.h"
|
||||
|
||||
static FILE *f = NULL;
|
||||
static char sensors = 0;
|
||||
|
||||
static const sensors_chip_name *chip_name = NULL;
|
||||
static const sensors_feature *feature;
|
||||
|
||||
char *cpu_feature_name = "temp1_input";
|
||||
char *sys_feature_name = "temp2_input";
|
||||
|
||||
temperature_t t_type = CELCIUS;
|
||||
|
||||
static int cpu_feature = 0;
|
||||
static int sys_feature = 0;
|
||||
|
||||
void temp_deinit() {
|
||||
if (f != NULL) {
|
||||
fclose(f);
|
||||
}
|
||||
|
||||
if (sensors) {
|
||||
sensors_cleanup();
|
||||
}
|
||||
}
|
||||
|
||||
void temp_init(const char *filename) {
|
||||
const sensors_chip_name *name;
|
||||
int chip_nr = 0, f1, f2;
|
||||
|
||||
char str[256];
|
||||
|
||||
char *feattext = NULL;
|
||||
const sensors_subfeature *subfeature;
|
||||
|
||||
atexit(temp_deinit);
|
||||
|
||||
if (filename) {
|
||||
f = fopen(filename, "r");
|
||||
if (f == NULL) {
|
||||
fprintf(stderr, "could not open configfile %s: %s\n", filename,
|
||||
strerror(errno));
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
if (sensors_init(f)) {
|
||||
fprintf(stderr, "could not initialize sensors\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
sensors = 1;
|
||||
while ((name = sensors_get_detected_chips(NULL, &chip_nr)) != NULL &&
|
||||
chip_name == NULL) {
|
||||
f1 = f2 = 0;
|
||||
DEBUG(printf("chip_nr=%d %d\n",chip_nr,__LINE__);)
|
||||
|
||||
sensors_snprintf_chip_name(str, 256, name);
|
||||
DEBUG(printf("chip name = %s (%d)\n",str,__LINE__);)
|
||||
|
||||
while ((feature = sensors_get_features( name, &f1)) != NULL) {
|
||||
|
||||
feattext = sensors_get_label( name, feature );
|
||||
DEBUG(printf("f1=%d feattext=%s (%d) \n",f1,feattext,__LINE__);)
|
||||
|
||||
if ( (subfeature = sensors_get_subfeature (name, feature, SENSORS_SUBFEATURE_TEMP_INPUT)) ) {
|
||||
DEBUG(printf("subfeature name =%s (%d) \n",subfeature->name,__LINE__);)
|
||||
if (strcmp(subfeature->name, cpu_feature_name) == 0) {
|
||||
cpu_feature = subfeature->number;
|
||||
chip_name = name;
|
||||
}
|
||||
else if (strcmp(subfeature->name, sys_feature_name) == 0) {
|
||||
sys_feature = subfeature->number;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (chip_name == NULL) {
|
||||
fprintf(stderr, "could not find a suitable chip\n");
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
void temp_getusage(unsigned int *cpu_temp, unsigned int *sys_temp) {
|
||||
double cpu, sys;
|
||||
|
||||
sensors_get_value(chip_name, cpu_feature, &cpu);
|
||||
sensors_get_value(chip_name, sys_feature, &sys);
|
||||
|
||||
if (t_type == FAHRENHEIT) {
|
||||
cpu = TO_FAHRENHEIT(cpu);
|
||||
sys = TO_FAHRENHEIT(sys);
|
||||
} else if (t_type == KELVIN) {
|
||||
cpu = TO_KELVIN(cpu);
|
||||
sys = TO_KELVIN(sys);
|
||||
}
|
||||
|
||||
*cpu_temp = (unsigned int)(cpu);
|
||||
*sys_temp = (unsigned int)(sys);
|
||||
}
|
22
temp.h
Normal file
22
temp.h
Normal file
|
@ -0,0 +1,22 @@
|
|||
#ifndef SHO_TEMP_H
|
||||
#define SHO_TEMP_H
|
||||
|
||||
#define PACKAGE "wmtemp"
|
||||
#define VERSION "0.0.4"
|
||||
|
||||
#define TO_FAHRENHEIT(t) (((double)(t) * 1.8) + 32.0)
|
||||
#define TO_KELVIN(t) ((double)(t) + 273.0)
|
||||
|
||||
typedef enum temperature_t {
|
||||
CELCIUS, FAHRENHEIT, KELVIN
|
||||
} temperature_t;
|
||||
|
||||
extern char *cpu_feature_name;
|
||||
extern char *sys_feature_name;
|
||||
|
||||
extern temperature_t t_type;
|
||||
|
||||
void temp_init(const char *filename);
|
||||
void temp_getusage(unsigned int *cpu_temp, unsigned int *sys_temp);
|
||||
|
||||
#endif
|
47
wmtemp.1x
Normal file
47
wmtemp.1x
Normal file
|
@ -0,0 +1,47 @@
|
|||
.\" Hey, EMACS: -*- nroff -*-
|
||||
.\" First parameter, NAME, should be all caps
|
||||
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
|
||||
.\" other parameters are allowed: see man(7), man(1)
|
||||
.TH WMTEMP 1x "June 4, 2004"
|
||||
.\" Please adjust this date whenever revising the manpage.
|
||||
.\"
|
||||
.\" Some roff macros, for reference:
|
||||
.\" .nh disable hyphenation
|
||||
.\" .hy enable hyphenation
|
||||
.\" .ad l left justify
|
||||
.\" .ad b justify to both left and right margins
|
||||
.\" .nf disable filling
|
||||
.\" .fi enable filling
|
||||
.\" .br insert line break
|
||||
.\" .sp <n> insert n+1 empty lines
|
||||
.\" for manpage-specific macros, see man(7)
|
||||
.SH NAME
|
||||
wmtemp \- WindowMaker dock applet displaying lm_sensors temperature values
|
||||
.SH SYNOPSIS
|
||||
.B wmtemp
|
||||
.RI [ options ]
|
||||
.br
|
||||
.SH DESCRIPTION
|
||||
This manual page documents briefly the
|
||||
.B wmtemp
|
||||
command.
|
||||
.PP
|
||||
\fBwmtemp\fP is a nifty small dock applet for Window Maker
|
||||
that continuously displays CPU and case temperature by
|
||||
virtue of lm_sensors.
|
||||
|
||||
.SH OPTIONS
|
||||
A summary of options is included below.
|
||||
For a complete description, see \fIwmtemp \-h\fP.
|
||||
.TP
|
||||
.B \-h
|
||||
Show help text and exit.
|
||||
.TP
|
||||
.B \-v
|
||||
Show program version and exit.
|
||||
.SH SEE ALSO
|
||||
.BR sensors (1),
|
||||
.br
|
||||
.SH AUTHOR
|
||||
This manual page was written by Lars Steinke <lss@debian.org>,
|
||||
for the Debian project (but may be used by others).
|
71
xpm/celcius_off.xpm
Normal file
71
xpm/celcius_off.xpm
Normal file
|
@ -0,0 +1,71 @@
|
|||
/* XPM */
|
||||
static char * celcius_off_xpm[] = {
|
||||
"58 58 10 1",
|
||||
" c None",
|
||||
". c #020202",
|
||||
"+ c #0A0A0A",
|
||||
"@ c #484C46",
|
||||
"# c #DEDEDE",
|
||||
"$ c #7C827C",
|
||||
"% c #8E968A",
|
||||
"& c #444740",
|
||||
"* c #767C6F",
|
||||
"= c #3E463E",
|
||||
" ...................................................... ",
|
||||
" .++++++++++++++++++++++++++++++++++++++++++++++++++++++. ",
|
||||
".++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.#",
|
||||
".+@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$.#",
|
||||
".+@$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.#",
|
||||
".+@$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&%%.#",
|
||||
".+@$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&%%%%%%.#",
|
||||
".+@$%%%******%%%%%%******%%%%%%******%%%%....%%%%&%%%%%%.#",
|
||||
".+@$%*%%****%%*%%*%%****%%*%%*%%****%%*%%.%%.%%%%&&&&&%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%.%%.%%%%%%%%%%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%....%%%%&&&&&%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%&%%%&%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%&&&&&%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%&%%%%%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%&%%%%%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%%%%%%%%.#",
|
||||
".+@$%*%%****%%*%%*%%****%%*%%*%%****%%*%%%%%%%%%%&%%%&%%.#",
|
||||
".+@$%%%******%%%%%%******%%%%%%******%%%%%%%%%%%%&%%%&%%.#",
|
||||
".+@$%*%%%%%%%%*%%*%%%%%%%%*%%*%%%%%%%%*%%%%%%%%%%&%%%&%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%&&&&&%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%%%%%%%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%.....%%%%%%%%%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%.%%%%%%%%%%%%%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%.%%%%%%%%%%%%%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%.%%%%%%%%%%%%%%.#",
|
||||
".+@$%*%%****%%*%%*%%****%%*%%*%%****%%*%%.%%%%%%%%%%%%%%.#",
|
||||
".+@$%%%******%%%%%%******%%%%%%******%%%%.....%%%%%%%%%%.#",
|
||||
".+@$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.#",
|
||||
".+@$%=================================================%%.#",
|
||||
".+@$%=================================================*%.#",
|
||||
".+@$%%*************************************************%.#",
|
||||
".+@$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.#",
|
||||
".+@$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&%%.#",
|
||||
".+@$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&%%%%%%.#",
|
||||
".+@$%%%******%%%%%%******%%%%%%******%%%%....%%%%&&&&&%%.#",
|
||||
".+@$%*%%****%%*%%*%%****%%*%%*%%****%%*%%.%%.%%%%%%%%&%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%.%%.%%%%&&&&&%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%....%%%%%%%%%%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%&%%%&%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%&%%%&%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%&&&&&%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%%%%%&%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%&&&&&%%.#",
|
||||
".+@$%*%%****%%*%%*%%****%%*%%*%%****%%*%%%%%%%%%%%%%%%%%.#",
|
||||
".+@$%%%******%%%%%%******%%%%%%******%%%%%%%%%%%%&&&&&%%.#",
|
||||
".+@$%*%%%%%%%%*%%*%%%%%%%%*%%*%%%%%%%%*%%%%%%%%%%&%%%%%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%&&&&&%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%%%%%&%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%.....%%%&&&&&%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%.%%%%%%%%%%%%%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%.%%%%%%%%%%%%%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%.%%%%%%%%%%%%%%.#",
|
||||
".+@$%*%%****%%*%%*%%****%%*%%*%%****%%*%%.%%%%%%%%%%%%%%.#",
|
||||
".+@$%%%******%%%%%%******%%%%%%******%%%%.....%%%%%%%%%%.#",
|
||||
".+@$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.#",
|
||||
".+@$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%..#",
|
||||
" .......................................................# ",
|
||||
" ###################################################### "};
|
71
xpm/celcius_on.xpm
Normal file
71
xpm/celcius_on.xpm
Normal file
|
@ -0,0 +1,71 @@
|
|||
/* XPM */
|
||||
static char * celcius_on_xpm[] = {
|
||||
"58 58 10 1",
|
||||
" c None",
|
||||
". c #020202",
|
||||
"+ c #0A0A0A",
|
||||
"@ c #484C46 s Back1",
|
||||
"# c #DEDEDE",
|
||||
"$ c #779866",
|
||||
"% c #6EC63B s Back0",
|
||||
"& c #2E4C17 s Back1",
|
||||
"* c #6CB237 s Back1",
|
||||
"= c #3E463E s Back1",
|
||||
" ...................................................... ",
|
||||
" .%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%. ",
|
||||
".%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#",
|
||||
".%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#",
|
||||
".%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#",
|
||||
".%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&%%%#",
|
||||
".%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&%%%%%%%#",
|
||||
".%%%%%%******%%%%%%******%%%%%%******%%%%....%%%%&%%%%%%%#",
|
||||
".%%%%*%%****%%*%%*%%****%%*%%*%%****%%*%%.%%.%%%%&&&&&%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%.%%.%%%%%%%%%%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%....%%%%&&&&&%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%&%%%&%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%&&&&&%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%&%%%%%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%&%%%%%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%%%%%%%%%#",
|
||||
".%%%%*%%****%%*%%*%%****%%*%%*%%****%%*%%%%%%%%%%&%%%&%%%#",
|
||||
".%%%%%%******%%%%%%******%%%%%%******%%%%%%%%%%%%&%%%&%%%#",
|
||||
".%%%%*%%%%%%%%*%%*%%%%%%%%*%%*%%%%%%%%*%%%%%%%%%%&%%%&%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%&&&&&%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%%%%%%%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%.....%%%%%%%%%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%.%%%%%%%%%%%%%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%.%%%%%%%%%%%%%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%.%%%%%%%%%%%%%%%#",
|
||||
".%%%%*%%****%%*%%*%%****%%*%%*%%****%%*%%.%%%%%%%%%%%%%%%#",
|
||||
".%%%%%%******%%%%%%******%%%%%%******%%%%.....%%%%%%%%%%%#",
|
||||
".%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#",
|
||||
".%%%%=================================================%%%#",
|
||||
".%%%%=================================================*%%#",
|
||||
".%%%%%*************************************************%%#",
|
||||
".%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#",
|
||||
".%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&%%%#",
|
||||
".%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&%%%%%%%#",
|
||||
".%%%%%%******%%%%%%******%%%%%%******%%%%....%%%%&&&&&%%%#",
|
||||
".%%%%*%%****%%*%%*%%****%%*%%*%%****%%*%%.%%.%%%%%%%%&%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%.%%.%%%%&&&&&%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%....%%%%%%%%%%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%&%%%&%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%&%%%&%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%&&&&&%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%%%%%&%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%&&&&&%%%#",
|
||||
".%%%%*%%****%%*%%*%%****%%*%%*%%****%%*%%%%%%%%%%%%%%%%%%#",
|
||||
".%%%%%%******%%%%%%******%%%%%%******%%%%%%%%%%%%&&&&&%%%#",
|
||||
".%%%%*%%%%%%%%*%%*%%%%%%%%*%%*%%%%%%%%*%%%%%%%%%%&%%%%%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%&&&&&%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%%%%%&%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%.....%%%&&&&&%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%.%%%%%%%%%%%%%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%.%%%%%%%%%%%%%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%.%%%%%%%%%%%%%%%#",
|
||||
".%%%%*%%****%%*%%*%%****%%*%%*%%****%%*%%.%%%%%%%%%%%%%%%#",
|
||||
".%%%%%%******%%%%%%******%%%%%%******%%%%.....%%%%%%%%%%%#",
|
||||
".%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#",
|
||||
".%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#",
|
||||
" .%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%# ",
|
||||
" ###################################################### "};
|
71
xpm/fahrenheit_off.xpm
Normal file
71
xpm/fahrenheit_off.xpm
Normal file
|
@ -0,0 +1,71 @@
|
|||
/* XPM */
|
||||
static char * fahrenheit_off_xpm[] = {
|
||||
"58 58 10 1",
|
||||
" c None",
|
||||
". c #020202",
|
||||
"+ c #0A0A0A",
|
||||
"@ c #484C46",
|
||||
"# c #DEDEDE",
|
||||
"$ c #7C827C",
|
||||
"% c #8E968A",
|
||||
"& c #444740",
|
||||
"* c #767C6F",
|
||||
"= c #3E463E",
|
||||
" ...................................................... ",
|
||||
" .++++++++++++++++++++++++++++++++++++++++++++++++++++++. ",
|
||||
".++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.#",
|
||||
".+@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$.#",
|
||||
".+@$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.#",
|
||||
".+@$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&%%.#",
|
||||
".+@$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&%%%%%%.#",
|
||||
".+@$%%%******%%%%%%******%%%%%%******%%%%....%%%%&%%%%%%.#",
|
||||
".+@$%*%%****%%*%%*%%****%%*%%*%%****%%*%%.%%.%%%%&&&&&%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%.%%.%%%%%%%%%%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%....%%%%&&&&&%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%&%%%&%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%&&&&&%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%&%%%%%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%&%%%%%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%%%%%%%%.#",
|
||||
".+@$%*%%****%%*%%*%%****%%*%%*%%****%%*%%%%%%%%%%&%%%&%%.#",
|
||||
".+@$%%%******%%%%%%******%%%%%%******%%%%%%%%%%%%&%%%&%%.#",
|
||||
".+@$%*%%%%%%%%*%%*%%%%%%%%*%%*%%%%%%%%*%%%%%%%%%%&%%%&%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%&&&&&%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%%%%%%%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%.....%%%%%%%%%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%.%%%%%%%%%%%%%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%.%%%%%%%%%%%%%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%....%%%%%%%%%%%.#",
|
||||
".+@$%*%%****%%*%%*%%****%%*%%*%%****%%*%%.%%%%%%%%%%%%%%.#",
|
||||
".+@$%%%******%%%%%%******%%%%%%******%%%%.%%%%%%%%%%%%%%.#",
|
||||
".+@$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.#",
|
||||
".+@$%=================================================%%.#",
|
||||
".+@$%=================================================*%.#",
|
||||
".+@$%%*************************************************%.#",
|
||||
".+@$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.#",
|
||||
".+@$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&%%.#",
|
||||
".+@$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&%%%%%%.#",
|
||||
".+@$%%%******%%%%%%******%%%%%%******%%%%....%%%%&&&&&%%.#",
|
||||
".+@$%*%%****%%*%%*%%****%%*%%*%%****%%*%%.%%.%%%%%%%%&%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%.%%.%%%%&&&&&%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%....%%%%%%%%%%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%&%%%&%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%&%%%&%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%&&&&&%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%%%%%&%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%&&&&&%%.#",
|
||||
".+@$%*%%****%%*%%*%%****%%*%%*%%****%%*%%%%%%%%%%%%%%%%%.#",
|
||||
".+@$%%%******%%%%%%******%%%%%%******%%%%%%%%%%%%&&&&&%%.#",
|
||||
".+@$%*%%%%%%%%*%%*%%%%%%%%*%%*%%%%%%%%*%%%%%%%%%%&%%%%%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%&&&&&%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%%%%%&%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%.....%%%&&&&&%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%.%%%%%%%%%%%%%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%.%%%%%%%%%%%%%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%....%%%%%%%%%%%.#",
|
||||
".+@$%*%%****%%*%%*%%****%%*%%*%%****%%*%%.%%%%%%%%%%%%%%.#",
|
||||
".+@$%%%******%%%%%%******%%%%%%******%%%%.%%%%%%%%%%%%%%.#",
|
||||
".+@$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.#",
|
||||
".+@$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%..#",
|
||||
" .......................................................# ",
|
||||
" ###################################################### "};
|
71
xpm/fahrenheit_on.xpm
Normal file
71
xpm/fahrenheit_on.xpm
Normal file
|
@ -0,0 +1,71 @@
|
|||
/* XPM */
|
||||
static char * fahrenheit_on_xpm[] = {
|
||||
"58 58 10 1",
|
||||
" c None",
|
||||
". c #020202",
|
||||
"+ c #0A0A0A",
|
||||
"@ c #484C46 s Back1",
|
||||
"# c #DEDEDE",
|
||||
"$ c #779866",
|
||||
"% c #6EC63B s Back0",
|
||||
"& c #2E4C17 s Back1",
|
||||
"* c #6CB237 s Back1",
|
||||
"= c #3E463E s Back1",
|
||||
" ...................................................... ",
|
||||
" .%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%. ",
|
||||
".%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#",
|
||||
".%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#",
|
||||
".%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#",
|
||||
".%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&%%%#",
|
||||
".%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&%%%%%%%#",
|
||||
".%%%%%%******%%%%%%******%%%%%%******%%%%....%%%%&%%%%%%%#",
|
||||
".%%%%*%%****%%*%%*%%****%%*%%*%%****%%*%%.%%.%%%%&&&&&%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%.%%.%%%%%%%%%%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%....%%%%&&&&&%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%&%%%&%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%&&&&&%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%&%%%%%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%&%%%%%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%%%%%%%%%#",
|
||||
".%%%%*%%****%%*%%*%%****%%*%%*%%****%%*%%%%%%%%%%&%%%&%%%#",
|
||||
".%%%%%%******%%%%%%******%%%%%%******%%%%%%%%%%%%&%%%&%%%#",
|
||||
".%%%%*%%%%%%%%*%%*%%%%%%%%*%%*%%%%%%%%*%%%%%%%%%%&%%%&%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%&&&&&%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%%%%%%%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%.....%%%%%%%%%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%.%%%%%%%%%%%%%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%.%%%%%%%%%%%%%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%....%%%%%%%%%%%%#",
|
||||
".%%%%*%%****%%*%%*%%****%%*%%*%%****%%*%%.%%%%%%%%%%%%%%%#",
|
||||
".%%%%%%******%%%%%%******%%%%%%******%%%%.%%%%%%%%%%%%%%%#",
|
||||
".%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#",
|
||||
".%%%%=================================================%%%#",
|
||||
".%%%%=================================================*%%#",
|
||||
".%%%%%*************************************************%%#",
|
||||
".%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#",
|
||||
".%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&%%%#",
|
||||
".%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&%%%%%%%#",
|
||||
".%%%%%%******%%%%%%******%%%%%%******%%%%....%%%%&&&&&%%%#",
|
||||
".%%%%*%%****%%*%%*%%****%%*%%*%%****%%*%%.%%.%%%%%%%%&%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%.%%.%%%%&&&&&%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%....%%%%%%%%%%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%&%%%&%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%&%%%&%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%&&&&&%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%%%%%&%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%&&&&&%%%#",
|
||||
".%%%%*%%****%%*%%*%%****%%*%%*%%****%%*%%%%%%%%%%%%%%%%%%#",
|
||||
".%%%%%%******%%%%%%******%%%%%%******%%%%%%%%%%%%&&&&&%%%#",
|
||||
".%%%%*%%%%%%%%*%%*%%%%%%%%*%%*%%%%%%%%*%%%%%%%%%%&%%%%%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%&&&&&%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%%%%%&%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%.....%%%&&&&&%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%.%%%%%%%%%%%%%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%.%%%%%%%%%%%%%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%....%%%%%%%%%%%%#",
|
||||
".%%%%*%%****%%*%%*%%****%%*%%*%%****%%*%%.%%%%%%%%%%%%%%%#",
|
||||
".%%%%%%******%%%%%%******%%%%%%******%%%%.%%%%%%%%%%%%%%%#",
|
||||
".%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#",
|
||||
".%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#",
|
||||
" .%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%# ",
|
||||
" ###################################################### "};
|
71
xpm/kelvin_off.xpm
Normal file
71
xpm/kelvin_off.xpm
Normal file
|
@ -0,0 +1,71 @@
|
|||
/* XPM */
|
||||
static char * kelvin_off_xpm[] = {
|
||||
"58 58 10 1",
|
||||
" c None",
|
||||
". c #020202",
|
||||
"+ c #0A0A0A",
|
||||
"@ c #484C46",
|
||||
"# c #DEDEDE",
|
||||
"$ c #7C827C",
|
||||
"% c #8E968A",
|
||||
"& c #444740",
|
||||
"* c #767C6F",
|
||||
"= c #3E463E",
|
||||
" ...................................................... ",
|
||||
" .++++++++++++++++++++++++++++++++++++++++++++++++++++++. ",
|
||||
".++@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.#",
|
||||
".+@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$.#",
|
||||
".+@$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.#",
|
||||
".+@$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&%%.#",
|
||||
".+@$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&%%%%%%.#",
|
||||
".+@$%%%******%%%%%%******%%%%%%******%%%%....%%%%&%%%%%%.#",
|
||||
".+@$%*%%****%%*%%*%%****%%*%%*%%****%%*%%.%%.%%%%&&&&&%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%.%%.%%%%%%%%%%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%....%%%%&&&&&%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%&%%%&%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%&&&&&%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%&%%%%%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%&%%%%%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%%%%%%%%.#",
|
||||
".+@$%*%%****%%*%%*%%****%%*%%*%%****%%*%%%%%%%%%%&%%%&%%.#",
|
||||
".+@$%%%******%%%%%%******%%%%%%******%%%%%%%%%%%%&%%%&%%.#",
|
||||
".+@$%*%%%%%%%%*%%*%%%%%%%%*%%*%%%%%%%%*%%%%%%%%%%&%%%&%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%&&&&&%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%%%%%%%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%.%%%.%%%%%%%%%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%.%%.%%%%%%%%%%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%...%%%%%%%%%%%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%.%.%%%%%%%%%%%%.#",
|
||||
".+@$%*%%****%%*%%*%%****%%*%%*%%****%%*%%.%%.%%%%%%%%%%%.#",
|
||||
".+@$%%%******%%%%%%******%%%%%%******%%%%.%%%.%%%%%%%%%%.#",
|
||||
".+@$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.#",
|
||||
".+@$%=================================================%%.#",
|
||||
".+@$%=================================================*%.#",
|
||||
".+@$%%*************************************************%.#",
|
||||
".+@$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.#",
|
||||
".+@$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&%%.#",
|
||||
".+@$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&%%%%%%.#",
|
||||
".+@$%%%******%%%%%%******%%%%%%******%%%%....%%%%&&&&&%%.#",
|
||||
".+@$%*%%****%%*%%*%%****%%*%%*%%****%%*%%.%%.%%%%%%%%&%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%.%%.%%%%&&&&&%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%....%%%%%%%%%%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%&%%%&%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%&%%%&%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%&&&&&%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%%%%%&%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%&&&&&%%.#",
|
||||
".+@$%*%%****%%*%%*%%****%%*%%*%%****%%*%%%%%%%%%%%%%%%%%.#",
|
||||
".+@$%%%******%%%%%%******%%%%%%******%%%%%%%%%%%%&&&&&%%.#",
|
||||
".+@$%*%%%%%%%%*%%*%%%%%%%%*%%*%%%%%%%%*%%%%%%%%%%&%%%%%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%&&&&&%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%%%%%&%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%.%%%.%%%&&&&&%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%.%%.%%%%%%%%%%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%...%%%%%%%%%%%%.#",
|
||||
".+@$%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%.%.%%%%%%%%%%%%.#",
|
||||
".+@$%*%%****%%*%%*%%****%%*%%*%%****%%*%%.%%.%%%%%%%%%%%.#",
|
||||
".+@$%%%******%%%%%%******%%%%%%******%%%%.%%%.%%%%%%%%%%.#",
|
||||
".+@$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.#",
|
||||
".+@$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%..#",
|
||||
" .......................................................# ",
|
||||
" ###################################################### "};
|
71
xpm/kelvin_on.xpm
Normal file
71
xpm/kelvin_on.xpm
Normal file
|
@ -0,0 +1,71 @@
|
|||
/* XPM */
|
||||
static char * kelvin_on_xpm[] = {
|
||||
"58 58 10 1",
|
||||
" c None",
|
||||
". c #020202",
|
||||
"+ c #0A0A0A",
|
||||
"@ c #484C46 s Back1",
|
||||
"# c #DEDEDE",
|
||||
"$ c #779866",
|
||||
"% c #6EC63B s Back0",
|
||||
"& c #2E4C17 s Back1",
|
||||
"* c #6CB237 s Back1",
|
||||
"= c #3E463E s Back1",
|
||||
" ...................................................... ",
|
||||
" .%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%. ",
|
||||
".%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#",
|
||||
".%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#",
|
||||
".%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#",
|
||||
".%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&%%%#",
|
||||
".%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&%%%%%%%#",
|
||||
".%%%%%%******%%%%%%******%%%%%%******%%%%....%%%%&%%%%%%%#",
|
||||
".%%%%*%%****%%*%%*%%****%%*%%*%%****%%*%%.%%.%%%%&&&&&%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%.%%.%%%%%%%%%%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%....%%%%&&&&&%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%&%%%&%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%&&&&&%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%&%%%%%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%&%%%%%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%%%%%%%%%#",
|
||||
".%%%%*%%****%%*%%*%%****%%*%%*%%****%%*%%%%%%%%%%&%%%&%%%#",
|
||||
".%%%%%%******%%%%%%******%%%%%%******%%%%%%%%%%%%&%%%&%%%#",
|
||||
".%%%%*%%%%%%%%*%%*%%%%%%%%*%%*%%%%%%%%*%%%%%%%%%%&%%%&%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%&&&&&%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%%%%%%%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%.%%%.%%%%%%%%%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%.%%.%%%%%%%%%%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%...%%%%%%%%%%%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%.%.%%%%%%%%%%%%%#",
|
||||
".%%%%*%%****%%*%%*%%****%%*%%*%%****%%*%%.%%.%%%%%%%%%%%%#",
|
||||
".%%%%%%******%%%%%%******%%%%%%******%%%%.%%%.%%%%%%%%%%%#",
|
||||
".%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#",
|
||||
".%%%%=================================================%%%#",
|
||||
".%%%%=================================================*%%#",
|
||||
".%%%%%*************************************************%%#",
|
||||
".%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#",
|
||||
".%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&&&&&%%%#",
|
||||
".%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%&%%%%%%%#",
|
||||
".%%%%%%******%%%%%%******%%%%%%******%%%%....%%%%&&&&&%%%#",
|
||||
".%%%%*%%****%%*%%*%%****%%*%%*%%****%%*%%.%%.%%%%%%%%&%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%.%%.%%%%&&&&&%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%....%%%%%%%%%%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%&%%%&%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%&%%%&%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%&&&&&%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%%%%%&%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%&&&&&%%%#",
|
||||
".%%%%*%%****%%*%%*%%****%%*%%*%%****%%*%%%%%%%%%%%%%%%%%%#",
|
||||
".%%%%%%******%%%%%%******%%%%%%******%%%%%%%%%%%%&&&&&%%%#",
|
||||
".%%%%*%%%%%%%%*%%*%%%%%%%%*%%*%%%%%%%%*%%%%%%%%%%&%%%%%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%&&&&&%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%%%%%%%%%%%%%&%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%.%%%.%%%&&&&&%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%.%%.%%%%%%%%%%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%...%%%%%%%%%%%%%#",
|
||||
".%%%%**%%%%%%**%%**%%%%%%**%%**%%%%%%**%%.%.%%%%%%%%%%%%%#",
|
||||
".%%%%*%%****%%*%%*%%****%%*%%*%%****%%*%%.%%.%%%%%%%%%%%%#",
|
||||
".%%%%%%******%%%%%%******%%%%%%******%%%%.%%%.%%%%%%%%%%%#",
|
||||
".%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#",
|
||||
".%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#",
|
||||
" .%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%# ",
|
||||
" ###################################################### "};
|
60
xpm/parts.xpm
Normal file
60
xpm/parts.xpm
Normal file
|
@ -0,0 +1,60 @@
|
|||
/* XPM */
|
||||
static char * parts_xpm[] = {
|
||||
"104 49 8 1",
|
||||
" c None",
|
||||
". c #8E968A",
|
||||
"+ c #020202",
|
||||
"@ c #767C6F",
|
||||
"# c #6EC63B s Back0",
|
||||
"$ c #6CB237 s Back1",
|
||||
"% c #FFFFFF",
|
||||
"& c #3E463E",
|
||||
"..++++++....@@@@@@....++++++....++++++....@@@@@@....++++++....++++++....++++++....++++++....++++++..++++",
|
||||
"+..++++..+@..@@@@..+@..++++..+@..++++..++..@@@@..++..++++..@+..++++..@@..++++..++..++++..++..++++..+..##",
|
||||
"++......++@@......++@@......++@@......++++......++++......@@++......@@@@......++++......++++......++++++",
|
||||
"++......++@@......++@@......++@@......++++......++++......@@++......@@@@......++++......++++......++..##",
|
||||
"++......++@@......++@@......++@@......++++......++++......@@++......@@@@......++++......++++......++++++",
|
||||
"++......++@@......++@@......++@@......++++......++++......@@++......@@@@......++++......++++......++..##",
|
||||
"++......++@@......++@@......++@@......++++......++++......@@++......@@@@......++++......++++......++++++",
|
||||
"++......++@@......++@@......++@@......++++......++++......@@++......@@@@......++++......++++......++..##",
|
||||
"++......++@@......++@@......++@@......++++......++++......@@++......@@@@......++++......++++......++++++",
|
||||
"+..@@@@..+@..@@@@..+@..++++..+@..++++..++..++++..++..++++..@+..++++..@@..@@@@..++..++++..++..++++..+..##",
|
||||
"..@@@@@@....@@@@@@....++++++....++++++....++++++....++++++....++++++....@@@@@@....++++++....++++++..++++",
|
||||
"+........+@........++........@@........+@........+@........++........+@........++........+@........+..##",
|
||||
"++......++@@......++++......@@@@......++@@......++@@......++++......++@@......++++......++@@......++++++",
|
||||
"++......++@@......++++......@@@@......++@@......++@@......++++......++@@......++++......++@@......++..##",
|
||||
"++......++@@......++++......@@@@......++@@......++@@......++++......++@@......++++......++@@......++++++",
|
||||
"++......++@@......++++......@@@@......++@@......++@@......++++......++@@......++++......++@@......++..##",
|
||||
"++......++@@......++++......@@@@......++@@......++@@......++++......++@@......++++......++@@......++++++",
|
||||
"++......++@@......++++......@@@@......++@@......++@@......++++......++@@......++++......++@@......++..##",
|
||||
"+..++++..+@..@@@@..++..++++..@@..++++..+@..@@@@..+@..++++..++..++++..+@..@@@@..++..++++..+@..++++..+++++",
|
||||
"..++++++....@@@@@@....++++++....++++++....@@@@@@....++++++....++++++....@@@@@@....++++++....++++++....##",
|
||||
"##++++++####$$$$$$####++++++####++++++####$$$$$$####++++++####++++++####++++++####++++++####++++++##++++",
|
||||
"+##++++##+$##$$$$##+$##++++##+$##++++##++##$$$$##++##++++##$+##++++##$$##++++##++##++++##++##++++##+%%%%",
|
||||
"++######++$$######++$$######++$$######++++######++++######$$++######$$$$######++++######++++######++%%%%",
|
||||
"++######++$$######++$$######++$$######++++######++++######$$++######$$$$######++++######++++######++%%%%",
|
||||
"++######++$$######++$$######++$$######++++######++++######$$++######$$$$######++++######++++######++%%%%",
|
||||
"++######++$$######++$$######++$$######++++######++++######$$++######$$$$######++++######++++######++%%%%",
|
||||
"++######++$$######++$$######++$$######++++######++++######$$++######$$$$######++++######++++######++%%%%",
|
||||
"++######++$$######++$$######++$$######++++######++++######$$++######$$$$######++++######++++######++%%%%",
|
||||
"++######++$$######++$$######++$$######++++######++++######$$++######$$$$######++++######++++######++%%%%",
|
||||
"+##$$$$##+$##$$$$##+$##++++##+$##++++##++##++++##++##++++##$+##++++##$$##$$$$##++##++++##++##++++##+%%%%",
|
||||
"##$$$$$$####$$$$$$####++++++####++++++####++++++####++++++####++++++####$$$$$$####++++++####++++++##%%%%",
|
||||
"+########+$########++########$$########+$########+$########++########+$########++########+$########+%%%%",
|
||||
"++######++$$######++++######$$$$######++$$######++$$######++++######++$$######++++######++$$######++%%%%",
|
||||
"++######++$$######++++######$$$$######++$$######++$$######++++######++$$######++++######++$$######++%%%%",
|
||||
"++######++$$######++++######$$$$######++$$######++$$######++++######++$$######++++######++$$######++%%%%",
|
||||
"++######++$$######++++######$$$$######++$$######++$$######++++######++$$######++++######++$$######++%%%%",
|
||||
"++######++$$######++++######$$$$######++$$######++$$######++++######++$$######++++######++$$######++%%%%",
|
||||
"++######++$$######++++######$$$$######++$$######++$$######++++######++$$######++++######++$$######++%%%%",
|
||||
"+##++++##+$##$$$$##++##++++##$$##++++##+$##$$$$##+$##++++##++##++++##+$##$$$$##++##++++##+$##++++##+%%%%",
|
||||
"##++++++####$$$$$$####++++++####++++++####$$$$$$####++++++####++++++####$$$$$$####++++++####++++++##%%%%",
|
||||
".+++..@@@&.+++..+++.&@@@&&+++..+++..+++&.+++..+++.#+++##$$$&#+++##+++#&$$$&&+++##+++##+++&#+++##+++#%%%%",
|
||||
"+...+@...+@...+@...++...++...@+...@@...++...++...++###+$###+$###+$###++###++###$+###$$###++###++###+%%%%",
|
||||
"+...+@...+@...+@...++...++...@+...@@...++...++...++###+$###+$###+$###++###++###$+###$$###++###++###+%%%%",
|
||||
"+...+@...+@...+@...++...++...@+...@@...++...++...++###+$###+$###+$###++###++###$+###$$###++###++###+%%%%",
|
||||
"&@@@&.@@@&.+++..+++&&+++&&+++..+++..@@@&.+++..+++&&$$$&#$$$&#+++##+++&&+++&&+++##+++##$$$&#+++##+++&%%%%",
|
||||
"+...+@...++...@@...+@...+@...++...+@...++...+@...++###+$###++###$$###+$###+$###++###+$###++###+$###+%%%%",
|
||||
"+...+@...++...@@...+@...+@...++...+@...++...+@...++###+$###++###$$###+$###+$###++###+$###++###+$###+%%%%",
|
||||
"+...+@...++...@@...+@...+@...++...+@...++...+@...++###+$###++###$$###+$###+$###++###+$###++###+$###+%%%%",
|
||||
".+++..@@@&.+++&.+++..@@@&&+++..+++..@@@&.+++..+++.#+++##$$$&#+++&#+++##$$$&&+++##+++##$$$&#+++##+++#%%%%"};
|
15
xpm/xpm.h
Normal file
15
xpm/xpm.h
Normal file
|
@ -0,0 +1,15 @@
|
|||
#ifndef SHO_XPM_H
|
||||
#define SHO_XPM_H
|
||||
|
||||
extern char *celcius_on_xpm[];
|
||||
extern char *celcius_off_xpm[];
|
||||
|
||||
extern char *fahrenheit_on_xpm[];
|
||||
extern char *fahrenheit_off_xpm[];
|
||||
|
||||
extern char *kelvin_on_xpm[];
|
||||
extern char *kelvin_off_xpm[];
|
||||
|
||||
extern char *parts_xpm[];
|
||||
|
||||
#endif
|
Loading…
Reference in a new issue