ওয়াইনের সাথে সমস্ত ফাইলের প্রকারের সাথে সম্পর্কিত নেটিভ অ্যাপ্লিকেশনটি কীভাবে যুক্ত করা যায়?


8

এটি একটি একক ফাইল টাইপের জন্য সহজেই সম্পন্ন করা হয় , যেমন ওয়াইনের মধ্যে কোনও ফাইল টাইপ একটি স্থানীয় অ্যাপ্লিকেশনটির সাথে কীভাবে সংযুক্ত করা যায় তার উত্তর হিসাবে দেওয়া হয়েছে ? , .regপছন্দসই ফাইল টাইপের জন্য একটি তৈরি করে । তবে এটি কেবল এভিআইয়ের জন্য। আমি কয়েকটি ওয়াইন অ্যাপস ব্যবহার করি (uTorrent, Soulseek, Eudora, কয়েকটি নাম দেওয়ার জন্য) যা বিস্তৃত ফাইল চালু করতে পারে। ইমেল সংযুক্তিগুলি, উদাহরণস্বরূপ, জেপিজি, ডক, পিডিএফ, পিপিএস হতে পারে ... এটি ইমেলের মাধ্যমে প্রাপ্ত বা টরেন্টে ডাউনলোড হতে পারে এমন সমস্ত ফাইলের সন্ধান করা অসম্ভব (এবং পছন্দসই নয়)।

তাই আমি আরও সাধারণ এবং বিস্তৃত হওয়ার জন্য একটি সমাধানের প্রয়োজন। নেটিভ অ্যাপ্লিকেশনটি বর্তমানে কনফিগার করা আছে তা সম্মানের জন্য আমার ফাইল অ্যাসোসিয়েশন প্রয়োজন। এবং আমি চাই এটি আমার সিস্টেমে কনফিগার করা সমস্ত ফাইল ধরণের জন্য করা হোক ।

সমাধানটি কীভাবে জেনারিক করা যায় তা আমি ইতিমধ্যে খুঁজে পেয়েছি। কেবলমাত্র চালু করা অ্যাপটির পরিবর্তে এর .regজন্য winebrowser:

[HKEY_CLASSES_ROOT\.pdf]
@="PDFfile"
"Content Type"="application/pdf"
[HKEY_CLASSES_ROOT\PDFfile\Shell\Open\command]
@="C:\\windows\\system32\\winebrowser.exe \"%1\""

Ive এটি পরীক্ষা করেছে এবং এটি সঠিকভাবে কাজ করে। ওয়াইনব্রোজার যেহেতু xdg-openব্যাকএন্ড হিসাবে ব্যবহার করে এবং আমার উইন্ডোজ পাথটিকে ইউনিক্সে রূপান্তর করে, তাই সঠিক (লিনাক্স) অ্যাপ্লিকেশনটি চালু করা হয়েছে।

সুতরাং ওয়াইনের রেজিস্ট্রিতে আমার একটি "ব্যাচ" আপডেটের দরকার আছে, একটি wine-update-associationsস্ক্রিপ্টের ধরণ যা আমি যখনই কোনও নতুন অ্যাপ্লিকেশন ইনস্টল করা যায় তখন চালাতে পারি। হতে পারে এমন একটি সরঞ্জাম যা:

  • আমার সিস্টেমে সমস্ত মাইম প্রকারের তালিকা তৈরি করুন যার সাথে ডিফল্ট, ইনস্টল থাকা অ্যাপ্লিকেশন যুক্ত রয়েছে
  • সমস্ত প্রয়োজনীয় তথ্য বের করুন (গ্লোব, মাইম প্রকার, ইত্যাদি)
  • উপরের ফর্ম্যাটে .REG ফাইলটি তৈরি করুন

জটিল অংশটি হ'ল উবুন্টু ১০.১০ এর পরে কীভাবে সমিতি করা হয় সে সম্পর্কে তথ্য খুঁজতে আমি প্রচুর অনুসন্ধান করেছি এবং ডকুমেন্টেশনটি খুব কম এবং বিভ্রান্তিকর, কমপক্ষে বলতে গেলে। ফ্রিডেস্কটপ.অর্গ.এর কোনও সম্পূর্ণ অনুমান নেই, এমনকি জিনোম ডক্সও অপ্রচলিত। এখনও অবধি আমি ৪ টি ফাইল সংগ্রহ করেছি যার মধ্যে অ্যাসোসিয়েশন তথ্য রয়েছে তবে আমি কোন ফাইল (বা কেন) ব্যবহার করতে হবে বা কীভাবে .regফাইলটি উত্পন্ন করতে তাদের ব্যবহার করতে হবে তা নির্বিঘ্ন im

~/.local/share/applications/mimeapps.list
~/.local/share/applications/miminfo.cache
/usr/share/applications/miminfo.cache
/etc/gnome/defaults.list

কোন সহায়তা, স্ক্রিপ্ট বা ব্যাখ্যা প্রশংসা করা হবে!

ধন্যবাদ!

উত্তর:


2

বছরগুলি পরে, আমি একটি ছোট ইউটিলিটি তৈরি করেছি যা মাইম ডাটাবেস (সিস্টেম এবং ব্যবহারকারী উভয়) স্ক্যান করে এবং উইন্ডোজ রেজিস্ট্রিতে সমস্ত পরিচিত নেটিভ মাইম-প্রকারগুলি নিবন্ধভুক্ত করে ।

xdg-openসেই মাইম টাইপের জন্য যদি কোনও ডিফল্ট (নেটিভ) অ্যাপ্লিকেশন থাকে তবে কোনও ফাইল খোলার জন্য এটি ব্যবহার করে, অন্যথায় packagekitসেই ফাইলটি হ্যান্ডেল করতে পারে এমন প্যাকেজ অনুসন্ধান করতে ব্যবহার করে (নটিলাস যা করে ঠিক তেমন)। সুতরাং আমার ইনস্টলড, নেটিভ অ্যাপ্লিকেশন রয়েছে এমন কেবলমাত্র এক্সটেনশানগুলির নিবন্ধকরণের প্রাথমিক প্রয়োজনের আর প্রয়োজন নেই। তবে স্ক্রিপ্টের প্রাথমিক সংস্করণ কেবল এই ধরণের ফিল্টার করেছিল। যে স্নিপেট এটি সম্ভব করেছে তা হ'ল:

perl -e '
    use strict; use warnings;
    use File::MimeInfo::Magic; use File::MimeInfo::Applications;
    while (my $line = <STDIN>) {
      chomp($line);
      my ($ext, $mime) = (split/\t/, $line);
      my ($def, @apps) = mime_applications_all($mime);
      print "$line\n" if ($def || @apps)
    }'

ডিফল্টরূপে আমার স্ক্রিপ্টটি শুধুমাত্র দেশীয় প্রকারগুলিতে নিবন্ধন করে যার উইন্ডোজ রেজিস্ট্রিতে কোনও হ্যান্ডলার নেই, তবে এটি এ জাতীয় সমিতিগুলিকে ওভাররাইডও করতে পারে (উদাহরণস্বরূপ, জেপিগ ফাইলগুলি ডিফল্ট গেকো ওয়াইন ব্রাউজারের পরিবর্তে নেটিভ ভিউয়ারে খোলা হয়)। উইন্ডোতে কোনও হ্যান্ডলার না থাকলেও এটি কিছু এক্সটেনশানটিকে এড়িয়ে যেতে পারে।

এটি ওয়াইনম্যানবিল্ডার-বান্ধব হওয়ার সর্বোত্তম চেষ্টা করে, এর অর্থ এটি তৈরি করা সমস্ত সমিতি ওয়াইনম্যানুবিল্ডার দ্বারা নেটিভ অ্যাসোসিয়েশন (বা এক্স-ওয়াইন-এক্সটেনশন মিমিটাইপস হিসাবে) প্রকাশিত হয় না, যা কুৎসিত এবং সম্ভাব্য লুপগুলির কারণ হবে। এটি খুব জটিল এবং এখনও নিখুঁত নয়, বিশেষত মিশ্র-কেস এক্সটেনশনগুলির সাথে (। সি এবং .c উদাহরণস্বরূপ)

এটি বলেছিল, আমি আশা করি এই স্ক্রিপ্টটি সবার জন্য সহায়ক is

https://github.com/MestreLion/wine-tools/blob/master/wine-import-extensions

উন্নতি স্বাগত!


আপনার স্ক্রিপ্ট বলে যে এটি সফল হয়েছে, তবে ওয়াইনে কিছুই আমার পক্ষে পরিবর্তিত হয়নি। কোনও বড় সমস্যা নেই, আমি Everythingনিজেই ওয়াইন অ্যাপটিতে অন্য একটি কাজ পেয়েছি , তবে আমি আপনাকে কেবল অবহিত করতে চেয়েছিলাম
ফিলি 294

1

সম্পাদনা করুন:

এটি সম্পর্কে একটি ওয়াইন বাগ রয়েছে - এটি বাগের চেয়ে উন্নতি বেশি। পয়েন্টটি ShellExecuteকল করতে হবে xdg-openএবং যদি এটি না পাওয়া যায় তবে জিনোম এবং কেডি ডিফল্ট সন্ধান করুন। আপনার প্যাচটি প্রয়োগ করতে সক্ষম হওয়া উচিত এবং শেষ পর্যন্ত যাদুটি থাকতে হবে :-)। এই সমাধানটি ক্লিনার কারণ এটি রেজিস্ট্রিতে গোলযোগের প্রয়োজন নেই।

আরও সম্পূর্ণ হতে এখানে কীভাবে উত্স থেকে ওয়াইন প্যাচ এবং সংকলন করতে হয় ।

শেষ সম্পাদনা

আমি সাধারণ ফাইল ধরণের তালিকা যুক্ত করতে নীচের স্ক্রিপ্টের সাথে ওয়াইন রেজিস্ট্রি আপডেট করি।
আপনি আরও প্রকারের তালিকা যোগ করতে পারেন।
এটা তোলে ব্যবহার করে /usr/bin/gnome-opengstart.exeতাই এটি ফাইল হবে অ GNOME জন্য কাজ না হয় ডেস্কটপ

এটি রাখুন conf_wine.sh:

#!/bin/bash

SRC=~
WINE=~/.wine
REG=$WINE/system.reg
GSTART=gstart.exe
GSTART_TARGET=$WINE/drive_c
EXE_TARGET=$WINE/drive_c/windows
FNKEY=/tmp/"key"$(date +%F_%H-%M-%S)".reg"

[ -e $FNKEY ] && { echo "temporary key file exists..try again"; exit 1; }

echo "copying gstart.exe"
cp $SRC/$GSTART $GSTART_TARGET
chmod +x $GSTART_TARGET

echo "backing up the registry"
cp $REG $REG.$(date +%F_%H-%M-%S).old

echo "setting new wine registry keys"
for i in http doc docx ppt pptx xls xlsx odt ods xml txt pdf odt svg zip ; do {
    echo "setting $i"
key='[HKEY_CLASSES_ROOT\.'$i']
@="'$i'file"
"Content Type"="application/'$i'"
[HKEY_CLASSES_ROOT\'$i'file\Shell\Open\command]
@="C:\\gstart.exe \"%1\""'
    echo "$key" > $FNKEY
    regedit $FNKEY
}
done

echo "done"

gstart.exeএকটি ব্যাশ script..and উভয় বোথ ওয়ার্ল্ডস সেতুর নন:

#!/bin/bash

OPEN_HANDLER=/usr/bin/gnome-open
# logging, optional
LOG=$HOME/.wine/gstart.exe-log.$(id -u -n)
echo "[ $(date) ] $# argument(s) received: '$@'" > $LOG

# convert the path
RESULT=$(winepath "$@" 2> /dev/null)
echo "$OPEN_HANDLER $RESULT" >> $LOG
TMP=$TMPDIR
TEMP=$TMPDIR

# finally open the file
$OPEN_HANDLER "$RESULT"

মন্তব্য:

  1. কপি gstart.exeচালানোর আগে আপনার বর্তমান কাজ ডিরেক্টরির মধ্যে conf_wine.shযেমন এটি কপি হবে .wineফোল্ডার।
  2. ফোল্ডারের অবস্থানগুলি পরিবর্তন করা যায়, যেমন gstart.exeবসতে হবে না c:\
  3. কোনও যাদু নেই: নতুন ধরণের ম্যানুয়ালি যুক্ত করতে হবে। আপনি লিনাক্স ফাইলগুলি পড়ার জন্য এটি উন্নত করতে পারেন (মাইম্যাপস.লিস্ট, ..) এবং প্রয়োজন হলে ওয়াইন রেজিস্ট্রি আপডেট করুন।
  4. কমপক্ষে ওয়াইন ১.৪ এ কাজ করার জন্য পরীক্ষিত।

ওয়াইন এফএকিউ: আমি কীভাবে একটি ওয়াইনের ফাইলের সাথে একটি স্থানীয় প্রোগ্রামকে যুক্ত করব?


প্রচেষ্টার জন্য +1, তবে এটি আমার সমস্যার সমাধান খুব কমই করে solve প্রথমত, gnome-openওভার ব্যবহার করার সামান্য বিন্দু রয়েছে xdg-open, যা আমি ইতিমধ্যে প্রশ্নটিতে উল্লেখ করেছি এবং এটি আরও বহনযোগ্য। দ্বিতীয়ত, কয়েকটি ফাইল এক্সটেনশনের হার্ডকোডিং আমার পক্ষে অপর্যাপ্ত: যেমনটি আমি বলেছিলাম, "বর্তমানে যে জাতীয় অ্যাপ্লিকেশনটি কনফিগার করা আছে তা সম্মানের জন্য আমার ফাইল অ্যাসোসিয়েশন প্রয়োজন And এবং আমি জানি এটি কৌশলপূর্ণ। এটি "ম্যাজিক" আপনি নিজের নোট # 3 এ উল্লেখ করেছেন যা আমি আগ্রহী;)
মাস্ট্রেলিওন

আমার ধারণা আমি আপনার প্রশ্নটি প্রথম খুব দ্রুত পড়লাম .. আমি দেখেছি আপনি এক্সডিজি-ওপেন ব্যবহার করছেন এবং আমি এটি আমার স্ক্রিপ্টগুলিতে পরিবর্তন করব। যাদু সম্পর্কে: একটি উপায় হ'ল মাইম ফাইলগুলিতে সমস্ত আইটেমের পরিবর্তে পুনরাবৃত্তি পড়ুন। তবে তারপরে আপনার সিস্টেমটি আপডেট করার সময় আপনাকে এটি চালাতে হবে কারণ নতুন এক্সটেনশন যুক্ত হতে পারে। যদিও এটি প্রতিদিন হয় না।
রোশ

অথবা এমনকি নিষ্ঠুরতার সাথে রেজিস্ট্রি আপডেটের জন্য ক্রোনজব সেট আপ করুন ... মাইমগুলি আপডেট করা থাকলে কেবলমাত্র রেজিস্ট্রি সংশোধন করুন।
রোশ

জটিল অংশটি কখন রেজিস্ট্রি আপডেট করবেন তা নয় , তবে কীভাবে বা আরও সুনির্দিষ্টভাবে আপডেট করবেন কোন ফাইলের জন্য? আমি জানি না কীভাবে ডিফল্ট, ইনস্টল থাকা অ্যাপ্লিকেশন যুক্ত সমস্ত এক্সটেনশন পুনরুদ্ধার করতে মাইম ডাটাবেসটিকে ধারাবাহিকভাবে পার্স করতে হয় । অথবা, যেমনটি আপনি বলেছেন: মাইম ফাইলগুলির সমস্ত আইটেমগুলিতে পুনরাবৃত্তি কীভাবে পড়বেন ? আমার মধ্যে কিছু মাইম প্রকার রয়েছে mimeapps.lstযা আমি এখানে ইনস্টল করি নি এবং কিছুটা ওয়াইন অ্যাপের দিকে ফিরে আসে (যা অসীম লুপের কারণ হয়ে দাঁড়ায়)
MestreLion

আমার প্রথম মন্তব্যে ইংরেজী ভুল সম্পর্কে দুঃখিত, আমি এটি সম্পাদনা করেছি এবং এটি কিছুটা গণ্ডগোল পেয়েছে .. দয়া করে উত্তরে আমার সম্পাদনাটি পড়ুন, সেখানে সমস্ত ফাইলের যত্ন নেওয়া হওয়ায় আপনার কাছে যাদু রয়েছে।
রোশ

0

আমি সমস্ত জায়গা জুড়ে তথ্য সংগ্রহ করেছি এবং নিম্নলিখিতগুলি কাজের জন্য পেয়েছি:

আমি file / .Wine / drive_c / gstart.exe নামে একটি ফাইল তৈরি করেছি

নিম্নলিখিত সহ:

#!/bin/bash
OPEN_HANDLER=/usr/bin/xdg-open
# logging, optional
LOG=$HOME/.wine/gstart.exe-log.$(id -u -n)
echo "[ $(date) ] $# argument(s) received: '$@'" > $LOG
# convert the path
RESULT=$(winepath "$@" 2> /dev/null)
echo "$OPEN_HANDLER $RESULT" >> $LOG
TMP=$TMPDIR
TEMP=$TMPDIR
# finally open the file
$OPEN_HANDLER "$RESULT"

তারপরে: আমার ~ / বিনে linuxnative.reg নামে একটি ফাইল তৈরি করা হয়েছে

নিম্নলিখিত সহ:

REGEDIT4
[HKEY_CLASSES_ROOT\.doc]
@="linuxnative"
"Content Type"="application/linuxnative"
[HKEY_CLASSES_ROOT\.rtf]
@="linuxnative"
"Content Type"="application/linuxnative"
[HKEY_CLASSES_ROOT\.odt]
@="linuxnative"
"Content Type"="application/linuxnative"
[HKEY_CLASSES_ROOT\.pdf]
@="linuxnative"
"Content Type"="application/linuxnative"
[HKEY_CLASSES_ROOT\.tif]
@="linuxnative"
"Content Type"="application/linuxnative"
[HKEY_CLASSES_ROOT\.doc]
@="linuxnative"
"Content Type"="application/linuxnative"
[HKEY_CLASSES_ROOT\.docx]
@="linuxnative"
"Content Type"="application/linuxnative"
[HKEY_CLASSES_ROOT\.jpg]
@="linuxnative"
"Content Type"="application/linuxnative"
[HKEY_CLASSES_ROOT\linuxnative]
[HKEY_CLASSES_ROOT\linuxnative\shell]
[HKEY_CLASSES_ROOT\linuxnative\shell\open]
[HKEY_CLASSES_ROOT\linuxnative\shell\open\command]
@="c:\\gstart.exe \"%1\""

তাহলে আপনি একটি

regedit linuxnative.reg

আশাকরি এটা সাহায্য করবে.


সাহায্য করার চেষ্টা করার জন্য ধন্যবাদ! তবে কয়েকটি সুপরিচিত এক্সটেনশনের হার্ডকোডযুক্ত তালিকাটি আমার সমস্যার সমাধান করে না। এছাড়াও, "আপনি স্থান থেকে সমস্ত স্থানে জড়ো হওয়া তথ্য" বলে মনে হয় ইতিমধ্যে আমার দ্বারা পোস্ট করা এবং রসচ, তার gstart.exeস্ক্রিপ্টের একটি অনুলিপি-পেস্ট সহ একই তথ্য ।
MestreLion
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.