Naïm Favier (9e2d2dff) at 07 Aug 07:40
So what modifier should sxhkd use to switch between groups? Can that feature conceivably work at all?
Yeah, I've rebound ² to ` with xmodmap -e 'keycode 49 = grave twosuperior'
. I don't use the key in other layouts, so I don't really care what it does.
I just realised that Altgr is also apparently bound to Mod5, so that I can launch firefox by going super + altgr + z
and go back by super + altgr + w
. I am very confused. altgr + z
definitely doesn't type w
.
I rarely use the last three, but I like being able to switch quickly.
xkb_keymap {
xkb_keycodes "evdev+aliases(azerty)" {
minimum = 8;
maximum = 255;
<ESC> = 9;
<AE01> = 10;
<AE02> = 11;
<AE03> = 12;
<AE04> = 13;
<AE05> = 14;
<AE06> = 15;
<AE07> = 16;
<AE08> = 17;
<AE09> = 18;
<AE10> = 19;
<AE11> = 20;
<AE12> = 21;
<BKSP> = 22;
<TAB> = 23;
<AD01> = 24;
<AD02> = 25;
<AD03> = 26;
<AD04> = 27;
<AD05> = 28;
<AD06> = 29;
<AD07> = 30;
<AD08> = 31;
<AD09> = 32;
<AD10> = 33;
<AD11> = 34;
<AD12> = 35;
<RTRN> = 36;
<LCTL> = 37;
<AC01> = 38;
<AC02> = 39;
<AC03> = 40;
<AC04> = 41;
<AC05> = 42;
<AC06> = 43;
<AC07> = 44;
<AC08> = 45;
<AC09> = 46;
<AC10> = 47;
<AC11> = 48;
<TLDE> = 49;
<LFSH> = 50;
<BKSL> = 51;
<AB01> = 52;
<AB02> = 53;
<AB03> = 54;
<AB04> = 55;
<AB05> = 56;
<AB06> = 57;
<AB07> = 58;
<AB08> = 59;
<AB09> = 60;
<AB10> = 61;
<RTSH> = 62;
<KPMU> = 63;
<LALT> = 64;
<SPCE> = 65;
<CAPS> = 66;
<FK01> = 67;
<FK02> = 68;
<FK03> = 69;
<FK04> = 70;
<FK05> = 71;
<FK06> = 72;
<FK07> = 73;
<FK08> = 74;
<FK09> = 75;
<FK10> = 76;
<NMLK> = 77;
<SCLK> = 78;
<KP7> = 79;
<KP8> = 80;
<KP9> = 81;
<KPSU> = 82;
<KP4> = 83;
<KP5> = 84;
<KP6> = 85;
<KPAD> = 86;
<KP1> = 87;
<KP2> = 88;
<KP3> = 89;
<KP0> = 90;
<KPDL> = 91;
<LVL3> = 92;
<LSGT> = 94;
<FK11> = 95;
<FK12> = 96;
<AB11> = 97;
<KATA> = 98;
<HIRA> = 99;
<HENK> = 100;
<HKTG> = 101;
<MUHE> = 102;
<JPCM> = 103;
<KPEN> = 104;
<RCTL> = 105;
<KPDV> = 106;
<PRSC> = 107;
<RALT> = 108;
<LNFD> = 109;
<HOME> = 110;
<UP> = 111;
<PGUP> = 112;
<LEFT> = 113;
<RGHT> = 114;
<END> = 115;
<DOWN> = 116;
<PGDN> = 117;
<INS> = 118;
<DELE> = 119;
<I120> = 120;
<MUTE> = 121;
<VOL-> = 122;
<VOL+> = 123;
<POWR> = 124;
<KPEQ> = 125;
<I126> = 126;
<PAUS> = 127;
<I128> = 128;
<I129> = 129;
<HNGL> = 130;
<HJCV> = 131;
<AE13> = 132;
<LWIN> = 133;
<RWIN> = 134;
<COMP> = 135;
<STOP> = 136;
<AGAI> = 137;
<PROP> = 138;
<UNDO> = 139;
<FRNT> = 140;
<COPY> = 141;
<OPEN> = 142;
<PAST> = 143;
<FIND> = 144;
<CUT> = 145;
<HELP> = 146;
<I147> = 147;
<I148> = 148;
<I149> = 149;
<I150> = 150;
<I151> = 151;
<I152> = 152;
<I153> = 153;
<I154> = 154;
<I155> = 155;
<I156> = 156;
<I157> = 157;
<I158> = 158;
<I159> = 159;
<I160> = 160;
<I161> = 161;
<I162> = 162;
<I163> = 163;
<I164> = 164;
<I165> = 165;
<I166> = 166;
<I167> = 167;
<I168> = 168;
<I169> = 169;
<I170> = 170;
<I171> = 171;
<I172> = 172;
<I173> = 173;
<I174> = 174;
<I175> = 175;
<I176> = 176;
<I177> = 177;
<I178> = 178;
<I179> = 179;
<I180> = 180;
<I181> = 181;
<I182> = 182;
<I183> = 183;
<I184> = 184;
<I185> = 185;
<I186> = 186;
<I187> = 187;
<I188> = 188;
<I189> = 189;
<I190> = 190;
<FK13> = 191;
<FK14> = 192;
<FK15> = 193;
<FK16> = 194;
<FK17> = 195;
<FK18> = 196;
<FK19> = 197;
<FK20> = 198;
<FK21> = 199;
<FK22> = 200;
<FK23> = 201;
<FK24> = 202;
<LVL5> = 203;
<ALT> = 204;
<META> = 205;
<SUPR> = 206;
<HYPR> = 207;
<I208> = 208;
<I209> = 209;
<I210> = 210;
<I211> = 211;
<I212> = 212;
<I213> = 213;
<I214> = 214;
<I215> = 215;
<I216> = 216;
<I217> = 217;
<I218> = 218;
<I219> = 219;
<I220> = 220;
<I221> = 221;
<I222> = 222;
<I223> = 223;
<I224> = 224;
<I225> = 225;
<I226> = 226;
<I227> = 227;
<I228> = 228;
<I229> = 229;
<I230> = 230;
<I231> = 231;
<I232> = 232;
<I233> = 233;
<I234> = 234;
<I235> = 235;
<I236> = 236;
<I237> = 237;
<I238> = 238;
<I239> = 239;
<I240> = 240;
<I241> = 241;
<I242> = 242;
<I243> = 243;
<I244> = 244;
<I245> = 245;
<I246> = 246;
<I247> = 247;
<I248> = 248;
<I249> = 249;
<I250> = 250;
<I251> = 251;
<I252> = 252;
<I253> = 253;
<I254> = 254;
<I255> = 255;
indicator 1 = "Caps Lock";
indicator 2 = "Num Lock";
indicator 3 = "Scroll Lock";
indicator 4 = "Compose";
indicator 5 = "Kana";
indicator 6 = "Sleep";
indicator 7 = "Suspend";
indicator 8 = "Mute";
indicator 9 = "Misc";
indicator 10 = "Mail";
indicator 11 = "Charging";
virtual indicator 12 = "Shift Lock";
virtual indicator 13 = "Group 2";
virtual indicator 14 = "Mouse Keys";
alias <AC12> = <BKSL>;
alias <ALGR> = <RALT>;
alias <MENU> = <COMP>;
alias <HZTG> = <TLDE>;
alias <LMTA> = <LWIN>;
alias <RMTA> = <RWIN>;
alias <OUTP> = <I235>;
alias <KITG> = <I236>;
alias <KIDN> = <I237>;
alias <KIUP> = <I238>;
alias <I121> = <MUTE>;
alias <I122> = <VOL->;
alias <I123> = <VOL+>;
alias <I124> = <POWR>;
alias <I125> = <KPEQ>;
alias <I127> = <PAUS>;
alias <I130> = <HNGL>;
alias <I131> = <HJCV>;
alias <I132> = <AE13>;
alias <I133> = <LWIN>;
alias <I134> = <RWIN>;
alias <I135> = <COMP>;
alias <I136> = <STOP>;
alias <I137> = <AGAI>;
alias <I138> = <PROP>;
alias <I139> = <UNDO>;
alias <I140> = <FRNT>;
alias <I141> = <COPY>;
alias <I142> = <OPEN>;
alias <I143> = <PAST>;
alias <I144> = <FIND>;
alias <I145> = <CUT>;
alias <I146> = <HELP>;
alias <I191> = <FK13>;
alias <I192> = <FK14>;
alias <I193> = <FK15>;
alias <I194> = <FK16>;
alias <I195> = <FK17>;
alias <I196> = <FK18>;
alias <I197> = <FK19>;
alias <I198> = <FK20>;
alias <I199> = <FK21>;
alias <I200> = <FK22>;
alias <I201> = <FK23>;
alias <I202> = <FK24>;
alias <MDSW> = <LVL5>;
alias <KPPT> = <I129>;
alias <LatA> = <AD01>;
alias <LatZ> = <AD02>;
alias <LatE> = <AD03>;
alias <LatR> = <AD04>;
alias <LatT> = <AD05>;
alias <LatY> = <AD06>;
alias <LatU> = <AD07>;
alias <LatI> = <AD08>;
alias <LatO> = <AD09>;
alias <LatP> = <AD10>;
alias <LatQ> = <AC01>;
alias <LatS> = <AC02>;
alias <LatD> = <AC03>;
alias <LatF> = <AC04>;
alias <LatG> = <AC05>;
alias <LatH> = <AC06>;
alias <LatJ> = <AC07>;
alias <LatK> = <AC08>;
alias <LatL> = <AC09>;
alias <LatM> = <AC10>;
alias <LatW> = <AB01>;
alias <LatX> = <AB02>;
alias <LatC> = <AB03>;
alias <LatV> = <AB04>;
alias <LatB> = <AB05>;
alias <LatN> = <AB06>;
};
xkb_types "complete" {
virtual_modifiers NumLock,Alt,LevelThree,LevelFive,Meta,Super,Hyper,ScrollLock;
type "ONE_LEVEL" {
modifiers= none;
level_name[Level1]= "Any";
};
type "TWO_LEVEL" {
modifiers= Shift;
map[Shift]= Level2;
level_name[Level1]= "Base";
level_name[Level2]= "Shift";
};
type "ALPHABETIC" {
modifiers= Shift+Lock;
map[Shift]= Level2;
map[Lock]= Level2;
level_name[Level1]= "Base";
level_name[Level2]= "Caps";
};
type "KEYPAD" {
modifiers= Shift+NumLock;
map[NumLock]= Level2;
level_name[Level1]= "Base";
level_name[Level2]= "Number";
};
type "PC_ALT_LEVEL2" {
modifiers= Alt;
map[Alt]= Level2;
level_name[Level1]= "Base";
level_name[Level2]= "Alt";
};
type "PC_SUPER_LEVEL2" {
modifiers= Mod4;
map[Mod4]= Level2;
level_name[Level1]= "Base";
level_name[Level2]= "Super";
};
type "PC_CONTROL_LEVEL2" {
modifiers= Control;
map[Control]= Level2;
level_name[Level1]= "Base";
level_name[Level2]= "Control";
};
type "CTRL+ALT" {
modifiers= Shift+Control+Alt+LevelThree;
map[Shift]= Level2;
preserve[Shift]= Shift;
map[LevelThree]= Level3;
map[Shift+LevelThree]= Level4;
preserve[Shift+LevelThree]= Shift;
map[Control+Alt]= Level5;
level_name[Level1]= "Base";
level_name[Level2]= "Shift";
level_name[Level3]= "AltGr";
level_name[Level4]= "Shift AltGr";
level_name[Level5]= "Ctrl+Alt";
};
type "THREE_LEVEL" {
modifiers= Shift+LevelThree;
map[Shift]= Level2;
map[LevelThree]= Level3;
map[Shift+LevelThree]= Level3;
level_name[Level1]= "Base";
level_name[Level2]= "Shift";
level_name[Level3]= "Level3";
};
type "FOUR_LEVEL" {
modifiers= Shift+LevelThree;
map[Shift]= Level2;
map[LevelThree]= Level3;
map[Shift+LevelThree]= Level4;
level_name[Level1]= "Base";
level_name[Level2]= "Shift";
level_name[Level3]= "AltGr";
level_name[Level4]= "Shift AltGr";
};
type "FOUR_LEVEL_ALPHABETIC" {
modifiers= Shift+Lock+LevelThree;
map[Shift]= Level2;
map[Lock]= Level2;
map[LevelThree]= Level3;
map[Shift+LevelThree]= Level4;
map[Lock+LevelThree]= Level4;
map[Shift+Lock+LevelThree]= Level3;
level_name[Level1]= "Base";
level_name[Level2]= "Shift";
level_name[Level3]= "AltGr";
level_name[Level4]= "Shift AltGr";
};
type "FOUR_LEVEL_SEMIALPHABETIC" {
modifiers= Shift+Lock+LevelThree;
map[Shift]= Level2;
map[Lock]= Level2;
map[LevelThree]= Level3;
map[Shift+LevelThree]= Level4;
map[Lock+LevelThree]= Level3;
preserve[Lock+LevelThree]= Lock;
map[Shift+Lock+LevelThree]= Level4;
preserve[Shift+Lock+LevelThree]= Lock;
level_name[Level1]= "Base";
level_name[Level2]= "Shift";
level_name[Level3]= "AltGr";
level_name[Level4]= "Shift AltGr";
};
type "FOUR_LEVEL_KEYPAD" {
modifiers= Shift+NumLock+LevelThree;
map[Shift]= Level2;
map[NumLock]= Level2;
map[LevelThree]= Level3;
map[Shift+LevelThree]= Level4;
map[NumLock+LevelThree]= Level4;
map[Shift+NumLock+LevelThree]= Level3;
level_name[Level1]= "Base";
level_name[Level2]= "Shift/Numlock";
level_name[Level3]= "AltGr";
level_name[Level4]= "Shift/Numlock AltGr";
};
type "FOUR_LEVEL_MIXED_KEYPAD" {
modifiers= Shift+NumLock+LevelThree;
map[Shift]= Level2;
map[NumLock]= Level2;
map[LevelThree]= Level3;
map[Shift+LevelThree]= Level4;
map[NumLock+LevelThree]= Level3;
map[Shift+NumLock+LevelThree]= Level4;
level_name[Level1]= "Base";
level_name[Level2]= "Number";
level_name[Level3]= "AltGr";
level_name[Level4]= "Shift AltGr";
};
type "FOUR_LEVEL_X" {
modifiers= Shift+Control+Alt+LevelThree;
map[Shift]= Level1;
map[LevelThree]= Level2;
map[Shift+LevelThree]= Level3;
map[Control+Alt]= Level4;
level_name[Level1]= "Base";
level_name[Level2]= "AltGr";
level_name[Level3]= "Shift AltGr";
level_name[Level4]= "Ctrl+Alt";
};
type "SEPARATE_CAPS_AND_SHIFT_ALPHABETIC" {
modifiers= Shift+Lock+LevelThree;
map[Shift]= Level2;
map[Lock]= Level4;
preserve[Lock]= Lock;
map[LevelThree]= Level3;
map[Shift+LevelThree]= Level4;
map[Lock+LevelThree]= Level3;
preserve[Lock+LevelThree]= Lock;
map[Shift+Lock+LevelThree]= Level3;
level_name[Level1]= "Base";
level_name[Level2]= "Shift";
level_name[Level3]= "AltGr";
level_name[Level4]= "Caps / Shift AltGr";
};
type "FOUR_LEVEL_PLUS_LOCK" {
modifiers= Shift+Lock+LevelThree;
map[Shift]= Level2;
map[LevelThree]= Level3;
map[Shift+LevelThree]= Level4;
map[Lock]= Level5;
map[Shift+Lock]= Level2;
map[Lock+LevelThree]= Level3;
map[Shift+Lock+LevelThree]= Level4;
level_name[Level1]= "Base";
level_name[Level2]= "Shift";
level_name[Level3]= "AltGr";
level_name[Level4]= "Shift AltGr";
level_name[Level5]= "Lock";
};
type "EIGHT_LEVEL" {
modifiers= Shift+LevelThree+LevelFive;
map[Shift]= Level2;
map[LevelThree]= Level3;
map[Shift+LevelThree]= Level4;
map[LevelFive]= Level5;
map[Shift+LevelFive]= Level6;
map[LevelThree+LevelFive]= Level7;
map[Shift+LevelThree+LevelFive]= Level8;
level_name[Level1]= "Base";
level_name[Level2]= "Shift";
level_name[Level3]= "AltGr";
level_name[Level4]= "Shift AltGr";
level_name[Level5]= "X";
level_name[Level6]= "X Shift";
level_name[Level7]= "X AltGr";
level_name[Level8]= "X Shift AltGr";
};
type "EIGHT_LEVEL_ALPHABETIC" {
modifiers= Shift+Lock+LevelThree+LevelFive;
map[Shift]= Level2;
map[Lock]= Level2;
map[LevelThree]= Level3;
map[Shift+LevelThree]= Level4;
map[Lock+LevelThree]= Level4;
map[Shift+Lock+LevelThree]= Level3;
map[LevelFive]= Level5;
map[Shift+LevelFive]= Level6;
map[Lock+LevelFive]= Level6;
map[Shift+Lock+LevelFive]= Level5;
map[LevelThree+LevelFive]= Level7;
map[Shift+LevelThree+LevelFive]= Level8;
map[Lock+LevelThree+LevelFive]= Level8;
map[Shift+Lock+LevelThree+LevelFive]= Level7;
level_name[Level1]= "Base";
level_name[Level2]= "Shift";
level_name[Level3]= "AltGr";
level_name[Level4]= "Shift AltGr";
level_name[Level5]= "X";
level_name[Level6]= "X Shift";
level_name[Level7]= "X AltGr";
level_name[Level8]= "X Shift AltGr";
};
type "EIGHT_LEVEL_SEMIALPHABETIC" {
modifiers= Shift+Lock+LevelThree+LevelFive;
map[Shift]= Level2;
map[Lock]= Level2;
map[LevelThree]= Level3;
map[Shift+LevelThree]= Level4;
map[Lock+LevelThree]= Level3;
preserve[Lock+LevelThree]= Lock;
map[Shift+Lock+LevelThree]= Level4;
preserve[Shift+Lock+LevelThree]= Lock;
map[LevelFive]= Level5;
map[Shift+LevelFive]= Level6;
map[Lock+LevelFive]= Level6;
map[Shift+Lock+LevelFive]= Level5;
map[LevelThree+LevelFive]= Level7;
map[Shift+LevelThree+LevelFive]= Level8;
map[Lock+LevelThree+LevelFive]= Level7;
preserve[Lock+LevelThree+LevelFive]= Lock;
map[Shift+Lock+LevelThree+LevelFive]= Level8;
preserve[Shift+Lock+LevelThree+LevelFive]= Lock;
level_name[Level1]= "Base";
level_name[Level2]= "Shift";
level_name[Level3]= "AltGr";
level_name[Level4]= "Shift AltGr";
level_name[Level5]= "X";
level_name[Level6]= "X Shift";
level_name[Level7]= "X AltGr";
level_name[Level8]= "X Shift AltGr";
};
type "EIGHT_LEVEL_WITH_LEVEL5_LOCK" {
modifiers= Shift+NumLock+LevelThree+LevelFive;
map[Shift]= Level2;
map[LevelThree]= Level3;
map[Shift+LevelThree]= Level4;
map[LevelFive]= Level5;
map[Shift+LevelFive]= Level6;
preserve[Shift+LevelFive]= Shift;
map[LevelThree+LevelFive]= Level7;
map[Shift+LevelThree+LevelFive]= Level8;
map[NumLock]= Level5;
map[Shift+NumLock]= Level6;
preserve[Shift+NumLock]= Shift;
map[NumLock+LevelThree]= Level7;
map[Shift+NumLock+LevelThree]= Level8;
map[Shift+NumLock+LevelFive]= Level2;
map[NumLock+LevelThree+LevelFive]= Level3;
map[Shift+NumLock+LevelThree+LevelFive]= Level4;
level_name[Level1]= "Base";
level_name[Level2]= "Shift";
level_name[Level3]= "AltGr";
level_name[Level4]= "Shift AltGr";
level_name[Level5]= "X";
level_name[Level6]= "X Shift";
level_name[Level7]= "X AltGr";
level_name[Level8]= "X Shift AltGr";
};
type "EIGHT_LEVEL_ALPHABETIC_WITH_LEVEL5_LOCK" {
modifiers= Shift+Lock+NumLock+LevelThree+LevelFive;
map[Shift]= Level2;
map[LevelThree]= Level3;
map[Shift+LevelThree]= Level4;
map[LevelFive]= Level5;
map[Shift+LevelFive]= Level6;
preserve[Shift+LevelFive]= Shift;
map[LevelThree+LevelFive]= Level7;
map[Shift+LevelThree+LevelFive]= Level8;
map[NumLock]= Level5;
map[Shift+NumLock]= Level6;
preserve[Shift+NumLock]= Shift;
map[NumLock+LevelThree]= Level7;
map[Shift+NumLock+LevelThree]= Level8;
map[Shift+NumLock+LevelFive]= Level2;
map[NumLock+LevelThree+LevelFive]= Level3;
map[Shift+NumLock+LevelThree+LevelFive]= Level4;
map[Lock]= Level2;
map[Lock+LevelThree]= Level3;
map[Shift+Lock+LevelThree]= Level4;
map[Lock+LevelFive]= Level5;
map[Shift+Lock+LevelFive]= Level6;
map[Lock+LevelThree+LevelFive]= Level7;
map[Shift+Lock+LevelThree+LevelFive]= Level8;
map[Lock+NumLock]= Level5;
map[Shift+Lock+NumLock]= Level6;
map[Lock+NumLock+LevelThree]= Level7;
map[Shift+Lock+NumLock+LevelThree]= Level8;
map[Lock+NumLock+LevelFive]= Level2;
map[Lock+NumLock+LevelThree+LevelFive]= Level3;
map[Shift+Lock+NumLock+LevelThree+LevelFive]= Level4;
level_name[Level1]= "Base";
level_name[Level2]= "Shift";
level_name[Level3]= "AltGr";
level_name[Level4]= "Shift AltGr";
level_name[Level5]= "X";
level_name[Level6]= "X Shift";
level_name[Level7]= "X AltGr";
level_name[Level8]= "X Shift AltGr";
};
type "EIGHT_LEVEL_BY_CTRL" {
modifiers= Shift+Lock+Control+LevelThree;
map[Shift]= Level2;
map[Lock]= Level2;
map[LevelThree]= Level3;
map[Shift+LevelThree]= Level4;
map[Lock+LevelThree]= Level4;
map[Shift+Lock+LevelThree]= Level3;
map[Control]= Level5;
map[Shift+Control]= Level6;
map[Lock+Control]= Level6;
map[Shift+Lock+Control]= Level5;
map[Control+LevelThree]= Level7;
map[Shift+Control+LevelThree]= Level8;
map[Lock+Control+LevelThree]= Level8;
map[Shift+Lock+Control+LevelThree]= Level7;
level_name[Level1]= "Base";
level_name[Level2]= "Shift";
level_name[Level3]= "Level3";
level_name[Level4]= "Shift Level3";
level_name[Level5]= "Ctrl";
level_name[Level6]= "Shift Ctrl";
level_name[Level7]= "Level3 Ctrl";
level_name[Level8]= "Shift Level3 Ctrl";
};
type "SHIFT+ALT" {
modifiers= Shift+Alt;
map[Shift+Alt]= Level2;
level_name[Level1]= "Base";
level_name[Level2]= "Shift+Alt";
};
};
xkb_compatibility "complete" {
virtual_modifiers NumLock,Alt,LevelThree,LevelFive,Meta,Super,Hyper,ScrollLock;
interpret.useModMapMods= AnyLevel;
interpret.repeat= False;
interpret.locking= False;
interpret ISO_Level2_Latch+Exactly(Shift) {
useModMapMods=level1;
action= LatchMods(modifiers=Shift,clearLocks,latchToLock);
};
interpret Shift_Lock+AnyOf(Shift+Lock) {
action= LockMods(modifiers=Shift);
};
interpret Num_Lock+AnyOf(all) {
virtualModifier= NumLock;
action= LockMods(modifiers=NumLock);
};
interpret ISO_Level3_Shift+AnyOf(all) {
virtualModifier= LevelThree;
useModMapMods=level1;
action= SetMods(modifiers=LevelThree,clearLocks);
};
interpret ISO_Level3_Latch+AnyOf(all) {
virtualModifier= LevelThree;
useModMapMods=level1;
action= LatchMods(modifiers=LevelThree,clearLocks,latchToLock);
};
interpret ISO_Level3_Lock+AnyOf(all) {
virtualModifier= LevelThree;
useModMapMods=level1;
action= LockMods(modifiers=LevelThree);
};
interpret Alt_L+AnyOf(all) {
virtualModifier= Alt;
action= SetMods(modifiers=modMapMods,clearLocks);
};
interpret Alt_R+AnyOf(all) {
virtualModifier= Alt;
action= SetMods(modifiers=modMapMods,clearLocks);
};
interpret Meta_L+AnyOf(all) {
virtualModifier= Meta;
action= SetMods(modifiers=modMapMods,clearLocks);
};
interpret Meta_R+AnyOf(all) {
virtualModifier= Meta;
action= SetMods(modifiers=modMapMods,clearLocks);
};
interpret Super_L+AnyOf(all) {
virtualModifier= Super;
action= SetMods(modifiers=modMapMods,clearLocks);
};
interpret Super_R+AnyOf(all) {
virtualModifier= Super;
action= SetMods(modifiers=modMapMods,clearLocks);
};
interpret Hyper_L+AnyOf(all) {
virtualModifier= Hyper;
action= SetMods(modifiers=modMapMods,clearLocks);
};
interpret Hyper_R+AnyOf(all) {
virtualModifier= Hyper;
action= SetMods(modifiers=modMapMods,clearLocks);
};
interpret Scroll_Lock+AnyOf(all) {
virtualModifier= ScrollLock;
action= LockMods(modifiers=modMapMods);
};
interpret ISO_Level5_Shift+AnyOf(all) {
virtualModifier= LevelFive;
useModMapMods=level1;
action= SetMods(modifiers=LevelFive,clearLocks);
};
interpret ISO_Level5_Latch+AnyOf(all) {
virtualModifier= LevelFive;
useModMapMods=level1;
action= LatchMods(modifiers=LevelFive,clearLocks,latchToLock);
};
interpret ISO_Level5_Lock+AnyOf(all) {
virtualModifier= LevelFive;
useModMapMods=level1;
action= LockMods(modifiers=LevelFive);
};
interpret Mode_switch+AnyOfOrNone(all) {
action= SetGroup(group=+1);
};
interpret ISO_Level3_Shift+AnyOfOrNone(all) {
action= SetMods(modifiers=LevelThree,clearLocks);
};
interpret ISO_Level3_Latch+AnyOfOrNone(all) {
action= LatchMods(modifiers=LevelThree,clearLocks,latchToLock);
};
interpret ISO_Level3_Lock+AnyOfOrNone(all) {
action= LockMods(modifiers=LevelThree);
};
interpret ISO_Group_Latch+AnyOfOrNone(all) {
action= LatchGroup(group=2);
};
interpret ISO_Next_Group+AnyOfOrNone(all) {
action= LockGroup(group=+1);
};
interpret ISO_Prev_Group+AnyOfOrNone(all) {
action= LockGroup(group=-1);
};
interpret ISO_First_Group+AnyOfOrNone(all) {
action= LockGroup(group=1);
};
interpret ISO_Last_Group+AnyOfOrNone(all) {
action= LockGroup(group=2);
};
interpret KP_1+AnyOfOrNone(all) {
repeat= True;
action= MovePtr(x=-1,y=+1);
};
interpret KP_End+AnyOfOrNone(all) {
repeat= True;
action= MovePtr(x=-1,y=+1);
};
interpret KP_2+AnyOfOrNone(all) {
repeat= True;
action= MovePtr(x=+0,y=+1);
};
interpret KP_Down+AnyOfOrNone(all) {
repeat= True;
action= MovePtr(x=+0,y=+1);
};
interpret KP_3+AnyOfOrNone(all) {
repeat= True;
action= MovePtr(x=+1,y=+1);
};
interpret KP_Next+AnyOfOrNone(all) {
repeat= True;
action= MovePtr(x=+1,y=+1);
};
interpret KP_4+AnyOfOrNone(all) {
repeat= True;
action= MovePtr(x=-1,y=+0);
};
interpret KP_Left+AnyOfOrNone(all) {
repeat= True;
action= MovePtr(x=-1,y=+0);
};
interpret KP_6+AnyOfOrNone(all) {
repeat= True;
action= MovePtr(x=+1,y=+0);
};
interpret KP_Right+AnyOfOrNone(all) {
repeat= True;
action= MovePtr(x=+1,y=+0);
};
interpret KP_7+AnyOfOrNone(all) {
repeat= True;
action= MovePtr(x=-1,y=-1);
};
interpret KP_Home+AnyOfOrNone(all) {
repeat= True;
action= MovePtr(x=-1,y=-1);
};
interpret KP_8+AnyOfOrNone(all) {
repeat= True;
action= MovePtr(x=+0,y=-1);
};
interpret KP_Up+AnyOfOrNone(all) {
repeat= True;
action= MovePtr(x=+0,y=-1);
};
interpret KP_9+AnyOfOrNone(all) {
repeat= True;
action= MovePtr(x=+1,y=-1);
};
interpret KP_Prior+AnyOfOrNone(all) {
repeat= True;
action= MovePtr(x=+1,y=-1);
};
interpret KP_5+AnyOfOrNone(all) {
repeat= True;
action= PtrBtn(button=default);
};
interpret KP_Begin+AnyOfOrNone(all) {
repeat= True;
action= PtrBtn(button=default);
};
interpret KP_F2+AnyOfOrNone(all) {
repeat= True;
action= SetPtrDflt(affect=button,button=1);
};
interpret KP_Divide+AnyOfOrNone(all) {
repeat= True;
action= SetPtrDflt(affect=button,button=1);
};
interpret KP_F3+AnyOfOrNone(all) {
repeat= True;
action= SetPtrDflt(affect=button,button=2);
};
interpret KP_Multiply+AnyOfOrNone(all) {
repeat= True;
action= SetPtrDflt(affect=button,button=2);
};
interpret KP_F4+AnyOfOrNone(all) {
repeat= True;
action= SetPtrDflt(affect=button,button=3);
};
interpret KP_Subtract+AnyOfOrNone(all) {
repeat= True;
action= SetPtrDflt(affect=button,button=3);
};
interpret KP_Separator+AnyOfOrNone(all) {
repeat= True;
action= PtrBtn(button=default,count=2);
};
interpret KP_Add+AnyOfOrNone(all) {
repeat= True;
action= PtrBtn(button=default,count=2);
};
interpret KP_0+AnyOfOrNone(all) {
repeat= True;
action= LockPtrBtn(button=default,affect=lock);
};
interpret KP_Insert+AnyOfOrNone(all) {
repeat= True;
action= LockPtrBtn(button=default,affect=lock);
};
interpret KP_Decimal+AnyOfOrNone(all) {
repeat= True;
action= LockPtrBtn(button=default,affect=unlock);
};
interpret KP_Delete+AnyOfOrNone(all) {
repeat= True;
action= LockPtrBtn(button=default,affect=unlock);
};
interpret F25+AnyOfOrNone(all) {
repeat= True;
action= SetPtrDflt(affect=button,button=1);
};
interpret F26+AnyOfOrNone(all) {
repeat= True;
action= SetPtrDflt(affect=button,button=2);
};
interpret F27+AnyOfOrNone(all) {
repeat= True;
action= MovePtr(x=-1,y=-1);
};
interpret F29+AnyOfOrNone(all) {
repeat= True;
action= MovePtr(x=+1,y=-1);
};
interpret F31+AnyOfOrNone(all) {
repeat= True;
action= PtrBtn(button=default);
};
interpret F33+AnyOfOrNone(all) {
repeat= True;
action= MovePtr(x=-1,y=+1);
};
interpret F35+AnyOfOrNone(all) {
repeat= True;
action= MovePtr(x=+1,y=+1);
};
interpret Pointer_Button_Dflt+AnyOfOrNone(all) {
action= PtrBtn(button=default);
};
interpret Pointer_Button1+AnyOfOrNone(all) {
action= PtrBtn(button=1);
};
interpret Pointer_Button2+AnyOfOrNone(all) {
action= PtrBtn(button=2);
};
interpret Pointer_Button3+AnyOfOrNone(all) {
action= PtrBtn(button=3);
};
interpret Pointer_DblClick_Dflt+AnyOfOrNone(all) {
action= PtrBtn(button=default,count=2);
};
interpret Pointer_DblClick1+AnyOfOrNone(all) {
action= PtrBtn(button=1,count=2);
};
interpret Pointer_DblClick2+AnyOfOrNone(all) {
action= PtrBtn(button=2,count=2);
};
interpret Pointer_DblClick3+AnyOfOrNone(all) {
action= PtrBtn(button=3,count=2);
};
interpret Pointer_Drag_Dflt+AnyOfOrNone(all) {
action= LockPtrBtn(button=default,affect=both);
};
interpret Pointer_Drag1+AnyOfOrNone(all) {
action= LockPtrBtn(button=1,affect=both);
};
interpret Pointer_Drag2+AnyOfOrNone(all) {
action= LockPtrBtn(button=2,affect=both);
};
interpret Pointer_Drag3+AnyOfOrNone(all) {
action= LockPtrBtn(button=3,affect=both);
};
interpret Pointer_EnableKeys+AnyOfOrNone(all) {
action= LockControls(controls=MouseKeys);
};
interpret Pointer_Accelerate+AnyOfOrNone(all) {
action= LockControls(controls=MouseKeysAccel);
};
interpret Pointer_DfltBtnNext+AnyOfOrNone(all) {
action= SetPtrDflt(affect=button,button=+1);
};
interpret Pointer_DfltBtnPrev+AnyOfOrNone(all) {
action= SetPtrDflt(affect=button,button=-1);
};
interpret AccessX_Enable+AnyOfOrNone(all) {
action= LockControls(controls=AccessXKeys);
};
interpret AccessX_Feedback_Enable+AnyOfOrNone(all) {
action= LockControls(controls=AccessXFeedback);
};
interpret RepeatKeys_Enable+AnyOfOrNone(all) {
action= LockControls(controls=RepeatKeys);
};
interpret SlowKeys_Enable+AnyOfOrNone(all) {
action= LockControls(controls=SlowKeys);
};
interpret BounceKeys_Enable+AnyOfOrNone(all) {
action= LockControls(controls=BounceKeys);
};
interpret StickyKeys_Enable+AnyOfOrNone(all) {
action= LockControls(controls=StickyKeys);
};
interpret MouseKeys_Enable+AnyOfOrNone(all) {
action= LockControls(controls=MouseKeys);
};
interpret MouseKeys_Accel_Enable+AnyOfOrNone(all) {
action= LockControls(controls=MouseKeysAccel);
};
interpret Overlay1_Enable+AnyOfOrNone(all) {
action= LockControls(controls=Overlay1);
};
interpret Overlay2_Enable+AnyOfOrNone(all) {
action= LockControls(controls=Overlay2);
};
interpret AudibleBell_Enable+AnyOfOrNone(all) {
action= LockControls(controls=AudibleBell);
};
interpret Terminate_Server+AnyOfOrNone(all) {
action= Terminate();
};
interpret Alt_L+AnyOfOrNone(all) {
action= SetMods(modifiers=Alt,clearLocks);
};
interpret Alt_R+AnyOfOrNone(all) {
action= SetMods(modifiers=Alt,clearLocks);
};
interpret Meta_L+AnyOfOrNone(all) {
action= SetMods(modifiers=Meta,clearLocks);
};
interpret Meta_R+AnyOfOrNone(all) {
action= SetMods(modifiers=Meta,clearLocks);
};
interpret Super_L+AnyOfOrNone(all) {
action= SetMods(modifiers=Super,clearLocks);
};
interpret Super_R+AnyOfOrNone(all) {
action= SetMods(modifiers=Super,clearLocks);
};
interpret Hyper_L+AnyOfOrNone(all) {
action= SetMods(modifiers=Hyper,clearLocks);
};
interpret Hyper_R+AnyOfOrNone(all) {
action= SetMods(modifiers=Hyper,clearLocks);
};
interpret Shift_L+AnyOfOrNone(all) {
action= SetMods(modifiers=Shift,clearLocks);
};
interpret XF86Switch_VT_1+AnyOfOrNone(all) {
repeat= True;
action= SwitchScreen(screen=1,!same);
};
interpret XF86Switch_VT_2+AnyOfOrNone(all) {
repeat= True;
action= SwitchScreen(screen=2,!same);
};
interpret XF86Switch_VT_3+AnyOfOrNone(all) {
repeat= True;
action= SwitchScreen(screen=3,!same);
};
interpret XF86Switch_VT_4+AnyOfOrNone(all) {
repeat= True;
action= SwitchScreen(screen=4,!same);
};
interpret XF86Switch_VT_5+AnyOfOrNone(all) {
repeat= True;
action= SwitchScreen(screen=5,!same);
};
interpret XF86Switch_VT_6+AnyOfOrNone(all) {
repeat= True;
action= SwitchScreen(screen=6,!same);
};
interpret XF86Switch_VT_7+AnyOfOrNone(all) {
repeat= True;
action= SwitchScreen(screen=7,!same);
};
interpret XF86Switch_VT_8+AnyOfOrNone(all) {
repeat= True;
action= SwitchScreen(screen=8,!same);
};
interpret XF86Switch_VT_9+AnyOfOrNone(all) {
repeat= True;
action= SwitchScreen(screen=9,!same);
};
interpret XF86Switch_VT_10+AnyOfOrNone(all) {
repeat= True;
action= SwitchScreen(screen=10,!same);
};
interpret XF86Switch_VT_11+AnyOfOrNone(all) {
repeat= True;
action= SwitchScreen(screen=11,!same);
};
interpret XF86Switch_VT_12+AnyOfOrNone(all) {
repeat= True;
action= SwitchScreen(screen=12,!same);
};
interpret XF86LogGrabInfo+AnyOfOrNone(all) {
repeat= True;
action= Private(type=0x86,data[0]=0x50,data[1]=0x72,data[2]=0x47,data[3]=0x72,data[4]=0x62,data[5]=0x73,data[6]=0x00);
};
interpret XF86LogWindowTree+AnyOfOrNone(all) {
repeat= True;
action= Private(type=0x86,data[0]=0x50,data[1]=0x72,data[2]=0x57,data[3]=0x69,data[4]=0x6e,data[5]=0x73,data[6]=0x00);
};
interpret XF86Next_VMode+AnyOfOrNone(all) {
repeat= True;
action= Private(type=0x86,data[0]=0x2b,data[1]=0x56,data[2]=0x4d,data[3]=0x6f,data[4]=0x64,data[5]=0x65,data[6]=0x00);
};
interpret XF86Prev_VMode+AnyOfOrNone(all) {
repeat= True;
action= Private(type=0x86,data[0]=0x2d,data[1]=0x56,data[2]=0x4d,data[3]=0x6f,data[4]=0x64,data[5]=0x65,data[6]=0x00);
};
interpret ISO_Level5_Shift+AnyOfOrNone(all) {
action= SetMods(modifiers=LevelFive,clearLocks);
};
interpret ISO_Level5_Latch+AnyOfOrNone(all) {
action= LatchMods(modifiers=LevelFive,clearLocks,latchToLock);
};
interpret ISO_Level5_Lock+AnyOfOrNone(all) {
action= LockMods(modifiers=LevelFive);
};
interpret Caps_Lock+AnyOfOrNone(all) {
action= LockMods(modifiers=Lock);
};
interpret Any+Exactly(Lock) {
action= LockMods(modifiers=Lock);
};
interpret Any+AnyOf(all) {
action= SetMods(modifiers=modMapMods,clearLocks);
};
group 2 = Mod5;
group 3 = Mod5;
group 4 = Mod5;
indicator "Caps Lock" {
!allowExplicit;
whichModState= locked;
modifiers= Lock;
};
indicator "Num Lock" {
!allowExplicit;
whichModState= locked;
modifiers= NumLock;
};
indicator "Scroll Lock" {
whichModState= locked;
modifiers= ScrollLock;
};
indicator "Shift Lock" {
!allowExplicit;
whichModState= locked;
modifiers= Shift;
};
indicator "Group 2" {
!allowExplicit;
groups= 0xfe;
};
indicator "Mouse Keys" {
indicatorDrivesKeyboard;
controls= mouseKeys;
};
};
xkb_symbols "pc+fr(oss)+us:2+ru(phonetic_fr):3+gr:4+inet(evdev)+capslock(escape_shifted_capslock)+compose(prsc)+" {
name[group1]="French (alt.)";
name[group2]="English (US)";
name[group3]="Russian (phonetic, French)";
name[group4]="Greek";
key <ESC> { [ Escape ] };
key <AE01> {
type[group1]= "FOUR_LEVEL",
type[group3]= "FOUR_LEVEL",
type[group4]= "FOUR_LEVEL",
symbols[Group1]= [ ampersand, 1, dead_caron, dead_ogonek ],
symbols[Group2]= [ 1, exclam ],
symbols[Group3]= [ ampersand, 1, onesuperior, exclamdown ],
symbols[Group4]= [ 1, exclam, NoSymbol, onesuperior ]
};
key <AE02> {
type[group1]= "FOUR_LEVEL",
type[group3]= "FOUR_LEVEL",
type[group4]= "FOUR_LEVEL",
symbols[Group1]= [ eacute, 2, asciitilde, Eacute ],
symbols[Group2]= [ 2, at ],
symbols[Group3]= [ eacute, 2, asciitilde, oneeighth ],
symbols[Group4]= [ 2, at, onehalf, twosuperior ]
};
key <AE03> {
type[group1]= "FOUR_LEVEL",
type[group3]= "FOUR_LEVEL",
type[group4]= "FOUR_LEVEL",
symbols[Group1]= [ quotedbl, 3, numbersign, dead_breve ],
symbols[Group2]= [ 3, numbersign ],
symbols[Group3]= [ quotedbl, 3, numbersign, sterling ],
symbols[Group4]= [ 3, numbersign, sterling, threesuperior ]
};
key <AE04> {
type[group1]= "FOUR_LEVEL",
type[group3]= "FOUR_LEVEL",
type[group4]= "FOUR_LEVEL",
symbols[Group1]= [ apostrophe, 4, braceleft, U2014 ],
symbols[Group2]= [ 4, dollar ],
symbols[Group3]= [ apostrophe, 4, braceleft, dollar ],
symbols[Group4]= [ 4, dollar, onequarter, threequarters ]
};
key <AE05> {
type[group1]= "FOUR_LEVEL",
type[group3]= "FOUR_LEVEL",
type[group4]= "FOUR_LEVEL",
symbols[Group1]= [ parenleft, 5, bracketleft, U2013 ],
symbols[Group2]= [ 5, percent ],
symbols[Group3]= [ parenleft, 5, bracketleft, threeeighths ],
symbols[Group4]= [ 5, percent, EuroSign, NoSymbol ]
};
key <AE06> {
type[group1]= "FOUR_LEVEL",
type[group3]= "FOUR_LEVEL",
type[group4]= "FOUR_LEVEL",
symbols[Group1]= [ minus, 6, bar, U2011 ],
symbols[Group2]= [ 6, asciicircum ],
symbols[Group3]= [ minus, 6, bar, fiveeighths ],
symbols[Group4]= [ 6, asciicircum, U03F0, NoSymbol ]
};
key <AE07> {
type[group1]= "FOUR_LEVEL",
type[group3]= "FOUR_LEVEL",
type[group4]= "FOUR_LEVEL",
symbols[Group1]= [ egrave, 7, grave, Egrave ],
symbols[Group2]= [ 7, ampersand ],
symbols[Group3]= [ egrave, 7, grave, seveneighths ],
symbols[Group4]= [ 7, ampersand, U03D7, U03CF ]
};
key <AE08> {
type[group1]= "FOUR_LEVEL",
type[group3]= "FOUR_LEVEL",
type[group4]= "FOUR_LEVEL",
symbols[Group1]= [ underscore, 8, backslash, trademark ],
symbols[Group2]= [ 8, asterisk ],
symbols[Group3]= [ underscore, 8, backslash, trademark ],
symbols[Group4]= [ 8, asterisk, U20AF, NoSymbol ]
};
key <AE09> {
type[group1]= "FOUR_LEVEL",
type[group3]= "FOUR_LEVEL",
symbols[Group1]= [ ccedilla, 9, asciicircum, Ccedilla ],
symbols[Group2]= [ 9, parenleft ],
symbols[Group3]= [ ccedilla, 9, asciicircum, plusminus ],
symbols[Group4]= [ 9, parenleft ]
};
key <AE10> {
type[group1]= "FOUR_LEVEL",
type[group3]= "FOUR_LEVEL",
type[group4]= "FOUR_LEVEL",
symbols[Group1]= [ agrave, 0, at, Agrave ],
symbols[Group2]= [ 0, parenright ],
symbols[Group3]= [ agrave, 0, at, degree ],
symbols[Group4]= [ 0, parenright, degree, NoSymbol ]
};
key <AE11> {
type[group1]= "FOUR_LEVEL",
type[group3]= "FOUR_LEVEL",
type[group4]= "FOUR_LEVEL",
symbols[Group1]= [ parenright, degree, bracketright, notequal ],
symbols[Group2]= [ minus, underscore ],
symbols[Group3]= [ parenright, degree, bracketright, questiondown ],
symbols[Group4]= [ minus, underscore, plusminus, NoSymbol ]
};
key <AE12> {
type[group1]= "FOUR_LEVEL",
type[group3]= "FOUR_LEVEL_SEMIALPHABETIC",
symbols[Group1]= [ equal, plus, braceright, plusminus ],
symbols[Group2]= [ equal, plus ],
symbols[Group3]= [ Cyrillic_che, Cyrillic_CHE, braceright, dead_ogonek ],
symbols[Group4]= [ equal, plus ]
};
key <BKSP> { [ BackSpace, BackSpace ] };
key <TAB> { [ Tab, ISO_Left_Tab ] };
key <AD01> {
type[group1]= "FOUR_LEVEL_ALPHABETIC",
type[group2]= "ALPHABETIC",
type[group3]= "FOUR_LEVEL_ALPHABETIC",
type[group4]= "FOUR_LEVEL",
symbols[Group1]= [ a, A, ae, AE ],
symbols[Group2]= [ q, Q ],
symbols[Group3]= [ Cyrillic_a, Cyrillic_A, ae, AE ],
symbols[Group4]= [ semicolon, colon, periodcentered, NoSymbol ]
};
key <AD02> {
type[group1]= "FOUR_LEVEL_ALPHABETIC",
type[group2]= "ALPHABETIC",
type[group3]= "FOUR_LEVEL_SEMIALPHABETIC",
type[group4]= "FOUR_LEVEL_ALPHABETIC",
symbols[Group1]= [ z, Z, acircumflex, Acircumflex ],
symbols[Group2]= [ w, W ],
symbols[Group3]= [ Cyrillic_ze, Cyrillic_ZE, guillemetleft, less ],
symbols[Group4]= [ Greek_finalsmallsigma, Greek_SIGMA, U03DB, U03DA ]
};
key <AD03> {
type[group1]= "FOUR_LEVEL_SEMIALPHABETIC",
type[group2]= "ALPHABETIC",
type[group3]= "FOUR_LEVEL_SEMIALPHABETIC",
type[group4]= "FOUR_LEVEL_SEMIALPHABETIC",
symbols[Group1]= [ e, E, EuroSign, cent ],
symbols[Group2]= [ e, E ],
symbols[Group3]= [ Cyrillic_ie, Cyrillic_IE, EuroSign, cent ],
symbols[Group4]= [ Greek_epsilon, Greek_EPSILON, EuroSign, NoSymbol ]
};
key <AD04> {
type[group1]= "FOUR_LEVEL_ALPHABETIC",
type[group2]= "ALPHABETIC",
type[group3]= "FOUR_LEVEL_SEMIALPHABETIC",
type[group4]= "FOUR_LEVEL_SEMIALPHABETIC",
symbols[Group1]= [ r, R, ecircumflex, Ecircumflex ],
symbols[Group2]= [ r, R ],
symbols[Group3]= [ Cyrillic_er, Cyrillic_ER, paragraph, registered ],
symbols[Group4]= [ Greek_rho, Greek_RHO, registered, U03F1 ]
};
key <AD05> {
type[group1]= "FOUR_LEVEL_ALPHABETIC",
type[group2]= "ALPHABETIC",
type[group3]= "FOUR_LEVEL_ALPHABETIC",
type[group4]= "ALPHABETIC",
symbols[Group1]= [ t, T, thorn, THORN ],
symbols[Group2]= [ t, T ],
symbols[Group3]= [ Cyrillic_te, Cyrillic_TE, tslash, Tslash ],
symbols[Group4]= [ Greek_tau, Greek_TAU ]
};
key <AD06> {
type[group1]= "FOUR_LEVEL_ALPHABETIC",
type[group2]= "ALPHABETIC",
type[group3]= "FOUR_LEVEL_SEMIALPHABETIC",
type[group4]= "FOUR_LEVEL_SEMIALPHABETIC",
symbols[Group1]= [ y, Y, ydiaeresis, Ydiaeresis ],
symbols[Group2]= [ y, Y ],
symbols[Group3]= [ Cyrillic_yeru, Cyrillic_YERU, leftarrow, yen ],
symbols[Group4]= [ Greek_upsilon, Greek_UPSILON, U03D2, U03D2 ]
};
key <AD07> {
type[group1]= "FOUR_LEVEL_ALPHABETIC",
type[group2]= "ALPHABETIC",
type[group3]= "FOUR_LEVEL_SEMIALPHABETIC",
type[group4]= "FOUR_LEVEL_ALPHABETIC",
symbols[Group1]= [ u, U, ucircumflex, Ucircumflex ],
symbols[Group2]= [ u, U ],
symbols[Group3]= [ Cyrillic_u, Cyrillic_U, downarrow, uparrow ],
symbols[Group4]= [ Greek_theta, Greek_THETA, U03D1, U03F4 ]
};
key <AD08> {
type[group1]= "FOUR_LEVEL_ALPHABETIC",
type[group2]= "ALPHABETIC",
type[group3]= "FOUR_LEVEL_SEMIALPHABETIC",
type[group4]= "FOUR_LEVEL_ALPHABETIC",
symbols[Group1]= [ i, I, icircumflex, Icircumflex ],
symbols[Group2]= [ i, I ],
symbols[Group3]= [ Cyrillic_i, Cyrillic_I, rightarrow, idotless ],
symbols[Group4]= [ Greek_iota, Greek_IOTA, U037B, U03FD ]
};
key <AD09> {
type[group1]= "FOUR_LEVEL_ALPHABETIC",
type[group2]= "ALPHABETIC",
type[group3]= "FOUR_LEVEL_ALPHABETIC",
type[group4]= "ALPHABETIC",
symbols[Group1]= [ o, O, oe, OE ],
symbols[Group2]= [ o, O ],
symbols[Group3]= [ Cyrillic_o, Cyrillic_O, oslash, Oslash ],
symbols[Group4]= [ Greek_omicron, Greek_OMICRON ]
};
key <AD10> {
type[group1]= "FOUR_LEVEL_ALPHABETIC",
type[group2]= "ALPHABETIC",
type[group3]= "FOUR_LEVEL_ALPHABETIC",
type[group4]= "FOUR_LEVEL_ALPHABETIC",
symbols[Group1]= [ p, P, ocircumflex, Ocircumflex ],
symbols[Group2]= [ p, P ],
symbols[Group3]= [ Cyrillic_pe, Cyrillic_PE, thorn, THORN ],
symbols[Group4]= [ Greek_pi, Greek_PI, U03E1, U03E0 ]
};
key <AD11> {
type[group1]= "FOUR_LEVEL",
type[group3]= "FOUR_LEVEL_SEMIALPHABETIC",
type[group4]= "FOUR_LEVEL",
symbols[Group1]= [ dead_circumflex, dead_diaeresis, dead_tilde, dead_abovering ],
symbols[Group2]= [ bracketleft, braceleft ],
symbols[Group3]= [ Cyrillic_sha, Cyrillic_SHA, dead_diaeresis, dead_abovering ],
symbols[Group4]= [ bracketleft, braceleft, dead_tilde, dead_macron ]
};
key <AD12> {
type[group1]= "FOUR_LEVEL",
type[group3]= "FOUR_LEVEL_SEMIALPHABETIC",
type[group4]= "FOUR_LEVEL",
symbols[Group1]= [ dollar, sterling, oslash, Oslash ],
symbols[Group2]= [ bracketright, braceright ],
symbols[Group3]= [ Cyrillic_shcha, Cyrillic_SHCHA, currency, dead_macron ],
symbols[Group4]= [ bracketright, braceright, dead_iota, dead_breve ]
};
key <RTRN> { [ Return ] };
key <LCTL> { [ Control_L ] };
key <AC01> {
type[group1]= "FOUR_LEVEL_ALPHABETIC",
type[group2]= "ALPHABETIC",
type[group3]= "FOUR_LEVEL_SEMIALPHABETIC",
type[group4]= "ALPHABETIC",
symbols[Group1]= [ q, Q, adiaeresis, Adiaeresis ],
symbols[Group2]= [ a, A ],
symbols[Group3]= [ Cyrillic_ya, Cyrillic_YA, at, Greek_OMEGA ],
symbols[Group4]= [ Greek_alpha, Greek_ALPHA ]
};
key <AC02> {
type[group1]= "FOUR_LEVEL_SEMIALPHABETIC",
type[group2]= "ALPHABETIC",
type[group3]= "FOUR_LEVEL_ALPHABETIC",
type[group4]= "ALPHABETIC",
symbols[Group1]= [ s, S, ssharp, doublelowquotemark ],
symbols[Group2]= [ s, S ],
symbols[Group3]= [ Cyrillic_es, Cyrillic_ES, ssharp, U1E9E ],
symbols[Group4]= [ Greek_sigma, Greek_SIGMA ]
};
key <AC03> {
type[group1]= "FOUR_LEVEL_ALPHABETIC",
type[group2]= "ALPHABETIC",
type[group3]= "FOUR_LEVEL_ALPHABETIC",
type[group4]= "FOUR_LEVEL_SEMIALPHABETIC",
symbols[Group1]= [ d, D, ediaeresis, Ediaeresis ],
symbols[Group2]= [ d, D ],
symbols[Group3]= [ Cyrillic_de, Cyrillic_DE, eth, ETH ],
symbols[Group4]= [ Greek_delta, Greek_DELTA, downarrow, uparrow ]
};
key <AC04> {
type[group1]= "FOUR_LEVEL_SEMIALPHABETIC",
type[group2]= "ALPHABETIC",
type[group3]= "FOUR_LEVEL_SEMIALPHABETIC",
type[group4]= "FOUR_LEVEL_ALPHABETIC",
symbols[Group1]= [ f, F, leftsinglequotemark, singlelowquotemark ],
symbols[Group2]= [ f, F ],
symbols[Group3]= [ Cyrillic_ef, Cyrillic_EF, dstroke, ordfeminine ],
symbols[Group4]= [ Greek_phi, Greek_PHI, U03D5, Greek_PHI ]
};
key <AC05> {
type[group1]= "FOUR_LEVEL_SEMIALPHABETIC",
type[group2]= "ALPHABETIC",
type[group3]= "FOUR_LEVEL_ALPHABETIC",
type[group4]= "FOUR_LEVEL_ALPHABETIC",
symbols[Group1]= [ g, G, rightsinglequotemark, yen ],
symbols[Group2]= [ g, G ],
symbols[Group3]= [ Cyrillic_ghe, Cyrillic_GHE, eng, ENG ],
symbols[Group4]= [ Greek_gamma, Greek_GAMMA, U03DD, U03DC ]
};
key <AC06> {
type[group1]= "FOUR_LEVEL_ALPHABETIC",
type[group2]= "ALPHABETIC",
type[group3]= "FOUR_LEVEL_ALPHABETIC",
type[group4]= "ALPHABETIC",
symbols[Group1]= [ h, H, eth, ETH ],
symbols[Group2]= [ h, H ],
symbols[Group3]= [ Cyrillic_ha, Cyrillic_HA, hstroke, Hstroke ],
symbols[Group4]= [ Greek_eta, Greek_ETA ]
};
key <AC07> {
type[group1]= "FOUR_LEVEL_ALPHABETIC",
type[group2]= "ALPHABETIC",
type[group3]= "FOUR_LEVEL_SEMIALPHABETIC",
type[group4]= "FOUR_LEVEL_ALPHABETIC",
symbols[Group1]= [ j, J, udiaeresis, Udiaeresis ],
symbols[Group2]= [ j, J ],
symbols[Group3]= [ Cyrillic_shorti, Cyrillic_SHORTI, dead_hook, dead_horn ],
symbols[Group4]= [ Greek_xi, Greek_XI, U037C, U03FE ]
};
key <AC08> {
type[group1]= "FOUR_LEVEL_ALPHABETIC",
type[group2]= "ALPHABETIC",
type[group3]= "FOUR_LEVEL_SEMIALPHABETIC",
type[group4]= "FOUR_LEVEL_ALPHABETIC",
symbols[Group1]= [ k, K, idiaeresis, Idiaeresis ],
symbols[Group2]= [ k, K ],
symbols[Group3]= [ Cyrillic_ka, Cyrillic_KA, kra, ampersand ],
symbols[Group4]= [ Greek_kappa, Greek_KAPPA, U03DF, U03DE ]
};
key <AC09> {
type[group1]= "FOUR_LEVEL_ALPHABETIC",
type[group2]= "ALPHABETIC",
type[group3]= "FOUR_LEVEL_ALPHABETIC",
type[group4]= "FOUR_LEVEL_ALPHABETIC",
symbols[Group1]= [ l, L, U0140, U013F ],
symbols[Group2]= [ l, L ],
symbols[Group3]= [ Cyrillic_el, Cyrillic_EL, lstroke, Lstroke ],
symbols[Group4]= [ Greek_lamda, Greek_LAMDA, U03F2, U03F9 ]
};
key <AC10> {
type[group1]= "FOUR_LEVEL_ALPHABETIC",
type[group3]= "FOUR_LEVEL_SEMIALPHABETIC",
type[group4]= "FOUR_LEVEL",
symbols[Group1]= [ m, M, odiaeresis, Odiaeresis ],
symbols[Group2]= [ semicolon, colon ],
symbols[Group3]= [ Cyrillic_em, Cyrillic_EM, mu, ordmasculine ],
symbols[Group4]= [ dead_acute, dead_diaeresis, dead_acute, dead_abovecomma ]
};
key <AC11> {
type[group1]= "FOUR_LEVEL",
type[group3]= "FOUR_LEVEL",
type[group4]= "FOUR_LEVEL",
symbols[Group1]= [ ugrave, percent, dead_acute, Ugrave ],
symbols[Group2]= [ apostrophe, quotedbl ],
symbols[Group3]= [ ugrave, percent, asciicircum, caron ],
symbols[Group4]= [ apostrophe, quotedbl, dead_grave, dead_abovereversedcomma ]
};
key <TLDE> {
type[group1]= "FOUR_LEVEL",
type[group3]= "FOUR_LEVEL_SEMIALPHABETIC",
symbols[Group1]= [ grave, twosuperior, NoSymbol, NoSymbol ],
symbols[Group2]= [ NoSymbol, NoSymbol ],
symbols[Group3]= [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ]
};
key <LFSH> {
type= "TWO_LEVEL",
symbols[Group1]= [ Shift_L, ISO_Prev_Group ]
};
key <BKSL> {
type[group1]= "FOUR_LEVEL",
type[group3]= "FOUR_LEVEL_SEMIALPHABETIC",
symbols[Group1]= [ asterisk, mu, dead_grave, dead_macron ],
symbols[Group2]= [ backslash, bar ],
symbols[Group3]= [ Cyrillic_e, Cyrillic_E, dead_grave, dead_breve ],
symbols[Group4]= [ backslash, bar ]
};
key <AB01> {
type[group1]= "FOUR_LEVEL_SEMIALPHABETIC",
type[group2]= "ALPHABETIC",
type[group3]= "FOUR_LEVEL_ALPHABETIC",
type[group4]= "FOUR_LEVEL_ALPHABETIC",
symbols[Group1]= [ w, W, guillemetleft, leftdoublequotemark ],
symbols[Group2]= [ z, Z ],
symbols[Group3]= [ Cyrillic_ve, Cyrillic_VE, lstroke, Lstroke ],
symbols[Group4]= [ Greek_zeta, Greek_ZETA, U037D, U03FF ]
};
key <AB02> {
type[group1]= "FOUR_LEVEL_SEMIALPHABETIC",
type[group2]= "ALPHABETIC",
type[group3]= "FOUR_LEVEL_SEMIALPHABETIC",
type[group4]= "FOUR_LEVEL_SEMIALPHABETIC",
symbols[Group1]= [ x, X, guillemetright, rightdoublequotemark ],
symbols[Group2]= [ x, X ],
symbols[Group3]= [ Cyrillic_softsign, Cyrillic_SOFTSIGN, guillemetright, greater ],
symbols[Group4]= [ Greek_chi, Greek_CHI, rightarrow, leftarrow ]
};
key <AB03> {
type[group1]= "FOUR_LEVEL_SEMIALPHABETIC",
type[group2]= "ALPHABETIC",
type[group3]= "FOUR_LEVEL_SEMIALPHABETIC",
type[group4]= "FOUR_LEVEL_SEMIALPHABETIC",
symbols[Group1]= [ c, C, copyright, registered ],
symbols[Group2]= [ c, C ],
symbols[Group3]= [ Cyrillic_tse, Cyrillic_TSE, cent, copyright ],
symbols[Group4]= [ Greek_psi, Greek_PSI, copyright, NoSymbol ]
};
key <AB04> {
type[group1]= "FOUR_LEVEL_SEMIALPHABETIC",
type[group2]= "ALPHABETIC",
type[group3]= "FOUR_LEVEL_SEMIALPHABETIC",
type[group4]= "FOUR_LEVEL_SEMIALPHABETIC",
symbols[Group1]= [ v, V, U202F, leftarrow ],
symbols[Group2]= [ v, V ],
symbols[Group3]= [ Cyrillic_zhe, Cyrillic_ZHE, doublelowquotemark, singlelowquotemark ],
symbols[Group4]= [ Greek_omega, Greek_OMEGA, U03D6, NoSymbol ]
};
key <AB05> {
type[group1]= "FOUR_LEVEL_SEMIALPHABETIC",
type[group2]= "ALPHABETIC",
type[group3]= "FOUR_LEVEL_SEMIALPHABETIC",
type[group4]= "FOUR_LEVEL_ALPHABETIC",
symbols[Group1]= [ b, B, downarrow, uparrow ],
symbols[Group2]= [ b, B ],
symbols[Group3]= [ Cyrillic_be, Cyrillic_BE, leftdoublequotemark, leftsinglequotemark ],
symbols[Group4]= [ Greek_beta, Greek_BETA, U03D0, NoSymbol ]
};
key <AB06> {
type[group1]= "FOUR_LEVEL_SEMIALPHABETIC",
type[group2]= "ALPHABETIC",
type[group3]= "FOUR_LEVEL_SEMIALPHABETIC",
type[group4]= "FOUR_LEVEL_SEMIALPHABETIC",
symbols[Group1]= [ n, N, notsign, rightarrow ],
symbols[Group2]= [ n, N ],
symbols[Group3]= [ Cyrillic_en, Cyrillic_EN, rightdoublequotemark, rightsinglequotemark ],
symbols[Group4]= [ Greek_nu, Greek_NU, U0374, U0375 ]
};
key <AB07> {
type[group1]= "FOUR_LEVEL",
type[group2]= "ALPHABETIC",
type[group3]= "FOUR_LEVEL",
type[group4]= "FOUR_LEVEL_ALPHABETIC",
symbols[Group1]= [ comma, question, questiondown, U2026 ],
symbols[Group2]= [ m, M ],
symbols[Group3]= [ comma, question, acute, doubleacute ],
symbols[Group4]= [ Greek_mu, Greek_MU, U03FB, U03FA ]
};
key <AB08> {
type[group1]= "FOUR_LEVEL",
type[group3]= "FOUR_LEVEL",
type[group4]= "FOUR_LEVEL",
symbols[Group1]= [ semicolon, period, multiply, U22C5 ],
symbols[Group2]= [ comma, less ],
symbols[Group3]= [ semicolon, period, U2022, multiply ],
symbols[Group4]= [ comma, less, guillemetleft, NoSymbol ]
};
key <AB09> {
type[group1]= "FOUR_LEVEL",
type[group3]= "FOUR_LEVEL",
type[group4]= "FOUR_LEVEL",
symbols[Group1]= [ colon, slash, division, U2215 ],
symbols[Group2]= [ period, greater ],
symbols[Group3]= [ colon, slash, periodcentered, division ],
symbols[Group4]= [ period, greater, guillemetright, periodcentered ]
};
key <AB10> {
type[group1]= "FOUR_LEVEL",
type[group3]= "FOUR_LEVEL",
symbols[Group1]= [ exclam, section, exclamdown, U2212 ],
symbols[Group2]= [ slash, question ],
symbols[Group3]= [ exclam, section, dead_belowdot, dead_abovedot ],
symbols[Group4]= [ slash, question ]
};
key <RTSH> {
type= "TWO_LEVEL",
symbols[Group1]= [ Shift_R, ISO_Next_Group ]
};
key <KPMU> {
type= "CTRL+ALT",
symbols[Group1]= [ KP_Multiply, U22C5, 0x10000d7, VoidSymbol, XF86ClearGrab ]
};
key <LALT> { [ Alt_L, Meta_L ] };
key <SPCE> {
type= "EIGHT_LEVEL",
symbols[Group1]= [ space, space, space, nobreakspace, space, U202F, NoSymbol, NoSymbol ]
};
key <CAPS> {
type= "TWO_LEVEL",
symbols[Group1]= [ Escape, Caps_Lock ],
actions[Group1]= [ NoAction(), LockMods(modifiers=Lock) ]
};
key <FK01> {
type= "CTRL+ALT",
symbols[Group1]= [ F1, F1, F1, F1, XF86Switch_VT_1 ]
};
key <FK02> {
type= "CTRL+ALT",
symbols[Group1]= [ F2, F2, F2, F2, XF86Switch_VT_2 ]
};
key <FK03> {
type= "CTRL+ALT",
symbols[Group1]= [ F3, F3, F3, F3, XF86Switch_VT_3 ]
};
key <FK04> {
type= "CTRL+ALT",
symbols[Group1]= [ F4, F4, F4, F4, XF86Switch_VT_4 ]
};
key <FK05> {
type= "CTRL+ALT",
symbols[Group1]= [ F5, F5, F5, F5, XF86Switch_VT_5 ]
};
key <FK06> {
type= "CTRL+ALT",
symbols[Group1]= [ F6, F6, F6, F6, XF86Switch_VT_6 ]
};
key <FK07> {
type= "CTRL+ALT",
symbols[Group1]= [ F7, F7, F7, F7, XF86Switch_VT_7 ]
};
key <FK08> {
type= "CTRL+ALT",
symbols[Group1]= [ F8, F8, F8, F8, XF86Switch_VT_8 ]
};
key <FK09> {
type= "CTRL+ALT",
symbols[Group1]= [ F9, F9, F9, F9, XF86Switch_VT_9 ]
};
key <FK10> {
type= "CTRL+ALT",
symbols[Group1]= [ F10, F10, F10, F10, XF86Switch_VT_10 ]
};
key <NMLK> { [ Num_Lock ] };
key <SCLK> { [ Scroll_Lock ] };
key <KP7> {
type= "FOUR_LEVEL_MIXED_KEYPAD",
symbols[Group1]= [ KP_Home, KP_7, U2196, U21D6 ]
};
key <KP8> {
type= "FOUR_LEVEL_MIXED_KEYPAD",
symbols[Group1]= [ KP_Up, KP_8, U2191, U21D1 ]
};
key <KP9> {
type= "FOUR_LEVEL_MIXED_KEYPAD",
symbols[Group1]= [ KP_Prior, KP_9, U2197, U21D7 ]
};
key <KPSU> {
type= "CTRL+ALT",
symbols[Group1]= [ KP_Subtract, U2212, U2212, VoidSymbol, XF86Prev_VMode ]
};
key <KP4> {
type= "FOUR_LEVEL_MIXED_KEYPAD",
symbols[Group1]= [ KP_Left, KP_4, U2190, U21D0 ]
};
key <KP5> {
type= "FOUR_LEVEL_MIXED_KEYPAD",
symbols[Group1]= [ KP_Begin, KP_5, U2194, U21D4 ]
};
key <KP6> {
type= "FOUR_LEVEL_MIXED_KEYPAD",
symbols[Group1]= [ KP_Right, KP_6, U2192, U21D2 ]
};
key <KPAD> {
type= "CTRL+ALT",
symbols[Group1]= [ KP_Add, 0x100002b, 0x100002b, VoidSymbol, XF86Next_VMode ]
};
key <KP1> {
type= "FOUR_LEVEL_MIXED_KEYPAD",
symbols[Group1]= [ KP_End, KP_1, U2199, U21D9 ]
};
key <KP2> {
type= "FOUR_LEVEL_MIXED_KEYPAD",
symbols[Group1]= [ KP_Down, KP_2, U2193, U21D3 ]
};
key <KP3> {
type= "FOUR_LEVEL_MIXED_KEYPAD",
symbols[Group1]= [ KP_Next, KP_3, U2198, U21D8 ]
};
key <KP0> {
type= "FOUR_LEVEL_MIXED_KEYPAD",
symbols[Group1]= [ KP_Insert, KP_0, U2195, U21D5 ]
};
key <KPDL> {
type[group1]= "FOUR_LEVEL_MIXED_KEYPAD",
type[group2]= "FOUR_LEVEL_KEYPAD",
type[group3]= "FOUR_LEVEL_KEYPAD",
type[group4]= "KEYPAD",
symbols[Group1]= [ KP_Delete, period, comma, U202F ],
symbols[Group2]= [ KP_Delete, period, comma, U202F ],
symbols[Group3]= [ KP_Delete, period, comma, U202F ],
symbols[Group4]= [ KP_Delete, KP_Separator ]
};
key <LVL3> { [ ISO_Level3_Shift ] };
key <LSGT> {
type[group1]= "FOUR_LEVEL",
type[group2]= "FOUR_LEVEL",
symbols[Group1]= [ less, greater, lessthanequal, greaterthanequal ],
symbols[Group2]= [ less, greater, lessthanequal, greaterthanequal ],
symbols[Group3]= [ bar, brokenbar ],
symbols[Group4]= [ guillemetleft, guillemetright ]
};
key <FK11> {
type= "CTRL+ALT",
symbols[Group1]= [ F11, F11, F11, F11, XF86Switch_VT_11 ]
};
key <FK12> {
type= "CTRL+ALT",
symbols[Group1]= [ F12, F12, F12, F12, XF86Switch_VT_12 ]
};
key <KATA> { [ Katakana ] };
key <HIRA> { [ Hiragana ] };
key <HENK> { [ Henkan_Mode ] };
key <HKTG> { [ Hiragana_Katakana ] };
key <MUHE> { [ Muhenkan ] };
key <KPEN> { [ KP_Enter ] };
key <RCTL> { [ Control_R ] };
key <KPDV> {
type= "CTRL+ALT",
symbols[Group1]= [ KP_Divide, U2215, 0x10000f7, VoidSymbol, XF86Ungrab ]
};
key <PRSC> {
type= "TWO_LEVEL",
symbols[Group1]= [ Multi_key, Multi_key ]
};
key <RALT> {
type= "ONE_LEVEL",
symbols[Group1]= [ ISO_Level3_Shift ],
symbols[Group2]= [ ISO_Level3_Shift ],
symbols[Group3]= [ ISO_Level3_Shift ],
symbols[Group4]= [ ISO_Level3_Shift ]
};
key <LNFD> { [ Linefeed ] };
key <HOME> { [ Home ] };
key <UP> { [ Up ] };
key <PGUP> { [ Prior ] };
key <LEFT> { [ Left ] };
key <RGHT> { [ Right ] };
key <END> { [ End ] };
key <DOWN> { [ Down ] };
key <PGDN> { [ Next ] };
key <INS> { [ Insert ] };
key <DELE> { [ Delete ] };
key <MUTE> { [ XF86AudioMute ] };
key <VOL-> { [ XF86AudioLowerVolume ] };
key <VOL+> { [ XF86AudioRaiseVolume ] };
key <POWR> { [ XF86PowerOff ] };
key <KPEQ> { [ KP_Equal ] };
key <I126> { [ plusminus ] };
key <PAUS> {
type= "PC_CONTROL_LEVEL2",
symbols[Group1]= [ Pause, Break ]
};
key <I128> { [ XF86LaunchA ] };
key <I129> { [ KP_Decimal, KP_Decimal ] };
key <HNGL> { [ Hangul ] };
key <HJCV> { [ Hangul_Hanja ] };
key <LWIN> { [ Super_L ] };
key <RWIN> { [ Super_R ] };
key <COMP> { [ Menu ] };
key <STOP> { [ Cancel ] };
key <AGAI> { [ Redo ] };
key <PROP> { [ SunProps ] };
key <UNDO> { [ Undo ] };
key <FRNT> { [ SunFront ] };
key <COPY> { [ XF86Copy ] };
key <OPEN> { [ XF86Open ] };
key <PAST> { [ XF86Paste ] };
key <FIND> { [ Find ] };
key <CUT> { [ XF86Cut ] };
key <HELP> { [ Help ] };
key <I147> { [ XF86MenuKB ] };
key <I148> { [ XF86Calculator ] };
key <I150> { [ XF86Sleep ] };
key <I151> { [ XF86WakeUp ] };
key <I152> { [ XF86Explorer ] };
key <I153> { [ XF86Send ] };
key <I155> { [ XF86Xfer ] };
key <I156> { [ XF86Launch1 ] };
key <I157> { [ XF86Launch2 ] };
key <I158> { [ XF86WWW ] };
key <I159> { [ XF86DOS ] };
key <I160> { [ XF86ScreenSaver ] };
key <I161> { [ XF86RotateWindows ] };
key <I162> { [ XF86TaskPane ] };
key <I163> { [ XF86Mail ] };
key <I164> { [ XF86Favorites ] };
key <I165> { [ XF86MyComputer ] };
key <I166> { [ XF86Back ] };
key <I167> { [ XF86Forward ] };
key <I169> { [ XF86Eject ] };
key <I170> { [ XF86Eject ] };
key <I171> { [ XF86AudioNext ] };
key <I172> { [ XF86AudioPlay, XF86AudioPause ] };
key <I173> { [ XF86AudioPrev ] };
key <I174> { [ XF86AudioStop, XF86Eject ] };
key <I175> { [ XF86AudioRecord ] };
key <I176> { [ XF86AudioRewind ] };
key <I177> { [ XF86Phone ] };
key <I179> { [ XF86Tools ] };
key <I180> { [ XF86HomePage ] };
key <I181> { [ XF86Reload ] };
key <I182> { [ XF86Close ] };
key <I185> { [ XF86ScrollUp ] };
key <I186> { [ XF86ScrollDown ] };
key <I187> { [ parenleft ] };
key <I188> { [ parenright ] };
key <I189> { [ XF86New ] };
key <I190> { [ Redo ] };
key <FK13> { [ XF86Tools ] };
key <FK14> { [ XF86Launch5 ] };
key <FK15> { [ XF86Launch6 ] };
key <FK16> { [ XF86Launch7 ] };
key <FK17> { [ XF86Launch8 ] };
key <FK18> { [ XF86Launch9 ] };
key <FK20> { [ XF86AudioMicMute ] };
key <FK21> { [ XF86TouchpadToggle ] };
key <FK22> { [ XF86TouchpadOn ] };
key <FK23> { [ XF86TouchpadOff ] };
key <LVL5> { [ ISO_Level5_Shift ] };
key <ALT> { [ NoSymbol, Alt_L ] };
key <META> { [ NoSymbol, Meta_L ] };
key <SUPR> { [ NoSymbol, Super_L ] };
key <HYPR> { [ NoSymbol, Hyper_L ] };
key <I208> { [ XF86AudioPlay ] };
key <I209> { [ XF86AudioPause ] };
key <I210> { [ XF86Launch3 ] };
key <I211> { [ XF86Launch4 ] };
key <I212> { [ XF86LaunchB ] };
key <I213> { [ XF86Suspend ] };
key <I214> { [ XF86Close ] };
key <I215> { [ XF86AudioPlay ] };
key <I216> { [ XF86AudioForward ] };
key <I218> { [ Print ] };
key <I220> { [ XF86WebCam ] };
key <I221> { [ XF86AudioPreset ] };
key <I223> { [ XF86Mail ] };
key <I224> { [ XF86Messenger ] };
key <I225> { [ XF86Search ] };
key <I226> { [ XF86Go ] };
key <I227> { [ XF86Finance ] };
key <I228> { [ XF86Game ] };
key <I229> { [ XF86Shop ] };
key <I231> { [ Cancel ] };
key <I232> { [ XF86MonBrightnessDown ] };
key <I233> { [ XF86MonBrightnessUp ] };
key <I234> { [ XF86AudioMedia ] };
key <I235> { [ XF86Display ] };
key <I236> { [ XF86KbdLightOnOff ] };
key <I237> { [ XF86KbdBrightnessDown ] };
key <I238> { [ XF86KbdBrightnessUp ] };
key <I239> { [ XF86Send ] };
key <I240> { [ XF86Reply ] };
key <I241> { [ XF86MailForward ] };
key <I242> { [ XF86Save ] };
key <I243> { [ XF86Documents ] };
key <I244> { [ XF86Battery ] };
key <I245> { [ XF86Bluetooth ] };
key <I246> { [ XF86WLAN ] };
key <I247> { [ XF86UWB ] };
key <I249> { [ XF86Next_VMode ] };
key <I250> { [ XF86Prev_VMode ] };
key <I251> { [ XF86MonBrightnessCycle ] };
key <I252> { [ XF86BrightnessAuto ] };
key <I253> { [ XF86DisplayOff ] };
key <I254> { [ XF86WWAN ] };
key <I255> { [ XF86RFKill ] };
modifier_map Control { <LCTL> };
modifier_map Shift { <LFSH> };
modifier_map Shift { <RTSH> };
modifier_map Mod1 { <LALT> };
modifier_map Lock { <CAPS> };
modifier_map Mod2 { <NMLK> };
modifier_map Mod5 { <LVL3> };
modifier_map Control { <RCTL> };
modifier_map Mod4 { <LWIN> };
modifier_map Mod4 { <RWIN> };
modifier_map Mod3 { <LVL5> };
modifier_map Mod1 { <ALT> };
modifier_map Mod1 { <META> };
modifier_map Mod4 { <SUPR> };
modifier_map Mod4 { <HYPR> };
};
xkb_geometry "pc(pc104)" {
width= 470;
height= 180;
alias <AC00> = <CAPS>;
alias <AA00> = <LCTL>;
baseColor= "white";
labelColor= "black";
xfont= "-*-helvetica-medium-r-normal--*-120-*-*-*-*-iso8859-1";
description= "Generic 104-key PC";
shape "NORM" {
corner= 1,
{ [ 18, 18 ] },
{ [ 2, 1 ], [ 16, 16 ] }
};
shape "BKSP" {
corner= 1,
{ [ 38, 18 ] },
{ [ 2, 1 ], [ 36, 16 ] }
};
shape "TABK" {
corner= 1,
{ [ 28, 18 ] },
{ [ 2, 1 ], [ 26, 16 ] }
};
shape "BKSL" {
corner= 1,
{ [ 28, 18 ] },
{ [ 2, 1 ], [ 26, 16 ] }
};
shape "RTRN" {
corner= 1,
{ [ 42, 18 ] },
{ [ 2, 1 ], [ 40, 16 ] }
};
shape "CAPS" {
corner= 1,
{ [ 33, 18 ] },
{ [ 2, 1 ], [ 31, 16 ] }
};
shape "LFSH" {
corner= 1,
{ [ 42, 18 ] },
{ [ 2, 1 ], [ 40, 16 ] }
};
shape "RTSH" {
corner= 1,
{ [ 52, 18 ] },
{ [ 2, 1 ], [ 50, 16 ] }
};
shape "MODK" {
corner= 1,
{ [ 27, 18 ] },
{ [ 2, 1 ], [ 25, 16 ] }
};
shape "SMOD" {
corner= 1,
{ [ 23, 18 ] },
{ [ 2, 1 ], [ 21, 16 ] }
};
shape "SPCE" {
corner= 1,
{ [ 113, 18 ] },
{ [ 2, 1 ], [ 111, 16 ] }
};
shape "KP0" {
corner= 1,
{ [ 37, 18 ] },
{ [ 2, 1 ], [ 35, 16 ] }
};
shape "KPAD" {
corner= 1,
{ [ 18, 37 ] },
{ [ 2, 1 ], [ 16, 35 ] }
};
shape "LEDS" { { [ 75, 20 ] } };
shape "LED" { { [ 5, 1 ] } };
section "Function" {
key.color= "grey20";
priority= 7;
top= 22;
left= 19;
width= 351;
height= 19;
row {
top= 1;
left= 1;
keys {
{ <ESC>, "NORM", 1 },
{ <FK01>, "NORM", 20, color="white" },
{ <FK02>, "NORM", 1, color="white" },
{ <FK03>, "NORM", 1, color="white" },
{ <FK04>, "NORM", 1, color="white" },
{ <FK05>, "NORM", 11, color="white" },
{ <FK06>, "NORM", 1, color="white" },
{ <FK07>, "NORM", 1, color="white" },
{ <FK08>, "NORM", 1, color="white" },
{ <FK09>, "NORM", 11, color="white" },
{ <FK10>, "NORM", 1, color="white" },
{ <FK11>, "NORM", 1, color="white" },
{ <FK12>, "NORM", 1, color="white" },
{ <PRSC>, "NORM", 8, color="white" },
{ <SCLK>, "NORM", 1, color="white" },
{ <PAUS>, "NORM", 1, color="white" }
};
};
}; // End of "Function" section
section "Alpha" {
key.color= "white";
priority= 8;
top= 61;
left= 19;
width= 287;
height= 95;
row {
top= 1;
left= 1;
keys {
{ <TLDE>, "NORM", 1 }, { <AE01>, "NORM", 1 },
{ <AE02>, "NORM", 1 }, { <AE03>, "NORM", 1 },
{ <AE04>, "NORM", 1 }, { <AE05>, "NORM", 1 },
{ <AE06>, "NORM", 1 }, { <AE07>, "NORM", 1 },
{ <AE08>, "NORM", 1 }, { <AE09>, "NORM", 1 },
{ <AE10>, "NORM", 1 }, { <AE11>, "NORM", 1 },
{ <AE12>, "NORM", 1 },
{ <BKSP>, "BKSP", 1, color="grey20" }
};
};
row {
top= 20;
left= 1;
keys {
{ <TAB>, "TABK", 1, color="grey20" },
{ <AD01>, "NORM", 1 }, { <AD02>, "NORM", 1 },
{ <AD03>, "NORM", 1 }, { <AD04>, "NORM", 1 },
{ <AD05>, "NORM", 1 }, { <AD06>, "NORM", 1 },
{ <AD07>, "NORM", 1 }, { <AD08>, "NORM", 1 },
{ <AD09>, "NORM", 1 }, { <AD10>, "NORM", 1 },
{ <AD11>, "NORM", 1 }, { <AD12>, "NORM", 1 },
{ <BKSL>, "BKSL", 1 }
};
};
row {
top= 39;
left= 1;
keys {
{ <CAPS>, "CAPS", 1, color="grey20" },
{ <AC01>, "NORM", 1 }, { <AC02>, "NORM", 1 },
{ <AC03>, "NORM", 1 }, { <AC04>, "NORM", 1 },
{ <AC05>, "NORM", 1 }, { <AC06>, "NORM", 1 },
{ <AC07>, "NORM", 1 }, { <AC08>, "NORM", 1 },
{ <AC09>, "NORM", 1 }, { <AC10>, "NORM", 1 },
{ <AC11>, "NORM", 1 },
{ <RTRN>, "RTRN", 1, color="grey20" }
};
};
row {
top= 58;
left= 1;
keys {
{ <LFSH>, "LFSH", 1, color="grey20" },
{ <AB01>, "NORM", 1 }, { <AB02>, "NORM", 1 },
{ <AB03>, "NORM", 1 }, { <AB04>, "NORM", 1 },
{ <AB05>, "NORM", 1 }, { <AB06>, "NORM", 1 },
{ <AB07>, "NORM", 1 }, { <AB08>, "NORM", 1 },
{ <AB09>, "NORM", 1 }, { <AB10>, "NORM", 1 },
{ <RTSH>, "RTSH", 1, color="grey20" }
};
};
row {
top= 77;
left= 1;
keys {
{ <LCTL>, "MODK", 1, color="grey20" },
{ <LWIN>, "SMOD", 1, color="grey20" },
{ <LALT>, "SMOD", 1, color="grey20" },
{ <SPCE>, "SPCE", 1 },
{ <RALT>, "SMOD", 1, color="grey20" },
{ <RWIN>, "SMOD", 1, color="grey20" },
{ <MENU>, "SMOD", 1, color="grey20" },
{ <RCTL>, "SMOD", 1, color="grey20" }
};
};
}; // End of "Alpha" section
section "Editing" {
key.color= "grey20";
priority= 9;
top= 61;
left= 312;
width= 58;
height= 95;
row {
top= 1;
left= 1;
keys {
{ <INS>, "NORM", 1 }, { <HOME>, "NORM", 1 },
{ <PGUP>, "NORM", 1 }
};
};
row {
top= 20;
left= 1;
keys {
{ <DELE>, "NORM", 1 }, { <END>, "NORM", 1 },
{ <PGDN>, "NORM", 1 }
};
};
row {
top= 58;
left= 20;
keys {
{ <UP>, "NORM", 1 }
};
};
row {
top= 77;
left= 1;
keys {
{ <LEFT>, "NORM", 1 }, { <DOWN>, "NORM", 1 },
{ <RGHT>, "NORM", 1 }
};
};
}; // End of "Editing" section
section "Keypad" {
key.color= "grey20";
priority= 10;
top= 61;
left= 376;
width= 77;
height= 95;
row {
top= 1;
left= 1;
keys {
{ <NMLK>, "NORM", 1 }, { <KPDV>, "NORM", 1 },
{ <KPMU>, "NORM", 1 }, { <KPSU>, "NORM", 1 }
};
};
row {
top= 20;
left= 1;
keys {
{ <KP7>, "NORM", 1, color="white" },
{ <KP8>, "NORM", 1, color="white" },
{ <KP9>, "NORM", 1, color="white" },
{ <KPAD>, "KPAD", 1 }
};
};
row {
top= 39;
left= 1;
keys {
{ <KP4>, "NORM", 1, color="white" },
{ <KP5>, "NORM", 1, color="white" },
{ <KP6>, "NORM", 1, color="white" }
};
};
row {
top= 58;
left= 1;
keys {
{ <KP1>, "NORM", 1, color="white" },
{ <KP2>, "NORM", 1, color="white" },
{ <KP3>, "NORM", 1, color="white" },
{ <KPEN>, "KPAD", 1 }
};
};
row {
top= 77;
left= 1;
keys {
{ <KP0>, "KP0", 1, color="white" },
{ <KPDL>, "NORM", 1, color="white" }
};
};
}; // End of "Keypad" section
solid "LedPanel" {
top= 22;
left= 377;
priority= 0;
color= "grey10";
shape= "LEDS";
};
indicator "Num Lock" {
top= 37;
left= 382;
priority= 1;
onColor= "green";
offColor= "green30";
shape= "LED";
};
indicator "Caps Lock" {
top= 37;
left= 407;
priority= 2;
onColor= "green";
offColor= "green30";
shape= "LED";
};
indicator "Scroll Lock" {
top= 37;
left= 433;
priority= 3;
onColor= "green";
offColor= "green30";
shape= "LED";
};
text "NumLockLabel" {
top= 25;
left= 378;
priority= 4;
width= 19.8;
height= 10;
XFont= "-*-helvetica-medium-r-normal--*-120-*-*-*-*-iso8859-1";
text= "Num\nLock";
};
text "CapsLockLabel" {
top= 25;
left= 403;
priority= 5;
width= 26.4;
height= 10;
XFont= "-*-helvetica-medium-r-normal--*-120-*-*-*-*-iso8859-1";
text= "Caps\nLock";
};
text "ScrollLockLabel" {
top= 25;
left= 428;
priority= 6;
width= 39.6;
height= 10;
XFont= "-*-helvetica-medium-r-normal--*-120-*-*-*-*-iso8859-1";
text= "Scroll\nLock";
};
};
};
Fantastic. I'll open a PR at sxhkd then. Thanks.
Yes, that is how I've patched my sxhkd in the meantime. Is that the correct fix? What if the user is actually using Mod5 for other purposes?
Hi, I've hit the same issue with sxhkd after an upgrade to xkeyboard-config and done some investigating. I am posting my findings here because I need help understanding them and I don't expect sxhkd developers to be responsive.
sxhkd is a simple X hotkey daemon that parses a configuration file containing lines like
super + z
wm go back
super + w
firefox
associating a list of key chords to corresponding commands.
The symptom of the problem is that, when using X with the layout fr,us,ru,gr
(and grp:shifts_toggle
), both super + z
and super + w
trigger the wm go back
command and not firefox
.
Inspection of sxhkd's debug output reveals that, when it gets to super + w
, it looks up the keysym for w
(119), gets a list of keycodes that map to this keysym, and adjusts them using an implicit_modfield
reflecting any Shifts or Mode_switches necessary to get the corresponding keysym, as described in the comment here.
The first 'bad' commit is 52c9e4c8, which causes modfield_from_keysym(Mode_switch)
here to return 0 instead of 128.
In turn, this means that sxhkd registers super + w
as the two chords {super + w
, super + z
} instead of {super + w
, super + Mode_switch + z
} or whatever (and symmetrically for super + z
).
That's all I could figure out so far; I am not sure what the correct way to resolve this is. Presumably sxhkd should use an XCB_SOMETHING
macro to get the 128 modfield (whatever that is) instead of modfield_from_keysym(Mode_switch)
?
That is also obviously incorrect as it removes the inner quotes:
-c
if [ -n $* ]; then exec emacsclient --alternate-editor= --display=$DISPLAY $@; else exec emacsclient --alternate-editor= --create-frame; fi
placeholder
%F
You can't really implement correct shell parsing with one-liners. xdg-open should not have been a shell script.
Naïm Favier (5b0c9889) at 20 May 19:54
See https://github.com/NixOS/nixpkgs/pull/214710#issuecomment-1488518677 for context.
Naïm Favier (5b0c9889) at 29 Mar 12:40
Make existing link warning more explicit
pipewire --version
): 0.3.65PRETTY_NAME
from /etc/os-release
): NixOS unstableuname -r
): 6.2.0Initially reported at https://github.com/MusicPlayerDaemon/MPD/issues/1753
When using the PipeWire output, MPD sometimes fails to open the output when a new song starts. The MPD logs show this:
output: Failed to play on "PipeWire" (pipewire): invalid message id:2 op:2 (Invalid argument)
exception: Failed to open audio output
While the pipewire logs show this:
mod.protocol-native: malformed message footer
I upgraded my system on february 22, it is now march 3 and the error has occurred 7 times since, according to my systemd logs:
Feb 23 13:59:08 no pipewire[2770]: mod.protocol-native: malformed message footer
Feb 24 15:34:36 no pipewire[2770]: mod.protocol-native: malformed message footer
Feb 25 11:32:45 no pipewire[2770]: mod.protocol-native: malformed message footer
Feb 28 13:27:09 no pipewire[2770]: mod.protocol-native: malformed message footer
Feb 28 22:18:29 no pipewire[2770]: mod.x11-bell: X11 I/O error handler called on display :0
Feb 28 22:18:29 no pipewire[2770]: mod.x11-bell: X11 display (:0) has encountered a fatal I/O error
Mar 01 17:19:33 no pipewire[2770]: mod.protocol-native: malformed message footer
Mar 02 12:22:54 no pipewire[2770]: mod.protocol-native: malformed message footer
Mar 03 10:45:21 no pipewire[2770]: mod.protocol-native: malformed message footer
I play music several hours a day so this is still relatively rare.
The update took PipeWire from 0.3.63 to 0.3.65. No other configuration changes were made to pipewire or MPD.
pw-dump > pw-dump.log
: pw-dump.log
Hasn't happened again, let's assume it's fixed.
Would this do?
diff --git a/src/output/plugins/PipeWireOutputPlugin.cxx b/src/output/plugins/PipeWireOutputPlugin.cxx
index aa5b0eb66..a97052f14 100644
--- a/src/output/plugins/PipeWireOutputPlugin.cxx
+++ b/src/output/plugins/PipeWireOutputPlugin.cxx
@@ -973,6 +973,8 @@ PipeWireOutput::SendTag(const Tag &tag)
struct spa_dict dict = SPA_DICT_INIT(items, n_items);
+ const PipeWire::ThreadLoopLock lock(thread_loop);
+
auto rc = pw_stream_update_properties(stream, &dict);
if (rc < 0)
LogWarning(pipewire_output_domain, "Error updating properties");
If that's an easy fix I can patch both MPD and pipewire and see if it happens again.
Same version, 0.3.65. FYI the patch doesn't apply directly because it uses spaces instead of tabs.
pipewire --version
): 0.3.65PRETTY_NAME
from /etc/os-release
): NixOS unstableuname -r
): 6.2.0Initially reported at https://github.com/MusicPlayerDaemon/MPD/issues/1753
When using the PipeWire output, MPD sometimes fails to open the output when a new song starts. The MPD logs show this:
output: Failed to play on "PipeWire" (pipewire): invalid message id:2 op:2 (Invalid argument)
exception: Failed to open audio output
While the pipewire logs show this:
mod.protocol-native: malformed message footer
I upgraded my system on february 22, it is now march 3 and the error has occurred 7 times since, according to my systemd logs:
Feb 23 13:59:08 no pipewire[2770]: mod.protocol-native: malformed message footer
Feb 24 15:34:36 no pipewire[2770]: mod.protocol-native: malformed message footer
Feb 25 11:32:45 no pipewire[2770]: mod.protocol-native: malformed message footer
Feb 28 13:27:09 no pipewire[2770]: mod.protocol-native: malformed message footer
Feb 28 22:18:29 no pipewire[2770]: mod.x11-bell: X11 I/O error handler called on display :0
Feb 28 22:18:29 no pipewire[2770]: mod.x11-bell: X11 display (:0) has encountered a fatal I/O error
Mar 01 17:19:33 no pipewire[2770]: mod.protocol-native: malformed message footer
Mar 02 12:22:54 no pipewire[2770]: mod.protocol-native: malformed message footer
Mar 03 10:45:21 no pipewire[2770]: mod.protocol-native: malformed message footer
I play music several hours a day so this is still relatively rare.
The update took PipeWire from 0.3.63 to 0.3.65. No other configuration changes were made to pipewire or MPD.
pw-dump > pw-dump.log
: pw-dump.log
A solution has been given but here you go anyway:
GNU gdb (GDB) 12.1
Copyright (C) 2022 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-unknown-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /nix/store/9adf46vcp2kdd9r6l6ja10y31lyvas5p-mpv-0.35.0/bin/mpv...
warning: Loadable section ".dynstr" outside of ELF segments
in /nix/store/9adf46vcp2kdd9r6l6ja10y31lyvas5p-mpv-0.35.0/bin/mpv
(gdb) (gdb) Breakpoint 1 at 0x41fdb0
(gdb) Breakpoint 2 at 0x41d1b0
(gdb) >>>>(gdb) Starting program: /nix/store/9adf46vcp2kdd9r6l6ja10y31lyvas5p-mpv-0.35.0/bin/mpv --ao=pipewire,pulse Moonrise\ Kingdom\ \(2012\)\ \[1080p\]/Moonrise.Kingdom.2012.1080p.BluRay.x264.YIFY.mp4
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/nix/store/4nlgxhb09sdr51nc9hdm8az5b08vzkgx-glibc-2.35-163/lib/libthread_db.so.1".
[New Thread 0x7fffeaeff640 (LWP 1228754)]
[New Thread 0x7fffea6fe640 (LWP 1228755)]
[New Thread 0x7fffe9efd640 (LWP 1228756)]
[New Thread 0x7fffe96fc640 (LWP 1228757)]
[New Thread 0x7fffe8efb640 (LWP 1228758)]
[New Thread 0x7fffe86fa640 (LWP 1228759)]
[Thread 0x7fffe86fa640 (LWP 1228759) exited]
[New Thread 0x7fffe86fa640 (LWP 1228760)]
[Thread 0x7fffe86fa640 (LWP 1228760) exited]
[New Thread 0x7fffe86fa640 (LWP 1228761)]
[New Thread 0x7fffe5ccb640 (LWP 1228762)]
(+) Video --vid=1 (*) (h264 1920x1040 24.000fps)
(+) Audio --aid=1 --alang=eng (*) (aac 2ch 48000Hz)
(+) Subs --sid=1 'Moonrise.Kingdom.2012.1080p.BluRay.x264.YIFY.srt' (subrip) (external)
[New Thread 0x7fffe49f9640 (LWP 1228763)]
[Thread 0x7fffe49f9640 (LWP 1228763) exited]
[New Thread 0x7fffe49f9640 (LWP 1228764)]
[New Thread 0x7fffdb3ff640 (LWP 1228765)]
[New Thread 0x7fffdabfe640 (LWP 1228766)]
[New Thread 0x7fffda3e7640 (LWP 1228767)]
[New Thread 0x7fffd9bd0640 (LWP 1228768)]
[New Thread 0x7fffd8f82640 (LWP 1228769)]
[New Thread 0x7fffd8462640 (LWP 1228770)]
[New Thread 0x7fffd7c4b640 (LWP 1228771)]
[New Thread 0x7fffd7434640 (LWP 1228772)]
[New Thread 0x7fffd6c1d640 (LWP 1228773)]
[New Thread 0x7fffd6406640 (LWP 1228774)]
[New Thread 0x7fffd5bef640 (LWP 1228775)]
[New Thread 0x7fffd53d8640 (LWP 1228776)]
[New Thread 0x7fffd4bc1640 (LWP 1228777)]
[New Thread 0x7fffd43aa640 (LWP 1228778)]
[New Thread 0x7fffd3b92640 (LWP 1228779)]
[New Thread 0x7fffd337b640 (LWP 1228780)]
[New Thread 0x7fffd2b64640 (LWP 1228781)]
[New Thread 0x7fffd234d640 (LWP 1228782)]
Thread 1 "mpv" hit Breakpoint 1, pw_init (argc=argc@entry=0x0, argv=argv@entry=0x0) at ../src/pipewire/pipewire.c:581
581 ../src/pipewire/pipewire.c: No such file or directory.
$1 = {categories = 0x0, plugin_dir = 0x0, support_lib = 0x0, registry = {plugins = {next = 0x0, prev = 0x0}}, i18n_domain = 0x0, i18n_iface = {type = 0x0, version = 0, cb = {funcs = 0x0, data = 0x0}}, support = {{type = 0x0, data = 0x0} <repeats 32 times>}, n_support = 0, init_count = 0, in_valgrind = 0, no_color = 0, no_config = 0}
#0 pw_init (argc=argc@entry=0x0, argv=argv@entry=0x0) at ../src/pipewire/pipewire.c:581
str = <optimized out>
items = <optimized out>
n_items = <optimized out>
info = <optimized out>
support = <optimized out>
log = <optimized out>
level = <optimized out>
__func__ = "pw_init"
#1 0x0000000000476bac in pipewire_init_boilerplate (ao=ao@entry=0x6110000d2090) at ../audio/out/ao_pipewire.c:435
p = 0x612000009690
context = <optimized out>
#2 0x000000000048b31e in init (ao=0x6110000d2090) at ../audio/out/ao_pipewire.c:498
p = 0x612000009690
buffer = <optimized out>
b = <optimized out>
params = <optimized out>
props = 0x606000102e60
spa_format = <optimized out>
audio_info = <optimized out>
#3 0x0000000000457119 in ao_init (probing=probing@entry=true, global=global@entry=0x60c000000510, wakeup_cb=wakeup_cb@entry=0x71b7cc <mp_wakeup_core_cb>, wakeup_ctx=wakeup_ctx@entry=0x61a0000000d0, encode_lavc_ctx=encode_lavc_ctx@entry=0x0, flags=flags@entry=2, samplerate=<optimized out>, format=<optimized out>, channels=..., dev=<optimized out>, name=<optimized out>) at ../audio/out/ao.c:218
ao = 0x6110000d2090
r = <optimized out>
align = <optimized out>
#4 0x0000000000458d19 in ao_init_best (global=<optimized out>, init_flags=init_flags@entry=2, wakeup_cb=<optimized out>, wakeup_ctx=wakeup_ctx@entry=0x61a0000000d0, encode_lavc_ctx=<optimized out>, samplerate=samplerate@entry=48000, format=<optimized out>, channels=...) at ../audio/out/ao.c:339
entry = 0x60d000052e90
probing = true
dev = 0x0
n = 0
tmp = 0x6070000f59a0
opts = <optimized out>
log = 0x60d000052dc0
ao = <optimized out>
ao_list = 0x60d000052e90
ao_num = 2
forced_dev = false
pref_ao = <optimized out>
pref_dev = <optimized out>
autoprobe = <optimized out>
#5 0x00000000006731f1 in reinit_audio_filters_and_output (mpctx=mpctx@entry=0x61a0000000d0) at ../player/audio.c:441
opts = 0x61b0000007d0
ao_c = 0x6110000178d0
__PRETTY_FUNCTION__ = "reinit_audio_filters_and_output"
track = 0x611000015ad0
out_fmt = 0x60c0000f9390
out_rate = 48000
out_format = 11
out_channels = <optimized out>
ao_flags = 2
spdif_fallback = false
ao_rate = <optimized out>
ao_format = <optimized out>
ao_channels = <optimized out>
tmp = <optimized out>
#6 0x0000000000676da4 in fill_audio_out_buffers (mpctx=mpctx@entry=0x61a0000000d0) at ../player/audio.c:884
opts = 0x61b0000007d0
ao_c = 0x6110000178d0
#7 0x0000000000726adf in run_playloop (mpctx=mpctx@entry=0x61a0000000d0) at ../player/playloop.c:1212
No locals.
#8 0x0000000000700843 in play_current_file (mpctx=mpctx@entry=0x61a0000000d0) at ../player/loadfile.c:1679
opts = 0x61b0000007d0
playback_start = 10.468982
__PRETTY_FUNCTION__ = "play_current_file"
start_event = <optimized out>
end_event = <optimized out>
play_start_pts = <optimized out>
nothing_played = <optimized out>
#9 0x0000000000702239 in mp_play_files (mpctx=mpctx@entry=0x61a0000000d0) at ../player/loadfile.c:1865
new_entry = <optimized out>
#10 0x000000000070e11a in mpv_main (argc=<optimized out>, argv=<optimized out>) at ../player/main.c:432
mpctx = 0x61a0000000d0
options = <optimized out>
r = 0
rc = <optimized out>
reason = <optimized out>
#11 0x00000000004212bf in main (argc=<optimized out>, argv=<optimized out>) at ../osdep/main-fn-unix.c:5
No locals.
[D] pw.context [pipewire.c:250 load_spa_handle()] load lib:'support/libspa-support' factory-name:'support.log'
[D] pw.context [pipewire.c:147 open_plugin()] loaded plugin:'/nix/store/r9zxh0cajydxnqjjdrfhf544qvg4bl4c-pipewire-0.3.60-lib/lib/spa-0.2/support/libspa-support.so'
[D][30736.646160] pw.context | [ pipewire.c: 250 load_spa_handle()] load lib:'support/libspa-support' factory-name:'support.cpu'
[D][30736.646177] spa.cpu | [ cpu.c: 275 impl_init()] 0x60e000172968: count:12 align:32 flags:0007cbdb
[I][30736.646185] pw.context | [ pipewire.c: 662 pw_init()] version 0.3.62
[D][30736.646193] pw.thread-loop | [ thread-loop.c: 114 loop_new()] 0x6110000d2400: new name:ao-pipewire
[D][30736.646205] pw.context | [ pipewire.c: 250 load_spa_handle()] load lib:'support/libspa-support' factory-name:'support.system'
[D][30736.646218] spa.system | [ system.c: 352 impl_init()] 0x60c0000f95a8: initialized
[D][30736.646224] pw.context | [ pipewire.c: 250 load_spa_handle()] load lib:'support/libspa-support' factory-name:'support.loop'
[D][30736.646260] spa.system | [ system.c: 115 impl_pollfd_create()] 0x60c0000f95a8: new fd:14
[D][30736.646273] spa.system | [ system.c: 221 impl_eventfd_create()] 0x60c0000f95a8: new fd:15
[D][30736.646283] spa.system | [ system.c: 221 impl_eventfd_create()] 0x60c0000f95a8: new fd:16
[D][30736.646288] spa.loop | [ loop.c: 983 impl_init()] 0x62d00024e428: initialized
[D][30736.646297] spa.system | [ system.c: 221 impl_eventfd_create()] 0x60c0000f95a8: new fd:17
[T][30736.646305] pw.thread-loop | [ thread-loop.c: 330 pw_thread_loop_lock()] 0x6110000d2400
[New Thread 0x7fffcccfa640 (LWP 1228783)]
[D][30736.646719] pw.context | [ context.c: 209 pw_context_new()] 0x61a000007280: new
[I][30736.646854] pw.conf | [ conf.c: 423 conf_load()] 0x606000102f80: loaded config '/nix/store/r9zxh0cajydxnqjjdrfhf544qvg4bl4c-pipewire-0.3.60-lib/share/pipewire/client.conf' with 5 items
[I][30736.646906] pw.conf | [ conf.c: 881 pw_context_conf_section_for_each()] handle config '/nix/store/r9zxh0cajydxnqjjdrfhf544qvg4bl4c-pipewire-0.3.60-lib/share/pipewire/client.conf' section 'context.properties'
[I][30736.646936] pw.context | [ context.c: 260 pw_context_new()] 0x61a000007280: parsed 1 context.properties items
[D][30736.647021] pw.data-loop | [ data-loop.c: 114 loop_new()] 0x6040000d1510: new
[D][30736.647044] pw.context | [ pipewire.c: 250 load_spa_handle()] load lib:'support/libspa-support' factory-name:'support.system'
[D][30736.647071] spa.system | [ system.c: 352 impl_init()] 0x60c0000f9668: initialized
[D][30736.647108] pw.context | [ pipewire.c: 250 load_spa_handle()] load lib:'support/libspa-support' factory-name:'support.loop'
[D][30736.647181] spa.system | [ system.c: 115 impl_pollfd_create()] 0x60c0000f9668: new fd:18
[D][30736.647201] spa.system | [ system.c: 221 impl_eventfd_create()] 0x60c0000f9668: new fd:19
[D][30736.647220] spa.system | [ system.c: 221 impl_eventfd_create()] 0x60c0000f9668: new fd:20
[D][30736.647232] spa.loop | [ loop.c: 983 impl_init()] 0x62d000258428: initialized
[D][30736.647259] pw.mem | [ mem.c: 149 pw_mempool_new()] 0x608000199da0: new
[D][30736.647277] pw.work-queue | [ work-queue.c: 108 pw_work_queue_new()] 0x606000103040: new
[D][30736.647294] spa.system | [ system.c: 221 impl_eventfd_create()] 0x60c0000f95a8: new fd:21
[D][30736.647311] pw.context | [ pipewire.c: 250 load_spa_handle()] load lib:'support/libspa-dbus' factory-name:'support.dbus'
[D][30736.670801] pw.context | [ pipewire.c: 147 open_plugin()] loaded plugin:'/nix/store/r9zxh0cajydxnqjjdrfhf544qvg4bl4c-pipewire-0.3.60-lib/lib/spa-0.2/support/libspa-dbus.so'
[D][30736.670826] spa.dbus | [ dbus.c: 538 impl_init()] 0x60e000172a48: initialized
[D][30736.671035] pw.core | [ impl-core.c: 453 pw_context_create_core()] 0x60f0000071b0: new pipewire-n-1228751
[D][30736.671049] pw.global | [ global.c: 108 pw_global_new()] 0x60c0000f97c0: new PipeWire:Interface:Core 0
[D][30736.671066] pw.global | [ global.c: 184 pw_global_register()] 0x60c0000f97c0: registered 0
[I][30736.671104] pw.conf | [ conf.c: 881 pw_context_conf_section_for_each()] handle config '/nix/store/r9zxh0cajydxnqjjdrfhf544qvg4bl4c-pipewire-0.3.60-lib/share/pipewire/client.conf' section 'context.spa-libs'
[D][30736.671146] pw.context | [ context.c: 1318 pw_context_add_spa_lib()] 0x61a000007280: map factory regex 'audio.convert.*' to 'audioconvert/libspa-audioconvert
[D][30736.671164] pw.context | [ context.c: 1318 pw_context_add_spa_lib()] 0x61a000007280: map factory regex 'support.*' to 'support/libspa-support
[I][30736.671170] pw.context | [ context.c: 361 pw_context_new()] 0x61a000007280: parsed 2 context.spa-libs items
[I][30736.671176] pw.conf | [ conf.c: 881 pw_context_conf_section_for_each()] handle config '/nix/store/r9zxh0cajydxnqjjdrfhf544qvg4bl4c-pipewire-0.3.60-lib/share/pipewire/client.conf' section 'context.modules'
[I][30736.671193] pw.module | [ impl-module.c: 181 pw_context_load_module()] 0x61a000007280: name:libpipewire-module-protocol-native args:(null)
[D][30736.671199] pw.module | [ impl-module.c: 186 pw_context_load_module()] moduledir set to: /nix/store/r9zxh0cajydxnqjjdrfhf544qvg4bl4c-pipewire-0.3.60-lib/lib/pipewire-0.3
[D][30736.671213] pw.module | [ impl-module.c: 196 pw_context_load_module()] trying to load module: libpipewire-module-protocol-native (/nix/store/r9zxh0cajydxnqjjdrfhf544qvg4bl4c-pipewire-0.3.60-lib/lib/pipewire-0.3/libpipewire-module-protocol-native.so) args((null))
[D][30736.702676] pw.global | [ global.c: 108 pw_global_new()] 0x60c0000f9b80: new PipeWire:Interface:Module 1
[D][30736.702768] pw.protocol | [ protocol.c: 72 pw_protocol_new()] 0x610000006140: Created protocol PipeWire:Protocol:Native
[D][30736.702790] pw.protocol | [ protocol.c: 156 pw_protocol_add_marshal()] 0x610000006140: Add marshal PipeWire:Interface:Core/3 to protocol PipeWire:Protocol:Native
[D][30736.702812] pw.protocol | [ protocol.c: 156 pw_protocol_add_marshal()] 0x610000006140: Add marshal PipeWire:Interface:Registry/3 to protocol PipeWire:Protocol:Native
[D][30736.702827] pw.protocol | [ protocol.c: 156 pw_protocol_add_marshal()] 0x610000006140: Add marshal PipeWire:Interface:Module/3 to protocol PipeWire:Protocol:Native
[D][30736.702841] pw.protocol | [ protocol.c: 156 pw_protocol_add_marshal()] 0x610000006140: Add marshal PipeWire:Interface:Device/3 to protocol PipeWire:Protocol:Native
[D][30736.702854] pw.protocol | [ protocol.c: 156 pw_protocol_add_marshal()] 0x610000006140: Add marshal PipeWire:Interface:Node/3 to protocol PipeWire:Protocol:Native
[D][30736.702868] pw.protocol | [ protocol.c: 156 pw_protocol_add_marshal()] 0x610000006140: Add marshal PipeWire:Interface:Port/3 to protocol PipeWire:Protocol:Native
[D][30736.702882] pw.protocol | [ protocol.c: 156 pw_protocol_add_marshal()] 0x610000006140: Add marshal PipeWire:Interface:Factory/3 to protocol PipeWire:Protocol:Native
[D][30736.702895] pw.protocol | [ protocol.c: 156 pw_protocol_add_marshal()] 0x610000006140: Add marshal PipeWire:Interface:Client/3 to protocol PipeWire:Protocol:Native
[D][30736.702908] pw.protocol | [ protocol.c: 156 pw_protocol_add_marshal()] 0x610000006140: Add marshal PipeWire:Interface:Link/3 to protocol PipeWire:Protocol:Native
[D][30736.702922] pw.protocol | [ protocol.c: 156 pw_protocol_add_marshal()] 0x610000006140: Add marshal PipeWire:Interface:Core/0 to protocol PipeWire:Protocol:Native
[D][30736.702941] pw.protocol | [ protocol.c: 156 pw_protocol_add_marshal()] 0x610000006140: Add marshal PipeWire:Interface:Registry/0 to protocol PipeWire:Protocol:Native
[D][30736.702955] pw.protocol | [ protocol.c: 156 pw_protocol_add_marshal()] 0x610000006140: Add marshal PipeWire:Interface:Module/0 to protocol PipeWire:Protocol:Native
[D][30736.702968] pw.protocol | [ protocol.c: 156 pw_protocol_add_marshal()] 0x610000006140: Add marshal PipeWire:Interface:Node/0 to protocol PipeWire:Protocol:Native
[D][30736.702983] pw.protocol | [ protocol.c: 156 pw_protocol_add_marshal()] 0x610000006140: Add marshal PipeWire:Interface:Port/0 to protocol PipeWire:Protocol:Native
[D][30736.702996] pw.protocol | [ protocol.c: 156 pw_protocol_add_marshal()] 0x610000006140: Add marshal PipeWire:Interface:Factory/0 to protocol PipeWire:Protocol:Native
[D][30736.703009] pw.protocol | [ protocol.c: 156 pw_protocol_add_marshal()] 0x610000006140: Add marshal PipeWire:Interface:Client/0 to protocol PipeWire:Protocol:Native
[D][30736.703023] pw.protocol | [ protocol.c: 156 pw_protocol_add_marshal()] 0x610000006140: Add marshal PipeWire:Interface:Link/0 to protocol PipeWire:Protocol:Native
[D][30736.703036] mod.protocol-native | [module-protocol-: 1505 pipewire__module_init()] 0x610000006140: new debug:0
[D][30736.703065] mod.protocol-native | [module-protocol-: 1320 create_server()] 0x610000006140: created server 0x612000009dc0
[D][30736.703106] pw.module | [ impl-module.c: 382 pw_impl_module_update_properties()] 0x60f0000072a0: updated 3 properties
[D][30736.703123] pw.global | [ global.c: 184 pw_global_register()] 0x60c0000f9b80: registered 1
[D][30736.703137] pw.module | [ impl-module.c: 275 pw_context_load_module()] 0x60f0000072a0: loaded module: libpipewire-module-protocol-native
[I][30736.703152] pw.conf | [ conf.c: 602 load_module()] 0x61a000007280: loaded module libpipewire-module-protocol-native
[I][30736.703173] pw.module | [ impl-module.c: 181 pw_context_load_module()] 0x61a000007280: name:libpipewire-module-client-node args:(null)
[D][30736.703187] pw.module | [ impl-module.c: 186 pw_context_load_module()] moduledir set to: /nix/store/r9zxh0cajydxnqjjdrfhf544qvg4bl4c-pipewire-0.3.60-lib/lib/pipewire-0.3
[D][30736.703228] pw.module | [ impl-module.c: 196 pw_context_load_module()] trying to load module: libpipewire-module-client-node (/nix/store/r9zxh0cajydxnqjjdrfhf544qvg4bl4c-pipewire-0.3.60-lib/lib/pipewire-0.3/libpipewire-module-client-node.so) args((null))
[D][30736.737824] pw.global | [ global.c: 108 pw_global_new()] 0x60c0000f9f40: new PipeWire:Interface:Module 2
[D][30736.737873] pw.factory | [ impl-factory.c: 72 pw_context_create_factory()] 0x613000009500: new client-node
[D][30736.737880] mod.client-node | [module-client-no: 199 pipewire__module_init()] module 0x60f000007390: new
[D][30736.737887] pw.context | [ context.c: 1372 pw_context_register_export_type()] context 0x61a000007280: Add export type PipeWire:Interface:Node to context
[D][30736.737893] pw.context | [ context.c: 1372 pw_context_register_export_type()] context 0x61a000007280: Add export type Spa:Pointer:Interface:Node to context
[D][30736.737903] pw.protocol | [ protocol.c: 156 pw_protocol_add_marshal()] 0x610000006140: Add marshal PipeWire:Interface:ClientNode/4 to protocol PipeWire:Protocol:Native
[D][30736.737913] pw.protocol | [ protocol.c: 156 pw_protocol_add_marshal()] 0x610000006140: Add marshal PipeWire:Interface:ClientNode/0 to protocol PipeWire:Protocol:Native
[D][30736.737921] pw.module | [ impl-module.c: 382 pw_impl_module_update_properties()] 0x60f000007390: updated 3 properties
[D][30736.737928] pw.global | [ global.c: 184 pw_global_register()] 0x60c0000f9f40: registered 2
[D][30736.737936] pw.factory | [ impl-factory.c: 162 pw_impl_factory_update_properties()] 0x613000009500: updated 1 properties
[D][30736.737944] pw.global | [ global.c: 108 pw_global_new()] 0x60c0000fa000: new PipeWire:Interface:Factory 3
[D][30736.737955] pw.global | [ global.c: 184 pw_global_register()] 0x60c0000fa000: registered 3
[D][30736.737961] pw.module | [ impl-module.c: 275 pw_context_load_module()] 0x60f000007390: loaded module: libpipewire-module-client-node
[I][30736.737967] pw.conf | [ conf.c: 602 load_module()] 0x61a000007280: loaded module libpipewire-module-client-node
[I][30736.737977] pw.module | [ impl-module.c: 181 pw_context_load_module()] 0x61a000007280: name:libpipewire-module-client-device args:(null)
[D][30736.737984] pw.module | [ impl-module.c: 186 pw_context_load_module()] moduledir set to: /nix/store/r9zxh0cajydxnqjjdrfhf544qvg4bl4c-pipewire-0.3.60-lib/lib/pipewire-0.3
[D][30736.738005] pw.module | [ impl-module.c: 196 pw_context_load_module()] trying to load module: libpipewire-module-client-device (/nix/store/r9zxh0cajydxnqjjdrfhf544qvg4bl4c-pipewire-0.3.60-lib/lib/pipewire-0.3/libpipewire-module-client-device.so) args((null))
[D][30736.764881] pw.global | [ global.c: 108 pw_global_new()] 0x60c0000fa300: new PipeWire:Interface:Module 4
[D][30736.764947] pw.factory | [ impl-factory.c: 72 pw_context_create_factory()] 0x6130000096c0: new client-device
[D][30736.764963] mod.client-device | [module-client-de: 210 pipewire__module_init()] module 0x60f000007480: new
[D][30736.764990] pw.context | [ context.c: 1372 pw_context_register_export_type()] context 0x61a000007280: Add export type Spa:Pointer:Interface:Device to context
[D][30736.765007] pw.protocol | [ protocol.c: 156 pw_protocol_add_marshal()] 0x610000006140: Add marshal Spa:Pointer:Interface:Device/0 to protocol PipeWire:Protocol:Native
[D][30736.765027] pw.module | [ impl-module.c: 382 pw_impl_module_update_properties()] 0x60f000007480: updated 3 properties
[D][30736.765042] pw.global | [ global.c: 184 pw_global_register()] 0x60c0000fa300: registered 4
[D][30736.765059] pw.factory | [ impl-factory.c: 162 pw_impl_factory_update_properties()] 0x6130000096c0: updated 1 properties
[D][30736.765074] pw.global | [ global.c: 108 pw_global_new()] 0x60c0000fa3c0: new PipeWire:Interface:Factory 5
[D][30736.765121] pw.global | [ global.c: 184 pw_global_register()] 0x60c0000fa3c0: registered 5
[D][30736.765134] pw.module | [ impl-module.c: 275 pw_context_load_module()] 0x60f000007480: loaded module: libpipewire-module-client-device
[I][30736.765148] pw.conf | [ conf.c: 602 load_module()] 0x61a000007280: loaded module libpipewire-module-client-device
[I][30736.765167] pw.module | [ impl-module.c: 181 pw_context_load_module()] 0x61a000007280: name:libpipewire-module-adapter args:(null)
[D][30736.765182] pw.module | [ impl-module.c: 186 pw_context_load_module()] moduledir set to: /nix/store/r9zxh0cajydxnqjjdrfhf544qvg4bl4c-pipewire-0.3.60-lib/lib/pipewire-0.3
[D][30736.765214] pw.module | [ impl-module.c: 196 pw_context_load_module()] trying to load module: libpipewire-module-adapter (/nix/store/r9zxh0cajydxnqjjdrfhf544qvg4bl4c-pipewire-0.3.60-lib/lib/pipewire-0.3/libpipewire-module-adapter.so) args((null))
[D][30736.797243] pw.global | [ global.c: 108 pw_global_new()] 0x60c0000fa480: new PipeWire:Interface:Module 6
[D][30736.797277] pw.factory | [ impl-factory.c: 72 pw_context_create_factory()] 0x61200000a3c0: new adapter
[D][30736.797283] mod.adapter | [module-adapter.c: 381 pipewire__module_init()] module 0x60f000007570: new
[D][30736.797291] pw.module | [ impl-module.c: 382 pw_impl_module_update_properties()] 0x60f000007570: updated 3 properties
[D][30736.797298] pw.global | [ global.c: 184 pw_global_register()] 0x60c0000fa480: registered 6
[D][30736.797305] pw.factory | [ impl-factory.c: 162 pw_impl_factory_update_properties()] 0x61200000a3c0: updated 1 properties
[D][30736.797313] pw.global | [ global.c: 108 pw_global_new()] 0x60c0000fa540: new PipeWire:Interface:Factory 7
[D][30736.797324] pw.global | [ global.c: 184 pw_global_register()] 0x60c0000fa540: registered 7
[D][30736.797329] pw.module | [ impl-module.c: 275 pw_context_load_module()] 0x60f000007570: loaded module: libpipewire-module-adapter
[I][30736.797336] pw.conf | [ conf.c: 602 load_module()] 0x61a000007280: loaded module libpipewire-module-adapter
[I][30736.797343] pw.module | [ impl-module.c: 181 pw_context_load_module()] 0x61a000007280: name:libpipewire-module-metadata args:(null)
[D][30736.797350] pw.module | [ impl-module.c: 186 pw_context_load_module()] moduledir set to: /nix/store/r9zxh0cajydxnqjjdrfhf544qvg4bl4c-pipewire-0.3.60-lib/lib/pipewire-0.3
[D][30736.797364] pw.module | [ impl-module.c: 196 pw_context_load_module()] trying to load module: libpipewire-module-metadata (/nix/store/r9zxh0cajydxnqjjdrfhf544qvg4bl4c-pipewire-0.3.60-lib/lib/pipewire-0.3/libpipewire-module-metadata.so) args((null))
[D][30736.823387] pw.global | [ global.c: 108 pw_global_new()] 0x60c0000fa600: new PipeWire:Interface:Module 8
[D][30736.823407] pw.protocol | [ protocol.c: 156 pw_protocol_add_marshal()] 0x610000006140: Add marshal PipeWire:Interface:Metadata/3 to protocol PipeWire:Protocol:Native
[D][30736.823414] pw.protocol | [ protocol.c: 156 pw_protocol_add_marshal()] 0x610000006140: Add marshal PipeWire:Interface:Metadata/3 to protocol PipeWire:Protocol:Native
[D][30736.823427] pw.factory | [ impl-factory.c: 72 pw_context_create_factory()] 0x613000009880: new metadata
[D][30736.823433] mod.metadata | [module-metadata.: 221 pipewire__module_init()] module 0x60f000007660: new
[D][30736.823440] pw.context | [ context.c: 1372 pw_context_register_export_type()] context 0x61a000007280: Add export type PipeWire:Interface:Metadata to context
[D][30736.823448] pw.module | [ impl-module.c: 382 pw_impl_module_update_properties()] 0x60f000007660: updated 3 properties
[D][30736.823454] pw.global | [ global.c: 184 pw_global_register()] 0x60c0000fa600: registered 8
[D][30736.823461] pw.factory | [ impl-factory.c: 162 pw_impl_factory_update_properties()] 0x613000009880: updated 1 properties
[D][30736.823467] pw.global | [ global.c: 108 pw_global_new()] 0x60c0000fa6c0: new PipeWire:Interface:Factory 9
[D][30736.823488] pw.global | [ global.c: 184 pw_global_register()] 0x60c0000fa6c0: registered 9
[D][30736.823494] pw.module | [ impl-module.c: 275 pw_context_load_module()] 0x60f000007660: loaded module: libpipewire-module-metadata
[I][30736.823500] pw.conf | [ conf.c: 602 load_module()] 0x61a000007280: loaded module libpipewire-module-metadata
[I][30736.823506] pw.module | [ impl-module.c: 181 pw_context_load_module()] 0x61a000007280: name:libpipewire-module-session-manager args:(null)
[D][30736.823513] pw.module | [ impl-module.c: 186 pw_context_load_module()] moduledir set to: /nix/store/r9zxh0cajydxnqjjdrfhf544qvg4bl4c-pipewire-0.3.60-lib/lib/pipewire-0.3
[D][30736.823524] pw.module | [ impl-module.c: 196 pw_context_load_module()] trying to load module: libpipewire-module-session-manager (/nix/store/r9zxh0cajydxnqjjdrfhf544qvg4bl4c-pipewire-0.3.60-lib/lib/pipewire-0.3/libpipewire-module-session-manager.so) args((null))
[D][30736.858246] pw.global | [ global.c: 108 pw_global_new()] 0x60c0000fa9c0: new PipeWire:Interface:Module 10
[D][30736.858294] pw.protocol | [ protocol.c: 156 pw_protocol_add_marshal()] 0x610000006140: Add marshal PipeWire:Interface:ClientEndpoint/0 to protocol PipeWire:Protocol:Native
[D][30736.858302] pw.protocol | [ protocol.c: 156 pw_protocol_add_marshal()] 0x610000006140: Add marshal PipeWire:Interface:ClientSession/0 to protocol PipeWire:Protocol:Native
[D][30736.858308] pw.protocol | [ protocol.c: 156 pw_protocol_add_marshal()] 0x610000006140: Add marshal PipeWire:Interface:EndpointLink/0 to protocol PipeWire:Protocol:Native
[D][30736.858314] pw.protocol | [ protocol.c: 156 pw_protocol_add_marshal()] 0x610000006140: Add marshal PipeWire:Interface:EndpointStream/0 to protocol PipeWire:Protocol:Native
[D][30736.858320] pw.protocol | [ protocol.c: 156 pw_protocol_add_marshal()] 0x610000006140: Add marshal PipeWire:Interface:Endpoint/0 to protocol PipeWire:Protocol:Native
[D][30736.858325] pw.protocol | [ protocol.c: 156 pw_protocol_add_marshal()] 0x610000006140: Add marshal PipeWire:Interface:Session/0 to protocol PipeWire:Protocol:Native
[D][30736.858331] pw.protocol | [ protocol.c: 156 pw_protocol_add_marshal()] 0x610000006140: Add marshal PipeWire:Interface:EndpointLink/0 to protocol PipeWire:Protocol:Native
[D][30736.858336] pw.protocol | [ protocol.c: 156 pw_protocol_add_marshal()] 0x610000006140: Add marshal PipeWire:Interface:EndpointStream/0 to protocol PipeWire:Protocol:Native
[D][30736.858342] pw.protocol | [ protocol.c: 156 pw_protocol_add_marshal()] 0x610000006140: Add marshal PipeWire:Interface:Endpoint/0 to protocol PipeWire:Protocol:Native
[D][30736.858348] pw.protocol | [ protocol.c: 156 pw_protocol_add_marshal()] 0x610000006140: Add marshal PipeWire:Interface:Session/0 to protocol PipeWire:Protocol:Native
[D][30736.858357] pw.factory | [ impl-factory.c: 72 pw_context_create_factory()] 0x61200000a840: new client-endpoint
[D][30736.858365] pw.factory | [ impl-factory.c: 72 pw_context_create_factory()] 0x61200000a9c0: new client-session
[D][30736.858378] pw.factory | [ impl-factory.c: 72 pw_context_create_factory()] 0x613000009a40: new session
[D][30736.858385] pw.context | [ context.c: 1372 pw_context_register_export_type()] context 0x61a000007280: Add export type PipeWire:Interface:Session to context
[D][30736.858392] pw.factory | [ impl-factory.c: 72 pw_context_create_factory()] 0x613000009c00: new endpoint
[D][30736.858398] pw.context | [ context.c: 1372 pw_context_register_export_type()] context 0x61a000007280: Add export type PipeWire:Interface:Endpoint to context
[D][30736.858407] pw.factory | [ impl-factory.c: 72 pw_context_create_factory()] 0x613000009dc0: new endpoint-stream
[D][30736.858412] pw.context | [ context.c: 1372 pw_context_register_export_type()] context 0x61a000007280: Add export type PipeWire:Interface:EndpointStream to context
[D][30736.858421] pw.factory | [ impl-factory.c: 72 pw_context_create_factory()] 0x613000009f80: new endpoint-link
[D][30736.858426] pw.context | [ context.c: 1372 pw_context_register_export_type()] context 0x61a000007280: Add export type PipeWire:Interface:EndpointLink to context
[D][30736.858433] pw.module | [ impl-module.c: 382 pw_impl_module_update_properties()] 0x60f000007750: updated 3 properties
[D][30736.858440] pw.global | [ global.c: 184 pw_global_register()] 0x60c0000fa9c0: registered 10
[D][30736.858448] pw.factory | [ impl-factory.c: 162 pw_impl_factory_update_properties()] 0x61200000a840: updated 1 properties
[D][30736.858454] pw.global | [ global.c: 108 pw_global_new()] 0x60c0000faa80: new PipeWire:Interface:Factory 11
[D][30736.858465] pw.global | [ global.c: 184 pw_global_register()] 0x60c0000faa80: registered 11
[D][30736.858472] pw.factory | [ impl-factory.c: 162 pw_impl_factory_update_properties()] 0x61200000a9c0: updated 1 properties
[D][30736.858478] pw.global | [ global.c: 108 pw_global_new()] 0x60c0000fab40: new PipeWire:Interface:Factory 12
[D][30736.858487] pw.global | [ global.c: 184 pw_global_register()] 0x60c0000fab40: registered 12
[D][30736.858494] pw.factory | [ impl-factory.c: 162 pw_impl_factory_update_properties()] 0x613000009a40: updated 1 properties
[D][30736.858500] pw.global | [ global.c: 108 pw_global_new()] 0x60c0000fac00: new PipeWire:Interface:Factory 13
[D][30736.858520] pw.global | [ global.c: 184 pw_global_register()] 0x60c0000fac00: registered 13
[D][30736.858527] pw.factory | [ impl-factory.c: 162 pw_impl_factory_update_properties()] 0x613000009c00: updated 1 properties
[D][30736.858532] pw.global | [ global.c: 108 pw_global_new()] 0x60c0000facc0: new PipeWire:Interface:Factory 14
[D][30736.858542] pw.global | [ global.c: 184 pw_global_register()] 0x60c0000facc0: registered 14
[D][30736.858552] pw.factory | [ impl-factory.c: 162 pw_impl_factory_update_properties()] 0x613000009dc0: updated 1 properties
[D][30736.858557] pw.global | [ global.c: 108 pw_global_new()] 0x60c0000fad80: new PipeWire:Interface:Factory 15
[D][30736.858569] pw.global | [ global.c: 184 pw_global_register()] 0x60c0000fad80: registered 15
[D][30736.858574] pw.factory | [ impl-factory.c: 162 pw_impl_factory_update_properties()] 0x613000009f80: updated 1 properties
[D][30736.858580] pw.global | [ global.c: 108 pw_global_new()] 0x60c0000fae40: new PipeWire:Interface:Factory 16
[D][30736.858590] pw.global | [ global.c: 184 pw_global_register()] 0x60c0000fae40: registered 16
[D][30736.858595] pw.module | [ impl-module.c: 275 pw_context_load_module()] 0x60f000007750: loaded module: libpipewire-module-session-manager
[I][30736.858602] pw.conf | [ conf.c: 602 load_module()] 0x61a000007280: loaded module libpipewire-module-session-manager
[I][30736.858612] pw.context | [ context.c: 365 pw_context_new()] 0x61a000007280: parsed 6 context.modules items
[I][30736.858619] pw.context | [ context.c: 370 pw_context_new()] 0x61a000007280: parsed 0 context.objects items
[I][30736.858628] pw.context | [ context.c: 373 pw_context_new()] 0x61a000007280: parsed 0 context.exec items
[New Thread 0x7fffcb1ff640 (LWP 1228784)]
[W][30736.858930] default | [ thread.c: 121 impl_acquire_rt()] acquire_rt thread:0x7fffcb1ff640 prio:-1 not implemented
[D][30736.858935] pw.data-loop | [ data-loop.c: 75 do_loop()] 0x6040000d1510: enter thread
[D][30736.858953] pw.metadata | [ impl-metadata.c: 114 impl_add_listener()] metadata 0x6110000d6bf0:
[D][30736.858963] pw.metadata | [ impl-metadata.c: 318 pw_context_create_metadata()] 0x6110000d6b40: new
[T][30736.858953] spa.loop | [ loop.c: 359 loop_enter()] 0x62d000258428: enter 140736601257536
[D][30736.858974] pw.metadata | [ impl-metadata.c: 184 impl_set_property()] 0x6110000d6bf0: id:0 key:log.level type: value:0
[I][30736.858988] pw.metadata | [ impl-metadata.c: 205 impl_set_property()] 0x6110000d6bf0: add id:0 key:log.level type: value:0
[D][30736.858996] pw.metadata | [ impl-metadata.c: 184 impl_set_property()] 0x6110000d6bf0: id:0 key:clock.rate type: value:48000
[I][30736.859002] pw.metadata | [ impl-metadata.c: 205 impl_set_property()] 0x6110000d6bf0: add id:0 key:clock.rate type: value:48000
[D][30736.859009] pw.metadata | [ impl-metadata.c: 184 impl_set_property()] 0x6110000d6bf0: id:0 key:clock.allowed-rates type: value:[ 48000 ]
[I][30736.859015] pw.metadata | [ impl-metadata.c: 205 impl_set_property()] 0x6110000d6bf0: add id:0 key:clock.allowed-rates type: value:[ 48000 ]
[D][30736.859021] pw.metadata | [ impl-metadata.c: 184 impl_set_property()] 0x6110000d6bf0: id:0 key:clock.quantum type: value:1024
[I][30736.859029] pw.metadata | [ impl-metadata.c: 205 impl_set_property()] 0x6110000d6bf0: add id:0 key:clock.quantum type: value:1024
[D][30736.859036] pw.metadata | [ impl-metadata.c: 184 impl_set_property()] 0x6110000d6bf0: id:0 key:clock.min-quantum type: value:32
[I][30736.859042] pw.metadata | [ impl-metadata.c: 205 impl_set_property()] 0x6110000d6bf0: add id:0 key:clock.min-quantum type: value:32
[D][30736.859048] pw.metadata | [ impl-metadata.c: 184 impl_set_property()] 0x6110000d6bf0: id:0 key:clock.max-quantum type: value:2048
[I][30736.859054] pw.metadata | [ impl-metadata.c: 205 impl_set_property()] 0x6110000d6bf0: add id:0 key:clock.max-quantum type: value:2048
[D][30736.859059] pw.metadata | [ impl-metadata.c: 184 impl_set_property()] 0x6110000d6bf0: id:0 key:clock.force-quantum type: value:0
[I][30736.859065] pw.metadata | [ impl-metadata.c: 205 impl_set_property()] 0x6110000d6bf0: add id:0 key:clock.force-quantum type: value:0
[D][30736.859071] pw.metadata | [ impl-metadata.c: 184 impl_set_property()] 0x6110000d6bf0: id:0 key:clock.force-rate type: value:0
[I][30736.859077] pw.metadata | [ impl-metadata.c: 205 impl_set_property()] 0x6110000d6bf0: add id:0 key:clock.force-rate type: value:0
[D][30736.859093] pw.global | [ global.c: 108 pw_global_new()] 0x60c0000faf00: new PipeWire:Interface:Metadata 17
[D][30736.859101] pw.global | [ global.c: 184 pw_global_register()] 0x60c0000faf00: registered 17
[D][30736.859108] pw.context | [ context.c: 383 pw_context_new()] 0x61a000007280: created
[D][30736.859116] pw.core | [ core.c: 321 core_new()] 0x61300000a140: new
[D][30736.859141] pw.mem | [ mem.c: 149 pw_mempool_new()] 0x60800019a120: new
[D][30736.859155] mod.protocol-native | [module-protocol-: 1189 impl_new_client()] 0x610000006140: new client 0x60f00004f000
[D][30736.859167] mod.protocol-native | [ connection.c: 437 pw_protocol_native_connection_new()] connection 0x6250004c1900: new fd:-1
[D][30736.859204] mod.protocol-native | [module-protocol-: 1217 impl_new_client()] 0x610000006140: connect generic
[D][30736.859215] pw.proxy | [ proxy.c: 112 pw_proxy_new()] 0x60c0000fafc0: new 1 type PipeWire:Interface:Client/3 core-proxy:0x61300000a140, marshal:0x7fffcc2988a0
[T][30736.859235] mod.protocol-native | [module-protocol-: 1161 on_client_need_flush()] need flush
[T][30736.859259] mod.protocol-native | [module-protocol-: 1161 on_client_need_flush()] need flush
[D][30736.859265] pw.core | [ core.c: 412 pw_context_connect()] 0x61300000a140: connect
[I][30736.859273] mod.protocol-native | [ local-socket.c: 91 try_connect()] connecting to 'pipewire-0' runtime_dir:/run/user/1000
[D][30736.859309] mod.protocol-native | [ local-socket.c: 119 try_connect()] connect to 'pipewire-0' failed: Connection refused
[I][30736.859324] mod.protocol-native | [ local-socket.c: 91 try_connect()] connecting to 'pipewire-0' runtime_dir:/run/pipewire
[D][30736.859335] mod.protocol-native | [ local-socket.c: 119 try_connect()] connect to 'pipewire-0' failed: No such file or directory
[D][30736.859343] pw.core | [ core.c: 491 pw_core_disconnect()] 0x61300000a140: disconnect
[D][30736.859349] pw.proxy | [ proxy.c: 268 pw_proxy_remove()] 0x61300000a140: remove id:0 removed:0 destroyed:0 zombie:0 ref:1
[D][30736.859355] pw.core | [ core.c: 207 proxy_core_removed()] 0x61300000a140: core proxy removed
[D][30736.859361] pw.proxy | [ proxy.c: 268 pw_proxy_remove()] 0x60c0000fafc0: remove id:1 removed:0 destroyed:0 zombie:0 ref:1
[D][30736.859367] pw.proxy | [ proxy.c: 233 pw_proxy_destroy()] 0x61300000a140: destroy id:0 removed:1 zombie:0 ref:1
[D][30736.859373] pw.core | [ core.c: 229 proxy_core_destroy()] 0x61300000a140: core proxy destroy
[D][30736.859378] pw.proxy | [ proxy.c: 233 pw_proxy_destroy()] 0x60c0000fafc0: destroy id:1 removed:1 zombie:0 ref:1
[D][30736.859384] pw.proxy | [ proxy.c: 295 pw_proxy_unref()] 0x60c0000fafc0: free 1
[D][30736.859390] mod.protocol-native | [ connection.c: 470 pw_protocol_native_connection_set_fd()] connection 0x6250004c1900: fd:-1
[D][30736.859396] pw.mem | [ mem.c: 176 pw_mempool_destroy()] 0x60800019a120: destroy
[D][30736.859401] pw.mem | [ mem.c: 164 pw_mempool_clear()] 0x60800019a120: clear
[D][30736.859411] mod.protocol-native | [ connection.c: 470 pw_protocol_native_connection_set_fd()] connection 0x6250004c1900: fd:-1
[D][30736.859417] mod.protocol-native | [ connection.c: 485 pw_protocol_native_connection_destroy() connection 0x6250004c1900: destroy
[D][30736.859430] pw.core | [ core.c: 249 proxy_core_destroy()] 0x61300000a140: free
[D][30736.859440] pw.proxy | [ proxy.c: 295 pw_proxy_unref()] 0x61300000a140: free 0
[ao/pipewire] Could not connect to context '(null)': Host is down
[T][30736.859462] pw.thread-loop | [ thread-loop.c: 341 pw_thread_loop_unlock()] 0x6110000d2400
[D][30736.859471] pw.thread-loop | [ thread-loop.c: 309 pw_thread_loop_stop()] 0x6110000d2400 stopping 1
[D][30736.859476] pw.thread-loop | [ thread-loop.c: 311 pw_thread_loop_stop()] 0x6110000d2400 signal
[D][30736.859485] pw.thread-loop | [ thread-loop.c: 313 pw_thread_loop_stop()] 0x6110000d2400 join
[D][30736.859511] pw.thread-loop | [ thread-loop.c: 249 do_loop()] 0x6110000d2400: enter thread
[T][30736.859556] spa.loop | [ loop.c: 359 loop_enter()] 0x62d00024e428: enter 140736629548608
[D][30736.859583] pw.thread-loop | [ thread-loop.c: 88 do_stop()] stopping
[D][30736.859597] pw.thread-loop | [ thread-loop.c: 260 do_loop()] 0x6110000d2400: leave thread
[T][30736.859610] spa.loop | [ loop.c: 370 loop_leave()] 0x62d00024e428: leave 140736629548608
[D][30736.859713] pw.thread-loop | [ thread-loop.c: 315 pw_thread_loop_stop()] 0x6110000d2400 joined
[D][30736.859727] pw.thread-loop | [ thread-loop.c: 318 pw_thread_loop_stop()] 0x6110000d2400 stopped
[D][30736.859734] pw.thread-loop | [ thread-loop.c: 309 pw_thread_loop_stop()] 0x6110000d2400 stopping 0
[D][30736.859740] pw.thread-loop | [ thread-loop.c: 318 pw_thread_loop_stop()] 0x6110000d2400 stopped
[T][30736.859746] spa.loop | [ loop.c: 814 loop_destroy_source()] 0x608000199c20
[D][30736.859758] spa.system | [ system.c: 88 impl_close()] 0x60c0000f95a8: close fd:17
[D][30736.859772] pw.context | [ pipewire.c: 209 unref_handle()] clear handle 'support.loop'
[T][30736.859778] spa.loop | [ loop.c: 814 loop_destroy_source()] 0x608000199e20
[D][30736.859785] spa.system | [ system.c: 88 impl_close()] 0x60c0000f95a8: close fd:21
[T][30736.859790] spa.loop | [ loop.c: 814 loop_destroy_source()] 0x608000199ba0
[D][30736.859797] spa.system | [ system.c: 88 impl_close()] 0x60c0000f95a8: close fd:15
[D][30736.859803] spa.system | [ system.c: 88 impl_close()] 0x60c0000f95a8: close fd:16
[D][30736.859809] spa.system | [ system.c: 88 impl_close()] 0x60c0000f95a8: close fd:14
[D][30736.859817] pw.context | [ pipewire.c: 209 unref_handle()] clear handle 'support.system'
[Thread 0x7fffcccfa640 (LWP 1228783) exited]
Thread 1 "mpv" hit Breakpoint 2, pw_deinit () at ../src/pipewire/pipewire.c:684
684 in ../src/pipewire/pipewire.c
$2 = {categories = 0x0, plugin_dir = 0x7ffff41af0e0 "/nix/store/r9zxh0cajydxnqjjdrfhf544qvg4bl4c-pipewire-0.3.60-lib/lib/spa-0.2", support_lib = 0x7ffff41af160 "support/libspa-support", registry = {plugins = {next = 0x606000102ec0, prev = 0x6060001030a0}}, i18n_domain = 0x6020000b8e70 "pipewire", i18n_iface = {type = 0x7ffff41ae520 "Spa:Pointer:Interface:I18N", version = 0, cb = {funcs = 0x7ffff4210860 <i18n_methods>, data = 0x7ffff46f86c0 <global_support>}}, support = {{type = 0x7ffff41aeda0 "Spa:Pointer:Interface:Log", data = 0x6290000cd240}, {type = 0x7ffff41af620 "Spa:Pointer:Interface:CPU", data = 0x60e000172980}, {type = 0x7ffff41ae520 "Spa:Pointer:Interface:I18N", data = 0x7ffff46f86f0 <global_support+48>}, {type = 0x0, data = 0x0} <repeats 29 times>}, n_support = 3, init_count = 1, in_valgrind = 0, no_color = 0, no_config = 0}
#0 pw_deinit () at ../src/pipewire/pipewire.c:684
support = 0x7ffff46f86c0 <global_support>
registry = <optimized out>
p = <optimized out>
#1 0x000000000047520e in uninit (ao=ao@entry=0x6110000d2090) at ../audio/out/ao_pipewire.c:300
p = 0x612000009690
#2 0x000000000048d194 in init (ao=0x6110000d2090) at ../audio/out/ao_pipewire.c:564
p = 0x612000009690
buffer = <optimized out>
b = <optimized out>
params = <optimized out>
props = 0x606000102e60
spa_format = <optimized out>
audio_info = <optimized out>
#3 0x0000000000457119 in ao_init (probing=probing@entry=true, global=global@entry=0x60c000000510, wakeup_cb=wakeup_cb@entry=0x71b7cc <mp_wakeup_core_cb>, wakeup_ctx=wakeup_ctx@entry=0x61a0000000d0, encode_lavc_ctx=encode_lavc_ctx@entry=0x0, flags=flags@entry=2, samplerate=<optimized out>, format=<optimized out>, channels=..., dev=<optimized out>, name=<optimized out>) at ../audio/out/ao.c:218
ao = 0x6110000d2090
r = <optimized out>
align = <optimized out>
#4 0x0000000000458d19 in ao_init_best (global=<optimized out>, init_flags=init_flags@entry=2, wakeup_cb=<optimized out>, wakeup_ctx=wakeup_ctx@entry=0x61a0000000d0, encode_lavc_ctx=<optimized out>, samplerate=samplerate@entry=48000, format=<optimized out>, channels=...) at ../audio/out/ao.c:339
entry = 0x60d000052e90
probing = true
dev = 0x0
n = 0
tmp = 0x6070000f59a0
opts = <optimized out>
log = 0x60d000052dc0
ao = <optimized out>
ao_list = 0x60d000052e90
ao_num = 2
forced_dev = false
pref_ao = <optimized out>
pref_dev = <optimized out>
autoprobe = <optimized out>
#5 0x00000000006731f1 in reinit_audio_filters_and_output (mpctx=mpctx@entry=0x61a0000000d0) at ../player/audio.c:441
opts = 0x61b0000007d0
ao_c = 0x6110000178d0
__PRETTY_FUNCTION__ = "reinit_audio_filters_and_output"
track = 0x611000015ad0
out_fmt = 0x60c0000f9390
out_rate = 48000
out_format = 11
out_channels = <optimized out>
ao_flags = 2
spdif_fallback = false
ao_rate = <optimized out>
ao_format = <optimized out>
ao_channels = <optimized out>
tmp = <optimized out>
#6 0x0000000000676da4 in fill_audio_out_buffers (mpctx=mpctx@entry=0x61a0000000d0) at ../player/audio.c:884
opts = 0x61b0000007d0
ao_c = 0x6110000178d0
#7 0x0000000000726adf in run_playloop (mpctx=mpctx@entry=0x61a0000000d0) at ../player/playloop.c:1212
No locals.
#8 0x0000000000700843 in play_current_file (mpctx=mpctx@entry=0x61a0000000d0) at ../player/loadfile.c:1679
opts = 0x61b0000007d0
playback_start = 10.468982
__PRETTY_FUNCTION__ = "play_current_file"
start_event = <optimized out>
end_event = <optimized out>
play_start_pts = <optimized out>
nothing_played = <optimized out>
#9 0x0000000000702239 in mp_play_files (mpctx=mpctx@entry=0x61a0000000d0) at ../player/loadfile.c:1865
new_entry = <optimized out>
#10 0x000000000070e11a in mpv_main (argc=<optimized out>, argv=<optimized out>) at ../player/main.c:432
mpctx = 0x61a0000000d0
options = <optimized out>
r = 0
rc = <optimized out>
reason = <optimized out>
#11 0x00000000004212bf in main (argc=<optimized out>, argv=<optimized out>) at ../osdep/main-fn-unix.c:5
No locals.
[D] pw.context [pipewire.c:209 unref_handle()] clear handle 'support.log'
[D] pw.context [pipewire.c:209 unref_handle()] clear handle 'support.cpu'
[D] pw.context [pipewire.c:209 unref_handle()] clear handle 'support.system'
[D] pw.context [pipewire.c:209 unref_handle()] clear handle 'support.loop'
=================================================================
==1228751==ERROR: AddressSanitizer: heap-use-after-free on address 0x6290000cd260 at pc 0x7fffccdde987 bp 0x7fffffffa7e0 sp 0x7fffffffa7d8
READ of size 4 at 0x6290000cd260 thread T0
#0 0x7fffccdde986 in impl_clear ../spa/plugins/support/loop.c:896
#1 0x7ffff404a5cf in unref_handle ../src/pipewire/pipewire.c:211
#2 0x7ffff404eb46 in pw_deinit ../src/pipewire/pipewire.c:701
#3 0x47520d in uninit ../audio/out/ao_pipewire.c:300
#4 0x48d193 in init ../audio/out/ao_pipewire.c:564
#5 0x457118 in ao_init ../audio/out/ao.c:218
#6 0x458d18 in ao_init_best ../audio/out/ao.c:339
#7 0x6731f0 in reinit_audio_filters_and_output ../player/audio.c:441
#8 0x676da3 in fill_audio_out_buffers ../player/audio.c:884
#9 0x726ade in run_playloop ../player/playloop.c:1212
#10 0x700842 in play_current_file ../player/loadfile.c:1679
#11 0x702238 in mp_play_files ../player/loadfile.c:1865
#12 0x70e119 in mpv_main ../player/main.c:432
#13 0x4212be in main ../osdep/main-fn-unix.c:5
#14 0x7ffff202924d in __libc_start_call_main (/nix/store/4nlgxhb09sdr51nc9hdm8az5b08vzkgx-glibc-2.35-163/lib/libc.so.6+0x2924d)
#15 0x7ffff2029308 in __libc_start_main_impl (/nix/store/4nlgxhb09sdr51nc9hdm8az5b08vzkgx-glibc-2.35-163/lib/libc.so.6+0x29308)
#16 0x4211f4 in _start (/nix/store/9adf46vcp2kdd9r6l6ja10y31lyvas5p-mpv-0.35.0/bin/mpv+0x4211f4)
0x6290000cd260 is located 96 bytes inside of 16616-byte region [0x6290000cd200,0x6290000d12e8)
freed by thread T0 here:
#0 0x7ffff74b14d7 in free (/nix/store/mdck89nsfisflwjv6xv8ydj7dj0sj2pn-gcc-11.3.0-lib/lib/libasan.so.6+0xb14d7)
#1 0x7ffff404a649 in unref_handle ../src/pipewire/pipewire.c:215
previously allocated by thread T0 here:
#0 0x7ffff74b1987 in __interceptor_calloc (/nix/store/mdck89nsfisflwjv6xv8ydj7dj0sj2pn-gcc-11.3.0-lib/lib/libasan.so.6+0xb1987)
#1 0x7ffff404cdec in load_spa_handle ../src/pipewire/pipewire.c:275
#2 0x7ffff46f86bf (/nix/store/r9zxh0cajydxnqjjdrfhf544qvg4bl4c-pipewire-0.3.60-lib/lib/libpipewire-0.3.so.0+0xcf86bf)
SUMMARY: AddressSanitizer: heap-use-after-free ../spa/plugins/support/loop.c:896 in impl_clear
Shadow bytes around the buggy address:
0x0c52800119f0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c5280011a00: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c5280011a10: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c5280011a20: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c5280011a30: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
=>0x0c5280011a40: fd fd fd fd fd fd fd fd fd fd fd fd[fd]fd fd fd
0x0c5280011a50: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x0c5280011a60: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x0c5280011a70: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x0c5280011a80: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x0c5280011a90: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
Shadow byte legend (one shadow byte represents 8 application bytes):
Addressable: 00
Partially addressable: 01 02 03 04 05 06 07
Heap left redzone: fa
Freed heap region: fd
Stack left redzone: f1
Stack mid redzone: f2
Stack right redzone: f3
Stack after return: f5
Stack use after scope: f8
Global redzone: f9
Global init order: f6
Poisoned by user: f7
Container overflow: fc
Array cookie: ac
Intra object redzone: bb
ASan internal: fe
Left alloca redzone: ca
Right alloca redzone: cb
Shadow gap: cc
==1228751==ABORTING
[Thread 0x7fffcb1ff640 (LWP 1228784) exited]
[Thread 0x7fffd234d640 (LWP 1228782) exited]
[Thread 0x7fffd2b64640 (LWP 1228781) exited]
[Thread 0x7fffd337b640 (LWP 1228780) exited]
[Thread 0x7fffd3b92640 (LWP 1228779) exited]
[Thread 0x7fffd43aa640 (LWP 1228778) exited]
[Thread 0x7fffd4bc1640 (LWP 1228777) exited]
[Thread 0x7fffd53d8640 (LWP 1228776) exited]
[Thread 0x7fffd5bef640 (LWP 1228775) exited]
[Thread 0x7fffd6c1d640 (LWP 1228773) exited]
[Thread 0x7fffd7434640 (LWP 1228772) exited]
[Thread 0x7fffd7c4b640 (LWP 1228771) exited]
[Thread 0x7fffd8462640 (LWP 1228770) exited]
[Thread 0x7fffd8f82640 (LWP 1228769) exited]
[Thread 0x7fffd9bd0640 (LWP 1228768) exited]
[Thread 0x7fffda3e7640 (LWP 1228767) exited]
[Thread 0x7fffdabfe640 (LWP 1228766) exited]
[Thread 0x7fffdb3ff640 (LWP 1228765) exited]
[Thread 0x7fffe49f9640 (LWP 1228764) exited]
[Thread 0x7fffe5ccb640 (LWP 1228762) exited]
[Thread 0x7fffe86fa640 (LWP 1228761) exited]
[Thread 0x7fffe8efb640 (LWP 1228758) exited]
[Thread 0x7fffe96fc640 (LWP 1228757) exited]
[Thread 0x7fffe9efd640 (LWP 1228756) exited]
[Thread 0x7fffea6fe640 (LWP 1228755) exited]
[Thread 0x7fffeaeff640 (LWP 1228754) exited]
[Thread 0x7fffee6bfbc0 (LWP 1228751) exited]
[Thread 0x7fffd6406640 (LWP 1228774) exited]
[New process 1228751]
[Inferior 1 (process 1228751) exited with code 01]
(gdb)
quit