ratbagd-like device manager for configuring settings of audio, midi and surface control devices. https://catroof.ladish.org/
Go to file
Nedko Arnaudov 9c1368d3b3 wscript: don't use destdir when composing share_dir
>>> Install sys-apps/catroof-0.2 into /var/tmp/portage/sys-apps/catroof-0.2/image
"/var/tmp/portage/sys-apps/catroof-0.2/work/catroof-0.2/waf" --jobs=4 --destdir="/var/tmp/portage/sys-apps/catroof-0.2/image"  install
Waf: Entering directory `/var/tmp/portage/sys-apps/catroof-0.2/work/catroof-0.2/build'
[ 1/18] Creating build/gitversion.h
+ install /var/tmp/portage/sys-apps/catroof-0.2/image/usr/bin/catroof (from src/catroof.lua)
+ symlink /var/tmp/portage/sys-apps/catroof-0.2/image/usr/bin/gcatroof (to catroof)
+ symlink /var/tmp/portage/sys-apps/catroof-0.2/image/usr/bin/ncatroof (to catroof)
+ install /var/tmp/portage/sys-apps/catroof-0.2/image/var/tmp/portage/sys-apps/catroof-0.2/image/usr/share/catroof/catroof.ui (from src/catroof.ui)
git revision f15658888a
+ install /var/tmp/portage/sys-apps/catroof-0.2/image/usr/bin/lscatroof (from build/lscatroof)
Waf: Leaving directory `/var/tmp/portage/sys-apps/catroof-0.2/work/catroof-0.2/build'
'install' finished successfully (0.335s)
>>> Completed installing sys-apps/catroof-0.2 into /var/tmp/portage/sys-apps/catroof-0.2/image

 * Final size of build directory: 1784 KiB (1.7 MiB)
 * Final size of installed tree:   120 KiB

 * QA Notice: files installed in ${D}/${D}:
 *   /
 *   //usr
 *   //usr/share
 *   //usr/share/catroof
 *   //usr/share/catroof/catroof.ui
 * ERROR: sys-apps/catroof-0.2::ladi51 failed:
 *   Aborting due to QA concerns: 5 files installed in /var/tmp/portage/sys-apps/catroof-0.2/image/var/tmp/portage/sys-apps/catroof-0.2/image
 *
 * Call stack:
 *   misc-functions.sh, line 671:  Called install_qa_check
 *   misc-functions.sh, line 134:  Called source 'install_symlink_html_docs'
 *          05double-D, line  15:  Called DD_check
 *          05double-D, line  11:  Called die
 * The specific snippet of code:
 *              die "Aborting due to QA concerns: ${#files[@]} files installed in ${D%/}${D}"
 *
 * If you need support, post the output of `emerge --info '=sys-apps/catroof-0.2::ladi51'`,
 * the complete build log and the output of `emerge -pqv '=sys-apps/catroof-0.2::ladi51'`.
 * The complete build log is located at '/var/tmp/portage/sys-apps/catroof-0.2/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/sys-apps/catroof-0.2/temp/environment'.
 * Working directory: '/var/tmp/portage/sys-apps/catroof-0.2/image'
 * S: '/var/tmp/portage/sys-apps/catroof-0.2/work/catroof-0.2'
!!! post install failed; exiting.
2024-01-04 02:32:15 +02:00
doc doc/INSTALL.adoc: list C compiler with -std=gnu99 support as build time dependency 2023-07-16 19:59:01 +03:00
include/catroof sysfs_devices.c: improved scan of input and block devices 2023-07-15 15:11:43 +03:00
src src/sysfs_devices.c: Fix memory leak and call free() with invalid pointer 2023-11-06 21:38:43 +02:00
wafautooptions@87a720d8ad
waftoolchainflags@c71e02562f wscript: add support for py2 (waftoolchainflags) 2023-09-23 15:29:43 +03:00
.gitignore
.gitmodules
COPYING
GNUmakefile README: add example lscatroof output 2023-07-08 20:13:46 +03:00
README-docinfo-header.html README: add example lscatroof output 2023-07-08 20:13:46 +03:00
README-docinfo.html README: add example lscatroof output 2023-07-08 20:13:46 +03:00
README.adoc README.adoc: Update lscatroof example output 2023-08-09 16:40:19 +03:00
waf
wscript wscript: don't use destdir when composing share_dir 2024-01-04 02:32:15 +02:00

README.adoc

            _                    __
           | |                  / _|
   ___ __ _| |_ _ __ ___   ___ | |_
  / __/ _` | __| '__/ _ \ / _ \|  _|
 | (_| (_| | |_| | | (_) | (_) | |
  \___\__,_|\__|_|  \___/ \___/|_|
Note
WORK IN PROGRESS
This is Work In Progress. Currently only lscatroof tool is usable.

catroof is device manager software for operating systems running Linux kernel with ALSA (PCM and RAWMIDI) enabled.

For those familiar with ratbagd, it is a similar device manager software. Instead of limiting the scope of devices to input devices, catroof aims at configuring settings of audio, midi and surface control devices, a task that includes managing some linux input devices. catroofd is designed to be run on user session bus, and not as root. Instead, standard UNIX permission mechanisms ensure that processes running as non-priviledged user have access to the device objects (via standard udev hooks that adjust group membership, or ACL, for the appearing device nodes).

Project goals:

  • device manager D-Bus service (catroofd) that implements device enumeration, configuration and profile (UCM2 and more) management.

  • User interface frontends, including but not limited to:

    • GTK3 frotnend via GNOME introspection (gcatroof) See piper for the libratbag equivalent.

    • ncurses frontend (ncatroof)

    • commandline control via catroof_control

    • QT (KDE) frontend

    • WebUI frontend via D-Bus to HTTP

Example output of lscatroof that shows various sysfs devices and their mapping to ALSA
            _                    __
           | |                  / _|
   ___ __ _| |_ _ __ ___   ___ | |_
  / __/ _` | __| '__/ _ \ / _ \|  _|
 | (_| (_| | |_| | | (_) | (_) | |
  \___\__,_|\__|_|  \___/ \___/|_|


Version 0-dev e1af2062ad54f05ae2225dd7d48f2d5332afba74
Built Thu Jul 20 18:49:24 2023

card#0
  id: "hw:tegrahda"
  description: "tegrahda"
  Devices:
    Audio device#3
      id: "hw:tegrahda,3"
        1 playback subdevice(s)
card#1
  id: "hw:tegrasndt210ref"
  description: "tegrasndt210ref"
  Devices:
    Audio device#0
      id: "hw:tegrasndt210ref,0"
        1 duplex subdevice(s)
    Audio device#1
      id: "hw:tegrasndt210ref,1"
        1 duplex subdevice(s)
    Audio device#2
      id: "hw:tegrasndt210ref,2"
        1 duplex subdevice(s)
    Audio device#3
      id: "hw:tegrasndt210ref,3"
        1 duplex subdevice(s)
    Audio device#4
      id: "hw:tegrasndt210ref,4"
        1 duplex subdevice(s)
    Audio device#5
      id: "hw:tegrasndt210ref,5"
        1 duplex subdevice(s)
    Audio device#6
      id: "hw:tegrasndt210ref,6"
        1 duplex subdevice(s)
    Audio device#7
      id: "hw:tegrasndt210ref,7"
        1 duplex subdevice(s)
    Audio device#8
      id: "hw:tegrasndt210ref,8"
        1 duplex subdevice(s)
    Audio device#9
      id: "hw:tegrasndt210ref,9"
        1 duplex subdevice(s)
card#2
  id: "hw:U7"
  description: "U7"
  Devices:
    Audio device#0
      id: "hw:U7,0"
        1 duplex subdevice(s)
    Audio device#1
      id: "hw:U7,1"
        1 playback subdevice(s)
    Audio device#2
      id: "hw:U7,2"
        1 playback subdevice(s)
card#3
  id: "hw:U192k"
  description: "U192k"
  Devices:
    Audio device#0
      id: "hw:U192k,0"
        1 duplex subdevice(s)
    MIDI device#0
      id: "hw:U192k,0"
        1 duplex subdevice(s)
=========================================================================
 N  SUBSYSTEM DEVPATH
-------------------------------------------------------------------------
 1   platform /platform/serial8250
              [TTY] ttyS2
              [TTY] ttyS3
              [TTY] ttyS1
-------------------------------------------------------------------------
 2   platform /70006200.serial
              [TTY] ttyTHS2
-------------------------------------------------------------------------
 3   platform /70030000.hda
              [SOUND] card0
-------------------------------------------------------------------------
 4        mmc /sdhci-tegra.0/mmc_host/mmc0/mmc0:aaaa
              [BLOCK] mmcblk0
-------------------------------------------------------------------------
 5   platform /70006000.serial
              [TTY] ttyS0
-------------------------------------------------------------------------
 6 usb-serial /70090000.xusb/usb1/1-2/1-2.4/1-2.4.4/1-2.4.4.4/1-2.4.4.4:1.0/ttyUSB0
              [TTY] ttyUSB0
-------------------------------------------------------------------------
 7        usb /70090000.xusb/usb1/1-2/1-2.4/1-2.4.4/1-2.4.4.4
              [MNFCTR] Prolific Technology Inc.
              [PRODCT] USB-Serial Controller
              [USB VID:PID] 067b:2303
              [SPEED] 12 (Mbit)
-------------------------------------------------------------------------
 8 usb-serial /70090000.xusb/usb1/1-2/1-2.4/1-2.4.4/1-2.4.4.2/1-2.4.4.2:1.0/ttyUSB1
              [TTY] ttyUSB1
-------------------------------------------------------------------------
 9        usb /70090000.xusb/usb1/1-2/1-2.4/1-2.4.4/1-2.4.4.2
              [MNFCTR] LADIHW
              [PRODCT] Izdelie 1 (USB UART)
              [SERIAL] 5308090AL029JTA
              [USB VID:PID] 0403:6001
              [SPEED] 12 (Mbit)
-------------------------------------------------------------------------
10        hid /70090000.xusb/usb1/1-2/1-2.4/1-2.4.4/1-2.4.4.3/1-2.4.4.3.4/1-2.4.4.3.4:1.0/0003:046D:C222.0005
              [INPUT] input5
              [EVENT] event5
-------------------------------------------------------------------------
11        usb /70090000.xusb/usb1/1-2/1-2.4/1-2.4.4/1-2.4.4.3/1-2.4.4.3.4
              [MNFCTR] G15 Keyboard
              [PRODCT] G15 Keyboard
              [USB VID:PID] 046d:c222
              [SPEED] 12 (Mbit)
-------------------------------------------------------------------------
12        hid /70090000.xusb/usb1/1-2/1-2.4/1-2.4.4/1-2.4.4.3/1-2.4.4.3.2/1-2.4.4.3.2:1.0/0003:045E:001E.0004
              [INPUT] input4
              [EVENT] event4
-------------------------------------------------------------------------
13        usb /70090000.xusb/usb1/1-2/1-2.4/1-2.4.4/1-2.4.4.3/1-2.4.4.3.2
              [MNFCTR] Microsoft
              [PRODCT] Microsoft IntelliMouse® Explorer
              [USB VID:PID] 045e:001e
              [SPEED] 1.5 (Mbit)
-------------------------------------------------------------------------
14        hid /70090000.xusb/usb1/1-2/1-2.4/1-2.4.4/1-2.4.4.3/1-2.4.4.3.1/1-2.4.4.3.1:1.0/0003:046D:C221.0002
              [INPUT] input2
              [EVENT] event2
-------------------------------------------------------------------------
15        hid /70090000.xusb/usb1/1-2/1-2.4/1-2.4.4/1-2.4.4.3/1-2.4.4.3.1/1-2.4.4.3.1:1.1/0003:046D:C221.0003
              [INPUT] input3
              [EVENT] event3
-------------------------------------------------------------------------
16        usb /70090000.xusb/usb1/1-2/1-2.4/1-2.4.4/1-2.4.4.3/1-2.4.4.3.1
              [MNFCTR] Logitech
              [PRODCT] Logitech Gaming Keyboard
              [USB VID:PID] 046d:c221
              [SPEED] 1.5 (Mbit)
-------------------------------------------------------------------------
17        usb /70090000.xusb/usb1/1-2/1-2.4/1-2.4.4/1-2.4.4.3
              [MNFCTR] Logitech
              [PRODCT] Logitech G15 Keyboard
              [USB VID:PID] 046d:c223
              [SPEED] 12 (Mbit)
-------------------------------------------------------------------------
18 usb-serial /70090000.xusb/usb1/1-2/1-2.4/1-2.4.4/1-2.4.4.1/1-2.4.4.1:1.0/ttyUSB2
              [TTY] ttyUSB2
-------------------------------------------------------------------------
19        usb /70090000.xusb/usb1/1-2/1-2.4/1-2.4.4/1-2.4.4.1
              [MNFCTR] LADIHW
              [PRODCT] Izdelie 1 (USB UART)
              [SERIAL] 5308090AL029JTB
              [USB VID:PID] 0403:6001
              [SPEED] 12 (Mbit)
-------------------------------------------------------------------------
20        usb /70090000.xusb/usb1/1-2/1-2.4/1-2.4.4
              [MNFCTR] GenesysLogic
              [PRODCT] USB2.0 Hub
              [USB VID:PID] 05e3:0610
              [SPEED] 480 (Mbit)
-------------------------------------------------------------------------
21        usb /70090000.xusb/usb1/1-2/1-2.4/1-2.4.2/1-2.4.2:1.0
              [SOUND] card2
-------------------------------------------------------------------------
22        hid /70090000.xusb/usb1/1-2/1-2.4/1-2.4.2/1-2.4.2:1.4/0003:1043:857C.0006
              [INPUT] input6
              [EVENT] event1
-------------------------------------------------------------------------
23        usb /70090000.xusb/usb1/1-2/1-2.4/1-2.4.2
              [MNFCTR] ASUS
              [PRODCT] Xonar U7
              [USB VID:PID] 1043:857c
              [SPEED] 480 (Mbit)
-------------------------------------------------------------------------
24        usb /70090000.xusb/usb1/1-2/1-2.4/1-2.4.3/1-2.4.3:1.0
              [SOUND] card3
-------------------------------------------------------------------------
25        usb /70090000.xusb/usb1/1-2/1-2.4/1-2.4.3
              [MNFCTR] BEHRINGER
              [PRODCT] UMC404HD 192k
              [USB VID:PID] 1397:0509
              [SPEED] 480 (Mbit)
-------------------------------------------------------------------------
26        usb /70090000.xusb/usb1/1-2/1-2.4
              [MNFCTR] GenesysLogic
              [PRODCT] USB2.0 Hub
              [USB VID:PID] 05e3:0610
              [SPEED] 480 (Mbit)
-------------------------------------------------------------------------
27        usb /70090000.xusb/usb1/1-2
              [MNFCTR] Generic
              [PRODCT] 4-Port USB 2.1 Hub
              [USB VID:PID] 0bda:5411
              [SPEED] 480 (Mbit)
-------------------------------------------------------------------------
28        usb /70090000.xusb/usb1
              [MNFCTR] Linux 4.9.299-5305-27261-geebda4d2b455 xhci-hcd
              [PRODCT] xHCI Host Controller
              [SERIAL] 70090000.xusb
              [USB VID:PID] 1d6b:0002
              [SPEED] 480 (Mbit)
-------------------------------------------------------------------------
29       scsi /70090000.xusb/usb2/2-1/2-1.3/2-1.3:1.0/host1/target1:0:0/1:0:0:0
              [VENDOR] TO Exter
              [MODEL] nal USB 3.0
              [WWID] naa.3020150331000760
              [BLOCK] sdb
-------------------------------------------------------------------------
30        usb /70090000.xusb/usb2/2-1/2-1.3
              [MNFCTR] TOSHIBA
              [PRODCT] External USB 3.0
              [SERIAL] 201503310007F
              [USB VID:PID] 0080:a001
              [SPEED] 5000 (Mbit)
-------------------------------------------------------------------------
31       scsi /70090000.xusb/usb2/2-1/2-1.1/2-1.1:1.0/host0/target0:0:0/0:0:0:0
              [VENDOR] TO Exter
              [MODEL] nal USB 3.0
              [WWID] naa.3020150331000760
              [BLOCK] sda
-------------------------------------------------------------------------
32        usb /70090000.xusb/usb2/2-1/2-1.1
              [MNFCTR] TOSHIBA
              [PRODCT] External USB 3.0
              [SERIAL] 201503310007F
              [USB VID:PID] 0080:a001
              [SPEED] 5000 (Mbit)
-------------------------------------------------------------------------
33        usb /70090000.xusb/usb2/2-1/2-1.4
              [MNFCTR] GenesysLogic
              [PRODCT] USB3.0 Hub
              [USB VID:PID] 05e3:0612
              [SPEED] 5000 (Mbit)
-------------------------------------------------------------------------
34        usb /70090000.xusb/usb2/2-1
              [MNFCTR] Generic
              [PRODCT] 4-Port USB 3.1 Hub
              [USB VID:PID] 0bda:0411
              [SPEED] 5000 (Mbit)
-------------------------------------------------------------------------
35        usb /70090000.xusb/usb2
              [MNFCTR] Linux 4.9.299-5305-27261-geebda4d2b455 xhci-hcd
              [PRODCT] xHCI Host Controller
              [SERIAL] 70090000.xusb
              [USB VID:PID] 1d6b:0003
              [SPEED] 5000 (Mbit)
-------------------------------------------------------------------------
36   platform /70006040.serial
              [TTY] ttyTHS1
-------------------------------------------------------------------------
37   platform /sound
              [SOUND] card1

Development happens in GIT:

For instructions on building, installation and packaging catroof, see the doc/INSTALL.adoc file.

See also:

For related discussions, you are invited to join Libera.Chat channel #ladi