AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / user-473048

Alexander Praehauser's questions

Martin Hope
Alexander Praehauser
Asked: 2024-08-14 16:17:26 +0800 CST

Descubra o identificador do teclado para X11

  • 5

Eu tenho um layout de teclado personalizado para o teclado padrão do meu laptop e outros teclados adicionados, que é definido /etc/X11/xorg.conf.d/00-keyboard.confassim:

Section "InputClass"
        Identifier "system-keyboard"
        MatchIsKeyboard "on"
        Option "XkbLayout" "dxkb"
        Option "XkbVariant" "main"
EndSection

Mas, mais recentemente, fiz um teclado Lily58 e gostaria de fazer uma variante do meu mapa de teclado que se aplicasse automaticamente ao Lily58, mas não a outros teclados, como este:

Section "InputClass"
        Identifier "Lily58"
        MatchIsKeyboard "on"
        Option "XkbLayout" "dxkb"
        Option "XkbVariant" "lily58"
EndSection

o problema é como descobrir o identificador do Lily58. Todos os recursos que encontrei apenas mencionam o identificador system-keyboard, mas não identificadores para teclados específicos, e usar Lily58como acima não pareceu reconhecer o teclado. Como descubro o identificador correto para o teclado?

x11
  • 1 respostas
  • 9 Views
Martin Hope
Alexander Praehauser
Asked: 2024-08-11 02:53:26 +0800 CST

Comando para puxar a unidade de CD

  • 5

Gostaria de digitalizar minha coleção de CDs. A maneira mais rápida de fazer isso é criar um comando que extraia a unidade de CD, invocar abcde para extrair e ejetar automaticamente a unidade e vincular esse comando a uma chave. A única parte necessária para escrever esse comando que não sei é qual comando pode ser usado para extrair minha unidade de CD automaticamente, basicamente o inverso de eject. Alguém conhece esse comando?

data-cd
  • 1 respostas
  • 30 Views
Martin Hope
Alexander Praehauser
Asked: 2024-08-04 17:24:25 +0800 CST

Como faço para reproduzir áudio através do ssh sem usar primeiro a placa de som através do login físico?

  • 5

Eu tenho um Raspberry Pi com Gentoo que uso para reproduzir áudio. A ideia é fazer login através do ssh e reproduzir o áudio na linha de comando. Mas quando eu faço login nele sem ter feito login fisicamente primeiro e uso a placa de som, recebo alsamixer:

ALSA lib /var/tmp/portage/media-libs/alsa-lib-1.2.11/work/alsa-lib-1.2.11/src/confmisc.c:855:(parse_card) cannot find card '0'
ALSA lib /var/tmp/portage/media-libs/alsa-lib-1.2.11/work/alsa-lib-1.2.11/src/conf.c:5204:(_snd_config_evaluate) function snd_func_card_inum returned error: File or directory not found
ALSA lib /var/tmp/portage/media-libs/alsa-lib-1.2.11/work/alsa-lib-1.2.11/src/confmisc.c:422:(snd_func_concat) error evaluating strings
ALSA lib /var/tmp/portage/media-libs/alsa-lib-1.2.11/work/alsa-lib-1.2.11/src/conf.c:5204:(_snd_config_evaluate) function snd_func_concat returned error: File or directory not found
ALSA lib /var/tmp/portage/media-libs/alsa-lib-1.2.11/work/alsa-lib-1.2.11/src/confmisc.c:1342:(snd_func_refer) error evaluating name
ALSA lib /var/tmp/portage/media-libs/alsa-lib-1.2.11/work/alsa-lib-1.2.11/src/conf.c:5204:(_snd_config_evaluate) function snd_func_refer returned error: File or directory not found
ALSA lib /var/tmp/portage/media-libs/alsa-lib-1.2.11/work/alsa-lib-1.2.11/src/conf.c:5727:(snd_config_expand) Evaluate error: File or directory not foundccc
ALSA lib /var/tmp/portage/media-libs/alsa-lib-1.2.11/work/alsa-lib-1.2.11/src/control/control.c:1570:(snd_ctl_open_noupdate) Invalid CTL default
Error when opening mixer: File or directory not found

De modo mais geral, não consigo reproduzir áudio neste momento. Se eu primeiro fizer login fisicamente e ligar alsamixer, depois usar alsamixerpor meio de ssh, ele funcionará e também poderei reproduzir áudio. Então, acho que de alguma forma posso ativar a placa de som através do meu login físico de uma forma que não posso apenas usá-la através do ssh, e uma vez ativada, posso usá-la através do ssh também. Como posso ativar minha placa de som sem precisar fazer login fisicamente?

Editar: parece que o ssh não atribui um lugar às minhas sessões.

ssh
  • 1 respostas
  • 41 Views
Martin Hope
Alexander Praehauser
Asked: 2024-07-18 04:30:50 +0800 CST

Systemd-user-service para ativar o teclado não dá erro, mas não funciona

  • 5

Eu tenho um teclado de laptop ruim e um Lily58 muito melhor, então escrevi um script bash para poder desabilitar o teclado do meu laptop para que eu possa colocar o Lily58 nele e reativá-lo depois. Mas quando eu desativo o teclado do laptop, ele permanece desativado se eu colocar o laptop em suspensão, enquanto eu preferiria que ele fosse reativado automaticamente na retomada. Então eu escrevi um pequeno script bash

#!/bin/bash

fconfig="/home/alex/.keyboard" 
id=$(xinput | grep AT | sed -n '2,2p' | awk '{print $7}' | sed 's/[^0-9]*//g')

if [ -f $fconfig ]; then
  read -r var< $fconfig
  if [ "$var" = "disabled" ]; then
      xinput enable $id
      echo "enabled" > $fconfig
  fi
fi

Isso verifica se "desativado" está no arquivo /home/alex/.keyboardque rastreia se o teclado está ativado e, se estiver, é executado xinputpara reativar usando o ID obtido ao examinar a saída xinput da maneira usada na definição de e id, em seguida, definir /home/alex/.keyboardcomo enabled. Isso funciona como deveria quando eu aciono o script bash do terminal, mas quando eu inicio o serviço systemd

[Unit]
Description=This service enables your keyboard after suspension
PartOf=graphical-session.target

[Service]
Type=oneshot
ExecStart=/home/alex/bash/enable-keyboard

[Install]
WantedBy=multi-user.target

que desejo executar após a suspensão, ele é definido, /home/alex/.keyboardmas enabledna verdade não reativa meu teclado. Além disso, journalctl -xeu enable-keyboard.servicenão indica nenhum erro:

Jul 17 22:16:25 gentoolaptop systemd[795]: Starting This service enables your keyboard after suspension.
░░ Subject: A start job for unit UNIT has begun execution
░░ Defined-By: systemd
░░ Support: https://gentoo.org/support/
░░ 
░░ A start job for unit UNIT has begun execution.
░░ 
░░ The job identifier is 8969.
Jul 17 22:16:25 gentoolaptop systemd[795]: Finished This service enables your keyboard after suspension.
░░ Subject: A start job for unit UNIT has finished successfully
░░ Defined-By: systemd
░░ Support: https://gentoo.org/support/
░░ 
░░ A start job for unit UNIT has finished successfully.
░░ 
░░ The job identifier is 8969.

O que está errado?

Editar: se eu colocar uma cláusula no script para imprimir a saída xinputem um arquivo, a saída consistirá em uma linha vazia.

Editar: a saída de systemctl --user status dbus.socket dbus.serviceé

● dbus.socket - D-Bus User Message Bus Socket
Loaded: loaded (/usr/lib/systemd/user/dbus.socket; static)
                Active: active (running) since Thu 2024-07-18 17:22:54 CEST; 5 days ago
                Triggers: ● dbus.service
                Listen: /run/user/1000/bus (Stream)
                Tasks: 0 (limit: 47295)
                Memory: 4.0K (peak: 1.5M)
                CPU: 8ms
                CGroup: /user.slice/user-1000.slice/[email protected]/app.slice/dbus.socket

                Jul 18 17:22:54 gentoolaptop systemd[830]: Starting D-Bus User Message Bus Socket...
                Jul 18 17:22:54 gentoolaptop systemd[830]: Listening on D-Bus User Message Bus Socket.

                ● dbus.service - D-Bus User Message Bus
                Loaded: loaded (/usr/lib/systemd/user/dbus.service; static)
                                Active: active (running) since Thu 2024-07-18 17:22:54 CEST; 5 days ago
                                TriggeredBy: ● dbus.socket
                                Docs: man:dbus-daemon(1)
                                Main PID: 897 (dbus-daemon)
                                Tasks: 1 (limit: 47295)
                                Memory: 1.0M (peak: 1.7M)
                                CPU: 252ms
                                CGroup: /user.slice/user-1000.slice/[email protected]/session.slice/dbus.service
                                └─897 /usr/bin/dbus-daemon --session --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only

                                Jul 23 16:55:45 gentoolaptop dbus-daemon[897]: [session uid=1000 pid=897 pidfd=5] Activating via systemd: service name='org.freedesktop.Notifications' unit='dunst.service' requested by ':1.149' (uid=1000 pid=105378 comm="/bin/dunstify Battery <80 Battery under 80%.")
                                Jul 23 17:11:00 gentoolaptop dbus-daemon[897]: [session uid=1000 pid=897 pidfd=5] Failed to activate service 'org.freedesktop.Notifications': timed out (service_start_timeout=120000ms)
                                Jul 23 17:19:31 gentoolaptop dbus-daemon[897]: [session uid=1000 pid=897 pidfd=5] Activating via systemd: service name='org.freedesktop.Notifications' unit='dunst.service' requested by ':1.152' (uid=1000 pid=106706 comm="/bin/dunstify Battery <80 Battery under 80%.")
                                Jul 23 17:21:31 gentoolaptop dbus-daemon[897]: [session uid=1000 pid=897 pidfd=5] Failed to activate service 'org.freedesktop.Notifications': timed out (service_start_timeout=120000ms)
                                Jul 23 17:30:31 gentoolaptop dbus-daemon[897]: [session uid=1000 pid=897 pidfd=5] Activating via systemd: service name='org.freedesktop.Notifications' unit='dunst.service' requested by ':1.153' (uid=1000 pid=108520 comm="/bin/dunstify Battery <80 Battery under 80%.")
                                Jul 23 17:32:31 gentoolaptop dbus-daemon[897]: [session uid=1000 pid=897 pidfd=5] Failed to activate service 'org.freedesktop.Notifications': timed out (service_start_timeout=120000ms)
                                Jul 24 14:15:05 gentoolaptop dbus-daemon[897]: [session uid=1000 pid=897 pidfd=5] Activating via systemd: service name='org.freedesktop.Notifications' unit='dunst.service' requested by ':1.164' (uid=1000 pid=126615 comm="/bin/dunstify Battery <80 Battery under 80%.")
                                Jul 24 14:17:05 gentoolaptop dbus-daemon[897]: [session uid=1000 pid=897 pidfd=5] Failed to activate service 'org.freedesktop.Notifications': timed out (service_start_timeout=120000ms)
                                Jul 24 14:26:05 gentoolaptop dbus-daemon[897]: [session uid=1000 pid=897 pidfd=5] Activating via systemd: service name='org.freedesktop.Notifications' unit='dunst.service' requested by ':1.165' (uid=1000 pid=127823 comm="/bin/dunstify Battery <80 Battery under 80%.")
                                Jul 24 14:28:05 gentoolaptop dbus-daemon[897]: [session uid=1000 pid=897 pidfd=5] Failed to activate service 'org.freedesktop.Notifications': timed out (service_start_timeout=120000ms)

A saída de ls -l /run/user/*/busé

srw-rw-rw-   1 alex           alex            0 2024-07-18 17:22 /run/user/1000/bus
```.
systemd
  • 2 respostas
  • 83 Views
Martin Hope
Alexander Praehauser
Asked: 2024-07-10 22:55:46 +0800 CST

O script de notificação de bateria funciona sozinho, mas não funciona quando acionado por um serviço systemd

  • 5

No meu Gentoo Linux com dunstify como daemon de notificação e StumpWM como gerenciador de janelas, escrevi o seguinte script bash que tem como objetivo me informar sobre o status da bateria:

#!/bin/bash
#This script notifies you if your battery is under 80% and puts the laptop to sleep in 5min if it is under 50% and isn't plugged in within that time.

if ! [ -z "$(acpi -b | cut -c 25)" ] && [[ $(acpi -b | cut -c 25) -lt 8 ]] && ! [[ "$(  acpi -b | cut -c 28)" == "%" ]]
then if ! [ -z "$(acpi -b | cut -c 25)" ] && [[ $(acpi -b | cut -c 25) -lt 5 ]] && ! [[ "$(acpi -b | cut -c 28)" == "%" ]]
     then dunstify "Battery <50" "Battery under 50%, will sleep in 5min."
          sleep 5m
          if ! [ -z "$(acpi -b | cut -c 25)" ] && [[ $(acpi -b | cut -c 25) -lt 5 ]] && ! [[ "$(acpi -b | cut -c 28)" == "%" ]]
          then sudo systemctl suspend
          fi
     else dunstify "Battery <80" "Battery under 80%."
     fi
fi

Isso funciona quando eu o aciono manualmente. No entanto, ele deve ser acionado periodicamente pelo systemd a cada 10 minutos ou mais e me avisar se minha bateria estiver fraca. Então eu escrevi o seguinte serviço systemd:

[Unit]
Description=Checks your battery.
RefuseManualStart=no
RefuseManualStop=yes
 
[Service]
Type=oneshot
ExecStart=/bin/battery

Se a bateria estiver acima de 80% o serviço termina sem problemas, como deveria. Porém, se estiver abaixo de 80% sai com erro. Olhando para o log, encontro o seguinte:

░░ A start job for unit battery.service has begun execution.
░░ 
░░ The job identifier is 79311.
Jul 10 16:02:54 gentoolaptop battery[537360]: Connecting to D-Bus failed: Unable to autolaunc>Jul 10 16:02:54 gentoolaptop systemd[1]: battery.service: Main process exited, code=exited, s>░░ Subject: Unit process exited
░░ Defined-By: systemd
░░ Support: https://gentoo.org/support/
░░ 
░░ An ExecStart= process belonging to unit battery.service has exited.

Tenho tentado executar isso como um serviço de usuário, onde recebo esta mensagem, e como um serviço de sistema, onde sou informado de que XDISPLAY e XAUTHORITY não estão configurados. Por que não consegue enviar mensagens quando acionado como um serviço?

systemd
  • 2 respostas
  • 30 Views
Martin Hope
Alexander Praehauser
Asked: 2024-07-10 20:15:42 +0800 CST

Definir layout permanentemente para todos os teclados no X11

  • 8

No meu laptop rodando Gentoo Linux com StumpWM como gerenciador de janelas, tenho um layout de teclado personalizado chamado daselt, que uso o tempo todo. Até agora eu configurei-o para execução automática setxkbmap daselt daseltna inicialização, mas o problema é que isso só o configura para teclados que estão sempre conectados (como o teclado do meu laptop), mas não para teclados externos que precisam ser adicionados novamente após a suspensão, por exemplo. O que eu gostaria de fazer é definir o layout do teclado como padrão para que todos os teclados sejam configurados quando estiverem conectados. Então eu corri

sudo localectl set-x11-keymap daselt "" daselt

e produziu o arquivo 00-keyboard.conf, cujo conteúdo é

# Written by systemd-localed(8), read by systemd-localed and Xorg. It's
# probably wise not to edit this file manually. Use localectl(1) to
# update this file.
Section "InputClass"
        Identifier "system-keyboard"
        MatchIsKeyboard "on"
        Option "XkbLayout" "daselt"
        Option "XkbVariant" "daselt"
EndSection

No entanto, quando eu, por exemplo, suspendo meu laptop e o acordo novamente, meu teclado externo é adicionado ao layout en-us normal. Como posso fazer com que o layout daselt seja aplicado automaticamente a todos os teclados adicionados?

x11
  • 1 respostas
  • 52 Views
Martin Hope
Alexander Praehauser
Asked: 2024-02-29 01:20:02 +0800 CST

Wake on wlan deveria funcionar, mas não funciona

  • 7

Seguindo estas instruções , descobri que phy0minha área de trabalho deveria suportar wake on wlan e liguei-o.

[root@Arch alex]# iw phy0 wowlan show
WoWLAN is enabled:
 * wake up on magic packet

Porém, quando suspendo o sistema e tento ativá-lo à distância, não funciona:

[alex@Archlaptop tmp]$ wol 44:E5:17:ED:9E:D2r
Waking up 44:E5:17:ED:9E:D2r...

E nada acontece. Além disso, se eu seguir o wiki do Arch , não recebo wake-on-wlan:

[root@Arch alex]# ethtool wlo1
Settings for wlo1:
        Link detected: yes

O que está acontecendo?

networking
  • 1 respostas
  • 25 Views
Martin Hope
Alexander Praehauser
Asked: 2023-10-28 22:51:11 +0800 CST

Condições if numéricas que leem um comando em um script bash

  • 5

Estou tentando escrever um comando que analisa o estado da bateria e suspende o laptop se a bateria estiver fraca. Eu tentei usar algo assim:

#!/bin/bash
if [ $(acpi -b | cut -c 25) < 11 ]
then notify-send "Hello"
fi

Isso funciona, mas por algum motivo, se eu substituir 11 por um número de um dígito como 5, recebo um erro

battery-notify-standby: line 2: 5: No such file or directory

Também tentei substituir o colchete por dois colchetes para designá-lo como uma expressão aritmética. Então eu recebo

battery-notify-standby: line 2: ((: < 11 : syntax error: operand expected (error token is "< 11 ")

Não tenho certeza do que exatamente está errado. Alguém pode me ajudar?

bash
  • 2 respostas
  • 47 Views
Martin Hope
Alexander Praehauser
Asked: 2023-05-05 15:56:46 +0800 CST

Nomes Xkb de brilho, controle de volume e funções de espera

  • 5

Escrevi um layout de teclado personalizado xkbe gostaria de incorporar o controle de volume e brilho, bem como a função de espera e talvez de desligamento, para não ter que alcançar a linha mais alta de teclas quando quiser alterá-las . Mas eu não sei os xkbnomes dessas funções. Alguém os conhece para que eu possa colocá-los no meu xkblayout?

keyboard
  • 1 respostas
  • 15 Views

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Possível firmware ausente /lib/firmware/i915/* para o módulo i915

    • 3 respostas
  • Marko Smith

    Falha ao buscar o repositório de backports jessie

    • 4 respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    user12345 Falha ao buscar o repositório de backports jessie 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl Por que a maioria dos exemplos do systemd contém WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve