[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-70454":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":15,"forks30d":15,"starsTrendScore":19,"compositeScore":20,"rankGlobal":9,"rankLanguage":9,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":24,"hasPages":22,"topics":25,"createdAt":9,"pushedAt":9,"updatedAt":26,"readmeContent":27,"aiSummary":28,"trendingCount":15,"starSnapshotCount":15,"syncStatus":14,"lastSyncTime":29,"discoverSource":30},70454,"whatcable-linux","Zetaphor\u002Fwhatcable-linux","Zetaphor","A linux\u002FKDE port of whatcable, a tool to tell you what each USB connected cable can do",null,"C++",205,13,4,2,0,3,26,66,9,69.04,"MIT License",false,"main",true,[],"2026-06-12 04:00:55","# WhatCable-Linux\n\n> **What can this USB cable actually do?**\n\nA KDE Plasma 6 system tray widget and CLI tool that tells you, in plain English, what each USB device plugged into your Linux machine can actually do.\n\n**WhatCable-Linux is a Linux port of [WhatCable](https:\u002F\u002Fgithub.com\u002Fdarrylmorley\u002Fwhatcable), a macOS menu bar app by [Darryl Morley](https:\u002F\u002Fgithub.com\u002Fdarrylmorley).** This port expands the original USB-C focus to cover all USB devices, while preserving the rich USB-C Power Delivery diagnostics from the original.\n\n![WhatCable-Linux Plasmoid](screenshot.png)\n\n## What it shows\n\n### All USB devices\n- **Device identity**: vendor, product name, serial number\n- **Speed**: negotiated link speed (1.5 Mbps to 20 Gbps)\n- **USB version**: 1.1, 2.0, 3.0, 3.1, 3.2\n- **Power draw**: how much power the device is consuming\n- **Device type**: HID, Audio, Mass Storage, Hub, etc.\n- **Driver**: which kernel driver is handling the device\n- **Topology**: hub hierarchy showing what's plugged into what\n\n### USB-C ports (additional detail)\n- **Port roles**: data role (host\u002Fdevice), power role (source\u002Fsink)\n- **Cable e-marker info**: cable speed capability, current rating (3A\u002F5A), active vs passive, cable vendor\n- **Charger PDO list**: every voltage\u002Fcurrent profile the charger advertises, with the active profile highlighted\n- **Charging diagnostics**: identifies bottlenecks — cable limiting speed, charger undersized, etc.\n- **Partner identity**: decoded from PD Discover Identity VDOs\n\n## Install\n\n### Build from source\n\n```bash\n# Install dependencies (Fedora)\nsudo dnf install cmake extra-cmake-modules qt6-qtbase-devel qt6-qtdeclarative-devel \\\n    kf6-kirigami-devel kf6-ki18n-devel kf6-kcoreaddons-devel kf6-kpackage-devel \\\n    libplasma-devel plasma-workspace-devel systemd-devel\n\n# Install dependencies (Arch\u002FManjaro)\nsudo pacman -S cmake extra-cmake-modules qt6-base qt6-declarative \\\n    kirigami ki18n plasma-workspace systemd-libs kpackage\n\n# Build\ncmake -B build -DCMAKE_INSTALL_PREFIX=\u002Fusr\ncmake --build build\nsudo cmake --install build\n\n# Or install just the plasmoid for your user\nkpackagetool6 -t Plasma\u002FApplet -i build\u002Fpkg\u002Forg.kde.whatcable\n```\n\n### CLI only\n\nAfter building, the `whatcable-linux` binary is in `build\u002Fsrc\u002Fcli\u002F`:\n\n```bash\nwhatcable-linux              # human-readable summary of every USB device\nwhatcable-linux --json       # structured JSON output\nwhatcable-linux --watch      # stream updates as devices come and go\nwhatcable-linux --raw        # include raw sysfs attributes\nwhatcable-linux --version\nwhatcable-linux --help\n```\n\n## How it works\n\nWhatCable-Linux reads three areas of the Linux sysfs virtual filesystem. No root access required for basic info:\n\n| sysfs path | What it gives us |\n|---|---|\n| `\u002Fsys\u002Fbus\u002Fusb\u002Fdevices\u002F` | All USB devices: vendor, product, speed, power, class, interfaces, topology |\n| `\u002Fsys\u002Fclass\u002Ftypec\u002F` | USB-C port state: connection, roles, cable e-marker, partner identity |\n| `\u002Fsys\u002Fclass\u002Fusb_power_delivery\u002F` | PD negotiation: PDO list from charger, active profile, PPS ranges |\n\nHotplug monitoring uses `libudev` to detect connect\u002Fdisconnect events in real time.\n\nCable speed and power decoding follow the USB Power Delivery 3.x spec, ported from the original WhatCable's Swift implementation.\n\n## Caveats\n\n- **USB-C\u002FPD data availability varies by hardware.** The Type-C connector class and USB PD sysfs interfaces depend on the kernel driver (UCSI, TCPM, platform-specific). Some systems expose full PD negotiation data; others expose only basic port info or nothing at all.\n- **Cable e-marker info only appears for cables that carry one.** Same as the original — most USB-C cables under 60W are unmarked.\n- **WhatCable trusts the e-marker.** Counterfeit or mis-flashed cables can lie about their capabilities.\n- **Vendor name lookup is not exhaustive.** Common vendors are recognized; others show the hex VID.\n\n## Credits\n\nWhatCable-Linux is a port of [WhatCable](https:\u002F\u002Fgithub.com\u002Fdarrylmorley\u002Fwhatcable) by [Darryl Morley](https:\u002F\u002Fgithub.com\u002Fdarrylmorley). The USB Power Delivery decoding logic, charging diagnostics, vendor database, and plain-English summary approach are derived from the original macOS app.\n\n## License\n\n[MIT](LICENSE)\n","WhatCable-Linux 是一个 KDE Plasma 6 系统托盘小部件和命令行工具，用于显示连接到 Linux 机器上的每个 USB 设备的功能。它能够以简洁的英语描述每个 USB 设备的身份、速度、USB 版本、功耗、设备类型及驱动程序等信息，并特别提供了详细的 USB-C 端口诊断，如端口角色、电缆标志信息、充电器PDO列表以及充电诊断等。此项目是 macOS 应用 WhatCable 的 Linux\u002FKDE 移植版，扩展了对所有 USB 设备的支持。适用于需要了解 USB 设备功能或进行故障排查的 Linux 用户场景。","2026-06-11 03:32:30","CREATED_QUERY"]