Merge branch 'home-sweet-gnome:master' into ukrainian-translation

This commit is contained in:
Yevhen Popok
2025-02-22 15:53:30 +02:00
committed by GitHub
17 changed files with 1073 additions and 850 deletions

View File

@@ -5,7 +5,7 @@ MODULES = src/*.js src/stylesheet.css metadata.json COPYING README.md
UI_MODULES = ui/*.ui UI_MODULES = ui/*.ui
IMAGES = ./* ../media/design/svg/dash-to-panel-logo-light.svg IMAGES = ./* ../media/design/svg/dash-to-panel-logo-light.svg
TOLOCALIZE = src/prefs.js src/appIcons.js src/taskbar.js TOLOCALIZE = src/extension.js src/prefs.js src/appIcons.js src/taskbar.js
MSGSRC = $(wildcard po/*.po) MSGSRC = $(wildcard po/*.po)
ifeq ($(strip $(DESTDIR)),) ifeq ($(strip $(DESTDIR)),)
INSTALLBASE = $(HOME)/.local/share/gnome-shell/extensions INSTALLBASE = $(HOME)/.local/share/gnome-shell/extensions

View File

@@ -180,7 +180,7 @@ Ideas for recursing child actors and assigning inline styles are based on code f
- @JimBroad for grayscale icons - @JimBroad for grayscale icons
#### Bug Fixes: #### Bug Fixes:
@imrvelj, @Teslator, @bil-elmoussaoui, @brandon-schumann, @sw9, @rockon999 , @lexruee, @3v1n0, @freeroot, @moqmar, @ArtyomZorin, @lkc0987, @saibotk, @vanillajonathan, @Zkdc, @leebickmtu, @l3nn4rt, @Melix19, @Aikatsui, @melix99, @kyrillzorin, @oneshadab, @CorvetteCole, @vantu5z, @spectreseven1138, @aperezdc, @smedir, @lucaxvi, @andyholmes, @vowstar, @T99Rots, @City-busz, @guoqiyi, @gcrabbe, @Anduin2017 @imrvelj, @Teslator, @bil-elmoussaoui, @brandon-schumann, @sw9, @rockon999 , @lexruee, @3v1n0, @freeroot, @moqmar, @ArtyomZorin, @lkc0987, @saibotk, @vanillajonathan, @Zkdc, @leebickmtu, @l3nn4rt, @Melix19, @Aikatsui, @melix99, @kyrillzorin, @oneshadab, @CorvetteCole, @vantu5z, @spectreseven1138, @aperezdc, @smedir, @lucaxvi, @andyholmes, @vowstar, @T99Rots, @City-busz, @guoqiyi, @gcrabbe, @Anduin2017, @xalt7x
#### Documentation Improvements: #### Documentation Improvements:
@BoQsc, @zakkak, @dandv, @elliotwutingfeng @BoQsc, @zakkak, @dandv, @elliotwutingfeng

650
po/fr.po

File diff suppressed because it is too large Load Diff

View File

@@ -391,6 +391,10 @@
<summary>Keybinding toggle intellihide</summary> <summary>Keybinding toggle intellihide</summary>
<description>Keybinding to reveal the panel while in intellihide mode</description> <description>Keybinding to reveal the panel while in intellihide mode</description>
</key> </key>
<key type="i" name="intellihide-persisted-state">
<default>-1</default>
<summary>Persisted intellihide hold status. -1 means the option is disabled</summary>
</key>
<key type="i" name="intellihide-enable-start-delay"> <key type="i" name="intellihide-enable-start-delay">
<default>2000</default> <default>2000</default>
<summary>Intellihide enable start delay</summary> <summary>Intellihide enable start delay</summary>
@@ -684,6 +688,29 @@
<summary>Action when scrolling over the panel</summary> <summary>Action when scrolling over the panel</summary>
<description>Set the action that is executed when scrolling over the panel</description> <description>Set the action that is executed when scrolling over the panel</description>
</key> </key>
<key type="s" name="context-menu-entries">
<default>'
[
{
"title": "Terminal",
"cmd": "TERMINALSETTINGS"
},
{
"title": "System monitor",
"cmd": "gnome-system-monitor"
},
{
"title": "Files",
"cmd": "nautilus"
},
{
"title": "Extensions",
"cmd": "gnome-extensions-app"
}
]'
</default>
<summary>User defined context menu entries</summary>
</key>
<key type="i" name="scroll-panel-delay"> <key type="i" name="scroll-panel-delay">
<default>0</default> <default>0</default>
<summary>Delay between panel mouse scroll events</summary> <summary>Delay between panel mouse scroll events</summary>
@@ -1327,5 +1354,9 @@
<default>''</default> <default>''</default>
<summary>Unix time when the donate icon was hidden</summary> <summary>Unix time when the donate icon was hidden</summary>
</key> </key>
<key type="i" name="extension-version">
<default>65</default>
<summary>Installed extension version</summary>
</key>
</schema> </schema>
</schemalist> </schemalist>

View File

@@ -1826,7 +1826,7 @@ export function resetRecentlyClickedApp() {
recentlyClickedAppIndex = 0 recentlyClickedAppIndex = 0
recentlyClickedAppMonitorIndex = null recentlyClickedAppMonitorIndex = null
return false return GLib.SOURCE_REMOVE
} }
export function closeAllWindows(app, monitor) { export function closeAllWindows(app, monitor) {
@@ -2248,7 +2248,7 @@ export const MyShowAppsIconMenu = class extends PopupMenu.PopupMenu {
this._appendItem({ this._appendItem({
title: _('System'), title: _('System'),
cmd: ['gnome-control-center', 'info-overview'], cmd: ['gnome-control-center', 'system'],
}) })
this._appendItem({ this._appendItem({
@@ -2269,29 +2269,14 @@ export const MyShowAppsIconMenu = class extends PopupMenu.PopupMenu {
this._appendSeparator() this._appendSeparator()
} }
this._appendItem({ JSON.parse(SETTINGS.get_string('context-menu-entries')).forEach((e) => {
title: _('Terminal'), if (e.cmd == 'TERMINALSETTINGS')
cmd: [TERMINALSETTINGS.get_string('exec')], e.cmd = TERMINALSETTINGS.get_string('exec')
})
this._appendItem({ this._appendItem({
title: _('System monitor'), title: e.title,
cmd: ['gnome-system-monitor'], cmd: e.cmd.split(' '),
}) })
this._appendItem({
title: _('Files'),
cmd: ['nautilus'],
})
this._appendItem({
title: _('Extensions'),
cmd: ['gnome-extensions-app'],
})
this._appendItem({
title: _('Settings'),
cmd: ['gnome-control-center'],
}) })
this._appendList( this._appendList(
@@ -2313,6 +2298,11 @@ export const MyShowAppsIconMenu = class extends PopupMenu.PopupMenu {
) )
}) })
this._appendItem({
title: _('Gnome Settings'),
cmd: ['gnome-control-center'],
})
let settingsMenuItem = this._appendMenuItem(_('Dash to Panel Settings')) let settingsMenuItem = this._appendMenuItem(_('Dash to Panel Settings'))
settingsMenuItem.connect('activate', () => DTP_EXTENSION.openPreferences()) settingsMenuItem.connect('activate', () => DTP_EXTENSION.openPreferences())

View File

@@ -18,10 +18,14 @@
*/ */
import Gio from 'gi://Gio' import Gio from 'gi://Gio'
import GLib from 'gi://GLib'
import * as Main from 'resource:///org/gnome/shell/ui/main.js' import * as Main from 'resource:///org/gnome/shell/ui/main.js'
import { EventEmitter } from 'resource:///org/gnome/shell/misc/signals.js' import { EventEmitter } from 'resource:///org/gnome/shell/misc/signals.js'
import { Extension } from 'resource:///org/gnome/shell/extensions/extension.js' import {
Extension,
gettext as _,
} from 'resource:///org/gnome/shell/extensions/extension.js'
import * as PanelSettings from './panelSettings.js' import * as PanelSettings from './panelSettings.js'
import * as PanelManager from './panelManager.js' import * as PanelManager from './panelManager.js'
@@ -78,6 +82,28 @@ export default class DashToPanelExtension extends Extension {
if (donateIconUnixtime && donateIconUnixtime < Date.now() - 10368000000) if (donateIconUnixtime && donateIconUnixtime < Date.now() - 10368000000)
SETTINGS.set_string('hide-donate-icon-unixtime', '') SETTINGS.set_string('hide-donate-icon-unixtime', '')
// if new version, display a notification linking to release notes
if (this.metadata.version != SETTINGS.get_int('extension-version')) {
Utils.notify(
_('Dash to Panel has been updated!'),
_(`You are now running version ${this.metadata.version}.`),
'software-update-available-symbolic',
Gio.icon_new_for_string(
`${this.path}/img/dash-to-panel-logo-light.svg`,
),
{
text: _(`See what's new`),
func: () =>
Gio.app_info_launch_default_for_uri(
`${this.metadata.url}/releases/tag/v${this.metadata.version}`,
global.create_app_launch_context(0, -1),
),
},
)
SETTINGS.set_int('extension-version', this.metadata.version)
}
Main.layoutManager.startInOverview = !SETTINGS.get_boolean( Main.layoutManager.startInOverview = !SETTINGS.get_boolean(
'hide-overview-on-startup', 'hide-overview-on-startup',
) )
@@ -99,6 +125,8 @@ export default class DashToPanelExtension extends Extension {
panelManager = new PanelManager.PanelManager() panelManager = new PanelManager.PanelManager()
panelManager.enable() panelManager.enable()
ubuntuDockDelayId = 0 ubuntuDockDelayId = 0
return GLib.SOURCE_REMOVE
} }
// disable ubuntu dock if present // disable ubuntu dock if present
@@ -110,13 +138,17 @@ export default class DashToPanelExtension extends Extension {
global.settings.set_strv('disabled-extensions', disabled) global.settings.set_strv('disabled-extensions', disabled)
// wait a bit so ubuntu dock can disable itself and restore the showappsbutton // wait a bit so ubuntu dock can disable itself and restore the showappsbutton
ubuntuDockDelayId = setTimeout(completeEnable, 200) ubuntuDockDelayId = GLib.timeout_add(
GLib.PRIORITY_DEFAULT,
200,
completeEnable,
)
} }
} else completeEnable() } else completeEnable()
} }
disable() { disable() {
if (ubuntuDockDelayId) clearTimeout(ubuntuDockDelayId) if (ubuntuDockDelayId) GLib.Source.remove(ubuntuDockDelayId)
PanelSettings.disable(SETTINGS) PanelSettings.disable(SETTINGS)
panelManager.disable() panelManager.disable()

View File

@@ -40,6 +40,7 @@ const MIN_UPDATE_MS = 250
const T1 = 'checkGrabTimeout' const T1 = 'checkGrabTimeout'
const T2 = 'limitUpdateTimeout' const T2 = 'limitUpdateTimeout'
const T3 = 'postAnimateTimeout' const T3 = 'postAnimateTimeout'
const T4 = 'enableStartTimeout'
const SIDE_CONTROLS_ANIMATION_TIME = const SIDE_CONTROLS_ANIMATION_TIME =
OverviewControls.SIDE_CONTROLS_ANIMATION_TIME / OverviewControls.SIDE_CONTROLS_ANIMATION_TIME /
@@ -105,7 +106,26 @@ export const Intellihide = class {
} }
this._setRevealMechanism() this._setRevealMechanism()
this._queueUpdatePanelPosition()
let lastState = SETTINGS.get_int('intellihide-persisted-state')
if (lastState > -1) {
this._holdStatus = lastState
if (lastState == Hold.NONE && Main.layoutManager._startingUp)
this._signalsHandler.add([
this._panelBox,
'notify::mapped',
() => this._hidePanel(true),
])
else this._queueUpdatePanelPosition()
} else
// -1 means that the option to persist hold isn't activated, so normal start
this._timeoutsHandler.add([
T4,
SETTINGS.get_int('intellihide-enable-start-delay'),
() => this._queueUpdatePanelPosition(),
])
} }
disable(reset) { disable(reset) {
@@ -146,12 +166,14 @@ export const Intellihide = class {
} }
this._holdStatus |= holdStatus this._holdStatus |= holdStatus
this._maybePersistHoldStatus()
} }
release(holdStatus) { release(holdStatus) {
this._holdStatus -= holdStatus this._holdStatus -= holdStatus
if (this.enabled && !this._holdStatus) { if (this.enabled && !this._holdStatus) {
this._maybePersistHoldStatus()
this._queueUpdatePanelPosition() this._queueUpdatePanelPosition()
} }
} }
@@ -171,6 +193,14 @@ export const Intellihide = class {
} }
} }
_maybePersistHoldStatus() {
if (SETTINGS.get_int('intellihide-persisted-state') > -1)
SETTINGS.set_int(
'intellihide-persisted-state',
this._holdStatus & Hold.PERMANENT ? Hold.PERMANENT : Hold.NONE,
)
}
_bindGeneralSignals() { _bindGeneralSignals() {
this._signalsHandler.add( this._signalsHandler.add(
[ [

View File

@@ -133,7 +133,7 @@ export const Overview = class {
// The default overview allocation takes into account external // The default overview allocation takes into account external
// struts, everywhere but the bottom where the dash is usually fixed anyway. // struts, everywhere but the bottom where the dash is usually fixed anyway.
// If there is a bottom panel under the dash location, give it some space here // If there is a bottom panel under the dash location, give it some space here
box.y2 -= focusedPanel.geom.h box.y2 -= focusedPanel.geom.outerSize
} }
originalAllocate.call(overviewControls, box) originalAllocate.call(overviewControls, box)

View File

@@ -28,6 +28,7 @@
*/ */
import Clutter from 'gi://Clutter' import Clutter from 'gi://Clutter'
import GLib from 'gi://GLib'
import GObject from 'gi://GObject' import GObject from 'gi://GObject'
import * as AppIcons from './appIcons.js' import * as AppIcons from './appIcons.js'
import * as Utils from './utils.js' import * as Utils from './utils.js'
@@ -61,7 +62,6 @@ let tracker = Shell.WindowTracker.get_default()
export const panelBoxes = ['_leftBox', '_centerBox', '_rightBox'] export const panelBoxes = ['_leftBox', '_centerBox', '_rightBox']
//timeout names //timeout names
const T2 = 'startIntellihideTimeout'
const T4 = 'showDesktopTimeout' const T4 = 'showDesktopTimeout'
const T5 = 'trackerFocusAppTimeout' const T5 = 'trackerFocusAppTimeout'
const T6 = 'scrollPanelDelayTimeout' const T6 = 'scrollPanelDelayTimeout'
@@ -278,11 +278,7 @@ export const Panel = GObject.registerClass(
'dashtopanelMainPanel ' + this.getOrientation(), 'dashtopanelMainPanel ' + this.getOrientation(),
) )
this._timeoutsHandler.add([ this.intellihide = new Intellihide.Intellihide(this)
T2,
SETTINGS.get_int('intellihide-enable-start-delay'),
() => (this.intellihide = new Intellihide.Intellihide(this)),
])
this._signalsHandler.add( this._signalsHandler.add(
// this is to catch changes to the theme or window scale factor // this is to catch changes to the theme or window scale factor
@@ -366,7 +362,11 @@ export const Panel = GObject.registerClass(
// This saves significant CPU when repainting the screen. // This saves significant CPU when repainting the screen.
this.set_offscreen_redirect(Clutter.OffscreenRedirect.ALWAYS) this.set_offscreen_redirect(Clutter.OffscreenRedirect.ALWAYS)
if (!Main.layoutManager._startingUp) this._resetGeometry() if (!Main.layoutManager._startingUp)
GLib.idle_add(GLib.PRIORITY_LOW, () => {
this._resetGeometry()
return GLib.SOURCE_REMOVE
})
} }
disable() { disable() {
@@ -696,13 +696,9 @@ export const Panel = GObject.registerClass(
this.taskbar.resetAppIcons(true) this.taskbar.resetAppIcons(true)
this.dynamicTransparency.updateExternalStyle() this.dynamicTransparency.updateExternalStyle()
if (this.intellihide && this.intellihide.enabled) {
this.intellihide.reset()
}
if (this.checkIfVertical()) { if (this.checkIfVertical()) {
this.showAppsIconWrapper.realShowAppsIcon.toggleButton.set_width( this.showAppsIconWrapper.realShowAppsIcon.toggleButton.set_width(
this.geom.w, this.geom.innerSize,
) )
this._refreshVerticalAlloc() this._refreshVerticalAlloc()
} }

View File

@@ -20,6 +20,7 @@
* Some code was also adapted from the upstream Gnome Shell source code. * Some code was also adapted from the upstream Gnome Shell source code.
*/ */
import Adw from 'gi://Adw'
import GdkPixbuf from 'gi://GdkPixbuf' import GdkPixbuf from 'gi://GdkPixbuf'
import Gio from 'gi://Gio' import Gio from 'gi://Gio'
import GioUnix from 'gi://GioUnix' import GioUnix from 'gi://GioUnix'
@@ -190,7 +191,6 @@ const Preferences = class {
this._builder.add_from_file(this._path + '/ui/BoxSecondaryMenuOptions.ui') this._builder.add_from_file(this._path + '/ui/BoxSecondaryMenuOptions.ui')
this._builder.add_from_file(this._path + '/ui/BoxScrollPanelOptions.ui') this._builder.add_from_file(this._path + '/ui/BoxScrollPanelOptions.ui')
this._builder.add_from_file(this._path + '/ui/BoxScrollIconOptions.ui') this._builder.add_from_file(this._path + '/ui/BoxScrollIconOptions.ui')
this._builder.add_from_file(this._path + '/ui/BoxAdvancedOptions.ui')
// pages // pages
this._builder.add_from_file(this._path + '/ui/SettingsPosition.ui') this._builder.add_from_file(this._path + '/ui/SettingsPosition.ui')
@@ -284,17 +284,25 @@ const Preferences = class {
let monitorSync = this._settings.get_boolean( let monitorSync = this._settings.get_boolean(
'panel-element-positions-monitors-sync', 'panel-element-positions-monitors-sync',
) )
let topAvailable = let isPrimary = this.monitors[this._currentMonitorIndex].primary
!keepTopPanel || let topAvailable = !keepTopPanel || (!monitorSync && !isPrimary)
(!monitorSync && !this.monitors[this._currentMonitorIndex].primary) let topButton = this._builder.get_object('position_top_button')
let topRadio = this._builder.get_object('position_top_button') let keepGsPanelAvailable = !(topButton.get_active() && isPrimary)
let keepGsPanelSwitch = this._builder.get_object('stockgs_top_panel_switch')
topRadio.set_sensitive(topAvailable) topButton.set_sensitive(topAvailable)
topRadio.set_tooltip_text( topButton.set_tooltip_text(
!topAvailable !topAvailable
? _('Unavailable when gnome-shell top panel is present') ? _('Unavailable when gnome-shell top panel is present')
: '', : '',
) )
keepGsPanelSwitch.set_sensitive(keepGsPanelAvailable)
keepGsPanelSwitch.set_tooltip_text(
keepGsPanelAvailable
? ''
: _('Unavailable when the panel on the primary monitor is at the top'),
)
} }
_getPanelPosition(monitorIndex) { _getPanelPosition(monitorIndex) {
@@ -312,6 +320,7 @@ const Preferences = class {
PanelSettings.setPanelPosition(this._settings, monitorIndex, position) PanelSettings.setPanelPosition(this._settings, monitorIndex, position)
}) })
this._setAnchorLabels(this._currentMonitorIndex) this._setAnchorLabels(this._currentMonitorIndex)
this._maybeDisableTopPosition()
} }
_setPositionRadios(position) { _setPositionRadios(position) {
@@ -1659,6 +1668,30 @@ const Preferences = class {
setShortcut(this._settings, 'intellihide-key-toggle'), setShortcut(this._settings, 'intellihide-key-toggle'),
) )
let intellihidePersistStateSwitch = this._builder.get_object(
'intellihide_persist_state_switch',
)
let intellihideStartDelayButton = this._builder.get_object(
'intellihide_enable_start_delay_spinbutton',
)
intellihidePersistStateSwitch.set_active(
this._settings.get_int('intellihide-persisted-state') > -1,
)
intellihideStartDelayButton.set_sensitive(
this._settings.get_int('intellihide-persisted-state') == -1,
)
intellihidePersistStateSwitch.connect('notify::active', (widget) => {
intellihideStartDelayButton.set_sensitive(!widget.get_active())
this._settings.set_int(
'intellihide-persisted-state',
widget.get_active() ? 0 : -1,
)
})
this._builder this._builder
.get_object('intellihide_animation_time_spinbutton') .get_object('intellihide_animation_time_spinbutton')
.set_value(this._settings.get_int('intellihide-animation-time')) .set_value(this._settings.get_int('intellihide-animation-time'))
@@ -1677,17 +1710,15 @@ const Preferences = class {
this._settings.set_int('intellihide-close-delay', widget.get_value()) this._settings.set_int('intellihide-close-delay', widget.get_value())
}) })
this._builder intellihideStartDelayButton.set_value(
.get_object('intellihide_enable_start_delay_spinbutton') this._settings.get_int('intellihide-enable-start-delay'),
.set_value(this._settings.get_int('intellihide-enable-start-delay')) )
this._builder intellihideStartDelayButton.connect('value-changed', (widget) => {
.get_object('intellihide_enable_start_delay_spinbutton') this._settings.set_int(
.connect('value-changed', (widget) => { 'intellihide-enable-start-delay',
this._settings.set_int( widget.get_value(),
'intellihide-enable-start-delay', )
widget.get_value(), })
)
})
this._builder this._builder
.get_object('intellihide_options_button') .get_object('intellihide_options_button')
@@ -1747,6 +1778,8 @@ const Preferences = class {
this._settings.get_default_value('intellihide-key-toggle-text'), this._settings.get_default_value('intellihide-key-toggle-text'),
) )
intellihidePersistStateSwitch.set_active(false)
this._settings.set_value( this._settings.set_value(
'intellihide-animation-time', 'intellihide-animation-time',
this._settings.get_default_value('intellihide-animation-time'), this._settings.get_default_value('intellihide-animation-time'),
@@ -1769,11 +1802,9 @@ const Preferences = class {
'intellihide-enable-start-delay', 'intellihide-enable-start-delay',
), ),
) )
this._builder intellihideStartDelayButton.set_value(
.get_object('intellihide_enable_start_delay_spinbutton') this._settings.get_int('intellihide-enable-start-delay'),
.set_value( )
this._settings.get_int('intellihide-enable-start-delay'),
)
}, },
) )
@@ -2691,6 +2722,115 @@ const Preferences = class {
this._settings.set_string('scroll-icon-action', widget.get_active_id()) this._settings.set_string('scroll-icon-action', widget.get_active_id())
}) })
let expanders = []
let contextMenuGroup = this._builder.get_object('context_menu_group')
let contextMenuActions = JSON.parse(
this._settings.get_string('context-menu-entries'),
)
let contextMenuAddButton = this._builder.get_object(
'context_menu_add_button',
)
contextMenuAddButton.connect('clicked', () => {
contextMenuActions.push({
title: '',
cmd: '',
})
createContextMenuEntries()
})
let createButton = (icon, tooltip_text, clicked) => {
let btn = new Gtk.Button({ tooltip_text })
btn.set_icon_name(icon)
btn.add_css_class('circular')
btn.set_has_frame(false)
btn.connect('clicked', clicked)
return btn
}
let updateContextMenuEntries = (rebuild) => {
contextMenuActions = contextMenuActions.filter((a) => a.title || a.cmd)
this._settings.set_string(
'context-menu-entries',
JSON.stringify(contextMenuActions),
)
if (rebuild) createContextMenuEntries()
}
let createContextMenuEntries = () => {
expanders.forEach((e) => contextMenuGroup.remove(e))
expanders = []
contextMenuActions.forEach((a, i) => {
let expander = new Adw.ExpanderRow()
let textRow = new Adw.EntryRow()
let commandRow = new Adw.EntryRow()
textRow.set_title(_('Text'))
textRow.set_text(a.title)
textRow.set_show_apply_button(true)
textRow.connect('apply', () => {
a.title = textRow.text
expander.set_title(a.title)
updateContextMenuEntries()
})
commandRow.set_title(_('Command'))
commandRow.set_text(a.cmd)
commandRow.set_show_apply_button(true)
commandRow.connect('apply', () => {
a.cmd = commandRow.text
expander.set_subtitle(a.cmd)
updateContextMenuEntries()
})
expander.add_row(textRow)
expander.add_row(commandRow)
expander.set_title(a.title)
expander.set_subtitle(a.cmd)
let box = new Gtk.Box()
let upBtn = createButton('go-up-symbolic', _('Move up'), () => {
contextMenuActions.splice(
i - 1,
0,
contextMenuActions.splice(i, 1)[0],
)
updateContextMenuEntries(true)
})
let downBtn = createButton('go-down-symbolic', _('Move down'), () => {
contextMenuActions.splice(
i + 1,
0,
contextMenuActions.splice(i, 1)[0],
)
updateContextMenuEntries(true)
})
let deleteBtn = createButton('user-trash-symbolic', _('Remove'), () => {
contextMenuActions.splice(i, 1)
updateContextMenuEntries(true)
})
if (i == 0) upBtn.set_sensitive(false)
if (i == contextMenuActions.length - 1) downBtn.set_sensitive(false)
box.append(upBtn)
box.append(downBtn)
expander.add_suffix(deleteBtn)
expander.add_prefix(box)
contextMenuGroup.add(expander)
expanders.push(expander)
})
}
createContextMenuEntries()
// Create dialog for panel scroll options // Create dialog for panel scroll options
this._builder this._builder
.get_object('scroll_panel_options_button') .get_object('scroll_panel_options_button')
@@ -2934,18 +3074,6 @@ const Preferences = class {
dialog.set_default_size(480, 1) dialog.set_default_size(480, 1)
}) })
// setup dialog for advanced options
this._builder
.get_object('button_advanced_options')
.connect('clicked', () => {
let box = this._builder.get_object('box_advanced_options')
let dialog = this._createPreferencesDialog(_('Advanced Options'), box)
dialog.show()
dialog.set_default_size(480, 1)
})
// Fine-tune panel // Fine-tune panel
let scaleInfos = [ let scaleInfos = [
@@ -3469,12 +3597,15 @@ const Preferences = class {
// About Panel // About Panel
this._builder let versionLinkButton = this._builder.get_object('extension_version')
.get_object('extension_version')
.set_label( versionLinkButton.set_label(
this._metadata.version.toString() + this._metadata.version.toString() +
(this._metadata.commit ? ' (' + this._metadata.commit + ')' : ''), (this._metadata.commit ? ' (' + this._metadata.commit + ')' : ''),
) )
versionLinkButton.set_uri(
`${this._metadata.url}/${this._metadata.commit ? `commit/${this._metadata.commit}` : `releases/tag/v${this._metadata.version}`}`,
)
this._builder this._builder
.get_object('importexport_export_button') .get_object('importexport_export_button')
@@ -3565,16 +3696,22 @@ const Preferences = class {
) )
this.notebook.connect('notify::visible-page', () => { this.notebook.connect('notify::visible-page', () => {
clearTimeout(revealDonateTimeout) if (revealDonateTimeout) GLib.Source.remove(revealDonateTimeout)
if ( if (
this.notebook.visible_page_name == 'donation' && this.notebook.visible_page_name == 'donation' &&
!donationRevealer.get_reveal_child() !donationRevealer.get_reveal_child()
) )
revealDonateTimeout = setTimeout(() => { revealDonateTimeout = GLib.timeout_add(
donationRevealer.set_reveal_child(true) GLib.PRIORITY_DEFAULT,
donationSpinner.set_spinning(false) 15000,
}, 15000) () => {
donationRevealer.set_reveal_child(true)
donationSpinner.set_spinning(false)
return GLib.SOURCE_REMOVE
},
)
}) })
} }

View File

@@ -528,16 +528,24 @@ export const getPoint = function (coords) {
return new Graphene.Point(coords) return new Graphene.Point(coords)
} }
export const notify = function (text, iconName, action, isTransient) { export const notify = function (
let source = new MessageTray.SystemNotificationSource() title,
let notification = new MessageTray.Notification(source, 'Dash to Panel', text) body,
let notifyFunc = source.showNotification || source.notify sourceIconName,
notificationIcon,
action,
isTransient,
) {
let source = MessageTray.getSystemSource()
let notification = new MessageTray.Notification({
source,
title,
body,
isTransient: isTransient || false,
gicon: notificationIcon || null,
})
if (iconName) { if (sourceIconName) source.iconName = sourceIconName
source.createIcon = function () {
return new St.Icon({ icon_name: iconName })
}
}
if (action) { if (action) {
if (!(action instanceof Array)) { if (!(action instanceof Array)) {
@@ -547,10 +555,7 @@ export const notify = function (text, iconName, action, isTransient) {
action.forEach((a) => notification.addAction(a.text, a.func)) action.forEach((a) => notification.addAction(a.text, a.func))
} }
Main.messageTray.add(source) source.addNotification(notification)
notification.setTransient(isTransient)
notifyFunc.call(source, notification)
} }
/* /*

View File

@@ -495,10 +495,7 @@ export const PreviewMenu = GObject.registerClass(
(panelSize + previewSize) + (panelSize + previewSize) +
panelBoxTheme.get_padding(St.Side.LEFT) panelBoxTheme.get_padding(St.Side.LEFT)
} else if (geom.position == St.Side.TOP) { } else if (geom.position == St.Side.TOP) {
y = y = geom.y + panelSize - panelBoxTheme.get_padding(St.Side.BOTTOM)
this.panel.monitor.y +
panelSize -
panelBoxTheme.get_padding(St.Side.BOTTOM)
} else { } else {
//St.Side.BOTTOM //St.Side.BOTTOM
y = y =

View File

@@ -1,28 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<requires lib="gtk" version="4.0"/>
<object class="GtkBox" id="box_advanced_options">
<property name="orientation">vertical</property>
<property name="width-request">600</property>
<property name="spacing">24</property>
<property name="margin-top">32</property>
<property name="margin-bottom">32</property>
<property name="margin-start">32</property>
<property name="margin-end">32</property>
<child>
<object class="AdwPreferencesGroup">
<child>
<object class="AdwActionRow">
<property name="title" translatable="yes">Nothing yet!</property>
<property name="subtitle" translatable="yes">For real...</property>
</object>
</child>
</object>
</child>
</object>
</interface>

View File

@@ -1,53 +1,47 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version='1.0' encoding='UTF-8'?>
<interface> <interface>
<!-- interface-name BoxIntellihideOptions.ui -->
<requires lib="gtk" version="4.0"/> <requires lib="gtk" version="4.0"/>
<requires lib="libadwaita" version="1.3"/>
<object class="GtkAdjustment" id="intellihide_pressure_threshold_adjustment"> <object class="GtkAdjustment" id="intellihide_pressure_threshold_adjustment">
<property name="lower">1</property> <property name="lower">1</property>
<property name="page-increment">100</property>
<property name="step-increment">10</property>
<property name="upper">9990</property> <property name="upper">9990</property>
<property name="step_increment">10</property>
<property name="page_increment">100</property>
</object> </object>
<object class="GtkAdjustment" id="intellihide_pressure_time_adjustment"> <object class="GtkAdjustment" id="intellihide_pressure_time_adjustment">
<property name="lower">1</property> <property name="lower">1</property>
<property name="page-increment">100</property>
<property name="step-increment">10</property>
<property name="upper">5000</property> <property name="upper">5000</property>
<property name="step_increment">10</property>
<property name="page_increment">100</property>
</object> </object>
<object class="GtkAdjustment" id="intellihide_animation_time_adjustment"> <object class="GtkAdjustment" id="intellihide_animation_time_adjustment">
<property name="lower">10</property> <property name="lower">10</property>
<property name="page-increment">100</property>
<property name="step-increment">10</property>
<property name="upper">2000</property> <property name="upper">2000</property>
<property name="step_increment">10</property>
<property name="page_increment">100</property>
</object> </object>
<object class="GtkAdjustment" id="intellihide_close_delay_adjustment"> <object class="GtkAdjustment" id="intellihide_close_delay_adjustment">
<property name="lower">10</property> <property name="lower">10</property>
<property name="page-increment">100</property>
<property name="step-increment">10</property>
<property name="upper">4000</property> <property name="upper">4000</property>
<property name="step_increment">10</property>
<property name="page_increment">100</property>
</object> </object>
<object class="GtkAdjustment" id="intellihide_enable_hide_delay_adjustment"> <object class="GtkAdjustment" id="intellihide_enable_hide_delay_adjustment">
<property name="page-increment">100</property>
<property name="step-increment">10</property>
<property name="upper">10000</property> <property name="upper">10000</property>
<property name="step_increment">10</property>
<property name="page_increment">100</property>
</object> </object>
<object class="GtkBox" id="box_intellihide_options"> <object class="GtkBox" id="box_intellihide_options">
<property name="orientation">vertical</property>
<property name="width-request">600</property>
<property name="spacing">24</property>
<property name="margin-top">32</property>
<property name="margin-bottom">32</property> <property name="margin-bottom">32</property>
<property name="margin-start">32</property>
<property name="margin-end">32</property> <property name="margin-end">32</property>
<property name="margin-start">32</property>
<property name="margin-top">32</property>
<property name="orientation">vertical</property>
<property name="spacing">24</property>
<property name="width-request">600</property>
<child> <child>
<object class="AdwPreferencesGroup"> <object class="AdwPreferencesGroup">
<child> <child>
<object class="AdwActionRow"> <object class="AdwActionRow">
<property name="title" translatable="yes">Only hide the panel when it is obstructed by windows</property> <property name="title" translatable="yes">Only hide the panel when it is obstructed by windows</property>
@@ -58,7 +52,6 @@
</child> </child>
</object> </object>
</child> </child>
<child> <child>
<object class="AdwActionRow" id="intellihide_behaviour_options"> <object class="AdwActionRow" id="intellihide_behaviour_options">
<property name="title" translatable="yes">The panel hides from</property> <property name="title" translatable="yes">The panel hides from</property>
@@ -74,13 +67,10 @@
</child> </child>
</object> </object>
</child> </child>
</object> </object>
</child> </child>
<child> <child>
<object class="AdwPreferencesGroup"> <object class="AdwPreferencesGroup">
<child> <child>
<object class="AdwActionRow"> <object class="AdwActionRow">
<property name="title" translatable="yes">Require pressure at the edge of the screen to reveal the panel</property> <property name="title" translatable="yes">Require pressure at the edge of the screen to reveal the panel</property>
@@ -91,43 +81,38 @@
</child> </child>
</object> </object>
</child> </child>
<child> <child>
<object class="AdwActionRow" id="intellihide_use_pressure_options"> <object class="AdwActionRow" id="intellihide_use_pressure_options">
<property name="title" translatable="yes">Required pressure threshold (px)</property> <property name="title" translatable="yes">Required pressure threshold (px)</property>
<child> <child>
<object class="GtkSpinButton" id="intellihide_pressure_threshold_spinbutton"> <object class="GtkSpinButton" id="intellihide_pressure_threshold_spinbutton">
<property name="valign">center</property>
<property name="width_chars">4</property>
<property name="text">0</property>
<property name="adjustment">intellihide_pressure_threshold_adjustment</property> <property name="adjustment">intellihide_pressure_threshold_adjustment</property>
<property name="numeric">True</property> <property name="numeric">True</property>
<property name="text">0</property>
<property name="valign">center</property>
<property name="width-chars">4</property>
</object> </object>
</child> </child>
</object> </object>
</child> </child>
<child> <child>
<object class="AdwActionRow" id="intellihide_use_pressure_options2"> <object class="AdwActionRow" id="intellihide_use_pressure_options2">
<property name="title" translatable="yes">Required pressure timeout (ms)</property> <property name="title" translatable="yes">Required pressure timeout (ms)</property>
<child> <child>
<object class="GtkSpinButton" id="intellihide_pressure_time_spinbutton"> <object class="GtkSpinButton" id="intellihide_pressure_time_spinbutton">
<property name="valign">center</property>
<property name="width_chars">4</property>
<property name="text">0</property>
<property name="adjustment">intellihide_pressure_time_adjustment</property> <property name="adjustment">intellihide_pressure_time_adjustment</property>
<property name="numeric">True</property> <property name="numeric">True</property>
<property name="text">0</property>
<property name="valign">center</property>
<property name="width-chars">4</property>
</object> </object>
</child> </child>
</object> </object>
</child> </child>
</object> </object>
</child> </child>
<child> <child>
<object class="AdwPreferencesGroup"> <object class="AdwPreferencesGroup">
<child> <child>
<object class="AdwActionRow"> <object class="AdwActionRow">
<property name="title" translatable="yes">Allow the panel to be revealed while in fullscreen mode</property> <property name="title" translatable="yes">Allow the panel to be revealed while in fullscreen mode</property>
@@ -138,11 +123,10 @@
</child> </child>
</object> </object>
</child> </child>
<child> <child>
<object class="AdwActionRow" id="grid_intellihide_only_secondary"> <object class="AdwActionRow" id="grid_intellihide_only_secondary">
<property name="title" translatable="yes">Only hide secondary panels</property>
<property name="subtitle" translatable="yes">(requires multi-monitors option)</property> <property name="subtitle" translatable="yes">(requires multi-monitors option)</property>
<property name="title" translatable="yes">Only hide secondary panels</property>
<child> <child>
<object class="GtkSwitch" id="intellihide_only_secondary_switch"> <object class="GtkSwitch" id="intellihide_only_secondary_switch">
<property name="valign">center</property> <property name="valign">center</property>
@@ -150,77 +134,78 @@
</child> </child>
</object> </object>
</child> </child>
<child> <child>
<object class="AdwActionRow"> <object class="AdwActionRow">
<property name="title" translatable="yes">Keyboard shortcut to reveal and hold the panel</property>
<property name="subtitle" translatable="yes">Syntax: &amp;lt;Shift&amp;gt;, &amp;lt;Ctrl&amp;gt;, &amp;lt;Alt&amp;gt;, &amp;lt;Super&amp;gt;</property> <property name="subtitle" translatable="yes">Syntax: &amp;lt;Shift&amp;gt;, &amp;lt;Ctrl&amp;gt;, &amp;lt;Alt&amp;gt;, &amp;lt;Super&amp;gt;</property>
<property name="title" translatable="yes">Keyboard shortcut to reveal and hold the panel</property>
<child> <child>
<object class="GtkEntry" id="intellihide_toggle_entry"> <object class="GtkEntry" id="intellihide_toggle_entry">
<property name="placeholder-text" translatable="yes">e.g. &lt;Super&gt;i</property>
<property name="valign">center</property>
<property name="width-chars">12</property>
</object>
</child>
</object>
</child>
<child>
<object class="AdwActionRow" id="grid_intellihide_persist_state">
<property name="title" translatable="yes">Persist state across restarts</property>
<child>
<object class="GtkSwitch" id="intellihide_persist_state_switch">
<property name="valign">center</property> <property name="valign">center</property>
<property name="width_chars">12</property>
<property name="placeholder_text" translatable="yes">e.g. &lt;Super&gt;i</property>
</object> </object>
</child> </child>
</object> </object>
</child> </child>
</object> </object>
</child> </child>
<child> <child>
<object class="AdwPreferencesGroup"> <object class="AdwPreferencesGroup">
<child> <child>
<object class="AdwActionRow"> <object class="AdwActionRow">
<property name="title" translatable="yes">Hide and reveal animation duration (ms)</property> <property name="title" translatable="yes">Hide and reveal animation duration (ms)</property>
<child> <child>
<object class="GtkSpinButton" id="intellihide_animation_time_spinbutton"> <object class="GtkSpinButton" id="intellihide_animation_time_spinbutton">
<property name="valign">center</property>
<property name="width_chars">4</property>
<property name="text">0</property>
<property name="adjustment">intellihide_animation_time_adjustment</property> <property name="adjustment">intellihide_animation_time_adjustment</property>
<property name="numeric">True</property> <property name="numeric">True</property>
<property name="text">0</property>
<property name="valign">center</property>
<property name="width-chars">4</property>
</object> </object>
</child> </child>
</object> </object>
</child> </child>
<child> <child>
<object class="AdwActionRow"> <object class="AdwActionRow">
<property name="title" translatable="yes">Delay before hiding the panel (ms)</property> <property name="title" translatable="yes">Delay before hiding the panel (ms)</property>
<child> <child>
<object class="GtkSpinButton" id="intellihide_close_delay_spinbutton"> <object class="GtkSpinButton" id="intellihide_close_delay_spinbutton">
<property name="valign">center</property>
<property name="width_chars">4</property>
<property name="text">10</property>
<property name="adjustment">intellihide_close_delay_adjustment</property> <property name="adjustment">intellihide_close_delay_adjustment</property>
<property name="numeric">True</property> <property name="numeric">True</property>
<property name="text">10</property>
<property name="valign">center</property>
<property name="value">10</property> <property name="value">10</property>
<property name="width-chars">4</property>
</object> </object>
</child> </child>
</object> </object>
</child> </child>
<child> <child>
<object class="AdwActionRow"> <object class="AdwActionRow">
<property name="title" translatable="yes">Delay before enabling intellihide on start (ms)</property> <property name="title" translatable="yes">Delay before enabling intellihide on start (ms)</property>
<child> <child>
<object class="GtkSpinButton" id="intellihide_enable_start_delay_spinbutton"> <object class="GtkSpinButton" id="intellihide_enable_start_delay_spinbutton">
<property name="valign">center</property>
<property name="width_chars">4</property>
<property name="text">10</property>
<property name="adjustment">intellihide_enable_hide_delay_adjustment</property> <property name="adjustment">intellihide_enable_hide_delay_adjustment</property>
<property name="numeric">True</property> <property name="numeric">True</property>
<property name="text">10</property>
<property name="valign">center</property>
<property name="value">10</property> <property name="value">10</property>
<property name="width-chars">4</property>
</object> </object>
</child> </child>
</object> </object>
</child> </child>
</object> </object>
</child> </child>
</object> </object>
</interface>
</interface>

View File

@@ -1,99 +1,86 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version='1.0' encoding='UTF-8'?>
<interface> <interface>
<!-- interface-name SettingsAbout.ui -->
<requires lib="gtk" version="4.0"/> <requires lib="gtk" version="4.0"/>
<requires lib="libadwaita" version="1.6"/>
<object class="AdwPreferencesPage" id="about"> <object class="AdwPreferencesPage" id="about">
<property name="icon-name">help-about-symbolic</property>
<property name="title" translatable="yes">About</property> <property name="title" translatable="yes">About</property>
<property name="icon_name">help-about-symbolic</property> <child>
<object class="AdwPreferencesGroup" id="about_group_info">
<!-- group info --> <property name="title" translatable="yes">Info</property>
<child> <child>
<object class="AdwPreferencesGroup" id="about_group_info"> <object class="AdwActionRow">
<property name="title" translatable="yes">Info</property> <property name="title" translatable="yes">Version</property>
<child>
<child> <object class="GtkLinkButton" id="extension_version"/>
<object class="AdwActionRow"> </child>
<property name="title" translatable="yes">Version</property> </object>
<child> </child>
<object class="GtkLabel" id="extension_version"> <child>
<property name="label">...</property> <object class="AdwActionRow">
</object> <property name="title" translatable="yes">Source</property>
</child> <child>
</object> <object class="GtkLinkButton" id="homepage_link">
</child> <property name="halign">center</property>
<property name="label" translatable="yes">GitHub</property>
<child> <property name="receives-default">True</property>
<object class="AdwActionRow"> <property name="uri">https://github.com/home-sweet-gnome/dash-to-panel</property>
<property name="title" translatable="yes">Source</property> </object>
<child> </child>
<object class="GtkLinkButton" id="homepage_link"> </object>
<property name="label" translatable="yes">GitHub</property> </child>
<property name="receives_default">True</property> </object>
<property name="halign">center</property> </child>
<property name="uri">https://github.com/home-sweet-gnome/dash-to-panel</property> <child>
</object> <object class="AdwPreferencesGroup" id="about_group_export_and_import">
</child> <property name="title" translatable="yes">Export and Import</property>
</object> <child>
</child> <object class="AdwActionRow">
<property name="subtitle" translatable="yes">Use the buttons below to create a settings file from your current preferences that can be imported on a different machine.</property>
</object> <property name="title" translatable="yes">Export and import settings</property>
</child> </object>
</child>
<!-- group export import --> <child>
<child> <object class="AdwPreferencesRow">
<object class="AdwPreferencesGroup" id="about_group_export_and_import"> <child>
<property name="title" translatable="yes">Export and Import</property> <object class="GtkBox">
<property name="halign">end</property>
<child> <property name="margin-bottom">4</property>
<object class="AdwActionRow"> <property name="margin-end">8</property>
<property name="title" translatable="yes">Export and import settings</property> <property name="margin-start">8</property>
<property name="subtitle" translatable="yes">Use the buttons below to create a settings file from your current preferences that can be imported on a different machine.</property> <property name="margin-top">4</property>
</object> <property name="spacing">8</property>
</child> <child>
<object class="GtkButton" id="importexport_export_button">
<child> <property name="label" translatable="yes">Export to file</property>
<object class="AdwPreferencesRow"> <property name="receives-default">True</property>
<child> </object>
<object class="GtkBox"> </child>
<property name="margin_start">8</property> <child>
<property name="margin_end">8</property> <object class="GtkButton" id="importexport_import_button">
<property name="margin_top">4</property> <property name="label" translatable="yes">Import from file</property>
<property name="margin_bottom">4</property> <property name="receives-default">True</property>
<property name="spacing">8</property> </object>
<property name="halign">end</property> </child>
<child> </object>
<object class="GtkButton" id="importexport_export_button"> </child>
<property name="label" translatable="yes">Export to file</property> </object>
<property name="receives_default">True</property> </child>
</object> </object>
</child> </child>
<child> <child>
<object class="GtkButton" id="importexport_import_button"> <object class="AdwPreferencesGroup" id="about_group_disclaimer">
<property name="label" translatable="yes">Import from file</property> <child>
<property name="receives_default">True</property> <object class="GtkLabel" id="label1">
</object> <property name="justify">center</property>
</child> <property name="label" translatable="yes">&lt;span size="small"&gt;This program comes with ABSOLUTELY NO WARRANTY.
</object> See the &lt;a href="https://www.gnu.org/licenses/old-licenses/gpl-2.0.html"&gt;GNU General Public License, version 2 or later&lt;/a&gt; for details.&lt;/span&gt;</property>
</child> <property name="use-markup">True</property>
</object> <property name="wrap">True</property>
</child> </object>
</child>
</object> </object>
</child> </child>
<!-- group disclaimer -->
<child>
<object class="AdwPreferencesGroup" id="about_group_disclaimer">
<child>
<object class="GtkLabel" id="label1">
<property name="label" translatable="yes">&lt;span size="small"&gt;This program comes with ABSOLUTELY NO WARRANTY.&#10;See the &lt;a href="https://www.gnu.org/licenses/old-licenses/gpl-2.0.html"&gt;GNU General Public License, version 2 or later&lt;/a&gt; for details.&lt;/span&gt;</property>
<property name="use_markup">True</property>
<property name="justify">center</property>
<property name="wrap">True</property>
</object>
</child>
</object>
</child>
</object> </object>
</interface> </interface>

View File

@@ -1,27 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version='1.0' encoding='UTF-8'?>
<interface> <interface>
<!-- interface-name SettingsAction.ui -->
<requires lib="gtk" version="4.0"/> <requires lib="gtk" version="4.0"/>
<requires lib="libadwaita" version="1.6"/>
<object class="AdwPreferencesPage" id="action"> <object class="AdwPreferencesPage" id="action">
<property name="icon-name">input-mouse-symbolic</property>
<property name="title" translatable="yes">Action</property> <property name="title" translatable="yes">Action</property>
<property name="icon_name">input-mouse-symbolic</property>
<!-- group click action -->
<child> <child>
<object class="AdwPreferencesGroup" id="action_group_click_action"> <object class="AdwPreferencesGroup" id="action_group_click_action">
<property name="title" translatable="yes">Click action</property> <property name="title" translatable="yes">Click action</property>
<child> <child>
<object class="AdwActionRow"> <object class="AdwActionRow">
<property name="title" translatable="yes">Click action</property>
<property name="subtitle" translatable="yes">Behaviour when clicking on the icon of a running application.</property> <property name="subtitle" translatable="yes">Behaviour when clicking on the icon of a running application.</property>
<property name="title" translatable="yes">Click action</property>
<child> <child>
<object class="GtkButton" id="middle_click_options_button"> <object class="GtkButton" id="middle_click_options_button">
<property name="receives_default">True</property> <property name="receives-default">True</property>
<property name="valign">center</property> <property name="valign">center</property>
<child> <child>
<object class="GtkImage" id="middle_click_image"> <object class="GtkImage" id="middle_click_image">
<property name="icon_name">emblem-system-symbolic</property> <property name="icon-name">emblem-system-symbolic</property>
</object> </object>
</child> </child>
<style> <style>
@@ -46,29 +44,25 @@
</child> </child>
</object> </object>
</child> </child>
</object> </object>
</child> </child>
<!-- group scroll action -->
<child> <child>
<object class="AdwPreferencesGroup" id="action_group_scroll_action"> <object class="AdwPreferencesGroup" id="action_group_scroll_action">
<property name="title" translatable="yes">Scroll action</property> <property name="title" translatable="yes">Scroll action</property>
<child> <child>
<object class="AdwActionRow"> <object class="AdwActionRow">
<property name="title" translatable="yes">Scroll panel action</property>
<property name="subtitle" translatable="yes">Behavior when mouse scrolling over the panel.</property> <property name="subtitle" translatable="yes">Behavior when mouse scrolling over the panel.</property>
<property name="title" translatable="yes">Scroll panel action</property>
<child> <child>
<object class="GtkButton" id="scroll_panel_options_button"> <object class="GtkButton" id="scroll_panel_options_button">
<property name="visible">True</property>
<property name="receives_default">True</property>
<property name="halign">end</property> <property name="halign">end</property>
<property name="receives-default">True</property>
<property name="valign">center</property> <property name="valign">center</property>
<property name="visible">True</property>
<child> <child>
<object class="GtkImage" id="scroll_panel_options_button_image"> <object class="GtkImage" id="scroll_panel_options_button_image">
<property name="icon-name">emblem-system-symbolic</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="icon_name">emblem-system-symbolic</property>
</object> </object>
</child> </child>
<style> <style>
@@ -78,9 +72,9 @@
</child> </child>
<child> <child>
<object class="GtkComboBoxText" id="scroll_panel_combo"> <object class="GtkComboBoxText" id="scroll_panel_combo">
<property name="visible">True</property>
<property name="valign">center</property>
<property name="hexpand">True</property> <property name="hexpand">True</property>
<property name="valign">center</property>
<property name="visible">True</property>
<items> <items>
<item id="NOTHING" translatable="yes">Do nothing</item> <item id="NOTHING" translatable="yes">Do nothing</item>
<item id="SWITCH_WORKSPACE" translatable="yes">Switch workspace</item> <item id="SWITCH_WORKSPACE" translatable="yes">Switch workspace</item>
@@ -91,19 +85,18 @@
</child> </child>
</object> </object>
</child> </child>
<child> <child>
<object class="AdwActionRow"> <object class="AdwActionRow">
<property name="title" translatable="yes">Scroll icon action</property>
<property name="subtitle" translatable="yes">Behavior when mouse scrolling over an application icon.</property> <property name="subtitle" translatable="yes">Behavior when mouse scrolling over an application icon.</property>
<property name="title" translatable="yes">Scroll icon action</property>
<child> <child>
<object class="GtkButton" id="scroll_icon_options_button"> <object class="GtkButton" id="scroll_icon_options_button">
<property name="receives_default">True</property> <property name="receives-default">True</property>
<property name="valign">center</property> <property name="valign">center</property>
<child> <child>
<object class="GtkImage" id="scroll_icon_options_button_image"> <object class="GtkImage" id="scroll_icon_options_button_image">
<property name="icon-name">emblem-system-symbolic</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="icon_name">emblem-system-symbolic</property>
</object> </object>
</child> </child>
<style> <style>
@@ -113,8 +106,8 @@
</child> </child>
<child> <child>
<object class="GtkComboBoxText" id="scroll_icon_combo"> <object class="GtkComboBoxText" id="scroll_icon_combo">
<property name="valign">center</property>
<property name="hexpand">True</property> <property name="hexpand">True</property>
<property name="valign">center</property>
<items> <items>
<item id="NOTHING" translatable="yes">Do nothing</item> <item id="NOTHING" translatable="yes">Do nothing</item>
<item id="CYCLE_WINDOWS" translatable="yes">Cycle windows</item> <item id="CYCLE_WINDOWS" translatable="yes">Cycle windows</item>
@@ -124,26 +117,22 @@
</child> </child>
</object> </object>
</child> </child>
</object> </object>
</child> </child>
<!-- group hotkey -->
<child> <child>
<object class="AdwPreferencesGroup" id="action_group_hotkry"> <object class="AdwPreferencesGroup" id="action_group_hotkey">
<property name="title" translatable="yes">Hotkey overlay</property> <property name="title" translatable="yes">Hotkey overlay</property>
<child> <child>
<object class="AdwActionRow"> <object class="AdwActionRow">
<property name="title" translatable="yes">Use hotkeys to activate apps</property>
<property name="subtitle" translatable="yes">Enable Super+(0-9) as shortcuts to activate apps. It can also be used together with Shift and Ctrl.</property> <property name="subtitle" translatable="yes">Enable Super+(0-9) as shortcuts to activate apps. It can also be used together with Shift and Ctrl.</property>
<property name="title" translatable="yes">Use hotkeys to activate apps</property>
<child> <child>
<object class="GtkButton" id="overlay_button"> <object class="GtkButton" id="overlay_button">
<property name="receives_default">True</property> <property name="receives-default">True</property>
<property name="valign">center</property> <property name="valign">center</property>
<child> <child>
<object class="GtkImage" id="image_overlay"> <object class="GtkImage" id="image_overlay">
<property name="icon_name">emblem-system-symbolic</property> <property name="icon-name">emblem-system-symbolic</property>
</object> </object>
</child> </child>
<style> <style>
@@ -158,9 +147,55 @@
</child> </child>
</object> </object>
</child> </child>
</object> </object>
</child> </child>
<child>
<object class="AdwPreferencesGroup" id="action_appicons_group">
<property name="title">Application icons context menu</property>
<child>
<object class="AdwActionRow">
<property name="subtitle" translatable="yes">(right-click menu)</property>
<property name="title" translatable="yes">Secondary menu</property>
<child>
<object class="GtkButton" id="secondarymenu_options_button">
<property name="receives-default">True</property>
<property name="valign">center</property>
<child>
<object class="GtkImage" id="secondarymenu_options_button_image">
<property name="icon-name">emblem-system-symbolic</property>
</object>
</child>
<style>
<class name="circular"/>
</style>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="AdwPreferencesGroup" id="context_menu_group">
<property name="title" translatable="yes">Panel context menu entries</property>
<child>
<object class="GtkButton" id="context_menu_add_button">
<property name="halign">center</property>
<property name="margin-top">10</property>
<property name="receives-default">True</property>
<property name="valign">center</property>
<property name="width-request">100</property>
<child>
<object class="GtkImage">
<property name="icon-name">list-add-symbolic</property>
<property name="tooltip-text" translatable="yes">Add entry</property>
</object>
</child>
<style>
<class name="circular"/>
</style>
</object>
</child>
</object>
</child>
</object> </object>
</interface> </interface>

View File

@@ -1,274 +1,202 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version='1.0' encoding='UTF-8'?>
<!-- Created with Cambalache 0.94.1 -->
<interface> <interface>
<requires lib="gtk" version="4.0"/> <requires lib="gtk" version="4.0"/>
<requires lib="libadwaita" version="1.6"/>
<object class="GtkAdjustment" id="tray_size_adjustment"> <object class="GtkAdjustment" id="tray_size_adjustment">
<property name="lower">0.33</property> <property name="lower">0.33</property>
<property name="page-increment">0.1</property>
<property name="step-increment">0.01</property>
<property name="upper">1</property> <property name="upper">1</property>
<property name="step_increment">0.01</property>
<property name="page_increment">0.1</property>
</object> </object>
<object class="GtkAdjustment" id="leftbox_size_adjustment"> <object class="GtkAdjustment" id="leftbox_size_adjustment">
<property name="lower">0.33</property> <property name="lower">0.33</property>
<property name="page-increment">0.1</property>
<property name="step-increment">0.01</property>
<property name="upper">1</property> <property name="upper">1</property>
<property name="step_increment">0.01</property>
<property name="page_increment">0.1</property>
</object> </object>
<object class="GtkAdjustment" id="tray_padding_adjustment"> <object class="GtkAdjustment" id="tray_padding_adjustment">
<property name="lower">0.33</property> <property name="lower">0.33</property>
<property name="page-increment">0.1</property>
<property name="step-increment">0.01</property>
<property name="upper">1</property> <property name="upper">1</property>
<property name="step_increment">0.01</property>
<property name="page_increment">0.1</property>
</object> </object>
<object class="GtkAdjustment" id="statusicon_padding_adjustment"> <object class="GtkAdjustment" id="statusicon_padding_adjustment">
<property name="lower">0.33</property> <property name="lower">0.33</property>
<property name="page-increment">0.1</property>
<property name="step-increment">0.01</property>
<property name="upper">1</property> <property name="upper">1</property>
<property name="step_increment">0.01</property>
<property name="page_increment">0.1</property>
</object> </object>
<object class="GtkAdjustment" id="leftbox_padding_adjustment"> <object class="GtkAdjustment" id="leftbox_padding_adjustment">
<property name="lower">0.33</property> <property name="lower">0.33</property>
<property name="page-increment">0.1</property>
<property name="step-increment">0.01</property>
<property name="upper">1</property> <property name="upper">1</property>
<property name="step_increment">0.01</property>
<property name="page_increment">0.1</property>
</object> </object>
<object class="AdwPreferencesPage" id="finetune"> <object class="AdwPreferencesPage" id="finetune">
<property name="icon-name">preferences-other-symbolic</property>
<property name="title" translatable="yes">Fine-Tune</property> <property name="title" translatable="yes">Fine-Tune</property>
<property name="icon_name">preferences-other-symbolic</property> <child>
<object class="AdwPreferencesGroup" id="finetune_group_font">
<!-- group font --> <property name="title" translatable="yes">Font size</property>
<child> <child>
<object class="AdwPreferencesGroup" id="finetune_group_font"> <object class="AdwActionRow">
<property name="title" translatable="yes">Font size</property> <property name="subtitle" translatable="yes">(0 = theme default)</property>
<property name="title" translatable="yes">Tray Font Size</property>
<child> <child>
<object class="AdwActionRow"> <object class="GtkScale" id="tray_size_scale">
<property name="title" translatable="yes">Tray Font Size</property> <property name="adjustment">tray_size_adjustment</property>
<property name="subtitle" translatable="yes">(0 = theme default)</property> <property name="digits">0</property>
<child> <property name="draw-value">True</property>
<object class="GtkScale" id="tray_size_scale"> <property name="round-digits">0</property>
<property name="width-request">300</property> <property name="value-pos">right</property>
<property name="adjustment">tray_size_adjustment</property> <property name="width-request">300</property>
<property name="round_digits">0</property> </object>
<property name="digits">0</property> </child>
<property name="value_pos">right</property> </object>
<property name="draw_value">True</property> </child>
</object> <child>
</child> <object class="AdwActionRow">
</object> <property name="subtitle" translatable="yes">(0 = theme default)</property>
</child> <property name="title" translatable="yes">LeftBox Font Size</property>
<child>
<child> <object class="GtkScale" id="leftbox_size_scale">
<object class="AdwActionRow"> <property name="adjustment">leftbox_size_adjustment</property>
<property name="title" translatable="yes">LeftBox Font Size</property> <property name="digits">0</property>
<property name="subtitle" translatable="yes">(0 = theme default)</property> <property name="draw-value">True</property>
<child> <property name="round-digits">0</property>
<object class="GtkScale" id="leftbox_size_scale"> <property name="value-pos">right</property>
<property name="width-request">300</property> <property name="width-request">300</property>
<property name="adjustment">leftbox_size_adjustment</property> </object>
<property name="round_digits">0</property> </child>
<property name="digits">0</property> </object>
<property name="value_pos">right</property> </child>
<property name="draw_value">True</property> </object>
</object> </child>
</child> <child>
</object> <object class="AdwPreferencesGroup" id="finetune_group_padding">
</child> <property name="title" translatable="yes">Padding</property>
<child>
</object> <object class="AdwActionRow">
</child> <property name="subtitle" translatable="yes">(-1 = theme default)</property>
<property name="title" translatable="yes">Tray Item Padding</property>
<!-- group panel --> <child>
<child> <object class="GtkScale" id="tray_padding_scale">
<object class="AdwPreferencesGroup" id="finetune_group_padding"> <property name="adjustment">tray_padding_adjustment</property>
<property name="title" translatable="yes">Padding</property> <property name="digits">0</property>
<property name="draw-value">True</property>
<child> <property name="round-digits">0</property>
<object class="AdwActionRow"> <property name="value-pos">right</property>
<property name="title" translatable="yes">Tray Item Padding</property> <property name="width-request">300</property>
<property name="subtitle" translatable="yes">(-1 = theme default)</property> </object>
<child> </child>
<object class="GtkScale" id="tray_padding_scale"> </object>
<property name="width-request">300</property> </child>
<property name="adjustment">tray_padding_adjustment</property> <child>
<property name="round_digits">0</property> <object class="AdwActionRow">
<property name="digits">0</property> <property name="subtitle" translatable="yes">(-1 = theme default)</property>
<property name="value_pos">right</property> <property name="title" translatable="yes">Status Icon Padding</property>
<property name="draw_value">True</property> <child>
</object> <object class="GtkScale" id="statusicon_padding_scale">
</child> <property name="adjustment">statusicon_padding_adjustment</property>
</object> <property name="digits">0</property>
</child> <property name="draw-value">True</property>
<property name="round-digits">0</property>
<child> <property name="value-pos">right</property>
<object class="AdwActionRow"> <property name="width-request">300</property>
<property name="title" translatable="yes">Status Icon Padding</property> </object>
<property name="subtitle" translatable="yes">(-1 = theme default)</property> </child>
<child> </object>
<object class="GtkScale" id="statusicon_padding_scale"> </child>
<property name="width-request">300</property> <child>
<property name="adjustment">statusicon_padding_adjustment</property> <object class="AdwActionRow">
<property name="round_digits">0</property> <property name="subtitle" translatable="yes">(-1 = theme default)</property>
<property name="digits">0</property> <property name="title" translatable="yes">LeftBox Padding</property>
<property name="value_pos">right</property> <child>
<property name="draw_value">True</property> <object class="GtkScale" id="leftbox_padding_scale">
</object> <property name="adjustment">leftbox_padding_adjustment</property>
</child> <property name="digits">0</property>
</object> <property name="draw-value">True</property>
</child> <property name="round-digits">0</property>
<property name="value-pos">right</property>
<child> <property name="width-request">300</property>
<object class="AdwActionRow"> </object>
<property name="title" translatable="yes">LeftBox Padding</property> </child>
<property name="subtitle" translatable="yes">(-1 = theme default)</property> </object>
<child> </child>
<object class="GtkScale" id="leftbox_padding_scale"> </object>
<property name="width-request">300</property> </child>
<property name="adjustment">leftbox_padding_adjustment</property> <child>
<property name="round_digits">0</property> <object class="AdwPreferencesGroup" id="finetune_group_animate">
<property name="digits">0</property> <property name="title" translatable="yes">Animate</property>
<property name="value_pos">right</property> <child>
<property name="draw_value">True</property> <object class="AdwActionRow">
</object> <property name="title" translatable="yes">Animate switching applications</property>
</child> <child>
</object> <object class="GtkSwitch" id="animate_app_switch_switch">
</child> <property name="valign">center</property>
</object>
</object> </child>
</child> </object>
</child>
<!-- group animate --> <child>
<child> <object class="AdwActionRow">
<object class="AdwPreferencesGroup" id="finetune_group_animate"> <property name="title" translatable="yes">Animate launching new windows</property>
<property name="title" translatable="yes">Animate</property> <child>
<object class="GtkSwitch" id="animate_window_launch_switch">
<child> <property name="valign">center</property>
<object class="AdwActionRow"> </object>
<property name="title" translatable="yes">Animate switching applications</property> </child>
<child> </object>
<object class="GtkSwitch" id="animate_app_switch_switch"> </child>
<property name="valign">center</property> </object>
</object> </child>
</child> <child>
</object> <object class="AdwPreferencesGroup" id="finetune_group_gnome">
</child> <property name="title" translatable="yes">Gnome functionality</property>
<child>
<child> <object class="AdwActionRow">
<object class="AdwActionRow"> <property name="subtitle" translatable="yes">(overview)</property>
<property name="title" translatable="yes">Animate launching new windows</property> <property name="title" translatable="yes">Keep original gnome-shell dash</property>
<child> <child>
<object class="GtkSwitch" id="animate_window_launch_switch"> <object class="GtkSwitch" id="stockgs_dash_switch">
<property name="valign">center</property> <property name="valign">center</property>
</object> </object>
</child> </child>
</object> </object>
</child> </child>
<child>
</object> <object class="AdwActionRow">
</child> <property name="title" translatable="yes">Keep original gnome-shell top panel</property>
<child>
<!-- group gnome --> <object class="GtkSwitch" id="stockgs_top_panel_switch">
<child> <property name="valign">center</property>
<object class="AdwPreferencesGroup" id="finetune_group_gnome"> </object>
<property name="title" translatable="yes">Gnome functionality</property> </child>
</object>
<child> </child>
<object class="AdwActionRow"> <child>
<property name="title" translatable="yes">Keep original gnome-shell dash</property> <object class="AdwActionRow">
<property name="subtitle" translatable="yes">(overview)</property> <property name="subtitle" translatable="yes">(e.g. date menu)</property>
<child> <property name="title" translatable="yes">Activate panel menu buttons on click only</property>
<object class="GtkSwitch" id="stockgs_dash_switch"> <child>
<property name="valign">center</property> <object class="GtkSwitch" id="stockgs_panelbtn_switch">
</object> <property name="valign">center</property>
</child> </object>
</object> </child>
</child> </object>
</child>
<child> <child>
<object class="AdwActionRow"> <object class="AdwActionRow">
<property name="title" translatable="yes">Keep original gnome-shell top panel</property> <property name="title" translatable="yes">Force Activities hot corner on primary monitor</property>
<child> <child>
<object class="GtkSwitch" id="stockgs_top_panel_switch"> <object class="GtkSwitch" id="stockgs_hotcorner_switch">
<property name="valign">center</property> <property name="valign">center</property>
</object> </object>
</child> </child>
</object> </object>
</child> </child>
</object>
<child> </child>
<object class="AdwActionRow">
<property name="title" translatable="yes">Activate panel menu buttons on click only</property>
<property name="subtitle" translatable="yes">(e.g. date menu)</property>
<child>
<object class="GtkSwitch" id="stockgs_panelbtn_switch">
<property name="valign">center</property>
</object>
</child>
</object>
</child>
<child>
<object class="AdwActionRow">
<property name="title" translatable="yes">Force Activities hot corner on primary monitor</property>
<child>
<object class="GtkSwitch" id="stockgs_hotcorner_switch">
<property name="valign">center</property>
</object>
</child>
</object>
</child>
</object>
</child>
<!-- group panel -->
<child>
<object class="AdwPreferencesGroup" id="finetune_group_">
<child>
<object class="AdwActionRow">
<property name="title" translatable="yes">App icon secondary menu</property>
<property name="subtitle" translatable="yes">(right-click menu)</property>
<child>
<object class="GtkButton" id="secondarymenu_options_button">
<property name="receives_default">True</property>
<property name="valign">center</property>
<child>
<object class="GtkImage" id="secondarymenu_options_button_image">
<property name="icon_name">emblem-system-symbolic</property>
</object>
</child>
<style>
<class name="circular"/>
</style>
</object>
</child>
</object>
</child>
</object>
</child>
<!-- group advanced-->
<child>
<object class="AdwPreferencesGroup" id="finetune_group_advanced">
<child>
<object class="GtkButton" id="button_advanced_options">
<property name="label" translatable="yes">Advanced Options</property>
<property name="visible">False</property>
<property name="receives_default">True</property>
<property name="halign">end</property>
</object>
</child>
</object>
</child>
</object> </object>
</interface> </interface>