├── demo.png
├── icons
├── icons.png
├── README.md
├── Makefile
├── winicon16x16.xpm
├── winicon32x32.xpm
├── winicon48x48.xpm
├── winicon16x16.abgr
├── x.xpm
├── file.xpm
├── folder.xpm
├── file-code.xpm
├── file-gear.xpm
├── file-text.xpm
├── folder-up.xpm
├── file-archive.xpm
├── file-config.xpm
├── file-object.xpm
├── winicon64x64.xpm
├── file-info.xpm
├── file-audio.xpm
├── file-video.xpm
├── file-broken.xpm
├── folder-code.xpm
├── folder-gear.xpm
├── folder-db.xpm
├── folder-mount.xpm
├── folder-video.xpm
├── folder-download.xpm
├── folder-link.xpm
├── folder-mail.xpm
├── folder-music.xpm
├── folder-book.xpm
├── folder-apps.xpm
├── folder-trash.xpm
├── file-app.xpm
├── file-core.xpm
├── folder-game.xpm
├── folder-home.xpm
└── folder-meme.xpm
├── control
├── font.h
├── selection.h
├── dragndrop.h
├── ctrlfnt.3
├── icccm.txt
└── selection.c
├── examples
├── Xresources
├── xfilesthumb
└── xfilesctl
├── util.h
├── LICENSE
├── icons.h
├── widget.h
├── util.c
├── Makefile
├── README
└── icons.c
/demo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phillbush/xfiles/HEAD/demo.png
--------------------------------------------------------------------------------
/icons/icons.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/phillbush/xfiles/HEAD/icons/icons.png
--------------------------------------------------------------------------------
/icons/README.md:
--------------------------------------------------------------------------------
1 | # Default Icons for XFiles
2 |
3 |
4 |
5 |
6 |
7 | This directory includes a few icons that are loaded into XFiles at
8 | compile time.
9 |
10 | These icons are in public domain (CC0) and were drawn using GIMP.
11 |
--------------------------------------------------------------------------------
/icons/Makefile:
--------------------------------------------------------------------------------
1 | .SUFFIXES: .xpm .abgr
2 |
3 | # Convert XPM images into ARGB raw images. Requires Imagemagick and
4 | # hexdump. You need not run this. The source code is released with
5 | # the converted files included.
6 | .xpm.abgr:
7 | { \
8 | printf 'unsigned long %s[] = {\n' "$<" | \
9 | sed 's,icons/,,;s,.xpm,,' ; \
10 | convert $< -color-matrix '0 0 1 0, 0 1 0 0, 1 0 0 0, 0 0 0 1' RGBA:- | \
11 | hexdump -v -e '1/4 "0x%08x,\n"' ; \
12 | printf '};\n' ; \
13 | } >$@
14 |
--------------------------------------------------------------------------------
/icons/winicon16x16.xpm:
--------------------------------------------------------------------------------
1 | /* XPM */
2 | static char * winicon16x16_xpm[] = {
3 | "16 16 6 1",
4 | " c None",
5 | ". c #C4A000",
6 | "+ c #000000",
7 | "@ c #EDD400",
8 | "# c #EEEEEC",
9 | "$ c #FCE94F",
10 | " ",
11 | " ",
12 | " ......+ ",
13 | " .@@@@@@.+ ",
14 | "..######....... ",
15 | ".$......$$$$$$.+",
16 | ".$$$$$$$$@@@.@.+",
17 | ".$@$@$@$@@@@@@.+",
18 | ".$$@$@@@@@.@.@.+",
19 | ".$@$@$@@@@@.@@.+",
20 | ".$$@@@@@.@.@.@.+",
21 | ".$@$@@@@@.@.@@.+",
22 | ".$@@@@@@@@@@@@.+",
23 | "...............+",
24 | "++++++++++++++++",
25 | " "};
26 |
--------------------------------------------------------------------------------
/control/font.h:
--------------------------------------------------------------------------------
1 | typedef struct CtrlFontSet CtrlFontSet;
2 |
3 | CtrlFontSet *
4 | ctrlfnt_open(
5 | Display *display,
6 | int screen,
7 | Visual *visual,
8 | Colormap colormap,
9 | const char *fontset_spec,
10 | double fontsize
11 | );
12 |
13 | int
14 | ctrlfnt_draw(
15 | CtrlFontSet *fontset,
16 | Picture picture,
17 | Picture src,
18 | XRectangle rect,
19 | const char *text,
20 | int nbytes
21 | );
22 |
23 | int ctrlfnt_width(CtrlFontSet *fontset, const char *text, int nbytes);
24 | int ctrlfnt_height(CtrlFontSet *fontset);
25 | void ctrlfnt_free(CtrlFontSet *fontset);
26 | void ctrlfnt_init(void);
27 | void ctrlfnt_term(void);
28 |
--------------------------------------------------------------------------------
/examples/Xresources:
--------------------------------------------------------------------------------
1 | ! Font
2 | XFiles.faceName: DejaVu Sans,Noto Sans CJK JP
3 | XFiles.faceSize: 12
4 |
5 | ! Plan 9 Acme colors
6 | XFiles.background: #FFFFAA
7 | XFiles.foreground: #000000
8 | XFiles.activeBackground: #AAFFFF
9 | XFiles.activeForeground: #000000
10 |
11 | ! Background transparency (requires X11 compositor)
12 | XFiles.opacity: 0.5
13 |
14 | ! Icons for XDG user directories
15 | XFiles.fileIcons: \n\
16 | *.c=code \n\
17 | *.h=code \n\
18 | ~/Documents/=documents_dir \n\
19 | ~/Download/=downloads_dir \n\
20 | ~/Memes/=meme_dir \n\
21 | ~/Music/=music_dir \n\
22 | ~/Pictures/=images_dir \n\
23 | ~/Videos/=videos_dir
24 |
--------------------------------------------------------------------------------
/examples/xfilesthumb:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | BACKGROUND="#0A0A0A"
4 | THUMBSIZE=64
5 | umask 077
6 |
7 | case "$#" in
8 | (2)
9 | ;;
10 | (*)
11 | printf "usage: %s file\n" "$0" >&2
12 | exit 1
13 | ;;
14 | esac
15 |
16 | case "$2" in
17 | (*/*)
18 | mkdir -p "${2%/*}"
19 | ;;
20 | (*)
21 | ;;
22 | esac
23 |
24 | case "${1##*.}" in
25 | png|jpg|jpeg|gif|xpm|xbm|ppm)
26 | convert "${1}[0]" -background "$BACKGROUND" -flatten \
27 | -define filename:literal=true -format ppm \
28 | -thumbnail "${THUMBSIZE}x${THUMBSIZE}" \
29 | "${2}"
30 | ;;
31 | webm|mp4|mkv|ogv)
32 | ffmpegthumbnailer -c png -i "${1}" -o - -s "${THUMBSIZE}" \
33 | | convert - -define filename:literal=true -format ppm \
34 | "${2}"
35 | ;;
36 | svg)
37 | rsvg-convert -h "${THUMBSIZE}" "${1}" \
38 | | convert - -format ppm "${2}"
39 | ;;
40 | pdf)
41 | pdftoppm -f 1 -l 1 -scale-to "${THUMBSIZE}" -singlefile \
42 | "${1}" "${2%.ppm}"
43 | ;;
44 | *)
45 | exit 1
46 | ;;
47 | esac 2>/dev/null
48 |
--------------------------------------------------------------------------------
/control/selection.h:
--------------------------------------------------------------------------------
1 | /*
2 | * ctrlsel: API to own/convert/transfer X11 selections
3 | * Refer to the accompanying manual for a description of the interface.
4 | */
5 | #ifndef _CTRLSEL_H_
6 | #define _CTRLSEL_H_
7 |
8 | #include
9 |
10 | ssize_t ctrlsel_request(
11 | Display *display,
12 | Time timestamp,
13 | Atom selection,
14 | Atom target,
15 | unsigned char **pbuf
16 | );
17 |
18 | ssize_t ctrlsel_gettargets(
19 | Display *display,
20 | Time timestamp,
21 | Atom selection,
22 | Atom **ptargets
23 | );
24 |
25 | Time ctrlsel_own(
26 | Display *display,
27 | Window owner,
28 | Time timestamp,
29 | Atom selection
30 | );
31 |
32 | int ctrlsel_answer(
33 | XEvent const *event,
34 | Time epoch,
35 | Atom const targets[],
36 | size_t ntargets,
37 | ssize_t (*callback)(void *, Atom, unsigned char **),
38 | void *arg
39 | );
40 |
41 | #endif /* _CTRLSEL_H_ */
42 |
--------------------------------------------------------------------------------
/util.h:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | #include
4 | #include
5 | #include
6 |
7 | #define LEN(a) (sizeof(a) / sizeof((a)[0]))
8 | #define FLAG(f, b) (((f) & (b)) == (b))
9 | #define RETURN_FAILURE (-1)
10 | #define RETURN_SUCCESS 0
11 |
12 | pid_t efork(void);
13 | int max(int x, int y);
14 | int min(int x, int y);
15 | int diff(int x, int y);
16 | int between(int x, int y, int x0, int y0, int w0, int h0);
17 | int escandir(const char *dirname, struct dirent ***namelist, int (*select)(const struct dirent *), int (*compar)(const struct dirent **, const struct dirent **));
18 | void *emalloc(size_t size);
19 | void *ecalloc(size_t nmemb, size_t size);
20 | char *estrdup(const char *s);
21 | void *erealloc(void *ptr, size_t size);
22 | void egetcwd(char *path, size_t size);
23 | void eexec(char *const argv[]);
24 | void etcreate(pthread_t *tid, void *(*thrfn)(void *), void *arg);
25 | void etjoin(pthread_t tid, void **rval);
26 | void etlock(pthread_mutex_t *mutex);
27 | void etunlock(pthread_mutex_t *mutex);
28 | int ewaitpid(pid_t pid);
29 | void eclose(int fd);
30 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT/X Consortium License
2 |
3 | © 2021-2024 Lucas de Sena
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a
6 | copy of this software and associated documentation files (the "Software"),
7 | to deal in the Software without restriction, including without limitation
8 | the rights to use, copy, modify, merge, publish, distribute, sublicense,
9 | and/or sell copies of the Software, and to permit persons to whom the
10 | Software is furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in
13 | all copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
18 | THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
20 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
21 | DEALINGS IN THE SOFTWARE.
22 |
--------------------------------------------------------------------------------
/icons/winicon32x32.xpm:
--------------------------------------------------------------------------------
1 | /* XPM */
2 | static char * winicon32x32_xpm[] = {
3 | "32 32 7 1",
4 | " c None",
5 | ". c #C4A000",
6 | "+ c #FCE94F",
7 | "@ c #101010",
8 | "# c #EDD400",
9 | "$ c #EEEEEC",
10 | "% c #000000",
11 | " ",
12 | " ",
13 | " ",
14 | " ............ ",
15 | " .+++++++++++.@ ",
16 | " .+############.@ ",
17 | " .+##############.@ ",
18 | ".+.$$$$$$$$$$$$$$.+........... ",
19 | ".++.$$$$$$$$$$$$.+#++++++++++.% ",
20 | ".+#+............+#############.%",
21 | ".+##++++++++++++##############.%",
22 | ".+############################.%",
23 | ".+############################.%",
24 | ".+############################.%",
25 | ".+############################.%",
26 | ".+############################.%",
27 | ".+############################.%",
28 | ".+############################.%",
29 | ".+############################.%",
30 | ".+############################.%",
31 | ".+############################.%",
32 | ".+############################.%",
33 | ".+############################.%",
34 | ".+############################.%",
35 | ".+############################.%",
36 | ".+############################.%",
37 | ".+############################.%",
38 | "...............................%",
39 | "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%",
40 | " ",
41 | " ",
42 | " "};
43 |
--------------------------------------------------------------------------------
/control/dragndrop.h:
--------------------------------------------------------------------------------
1 | /*
2 | * ctrldnd: X11 drag-and-drop helper functions
3 | *
4 | * Refer to the accompanying manual for a description of the interface.
5 | */
6 | #ifndef _CTRLDND_H_
7 | #define _CTRLDND_H_
8 |
9 | #include
10 |
11 | enum ctrldnd_action {
12 | CTRLDND_COPY = 0x01,
13 | CTRLDND_MOVE = 0x02,
14 | CTRLDND_LINK = 0x04,
15 | CTRLDND_ASK = 0x08,
16 | CTRLDND_PRIVATE = 0x10,
17 | CTRLDND_ANYACTION = 0xFFFF,
18 | };
19 |
20 | struct ctrldnd_data {
21 | unsigned char *data;
22 | ssize_t size;
23 | Atom target;
24 | };
25 |
26 | struct ctrldnd_drop {
27 | enum ctrldnd_action action;
28 | struct ctrldnd_data content;
29 | Time time;
30 | Window window;
31 | int x, y;
32 | };
33 |
34 | void ctrldnd_announce(
35 | Display *display,
36 | Window dropsite
37 | );
38 |
39 | struct ctrldnd_drop ctrldnd_drag(
40 | Display *display,
41 | int screen,
42 | Time timestamp,
43 | Window icon,
44 | struct ctrldnd_data const contents[],
45 | size_t ncontents,
46 | enum ctrldnd_action actions,
47 | Time interval,
48 | int (*callback)(XEvent *, void *),
49 | void *arg
50 | );
51 |
52 | struct ctrldnd_drop ctrldnd_getdrop(
53 | XEvent *climsg,
54 | Atom const targets[],
55 | size_t ntargets,
56 | enum ctrldnd_action actions,
57 | Time interval,
58 | int (*callback)(XEvent *, void *),
59 | void *arg
60 | );
61 | #endif /* _CTRLDND_H_ */
62 |
--------------------------------------------------------------------------------
/icons.h:
--------------------------------------------------------------------------------
1 | /* file mode */
2 | enum Mode {
3 | /* file type, 0x00 ~ 0x07 */
4 | MODE_ANY = 0x00, /* any type */
5 | MODE_DIR = 0x01, /* directory */
6 | MODE_FIFO = 0x02, /* named pipe */
7 | MODE_SOCK = 0x03, /* socket */
8 | MODE_DEV = 0x04, /* block or character devices */
9 | MODE_BROK = 0x05, /* broken links */
10 | MODE_FILE = 0x07, /* regular file */
11 |
12 | /* file mask */
13 | MODE_MASK = 0x07,
14 |
15 | /* file mode bit */
16 | MODE_LINK = 0x08,
17 | MODE_READ = 0x10,
18 | MODE_WRITE = 0x20,
19 | MODE_EXEC = 0x40,
20 | };
21 |
22 | /* mapping of filetype names into pixmaps */
23 | extern struct IconType {
24 | char *name;
25 | char **xpm;
26 | } icon_types[];
27 |
28 | /* size of the icon_types[] array */
29 | extern size_t nicon_types;
30 |
31 | /* mapping of globbing patterns into indices from the icon_types[] array */
32 | extern struct IconPatt {
33 | unsigned char mode;
34 | char *patt;
35 | size_t index;
36 | } icon_patts[];
37 |
38 | /* size of the icon_patts[] array */
39 | extern size_t nicon_patts;
40 |
41 | /* array of window icons */
42 | extern struct WinIcon {
43 | int size;
44 | unsigned long *data;
45 | } win_icons[];
46 |
47 | /* size of the win_icons[] array */
48 | extern size_t nwin_icons;
49 |
50 | /* indices from the icon_types[] array for a few default icons */
51 | extern size_t icon_for_updir; /* icon for the parent directory */
52 | extern size_t icon_for_dir; /* icon for child directories */
53 | extern size_t icon_for_file; /* icon for files */
54 |
--------------------------------------------------------------------------------
/widget.h:
--------------------------------------------------------------------------------
1 | typedef struct Scroll {
2 | /* scroll position */
3 | int row, ydiff;
4 | int highlight;
5 | } Scroll;
6 |
7 | typedef struct Item {
8 | unsigned char mode; /* entry mode */
9 | char *name; /* item display name */
10 | char *fullname; /* item full name */
11 | char *status; /* item statusbar info */
12 | size_t icon; /* index for the icon array */
13 | } Item;
14 |
15 | typedef enum {
16 | WIDGET_NONE,
17 | WIDGET_INTERNAL,
18 | WIDGET_CONTEXT,
19 | WIDGET_CLOSE,
20 | WIDGET_OPEN,
21 | WIDGET_PREV,
22 | WIDGET_NEXT,
23 | WIDGET_GOTO,
24 | WIDGET_KEYPRESS,
25 | WIDGET_DROPASK,
26 | WIDGET_DROPCOPY,
27 | WIDGET_DROPMOVE,
28 | WIDGET_DROPLINK,
29 | WIDGET_ERROR,
30 | } WidgetEvent;
31 |
32 | typedef struct Widget Widget;
33 |
34 | Widget *widget_create(
35 | const char *class,
36 | const char *name,
37 | int argc,
38 | char *argv[],
39 | const char *resources[]
40 | );
41 |
42 | int widget_set(
43 | Widget *widget,
44 | const char *cwd,
45 | const char *title,
46 | Item *items,
47 | size_t nitems,
48 | Scroll *scrl
49 | );
50 |
51 | /* get value of icons resource into allocated string */
52 | char *widget_geticons(Widget *widget);
53 |
54 | WidgetEvent widget_wait(Widget *widget);
55 |
56 | int widget_fd(Widget *widget);
57 |
58 | void widget_map(Widget *widget);
59 |
60 | WidgetEvent widget_poll(Widget *widget, int *selitems, int *nselitems, Scroll *scrl, char **sel);
61 |
62 | void widget_thumb(Widget *widget, char *path, int index);
63 |
64 | void widget_free(Widget *widget);
65 |
66 | void widget_busy(Widget *widget);
67 |
--------------------------------------------------------------------------------
/icons/winicon48x48.xpm:
--------------------------------------------------------------------------------
1 | /* XPM */
2 | static char * winicon48x48_xpm[] = {
3 | "48 48 8 1",
4 | " c None",
5 | ". c #C4A000",
6 | "+ c #FCE94F",
7 | "@ c #101010",
8 | "# c #EDD400",
9 | "$ c #BABDB6",
10 | "% c #EEEEEC",
11 | "& c #000000",
12 | " ",
13 | " ",
14 | " ",
15 | " ",
16 | " ",
17 | " .................. ",
18 | " .+++++++++++++++++.@ ",
19 | " .+##################.@ ",
20 | " .+####################.@ ",
21 | " .+######################.@ ",
22 | " .+########################.@ ",
23 | ".+.$$$$$$$$$$$$$$$$$$$$$$$.+................. ",
24 | ".++.%%%%%%%%%%%%%%%%%%%%%.+#++++++++++++++++.& ",
25 | ".+#+.%%%%%%%%%%%%%%%%%%%.+###################.& ",
26 | ".+##+...................+#####################.&",
27 | ".+###+++++++++++++++++++######################.&",
28 | ".+############################################.&",
29 | ".+############################################.&",
30 | ".+############################################.&",
31 | ".+############################################.&",
32 | ".+############################################.&",
33 | ".+############################################.&",
34 | ".+############################################.&",
35 | ".+############################################.&",
36 | ".+############################################.&",
37 | ".+############################################.&",
38 | ".+############################################.&",
39 | ".+############################################.&",
40 | ".+############################################.&",
41 | ".+############################################.&",
42 | ".+############################################.&",
43 | ".+############################################.&",
44 | ".+############################################.&",
45 | ".+############################################.&",
46 | ".+############################################.&",
47 | ".+############################################.&",
48 | ".+############################################.&",
49 | ".+############################################.&",
50 | ".+############################################.&",
51 | ".+############################################.&",
52 | ".+############################################.&",
53 | "...............................................&",
54 | "&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&",
55 | " ",
56 | " ",
57 | " ",
58 | " ",
59 | " "};
60 |
--------------------------------------------------------------------------------
/util.c:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | #include
4 | #include
5 | #include
6 | #include
7 |
8 | #include "util.h"
9 |
10 | int
11 | max(int x, int y)
12 | {
13 | return x > y ? x : y;
14 | }
15 |
16 | int
17 | min(int x, int y)
18 | {
19 | return x < y ? x : y;
20 | }
21 |
22 | int
23 | diff(int x, int y)
24 | {
25 | return x > y ? x - y : y - x;
26 | }
27 |
28 | void *
29 | emalloc(size_t size)
30 | {
31 | void *p;
32 |
33 | if ((p = malloc(size)) == NULL)
34 | err(EXIT_FAILURE, "malloc");
35 | return p;
36 | }
37 |
38 | void *
39 | ecalloc(size_t nmemb, size_t size)
40 | {
41 | void *p;
42 |
43 | if ((p = calloc(nmemb, size)) == NULL)
44 | err(EXIT_FAILURE, "calloc");
45 | return p;
46 | }
47 |
48 | char *
49 | estrdup(const char *s)
50 | {
51 | char *t;
52 |
53 | if ((t = strdup(s)) == NULL)
54 | err(EXIT_FAILURE, "strdup");
55 | return t;
56 | }
57 |
58 | void *
59 | erealloc(void *ptr, size_t size)
60 | {
61 | void *p;
62 |
63 | if ((p = realloc(ptr, size)) == NULL)
64 | err(EXIT_FAILURE, "realloc");
65 | return p;
66 | }
67 |
68 | void
69 | egetcwd(char *path, size_t size)
70 | {
71 | if (getcwd(path, size) == NULL) {
72 | err(EXIT_FAILURE, "getcwd");
73 | }
74 | }
75 |
76 | int
77 | escandir(const char *dirname, struct dirent ***namelist, int (*select)(const struct dirent *), int (*compar)(const struct dirent **, const struct dirent **))
78 | {
79 | int ret;
80 |
81 | if ((ret = scandir(dirname, namelist, select, compar)) == -1)
82 | err(EXIT_FAILURE, "scandir");
83 | return ret;
84 | }
85 |
86 | pid_t
87 | efork(void)
88 | {
89 | pid_t pid;
90 |
91 | if ((pid = fork()) < 0)
92 | err(EXIT_FAILURE, "fork");
93 | return pid;
94 | }
95 |
96 | void
97 | eexec(char *const argv[])
98 | {
99 | execvp(argv[0], argv);
100 | err(EXIT_FAILURE, "%s", argv[0]);
101 | }
102 |
103 | void
104 | etcreate(pthread_t *tid, void *(*thrfn)(void *), void *arg)
105 | {
106 | int errn;
107 |
108 | if ((errn = pthread_create(tid, NULL, thrfn, arg)) != 0) {
109 | errno = errn;
110 | err(EXIT_FAILURE, "could not create thread");
111 | }
112 | }
113 |
114 | void
115 | etjoin(pthread_t tid, void **rval)
116 | {
117 | int errn;
118 |
119 | if ((errn = pthread_join(tid, rval)) != 0) {
120 | errno = errn;
121 | err(EXIT_FAILURE, "could not join with thread");
122 | }
123 | }
124 |
125 | void
126 | etlock(pthread_mutex_t *mutex)
127 | {
128 | int errn;
129 |
130 | if ((errn = pthread_mutex_lock(mutex)) != 0) {
131 | errno = errn;
132 | err(EXIT_FAILURE, "could not lock mutex");
133 | }
134 | }
135 |
136 | void
137 | etunlock(pthread_mutex_t *mutex)
138 | {
139 | int errn;
140 |
141 | if ((errn = pthread_mutex_unlock(mutex)) != 0) {
142 | errno = errn;
143 | err(EXIT_FAILURE, "could not unlock mutex");
144 | }
145 | }
146 |
147 | int
148 | ewaitpid(pid_t pid)
149 | {
150 | int status;
151 |
152 | for (;;) {
153 | if (waitpid(pid, &status, 0) == -1) {
154 | if (errno != EINTR) {
155 | err(EXIT_FAILURE, "waitpid");
156 | }
157 | } else if (!WIFSTOPPED(status)) {
158 | return status;
159 | }
160 | }
161 | }
162 |
163 | void
164 | eclose(int fd)
165 | {
166 | while (close(fd) == -1) {
167 | if (errno != EINTR) {
168 | err(EXIT_FAILURE, "close");
169 | }
170 | }
171 | }
172 |
--------------------------------------------------------------------------------
/Makefile:
--------------------------------------------------------------------------------
1 | .SUFFIXES: .c .o .dbg
2 |
3 | PROG = xfiles
4 |
5 | DEBUG_PROG = ${PROG:=_dbg}
6 |
7 | OBJS = \
8 | ${PROG:=.o} \
9 | widget.o util.o icons.o \
10 | control/dragndrop.o \
11 | control/selection.o \
12 | control/font.o
13 |
14 | DEBUG_OBJS = ${OBJS:.o=.dbg}
15 |
16 | SRCS = ${OBJS:.o=.c}
17 |
18 | MANS = \
19 | xfiles.1 \
20 | control/ctrldnd.3 \
21 | control/ctrlfnt.3 \
22 | control/ctrlsel.3
23 |
24 | SCRIPTS = \
25 | examples/xfilesctl \
26 | examples/xfilesthumb
27 |
28 | WINICONS = \
29 | icons/winicon16x16.abgr \
30 | icons/winicon32x32.abgr \
31 | icons/winicon48x48.abgr \
32 | icons/winicon64x64.abgr
33 | ICONS = \
34 | icons/file-app.xpm \
35 | icons/file-archive.xpm \
36 | icons/file-audio.xpm \
37 | icons/file-code.xpm \
38 | icons/file-config.xpm \
39 | icons/file-core.xpm \
40 | icons/file-gear.xpm \
41 | icons/file-image.xpm \
42 | icons/file-info.xpm \
43 | icons/file-object.xpm \
44 | icons/file-text.xpm \
45 | icons/file-video.xpm \
46 | icons/file.xpm \
47 | icons/folder-apps.xpm \
48 | icons/folder-book.xpm \
49 | icons/folder-code.xpm \
50 | icons/folder-db.xpm \
51 | icons/folder-download.xpm \
52 | icons/folder-game.xpm \
53 | icons/folder-gear.xpm \
54 | icons/folder-home.xpm \
55 | icons/folder-image.xpm \
56 | icons/folder-link.xpm \
57 | icons/folder-mail.xpm \
58 | icons/folder-meme.xpm \
59 | icons/folder-mount.xpm \
60 | icons/folder-music.xpm \
61 | icons/folder-trash.xpm \
62 | icons/folder-up.xpm \
63 | icons/folder-video.xpm \
64 | icons/folder.xpm
65 |
66 | PROG_CPPFLAGS = \
67 | -D_POSIX_C_SOURCE=200809L -D_BSD_SOURCE -D_GNU_SOURCE -D_DEFAULT_SOURCE \
68 | -I. -I/usr/local/include -I/usr/X11R6/include \
69 | -I/usr/include/freetype2 -I/usr/X11R6/include/freetype2 \
70 | ${CPPFLAGS}
71 |
72 | PROG_CFLAGS = \
73 | -std=c99 -pedantic \
74 | ${PROG_CPPFLAGS} \
75 | ${CFLAGS}
76 |
77 | PROG_LDFLAGS = \
78 | -L/usr/local/lib -L/usr/X11R6/lib \
79 | -lfontconfig -lXft -lX11 -lXext -lXcursor -lXrender -lXpm -lpthread \
80 | ${LDFLAGS} ${LDLIBS}
81 |
82 | DEBUG_FLAGS = \
83 | -g -O0 -DDEBUG -Wall -Wextra -Wpedantic
84 |
85 | all: ${PROG}
86 | ${PROG}: ${OBJS}
87 | ${CC} -o $@ ${OBJS} ${PROG_LDFLAGS}
88 | .c.o:
89 | ${CC} ${PROG_CFLAGS} -o $@ -c $<
90 |
91 | debug: ${DEBUG_PROG}
92 | ${DEBUG_PROG}: ${DEBUG_OBJS}
93 | ${CC} -o $@ ${DEBUG_OBJS} ${PROG_LDFLAGS} ${DEBUG_FLAGS}
94 | .c.dbg:
95 | ${CC} ${PROG_CFLAGS} ${DEBUG_FLAGS} -o $@ -c $<
96 |
97 | # Brace expansion in makefile targets is a {GNU,BSD} extension.
98 | # Should we make this portable? (How?)
99 | control/selection.{dbg,o}: control/selection.h
100 | control/dragndrop.{dbg,o}: control/dragndrop.h control/selection.h
101 | control/font.{dbg,o}: control/font.h
102 | xfiles.{dbg,o}: util.h widget.h icons/file.xpm icons/folder.xpm
103 | widget.{dbg,o}: util.h widget.h icons/x.xpm control/selection.h control/dragndrop.h control/font.h
104 | icons.{dbg,o}: ${ICONS} ${WINICONS}
105 |
106 | lint: ${SCRIPTS} ${MANS}
107 | -shellcheck ${SCRIPTS}
108 | -mandoc -T lint -W warning ${MANS}
109 |
110 | tags: ${SRCS}
111 | ctags ${SRCS}
112 |
113 | clean:
114 | rm -f ${OBJS} ${PROG} ${PROG:=.core}
115 |
116 | distclean: clean
117 | rm -f ${DEBUG_OBJS} ${DEBUG_PROG} ${DEBUG_PROG:=.core} tags
118 | rm -f tags
119 |
120 | .PHONY: all debug lint clean distclean
121 |
--------------------------------------------------------------------------------
/README:
--------------------------------------------------------------------------------
1 | XFiles: a X11 File Manager
2 |
3 |
4 | Features:
5 | • Icons representing directory entries.
6 | • Icon view only (list/culumn/tree/etc view is not and will not be implemented).
7 | • Uncluttered interface (no toolbar, sidebar, etc but grid of icons).
8 | • Mouse interaction with drag-and-drop and selection actions.
9 | • Drag-and-drop within the same XFiles window.
10 | • Drag-and-drop between two XFiles windows.
11 | • Drag-and-drop between an XFiles window and another application.
12 | • Scroller widget (activated on middle mouse button) replacing scrollbars.
13 | • XEmbed support, to incorporate other application's windows as widgets
14 | (for example, dmenu can be used as an address bar).
15 | • File operations are delegated to a user-written script (xfilesctl).
16 | • Thumbnail (64x64 PPM image) generation delegated to a script (xfilesthumb).
17 | • Appearance (like colors and font) customizable by X resources.
18 |
19 | See ./demo.png for a illustration of XFiles in action.
20 |
21 |
22 | § INSTALLATION
23 |
24 | Build XFiles with “make”.
25 | Copy the built binary file ./xfiles into your system's $PATH.
26 | Optionally, copy the manual file `./xfiles.1` in your system's $MANPATH.
27 | Optionally, copy the scripts in ./examples/ in your system's $PATH.
28 |
29 | Dependencies:
30 | • C99 compiler, for building.
31 | • POSIX make, for building.
32 | • Mandoc, for the manual.
33 | • POSIX C standard library and headers.
34 | • X11 libraries and headers (Xlib, Xcursor, Xext, Xft, Xpm, Xrender).
35 | • Fontconfig library and headers.
36 | • Pthreads library and headers.
37 | • (NOTE: The xfilesctl and xfilesthumb scripts may depend on other programs).
38 |
39 |
40 | § QUICK-START
41 |
42 | Context menu.
43 | XFiles has no context menu; but it invokes “xfilesctl” at right-click.
44 | You can make a xfilesctl script open xmenu(1) or other pop-up menu program.
45 | On right-click, it is invoked as follows (%s is the paths to selected files):
46 |
47 | xfilesctl menu %s
48 |
49 | Address bar.
50 | XFiles has no address bar; but it invokes “xfilesctl” at Ctrl+key presses.
51 | You can make a xfilesctl script open dmenu(1) or other prompt program.
52 | On, say, Ctrl+L, it is invoked as follows (%s is the paths to selected files):
53 |
54 | xfilesctl ^L %s
55 |
56 | File operations.
57 | XFiles does no file operation; but it invokes “xfilesctl” at icon manipulation.
58 | You can make a xfilesctl script call cp(1) or other command on a drop action.
59 | On file dropping, it is invoked as follows (%s is the path to selected files):
60 |
61 | xfilesctl drop-ask %s
62 |
63 | Thumbnails.
64 | XFiles does not generate thumbnails; but it invokes “xfilesthumb” to do so.
65 | Thumbnails must be 64x64 pixels in size, and must be in the PPM format.
66 | You can make a xfilesthumb script call pdftoppm(1) to create a pdf thumbnail.
67 | The xfilesthumb script is invoked as follows:
68 |
69 | xfilesthumb /path/to/file /path/to/miniature.ppm
70 |
71 | Examples.
72 | See the ./examples/ directories for script and configuration examples:
73 | • ./examples/xfilesctl (example controller script).
74 | • ./examples/xfilesthumb (example thumbnailer script).
75 | • ./examples/Xresources (example X resources database).
76 |
77 | Read the manual at ./xfiles.1 for more information on usage.
78 |
79 |
80 | § CONTRIBUTING
81 |
82 | If possible, send feedback (positive or negative) via email or issue tracker.
83 | If possible, report bugs (possibly with a fix) via email or issue tracker.
84 |
85 | Feature requests and patches adding new features are welcome.
86 | But it is ultimately up to author's discretion to approve them or not.
87 |
88 | Keep in mind that this is a personal project and a work in progress.
89 |
90 | Read ./TODO for a list of known bugs and features intended to be added.
91 |
92 |
93 | § AUTHOR
94 |
95 | By Lucas de Sena © 2021-2024.
96 |
97 | Code and manual distributed under the MIT/X license.
98 | Icons are distributed under CC0/Public Domain.
99 | See ./LICENSE for more information.
100 |
--------------------------------------------------------------------------------
/control/ctrlfnt.3:
--------------------------------------------------------------------------------
1 | .Dd March 17, 2023
2 | .Dt CTRLFNT 3
3 | .Os
4 | .Sh NAME
5 | .Nm ctrlfnt_open ,
6 | .Nm ctrlfnt_draw ,
7 | .Nm ctrlfnt_width ,
8 | .Nm ctrlfnt_height ,
9 | .Nm ctrlfnt_free
10 | .Nd Xft selection ownership and requesting helper functions
11 | .Sh SYNOPSIS
12 | .In X11/Xlib.h
13 | .In X11/Xft/Xft.h
14 | .In control/ctrlfnt.h
15 | .Ft void
16 | .Fo ctrlfnt_init
17 | .Ft "void"
18 | .Fc
19 | .Ft "CtrlFontSet *"
20 | .Fo ctrlfnt_open
21 | .Fa "Display display"
22 | .Fa "int screen"
23 | .Fa "Visual *visual"
24 | .Fa "Colormap colormap"
25 | .Fa "const char *fontset_spec"
26 | .Fa "double fontsize"
27 | .Fc
28 | .Ft int
29 | .Fo ctrlfnt_draw
30 | .Fa "CtrlFontSet *fontset"
31 | .Fa "Picture picture"
32 | .Fa "Picture src"
33 | .Fa "XRectangle rectangle"
34 | .Fa "cont char *text"
35 | .Fa "int nbytes"
36 | .Fc
37 | .Ft int
38 | .Fo ctrlfnt_width
39 | .Fa "CtrlFontSet *fontset"
40 | .Fa "cont char *text"
41 | .Fa "int nbytes"
42 | .Fc
43 | .Ft int
44 | .Fo ctrlfnt_height
45 | .Fa "CtrlFontSet *fontset"
46 | .Fc
47 | .Ft void
48 | .Fo ctrlfnt_free
49 | .Fa "CtrlFontSet *fontset"
50 | .Fc
51 | .Ft void
52 | .Fo ctrlfnt_term
53 | .Ft "void"
54 | .Fc
55 | .Sh ARGUMENTS
56 | .Bl -tag -width Ds
57 | .It Fa display
58 | Specifies the connection to the X server.
59 | .It Fa colormap
60 | Specifies the colormap to draw the string with.
61 | .It Fa picture
62 | Specifies the picture to draw the string on.
63 | .It Fa fontset
64 | Specifies the fontset created with
65 | .Fn ctrlfnt_open .
66 | .It Fa fontset_spec
67 | Specifies the string specifying the fonts to be open.
68 | .It Fa fontsize
69 | Specifies the font size in points.
70 | If equal to
71 | .Ic 0.0 ,
72 | use the default font size (equal to
73 | .Ic 8.0
74 | points).
75 | .It Fa nbytes
76 | Specifies the size of
77 | .Fa text
78 | in bytes.
79 | .It Fa rectangle
80 | Specifies the rectangle within the drawable to place the the drawn string in.
81 | .It Fa screen
82 | Specifies a X screen.
83 | .It Fa src
84 | Specifies the source picture containing the color to draw the string with.
85 | .It Fa text
86 | Specifies the string to draw.
87 | .It Fa visual
88 | Specifies the visual to draw the string with.
89 | .El
90 | .Sh DESCRIPTION
91 | The
92 | .Fn ctrlfnt_init
93 | function initializes the fontconfig library.
94 | .Pp
95 | The
96 | .Fn ctrlfnt_open
97 | function opens the fonts specified in
98 | .Fa fontset_spec
99 | into a newly allocated
100 | .Fa fontset
101 | structure, and returns its address.
102 | The open fonts will have size equal to
103 | .Fa fontsize
104 | in points.
105 | The fontset is created for the given
106 | .Fa display
107 | and
108 | .Fa screen ,
109 | with the given
110 | .Fa visual
111 | and
112 | .Fa colormap .
113 | .Pp
114 | The
115 | .Fn ctrlfnt_draw
116 | function uses
117 | .Fa fontset
118 | to draw the first
119 | .Fa nbytes
120 | of
121 | .Fa text
122 | in the given
123 | .Fa picture
124 | within the given
125 | .Fa rectangle ,
126 | using
127 | .Fa src
128 | as source color.
129 | It returns the width of the drawn text, or
130 | .Ic -1
131 | if the text could not be drawn because of any error.
132 | .Pp
133 | The
134 | .Fn ctrlfnt_width
135 | function returns the width of the first
136 | .Fa nbytes
137 | of
138 | .Fa text
139 | if drawn by
140 | .Fn ctrlfnt_draw
141 | using the given
142 | .Fa fontset ,
143 | or
144 | .Ic -1
145 | if the width could not be computed.
146 | (This function returns the same as
147 | .Fn ctrlfnt_draw
148 | without drawing anything).
149 | .Pp
150 | The
151 | .Fn ctrlfnt_height
152 | returns the height of the fonts in
153 | .Fa fontset .
154 | .Pp
155 | the
156 | .Fn ctrlfnt_free
157 | frees the fonts open in
158 | .Ft fontset .
159 | .Pp
160 | The
161 | .Fn ctrlfnt_term
162 | function terminates the fontconfig library.
163 | .Sh RETURN VALUES
164 | The
165 | .Fn ctrlfnt_open
166 | function returns NULL on error.
167 | The
168 | .Fn ctrlfnt_draw ,
169 | .Fn ctrlfnt_width ,
170 | and
171 | .Fn ctrlfnt_height ,
172 | functions return a value less than zero on error.
173 | .Pp
174 | If an error occurs, the functions write a string describing the error into standard output with
175 | .Xr warnx 3 .
176 | .Sh EXAMPLES
177 | [...]
178 | .Sh SEE ALSO
179 | .Xr Xft 3 ,
180 | .Xr X 7
181 |
--------------------------------------------------------------------------------
/icons/winicon16x16.abgr:
--------------------------------------------------------------------------------
1 | unsigned long winicon16x16[] = {
2 | 0x00000000,
3 | 0x00000000,
4 | 0x00000000,
5 | 0x00000000,
6 | 0x00000000,
7 | 0x00000000,
8 | 0x00000000,
9 | 0x00000000,
10 | 0x00000000,
11 | 0x00000000,
12 | 0x00000000,
13 | 0x00000000,
14 | 0x00000000,
15 | 0x00000000,
16 | 0x00000000,
17 | 0x00000000,
18 | 0x00000000,
19 | 0x00000000,
20 | 0x00000000,
21 | 0x00000000,
22 | 0x00000000,
23 | 0x00000000,
24 | 0x00000000,
25 | 0x00000000,
26 | 0x00000000,
27 | 0x00000000,
28 | 0x00000000,
29 | 0x00000000,
30 | 0x00000000,
31 | 0x00000000,
32 | 0x00000000,
33 | 0x00000000,
34 | 0x00000000,
35 | 0x00000000,
36 | 0xffc4a000,
37 | 0xffc4a000,
38 | 0xffc4a000,
39 | 0xffc4a000,
40 | 0xffc4a000,
41 | 0xffc4a000,
42 | 0xff000000,
43 | 0x00000000,
44 | 0x00000000,
45 | 0x00000000,
46 | 0x00000000,
47 | 0x00000000,
48 | 0x00000000,
49 | 0x00000000,
50 | 0x00000000,
51 | 0xffc4a000,
52 | 0xffedd400,
53 | 0xffedd400,
54 | 0xffedd400,
55 | 0xffedd400,
56 | 0xffedd400,
57 | 0xffedd400,
58 | 0xffc4a000,
59 | 0xff000000,
60 | 0x00000000,
61 | 0x00000000,
62 | 0x00000000,
63 | 0x00000000,
64 | 0x00000000,
65 | 0x00000000,
66 | 0xffc4a000,
67 | 0xffc4a000,
68 | 0xffeeeeec,
69 | 0xffeeeeec,
70 | 0xffeeeeec,
71 | 0xffeeeeec,
72 | 0xffeeeeec,
73 | 0xffeeeeec,
74 | 0xffc4a000,
75 | 0xffc4a000,
76 | 0xffc4a000,
77 | 0xffc4a000,
78 | 0xffc4a000,
79 | 0xffc4a000,
80 | 0xffc4a000,
81 | 0x00000000,
82 | 0xffc4a000,
83 | 0xfffce94f,
84 | 0xffc4a000,
85 | 0xffc4a000,
86 | 0xffc4a000,
87 | 0xffc4a000,
88 | 0xffc4a000,
89 | 0xffc4a000,
90 | 0xfffce94f,
91 | 0xfffce94f,
92 | 0xfffce94f,
93 | 0xfffce94f,
94 | 0xfffce94f,
95 | 0xfffce94f,
96 | 0xffc4a000,
97 | 0xff000000,
98 | 0xffc4a000,
99 | 0xfffce94f,
100 | 0xfffce94f,
101 | 0xfffce94f,
102 | 0xfffce94f,
103 | 0xfffce94f,
104 | 0xfffce94f,
105 | 0xfffce94f,
106 | 0xfffce94f,
107 | 0xffedd400,
108 | 0xffedd400,
109 | 0xffedd400,
110 | 0xffc4a000,
111 | 0xffedd400,
112 | 0xffc4a000,
113 | 0xff000000,
114 | 0xffc4a000,
115 | 0xfffce94f,
116 | 0xffedd400,
117 | 0xfffce94f,
118 | 0xffedd400,
119 | 0xfffce94f,
120 | 0xffedd400,
121 | 0xfffce94f,
122 | 0xffedd400,
123 | 0xffedd400,
124 | 0xffedd400,
125 | 0xffedd400,
126 | 0xffedd400,
127 | 0xffedd400,
128 | 0xffc4a000,
129 | 0xff000000,
130 | 0xffc4a000,
131 | 0xfffce94f,
132 | 0xfffce94f,
133 | 0xffedd400,
134 | 0xfffce94f,
135 | 0xffedd400,
136 | 0xffedd400,
137 | 0xffedd400,
138 | 0xffedd400,
139 | 0xffedd400,
140 | 0xffc4a000,
141 | 0xffedd400,
142 | 0xffc4a000,
143 | 0xffedd400,
144 | 0xffc4a000,
145 | 0xff000000,
146 | 0xffc4a000,
147 | 0xfffce94f,
148 | 0xffedd400,
149 | 0xfffce94f,
150 | 0xffedd400,
151 | 0xfffce94f,
152 | 0xffedd400,
153 | 0xffedd400,
154 | 0xffedd400,
155 | 0xffedd400,
156 | 0xffedd400,
157 | 0xffc4a000,
158 | 0xffedd400,
159 | 0xffedd400,
160 | 0xffc4a000,
161 | 0xff000000,
162 | 0xffc4a000,
163 | 0xfffce94f,
164 | 0xfffce94f,
165 | 0xffedd400,
166 | 0xffedd400,
167 | 0xffedd400,
168 | 0xffedd400,
169 | 0xffedd400,
170 | 0xffc4a000,
171 | 0xffedd400,
172 | 0xffc4a000,
173 | 0xffedd400,
174 | 0xffc4a000,
175 | 0xffedd400,
176 | 0xffc4a000,
177 | 0xff000000,
178 | 0xffc4a000,
179 | 0xfffce94f,
180 | 0xffedd400,
181 | 0xfffce94f,
182 | 0xffedd400,
183 | 0xffedd400,
184 | 0xffedd400,
185 | 0xffedd400,
186 | 0xffedd400,
187 | 0xffc4a000,
188 | 0xffedd400,
189 | 0xffc4a000,
190 | 0xffedd400,
191 | 0xffedd400,
192 | 0xffc4a000,
193 | 0xff000000,
194 | 0xffc4a000,
195 | 0xfffce94f,
196 | 0xffedd400,
197 | 0xffedd400,
198 | 0xffedd400,
199 | 0xffedd400,
200 | 0xffedd400,
201 | 0xffedd400,
202 | 0xffedd400,
203 | 0xffedd400,
204 | 0xffedd400,
205 | 0xffedd400,
206 | 0xffedd400,
207 | 0xffedd400,
208 | 0xffc4a000,
209 | 0xff000000,
210 | 0xffc4a000,
211 | 0xffc4a000,
212 | 0xffc4a000,
213 | 0xffc4a000,
214 | 0xffc4a000,
215 | 0xffc4a000,
216 | 0xffc4a000,
217 | 0xffc4a000,
218 | 0xffc4a000,
219 | 0xffc4a000,
220 | 0xffc4a000,
221 | 0xffc4a000,
222 | 0xffc4a000,
223 | 0xffc4a000,
224 | 0xffc4a000,
225 | 0xff000000,
226 | 0xff000000,
227 | 0xff000000,
228 | 0xff000000,
229 | 0xff000000,
230 | 0xff000000,
231 | 0xff000000,
232 | 0xff000000,
233 | 0xff000000,
234 | 0xff000000,
235 | 0xff000000,
236 | 0xff000000,
237 | 0xff000000,
238 | 0xff000000,
239 | 0xff000000,
240 | 0xff000000,
241 | 0xff000000,
242 | 0x00000000,
243 | 0x00000000,
244 | 0x00000000,
245 | 0x00000000,
246 | 0x00000000,
247 | 0x00000000,
248 | 0x00000000,
249 | 0x00000000,
250 | 0x00000000,
251 | 0x00000000,
252 | 0x00000000,
253 | 0x00000000,
254 | 0x00000000,
255 | 0x00000000,
256 | 0x00000000,
257 | 0x00000000,
258 | };
259 |
--------------------------------------------------------------------------------
/icons/x.xpm:
--------------------------------------------------------------------------------
1 | /* XPM */
2 | static char * x_xpm[] = {
3 | "64 64 5 1",
4 | " c None",
5 | ". c #A40000",
6 | "+ c #EF2929",
7 | "@ c #000000",
8 | "# c #CC0000",
9 | " ",
10 | " ",
11 | " ",
12 | " ",
13 | " ",
14 | " ",
15 | " ",
16 | " ",
17 | ".................. .......",
18 | ".++++++++++++++++.@ .+++++.@",
19 | " .+###############.@ .+####.@ ",
20 | " .+###############.@ .+####.@ ",
21 | " .+###############.@ .+####.@ ",
22 | " .+###############.@ .+####.@ ",
23 | " .+###############.@ .+####.@ ",
24 | " .+###############.@ .+####.@ ",
25 | " .+###############.@ .+####.@ ",
26 | " .+###############.@ .+####.@ ",
27 | " .+###############.@ .+####.@ ",
28 | " .+###############.@ .+####.@ ",
29 | " .+###############.@ .+####.@ ",
30 | " .+###############.@ .+####.@ ",
31 | " .+###############.@ .+####.@ ",
32 | " .+###############.@ .+####.@ ",
33 | " .+###############.@ .+####.@ ",
34 | " .+###############.@ .+####.@ ",
35 | " .+###############.@ .+####.@ ",
36 | " .+#############.@ .+####.@ ",
37 | " .+###########.@ .+####.@ ",
38 | " .+#########.@ .+####.@ ",
39 | " .+#######.@ .+####.@ ",
40 | " .+#####.@ .+####.@ ",
41 | " .+####.@ .+#####.@ ",
42 | " .+####.@ .+#######.@ ",
43 | " .+####.@ .+#########.@ ",
44 | " .+####.@ .+###########.@ ",
45 | " .+####.@ .+#############.@ ",
46 | " .+####.@ .+###############.@ ",
47 | " .+####.@ .+###############.@ ",
48 | " .+####.@ .+###############.@ ",
49 | " .+####.@ .+###############.@ ",
50 | " .+####.@ .+###############.@ ",
51 | " .+####.@ .+###############.@ ",
52 | " .+####.@ .+###############.@ ",
53 | " .+####.@ .+###############.@ ",
54 | " .+####.@ .+###############.@ ",
55 | " .+####.@ .+###############.@ ",
56 | " .+####.@ .+###############.@ ",
57 | " .+####.@ .+###############.@ ",
58 | " .+####.@ .+###############.@ ",
59 | " .+####.@ .+###############.@ ",
60 | " .+####.@ .+###############.@ ",
61 | " .+####.@ .+###############.@ ",
62 | " .+####.@ .+###############.@ ",
63 | ".......@ ..................@",
64 | "@@@@@@@ @@@@@@@@@@@@@@@@@@",
65 | " ",
66 | " ",
67 | " ",
68 | " ",
69 | " ",
70 | " ",
71 | " ",
72 | " "};
73 |
--------------------------------------------------------------------------------
/icons/file.xpm:
--------------------------------------------------------------------------------
1 | /* XPM */
2 | static char * file_xpm[] = {
3 | "64 64 5 1",
4 | " c None",
5 | ". c #BABDB6",
6 | "+ c #EEEEEC",
7 | "@ c #D3D7CF",
8 | "# c #000000",
9 | " ................................ ",
10 | " .++++++++++++++++++++++++++++++.. ",
11 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+. ",
12 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.++. ",
13 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@+. ",
14 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+.@+. ",
15 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@.@+. ",
16 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+.@.@+. ",
17 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@.@.@+. ",
18 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@@.@.@+. ",
19 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@.@.@.@+. ",
20 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@@@@.@.@+. ",
21 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@.@.@.@.@+. ",
22 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@@@@@@.@.@+. ",
23 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@@@.@.@.@.@+. ",
24 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@................ ",
25 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@################# ",
26 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
27 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
28 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
29 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
30 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
31 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
32 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
33 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
34 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
35 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
36 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
37 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
38 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
39 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
40 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
41 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
42 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
43 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
44 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
45 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
46 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
47 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
48 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
49 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
50 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
51 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
52 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
53 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
54 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
55 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
56 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
57 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
58 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
59 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
60 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
61 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
62 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
63 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
64 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
65 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
66 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
67 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
68 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
69 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
70 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
71 | " ...............................................# ",
72 | " ################################################ "};
73 |
--------------------------------------------------------------------------------
/icons/folder.xpm:
--------------------------------------------------------------------------------
1 | /* XPM */
2 | static char * folder_xpm[] = {
3 | "64 64 7 1",
4 | " c None",
5 | ". c #C4A000",
6 | "+ c #FCE94F",
7 | "@ c #000000",
8 | "# c #EDD400",
9 | "$ c #BABDB6",
10 | "% c #EEEEEC",
11 | " ",
12 | " ",
13 | " ",
14 | " ",
15 | " ",
16 | " ",
17 | " ........................ ",
18 | " .+++++++++++++++++++++++.@ ",
19 | " .+########################.@ ",
20 | " .+##########################.@ ",
21 | " .+############################.@ ",
22 | " .+##############################.@ ",
23 | " .+################################.@ ",
24 | " .+##################################.@ ",
25 | ".+.$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$......................... ",
26 | ".++.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.++++++++++++++++++++++++.@ ",
27 | ".+#+.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.+#########################.@",
28 | ".+##+..............................+##########################.@",
29 | ".+###++++++++++++++++++++++++++++++###########################.@",
30 | ".+############################################################.@",
31 | ".+############################################################.@",
32 | ".+############################################################.@",
33 | ".+############################################################.@",
34 | ".+############################################################.@",
35 | ".+############################################################.@",
36 | ".+############################################################.@",
37 | ".+############################################################.@",
38 | ".+############################################################.@",
39 | ".+############################################################.@",
40 | ".+############################################################.@",
41 | ".+############################################################.@",
42 | ".+############################################################.@",
43 | ".+############################################################.@",
44 | ".+############################################################.@",
45 | ".+############################################################.@",
46 | ".+############################################################.@",
47 | ".+############################################################.@",
48 | ".+############################################################.@",
49 | ".+############################################################.@",
50 | ".+############################################################.@",
51 | ".+############################################################.@",
52 | ".+############################################################.@",
53 | ".+############################################################.@",
54 | ".+############################################################.@",
55 | ".+############################################################.@",
56 | ".+############################################################.@",
57 | ".+############################################################.@",
58 | ".+############################################################.@",
59 | ".+############################################################.@",
60 | ".+############################################################.@",
61 | ".+############################################################.@",
62 | ".+############################################################.@",
63 | ".+############################################################.@",
64 | ".+############################################################.@",
65 | ".+############################################################.@",
66 | ".+############################################################.@",
67 | "...............................................................@",
68 | "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@",
69 | " ",
70 | " ",
71 | " ",
72 | " ",
73 | " ",
74 | " "};
75 |
--------------------------------------------------------------------------------
/icons/file-code.xpm:
--------------------------------------------------------------------------------
1 | /* XPM */
2 | static char * file_code_xpm[] = {
3 | "64 64 7 1",
4 | " c None",
5 | ". c #BABDB6",
6 | "+ c #EEEEEC",
7 | "@ c #D3D7CF",
8 | "# c #000000",
9 | "$ c #729FCF",
10 | "% c #3465A4",
11 | " ................................ ",
12 | " .++++++++++++++++++++++++++++++.. ",
13 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+. ",
14 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.++. ",
15 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@+. ",
16 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+.@+. ",
17 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@.@+. ",
18 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+.@.@+. ",
19 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@.@.@+. ",
20 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@@.@.@+. ",
21 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@.@.@.@+. ",
22 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@@@@.@.@+. ",
23 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@.@.@.@.@+. ",
24 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@@@@@@.@.@+. ",
25 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@@@.@.@.@.@+. ",
26 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@................ ",
27 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@################# ",
28 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
29 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
30 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
31 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
32 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
33 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
34 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
35 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
36 | " .+@@@@@@@@@@@$$%%%.@@@@@@@@@@$%%%..@@@@@@@@@@@.# ",
37 | " .+@@@@@@@@@@$%%%..@@@@@@@@@@@@$$%%%.@@@@@@@@@@.# ",
38 | " .+@@@@@@@@@$%%%.@@@@@@@@@@@@@@@@$%%%.@@@@@@@@@.# ",
39 | " .+@@@@@@@@@$%%%.@@@@@@@@@@@@@@@@$%%%.@@@@@@@@@.# ",
40 | " .+@@@@@@@@@$%%%.@@%%%%%@%%%@%%@@$%%%.@@@@@@@@@.# ",
41 | " .+@@@@@@@@@$%%%.@@@@@@@@@@@@@@@@$%%%.@@@@@@@@@.# ",
42 | " .+@@@@@@@@@$%%%.@@%%@%%%%%@@@@@@$%%%.@@@@@@@@@.# ",
43 | " .+@@@@@@@@@$%%%.@@@@@@@@@@@@@@@@$%%%.@@@@@@@@@.# ",
44 | " .+@@@@@@@@@$%%%.@@%%@%%%@@@@@@@@$%%%.@@@@@@@@@.# ",
45 | " .+@@@@@@@@@$%%%.@@@@@@@@@@@@@@@@$%%%.@@@@@@@@@.# ",
46 | " .+@@@@@@@@@$%%%.@@@@@%%@%%%%@@@@$%%%.@@@@@@@@@.# ",
47 | " .+@@@@@@@@@$%%%.@@@@@@@@@@@@@@@@$%%%.@@@@@@@@@.# ",
48 | " .+@@@@@@@@@$%%%.@@@@@%%%%%@%%@@@$%%%.@@@@@@@@@.# ",
49 | " .+@@@@@@@@$%%%.@@@@@@@@@@@@@@@@@@$%%%.@@@@@@@@.# ",
50 | " .+@@@@@@@$%%%.@@@@%@@@@@@@@@@@@@@@$%%%.@@@@@@@.# ",
51 | " .+@@@@@@$%%%.@@@@@@@@@@@@@@@@@@@@@@$%%%.@@@@@@.# ",
52 | " .+@@@@@@@$%%%.@@@@%%%%@%%@@@@@@@@@$%%%.@@@@@@@.# ",
53 | " .+@@@@@@@@$%%%.@@@@@@@@@@@@@@@@@@$%%%.@@@@@@@@.# ",
54 | " .+@@@@@@@@@$%%%.@@@@@@@@@@@@@@@@$%%%.@@@@@@@@@.# ",
55 | " .+@@@@@@@@@$%%%.@@%%@%%%%%@@@@@@$%%%.@@@@@@@@@.# ",
56 | " .+@@@@@@@@@$%%%.@@@@@@@@@@@@@@@@$%%%.@@@@@@@@@.# ",
57 | " .+@@@@@@@@@$%%%.@@@@@%%@%%%@@@@@$%%%.@@@@@@@@@.# ",
58 | " .+@@@@@@@@@$%%%.@@@@@@@@@@@@@@@@$%%%.@@@@@@@@@.# ",
59 | " .+@@@@@@@@@$%%%.@@@@@%%%@@@@@@@@$%%%.@@@@@@@@@.# ",
60 | " .+@@@@@@@@@$%%%.@@@@@@@@@@@@@@@@$%%%.@@@@@@@@@.# ",
61 | " .+@@@@@@@@@$%%%.@@@@@%@@@@@@@@@@$%%%.@@@@@@@@@.# ",
62 | " .+@@@@@@@@@$%%%.@@@@@@@@@@@@@@@@$%%%.@@@@@@@@@.# ",
63 | " .+@@@@@@@@@$%%%.@@%%@@@@@@@@@@@@$%%%.@@@@@@@@@.# ",
64 | " .+@@@@@@@@@$%%%.@@@@@@@@@@@@@@@@$%%%.@@@@@@@@@.# ",
65 | " .+@@@@@@@@@@$%%%..@@@@@@@@@@@@$$%%%.@@@@@@@@@@.# ",
66 | " .+@@@@@@@@@@@$$%%%.@@@@@@@@@@$%%%..@@@@@@@@@@@.# ",
67 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
68 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
69 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
70 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
71 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
72 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
73 | " ...............................................# ",
74 | " ################################################ "};
75 |
--------------------------------------------------------------------------------
/icons/file-gear.xpm:
--------------------------------------------------------------------------------
1 | /* XPM */
2 | static char * file_gear_xpm[] = {
3 | "64 64 7 1",
4 | " c None",
5 | ". c #BABDB6",
6 | "+ c #EEEEEC",
7 | "@ c #D3D7CF",
8 | "# c #000000",
9 | "$ c #555753",
10 | "% c #888A85",
11 | " ................................ ",
12 | " .++++++++++++++++++++++++++++++.. ",
13 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+. ",
14 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.++. ",
15 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@+. ",
16 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+.@+. ",
17 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@.@+. ",
18 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+.@.@+. ",
19 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@.@.@+. ",
20 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@@.@.@+. ",
21 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@.@.@.@+. ",
22 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@@@@.@.@+. ",
23 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@.@.@.@.@+. ",
24 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@@@@@@.@.@+. ",
25 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@@@.@.@.@.@+. ",
26 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@................ ",
27 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@################# ",
28 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
29 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
30 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
31 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
32 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
33 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
34 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
35 | " .+@@@@@@@@@@@@@@@@@@@$$$$$$@@@@@@@@@@@@@@@@@@@.# ",
36 | " .+@@@@@@@@@@@@@@@@@@#.....$#@@@@@@@@@@@@@@@@@@.# ",
37 | " .+@@@@@@@@@@@@@@@@@@#.%%%%$#@@@@@@@@@@@@@@@@@@.# ",
38 | " .+@@@@@@@@@@@@@@@@@@#.%%%%$#@@@@@@@@@@@@@@@@@@.# ",
39 | " .+@@@@@@@@@@@@@@@@@@#.%%%%$#@@@@@@@@@@@@@@@@@@.# ",
40 | " .+@@@@@@@@@$$@@@@@@$.%%%%%%$$@@@@@@$$@@@@@@@@@.# ",
41 | " .+@@@@@@@@$..$$@@$$.%%%%%%%%.$$@@$$..#@@@@@@@@.# ",
42 | " .+@@@@@@@$.%%..$$..%%%%%%%%%%..$$..%%$#@@@@@@@.# ",
43 | " .+@@@@@@@$.%%%%..%%%%%%%%%%%%%%..%%%%$#@@@@@@@.# ",
44 | " .+@@@@@@$.%%%%%%%%%%%%%%%%%%%%%%%%%%%%$#@@@@@@.# ",
45 | " .+@@@@@@$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%$#@@@@@@.# ",
46 | " .+@@@@@@@#$$%%%%%%%%%%%%%%%%%%%%%%%%$$#@@@@@@@.# ",
47 | " .+@@@@@@@@##$$%%%%%%%%####%%%%%%%%$$##@@@@@@@@.# ",
48 | " .+@@@@@@@@@@##.%%%%%%#@@@@$%%%%%%$##@@@@@@@@@@.# ",
49 | " .+@@@@@@@@@@@@$.%%%%#@@@@@@$%%%%$#@@@@@@@@@@@@.# ",
50 | " .+@@@@@@@@@@@@$.%%%%#@@@@@@$%%%%$#@@@@@@@@@@@@.# ",
51 | " .+@@@@@@@@@@@@$.%%%%#@@@@@@$%%%%$#@@@@@@@@@@@@.# ",
52 | " .+@@@@@@@@@@@@$.%%%%#@@@@@@$%%%%$#@@@@@@@@@@@@.# ",
53 | " .+@@@@@@@@@@$$.%%%%%%#@@@@$%%%%%%$$$@@@@@@@@@@.# ",
54 | " .+@@@@@@@@$$..%%%%%%%%$$$$%%%%%%%%..$$@@@@@@@@.# ",
55 | " .+@@@@@@@$..%%%%%%%%%%%%%%%%%%%%%%%%..$@@@@@@@.# ",
56 | " .+@@@@@@$.%%%%%%%%%%%%%%%%%%%%%%%%%%%%.#@@@@@@.# ",
57 | " .+@@@@@@$.%%%%%%%%%%%%%%%%%%%%%%%%%%%%$#@@@@@@.# ",
58 | " .+@@@@@@@$.%%%%$$%%%%%%%%%%%%%%$$%%%%$#@@@@@@@.# ",
59 | " .+@@@@@@@$.%%$$##$$%%%%%%%%%%$$##$$%%$#@@@@@@@.# ",
60 | " .+@@@@@@@@$$$##@@##$%%%%%%%%$##@@##$$#@@@@@@@@.# ",
61 | " .+@@@@@@@@@##@@@@@@#.%%%%%%$#@@@@@@##@@@@@@@@@.# ",
62 | " .+@@@@@@@@@@@@@@@@@@$.%%%%$#@@@@@@@@@@@@@@@@@@.# ",
63 | " .+@@@@@@@@@@@@@@@@@@$.%%%%$#@@@@@@@@@@@@@@@@@@.# ",
64 | " .+@@@@@@@@@@@@@@@@@@$.%%%%$#@@@@@@@@@@@@@@@@@@.# ",
65 | " .+@@@@@@@@@@@@@@@@@@$$$$$$$#@@@@@@@@@@@@@@@@@@.# ",
66 | " .+@@@@@@@@@@@@@@@@@@@######@@@@@@@@@@@@@@@@@@@.# ",
67 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
68 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
69 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
70 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
71 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
72 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
73 | " ...............................................# ",
74 | " ################################################ "};
75 |
--------------------------------------------------------------------------------
/icons/file-text.xpm:
--------------------------------------------------------------------------------
1 | /* XPM */
2 | static char * file_text_xpm[] = {
3 | "64 64 7 1",
4 | " c None",
5 | ". c #BABDB6",
6 | "+ c #EEEEEC",
7 | "@ c #D3D7CF",
8 | "# c #2E3436",
9 | "$ c #000000",
10 | "% c #729FCF",
11 | " ................................ ",
12 | " .++++++++++++++++++++++++++++++.. ",
13 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+. ",
14 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.++. ",
15 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@+. ",
16 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+.@+. ",
17 | " .+@@@@@@@@#.@@@@@@@@@@@@@@@@@@@.+@.@+. ",
18 | " .+@@@@@@@@#.@@####@####@######@.+.@.@+. ",
19 | " .+@@@@@@@#.#.@@@@@@@@@@@@@@@@@@.+@.@.@+. ",
20 | " .+@@@@@@@#.#.@#######@#####@##@.+@@.@.@+. ",
21 | " .+@@@@@@#.@#.@@@@@@@@@@@@@@@@@@.+@.@.@.@+. ",
22 | " .+@@@@@@#.@#.@###@##@###@#####@.+@@@@.@.@+. ",
23 | " .+@@@@@#####.@@@@@@@@@@@@@@@@@@.+@.@.@.@.@+. ",
24 | " .+@@@@@#...#.@##@#####@###@###@.+@@@@@@.@.@+. ",
25 | " .+@@@@#.@@@#.@@@@@@@@@@@@@@@@@@.+@@@.@.@.@.@+. ",
26 | " .+@@@@#.@@@#.@@####@###@######@................ ",
27 | " .+@@@###.@###.@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$$$ ",
28 | " .+@@@....@....@##@#####@##@#@@@@@@@@@@@@@@@@@@.$ ",
29 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.$ ",
30 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.$ ",
31 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.$ ",
32 | " .+@@@#####@######@##@####@#@#####@####@####@@@.$ ",
33 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.$ ",
34 | " .+@@@##@####@####@####@#@####@@@###@####@##@@@.$ ",
35 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.$ ",
36 | " .+@@@#@##@####@#######@##@#####@###@##@####@@@.$ ",
37 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.$ ",
38 | " .+@@@###@###@#####@##@###@#@@@@@@@@@@@@@@@@@@@.$ ",
39 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.@@@.$ ",
40 | " .+@@@##@###@####@#####@####@@@@@@@@@@@@@%#.@@@.$ ",
41 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%#.@@@.$ ",
42 | " .+@@@###@####@##@@####@@###@@@@@%@@@@@@%#@.@@@.$ ",
43 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%#%@@@@@%#@.@@@.$ ",
44 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@%#@#%@@@%#@@.@@@.$ ",
45 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@%#@@@#%@@%#@@.@@@.$ ",
46 | " .+@@@###@###@#####@#####@##@@#@@@@@#%%#@@@.@@@.$ ",
47 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#%#@@@.@@@.$ ",
48 | " .+@@@##@##@##@#####@@##@###@@@@@@@@@@#@@@@.@@@.$ ",
49 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@..............@@@.$ ",
50 | " .+@@@##@####@####@#####@@##@@@@@@@@@@@@@@@@@@@.$ ",
51 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.$ ",
52 | " .+@@@####@##@@####@##@#####@##@####@###@###@@@.$ ",
53 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.$ ",
54 | " .+@@@##@@@###@####@#####@@####@####@#######@@@.$ ",
55 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.$ ",
56 | " .+@@@#####@#######@########@@####@@####@@##@@@.$ ",
57 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.$ ",
58 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.$ ",
59 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.$ ",
60 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.$ ",
61 | " .+@@@@@@@@@@@@@@@####@#.@@@@#.@@@@@@@@@@@@@@@@.$ ",
62 | " .+@@@@@@@@@@@@@@@#..#@#.@#.@#.@@@@@@@@@@@@@@@@.$ ",
63 | " .+@@@@@@@@@@@@@@@.#..@..@..@..@@@@@@@@@@@@@@@@.$ ",
64 | " .+@@@@@@@@@@@@@@@@.#@@@@#######.@@@@@@@@@@@@@@.$ ",
65 | " .+@@@@@@@@@@@@@@@@#.@@@@........@@@@@@@@@@@@@@.$ ",
66 | " .+@@@@@@@@@@@@@@@#..#.@@@@@#.##.@@@@@@@@@@@@@@.$ ",
67 | " .+@@@@@@@@@@@@@@@####.@@@#.#....@@@@@@@@@@@@@@.$ ",
68 | " .+@@@@@@@@@@@@@@@.....@@@....@@@@@@@@@@@@@@@@@.$ ",
69 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.$ ",
70 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.$ ",
71 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.$ ",
72 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.$ ",
73 | " ...............................................$ ",
74 | " $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ "};
75 |
--------------------------------------------------------------------------------
/icons/folder-up.xpm:
--------------------------------------------------------------------------------
1 | /* XPM */
2 | static char * folder_up_xpm[] = {
3 | "64 64 7 1",
4 | " c None",
5 | ". c #C4A000",
6 | "+ c #FCE94F",
7 | "@ c #000000",
8 | "# c #EDD400",
9 | "$ c #BABDB6",
10 | "% c #EEEEEC",
11 | " ",
12 | " ",
13 | " ",
14 | " ",
15 | " ",
16 | " ",
17 | " ........................ ",
18 | " .+++++++++++++++++++++++.@ ",
19 | " .+########################.@ ",
20 | " .+##########################.@ ",
21 | " .+############################.@ ",
22 | " .+##############################.@ ",
23 | " .+################################.@ ",
24 | " .+##################################.@ ",
25 | ".+.$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$......................... ",
26 | ".++.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.++++++++++++++++++++++++.@ ",
27 | ".+#+.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.+#########################.@",
28 | ".+##+..............................+##########################.@",
29 | ".+###++++++++++++++++++++++++++++++###########################.@",
30 | ".+############################################################.@",
31 | ".+############################################################.@",
32 | ".+############################################################.@",
33 | ".+############################################################.@",
34 | ".+############################################################.@",
35 | ".+############################################################.@",
36 | ".+############################################################.@",
37 | ".+############################################################.@",
38 | ".+############################################################.@",
39 | ".+############################################################.@",
40 | ".+############################################################.@",
41 | ".+############################################################.@",
42 | ".+############################################################.@",
43 | ".+############################################################.@",
44 | ".+############################################################.@",
45 | ".+############################################################.@",
46 | ".+############################################################.@",
47 | ".+############################################################.@",
48 | ".+############################################################.@",
49 | ".+############################################################.@",
50 | ".+###################################################..#######.@",
51 | ".+##################################################.#.+######.@",
52 | ".+#################################################.#...+#####.@",
53 | ".+################################################.#.....+####.@",
54 | ".+###############################################.#.......+###.@",
55 | ".+##############################################.#.........+##.@",
56 | ".+#############################################.#####.......+#.@",
57 | ".+#############################################.....#...+++++#.@",
58 | ".+#################################################.#...+#####.@",
59 | ".+#################################################.#...+#####.@",
60 | ".+#################################################.#...+#####.@",
61 | ".+#################################################.#...+#####.@",
62 | ".+#################################################.#...+#####.@",
63 | ".+#################################################.#...+#####.@",
64 | ".+#################################################.....+#####.@",
65 | ".+#################################################++++++#####.@",
66 | ".+############################################################.@",
67 | "...............................................................@",
68 | "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@",
69 | " ",
70 | " ",
71 | " ",
72 | " ",
73 | " ",
74 | " "};
75 |
--------------------------------------------------------------------------------
/icons/file-archive.xpm:
--------------------------------------------------------------------------------
1 | /* XPM */
2 | static char * file_archive_xpm[] = {
3 | "64 64 7 1",
4 | " c None",
5 | ". c #BABDB6",
6 | "+ c #EEEEEC",
7 | "@ c #888A85",
8 | "# c #555753",
9 | "$ c #D3D7CF",
10 | "% c #000000",
11 | " ................................ ",
12 | " .+++++++++++++++++++++@@##+++++.. ",
13 | " .+$$$$$$$$$$$$$$$$$$$$@@##$$$$$.+. ",
14 | " .+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$.++. ",
15 | " .+$$$$$$$$$$$$$$$$$$$$@@##$$$$$.+$+. ",
16 | " .+$$$$$$$$$$$$$$$$$$$$@@##$$$$$.+.$+. ",
17 | " .+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$.+$.$+. ",
18 | " .+$$$$$$$$$$$$$$$$$$$$@@##$$$$$.+.$.$+. ",
19 | " .+$$$$$$$$$$$$$$$$$$$$@@##$$$$$.+$.$.$+. ",
20 | " .+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$.+$$.$.$+. ",
21 | " .+$$$$$$$$$$$$$$$$$$$$@@##$$$$$.+$.$.$.$+. ",
22 | " .+$$$$$$$$$$$$$$$$$$$$@@##$$$$$.+$$$$.$.$+. ",
23 | " .+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$.+$.$.$.$.$+. ",
24 | " .+$$$$$$$$$$$$$$$$$$$$@@##$$$$$.+$$$$$$.$.$+. ",
25 | " .+$$$$$$$$$$$$$$$$$$$$@@##$$$$$.+$$$.$.$.$.$+. ",
26 | " .+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$................ ",
27 | " .+$$$$$$$$$$$$$$$$$$$$@@##$$$$$%%%%%%%%%%%%%%%%% ",
28 | " .+$$$$$$$$$$$$$$$$$$$$@@##$$$$$$$$$$$$$$$$$$$$.% ",
29 | " .+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$.% ",
30 | " .+$$$$$$$$$$$$$$$$$$$$@@##$$$$$$$$$$$$$$$$$$$$.% ",
31 | " .+$$$$$$$$$$$$$$$$$$$$@@##$$$$$$$$$$$$$$$$$$$$.% ",
32 | " .+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$.% ",
33 | " .+$$$$$$$$$$$$$$$$$$$$@@##$$$$$$$$$$$$$$$$$$$$.% ",
34 | " .+$$$$$$$$$$$$$$$$$$$$@@##$$$$$$$$$$$$$$$$$$$$.% ",
35 | " .+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$.% ",
36 | " .+$$$$$$$$$$$$$$$$$$$$@@##$$$$$$$$$$$$$$$$$$$$.% ",
37 | " .+$$$$$$$$$$$$$$$$$$$$@@##$$$$$$$$$$$$$$$$$$$$.% ",
38 | " .+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$.% ",
39 | " .+$$$$$$$$$$$$$$$$$$$$@@##$$$$$$$$$$$$$$$$$$$$.% ",
40 | " .+$$$$$$$$$$$$$$$$$$$$@@##$$$$$$$$$$$$$$$$$$$$.% ",
41 | " .+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$.% ",
42 | " .+$$$$$$$$$$$$$$$$$$$$@@##$$$$$$$$$$$$$$$$$$$$.% ",
43 | " .+$$$$$$$$$$$$$$$$$$$$@@##$$$$$$$$$$$$$$$$$$$$.% ",
44 | " .+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$.% ",
45 | " .+$$$$$$$$$$$$$$$$$$$$@@##$$$$$$$$$$$$$$$$$$$$.% ",
46 | " .+$$$$$$$$$$$$$$$$$$$$@@##$$$$$$$$$$$$$$$$$$$$.% ",
47 | " .+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$.% ",
48 | " .+$$$$$$$$$$$$$$$$$$$$$##$$$$$$$$$$$$$$$$$$$$$.% ",
49 | " .+$$$$$$$$$$$$$$$$$$$$#@@#$$$$$$$$$$$$$$$$$$$$.% ",
50 | " .+$$$$$$$$$$$$$$$$$$$#@@@@#$$$$$$$$$$$$$$$$$$$.% ",
51 | " .+$$$$$$$$$$$$$$$$$$$#@##@#$$$$$$$$$$$$$$$$$$$.% ",
52 | " .+$$$$$$$$$$$$$$$$$$$#@##@#$$$$$$$$$$$$$$$$$$$.% ",
53 | " .+$$$$$$$$$$$$$$$$$$$#@@@@#$$$$$$$$$$$$$$$$$$$.% ",
54 | " .+$$$$$$$$$$$$$$$$$$$#@##@#$$$$$$$$$$$$$$$$$$$.% ",
55 | " .+$$$$$$$$$$$$$$$$$$$#@##@#$$$$$$$$$$$$$$$$$$$.% ",
56 | " .+$$$$$$$$$$$$$$$$$$$#@@@@#$$$$$$$$$$$$$$$$$$$.% ",
57 | " .+$$$$$$$$$$$$$$$$$$$$#@@#$$$$$$$$$$$$$$$$$$$$.% ",
58 | " .+$$$$$$$$$$$$$$$$$$$$$##$$$$$$$$$$$$$$$$$$$$$.% ",
59 | " .+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$.% ",
60 | " .+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$.% ",
61 | " .+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$.% ",
62 | " .+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$.% ",
63 | " .+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$.% ",
64 | " .+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$.% ",
65 | " .+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$.% ",
66 | " .+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$.% ",
67 | " .+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$.% ",
68 | " .+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$.% ",
69 | " .+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$.% ",
70 | " .+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$.% ",
71 | " .+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$.% ",
72 | " .+$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$.% ",
73 | " ...............................................% ",
74 | " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% "};
75 |
--------------------------------------------------------------------------------
/icons/file-config.xpm:
--------------------------------------------------------------------------------
1 | /* XPM */
2 | static char * file_config_xpm[] = {
3 | "64 64 7 1",
4 | " c None",
5 | ". c #BABDB6",
6 | "+ c #EEEEEC",
7 | "@ c #D3D7CF",
8 | "# c #000000",
9 | "$ c #555753",
10 | "% c #888A85",
11 | " ................................ ",
12 | " .++++++++++++++++++++++++++++++.. ",
13 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+. ",
14 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.++. ",
15 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@+. ",
16 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+.@+. ",
17 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@.@+. ",
18 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+.@.@+. ",
19 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@.@.@+. ",
20 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@@.@.@+. ",
21 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@.@.@.@+. ",
22 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@@@@.@.@+. ",
23 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@.@.@.@.@+. ",
24 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@@@@@@.@.@+. ",
25 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@@@.@.@.@.@+. ",
26 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@................ ",
27 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@################# ",
28 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
29 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
30 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
31 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
32 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
33 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
34 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$.@@@@@@@@@@.# ",
35 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@$$..$.@@@@@@@@@@@.# ",
36 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@$..%$.@@@@@@@@@@@@.# ",
37 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@.$%%$.@@@@@@@@@@@@@.# ",
38 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@.$%.$@@@@@@@@@@@@@@.# ",
39 | " .+@@@@@@@@@@@@@@@@@@@@@@@@.$%%.$@@@@@@@@$@@@@@.# ",
40 | " .+@@@@@@@@@@@@@@@@@@@@@@@@.$%%%.$@@@@@@$$@@@@@.# ",
41 | " .+@@@@@@@@@@@@@@@@@@@@@@@@.$%%%%.$@@@@$.$@@@@@.# ",
42 | " .+@@@@@@@@@@@@@@@@@@@@@@@@.$%%%%%.$@@$..$@@@@@.# ",
43 | " .+@@@@@@@@@@@@@@@@@@@@@@@@.$%%%%%%.$$.%.$@@@@@.# ",
44 | " .+@@@@@@@@@@@@@@@@@@@@@@@$$%%%%%%%%..%.$@@@@@@.# ",
45 | " .+@@@@@@@@@@@@@@@@@@@@@@$.%%%%%%%%%%%%$$@@@@@@.# ",
46 | " .+@@@@@@@@@@@@@@@@@@@@@$.%%%%%%%%%%%$$.@@@@@@@.# ",
47 | " .+@@@@@@@@@@@@@@@@@@@@$.%%%%%%%$$$$$..@@@@@@@@.# ",
48 | " .+@@@@@@@@@@@@@@@@@@@$.%%%%%%%$.....@@@@@@@@@@.# ",
49 | " .+@@@@@@@@@@@@@@@@@@$.%%%%%%%$.@@@@@@@@@@@@@@@.# ",
50 | " .+@@@@@@@@@@@@@@@@@$.%%%%%%%$.@@@@@@@@@@@@@@@@.# ",
51 | " .+@@@@@@@@@@@@@@@@$.%%%%%%%$.@@@@@@@@@@@@@@@@@.# ",
52 | " .+@@@@@@@@@@@@@@@$.%%%%%%%$.@@@@@@@@@@@@@@@@@@.# ",
53 | " .+@@@@@@@@@@$$$$$.%%%%%%%$.@@@@@@@@@@@@@@@@@@@.# ",
54 | " .+@@@@@@@@$$.....%%%%%%%$.@@@@@@@@@@@@@@@@@@@@.# ",
55 | " .+@@@@@@@$..%%%%%%%%%%%$.@@@@@@@@@@@@@@@@@@@@@.# ",
56 | " .+@@@@@@.$%%%%%%%%%%%%$.@@@@@@@@@@@@@@@@@@@@@@.# ",
57 | " .+@@@@@@.$%$$%%%%%%%%$.@@@@@@@@@@@@@@@@@@@@@@@.# ",
58 | " .+@@@@@.$%$..$%%%%%%.$@@@@@@@@@@@@@@@@@@@@@@@@.# ",
59 | " .+@@@@@.$$.@@.$%%%%%.$@@@@@@@@@@@@@@@@@@@@@@@@.# ",
60 | " .+@@@@@.$.@@@@.$%%%%.$@@@@@@@@@@@@@@@@@@@@@@@@.# ",
61 | " .+@@@@@..@@@@@@.$%%%.$@@@@@@@@@@@@@@@@@@@@@@@@.# ",
62 | " .+@@@@@.@@@@@@@@.$%%.$@@@@@@@@@@@@@@@@@@@@@@@@.# ",
63 | " .+@@@@@@@@@@@@@@.$%%$@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
64 | " .+@@@@@@@@@@@@@$.%%$.@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
65 | " .+@@@@@@@@@@@@$.%$$.@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
66 | " .+@@@@@@@@@@@$$$$..@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
67 | " .+@@@@@@@@@@.....@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
68 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
69 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
70 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
71 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
72 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
73 | " ...............................................# ",
74 | " ################################################ "};
75 |
--------------------------------------------------------------------------------
/icons/file-object.xpm:
--------------------------------------------------------------------------------
1 | /* XPM */
2 | static char * file_object_xpm[] = {
3 | "64 64 7 1",
4 | " c None",
5 | ". c #BABDB6",
6 | "+ c #EEEEEC",
7 | "@ c #D3D7CF",
8 | "# c #000000",
9 | "$ c #555753",
10 | "% c #888A85",
11 | " ................................ ",
12 | " .++++++++++++++++++++++++++++++.. ",
13 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+. ",
14 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.++. ",
15 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@+. ",
16 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+.@+. ",
17 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@.@+. ",
18 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+.@.@+. ",
19 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@.@.@+. ",
20 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@@.@.@+. ",
21 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@.@.@.@+. ",
22 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@@@@.@.@+. ",
23 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@.@.@.@.@+. ",
24 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@@@@@@.@.@+. ",
25 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@@@.@.@.@.@+. ",
26 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@................ ",
27 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@################# ",
28 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
29 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
30 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
31 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
32 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
33 | " .+@@@@@@@@@@@@@@@@$$$$@@@@@@@@@@@@@@@@@@@@@@@@.# ",
34 | " .+@@@@@@@@@@@@@@@@$.$#@@@@@@@@@@@@@@@@@@@@@@@@.# ",
35 | " .+@@@@@@@@@@@@$@@@$.$#@@@#@@@@@@@@@@@@@@@@@@@@.# ",
36 | " .+@@@@@@@@@@@$.$@$.%%$#@#$#@@@@@@@@@@@@@@@@@@@.# ",
37 | " .+@@@@@@@@@@$.%.$.%%%%$#$%$#@@@@@@@@@@@@@@@@@@.# ",
38 | " .+@@@@@@@@@@@$.%.%%%%%%$%$#@@@@@@@@@@@@@@@@@@@.# ",
39 | " .+@@@@@@@@@@@@$.%%%##%%%$#@@@@@@@@@@@@@@@@@@@@.# ",
40 | " .+@@@@@@@@@@@@@$.%#@@$%$#@@@@@@@@@@@@@@@@@@@@@.# ",
41 | " .+@@@@@@@@@@@@@$.%#@@$%$#@@@@@@@@@@@@@@@@@@@@@.# ",
42 | " .+@@@@@@@@@@@@$.%%%$$%%%$#@@@@@@@@@@@@@@@@@@@@.# ",
43 | " .+@@@@@@@@@@@$.%.%%%%%%$%$#$$$$@@@@@@@@@@@@@@@.# ",
44 | " .+@@@@@@@@@@$.%.$.%%%%$#$%$#.$#@@@@@@@@@@@@@@@.# ",
45 | " .+@@@@@@@@@@@$.$@$.%%$#$#$#$.$#@@@#@@@@@@@@@@@.# ",
46 | " .+@@@@@@@@@@@@$@@@$.$#$.$#$.%%$#@#$#@@@@@@@@@@.# ",
47 | " .+@@@@@@@@@@@@@@@@$$$#.%.$.%%%%$#$%$#@@@@@@@@@.# ",
48 | " .+@@@@@@@@@@@@@@@@####$.%.%%%%%%$%$#@@@@@@@@@@.# ",
49 | " .+@@@@@@@@@@@@@@@@@@@@@$.%%%##%%%$#@@@@@@@@@@@.# ",
50 | " .+@@@@@@@@@@@@@@@@@@@@@@$.%#@@$%$#@@@@@@@@@@@@.# ",
51 | " .+@@@@@@@@@@@@@@@@@@@@@@$.%#@@$%$#@@@@@@@@@@@@.# ",
52 | " .+@@@@@@@@@@@@@@@@@@@@@$.%%%$$%%%$#@@@@@@@@@@@.# ",
53 | " .+@@@@@@@@@@@@@@@@$$$$$.%.%%%%%%$%$#@@@@@@@@@@.# ",
54 | " .+@@@@@@@@@@@@@@@@$.$#.%.$.%%%%$#$%$#@@@@@@@@@.# ",
55 | " .+@@@@@@@@@@@@$@@@$.$#$.$#$.%%$#@#$#@@@@@@@@@@.# ",
56 | " .+@@@@@@@@@@@$.$@$.%%$#$#$#$.$#@@@#@@@@@@@@@@@.# ",
57 | " .+@@@@@@@@@@$.%.$.%%%%$#$%$#$$#@@@@@@@@@@@@@@@.# ",
58 | " .+@@@@@@@@@@@$.%.%%%%%%$%$#####@@@@@@@@@@@@@@@.# ",
59 | " .+@@@@@@@@@@@@$.%%%##%%%$#@@@@@@@@@@@@@@@@@@@@.# ",
60 | " .+@@@@@@@@@@@@@$.%#@@$%$#@@@@@@@@@@@@@@@@@@@@@.# ",
61 | " .+@@@@@@@@@@@@@$.%#@@$%$#@@@@@@@@@@@@@@@@@@@@@.# ",
62 | " .+@@@@@@@@@@@@$.%%%$$%%%$#@@@@@@@@@@@@@@@@@@@@.# ",
63 | " .+@@@@@@@@@@@$.%.%%%%%%$%$#@@@@@@@@@@@@@@@@@@@.# ",
64 | " .+@@@@@@@@@@$.%.$.%%%%$#$%$#@@@@@@@@@@@@@@@@@@.# ",
65 | " .+@@@@@@@@@@@$.$@$.%%$#@#$#@@@@@@@@@@@@@@@@@@@.# ",
66 | " .+@@@@@@@@@@@@$@@@$.$#@@@#@@@@@@@@@@@@@@@@@@@@.# ",
67 | " .+@@@@@@@@@@@@@@@@$$$#@@@@@@@@@@@@@@@@@@@@@@@@.# ",
68 | " .+@@@@@@@@@@@@@@@@####@@@@@@@@@@@@@@@@@@@@@@@@.# ",
69 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
70 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
71 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
72 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
73 | " ...............................................# ",
74 | " ################################################ "};
75 |
--------------------------------------------------------------------------------
/icons/winicon64x64.xpm:
--------------------------------------------------------------------------------
1 | /* XPM */
2 | static char * winicon64x64_xpm[] = {
3 | "64 64 7 1",
4 | " c None",
5 | ". c #C4A000",
6 | "+ c #FCE94F",
7 | "@ c #000000",
8 | "# c #EDD400",
9 | "$ c #BABDB6",
10 | "% c #EEEEEC",
11 | " ",
12 | " ",
13 | " ",
14 | " ",
15 | " ",
16 | " ",
17 | " ........................ ",
18 | " .+++++++++++++++++++++++.@ ",
19 | " .+########################.@ ",
20 | " .+##########################.@ ",
21 | " .+############################.@ ",
22 | " .+##############################.@ ",
23 | " .+################################.@ ",
24 | " .+##################################.@ ",
25 | ".+.$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$......................... ",
26 | ".++.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.++++++++++++++++++++++++.@ ",
27 | ".+#+.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.+#########################.@",
28 | ".+##+..............................+##########################.@",
29 | ".+###++++++++++++++++++++++++++++++###########################.@",
30 | ".+############################################################.@",
31 | ".+############################################################.@",
32 | ".+############################################################.@",
33 | ".+############################################################.@",
34 | ".+############################################################.@",
35 | ".+############################################################.@",
36 | ".+############################################################.@",
37 | ".+############################################################.@",
38 | ".+############################################################.@",
39 | ".+############################################################.@",
40 | ".+############################################################.@",
41 | ".+############################################################.@",
42 | ".+############################################################.@",
43 | ".+############################################################.@",
44 | ".+############################################################.@",
45 | ".+############################################################.@",
46 | ".+############################################################.@",
47 | ".+############################################################.@",
48 | ".+############################################################.@",
49 | ".+############################################################.@",
50 | ".+############################################################.@",
51 | ".+############################################################.@",
52 | ".+############################################################.@",
53 | ".+############################################################.@",
54 | ".+############################################################.@",
55 | ".+############################################################.@",
56 | ".+############################################################.@",
57 | ".+############################################################.@",
58 | ".+############################################################.@",
59 | ".+############################################################.@",
60 | ".+############################################################.@",
61 | ".+############################################################.@",
62 | ".+############################################################.@",
63 | ".+############################################################.@",
64 | ".+############################################################.@",
65 | ".+############################################################.@",
66 | ".+############################################################.@",
67 | "...............................................................@",
68 | "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@",
69 | " ",
70 | " ",
71 | " ",
72 | " ",
73 | " ",
74 | " "};
75 |
--------------------------------------------------------------------------------
/icons/file-info.xpm:
--------------------------------------------------------------------------------
1 | /* XPM */
2 | static char * file_info_xpm[] = {
3 | "64 64 8 1",
4 | " c None",
5 | ". c #BABDB6",
6 | "+ c #EEEEEC",
7 | "@ c #D3D7CF",
8 | "# c #000000",
9 | "$ c #204A87",
10 | "% c #729FCF",
11 | "& c #3465A4",
12 | " ................................ ",
13 | " .++++++++++++++++++++++++++++++.. ",
14 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+. ",
15 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.++. ",
16 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@+. ",
17 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+.@+. ",
18 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@.@+. ",
19 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+.@.@+. ",
20 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@.@.@+. ",
21 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@@.@.@+. ",
22 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@.@.@.@+. ",
23 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@@@@.@.@+. ",
24 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@.@.@.@.@+. ",
25 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@@@@@@.@.@+. ",
26 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@@@.@.@.@.@+. ",
27 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@................ ",
28 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@################# ",
29 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
30 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
31 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
32 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
33 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
34 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
35 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
36 | " .+@@@@@@@@@@@@@@@@@@$$$$$$$$@@@@@@@@@@@@@@@@@@.# ",
37 | " .+@@@@@@@@@@@@@@@$$$%%%%%%%%$$$@@@@@@@@@@@@@@@.# ",
38 | " .+@@@@@@@@@@@@@$$%%%&&&&&&&&%%%$$@@@@@@@@@@@@@.# ",
39 | " .+@@@@@@@@@@@@$%%&&&&&&&&&&&&&&%%$@@@@@@@@@@@@.# ",
40 | " .+@@@@@@@@@@@$%&&&&&&&&&&&&&&&&&&%$@@@@@@@@@@@.# ",
41 | " .+@@@@@@@@@@$%&&&&&&&&&%%&&&&&&&&&%.@@@@@@@@@@.# ",
42 | " .+@@@@@@@@@$%&&&&&&&&&%...&&&&&&&&&$.@@@@@@@@@.# ",
43 | " .+@@@@@@@@$%&&&&&&&&&%.@@+.&&&&&&&&&$.@@@@@@@@.# ",
44 | " .+@@@@@@@@$%&&&&&&&&&%.@@+.&&&&&&&&&$.@@@@@@@@.# ",
45 | " .+@@@@@@@$%&&&&&&&&&&&%.+.&&&&&&&&&&&$.@@@@@@@.# ",
46 | " .+@@@@@@@$%&&&&&&&&&&&&..&&&&&&&&&&&&$.@@@@@@@.# ",
47 | " .+@@@@@@@$%&&&&&&&&&&&&&&&&&&&&&&&&&&$.@@@@@@@.# ",
48 | " .+@@@@@@$%&&&&&&&&&&&&&&&&&&&&&&&&&&&&$.@@@@@@.# ",
49 | " .+@@@@@@$%&&&&&&&&&%%%%%%%%&&&&&&&&&&&$.@@@@@@.# ",
50 | " .+@@@@@@$%&&&&&&&&&%.......&&&&&&&&&&&$.@@@@@@.# ",
51 | " .+@@@@@@$%&&&&&&&&&%%%.@@+.&&&&&&&&&&&$.@@@@@@.# ",
52 | " .+@@@@@@$%&&&&&&&&&&&%.@@+.&&&&&&&&&&&$.@@@@@@.# ",
53 | " .+@@@@@@$%&&&&&&&&&&&%.@@+.&&&&&&&&&&&$.@@@@@@.# ",
54 | " .+@@@@@@$%&&&&&&&&&&&%.@@+.&&&&&&&&&&&$.@@@@@@.# ",
55 | " .+@@@@@@$%&&&&&&&&&&&%.@@+.&&&&&&&&&&&$.@@@@@@.# ",
56 | " .+@@@@@@@$%&&&&&&&&&&%.@@+.&&&&&&&&&&$.@@@@@@@.# ",
57 | " .+@@@@@@@$%&&&&&&&&&&%.@@+.&&&&&&&&&&$.@@@@@@@.# ",
58 | " .+@@@@@@@$%&&&&&&&&&&%.@@+.&&&&&&&&&&$.@@@@@@@.# ",
59 | " .+@@@@@@@@$%&&&&&&&&&%.@@+.&&&&&&&&&$.@@@@@@@@.# ",
60 | " .+@@@@@@@@$%&&&&&&&%%%.@@+...&&&&&&&$.@@@@@@@@.# ",
61 | " .+@@@@@@@@@$%&&&&&&%++++++++.&&&&&&$.@@@@@@@@@.# ",
62 | " .+@@@@@@@@@@$%&&&&&..........&&&&&$.@@@@@@@@@@.# ",
63 | " .+@@@@@@@@@@@.$&&&&&&&&&&&&&&&&&&$.@@@@@@@@@@@.# ",
64 | " .+@@@@@@@@@@@@.$$&&&&&&&&&&&&&&$$.@@@@@@@@@@@@.# ",
65 | " .+@@@@@@@@@@@@@..$$$&&&&&&&&$$$..@@@@@@@@@@@@@.# ",
66 | " .+@@@@@@@@@@@@@@@...$$$$$$$$...@@@@@@@@@@@@@@@.# ",
67 | " .+@@@@@@@@@@@@@@@@@@........@@@@@@@@@@@@@@@@@@.# ",
68 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
69 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
70 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
71 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
72 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
73 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
74 | " ...............................................# ",
75 | " ################################################ "};
76 |
--------------------------------------------------------------------------------
/icons/file-audio.xpm:
--------------------------------------------------------------------------------
1 | /* XPM */
2 | static char * file_audio_xpm[] = {
3 | "64 64 8 1",
4 | " c None",
5 | ". c #BABDB6",
6 | "+ c #EEEEEC",
7 | "@ c #D3D7CF",
8 | "# c #000000",
9 | "$ c #AD7FA8",
10 | "% c #75507B",
11 | "& c #5C3566",
12 | " ................................ ",
13 | " .++++++++++++++++++++++++++++++.. ",
14 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+. ",
15 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.++. ",
16 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@+. ",
17 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+.@+. ",
18 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@.@+. ",
19 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+.@.@+. ",
20 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@.@.@+. ",
21 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@@.@.@+. ",
22 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@.@.@.@+. ",
23 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@@@@.@.@+. ",
24 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@.@.@.@.@+. ",
25 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@@@@@@.@.@+. ",
26 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@@@.@.@.@.@+. ",
27 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@................ ",
28 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@################# ",
29 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
30 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
31 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
32 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
33 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
34 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
35 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
36 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@..$$%%&&&&&&@@@@@@.# ",
37 | " .+@@@@@@@@@@@@@@@@@@@@..$$%%&&&&&&$$$$&.@@@@@@.# ",
38 | " .+@@@@@@@@@@@@@@..$$%%&&&&&&$$$$$$%%%%&.@@@@@@.# ",
39 | " .+@@@@@@@@@@@@@@&&&&&&$$$$$$%%%%%%%%%%&.@@@@@@.# ",
40 | " .+@@@@@@@@@@@@@@&$$$$$%%%%%%%%%%%%%%%%&.@@@@@@.# ",
41 | " .+@@@@@@@@@@@@@@&$++@%%%%%%%%%%%%%%%%%&.@@@@@@.# ",
42 | " .+@@@@@@@@@@@@@@&$@%%%%%%%%%%%%%&&&&&%&.@@@@@@.# ",
43 | " .+@@@@@@@@@@@@@@&$%%%%%%%%%%&&&&%$..&$&.@@@@@@.# ",
44 | " .+@@@@@@@@@@@@@@&$%%%%%%&&&&%$..@@@@&$&.@@@@@@.# ",
45 | " .+@@@@@@@@@@@@@@&$%&&&&&%$..@@@@@@@@&$&.@@@@@@.# ",
46 | " .+@@@@@@@@@@@@@@&$&.....@@@@@@@@@@@@&$&.@@@@@@.# ",
47 | " .+@@@@@@@@@@@@@@&$&.@@@@@@@@@@@@@@@@&$&.@@@@@@.# ",
48 | " .+@@@@@@@@@@@@@@&$&.@@@@@@@@@@@@@@@@&$&.@@@@@@.# ",
49 | " .+@@@@@@@@@@@@@@&$&.@@@@@@@@@@@@@@@@&$&.@@@@@@.# ",
50 | " .+@@@@@@@@@@@@@@&$&.@@@@@@@@@@@@@@@@&$&.@@@@@@.# ",
51 | " .+@@@@@@@@@@@@@@&$&.@@@@@@@@@@@@@@@@&$&.@@@@@@.# ",
52 | " .+@@@@@@@@@@@@@@&$&.@@@@@@@@@@@@@@@@&$&.@@@@@@.# ",
53 | " .+@@@@@@@@@@@@@@&$&.@@@@@@@@@@@@@@@@&$&.@@@@@@.# ",
54 | " .+@@@@@@@@@@@@@@&$&.@@@@@@@@@@@@@@@@&$&.@@@@@@.# ",
55 | " .+@@@@@@@@@@@@@@&$&.@@@@@@@@@@@@@@@@&$&.@@@@@@.# ",
56 | " .+@@@@@@@@@@@@@@&$&.@@@@@@@@@@@&&&&&&$&.@@@@@@.# ",
57 | " .+@@@@@@@@@@@@@@&$&.@@@@@@@@@@&$$$$$$%&.@@@@@@.# ",
58 | " .+@@@@@@@@@@@@@@&$&.@@@@@@@@@&$+@%%%%%&.@@@@@@.# ",
59 | " .+@@@@@@@@@&&&&&&$&.@@@@@@@@&$@+%%%%%%&.@@@@@@.# ",
60 | " .+@@@@@@@@&$$$$$$%&.@@@@@@@@&$%%%%%%%%&.@@@@@@.# ",
61 | " .+@@@@@@@&$+@%%%%%&.@@@@@@@@&$%%%%%%%%&.@@@@@@.# ",
62 | " .+@@@@@@&$@+%%%%%%&.@@@@@@@@@&$%%%%%%&.@@@@@@@.# ",
63 | " .+@@@@@@&$%%%%%%%%&.@@@@@@@@@@&&&&&&&.@@@@@@@@.# ",
64 | " .+@@@@@@&$%%%%%%%%&.@@@@@@@@@@@......@@@@@@@@@.# ",
65 | " .+@@@@@@@&$%%%%%%&.@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
66 | " .+@@@@@@@@&&&&&&&.@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
67 | " .+@@@@@@@@@......@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
68 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
69 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
70 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
71 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
72 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
73 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
74 | " ...............................................# ",
75 | " ################################################ "};
76 |
--------------------------------------------------------------------------------
/icons/file-video.xpm:
--------------------------------------------------------------------------------
1 | /* XPM */
2 | static char * file_video_xpm[] = {
3 | "64 64 8 1",
4 | " c None",
5 | ". c #BABDB6",
6 | "+ c #EEEEEC",
7 | "@ c #D3D7CF",
8 | "# c #000000",
9 | "$ c #2E3436",
10 | "% c #888A85",
11 | "& c #555753",
12 | " ................................ ",
13 | " .++++++++++++++++++++++++++++++.. ",
14 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+. ",
15 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.++. ",
16 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@+. ",
17 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+.@+. ",
18 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@.@+. ",
19 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+.@.@+. ",
20 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@.@.@+. ",
21 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@@.@.@+. ",
22 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@.@.@.@+. ",
23 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@@@@.@.@+. ",
24 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@.@.@.@.@+. ",
25 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@@@@@@.@.@+. ",
26 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@@@.@.@.@.@+. ",
27 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@................ ",
28 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@################# ",
29 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
30 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
31 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
32 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
33 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
34 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
35 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
36 | " .+@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$@@@@@@.# ",
37 | " .+@@@@@@$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$.@@@@@@.# ",
38 | " .+@@@@@@$%++++$$$$++++$$$$++++$$$$++++$.@@@@@@.# ",
39 | " .+@@@@@@$%$++++$$$$++++$$$$++++$$$$+++$.@@@@@@.# ",
40 | " .+@@@@@@$%$$++++$$$$++++$$$$++++$$$$++$.@@@@@@.# ",
41 | " .+@@@@@@$%$$$++++$$$$++++$$$$++++$$$$+$.@@@@@@.# ",
42 | " .+@@@@@@$%&&&&&&&&&&&&&&&&&&&&&&&&&&&&$.@@@@@@.# ",
43 | " .+@@@@@@$%$$$++++$$$$++++$$$$++++$$$$+$.@@@@@@.# ",
44 | " .+@@@@@@$%$$++++$$$$++++$$$$++++$$$$++$.@@@@@@.# ",
45 | " .+@@@@@@$%$++++$$$$++++$$$$++++$$$$+++$.@@@@@@.# ",
46 | " .+@@@@@@$%++++$$$$++++$$$$++++$$$$++++$.@@@@@@.# ",
47 | " .+@@@@@@$%&&&&&&&&&&&&&&&&&&&&&&&&&&&&$.@@@@@@.# ",
48 | " .+@@@@@@$%&&&&&&&&&&&&&&&&&&&&&&&&&&&&$.@@@@@@.# ",
49 | " .+@@@@@@$%&&&&&&&&&&&&&&&&&&&&&&&&&&&&$.@@@@@@.# ",
50 | " .+@@@@@@$%&&&&&&&&$$&&&&&&&&&&&&&&&&&&$.@@@@@@.# ",
51 | " .+@@@@@@$%&&&&&&&&$$$$&&&&&&&&&&&&&&&&$.@@@@@@.# ",
52 | " .+@@@@@@$%&&&&&&&&$$$$$$&&&&&&&&&&&&&&$.@@@@@@.# ",
53 | " .+@@@@@@$%&&&&&&&&$$$$$$$$&&&&&&&&&&&&$.@@@@@@.# ",
54 | " .+@@@@@@$%&&&&&&&&$$$$$$$$$$&&&&&&&&&&$.@@@@@@.# ",
55 | " .+@@@@@@$%&&&&&&&&$$$$$$$$$$$$&&&&&&&&$.@@@@@@.# ",
56 | " .+@@@@@@$%&&&&&&&&$$$$$$$$$$$$%&&&&&&&$.@@@@@@.# ",
57 | " .+@@@@@@$%&&&&&&&&$$$$$$$$$$%%&&&&&&&&$.@@@@@@.# ",
58 | " .+@@@@@@$%&&&&&&&&$$$$$$$$%%&&&&&&&&&&$.@@@@@@.# ",
59 | " .+@@@@@@$%&&&&&&&&$$$$$$%%&&&&&&&&&&&&$.@@@@@@.# ",
60 | " .+@@@@@@$%&&&&&&&&$$$$%%&&&&&&&&&&&&&&$.@@@@@@.# ",
61 | " .+@@@@@@$%&&&&&&&&$$%%&&&&&&&&&&&&&&&&$.@@@@@@.# ",
62 | " .+@@@@@@$%&&&&&&&&%%&&&&&&&&&&&&&&&&&&$.@@@@@@.# ",
63 | " .+@@@@@@$%&&&&&&&&&&&&&&&&&&&&&&&&&&&&$.@@@@@@.# ",
64 | " .+@@@@@@$%&&&&&&&&&&&&&&&&&&&&&&&&&&&&$.@@@@@@.# ",
65 | " .+@@@@@@$%&&&&&&&&&&&&&&&&&&&&&&&&&&&&$.@@@@@@.# ",
66 | " .+@@@@@@$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$.@@@@@@.# ",
67 | " .+@@@@@@................................@@@@@@.# ",
68 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
69 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
70 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
71 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
72 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
73 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
74 | " ...............................................# ",
75 | " ################################################ "};
76 |
--------------------------------------------------------------------------------
/icons/file-broken.xpm:
--------------------------------------------------------------------------------
1 | /* XPM */
2 | static char * file_broken_xpm[] = {
3 | "64 64 9 1",
4 | " c None",
5 | ". c #BABDB6",
6 | "+ c #EEEEEC",
7 | "@ c #D3D7CF",
8 | "# c #000000",
9 | "$ c #737373",
10 | "% c #555753",
11 | "& c #2E3436",
12 | "* c #888A85",
13 | " ................................ ",
14 | " .++++++++++++++++++++++++++++++.. ",
15 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+. ",
16 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.++. ",
17 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@+. ",
18 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+.@+. ",
19 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@.@+. ",
20 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+.@.@+. ",
21 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@.@.@+. ",
22 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@@.@.@+. ",
23 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@.@.@.@+. ",
24 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@@@@.@.@+. ",
25 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@.@.@.@.@+. ",
26 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@@@@@@.@.@+. ",
27 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@@@.@.@.@.@+. ",
28 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@................ ",
29 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@################# ",
30 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
31 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
32 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
33 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
34 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
35 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
36 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
37 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
38 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
39 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
40 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.@@@@@@.# ",
41 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.#.@@@@@.# ",
42 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# #.@@@@.# ",
43 | " ......@@@@@@@@@@@@@@@@@@@@@@@@@@@@@..# #.@@@.# ",
44 | " ######.@@@@@@@.@@@@@...@@@@@@@@@@@.## #.@@.# ",
45 | " #.@@@@@.#.@@@.###..@@@@@@@@.# #...# ",
46 | " #.@@@.# #.@.# ##..@@@@@.# #### ",
47 | " #.@.# #.# ##..@@.# ",
48 | " #.# # ##..# ",
49 | " ...... # ## ........ ",
50 | " .+++++. .++++++.# ",
51 | " .+@@@@+. . . .+@@@@@@.# ",
52 | " .+@@@@@+. . .+. .+. .+@@@@@@@.# ",
53 | " .+@@@@@@+.. ..+.. .+@+. .+@+.+@@@@@@@@.# ",
54 | " .+@@@@@@@++.++@++....+@@@+......+@@@+@@@@@@@@@.# ",
55 | " .+@@@@@@@@@+@@@@@++++@@@@@++++++@@@@@@@@@@@@@@.# ",
56 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
57 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
58 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
59 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$@.# ",
60 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@$+++++++++++++.@.# ",
61 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@$+++%&&%++++++.@.# ",
62 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@$++%*%&&%+++++.@.# ",
63 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@$++*++&&&.++++.@.# ",
64 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@$++.++.&&&+%++.@.# ",
65 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@$++@+++%&&%&++.@.# ",
66 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@$++++%&&&&&&++.@.# ",
67 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@$+++++%&&&&&++.@.# ",
68 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@$++++++%&&&&++.@.# ",
69 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@$+++++++%&&&++.@.# ",
70 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@$++++++++%&&++.@.# ",
71 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@$+++++++++%&++.@.# ",
72 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@$+++++++++++++.@.# ",
73 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@...............@.# ",
74 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
75 | " ...............................................# ",
76 | " ################################################ "};
77 |
--------------------------------------------------------------------------------
/icons/folder-code.xpm:
--------------------------------------------------------------------------------
1 | /* XPM */
2 | static char * folder_code_xpm[] = {
3 | "64 64 9 1",
4 | " c None",
5 | ". c #C4A000",
6 | "+ c #FCE94F",
7 | "@ c #000000",
8 | "# c #EDD400",
9 | "$ c #BABDB6",
10 | "% c #EEEEEC",
11 | "& c #729FCF",
12 | "* c #3465A4",
13 | " ",
14 | " ",
15 | " ",
16 | " ",
17 | " ",
18 | " ",
19 | " ........................ ",
20 | " .+++++++++++++++++++++++.@ ",
21 | " .+########################.@ ",
22 | " .+##########################.@ ",
23 | " .+############################.@ ",
24 | " .+##############################.@ ",
25 | " .+################################.@ ",
26 | " .+##################################.@ ",
27 | ".+.$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$......................... ",
28 | ".++.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.++++++++++++++++++++++++.@ ",
29 | ".+#+.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.+#########################.@",
30 | ".+##+..............................+##########################.@",
31 | ".+###++++++++++++++++++++++++++++++###########################.@",
32 | ".+############################################################.@",
33 | ".+############################################################.@",
34 | ".+############################################################.@",
35 | ".+############################################################.@",
36 | ".+############################################################.@",
37 | ".+################################&&***.##########&***..######.@",
38 | ".+###############################&***..############&&***.#####.@",
39 | ".+##############################&***.################&***.####.@",
40 | ".+##############################&***.################&***.####.@",
41 | ".+##############################&***.##*****#***#**##&***.####.@",
42 | ".+##############################&***.################&***.####.@",
43 | ".+##############################&***.##**#*****######&***.####.@",
44 | ".+##############################&***.################&***.####.@",
45 | ".+##############################&***.##**#***########&***.####.@",
46 | ".+##############################&***.################&***.####.@",
47 | ".+##############################&***.#####**#****####&***.####.@",
48 | ".+##############################&***.################&***.####.@",
49 | ".+##############################&***.#####*****#**###&***.####.@",
50 | ".+#############################&***.##################&***.###.@",
51 | ".+############################&***.####*###############&***.##.@",
52 | ".+###########################&***.######################&***.#.@",
53 | ".+############################&***.####****#**#########&***.##.@",
54 | ".+#############################&***.##################&***.###.@",
55 | ".+##############################&***.################&***.####.@",
56 | ".+##############################&***.##**#*****######&***.####.@",
57 | ".+##############################&***.################&***.####.@",
58 | ".+##############################&***.#####**#***#####&***.####.@",
59 | ".+##############################&***.################&***.####.@",
60 | ".+##############################&***.#####***########&***.####.@",
61 | ".+##############################&***.################&***.####.@",
62 | ".+##############################&***.#####*##########&***.####.@",
63 | ".+##############################&***.################&***.####.@",
64 | ".+##############################&***.##**############&***.####.@",
65 | ".+##############################&***.################&***.####.@",
66 | ".+###############################&***..############&&***.#####.@",
67 | ".+################################&&***.##########&***..######.@",
68 | ".+############################################################.@",
69 | "...............................................................@",
70 | "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@",
71 | " ",
72 | " ",
73 | " ",
74 | " ",
75 | " ",
76 | " "};
77 |
--------------------------------------------------------------------------------
/icons/folder-gear.xpm:
--------------------------------------------------------------------------------
1 | /* XPM */
2 | static char * folder_gear_xpm[] = {
3 | "64 64 9 1",
4 | " c None",
5 | ". c #C4A000",
6 | "+ c #FCE94F",
7 | "@ c #000000",
8 | "# c #EDD400",
9 | "$ c #BABDB6",
10 | "% c #EEEEEC",
11 | "& c #555753",
12 | "* c #888A85",
13 | " ",
14 | " ",
15 | " ",
16 | " ",
17 | " ",
18 | " ",
19 | " ........................ ",
20 | " .+++++++++++++++++++++++.@ ",
21 | " .+########################.@ ",
22 | " .+##########################.@ ",
23 | " .+############################.@ ",
24 | " .+##############################.@ ",
25 | " .+################################.@ ",
26 | " .+##################################.@ ",
27 | ".+.$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$......................... ",
28 | ".++.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.++++++++++++++++++++++++.@ ",
29 | ".+#+.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.+#########################.@",
30 | ".+##+..............................+##########################.@",
31 | ".+###++++++++++++++++++++++++++++++###########################.@",
32 | ".+############################################################.@",
33 | ".+############################################################.@",
34 | ".+############################################################.@",
35 | ".+############################################################.@",
36 | ".+########################################&&&&&#############.@",
37 | ".+#######################################@$$$$$&@#############.@",
38 | ".+#######################################@$****&@#############.@",
39 | ".+#######################################@$****&@#############.@",
40 | ".+#######################################@$****&@#############.@",
41 | ".+##############################&#####&$******&#####&###.@",
42 | ".+#############################&$$&#&&$********$&#&&$$@###.@",
43 | ".+############################&$**$$&&$$**********$$&&$$**&@##.@",
44 | ".+############################&$****$$**************$$****&@##.@",
45 | ".+###########################&$****************************&@#.@",
46 | ".+###########################&&****************************&@#.@",
47 | ".+############################@&&************************&&@##.@",
48 | ".+#############################@@&&********@@@@********&&@@###.@",
49 | ".+###############################@@$******@####&******&@@#####.@",
50 | ".+#################################&$****@######&****&@#######.@",
51 | ".+#################################&$****@######&****&@#######.@",
52 | ".+#################################&$****@######&****&@#######.@",
53 | ".+#################################&$****@######&****&@#######.@",
54 | ".+###############################&&$******@####&******&&####.@",
55 | ".+#############################&&$$********&&&&********$$&##.@",
56 | ".+############################&$$************************$$#.@",
57 | ".+###########################&$****************************$@#.@",
58 | ".+###########################&$****************************&@#.@",
59 | ".+############################&$****&&**************&&****&@##.@",
60 | ".+############################&$**&&@@&&**********&&@@&&**&@##.@",
61 | ".+#############################&&&@@##@@&********&@@##@@&&@###.@",
62 | ".+##############################@@######@$******&@######@@####.@",
63 | ".+#######################################&$****&@#############.@",
64 | ".+#######################################&$****&@#############.@",
65 | ".+#######################################&$****&@#############.@",
66 | ".+#######################################&&&&&&&@#############.@",
67 | ".+########################################@@@@@@##############.@",
68 | ".+############################################################.@",
69 | "...............................................................@",
70 | "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@",
71 | " ",
72 | " ",
73 | " ",
74 | " ",
75 | " ",
76 | " "};
77 |
--------------------------------------------------------------------------------
/icons/folder-db.xpm:
--------------------------------------------------------------------------------
1 | /* XPM */
2 | static char * folder_db_xpm[] = {
3 | "64 64 10 1",
4 | " c None",
5 | ". c #C4A000",
6 | "+ c #FCE94F",
7 | "@ c #000000",
8 | "# c #EDD400",
9 | "$ c #BABDB6",
10 | "% c #EEEEEC",
11 | "& c #204A87",
12 | "* c #729FCF",
13 | "= c #3465A4",
14 | " ",
15 | " ",
16 | " ",
17 | " ",
18 | " ",
19 | " ",
20 | " ........................ ",
21 | " .+++++++++++++++++++++++.@ ",
22 | " .+########################.@ ",
23 | " .+##########################.@ ",
24 | " .+############################.@ ",
25 | " .+##############################.@ ",
26 | " .+################################.@ ",
27 | " .+##################################.@ ",
28 | ".+.$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$......................... ",
29 | ".++.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.++++++++++++++++++++++++.@ ",
30 | ".+#+.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.+#########################.@",
31 | ".+##+..............................+##########################.@",
32 | ".+###++++++++++++++++++++++++++++++###########################.@",
33 | ".+############################################################.@",
34 | ".+############################################################.@",
35 | ".+############################################################.@",
36 | ".+############################################################.@",
37 | ".+######################################&&&&&&&&&###########.@",
38 | ".+##################################&&&&**********&&&#######.@",
39 | ".+###############################&&&****==========****&&####.@",
40 | ".+#############################&&***==================***&##.@",
41 | ".+############################&**========================**#.@",
42 | ".+###########################&*============================&@#.@",
43 | ".+###########################&*&&========================&&&@#.@",
44 | ".+###########################&***&&&==================&&&**&@#.@",
45 | ".+###########################&*==***&&&&==========&&&&***==&@#.@",
46 | ".+###########################&*=====****&&&&&&&&&&****=====&@#.@",
47 | ".+###########################&*=========**********=========&@#.@",
48 | ".+############################@============================@##.@",
49 | ".+#############################@@========================@@###.@",
50 | ".+############################&==@@@==================@@@==@##.@",
51 | ".+###########################&*&&===@@@@==========@@@@===&&&@#.@",
52 | ".+###########################&***&&&====@@@@@@@@@@====&&&**&@#.@",
53 | ".+###########################&*==***&&&&==========&&&&***==&@#.@",
54 | ".+###########################&*=====****&&&&&&&&&&****=====&@#.@",
55 | ".+###########################&*=========**********=========&@#.@",
56 | ".+############################@============================@##.@",
57 | ".+#############################@@========================@@###.@",
58 | ".+############################&==@@@==================@@@==@##.@",
59 | ".+###########################&*&&===@@@@==========@@@@===&&&@#.@",
60 | ".+###########################&***&&&====@@@@@@@@@@====&&&**&@#.@",
61 | ".+###########################&*==***&&&&==========&&&&***==&@#.@",
62 | ".+###########################&*=====****&&&&&&&&&&****=====&@#.@",
63 | ".+###########################&&=========**********=========&@#.@",
64 | ".+############################@&&========================&&@##.@",
65 | ".+#############################@@&&&==================&&&@@###.@",
66 | ".+###############################@@@&&&&==========&&&&@@@#####.@",
67 | ".+##################################@@@@&&&&&&&&&&@@@@########.@",
68 | ".+######################################@@@@@@@@@@############.@",
69 | ".+############################################################.@",
70 | "...............................................................@",
71 | "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@",
72 | " ",
73 | " ",
74 | " ",
75 | " ",
76 | " ",
77 | " "};
78 |
--------------------------------------------------------------------------------
/icons/folder-mount.xpm:
--------------------------------------------------------------------------------
1 | /* XPM */
2 | static char * folder_mount_xpm[] = {
3 | "64 64 10 1",
4 | " c None",
5 | ". c #C4A000",
6 | "+ c #FCE94F",
7 | "@ c #000000",
8 | "# c #EDD400",
9 | "$ c #BABDB6",
10 | "% c #EEEEEC",
11 | "& c #2E3436",
12 | "* c #888A85",
13 | "= c #555753",
14 | " ",
15 | " ",
16 | " ",
17 | " ",
18 | " ",
19 | " ",
20 | " ........................ ",
21 | " .+++++++++++++++++++++++.@ ",
22 | " .+########################.@ ",
23 | " .+##########################.@ ",
24 | " .+############################.@ ",
25 | " .+##############################.@ ",
26 | " .+################################.@ ",
27 | " .+##################################.@ ",
28 | ".+.$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$......................... ",
29 | ".++.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.++++++++++++++++++++++++.@ ",
30 | ".+#+.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.+#########################.@",
31 | ".+##+..............................+##########################.@",
32 | ".+###++++++++++++++++++++++++++++++###########################.@",
33 | ".+############################################################.@",
34 | ".+############################################################.@",
35 | ".+############################################################.@",
36 | ".+############################################################.@",
37 | ".+###############################################&##########.@",
38 | ".+##############################################&**@##########.@",
39 | ".+#############################################&*==&@#########.@",
40 | ".+#############################################@@=&@@#########.@",
41 | ".+###############################################&@###########.@",
42 | ".+###############################################&@#&&&&&###.@",
43 | ".+###############################################&@#&***&@####.@",
44 | ".+#########################################&&&#&@#&*==&@####.@",
45 | ".+########################################&***&@#&@#&*==&@####.@",
46 | ".+########################################&*==&@#&@#&&&&&@####.@",
47 | ".+########################################&*==&@#&@#@@@@@@####.@",
48 | ".+########################################&&&&&@#&@###&@######.@",
49 | ".+#########################################@&@@##&@###&@######.@",
50 | ".+##########################################&@###&@###&@######.@",
51 | ".+##########################################&@###&@##&=@######.@",
52 | ".+##########################################&@###&@#&=@#######.@",
53 | ".+##########################################&@###&=&=@########.@",
54 | ".+##########################################&@###&==@#########.@",
55 | ".+##########################################@=#&@@##########.@",
56 | ".+###########################################@=&@###########.@",
57 | ".+############################################@=&=@###########.@",
58 | ".+#############################################@==@###########.@",
59 | ".+##############################################@=@###########.@",
60 | ".+###############################################&@###########.@",
61 | ".+###############################################&@###########.@",
62 | ".+###############################################&@###########.@",
63 | ".+##############################################&&@@##########.@",
64 | ".+#############################################&**=&@#########.@",
65 | ".+#############################################&*==&@#########.@",
66 | ".+#############################################&*==&@#########.@",
67 | ".+#############################################&&&&&@#########.@",
68 | ".+##############################################@@@@##########.@",
69 | ".+############################################################.@",
70 | "...............................................................@",
71 | "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@",
72 | " ",
73 | " ",
74 | " ",
75 | " ",
76 | " ",
77 | " "};
78 |
--------------------------------------------------------------------------------
/icons/folder-video.xpm:
--------------------------------------------------------------------------------
1 | /* XPM */
2 | static char * folder_video_xpm[] = {
3 | "64 64 10 1",
4 | " c None",
5 | ". c #C4A000",
6 | "+ c #FCE94F",
7 | "@ c #000000",
8 | "# c #EDD400",
9 | "$ c #BABDB6",
10 | "% c #EEEEEC",
11 | "& c #2E3436",
12 | "* c #888A85",
13 | "= c #555753",
14 | " ",
15 | " ",
16 | " ",
17 | " ",
18 | " ",
19 | " ",
20 | " ........................ ",
21 | " .+++++++++++++++++++++++.@ ",
22 | " .+########################.@ ",
23 | " .+##########################.@ ",
24 | " .+############################.@ ",
25 | " .+##############################.@ ",
26 | " .+################################.@ ",
27 | " .+##################################.@ ",
28 | ".+.$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$......................... ",
29 | ".++.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.++++++++++++++++++++++++.@ ",
30 | ".+#+.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.+#########################.@",
31 | ".+##+..............................+##########################.@",
32 | ".+###++++++++++++++++++++++++++++++###########################.@",
33 | ".+############################################################.@",
34 | ".+############################################################.@",
35 | ".+############################################################.@",
36 | ".+############################################################.@",
37 | ".+###########################&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&.@",
38 | ".+###########################&*****************************&.#.@",
39 | ".+###########################&*%%%%&&&&%%%%&&&&%%%%&&&&%%%%&.#.@",
40 | ".+###########################&*&%%%%&&&&%%%%&&&&%%%%&&&&%%%&.#.@",
41 | ".+###########################&*&&%%%%&&&&%%%%&&&&%%%%&&&&%%&.#.@",
42 | ".+###########################&*&&&%%%%&&&&%%%%&&&&%%%%&&&&%&.#.@",
43 | ".+###########################&*============================&.#.@",
44 | ".+###########################&*&&&%%%%&&&&%%%%&&&&%%%%&&&&%&.#.@",
45 | ".+###########################&*&&%%%%&&&&%%%%&&&&%%%%&&&&%%&.#.@",
46 | ".+###########################&*&%%%%&&&&%%%%&&&&%%%%&&&&%%%&.#.@",
47 | ".+###########################&*%%%%&&&&%%%%&&&&%%%%&&&&%%%%&.#.@",
48 | ".+###########################&*============================&.#.@",
49 | ".+###########################&*============================&.#.@",
50 | ".+###########################&*============================&.#.@",
51 | ".+###########################&*========&&==================&.#.@",
52 | ".+###########################&*========&&&&================&.#.@",
53 | ".+###########################&*========&&&&&&==============&.#.@",
54 | ".+###########################&*========&&&&&&&&============&.#.@",
55 | ".+###########################&*========&&&&&&&&&&==========&.#.@",
56 | ".+###########################&*========&&&&&&&&&&&&========&.#.@",
57 | ".+###########################&*========&&&&&&&&&&&&*=======&.#.@",
58 | ".+###########################&*========&&&&&&&&&&**========&.#.@",
59 | ".+###########################&*========&&&&&&&&**==========&.#.@",
60 | ".+###########################&*========&&&&&&**============&.#.@",
61 | ".+###########################&*========&&&&**==============&.#.@",
62 | ".+###########################&*========&&**================&.#.@",
63 | ".+###########################&*========**==================&.#.@",
64 | ".+###########################&*============================&.#.@",
65 | ".+###########################&*============================&.#.@",
66 | ".+###########################&*============================&.#.@",
67 | ".+###########################&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&.#.@",
68 | ".+###########################................................#.@",
69 | ".+############################################################.@",
70 | "...............................................................@",
71 | "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@",
72 | " ",
73 | " ",
74 | " ",
75 | " ",
76 | " ",
77 | " "};
78 |
--------------------------------------------------------------------------------
/icons/folder-download.xpm:
--------------------------------------------------------------------------------
1 | /* XPM */
2 | static char * folder_download_xpm[] = {
3 | "64 64 10 1",
4 | " c None",
5 | ". c #C4A000",
6 | "+ c #FCE94F",
7 | "@ c #000000",
8 | "# c #EDD400",
9 | "$ c #BABDB6",
10 | "% c #EEEEEC",
11 | "& c #4E9A06",
12 | "* c #8AE234",
13 | "= c #73D216",
14 | " ",
15 | " ",
16 | " ",
17 | " ",
18 | " ",
19 | " ",
20 | " ........................ ",
21 | " .+++++++++++++++++++++++.@ ",
22 | " .+########################.@ ",
23 | " .+##########################.@ ",
24 | " .+############################.@ ",
25 | " .+##############################.@ ",
26 | " .+################################.@ ",
27 | " .+##################################.@ ",
28 | ".+.$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$......................... ",
29 | ".++.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.++++++++++++++++++++++++.@ ",
30 | ".+#+.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.+#########################.@",
31 | ".+##+..............................+##########################.@",
32 | ".+###++++++++++++++++++++++++++++++###########################.@",
33 | ".+############################################################.@",
34 | ".+############################################################.@",
35 | ".+############################################################.@",
36 | ".+############################################################.@",
37 | ".+############################################################.@",
38 | ".+####################################&&#######&&#########.@",
39 | ".+##################################&&*&.########&**&#######.@",
40 | ".+#################################&**=&.########&*=**######.@",
41 | ".+################################&*===&.########&*===*#####.@",
42 | ".+###############################&*====&.########&*====*.#####.@",
43 | ".+##############################&*=====&.########&*=====&.####.@",
44 | ".+#############################&*======&.########&*======&.###.@",
45 | ".+#############################&*======&.########&*======&.###.@",
46 | ".+############################&*=======&.########&*=======&.##.@",
47 | ".+############################&*=======&.########&*=======&.##.@",
48 | ".+############################&*=======&.########&*=======&.##.@",
49 | ".+###########################&*========&.########&*========&.#.@",
50 | ".+###########################&*========&.########&*========&.#.@",
51 | ".+###########################&*========&.########&*========&.#.@",
52 | ".+###########################&*=====&&&&.########&&&&&=====&.#.@",
53 | ".+###########################&*=====.....########.....=====&.#.@",
54 | ".+###########################&*=====.################&=====&.#.@",
55 | ".+###########################&*=====&.##############&*=====&.#.@",
56 | ".+###########################&*======&.############&*======&.#.@",
57 | ".+############################&*======&.##########&*======&.##.@",
58 | ".+############################&*=======&.########&*=======&.##.@",
59 | ".+############################&*========&.######&*========&.##.@",
60 | ".+#############################&*========&.####&*========&.###.@",
61 | ".+#############################&*=========&.##&*=========&.###.@",
62 | ".+##############################&*=========&&&*=========&.####.@",
63 | ".+###############################&&=========**=========&.#####.@",
64 | ".+################################.&==================&.######.@",
65 | ".+#################################.&&==============&&.#######.@",
66 | ".+##################################..&&&========&&&..########.@",
67 | ".+####################################...&&&&&&&&...##########.@",
68 | ".+#######################################........#############.@",
69 | ".+############################################################.@",
70 | "...............................................................@",
71 | "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@",
72 | " ",
73 | " ",
74 | " ",
75 | " ",
76 | " ",
77 | " "};
78 |
--------------------------------------------------------------------------------
/icons/folder-link.xpm:
--------------------------------------------------------------------------------
1 | /* XPM */
2 | static char * folder_link_xpm[] = {
3 | "64 64 11 1",
4 | " c None",
5 | ". c #C4A000",
6 | "+ c #FCE94F",
7 | "@ c #000000",
8 | "# c #EDD400",
9 | "$ c #BABDB6",
10 | "% c #EEEEEC",
11 | "& c #555753",
12 | "* c #2E3436",
13 | "= c #888A85",
14 | "- c #D3D7CF",
15 | " ",
16 | " ",
17 | " ",
18 | " ",
19 | " ",
20 | " ",
21 | " ........................ ",
22 | " .+++++++++++++++++++++++.@ ",
23 | " .+########################.@ ",
24 | " .+##########################.@ ",
25 | " .+############################.@ ",
26 | " .+##############################.@ ",
27 | " .+################################.@ ",
28 | " .+##################################.@ ",
29 | ".+.$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$......................... ",
30 | ".++.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.++++++++++++++++++++++++.@ ",
31 | ".+#+.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.+#########################.@",
32 | ".+##+..............................+##########################.@",
33 | ".+###++++++++++++++++++++++++++++++###########################.@",
34 | ".+############################################################.@",
35 | ".+############################################################.@",
36 | ".+############################################################.@",
37 | ".+############################################################.@",
38 | ".+############################################################.@",
39 | ".+############################################################.@",
40 | ".+############################################################.@",
41 | ".+############################################################.@",
42 | ".+############################################################.@",
43 | ".+############################################################.@",
44 | ".+############################################################.@",
45 | ".+############################################################.@",
46 | ".+############################################################.@",
47 | ".+############################################################.@",
48 | ".+############################################################.@",
49 | ".+############################################################.@",
50 | ".+############################################################.@",
51 | ".+############################################################.@",
52 | ".+############################################################.@",
53 | ".+############################################################.@",
54 | ".+############################################################.@",
55 | ".+############################################...............#.@",
56 | ".+############################################.%%%%%%%%%%%%%+#.@",
57 | ".+############################################.%%%&**&%%%%%%+#.@",
58 | ".+############################################.%%&=&**&%%%%%+#.@",
59 | ".+############################################.%%=%%***$%%%%+#.@",
60 | ".+############################################.%%$%%$***%&%%+#.@",
61 | ".+############################################.%%-%%%&**&*%%+#.@",
62 | ".+############################################.%%%%&******%%+#.@",
63 | ".+############################################.%%%%%&*****%%+#.@",
64 | ".+############################################.%%%%%%&****%%+#.@",
65 | ".+############################################.%%%%%%%&***%%+#.@",
66 | ".+############################################.%%%%%%%%&**%%+#.@",
67 | ".+############################################.%%%%%%%%%&*%%+#.@",
68 | ".+############################################.%%%%%%%%%%%%%+#.@",
69 | ".+############################################+++++++++++++++#.@",
70 | ".+############################################################.@",
71 | "...............................................................@",
72 | "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@",
73 | " ",
74 | " ",
75 | " ",
76 | " ",
77 | " ",
78 | " "};
79 |
--------------------------------------------------------------------------------
/icons/folder-mail.xpm:
--------------------------------------------------------------------------------
1 | /* XPM */
2 | static char * folder_mail_xpm[] = {
3 | "64 64 11 1",
4 | " c None",
5 | ". c #C4A000",
6 | "+ c #FCE94F",
7 | "@ c #000000",
8 | "# c #EDD400",
9 | "$ c #BABDB6",
10 | "% c #EEEEEC",
11 | "& c #B9A29B",
12 | "* c #FEF9ED",
13 | "= c #685854",
14 | "- c #FFEDC8",
15 | " ",
16 | " ",
17 | " ",
18 | " ",
19 | " ",
20 | " ",
21 | " ........................ ",
22 | " .+++++++++++++++++++++++.@ ",
23 | " .+########################.@ ",
24 | " .+##########################.@ ",
25 | " .+############################.@ ",
26 | " .+##############################.@ ",
27 | " .+################################.@ ",
28 | " .+##################################.@ ",
29 | ".+.$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$......................... ",
30 | ".++.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.++++++++++++++++++++++++.@ ",
31 | ".+#+.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.+#########################.@",
32 | ".+##+..............................+##########################.@",
33 | ".+###++++++++++++++++++++++++++++++###########################.@",
34 | ".+############################################################.@",
35 | ".+############################################################.@",
36 | ".+############################################################.@",
37 | ".+############################################################.@",
38 | ".+############################################################.@",
39 | ".+############################################################.@",
40 | ".+############################################################.@",
41 | ".+############################################################.@",
42 | ".+############################################################.@",
43 | ".+############################################################.@",
44 | ".+############################################################.@",
45 | ".+############################################################.@",
46 | ".+###########################&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&.@",
47 | ".+###########################&*****************************&.#.@",
48 | ".+###########################&*=*------------------------*=&.#.@",
49 | ".+###########################&*&=*----------------------*=&&.#.@",
50 | ".+###########################&*-&=*--------------------*=&-&.#.@",
51 | ".+###########################&*--&=*------------------*=&--&.#.@",
52 | ".+###########################&*---&=*----------------*=&---&.#.@",
53 | ".+###########################&*----&=*--------------*=&----&.#.@",
54 | ".+###########################&*-----&=*------------*=&-----&.#.@",
55 | ".+###########################&*------&=*----------*=&------&.#.@",
56 | ".+###########################&*-------&=*--------*=&-------&.#.@",
57 | ".+###########################&*--------&=*------*=&--------&.#.@",
58 | ".+###########################&*--------&&=*----*=&&--------&.#.@",
59 | ".+###########################&*-------&=*&=****=&*=&-------&.#.@",
60 | ".+###########################&*------&=*--&====&--*=&------&.#.@",
61 | ".+###########################&*-----&=*----&&&&----*=&-----&.#.@",
62 | ".+###########################&*----&=*--------------*=&----&.#.@",
63 | ".+###########################&*---&=*----------------*=&---&.#.@",
64 | ".+###########################&*--&=*------------------*=&--&.#.@",
65 | ".+###########################&*-&=*--------------------*=&-&.#.@",
66 | ".+###########################&*&=*----------------------*=&&.#.@",
67 | ".+###########################&*=*------------------------*=&.#.@",
68 | ".+###########################&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&.#.@",
69 | ".+###########################................................#.@",
70 | ".+############################################################.@",
71 | "...............................................................@",
72 | "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@",
73 | " ",
74 | " ",
75 | " ",
76 | " ",
77 | " ",
78 | " "};
79 |
--------------------------------------------------------------------------------
/icons/folder-music.xpm:
--------------------------------------------------------------------------------
1 | /* XPM */
2 | static char * folder_music_xpm[] = {
3 | "64 64 11 1",
4 | " c None",
5 | ". c #C4A000",
6 | "+ c #FCE94F",
7 | "@ c #000000",
8 | "# c #EDD400",
9 | "$ c #BABDB6",
10 | "% c #EEEEEC",
11 | "& c #AD7FA8",
12 | "* c #75507B",
13 | "= c #5C3566",
14 | "- c #D3D7CF",
15 | " ",
16 | " ",
17 | " ",
18 | " ",
19 | " ",
20 | " ",
21 | " ........................ ",
22 | " .+++++++++++++++++++++++.@ ",
23 | " .+########################.@ ",
24 | " .+##########################.@ ",
25 | " .+############################.@ ",
26 | " .+##############################.@ ",
27 | " .+################################.@ ",
28 | " .+##################################.@ ",
29 | ".+.$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$......................... ",
30 | ".++.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.++++++++++++++++++++++++.@ ",
31 | ".+#+.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.+#########################.@",
32 | ".+##+..............................+##########################.@",
33 | ".+###++++++++++++++++++++++++++++++###########################.@",
34 | ".+############################################################.@",
35 | ".+############################################################.@",
36 | ".+############################################################.@",
37 | ".+############################################################.@",
38 | ".+##################################################.&*======#.@",
39 | ".+############################################.&*======&&&&=.#.@",
40 | ".+######################################.&*======&&&&&&****=.#.@",
41 | ".+###################################======&&&&&&**********=.#.@",
42 | ".+###################################=&&&&&****************=.#.@",
43 | ".+###################################=&%%-*****************=.#.@",
44 | ".+###################################=&-*************=====*=.#.@",
45 | ".+###################################=&**********====*&..=&=.#.@",
46 | ".+###################################=&******====*&..####=&=.#.@",
47 | ".+###################################=&*=====*&..########=&=.#.@",
48 | ".+###################################=&=.....############=&=.#.@",
49 | ".+###################################=&=.################=&=.#.@",
50 | ".+###################################=&=.################=&=.#.@",
51 | ".+###################################=&=.################=&=.#.@",
52 | ".+###################################=&=.################=&=.#.@",
53 | ".+###################################=&=.################=&=.#.@",
54 | ".+###################################=&=.################=&=.#.@",
55 | ".+###################################=&=.################=&=.#.@",
56 | ".+###################################=&=.################=&=.#.@",
57 | ".+###################################=&=.################=&=.#.@",
58 | ".+###################################=&=.###########======&=.#.@",
59 | ".+###################################=&=.##########=&&&&&&*=.#.@",
60 | ".+###################################=&=.#########=&%-*****=.#.@",
61 | ".+##############################======&=.########=&-%******=.#.@",
62 | ".+#############################=&&&&&&*=.########=&********=.#.@",
63 | ".+############################=&%-*****=.########=&********=.#.@",
64 | ".+###########################=&-%******=.#########=&******=.##.@",
65 | ".+###########################=&********=.##########=======.###.@",
66 | ".+###########################=&********=.###########......####.@",
67 | ".+############################=&******=.######################.@",
68 | ".+#############################=======.#######################.@",
69 | ".+##############################......########################.@",
70 | ".+############################################################.@",
71 | "...............................................................@",
72 | "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@",
73 | " ",
74 | " ",
75 | " ",
76 | " ",
77 | " ",
78 | " "};
79 |
--------------------------------------------------------------------------------
/icons/folder-book.xpm:
--------------------------------------------------------------------------------
1 | /* XPM */
2 | static char * folder_book_xpm[] = {
3 | "64 64 12 1",
4 | " c None",
5 | ". c #C4A000",
6 | "+ c #FCE94F",
7 | "@ c #000000",
8 | "# c #EDD400",
9 | "$ c #BABDB6",
10 | "% c #EEEEEC",
11 | "& c #D3D7CF",
12 | "* c #A40000",
13 | "= c #2E3436",
14 | "- c #EF2929",
15 | "; c #CC0000",
16 | " ",
17 | " ",
18 | " ",
19 | " ",
20 | " ",
21 | " ",
22 | " ........................ ",
23 | " .+++++++++++++++++++++++.@ ",
24 | " .+########################.@ ",
25 | " .+##########################.@ ",
26 | " .+############################.@ ",
27 | " .+##############################.@ ",
28 | " .+################################.@ ",
29 | " .+##################################.@ ",
30 | ".+.$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$......................... ",
31 | ".++.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.++++++++++++++++++++++++.@ ",
32 | ".+#+.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.+#########################.@",
33 | ".+##+..............................+##########################.@",
34 | ".+###++++++++++++++++++++++++++++++###########################.@",
35 | ".+############################################################.@",
36 | ".+############################################################.@",
37 | ".+############################################################.@",
38 | ".+############################################################.@",
39 | ".+############################################################.@",
40 | ".+############################################################.@",
41 | ".+############################################################.@",
42 | ".+############################################################.@",
43 | ".+##################################$$$$$#####################.@",
44 | ".+##############################$$$$$%%%%$$#####$$$$$$$$$$####.@",
45 | ".+##############################$%%%$%&&&%%$#$$$%%%%%$%%%$####.@",
46 | ".+#############################*$%&&$%===&&%$%%%&&&&&$%&&$*###.@",
47 | ".+############################*-$%==$%&&&==&$%&&=====$%=&$;*##.@",
48 | ".+###########################*-;$%&&$%==&&&=$%==&&&&&$%&&$;*@#.@",
49 | ".+###########################*-;$%==$%&&&=&&$%&&===&=$%=&$;*@#.@",
50 | ".+###########################*-;$%&&$%===&&=$%&=&&&&&$%&&$;*@#.@",
51 | ".+###########################*-;$%=&$%&&&==&$%&&=====$%=&$;*@#.@",
52 | ".+###########################*-;$%&&$%=&=&&=$%==&&&&&$%&&$;*@#.@",
53 | ".+###########################*-;$%==$%&&&==&$%&&==&==$%=&$;*@#.@",
54 | ".+###########################*-;$%&&$%==&&&=$%==&&&&&$%&&$;*@#.@",
55 | ".+###########################*-;$%==$%&&&==&$%&&&====$%=&$;*@#.@",
56 | ".+###########################*-;$%&&$%===&&=$%=&&&&&&$%&&$;*@#.@",
57 | ".+###########################*-;$%==$%&&&=&&$%&&=====$%=&$;*@#.@",
58 | ".+###########################*-;$%&&$%===&&=$%==&&&&&$%&&$;*@#.@",
59 | ".+###########################*-;$%==$%&&&&=&$%&&=====$%=&$;*@#.@",
60 | ".+###########################*-;$%&&$%==&&&=$%==&&&&&$%&&$;*@#.@",
61 | ".+###########################*-;$%==$%&&&==&$%&&====&$%=&$;*@#.@",
62 | ".+###########################*-;$%&&$%===&&=$%==&&&&&$%&&$;*@#.@",
63 | ".+###########################*-;$%%%$$$$&&=&$%&&$$$$$$$$$$;*@#.@",
64 | ".+###########################*-;;;;;;;;;;;&&$%&&;;;;;;;;;;;*@#.@",
65 | ".+############################@***********;&$%&;***********@##.@",
66 | ".+#############################@@@@@@@@@@@*;;;;*@@@@@@@@@@@###.@",
67 | ".+########################################@****@##############.@",
68 | ".+#########################################@@@@###############.@",
69 | ".+############################################################.@",
70 | ".+############################################################.@",
71 | ".+############################################################.@",
72 | "...............................................................@",
73 | "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@",
74 | " ",
75 | " ",
76 | " ",
77 | " ",
78 | " ",
79 | " "};
80 |
--------------------------------------------------------------------------------
/icons/folder-apps.xpm:
--------------------------------------------------------------------------------
1 | /* XPM */
2 | static char * folder_apps_xpm[] = {
3 | "64 64 13 1",
4 | " c None",
5 | ". c #C4A000",
6 | "+ c #FCE94F",
7 | "@ c #000000",
8 | "# c #EDD400",
9 | "$ c #BABDB6",
10 | "% c #EEEEEC",
11 | "& c #204A87",
12 | "* c #729FCF",
13 | "= c #EF2929",
14 | "- c #3465A4",
15 | "; c #CC0000",
16 | "> c #A40000",
17 | " ",
18 | " ",
19 | " ",
20 | " ",
21 | " ",
22 | " ",
23 | " ........................ ",
24 | " .+++++++++++++++++++++++.@ ",
25 | " .+########################.@ ",
26 | " .+##########################.@ ",
27 | " .+############################.@ ",
28 | " .+##############################.@ ",
29 | " .+################################.@ ",
30 | " .+##################################.@ ",
31 | ".+.$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$......................... ",
32 | ".++.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.++++++++++++++++++++++++.@ ",
33 | ".+#+.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.+#########################.@",
34 | ".+##+..............................+##########################.@",
35 | ".+###++++++++++++++++++++++++++++++###########################.@",
36 | ".+############################################################.@",
37 | ".+############################################################.@",
38 | ".+############################################################.@",
39 | ".+############################################################.@",
40 | ".+##########################################.@################.@",
41 | ".+#########################################.++@###############.@",
42 | ".+########################################.++++@##############.@",
43 | ".+#######################################.++++++@#############.@",
44 | ".+######################################.++++++++@############.@",
45 | ".+#####################################.++++++++++@###########.@",
46 | ".+####################################.++++++++++++@##########.@",
47 | ".+###################################.%++++++++++++#@#########.@",
48 | ".+###################################.+%++++++++++#.@#########.@",
49 | ".+###################################.++%++++++++#..@#########.@",
50 | ".+###################################.+++%++++++#...@#########.@",
51 | ".+###################################.++++%++++#....@#########.@",
52 | ".+##################################&.+++++%++#.....@@########.@",
53 | ".+#################################&**.+++++%#.....@==@#######.@",
54 | ".+################################&****.+++++.....@====@######.@",
55 | ".+###############################&******.++++....@======@#####.@",
56 | ".+##############################&********.+++...@========@####.@",
57 | ".+#############################&**********.++..@==========@###.@",
58 | ".+############################&************.+.@============@##.@",
59 | ".+###########################&%************-.@%============;@#.@",
60 | ".+###########################&*%**********-&@>=%==========;>@#.@",
61 | ".+###########################&**%********-&&@>==%========;>>@#.@",
62 | ".+###########################&***%******-&&&@>===%======;>>>@#.@",
63 | ".+###########################&****%****-&&&&@>====%====;>>>>@#.@",
64 | ".+###########################&*****%**-&&&&&@>=====%==;>>>>>@#.@",
65 | ".+############################&*****%-&&&&&@##>=====%;>>>>>@##.@",
66 | ".+#############################&*****&&&&&@####>=====>>>>>@###.@",
67 | ".+##############################&****&&&&@######>====>>>>@####.@",
68 | ".+###############################&***&&&@########>===>>>@#####.@",
69 | ".+################################&**&&@##########>==>>@######.@",
70 | ".+#################################&*&@############>=>@#######.@",
71 | ".+##################################&@##############>@########.@",
72 | ".+############################################################.@",
73 | "...............................................................@",
74 | "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@",
75 | " ",
76 | " ",
77 | " ",
78 | " ",
79 | " ",
80 | " "};
81 |
--------------------------------------------------------------------------------
/icons/folder-trash.xpm:
--------------------------------------------------------------------------------
1 | /* XPM */
2 | static char * folder_trash_xpm[] = {
3 | "64 64 13 1",
4 | " c None",
5 | ". c #C4A000",
6 | "+ c #FCE94F",
7 | "@ c #000000",
8 | "# c #EDD400",
9 | "$ c #BABDB6",
10 | "% c #EEEEEC",
11 | "& c #4E9A06",
12 | "* c #888A85",
13 | "= c #555753",
14 | "- c #2E3436",
15 | "; c #8AE234",
16 | "> c #73D216",
17 | " ",
18 | " ",
19 | " ",
20 | " ",
21 | " ",
22 | " ",
23 | " ........................ ",
24 | " .+++++++++++++++++++++++.@ ",
25 | " .+########################.@ ",
26 | " .+##########################.@ ",
27 | " .+############################.@ ",
28 | " .+##############################.@ ",
29 | " .+################################.@ ",
30 | " .+##################################.@ ",
31 | ".+.$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$......................... ",
32 | ".++.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.++++++++++++++++++++++++.@ ",
33 | ".+#+.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.+#########################.@",
34 | ".+##+..............................+##########################.@",
35 | ".+###++++++++++++++++++++++++++++++###########################.@",
36 | ".+############################################################.@",
37 | ".+############################################################.@",
38 | ".+############################################################.@",
39 | ".+############################################################.@",
40 | ".+############################################################.@",
41 | ".+############################################################.@",
42 | ".+############################################################.@",
43 | ".+############################################################.@",
44 | ".+###############################&&&&&&&&&&&&&&&&&&&&&&&&&##.@",
45 | ".+##############################&**************************#.@",
46 | ".+#############################&*===========================@#.@",
47 | ".+#############################&*=-------------------------=@#.@",
48 | ".+#############################&*=-------------------------=@#.@",
49 | ".+#############################&*=-------------------------=@#.@",
50 | ".+#############################&==************************=@@#.@",
51 | ".+#############################&;==========================&@#.@",
52 | ".+#############################&;;;;;;;;;;;;;;;;;;;;;;;;;;;&@#.@",
53 | ".+#############################&;>>>>>>>>>>;;;;;>>>>>>>>>>>&@#.@",
54 | ".+##############################&;>>>>;;;;;&&&&&;;>>>>>>>>&@##.@",
55 | ".+##############################&;>>>;&&&&&;;&&&&&;>>;>>>>&@##.@",
56 | ".+##############################&;>>>>;;&&&;>;;&&&&;;&;>>>&@##.@",
57 | ".+##############################&;>>>>;&&&&;>>>;&&&&&&;>>>&@##.@",
58 | ".+###############################&;>>>;&&&&;>>>>;&&&&&;>>&@###.@",
59 | ".+###############################&;>>;&&&;&;>>>>>;&&&&;>>&@###.@",
60 | ".+###############################&;>>;&&;>;>>>>>;&&&&&;>>&@###.@",
61 | ".+###############################&;>>;&&;>>>>>>>>;;;;;>>>&@###.@",
62 | ".+################################&;>;&&;>>>>>;>>>>;&;>>&@####.@",
63 | ".+################################&;>;&&;>>>>;&;>>;&&;>>&@####.@",
64 | ".+################################&;>>;&&;>>;&&;;;&&;>>>&@####.@",
65 | ".+################################&;>>;&&;>;&&&&&&&&;>>>&@####.@",
66 | ".+#################################&;>>;&;;&&&&&&&&;>>>&@#####.@",
67 | ".+#################################&;>>>;&;;&&&&&&;>>>>&@#####.@",
68 | ".+#################################&;>>>>;>>;&&&;;>>>>>&@#####.@",
69 | ".+#################################&;>>>>>>>>;&;>>>>>>>&@#####.@",
70 | ".+##################################&&&&&&&&&&&&&&&&&&&@######.@",
71 | ".+###################################@@@@@@@@@@@@@@@@@@#######.@",
72 | ".+############################################################.@",
73 | "...............................................................@",
74 | "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@",
75 | " ",
76 | " ",
77 | " ",
78 | " ",
79 | " ",
80 | " "};
81 |
--------------------------------------------------------------------------------
/icons/file-app.xpm:
--------------------------------------------------------------------------------
1 | /* XPM */
2 | static char * file_app_xpm[] = {
3 | "64 64 14 1",
4 | " c None",
5 | ". c #BABDB6",
6 | "+ c #EEEEEC",
7 | "@ c #D3D7CF",
8 | "# c #000000",
9 | "$ c #C4A000",
10 | "% c #FCE94F",
11 | "& c #EDD400",
12 | "* c #204A87",
13 | "= c #729FCF",
14 | "- c #EF2929",
15 | "; c #3465A4",
16 | "> c #CC0000",
17 | ", c #A40000",
18 | " ................................ ",
19 | " .++++++++++++++++++++++++++++++.. ",
20 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+. ",
21 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.++. ",
22 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@+. ",
23 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+.@+. ",
24 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@.@+. ",
25 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+.@.@+. ",
26 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@.@.@+. ",
27 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@@.@.@+. ",
28 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@.@.@.@+. ",
29 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@@@@.@.@+. ",
30 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@.@.@.@.@+. ",
31 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@@@@@@.@.@+. ",
32 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@@@.@.@.@.@+. ",
33 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@................ ",
34 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@################# ",
35 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
36 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
37 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
38 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
39 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
40 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
41 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
42 | " .+@@@@@@@@@@@@@@@@@@@@@$#@@@@@@@@@@@@@@@@@@@@@.# ",
43 | " .+@@@@@@@@@@@@@@@@@@@@$%%#@@@@@@@@@@@@@@@@@@@@.# ",
44 | " .+@@@@@@@@@@@@@@@@@@@$%%%%#@@@@@@@@@@@@@@@@@@@.# ",
45 | " .+@@@@@@@@@@@@@@@@@@$%%%%%%#@@@@@@@@@@@@@@@@@@.# ",
46 | " .+@@@@@@@@@@@@@@@@@$%%%%%%%%#@@@@@@@@@@@@@@@@@.# ",
47 | " .+@@@@@@@@@@@@@@@@$%%%%%%%%%%#@@@@@@@@@@@@@@@@.# ",
48 | " .+@@@@@@@@@@@@@@@$%%%%%%%%%%%%#@@@@@@@@@@@@@@@.# ",
49 | " .+@@@@@@@@@@@@@@$+%%%%%%%%%%%%@@@@@@@@@@@@@@.# ",
50 | " .+@@@@@@@@@@@@@@$%+%%%%%%%%%%&$#@@@@@@@@@@@@@@.# ",
51 | " .+@@@@@@@@@@@@@@$%%+%%%%%%%%&$$#@@@@@@@@@@@@@@.# ",
52 | " .+@@@@@@@@@@@@@@$%%%+%%%%%%&$$$#@@@@@@@@@@@@@@.# ",
53 | " .+@@@@@@@@@@@@@@$%%%%+%%%%&$$$$#@@@@@@@@@@@@@@.# ",
54 | " .+@@@@@@@@@@@@@*$%%%%%+%%&$$$$$##@@@@@@@@@@@@@.# ",
55 | " .+@@@@@@@@@@@@*==$%%%%%+&$$$$$#--#@@@@@@@@@@@@.# ",
56 | " .+@@@@@@@@@@@*====$%%%%%$$$$$#----#@@@@@@@@@@@.# ",
57 | " .+@@@@@@@@@@*======$%%%%$$$$#------#@@@@@@@@@@.# ",
58 | " .+@@@@@@@@@*========$%%%$$$#--------#@@@@@@@@@.# ",
59 | " .+@@@@@@@@*==========$%%$$#----------#@@@@@@@@.# ",
60 | " .+@@@@@@@*============$%$#------------#@@@@@@@.# ",
61 | " .+@@@@@@*+============;$#+------------>#@@@@@@.# ",
62 | " .+@@@@@@*=+==========;*#,-+---------->,#@@@@@@.# ",
63 | " .+@@@@@@*==+========;**#,--+-------->,,#@@@@@@.# ",
64 | " .+@@@@@@*===+======;***#,---+------>,,,#@@@@@@.# ",
65 | " .+@@@@@@*====+====;****#,----+---->,,,,#@@@@@@.# ",
66 | " .+@@@@@@*=====+==;*****#,-----+-->,,,,,#@@@@@@.# ",
67 | " .+@@@@@@@*=====+;*****#@@,-----+>,,,,,#@@@@@@@.# ",
68 | " .+@@@@@@@@*=====*****#@@@@,-----,,,,,#@@@@@@@@.# ",
69 | " .+@@@@@@@@@*====****#@@@@@@,----,,,,#@@@@@@@@@.# ",
70 | " .+@@@@@@@@@@*===***#@@@@@@@@,---,,,#@@@@@@@@@@.# ",
71 | " .+@@@@@@@@@@@*==**#@@@@@@@@@@,--,,#@@@@@@@@@@@.# ",
72 | " .+@@@@@@@@@@@@*=*#@@@@@@@@@@@@,-,#@@@@@@@@@@@@.# ",
73 | " .+@@@@@@@@@@@@@*#@@@@@@@@@@@@@@,#@@@@@@@@@@@@@.# ",
74 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
75 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
76 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
77 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
78 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
79 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.# ",
80 | " ...............................................# ",
81 | " ################################################ "};
82 |
--------------------------------------------------------------------------------
/icons/file-core.xpm:
--------------------------------------------------------------------------------
1 | /* XPM */
2 | static char * file_core_xpm[] = {
3 | "64 64 14 1",
4 | " c None",
5 | ". c #BABDB6",
6 | "+ c #EEEEEC",
7 | "@ c #D3D7CF",
8 | "# c #B2B5AE",
9 | "$ c #191919",
10 | "% c #777974",
11 | "& c #F57900",
12 | "* c #CC0000",
13 | "= c #EDD400",
14 | "- c #000000",
15 | "; c #2E3436",
16 | "> c #888A85",
17 | ", c #555753",
18 | " ................................ ",
19 | " .++++++++++++++++++++++++++++++.. ",
20 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+. ",
21 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.++. ",
22 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@+. ",
23 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+.@+. ",
24 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@.@+. ",
25 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+.@.@+. ",
26 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@.@.@+. ",
27 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@@.@.@+. ",
28 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@.@.@.@+. ",
29 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.+@@@@.@.@+. ",
30 | " .+@@@@@@@@@#$%@@@@@@@@@@@@@@@@@.+@.@.@.@.@+. ",
31 | " .+@@@@@@@@@$&$$@@@@@@@@@@@@@@@@.+@@@@@@.@.@+. ",
32 | " .+@@@@@@@@$*&&*$$@@@@@@@@@@@@@@.+@@@.@.@.@.@+. ",
33 | " .+@@@@@@@$*&&&&**$@@@@@@@@@@@@@................ ",
34 | " .+@@@@@@@$*&==&&&*$$@@@@@@@@@@@----------------- ",
35 | " .+@@@@@@@$*&====&&**$@@@@@@@@@@@@@@@@@@@@@@@@@.- ",
36 | " .+@@@@@@$*&&=====&*$@@@@@@@@@@@@@@@@@@@@@@@@@@.- ",
37 | " .+@@@@@@$*&====&&*$@@@@@@@@@@@@@@@@@@@@@@@@@@@.- ",
38 | " .+@@@@@@$*&===&&*$@@@@@@@@@@@@@@@@@@@@@@@@@@@@.- ",
39 | " .+@@@@@@$*&&==&*$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.- ",
40 | " .+@@@@@@@$*&&&&&*$@@@@@@@@@@@@@@@@@@@@@@@@@@@@.- ",
41 | " .+@@@@@@;-$**&&&**$@@@@@@@@@@@@@@@@@@@@@@@@@@@.- ",
42 | " .+@@@@@;->@$$***$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@.- ",
43 | " .+@@@@@;->@@@$$$@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.- ",
44 | " .+@@@@;->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.- ",
45 | " .+@@@@;->@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.- ",
46 | " .+@@@@@;->@@@@@@@@@@;;;;;;;;@@@@@@@@@@@@@@@@@@.- ",
47 | " .+@@@@@;->@@@@@@@;;;>>>>>>>>;;;@@@@@@@@@@@@@@@.- ",
48 | " .+@@@@@@;->@@@@;;>>>>>>>>,>,>>>;;@@@@@@@@@@@@@.- ",
49 | " .+@@@@@@;->@@@;+.>>>>>>>,>,>,,,>>;@@@@@@@@@@@@.- ",
50 | " .+@@@@@@@;->@;++.>>>>>>>>,>,,,,,,>;@@@@@@@@@@@.- ",
51 | " .+@@@@@@@@;->+++.>>>>>>>,>,>,,,,,,>-@@@@@@@@@@.- ",
52 | " .+@@@@@@@@@;->+.>>>>>>>,>,>,,,,,,;,;-@@@@@@@@@.- ",
53 | " .+@@@@@@@@;+;-.>>>>>>>,>,>,,,,,,,,;,;-@@@@@@@@.- ",
54 | " .+@@@@@@@@;++.>>>>>>>,>,>,>,,,,,,;,;;-@@@@@@@@.- ",
55 | " .+@@@@@@@;++.>>>>>>>>>,>,>,,,,,,,,;,;;-@@@@@@@.- ",
56 | " .+@@@@@@@;..>>>>>>>>>,>,>,>,,,,,,;,;;;-@@@@@@@.- ",
57 | " .+@@@@@@@;>>>>>>>>>>,>,>,>,,,,,,;,;,;;-@@@@@@@.- ",
58 | " .+@@@@@@;>>>>>>>>>>,>,>,>,,,,,,,,;,;;;;-@@@@@@.- ",
59 | " .+@@@@@@;>>>>>>>,>,>,>,>,>,,,,,,;,;;;;;-@@@@@@.- ",
60 | " .+@@@@@@;>>>>>>,>,>,>,>,>,,,,,,;,;,;;;;-@@@@@@.- ",
61 | " .+@@@@@@;>>>>>,>,>,>,>,>,,,,,,,,;,;;;;;-@@@@@@.- ",
62 | " .+@@@@@@;>>,>,>,>,>,>,>,,,,,,,,;,;,;;;;-@@@@@@.- ",
63 | " .+@@@@@@;>,>,>,>,>,>,>,,,,,,,,;,;,;;;;;-@@@@@@.- ",
64 | " .+@@@@@@;>>,>,>,>,>,,,,,,,,,,;,;,;,;;;;-@@@@@@.- ",
65 | " .+@@@@@@;>,>,>,,,,,,,,,,,,,,;,;,;,;;;;;-@@@@@@.- ",
66 | " .+@@@@@@@;>,,,,,,,,,,,,,,,,;,;,;,;;;;;-@@@@@@@.- ",
67 | " .+@@@@@@@;>,,,,,,,,,,,,,,,;,;,;,;,;;;;-@@@@@@@.- ",
68 | " .+@@@@@@@;>,,,,,,,,,,,,,,;,;,;,;,;;;;;-@@@@@@@.- ",
69 | " .+@@@@@@@@;>,,,,,,,,,,;,;,;,;,;,;;;;;-@@@@@@@@.- ",
70 | " .+@@@@@@@@;>,,,,,,,;,;,;,;,;,;,;;;;;;-@@@@@@@@.- ",
71 | " .+@@@@@@@@@;>,;,;,;,;,;,;,;,;,;;;;;;-@@@@@@@@@.- ",
72 | " .+@@@@@@@@@@;>,;,;,;,;,;,;,;;;;;;;;-@@@@@@@@@@.- ",
73 | " .+@@@@@@@@@@@-;,;,;,;;;;;;;;;;;;;;-@@@@@@@@@@@.- ",
74 | " .+@@@@@@@@@@@@-;;;;;;;;;;;;;;;;;;-@@@@@@@@@@@@.- ",
75 | " .+@@@@@@@@@@@@@--;;;;;;;;;;;;;;--@@@@@@@@@@@@@.- ",
76 | " .+@@@@@@@@@@@@@@@---;;;;;;;;---@@@@@@@@@@@@@@@.- ",
77 | " .+@@@@@@@@@@@@@@@@@@--------@@@@@@@@@@@@@@@@@@.- ",
78 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.- ",
79 | " .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.- ",
80 | " ...............................................- ",
81 | " ------------------------------------------------ "};
82 |
--------------------------------------------------------------------------------
/icons/folder-game.xpm:
--------------------------------------------------------------------------------
1 | /* XPM */
2 | static char * folder_game_xpm[] = {
3 | "64 64 14 1",
4 | " c None",
5 | ". c #C4A000",
6 | "+ c #FCE94F",
7 | "@ c #000000",
8 | "# c #EDD400",
9 | "$ c #BABDB6",
10 | "% c #EEEEEC",
11 | "& c #D3D7CF",
12 | "* c #2E3436",
13 | "= c #A40000",
14 | "- c #555753",
15 | "; c #CC0000",
16 | "> c #888A85",
17 | ", c #EF2929",
18 | " ",
19 | " ",
20 | " ",
21 | " ",
22 | " ",
23 | " ",
24 | " ........................ ",
25 | " .+++++++++++++++++++++++.@ ",
26 | " .+########################.@ ",
27 | " .+##########################.@ ",
28 | " .+############################.@ ",
29 | " .+##############################.@ ",
30 | " .+################################.@ ",
31 | " .+##################################.@ ",
32 | ".+.$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$......................... ",
33 | ".++.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.++++++++++++++++++++++++.@ ",
34 | ".+#+.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.+#########################.@",
35 | ".+##+..............................+##########################.@",
36 | ".+###++++++++++++++++++++++++++++++###########################.@",
37 | ".+############################################################.@",
38 | ".+############################################################.@",
39 | ".+############################################################.@",
40 | ".+############################################################.@",
41 | ".+############################################################.@",
42 | ".+############################################################.@",
43 | ".+############################################################.@",
44 | ".+#############################$$$$##################$$$$#####.@",
45 | ".+############################$%%%%$################$%%%%$####.@",
46 | ".+###########################$%&&&&%$$############$$%&&&&%$###.@",
47 | ".+###########################$%&&&&&%%$##########$%%&&&&&%$###.@",
48 | ".+##########################$%&&&&&&&&%$$$$$$$$$$%&&&&&&&&$@##.@",
49 | ".+##########################$%&&&****&&%%%%%%%%%%&&====&&&$@##.@",
50 | ".+##########################$%&&*----*&&&&&&&&&&&&=;;;;=&&$@##.@",
51 | ".+##########################$%&*-->>--*&&&&&&&&&&=;,;;,;=&$@##.@",
52 | ".+##########################$%*--->>---*&&&&&&&&=;,,,,,,;=$@##.@",
53 | ".+##########################$%*->>>>>>-*&&&&&&&&=;;,,,,;;=$@##.@",
54 | ".+##########################$%*->>>>>>-*&&&&&&&&=;;,,,,;;=$@##.@",
55 | ".+##########################$%*--->>---*&&&&&&&&=;,,,,,,;=$@##.@",
56 | ".+##########################$%&*-->>--*&&*&&&&*&&=;,;;,;=&$@##.@",
57 | ".+##########################$%&&*----*&&*-*&&*>*&&=;;;;=&&$@##.@",
58 | ".+##########################$%&&&****&&&&*%%%%*&&&&====&&&$@##.@",
59 | ".+##########################$%&&&&&&&&&&&$$$$$%&&&&&&&&&&&$@##.@",
60 | ".+##########################$%&&&&&&&&&&$@####$%&&&&&&&&&&$@##.@",
61 | ".+##########################$%&&&&&&&&&$@######$%&&&&&&&&&$@##.@",
62 | ".+##########################$%&&&&&&&&$@########$%&&&&&&&&$@##.@",
63 | ".+##########################$%&&&&&&&$@##########$%&&&&&&&$@##.@",
64 | ".+##########################$%&&&&&&&$@##########$%&&&&&&&$@##.@",
65 | ".+##########################$%&&&&&&&$@##########$%&&&&&&&$@##.@",
66 | ".+##########################$%&&&&&&&$@##########$%&&&&&&&$@##.@",
67 | ".+###########################$%&&&&&$@############$%&&&&&$@###.@",
68 | ".+############################$$$$$$@##############$$$$$$@####.@",
69 | ".+#############################@@@@@################@@@@@#####.@",
70 | ".+############################################################.@",
71 | ".+############################################################.@",
72 | ".+############################################################.@",
73 | ".+############################################################.@",
74 | "...............................................................@",
75 | "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@",
76 | " ",
77 | " ",
78 | " ",
79 | " ",
80 | " ",
81 | " "};
82 |
--------------------------------------------------------------------------------
/icons/folder-home.xpm:
--------------------------------------------------------------------------------
1 | /* XPM */
2 | static char * folder_home_xpm[] = {
3 | "64 64 17 1",
4 | " c None",
5 | ". c #C4A000",
6 | "+ c #FCE94F",
7 | "@ c #000000",
8 | "# c #EDD400",
9 | "$ c #BABDB6",
10 | "% c #EEEEEC",
11 | "& c #A40000",
12 | "* c #EF2929",
13 | "= c #CC0000",
14 | "- c #D3D7CF",
15 | "; c #2E3436",
16 | "> c #888A85",
17 | ", c #555753",
18 | "' c #4E9A06",
19 | ") c #8AE234",
20 | "! c #73D216",
21 | " ",
22 | " ",
23 | " ",
24 | " ",
25 | " ",
26 | " ",
27 | " ........................ ",
28 | " .+++++++++++++++++++++++.@ ",
29 | " .+########################.@ ",
30 | " .+##########################.@ ",
31 | " .+############################.@ ",
32 | " .+##############################.@ ",
33 | " .+################################.@ ",
34 | " .+##################################.@ ",
35 | ".+.$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$......................... ",
36 | ".++.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.++++++++++++++++++++++++.@ ",
37 | ".+#+.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.+#########################.@",
38 | ".+##+..............................+##########################.@",
39 | ".+###++++++++++++++++++++++++++++++###########################.@",
40 | ".+############################################################.@",
41 | ".+############################################################.@",
42 | ".+############################################################.@",
43 | ".+############################################################.@",
44 | ".+##########################################&###############.@",
45 | ".+#########################################&**@###############.@",
46 | ".+########################################&*==&@##############.@",
47 | ".+#######################################&*====&@#############.@",
48 | ".+######################################&*======&@############.@",
49 | ".+#####################################&*========&@###########.@",
50 | ".+####################################&*====&&*===&@##########.@",
51 | ".+###################################&*====&%%&*===&@#########.@",
52 | ".+##################################&*====&%---&*===&@########.@",
53 | ".+#################################&*====&%-----&*===&@#######.@",
54 | ".+################################&*====&%-------&*===&@######.@",
55 | ".+###############################&*====&%---------&*===&@#####.@",
56 | ".+##############################&*====&%-----------&*===&@####.@",
57 | ".+#############################&*====&%-------------&*===&@###.@",
58 | ".+############################&*====&%---------------&*===&@##.@",
59 | ".+###########################&&&&&&&%-----------------&&&&&&@#.@",
60 | ".+###############################$%%-;;;;;;;;%---------$@#####.@",
61 | ".+###############################$%--;>>>>>>;%---------$@#####.@",
62 | ".+###############################$%--;>,,,,,;%-;;;;;;%-$@#####.@",
63 | ".+###############################$%--;>,,,,,;%-;>>>>;%-$@#####.@",
64 | ".+###############################$%--;>,,,,,;%-;>,,,;%-$@#####.@",
65 | ".+###############################$%--;>,,,,,;%-;>,,,;%-$@#####.@",
66 | ".+###############################$%--;>,,,,,;%-;>,,,;%-$@#####.@",
67 | ".+###############################$%--;>,,,,,;%-;;;;;;%-$@#####.@",
68 | ".+##############################'$%--;>,,,,,;%-%%%%%%%-$@@####.@",
69 | ".+#############################')$%--;>,,,,,;%---------$@'@###.@",
70 | ".+############################')!$$$$;>,,,,,;$$$$$$$$$$$@!'@##.@",
71 | ".+###########################')!!@@@@@@@@@@@@@@@@@@@@@@@@!!'@#.@",
72 | ".+###########################')!!!!!!!!!!!!!!!!!!!!!!!!!!!!'@#.@",
73 | ".+###########################')!!!!!!!!!!!!!!!!!!!!!!!!!!!!'@#.@",
74 | ".+###########################'''''''''''''''''''''''''''''''@#.@",
75 | ".+###########################@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#.@",
76 | ".+############################################################.@",
77 | "...............................................................@",
78 | "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@",
79 | " ",
80 | " ",
81 | " ",
82 | " ",
83 | " ",
84 | " "};
85 |
--------------------------------------------------------------------------------
/icons/folder-meme.xpm:
--------------------------------------------------------------------------------
1 | /* XPM */
2 | static char * folder_meme_xpm[] = {
3 | "64 64 17 1",
4 | " c None",
5 | ". c #C4A000",
6 | "+ c #FCE94F",
7 | "@ c #000000",
8 | "# c #EDD400",
9 | "$ c #BABDB6",
10 | "% c #EEEEEC",
11 | "& c #4E9A06",
12 | "* c #8AE234",
13 | "= c #73D216",
14 | "- c #D3D7CF",
15 | "; c #204A87",
16 | "> c #A40000",
17 | ", c #729FCF",
18 | "' c #EF2929",
19 | ") c #3465A4",
20 | "! c #CC0000",
21 | " ",
22 | " ",
23 | " ",
24 | " ",
25 | " ",
26 | " ",
27 | " ........................ ",
28 | " .+++++++++++++++++++++++.@ ",
29 | " .+########################.@ ",
30 | " .+##########################.@ ",
31 | " .+############################.@ ",
32 | " .+##############################.@ ",
33 | " .+################################.@ ",
34 | " .+##################################.@ ",
35 | ".+.$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$......................... ",
36 | ".++.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.++++++++++++++++++++++++.@ ",
37 | ".+#+.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%.+#########################.@",
38 | ".+##+..............................+##########################.@",
39 | ".+###++++++++++++++++++++++++++++++###########################.@",
40 | ".+############################################################.@",
41 | ".+############################################################.@",
42 | ".+############################################################.@",
43 | ".+############################################################.@",
44 | ".+############################################################.@",
45 | ".+############################################################.@",
46 | ".+#################################&&&&&&&#######&&&&&&&##.@",
47 | ".+#################################&*****&@########&*****&@###.@",
48 | ".+#################################&*====&@########&*====&@###.@",
49 | ".+#################################&*====&@########&*====&@###.@",
50 | ".+#############################&&&&&*====&&&&&&&&&&&*====&@###.@",
51 | ".+#############################&****======**********=====&@###.@",
52 | ".+#############################&*========================&@###.@",
53 | ".+#############################&*========================&@###.@",
54 | ".+#############################&*======$$$$@@@@====$$$$@@@@###.@",
55 | ".+#############################&*======$---@@@@====$---@@@@###.@",
56 | ".+#############################&*======$-%%@@@@====$-%%@@@@###.@",
57 | ".+#############################&*======$$$$@@@@====$$$$@@@@###.@",
58 | ".+#############################&*========================&@###.@",
59 | ".+#############################&*========================&@###.@",
60 | ".+#############################&*========================&@###.@",
61 | ".+#############################&&&&&*====================&@###.@",
62 | ".+#############################;;;;&*==>>>>>>>>>>>>>>>>>>>@###.@",
63 | ".+#############################;,,;&*==>'''''''''''''''''>@###.@",
64 | ".+#############################;,);&*==>'!!!!!!!!!!!!!>>>>@###.@",
65 | ".+#############################;,);&*==>>>>>>>>>>>>>>>>@@@@###.@",
66 | ".+#############################;,);&*================&@#######.@",
67 | ".+#############################;,);&*================&@#######.@",
68 | ".+#############################;,);&*================&@#######.@",
69 | ".+#############################;,);&&&&&&&&&&&&&&&&&&&@#######.@",
70 | ".+#############################;,);;;;;;;;;;;;;;;;;;;;@#######.@",
71 | ".+#############################;,))))))))))))))))))));@#######.@",
72 | ".+#############################;;;;;;;;;;;;;;;;;;;;;;;@#######.@",
73 | ".+#############################@@@@@@@@@@@@@@@@@@@@@@@@#######.@",
74 | ".+############################################################.@",
75 | ".+############################################################.@",
76 | ".+############################################################.@",
77 | "...............................................................@",
78 | "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@",
79 | " ",
80 | " ",
81 | " ",
82 | " ",
83 | " ",
84 | " "};
85 |
--------------------------------------------------------------------------------
/control/icccm.txt:
--------------------------------------------------------------------------------
1 | On Thu, Jul 12, 2001 at 09:32:45AM +0100, Sean Neakums wrote:
2 | > >>>>> "JW" == Jeff Waugh writes:
3 | >
4 | > JW> (The cynical prat in me says: Did you honestly expect a global
5 | > JW> option, and software to interact and cooperate correctly on
6 | > JW> this platform?)
7 | >
8 | > Go read the ICCCM. Come back when you're done crying.
9 |
10 | d00d, that document is devilspawn. I've recently spent my nights in pain
11 | implementing the selection mechanism. WHY OH WHY OH WHY? why me? why did
12 | I choose to do this? and what sick evil twisted mind wrote this damn spec?
13 | I don't know why I'm working with it, I just wanted to make a useful program.
14 | I didn't know what I was getting myself in to. Nobody knows until they try
15 | it. And once you start, you're unable to stop. You can't stop, if you stop
16 | then you haven't completed it to spec. You can't fail on this, it's just a
17 | few pages of text, how can that be so hard? So what if they use Atoms for
18 | everything. So what if there's no explicit correlation between the target
19 | type of a SelectionNotify event and the type of the property it indicates?
20 | So what if the distinction is ambiguous? So what if the document is
21 | littered with such atrocities? It's not the spec's fault, the spec is
22 | authoritative. It's obviously YOUR (the implementor's) fault for
23 | misunderstanding it. If you didn't misunderstand it, you wouldn't be here
24 | complaining about it would you?
25 |
26 | It's all about understanding. Obviously, once you come to understand how
27 | the Atoms all fit together and exactly what the sequence of events for an
28 | incremental transfer is, and once you come to APPRECIATE how Atoms are so
29 | guilelessly delicately cast and communicated, its BEAUTIFUL it really is,
30 | I'm like SO GLAD I spent my last few evenings bashing my head against this
31 | damn document because now I can SEE CLEARLY and it all fits into place and
32 | you know what, it damn well better because you just know that if one Atom
33 | is out of place or you mistake the requestor's property's window with your
34 | property's requestor's window or you forget to delete an empty property at
35 | the right time, then, well, you're screwed and the whole thing is going to
36 | come tumbling down and then who's going to look like a fool, huh? The
37 | malicious bastards who designed ICCCM? NO! YOU you idiot fool coder for
38 | misunderstanding such a seemingly benign (maligned) document. It all makes
39 | perfect sense and who ever heard of synchronous error handling anyway?
40 |
41 | Name one fucking program in the whole world that uses MULTIPLE selections
42 | by choice? "ooh, for performance" well kiss my ass, if no other program
43 | is going to fucking care about my packet then why the fuck would I send
44 | such a thing? Optimize ZERO you fucking overengineered piece of shit. And
45 | XA_SECONDARY? Who the fuck uses the SECONDARY selection? and who actually
46 | queries TARGETS? All anyone ever fucking does with the selection is COPY
47 | TEXT!! That's what its fucking used for, that's what its good for so why
48 | is it such a fucking pain in the date to just share a fucking STRING? How
49 | about HOSTNAME? ooh I want to find a random HOSTNAME. I'll just ask
50 | whichever random process happens to be the selection owner right now to
51 | tell me it's fucking HOSTNAME! Yes, that sounds like a worthwhile bit of
52 | behaviour, let's just stick it in Xmu and hope noone notices for the next
53 | fucking 30 years. Same goes for the fricking IP_ADDRESS. Oh yeah, and
54 | the user's name. getenv("USER")? Nooooooooo! primitive idiot. Let's just
55 | query a random selection owner and hope it feels like telling us. Yes, yes,
56 |
57 | remind me to put THAT into production code; about as reliable as cleaning
58 | your motherboard with fried eel and it smells bad too. Can I have mine in
59 | Motif please?
60 |
61 | The ICCCM is the coding equivalent of the Medieval rack, except its
62 | advertised as some kind of X11 swingers party. "Wanna see hot sexy X
63 | applications getting it on with each other live? Wanna join in the
64 | action? Come and lie down here, we're all waiting for you!"
65 |
66 | ZZZZZZZZZZZzzzzzzzzip! Then they close the handcuffs and you realise
67 | you're lying in a cold dark room and all you can see are Atoms blocking
68 | you in and every time you think you understand CCRRreeeeeeeaAACK! they
69 | turn the rack a notch and you turn the page to find another 20 paragraphs
70 | of hellborne protocol fantasy.
71 |
72 | I've seen more elegant protocols in unlikely places. When blowflies fight
73 | over a pile of elephant shit, their pecking order is a more elegant
74 | protocol than ICCCM. You should watch it some time; if you're an X hacker,
75 | you'll see the beauty. You'll wanna dig right in there and get your hands
76 | dirty. Italian cabbies. English football hooligans -- if I want to get a
77 | short message to the other side of the field, do I use my ICCCM-based X
78 | Window PDA? no, I tell it to a random hooligan, poke him in the ribs and
79 | hope he gets riled up enough to start a riot. Will my message get to the
80 | other side? who knows? at least the resulting carnage will be more orderly
81 | than that fucking Interclient protocol.
82 |
83 | ALL OR NOTHING! ALL OR NOTHING! Either you understand it ALL, or you are
84 | NOTHING!
85 |
86 | OR BOTH!
87 |
88 | I. C. C. C. M.
89 |
90 | Inter-
91 | Client
92 | Communications
93 | Conventions
94 | Manual!
95 |
96 | Manual, like in "manual labour", like in "pain"
97 | Conventions, like in "not required, just do ALL OF IT or you SUCK!"
98 | Communications, like in "fucking overengineered carrier pigeons"
99 | Client, like in "see that guy with the limp, he was one of my ``clients''"
100 | Inter-, like in "Inter-nal bleeding"
101 |
102 | A million monkeys hacking at a million protocol hammers couldn't come up
103 | with this shit in a million years, that's because it's EVIL, E-V-I-L,
104 | it's irrational, it's discontinuous, it is a truth within our codebase that
105 | cannot be derived from the axioms, it's OUT THERE, it was given to us to
106 | degrade us and as a warning to our children. We may have been stupid enough
107 | to work with the ICCCM but what of humanity? the humanity! oh!
108 |
109 | K.
110 |
--------------------------------------------------------------------------------
/icons.c:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | #include "icons.h"
4 |
5 | #define LEN(a) (sizeof(a) / sizeof((a)[0]))
6 |
7 | /* icons for files */
8 | #include "icons/file-app.xpm"
9 | #include "icons/file-archive.xpm"
10 | #include "icons/file-broken.xpm"
11 | #include "icons/file-audio.xpm"
12 | #include "icons/file-code.xpm"
13 | #include "icons/file-core.xpm"
14 | #include "icons/file-config.xpm"
15 | #include "icons/file-gear.xpm"
16 | #include "icons/file-image.xpm"
17 | #include "icons/file-info.xpm"
18 | #include "icons/file-object.xpm"
19 | #include "icons/file-text.xpm"
20 | #include "icons/file-video.xpm"
21 | #include "icons/file.xpm"
22 |
23 | /* icons for directories */
24 | #include "icons/folder-apps.xpm"
25 | #include "icons/folder-book.xpm"
26 | #include "icons/folder-code.xpm"
27 | #include "icons/folder-db.xpm"
28 | #include "icons/folder-download.xpm"
29 | #include "icons/folder-game.xpm"
30 | #include "icons/folder-gear.xpm"
31 | #include "icons/folder-home.xpm"
32 | #include "icons/folder-image.xpm"
33 | #include "icons/folder-link.xpm"
34 | #include "icons/folder-mail.xpm"
35 | #include "icons/folder-meme.xpm"
36 | #include "icons/folder-mount.xpm"
37 | #include "icons/folder-music.xpm"
38 | #include "icons/folder-trash.xpm"
39 | #include "icons/folder-up.xpm"
40 | #include "icons/folder-video.xpm"
41 | #include "icons/folder.xpm"
42 |
43 | /* icons for the window (used by the pager or window manager) */
44 | #include "icons/winicon16x16.abgr"
45 | #include "icons/winicon32x32.abgr"
46 | #include "icons/winicon48x48.abgr"
47 | #include "icons/winicon64x64.abgr"
48 |
49 | #define TYPES \
50 | X(executable, file_app_xpm )\
51 | X(object, file_object_xpm )\
52 | X(archive, file_archive_xpm )\
53 | X(audio, file_audio_xpm )\
54 | X(code, file_code_xpm )\
55 | X(core, file_core_xpm )\
56 | X(config, file_config_xpm )\
57 | X(makefile, file_gear_xpm )\
58 | X(image, file_image_xpm )\
59 | X(info, file_info_xpm )\
60 | X(document, file_text_xpm )\
61 | X(video, file_video_xpm )\
62 | X(up_dir, folder_up_xpm )\
63 | X(apps_dir, folder_apps_xpm )\
64 | X(code_dir, folder_code_xpm )\
65 | X(database_dir, folder_db_xpm )\
66 | X(documents_dir, folder_book_xpm )\
67 | X(downloads_dir, folder_download_xpm )\
68 | X(games_dir, folder_game_xpm )\
69 | X(images_dir, folder_image_xpm )\
70 | X(config_dir, folder_gear_xpm )\
71 | X(home_dir, folder_home_xpm )\
72 | X(mail_dir, folder_mail_xpm )\
73 | X(meme_dir, folder_meme_xpm )\
74 | X(mount_dir, folder_mount_xpm )\
75 | X(music_dir, folder_music_xpm )\
76 | X(trash_dir, folder_trash_xpm )\
77 | X(videos_dir, folder_video_xpm )\
78 | X(link_dir, folder_link_xpm )\
79 | X(link_broken, file_broken_xpm )\
80 | X(dir, folder_xpm )\
81 | X(file, file_xpm )
82 |
83 | #define PATTERNS \
84 | X("..", up_dir, MODE_DIR )\
85 | X("*.zip", archive, MODE_FILE )\
86 | X("*.tar", archive, MODE_FILE )\
87 | X("*.gz", archive, MODE_FILE )\
88 | X("*.bz2", archive, MODE_FILE )\
89 | X("*.rar", archive, MODE_FILE )\
90 | X("*.mp[23]", audio, MODE_FILE )\
91 | X("*.m4a", audio, MODE_FILE )\
92 | X("*m3u", audio, MODE_FILE )\
93 | X("*.ogg", audio, MODE_FILE )\
94 | X("*.opus", audio, MODE_FILE )\
95 | X("*.flac", audio, MODE_FILE )\
96 | X("*.core", core, MODE_FILE )\
97 | X("*.xbm", image, MODE_FILE )\
98 | X("*.xpm", image, MODE_FILE )\
99 | X("*.p[bgp]m", image, MODE_FILE )\
100 | X("*.png", image, MODE_FILE )\
101 | X("*.bmp", image, MODE_FILE )\
102 | X("*.gif", image, MODE_FILE )\
103 | X("*.tiff", image, MODE_FILE )\
104 | X("*.jpeg", image, MODE_FILE )\
105 | X("*.jpg", image, MODE_FILE )\
106 | X("*.gif", image, MODE_FILE )\
107 | X("*.svg", image, MODE_FILE )\
108 | X("*.[1-9]", info, MODE_FILE )\
109 | X("README", info, MODE_FILE )\
110 | X("README.md", info, MODE_FILE )\
111 | X("COPYING", info, MODE_FILE )\
112 | X("LICENSE", info, MODE_FILE )\
113 | X("COPYRIGHT", info, MODE_FILE )\
114 | X("[Mm]akefile", makefile, MODE_FILE )\
115 | X("configure", makefile, MODE_FILE )\
116 | X("configure", makefile, MODE_FILE )\
117 | X("*.pdf", document, MODE_FILE )\
118 | X("*.epub", document, MODE_FILE )\
119 | X("*.txt", document, MODE_FILE )\
120 | X("*.ps", document, MODE_FILE )\
121 | X("*.eps", document, MODE_FILE )\
122 | X("*.djvu", document, MODE_FILE )\
123 | X("*.o", object, MODE_FILE )\
124 | X("*.so", object, MODE_FILE )\
125 | X("*.a", object, MODE_FILE )\
126 | X("*.mp4", video, MODE_FILE )\
127 | X("*.webm", video, MODE_FILE )\
128 | X("*.mkv", video, MODE_FILE )\
129 | X("*.mov", video, MODE_FILE )\
130 | X("*.ogv", video, MODE_FILE )\
131 | X("*.ogv", video, MODE_FILE )\
132 | X("*", executable, MODE_FILE|MODE_EXEC )\
133 | X("*", link_dir, MODE_DIR|MODE_LINK )\
134 | X("*", link_broken, MODE_BROK|MODE_LINK )\
135 | X("~", home_dir, MODE_DIR )
136 |
137 | #define WINICONS \
138 | X(16, winicon16x16)\
139 | X(32, winicon32x32)\
140 | X(48, winicon48x48)\
141 | X(64, winicon64x64)
142 |
143 | enum {
144 | #define X(type, xpm) type,
145 | TYPES
146 | NTYPES
147 | #undef X
148 | };
149 |
150 | struct IconType icon_types[NTYPES] = {
151 | #define X(n, p) [n] = { .name = #n, .xpm = p },
152 | TYPES
153 | #undef X
154 | };
155 |
156 | struct IconPatt icon_patts[] = {
157 | #define X(p, i, m) { .patt = p, .index = i, .mode = m },
158 | PATTERNS
159 | #undef X
160 | };
161 |
162 | struct WinIcon win_icons[] = {
163 | #define X(s, d) { .size = s, .data = d },
164 | WINICONS
165 | #undef X
166 | };
167 |
168 | size_t nicon_types = NTYPES;
169 | size_t nicon_patts = LEN(icon_patts);
170 | size_t nwin_icons = LEN(win_icons);
171 |
172 | size_t icon_for_updir = up_dir;
173 | size_t icon_for_dir = dir;
174 | size_t icon_for_file = file;
175 |
--------------------------------------------------------------------------------
/examples/xfilesctl:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | # xfilesctl -- XFiles control script
3 | #
4 | # This file is called by xfiles(1) upon user interaction.
5 | #
6 | # When invoked, XFiles waits for this script to exit. Therefore, if
7 | # this script does something that takes too much time to return, the
8 | # XFiles window will become unresponsive.
9 | #
10 | # If this script calls a program that may take some time, you should
11 | # do it asynchronously by ending the command with an ampersand (&).
12 | #
13 | # This script depends on the following programs:
14 | # - $OPENER (defaults to xdg-open) for opening files.
15 | # - $EDITOR (defaults to vi) for editing text files.
16 | # - xmessage, for displaying dialogs.
17 | # - xterm, for opening the text editor.
18 | # - xmenu, for popping up a mouse-based menu.
19 | # - dmenu, for popping up a keyboard-based menu.
20 | # - xclip, for setting the clipboard.
21 | # - xprop, for setting window properties.
22 | # - File management core utilities (rm, mkdir, mv, cp, etc).
23 | # - Sed and AWK.
24 |
25 | # set this to false to not open dialogs asking for confirmation
26 | ask=true
27 |
28 | # default paths
29 | TRASH="${TRASH:-"${XDG_DATA_HOME:-"$HOME/.local/share"}/Trash"}"
30 |
31 | # default commands
32 | OPENER="${OPENER:-"xdg-open"}"
33 | EDITOR="${EDITOR:-"${VISUAL:-"vi"}"}"
34 |
35 | # print error message
36 | warn() {
37 | printf '%s: %s\n' "${0##*/}" "$*" >&2
38 | }
39 |
40 | # print error message and exit
41 | err() {
42 | warn "$@"
43 | exit 1
44 | }
45 |
46 | # open mouse-based menu containing entries from stdin
47 | menu() {
48 | xmenu
49 | }
50 |
51 | # open keyboard-based menu containing entries from stdin
52 | prompt() {
53 | dmenu -w "$WINDOWID"
54 | }
55 |
56 | # open new xfiles window on current directory
57 | newwin() {
58 | xfiles &
59 | }
60 |
61 | # open terminal window running given command
62 | term() {
63 | xterm &
64 | }
65 |
66 | # open given files (on background, so xfiles not wait)
67 | open() {
68 | command -- "$OPENER" "$@" &
69 | }
70 |
71 | # open text editor on given file
72 | edit() {
73 | xterm -into "$WINDOWID" -bw 0 -e "$EDITOR" -- "$@"
74 | }
75 |
76 | # open dialog asking for confirmation ("$1" is the prompt, rest are filenames)
77 | dialog() {
78 | "$ask" || return 0
79 | prompt="$1"
80 | shift 1
81 | {
82 | printf "%s\n" "$prompt"
83 | printf "\t%s\n" "$@"
84 | } | xmessage -buttons Yes:0,No:1 -nearmouse -file -
85 | }
86 |
87 | # if $1 == /path/to/file_1.txt exists, set $uniquepath to /path/to/file_2.txt and so on
88 | setuniquepath() {
89 | basename="${1##*/}"
90 | dirname="${1%/*}"
91 | body="${basename%.*}"
92 | ext="${basename##"$body"}"
93 |
94 | # create unique name
95 | unset -v i p
96 | while test -e "$dirname/$body$p$i$ext"
97 | do
98 | p="_"
99 | if [ -z "$i" ]
100 | then
101 | i=1
102 | else
103 | i=$((i + 1))
104 | fi
105 | done
106 | uniquepath="$dirname/$body$p$i$ext"
107 | }
108 |
109 | # copy files here if user confirms dialog
110 | copy() {
111 | dialog "Copy files to $PWD?" "$@" && {
112 | for file
113 | do
114 | setuniquepath "$PWD/${file##*/}"
115 | cp -v "$file" "$uniquepath"
116 | done
117 | }
118 | }
119 |
120 | # move files here if user confirms dialog
121 | move() {
122 | dialog "Move files to $PWD?" "$@" && {
123 | for file
124 | do
125 | setuniquepath "$PWD/${file##*/}"
126 | mv -v "$file" "$uniquepath"
127 | done
128 | }
129 | }
130 |
131 | # link files here if user confirms dialog
132 | link() {
133 | dialog "Link files to $PWD?" "$@" && {
134 | for file
135 | do
136 | setuniquepath "$PWD/${file##*/}"
137 | ln -s "$file" "$uniquepath"
138 | done
139 | }
140 | }
141 |
142 | # send files to trash if user confirms dialog
143 | trash() {
144 | case $# in (0) return ;; esac
145 | dialog "Send files to trash?" "$@" || return
146 | # shellcheck disable=SC2174
147 | mkdir -m 700 -p -- "$TRASH/files" "$TRASH/info" || exit 1
148 | for file
149 | do
150 | test -e "$file" || continue
151 |
152 | # get unique target
153 | setuniquepath "$TRASH/files/${file##*/}"
154 |
155 | # move file to trash and write trash information
156 | mv -- "$file" "$uniquepath" && \
157 | cat > "$TRASH/info/${uniquepath##*/}.trashinfo" <<-END
158 | [Trash Info]
159 | Path=$file
160 | DeletionDate=$(date +"%FT%H:%M:%S")
161 | END
162 | done
163 | }
164 |
165 | # restore files from trash if user confirms dialog
166 | untrash() {
167 | case $# in (0) return ;; esac
168 |
169 | # compose dialog message
170 | msg="Restore files from trash?"
171 | for file
172 | do
173 | shift
174 | basename="${file##*/}"
175 | infofile="$TRASH/info/$basename.trashinfo"
176 | origfile="$(sed -En '/^[[:blank:]]*Path[[:blank:]]*=/{s/.*=[[:blank:]]*//;p;q;}' < "$infofile")"
177 | if test -e "$origfile"
178 | then
179 | warn "$basename: file already exists on original directory"
180 | else
181 | set -- "$file" "$origfile" "$infofile"
182 | msg="$msg
183 | $origfile"
184 | fi
185 | done
186 |
187 | dialog "$msg" || return
188 |
189 | while test $# -gt 0
190 | do
191 | file="$1"
192 | origfile="$2"
193 | infofile="$3"
194 | shift 3
195 | mv -- "$file" "$origfile" && rm -- "$infofile"
196 | done
197 | }
198 |
199 | # rm file if user confirms dialog (if at trash, also remove info file)
200 | delete() {
201 | dialog "Delete files permanently?" "$@" || return
202 | rm -rf -- "$@"
203 | case "$PWD" in
204 | ("$TRASH/files")
205 | for file
206 | do
207 | rm -rf -- "$TRASH/info/${file##*/}.trashinfo"
208 | done
209 | ;;
210 | esac
211 | }
212 |
213 | # delete all files in trash can
214 | emptytrash() {
215 | dialog "Empty trash?" || return
216 | rm -rf "$TRASH/files/"*
217 | rm -rf "$TRASH/info/"*
218 | }
219 |
220 | # save file paths into clipboard
221 | snarf() {
222 | case "$#" in
223 | (0)
224 | # no file to copy
225 | return
226 | ;;
227 | esac
228 | # send URIs to clipboard
229 | printf 'file://%s\r\n' "$@" |\
230 | xclip -selection clipboard -in -target "text/uri-list" &
231 | }
232 |
233 | # paste file whose paths are on clipboard
234 | paste() {
235 | cmd="$1"
236 | shift 1
237 | {
238 | # get URIs from clipboard
239 | xclip -selection clipboard -out -target "text/uri-list"
240 | echo
241 | } | sed 's,^file://,,' | tr -d '\r' | {
242 | set --
243 | while read -r f
244 | do
245 | case "$f" in
246 | ("")
247 | ;;
248 | (*)
249 | set -- "$@" "$f"
250 | ;;
251 | esac
252 | done
253 | case "$cmd" in
254 | ("cp")
255 | copy "$@"
256 | ;;
257 | ("mv")
258 | move "$@"
259 | ;;
260 | ("ln")
261 | link "$@"
262 | ;;
263 | esac
264 | }
265 | }
266 |
267 | # rename files in text editor
268 | rename() {
269 | case "$#" in (0) return ;; esac
270 |
271 | unset -v tempfile tempdir TMPDIR
272 | trap '
273 | test "$tempfile" && rm -f -- "$tempfile" 2>/dev/null
274 | test "$tempdir" && rmdir -- "$tempdir" 2>/dev/null
275 | exit
276 | ' EXIT HUP
277 | tempfile="$(mktemp)" || exit 1
278 | tempdir="$(mktemp -d -p "$PWD")" || exit 1
279 |
280 | for file
281 | do
282 | file="${file#"$PWD/"}"
283 | case "$file" in
284 | ("")
285 | err "empty argument"
286 | ;;
287 | (*[[:cntrl:]]*)
288 | err "renaming files containing control characters is not supported"
289 | ;;
290 | ([[:space:]]*|*[[:space:]])
291 | err "renaming files beginning or ending in space is not supported"
292 | ;;
293 | esac
294 | printf "%s\n" "$file" >> "$tempfile"
295 | done
296 |
297 | edit "$tempfile" || exit 1
298 |
299 | mv -- "$@" "$tempdir" || exit 1
300 | while read -r target
301 | do
302 | source="$tempdir/${1##*/}"
303 | if test -z "$target"
304 | then
305 | trash "$source"
306 | else
307 | case "$target" in
308 | (*/*)
309 | mkdir -p "${target%/*}"
310 | ;;
311 | esac
312 | case "$target" in
313 | (/*|./*|../*)
314 | ;;
315 | (*)
316 | target="$PWD/$target"
317 | ;;
318 | esac
319 | setuniquepath "$target"
320 | mv -- "$source" "$uniquepath"
321 | fi
322 | shift
323 | done <"$tempfile"
324 | {
325 | mv -- "$tempdir/"* ./
326 | rmdir -- "$tempdir"
327 | rm -f -- "$tempfile"
328 | } 2>/dev/null
329 | }
330 |
331 | # create directories named on text editor
332 | makedir() {
333 | unset -v tempfile
334 | trap 'test "$tempfile" && rm -f -- "$tempfile" 2>/dev/null' EXIT
335 | tempfile="$(mktemp)" || exit 1
336 | edit "$tempfile"
337 | while read -r dir
338 | do
339 | mkdir -p "$dir"
340 | done <"$tempfile"
341 | rm "$tempfile"
342 | }
343 |
344 | # open random file in current directory
345 | random() {
346 | set --
347 | for file in *
348 | do
349 | test -f "$file" && set -- "$file" "$@"
350 | done
351 | case "$#" in
352 | (0)
353 | return
354 | ;;
355 | (*)
356 | shift "$(awk 'BEGIN{print int(ARGV[1]*rand())}' "$#")"
357 | open "$1"
358 | ;;
359 | esac
360 | }
361 |
362 | # change current directory of XFiles window
363 | changedir() {
364 | xprop -id "$WINDOWID" -format "_CONTROL_GOTO" 8u -set "_CONTROL_GOTO" "$1"
365 | }
366 |
367 | # prompt for file to open or directory to go to
368 | urlbar() {
369 | printf '%s\n' * | prompt | {
370 | read -r entry
371 | if test -d "$entry"
372 | then
373 | changedir "$entry"
374 | else
375 | open "$entry"
376 | fi
377 | }
378 | }
379 |
380 | # pop-up menu for file dropping
381 | dropmenu() {
382 | {
383 | cat <<-EOF
384 | copy
385 | move
386 | link
387 | none
388 | EOF
389 | } | menu | {
390 | read -r option
391 | case "$option" in
392 | ("copy")
393 | copy "$@"
394 | ;;
395 | ("move")
396 | move "$@"
397 | ;;
398 | ("link")
399 | link "$@"
400 | ;;
401 | ("term")
402 | term
403 | ;;
404 | esac
405 | }
406 | }
407 |
408 | # context menu for no selection
409 | dirmenu() {
410 | {
411 | cat <
2 | #include
3 | #include
4 | #include
5 | #include
6 | #include
7 |
8 | #include
9 | #include
10 |
11 | #include
12 |
13 | #define ENUM(sym) sym,
14 | #define NAME(sym) #sym,
15 |
16 | #define ATOMS(X) \
17 | X(TIMESTAMP) \
18 | X(TARGETS) \
19 | X(MULTIPLE) \
20 | X(INCR) \
21 | X(ATOM_PAIR)
22 |
23 | #define SYNC_NTRIES 120 /* iterate at most this times */
24 | #define SYNC_WAIT 6 /* wait at most this milliseconds between each try */
25 | #define SYNC_EVENT(dpy, win, type, ev) for ( \
26 | int SYNC_TRY = 0; \
27 | SYNC_TRY < SYNC_NTRIES; \
28 | SYNC_TRY++, poll(&(struct pollfd){ \
29 | .fd = XConnectionNumber((dpy)), \
30 | .events = POLLIN, \
31 | }, 1, SYNC_WAIT) \
32 | ) while (XCheckTypedWindowEvent((dpy), (win), (type), (ev)))
33 |
34 | enum errors {
35 | /* ctrlsel(3) functions returns negative error codes on error */
36 | CTRL_NOERROR = 0,
37 | CTRL_ENOMEM = -ENOMEM,
38 | CTRL_ETIMEDOUT = -ETIMEDOUT,
39 | CTRL_EMSGSIZE = -EMSGSIZE,
40 | };
41 |
42 | enum atoms {
43 | ATOMS(ENUM)
44 | NATOMS
45 | };
46 |
47 | static Atom atomtab[NATOMS];
48 |
49 | static void
50 | init(Display *display)
51 | {
52 | static char *atomnames[NATOMS] = { ATOMS(NAME) };
53 | static Bool done = False;
54 |
55 | if (done)
56 | return;
57 | XInternAtoms(display, atomnames, NATOMS, False, atomtab);
58 | done = True;
59 | }
60 |
61 | static int
62 | ignoreerror(Display *display, XErrorEvent *event)
63 | {
64 | (void)display, (void)event;
65 | return 0;
66 | }
67 |
68 | static Window
69 | createwindow(Display *display)
70 | {
71 | return XCreateWindow(
72 | display, DefaultRootWindow(display),
73 | 0, 0, 1, 1, 0,
74 | CopyFromParent, CopyFromParent, CopyFromParent,
75 | CWEventMask, &(XSetWindowAttributes){
76 | /* this window will get PropertyNotify events */
77 | .event_mask = PropertyChangeMask,
78 | }
79 | );
80 | }
81 |
82 | static Time
83 | getservertime(Display *display)
84 | {
85 | XEvent event;
86 | Window window;
87 |
88 | /*
89 | * To get the server time, we append a zero-length data to a
90 | * window's property (any can do), and get the timestamp from
91 | * the server in the corresponding XPropertyEvent(3).
92 | *
93 | * We create (and then delete) a window for that, to not mess
94 | * with the mask of events selected on any existing window by
95 | * the client.
96 | */
97 | if ((window = createwindow(display)) == None)
98 | return CurrentTime;
99 | (void)XChangeProperty(
100 | display, window,
101 | XA_WM_NAME, XA_STRING,
102 | 8L, PropModeAppend,
103 | (void *)"", 0 /* zero-length data */
104 | );
105 | (void)XWindowEvent(display, window, PropertyChangeMask, &event);
106 | (void)XDestroyWindow(display, window);
107 | return event.xproperty.time;
108 | }
109 |
110 | static ssize_t
111 | getmaxsize(Display *display)
112 | {
113 | size_t n;
114 |
115 | /* compute maximum size for the payload of a ChangeProperty request */
116 | if ((n = XExtendedMaxRequestSize(display)) == 0)
117 | n = XMaxRequestSize(display);
118 | if (n < 0x1000)
119 | n = 0x1000; /* requests are no smaller than that */
120 | n *= 4; /* request units are 4-byte long */
121 | n -= 24; /* ignore ChangeProperty header */
122 | return n; /* got sizeof ChangeProperty's payload */
123 | }
124 |
125 | static ssize_t
126 | getcontent(Display *display, Window requestor, Atom property, unsigned char **pbuf)
127 | {
128 | Atom type;
129 | unsigned long len, remain;
130 | ssize_t ret;
131 | int status, format;
132 |
133 | status = XGetWindowProperty(
134 | display, requestor, property,
135 | 0, INT_MAX,
136 | True, /* delete property after get */
137 | AnyPropertyType, &type, &format,
138 | &len, &remain, pbuf
139 | );
140 | ret = 0;
141 | if (status != Success)
142 | ret = CTRL_ENOMEM;
143 | else if (type == atomtab[INCR])
144 | ret = CTRL_EMSGSIZE;
145 | else if (*pbuf != NULL && len > 0)
146 | return len;
147 | XFree(*pbuf);
148 | *pbuf = NULL;
149 | return ret;
150 | }
151 |
152 | static ssize_t
153 | getatompairs(XSelectionRequestEvent const *event, Atom **atoms)
154 | {
155 | unsigned long nitems, remain;
156 | int status, format;
157 | Atom type;
158 |
159 | status = XGetWindowProperty(
160 | event->display, event->requestor, event->property,
161 | 0, INT_MAX,
162 | True, /* delete property after get */
163 | atomtab[ATOM_PAIR], &type, &format,
164 | &nitems, &remain, (void *)atoms
165 | );
166 | if (status == Success && format == 32 && *atoms != NULL && nitems > 0)
167 | return nitems;
168 | XFree(*atoms);
169 | *atoms = NULL;
170 | return status == BadAlloc ? -1 : 0;
171 | }
172 |
173 | static Bool
174 | waitnotify(Display *display, Window window, Time timestamp,
175 | Atom selection, Atom target, XEvent *event)
176 | {
177 | SYNC_EVENT(display, window, SelectionNotify, event) {
178 | XSelectionEvent *selevent = &event->xselection;
179 |
180 | if (selevent->selection != selection)
181 | continue;
182 | if (selevent->target != target)
183 | continue;
184 | if (selevent->time == CurrentTime)
185 | return True;
186 | if (selevent->time >= timestamp)
187 | return True;
188 | }
189 | return False;
190 | }
191 |
192 | static ssize_t
193 | getatonce(Display *display, Window requestor, Time timestamp,
194 | Atom selection, Atom target, unsigned char **pbuf)
195 | {
196 | XEvent event;
197 |
198 | *pbuf = NULL;
199 | if (target == None)
200 | return CTRL_NOERROR;
201 | if (timestamp == CurrentTime)
202 | timestamp = getservertime(display);
203 | if (timestamp == CurrentTime)
204 | return CTRL_NOERROR;
205 | XDeleteProperty(display, requestor, target);
206 | XSync(display, False);
207 | while(XCheckTypedWindowEvent(display, requestor, SelectionNotify, &event))
208 | ; /* drop any out-of-sync XSelectionEvent(3) */
209 | (void)XConvertSelection(
210 | display, selection,
211 | target, target,
212 | requestor, timestamp
213 | );
214 | if (!waitnotify(display, requestor, timestamp, selection, target, &event))
215 | return CTRL_ETIMEDOUT;
216 | if (event.xselection.property != target)
217 | return CTRL_NOERROR; /* request not responded */
218 | return getcontent(display, requestor, target, pbuf);
219 | }
220 |
221 | static ssize_t
222 | getbyparts(Display *display, Window requestor, Atom target,
223 | unsigned char **pbuf)
224 | {
225 | FILE *stream;
226 | XEvent event;
227 | size_t size;
228 | ssize_t retval;
229 |
230 | if ((stream = open_memstream((char **)pbuf, &size)) == NULL)
231 | return -errno;
232 | SYNC_EVENT(display, requestor, PropertyNotify, &event) {
233 | ssize_t n;
234 | unsigned char *tmpbuf;
235 |
236 | if (event.xproperty.atom != target)
237 | continue;
238 | if (event.xproperty.state != PropertyNewValue)
239 | continue;
240 | n = getcontent(display, requestor, target, &tmpbuf);
241 | errno = 0;
242 | if (n > 0 && fwrite(tmpbuf, 1, n, stream) != (size_t)n)
243 | n = errno ? -errno : CTRL_ENOMEM;
244 | XFree(tmpbuf);
245 | if (n <= 0) {
246 | retval = n;
247 | goto done;
248 | }
249 | }
250 | retval = CTRL_ETIMEDOUT;
251 | done:
252 | while (fclose(stream) == EOF) {
253 | if (errno != EINTR) {
254 | retval = -errno;
255 | break;
256 | }
257 | }
258 | if (retval == 0)
259 | return size;
260 | free(*pbuf);
261 | *pbuf = NULL;
262 | return retval;
263 | }
264 |
265 | ssize_t
266 | ctrlsel_request(Display *display, Time timestamp, Atom selection,
267 | Atom target, unsigned char **pbuf)
268 | {
269 | Window requestor;
270 | ssize_t retval;
271 |
272 | init(display);
273 | if (selection == None || target == None)
274 | return CTRL_NOERROR;
275 | if ((requestor = createwindow(display)) == None)
276 | return CTRL_NOERROR;
277 | retval = getatonce(display, requestor, timestamp, selection, target, pbuf);
278 | if (retval == CTRL_EMSGSIZE) /* message is too large */
279 | retval = getbyparts(display, requestor, target, pbuf);
280 | (void)XDestroyWindow(display, requestor);
281 | return retval;
282 | }
283 |
284 | ssize_t
285 | ctrlsel_gettargets(Display *display, Time timestamp, Atom selection, Atom **ptargets)
286 | {
287 | init(display);
288 | return ctrlsel_request(
289 | display, timestamp, selection,
290 | atomtab[TARGETS], (unsigned char **)ptargets
291 | );
292 | }
293 |
294 | Time
295 | ctrlsel_own(Display *display, Window owner, Time timestamp, Atom selection)
296 | {
297 | if (selection == None)
298 | return 0;
299 | if (timestamp == CurrentTime)
300 | timestamp = getservertime(display);
301 | if (timestamp == CurrentTime)
302 | return 0;
303 | (void)XSetSelectionOwner(display, selection, owner, timestamp);
304 | if (XGetSelectionOwner(display, selection) == owner)
305 | return timestamp;
306 | return 0;
307 | }
308 |
309 | static int
310 | answer(XSelectionRequestEvent const *event, Time time,
311 | Atom const targets[], size_t ntargets,
312 | ssize_t (*callback)(void *, Atom, unsigned char **), void *arg)
313 | {
314 | enum { PAIR_TARGET, PAIR_PROPERTY, PAIR_LENGTH };
315 | ssize_t natoms = PAIR_LENGTH;
316 | int retval = CTRL_NOERROR;
317 | Atom storeat = None; /* requestor's property where we'll store data */
318 | Atom *p = NULL;
319 | Atom *atoms = (Atom []){
320 | [PAIR_TARGET] = event->target,
321 | [PAIR_PROPERTY] = event->property,
322 | };
323 |
324 | if (event->target == None)
325 | goto done;
326 | if (event->time != CurrentTime && event->time < time)
327 | goto done; /* out-of-time request */
328 | if (event->target == atomtab[MULTIPLE]) {
329 | if (event->property == None)
330 | goto done;
331 | natoms = getatompairs(event, &p);
332 | if (natoms < 0)
333 | retval = CTRL_ENOMEM;
334 | if (natoms <= 0)
335 | goto done;
336 | atoms = p;
337 | } else if (event->property == None) {
338 | atoms[PAIR_PROPERTY] = event->target;
339 | }
340 |
341 | for (ssize_t i = 0; i < natoms; i += 2) {
342 | Atom *pair = &atoms[i];
343 | Atom target = pair[PAIR_TARGET];
344 | Atom property = pair[PAIR_PROPERTY];
345 | unsigned char *buf = NULL;
346 | ssize_t size;
347 |
348 | if (property == None) {
349 | continue;
350 | } else if (target == atomtab[TIMESTAMP]) {
351 | (void)XChangeProperty(
352 | event->display, event->requestor, property,
353 | XA_INTEGER, 32, PropModeReplace,
354 | (void *)&time, 1
355 | );
356 | } else if (target == atomtab[TARGETS]) {
357 | (void)XChangeProperty(
358 | event->display, event->requestor, property,
359 | XA_ATOM, 32, PropModeReplace,
360 | (void *)targets, ntargets
361 | );
362 | (void)XChangeProperty(
363 | event->display, event->requestor, property,
364 | XA_ATOM, 32, PropModeAppend,
365 | (void *)(Atom[3]){
366 | atomtab[TIMESTAMP],
367 | atomtab[TARGETS],
368 | atomtab[MULTIPLE],
369 | }, 3
370 | );
371 | } else if (target == atomtab[MULTIPLE] || target == None) {
372 | /* unsupported target */
373 | pair[PAIR_PROPERTY] = None;
374 | } else if ((size = callback(arg, target, &buf)) < 0) {
375 | pair[PAIR_PROPERTY] = None;
376 | } else if (size > getmaxsize(event->display)) {
377 | retval = CTRL_EMSGSIZE;
378 | pair[PAIR_PROPERTY] = None;
379 | } else {
380 | (void)XChangeProperty(
381 | event->display, event->requestor, property,
382 | target, 8, PropModeReplace,
383 | buf, size
384 | );
385 | }
386 | }
387 |
388 | if (event->target == atomtab[MULTIPLE]) {
389 | storeat = event->property;
390 | (void)XChangeProperty(
391 | event->display, event->requestor, storeat,
392 | atomtab[ATOM_PAIR], 32, PropModeReplace,
393 | (unsigned char *)atoms, natoms
394 | );
395 | } else {
396 | storeat = atoms[PAIR_PROPERTY];
397 | }
398 |
399 | done:
400 | XFree(p);
401 | XSendEvent(
402 | event->display,
403 | event->requestor,
404 | False,
405 | NoEventMask,
406 | (XEvent *)&(XSelectionEvent){
407 | .type = SelectionNotify,
408 | .display = event->display,
409 | .requestor = event->requestor,
410 | .selection = event->selection,
411 | .time = event->time,
412 | .target = event->target,
413 | .property = storeat,
414 | }
415 | );
416 | return retval;
417 | }
418 |
419 | static XErrorHandler
420 | seterrfun(Display *display, XErrorHandler fun)
421 | {
422 | (void)XSync(display, False);
423 | return XSetErrorHandler(fun);
424 | }
425 |
426 | int
427 | ctrlsel_answer(XEvent const *ep, Time time,
428 | Atom const targets[], size_t ntargets,
429 | ssize_t (*callback)(void *, Atom, unsigned char **), void *arg)
430 | {
431 | XErrorHandler oldhandler;
432 | int retval;
433 |
434 | if (ep->type != SelectionRequest)
435 | return 0;
436 | init(ep->xany.display);
437 | oldhandler = seterrfun(ep->xany.display, ignoreerror);
438 | retval = answer(&ep->xselectionrequest, time, targets, ntargets, callback, arg);
439 | (void)seterrfun(ep->xany.display, oldhandler);
440 | return retval;
441 | }
442 |
--------------------------------------------------------------------------------