আমি আমার ডেস্কটপটি সর্বদা নাম অনুসারে সংগঠিত রাখতে চাই। আমি কীভাবে এটি অর্জন করতে পারি?
আমি আমার ডেস্কটপটি সর্বদা নাম অনুসারে সংগঠিত রাখতে চাই। আমি কীভাবে এটি অর্জন করতে পারি?
উত্তর:
নীচের স্ক্রিপ্টটি ডেস্কটপটিকে পুনরায় সাজিয়ে তুলবে:
... বর্ণমালা অনুসারে ডেস্কটপে যেমন:
অর্ডার দেওয়া:
তদতিরিক্ত, আপনি উল্লম্বভাবে (সারি) আইটেমগুলির একটি স্বেচ্ছাসেবী সংখ্যা সেট করতে পারেন; অনুভূমিক ব্যবধানটি সেই অনুযায়ী স্বয়ংক্রিয়ভাবে সেট হয়ে যাবে।
#!/usr/bin/env python3
import subprocess
import os
import math
import time
# set the size of the squares (indirectly, by setting n- rows)
rows = 10
# set x/y offset of the matrix if you want
x_offs = -15
y_offs = -30
def get(cmd):
return subprocess.check_output(cmd).decode("utf-8")
dt = get(["xdg-user-dir", "DESKTOP"]).strip()
# find size of the left screen
left = [int(n) for n in sum(
[s.split("+")[0].split("x") for s in \
get("xrandr").split() if "+0+" in s], [])]
# size of the squares (icon area)
sqr = int((left[1]/rows))
# number of cols, squares
cols = math.floor(left[0]/sqr)
n_sqrs = cols*rows
# define positions (matrix)
pos = list([[
str(int((math.floor(n/rows)*sqr)+(sqr/2)+x_offs)),
str(int(((n%rows)*sqr)+(sqr/2)+y_offs)),
] for n in range(n_sqrs)])
# list iconfiles, split into dirs and files, sort & combine
iconlist = [os.path.join(dt, item) for item in \
sorted([item for item in os.listdir(dt) if not "~" in item])]
dirs = []; files = []
for it in iconlist:
if os.path.isfile(it):
files.append(it)
else:
dirs.append(it)
iconlist = dirs+files
# place icons in position(s)
for i, item in enumerate(iconlist):
location = (",").join(pos[i])
subprocess.call(["gvfs-set-attribute", "-t", "string", item,
'metadata::nautilus-icon-position', location])
# simulate F5 to refresh desktop, retry for max 20 secs if not in front
t = 0
while t < 40:
w_id = [l.split()[-1] for l in get(["xprop", "-root"]).splitlines() \
if "_NET_ACTIVE_WINDOW(WINDOW):" in l][0]
if "desktop" in get(["xprop", "-id", w_id, "WM_CLASS"]):
subprocess.Popen(["xdotool", "key", "F5"])
break
else:
time.sleep(0.5)
t += 1
স্ক্রিপ্টটির প্রয়োজন xdotool
:
sudo apt-get install xdotool
একটি ফাঁকা ফাইলে স্ক্রিপ্টটি অনুলিপি করুন, এটি সংরক্ষণ করুন arrange_dt.py
কমান্ড দ্বারা এটি পরীক্ষা করুন:
python3 /path/to/arrange_dt.py
20 সেকেন্ডের মধ্যে ডেস্কটপে ক্লিক করুন, আপনার নতুন ব্যবস্থা প্রয়োগ করা হবে। আপনি যদি একটি শর্টকাট থেকে স্ক্রিপ্টটি চালনা করেন, ডেস্কটপ সামনে থাকাকালীন ব্যবস্থাটি কার্যকর করা হবে। যদি ডেস্কটপ সামনের দিকে না থাকে তবে স্ক্রিপ্টটি সর্বোচ্চ 20 সেকেন্ডের জন্য অপেক্ষা করে। যদি সময় অতিক্রম করে তবে কেবলF5প্রয়োগ করতেটিপুন।
যদি সব ঠিকঠাক কাজ করে তবে এটিকে একটি শর্টকাট কীতে যুক্ত করুন: চয়ন করুন: সিস্টেম সেটিংস> "কীবোর্ড"> "শর্টকাট"> "কাস্টম শর্টকাট"। "+" ক্লিক করুন এবং কমান্ডটি যুক্ত করুন:
python3 /path/to/arrange_dt.py
আপনি তিনটি উপায়ে আইকনগুলির বিন্যাসকে প্রভাবিত করতে পারেন:
"টাইলস" এর আকার নির্ধারণ করুন
# set the size of the squares (indirectly, by setting n- rows)
rows = 10
এটি উলম্বভাবে আইকনগুলির (সর্বাধিক) সংখ্যা সেট করবে। "টাইলস" এর আকার হবে সমান (x, y)
অনুভূমিক অফসেট সেট করুন
x_offs = -15
এটি সামগ্রিকভাবে আইকন-ম্যাট্রিক্সের ডিফল্ট অবস্থান থেকে x- বিচ্যুতি সেট করবে
উল্লম্ব অফসেট সেট করুন
y_offs = -30
এটি আইকন-ম্যাট্রিক্সের ডিফল্ট অবস্থান থেকে y- বিচ্যুতি সেট করবে
একটি উদাহরণ, ব্যবহার করে:
# set the size of the squares (indirectly, by setting n- rows)
rows = 6
# set x/y offset of the matrix if you want
x_offs = 50
y_offs = 10
নীচের ব্যাখ্যাটি বেশিরভাগ কোডিংয়ের চেয়ে ধারণার উপর একটি ব্যাখ্যা
python
'রos.listdir(Desktop)
তারপরে আমরা ম্যাট্রিক্স তৈরি করব:
নীচের চিত্রটিতে, এই "ভার্চুয়াল" স্কোয়ারগুলি দৃশ্যমান, লাল বিন্দুটি যেখানে আইকনটি রাখা হয়েছে।
তারপরে আমাদের যা করতে হবে তা হল প্রথম আইকনটি একটি বর্গক্ষেত্রের মাপের অর্ধেকের উপরে, অনুভূমিকভাবে এবং উলম্বভাবে।
জন্য এক্স-অবস্থান সব অন্যান্য আইকন, কেবলমাত্র আমরা তাদের বিভক্ত করতে প্রয়োজন সূচক সারির সংখ্যা দ্বারা (শূন্য দিয়ে শুরু), নিচে বৃত্তাকার। ফলাফলটি প্রথম আইকনের (উপরে বাম) এক্স পজিশনে যুক্ত করা হবে, উদাহরণস্বরূপ:
item 10 (index 9): 9/4 = 2,25, rounded down: 2
x position = position of icon 0 + 2 x the width of a square
item 17 (index 16): 16/4 = 4, rounded down: 4
x position = position of icon 0 + 4 x the width of a square
জন্য Y অবস্থানে রয়েছে এমন সব অন্যান্য আইকন, কেবলমাত্র আমরা প্রয়োজন বাকি সূচক এবং সারি সংখ্যা। ফলাফলের x বর্গের প্রস্থটি প্রথম আইকনের y অবস্থানে (উপরে বাম) যুক্ত করা হবে, উদাহরণস্বরূপ:
item 10 (index 9): 9%4 = 1
y position = position of icon 0 + 1 x the height of a square
item 17 (index 16): 16%4 = 0
y position = position of icon 0 + 0 x the height of a square
পরবর্তীকালে, কমান্ডটি ব্যবহার করে আমরা ডেস্কটপে আইকনগুলি রাখি:
gvfs-set-attribute <path_to_dir_or_file> metadata::nautilus-icon-position x,y
পরিশেষে, পরিবর্তিত বিন্যাস প্রয়োগ করতে (ডেস্কটপ রিফ্রেশ করুন) F5 সামনে আমাদের ডেস্কটপটি দিয়ে চাপতে হবে । যদি এটি হয় তবে তা অবিলম্বে সম্পন্ন হবে। যদি তা না হয় তবে ডেস্কটপটি সামনে উপস্থিত থাকলে ভার্চুয়াল টিপুন F5এবং বিরতিতে 20 সেকেন্ডের মধ্যে স্ক্রিপ্টটি আবার চেষ্টা করে । যদি 20 সেকেন্ড পরেও ডেস্কটপটি সামনে না থাকে তবে আপনাকে ম্যানুয়ালি টিপতে হবে F5।
6 -50 -50
তবে তিনটি ফোল্ডার সামান্য অফসেট রয়েছে। কোন ধারণা কেন? স্ক্রিনশট: i.imgur.com/XuGIiBT.png
উপরের প্রশ্নের দ্বারা অনুপ্রাণিত হয়ে, আমি iconic
আপনাকে আইকনগুলি চারটি আলাদাভাবে বাছাই করে এই সমস্যার সমাধান করতে লিখেছিলাম । অতিরিক্তভাবে এটি করবে:
আপনি গিথুবে স্ক্রিপ্টটি পেতে পারেন ।
এখানে মূল পর্দা:
পরিদর্শন GitHub জন্য পৃষ্ঠা প্রতিমাসংক্রান্ত সব অন্যান্য পর্দা, ব্যাখ্যা এবং স্ক্রিপ্ট একটি কপি দেখতে।