Editor Atom: desativa o anti-aliasing

7

Eu tenho usado o Sublime Text 2 por um tempo e estou tentando mudar para o editor Atom do GitHub. Provavelmente, o único problema que ainda não resolvi é a renderização da fonte. O texto no editor do Atom está muito borrado.

Em qualquer outro lugar (incluindo o Chrome), o texto é nítido e pode ser lido. Mas não para o Atom. Para comparação: renderização de texto para Atom (primeira linha) e Sublime Texto 2 (segunda linha).

AmbososeditoresusamotemaMonokai,comamesmafonte(Consolas,tamanho12)ecordafonte.

MeusistemaoperacionaléoWindows8.1Prox64eoClearTypeestádesativado.EuestouusandoaversãomaisrecentedoAtom,queatualmenteé1.0.11.

Jáfizumapesquisaextensaeencontreimuitassoluções,masnenhumadelasfuncionou.Porexemplo: this , esta , isto , e isto .

UPDATE

Eu fiz algum progresso no tópico. Se eu desabilitar o DirectWrite, o texto fica mais nítido, mas outras imagens e gráficos ficam mais escorregadios. Mas desde que eu olho para o texto 99% do tempo, isso não é um problema.

Minha solução para desabilitar o DirectWrite é adicionar --disable-direct-write ao iniciar o Atom a partir do prompt de comando. No entanto, não estou satisfeito com esta solução, uma vez que não funciona quando abro o Atom a partir do Menu Iniciar, Barra de Tarefas ou menu de Contexto ("Abrir com Atom").

Pergunta atualizada : como adicionar permanentemente o argumento --disable-direct-write ao Atom para que ele se aplique ao iniciar a partir da Barra de tarefas , Menu Iniciar ou Menu de contexto Abrir com Atom .

    
por alesc 07.09.2015 / 20:24

3 respostas

3

Eu resolvi o problema com um script personalizado de pós-atualização, que corrige as entradas do Registro e os atalhos do Menu Iniciar para adicionar o argumento --disable-direct-write .

Atalhos

Como afirmei na resposta do @ codeSwift4Life, acrescentar --disable-direct-write não funcionará com atalhos para o processo Update.exe (que na verdade é um Squirrel ). No entanto, eu fiz descobri como anexar argumentos ao comando --processStart atom.exe . Veja esta questão .

Portanto, se você deseja alterar o atalho Atom para acrescentar --disable-direct-write , é necessário alterá-lo de:

C:\Users\USERNAME\AppData\Local\atom\Update.exe --processStart atom.exe

para uma das seguintes linhas:

C:\Users\USERNAME\AppData\Local\atom\Update.exe --processStart atom.exe -a "--disable-direct-write"
C:\Users\USERNAME\AppData\Local\atom\Update.exe --processStart atom.exe --process-start-args "--disable-direct-write"

Menu de contexto

Para alterar o menu de contexto "Abrir com Atom", você precisa atualizar algumas entradas do Registro. Altere-os de:

X:\Path\to\atom\app-1.0.xx\atom.exe "%V"

para:

X:\Path\to\atom\app-1.0.xx\atom.exe "%V" --disable-direct-write

Script de pós-atualização automatizado

Mas, como há muitas entradas de registro e você precisa repetir tudo após cada atualização (e as atualizações são muito frequentes), as alterações manuais não são viáveis.

Por isso, criei um script de pós-atualização automatizado, que atualiza tudo automaticamente. Você só precisa executá-lo após cada atualização do Atom.

A base do meu script de pós-atualização era este script de café , que é na verdade o script de ações que substitui todas as nossas alterações manuais.

Você precisa alterar o script mencionado da seguinte maneira:

Alterar:

createShortcuts = (callback) ->
  spawnUpdate(['--createShortcut', exeName], callback)

para:

createShortcuts = (callback) ->
  spawnUpdate(['--createShortcut', exeName, '--process-start-args', '--disable-direct-write'], callback)

Alterar:

  installMenu = (keyPath, arg, callback) ->
    args = [keyPath, '/ve', '/d', 'Open with Atom']
    addToRegistry args, ->
      args = [keyPath, '/v', 'Icon', '/d', process.execPath]
      addToRegistry args, ->
        args = ["#{keyPath}\command", '/ve', '/d', "#{process.execPath} \"#{arg}\""]
        addToRegistry(args, callback)

para:

  installMenu = (keyPath, arg, callback) ->
    args = [keyPath, '/ve', '/d', 'Open with Atom']
    addToRegistry args, ->
      args = [keyPath, '/v', 'Icon', '/d', atomExe]
      addToRegistry args, ->
        args = ["#{keyPath}\command", '/ve', '/d', "#{atomExe} \"#{arg}\" --disable-direct-write"]
        addToRegistry(args, callback)

A variável atomExe é definida da seguinte forma (coloque-a no topo, mas após as linhas require ):

# Get the latest version of atom.exe
parentDir = fs.listSync('..').filter (x) -> x.indexOf('app-') > -1;
[..., atomDir] = parentDir
atomExe = path.join(path.resolve(atomDir), 'atom.exe')

Além disso, você precisa encontrar / substituir process.execPath por atomExe . Isso é necessário porque o script será executado diretamente via Node e a variável process aponta para Node em vez de Atom.

Por fim, adicione as seguintes linhas ao final do script para executar atalhos e atualizações do registro:

# Update shortcuts, install context menu
updateShortcuts ->
  installContextMenu ->

O script é executado com coffee squirrel-update.coffee . Você deve colocá-lo em uma nova subpasta dentro da pasta AppData\Local\atom . Você também precisará dos pacotes do nó fs-plus e coffee-script para executar o script com êxito.

    
por 26.09.2015 / 17:55
2

Se você se sentir à vontade para invadir o código-fonte Atom, poderá desativar manualmente a gravação direta modificando o seguinte arquivo na árvore de origem: atom/src/browser/atom-window.coffee

Especificamente, nas linhas 29 a 31:

  'web-preferences':
    'direct-write': true
    'subpixel-font-scaling': false

Eu não acredito que a opção direct-write esteja exposta à API de script ainda, então você teria que modificar & recompilar Atom manualmente. Eu também tentaria a opção subpixel-font-scaling , que também pode ajudar a aumentar a clareza do processamento de texto.

    
por 25.09.2015 / 18:48
0

Abra no Navegador de arquivos. C:\Users\your-username\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\GitHub, Inc Em seguida, clique com o botão direito do mouse em Atom e escolha propriedades. Então, abaixo do alvo, adicione --disable-direct-write no final. Certifique-se de substituir your-username pelo nome da sua pasta pessoal. Além disso, certifique-se de que, se houver outros atalhos, corrija-os.

    
por 21.09.2015 / 17:46