Моя версия:
ls -l /proc/*/exe 2>/dev/null | grep -E 'wine(64)?-preloader|wineserver' | perl -pe 's;^.*/proc/(\d+)/exe.*$;$1;g;' | xargs -n 1 kill
Он убивает все винные процессы. Благодаря этому сообщению https://askubuntu.com/a/732320/605355
К сожалению, nautilus не предлагает параметры командной строки для чтения открытого каталога своих окон и не имеет возможности отправлять существующее окно другому каталог.
send
У нас есть xdotool, а не
, а вы не можете вспомнить, что вы не видите, делать то, что nautilus не делает, но, по крайней мере, подделывать поведение, которое вы описываете. Мы можем сделать это так, чтобы «вы поверите», если бы вы не знали, как это делается.
Хотя приведенное ниже решение не выдерживает перезагрузки, «запоминание» (возможно, с вкладками) окно и все открытые каталоги очень хорошо возможны в течение одного сеанса. Поскольку вы упомянули, что вас интересует это как «второй выбор», вот оно.
Хотя мы не можем подделать окно и сохранить его вкладки и открытые каталоги, мы можем сделать существующее окно, казалось бы (и полностью), исчезнуть с помощью xdotool ,
Если мы впоследствии изменим поведение пусковой установки nautilus таким образом, чтобы он мог искать возможные неотображаемые окна для переназначения, прежде чем открывать новый, мы эффективно имеем точно так же, как если бы nautilus запомнил последнее используемое окно.
#!/usr/bin/env python3
import subprocess
import os
app = "nautilus"
wfile = os.environ["HOME"]+"/.unmapped_"+app
def get(cmd):
# simply a helper function
return subprocess.check_output(cmd).decode("utf-8").strip()
def check_windowtype(w_id):
# check the type of window; only unmap "NORMAL" windows
return "_NET_WM_WINDOW_TYPE_NORMAL" in get(["xprop", "-id", w_id])
def get_pid(app):
# (try to) get the pid of the application
try:
return get(["pgrep", app])
except subprocess.CalledProcessError:
pass
def get_matches(pid):
# get the window list, select the valid (real) app's windows
ws = get(["wmctrl", "-lpG"]).splitlines()
matches = [w.split() for w in ws if pid in w]
return [w for w in matches if check_windowtype(w[0]) == True]
try:
# try to read the file with unmapped windows
wininf = [l.split() for l in open(wfile).readlines()]
except FileNotFoundError:
# if there are no, unmap the current app's windows
filebrowserwins = get_matches(get_pid(app))
if filebrowserwins:
open(wfile, "wt").write(("\n").join((" ").join(l) for l in filebrowserwins))
for w in [w[0] for w in filebrowserwins]:
subprocess.Popen(["xdotool", "windowunmap", w])
else:
arg = "--new-window" if app == "nautilus" else ""
subprocess.Popen([app, arg])
else:
# re- map unmapped windows
for w in wininf:
wid = w[0]; geo = w[3:7]
subprocess.call(["xdotool", "windowmap", wid])
subprocess.Popen(["wmctrl", "-ir", wid, "-e", "0,"+(",").join(geo)])
os.remove(wfile)
Для сценария нужны как wmctrl, так и xdotool: sudo apt-get install wmctrl xdotool
Скопируйте пусковую установку nautilus с /usr/share/applications на ~/.local/share/applications в течение 15.04 и более поздних версий: cp /usr/share/applications/org.gnome.Nautilus.desktop ~/.local/share/applications
для более ранних версий Ubuntu: cp /usr/share/applications/nautilus.desktop ~/.local/share/applications
откройте локальную копию с помощью gedit: gedit ~/.local/share/applications/org.gnome.Nautilus.desktop
(в случае 15.04 +) и найдите первую строку, начиная с Exec=. Измените его на: Exec=python3 /path/to/remember.py
Сохраните и закройте файл. Создайте комбинацию клавиш с той же командой: Выберите: Системные настройки> «Клавиатура»> «Ярлыки»> «Пользовательские ярлыки». Нажмите «+» и добавьте команду: python3 /path/to/remember.py
Теперь выйдите из системы и снова в Использование очень просто:
To откройте окно, сделайте как обычно: нажмите на пусковую установку nautilus. Вставьте окно по своему усмотрению: Чтобы закрыть окно окончательно, закройте его, щелкнув окно «закрыть» (x) окна. Чтобы сохранить окно (ы) + все его вкладки: нажмите комбинацию клавиш. Окно (окна) исчезнет (казалось бы, близко). В следующий раз, когда вы нажмете кнопку запуска, окна (ы) nautilus будут отображаться точно так же, как в последний раз, даже позиция (позиции) окна будет сохранена.Вот это
Пользователи Nemo могут одинаково использовать решение выше, но:
В разделе «Как использовать -section» я предложил щелкнуть значок «Наутилус», чтобы переназначить возможные незакрашенные окна. Однако клавиша быстрого доступа сделает то же самое, поэтому вы можете увидеть, что наиболее удобно для вас. Кроме того, если вы открыли папку двойным щелчком после того, как вы поменяли или поместили больше папок, то неактивные папки по-прежнему будут переназначены ярлыком. Чтобы закрыть окно окончательно, закройте его, нажав кнопку «закрыть» "(x).Чтобы закрыть окно окончательно, закройте его, щелкнув окно« закрыть »(x) окна.
gedit ~/.local/share/applications/nemo.desktop
В глава раздела сценария, измените:
К сожалению, nautilus не предлагает параметры командной строки для чтения открытого каталога своих окон и не имеет возможности отправлять существующее окно другому каталог.
send
У нас есть xdotool, а не
, а вы не можете вспомнить, что вы не видите, делать то, что nautilus не делает, но, по крайней мере, подделывать поведение, которое вы описываете. Мы можем сделать это так, чтобы «вы поверите», если бы вы не знали, как это делается.
Хотя приведенное ниже решение не выдерживает перезагрузки, «запоминание» (возможно, с вкладками) окно и все открытые каталоги очень хорошо возможны в течение одного сеанса. Поскольку вы упомянули, что вас интересует это как «второй выбор», вот оно.
Хотя мы не можем подделать окно и сохранить его вкладки и открытые каталоги, мы можем сделать существующее окно, казалось бы (и полностью), исчезнуть с помощью xdotool ,
Если мы впоследствии изменим поведение пусковой установки nautilus таким образом, чтобы он мог искать возможные неотображаемые окна для переназначения, прежде чем открывать новый, мы эффективно имеем точно так же, как если бы nautilus запомнил последнее используемое окно.
#!/usr/bin/env python3
import subprocess
import os
app = "nautilus"
wfile = os.environ["HOME"]+"/.unmapped_"+app
def get(cmd):
# simply a helper function
return subprocess.check_output(cmd).decode("utf-8").strip()
def check_windowtype(w_id):
# check the type of window; only unmap "NORMAL" windows
return "_NET_WM_WINDOW_TYPE_NORMAL" in get(["xprop", "-id", w_id])
def get_pid(app):
# (try to) get the pid of the application
try:
return get(["pgrep", app])
except subprocess.CalledProcessError:
pass
def get_matches(pid):
# get the window list, select the valid (real) app's windows
ws = get(["wmctrl", "-lpG"]).splitlines()
matches = [w.split() for w in ws if pid in w]
return [w for w in matches if check_windowtype(w[0]) == True]
try:
# try to read the file with unmapped windows
wininf = [l.split() for l in open(wfile).readlines()]
except FileNotFoundError:
# if there are no, unmap the current app's windows
filebrowserwins = get_matches(get_pid(app))
if filebrowserwins:
open(wfile, "wt").write(("\n").join((" ").join(l) for l in filebrowserwins))
for w in [w[0] for w in filebrowserwins]:
subprocess.Popen(["xdotool", "windowunmap", w])
else:
arg = "--new-window" if app == "nautilus" else ""
subprocess.Popen([app, arg])
else:
# re- map unmapped windows
for w in wininf:
wid = w[0]; geo = w[3:7]
subprocess.call(["xdotool", "windowmap", wid])
subprocess.Popen(["wmctrl", "-ir", wid, "-e", "0,"+(",").join(geo)])
os.remove(wfile)
Для сценария нужны как wmctrl, так и xdotool: sudo apt-get install wmctrl xdotool
Скопируйте пусковую установку nautilus с /usr/share/applications на ~/.local/share/applications в течение 15.04 и более поздних версий: cp /usr/share/applications/org.gnome.Nautilus.desktop ~/.local/share/applications
для более ранних версий Ubuntu: cp /usr/share/applications/nautilus.desktop ~/.local/share/applications
откройте локальную копию с помощью gedit: gedit ~/.local/share/applications/org.gnome.Nautilus.desktop
(в случае 15.04 +) и найдите первую строку, начиная с Exec=. Измените его на: Exec=python3 /path/to/remember.py
Сохраните и закройте файл. Создайте комбинацию клавиш с той же командой: Выберите: Системные настройки> «Клавиатура»> «Ярлыки»> «Пользовательские ярлыки». Нажмите «+» и добавьте команду: python3 /path/to/remember.py
Теперь выйдите из системы и снова в Использование очень просто:
To откройте окно, сделайте как обычно: нажмите на пусковую установку nautilus. Вставьте окно по своему усмотрению: Чтобы закрыть окно окончательно, закройте его, щелкнув окно «закрыть» (x) окна. Чтобы сохранить окно (ы) + все его вкладки: нажмите комбинацию клавиш. Окно (окна) исчезнет (казалось бы, близко). В следующий раз, когда вы нажмете кнопку запуска, окна (ы) nautilus будут отображаться точно так же, как в последний раз, даже позиция (позиции) окна будет сохранена.Вот это
Пользователи Nemo могут одинаково использовать решение выше, но:
В разделе «Как использовать -section» я предложил щелкнуть значок «Наутилус», чтобы переназначить возможные незакрашенные окна. Однако клавиша быстрого доступа сделает то же самое, поэтому вы можете увидеть, что наиболее удобно для вас. Кроме того, если вы открыли папку двойным щелчком после того, как вы поменяли или поместили больше папок, то неактивные папки по-прежнему будут переназначены ярлыком. Чтобы закрыть окно окончательно, закройте его, нажав кнопку «закрыть» "(x).Чтобы закрыть окно окончательно, закройте его, щелкнув окно« закрыть »(x) окна.
gedit ~/.local/share/applications/nemo.desktop
В глава раздела сценария, измените:
К сожалению, nautilus не предлагает параметры командной строки для чтения открытого каталога своих окон и не имеет возможности отправлять существующее окно другому каталог.
send
У нас есть xdotool, а не
, а вы не можете вспомнить, что вы не видите, делать то, что nautilus не делает, но, по крайней мере, подделывать поведение, которое вы описываете. Мы можем сделать это так, чтобы «вы поверите», если бы вы не знали, как это делается.
Хотя приведенное ниже решение не выдерживает перезагрузки, «запоминание» (возможно, с вкладками) окно и все открытые каталоги очень хорошо возможны в течение одного сеанса. Поскольку вы упомянули, что вас интересует это как «второй выбор», вот оно.
Хотя мы не можем подделать окно и сохранить его вкладки и открытые каталоги, мы можем сделать существующее окно, казалось бы (и полностью), исчезнуть с помощью xdotool ,
Если мы впоследствии изменим поведение пусковой установки nautilus таким образом, чтобы он мог искать возможные неотображаемые окна для переназначения, прежде чем открывать новый, мы эффективно имеем точно так же, как если бы nautilus запомнил последнее используемое окно.
#!/usr/bin/env python3
import subprocess
import os
app = "nautilus"
wfile = os.environ["HOME"]+"/.unmapped_"+app
def get(cmd):
# simply a helper function
return subprocess.check_output(cmd).decode("utf-8").strip()
def check_windowtype(w_id):
# check the type of window; only unmap "NORMAL" windows
return "_NET_WM_WINDOW_TYPE_NORMAL" in get(["xprop", "-id", w_id])
def get_pid(app):
# (try to) get the pid of the application
try:
return get(["pgrep", app])
except subprocess.CalledProcessError:
pass
def get_matches(pid):
# get the window list, select the valid (real) app's windows
ws = get(["wmctrl", "-lpG"]).splitlines()
matches = [w.split() for w in ws if pid in w]
return [w for w in matches if check_windowtype(w[0]) == True]
try:
# try to read the file with unmapped windows
wininf = [l.split() for l in open(wfile).readlines()]
except FileNotFoundError:
# if there are no, unmap the current app's windows
filebrowserwins = get_matches(get_pid(app))
if filebrowserwins:
open(wfile, "wt").write(("\n").join((" ").join(l) for l in filebrowserwins))
for w in [w[0] for w in filebrowserwins]:
subprocess.Popen(["xdotool", "windowunmap", w])
else:
arg = "--new-window" if app == "nautilus" else ""
subprocess.Popen([app, arg])
else:
# re- map unmapped windows
for w in wininf:
wid = w[0]; geo = w[3:7]
subprocess.call(["xdotool", "windowmap", wid])
subprocess.Popen(["wmctrl", "-ir", wid, "-e", "0,"+(",").join(geo)])
os.remove(wfile)
Для сценария нужны как wmctrl, так и xdotool: sudo apt-get install wmctrl xdotool
Скопируйте пусковую установку nautilus с /usr/share/applications на ~/.local/share/applications в течение 15.04 и более поздних версий: cp /usr/share/applications/org.gnome.Nautilus.desktop ~/.local/share/applications
для более ранних версий Ubuntu: cp /usr/share/applications/nautilus.desktop ~/.local/share/applications
откройте локальную копию с помощью gedit: gedit ~/.local/share/applications/org.gnome.Nautilus.desktop
(в случае 15.04 +) и найдите первую строку, начиная с Exec=. Измените его на: Exec=python3 /path/to/remember.py
Сохраните и закройте файл. Создайте комбинацию клавиш с той же командой: Выберите: Системные настройки> «Клавиатура»> «Ярлыки»> «Пользовательские ярлыки». Нажмите «+» и добавьте команду: python3 /path/to/remember.py
Теперь выйдите из системы и снова в Использование очень просто:
To откройте окно, сделайте как обычно: нажмите на пусковую установку nautilus. Вставьте окно по своему усмотрению: Чтобы закрыть окно окончательно, закройте его, щелкнув окно «закрыть» (x) окна. Чтобы сохранить окно (ы) + все его вкладки: нажмите комбинацию клавиш. Окно (окна) исчезнет (казалось бы, близко). В следующий раз, когда вы нажмете кнопку запуска, окна (ы) nautilus будут отображаться точно так же, как в последний раз, даже позиция (позиции) окна будет сохранена.Вот это
Пользователи Nemo могут одинаково использовать решение выше, но:
В разделе «Как использовать -section» я предложил щелкнуть значок «Наутилус», чтобы переназначить возможные незакрашенные окна. Однако клавиша быстрого доступа сделает то же самое, поэтому вы можете увидеть, что наиболее удобно для вас. Кроме того, если вы открыли папку двойным щелчком после того, как вы поменяли или поместили больше папок, то неактивные папки по-прежнему будут переназначены ярлыком. Чтобы закрыть окно окончательно, закройте его, нажав кнопку «закрыть» "(x).Чтобы закрыть окно окончательно, закройте его, щелкнув окно« закрыть »(x) окна.
gedit ~/.local/share/applications/nemo.desktop
В глава раздела сценария, измените:
К сожалению, nautilus не предлагает параметры командной строки для чтения открытого каталога своих окон и не имеет никакой опции для отправки существующее окно в другой каталог.
Однако
У нас есть xdotool
, а не делать то, что nautilus
нет, но по крайней мере подделка поведение, которое вы описываете. Мы можем сделать это так, чтобы «вы поверили», если бы вы не знали, как это делается.
Хотя приведенное ниже решение не выдерживает перезагрузки, «запоминание» (возможно, с вкладками) окно и все открытые каталоги очень хорошо возможны в течение одного сеанса. Поскольку вы упомянули, что вас интересует это как «второй выбор», вот оно.
Хотя мы не можем закрыть окно и сохранить его вкладки и открытые каталоги, мы можем сделать существующее окно, казалось бы, и полностью исчезнуть, с помощью xdotool
.
Если мы впоследствии изменим поведение пусковой установки nautilus
таким образом, чтобы он сначала искал возможное unmapped windows для переназначения перед открытием новый, эффективно точно имеет такое же поведение, как если бы nautilus
помнил последнее используемое окно.
remember.py
#!/usr/bin/env python3
import subprocess
import os
app = "nautilus"
wfile = os.environ["HOME"]+"/.unmapped_"+app
def get(cmd):
# simply a helper function
return subprocess.check_output(cmd).decode("utf-8").strip()
def check_windowtype(w_id):
# check the type of window; only unmap "NORMAL" windows
return "_NET_WM_WINDOW_TYPE_NORMAL" in get(["xprop", "-id", w_id])
def get_pid(app):
# (try to) get the pid of the application
try:
return get(["pgrep", app])
except subprocess.CalledProcessError:
pass
def get_matches(pid):
# get the window list, select the valid (real) app's windows
ws = get(["wmctrl", "-lpG"]).splitlines()
matches = [w.split() for w in ws if pid in w]
return [w for w in matches if check_windowtype(w[0]) == True]
try:
# try to read the file with unmapped windows
wininf = [l.split() for l in open(wfile).readlines()]
except FileNotFoundError:
# if there are no, unmap the current app's windows
filebrowserwins = get_matches(get_pid(app))
if filebrowserwins:
open(wfile, "wt").write(("\n").join((" ").join(l) for l in filebrowserwins))
for w in [w[0] for w in filebrowserwins]:
subprocess.Popen(["xdotool", "windowunmap", w])
else:
arg = "--new-window" if app == "nautilus" else ""
subprocess.Popen([app, arg])
else:
# re- map unmapped windows
for w in wininf:
wid = w[0]; geo = w[3:7]
subprocess.call(["xdotool", "windowmap", wid])
subprocess.Popen(["wmctrl", "-ir", wid, "-e", "0,"+(",").join(geo)])
os.remove(wfile)
wmctrl
, так и xdotool
: sudo apt-get install wmctrl xdotool
nautilus
с /usr/share/applications
на ~/.local/share/applications
в течение 15.04 и более поздних версий: cp /usr/share/applications/org.gnome.Nautilus.desktop ~/.local/share/applications
для более ранних версий Ubuntu: cp /usr/share/applications/nautilus.desktop ~/.local/share/applications
gedit ~/.local/share/applications/org.gnome.Nautilus.desktop
(в случай 15.04 +
) и найдите первую строку , начиная с Exec=
. Измените его на: Exec=python3 /path/to/remember.py
Сохраните и закройте файл. python3 /path/to/remember.py
очень просто:
Это он
Пользователи Nemo могут в равной степени использовать решение выше, но:
app = "nautilus"
в: app = "nemo"
cp /usr/share/applications/nemo.desktop ~/.local/share/applications
gedit ~/.local/share/applications/nemo.desktop
Протестировано, оказалось, что он работает с nemo
К сожалению, nautilus не предлагает параметры командной строки для чтения открытого каталога своих окон и не имеет никакой опции для отправки существующее окно в другой каталог.
Однако
У нас есть xdotool
, а не делать то, что nautilus
нет, но по крайней мере подделка поведение, которое вы описываете. Мы можем сделать это так, чтобы «вы поверили», если бы вы не знали, как это делается.
Хотя приведенное ниже решение не выдерживает перезагрузки, «запоминание» (возможно, с вкладками) окно и все открытые каталоги очень хорошо возможны в течение одного сеанса. Поскольку вы упомянули, что вас интересует это как «второй выбор», вот оно.
Хотя мы не можем закрыть окно и сохранить его вкладки и открытые каталоги, мы можем сделать существующее окно, казалось бы, и полностью исчезнуть, с помощью xdotool
.
Если мы впоследствии изменим поведение пусковой установки nautilus
таким образом, чтобы он сначала искал возможное unmapped windows для переназначения перед открытием новый, эффективно точно имеет такое же поведение, как если бы nautilus
помнил последнее используемое окно.
remember.py
#!/usr/bin/env python3
import subprocess
import os
app = "nautilus"
wfile = os.environ["HOME"]+"/.unmapped_"+app
def get(cmd):
# simply a helper function
return subprocess.check_output(cmd).decode("utf-8").strip()
def check_windowtype(w_id):
# check the type of window; only unmap "NORMAL" windows
return "_NET_WM_WINDOW_TYPE_NORMAL" in get(["xprop", "-id", w_id])
def get_pid(app):
# (try to) get the pid of the application
try:
return get(["pgrep", app])
except subprocess.CalledProcessError:
pass
def get_matches(pid):
# get the window list, select the valid (real) app's windows
ws = get(["wmctrl", "-lpG"]).splitlines()
matches = [w.split() for w in ws if pid in w]
return [w for w in matches if check_windowtype(w[0]) == True]
try:
# try to read the file with unmapped windows
wininf = [l.split() for l in open(wfile).readlines()]
except FileNotFoundError:
# if there are no, unmap the current app's windows
filebrowserwins = get_matches(get_pid(app))
if filebrowserwins:
open(wfile, "wt").write(("\n").join((" ").join(l) for l in filebrowserwins))
for w in [w[0] for w in filebrowserwins]:
subprocess.Popen(["xdotool", "windowunmap", w])
else:
arg = "--new-window" if app == "nautilus" else ""
subprocess.Popen([app, arg])
else:
# re- map unmapped windows
for w in wininf:
wid = w[0]; geo = w[3:7]
subprocess.call(["xdotool", "windowmap", wid])
subprocess.Popen(["wmctrl", "-ir", wid, "-e", "0,"+(",").join(geo)])
os.remove(wfile)
wmctrl
, так и xdotool
: sudo apt-get install wmctrl xdotool
nautilus
с /usr/share/applications
на ~/.local/share/applications
в течение 15.04 и более поздних версий: cp /usr/share/applications/org.gnome.Nautilus.desktop ~/.local/share/applications
для более ранних версий Ubuntu: cp /usr/share/applications/nautilus.desktop ~/.local/share/applications
gedit ~/.local/share/applications/org.gnome.Nautilus.desktop
(в случай 15.04 +
) и найдите первую строку , начиная с Exec=
. Измените его на: Exec=python3 /path/to/remember.py
Сохраните и закройте файл. python3 /path/to/remember.py
очень просто:
Это он
Пользователи Nemo могут в равной степени использовать решение выше, но:
app = "nautilus"
в: app = "nemo"
cp /usr/share/applications/nemo.desktop ~/.local/share/applications
gedit ~/.local/share/applications/nemo.desktop
Протестировано, оказалось, что он работает с nemo
К сожалению, nautilus не предлагает параметры командной строки для чтения открытого каталога своих окон и не имеет никакой опции для отправки существующее окно в другой каталог.
Однако
У нас есть xdotool
, а не делать то, что nautilus
нет, но по крайней мере подделка поведение, которое вы описываете. Мы можем сделать это так, чтобы «вы поверили», если бы вы не знали, как это делается.
Хотя приведенное ниже решение не выдерживает перезагрузки, «запоминание» (возможно, с вкладками) окно и все открытые каталоги очень хорошо возможны в течение одного сеанса. Поскольку вы упомянули, что вас интересует это как «второй выбор», вот оно.
Хотя мы не можем закрыть окно и сохранить его вкладки и открытые каталоги, мы можем сделать существующее окно, казалось бы, и полностью исчезнуть, с помощью xdotool
.
Если мы впоследствии изменим поведение пусковой установки nautilus
таким образом, чтобы он сначала искал возможное unmapped windows для переназначения перед открытием новый, эффективно точно имеет такое же поведение, как если бы nautilus
помнил последнее используемое окно.
remember.py
#!/usr/bin/env python3
import subprocess
import os
app = "nautilus"
wfile = os.environ["HOME"]+"/.unmapped_"+app
def get(cmd):
# simply a helper function
return subprocess.check_output(cmd).decode("utf-8").strip()
def check_windowtype(w_id):
# check the type of window; only unmap "NORMAL" windows
return "_NET_WM_WINDOW_TYPE_NORMAL" in get(["xprop", "-id", w_id])
def get_pid(app):
# (try to) get the pid of the application
try:
return get(["pgrep", app])
except subprocess.CalledProcessError:
pass
def get_matches(pid):
# get the window list, select the valid (real) app's windows
ws = get(["wmctrl", "-lpG"]).splitlines()
matches = [w.split() for w in ws if pid in w]
return [w for w in matches if check_windowtype(w[0]) == True]
try:
# try to read the file with unmapped windows
wininf = [l.split() for l in open(wfile).readlines()]
except FileNotFoundError:
# if there are no, unmap the current app's windows
filebrowserwins = get_matches(get_pid(app))
if filebrowserwins:
open(wfile, "wt").write(("\n").join((" ").join(l) for l in filebrowserwins))
for w in [w[0] for w in filebrowserwins]:
subprocess.Popen(["xdotool", "windowunmap", w])
else:
arg = "--new-window" if app == "nautilus" else ""
subprocess.Popen([app, arg])
else:
# re- map unmapped windows
for w in wininf:
wid = w[0]; geo = w[3:7]
subprocess.call(["xdotool", "windowmap", wid])
subprocess.Popen(["wmctrl", "-ir", wid, "-e", "0,"+(",").join(geo)])
os.remove(wfile)
wmctrl
, так и xdotool
: sudo apt-get install wmctrl xdotool
nautilus
с /usr/share/applications
на ~/.local/share/applications
в течение 15.04 и более поздних версий: cp /usr/share/applications/org.gnome.Nautilus.desktop ~/.local/share/applications
для более ранних версий Ubuntu: cp /usr/share/applications/nautilus.desktop ~/.local/share/applications
gedit ~/.local/share/applications/org.gnome.Nautilus.desktop
(в случай 15.04 +
) и найдите первую строку , начиная с Exec=
. Измените его на: Exec=python3 /path/to/remember.py
Сохраните и закройте файл. python3 /path/to/remember.py
очень просто:
Это он
Пользователи Nemo могут в равной степени использовать решение выше, но:
app = "nautilus"
в: app = "nemo"
cp /usr/share/applications/nemo.desktop ~/.local/share/applications
gedit ~/.local/share/applications/nemo.desktop
Протестировано, оказалось, что он работает с nemo
К сожалению, nautilus не предлагает параметры командной строки для чтения открытого каталога своих окон и не имеет никакой опции для отправки существующее окно в другой каталог.
Однако
У нас есть xdotool
, а не делать то, что nautilus
нет, но по крайней мере подделка поведение, которое вы описываете. Мы можем сделать это так, чтобы «вы поверили», если бы вы не знали, как это делается.
Хотя приведенное ниже решение не выдерживает перезагрузки, «запоминание» (возможно, с вкладками) окно и все открытые каталоги очень хорошо возможны в течение одного сеанса. Поскольку вы упомянули, что вас интересует это как «второй выбор», вот оно.
Хотя мы не можем закрыть окно и сохранить его вкладки и открытые каталоги, мы можем сделать существующее окно, казалось бы, и полностью исчезнуть, с помощью xdotool
.
Если мы впоследствии изменим поведение пусковой установки nautilus
таким образом, чтобы он сначала искал возможное unmapped windows для переназначения перед открытием новый, эффективно точно имеет такое же поведение, как если бы nautilus
помнил последнее используемое окно.
remember.py
#!/usr/bin/env python3
import subprocess
import os
app = "nautilus"
wfile = os.environ["HOME"]+"/.unmapped_"+app
def get(cmd):
# simply a helper function
return subprocess.check_output(cmd).decode("utf-8").strip()
def check_windowtype(w_id):
# check the type of window; only unmap "NORMAL" windows
return "_NET_WM_WINDOW_TYPE_NORMAL" in get(["xprop", "-id", w_id])
def get_pid(app):
# (try to) get the pid of the application
try:
return get(["pgrep", app])
except subprocess.CalledProcessError:
pass
def get_matches(pid):
# get the window list, select the valid (real) app's windows
ws = get(["wmctrl", "-lpG"]).splitlines()
matches = [w.split() for w in ws if pid in w]
return [w for w in matches if check_windowtype(w[0]) == True]
try:
# try to read the file with unmapped windows
wininf = [l.split() for l in open(wfile).readlines()]
except FileNotFoundError:
# if there are no, unmap the current app's windows
filebrowserwins = get_matches(get_pid(app))
if filebrowserwins:
open(wfile, "wt").write(("\n").join((" ").join(l) for l in filebrowserwins))
for w in [w[0] for w in filebrowserwins]:
subprocess.Popen(["xdotool", "windowunmap", w])
else:
arg = "--new-window" if app == "nautilus" else ""
subprocess.Popen([app, arg])
else:
# re- map unmapped windows
for w in wininf:
wid = w[0]; geo = w[3:7]
subprocess.call(["xdotool", "windowmap", wid])
subprocess.Popen(["wmctrl", "-ir", wid, "-e", "0,"+(",").join(geo)])
os.remove(wfile)
wmctrl
, так и xdotool
: sudo apt-get install wmctrl xdotool
nautilus
с /usr/share/applications
на ~/.local/share/applications
в течение 15.04 и более поздних версий: cp /usr/share/applications/org.gnome.Nautilus.desktop ~/.local/share/applications
для более ранних версий Ubuntu: cp /usr/share/applications/nautilus.desktop ~/.local/share/applications
gedit ~/.local/share/applications/org.gnome.Nautilus.desktop
(в случай 15.04 +
) и найдите первую строку , начиная с Exec=
. Измените его на: Exec=python3 /path/to/remember.py
Сохраните и закройте файл. python3 /path/to/remember.py
очень просто:
Это он
Пользователи Nemo могут в равной степени использовать решение выше, но:
app = "nautilus"
в: app = "nemo"
cp /usr/share/applications/nemo.desktop ~/.local/share/applications
gedit ~/.local/share/applications/nemo.desktop
Протестировано, оказалось, что он работает с nemo
К сожалению, nautilus не предлагает параметры командной строки для чтения открытого каталога своих окон и не имеет никакой опции для отправки существующее окно в другой каталог.
Однако
У нас есть xdotool
, а не делать то, что nautilus
нет, но по крайней мере подделка поведение, которое вы описываете. Мы можем сделать это так, чтобы «вы поверили», если бы вы не знали, как это делается.
Хотя приведенное ниже решение не выдерживает перезагрузки, «запоминание» (возможно, с вкладками) окно и все открытые каталоги очень хорошо возможны в течение одного сеанса. Поскольку вы упомянули, что вас интересует это как «второй выбор», вот оно.
Хотя мы не можем закрыть окно и сохранить его вкладки и открытые каталоги, мы можем сделать существующее окно, казалось бы, и полностью исчезнуть, с помощью xdotool
.
Если мы впоследствии изменим поведение пусковой установки nautilus
таким образом, чтобы он сначала искал возможное unmapped windows для переназначения перед открытием новый, эффективно точно имеет такое же поведение, как если бы nautilus
помнил последнее используемое окно.
remember.py
#!/usr/bin/env python3
import subprocess
import os
app = "nautilus"
wfile = os.environ["HOME"]+"/.unmapped_"+app
def get(cmd):
# simply a helper function
return subprocess.check_output(cmd).decode("utf-8").strip()
def check_windowtype(w_id):
# check the type of window; only unmap "NORMAL" windows
return "_NET_WM_WINDOW_TYPE_NORMAL" in get(["xprop", "-id", w_id])
def get_pid(app):
# (try to) get the pid of the application
try:
return get(["pgrep", app])
except subprocess.CalledProcessError:
pass
def get_matches(pid):
# get the window list, select the valid (real) app's windows
ws = get(["wmctrl", "-lpG"]).splitlines()
matches = [w.split() for w in ws if pid in w]
return [w for w in matches if check_windowtype(w[0]) == True]
try:
# try to read the file with unmapped windows
wininf = [l.split() for l in open(wfile).readlines()]
except FileNotFoundError:
# if there are no, unmap the current app's windows
filebrowserwins = get_matches(get_pid(app))
if filebrowserwins:
open(wfile, "wt").write(("\n").join((" ").join(l) for l in filebrowserwins))
for w in [w[0] for w in filebrowserwins]:
subprocess.Popen(["xdotool", "windowunmap", w])
else:
arg = "--new-window" if app == "nautilus" else ""
subprocess.Popen([app, arg])
else:
# re- map unmapped windows
for w in wininf:
wid = w[0]; geo = w[3:7]
subprocess.call(["xdotool", "windowmap", wid])
subprocess.Popen(["wmctrl", "-ir", wid, "-e", "0,"+(",").join(geo)])
os.remove(wfile)
wmctrl
, так и xdotool
: sudo apt-get install wmctrl xdotool
nautilus
с /usr/share/applications
на ~/.local/share/applications
в течение 15.04 и более поздних версий: cp /usr/share/applications/org.gnome.Nautilus.desktop ~/.local/share/applications
для более ранних версий Ubuntu: cp /usr/share/applications/nautilus.desktop ~/.local/share/applications
gedit ~/.local/share/applications/org.gnome.Nautilus.desktop
(в случай 15.04 +
) и найдите первую строку , начиная с Exec=
. Измените его на: Exec=python3 /path/to/remember.py
Сохраните и закройте файл. python3 /path/to/remember.py
очень просто:
Это он
Пользователи Nemo могут в равной степени использовать решение выше, но:
app = "nautilus"
в: app = "nemo"
cp /usr/share/applications/nemo.desktop ~/.local/share/applications
gedit ~/.local/share/applications/nemo.desktop
Протестировано, оказалось, что он работает с nemo
К сожалению, nautilus не предлагает параметры командной строки для чтения открытого каталога своих окон и не имеет никакой опции для отправки существующее окно в другой каталог.
Однако
У нас есть xdotool
, а не делать то, что nautilus
нет, но по крайней мере подделка поведение, которое вы описываете. Мы можем сделать это так, чтобы «вы поверили», если бы вы не знали, как это делается.
Хотя приведенное ниже решение не выдерживает перезагрузки, «запоминание» (возможно, с вкладками) окно и все открытые каталоги очень хорошо возможны в течение одного сеанса. Поскольку вы упомянули, что вас интересует это как «второй выбор», вот оно.
Хотя мы не можем закрыть окно и сохранить его вкладки и открытые каталоги, мы можем сделать существующее окно, казалось бы, и полностью исчезнуть, с помощью xdotool
.
Если мы впоследствии изменим поведение пусковой установки nautilus
таким образом, чтобы он сначала искал возможное unmapped windows для переназначения перед открытием новый, эффективно точно имеет такое же поведение, как если бы nautilus
помнил последнее используемое окно.
remember.py
#!/usr/bin/env python3
import subprocess
import os
app = "nautilus"
wfile = os.environ["HOME"]+"/.unmapped_"+app
def get(cmd):
# simply a helper function
return subprocess.check_output(cmd).decode("utf-8").strip()
def check_windowtype(w_id):
# check the type of window; only unmap "NORMAL" windows
return "_NET_WM_WINDOW_TYPE_NORMAL" in get(["xprop", "-id", w_id])
def get_pid(app):
# (try to) get the pid of the application
try:
return get(["pgrep", app])
except subprocess.CalledProcessError:
pass
def get_matches(pid):
# get the window list, select the valid (real) app's windows
ws = get(["wmctrl", "-lpG"]).splitlines()
matches = [w.split() for w in ws if pid in w]
return [w for w in matches if check_windowtype(w[0]) == True]
try:
# try to read the file with unmapped windows
wininf = [l.split() for l in open(wfile).readlines()]
except FileNotFoundError:
# if there are no, unmap the current app's windows
filebrowserwins = get_matches(get_pid(app))
if filebrowserwins:
open(wfile, "wt").write(("\n").join((" ").join(l) for l in filebrowserwins))
for w in [w[0] for w in filebrowserwins]:
subprocess.Popen(["xdotool", "windowunmap", w])
else:
arg = "--new-window" if app == "nautilus" else ""
subprocess.Popen([app, arg])
else:
# re- map unmapped windows
for w in wininf:
wid = w[0]; geo = w[3:7]
subprocess.call(["xdotool", "windowmap", wid])
subprocess.Popen(["wmctrl", "-ir", wid, "-e", "0,"+(",").join(geo)])
os.remove(wfile)
wmctrl
, так и xdotool
: sudo apt-get install wmctrl xdotool
nautilus
с /usr/share/applications
на ~/.local/share/applications
в течение 15.04 и более поздних версий: cp /usr/share/applications/org.gnome.Nautilus.desktop ~/.local/share/applications
для более ранних версий Ubuntu: cp /usr/share/applications/nautilus.desktop ~/.local/share/applications
gedit ~/.local/share/applications/org.gnome.Nautilus.desktop
(в случай 15.04 +
) и найдите первую строку , начиная с Exec=
. Измените его на: Exec=python3 /path/to/remember.py
Сохраните и закройте файл. python3 /path/to/remember.py
очень просто:
Это он
Пользователи Nemo могут в равной степени использовать решение выше, но:
app = "nautilus"
в: app = "nemo"
cp /usr/share/applications/nemo.desktop ~/.local/share/applications
gedit ~/.local/share/applications/nemo.desktop
Протестировано, оказалось, что он работает с nemo
Я рекомендую использовать другой файловый менеджер, если с тобой все в порядке, так как Nautilus не имеет этой функции.
Вот одно из альтернативных приложений, которое делает трюк: SpaceFM
У этого есть богатые функции, такие как, конечно, другой файловый менеджер .
Чтобы сделать его файловым менеджером по умолчанию: [ ! d11]
xdg-mime default spacefm.desktop inode/directory
Самый простой способ доступа к папкам - закладка. Вы не будете открывать свои вкладки, но вы можете, по крайней мере, быстро увидеть папки, которые вам нужны (и если вы думаете об этом, закладки действуют как вкладки).
Просто откройте папку на Nautilus, откройте меню «Закладка» и добавьте закладку.
Попробуйте эти сценарии для сохранения и восстановления вкладок файлового менеджера nautilus. https://github.com/susurri/nautilus_save_tabs/
Я рекомендую использовать другой файловый менеджер, если с тобой все в порядке, так как Nautilus не имеет этой функции.
Вот одно из альтернативных приложений, которое делает трюк: SpaceFM
У этого есть богатые функции, такие как, конечно, другой файловый менеджер .
Чтобы сделать его файловым менеджером по умолчанию: [ ! d11]
xdg-mime default spacefm.desktop inode/directory
Самый простой способ доступа к папкам - закладка. Вы не будете открывать свои вкладки, но вы можете, по крайней мере, быстро увидеть папки, которые вам нужны (и если вы думаете об этом, закладки действуют как вкладки).
Просто откройте папку на Nautilus, откройте меню «Закладка» и добавьте закладку.
Попробуйте эти сценарии для сохранения и восстановления вкладок файлового менеджера nautilus. https://github.com/susurri/nautilus_save_tabs/
Я рекомендую использовать другой файловый менеджер, если с тобой все в порядке, так как Nautilus не имеет этой функции.
Вот одно из альтернативных приложений, которое делает трюк: SpaceFM
У этого есть богатые функции, такие как, конечно, другой файловый менеджер .
Чтобы сделать его файловым менеджером по умолчанию: [ ! d11]
xdg-mime default spacefm.desktop inode/directory
Самый простой способ доступа к папкам - закладка. Вы не будете открывать свои вкладки, но вы можете, по крайней мере, быстро увидеть папки, которые вам нужны (и если вы думаете об этом, закладки действуют как вкладки).
Просто откройте папку на Nautilus, откройте меню «Закладка» и добавьте закладку.
Попробуйте эти сценарии для сохранения и восстановления вкладок файлового менеджера nautilus. https://github.com/susurri/nautilus_save_tabs/