Можно ли использовать разные папки для просмотра каждой папки? Некоторые папки я хотел бы видеть в виде значков, а другие лучше видеть в виде списка.
С тех пор nautilus
не имеет параметра командной строки для переключения между списком - и представлением в виде значков, ни имеет опцию установить представление prferences на папку, нет никакого очевидного способа, чтобы сделать это.
Запущенный как эксперимент, опция ниже состояла в том, чтобы видеть, могла ли она быть сделана так или иначе довольно функциональным способом.
Как упомянуто в комментарии, решение так грязно, как это добирается, но это оказалось полностью функциональным, и в часы, что я протестировал его, я не сталкивался с проблемами. Решение использовать его или не является Вашим.
Решение состоит из двух сценариев; один, чтобы быть выполненным от сочетания клавиш для добавления активного (наутилус) окно к списку. Перечисленные окна будут автоматически установлены перечислить представление, другие окна находятся в представлении в виде значков по умолчанию. Конечно, можно установить его наоборот, в зависимости от того, какой тип представления требуется установить по умолчанию
Переключатель от / для списка представления сделан путем моделирования или Ctrl+1 или Ctrl+2, которые являются ярлыками в nautilus
к сетлисту - или представление в виде значков.
Запуская первый скрипт в фоновом режиме, представление по умолчанию для окон наутилуса является представлением в виде значков.
Если Вы хотите к представлению сетлиста для определенной папки, Вы перешли к папке (откройте его), с открытым окном папки и frontmost, нажмите (например, Ctrl+Alt+A)
Это добавит имя окна к списку (сохраненный в скрытом файле в Вашем корневом каталоге). В следующий раз, когда Вы открываете папку, она автоматически переключится для списка представления, и назад к представлению в виде значков при навигации по tyo другая папка.
Для удаления папки из списка нажмите Ctrl+Alt+R с рассматриваемой папкой впереди.
Для сценариев нужны оба wmctrl
и xdotool
:
sudo apt-get install wmctrl
sudo apt-get install xdotool
Скопируйте сценарий ниже в пустой файл, сохраните его как add_folder.py
Это - сценарий, чтобы добавить или удалить окно представление списка to/from.
#!/usr/bin/env python3
import subprocess
import os
import sys
add = sys.argv[1]
wlist = os.environ["HOME"]+"/.window_list.txt"
get = lambda cmd: subprocess.check_output(cmd).decode("utf-8")
window = get(["xdotool", "getactivewindow", "getwindowname"]).strip()+"\n"
def add_window():
if os.path.exists(wlist):
current = open(wlist).readlines()
if not window in current:
new = current+[window]
open(wlist, "w").writelines(new)
else:
open(wlist, "w").write(window)
def remove_window():
if os.path.exists(wlist):
current = open(wlist).readlines()
if window in current:
current.remove(window)
open(wlist, "w").writelines(current)
if add == "+":
add_window()
elif add == "-":
remove_window()
Тестовый прогон сценарий командой:
python3 /path/to/add_folder.py +
Скрытый файл должен быть создан в ~/home
, именованный .window_list.txt
. Необходимо будет нажать Ctrl+H для создания этого видимым (файлы с именем, стартовое остроумие a'.' невидимы по умолчанию),
Если это хорошо работает, добавьте обе команды:
python3 /path/to/add_folder.py +
python3 /path/to/add_folder.py -
к комбинации сочетания клавиш (я использовал Ctrl+Alt+R и Ctrl+Alt+A): выберите: Параметры настройки системы> "Клавиатура"> "Ярлыки"> "Пользовательские Ярлыки". Нажмите "+" и добавьте команду (команды)
Скопируйте сценарий ниже в пустой файл, сохраните его как set_view.py
Это - фоновый сценарий для изменения представления окна для или списка представления или представления в виде значков.
#!/usr/bin/env python3
import subprocess
import time
import os
wlist = os.environ["HOME"]+"/.window_list.txt"
def get(cmd):
try:
return subprocess.check_output(cmd).decode("utf-8")
except subprocess.CalledProcessError:
return ""
def check_window():
pid = subprocess.check_output(["pidof", "nautilus"]).decode("utf-8").strip()
wlist = get(["wmctrl", "-lp"]).splitlines()
front = get(["xdotool", "getactivewindow", "getwindowname"]).strip()
return (front, [w for w in wlist if all([pid in w, front in w])])
match1 = check_window()
while True:
time.sleep(1)
match2 = check_window()
if all([match2 != match1, match2[1] != []]):
w = match2[0]
try:
if w in open(wlist).read().splitlines():
cmd = "xdotool key Ctrl+1"
subprocess.Popen(["/bin/bash", "-c", cmd])
else:
cmd = "xdotool key Ctrl+2"
subprocess.Popen(["/bin/bash", "-c", cmd])
except FileNotFoundError:
pass
match1 = match2
Тестовый прогон это путем выполнения из окна терминала:
python3 /path/to/set_view.py
Перейдите через свои папки и добавьте / удаляют папки к списку представления списка, как описано в 2.
(помните, представление списка будет активировано в следующий раз, когда Вы открываете папку),
Именно!
Так как сценарий не видит, существуют ли перечисленные папки все еще в Ваших каталогах, файле ~/.window_list.txt
мог бы включать некоторые устаревшие записи со временем, если Вы удаляете перечисленные папки.
Можно предотвратить dat или использованием ярлык, который Вы устанавливаете, чтобы сделать так или просто обойти через файл каждый однажды и некоторое время.