An open API service indexing awesome lists of open source software.

https://github.com/devnullvoid/dms-emoji-launcher

Emoji & Unicode Launcher plugin for DankMaterialShell - Search and copy 300+ emojis and unicode characters
https://github.com/devnullvoid/dms-emoji-launcher

Last synced: 29 days ago
JSON representation

Emoji & Unicode Launcher plugin for DankMaterialShell - Search and copy 300+ emojis and unicode characters

Awesome Lists containing this project

README

          

# Emoji & Unicode Launcher

A DankMaterialShell launcher plugin that provides quick access to thousands of emojis, mathematical symbols, and Nerd Font glyphs with instant clipboard copying.

![Emoji & Unicode Launcher Screenshot](screenshot.png)

## Features

- **Expanded Emoji Catalog** - 900+ curated emoji entries combined with the bundled emoji dataset for complete coverage (gear, toolbox, etc.)
- **Latin Extended Characters** - 219 accented Latin characters covering Spanish (ñ, á, é), French (à, è, ç), German (ä, ö, ü), Portuguese, Nordic, Polish, Czech, and more
- **Unicode & Math Symbols** - Hundreds of useful unicode characters from arrows to operators and currency signs
- **Nerd Font Glyphs** - Searchable Nerd Font icons for launcher, terminal, and code workflows
- **Instant Copy** - One-click copy to clipboard with visual confirmation
- **Smart Search** - Search by name, character, or keywords
- **Configurable Trigger** - Default `:e` or set your own trigger (or disable for always-on)
- **Toast Notifications** - Visual feedback for every action

## Installation

### From Plugin Registry (Recommended)
```bash
dms plugins install emojiLauncher
```

### Manual Installation
```bash
# Copy plugin to DMS plugins directory
cp -r EmojiLauncher ~/.config/DankMaterialShell/plugins/

# Enable in DMS
# 1. Open Settings (Ctrl+,)
# 2. Go to Plugins tab
# 3. Click "Scan for Plugins"
# 4. Toggle "Emoji & Unicode Launcher" to enable
```

## Usage

### Default Trigger Mode
Note: Avoid triggers reserved by DMS or other plugins (e.g., `/` is used for file search).

1. Open launcher (Ctrl+Space)
2. Type `:e` followed by search query
3. Examples:
- `:e smile` - Find smiling emojis
- `:e heart` - Find heart emojis
- `:e copyright` - Find © symbol
- `:e arrow` - Find arrow characters
- `:e tilde` - Find ñ, Ñ, and other tilde characters
4. Select item and press Enter to copy

### Always-On Mode
Configure in settings to show emoji/unicode items without a trigger prefix.

## Search Examples

**Emojis:**
- `smile` → 😀 😃 😄 😁 😊
- `heart` → ❤️ 🧡 💛 💚 💙 💜
- `fire` → 🔥
- `star` → ⭐ ✨ 🌟

**Unicode Characters:**
- `copyright` → ©
- `trademark` → ™
- `degree` → °
- `pi` → π
- `arrow` → → ← ↑ ↓
- `infinity` → ∞
- `euro` → €

## Configuration

Access settings via DMS Settings → Plugins → Emoji & Unicode Launcher:

- **Trigger**: Set custom trigger character (`:e`, `:`, `;`, `em`, etc.) or disable for always-on mode
- Avoid triggers reserved by DMS or other plugins (e.g., `/` is used for file search).
- **No Trigger Mode**: Toggle to show items without trigger prefix

## Character Database

### Data Sources
- `data/emojis.txt` — comprehensive emoji list (Terminal Root)
- `data/latin-extended.txt` — accented Latin characters for multiple languages
- `data/math.txt` — math and general-purpose unicode symbols
- `data/nerdfont.txt` — curated Nerd Font glyph export

All files ship with the plugin, so search works fully offline.

### Highlights
- **Emoji coverage:** faces, hands, tools, activities, symbols, and flags (including gear ⚙️ and toolbox 🧰)
- **Latin extended:** accented characters for Spanish, French, German, Portuguese, Nordic, Polish, Czech, Romanian, Hungarian, Turkish, Vietnamese, and more
- **Unicode symbols:** math operators, arrows, currency, Greek letters, quotes, and miscellaneous symbols
- **Nerd Font glyphs:** VS Code Codicons, Powerline (ple-) separators, development icons, and other monospace-friendly glyphs for terminal/theming

### Updating the catalog
1. Modify the plain-text sources in `data/` (`emojis.txt`, `latin-extended.txt`, `math.txt`, `nerdfont.txt`).
2. Run `scripts/generate_catalog.py` to rebuild `catalog.js` (the file bundled with the plugin). The script parses the text files, normalizes names, and refreshes search keywords.

## Requirements

- DankMaterialShell >= 0.1.0
- `wl-copy` (from wl-clipboard package)
- Wayland compositor (Niri, Hyprland, etc.)

## Compatibility

- **Compositors**: Niri and Hyprland
- **Distros**: Universal - works on any Linux distribution

## Technical Details

- **Type**: Launcher plugin
- **Trigger**: `:e` (configurable)
- **Language**: QML (Qt Modeling Language)
- **Dependencies**: None (uses built-in character database)

## Contributing

Found a bug or want to add more characters? Open an issue or submit a pull request!

## Credits

Emoji database sourced from [Terminal Root's emoji collection](https://terminalroot.com/emojis.txt) - a comprehensive list of emojis with searchable names.

## License

MIT License - See LICENSE file for details

## Author

Created for the DankMaterialShell community

## Links

- [DankMaterialShell](https://github.com/AvengeMedia/DankMaterialShell)
- [Plugin Registry](https://github.com/AvengeMedia/dms-plugin-registry)