انجمن‌های فارسی اوبونتو

کمک و پشتیبانی => انجمن عمومی => نویسنده: EnriqueTTE در 18 بهمن 1400، 11:32 ب‌ظ

عنوان: انجام بعضی دستورات بصورت دستی
ارسال شده توسط: EnriqueTTE در 18 بهمن 1400، 11:32 ب‌ظ
من از qtile استفاده میکنم و برای تنظیم روشنایی و صدا باید از یسری دستور استفاده کنم.
چجوری میتونم تنظیم کنم با فشردن یه کلید یه دستور اجرا بشه؟
این دستور برای افزایش میزان روشنایی استفاده میشه.
sudo brightnessctl -d "intel_backlight" set +5%میخوام جوری باشه که با فشردن کلید XF86MonBrightnessUp روشنایی زیاد بشه و ...
اگر بشه بدون sudo این کارو کرد خیلی عالی میشه.
عنوان: پاسخ : اتصال کلید های کیبورد به دستور
ارسال شده توسط: SLACKER در 18 بهمن 1400، 11:56 ب‌ظ
در میزکار xfce این ادرسه
/home/slacker/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml
عنوان: پاسخ : اتصال کلید های کیبورد به دستور
ارسال شده توسط: EnriqueTTE در 19 بهمن 1400، 10:24 ق‌ظ
یا من متوجه منظور شما نشدم یا شما متوجه منظور من نشدید.
qtile یه window manager هست و با میزکار فرق داره. توی تنظیماتش تنظیم کردم که با فشردن کلید این کارو انجام بده اما کار نمیکنه احتمالا بخاطر sudo باشه.
میزکار kde هم دارم اما میانبر های اون برای qtile کار نمیکنه.
عنوان: پاسخ : اتصال کلید های کیبورد به دستور
ارسال شده توسط: جعفر فرقانلوژ در 19 بهمن 1400، 10:55 ق‌ظ
روی کی دی ای qtile دارید ؟
عنوان: پاسخ : اتصال کلید های کیبورد به دستور
ارسال شده توسط: EnriqueTTE در 19 بهمن 1400، 11:04 ق‌ظ
این دوتا کلا از همیدگه جدان و بهمدیگه ربطی ندارن.
یجورایی انگار گنوم و کی‌دی‌ای رو باهم داشته باشم اما qtile به بزرگی هیجکدوم نیست. فقط تعیین میکنه هر پنجره کجا و با چه اندازه‌ای باز بشه.
یه سرچ درباره window manager بزنید متوجه میشید.
عنوان: پاسخ : اتصال کلید های کیبورد به دستور
ارسال شده توسط: َUxmlai-ad در 19 بهمن 1400، 01:05 ب‌ظ
برای تنظیم کردنش از فایل متنی استفاده می کنید؟
یه راه دیگه برای تنظیم نور صفحه نیست؟

من هم یه مشکل شبیه به این دارم البته تنظیم روشنایی نیست ولی نمی دونم چجوری تنظیم کنم که بدون دسترسی روت سیستم رو با مدیر پنجره خاموش کنم
عنوان: پاسخ : اتصال کلید های کیبورد به دستور
ارسال شده توسط: behzad121 در 19 بهمن 1400، 01:36 ب‌ظ
فکر کنم ابزار xbindkeys برای شما مناسب باشه. حتی اگه آرچ ندارید این صفحه (https://wiki.archlinux.org/title/Xbindkeys) از ویکی آرچ رو برای کانفیگ کردن xbindkeys ببینید.
عنوان: پاسخ : اتصال کلید های کیبورد به دستور
ارسال شده توسط: EnriqueTTE در 19 بهمن 1400، 06:40 ب‌ظ
فکر کنم ابزار xbindkeys برای شما مناسب باشه. حتی اگه آرچ ندارید این صفحه (https://wiki.archlinux.org/title/Xbindkeys) از ویکی آرچ رو برای کانفیگ کردن xbindkeys ببینید.
هرکاری کردم درست نشد
کلید هایی که تنظیم کردم اصلا کار نمیکنه
عنوان: پاسخ : اتصال کلید های کیبورد به دستور
ارسال شده توسط: جعفر فرقانلوژ در 19 بهمن 1400، 06:42 ب‌ظ
این دوتا کلا از همیدگه جدان و بهمدیگه ربطی ندارن.
یجورایی انگار گنوم و کی‌دی‌ای رو باهم داشته باشم اما qtile به بزرگی هیجکدوم نیست. فقط تعیین میکنه هر پنجره کجا و با چه اندازه‌ای باز بشه.
یه سرچ درباره window manager بزنید متوجه میشید.
میدونم منظورتون رو فکر کردم روی کی دی ای مدیریت پنجره دیگه ای اجرا کردید
عنوان: پاسخ : انجام بعضی دستورات بصورت دستی
ارسال شده توسط: EnriqueTTE در 20 بهمن 1400، 01:02 ب‌ظ
دوستان من یه مشکلی دارم توی qtile میخوام به اینترنت وصل بشم همش به ارور میخورم.
nmcli --ask dev wifi connect FD-M40-G1-6178
Password: ••••••••
Error: Connection activation failed: (7) Secrets were required, but not provided.
مطمئنم که رمز رو درست میزنم، توی kde خیلی راحت وصل میشه البته بصورت گرافیکی.
نمیدونم kde چحوری به اینترنت وصل میشه اما من فقط NetworkManager رو دارم.
عنوان: پاسخ : انجام بعضی دستورات بصورت دستی
ارسال شده توسط: SLACKER در 20 بهمن 1400، 02:03 ب‌ظ
دوستان من یه مشکلی دارم توی qtile میخوام به اینترنت وصل بشم همش به ارور میخورم.
nmcli --ask dev wifi connect FD-M40-G1-6178
Password: ••••••••
Error: Connection activation failed: (7) Secrets were required, but not provided.
مطمئنم که رمز رو درست میزنم، توی kde خیلی راحت وصل میشه البته بصورت گرافیکی.
نمیدونم kde چحوری به اینترنت وصل میشه اما من فقط NetworkManager رو دارم.
اگر antix نصبه وایرلس 7260 با nmcli مشکل داره, توی فروم نوشته بود
 از nm خوده kde استفاده کن
عنوان: پاسخ : انجام بعضی دستورات بصورت دستی
ارسال شده توسط: EnriqueTTE در 20 بهمن 1400، 07:30 ب‌ظ
خب من nmtui رو فراموش کرده بودم که مشکل اینترنت حل شد.
الان مشکل اصلی تنظیم روشنایی صفحه نمایشه.
عنوان: پاسخ : انجام بعضی دستورات بصورت دستی
ارسال شده توسط: EnriqueTTE در 20 بهمن 1400، 10:42 ب‌ظ
یه خرابکاری کردم!!!
با qtile وقنی زبان رو عوض میکردم فقط برای فایرفاکس تغییر میکرد، براش یسری کلید تعریف کرده بودم که زبان صفحه کلید رو عوض کنه.
سرچ کردم و توی ویکی آرچ دیدم باید یسری فایل رو توی همچین مسیری /etc/X11/ ایجاد کنم و یسری چیز داخلش بنویسم.
سیستم رو ریستارت کردم، وقتی به صفحه ورود میرسه اولین کلیدی که بزنم صفحه کلید فارسی میشه، زبان رو عوض کردم و رمز رو زدم ارور میده که login failed چندبار تلاش کردم اما درست نشد.
ریستارت کردم و با حالت ویرایش گراب, init=/bin/bash رو به آخر خطی که نوشته linux اضافه کردم و وارد خط فرمان شدم.
ls /home هیچی نشون نمیده!!


فلش هم ندارم که روش لینوکس داشته باشه.
راهنمایی کنید لطفا
عنوان: پاسخ : انجام بعضی دستورات بصورت دستی
ارسال شده توسط: SLACKER در 20 بهمن 1400، 10:48 ب‌ظ
یه خرابکاری کردم!!!
با qtile وقنی زبان رو عوض میکردم فقط برای فایرفاکس تغییر میکرد، براش یسری کلید تعریف کرده بودم که زبان صفحه کلید رو عوض کنه.
سرچ کردم و توی ویکی آرچ دیدم باید یسری فایل رو توی همچین مسیری /etc/X11/ ایجاد کنم و یسری چیز داخلش بنویسم.
سیستم رو ریستارت کردم، وقتی به صفحه ورود میرسه اولین کلیدی که بزنم صفحه کلید فارسی میشه، زبان رو عوض کردم و رمز رو زدم ارور میده که login failed چندبار تلاش کردم اما درست نشد.
ریستارت کردم و با حالت ویرایش گراب, init=/bin/bash رو به آخر خطی که نوشته linux اضافه کردم و وارد خط فرمان شدم.
ls /home هیچی نشون نمیده!!


فلش هم ندارم که روش لینوکس داشته باشه.
راهنمایی کنید لطفا
روت / هم نشون نميده؟
عنوان: پاسخ : انجام بعضی دستورات بصورت دستی
ارسال شده توسط: EnriqueTTE در 20 بهمن 1400، 10:52 ب‌ظ
روت رو نشون میده
توی روت اینارو دارم:
Tehran bin boot etc home lib lib64 lost+found mnt opt proc root run sbin srv sys tmp usr var

فکر کنم lost+found توی /home بوده، شک دارم
عنوان: پاسخ : انجام بعضی دستورات بصورت دستی
ارسال شده توسط: EnriqueTTE در 20 بهمن 1400، 10:54 ب‌ظ
زدم su smjt2000 به کاربر خودم وارد شدم اما وقتی میزنم cd میگه که /home/smjt2000/ وجود نداره!!
عنوان: پاسخ : انجام بعضی دستورات بصورت دستی
ارسال شده توسط: SLACKER در 20 بهمن 1400، 10:55 ب‌ظ
روت رو نشون میده
توی روت اینارو دارم:
Tehran bin boot etc home lib lib64 lost+found mnt opt proc root run sbin srv sys tmp usr var

فکر کنم lost+found توی /home بوده، شک دارم
خب همون فایل هایی که ساختی یا ویرایش کردی درست کن
عنوان: پاسخ : انجام بعضی دستورات بصورت دستی
ارسال شده توسط: SLACKER در 20 بهمن 1400، 11:01 ب‌ظ
ارچ نصب کرده بودی درسته؟
اینم ویکی ارچ.

Localization

Edit /etc/locale.gen and uncomment en_US.UTF-8 UTF-8 and other needed locales. Generate the locales by running:

# locale-gen
Create the locale.conf(5) file, and set the LANG variable accordingly:

/etc/locale.conf

LANG=en_US.UTF-8

If you set the console keyboard layout, make the changes persistent in vconsole.conf(5):

/etc/vconsole.conf
KEYMAP=de-latin1
عنوان: پاسخ : انجام بعضی دستورات بصورت دستی
ارسال شده توسط: EnriqueTTE در 20 بهمن 1400، 11:06 ب‌ظ
اون فایل ها که درسته، زبان فارسی اوکیه اما با دستوری که برای تغییر زبان به qtile داده بودم فقط فایرفاکس فارسی میشد درصورتی‌که با xkb-show بهم fa رو نشون میداد
با kde مشکلی نبود
عنوان: پاسخ : انجام بعضی دستورات بصورت دستی
ارسال شده توسط: SLACKER در 20 بهمن 1400، 11:12 ب‌ظ
برو به /etc/X11/xorg.conf.d 
ببین داخل فایل کیبورد چی نوشته





عنوان: پاسخ : انجام بعضی دستورات بصورت دستی
ارسال شده توسط: EnriqueTTE در 20 بهمن 1400، 11:16 ب‌ظ
برو به /etc/X11/xorg.conf.d 
ببین داخل فایل کیبورد چی نوشته
خالیه

مشکل من زبان نیست، home رو چکارش کنم؟
عنوان: پاسخ : انجام بعضی دستورات بصورت دستی
ارسال شده توسط: SLACKER در 20 بهمن 1400، 11:24 ب‌ظ
برو به /etc/X11/xorg.conf.d 
ببین داخل فایل کیبورد چی نوشته
خالیه

مشکل من زبان نیست، home رو چکارش کنم؟
از اول بگو مشکلت چیه
نمیتونی به صورت گرافیکی وارد سیستم شی بخاطر زبان کیبورد؟
عنوان: پاسخ : انجام بعضی دستورات بصورت دستی
ارسال شده توسط: EnriqueTTE در 20 بهمن 1400، 11:27 ب‌ظ
بنظر میاد چون کاربرم دایرکتوری home نداره نمیتونم بصورت گرافیکی وارد بشم
عنوان: پاسخ : انجام بعضی دستورات بصورت دستی
ارسال شده توسط: SLACKER در 20 بهمن 1400، 11:29 ب‌ظ
بنظر میاد چون کاربرم دایرکتوری home نداره نمیتونم بصورت گرافیکی وارد بشم
کاربر  دیگه بساز
عنوان: پاسخ : انجام بعضی دستورات بصورت دستی
ارسال شده توسط: EnriqueTTE در 20 بهمن 1400، 11:38 ب‌ظ
اون فایل تنظیم زبان رو پاک کردم، یه کاربر ساختم اما براش home ساخته نشد پس واردش نمیشد.
یبار دیگه با کاربر اصلی تلاش کردم و وارد شد!! Home هم سرجاشه
نمیدونم چیشد 🤷🏼‍♂️
عنوان: پاسخ : انجام بعضی دستورات بصورت دستی
ارسال شده توسط: SLACKER در 20 بهمن 1400، 11:41 ب‌ظ
اون فایل تنظیم زبان رو پاک کردم، یه کاربر ساختم اما براش home ساخته نشد پس واردش نمیشد.
یبار دیگه با کاربر اصلی تلاش کردم و وارد شد!! Home هم سرجاشه
نمیدونم چیشد 🤷🏼‍♂️
چی داخل فایل نوشته بودی؟
عنوان: پاسخ : انجام بعضی دستورات بصورت دستی
ارسال شده توسط: EnriqueTTE در 20 بهمن 1400، 11:47 ب‌ظ
چی داخل فایل نوشته بودی؟

فایل:
/etc/X11/xorg.conf.d/00-keyboard.confمحتوا یه همچین چیزی بود
Section "InputClass"
        Identifier "system-keyboard"
        MatchIsKeyboard "on"
        Option "XkbLayout" "cz,us"
        Option "XkbModel" "pc104"
        Option "XkbVariant" ",dvorak"
        Option "XkbOptions" "grp:win_space_toggle"
EndSection
عنوان: پاسخ : انجام بعضی دستورات بصورت دستی
ارسال شده توسط: SLACKER در 21 بهمن 1400، 12:16 ق‌ظ
چی داخل فایل نوشته بودی؟

فایل:
/etc/X11/xorg.conf.d/00-keyboard.confمحتوا یه همچین چیزی بود
Section "InputClass"
        Identifier "system-keyboard"
        MatchIsKeyboard "on"
        Option "XkbLayout" "cz,us"
        Option "XkbModel" "pc104"
        Option "XkbVariant" ",dvorak"
        Option "XkbOptions" "grp:win_space_toggle"
EndSection
این ۲ تا رو نباید مینوشتی  Option "XkbVariant" ",dvorak" و Option "XkbModel" "pc104"
این cz فکر کنم زبان جمهوری چک باشه. اینو چرا نوشتی؟
عنوان: پاسخ : انجام بعضی دستورات بصورت دستی
ارسال شده توسط: EnriqueTTE در 21 بهمن 1400، 09:06 ق‌ظ
این ۲ تا رو نباید مینوشتی  Option "XkbModel" "pc104" و Option "XkbModel" "pc104"
این cz فکر کنم زبان جمهوری چک باشه. اینو چرا نوشتی؟
اینا که جفتش یکیه.
گفتم مثل این، بجای cz ir نوشتم
عنوان: پاسخ : انجام بعضی دستورات بصورت دستی
ارسال شده توسط: Dragon- در 22 بهمن 1400، 10:41 ب‌ظ
من از qtile استفاده میکنم و برای تنظیم روشنایی و صدا باید از یسری دستور استفاده کنم.
چجوری میتونم تنظیم کنم با فشردن یه کلید یه دستور اجرا بشه؟
این دستور برای افزایش میزان روشنایی استفاده میشه.
sudo brightnessctl -d "intel_backlight" set +5%میخوام جوری باشه که با فشردن کلید XF86MonBrightnessUp روشنایی زیاد بشه و ...
اگر بشه بدون sudo این کارو کرد خیلی عالی میشه.
گرافیک شما اینتل هست؟ خروجی این دستور چیه؟
ls /sys/class/backlight
احتمالا مشکل از این هست که شما دسترسی برای انجام اینکار رو ندارید. در نتیجه مجبور میشسد brightnessctl رو با sudo اجرا کنید. توی ویکی آرچ یه راهنما درباره نور پس زمینه هست. این لینک (https://wiki.archlinux.org/title/Backlight) به اون هست.
عنوان: پاسخ : انجام بعضی دستورات بصورت دستی
ارسال شده توسط: Dragon- در 22 بهمن 1400، 10:46 ب‌ظ
دوستان من یه مشکلی دارم توی qtile میخوام به اینترنت وصل بشم همش به ارور میخورم.
nmcli --ask dev wifi connect FD-M40-G1-6178
Password: ••••••••
Error: Connection activation failed: (7) Secrets were required, but not provided.
مطمئنم که رمز رو درست میزنم، توی kde خیلی راحت وصل میشه البته بصورت گرافیکی.
نمیدونم kde چحوری به اینترنت وصل میشه اما من فقط NetworkManager رو دارم.
رمز رو مستقیم بهش بدید و ببینید کار می‌کنه یا نه. اینجوری
nmcli dev wifi connect FD-M40-G1-6178 password YOURPASSبه جای YOURPASS، رمزعبور رو بنویسید.

البته با اینکار، رمز عبور وایفای شما توی bash_history. ذخیره میشه. اگه می‌خواهید این اتفاق نیوفته، قبل از دستور یه فاصله بذارید. با اینکار، دستور جایی ذحیره نمیشه.
عنوان: پاسخ : انجام بعضی دستورات بصورت دستی
ارسال شده توسط: EnriqueTTE در 23 بهمن 1400، 08:41 ق‌ظ
گرافیک شما اینتل هست؟ خروجی این دستور چیه؟
ls /sys/class/backlight
احتمالا مشکل از این هست که شما دسترسی برای انجام اینکار رو ندارید. در نتیجه مجبور میشسد brightnessctl رو با sudo اجرا کنید. توی ویکی آرچ یه راهنما درباره نور پس زمینه هست. این لینک (https://wiki.archlinux.org/title/Backlight) به اون هست.
intel_backlight
گرافیکم اینتل هست. توی انجمن آرچ یه اسکریپت دیدم که میتونه نور نمایشگر رو تنظیم کنه، مشکل اینجا بود که اونم به sudo نیاز داشت.
اسکریپت رو ذخیره کردم و به همه کاربرها اجازه دادم با sudo بدون رمز بتونن اجراش کنن و توی تنظیمات qtile براش کلید هارو تعریف کردم و داره کار میکنه.
اینم اسکریپت:
#!/bin/bash

# base dir for backlight class
basedir="/sys/class/backlight/"

# get the backlight handler
handler=$basedir$(ls $basedir)"/"

# get current brightness
old_brightness=$(cat $handler"brightness")

# get max brightness
max_brightness=$(cat $handler"max_brightness")

# get current brightness %
old_brightness_p=$(( 100 * $old_brightness / $max_brightness ))

# calculate new brightness %
new_brightness_p=$(($old_brightness_p $1))

# calculate new brightness value
new_brightness=$(( $max_brightness * $new_brightness_p / 100 ))

# set the new brightness value
sudo chmod 666 $handler"brightness"
echo $new_brightness > $handler"brightness"

مشکل خاصی با نور صفحه ندارم فقط اینکه هردفعه که لپ تاپ رو روشن میکنم نور صفحه 100 درصده چه وارد qtile بشم چه kde plasma.
مشکل فعلا صداست که برای تغییرش باید موس رو ببرم روی ویجت/widget صدا و اسکرول کنم، نتونستم براش تنظیم کنم که با کیبورد کار کنه.

این کلید هارو برای صدا تنظیم کردم اما حتی وقتی خودم توی ترمینال ازشون استفاده میکنم با ارور مواجه میشم.
    Key([], "XF86AudioMute", lazy.spawn("amixer -c 1 set Master toggle")),
    Key([], "XF86AudioLowerVolume", lazy.spawn("amixer -c 1 -q set Master 5- unmute")),
    Key([], "XF86AudioRaiseVolume", lazy.spawn("amixer -c 1 -q set Master 5+ unmute")),

amixer: Unable to find simple control 'Master',0   # ERROR
عنوان: پاسخ : انجام بعضی دستورات بصورت دستی
ارسال شده توسط: Dragon- در 23 بهمن 1400، 11:09 ق‌ظ
از خروجی که فرستادید، مشخصه گرافیک اینتل دارید. می‌تونید با تغییر مقادیر فایل زیر، روشنایی رو کم و زیاد کنید.
/sys/class/backlight/intel_backlight/brightness
حداکثر مقداری که می‌تونید توی فایل بالا بنویسید، توی فایل زیر گفته شده.
/sys/class/backlight/intel_backlight/max_brightness
فایل اولی، فقط توسط روت قابل نوشتنه. به خاطر همین پردازش‌های با دسترسی کم، نمی‌تونند همینجوری روشنایی رو تغییر بدند.
می‌تونید udev رو تنظیم کنید تا وقتی که گرافیک شناسایی شد و فایل‌های مجازی اون توی /sys/ ایجاد شدند، دسترسی و گروه فایل اول رو تغییر بده به طوری که کاربر‌های عضو گروه video (و در نتیجه پردازش‌هایی که اجرا کردند) بتونند توی فایل بالا بنویسند. به نظرم این راه بهتر از این هست که تنظیمات sudo رو تغییر بدید.

این قانون رو می‌تونید به قانون‌های udev اضافه کنید تا کار‌های بالا رو انجام بده.
ACTION=="add", SUBSYSTEM=="backlight", KERNEL=="intel_backlight", RUN+="/usr/bin/chgrp video /sys/class/backlight/intel_backlight/brightness"
ACTION=="add", SUBSYSTEM=="backlight", KERNEL=="intel_backlight", RUN+="/usr/bin/chmod g+w /sys/class/backlight/intel_backlight/brightness"

متن بالا رو توی یه فایل با پسوند rules. توی دایرکتوری زیر ذحیره کنید.
/etc/udev/rules.d
می‌تونید اول اسم فایل، یه عدد بذارید تا ترتیب اعمال اون قانون بین قانون‌های دیگه رو تغیین کنید. مثلا این اسم، می‌تونه یه اسم معتبر باشه.
/etc/udev/rules.d/50-backlight.rules
بعد کامپیوتر رو خاموش روشن کنید و خروجی دستور زیر رو بررسی کنید.
ls -l /sys/class/backlight/intel_backlight
بعد بدون sudo سعی کنید روشنایی رو تغییر بدید و ببینید چی میشه.

در مورد نور صفحه که همیشه موقع روشن شدن، حداکثر هست، می‌تونید یه اسکریپت ساده بنویسید تا هر مثلا ۵ ثانیه یه بار روشنایی فعلی رو بررسی کنه و اون رو توی یه فایل بنویسه. بعد اون رو تبدیل به یه سرویس کنید تا موقع بوت اجرا بشه. اسکریپت باید وقتی اجرا میشه، اول بررسی کنه که روشنایی قبل از خاموش سدن چی بوده و بعد هر ۵ ثانه یه بار، روشنایی رو بررسی و ذخیره کنه.

همراه systemd، یه سرویس به اسم systemd-backlight@.service هست. این سرویس، سعی می‌کنه روشنایی رو پیدا و ذخیره کنه. موقع بوت، این سرویس روشنایی رو به آخرین مقداری که ذخیره کرده، بر می‌گردونه. ولی شما systemd ندارید تا بتونید از این سرویس استفاده کنید. پس باید خودتون یه کار بکنید.
از چه init system توی artix استفاده کردید؟ شاید اون init system چنین قابلیتی داشته باشه. یه جست‌و‌جو کنید.
عنوان: پاسخ : انجام بعضی دستورات بصورت دستی
ارسال شده توسط: EnriqueTTE در 23 بهمن 1400، 09:47 ب‌ظ
ls -l /sys/class/backlight/intel_backlight

lrwxrwxrwx 1 root root 0 Feb 12 18:47 /sys/class/backlight/intel_backlight -> ../../devices/pci0000:00/0000:00:02.0/drm/card0/card0-eDP-1/intel_backlight

این اسکریپت خوبه؟
#!/bin/bash

brightness_file="/sys/class/backlight/intel_backlight/brightness"
log_file="/home/smjt2000/.current-brightness"

function set_last {
        if [ -f $log_file]
        then
                last=$(tail -n1 $log_file)
                echo $last > $brightness_file
        fi
}

function get_last {
        current=$(cat $brightness_file)
        echo $current
        cat $current >> $log_file
}

set_last

while :
do
        get_last
        sleep 10
done


اگه این اسکریپت رو به عنوان یه سرویس تنظیم کنم بدون مشکل میتونه کار کنه؟ نمیخواد دسترسی خاصی بهش بدم؟
عنوان: پاسخ : انجام بعضی دستورات بصورت دستی
ارسال شده توسط: Dragon- در 25 بهمن 1400، 08:13 ب‌ظ
ls -l /sys/class/backlight/intel_backlight
lrwxrwxrwx 1 root root 0 Feb 12 18:47 /sys/class/backlight/intel_backlight -> ../../devices/pci0000:00/0000:00:02.0/drm/card0/card0-eDP-1/intel_backlight

یه اسلش اون آخرش بذارید و دوباره انجام بدید. از اونجایی که دایرکتوری بالا در اصل یه لینک به یه دایرکتوری ریگه هست، اگه اسلش آخر رو ننویسید، محتوای اون نمایش داده نمیشه، جایی که بهش اشاره می‌کنه نمایش داده میشه. این دستور رو بزنید.
ls -l /sys/class/backlight/intel_backlight/
خروجی این دستور رو هم بررسی کنید تا ببنید توی چه گروه‌هایی هستید.
groups
بعد از اضافه کردن اون قانون udev می‌تونید بدون دسترسی روت، روشنایی رو تغییر بدید؟
نقل‌قول
این اسکریپت خوبه؟
#!/bin/bash

brightness_file="/sys/class/backlight/intel_backlight/brightness"
log_file="/home/smjt2000/.current-brightness"

function set_last {
        if [ -f $log_file]
        then
                last=$(tail -n1 $log_file)
                echo $last > $brightness_file
        fi
}

function get_last {
        current=$(cat $brightness_file)
        echo $current
        cat $current >> $log_file
}

set_last

while :
do
        get_last
        sleep 10
done


به نظرم اگه یه سری بررسی‌های بیشتری انجام بده، بهتره.
systemd-backlight@.service، اطلاعات رو توی یه سری فایل‌ها توی یه دایرکتوری توی /var/lib/ ذخیره می‌کنه. به نظرم بهتره شما هم این اطلاعات رو داخل /var/lib/ نگه دارید. اگه به دایرکتوری‌های مربوط به pacman یا بقیه برنامه‌های مهم دست نزنید، مشکلی پیش نمیاد.
اسکریپتی که شما نوشتید، مقدار روشنایی رو هر ۱۰ ثانیه ذخیره می‌کنه ولی مشکلش اینجاست که مقادیر قبلی رو پاک نمی‌کنه و روشنایی فعلی رو به آخر اون فایل اضافه می‌کنه. از اونجایی که این کار هر ۱۰ ثانیه یه بار انجام میشه، فایل مورد نظر می‌تونه خیلی سریع بزرگ بشه.

در ضمن اسکریپت شما یه مشکل هم داره. این مشکل توی تابع get_last هست. اینجا
cat $current >> $log_fileاین خطا میده. با توجه به اون یکی تابع که نوشتید، فکر کنم منظورتون این بوده
echo $current >> $log_file
فکر کنم این اسکریپت بهتره:
#!/bin/bash

set -e

for ENV in PREFIX HISTORY_DIR HISTORY_FILE HANDELER_DIR BRT_FILE MAX_BRT_FILE INTERVAL; do
      export "${ENV}"
done
unset ENV

PREFIX=/var/lib
HISTORY_DIR="${PREFIX}/backlight_history"
HISTORY_FILE="${HISTORY_DIR}/last_brightness"
HANDELER_DIR=/sys/class/backlight/intel_backlight/
BRT_FILE="${HANDELER_DIR}/brightness"
MAX_BRT_FILE="${HANDELER_DIR}/max_brightness"
INTERVAL=10

is_on-readonly_fs() {

      # and by mountpoint, we mean the mountpoint that
      # specified file or directory, resides on
      local mountpoint
      local mount_options
      mountpoint="$(stat --format '%m' "${1}")"
      mount_options="$(findmnt -n -T "${mountpoint}" -o OPTIONS)"

      echo "${mount_options}" | grep -Eq '^ro$|^ro,|,ro,|,ro$'
      return $?
}

# This function checks if the specified file has  'i' or 'a' attributes
# if this is the case,  function returns 1 and if not, returns 0
is_overwriteable() {

      local attrs
     attrs="$(lsattr "${1}")"
      attrs="$(echo "${attrs}" | awk '{print $1}')"

      if echo "${attrs}" | grep -Eq 'a|i'; then
            return 1
      else
            return 0
      fi
}

read_file() {

     ( [ -f "${1}" ] && [ -r "${1}" ] ) || ( echo "${1} does not exsit or read permission is not granted" >&2; return 1 )
      cat "${1}"
}

create_history_file() {

      # return zero if history file exists
      [ -e "${HISTORY_FILE}" ] && return 0

     if [ -d "${HISTORY_DIR}" ]; then
           if is_on_readonly_fs "${HISTORY_DIR}"; then
                  echo "${HISTORY_DIR} is under a read only mountpoint or is a read only mountpoint. Abort" >&2
                  echo "resolve the issue and restart the service" >&2
                 exit 0
            else
                  touch "${HISTORY_FILE}"
            fi

      else
            if is_on_readonly_fs "${PREFIX}"; then
                  echo "${PREFIX} is under a read only mountpoint or is a read only mountpoint. Abort" >&2
                  echo "resolve the issue and restart the service" >&2
                  exit 0
            else
                  mkdir "${HISTORY_DIR}"
                  touch "${HOSTORY_FILE}"
            fi
      fi
}

save_brightnes() {         

      create_history_file
      if [ ! -f "${HISTORY_FILE}" ]; then
            echo "ERROR: ${HISTORY_FILE} exists but is not a regular file" >&2
            exit 1

      elif is_on_readonly_fs "${HISTORY_FILE}"; then
            echo "${HISTORY_FILE} is under a read only mountpoint. Abort" >&2
            echo "resolve the issue and restart the service" >&2
            exit 0

      elif ! is_overwriteable "${HISTORY_FILE}"; then
            echo "can not overwrite ${HISTORY_FILE}, \`a' or \`i' attributes are set. Abort" >&2
            echo "resolve the issue and restart the service" >&2
            exit 0
      fi

      read_file "${BRT_FILE}" > "${HISTORY_FILE}" || exit 1
}

# the real work starts here
if [ "$(id -u)" -ne 0 ]; then
      echo "You must run this with root privilages" >&2
      exit 1
fi

if [ ! -d "${PREFIX}" ]; then
      echo "${PREFIX} does not exists or is not a directory" >&2
      exit 1
fi

if [ ! -f "${BRT_FILE}" ]; then
      echo "${BRT_FILE} does not exist. make sure /sys is mounted, you have an intel graphics and backlight       subsystem of kernel is avialable" >&2
      exit 1
fi

last_brightness="$(read_file "${HISTORY_FILE}" 2>/dev/null || true)"
max_brightness="$(read_file "${MAX_BRT_FILE}")"

if [[ "${last_brightness}" =~ ^[0-9]+$ ]] && \
    [[ "${max_brightness}" =~ ^[0-9]+$ ]] && \
    [ "${last_brightness}" -le "${max_brightness}" ]; then
      echo "${last_brightness}" > "${BRT_FILE}"
fi
unset max_brightness last_brightness

while true; do
      save_brightness
      sleep "${INTERVAL}"
done
اسکریپت بالا رو امتحان نکردم. خودتون امتحان کنید و نتیجه رو بگید. اسکریپت بالا حتما باید با bash اجرا بشه.

نقل‌قول
اگه این اسکریپت رو به عنوان یه سرویس تنظیم کنم بدون مشکل میتونه کار کنه؟ نمیخواد دسترسی خاصی بهش بدم؟
دسترسی اجرایی بهش بدید. می‌تونید بذاریدش توی این مسیر
/usr/local/sbin
مسیر بالا توسط مدیربسته مدیریت نمیشه. کلا دایرکتوری /usr/local/ و زیر دایرکتوری‌های اون، توسط مدیر بسته مدیریت نمیشن و برای کاربر یا برنامه‌های جدا هست تا بتونند چیز‌های خودشون رو اونجا قرار بدند. مسیر‌های اونجا داخل متغییر‌های محیطی مرتبط هستند تا نیازی نباشه اونها رو تغییر داد. مثلا دوتا مسیر زیر، توی PATH هستند:
/usr/local/bin
/usr/local/sbin

ممکنه دومی، توی بعضی توزیع‌ها (مثل دبیان) ، به طور پیش‌فرض فقط توی PATH روت باشه
عنوان: پاسخ : انجام بعضی دستورات بصورت دستی
ارسال شده توسط: EnriqueTTE در 25 بهمن 1400، 08:57 ب‌ظ
$ ls -l /sys/class/backlight/intel_backlight/

total 0
-r--r--r-- 1 root root  4096 Feb 14 20:50 actual_brightness
-rw-r--r-- 1 root root  4096 Feb 14 20:43 bl_power
-rw-rw-r-- 1 root video 4096 Feb 14 20:45 brightness
lrwxrwxrwx 1 root root     0 Feb 14 20:43 device -> ../../card0-eDP-1
-r--r--r-- 1 root root  4096 Feb 14 20:43 max_brightness
drwxr-xr-x 2 root root     0 Feb 14 20:50 power
-r--r--r-- 1 root root  4096 Feb 14 20:50 scale
lrwxrwxrwx 1 root root     0 Feb 14 20:43 subsystem -> ../../../../../../../class/backlight
-r--r--r-- 1 root root  4096 Feb 14 20:43 type
-rw-r--r-- 1 root root  4096 Feb 14 20:42 uevent

$ groups
libvirt video wheel smjt2000

اسکریپت رو اجرا کردم و با این ارور مواجه شدم
line 13: basedir: command not foundمربوط میشه به این خط
HANDELER_DIR="$(basedir /sys/class/backlight/intel_backlight/)"
من bash بلد نیستم(فقط درحد دستورای ساده ترمینال) و نمیدونم باید چکار کنم، شاید یادتون رفته این متغیر رو تعریف کنید یا شاید یه کلمه کلیدی باشه.
عنوان: پاسخ : انجام بعضی دستورات بصورت دستی
ارسال شده توسط: Dragon- در 25 بهمن 1400، 09:43 ب‌ظ
با dirname جایگزین کنید. اشتباهی نوشتم basedir
عنوان: پاسخ : انجام بعضی دستورات بصورت دستی
ارسال شده توسط: EnriqueTTE در 25 بهمن 1400، 09:53 ب‌ظ
با این ارور مواجه میشم. هرچی چک میکنم آدرس دهی توی اسکریپت درسته اما یه intel_backlight کم نوشته توی ارور
/sys/class/backlight/brightness does not exist. make sure /sys is mounted, you have an intel graphics and backlight subsystem of kernel is avialable
عنوان: پاسخ : انجام بعضی دستورات بصورت دستی
ارسال شده توسط: Dragon- در 25 بهمن 1400، 10:05 ب‌ظ
اسکریپت رو بیشتر بررسی کردم، توی این شرایط، اصلا لازم نیست جایی که /sys/class/backlight/intel/backlight/ به اون لینک شده رو بدونیم. متغییر HANDELER_DIR رو به این مقدار تغییر بدید.
HANDELER_DIR=/sys/class/backlight/intel_backlight
$ ls -l /sys/class/backlight/intel_backlight/

total 0
-r--r--r-- 1 root root  4096 Feb 14 20:50 actual_brightness
-rw-r--r-- 1 root root  4096 Feb 14 20:43 bl_power
-rw-rw-r-- 1 root video 4096 Feb 14 20:45 brightness
lrwxrwxrwx 1 root root     0 Feb 14 20:43 device -> ../../card0-eDP-1
-r--r--r-- 1 root root  4096 Feb 14 20:43 max_brightness
drwxr-xr-x 2 root root     0 Feb 14 20:50 power
-r--r--r-- 1 root root  4096 Feb 14 20:50 scale
lrwxrwxrwx 1 root root     0 Feb 14 20:43 subsystem -> ../../../../../../../class/backlight
-r--r--r-- 1 root root  4096 Feb 14 20:43 type
-rw-r--r-- 1 root root  4096 Feb 14 20:42 uevent

$ groups
libvirt video wheel smjt2000
به نظر میاد اون قانون udev کارش رو درست انجام داده. شما هم عضو گروه video هستید.
آخر به این سوال جواب ندادید، می‌تونید بدون دسترسی روت، روشنایی رو تغییر بدید؟ سعی کنید دستی با echo مقدار روشنایی رو توی اون فایل بنویسید و ببینید چی میشه.
عنوان: پاسخ : انجام بعضی دستورات بصورت دستی
ارسال شده توسط: EnriqueTTE در 25 بهمن 1400، 11:12 ب‌ظ
اجرا کردم بدون هیچ پیام و اخطاری اجرا شد اما هیچ فایلی رو توی /var/lib/ درست نکرد.
آره بدون sudo میتونم مقدار روشنایی رو تغییر بدم.
عنوان: پاسخ : انجام بعضی دستورات بصورت دستی
ارسال شده توسط: sajadspeed در 26 بهمن 1400، 10:51 ق‌ظ
من از qtile استفاده میکنم و برای تنظیم روشنایی و صدا باید از یسری دستور استفاده کنم.
چجوری میتونم تنظیم کنم با فشردن یه کلید یه دستور اجرا بشه؟
این دستور برای افزایش میزان روشنایی استفاده میشه.
sudo brightnessctl -d "intel_backlight" set +5%میخوام جوری باشه که با فشردن کلید XF86MonBrightnessUp روشنایی زیاد بشه و ...
اگر بشه بدون sudo این کارو کرد خیلی عالی میشه.

سلام ببینید راستیاتس من از LXQt استفاده می‌کنم و این دسکتاپ باگ داشت در کم و زیاد کردن نور با کلید‌های بالای لپ‌تاپ، مجبور شدم دقیقا همین مثالی که زدید را پیاده‌سازی کنم، البته من تخصصی ندارم در لینوکس فقط کاری که کردم توضیح میدم:
اول دستور افزایش یا کاهش نور مثل همون چیزی که گفتید پیدا کردم و بعد داخل قسمت شورت‌کات‌های lXQt برای کلیدهای تنظیم نور دستور براش نوشتم، فکر کنم با یک سرچ ساده بتونید فایل کانفیگش پیدا کنید برای خودتون. تا این جا درست بود فقط مشکل این بود که باید با sudo اجرا میشد و خوب این امکان‌پذیر نبود، پس فایل:
/sys/class/backlight/intel_backlight/brightnessکه در واقع عددی که درش درج می‌شه میزان روشنایی مانیتور هست را دسترسیش به کاربر فعلی هم دادم. همین، میدونم شاید اصولی نباشه ولی من اینطوری مشکلم حل کردم.
عنوان: پاسخ : انجام بعضی دستورات بصورت دستی
ارسال شده توسط: Dragon- در 26 بهمن 1400، 11:40 ب‌ظ
اجرا کردم بدون هیچ پیام و اخطاری اجرا شد اما هیچ فایلی رو توی /var/lib/ درست نکرد.
وقتی اجرا شد، جایی به پایان رسید؟ خط فرمان رو به شما برگردوند؟
مقدار روشنایی رو توی فایل زیر ذخیره می‌کنه.
/var/lib/backlight_history/last_brightness
نقل‌قول
آره بدون sudo میتونم مقدار روشنایی رو تغییر بدم.
پس دیگه می‌تونید اون تنظیمی که برای sudo انجام دادید رو به حالت قبل برگردونید.
نقل‌قول
اسکریپت رو ذخیره کردم و به همه کاربرها اجازه دادم با sudo بدون رمز بتونن اجراش کنن و توی تنظیمات qtile براش کلید هارو تعریف کردم و داره کار میکنه.
عنوان: پاسخ : انجام بعضی دستورات بصورت دستی
ارسال شده توسط: EnriqueTTE در 27 بهمن 1400، 10:57 ق‌ظ
وقتی اجرا شد، جایی به پایان رسید؟ خط فرمان رو به شما برگردوند؟
مقدار روشنایی رو توی فایل زیر ذخیره می‌کنه.
/var/lib/backlight_history/last_brightness
مثل اینکه یجایی به مشکل میخوره. خط فرمان رو بلافاصله تحویل میده بدون هیچ پیغامی. starship وقتی دستوری با ارور مواجه بشه یه ضربدر قرمز نشون میده و با اجرای این دستور این علامتو بهم نشون میده.
نمیدونم ربطی داره یا نه، فایل توی home کاربره و من اجراش میکنم.
عنوان: پاسخ : انجام بعضی دستورات بصورت دستی
ارسال شده توسط: Dragon- در 27 بهمن 1400، 12:58 ب‌ظ
اسکریپت رو باز کنید و اون خطی که با set شروع میشه رو به set -ex تغییر بدید. بعد دوباره اسکریپت رو اجرا کنید. احتمالا خروجی خیلی بلندی میده. اون رو اینجا قرار بدید. شاید سرویس pastebin هم گزینه مناسبی باشه. اینجوری می‌تونید تمام خروجی رو بفرستید به pastebin بفرستید.
path/to/script 2>&1 | nc -N paste.ubuntu.ir 1337
عنوان: پاسخ : انجام بعضی دستورات بصورت دستی
ارسال شده توسط: EnriqueTTE در 27 بهمن 1400، 01:53 ب‌ظ
اسکریپت رو باز کنید و اون خطی که با set شروع میشه رو به set -ex تغییر بدید. بعد دوباره اسکریپت رو اجرا کنید. احتمالا خروجی خیلی بلندی میده. اون رو اینجا قرار بدید. شاید سرویس pastebin هم گزینه مناسبی باشه. اینجوری می‌تونید تمام خروجی رو بفرستید به pastebin بفرستید.
path/to/script 2>&1 | nc -N paste.ubuntu.ir 1337

خروجی اجرا (https://paste.ubuntu.ir/yahy)
عنوان: پاسخ : انجام بعضی دستورات بصورت دستی
ارسال شده توسط: Dragon- در 27 بهمن 1400، 03:01 ب‌ظ
این خط رو:
last_brightness="$(read_file "${HISTORY_FILE}")"با این عوض کنید:
last_brightness="$(read_file "${HISTORY_FILE}" 2>/dev/null || true)"

خط بالا، آخرای اسکریپت قرار داره.
عنوان: پاسخ : انجام بعضی دستورات بصورت دستی
ارسال شده توسط: EnriqueTTE در 27 بهمن 1400، 03:15 ب‌ظ
چندتا ارور و غلط املایی داشت درست کردم و الان با این (https://paste.ubuntu.ir/gkra) مواجه شدم
عنوان: پاسخ : انجام بعضی دستورات بصورت دستی
ارسال شده توسط: Dragon- در 27 بهمن 1400، 05:30 ب‌ظ
یه سری تغییرات روی اسکریپت دادم. اون ارسال که اسکریپت رو همراهش گذاشته بودم، ویرایش کردم. دوباره اون اسکریپت رو کپی و امتحان کنید.
عنوان: پاسخ : انجام بعضی دستورات بصورت دستی
ارسال شده توسط: EnriqueTTE در 27 بهمن 1400، 05:54 ب‌ظ
بنظر کار میکنه. هیج اروری نداد. فایل رو هم ایجاد کرد.
خب الان باید یجوری به عنوان سرویس راه اندازیش کنم..   :-k
عنوان: پاسخ : انجام بعضی دستورات بصورت دستی
ارسال شده توسط: Dragon- در 27 بهمن 1400، 09:05 ب‌ظ
یکم بیشتر امتحانش کنید. مثلا روشنایی رو تغییر بدید، ۱۰ ثانیه منتظر بمونید و بعد اون فایلی که می‌سازه رو بررسی کنید.
می‌تونید با تغییر مقدار متغیر INTERVAL، وقفه‌ای که بین اون، مقدار روشنایی خونده میشه رو تغییر بدید. به طور پیش‌فرض 10 هست. شاید 5 بهتر باشه.
حواستون باشه مقداری که به INTERVAL می‌دید، یه عدد باشه. در غیر اینصورت خطا می‌گیرید. واحد اندازه‌گیری این متغیر، ثانیه هست.

از چه init system استفاده می‌کنید؟
عنوان: پاسخ : انجام بعضی دستورات بصورت دستی
ارسال شده توسط: EnriqueTTE در 27 بهمن 1400، 10:29 ب‌ظ
فایل تغییر میکنه و درست کار میکنه.
فقط مونده بتونم یه سرویس باهاش درست کنم تا ببینم وقتی سیستم بوت میشه میتونه روشنایی رو تنظیم کنه یا نه.
از OpenRC استفاده میکنم.
خودم دارم روش کار میکنم بتونم سرویسش رو بسازم. تا الان بد نبوده.
عنوان: پاسخ : انجام بعضی دستورات بصورت دستی
ارسال شده توسط: EnriqueTTE در 27 بهمن 1400، 10:41 ب‌ظ
اولین آزمایش رو با موفقیت پشت سر گذاشت و تونست بعد از خاموش و روشن کردن سیستم روشنایی رو مثل حالت قبلش تنظیم کنه.
خیلی ممنون.
عنوان: پاسخ : انجام بعضی دستورات بصورت دستی
ارسال شده توسط: EnriqueTTE در 28 بهمن 1400، 04:27 ب‌ظ
من میخوام با لپ تاپ بازی کنم اما بخاطر یسری مشکلات نمیتونم با kde این کارو بکنم و باید با qtile  بازی کنم.
چون لپ تاپم گرافیکش ضعیفه باید رزولوشن رو بیارم پایین. مشکل اینجاست اگه فقط توی بازی رزولوشن رو تغییر بدم فقط سایز پنجره تغییر میکنه و اگه موس رو حرکت بدم از پنجره میزنه بیرون و نمیشه درست بازی کرد. باید رزولوشن سیستم رو هم تغییر بدم تا بتونم بازی کنم.
کلی سرچ کردم تا بتونم این کارو انجام بدم اما با ارور مواجه میشم. هرچی سرچ کردم نتونستم راه حلی برای رفع مشکل پیدا کنم.
$ xrandr
Screen 0: minimum 16 x 16, current 1920 x 1080, maximum 32767 x 32767
XWAYLAND0 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 310mm x 170mm
   1920x1080     59.96*+
   800x600_60.00  59.86 
   800x600       59.86

$ xrandr --output XWAYLAND0 --mode 800x600
X Error of failed request:  BadMatch (invalid parameter attributes)
  Major opcode of failed request:  140 (RANDR)
  Minor opcode of failed request:  7 (RRSetScreenSize)
  Serial number of failed request:  22
  Current serial number in output stream:  23

$ sudo xrandr --output XWAYLAND0 --mode 800x600
Authorization required, but no authorization protocol specified
Can't open display :1

# xrandr
Authorization required, but no authorization protocol specified
Can't open display :1


فقط رزولوشن 1080 رو داشت دوتای دیگه رو خودم اضافه کردم.
همونطور که میبینید حتی وقتی با کاربر root فقط میخوام لیست بگیرم بهم ارور میده.
عنوان: پاسخ : انجام بعضی دستورات بصورت دستی
ارسال شده توسط: behzad121 در 28 بهمن 1400، 04:48 ب‌ظ
من میخوام با لپ تاپ بازی کنم اما بخاطر یسری مشکلات نمیتونم با kde این کارو بکنم و باید با qtile  بازی کنم.
چون لپ تاپم گرافیکش ضعیفه باید رزولوشن رو بیارم پایین. مشکل اینجاست اگه فقط توی بازی رزولوشن رو تغییر بدم فقط سایز پنجره تغییر میکنه و اگه موس رو حرکت بدم از پنجره میزنه بیرون و نمیشه درست بازی کرد. باید رزولوشن سیستم رو هم تغییر بدم تا بتونم بازی کنم.
کلی سرچ کردم تا بتونم این کارو انجام بدم اما با ارور مواجه میشم. هرچی سرچ کردم نتونستم راه حلی برای رفع مشکل پیدا کنم.
$ xrandr
Screen 0: minimum 16 x 16, current 1920 x 1080, maximum 32767 x 32767
XWAYLAND0 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 310mm x 170mm
   1920x1080     59.96*+
   800x600_60.00  59.86 
   800x600       59.86

$ xrandr --output XWAYLAND0 --mode 800x600
X Error of failed request:  BadMatch (invalid parameter attributes)
  Major opcode of failed request:  140 (RANDR)
  Minor opcode of failed request:  7 (RRSetScreenSize)
  Serial number of failed request:  22
  Current serial number in output stream:  23

$ sudo xrandr --output XWAYLAND0 --mode 800x600
Authorization required, but no authorization protocol specified
Can't open display :1

# xrandr
Authorization required, but no authorization protocol specified
Can't open display :1


فقط رزولوشن 1080 رو داشت دوتای دیگه رو خودم اضافه کردم.
همونطور که میبینید حتی وقتی با کاربر root فقط میخوام لیست بگیرم بهم ارور میده.
چرا جلوی آپشن output نوشتید XWAYLAND0 ؟ جلوی اون یا بنویسید X11 یا wayland و دوباره امتحان کنید.
عنوان: پاسخ : انجام بعضی دستورات بصورت دستی
ارسال شده توسط: Dragon- در 28 بهمن 1400، 07:58 ب‌ظ
از wayland استفاده می‌کنید؟ شاید مشکل از این باشه. اگه اینطوری هست، سعی کنید با x11 امتحان کنید و ببینید فرقی می‌کنه یا نه.
عنوان: پاسخ : انجام بعضی دستورات بصورت دستی
ارسال شده توسط: EnriqueTTE در 28 بهمن 1400، 10:16 ب‌ظ
از wayland استفاده می‌کنید؟ شاید مشکل از این باشه. اگه اینطوری هست، سعی کنید با x11 امتحان کنید و ببینید فرقی می‌کنه یا نه.
موقع لاگین سه تا گزینه دارم.
qtile(wayland) - plasma(X11) - qtile
برای qtile فقط گزینه wayland کار میکنه، گزینه دیگه هیج اتفاقی نمیوفته. فقط میتونم موس رو تکون بدم، نه کلیک کردن نه حتی خاموش کردن کار نمیکنه.
فکر کنم XWayland هست. هم برای wayland هم برای xwayland و هم برای OpenRC سرچ کردم اما جوابی نگرفتم.
اول فکر کردم شاید از تنظیمات kde پیروی کنه چون وقتی آرتیکس رو نصب کردم اول kde رو نصب و تنظیم کردم و بعد از مدتی qtile اما اصلا تفاوتی نداره.
عنوان: پاسخ : انجام بعضی دستورات بصورت دستی
ارسال شده توسط: Dragon- در 01 اسفند 1400، 04:17 ب‌ظ
فکر کنم اگه qtile رو با x11 اجرا کنید، درست بشه. کامل مطمئن نیستم.
عنوان: پاسخ : انجام بعضی دستورات بصورت دستی
ارسال شده توسط: EnriqueTTE در 01 اسفند 1400، 05:24 ب‌ظ
شما میدونید چجوری میشه اینکارو کرد یا باید از خود توسعه دهنده بپرسم؟
عنوان: پاسخ : انجام بعضی دستورات بصورت دستی
ارسال شده توسط: Dragon- در 03 اسفند 1400، 02:05 ق‌ظ
وارد محیط console بشید. معمولی tty2 تا tty6 فقط محیط متنی هست و مناسبه. بعد وارد کاربر خودتون بشید و این دستور رو اجرا کنید و ببینید چی میشه.
startx "/usr/bin/qtile start"اون علامت‌های " رو حتما بذارید.
اگه دستور startx وجود نداشت، بسته xorg-xinit رو نصب کنید.
عنوان: پاسخ : انجام بعضی دستورات بصورت دستی
ارسال شده توسط: EnriqueTTE در 11 اسفند 1400، 09:34 ق‌ظ
وارد محیط console بشید. معمولی tty2 تا tty6 فقط محیط متنی هست و مناسبه. بعد وارد کاربر خودتون بشید و این دستور رو اجرا کنید و ببینید چی میشه.
startx "/usr/bin/qtile start"اون علامت‌های " رو حتما بذارید.
اگه دستور startx وجود نداشت، بسته xorg-xinit رو نصب کنید.
یادم رفت اینو انجام بدم.
عکس رو گذاشتم
عنوان: پاسخ : انجام بعضی دستورات بصورت دستی
ارسال شده توسط: Dragon- در 11 اسفند 1400، 11:46 ب‌ظ
دستور رو با کاربر روت اجرا نکنید.
این یکی رو هم امتحان کنید و ببینید چی میشه.
startx "$(command -v qtile) -- start"اگه نشد، باید جست‌و‌جو کنید که چجوری یه برنامه رو میشه با startx یا xinit اجرا کرد.
عنوان: پاسخ : انجام بعضی دستورات بصورت دستی
ارسال شده توسط: EnriqueTTE در 12 اسفند 1400، 11:24 ق‌ظ
موقعی که گراب بالا اومد تنظیم کردم وارد محیط متنی بشه و اونجا دستور رو زدم.
عنوان: پاسخ : انجام بعضی دستورات بصورت دستی
ارسال شده توسط: Dragon- در 12 اسفند 1400، 01:48 ب‌ظ
دقیقا چی به خط فرمان کرنل دادید؟
عنوان: پاسخ : انجام بعضی دستورات بصورت دستی
ارسال شده توسط: EnriqueTTE در 12 اسفند 1400، 03:14 ب‌ظ
توی تنظیمات، جایی که نوشته linux آخرش نوشتم init=/bin/bash و سیستم رو بوت کردم. بعد اینو زدم که خودتون گفتید.
startx "/usr/bin/qtile start"
عنوان: پاسخ : انجام بعضی دستورات بصورت دستی
ارسال شده توسط: Dragon- در 12 اسفند 1400، 08:36 ب‌ظ
چرا به جای init اصلی، bash رو اجرا کردید؟ لازم نیست برای اینکه وارد محیط console بشید، اینکار رو انجام بدید. می‌تونید وقتی که سیستم توی سطح اجرایی پیش‌فرض بوت شده (توی شرایط شما، احتمالا 5)، خیلی راحت با فشار دادن ctrl + alt +fX وارد tty شماره X بشید. معمولا به طور پیش‌فرض، از tty شماره 1 تا 7 فعاله.
توی بعضی سیستم‌ها، محیط گرافیکی روی tty1 بالا میاد (مثل اوبونتو و اکثر توزیع‌هایی که systemd دارند) و توی بعضی دیگه از توزیع‌ها، روی tty7، مثل دبیان.
ممکنه توی یه توزیع، محیط گرافیکی روی tty7 بالا بیاد و tty1 هم توسط چیز دیگه (مثلا خود مدیرپنجره) اشغال بشه. توی دبیان ۱۱ به همراه sddm که اینطوری هست.

با توجه به اینها، از tty2 تا tt6 باید محیط console باشه و شما باید بتونید با دادن نام‌کاربری و رمزعبور، وارد حساب کاربر مورد نظر بشید.
با ctrl + alt + f2 می‌تونید وارد tty2 بشید. بعد از این، وارد کاربر خودتون بشید و دستوری که نوشتم رو اجرا کنید و ببینید چی میگه.

توی بعضی لپ‌تاپ‌ها، کلید‌های f1 تا f12 عملکرد متفاوتی دارند و ممکنه صدا یا نور صفحه رو کم زیاد و زیاد کنند یا لپ‌تاپ رو ببرند توی حالت پرواز و اینجور چیز‌ها. در تین شرایط یه کلید با اسم fn باید باشه که با فشار دادنش، بتونید عملکرد اصلی کلید‌های f1 تا f12 رو بدست بیارید.
عنوان: پاسخ : انجام بعضی دستورات بصورت دستی
ارسال شده توسط: EnriqueTTE در 14 اسفند 1400، 08:29 ب‌ظ
زدم و اینم خروجی
شرمنده بابت کیفیت عکس، مانیتور شفاف همینه.
سعی کردم با زدن دستور زیر خروجی رو بریزم توی فایل اما بازم خروجی رو نشون داد:
startx "/usr/bin/qtile stat" 2>&1 | tee startx-qtile.log
X.Org X Server 1.21.1.3
X Protocol Version 11, Revision 0
Current Operating System: Linux Enriquette 5.16.10-artix1-1 #1 SMP PREEMPT Thu, 17 Feb 2022 11:05:36 +0000 x86_64
Kernel command line: BOOT_IMAGE=/vmlinuz-linux root=UUID=4a14f155-9a7a-4e05-8424-10b0fa7ffcbb rw loglevel=3 quiet
 
Current version of pixman: 0.40.0
Before reporting problems, check http://wiki.x.org
to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, (==) default setting,
(++) from command line, (!!) notice, (II) informational,
(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: "/home/smjt2000/.local/share/xorg/Xorg.1.log", Time: Sat Mar  5 20:19:36 2022
(==) Using system config directory "/usr/share/X11/xorg.conf.d"
xf86EnableIO: failed to enable I/O ports 0000-03ff (Operation not permitted)
The XKEYBOARD keymap compiler (xkbcomp) reports:
> Warning:          Could not resolve keysym XF86EmojiPicker
Errors from xkbcomp are not fatal to the X server
xinit: Unable to run program "/usr/bin/qtile start": No such file or directory
Specify a program on the command line or make sure that /usr/bin
is in your path.

xinit: connection to X server lost

waiting for X server to shut down (II) Server terminated successfully (0). Closing log file.

عنوان: پاسخ : انجام بعضی دستورات بصورت دستی
ارسال شده توسط: Dragon- در 15 اسفند 1400، 01:34 ب‌ظ
من طبق راهنمای ویکی آرچ گفتم و اونجا گفته بود فایل اجرایی رو به همراه آرگومان‌ها و آپشن‌هاش داخل "" بذارید. ولی الان اسکریپت startx رو بررسی کردم و به نظر میاد آپشن‌ها و آرگومان‌های فایل اجرایی رو جدا از خود فایل اجرایی بررسی و پردازش می‌کنه. اون "" رو بردارید. یعنی دستور باید این بشه.
startx /usr/bin/qtile startدر ضمن لازم نیست لاگ‌ها رو از روی صفحه بنویسید. اگه دقت کنید، خود xorg لاگ‌ها رو ذخیره می‌کنه و گفته کجا می‌تونید پیداشون کنید.
توی این دایرکتوری باید قرار داشته باشند.
${HOME}/.local/share/xorgبه جای {HOME}$ دایرکتوری هوم شما قرار می‌گیره. متغیری به اسمHOME وجود داره و به هوم شما اشاره می‌کنه.
عنوان: پاسخ : انجام بعضی دستورات بصورت دستی
ارسال شده توسط: EnriqueTTE در 15 اسفند 1400، 10:29 ب‌ظ
با sudo اجرا شد اما کانفیگ qtile اجرا نشد.
بصورت خام اجرا شد نه اونجوری که تنظیمش کرده بودم.
عنوان: پاسخ : انجام بعضی دستورات بصورت دستی
ارسال شده توسط: Dragon- در 15 اسفند 1400، 11:43 ب‌ظ
وقتی با sudo اجراش می‌کنید، برای کاربر روت باز میشه. از اونجایی که qtile با کاربر روت باز شده، سعی می‌کنه کانفیگ‌ها رو توی هوم روت پیدا کنه، ولی این کانفیگ‌ها وجود نداره و qtile به صورت خام بالا میاد. چرا با کاربر خودتون اجراش نکردید؟ خطا میداد؟
عنوان: پاسخ : انجام بعضی دستورات بصورت دستی
ارسال شده توسط: EnriqueTTE در 16 اسفند 1400، 12:33 ب‌ظ
آره خطای دسترسی میداد. دفعه قبلی که با ( "" ) اجرا کردم این خطا رو نداد.
این دفعه خود qtile خطا داد که مربوط به دسترسی بود منم وقتی با sudo اجرا کردم بازش کرد اما کانفیگ های خودمو نخوند.
عنوان: پاسخ : انجام بعضی دستورات بصورت دستی
ارسال شده توسط: Dragon- در 16 اسفند 1400، 03:54 ب‌ظ
qtile چه خطایی میداد؟
عنوان: پاسخ : انجام بعضی دستورات بصورت دستی
ارسال شده توسط: EnriqueTTE در 16 اسفند 1400، 04:40 ب‌ظ
اینقدری بهم ریخته‌اس که فکر کردم خطای دسترسی مربوط به qtile باشه. فکر کنم مربوط به کیبورد بود.
دستور قبلی هم که با ( "" ) بود رو با sudo اجرا کردم خطا داد.
این خطای qtile که ریختمش داخل فایل مرتب باشه.
2022-03-07 16:33:57,233 ERROR libqtile start.py:start():L94 Qtile crashed
Traceback (most recent call last):
  File "/home/smjt2000/.local/lib/python3.10/site-packages/libqtile/scripts/start.py", line 92, in start
    q.loop()
  File "/home/smjt2000/.local/lib/python3.10/site-packages/libqtile/core/manager.py", line 190, in loop
    asyncio.run(self.async_loop())
  File "/usr/lib/python3.10/asyncio/runners.py", line 44, in run
    return loop.run_until_complete(main)
  File "/usr/lib/python3.10/asyncio/base_events.py", line 641, in run_until_complete
    return future.result()
  File "/home/smjt2000/.local/lib/python3.10/site-packages/libqtile/core/manager.py", line 215, in async_loop
    self.load_config(initial=True)
  File "/home/smjt2000/.local/lib/python3.10/site-packages/libqtile/core/manager.py", line 132, in load_config
    self._process_screens(reloading=not initial)
  File "/home/smjt2000/.local/lib/python3.10/site-packages/libqtile/core/manager.py", line 340, in _process_screens
    scr._configure(self, i, x, y, w, h, grp, reconfigure_gaps=reconfigure_gaps)
  File "/home/smjt2000/.local/lib/python3.10/site-packages/libqtile/config.py", line 307, in _configure
    i._configure(qtile, self)
  File "/home/smjt2000/.local/lib/python3.10/site-packages/libqtile/bar.py", line 288, in _configure
    self.drawer.clear(self.background)
  File "/home/smjt2000/.local/lib/python3.10/site-packages/libqtile/backend/x11/drawer.py", line 179, in clear
    self._check_xcb()
  File "/home/smjt2000/.local/lib/python3.10/site-packages/libqtile/backend/x11/drawer.py", line 124, in _check_xcb
    self._xcb_surface = self._create_xcb_surface()
  File "/home/smjt2000/.local/lib/python3.10/site-packages/libqtile/backend/x11/drawer.py", line 90, in _create_xcb_surface
    surface = cairocffi.XCBSurface(
  File "/home/smjt2000/.local/lib/python3.10/site-packages/cairocffi/xcb.py", line 37, in __init__
    p = cairo.cairo_xcb_surface_create(
AttributeError: cffi library 'libcairo.so.2' has no function, constant or global variable named 'cairo_xcb_surface_create'
عنوان: پاسخ : انجام بعضی دستورات بصورت دستی
ارسال شده توسط: Dragon- در 21 اسفند 1400، 01:42 ق‌ظ
تنظیمات qtile مشکلی نداره؟
عنوان: پاسخ : انجام بعضی دستورات بصورت دستی
ارسال شده توسط: EnriqueTTE در 21 اسفند 1400، 03:13 ب‌ظ
تنظیمات qtile مشکلی نداره؟
qtile تنظیم خاصی نداره. فقط یه فایل پایتونه که باید تنظیمش کرد و بیشترش هم برای چیدن قسمت های مختلف پنل هست.
عنوان: پاسخ : انجام بعضی دستورات بصورت دستی
ارسال شده توسط: Dragon- در 21 اسفند 1400، 03:49 ب‌ظ
می‌دونم پیکربندی اون، یه فایل پایتون هست. منظورم اینه که اون فایل مشکلی نداره، مثلا اشتباه نگارشی یا چیز‌های دیگه؟
عنوان: پاسخ : انجام بعضی دستورات بصورت دستی
ارسال شده توسط: EnriqueTTE در 21 اسفند 1400، 07:15 ب‌ظ
فکر نکنم مشکلی باشه. اگر جایی اشتباهی باشه یا کل کانفیگ رو نادیده میگیره و پیشفرض رو میاره بالا یا اون بخشی که اشتباه داره رو نادیده میگیره.
آخرین باری که واردش شدم مشکلی ندیدم.
عنوان: پاسخ : انجام بعضی دستورات بصورت دستی
ارسال شده توسط: Dragon- در 21 اسفند 1400، 08:27 ب‌ظ
نمی‌دونم مشکل از چیه. وقتی qtile رو به این شکل اجرا می‌کنید، کرش می‌کنه، توی خطا گفته. اولش.