Added ctrl+o; fixed ctrl+w, updated ipc_open logic
This commit is contained in:
parent
9f1da21127
commit
bff7053139
18
src/versions/pyfm-0.0.1/PyFM/new/pyfm/pyfm
Executable file
18
src/versions/pyfm-0.0.1/PyFM/new/pyfm/pyfm
Executable file
@ -0,0 +1,18 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# . CONFIG.sh
|
||||||
|
|
||||||
|
# set -o xtrace ## To debug scripts
|
||||||
|
# set -o errexit ## To exit on error
|
||||||
|
# set -o errunset ## To exit if a variable is referenced but not set
|
||||||
|
|
||||||
|
|
||||||
|
function main() {
|
||||||
|
SCRIPTPATH="$( cd "$(dirname "")" >/dev/null 2>&1 ; pwd -P )"
|
||||||
|
cd "${SCRIPTPATH}"
|
||||||
|
echo "Working Dir: " $(pwd)
|
||||||
|
|
||||||
|
source "/home/abaddon/Portable_Apps/py-venvs/flask-apps-venv/venv/bin/activate"
|
||||||
|
python ../pyfm "$@"
|
||||||
|
}
|
||||||
|
main "$@";
|
@ -30,10 +30,12 @@ class Launcher:
|
|||||||
command = [self.text_app, file]
|
command = [self.text_app, file]
|
||||||
elif lowerName.endswith(self.fpdf):
|
elif lowerName.endswith(self.fpdf):
|
||||||
command = [self.pdf_app, file]
|
command = [self.pdf_app, file]
|
||||||
else:
|
elif lowerName.endswith("placeholder-until-i-can-get-a-use-pref-fm-flag"):
|
||||||
command = [self.file_manager_app, file]
|
command = [self.file_manager_app, file]
|
||||||
|
else:
|
||||||
|
command = ["xdg-open", file]
|
||||||
|
|
||||||
self.logger.debug(command)
|
self.logger.debug(command)
|
||||||
DEVNULL = open(os.devnull, 'w')
|
DEVNULL = open(os.devnull, 'w')
|
||||||
subprocess.Popen(command, start_new_session=True, stdout=DEVNULL, stderr=DEVNULL, close_fds=True)
|
subprocess.Popen(command, start_new_session=True, stdout=DEVNULL, stderr=DEVNULL, close_fds=True)
|
||||||
|
|
||||||
|
@ -172,7 +172,8 @@ class Signals(WidgetFileActionMixin, PaneMixin, WindowMixin):
|
|||||||
self.cut_files()
|
self.cut_files()
|
||||||
if self.ctrlDown and keyname == "v":
|
if self.ctrlDown and keyname == "v":
|
||||||
self.paste_files()
|
self.paste_files()
|
||||||
|
if self.ctrlDown and keyname == "o":
|
||||||
|
self.open_files()
|
||||||
|
|
||||||
if keyname == "delete":
|
if keyname == "delete":
|
||||||
self.trash_files()
|
self.trash_files()
|
||||||
|
@ -11,14 +11,20 @@ class TabMixin(WidgetMixin):
|
|||||||
|
|
||||||
def create_tab_from_ipc(data):
|
def create_tab_from_ipc(data):
|
||||||
self, path = data
|
self, path = data
|
||||||
if not self.is_pane1_hidden:
|
wid, tid = self.window_controller.get_active_data()
|
||||||
self.create_tab(1, path)
|
notebook = self.builder.get_object(f"window_{wid}")
|
||||||
elif not self.is_pane2_hidden:
|
if notebook.is_visible():
|
||||||
self.create_tab(2, path)
|
self.create_tab(wid, path)
|
||||||
|
return
|
||||||
|
|
||||||
|
if not self.is_pane4_hidden:
|
||||||
|
self.create_tab(4, path)
|
||||||
elif not self.is_pane3_hidden:
|
elif not self.is_pane3_hidden:
|
||||||
self.create_tab(3, path)
|
self.create_tab(3, path)
|
||||||
elif not self.is_pane4_hidden:
|
elif not self.is_pane2_hidden:
|
||||||
self.create_tab(4, path)
|
self.create_tab(2, path)
|
||||||
|
elif not self.is_pane1_hidden:
|
||||||
|
self.create_tab(1, path)
|
||||||
|
|
||||||
|
|
||||||
def create_tab(self, wid, path=None):
|
def create_tab(self, wid, path=None):
|
||||||
@ -143,9 +149,16 @@ class TabMixin(WidgetMixin):
|
|||||||
def keyboard_close_tab(self):
|
def keyboard_close_tab(self):
|
||||||
wid, tid = self.window_controller.get_active_data()
|
wid, tid = self.window_controller.get_active_data()
|
||||||
notebook = self.builder.get_object(f"window_{wid}")
|
notebook = self.builder.get_object(f"window_{wid}")
|
||||||
iconview = self.get_tab_iconview_from_notebook(notebook)
|
scroll = self.builder.get_object(f"{wid}|{tid}")
|
||||||
close = self.get_tab_close(notebook, iconview)
|
page = notebook.page_num(scroll)
|
||||||
close.released()
|
view = self.get_fm_window(wid).get_view_by_id(tid)
|
||||||
|
watcher = view.get_dir_watcher()
|
||||||
|
watcher.cancel()
|
||||||
|
|
||||||
|
self.get_fm_window(wid).delete_view_by_id(tid)
|
||||||
|
notebook.remove_page(page)
|
||||||
|
self.window_controller.save_state()
|
||||||
|
self.set_window_title()
|
||||||
|
|
||||||
# File control events
|
# File control events
|
||||||
def show_hide_hidden_files(self):
|
def show_hide_hidden_files(self):
|
||||||
|
@ -63,6 +63,16 @@ class WidgetFileActionMixin:
|
|||||||
def menu_bar_copy(self, widget, eve):
|
def menu_bar_copy(self, widget, eve):
|
||||||
self.copy_file()
|
self.copy_file()
|
||||||
|
|
||||||
|
def open_files(self):
|
||||||
|
wid, tid = self.window_controller.get_active_data()
|
||||||
|
view = self.get_fm_window(wid).get_view_by_id(tid)
|
||||||
|
iconview = self.builder.get_object(f"{wid}|{tid}|iconview")
|
||||||
|
store = iconview.get_model()
|
||||||
|
uris = self.format_to_uris(store, wid, tid, self.selected_files, True)
|
||||||
|
|
||||||
|
for file in uris:
|
||||||
|
view.open_file_locally(file)
|
||||||
|
|
||||||
def copy_files(self):
|
def copy_files(self):
|
||||||
wid, tid = self.window_controller.get_active_data()
|
wid, tid = self.window_controller.get_active_data()
|
||||||
iconview = self.builder.get_object(f"{wid}|{tid}|iconview")
|
iconview = self.builder.get_object(f"{wid}|{tid}|iconview")
|
||||||
@ -142,9 +152,9 @@ class WidgetFileActionMixin:
|
|||||||
if action == "trash":
|
if action == "trash":
|
||||||
f.trash(cancellable=None)
|
f.trash(cancellable=None)
|
||||||
if action == "copy":
|
if action == "copy":
|
||||||
f.copy(target, flags=Gio.FileCopyFlags.OVERWRITE, cancellable=None)
|
f.copy(target, flags=Gio.FileCopyFlags.BACKUP, cancellable=None)
|
||||||
if action == "move":
|
if action == "move":
|
||||||
f.move(target, flags=Gio.FileCopyFlags.OVERWRITE, cancellable=None)
|
f.move(target, flags=Gio.FileCopyFlags.BACKUP, cancellable=None)
|
||||||
except GObject.GError as e:
|
except GObject.GError as e:
|
||||||
raise OSError(e.message)
|
raise OSError(e.message)
|
||||||
|
|
||||||
|
@ -20,7 +20,7 @@ class WindowMixin(TabMixin):
|
|||||||
def get_fm_window(self, wid):
|
def get_fm_window(self, wid):
|
||||||
return self.window_controller.get_window_by_nickname(f"window_{wid}")
|
return self.window_controller.get_window_by_nickname(f"window_{wid}")
|
||||||
|
|
||||||
def format_to_uris(self, store, wid, tid, treePaths):
|
def format_to_uris(self, store, wid, tid, treePaths, use_just_path=False):
|
||||||
view = self.get_fm_window(wid).get_view_by_id(tid)
|
view = self.get_fm_window(wid).get_view_by_id(tid)
|
||||||
dir = view.get_current_directory()
|
dir = view.get_current_directory()
|
||||||
uris = []
|
uris = []
|
||||||
@ -28,7 +28,13 @@ class WindowMixin(TabMixin):
|
|||||||
for path in treePaths:
|
for path in treePaths:
|
||||||
itr = store.get_iter(path)
|
itr = store.get_iter(path)
|
||||||
file = store.get(itr, 1)[0]
|
file = store.get(itr, 1)[0]
|
||||||
fpath = f"file://{dir}/{file}"
|
fpath = ""
|
||||||
|
|
||||||
|
if not use_just_path:
|
||||||
|
fpath = f"file://{dir}/{file}"
|
||||||
|
else:
|
||||||
|
fpath = f"{dir}/{file}"
|
||||||
|
|
||||||
uris.append(fpath)
|
uris.append(fpath)
|
||||||
|
|
||||||
return uris
|
return uris
|
||||||
@ -102,7 +108,6 @@ class WindowMixin(TabMixin):
|
|||||||
uris = self.format_to_uris(store, wid, tid, treePaths)
|
uris = self.format_to_uris(store, wid, tid, treePaths)
|
||||||
|
|
||||||
data.set_uris(uris)
|
data.set_uris(uris)
|
||||||
event_system.push_gui_event(["refresh_tab", None, action])
|
|
||||||
|
|
||||||
def grid_on_drag_motion(self, iconview, drag_context, x, y, data):
|
def grid_on_drag_motion(self, iconview, drag_context, x, y, data):
|
||||||
wid, tid = iconview.get_name().split("|")
|
wid, tid = iconview.get_name().split("|")
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
int main() {
|
int main() {
|
||||||
chdir("/opt/Pytop/");
|
chdir("/opt/PyFM/");
|
||||||
system("python3 PyTop.py");
|
system("python3 .");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
function main() {
|
function main() {
|
||||||
gcc -no-pie -s Pytop_exec_bin.cpp -o pytop
|
gcc -no-pie -s PyFM_exec_bin.cpp -o pyfm
|
||||||
}
|
}
|
||||||
main;
|
main;
|
||||||
|
12
src/versions/pyfm-0.0.1/pyfm.desktop
Executable file
12
src/versions/pyfm-0.0.1/pyfm.desktop
Executable file
@ -0,0 +1,12 @@
|
|||||||
|
[Desktop Entry]
|
||||||
|
Name=PyFM
|
||||||
|
GenericName=File Manager
|
||||||
|
Comment=A file manager built with Python and GObject introspection.
|
||||||
|
Path=/home/abaddon/.local/share/pyfm
|
||||||
|
Exec=/home/abaddon/Portable_Apps/py-venvs/flask-apps-venv/venv/bin/python /home/abaddon/.local/share/pyfm %F
|
||||||
|
Icon=/home/abaddon/.local/share/pyfm/resources/pyfm-64x64.png
|
||||||
|
Type=Application
|
||||||
|
StartupNotify=true
|
||||||
|
Categories=System;FileTools;Utility;Core;GTK;FileManager;
|
||||||
|
MimeType=inode/directory;inode/mount-point;x-scheme-handler/ssh;x-scheme-handler/smb;x-scheme-handler/nfs;x-scheme-handler/ftp;x-scheme-handler/ptp;x-scheme-handler/mtp;x-scheme-handler/webdav;x-scheme-handler/http;x-scheme-handler/https;
|
||||||
|
Terminal=false
|
Loading…
Reference in New Issue
Block a user