From f10ab6e7811dac85cc67162b3ca3812d58417e92 Mon Sep 17 00:00:00 2001 From: Tucker Johnson Date: Sun, 1 Jun 2025 11:23:00 -0400 Subject: [PATCH] re-struct 2 --- Makefile | 12 +- config.mk | 1 + dmenu | Bin 43248 -> 0 bytes dmenu-scripts/dm-kampv | 3 - dmenu-scripts/dm-pass | 6 - dmenu-scripts/dm-streamselect | 10 - dmenu-scripts/dm-unicode | 16 - dmenu.o | Bin 38976 -> 0 bytes drw.o | Bin 10208 -> 0 bytes extras/chars/emoji | 1630 +++++++++++++++++ extras/chars/font-awesome | 1456 +++++++++++++++ .../dmenu-scripts}/dm-displayselect | 52 +- .../dmenu-scripts}/dm-handler | 18 +- extras/dmenu-scripts/dm-kampv | 8 + .../dmenu-scripts}/dm-maimpick | 10 +- .../dmenu-scripts}/dm-mountcifs | 13 +- .../dmenu-scripts}/dm-mounter | 7 + extras/dmenu-scripts/dm-pass | 11 + .../dmenu-scripts}/dm-record | 16 +- extras/dmenu-scripts/dm-streamselect | 21 + .../dmenu-scripts}/dm-sysact | 8 +- .../dmenu-scripts}/dm-umounter | 10 +- extras/dmenu-scripts/dm-unicode | 17 + dmenu_path => extras/dmenu-scripts/dmenu_path | 0 dmenu_run => extras/dmenu-scripts/dmenu_run | 0 stest | Bin 16432 -> 0 bytes stest.o | Bin 5256 -> 0 bytes util.o | Bin 2224 -> 0 bytes 28 files changed, 3239 insertions(+), 86 deletions(-) delete mode 100755 dmenu delete mode 100755 dmenu-scripts/dm-kampv delete mode 100755 dmenu-scripts/dm-pass delete mode 100755 dmenu-scripts/dm-streamselect delete mode 100755 dmenu-scripts/dm-unicode delete mode 100644 dmenu.o delete mode 100644 drw.o create mode 100644 extras/chars/emoji create mode 100644 extras/chars/font-awesome rename {dmenu-scripts => extras/dmenu-scripts}/dm-displayselect (56%) rename {dmenu-scripts => extras/dmenu-scripts}/dm-handler (61%) create mode 100755 extras/dmenu-scripts/dm-kampv rename {dmenu-scripts => extras/dmenu-scripts}/dm-maimpick (73%) rename {dmenu-scripts => extras/dmenu-scripts}/dm-mountcifs (74%) rename {dmenu-scripts => extras/dmenu-scripts}/dm-mounter (93%) create mode 100755 extras/dmenu-scripts/dm-pass rename {dmenu-scripts => extras/dmenu-scripts}/dm-record (89%) create mode 100755 extras/dmenu-scripts/dm-streamselect rename {dmenu-scripts => extras/dmenu-scripts}/dm-sysact (74%) rename {dmenu-scripts => extras/dmenu-scripts}/dm-umounter (74%) create mode 100755 extras/dmenu-scripts/dm-unicode rename dmenu_path => extras/dmenu-scripts/dmenu_path (100%) rename dmenu_run => extras/dmenu-scripts/dmenu_run (100%) delete mode 100755 stest delete mode 100644 stest.o delete mode 100644 util.o diff --git a/Makefile b/Makefile index 4522e49..5ae2dcc 100644 --- a/Makefile +++ b/Makefile @@ -42,18 +42,24 @@ dist: clean install: all mkdir -p $(DESTDIR)$(PREFIX)/bin - cp -f dmenu dmenu_path dmenu_run stest dmenu-scripts/* $(DESTDIR)$(PREFIX)/bin + cp -f dmenu stest extras/dmenu-scripts/* $(DESTDIR)$(PREFIX)/bin + cp -fr extras/chars $(DESTDIR)$(LIBPREFIX)/TuCLS/ chmod 755 $(DESTDIR)$(PREFIX)/bin/dmenu chmod 755 $(DESTDIR)$(PREFIX)/bin/dmenu_path chmod 755 $(DESTDIR)$(PREFIX)/bin/dmenu_run chmod 755 $(DESTDIR)$(PREFIX)/bin/stest chmod 755 $(DESTDIR)$(PREFIX)/bin/dm-displayselect chmod 755 $(DESTDIR)$(PREFIX)/bin/dm-handler + chmod 755 $(DESTDIR)$(PREFIX)/bin/dm-kampv + chmod 755 $(DESTDIR)$(PREFIX)/bin/dm-maimpick chmod 755 $(DESTDIR)$(PREFIX)/bin/dm-mountcifs + chmod 755 $(DESTDIR)$(PREFIX)/bin/dm-mounter + chmod 755 $(DESTDIR)$(PREFIX)/bin/dm-umounter chmod 755 $(DESTDIR)$(PREFIX)/bin/dm-pass - chmod 755 $(DESTDIR)$(PREFIX)/bin/dm-unicode - chmod 755 $(DESTDIR)$(PREFIX)/bin/dm-kampv + chmod 755 $(DESTDIR)$(PREFIX)/bin/dm-record chmod 755 $(DESTDIR)$(PREFIX)/bin/dm-streamselect + chmod 755 $(DESTDIR)$(PREFIX)/bin/dm-sysact + chmod 755 $(DESTDIR)$(PREFIX)/bin/dm-unicode mkdir -p $(DESTDIR)$(MANPREFIX)/man1 sed "s/VERSION/$(VERSION)/g" < dmenu.1 > $(DESTDIR)$(MANPREFIX)/man1/dmenu.1 sed "s/VERSION/$(VERSION)/g" < stest.1 > $(DESTDIR)$(MANPREFIX)/man1/stest.1 diff --git a/config.mk b/config.mk index 8531fb9..d24f9d0 100644 --- a/config.mk +++ b/config.mk @@ -4,6 +4,7 @@ VERSION = 5.0 # paths PREFIX = /usr/local MANPREFIX = $(PREFIX)/share/man +LIBPREFIX = /usr/lib X11INC = /usr/X11R6/include X11LIB = /usr/X11R6/lib diff --git a/dmenu b/dmenu deleted file mode 100755 index ef88f8bcd819d0d7f3cbcc9c33306dbdde75ab41..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43248 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

1FTQg`GXb98=dhy|8atG)f(4(NQf?DC1J;zXP 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 C2>f&a diff --git a/dmenu-scripts/dm-kampv b/dmenu-scripts/dm-kampv deleted file mode 100755 index e7fd782..0000000 --- a/dmenu-scripts/dm-kampv +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -killall mpv diff --git a/dmenu-scripts/dm-pass b/dmenu-scripts/dm-pass deleted file mode 100755 index 2c14e6f..0000000 --- a/dmenu-scripts/dm-pass +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh - -# This script is the SUDO_ASKPASS variable, meaning that it will be used as a -# password prompt if needed. - -dmenu -fn Monospace-18 -P -p "$1" <&- && echo diff --git a/dmenu-scripts/dm-streamselect b/dmenu-scripts/dm-streamselect deleted file mode 100755 index ee78286..0000000 --- a/dmenu-scripts/dm-streamselect +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh - -streamList=" -WXXI Classical (Rochester Classical Radio) link:https://22213.live.streamtheworld.com/WXXIFM.mp3 -Classical WSMR (Tampa Classical Radio) https://worldradiomap.com/us-fl/play/wsmr_live -" - -selected=$(echo "$streamList" | grep -P "^$(echo "$streamList" | grep "https:" | sed 's/link:.*//g' | dmenu -i -p "Select a Stream" -l 20 | awk '{print $1}')\s") - -echo "$selected" | sed 's/.*link://' | xargs -r mpv --no-video --terminal=no diff --git a/dmenu-scripts/dm-unicode b/dmenu-scripts/dm-unicode deleted file mode 100755 index 9ae9245..0000000 --- a/dmenu-scripts/dm-unicode +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/sh - -# Get user selection via dmenu from emoji file. -chosen=$(cut -d ';' -f1 ~/.local/share/larbs/chars/* | dmenu -i -l 30 | sed "s/ .*//") - -# Exit if none chosen. -[ -z "$chosen" ] && exit - -# If you run this command with an argument, it will automatically insert the -# character. Otherwise, show a message that the emoji has been copied. -if [ -n "$1" ]; then - xdotool type "$chosen" -else - printf "%s" "$chosen" | xclip -selection clipboard - notify-send "'$chosen' copied to clipboard." & -fi diff --git a/dmenu.o b/dmenu.o deleted file mode 100644 index c63a80d8ccbfe5ac47ab044b9f698737d7b95654..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38976 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

mBQFY7gcUIC)-vR>aK&T+ok1p%ad#kqaY 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 U#t+T+mEZix2afUYVEpp`Pnh5KDgXcg diff --git a/drw.o b/drw.o deleted file mode 100644 index 5e706f31689066e88caaf0f0bacb9a5f9bdb5757..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10208 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 diff --git a/extras/chars/emoji b/extras/chars/emoji new file mode 100644 index 0000000..6803731 --- /dev/null +++ b/extras/chars/emoji @@ -0,0 +1,1630 @@ +😀 grinning face +😃 grinning face with big eyes +😄 grinning face with smiling eyes +😁 beaming face with smiling eyes +😆 grinning squinting face +😅 grinning face with sweat +🤣 rolling on the floor laughing +😂 face with tears of joy +🙂 slightly smiling face +🙃 upside-down face +🫠 melting face +😉 winking face +😊 smiling face with smiling eyes +😇 smiling face with halo +🥰 smiling face with hearts +😍 smiling face with heart-eyes +🤩 star-struck +😘 face blowing a kiss +😗 kissing face +☺️ smiling face +😚 kissing face with closed eyes +😙 kissing face with smiling eyes +🥲 smiling face with tear +😋 face savoring food +😛 face with tongue +😜 winking face with tongue +🤪 zany face +😝 squinting face with tongue +🤑 money-mouth face +🤗 smiling face with open hands +🤭 face with hand over mouth +🫢 face with open eyes and hand over mouth +🫣 face with peeking eye +🤫 shushing face +🤔 thinking face +🫡 saluting face +🤐 zipper-mouth face +🤨 face with raised eyebrow +😐 neutral face +😑 expressionless face +😶 face without mouth +🫥 dotted line face +😏 smirking face +😒 unamused face +🙄 face with rolling eyes +😬 grimacing face +🤥 lying face +😌 relieved face +😔 pensive face +😪 sleepy face +🤤 drooling face +😴 sleeping face +😷 face with medical mask +🤒 face with thermometer +🤕 face with head-bandage +🤢 nauseated face +🤮 face vomiting +🤧 sneezing face +🥵 hot face +🥶 cold face +🥴 woozy face +😵 face with crossed-out eyes +🤯 exploding head +🤠 cowboy hat face +🥳 partying face +🥸 disguised face +😎 smiling face with sunglasses +🤓 nerd face +🧐 face with monocle +😕 confused face +🫤 face with diagonal mouth +😟 worried face +🙁 slightly frowning face +☹️ frowning face +😮 face with open mouth +😯 hushed face +😲 astonished face +😳 flushed face +🥺 pleading face +🥹 face holding back tears +😦 frowning face with open mouth +😧 anguished face +😨 fearful face +😰 anxious face with sweat +😥 sad but relieved face +😢 crying face +😭 loudly crying face +😱 face screaming in fear +😖 confounded face +😣 persevering face +😞 disappointed face +😓 downcast face with sweat +😩 weary face +😫 tired face +🥱 yawning face +😤 face with steam from nose +😡 pouting face +😠 angry face +🤬 face with symbols on mouth +😈 smiling face with horns +👿 angry face with horns +💀 skull +☠️ skull and crossbones +💩 pile of poo +🤡 clown face +👹 ogre +👺 goblin +👻 ghost +👽 alien +👾 alien monster +🤖 robot +😺 grinning cat +😸 grinning cat with smiling eyes +😹 cat with tears of joy +😻 smiling cat with heart-eyes +😼 cat with wry smile +😽 kissing cat +🙀 weary cat +😿 crying cat +😾 pouting cat +🙈 see-no-evil monkey +🙉 hear-no-evil monkey +🙊 speak-no-evil monkey +💋 kiss mark +💌 love letter +💘 heart with arrow +💝 heart with ribbon +💖 sparkling heart +💗 growing heart +💓 beating heart +💞 revolving hearts +💕 two hearts +💟 heart decoration +❣️ heart exclamation +💔 broken heart +❤️ red heart +🧡 orange heart +💛 yellow heart +💚 green heart +💙 blue heart +💜 purple heart +🤎 brown heart +🖤 black heart +🤍 white heart +💯 hundred points +💢 anger symbol +💥 collision +💫 dizzy +💦 sweat droplets +💨 dashing away +🕳️ hole +💣 bomb +💬 speech balloon +🗨️ left speech bubble +🗯️ right anger bubble +💭 thought balloon +💤 zzz +👋 waving hand +🤚 raised back of hand +🖐️ hand with fingers splayed +✋ raised hand +🖖 vulcan salute +🫱 rightwards hand +🫲 leftwards hand +🫳 palm down hand +🫴 palm up hand +👌 OK hand +🤌 pinched fingers +🤏 pinching hand +✌️ victory hand +🤞 crossed fingers +🫰 hand with index finger and thumb crossed +🤟 love-you gesture +🤘 sign of the horns +🤙 call me hand +👈 backhand index pointing left +👉 backhand index pointing right +👆 backhand index pointing up +🖕 middle finger +👇 backhand index pointing down +☝️ index pointing up +🫵 index pointing at the viewer +👍 thumbs up +👎 thumbs down +✊ raised fist +👊 oncoming fist +🤛 left-facing fist +🤜 right-facing fist +👏 clapping hands +🙌 raising hands +🫶 heart hands +👐 open hands +🤲 palms up together +🤝 handshake +🙏 folded hands +✍️ writing hand +💅 nail polish +🤳 selfie +💪 flexed biceps +🦾 mechanical arm +🦿 mechanical leg +🦵 leg +🦶 foot +👂 ear +🦻 ear with hearing aid +👃 nose +🧠 brain +🫀 anatomical heart +🫁 lungs +🦷 tooth +🦴 bone +👀 eyes +👁️ eye +👅 tongue +👄 mouth +🫦 biting lip +👶 baby +🧒 child +👦 boy +👧 girl +🧑 person +👱 person: blond hair +👨 man +🧔 person: beard +👩 woman +🧓 older person +👴 old man +👵 old woman +🙍 person frowning +🙎 person pouting +🙅 person gesturing NO +🙆 person gesturing OK +💁 person tipping hand +🙋 person raising hand +🧏 deaf person +🙇 person bowing +🤦 person facepalming +🤷 person shrugging +👮 police officer +🕵️ detective +💂 guard +🥷 ninja +👷 construction worker +🫅 person with crown +🤴 prince +👸 princess +👳 person wearing turban +👲 person with skullcap +🧕 woman with headscarf +🤵 person in tuxedo +👰 person with veil +🤰 pregnant woman +🫃 pregnant man +🫄 pregnant person +🤱 breast-feeding +👼 baby angel +🎅 Santa Claus +🤶 Mrs. Claus +🦸 superhero +🦹 supervillain +🧙 mage +🧚 fairy +🧛 vampire +🧜 merperson +🧝 elf +🧞 genie +🧟 zombie +🧌 troll +💆 person getting massage +💇 person getting haircut +🚶 person walking +🧍 person standing +🧎 person kneeling +🏃 person running +💃 woman dancing +🕺 man dancing +🕴️ person in suit levitating +👯 people with bunny ears +🧖 person in steamy room +🧗 person climbing +🤺 person fencing +🏇 horse racing +⛷️ skier +🏂 snowboarder +🏌️ person golfing +🏄 person surfing +🚣 person rowing boat +🏊 person swimming +⛹️ person bouncing ball +🏋️ person lifting weights +🚴 person biking +🚵 person mountain biking +🤸 person cartwheeling +🤼 people wrestling +🤽 person playing water polo +🤾 person playing handball +🤹 person juggling +🧘 person in lotus position +🛀 person taking bath +🛌 person in bed +👭 women holding hands +👫 woman and man holding hands +👬 men holding hands +💏 kiss +💑 couple with heart +👪 family +🗣️ speaking head +👤 bust in silhouette +👥 busts in silhouette +🫂 people hugging +👣 footprints +🐵 monkey face +🐒 monkey +🦍 gorilla +🦧 orangutan +🐶 dog face +🐕 dog +🦮 guide dog +🐩 poodle +🐺 wolf +🦊 fox +🦝 raccoon +🐱 cat face +🐈 cat +🦁 lion +🐯 tiger face +🐅 tiger +🐆 leopard +🐴 horse face +🐎 horse +🦄 unicorn +🦓 zebra +🦌 deer +🦬 bison +🐮 cow face +🐂 ox +🐃 water buffalo +🐄 cow +🐷 pig face +🐖 pig +🐗 boar +🐽 pig nose +🐏 ram +🐑 ewe +🐐 goat +🐪 camel +🐫 two-hump camel +🦙 llama +🦒 giraffe +🐘 elephant +🦣 mammoth +🦏 rhinoceros +🦛 hippopotamus +🐭 mouse face +🐁 mouse +🐀 rat +🐹 hamster +🐰 rabbit face +🐇 rabbit +🐿️ chipmunk +🦫 beaver +🦔 hedgehog +🦇 bat +🐻 bear +🐨 koala +🐼 panda +🦥 sloth +🦦 otter +🦨 skunk +🦘 kangaroo +🦡 badger +🐾 paw prints +🦃 turkey +🐔 chicken +🐓 rooster +🐣 hatching chick +🐤 baby chick +🐥 front-facing baby chick +🐦 bird +🐧 penguin +🕊️ dove +🦅 eagle +🦆 duck +🦢 swan +🦉 owl +🦤 dodo +🪶 feather +🦩 flamingo +🦚 peacock +🦜 parrot +🐸 frog +🐊 crocodile +🐢 turtle +🦎 lizard +🐍 snake +🐲 dragon face +🐉 dragon +🦕 sauropod +🦖 T-Rex +🐳 spouting whale +🐋 whale +🐬 dolphin +🦭 seal +🐟 fish +🐠 tropical fish +🐡 blowfish +🦈 shark +🐙 octopus +🐚 spiral shell +🪸 coral +🐌 snail +🦋 butterfly +🐛 bug +🐜 ant +🐝 honeybee +🪲 beetle +🐞 lady beetle +🦗 cricket +🪳 cockroach +🕷️ spider +🕸️ spider web +🦂 scorpion +🦟 mosquito +🪰 fly +🪱 worm +🦠 microbe +💐 bouquet +🌸 cherry blossom +💮 white flower +🪷 lotus +🏵️ rosette +🌹 rose +🥀 wilted flower +🌺 hibiscus +🌻 sunflower +🌼 blossom +🌷 tulip +🌱 seedling +🪴 potted plant +🌲 evergreen tree +🌳 deciduous tree +🌴 palm tree +🌵 cactus +🌾 sheaf of rice +🌿 herb +☘️ shamrock +🍀 four leaf clover +🍁 maple leaf +🍂 fallen leaf +🍃 leaf fluttering in wind +🪹 empty nest +🪺 nest with eggs +🍇 grapes +🍈 melon +🍉 watermelon +🍊 tangerine +🍋 lemon +🍌 banana +🍍 pineapple +🥭 mango +🍎 red apple +🍏 green apple +🍐 pear +🍑 peach +🍒 cherries +🍓 strawberry +🫐 blueberries +🥝 kiwi fruit +🍅 tomato +🫒 olive +🥥 coconut +🥑 avocado +🍆 eggplant +🥔 potato +🥕 carrot +🌽 ear of corn +🌶️ hot pepper +🫑 bell pepper +🥒 cucumber +🥬 leafy green +🥦 broccoli +🧄 garlic +🧅 onion +🍄 mushroom +🥜 peanuts +🫘 beans +🌰 chestnut +🍞 bread +🥐 croissant +🥖 baguette bread +🫓 flatbread +🥨 pretzel +🥯 bagel +🥞 pancakes +🧇 waffle +🧀 cheese wedge +🍖 meat on bone +🍗 poultry leg +🥩 cut of meat +🥓 bacon +🍔 hamburger +🍟 french fries +🍕 pizza +🌭 hot dog +🥪 sandwich +🌮 taco +🌯 burrito +🫔 tamale +🥙 stuffed flatbread +🧆 falafel +🥚 egg +🍳 cooking +🥘 shallow pan of food +🍲 pot of food +🫕 fondue +🥣 bowl with spoon +🥗 green salad +🍿 popcorn +🧈 butter +🧂 salt +🥫 canned food +🍱 bento box +🍘 rice cracker +🍙 rice ball +🍚 cooked rice +🍛 curry rice +🍜 steaming bowl +🍝 spaghetti +🍠 roasted sweet potato +🍢 oden +🍣 sushi +🍤 fried shrimp +🍥 fish cake with swirl +🥮 moon cake +🍡 dango +🥟 dumpling +🥠 fortune cookie +🥡 takeout box +🦀 crab +🦞 lobster +🦐 shrimp +🦑 squid +🦪 oyster +🍦 soft ice cream +🍧 shaved ice +🍨 ice cream +🍩 doughnut +🍪 cookie +🎂 birthday cake +🍰 shortcake +🧁 cupcake +🥧 pie +🍫 chocolate bar +🍬 candy +🍭 lollipop +🍮 custard +🍯 honey pot +🍼 baby bottle +🥛 glass of milk +☕ hot beverage +🫖 teapot +🍵 teacup without handle +🍶 sake +🍾 bottle with popping cork +🍷 wine glass +🍸 cocktail glass +🍹 tropical drink +🍺 beer mug +🍻 clinking beer mugs +🥂 clinking glasses +🥃 tumbler glass +🫗 pouring liquid +🥤 cup with straw +🧋 bubble tea +🧃 beverage box +🧉 mate +🧊 ice +🥢 chopsticks +🍽️ fork and knife with plate +🍴 fork and knife +🥄 spoon +🔪 kitchen knife +🫙 jar +🏺 amphora +🌍 globe showing Europe-Africa +🌎 globe showing Americas +🌏 globe showing Asia-Australia +🌐 globe with meridians +🗺️ world map +🗾 map of Japan +🧭 compass +🏔️ snow-capped mountain +⛰️ mountain +🌋 volcano +🗻 mount fuji +🏕️ camping +🏖️ beach with umbrella +🏜️ desert +🏝️ desert island +🏞️ national park +🏟️ stadium +🏛️ classical building +🏗️ building construction +🧱 brick +🪨 rock +🪵 wood +🛖 hut +🏘️ houses +🏚️ derelict house +🏠 house +🏡 house with garden +🏢 office building +🏣 Japanese post office +🏤 post office +🏥 hospital +🏦 bank +🏨 hotel +🏩 love hotel +🏪 convenience store +🏫 school +🏬 department store +🏭 factory +🏯 Japanese castle +🏰 castle +💒 wedding +🗼 Tokyo tower +🗽 Statue of Liberty +⛪ church +🕌 mosque +🛕 hindu temple +🕍 synagogue +⛩️ shinto shrine +🕋 kaaba +⛲ fountain +⛺ tent +🌁 foggy +🌃 night with stars +🏙️ cityscape +🌄 sunrise over mountains +🌅 sunrise +🌆 cityscape at dusk +🌇 sunset +🌉 bridge at night +♨️ hot springs +🎠 carousel horse +🛝 playground slide +🎡 ferris wheel +🎢 roller coaster +💈 barber pole +🎪 circus tent +🚂 locomotive +🚃 railway car +🚄 high-speed train +🚅 bullet train +🚆 train +🚇 metro +🚈 light rail +🚉 station +🚊 tram +🚝 monorail +🚞 mountain railway +🚋 tram car +🚌 bus +🚍 oncoming bus +🚎 trolleybus +🚐 minibus +🚑 ambulance +🚒 fire engine +🚓 police car +🚔 oncoming police car +🚕 taxi +🚖 oncoming taxi +🚗 automobile +🚘 oncoming automobile +🚙 sport utility vehicle +🛻 pickup truck +🚚 delivery truck +🚛 articulated lorry +🚜 tractor +🏎️ racing car +🏍️ motorcycle +🛵 motor scooter +🦽 manual wheelchair +🦼 motorized wheelchair +🛺 auto rickshaw +🚲 bicycle +🛴 kick scooter +🛹 skateboard +🛼 roller skate +🚏 bus stop +🛣️ motorway +🛤️ railway track +🛢️ oil drum +⛽ fuel pump +🛞 wheel +🚨 police car light +🚥 horizontal traffic light +🚦 vertical traffic light +🛑 stop sign +🚧 construction +⚓ anchor +🛟 ring buoy +⛵ sailboat +🛶 canoe +🚤 speedboat +🛳️ passenger ship +⛴️ ferry +🛥️ motor boat +🚢 ship +✈️ airplane +🛩️ small airplane +🛫 airplane departure +🛬 airplane arrival +🪂 parachute +💺 seat +🚁 helicopter +🚟 suspension railway +🚠 mountain cableway +🚡 aerial tramway +🛰️ satellite +🚀 rocket +🛸 flying saucer +🛎️ bellhop bell +🧳 luggage +⌛ hourglass done +⏳ hourglass not done +⌚ watch +⏰ alarm clock +⏱️ stopwatch +⏲️ timer clock +🕰️ mantelpiece clock +🕛 twelve o’clock +🕧 twelve-thirty +🕐 one o’clock +🕜 one-thirty +🕑 two o’clock +🕝 two-thirty +🕒 three o’clock +🕞 three-thirty +🕓 four o’clock +🕟 four-thirty +🕔 five o’clock +🕠 five-thirty +🕕 six o’clock +🕡 six-thirty +🕖 seven o’clock +🕢 seven-thirty +🕗 eight o’clock +🕣 eight-thirty +🕘 nine o’clock +🕤 nine-thirty +🕙 ten o’clock +🕥 ten-thirty +🕚 eleven o’clock +🕦 eleven-thirty +🌑 new moon +🌒 waxing crescent moon +🌓 first quarter moon +🌔 waxing gibbous moon +🌕 full moon +🌖 waning gibbous moon +🌗 last quarter moon +🌘 waning crescent moon +🌙 crescent moon +🌚 new moon face +🌛 first quarter moon face +🌜 last quarter moon face +🌡️ thermometer +☀️ sun +🌝 full moon face +🌞 sun with face +🪐 ringed planet +⭐ star +🌟 glowing star +🌠 shooting star +🌌 milky way +☁️ cloud +⛅ sun behind cloud +⛈️ cloud with lightning and rain +🌤️ sun behind small cloud +🌥️ sun behind large cloud +🌦️ sun behind rain cloud +🌧️ cloud with rain +🌨️ cloud with snow +🌩️ cloud with lightning +🌪️ tornado +🌫️ fog +🌬️ wind face +🌀 cyclone +🌈 rainbow +🌂 closed umbrella +☂️ umbrella +☔ umbrella with rain drops +⛱️ umbrella on ground +⚡ high voltage +❄️ snowflake +☃️ snowman +⛄ snowman without snow +☄️ comet +🔥 fire +💧 droplet +🌊 water wave +🎃 jack-o-lantern +🎄 Christmas tree +🎆 fireworks +🎇 sparkler +🧨 firecracker +✨ sparkles +🎈 balloon +🎉 party popper +🎊 confetti ball +🎋 tanabata tree +🎍 pine decoration +🎎 Japanese dolls +🎏 carp streamer +🎐 wind chime +🎑 moon viewing ceremony +🧧 red envelope +🎀 ribbon +🎁 wrapped gift +🎗️ reminder ribbon +🎟️ admission tickets +🎫 ticket +🎖️ military medal +🏆 trophy +🏅 sports medal +🥇 1st place medal +🥈 2nd place medal +🥉 3rd place medal +⚽ soccer ball +⚾ baseball +🥎 softball +🏀 basketball +🏐 volleyball +🏈 american football +🏉 rugby football +🎾 tennis +🥏 flying disc +🎳 bowling +🏏 cricket game +🏑 field hockey +🏒 ice hockey +🥍 lacrosse +🏓 ping pong +🏸 badminton +🥊 boxing glove +🥋 martial arts uniform +🥅 goal net +⛳ flag in hole +⛸️ ice skate +🎣 fishing pole +🤿 diving mask +🎽 running shirt +🎿 skis +🛷 sled +🥌 curling stone +🎯 bullseye +🪀 yo-yo +🪁 kite +🎱 pool 8 ball +🔮 crystal ball +🪄 magic wand +🧿 nazar amulet +🪬 hamsa +🎮 video game +🕹️ joystick +🎰 slot machine +🎲 game die +🧩 puzzle piece +🧸 teddy bear +🪅 piñata +🪩 mirror ball +🪆 nesting dolls +♠️ spade suit +♥️ heart suit +♦️ diamond suit +♣️ club suit +♟️ chess pawn +🃏 joker +🀄 mahjong red dragon +🎴 flower playing cards +🎭 performing arts +🖼️ framed picture +🎨 artist palette +🧵 thread +🪡 sewing needle +🧶 yarn +🪢 knot +👓 glasses +🕶️ sunglasses +🥽 goggles +🥼 lab coat +🦺 safety vest +👔 necktie +👕 t-shirt +👖 jeans +🧣 scarf +🧤 gloves +🧥 coat +🧦 socks +👗 dress +👘 kimono +🥻 sari +🩱 one-piece swimsuit +🩲 briefs +🩳 shorts +👙 bikini +👚 woman’s clothes +👛 purse +👜 handbag +👝 clutch bag +🛍️ shopping bags +🎒 backpack +🩴 thong sandal +👞 man’s shoe +👟 running shoe +🥾 hiking boot +🥿 flat shoe +👠 high-heeled shoe +👡 woman’s sandal +🩰 ballet shoes +👢 woman’s boot +👑 crown +👒 woman’s hat +🎩 top hat +🎓 graduation cap +🧢 billed cap +🪖 military helmet +⛑️ rescue worker’s helmet +📿 prayer beads +💄 lipstick +💍 ring +💎 gem stone +🔇 muted speaker +🔈 speaker low volume +🔉 speaker medium volume +🔊 speaker high volume +📢 loudspeaker +📣 megaphone +📯 postal horn +🔔 bell +🔕 bell with slash +🎼 musical score +🎵 musical note +🎶 musical notes +🎙️ studio microphone +🎚️ level slider +🎛️ control knobs +🎤 microphone +🎧 headphone +📻 radio +🎷 saxophone +🪗 accordion +🎸 guitar +🎹 musical keyboard +🎺 trumpet +🎻 violin +🪕 banjo +🥁 drum +🪘 long drum +📱 mobile phone +📲 mobile phone with arrow +☎️ telephone +📞 telephone receiver +📟 pager +📠 fax machine +🔋 battery +🪫 low battery +🔌 electric plug +💻 laptop +🖥️ desktop computer +🖨️ printer +⌨️ keyboard +🖱️ computer mouse +🖲️ trackball +💽 computer disk +💾 floppy disk +💿 optical disk +📀 dvd +🧮 abacus +🎥 movie camera +🎞️ film frames +📽️ film projector +🎬 clapper board +📺 television +📷 camera +📸 camera with flash +📹 video camera +📼 videocassette +🔍 magnifying glass tilted left +🔎 magnifying glass tilted right +🕯️ candle +💡 light bulb +🔦 flashlight +🏮 red paper lantern +🪔 diya lamp +📔 notebook with decorative cover +📕 closed book +📖 open book +📗 green book +📘 blue book +📙 orange book +📚 books +📓 notebook +📒 ledger +📃 page with curl +📜 scroll +📄 page facing up +📰 newspaper +🗞️ rolled-up newspaper +📑 bookmark tabs +🔖 bookmark +🏷️ label +💰 money bag +🪙 coin +💴 yen banknote +💵 dollar banknote +💶 euro banknote +💷 pound banknote +💸 money with wings +💳 credit card +🧾 receipt +💹 chart increasing with yen +✉️ envelope +📧 e-mail +📨 incoming envelope +📩 envelope with arrow +📤 outbox tray +📥 inbox tray +📦 package +📫 closed mailbox with raised flag +📪 closed mailbox with lowered flag +📬 open mailbox with raised flag +📭 open mailbox with lowered flag +📮 postbox +🗳️ ballot box with ballot +✏️ pencil +✒️ black nib +🖋️ fountain pen +🖊️ pen +🖌️ paintbrush +🖍️ crayon +📝 memo +💼 briefcase +📁 file folder +📂 open file folder +🗂️ card index dividers +📅 calendar +📆 tear-off calendar +🗒️ spiral notepad +🗓️ spiral calendar +📇 card index +📈 chart increasing +📉 chart decreasing +📊 bar chart +📋 clipboard +📌 pushpin +📍 round pushpin +📎 paperclip +🖇️ linked paperclips +📏 straight ruler +📐 triangular ruler +✂️ scissors +🗃️ card file box +🗄️ file cabinet +🗑️ wastebasket +🔒 locked +🔓 unlocked +🔏 locked with pen +🔐 locked with key +🔑 key +🗝️ old key +🔨 hammer +🪓 axe +⛏️ pick +⚒️ hammer and pick +🛠️ hammer and wrench +🗡️ dagger +⚔️ crossed swords +🔫 water pistol +🪃 boomerang +🏹 bow and arrow +🛡️ shield +🪚 carpentry saw +🔧 wrench +🪛 screwdriver +🔩 nut and bolt +⚙️ gear +🗜️ clamp +⚖️ balance scale +🦯 white cane +🔗 link +⛓️ chains +🪝 hook +🧰 toolbox +🧲 magnet +🪜 ladder +⚗️ alembic +🧪 test tube +🧫 petri dish +🧬 dna +🔬 microscope +🔭 telescope +📡 satellite antenna +💉 syringe +🩸 drop of blood +💊 pill +🩹 adhesive bandage +🩼 crutch +🩺 stethoscope +🩻 x-ray +🚪 door +🛗 elevator +🪞 mirror +🪟 window +🛏️ bed +🛋️ couch and lamp +🪑 chair +🚽 toilet +🪠 plunger +🚿 shower +🛁 bathtub +🪤 mouse trap +🪒 razor +🧴 lotion bottle +🧷 safety pin +🧹 broom +🧺 basket +🧻 roll of paper +🪣 bucket +🧼 soap +🫧 bubbles +🪥 toothbrush +🧽 sponge +🧯 fire extinguisher +🛒 shopping cart +🚬 cigarette +⚰️ coffin +🪦 headstone +⚱️ funeral urn +🗿 moai +🪧 placard +🪪 identification card +🏧 ATM sign +🚮 litter in bin sign +🚰 potable water +♿ wheelchair symbol +🚹 men’s room +🚺 women’s room +🚻 restroom +🚼 baby symbol +🚾 water closet +🛂 passport control +🛃 customs +🛄 baggage claim +🛅 left luggage +⚠️ warning +🚸 children crossing +⛔ no entry +🚫 prohibited +🚳 no bicycles +🚭 no smoking +🚯 no littering +🚱 non-potable water +🚷 no pedestrians +📵 no mobile phones +🔞 no one under eighteen +☢️ radioactive +☣️ biohazard +⬆️ up arrow +↗️ up-right arrow +➡️ right arrow +↘️ down-right arrow +⬇️ down arrow +↙️ down-left arrow +⬅️ left arrow +↖️ up-left arrow +↕️ up-down arrow +↔️ left-right arrow +↩️ right arrow curving left +↪️ left arrow curving right +⤴️ right arrow curving up +⤵️ right arrow curving down +🔃 clockwise vertical arrows +🔄 counterclockwise arrows button +🔙 BACK arrow +🔚 END arrow +🔛 ON! arrow +🔜 SOON arrow +🔝 TOP arrow +🛐 place of worship +⚛️ atom symbol +🕉️ om +✡️ star of David +☸️ wheel of dharma +☯️ yin yang +✝️ latin cross +☦️ orthodox cross +☪️ star and crescent +☮️ peace symbol +🕎 menorah +🔯 dotted six-pointed star +♈ Aries +♉ Taurus +♊ Gemini +♋ Cancer +♌ Leo +♍ Virgo +♎ Libra +♏ Scorpio +♐ Sagittarius +♑ Capricorn +♒ Aquarius +♓ Pisces +⛎ Ophiuchus +🔀 shuffle tracks button +🔁 repeat button +🔂 repeat single button +▶️ play button +⏩ fast-forward button +⏭️ next track button +⏯️ play or pause button +◀️ reverse button +⏪ fast reverse button +⏮️ last track button +🔼 upwards button +⏫ fast up button +🔽 downwards button +⏬ fast down button +⏸️ pause button +⏹️ stop button +⏺️ record button +⏏️ eject button +🎦 cinema +🔅 dim button +🔆 bright button +📶 antenna bars +📳 vibration mode +📴 mobile phone off +♀️ female sign +♂️ male sign +⚧️ transgender symbol +✖️ multiply +➕ plus +➖ minus +➗ divide +🟰 heavy equals sign +♾️ infinity +‼️ double exclamation mark +⁉️ exclamation question mark +❓ red question mark +❔ white question mark +❕ white exclamation mark +❗ red exclamation mark +〰️ wavy dash +💱 currency exchange +💲 heavy dollar sign +⚕️ medical symbol +♻️ recycling symbol +⚜️ fleur-de-lis +🔱 trident emblem +📛 name badge +🔰 Japanese symbol for beginner +⭕ hollow red circle +✅ check mark button +☑️ check box with check +✔️ check mark +❌ cross mark +❎ cross mark button +➰ curly loop +➿ double curly loop +〽️ part alternation mark +✳️ eight-spoked asterisk +✴️ eight-pointed star +❇️ sparkle +©️ copyright +®️ registered +™️ trade mark +#️⃣ keycap: # +*️⃣ keycap: * +0️⃣ keycap: 0 +1️⃣ keycap: 1 +2️⃣ keycap: 2 +3️⃣ keycap: 3 +4️⃣ keycap: 4 +5️⃣ keycap: 5 +6️⃣ keycap: 6 +7️⃣ keycap: 7 +8️⃣ keycap: 8 +9️⃣ keycap: 9 +🔟 keycap: 10 +🔠 input latin uppercase +🔡 input latin lowercase +🔢 input numbers +🔣 input symbols +🔤 input latin letters +🅰️ A button (blood type) +🆎 AB button (blood type) +🅱️ B button (blood type) +🆑 CL button +🆒 COOL button +🆓 FREE button +ℹ️ information +🆔 ID button +Ⓜ️ circled M +🆕 NEW button +🆖 NG button +🅾️ O button (blood type) +🆗 OK button +🅿️ P button +🆘 SOS button +🆙 UP! button +🆚 VS button +🈁 Japanese “here” button +🈂️ Japanese “service charge” button +🈷️ Japanese “monthly amount” button +🈶 Japanese “not free of charge” button +🈯 Japanese “reserved” button +🉐 Japanese “bargain” button +🈹 Japanese “discount” button +🈚 Japanese “free of charge” button +🈲 Japanese “prohibited” button +🉑 Japanese “acceptable” button +🈸 Japanese “application” button +🈴 Japanese “passing grade” button +🈳 Japanese “vacancy” button +㊗️ Japanese “congratulations” button +㊙️ Japanese “secret” button +🈺 Japanese “open for business” button +🈵 Japanese “no vacancy” button +🔴 red circle +🟠 orange circle +🟡 yellow circle +🟢 green circle +🔵 blue circle +🟣 purple circle +🟤 brown circle +⚫ black circle +⚪ white circle +🟥 red square +🟧 orange square +🟨 yellow square +🟩 green square +🟦 blue square +🟪 purple square +🟫 brown square +⬛ black large square +⬜ white large square +◼️ black medium square +◻️ white medium square +◾ black medium-small square +◽ white medium-small square +▪️ black small square +▫️ white small square +🔶 large orange diamond +🔷 large blue diamond +🔸 small orange diamond +🔹 small blue diamond +🔺 red triangle pointed up +🔻 red triangle pointed down +💠 diamond with a dot +🔘 radio button +🔳 white square button +🔲 black square button +🏁 chequered flag +🚩 triangular flag +🎌 crossed flags +🏴 black flag +🏳️ white flag +🇦🇨 flag: Ascension Island +🇦🇩 flag: Andorra +🇦🇪 flag: United Arab Emirates +🇦🇫 flag: Afghanistan +🇦🇬 flag: Antigua & Barbuda +🇦🇮 flag: Anguilla +🇦🇱 flag: Albania +🇦🇲 flag: Armenia +🇦🇴 flag: Angola +🇦🇶 flag: Antarctica +🇦🇷 flag: Argentina +🇦🇸 flag: American Samoa +🇦🇹 flag: Austria +🇦🇺 flag: Australia +🇦🇼 flag: Aruba +🇦🇽 flag: Åland Islands +🇦🇿 flag: Azerbaijan +🇧🇦 flag: Bosnia & Herzegovina +🇧🇧 flag: Barbados +🇧🇩 flag: Bangladesh +🇧🇪 flag: Belgium +🇧🇫 flag: Burkina Faso +🇧🇬 flag: Bulgaria +🇧🇭 flag: Bahrain +🇧🇮 flag: Burundi +🇧🇯 flag: Benin +🇧🇱 flag: St. Barthélemy +🇧🇲 flag: Bermuda +🇧🇳 flag: Brunei +🇧🇴 flag: Bolivia +🇧🇶 flag: Caribbean Netherlands +🇧🇷 flag: Brazil +🇧🇸 flag: Bahamas +🇧🇹 flag: Bhutan +🇧🇻 flag: Bouvet Island +🇧🇼 flag: Botswana +🇧🇾 flag: Belarus +🇧🇿 flag: Belize +🇨🇦 flag: Canada +🇨🇨 flag: Cocos (Keeling) Islands +🇨🇩 flag: Congo - Kinshasa +🇨🇫 flag: Central African Republic +🇨🇬 flag: Congo - Brazzaville +🇨🇭 flag: Switzerland +🇨🇮 flag: Côte d’Ivoire +🇨🇰 flag: Cook Islands +🇨🇱 flag: Chile +🇨🇲 flag: Cameroon +🇨🇳 flag: China +🇨🇴 flag: Colombia +🇨🇵 flag: Clipperton Island +🇨🇷 flag: Costa Rica +🇨🇺 flag: Cuba +🇨🇻 flag: Cape Verde +🇨🇼 flag: Curaçao +🇨🇽 flag: Christmas Island +🇨🇾 flag: Cyprus +🇨🇿 flag: Czechia +🇩🇪 flag: Germany +🇩🇬 flag: Diego Garcia +🇩🇯 flag: Djibouti +🇩🇰 flag: Denmark +🇩🇲 flag: Dominica +🇩🇴 flag: Dominican Republic +🇩🇿 flag: Algeria +🇪🇦 flag: Ceuta & Melilla +🇪🇨 flag: Ecuador +🇪🇪 flag: Estonia +🇪🇬 flag: Egypt +🇪🇭 flag: Western Sahara +🇪🇷 flag: Eritrea +🇪🇸 flag: Spain +🇪🇹 flag: Ethiopia +🇪🇺 flag: European Union +🇫🇮 flag: Finland +🇫🇯 flag: Fiji +🇫🇰 flag: Falkland Islands +🇫🇲 flag: Micronesia +🇫🇴 flag: Faroe Islands +🇫🇷 flag: France +🇬🇦 flag: Gabon +🇬🇧 flag: United Kingdom +🇬🇩 flag: Grenada +🇬🇪 flag: Georgia +🇬🇫 flag: French Guiana +🇬🇬 flag: Guernsey +🇬🇭 flag: Ghana +🇬🇮 flag: Gibraltar +🇬🇱 flag: Greenland +🇬🇲 flag: Gambia +🇬🇳 flag: Guinea +🇬🇵 flag: Guadeloupe +🇬🇶 flag: Equatorial Guinea +🇬🇷 flag: Greece +🇬🇸 flag: South Georgia & South Sandwich Islands +🇬🇹 flag: Guatemala +🇬🇺 flag: Guam +🇬🇼 flag: Guinea-Bissau +🇬🇾 flag: Guyana +🇭🇰 flag: Hong Kong SAR China +🇭🇲 flag: Heard & McDonald Islands +🇭🇳 flag: Honduras +🇭🇷 flag: Croatia +🇭🇹 flag: Haiti +🇭🇺 flag: Hungary +🇮🇨 flag: Canary Islands +🇮🇩 flag: Indonesia +🇮🇪 flag: Ireland +🇮🇱 flag: Israel +🇮🇲 flag: Isle of Man +🇮🇳 flag: India +🇮🇴 flag: British Indian Ocean Territory +🇮🇶 flag: Iraq +🇮🇷 flag: Iran +🇮🇸 flag: Iceland +🇮🇹 flag: Italy +🇯🇪 flag: Jersey +🇯🇲 flag: Jamaica +🇯🇴 flag: Jordan +🇯🇵 flag: Japan +🇰🇪 flag: Kenya +🇰🇬 flag: Kyrgyzstan +🇰🇭 flag: Cambodia +🇰🇮 flag: Kiribati +🇰🇲 flag: Comoros +🇰🇳 flag: St. Kitts & Nevis +🇰🇵 flag: North Korea +🇰🇷 flag: South Korea +🇰🇼 flag: Kuwait +🇰🇾 flag: Cayman Islands +🇰🇿 flag: Kazakhstan +🇱🇦 flag: Laos +🇱🇧 flag: Lebanon +🇱🇨 flag: St. Lucia +🇱🇮 flag: Liechtenstein +🇱🇰 flag: Sri Lanka +🇱🇷 flag: Liberia +🇱🇸 flag: Lesotho +🇱🇹 flag: Lithuania +🇱🇺 flag: Luxembourg +🇱🇻 flag: Latvia +🇱🇾 flag: Libya +🇲🇦 flag: Morocco +🇲🇨 flag: Monaco +🇲🇩 flag: Moldova +🇲🇪 flag: Montenegro +🇲🇫 flag: St. Martin +🇲🇬 flag: Madagascar +🇲🇭 flag: Marshall Islands +🇲🇰 flag: North Macedonia +🇲🇱 flag: Mali +🇲🇲 flag: Myanmar (Burma) +🇲🇳 flag: Mongolia +🇲🇴 flag: Macao SAR China +🇲🇵 flag: Northern Mariana Islands +🇲🇶 flag: Martinique +🇲🇷 flag: Mauritania +🇲🇸 flag: Montserrat +🇲🇹 flag: Malta +🇲🇺 flag: Mauritius +🇲🇻 flag: Maldives +🇲🇼 flag: Malawi +🇲🇽 flag: Mexico +🇲🇾 flag: Malaysia +🇲🇿 flag: Mozambique +🇳🇦 flag: Namibia +🇳🇨 flag: New Caledonia +🇳🇪 flag: Niger +🇳🇫 flag: Norfolk Island +🇳🇬 flag: Nigeria +🇳🇮 flag: Nicaragua +🇳🇱 flag: Netherlands +🇳🇴 flag: Norway +🇳🇵 flag: Nepal +🇳🇷 flag: Nauru +🇳🇺 flag: Niue +🇳🇿 flag: New Zealand +🇴🇲 flag: Oman +🇵🇦 flag: Panama +🇵🇪 flag: Peru +🇵🇫 flag: French Polynesia +🇵🇬 flag: Papua New Guinea +🇵🇭 flag: Philippines +🇵🇰 flag: Pakistan +🇵🇱 flag: Poland +🇵🇲 flag: St. Pierre & Miquelon +🇵🇳 flag: Pitcairn Islands +🇵🇷 flag: Puerto Rico +🇵🇸 flag: Palestinian Territories +🇵🇹 flag: Portugal +🇵🇼 flag: Palau +🇵🇾 flag: Paraguay +🇶🇦 flag: Qatar +🇷🇪 flag: Réunion +🇷🇴 flag: Romania +🇷🇸 flag: Serbia +🇷🇺 flag: Russia +🇷🇼 flag: Rwanda +🇸🇦 flag: Saudi Arabia +🇸🇧 flag: Solomon Islands +🇸🇨 flag: Seychelles +🇸🇩 flag: Sudan +🇸🇪 flag: Sweden +🇸🇬 flag: Singapore +🇸🇭 flag: St. Helena +🇸🇮 flag: Slovenia +🇸🇯 flag: Svalbard & Jan Mayen +🇸🇰 flag: Slovakia +🇸🇱 flag: Sierra Leone +🇸🇲 flag: San Marino +🇸🇳 flag: Senegal +🇸🇴 flag: Somalia +🇸🇷 flag: Suriname +🇸🇸 flag: South Sudan +🇸🇹 flag: São Tomé & Príncipe +🇸🇻 flag: El Salvador +🇸🇽 flag: Sint Maarten +🇸🇾 flag: Syria +🇸🇿 flag: Eswatini +🇹🇦 flag: Tristan da Cunha +🇹🇨 flag: Turks & Caicos Islands +🇹🇩 flag: Chad +🇹🇫 flag: French Southern Territories +🇹🇬 flag: Togo +🇹🇭 flag: Thailand +🇹🇯 flag: Tajikistan +🇹🇰 flag: Tokelau +🇹🇱 flag: Timor-Leste +🇹🇲 flag: Turkmenistan +🇹🇳 flag: Tunisia +🇹🇴 flag: Tonga +🇹🇷 flag: Turkey +🇹🇹 flag: Trinidad & Tobago +🇹🇻 flag: Tuvalu +🇹🇼 flag: Taiwan +🇹🇿 flag: Tanzania +🇺🇦 flag: Ukraine +🇺🇬 flag: Uganda +🇺🇲 flag: U.S. Outlying Islands +🇺🇳 flag: United Nations +🇺🇸 flag: United States +🇺🇾 flag: Uruguay +🇺🇿 flag: Uzbekistan +🇻🇦 flag: Vatican City +🇻🇨 flag: St. Vincent & Grenadines +🇻🇪 flag: Venezuela +🇻🇬 flag: British Virgin Islands +🇻🇮 flag: U.S. Virgin Islands +🇻🇳 flag: Vietnam +🇻🇺 flag: Vanuatu +🇼🇫 flag: Wallis & Futuna +🇼🇸 flag: Samoa +🇽🇰 flag: Kosovo +🇾🇪 flag: Yemen +🇾🇹 flag: Mayotte +🇿🇦 flag: South Africa +🇿🇲 flag: Zambia +🇿🇼 flag: Zimbabwe +🏴󠁧󠁢󠁥󠁮󠁧󠁿 flag: England +🏴󠁧󠁢󠁳󠁣󠁴󠁿 flag: Scotland +🏴󠁧󠁢󠁷󠁬󠁳󠁿 flag: Wales diff --git a/extras/chars/font-awesome b/extras/chars/font-awesome new file mode 100644 index 0000000..3283be3 --- /dev/null +++ b/extras/chars/font-awesome @@ -0,0 +1,1456 @@ + 500px; f26e + accessible-icon; f368 + accusoft; f369 + acquisitions-incorporated; f6af + ad; f641 + address-book; f2b9 + address-card; f2bb + adjust; f042 + adn; f170 + adversal; f36a + affiliatetheme; f36b + air-freshener; f5d0 + airbnb; f834 + algolia; f36c + align-center; f037 + align-justify; f039 + align-left; f036 + align-right; f038 + alipay; f642 + allergies; f461 + amazon; f270 + amazon-pay; f42c + ambulance; f0f9 + american-sign-language-interpreting; f2a3 + amilia; f36d + anchor; f13d + android; f17b + angellist; f209 + angle-double-down; f103 + angle-double-left; f100 + angle-double-right; f101 + angle-double-up; f102 + angle-down; f107 + angle-left; f104 + angle-right; f105 + angle-up; f106 + angry; f556 + angrycreative; f36e + angular; f420 + ankh; f644 + app-store; f36f + app-store-ios; f370 + apper; f371 + apple; f179 + apple-alt; f5d1 + apple-pay; f415 + archive; f187 + archway; f557 + arrow-alt-circle-down; f358 + arrow-alt-circle-left; f359 + arrow-alt-circle-right; f35a + arrow-alt-circle-up; f35b + arrow-circle-down; f0ab + arrow-circle-left; f0a8 + arrow-circle-right; f0a9 + arrow-circle-up; f0aa + arrow-down; f063 + arrow-left; f060 + arrow-right; f061 + arrow-up; f062 + arrows-alt; f0b2 + arrows-alt-h; f337 + arrows-alt-v; f338 + artstation; f77a + assistive-listening-systems; f2a2 + asterisk; f069 + asymmetrik; f372 + at; f1fa + atlas; f558 + atlassian; f77b + atom; f5d2 + audible; f373 + audio-description; f29e + autoprefixer; f41c + avianex; f374 + aviato; f421 + award; f559 + aws; f375 + baby; f77c + baby-carriage; f77d + backspace; f55a + backward; f04a + bacon; f7e5 + bacteria e059 + bacterium e05a + bahai; f666 + balance-scale; f24e + balance-scale-left; f515 + balance-scale-right; f516 + ban; f05e + band-aid; f462 + bandcamp; f2d5 + barcode; f02a + bars; f0c9 + baseball-ball; f433 + basketball-ball; f434 + bath; f2cd + battery-empty; f244 + battery-full; f240 + battery-half; f242 + battery-quarter; f243 + battery-three-quarters; f241 + battle-net; f835 + bed; f236 + beer; f0fc + behance; f1b4 + behance-square; f1b5 + bell; f0f3 + bell-slash; f1f6 + bezier-curve; f55b + bible; f647 + bicycle; f206 + biking; f84a + bimobject; f378 + binoculars; f1e5 + biohazard; f780 + birthday-cake; f1fd + bitbucket; f171 + bitcoin; f379 + bity; f37a + black-tie; f27e + blackberry; f37b + blender; f517 + blender-phone; f6b6 + blind; f29d + blog; f781 + blogger; f37c + blogger-b; f37d + bluetooth; f293 + bluetooth-b; f294 + bold; f032 + bolt; f0e7 + bomb; f1e2 + bone; f5d7 + bong; f55c + book; f02d + book-dead; f6b7 + book-medical; f7e6 + book-open; f518 + book-reader; f5da + bookmark; f02e + bootstrap; f836 + border-all; f84c + border-none; f850 + border-style; f853 + bowling-ball; f436 + box; f466 + box-open; f49e + box-tissue e05b + boxes; f468 + braille; f2a1 + brain; f5dc + bread-slice; f7ec + briefcase; f0b1 + briefcase-medical; f469 + broadcast-tower; f519 + broom; f51a + brush; f55d + btc; f15a + buffer; f837 + bug; f188 + building; f1ad + bullhorn; f0a1 + bullseye; f140 + burn; f46a + buromobelexperte; f37f + bus; f207 + bus-alt; f55e + business-time; f64a + buy-n-large; f8a6 + calculator; f1ec + calendar; f133 + calendar-alt; f073 + calendar-check; f274 + calendar-day; f783 + calendar-minus; f272 + calendar-plus; f271 + calendar-times; f273 + calendar-week; f784 + camera; f030 + camera-retro; f083 + campground; f6bb + canadian-maple-leaf; f785 + candy-cane; f786 + cannabis; f55f + capsules; f46b + car; f1b9 + car-alt; f5de + car-battery; f5df + car-crash; f5e1 + car-side; f5e4 + caravan; f8ff + caret-down; f0d7 + caret-left; f0d9 + caret-right; f0da + caret-square-down; f150 + caret-square-left; f191 + caret-square-right; f152 + caret-square-up; f151 + caret-up; f0d8 + carrot; f787 + cart-arrow-down; f218 + cart-plus; f217 + cash-register; f788 + cat; f6be + cc-amazon-pay; f42d + cc-amex; f1f3 + cc-apple-pay; f416 + cc-diners-club; f24c + cc-discover; f1f2 + cc-jcb; f24b + cc-mastercard; f1f1 + cc-paypal; f1f4 + cc-stripe; f1f5 + cc-visa; f1f0 + centercode; f380 + centos; f789 + certificate; f0a3 + chair; f6c0 + chalkboard; f51b + chalkboard-teacher; f51c + charging-station; f5e7 + chart-area; f1fe + chart-bar; f080 + chart-line; f201 + chart-pie; f200 + check; f00c + check-circle; f058 + check-double; f560 + check-square; f14a + cheese; f7ef + chess; f439 + chess-bishop; f43a + chess-board; f43c + chess-king; f43f + chess-knight; f441 + chess-pawn; f443 + chess-queen; f445 + chess-rook; f447 + chevron-circle-down; f13a + chevron-circle-left; f137 + chevron-circle-right; f138 + chevron-circle-up; f139 + chevron-down; f078 + chevron-left; f053 + chevron-right; f054 + chevron-up; f077 + child; f1ae + chrome; f268 + chromecast; f838 + church; f51d + circle; f111 + circle-notch; f1ce + city; f64f + clinic-medical; f7f2 + clipboard; f328 + clipboard-check; f46c + clipboard-list; f46d + clock; f017 + clone; f24d + closed-captioning; f20a + cloud; f0c2 + cloud-download-alt; f381 + cloud-meatball; f73b + cloud-moon; f6c3 + cloud-moon-rain; f73c + cloud-rain; f73d + cloud-showers-heavy; f740 + cloud-sun; f6c4 + cloud-sun-rain; f743 + cloud-upload-alt; f382 + cloudflare e07d + cloudscale; f383 + cloudsmith; f384 + cloudversify; f385 + cocktail; f561 + code; f121 + code-branch; f126 + codepen; f1cb + codiepie; f284 + coffee; f0f4 + cog; f013 + cogs; f085 + coins; f51e + columns; f0db + comment; f075 + comment-alt; f27a + comment-dollar; f651 + comment-dots; f4ad + comment-medical; f7f5 + comment-slash; f4b3 + comments; f086 + comments-dollar; f653 + compact-disc; f51f + compass; f14e + compress; f066 + compress-alt; f422 + compress-arrows-alt; f78c + concierge-bell; f562 + confluence; f78d + connectdevelop; f20e + contao; f26d + cookie; f563 + cookie-bite; f564 + copy; f0c5 + copyright; f1f9 + cotton-bureau; f89e + couch; f4b8 + cpanel; f388 + creative-commons; f25e + creative-commons-by; f4e7 + creative-commons-nc; f4e8 + creative-commons-nc-eu; f4e9 + creative-commons-nc-jp; f4ea + creative-commons-nd; f4eb + creative-commons-pd; f4ec + creative-commons-pd-alt; f4ed + creative-commons-remix; f4ee + creative-commons-sa; f4ef + creative-commons-sampling; f4f0 + creative-commons-sampling-plus; f4f1 + creative-commons-share; f4f2 + creative-commons-zero; f4f3 + credit-card; f09d + critical-role; f6c9 + crop; f125 + crop-alt; f565 + cross; f654 + crosshairs; f05b + crow; f520 + crown; f521 + crutch; f7f7 + css3; f13c + css3-alt; f38b + cube; f1b2 + cubes; f1b3 + cut; f0c4 + cuttlefish; f38c + d-and-d; f38d + d-and-d-beyond; f6ca + dailymotion e052 + dashcube; f210 + database; f1c0 + deaf; f2a4 + deezer e077 + delicious; f1a5 + democrat; f747 + deploydog; f38e + deskpro; f38f + desktop; f108 + dev; f6cc + deviantart; f1bd + dharmachakra; f655 + dhl; f790 + diagnoses; f470 + diaspora; f791 + dice; f522 + dice-d20; f6cf + dice-d6; f6d1 + dice-five; f523 + dice-four; f524 + dice-one; f525 + dice-six; f526 + dice-three; f527 + dice-two; f528 + digg; f1a6 + digital-ocean; f391 + digital-tachograph; f566 + directions; f5eb + discord; f392 + discourse; f393 + disease; f7fa + divide; f529 + dizzy; f567 + dna; f471 + dochub; f394 + docker; f395 + dog; f6d3 + dollar-sign; f155 + dolly; f472 + dolly-flatbed; f474 + donate; f4b9 + door-closed; f52a + door-open; f52b + dot-circle; f192 + dove; f4ba + download; f019 + draft2digital; f396 + drafting-compass; f568 + dragon; f6d5 + draw-polygon; f5ee + dribbble; f17d + dribbble-square; f397 + dropbox; f16b + drum; f569 + drum-steelpan; f56a + drumstick-bite; f6d7 + drupal; f1a9 + dumbbell; f44b + dumpster; f793 + dumpster-fire; f794 + dungeon; f6d9 + dyalog; f399 + earlybirds; f39a + ebay; f4f4 + edge; f282 + edge-legacy e078 + edit; f044 + egg; f7fb + eject; f052 + elementor; f430 + ellipsis-h; f141 + ellipsis-v; f142 + ello; f5f1 + ember; f423 + empire; f1d1 + envelope; f0e0 + envelope-open; f2b6 + envelope-open-text; f658 + envelope-square; f199 + envira; f299 + equals; f52c + eraser; f12d + erlang; f39d + ethereum; f42e + ethernet; f796 + etsy; f2d7 + euro-sign; f153 + evernote; f839 + exchange-alt; f362 + exclamation; f12a + exclamation-circle; f06a + exclamation-triangle; f071 + expand; f065 + expand-alt; f424 + expand-arrows-alt; f31e + expeditedssl; f23e + external-link-alt; f35d + external-link-square-alt; f360 + eye; f06e + eye-dropper; f1fb + eye-slash; f070 + ; facebook; f09a + ; facebook-f; f39e + ; facebook-messenger; f39f + ; facebook-square; f082 + ; fan; f863 + ; fantasy-flight-games; f6dc + ; fast-backward; f049 + ; fast-forward; f050 + ; faucet e005 + ; fax; f1ac + ; feather; f52d + ; feather-alt; f56b + ; fedex; f797 + ; fedora; f798 + ; female; f182 + ; fighter-jet; f0fb + ; figma; f799 + ; file; f15b + ; file-alt; f15c + ; file-archive; f1c6 + ; file-audio; f1c7 + ; file-code; f1c9 + ; file-contract; f56c + ; file-csv; f6dd + ; file-download; f56d + ; file-excel; f1c3 + ; file-export; f56e + ; file-image; f1c5 + ; file-import; f56f + ; file-invoice; f570 + ; file-invoice-dollar; f571 + ; file-medical; f477 + ; file-medical-alt; f478 + ; file-pdf; f1c1 + ; file-powerpoint; f1c4 + ; file-prescription; f572 + ; file-signature; f573 + ; file-upload; f574 + ; file-video; f1c8 + ; file-word; f1c2 + ; fill; f575 + ; fill-drip; f576 + ; film; f008 + ; filter; f0b0 + ; fingerprint; f577 + ; fire; f06d + ; fire-alt; f7e4 + ; fire-extinguisher; f134 + ; firefox; f269 + ; firefox-browser e007 + ; first-aid; f479 + ; first-order; f2b0 + ; first-order-alt; f50a + ; firstdraft; f3a1 + ; fish; f578 + ; fist-raised; f6de + ; flag; f024 + ; flag-checkered; f11e + ; flag-usa; f74d + ; flask; f0c3 + ; flickr; f16e + ; flipboard; f44d + ; flushed; f579 + ; fly; f417 + ; folder; f07b + ; folder-minus; f65d + ; folder-open; f07c + ; folder-plus; f65e + ; font; f031 + ; font-awesome; f2b4 + ; font-awesome-alt; f35c + ; font-awesome-flag; f425 + ; fonticons; f280 + ; fonticons-fi; f3a2 + ; football-ball; f44e + ; fort-awesome; f286 + ; fort-awesome-alt; f3a3 + ; forumbee; f211 + ; forward; f04e + ; foursquare; f180 + ; free-code-camp; f2c5 + ; freebsd; f3a4 + ; frog; f52e + ; frown; f119 + ; frown-open; f57a + ; fulcrum; f50b + ; funnel-dollar; f662 + ; futbol; f1e3 + galactic-republic; f50c + galactic-senate; f50d + gamepad; f11b + gas-pump; f52f + gavel; f0e3 + gem; f3a5 + genderless; f22d + get-pocket; f265 + gg; f260 + gg-circle; f261 + ghost; f6e2 + gift; f06b + gifts; f79c + git; f1d3 + git-alt; f841 + git-square; f1d2 + github; f09b + github-alt; f113 + github-square; f092 + gitkraken; f3a6 + gitlab; f296 + gitter; f426 + glass-cheers; f79f + glass-martini; f000 + glass-martini-alt; f57b + glass-whiskey; f7a0 + glasses; f530 + glide; f2a5 + glide-g; f2a6 + globe; f0ac + globe-africa; f57c + globe-americas; f57d + globe-asia; f57e + globe-europe; f7a2 + gofore; f3a7 + golf-ball; f450 + goodreads; f3a8 + goodreads-g; f3a9 + google; f1a0 + google-drive; f3aa + google-pay e079 + google-play; f3ab + google-plus; f2b3 + google-plus-g; f0d5 + google-plus-square; f0d4 + google-wallet; f1ee + gopuram; f664 + graduation-cap; f19d + gratipay; f184 + grav; f2d6 + greater-than; f531 + greater-than-equal; f532 + grimace; f57f + grin; f580 + grin-alt; f581 + grin-beam; f582 + grin-beam-sweat; f583 + grin-hearts; f584 + grin-squint; f585 + grin-squint-tears; f586 + grin-stars; f587 + grin-tears; f588 + grin-tongue; f589 + grin-tongue-squint; f58a + grin-tongue-wink; f58b + grin-wink; f58c + grip-horizontal; f58d + grip-lines; f7a4 + grip-lines-vertical; f7a5 + grip-vertical; f58e + gripfire; f3ac + grunt; f3ad + guilded e07e + guitar; f7a6 + gulp; f3ae + h-square; f0fd + hacker-news; f1d4 + hacker-news-square; f3af + hackerrank; f5f7 + hamburger; f805 + hammer; f6e3 + hamsa; f665 + hand-holding; f4bd + hand-holding-heart; f4be + hand-holding-medical e05c + hand-holding-usd; f4c0 + hand-holding-water; f4c1 + hand-lizard; f258 + hand-middle-finger; f806 + hand-paper; f256 + hand-peace; f25b + hand-point-down; f0a7 + hand-point-left; f0a5 + hand-point-right; f0a4 + hand-point-up; f0a6 + hand-pointer; f25a + hand-rock; f255 + hand-scissors; f257 + hand-sparkles e05d + hand-spock; f259 + hands; f4c2 + hands-helping; f4c4 + hands-wash e05e + handshake; f2b5 + handshake-alt-slash e05f + handshake-slash e060 + hanukiah; f6e6 + hard-hat; f807 + hashtag; f292 + hat-cowboy; f8c0 + hat-cowboy-side; f8c1 + hat-wizard; f6e8 + hdd; f0a0 + head-side-cough e061 + head-side-cough-slash e062 + head-side-mask e063 + head-side-virus e064 + heading; f1dc + headphones; f025 + headphones-alt; f58f + headset; f590 + heart; f004 + heart-broken; f7a9 + heartbeat; f21e + helicopter; f533 + highlighter; f591 + hiking; f6ec + hippo; f6ed + hips; f452 + hire-a-helper; f3b0 + history; f1da + hive e07f + hockey-puck; f453 + holly-berry; f7aa + home; f015 + hooli; f427 + hornbill; f592 + horse; f6f0 + horse-head; f7ab + hospital; f0f8 + hospital-alt; f47d + hospital-symbol; f47e + hospital-user; f80d + hot-tub; f593 + hotdog; f80f + hotel; f594 + hotjar; f3b1 + hourglass; f254 + hourglass-end; f253 + hourglass-half; f252 + hourglass-start; f251 + house-damage; f6f1 + house-user e065 + houzz; f27c + hryvnia; f6f2 + html5; f13b + hubspot; f3b2 + i-cursor; f246 + ice-cream; f810 + icicles; f7ad + icons; f86d + id-badge; f2c1 + id-card; f2c2 + id-card-alt; f47f + ideal e013 + igloo; f7ae + image; f03e + images; f302 + imdb; f2d8 + inbox; f01c + indent; f03c + industry; f275 + infinity; f534 + info; f129 + info-circle; f05a + innosoft e080 + instagram; f16d + instagram-square e055 + instalod e081 + intercom; f7af + internet-explorer; f26b + invision; f7b0 + ioxhost; f208 + italic; f033 + itch-io; f83a + itunes; f3b4 + itunes-note; f3b5 + java; f4e4 + jedi; f669 + jedi-order; f50e + jenkins; f3b6 + jira; f7b1 + joget; f3b7 + joint; f595 + joomla; f1aa + journal-whills; f66a + js; f3b8 + js-square; f3b9 + jsfiddle; f1cc + kaaba; f66b + kaggle; f5fa + key; f084 + keybase; f4f5 + keyboard; f11c + keycdn; f3ba + khanda; f66d + kickstarter; f3bb + kickstarter-k; f3bc + kiss; f596 + kiss-beam; f597 + kiss-wink-heart; f598 + kiwi-bird; f535 + korvue; f42f + landmark; f66f + language; f1ab + laptop; f109 + laptop-code; f5fc + laptop-house e066 + laptop-medical; f812 + laravel; f3bd + lastfm; f202 + lastfm-square; f203 + laugh; f599 + laugh-beam; f59a + laugh-squint; f59b + laugh-wink; f59c + layer-group; f5fd + leaf; f06c + leanpub; f212 + lemon; f094 + less; f41d + less-than; f536 + less-than-equal; f537 + level-down-alt; f3be + level-up-alt; f3bf + life-ring; f1cd + lightbulb; f0eb + line; f3c0 + link; f0c1 + linkedin; f08c + linkedin-in; f0e1 + linode; f2b8 + linux; f17c + lira-sign; f195 + list; f03a + list-alt; f022 + list-ol; f0cb + list-ul; f0ca + location-arrow; f124 + lock; f023 + lock-open; f3c1 + long-arrow-alt-down; f309 + long-arrow-alt-left; f30a + long-arrow-alt-right; f30b + long-arrow-alt-up; f30c + low-vision; f2a8 + luggage-cart; f59d + lungs; f604 + lungs-virus e067 + lyft; f3c3 + magento; f3c4 + magic; f0d0 + magnet; f076 + mail-bulk; f674 + mailchimp; f59e + male; f183 + mandalorian; f50f + map; f279 + map-marked; f59f + map-marked-alt; f5a0 + map-marker; f041 + map-marker-alt; f3c5 + map-pin; f276 + map-signs; f277 + markdown; f60f + marker; f5a1 + mars; f222 + mars-double; f227 + mars-stroke; f229 + mars-stroke-h; f22b + mars-stroke-v; f22a + mask; f6fa + mastodon; f4f6 + maxcdn; f136 + mdb; f8ca + medal; f5a2 + medapps; f3c6 + medium; f23a + medium-m; f3c7 + medkit; f0fa + medrt; f3c8 + meetup; f2e0 + megaport; f5a3 + meh; f11a + meh-blank; f5a4 + meh-rolling-eyes; f5a5 + memory; f538 + mendeley; f7b3 + menorah; f676 + mercury; f223 + meteor; f753 + microblog e01a + microchip; f2db + microphone; f130 + microphone-alt; f3c9 + microphone-alt-slash; f539 + microphone-slash; f131 + microscope; f610 + microsoft; f3ca + minus; f068 + minus-circle; f056 + minus-square; f146 + mitten; f7b5 + mix; f3cb + mixcloud; f289 + mixer e056 + mizuni; f3cc + mobile; f10b + mobile-alt; f3cd + modx; f285 + monero; f3d0 + money-bill; f0d6 + money-bill-alt; f3d1 + money-bill-wave; f53a + money-bill-wave-alt; f53b + money-check; f53c + money-check-alt; f53d + monument; f5a6 + moon; f186 + mortar-pestle; f5a7 + mosque; f678 + motorcycle; f21c + mountain; f6fc + mouse; f8cc + mouse-pointer; f245 + mug-hot; f7b6 + music; f001 + napster; f3d2 + neos; f612 + network-wired; f6ff + neuter; f22c + newspaper; f1ea + nimblr; f5a8 + node; f419 + node-js; f3d3 + not-equal; f53e + notes-medical; f481 + npm; f3d4 + ns8; f3d5 + nutritionix; f3d6 + object-group; f247 + object-ungroup; f248 + octopus-deploy e082 + odnoklassniki; f263 + odnoklassniki-square; f264 + oil-can; f613 + old-republic; f510 + om; f679 + opencart; f23d + openid; f19b + opera; f26a + optin-monster; f23c + orcid; f8d2 + osi; f41a + otter; f700 + outdent; f03b + page4; f3d7 + pagelines; f18c + pager; f815 + paint-brush; f1fc + paint-roller; f5aa + palette; f53f + palfed; f3d8 + pallet; f482 + paper-plane; f1d8 + paperclip; f0c6 + parachute-box; f4cd + paragraph; f1dd + parking; f540 + passport; f5ab + pastafarianism; f67b + paste; f0ea + patreon; f3d9 + pause; f04c + pause-circle; f28b + paw; f1b0 + paypal; f1ed + peace; f67c + pen; f304 + pen-alt; f305 + pen-fancy; f5ac + pen-nib; f5ad + pen-square; f14b + pencil-alt; f303 + pencil-ruler; f5ae + penny-arcade; f704 + people-arrows e068 + people-carry; f4ce + pepper-hot; f816 + perbyte e083 + percent; f295 + percentage; f541 + periscope; f3da + person-booth; f756 + phabricator; f3db + phoenix-framework; f3dc + phoenix-squadron; f511 + phone; f095 + phone-alt; f879 + phone-slash; f3dd + phone-square; f098 + phone-square-alt; f87b + phone-volume; f2a0 + photo-video; f87c + php; f457 + pied-piper; f2ae + pied-piper-alt; f1a8 + pied-piper-hat; f4e5 + pied-piper-pp; f1a7 + pied-piper-square e01e + piggy-bank; f4d3 + pills; f484 + pinterest; f0d2 + pinterest-p; f231 + pinterest-square; f0d3 + pizza-slice; f818 + place-of-worship; f67f + plane; f072 + plane-arrival; f5af + plane-departure; f5b0 + plane-slash e069 + play; f04b + play-circle; f144 + playstation; f3df + plug; f1e6 + plus; f067 + plus-circle; f055 + plus-square; f0fe + podcast; f2ce + poll; f681 + poll-h; f682 + poo; f2fe + poo-storm; f75a + poop; f619 + portrait; f3e0 + pound-sign; f154 + power-off; f011 + pray; f683 + praying-hands; f684 + prescription; f5b1 + prescription-bottle; f485 + prescription-bottle-alt; f486 + print; f02f + procedures; f487 + product-hunt; f288 + project-diagram; f542 + pump-medical e06a + pump-soap e06b + pushed; f3e1 + puzzle-piece; f12e + python; f3e2 + qq; f1d6 + qrcode; f029 + question; f128 + question-circle; f059 + quidditch; f458 + quinscape; f459 + quora; f2c4 + quote-left; f10d + quote-right; f10e + quran; f687 + r-project; f4f7 + radiation; f7b9 + radiation-alt; f7ba + rainbow; f75b + random; f074 + raspberry-pi; f7bb + ravelry; f2d9 + react; f41b + reacteurope; f75d + readme; f4d5 + rebel; f1d0 + receipt; f543 + record-vinyl; f8d9 + recycle; f1b8 + red-river; f3e3 + reddit; f1a1 + reddit-alien; f281 + reddit-square; f1a2 + redhat; f7bc + redo; f01e + redo-alt; f2f9 + registered; f25d + remove-format; f87d + renren; f18b + reply; f3e5 + reply-all; f122 + replyd; f3e6 + republican; f75e + researchgate; f4f8 + resolving; f3e7 + restroom; f7bd + retweet; f079 + rev; f5b2 + ribbon; f4d6 + ring; f70b + road; f018 + robot; f544 + rocket; f135 + rocketchat; f3e8 + rockrms; f3e9 + route; f4d7 + rss; f09e + rss-square; f143 + ruble-sign; f158 + ruler; f545 + ruler-combined; f546 + ruler-horizontal; f547 + ruler-vertical; f548 + running; f70c + rupee-sign; f156 + rust e07a + sad-cry; f5b3 + sad-tear; f5b4 + safari; f267 + salesforce; f83b + sass; f41e + satellite; f7bf + satellite-dish; f7c0 + save; f0c7 + schlix; f3ea + school; f549 + screwdriver; f54a + scribd; f28a + scroll; f70e + sd-card; f7c2 + search; f002 + search-dollar; f688 + search-location; f689 + search-minus; f010 + search-plus; f00e + searchengin; f3eb + seedling; f4d8 + sellcast; f2da + sellsy; f213 + server; f233 + servicestack; f3ec + shapes; f61f + share; f064 + share-alt; f1e0 + share-alt-square; f1e1 + share-square; f14d + shekel-sign; f20b + shield-alt; f3ed + shield-virus e06c + ship; f21a + shipping-fast; f48b + shirtsinbulk; f214 + shoe-prints; f54b + shopify e057 + shopping-bag; f290 + shopping-basket; f291 + shopping-cart; f07a + shopware; f5b5 + shower; f2cc + shuttle-van; f5b6 + sign; f4d9 + sign-in-alt; f2f6 + sign-language; f2a7 + sign-out-alt; f2f5 + signal; f012 + signature; f5b7 + sim-card; f7c4 + simplybuilt; f215 + sink e06d + sistrix; f3ee + sitemap; f0e8 + sith; f512 + skating; f7c5 + sketch; f7c6 + skiing; f7c9 + skiing-nordic; f7ca + skull; f54c + skull-crossbones; f714 + skyatlas; f216 + skype; f17e + slack; f198 + slack-hash; f3ef + slash; f715 + sleigh; f7cc + sliders-h; f1de + slideshare; f1e7 + smile; f118 + smile-beam; f5b8 + smile-wink; f4da + smog; f75f + smoking; f48d + smoking-ban; f54d + sms; f7cd + snapchat; f2ab + snapchat-ghost; f2ac + snapchat-square; f2ad + snowboarding; f7ce + snowflake; f2dc + snowman; f7d0 + snowplow; f7d2 + soap e06e + socks; f696 + solar-panel; f5ba + sort; f0dc + sort-alpha-down; f15d + sort-alpha-down-alt; f881 + sort-alpha-up; f15e + sort-alpha-up-alt; f882 + sort-amount-down; f160 + sort-amount-down-alt; f884 + sort-amount-up; f161 + sort-amount-up-alt; f885 + sort-down; f0dd + sort-numeric-down; f162 + sort-numeric-down-alt; f886 + sort-numeric-up; f163 + sort-numeric-up-alt; f887 + sort-up; f0de + soundcloud; f1be + sourcetree; f7d3 + spa; f5bb + space-shuttle; f197 + speakap; f3f3 + speaker-deck; f83c + spell-check; f891 + spider; f717 + spinner; f110 + splotch; f5bc + spotify; f1bc + spray-can; f5bd + square; f0c8 + square-full; f45c + square-root-alt; f698 + squarespace; f5be + stack-exchange; f18d + stack-overflow; f16c + stackpath; f842 + stamp; f5bf + star; f005 + star-and-crescent; f699 + star-half; f089 + star-half-alt; f5c0 + star-of-david; f69a + star-of-life; f621 + staylinked; f3f5 + steam; f1b6 + steam-square; f1b7 + steam-symbol; f3f6 + step-backward; f048 + step-forward; f051 + stethoscope; f0f1 + sticker-mule; f3f7 + sticky-note; f249 + stop; f04d + stop-circle; f28d + stopwatch; f2f2 + stopwatch-20 e06f + store; f54e + store-alt; f54f + store-alt-slash e070 + store-slash e071 + strava; f428 + stream; f550 + street-view; f21d + strikethrough; f0cc + stripe; f429 + stripe-s; f42a + stroopwafel; f551 + studiovinari; f3f8 + stumbleupon; f1a4 + stumbleupon-circle; f1a3 + subscript; f12c + subway; f239 + suitcase; f0f2 + suitcase-rolling; f5c1 + sun; f185 + superpowers; f2dd + superscript; f12b + supple; f3f9 + surprise; f5c2 + suse; f7d6 + swatchbook; f5c3 + swift; f8e1 + swimmer; f5c4 + swimming-pool; f5c5 + symfony; f83d + synagogue; f69b + sync; f021 + sync-alt; f2f1 + syringe; f48e + table; f0ce + table-tennis; f45d + tablet; f10a + tablet-alt; f3fa + tablets; f490 + tachometer-alt; f3fd + tag; f02b + tags; f02c + tape; f4db + tasks; f0ae + taxi; f1ba + teamspeak; f4f9 + teeth; f62e + teeth-open; f62f + telegram; f2c6 + telegram-plane; f3fe + temperature-high; f769 + temperature-low; f76b + tencent-weibo; f1d5 + tenge; f7d7 + terminal; f120 + text-height; f034 + text-width; f035 + th; f00a + th-large; f009 + th-list; f00b + the-red-yeti; f69d + theater-masks; f630 + themeco; f5c6 + themeisle; f2b2 + thermometer; f491 + thermometer-empty; f2cb + thermometer-full; f2c7 + thermometer-half; f2c9 + thermometer-quarter; f2ca + thermometer-three-quarters; f2c8 + think-peaks; f731 + thumbs-down; f165 + thumbs-up; f164 + thumbtack; f08d + ticket-alt; f3ff + tiktok e07b + times; f00d + times-circle; f057 + tint; f043 + tint-slash; f5c7 + tired; f5c8 + toggle-off; f204 + toggle-on; f205 + toilet; f7d8 + toilet-paper; f71e + toilet-paper-slash e072 + toolbox; f552 + tools; f7d9 + tooth; f5c9 + torah; f6a0 + torii-gate; f6a1 + tractor; f722 + trade-federation; f513 + trademark; f25c + traffic-light; f637 + trailer e041 + train; f238 + tram; f7da + transgender; f224 + transgender-alt; f225 + trash; f1f8 + trash-alt; f2ed + trash-restore; f829 + trash-restore-alt; f82a + tree; f1bb + trello; f181 + trophy; f091 + truck; f0d1 + truck-loading; f4de + truck-monster; f63b + truck-moving; f4df + truck-pickup; f63c + tshirt; f553 + tty; f1e4 + tumblr; f173 + tumblr-square; f174 + tv; f26c + twitch; f1e8 + twitter; f099 + twitter-square; f081 + typo3; f42b + uber; f402 + ubuntu; f7df + uikit; f403 + umbraco; f8e8 + umbrella; f0e9 + umbrella-beach; f5ca + uncharted e084 + underline; f0cd + undo; f0e2 + undo-alt; f2ea + uniregistry; f404 + unity e049 + universal-access; f29a + university; f19c + unlink; f127 + unlock; f09c + unlock-alt; f13e + unsplash e07c + untappd; f405 + upload; f093 + ups; f7e0 + usb; f287 + user; f007 + user-alt; f406 + user-alt-slash; f4fa + user-astronaut; f4fb + user-check; f4fc + user-circle; f2bd + user-clock; f4fd + user-cog; f4fe + user-edit; f4ff + user-friends; f500 + user-graduate; f501 + user-injured; f728 + user-lock; f502 + user-md; f0f0 + user-minus; f503 + user-ninja; f504 + user-nurse; f82f + user-plus; f234 + user-secret; f21b + user-shield; f505 + user-slash; f506 + user-tag; f507 + user-tie; f508 + user-times; f235 + users; f0c0 + users-cog; f509 + users-slash e073 + usps; f7e1 + ussunnah; f407 + utensil-spoon; f2e5 + utensils; f2e7 + vaadin; f408 + vector-square; f5cb + venus; f221 + venus-double; f226 + venus-mars; f228 + vest e085 + vest-patches e086 + viacoin; f237 + viadeo; f2a9 + viadeo-square; f2aa + vial; f492 + vials; f493 + viber; f409 + video; f03d + video-slash; f4e2 + vihara; f6a7 + vimeo; f40a + vimeo-square; f194 + vimeo-v; f27d + vine; f1ca + virus e074 + virus-slash e075 + viruses e076 + vk; f189 + vnv; f40b + voicemail; f897 + volleyball-ball; f45f + volume-down; f027 + volume-mute; f6a9 + volume-off; f026 + volume-up; f028 + vote-yea; f772 + vr-cardboard; f729 + vuejs; f41f + walking; f554 + wallet; f555 + warehouse; f494 + watchman-monitoring e087 + water; f773 + wave-square; f83e + waze; f83f + weebly; f5cc + weibo; f18a + weight; f496 + weight-hanging; f5cd + weixin; f1d7 + whatsapp; f232 + whatsapp-square; f40c + wheelchair; f193 + whmcs; f40d + wifi; f1eb + wikipedia-w; f266 + wind; f72e + window-close; f410 + window-maximize; f2d0 + window-minimize; f2d1 + window-restore; f2d2 + windows; f17a + wine-bottle; f72f + wine-glass; f4e3 + wine-glass-alt; f5ce + wix; f5cf + wizards-of-the-coast; f730 + wodu e088 + wolf-pack-battalion; f514 + won-sign; f159 + wordpress; f19a + wordpress-simple; f411 + wpbeginner; f297 + wpexplorer; f2de + wpforms; f298 + wpressr; f3e4 + wrench; f0ad + x-ray; f497 + xbox; f412 + xing; f168 + xing-square; f169 + y-combinator; f23b + yahoo; f19e + yammer; f840 + yandex; f413 + yandex-international; f414 + yarn; f7e3 + yelp; f1e9 + yen-sign; f157 + yin-yang; f6ad + yoast; f2b1 + youtube; f167 + youtube-square; f431 + zhihu; f63f diff --git a/dmenu-scripts/dm-displayselect b/extras/dmenu-scripts/dm-displayselect similarity index 56% rename from dmenu-scripts/dm-displayselect rename to extras/dmenu-scripts/dm-displayselect index 0227a32..9fdd581 100755 --- a/dmenu-scripts/dm-displayselect +++ b/extras/dmenu-scripts/dm-displayselect @@ -1,8 +1,15 @@ #!/bin/sh -# A UI for detecting and selecting all displays. Probes xrandr for connected -# displays and lets user select one to use. User may also select "manual -# selection" which opens arandr. +# Probes xrandr for connected displays and lets user select one to use. User +# may also select "manual selection" which opens arandr. (arandr can be buggy) + +# Tucker Johnson (git.newer.systems) (tucker@newer.systems) + +# This script is to add out-of the box features to my dmenu build. If you want +# to make changes, make them in the source directory and reinstall. + +# based on a script by Luke Smith (lukesmith.xyz) + twoscreen() { # If multi-monitor is selected and there are two screens. @@ -39,27 +46,28 @@ twoscreen() { # If multi-monitor is selected and there are two screens. } morescreen() { # If multi-monitor is selected and there are more than two screens. - primary=$(echo "$screens" | dmenu -i -p "Select primary display:") - secondary=$(echo "$screens" | grep -v "$primary" | dmenu -i -p "Select secondary display:") - direction=$(printf "left\\nright" | dmenu -i -p "What side of $primary should $secondary be on?") - tertiary=$(echo "$screens" | grep -v "$primary" | grep -v "$secondary" | dmenu -i -p "Select third display:") - xrandr --output "$primary" --auto --output "$secondary" --"$direction"-of "$primary" --auto --output "$tertiary" --"$(printf "left\\nright" | grep -v "$direction")"-of "$primary" --auto - } + primary=$(echo "$screens" | dmenu -i -p "Select primary display:") + secondary=$(echo "$screens" | grep -v "$primary" | dmenu -i -p "Select secondary display:") + direction=$(printf "left\\nright" | dmenu -i -p "What side of $primary should $secondary be on?") + tertiary=$(echo "$screens" | grep -v "$primary" | grep -v "$secondary" | dmenu -i -p "Select third display:") + xrandr --output "$primary" --auto --output "$secondary" --"$direction"-of "$primary" --auto --output "$tertiary" --"$(printf "left\\nright" | grep -v "$direction")"-of "$primary" --auto +} multimon() { # Multi-monitor handler. - case "$(echo "$screens" | wc -l)" in - 2) twoscreen ;; - *) morescreen ;; - esac ;} + case "$(echo "$screens" | wc -l)" in + 2) twoscreen ;; + *) morescreen ;; + esac ;} onescreen() { # If only one output available or chosen. - xrandr --output "$1" --auto --scale 1.0x1.0 $(echo "$allposs" | grep -v "\b$1" | awk '{print "--output", $1, "--off"}' | paste -sd ' ' -) - } + xrandr --output "$1" --auto --scale 1.0x1.0 $(echo "$allposs" | grep -v "\b$1" | awk '{print "--output", $1, "--off"}' | paste -sd ' ' -) +} postrun() { # Stuff to run to clean up. - setbg # Fix background if screen size/arangement has changed. - { killall dunst ; setsid -f dunst ;} >/dev/null 2>&1 # Restart dunst to ensure proper location on screen - } + bgloc="${XDG_DATA_HOME:-$HOME/.local/share}/bg" + xwallpaper --zoom "$bgloc" # Fix background if screen size/arangement has changed. + { killall dunst ; setsid -f dunst ;} >/dev/null 2>&1 # Restart dunst to ensure proper location on screen +} # Get all possible displays allposs=$(xrandr -q | grep "connected") @@ -69,14 +77,14 @@ screens=$(echo "$allposs" | awk '/ connected/ {print $1}') # If there's only one screen [ "$(echo "$screens" | wc -l)" -lt 2 ] && - { onescreen "$screens"; postrun; notify-send "💻 Only one screen detected." "Using it in its optimal settings..."; exit ;} + { onescreen "$screens"; postrun; notify-send "Only one screen detected." "Using it in its optimal settings..."; exit ;} # Get user choice including multi-monitor and manual selection: chosen=$(printf "%s\\nmulti-monitor\\nmanual selection" "$screens" | dmenu -i -p "Select display arangement:") && case "$chosen" in - "manual selection") arandr ; exit ;; - "multi-monitor") multimon ;; - *) onescreen "$chosen" ;; + "manual selection") arandr ; exit ;; + "multi-monitor") multimon ;; + *) onescreen "$chosen" ;; esac postrun diff --git a/dmenu-scripts/dm-handler b/extras/dmenu-scripts/dm-handler similarity index 61% rename from dmenu-scripts/dm-handler rename to extras/dmenu-scripts/dm-handler index e50178a..a30e743 100755 --- a/dmenu-scripts/dm-handler +++ b/extras/dmenu-scripts/dm-handler @@ -1,21 +1,25 @@ #!/bin/sh -# Feed this script a link and it will give dmenu -# some choice programs to use to open it. +# Feed this script a link and dmenu will return some choice programs to open +# it. + +# Tucker Johnson (git.newer.systems) (tucker@newer.systems) + +# This script is to add out-of the box features to my dmenu build. If you want +# to make changes, make them in the source directory and reinstall. + +# based on a script by Luke Smith (lukesmith.xyz) + feed="${1:-$(true | dmenu -p 'Paste URL or file path')}" -case "$(printf "copy url\\nnsxiv\\nsetbg\\nPDF\\nbrowser\\nlynx\\nvim\\nmpv\\nmpv loop\\nmpv float\\nqueue download\\nqueue yt-dlp\\nqueue yt-dlp audio" | dmenu -i -p "Open it with?")" in +case "$(printf "copy url\\nbrowser\\nmpv\\nnsxiv\\nPDF\\nlynx\\nvim\\nqueue download\\nqueue yt-dlp\\nqueue yt-dlp audio" | dmenu -i -p "Open it with?")" in "copy url") echo "$feed" | xclip -selection clipboard ;; mpv) setsid -f mpv -quiet "$feed" >/dev/null 2>&1 ;; - "mpv loop") setsid -f mpv -quiet --loop "$feed" >/dev/null 2>&1 ;; - "mpv float") setsid -f "$TERMINAL" -e mpv --geometry=+0-0 --autofit=30% --title="mpvfloat" "$feed" >/dev/null 2>&1 ;; "queue yt-dlp") qndl "$feed" >/dev/null 2>&1 ;; "queue yt-dlp audio") qndl "$feed" 'yt-dlp -o "%(title)s.%(ext)s" -f bestaudio --embed-metadata --restrict-filenames' ;; "queue download") qndl "$feed" 'curl -LO' >/dev/null 2>&1 ;; PDF) curl -sL "$feed" > "/tmp/$(echo "$feed" | sed "s|.*/||;s/%20/ /g")" && zathura "/tmp/$(echo "$feed" | sed "s|.*/||;s/%20/ /g")" >/dev/null 2>&1 ;; nsxiv) curl -sL "$feed" > "/tmp/$(echo "$feed" | sed "s|.*/||;s/%20/ /g")" && nsxiv -a "/tmp/$(echo "$feed" | sed "s|.*/||;s/%20/ /g")" >/dev/null 2>&1 ;; vim) curl -sL "$feed" > "/tmp/$(echo "$feed" | sed "s|.*/||;s/%20/ /g")" && setsid -f "$TERMINAL" -e "$EDITOR" "/tmp/$(echo "$feed" | sed "s|.*/||;s/%20/ /g")" >/dev/null 2>&1 ;; - setbg) curl -L "$feed" > $XDG_CACHE_HOME/pic ; xwallpaper --zoom $XDG_CACHE_HOME/pic >/dev/null 2>&1 ;; browser) setsid -f "$BROWSER" "$feed" >/dev/null 2>&1 ;; - lynx) lynx "$feed" >/dev/null 2>&1 ;; esac diff --git a/extras/dmenu-scripts/dm-kampv b/extras/dmenu-scripts/dm-kampv new file mode 100755 index 0000000..a61a0ea --- /dev/null +++ b/extras/dmenu-scripts/dm-kampv @@ -0,0 +1,8 @@ +#!/bin/sh + +# Tucker Johnson (git.newer.systems) (tucker@newer.systems) + +# This script is to add out-of the box features to my dmenu build. If you want +# to make changes, make them in the source directory and reinstall. + +killall mpv diff --git a/dmenu-scripts/dm-maimpick b/extras/dmenu-scripts/dm-maimpick similarity index 73% rename from dmenu-scripts/dm-maimpick rename to extras/dmenu-scripts/dm-maimpick index 5de26c1..8aa41d7 100755 --- a/dmenu-scripts/dm-maimpick +++ b/extras/dmenu-scripts/dm-maimpick @@ -1,10 +1,12 @@ #!/bin/sh -# This is bound to Shift+PrintScreen by default, requires maim. It lets you -# choose the kind of screenshot to take, including copying the image or even -# highlighting an area to copy. scrotcucks on suicidewatch right now. +# dmenu screenshot utillity. Requires maim + +# Tucker Johnson (git.newer.systems) (tucker@newer.systems) + +# This script is to add out-of the box features to my dmenu build. If you want +# to make changes, make them in the source directory and reinstall. -# variables output="$(date '+%y%m%d-%H%M-%S').png" xclip_cmd="xclip -sel clip -t image/png" diff --git a/dmenu-scripts/dm-mountcifs b/extras/dmenu-scripts/dm-mountcifs similarity index 74% rename from dmenu-scripts/dm-mountcifs rename to extras/dmenu-scripts/dm-mountcifs index 46c2b57..0b55e7c 100755 --- a/dmenu-scripts/dm-mountcifs +++ b/extras/dmenu-scripts/dm-mountcifs @@ -1,13 +1,18 @@ #!/bin/sh + # Gives a dmenu prompt to mount unmounted local NAS shares for read/write. # Requirements - "%wheel ALL=(ALL) NOPASSWD: ALL" -# -# Browse for mDNS/DNS-SD services using the Avahi daemon... + +# Tucker Johnson (git.newer.systems) (tucker@newer.systems) + +# This script is to add out-of the box features to my dmenu build. If you want +# to make changes, make them in the source directory and reinstall. + +# based on a script by Luke Smith (lukesmith.xyz) + srvname=$(avahi-browse _smb._tcp -t | awk '{print $4}' | dmenu -i -p "Which NAS?") || exit 1 notify-send "Searching for network shares..." "Please wait..." -# Choose share disk... share=$(smbclient -L "$srvname" -N | grep Disk | awk '{print $1}' | dmenu -i -p "Mount which share?") || exit 1 -# Format URL... share2mnt=//"$srvname".local/"$share" sharemount() { diff --git a/dmenu-scripts/dm-mounter b/extras/dmenu-scripts/dm-mounter similarity index 93% rename from dmenu-scripts/dm-mounter rename to extras/dmenu-scripts/dm-mounter index 3459b1a..84b401d 100755 --- a/dmenu-scripts/dm-mounter +++ b/extras/dmenu-scripts/dm-mounter @@ -2,6 +2,13 @@ # Mounts Android Phones and USB drives (encrypted or not). +# Tucker Johnson (git.newer.systems) (tucker@newer.systems) + +# This script is to add out-of the box features to my dmenu build. If you want +# to make changes, make them in the source directory and reinstall. + +# based on a script by Luke Smith (lukesmith.xyz) + IFS=' ' # Function for escaping cell-phone names. diff --git a/extras/dmenu-scripts/dm-pass b/extras/dmenu-scripts/dm-pass new file mode 100755 index 0000000..8429775 --- /dev/null +++ b/extras/dmenu-scripts/dm-pass @@ -0,0 +1,11 @@ +#!/bin/sh + +# Set this script as the SUDO_ASKPASS variable. Will function as a password +# prompt. + +# Tucker Johnson (git.newer.systems) (tucker@newer.systems) + +# This script is to add out-of the box features to my dmenu build. If you want +# to make changes, make them in the source directory and reinstall. + +dmenu -fn Monospace-18 -P -p "$1" <&- && echo diff --git a/dmenu-scripts/dm-record b/extras/dmenu-scripts/dm-record similarity index 89% rename from dmenu-scripts/dm-record rename to extras/dmenu-scripts/dm-record index ca6b011..b76aa04 100755 --- a/dmenu-scripts/dm-record +++ b/extras/dmenu-scripts/dm-record @@ -1,13 +1,13 @@ #!/bin/sh -# Usage: -# `$0`: Ask for recording type via dmenu -# `$0 screencast`: Record both audio and screen -# `$0 video`: Record only screen -# `$0 audio`: Record only audio -# `$0 kill`: Kill existing recording -# -# If there is already a running instance, user will be prompted to end it. +# dmenu screen capture utillity + +# Tucker Johnson (git.newer.systems) (tucker@newer.systems) + +# This script is to add out-of the box features to my dmenu build. If you want +# to make changes, make them in the source directory and reinstall. + +# based on a script by Luke Smith (lukesmith.xyz) getdim() { xrandr | grep -oP '(?<=current ).*(?=,)' | tr -d ' ' ;} diff --git a/extras/dmenu-scripts/dm-streamselect b/extras/dmenu-scripts/dm-streamselect new file mode 100755 index 0000000..39b4d56 --- /dev/null +++ b/extras/dmenu-scripts/dm-streamselect @@ -0,0 +1,21 @@ +#!/bin/sh + +# stream radio stations + +# Tucker Johnson (git.newer.systems) (tucker@newer.systems) + +# This script is to add out-of the box features to my dmenu build. If you want +# to make changes, make them in the source directory and reinstall. + +streamList=" +WXXI Classical (Rochester Classical Radio) link:https://22213.live.streamtheworld.com/WXXIFM.mp3 +Classical WSMR (Tampa Classical Radio) link:https://worldradiomap.com/us-fl/play/wsmr_live +WHTK Fox Sports 1280 AM (Rochester Sports Radio) link:https://worldradiomap.com/us-ny/play/whtk_live +WDAE 620 AM/95.3 FM (Tampa Sports Radio) link:https://worldradiomap.com/us-fl/play/wdae_live +" + +selected=$(echo "$streamList" | grep -P "^$(echo "$streamList" | grep "https:" | sed 's/link:.*//g' | dmenu -i -p "Select a Stream" -l 20 | awk '{print $1}')\s") +name=$(echo "$selected" | sed 's/link:.*//g') + +notify-send "now-playing" "$name" +echo "$selected" | sed 's/.*link://' | xargs -r mpv --no-video --terminal=no || notify-send "mpv failed" diff --git a/dmenu-scripts/dm-sysact b/extras/dmenu-scripts/dm-sysact similarity index 74% rename from dmenu-scripts/dm-sysact rename to extras/dmenu-scripts/dm-sysact index 148c1e6..3b9683f 100755 --- a/dmenu-scripts/dm-sysact +++ b/extras/dmenu-scripts/dm-sysact @@ -1,6 +1,12 @@ #!/bin/sh -# A dmenu wrapper script for system functions. +# dmenu wrapper script for system functions. + +# Tucker Johnson (git.newer.systems) (tucker@newer.systems) + +# This script is to add out-of the box features to my dmenu build. If you want +# to make changes, make them in the source directory and reinstall. + export WM="dwm" case "$(readlink -f /sbin/init)" in *systemd*) ctl='systemctl' ;; diff --git a/dmenu-scripts/dm-umounter b/extras/dmenu-scripts/dm-umounter similarity index 74% rename from dmenu-scripts/dm-umounter rename to extras/dmenu-scripts/dm-umounter index 7f1dbf5..23f0a73 100755 --- a/dmenu-scripts/dm-umounter +++ b/extras/dmenu-scripts/dm-umounter @@ -1,7 +1,13 @@ #!/bin/sh -# Unmount USB drives or Android phones. Replaces the older `dmenuumount`. Fewer -# prompt and also de-decrypts LUKS drives that are unmounted. +# Unmount USB drives or Android phones. + +# Tucker Johnson (git.newer.systems) (tucker@newer.systems) + +# This script is to add out-of the box features to my dmenu build. If you want +# to make changes, make them in the source directory and reinstall. + +# based on a script by Luke Smith (lukesmith.xyz) set -e diff --git a/extras/dmenu-scripts/dm-unicode b/extras/dmenu-scripts/dm-unicode new file mode 100755 index 0000000..0885363 --- /dev/null +++ b/extras/dmenu-scripts/dm-unicode @@ -0,0 +1,17 @@ +#!/bin/sh + +# Tucker Johnson (git.newer.systems) (tucker@newer.systems) + +# This script is to add out-of the box features to my dmenu build. If you want +# to make changes, make them in the source directory and reinstall. + +chosen=$(cut -d ';' -f1 /usr/lib/TuCLS/chars/* | dmenu -i -l 30 | sed "s/ .*//") + +[ -z "$chosen" ] && exit + +if [ -n "$1" ]; then + xdotool type "$chosen" +else + printf "%s" "$chosen" | xclip -selection clipboard + notify-send "'$chosen' copied to clipboard." & +fi diff --git a/dmenu_path b/extras/dmenu-scripts/dmenu_path similarity index 100% rename from dmenu_path rename to extras/dmenu-scripts/dmenu_path diff --git a/dmenu_run b/extras/dmenu-scripts/dmenu_run similarity index 100% rename from dmenu_run rename to extras/dmenu-scripts/dmenu_run diff --git a/stest b/stest deleted file mode 100755 index 5dfee7f1462a5e6327835d4c4de60f978f6e020a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16432 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 B!oL6j diff --git a/stest.o b/stest.o deleted file mode 100644 index 8a784affdaf889c703c02aacecb7b77ecedaa13a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5256 zcmbW4Z){sv6~M3Uv^H($=eAi1tOKueAQR2Q&dQWdD~lUvxrTI9lx~xn)N$>XII3d@ z`@JPa>zc`SndiByps*o?x(Ox?flB#b3Dmi2*CMnJgHMwtjeV#D!D#J%)+J->U-x%ZuW-X9+un|R3WaxoGY`#fuFL>YTJ&>oN2!x0u>8r#cjyHMrz z&tVs7@Y?M-_zV8L>ZZ~DeZ2ZF{?y-wA$FSAw)YRf46pt;Gys5C|H12K$Y=Xh8m2eW zSh)TLYZ&ow3lgcH+aE?WH!|GF5+Dn(CFd2q&afF0?1x+X*$dobSQd zt9vo8t~?Kxy!1q9m}w_!Z7io`U9$;?++aPV`Dc3U0x{P({HaS=HwUIJLVQK6Vsh5F zKiFRk9vDm>N~MjN*-UoftA(QV_~OzOz+7-D>Vvpi^eeIYY->NS=Y0F1ga;tcP{Pg*d9@ts0}yFI@?eF6O=4R9X40#10G@tVf#M_lphgDWFY*|>T=?^}5f>#aT+3QRbUim}R7 zYe76Mc>M`X-P=ys8Y-2>lUsQ`=4~wxud_UtAtyGj-n4C+m!0lO4hgo0@#<^fV>n$<6!$XZtRGkXl)zTPSJOle8 z(tHWm{5X0?NzE5OXk2-bTT>>Js3?~WaFcw_Xh{YAKrgYFtS4* z(j&p4@X(I%&PbTyZ5o7z)dL31&0Gy+Brc(2qEULCj=8?}W#(E6xbE2C^__%CSdncN zbDzdO>JJP+7Zz+B?^R&O-BEvE$@2yO8*b0A+usK$>i0noV0u#69z@&S{=jqY-TuB4 zp56Xny(jJ;cy`U0KYV=cn18tB9rwQz^xW(A4@dpssDA)Vz!Y3|W32xrcpW|Ly;dh1 zPscYAV;(z8w|aa8RLIpTw67U7I6<3}ZeKSr%$p11ObeF`=qMk9hCGN0$VsPTcS4W6 zA#~z*3I00~M?NbLTPv*FowE=7+0ceC+HPxW;O%>>LVX2i(U9*T{!NeQ=CV;@To5RP#0bVzDdfPU3F| zDuZ1b*sNh@=W+&{DHsOJFBrM>T!9sgWE%TaHeWPwP|S(-;EM3xbp#&~erW%OCqBx0 ziQ||!J+IIn?@i)(-=SbUtS{nsBLqRd5gPG52tkl z{%fJ%6ulb%cH9Vv%0q(FKF{;P**!k)2f2ZIW zXM@DIN%nXzll`=0f1AX!692fwsorqiJ0$)+$sX6H=fV%9b@7^L-JeJt-`&JtmG~zl zPIZXuep2FZN$cXde4TXM1PIy(p;7!^!LgI~xvdLV>+Pb5FV~M;C%6_0#dkEuc8CFS z`retA_&PGiUN0V*HR~bC$kPfY(aFJR;nUOk$>xoHyis{h#9?_+jeQ zFRl?_C^?aTM{{gxj6K#Gp5+KMSw=+CI37L-)-bL^-&J^TpnM7%a$$zZmNUw_#Kkd_ zYJdM>Ox3?3{HZ?4AxHz!<98y)98x&>KcaA2pL%@G;8@My7O^4v4x=#SNBRg1I_2+a zOc=<3xDHft4K;uJfMLuqG+9jXsZ7r+nxplppM(h-lMVJKg}=;jtlDOQd7-JtMgHo( zX#W@sr3?*Ys{ReJ{wruCiRzEvv7PdF79aW`-0AH4!|y5br~2!(Ho9cQf%b`W#BVfg ksz1Je)Y=2Ymc@(dH>gOW<`3VAo%}x#`#&N1;!ySf50-Fd9{>OV diff --git a/util.o b/util.o deleted file mode 100644 index 26ab857d2a56ff49969dd1704810e8d70d6b9cca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2224 zcmbtUO=uHQ5T0$TjWtbT?V(Z+E3A@0U6N3trYg}!yGoF%6}1;llZ_4L&&{T!Dj2aI zLJ0KW(SrvM3LXl26dLs4)uSitQK*M{5R?jWX7|1Jv1~3n@R*rzzL_`s=DmG*HhHc` zl7Nc@r(nn9C_s4EjvcqmIQU=?u4s)d?a}wI2x$#dna~=uN?dCs6)o9FC^Jd4t}nOE zm_L+IZuvt=rR)zqRq9Chhn^`bmVTi;xAbde)zWX3wx!=GpHOGCX5Zl;8X6W1M%r5Q zBs%DQ(OS#OCJT&ctyv|YwGvABV?qgd5Jo*5W?}go8c?4Et$B-`kB(ckce}fts9jCC94s`5dPv|~ zy&<*_SAcOuMc?6uAL@b!yWnaUoTlzpALnHC$@{a;39-p8e5jhayqX3zITeOXPKSz_ z(G3F@vt=V!G_&X%dA$hPa@9;j8ABxl^jgjY-M$!Dm!xVdoV$Go{&Z}4#c;X{yK!;+ z4a1%M_X59P;C~iynh~$FF5q;xIKCm^BLAm=(<|WoEdlomct2er6za1V7w3B!PTxg~ z<1*SL#HYpO1T#3!=L2eGsbHq&QJaRX7r15U`IKtvH51fK%1nVeU#Wmk2zcz#Q>dOoD-O?(P5)_Si)Yk$+X|6{hy%t5r#85L6%&0Zp3gWJcc;c{MY;l z=2FclE>ZaYyk8#U`*R(~0NL~p6=jYQ_`i_Hcplg1F~DukA-(7Zx^QnGM(<3#tLQ?F z