dotool على Wayland - الإعداد واستكشاف الأخطاء وإصلاحها

مطلوب dotool لكي تتمكن Aura من كتابة نص في تطبيقات أخرى على Wayland. على عكس xdotool، فإنه يتصل مباشرة مع Linux kernel عبر uinput ويعمل على كل من X11 وWayland.

في X11، يتم استخدام xdotool بشكل افتراضي. dotool اختياري على X11 ولكن يوصى به لتحسين استقرار التخطيط (خاصة مع علامات تغير الصوت).

                                                                      ---

                                       ## 1. قم بتثبيت دوتول

                     ** آرتش / مانجارو / كاشيوس (AUR):**
yay -S dotool
# or:
pamac build dotool

Ubuntu / Debian (إذا كان متوفرًا في اتفاقيات إعادة الشراء):

sudo apt install dotool

إذا لم يكن في اتفاقات إعادة الشراء — قم بالإنشاء من المصدر:

sudo pacman -S go        # or: sudo apt install golang
git clone https://git.sr.ht/~geb/dotool
cd dotool
make
sudo make install
                                                                      ---

  ## 2. السماح بتشغيل dotool بدون الجذر (مطلوب)

يحتاج dotool إلى الوصول إلى /dev/uinput. وبدون هذا، سوف تفشل بصمت.

# Add your user to the input group:
sudo gpasswd -a $USER input

# Create the udev rule:
echo 'KERNEL=="uinput", GROUP="input", MODE="0660", OPTIONS+="static_node=uinput"' \
  | sudo tee /etc/udev/rules.d/80-dotool.rules

# Reload rules:
sudo udevadm control --reload-rules && sudo udevadm trigger

يلزم إعادة تسجيل الدخول بعد تغيير المجموعة حتى تدخل حيز التنفيذ.

                                                                      ---

                                       ## 3. تحقق من التثبيت
# Test that dotool can type (focus a text field first):
echo "type hello" | dotool

# Check that the input group is active in your session:
groups | grep input

إذا لم تعرض “المجموعات” “الإدخال”، فقم بتسجيل الخروج ثم الدخول مرة أخرى (أو أعد التشغيل).

                                                                      ---

                                    ## 4. كيف تستخدم Aura dotool

                                 Aura `type_watcher.sh` تلقائيًا:

       - يكتشف Wayland عبر `$WAYLAND_DISPLAY` ويحدد `dotool`
  • بدء تشغيل البرنامج الخفي dotoold في الخلفية إذا كان موجودًا ولا يعمل

  • يعود إلى xdotool إذا لم يتم تثبيت dotool (X11 فقط)

  • لتعيين تخطيط لوحة المفاتيح من طراز Vosk النشط لديك (على سبيل المثال، deXKB_DEFAULT_LAYOUT=de)

ليست هناك حاجة إلى إدارة البرنامج الخفي يدويًا — يتعامل Aura مع هذا الأمر عند بدء التشغيل.

                                                                      ---

                     ## 5. استكشاف الأخطاء وإصلاحها

                   **تسجل الهالة ولكن لا يظهر نص:**
# Check if dotool is installed:
command -v dotool

# Check group membership:
groups | grep input

# Test manually (focus a text field first):
echo "type hello" | dotool

# Check the watcher log:
tail -30 log/type_watcher.log

أحرف مفقودة أو مشوهة (خاصة علامات تغير الصوت):

قم بزيادة تأخير الكتابة في config/settings_local.py:

dotool_typedelay = 5   # default is 2, try 5 or 10

** يعمل dotool في الوحدة الطرفية ولكن ليس في Aura:**

تأكد من أن مجموعة “الإدخال” نشطة في جلسة سطح المكتب (وليس فقط محطة طرفية جديدة). يلزم إعادة تسجيل الدخول بالكامل بعد gpasswd.

فرض أداة dotool على X11 (اختياري، لتحقيق استقرار أفضل للتخطيط):

# config/settings_local.py
x11_input_method_OVERRIDE = "dotool"
                                                                      ---

## 6. الإجراء الاحتياطي إذا تعذر تثبيت dotool

إذا لم يكن dotool متاحًا على نظامك، فستعود Aura إلى xdotool على X11. في Wayland بدون dotool، تكون الكتابة غير مدعومة — وهذا هو Wayland قيود أمنية، وليس قيود هالة.

الأدوات البديلة التي قد تعمل على مكونات محددة:

                                           | أداة | يعمل على |
                                                                |---|---|
                                               | `xdotool` | X11 فقط |
                   | `دوتول` | X11 + وايلاند (مستحسن) |
                      | `ydotool` | X11 + وايلاند (البديل) |

                              لاستخدام `ydotool` كحل يدوي:
sudo pacman -S ydotool    # or: sudo apt install ydotool
sudo systemctl enable --now ydotool

ملاحظة: لا تقوم Aura بدمج ydotool أصلاً — يلزم التكوين اليدوي.