aboutsummaryrefslogtreecommitdiff
path: root/home-manager/home/programs/ranger/plugins/quit_cd_wd.py
diff options
context:
space:
mode:
authorjerpo <spleefer6@yandex.ru>2023-08-05 17:26:30 +0500
committerjerpo <spleefer6@yandex.ru>2023-08-05 17:26:30 +0500
commite8ae745437124ee10c4d39ad3ca9a4ba4219add4 (patch)
treed00a8dad7580142a9054c05d22bcc57baa0aed0b /home-manager/home/programs/ranger/plugins/quit_cd_wd.py
maybe this will work
Diffstat (limited to 'home-manager/home/programs/ranger/plugins/quit_cd_wd.py')
-rw-r--r--home-manager/home/programs/ranger/plugins/quit_cd_wd.py38
1 files changed, 38 insertions, 0 deletions
diff --git a/home-manager/home/programs/ranger/plugins/quit_cd_wd.py b/home-manager/home/programs/ranger/plugins/quit_cd_wd.py
new file mode 100644
index 0000000..e47837f
--- /dev/null
+++ b/home-manager/home/programs/ranger/plugins/quit_cd_wd.py
@@ -0,0 +1,38 @@
+import ranger.api
+from ranger.api.commands import *
+import os
+
+def save_wd(command):
+ with open(os.path.expanduser('~/.ranger_quit_cd_wd'), 'w') as f:
+ f.write(command.fm.thisdir.path);
+
+class quit_cd_wd(Command):
+ """:chdir to working directory of ranger after quiting on ranger.
+
+ """
+ def _exit_no_work(self):
+ if self.fm.loader.has_work():
+ self.fm.notify('Not quitting: Tasks in progress: Use `quit!` to force quit')
+ else:
+ self.fm.exit()
+
+ def execute(self):
+ if len(self.fm.tabs) >= 2:
+ self.fm.tab_close()
+ else:
+ save_wd(self)
+ self._exit_no_work()
+
+class quitall_cd_wd(Command):
+ """:chdir to working directory of ranger after quitalling on ranger.
+
+ """
+ def _exit_no_work(self):
+ if self.fm.loader.has_work():
+ self.fm.notify('Not quitting: Tasks in progress: Use `quitall!` to force quit')
+ else:
+ self.fm.exit()
+
+ def execute(self):
+ save_wd(self)
+ self._exit_no_work()