আমি কীভাবে একটি পূর্ণ-স্ক্রিন কনসোল পটভূমি (টিটিওয়াই) কাস্টমাইজ করতে পারি?


17

আমি পূর্ণ-স্ক্রিন কনসোলগুলি ব্যবহার করতাম (যাদের সাথে Ctrl+ Alt+ F1... খোলা হয়েছিল F6) তারা সক্রিয়ভাবে ব্যবহার করেছি এবং আমি ধারণা পেয়েছি যে আমি এটি সাজানোর "ওয়ালপেপার" দিয়ে সাজানোর চেষ্টা করতে চাই (অবশ্যই একটি অন্ধকার এবং একঘেয়ে একটি) যাতে এটি পঠনযোগ্যতা হ্রাস না করে), সম্ভবত এটি দেখতে সুন্দর এবং বোধ করতে পারে (বা না, তবে আমার চেষ্টা করা দরকার)। এটি আরও ভাল হবে যদি আমি বিভিন্ন কনসোলের ব্যাকগ্রাউন্ড হিসাবে আলাদা আলাদা ছবি সেট করতে পারি (একটি Ctrl+ Alt+ এর জন্য F1, অন্যটি Ctrl+ Alt+ F2ইত্যাদি)।

খাঁটি পাঠ্য মোডের মাধ্যমে কনসোলগুলির উচ্চতর রেজোলিউশন রয়েছে তা বোঝায় যে তাদের জন্য পূর্ণাঙ্গ গ্রাফিকাল মোড ব্যবহৃত হয় এবং সমস্ত কিছুই সম্ভব। কিন্তু কিভাবে?


2
অসম্ভব। ভার্চুয়াল কনসোলগুলি কেবল পাঠ্য।
সের্গেই কলডিয়াজনি

5
@ সার্জ আমি যখন থেকে লিনাক্সের অস্তিত্ব ছিল না তখন থেকে আমি কেবল পাঠ্য-মোডগুলি ব্যবহার করে আসছি - বিশ্বাস করুন, আমি আসল পাঠ্য মোডকে এর গ্রাফিকাল এমুলেশন থেকে আলাদা করতে পারি। অনেক লোক আজকাল এটি খুব কমই কল্পনা করতে পারে তবে আমি এমনকি লিনাক্স ২.৪ দিনের সময় কোনও এক্স সার্ভার ইনস্টল না করে কনসোলগুলিতে সিনেমাগুলি দেখছি। এটি আমার সন্দেহ করে তোলে এটি আসলে অসম্ভব।
ইভান

1
ঠিক আছে, আমাকে নিজের সংশোধন করতে দিন: আমি framebufferডিভাইস হিসাবে কিছু জানার কারণে কনসোলে চিত্র এবং চলচ্চিত্রগুলি দেখতে বিশ্বাস করি না , তবে সেই স্ক্রিনটি কিছু প্রোগ্রামের আউটপুট যেমন দখল করে fbi। টিটিওয়াই নিজেই এবং কেবল এখনও একটি পাঠ্য-কেবল ডিভাইস
সের্গি কলডিয়াজহনি

2
আপনার প্রশ্নের যোগ্য হয়ে উঠলে আমি তার উপর একটি অনুদান রাখব। আমি আসলে আগ্রহী হয়েছি
সের্গি কলডিয়্যাজহনি

1
: এই পরীক্ষা করে দেখুন code.google.com/p/fbterm
Sergiy Kolodyazhnyy

উত্তর:


12

আমি নিশ্চিত যে লিনাক্স কনসোল ড্রাইভারটিতে এই ক্ষমতাটি তৈরি করা নেই, তবে একটি অ্যাপ্লিকেশন রয়েছে fbtermযা এটি করতে পারে। পটভূমি চিত্রগুলি কাজ করতে, আপনার এমন একটি ইউটিলিটিও প্রয়োজন যা ফ্রেমবফারের উপর একটি চিত্র প্রদর্শন করতে পারে যেমন fbi:

sudo apt-get install fbterm fbi

fbtermপ্রকৃতপক্ষে পটভূমি চিত্রগুলি নিজেই পড়ে বা প্রদর্শন করে না, এটি অন্য কোনও প্রোগ্রামের ব্যাকগ্রাউন্ড চিত্রটি শুরু হওয়ার আগেই পর্দায় সেট আপ করার প্রত্যাশা করে। fbtermকীভাবে এটি করা যায় সে সম্পর্কে ম্যান পৃষ্ঠায় নির্দেশাবলী রয়েছে fbv, একেবারে প্রাচীন এবং অসমর্থিত ইউটিলিটি আমি এমনকি আধুনিক উবুন্টু সিস্টেমে সংকলন করতে পারিনি। fbiফ্রেমবুফারের জন্য অনেক ক্লিনার এবং সুন্দর চিত্র প্রদর্শক, তবে দুর্ভাগ্যক্রমে সহজরূপে এটি "সেট করুন এবং প্রস্থান করুন" কার্যকারিতা নেই fbvএবং fbtermআপনি যদি সরাসরি এটি ব্যবহার করার চেষ্টা করেন তবে হস্তক্ষেপ করে। তবে, আমি একটি বিকল্প নিয়ে আসতে সক্ষম হয়েছি যা কাজ করে:

প্রথমত, আপনাকে যে ছবিটি চান তা ব্যবহার করতে হবে fbiএবং catপ্রদর্শন করতে হবে এবং তারপরে এটি "ফ্রেমবফার কাঁচা বিন্যাস" চিত্র ফাইলটিতে ফেলে দিতে হবে। রুট হিসাবে, ফ্রেমবফার কনসোলে, চালান:

( sleep 1; cat /dev/fb0 > nifty-background.fbimg ) & fbi -t 2 -1 --noverbose -a nifty-background.png

(এটি কয়েক সেকেন্ডের জন্য চিত্রটি প্রদর্শন করবে এবং তারপরে ফাইলটিতে ফলাফল সংরক্ষণ করে প্রস্থান করবে of অবশ্যই nifty-background.fbimgপ্রতিস্থাপন করুন nifty-background.fbimgএবং nifty-background.pngআপনি যে ফাইলের নাম চান তা অবশ্যই করুন।)

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

এরপরে, আপনি যখনই দৌড়াতে চান fbterm, আপনি এটি এর মতো শুরু করতে পারেন (আপনি কিছুটা র‍্যাপার স্ক্রিপ্ট তৈরি করতে চাইতে পারেন):

export FBTERM_BACKGROUND_IMAGE=1
cat nifty-background.fbimg > /dev/fb0; fbterm

7

আমি এর গ্রাফিকাল এমুলেশন থেকে বাস্তব পাঠ্য মোডকে আলাদা করতে পারি।

… এটি একটি অন্যতম উপায় যার মাধ্যমে পর্যবেক্ষক এক দশক বা তারও আগে রাউন্ডগুলি করেছে বিএসওড স্ক্রিন-সেভারের রসিকতা থেকে উইন্ডোজটিতে একটি বাস্তব বিএসওডকে আলাদা করতে পারে। গ্রাফিক্স মোডে ডিসপ্লে অ্যাডাপ্টার হার্ডওয়্যার ব্যবহার করে ব্লক গ্রাফিক্সের অক্ষরের প্রদর্শনটি পাঠ্য মোডে ডিসপ্লে অ্যাডাপ্টারের হার্ডওয়্যার দ্বারা উত্পন্ন অক্ষর থেকে সূক্ষ্মভাবে পৃথক ছিল।

হ্যাঁ, ডিসপ্লে অ্যাডাপ্টারটি গ্রাফিক্স মোডে রয়েছে। বেশ কিছুদিন ধরে এভাবে চলেছে। পিসি ডিসপ্লে অ্যাডাপ্টার হার্ডওয়্যারবিহীন সিস্টেমে সর্বদা এটি ছিল । লিনাক্সের প্রথম বছরগুলিতে, পিসি তুলনামূলক কনসোলে টেক্সট মোডে ডিসপ্লে অ্যাডাপ্টার হার্ডওয়্যার থাকবে। তবে এই ব্যবহারটি নিঃশব্দে বেশ কিছুতেই কমেছে। বর্তমানে বেশিরভাগ ব্যবহারকারীর জন্য ইউনিকোড সহায়তার জন্য পাঠ্য-মোড হার্ডওয়্যারটির চেয়ে বড় গ্লিফ সেট প্রয়োজন। মেশিন ফার্মওয়্যার (অবশ্যই) স্প্ল্যাশ স্ক্রিনগুলির জন্য গ্রাফিক্স মোড ব্যবহার করে (সুন্দর ছবি এবং কোম্পানির লোগো সহ), যেমন লিনাক্স লোডার এবং সিস্টেম ইনিশিয়ালেশন।

লিনাক্স কার্নেলের মধ্যে একটি টার্মিনাল এমুলেটর প্রোগ্রাম রয়েছে। এটি ফ্রেমবফার এবং ইনপুট ইভেন্ট সাবসিস্টেমের শীর্ষে স্তরযুক্ত যা এটি অ্যাক্সেসের জন্য অভ্যন্তরীণ কার্নেল ইন্টারফেসগুলি ব্যবহার করে। এটি অ্যাপ্লিকেশন-মোড সিস্টেমে কার্নেল ভার্চুয়াল টার্মিনাল ডিভাইসগুলির একটি সিরিজ হিসাবে নিজেকে উপস্থাপন করে /dev/tty1এবং আরও অনেক কিছু।

এই প্রোগ্রামটি মোটামুটি টার্মিনাল emulators রান তুলনায় সীমিত outwith লিনাক্স কার্নেল সাধারণ অ্যাপ্লিকেশন প্রোগ্রাম হিসাবে। এটি কেবল আসল টার্মিনালের কার্যকারিতার সীমিত উপসেটটি এমুলেট করে এবং এতে পরবর্তী টার্মিনাল এমুলেটরগুলির যুক্ত বৈশিষ্ট্যগুলি অভাব হয়।

এটির জন্য আপনাকে সন্ধান করা উচিত। আপনি টার্মিনাল এমুলেটরগুলির সাথে পরিচিত হতে পারেন যা এক্স তাদের ইনপুট / আউটপুট জন্য এক্স ব্যবহার করে, যেমন এক্সটার্ম, এলএক্সটার্মিনাল, জিনোম-কনসোল, কনসোল, ইটার্ম, জীবাণু এবং বাকী অংশগুলি। ফ্রেমবফার ডিভাইস এবং ইনপুট ইভেন্ট ডিভাইসগুলি তাদের ইনপুট / আউটপুট ব্যবহার করে এমনগুলি কম পরিচিত। প্রদানের ইউজার-স্পেস ভার্চুয়াল টার্মিনাল :

এর মধ্যে কিছু পরে আপনি যা করতে পারেন তা করতে পারেন।

উদাহরণস্বরূপ, প্রারম্ভকালে ফ্রেমবফারটিতে যা আছে তা ব্যবহার করতে fbterm কনফিগার করা যেতে পারে। লিনাক্সের ফ্রেমবাফার ডিভিসেটোতে fbterm চালানোর আগে একটি ব্যাকগ্রাউন্ড চিত্র সেটআপ করতে সরাসরি চিত্র প্রদর্শন করার জন্য অন্যান্য যে কোনও একটি উপকরণের প্রয়োজন তা হ'ল। এই জাতীয় বেশ কয়েকটি সরঞ্জাম রয়েছে:

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

আরও পড়া


কনসোলের জন্য পটভূমি চিত্র কীভাবে তৈরি করা যায় সে সম্পর্কে প্রশ্ন জিজ্ঞাসা করা হয়েছিল। আপনার উত্তরটি কেবল সম্ভাব্য সমাধানগুলি তালিকাভুক্ত করে। সুতরাং আমি অন্য উত্তরে অনুগ্রহ জানাই, তবে, আপনি যে তথ্য সরবরাহ করেছেন তার জন্য আমি আপনাকে ধন্যবাদ জানাই। আপনি আমার উপন্যাস আছে।
সের্গেই কোলোডিয়াজনি

4

যদিও ফুগডের উত্তর আমার পক্ষে কার্যকর হয়নি তবে এটি অর্ধেক সমাধান সরবরাহ করে (যথা, fbiটিটিওয়াই স্ক্রিনে একটি চিত্র দেখানোর সময় ফ্রেমবফার ডেটা পড়ার মাধ্যমে) আমাকে সঠিক দিকে নিয়ে গেছে । অতএব আমি তার উত্তর অনুগ্রহ দিয়েছি।

বেলো হ'ল একটি স্ক্রিপ্ট যা fbtermএকক কমান্ড লাইন আর্গুমেন্ট হিসাবে চিত্রের আংশিক পথ দিয়ে লঞ্চ করা সহজ করে

ব্যবহার

স্ক্রিপ্ট অবশ্যই আপনার $PATHভেরিয়েবলের তালিকাভুক্ত ডিরেক্টরিতে সংরক্ষণ করতে হবে । সাধারণত এটি আপনার ব্যক্তিগত $HOME/binফোল্ডারে থাকতে হবে । পড়ুন কিভাবে পথে একটি ডিরেক্টরি যোগ করতে চান? আপনার ব্যক্তিগত যোগ করার জন্য কিভাবে ব্যাখ্যা উপর binথেকে $PATH, কিন্তু একটি ডিরেক্টরি নামক তৈরি binআপনার home ডিরেক্টরিতে এটি যোগ করতে যথেষ্ট PATHপুনরায় প্রবেশ করুন।

স্ক্রিপ্টের অবশ্যই সম্পাদনযোগ্য অনুমতি থাকতে হবে; আপনি এটি দিয়ে সেট করতে পারেন chmod +x /path/to/script.sh

অবশেষে, এটি অবশ্যই sudoপড়তে হবে এবং এতে লেখার জন্য রুট অ্যাক্সেসের অনুমতি দিতে হবে /dev/fb0

স্ক্রিপ্ট উত্স

এছাড়াও উপলব্ধ আমার গিটহাব সংগ্রহস্থল।

#!/bin/bash
# Author : Serg Kolo
# Date: Dec 5, 2015
# Description: Script to render image and set it as background
# in conjunction with fbterm
# Depends: fbterm,fbi, awk
# Written for: /ubuntu//q/701874/295286

function printUsage
{
  echo "<<< Script to set background image in TTY console"
  echo "<<< Written by Serg Kolo, Dec 5 , 2015"
  echo "<<< Usage: scriptName.sh /path/to/image"
  echo "<<< Must be ran with root privileges, in TTY only"
  echo "exiting"

}

# check if we're root, if there's at least one ARG, and it is a TTY

if [ "$(whoami)" != "root"   ] || [ "$#" -eq 0  ] ||  [ "$( tty | awk '{gsub(/[[:digit:]]/,""); gsub(/\/dev\//,"");print}' )" != "tty"  ] ;then

   printUsage
   exit 1
fi



# read the full path of the image

IMAGE="$( readlink -f "$@" )"

# Launch fbi with whatever image was supplied as command line arg
# then take out whatever is the data in framebuffer;
# Store that data to /tmp folder

( sleep 1; cat /dev/fb0 > /tmp/BACKGROUND.fbimg ; sleep 1; pkill fbi ) & fbi -t 2 -1 --noverbose -a  "$IMAGE"

# This portion is really optional; you can comment it out 
# if you choose so

echo "LAUNCH FBTERM ?(y/n)"
read ANSWER

if [ "$ANSWER" != "y"  ] ; then
   echo exiting
   exit 1
fi

# The man page states that fbterm takes screenshot of 
# what is currently in framebuffer and sets it as background
# if FBTERM_BACKGROUND_IMAGE is set to 1
# Therefore the trick is to send the framebuffer data captured
# in the last step (which will display the image on screen)
# and then launch fbterm. Note, that I send output from the command
# send to background in order to avoid the extra text displayed on 
# screen. That way we have clear image in framebuffer, without 
# the shell text, when we launch fbterm

export FBTERM_BACKGROUND_IMAGE=1 
clear
( cat /tmp/BACKGROUND.fbimg  > /dev/fb0 &) > /dev/null; sleep 0.25; fbterm 

অতিরিক্ত তথ্য

দেখা যাচ্ছে যে ব্যবহারকারীর অগত্যা ব্যবহারের প্রয়োজন নেই sudo; /dev/fb0জন্যে videoগ্রুপ, যাতে ব্যবহারকারীরা শুধু পারে যে গ্রুপে নিজেদের যোগ ব্যবহার

sudo usermod -a -G video $USER

সুতরাং, উপরের স্ক্রিপ্টের মূলের জন্য চেকগুলি অচল হয়ে গেছে, বিশেষভাবে [ "$(whoami)" != "root" ] ||অংশ।

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