From d3c67eda59d841e636177b818bc857dd82d472a2 Mon Sep 17 00:00:00 2001 From: Bernhard Landauer Date: Thu, 17 Nov 2016 13:25:44 +0100 Subject: [PATCH] add cinnamon, deepin, i3 --- manjaro/cinnamon/Packages-Desktop | 132 ++++ manjaro/cinnamon/Packages-Live | 1 + manjaro/cinnamon/Packages-Mhwd | 71 ++ manjaro/cinnamon/Packages-Root | 1 + .../etc/fonts/conf.d/70-no-bitmaps.conf | 1 + .../etc/lightdm/lightdm-gtk-greeter.conf | 12 + .../cinnamon-settings/cinnamon-settings.py | 607 ++++++++++++++++++ .../usr/share/icons/default/index.theme | 2 + manjaro/cinnamon/live-overlay | 1 + manjaro/cinnamon/mkinitcpio.conf | 1 + manjaro/cinnamon/profile.conf | 84 +++ manjaro/deepin/Packages-Desktop | 122 ++++ manjaro/deepin/Packages-Live | 1 + manjaro/deepin/Packages-Mhwd | 1 + manjaro/deepin/Packages-Root | 1 + .../etc/fonts/conf.d/70-no-bitmaps.conf | 1 + .../usr/share/icons/default/index.theme | 2 + manjaro/deepin/live-overlay | 1 + manjaro/deepin/mkinitcpio.conf | 1 + manjaro/deepin/profile.conf | 84 +++ manjaro/i3/Packages-Desktop | 135 ++++ manjaro/i3/Packages-Live | 1 + manjaro/i3/Packages-Mhwd | 71 ++ manjaro/i3/Packages-Root | 1 + .../etc/fonts/conf.d/70-no-bitmaps.conf | 1 + .../etc/lightdm/lightdm-gtk-greeter.conf | 17 + manjaro/i3/live-overlay/etc/default | 1 + manjaro/i3/live-overlay/etc/fstab | 1 + manjaro/i3/live-overlay/etc/issue | 1 + manjaro/i3/live-overlay/etc/pam.d | 1 + manjaro/i3/live-overlay/etc/skel/.i3/config | 387 +++++++++++ manjaro/i3/live-overlay/etc/sudoers.d | 1 + manjaro/i3/mkinitcpio.conf | 1 + manjaro/i3/profile.conf | 84 +++ 34 files changed, 1830 insertions(+) create mode 100644 manjaro/cinnamon/Packages-Desktop create mode 120000 manjaro/cinnamon/Packages-Live create mode 100644 manjaro/cinnamon/Packages-Mhwd create mode 120000 manjaro/cinnamon/Packages-Root create mode 120000 manjaro/cinnamon/desktop-overlay/etc/fonts/conf.d/70-no-bitmaps.conf create mode 100644 manjaro/cinnamon/desktop-overlay/etc/lightdm/lightdm-gtk-greeter.conf create mode 100755 manjaro/cinnamon/desktop-overlay/usr/share/cinnamon/cinnamon-settings/cinnamon-settings.py create mode 100644 manjaro/cinnamon/desktop-overlay/usr/share/icons/default/index.theme create mode 120000 manjaro/cinnamon/live-overlay create mode 120000 manjaro/cinnamon/mkinitcpio.conf create mode 100644 manjaro/cinnamon/profile.conf create mode 100644 manjaro/deepin/Packages-Desktop create mode 120000 manjaro/deepin/Packages-Live create mode 120000 manjaro/deepin/Packages-Mhwd create mode 120000 manjaro/deepin/Packages-Root create mode 120000 manjaro/deepin/desktop-overlay/etc/fonts/conf.d/70-no-bitmaps.conf create mode 100644 manjaro/deepin/desktop-overlay/usr/share/icons/default/index.theme create mode 120000 manjaro/deepin/live-overlay create mode 120000 manjaro/deepin/mkinitcpio.conf create mode 100644 manjaro/deepin/profile.conf create mode 100644 manjaro/i3/Packages-Desktop create mode 120000 manjaro/i3/Packages-Live create mode 100644 manjaro/i3/Packages-Mhwd create mode 120000 manjaro/i3/Packages-Root create mode 120000 manjaro/i3/desktop-overlay/etc/fonts/conf.d/70-no-bitmaps.conf create mode 100644 manjaro/i3/desktop-overlay/etc/lightdm/lightdm-gtk-greeter.conf create mode 120000 manjaro/i3/live-overlay/etc/default create mode 120000 manjaro/i3/live-overlay/etc/fstab create mode 120000 manjaro/i3/live-overlay/etc/issue create mode 120000 manjaro/i3/live-overlay/etc/pam.d create mode 100644 manjaro/i3/live-overlay/etc/skel/.i3/config create mode 120000 manjaro/i3/live-overlay/etc/sudoers.d create mode 120000 manjaro/i3/mkinitcpio.conf create mode 100644 manjaro/i3/profile.conf diff --git a/manjaro/cinnamon/Packages-Desktop b/manjaro/cinnamon/Packages-Desktop new file mode 100644 index 0000000..641f51b --- /dev/null +++ b/manjaro/cinnamon/Packages-Desktop @@ -0,0 +1,132 @@ +###################################################### +### THIS FILE WILL INCLUDE shared/Packages-Desktop ### +###################################################### + +## Cinnamon +baobab +blueberry +dconf-editor +evince +poppler-data # CKJ support for pdf +ffmpegthumbnailer +gimp +gksu +manjaro-cinnamon-settings +manjaro-browser-settings +nemo-fileroller # archiver +nemo-preview +nemo-python +nemo-share +pragha # musicplayer +qt5ct +qt5-styleplugins +screenfetch +transmission-gtk +xdg-user-dirs-gtk + +## java +jre8-openjdk +icedtea-web +jre8-openjdk-headless + +## GNOME related stuff +gnome-system-log +eog +eog-plugins +gedit +gnome-disk-utility +gnome-keyring +gnome-screenshot +gnome-system-monitor +gnome-terminal +gnome-vfs +icon-naming-utils +mousetweaks +python2-gnomecanvas +python2-gnomevfs +python2-libgnome + +# needed +python-ptyprocess +python2-ptyprocess + +## Network +netctl +net-tools +networkmanager-dispatcher-ntpd +openresolv +openvpn + +## Internet +firefox +thunderbird + +## Extra +npapi-vlc +pidgin-libnotify +vlc-nightly + +## Artwork +cinnamon-wallpapers +flattr-icon-theme +plymouth-theme-manjaro-cinnamon +xcursor-chameleon-pearl-deepin + +## Other Applications +exfat-utils +fuse-exfat +galculator +gcolor2 +gparted +gvfs-afc +gvfs-google +gvfs-gphoto2 +gvfs-mtp +gvfs-smb +hexchat +isousb +libgsf +lightdm-gtk-greeter-settings +manjaro-documentation +manjaro-features +manjaro-settings-manager-notifier +manjaro-welcome +mugshot +nss +numlockx +openssh +p7zip +parcellite +pavucontrol +udiskie +udisks + +## Package management +pamac +yaourt + +## Packages for Sound and Audio +gst-libav +gst-plugins-bad +gst-plugins-base +gst-plugins-good +gst-plugins-ugly +gstreamer0.10-bad-plugins +gstreamer0.10-base-plugins +gstreamer0.10-good-plugins +gstreamer0.10-ugly-plugins +libdvdcss +manjaro-alsa +manjaro-pulse +pulseaudio-bluetooth +pulseaudio-ctl +pulseaudio-gconf +pulseaudio-zeroconf + +## Office +libreoffice-still +manjaro-printer +system-config-printer + +## AUR Access +base-devel diff --git a/manjaro/cinnamon/Packages-Live b/manjaro/cinnamon/Packages-Live new file mode 120000 index 0000000..5e66e00 --- /dev/null +++ b/manjaro/cinnamon/Packages-Live @@ -0,0 +1 @@ +../../shared/Packages-Live \ No newline at end of file diff --git a/manjaro/cinnamon/Packages-Mhwd b/manjaro/cinnamon/Packages-Mhwd new file mode 100644 index 0000000..7b5a7dc --- /dev/null +++ b/manjaro/cinnamon/Packages-Mhwd @@ -0,0 +1,71 @@ +## Packages-Xorg minus nvidia 340xx and 304xx drivers + +## Xorg Drivers +xf86-video-apm +xf86-video-ark +xf86-video-ati +xf86-video-amdgpu # only works with kernels 4.2+ +xf86-video-chips +xf86-video-dummy +xf86-video-fbdev +xf86-video-glint +xf86-video-i128 +xf86-video-i740 +xf86-video-intel +xf86-video-mach64 +xf86-video-neomagic +xf86-video-nouveau +xf86-video-nv +xf86-video-openchrome +xf86-video-r128 +xf86-video-rendition +xf86-video-s3 +xf86-video-s3virge +xf86-video-savage +xf86-video-siliconmotion +xf86-video-sis +xf86-video-sisusb +xf86-video-tdfx +xf86-video-trident +xf86-video-tseng +xf86-video-vesa +xf86-video-vmware +xf86-video-voodoo + +## Bumblebee Support +>systemd bumblebee +>openrc bumblebee-openrc +primus +>multilib lib32-primus +KERNEL-bbswitch + +## Network Support +KERNEL-broadcom-wl +KERNEL-rt3562sta +KERNEL-r8168 + +## Proprietary Drivers +>nonfree_default catalyst-utils +>nonfree_default KERNEL-catalyst +>nonfree_default nvidia-utils +>nonfree_default KERNEL-nvidia +>nonfree_multilib lib32-catalyst-utils +>nonfree_multilib lib32-nvidia-utils + +## Virtualbox Drivers +>openrc virtualbox-guest-utils-openrc +>systemd virtualbox-guest-utils +KERNEL-virtualbox-guest-modules + +## Xorg Packages +libxaw +libxpm +libxvmc +pangox-compat + +## Xorg x86_64 Packages +>multilib lib32-libxvmc + +## VMWare Support +open-vm-tools +xf86-input-vmmouse diff --git a/manjaro/cinnamon/Packages-Root b/manjaro/cinnamon/Packages-Root new file mode 120000 index 0000000..60cc7bd --- /dev/null +++ b/manjaro/cinnamon/Packages-Root @@ -0,0 +1 @@ +../../shared/Packages-Root \ No newline at end of file diff --git a/manjaro/cinnamon/desktop-overlay/etc/fonts/conf.d/70-no-bitmaps.conf b/manjaro/cinnamon/desktop-overlay/etc/fonts/conf.d/70-no-bitmaps.conf new file mode 120000 index 0000000..d6c7fc1 --- /dev/null +++ b/manjaro/cinnamon/desktop-overlay/etc/fonts/conf.d/70-no-bitmaps.conf @@ -0,0 +1 @@ +/etc/fonts/conf.avail/70-no-bitmaps.conf \ No newline at end of file diff --git a/manjaro/cinnamon/desktop-overlay/etc/lightdm/lightdm-gtk-greeter.conf b/manjaro/cinnamon/desktop-overlay/etc/lightdm/lightdm-gtk-greeter.conf new file mode 100644 index 0000000..83035ba --- /dev/null +++ b/manjaro/cinnamon/desktop-overlay/etc/lightdm/lightdm-gtk-greeter.conf @@ -0,0 +1,12 @@ +[greeter] +background = /usr/share/backgrounds/maia.jpg +font-name = Cantarell 11 +xft-antialias = true +icon-theme-name = maia +theme-name = Vertex-Maia-Square +cursor-theme-name = Simple-and-Soft +show-clock = true +default-user-image = /usr/share/icons/manjaro-maia.png +xft-hintstyle = hintfull +position = 50%,center 50%,center +panel-position = top diff --git a/manjaro/cinnamon/desktop-overlay/usr/share/cinnamon/cinnamon-settings/cinnamon-settings.py b/manjaro/cinnamon/desktop-overlay/usr/share/cinnamon/cinnamon-settings/cinnamon-settings.py new file mode 100755 index 0000000..931daab --- /dev/null +++ b/manjaro/cinnamon/desktop-overlay/usr/share/cinnamon/cinnamon-settings/cinnamon-settings.py @@ -0,0 +1,607 @@ +#!/usr/bin/env python2 + +import sys +reload(sys) +sys.setdefaultencoding('utf-8') + +sys.path.append('/usr/share/cinnamon/cinnamon-settings/modules') +sys.path.append('/usr/share/cinnamon/cinnamon-settings/bin') +import os +import glob +import gettext +import gi +gi.require_version('Gtk', '3.0') +from gi.repository import Gio, Gtk, GObject, GdkPixbuf, GLib, Pango, Gdk, cairo +import SettingsWidgets +import capi +import time +import traceback +import locale +import urllib2 +import proxygsettings +from functools import cmp_to_key +import unicodedata + +# i18n +gettext.install("cinnamon", "/usr/share/locale") + +# Standard setting pages... this can be expanded to include applet dirs maybe? +mod_files = glob.glob('/usr/share/cinnamon/cinnamon-settings/modules/*.py') +mod_files.sort() +if len(mod_files) is 0: + print "No settings modules found!!" + sys.exit(1) + +mod_files = [x.split('/')[6].split('.')[0] for x in mod_files] + +for mod_file in mod_files: + if mod_file[0:3] != "cs_": + raise Exception("Settings modules must have a prefix of 'cs_' !!") + +modules = map(__import__, mod_files) + +# i18n for menu item +menuName = _("System Settings") +menuComment = _("Control Center") + +WIN_WIDTH = 800 +WIN_HEIGHT = 600 +WIN_H_PADDING = 20 + +MIN_LABEL_WIDTH = 16 +MAX_LABEL_WIDTH = 25 +MIN_PIX_WIDTH = 100 +MAX_PIX_WIDTH = 160 + +MOUSE_BACK_BUTTON = 8 + +CATEGORIES = [ +# Display name ID Show it? Always False to start Icon + {"label": _("Appearance"), "id": "appear", "show": False, "icon": "cs-cat-appearance"}, + {"label": _("Preferences"), "id": "prefs", "show": False, "icon": "cs-cat-prefs"}, + {"label": _("Hardware"), "id": "hardware", "show": False, "icon": "cs-cat-hardware"}, + {"label": _("Administration"), "id": "admin", "show": False, "icon": "cs-cat-admin"} +] + +CONTROL_CENTER_MODULES = [ +# Label Module ID Icon Category Keywords for filter + [_("Networking"), "network", "cs-network", "hardware", _("network, wireless, wifi, ethernet, broadband, internet")], + [_("Display"), "display", "cs-display", "hardware", _("display, screen, monitor, layout, resolution, dual, lcd")], + [_("Color"), "color", "cs-color", "hardware", _("color, profile, display, printer, output")], + [_("Graphics Tablet"), "wacom", "cs-tablet", "hardware", _("wacom, digitize, tablet, graphics, calibrate, stylus")] +] + +STANDALONE_MODULES = [ +# Label Executable Icon Category Keywords for filter + [_("Printers"), "system-config-printer", "cs-printer", "hardware", _("printers, laser, inkjet")], + [_("Firewall"), "gufw", "cs-firewall", "admin", _("firewall, block, filter, programs")], + [_("Languages"), "mintlocale", "cs-language", "prefs", _("language, install, foreign")], + [_("Input Method"), "mintlocale im", "cs-input-method", "prefs", _("language, install, foreign, input, method, chinese, korean, japanese, typing")], + [_("Login Window"), "gksu /usr/sbin/mdmsetup", "cs-login", "admin", _("login, mdm, gdm, manager, user, password, startup, switch")], + [_("Driver Manager"), "mintdrivers", "cs-drivers", "admin", _("video, driver, wifi, card, hardware, proprietary, nvidia, radeon, nouveau, fglrx")], + [_("Software Sources"), "mintsources", "cs-sources", "admin", _("ppa, repository, package, source, download")], + [_("Users and Groups"), "cinnamon-settings-users", "cs-user-accounts", "admin", _("user, users, account, accounts, group, groups, password")], + [_("Bluetooth"), "blueberry", "cs-bluetooth", "hardware", _("bluetooth, dongle, transfer, mobile")] + [_("Manjaro Settings Manager"), "manjaro-settings-manager", "cs-cat-hardware", "admin", _("manjaro, settings, manager, kernel, graphics, driver, language")], + [_("Manjaro Notifier Settings"), "msm_notifier --settings", "cs-sources", "admin", _("manjaro, settings, notifier, kernel, language")] +] + +def print_timing(func): + # decorate functions with @print_timing to output how long they take to run. + def wrapper(*arg): + t1 = time.time() + res = func(*arg) + t2 = time.time() + print '%s took %0.3f ms' % (func.func_name, (t2-t1)*1000.0) + return res + return wrapper + +def touch(fname, times=None): + with file(fname, 'a'): + os.utime(fname, times) + +class MainWindow: + + # Change pages + def side_view_nav(self, side_view, path, cat): + selected_items = side_view.get_selected_items() + if len(selected_items) > 0: + self.deselect(cat) + filtered_path = side_view.get_model().convert_path_to_child_path(selected_items[0]) + if filtered_path is not None: + self.go_to_sidepage(cat, filtered_path) + + def _on_sidepage_hide_stack(self): + self.stack_switcher.set_opacity(0) + + def _on_sidepage_show_stack(self): + self.stack_switcher.set_opacity(1) + + def go_to_sidepage(self, cat, path): + iterator = self.store[cat].get_iter(path) + sidePage = self.store[cat].get_value(iterator,2) + if not sidePage.is_standalone: + self.window.set_title(sidePage.name) + sidePage.build() + if sidePage.stack: + current_page = sidePage.stack.get_visible_child_name() + self.stack_switcher.set_stack(sidePage.stack) + l = sidePage.stack.get_children() + if len(l) > 0: + sidePage.stack.set_visible_child(l[0]) + if sidePage.stack.get_visible(): + self.stack_switcher.set_opacity(1) + else: + self.stack_switcher.set_opacity(0) + if hasattr(sidePage, "connect_proxy"): + sidePage.connect_proxy("hide_stack", self._on_sidepage_hide_stack) + sidePage.connect_proxy("show_stack", self._on_sidepage_show_stack) + else: + self.stack_switcher.set_opacity(0) + else: + self.stack_switcher.set_opacity(0) + self.main_stack.set_visible_child_name("content_box_page") + self.header_stack.set_visible_child_name("content_box") + self.current_sidepage = sidePage + width = 0 + for widget in self.top_bar: + m, n = widget.get_preferred_width() + width += n + self.top_bar.set_size_request(width + 20, -1) + self.maybe_resize(sidePage) + else: + sidePage.build() + + def maybe_resize(self, sidePage): + m, n = self.content_box.get_preferred_size() + + # Resize horizontally if the module is wider than the window + use_width = WIN_WIDTH + if n.width > WIN_WIDTH: + use_width = n.width + + # Resize vertically depending on the height requested by the module + use_height = WIN_HEIGHT + if not sidePage.size: + # No height requested, resize vertically if the module is taller than the window + if n.height > WIN_HEIGHT: + use_height = n.height + self.bar_heights + WIN_H_PADDING + #self.window.resize(use_width, n.height + self.bar_heights + WIN_H_PADDING) + elif sidePage.size > 0: + # Height hardcoded by the module + use_height = sidePage.size + self.bar_heights + WIN_H_PADDING + elif sidePage.size == -1: + # Module requested the window to fit it (i.e. shrink the window if necessary) + use_height = n.height + self.bar_heights + WIN_H_PADDING + + self.window.resize(use_width, use_height) + + def deselect(self, cat): + for key in self.side_view.keys(): + if key is not cat: + self.side_view[key].unselect_all() + + ''' Create the UI ''' + def __init__(self): + self.builder = Gtk.Builder() + self.builder.add_from_file("/usr/share/cinnamon/cinnamon-settings/cinnamon-settings.ui") + self.window = self.builder.get_object("main_window") + self.top_bar = self.builder.get_object("top_bar") + self.side_view = {} + self.main_stack = self.builder.get_object("main_stack") + self.main_stack.set_transition_type(Gtk.StackTransitionType.CROSSFADE) + self.main_stack.set_transition_duration(150) + self.header_stack = self.builder.get_object("header_stack") + self.header_stack.set_transition_type(Gtk.StackTransitionType.CROSSFADE) + self.header_stack.set_transition_duration(150) + self.side_view_container = self.builder.get_object("category_box") + self.side_view_sw = self.builder.get_object("side_view_sw") + context = self.side_view_sw.get_style_context() + context.add_class("cs-category-view") + context.add_class("view") + self.side_view_sw.show_all() + self.content_box = self.builder.get_object("content_box") + self.content_box_sw = self.builder.get_object("content_box_sw") + self.content_box_sw.show_all() + self.button_back = self.builder.get_object("button_back") + self.button_back.set_tooltip_text(_("Back to all settings")) + button_image = self.builder.get_object("image1") + button_image.props.icon_size = Gtk.IconSize.MENU + + self.stack_switcher = self.builder.get_object("stack_switcher") + + m, n = self.button_back.get_preferred_width() + self.stack_switcher.set_margin_right(n) + + self.search_entry = self.builder.get_object("search_box") + self.search_entry.connect("changed", self.onSearchTextChanged) + self.search_entry.connect("icon-press", self.onClearSearchBox) + + self.window.connect("destroy", self.quit) + self.window.connect("key-press-event", self.on_keypress) + self.window.connect("button-press-event", self.on_buttonpress) + self.window.show() + + self.builder.connect_signals(self) + self.window.set_has_resize_grip(False) + self.unsortedSidePages = [] + self.sidePages = [] + self.settings = Gio.Settings.new("org.cinnamon") + self.current_cat_widget = None + + self.current_sidepage = None + self.c_manager = capi.CManager() + self.content_box.c_manager = self.c_manager + self.bar_heights = 0 + + for module in modules: + try: + mod = module.Module(self.content_box) + if self.loadCheck(mod) and self.setParentRefs(mod): + self.unsortedSidePages.append((mod.sidePage, mod.name, mod.category)) + except: + print "Failed to load module %s" % module + traceback.print_exc() + + for item in CONTROL_CENTER_MODULES: + ccmodule = SettingsWidgets.CCModule(item[0], item[1], item[2], item[3], item[4], self.content_box) + if ccmodule.process(self.c_manager): + self.unsortedSidePages.append((ccmodule.sidePage, ccmodule.name, ccmodule.category)) + + for item in STANDALONE_MODULES: + samodule = SettingsWidgets.SAModule(item[0], item[1], item[2], item[3], item[4], self.content_box) + if samodule.process(): + self.unsortedSidePages.append((samodule.sidePage, samodule.name, samodule.category)) + + # sort the modules alphabetically according to the current locale + sidePageNamesToSort = map(lambda m: m[0].name, self.unsortedSidePages) + sortedSidePageNames = sorted(sidePageNamesToSort, key=cmp_to_key(locale.strcoll)) + for sidePageName in sortedSidePageNames: + nextSidePage = None + for trySidePage in self.unsortedSidePages: + if(trySidePage[0].name == sidePageName): + nextSidePage = trySidePage + + self.sidePages.append(nextSidePage); + + + # create the backing stores for the side nav-view. + sidePagesIters = {} + self.store = {} + self.storeFilter = {} + for sidepage in self.sidePages: + sp, sp_id, sp_cat = sidepage + if not self.store.has_key(sp_cat): # Label Icon sidePage Category + self.store[sidepage[2]] = Gtk.ListStore(str, str, object, str) + for category in CATEGORIES: + if category["id"] == sp_cat: + category["show"] = True + + # Don't allow item names (and their translations) to be more than 30 chars long. It looks ugly and it creates huge gaps in the icon views + name = unicode(sp.name,'utf-8') + if len(name) > 30: + name = "%s..." % name[:30] + sidePagesIters[sp_id] = (self.store[sp_cat].append([name, sp.icon, sp, sp_cat]), sp_cat) + + self.min_label_length = 0 + self.min_pix_length = 0 + + for key in self.store.keys(): + char, pix = self.get_label_min_width(self.store[key]) + self.min_label_length = max(char, self.min_label_length) + self.min_pix_length = max(pix, self.min_pix_length) + self.storeFilter[key] = self.store[key].filter_new() + self.storeFilter[key].set_visible_func(self.filter_visible_function) + + self.min_label_length += 2 + self.min_pix_length += 4 + + self.min_label_length = max(self.min_label_length, MIN_LABEL_WIDTH) + self.min_pix_length = max(self.min_pix_length, MIN_PIX_WIDTH) + + self.min_label_length = min(self.min_label_length, MAX_LABEL_WIDTH) + self.min_pix_length = min(self.min_pix_length, MAX_PIX_WIDTH) + + self.displayCategories() + + # set up larger components. + self.window.set_title(_("System Settings")) + self.button_back.connect('clicked', self.back_to_icon_view) + + self.calculate_bar_heights() + + # Select the first sidePage + if len(sys.argv) > 1 and sys.argv[1] in sidePagesIters.keys(): + (iter, cat) = sidePagesIters[sys.argv[1]] + path = self.store[cat].get_path(iter) + if path: + self.go_to_sidepage(cat, path) + else: + self.search_entry.grab_focus() + else: + self.search_entry.grab_focus() + + def on_keypress(self, widget, event): + grab = False + device = Gtk.get_current_event_device() + if device.get_source() == Gdk.InputSource.KEYBOARD: + grab = Gdk.Display.get_default().device_is_grabbed(device) + if not grab and event.keyval == Gdk.KEY_BackSpace and (type(self.window.get_focus()) not in + (Gtk.TreeView, Gtk.Entry, Gtk.SpinButton, Gtk.TextView)): + self.back_to_icon_view(None) + return True + return False + + def on_buttonpress(self, widget, event): + if event.button == MOUSE_BACK_BUTTON: + self.back_to_icon_view(None) + return True + return False + + def calculate_bar_heights(self): + h = 0 + m, n = self.top_bar.get_preferred_size() + h += n.height + self.bar_heights = h + + def onSearchTextChanged(self, widget): + self.displayCategories() + + def onClearSearchBox(self, widget, position, event): + if position == Gtk.EntryIconPosition.SECONDARY: + self.search_entry.set_text("") + + def strip_accents(self, text): + try: + text = unicode(text, 'utf-8') + except NameError: + # unicode is default in Python 3 + pass + text = unicodedata.normalize('NFD', text) + text = text.encode('ascii', 'ignore') + text = text.decode("utf-8") + return str(text) + + def filter_visible_function(self, model, iter, user_data = None): + sidePage = model.get_value(iter, 2) + text = self.strip_accents(self.search_entry.get_text().lower()) + if self.strip_accents(sidePage.name.lower()).find(text) > -1 or \ + self.strip_accents(sidePage.keywords.lower()).find(text) > -1: + return True + else: + return False + + def displayCategories(self): + widgets = self.side_view_container.get_children() + for widget in widgets: + widget.destroy() + self.first_category_done = False # This is just to prevent an extra separator showing up before the first category + for category in CATEGORIES: + if category["show"] is True: + self.prepCategory(category) + self.side_view_container.show_all() + + def get_label_min_width(self, model): + min_width_chars = 0 + min_width_pixels = 0 + icon_view = Gtk.IconView() + iter = model.get_iter_first() + while iter != None: + string = model.get_value(iter, 0) + split_by_word = string.split(" ") + for word in split_by_word: + layout = icon_view.create_pango_layout(word) + item_width, item_height = layout.get_pixel_size() + if item_width > min_width_pixels: + min_width_pixels = item_width + if len(word) > min_width_chars: + min_width_chars = len(word) + iter = model.iter_next(iter) + return min_width_chars, min_width_pixels + + def pixbuf_data_func(self, column, cell, model, iter, data=None): + wrapper = model.get_value(iter, 1) + if wrapper: + cell.set_property('surface', wrapper.surface) + + def prepCategory(self, category): + self.storeFilter[category["id"]].refilter() + if not self.anyVisibleInCategory(category): + return + if self.first_category_done: + widget = Gtk.Separator.new(Gtk.Orientation.HORIZONTAL) + self.side_view_container.pack_start(widget, False, False, 10) + + box = Gtk.Box.new(Gtk.Orientation.HORIZONTAL, 4) + img = Gtk.Image.new_from_icon_name(category["icon"], Gtk.IconSize.BUTTON) + box.pack_start(img, False, False, 4) + + widget = Gtk.Label() + widget.set_use_markup(True) + widget.set_markup('%s' % category["label"]) + widget.set_alignment(.5, .5) + box.pack_start(widget, False, False, 1) + self.side_view_container.pack_start(box, False, False, 0) + widget = Gtk.IconView.new_with_model(self.storeFilter[category["id"]]) + + area = widget.get_area() + + widget.set_item_width(self.min_pix_length) + widget.set_item_padding(0) + widget.set_column_spacing(18) + widget.set_row_spacing(18) + widget.set_margin(20) + + pixbuf_renderer = Gtk.CellRendererPixbuf() + text_renderer = Gtk.CellRendererText(ellipsize=Pango.EllipsizeMode.NONE, wrap_mode=Pango.WrapMode.WORD_CHAR, wrap_width=0, width_chars=self.min_label_length, alignment=Pango.Alignment.CENTER) + + text_renderer.set_alignment(.5, 0) + area.pack_start(pixbuf_renderer, True, True, False) + area.pack_start(text_renderer, True, True, False) + area.add_attribute(pixbuf_renderer, "icon-name", 1) + pixbuf_renderer.set_property("stock-size", Gtk.IconSize.DIALOG) + pixbuf_renderer.set_property("follow-state", True) + + area.add_attribute(text_renderer, "text", 0) + + self.side_view[category["id"]] = widget + self.side_view_container.pack_start(self.side_view[category["id"]], False, False, 0) + self.first_category_done = True + self.side_view[category["id"]].connect("item-activated", self.side_view_nav, category["id"]) + self.side_view[category["id"]].connect("button-release-event", self.button_press, category["id"]) + self.side_view[category["id"]].connect("keynav-failed", self.on_keynav_failed, category["id"]) + self.side_view[category["id"]].connect("selection-changed", self.on_selection_changed, category["id"]) + + def bring_selection_into_view(self, iconview): + sel = iconview.get_selected_items() + + if sel: + path = sel[0] + found, rect = iconview.get_cell_rect(path, None) + + cw = self.side_view_container.get_window() + cw_x, cw_y = cw.get_position() + + ivw = iconview.get_window() + iv_x, iv_y = ivw.get_position() + + final_y = rect.y + (rect.height / 2) + cw_y + iv_y + + adj = self.side_view_sw.get_vadjustment() + page = adj.get_page_size() + current_pos = adj.get_value() + + if final_y > current_pos + page: + adj.set_value(iv_y + rect.y) + elif final_y < current_pos: + adj.set_value(iv_y + rect.y) + + def on_selection_changed(self, widget, category): + sel = widget.get_selected_items() + if len(sel) > 0: + self.current_cat_widget = widget + self.bring_selection_into_view(widget) + for iv in self.side_view: + if self.side_view[iv] == self.current_cat_widget: + continue + self.side_view[iv].unselect_all() + + def get_cur_cat_index(self, category): + i = 0 + for cat in CATEGORIES: + if category == cat["id"]: + return i + i += 1 + + def get_cur_column(self, iconview): + s, path, cell = iconview.get_cursor() + if path: + col = iconview.get_item_column(path) + return col + + def reposition_new_cat(self, sel, iconview): + iconview.set_cursor(sel, None, False) + iconview.select_path(sel) + iconview.grab_focus() + + def on_keynav_failed(self, widget, direction, category): + num_cats = len(CATEGORIES) + current_idx = self.get_cur_cat_index(category) + new_cat = CATEGORIES[current_idx] + ret = False + dist = 1000 + sel = None + + if direction == Gtk.DirectionType.DOWN and current_idx < num_cats - 1: + new_cat = CATEGORIES[current_idx + 1] + col = self.get_cur_column(widget) + new_cat_view = self.side_view[new_cat["id"]] + model = new_cat_view.get_model() + iter = model.get_iter_first() + while iter is not None: + path = model.get_path(iter) + c = new_cat_view.get_item_column(path) + d = abs(c - col) + if d < dist: + sel = path + dist = d + iter = model.iter_next(iter) + self.reposition_new_cat(sel, new_cat_view) + ret = True + elif direction == Gtk.DirectionType.UP and current_idx > 0: + new_cat = CATEGORIES[current_idx - 1] + col = self.get_cur_column(widget) + new_cat_view = self.side_view[new_cat["id"]] + model = new_cat_view.get_model() + iter = model.get_iter_first() + while iter is not None: + path = model.get_path(iter) + c = new_cat_view.get_item_column(path) + d = abs(c - col) + if d <= dist: + sel = path + dist = d + iter = model.iter_next(iter) + self.reposition_new_cat(sel, new_cat_view) + ret = True + return ret + + def button_press(self, widget, event, category): + if event.button == 1: + self.side_view_nav(widget, None, category) + + def anyVisibleInCategory(self, category): + id = category["id"] + iter = self.storeFilter[id].get_iter_first() + visible = False + while iter is not None: + cat = self.storeFilter[id].get_value(iter, 3) + visible = cat == category["id"] + iter = self.storeFilter[id].iter_next(iter) + return visible + + def setParentRefs (self, mod): + try: + mod._setParentRef(self.window) + except AttributeError: + pass + return True + + def loadCheck (self, mod): + try: + return mod._loadCheck() + except: + return True + + def back_to_icon_view(self, widget): + self.window.set_title(_("System Settings")) + self.window.resize(WIN_WIDTH, WIN_HEIGHT) + children = self.content_box.get_children() + for child in children: + child.hide() + if child.get_name() == "c_box": + c_widgets = child.get_children() + for c_widget in c_widgets: + c_widget.hide() + self.main_stack.set_visible_child_name("side_view_page") + self.header_stack.set_visible_child_name("side_view") + self.search_entry.grab_focus() + self.current_sidepage = None + + def quit(self, *args): + self.window.destroy() + Gtk.main_quit() + +if __name__ == "__main__": + import signal + + ps = proxygsettings.get_proxy_settings() + if ps: + proxy = urllib2.ProxyHandler(ps) + else: + proxy = urllib2.ProxyHandler() + urllib2.install_opener(urllib2.build_opener(proxy)) + + window = MainWindow() + signal.signal(signal.SIGINT, window.quit) + Gtk.main() diff --git a/manjaro/cinnamon/desktop-overlay/usr/share/icons/default/index.theme b/manjaro/cinnamon/desktop-overlay/usr/share/icons/default/index.theme new file mode 100644 index 0000000..741f643 --- /dev/null +++ b/manjaro/cinnamon/desktop-overlay/usr/share/icons/default/index.theme @@ -0,0 +1,2 @@ +[Icon Theme] +Inherits=Breeze diff --git a/manjaro/cinnamon/live-overlay b/manjaro/cinnamon/live-overlay new file mode 120000 index 0000000..27b9d2a --- /dev/null +++ b/manjaro/cinnamon/live-overlay @@ -0,0 +1 @@ +../../shared/manjaro/live-overlay \ No newline at end of file diff --git a/manjaro/cinnamon/mkinitcpio.conf b/manjaro/cinnamon/mkinitcpio.conf new file mode 120000 index 0000000..d624606 --- /dev/null +++ b/manjaro/cinnamon/mkinitcpio.conf @@ -0,0 +1 @@ +../../shared/mkinitcpio.conf \ No newline at end of file diff --git a/manjaro/cinnamon/profile.conf b/manjaro/cinnamon/profile.conf new file mode 100644 index 0000000..7c100d1 --- /dev/null +++ b/manjaro/cinnamon/profile.conf @@ -0,0 +1,84 @@ +########################################## +###### use this file in the profile ###### +########################################## + +# use multilib packages; x86_64 only +# multilib="true" + +# use pxe +# pxe_boot="true" + +################ torrent ################ + +# the torrent tracker urls, comma separated +# tracker_url='udp://mirror.strits.dk:6969' + +# Piece size, 2^n +# piece_size=21 + +################ install ################ + +# default displaymanager: none +# supported; lightdm, sddm, gdm, lxdm, mdm +displaymanager="lightdm" + +# Set to false to disable autologin in the livecd +# autologin="true" + +# nonfree xorg drivers +# nonfree_mhwd="true" + +# use plymouth +plymouth_boot="true" + +# possible values: grub;systemd-boot +# efi_boot_loader="grub" + +# configure calamares for netinstall +# netinstall="false" + +# the default url for the netinstall.yaml +# netgroups="https://raw.githubusercontent.com/manjaro/manjaro-tools-iso-profiles/master/shared/netinstall" + +# configure calamares to use chrootcfg instead of unpackfs +# unpackfs="false" + +# use geoip +# geoip="true" + +# unset defaults to given value +plymouth_theme=manjaro-cinnamon + +# unset defaults to given values +# names must match systemd service names +# enable_systemd=('bluetooth' 'cronie' 'ModemManager' 'NetworkManager' 'org.cups.cupsd' 'tlp' 'tlp-sleep') +# disable_systemd=() + +# unset defaults to given values, +# names must match openrc service names +# enable_openrc=('acpid' 'bluetooth' 'consolekit' 'cronie' 'cupsd' 'dbus' 'syslog-ng' 'NetworkManager') +# disable_openrc=() + +# unset defaults to given values +# addgroups="video,power,disk,storage,optical,network,lp,scanner,wheel" + +# the same workgroup name if samba is used +# smb_workgroup="" + +################# live-session ################# + +# unset defaults to given value +hostname="manjaro-cinnamon" + +# unset defaults to given value +# password="manjaro" + +# unset defaults to given values +# names must match systemd service names +# services in enable_systemd array don't need to be listed here +# enable_systemd_live=('manjaro-live' 'mhwd-live' 'pacman-init' 'mirrors-live') + +# unset defaults to given values, +# names must match openrc service names +# services in enable_openrc array don't need to be listed here +# enable_openrc_live=('manjaro-live' 'mhwd-live' 'pacman-init' 'mirrors-live') diff --git a/manjaro/deepin/Packages-Desktop b/manjaro/deepin/Packages-Desktop new file mode 100644 index 0000000..d1038b2 --- /dev/null +++ b/manjaro/deepin/Packages-Desktop @@ -0,0 +1,122 @@ +###################################################### +### THIS FILE WILL INCLUDE shared/Packages-Desktop ### +###################################################### + +## deepin packages +deepin-calendar +deepin-file-manager +deepin-gtk-theme +deepin-social-sharing +deepin-image-viewer + +## deepin-extra packages +deepin-movie +deepin-screenshot +deepin-terminal +# workaround launcher-bug https://github.com/linuxdeepin/dde-launcher/issues/5 +gnome-terminal + +## other deepin Packages +baobab +chromium +dconf-editor +downgrade +evince +gedit +poppler-data # CKJ support for pdf +evolution +galculator +gimp +gksu +gnome-system-monitor +gnome-vfs +gparted +gvfs-afc +gvfs-gphoto2 +gvfs-mtp # for mounting Samsung phones +gvfs-smb +hexchat +htop +isousb +libimobiledevice +libreoffice-still +manjaro-browser-settings +manjaro-deepin-settings +manjaro-documentation +manjaro-features +manjaro-settings-manager-notifier +manjaro-welcome +mlocate +polkit-gnome +qt5ct +qt5-styleplugins +screenfetch +smplayer +sushi +gufw # firewall +transmission-gtk +xarchiver +xfburn + +## Network +netctl +networkmanager +networkmanager-dispatcher-ntpd +networkmanager-openconnect +networkmanager-openvpn +networkmanager-pptp +networkmanager-vpnc +openresolv +syslog-ng + +## Packages for Sound and Audio +gst-libav +gst-plugins-bad +gst-plugins-base +gst-plugins-good +gst-plugins-ugly +gstreamer0.10-bad-plugins +gstreamer0.10-base-plugins +gstreamer0.10-good-plugins +gstreamer0.10-ugly-plugins +libdvdcss +manjaro-alsa +manjaro-pulse +pulseaudio-bluetooth +pulseaudio-ctl +pulseaudio-zeroconf + +## Package management +pamac +yaourt + +## Artwork +adwaita-manjaro-themes +plymouth-theme-manjaro-deepin-circle + +## Games +deepin-game +#steam-manjaro + +## Java +jre8-openjdk +jre8-openjdk-headless +icedtea-web + +## Printing / Scanning +manjaro-printer +xsane +xsane-gimp + +## AUR Access +autoconf +automake +binutils +bison +fakeroot +flex +gcc +libtool +m4 +make +patch diff --git a/manjaro/deepin/Packages-Live b/manjaro/deepin/Packages-Live new file mode 120000 index 0000000..5e66e00 --- /dev/null +++ b/manjaro/deepin/Packages-Live @@ -0,0 +1 @@ +../../shared/Packages-Live \ No newline at end of file diff --git a/manjaro/deepin/Packages-Mhwd b/manjaro/deepin/Packages-Mhwd new file mode 120000 index 0000000..9df3d5e --- /dev/null +++ b/manjaro/deepin/Packages-Mhwd @@ -0,0 +1 @@ +../../shared/Packages-Mhwd \ No newline at end of file diff --git a/manjaro/deepin/Packages-Root b/manjaro/deepin/Packages-Root new file mode 120000 index 0000000..60cc7bd --- /dev/null +++ b/manjaro/deepin/Packages-Root @@ -0,0 +1 @@ +../../shared/Packages-Root \ No newline at end of file diff --git a/manjaro/deepin/desktop-overlay/etc/fonts/conf.d/70-no-bitmaps.conf b/manjaro/deepin/desktop-overlay/etc/fonts/conf.d/70-no-bitmaps.conf new file mode 120000 index 0000000..d6c7fc1 --- /dev/null +++ b/manjaro/deepin/desktop-overlay/etc/fonts/conf.d/70-no-bitmaps.conf @@ -0,0 +1 @@ +/etc/fonts/conf.avail/70-no-bitmaps.conf \ No newline at end of file diff --git a/manjaro/deepin/desktop-overlay/usr/share/icons/default/index.theme b/manjaro/deepin/desktop-overlay/usr/share/icons/default/index.theme new file mode 100644 index 0000000..741f643 --- /dev/null +++ b/manjaro/deepin/desktop-overlay/usr/share/icons/default/index.theme @@ -0,0 +1,2 @@ +[Icon Theme] +Inherits=Breeze diff --git a/manjaro/deepin/live-overlay b/manjaro/deepin/live-overlay new file mode 120000 index 0000000..27b9d2a --- /dev/null +++ b/manjaro/deepin/live-overlay @@ -0,0 +1 @@ +../../shared/manjaro/live-overlay \ No newline at end of file diff --git a/manjaro/deepin/mkinitcpio.conf b/manjaro/deepin/mkinitcpio.conf new file mode 120000 index 0000000..d624606 --- /dev/null +++ b/manjaro/deepin/mkinitcpio.conf @@ -0,0 +1 @@ +../../shared/mkinitcpio.conf \ No newline at end of file diff --git a/manjaro/deepin/profile.conf b/manjaro/deepin/profile.conf new file mode 100644 index 0000000..4e28873 --- /dev/null +++ b/manjaro/deepin/profile.conf @@ -0,0 +1,84 @@ +########################################## +###### use this file in the profile ###### +########################################## + +# use multilib packages; x86_64 only +# multilib="true" + +# use pxe +# pxe_boot="true" + +################ torrent ################ + +# the torrent tracker urls, comma separated +# tracker_url='udp://mirror.strits.dk:6969' + +# Piece size, 2^n +# piece_size=21 + +################ install ################ + +# default displaymanager: none +# supported; lightdm, sddm, gdm, lxdm, mdm +displaymanager="lightdm" + +# Set to false to disable autologin in the livecd +# autologin="true" + +# nonfree xorg drivers +# nonfree_mhwd="true" + +# use plymouth +plymouth_boot="true" + +# possible values: grub;systemd-boot +# efi_boot_loader="grub" + +# configure calamares for netinstall +# netinstall="false" + +# the default url for the netinstall.yaml +# netgroups="https://raw.githubusercontent.com/manjaro/manjaro-tools-iso-profiles/master/shared/netinstall" + +# configure calamares to use chrootcfg instead of unpackfs +# unpackfs="false" + +# use geoip +# geoip="true" + +# unset defaults to given value +plymouth_theme=manjaro-deepin-circle + +# unset defaults to given values +# names must match systemd service names +# enable_systemd=('bluetooth' 'cronie' 'ModemManager' 'NetworkManager' 'org.cups.cupsd' 'tlp' 'tlp-sleep') +# disable_systemd=() + +# unset defaults to given values, +# names must match openrc service names +# enable_openrc=('acpid' 'bluetooth' 'consolekit' 'cronie' 'cupsd' 'dbus' 'syslog-ng' 'NetworkManager') +# disable_openrc=() + +# unset defaults to given values +# addgroups="video,power,disk,storage,optical,network,lp,scanner,wheel" + +# the same workgroup name if samba is used +# smb_workgroup="" + +################# live-session ################# + +# unset defaults to given value +hostname="manjaro-deepin" + +# unset defaults to given value +# password="manjaro" + +# unset defaults to given values +# names must match systemd service names +# services in enable_systemd array don't need to be listed here +# enable_systemd_live=('manjaro-live' 'mhwd-live' 'pacman-init' 'mirrors-live') + +# unset defaults to given values, +# names must match openrc service names +# services in enable_openrc array don't need to be listed here +# enable_openrc_live=('manjaro-live' 'mhwd-live' 'pacman-init' 'mirrors-live') diff --git a/manjaro/i3/Packages-Desktop b/manjaro/i3/Packages-Desktop new file mode 100644 index 0000000..f3d0a59 --- /dev/null +++ b/manjaro/i3/Packages-Desktop @@ -0,0 +1,135 @@ +###################################################### +### THIS FILE WILL INCLUDE shared/Packages-Desktop ### +###################################################### + +## i3 Packages +accountsservice +artwork-i3 +bmenu +downgrade +ffmpeg +ffmpegthumbnailer +flashplugin +gconf # fix qt-theme +gnome-keyring # fix wlan segfault +gufw # firewall +>openrc ufw-openrc +hexchat +htop +lightdm-gtk-greeter-settings +lm_sensors +lxappearance +manjaro-i3-settings +manjaro-settings-manager-notifier +mlocate +morc_menu +p7zip +polkit-gnome +ranger +screenfetch +>openrc timeset +>openrc ntp-openrc +qt5ct +qt5-styleplugins +tree +vi +vim +wmutils +xarchiver +xautolock +xdotool +xfce4-power-manager +xcursor-chameleon-pearl +xcursor-maia +xorg-xkill +xorg-xprop + +## Applications +arandr +clipit +dfc +epdfview +gcolor2 +gimp +gksu +gnome-vfs +gparted +gvfs # trash support and mounting volumes +gvfs-afc +gvfs-gphoto2 +gvfs-mtp # for mounting Samsung phones +gvfs-smb +isousb +libgpod # iPhone/Pod connectivity +manjaro-browser-settings +manjaro-features +manjaro-welcome +# eventually add upower-pm-utils; it seems to depend on DE features; take what works default is upower +# >openrc upower-pm-utils +upower +moc +mousepad +ncdu +palemoon-bin +perl-file-mimeinfo +pcmanfm +poppler-data # CKJ support for pdf +open-fuse-iso +sbxkb +speedtest-cli +transmission-gtk +viewnior +vlc-nightly +w3m +xfburn +xterm + +## Network +blueman +>openrc bluez-openrc +>systemd netctl +>systemd networkmanager +>openrc networkmanager-openrc +>openrc networkmanager-consolekit +network-manager-applet +networkmanager-dispatcher-ntpd +>systemd networkmanager-openconnect +networkmanager-openvpn +>systemd openssh +>openrc openssh-openrc +>openrc openvpn-openrc +>systemd networkmanager-pptp +networkmanager-vpnc +>systemd openresolv +>systemd syslog-ng +json-c # for syslog-ng +>openrc syslog-ng-openrc + +## Audio Packages +>openrc alsa-utils-openrc +>systemd alsa-utils +alsa-plugins +gst-libav +gst-plugins-bad +gst-plugins-base +gst-plugins-good +gst-plugins-ugly +gstreamer0.10-bad-plugins +gstreamer0.10-base-plugins +gstreamer0.10-good-plugins +gstreamer0.10-ugly-plugins +flac +libdvdcss +manjaro-alsa +volumeicon + +## Package management +pamac +yaourt + +## Printing +manjaro-printer +>openrc cups-openrc + +## AUR Access +base-devel diff --git a/manjaro/i3/Packages-Live b/manjaro/i3/Packages-Live new file mode 120000 index 0000000..5e66e00 --- /dev/null +++ b/manjaro/i3/Packages-Live @@ -0,0 +1 @@ +../../shared/Packages-Live \ No newline at end of file diff --git a/manjaro/i3/Packages-Mhwd b/manjaro/i3/Packages-Mhwd new file mode 100644 index 0000000..7b5a7dc --- /dev/null +++ b/manjaro/i3/Packages-Mhwd @@ -0,0 +1,71 @@ +## Packages-Xorg minus nvidia 340xx and 304xx drivers + +## Xorg Drivers +xf86-video-apm +xf86-video-ark +xf86-video-ati +xf86-video-amdgpu # only works with kernels 4.2+ +xf86-video-chips +xf86-video-dummy +xf86-video-fbdev +xf86-video-glint +xf86-video-i128 +xf86-video-i740 +xf86-video-intel +xf86-video-mach64 +xf86-video-neomagic +xf86-video-nouveau +xf86-video-nv +xf86-video-openchrome +xf86-video-r128 +xf86-video-rendition +xf86-video-s3 +xf86-video-s3virge +xf86-video-savage +xf86-video-siliconmotion +xf86-video-sis +xf86-video-sisusb +xf86-video-tdfx +xf86-video-trident +xf86-video-tseng +xf86-video-vesa +xf86-video-vmware +xf86-video-voodoo + +## Bumblebee Support +>systemd bumblebee +>openrc bumblebee-openrc +primus +>multilib lib32-primus +KERNEL-bbswitch + +## Network Support +KERNEL-broadcom-wl +KERNEL-rt3562sta +KERNEL-r8168 + +## Proprietary Drivers +>nonfree_default catalyst-utils +>nonfree_default KERNEL-catalyst +>nonfree_default nvidia-utils +>nonfree_default KERNEL-nvidia +>nonfree_multilib lib32-catalyst-utils +>nonfree_multilib lib32-nvidia-utils + +## Virtualbox Drivers +>openrc virtualbox-guest-utils-openrc +>systemd virtualbox-guest-utils +KERNEL-virtualbox-guest-modules + +## Xorg Packages +libxaw +libxpm +libxvmc +pangox-compat + +## Xorg x86_64 Packages +>multilib lib32-libxvmc + +## VMWare Support +open-vm-tools +xf86-input-vmmouse diff --git a/manjaro/i3/Packages-Root b/manjaro/i3/Packages-Root new file mode 120000 index 0000000..60cc7bd --- /dev/null +++ b/manjaro/i3/Packages-Root @@ -0,0 +1 @@ +../../shared/Packages-Root \ No newline at end of file diff --git a/manjaro/i3/desktop-overlay/etc/fonts/conf.d/70-no-bitmaps.conf b/manjaro/i3/desktop-overlay/etc/fonts/conf.d/70-no-bitmaps.conf new file mode 120000 index 0000000..d6c7fc1 --- /dev/null +++ b/manjaro/i3/desktop-overlay/etc/fonts/conf.d/70-no-bitmaps.conf @@ -0,0 +1 @@ +/etc/fonts/conf.avail/70-no-bitmaps.conf \ No newline at end of file diff --git a/manjaro/i3/desktop-overlay/etc/lightdm/lightdm-gtk-greeter.conf b/manjaro/i3/desktop-overlay/etc/lightdm/lightdm-gtk-greeter.conf new file mode 100644 index 0000000..8c1b80a --- /dev/null +++ b/manjaro/i3/desktop-overlay/etc/lightdm/lightdm-gtk-greeter.conf @@ -0,0 +1,17 @@ +[greeter] +active-monitor = cursor + +# Possible options for images: "#source:", "#stretched:" Default: "#zoomed:" +background = #353836 +user-background = false +position = -50%,center +default-user-image = /usr/share/pixmaps/faces/i3-maia_small.png +font-name = Noto Sans 11 +xft-antialias = true +xft-hintstyle = hintfull +icon-theme-name = Breeze-Maia-Dark +theme-name = Vertex-Maia-Dark +cursor-theme-name = Breeze +panel-position = top +show-clock = true +clock-format = diff --git a/manjaro/i3/live-overlay/etc/default b/manjaro/i3/live-overlay/etc/default new file mode 120000 index 0000000..812b9ff --- /dev/null +++ b/manjaro/i3/live-overlay/etc/default @@ -0,0 +1 @@ +../../../../shared/manjaro/live-overlay/etc/default \ No newline at end of file diff --git a/manjaro/i3/live-overlay/etc/fstab b/manjaro/i3/live-overlay/etc/fstab new file mode 120000 index 0000000..8750aca --- /dev/null +++ b/manjaro/i3/live-overlay/etc/fstab @@ -0,0 +1 @@ +../../../../shared/manjaro/live-overlay/etc/fstab \ No newline at end of file diff --git a/manjaro/i3/live-overlay/etc/issue b/manjaro/i3/live-overlay/etc/issue new file mode 120000 index 0000000..c519805 --- /dev/null +++ b/manjaro/i3/live-overlay/etc/issue @@ -0,0 +1 @@ +../../../../shared/manjaro/live-overlay/etc/issue \ No newline at end of file diff --git a/manjaro/i3/live-overlay/etc/pam.d b/manjaro/i3/live-overlay/etc/pam.d new file mode 120000 index 0000000..68de596 --- /dev/null +++ b/manjaro/i3/live-overlay/etc/pam.d @@ -0,0 +1 @@ +../../../../shared/manjaro/live-overlay/etc/pam.d \ No newline at end of file diff --git a/manjaro/i3/live-overlay/etc/skel/.i3/config b/manjaro/i3/live-overlay/etc/skel/.i3/config new file mode 100644 index 0000000..ce83624 --- /dev/null +++ b/manjaro/i3/live-overlay/etc/skel/.i3/config @@ -0,0 +1,387 @@ +# i3 config file (v4) +# Please see http://i3wm.org/docs/userguide.html for a complete reference! + +# Set mod key (Mod1=, Mod4=) +set $mod Mod4 + +# set default desktop layout (default is tiling) +# workspace_layout tabbed + +# Configure border style +new_window pixel 1 +new_float normal + +# Hide borders +hide_edge_borders none + +# change borders +bindsym $mod+u border none +bindsym $mod+y border pixel 1 +bindsym $mod+n border normal + +# Font for window titles. Will also be used by the bar unless a different font +# is used in the bar {} block below. +font xft:Noto Mono 10 + +# Use Mouse+$mod to drag floating windows +floating_modifier $mod + +# start a terminal +bindsym $mod+Return exec terminal + +# kill focused window +bindsym $mod+Shift+q kill + +# start program launcher +bindsym $mod+d exec --no-startup-id dmenu_recency + +# launch categorized menu +bindsym $mod+z exec --no-startup-id morc_menu + +################################################################################################ +## sound-section - DO NOT EDIT if you wish to automatically upgrade Alsa -> Pulseaudio later! ## +################################################################################################ + +exec --no-startup-id volumeicon +bindsym $mod+Ctrl+m exec terminal -e 'alsamixer' +#exec --no-startup-id pulseaudio +#exec --no-startup-id pa-applet +#bindsym $mod+Ctrl+m exec pavucontrol + +################################################################################################ + +# Screen brightness controls +# bindsym XF86MonBrightnessUp exec "xbacklight -inc 10; notify-send 'brightness up'" +# bindsym XF86MonBrightnessDown exec "xbacklight -dec 10; notify-send 'brightness down'" + +# Start Applications +bindsym $mod+Ctrl+b exec terminal -e 'bmenu' +bindsym $mod+i exec exec sudo -E calamares +bindsym $mod+F2 exec palemoon +bindsym $mod+F3 exec pcmanfm +# bindsym $mod+F3 exec ranger +bindsym $mod+Shift+F3 exec gksu pcmanfm +bindsym $mod+F5 exec terminal -e 'mocp' +bindsym $mod+t exec --no-startup-id pkill compton +bindsym $mod+Ctrl+t exec --no-startup-id compton -b +bindsym $mod+Shift+d --release exec "killall dunst; exec notify-send 'restart dunst'" +bindsym Print exec --no-startup-id i3-scrot +bindsym $mod+Print --release exec --no-startup-id i3-scrot -w +bindsym $mod+Shift+Print --release exec --no-startup-id i3-scrot -s +bindsym $mod+Shift+h exec xdg-open /usr/share/doc/manjaro/i3_help_live.pdf +bindsym $mod+Ctrl+x --release exec --no-startup-id xkill + +# focus_follows_mouse no + +# change focus +bindsym $mod+j focus left +bindsym $mod+k focus down +bindsym $mod+l focus up +bindsym $mod+odiaeresis focus right + +# alternatively, you can use the cursor keys: +bindsym $mod+Left focus left +bindsym $mod+Down focus down +bindsym $mod+Up focus up +bindsym $mod+Right focus right + +# move focused window +bindsym $mod+Shift+j move left +bindsym $mod+Shift+k move down +bindsym $mod+Shift+l move up +bindsym $mod+Shift+odiaeresis move right + +# alternatively, you can use the cursor keys: +bindsym $mod+Shift+Left move left +bindsym $mod+Shift+Down move down +bindsym $mod+Shift+Up move up +bindsym $mod+Shift+Right move right + +# workspace back and forth (with/without active container) +workspace_auto_back_and_forth yes +bindsym $mod+b workspace back_and_forth +bindsym $mod+Shift+b move container to workspace back_and_forth; workspace back_and_forth + +# split orientation +bindsym $mod+h split h;exec notify-send 'tile horizontally' +bindsym $mod+v split v;exec notify-send 'tile vertically' +bindsym $mod+q split toggle + +# toggle fullscreen mode for the focused container +bindsym $mod+f fullscreen toggle + +# change container layout (stacked, tabbed, toggle split) +bindsym $mod+s layout stacking +bindsym $mod+w layout tabbed +bindsym $mod+e layout toggle split + +# toggle tiling / floating +bindsym $mod+Shift+space floating toggle + +# change focus between tiling / floating windows +bindsym $mod+space focus mode_toggle + +# toggle sticky +bindsym $mod+Shift+s sticky toggle + +# focus the parent container +bindsym $mod+a focus parent + +# move the currently focused window to the scratchpad +bindsym $mod+Shift+minus move scratchpad + +# Show the next scratchpad window or hide the focused scratchpad window. +# If there are multiple scratchpad windows, this command cycles through them. +bindsym $mod+minus scratchpad show + +#navigate workspaces next / previous +bindsym $mod+Ctrl+Right workspace next +bindsym $mod+Ctrl+Left workspace prev + +# Workspace names +# to display names or symbols instead of plain workspace numbers you can use +# something like: set $ws1 1:mail +# set $ws2 2: + +set $ws1 1 +set $ws2 2 +set $ws3 3 +set $ws4 4 +set $ws5 5 +set $ws6 6 +set $ws7 7 +set $ws8 8 + +# switch to workspace +bindsym $mod+1 workspace $ws1 +bindsym $mod+2 workspace $ws2 +bindsym $mod+3 workspace $ws3 +bindsym $mod+4 workspace $ws4 +bindsym $mod+5 workspace $ws5 +bindsym $mod+6 workspace $ws6 +bindsym $mod+7 workspace $ws7 +bindsym $mod+8 workspace $ws8 + +# Move focused container to workspace +bindsym $mod+Ctrl+1 move container to workspace $ws1 +bindsym $mod+Ctrl+2 move container to workspace $ws2 +bindsym $mod+Ctrl+3 move container to workspace $ws3 +bindsym $mod+Ctrl+4 move container to workspace $ws4 +bindsym $mod+Ctrl+5 move container to workspace $ws5 +bindsym $mod+Ctrl+6 move container to workspace $ws6 +bindsym $mod+Ctrl+7 move container to workspace $ws7 +bindsym $mod+Ctrl+8 move container to workspace $ws8 + +# Move to workspace with focused container +bindsym $mod+Shift+1 move container to workspace $ws1; workspace $ws1 +bindsym $mod+Shift+2 move container to workspace $ws2; workspace $ws2 +bindsym $mod+Shift+3 move container to workspace $ws3; workspace $ws3 +bindsym $mod+Shift+4 move container to workspace $ws4; workspace $ws4 +bindsym $mod+Shift+5 move container to workspace $ws5; workspace $ws5 +bindsym $mod+Shift+6 move container to workspace $ws6; workspace $ws6 +bindsym $mod+Shift+7 move container to workspace $ws7; workspace $ws7 +bindsym $mod+Shift+8 move container to workspace $ws8; workspace $ws8 + +# Open applications on specific workspaces +# assign [class="Thunderbird"] $ws1 +# assign [class="Pale moon"] $ws2 +# assign [class="Pcmanfm"] $ws3 +# assign [class="Skype"] $ws5 + +# Open specific applications in floating mode +for_window [title="alsamixer"] floating enable border pixel 1 +for_window [class="Calamares"] floating enable border normal +for_window [class="Clipgrab"] floating enable +for_window [title="File Transfer*"] floating enable +for_window [class="Galculator"] floating enable border pixel 1 +for_window [class="GParted"] floating enable border normal +for_window [title="i3_help"] floating enable sticky enable border normal +for_window [class="Lightdm-gtk-greeter-settings"] floating enable +for_window [class="Lxappearance"] floating enable border normal +for_window [class="Manjaro Settings Manager"] floating enable border normal +for_window [class="Manjaro Welcome"] floating enable +for_window [title="MuseScore: Play Panel"] floating enable +for_window [class="Nitrogen"] floating enable sticky enable border normal +for_window [class="Oblogout"] fullscreen enable +for_window [class="octopi"] floating enable +for_window [class="Pamac-manager"] floating enable +for_window [class="Pamac-updater"] floating enable +for_window [class="Pavucontrol"] floating enable +for_window [class="Qtconfig-qt4"] floating enable border normal +for_window [class="qt5ct"] floating enable sticky enable border normal +for_window [title="sudo"] floating enable border normal +for_window [class="Simple-scan"] floating enable border normal +for_window [class="(?i)System-config-printer.py"] floating enable border normal +for_window [class="Skype"] floating enable border normal +for_window [class="Thus"] floating enable border normal +for_window [class="Timeset-gui"] floating enable border normal +for_window [class="(?i)virtualbox"] floating enable border normal +for_window [class="Xfburn"] floating enable + +# switch to workspace with urgent window automatically +for_window [urgent=latest] focus + +# reload the configuration file +bindsym $mod+Shift+c reload + +# restart i3 inplace (preserves your layout/session, can be used to upgrade i3) +bindsym $mod+Shift+r restart + +# exit i3 (logs you out of your X session) +bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -b 'Yes, exit i3' 'i3-msg exit'" + +# Set shut down, restart and locking features +bindsym $mod+0 mode "$mode_system" +set $mode_system (l)ock, (e)xit, switch_(u)ser, (s)uspend, (h)ibernate, (r)eboot, (Shift+s)hutdown +mode "$mode_system" { + bindsym l exec --no-startup-id i3exit lock, mode "default" + bindsym s exec --no-startup-id i3exit suspend, mode "default" + bindsym u exec --no-startup-id i3exit switch_user, mode "default" + bindsym e exec --no-startup-id i3exit logout, mode "default" + bindsym h exec --no-startup-id i3exit hibernate, mode "default" + bindsym r exec --no-startup-id i3exit reboot, mode "default" + bindsym Shift+s exec --no-startup-id i3exit shutdown, mode "default" + + # exit system mode: "Enter" or "Escape" + bindsym Return mode "default" + bindsym Escape mode "default" +} + +# Resize window (you can also use the mouse for that) +bindsym $mod+r mode "resize" +mode "resize" { + # These bindings trigger as soon as you enter the resize mode + # Pressing left will shrink the window’s width. + # Pressing right will grow the window’s width. + # Pressing up will shrink the window’s height. + # Pressing down will grow the window’s height. + bindsym j resize shrink width 5 px or 5 ppt + bindsym k resize grow height 5 px or 5 ppt + bindsym l resize shrink height 5 px or 5 ppt + bindsym odiaeresis resize grow width 5 px or 5 ppt + + # same bindings, but for the arrow keys + bindsym Left resize shrink width 10 px or 10 ppt + bindsym Down resize grow height 10 px or 10 ppt + bindsym Up resize shrink height 10 px or 10 ppt + bindsym Right resize grow width 10 px or 10 ppt + + # exit resize mode: Enter or Escape + bindsym Return mode "default" + bindsym Escape mode "default" +} + +# Lock screen +bindsym $mod+9 exec --no-startup-id blurlock + +# Autostart applications +exec --no-startup-id nitrogen --restore; sleep 1; compton -b +exec --no-startup-id start_conky_live_maia +# exec --no-startup-id blueman +exec --no-startup-id clipit +exec --no-startup-id desktop-items +exec --no-startup-id manjaro-welcome +exec --no-startup-id nm-applet +exec --no-startup-id pamac-tray +exec --no-startup-id /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 +# exec_always --no-startup-id sbxkb +exec --no-startup-id xfce4-power-manager +exec_always --no-startup-id setcursor + +# Start i3bar to display a workspace bar (plus the system information i3status if available) +bar { + status_command i3status + position bottom + +## please set your primary output first. Example: 'xrandr --output eDP1 --primary' +# tray_output primary +# tray_output eDP1 + + bindsym button4 nop + bindsym button5 nop + font xft:Noto Sans 10.5 + strip_workspace_numbers yes + + colors { +# background $transparent + background #2B2C2B + statusline #F9FAF9 + separator #454947 + +# border backgr. text + focused_workspace #F9FAF9 #16A085 #2B2C2B + active_workspace #595B5B #353836 #FDF6E3 + inactive_workspace #595B5B #353836 #EEE8D5 + urgent_workspace #16A085 #FDF6E3 #E5201D + } +} + +# hide/unhide i3status bar +bindsym $mod+m bar mode toggle + +# Theme colors +# class border backgr. text indic. child_border +client.focused #808280 #808280 #80FFF9 #FDF6E3 +client.focused_inactive #434745 #434745 #16A085 #454948 +client.unfocused #434745 #434745 #16A085 #454948 +client.urgent #CB4B16 #FDF6E3 #16A085 #268BD2 +client.placeholder #000000 #0c0c0c #ffffff #000000 #0c0c0c + +client.background #2B2C2B + +############################# +### settings for i3-gaps: ### +############################# + +# Set inner/outer gaps +gaps inner 10 +gaps outer -4 + +# Additionally, you can issue commands with the following syntax. This is useful to bind keys to changing the gap size. +# gaps inner|outer current|all set|plus|minus +# gaps inner all set 10 +# gaps outer all plus 5 + +# Smart gaps (gaps used if only more than one container on the workspace) +smart_gaps on + +# Smart borders (draw borders around container only if it is not the only container on this workspace) +# on|no_gaps (on=always activate and no_gaps=only activate if the gap size to the edge of the screen is 0) +smart_borders on + +# Press $mod+Shift+g to enter the gap mode. Choose o or i for modifying outer/inner gaps. Press one of + / - (in-/decrement for current workspace) or 0 (remove gaps for current workspace). If you also press Shift with these keys, the change will be global for all workspaces. +set $mode_gaps Gaps: (o) outer, (i) inner +set $mode_gaps_outer Outer Gaps: +|-|0 (local), Shift + +|-|0 (global) +set $mode_gaps_inner Inner Gaps: +|-|0 (local), Shift + +|-|0 (global) +bindsym $mod+Shift+g mode "$mode_gaps" + +mode "$mode_gaps" { + bindsym o mode "$mode_gaps_outer" + bindsym i mode "$mode_gaps_inner" + bindsym Return mode "default" + bindsym Escape mode "default" +} +mode "$mode_gaps_inner" { + bindsym plus gaps inner current plus 5 + bindsym minus gaps inner current minus 5 + bindsym 0 gaps inner current set 0 + + bindsym Shift+plus gaps inner all plus 5 + bindsym Shift+minus gaps inner all minus 5 + bindsym Shift+0 gaps inner all set 0 + + bindsym Return mode "default" + bindsym Escape mode "default" +} +mode "$mode_gaps_outer" { + bindsym plus gaps outer current plus 5 + bindsym minus gaps outer current minus 5 + bindsym 0 gaps outer current set 0 + + bindsym Shift+plus gaps outer all plus 5 + bindsym Shift+minus gaps outer all minus 5 + bindsym Shift+0 gaps outer all set 0 + + bindsym Return mode "default" + bindsym Escape mode "default" +} diff --git a/manjaro/i3/live-overlay/etc/sudoers.d b/manjaro/i3/live-overlay/etc/sudoers.d new file mode 120000 index 0000000..06f1eb3 --- /dev/null +++ b/manjaro/i3/live-overlay/etc/sudoers.d @@ -0,0 +1 @@ +../../../../shared/manjaro/live-overlay/etc/sudoers.d/ \ No newline at end of file diff --git a/manjaro/i3/mkinitcpio.conf b/manjaro/i3/mkinitcpio.conf new file mode 120000 index 0000000..d624606 --- /dev/null +++ b/manjaro/i3/mkinitcpio.conf @@ -0,0 +1 @@ +../../shared/mkinitcpio.conf \ No newline at end of file diff --git a/manjaro/i3/profile.conf b/manjaro/i3/profile.conf new file mode 100644 index 0000000..1af8cd7 --- /dev/null +++ b/manjaro/i3/profile.conf @@ -0,0 +1,84 @@ +########################################## +###### use this file in the profile ###### +########################################## + +# use multilib packages; x86_64 only +# multilib="true" + +# use pxe +# pxe_boot="true" + +################ torrent ################ + +# the torrent tracker urls, comma separated +# tracker_url='udp://mirror.strits.dk:6969' + +# Piece size, 2^n +# piece_size=21 + +################ install ################ + +# default displaymanager: none +# supported; lightdm, sddm, gdm, lxdm, mdm +displaymanager="lightdm" + +# Set to false to disable autologin in the livecd +# autologin="true" + +# nonfree xorg drivers +# nonfree_mhwd="true" + +# use plymouth +plymouth_boot="false" + +# possible values: grub;systemd-boot +# efi_boot_loader="grub" + +# configure calamares for netinstall +# netinstall="false" + +# the default url for the netinstall.yaml +# netgroups="https://raw.githubusercontent.com/manjaro/manjaro-tools-iso-profiles/master/shared/netinstall" + +# configure calamares to use chrootcfg instead of unpackfs +# unpackfs="false" + +# use geoip +# geoip="true" + +# unset defaults to given value +# plymouth_theme=manjaro-elegant + +# unset defaults to given values +# names must match systemd service names +# enable_systemd=('bluetooth' 'cronie' 'ModemManager' 'NetworkManager' 'org.cups.cupsd' 'tlp' 'tlp-sleep') +# disable_systemd=() + +# unset defaults to given values, +# names must match openrc service names +# enable_openrc=('acpid' 'bluetooth' 'consolekit' 'cronie' 'cupsd' 'dbus' 'syslog-ng' 'NetworkManager') +# disable_openrc=() + +# unset defaults to given values +# addgroups="video,power,disk,storage,optical,network,lp,scanner,wheel" + +# the same workgroup name if samba is used +# smb_workgroup="" + +################# live-session ################# + +# unset defaults to given value +hostname="manjaro-i3" + +# unset defaults to given value +# password="manjaro" + +# unset defaults to given values +# names must match systemd service names +# services in enable_systemd array don't need to be listed here +# enable_systemd_live=('manjaro-live' 'mhwd-live' 'pacman-init' 'mirrors-live') + +# unset defaults to given values, +# names must match openrc service names +# services in enable_openrc array don't need to be listed here +# enable_openrc_live=('manjaro-live' 'mhwd-live' 'pacman-init' 'mirrors-live')