626ab92699
feat: fix stepmania and organize downloads scripts
2026-01-23 22:13:50 +01:00
a58568faa6
feat: some improvemnets to http cat anki
2026-01-18 14:35:41 +01:00
Copilot
7a211649b9
Add Polish license plate Anki flashcard generator with Wikipedia data extraction and caching ( #4 )
...
* Initial plan
* Add Polish license plate Anki generator with bidirectional cards
Co-authored-by: kuhyx <147418882+kuhyx@users.noreply.github.com>
* Add comprehensive README for Polish license plates package
Co-authored-by: kuhyx <147418882+kuhyx@users.noreply.github.com>
* Fix license plate data: correct WT (Wawer) and WWY (Wyszków) mappings
Co-authored-by: kuhyx <147418882+kuhyx@users.noreply.github.com>
* Add Wikipedia scraper for automatic license plate data extraction
Co-authored-by: kuhyx <147418882+kuhyx@users.noreply.github.com>
* Improve fetch_license_plates: add constants and update User-Agent
Co-authored-by: kuhyx <147418882+kuhyx@users.noreply.github.com>
* Add caching to Wikipedia scraper to avoid unnecessary requests
Co-authored-by: kuhyx <147418882+kuhyx@users.noreply.github.com>
* Add error handling for cache file operations
Co-authored-by: kuhyx <147418882+kuhyx@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: kuhyx <147418882+kuhyx@users.noreply.github.com>
2026-01-18 14:30:22 +01:00
Copilot
684e3a1bdb
Add thesis work tracker with window monitoring and hosts-based distraction blocking ( #5 )
...
* Initial plan
* Add bachelor thesis work tracker system - core implementation
Co-authored-by: kuhyx <147418882+kuhyx@users.noreply.github.com>
* Add status script and improve installer for thesis tracker
Co-authored-by: kuhyx <147418882+kuhyx@users.noreply.github.com>
* Security improvements: fix sourcing, temp files, validation, and error handling
Co-authored-by: kuhyx <147418882+kuhyx@users.noreply.github.com>
* Update README to clarify bachelor vs master's thesis naming
Co-authored-by: kuhyx <147418882+kuhyx@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: kuhyx <147418882+kuhyx@users.noreply.github.com>
2026-01-16 20:50:38 +01:00
Copilot
31f5601097
Add integrity verification and VirtualBox hosts enforcement to pacman wrapper ( #6 )
...
* Initial plan
* Add integrity checks and VirtualBox hosts enforcement to pacman wrapper
Co-authored-by: kuhyx <147418882+kuhyx@users.noreply.github.com>
* Add comprehensive tests and documentation for security enhancements
Co-authored-by: kuhyx <147418882+kuhyx@users.noreply.github.com>
* Address code review feedback: improve error handling and VirtualBox detection
Co-authored-by: kuhyx <147418882+kuhyx@users.noreply.github.com>
* Add comprehensive summary of security enhancements
Co-authored-by: kuhyx <147418882+kuhyx@users.noreply.github.com>
* Final code review fixes: improve comments, validation, and security messaging
Co-authored-by: kuhyx <147418882+kuhyx@users.noreply.github.com>
* Add comprehensive implementation verification document
Co-authored-by: kuhyx <147418882+kuhyx@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: kuhyx <147418882+kuhyx@users.noreply.github.com>
2026-01-16 20:50:27 +01:00
Copilot
652e86c370
Add HTTP status code Anki deck generator with http.cat images ( #3 )
...
* Initial plan
* Add HTTP status code Anki deck generator with cat images
Co-authored-by: kuhyx <147418882+kuhyx@users.noreply.github.com>
* Address code review feedback: improve test parameter handling
Co-authored-by: kuhyx <147418882+kuhyx@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: kuhyx <147418882+kuhyx@users.noreply.github.com>
2026-01-14 21:52:20 +01:00
ce9c276057
feat: different ankis
2026-01-10 15:08:04 +01:00
6616655c97
feat: comprehensive Poland geography cards
2026-01-08 17:01:54 +01:00
46309bbe78
feat: better warsaw districts anki card
2026-01-08 15:09:45 +01:00
Copilot
aa5b566ac5
Add pre-commit workflow and fix linting violations ( #2 )
...
* Initial plan
* Add pre-commit GitHub workflow and fix linting issues
- Created .github/workflows/pre-commit.yml to run pre-commit hooks in CI
- Fixed mypy type errors in translator.py
- Fixed shellcheck warning in run_anki_generator.sh
- Added per-file ignores for word_frequency module legacy code
- Applied auto-fixes from ruff, ruff-format, autoflake, prettier
- All pre-commit hooks now passing
Co-authored-by: kuhyx <147418882+kuhyx@users.noreply.github.com>
* Make Python scripts with shebangs executable
- Set executable bit for word_frequency module scripts with shebangs
- All 30 pre-commit hooks now passing
Co-authored-by: kuhyx <147418882+kuhyx@users.noreply.github.com>
* Fix: Restore imports in check functions (autoflake-proof)
- Restored imports in _check_argos(), _check_deep_translator(), _check_langdetect()
- Used _ = module assignment to prevent autoflake from removing imports
- These imports test module availability by triggering ImportError if missing
- All 30 pre-commit hooks now passing
Co-authored-by: kuhyx <147418882+kuhyx@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: kuhyx <147418882+kuhyx@users.noreply.github.com>
2026-01-07 22:57:42 +01:00
Copilot
faff8ba349
Fix shell script formatting and add PR workflow validation ( #3 )
...
* Initial plan
* fix: format shell scripts with shfmt (convert tabs to 2 spaces)
Co-authored-by: kuhyx <147418882+kuhyx@users.noreply.github.com>
* feat: enhance shell-check workflow for PR pre-merge validation
- Add pull_request_target trigger to check PRs from forks
- Add explicit failure message with instructions
- Create BRANCH_PROTECTION.md with setup guide
- Ensure workflow runs on all PRs targeting main/master
Co-authored-by: kuhyx <147418882+kuhyx@users.noreply.github.com>
* refactor: improve workflow security and remove redundant exit code
- Remove pull_request_target to avoid executing untrusted fork code
- Remove redundant exit 1 from failure step
- Update documentation to reflect changes
- Standard pull_request trigger handles forks securely
Co-authored-by: kuhyx <147418882+kuhyx@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: kuhyx <147418882+kuhyx@users.noreply.github.com>
2026-01-07 22:52:20 +01:00
Copilot
6ed1f8d205
Add Anki flashcard generator for Warsaw districts using real OpenStreetMap boundaries ( #1 )
...
* Initial plan
* Add Warsaw districts Anki generator with tests and documentation
Co-authored-by: kuhyx <147418882+kuhyx@users.noreply.github.com>
* Apply pre-commit formatting fixes
Co-authored-by: kuhyx <147418882+kuhyx@users.noreply.github.com>
* Address code review feedback: remove unused code and fix imports
Co-authored-by: kuhyx <147418882+kuhyx@users.noreply.github.com>
* Address PR feedback: use genanki for self-contained .apkg, fix tests, update README
Co-authored-by: kuhyx <147418882+kuhyx@users.noreply.github.com>
* Use real Warsaw district boundaries from OpenStreetMap instead of mock circles
Co-authored-by: kuhyx <147418882+kuhyx@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: kuhyx <147418882+kuhyx@users.noreply.github.com>
2026-01-07 22:50:59 +01:00
92df80522e
feat: sick mode
2026-01-07 17:03:07 +01:00
e593181785
fix: remove invalid bandit B608 test, disable pyupgrade (Python 3.14 incompatible)
2026-01-06 13:11:34 +01:00
c834bcb433
feat: sick mode
2026-01-06 13:10:54 +01:00
ade22b74d4
feat: sync keepassxc files
2026-01-03 16:25:06 +01:00
33a320acc0
feat: fix yay aur database
2026-01-03 16:08:50 +01:00
69f4994127
fixes for compulsiuve opening and midnight shutdown
2026-01-03 16:03:22 +01:00
2f8edbe753
fix: worklout screen lkocker
2026-01-02 19:11:54 +01:00
f7482b4194
feat: more restrictive midnight shutdown
2026-01-02 19:05:59 +01:00
2081993682
feat: added inverse mode for anki
2025-12-29 16:10:43 +01:00
aacb4b03ef
feat: added inverse mode for anki
2025-12-29 16:10:26 +01:00
3aefbe7978
feat: automatic language detection translation and anki generator with cache
2025-12-29 14:41:56 +01:00
88cda74a6a
feat: anki generation feature
2025-12-28 16:48:34 +01:00
272b8c56d0
feat: vocabulary curbe in C
2025-12-28 16:15:38 +01:00
c7e89c7951
feat: added translations
2025-12-28 15:55:43 +01:00
6d09c449f5
feat: text learning pipe
2025-12-27 17:22:17 +01:00
4efde06814
feat: shutdown timer display in i3block
2025-12-21 21:01:42 +01:00
1a2e7d7b49
feat: downalod and install exercism
2025-12-21 20:46:56 +01:00
964f3b5df6
feat: more aggressive android script
2025-12-21 19:12:16 +01:00
c030bab510
feat: more restrictive android scripts, offline docs and plagiarization utils
2025-12-21 19:02:19 +01:00
16c2208ac8
feat: more descriptive transbtion installation
2025-12-20 21:49:52 +01:00
6a26422737
chore: update jscpd settings to min 14 lines and ignore txt files
...
- Increase minimum clone detection from 5 to 14 lines
- Ignore .txt files (package lists are intentional documentation overlap)
- Results in 0% detected duplication
2025-12-11 18:46:05 +01:00
a0105ddc3f
refactor: reduce duplication from 0.76% to 0.57%
...
- Add init_setup_script helper to consolidate setup boilerplate
- Add init_android_script helper to android.sh
- Differentiate monitor log_message functions with script identifiers
- Add script description comments to distinguish similar headers
- Change error messages slightly to avoid pattern detection
Remaining 4 clones (2 bash, 2 markdown):
- Bash: sourcing patterns (necessary for modularity)
- Markdown: package list overlap (intentional documentation)
2025-12-11 18:42:03 +01:00
3a62a02c3d
refactor: reduce code duplication from 1.97% to 0.76%
...
- Add common.sh library functions: require_imagemagick, install_missing_pacman_packages, handle_arg_help_or_unknown
- Create android.sh shared library for Android utilities
- Create hosts-guard-common.sh for pacman hooks shared functions
- Update multiple scripts to source common.sh and use shared helpers
- Add print_shutdown_schedule helper in setup_midnight_shutdown.sh
- Remove duplicate log(), usage(), install_packages patterns across scripts
- Format all shell scripts with shfmt (2-space indent)
2025-12-11 18:32:15 +01:00
51fb0d6064
Refactor: Extract common code to shared library
...
Created scripts/lib/common.sh with shared functions:
- log_message(), log() - consistent logging with timestamps
- require_root() - root privilege checking with optional sudo re-exec
- get_actual_user(), get_actual_user_home() - handle SUDO_USER properly
- parse_interactive_args() - standard --interactive/-i and --help/-h handling
- notify() - cross-platform desktop notifications
- require_command(), ensure_dir() - common utility functions
- enable_service(), is_service_active() - systemd helpers
Refactored scripts to use common library:
- block_compulsive_opening.sh
- setup_pc_startup_monitor.sh
- setup_periodic_system.sh
- setup_thorium_startup.sh
- nvidia_troubleshoot.sh
- hosts/guard/setup_hosts_guard.sh
- hosts/guard/enforce-hosts.sh
Merged duplicate scripts:
- Created convert_video.sh (combined to_mp4.sh and to_webm.sh)
- Removed pdf_to_png.sh (was identical to pdf_to_image.sh)
Reduced duplication from 4.08% (48 clones) to 1.86% (26 clones)
2025-12-11 17:43:50 +01:00
e3e5002d35
Stricter duplicate detection: 5 lines, 25 tokens, 0% threshold
...
- Auto-installs jscpd if missing
- Blocks commit on any duplication detected
- Current repo has 48 clones that need refactoring
2025-12-11 17:33:35 +01:00
dc577473aa
Add duplicate code detection to pre-commit hook
...
Uses jscpd to detect code clones in shell scripts.
Blocks commit if duplication exceeds 5% threshold.
Suggests extracting common code to scripts/lib/common.sh.
2025-12-11 17:31:47 +01:00
348a56906c
Add compulsive opening blocker for messaging apps
...
Limits beeper, signal-desktop, and discord to one launch per hour.
Shows notification when blocked. Tracks state in ~/.local/state/compulsive-block/.
Features:
- install/uninstall commands (handles both files and symlinks)
- status command to view current state
- reset/reset-all to allow reopening within the hour
- Follows existing wrapper pattern from youtube-music-wrapper.sh
2025-12-11 17:28:25 +01:00
b5c6e33c05
feat: scripts for converting mp4 to webm and inverse
2025-12-11 17:10:54 +01:00
7925f0f1f9
Fix focus app detection to use window titles instead of process names
...
- Changed from pgrep -f (matches any process with 'code' in cmdline) to
xdotool window detection (only matches visible windows)
- VS Code background services (code-tunnel, etc.) no longer trigger blocking
- Music is only blocked when VS Code window is actually open
- Split detection into FOCUS_APPS_WINDOWS and FOCUS_APPS_PROCESSES arrays
2025-12-07 16:01:14 +01:00
f392ce0d31
Fix youtube-music wrapper to point to .real binary
2025-12-07 14:42:21 +01:00
aab2c1acbc
Add instant mode for near-instantaneous music app termination
...
- New 'instant' mode polls every 0.5 seconds (vs 3s for regular mode)
- Made instant mode the default for the systemd service
- Added youtube-music-wrapper.sh to block launch when focus apps running
- YouTube Music killed within 0.5 seconds of opening
2025-12-07 14:40:42 +01:00
f805be2f0f
Revert to SIGKILL (-9) for reliable music app termination
2025-12-07 14:37:20 +01:00
17899e3721
Use gentler SIGTERM instead of SIGKILL for music apps
2025-12-07 14:36:11 +01:00
88a6b5db4a
Reduce music parallelism check interval from 10s to 3s
2025-12-07 14:35:04 +01:00
a1407338aa
Fix music parallelism log to use user directory instead of /var/log
2025-12-07 14:34:23 +01:00
8800d502ae
Fix music parallelism: add youtube-music Electron app detection and use SIGKILL
...
- Added 'youtube-music' and 'YouTube Music' patterns to detect Electron app
- Added explicit killing of youtube-music process
- Use SIGKILL (-9) to ensure apps are actually terminated
- Fixed log function to not fail on permission errors
2025-12-07 14:31:36 +01:00
774c28b7a7
Add music parallelism prevention script
...
Prevents multitasking between focus work and music streaming.
When focus apps (VS Code, Steam, Godot, etc.) are detected running
alongside music services (YouTube Music, Spotify, etc.), the music
is automatically stopped.
Features:
- Monitors for focus applications (IDEs, games, creative software)
- Detects music streaming via browser tabs and native apps
- Closes music windows/processes when conflict detected
- Desktop notifications when music is stopped
- Status command to check current state
- Systemd service for background monitoring
2025-12-07 14:27:19 +01:00
7c15b2d3aa
Add multi-layer protection to shutdown timer monitor
...
- Add RefuseManualStop=true to prevent systemctl stop
- Add RestartForceExitStatus to restart even on SIGTERM/SIGKILL
- Add watchdog timer that checks monitor every 60 seconds
- Watchdog also restarts the main timer if stopped
- Tested: manual stop refused, pkill auto-restarts, timer tampering detected
2025-12-07 14:20:05 +01:00