হোস্টনামের ভিত্তিতে tmux স্থিতি রেখার রঙ সেট করুন


10

আমি tmuxমেশিনের হোস্টনামের ভিত্তিতে গতিশীলভাবে একটি রঙ বেছে নিতে চাই । যেহেতু আমি tmux.confবেশ কয়েকটি মেশিনে আমার ভাগ করে নিই , সেই হোস্টগুলির প্রত্যেকের জন্য একটি অনন্য রঙ নির্ধারণ করা চাক্ষুষরূপে কার্যকর হবে, বিশেষত এক সাথে একাধিকের সাথে কাজ করার সময়। এটা কি করণীয়?

উত্তর:


3

আমি এই বৈশিষ্ট্যটিও চেয়েছিলাম। আমি মূলত এই .tmux.conf এ সমস্ত কিছু একত্রীকরণ করেছি

# cat <<__DATA__ >/dev/null
# Embed shell scripts

set -g status-utf8 on
set -g utf8 on

set -g default-terminal "screen-256color"

run "cut -c3- ~/.tmux.conf | bash -s apply_configuration"

# __DATA__
#
# apply_configuration() {
#    tmux set -g status-bg colour$(hash_string256 $(hostname))
# }
# hash_string256() {
#      hash_value=$(printf "%s" "$1" | md5sum | sed -e 's/[^[:alnum:]]\+//g' | tr "a-f" "A-F")
#      if [ "x" != "x$2" ]
#      then
#          v2="+ $2"
#      fi
#      echo "$(((0x$hash_value $v2) % 255))" | tr -d "-"
# }
# 
# $1

আমি ব্যবহারটি সরিয়েছি bcকারণ আমার গিট-ব্যাশে এটি ছিল না। সুতরাং আমি চেয়েছিলাম যে এটি আমার লিঙ্কস সিস্টেম এবং উইন্ডোজ উভয়ই সাইগউইনের সাথে অতিরিক্ত জিনিস যুক্ত না করেই কাজ করে।


ভয়ে ভয়ে এটি একটি মূর্খ প্রশ্ন হতে পারে তবে আমি কীভাবে এটি সঠিকভাবে ব্যবহার করব? আমি এটি অনুলিপি / পেস্ট করেছি তবে আমার পুনরায় লোড করার পরে .tmux.confআমি পেয়েছি "cut -c3- ~/.tmux.conf | bash -s apply_configuration" returned 1। তবুও, আমার স্ট্যাটাস বারটি সত্যই লাল হয়ে গেছে !!!

3

আমি নিম্নলিখিত শেল ফাংশন নিয়ে এসেছি:

hash_string256() {
    # Hash $1 into a number
    hash_value=$(printf "%s" "$1" | md5sum |tr -d " -"| tr "a-f" "A-F")
    # Add the hash with $2 and modulo 256 the result
    # if $2 == "" it is 0
    printf "ibase=16; (%s + %X) %% 100\n" $hash_value "$2" | bc
}

এই ফাংশনটি (ফলাফল সত্য হলে এই মত ব্যবহার করা যেতে পারে $HOSTহয় LOL):

$hash_string256 $HOST
 113
$hash_string256 $HOST 127
 240

এটির সাথে সংযুক্ত থাকতে tmuxআপনি কোনও স্ক্রিপ্ট ব্যবহার করতে পারেন যা শুরু এবং কনফিগার করে tmux

#!/bin/sh
SESSION=$USER

hash_string256() {
    hash_value=$(printf "%s" "$1" | md5sum |tr -d " -"| tr "a-f" "A-F")
    printf "ibase=16; (%s + %X) %% 100 \n" $hash_value "$2" | bc
}

tmux -2 new-session -d -s $SESSION

tmux set -g status-fg colour$(hash_string256 $HOST)
tmux set -g status-bg colour$(hash_string256 $HOST 127)

# Attach to session
tmux -2 attach-session -t $SESSION

হোস্ট-নেমের জন্য LOLএটি সেট হবে status-fgথেকে colour113এবং status-bgথেকে colour240। 127 নম্বরটি $(hash_string256 $HOST 127)এখানে রয়েছে তাই পটভূমিটি অগ্রভাগের বর্ণের মতো হবে না এবং একে অপর থেকে অনেক দূরে থাকবে।

কোনওটি জিএনইউ সিস্টেমের জন্য নয়

আপনার সিস্টেমে যদি লাইনের md5পরিবর্তে থাকেmd5sum

hash_value=$(printf "%s" "$1" | md5sum |tr -d " -"| tr "a-f" "A-F")

সঙ্গে প্রতিস্থাপন করা যেতে পারে

hash_value=$(printf "%s" "$1" | md5 | tr "a-f" "A-F")

কারও কারও কাছে যদি ফাংশনটি ব্যবহার করার উপায় থাকে তবে tmux.confআমি এটির প্রশংসা করব।
রাফেল অহরেন্স 11

1
আমার tmux কনফিগারেশনে tmux কনফিগ ফাইলে থাকা স্বতন্ত্র শেল ফাংশনগুলি সংজ্ঞায়িত ও পরিচালনা করার একটি উপায় অন্তর্ভুক্ত রয়েছে।
কালেব

@ কালেব আকর্ষণীয় বর্তমানে উত্তরে এটি সম্পাদনা করার আমার কাছে সময় নেই। তবে আমি এটি যুক্ত করব।
রাফেল আহরেন্স 26'16

1
আপনি উত্তরটি মূল উত্তর হিসাবে প্রবেশ না করে উত্তরের জন্য এটি একটি বিকল্প সমাপ্তি বানাতে চাইতে পারেন কারণ সম্ভবত এটির বেল্টের নীচে কিছু উন্নত শেল ফু নেই এমন কারও হ্যাক বিভ্রান্ত হওয়ার সম্ভাবনা রয়েছে। সমাধানটি এখানে হ'ল ডকগুলিকে অন্তর্ভুক্ত করে এবং একই ফাইল থেকে একটি কনফিগার ফাইল এবং এক্সিকিউটেবল স্ক্রিপ্ট উভয়ই পেতে পারে, সুতরাং এটি বাস্তবায়নের জন্য কেবল কয়েকটি লাইন যোগ না করে পুরো কনফিগারেশন ফাইলটিতে পরিবর্তন প্রয়োজন । এটি সঠিকভাবে পাওয়া প্রত্যেকের পক্ষে হবে না, সুতরাং এগুলি একসাথে ছাঁটাই করার পরামর্শ দেওয়ার আগে তাদের বাহ্যিক স্ক্রিপ্টগুলি ব্যবহার করে তাদের নিয়মিত কনফিগারেশন সম্পাদনা করার একটি উপায় দিন।
কালেব
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.