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).
- 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.
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.
- 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