شخصی سازی Dmenu

میخواستم توی dmenu یکم تغییراتی بدم. مثل اینکه فایل config وجود نداره و از این رو چجوری میشه بنوعی شخصی سازی کرد؟ مثلا امکانش هست نام برنامه هارو توی dmenu تغییر داد؟

همچنین
بعضی از برنامه هارو dmenu تشخیص نمیده! شاید فایل کانفیگی وجود داشت راحت تر بود

1 پسندیده

فکر نکنم اینطوری کار کنه ها!

در کل dmenu فرقی با ترمینالی که توش کامند میزنید نداره. فقط فرقش اینه که STDOUT و STDERR نشون نمیده. (احتمالا میفرسته به /dev/null)
برای اینکه اسم برنامه تغییر کنه میتونید یه لینک ازش بسازید. برای اینکه یه برنامه‌ی جدید به اون لیست اضافه بشه هم میتونید همینکارو انجام بدید.

مثلا من بلندر رو از وبسایت خودش دانلود میکنم و میریزمش توی /usr/opt/blender و بعد یه لینک از فایل اجراییش میسازم به این شکل:

ln -s /opt/blender/blender /usr/local/bin/blender

و به این شکل، میتونم توی ترمینال یا dmenu رانش کنم.


پ.ن:
سیستم کلا اینطوریه که وقتی یه کامندی میزنیم، ترمینال (shell, bash, zsh یا هرچی) میره متغیری به نام $PATH رو نگاه میکنه ببینه همچین فایلی توی دایکتوریهایی که توی $PATH هستن وجود داره و executable هست یا نه.
حالا شما میتونید یه دایرکتوری داشته باشید مثلا ~/Downloads/blender و اونو اضافه کنید به $PATH یا میتونید فایلتون رو هرجایی که هست، با ln -s ازش لینک بسازید توی یکی از$PATHها. اینا PATHهای سیستم من هستن:

─$ echo $PATH
/home/pouya/.cargo/bin:/opt/graalvm/bin:/usr/local/bin:/usr/bin:/bin:/usr/games

مسیر چندتا دایرکتوریه که با : از هم جدا شدن. برای شما هم به احتمال خیلی زیاد دقیقا مثل همینه فقط ۲تای اول توش نیست.
برای اینکه یه مسیر جدید به این مسیرها اضافه کنید، هم میتونید همچین کامندی بزنید:

export PATH=/directory/i/want:$PATH
# or
export PATH=$PATH:/directory/i/want

(فرق این ۲تاخط توی اولیتشونه)

و وقتی ترمینال رو ببندید و دوباره باز کنید (یا یه ترمینال دیگه باز کنید) این تغییرات ریست میشه و دیگه کار نمیکنه.
اگه میخواید دائمی باشه، میتونید توی یکی از فایلهایی که ترمینالتون موقع اجرا شدن نگاهش میکنه اضافش کنید مثلا ~/.zshrc اگه از zsh استفاده میکنید.

1 پسندیده

واقعا ممنونم جواب بسیار کاملی دادین

در این راستا پروژه Rofi رو هم پیدا کردم که بنظر جالب میاد.

1 پسندیده

الآن که گفتی یادم افتاد که به کانفیگهای i3 اضافه کرده بودمش ولی فقط یه روز ازش استفاده کردم :grinning:

bindsym $mod+d exec dmenu_run
bindsym $mod+n exec rofi -lines 8 -padding 18 -width 60 -location 0 -show drun -sidebar-mode -columns 3 -font 'Fira Code 9'

شاید باید key binding این دوتا رو با هم عوض کنم، شاید باعث بشه یه مدت ازش استفاده کنم ببینم چطوره.


این یه لینک خوبه که یه کم درمورد ریدایرکت کردن stdout و stderr به /dev/null توضیح داده. توی یه سری از shell script ها از این کامند استفاده میکنن برای اینکه وقتی اجراشون میکنیم پیغامهای اضافی رو نشونمون نده.

“I didn’t give a shit about what the Resident was saying, so I simply redirected everything he said to /dev/null.”
– Shaka Zulu

1 پسندیده