aboutsummaryrefslogtreecommitdiff
path: root/home-manager/general/programs/ranger/plugins/quit_cd_wd.py
diff options
context:
space:
mode:
authorspl3g <spleefer6@yandex.ru>2023-12-31 15:08:06 +0300
committerspl3g <spleefer6@yandex.ru>2025-05-01 14:56:39 +0300
commitb8a5c62b112859f463a53ac97b43f7f8cdc544a9 (patch)
tree8b320bc9631fbd60ffe4b701e6afee148bb2313a /home-manager/general/programs/ranger/plugins/quit_cd_wd.py
parent7db487dba2262af7b7822d110122ff496070ca92 (diff)
uhm
Diffstat (limited to 'home-manager/general/programs/ranger/plugins/quit_cd_wd.py')
-rw-r--r--home-manager/general/programs/ranger/plugins/quit_cd_wd.py38
1 files changed, 38 insertions, 0 deletions
diff --git a/home-manager/general/programs/ranger/plugins/quit_cd_wd.py b/home-manager/general/programs/ranger/plugins/quit_cd_wd.py
new file mode 100644
index 0000000..e47837f
--- /dev/null
+++ b/home-manager/general/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()