diff --git a/maximus-buttons@hanspr/README.md b/maximus-buttons@hanspr/README.md new file mode 100644 index 00000000000..65f729c9f2f --- /dev/null +++ b/maximus-buttons@hanspr/README.md @@ -0,0 +1,25 @@ +Maximus Buttons +-------------------- + +This applet is desinged to work in pair with: + +* maximus-title@hanspr +* maximus extension to remove the title bar on maximized windows +* Multiple monitors: Add the applet to panels in all monitors to set the buttons on the active window monitor +* Multiple monitors: buttons will be visible on the current focused monitor window to improve focus visibility between monitors + +# Features +* It will show the minimize, maximize, close buttons on the panel when a window is maximized +* It only make sense with Maximus extension, because you loose those buttons, after maximize + +# How to configure +* Install the applet +* Add applet with the plus sign +* Edit the panel and reposition the applet at the far right or left of your panel. +* It makes more sense when the panel is on the top, but it will work on bottom panels as well + +# Limitations +* No consideration for vertical panels, it's been tested on horizontal panels only + +# Errors +* Please report any errors in github `https://github.com/linuxmint/cinnamon-spices-applets/issues` diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/applet.js b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/applet.js new file mode 100644 index 00000000000..bdc77eb4787 --- /dev/null +++ b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/applet.js @@ -0,0 +1,342 @@ +const Main = imports.ui.main +const Applet = imports.ui.applet +const Settings = imports.ui.settings +const SignalManager = imports.misc.signalManager +const Cinnamon = imports.gi.Cinnamon +const St = imports.gi.St + +const APPNAME = 'Maximus Tittle Buttons' +const tracker = Cinnamon.WindowTracker.get_default() +const UUID = 'maximus-title-buttons@hanspr' + +class MyApplet extends Applet.TextIconApplet { + constructor(metadata, orientation, panelHeight, instanceId) { + try { + super(orientation, panelHeight, instanceId) + this.metadata = metadata + this.uuid = metadata.uuid + this.orientation = orientation + this.panelHeight = panelHeight + this.instanceId = instanceId + this.appletPath = metadata.path + this.hide_applet_label(false) + this.bindSettings() + this.initButtons() + this.connectSignals() + setTimeout(() => { + this.initialized = true + }, 500) + } catch (e) { + global.logError(e) + } + } + + initButtons() { + let buttons = this.buttons_style.split(":") + if (this.checkButton(buttons, "maximize") || this.checkButton(buttons, "minimize") || this.checkButton(buttons, "close")) { + this.loadTheme() + } + this.button = [] + this.createButtons(this.buttons_style) + this.on_panel_edit_mode_changed + this._showButtons(global.display.focus_window) + } + + bindSettings() { + this.settings = new Settings.AppletSettings(this, this.uuid, this.instanceId) + + this.settings.bind("buttons-style", "buttons_style", this.on_settings_changed) + this.settings.bind("buttons-theme", "buttonsTheme") + this.settings.bind("only-maximized", "onlyMaximized", this.on_settings_changed) + this.settings.bind("hide-buttons", "hideButtons", this.on_settings_changed) + this.settings.bind("on-desktop-shutdown", "onDesktopShutdown", this.on_settings_changed) + } + + connectSignals() { + this.signalManager = new SignalManager.SignalManager(null) + + this.signalManager.connect(Main.themeManager, 'theme-set', this.loadTheme, this) + this.signalManager.connect(global.settings, 'changed::panel-edit-mode', this.on_panel_edit_mode_changed, this) + this.signalManager.connect(global.window_manager, 'size-change', () => { + let w = global.display.focus_window + if (w) { + this._showButtons(w) + } + }, this) + + this.signalManager.connect(global.display, 'notify::focus-window', () => { + let w = global.display.focus_window + if (w) { + this._showButtons(w) + } + }, this) + this.signalManager.connect(global.screen, 'window-monitor-changed', () => { + let w = global.display.focus_window + if (w) { + this._showButtons(w) + } + }, this) + this.signalManager.connect(global.screen, 'monitors-changed', () => { + let w = global.display.focus_window + if (w == null) { + this.setButtons("hide") + } else { + this._showButtons(w) + } + }, this) + } + + on_panel_edit_mode_changed() { + let reactive = !global.settings.get_boolean("panel-edit-mode") + + let b = this.buttons_style.split(":") + for (let i = 0; i < b.length; ++i) { + this.button[b[i]].reactive = reactive + } + } + + getCssPath(theme) { + let cssPath = this.appletPath + "/themes/" + theme + "/style.css" + return cssPath + } + + loadTheme() { + this.actor.set_style_class_name("window-buttons") + let theme = St.ThemeContext.get_for_stage(global.stage).get_theme() + theme.load_stylesheet(this.getCssPath(this.buttonsTheme)) + this.oldTheme = this.buttonsTheme + } + + createButtons(buttonsStyle) { + buttonsStyle = buttonsStyle.split(":") + for (let i = 0; i < buttonsStyle.length; ++i) { + let buttonName = buttonsStyle[i] + "Button" + if (this[buttonName]) { + this[buttonName]() + } + } + } + + iconButton() { + this.button["icon"] = new St.Button({ + name: "iconButton", + style_class: "window-list-item", + reactive: true + }) + this.actor.add(this.button["icon"]) + } + + minimizeButton() { + this.button["minimize"] = new St.Button({ + name: "windowButton", + style_class: "minimize window-button", + reactive: true + }) + this.actor.add(this.button["minimize"]) + this.button["minimize"].connect("button-press-event", (actor, event) => { + let button = event.get_button() + if (button == 1) { + this.minimizeWindow() + return true + } else if (button == 3) { + this._applet_context_menu.toggle() + } + return true + }) + } + + minimizeWindow() { + if (this.button["minimize"].opacity == 0) { + return false + } + let activeWindow = global.display.focus_window + let app = tracker.get_window_app(activeWindow) + if (!app) { + return + } else { + activeWindow.minimize() + } + } + + maximizeButton() { + this.button["maximize"] = new St.Button({ + name: "windowButton", + style_class: "maximize window-button", + reactive: true + }) + this.actor.add(this.button["maximize"]) + this.button["maximize"].connect("button-press-event", (actor, event) => { + let button = event.get_button() + if (button == 1) { + this.maximizeWindow() + return true + } else if (button == 3) { + this._applet_context_menu.toggle() + } + return true + }) + } + + maximizeWindow() { + if (this.button["maximize"].opacity == 0) { + return false + } + let activeWindow = global.display.focus_window + if (activeWindow) { + let app = tracker.get_window_app(activeWindow) + if (!app) { + return + } else { + if (activeWindow.get_maximized()) { + activeWindow.unmaximize(3) + } else { + activeWindow.maximize(3) + } + } + } + + } + + closeButton() { + this.button["close"] = new St.Button({ + name: "windowButton", + style_class: "close window-button", + reactive: true + }) + this.actor.add(this.button["close"]) + this.button["close"].connect("button-press-event", (actor, event) => { + let button = event.get_button() + if (button == 1) { + this.closeWindow() + return true + } else if (button == 3) { + this._applet_context_menu.toggle() + } + return true + }) + } + + closeWindow() { + if (this.button["close"].opacity == 0) { + return false + } + let activeWindow = global.display.focus_window + let app = tracker.get_window_app(activeWindow) + + if (!app) { + if (this.onDesktopShutdown == true) { + this._session.ShutdownRemote() + } + return + } else { + activeWindow.delete(global.get_current_time()) + } + + } + + updateWindowIcon() { + let activeWindow = global.display.focus_window + if (activeWindow) { + let app = tracker.get_window_app(activeWindow) + if (app) { + let icon = tracker.get_window_app(activeWindow).create_icon_texture(20) + this.button["icon"].set_child(icon) + this.actor.add(this.button['icon']) + } else { + let icon = new St.Icon({ + icon_name: "video-display", + icon_type: St.IconType.SYMBOLIC, + style: "icon-size:20px;" + }) + this.button["icon"].set_child(icon) + } + } else { + let icon = new St.Icon({ + icon_name: "video-display", + icon_type: St.IconType.SYMBOLIC, + style: "icon-size:20px;" + }) + this.button["icon"].set_child(icon) + } + } + + _showButtons(w) { + if (!w) { + return + } + if (w.get_monitor() != this.panel.monitorIndex) { + this.setButtons("hide") + return + } + if (w.get_window_type() >= 1) { + this.setButtons("hide") + return + } + let buttons = this.buttons_style.split(":") + if (this.checkButton(buttons, "icon")) { + this.updateWindowIcon() + } + if (this.onlyMaximized == true) { + this.onlyMaximize(w) + } else { + this.setButtons("show") + } + } + + on_settings_changed() { + this.actor.destroy_all_children() + let buttons = this.buttons_style.split(":") + if (this.checkButton(buttons, "maximize") || this.checkButton(buttons, "minimize") || this.checkButton(buttons, "close")) { + this.loadTheme() + } + this.button = [] + this.createButtons(this.buttons_style) + this._showButtons(global.display.focus_window) + } + + checkButton(arr, obj) { + for (var i = 0; i < arr.length; i++) { + if (arr[i] == obj) { + return true + } + } + return null + } + + onlyMaximize(w) { + let app = tracker.get_window_app(w) + if (app && w.get_maximized()) { + this.setButtons("show") + } else { + this.setButtons("hide") + } + } + + setButtons(what) { + let buttons = this.buttons_style.split(":") + let skip = 0 + if (what == "show") { + skip = 255 + } + for (let i = 0; i < buttons.length; ++i) { + if (buttons[i] == undefined || buttons[i] == "icon" || this.button[buttons[i]] == undefined || this.button[buttons[i]].opacity == skip) { + continue + } + if (what == "show") { + if (!this.hideButtons) { + this.button[buttons[i]].show() + } + this.button[buttons[i]].opacity = 255 + } else { + if (!this.hideButtons) { + this.button[buttons[i]].hide() + } + this.button[buttons[i]].opacity = 0 + } + } + } +} + +function main(metadata, orientation, panelHeight, instanceId) { + return new MyApplet(metadata, orientation, panelHeight, instanceId) +} diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/icon.png b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/icon.png new file mode 100644 index 00000000000..e8209a3e2b3 Binary files /dev/null and b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/icon.png differ diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/metadata.json b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/metadata.json new file mode 100644 index 00000000000..12dc5e1a673 --- /dev/null +++ b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/metadata.json @@ -0,0 +1,10 @@ +{ + "max-instances": -1, + "description": "Maximus buttons", + "uuid": "maximus-buttons@hanspr", + "name": "Maximus Buttons", + "website": "https://github.com/linuxmint/cinnamon-spices-applets", + "version": "0.0.1", + "author": "hanspr", + "contributors": "Hans Peyrot" +} diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/settings-schema.json b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/settings-schema.json new file mode 100644 index 00000000000..e291243c4f6 --- /dev/null +++ b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/settings-schema.json @@ -0,0 +1,42 @@ +{ + "head": { + "type": "header", + "description": "Window Buttons Settings" + }, + "buttons-style": { + "type": "entry", + "description": "Window Buttons Style (Example: title:minimize:maximize:close:icon)", + "default": "minimize:maximize:close" + }, + + "buttons-theme": { + "type": "combobox", + "default": "default", + "description": "Buttons Theme (Needs Restart Cinnamon)", + "options": { + "Default": "default", + "Mac-OS-X": "Mac-OS-X", + "Mint-X": "Mint-X", + "Radiance": "Radiance", + "UniMetro": "UniMetro", + "UniMetro-Black": "UniMetro-Black", + "Vimix": "Vimix" + }, + "tooltip": "Please select a theme for window buttons" + }, + "on-desktop-shutdown": { + "type": "switch", + "default": false, + "description": "Click on close: poweroff if desktop is focused" + }, + "hide-buttons": { + "type": "switch", + "default": true, + "description": "Hide buttons: instead of removing (no applets jump left right)" + }, + "only-maximized": { + "type": "switch", + "default": true, + "description": "Show buttons: only when focused window is maximized" + } +} diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Mac-OS-X/ABOUT b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Mac-OS-X/ABOUT new file mode 100644 index 00000000000..514faf4b9ba --- /dev/null +++ b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Mac-OS-X/ABOUT @@ -0,0 +1 @@ +Based off Mac-OS-X theme diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Mac-OS-X/close.png b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Mac-OS-X/close.png new file mode 100644 index 00000000000..7403e0f064e Binary files /dev/null and b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Mac-OS-X/close.png differ diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Mac-OS-X/close_focused.png b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Mac-OS-X/close_focused.png new file mode 100644 index 00000000000..4cc1dcbf5d1 Binary files /dev/null and b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Mac-OS-X/close_focused.png differ diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Mac-OS-X/maximize.png b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Mac-OS-X/maximize.png new file mode 100644 index 00000000000..298d6de7577 Binary files /dev/null and b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Mac-OS-X/maximize.png differ diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Mac-OS-X/maximize_focused.png b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Mac-OS-X/maximize_focused.png new file mode 100644 index 00000000000..716a6a80014 Binary files /dev/null and b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Mac-OS-X/maximize_focused.png differ diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Mac-OS-X/minimize.png b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Mac-OS-X/minimize.png new file mode 100644 index 00000000000..92160d1ba2e Binary files /dev/null and b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Mac-OS-X/minimize.png differ diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Mac-OS-X/minimize_focused.png b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Mac-OS-X/minimize_focused.png new file mode 100644 index 00000000000..75613c31ec7 Binary files /dev/null and b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Mac-OS-X/minimize_focused.png differ diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Mac-OS-X/style.css b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Mac-OS-X/style.css new file mode 100644 index 00000000000..315c89a9e5b --- /dev/null +++ b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Mac-OS-X/style.css @@ -0,0 +1,46 @@ +.box-bin { } + +.button-box { + spacing: 2px; +} + +.window-button { + width: 19px; + height: 24px; +} + +.minimize { + background-image: url("minimize.png"); +} + +.minimize:hover { + background-image: url("minimize_focused.png"); +} + +.minimize:active { + background-image: url("minimize_focused.png"); +} + +.maximize { + background-image: url("maximize.png"); +} + +.maximize:hover { + background-image: url("maximize_focused.png"); +} + +.maximize:active { + background-image: url("maximize_focused.png"); +} + +.close { + background-image: url("close.png"); +} + +.close:hover { + background-image: url("close_focused.png"); +} + +.close:active { + background-image: url("close_focused.png"); +} diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Mint-X/ABOUT b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Mint-X/ABOUT new file mode 100644 index 00000000000..b680c5843e6 --- /dev/null +++ b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Mint-X/ABOUT @@ -0,0 +1 @@ +This is based off the Mint-X theme. diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Mint-X/close.svg b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Mint-X/close.svg new file mode 100644 index 00000000000..e542dcd60ac --- /dev/null +++ b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Mint-X/close.svg @@ -0,0 +1,81 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Mint-X/close_hover.svg b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Mint-X/close_hover.svg new file mode 100644 index 00000000000..71ecc03bf9c --- /dev/null +++ b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Mint-X/close_hover.svg @@ -0,0 +1,76 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Mint-X/max.svg b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Mint-X/max.svg new file mode 100644 index 00000000000..1437d51aff8 --- /dev/null +++ b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Mint-X/max.svg @@ -0,0 +1,85 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Mint-X/max_hover.svg b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Mint-X/max_hover.svg new file mode 100644 index 00000000000..bf55a1bb9c9 --- /dev/null +++ b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Mint-X/max_hover.svg @@ -0,0 +1,79 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Mint-X/min.svg b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Mint-X/min.svg new file mode 100644 index 00000000000..28b32726f02 --- /dev/null +++ b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Mint-X/min.svg @@ -0,0 +1,86 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Mint-X/min_hover.svg b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Mint-X/min_hover.svg new file mode 100644 index 00000000000..590bbaf44e8 --- /dev/null +++ b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Mint-X/min_hover.svg @@ -0,0 +1,79 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Mint-X/screenshot.png b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Mint-X/screenshot.png new file mode 100644 index 00000000000..cc9a7e1cc30 Binary files /dev/null and b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Mint-X/screenshot.png differ diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Mint-X/style.css b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Mint-X/style.css new file mode 100644 index 00000000000..ec8fa1e09c0 --- /dev/null +++ b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Mint-X/style.css @@ -0,0 +1,56 @@ +/* The box-bin element holds the button-box element which holds each window-button. + * + * Control spacing between each button via .button-box. + */ +.box-bin { + border-width: 0px; + padding: 0px; + margin: 0px; +} + +.button-box { + spacing: 4px; +} + +/* The style for each individual window button */ +.window-button { + width: 24px; + height: 20px; +} + +/* The style for the window button when hovered over */ +.window-button:hover { +} + +/* Here you can style each individual button. You need to define style classes + * ".minimize", ".maximize" and ".close". + * You can additionally define styles for the :hover and :active pseudo classes + * if you wish. + * See the 'Radiance' style.css for an example of this. + */ +/* Style for the minimize button */ +.minimize { + background-image: url('min.svg'); +} + +.minimize:hover { + background-image: url('min_hover.svg'); +} + +/* Style for the maximize button */ +.maximize { + background-image: url('max.svg'); +} + +.maximize:hover { + background-image: url('max_hover.svg'); +} + +/* Style for the close button */ +.close { + background-image: url('close.svg'); +} + +.close:hover { + background-image: url('close_hover.svg'); +} diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Radiance/ABOUT b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Radiance/ABOUT new file mode 100644 index 00000000000..dcb6d524607 --- /dev/null +++ b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Radiance/ABOUT @@ -0,0 +1 @@ +Based off Unity's Radiance theme. diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Radiance/close_focused_normal.png b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Radiance/close_focused_normal.png new file mode 100644 index 00000000000..4ad56edbd9f Binary files /dev/null and b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Radiance/close_focused_normal.png differ diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Radiance/close_focused_prelight.png b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Radiance/close_focused_prelight.png new file mode 100644 index 00000000000..ce3e7085881 Binary files /dev/null and b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Radiance/close_focused_prelight.png differ diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Radiance/close_focused_pressed.png b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Radiance/close_focused_pressed.png new file mode 100644 index 00000000000..2215109f758 Binary files /dev/null and b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Radiance/close_focused_pressed.png differ diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Radiance/maximize_focused_normal.png b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Radiance/maximize_focused_normal.png new file mode 100644 index 00000000000..83c2005aa37 Binary files /dev/null and b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Radiance/maximize_focused_normal.png differ diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Radiance/maximize_focused_prelight.png b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Radiance/maximize_focused_prelight.png new file mode 100644 index 00000000000..d51c2eef160 Binary files /dev/null and b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Radiance/maximize_focused_prelight.png differ diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Radiance/maximize_focused_pressed.png b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Radiance/maximize_focused_pressed.png new file mode 100644 index 00000000000..6020ca04940 Binary files /dev/null and b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Radiance/maximize_focused_pressed.png differ diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Radiance/minimize_focused_normal.png b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Radiance/minimize_focused_normal.png new file mode 100644 index 00000000000..542ae3a9487 Binary files /dev/null and b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Radiance/minimize_focused_normal.png differ diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Radiance/minimize_focused_prelight.png b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Radiance/minimize_focused_prelight.png new file mode 100644 index 00000000000..54eff796a17 Binary files /dev/null and b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Radiance/minimize_focused_prelight.png differ diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Radiance/minimize_focused_pressed.png b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Radiance/minimize_focused_pressed.png new file mode 100644 index 00000000000..27519d3db3c Binary files /dev/null and b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Radiance/minimize_focused_pressed.png differ diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Radiance/screenshot.png b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Radiance/screenshot.png new file mode 100644 index 00000000000..088a7b70df1 Binary files /dev/null and b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Radiance/screenshot.png differ diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Radiance/style.css b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Radiance/style.css new file mode 100644 index 00000000000..3abdbe02f26 --- /dev/null +++ b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Radiance/style.css @@ -0,0 +1,46 @@ +.box-bin { } + +.button-box { + spacing: 2px; +} + +.window-button { + width: 19px; + height: 24px; +} + +.minimize { + background-image: url("minimize_focused_normal.png"); +} + +.minimize:hover { + background-image: url("minimize_focused_prelight.png"); +} + +.minimize:active { + background-image: url("minimize_focused_pressed.png"); +} + +.maximize { + background-image: url("maximize_focused_normal.png"); +} + +.maximize:hover { + background-image: url("maximize_focused_prelight.png"); +} + +.maximize:active { + background-image: url("maximize_focused_pressed.png"); +} + +.close { + background-image: url("close_focused_normal.png"); +} + +.close:hover { + background-image: url("close_focused_prelight.png"); +} + +.close:active { + background-image: url("close_focused_pressed.png"); +} diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/UniMetro-Black/ABOUT b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/UniMetro-Black/ABOUT new file mode 100644 index 00000000000..9dbf948cf6b --- /dev/null +++ b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/UniMetro-Black/ABOUT @@ -0,0 +1 @@ +Author: jsnjinga diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/UniMetro-Black/Screenshot.png b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/UniMetro-Black/Screenshot.png new file mode 100644 index 00000000000..9f96a2d7eb5 Binary files /dev/null and b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/UniMetro-Black/Screenshot.png differ diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/UniMetro-Black/close.png b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/UniMetro-Black/close.png new file mode 100644 index 00000000000..a947e3c8e76 Binary files /dev/null and b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/UniMetro-Black/close.png differ diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/UniMetro-Black/closeactive.png b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/UniMetro-Black/closeactive.png new file mode 100644 index 00000000000..e4f6b918d06 Binary files /dev/null and b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/UniMetro-Black/closeactive.png differ diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/UniMetro-Black/closehover.png b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/UniMetro-Black/closehover.png new file mode 100644 index 00000000000..63059c1fd28 Binary files /dev/null and b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/UniMetro-Black/closehover.png differ diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/UniMetro-Black/max.png b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/UniMetro-Black/max.png new file mode 100644 index 00000000000..bfc564e7f32 Binary files /dev/null and b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/UniMetro-Black/max.png differ diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/UniMetro-Black/maxactive.png b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/UniMetro-Black/maxactive.png new file mode 100644 index 00000000000..0b86c1f81e2 Binary files /dev/null and b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/UniMetro-Black/maxactive.png differ diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/UniMetro-Black/maxhover.png b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/UniMetro-Black/maxhover.png new file mode 100644 index 00000000000..a28141175e6 Binary files /dev/null and b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/UniMetro-Black/maxhover.png differ diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/UniMetro-Black/min.png b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/UniMetro-Black/min.png new file mode 100644 index 00000000000..d409800ac1c Binary files /dev/null and b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/UniMetro-Black/min.png differ diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/UniMetro-Black/minactive.png b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/UniMetro-Black/minactive.png new file mode 100644 index 00000000000..a19b07964ae Binary files /dev/null and b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/UniMetro-Black/minactive.png differ diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/UniMetro-Black/minhover.png b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/UniMetro-Black/minhover.png new file mode 100644 index 00000000000..4e699ec29ba Binary files /dev/null and b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/UniMetro-Black/minhover.png differ diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/UniMetro-Black/style.css b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/UniMetro-Black/style.css new file mode 100644 index 00000000000..264790b6132 --- /dev/null +++ b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/UniMetro-Black/style.css @@ -0,0 +1,42 @@ +.box-bin { } + +.button-box { + spacing: 1px; +} + +.window-button { + width: 19px; + height: 19px; +} + +.minimize { + background-image: url('min.png'); +} +.minimize:hover { + background-image: url("minhover.png"); +} +.minimize:active { + background-image: url("minactive.png"); +} + + +.maximize { + background-image: url('max.png'); +} +.maximize:hover { + background-image: url("maxhover.png"); +} +.maximize:active { + background-image: url("maxactive.png"); +} + + +.close { + background-image: url('close.png'); +} +.close:hover { + background-image: url("closehover.png"); +} +.close:active { + background-image: url("closeactive.png"); +} diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/UniMetro/ABOUT b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/UniMetro/ABOUT new file mode 100644 index 00000000000..9dbf948cf6b --- /dev/null +++ b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/UniMetro/ABOUT @@ -0,0 +1 @@ +Author: jsnjinga diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/UniMetro/Screenshot.png b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/UniMetro/Screenshot.png new file mode 100644 index 00000000000..2ecb3554ef8 Binary files /dev/null and b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/UniMetro/Screenshot.png differ diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/UniMetro/close.png b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/UniMetro/close.png new file mode 100644 index 00000000000..6391b6b4b8c Binary files /dev/null and b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/UniMetro/close.png differ diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/UniMetro/closeactive.png b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/UniMetro/closeactive.png new file mode 100644 index 00000000000..575bc42b415 Binary files /dev/null and b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/UniMetro/closeactive.png differ diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/UniMetro/closehover.png b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/UniMetro/closehover.png new file mode 100644 index 00000000000..8e9abc91c96 Binary files /dev/null and b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/UniMetro/closehover.png differ diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/UniMetro/max.png b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/UniMetro/max.png new file mode 100644 index 00000000000..2a57885aec9 Binary files /dev/null and b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/UniMetro/max.png differ diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/UniMetro/maxactive.png b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/UniMetro/maxactive.png new file mode 100644 index 00000000000..08041809676 Binary files /dev/null and b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/UniMetro/maxactive.png differ diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/UniMetro/maxhover.png b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/UniMetro/maxhover.png new file mode 100644 index 00000000000..73ca519a053 Binary files /dev/null and b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/UniMetro/maxhover.png differ diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/UniMetro/min.png b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/UniMetro/min.png new file mode 100644 index 00000000000..59db3fdcea6 Binary files /dev/null and b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/UniMetro/min.png differ diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/UniMetro/minactive.png b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/UniMetro/minactive.png new file mode 100644 index 00000000000..7fba8597255 Binary files /dev/null and b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/UniMetro/minactive.png differ diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/UniMetro/minhover.png b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/UniMetro/minhover.png new file mode 100644 index 00000000000..820665d0c0e Binary files /dev/null and b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/UniMetro/minhover.png differ diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/UniMetro/style.css b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/UniMetro/style.css new file mode 100644 index 00000000000..264790b6132 --- /dev/null +++ b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/UniMetro/style.css @@ -0,0 +1,42 @@ +.box-bin { } + +.button-box { + spacing: 1px; +} + +.window-button { + width: 19px; + height: 19px; +} + +.minimize { + background-image: url('min.png'); +} +.minimize:hover { + background-image: url("minhover.png"); +} +.minimize:active { + background-image: url("minactive.png"); +} + + +.maximize { + background-image: url('max.png'); +} +.maximize:hover { + background-image: url("maxhover.png"); +} +.maximize:active { + background-image: url("maxactive.png"); +} + + +.close { + background-image: url('close.png'); +} +.close:hover { + background-image: url("closehover.png"); +} +.close:active { + background-image: url("closeactive.png"); +} diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Vimix/close.png b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Vimix/close.png new file mode 100644 index 00000000000..9c0857382b5 Binary files /dev/null and b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Vimix/close.png differ diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Vimix/close_focused_normal.png b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Vimix/close_focused_normal.png new file mode 100644 index 00000000000..9c0857382b5 Binary files /dev/null and b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Vimix/close_focused_normal.png differ diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Vimix/close_focused_prelight.png b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Vimix/close_focused_prelight.png new file mode 100644 index 00000000000..519d5ed3c10 Binary files /dev/null and b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Vimix/close_focused_prelight.png differ diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Vimix/close_focused_pressed.png b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Vimix/close_focused_pressed.png new file mode 100644 index 00000000000..0767792582d Binary files /dev/null and b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Vimix/close_focused_pressed.png differ diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Vimix/maximize.png b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Vimix/maximize.png new file mode 100644 index 00000000000..67c40f6c28c Binary files /dev/null and b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Vimix/maximize.png differ diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Vimix/maximize_focused_normal.png b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Vimix/maximize_focused_normal.png new file mode 100644 index 00000000000..67c40f6c28c Binary files /dev/null and b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Vimix/maximize_focused_normal.png differ diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Vimix/maximize_focused_prelight.png b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Vimix/maximize_focused_prelight.png new file mode 100644 index 00000000000..2d164ef3cc9 Binary files /dev/null and b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Vimix/maximize_focused_prelight.png differ diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Vimix/maximize_focused_pressed.png b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Vimix/maximize_focused_pressed.png new file mode 100644 index 00000000000..50793722be8 Binary files /dev/null and b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Vimix/maximize_focused_pressed.png differ diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Vimix/minimize.png b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Vimix/minimize.png new file mode 100644 index 00000000000..83906930a04 Binary files /dev/null and b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Vimix/minimize.png differ diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Vimix/minimize_focused_normal.png b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Vimix/minimize_focused_normal.png new file mode 100644 index 00000000000..83906930a04 Binary files /dev/null and b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Vimix/minimize_focused_normal.png differ diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Vimix/minimize_focused_prelight.png b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Vimix/minimize_focused_prelight.png new file mode 100644 index 00000000000..b4e7db7144e Binary files /dev/null and b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Vimix/minimize_focused_prelight.png differ diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Vimix/minimize_focused_pressed.png b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Vimix/minimize_focused_pressed.png new file mode 100644 index 00000000000..5ecf1883a62 Binary files /dev/null and b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Vimix/minimize_focused_pressed.png differ diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Vimix/style.css b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Vimix/style.css new file mode 100644 index 00000000000..e6eef530397 --- /dev/null +++ b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/Vimix/style.css @@ -0,0 +1,46 @@ +.box-bin { } + +.button-box { + spacing: 2px; +} + +.window-button { + width: 30px; + height: 24px; +} + +.minimize { + background-image: url("minimize_focused_normal.png"); +} + +.minimize:hover { + background-image: url("minimize_focused_prelight.png"); +} + +.minimize:active { + background-image: url("minimize_focused_pressed.png"); +} + +.maximize { + background-image: url("maximize_focused_normal.png"); +} + +.maximize:hover { + background-image: url("maximize_focused_prelight.png"); +} + +.maximize:active { + background-image: url("maximize_focused_pressed.png"); +} + +.close { + background-image: url("close_focused_normal.png"); +} + +.close:hover { + background-image: url("close_focused_prelight.png"); +} + +.close:active { + background-image: url("close_focused_pressed.png"); +} diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/default/ABOUT b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/default/ABOUT new file mode 100644 index 00000000000..514faf4b9ba --- /dev/null +++ b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/default/ABOUT @@ -0,0 +1 @@ +Based off Mac-OS-X theme diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/default/close.svg b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/default/close.svg new file mode 100644 index 00000000000..02c223e0352 --- /dev/null +++ b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/default/close.svg @@ -0,0 +1,45 @@ + + + + + + + + diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/default/close_focused.svg b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/default/close_focused.svg new file mode 100644 index 00000000000..1844a608b8d --- /dev/null +++ b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/default/close_focused.svg @@ -0,0 +1,45 @@ + + + + + + + + diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/default/maximize.svg b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/default/maximize.svg new file mode 100644 index 00000000000..e3845f401dd --- /dev/null +++ b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/default/maximize.svg @@ -0,0 +1,76 @@ + + + + + + plus-circle + Created with Sketch Beta. + + + + + + + + + + plus-circle + + + + diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/default/maximize_focused.svg b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/default/maximize_focused.svg new file mode 100644 index 00000000000..56a1fbaa7e1 --- /dev/null +++ b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/default/maximize_focused.svg @@ -0,0 +1,76 @@ + + + + + + plus-circle + Created with Sketch Beta. + + + + + + + + + + plus-circle + + + + diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/default/minimize.svg b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/default/minimize.svg new file mode 100644 index 00000000000..48820a97440 --- /dev/null +++ b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/default/minimize.svg @@ -0,0 +1,43 @@ + + + + + + + + diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/default/minimize_focused.svg b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/default/minimize_focused.svg new file mode 100644 index 00000000000..90dea0ffda5 --- /dev/null +++ b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/default/minimize_focused.svg @@ -0,0 +1,43 @@ + + + + + + + + diff --git a/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/default/style.css b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/default/style.css new file mode 100644 index 00000000000..aeb7b1f705d --- /dev/null +++ b/maximus-buttons@hanspr/files/maximus-buttons@hanspr/themes/default/style.css @@ -0,0 +1,46 @@ +.box-bin { } + +.button-box { + spacing: 2px; +} + +.window-button { + width: 24px; + height: 24px; +} + +.minimize { + background-image: url("minimize.svg"); +} + +.minimize:hover { + background-image: url("minimize_focused.svg"); +} + +.minimize:active { + background-image: url("minimize_focused.svg"); +} + +.maximize { + background-image: url("maximize.svg"); +} + +.maximize:hover { + background-image: url("maximize_focused.svg"); +} + +.maximize:active { + background-image: url("maximize_focused.svg"); +} + +.close { + background-image: url("close.svg"); +} + +.close:hover { + background-image: url("close_focused.svg"); +} + +.close:active { + background-image: url("close_focused.svg"); +} diff --git a/maximus-buttons@hanspr/info.json b/maximus-buttons@hanspr/info.json new file mode 100644 index 00000000000..be44c8a29d3 --- /dev/null +++ b/maximus-buttons@hanspr/info.json @@ -0,0 +1 @@ +{"author": "hanspr"} diff --git a/maximus-buttons@hanspr/screenshot.png b/maximus-buttons@hanspr/screenshot.png new file mode 100644 index 00000000000..270e3f31b24 Binary files /dev/null and b/maximus-buttons@hanspr/screenshot.png differ diff --git a/maximus-title@hanspr/README.md b/maximus-title@hanspr/README.md new file mode 100644 index 00000000000..05787bfe2d7 --- /dev/null +++ b/maximus-title@hanspr/README.md @@ -0,0 +1,33 @@ +Maximus Window Title +-------------------- + +This applet is desinged to work in pair with: + +* maximus-buttons@hanspr +* maximus extension to remove the title bar on maximized windows +* Multiple monitors. Add the applet to panels in all monitors to follow titles on different monitors + +# Features + +* It will display the name of the current active window on panel + +# How to configure +* Install the applet +* Edit the panel and reposition at the center of the panel + * If in edit mode you do not have a window name active, move the mouse over the applets, until you see it light up and move to the center + +# Configuration options +* Apply regex to title option + * It allow you to setup a regex on the title to clean it before display it + * If you don't know how to create e regex or are not sure of it use, leave it blank + * Default regex: `(?:https?|about):.+? -` + * removes prepended urls from firefox, chrome extensions like `keypass helper url` +* Maximum title length + * Length of title so it fits better on your current panel width + +# Limitations +* It will only work on top, bottom panels that have enough with to hold a window title +* No consideration for vertical panels, it's been tested on horizontal panels only + +# Errors +* Please report any errors in github `https://github.com/linuxmint/cinnamon-spices-applets/issues` diff --git a/maximus-title@hanspr/files/maximus-title@hanspr/applet.js b/maximus-title@hanspr/files/maximus-title@hanspr/applet.js new file mode 100644 index 00000000000..70f24b05563 --- /dev/null +++ b/maximus-title@hanspr/files/maximus-title@hanspr/applet.js @@ -0,0 +1,130 @@ +const Applet = imports.ui.applet +const SignalManager = imports.misc.signalManager +const Settings = imports.ui.settings; + +class MyApplet extends Applet.TextIconApplet { + constructor(metadata, orientation, panelHeight, instanceId) { + try { + super(orientation, panelHeight, instanceId) + this.metadata = metadata + this.uuid = metadata.uuid + this.orientation = orientation + this.panelHeight = panelHeight + this.instanceId = instanceId + this.appletPath = metadata.path + this.regex = null + this.bindSettings() + this.connectSignals() + this.lastTitle = "" + this.cssFocus = "background-color:;border-radius:5px;padding-right:10px;padding-left:5px;" + this._regexChanged() + this._bgChanged() + setTimeout(() => { + this.initialized = true + }, 500) + } catch (e) { + global.logError(e) + } + } + + bindSettings() { + this.settings = new Settings.AppletSettings(this, this.uuid, this.instanceId) + + this.settings.bind("title-regex", "titleRegex", this._regexChanged) + this.settings.bind("title-len", "titleLength", this._lengthChanged) + this.settings.bind("title-bg", "titleBg", this._bgChanged) + } + + connectSignals() { + this.signalManager = new SignalManager.SignalManager(null) + this.signalManager.connect(global.display, 'notify::focus-window', () => { + let w = global.display.focus_window + if (w) { + this.signalManager.connect(w, 'notify::title', () => { + this._onTitleChange(w.lastTitle, w.get_monitor()) + }) + this._onTitleChange(w.lastTitle, w.get_monitor()) + } else { + this._onTitleChange(undefined, 0) + } + }, this) + this.signalManager.connect(global.screen, 'window-monitor-changed', () => { + let w = global.display.focus_window + if (w) { + this._onMonitorChange(w.lastTitle, w.get_monitor()) + } + }, this) + } + + _onMonitorChange(title, monitorIndex) { + if (monitorIndex != this.panel.monitorIndex) { + let title = "" + const windows = global.get_window_actors(); + for (let i = 0; i < windows.length; i++) { + if (this.panel.monitorIndex != windows[i].metaWindow.get_monitor() || windows[i].metaWindow.get_window_type() > 1) { + continue + } + //console.log("pass :", i) + //console.log("title:", windows[i].metaWindow.title) + //console.log("type :", windows[i].metaWindow.get_window_type()) + title = windows[i].metaWindow.title + } + this._onTitleChange(title, this.panel.monitorIndex) + this.actor.set_style("") + return + } + this._onTitleChange(title, monitorIndex) + } + + _onTitleChange(title, monitorIndex) { + if (monitorIndex != this.panel.monitorIndex) { + this.actor.set_style("") + return + } + if (title == undefined) { + try { + title = global.display.focus_window.get_title() + } catch (e) { + return + } + } + if (this.lastTitle == title) { + this.actor.set_style(this.cssFocus) + return + } + this.lastTitle = title + if (this.regex != null) { + title = title.replace(this.regex, "") + } + title = title.substring(0, this.titleLength) + this.set_applet_label(title) + this.actor.set_style(this.cssFocus) + } + + _lengthChanged() { + this._onTitleChange(this.lastTitle) + } + + _bgChanged() { + this.cssFocus = "background-color:" + this.titleBg + ";border-radius:5px;padding-right:10px;padding-left:5px;" + } + + _regexChanged() { + if (this.titleRegex == "") { + this.regex = null + } else { + try { + this.regex = new RegExp(this.titleRegex) + } catch (e) { + console.log("Regex error:", e) + this.regex = null + } + } + this.lastTitle = "" + this._onTitleChange() + } +} + +function main(metadata, orientation, panelHeight, instanceId) { + return new MyApplet(metadata, orientation, panelHeight, instanceId) +} diff --git a/maximus-title@hanspr/files/maximus-title@hanspr/icon.png b/maximus-title@hanspr/files/maximus-title@hanspr/icon.png new file mode 100644 index 00000000000..fc3b74501f7 Binary files /dev/null and b/maximus-title@hanspr/files/maximus-title@hanspr/icon.png differ diff --git a/maximus-title@hanspr/files/maximus-title@hanspr/metadata.json b/maximus-title@hanspr/files/maximus-title@hanspr/metadata.json new file mode 100644 index 00000000000..2ca51ca7f5b --- /dev/null +++ b/maximus-title@hanspr/files/maximus-title@hanspr/metadata.json @@ -0,0 +1,7 @@ +{ + "uuid": "maximus-title@hanspr", + "description": "Maximus show title for the current window", + "version": "0.0.1", + "name": "Maximus window title", + "max-instances": -1 +} diff --git a/maximus-title@hanspr/files/maximus-title@hanspr/settings-schema.json b/maximus-title@hanspr/files/maximus-title@hanspr/settings-schema.json new file mode 100644 index 00000000000..98530dc2490 --- /dev/null +++ b/maximus-title@hanspr/files/maximus-title@hanspr/settings-schema.json @@ -0,0 +1,21 @@ +{ + "head": { + "type": "header", + "description": "Window Title Settings" + }, + "title-len": { + "type": "entry", + "description": "Maximum title lenght", + "default": "60" + }, + "title-bg": { + "type": "entry", + "description": "Title focused background color", + "default": "#5dabf9" + }, + "title-regex": { + "type": "entry", + "description": "Apply regex to title to remove string, before showing", + "default": "(?:https?|about):.+? - ?" + } +} diff --git a/maximus-title@hanspr/info.json b/maximus-title@hanspr/info.json new file mode 100644 index 00000000000..be44c8a29d3 --- /dev/null +++ b/maximus-title@hanspr/info.json @@ -0,0 +1 @@ +{"author": "hanspr"} diff --git a/maximus-title@hanspr/screenshot.png b/maximus-title@hanspr/screenshot.png new file mode 100644 index 00000000000..49387fc842f Binary files /dev/null and b/maximus-title@hanspr/screenshot.png differ