diff --git a/README.md b/README.md index 66ce651..b27e603 100644 --- a/README.md +++ b/README.md @@ -12,3 +12,4 @@ PyFM is a Gtk + Python file manager. # Images ![1 PyFM showing different directories. ](images/pic1.png) +![1 PyFM themed dark and made transparent. ](images/pic2.png) diff --git a/images/pic2.png b/images/pic2.png new file mode 100644 index 0000000..83d6485 Binary files /dev/null and b/images/pic2.png differ diff --git a/src/versions/pyfm-0.0.1/PyFM/new/pyfm/__init__.py b/src/versions/pyfm-0.0.1/PyFM/new/pyfm/__init__.py index d4c65f3..092d8cd 100644 --- a/src/versions/pyfm-0.0.1/PyFM/new/pyfm/__init__.py +++ b/src/versions/pyfm-0.0.1/PyFM/new/pyfm/__init__.py @@ -14,6 +14,7 @@ from __builtins__ import Builtins class Main(Builtins): def __init__(self, args): settings = Settings() + settings.createWindow() # Gets the methods from the classes and sets to handler. # Then, builder connects to any signals it needs. diff --git a/src/versions/pyfm-0.0.1/PyFM/new/pyfm/resources/Main_Window.glade b/src/versions/pyfm-0.0.1/PyFM/new/pyfm/resources/Main_Window.glade index e61bd5a..fd6de60 100644 --- a/src/versions/pyfm-0.0.1/PyFM/new/pyfm/resources/Main_Window.glade +++ b/src/versions/pyfm-0.0.1/PyFM/new/pyfm/resources/Main_Window.glade @@ -1,7 +1,7 @@ - + False 5 @@ -966,6 +966,11 @@ PyFM is developed on Atom, git, and using Python 3+ with Gtk GObject introspecti False icons/trash.png + + True + False + user-trash + False mouse @@ -1001,102 +1006,13 @@ PyFM is developed on Atom, git, and using Python 3+ with Gtk GObject introspecti False vertical - + + 500 + 26 True - False - vertical - - - gtk-delete - delete - True - True - True - Delete... - True - True - - - - False - True - 4 - - - - - gtk-cut - cut - True - True - True - Cut... - True - True - - - - False - True - 0 - - - - - gtk-copy - copy - True - True - True - Copy... - True - True - - - - False - True - 1 - - - - - Trash - trash - True - True - True - Move to Trash... - trashImage - True - - - - False - True - end - 3 - - - - - gtk-paste - paste - True - True - True - Paste... - 20 - True - True - - - - False - True - 4 - - + True + gtk-edit + New File/Dir Name... False @@ -1104,26 +1020,11 @@ PyFM is developed on Atom, git, and using Python 3+ with Gtk GObject introspecti 0 - - - 500 - 26 - True - True - 20 - gtk-edit - New File/Dir Name... - - - False - True - 1 - - True False + 20 vertical @@ -1200,6 +1101,110 @@ PyFM is developed on Atom, git, and using Python 3+ with Gtk GObject introspecti + + False + True + 1 + + + + + True + False + vertical + + + gtk-delete + delete + True + True + True + Delete... + 20 + True + True + + + + False + True + 4 + + + + + gtk-cut + cut + True + True + True + Cut... + True + True + + + + False + True + 0 + + + + + gtk-copy + copy + True + True + True + Copy... + True + True + + + + False + True + 1 + + + + + Trash + trash + True + True + True + Move to Trash... + trash_img + True + + + + False + True + end + 3 + + + + + gtk-paste + paste + True + True + True + Paste... + True + True + + + + False + True + 4 + + + False True diff --git a/src/versions/pyfm-0.0.1/PyFM/new/pyfm/resources/stylesheet.css b/src/versions/pyfm-0.0.1/PyFM/new/pyfm/resources/stylesheet.css index 66a625c..9806b7c 100644 --- a/src/versions/pyfm-0.0.1/PyFM/new/pyfm/resources/stylesheet.css +++ b/src/versions/pyfm-0.0.1/PyFM/new/pyfm/resources/stylesheet.css @@ -1,21 +1,35 @@ /* Set fm to have transparent window */ + +box, +iconview, +notebook, +paned, +stack, +scrolledwindow, +treeview.view, +.content-view, +.view { + background: rgba(19, 21, 25, 0.14); + color: rgba(255, 255, 255, 1); +} + /* * { background: rgba(0, 0, 0, 0.14); color: rgba(255, 255, 255, 1); -} +} */ -* selection { +/* * selection { background-color: rgba(116, 0, 0, 0.65); color: rgba(255, 255, 255, 0.5); -} +} */ .view:selected, .view:selected:hover { - box-shadow: inset 0 0 0 9999px rgba(15, 134, 13, 0.49); + box-shadow: inset 0 0 0 9999px rgba(21, 158, 167, 0.57); color: rgba(255, 255, 255, 0.5);; -} */ +} /* Rubberband coloring */ diff --git a/src/versions/pyfm-0.0.1/PyFM/new/pyfm/signal_classes/Signals.py b/src/versions/pyfm-0.0.1/PyFM/new/pyfm/signal_classes/Signals.py index fa7034b..684641b 100644 --- a/src/versions/pyfm-0.0.1/PyFM/new/pyfm/signal_classes/Signals.py +++ b/src/versions/pyfm-0.0.1/PyFM/new/pyfm/signal_classes/Signals.py @@ -29,7 +29,7 @@ class Signals(WidgetFileActionMixin, PaneMixin, WindowMixin): self.window_controller = WindowController() self.state = self.window_controller.load_state() - self.window = self.builder.get_object("Main_Window") + self.window = self.settings.getMainWindow() self.window1 = self.builder.get_object("window1") self.window2 = self.builder.get_object("window2") self.window3 = self.builder.get_object("window3") diff --git a/src/versions/pyfm-0.0.1/PyFM/new/pyfm/utils/Settings.py b/src/versions/pyfm-0.0.1/PyFM/new/pyfm/utils/Settings.py index a067bbd..46296b1 100644 --- a/src/versions/pyfm-0.0.1/PyFM/new/pyfm/utils/Settings.py +++ b/src/versions/pyfm-0.0.1/PyFM/new/pyfm/utils/Settings.py @@ -17,35 +17,45 @@ from . import Logger class Settings: def __init__(self): self.SCRIPT_PTH = os.path.dirname(os.path.realpath(__file__)) - self.builder = gtk.Builder() + self.gladefile = self.SCRIPT_PTH + "/../resources/Main_Window.glade" + self.cssFile = self.SCRIPT_PTH + '/../resources/stylesheet.css' self.logger = Logger().get_logger() - self.builder.add_from_file(self.SCRIPT_PTH + "/../resources/Main_Window.glade") + + self.builder = gtk.Builder() + self.builder.add_from_file(self.gladefile) + self.mainWindow = None + def createWindow(self): # Get window and connect signals - window = self.builder.get_object("Main_Window") - window.connect("delete-event", gtk.main_quit) - self.setWindowData(window, True) - return window + self.mainWindow = self.builder.get_object("Main_Window") + self.setWindowData() - def setWindowData(self, window, paintable): - screen = window.get_screen() + def setWindowData(self): + screen = self.mainWindow.get_screen() visual = screen.get_rgba_visual() if visual != None and screen.is_composited(): - window.set_visual(visual) + self.mainWindow.set_visual(visual) + self.mainWindow.set_app_paintable(True) + self.mainWindow.connect("draw", self.area_draw) # bind css file cssProvider = gtk.CssProvider() - cssProvider.load_from_path(self.SCRIPT_PTH + '/../resources/stylesheet.css') + cssProvider.load_from_path(self.cssFile) screen = gdk.Screen.get_default() styleContext = gtk.StyleContext() styleContext.add_provider_for_screen(screen, cssProvider, gtk.STYLE_PROVIDER_PRIORITY_USER) - window.set_app_paintable(paintable) - if paintable: - window.connect("draw", self.area_draw) + def area_draw(self, widget, cr): + cr.set_source_rgba(0, 0, 0, 0.54) + cr.set_operator(cairo.OPERATOR_SOURCE) + cr.paint() + cr.set_operator(cairo.OPERATOR_OVER) + + def getMainWindow(self): return self.mainWindow + def getMonitorData(self): screen = self.builder.get_object("Main_Window").get_screen() @@ -57,9 +67,3 @@ class Settings: print("{}x{}+{}+{}".format(monitor.width, monitor.height, monitor.x, monitor.y)) return monitors - - def area_draw(self, widget, cr): - cr.set_source_rgba(0, 0, 0, 0.54) - cr.set_operator(cairo.OPERATOR_SOURCE) - cr.paint() - cr.set_operator(cairo.OPERATOR_OVER)