a bunch of changes

This commit is contained in:
Tio 2020-11-10 03:15:36 +01:00
parent bc871a9ea4
commit d30a49d794
729 changed files with 10714 additions and 282 deletions

View File

@ -49,7 +49,7 @@ appimagelauncher
chrome-gnome-shell
ffmpegthumbnailer
linux54-headers
gnome-firmware

View File

@ -0,0 +1,9 @@
# useradd defaults file for ArchLinux
# original changes by TomK
GROUP=users
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/zsh
SKEL=/etc/skel
CREATE_MAIL_SPOOL=no

View File

@ -4,5 +4,16 @@
# Syntax: simple "KEY=VAL" pairs on separate lines
#
QT_QPA_PLATFORMTHEME="qt5ct"
QT_AUTO_SCREEN_SCALE_FACTOR=1
QT_QPA_PLATFORMTHEME="gnome"
QT_STYLE_OVERRIDE="kvantum"
# Force to use Xwayland backend
# QT_QPA_PLATFORM=xcb
#Not tested: this should disable window decorations
# QT_WAYLAND_DISABLE_WINDOWDECORATION=1
EDITOR=/usr/bin/nano

View File

@ -6,9 +6,10 @@
"shell-version": [
"3.34",
"3.32",
"3.36"
"3.36",
"3.38"
],
"url": "https://github.com/kgshank/gse-sound-output-device-chooser",
"uuid": "sound-output-device-chooser@kgshank.net",
"version": 31
"version": 32
}

View File

@ -6,10 +6,11 @@
"settings-schema": "org.gnome.shell.extensions.tweaks-system-menu",
"shell-version": [
"3.36",
"3.35.92"
"3.35.92",
"3.38"
],
"url": "https://github.com/F-i-f/tweaks-system-menu",
"uuid": "tweaks-system-menu@extensions.gnome-shell.fifi.org",
"vcs_revision": "v10-0-gd7da2d8",
"version": 10
"vcs_revision": "v11-0-ga9fac83",
"version": 11
}

View File

@ -0,0 +1,129 @@
const GObject = imports.gi.GObject
const St = imports.gi.St
const Clutter = imports.gi.Clutter
const Main = imports.ui.main
const AppMenu = Main.panel.statusArea.appMenu
const PanelMenu = imports.ui.panelMenu
var DesktopLabel = GObject.registerClass(
class UniteDesktopLabel extends PanelMenu.Button {
_init(text) {
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(text || 'Desktop')
}
setText(text) {
this._label.set_text(text)
}
setVisible(visible) {
this.container.visible = visible
AppMenu.container.visible = !visible
}
}
)
var TrayIndicator = GObject.registerClass(
class UniteTrayIndicator extends PanelMenu.Button {
_init(size) {
this._size = size || 20
this._icons = []
super._init(0.0, null, true)
this._indicators = new St.BoxLayout({ style_class: 'panel-status-indicators-box' })
this.add_child(this._indicators)
this._sync()
}
get size() {
const context = St.ThemeContext.get_for_stage(global.stage)
return this._size * context.scale_factor
}
_sync() {
this.visible = this._icons.length > 0
}
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, width: this.size })
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_height(this.size)
icon.set_x_align(Clutter.ActorAlign.CENTER)
icon.set_y_align(Clutter.ActorAlign.CENTER)
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) {
const pos = Clutter.ActorAlign.CENTER
const bin = new St.Bin({ style_class: 'icon', x_align: pos, y_align: pos })
const btn = new St.Button({ track_hover: true })
btn.add_style_class_name(`window-button ${action}`)
btn.add_actor(bin)
btn.connect('clicked', () => {
const target = global.unite.focusWindow
const method = target && target[action]
method && method.call(target)
})
this._controls.add_child(btn)
}
addButtons(buttons) {
this._controls.destroy_all_children()
buttons.forEach(this._addButton.bind(this))
}
setVisible(visible) {
this.container.visible = visible
}
}
)

View File

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

View File

@ -0,0 +1,46 @@
const GObject = imports.gi.GObject
const Main = imports.ui.main
const Unite = imports.misc.extensionUtils.getCurrentExtension()
const PanelManager = Unite.imports.panel.PanelManager
const LayoutManager = Unite.imports.layout.LayoutManager
const WindowManager = Unite.imports.window.WindowManager
var UniteExtension = GObject.registerClass(
class UniteExtension extends GObject.Object {
_init() {
this.panelManager = new PanelManager()
this.layoutManager = new LayoutManager()
this.windowManager = new WindowManager()
}
get focusWindow() {
return this.windowManager.focusWindow
}
activate() {
this.panelManager.activate()
this.layoutManager.activate()
this.windowManager.activate()
Main.panel._addStyleClassName('unite-shell')
}
destroy() {
this.panelManager.destroy()
this.layoutManager.destroy()
this.windowManager.destroy()
Main.panel._removeStyleClassName('unite-shell')
}
}
)
function enable() {
global.unite = new UniteExtension()
global.unite.activate()
}
function disable() {
global.unite.destroy()
global.unite = null
}

View File

@ -0,0 +1,229 @@
const Bytes = imports.byteArray
const Gio = imports.gi.Gio
const GLib = imports.gi.GLib
const St = imports.gi.St
const Unite = imports.misc.extensionUtils.getCurrentExtension()
const Convenience = Unite.imports.convenience
const SETTINGS = Convenience.getSettings()
const WM_PREFS = Convenience.getPreferences()
const USER_CONFIG = GLib.get_user_config_dir()
const USER_STYLES = `${USER_CONFIG}/gtk-3.0/gtk.css`
function fileExists(path) {
return GLib.file_test(path, GLib.FileTest.EXISTS)
}
function getGioFile(path) {
const absPath = GLib.build_filenamev([Unite.path, path])
if (fileExists(absPath)) {
return Gio.file_new_for_path(absPath)
}
}
function getFileContents(path) {
if (fileExists(path)) {
const contents = GLib.file_get_contents(path)
return Bytes.toString(contents[1])
} else {
return ''
}
}
function setFileContents(path, contents) {
GLib.file_set_contents(path, contents)
}
function resetGtkStyles() {
let style = getFileContents(USER_STYLES)
style = style.replace(/\/\* UNITE ([\s\S]*?) UNITE \*\/\n/g, '')
style = style.replace(/@import.*unite@hardpixel\.eu.*css['"]\);\n/g, '')
setFileContents(USER_STYLES, style)
}
var Signals = class Signals {
constructor() {
this.signals = new Map()
}
registerHandler(object, name, callback) {
const uid = GLib.uuid_string_random()
const key = `[signal ${name} uuid@${uid}]`
this.signals.set(key, {
object: object,
signalId: object.connect(name, callback)
})
return key
}
hasSignal(key) {
return this.signals.has(key)
}
connect(object, name, callback) {
return this.registerHandler(object, name, callback)
}
disconnect(key) {
if (this.hasSignal(key)) {
const data = this.signals.get(key)
data.object.disconnect(data.signalId)
this.signals.delete(key)
}
}
disconnectMany(keys) {
keys.forEach(this.disconnect.bind(this))
}
disconnectAll() {
for (const key of this.signals.keys()) {
this.disconnect(key)
}
}
}
var Settings = class Settings extends Signals {
getSettingObject(key) {
if (SETTINGS.exists(key)) {
return SETTINGS
} else {
return WM_PREFS
}
}
connect(name, callback) {
const object = this.getSettingObject(name)
return this.registerHandler(object, `changed::${name}`, callback)
}
get(key) {
const object = this.getSettingObject(key)
return object.getSetting(key)
}
}
var ShellStyle = class ShellStyle {
constructor(path) {
this.file = getGioFile(path)
}
get context() {
return St.ThemeContext.get_for_stage(global.stage)
}
get theme() {
return this.context.get_theme()
}
load() {
this.theme.load_stylesheet(this.file)
}
unload() {
this.theme.unload_stylesheet(this.file)
}
}
var WidgetStyle = class WidgetStyle {
constructor(widget, style) {
this.widget = widget
this.style = style
}
get existing() {
return this.widget.get_style() || ''
}
load() {
const style = this.existing + this.style
this.widget.set_style(style)
}
unload() {
const style = this.existing.replace(this.style, '')
this.widget.set_style(style)
}
}
var GtkStyle = class GtkStyle {
constructor(name, contents) {
this.contents = `/* UNITE ${name} */\n${contents}\n/* ${name} UNITE */\n`
}
get existing() {
return getFileContents(USER_STYLES)
}
load() {
const style = this.contents + this.existing
setFileContents(USER_STYLES, style)
}
unload() {
const style = this.existing.replace(this.contents, '')
setFileContents(USER_STYLES, style)
}
}
var Styles = class Styles {
constructor() {
this.styles = new Map()
}
hasStyle(name) {
return name && this.styles.has(name)
}
getStyle(name) {
return name && this.styles.get(name)
}
setStyle(name, object, ...args) {
if (!this.hasStyle(name)) {
const style = new object(...args)
style.load()
this.styles.set(name, style)
}
}
deleteStyle(name) {
if (this.hasStyle(name)) {
const style = this.getStyle(name)
style.unload()
this.styles.delete(name)
}
}
addShellStyle(name, path) {
this.deleteStyle(name)
this.setStyle(name, ShellStyle, path)
}
addWidgetStyle(name, widget, styles) {
this.deleteStyle(name)
this.setStyle(name, WidgetStyle, widget, styles)
}
addGtkStyle(name, contents) {
this.deleteStyle(name)
this.setStyle(name, GtkStyle, name, contents)
}
removeAll() {
for (const key of this.styles.keys()) {
this.deleteStyle(key)
}
}
}
resetGtkStyles()

View File

@ -0,0 +1,268 @@
const GObject = imports.gi.GObject
const St = imports.gi.St
const Clutter = imports.gi.Clutter
const GtkSettings = imports.gi.Gtk.Settings.get_default()
const Main = imports.ui.main
const Config = imports.misc.config
const Unite = imports.misc.extensionUtils.getCurrentExtension()
const AppMenu = Main.panel.statusArea.appMenu
const AggMenu = Main.panel.statusArea.aggregateMenu
const Handlers = Unite.imports.handlers
const VERSION = parseInt(Config.PACKAGE_VERSION.split('.')[1])
function actorHasClass(actor, name) {
return actor.has_style_class_name && actor.has_style_class_name(name)
}
function getWidgetArrow(widget) {
let arrow = widget._arrow
if (!arrow) {
const last = widget.get_n_children() - 1
const actor = widget.get_children()[last]
if (actor) {
if (actorHasClass(actor, 'popup-menu-arrow')) {
arrow = actor
} else {
arrow = getWidgetArrow(actor)
}
}
}
if (arrow && !widget.hasOwnProperty('_arrow')) {
widget._arrow = arrow
}
return arrow
}
function toggleWidgetArrow(widget, hide) {
const arrow = widget && getWidgetArrow(widget)
if (arrow) {
if (hide && !widget._arrowHandled) {
arrow.visible = false
widget._arrowHandled = true
}
if (!hide && widget._arrowHandled) {
arrow.visible = true
delete widget._arrowHandled
}
}
}
var LayoutManager = GObject.registerClass(
class UniteLayoutManager extends GObject.Object {
_init() {
this.signals = new Handlers.Signals()
this.settings = new Handlers.Settings()
this.styles = new Handlers.Styles()
this.signals.connect(
Main.panel._leftBox, 'actor_added', this._onHideDropdownArrows.bind(this)
)
this.signals.connect(
Main.panel._centerBox, 'actor_added', this._onHideDropdownArrows.bind(this)
)
this.signals.connect(
Main.panel._rightBox, 'actor_added', this._onHideDropdownArrows.bind(this)
)
this.settings.connect(
'notifications-position', this._onNotificationsChange.bind(this)
)
this.settings.connect(
'hide-app-menu-icon', this._onHideAppMenuIcon.bind(this)
)
this.settings.connect(
'hide-app-menu-arrow', this._onHideAppMenuArrow.bind(this)
)
this.settings.connect(
'hide-aggregate-menu-arrow', this._onHideAggMenuArrow.bind(this)
)
this.settings.connect(
'hide-dropdown-arrows', this._onHideDropdownArrows.bind(this)
)
this.settings.connect(
'use-system-fonts', this._onChangeStyles.bind(this)
)
this.settings.connect(
'reduce-panel-spacing', this._onChangeStyles.bind(this)
)
if (VERSION < 36) {
this.signals.connect(
GtkSettings, 'notify::gtk-font-name', this._onChangeStyles.bind(this)
)
}
}
_onNotificationsChange() {
const setting = this.settings.get('notifications-position')
if (setting != 'center') {
const context = St.ThemeContext.get_for_stage(global.stage)
const banner = Main.messageTray._bannerBin
const mappings = { left: 'START', right: 'END' }
const position = mappings[setting]
banner.set_x_align(Clutter.ActorAlign[position])
banner.set_width(390 * context.scale_factor)
} else {
this._resetNotifications()
}
}
_onHideAppMenuIcon() {
const setting = this.settings.get('hide-app-menu-icon')
if (setting) {
AppMenu._iconBox.hide()
} else {
this._resetAppMenuIcon()
}
}
_onHideAppMenuArrow() {
const setting = this.settings.get('hide-app-menu-arrow')
if (setting) {
toggleWidgetArrow(AppMenu, true)
} else {
this._resetAppMenuArrow()
}
}
_onHideAggMenuArrow() {
const setting = this.settings.get('hide-aggregate-menu-arrow')
if (setting) {
toggleWidgetArrow(AggMenu, true)
} else {
this._resetAggMenuArrow()
}
}
_onHideDropdownArrows() {
const setting = this.settings.get('hide-dropdown-arrows')
if (setting) {
for (const [name, widget] of Object.entries(Main.panel.statusArea)) {
if (name != 'aggregateMenu' && name != 'appMenu') {
toggleWidgetArrow(widget, true)
}
}
} else {
this._resetDropdownArrows()
}
}
_onChangeStyles() {
const fonts = this.settings.get('use-system-fonts')
const space = this.settings.get('reduce-panel-spacing')
this._resetStyles()
if (VERSION < 36 && fonts) {
const font = GtkSettings.gtk_font_name.replace(/\s\d+$/, '')
this.styles.addWidgetStyle('uiGroup', Main.uiGroup, `font-family: ${font};`)
this.styles.addWidgetStyle('panel', Main.panel, 'font-size: 11.25pt;')
}
if (space) {
Main.panel._addStyleClassName('small-spacing')
}
if (VERSION < 34) {
Main.panel._addStyleClassName('extra-spacing')
}
this._syncStyles()
}
_resetNotifications() {
const banner = Main.messageTray._bannerBin
banner.set_x_align(Clutter.ActorAlign.CENTER)
banner.set_width(-1)
}
_resetAppMenuIcon() {
AppMenu._iconBox.show()
}
_resetAppMenuArrow() {
toggleWidgetArrow(AppMenu, false)
}
_resetAggMenuArrow() {
toggleWidgetArrow(AggMenu, false)
}
_resetDropdownArrows() {
for (const [name, widget] of Object.entries(Main.panel.statusArea)) {
if (name != 'aggregateMenu' && name != 'appMenu') {
toggleWidgetArrow(widget, false)
}
}
}
_resetStyles() {
Main.panel._removeStyleClassName('small-spacing')
Main.panel._removeStyleClassName('extra-spacing')
this.styles.deleteStyle('uiGroup')
this.styles.deleteStyle('panel')
}
// Fix for panel spacing not applied until mouse-over
// Issue: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/1708
_syncStyles() {
const space = this.settings.get('reduce-panel-spacing')
if (VERSION >= 34 && space) {
Object.values(Main.panel.statusArea).forEach((item) => {
if (item !== null) {
item.add_style_pseudo_class('hover')
item.remove_style_pseudo_class('hover')
}
})
}
}
activate() {
this._onNotificationsChange()
this._onHideAppMenuIcon()
this._onHideAppMenuArrow()
this._onHideAggMenuArrow()
this._onHideDropdownArrows()
this._onChangeStyles()
}
destroy() {
this._resetNotifications()
this._resetAppMenuIcon()
this._resetAppMenuArrow()
this._resetAggMenuArrow()
this._resetDropdownArrows()
this._resetStyles()
this._syncStyles()
this.signals.disconnectAll()
this.settings.disconnectAll()
this.styles.removeAll()
}
}
)

View File

@ -0,0 +1,16 @@
{
"_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",
"3.36",
"3.38"
],
"url": "https://github.com/hardpixel/unite-shell",
"uuid": "unite@hardpixel.eu",
"version": 43
}

View File

@ -0,0 +1,519 @@
const Gi = imports._gi
const System = imports.system
const GObject = imports.gi.GObject
const Clutter = imports.gi.Clutter
const Shell = imports.gi.Shell
const AppSystem = imports.gi.Shell.AppSystem.get_default()
const WinTracker = imports.gi.Shell.WindowTracker.get_default()
const Main = imports.ui.main
const Config = imports.misc.config
const Unite = imports.misc.extensionUtils.getCurrentExtension()
const AppMenu = Main.panel.statusArea.appMenu
const Activities = Main.panel.statusArea.activities
const Buttons = Unite.imports.buttons
const Handlers = Unite.imports.handlers
const VERSION = parseInt(Config.PACKAGE_VERSION.split('.')[1])
var PanelExtension = class PanelExtension {
constructor(settings, key, callback) {
this.activated = false
const isActive = () => {
return callback.call(null, settings.get(key))
}
const onChange = () => {
const active = isActive()
if (active && !this.activated) {
this.activated = true
return this._init()
}
if (!active && this.activated) {
this.activated = false
return this._destroy()
}
}
this.activate = () => {
settings.connect(key, onChange.bind(this))
onChange()
}
this.destroy = () => {
if (this.activated) {
this._destroy()
this.activated = false
}
}
}
}
var WindowButtons = class WindowButtons extends PanelExtension {
constructor({ settings }) {
const active = val => val != 'never'
super(settings, 'show-window-buttons', active)
}
_init() {
this.theme = 'default-dark'
this.signals = new Handlers.Signals()
this.settings = new Handlers.Settings()
this.styles = new Handlers.Styles()
this.controls = new Buttons.WindowControls()
this.signals.connect(
Main.overview, 'showing', this._syncVisible.bind(this)
)
this.signals.connect(
Main.overview, 'hiding', this._syncVisible.bind(this)
)
this.signals.connect(
WinTracker, 'notify::focus-app', this._syncVisible.bind(this)
)
this.settings.connect(
'button-layout', this._onPositionChange.bind(this)
)
this.settings.connect(
'window-buttons-placement', this._onPositionChange.bind(this)
)
this.settings.connect(
'window-buttons-theme', this._onThemeChange.bind(this)
)
Main.panel.addToStatusArea(
'uniteWindowControls', this.controls, this.index, this.side
)
this._onPositionChange()
this._onThemeChange()
this._syncVisible()
}
get position() {
return this.settings.get('window-buttons-position')
}
get placement() {
return this.settings.get('window-buttons-placement')
}
get side() {
const sides = { first: 'left', last: 'right', auto: this.position }
return sides[this.placement] || this.placement
}
get index() {
if (this.placement == 'first') return 0
if (this.placement == 'last') return -1
return null
}
get sibling() {
if (this.side == 'left') {
return Main.panel.statusArea.appMenu.get_parent()
} else {
return Main.panel.statusArea.aggregateMenu.get_parent()
}
}
get container() {
if (this.side == 'left') {
return Main.panel._leftBox
} else {
return Main.panel._rightBox
}
}
_onLayoutChange() {
const buttons = this.settings.get('window-buttons-layout')
if (this.side != this.position) {
buttons.reverse()
}
this.controls.addButtons(buttons)
this._syncVisible()
}
_onPositionChange() {
const controls = this.controls.container
if (controls.reparent) {
controls.reparent(this.container)
} else {
const currentParent = controls.get_parent()
if (currentParent) {
currentParent.remove_child(controls)
this.container.add_child(controls)
}
}
if (this.index != null) {
this.container.set_child_at_index(controls, this.index)
} else {
this.container.set_child_below_sibling(controls, this.sibling)
}
this._onLayoutChange()
}
_onThemeChange() {
this.controls.remove_style_class_name(this.theme)
this.theme = this.settings.get('window-buttons-theme')
const path = `themes/${this.theme}/stylesheet.css`
this.styles.addShellStyle('windowButtons', path)
this.controls.add_style_class_name(this.theme)
}
_syncVisible() {
const overview = Main.overview.visibleTarget
const focusApp = WinTracker.focus_app || AppMenu._targetApp
if (!overview && focusApp && focusApp.state == Shell.AppState.RUNNING) {
const win = global.unite.focusWindow
this.controls.setVisible(win && win.showButtons)
} else {
this.controls.setVisible(false)
}
}
_destroy() {
this.controls.destroy()
this.signals.disconnectAll()
this.settings.disconnectAll()
this.styles.removeAll()
}
}
var ExtendLeftBox = class ExtendLeftBox extends PanelExtension {
constructor({ settings }) {
const active = val => val == true
super(settings, 'extend-left-box', active)
}
_init() {
this._default = Main.panel.__proto__.vfunc_allocate
if (VERSION < 37) {
Main.panel.__proto__[Gi.hook_up_vfunc_symbol]('allocate', (box, flags) => {
Main.panel.vfunc_allocate.call(Main.panel, box, flags)
this._allocate(Main.panel, box, flags)
})
} else {
Main.panel.__proto__[Gi.hook_up_vfunc_symbol]('allocate', (box) => {
Main.panel.vfunc_allocate.call(Main.panel, box)
this._allocate(Main.panel, box)
})
}
Main.panel.queue_relayout()
}
_boxAllocate(box, childBox, flags) {
if (VERSION < 37) {
box.allocate(childBox, flags)
} else {
box.allocate(childBox)
}
}
_allocate(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)
}
this._boxAllocate(leftBox, 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
}
this._boxAllocate(centerBox, 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
}
this._boxAllocate(rightBox, childBox, flags)
}
_destroy() {
Main.panel.__proto__[Gi.hook_up_vfunc_symbol]('allocate', this._default)
this._default = null
Main.panel.queue_relayout()
}
}
var ActivitiesButton = class ActivitiesButton extends PanelExtension {
constructor({ settings }) {
const active = val => val != 'never'
super(settings, 'hide-activities-button', active)
}
_init() {
this.signals = new Handlers.Signals()
this.settings = new Handlers.Settings()
this.signals.connect(
Main.overview, 'showing', this._syncVisible.bind(this)
)
this.signals.connect(
Main.overview, 'hiding', this._syncVisible.bind(this)
)
this.signals.connect(
AppSystem, 'app-state-changed', this._syncVisible.bind(this)
)
this.signals.connect(
WinTracker, 'notify::focus-app', this._syncVisible.bind(this)
)
this.settings.connect(
'show-desktop-name', this._syncVisible.bind(this)
)
this._syncVisible()
}
get hideButton() {
return this.settings.get('hide-activities-button')
}
get showDesktop() {
return this.settings.get('show-desktop-name')
}
_syncVisible() {
const button = Activities.container
const overview = Main.overview.visibleTarget
const focusApp = WinTracker.focus_app || AppMenu._targetApp
if (this.hideButton == 'always') {
return button.hide()
}
if (this.showDesktop) {
button.visible = overview
} else {
button.visible = overview || focusApp == null
}
}
_destroy() {
if (!Main.overview.isDummy) {
Activities.container.show()
}
this.signals.disconnectAll()
this.settings.disconnectAll()
}
}
var DesktopName = class DesktopName extends PanelExtension {
constructor({ settings }) {
const active = val => val == true
super(settings, 'show-desktop-name', active)
}
_init() {
this.signals = new Handlers.Signals()
this.settings = new Handlers.Settings()
this.label = new Buttons.DesktopLabel()
this.signals.connect(
Main.overview, 'showing', this._syncVisible.bind(this)
)
this.signals.connect(
Main.overview, 'hiding', this._syncVisible.bind(this)
)
this.signals.connect(
AppSystem, 'app-state-changed', this._syncVisible.bind(this)
)
this.signals.connect(
WinTracker, 'notify::focus-app', this._syncVisible.bind(this)
)
this.settings.connect(
'desktop-name-text', this._onTextChanged.bind(this)
)
Main.panel.addToStatusArea(
'uniteDesktopLabel', this.label, 1, 'left'
)
this._onTextChanged()
this._syncVisible()
}
_syncVisible() {
const overview = Main.overview.visibleTarget
const focusApp = WinTracker.focus_app || AppMenu._targetApp
this.label.setVisible(!overview && focusApp == null)
}
_onTextChanged() {
const text = this.settings.get('desktop-name-text')
this.label.setText(text)
}
_destroy() {
this.label.destroy()
this.signals.disconnectAll()
this.settings.disconnectAll()
}
}
var TrayIcons = class TrayIcons extends PanelExtension {
constructor({ settings }) {
const active = val => val == true
super(settings, 'show-legacy-tray', active)
}
_init() {
this.tray = new Shell.TrayManager()
this.settings = new Handlers.Settings()
this.indicators = new Buttons.TrayIndicator()
this.tray.connect(
'tray-icon-added', this._onIconAdded.bind(this)
)
this.tray.connect(
'tray-icon-removed', this._onIconRemoved.bind(this)
)
this.settings.connect(
'greyscale-tray-icons', this._onGreyscaleChange.bind(this)
)
Main.panel.addToStatusArea(
'uniteTrayIndicator', this.indicators, 0, 'right'
)
this.tray.manage_screen(Main.panel)
}
_desaturateIcon(icon) {
const greyscale = this.settings.get('greyscale-tray-icons')
icon.clear_effects()
if (greyscale) {
const desEffect = new Clutter.DesaturateEffect({ factor : 1.0 })
const 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)
}
}
_onIconAdded(trayManager, icon) {
this.indicators.addIcon(icon)
this._desaturateIcon(icon)
}
_onIconRemoved(trayManager, icon) {
this.indicators.removeIcon(icon)
}
_onGreyscaleChange() {
this.indicators.forEach(this._desaturateIcon.bind(this))
}
_destroy() {
this.tray = null
System.gc()
this.indicators.destroy()
this.settings.disconnectAll()
}
}
var PanelManager = GObject.registerClass(
class UnitePanelManager extends GObject.Object {
_init() {
this.settings = new Handlers.Settings()
this.buttons = new WindowButtons(this)
this.extender = new ExtendLeftBox(this)
this.activities = new ActivitiesButton(this)
this.desktop = new DesktopName(this)
this.tray = new TrayIcons(this)
}
activate() {
this.buttons.activate()
this.extender.activate()
this.activities.activate()
this.desktop.activate()
this.tray.activate()
}
destroy() {
this.buttons.destroy()
this.extender.destroy()
this.activities.destroy()
this.desktop.destroy()
this.tray.destroy()
this.settings.disconnectAll()
}
}
)

View File

@ -0,0 +1,82 @@
const GObject = imports.gi.GObject
const Gtk = imports.gi.Gtk
const Config = imports.misc.config
const Unite = imports.misc.extensionUtils.getCurrentExtension()
const Convenience = Unite.imports.convenience
const VERSION = parseInt(Config.PACKAGE_VERSION.split('.')[1])
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)
if (VERSION >= 36) {
const fonts = this._getWidget('use_system_fonts_section')
fonts.set_sensitive(false)
}
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
}

View File

@ -0,0 +1,163 @@
<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" />
<value value="18" nick="breeze" />
<value value="19" nick="prof-gnome" />
<value value="20" nick="flat-remix" />
</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>

View File

@ -0,0 +1,909 @@
<?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>
<item id="18" translatable="yes">Breeze</item>
<item id="19" translatable="yes">Prof-Gnome</item>
<item id="20" translatable="yes">Flat Remix</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>

View File

@ -0,0 +1,22 @@
window headerbar:not(.selection-mode),
window .titlebar:not(.selection-mode) {
padding-left: 0;
}
window headerbar ~ headerbar:not(.selection-mode),
window headerbar ~ .titlebar:not(.selection-mode),
window .titlebar ~ .titlebar:not(.selection-mode),
window .titlebar ~ headerbar:not(.selection-mode) {
padding-left: 6px;
}
window headerbar > box.left,
window .titlebar > box.left {
margin: 0 0 0 -200px;
opacity: 0;
}
window .titlebar.default-decoration {
margin: -200px 0 0;
opacity: 0;
}

View File

@ -0,0 +1,2 @@
@import "maximized.css";
@import "tiled.css";

View File

@ -0,0 +1,22 @@
.maximized headerbar:not(.selection-mode),
.maximized .titlebar:not(.selection-mode) {
padding-left: 0;
}
.maximized headerbar ~ headerbar:not(.selection-mode),
.maximized headerbar ~ .titlebar:not(.selection-mode),
.maximized .titlebar ~ .titlebar:not(.selection-mode),
.maximized .titlebar ~ headerbar:not(.selection-mode) {
padding-left: 6px;
}
.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;
}

View File

@ -0,0 +1,22 @@
.tiled headerbar:not(.selection-mode),
.tiled .titlebar:not(.selection-mode) {
padding-left: 0;
}
.tiled headerbar ~ headerbar:not(.selection-mode),
.tiled headerbar ~ .titlebar:not(.selection-mode),
.tiled .titlebar ~ .titlebar:not(.selection-mode),
.tiled .titlebar ~ headerbar:not(.selection-mode) {
padding-left: 6px;
}
.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;
}

View File

@ -0,0 +1,20 @@
window > headerbar:not(.selection-mode),
window > .titlebar:not(.selection-mode),
window > headerbar > headerbar:not(.selection-mode),
window > .titlebar > .titlebar:not(.selection-mode),
window > .titlebar > stack > headerbar:not(.selection-mode),
window headerbar:last-child:not(.selection-mode),
window .titlebar:last-child:not(.selection-mode) {
padding-right: 0;
}
window headerbar > box.right,
window .titlebar > box.right {
margin: 0 -200px 0 0;
opacity: 0;
}
window .titlebar.default-decoration {
margin: -200px 0 0;
opacity: 0;
}

View File

@ -0,0 +1,2 @@
@import "maximized.css";
@import "tiled.css";

View File

@ -0,0 +1,20 @@
.maximized > headerbar:not(.selection-mode),
.maximized > .titlebar:not(.selection-mode),
.maximized > headerbar > headerbar:not(.selection-mode),
.maximized > .titlebar > .titlebar:not(.selection-mode),
.maximized > .titlebar > stack > headerbar:not(.selection-mode),
.maximized headerbar:last-child:not(.selection-mode),
.maximized .titlebar:last-child:not(.selection-mode) {
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;
}

View File

@ -0,0 +1,20 @@
.tiled > headerbar:not(.selection-mode),
.tiled > .titlebar:not(.selection-mode),
.tiled > headerbar > headerbar:not(.selection-mode),
.tiled > .titlebar > .titlebar:not(.selection-mode),
.tiled > .titlebar > stack > headerbar:not(.selection-mode),
.tiled headerbar:last-child:not(.selection-mode),
.tiled .titlebar:last-child:not(.selection-mode) {
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;
}

View File

@ -0,0 +1,52 @@
#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 .panel-button .panel-status-indicators-box .panel-status-indicators-box {
spacing: 4px;
}
#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;
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -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");
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -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");
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -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");
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -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");
}

View File

@ -0,0 +1,3 @@
<svg viewBox="-3 -3 24 24" xmlns="http://www.w3.org/2000/svg">
<path d="m9 0a9 9 0 0 0-9 9 9 9 0 0 0 9 9 9 9 0 0 0 9-9 9 9 0 0 0-9-9zm-3.6465 4.6465 3.6465 3.6465 3.6465-3.6465 0.70705 0.70705-3.6465 3.6465 3.6465 3.6465-0.70705 0.70705-3.6465-3.6465-3.6465 3.6465-0.70705-0.70705 3.6465-3.6465-3.6465-3.6465z" fill="#ff0404" stroke-width="1.125"/>
</svg>

After

Width:  |  Height:  |  Size: 358 B

View File

@ -0,0 +1,4 @@
<svg viewBox="-3 -3 24 24" xmlns="http://www.w3.org/2000/svg">
<path d="m9 0a9 9 0 0 0-9 9 9 9 0 0 0 9 9 9 9 0 0 0 9-9 9 9 0 0 0-9-9zm-3.6465 4.6465 3.6465 3.6465 3.6465-3.6465 0.70705 0.70705-3.6465 3.6465 3.6465 3.6465-0.70705 0.70705-3.6465-3.6465-3.6465 3.6465-0.70705-0.70705 3.6465-3.6465-3.6465-3.6465z" fill="#fff" stroke-width="1.125"/>
<path d="m9 0a9 9 0 0 0-9 9 9 9 0 0 0 9 9 9 9 0 0 0 9-9 9 9 0 0 0-9-9zm-3.6465 4.6465 3.6465 3.6465 3.6465-3.6465 0.70705 0.70705-3.6465 3.6465 3.6465 3.6465-0.70705 0.70705-3.6465-3.6465-3.6465 3.6465-0.70705-0.70705 3.6465-3.6465-3.6465-3.6465z" fill="#ff0404" opacity=".5" stroke-width="1.125"/>
</svg>

After

Width:  |  Height:  |  Size: 656 B

View File

@ -0,0 +1,3 @@
<svg viewBox="-3 -3 24 24" xmlns="http://www.w3.org/2000/svg">
<path d="m9 0a9 9 0 0 0-9 9 9 9 0 0 0 9 9 9 9 0 0 0 9-9 9 9 0 0 0-9-9zm-3.6465 4.6465 3.6465 3.6465 3.6465-3.6465 0.70705 0.70705-3.6465 3.6465 3.6465 3.6465-0.70705 0.70705-3.6465-3.6465-3.6465 3.6465-0.70705-0.70705 3.6465-3.6465-3.6465-3.6465z" fill="#fff" stroke-width="1.125"/>
</svg>

After

Width:  |  Height:  |  Size: 355 B

View File

@ -0,0 +1,3 @@
<svg viewBox="-3 -3 24 24" xmlns="http://www.w3.org/2000/svg">
<path d="m9 0a9 9 0 0 0-9 9 9 9 0 0 0 9 9 9 9 0 0 0 9-9 9 9 0 0 0-9-9zm0 3.7929 5.207 5.207-5.207 5.2069-5.207-5.2069zm0 1.414-3.7929 3.7929 3.7929 3.7929 3.7929-3.7929z" fill="#fff" opacity=".3" stroke-width="1.125"/>
</svg>

After

Width:  |  Height:  |  Size: 291 B

View File

@ -0,0 +1,3 @@
<svg viewBox="-3 -3 24 24" xmlns="http://www.w3.org/2000/svg">
<path d="m9 0a9 9 0 0 0-9 9 9 9 0 0 0 9 9 9 9 0 0 0 9-9 9 9 0 0 0-9-9zm0 3.7929 5.207 5.207-5.207 5.2069-5.207-5.2069zm0 1.414-3.7929 3.7929 3.7929 3.7929 3.7929-3.7929z" fill="#fff" stroke-width="1.125"/>
</svg>

After

Width:  |  Height:  |  Size: 278 B

View File

@ -0,0 +1,3 @@
<svg viewBox="-3 -3 24 24" xmlns="http://www.w3.org/2000/svg">
<path d="m9 3.793-5.207 5.207 5.207 5.207 5.207-5.207zm0 1.414 3.7929 3.7929-3.7929 3.7929-3.7929-3.7929z" color="#000000" color-rendering="auto" dominant-baseline="auto" fill="#fff" image-rendering="auto" shape-rendering="auto" solid-color="#000000" stroke-width="1.125"/>
</svg>

After

Width:  |  Height:  |  Size: 346 B

View File

@ -0,0 +1,3 @@
<svg viewBox="-3 -3 24 24" xmlns="http://www.w3.org/2000/svg">
<path d="m9 0a9 9 0 0 0-9 9 9 9 0 0 0 9 9 9 9 0 0 0 9-9 9 9 0 0 0-9-9zm-4.6465 6.6465 4.6465 4.6465 4.6465-4.6465 0.70705 0.70705-5.3535 5.3535-5.3535-5.3535 0.70705-0.70705z" fill="#fff" opacity=".3" stroke-width="1.125"/>
</svg>

After

Width:  |  Height:  |  Size: 296 B

View File

@ -0,0 +1,3 @@
<svg viewBox="-3 -3 24 24" xmlns="http://www.w3.org/2000/svg">
<path d="m9 0a9 9 0 0 0-9 9 9 9 0 0 0 9 9 9 9 0 0 0 9-9 9 9 0 0 0-9-9zm-4.6465 6.6465 4.6465 4.6465 4.6465-4.6465 0.70705 0.70705-5.3535 5.3535-5.3535-5.3535 0.70705-0.70705z" fill="#fff" stroke-width="1.125"/>
</svg>

After

Width:  |  Height:  |  Size: 283 B

View File

@ -0,0 +1,3 @@
<svg viewBox="-3 -3 24 24" xmlns="http://www.w3.org/2000/svg">
<path d="m4.3535 5.9697-0.70705 0.70705 5.3535 5.3535 5.3535-5.3535-0.70705-0.70705-4.6465 4.6465z" color="#000000" color-rendering="auto" dominant-baseline="auto" fill="#fefefe" image-rendering="auto" shape-rendering="auto" solid-color="#000000" stroke-width="1.125"/>
</svg>

After

Width:  |  Height:  |  Size: 342 B

View File

@ -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");
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -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");
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -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");
}

View File

@ -0,0 +1 @@
<svg height="16" viewBox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg"><circle cx="8" cy="8" fill="#d31919" r="7" stroke="#8b1111" stroke-width=".5"/><path d="m45 764h1c.01037-.00012.02079-.00046.03125 0 .25495.0112.50987.12858.6875.3125l2.2812 2.2812 2.3125-2.2812c.26562-.2305.44667-.3055.6875-.3125h1v1c0 .28647-.03434.55065-.25.75l-2.2812 2.2812 2.25 2.25c.18819.18817.28124.45345.28125.71875v1h-1c-.2653-.00001-.53059-.0931-.71875-.28125l-2.2812-2.2812-2.2812 2.2812c-.18816.18819-.45346.28125-.71875.28125h-1v-1c-.000003-.26529.09306-.53058.28125-.71875l2.2812-2.25-2.2812-2.2812c-.21074-.19463-.30316-.46925-.28125-.75v-1z" opacity=".5" transform="matrix(.75 0 0 .75 -28.75 -568.0753)"/><path d="m0 0h16v16h-16z" fill="none"/></svg>

After

Width:  |  Height:  |  Size: 751 B

View File

@ -0,0 +1 @@
<svg height="16" viewBox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg"><circle cx="8" cy="8" fill="#d31919" r="7" stroke="#8b1111" stroke-width=".5"/><path d="m45 764h1c.01037-.00012.02079-.00046.03125 0 .25495.0112.50987.12858.6875.3125l2.2812 2.2812 2.3125-2.2812c.26562-.2305.44667-.3055.6875-.3125h1v1c0 .28647-.03434.55065-.25.75l-2.2812 2.2812 2.25 2.25c.18819.18817.28124.45345.28125.71875v1h-1c-.2653-.00001-.53059-.0931-.71875-.28125l-2.2812-2.2812-2.2812 2.2812c-.18816.18819-.45346.28125-.71875.28125h-1v-1c-.000003-.26529.09306-.53058.28125-.71875l2.2812-2.25-2.2812-2.2812c-.21074-.19463-.30316-.46925-.28125-.75v-1z" opacity=".5" transform="matrix(.75 0 0 .75 -28.75 -568.0753)"/><path d="m0 0h16v16h-16z" fill="none"/></svg>

After

Width:  |  Height:  |  Size: 751 B

Some files were not shown because too many files have changed in this diff Show More