19 Commits

Author SHA1 Message Date
ef3ebee10c Preparing for new tagged version. Please watch for bugs. 2025-07-09 09:33:19 -04:00
271c4fc18f Table mode fixes and improvements to application detection. 2025-07-08 14:41:43 -04:00
ea56b90b48 Oops, getting used to this pep8 thing myself. Fixed codeName to code_name. 2025-07-06 18:51:43 -04:00
1268d989b7 Merge after mostly converting to pep8 compliance. 2025-07-06 18:34:28 -04:00
23c3ad20a1 More code optmizations. Removed fenrir+pk_plus. The functionality of bringing back speech has been added to the temperary speech interruption key kp_enter. 2025-06-30 22:25:01 -04:00
8af1cca879 Latest changes and bug fixes. 2025-06-27 21:18:27 -04:00
a394ea0222 Code cleanup and bug fixes. 2025-06-20 02:19:57 -04:00
efb308ac72 latest testing code merged. Nothing major reported from testing branch, so if we get no reports, this will become the next stable release. I'm waiting a bit to tag because major new features introduced. 2025-06-17 00:53:28 -04:00
f6be6c54fb Bug fixes mostlry, tested and seems to be working better. 2025-06-13 23:21:46 -04:00
f18c31df6c Merge branch 'testing' bug fix for remoteDriver 2025-06-07 18:24:44 -04:00
3dca3e5b23 Merged for new release. 2025-06-07 12:23:53 -04:00
1b9a9a90b1 Fixed version conflict. 2025-06-06 20:35:07 -04:00
4c8c8d896d Fixed version conflict. 2025-06-05 16:05:11 -04:00
4672592dba Latest merge from testing. 2025-04-28 15:41:14 -04:00
7a12992b88 latest release. 2025-04-17 00:36:26 -04:00
7a87fb51bb Fixed version for master branch. 2025-04-14 20:04:14 -04:00
2cc2fda28c Actually fix the version file this time. 2025-03-02 17:59:20 -05:00
c99d0f6ee1 Fixed version.py. 2025-03-02 17:44:32 -05:00
5b642cd9e2 Fixed error in settings file. 2025-02-26 17:41:01 -05:00
124 changed files with 216 additions and 3294 deletions

173
README.md
View File

@ -12,8 +12,6 @@ This software is licensed under the LGPL v3.
- **Multiple Interface Support**: Works in Linux TTY, and terminal emulators - **Multiple Interface Support**: Works in Linux TTY, and terminal emulators
- **Flexible Driver System**: Modular architecture with multiple drivers for speech, sound, input, and screen - **Flexible Driver System**: Modular architecture with multiple drivers for speech, sound, input, and screen
- **Review Mode**: Navigate and review screen content without moving the edit cursor - **Review Mode**: Navigate and review screen content without moving the edit cursor
- **Table Navigation**: Advanced table mode with column headers, cell-by-cell navigation, and boundary feedback
- **Progress Bar Monitoring**: Automatic detection and audio feedback for progress indicators with ascending tones
- **Multiple Clipboard Support**: Manage multiple clipboard entries - **Multiple Clipboard Support**: Manage multiple clipboard entries
- **Configurable Key Bindings**: Desktop and laptop keyboard layouts - **Configurable Key Bindings**: Desktop and laptop keyboard layouts
- **Sound Icons**: Audio feedback for various events - **Sound Icons**: Audio feedback for various events
@ -158,7 +156,6 @@ By default Fenrir uses:
- `Keypad 2` - Read current character - `Keypad 2` - Read current character
- `Fenrir + T` - Announce time - `Fenrir + T` - Announce time
- `Fenrir + S` - Spell check current word - `Fenrir + S` - Spell check current word
- `Fenrir + Keypad *` - Toggle table mode / highlight tracking
### Keyboard Layouts ### Keyboard Layouts
@ -405,176 +402,6 @@ setting <action> [parameters]
- `time#delaySec=seconds` - Announcement interval - `time#delaySec=seconds` - Announcement interval
- `time#onMinutes=00,30` - Specific minutes to announce - `time#onMinutes=00,30` - Specific minutes to announce
## Table Navigation
Fenrir includes advanced table navigation capabilities for working with tabular data in terminal applications, CSV files, and formatted text output.
### Entering Table Mode
Table mode is activated through the **toggle_highlight_tracking** command, which cycles through three focus modes:
1. **Highlight tracking mode** (default) - Follows text highlighting
2. **Cursor tracking mode** - Follows text cursor movement
3. **Table mode** - Enables table navigation
**Key bindings:**
- **Desktop layout**: `Fenrir + Keypad *` (asterisk)
- **Laptop layout**: `Fenrir + Y`
Press the key combination repeatedly to cycle through modes until you hear "table mode enabled".
### Table Navigation Commands
#### Column Navigation (Desktop Layout)
- **Next column**: `Keypad 6` - Move to next table column
- **Previous column**: `Keypad 4` - Move to previous table column
- **First column**: `Fenrir + Keypad 4` - Jump to first column of current row
- **Last column**: `Fenrir + Keypad 6` - Jump to last column of current row
#### Column Navigation (Laptop Layout)
- **Next column**: `Fenrir + L` - Move to next table column
- **Previous column**: `Fenrir + J` - Move to previous table column
- **First column**: `Fenrir + Shift + J` - Jump to first column of current row
- **Last column**: `Fenrir + Shift + L` - Jump to last column of current row
#### Cell Character Navigation
- **First character in cell**: `Fenrir + Keypad 1` (desktop) or `Fenrir + Ctrl + J` (laptop)
- **Last character in cell**: `Fenrir + Keypad 3` (desktop) or `Fenrir + Ctrl + L` (laptop)
### Setting Column Headers
For better navigation experience, you can set column headers:
1. **Navigate to header row**: Use normal navigation to reach the row containing column headers
2. **Set headers**: Press `Fenrir + X` to mark the current line as the header row
3. **Navigation feedback**: Column headers will be announced along with cell content
### Table Detection
Fenrir automatically detects table structures using multiple strategies:
- **Delimited text**: CSV, pipe-separated (`|`), semicolon-separated (`;`), tab-separated
- **Aligned columns**: Space-aligned columns (2+ spaces between columns)
- **Flexible parsing**: Handles various table formats commonly found in terminal applications
### Table Mode Features
- **Cell-by-cell navigation**: Navigate through table cells with precise positioning
- **Column header support**: Set and announce column headers for better context
- **Boundary feedback**: Audio cues when reaching start/end of rows
- **Empty cell handling**: Blank cells are announced as "blank"
- **Independent tracking**: Table position is maintained independently of cursor movement
### Speech Output in Table Mode
When navigating in table mode, Fenrir announces:
- **Cell content** followed by **column header/name**
- **Boundary notifications**: "end of line", "start of line"
- **Position indicators**: "first character in cell [column name]"
### Example Usage
```bash
# Working with CSV data
cat data.csv
Name,Age,City
Alice,30,New York
Bob,25,Los Angeles
# 1. Press Fenrir + Keypad * until "table mode enabled"
# 2. Navigate to "Name,Age,City" line
# 3. Press Fenrir + X to set headers
# 4. Use Keypad 4/6 to navigate between columns
# 5. Each cell will be announced with its column header
```
## Progress Bar Monitoring
Fenrir provides intelligent progress bar detection and audio feedback for various progress indicators commonly found in terminal applications.
### Enabling Progress Monitoring
**Command**: `progress_bar_monitor` (no default key binding - assign manually)
To enable progress monitoring:
1. Add a key binding in your keyboard layout file
2. Or use the remote control system: `echo "command progress_bar_monitor" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock`
### Progress Detection Patterns
Fenrir automatically detects various progress indicator formats:
#### 1. Percentage Progress
```
Download: 45%
Processing: 67.5%
Installing: 100%
```
#### 2. Fraction Progress
```
Files: 15/100
Progress: 3 of 10
Step 7/15
```
#### 3. Progress Bars
```
[#### ] 40%
[====> ] 50%
[**********] 100%
```
#### 4. Activity Indicators
```
Loading...
Processing...
Working...
Installing...
Downloading...
Compiling...
Building...
```
### Audio Feedback
#### Progress Tones
- **Ascending tones**: 400Hz to 1200Hz frequency range
- **Percentage mapping**: 0% = 400Hz, 100% = 1200Hz
- **Smooth progression**: Frequency increases proportionally with progress
#### Activity Indicators
- **Steady beep**: 800Hz tone every 2 seconds for ongoing activity
- **Non-intrusive**: Beeps don't interrupt speech or other audio
### Progress Monitoring Features
- **Automatic detection**: No manual configuration required
- **Multiple format support**: Handles various progress indicator styles
- **Prompt awareness**: Automatically pauses when command prompts are detected
- **Non-blocking**: Progress tones don't interrupt speech or other functionality
- **Configurable**: Can be enabled/disabled as needed
### Usage Examples
```bash
# Enable progress monitoring
echo "command progress_bar_monitor" | socat - UNIX-CLIENT:/tmp/fenrirscreenreader-deamon.sock
# Common scenarios where progress monitoring is useful:
wget https://example.com/large-file.zip # Download progress
tar -xvf archive.tar.gz # Extraction progress
make -j4 # Compilation progress
pacman -S package # Package installation
rsync -av source/ destination/ # File synchronization
```
### Customization
Progress monitoring can be configured through settings:
- **Default enabled**: Set `progressMonitoring=True` in sound section
- **Sound integration**: Works with all sound drivers (sox, gstreamer)
- **Remote control**: Enable/disable through remote commands
### Scripting Examples ### Scripting Examples
#### Bash Script for Speech Notifications #### Bash Script for Speech Notifications

View File

@ -50,7 +50,7 @@ def check_dependency(dep: Dependency) -> bool:
dependencyList = [ dependencyList = [
# Core dependencies # Core dependencies
Dependency('FenrirCore', 'core', 'core', Dependency('FenrirCore', 'core', 'core',
pythonImports=['daemonize', 'enchant', 'pyperclip', 'setproctitle']), pythonImports=['daemonize', 'enchant']),
# Screen drivers # Screen drivers
Dependency('DummyScreen', 'screen', 'dummyDriver'), Dependency('DummyScreen', 'screen', 'dummyDriver'),
@ -58,7 +58,7 @@ dependencyList = [
pythonImports=['dbus'], pythonImports=['dbus'],
devicePaths=['/dev/vcsa']), devicePaths=['/dev/vcsa']),
Dependency('PTY', 'screen', 'ptyDriver', Dependency('PTY', 'screen', 'ptyDriver',
pythonImports=['pyte', 'xdg']), pythonImports=['pyte']),
# Input drivers # Input drivers
Dependency('DummyInput', 'input', 'dummyDriver'), Dependency('DummyInput', 'input', 'dummyDriver'),
@ -82,11 +82,7 @@ dependencyList = [
Dependency('Speechd', 'speech', 'speechdDriver', Dependency('Speechd', 'speech', 'speechdDriver',
pythonImports=['speechd']), pythonImports=['speechd']),
Dependency('GenericSpeech', 'speech', 'genericDriver', Dependency('GenericSpeech', 'speech', 'genericDriver',
checkCommands=['espeak-ng']), checkCommands=['espeak-ng'])
# Additional dependencies
Dependency('Pexpect', 'core', 'pexpectDriver',
pythonImports=['pexpect'])
] ]
defaultModules = { defaultModules = {
@ -94,8 +90,7 @@ defaultModules = {
'VCSA', 'VCSA',
'Evdev', 'Evdev',
'GenericSpeech', 'GenericSpeech',
'GenericSound', 'GenericSound'
'Pexpect'
} }
def check_all_dependencies(): def check_all_dependencies():

View File

@ -1,46 +1,4 @@
# Fenrir Keyboard Configuration
This directory contains keyboard layout files for Fenrir screen reader.
## Available Layouts
- **desktop.conf** - Desktop layout using numeric keypad (recommended)
- **laptop.conf** - Laptop layout for keyboards without numeric keypad
- **nvda-desktop.conf** - NVDA-compatible desktop layout
- **nvda-laptop.conf** - NVDA-compatible laptop layout
- **pty.conf** - PTY emulation layout for terminal use
- **pty2.conf** - Alternative PTY emulation layout
## Key Features
### Table Navigation
- **Toggle table mode**: `Fenrir + Keypad *` (desktop) or `Fenrir + Y` (laptop)
- **Column navigation**: `Keypad 4/6` (desktop) or `Fenrir + J/L` (laptop)
- **Row boundaries**: `Fenrir + Keypad 4/6` (desktop) or `Fenrir + Shift + J/L` (laptop)
- **Set headers**: `Fenrir + X` in table mode
### Progress Bar Monitoring
- **Monitor progress**: `progress_bar_monitor` command (assign key binding manually)
- **Auto-detection**: Percentage, fractions, progress bars, activity indicators
- **Audio feedback**: Ascending tones (400Hz-1200Hz) for progress
### Review Mode
- **Basic navigation**: `Keypad 7/8/9` (lines), `Keypad 4/5/6` (words), `Keypad 1/2/3` (characters)
- **Exit review**: `Fenrir + Keypad .`
- **Screen reading**: `Fenrir + Keypad 5` (current screen)
## Configuration
To change keyboard layout, edit `/etc/fenrir/settings/settings.conf`:
```ini
[keyboard]
keyboardLayout=desktop # or laptop, nvda-desktop, nvda-laptop, pty, pty2
```
## Available Key Constants
Keymap for Fenrir Keymap for Fenrir
KEY_RESERVED KEY_RESERVED
KEY_ESC KEY_ESC

View File

@ -50,12 +50,6 @@ Navigate the screen without moving the text cursor. Essential for examining cont
- `Keypad 1/3` - Previous/next character - `Keypad 1/3` - Previous/next character
- `Fenrir + Keypad dot` - Exit review mode - `Fenrir + Keypad dot` - Exit review mode
### Table Navigation
- `Fenrir + Keypad *` - Toggle table mode / highlight tracking
- `Keypad 4/6` - Previous/next column (in table mode)
- `Fenrir + Keypad 4/6` - First/last column (in table mode)
- `Fenrir + X` - Set column headers (in table mode)
### Information ### Information
- `Fenrir + T` - Announce time - `Fenrir + T` - Announce time
- `Fenrir + T T` - Announce date - `Fenrir + T T` - Announce date
@ -246,47 +240,6 @@ send_fenrir_command("command say Process complete")
## Advanced Features ## Advanced Features
### Table Navigation Mode
Fenrir includes advanced table navigation capabilities for working with tabular data in terminal applications, CSV files, and formatted text output.
#### Entering Table Mode
1. Press `Fenrir + Keypad *` (desktop) or `Fenrir + Y` (laptop)
2. Cycle through: Highlight tracking → Cursor tracking → Table mode
3. Listen for "table mode enabled" announcement
#### Table Navigation Commands
- **Column navigation**: `Keypad 4/6` - Move between columns
- **Row boundaries**: `Fenrir + Keypad 4/6` - Jump to first/last column
- **Cell characters**: `Fenrir + Keypad 1/3` - First/last character in cell
- **Set headers**: `Fenrir + X` - Mark current line as column headers
#### Table Features
- **Automatic detection**: Supports CSV, pipe-separated, space-aligned columns
- **Column headers**: Set and announce headers for better context
- **Boundary feedback**: Audio cues when reaching row boundaries
- **Cell-by-cell navigation**: Precise positioning within tables
### Progress Bar Monitoring
Fenrir automatically detects and provides audio feedback for progress indicators.
#### Progress Detection
- **Percentage**: 45%, 67.5%, 100%
- **Fractions**: 15/100, 3 of 10, Step 7/15
- **Progress bars**: [#### ], [====> ]
- **Activity indicators**: Loading..., Processing...
#### Audio Feedback
- **Progress tones**: Ascending 400Hz-1200Hz frequency range
- **Activity beeps**: 800Hz tone every 2 seconds
- **Non-intrusive**: Doesn't interrupt speech or other audio
#### Usage
- **Enable**: Use `progress_bar_monitor` command (assign key binding)
- **Automatic**: Works with downloads, compilations, installations
- **Remote control**: Enable via socket commands
### Spell Checking ### Spell Checking
- `Fenrir + S` - Spell check current word - `Fenrir + S` - Spell check current word
- `Fenrir + S S` - Add word to dictionary - `Fenrir + S S` - Add word to dictionary

View File

@ -99,13 +99,6 @@ class command:
"Progress detector checking: '" + text + "'", debug.DebugLevel.INFO "Progress detector checking: '" + text + "'", debug.DebugLevel.INFO
) )
# Filter out URLs to prevent false positives
if self.contains_url(text):
self.env["runtime"]["DebugManager"].write_debug_out(
"Skipping progress detection - text contains URL", debug.DebugLevel.INFO
)
return
# Note: Auto-disable on 100% completion removed to respect user # Note: Auto-disable on 100% completion removed to respect user
# settings # settings
@ -154,16 +147,8 @@ class command:
curl_match = re.search( curl_match = re.search(
r"(\d+\s+\d+\s+\d+\s+\d+.*?(?:k|M|G)?.*?--:--:--|Speed)", text r"(\d+\s+\d+\s+\d+\s+\d+.*?(?:k|M|G)?.*?--:--:--|Speed)", text
) )
# Pattern 1e: General transfer progress (size, rate, time patterns)
transfer_match = re.search(
r"\d+\s+\d+[kMGT]?\s+\d+\s+\d+[kMGT]?.*?\d+\.\d+[kMGT].*?\d+:\d+:\d+", text
)
# Pattern 1f: Pacman-style transfer progress (flexible size/speed/time)
pacman_match = re.search(
r"\d+(?:\.\d+)?\s+[kKmMgGtT]iB\s+\d+(?:\.\d+)?\s+[kKmMgGtT]iB/s\s+\d+:\d+", text
)
if time_match or token_match or dd_match or curl_match or transfer_match or pacman_match: if time_match or token_match or dd_match or curl_match:
# For non-percentage progress, use a single activity beep every 2 # For non-percentage progress, use a single activity beep every 2
# seconds # seconds
if ( if (
@ -198,7 +183,7 @@ class command:
# Pattern 3: Progress bars ([#### ], [====> ], etc.) # Pattern 3: Progress bars ([#### ], [====> ], etc.)
# Improved pattern to avoid matching IRC channels like [#channel] # Improved pattern to avoid matching IRC channels like [#channel]
bar_match = re.search(r"\[([#=\*]+)([\s\.\-]*)\]", text) bar_match = re.search(r"\[([#=\-\*]+)([\s\.]*)\]", text)
if bar_match: if bar_match:
filled = len(bar_match.group(1)) filled = len(bar_match.group(1))
unfilled = len(bar_match.group(2)) unfilled = len(bar_match.group(2))
@ -235,30 +220,6 @@ class command:
): ):
self.play_activity_beep() self.play_activity_beep()
self.env["commandBuffer"]["lastProgressTime"] = current_time self.env["commandBuffer"]["lastProgressTime"] = current_time
return
# Pattern 5: Braille progress indicators
braille_match = re.search(r'[⠋⠙⠹⠸⠼⠴⠦⠧⠇⠏⡿⣟⣯⣷⣾⣽⣻⢿]', text)
if braille_match:
if current_time - self.env["commandBuffer"]["lastProgressTime"] >= 1.0:
self.play_activity_beep()
self.env["commandBuffer"]["lastProgressTime"] = current_time
return
# Pattern 6: Moon phase progress indicators
moon_match = re.search(r'[🌑🌒🌓🌔🌕🌖🌗🌘]', text)
if moon_match:
moon_phases = {
'🌑': 0, '🌒': 12.5, '🌓': 25, '🌔': 37.5,
'🌕': 50, '🌖': 62.5, '🌗': 75, '🌘': 87.5
}
moon_char = moon_match.group(0)
if moon_char in moon_phases:
percentage = moon_phases[moon_char]
if percentage != self.env["commandBuffer"]["lastProgressValue"]:
self.play_progress_tone(percentage)
self.env["commandBuffer"]["lastProgressValue"] = percentage
return
def play_progress_tone(self, percentage): def play_progress_tone(self, percentage):
# Map 0-100% to 400-1200Hz frequency range # Map 0-100% to 400-1200Hz frequency range
@ -389,22 +350,5 @@ class command:
# If anything fails, assume it's not a prompt to be safe # If anything fails, assume it's not a prompt to be safe
return False return False
def contains_url(self, text):
"""Check if text contains URLs that might cause false progress detection"""
import re
# Common URL patterns that might contain progress-like patterns
url_patterns = [
r"https?://[^\s]+", # http:// or https:// URLs
r"ftp://[^\s]+", # ftp:// URLs
r"www\.[^\s]+", # www. domains
r"[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}[/\w.-]*", # domain.com/path patterns
]
for pattern in url_patterns:
if re.search(pattern, text, re.IGNORECASE):
return True
return False
def set_callback(self, callback): def set_callback(self, callback):
pass pass

View File

@ -1 +0,0 @@
# Emoji VMenu category

View File

@ -1 +0,0 @@
# Flags emoji subcategory

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "🇦🇷"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Add Argentina flag emoji to clipboard"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added Argentina flag to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "🇦🇺"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Add Australia flag emoji to clipboard"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added Australia flag to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "🇧🇪"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Add Belgium flag emoji to clipboard"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added Belgium flag to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "🇧🇷"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Add Brazil flag emoji to clipboard"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added Brazil flag to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "🇨🇦"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Add Canada flag emoji to clipboard"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added Canada flag to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "🇨🇳"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Add China flag emoji to clipboard"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added China flag to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "🇩🇰"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Add Denmark flag emoji to clipboard"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added Denmark flag to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "🇫🇮"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Add Finland flag emoji to clipboard"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added Finland flag to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "🇫🇷"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Add France flag emoji to clipboard"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added France flag to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "🇩🇪"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Add Germany flag emoji to clipboard"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added Germany flag to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "🇬🇷"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Add Greece flag emoji to clipboard"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added Greece flag to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "🇮🇳"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Add India flag emoji to clipboard"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added India flag to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "🇮🇪"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Add Ireland flag emoji to clipboard"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added Ireland flag to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "🇮🇱"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Add Israel flag emoji to clipboard"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added Israel flag to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "🇮🇹"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Add Italy flag emoji to clipboard"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added Italy flag to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "🇯🇵"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Add Japan flag emoji to clipboard"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added Japan flag to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "🇲🇽"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Add Mexico flag emoji to clipboard"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added Mexico flag to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "🇳🇱"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Add Netherlands flag emoji to clipboard"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added Netherlands flag to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "🇳🇴"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Add Norway flag emoji to clipboard"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added Norway flag to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "🇵🇱"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Add Poland flag emoji to clipboard"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added Poland flag to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "🇵🇹"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Add Portugal flag emoji to clipboard"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added Portugal flag to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "🇷🇺"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Add Russia flag emoji to clipboard"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added Russia flag to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "🇿🇦"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Add South Africa flag emoji to clipboard"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added South Africa flag to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "🇰🇷"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Add South Korea flag emoji to clipboard"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added South Korea flag to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "🇪🇸"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Add Spain flag emoji to clipboard"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added Spain flag to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "🇸🇪"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Add Sweden flag emoji to clipboard"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added Sweden flag to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "🇨🇭"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Add Switzerland flag emoji to clipboard"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added Switzerland flag to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "🇹🇷"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Add Turkey flag emoji to clipboard"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added Turkey flag to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "🇬🇧"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Add UK flag emoji to clipboard"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added UK flag to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "🇺🇦"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Add Ukraine flag emoji to clipboard"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added Ukraine flag to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "🇺🇸"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Add USA flag emoji to clipboard"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added USA flag to clipboard",
interrupt=False, flush=False
)

View File

@ -1 +0,0 @@
# Food emoji subcategory

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "🍎"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Red apple emoji"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added red apple to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "🥑"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Avocado emoji"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added avocado to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "🍺"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Beer emoji"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added beer to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "🎂"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Birthday cake emoji"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added birthday cake to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = ""
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Add coffee emoji to clipboard"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added coffee to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "🍩"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Donut emoji"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added donut to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "🍔"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Add hamburger emoji to clipboard"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added hamburger to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "🍕"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Add pizza emoji to clipboard"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added pizza to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "🍓"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Strawberry emoji"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added strawberry to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "🌮"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Taco emoji"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added taco to clipboard",
interrupt=False, flush=False
)

View File

@ -1 +0,0 @@
# Holidays emoji subcategory

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "🦇"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Add bat emoji to clipboard"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added bat to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "🐈‍⬛"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Black cat emoji"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added black cat to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "🐰"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Add bunny emoji to clipboard"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added bunny to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "🧙"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Magic cauldron emoji"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added magic cauldron to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "🎄"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Add Christmas tree emoji to clipboard"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added Christmas tree to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "🥚"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Add Easter egg emoji to clipboard"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added Easter egg to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "🎆"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Add fireworks emoji to clipboard"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added fireworks to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "👻"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Add ghost emoji to clipboard"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added ghost to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "🎁"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Add gift emoji to clipboard"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added gift to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "🎃"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Add jack o'lantern emoji to clipboard"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added jack o'lantern to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "🎅"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Add Santa emoji to clipboard"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added Santa to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "☘️"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Add shamrock emoji to clipboard"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added shamrock to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "💀"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Add skull emoji to clipboard"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added skull to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = ""
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Add snowman emoji to clipboard"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added snowman to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "🕷"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Add spider emoji to clipboard"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added spider to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "🦃"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Add turkey emoji to clipboard"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added turkey to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "🧛"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Vampire emoji"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added vampire to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "🧙‍♀️"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Witch emoji"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added witch to clipboard",
interrupt=False, flush=False
)

View File

@ -1 +0,0 @@
# Nature emoji subcategory

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "🦋"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Butterfly emoji"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added butterfly to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "🐱"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Cat emoji"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added cat to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "🌸"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Cherry blossom emoji"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added cherry blossom to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "🐶"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Dog emoji"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added dog to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "🌙"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Add moon emoji to clipboard"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added moon to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "🌈"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Rainbow emoji"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added rainbow to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "🌹"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Rose emoji"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added rose to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "☀️"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Add sun emoji to clipboard"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added sun to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "🌻"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Sunflower emoji"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added sunflower to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "🌳"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Add tree emoji to clipboard"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added tree to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "🐺"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Wolf emoji - The mighty Fenrir!"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added the mighty wolf Fenrir to clipboard",
interrupt=False, flush=False
)

View File

@ -1 +0,0 @@
# People emoji subcategory

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "😀"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Grinning face emoji"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added grinning face to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "😠"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Angry face emoji"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added angry face to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "😁"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Beaming face with smiling eyes emoji"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added beaming face to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "😘"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Face blowing a kiss emoji"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added face blowing kiss to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "😎"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Cool face emoji"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added cool face to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "😭"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Crying face emoji"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added crying face to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "😈"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Devil face emoji"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added devil face to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "😅"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Grinning face with sweat emoji"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added grinning face with sweat to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "😍"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Smiling face with heart-eyes emoji"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added heart-eyes face to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "🥰"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Smiling face with hearts emoji"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added smiling face with hearts to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "😂"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Add laughing face emoji to clipboard"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added laughing face to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "🥺"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Pleading face emoji"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added pleading face to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "💩"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Poop emoji"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added poop to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "🤣"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Rolling on floor laughing emoji"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added rolling on floor laughing to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "😢"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Sad face emoji"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added sad face to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "😋"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Face savoring food emoji"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added face savoring food to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "😱"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Shocked face emoji"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added shocked face to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "😊"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Add smiling face emoji to clipboard"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added smiling face to clipboard",
interrupt=False, flush=False
)

View File

@ -1,22 +0,0 @@
class command():
def initialize(self, environment):
self.env = environment
self.emoji = "😏"
def shutdown(self):
pass
def setCallback(self, callback):
pass
def getDescription(self):
return "Smirking face emoji"
def run(self):
self.env["runtime"]["MemoryManager"].add_value_to_first_index(
"clipboardHistory", self.emoji
)
self.env["runtime"]["OutputManager"].present_text(
"Added smirking face to clipboard",
interrupt=False, flush=False
)

Some files were not shown because too many files have changed in this diff Show More