আমার একটি টার্মিনাল উইন্ডো রয়েছে যাতে এক ডজন নামের ট্যাব খোলা রয়েছে।
আমি বর্তমান কনফিগারেশনটি সংরক্ষণ করতে চাই এবং নাম এবং ডিরেক্টরিতে এটি পুনরুদ্ধার করতে চাই।
এই কাজ করতে একটি উপায় আছে কি?
আমার একটি টার্মিনাল উইন্ডো রয়েছে যাতে এক ডজন নামের ট্যাব খোলা রয়েছে।
আমি বর্তমান কনফিগারেশনটি সংরক্ষণ করতে চাই এবং নাম এবং ডিরেক্টরিতে এটি পুনরুদ্ধার করতে চাই।
এই কাজ করতে একটি উপায় আছে কি?
উত্তর:
এতে কনফিগারেশন সংরক্ষণ করতে /tmp/cfg
:
gnome-terminal --save-config=/tmp/cfg
এটি আবার লোড করতে:
gnome-terminal --load-config=/tmp/cfg
হালনাগাদ
বাশ দিয়ে চারপাশে খেলার পরে আমি নিম্নলিখিত স্ক্রিপ্ট তৈরি করেছি যা ফাইলের মধ্যে ট্যাব নামগুলিও সংরক্ষণ করে /tmp/test
:
#!/usr/bin/env bash
gnome-terminal --save-config=/tmp/test
LINES=($(grep -n '\[Terminal' /tmp/test | cut -d: -f1))
for ((i=0; i<$(grep '\[Terminal' /tmp/test | wc -l); i++))
do
TITLE=$(xprop -id $WINDOWID WM_NAME | sed -e 's/WM_NAME(STRING) = "//' -e 's/"$//';xdotool key ctrl+Page_Down;)
sed -ri "$((${LINES[$i]}+$i))s/.*/&\nTitle=$TITLE/" /tmp/test
done
নামগুলি যথাযথভাবে নির্ধারণ করতে আপনাকে এটি আপনার টার্মিনালের প্রথম ট্যাব থেকে চালাতে হবে। আগের মতো লোড হচ্ছে:
gnome-terminal --load-config=/tmp/test
ব্যাখ্যা:
আমি ট্যাব নাম পেতে নিম্নলিখিত ব্যবহার করতে পারেন:
xprop -id $WINDOWID WM_NAME
আমি পরবর্তী ট্যাবে ঝাঁপ দিতে নিম্নলিখিতগুলি ব্যবহার করতে পারি:
xdotool key ctrl+Page_Down;
আমি এর আগে সংরক্ষণ করা কনফিগারেশন ফাইলটি গ্রেপ করার পরে আমি বেশ কয়েকটি ট্যাব পাচ্ছি:
$(grep '\[Terminal' /tmp/test | wc -l)
সুতরাং আমি লুপের ভিতরে ট্যাবগুলিতে পুনরাবৃত্তি করতে পারি। আমাকে আগে সংরক্ষণিত ফাইলের প্রতিটি ট্যাব কনফিগারেশন বিভাগের জন্য "শিরোনাম = শিরোনাম" এন্ট্রি যুক্ত করতে হবে। এটি করতে, প্রথমে আমি লাইন সংখ্যার একটি অ্যারে তৈরি করছি যেখানে আমি লাইন যুক্ত করব।
LINES=($(grep -n '\[Terminal' /tmp/test | cut -d: -f1))
আমি ল্যাপের ভিতরে "টাইটেল = টাইটেলনাম" লাইনটি ট্যাবগুলিতে পুনরাবৃত্তি করছি:
sed -ri "$((${LINES[$i]}+$i))s/.*/&\nTitle=$TITLE/" /tmp/test
বিকল্প হিসাবে কেবল ব্যোবু ব্যবহার করা হয় । এর ভিতরে নতুন টার্মিনালগুলি খুলতে F2 টিপুন। টার্মিনালের মধ্যে বাম এবং ডানদিকে স্যুইচ করতে F3 এবং F4 ব্যবহার করুন।
আপনি যখনই চান জিইউআই উইন্ডোটি বন্ধ করুন। আপনি যখন বাইবুুকে আবার খুলেন আপনার সমস্ত টার্মিনাল পুনরুদ্ধার করা হবে :)
আমি সংরক্ষিত সেটিংস পুনরুদ্ধার করার পরে নীচের বিকল্পগুলি চেষ্টা করেছি এবং শিরোনামটিও সঠিকভাবে পুনরুদ্ধার করা হয়েছে।
এই বিকল্পটি আপনার প্রাথমিক শিরোনাম সেটটি ওভাররাইট করার জন্য এড়ানো হবে।
আশা করি এটি সত্যই সহায়তা করে এবং একটি দুর্দান্ত স্ক্রিপ্ট। যখনই আপনি রিবুট করেন এবং প্রচুর সময় সাশ্রয় করুন আমি খুশিভাবে আমার ভার্চুয়াল বক্সটি ঘন ঘন পুনরায় চালু করতে পারি।
ধন্যবাদ !!
আমি আরও একটি বিকল্প চেষ্টা করেছিলাম,
আমি টার্মিনালের জন্য সেটিংস ~/.bashrc
পরিবর্তন না করে অন্তর্নির্মিত মানটি ব্যবহার করতে আমার ডিফল্ট শিরোনাম পরিবর্তন করেছি ~/.profile
।
# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
PS1="$PS1"
;;
*)
;;
esac
আপনি যদি এটি করেন তবে আপনার টার্মিনাল প্রোফাইল পরিবর্তন করার দরকার নেই।
যখন আপনি কার্যকর করেন gnome-terminal --load-config
সমস্ত ট্যাব নামগুলি সঠিকভাবে পুনঃস্থাপন করা হয়। এবং আপনি নিজের পছন্দ মত পরিবর্তন করতে পারেন এবং ট্যাবগুলি আবার সংরক্ষণ করতে পারেন !!
আমি এটি করার একটি উপায় পেয়েছি যা আমার কাছে মনে হয় দ্রুত।
ধরন:
gnome-terminal --tab-with-profile=PROFILENAME1 --tab-with-profile=PROFILENAME2 ... --tab-with-profile=PROFILENAME999
আমি এই কমান্ডটি দিয়ে একটি উপনাম তৈরি করেছি এবং এটি আমার পক্ষে বেশ সুন্দর কাজ করেছে। আমি কেবল টাইপ করেছি workflow
এবং একটি টার্মিনাল 3 টি ট্যাব এবং ট্যাবগুলির মধ্যে প্রফাইলে সংজ্ঞায়িত প্রোফাইল সংজ্ঞায় আমি যে শিরোনামগুলি নিয়েছি তা উপস্থিত হয়।
আমার .bashrc
ফাইলে আমি রেখেছি:
alias workflow='gnome-terminal --tab-with-profile=Git --tab-with-profile=Run | sublime-text &'
বিদ্যমান স্ক্রিপ্টের সামান্য উন্নতি যা সিস্টেমে ইনস্টল করা এক্সডটুল পরীক্ষা করে এবং পথ পরিবর্তন করার জন্য পরিবর্তনশীল যুক্ত করে
#!/bin/bash
SAVEPATH=/tmp/termprofile
if [ ! -f /usr/bin/xdotool ]; then
echo "please install 'xdotool'"
exit 1
fi
gnome-terminal --save-config=$SAVEPATH
LINES=($(grep -n '\[Terminal' $SAVEPATH | cut -d: -f1))
for ((i=0; i<$(grep '\[Terminal' $SAVEPATH | wc -l); i++))
do
TITLE=$(xprop -id $WINDOWID WM_NAME | sed -e 's/WM_NAME(STRING) = "//' -e 's/"$//';xdotool key ctrl+Page_Down;)
sed -ri "$((${LINES[$i]}+$i))s/.*/&\nTitle=$TITLE/" $SAVEPATH
done
নায়াকিনের উপরের উত্তরটি প্রসারিত করে, এই স্ক্রিপ্টটি একাধিক উইন্ডো এবং ট্যাব কনফিগারেশনের জন্য কাজ করবে এবং সমস্ত ট্যাব রয়েছে এমন ট্যাবগুলির জন্য সঠিকভাবে ট্যাব শিরোনাম সংরক্ষণ করবে।
এটি বর্তমানে জিনোম-টার্মিনাল ৩.২-তে পরীক্ষা করা হয়েছে তবে একই রকম সংরক্ষণ-কনফিগার কার্যকারিতা সহ কোনও টার্মিনাল প্রোগ্রামের জন্য কনফিগার করা যেতে পারে।
এর জন্য 'xprop', 'xdotool', এবং 'wmctrl' সরঞ্জাম প্রয়োজন।
কোড:
#!/usr/bin/env bash
FILE="$1"
gnome-terminal --save-config=$FILE
WINDOWLINES=$(wmctrl -lx | grep gnome-terminal.Gnome-terminal)
WINDOWNUM=$(echo "$WINDOWLINES" | wc -l)
TABLISTS=$(grep "^Terminals" $FILE)
for ((i=1; i<=$WINDOWNUM; i++))
do
WINDOWLINE=$(echo "$WINDOWLINES" | sed -n "$i{p;q}")
WINDOW_ID=$(echo "$WINDOWLINE" | cut -d' ' -f1)
#Switch to window
wmctrl -i -a $WINDOW_ID
LINE=$(echo "$TABLISTS" | sed -n "$i{p;q}"); LINE=${LINE#Terminals=}
TERMINALNUM=$(echo "$LINE" | grep -o ';' | wc -l)
#go to first tab of the window if more than 1
[ $TERMINALNUM -gt 1 ] && xdotool key alt+1 && sleep .1
for tab in ${LINE//;/ }
do
#Get the current tab title
TITLE=$(xprop -id $WINDOW_ID WM_NAME | sed -e 's/WM_NAME(STRING) = "//' -e 's/"$//')
#Insert it into the config file
[ "$TITLE" == "${TITLE//WM_NAME/}" ] && sed -ri "/\[${tab}\]/aTitle=${TITLE}" $FILE
#Move to the next tab in the window
xdotool key ctrl+Page_Down
done
done
এখানে একটি xfce টার্মিনাল কাঁটাচামান রয়েছে, কেবল মেনু থেকে সেশনটি সংরক্ষণ / পুনরুদ্ধার করার সম্ভাবনা রয়েছে: https://github.com/repu1sion/xfce4-terminal
যোগের পদ্ধতির মতো, সম্পাদনা করুন >> প্রোফাইল পছন্দসমূহ >> শিরোনাম এবং কমান্ড >> শিরোনাম >> যখন টার্মিনাল কমান্ডগুলি তাদের নিজস্ব শিরোনাম সেট করে: >> " প্রাথমিক শিরোনাম প্রস্তুত করুন "
তারপরে এক্সিকিউট করুন: জিনোম-টার্মিনালস - সেভ-কনফিগারেশন = টার্মিনাল-সিএফজি
টার্মিনাল উইন্ডো বন্ধ করুন
একটি নতুন টার্মিনাল খুলুন, এবং এর মধ্যে সম্পাদন করুন : জিনোম-টার্মিনাল - লোড-কনফিগারেশন = টার্মিনাল-সিএফজি
আমার পক্ষে ভাল কাজ করে, সমস্ত শিরোনাম রইল।
হাইপার ( https://github.com/zeit/hyper ) একটি ভাল ক্রস প্ল্যাটফর্ম বিকল্প যা জাভাস্ক্রিপ্টে লিখিত এবং ইলেক্ট্রনের সাথে বান্ডিল রয়েছে।
একটি জনসংযোগ রয়েছে যা বাক্স থেকে সেশন সেভ / পুনরুদ্ধার করার জন্য সমর্থন যোগ করতে চলেছে: https://github.com/zeit/hyper/pull/945