উ: কনফিগারেশনাল বিকল্পসমূহ
যদি ব্লকটি বোঝানো হয় অভিজ্ঞ-অভিজ্ঞ ব্যবহারকারীদের নির্দিষ্ট কিছু অ্যাপ্লিকেশন ব্যবহার করা থেকে বিরত রাখতে হয়, তবে অ্যাপ্লিকেশনটির ডেস্কটপ ফাইল (বর্ণিত হিসাবে) সম্পাদনা (এর স্থানীয় কপি [1]
) সম্ভবত দ্রুততম এবং সহজতম উপায়।
অতিরিক্ত বাধা তৈরি করতে এবং / অথবা অ্যাপ্লিকেশনটি ( [2]
এবং [3]
) ব্লক করার জন্য আমরা কী করেছি তা ব্যবহারকারী খুব সহজেই খুঁজে পায় যে বিষয়টি রোধ করতে কিছু অতিরিক্ত জিনিস করা যেতে পারে ।
সেটআপটি অভিজ্ঞ ব্যবহারকারীদের সাথে অবরুদ্ধ পরিস্থিতিতে উপযুক্ত নয়। গড় ব্যবহারকারীদের সাথে "হোম" পরিস্থিতিতে এটি বেশ কয়েকটি ক্ষেত্রে যথেষ্ট হবে be
1. .ডেস্কটপ ফাইলটি সম্পাদনা (এর স্থানীয় সংস্করণ) দ্বারা জিডিট ব্লক করার উদাহরণ
অ্যাপ্লিকেশন এর ডেস্কটপ ফাইল অনুলিপি করুন /usr/share/applications
থেকে ~/.local/share/applications
:
cp /usr/share/applications/gedit.desktop ~/.local/share/applications/gedit.desktop
ফাইলটি সম্পাদনা করুন: এটি একটি জিডিট উইন্ডোতে টেনে এনে জেডিট (যখন আপনি এখনও করতে পারেন :)) দিয়ে এটি খুলুন।
লাইন প্রতিস্থাপন
Exec=gedit %U
দ্বারা:
Exec=zenity --info --text 'You are not allowed to use this application'
শর্টকাটগুলির একটি থেকে অ্যাপ্লিকেশন শুরু করা রোধ করতে (সম্ভাব্য) শর্টকাটগুলি সরান:
লাইনটি মুছে ফেলুন (gedit উদাহরণের জন্য):
Actions=Window;Document;
এবং বিভাগ (গুলি) এর মতো:
[Desktop Action Window]
Name=Open a New Window
Exec=gedit --new-window
OnlyShowIn=Unity;
তারপরে (লগ আউট / লগ-ইন করার পরে) ব্যবহারকারী এই বার্তাটি দেখতে পাবেন যদি সে ড্যাশ থেকে জিডিট খুলতে চেষ্টা করে বা অ্যাপ্লিকেশনটির সাথে লিঙ্কযুক্ত কোনও ফাইল খোলার চেষ্টা করে:
ড্যাশ থেকে অ্যাপ্লিকেশনটি গোপন করা ((চ্ছিক পরিমাপ)
উপরের পরিবর্তনগুলি করার পরে, gedit.desktop
ফাইলটি এখনও খোলা রয়েছে, আমরা একটি অতিরিক্ত লাইন যুক্ত করতে পারি:
NoDisplay=true
এই লাইনটি যুক্ত করে, gedit
এমনকি ড্যাশেও প্রদর্শিত হবে না।
পূর্বাবস্থায় ফিরুন
পূর্বাবস্থায় ফেলার জন্য, স্থানীয় .desktop
ফাইলটি এখান থেকে সরান~/.local/share/applications
২. এটি খুঁজে পাওয়া আরও কিছুটা কঠিন করে তোলা
.desktop
ফাইলটি সম্পাদনা করার পরে , অ্যাপ্লিকেশনটি আর ড্যাশটিতে প্রদর্শিত হবে না, ড্যাশ অনুসন্ধান এখনও আমাদের সদ্য নির্মিত gedit.desktop
ফাইলটি দেখায় , যা অজান্তেই কীভাবে অ্যাপ্লিকেশন ব্লকটি থেকে বাঁচতে পারে তার ইঙ্গিত দিতে পারে।
এটি এড়াতে, আমাদের ডিরেক্টরিটি ~/.local/share/applications
ড্যাশ অনুসন্ধান থেকে বাদ দিয়ে সন্ধানের ইতিহাস সাফ করা উচিত ।
সিস্টেম সেটিংস> "সুরক্ষা এবং গোপনীয়তা"> "ফাইল এবং অ্যাপ্লিকেশন" (ট্যাব) খুলুন। ~/.local/share/applications
অনুসন্ধান থেকে বাদ দেওয়ার জন্য ডিরেক্টরিটিতে ডিরেক্টরি যুক্ত করুন ।
৩. (না) টার্মিনাল / কমান্ড লাইন ব্যবহার করে
gedit
কমান্ডটি পুনর্নির্দেশ করা হচ্ছে(1)
.desktop
ফাইলটি সম্পাদনা ড্যাশ থেকে অ্যাপ্লিকেশনটি ব্যবহারে বাধা দেয়, তবে ব্যবহারকারী যদি AltF2অ্যাপ্লিকেশনটি চালনার জন্য সমন্বয় এবং কমান্ড জানেন তবে তিনি টার্মিনালের মতোই অ্যাপ্লিকেশনটি শুরু করতে সক্ষম হবেন। অতিরিক্ত পরিমাপ স্থাপনের জন্য একটি দুর্দান্ত এবং সহজ হ'ল ডিরেক্টরি তৈরি করা (যদি এটি এখনও উপস্থিত না থাকে) ডিরেক্টরিটি ~/bin
তৈরি করে এবং ডিরেক্টরিতে একটি ছোট স্ক্রিপ্ট তৈরি করা হয়:
#!/bin/bash
zenity --info --text 'You are not allowed to use this application'
এটিকে এক্সিকিউটেবল করুন এবং অ্যাপ্লিকেশনটির নাম দিন; gedit
এক্ষেত্রে.
যেহেতু ~/bin
রয়েছে PATH
, কমান্ডটি চালানো "রিয়েল" gedit
অ্যাপ্লিকেশনটির পরিবর্তে স্ক্রিপ্টটি কল করবে । ফলস্বরূপ, একই- You are not allowed to use this application
ম্যাসেজ প্রদর্শিত হবে
gedit
কমান্ডটি পুনর্নির্দেশ করা হচ্ছে(2)
অ্যাপ্লিকেশনটির আদেশটি পুনর্নির্দেশের আরেকটি উপায় (আরও সীমাবদ্ধ প্রভাব সহ, দ্রষ্টব্য দেখুন) .bashrc
ফাইলটিতে একটি উপনাম যুক্ত করা :
gedit ~/.bashrc
লাইন যুক্ত করুন (gedit উদাহরণ):
alias gedit='zenity --info --text "You are not allowed to use this application"'
দ্রষ্টব্য : এটি কেবলমাত্র অতিরিক্ত পরিমাপ হিসাবে ব্যবহৃত হবে, কারণ এটি কেবলমাত্র টার্মিনাল থেকে সরাসরি অ্যাপ্লিকেশনটি কল করতে বাধা দেয়। (উদাহরণস্বরূপ) .txt
ফাইলে ডাবল ক্লিক করলেও অ্যাপ্লিকেশনটি ওপেন হবে।
টার্মিনাল ব্যবহার মোটেই কঠিন বা অসম্ভব করে তুলুন
টার্মিনালটির ব্যবহার রোধ করতে, আপনি gnome-terminal.desktop
যেমন - ফাইলটি ঠিক তেমন কৌশল করতে পারেন [1]
এবং / অথবা টার্মিনালটি চালানোর জন্য ডিফল্ট শর্টকাট কী সংমিশ্রণটি পরিবর্তন করতে পারেন (সিস্টেম সেটিংস> "কীবোর্ড"> "শর্টকাটস"> "শুরু" )
৪. .desktop
ফাইলের সম্পাদিত সংস্করণটি স্বয়ংক্রিয়ভাবে তৈরি করতে (বা পূর্বাবস্থায় ফিরিয়ে আনার) জন্য একটি ছোট সরঞ্জাম (১ হিসাবে 1)
আপনি হয় আর্গুমেন্ট সহ নিচের স্ক্রিপ্টটি রান যদি block
বা unblock
(আপনি আবশ্যক হয় এক সঙ্গে এটি চালানোর), আপনি (গ্লোবাল) ডেস্কটপ ফাইল, আপনার ইনস্টল করা অ্যাপ্লিকেশনের প্রতিনিধিত্বমূলক সঙ্গে একটি তালিকা উপস্থাপন করা হবে:
একটি বাছুন, এবং আপনার অ্যাপ্লিকেশনটি আপনি যে যুক্তি দিয়ে এটি চালাচ্ছেন তার উপর ভিত্তি করে অবরুদ্ধ বা অবরোধ মুক্ত।
বিঃদ্রঃ
এটি কাজ করতে আপনাকে লগ আউট / লগ ইন করতে হতে পারে।
এই পান্ডুলিপি
#!/usr/bin/env python3
import os
import shutil
import sys
mode = sys.argv[1]
home = os.environ["HOME"]
global_dir = "/usr/share/applications/"
files = [file for file in os.listdir(global_dir) if file.endswith(".desktop")]
relevant = []
for i in range(len(files)):
file = files[i]
with open(global_dir+file) as src:
text = src.read()
if not "NoDisplay=true" in text:
relevant.append((file))
for i in range (len(relevant)):
print(str(i+1)+".", relevant[i])
choice = int(input("\nplease enter the number of the corresponding .desktop file: "))
filename = relevant[choice-1]
local_file = home+"/"+".local/share/applications/"+filename
global_file = global_dir+filename
def block_application(filename):
if not os.path.exists(local_file):
shutil.copyfile(global_file, local_file)
with open(local_file) as src:
lines = src.readlines()
shortcuts_section = [i for i in range(len(lines)) if lines[i].startswith("Actions=")]
if len(shortcuts_section) != 0:
lines = lines[:shortcuts_section[0]]
command = [i for i in range(len(lines)) if lines[i].startswith("Exec=")]
if len(command) != 0:
lines[command[0]] = 'Exec=zenity --info --text "You are not allowed to use this application"\n'
with open(local_file, "wt") as out:
for line in lines:
out.write(line)
if mode == "block":
block_application(filename)
elif mode == "unblock":
os.remove(local_file)
স্ক্রিপ্টটি খালি ফাইলে অনুলিপি করুন, এটি হিসাবে সংরক্ষণ করুন block_apps.py
এবং এটির মাধ্যমে চালান:
python3 /path/to/block_apps.py block
অথবা
python3 /path/to/block_apps.py unblock
বি স্ক্রিপ্ট অপশন (গুলি)
নির্দিষ্ট অ্যাপ্লিকেশনগুলি ব্লক করা ব্যাকগ্রাউন্ডে একটি স্ক্রিপ্ট চালিয়েও করা যেতে পারে। "নিষিদ্ধ" অ্যাপ্লিকেশনগুলির মধ্যে একটি চালু থাকলে স্ক্রিপ্টটিতে কিছু নির্দিষ্ট পদক্ষেপ নিতে হবে।
1. নিষিদ্ধ অ্যাপ্লিকেশনগুলি ব্যবহার করার সময় স্ক্রিনটি ম্যানিপুলেট করার স্ক্রিপ্ট।
নীচের স্ক্রিপ্টটি ব্যবহারকারী সংজ্ঞায়িত অ্যাপ্লিকেশনগুলি ব্লক করার জন্য একটি নমনীয় উপায় সরবরাহ করে। এটি একটি সাধারণ কমান্ড দিয়ে চলেছে, নিষিদ্ধ অ্যাপ্লিকেশনগুলি একটি আর্গুমেন্ট হিসাবে, উদাহরণস্বরূপ (ধরে নিলে আপনি স্ক্রিপ্টটি কার্যকর করে দিয়েছেন):
/path/to/block_apps.py firefox gedit gnome-terminal
এই জাতীয় অ্যাপ্লিকেশন ব্লক করার সুবিধা হ'ল এটি নমনীয়; এমনকি এক অ্যাকাউন্টের মধ্যেই, অন্য অ্যাপ্লিকেশনগুলি কেবল যুক্তি হিসাবে অন্য অ্যাপ্লিকেশনগুলি ব্যবহার করে ব্যবহার করা যেতে পারে।
এর মানে কি
লাইনগুলির একটিতে মন্তব্য করে:
# action = "xrandr --output "+screen+" --brightness 0"
অথবা
# action = "xrandr --output "+screen+" --rotate inverted"
স্ক্রিপ্টটি হয়:
পর্দা কালো ( action = "xrandr --output "+screen+" --brightness 0"
):
বা এটিকে উল্টে দেয় ( action = "xrandr --output "+screen+" --rotate inverted"
):
( কে বলেছিল ityক্য ডানদিকে লঞ্চটি লাগাতে দেয় না? )
এই পান্ডুলিপি
#!/usr/bin/env python3
import subprocess
import getpass
import sys
import time
applications = []
i = 1
while True:
try:
applications.append(sys.argv[i])
i = i+1
except IndexError:
break
cmd1 = "xrandr"
get = subprocess.check_output(["/bin/bash", "-c", cmd1]).decode("utf-8").split()
screen = [get[i-1] for i in range(len(get)) if get[i] == "connected"][0]
#-- uncomment (only) one of the options below
# action = "xrandr --output "+screen+" --brightness 0"
action = "xrandr --output "+screen+" --rotate inverted"
#--
while True:
cmd2 = "ps -u "+getpass.getuser()
applist = subprocess.check_output(["/bin/bash", "-c", cmd2]).decode("utf-8")
for application in applications:
if application in applist:
subprocess.Popen(["/bin/bash", "-c", action])
time.sleep(5)
কিভাবে ব্যবহার করে
- একটি খালি ফাইলে স্ক্রিপ্ট অনুলিপি, এইভাবে সংরক্ষণ এটি হিসাবে
block_apps.py
, এটা এক্সিকিউটেবল করতে
কমান্ড দ্বারা এটি চালান:
/path/to/block_apps.py <application_1> <application_2> <application_3> etc...
গুরুত্বপূর্ণ
করতে বধblock_apps.py
স্ক্রিপ্ট এবং পুনঃস্থাপন "স্বাভাবিক" সেটিংস, নিচের (এটা একটি শর্টকাট কী সমন্বয় অধীন উপলব্ধ করতে) স্ক্রিপ্ট ব্যবহার করুন:
#!/usr/bin/env python3
import subprocess
cmd = "ps -ef | grep block_apps.py"
run = subprocess.check_output(["/bin/bash", "-c", cmd]).decode("utf-8").split("\n")
match = [line for line in run if "block_apps.py" in line]
command = "kill "+match[0].split()[1]
subprocess.Popen(["/bin/bash", "-c", command])
cmd1 = "xrandr"
get = subprocess.check_output(["/bin/bash", "-c", cmd1]).decode("utf-8").split()
screen = [get[i-1] for i in range(len(get)) if get[i] == "connected"][0]
restore_1 = "xrandr --output "+screen+" --brightness 1"
restore_2 = "xrandr --output "+screen+" --rotate normal"
for item in [restore_1, restore_2]:
subprocess.Popen(["/bin/bash", "-c", item])
স্ক্রিপ্টগুলির মতো সর্বদা এটি খালি ফাইলে অনুলিপি করুন, এটি সংরক্ষণ করুন, কার্যকর করে দিন kill_blockapps.py
এবং এটিকে চালান:
/path/to/kill_blockapps.py
আপনি সম্ভবত এটির একটি শর্টকাট কীতে রাখতে চান: চয়ন করুন: সিস্টেম সেটিংস> "কীবোর্ড"> "শর্টকাট"> "কাস্টম শর্টকাট"। "+" ক্লিক করুন এবং উপরের মত কমান্ড যুক্ত করুন।