{"id":46368478,"url":"https://github.com/helixcipher/todays-command","last_synced_at":"2026-03-05T03:02:16.954Z","repository":{"id":337976591,"uuid":"1156033125","full_name":"HelixCipher/todays-command","owner":"HelixCipher","description":"Today's Command is a modern Linux desktop widget that delivers a curated daily command directly to your screen, complete with explanations, interactive quizzes, streak tracking, and customizable reminders.","archived":false,"fork":false,"pushed_at":"2026-02-12T07:51:15.000Z","size":16092,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-12T16:53:10.490Z","etag":null,"topics":["desktop-widget","learning","linux","python","quiz","sql"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/HelixCipher.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-12T07:18:21.000Z","updated_at":"2026-02-12T07:51:18.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/HelixCipher/todays-command","commit_stats":null,"previous_names":["helixcipher/todays-command"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/HelixCipher/todays-command","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HelixCipher%2Ftodays-command","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HelixCipher%2Ftodays-command/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HelixCipher%2Ftodays-command/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HelixCipher%2Ftodays-command/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/HelixCipher","download_url":"https://codeload.github.com/HelixCipher/todays-command/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HelixCipher%2Ftodays-command/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30107640,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-05T01:39:18.192Z","status":"online","status_checked_at":"2026-03-05T02:00:06.710Z","response_time":93,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["desktop-widget","learning","linux","python","quiz","sql"],"created_at":"2026-03-05T03:02:14.018Z","updated_at":"2026-03-05T03:02:16.933Z","avatar_url":"https://github.com/HelixCipher.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Today's Command - Linux Desktop Widget\n\n\n\u003cimg align=\"left\" width=\"250\" height=\"250\" src=\"https://raw.githubusercontent.com/HelixCipher/todays-command/main/logo.png\"\u003e\n\nA desktop widget for Linux that delivers daily Linux, Python, and SQL commands with interactive quizzes, streak tracking, and customizable reminders.\n\n\u003cbr\u003e\u003cbr\u003e\n\u003cbr\u003e\u003cbr\u003e\n\n\n## What is Today's Command?\n\n**Today's Command** is a lightweight desktop widget designed to help developers and Linux users learn something new every day. Instead of scrolling through documentation or searching for commands, the widget delivers a curated command directly to your desktop with explanations and interactive quizzes.\n\n![Widget Preview](project_demonstration_gif.gif)\n\n### Key Features\n\n- **Daily Commands**: Learn a new Linux, Python, or SQL command every day\n- **Interactive Quizzes**: Test your knowledge with multiple-choice questions\n- **Streak Tracking**: Build a learning habit with daily streaks\n- **Customizable Reminders**: Set when and how you want to be reminded\n- **Drag \u0026 Drop**: Move the widget anywhere on your screen\n- **Clean Design**: Modern, transparent widget that blends with your desktop\n- **Linux Native**: Built specifically for Linux desktop environments\n\n## Installation\n\n### Prerequisites\n- Ubuntu/Debian-based Linux distribution (or compatible)\n- 64-bit system architecture\n\n### Quick Install\n\n```bash\n# Download the latest release\nwget https://github.com/HelixCipher/todays-command/releases/latest/download/todays-command.deb\n\n# Install the package\nsudo dpkg -i todays-command.deb\n\n# Fix any missing dependencies (if needed)\nsudo apt-get install -f\n```\n\n### Build from Source\n\nIf you prefer to build from source:\n\n```bash\n# Clone the repository\ngit clone https://github.com/HelixCipher/todays-command.git\ncd todays-command\n\n# Run the automated installer\n./install.sh\n```\n\nThe installer will automatically:\n- Detect your Linux distribution\n- Install Node.js and Rust (if not present)\n- Install all system dependencies\n- Build and install the application\n\n## Uninstallation\n\nTo completely remove Today's Command from your system, use the provided uninstall script:\n\n```bash\n# Run the uninstall script\n./uninstall.sh\n```\n\nThe uninstall script will:\n- Stop any running instances of the widget\n- Remove system-wide packages (.deb, .rpm, AppImage)\n- Remove user-local installations\n- Delete all configuration files and user data\n- Remove desktop entries and icons\n- Clean up autostart entries\n- Restore your PATH if modified\n\n**Interactive Mode (default):**\nThe script will ask for confirmation before removing anything.\n\n**Silent Mode:**\nTo skip the confirmation prompt (useful for automation):\n```bash\n./uninstall.sh --yes\n```\n\n**What gets removed:**\n- Application binaries and libraries\n- Configuration files (`~/.config/todays-command/`)\n- User data (streaks, quiz history, settings)\n- Desktop entries and application menu items\n- System tray icons\n- Cache files\n- Build artifacts (optional)\n\n**Note:** Your learning progress and streaks will be permanently deleted. Make sure you really want to uninstall before proceeding.\n\n## How to Use\n\n### Getting Started\n\n1. **Launch the Widget**\n   ```bash\n   todays-command\n   ```\n   Or find \"Today's Command\" in your applications menu.\n\n2. **First Run**\n   - The widget will appear automatically on first launch\n   - You'll see today's command displayed with description and examples\n\n### Widget Controls\n\n| Control | Action |\n|---------|--------|\n| **Drag Handle** (top bar) | Click and drag to move the widget anywhere on screen |\n| **Stats Button** (📊) | View your quiz statistics and learning progress |\n| **Quiz Button** (✨) | Take a quiz to test your knowledge |\n| **Settings Button** (⚙️) | Configure categories and reminder settings |\n| **Minimize Button** (−) | Hide widget to system tray |\n\n### Using the System Tray Icon\n\nWhen minimized, the widget lives in your system tray (top panel on Ubuntu):\n\n- **Left-click**: Show/hide the widget\n- **Right-click**: Open menu with Show/Hide/Quit options\n\n### Command Categories\n\nSwitch between different command categories in Settings:\n\n- **Linux**: Bash commands, file operations, system management\n- **Python**: Python syntax, libraries, best practices\n- **SQL**: Database queries, commands, and optimizations\n- **Shuffle**: Random category each day for variety\n\n## ⚙️ Configuration\n\n### Setting Up Reminders\n\n1. Click the **Settings** button (⚙️) in the widget header\n2. Scroll to \"Widget Behavior\" section\n3. Check **\"Enable daily reminders\"**\n4. Choose your reminder time:\n   - Select from preset times (06:00 - 20:00)\n   - Or enable \"Use custom time\" for precise control (e.g., 07:30, 14:45)\n5. Select notification type:\n   - **System notification only**: Shows desktop notification\n   - **Auto-show widget**: Widget appears automatically\n   - **Both**: Notification + auto-show\n6. Click **\"Save Settings\"**\n\n### Reminder Options\n\n- **Skip weekends**: Don't show reminders on Saturday/Sunday\n- **Play notification sound**: Audio alert when reminder triggers\n- **Missed reminder behavior**: Choose what happens if you miss the reminder time\n\n### Example: Setting a Custom Reminder\n\n1. Open Settings → Widget Behavior\n2. Enable reminders\n3. Check \"Use custom time\"\n4. Enter time: `09:30` (for 9:30 AM)\n5. Select \"Both\" for notification type\n6. Save settings\n\nThe widget will now automatically appear every day at 9:30 AM!\n\n## Interactive Features\n\n### Taking Quizzes\n\n1. Click the **Quiz** button (✨)\n2. Answer 5 multiple-choice questions\n3. Get instant feedback on your answers\n4. See your score and review explanations\n5. Build your streak by taking quizzes daily!\n\n### Tracking Your Progress\n\n- **Current Streak**: Number of consecutive days you've used the widget\n- **Longest Streak**: Your personal best streak\n- **Quiz Statistics**: View your quiz scores and accuracy\n- **Command History**: See previous commands you've learned\n\n## Troubleshooting\n\n### Widget Not Showing Reminders\n\n1. Check that reminders are enabled in Settings\n2. Verify the reminder time is set correctly\n3. Ensure \"Auto-show widget\" or \"Both\" is selected as notification type\n4. Wait up to 30 seconds (checks every 30 seconds)\n\n### Minimize Button Not Working\n\nThe minimize button hides the widget to the system tray. Look for the Today's Command icon in your top panel and click it to show the widget again.\n\n### Can't Drag the Widget\n\nMake sure you're clicking on the **grey drag handle bar** at the very top of the widget, then drag to move.\n\n### Settings Not Saving\n\n1. Make changes in the Settings panel\n2. Scroll down and click **\"Save Settings\"** button\n3. Settings are automatically saved to local storage\n\n### Build Issues\n\nIf building from source fails:\n\n```bash\n# Install required system dependencies (Ubuntu/Debian)\nsudo apt-get update\nsudo apt-get install -y libwebkit2gtk-4.1-dev libssl-dev libayatana-appindicator3-dev\n\n# Then retry the install script\n./install.sh\n```\n\n## 📝 Daily Workflow Example\n\n**Morning Routine:**\n1. Widget appears automatically at your set reminder time (e.g., 9:00 AM)\n2. Read the daily command and description\n3. Try the command in your terminal\n4. Click the Quiz button to test your understanding\n\n**Throughout the Day:**\n1. Minimize widget to system tray when not needed\n2. Click system tray icon anytime to reference the command\n3. View stats to track your learning progress\n\n**Building Streaks:**\n1. Use the widget daily to maintain your streak\n2. Take quizzes to reinforce learning\n3. Switch categories to learn different types of commands\n\n## Customization\n\n### Changing Categories\n\nSwitch command categories anytime:\n\n1. Open Settings\n2. Select a category: Linux, Python, SQL, or Shuffle\n3. Click Save Settings\n4. The widget will immediately show commands from the new category\n\n### Moving the Widget\n\nThe widget stays where you put it:\n\n1. Click and hold the drag handle (top grey bar)\n2. Move to desired location\n3. Release to drop\n4. Position persists between sessions\n\n\n---\n\n## License \u0026 Attribution\n\nThis project is licensed under the **Creative Commons Attribution 4.0 International (CC BY 4.0)** license.\n\nYou are free to **use, share, copy, modify, and redistribute** this material for any purpose (including commercial use), **provided that proper attribution is given**.\n\n### Attribution requirements\n\nAny reuse, redistribution, or derivative work **must** include:\n\n1. **The creator’s name**: `HelixCipher`\n2. **A link to the original repository**:  \n   https://github.com/HelixCipher/todays-command\n3. **An indication of whether changes were made**\n4. **A reference to the license (CC BY 4.0)**\n\n#### Example Attribution\n\n\u003e This work is based on *Today's Command* by `HelixCipher`.  \n\u003e Original source: https://github.com/HelixCipher/todays-command\n\u003e Licensed under the Creative Commons Attribution 4.0 International (CC BY 4.0).\n\nYou may place this attribution in a README, documentation, credits section, or other visible location appropriate to the medium.\n\nFull license text: https://creativecommons.org/licenses/by/4.0/\n\n\n---\n\n## Disclaimer\n\nThis project is provided **“as—is”**. The author accepts no responsibility for how this material is used. There is **no warranty** or guarantee that the scripts are safe, secure, or appropriate for any particular purpose. Use at your own risk.\n\nsee [DISCLAIMER.md](./DISCLAIMER.md) for full terms. Use at your own risk.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhelixcipher%2Ftodays-command","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhelixcipher%2Ftodays-command","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhelixcipher%2Ftodays-command/lists"}