Initial commit
This commit is contained in:
		
						commit
						344c3b8431
					
				
							
								
								
									
										9
									
								
								.editorconfig
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								.editorconfig
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,9 @@
 | 
			
		||||
root = true
 | 
			
		||||
 | 
			
		||||
[*]
 | 
			
		||||
end_of_line = lf
 | 
			
		||||
insert_final_newline = true
 | 
			
		||||
trim_trailing_whitespace = true
 | 
			
		||||
indent_style = tab
 | 
			
		||||
indent_size = 8
 | 
			
		||||
charset = utf-8
 | 
			
		||||
							
								
								
									
										3
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,3 @@
 | 
			
		||||
bin/
 | 
			
		||||
lib/
 | 
			
		||||
~*
 | 
			
		||||
							
								
								
									
										34
									
								
								INSTALL.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								INSTALL.md
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,34 @@
 | 
			
		||||
# Installing
 | 
			
		||||
 | 
			
		||||
## Dependencies
 | 
			
		||||
 | 
			
		||||
- Xlib
 | 
			
		||||
- Xt
 | 
			
		||||
- Motif
 | 
			
		||||
- A C compiler
 | 
			
		||||
 | 
			
		||||
Installing via APK:
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
# apk add libx11 libx11-dev libxt libxt-dev motif motif-dev clang
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## libXmd
 | 
			
		||||
 | 
			
		||||
Before building any of the applications you will need to build libXmd, which
 | 
			
		||||
contains code common to most of them:
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
# cd libXmd
 | 
			
		||||
# ./build.sh install
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## Individual applications
 | 
			
		||||
 | 
			
		||||
Individual applications can be installed using `./build.sh` in their respective
 | 
			
		||||
subdirectories:
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
# cd <application>
 | 
			
		||||
# ./build.sh install
 | 
			
		||||
```
 | 
			
		||||
							
								
								
									
										3
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,3 @@
 | 
			
		||||
# Xmd
 | 
			
		||||
 | 
			
		||||
A collection of X11 Motif desktop utilities written in C99.
 | 
			
		||||
							
								
								
									
										14
									
								
								libXmd/XmdIcon.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								libXmd/XmdIcon.c
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,14 @@
 | 
			
		||||
#include <Xmd/Icon.h>
 | 
			
		||||
 | 
			
		||||
Pixmap _XmdLoadBitmapIcon (Widget widget, unsigned char *bits, int width, int height) {
 | 
			
		||||
	Pixel fg, bg;
 | 
			
		||||
	XtVaGetValues (widget,
 | 
			
		||||
    		XmNforeground, &fg,
 | 
			
		||||
		XmNbackground, &bg, 
 | 
			
		||||
		NULL);
 | 
			
		||||
	return XCreatePixmapFromBitmapData (
 | 
			
		||||
		XtDisplay (widget),
 | 
			
		||||
		RootWindowOfScreen(XtScreen(widget)),
 | 
			
		||||
		(char *)(bits), width, height,
 | 
			
		||||
		fg, bg, DefaultDepthOfScreen(XtScreen(widget)));
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										26
									
								
								libXmd/build.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										26
									
								
								libXmd/build.sh
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,26 @@
 | 
			
		||||
#!/bin/sh
 | 
			
		||||
 | 
			
		||||
. ../scripts/flags.sh
 | 
			
		||||
 | 
			
		||||
function build() {
 | 
			
		||||
	cc $CFLAGS -shared -o "lib/libXmd.so" *.c || \
 | 
			
		||||
	echo "XXX FAIL!"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function clean() {
 | 
			
		||||
	rm -f lib/*
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
case "$1" in
 | 
			
		||||
install)
 | 
			
		||||
	clean; build
 | 
			
		||||
	cp lib/*.so "$PREFIX/lib"
 | 
			
		||||
	cp include/Xmd/*.h "$PREFIX/include/Xmd"
 | 
			
		||||
	clean
 | 
			
		||||
	;;
 | 
			
		||||
clean)
 | 
			
		||||
	clean
 | 
			
		||||
	;;
 | 
			
		||||
*)
 | 
			
		||||
	build
 | 
			
		||||
esac
 | 
			
		||||
							
								
								
									
										13
									
								
								libXmd/include/Xmd/Icon.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								libXmd/include/Xmd/Icon.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,13 @@
 | 
			
		||||
#ifndef _XmdIcon_h
 | 
			
		||||
#define _XmdIcon_h
 | 
			
		||||
 | 
			
		||||
#include <X11/Xlib.h>
 | 
			
		||||
#include <X11/Intrinsic.h>
 | 
			
		||||
#include <Xm/Xm.h>
 | 
			
		||||
 | 
			
		||||
/* XmdLoadBitmapIcon is a macro that loads an icon with the specified name. That Icon must
 | 
			
		||||
   be #include'd in your code somewhere. The name parameter must be a token, not a string. */
 | 
			
		||||
#define XmdLoadBitmapIcon(widget, name) _XmdLoadBitmapIcon(widget, name##_bits, name##_width, name##_height)
 | 
			
		||||
Pixmap _XmdLoadBitmapIcon (Widget widget, unsigned char *bits, int width, int height);
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										13
									
								
								libXmd/include/Xmd/Launcher.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								libXmd/include/Xmd/Launcher.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,13 @@
 | 
			
		||||
#ifndef _XmdLauncher_h
 | 
			
		||||
#define _XmdLauncher_h
 | 
			
		||||
 | 
			
		||||
#include <X11/Xlib.h>
 | 
			
		||||
#include <X11/Intrinsic.h>
 | 
			
		||||
#include <Xm/Xm.h>
 | 
			
		||||
 | 
			
		||||
typedef struct {
 | 
			
		||||
	Pixmap icon;
 | 
			
		||||
	const char *command;
 | 
			
		||||
} XmdLauncher;
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										27
									
								
								scripts/buildapp.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										27
									
								
								scripts/buildapp.sh
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,27 @@
 | 
			
		||||
#!/bin/sh
 | 
			
		||||
 | 
			
		||||
. `dirname $0`/flags.sh
 | 
			
		||||
 | 
			
		||||
function build() {
 | 
			
		||||
	mkdir -p bin
 | 
			
		||||
	cc $CFLAGS -c -o "bin/$1.o" src/*.c && \
 | 
			
		||||
	cc -o "bin/$1" "bin/$1.o" $APP_LIBS || \
 | 
			
		||||
	echo "XXX FAIL!"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function clean() {
 | 
			
		||||
	rm -f bin/*
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
case "$2" in
 | 
			
		||||
install)
 | 
			
		||||
	clean; build "$1"
 | 
			
		||||
	cp "bin/$1" "$PREFIX/bin"
 | 
			
		||||
	clean
 | 
			
		||||
	;;
 | 
			
		||||
clean)
 | 
			
		||||
	clean
 | 
			
		||||
	;;
 | 
			
		||||
*)
 | 
			
		||||
	build "$1"
 | 
			
		||||
esac
 | 
			
		||||
							
								
								
									
										5
									
								
								scripts/flags.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								scripts/flags.sh
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,5 @@
 | 
			
		||||
#!/bin/sh
 | 
			
		||||
 | 
			
		||||
CFLAGS="-std=c99 -Wall -Wextra -Werror -fPIC"
 | 
			
		||||
PREFIX="/usr/local"
 | 
			
		||||
APP_LIBS="-lXmd -lXm -lXt -lX11"
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								xmbattery/..o
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								xmbattery/..o
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								xmbattery/.o
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								xmbattery/.o
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										2
									
								
								xmbattery/build.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										2
									
								
								xmbattery/build.sh
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,2 @@
 | 
			
		||||
#!/bin/sh
 | 
			
		||||
../scripts/buildapp.sh xmbattery "$@"
 | 
			
		||||
							
								
								
									
										15
									
								
								xmbattery/src/icons/charging.xbm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								xmbattery/src/icons/charging.xbm
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,15 @@
 | 
			
		||||
#define charging_width 48
 | 
			
		||||
#define charging_height 24
 | 
			
		||||
static unsigned char charging_bits[] = {
 | 
			
		||||
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
   0xe0, 0xff, 0xff, 0xff, 0xff, 0x07, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x0f,
 | 
			
		||||
   0x18, 0x03, 0x00, 0x00, 0x00, 0x18, 0x0c, 0xf6, 0xff, 0xff, 0xff, 0x33,
 | 
			
		||||
   0x0c, 0xf6, 0xff, 0xff, 0xff, 0x37, 0x0c, 0xe6, 0xff, 0x3f, 0xfe, 0x37,
 | 
			
		||||
   0x46, 0xec, 0xff, 0x07, 0xff, 0x67, 0xe6, 0xec, 0xff, 0x80, 0xff, 0x6f,
 | 
			
		||||
   0xe6, 0xec, 0x1f, 0xc0, 0xff, 0x6f, 0xe6, 0xec, 0x07, 0xe3, 0xff, 0x6f,
 | 
			
		||||
   0xe6, 0xec, 0xff, 0x63, 0xf0, 0x6f, 0xe6, 0xec, 0xff, 0x01, 0xfc, 0x6f,
 | 
			
		||||
   0xe6, 0xec, 0xff, 0x80, 0xff, 0x6f, 0x46, 0xec, 0x7f, 0xf0, 0xff, 0x67,
 | 
			
		||||
   0x0c, 0xe6, 0x3f, 0xfe, 0xff, 0x37, 0x0c, 0xf6, 0xff, 0xff, 0xff, 0x37,
 | 
			
		||||
   0x0c, 0xf6, 0xff, 0xff, 0xff, 0x33, 0x18, 0x03, 0x00, 0x00, 0x00, 0x18,
 | 
			
		||||
   0xf0, 0xff, 0xff, 0xff, 0xff, 0x0f, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x07,
 | 
			
		||||
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
 | 
			
		||||
							
								
								
									
										15
									
								
								xmbattery/src/icons/error.xbm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								xmbattery/src/icons/error.xbm
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,15 @@
 | 
			
		||||
#define error_width 48
 | 
			
		||||
#define error_height 24
 | 
			
		||||
static unsigned char error_bits[] = {
 | 
			
		||||
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
   0xe0, 0xff, 0xff, 0xff, 0xff, 0x07, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x0f,
 | 
			
		||||
   0x18, 0x03, 0x00, 0x00, 0x00, 0x18, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x30,
 | 
			
		||||
   0x0c, 0x06, 0x40, 0x80, 0x00, 0x30, 0x0c, 0x06, 0xe0, 0xc0, 0x01, 0x30,
 | 
			
		||||
   0x46, 0x0c, 0xc0, 0xe1, 0x00, 0x60, 0xe6, 0x0c, 0x80, 0x73, 0x00, 0x60,
 | 
			
		||||
   0xe6, 0x0c, 0x00, 0x3f, 0x00, 0x60, 0xe6, 0x0c, 0x00, 0x1e, 0x00, 0x60,
 | 
			
		||||
   0xe6, 0x0c, 0x00, 0x1e, 0x00, 0x60, 0xe6, 0x0c, 0x00, 0x3f, 0x00, 0x60,
 | 
			
		||||
   0xe6, 0x0c, 0x80, 0x73, 0x00, 0x60, 0x46, 0x0c, 0xc0, 0xe1, 0x00, 0x60,
 | 
			
		||||
   0x0c, 0x06, 0xe0, 0xc0, 0x01, 0x30, 0x0c, 0x06, 0x40, 0x80, 0x00, 0x30,
 | 
			
		||||
   0x0c, 0x06, 0x00, 0x00, 0x00, 0x30, 0x18, 0x03, 0x00, 0x00, 0x00, 0x18,
 | 
			
		||||
   0xf0, 0xff, 0xff, 0xff, 0xff, 0x0f, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x07,
 | 
			
		||||
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
 | 
			
		||||
							
								
								
									
										15
									
								
								xmbattery/src/icons/level0.xbm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								xmbattery/src/icons/level0.xbm
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,15 @@
 | 
			
		||||
#define level0_width 48
 | 
			
		||||
#define level0_height 24
 | 
			
		||||
static unsigned char level0_bits[] = {
 | 
			
		||||
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
   0xe0, 0xff, 0xff, 0xff, 0xff, 0x07, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x0f,
 | 
			
		||||
   0x18, 0x03, 0x00, 0x00, 0x00, 0x18, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x32,
 | 
			
		||||
   0x0c, 0x06, 0x00, 0x02, 0x00, 0x37, 0x0c, 0x06, 0x00, 0x07, 0x00, 0x37,
 | 
			
		||||
   0x46, 0x0c, 0x00, 0x07, 0x00, 0x67, 0xe6, 0x0c, 0x00, 0x07, 0x80, 0x6f,
 | 
			
		||||
   0xe6, 0x0c, 0x00, 0x07, 0x80, 0x6f, 0xe6, 0x0c, 0x00, 0x07, 0x80, 0x6f,
 | 
			
		||||
   0xe6, 0x0c, 0x00, 0x02, 0x80, 0x6f, 0xe6, 0x0c, 0x00, 0x02, 0x80, 0x6f,
 | 
			
		||||
   0xe6, 0x0c, 0x00, 0x00, 0x80, 0x6f, 0x46, 0x0c, 0x00, 0x02, 0x00, 0x67,
 | 
			
		||||
   0x0c, 0x06, 0x00, 0x07, 0x00, 0x37, 0x0c, 0x06, 0x00, 0x02, 0x00, 0x37,
 | 
			
		||||
   0x0c, 0x06, 0x00, 0x00, 0x00, 0x32, 0x18, 0x03, 0x00, 0x00, 0x00, 0x18,
 | 
			
		||||
   0xf0, 0xff, 0xff, 0xff, 0xff, 0x0f, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x07,
 | 
			
		||||
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
 | 
			
		||||
							
								
								
									
										15
									
								
								xmbattery/src/icons/level1.xbm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								xmbattery/src/icons/level1.xbm
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,15 @@
 | 
			
		||||
#define level1_width 48
 | 
			
		||||
#define level1_height 24
 | 
			
		||||
static unsigned char level1_bits[] = {
 | 
			
		||||
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
   0xe0, 0xff, 0xff, 0xff, 0xff, 0x07, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x0f,
 | 
			
		||||
   0x18, 0x03, 0x00, 0x00, 0x00, 0x18, 0x0c, 0x06, 0x00, 0x00, 0xfe, 0x33,
 | 
			
		||||
   0x0c, 0x06, 0x00, 0x00, 0xff, 0x37, 0x0c, 0x06, 0x00, 0x00, 0xff, 0x37,
 | 
			
		||||
   0x46, 0x0c, 0x00, 0x00, 0xff, 0x67, 0xe6, 0x0c, 0x00, 0x80, 0xff, 0x6f,
 | 
			
		||||
   0xe6, 0x0c, 0x00, 0x80, 0xff, 0x6f, 0xe6, 0x0c, 0x00, 0x80, 0xff, 0x6f,
 | 
			
		||||
   0xe6, 0x0c, 0x00, 0x80, 0xff, 0x6f, 0xe6, 0x0c, 0x00, 0x80, 0xff, 0x6f,
 | 
			
		||||
   0xe6, 0x0c, 0x00, 0x80, 0xff, 0x6f, 0x46, 0x0c, 0x00, 0x00, 0xff, 0x67,
 | 
			
		||||
   0x0c, 0x06, 0x00, 0x00, 0xff, 0x37, 0x0c, 0x06, 0x00, 0x00, 0xff, 0x37,
 | 
			
		||||
   0x0c, 0x06, 0x00, 0x00, 0xfe, 0x33, 0x18, 0x03, 0x00, 0x00, 0x00, 0x18,
 | 
			
		||||
   0xf0, 0xff, 0xff, 0xff, 0xff, 0x0f, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x07,
 | 
			
		||||
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
 | 
			
		||||
							
								
								
									
										15
									
								
								xmbattery/src/icons/level2.xbm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								xmbattery/src/icons/level2.xbm
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,15 @@
 | 
			
		||||
#define level2_width 48
 | 
			
		||||
#define level2_height 24
 | 
			
		||||
static unsigned char level2_bits[] = {
 | 
			
		||||
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
   0xe0, 0xff, 0xff, 0xff, 0xff, 0x07, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x0f,
 | 
			
		||||
   0x18, 0x03, 0x00, 0x00, 0x00, 0x18, 0x0c, 0x06, 0x00, 0xf8, 0xff, 0x33,
 | 
			
		||||
   0x0c, 0x06, 0x00, 0xfc, 0xff, 0x37, 0x0c, 0x06, 0x00, 0xfc, 0xff, 0x37,
 | 
			
		||||
   0x46, 0x0c, 0x00, 0xfc, 0xff, 0x67, 0xe6, 0x0c, 0x00, 0xfe, 0xff, 0x6f,
 | 
			
		||||
   0xe6, 0x0c, 0x00, 0xfe, 0xff, 0x6f, 0xe6, 0x0c, 0x00, 0xfe, 0xff, 0x6f,
 | 
			
		||||
   0xe6, 0x0c, 0x00, 0xfe, 0xff, 0x6f, 0xe6, 0x0c, 0x00, 0xfe, 0xff, 0x6f,
 | 
			
		||||
   0xe6, 0x0c, 0x00, 0xfe, 0xff, 0x6f, 0x46, 0x0c, 0x00, 0xfc, 0xff, 0x67,
 | 
			
		||||
   0x0c, 0x06, 0x00, 0xfc, 0xff, 0x37, 0x0c, 0x06, 0x00, 0xfc, 0xff, 0x37,
 | 
			
		||||
   0x0c, 0x06, 0x00, 0xf8, 0xff, 0x33, 0x18, 0x03, 0x00, 0x00, 0x00, 0x18,
 | 
			
		||||
   0xf0, 0xff, 0xff, 0xff, 0xff, 0x0f, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x07,
 | 
			
		||||
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
 | 
			
		||||
							
								
								
									
										15
									
								
								xmbattery/src/icons/level3.xbm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								xmbattery/src/icons/level3.xbm
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,15 @@
 | 
			
		||||
#define level3_width 48
 | 
			
		||||
#define level3_height 24
 | 
			
		||||
static unsigned char level3_bits[] = {
 | 
			
		||||
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
   0xe0, 0xff, 0xff, 0xff, 0xff, 0x07, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x0f,
 | 
			
		||||
   0x18, 0x03, 0x00, 0x00, 0x00, 0x18, 0x0c, 0x06, 0xfe, 0xff, 0xff, 0x33,
 | 
			
		||||
   0x0c, 0x06, 0xff, 0xff, 0xff, 0x37, 0x0c, 0x06, 0xff, 0xff, 0xff, 0x37,
 | 
			
		||||
   0x46, 0x0c, 0xff, 0xff, 0xff, 0x67, 0xe6, 0x8c, 0xff, 0xff, 0xff, 0x6f,
 | 
			
		||||
   0xe6, 0x8c, 0xff, 0xff, 0xff, 0x6f, 0xe6, 0x8c, 0xff, 0xff, 0xff, 0x6f,
 | 
			
		||||
   0xe6, 0x8c, 0xff, 0xff, 0xff, 0x6f, 0xe6, 0x8c, 0xff, 0xff, 0xff, 0x6f,
 | 
			
		||||
   0xe6, 0x8c, 0xff, 0xff, 0xff, 0x6f, 0x46, 0x0c, 0xff, 0xff, 0xff, 0x67,
 | 
			
		||||
   0x0c, 0x06, 0xff, 0xff, 0xff, 0x37, 0x0c, 0x06, 0xff, 0xff, 0xff, 0x37,
 | 
			
		||||
   0x0c, 0x06, 0xfe, 0xff, 0xff, 0x33, 0x18, 0x03, 0x00, 0x00, 0x00, 0x18,
 | 
			
		||||
   0xf0, 0xff, 0xff, 0xff, 0xff, 0x0f, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x07,
 | 
			
		||||
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
 | 
			
		||||
							
								
								
									
										15
									
								
								xmbattery/src/icons/level4.xbm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								xmbattery/src/icons/level4.xbm
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,15 @@
 | 
			
		||||
#define level4_width 48
 | 
			
		||||
#define level4_height 24
 | 
			
		||||
static unsigned char level4_bits[] = {
 | 
			
		||||
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
   0xe0, 0xff, 0xff, 0xff, 0xff, 0x07, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x0f,
 | 
			
		||||
   0x18, 0x03, 0x00, 0x00, 0x00, 0x18, 0x0c, 0xf6, 0xff, 0xff, 0xff, 0x33,
 | 
			
		||||
   0x0c, 0xf6, 0xff, 0xff, 0xff, 0x37, 0x0c, 0xe6, 0xff, 0xff, 0xff, 0x37,
 | 
			
		||||
   0x46, 0xec, 0xff, 0xff, 0xff, 0x67, 0xe6, 0xec, 0xff, 0xff, 0xff, 0x6f,
 | 
			
		||||
   0xe6, 0xec, 0xff, 0xff, 0xff, 0x6f, 0xe6, 0xec, 0xff, 0xff, 0xff, 0x6f,
 | 
			
		||||
   0xe6, 0xec, 0xff, 0xff, 0xff, 0x6f, 0xe6, 0xec, 0xff, 0xff, 0xff, 0x6f,
 | 
			
		||||
   0xe6, 0xec, 0xff, 0xff, 0xff, 0x6f, 0x46, 0xec, 0xff, 0xff, 0xff, 0x67,
 | 
			
		||||
   0x0c, 0xe6, 0xff, 0xff, 0xff, 0x37, 0x0c, 0xf6, 0xff, 0xff, 0xff, 0x37,
 | 
			
		||||
   0x0c, 0xf6, 0xff, 0xff, 0xff, 0x33, 0x18, 0x03, 0x00, 0x00, 0x00, 0x18,
 | 
			
		||||
   0xf0, 0xff, 0xff, 0xff, 0xff, 0x0f, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x07,
 | 
			
		||||
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
 | 
			
		||||
							
								
								
									
										15
									
								
								xmbattery/src/icons/not.xbm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								xmbattery/src/icons/not.xbm
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,15 @@
 | 
			
		||||
#define not_width 48
 | 
			
		||||
#define not_height 24
 | 
			
		||||
static unsigned char not_bits[] = {
 | 
			
		||||
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
   0xa0, 0xaa, 0xaa, 0xaa, 0xaa, 0x02, 0x50, 0x55, 0x55, 0x55, 0x55, 0x05,
 | 
			
		||||
   0x08, 0x02, 0x00, 0x00, 0x00, 0x08, 0x04, 0x04, 0x00, 0x00, 0x00, 0x10,
 | 
			
		||||
   0x08, 0x02, 0x00, 0x00, 0x00, 0x20, 0x04, 0x04, 0x00, 0x00, 0x00, 0x10,
 | 
			
		||||
   0x02, 0x08, 0x00, 0x00, 0x00, 0x20, 0x44, 0x04, 0x00, 0x00, 0x00, 0x40,
 | 
			
		||||
   0xa2, 0x08, 0x00, 0x00, 0x00, 0x20, 0x44, 0x04, 0x00, 0x00, 0x00, 0x40,
 | 
			
		||||
   0xa2, 0x08, 0x00, 0x00, 0x00, 0x20, 0x44, 0x04, 0x00, 0x00, 0x00, 0x40,
 | 
			
		||||
   0xa2, 0x08, 0x00, 0x00, 0x00, 0x20, 0x44, 0x04, 0x00, 0x00, 0x00, 0x40,
 | 
			
		||||
   0x08, 0x02, 0x00, 0x00, 0x00, 0x20, 0x04, 0x04, 0x00, 0x00, 0x00, 0x10,
 | 
			
		||||
   0x08, 0x02, 0x00, 0x00, 0x00, 0x20, 0x10, 0x01, 0x00, 0x00, 0x00, 0x10,
 | 
			
		||||
   0xa0, 0xaa, 0xaa, 0xaa, 0xaa, 0x0a, 0x40, 0x55, 0x55, 0x55, 0x55, 0x05,
 | 
			
		||||
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
 | 
			
		||||
							
								
								
									
										242
									
								
								xmbattery/src/main.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										242
									
								
								xmbattery/src/main.c
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,242 @@
 | 
			
		||||
/* C99 */
 | 
			
		||||
 | 
			
		||||
#define _XOPEN_SOURCE
 | 
			
		||||
#include <Xm/Xm.h>
 | 
			
		||||
#include <Xm/Scale.h>
 | 
			
		||||
#include <Xm/LabelG.h>
 | 
			
		||||
#include <Xm/PushB.h>
 | 
			
		||||
#include <Xm/MessageB.h>
 | 
			
		||||
#include <Xm/RowColumn.h>
 | 
			
		||||
#include <Xm/Separator.h>
 | 
			
		||||
#include <Xmd/Icon.h>
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#include <unistd.h>
 | 
			
		||||
#include <stdlib.h>
 | 
			
		||||
 | 
			
		||||
#include "icons/level0.xbm"
 | 
			
		||||
#include "icons/level1.xbm"
 | 
			
		||||
#include "icons/level2.xbm"
 | 
			
		||||
#include "icons/level3.xbm"
 | 
			
		||||
#include "icons/level4.xbm"
 | 
			
		||||
#include "icons/charging.xbm"
 | 
			
		||||
#include "icons/error.xbm"
 | 
			
		||||
#include "icons/not.xbm"
 | 
			
		||||
 | 
			
		||||
typedef enum {
 | 
			
		||||
	BatteryStateCharging,
 | 
			
		||||
	BatteryStateNotCharging,
 | 
			
		||||
	BatteryStateFull,
 | 
			
		||||
	BatteryStateDischarging,
 | 
			
		||||
	BatteryStateError
 | 
			
		||||
} BatteryState;
 | 
			
		||||
 | 
			
		||||
typedef struct {
 | 
			
		||||
	int          level;
 | 
			
		||||
	BatteryState state;
 | 
			
		||||
	int          hours;
 | 
			
		||||
	int          minutes;
 | 
			
		||||
	int          seconds;
 | 
			
		||||
} BatteryInfo;
 | 
			
		||||
 | 
			
		||||
BatteryInfo getBatteryInfo (void);
 | 
			
		||||
Pixmap      selectBatteryIcon (BatteryInfo);
 | 
			
		||||
void        loadAllPixmaps (Widget);
 | 
			
		||||
void        batteryPoll (XtPointer, XtIntervalId *);
 | 
			
		||||
void        resetBatteryPollTimeout(void);
 | 
			
		||||
void        batteryInfoDialog (Widget, XtPointer, XtPointer);
 | 
			
		||||
 | 
			
		||||
Pixmap levels[8] = { 0 };
 | 
			
		||||
XtAppContext application;
 | 
			
		||||
Widget icon;
 | 
			
		||||
Widget text;
 | 
			
		||||
Widget layout;
 | 
			
		||||
Widget window;
 | 
			
		||||
 | 
			
		||||
int main (int argc, char *argv[]) {
 | 
			
		||||
	window = XtVaAppInitialize (
 | 
			
		||||
		&application, "Battery",
 | 
			
		||||
		NULL, 0,
 | 
			
		||||
		&argc, argv,
 | 
			
		||||
		NULL,
 | 
			
		||||
		XmNtitle, "Battery",
 | 
			
		||||
		NULL);
 | 
			
		||||
	
 | 
			
		||||
	layout = XtVaCreateWidget (
 | 
			
		||||
		"layout", xmRowColumnWidgetClass, window,
 | 
			
		||||
		XmNorientation, XmHORIZONTAL,
 | 
			
		||||
		NULL);
 | 
			
		||||
	
 | 
			
		||||
	loadAllPixmaps(layout);
 | 
			
		||||
	icon = XtVaCreateManagedWidget (
 | 
			
		||||
		"batteryIcon", xmPushButtonWidgetClass, layout,
 | 
			
		||||
		XmNleftAttachment,  XmATTACH_FORM,
 | 
			
		||||
		XmNlabelType,       XmPIXMAP,
 | 
			
		||||
		NULL);
 | 
			
		||||
	XtAddCallback(icon, XmNactivateCallback, batteryInfoDialog, NULL);
 | 
			
		||||
	
 | 
			
		||||
	XtVaCreateManagedWidget (
 | 
			
		||||
		"separator", xmSeparatorWidgetClass, layout,
 | 
			
		||||
		XmNorientation, XmVERTICAL,
 | 
			
		||||
		NULL);
 | 
			
		||||
	
 | 
			
		||||
	text = XtVaCreateManagedWidget (
 | 
			
		||||
		"text", xmLabelGadgetClass, layout,
 | 
			
		||||
		XmNalignment,       XmALIGNMENT_CENTER,
 | 
			
		||||
		NULL);
 | 
			
		||||
		
 | 
			
		||||
	batteryPoll(NULL, NULL);
 | 
			
		||||
 | 
			
		||||
	XtManageChild(layout);
 | 
			
		||||
	XtRealizeWidget(window);
 | 
			
		||||
	XtAppMainLoop(application);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
BatteryInfo getBatteryInfo (void) {
 | 
			
		||||
	BatteryInfo result = { 0 };
 | 
			
		||||
	char charging[16]  = { 0 };
 | 
			
		||||
	int battery;
 | 
			
		||||
 | 
			
		||||
	FILE *stream = popen("acpi -b", "r");
 | 
			
		||||
	if (stream == NULL) {
 | 
			
		||||
		result.state = BatteryStateError;
 | 
			
		||||
		return result;
 | 
			
		||||
	}
 | 
			
		||||
	fscanf (
 | 
			
		||||
		stream, "Battery %d: %16s %d%%, %d:%d:%d",
 | 
			
		||||
		&battery, charging, &result.level,
 | 
			
		||||
		&result.hours, &result.minutes, &result.seconds);
 | 
			
		||||
	
 | 
			
		||||
	switch (charging[0]) {
 | 
			
		||||
	case 'C': result.state = BatteryStateCharging;    break;
 | 
			
		||||
	case 'N': result.state = BatteryStateNotCharging; break;
 | 
			
		||||
	case 'D': result.state = BatteryStateDischarging; break;
 | 
			
		||||
	case 'F': result.state = BatteryStateFull;        break;
 | 
			
		||||
	default: result.state = BatteryStateError;        break;
 | 
			
		||||
	}
 | 
			
		||||
	if (pclose(stream) != 0) {
 | 
			
		||||
		result.state = BatteryStateError;
 | 
			
		||||
	}
 | 
			
		||||
	return result;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Pixmap selectBatteryIcon (BatteryInfo info) {
 | 
			
		||||
	if (info.state == BatteryStateCharging) {
 | 
			
		||||
		return levels[5];
 | 
			
		||||
	} else if (info.state == BatteryStateNotCharging) {
 | 
			
		||||
		return levels[7];
 | 
			
		||||
	} else if (info.state == BatteryStateError) {
 | 
			
		||||
		return levels[6];
 | 
			
		||||
	} else if (info.level < 15) {
 | 
			
		||||
		return levels[0];
 | 
			
		||||
	} else if (info.level < 35) {
 | 
			
		||||
		return levels[1];
 | 
			
		||||
	} else if (info.level < 65) {
 | 
			
		||||
		return levels[2];
 | 
			
		||||
	} else if (info.level < 85) {
 | 
			
		||||
		return levels[3];
 | 
			
		||||
	} else {
 | 
			
		||||
		return levels[4];
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void loadAllPixmaps (Widget widget) {
 | 
			
		||||
	levels[0] = XmdLoadBitmapIcon(widget, level0);
 | 
			
		||||
	levels[1] = XmdLoadBitmapIcon(widget, level1);
 | 
			
		||||
	levels[2] = XmdLoadBitmapIcon(widget, level2);
 | 
			
		||||
	levels[3] = XmdLoadBitmapIcon(widget, level3);
 | 
			
		||||
	levels[4] = XmdLoadBitmapIcon(widget, level4);
 | 
			
		||||
	levels[5] = XmdLoadBitmapIcon(widget, charging);
 | 
			
		||||
	levels[6] = XmdLoadBitmapIcon(widget, error);
 | 
			
		||||
	levels[7] = XmdLoadBitmapIcon(widget, not);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void batteryPoll (XtPointer clientData, XtIntervalId *timer) {
 | 
			
		||||
	(void)(clientData);
 | 
			
		||||
	(void)(timer);
 | 
			
		||||
	BatteryInfo info = getBatteryInfo();
 | 
			
		||||
	
 | 
			
		||||
	XtVaSetValues (
 | 
			
		||||
		icon,
 | 
			
		||||
		XmNlabelType,   XmPIXMAP,
 | 
			
		||||
		XmNlabelPixmap, selectBatteryIcon(info),
 | 
			
		||||
		NULL);
 | 
			
		||||
	XtVaSetValues (
 | 
			
		||||
		window,
 | 
			
		||||
		XmNiconPixmap, selectBatteryIcon(info),
 | 
			
		||||
		NULL);
 | 
			
		||||
	
 | 
			
		||||
	#define BUFFER_LEN 32
 | 
			
		||||
	char buffer[BUFFER_LEN];
 | 
			
		||||
	snprintf(buffer, BUFFER_LEN, "%d%%", info.level);
 | 
			
		||||
	#undef BUFFER_LEN
 | 
			
		||||
	
 | 
			
		||||
	/* if we don't unmanage and then re-manage the child, the text flies to
 | 
			
		||||
	 * the top which is rather annoying. this little quirk bent me over and
 | 
			
		||||
	 * fucked me for hours. */
 | 
			
		||||
	XtUnmanageChild(text);
 | 
			
		||||
	XmString string = XmStringCreateLocalized(buffer);
 | 
			
		||||
	XtVaSetValues (
 | 
			
		||||
		text,
 | 
			
		||||
		XmNlabelString, string,
 | 
			
		||||
		NULL);
 | 
			
		||||
	XmStringFree(string);
 | 
			
		||||
	XtManageChild(text);
 | 
			
		||||
	
 | 
			
		||||
	resetBatteryPollTimeout();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void resetBatteryPollTimeout (void) {
 | 
			
		||||
	XtAppAddTimeOut(application, 2000, batteryPoll, NULL);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void batteryInfoDialog (Widget button, XtPointer clientData, XtPointer callData) {
 | 
			
		||||
	(void)(clientData);
 | 
			
		||||
	(void)(callData);
 | 
			
		||||
	
 | 
			
		||||
	BatteryInfo info = getBatteryInfo();
 | 
			
		||||
	
 | 
			
		||||
	static const char *states[] = {
 | 
			
		||||
		"Charging",
 | 
			
		||||
		"Full",
 | 
			
		||||
		"Discharging",
 | 
			
		||||
		"Error"
 | 
			
		||||
	};
 | 
			
		||||
	
 | 
			
		||||
	#define BUFFER_LEN 48
 | 
			
		||||
	char timeBuffer[BUFFER_LEN] = { 0 };
 | 
			
		||||
	switch (info.state) {
 | 
			
		||||
	case BatteryStateCharging:
 | 
			
		||||
		snprintf (
 | 
			
		||||
			timeBuffer, BUFFER_LEN, "\n%d:%02d:%02d until charged.",
 | 
			
		||||
			info.hours, info.minutes, info.seconds);
 | 
			
		||||
		break;
 | 
			
		||||
	case BatteryStateDischarging:
 | 
			
		||||
		snprintf (
 | 
			
		||||
			timeBuffer, BUFFER_LEN, "\n%d:%02d:%02d until empty.",
 | 
			
		||||
			info.hours, info.minutes, info.seconds);
 | 
			
		||||
		break;
 | 
			
		||||
	default:
 | 
			
		||||
	}
 | 
			
		||||
	#undef BUFFER_LEN
 | 
			
		||||
	#define BUFFER_LEN 128
 | 
			
		||||
	char messageBuffer[BUFFER_LEN];
 | 
			
		||||
	snprintf (
 | 
			
		||||
		messageBuffer, BUFFER_LEN, "%d%%, %s%s",
 | 
			
		||||
		info.level, states[info.state], timeBuffer);
 | 
			
		||||
	#undef BUFFER_LEN
 | 
			
		||||
 | 
			
		||||
	Arg args[5] = { 0 };
 | 
			
		||||
	int n = 0;
 | 
			
		||||
	XmString message = XmStringCreateLocalized(messageBuffer);
 | 
			
		||||
	XtSetArg(args[n], XmNmessageString, message); n ++;
 | 
			
		||||
	XmString title = XmStringCreateLocalized("Battery Status");
 | 
			
		||||
	XtSetArg(args[n], XmNdialogTitle, title); n ++;
 | 
			
		||||
	
 | 
			
		||||
	Widget dialog = XmCreateInformationDialog(button, "batteryInfo", args, n);
 | 
			
		||||
	
 | 
			
		||||
	XmStringFree(message);
 | 
			
		||||
	XmStringFree(title);
 | 
			
		||||
	
 | 
			
		||||
	XtManageChild(dialog);
 | 
			
		||||
	XtPopup(XtParent(dialog), XtGrabNone);
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										2
									
								
								xmbrightness/build.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										2
									
								
								xmbrightness/build.sh
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,2 @@
 | 
			
		||||
#!/bin/sh
 | 
			
		||||
../scripts/buildapp.sh xmbrightness "$@"
 | 
			
		||||
							
								
								
									
										86
									
								
								xmbrightness/src/main.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										86
									
								
								xmbrightness/src/main.c
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,86 @@
 | 
			
		||||
/* C99 */
 | 
			
		||||
 | 
			
		||||
#define _XOPEN_SOURCE
 | 
			
		||||
#include <Xm/Scale.h>
 | 
			
		||||
#include <Xm/Xm.h>
 | 
			
		||||
#include <Xm/MwmUtil.h>
 | 
			
		||||
#include <X11/Shell.h>
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#include <unistd.h>
 | 
			
		||||
#include <stdlib.h>
 | 
			
		||||
 | 
			
		||||
void valueChanged (Widget, XtPointer, XtPointer);
 | 
			
		||||
void setBrightness (int);
 | 
			
		||||
int  getBrightness ();
 | 
			
		||||
int  getMaxBrightness ();
 | 
			
		||||
 | 
			
		||||
int main (int argc, char *argv[]) {
 | 
			
		||||
	XtAppContext application;
 | 
			
		||||
	Widget window = XtVaAppInitialize (
 | 
			
		||||
		&application, "Brightness",
 | 
			
		||||
		NULL, 0,
 | 
			
		||||
		&argc, argv,
 | 
			
		||||
		NULL,
 | 
			
		||||
		XmNtitle, "Battery",
 | 
			
		||||
		NULL);
 | 
			
		||||
		
 | 
			
		||||
	int level   = getBrightness();
 | 
			
		||||
	int max     = getMaxBrightness();
 | 
			
		||||
	int percent =
 | 
			
		||||
		(float)(level) /
 | 
			
		||||
		(float)(max) * 100;
 | 
			
		||||
	
 | 
			
		||||
	Widget scale = XtVaCreateManagedWidget (
 | 
			
		||||
		"Brightness", xmScaleWidgetClass, window,
 | 
			
		||||
		XmNmaximum,   100,
 | 
			
		||||
		XmNminimum,   1,
 | 
			
		||||
		XmNvalue,     percent,
 | 
			
		||||
		NULL);
 | 
			
		||||
	XtAddCallback(scale, XmNvalueChangedCallback, valueChanged, NULL);
 | 
			
		||||
	
 | 
			
		||||
	XtVaSetValues(window, XmNmwmDecorations, MWM_DECOR_BORDER, NULL);
 | 
			
		||||
	XtVaSetValues(window, XmNmwmFunctions, MWM_FUNC_RESIZE, NULL);
 | 
			
		||||
 | 
			
		||||
	//XtVaSetValues(window, XtNheight, 400, NULL);
 | 
			
		||||
	//XtVaSetValues(window, XtNwidth, 400, NULL);
 | 
			
		||||
	
 | 
			
		||||
	XtRealizeWidget(window);
 | 
			
		||||
	XtAppMainLoop(application);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void valueChanged (Widget scale, XtPointer clientData, XtPointer callData) {
 | 
			
		||||
	(void)(scale);
 | 
			
		||||
	(void)(clientData);
 | 
			
		||||
	XmScaleCallbackStruct *event = (XmScaleCallbackStruct *)(callData);
 | 
			
		||||
	setBrightness(event->value);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void setBrightness (int level) {
 | 
			
		||||
	char command[32] = { 0 };
 | 
			
		||||
	snprintf(command, 32, "brightnessctl s %d%% -q", level);
 | 
			
		||||
	system(command);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int getBrightness () {
 | 
			
		||||
	FILE *stream = popen("brightnessctl g", "r");
 | 
			
		||||
	if (stream == NULL) {
 | 
			
		||||
		fprintf(stderr, "ERR could not get brightness\n");
 | 
			
		||||
		return 1;
 | 
			
		||||
	}
 | 
			
		||||
	int result = 1;
 | 
			
		||||
	fscanf(stream, "%d", &result);
 | 
			
		||||
	pclose(stream);
 | 
			
		||||
	return result;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int getMaxBrightness () {
 | 
			
		||||
	FILE *stream = popen("brightnessctl m", "r");
 | 
			
		||||
	if (stream == NULL) {
 | 
			
		||||
		fprintf(stderr, "ERR could not get brightness\n");
 | 
			
		||||
		return 1;
 | 
			
		||||
	}
 | 
			
		||||
	int result = 1;
 | 
			
		||||
	fscanf(stream, "%d", &result);
 | 
			
		||||
	pclose(stream);
 | 
			
		||||
	return result;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										2
									
								
								xmpanel/build.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										2
									
								
								xmpanel/build.sh
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,2 @@
 | 
			
		||||
#!/bin/sh
 | 
			
		||||
../scripts/buildapp.sh xmpanel "$@"
 | 
			
		||||
							
								
								
									
										27
									
								
								xmpanel/src/icons/appCalculator.xbm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								xmpanel/src/icons/appCalculator.xbm
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,27 @@
 | 
			
		||||
#define appCalculator_width 48
 | 
			
		||||
#define appCalculator_height 48
 | 
			
		||||
static unsigned char appCalculator_bits[] = {
 | 
			
		||||
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
   0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00,
 | 
			
		||||
   0x00, 0x03, 0x00, 0x00, 0xc0, 0x00, 0x00, 0xfb, 0xff, 0xff, 0xdf, 0x00,
 | 
			
		||||
   0x00, 0x13, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x5b, 0x62, 0x00, 0xd8, 0x00,
 | 
			
		||||
   0x00, 0x53, 0x4a, 0x00, 0xc8, 0x00, 0x00, 0xdb, 0x48, 0x05, 0xd8, 0x00,
 | 
			
		||||
   0x00, 0x13, 0x00, 0x00, 0xc8, 0x00, 0x00, 0xfb, 0xff, 0xff, 0xdf, 0x00,
 | 
			
		||||
   0x00, 0x03, 0x00, 0x00, 0xc0, 0x00, 0x00, 0xfb, 0xff, 0xff, 0xdf, 0x00,
 | 
			
		||||
   0x00, 0x13, 0x42, 0x48, 0xc8, 0x00, 0x00, 0x1b, 0x42, 0x78, 0xd8, 0x00,
 | 
			
		||||
   0x00, 0x13, 0x42, 0x48, 0xc8, 0x00, 0x00, 0x1b, 0x42, 0x78, 0xd8, 0x00,
 | 
			
		||||
   0x00, 0x13, 0x42, 0x48, 0xc8, 0x00, 0x00, 0xfb, 0xff, 0xff, 0xdf, 0x00,
 | 
			
		||||
   0x00, 0xf3, 0xff, 0xcf, 0xcf, 0x00, 0x00, 0x1b, 0x42, 0x78, 0xd8, 0x00,
 | 
			
		||||
   0x00, 0x13, 0x42, 0x48, 0xc8, 0x00, 0x00, 0x1b, 0x42, 0x78, 0xd8, 0x00,
 | 
			
		||||
   0x00, 0x13, 0x42, 0x48, 0xc8, 0x00, 0x00, 0x1b, 0x42, 0x78, 0xd8, 0x00,
 | 
			
		||||
   0x00, 0xf3, 0xff, 0xcf, 0xcf, 0x00, 0x00, 0xfb, 0xff, 0xff, 0xdf, 0x00,
 | 
			
		||||
   0x00, 0x13, 0x42, 0x48, 0xc8, 0x00, 0x00, 0x1b, 0x42, 0x78, 0xd8, 0x00,
 | 
			
		||||
   0x00, 0x13, 0x42, 0x48, 0xc8, 0x00, 0x00, 0x1b, 0x42, 0x78, 0xd8, 0x00,
 | 
			
		||||
   0x00, 0x13, 0x42, 0x48, 0xc8, 0x00, 0x00, 0xfb, 0xff, 0xff, 0xdf, 0x00,
 | 
			
		||||
   0x00, 0xf3, 0xff, 0xcf, 0xcf, 0x00, 0x00, 0x1b, 0x42, 0x78, 0xd8, 0x00,
 | 
			
		||||
   0x00, 0x13, 0x42, 0x48, 0xc8, 0x00, 0x00, 0x1b, 0x42, 0x78, 0xd8, 0x00,
 | 
			
		||||
   0x00, 0x13, 0x42, 0x48, 0xc8, 0x00, 0x00, 0x1b, 0x42, 0x78, 0xd8, 0x00,
 | 
			
		||||
   0x00, 0xf3, 0xff, 0xcf, 0xcf, 0x00, 0x00, 0xfb, 0xff, 0xff, 0xdf, 0x00,
 | 
			
		||||
   0x00, 0x03, 0x00, 0x00, 0xc0, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00,
 | 
			
		||||
   0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00,
 | 
			
		||||
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
 | 
			
		||||
							
								
								
									
										27
									
								
								xmpanel/src/icons/appEditor.xbm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								xmpanel/src/icons/appEditor.xbm
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,27 @@
 | 
			
		||||
#define appEditor_width 48
 | 
			
		||||
#define appEditor_height 48
 | 
			
		||||
static unsigned char appEditor_bits[] = {
 | 
			
		||||
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
   0x80, 0xff, 0xff, 0xff, 0x01, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0x01,
 | 
			
		||||
   0x80, 0x01, 0x00, 0x00, 0x05, 0x01, 0x80, 0x01, 0x00, 0x00, 0x09, 0x01,
 | 
			
		||||
   0x80, 0x01, 0x00, 0x00, 0x11, 0x01, 0x80, 0xf1, 0x6f, 0x00, 0x21, 0x01,
 | 
			
		||||
   0x80, 0x01, 0x00, 0x00, 0x7f, 0x01, 0x80, 0x71, 0x02, 0x00, 0xfe, 0x01,
 | 
			
		||||
   0x80, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x80, 0x91, 0x3f, 0x0f, 0xc0, 0x01,
 | 
			
		||||
   0x80, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x80, 0xf1, 0xdc, 0x7b, 0xc0, 0x01,
 | 
			
		||||
   0x80, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x80, 0xf1, 0x8f, 0xff, 0xc7, 0x01,
 | 
			
		||||
   0x80, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x80, 0x01, 0x00, 0x00, 0xc0, 0x01,
 | 
			
		||||
   0x80, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x80, 0x01, 0x00, 0x00, 0xc0, 0x01,
 | 
			
		||||
   0x80, 0x71, 0x07, 0x00, 0xc0, 0x01, 0x80, 0x81, 0x00, 0x00, 0xc0, 0x01,
 | 
			
		||||
   0x80, 0x81, 0x00, 0x00, 0xc0, 0x01, 0x80, 0x81, 0x00, 0x00, 0xc0, 0x01,
 | 
			
		||||
   0x80, 0x81, 0x00, 0x00, 0xc0, 0x01, 0x80, 0x81, 0x00, 0x00, 0xc0, 0x01,
 | 
			
		||||
   0x80, 0x81, 0x00, 0x00, 0xc0, 0x01, 0x80, 0x81, 0x00, 0x00, 0xc0, 0x01,
 | 
			
		||||
   0x80, 0x81, 0x00, 0x00, 0xc0, 0x01, 0x80, 0x81, 0x00, 0x00, 0xc0, 0x01,
 | 
			
		||||
   0x80, 0x81, 0x00, 0x00, 0xc0, 0x01, 0x80, 0x81, 0x00, 0x00, 0xc0, 0x01,
 | 
			
		||||
   0x80, 0x71, 0x07, 0x00, 0xc0, 0x01, 0x80, 0x01, 0x00, 0x00, 0xc0, 0x01,
 | 
			
		||||
   0x80, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x80, 0x01, 0x00, 0x00, 0xc0, 0x01,
 | 
			
		||||
   0x80, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x80, 0x01, 0x00, 0x00, 0xc0, 0x01,
 | 
			
		||||
   0x80, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x80, 0x01, 0x00, 0x00, 0xc0, 0x01,
 | 
			
		||||
   0x80, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x80, 0x01, 0x00, 0x00, 0xc0, 0x01,
 | 
			
		||||
   0x80, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x80, 0xff, 0xff, 0xff, 0xff, 0x01,
 | 
			
		||||
   0x80, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0xff, 0xff, 0xff, 0xff, 0x01,
 | 
			
		||||
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
 | 
			
		||||
							
								
								
									
										27
									
								
								xmpanel/src/icons/appFiles.xbm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								xmpanel/src/icons/appFiles.xbm
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,27 @@
 | 
			
		||||
#define appFiles_width 48
 | 
			
		||||
#define appFiles_height 48
 | 
			
		||||
static unsigned char appFiles_bits[] = {
 | 
			
		||||
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
   0x00, 0xfe, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xfe, 0xff, 0xff, 0x7f, 0x00,
 | 
			
		||||
   0x00, 0x06, 0x00, 0x00, 0x60, 0x00, 0x00, 0xf6, 0xff, 0xff, 0x6f, 0x00,
 | 
			
		||||
   0x00, 0x16, 0x00, 0x00, 0x68, 0x00, 0x00, 0x56, 0x00, 0x00, 0x6a, 0x00,
 | 
			
		||||
   0x00, 0x16, 0x00, 0x00, 0x68, 0x00, 0x00, 0x16, 0x00, 0x00, 0x68, 0x00,
 | 
			
		||||
   0x00, 0x16, 0x00, 0x00, 0x68, 0x00, 0x00, 0x16, 0xf8, 0x1f, 0x68, 0x00,
 | 
			
		||||
   0x00, 0x16, 0x08, 0x10, 0x68, 0x00, 0x00, 0x16, 0x08, 0x10, 0x68, 0x00,
 | 
			
		||||
   0x00, 0x16, 0xf8, 0x1f, 0x68, 0x00, 0x00, 0x16, 0x00, 0x00, 0x68, 0x00,
 | 
			
		||||
   0x00, 0x16, 0x08, 0x10, 0x68, 0x00, 0x00, 0x16, 0xf8, 0x1f, 0x68, 0x00,
 | 
			
		||||
   0x00, 0x16, 0x00, 0x00, 0x68, 0x00, 0x00, 0x16, 0x00, 0x00, 0x68, 0x00,
 | 
			
		||||
   0x00, 0x56, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x16, 0x00, 0x00, 0x68, 0x00,
 | 
			
		||||
   0x00, 0xf6, 0xff, 0xff, 0x6f, 0x00, 0x00, 0x06, 0x00, 0x00, 0x60, 0x00,
 | 
			
		||||
   0x00, 0xf6, 0xff, 0xff, 0x6f, 0x00, 0x00, 0x36, 0x00, 0x00, 0x6c, 0x00,
 | 
			
		||||
   0x00, 0xf6, 0xff, 0xff, 0x6f, 0x00, 0x00, 0x36, 0x00, 0x00, 0x6c, 0x00,
 | 
			
		||||
   0x00, 0xf6, 0xff, 0xff, 0x6f, 0x00, 0x00, 0x16, 0x00, 0x00, 0x68, 0x00,
 | 
			
		||||
   0x00, 0x56, 0x00, 0x00, 0x6a, 0x00, 0x00, 0x16, 0x00, 0x00, 0x68, 0x00,
 | 
			
		||||
   0x00, 0x16, 0x00, 0x00, 0x68, 0x00, 0x00, 0x16, 0x00, 0x00, 0x68, 0x00,
 | 
			
		||||
   0x00, 0x16, 0xf8, 0x1f, 0x68, 0x00, 0x00, 0x16, 0x08, 0x10, 0x68, 0x00,
 | 
			
		||||
   0x00, 0x16, 0x08, 0x10, 0x68, 0x00, 0x00, 0x16, 0xf8, 0x1f, 0x68, 0x00,
 | 
			
		||||
   0x00, 0x16, 0x00, 0x00, 0x68, 0x00, 0x00, 0x16, 0x08, 0x10, 0x68, 0x00,
 | 
			
		||||
   0x00, 0x16, 0xf8, 0x1f, 0x68, 0x00, 0x00, 0x16, 0x00, 0x00, 0x68, 0x00,
 | 
			
		||||
   0x00, 0x16, 0x00, 0x00, 0x68, 0x00, 0x00, 0x56, 0x00, 0x00, 0x6a, 0x00,
 | 
			
		||||
   0x00, 0x1e, 0x00, 0x00, 0x78, 0x00, 0x00, 0xfe, 0xff, 0xff, 0x7f, 0x00,
 | 
			
		||||
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
 | 
			
		||||
							
								
								
									
										27
									
								
								xmpanel/src/icons/appMail.xbm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								xmpanel/src/icons/appMail.xbm
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,27 @@
 | 
			
		||||
#define appMail_width 48
 | 
			
		||||
#define appMail_height 48
 | 
			
		||||
static unsigned char appMail_bits[] = {
 | 
			
		||||
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
   0xfc, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x3f,
 | 
			
		||||
   0x1c, 0x00, 0x00, 0x00, 0x00, 0x38, 0x2c, 0x00, 0x00, 0x50, 0x55, 0x34,
 | 
			
		||||
   0x4c, 0x00, 0x00, 0xa8, 0x00, 0x32, 0x8c, 0x00, 0x00, 0x00, 0x44, 0x31,
 | 
			
		||||
   0x0c, 0x01, 0x00, 0x50, 0x81, 0x30, 0x0c, 0x02, 0x00, 0xa8, 0x54, 0x30,
 | 
			
		||||
   0x0c, 0x04, 0x00, 0x00, 0x20, 0x30, 0x0c, 0x08, 0x00, 0x00, 0x10, 0x30,
 | 
			
		||||
   0x0c, 0x10, 0x00, 0x00, 0x08, 0x30, 0x0c, 0x20, 0x00, 0x00, 0x04, 0x30,
 | 
			
		||||
   0x0c, 0x40, 0x00, 0x00, 0x02, 0x30, 0x0c, 0x80, 0x00, 0x00, 0x01, 0x30,
 | 
			
		||||
   0x0c, 0x00, 0x01, 0x80, 0x00, 0x30, 0x0c, 0x00, 0x02, 0x40, 0x00, 0x30,
 | 
			
		||||
   0x0c, 0x00, 0x06, 0x60, 0x00, 0x30, 0x0c, 0x00, 0x09, 0x90, 0x00, 0x30,
 | 
			
		||||
   0x0c, 0x80, 0x10, 0x08, 0x01, 0x30, 0x0c, 0x40, 0x20, 0x04, 0x02, 0x30,
 | 
			
		||||
   0x0c, 0x20, 0x40, 0x02, 0x04, 0x30, 0x0c, 0x10, 0x80, 0x01, 0x08, 0x30,
 | 
			
		||||
   0x0c, 0x08, 0x00, 0x00, 0x10, 0x30, 0x0c, 0x04, 0x00, 0x00, 0x20, 0x30,
 | 
			
		||||
   0x0c, 0x02, 0x00, 0x00, 0x40, 0x30, 0x0c, 0x01, 0x00, 0x00, 0x80, 0x30,
 | 
			
		||||
   0x8c, 0x00, 0x00, 0x00, 0x00, 0x31, 0x4c, 0x00, 0x00, 0x00, 0x00, 0x32,
 | 
			
		||||
   0x2c, 0x00, 0x00, 0x00, 0x00, 0x34, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x38,
 | 
			
		||||
   0xfc, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x3f,
 | 
			
		||||
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
 | 
			
		||||
							
								
								
									
										27
									
								
								xmpanel/src/icons/appTerminal.xbm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								xmpanel/src/icons/appTerminal.xbm
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,27 @@
 | 
			
		||||
#define appTerminal_width 48
 | 
			
		||||
#define appTerminal_height 48
 | 
			
		||||
static unsigned char appTerminal_bits[] = {
 | 
			
		||||
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
   0xc0, 0xff, 0xff, 0xff, 0xff, 0x01, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x03,
 | 
			
		||||
   0x60, 0x00, 0x00, 0x00, 0x00, 0x03, 0x60, 0x00, 0x00, 0x00, 0x00, 0x03,
 | 
			
		||||
   0x60, 0xfe, 0xff, 0xff, 0x3f, 0x03, 0x60, 0xfe, 0xff, 0xff, 0x3f, 0x03,
 | 
			
		||||
   0x60, 0xfe, 0xff, 0xff, 0x3f, 0x03, 0x60, 0x0e, 0xfd, 0xff, 0x3f, 0x03,
 | 
			
		||||
   0x60, 0xfe, 0xff, 0xff, 0x3f, 0x03, 0x60, 0x0e, 0x80, 0xf2, 0x3f, 0x03,
 | 
			
		||||
   0x60, 0xfe, 0xff, 0xff, 0x3f, 0x03, 0x60, 0x0e, 0xfd, 0xff, 0x3f, 0x03,
 | 
			
		||||
   0x60, 0xfe, 0xff, 0xff, 0x3f, 0x03, 0x60, 0x0e, 0xf0, 0xff, 0x3f, 0x03,
 | 
			
		||||
   0x60, 0xfe, 0xff, 0xff, 0x3f, 0x03, 0x60, 0xfe, 0xff, 0xff, 0x3f, 0x03,
 | 
			
		||||
   0x60, 0xfe, 0xff, 0xff, 0x3f, 0x03, 0x60, 0xfe, 0xff, 0xff, 0x3f, 0x03,
 | 
			
		||||
   0x60, 0xfe, 0xff, 0xff, 0x3f, 0x03, 0x60, 0xfe, 0xff, 0xff, 0x3f, 0x03,
 | 
			
		||||
   0x60, 0xfe, 0xff, 0xff, 0x3f, 0x03, 0x60, 0xfe, 0xff, 0xff, 0x3f, 0x03,
 | 
			
		||||
   0x60, 0xfe, 0xff, 0xff, 0x3f, 0x03, 0x60, 0xfe, 0xff, 0xff, 0x3f, 0x03,
 | 
			
		||||
   0x60, 0x00, 0x00, 0x00, 0x00, 0x03, 0x60, 0x00, 0x00, 0x00, 0x00, 0x03,
 | 
			
		||||
   0x60, 0x00, 0x00, 0x00, 0x33, 0x03, 0x60, 0x00, 0x00, 0x00, 0x00, 0x03,
 | 
			
		||||
   0xe0, 0xff, 0xff, 0xff, 0xff, 0x03, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x01,
 | 
			
		||||
   0x00, 0x00, 0x03, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x03, 0xc0, 0x00, 0x00,
 | 
			
		||||
   0xc0, 0xff, 0xff, 0xff, 0xff, 0x01, 0x60, 0x00, 0x00, 0x00, 0x00, 0x03,
 | 
			
		||||
   0x30, 0x00, 0x00, 0x00, 0x00, 0x06, 0x18, 0x00, 0x00, 0x00, 0x00, 0x0c,
 | 
			
		||||
   0x0c, 0xc0, 0xff, 0xff, 0x03, 0x18, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x1f,
 | 
			
		||||
   0x0c, 0x00, 0x00, 0x00, 0x00, 0x18, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x1f,
 | 
			
		||||
   0xfc, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
 | 
			
		||||
							
								
								
									
										27
									
								
								xmpanel/src/icons/appWebBrowser.xbm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								xmpanel/src/icons/appWebBrowser.xbm
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,27 @@
 | 
			
		||||
#define appWebBrowser_width 48
 | 
			
		||||
#define appWebBrowser_height 48
 | 
			
		||||
static unsigned char appWebBrowser_bits[] = {
 | 
			
		||||
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
   0x00, 0x00, 0xf8, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
 | 
			
		||||
   0x00, 0xe0, 0x07, 0xe0, 0x07, 0x00, 0x00, 0xf0, 0x18, 0x1c, 0x0f, 0x00,
 | 
			
		||||
   0x00, 0xfc, 0xff, 0xfc, 0x3f, 0x00, 0x00, 0x0e, 0x80, 0x07, 0x70, 0x00,
 | 
			
		||||
   0x00, 0xff, 0xff, 0xff, 0xef, 0x00, 0x80, 0xf3, 0x00, 0x00, 0xc6, 0x01,
 | 
			
		||||
   0xc0, 0x01, 0xff, 0xff, 0x81, 0x03, 0xc0, 0x00, 0x38, 0x10, 0x00, 0x03,
 | 
			
		||||
   0x60, 0x00, 0xfc, 0x3f, 0x00, 0x06, 0x70, 0x00, 0x04, 0xc0, 0x00, 0x0e,
 | 
			
		||||
   0x30, 0x00, 0xf8, 0xff, 0x03, 0x0c, 0x30, 0x00, 0x10, 0x00, 0x0e, 0x0c,
 | 
			
		||||
   0x18, 0x00, 0xf0, 0xff, 0x0f, 0x18, 0x18, 0x00, 0x20, 0x00, 0x0e, 0x18,
 | 
			
		||||
   0x18, 0x00, 0xff, 0xff, 0x01, 0x18, 0x0c, 0xff, 0x01, 0x00, 0x01, 0x30,
 | 
			
		||||
   0x0c, 0xff, 0xff, 0xff, 0x07, 0x30, 0x0c, 0x01, 0x00, 0x00, 0x02, 0x30,
 | 
			
		||||
   0x8c, 0xff, 0xff, 0xff, 0xa1, 0x3f, 0x8c, 0x00, 0x00, 0x18, 0xc0, 0x31,
 | 
			
		||||
   0x8c, 0xff, 0xff, 0x0f, 0x00, 0x37, 0x9c, 0x00, 0x00, 0xc8, 0xff, 0x30,
 | 
			
		||||
   0xac, 0xff, 0xff, 0xcf, 0xff, 0x31, 0x2c, 0x04, 0x00, 0xc8, 0x80, 0x23,
 | 
			
		||||
   0x1c, 0xf8, 0xff, 0xcf, 0x80, 0x06, 0x18, 0x10, 0x00, 0xc8, 0x9c, 0x0c,
 | 
			
		||||
   0x18, 0xf0, 0xff, 0xdf, 0x80, 0x18, 0x18, 0x10, 0x00, 0xd0, 0x84, 0x3f,
 | 
			
		||||
   0x30, 0xf0, 0xff, 0xdf, 0x00, 0x3f, 0x30, 0x10, 0x00, 0xd0, 0x1c, 0x30,
 | 
			
		||||
   0x70, 0xf0, 0xff, 0xdf, 0x00, 0x30, 0x60, 0x10, 0x00, 0xd0, 0x7c, 0x33,
 | 
			
		||||
   0xc0, 0xf0, 0xff, 0xdf, 0x00, 0x30, 0xc0, 0x11, 0x00, 0xd0, 0x00, 0x30,
 | 
			
		||||
   0x80, 0xf3, 0xff, 0xdf, 0x00, 0x30, 0x00, 0x37, 0x00, 0xd3, 0x00, 0x30,
 | 
			
		||||
   0x00, 0xee, 0xff, 0xdd, 0x00, 0x30, 0x00, 0x3c, 0xf8, 0xd8, 0x00, 0x30,
 | 
			
		||||
   0x00, 0xf0, 0x0f, 0xc0, 0x00, 0x30, 0x00, 0xe0, 0x07, 0xc0, 0x00, 0x30,
 | 
			
		||||
   0x00, 0x00, 0xff, 0xcf, 0xff, 0x3f, 0x00, 0x00, 0xf8, 0xcf, 0xff, 0x3f,
 | 
			
		||||
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
 | 
			
		||||
							
								
								
									
										75
									
								
								xmpanel/src/main.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										75
									
								
								xmpanel/src/main.c
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,75 @@
 | 
			
		||||
#define _XOPEN_SOURCE
 | 
			
		||||
#include <Xm/Xm.h>
 | 
			
		||||
#include <Xm/RowColumn.h>
 | 
			
		||||
#include <Xm/PushB.h>
 | 
			
		||||
#include <Xmd/Icon.h>
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#include <unistd.h>
 | 
			
		||||
#include <stdlib.h>
 | 
			
		||||
 | 
			
		||||
#include "icons/appCalculator.xbm"
 | 
			
		||||
#include "icons/appEditor.xbm"
 | 
			
		||||
#include "icons/appFiles.xbm"
 | 
			
		||||
#include "icons/appMail.xbm"
 | 
			
		||||
#include "icons/appTerminal.xbm"
 | 
			
		||||
#include "icons/appWebBrowser.xbm"
 | 
			
		||||
 | 
			
		||||
typedef struct {
 | 
			
		||||
	Pixmap icon;
 | 
			
		||||
	const char * command;
 | 
			
		||||
} Launcher;
 | 
			
		||||
 | 
			
		||||
void   createAllLaunchers (Widget);
 | 
			
		||||
Widget createLauncher (Widget, Launcher);
 | 
			
		||||
void   activateLauncher (Widget, XtPointer, XtPointer);
 | 
			
		||||
 | 
			
		||||
XtAppContext application;
 | 
			
		||||
 | 
			
		||||
int main (int argc, char *argv[]) {
 | 
			
		||||
	Widget window = XtVaAppInitialize (
 | 
			
		||||
		&application, "Panel",
 | 
			
		||||
		NULL, 0,
 | 
			
		||||
		&argc, argv,
 | 
			
		||||
		NULL, NULL);
 | 
			
		||||
		
 | 
			
		||||
	Widget layout = XtVaCreateWidget (
 | 
			
		||||
		"layout", xmRowColumnWidgetClass, window,
 | 
			
		||||
		XmNorientation, XmHORIZONTAL,
 | 
			
		||||
		NULL);
 | 
			
		||||
	createAllLaunchers(layout);
 | 
			
		||||
	
 | 
			
		||||
	XtManageChild(layout);
 | 
			
		||||
	XtRealizeWidget(window);
 | 
			
		||||
	XtAppMainLoop(application);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void createAllLaunchers (Widget parent) {
 | 
			
		||||
	#define add(name, cmd) createLauncher(parent, (Launcher){\
 | 
			
		||||
		.icon = XmdLoadBitmapIcon(parent, app##name),\
 | 
			
		||||
		.command = cmd " &"\
 | 
			
		||||
	} );
 | 
			
		||||
	add(Calculator, "xcalc");
 | 
			
		||||
	add(Editor, "nedit");
 | 
			
		||||
	add(Files, "caja");
 | 
			
		||||
	add(Mail, "nedit");
 | 
			
		||||
	add(Terminal, "xterm");
 | 
			
		||||
	add(WebBrowser, "firefox");
 | 
			
		||||
	#undef add
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Widget createLauncher (Widget parent, Launcher launcher) {
 | 
			
		||||
	Widget button = XtVaCreateManagedWidget (
 | 
			
		||||
		"launcher", xmPushButtonWidgetClass, parent,
 | 
			
		||||
		XmNleftAttachment, XmATTACH_FORM,
 | 
			
		||||
		XmNlabelType,      XmPIXMAP,
 | 
			
		||||
		XmNlabelPixmap,    launcher.icon,
 | 
			
		||||
		NULL);
 | 
			
		||||
	XtAddCallback(button, XmNactivateCallback, activateLauncher, (XtPointer)(launcher.command));
 | 
			
		||||
	return button;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void activateLauncher (Widget button, XtPointer clientData, XtPointer callData) {
 | 
			
		||||
	(void)(button);
 | 
			
		||||
	(void)(callData);
 | 
			
		||||
	system((char *)(clientData));
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user