add cinnamon, deepin, i3

This commit is contained in:
Bernhard Landauer 2016-11-17 13:25:44 +01:00
parent 1132a347fc
commit d3c67eda59
34 changed files with 1830 additions and 0 deletions

View File

@ -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

View File

@ -0,0 +1 @@
../../shared/Packages-Live

View File

@ -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

View File

@ -0,0 +1 @@
../../shared/Packages-Root

View File

@ -0,0 +1 @@
/etc/fonts/conf.avail/70-no-bitmaps.conf

View File

@ -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

View File

@ -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('<span size="12000">%s</span>' % 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()

View File

@ -0,0 +1,2 @@
[Icon Theme]
Inherits=Breeze

View File

@ -0,0 +1 @@
../../shared/manjaro/live-overlay

View File

@ -0,0 +1 @@
../../shared/mkinitcpio.conf

View File

@ -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')

View File

@ -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

View File

@ -0,0 +1 @@
../../shared/Packages-Live

View File

@ -0,0 +1 @@
../../shared/Packages-Mhwd

View File

@ -0,0 +1 @@
../../shared/Packages-Root

View File

@ -0,0 +1 @@
/etc/fonts/conf.avail/70-no-bitmaps.conf

View File

@ -0,0 +1,2 @@
[Icon Theme]
Inherits=Breeze

1
manjaro/deepin/live-overlay Symbolic link
View File

@ -0,0 +1 @@
../../shared/manjaro/live-overlay

View File

@ -0,0 +1 @@
../../shared/mkinitcpio.conf

View File

@ -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')

135
manjaro/i3/Packages-Desktop Normal file
View File

@ -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

1
manjaro/i3/Packages-Live Symbolic link
View File

@ -0,0 +1 @@
../../shared/Packages-Live

71
manjaro/i3/Packages-Mhwd Normal file
View File

@ -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

1
manjaro/i3/Packages-Root Symbolic link
View File

@ -0,0 +1 @@
../../shared/Packages-Root

View File

@ -0,0 +1 @@
/etc/fonts/conf.avail/70-no-bitmaps.conf

View File

@ -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 =

View File

@ -0,0 +1 @@
../../../../shared/manjaro/live-overlay/etc/default

View File

@ -0,0 +1 @@
../../../../shared/manjaro/live-overlay/etc/fstab

View File

@ -0,0 +1 @@
../../../../shared/manjaro/live-overlay/etc/issue

View File

@ -0,0 +1 @@
../../../../shared/manjaro/live-overlay/etc/pam.d

View File

@ -0,0 +1,387 @@
# i3 config file (v4)
# Please see http://i3wm.org/docs/userguide.html for a complete reference!
# Set mod key (Mod1=<Alt>, Mod4=<Super>)
set $mod Mod4
# set default desktop layout (default is tiling)
# workspace_layout tabbed <stacking|tabbed>
# Configure border style <normal|1pixel|pixel xx|none|pixel>
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 windows width.
# Pressing right will grow the windows width.
# Pressing up will shrink the windows height.
# Pressing down will grow the windows 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 <px>
# 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"
}

View File

@ -0,0 +1 @@
../../../../shared/manjaro/live-overlay/etc/sudoers.d/

1
manjaro/i3/mkinitcpio.conf Symbolic link
View File

@ -0,0 +1 @@
../../shared/mkinitcpio.conf

84
manjaro/i3/profile.conf Normal file
View File

@ -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')