96 lines
2.5 KiB
Markdown
Raw Permalink Normal View History

2025-06-27 02:31:23 +01:00
# 📋 nu_plugin_clipboard
A [nushell](https://www.nushell.sh/) plugin for interacting with the clipboard, allowing you to copy/paste text, objects, and tables.
## ✨ Features
- **`clipboard copy`**: Copies input text to the clipboard.
- **Daemon Behavior:** Since version **0.105.2**, using env variables will try to detect display server.
This config will override this behavior, if you need to override this please report and issue:
```bash
$env.config.plugins.clipboard.NO_DAEMON = true
```
- To make this setting permanent, add it to your `config env`.
- **`clipboard paste`**: Retrieves the current clipboard content.
## ⚠️ Important
If you face the error `Error: × Clipboard Error: The clipboard contents were not available in the requested format...`
Try disabling the daemon mode, as mentioned in [#20](https://github.com/FMotalleb/nu_plugin_clipboard/issues/20).
## 📌 Usage Examples
### Copying a string (supports only strings for now)
```bash
echo "test value" | clipboard copy
```
### Using clipboard content
```bash
clipboard paste | echo $in
```
### Copying tables and objects
- Tables and objects are internally converted to **JSON**.
- When pasting, `clipboard paste` tries to parse JSON into a table or object.
- If parsing fails, the content is returned as a string.
```bash
$env | clipboard copy
clipboard paste
ps | clipboard copy
clipboard paste
```
## 🔧 Installation
### 🚀 Recommended: Using [nupm](https://github.com/nushell/nupm)
This method automatically handles dependencies and features:
```bash
git clone https://github.com/FMotalleb/nu_plugin_clipboard.git
nupm install --path nu_plugin_clipboard -f
```
### ⚙️ Supported Features
- **`use-wayland`**: Prioritizes the Wayland API, but falls back to X11 if needed.
- **`enforce-daemon`**: _(Deprecated)_ Now always enabled on Linux. Disable with:
```bash
$env.config.plugins.clipboard.NO_DAEMON = true
```
### 🛠️ Manual Compilation
```bash
git clone https://github.com/FMotalleb/nu_plugin_clipboard.git
cd nu_plugin_clipboard
cargo build -r
plugin add target/release/nu_plugin_clipboard
```
### 📦 Install via Cargo (using git)
```bash
cargo install --git https://github.com/FMotalleb/nu_plugin_clipboard.git
plugin add ~/.cargo/bin/nu_plugin_clipboard
```
### 📦 Install via Cargo (crates.io) _Not Recommended_
- Since I live in Iran and crates.io won't let me update my packages like a normal person, most of the time crates.io is outdated.
```bash
cargo install nu_plugin_clipboard
plugin add ~/.cargo/bin/nu_plugin_clipboard
```