Desativar barra de rolagem no novo quadro


10

Gostaria de garantir que as barras de rolagem nunca apareçam nas minhas janelas, mas notei recentemente que quando criei um novo quadro com C-x 5 2o novo quadro obtém uma barra de rolagem, mesmo que o quadro original não. As linhas que podem ser relevantes da minha init.elestão abaixo:

(scroll-bar-mode -1)
(if (fboundp 'scroll-bar-mode) (scroll-bar-mode -1))
(if (fboundp 'tool-bar-mode) (tool-bar-mode -1))
(if (fboundp 'menu-bar-mode) (menu-bar-mode -1))

Ainda posso usá M-x toggle-scroll-bar-lo para desativá-lo no novo quadro, mas acho que isso não seria necessário.

Para esclarecer, estou usando o emacsclient -c &Emacs no Ubuntu e, quando faço isso, recebo uma barra de rolagem. C-h v scroll-bar-modeme dá:

scroll-bar-mode is a variable defined in `scroll-bar.el'.
Its value is nil
Original value was right

Documentation:
Specify whether to have vertical scroll bars, and on which side.
Possible values are nil (no scroll bars), `left' (scroll bars on left)
and `right' (scroll bars on right).
To set this variable in a Lisp program, use `set-scroll-bar-mode'
to make it take real effect.
Setting the variable with a customization buffer also takes effect.

You can customize this variable.

Portanto, o valor de scroll-bar-modeé definido corretamente como nil, mas de alguma forma o Emacs está ignorando isso para me fornecer uma barra de rolagem de qualquer maneira.

Respostas:


8

Também corri para esse problema, até adicionar o código a seguir. (Acredito que me deparei com o trecho aqui no Stack Exchange, mas desculpe não me lembro do autor.)

(defun my/disable-scroll-bars (frame)
  (modify-frame-parameters frame
                           '((vertical-scroll-bars . nil)
                             (horizontal-scroll-bars . nil))))
(add-hook 'after-make-frame-functions 'my/disable-scroll-bars)

3

Você pode ajustar os parâmetros dos quadros no default-frame-alistque dizer Emacs você nunca quer barras de rolagem. Adicione o seguinte ao seu arquivo init:

(add-to-list 'default-frame-alist
             '(vertical-scroll-bars . nil))

Eu sinto que isso deve funcionar, mas não funciona. Ainda pegue a barra de rolagem, mas apenas no segundo quadro.
Ryan

@ Ryan: estranho! O acima funciona para mim. A única outra coisa no meu arquivo init que pode ser relevante é uma antiga (toggle-scroll-bar -1)que eu não havia removido. Você pode tentar adicionar isso também, mas além disso, estou sem palpites.
Dan

Ok, então ele realmente funciona no Ubuntu, mas não no Windows. Da próxima vez que estiver do lado do Windows, vou verificar (toggle-scroll-bar).
Ryan

Agora nem sei o que pensar. Reiniciei e agora também não está funcionando no Ubuntu. Cada novo quadro é criado com a barra de rolagem, e eu tenho M-x toggle-scroll-barque me livrar dele.
Ryan

Sim, o MS Windows é particular nisso. Fora isso, eu recomendaria a opção de personalização default-frame-alist . Há uma razão para ser uma opção do usuário.
Tirou

1

Nem todo mundo deseja usar a personalização, mas usá-lo para desativar as barras de rolagem faz com que o problema desapareça. As variáveis ​​que você deseja são: scroll-bar-modee horizontal-scroll-bar-mode.

Se não estiver usando um arquivo de personalização, a personalização ainda poderá ser utilizada colocando-as em seu init:

;; disable scrollbars
(customize-set-variable 'scroll-bar-mode nil)
(customize-set-variable 'horizontal-scroll-bar-mode nil)

Isso será suficiente para desativar toda e qualquer barra de rolagem em qualquer tipo de quadro.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.