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
tromjaro/gnome
Packages-Desktop
desktop-overlay
etc
default
environment
skel
.local
share
gnome-shell
extensions
sound-output-device-chooser@kgshank.net
tweaks-system-menu@extensions.gnome-shell.fifi.org
unite@hardpixel.eu
buttons.jsconvenience.jsextension.jshandlers.jslayout.jsmetadata.jsonpanel.jsprefs.js
schemas
settings.ui
styles
stylesheet.css
themes
ambiance
arc-dark
arc-light
arrongin
breeze
default-dark
default-light
flat-remix
materia-dark
materia-light
osx-arc
pop-dark
pop-light
prof-gnome
radiance
telinkrin
united-dark
united-light
vertex
vimix
yaru
window.js
user-theme@gnome-shell-extensions.gcampax.github.com
NEWSextension.js
locale
af
an
ar
as
be
bg
bn_IN
bs
ca
ca@valencia
cs
da
de
el
en_GB
eo
es
et
eu
fa
fi
fr
fur
gd
gl
gu
he
hi
hr
hu
id
is
it
ja
kk
km
kn
ko
lt
lv
mjw
ml
mr
ms
nb
ne
nl
oc
or
pa
pl
pt
pt_BR
ro
ru
sk
sl
sr
sr@latin
sv
ta
te
tg
th
tr
uk
vi
zh_CN
zh_HK
zh_TW
metadata.jsonprefs.js
schemas
util.js
.mozilla
firefox
6q5q3muz.default
addonStartup.json.lz4addons.jsonbroadcast-listeners.jsoncompatibility.iniextensions.jsonfavicons.sqlitepermissions.sqliteplaces.sqliteprefs.jsprotections.sqlitesearch.json.mozlz4sessionstore.jsonlz4storage-sync-v2.sqlite-shmstorage-sync-v2.sqlite-walstorage.sqlite
storage
default
moz-extension+++216e4b1a-9104-4b5f-9e98-ff4d0023ec55^userContextId=4294967295
.metadata-v2
idb
3647222921wleabcEoxlt-eengsairo.files
3647222921wleabcEoxlt-eengsairo.sqlite
moz-extension+++256c7ceb-2fd8-4e47-bdc3-cb06c28a2511^userContextId=4294967295
moz-extension+++26d6ad01-a771-4b46-9e35-342122037141^userContextId=4294967295
moz-extension+++5fa9f4d9-b1b6-436a-976d-16c0d1f6a207^userContextId=4294967295
moz-extension+++90be17cd-7169-4943-9a04-3cd8bf7fec41
moz-extension+++90be17cd-7169-4943-9a04-3cd8bf7fec41^userContextId=4294967295
moz-extension+++a6c886c9-b630-43c6-b580-799f5a19fdb4^userContextId=4294967295
moz-extension+++d439fe79-e9bd-449b-b9ec-cc2b271f80c0^userContextId=4294967295
moz-extension+++dbb00a92-98b5-481a-8acc-56821f5c1539^userContextId=4294967295
moz-extension+++f393b4c4-359a-4d1e-b377-fd4b41112e16^userContextId=4294967295
permanent
xulstore.json
Crash Reports
var
lib
polkit-1
localauthority
live-overlay
etc
default
skel
.local
share
gnome-shell
extensions
sound-output-device-chooser@kgshank.net
tweaks-system-menu@extensions.gnome-shell.fifi.org
unite@hardpixel.eu
buttons.jsconvenience.jsextension.jshandlers.jslayout.jsmetadata.jsonpanel.jsprefs.js
schemas
settings.ui
styles
stylesheet.css
themes
ambiance
arc-dark
arc-light
arrongin
breeze
default-dark
default-light
flat-remix
materia-dark
materia-light
osx-arc
pop-dark
pop-light
prof-gnome
radiance
telinkrin
united-dark
united-light
vertex
vimix
yaru
window.js
user-theme@gnome-shell-extensions.gcampax.github.com
NEWSextension.js
locale
af
an
ar
as
be
bg
bn_IN
bs
ca
ca@valencia
cs
da
de
el
en_GB
eo
es
et
eu
fa
fi
fr
fur
gd
gl
gu
he
hi
hr
hu
id
is
it
ja
kk
km
kn
ko
lt
lv
mjw
ml
mr
ms
nb
ne
nl
oc
or
pa
pl
pt
pt_BR
ro
ru
sk
sl
sr
sr@latin
sv
ta
te
tg
th
tr
uk
vi
zh_CN
zh_HK
zh_TW
metadata.jsonprefs.js
schemas
util.js
.mozilla
firefox
6q5q3muz.default
addonStartup.json.lz4addons.jsonbroadcast-listeners.jsoncompatibility.iniextensions.jsonfavicons.sqlitepermissions.sqliteplaces.sqliteprefs.jsprotections.sqlitesearch.json.mozlz4sessionstore.jsonlz4storage-sync-v2.sqlite-shmstorage-sync-v2.sqlite-walstorage.sqlite
storage
default
moz-extension+++216e4b1a-9104-4b5f-9e98-ff4d0023ec55^userContextId=4294967295
.metadata-v2
idb
3647222921wleabcEoxlt-eengsairo.files
3647222921wleabcEoxlt-eengsairo.sqlite
moz-extension+++256c7ceb-2fd8-4e47-bdc3-cb06c28a2511^userContextId=4294967295
moz-extension+++26d6ad01-a771-4b46-9e35-342122037141^userContextId=4294967295
moz-extension+++5fa9f4d9-b1b6-436a-976d-16c0d1f6a207^userContextId=4294967295
moz-extension+++90be17cd-7169-4943-9a04-3cd8bf7fec41
moz-extension+++90be17cd-7169-4943-9a04-3cd8bf7fec41^userContextId=4294967295
moz-extension+++a6c886c9-b630-43c6-b580-799f5a19fdb4^userContextId=4294967295
moz-extension+++d439fe79-e9bd-449b-b9ec-cc2b271f80c0^userContextId=4294967295
moz-extension+++dbb00a92-98b5-481a-8acc-56821f5c1539^userContextId=4294967295
moz-extension+++f393b4c4-359a-4d1e-b377-fd4b41112e16^userContextId=4294967295
permanent
xulstore.json
Crash Reports
root
.config
WebTorrent
profile.conf

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

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

@ -4,5 +4,16 @@
# Syntax: simple "KEY=VAL" pairs on separate lines # 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 EDITOR=/usr/bin/nano

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

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

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

@ -0,0 +1,124 @@
const Gettext = imports.gettext
const GObject = imports.gi.GObject
const Gio = imports.gi.Gio
const Config = imports.misc.config
const Unite = imports.misc.extensionUtils.getCurrentExtension()
var SettingsManager = GObject.registerClass(
class UniteSettings extends Gio.Settings {
get DEFAULT_BINDING() {
return Gio.SettingsBindFlags.DEFAULT
}
get _types() {
return {
'autofocus-windows': 'boolean',
'hide-activities-button': 'enum',
'show-window-title': 'enum',
'show-desktop-name': 'boolean',
'desktop-name-text': 'string',
'extend-left-box': 'boolean',
'notifications-position': 'enum',
'use-system-fonts': 'boolean',
'show-legacy-tray': 'boolean',
'greyscale-tray-icons': 'boolean',
'show-window-buttons': 'enum',
'window-buttons-theme': 'enum',
'hide-window-titlebars': 'enum',
'window-buttons-placement': 'select',
'hide-dropdown-arrows': 'boolean',
'hide-aggregate-menu-arrow': 'boolean',
'hide-app-menu-arrow': 'boolean',
'hide-app-menu-icon': 'boolean',
'reduce-panel-spacing': 'boolean',
'restrict-to-primary-screen': 'boolean'
}
}
exists(key) {
return Object.keys(this._types).includes(key)
}
getSettingType(key) {
return this._types[key] || 'invalid'
}
getTypeSettings(type) {
return Object.keys(this._types).filter(key => this._types[key] == type)
}
getSetting(key) {
if (!this.exists(key)) return
let boolean = this.getSettingType(key) == 'boolean'
return boolean ? this.get_boolean(key) : this.get_string(key)
}
}
)
var PreferencesManager = GObject.registerClass(
class UnitePreferences extends Gio.Settings {
get window_buttons_position() {
let setting = this.get_string('button-layout')
return /(close|minimize|maximize).*:/.test(setting) ? 'left' : 'right'
}
get window_buttons_layout() {
let setting = this.get_string('button-layout')
return setting.match(/(close|minimize|maximize)/g)
}
exists(key) {
let fun = key.replace(/-/g, '_')
return (fun in this) || this.list_keys().includes(key)
}
getSetting(key) {
let fun = key.replace(/-/g, '_')
if (this.exists(fun)) return this[fun]
if (this.exists(key)) return this.get_string(key)
}
}
)
function initTranslations(domain) {
let textDomain = domain || Unite.metadata['gettext-domain']
let localeDir = Unite.dir.get_child('locale')
if (localeDir.query_exists(null))
localeDir = localeDir.get_path()
else
localeDir = Config.LOCALEDIR
Gettext.bindtextdomain(textDomain, localeDir)
}
function getSettings(schema) {
schema = schema || Unite.metadata['settings-schema']
let gioSSS = Gio.SettingsSchemaSource
let schemaDir = Unite.dir.get_child('schemas')
let schemaSource = gioSSS.get_default()
if (schemaDir.query_exists(null)) {
schemaDir = schemaDir.get_path()
schemaSource = gioSSS.new_from_directory(schemaDir, schemaSource, false)
}
let schemaObj = schemaSource.lookup(schema, true)
if (!schemaObj) {
let metaId = Unite.metadata.uuid
let message = `Schema ${schema} could not be found for extension ${metaId}.`
throw new Error(`${message} Please check your installation.`)
}
return new SettingsManager({ settings_schema: schemaObj })
}
function getPreferences() {
let schemaId = 'org.gnome.desktop.wm.preferences'
return new PreferencesManager({ schema_id: schemaId })
}

@ -0,0 +1,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
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

(image error) Size: 1.8 KiB

@ -0,0 +1,22 @@
<svg height="19" width="19" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<linearGradient id="a" gradientUnits="userSpaceOnUse" x1="-16.999985" x2="-2.000025" y1="9.5" y2="9.5">
<stop offset="0" stop-color="#e24f1b"/>
<stop offset=".50001228" stop-color="#f17750"/>
<stop offset="1" stop-color="#fba992"/>
</linearGradient>
<linearGradient id="b" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#fff"/>
<stop offset="1" stop-color="#fff" stop-opacity="0"/>
</linearGradient>
<linearGradient id="c" gradientTransform="matrix(0 1 1 0 .00001 1072.3622)" x1="-1070.3622" x2="-1055.3622" xlink:href="#b" y1="9.499995" y2="9.499995"/>
<linearGradient id="d" gradientTransform="matrix(0 1.0357118 1.0357118 0 -.339252 1110.3189)" x1="-1070.3622" x2="-1055.3622" xlink:href="#b" y1="9.499995" y2="9.499995"/>
<circle cx="9.500002" cy="9.499983" fill="#383734" r="8.5"/>
<circle cx="-9.499983" cy="9.499995" fill="url(#a)" r="7.49998" transform="rotate(-90)"/>
<path d="m2.00001 9.4991c0-4.1362 3.363788-7.5 7.5-7.5s7.5 3.3638 7.5 7.5-3.363788 7.5-7.5 7.5-7.5-3.3638-7.5-7.5zm1 0c0 3.5958 2.9042281 6.5 6.5 6.5 3.595772 0 6.5-2.9042 6.5-6.5 0-3.5957-2.904228-6.5-6.5-6.5-3.5957719 0-6.5 2.9043-6.5 6.5z" fill="url(#c)" opacity=".07"/>
<path d="m2.00001 9.4991c0-4.1391 3.3608366-7.5 7.5-7.5 4.139163 0 7.5 3.3609 7.5 7.5 0 4.1392-3.360837 7.5-7.5 7.5-4.1391634 0-7.5-3.3608-7.5-7.5zm.5 0c0 3.869 3.1310567 7 7 7 3.868943 0 7-3.131 7-7 0-3.8689-3.131057-7-7-7-3.8689433 0-7 3.1311-7 7z" fill="url(#d)" opacity=".07"/>
<path d="m7.19922 7.49334-.70703.707.35351.3535 1.94727 1.9473-1.94727 1.9453-.35351.3535.70703.707.35352-.3535 1.94726-1.9472 1.94727 1.9472.35351.3535.70703-.707-.35351-.3535-1.94727-1.9453 1.94727-1.9473.35351-.3535-.70703-.707-.35351.3535-1.94727 1.9472-1.94726-1.9472z" fill="#fff" opacity=".25"/>
<g fill="#32312e">
<path d="m11.8005 6.49328-.35352.35351-4.59961 4.59961-.35351.35352.70703.70703.35352-.35352 4.59961-4.5996.35351-.35352z"/>
<path d="m7.20089 6.49328-.70703.70703.35351.35352 4.59961 4.5996.35352.35352.70703-.70703-.35351-.35352-4.59961-4.59961z"/>
</g>
</svg>

After

(image error) Size: 2.1 KiB

@ -0,0 +1,22 @@
<svg height="19" width="19" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<linearGradient id="a" gradientUnits="userSpaceOnUse" x1="-16.999985" x2="-2.000025" y1="9.5" y2="9.5">
<stop offset="0" stop-color="#de4c19"/>
<stop offset=".50001228" stop-color="#e55e30"/>
<stop offset="1" stop-color="#f58d6e"/>
</linearGradient>
<linearGradient id="b" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#fff"/>
<stop offset="1" stop-color="#fff" stop-opacity="0"/>
</linearGradient>
<linearGradient id="c" gradientTransform="matrix(0 1 1 0 0 1072.3622)" x1="-1070.3622" x2="-1055.3622" xlink:href="#b" y1="9.499995" y2="9.499995"/>
<linearGradient id="d" gradientTransform="matrix(0 1.0357118 1.0357118 0 -.339262 1110.3189)" x1="-1070.3622" x2="-1055.3622" xlink:href="#b" y1="9.499995" y2="9.499995"/>
<circle cx="9.499992" cy="9.499983" fill="#383734" r="8.5"/>
<circle cx="-9.499983" cy="9.499995" fill="url(#a)" r="7.49998" transform="rotate(-90)"/>
<path d="m2 9.4991c0-4.1362 3.363788-7.5 7.5-7.5s7.5 3.3638 7.5 7.5-3.363788 7.5-7.5 7.5-7.5-3.3638-7.5-7.5zm1 0c0 3.5958 2.9042281 6.5 6.5 6.5 3.595772 0 6.5-2.9042 6.5-6.5 0-3.5957-2.904228-6.5-6.5-6.5-3.5957719 0-6.5 2.9043-6.5 6.5z" fill="url(#c)" opacity=".07"/>
<path d="m2 9.4991c0-4.1391 3.3608366-7.5 7.5-7.5 4.139163 0 7.5 3.3609 7.5 7.5 0 4.1392-3.360837 7.5-7.5 7.5-4.1391634 0-7.5-3.3608-7.5-7.5zm.5 0c0 3.869 3.1310567 7 7 7 3.868943 0 7-3.131 7-7 0-3.8689-3.131057-7-7-7-3.8689433 0-7 3.1311-7 7z" fill="url(#d)" opacity=".07"/>
<path d="m7.19921 7.49334-.70703.707.35352.3535 1.94726 1.9473-1.94726 1.9453-.35352.3535.70703.707.35352-.3535 1.94727-1.9472 1.94726 1.9472.35352.3535.70703-.707-.35352-.3535-1.94726-1.9453 1.94726-1.9473.35352-.3535-.70703-.707-.35352.3535-1.94726 1.9472-1.94727-1.9472z" fill="#fff" opacity=".25"/>
<g fill="#32312e">
<path d="m11.80051 6.49328-.35352.35351-4.59961 4.59961-.35351.35352.70703.70703.35352-.35352 4.59961-4.5996.35351-.35352z"/>
<path d="m7.2009 6.49328-.70703.70703.35351.35352 4.59961 4.5996.35352.35352.70703-.70703-.35351-.35352-4.59961-4.59961z"/>
</g>
</svg>

After

(image error) Size: 2.1 KiB

@ -0,0 +1,17 @@
<svg height="19" width="19" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<linearGradient id="a" gradientUnits="userSpaceOnUse" x1="-16.999985" x2="-2.000025" y1="9.5" y2="9.5">
<stop offset="0" stop-color="#77766f"/>
<stop offset="1" stop-color="#74736c"/>
</linearGradient>
<linearGradient id="b" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#fff"/>
<stop offset="1"/>
</linearGradient>
<linearGradient id="c" gradientTransform="matrix(0 -1 1 0 .00001 -1053.36223)" x1="-1070.3622" x2="-1055.3622" xlink:href="#b" y1="8.999996" y2="8.999996"/>
<linearGradient id="d" gradientTransform="matrix(0 -1.0357118 1.0357118 0 -.339252 -1091.3189)" x1="-1070.1036" x2="-1055.6208" xlink:href="#b" y1="9.499995" y2="9.499995"/>
<circle cx="9.500002" cy="9.499983" fill="#383734" r="8.5"/>
<circle cx="-9.499983" cy="9.499995" fill="url(#a)" r="7.49998" transform="rotate(-90)"/>
<path d="m2.00001 9.4991c0 4.1362 3.363788 7.5 7.5 7.5s7.5-3.3638 7.5-7.5-3.363788-7.5-7.5-7.5-7.5 3.3638-7.5 7.5zm1 0c0-3.5957 2.9042281-6.5 6.5-6.5 3.595772 0 6.5 2.9043 6.5 6.5 0 3.5958-2.904228 6.5-6.5 6.5-3.5957719 0-6.5-2.9042-6.5-6.5z" fill="url(#c)" opacity=".05"/>
<path d="m2.00001 9.4991c0 4.1392 3.3608366 7.5 7.5 7.5 4.139163 0 7.5-3.3608 7.5-7.5 0-4.1391-3.360837-7.5-7.5-7.5-4.1391634 0-7.5 3.3609-7.5 7.5zm.5 0c0-3.8689 3.1310567-7 7-7 3.868943 0 7 3.1311 7 7 0 3.869-3.131057 7-7 7-3.8689433 0-7-3.131-7-7z" fill="url(#d)" opacity=".05"/>
<path d="m5.99972 5.99914v.5 6.5h7v-7zm1 1h5v5h-5z" fill="#3d3c37"/>
</svg>

After

(image error) Size: 1.6 KiB

@ -0,0 +1,19 @@
<svg height="19" width="19" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<linearGradient id="a" gradientUnits="userSpaceOnUse" x1="-16.999985" x2="-2.000025" y1="9.5" y2="9.5">
<stop offset="0" stop-color="#969696"/>
<stop offset=".50001228" stop-color="#bdbdbd"/>
<stop offset="1" stop-color="#cacaca"/>
</linearGradient>
<linearGradient id="b" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#fff"/>
<stop offset="1" stop-color="#fff" stop-opacity="0"/>
</linearGradient>
<linearGradient id="c" gradientTransform="matrix(0 1 1 0 .00001 1072.3622)" x1="-1070.3622" x2="-1055.3622" xlink:href="#b" y1="9.499995" y2="9.499995"/>
<linearGradient id="d" gradientTransform="matrix(0 1.0357118 1.0357118 0 -.339252 1110.3189)" x1="-1070.3622" x2="-1055.3622" xlink:href="#b" y1="9.499995" y2="9.499995"/>
<circle cx="9.500002" cy="9.499983" fill="#383734" r="8.5"/>
<circle cx="-9.499983" cy="9.499995" fill="url(#a)" r="7.49998" transform="rotate(-90)"/>
<path d="m2.00001 9.4991c0-4.1362 3.363788-7.5 7.5-7.5s7.5 3.3638 7.5 7.5-3.363788 7.5-7.5 7.5-7.5-3.3638-7.5-7.5zm1 0c0 3.5958 2.9042281 6.5 6.5 6.5 3.595772 0 6.5-2.9042 6.5-6.5 0-3.5957-2.904228-6.5-6.5-6.5-3.5957719 0-6.5 2.9043-6.5 6.5z" fill="url(#c)" opacity=".07"/>
<path d="m2.00001 9.4991c0-4.1391 3.3608366-7.5 7.5-7.5 4.139163 0 7.5 3.3609 7.5 7.5 0 4.1392-3.360837 7.5-7.5 7.5-4.1391634 0-7.5-3.3608-7.5-7.5zm.5 0c0 3.869 3.1310567 7 7 7 3.868943 0 7-3.131 7-7 0-3.8689-3.131057-7-7-7-3.8689433 0-7 3.1311-7 7z" fill="url(#d)" opacity=".07"/>
<path d="m5.99972 6.99914v.5 6.5h7v-7zm1 1h5v5h-5z" fill="#fff" opacity=".15"/>
<path d="m5.99972 5.99914v.5 6.5h7v-7zm1 1h5v5h-5z" fill="#51504b"/>
</svg>

After

(image error) Size: 1.7 KiB

@ -0,0 +1,19 @@
<svg height="19" width="19" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<linearGradient id="a" gradientUnits="userSpaceOnUse" x1="-16.999985" x2="-2.000025" y1="9.5" y2="9.5">
<stop offset="0" stop-color="#5a5955"/>
<stop offset=".50001228" stop-color="#75746d"/>
<stop offset="1" stop-color="#8e8d88"/>
</linearGradient>
<linearGradient id="b" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#fff"/>
<stop offset="1" stop-color="#fff" stop-opacity="0"/>
</linearGradient>
<linearGradient id="c" gradientTransform="matrix(0 1 1 0 .00001 1072.3622)" x1="-1070.3622" x2="-1055.3622" xlink:href="#b" y1="9.499995" y2="9.499995"/>
<linearGradient id="d" gradientTransform="matrix(0 1.0357118 1.0357118 0 -.339252 1110.3189)" x1="-1070.3622" x2="-1055.3622" xlink:href="#b" y1="9.499995" y2="9.499995"/>
<circle cx="9.500002" cy="9.499983" fill="#383734" r="8.5"/>
<circle cx="-9.499983" cy="9.499995" fill="url(#a)" r="7.49998" transform="rotate(-90)"/>
<path d="m2.00001 9.4991c0-4.1362 3.363788-7.5 7.5-7.5s7.5 3.3638 7.5 7.5-3.363788 7.5-7.5 7.5-7.5-3.3638-7.5-7.5zm1 0c0 3.5958 2.9042281 6.5 6.5 6.5 3.595772 0 6.5-2.9042 6.5-6.5 0-3.5957-2.904228-6.5-6.5-6.5-3.5957719 0-6.5 2.9043-6.5 6.5z" fill="url(#c)" opacity=".07"/>
<path d="m2.00001 9.4991c0-4.1391 3.3608366-7.5 7.5-7.5 4.139163 0 7.5 3.3609 7.5 7.5 0 4.1392-3.360837 7.5-7.5 7.5-4.1391634 0-7.5-3.3608-7.5-7.5zm.5 0c0 3.869 3.1310567 7 7 7 3.868943 0 7-3.131 7-7 0-3.8689-3.131057-7-7-7-3.8689433 0-7 3.1311-7 7z" fill="url(#d)" opacity=".07"/>
<path d="m5.99973 6.99914v.5 6.5h7v-7zm1 1h5v5h-5z" fill="#fff" opacity=".1"/>
<path d="m5.99973 5.99914v.5 6.5h7v-7zm1 1h5v5h-5z" fill="#3d3c37"/>
</svg>

After

(image error) Size: 1.7 KiB

@ -0,0 +1,17 @@
<svg height="19" width="19" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<linearGradient id="a" gradientUnits="userSpaceOnUse" x1="-16.999985" x2="-2.000025" y1="9.50001" y2="9.50001">
<stop offset="0" stop-color="#77766f"/>
<stop offset="1" stop-color="#74736c"/>
</linearGradient>
<linearGradient id="b" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#fff"/>
<stop offset="1"/>
</linearGradient>
<linearGradient id="c" gradientTransform="matrix(0 -1 1 0 .00001 -1053.36223)" x1="-1070.3622" x2="-1055.3622" xlink:href="#b" y1="8.999996" y2="8.999996"/>
<linearGradient id="d" gradientTransform="matrix(0 -1.0357118 1.0357118 0 -.339252 -1091.3189)" x1="-1070.1036" x2="-1055.6208" xlink:href="#b" y1="9.499995" y2="9.499995"/>
<circle cx="9.500002" cy="9.499983" fill="#383734" r="8.5"/>
<circle cx="-9.499992" cy="9.500005" fill="url(#a)" r="7.49998" transform="rotate(-90)"/>
<path d="m2.00001 9.4991c0 4.1362 3.363788 7.5 7.5 7.5s7.5-3.3638 7.5-7.5-3.363788-7.5-7.5-7.5-7.5 3.3638-7.5 7.5zm1 0c0-3.5957 2.9042281-6.5 6.5-6.5 3.595772 0 6.5 2.9043 6.5 6.5 0 3.5958-2.904228 6.5-6.5 6.5-3.5957719 0-6.5-2.9042-6.5-6.5z" fill="url(#c)" opacity=".05"/>
<path d="m2.00001 9.4991c0 4.1392 3.3608366 7.5 7.5 7.5 4.139163 0 7.5-3.3608 7.5-7.5 0-4.1391-3.360837-7.5-7.5-7.5-4.1391634 0-7.5 3.3609-7.5 7.5zm.5 0c0-3.8689 3.1310567-7 7-7 3.868943 0 7 3.1311 7 7 0 3.869-3.131057 7-7 7-3.8689433 0-7-3.131-7-7z" fill="url(#d)" opacity=".05"/>
<path d="m6.00002 8.99999h7v1h-7z" fill="#3d3c37"/>
</svg>

After

(image error) Size: 1.5 KiB

@ -0,0 +1,19 @@
<svg height="19" width="19" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<linearGradient id="a" gradientUnits="userSpaceOnUse" x1="-16.999985" x2="-2.000025" y1="9.50001" y2="9.50001">
<stop offset="0" stop-color="#969696"/>
<stop offset=".50001228" stop-color="#bdbdbd"/>
<stop offset="1" stop-color="#cacaca"/>
</linearGradient>
<linearGradient id="b" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#fff"/>
<stop offset="1" stop-color="#fff" stop-opacity="0"/>
</linearGradient>
<linearGradient id="c" gradientTransform="matrix(0 1 1 0 .00001 1072.3622)" x1="-1070.3622" x2="-1055.3622" xlink:href="#b" y1="9.499995" y2="9.499995"/>
<linearGradient id="d" gradientTransform="matrix(0 1.0357118 1.0357118 0 -.339252 1110.3189)" x1="-1070.3622" x2="-1055.3622" xlink:href="#b" y1="9.499995" y2="9.499995"/>
<circle cx="9.500002" cy="9.499983" fill="#383734" r="8.5"/>
<circle cx="-9.499992" cy="9.500005" fill="url(#a)" r="7.49998" transform="rotate(-90)"/>
<path d="m2.00001 9.4991c0-4.1362 3.363788-7.5 7.5-7.5s7.5 3.3638 7.5 7.5-3.363788 7.5-7.5 7.5-7.5-3.3638-7.5-7.5zm1 0c0 3.5958 2.9042281 6.5 6.5 6.5 3.595772 0 6.5-2.9042 6.5-6.5 0-3.5957-2.904228-6.5-6.5-6.5-3.5957719 0-6.5 2.9043-6.5 6.5z" fill="url(#c)" opacity=".07"/>
<path d="m2.00001 9.4991c0-4.1391 3.3608366-7.5 7.5-7.5 4.139163 0 7.5 3.3609 7.5 7.5 0 4.1392-3.360837 7.5-7.5 7.5-4.1391634 0-7.5-3.3608-7.5-7.5zm.5 0c0 3.869 3.1310567 7 7 7 3.868943 0 7-3.131 7-7 0-3.8689-3.131057-7-7-7-3.8689433 0-7 3.1311-7 7z" fill="url(#d)" opacity=".07"/>
<path d="m5.99999 9.00005h7v1h-7z" fill="#51504b"/>
<path d="m5.99999 10.00005h7v1h-7z" fill="#fff" opacity=".15"/>
</svg>

After

(image error) Size: 1.7 KiB

@ -0,0 +1,19 @@
<svg height="19" width="19" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<linearGradient id="a" gradientUnits="userSpaceOnUse" x1="-16.999985" x2="-2.000025" y1="9.5" y2="9.5">
<stop offset="0" stop-color="#5a5955"/>
<stop offset=".50001228" stop-color="#75746d"/>
<stop offset="1" stop-color="#8e8d88"/>
</linearGradient>
<linearGradient id="b" gradientTransform="matrix(0 1 1 0 .00001 1072.3622)" x1="-1070.3622" x2="-1055.3622" xlink:href="#d" y1="9.499995" y2="9.499995"/>
<linearGradient id="c" gradientTransform="matrix(0 1.0357118 1.0357118 0 -.339252 1110.3189)" x1="-1070.3622" x2="-1055.3622" xlink:href="#d" y1="9.499995" y2="9.499995"/>
<linearGradient id="d" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="#fff"/>
<stop offset="1" stop-color="#fff" stop-opacity="0"/>
</linearGradient>
<circle cx="9.500002" cy="9.499983" fill="#383734" r="8.5"/>
<circle cx="-9.499983" cy="9.499995" fill="url(#a)" r="7.49998" transform="rotate(-90)"/>
<path d="m2.00001 9.4991c0-4.1362 3.363788-7.5 7.5-7.5s7.5 3.3638 7.5 7.5-3.363788 7.5-7.5 7.5-7.5-3.3638-7.5-7.5zm1 0c0 3.5958 2.9042281 6.5 6.5 6.5 3.595772 0 6.5-2.9042 6.5-6.5 0-3.5957-2.904228-6.5-6.5-6.5-3.5957719 0-6.5 2.9043-6.5 6.5z" fill="url(#b)" opacity=".07"/>
<path d="m2.00001 9.4991c0-4.1391 3.3608366-7.5 7.5-7.5 4.139163 0 7.5 3.3609 7.5 7.5 0 4.1392-3.360837 7.5-7.5 7.5-4.1391634 0-7.5-3.3608-7.5-7.5zm.5 0c0 3.869 3.1310567 7 7 7 3.868943 0 7-3.131 7-7 0-3.8689-3.131057-7-7-7-3.8689433 0-7 3.1311-7 7z" fill="url(#c)" opacity=".07"/>
<path d="m6 8.99999h7v1h-7z" fill="#3d3c37"/>
<path d="m6 9.99999h7v1h-7z" fill="#fff" opacity=".1"/>
</svg>

After

(image error) Size: 1.7 KiB

@ -0,0 +1,40 @@
.window-button .icon {
width: 19px;
height: 19px;
}
.close .icon {
background-image: url("close.svg");
}
.close:hover .icon {
background-image: url("close-hover.svg");
}
.close:active .icon {
background-image: url("close-active.svg");
}
.minimize .icon {
background-image: url("minimize.svg");
}
.minimize:hover .icon {
background-image: url("minimize-hover.svg");
}
.minimize:active .icon {
background-image: url("minimize-active.svg");
}
.maximize .icon {
background-image: url("maximize.svg");
}
.maximize:hover .icon {
background-image: url("maximize-hover.svg");
}
.maximize:active .icon {
background-image: url("maximize-active.svg");
}

@ -0,0 +1,3 @@
<svg height="24" width="24" xmlns="http://www.w3.org/2000/svg">
<path d="m12 4.99999a7 7 0 0 0 -7 7 7 7 0 0 0 7 7 7 7 0 0 0 7-7 7 7 0 0 0 -7-7zm-3 3.92188h.75c.008-.0001.0156-.00035.0234 0 .19121.008.3824.0964.51562.23437l1.71094 1.71094 1.73438-1.71094c.19921-.17287.335-.22913.51562-.23437h.75v.75c0 .21485-.0258.41298-.1875.5625l-1.71094 1.71093 1.6875 1.6875c.14114.14113.21093.34009.21094.53907v.75h-.75c-.19898-.00001-.39794-.0698-.53906-.21094l-1.7109-1.71094-1.71094 1.71094c-.14112.14114-.34009.21094-.53906.21094h-.75v-.75c0-.19897.0698-.39794.21094-.53907l1.71094-1.6875-1.71094-1.71093c-.15806-.14598-.22737-.35194-.21094-.5625z" fill="#be3841"/>
</svg>

After

(image error) Size: 668 B

@ -0,0 +1,3 @@
<svg height="24" width="24" xmlns="http://www.w3.org/2000/svg">
<path d="m12 5a7 7 0 0 0 -7 7 7 7 0 0 0 7 7 7 7 0 0 0 7-7 7 7 0 0 0 -7-7zm-3 3.921875h.75c.008-.00009.0156-.000345.0234 0 .19121.0084.3824.09643.51562.234375l1.71098 1.710938 1.73438-1.710938c.19921-.172875.335-.229125.51562-.234375h.75v.75c0 .214853-.0258.412987-.1875.5625l-1.71094 1.710937 1.6875 1.687498c.14114.14113.21093.34009.21094.53907v.75h-.75c-.19898-.00001-.39794-.0698-.53906-.21094l-1.71094-1.71094-1.71094 1.71094c-.14112.14114-.34009.21094-.53906.21094h-.75v-.75c0-.19897.0698-.39794.21094-.53907l1.71094-1.687498-1.71094-1.710937c-.15806-.145972-.22737-.351937-.21094-.5625z" fill="#d7787d"/>
</svg>

After

(image error) Size: 684 B

@ -0,0 +1,3 @@
<svg height="24" width="24" xmlns="http://www.w3.org/2000/svg">
<path d="m12.00001 5a7 7 0 0 0 -7 7 7 7 0 0 0 7 7 7 7 0 0 0 7-7 7 7 0 0 0 -7-7zm-3 3.921875h.75c.008-.00009.0156-.000345.0234 0 .19121.0084.3824.09643.51562.234375l1.71098 1.710938 1.73438-1.710938c.19921-.172875.335-.229125.51562-.234375h.75v.75c0 .214853-.0258.412987-.1875.5625l-1.71094 1.710937 1.6875 1.6875c.14114.141128.21093.340088.21094.539063v.75h-.75c-.19898-.000008-.39794-.06982-.53906-.210937l-1.71094-1.710938-1.71094 1.710938c-.14112.141142-.34009.210937-.53906.210937h-.75v-.75c0-.198967.0698-.397935.21094-.539063l1.71094-1.6875-1.71094-1.710937c-.15806-.145972-.22737-.351937-.21094-.5625z" fill="#cc575d"/>
</svg>

After

(image error) Size: 700 B

@ -0,0 +1,7 @@
<svg height="24" width="24" xmlns="http://www.w3.org/2000/svg">
<ellipse cx="12" cy="11.99998" fill="#5f697f" opacity=".45" rx="6" ry="6.000001"/>
<path d="m12 4.99998a7 7 0 0 0 -7 7 7 7 0 0 0 7 7 7 7 0 0 0 7-7 7 7 0 0 0 -7-7zm0 1a6 6 0 0 1 6 6 6 6 0 0 1 -6 6 6 6 0 0 1 -6-6 6 6 0 0 1 6-6z" fill="#15171c" opacity=".37"/>
<path d="m10.799505 8.99998h3.381737c.450297 0 .816227.36847.818758.8188v3.3817zm2.407413 6.00692h-3.395078c-.450346 0-.818758-.36842-.818758-.81875v-3.39509z" fill="#c4c7cc"/>
<circle cx="11.99999" cy="11.99998" fill="#5294e2" r="7"/>
<path d="m10.799495 8.99998h3.381737c.450297 0 .816227.36847.818758.8188v3.3817zm2.407413 6.00692h-3.395078c-.450346 0-.818758-.36842-.818758-.81875v-3.39509z" fill="#fff"/>
</svg>

After

(image error) Size: 749 B

@ -0,0 +1,5 @@
<svg height="24" width="24" xmlns="http://www.w3.org/2000/svg">
<ellipse cx="12" cy="11.99998" fill="#5f697f" opacity=".45" rx="6" ry="6.000001"/>
<path d="m12 4.99998a7 7 0 0 0 -7 7 7 7 0 0 0 7 7 7 7 0 0 0 7-7 7 7 0 0 0 -7-7zm0 1a6 6 0 0 1 6 6 6 6 0 0 1 -6 6 6 6 0 0 1 -6-6 6 6 0 0 1 6-6z" fill="#15171c" opacity=".37"/>
<path d="m10.799505 8.99998h3.381737c.450297 0 .816227.36847.818758.8188v3.3817zm2.407413 6.00692h-3.395078c-.450346 0-.818758-.36842-.818758-.81875v-3.39509z" fill="#c4c7cc"/>
</svg>

After

(image error) Size: 512 B

@ -0,0 +1,3 @@
<svg height="24" width="24" xmlns="http://www.w3.org/2000/svg">
<path d="m10.79948 8.99998h3.3818c.4503 0 .8162.36847.8187.8188v3.3817zm2.4074 6.00692h-3.395c-.4504 0-.8188-.36842-.8188-.81875v-3.39509z" fill="#b9bcc2" opacity=".7"/>
</svg>

After

(image error) Size: 243 B

@ -0,0 +1,4 @@
<svg height="24" width="24" xmlns="http://www.w3.org/2000/svg">
<circle cx="11.99999" cy="11.99998" fill="#5294e2" r="7"/>
<path d="m8.99999 10.99998v2h6v-2z" fill="#fff"/>
</svg>

After

(image error) Size: 184 B

@ -0,0 +1,5 @@
<svg height="24" width="24" xmlns="http://www.w3.org/2000/svg">
<ellipse cx="12" cy="11.99998" fill="#5f697f" opacity=".45" rx="6" ry="6.000001"/>
<path d="m12 4.99998a7 7 0 0 0 -7 7 7 7 0 0 0 7 7 7 7 0 0 0 7-7 7 7 0 0 0 -7-7zm0 1a6 6 0 0 1 6 6 6 6 0 0 1 -6 6 6 6 0 0 1 -6-6 6 6 0 0 1 6-6z" fill="#15171c" opacity=".37"/>
<path d="m9 10.99998v2h6v-2z" fill="#c4c7cc"/>
</svg>

After

(image error) Size: 382 B

@ -0,0 +1,3 @@
<svg height="24" width="24" xmlns="http://www.w3.org/2000/svg">
<path d="m8.99998 10.99998v2h6v-2z" fill="#b9bcc2" opacity=".7"/>
</svg>

After

(image error) Size: 139 B

@ -0,0 +1,40 @@
.window-button .icon {
width: 24px;
height: 24px;
}
.close .icon {
background-image: url("close.svg");
}
.close:hover .icon {
background-image: url("close-hover.svg");
}
.close:active .icon {
background-image: url("close-active.svg");
}
.minimize .icon {
background-image: url("minimize.svg");
}
.minimize:hover .icon {
background-image: url("minimize-hover.svg");
}
.minimize:active .icon {
background-image: url("minimize-active.svg");
}
.maximize .icon {
background-image: url("maximize.svg");
}
.maximize:hover .icon {
background-image: url("maximize-hover.svg");
}
.maximize:active .icon {
background-image: url("maximize-active.svg");
}

@ -0,0 +1,3 @@
<svg height="24" width="24" xmlns="http://www.w3.org/2000/svg">
<path d="m12 4.99999a7 7 0 0 0 -7 7 7 7 0 0 0 7 7 7 7 0 0 0 7-7 7 7 0 0 0 -7-7zm-3 3.92188h.75c.008-.0001.0156-.00035.0234 0 .19121.008.3824.0964.51562.23437l1.71094 1.71094 1.73438-1.71094c.19921-.17287.335-.22913.51562-.23437h.75v.75c0 .21485-.0258.41298-.1875.5625l-1.71094 1.71093 1.6875 1.6875c.14114.14113.21093.34009.21094.53907v.75h-.75c-.19898-.00001-.39794-.0698-.53906-.21094l-1.7109-1.71094-1.71094 1.71094c-.14112.14114-.34009.21094-.53906.21094h-.75v-.75c0-.19897.0698-.39794.21094-.53907l1.71094-1.6875-1.71094-1.71093c-.15806-.14598-.22737-.35194-.21094-.5625z" fill="#f13039"/>
</svg>

After

(image error) Size: 668 B

@ -0,0 +1,3 @@
<svg height="24" width="24" xmlns="http://www.w3.org/2000/svg">
<path d="m12 5a7 7 0 0 0 -7 7 7 7 0 0 0 7 7 7 7 0 0 0 7-7 7 7 0 0 0 -7-7zm-3 3.921875h.75c.008-.00009.0156-.000345.0234 0 .19121.0084.3824.09643.51562.234375l1.71098 1.710938 1.73438-1.710938c.19921-.172875.335-.229125.51562-.234375h.75v.75c0 .214853-.0258.412987-.1875.5625l-1.71094 1.710937 1.6875 1.687498c.14114.14113.21093.34009.21094.53907v.75h-.75c-.19898-.00001-.39794-.0698-.53906-.21094l-1.71094-1.71094-1.71094 1.71094c-.14112.14114-.34009.21094-.53906.21094h-.75v-.75c0-.19897.0698-.39794.21094-.53907l1.71094-1.687498-1.71094-1.710937c-.15806-.145972-.22737-.351937-.21094-.5625z" fill="#f68086"/>
</svg>

After

(image error) Size: 684 B

@ -0,0 +1,3 @@
<svg height="24" width="24" xmlns="http://www.w3.org/2000/svg">
<path d="m12.00001 5a7 7 0 0 0 -7 7 7 7 0 0 0 7 7 7 7 0 0 0 7-7 7 7 0 0 0 -7-7zm-3 3.921875h.75c.008-.00009.0156-.000345.0234 0 .19121.0084.3824.09643.51562.234375l1.71098 1.710938 1.73438-1.710938c.19921-.172875.335-.229125.51562-.234375h.75v.75c0 .214853-.0258.412987-.1875.5625l-1.71094 1.710937 1.6875 1.6875c.14114.141128.21093.340088.21094.539063v.75h-.75c-.19898-.000008-.39794-.06982-.53906-.210937l-1.71094-1.710938-1.71094 1.710938c-.14112.141142-.34009.210937-.53906.210937h-.75v-.75c0-.198967.0698-.397935.21094-.539063l1.71094-1.6875-1.71094-1.710937c-.15806-.145972-.22737-.351937-.21094-.5625z" fill="#f46067"/>
</svg>

After

(image error) Size: 700 B

@ -0,0 +1,7 @@
<svg height="24" width="24" xmlns="http://www.w3.org/2000/svg">
<ellipse cx="12" cy="11.99998" fill="#5f697f" opacity=".45" rx="6" ry="6.000001"/>
<path d="m12 4.99998a7 7 0 0 0 -7 7 7 7 0 0 0 7 7 7 7 0 0 0 7-7 7 7 0 0 0 -7-7zm0 1a6 6 0 0 1 6 6 6 6 0 0 1 -6 6 6 6 0 0 1 -6-6 6 6 0 0 1 6-6z" fill="#15171c" opacity=".37"/>
<path d="m10.799505 8.99998h3.381737c.450297 0 .816227.36847.818758.8188v3.3817zm2.407413 6.00692h-3.395078c-.450346 0-.818758-.36842-.818758-.81875v-3.39509z" fill="#c4c7cc"/>
<circle cx="11.99999" cy="11.99998" fill="#5294e2" r="7"/>
<path d="m10.799495 8.99998h3.381737c.450297 0 .816227.36847.818758.8188v3.3817zm2.407413 6.00692h-3.395078c-.450346 0-.818758-.36842-.818758-.81875v-3.39509z" fill="#fff"/>
</svg>

After

(image error) Size: 749 B

@ -0,0 +1,5 @@
<svg height="24" width="24" xmlns="http://www.w3.org/2000/svg">
<ellipse cx="12" cy="11.99998" fill="#fff" opacity=".95" rx="6" ry="6.000001"/>
<path d="m12 4.99998a7 7 0 0 0 -7 7 7 7 0 0 0 7 7 7 7 0 0 0 7-7 7 7 0 0 0 -7-7zm0 1a6 6 0 0 1 6 6 6 6 0 0 1 -6 6 6 6 0 0 1 -6-6 6 6 0 0 1 6-6z" fill="#525d76" opacity=".15"/>
<path d="m10.799505 8.99998h3.381737c.450297 0 .816227.36847.818758.8188v3.3817zm2.407413 6.00692h-3.395078c-.450346 0-.818758-.36842-.818758-.81875v-3.39509z" fill="#7a7f8b"/>
</svg>

After

(image error) Size: 509 B

@ -0,0 +1,3 @@
<svg height="24" width="24" xmlns="http://www.w3.org/2000/svg">
<path d="m10.7995 8.99998h3.3818c.4503 0 .8162.36847.8187.8188v3.3817zm2.4074 6.00692h-3.395c-.4504 0-.8188-.36842-.8188-.81875v-3.39509z" fill="#7a7f8b" opacity=".8"/>
</svg>

After

(image error) Size: 242 B

@ -0,0 +1,4 @@
<svg height="24" width="24" xmlns="http://www.w3.org/2000/svg">
<circle cx="11.99999" cy="11.99998" fill="#5294e2" r="7"/>
<path d="m8.99999 10.99998v2h6v-2z" fill="#fff"/>
</svg>

After

(image error) Size: 184 B

@ -0,0 +1,5 @@
<svg height="24" width="24" xmlns="http://www.w3.org/2000/svg">
<ellipse cx="12" cy="11.99998" fill="#fff" opacity=".95" rx="6" ry="6.000001"/>
<path d="m12 4.99998a7 7 0 0 0 -7 7 7 7 0 0 0 7 7 7 7 0 0 0 7-7 7 7 0 0 0 -7-7zm0 1a6 6 0 0 1 6 6 6 6 0 0 1 -6 6 6 6 0 0 1 -6-6 6 6 0 0 1 6-6z" fill="#525d76" opacity=".15"/>
<path d="m9 10.99998v2h6v-2z" fill="#7a7f8b"/>
</svg>

After

(image error) Size: 379 B

@ -0,0 +1,3 @@
<svg height="24" width="24" xmlns="http://www.w3.org/2000/svg">
<path d="m9 10.99998v2h6v-2z" fill="#7a7f8b" opacity=".8"/>
</svg>

After

(image error) Size: 133 B

@ -0,0 +1,40 @@
.window-button .icon {
width: 24px;
height: 24px;
}
.close .icon {
background-image: url("close.svg");
}
.close:hover .icon {
background-image: url("close-hover.svg");
}
.close:active .icon {
background-image: url("close-active.svg");
}
.minimize .icon {
background-image: url("minimize.svg");
}
.minimize:hover .icon {
background-image: url("minimize-hover.svg");
}
.minimize:active .icon {
background-image: url("minimize-active.svg");
}
.maximize .icon {
background-image: url("maximize.svg");
}
.maximize:hover .icon {
background-image: url("maximize-hover.svg");
}
.maximize:active .icon {
background-image: url("maximize-active.svg");
}

@ -0,0 +1 @@
<svg height="16" viewBox="0 0 4.2333333 4.2333332" width="16" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><linearGradient id="a" gradientUnits="userSpaceOnUse" x1="2.116667" x2="2.116667" y1="293.56042" y2="295.67709"><stop offset="0" stop-color="#a40"/><stop offset="1" stop-color="#a40"/></linearGradient><circle cx="2.116667" cy="294.88336" fill="url(#a)" r="2.116667" transform="translate(0 -292.76669)"/></svg>

After

(image error) Size: 449 B

@ -0,0 +1 @@
<svg height="16" viewBox="0 0 4.2333333 4.2333332" width="16" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><linearGradient id="a" gradientUnits="userSpaceOnUse" x1="2.116667" x2="2.116667" y1="293.56042" y2="295.67709"><stop offset="0" stop-color="#a40"/><stop offset="1" stop-color="#d45500"/></linearGradient><circle cx="2.116667" cy="294.88336" fill="url(#a)" r="2.116667" transform="translate(0 -292.76669)"/></svg>

After

(image error) Size: 452 B

@ -0,0 +1 @@
<svg height="16" viewBox="0 0 4.2333333 4.2333332" width="16" xmlns="http://www.w3.org/2000/svg"><circle cx="2.116667" cy="2.11667" fill="#a40" r="2.116667"/></svg>

After

(image error) Size: 164 B

@ -0,0 +1 @@
<svg height="16" viewBox="0 0 4.2333333 4.2333332" width="16" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><linearGradient id="a" gradientUnits="userSpaceOnUse" x1="2.116667" x2="2.116667" y1="293.56042" y2="295.67709"><stop offset="0" stop-color="#d45500"/><stop offset="1" stop-color="#d45500"/></linearGradient><circle cx="2.116667" cy="294.88336" fill="url(#a)" r="2.116667" transform="translate(0 -292.76669)"/></svg>

After

(image error) Size: 455 B

@ -0,0 +1 @@
<svg height="16" viewBox="0 0 4.2333333 4.2333332" width="16" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><linearGradient id="a" gradientUnits="userSpaceOnUse" x1="2.116667" x2="2.116667" y1="296.20627" y2="293.56042"><stop offset="0" stop-color="#dc6f26" stop-opacity=".706422"/><stop offset="1" stop-color="#dc6f26"/></linearGradient><circle cx="2.116667" cy="294.88336" fill="url(#a)" r="2.116667" transform="translate(0 -292.76669)"/></svg>

After

(image error) Size: 478 B

@ -0,0 +1 @@
<svg height="16" viewBox="0 0 4.2333333 4.2333332" width="16" xmlns="http://www.w3.org/2000/svg"><circle cx="2.116667" cy="2.11667" fill="#dc6f26" r="2.116667"/></svg>

After

(image error) Size: 167 B

@ -0,0 +1 @@
<svg height="16" viewBox="0 0 4.2333333 4.2333332" width="16" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><linearGradient id="a" gradientUnits="userSpaceOnUse" x1="2.116667" x2="2.116667" y1="293.82501" y2="296.20627"><stop offset="0" stop-color="#ff7f2a"/><stop offset="1" stop-color="#ff7f2a"/></linearGradient><circle cx="2.116667" cy="294.88336" fill="url(#a)" r="2.116667" transform="translate(0 -292.76669)"/></svg>

After

(image error) Size: 455 B

@ -0,0 +1 @@
<svg height="16" viewBox="0 0 4.2333333 4.2333332" width="16" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><linearGradient id="a" gradientUnits="userSpaceOnUse" x1="2.116667" x2="2.116667" y1="296.20627" y2="293.56042"><stop offset="0" stop-color="#dc6f26" stop-opacity=".422018"/><stop offset="1" stop-color="#dc6f26" stop-opacity=".706422"/></linearGradient><circle cx="2.116667" cy="294.88336" fill="url(#a)" r="2.116667" transform="translate(0 -292.76669)"/></svg>

After

(image error) Size: 501 B

@ -0,0 +1 @@
<svg height="16" viewBox="0 0 4.2333333 4.2333332" width="16" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><linearGradient id="a" gradientUnits="userSpaceOnUse" x1="2.116667" x2="2.116667" y1="296.20627" y2="293.56042"><stop offset="0" stop-color="#dc6f26" stop-opacity=".706422"/><stop offset="1" stop-color="#dc6f26" stop-opacity=".706422"/></linearGradient><circle cx="2.116667" cy="294.88336" fill="url(#a)" r="2.116667" transform="translate(0 -292.76669)"/></svg>

After

(image error) Size: 501 B

@ -0,0 +1,40 @@
.window-button .icon {
width: 16px;
height: 16px;
}
.close .icon {
background-image: url("close.svg");
}
.close:hover .icon {
background-image: url("close-hover.svg");
}
.close:active .icon {
background-image: url("close-active.svg");
}
.minimize .icon {
background-image: url("minimize.svg");
}
.minimize:hover .icon {
background-image: url("minimize-hover.svg");
}
.minimize:active .icon {
background-image: url("minimize-active.svg");
}
.maximize .icon {
background-image: url("maximize.svg");
}
.maximize:hover .icon {
background-image: url("maximize-hover.svg");
}
.maximize:active .icon {
background-image: url("maximize-active.svg");
}

@ -0,0 +1,3 @@
<svg 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

(image error) Size: 358 B

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

(image error) Size: 656 B

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

(image error) Size: 355 B

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

(image error) Size: 291 B

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

(image error) Size: 278 B

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

(image error) Size: 346 B

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

(image error) Size: 296 B

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

(image error) Size: 283 B

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

(image error) Size: 342 B

@ -0,0 +1,40 @@
.window-button .icon {
width: 24px;
height: 24px;
}
.close .icon {
background-image: url("close.svg");
}
.close:hover .icon {
background-image: url("close-hover.svg");
}
.close:active .icon {
background-image: url("close-active.svg");
}
.minimize .icon {
background-image: url("minimize.svg");
}
.minimize:hover .icon {
background-image: url("minimize-hover.svg");
}
.minimize:active .icon {
background-image: url("minimize-active.svg");
}
.maximize .icon {
background-image: url("maximize.svg");
}
.maximize:hover .icon {
background-image: url("maximize-hover.svg");
}
.maximize:active .icon {
background-image: url("maximize-active.svg");
}

@ -0,0 +1,3 @@
<svg height="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

(image error) Size: 792 B

@ -0,0 +1,3 @@
<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg">
<path d="m8 1c-3.8659932 0-7 3.1340068-7 7 0 3.865993 3.1340068 7 7 7 3.865993 0 7-3.134007 7-7 0-3.8659932-3.134007-7-7-7zm-2.9980469 4h.7734375c.1911381.0084.382455.096439.515625.234375l1.7109375 1.7109375 1.7324219-1.7109375c.1991407-.1728699.335074-.2291253.515625-.234375h.75v.75c0 .2148463-.02582.4129919-.1875.5625l-1.7109375 1.7109375 1.6874995 1.6875c.141085.141124.210933.3400935.210938.5390625v.75h-.75c-.198898-.000007-.397995-.06984-.5390625-.210938l-1.7089844-1.710937-1.7109375 1.710937c-.1410675.141138-.3401732.210938-.5390625.210938h-.75v-.75c-.0000022-.198962.06985-.3979385.2109375-.5390625l1.7109375-1.6875-1.7109375-1.7109375c-.1579944-.1459682-.2273635-.3519436-.2109375-.5625z" fill="#e12929"/>
</svg>

After

(image error) Size: 792 B

@ -0,0 +1,3 @@
<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg">
<path d="m8 1c-3.8659932 0-7 3.1340068-7 7 0 3.865993 3.1340068 7 7 7 3.865993 0 7-3.134007 7-7 0-3.8659932-3.134007-7-7-7zm-2.9980469 4h.7734375c.1911381.0084.382455.096439.515625.234375l1.7109375 1.7109375 1.7324219-1.7109375c.1991407-.1728699.335074-.2291253.515625-.234375h.75v.75c0 .2148463-.02582.4129919-.1875.5625l-1.7109375 1.7109375 1.6874995 1.6875c.141085.141124.210933.3400935.210938.5390625v.75h-.75c-.198898-.000007-.397995-.06984-.5390625-.210938l-1.7089844-1.710937-1.7109375 1.710937c-.1410675.141138-.3401732.210938-.5390625.210938h-.75v-.75c-.0000022-.198962.06985-.3979385.2109375-.5390625l1.7109375-1.6875-1.7109375-1.7109375c-.1579944-.1459682-.2273635-.3519436-.2109375-.5625z" fill="#cc1010"/>
</svg>

After

(image error) Size: 792 B

@ -0,0 +1,3 @@
<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg">
<path d="m8 1c-3.8659932 0-7 3.1340068-7 7 0 3.865993 3.1340068 7 7 7 3.865993 0 7-3.134007 7-7 0-3.8659932-3.134007-7-7-7zm-2.1660156 4h4.3320316c.41743.00104.835984.4066744.833984.8339844v5.1660156h-6v-5.1660156c0-.42695.4170244-.8239844.8339844-.8339844zm1.1660156 2v2h2v-2z" fill="#fff"/>
</svg>

After

(image error) Size: 366 B

@ -0,0 +1,3 @@
<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg">
<path d="m8 1c-3.8659932 0-7 3.1340068-7 7 0 3.865993 3.1340068 7 7 7 3.865993 0 7-3.134007 7-7 0-3.8659932-3.134007-7-7-7zm-2.1660156 4h4.3320316c.41743.00104.835984.4066744.833984.8339844v5.1660156h-6v-5.1660156c0-.42695.4170244-.8239844.8339844-.8339844zm1.1660156 2v2h2v-2z" fill="#efefef"/>
</svg>

After

(image error) Size: 369 B

@ -0,0 +1,3 @@
<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg">
<path d="m8 1c-3.8659932 0-7 3.1340068-7 7 0 3.865993 3.1340068 7 7 7 3.865993 0 7-3.134007 7-7 0-3.8659932-3.134007-7-7-7zm-2.1660156 4h4.3320316c.41743.00104.835984.4066744.833984.8339844v5.1660156h-6v-5.1660156c0-.42695.4170244-.8239844.8339844-.8339844zm1.1660156 2v2h2v-2z" fill="#ccc"/>
</svg>

After

(image error) Size: 366 B

@ -0,0 +1,3 @@
<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg">
<path d="m8 1a7 7 0 0 0 -7 7 7 7 0 0 0 7 7 7 7 0 0 0 7-7 7 7 0 0 0 -7-7zm-2 6h4c.554 0 1 .446 1 1s-.446 1-1 1h-4c-.554 0-1-.446-1-1s.446-1 1-1z" fill="#fff"/>
</svg>

After

(image error) Size: 232 B

@ -0,0 +1,3 @@
<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg">
<path d="m8 1a7 7 0 0 0 -7 7 7 7 0 0 0 7 7 7 7 0 0 0 7-7 7 7 0 0 0 -7-7zm-2 6h4c.554 0 1 .446 1 1s-.446 1-1 1h-4c-.554 0-1-.446-1-1s.446-1 1-1z" fill="#efefef"/>
</svg>

After

(image error) Size: 235 B

@ -0,0 +1,3 @@
<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg">
<path d="m8 1a7 7 0 0 0 -7 7 7 7 0 0 0 7 7 7 7 0 0 0 7-7 7 7 0 0 0 -7-7zm-2 6h4c.554 0 1 .446 1 1s-.446 1-1 1h-4c-.554 0-1-.446-1-1s.446-1 1-1z" fill="#ccc"/>
</svg>

After

(image error) Size: 232 B

@ -0,0 +1,40 @@
.window-button .icon {
width: 16px;
height: 16px;
}
.close .icon {
background-image: url("close.svg");
}
.close:hover .icon {
background-image: url("close-hover.svg");
}
.close:active .icon {
background-image: url("close-active.svg");
}
.minimize .icon {
background-image: url("minimize.svg");
}
.minimize:hover .icon {
background-image: url("minimize-hover.svg");
}
.minimize:active .icon {
background-image: url("minimize-active.svg");
}
.maximize .icon {
background-image: url("maximize.svg");
}
.maximize:hover .icon {
background-image: url("maximize-hover.svg");
}
.maximize:active .icon {
background-image: url("maximize-active.svg");
}

@ -0,0 +1,3 @@
<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg">
<path d="m8 1c-3.8659932 0-7 3.1340068-7 7 0 3.865993 3.1340068 7 7 7 3.865993 0 7-3.134007 7-7 0-3.8659932-3.134007-7-7-7zm-2.9980469 4h.7734375c.1911381.0084.382455.096439.515625.234375l1.7109375 1.7109375 1.7324219-1.7109375c.1991407-.1728699.335074-.2291253.515625-.234375h.75v.75c0 .2148463-.02582.4129919-.1875.5625l-1.7109375 1.7109375 1.6874995 1.6875c.141085.141124.210933.3400935.210938.5390625v.75h-.75c-.198898-.000007-.397995-.06984-.5390625-.210938l-1.7089844-1.710937-1.7109375 1.710937c-.1410675.141138-.3401732.210938-.5390625.210938h-.75v-.75c-.0000022-.198962.06985-.3979385.2109375-.5390625l1.7109375-1.6875-1.7109375-1.7109375c-.1579944-.1459682-.2273635-.3519436-.2109375-.5625z" fill="#ef2929"/>
</svg>

After

(image error) Size: 792 B

@ -0,0 +1,3 @@
<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg">
<path d="m8 1c-3.8659932 0-7 3.1340068-7 7 0 3.865993 3.1340068 7 7 7 3.865993 0 7-3.134007 7-7 0-3.8659932-3.134007-7-7-7zm-2.9980469 4h.7734375c.1911381.0084.382455.096439.515625.234375l1.7109375 1.7109375 1.7324219-1.7109375c.1991407-.1728699.335074-.2291253.515625-.234375h.75v.75c0 .2148463-.02582.4129919-.1875.5625l-1.7109375 1.7109375 1.6874995 1.6875c.141085.141124.210933.3400935.210938.5390625v.75h-.75c-.198898-.000007-.397995-.06984-.5390625-.210938l-1.7089844-1.710937-1.7109375 1.710937c-.1410675.141138-.3401732.210938-.5390625.210938h-.75v-.75c-.0000022-.198962.06985-.3979385.2109375-.5390625l1.7109375-1.6875-1.7109375-1.7109375c-.1579944-.1459682-.2273635-.3519436-.2109375-.5625z" fill="#e12929"/>
</svg>

After

(image error) Size: 792 B

@ -0,0 +1,3 @@
<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg">
<path d="m8 1c-3.8659932 0-7 3.1340068-7 7 0 3.865993 3.1340068 7 7 7 3.865993 0 7-3.134007 7-7 0-3.8659932-3.134007-7-7-7zm-2.9980469 4h.7734375c.1911381.0084.382455.096439.515625.234375l1.7109375 1.7109375 1.7324219-1.7109375c.1991407-.1728699.335074-.2291253.515625-.234375h.75v.75c0 .2148463-.02582.4129919-.1875.5625l-1.7109375 1.7109375 1.6874995 1.6875c.141085.141124.210933.3400935.210938.5390625v.75h-.75c-.198898-.000007-.397995-.06984-.5390625-.210938l-1.7089844-1.710937-1.7109375 1.710937c-.1410675.141138-.3401732.210938-.5390625.210938h-.75v-.75c-.0000022-.198962.06985-.3979385.2109375-.5390625l1.7109375-1.6875-1.7109375-1.7109375c-.1579944-.1459682-.2273635-.3519436-.2109375-.5625z" fill="#cc1010"/>
</svg>

After

(image error) Size: 792 B

@ -0,0 +1,3 @@
<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg">
<path d="m8 1c-3.8659932 0-7 3.1340068-7 7 0 3.865993 3.1340068 7 7 7 3.865993 0 7-3.134007 7-7 0-3.8659932-3.134007-7-7-7zm-2.1660156 4h4.3320316c.41743.00104.835984.4066744.833984.8339844v5.1660156h-6v-5.1660156c0-.42695.4170244-.8239844.8339844-.8339844zm1.1660156 2v2h2v-2z" fill="#4d585c"/>
</svg>

After

(image error) Size: 369 B

@ -0,0 +1,3 @@
<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg">
<path d="m8 1c-3.8659932 0-7 3.1340068-7 7 0 3.865993 3.1340068 7 7 7 3.865993 0 7-3.134007 7-7 0-3.8659932-3.134007-7-7-7zm-2.1660156 4h4.3320316c.41743.00104.835984.4066744.833984.8339844v5.1660156h-6v-5.1660156c0-.42695.4170244-.8239844.8339844-.8339844zm1.1660156 2v2h2v-2z" fill="#454f52"/>
</svg>

After

(image error) Size: 369 B

@ -0,0 +1,3 @@
<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg">
<path d="m8 1c-3.8659932 0-7 3.1340068-7 7 0 3.865993 3.1340068 7 7 7 3.865993 0 7-3.134007 7-7 0-3.8659932-3.134007-7-7-7zm-2.1660156 4h4.3320316c.41743.00104.835984.4066744.833984.8339844v5.1660156h-6v-5.1660156c0-.42695.4170244-.8239844.8339844-.8339844zm1.1660156 2v2h2v-2z" fill="#2e3436"/>
</svg>

After

(image error) Size: 369 B

@ -0,0 +1,3 @@
<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg">
<path d="m8 1a7 7 0 0 0 -7 7 7 7 0 0 0 7 7 7 7 0 0 0 7-7 7 7 0 0 0 -7-7zm-2 6h4c.554 0 1 .446 1 1s-.446 1-1 1h-4c-.554 0-1-.446-1-1s.446-1 1-1z" fill="#4d585c"/>
</svg>

After

(image error) Size: 235 B

@ -0,0 +1,3 @@
<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg">
<path d="m8 1a7 7 0 0 0 -7 7 7 7 0 0 0 7 7 7 7 0 0 0 7-7 7 7 0 0 0 -7-7zm-2 6h4c.554 0 1 .446 1 1s-.446 1-1 1h-4c-.554 0-1-.446-1-1s.446-1 1-1z" fill="#454f52"/>
</svg>

After

(image error) Size: 235 B

@ -0,0 +1,3 @@
<svg height="16" width="16" xmlns="http://www.w3.org/2000/svg">
<path d="m8 1a7 7 0 0 0 -7 7 7 7 0 0 0 7 7 7 7 0 0 0 7-7 7 7 0 0 0 -7-7zm-2 6h4c.554 0 1 .446 1 1s-.446 1-1 1h-4c-.554 0-1-.446-1-1s.446-1 1-1z" fill="#2e3436"/>
</svg>

After

(image error) Size: 235 B

@ -0,0 +1,40 @@
.window-button .icon {
width: 16px;
height: 16px;
}
.close .icon {
background-image: url("close.svg");
}
.close:hover .icon {
background-image: url("close-hover.svg");
}
.close:active .icon {
background-image: url("close-active.svg");
}
.minimize .icon {
background-image: url("minimize.svg");
}
.minimize:hover .icon {
background-image: url("minimize-hover.svg");
}
.minimize:active .icon {
background-image: url("minimize-active.svg");
}
.maximize .icon {
background-image: url("maximize.svg");
}
.maximize:hover .icon {
background-image: url("maximize-hover.svg");
}
.maximize:active .icon {
background-image: url("maximize-active.svg");
}

@ -0,0 +1 @@
<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

(image error) Size: 751 B

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

(image error) Size: 751 B

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