diff options
| author | spl3g <spleefer6@yandex.ru> | 2023-08-21 09:14:28 +0000 |
|---|---|---|
| committer | spl3g <spleefer6@yandex.ru> | 2023-08-21 09:14:28 +0000 |
| commit | 72e82deb5536a88b6438a708b3e825029f621d14 (patch) | |
| tree | 992c1075e68b9488960e24961ef941696b8cac61 /home-manager/programs/ranger/plugins/quit_cd_wd.py | |
| parent | 952b45648dbda12157bdbb1a841c3167ef712adf (diff) | |
damn
Diffstat (limited to 'home-manager/programs/ranger/plugins/quit_cd_wd.py')
| -rw-r--r-- | home-manager/programs/ranger/plugins/quit_cd_wd.py | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/home-manager/programs/ranger/plugins/quit_cd_wd.py b/home-manager/programs/ranger/plugins/quit_cd_wd.py new file mode 100644 index 0000000..e47837f --- /dev/null +++ b/home-manager/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() |
