Skip to content

Latest commit

 

History

History
98 lines (96 loc) · 6.97 KB

6. More gnome-shell elements.MD

File metadata and controls

98 lines (96 loc) · 6.97 KB

More gnome-shell elements

Unfortunately, I don't have the patience to go through all these files and describe in details what they do how. If you want something a bit more complete, but outdated, you can go to MathematicalCoffee's excelent blog post on the subject. (Thanks by the way).

UI files in /usr/share/gnome-shell/js/ui (imports.ui)

  • accessDialog.js
  • altTab.js: the popup that appears when you press Alt+Tab.
  • animation.js
  • appDisplay.js: to do with the applications tab in the overview - searching for apps and displaying their icons.
  • appFavorites.js: manages app favourites in the dash (left hand sidebar in the overview).
  • audioDeviceSelection.js
  • background.js
  • backgroundMenu.js
  • boxpointer.js: whenever you open a popup menu there's a little arrow connecting the button to the menu. That's what this is.
  • calendar.js: stuff to do with the calendar in the clock dropdown menu.
  • checkBox.js: A checkbox. As far as I can tell there's one in the Keyring Prompt and that's it.
  • ctrlAltTab.js: Handles the Accessibility switcher which lets you select UI elements (top panel, dash, ...) so that you can navigate around them with the keyboard (I never knew this existed!).
  • dash.js: Handles the dash (left-hand sidebar in the overview showing the application favourites).
  • dateMenu.js: The graphical calendar widget in the calendar menu (the grid of squares where you click on the date to see events for that date).
  • dnd.js: Handles drag and drop.
  • edgeDragAction.js
  • endSessionDialog.js: the dialog that appears when you log out/shut down/etc.
  • environment.js: sets up the GJS environment for the rest of the code.
  • extensionDownloader.js
  • extensionSystem.js: handles installing, enabling, and disabling extensions.
  • focusCaretTracker.js
  • grabHelper.js
  • ibusCandidatePopup.js
  • iconGrid.js: classes for layout out icons in a grid (e.g. the Overview search results)
  • keyboard.js: on-screen keyboard class.
  • layout.js: stuff to do with laying out actors on the stage? (panel, message tray, hot corners, ...)
  • legacyTray.js
  • lightbox.js: Creates a dark translucent shade covering a UI element (e.g. when the end session modal dialog causes the rest of the screen to be shaded; this is the shade).
  • lookingGlass.js: the looking glass (Alt+F2, 'r').
  • messageList.js
  • messageTray.js: the message tray (bottom of the screen showing notifications).
  • modalDialog.js: defines the gnome-shell popup dialogs (logout/shutdown, authentication, ...).
  • mpris.js
  • notificationDaemon.js: listens for notifications via DBus and adds them to the message tray.
  • osdMonitorLabeler.js
  • overview.js: The overview (press the windows key).
  • overviewControls.js
  • padOsd.js
  • panel.js: Defines the top panel.
  • panelMenu.js: Defines various helper functions for items in the panel (notably, the system status icon class, being a button in the top panel with a dropdown menu).
  • pointerWatcher.js
  • popupMenu.js: Defines the popup menus and items that can go in them.
  • remoteMenu.js
  • remoteSearch.js (GNOME 3.4 only): Handles remote search providers (search providers that operate through DBus, like Google and Wikipedia where searches go through the internet).
  • runDialog.js: The run dialog/command prompt when you pres Alt+F2.
  • screenShield.js
  • screencast.js
  • screeshot.js
  • scripting.js: A scripting module for gnome-shell devs to do performance/unit tests...(?)
  • search.js: Abstract classes that handle searching and providing results (that are then displayed in the overview by searchDisplay.js classes). They are all implemented through other classes (e.g. appDisplay.js, contactDisplay.js, ...
  • seperator.js
  • sessionMode.js
  • shellDBus.js: GNOME shell DBus implementation (interface name org.gnome.shell, path /org/gnome/Shell) - for installing/enabling/disabling/uninstalling extensions and requesting information from them, taking screenshots, and so on.
  • shellEntry.js: Adds context menus to entry widgets with 'copy' and 'paste' and (if it's a password widget) 'show/hide text'.
  • shellMountOperation.js: Wrappers around Shell.MountOperation that handle the ejecting of a device from the autorunManager.AutorunResidentNotification. Provides a dialog letting you know if the device is busy/what processes are inhibiting unmounting and notifications if passwords are needed for the volume.
  • slider.js : A slider Item you can add to menus.
  • switcherPopup.js
  • tweener.js: a module that wraps around imports.tweener.tweener adding extra goodness for gnome-shell (initialised in main.js).
  • unlockDialog.js
  • userWidget.js
  • viewSelector.js: The main part of the Overview - defining a notebook/tabs model. For example the 'Applications' and 'Windows' sections of the Overview are 'tabs' within the notebook.
  • windowAttentionHandler.js: Handles requests for attention from windows (e.g. when you start up and app and it takes a while to start, when the app is done loading you get a ' is ready' notification).
  • windowManager.js: Extra bells and whistles for the window manager implemented on the JS side (mainly window animations).
  • windowMenu.js
  • workspace.js: Classes handling the window previews you see in the 'Windows' tab of the Overview.
  • workspaceSwitcherPopup.js: The popup you get upon switching workspaces through the keybindings that shows you which workspace you're switching to.
  • workspaceThumbnail.js: Defines the classes in the workspaces sidebar in the 'Windows' tab of the Overview - the little snapshots of each workspace allowing you to drag windows between them.
  • workspacesView.js: Essentially the 'Windows' tab in the Overview - handles assembling the window previews (from workspace.js) and the - workspaces sidebar (workspaceThumbnail.js) into one 'tab' for the Overview.
  • xdndHandler.js: GNOME-shell handling of Xdnd: dragging and dropping things between an X window and a gnome-shell object. E.g. if you try to drag a file from Nautilus over the Overview button, panel.js uses xdndHandler to detect this and trigger the overview.

UI files in the status sub-directory: (imports.ui.status)

This contains the files for all the standard status indicators in the status area.

  • accessibility.js: the accessibility (a11y) indicator.
  • bluetooth.js: the bluetooth indicator.
  • brightness.js
  • keyboard.js: keyboard layout indicator (letting you switch between layouts).
  • location.js
  • network.js: the network (wifi/wired) indicator.
  • nightLight.js
  • power.js: the power (battery life/power settings) indicator.
  • rfkill.js
  • screencast.js
  • system.js
  • volume.js: the volume/sound settings indicator.

UI files in the components sub-directory: (imports.ui.components)

  • init.js
  • automountManager.js: handles the automagic detection of external media (USB sticks, ...).
  • autorunManager.js: handles the popup menu when you mount an external media offering you options to view photos, browse, play music, etc on the media.
  • keyringPrompt.js (GNOME 3.4 only): prompt for gnome-keyring.
  • networkAgent.js: wrapper around network authentication (listens on dbus for password requests and pops up the authentication dialog).
  • polkitAgent.js
  • telepathyClient.js