GNOME Shell là lớp vỏ đồ họa của GNOME bắt đầu từ phiên bản 3,[3] được phát hành vào ngày 6/4/ 2011. Nó cung cấp các tính năng cơ bản như khởi động ứng dụng, chuyển đổi giữa các của sổ và cũng như là một widget engine. GNOME Shell thay thế GNOME Panel[4] và một vài tính năng phụ̣ trợ trong GNOME 2.
GNOME Shell được viết bằng C và JavaScript như một plugin cho Mutter.
Thiết kế
Giống như các lớp vỏ đồ họa (graphical front-end/graphical shell/UX/UI) của môi trường desktop GNOME, nó được thiết kế và hướng dẫn bởi GNOME UX Design Team.[5]
Thành phần thiết kế
GNOME Shell bao gồm các yếu tố đồ họa và tính năng sau:
Top bar
System status
Activities Overview
Dash
bộ chọn của sổ
Bộ chọn ứng dụng
Tìm kiếm
Tray thông báo và lịch
Bộ chuyển đổi ứng dụng
Tray chỉ số
Kiến trúc phần mềm
GNOME Shell được tích hợp chặt chẽ với Mutter, một tổ hợp quản lý của sổ và trình biên soạn Wayland. Nó dựa trên Clutter để cung cấp hiệu ứng hình ảnh và khả năng tăng tốc phần cứng.[6] Theo bảo trì viên GNOME Shell[7] Owen Taylor, Nó được thiết lập như là một plugin của Mutter phần lớn được viết bằng JavaScript[8] và dùng GUI widgets cung cấp bởi GTK+ 3.
Một dock (còn gọi là "Dash") để chuyển đổi nhanh và khởi chạy ứng dụng
Một bộ chọn của sổ, tương tự như Mission Control của Mac OS X, cũng kết hợp quản lý/chuyển đổi workspace
Một bộ chọn ứng dụng
Tìm kiếm
Của sổ "Snapping" để kích thước của sổ ứng dụng chiếm một nữa màn hình hoặc toàn bộ màn hình.
Một Nút bấm duy nhất theo mặc định, Close, thay vì ba (cấu hình). Minimization bị loại bỏ do thiếu một panel để thu về, có lợi cho việc quản lý các của sổ workspace. Maximization có thể thục hiện thông qua của sổ snapping, hoặc bằng cách double-clicking vào thanh tiêu đề của cửa sổ.
Một chế độ dự phòng (fallback mode) được cung cấp trong các phiên bản 3,0-3,6 cho những người không có khả năng tăng tốc phần cứng rong đó hỗ trợ các GNOME Panel. Mô hình này cũng có thể được bật thông qua menu System Settings.[11] GNOME 3.8 đã loại bỏ fallback mode và thay thế nó bằng một tiện ích mở rộng của GNOME Shell Cung cấp một cái nhìn và cảm giác truyền thống hơn.[12]
Khả năng mở rộng
Các chức năng của GNOME Shell có thể được thay đổi với plugin, có thể được viết bằng JavaScript. Người dùng có thể tìm thấy và cài đặt các tiện ích mở rộng bằng cách sử dụng website GNOME extensions. Một số trong những tiện ích được lưu trữ trong kho Git của GNOME, mặc dù chúng không phải chính thức.[13]
Thư viện
GNOME Shell Overlay Mode Windows
GNOME Shell Overlay Mode Applications
GNOME 3 Shell showing Terminal and Firefox applications
Adoption
Bản phân phối Fedora dùng GNOME Shell từ phiên bản 15.[14]
Trước kia Ubuntu không dùng GNOME Shell làm mặc định, nhưng người dùng có thể cài đặt từ kho ứng dụng của Ubuntu từ phiên bản 11.10.[15] Ngoài ra, một bản phát hành flavor không chính thức của Ubuntu có tên gọi Ubuntu GNOME Remix đồng thời với Ubuntu 12.10.[16] Nó trở thành flavor chính thức của bản phát hành Ubuntu 13.04 và được đổi tên thành Ubuntu GNOME.[17]
Phiên bản GNOME của openSUSE 12.1 dùng GNOME Shell làm mặc định.[18]
Năm 2011, Arch Linux ngừng hỗ trợ GNOME 2 nhưn một sự thiên vị GNOME 3 trong kho ứng dụng của họ.[19]
Debian Jessie có sẵn GNOME 3.14. Các phiên bản gần đây của GNOME Shell cũng có sẵn trong Debian Testing và Sid (không ổn định).[21][22]
Sabayon Linux dùng phiên bản mới nhất của GNOME Shell.
Tiếp nhận
GNOME Shell đã nhận được nhiều phản ứng trái chiều: Nó bị chỉ trích vì nhiều lý do,chủ yếu liên quan đến quyết định thiết kế và sự rút gọn các user control trong môi trường. Ví dụ, người dùng trong cộng đồng phần mềm tự do dấy lên lo ngại rằng kế hoạch tích hợp sâu với Mutter sẽ có nghĩa rằng người dùng GNOME Shell không thể chuyển đổi sang trình quản lý của sổ khác mà không gây gây ra lỗi. Đặc biệt, người dũng có thể không thể sử dụng được Compiz với GNOME Shell trong khi vẫn giữ quyền truy cập vào cùng loại của các tính năng mà phiên bản cũ của GNOME được phép.[23]
Các đánh giá chung đã trở nên tích cực hơn theo thời gian, với các phát hành sắp tới sẽ giải quyết nhiều phiền toái được thông báo bởi người dùng.[24][25]
Lịch sử
Concept đầu tiên của GNOME Shell đã được đưa ra tại GNOME's User Experience Hackfest 2008 ở Boston.[26][27][28]
Sau những chỉ trích của cộng đồng những người dùng GNOME desktop truyền thống và những cáo buộc về sự trì trệ và thiếu tầm nhìn,[29] kết quả của các cuộc thảo luận dẫn đến việc công bố GNOME 3.0 tháng 4/2009.[30] Từ đó Red Hat động lực chính cho sự phát triển của GNOME Shell.[31]
Bản tiền phát hành đầu tiên của GNOME Shell có sẵn vào tháng 8/2009[32] và trở thành chính thức, nhưng không phải mặc định của GNOME trong phiên bản 2.28 tháng 9/2009.[33] Nó chính thức được phân phối như giao diện người dùng mặc định của GNOME vào ngày 6/4/2011.[34][35]
^Taylor, Owen (ngày 23 tháng 3 năm 2009), "Metacity, Mutter, GNOME Shell, GNOME-2.28", desktop-devel-list mailing list, retrieved August 18, 2012, gnome-shell is set up as a Mutter plugin that is largely written in JavaScript
Lỗi chú thích: Thẻ <ref> có tên “arch-gnome” được định nghĩa trong <references> có tên “” không có nội dung. Lỗi chú thích: Thẻ <ref> có tên “behind-the-scenes” được định nghĩa trong <references> có tên “” không có nội dung. Lỗi chú thích: Thẻ <ref> có tên “debian-sid” được định nghĩa trong <references> có tên “” không có nội dung. Lỗi chú thích: Thẻ <ref> có tên “debian-wheezy” được định nghĩa trong <references> có tên “” không có nội dung. Lỗi chú thích: Thẻ <ref> có tên “fedora-features” được định nghĩa trong <references> có tên “” không có nội dung. Lỗi chú thích: Thẻ <ref> có tên “gnome-3-planning” được định nghĩa trong <references> có tên “” không có nội dung. Lỗi chú thích: Thẻ <ref> có tên “gnome3-fallback” được định nghĩa trong <references> có tên “” không có nội dung. Lỗi chú thích: Thẻ <ref> có tên “live-extensions” được định nghĩa trong <references> có tên “” không có nội dung. Lỗi chú thích: Thẻ <ref> có tên “mageia-rn” được định nghĩa trong <references> có tên “” không có nội dung. Lỗi chú thích: Thẻ <ref> có tên “metacity-mutter-shell-2.28” được định nghĩa trong <references> có tên “” không có nội dung. Lỗi chú thích: Thẻ <ref> có tên “mutter-gnome-future” được định nghĩa trong <references> có tên “” không có nội dung. Lỗi chú thích: Thẻ <ref> có tên “mutter-in-js” được định nghĩa trong <references> có tên “” không có nội dung. Lỗi chú thích: Thẻ <ref> có tên “opensuse-12.1” được định nghĩa trong <references> có tên “” không có nội dung. Lỗi chú thích: Thẻ <ref> có tên “shell-replaces-panel” được định nghĩa trong <references> có tên “” không có nội dung.
Lỗi chú thích: Thẻ <ref> có tên “ubuntu-pkg” được định nghĩa trong <references> có tên “” không có nội dung.