#
|
@ -0,0 +1,124 @@
|
|||
const Gettext = imports.gettext
|
||||
const GObject = imports.gi.GObject
|
||||
const Gio = imports.gi.Gio
|
||||
const Config = imports.misc.config
|
||||
const Unite = imports.misc.extensionUtils.getCurrentExtension()
|
||||
|
||||
var SettingsManager = GObject.registerClass(
|
||||
class UniteSettings extends Gio.Settings {
|
||||
get DEFAULT_BINDING() {
|
||||
return Gio.SettingsBindFlags.DEFAULT
|
||||
}
|
||||
|
||||
get _types() {
|
||||
return {
|
||||
'autofocus-windows': 'boolean',
|
||||
'hide-activities-button': 'enum',
|
||||
'show-window-title': 'enum',
|
||||
'show-desktop-name': 'boolean',
|
||||
'desktop-name-text': 'string',
|
||||
'extend-left-box': 'boolean',
|
||||
'notifications-position': 'enum',
|
||||
'use-system-fonts': 'boolean',
|
||||
'show-legacy-tray': 'boolean',
|
||||
'greyscale-tray-icons': 'boolean',
|
||||
'show-window-buttons': 'enum',
|
||||
'window-buttons-theme': 'enum',
|
||||
'hide-window-titlebars': 'enum',
|
||||
'window-buttons-placement': 'select',
|
||||
'hide-dropdown-arrows': 'boolean',
|
||||
'hide-aggregate-menu-arrow': 'boolean',
|
||||
'hide-app-menu-arrow': 'boolean',
|
||||
'hide-app-menu-icon': 'boolean',
|
||||
'reduce-panel-spacing': 'boolean',
|
||||
'restrict-to-primary-screen': 'boolean'
|
||||
}
|
||||
}
|
||||
|
||||
exists(key) {
|
||||
return Object.keys(this._types).includes(key)
|
||||
}
|
||||
|
||||
getSettingType(key) {
|
||||
return this._types[key] || 'invalid'
|
||||
}
|
||||
|
||||
getTypeSettings(type) {
|
||||
return Object.keys(this._types).filter(key => this._types[key] == type)
|
||||
}
|
||||
|
||||
getSetting(key) {
|
||||
if (!this.exists(key)) return
|
||||
|
||||
let boolean = this.getSettingType(key) == 'boolean'
|
||||
return boolean ? this.get_boolean(key) : this.get_string(key)
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
var PreferencesManager = GObject.registerClass(
|
||||
class UnitePreferences extends Gio.Settings {
|
||||
get window_buttons_position() {
|
||||
let setting = this.get_string('button-layout')
|
||||
return /(close|minimize|maximize).*:/.test(setting) ? 'left' : 'right'
|
||||
}
|
||||
|
||||
get window_buttons_layout() {
|
||||
let setting = this.get_string('button-layout')
|
||||
return setting.match(/(close|minimize|maximize)/g)
|
||||
}
|
||||
|
||||
exists(key) {
|
||||
let fun = key.replace(/-/g, '_')
|
||||
return (fun in this) || this.list_keys().includes(key)
|
||||
}
|
||||
|
||||
getSetting(key) {
|
||||
let fun = key.replace(/-/g, '_')
|
||||
|
||||
if (this.exists(fun)) return this[fun]
|
||||
if (this.exists(key)) return this.get_string(key)
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
function initTranslations(domain) {
|
||||
let textDomain = domain || Unite.metadata['gettext-domain']
|
||||
let localeDir = Unite.dir.get_child('locale')
|
||||
|
||||
if (localeDir.query_exists(null))
|
||||
localeDir = localeDir.get_path()
|
||||
else
|
||||
localeDir = Config.LOCALEDIR
|
||||
|
||||
Gettext.bindtextdomain(textDomain, localeDir)
|
||||
}
|
||||
|
||||
function getSettings(schema) {
|
||||
schema = schema || Unite.metadata['settings-schema']
|
||||
|
||||
let gioSSS = Gio.SettingsSchemaSource
|
||||
let schemaDir = Unite.dir.get_child('schemas')
|
||||
let schemaSource = gioSSS.get_default()
|
||||
|
||||
if (schemaDir.query_exists(null)) {
|
||||
schemaDir = schemaDir.get_path()
|
||||
schemaSource = gioSSS.new_from_directory(schemaDir, schemaSource, false)
|
||||
}
|
||||
|
||||
let schemaObj = schemaSource.lookup(schema, true)
|
||||
|
||||
if (!schemaObj) {
|
||||
let metaId = Unite.metadata.uuid
|
||||
let message = `Schema ${schema} could not be found for extension ${metaId}.`
|
||||
|
||||
throw new Error(`${message} Please check your installation.`)
|
||||
}
|
||||
|
||||
return new SettingsManager({ settings_schema: schemaObj })
|
||||
}
|
||||
|
||||
function getPreferences() {
|
||||
let schemaId = 'org.gnome.desktop.wm.preferences'
|
||||
return new PreferencesManager({ schema_id: schemaId })
|
||||
}
|
|
@ -0,0 +1,55 @@
|
|||
const Main = imports.ui.main
|
||||
const Unite = imports.misc.extensionUtils.getCurrentExtension()
|
||||
const ActivateWindow = Unite.imports.modules.activateWindow.ActivateWindow
|
||||
const ExtendLeftBox = Unite.imports.modules.extendLeftBox.ExtendLeftBox
|
||||
const DesktopName = Unite.imports.modules.desktopName.DesktopName
|
||||
const MessageTray = Unite.imports.modules.messageTray.MessageTray
|
||||
const ActivitiesButton = Unite.imports.modules.activitiesButton.ActivitiesButton
|
||||
const ApplicationMenu = Unite.imports.modules.applicationMenu.ApplicationMenu
|
||||
const WindowButtons = Unite.imports.modules.windowButtons.WindowButtons
|
||||
const WindowDecoration = Unite.imports.modules.windowDecoration.WindowDecoration
|
||||
const TopIcons = Unite.imports.modules.topIcons.TopIcons
|
||||
const ThemeMods = Unite.imports.modules.themeMods.ThemeMods
|
||||
|
||||
class UniteExtension {
|
||||
constructor() {
|
||||
this._activateWindow = new ActivateWindow()
|
||||
this._extendLeftBox = new ExtendLeftBox()
|
||||
this._desktopName = new DesktopName()
|
||||
this._messageTray = new MessageTray()
|
||||
this._activitiesButton = new ActivitiesButton()
|
||||
this._applicationMenu = new ApplicationMenu()
|
||||
this._windowButtons = new WindowButtons()
|
||||
this._windowDecoration = new WindowDecoration()
|
||||
this._topIcons = new TopIcons()
|
||||
this._themeMods = new ThemeMods()
|
||||
|
||||
Main.panel._addStyleClassName('unite-shell')
|
||||
}
|
||||
|
||||
destroy() {
|
||||
this._activateWindow.destroy()
|
||||
this._extendLeftBox.destroy()
|
||||
this._desktopName.destroy()
|
||||
this._messageTray.destroy()
|
||||
this._activitiesButton.destroy()
|
||||
this._applicationMenu.destroy()
|
||||
this._windowButtons.destroy()
|
||||
this._windowDecoration.destroy()
|
||||
this._topIcons.destroy()
|
||||
this._themeMods.destroy()
|
||||
|
||||
Main.panel._removeStyleClassName('unite-shell')
|
||||
}
|
||||
}
|
||||
|
||||
let uniteExtension
|
||||
|
||||
function enable() {
|
||||
uniteExtension = new UniteExtension()
|
||||
}
|
||||
|
||||
function disable() {
|
||||
uniteExtension.destroy()
|
||||
uniteExtension = null
|
||||
}
|
|
@ -0,0 +1,100 @@
|
|||
const Unite = imports.misc.extensionUtils.getCurrentExtension()
|
||||
const Convenience = Unite.imports.convenience
|
||||
|
||||
var SignalsHandler = class SignalsHandler {
|
||||
constructor(context) {
|
||||
this._init(context)
|
||||
}
|
||||
|
||||
_init(context) {
|
||||
this._signals = {}
|
||||
this._context = context
|
||||
}
|
||||
|
||||
_getCallbackFunction(callback) {
|
||||
if (typeof callback == 'string')
|
||||
callback = this._context[callback] || this._context[`_${callback}`]
|
||||
|
||||
return callback
|
||||
}
|
||||
|
||||
_connectHandler(object, name, callbackObj) {
|
||||
let callback = this._getCallbackFunction(callbackObj)
|
||||
let signalId = object.connect(name, callback.bind(this._context))
|
||||
|
||||
return { object: object, signalId: signalId }
|
||||
}
|
||||
|
||||
_addHandler(object, name, callback) {
|
||||
let signalKey = `${object}[${name}#${callback}]`
|
||||
|
||||
if (!this._signals[signalKey])
|
||||
this._signals[signalKey] = this._connectHandler(object, name, callback)
|
||||
|
||||
return signalKey
|
||||
}
|
||||
|
||||
connect(object, name, callback) {
|
||||
return this._addHandler(object, name, callback)
|
||||
}
|
||||
|
||||
disconnect(signalKey) {
|
||||
let signalData = this._signals[signalKey]
|
||||
if (!signalData) return
|
||||
|
||||
signalData.object.disconnect(signalData.signalId)
|
||||
delete this._signals[signalKey]
|
||||
}
|
||||
|
||||
disconnectMany(signalKeys) {
|
||||
signalKeys.forEach(signalKey => { this.disconnect(signalKey) })
|
||||
}
|
||||
|
||||
disconnectAll() {
|
||||
this.disconnectMany(Object.keys(this._signals))
|
||||
}
|
||||
}
|
||||
|
||||
var SettingsHandler = class SettingsHandler extends SignalsHandler {
|
||||
_init(context) {
|
||||
this._enabler = null
|
||||
this._signals = {}
|
||||
this._context = context
|
||||
this._settings = Convenience.getSettings()
|
||||
this._wmPrefs = Convenience.getPreferences()
|
||||
}
|
||||
|
||||
_getSettingObject(settingKey) {
|
||||
if (this._settings.exists(settingKey))
|
||||
return this._settings
|
||||
|
||||
if (this._wmPrefs.exists(settingKey))
|
||||
return this._wmPrefs
|
||||
}
|
||||
|
||||
connect(name, callback) {
|
||||
let object = this._getSettingObject(name)
|
||||
return this._addHandler(object, `changed::${name}`, callback)
|
||||
}
|
||||
|
||||
enable(name, callback) {
|
||||
if (this._enabler) return
|
||||
|
||||
let signalObj = this._settings
|
||||
this._enabler = this._connectHandler(signalObj, `changed::${name}`, callback)
|
||||
}
|
||||
|
||||
disable() {
|
||||
if (!this._enabler) return
|
||||
|
||||
this._settings.disconnect(this._enabler.signalId)
|
||||
this._enabler = null
|
||||
}
|
||||
|
||||
get(settingKey) {
|
||||
if (settingKey == null) return
|
||||
|
||||
let object = this._getSettingObject(settingKey)
|
||||
if (object) return object.getSetting(settingKey)
|
||||
}
|
||||
}
|
|
@ -0,0 +1,101 @@
|
|||
const Gio = imports.gi.Gio
|
||||
const GLib = imports.gi.GLib
|
||||
const St = imports.gi.St
|
||||
const Meta = imports.gi.Meta
|
||||
const Config = imports.misc.config
|
||||
const Unite = imports.misc.extensionUtils.getCurrentExtension()
|
||||
const Settings = Unite.imports.convenience.getSettings()
|
||||
|
||||
const USER_CONFIG = GLib.get_user_config_dir()
|
||||
const USER_STYLES = `${USER_CONFIG}/gtk-3.0/gtk.css`
|
||||
|
||||
var minorVersion = parseInt(Config.PACKAGE_VERSION.split('.')[1])
|
||||
|
||||
function fileExists(path) {
|
||||
return GLib.file_test(path, GLib.FileTest.EXISTS)
|
||||
}
|
||||
|
||||
function getUserStyles() {
|
||||
if (!fileExists(USER_STYLES)) return ''
|
||||
|
||||
let file = GLib.file_get_contents(USER_STYLES)
|
||||
let style = String.fromCharCode.apply(null, file[1])
|
||||
|
||||
return style.replace(/@import.*unite@hardpixel\.eu.*css['"]\);\n/g, '')
|
||||
}
|
||||
|
||||
function loadUserStyles(styles) {
|
||||
let existing = getUserStyles()
|
||||
GLib.file_set_contents(USER_STYLES, styles + existing)
|
||||
}
|
||||
|
||||
function getThemeContext() {
|
||||
return St.ThemeContext.get_for_stage(global.stage)
|
||||
}
|
||||
|
||||
function getTheme() {
|
||||
let context = getThemeContext()
|
||||
return context.get_theme()
|
||||
}
|
||||
|
||||
function getGioFile(filePath) {
|
||||
let absPath = GLib.build_filenamev([Unite.path, filePath])
|
||||
|
||||
if (fileExists(absPath))
|
||||
return Gio.file_new_for_path(absPath)
|
||||
}
|
||||
|
||||
function loadStyles(filePath) {
|
||||
let gioFile = getGioFile(filePath)
|
||||
if (!gioFile) return
|
||||
|
||||
let theme = getTheme()
|
||||
theme.load_stylesheet(gioFile)
|
||||
|
||||
return gioFile
|
||||
}
|
||||
|
||||
function unloadStyles(gioFile) {
|
||||
let theme = getTheme()
|
||||
theme.unload_stylesheet(gioFile)
|
||||
|
||||
return null
|
||||
}
|
||||
|
||||
function scaleSize(initialSize) {
|
||||
let context = getThemeContext()
|
||||
return initialSize * context.scale_factor
|
||||
}
|
||||
|
||||
function getWindowXID(win) {
|
||||
let desc = win.get_description() || ''
|
||||
let match = desc.match(/0x[0-9a-f]+/) || [null]
|
||||
|
||||
return match[0]
|
||||
}
|
||||
|
||||
function isWindow(win) {
|
||||
if (!win) return
|
||||
|
||||
let meta = Meta.WindowType
|
||||
let types = [meta.NORMAL, meta.DIALOG, meta.MODAL_DIALOG, meta.UTILITY]
|
||||
|
||||
return types.includes(win.window_type)
|
||||
}
|
||||
|
||||
function isMaximized(win, matchState) {
|
||||
if (!win) return
|
||||
|
||||
let flags = Meta.MaximizeFlags
|
||||
let maximized = win.get_maximized()
|
||||
let primaryScreen = win.is_on_primary_monitor() || !(Settings.getSetting('restrict-to-primary-screen'))
|
||||
let tileMaximized = maximized == flags.HORIZONTAL || maximized == flags.VERTICAL
|
||||
let fullMaximized = maximized == flags.BOTH
|
||||
let bothMaximized = fullMaximized || tileMaximized
|
||||
|
||||
switch (matchState) {
|
||||
case 'both': return primaryScreen && bothMaximized
|
||||
case 'maximized': return primaryScreen && fullMaximized
|
||||
case 'tiled': return primaryScreen && tileMaximized
|
||||
}
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
"_generated": "Generated by SweetTooth, do not edit",
|
||||
"description": "Unite is a GNOME Shell extension which makes a few layout tweaks to the top panel and removes window decorations to make it look like Ubuntu Unity Shell.\n\n- Adds window buttons to the top panel for maximized windows.\n- Shows current window title in the app menu for maximized windows.\n- Removes titlebars on maximized windows.\n- Hides window controls on maximized windows with headerbars.\n- Moves the date to the right, reduces panel spacing and removes dropdown arrows.\n- Moves legacy tray icons to the top panel.\n- Moves notifications to the right.\n- Hides activities button.\n- Adds desktop name to the top panel.\n\nThis extension depends on some Xorg utilities. To install them:\n- Debian/Ubuntu: apt install x11-utils\n- Fedora/RHEL: dnf install xorg-x11-utils\n- Arch: pacman -S xorg-xprop\n\n*Settings are provided to enable/disable or customize the available tweaks.\n* Since version 2 applications on wayland with client side decorations are supported using CSS.",
|
||||
"gettext-domain": "unite",
|
||||
"name": "Unite",
|
||||
"settings-schema": "org.gnome.shell.extensions.unite",
|
||||
"shell-version": [
|
||||
"3.34",
|
||||
"3.32"
|
||||
],
|
||||
"url": "https://github.com/hardpixel/unite-shell",
|
||||
"uuid": "unite@hardpixel.eu",
|
||||
"version": 33
|
||||
}
|
|
@ -0,0 +1,82 @@
|
|||
const Unite = imports.misc.extensionUtils.getCurrentExtension()
|
||||
const Signals = Unite.imports.handlers.SignalsHandler
|
||||
const Settings = Unite.imports.handlers.SettingsHandler
|
||||
|
||||
var BaseModule = class UniteBaseModule {
|
||||
constructor() {
|
||||
this._setup()
|
||||
this._init()
|
||||
}
|
||||
|
||||
_setup() {
|
||||
this._enableKey = null
|
||||
this._enableValue = null
|
||||
this._disableValue = null
|
||||
|
||||
this._runCallback('_onSetup')
|
||||
}
|
||||
|
||||
_init() {
|
||||
this._signals = new Signals(this)
|
||||
this._settings = new Settings(this)
|
||||
this._setting = this._settings.get(this._enableKey)
|
||||
|
||||
this._runCallback('_onInitialize')
|
||||
this._activate()
|
||||
|
||||
this._settings.enable(this._enableKey, 'reload')
|
||||
}
|
||||
|
||||
get _enabled() {
|
||||
if (this._enableKey == null)
|
||||
return true
|
||||
|
||||
if (this._enableValue != null)
|
||||
return this._setting == this._enableValue
|
||||
|
||||
if (this._disableValue != null)
|
||||
return this._setting != this._disableValue
|
||||
}
|
||||
|
||||
_hasCallback(name) {
|
||||
return typeof(this[name]) === 'function'
|
||||
}
|
||||
|
||||
_runCallback(name) {
|
||||
if (this._hasCallback(name))
|
||||
this[name]()
|
||||
}
|
||||
|
||||
_activate() {
|
||||
if (this._enabled)
|
||||
this._runCallback('_onActivate')
|
||||
}
|
||||
|
||||
_deactivate() {
|
||||
this._runCallback('_onDeactivate')
|
||||
|
||||
this._settings.disconnectAll()
|
||||
this._signals.disconnectAll()
|
||||
}
|
||||
|
||||
_reload() {
|
||||
let prevState = this._enabled
|
||||
this._setting = this._settings.get(this._enableKey)
|
||||
|
||||
if (prevState == this._enabled) {
|
||||
this._runCallback('_onReset')
|
||||
} else {
|
||||
this._deactivate()
|
||||
this._activate()
|
||||
|
||||
this._runCallback('_onReload')
|
||||
}
|
||||
}
|
||||
|
||||
destroy() {
|
||||
this._deactivate()
|
||||
this._runCallback('_onDestroy')
|
||||
|
||||
this._settings.disable()
|
||||
}
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
const Main = imports.ui.main
|
||||
const Unite = imports.misc.extensionUtils.getCurrentExtension()
|
||||
const Base = Unite.imports.module.BaseModule
|
||||
|
||||
var ActivateWindow = class ActivateWindow extends Base {
|
||||
_onSetup() {
|
||||
this._enableKey = 'autofocus-windows'
|
||||
this._enableValue = true
|
||||
}
|
||||
|
||||
_onActivate() {
|
||||
this._signals.connect(global.display, 'window-demands-attention', 'focusWindow')
|
||||
}
|
||||
|
||||
_focusWindow(actor, win) {
|
||||
Main.activateWindow(win, global.get_current_time())
|
||||
}
|
||||
}
|
|
@ -0,0 +1,46 @@
|
|||
const Shell = imports.gi.Shell
|
||||
const Main = imports.ui.main
|
||||
const Unite = imports.misc.extensionUtils.getCurrentExtension()
|
||||
const Base = Unite.imports.module.BaseModule
|
||||
|
||||
var ActivitiesButton = class ActivitiesButton extends Base {
|
||||
_onSetup() {
|
||||
this._enableKey = 'hide-activities-button'
|
||||
this._disableValue = 'never'
|
||||
}
|
||||
|
||||
_onInitialize() {
|
||||
this._container = Main.panel.statusArea.activities.container
|
||||
this.appSystem = Shell.AppSystem.get_default()
|
||||
this.winTracker = Shell.WindowTracker.get_default()
|
||||
}
|
||||
|
||||
_onActivate() {
|
||||
this._signals.connect(this.appSystem, 'app-state-changed', 'toggleButton')
|
||||
this._signals.connect(this.winTracker, 'notify::focus-app', 'toggleButton')
|
||||
|
||||
this._signals.connect(Main.overview, 'showing', 'toggleButton')
|
||||
this._signals.connect(Main.overview, 'hiding', 'toggleButton')
|
||||
|
||||
this._toggleButton()
|
||||
}
|
||||
|
||||
_onReset() {
|
||||
this._toggleButton()
|
||||
}
|
||||
|
||||
_onDeactivate() {
|
||||
this._container.show()
|
||||
}
|
||||
|
||||
_toggleButton() {
|
||||
let appMenu = Main.panel.statusArea.appMenu._targetApp != null
|
||||
let overview = Main.overview.visibleTarget
|
||||
let hidden = this._setting == 'always' || (appMenu && !overview)
|
||||
|
||||
if (!hidden && this._settings.get('show-desktop-name'))
|
||||
hidden = !appMenu && !overview
|
||||
|
||||
this._container.visible = !hidden
|
||||
}
|
||||
}
|
|
@ -0,0 +1,73 @@
|
|||
const Shell = imports.gi.Shell
|
||||
const Meta = imports.gi.Meta
|
||||
const Main = imports.ui.main
|
||||
const Unite = imports.misc.extensionUtils.getCurrentExtension()
|
||||
const Base = Unite.imports.module.BaseModule
|
||||
const isWindow = Unite.imports.helpers.isWindow
|
||||
const isMaximized = Unite.imports.helpers.isMaximized
|
||||
|
||||
var ApplicationMenu = class ApplicationMenu extends Base {
|
||||
_onSetup() {
|
||||
this._enableKey = 'show-window-title'
|
||||
this._disableValue = 'never'
|
||||
}
|
||||
|
||||
_onInitialize() {
|
||||
this.appMenu = Main.panel.statusArea.appMenu
|
||||
this.winTracker = Shell.WindowTracker.get_default()
|
||||
this.monitorManager = Meta.MonitorManager.get()
|
||||
this._isUpdating = false
|
||||
}
|
||||
|
||||
_onActivate() {
|
||||
this._signals.connect(global.display, 'notify::focus-window', 'updateTitle')
|
||||
this._signals.connect(this.monitorManager, 'monitors-changed', 'updateTitle')
|
||||
|
||||
this._signals.connect(global.window_manager, 'size-change', 'updateTitleText')
|
||||
this._signals.connect(this.appMenu._label, 'notify::text', 'updateTitleText')
|
||||
|
||||
this._updateTitle()
|
||||
}
|
||||
|
||||
_onReset() {
|
||||
this._updateTitle()
|
||||
}
|
||||
|
||||
_handleWindowTitle(win) {
|
||||
if (!isWindow(win) || win._updateTitleID) return
|
||||
|
||||
win._updateTitleID = win.connect(
|
||||
'notify::title', () => { this._updateTitleText() }
|
||||
)
|
||||
}
|
||||
|
||||
_updateTitle() {
|
||||
let focusWindow = global.display.focus_window
|
||||
|
||||
this._handleWindowTitle(focusWindow)
|
||||
this._updateTitleText()
|
||||
}
|
||||
|
||||
_updateTitleText() {
|
||||
if (this._isUpdating) return
|
||||
|
||||
let focusApp = this.winTracker.focus_app
|
||||
let focusWindow = global.display.focus_window
|
||||
let current = this.appMenu._label.get_text()
|
||||
let maximized = isMaximized(focusWindow, this._setting)
|
||||
let always = this._setting == 'always' && focusWindow
|
||||
let title = null
|
||||
|
||||
if (always || maximized)
|
||||
title = focusWindow.title
|
||||
|
||||
if (!title && focusApp)
|
||||
title = focusApp.get_name()
|
||||
|
||||
if (title && title != current) {
|
||||
this._isUpdating = true
|
||||
this.appMenu._label.set_text(title)
|
||||
this._isUpdating = false
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,73 @@
|
|||
const Shell = imports.gi.Shell
|
||||
const Main = imports.ui.main
|
||||
const Unite = imports.misc.extensionUtils.getCurrentExtension()
|
||||
const Base = Unite.imports.module.BaseModule
|
||||
const DesktopLabel = Unite.imports.panel.DesktopLabel
|
||||
|
||||
var DesktopName = class DesktopName extends Base {
|
||||
_onSetup() {
|
||||
this._enableKey = 'show-desktop-name'
|
||||
this._enableValue = true
|
||||
}
|
||||
|
||||
_onInitialize() {
|
||||
this.appSystem = Shell.AppSystem.get_default()
|
||||
this.winTracker = Shell.WindowTracker.get_default()
|
||||
}
|
||||
|
||||
_onActivate() {
|
||||
this._signals.connect(this.appSystem, 'app-state-changed', 'toggleLabel')
|
||||
this._signals.connect(this.winTracker, 'notify::focus-app', 'toggleLabel')
|
||||
|
||||
this._signals.connect(Main.overview, 'showing', 'toggleLabel')
|
||||
this._signals.connect(Main.overview, 'hiding', 'toggleLabel')
|
||||
|
||||
this._settings.connect('desktop-name-text', 'setLabelText')
|
||||
|
||||
this._createLabel()
|
||||
}
|
||||
|
||||
_onDeactivate() {
|
||||
if (!this._label) return
|
||||
|
||||
this._label.destroy()
|
||||
this._label = null
|
||||
}
|
||||
|
||||
_visibleWindows() {
|
||||
let windows = global.get_window_actors().find(win => {
|
||||
let visible = win.metaWindow.showing_on_its_workspace()
|
||||
let skipped = win.metaWindow.skip_taskbar
|
||||
|
||||
return visible && !skipped
|
||||
})
|
||||
|
||||
return windows
|
||||
}
|
||||
|
||||
_setLabelText() {
|
||||
let text = this._settings.get('desktop-name-text')
|
||||
this._label.setText(text)
|
||||
}
|
||||
|
||||
_toggleLabel() {
|
||||
let appMenu = Main.panel.statusArea.appMenu._targetApp != null
|
||||
let overview = Main.overview.visibleTarget
|
||||
let visible = !appMenu && !overview
|
||||
|
||||
if (visible)
|
||||
visible = visible && !this._visibleWindows()
|
||||
|
||||
this._label.setVisible(visible)
|
||||
}
|
||||
|
||||
_createLabel() {
|
||||
if (this._label) return
|
||||
|
||||
this._label = new DesktopLabel()
|
||||
Main.panel.addToStatusArea('uniteDesktopLabel', this._label, 1, 'left')
|
||||
|
||||
this._setLabelText()
|
||||
this._toggleLabel()
|
||||
}
|
||||
}
|
|
@ -0,0 +1,87 @@
|
|||
const Gi = imports._gi
|
||||
const Clutter = imports.gi.Clutter
|
||||
const Main = imports.ui.main
|
||||
const Unite = imports.misc.extensionUtils.getCurrentExtension()
|
||||
const Base = Unite.imports.module.BaseModule
|
||||
|
||||
var ExtendLeftBox = class ExtendLeftBox extends Base {
|
||||
_onSetup() {
|
||||
this._enableKey = 'extend-left-box'
|
||||
this._enableValue = true
|
||||
}
|
||||
|
||||
_onActivate() {
|
||||
this._oldAllocate = Main.panel.__proto__.vfunc_allocate
|
||||
|
||||
Main.panel.__proto__[Gi.hook_up_vfunc_symbol]('allocate', (box, flags) => {
|
||||
Main.panel.vfunc_allocate.call(Main.panel, box, flags)
|
||||
this._extendBox(Main.panel, box, flags)
|
||||
})
|
||||
}
|
||||
|
||||
_onDeactivate() {
|
||||
if (this._oldAllocate) {
|
||||
Main.panel.__proto__[Gi.hook_up_vfunc_symbol]('allocate', this._oldAllocate)
|
||||
this._oldAllocate = null
|
||||
}
|
||||
}
|
||||
|
||||
_onReload() {
|
||||
Main.panel.queue_relayout()
|
||||
}
|
||||
|
||||
_extendBox(actor, box, flags) {
|
||||
let leftBox = Main.panel._leftBox
|
||||
let centerBox = Main.panel._centerBox
|
||||
let rightBox = Main.panel._rightBox
|
||||
|
||||
let allocWidth = box.x2 - box.x1
|
||||
let allocHeight = box.y2 - box.y1
|
||||
|
||||
let [leftMinWidth, leftNaturalWidth] = leftBox.get_preferred_width(-1)
|
||||
let [centerMinWidth, centerNaturalWidth] = centerBox.get_preferred_width(-1)
|
||||
let [rightMinWidth, rightNaturalWidth] = rightBox.get_preferred_width(-1)
|
||||
|
||||
let sideWidth = allocWidth - rightNaturalWidth - centerNaturalWidth
|
||||
let childBox = new Clutter.ActorBox()
|
||||
|
||||
childBox.y1 = 0
|
||||
childBox.y2 = allocHeight
|
||||
|
||||
if (actor.get_text_direction() == Clutter.TextDirection.RTL) {
|
||||
childBox.x1 = allocWidth - Math.min(Math.floor(sideWidth), leftNaturalWidth)
|
||||
childBox.x2 = allocWidth
|
||||
} else {
|
||||
childBox.x1 = 0
|
||||
childBox.x2 = Math.min(Math.floor(sideWidth), leftNaturalWidth)
|
||||
}
|
||||
|
||||
leftBox.allocate(childBox, flags)
|
||||
|
||||
childBox.y1 = 0
|
||||
childBox.y2 = allocHeight
|
||||
|
||||
if (actor.get_text_direction() == Clutter.TextDirection.RTL) {
|
||||
childBox.x1 = rightNaturalWidth
|
||||
childBox.x2 = childBox.x1 + centerNaturalWidth
|
||||
} else {
|
||||
childBox.x1 = allocWidth - centerNaturalWidth - rightNaturalWidth
|
||||
childBox.x2 = childBox.x1 + centerNaturalWidth
|
||||
}
|
||||
|
||||
centerBox.allocate(childBox, flags)
|
||||
|
||||
childBox.y1 = 0
|
||||
childBox.y2 = allocHeight
|
||||
|
||||
if (actor.get_text_direction() == Clutter.TextDirection.RTL) {
|
||||
childBox.x1 = 0
|
||||
childBox.x2 = rightNaturalWidth
|
||||
} else {
|
||||
childBox.x1 = allocWidth - rightNaturalWidth
|
||||
childBox.x2 = allocWidth
|
||||
}
|
||||
|
||||
rightBox.allocate(childBox, flags)
|
||||
}
|
||||
}
|
|
@ -0,0 +1,29 @@
|
|||
const Clutter = imports.gi.Clutter
|
||||
const Main = imports.ui.main
|
||||
const Unite = imports.misc.extensionUtils.getCurrentExtension()
|
||||
const Base = Unite.imports.module.BaseModule
|
||||
const scaleSize = Unite.imports.helpers.scaleSize
|
||||
|
||||
var MessageTray = class MessageTray extends Base {
|
||||
_onSetup() {
|
||||
this._enableKey = 'notifications-position'
|
||||
this._disableValue = 'center'
|
||||
}
|
||||
|
||||
_onInitialize() {
|
||||
this._banner = Main.messageTray._bannerBin
|
||||
}
|
||||
|
||||
_onActivate() {
|
||||
let mappings = { center: 'CENTER', left: 'START', right: 'END' }
|
||||
let position = mappings[this._setting] || 'CENTER'
|
||||
|
||||
this._banner.set_x_align(Clutter.ActorAlign[position])
|
||||
this._banner.set_width(scaleSize(390))
|
||||
}
|
||||
|
||||
_onDeactivate() {
|
||||
this._banner.set_x_align(Clutter.ActorAlign.CENTER)
|
||||
this._banner.set_width(-1)
|
||||
}
|
||||
}
|
|
@ -0,0 +1,210 @@
|
|||
const Gtk = imports.gi.Gtk
|
||||
const Main = imports.ui.main
|
||||
const Unite = imports.misc.extensionUtils.getCurrentExtension()
|
||||
const Base = Unite.imports.module.BaseModule
|
||||
const minorVersion = Unite.imports.helpers.minorVersion
|
||||
|
||||
var ThemeMods = class ThemeMods extends Base {
|
||||
_onInitialize() {
|
||||
this.gtkSettings = Gtk.Settings.get_default()
|
||||
this._extraSpace = minorVersion < 34
|
||||
this._mainStyle = Main.uiGroup.get_style()
|
||||
this._panelStyle = Main.panel.get_style()
|
||||
this._appMenu = Main.panel.statusArea.appMenu
|
||||
this._aggMenu = Main.panel.statusArea.aggregateMenu
|
||||
this._leftBox = Main.panel._leftBox
|
||||
this._centerBox = Main.panel._centerBox
|
||||
this._rightBox = Main.panel._rightBox
|
||||
}
|
||||
|
||||
_onActivate() {
|
||||
this._signals.connect(this.gtkSettings, 'notify::gtk-font-name', 'setPanelStyle')
|
||||
this._signals.connect(this._leftBox, 'actor_added', 'removePanelArrows')
|
||||
this._signals.connect(this._centerBox, 'actor_added', 'removePanelArrows')
|
||||
this._signals.connect(this._rightBox, 'actor_added', 'removePanelArrows')
|
||||
|
||||
this._settings.connect('use-system-fonts', 'setPanelStyle')
|
||||
this._settings.connect('reduce-panel-spacing', 'setPanelStyle')
|
||||
this._settings.connect('hide-app-menu-icon', 'toggleAppMenuIcon')
|
||||
this._settings.connect('hide-dropdown-arrows', 'togglePanelArrows')
|
||||
this._settings.connect('hide-aggregate-menu-arrow', 'toggleAggMenuArrow')
|
||||
this._settings.connect('hide-app-menu-arrow', 'toggleAppMenuArrow')
|
||||
|
||||
this._setExtraSpace()
|
||||
|
||||
this._toggleAppMenuIcon()
|
||||
this._togglePanelArrows()
|
||||
this._toggleAggMenuArrow()
|
||||
this._toggleAppMenuArrow()
|
||||
|
||||
this._setPanelStyle()
|
||||
}
|
||||
|
||||
_onDeactivate() {
|
||||
this._unsetExtraSpace()
|
||||
|
||||
this._resetAppMenuIcon()
|
||||
this._resetPanelArrows()
|
||||
this._resetAggMenuArrow()
|
||||
this._resetAppMenuArrow()
|
||||
|
||||
this._unsetPanelStyle()
|
||||
}
|
||||
|
||||
_setExtraSpace() {
|
||||
if (this._extraSpace) {
|
||||
this._addClass('extra-spacing')
|
||||
}
|
||||
}
|
||||
|
||||
_unsetExtraSpace() {
|
||||
if (this._extraSpace) {
|
||||
this._removeClass('extra-spacing')
|
||||
}
|
||||
}
|
||||
|
||||
_setPanelStyle() {
|
||||
this._unsetPanelStyle()
|
||||
|
||||
const fonts = this._settings.get('use-system-fonts')
|
||||
const space = this._settings.get('reduce-panel-spacing')
|
||||
|
||||
if (!fonts && !space) return
|
||||
|
||||
if (fonts) {
|
||||
const gtkFont = this.gtkSettings.gtk_font_name
|
||||
const cssFont = gtkFont.replace(/\s\d+$/, '')
|
||||
|
||||
Main.uiGroup.set_style(`font-family: ${cssFont};`)
|
||||
this._addClass('system-fonts')
|
||||
}
|
||||
|
||||
if (space) {
|
||||
this._addClass('small-spacing')
|
||||
}
|
||||
|
||||
Main.panel.set_style('font-size: 11.25pt;')
|
||||
}
|
||||
|
||||
_unsetPanelStyle() {
|
||||
this._removeClass('small-spacing')
|
||||
this._removeClass('system-fonts')
|
||||
|
||||
Main.uiGroup.set_style(this._mainStyle)
|
||||
Main.panel.set_style(this._panelStyle)
|
||||
}
|
||||
|
||||
_toggleAppMenuIcon() {
|
||||
const enabled = this._settings.get('hide-app-menu-icon')
|
||||
|
||||
if (enabled) {
|
||||
this._appMenu._iconBox.hide()
|
||||
} else {
|
||||
this._resetAppMenuIcon()
|
||||
}
|
||||
}
|
||||
|
||||
_resetAppMenuIcon() {
|
||||
this._appMenu._iconBox.show()
|
||||
}
|
||||
|
||||
_getWidgetArrow(widget) {
|
||||
let arrow = widget._arrow
|
||||
|
||||
if (!arrow) {
|
||||
const last = widget.get_n_children() - 1
|
||||
const actor = widget.get_children()[last]
|
||||
|
||||
if (!actor) return
|
||||
|
||||
if (actor.has_style_class_name && actor.has_style_class_name('popup-menu-arrow'))
|
||||
arrow = actor
|
||||
else
|
||||
arrow = this._getWidgetArrow(actor)
|
||||
}
|
||||
|
||||
if (arrow && !widget.hasOwnProperty('_arrow'))
|
||||
widget._arrow = arrow
|
||||
|
||||
return arrow
|
||||
}
|
||||
|
||||
_toggleWidgetArrow(widget, hide) {
|
||||
if (!widget) return
|
||||
|
||||
const arrow = this._getWidgetArrow(widget)
|
||||
if (!arrow) return
|
||||
|
||||
if (hide && !widget._arrowHandled) {
|
||||
arrow.visible = false
|
||||
widget._arrowHandled = true
|
||||
}
|
||||
|
||||
if (!hide && widget._arrowHandled) {
|
||||
arrow.visible = true
|
||||
delete widget._arrowHandled
|
||||
}
|
||||
}
|
||||
|
||||
_removePanelArrows() {
|
||||
for (const [name, widget] of Object.entries(Main.panel.statusArea)) {
|
||||
if (name != 'aggregateMenu' && name != 'appMenu') {
|
||||
this._toggleWidgetArrow(widget, true)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
_resetPanelArrows() {
|
||||
for (const [name, widget] of Object.entries(Main.panel.statusArea)) {
|
||||
if (name != 'aggregateMenu' && name != 'appMenu') {
|
||||
this._toggleWidgetArrow(widget, false)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
_togglePanelArrows() {
|
||||
const enabled = this._settings.get('hide-dropdown-arrows')
|
||||
|
||||
if (enabled) {
|
||||
this._removePanelArrows()
|
||||
} else {
|
||||
this._resetPanelArrows()
|
||||
}
|
||||
}
|
||||
|
||||
_toggleAggMenuArrow() {
|
||||
const enabled = this._settings.get('hide-aggregate-menu-arrow')
|
||||
|
||||
if (enabled) {
|
||||
this._toggleWidgetArrow(this._aggMenu, true)
|
||||
} else {
|
||||
this._resetAggMenuArrow()
|
||||
}
|
||||
}
|
||||
|
||||
_resetAggMenuArrow() {
|
||||
this._toggleWidgetArrow(this._aggMenu, false)
|
||||
}
|
||||
|
||||
_toggleAppMenuArrow() {
|
||||
const enabled = this._settings.get('hide-app-menu-arrow')
|
||||
|
||||
if (enabled) {
|
||||
this._toggleWidgetArrow(this._appMenu, true)
|
||||
} else {
|
||||
this._resetAppMenuArrow()
|
||||
}
|
||||
}
|
||||
|
||||
_resetAppMenuArrow() {
|
||||
this._toggleWidgetArrow(this._appMenu, false)
|
||||
}
|
||||
|
||||
_addClass(name) {
|
||||
Main.panel._addStyleClassName(name)
|
||||
}
|
||||
|
||||
_removeClass(name) {
|
||||
Main.panel._removeStyleClassName(name)
|
||||
}
|
||||
}
|
|
@ -0,0 +1,83 @@
|
|||
const System = imports.system
|
||||
const Clutter = imports.gi.Clutter
|
||||
const Shell = imports.gi.Shell
|
||||
const Main = imports.ui.main
|
||||
const Unite = imports.misc.extensionUtils.getCurrentExtension()
|
||||
const Base = Unite.imports.module.BaseModule
|
||||
const TrayIndicator = Unite.imports.panel.TrayIndicator
|
||||
const scaleSize = Unite.imports.helpers.scaleSize
|
||||
|
||||
var TopIcons = class TopIcons extends Base {
|
||||
_onSetup() {
|
||||
this._enableKey = 'show-legacy-tray'
|
||||
this._enableValue = true
|
||||
}
|
||||
|
||||
_onActivate() {
|
||||
this._settings.connect('greyscale-tray-icons', 'desaturateIcons')
|
||||
|
||||
this._createContainer()
|
||||
this._createTray()
|
||||
}
|
||||
|
||||
_onDeactivate() {
|
||||
this._destroyContainer()
|
||||
this._destroyTray()
|
||||
}
|
||||
|
||||
_createTray() {
|
||||
this._tray = new Shell.TrayManager()
|
||||
|
||||
this._tray.connect('tray-icon-added', (trayManager, icon) => {
|
||||
this._indicators.addIcon(icon)
|
||||
this._desaturateIcon(icon)
|
||||
})
|
||||
|
||||
this._tray.connect('tray-icon-removed', (trayManager, icon) => {
|
||||
this._indicators.removeIcon(icon)
|
||||
})
|
||||
|
||||
this._tray.manage_screen(Main.panel)
|
||||
}
|
||||
|
||||
_destroyTray() {
|
||||
this._tray = null
|
||||
System.gc()
|
||||
}
|
||||
|
||||
_createContainer() {
|
||||
if (this._indicators) return
|
||||
|
||||
this._indicators = new TrayIndicator({ size: scaleSize(20) })
|
||||
Main.panel.addToStatusArea('uniteTrayIndicator', this._indicators)
|
||||
}
|
||||
|
||||
_destroyContainer() {
|
||||
if (!this._indicators) return
|
||||
|
||||
this._indicators.destroy()
|
||||
this._indicators = null
|
||||
}
|
||||
|
||||
_desaturateIcon(icon) {
|
||||
let greyscale = this._settings.get('greyscale-tray-icons')
|
||||
icon.clear_effects()
|
||||
|
||||
if (!greyscale) return
|
||||
|
||||
let desEffect = new Clutter.DesaturateEffect({ factor : 1.0 })
|
||||
let briEffect = new Clutter.BrightnessContrastEffect({})
|
||||
|
||||
briEffect.set_brightness(0.2)
|
||||
briEffect.set_contrast(0.3)
|
||||
|
||||
icon.add_effect_with_name('desaturate', desEffect)
|
||||
icon.add_effect_with_name('brightness-contrast', briEffect)
|
||||
}
|
||||
|
||||
_desaturateIcons() {
|
||||
if (!this._indicators) return
|
||||
|
||||
this._indicators.forEach(icon => { this._desaturateIcon(icon) })
|
||||
}
|
||||
}
|
|
@ -0,0 +1,181 @@
|
|||
const St = imports.gi.St
|
||||
const Shell = imports.gi.Shell
|
||||
const Meta = imports.gi.Meta
|
||||
const Main = imports.ui.main
|
||||
const Unite = imports.misc.extensionUtils.getCurrentExtension()
|
||||
const Base = Unite.imports.module.BaseModule
|
||||
const WindowControls = Unite.imports.panel.WindowControls
|
||||
const isWindow = Unite.imports.helpers.isWindow
|
||||
const isMaximized = Unite.imports.helpers.isMaximized
|
||||
const loadStyles = Unite.imports.helpers.loadStyles
|
||||
const unloadStyles = Unite.imports.helpers.unloadStyles
|
||||
|
||||
var WindowButtons = class WindowButtons extends Base {
|
||||
_onSetup() {
|
||||
this._enableKey = 'show-window-buttons'
|
||||
this._disableValue = 'never'
|
||||
}
|
||||
|
||||
_onInitialize() {
|
||||
this.monitorManager = Meta.MonitorManager.get()
|
||||
}
|
||||
|
||||
_onActivate() {
|
||||
this._signals.connect(global.display, 'notify::focus-window', 'toggleButtons')
|
||||
this._signals.connect(global.window_manager, 'size-change', 'toggleButtons')
|
||||
this._signals.connect(global.window_manager, 'destroy', 'toggleButtons')
|
||||
this._signals.connect(this.monitorManager, 'monitors-changed', 'toggleButtons')
|
||||
|
||||
this._signals.connect(Main.overview, 'showing', 'toggleButtons')
|
||||
this._signals.connect(Main.overview, 'hiding', 'toggleButtons')
|
||||
|
||||
this._settings.connect('window-buttons-theme', 'updateTheme')
|
||||
this._settings.connect('button-layout', 'updateButtons')
|
||||
this._settings.connect('window-buttons-placement', 'updateButtons')
|
||||
this._settings.connect('restrict-to-primary-screen', 'updateButtons')
|
||||
|
||||
this._createButtons()
|
||||
this._toggleButtons()
|
||||
this._loadTheme()
|
||||
}
|
||||
|
||||
_onReset() {
|
||||
this._toggleButtons()
|
||||
}
|
||||
|
||||
_onDeactivate() {
|
||||
this._unloadTheme()
|
||||
this._destroyButtons()
|
||||
}
|
||||
|
||||
_createButtons() {
|
||||
let buttons = this._settings.get('window-buttons-layout')
|
||||
let side = this._settings.get('window-buttons-position')
|
||||
let place = this._settings.get('window-buttons-placement')
|
||||
let index = side == 'left' ? 1 : -1
|
||||
|
||||
if (!buttons || this._controls) return
|
||||
|
||||
if ((place == 'right' || place == 'last') && side == 'left') {
|
||||
buttons = buttons.reverse()
|
||||
}
|
||||
|
||||
if (place == 'left' || place == 'first') {
|
||||
side = 'left'
|
||||
index = 0
|
||||
}
|
||||
|
||||
if (place == 'right' || place == 'last') {
|
||||
side = 'right'
|
||||
index = -1
|
||||
}
|
||||
|
||||
this._controls = new WindowControls()
|
||||
|
||||
this._controls.addButtons(buttons, (actor, event) => {
|
||||
this._onButtonClick(actor, event)
|
||||
})
|
||||
|
||||
Main.panel.addToStatusArea('uniteWindowControls', this._controls, index, side)
|
||||
|
||||
const widget = this._controls.get_parent()
|
||||
const appMenu = Main.panel.statusArea.appMenu.get_parent()
|
||||
const aggMenu = Main.panel.statusArea.aggregateMenu.get_parent()
|
||||
|
||||
if (side == 'left' && place != 'first') {
|
||||
Main.panel._leftBox.set_child_below_sibling(widget, appMenu)
|
||||
}
|
||||
|
||||
if (side == 'right' && place != 'last') {
|
||||
Main.panel._rightBox.set_child_below_sibling(widget, aggMenu)
|
||||
}
|
||||
}
|
||||
|
||||
_destroyButtons() {
|
||||
if (!this._controls) return
|
||||
|
||||
this._controls.destroy()
|
||||
this._controls = null
|
||||
}
|
||||
|
||||
_updateButtons() {
|
||||
this._destroyButtons()
|
||||
this._createButtons()
|
||||
}
|
||||
|
||||
_updateTheme() {
|
||||
this._unloadTheme()
|
||||
this._loadTheme()
|
||||
}
|
||||
|
||||
_loadTheme() {
|
||||
if (this._themeFile || !this._controls) return
|
||||
|
||||
this._themeName = this._settings.get('window-buttons-theme')
|
||||
this._themeFile = loadStyles(`themes/${this._themeName}/stylesheet.css`)
|
||||
|
||||
this._controls.add_style_class_name(`${this._themeName}-buttons`)
|
||||
}
|
||||
|
||||
_unloadTheme() {
|
||||
if (!this._themeFile || !this._controls) return
|
||||
|
||||
this._controls.remove_style_class_name(`${this._themeName}-buttons`)
|
||||
|
||||
this._themeName = this._settings.get('window-buttons-theme')
|
||||
this._themeFile = unloadStyles(this._themeFile)
|
||||
}
|
||||
|
||||
_onButtonClick(actor, event) {
|
||||
let focusWindow = global.display.focus_window
|
||||
if (!focusWindow) return
|
||||
|
||||
switch (actor._windowAction) {
|
||||
case 'minimize': return this._minimizeWindow(focusWindow)
|
||||
case 'maximize': return this._maximizeWindow(focusWindow)
|
||||
case 'close': return this._closeWindow(focusWindow)
|
||||
}
|
||||
}
|
||||
|
||||
_minimizeWindow(win) {
|
||||
if (!win.minimized) win.minimize()
|
||||
}
|
||||
|
||||
_maximizeWindow(win) {
|
||||
let bothMaximized = Meta.MaximizeFlags.BOTH
|
||||
let maximizeState = win.get_maximized()
|
||||
|
||||
if (maximizeState === bothMaximized)
|
||||
win.unmaximize(bothMaximized)
|
||||
else
|
||||
win.maximize(bothMaximized)
|
||||
}
|
||||
|
||||
_closeWindow(win) {
|
||||
win.delete(global.get_current_time())
|
||||
}
|
||||
|
||||
_toggleButtons() {
|
||||
if (!this._controls) return
|
||||
|
||||
let focusWindow = global.display.focus_window
|
||||
let overview = Main.overview.visibleTarget
|
||||
let valid = isWindow(focusWindow)
|
||||
let visible = false
|
||||
|
||||
if (!overview && valid) {
|
||||
let maxed = isMaximized(focusWindow, this._setting)
|
||||
let always = this._setting == 'always' && focusWindow
|
||||
|
||||
visible = always || maxed
|
||||
} else {
|
||||
let target = Main.panel.statusArea.appMenu._targetApp
|
||||
let state = target != null && target.get_state()
|
||||
let running = state == Shell.AppState.RUNNING
|
||||
|
||||
visible = running && !overview
|
||||
}
|
||||
|
||||
this._controls.setVisible(visible)
|
||||
}
|
||||
}
|
|
@ -0,0 +1,196 @@
|
|||
const ByteArray = imports.byteArray
|
||||
const GLib = imports.gi.GLib
|
||||
const Meta = imports.gi.Meta
|
||||
const Util = imports.misc.util
|
||||
const Unite = imports.misc.extensionUtils.getCurrentExtension()
|
||||
const Base = Unite.imports.module.BaseModule
|
||||
const getWindowXID = Unite.imports.helpers.getWindowXID
|
||||
const isWindow = Unite.imports.helpers.isWindow
|
||||
const isMaximized = Unite.imports.helpers.isMaximized
|
||||
const loadUserStyles = Unite.imports.helpers.loadUserStyles
|
||||
|
||||
var WindowDecoration = class WindowDecoration extends Base {
|
||||
_onSetup() {
|
||||
this._enableKey = 'hide-window-titlebars'
|
||||
this._disableValue = 'never'
|
||||
}
|
||||
|
||||
_onInitialize() {
|
||||
this.monitorManager = Meta.MonitorManager.get()
|
||||
}
|
||||
|
||||
_onActivate() {
|
||||
this._signals.connect(global.display, 'notify::focus-window', 'updateTitlebar')
|
||||
this._signals.connect(global.window_manager, 'size-change', 'updateTitlebar')
|
||||
this._signals.connect(this.monitorManager, 'monitors-changed', 'undecorateWindows')
|
||||
|
||||
this._settings.connect('hide-window-titlebars', 'updateUserStyles')
|
||||
this._settings.connect('button-layout', 'updateUserStyles')
|
||||
this._settings.connect('restrict-to-primary-screen', 'undecorateWindows')
|
||||
|
||||
this._updateUserStyles()
|
||||
this._undecorateWindows()
|
||||
}
|
||||
|
||||
_onDeactivate() {
|
||||
this._removeUserStyles()
|
||||
this._decorateWindows()
|
||||
}
|
||||
|
||||
_onReset() {
|
||||
this._removeUserStyles()
|
||||
this._updateUserStyles()
|
||||
|
||||
this._undecorateWindows()
|
||||
}
|
||||
|
||||
_getWindowXID(win) {
|
||||
win._windowXID = win._windowXID || getWindowXID(win)
|
||||
return win._windowXID
|
||||
}
|
||||
|
||||
_getHintValue(win, hint) {
|
||||
let winId = this._getWindowXID(win)
|
||||
if (!winId) return
|
||||
|
||||
let result = GLib.spawn_command_line_sync(`xprop -id ${winId} ${hint}`)
|
||||
let string = ByteArray.toString(result[1])
|
||||
if (!string.match(/=/)) return
|
||||
|
||||
string = string.split('=')[1].trim().split(',').map(part => {
|
||||
part = part.trim()
|
||||
return part.match(/\dx/) ? part : `0x${part}`
|
||||
})
|
||||
|
||||
return string
|
||||
}
|
||||
|
||||
_setHintValue(win, hint, value) {
|
||||
let winId = this._getWindowXID(win)
|
||||
if (!winId) return
|
||||
|
||||
Util.spawn(['xprop', '-id', winId, '-f', hint, '32c', '-set', hint, value])
|
||||
}
|
||||
|
||||
_getMotifHints(win) {
|
||||
if (!win._uniteOriginalState) {
|
||||
let state = this._getHintValue(win, '_UNITE_ORIGINAL_STATE')
|
||||
|
||||
if (!state) {
|
||||
state = this._getHintValue(win, '_MOTIF_WM_HINTS')
|
||||
state = state || ['0x2', '0x0', '0x1', '0x0', '0x0']
|
||||
|
||||
this._setHintValue(win, '_UNITE_ORIGINAL_STATE', state.join(', '))
|
||||
}
|
||||
|
||||
win._uniteOriginalState = state
|
||||
}
|
||||
|
||||
return win._uniteOriginalState
|
||||
}
|
||||
|
||||
_getAllWindows() {
|
||||
let windows = global.get_window_actors().map(win => win.meta_window)
|
||||
return windows.filter(win => this._handleWindow(win))
|
||||
}
|
||||
|
||||
_handleWindow(win) {
|
||||
let handleWin = false
|
||||
if (!isWindow(win)) return
|
||||
|
||||
let state = this._getMotifHints(win)
|
||||
handleWin = !win.is_client_decorated()
|
||||
handleWin = handleWin && (state[2] != '0x2' && state[2] != '0x0')
|
||||
|
||||
return handleWin
|
||||
}
|
||||
|
||||
_toggleDecorations(win, hide) {
|
||||
let winId = this._getWindowXID(win)
|
||||
if (!winId) return
|
||||
|
||||
let prop = '_MOTIF_WM_HINTS'
|
||||
let flag = '0x2, 0x0, %s, 0x0, 0x0'
|
||||
let value = hide ? flag.format('0x2') : flag.format('0x1')
|
||||
|
||||
Util.spawn(['xprop', '-id', winId, '-f', prop, '32c', '-set', prop, value])
|
||||
}
|
||||
|
||||
_resetDecorations(win) {
|
||||
if (!this._handleWindow(win))
|
||||
return
|
||||
|
||||
this._toggleDecorations(win, false)
|
||||
|
||||
delete win._decorationOFF
|
||||
delete win._windowXID
|
||||
}
|
||||
|
||||
_updateTitlebar() {
|
||||
let focusWindow = global.display.focus_window
|
||||
if (!focusWindow) return
|
||||
|
||||
this._toggleTitlebar(focusWindow)
|
||||
}
|
||||
|
||||
_showTitlebar(win) {
|
||||
if (!win._decorationOFF) return
|
||||
|
||||
win._decorationOFF = false
|
||||
this._toggleDecorations(win, false)
|
||||
}
|
||||
|
||||
_hideTitlebar(win) {
|
||||
if (win._decorationOFF) return
|
||||
|
||||
win._decorationOFF = true
|
||||
this._toggleDecorations(win, true)
|
||||
}
|
||||
|
||||
_toggleTitlebar(win) {
|
||||
if (!this._handleWindow(win))
|
||||
return
|
||||
|
||||
let maxed = isMaximized(win, this._setting)
|
||||
let always = this._setting == 'always'
|
||||
|
||||
if (always || maxed)
|
||||
this._hideTitlebar(win)
|
||||
else
|
||||
this._showTitlebar(win)
|
||||
}
|
||||
|
||||
_getCssImports() {
|
||||
let position = this._settings.get('window-buttons-position')
|
||||
let filePath = `${Unite.path}/styles/buttons-${position}`
|
||||
let maximized = `@import url('${filePath}.css');\n`
|
||||
let tiled = `@import url('${filePath}-tiled.css');\n`
|
||||
let always = `@import url('${filePath}-always.css');\n`
|
||||
|
||||
switch (this._setting) {
|
||||
case 'both': return maximized + tiled
|
||||
case 'maximized': return maximized
|
||||
case 'tiled': return tiled
|
||||
case 'always': return always
|
||||
}
|
||||
}
|
||||
|
||||
_updateUserStyles() {
|
||||
let styles = this._getCssImports()
|
||||
loadUserStyles(styles || '')
|
||||
}
|
||||
|
||||
_removeUserStyles() {
|
||||
loadUserStyles('')
|
||||
}
|
||||
|
||||
_undecorateWindows() {
|
||||
let windows = this._getAllWindows()
|
||||
windows.forEach(win => { this._toggleTitlebar(win) })
|
||||
}
|
||||
|
||||
_decorateWindows() {
|
||||
let windows = this._getAllWindows()
|
||||
windows.forEach(win => { this._resetDecorations(win) })
|
||||
}
|
||||
}
|
|
@ -0,0 +1,121 @@
|
|||
const GObject = imports.gi.GObject
|
||||
const St = imports.gi.St
|
||||
const Clutter = imports.gi.Clutter
|
||||
const Main = imports.ui.main
|
||||
const PanelMenu = imports.ui.panelMenu
|
||||
|
||||
var DesktopLabel = GObject.registerClass(
|
||||
class UniteDesktopLabel extends PanelMenu.Button {
|
||||
_init(params = { text: 'Desktop' }) {
|
||||
this.params = params
|
||||
this.appMenu = Main.panel.statusArea.appMenu
|
||||
|
||||
super._init(0.0, null, true)
|
||||
|
||||
this._label = new St.Label({ y_align: Clutter.ActorAlign.CENTER })
|
||||
this.add_actor(this._label)
|
||||
|
||||
this.reactive = false
|
||||
this.label_actor = this._label
|
||||
|
||||
this.setText(params.text)
|
||||
}
|
||||
|
||||
setText(text) {
|
||||
this._label.set_text(text)
|
||||
}
|
||||
|
||||
setVisible(visible) {
|
||||
this.container.visible = visible
|
||||
this.appMenu.container.visible = !visible
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
var TrayIndicator = GObject.registerClass(
|
||||
class UniteTrayIndicator extends PanelMenu.Button {
|
||||
_init(params = { size: 20 }) {
|
||||
this._icons = []
|
||||
this.params = params
|
||||
|
||||
super._init(0.0, null, true)
|
||||
|
||||
this._indicators = new St.BoxLayout({ style_class: 'panel-status-indicators-box' })
|
||||
this.add_child(this._indicators)
|
||||
|
||||
this._sync()
|
||||
}
|
||||
|
||||
_sync() {
|
||||
this.visible = this._icons.length
|
||||
}
|
||||
|
||||
addIcon(icon) {
|
||||
this._icons.push(icon)
|
||||
|
||||
const mask = St.ButtonMask.ONE | St.ButtonMask.TWO | St.ButtonMask.THREE
|
||||
const ibtn = new St.Button({ child: icon, button_mask: mask })
|
||||
|
||||
this._indicators.add_child(ibtn)
|
||||
|
||||
icon.connect('destroy', () => { ibtn.destroy() })
|
||||
ibtn.connect('button-release-event', (actor, event) => { icon.click(event) })
|
||||
|
||||
icon.set_reactive(true)
|
||||
icon.set_size(this.params.size, this.params.size)
|
||||
|
||||
this._sync()
|
||||
}
|
||||
|
||||
removeIcon(icon) {
|
||||
const actor = icon.get_parent() || icon
|
||||
actor.destroy()
|
||||
|
||||
const index = this._icons.indexOf(icon)
|
||||
this._icons.splice(index, 1)
|
||||
|
||||
this._sync()
|
||||
}
|
||||
|
||||
forEach(callback) {
|
||||
this._icons.forEach(icon => { callback.call(null, icon) })
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
var WindowControls = GObject.registerClass(
|
||||
class UniteWindowControls extends PanelMenu.Button {
|
||||
_init() {
|
||||
super._init(0.0, null, true)
|
||||
|
||||
this._controls = new St.BoxLayout({ style_class: 'window-controls-box' })
|
||||
this.add_child(this._controls)
|
||||
|
||||
this.add_style_class_name('window-controls')
|
||||
}
|
||||
|
||||
_addButton(action, callback) {
|
||||
const bin = new St.Bin({ style_class: 'icon' })
|
||||
const btn = new St.Button({ track_hover: true })
|
||||
|
||||
btn._windowAction = action
|
||||
|
||||
btn.add_style_class_name(`window-button ${action}`)
|
||||
btn.add_actor(bin)
|
||||
|
||||
btn.connect('clicked', (actor, event) => {
|
||||
callback.call(null, actor, event)
|
||||
})
|
||||
|
||||
this._controls.add_child(btn)
|
||||
}
|
||||
|
||||
addButtons(buttons, callback) {
|
||||
buttons.forEach(action => { this._addButton(action, callback) })
|
||||
}
|
||||
|
||||
setVisible(visible) {
|
||||
this.container.visible = visible
|
||||
}
|
||||
}
|
||||
)
|
|
@ -0,0 +1,74 @@
|
|||
const GObject = imports.gi.GObject
|
||||
const Gtk = imports.gi.Gtk
|
||||
const Unite = imports.misc.extensionUtils.getCurrentExtension()
|
||||
const Convenience = Unite.imports.convenience
|
||||
|
||||
var PrefsWidget = GObject.registerClass(
|
||||
class UnitePrefsWidget extends Gtk.Box {
|
||||
_init(params) {
|
||||
this._settings = Convenience.getSettings()
|
||||
super._init(params)
|
||||
|
||||
this._buildable = new Gtk.Builder()
|
||||
this._buildable.add_from_file(`${Unite.path}/settings.ui`)
|
||||
|
||||
this._container = this._getWidget('prefs_widget')
|
||||
this.add(this._container)
|
||||
|
||||
this._bindStrings()
|
||||
this._bindSelects()
|
||||
this._bindBooleans()
|
||||
this._bindEnumerations()
|
||||
}
|
||||
|
||||
_getWidget(name) {
|
||||
let widgetName = name.replace(/-/g, '_')
|
||||
return this._buildable.get_object(widgetName)
|
||||
}
|
||||
|
||||
_bindInput(setting, prop) {
|
||||
let widget = this._getWidget(setting)
|
||||
this._settings.bind(setting, widget, prop, this._settings.DEFAULT_BINDING)
|
||||
}
|
||||
|
||||
_bindEnum(setting) {
|
||||
let widget = this._getWidget(setting)
|
||||
widget.set_active(this._settings.get_enum(setting))
|
||||
|
||||
widget.connect('changed', (combobox) => {
|
||||
this._settings.set_enum(setting, combobox.get_active())
|
||||
})
|
||||
}
|
||||
|
||||
_bindStrings() {
|
||||
let settings = this._settings.getTypeSettings('string')
|
||||
settings.forEach(setting => { this._bindInput(setting, 'text') })
|
||||
}
|
||||
|
||||
_bindSelects() {
|
||||
let settings = this._settings.getTypeSettings('select')
|
||||
settings.forEach(setting => { this._bindInput(setting, 'active-id') })
|
||||
}
|
||||
|
||||
_bindBooleans() {
|
||||
let settings = this._settings.getTypeSettings('boolean')
|
||||
settings.forEach(setting => { this._bindInput(setting, 'active') })
|
||||
}
|
||||
|
||||
_bindEnumerations() {
|
||||
let settings = this._settings.getTypeSettings('enum')
|
||||
settings.forEach(setting => { this._bindEnum(setting) })
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
function init() {
|
||||
Convenience.initTranslations()
|
||||
}
|
||||
|
||||
function buildPrefsWidget() {
|
||||
let widget = new PrefsWidget()
|
||||
widget.show_all()
|
||||
|
||||
return widget
|
||||
}
|
|
@ -0,0 +1,161 @@
|
|||
<schemalist gettext-domain="gnome-shell-extensions">
|
||||
<enum id="org.gnome.shell.extensions.unite.buttonsTheme">
|
||||
<value value="0" nick="default-dark" />
|
||||
<value value="1" nick="default-light" />
|
||||
<value value="2" nick="ambiance" />
|
||||
<value value="3" nick="radiance" />
|
||||
<value value="4" nick="arc-dark" />
|
||||
<value value="5" nick="arc-light" />
|
||||
<value value="6" nick="united-dark" />
|
||||
<value value="7" nick="united-light" />
|
||||
<value value="8" nick="materia-dark" />
|
||||
<value value="9" nick="materia-light" />
|
||||
<value value="10" nick="osx-arc" />
|
||||
<value value="11" nick="vertex" />
|
||||
<value value="12" nick="pop-dark" />
|
||||
<value value="13" nick="pop-light" />
|
||||
<value value="14" nick="vimix" />
|
||||
<value value="15" nick="yaru" />
|
||||
<value value="16" nick="arrongin" />
|
||||
<value value="17" nick="telinkrin" />
|
||||
</enum>
|
||||
|
||||
<enum id="org.gnome.shell.extensions.unite.hideTitlebars">
|
||||
<value value="0" nick="never" />
|
||||
<value value="1" nick="tiled" />
|
||||
<value value="2" nick="maximized" />
|
||||
<value value="3" nick="both" />
|
||||
<value value="4" nick="always" />
|
||||
</enum>
|
||||
|
||||
<enum id="org.gnome.shell.extensions.unite.showTitle">
|
||||
<value value="0" nick="never" />
|
||||
<value value="1" nick="tiled" />
|
||||
<value value="2" nick="maximized" />
|
||||
<value value="3" nick="both" />
|
||||
<value value="4" nick="always" />
|
||||
</enum>
|
||||
|
||||
<enum id="org.gnome.shell.extensions.unite.showButtons">
|
||||
<value value="0" nick="never" />
|
||||
<value value="1" nick="tiled" />
|
||||
<value value="2" nick="maximized" />
|
||||
<value value="3" nick="both" />
|
||||
<value value="4" nick="always" />
|
||||
</enum>
|
||||
|
||||
<enum id="org.gnome.shell.extensions.unite.notificationsPosition">
|
||||
<value value="0" nick="center" />
|
||||
<value value="1" nick="left" />
|
||||
<value value="2" nick="right" />
|
||||
</enum>
|
||||
|
||||
<enum id="org.gnome.shell.extensions.unite.hideActivitiesButton">
|
||||
<value value="0" nick="never" />
|
||||
<value value="1" nick="auto" />
|
||||
<value value="2" nick="always" />
|
||||
</enum>
|
||||
|
||||
<schema id="org.gnome.shell.extensions.unite" path="/org/gnome/shell/extensions/unite/">
|
||||
<key name="use-system-fonts" type="b">
|
||||
<default>true</default>
|
||||
<summary>Apply system fonts to shell interface.</summary>
|
||||
</key>
|
||||
|
||||
<key name="extend-left-box" type="b">
|
||||
<default>true</default>
|
||||
<summary>Extend top bar left box.</summary>
|
||||
</key>
|
||||
|
||||
<key name="show-legacy-tray" type="b">
|
||||
<default>true</default>
|
||||
<summary>Legacy tray icons in top bar.</summary>
|
||||
</key>
|
||||
|
||||
<key name="greyscale-tray-icons" type="b">
|
||||
<default>false</default>
|
||||
<summary>Convert legacy tray icons to greyscale.</summary>
|
||||
</key>
|
||||
|
||||
<key name="autofocus-windows" type="b">
|
||||
<default>true</default>
|
||||
<summary>Autofocus windows that demand attention.</summary>
|
||||
</key>
|
||||
|
||||
<key name="show-desktop-name" type="b">
|
||||
<default>true</default>
|
||||
<summary>Show desktop name in top bar.</summary>
|
||||
</key>
|
||||
|
||||
<key name="desktop-name-text" type="s">
|
||||
<default>"GNOME Desktop"</default>
|
||||
<summary>Set the top bar desktop name text.</summary>
|
||||
</key>
|
||||
|
||||
<key name="restrict-to-primary-screen" type="b">
|
||||
<default>true</default>
|
||||
<summary>Restrict functionalities to the primary screen.</summary>
|
||||
</key>
|
||||
|
||||
<key name="hide-dropdown-arrows" type="b">
|
||||
<default>true</default>
|
||||
<summary>Hide top bar dropdown arrows.</summary>
|
||||
</key>
|
||||
|
||||
<key name="hide-aggregate-menu-arrow" type="b">
|
||||
<default>false</default>
|
||||
<summary>Hide aggregate menu dropdown arrow.</summary>
|
||||
</key>
|
||||
|
||||
<key name="hide-app-menu-arrow" type="b">
|
||||
<default>true</default>
|
||||
<summary>Hide app menu dropdown arrow.</summary>
|
||||
</key>
|
||||
|
||||
<key name="hide-app-menu-icon" type="b">
|
||||
<default>true</default>
|
||||
<summary>Hide app menu application icon.</summary>
|
||||
</key>
|
||||
|
||||
<key name="reduce-panel-spacing" type="b">
|
||||
<default>true</default>
|
||||
<summary>Reduce top bar items spacing.</summary>
|
||||
</key>
|
||||
|
||||
<key name="window-buttons-placement" type="s">
|
||||
<default>"auto"</default>
|
||||
<summary>Top bar window buttons position.</summary>
|
||||
</key>
|
||||
|
||||
<key name="show-window-title" enum="org.gnome.shell.extensions.unite.showTitle">
|
||||
<default>"maximized"</default>
|
||||
<summary>Use window title to replace the app-menu label.</summary>
|
||||
</key>
|
||||
|
||||
<key name="show-window-buttons" enum="org.gnome.shell.extensions.unite.showButtons">
|
||||
<default>"maximized"</default>
|
||||
<summary>Active window bottons in top bar.</summary>
|
||||
</key>
|
||||
|
||||
<key name="window-buttons-theme" enum="org.gnome.shell.extensions.unite.buttonsTheme">
|
||||
<default>"default-dark"</default>
|
||||
<summary>Top bar window buttons theme.</summary>
|
||||
</key>
|
||||
|
||||
<key name="hide-window-titlebars" enum="org.gnome.shell.extensions.unite.hideTitlebars">
|
||||
<default>"maximized"</default>
|
||||
<summary>Select windows state to hide titlebars.</summary>
|
||||
</key>
|
||||
|
||||
<key name="notifications-position" enum="org.gnome.shell.extensions.unite.notificationsPosition">
|
||||
<default>"right"</default>
|
||||
<summary>Select notification messages position.</summary>
|
||||
</key>
|
||||
|
||||
<key name="hide-activities-button" enum="org.gnome.shell.extensions.unite.hideActivitiesButton">
|
||||
<default>"auto"</default>
|
||||
<summary>Hide top bar activities button.</summary>
|
||||
</key>
|
||||
|
||||
</schema>
|
||||
</schemalist>
|
|
@ -0,0 +1,906 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Generated with glade 3.22.1 -->
|
||||
<interface domain="unite">
|
||||
<requires lib="gtk+" version="3.10"/>
|
||||
<object class="GtkNotebook" id="prefs_widget">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="hexpand">True</property>
|
||||
<property name="show_border">False</property>
|
||||
<property name="scrollable">True</property>
|
||||
<child>
|
||||
<object class="GtkBox" id="general_prefs">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="valign">start</property>
|
||||
<property name="margin_left">20</property>
|
||||
<property name="margin_right">20</property>
|
||||
<property name="margin_top">20</property>
|
||||
<property name="margin_bottom">20</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">15</property>
|
||||
<property name="homogeneous">True</property>
|
||||
<child>
|
||||
<object class="GtkBox" id="extend_left_box_section">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="spacing">50</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="label" translatable="yes">Extend top bar left box</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSwitch" id="extend_left_box">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="active">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="pack_type">end</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox" id="autofocus_windows_section">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="spacing">50</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="label" translatable="yes">Auto focus new windows</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSwitch" id="autofocus_windows">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="active">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="pack_type">end</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox" id="show_legacy_tray_section">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="spacing">50</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="label" translatable="yes">Show system tray in top bar</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSwitch" id="show_legacy_tray">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="active">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="pack_type">end</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">3</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox" id="show_desktop_name_section">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="spacing">50</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="label" translatable="yes">Show desktop name in top bar</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSwitch" id="show_desktop_name">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="active">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="pack_type">end</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">5</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox" id="restrict_to_primary_screen_section">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="spacing">50</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="label" translatable="yes">Restrict functionalities to the primary screen</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSwitch" id="restrict_to_primary_screen">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="active">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="pack_type">end</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">6</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox" id="hide_activities_button_section">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="spacing">50</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="label" translatable="yes">Hide activities button</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkComboBoxText" id="hide_activities_button">
|
||||
<property name="width_request">170</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="active_id">1</property>
|
||||
<items>
|
||||
<item id="0" translatable="yes">Never</item>
|
||||
<item id="1" translatable="yes">Auto</item>
|
||||
<item id="2" translatable="yes">Always</item>
|
||||
</items>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="pack_type">end</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">8</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox" id="hide_window_titlebars_section">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="spacing">50</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="label" translatable="yes">Hide window titlebars</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkComboBoxText" id="hide_window_titlebars">
|
||||
<property name="width_request">170</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="active_id">2</property>
|
||||
<items>
|
||||
<item id="0" translatable="yes">Never</item>
|
||||
<item id="1" translatable="yes">Tiled</item>
|
||||
<item id="2" translatable="yes">Maximized</item>
|
||||
<item id="3" translatable="yes">Both</item>
|
||||
<item id="4" translatable="yes">Always</item>
|
||||
</items>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="pack_type">end</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">9</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox" id="show_window_title_section">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="spacing">50</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="label" translatable="yes">Show window title in app menu</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkComboBoxText" id="show_window_title">
|
||||
<property name="width_request">170</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="active_id">2</property>
|
||||
<items>
|
||||
<item id="0" translatable="yes">Never</item>
|
||||
<item id="1" translatable="yes">Tiled</item>
|
||||
<item id="2" translatable="yes">Maximized</item>
|
||||
<item id="3" translatable="yes">Both</item>
|
||||
<item id="4" translatable="yes">Always</item>
|
||||
</items>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="pack_type">end</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">10</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox" id="show_window_buttons_section">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="spacing">50</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="label" translatable="yes">Show window buttons in top bar</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkComboBoxText" id="show_window_buttons">
|
||||
<property name="width_request">170</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="active_id">2</property>
|
||||
<items>
|
||||
<item id="0" translatable="yes">Never</item>
|
||||
<item id="1" translatable="yes">Tiled</item>
|
||||
<item id="2" translatable="yes">Maximized</item>
|
||||
<item id="3" translatable="yes">Both</item>
|
||||
<item id="4" translatable="yes">Always</item>
|
||||
</items>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="pack_type">end</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">11</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox" id="notifications_position_section">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="spacing">50</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="label" translatable="yes">Notification messages position</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkComboBoxText" id="notifications_position">
|
||||
<property name="width_request">170</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="active_id">2</property>
|
||||
<items>
|
||||
<item id="0" translatable="yes">Center</item>
|
||||
<item id="1" translatable="yes">Left</item>
|
||||
<item id="2" translatable="yes">Right</item>
|
||||
</items>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="pack_type">end</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">13</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="tab_expand">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child type="tab">
|
||||
<object class="GtkLabel" id="general_label">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">General</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="tab_fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox" id="appearance_prefs">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="valign">start</property>
|
||||
<property name="margin_left">20</property>
|
||||
<property name="margin_right">20</property>
|
||||
<property name="margin_top">20</property>
|
||||
<property name="margin_bottom">20</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">15</property>
|
||||
<property name="homogeneous">True</property>
|
||||
<child>
|
||||
<object class="GtkBox" id="use_system_fonts_section">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="spacing">50</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="label" translatable="yes">Apply system fonts to shell theme</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSwitch" id="use_system_fonts">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="active">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="pack_type">end</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox" id="greyscale_tray_icons_section">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="spacing">50</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="label" translatable="yes">Convert tray icons to greyscale</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSwitch" id="greyscale_tray_icons">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="valign">center</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="pack_type">end</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox" id="hide_dropdown_arrows_section">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="spacing">50</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="label" translatable="yes">Hide top bar dropdown arrows</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSwitch" id="hide_dropdown_arrows">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="active">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="pack_type">end</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox" id="hide_aggregate_menu_arrow_section">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="spacing">50</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="label" translatable="yes">Hide aggregate menu dropdown arrow</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSwitch" id="hide_aggregate_menu_arrow">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="valign">center</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="pack_type">end</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">3</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox" id="hide_app_menu_arrow_section">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="spacing">50</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="label" translatable="yes">Hide app menu dropdown arrow</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSwitch" id="hide_app_menu_arrow">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="active">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="pack_type">end</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">4</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox" id="hide_app_menu_icon_section">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="spacing">50</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="label" translatable="yes">Hide app menu application icon</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSwitch" id="hide_app_menu_icon">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="active">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="pack_type">end</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">5</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox" id="reduce_panel_spacing_section">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="spacing">50</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="label" translatable="yes">Reduce top bar items spacing</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSwitch" id="reduce_panel_spacing">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="active">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="pack_type">end</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">6</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox" id="desktop_name_text_section">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="spacing">50</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="label" translatable="yes">Top bar desktop name text</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkEntry" id="desktop_name_text">
|
||||
<property name="width_request">170</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="text" translatable="yes">GNOME Desktop</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="pack_type">end</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">7</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox" id="window_buttons_placement_section">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="no_show_all">True</property>
|
||||
<property name="spacing">50</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="label" translatable="yes">Top bar window buttons position</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkComboBoxText" id="window_buttons_placement">
|
||||
<property name="width_request">170</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="active_id">auto</property>
|
||||
<items>
|
||||
<item id="auto" translatable="yes">Auto</item>
|
||||
<item id="left" translatable="yes">Left</item>
|
||||
<item id="right" translatable="yes">Right</item>
|
||||
<item id="first" translatable="yes">First</item>
|
||||
<item id="last" translatable="yes">Last</item>
|
||||
</items>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="pack_type">end</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">8</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox" id="window_buttons_theme_section">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="no_show_all">True</property>
|
||||
<property name="spacing">50</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="label" translatable="yes">Top bar window buttons theme</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkComboBoxText" id="window_buttons_theme">
|
||||
<property name="width_request">170</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="active_id">0</property>
|
||||
<items>
|
||||
<item id="0" translatable="yes">Default Dark</item>
|
||||
<item id="1" translatable="yes">Default Light</item>
|
||||
<item id="2" translatable="yes">Ambiance</item>
|
||||
<item id="3" translatable="yes">Radiance</item>
|
||||
<item id="4" translatable="yes">Arc Dark</item>
|
||||
<item id="5" translatable="yes">Arc Light</item>
|
||||
<item id="6" translatable="yes">United Dark</item>
|
||||
<item id="7" translatable="yes">United Light</item>
|
||||
<item id="8" translatable="yes">Materia Dark</item>
|
||||
<item id="9" translatable="yes">Materia Light</item>
|
||||
<item id="10" translatable="yes">OSX Arc</item>
|
||||
<item id="11" translatable="yes">Vertex</item>
|
||||
<item id="12" translatable="yes">Pop Dark</item>
|
||||
<item id="13" translatable="yes">Pop Light</item>
|
||||
<item id="14" translatable="yes">Vimix</item>
|
||||
<item id="15" translatable="yes">Yaru</item>
|
||||
<item id="16" translatable="yes">Arrongin</item>
|
||||
<item id="17" translatable="yes">Telinkrin</item>
|
||||
</items>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="pack_type">end</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">9</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="position">1</property>
|
||||
<property name="tab_expand">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child type="tab">
|
||||
<object class="GtkLabel" id="appearance_label">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">Appearance</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="position">1</property>
|
||||
<property name="tab_fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</interface>
|
|
@ -0,0 +1,23 @@
|
|||
headerbar,
|
||||
.titlebar {
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
.titlebar headerbar ~ headerbar {
|
||||
padding-left: 6px;
|
||||
}
|
||||
|
||||
.titlebar .titlebar {
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
headerbar > box.left,
|
||||
.titlebar > box.left {
|
||||
margin: 0 0 0 -200px;
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
.titlebar.default-decoration {
|
||||
margin: -200px 0 0;
|
||||
opacity: 0;
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
.tiled headerbar,
|
||||
.tiled .titlebar {
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
.tiled .titlebar headerbar ~ headerbar {
|
||||
padding-left: 6px;
|
||||
}
|
||||
|
||||
.tiled .titlebar .titlebar {
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
.tiled headerbar > box.left,
|
||||
.tiled .titlebar > box.left {
|
||||
margin: 0 0 0 -200px;
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
.tiled .titlebar.default-decoration {
|
||||
margin: -200px 0 0;
|
||||
opacity: 0;
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
.maximized headerbar,
|
||||
.maximized .titlebar {
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
.maximized .titlebar headerbar ~ headerbar {
|
||||
padding-left: 6px;
|
||||
}
|
||||
|
||||
.maximized .titlebar .titlebar {
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
.maximized headerbar > box.left,
|
||||
.maximized .titlebar > box.left {
|
||||
margin: 0 0 0 -200px;
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
.maximized .titlebar.default-decoration {
|
||||
margin: -200px 0 0;
|
||||
opacity: 0;
|
||||
}
|
|
@ -0,0 +1,15 @@
|
|||
headerbar,
|
||||
.titlebar {
|
||||
padding-right: 0;
|
||||
}
|
||||
|
||||
headerbar > box.right,
|
||||
.titlebar > box.right {
|
||||
margin: 0 -200px 0 0;
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
.titlebar.default-decoration {
|
||||
margin: -200px 0 0;
|
||||
opacity: 0;
|
||||
}
|
|
@ -0,0 +1,15 @@
|
|||
.tiled headerbar,
|
||||
.tiled .titlebar {
|
||||
padding-right: 0;
|
||||
}
|
||||
|
||||
.tiled headerbar > box.right,
|
||||
.tiled .titlebar > box.right {
|
||||
margin: 0 -200px 0 0;
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
.tiled .titlebar.default-decoration {
|
||||
margin: -200px 0 0;
|
||||
opacity: 0;
|
||||
}
|
|
@ -0,0 +1,15 @@
|
|||
.maximized headerbar,
|
||||
.maximized .titlebar {
|
||||
padding-right: 0;
|
||||
}
|
||||
|
||||
.maximized headerbar > box.right,
|
||||
.maximized .titlebar > box.right {
|
||||
margin: 0 -200px 0 0;
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
.maximized .titlebar.default-decoration {
|
||||
margin: -200px 0 0;
|
||||
opacity: 0;
|
||||
}
|
|
@ -0,0 +1,48 @@
|
|||
#panel.small-spacing .panel-button {
|
||||
-natural-hpadding: 8px;
|
||||
-minimum-hpadding: 6px;
|
||||
}
|
||||
|
||||
#panel.small-spacing .panel-button .system-status-icon {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#panel.small-spacing .panel-button .panel-status-indicators-box {
|
||||
spacing: 12px;
|
||||
}
|
||||
|
||||
#panel.small-spacing.extra-spacing .panel-button .panel-status-indicators-box {
|
||||
spacing: 10px;
|
||||
}
|
||||
|
||||
#panel.small-spacing.extra-spacing #appMenu {
|
||||
margin: 0 8px;
|
||||
}
|
||||
|
||||
#panel .panel-button.window-controls {
|
||||
-natural-hpadding: 0px;
|
||||
-minimum-hpadding: 0px;
|
||||
}
|
||||
|
||||
#panel .window-controls-box {
|
||||
spacing: 2px;
|
||||
}
|
||||
|
||||
#panel .window-controls-box .window-button {
|
||||
width: 22px;
|
||||
}
|
||||
|
||||
#panelLeft .window-controls-box:first-child .window-button:first-child {
|
||||
padding-left: 3px;
|
||||
}
|
||||
|
||||
#panelRight .window-controls-box:last-child .window-button:last-child {
|
||||
padding-right: 3px;
|
||||
}
|
||||
|
||||
#panel .window-controls-box .icon {
|
||||
background-color: transparent;
|
||||
border-radius: 0;
|
||||
box-shadow: none;
|
||||
border: 0;
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
<svg height="19" width="19" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<linearGradient id="a" gradientUnits="userSpaceOnUse" x1="-16.999985" x2="-2.000025" y1="9.50001" y2="9.50001">
|
||||
<stop offset="0" stop-color="#ec6e44"/>
|
||||
<stop offset="1" stop-color="#e76b41"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="b" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" stop-color="#fff"/>
|
||||
<stop offset="1"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="c" gradientTransform="matrix(0 -1 1 0 .00001 -1053.36223)" x1="-1070.3622" x2="-1055.3622" xlink:href="#b" y1="8.999996" y2="8.999996"/>
|
||||
<linearGradient id="d" gradientTransform="matrix(0 -1.0357118 1.0357118 0 -.339252 -1091.3189)" x1="-1070.1036" x2="-1055.6208" xlink:href="#b" y1="9.499995" y2="9.499995"/>
|
||||
<circle cx="9.500002" cy="9.499983" fill="#383734" r="8.5"/>
|
||||
<circle cx="-9.499992" cy="9.500005" fill="url(#a)" r="7.49998" transform="rotate(-90)"/>
|
||||
<path d="m2.00001 9.4991c0 4.1362 3.363788 7.5 7.5 7.5s7.5-3.3638 7.5-7.5-3.363788-7.5-7.5-7.5-7.5 3.3638-7.5 7.5zm1 0c0-3.5957 2.9042281-6.5 6.5-6.5 3.595772 0 6.5 2.9043 6.5 6.5 0 3.5958-2.904228 6.5-6.5 6.5-3.5957719 0-6.5-2.9042-6.5-6.5z" fill="url(#c)" opacity=".05"/>
|
||||
<path d="m2.00001 9.4991c0 4.1392 3.3608366 7.5 7.5 7.5 4.139163 0 7.5-3.3608 7.5-7.5 0-4.1391-3.360837-7.5-7.5-7.5-4.1391634 0-7.5 3.3609-7.5 7.5zm.5 0c0-3.8689 3.1310567-7 7-7 3.868943 0 7 3.1311 7 7 0 3.869-3.131057 7-7 7-3.8689433 0-7-3.131-7-7z" fill="url(#d)" opacity=".05"/>
|
||||
<g fill="#32312e">
|
||||
<path d="m11.8005 6.49328-.35352.35351-4.59961 4.59961-.35351.35352.70703.70703.35352-.35352 4.59961-4.5996.35351-.35352z"/>
|
||||
<path d="m7.20089 6.49328-.70703.70703.35351.35352 4.59961 4.5996.35352.35352.70703-.70703-.35351-.35352-4.59961-4.59961z"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 1.8 KiB |
|
@ -0,0 +1,22 @@
|
|||
<svg height="19" width="19" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<linearGradient id="a" gradientUnits="userSpaceOnUse" x1="-16.999985" x2="-2.000025" y1="9.5" y2="9.5">
|
||||
<stop offset="0" stop-color="#e24f1b"/>
|
||||
<stop offset=".50001228" stop-color="#f17750"/>
|
||||
<stop offset="1" stop-color="#fba992"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="b" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" stop-color="#fff"/>
|
||||
<stop offset="1" stop-color="#fff" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="c" gradientTransform="matrix(0 1 1 0 .00001 1072.3622)" x1="-1070.3622" x2="-1055.3622" xlink:href="#b" y1="9.499995" y2="9.499995"/>
|
||||
<linearGradient id="d" gradientTransform="matrix(0 1.0357118 1.0357118 0 -.339252 1110.3189)" x1="-1070.3622" x2="-1055.3622" xlink:href="#b" y1="9.499995" y2="9.499995"/>
|
||||
<circle cx="9.500002" cy="9.499983" fill="#383734" r="8.5"/>
|
||||
<circle cx="-9.499983" cy="9.499995" fill="url(#a)" r="7.49998" transform="rotate(-90)"/>
|
||||
<path d="m2.00001 9.4991c0-4.1362 3.363788-7.5 7.5-7.5s7.5 3.3638 7.5 7.5-3.363788 7.5-7.5 7.5-7.5-3.3638-7.5-7.5zm1 0c0 3.5958 2.9042281 6.5 6.5 6.5 3.595772 0 6.5-2.9042 6.5-6.5 0-3.5957-2.904228-6.5-6.5-6.5-3.5957719 0-6.5 2.9043-6.5 6.5z" fill="url(#c)" opacity=".07"/>
|
||||
<path d="m2.00001 9.4991c0-4.1391 3.3608366-7.5 7.5-7.5 4.139163 0 7.5 3.3609 7.5 7.5 0 4.1392-3.360837 7.5-7.5 7.5-4.1391634 0-7.5-3.3608-7.5-7.5zm.5 0c0 3.869 3.1310567 7 7 7 3.868943 0 7-3.131 7-7 0-3.8689-3.131057-7-7-7-3.8689433 0-7 3.1311-7 7z" fill="url(#d)" opacity=".07"/>
|
||||
<path d="m7.19922 7.49334-.70703.707.35351.3535 1.94727 1.9473-1.94727 1.9453-.35351.3535.70703.707.35352-.3535 1.94726-1.9472 1.94727 1.9472.35351.3535.70703-.707-.35351-.3535-1.94727-1.9453 1.94727-1.9473.35351-.3535-.70703-.707-.35351.3535-1.94727 1.9472-1.94726-1.9472z" fill="#fff" opacity=".25"/>
|
||||
<g fill="#32312e">
|
||||
<path d="m11.8005 6.49328-.35352.35351-4.59961 4.59961-.35351.35352.70703.70703.35352-.35352 4.59961-4.5996.35351-.35352z"/>
|
||||
<path d="m7.20089 6.49328-.70703.70703.35351.35352 4.59961 4.5996.35352.35352.70703-.70703-.35351-.35352-4.59961-4.59961z"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 2.1 KiB |
|
@ -0,0 +1,22 @@
|
|||
<svg height="19" width="19" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<linearGradient id="a" gradientUnits="userSpaceOnUse" x1="-16.999985" x2="-2.000025" y1="9.5" y2="9.5">
|
||||
<stop offset="0" stop-color="#de4c19"/>
|
||||
<stop offset=".50001228" stop-color="#e55e30"/>
|
||||
<stop offset="1" stop-color="#f58d6e"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="b" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" stop-color="#fff"/>
|
||||
<stop offset="1" stop-color="#fff" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="c" gradientTransform="matrix(0 1 1 0 0 1072.3622)" x1="-1070.3622" x2="-1055.3622" xlink:href="#b" y1="9.499995" y2="9.499995"/>
|
||||
<linearGradient id="d" gradientTransform="matrix(0 1.0357118 1.0357118 0 -.339262 1110.3189)" x1="-1070.3622" x2="-1055.3622" xlink:href="#b" y1="9.499995" y2="9.499995"/>
|
||||
<circle cx="9.499992" cy="9.499983" fill="#383734" r="8.5"/>
|
||||
<circle cx="-9.499983" cy="9.499995" fill="url(#a)" r="7.49998" transform="rotate(-90)"/>
|
||||
<path d="m2 9.4991c0-4.1362 3.363788-7.5 7.5-7.5s7.5 3.3638 7.5 7.5-3.363788 7.5-7.5 7.5-7.5-3.3638-7.5-7.5zm1 0c0 3.5958 2.9042281 6.5 6.5 6.5 3.595772 0 6.5-2.9042 6.5-6.5 0-3.5957-2.904228-6.5-6.5-6.5-3.5957719 0-6.5 2.9043-6.5 6.5z" fill="url(#c)" opacity=".07"/>
|
||||
<path d="m2 9.4991c0-4.1391 3.3608366-7.5 7.5-7.5 4.139163 0 7.5 3.3609 7.5 7.5 0 4.1392-3.360837 7.5-7.5 7.5-4.1391634 0-7.5-3.3608-7.5-7.5zm.5 0c0 3.869 3.1310567 7 7 7 3.868943 0 7-3.131 7-7 0-3.8689-3.131057-7-7-7-3.8689433 0-7 3.1311-7 7z" fill="url(#d)" opacity=".07"/>
|
||||
<path d="m7.19921 7.49334-.70703.707.35352.3535 1.94726 1.9473-1.94726 1.9453-.35352.3535.70703.707.35352-.3535 1.94727-1.9472 1.94726 1.9472.35352.3535.70703-.707-.35352-.3535-1.94726-1.9453 1.94726-1.9473.35352-.3535-.70703-.707-.35352.3535-1.94726 1.9472-1.94727-1.9472z" fill="#fff" opacity=".25"/>
|
||||
<g fill="#32312e">
|
||||
<path d="m11.80051 6.49328-.35352.35351-4.59961 4.59961-.35351.35352.70703.70703.35352-.35352 4.59961-4.5996.35351-.35352z"/>
|
||||
<path d="m7.2009 6.49328-.70703.70703.35351.35352 4.59961 4.5996.35352.35352.70703-.70703-.35351-.35352-4.59961-4.59961z"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 2.1 KiB |
|
@ -0,0 +1,17 @@
|
|||
<svg height="19" width="19" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<linearGradient id="a" gradientUnits="userSpaceOnUse" x1="-16.999985" x2="-2.000025" y1="9.5" y2="9.5">
|
||||
<stop offset="0" stop-color="#77766f"/>
|
||||
<stop offset="1" stop-color="#74736c"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="b" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" stop-color="#fff"/>
|
||||
<stop offset="1"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="c" gradientTransform="matrix(0 -1 1 0 .00001 -1053.36223)" x1="-1070.3622" x2="-1055.3622" xlink:href="#b" y1="8.999996" y2="8.999996"/>
|
||||
<linearGradient id="d" gradientTransform="matrix(0 -1.0357118 1.0357118 0 -.339252 -1091.3189)" x1="-1070.1036" x2="-1055.6208" xlink:href="#b" y1="9.499995" y2="9.499995"/>
|
||||
<circle cx="9.500002" cy="9.499983" fill="#383734" r="8.5"/>
|
||||
<circle cx="-9.499983" cy="9.499995" fill="url(#a)" r="7.49998" transform="rotate(-90)"/>
|
||||
<path d="m2.00001 9.4991c0 4.1362 3.363788 7.5 7.5 7.5s7.5-3.3638 7.5-7.5-3.363788-7.5-7.5-7.5-7.5 3.3638-7.5 7.5zm1 0c0-3.5957 2.9042281-6.5 6.5-6.5 3.595772 0 6.5 2.9043 6.5 6.5 0 3.5958-2.904228 6.5-6.5 6.5-3.5957719 0-6.5-2.9042-6.5-6.5z" fill="url(#c)" opacity=".05"/>
|
||||
<path d="m2.00001 9.4991c0 4.1392 3.3608366 7.5 7.5 7.5 4.139163 0 7.5-3.3608 7.5-7.5 0-4.1391-3.360837-7.5-7.5-7.5-4.1391634 0-7.5 3.3609-7.5 7.5zm.5 0c0-3.8689 3.1310567-7 7-7 3.868943 0 7 3.1311 7 7 0 3.869-3.131057 7-7 7-3.8689433 0-7-3.131-7-7z" fill="url(#d)" opacity=".05"/>
|
||||
<path d="m5.99972 5.99914v.5 6.5h7v-7zm1 1h5v5h-5z" fill="#3d3c37"/>
|
||||
</svg>
|
After Width: | Height: | Size: 1.6 KiB |
|
@ -0,0 +1,19 @@
|
|||
<svg height="19" width="19" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<linearGradient id="a" gradientUnits="userSpaceOnUse" x1="-16.999985" x2="-2.000025" y1="9.5" y2="9.5">
|
||||
<stop offset="0" stop-color="#969696"/>
|
||||
<stop offset=".50001228" stop-color="#bdbdbd"/>
|
||||
<stop offset="1" stop-color="#cacaca"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="b" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" stop-color="#fff"/>
|
||||
<stop offset="1" stop-color="#fff" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="c" gradientTransform="matrix(0 1 1 0 .00001 1072.3622)" x1="-1070.3622" x2="-1055.3622" xlink:href="#b" y1="9.499995" y2="9.499995"/>
|
||||
<linearGradient id="d" gradientTransform="matrix(0 1.0357118 1.0357118 0 -.339252 1110.3189)" x1="-1070.3622" x2="-1055.3622" xlink:href="#b" y1="9.499995" y2="9.499995"/>
|
||||
<circle cx="9.500002" cy="9.499983" fill="#383734" r="8.5"/>
|
||||
<circle cx="-9.499983" cy="9.499995" fill="url(#a)" r="7.49998" transform="rotate(-90)"/>
|
||||
<path d="m2.00001 9.4991c0-4.1362 3.363788-7.5 7.5-7.5s7.5 3.3638 7.5 7.5-3.363788 7.5-7.5 7.5-7.5-3.3638-7.5-7.5zm1 0c0 3.5958 2.9042281 6.5 6.5 6.5 3.595772 0 6.5-2.9042 6.5-6.5 0-3.5957-2.904228-6.5-6.5-6.5-3.5957719 0-6.5 2.9043-6.5 6.5z" fill="url(#c)" opacity=".07"/>
|
||||
<path d="m2.00001 9.4991c0-4.1391 3.3608366-7.5 7.5-7.5 4.139163 0 7.5 3.3609 7.5 7.5 0 4.1392-3.360837 7.5-7.5 7.5-4.1391634 0-7.5-3.3608-7.5-7.5zm.5 0c0 3.869 3.1310567 7 7 7 3.868943 0 7-3.131 7-7 0-3.8689-3.131057-7-7-7-3.8689433 0-7 3.1311-7 7z" fill="url(#d)" opacity=".07"/>
|
||||
<path d="m5.99972 6.99914v.5 6.5h7v-7zm1 1h5v5h-5z" fill="#fff" opacity=".15"/>
|
||||
<path d="m5.99972 5.99914v.5 6.5h7v-7zm1 1h5v5h-5z" fill="#51504b"/>
|
||||
</svg>
|
After Width: | Height: | Size: 1.7 KiB |
|
@ -0,0 +1,19 @@
|
|||
<svg height="19" width="19" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<linearGradient id="a" gradientUnits="userSpaceOnUse" x1="-16.999985" x2="-2.000025" y1="9.5" y2="9.5">
|
||||
<stop offset="0" stop-color="#5a5955"/>
|
||||
<stop offset=".50001228" stop-color="#75746d"/>
|
||||
<stop offset="1" stop-color="#8e8d88"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="b" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" stop-color="#fff"/>
|
||||
<stop offset="1" stop-color="#fff" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="c" gradientTransform="matrix(0 1 1 0 .00001 1072.3622)" x1="-1070.3622" x2="-1055.3622" xlink:href="#b" y1="9.499995" y2="9.499995"/>
|
||||
<linearGradient id="d" gradientTransform="matrix(0 1.0357118 1.0357118 0 -.339252 1110.3189)" x1="-1070.3622" x2="-1055.3622" xlink:href="#b" y1="9.499995" y2="9.499995"/>
|
||||
<circle cx="9.500002" cy="9.499983" fill="#383734" r="8.5"/>
|
||||
<circle cx="-9.499983" cy="9.499995" fill="url(#a)" r="7.49998" transform="rotate(-90)"/>
|
||||
<path d="m2.00001 9.4991c0-4.1362 3.363788-7.5 7.5-7.5s7.5 3.3638 7.5 7.5-3.363788 7.5-7.5 7.5-7.5-3.3638-7.5-7.5zm1 0c0 3.5958 2.9042281 6.5 6.5 6.5 3.595772 0 6.5-2.9042 6.5-6.5 0-3.5957-2.904228-6.5-6.5-6.5-3.5957719 0-6.5 2.9043-6.5 6.5z" fill="url(#c)" opacity=".07"/>
|
||||
<path d="m2.00001 9.4991c0-4.1391 3.3608366-7.5 7.5-7.5 4.139163 0 7.5 3.3609 7.5 7.5 0 4.1392-3.360837 7.5-7.5 7.5-4.1391634 0-7.5-3.3608-7.5-7.5zm.5 0c0 3.869 3.1310567 7 7 7 3.868943 0 7-3.131 7-7 0-3.8689-3.131057-7-7-7-3.8689433 0-7 3.1311-7 7z" fill="url(#d)" opacity=".07"/>
|
||||
<path d="m5.99973 6.99914v.5 6.5h7v-7zm1 1h5v5h-5z" fill="#fff" opacity=".1"/>
|
||||
<path d="m5.99973 5.99914v.5 6.5h7v-7zm1 1h5v5h-5z" fill="#3d3c37"/>
|
||||
</svg>
|
After Width: | Height: | Size: 1.7 KiB |
|
@ -0,0 +1,17 @@
|
|||
<svg height="19" width="19" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<linearGradient id="a" gradientUnits="userSpaceOnUse" x1="-16.999985" x2="-2.000025" y1="9.50001" y2="9.50001">
|
||||
<stop offset="0" stop-color="#77766f"/>
|
||||
<stop offset="1" stop-color="#74736c"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="b" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" stop-color="#fff"/>
|
||||
<stop offset="1"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="c" gradientTransform="matrix(0 -1 1 0 .00001 -1053.36223)" x1="-1070.3622" x2="-1055.3622" xlink:href="#b" y1="8.999996" y2="8.999996"/>
|
||||
<linearGradient id="d" gradientTransform="matrix(0 -1.0357118 1.0357118 0 -.339252 -1091.3189)" x1="-1070.1036" x2="-1055.6208" xlink:href="#b" y1="9.499995" y2="9.499995"/>
|
||||
<circle cx="9.500002" cy="9.499983" fill="#383734" r="8.5"/>
|
||||
<circle cx="-9.499992" cy="9.500005" fill="url(#a)" r="7.49998" transform="rotate(-90)"/>
|
||||
<path d="m2.00001 9.4991c0 4.1362 3.363788 7.5 7.5 7.5s7.5-3.3638 7.5-7.5-3.363788-7.5-7.5-7.5-7.5 3.3638-7.5 7.5zm1 0c0-3.5957 2.9042281-6.5 6.5-6.5 3.595772 0 6.5 2.9043 6.5 6.5 0 3.5958-2.904228 6.5-6.5 6.5-3.5957719 0-6.5-2.9042-6.5-6.5z" fill="url(#c)" opacity=".05"/>
|
||||
<path d="m2.00001 9.4991c0 4.1392 3.3608366 7.5 7.5 7.5 4.139163 0 7.5-3.3608 7.5-7.5 0-4.1391-3.360837-7.5-7.5-7.5-4.1391634 0-7.5 3.3609-7.5 7.5zm.5 0c0-3.8689 3.1310567-7 7-7 3.868943 0 7 3.1311 7 7 0 3.869-3.131057 7-7 7-3.8689433 0-7-3.131-7-7z" fill="url(#d)" opacity=".05"/>
|
||||
<path d="m6.00002 8.99999h7v1h-7z" fill="#3d3c37"/>
|
||||
</svg>
|
After Width: | Height: | Size: 1.5 KiB |
|
@ -0,0 +1,19 @@
|
|||
<svg height="19" width="19" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<linearGradient id="a" gradientUnits="userSpaceOnUse" x1="-16.999985" x2="-2.000025" y1="9.50001" y2="9.50001">
|
||||
<stop offset="0" stop-color="#969696"/>
|
||||
<stop offset=".50001228" stop-color="#bdbdbd"/>
|
||||
<stop offset="1" stop-color="#cacaca"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="b" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" stop-color="#fff"/>
|
||||
<stop offset="1" stop-color="#fff" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="c" gradientTransform="matrix(0 1 1 0 .00001 1072.3622)" x1="-1070.3622" x2="-1055.3622" xlink:href="#b" y1="9.499995" y2="9.499995"/>
|
||||
<linearGradient id="d" gradientTransform="matrix(0 1.0357118 1.0357118 0 -.339252 1110.3189)" x1="-1070.3622" x2="-1055.3622" xlink:href="#b" y1="9.499995" y2="9.499995"/>
|
||||
<circle cx="9.500002" cy="9.499983" fill="#383734" r="8.5"/>
|
||||
<circle cx="-9.499992" cy="9.500005" fill="url(#a)" r="7.49998" transform="rotate(-90)"/>
|
||||
<path d="m2.00001 9.4991c0-4.1362 3.363788-7.5 7.5-7.5s7.5 3.3638 7.5 7.5-3.363788 7.5-7.5 7.5-7.5-3.3638-7.5-7.5zm1 0c0 3.5958 2.9042281 6.5 6.5 6.5 3.595772 0 6.5-2.9042 6.5-6.5 0-3.5957-2.904228-6.5-6.5-6.5-3.5957719 0-6.5 2.9043-6.5 6.5z" fill="url(#c)" opacity=".07"/>
|
||||
<path d="m2.00001 9.4991c0-4.1391 3.3608366-7.5 7.5-7.5 4.139163 0 7.5 3.3609 7.5 7.5 0 4.1392-3.360837 7.5-7.5 7.5-4.1391634 0-7.5-3.3608-7.5-7.5zm.5 0c0 3.869 3.1310567 7 7 7 3.868943 0 7-3.131 7-7 0-3.8689-3.131057-7-7-7-3.8689433 0-7 3.1311-7 7z" fill="url(#d)" opacity=".07"/>
|
||||
<path d="m5.99999 9.00005h7v1h-7z" fill="#51504b"/>
|
||||
<path d="m5.99999 10.00005h7v1h-7z" fill="#fff" opacity=".15"/>
|
||||
</svg>
|
After Width: | Height: | Size: 1.7 KiB |
|
@ -0,0 +1,19 @@
|
|||
<svg height="19" width="19" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<linearGradient id="a" gradientUnits="userSpaceOnUse" x1="-16.999985" x2="-2.000025" y1="9.5" y2="9.5">
|
||||
<stop offset="0" stop-color="#5a5955"/>
|
||||
<stop offset=".50001228" stop-color="#75746d"/>
|
||||
<stop offset="1" stop-color="#8e8d88"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="b" gradientTransform="matrix(0 1 1 0 .00001 1072.3622)" x1="-1070.3622" x2="-1055.3622" xlink:href="#d" y1="9.499995" y2="9.499995"/>
|
||||
<linearGradient id="c" gradientTransform="matrix(0 1.0357118 1.0357118 0 -.339252 1110.3189)" x1="-1070.3622" x2="-1055.3622" xlink:href="#d" y1="9.499995" y2="9.499995"/>
|
||||
<linearGradient id="d" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" stop-color="#fff"/>
|
||||
<stop offset="1" stop-color="#fff" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
<circle cx="9.500002" cy="9.499983" fill="#383734" r="8.5"/>
|
||||
<circle cx="-9.499983" cy="9.499995" fill="url(#a)" r="7.49998" transform="rotate(-90)"/>
|
||||
<path d="m2.00001 9.4991c0-4.1362 3.363788-7.5 7.5-7.5s7.5 3.3638 7.5 7.5-3.363788 7.5-7.5 7.5-7.5-3.3638-7.5-7.5zm1 0c0 3.5958 2.9042281 6.5 6.5 6.5 3.595772 0 6.5-2.9042 6.5-6.5 0-3.5957-2.904228-6.5-6.5-6.5-3.5957719 0-6.5 2.9043-6.5 6.5z" fill="url(#b)" opacity=".07"/>
|
||||
<path d="m2.00001 9.4991c0-4.1391 3.3608366-7.5 7.5-7.5 4.139163 0 7.5 3.3609 7.5 7.5 0 4.1392-3.360837 7.5-7.5 7.5-4.1391634 0-7.5-3.3608-7.5-7.5zm.5 0c0 3.869 3.1310567 7 7 7 3.868943 0 7-3.131 7-7 0-3.8689-3.131057-7-7-7-3.8689433 0-7 3.1311-7 7z" fill="url(#c)" opacity=".07"/>
|
||||
<path d="m6 8.99999h7v1h-7z" fill="#3d3c37"/>
|
||||
<path d="m6 9.99999h7v1h-7z" fill="#fff" opacity=".1"/>
|
||||
</svg>
|
After Width: | Height: | Size: 1.7 KiB |
|
@ -0,0 +1,40 @@
|
|||
.window-button .icon {
|
||||
width: 19px;
|
||||
height: 19px;
|
||||
}
|
||||
|
||||
.close .icon {
|
||||
background-image: url("close.svg");
|
||||
}
|
||||
|
||||
.close:hover .icon {
|
||||
background-image: url("close-hover.svg");
|
||||
}
|
||||
|
||||
.close:active .icon {
|
||||
background-image: url("close-active.svg");
|
||||
}
|
||||
|
||||
.minimize .icon {
|
||||
background-image: url("minimize.svg");
|
||||
}
|
||||
|
||||
.minimize:hover .icon {
|
||||
background-image: url("minimize-hover.svg");
|
||||
}
|
||||
|
||||
.minimize:active .icon {
|
||||
background-image: url("minimize-active.svg");
|
||||
}
|
||||
|
||||
.maximize .icon {
|
||||
background-image: url("maximize.svg");
|
||||
}
|
||||
|
||||
.maximize:hover .icon {
|
||||
background-image: url("maximize-hover.svg");
|
||||
}
|
||||
|
||||
.maximize:active .icon {
|
||||
background-image: url("maximize-active.svg");
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
<svg height="24" width="24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m12 4.99999a7 7 0 0 0 -7 7 7 7 0 0 0 7 7 7 7 0 0 0 7-7 7 7 0 0 0 -7-7zm-3 3.92188h.75c.008-.0001.0156-.00035.0234 0 .19121.008.3824.0964.51562.23437l1.71094 1.71094 1.73438-1.71094c.19921-.17287.335-.22913.51562-.23437h.75v.75c0 .21485-.0258.41298-.1875.5625l-1.71094 1.71093 1.6875 1.6875c.14114.14113.21093.34009.21094.53907v.75h-.75c-.19898-.00001-.39794-.0698-.53906-.21094l-1.7109-1.71094-1.71094 1.71094c-.14112.14114-.34009.21094-.53906.21094h-.75v-.75c0-.19897.0698-.39794.21094-.53907l1.71094-1.6875-1.71094-1.71093c-.15806-.14598-.22737-.35194-.21094-.5625z" fill="#be3841"/>
|
||||
</svg>
|
After Width: | Height: | Size: 668 B |
|
@ -0,0 +1,3 @@
|
|||
<svg height="24" width="24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m12 5a7 7 0 0 0 -7 7 7 7 0 0 0 7 7 7 7 0 0 0 7-7 7 7 0 0 0 -7-7zm-3 3.921875h.75c.008-.00009.0156-.000345.0234 0 .19121.0084.3824.09643.51562.234375l1.71098 1.710938 1.73438-1.710938c.19921-.172875.335-.229125.51562-.234375h.75v.75c0 .214853-.0258.412987-.1875.5625l-1.71094 1.710937 1.6875 1.687498c.14114.14113.21093.34009.21094.53907v.75h-.75c-.19898-.00001-.39794-.0698-.53906-.21094l-1.71094-1.71094-1.71094 1.71094c-.14112.14114-.34009.21094-.53906.21094h-.75v-.75c0-.19897.0698-.39794.21094-.53907l1.71094-1.687498-1.71094-1.710937c-.15806-.145972-.22737-.351937-.21094-.5625z" fill="#d7787d"/>
|
||||
</svg>
|
After Width: | Height: | Size: 684 B |
|
@ -0,0 +1,3 @@
|
|||
<svg height="24" width="24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m12.00001 5a7 7 0 0 0 -7 7 7 7 0 0 0 7 7 7 7 0 0 0 7-7 7 7 0 0 0 -7-7zm-3 3.921875h.75c.008-.00009.0156-.000345.0234 0 .19121.0084.3824.09643.51562.234375l1.71098 1.710938 1.73438-1.710938c.19921-.172875.335-.229125.51562-.234375h.75v.75c0 .214853-.0258.412987-.1875.5625l-1.71094 1.710937 1.6875 1.6875c.14114.141128.21093.340088.21094.539063v.75h-.75c-.19898-.000008-.39794-.06982-.53906-.210937l-1.71094-1.710938-1.71094 1.710938c-.14112.141142-.34009.210937-.53906.210937h-.75v-.75c0-.198967.0698-.397935.21094-.539063l1.71094-1.6875-1.71094-1.710937c-.15806-.145972-.22737-.351937-.21094-.5625z" fill="#cc575d"/>
|
||||
</svg>
|
After Width: | Height: | Size: 700 B |
|
@ -0,0 +1,7 @@
|
|||
<svg height="24" width="24" xmlns="http://www.w3.org/2000/svg">
|
||||
<ellipse cx="12" cy="11.99998" fill="#5f697f" opacity=".45" rx="6" ry="6.000001"/>
|
||||
<path d="m12 4.99998a7 7 0 0 0 -7 7 7 7 0 0 0 7 7 7 7 0 0 0 7-7 7 7 0 0 0 -7-7zm0 1a6 6 0 0 1 6 6 6 6 0 0 1 -6 6 6 6 0 0 1 -6-6 6 6 0 0 1 6-6z" fill="#15171c" opacity=".37"/>
|
||||
<path d="m10.799505 8.99998h3.381737c.450297 0 .816227.36847.818758.8188v3.3817zm2.407413 6.00692h-3.395078c-.450346 0-.818758-.36842-.818758-.81875v-3.39509z" fill="#c4c7cc"/>
|
||||
<circle cx="11.99999" cy="11.99998" fill="#5294e2" r="7"/>
|
||||
<path d="m10.799495 8.99998h3.381737c.450297 0 .816227.36847.818758.8188v3.3817zm2.407413 6.00692h-3.395078c-.450346 0-.818758-.36842-.818758-.81875v-3.39509z" fill="#fff"/>
|
||||
</svg>
|
After Width: | Height: | Size: 749 B |
|
@ -0,0 +1,5 @@
|
|||
<svg height="24" width="24" xmlns="http://www.w3.org/2000/svg">
|
||||
<ellipse cx="12" cy="11.99998" fill="#5f697f" opacity=".45" rx="6" ry="6.000001"/>
|
||||
<path d="m12 4.99998a7 7 0 0 0 -7 7 7 7 0 0 0 7 7 7 7 0 0 0 7-7 7 7 0 0 0 -7-7zm0 1a6 6 0 0 1 6 6 6 6 0 0 1 -6 6 6 6 0 0 1 -6-6 6 6 0 0 1 6-6z" fill="#15171c" opacity=".37"/>
|
||||
<path d="m10.799505 8.99998h3.381737c.450297 0 .816227.36847.818758.8188v3.3817zm2.407413 6.00692h-3.395078c-.450346 0-.818758-.36842-.818758-.81875v-3.39509z" fill="#c4c7cc"/>
|
||||
</svg>
|
After Width: | Height: | Size: 512 B |
|
@ -0,0 +1,3 @@
|
|||
<svg height="24" width="24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m10.79948 8.99998h3.3818c.4503 0 .8162.36847.8187.8188v3.3817zm2.4074 6.00692h-3.395c-.4504 0-.8188-.36842-.8188-.81875v-3.39509z" fill="#b9bcc2" opacity=".7"/>
|
||||
</svg>
|
After Width: | Height: | Size: 243 B |
|
@ -0,0 +1,4 @@
|
|||
<svg height="24" width="24" xmlns="http://www.w3.org/2000/svg">
|
||||
<circle cx="11.99999" cy="11.99998" fill="#5294e2" r="7"/>
|
||||
<path d="m8.99999 10.99998v2h6v-2z" fill="#fff"/>
|
||||
</svg>
|
After Width: | Height: | Size: 184 B |
|
@ -0,0 +1,5 @@
|
|||
<svg height="24" width="24" xmlns="http://www.w3.org/2000/svg">
|
||||
<ellipse cx="12" cy="11.99998" fill="#5f697f" opacity=".45" rx="6" ry="6.000001"/>
|
||||
<path d="m12 4.99998a7 7 0 0 0 -7 7 7 7 0 0 0 7 7 7 7 0 0 0 7-7 7 7 0 0 0 -7-7zm0 1a6 6 0 0 1 6 6 6 6 0 0 1 -6 6 6 6 0 0 1 -6-6 6 6 0 0 1 6-6z" fill="#15171c" opacity=".37"/>
|
||||
<path d="m9 10.99998v2h6v-2z" fill="#c4c7cc"/>
|
||||
</svg>
|
After Width: | Height: | Size: 382 B |
|
@ -0,0 +1,3 @@
|
|||
<svg height="24" width="24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m8.99998 10.99998v2h6v-2z" fill="#b9bcc2" opacity=".7"/>
|
||||
</svg>
|
After Width: | Height: | Size: 139 B |
|
@ -0,0 +1,40 @@
|
|||
.window-button .icon {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
}
|
||||
|
||||
.close .icon {
|
||||
background-image: url("close.svg");
|
||||
}
|
||||
|
||||
.close:hover .icon {
|
||||
background-image: url("close-hover.svg");
|
||||
}
|
||||
|
||||
.close:active .icon {
|
||||
background-image: url("close-active.svg");
|
||||
}
|
||||
|
||||
.minimize .icon {
|
||||
background-image: url("minimize.svg");
|
||||
}
|
||||
|
||||
.minimize:hover .icon {
|
||||
background-image: url("minimize-hover.svg");
|
||||
}
|
||||
|
||||
.minimize:active .icon {
|
||||
background-image: url("minimize-active.svg");
|
||||
}
|
||||
|
||||
.maximize .icon {
|
||||
background-image: url("maximize.svg");
|
||||
}
|
||||
|
||||
.maximize:hover .icon {
|
||||
background-image: url("maximize-hover.svg");
|
||||
}
|
||||
|
||||
.maximize:active .icon {
|
||||
background-image: url("maximize-active.svg");
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
<svg height="24" width="24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m12 4.99999a7 7 0 0 0 -7 7 7 7 0 0 0 7 7 7 7 0 0 0 7-7 7 7 0 0 0 -7-7zm-3 3.92188h.75c.008-.0001.0156-.00035.0234 0 .19121.008.3824.0964.51562.23437l1.71094 1.71094 1.73438-1.71094c.19921-.17287.335-.22913.51562-.23437h.75v.75c0 .21485-.0258.41298-.1875.5625l-1.71094 1.71093 1.6875 1.6875c.14114.14113.21093.34009.21094.53907v.75h-.75c-.19898-.00001-.39794-.0698-.53906-.21094l-1.7109-1.71094-1.71094 1.71094c-.14112.14114-.34009.21094-.53906.21094h-.75v-.75c0-.19897.0698-.39794.21094-.53907l1.71094-1.6875-1.71094-1.71093c-.15806-.14598-.22737-.35194-.21094-.5625z" fill="#f13039"/>
|
||||
</svg>
|
After Width: | Height: | Size: 668 B |
|
@ -0,0 +1,3 @@
|
|||
<svg height="24" width="24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m12 5a7 7 0 0 0 -7 7 7 7 0 0 0 7 7 7 7 0 0 0 7-7 7 7 0 0 0 -7-7zm-3 3.921875h.75c.008-.00009.0156-.000345.0234 0 .19121.0084.3824.09643.51562.234375l1.71098 1.710938 1.73438-1.710938c.19921-.172875.335-.229125.51562-.234375h.75v.75c0 .214853-.0258.412987-.1875.5625l-1.71094 1.710937 1.6875 1.687498c.14114.14113.21093.34009.21094.53907v.75h-.75c-.19898-.00001-.39794-.0698-.53906-.21094l-1.71094-1.71094-1.71094 1.71094c-.14112.14114-.34009.21094-.53906.21094h-.75v-.75c0-.19897.0698-.39794.21094-.53907l1.71094-1.687498-1.71094-1.710937c-.15806-.145972-.22737-.351937-.21094-.5625z" fill="#f68086"/>
|
||||
</svg>
|
After Width: | Height: | Size: 684 B |
|
@ -0,0 +1,3 @@
|
|||
<svg height="24" width="24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m12.00001 5a7 7 0 0 0 -7 7 7 7 0 0 0 7 7 7 7 0 0 0 7-7 7 7 0 0 0 -7-7zm-3 3.921875h.75c.008-.00009.0156-.000345.0234 0 .19121.0084.3824.09643.51562.234375l1.71098 1.710938 1.73438-1.710938c.19921-.172875.335-.229125.51562-.234375h.75v.75c0 .214853-.0258.412987-.1875.5625l-1.71094 1.710937 1.6875 1.6875c.14114.141128.21093.340088.21094.539063v.75h-.75c-.19898-.000008-.39794-.06982-.53906-.210937l-1.71094-1.710938-1.71094 1.710938c-.14112.141142-.34009.210937-.53906.210937h-.75v-.75c0-.198967.0698-.397935.21094-.539063l1.71094-1.6875-1.71094-1.710937c-.15806-.145972-.22737-.351937-.21094-.5625z" fill="#f46067"/>
|
||||
</svg>
|
After Width: | Height: | Size: 700 B |
|
@ -0,0 +1,7 @@
|
|||
<svg height="24" width="24" xmlns="http://www.w3.org/2000/svg">
|
||||
<ellipse cx="12" cy="11.99998" fill="#5f697f" opacity=".45" rx="6" ry="6.000001"/>
|
||||
<path d="m12 4.99998a7 7 0 0 0 -7 7 7 7 0 0 0 7 7 7 7 0 0 0 7-7 7 7 0 0 0 -7-7zm0 1a6 6 0 0 1 6 6 6 6 0 0 1 -6 6 6 6 0 0 1 -6-6 6 6 0 0 1 6-6z" fill="#15171c" opacity=".37"/>
|
||||
<path d="m10.799505 8.99998h3.381737c.450297 0 .816227.36847.818758.8188v3.3817zm2.407413 6.00692h-3.395078c-.450346 0-.818758-.36842-.818758-.81875v-3.39509z" fill="#c4c7cc"/>
|
||||
<circle cx="11.99999" cy="11.99998" fill="#5294e2" r="7"/>
|
||||
<path d="m10.799495 8.99998h3.381737c.450297 0 .816227.36847.818758.8188v3.3817zm2.407413 6.00692h-3.395078c-.450346 0-.818758-.36842-.818758-.81875v-3.39509z" fill="#fff"/>
|
||||
</svg>
|
After Width: | Height: | Size: 749 B |
|
@ -0,0 +1,5 @@
|
|||
<svg height="24" width="24" xmlns="http://www.w3.org/2000/svg">
|
||||
<ellipse cx="12" cy="11.99998" fill="#fff" opacity=".95" rx="6" ry="6.000001"/>
|
||||
<path d="m12 4.99998a7 7 0 0 0 -7 7 7 7 0 0 0 7 7 7 7 0 0 0 7-7 7 7 0 0 0 -7-7zm0 1a6 6 0 0 1 6 6 6 6 0 0 1 -6 6 6 6 0 0 1 -6-6 6 6 0 0 1 6-6z" fill="#525d76" opacity=".15"/>
|
||||
<path d="m10.799505 8.99998h3.381737c.450297 0 .816227.36847.818758.8188v3.3817zm2.407413 6.00692h-3.395078c-.450346 0-.818758-.36842-.818758-.81875v-3.39509z" fill="#7a7f8b"/>
|
||||
</svg>
|
After Width: | Height: | Size: 509 B |
|
@ -0,0 +1,3 @@
|
|||
<svg height="24" width="24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m10.7995 8.99998h3.3818c.4503 0 .8162.36847.8187.8188v3.3817zm2.4074 6.00692h-3.395c-.4504 0-.8188-.36842-.8188-.81875v-3.39509z" fill="#7a7f8b" opacity=".8"/>
|
||||
</svg>
|
After Width: | Height: | Size: 242 B |
|
@ -0,0 +1,4 @@
|
|||
<svg height="24" width="24" xmlns="http://www.w3.org/2000/svg">
|
||||
<circle cx="11.99999" cy="11.99998" fill="#5294e2" r="7"/>
|
||||
<path d="m8.99999 10.99998v2h6v-2z" fill="#fff"/>
|
||||
</svg>
|
After Width: | Height: | Size: 184 B |
|
@ -0,0 +1,5 @@
|
|||
<svg height="24" width="24" xmlns="http://www.w3.org/2000/svg">
|
||||
<ellipse cx="12" cy="11.99998" fill="#fff" opacity=".95" rx="6" ry="6.000001"/>
|
||||
<path d="m12 4.99998a7 7 0 0 0 -7 7 7 7 0 0 0 7 7 7 7 0 0 0 7-7 7 7 0 0 0 -7-7zm0 1a6 6 0 0 1 6 6 6 6 0 0 1 -6 6 6 6 0 0 1 -6-6 6 6 0 0 1 6-6z" fill="#525d76" opacity=".15"/>
|
||||
<path d="m9 10.99998v2h6v-2z" fill="#7a7f8b"/>
|
||||
</svg>
|
After Width: | Height: | Size: 379 B |
|
@ -0,0 +1,3 @@
|
|||
<svg height="24" width="24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m9 10.99998v2h6v-2z" fill="#7a7f8b" opacity=".8"/>
|
||||
</svg>
|
After Width: | Height: | Size: 133 B |
|
@ -0,0 +1,40 @@
|
|||
.window-button .icon {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
}
|
||||
|
||||
.close .icon {
|
||||
background-image: url("close.svg");
|
||||
}
|
||||
|
||||
.close:hover .icon {
|
||||
background-image: url("close-hover.svg");
|
||||
}
|
||||
|
||||
.close:active .icon {
|
||||
background-image: url("close-active.svg");
|
||||
}
|
||||
|
||||
.minimize .icon {
|
||||
background-image: url("minimize.svg");
|
||||
}
|
||||
|
||||
.minimize:hover .icon {
|
||||
background-image: url("minimize-hover.svg");
|
||||
}
|
||||
|
||||
.minimize:active .icon {
|
||||
background-image: url("minimize-active.svg");
|
||||
}
|
||||
|
||||
.maximize .icon {
|
||||
background-image: url("maximize.svg");
|
||||
}
|
||||
|
||||
.maximize:hover .icon {
|
||||
background-image: url("maximize-hover.svg");
|
||||
}
|
||||
|
||||
.maximize:active .icon {
|
||||
background-image: url("maximize-active.svg");
|
||||
}
|
|
@ -0,0 +1 @@
|
|||
<svg height="16" viewBox="0 0 4.2333333 4.2333332" width="16" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><linearGradient id="a" gradientUnits="userSpaceOnUse" x1="2.116667" x2="2.116667" y1="293.56042" y2="295.67709"><stop offset="0" stop-color="#a40"/><stop offset="1" stop-color="#a40"/></linearGradient><circle cx="2.116667" cy="294.88336" fill="url(#a)" r="2.116667" transform="translate(0 -292.76669)"/></svg>
|
After Width: | Height: | Size: 449 B |
|
@ -0,0 +1 @@
|
|||
<svg height="16" viewBox="0 0 4.2333333 4.2333332" width="16" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><linearGradient id="a" gradientUnits="userSpaceOnUse" x1="2.116667" x2="2.116667" y1="293.56042" y2="295.67709"><stop offset="0" stop-color="#a40"/><stop offset="1" stop-color="#d45500"/></linearGradient><circle cx="2.116667" cy="294.88336" fill="url(#a)" r="2.116667" transform="translate(0 -292.76669)"/></svg>
|
After Width: | Height: | Size: 452 B |
|
@ -0,0 +1 @@
|
|||
<svg height="16" viewBox="0 0 4.2333333 4.2333332" width="16" xmlns="http://www.w3.org/2000/svg"><circle cx="2.116667" cy="2.11667" fill="#a40" r="2.116667"/></svg>
|
After Width: | Height: | Size: 164 B |
|
@ -0,0 +1 @@
|
|||
<svg height="16" viewBox="0 0 4.2333333 4.2333332" width="16" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><linearGradient id="a" gradientUnits="userSpaceOnUse" x1="2.116667" x2="2.116667" y1="293.56042" y2="295.67709"><stop offset="0" stop-color="#d45500"/><stop offset="1" stop-color="#d45500"/></linearGradient><circle cx="2.116667" cy="294.88336" fill="url(#a)" r="2.116667" transform="translate(0 -292.76669)"/></svg>
|
After Width: | Height: | Size: 455 B |
|
@ -0,0 +1 @@
|
|||
<svg height="16" viewBox="0 0 4.2333333 4.2333332" width="16" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><linearGradient id="a" gradientUnits="userSpaceOnUse" x1="2.116667" x2="2.116667" y1="296.20627" y2="293.56042"><stop offset="0" stop-color="#dc6f26" stop-opacity=".706422"/><stop offset="1" stop-color="#dc6f26"/></linearGradient><circle cx="2.116667" cy="294.88336" fill="url(#a)" r="2.116667" transform="translate(0 -292.76669)"/></svg>
|
After Width: | Height: | Size: 478 B |
|
@ -0,0 +1 @@
|
|||
<svg height="16" viewBox="0 0 4.2333333 4.2333332" width="16" xmlns="http://www.w3.org/2000/svg"><circle cx="2.116667" cy="2.11667" fill="#dc6f26" r="2.116667"/></svg>
|
After Width: | Height: | Size: 167 B |
|
@ -0,0 +1 @@
|
|||
<svg height="16" viewBox="0 0 4.2333333 4.2333332" width="16" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><linearGradient id="a" gradientUnits="userSpaceOnUse" x1="2.116667" x2="2.116667" y1="293.82501" y2="296.20627"><stop offset="0" stop-color="#ff7f2a"/><stop offset="1" stop-color="#ff7f2a"/></linearGradient><circle cx="2.116667" cy="294.88336" fill="url(#a)" r="2.116667" transform="translate(0 -292.76669)"/></svg>
|
After Width: | Height: | Size: 455 B |
|
@ -0,0 +1 @@
|
|||
<svg height="16" viewBox="0 0 4.2333333 4.2333332" width="16" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><linearGradient id="a" gradientUnits="userSpaceOnUse" x1="2.116667" x2="2.116667" y1="296.20627" y2="293.56042"><stop offset="0" stop-color="#dc6f26" stop-opacity=".422018"/><stop offset="1" stop-color="#dc6f26" stop-opacity=".706422"/></linearGradient><circle cx="2.116667" cy="294.88336" fill="url(#a)" r="2.116667" transform="translate(0 -292.76669)"/></svg>
|
After Width: | Height: | Size: 501 B |
|
@ -0,0 +1 @@
|
|||
<svg height="16" viewBox="0 0 4.2333333 4.2333332" width="16" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><linearGradient id="a" gradientUnits="userSpaceOnUse" x1="2.116667" x2="2.116667" y1="296.20627" y2="293.56042"><stop offset="0" stop-color="#dc6f26" stop-opacity=".706422"/><stop offset="1" stop-color="#dc6f26" stop-opacity=".706422"/></linearGradient><circle cx="2.116667" cy="294.88336" fill="url(#a)" r="2.116667" transform="translate(0 -292.76669)"/></svg>
|
After Width: | Height: | Size: 501 B |
|
@ -0,0 +1,40 @@
|
|||
.window-button .icon {
|
||||
width: 14px;
|
||||
height: 14px;
|
||||
}
|
||||
|
||||
.close .icon {
|
||||
background-image: url("close.svg");
|
||||
}
|
||||
|
||||
.close:hover .icon {
|
||||
background-image: url("close-hover.svg");
|
||||
}
|
||||
|
||||
.close:active .icon {
|
||||
background-image: url("close-active.svg");
|
||||
}
|
||||
|
||||
.minimize .icon {
|
||||
background-image: url("minimize.svg");
|
||||
}
|
||||
|
||||
.minimize:hover .icon {
|
||||
background-image: url("minimize-hover.svg");
|
||||
}
|
||||
|
||||
.minimize:active .icon {
|
||||
background-image: url("minimize-active.svg");
|
||||
}
|
||||
|
||||
.maximize .icon {
|
||||
background-image: url("maximize.svg");
|
||||
}
|
||||
|
||||
.maximize:hover .icon {
|
||||
background-image: url("maximize-hover.svg");
|
||||
}
|
||||
|
||||
.maximize:active .icon {
|
||||
background-image: url("maximize-active.svg");
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m8 1c-3.8659932 0-7 3.1340068-7 7 0 3.865993 3.1340068 7 7 7 3.865993 0 7-3.134007 7-7 0-3.8659932-3.134007-7-7-7zm-2.9980469 4h.7734375c.1911381.0084.382455.096439.515625.234375l1.7109375 1.7109375 1.7324219-1.7109375c.1991407-.1728699.335074-.2291253.515625-.234375h.75v.75c0 .2148463-.02582.4129919-.1875.5625l-1.7109375 1.7109375 1.6874995 1.6875c.141085.141124.210933.3400935.210938.5390625v.75h-.75c-.198898-.000007-.397995-.06984-.5390625-.210938l-1.7089844-1.710937-1.7109375 1.710937c-.1410675.141138-.3401732.210938-.5390625.210938h-.75v-.75c-.0000022-.198962.06985-.3979385.2109375-.5390625l1.7109375-1.6875-1.7109375-1.7109375c-.1579944-.1459682-.2273635-.3519436-.2109375-.5625z" fill="#ef2929"/>
|
||||
</svg>
|
After Width: | Height: | Size: 792 B |
|
@ -0,0 +1,3 @@
|
|||
<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m8 1c-3.8659932 0-7 3.1340068-7 7 0 3.865993 3.1340068 7 7 7 3.865993 0 7-3.134007 7-7 0-3.8659932-3.134007-7-7-7zm-2.9980469 4h.7734375c.1911381.0084.382455.096439.515625.234375l1.7109375 1.7109375 1.7324219-1.7109375c.1991407-.1728699.335074-.2291253.515625-.234375h.75v.75c0 .2148463-.02582.4129919-.1875.5625l-1.7109375 1.7109375 1.6874995 1.6875c.141085.141124.210933.3400935.210938.5390625v.75h-.75c-.198898-.000007-.397995-.06984-.5390625-.210938l-1.7089844-1.710937-1.7109375 1.710937c-.1410675.141138-.3401732.210938-.5390625.210938h-.75v-.75c-.0000022-.198962.06985-.3979385.2109375-.5390625l1.7109375-1.6875-1.7109375-1.7109375c-.1579944-.1459682-.2273635-.3519436-.2109375-.5625z" fill="#e12929"/>
|
||||
</svg>
|
After Width: | Height: | Size: 792 B |
|
@ -0,0 +1,3 @@
|
|||
<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m8 1c-3.8659932 0-7 3.1340068-7 7 0 3.865993 3.1340068 7 7 7 3.865993 0 7-3.134007 7-7 0-3.8659932-3.134007-7-7-7zm-2.9980469 4h.7734375c.1911381.0084.382455.096439.515625.234375l1.7109375 1.7109375 1.7324219-1.7109375c.1991407-.1728699.335074-.2291253.515625-.234375h.75v.75c0 .2148463-.02582.4129919-.1875.5625l-1.7109375 1.7109375 1.6874995 1.6875c.141085.141124.210933.3400935.210938.5390625v.75h-.75c-.198898-.000007-.397995-.06984-.5390625-.210938l-1.7089844-1.710937-1.7109375 1.710937c-.1410675.141138-.3401732.210938-.5390625.210938h-.75v-.75c-.0000022-.198962.06985-.3979385.2109375-.5390625l1.7109375-1.6875-1.7109375-1.7109375c-.1579944-.1459682-.2273635-.3519436-.2109375-.5625z" fill="#cc1010"/>
|
||||
</svg>
|
After Width: | Height: | Size: 792 B |
|
@ -0,0 +1,3 @@
|
|||
<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m8 1c-3.8659932 0-7 3.1340068-7 7 0 3.865993 3.1340068 7 7 7 3.865993 0 7-3.134007 7-7 0-3.8659932-3.134007-7-7-7zm-2.1660156 4h4.3320316c.41743.00104.835984.4066744.833984.8339844v5.1660156h-6v-5.1660156c0-.42695.4170244-.8239844.8339844-.8339844zm1.1660156 2v2h2v-2z" fill="#fff"/>
|
||||
</svg>
|
After Width: | Height: | Size: 366 B |
|
@ -0,0 +1,3 @@
|
|||
<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m8 1c-3.8659932 0-7 3.1340068-7 7 0 3.865993 3.1340068 7 7 7 3.865993 0 7-3.134007 7-7 0-3.8659932-3.134007-7-7-7zm-2.1660156 4h4.3320316c.41743.00104.835984.4066744.833984.8339844v5.1660156h-6v-5.1660156c0-.42695.4170244-.8239844.8339844-.8339844zm1.1660156 2v2h2v-2z" fill="#efefef"/>
|
||||
</svg>
|
After Width: | Height: | Size: 369 B |
|
@ -0,0 +1,3 @@
|
|||
<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m8 1c-3.8659932 0-7 3.1340068-7 7 0 3.865993 3.1340068 7 7 7 3.865993 0 7-3.134007 7-7 0-3.8659932-3.134007-7-7-7zm-2.1660156 4h4.3320316c.41743.00104.835984.4066744.833984.8339844v5.1660156h-6v-5.1660156c0-.42695.4170244-.8239844.8339844-.8339844zm1.1660156 2v2h2v-2z" fill="#ccc"/>
|
||||
</svg>
|
After Width: | Height: | Size: 366 B |
|
@ -0,0 +1,3 @@
|
|||
<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m8 1a7 7 0 0 0 -7 7 7 7 0 0 0 7 7 7 7 0 0 0 7-7 7 7 0 0 0 -7-7zm-2 6h4c.554 0 1 .446 1 1s-.446 1-1 1h-4c-.554 0-1-.446-1-1s.446-1 1-1z" fill="#fff"/>
|
||||
</svg>
|
After Width: | Height: | Size: 232 B |
|
@ -0,0 +1,3 @@
|
|||
<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m8 1a7 7 0 0 0 -7 7 7 7 0 0 0 7 7 7 7 0 0 0 7-7 7 7 0 0 0 -7-7zm-2 6h4c.554 0 1 .446 1 1s-.446 1-1 1h-4c-.554 0-1-.446-1-1s.446-1 1-1z" fill="#efefef"/>
|
||||
</svg>
|
After Width: | Height: | Size: 235 B |
|
@ -0,0 +1,3 @@
|
|||
<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m8 1a7 7 0 0 0 -7 7 7 7 0 0 0 7 7 7 7 0 0 0 7-7 7 7 0 0 0 -7-7zm-2 6h4c.554 0 1 .446 1 1s-.446 1-1 1h-4c-.554 0-1-.446-1-1s.446-1 1-1z" fill="#ccc"/>
|
||||
</svg>
|
After Width: | Height: | Size: 232 B |
|
@ -0,0 +1,40 @@
|
|||
.window-button .icon {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
.close .icon {
|
||||
background-image: url("close.svg");
|
||||
}
|
||||
|
||||
.close:hover .icon {
|
||||
background-image: url("close-hover.svg");
|
||||
}
|
||||
|
||||
.close:active .icon {
|
||||
background-image: url("close-active.svg");
|
||||
}
|
||||
|
||||
.minimize .icon {
|
||||
background-image: url("minimize.svg");
|
||||
}
|
||||
|
||||
.minimize:hover .icon {
|
||||
background-image: url("minimize-hover.svg");
|
||||
}
|
||||
|
||||
.minimize:active .icon {
|
||||
background-image: url("minimize-active.svg");
|
||||
}
|
||||
|
||||
.maximize .icon {
|
||||
background-image: url("maximize.svg");
|
||||
}
|
||||
|
||||
.maximize:hover .icon {
|
||||
background-image: url("maximize-hover.svg");
|
||||
}
|
||||
|
||||
.maximize:active .icon {
|
||||
background-image: url("maximize-active.svg");
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m8 1c-3.8659932 0-7 3.1340068-7 7 0 3.865993 3.1340068 7 7 7 3.865993 0 7-3.134007 7-7 0-3.8659932-3.134007-7-7-7zm-2.9980469 4h.7734375c.1911381.0084.382455.096439.515625.234375l1.7109375 1.7109375 1.7324219-1.7109375c.1991407-.1728699.335074-.2291253.515625-.234375h.75v.75c0 .2148463-.02582.4129919-.1875.5625l-1.7109375 1.7109375 1.6874995 1.6875c.141085.141124.210933.3400935.210938.5390625v.75h-.75c-.198898-.000007-.397995-.06984-.5390625-.210938l-1.7089844-1.710937-1.7109375 1.710937c-.1410675.141138-.3401732.210938-.5390625.210938h-.75v-.75c-.0000022-.198962.06985-.3979385.2109375-.5390625l1.7109375-1.6875-1.7109375-1.7109375c-.1579944-.1459682-.2273635-.3519436-.2109375-.5625z" fill="#ef2929"/>
|
||||
</svg>
|
After Width: | Height: | Size: 792 B |
|
@ -0,0 +1,3 @@
|
|||
<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m8 1c-3.8659932 0-7 3.1340068-7 7 0 3.865993 3.1340068 7 7 7 3.865993 0 7-3.134007 7-7 0-3.8659932-3.134007-7-7-7zm-2.9980469 4h.7734375c.1911381.0084.382455.096439.515625.234375l1.7109375 1.7109375 1.7324219-1.7109375c.1991407-.1728699.335074-.2291253.515625-.234375h.75v.75c0 .2148463-.02582.4129919-.1875.5625l-1.7109375 1.7109375 1.6874995 1.6875c.141085.141124.210933.3400935.210938.5390625v.75h-.75c-.198898-.000007-.397995-.06984-.5390625-.210938l-1.7089844-1.710937-1.7109375 1.710937c-.1410675.141138-.3401732.210938-.5390625.210938h-.75v-.75c-.0000022-.198962.06985-.3979385.2109375-.5390625l1.7109375-1.6875-1.7109375-1.7109375c-.1579944-.1459682-.2273635-.3519436-.2109375-.5625z" fill="#e12929"/>
|
||||
</svg>
|
After Width: | Height: | Size: 792 B |
|
@ -0,0 +1,3 @@
|
|||
<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m8 1c-3.8659932 0-7 3.1340068-7 7 0 3.865993 3.1340068 7 7 7 3.865993 0 7-3.134007 7-7 0-3.8659932-3.134007-7-7-7zm-2.9980469 4h.7734375c.1911381.0084.382455.096439.515625.234375l1.7109375 1.7109375 1.7324219-1.7109375c.1991407-.1728699.335074-.2291253.515625-.234375h.75v.75c0 .2148463-.02582.4129919-.1875.5625l-1.7109375 1.7109375 1.6874995 1.6875c.141085.141124.210933.3400935.210938.5390625v.75h-.75c-.198898-.000007-.397995-.06984-.5390625-.210938l-1.7089844-1.710937-1.7109375 1.710937c-.1410675.141138-.3401732.210938-.5390625.210938h-.75v-.75c-.0000022-.198962.06985-.3979385.2109375-.5390625l1.7109375-1.6875-1.7109375-1.7109375c-.1579944-.1459682-.2273635-.3519436-.2109375-.5625z" fill="#cc1010"/>
|
||||
</svg>
|
After Width: | Height: | Size: 792 B |
|
@ -0,0 +1,3 @@
|
|||
<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m8 1c-3.8659932 0-7 3.1340068-7 7 0 3.865993 3.1340068 7 7 7 3.865993 0 7-3.134007 7-7 0-3.8659932-3.134007-7-7-7zm-2.1660156 4h4.3320316c.41743.00104.835984.4066744.833984.8339844v5.1660156h-6v-5.1660156c0-.42695.4170244-.8239844.8339844-.8339844zm1.1660156 2v2h2v-2z" fill="#4d585c"/>
|
||||
</svg>
|
After Width: | Height: | Size: 369 B |
|
@ -0,0 +1,3 @@
|
|||
<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m8 1c-3.8659932 0-7 3.1340068-7 7 0 3.865993 3.1340068 7 7 7 3.865993 0 7-3.134007 7-7 0-3.8659932-3.134007-7-7-7zm-2.1660156 4h4.3320316c.41743.00104.835984.4066744.833984.8339844v5.1660156h-6v-5.1660156c0-.42695.4170244-.8239844.8339844-.8339844zm1.1660156 2v2h2v-2z" fill="#454f52"/>
|
||||
</svg>
|
After Width: | Height: | Size: 369 B |
|
@ -0,0 +1,3 @@
|
|||
<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m8 1c-3.8659932 0-7 3.1340068-7 7 0 3.865993 3.1340068 7 7 7 3.865993 0 7-3.134007 7-7 0-3.8659932-3.134007-7-7-7zm-2.1660156 4h4.3320316c.41743.00104.835984.4066744.833984.8339844v5.1660156h-6v-5.1660156c0-.42695.4170244-.8239844.8339844-.8339844zm1.1660156 2v2h2v-2z" fill="#2e3436"/>
|
||||
</svg>
|
After Width: | Height: | Size: 369 B |
|
@ -0,0 +1,3 @@
|
|||
<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m8 1a7 7 0 0 0 -7 7 7 7 0 0 0 7 7 7 7 0 0 0 7-7 7 7 0 0 0 -7-7zm-2 6h4c.554 0 1 .446 1 1s-.446 1-1 1h-4c-.554 0-1-.446-1-1s.446-1 1-1z" fill="#4d585c"/>
|
||||
</svg>
|
After Width: | Height: | Size: 235 B |
|
@ -0,0 +1,3 @@
|
|||
<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m8 1a7 7 0 0 0 -7 7 7 7 0 0 0 7 7 7 7 0 0 0 7-7 7 7 0 0 0 -7-7zm-2 6h4c.554 0 1 .446 1 1s-.446 1-1 1h-4c-.554 0-1-.446-1-1s.446-1 1-1z" fill="#454f52"/>
|
||||
</svg>
|
After Width: | Height: | Size: 235 B |
|
@ -0,0 +1,3 @@
|
|||
<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m8 1a7 7 0 0 0 -7 7 7 7 0 0 0 7 7 7 7 0 0 0 7-7 7 7 0 0 0 -7-7zm-2 6h4c.554 0 1 .446 1 1s-.446 1-1 1h-4c-.554 0-1-.446-1-1s.446-1 1-1z" fill="#2e3436"/>
|
||||
</svg>
|
After Width: | Height: | Size: 235 B |
|
@ -0,0 +1,40 @@
|
|||
.window-button .icon {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
|
||||
.close .icon {
|
||||
background-image: url("close.svg");
|
||||
}
|
||||
|
||||
.close:hover .icon {
|
||||
background-image: url("close-hover.svg");
|
||||
}
|
||||
|
||||
.close:active .icon {
|
||||
background-image: url("close-active.svg");
|
||||
}
|
||||
|
||||
.minimize .icon {
|
||||
background-image: url("minimize.svg");
|
||||
}
|
||||
|
||||
.minimize:hover .icon {
|
||||
background-image: url("minimize-hover.svg");
|
||||
}
|
||||
|
||||
.minimize:active .icon {
|
||||
background-image: url("minimize-active.svg");
|
||||
}
|
||||
|
||||
.maximize .icon {
|
||||
background-image: url("maximize.svg");
|
||||
}
|
||||
|
||||
.maximize:hover .icon {
|
||||
background-image: url("maximize-hover.svg");
|
||||
}
|
||||
|
||||
.maximize:active .icon {
|
||||
background-image: url("maximize-active.svg");
|
||||
}
|
|
@ -0,0 +1,4 @@
|
|||
<svg fill="#fff" height="24" width="24" xmlns="http://www.w3.org/2000/svg">
|
||||
<circle cx="12" cy="12" opacity=".3" r="10"/>
|
||||
<path d="m8.41 7-1.41 1.41 3.59 3.59-3.59 3.59 1.41 1.41 3.59-3.59 3.59 3.59 1.41-1.41-3.59-3.59 3.59-3.59-1.41-1.41-3.59 3.59z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 264 B |
|
@ -0,0 +1,4 @@
|
|||
<svg fill="#fff" height="24" width="24" xmlns="http://www.w3.org/2000/svg">
|
||||
<circle cx="12" cy="12" opacity=".15" r="10"/>
|
||||
<path d="m8.41 7-1.41 1.41 3.59 3.59-3.59 3.59 1.41 1.41 3.59-3.59 3.59 3.59 1.41-1.41-3.59-3.59 3.59-3.59-1.41-1.41-3.59 3.59z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 265 B |
|
@ -0,0 +1,3 @@
|
|||
<svg fill="#fff" height="24" opacity=".7" width="24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m8.41 7-1.41 1.41 3.59 3.59-3.59 3.59 1.41 1.41 3.59-3.59 3.59 3.59 1.41-1.41-3.59-3.59 3.59-3.59-1.41-1.41-3.59 3.59z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 229 B |
|
@ -0,0 +1,4 @@
|
|||
<svg fill="#fff" height="24" width="24" xmlns="http://www.w3.org/2000/svg">
|
||||
<circle cx="12" cy="12" opacity=".3" r="10"/>
|
||||
<path d="m8 8v8h8v-8zm2 2h4v4h-4z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 170 B |
|
@ -0,0 +1,4 @@
|
|||
<svg fill="#fff" height="24" width="24" xmlns="http://www.w3.org/2000/svg">
|
||||
<circle cx="12" cy="12" opacity=".15" r="10"/>
|
||||
<path d="m8 8v8h8v-8zm2 2h4v4h-4z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 171 B |
|
@ -0,0 +1,3 @@
|
|||
<svg fill="#fff" height="24" opacity=".7" width="24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m8 8v8h8v-8zm2 2h4v4h-4z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 135 B |
|
@ -0,0 +1,4 @@
|
|||
<svg fill="#fff" height="24" width="24" xmlns="http://www.w3.org/2000/svg">
|
||||
<circle cx="12" cy="12" opacity=".3" r="10"/>
|
||||
<path d="m8 14h8v2h-8z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 159 B |
|
@ -0,0 +1,4 @@
|
|||
<svg fill="#fff" height="24" width="24" xmlns="http://www.w3.org/2000/svg">
|
||||
<circle cx="12" cy="12" opacity=".15" r="10"/>
|
||||
<path d="m8 14h8v2h-8z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 160 B |
|
@ -0,0 +1,3 @@
|
|||
<svg fill="#fff" height="24" opacity=".7" width="24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="m8 14h8v2h-8z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 124 B |
|
@ -0,0 +1,40 @@
|
|||
.window-button .icon {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
}
|
||||
|
||||
.close .icon {
|
||||
background-image: url("close.svg");
|
||||
}
|
||||
|
||||
.close:hover .icon {
|
||||
background-image: url("close-hover.svg");
|
||||
}
|
||||
|
||||
.close:active .icon {
|
||||
background-image: url("close-active.svg");
|
||||
}
|
||||
|
||||
.minimize .icon {
|
||||
background-image: url("minimize.svg");
|
||||
}
|
||||
|
||||
.minimize:hover .icon {
|
||||
background-image: url("minimize-hover.svg");
|
||||
}
|
||||
|
||||
.minimize:active .icon {
|
||||
background-image: url("minimize-active.svg");
|
||||
}
|
||||
|
||||
.maximize .icon {
|
||||
background-image: url("maximize.svg");
|
||||
}
|
||||
|
||||
.maximize:hover .icon {
|
||||
background-image: url("maximize-hover.svg");
|
||||
}
|
||||
|
||||
.maximize:active .icon {
|
||||
background-image: url("maximize-active.svg");
|
||||
}
|
|
@ -0,0 +1,4 @@
|
|||
<svg height="24" opacity=".87" width="24" xmlns="http://www.w3.org/2000/svg">
|
||||
<circle cx="12" cy="12" opacity=".3" r="10"/>
|
||||
<path d="m8.41 7-1.41 1.41 3.59 3.59-3.59 3.59 1.41 1.41 3.59-3.59 3.59 3.59 1.41-1.41-3.59-3.59 3.59-3.59-1.41-1.41-3.59 3.59z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 266 B |
|
@ -0,0 +1,4 @@
|
|||
<svg height="24" opacity=".87" width="24" xmlns="http://www.w3.org/2000/svg">
|
||||
<circle cx="12" cy="12" opacity=".15" r="10"/>
|
||||
<path d="m8.41 7-1.41 1.41 3.59 3.59-3.59 3.59 1.41 1.41 3.59-3.59 3.59 3.59 1.41-1.41-3.59-3.59 3.59-3.59-1.41-1.41-3.59 3.59z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 267 B |