[Desktop] 有没有什么办法能禁用tty5的快捷方式
Tofloor
poster avatar
灵兮之
deepin
2022-01-15 20:14
Author

Ctrl+Alt+F5进入tty5,这个命令有没有办法在哪个文件里面修改掉,把它禁用掉?

Reply Favorite View the author
All Replies
deepin-superuser
deepin
2022-01-15 21:58
#1

你可以试试这个

https://unix.stackexchange.com/questions/34158/rebinding-disabling-ctrlaltf-virtual-terminal-console-switching

Reply View the author
灵兮之
deepin
2022-01-15 23:49
#2
deepin-superuser

你可以试试这个

https://unix.stackexchange.com/questions/34158/rebinding-disabling-ctrlaltf-virtual-terminal-console-switching

看了,不太明白是怎么操作的

系统里面的键盘快捷键没有tty的设置项

kde里面也没找到里面提到的设置项

改文件的方式不懂要怎么改了

Reply View the author
灵兮之
deepin
2022-01-16 00:07
#3
deepin-superuser

你可以试试这个

https://unix.stackexchange.com/questions/34158/rebinding-disabling-ctrlaltf-virtual-terminal-console-switching

有点明白了,就是在终端里面输入那些命令

全部禁用setxkbmap -option srvrkeys:none

取消禁用setxkbmap -option ''

开机自动设置要在 /etc/X11/Xsession.d/65srvrkeys-none这个文件里面写入上面的命令并且加入权限,但是这个路径里面找不到 65srvrkeys-none这个文件

不知道要怎么弄,新建一个txt文件吗

Reply View the author
灵兮之
deepin
2022-01-16 00:13
#4

能开机自动禁用全部alt+ctrl+Fn了,但是还是不知道如何单独禁用alt+ctrl+F5

setxkbmap -option srvrkeys:none 这一句要怎么写才是单独禁用alt+ctrl+F5的呢

Reply View the author
deepin-superuser
deepin
2022-01-16 00:14
#5
灵兮之

有点明白了,就是在终端里面输入那些命令

全部禁用setxkbmap -option srvrkeys:none

取消禁用setxkbmap -option ''

开机自动设置要在 /etc/X11/Xsession.d/65srvrkeys-none这个文件里面写入上面的命令并且加入权限,但是这个路径里面找不到 65srvrkeys-none这个文件

不知道要怎么弄,新建一个txt文件吗

这个我也没太看明白,不过下边的那个我看明白了

先新建个空白文件,完成后打开

sudo deepin-editor /usr/share/X11/xorg.conf.d/65-setxkbmap

粘贴下边的文本,保存,然后重启试试

Section "ServerFlags"
    Option "DontVTSwitch" "on"
EndSection

Section "InputClass"
    Identifier "keyboard defaults"
    MatchIsKeyboard "on"
    Option "XKbOptions" "srvrkeys:none"
EndSection
Reply View the author
deepin-superuser
deepin
2022-01-16 00:20
#6
灵兮之

能开机自动禁用全部alt+ctrl+Fn了,但是还是不知道如何单独禁用alt+ctrl+F5

setxkbmap -option srvrkeys:none 这一句要怎么写才是单独禁用alt+ctrl+F5的呢

找了一圈,没找到怎么单独禁用,都是全部禁用的

Reply View the author
观摩
deepin
2022-01-16 01:00
#7

不建议全部禁用,在dde卡死的情况下进ttyX还是有大用处的

Reply View the author
waiting
deepin
2022-01-17 07:17
#8

Ctrl + Alt + F2/3/4/5 都可以进入控制台,可以单独关闭么

Reply View the author
灵兮之
deepin
2022-01-17 16:54
#9
waiting

Ctrl + Alt + F2/3/4/5 都可以进入控制台,可以单独关闭么

我感觉应该是可以,只是还没找到具体的方法

全部禁用setxkbmap -option srvrkeys:none

取消禁用setxkbmap -option ""

看这两句的格式,前面setxkbmap -option这个是一样,就是后面要怎么把对应的F几写上的问题

Reply View the author
灵兮之
deepin
2022-01-17 16:56
#10
观摩

不建议全部禁用,在dde卡死的情况下进ttyX还是有大用处的

卡死了就直接电源强制关机了

我设置了个F5刷新的右键选项, 不知道为何电脑用一段时间之后,点那个刷新就跳进tty5,所以我就想把这个给取消掉

Reply View the author
xxNull
deepin
2024-04-05 10:02
#11

正确的做法是:

  1. 打开 /usr/share/X11/xkb/compat/xfree86
// XFree86 special keysyms.

default partial xkb_compatibility "basic" {

    interpret.repeat= True;

    interpret  XF86_Switch_VT_1 {
        action = SwitchScreen(Screen=1, !SameServer);
    };
    interpret  XF86_Switch_VT_2 {
        action = SwitchScreen(Screen=2, !SameServer);
    };
    interpret  XF86_Switch_VT_3 {
        action = SwitchScreen(Screen=3, !SameServer);
    };
    interpret  XF86_Switch_VT_4 {
        action = SwitchScreen(Screen=4, !SameServer);
    };
    interpret  XF86_Switch_VT_5 {
        action = SwitchScreen(Screen=5, !SameServer);
    };
    interpret  XF86_Switch_VT_6 {
        action = SwitchScreen(Screen=6, !SameServer);
    };
    interpret  XF86_Switch_VT_7 {
        action = SwitchScreen(Screen=7, !SameServer);
    };
    interpret  XF86_Switch_VT_8 {
        action = SwitchScreen(Screen=8, !SameServer);
    };
    interpret  XF86_Switch_VT_9 {
        action = SwitchScreen(Screen=9, !SameServer);
    };
    interpret  XF86_Switch_VT_10 {
        action = SwitchScreen(Screen=10, !SameServer);
    };
    interpret  XF86_Switch_VT_11 {
        action = SwitchScreen(Screen=11, !SameServer);
    };
    interpret  XF86_Switch_VT_12 {
        action = SwitchScreen(Screen=12, !SameServer);
    };

    interpret XF86LogGrabInfo {
        action = Private(type=0x86, data="PrGrbs");
    };
    interpret XF86LogWindowTree {
        action = Private(type=0x86, data="PrWins");
    };

    interpret XF86_Next_VMode {
        action = Private(type=0x86, data="+VMode");
    };
    interpret XF86_Prev_VMode {
        action = Private(type=0x86, data="-VMode");
    };
};

partial xkb_compatibility "grab_break" {
    interpret XF86_Ungrab {
        action = Private(type=0x86, data="Ungrab");
    };
    interpret XF86_ClearGrab {
        action = Private(type=0x86, data="ClsGrb");
    };
};

把其中 XF86_Switch_VT_5的部分通过 //注释掉。

// XFree86 special keysyms.

default partial xkb_compatibility "basic" {

    interpret.repeat= True;

    interpret  XF86_Switch_VT_1 {
        action = SwitchScreen(Screen=1, !SameServer);
    };
    interpret  XF86_Switch_VT_2 {
        action = SwitchScreen(Screen=2, !SameServer);
    };
    interpret  XF86_Switch_VT_3 {
        action = SwitchScreen(Screen=3, !SameServer);
    };
    interpret  XF86_Switch_VT_4 {
        action = SwitchScreen(Screen=4, !SameServer);
    };
    //interpret  XF86_Switch_VT_5 {
    //    action = SwitchScreen(Screen=5, !SameServer);
    //};
    interpret  XF86_Switch_VT_6 {
        action = SwitchScreen(Screen=6, !SameServer);
    };
    interpret  XF86_Switch_VT_7 {
        action = SwitchScreen(Screen=7, !SameServer);
    };
    interpret  XF86_Switch_VT_8 {
        action = SwitchScreen(Screen=8, !SameServer);
    };
    interpret  XF86_Switch_VT_9 {
        action = SwitchScreen(Screen=9, !SameServer);
    };
    interpret  XF86_Switch_VT_10 {
        action = SwitchScreen(Screen=10, !SameServer);
    };
    interpret  XF86_Switch_VT_11 {
        action = SwitchScreen(Screen=11, !SameServer);
    };
    interpret  XF86_Switch_VT_12 {
        action = SwitchScreen(Screen=12, !SameServer);
    };

    interpret XF86LogGrabInfo {
        action = Private(type=0x86, data="PrGrbs");
    };
    interpret XF86LogWindowTree {
        action = Private(type=0x86, data="PrWins");
    };

    interpret XF86_Next_VMode {
        action = Private(type=0x86, data="+VMode");
    };
    interpret XF86_Prev_VMode {
        action = Private(type=0x86, data="-VMode");
    };
};

partial xkb_compatibility "grab_break" {
    interpret XF86_Ungrab {
        action = Private(type=0x86, data="Ungrab");
    };
    interpret XF86_ClearGrab {
        action = Private(type=0x86, data="ClsGrb");
    };
};

  1. 重启生效
    重启后,在图形界面再按 CTRL+ALT+F5就不会再进去tty5了。不过,如果你先按了 Ctrl+Alt+F4进入了tty4,再按 CTRL+ALT+F5依旧可以进入tty5。这是因为在终端的行为不是xkb决定的。如果想要禁用估计要查一下systemd的配置。很久以前我记得可以在xinit里面,可是,现在已经不再用xinit了。

    另外,你可以通过 xkbcomp $DISPLAY output.xkb && cat output.xkb | grep SwitchScreen && rm output.xkb 验证配置是否生效。

Reply View the author