Faça o script de brilho da execução da tecla fn no Macbook pro 11, 5

2

Laptop: MacbookPro 11,5 com AMD gpu

OS: Lubuntu 17,04

Eu segui as instruções no link e funcionou.

  1. desativa a troca automática de gpu no MacOS X (não tenho certeza se isso ajudou).
  2. faça o download e compile o link
  3. sudo setpci -v -H1 -s 00:01.00 BRIDGE_CONTROL=0
  4. sudo gmux_backlight 120
  5. pode ajustar o brilho com o script.

O problema é que

  1. Tem que usar sudo everytime
  2. A tecla F1 / F2 não altera o brilho.

Como consertar isso?

Atualização (após resposta de terdon )

Movido o gmux_backlight para /usr/sbin/

Usado sudo visudo para permitir que cada usuário execute gmux_backlight com sudo e sem inserir senha.

<username1> ALL=NOPASSWD:/usr/sbin/gmux_backlight
<username2> ALL=NOPASSWD:/usr/sbin/gmux_backlight
<username3> ALL=NOPASSWD:/usr/sbin/gmux_backlight

Crie /etc/init.d/gmux_backlight_fix e sudo chmod +x do script.

#!/bin/bash -e
setpci -v -H1 -s 00:01.00 BRIDGE_CONTROL=0 >/dev/null

Symlink o script para executar o nível 2 (o nível de execução grpahical para o Ubuntu) com menor prioridade (99), seguindo Como executar um script durante a inicialização como root .

sudo ln -s /etc/init.d/gmux_backlight_fix /etc/rc2.d/S99gmux_backlight_fix

Adicionado à seção de ~/.config/openbox/lubuntu-rc.xml para cada usuário.

<keyboard>
  <chainQuitKey>C-g</chainQuitKey>

  <!-- My Keys -->
  <keybind key="XF86LaunchA">
    <action name="Execute">
      <command>sudo gmux_backlight -10</command>
    </action>
  </keybind>
  <keybind key="XF86LaunchB">
    <action name="Execute">
      <command>sudo gmux_backlight +10</command>
    </action>
  </keybind>

Eu uso Fn-F3 e Fn-F4 porque o Lubuntu não pode detectar automaticamente Fn-F1 e Fn-F2 no laptop.

Inicialmente eu escrevi um script bash que leva argumento e concede a cada usuário para executá-lo com o sudo. Um tempo depois, eu me preocupo que as pessoas possam quebrar o script e executar qualquer comando com privilégio de sudo. Então eu uso o binário compilado em vez do meu script bash.

O script antigo é /usr/sbin/gmux_capped_backlight :

#!/bin/bash -e

# setpci
setpci -v -H1 -s 00:01.00 BRIDGE_CONTROL=0 >/dev/null

# Get current brightness
CB="$( cat /sys/class/backlight/gmux_backlight/brightness )"

# Split characters of argument
arg=
first_char=${arg:0:1}
other_char=${arg:1}

# Desired Brightness
if [ $first_char == "+" ]; then 
    Brightness=$(expr $CB + $other_char)
elif [ $first_char == "-" ]; then
    Brightness=$(expr $CB - $other_char)
else
    Brightness=$arg
fi

# Limit the range of brightness #
Max=1024
Min=0

if [ $Brightness -gt $Max ]; then
    Brightness=$Max
fi
if [ $Brightness -lt $Min ]; then
    Brightness=$Min
fi
    
por hamster on wheels 09.07.2017 / 01:01

1 resposta

2

Já que você diz que já pode ajustar isso usando um script, parece que você já está quase lá. Você só precisa:

  1. Configure sudo para permitir a execução desse script específico pelo usuário sem uma senha. Primeiro, abra um terminal e execute sudo visudo . Isso trará uma janela do seu editor padrão. Adicione esta linha ao arquivo:

    terdon  ALL=NOPASSWD:/path/to/your/script
    

    Obviamente, altere terdon para seu nome de usuário e altere /path/to/your/script para qualquer que seja o caminho para o seu script. Isso tornará sua vida mais fácil se você puder garantir que o caminho não tenha espaços. Agora, salve o arquivo e feche-o.

  2. Agora você pode executar o script sem precisar digitar a senha do root, então tudo que você precisa fazer é atribuir os comandos para aumentar e diminuir o brilho para as teclas F1 / F2. Eu não uso o LXDE, mas eu encontrei um tópico no fórum aqui que sugere que você pode fazer isso editando ~/.config/openbox/lxde-rc.xml e adicionando algo assim:

    <keybind key="F2">
      <action name="Execute">
        <command>/path/to/your/script increaseBrightness</command>
      </action>
    </keybind>
    <keybind key="F1">
      <action name="Execute">
        <command>/path/to/your/script decreaseBrightness</command>
      </action>
    </keybind>
    

    Para ambos os casos, use o parâmetro que seu script levaria para aumentar / diminuir o brilho.

    Como alternativa, você também pode fazer isso instalando xbindkeys :

    sudo apt-get install xbindkeys
    

    Crie o arquivo de configurações padrão:

    xbindkeys --defaults > '~/.xbindkeysrc'
    

    Obtenha os códigos de teclas corretos para as suas chaves. Provavelmente será algo como F1 . Em seguida, edite ~/.xbindkeysrc e adicione estes:

    "/path/to/your/script increaseBrightness"
    F2
    
    "/path/to/your/script decreaseBrightness"
    F1
    

    Por fim, execute xbindkeys e seus atalhos devem funcionar. Adicione-o à sua lista de programas de inicialização para que ele seja sempre executado quando você efetuar login.

por terdon 09.07.2017 / 01:50