Bug: /copy fails with "Connection refused" — snap package missing x11/wayland plug
- Ngôn ngữ chính
- Shell
- Star
- 11.2k
- Fork
- 1.9k
- Merge trung bình
- 14 giờ 16 phút
- Pull request đã merge (30 ngày)
- 6
Mô tả
### Describe the bug
On Linux, the `/copy` command in GitHub Copilot CLI fails with:
`Failed to copy to clipboard: Error: Failed to create clipboard context: Connection refused (or error 111)`
### Root Cause
The Linux distribution of Copilot CLI is packaged as a **snap**, and the snap's declared interfaces do not include `x11` or `wayland`. Clipboard access on Linux requires a direct connection to the X11 (or Wayland) display server socket, which snap's confinement blocks unless the snap explicitly declares and connects one of those interfaces. Since neither is declared, there is no `snap connect` command available to fix this — the plug simply doesn't exist in the snap's metadata.
### Affected version
1.0.70 (Install method: snap `/snap/copilot-cli/53/bin/copilot`)
### Steps to reproduce the behavior
1. Install/run GitHub Copilot CLI via the snap package on a Linux desktop with an active X11 session.
2. Start an interactive session and let the assistant produce any response.
3. Run `/copy` to copy the last response to the system clipboard.
### Expected behavior
The last assistant response is copied to the system clipboard, as documented in `/help`:
`/copy - Copy the last response to the clipboard`
### Additional context
#### OS/Environment
- **OS/session:** Ubuntu-based Linux desktop, X11 session (`XDG_SESSION_TYPE=x11`, `DISPLAY=:1`)
- **Desktop Environment:** GNOME desktop (`gnome-terminal-server`)
- **Streaming Protocol:** Amazon DCV/WSP streaming protocol (AWS WorkSpaces), accessed via the AWS WorkSpaces client on macOS (Apple Silicon MacBook Pro)
- **Terminal emulator:** gnome-terminal
---
#### Diagnostic Steps & Evidence
1. **Clipboard Works Separately:** Copy/paste between other applications in the same session (terminal, text editor, browser) works correctly. This rules out broken X11 sessions, window manager clipboard mechanisms, or remote-desktop bridging problems. The issue is unique to the Copilot CLI process.
2. **Snap Confinement Restrictions:** Running commands inside the CLI's shell tool environment yields permission blocks:
- `/usr/bin/snap` returns `Permission denied` (exit code 126).
- Running a normal executable (`venv/bin/python`, mode `0755` owned by current user) returns `Permission denied` (exit code 126).
- `xset q` reports the X server as unreachable when run from inside the CLI's shell tool.
3. **Missing Plugs:** `snap connections copilot-cli` shows the snap only requests `desktop` / `desktop-legacy` but lacks `x11` and `wayland`:
Hướng dẫn đóng góp
Hướng nghiên cứu
Bắt đầu bằng cách tìm metadata của gói snap và kiểm tra các interface được `snap connections copilot-cli` hiển thị; issue xác định các plug `x11` và `wayland` bị thiếu là nguyên nhân được nghi ngờ. Tái hiện `/copy` trong một phiên desktop Linux, sau đó xác minh rằng snap cung cấp quyền truy cập display cần thiết và lệnh sao chép thành công phản hồi cuối cùng.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- linux
- Lĩnh vực
- cli, devops, operating-systems
- Loại issue
- Lỗi
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức độ hoạt động
- Ít trao đổi
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 52/100