Я попробовал dmidecode
dmidecode -t memory
К счастью, в строке Bank Locator: SOCKET 1 CHANNEL 7 DIMM 0
указано, что модуль DIMM 170 находится на канале 7. Машина поддерживает 32 модуля DIMM, всего 8 каналов. Соответствующие каналы перечислены ниже:
Handle 0x0026, DMI type 17, 40 bytes
Memory Device
Array Handle: 0x0006
Error Information Handle: Not Provided
Total Width: 72 bits
Data Width: 64 bits
Size: 32 GB
Form Factor: DIMM
Set: None
Locator: DIMM170 J31
Bank Locator: SOCKET 1 CHANNEL 7 DIMM 0
Type: DDR4
Type Detail: Synchronous Registered (Buffered)
Speed: 2666 MT/s
Manufacturer: Samsung
Serial Number: 0x40C3BA1D
Asset Tag: 1838
Part Number: M393A4K40BB2-CTD
Rank: 2
Configured Clock Speed: 2666 MT/s
Minimum Voltage: 1.2 V
Maximum Voltage: 2.0 V
Configured Voltage: 1.2 V
[user@centos ~]$ sudo dmidecode -t memory | grep CHANNEL
Bank Locator: SOCKET 0 CHANNEL 0 DIMM 0
Bank Locator: SOCKET 0 CHANNEL 0 DIMM 1
Bank Locator: SOCKET 0 CHANNEL 1 DIMM 0
Bank Locator: SOCKET 0 CHANNEL 1 DIMM 1
Bank Locator: SOCKET 0 CHANNEL 2 DIMM 0
Bank Locator: SOCKET 0 CHANNEL 2 DIMM 1
Bank Locator: SOCKET 0 CHANNEL 3 DIMM 0
Bank Locator: SOCKET 0 CHANNEL 3 DIMM 1
Bank Locator: SOCKET 0 CHANNEL 4 DIMM 0
Bank Locator: SOCKET 0 CHANNEL 4 DIMM 1
Bank Locator: SOCKET 0 CHANNEL 5 DIMM 0
Bank Locator: SOCKET 0 CHANNEL 5 DIMM 1
Bank Locator: SOCKET 0 CHANNEL 6 DIMM 0
Bank Locator: SOCKET 0 CHANNEL 6 DIMM 1
Bank Locator: SOCKET 0 CHANNEL 7 DIMM 0
Bank Locator: SOCKET 0 CHANNEL 7 DIMM 1
Bank Locator: SOCKET 1 CHANNEL 0 DIMM 0
Bank Locator: SOCKET 1 CHANNEL 0 DIMM 1
Bank Locator: SOCKET 1 CHANNEL 1 DIMM 0
Bank Locator: SOCKET 1 CHANNEL 1 DIMM 1
Bank Locator: SOCKET 1 CHANNEL 2 DIMM 0
Bank Locator: SOCKET 1 CHANNEL 2 DIMM 1
Bank Locator: SOCKET 1 CHANNEL 3 DIMM 0
Bank Locator: SOCKET 1 CHANNEL 3 DIMM 1
Bank Locator: SOCKET 1 CHANNEL 4 DIMM 0
Bank Locator: SOCKET 1 CHANNEL 4 DIMM 1
Bank Locator: SOCKET 1 CHANNEL 5 DIMM 0
Bank Locator: SOCKET 1 CHANNEL 5 DIMM 1
Bank Locator: SOCKET 1 CHANNEL 6 DIMM 0
Bank Locator: SOCKET 1 CHANNEL 6 DIMM 1
Bank Locator: SOCKET 1 CHANNEL 7 DIMM 0
Bank Locator: SOCKET 1 CHANNEL 7 DIMM 1
Обычно, выделение текста помещает его в основное выделение (, которое не находится в буфере обмена ).
Существует clipnotify
, но он срабатывает, когда и первичный, и буфер обмена становятся владельцами, но часть буфера обмена легко удалить, чтобы создатьprimarynotify.c
:
#include <X11/Xatom.h>
#include <X11/Xlib.h>
#include <X11/extensions/Xfixes.h>
#include <stdlib.h>
int main(void) {
Display *disp;
Window root;
XEvent evt;
disp = XOpenDisplay(NULL);
if (!disp)
exit(1);
root = DefaultRootWindow(disp);
XFixesSelectSelectionInput(disp, root, XA_PRIMARY, XFixesSetSelectionOwnerNotifyMask);
XNextEvent(disp, &evt);
XCloseDisplay(disp);
}
Затем скомпилируйте его (зависит от Xfixes):
cc -lX11 -lXfixes -o primarynotify primarynotify.c
и запустить его в цикле оболочки,
while primarynotify; do
echo "Primary owned: A selection has just been made."
done
Не забудьте поместить primarynotify
в какой-нибудь каталог $PATH
, иначе вам придется указать полный путь к нему.