diff options
| author | spl3g <spleefer6@yandex.ru> | 2024-04-20 20:24:36 +0300 |
|---|---|---|
| committer | spl3g <spleefer6@yandex.ru> | 2025-05-01 14:58:53 +0300 |
| commit | f5970d988c68ae1d2ac56f0a35324cd442a26be7 (patch) | |
| tree | 3c7fa7d524c7337c3b999fd577081a1230690072 /home-manager/homeModules/ranger/plugins/quit_cd_wd.py | |
| parent | ec0e9896dcc0c88ef49d2b2bf8126498d3c2acec (diff) | |
add modules
Diffstat (limited to 'home-manager/homeModules/ranger/plugins/quit_cd_wd.py')
| -rw-r--r-- | home-manager/homeModules/ranger/plugins/quit_cd_wd.py | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/home-manager/homeModules/ranger/plugins/quit_cd_wd.py b/home-manager/homeModules/ranger/plugins/quit_cd_wd.py new file mode 100644 index 0000000..e47837f --- /dev/null +++ b/home-manager/homeModules/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() |
