টাইলিং উইন্ডো ম্যানেজারের সাথে টার্মিনাল মাল্টিপ্লেক্সারের কোনও সুবিধা আছে কি?


11

উভয় টার্মিনাল মাল্টিপ্লেক্সার (স্ক্রিন, tmux) এবং কীবোর্ড-চালিত টাইলিং উইন্ডো পরিচালকদের (ratpoison, dwm, xmonad) অনুরূপ কার্যকারিতা সরবরাহ করে। একই সাথে উভয় ব্যবহার করে কোনও লাভ আছে কি? সমস্যা দেখা দিতে পারে যে সম্পর্কে?


1
তারা করে? ওভারল্যাপগুলি সম্পর্কে আমি ভাবতে পারি এমন একমাত্র বৈশিষ্ট্যটি হ'ল উইন্ডোকে অনেকের মধ্যে বিভক্ত করার ক্ষমতা
মাইকেল মরোজেক

@ মিশেলমরোজেকের মধ্যে আমার সাথে 0 টির অভিজ্ঞতা আছে তাই আমি পড়ে কিছু জিনিস নিয়ে যাচ্ছি। আপনি কিছু পার্থক্য চিহ্নিত করতে পারলে এটি দুর্দান্ত হবে।
পাব্বি

3
জানুন যে একটি উইন্ডো পরিচালকের জন্য, প্রতিটি উইন্ডো কেবল একটি উইন্ডো - এবং এটি প্রায় এটিই। সুতরাং উইন্ডো বিভাজন ছাড়াও টার্মিনাল সম্পর্কিত প্রচুর জিনিস ডাব্লুএম-এর কাছে অনুপলব্ধ।
sr_

উত্তর:


9

আমি dwm এবং tmux ব্যবহার করি। Tmux ব্যবহার শিখার আগে আমার কাছে বিভিন্ন জিনিসের জন্য একাধিক টার্মিনাল খোলা থাকতে হবে এবং সেগুলি বিভিন্ন ট্যাগে রাখতে হবে। এখন আমি একক ট্যাগের অধীনে একটি টিএমএক্স সেশনের অভ্যন্তরে সমস্ত কিছু চালাতে পারি এবং এক্স পুনরায় চালু করার দরকার হলে রাষ্ট্রটি না হারিয়ে আলাদা করে পুনরায় সংযুক্ত করতে পারি।


16

টার্মিনাল মাল্টিপ্লেক্সারের অতিরিক্ত সুবিধা হ'ল আপনার মাল্টিপ্লেক্সার সেশনগুলি এখনও জীবিত থাকবে এবং এক্স (আপনার ডেস্কটপ সেশন) ক্র্যাশ হয়ে গেলেও বা আপনি এক্স থেকে লগ আউট হয়ে গেলেও আপনি তাদের সাথে পুনরায় সংযোগ স্থাপন করতে পারেন if


2

উভয় ব্যবহার করুন: একটি টাইলিং উইন্ডো ম্যানেজার এবং একটি টার্মিনাল মাল্টিপ্লেক্সার।

আরও ভাল সমলয়তা পেতে তাদের ক্ষমতা এবং সুবিধা উভয়কে একত্রিত করুন। আমার আই 3 সেটআপে আমি নিয়মিত একই সাথে বেশ কয়েকটি টার্মিনাল প্রদর্শন করি তবে সেগুলি সমস্ত একই টিএমএক্স সেশনে সংযুক্ত রয়েছে , তাই আমি কোনও টার্মিনালের মধ্যে সমস্ত টিএমউक्स উইন্ডো প্রদর্শন করতে পারি ।

কার্যত, আমি i3উভয় বিশ্বের সেরা পেতে টার্মিনাল মাল্টিপ্লেজারের উইন্ডো বিভাজন / চলমান কার্যকারিতা প্রতিস্থাপন / বৃদ্ধি করার জন্য টাইলিং ক্ষমতাগুলি ব্যবহার করি ।

নীচের স্ক্রিপ্টটি এখানে সেশন / সনাক্তকরণ সংযোগ এবং টার্মিনাল স্টার্টআপে ক্লিন-আপ পরিচালনা করতে ব্যবহৃত হয়:

#!/bin/bash
# This script attaches the terminal to a common session, where all
# terminals can show any window of the main tmux session independently
# This script also cleans up "old" sessions
# Todo: Cosmetic fix-ups. Make less verbose.

DEBUG="y"
showRun(){ echo Will run: $@;test -z $DEBUG||read -n1 -p"Press ENTER";$@; }

SNAME=${1:-XyZ}

if ! tmux has -t $SNAME; then
    echo -n "Session $SNAME not found, creating it: "
    showRun exec tmux new-session -s $SNAME;
else
    echo -n "Session $SNAME found: "
    MySESSION=$(tmux ls | grep -E "^$SNAME:.*\(attached\)$")
    echo $MySESSION;
    if [ -z "$MySESSION" ] ; then
        echo "Session $SNAME unattached, seizing it:"
        showRun exec tmux attach -t $SNAME \; new-window
    else
        echo "Session $SNAME already attached, finding grouped Sessions:"
        REGEX="group ([^)]*)"
        [[ $MySESSION =~ $REGEX ]]
        GNAME=${BASH_REMATCH[1]}
        GSESSIONS=$(tmux ls | grep "group $GNAME)" | grep -v $SNAME:)
        echo "$GSESSIONS"
        if [ -z "$GSESSIONS" ]; then
            echo "No sessions in group with $SNAME found, creating new one:"
            showRun exec tmux new-session -t $SNAME \; new-window
        else
            FGSESSIONS=$(echo "$GSESSIONS" | grep -v attached )
            if [ -z "$FGSESSIONS" ]; then
                echo "No free sessions in group $GNAME found, creating new one:"
                showRun exec tmux new-session -t $SNAME \; new-window
            else
                echo -e "Free grouped Sessions:\n $FGSESSIONS";
                if echo "$FGSESSIONS" | tail -n +2 | grep . > /dev/null; then
                    echo "Several detached Sessions found, cleaning up:"
                    echo "$FGSESSIONS" | while read SID x ; do
                        if [ -z $KEEPSID ]; then
                            KEEPSID=${SID%:*};
                            echo "Keeping session $KEEPSID for takeover after cleanup"
                        else
                            echo "Cleaning up old detached session $SID"
                            tmux kill-session -t ${SID%:}
                        fi;
                    done
                    KEEPSID=$(tmux ls|grep "group $GNAME)" | grep -v attached);
                    KEEPSID=${KEEPSID%: *}
                    echo "Attaching to session $KEEPSID:"
                    showRun exec tmux attach -t $KEEPSID \; new-window
                else
                    echo "Free session ( ${FGSESSIONS%: *} ) found, seizing it:"
                    showRun exec tmux attach -t ${FGSESSIONS%: *} \; new-window
                fi ;
            fi ;
        fi ;
    fi ;
fi

1

না those বিরল ক্ষেত্রে যেখানে স্ক্রিনের ভিতরে পর্দা বা tmux এর ভিতরে tmux দরকারী, উভয় প্রোগ্রামই নেস্টেড উদাহরণগুলিতে নিয়ন্ত্রণ পাস করার একটি সহজ উপায় সরবরাহ করে।

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

আমি একজন বা অন্যটি শিখতে পারি এবং আপনি যা পছন্দ করেছেন তা নিয়ে যদি আপনি কৌতূহলী বা অসন্তুষ্ট হন তবে অন্যটিকে চেষ্টা করুন। আমি ব্যক্তিগতভাবে tmux পছন্দ করি।


0

এই দৃশ্যে টার্মিনাল মাল্টিপ্লেক্সারের আর একটি দরকারী দিক হ'ল দূরবর্তী সার্ভারগুলিতে সংযোগ স্থাপনের পরে। একটি সাধারণ ব্যবহারের কেস আমার কাছে পাওয়া যায়

  1. আমার স্থানীয় পিসিতে একটি টার্মিনাল উইন্ডো খুলুন।
  2. রিমোট সার্ভারে ssh করুন।
  3. tmux / স্ক্রিন এখন রিমোট সার্ভারে মাল্টিপ্লেক্সিং সরবরাহ করে, রিমোট সার্ভারে নতুন টার্মিনাল / শেলগুলি খোলার সহজ অনুমতি দেয়। স্থানীয় পিসিতে দ্বিতীয় টার্মিনাল খোলার তুলনায় এবং দ্বিতীয় এসএসএসের সাথে পুনরায় সংযোগ স্থাপনের তুলনায় এটি একটি কম পদক্ষেপ।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.