Reimporting theme with a guix package
This commit is contained in:
commit
f72c380225
172 changed files with 237 additions and 0 deletions
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
Toon/*
|
26
Makefile
Normal file
26
Makefile
Normal file
|
@ -0,0 +1,26 @@
|
|||
THEME=Toon
|
||||
NAMES=$(wildcard names/*)
|
||||
CURSORS_DIR=$(THEME)/cursors
|
||||
CURSORS=$(NAMES:names/%=$(CURSORS_DIR)/%)
|
||||
INDEX=$(THEME)/index.theme
|
||||
DESTDIR?=~/.icons/
|
||||
GENERATOR=./cursorMaker.sh
|
||||
|
||||
all: structure $(INDEX) $(CURSORS)
|
||||
|
||||
install: $(DESTDIR) all
|
||||
cp -R $(THEME) $(DESTDIR)
|
||||
|
||||
structure: $(THEME)/ $(CURSORS_DIR)/
|
||||
|
||||
%/:
|
||||
mkdir -p $@
|
||||
|
||||
$(INDEX): src/index.theme
|
||||
sed 's|Name=|&$(THEME)|' $< > $@
|
||||
|
||||
$(CURSORS_DIR)/%: names/%
|
||||
$(GENERATOR) $(<:names/%=%) $(CURSORS_DIR)
|
||||
|
||||
clean:
|
||||
rm -rf $(THEME)
|
69
README.md
Normal file
69
README.md
Normal file
|
@ -0,0 +1,69 @@
|
|||
# Toon cursor theme
|
||||
|
||||
Toon is an XDG cursor theme. All icons are white, with classic shapes and a
|
||||
strong contrast : contours are bold, black and a little blurry.
|
||||
|
||||
## How to use
|
||||
|
||||
### Install with guix
|
||||
|
||||
The `guix.scm` file included allows you to build and install a version of this
|
||||
theme from a local copy like this:
|
||||
|
||||
```bash
|
||||
guix install -f guix.scm
|
||||
```
|
||||
|
||||
### Other systems
|
||||
|
||||
You only have to issue
|
||||
|
||||
```bash
|
||||
make install
|
||||
```
|
||||
|
||||
on a command line open in this directory and the theme «Toon» should show up
|
||||
next time you run your favourite appearance settings dialog.
|
||||
|
||||
If you plan on packaging this theme for your favourite distribution, you might
|
||||
want instead to type something like
|
||||
|
||||
```bash
|
||||
make install DESTDIR=pkg/usr/share/icons
|
||||
```
|
||||
|
||||
if you're building the package in directory `pkg`.
|
||||
|
||||
#### Dependencies
|
||||
|
||||
You obviously need `make` if you choose to follow the above instructions but
|
||||
you can still manage to build the theme just fine as long as you have
|
||||
|
||||
* sh : a shell script is used to generate each icon in the theme by deciding
|
||||
whether it's an actual cursor file or a link to another one
|
||||
* xcursorgen : the X11 tool to actually create a cursor file from a bunch of
|
||||
pictures and a config file
|
||||
|
||||
## Origins
|
||||
|
||||
The design is not original : the icons were extracted from the White theme that
|
||||
was shipped with a hacked version of Windows XP, namely Windows XP LSD in its
|
||||
3.5 version. That version of Windows and XDG don't provide exactly the same
|
||||
cursor states so most of them were mapped more or less gently to the nearest
|
||||
corresponding state. Some are completely missing, which explains the lack of
|
||||
cursors for zooming actions for instance.
|
||||
|
||||
## Want to give a hand ?
|
||||
|
||||
First, you can use the theme and give feedback ! If you have any information
|
||||
about the original license of the theme or a way to contact its makers, that
|
||||
would be great. You can also draw icons to fill the lacks of the original theme
|
||||
and make a pull request. Most wanted icons concern :
|
||||
|
||||
* Zooming : completely missing from the original theme
|
||||
* Directions (double arrows are a bit overused and specialized version could be
|
||||
made to distinguish among all the possible cases)
|
||||
* the `default` (`left_ptr`, etc.) cursor usually exists with an additional
|
||||
pictogram in the lower-right corner to represent «working in the background»,
|
||||
or drag-and-drop related actions : copy, link or the impossibility to do so.
|
||||
Only the «working in the background» cursor existed in White.
|
75
cursorMaker.sh
Executable file
75
cursorMaker.sh
Executable file
|
@ -0,0 +1,75 @@
|
|||
#!/bin/sh
|
||||
|
||||
SRC=src
|
||||
NAME="${1}"
|
||||
|
||||
error()
|
||||
{
|
||||
printf "$@" >&2
|
||||
}
|
||||
|
||||
syntax()
|
||||
{
|
||||
error "Syntax: ${0##*/} <CURSOR NAME> <DESTINATION DIR>\n"
|
||||
exit 1
|
||||
}
|
||||
|
||||
([ -n "${NAME}" ] && [ -f "names/${NAME}" ] && [ -d "${2}" ]) || syntax
|
||||
|
||||
winOfX11()
|
||||
{
|
||||
case "${1}" in
|
||||
"center_ptr") printf "Alternate_Select";;
|
||||
"wait") printf "Busy";;
|
||||
"size_fdiag") printf "Diagonal_Resize_1";;
|
||||
"size_bdiag") printf "Diagonal_Resize_2";;
|
||||
"pencil") printf "Handwriting";;
|
||||
"help") printf "Help_Select";;
|
||||
"size_hor") printf "Horizontal_Resize";;
|
||||
"pointer") printf "Link_Select";;
|
||||
"move") printf "Move";;
|
||||
"default") printf "Normal_Select";;
|
||||
"fleur") printf "Precision_Select";;
|
||||
"text") printf "Text_Select";;
|
||||
"forbidden") printf "Unavailable";;
|
||||
"size_ver") printf "Vertical_Resize";;
|
||||
"half-busy") printf "Working_In_Background";;
|
||||
esac
|
||||
}
|
||||
|
||||
aliasOf()
|
||||
{
|
||||
case "${1}" in
|
||||
"left_ptr"|"top_left_arrow"|"left-arrow") printf "default";;
|
||||
"alias"|"0876e1c15ff2fc01f906f1c363074c0f"|"3085a0e285430894940527032f8b26df"|"640fb0e74195791501fd1ed57b41487f"|"a2a266d0498c3104214a47bd64ab0fc8"|"dnd-link"|"crosshair"|"diamond_cross"|"target"|"cross"|"link") printf "fleur";;
|
||||
"not-allowed"|"crossed_circle"|"03b6e0fcb3499374a867c041f52298f0"|"circle"|"no-drop"|"03b6e0fcb3499374a867c041f52298f0"|"03b6e0fcb3499374a867d041f52298f0"|"kill"|"pirate") printf "forbidden";;
|
||||
"watch"|"clock"|"0426c94ea35c87780ff01dc239897213") printf "wait";;
|
||||
"progress"|"left_ptr_watch"|"00000000000000020006000e7e9ffc3f"|"08e8e1c95fe2fc01f976f1e063a24ccd"|"3ecb610c1bf2410f44200f48c40d3599"|"9116a3ea924ed2162ecab71ba103b17f") printf "half-busy";;
|
||||
"question_arrow"|"whats_this"|"gumby"|"5c6cd98b3f3ebcb1f9c7f1c204630408"|"d9ce0ab605698f320427677b458ad60b"|"dnd-ask") printf "help";;
|
||||
"size_ver"|"v_double_arrow"|"double_arrow"|"00008160000006810000408080010102"|"top_side"|"n-resize"|"bottom_side"|"s-resize"|"sb_v_double_arrow"|"043a9f68147c53184671403ffa811cc5"|"14fef782d02440884392942c11205230"|"split_h"|"col-resize"|"sb_up_arrow"|"sb_down_arrow"|"ns-resize"|"up-arrow") printf "size_ver";;
|
||||
"ew-resize"|"h_double_arrow"|"028006030e0e7ebffc7f7070c0600140"|"right_side"|"e-resize"|"left_side"|"w-resize"|"sb_h_double_arrow"|"2870a09082c103050810ffdffffe0204"|"c07385c7190e701020ff7ffffd08103c"|"split_v"|"row-resize"|"sb_left_arrow"|"sb_right_arrow") printf "size_hor";;
|
||||
"nwse-resize"|"38c5dff7c7b8962045400281044508d2"|"c7088f0f3e6c8088236ef8e1e3e70000"|"top_left_corner"|"nw-resize"|"bottom_right_corner"|"se-resize"|"lr_angle") printf "size_fdiag";;
|
||||
"nesw-resize"|"50585d75b494802d0151028115016902"|"fcf1c3c7cd4491d801f1e1c78f100000"|"top_right_corner"|"ne-resize"|"bottom_left_corner"|"sw-resize") printf "size_bdiag";;
|
||||
"4498f0e0c1937ffe01fd06f973665830"|"9081237383d90e509aa00f00170e968f"|"fcf21c00b30f7e3f83fe0dfd12e71cff"|"size_all"|"dnd-move"|"all-scroll"|"grabbing"|"208530c400c041818281048008011002"|"closedhand"|"dnd-none") printf "move";;
|
||||
"pointing_hand"|"hand"|"hand1"|"e29285e634086352946a0e7090d73106"|"5aca4d189052212118709018842178c0"|"9d800788f1b08800ae810202380a0822"|"openhand"|"hand2") printf "pointer";;
|
||||
"up_arrow"|"color-picker"|"cell"|"08ffe1e65f80fcfdf9fff11263e74c48"|"context-menu") printf "center_ptr";;
|
||||
"ibeam"|"xterm"|"048008013003cff3c00c801001200000"|"vertical-text") printf "text";;
|
||||
esac
|
||||
}
|
||||
|
||||
TARGET="${2%/}/${NAME}"
|
||||
winName="$(winOfX11 ${NAME})"
|
||||
if [ -n "${winName}" ]
|
||||
then
|
||||
dir="${SRC}/${winName}"
|
||||
xcursorgen -p "${dir}" "${dir}/config.txt" "${TARGET}"
|
||||
else
|
||||
canonical="$(aliasOf ${NAME})"
|
||||
if [ -n "${canonical}" ]
|
||||
then
|
||||
ln -sf "${canonical}" "${TARGET}"
|
||||
else
|
||||
error "Cannot generate missing icon ${NAME}"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
33
guix.scm
Normal file
33
guix.scm
Normal file
|
@ -0,0 +1,33 @@
|
|||
(use-modules ((gnu packages xorg) #:select (xcursorgen))
|
||||
((guix build-system gnu) #:select (gnu-build-system))
|
||||
((guix gexp) #:select (gexp local-file))
|
||||
((guix git-download) #:select (git-predicate))
|
||||
((guix licenses) #:select (cc-by-sa4.0))
|
||||
((guix packages) #:select (package)))
|
||||
|
||||
(let
|
||||
((%source-dir (dirname (current-filename))))
|
||||
(package
|
||||
(name "toon-cursors")
|
||||
(version "1.0.0")
|
||||
(source
|
||||
(local-file %source-dir
|
||||
#:recursive? #t
|
||||
#:select? (git-predicate %source-dir)))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs (list xcursorgen))
|
||||
(arguments
|
||||
`(#:make-flags
|
||||
,#~(list (string-append "DESTDIR=" #$output "/share/icons/"))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(delete 'configure)
|
||||
(delete 'check))))
|
||||
(home-page "https://git.marvid.fr/Tissevert/toon")
|
||||
(synopsis "White XDG cursor theme with a cartoon feel")
|
||||
(description "The theme is white with black bold contours and a relatively
|
||||
round design which wouldn't be entirely out of place in a cartoon.
|
||||
|
||||
The icons were extracted from the White theme in an old hacked version of
|
||||
Windows XP named Windows LSD and mapped roughly to X11 cursor states.")
|
||||
(license cc-by-sa4.0)))
|
0
names/00000000000000020006000e7e9ffc3f
Normal file
0
names/00000000000000020006000e7e9ffc3f
Normal file
0
names/00008160000006810000408080010102
Normal file
0
names/00008160000006810000408080010102
Normal file
0
names/028006030e0e7ebffc7f7070c0600140
Normal file
0
names/028006030e0e7ebffc7f7070c0600140
Normal file
0
names/03b6e0fcb3499374a867c041f52298f0
Normal file
0
names/03b6e0fcb3499374a867c041f52298f0
Normal file
0
names/03b6e0fcb3499374a867d041f52298f0
Normal file
0
names/03b6e0fcb3499374a867d041f52298f0
Normal file
0
names/0426c94ea35c87780ff01dc239897213
Normal file
0
names/0426c94ea35c87780ff01dc239897213
Normal file
0
names/043a9f68147c53184671403ffa811cc5
Normal file
0
names/043a9f68147c53184671403ffa811cc5
Normal file
0
names/048008013003cff3c00c801001200000
Normal file
0
names/048008013003cff3c00c801001200000
Normal file
0
names/0876e1c15ff2fc01f906f1c363074c0f
Normal file
0
names/0876e1c15ff2fc01f906f1c363074c0f
Normal file
0
names/08e8e1c95fe2fc01f976f1e063a24ccd
Normal file
0
names/08e8e1c95fe2fc01f976f1e063a24ccd
Normal file
0
names/08ffe1e65f80fcfdf9fff11263e74c48
Normal file
0
names/08ffe1e65f80fcfdf9fff11263e74c48
Normal file
0
names/14fef782d02440884392942c11205230
Normal file
0
names/14fef782d02440884392942c11205230
Normal file
0
names/208530c400c041818281048008011002
Normal file
0
names/208530c400c041818281048008011002
Normal file
0
names/2870a09082c103050810ffdffffe0204
Normal file
0
names/2870a09082c103050810ffdffffe0204
Normal file
0
names/3085a0e285430894940527032f8b26df
Normal file
0
names/3085a0e285430894940527032f8b26df
Normal file
0
names/38c5dff7c7b8962045400281044508d2
Normal file
0
names/38c5dff7c7b8962045400281044508d2
Normal file
0
names/3ecb610c1bf2410f44200f48c40d3599
Normal file
0
names/3ecb610c1bf2410f44200f48c40d3599
Normal file
0
names/4498f0e0c1937ffe01fd06f973665830
Normal file
0
names/4498f0e0c1937ffe01fd06f973665830
Normal file
0
names/50585d75b494802d0151028115016902
Normal file
0
names/50585d75b494802d0151028115016902
Normal file
0
names/5aca4d189052212118709018842178c0
Normal file
0
names/5aca4d189052212118709018842178c0
Normal file
0
names/5c6cd98b3f3ebcb1f9c7f1c204630408
Normal file
0
names/5c6cd98b3f3ebcb1f9c7f1c204630408
Normal file
0
names/640fb0e74195791501fd1ed57b41487f
Normal file
0
names/640fb0e74195791501fd1ed57b41487f
Normal file
0
names/9081237383d90e509aa00f00170e968f
Normal file
0
names/9081237383d90e509aa00f00170e968f
Normal file
0
names/9116a3ea924ed2162ecab71ba103b17f
Normal file
0
names/9116a3ea924ed2162ecab71ba103b17f
Normal file
0
names/9d800788f1b08800ae810202380a0822
Normal file
0
names/9d800788f1b08800ae810202380a0822
Normal file
0
names/a2a266d0498c3104214a47bd64ab0fc8
Normal file
0
names/a2a266d0498c3104214a47bd64ab0fc8
Normal file
0
names/alias
Normal file
0
names/alias
Normal file
0
names/all-scroll
Normal file
0
names/all-scroll
Normal file
0
names/bottom_left_corner
Normal file
0
names/bottom_left_corner
Normal file
0
names/bottom_right_corner
Normal file
0
names/bottom_right_corner
Normal file
0
names/bottom_side
Normal file
0
names/bottom_side
Normal file
0
names/c07385c7190e701020ff7ffffd08103c
Normal file
0
names/c07385c7190e701020ff7ffffd08103c
Normal file
0
names/c7088f0f3e6c8088236ef8e1e3e70000
Normal file
0
names/c7088f0f3e6c8088236ef8e1e3e70000
Normal file
0
names/cell
Normal file
0
names/cell
Normal file
0
names/center_ptr
Normal file
0
names/center_ptr
Normal file
0
names/circle
Normal file
0
names/circle
Normal file
0
names/clock
Normal file
0
names/clock
Normal file
0
names/closedhand
Normal file
0
names/closedhand
Normal file
0
names/col-resize
Normal file
0
names/col-resize
Normal file
0
names/color-picker
Normal file
0
names/color-picker
Normal file
0
names/context-menu
Normal file
0
names/context-menu
Normal file
0
names/cross
Normal file
0
names/cross
Normal file
0
names/crossed_circle
Normal file
0
names/crossed_circle
Normal file
0
names/crosshair
Normal file
0
names/crosshair
Normal file
0
names/d9ce0ab605698f320427677b458ad60b
Normal file
0
names/d9ce0ab605698f320427677b458ad60b
Normal file
0
names/default
Normal file
0
names/default
Normal file
0
names/diamond_cross
Normal file
0
names/diamond_cross
Normal file
0
names/dnd-ask
Normal file
0
names/dnd-ask
Normal file
0
names/dnd-link
Normal file
0
names/dnd-link
Normal file
0
names/dnd-move
Normal file
0
names/dnd-move
Normal file
0
names/dnd-none
Normal file
0
names/dnd-none
Normal file
0
names/double_arrow
Normal file
0
names/double_arrow
Normal file
0
names/e-resize
Normal file
0
names/e-resize
Normal file
0
names/e29285e634086352946a0e7090d73106
Normal file
0
names/e29285e634086352946a0e7090d73106
Normal file
0
names/ew-resize
Normal file
0
names/ew-resize
Normal file
0
names/fcf1c3c7cd4491d801f1e1c78f100000
Normal file
0
names/fcf1c3c7cd4491d801f1e1c78f100000
Normal file
0
names/fcf21c00b30f7e3f83fe0dfd12e71cff
Normal file
0
names/fcf21c00b30f7e3f83fe0dfd12e71cff
Normal file
0
names/fleur
Normal file
0
names/fleur
Normal file
0
names/forbidden
Normal file
0
names/forbidden
Normal file
0
names/grabbing
Normal file
0
names/grabbing
Normal file
0
names/gumby
Normal file
0
names/gumby
Normal file
0
names/h_double_arrow
Normal file
0
names/h_double_arrow
Normal file
0
names/half-busy
Normal file
0
names/half-busy
Normal file
0
names/hand
Normal file
0
names/hand
Normal file
0
names/hand1
Normal file
0
names/hand1
Normal file
0
names/hand2
Normal file
0
names/hand2
Normal file
0
names/help
Normal file
0
names/help
Normal file
0
names/ibeam
Normal file
0
names/ibeam
Normal file
0
names/left_ptr
Normal file
0
names/left_ptr
Normal file
0
names/left_ptr_watch
Normal file
0
names/left_ptr_watch
Normal file
0
names/left_side
Normal file
0
names/left_side
Normal file
0
names/link
Normal file
0
names/link
Normal file
0
names/lr_angle
Normal file
0
names/lr_angle
Normal file
0
names/move
Normal file
0
names/move
Normal file
0
names/n-resize
Normal file
0
names/n-resize
Normal file
0
names/ne-resize
Normal file
0
names/ne-resize
Normal file
0
names/nesw-resize
Normal file
0
names/nesw-resize
Normal file
0
names/no-drop
Normal file
0
names/no-drop
Normal file
0
names/not-allowed
Normal file
0
names/not-allowed
Normal file
0
names/ns-resize
Normal file
0
names/ns-resize
Normal file
0
names/nw-resize
Normal file
0
names/nw-resize
Normal file
0
names/nwse-resize
Normal file
0
names/nwse-resize
Normal file
0
names/openhand
Normal file
0
names/openhand
Normal file
0
names/pencil
Normal file
0
names/pencil
Normal file
0
names/pirate
Normal file
0
names/pirate
Normal file
0
names/pointer
Normal file
0
names/pointer
Normal file
0
names/pointing_hand
Normal file
0
names/pointing_hand
Normal file
0
names/progress
Normal file
0
names/progress
Normal file
0
names/question_arrow
Normal file
0
names/question_arrow
Normal file
0
names/right_side
Normal file
0
names/right_side
Normal file
0
names/row-resize
Normal file
0
names/row-resize
Normal file
0
names/s-resize
Normal file
0
names/s-resize
Normal file
0
names/sb_down_arrow
Normal file
0
names/sb_down_arrow
Normal file
0
names/sb_h_double_arrow
Normal file
0
names/sb_h_double_arrow
Normal file
0
names/sb_left_arrow
Normal file
0
names/sb_left_arrow
Normal file
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue