Thanh tác vụ

**Thanh tác vụ** () là một thành phần của giao diện đồ hoạ người dùng đảm nhiệm nhiều chức năng khác nhau, tiêu biểu là hiển thị danh sách các chương trình máy tính đang chạy.
Thiết kế và bố trí cụ thể của thanh tác vụ thay đổi tùy theo hệ điều hành, nhưng nhìn chung nó thường nằm dọc theo một cạnh của màn hình. Trên thanh tác vụ thường hiển thị các biểu tượng tương ứng với những cửa sổ chương trình đang mở. Người dùng có thể nhấp chuột vào các biểu tượng này để dễ dàng chuyển đổi giữa các chương trình hoặc cửa sổ. Cửa sổ hoặc chương trình đang hoạt động (active) thường được làm nổi bật để phân biệt với các cửa sổ còn lại. Trong các phiên bản hệ điều hành mới hơn, người dùng còn có thể "ghim" các chương trình hoặc tệp tin để truy cập nhanh, thường chỉ bằng một cú nhấp chuột. Nhờ nằm ở vị trí dễ quan sát trên màn hình, thanh tác vụ thường tích hợp thêm khu vực thông báo, sử dụng các biểu tượng tương tác để hiển thị thông tin thời gian thực về trạng thái của hệ thống và các chương trình chạy nền.
Song hành với sự tiến hóa của hệ điều hành và giao diện đồ hoạ người dùng, nhiều yếu tố đặc thù của hệ điều hành đã được tích hợp và trở thành phần cốt lõi của thanh tác vụ.
## Triển khai
### Windows 1.0
Windows 1.0, phát hành năm 1985, sở hữu một thanh ngang nằm ở đáy màn hình. Đây là nơi chứa các chương trình đang chạy khi bị thu nhỏ (khi đó gọi là "thu nhỏ thành biểu tượng" - iconization), hiển thị dưới dạng biểu tượng. Một cửa sổ có thể được thu nhỏ bằng cách nhấp đúp vào thanh tiêu đề, kéo nó vào một vị trí trống trên thanh tác vụ, hoặc chọn lệnh từ một trong các menu. Để khôi phục cửa sổ đã thu nhỏ, người dùng nhấp đúp vào biểu tượng hoặc kéo biểu tượng ra khỏi thanh tác vụ.
Thanh tác vụ có nhiều khe chứa biểu tượng và có thể mở rộng theo chiều dọc để tạo thêm hàng khi cần thiết. Màu sắc của thanh này đồng bộ với màu nền màn hình và có thể tùy chỉnh. Các cửa sổ thu nhỏ có thể được đặt tự do vào bất kỳ vị trí trống nào. Cửa sổ chương trình không thể che khuất thanh tác vụ trừ khi chúng được phóng to toàn màn hình.
Start menu chưa xuất hiện trong các phiên bản thanh tác vụ sơ khai này mà chỉ được giới thiệu sau đó cùng với sự ra mắt của Windows 95.

### Arthur
Một tiền thân khác xuất hiện trong hệ điều hành Arthur của Acorn Computers, được gọi là *[[iconbar]]* và vẫn là thành phần thiết yếu của hệ điều hành RISC OS kế nhiệm Arthur. Iconbar chứa các biểu tượng đại diện cho ổ đĩa, RAM disk, các ứng dụng đang chạy và tiện ích hệ thống. Những biểu tượng này có menu ngữ cảnh riêng và hỗ trợ thao tác kéo thả.

### Amiga
AmigaOS có nhiều loại thanh tác vụ khác nhau do bên thứ ba phát triển, và di sản này vẫn hiện diện trong các hệ thống kế nhiệm. Ví dụ, AmiDock, ban đầu là một tiện ích của bên thứ ba, sau đó đã được tích hợp vào AmigaOS 3.9 và AmigaOS 4.0. Hệ điều hành AROS có phiên bản Amistart cài sẵn và người dùng có thể tự do cài đặt thêm, trong khi MorphOS được trang bị tiện ích dock tương tự như trong AmigaOS hoặc Mac OS X.
## Microsoft Windows
Theo mặc định, thanh tác vụ Microsoft Windows nằm ở cạnh dưới màn hình và bao gồm (từ trái sang phải): **nút** **Start menu**, **thanh Quick Launch**, **các nút tác vụ (taskbar buttons)**, và **khu vực thông báo (notification area)**. Thanh công cụ Quick Launch được thêm vào từ bản cập nhật Windows Desktop Update nhưng không được bật mặc định trong Windows XP. Windows 7 đã loại bỏ tính năng Quick Launch để chuyển sang cơ chế ghim ứng dụng trực tiếp vào thanh tác vụ. Trên Windows 8 và Windows Server 2012, một điểm nóng (hotspot) ở góc dưới bên trái màn hình đã thay thế nút Start, tuy nhiên thay đổi này đã bị loại bỏ và nút Start được khôi phục trong Windows 8.1 và Windows Server 2012 R2.
Thanh tác vụ ban đầu được phát triển như một tính năng của Windows 95, dựa trên một thành phần giao diện người dùng tương tự gọi là **khay (tray),** vốn dành cho dự án Cairo của Microsoft.
Với việc phát hành Windows XP, Microsoft đã tinh chỉnh thanh tác vụ dựa trên luật Fitts bằng cách loại bỏ các pixel thừa xung quanh nút Start (vốn không kích hoạt menu), cho phép người dùng mở menu bằng cách di chuột nhanh (flick) và nhấp vào góc cùng của màn hình một cách chính xác.

### Các thành phần của thanh tác vụ
* **Nút Start**: Nút dùng để mở menu Start (hoặc Start Screen trong Windows 8 và Windows 8.1). Nút Start xuất hiện trong Windows 9x, Windows NT 4.0 và tất cả các phiên bản kế nhiệm, ngoại trừ Windows 8, Windows 8.1 và Windows Server 2012.
* **Thanh Quick Launch**: Được giới thiệu trên Windows 95 và Windows NT 4.0 thông qua Windows Desktop Update cho Internet Explorer 4 và đi kèm với Windows 95 OSR 2.5, Windows 98. Nó chứa các phím tắt (shortcut) dẫn đến ứng dụng. Windows cung cấp các mục mặc định như *Khởi chạy trình duyệt [[Internet Explorer]]*, nhưng người dùng có thể thêm bất kỳ phần mềm bên thứ ba hoặc phím tắt nào họ muốn. Nhấp một lần vào biểu tượng trong khu vực này sẽ khởi chạy ứng dụng. Phần này không phải lúc nào cũng hiển thị: ví dụ, nó bị tắt mặc định trên Windows XP và Windows 7.
* **Nút tác vụ (Taskbar button)**: Windows shell sẽ đặt một nút trên thanh tác vụ bất cứ khi nào ứng dụng tạo một cửa sổ không có cửa sổ cha (unowned window) - tức là một cửa sổ được tạo theo các nguyên tắc giao diện chuẩn của Windows. Thông thường, tất cả các ứng dụng Giao diện Tài liệu Đơn (SDI) đều có một nút tác vụ duy nhất cho mỗi cửa sổ đang mở, mặc dù các cửa sổ phương thức cũng có thể xuất hiện tại đây.
** Windows 98 và Windows Desktop Update cho Windows 95 đã giới thiệu khả năng thu nhỏ cửa sổ đang hiện hành bằng cách nhấp vào nút của chúng trên thanh tác vụ.
** Windows 2000 giới thiệu thông báo dạng bong bóng (balloon notification) trên thanh tác vụ.
** Windows Me thêm tùy chọn vô hiệu hóa việc di chuyển hoặc thay đổi kích thước thanh tác vụ.
** Windows XP giới thiệu tính năng *nhóm tác vụ (taskbar grouping)*, cho phép gộp các nút của nhiều cửa sổ thuộc cùng một ứng dụng thành một nút duy nhất. Khi nhấp vào nút này, một menu sẽ hiện ra liệt kê tất cả các cửa sổ trong nhóm. Điều này giúp thanh tác vụ không bị quá tải khi mở nhiều cửa sổ cùng lúc.
** Windows Vista giới thiệu tính năng xem trước cửa sổ (window preview), hiển thị hình thu nhỏ nội dung ứng dụng trong thời gian thực. Khả năng này được hỗ trợ bởi Desktop Window Manager. Khi di chuột vào nút Start, dòng chú thích (tooltip) không còn hiện "Click here to begin" mà chỉ đơn giản là "Start".
** Windows 7 giới thiệu Jumplist (danh sách nhảy). Đây là các menu cung cấp lối tắt đến các tài liệu mở gần đây, thường xuyên, đường dẫn thư mục (đối với Windows Explorer) hoặc các tác vụ cụ thể áp dụng cho chương trình đó. Jumplist xuất hiện khi người dùng nhấp chuột phải vào biểu tượng trên thanh tác vụ hoặc kéo biểu tượng lên trên bằng chuột trái. Các tệp và thư mục có thể được ghim cố định vào trong Jumplist.
** Windows 7 cũng giới thiệu khả năng ghim ứng dụng trực tiếp vào thanh tác vụ để các nút khởi chạy luôn hiển thị ngay cả khi ứng dụng không chạy. Trước đây, Quick Launch được dùng cho việc này, nhưng chương trình đang chạy lại xuất hiện dưới dạng một nút riêng biệt.
** Windows 7 đã loại bỏ một số tính năng thanh tác vụ cổ điển.
* **Deskbands**: Là các chương trình nhỏ, thường trú và ít chức năng, ví dụ như Windows Media Player thu nhỏ. Các chương trình dạng này không hiển thị nút trên thanh tác vụ.
* **[[Notification Area]]**: Là khu vực trên thanh tác vụ hiển thị biểu tượng cho các tính năng hệ thống, các chương trình chạy nền không có cửa sổ chính, cũng như biểu tượng đồng hồ và âm lượng. Khu vực này chủ yếu chứa các biểu tượng trạng thái, mặc dù một số chương trình như Winamp sử dụng nó để thu nhỏ cửa sổ nhằm tiết kiệm không gian. Theo mặc định, khu vực này nằm ở góc dưới bên phải màn hình (hoặc dưới bên trái đối với các ngôn ngữ đọc từ phải sang trái), hoặc ở cuối thanh tác vụ nếu thanh này được đặt dọc. Đồng hồ xuất hiện tại đây và các ứng dụng có thể hiển thị biểu tượng để báo trạng thái hoạt động hoặc thông báo sự kiện cho người dùng. Ví dụ: ứng dụng máy in hiện biểu tượng để báo đang in, hoặc trình điều khiển màn hình cung cấp lối tắt chỉnh độ phân giải màn hình. Khu vực này thường được gọi là **khay hệ thống (system tray)**, nhưng đây không phải tên chính thức, mặc dù thuật ngữ này đôi khi xuất hiện trong tài liệu của Microsoft, các bài viết, mô tả phần mềm, và thậm chí trong các ứng dụng của Microsoft như Bing Desktop. Raymond Chen cho rằng sự nhầm lẫn bắt nguồn từ tiến trình systray.exe, một tác vụ nhỏ điều khiển một số biểu tượng trong vùng thông báo trên Windows 95. Microsoft cũng gọi khu vực này là **status area.**
** Trong các phiên bản Windows cũ, biểu tượng vùng thông báo bị giới hạn ở 16 màu. Windows Me đã bổ sung hỗ trợ biểu tượng nhiều màu (high color).
** Trên Windows XP, người dùng có thể chọn luôn hiện, luôn ẩn, hoặc chỉ ẩn một số biểu tượng nếu chúng không hoạt động. Một nút mũi tên cho phép người dùng mở rộng để xem tất cả biểu tượng.
** Bắt đầu từ Windows Vista, khu vực thông báo được chia làm hai phần: một phần dành riêng cho các biểu tượng hệ thống (đồng hồ, âm lượng, mạng, pin) và phần còn lại cho ứng dụng.
* Từ bản cập nhật Windows 95 Desktop, thanh Quick Launch có tính năng **Show desktop** (Hiện màn hình nền), một phím tắt mặc định giúp thu nhỏ tất cả ứng dụng đang mở (tương đương tổ hợp phím Winkey-D). Trên Windows 7, nút Show desktop chuyên dụng được đặt ở mép phải của vùng thông báo và không thể gỡ bỏ. Khi bật tùy chọn "Peek", di chuột qua nút này sẽ làm trong suốt các cửa sổ để lộ màn hình nền. Trên Windows 10, nút này được thu gọn thành một dải hẹp nằm sát cạnh phải màn hình.
### Tùy biến
Người dùng có thể tùy chỉnh thanh tác vụ Windows theo nhiều cách. Thanh tác vụ có thể được di chuyển sang bất kỳ cạnh nào của màn hình (trừ Windows 11 nơi nó bị khóa cố định ở đáy màn hình). Tính đến Windows Server 2008, thanh tác vụ chỉ giới hạn hiển thị trên một màn hình duy nhất, mặc dù các tiện ích bên thứ ba như UltraMon cho phép mở rộng tính năng này. Khi đặt thanh tác vụ theo chiều dọc trên các phiên bản trước Windows Vista, nút Start sẽ chỉ hiển thị chữ "Start" nếu bề ngang thanh đủ rộng. Người dùng có thể kéo cạnh của thanh tác vụ để thay đổi chiều cao (hoặc chiều rộng nếu đặt dọc); điều này hữu ích để hiển thị đầy đủ tiêu đề cửa sổ bên cạnh biểu tượng.
Kích thước thanh tác vụ có thể mở rộng tối đa đến một nửa diện tích màn hình. Để tránh vô tình thay đổi kích thước hoặc vị trí, Windows XP trở lên mặc định khóa thanh tác vụ. Khi mở khóa, thanh tác vụ sẽ hiện các gờ kéo (grippers) bên cạnh các thành phần để người dùng di chuyển hoặc thay đổi kích thước, nhưng thao tác này cũng làm giảm một chút không gian hiển thị.
Thanh tác vụ có thể được thiết lập để tự động ẩn (auto-hide) và chỉ hiện ra khi con trỏ chuột di chuyển đến cạnh màn hình hoặc khi nhấn phím Windows. Từ Windows 7 trở lên, thanh tác vụ không còn cho phép ghim trực tiếp các thư mục tùy ý mà sẽ ghim chúng vào Jumplist của Windows Explorer. Tuy nhiên, các công cụ bên thứ ba như Taskbar Pinner của Winaero có thể khắc phục hạn chế này.
### Các thanh công cụ (Desktop toolbars)
Người dùng có thể thêm các thanh công cụ khác (gọi là "Deskbands") vào thanh tác vụ. Windows tích hợp sẵn một số thanh công cụ nhưng thường không hiển thị mặc định (trừ Quick Launch trong một số phiên bản):
* **Address**: Chứa thanh địa chỉ giống như trong Internet Explorer (không khả dụng trong Windows XP SP3 do các hạn chế pháp lý).
* **Windows Media Player**: Tùy chọn hiển thị trình phát nhạc thu nhỏ khi Windows Media Player được thu nhỏ (chỉ có trên Windows XP, Windows Vista).
* **Links**: Chứa các phím tắt đến các mục trong thư mục Links (thường là lối tắt trang web).
* **Tablet PC Input Panel**: Nút hiển thị bảng nhập liệu cho máy tính bảng để viết bằng bút.
* **Desktop**: Hiển thị danh sách các mục có trên màn hình desktop, giúp truy cập nhanh tài liệu mà không cần thu nhỏ các cửa sổ đang che khuất.
* **Quick Launch**: Chứa lối tắt đến Internet Explorer, ứng dụng email và nút Show Desktop. Windows Vista thêm lối tắt đến tính năng Flip 3D.
* **Language**: Phím tắt để chuyển đổi ngôn ngữ bàn phím.
Ngoài ra, Windows hỗ trợ "Application Desktop Toolbars" (hay "appbands"), cho phép tạo các thanh công cụ bổ sung gắn vào bất kỳ cạnh nào của màn hình mà không bị các ứng dụng khác che khuất.
Người dùng có thể tạo thanh công cụ mới trỏ đến một thư mục bất kỳ. Biểu tượng và hiển thị của thanh công cụ (như Links, Desktop, Quick Launch) có thể tùy chỉnh kích thước hoặc ẩn/hiện văn bản. Trước Windows Vista, các thanh công cụ này có thể được kéo ra khỏi thanh tác vụ để trở thành cửa sổ trôi nổi (floating) hoặc gắn vào cạnh màn hình. Windows Vista đã hạn chế nhưng không loại bỏ hoàn toàn khả năng tách các thanh công cụ khỏi thanh tác vụ. Tuy nhiên, Windows 7 đã loại bỏ hoàn toàn tính năng Floating Deskbands; chúng chỉ có thể tồn tại khi được ghim vào thanh tác vụ.
* Lưu ý: Khi mở hộp thoại thuộc tính thanh tác vụ trên Windows 95 và Windows 98 trong khi giữ phím CTRL, một tab "DeskBar Options" sẽ xuất hiện, nhưng tính năng này không hoạt động vì chưa bao giờ được hoàn thiện trong các phiên bản đó.
## Mac OS
Mac OS cổ điển (Classic Mac OS) mặc định không hiển thị thanh tác vụ. Trước Mac OS 8.5, việc chuyển đổi ứng dụng được thực hiện bằng cách nhấp vào cửa sổ ứng dụng hoặc chọn từ menu thả xuống ở góc phải của thanh menu. Trước bản 8.5, tiêu đề menu này là biểu tượng của ứng dụng đang chạy nền trước. Bản 8.5 giới thiệu tùy chọn hiển thị tên ứng dụng và khả năng "tách" menu ra bằng cách kéo tiêu đề, biến nó thành một cửa sổ dạng bảng (palette). Cửa sổ này có thể hoạt động như một thanh tác vụ thô sơ thông qua AppleScript, không có thanh tiêu đề và gắn cố định vào cạnh màn hình. Apple không cung cấp bảng điều khiển chính thức cho tính năng này, nhưng các bên thứ ba đã phát triển ứng dụng giúp người dùng tùy chỉnh. Các thanh tác vụ bên thứ ba như DragThing là phần mềm chia sẻ phổ biến thời kỳ này.
Dock trên macOS và hệ điều hành tiền nhiệm NeXTSTEP cũng là một dạng thanh tác vụ. Dock của macOS hướng đến quản lý ứng dụng thay vì cửa sổ. Mỗi ứng dụng đang chạy được đại diện bằng một biểu tượng trên Dock, bất kể nó có bao nhiêu cửa sổ. Nhấp chuột phải vào biểu tượng sẽ hiện menu ngữ cảnh để truy cập các cửa sổ cụ thể. Mac OS X 10.2 cho phép ứng dụng thêm các mục riêng vào menu này. Cửa sổ khi thu nhỏ sẽ xuất hiện ở phía bên phải của Dock, hiển thị dưới dạng hình thu nhỏ cập nhật thời gian thực. Thùng rác cũng nằm ở đây. Ví dụ, kéo một đoạn văn bản vào thùng rác sẽ xóa nó khỏi tài liệu và tạo một đoạn trích văn bản (text clipping) trong thùng rác.
Phía bên phải của thanh Menu trên macOS cũng chứa các biểu tượng thông báo và truy cập nhanh, được gọi là Menu bổ sung (Menu extras).

## Hệ điều hành giống Unix
### KDE Plasma
Trên KDE Plasma 5, thanh tác vụ sử dụng các Widget gọi là "Plasmoids". Bản cập nhật 5.20 (tháng 11 năm 2020) đã làm mới thanh tác vụ với giao diện tương đồng Windows 10.

### GNOME
GNOME 2 sử dụng hệ thống thanh tác vụ riêng gọi là bảng điều khiển (gnome-panel). Theo mặc định, GNOME 2 có hai bảng điều khiển nằm ở cạnh trên và dưới màn hình. Bảng trên cùng chứa các menu điều hướng *Applications*, *Places*, và *System*. Các menu này chứa liên kết đến ứng dụng, thư mục hệ thống và tùy chọn cấu hình.

Bảng điều khiển trên cùng thường chứa đồng hồ và khu vực thông báo. Bảng dưới cùng chứa các nút điều hướng giữa các màn hình ảo, danh sách cửa sổ đang mở và nút để thu nhỏ tất cả cửa sổ. Nội dung của bảng được quản lý bởi các tiện ích con (applets) và có thể thêm bớt, di chuyển hoặc cấu hình tùy ý.

Trên GNOME 3, các bảng điều khiển truyền thống bị thay thế bằng GNOME Shell. Giao diện này gồm một thanh ở trên cùng màn hình với nút *Activities* bên trái, đồng hồ ở giữa và khu vực thông báo bên phải. GNOME Shell không có thanh tác vụ theo nghĩa truyền thống; người dùng quản lý cửa sổ, màn hình ảo và khởi chạy ứng dụng thông qua "Dash" (một thanh dock ẩn bên trái) hoặc từ giao diện Activities Overview. GNOME 3.8 giới thiệu Classic Mode, tái tạo lại trải nghiệm GNOME 2 thông qua các phần mở rộng của GNOME Shell.
### Các môi trường Unix khác
Các môi trường desktop sau đây cung cấp thanh tác vụ riêng:
* Cinnamon
* MATE
* LXDE
* Xfce
Các trình quản lý cửa sổ tích hợp sẵn thanh tác vụ bao gồm:
* Fluxbox
* FVWM95
* IceWM
* JWM
* qvwm
* WindowLab
* Window Maker
Các chương trình cung cấp thanh tác vụ độc lập (cho các môi trường không có sẵn) bao gồm: Avant Window Navigator, pypanel, fbpanel, perlpanel, tint2, v.v.
## Tham khảo