urxvt সেটিংস - টার্মিনাল পুনরায় চালু না করে পুনরায় লোড করবেন?


19

আমার দুটি urxvtরঙের থিম রয়েছে যা আমি ব্যবহার করি, একটি হালকা পটভূমির জন্য এবং একটি অন্ধকারের জন্য, পরিবেশ কতটা রোদ নির্ভর করে তার উপর নির্ভর করে।

এগুলি পরিবর্তন করে আবার ~/.Xresourcesচলার মাধ্যমে তাদের স্যুইচ করা যথেষ্ট সহজ xrdb ~/.Xresources, তবে এটি ইতিমধ্যে চলমান টার্মিনালগুলিকে প্রভাবিত করে না।

আমি tmux ব্যবহার করি যাতে আমি বিচ্ছিন্ন করতে পারি, টার্মিনালটি পুনরায় চালু করতে এবং পুনরায় সংযুক্ত করতে পারি, তবে এটির খুব দ্রুতই বিরক্তিকর হয় যখন তাদের মধ্যে 8 টি ইতিমধ্যে বিভিন্ন কাজের জায়গায় কীভাবে চাই want

সমাধানটি, দেখে মনে হচ্ছে, urxvt এর সেটিংসটি কোনওভাবে পুনরায় লোড করা উচিত তবে কীভাবে এটি করা যায় বা এটি এমনকি সম্ভব হলেও আমি কোনও তথ্য খুঁজে পাচ্ছি না। কেউ জানেন কীভাবে?

দ্রষ্টব্য: আমি কোনও মেইন ডিই এর কোনটিই চালাচ্ছি না এবং আমি কেবল টার্মিনালের জন্য সমস্ত কেডি বা জিনোম লিব ইনস্টল করতে যাচ্ছি না।

সম্পাদনা: man 7 urxvtকিছু জাদুকরী দেখাচ্ছে কোডগুলি দেখায় ... ভাল ... কিছু । পুরো রঙ সেটগুলি পরিবর্তন করতে এটি কীভাবে প্রযোজ্য তা আমি দেখতে পাচ্ছি না। কোন টিপস?

উত্তর:


12

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

আমরা এটি ইউআরএক্সভিটি থেকে লম্বা শৃঙ্খলে একটি কীকে আবদ্ধ করে ব্যবহার করতে পারি, যার প্রতিটিই ১। টি ডিফল্ট রঙের মধ্যে একটি পরিবর্তন করে।

উদাহরণস্বরূপ, এখানে আমি alt+ctrl+lপ্রতিটি রঙ C0C0C0 এ পরিবর্তন করতে সেট করেছি:

# This stupidly changes every color to grey.
URxvt.keysym.M-C-l: command:\033]11;#C0C0C0\007\033]10;#C0C0C0\007\033]4;0;#C0C0C0\007\033]4;1;#C0C0C0\007\033]4;2;#C0C0C0\007\033]4;3;#C0C0C0\007\033]4;4;#C0C0C0\007\033]4;5;#C0C0C0\007\033]4;6;#C0C0C0\007\033]4;7;#C0C0C0\007\033]4;8;#C0C0C0\007\033]4;9;#C0C0C0\007\033]4;10;#C0C0C0\007\033]4;11;#C0C0C0\007\033]4;12;#C0C0C0\007\033]4;13;#C0C0C0\007\033]4;14;#C0C0C0\007\033]4;15;#C0C0C0\007

পার্ল প্লাগইন

আমার এটি "কাজ করা" তবে সত্যিকার অর্থে নয়, কারণ মনে হয় সংজ্ঞায়িত সংস্থানগুলির মধ্যে একটি মৌলিক পার্থক্য রয়েছে

URxvt.keysym.M-1: command:\033].......

এবং এর সাথে একই করার যে কোনও প্রচেষ্টা $term->cmd_parse()

এই বিষয়ে কাজ করা যেতে পারে যে কিছু আছে? এখনও অবধি আমি পুরো হালকা এবং গা dark় রঙের সেটগুলি (খুব দীর্ঘ) অব্যাহতি সিকোয়েন্সগুলি ব্যবহার করে হার্ডকড করেছি:

URxvt.keysym.M-C-l: command:\033]4;12;#72729F9FCFCF\007\033]4;1;#CCCC00000000\007\033]4;15;#EEEEEEEEECEC\007\033]4;14;#3434E2E2E2E2\007\033]4;5;#757550507B7B\007\033]4;3;#C4C4A0A00000\007\033]4;7;#D3D3D7D7CFCF\007\033]4;4;#34346565A4A4\007\033]4;10;#8A8AE2E23434\007\033]4;13;#ADAD7F7FA8A8\007\033]4;8;#555557575353\007\033]11;#FFFFFFFFFFFF\007\033]4;9;#EFEF29292929\007\033]4;2;#4E4E9A9A0606\007\033]4;0;#2E2E34343636\007\033]4;11;#FCFCE9E94F4F\007\033]10;#000000000000\007\033]4;6;#060698209A9A\007
URxvt.keysym.M-C-d: command:\033]4;12;#9090FF\007\033]4;1;#AA0000\007\033]4;15;#FFFFFF\007\033]4;14;#55FFFF\007\033]4;5;#AA00AA\007\033]4;3;#AA5500\007\033]4;7;#AAAAAA\007\033]4;10;#55FF55\007\033]4;13;#FF55FF\007\033]4;4;#0000AD\007\033]4;8;#555555\007\033]11;#000000\007\033]4;9;#FF5555\007\033]4;2;#00AA00\007\033]\007\033]4;0;#000000\007\033]4;11;#FFFF55\007\033]10;#00FF00\007\033]5;0;#00FF00\007\033]4;6;#00AAAA\007

এটি ঠিক কীভাবে কাজ করে আমি আশা করেছিলাম যে এটি রানটাইমের সময় টগল করা যেতে পারে তাই আমি উত্তর হিসাবে এটি চিহ্নিত করছি, তবে কেন পার্ল থেকে গতিশীলভাবে এটি করা যায় না? আমার এখন অবধি যা আছে তা এখানে, আমি কোনও দুর্দান্ত পার্ল কোডার নই তাই দয়া করে নিঃসন্দেহে খারাপ স্টাইলটি ক্ষমা করুন।

আশা করি কেউ সমস্যাটি কী তা জানতে পারে। এটি একটি দুর্দান্ত প্লাগইন হবে। উজানের গিথুবে রয়েছে

#! /usr/bin/env perl -w
# Author:  John Tyree
# Website: http://github.com/johntyree/urxvt-perls/blob/master/rotate-colors
# License: CCBYNC

# Use keyboard shortcuts to load colors of the form *.colorN:XXXXXX from a file
# This gives us "on demand" theme switching.

# Usage: put the following lines in your .Xdefaults/.Xresources:
#   URxvt.perl-ext-common: ...,rotate-colors
#   URxvt.colorFiles: ~/.Xresources,~/light.txt,~/dark.txt
#   URxvt.keysym.M-C-n:   perl:rotate-colors:forward
#   URxvt.keysym.M-C-p:   perl:rotate-colors:backward

use strict;


sub on_start {
    my ($self) = @_;
    $self->{current_index} = -1;
    my @arr = split(/,/, $self->x_resource('colorFiles') || '');
    $self->{color_files} = \@arr;
    ()
}

sub read_colors {
    my $fn = shift;
    open my $fin, $fn or print STDERR "Unable to open $fn for reading";
    my %colors;

    while (my $line = <$fin>) {
        if ($line =~ /(\w+)\s*:\s*(#[0-9a-fA-F]+)/) {
            $colors{$1} = $2;
        }
    }
    return %colors
}

sub escape_seq {
    my ($k, $v) = @_;
    my $cmd = "";
    if ($k =~ /^color(\d+)$/) {
        $cmd = "4;$1;$v";
    } elsif ($k =~ /^colorBD$/) {
        $cmd = "5;0;$v";
    } elsif ($k =~ /^colorUL$/) {
        $cmd = "5;1;$v";
    } elsif ($k =~ /^colorBL$/) {
        $cmd = "5;2;$v";
    } elsif ($k =~ /^colorRV$/) {
        $cmd = "5;3;$v";
    } elsif ($k =~ /^foreground$/) {
        $cmd = "10;$v";
    } elsif ($k =~ /^background$/) {
        $cmd = "11;$v";
    } elsif ($k =~ /^cursorColor$/) {
        $cmd = "12;$v";
    } elsif ($k =~ /^pointerColor$/) {
        $cmd = "13;$v";
    }
    return "\033]".$cmd."\007"
}

sub build_cmd {
    my $fn = shift;
    my %colors = read_colors($fn);
    my $s =  join("", map {escape_seq($_, $colors{$_})} keys %colors);
    return $s   # was implicit anyway
}

sub on_user_command {
    my ($self, $cmd) = @_;
    my @fs = @{$self->{color_files}};
    my $len = @fs;

    if ($cmd eq "rotate-colors:forward") {
        my $idx = $self->{current_index}++;
        my $fn = $fs[$idx % scalar(@fs)];
        $self->cmd_parse(build_cmd($fn));
    } elsif ($cmd eq "rotate-colors:backward") {
        my $idx = $self->{current_index}--;
        my $fn = $fs[$idx % scalar(@fs)];
        $self->cmd_parse(build_cmd($fn));
    }
    ()
}

বিল্ড_সিএমডি রং স্ট্রিং ফিরিয়ে দেয় না এবং সেন্টিমিটার_ পার্স () পরামিতি ছাড়াই কার্যকর করা হয়?
28 Рахматуллин

টাইপো। আমি লক্ষ্য করিনি কারণ পার্লের অসীম প্রজ্ঞায়, রিটার্নের মানটি স্পষ্টতই $sরয়েছে।
জন টাইারি

1
আপনার প্লাগইন কখন কাজ করে তা দয়া করে আমাদের জানান।
এরিক

4

আমি একটি পার্ল এক্সটেনশন তৈরি করেছি যা SIGUSR1 পুনরুদ্ধার করার পরে urxvt কনফিগারেশনটি পুনরায় লোড করে: https://github.com/regnarg/urxvt-config-reload

বর্তমানে এটি কেবল রঙ পুনরায় লোডিং সমর্থন করে তবে অন্যান্য জিনিস (যেমন ফন্টগুলি) সহজেই যুক্ত করা যায়। গিথব সমস্যা হিসাবে বাগগুলি প্রতিবেদন করুন।


এটি এখন হরফ এবং জ্যামিতি কনফিগারেশনও সমর্থন করে! :)
পাওয়ারম্যান

নিস! পুরো কনফিগারেশনটি আবার পড়তে আমি যা চাই তা আসলে নয় তবে সম্ভবত আপনি এমন কিছু জিনিস বের করেছেন যা আমার কাছে নেই। আমাদের শক্তি একত্রিত সঙ্গে ...?
জন টাই

3

নীচের স্ক্রিপ্টটি ইউআরএক্সভিটি (বা অন্য কোনও টার্মিনাল এক্সটির্ম ওএসসি এস্কেপ সিকোয়েন্স সমর্থনকারী) এর সাথে ফ্লাইতে রঙিন স্কিম পরিবর্তন করতে ব্যবহার করা যেতে পারে। এটি ইনপুট হিসাবে। উত্স-শৈলীর সংজ্ঞা গ্রহণ করে এবং পালানোর ক্রমগুলি আউটপুট করে। টার্মিনালে কেবল স্ক্রিপ্টটি চালানো এবং এতে একটি রঙিন চিট আটকানো রঙ প্যালেট পরিবর্তন করবে - বিভিন্ন স্কিম দ্রুত চেষ্টা করার জন্য দরকারী।

#!/bin/sh
tr -d ' \t' | sed -n '
s/.*background:/\x1b]11;/p
s/.*foreground:/\x1b]10;/p
s/.*color\([0-9][^:]*\):/\x1b]4;\1;/p
' | tr \\n \\a

শেল ফেরৎ পাশাপাশি ব্যবহার করা যেতে পারে: ~/bin/term-recolor < .Xdefaults.solarized.dark


0

একটি urxvtd প্রক্রিয়া বা স্বতন্ত্র urxvt এর জীবদ্দশায় একবারে কনফিগারেশনটি পড়ে। কনফিগারেশনটি পুনরায় লোড করা এবং প্রোগ্রামের ইতিমধ্যে চলমান পরিস্থিতিতে প্রভাবগুলি কার্যকর করা সম্ভব নয়। এই নিয়মের ব্যতিক্রম রয়েছে, যখন এটি কিছু ফন্ট এবং স্থানীয় সেটিংসে আসে।

আপনি আপনার টার্মিনালের উপযুক্ত বিভাগে স্ক্রোল করতে পারেন। এখানে বেশ কয়েকটি প্রাসঙ্গিক প্রশ্নাবলী রয়েছে

প্রশ্ন কেন rxvt- ইউনিকোড আমার সংস্থানগুলি পড়ছে না?

এ (সংক্ষিপ্ত) এটি করে, এক্সআরডিবি ব্যবহার করে। প্রতিটি পরিবর্তনের পরে আপনাকে পুনরায় লগইন করতে হবে (বা এক্সআরডিবি-ডাবল run হোম / .স্রোতস্রোহ চালাতে হবে)।

এটি আমার কাছে টার্মিনাল বাইনারি পুনরায় লোড করার ইঙ্গিত দেয়।

কিউআই পর্দার রং পছন্দ করে না। আমি কীভাবে এগুলি পরিবর্তন করব?

একটি আপনি-/ .Xdephaults সংস্থানগুলি (বা দীর্ঘ বিকল্প হিসাবে) রান-টাইমে পর্দার রঙ পরিবর্তন করতে পারেন।

আমি মনে করি এর অর্থ "আপনি যখন অ্যাপ্লিকেশন শুরু করবেন"।


আপনি নির্দিষ্ট পাঠ্যে একটি নির্দিষ্ট রঙে উপস্থিত হতে পারেন, তবে রঙগুলি এক্স-রিসোর্স ফাইলে সংজ্ঞায়িত করা হয় এবং প্রতিবার পরিবর্তিত হওয়ার সাথে সাথে পুনরায় পড়তে হবে (পুনরায় চালু করে)। আমি ভুল হতে পারি, তবে আমি মনে করি না urxvt এর শুরু হওয়ার পরে রঙিন সংজ্ঞা পরিবর্তন করতে সমর্থন করে। সম্ভবত এটির জন্য একটি নিয়ন্ত্রণ ক্রম আছে, আমি নিশ্চিত নই।

ই জি

$ cat colors-in-bash
#!/bin/bash
for code in {0..255}; do
        if [[ code%8 -eq 0 ]];then echo ;fi
        printf "%5s" `echo -n -e "\e[38;05;${code}m $code: Test"`
done

আরও প্রাসঙ্গিক তথ্য:

http://pod.tst.eu/http://cvs.schmorp.de/rxvt-unicode/doc/rxvt.7.pod#XTerm_Operating_System_Commands

http://www.xfree86.org/current/xterm.1.html#toc19

http://en.wikipedia.org/wiki/Control_Sequence_Introducer#Sequence_elements

http://invisible-island.net/xterm/ctlseqs/ctlseqs.html


ঠিক। এবং বর্ণিত ফন্ট এবং রঙগুলির সাথে সম্পর্কিত বিশেষ ব্যতিক্রমগুলি হ'ল man 7 urxvtআমি আগ্রহী। আমি কীভাবে এটি কাজ করে তা বলতে পারি না।
জন টাইারি

আফাইক, রঙ পালানোর সিকোয়েন্সগুলি "এখানে পরে লাল আসার পরে" - বর্ণিত টেক্সট ব্যবহার করতে ব্যবহৃত হয় - "এখানে সাধারণ পাঠ্য পরে" - সাদা কালো - এবং আরও কিছু। তবে লাল এবং সাদা এবং কালো বর্ণনার সংজ্ঞা কেবলমাত্র বাইনারি শুরু হওয়ার পরে উপলব্ধ এক্স সংস্থান থেকে পড়ে।
21 Рахматуллин

আমি এটি মিঙ্কটির জন্য উইকির দিকে তাকিয়ে দেখতে পেলাম কিন্তু এসইউ নতুন লোকদের 8 ঘন্টার মধ্যে নিজের প্রশ্নের উত্তর দিতে দেয় না। আমি বর্তমানে এটি করার জন্য একটি urxvt পার্ল প্লাগইন লিখছি।
জন টাইরি

আপনার ফলাফলগুলি দেখতে আকর্ষণীয় হবে।
Рахматуллин

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

0

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

তারপরে আমি http://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h2- অপারেটিং-সিস্টেমে- কন্ট্রোল-এ ওএসসি এস্কেপ সিকোয়েন্স সংজ্ঞাগুলি পেরিয়ে হোঁচট খেয়েছি এবং নিম্নলিখিতগুলি নিয়ে এসেছি:

printf '\x1b]10;%s\a\x1b]11;%s\a' yellow blue

যেখানে এই ক্ষেত্রে "হলুদ" হল অগ্রভাগ এবং "নীল" পটভূমির রঙ। বর্ণ সংজ্ঞাটি এক্স পার্সক্লোরের কাছে গ্রহণযোগ্য কোনও স্ট্রিং হতে পারে যেমন লেমনচিফন বা # এফএফ 45455।

এটি স্থায়ীভাবে টার্মিনালের ডিফল্ট রঙগুলিকে ওভাররাইড করে, যেমন একটি টার্মিনাল রিসেট নতুন রঙ ব্যবহার করবে। এটি স্বাভাবিক এএনএসআই অব্যাহতি ক্রমগুলির সাথে সম্মতভাবে তাই আঠালো, যা আমার ঠিক প্রয়োজন ছিল। Rxvt এবং urxvt এ কাজ করে, সম্ভবত অন্যান্য কনসোলগুলিও (ওএসসি এমনকি ম্যান কনসোল_কোডেও উল্লিখিত হয়েছে)।

পৃথক এএনএসআই রঙগুলিকে ওভাররাইড করার কোডগুলিও উপস্থিত রয়েছে বলে মনে হয়, আমি সেগুলি চেষ্টা করি নি তবে তারা যদি কাজ করে তবে আমি মনে করি যে এটি আপনার কনসোলকে ডায়নামিকভাবে থিম করার সর্বোত্তম উপায়, আপনি আক্ষরিকভাবে কেবল "বিড়াল অন্ধকার" বা "বিড়াল আলো" করতে পারেন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.