「GNOME」- GNU Network Object Model Environment

认识

官网:https://www.gnome.org/
文档:https://help.gnome.org/users/gnome-documents/stable/
仓库:https://gitlab.gnome.org/explore/groups

GNOME 桌面环境是个开源的、高度可定制的桌面环境,为用户提供了直观、现代化的界面和丰富的功能。GNOME 桌面环境是一个强大而灵活的桌面环境,为用户提供了直观、现代化的界面和丰富的功能。简而言之,GNOME 是个桌面环境,其提供桌面操作系统需要使用的各种工具及服务。

组成

注 1:“组成”,该处指组成 GNOME Desktop Environment 的关键组件,例如 GNOME Shell、UPower、Flatpak 等等。

注 1:参考 About Us/Technologies 页面,以获取 GNOME Desktop Environemnt 所使用的技术。该处仅简单罗列,以助于理解其组成。

GNOME Components https://developer.gnome.org/components/

GNOME Technologies

The majority of GNOME’s technologies originated in and are actively developed by GNOME. Others are hosted elsewhere, with GNOME community members being active contributors. This willingness to work beyond community borders and actively shape an entire stack is one of the hallmarks of the GNOME project.

Linux Kernel | GNOME technologies are highly compatible with the Linux kernel. GNOME project members are active kernel contributors, and we are helping to shape the future of this important project.

systemd | GNOME has a close relationship with systemd. A number of systemd features originated in the GNOME project, and ongoing collaborations ensure effective integration with this core technology.

GLib | Core object system used in GNOME, which provides a large set of utility functions.

D-Bus | The message bus system: a simple way for applications to talk to one another. D-Bus also helps coordinate process lifecycle.

UDisks2 | Storage device management.

UPower | Power device discovery and management.

OSTree | operating system integration and testing, and next-generation operating system installation, distribution and update framework.

Flatpak | Next-generation application distribution and installation technology. Allows the creation of sandboxed, cross-platform applications.

X11 and Wayland | GNOME has been a prominent user and contributor to the primary Linux display servers, and we are at the forefront of Wayland adoption.

ATK | Core accessibility framework, which provides interfaces for assistive technologies.

GTK | GNOME’s graphical user interface toolkit, which allows the creation of modern, dynamic interfaces. Features include CSS styling, live introspection, OpenGL, multitouch, and accessibility support.

GNOME Shell | System user interface for launching and switching applications, viewing notifications and system status. Closely integrated with Mutter, GNOME’s window manager.

针对 GNOME 的窗口管理器,在 GNOME 2 中,Metacity 是默认窗口管理器。在 GNOME 3 中,被「Mutter」取代;

Storage, Data, and File Access

dconf and GSettings | Settings storage framework, optimized for fast read speeds.

Tracker | System-wide search engine, search tool and metadata storage system.

GIO | Virtual file system (VFS), with APIs for accessing and manipulating files. Allows access through Samba (Windows), AppleTalk (MacOS X), and a
number of mobile devices (MTP for Android, iOS).

Multimedia

PulseAudio | Sound system with advanced capabilities such as transferring audio between machines, changing the sample format or channel count and mixing several sounds into one. Also supports Bluetooth headsets and speakers.

GStreamer | Multimedia framework for audio and video playback, recording, streaming and editing. GStreamer is capable of hardware-accelerated video decoding.

Grilo | Plugin-based media discovery framework, with support for YouTube, Jamendo, Flickr, Vimeo, Apple trailers, Podcasts, UPnP/DLNA and Last.FM album art.

Networking, Web, and Connectivity

NetworkManager | Core networking technology, with support for Wi-Fi, wired, 3G and Bluetooth, as well as bonds and bridges. Mobile broadband support is provided by ModemManager.

Libsoup | HTTP client/server library, with asynchronous and synchronous APIs and SSL support.

WebKitGTK+ | A full-featured port of the WebKit rendering engine, suitable for projects requiring any kind of web integration, from hybrid HTML/CSS applications to full-fledged web browsers.

UPnP | GNOME’s Universal Plug and Play (UPnP) solution allows audio, video and pictures to be shared with other devices. Can also be used as a media renderer that may be controlled remotely by a UPnP or DLNA Controller.

Avahi | mDNS/DNS-SD protocol suite that allows service discovery on a local network. Supports chat, printer discovery, printing and file sharing, and is compatible with technology found in Apple’s OS X.

BlueZ | The official Linux Bluetooth stack.

Contacts, Calendaring, and Communication

Telepathy | Flexible and modular real-time communications framework.

Evolution Data Server | System address book and calendar system.

Folks | Contact aggregation service, which combines contacts from multiple sources.

GeoClue | Location services for applications, based on Wi-Fi access points, GPS, 3G modems and GeoIP.

Development Technologies

Gjs | Gjs allows software and applications using the GNOME stack to be written in JavaScript. It is based on Mozilla’s Spidermonkey JavaScript engine.

Vala | Vala is a programming language with a syntax that is similar to C#. It allows access to existing C libraries, particularly those from the GNOME stack.

Other

CUPS | Local and network printing service.

GNOME Keyring | Password, key and certificate storage.

GDM | GNOME’s display manager: manages graphical display servers and user login.

性质

注 1:“性质”,该处指 GNOME Desktop Enviroment 所表现出的功能,例如 Search、Notification、Window Picker 等等。

其采用了直观的用户界面设计,以提高用户的工作效率和舒适度。
其使用了简洁的图标和面板布局,使用户可以轻松地访问应用程序、文件和系统设置。

Top bar
System status area
Activities Overview
Dash
Window picker
Application picker
Search | GNOME 还提供了一个强大的搜索功能,可以帮助用户快速找到需要的内容。
Notifications and messaging tray
Application switcher
Indicators tray (deprecated, waiting on new specification)

GNOME 还提供了许多强大的应用程序,如文件管理器、文本编辑器、终端模拟器、网页浏览器等。这些应用程序具有现代化的界面和丰富的功能,可以满足用户在日常工作中的各种需求。

GNOME 还支持各种扩展和插件,用户可以根据自己的需求定制桌面环境。用户可以添加新的面板、更改主题和图标、自定义键盘快捷键等。这种高度可定制性使得 GNOME 成为一个非常适合技术爱好者和高级用户的桌面环境。

GNOME Remote Desktop

https://gitlab.gnome.org/GNOME/gnome-remote-desktop

GNOME Remote Desktop is the remote desktop server of the GNOME project. It supports operating as a remote assistance remote desktop server, as a single user headless remote desktop server, and as a headless remote login remote desktop server.

  • It uses PipeWire for streaming pixel content, libei for input event plumbing, and the Mutter remote desktop API for high level management.
  • For RDP support, it uses FreeRDP, and for VNC support, it uses LibVNCServer.
  • It’s licensed under the GNU General Public License v2 or later.

It has two protocol backends, RDP and VNC. Not all modes of operation are supported with all protocol backends.

Settings / Systems / Remote Desktop

  • Desktop Sharing,远程协助
  • Remote Login,远程桌面,

Screen Locker

How can I lock my screen in Gnome 3 without GDM?

In old versions of gnome the command gnome-screensaver-command -l would lock your screen. As gnome-screensaver is no more in gnome 3.8 you now have to send a dbus call. I think this is then handled by GDM.

dbus-send –type=method_call –dest=org.gnome.ScreenSaver /org/gnome/ScreenSaver org.gnome.ScreenSaver.Lock

提供主题配置功能

GNOME Theme = GNOME Shell Theme + GTK Theme
Difference between GTK theme and GNOME shell theme? – Ask Ubuntu

GTK Theme,其指 GTK 主题,该类主题仅能控制应用程序窗口的主题,也就是 GTK 的主题。比如,应用程序界面的 Button、Toolbar、Menubar 等等的显示样式。

GNOME Shell Theme,其指 GNOME Shell 主题,通常是指整个桌面环境组件的主题。比如,桌面的 System Tray、Topbar、Activities 等等的样式显示。

当我们提到 GNOME Theme 时,其可能包含 GTK Theme 与 GNOME Shell Theme 两部分。因为,在同个主题包中,可能包含 GTK Theme 与 GNOME Shell Theme 两部分,同时还可能包含鼠标指针的 Theme 配置。

构建

版本选择

https://release.gnome.org/

安装方法

How to install minimal Gnome on Ubuntu 20.04 Focal Fossa Linux – LinuxConfig.org

在 GNOME 中,已预先定义用于安装特定桌面的任务,直接安装即可:

# GNOME 3.30 on Debian GNU/Linux 10 (buster)
# https://wiki.debian.org/Gnome#task
# 01/27/2019 

apt-get install -y task-gnome-desktop

监控 | 日志 | 问题排查

window manager – gnome-shell error log – Unix & Linux Stack Exchange

$ journalctl /usr/bin/gnome-shell
$ journalctl /usr/bin/gnome-session

$ journalctl -xe

journalctl SYSLOG_IDENTIFIER=gnome-session-binary -n 5
journalctl SYSLOG_IDENTIFIER=gnome-session -n 5

Try /var/log/X.*. There are usually several logs to do with X there, one for the login manager and one for each session started up as well as the previous session.

/var/log/messages

$HOME/.xsession-errors

应用

其是许多流行的 Linux 发行版(例如 Ubuntu、Debian、……)的默认桌面环境。无论是日常办公还是娱乐,GNOME 都可以满足用户的需求,并为用户提供高度可定制的体验。

参考

Github/Gnome:https://git.gnome.org/browse/
GNOME Shell – Wikipedia