Hướng dẫn tùy chỉnh Windows Terminal

Ứng dụng Windows Terminal có sẵn trên Microsoft Store. Nếu bạn mở Store và tìm kiếm “Windows terminal”, nó sẽ nằm ở mục đầu tiên trong danh sách. Nó cũng có sẵn trên trang phát hành GitHub nhưng bạn sẽ bỏ lỡ các bản cập nhật tự động nếu bạn cài đặt nó từ GitHub. Bạn cũng có thể cài đặt phiên bản Preview nếu bạn muốn sử dụng nhiều tính năng.

Sau khi cài đặt, hãy khởi chạy Terminal. Giao diện khá đơn giản với các tab ở trên cùng và menu thả xuống để chuyển đổi giữa các cấu hình khác nhau. Theo mặc định, bạn sẽ nhận được cấu hình cho PowerShell, Command prompt, bất kỳ bản phân phối WSL nào bạn đã cài đặt và Microsoft Azure.

Bạn có thể mở cài đặt terminal thông qua menu thả xuống hoặc bằng cách nhấn ctrl + “,” trên bàn phím của mình. Từ v1.7, tệp JSON chứa tất cả cài đặt terminal không còn được mở theo mặc định như trong các bản phát hành trước đó. Giao diện người dùng cài đặt mới đã được phát triển và nó hiện là cách mặc định để quản lý các tùy chọn của bạn mặc dù nó chỉ là giao diện người dùng cho tệp JSON cơ bản, bạn vẫn có thể truy cập nó bằng cách nhấn ctrl + shift + “,” .

Tệp cấu hình JSON cơ bản có thể được truy cập bằng cách nhấp vào biểu tượng Cài đặt COG.

Khởi chạy Terminal bằng phím tắt

Cách dễ nhất để liên kết Windows terminal với một phím tắt là ghim nó vào thanh tác vụ và nhấn phím win cộng với số tương ứng với vị trí của chương trình trên thanh tác vụ. Ví dụ: win + 3 khởi chạy hoặc chọn Windows Terminal.

Mình không thích phương pháp này vì nó nhấp nháy nhanh thanh tác vụ trên màn hình khi đang thực hiện chuyển đổi khiến mình thấy mất tập trung. May mắn thay, có một cách tốt hơn để thực hiện việc này trong Windows Terminal v1.9 trở lên thông qua global summon action.

Bạn có thể thiết lập nó bằng cách mở tệp JSON bằng ctrl + shift + “,”, sau đó tìm thuộc tính actions và thêm đối tượng sau vào:

settings.json
"actions": [
  {
    "command": {
      "action": "globalSummon"
    },
    "keys": "alt+t"
  }
]

Sau khi hoàn tất, bạn sẽ có thể khởi động Windows terminal chỉ bằng một lần nhấn phím. Đoạn code trên sử dụng alt + t, nhưng bạn có thể thay đổi nó thành phím tắt ưa thích của mình.

Khởi chạy Terminal từ Windows Explorer

Bạn có thể khởi chạy Windows Terminal từ File Explorer bằng cách nhập wt vào thanh địa chỉ. Thao tác này sẽ khởi chạy một cửa sổ Terminal mới trong thư mục người dùng mặc định của bạn. Thay vào đó, để chỉ định thư mục hiện tại, hãy sử dụng wt -d ..

Ngoài ra, bạn có thể nhấp chuột phải vào một thư mục trong File Explorer và chọn “Open in Windows Terminal”. Thao tác này sẽ khởi chạy Windows Terminal với hồ sơ mặc định của bạn trong thư mục đã chọn.

Tùy chỉnh cấu hình mặc định

Cấu hình mặc định là những gì xuất hiện khi bạn khởi chạy Windows terminal hoặc mở một tab mới. Ban đầu nó được đặt thành cấu hình Windows PowerShell nhưng bạn có thể dễ dàng thay đổi nó thành một số cấu hình khác, chẳng hạn như cấu hình dành cho bản phân phối WSL ưa thích của bạn. Bạn có thể thực hiện bằng cách cập nhật giá trị của thuộc tính defaultProfile trong tệp settings.json. Nó cũng có thể được thay đổi thông qua giao diện người dùng cài đặt như bên dưới:

Tùy chỉnh trình chuyển đổi tab

Từ v1.5, trình chuyển đổi tab Windows terminal hiển thị các tab hiện đang mở trong danh sách dọc, có thể điều hướng bằng bàn phím hoặc chuột. Tính năng này phải được kích hoạt trong các phiên bản trước đó bằng cách đặt thuộc tính useTabSwitcher (hiện không được dùng nữa) thành true.

Bạn có thể không dùng trình chuyển đổi tab này nữa bằng cách đặt tabSwitcherMode thành false hoặc “disabled”. Khi trình chuyển đổi tab bị tắt, nhấn ctrl + tab hoặc ctrl + shift + tab sẽ chuyển đổi các tab theo cách tương tự như hầu hết các trình duyệt web. Nếu bạn muốn kiểm soát thứ tự của các tab trong trình chuyển đổi tab, bạn có thể đặt tabSwitcherMode thành mru hoặc inOrder sẽ liệt kê các tab theo thứ tự được sử dụng gần đây nhất hoặc theo thứ tự bố cục của chúng trong terminal.

settings.json
// Enables the tab switcher
"tabSwitcherMode": "mru",
"tabSwitcherMode": "inOrder"

// Disables the tab switcher
"tabSwitcherMode": "disabled"

Bạn cũng có thể tìm kiếm các tab đang mở của mình bằng lệnh tabSearch nhưng bạn phải tạo ràng buộc cho nó trước. Điều này rất hữu ích nếu bạn thường mở nhiều tab cùng một lúc.

settings.json
{
    "actions": [
        { "command": "tabSearch", "keys": "ctrl+t" }
    ]
}

Tùy chỉnh cài đặt hồ sơ

Có thể truy cập cài đặt hồ sơ thông qua thuộc tính profiles trong tệp settings.json. Nếu bạn muốn bất kỳ cài đặt nào áp dụng cho tất cả các cấu hình, hãy thêm cài đặt đó vào thuộc tính defaults. Nếu không, hãy thêm nó vào đối tượng có liên quan trong mảng list.

settings.json
"defaults":
{
    // SETTINGS TO APPLY TO ALL PROFILES
},
"list":
[
    // PROFILE OBJECTS
]

Trong giao diện người dùng cài đặt, mỗi cấu hình có mục nhập riêng bên dưới cài đặt chung.

Thay đổi thư mục bắt đầu

Theo mặc định, thư mục bắt đầu cho tất cả các shell là thư mục Windows User (“% USERPROFILE%”), nhưng bạn có thể muốn đây là thư mục chính Linux trong các cấu hình WSL của mình. Bạn có thể thêm thuộc tính startingDirectory vào hồ sơ của mình như được hiển thị bên dưới để ghi đè cài đặt này.

settings.json
{
    "guid": "{07b52e3e-de2c-5db4-bd2d-ba144ed6c273}",
    "hidden": false,
    "name": "Ubuntu-20.04",
    "source": "Windows.Terminal.Wsl",
    "startingDirectory": "\\wsl$\Ubuntu-20.04\home\<username>"
}

Ẩn hồ sơ

Để ẩn hồ sơ khỏi menu thả xuống, hãy đặt thuộc tính hidden trên hồ sơ thành true.

settings.json
{
    "guid": "{b453ae62-4e3d-5e58-b989-0a998ec441b8}",
    "hidden": true,
    "name": "Azure Cloud Shell",
    "source": "Windows.Terminal.Azure"
}

Tắt thanh cuộn

Nếu bạn chủ yếu sử dụng bộ ghép kênh đầu cuối như tmux, bạn có thể tắt thanh cuộn cho cấu hình WSL của mình bằng cách đặt tùy chọn scrollbarState thành hidden.

settings.json
{
    "guid": "{07b52e3e-de2c-5db4-bd2d-ba144ed6c273}",
    "hidden": false,
    "name": "Ubuntu-20.04",
    "source": "Windows.Terminal.Wsl",
    "startingDirectory": "\\wsl$\Ubuntu-20.04\home\<username>",
    "scrollbarState": "hidden"
}

Tùy chỉnh nền

Có thể tùy chỉnh Windows terminal bằng hình ảnh nền. Thuộc tính backgroundImagecó thể được đặt thành URL hình ảnh, đường dẫn tệp cục bộ hoặc chuỗi desktopWallpaper (từ v1.5) và hình ảnh có thể có định dạng JPEG, PNG hoặc GIF. Bạn cũng có quyền kiểm soát các cài đặt liên quan như độ mờ, căn chỉnh và kéo dài. Các cài đặt này có thể được định cấu hình chung cho tất cả các cấu hình hoặc cho mỗi cấu hình.

settings.json
{
    "backgroundImage": "https://images.unsplash.com/photo-1554110397-9bac083977c6?ixid=MXwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHw%3D&ixlib=rb-1.2.1&auto=format&fit=crop&w=2100&q=80",
    "backgroundImageOpacity": 0.4,
    "backgroundImageAlignment": "center"
}

Bạn cũng có thể sử dụng GIFS động:

Thiết bị đầu cuối cũng hỗ trợ hiệu ứng acrylic trong Windows 10 có thể được kích hoạt bằng cách đặt useAcrylicthành true. Độ trong suốt của hiệu ứng có thể được kiểm soát bằng acrylicOpacity (chấp nhận số thập phân từ 0 đến 1). Bạn có thể sử dụng các cài đặt này khi có hoặc không có hình nền.

settings.json
{
    "useAcrylic": true,
    "acrylicOpacity": 0.5
}

Tùy chỉnh bảng màu

Terminal đi kèm với một số phối màu mà bạn có thể lựa chọn. Chúng có thể truy cập được thông qua menu phối màu. Bạn có thể chọn bảng màu ưa thích của mình từ menu này hoặc thêm các bảng màu mới nếu bạn không thích bất kỳ màu mặc định nào.

Nếu bạn muốn đặt một bảng màu khác nhau cho mỗi cấu hình, cài đặt có liên quan nằm trong tab Appearance cho mỗi cấu hình.

Bạn cũng có thể làm điều tương tự trong tệp settings.json thông qua tùy chọn colorScheme. Tùy chọn này có thể được đặt chung cho tất cả các cấu hình hoặc cho mỗi cấu hình.

settings.json
{
    "guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
    "name": "Windows PowerShell",
    "commandline": "powershell.exe",
    "colorScheme": "Campbell Powershell",
    "useAcrylic": true,
    "acrylicOpacity": 0.9
}

Việc thêm các lược đồ màu tùy chỉnh cũng dễ dàng hơn thông qua tệp settings.json. Tất cả những gì bạn cần làm là xác định đối tượng phối màu trong phần mảng schemes của tệp. Một nơi tuyệt vời để tìm nguồn cho các sơ đồ màu là trang web Windows Terminal Themes. Bạn có thể xem trước từng chủ đề có sẵn và khi bạn tìm thấy chủ đề ưng ý, hãy nhấp vào nút Get theme để sao chép đối tượng JSON của nó vào khay nhớ tạm.

Đặt đối tượng JSON vào mảng schemes, sau đó đặt thuộc tính colorScheme thành tên chủ đề (hoặc sử dụng giao diện người dùng cài đặt để đặt chủ đề). Chủ đề mới sẽ có hiệu lực sau khi bạn lưu tệp.

settings.json
{
    "schemes": [
        {
            "name": "AdventureTime",
            "black": "#050404",
            "red": "#bd0013",
            "green": "#4ab118",
            "yellow": "#e7741e",
            "blue": "#0f4ac6",
            "purple": "#665993",
            "cyan": "#70a598",
            "white": "#f8dcc0",
            "brightBlack": "#4e7cbf",
            "brightRed": "#fc5f5a",
            "brightGreen": "#9eff6e",
            "brightYellow": "#efc11a",
            "brightBlue": "#1997c6",
            "brightPurple": "#9b5953",
            "brightCyan": "#c8faf4",
            "brightWhite": "#f6f5fb",
            "background": "#1f1d45",
            "foreground": "#f8dcc0"
        }
    ]
}

Thử nghiệm Terminal với Starship

Starship giúp command prompt hiển thị một số thông tin hữu ích để cung cấp cho bạn bối cảnh về những gì bạn đang làm. Nó hỗ trợ tất cả các shell phổ biến trên Linux, macOS và Windows bao gồm Bash, Fish, Zsh, Powershell và các loại shell khác, giúp bạn có thể nhận được lời nhắc nhất quán ngay cả khi bạn thường xuyên chuyển đổi giữa các shell khác nhau.

Trước khi cài đặt Starship, bạn cần đảm bảo rằng phông chữ Nerd đã được cài đặt trên máy tính của mình để không làm hỏng lời nhắc của bạn. Một lựa chọn tốt là Cascadia Code (phông chữ đầu cuối mặc định của Windows) có thể được tải xuống từ trang GitHub này. Sau khi tải xuống, giải nén file zip và cài đặt tất cả các tệp phông chữ có trong thư mục ttf/static.

Tiếp theo, thay đổi thuộc tính fontFace trong cài đặt hồ sơ của bạn thành Cascadia Code PL.

settings.json
{
    "fontFace": "Cascadia Code PL"
}

Sau đó, hãy tiếp tục và cài đặt Starship bằng cách làm theo các hướng dẫn cho shell ưa thích của bạn. Sau khi hoàn tất, hãy tạo tệp cấu hình trong thư mục thích hợp (~/.config trên Linux):

command
$ mkdir -p ~/.config && touch ~/.config/starship.toml

Mở tệp starship.toml và dán nội dung sau:

add_newline = false

[character]
success_symbol = "[⚡](bold green) "
error_symbol = "[❌](bold red) "

[aws]
disabled = true

[time]
disabled = true

[cmd_duration]
disabled = true

[directory]
truncation_length = 8

[hostname]
disabled = true

[nodejs]
symbol = "🤢"

[battery]
full_symbol = "🔋 "
charging_symbol = "⚡️ "
discharging_symbol = "💀 "
disabled = false

[git_status]
conflicted = "🚩"
ahead = "💨"
behind = "😰"
diverged = "😵"
untracked = "🤷"
stashed = "📦"
modified = "📝"
staged = '[++($count)](green)'
renamed = "👅"
deleted = "💥"

[shell]
fish_indicator = "🦈"
bash_indicator = "🌞"
disabled = false

Chia các ô cho nhiều shell cùng một lúc

Windows terminal hỗ trợ chia tab thành nhiều ngăn. Điều này giúp bạn dễ dàng đa nhiệm mà không cần phải chuyển đổi các tab. Mình sử dụng tmux cho mục đích này trong WSL nên nó không phải là thứ mình thường xuyên dùng, nhưng nó rất hữu ích nếu bạn cần làm việc trong PowerShell hoặc cmd.exe chẳng hạn.

Các phím tắt mặc định để chia ngăn theo chiều ngang và chiều dọc lần lượt là alt + shift + – và alt + shift + =. Bạn cũng có thể chia ngăn bằng cách sử dụng bảng lệnh có thể được truy cập bằng ctrl + shift + p:

Nếu bạn giữ phím alt và nhấn nút tab mới trên một trong các cấu hình trong menu thả xuống của terminal, nó cũng sẽ tự động chia cửa sổ hoặc ngăn đang hoạt động. Để chuyển giữa các ngăn, hãy giữ phím alt và sử dụng các phím mũi tên hoặc nhấp vào ngăn bạn muốn. Thay đổi kích thước ngăn được focus bằng cách giữ phím alt + shift và một trong các phím mũi tên. Đóng một ngăn có thể được thực hiện bằng ctrl + shift + w.

Tùy chỉnh các phím nóng

Tất cả các phím nóng cho các lệnh Windows Terminal có thể được tùy chỉnh thông qua thuộc tính actions (trước đây là keybindings) trong tệp settings.json. Nếu bạn kiểm tra tệp defaults.json (bằng cách giữ phím alt trong khi nhấp vào menu Settings), bạn sẽ thấy tất cả các liên kết keysmặc định được tổ chức thành một số danh mục trong mảng actions.

Bạn có thể thêm phím nóng mới cho một hành động bằng cách sao chép đối tượng liên kết có liên quan từ tệp defaults.json sang tệp settings.json và thay đổi thuộc tính keystrong đối tượng. Nếu bạn sửa đổi trực tiếp tệp defaults.json, các thay đổi của bạn sẽ bị mất khi chương trình cập nhật. Ví dụ, các ràng buộc cho ngăn chia có thể được tùy chỉnh như hình dưới đây:

setting.json
{
  "actions": [
    { "command": { "action": "splitPane", "split": "vertical" }, "keys": "alt+v" },
    { "command": { "action": "splitPane", "split": "horizontal" }, "keys": "alt+h" }
  ]
}

Các dòng trên thêm các liên kết mới cho hành động splitPane, nhưng các liên kết ban đầu sẽ vẫn hoạt động. Để loại bỏ ràng buộc khóa mặc định, hãy gán khóa unbound như hình dưới đây:

settings.json
{
  "actions": [
    { "command": { "action": "splitPane", "split": "vertical" }, "keys": "alt+v" },
    { "command": { "action": "splitPane", "split": "horizontal" }, "keys": "alt+h" },
    { "command": "unbound", "keys": "alt+shift+-" },
    { "command": "unbound", "keys": "alt+shift+=" }
  ]
}

Windows terminal cũng cung cấp cho bạn khả năng gửi các lệnh đầu vào đến shell của bạn bằng phím tắt. Điều này rất hữu ích cho các lệnh thường được sử dụng. Dưới đây là một ví dụ liên kết alt + g để gửi một lệnh điều hướng đến root trong git repo:

settings.json
{
  "actions": [
      { "command": {"action": "sendInput", "input": "cd (git rev-parse --show-toplevel)"}, "keys": "alt+g" }
  ]
}

Thiết lập cấu hình SSH

Có thể hữu ích khi tự động SSH vào các máy từ xa thông qua Windows Terminal. Điều này có thể được thực hiện bằng cách thiết lập một cấu hình tùy chỉnh mới cho mỗi máy.

settings.json
{
    "guid":  "{4b8d0cfe-e8be-4ae6-a4ad-88efd65b0880}",
    "hidden":  false,
    "name":  "Failed Experiments",
    "commandline":  "wsl ssh user@localhost",
    "icon": "🤡"
}

Trường guid phải là duy nhất giữa các cấu hình. Về biểu tượng, bạn có thể sử dụng ký tự biểu tượng cảm xúc (v1.5 trở lên) hoặc nhập đường dẫn đến tệp hình ảnh phù hợp. Sau khi lưu tệp cài đặt, bạn sẽ thấy mục nhập mới của mình tương tự như ảnh chụp màn hình bên dưới.

Khi bạn nhấp vào, nó sẽ tự động kết nối với máy chủ từ xa trong bản phân phối Linux ưa thích của bạn.

Tùy chỉnh bố cục khởi động

Windows terminal khởi chạy với một tab và một ngăn duy nhất khi sử dụng cấu hình mặc định, nhưng bạn có thể tùy chỉnh hành vi này thông qua các tham số dòng lệnh. Dưới đây là một ví dụ khởi chạy terminal với bố cục tùy chỉnh gồm ba ngăn chia nhỏ trong một tab. Các ngăn đang chạy cấu hình WSL, cấu hình PowerShell và cấu hình Command Prompt.

command
$ wt; split-pane -p "Windows PowerShell"

Dưới đây là phân tích của lệnh trên:

Sau khi bạn đã xác định bố cục khởi động ưa thích của mình, bạn có thể liên kết nó với một phím nóng bằng AutoHotkey hoặc tạo lối tắt Windows mới và ghim nó vào màn hình hoặc thanh tác vụ của bạn.

Kết luận

Trong bài viết này, chúng ta đã thảo luận về một số cách để tùy chỉnh Windows Terminal. Mình hy vọng nó sẽ giúp bạn cải thiện quy trình làm việc và năng suất của mình trên Terminal.

Đánh giá post
Exit mobile version