|
|
@@ -20,7 +20,7 @@ var (
|
|
|
func newRootCommand() *cobra.Command {
|
|
|
cmd := &cobra.Command{
|
|
|
Use: "qmk-rgb-tool",
|
|
|
- Short: "QMK RGB CLI — control VIA-compatible keyboard lighting",
|
|
|
+ Short: "QMK RGB CLI — control QMK keyboard lighting",
|
|
|
SilenceErrors: true,
|
|
|
SilenceUsage: true,
|
|
|
}
|
|
|
@@ -53,8 +53,8 @@ var keyboardCmd = &cobra.Command{
|
|
|
|
|
|
var keyboardInfoCmd = &cobra.Command{
|
|
|
Use: "info",
|
|
|
- Short: "Discover connected VIA-compatible keyboards",
|
|
|
- Long: "Scan for connected VIA-compatible keyboards and print device info as JSON.",
|
|
|
+ Short: "Discover connected QMK keyboards",
|
|
|
+ Long: "Scan for connected QMK keyboards (both supported and unknown) and print device info as JSON.",
|
|
|
Run: func(cmd *cobra.Command, args []string) {
|
|
|
keyboards, err := device.LoadKeyboards()
|
|
|
if err != nil {
|
|
|
@@ -62,48 +62,33 @@ var keyboardInfoCmd = &cobra.Command{
|
|
|
os.Exit(1)
|
|
|
}
|
|
|
|
|
|
- devices, err := device.Discover(keyboards)
|
|
|
+ devices, err := device.DiscoverAllQMK(keyboards)
|
|
|
if err != nil {
|
|
|
fmt.Fprintf(os.Stderr, "Error: %v\n", err)
|
|
|
os.Exit(1)
|
|
|
}
|
|
|
|
|
|
if len(devices) == 0 {
|
|
|
- fmt.Println(`{"devices":[]}`)
|
|
|
+ fmt.Println(`{"devices":[],"unknown":[],"total":0}`)
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- type Info struct {
|
|
|
- Devices []device.Device `json:"devices"`
|
|
|
- Total int `json:"total"`
|
|
|
- }
|
|
|
- out := Info{Devices: devices, Total: len(devices)}
|
|
|
- data, _ := json.MarshalIndent(out, "", " ")
|
|
|
- fmt.Println(string(data))
|
|
|
- },
|
|
|
-}
|
|
|
-
|
|
|
-var keyboardListCmd = &cobra.Command{
|
|
|
- Use: "list",
|
|
|
- Short: "List supported keyboards",
|
|
|
- Long: "Print all keyboards from keyboards.json as JSON.",
|
|
|
- Run: func(cmd *cobra.Command, args []string) {
|
|
|
- keyboards, err := device.LoadKeyboards()
|
|
|
- if err != nil {
|
|
|
- fmt.Fprintf(os.Stderr, "Error: %v\n", err)
|
|
|
- os.Exit(1)
|
|
|
- }
|
|
|
-
|
|
|
- if len(keyboards) == 0 {
|
|
|
- fmt.Println(`{"keyboards":[]}`)
|
|
|
- return
|
|
|
+ var known []device.UnknownDevice
|
|
|
+ var unknown []device.UnknownDevice
|
|
|
+ for _, d := range devices {
|
|
|
+ if d.Supported {
|
|
|
+ known = append(known, d)
|
|
|
+ } else {
|
|
|
+ unknown = append(unknown, d)
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
type Info struct {
|
|
|
- Keyboards []device.Keyboard `json:"keyboards"`
|
|
|
- Total int `json:"total"`
|
|
|
+ Devices []device.UnknownDevice `json:"devices"`
|
|
|
+ Unknown []device.UnknownDevice `json:"unknown"`
|
|
|
+ Total int `json:"total"`
|
|
|
}
|
|
|
- out := Info{Keyboards: keyboards, Total: len(keyboards)}
|
|
|
+ out := Info{Devices: devices, Unknown: unknown, Total: len(devices)}
|
|
|
data, _ := json.MarshalIndent(out, "", " ")
|
|
|
fmt.Println(string(data))
|
|
|
},
|
|
|
@@ -112,7 +97,6 @@ var keyboardListCmd = &cobra.Command{
|
|
|
func init() {
|
|
|
rootCmd.AddCommand(keyboardCmd)
|
|
|
keyboardCmd.AddCommand(keyboardInfoCmd)
|
|
|
- keyboardCmd.AddCommand(keyboardListCmd)
|
|
|
|
|
|
rootCmd.AddCommand(NewEnableCmd())
|
|
|
rootCmd.AddCommand(NewDisableCmd())
|