Como salvar / lembrar a posição e o tamanho da última janela usada para aplicativos?

58

Ao entrar no Ubuntu, gostaria que todas as janelas abertas na sessão anterior (principalmente no terminal e Firefox) fossem reabertas automaticamente no mesmo tamanho e posição.

Como proceder?

Eric
fonte
11
Como você pode ler aqui, esse recurso foi removido. Sugiro alterar sua pergunta e pedir uma solução alternativa equivalente para oferecer a recompensa.
Jakob
2
Por quê? Você não consegue editar sua pergunta desde que ofereceu essa recompensa? Caso contrário, eu perguntaria algo como "Alguma idéia para uma solução alternativa?" já que esta é uma pergunta interessante!
Jakob
2
"Gostaria de uma resposta e não um link. Especifique o que devo fazer para resolver o problema que estou enfrentando." Você terá que sujar os dedos se quiser um método para fazer isso: +
Rinzwind
2
Relatórios de erros: aqui (06-07-2007) , aqui , aqui (21-03-2008) , aqui , outros aplicativos: aqui , aqui , aqui . Tem mais!
Gerard Roche
11
Possível duplicata que fornece uma resposta 12.04 apropriada? - ou o dupe deve ser mesclado aqui: askubuntu.com/questions/129339/…
fossfreedom

Respostas:

18

Para 12.04 (e 11.10)

A resposta curta é: a hibernação é a melhor opção, porque a funcionalidade gnome-session-save foi removida após o 11.04, pois estava com erros, e o ajuste oficial para reativar manualmente essa funcionalidade não parece funcionar. A parte B desta resposta descreve como usar um método de hibernação alternativo, o TuxOnIce , que é mais compatível e confiável no momento do que a hibernação embutida.

A. Tentando ativar a funcionalidade antiga de salvar sessão do Gnome

  • Nota: conforme descrito no final, esse ajuste oficial não parece funcionar - você pode pular diretamente para B. Hibernação com TuxOnIce
  • Este bug do Launchpad discute a restauração da funcionalidade "salvar sessão". Atualmente, está marcado como "corrigido", porque um patch foi introduzido no gnome-sessionpacote em abril de 2012, permitindo aos usuários reativar manualmente essa funcionalidade. O patch se descreve como:

    • adicione a variável de ambiente GNOME_SESSION_SAVE para pessoas que desejam
      use a sessão de salvamento ainda, sabendo que isso pode danificar seu sistema
      se usado imprudentemente (LP: # 771896)
  • Você pode habilitar isso definindo a GNOME_SESSION_SAVEvariável como um valor não nulo. Aqui está como:

    • Pressione Alt+F2, digite gedit ~/.pam_environmente pressione Enter.
    • Adicione a linha GNOME_SESSION_SAVE=1no final do arquivo, como mostrado abaixo:

    • insira a descrição da imagem aqui

    • Pressione Ctrl+Spara salvar e Ctrl+Qsair do editor.

    • Agora reinicie (o logout também deve funcionar, mas apenas por segurança)
  • O que o patch ( origem ) faz é desativar a guia Opções em Aplicativos de Inicialização, que costumava conter a opção Lembrar de executar aplicativos ao fazer logout . MAS ele verifica a GNOME_SESSION_SAVEvariável e, se definido (não nulo), deve permitir o salvamento da sessão como se a caixa Lembrar ... existisse e estivesse marcada. É por isso que o bug é rotulado como "corrigido"
    • if (g_getenv ("GNOME_SESSION_SAVE")! = NULL)
                      maybe_load_saved_session_apps (gerente);
    • Infelizmente, parece não funcionar, como confirmado pelo comentário 32 no rastreador de erros.
    • Eu até tentei desativar o patch e reconstruir a gnome-sessionpartir do código-fonte. Isso faz com que a caixa de seleção Opções seja exibida novamente, mas não faz nada.
    • Mas, ei, pode de alguma forma funcionar para você! :)

B. O que funciona no momento: Hibernação aprimorada com o TuxOnIce

  • A hibernação salva o estado atual do sistema (incluindo sua sessão, aplicativos abertos etc.) no disco rígido e desliga o computador. Quando você o inicia novamente, ele lê o estado salvo e o restaura, como se você nunca tivesse desligado o computador. Essa tecnologia é usada principalmente pelos usuários de laptops para economizar energia da bateria, mas não há razão para que também não possa ser usada em desktops.
  • O suporte à hibernação está disponível no Ubuntu / Linux, mas foi desativado no 12.04 porque não estava funcionando corretamente em vários sistemas. Veja esta pergunta e este relatório de erros, se você quiser mais informações.

    Uma alternativa mais compatível: TuxOnIce

  • O TuxOnIce ( wiki | homepage ) é uma alternativa à tecnologia de hibernação incorporada ao kernel e deve ser mais compatível, mais confiável e mais flexível.

  • É facilmente instalado e, se não funcionar, é removido com facilidade.
  • Requer a instalação do kernel personalizado do TuxOnIce , mas as instruções a seguir devem facilitar. Se você nunca abriu o terminal antes, pode querer agora :-)

    0. Requisitos

    O único requisito para o TuxOnIce é que sua partição de swap seja pelo menos tão grande quanto a quantidade de memória (RAM) que você possui. Você pode verificar isso:

  • Inicie o terminal com Ctrl+ Alt+T

  • Digite free -me você verá algo assim:

                 total de buffers compartilhados gratuitos usados ​​em cache
    Mem: 1024731 260 0 0 190
    - / + buffers / cache: 540 451
    Troca: 1536 6 1530
    
  • O número após Swap:(por exemplo, 1536) deve ser maior que o número após Mem:(por exemplo, 1024)

  • Se não for esse o caso, e sua troca for menor que sua memória, você deverá redimensionar e aumentar o tamanho da sua partição de troca ou configurar o TuxOnIce para usar um arquivo de troca especial. Isso está além do escopo desta resposta, mas se você fizer outra pergunta e mencionar nos comentários, eu responderei e explicarei como.

    1. Instalando o kernel TuxOnIce

  • Inicie o terminal com Ctrl+ Alt+T

  • Copie e cole o seguinte no terminal. Isso adiciona o TuxOnIce PPA e instala o kernel e os cabeçalhos personalizados.
    • sudo apt-add-repository ppa: tuxonice / ppa -y
      e depois que o ppa for adicionado:
    • sudo apt-get update
      sudo apt-get install tuxonice-userui linux-genérico-tuxonice -y 
      sudo apt-get install linux-headers-generic-tuxonice -y
  • Agora reinicie.
  • O Ubuntu agora deve iniciar com o kernel TuxOnIce . Se houver algum problema, mantenha Shiftpressionado na inicialização e você obterá o menu Grub. Use as teclas de seta para ir para Previous Linux Versions, pressione enter e pressione enter novamente para voltar ao kernel em funcionamento.

    2. Teste da funcionalidade de hibernação.

  • Abra alguns dos aplicativos que você normalmente usa, por exemplo, Firefox, Thunderbird, LibreOffice, etc.

  • Abra o terminal novamente, com Ctrl+ Alt+ T.
  • Digite sudo pm-hibernate, pressione Enter, digite sua senha.
  • Você deve ver a tela de bloqueio por um segundo e, em seguida, a tela de progresso da hibernação do TuxOnIce, como a abaixo:

    insira a descrição da imagem aqui

    • Se o TuxOnIce funcionar, seu computador será desligado.
    • Inicie novamente e aguarde. O TuxOnIce deve continuar a partir do ponto em que você hibernou, incluindo todas as janelas que você abriu na posição que você abriu.
  • Se tudo isso funcionou, vá para a Etapa 3, que permite ativar o Hibernate no painel.

    3. Habilitando a hibernação no painel

  • Pressione Alt+ F2, digite o abaixo e pressione enter:

    gksudo gedit /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla
  • Cole o abaixo, pressione Ctrl+ Spara salvar e Ctrl+ Qpara sair do editor:

    [Reativar a hibernação por padrão]
    Identidade = usuário unix: *
    Ação = org.freedesktop.upower.hibernate
    ResultActive = yes

    insira a descrição da imagem aqui

  • Reinicie e você deverá ver a opção Hibernate, como mostrado abaixo:

    insira a descrição da imagem aqui

    4. Removendo o TuxOnIce

    • Se o TuxOnIce não funcionar para você, ou você simplesmente deseja removê-lo, inicie o terminal e digite:

       sudo apt-get remove tuxonice-userui linux-genérico-tuxonice linux-cabeçalhos-genérico-tuxonice -y
    • e lembre-se de desativar a opção Hibernar no menu com:

      sudo rm /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla
    • Então reinicie.

ish
fonte
3
Esta é uma resposta realmente completa, mas acho que a pergunta é 'como fazer com que os aplicativos se lembrem do tamanho e posição da janela', mesmo persistindo entre as reinicializações. Talvez essa nem seja uma configuração de aplicativo, talvez o gerenciador de janelas? Todas as soluções atuais (incluindo o devispie) não têm efeito no Firefox, por exemplo. Abre o canto superior direito para mim, não importa o quê. Boa resposta embora. A pergunta pode precisar de outra edição se meu entendimento estiver correto.
Tom Brossman
@ TomBrossman, é um pouco mais sutil, IMO: o OP quer o "estado" da área de trabalho no logout / desligamento restaurado após o login / inicialização, o que é tecnicamente diferente dos aplicativos que lembram seu último tamanho / posição entre instanciações. O consenso é que já existe um status quo entre o gerenciador de janelas e as comunidades de desenvolvimento de aplicativos há algum tempo: cada um acredita que é da responsabilidade do outro lado garantir que os parâmetros da janela do aplicativo sejam mantidos. A única solução verdadeira para o que você menciona provavelmente é algum tipo de script de wrapper para cada aplicativo que salva / restaura a posição.
Ish
11
Este é o exagero mais brutal a um problema simples que eu já vi e provavelmente não vale a pena trocar os bits de hibernação e eu não faria isso em nenhuma das minhas máquinas, mas +150 para um trabalho completo!
Jorge Castro
Digitei "free -m" e descobri que meu número de swap (255) é menor que o do mem (3841), portanto não continuei. Como posso corrigir isso? Obrigado.
precisa
O diálogo desta resposta, embora interessante, distrai os detalhes dessa pergunta real. Esta pergunta foi feita muitas vezes. As respostas raramente abordavam a questão real. O OP não está tentando salvar sessões. Ele quer que eles comecem a partir do último tamanho e posição ... Not remember & start same session... Ao iniciar uma nova sessão com os aplicativos ( terminale firefox), mesmo no mesmo login Remember the last-used window size and position,. Isso economizará muito tempo tentando reposicionar e redimensionar o aplicativo em todas as sessões ... toda vez que o aplicativo for executado.
LD James
11

Para 11.04 e versões anteriores

Tente isto

Sistema> Iniciar aplicativos> Opções e marque Lembrar automaticamente os aplicativos em execução ao fazer logoff e clique em Lembrar dos aplicativos atuais.

Abra a Ajuda
fonte
3
Não há guia Opções, v11.10?
Gerard Roche
7

Não parece possível que todos os aplicativos se lembrem da última posição e tamanho da janela. Esse comportamento parece ter sido removido há muito tempo. Meu entendimento é que é responsabilidade do aplicativo lembrar-se de sua própria posição e tamanho. E aqui está o problema.

Uma pesquisa no rastreador de erros gera muitos relatórios que, de alguma forma, são relevantes para esse problema.

Então, quais aplicativos lembram a posição e o tamanho e quais versões do Ubuntu os aplicativos têm essa funcionalidade?

Nota: Edite e preencha os aplicativos e versões do Ubuntu que você testou para esta funcionalidade. ou seja, o aplicativo lembra a posição e / ou tamanho da janela.

Sepecifique a versão do Ubuntu que você testou e se uma ou ambas as postagens e tamanho da janela são lembrados.

13.04

posição da janela | Tamanho

  • Y, Y - Nautilus
  • N, Y - posicionamentos irregulares do monitor múltiplo do Firefox
  • N, N - Terminal O terminal possui configurações personalizadas para lembrar sempre de um tamanho específico, mas não lembra da última posição
  • N, Y - Crómio
  • Y, Y - Banshee
  • N, - - A calculadora não é redimensionável *
  • N, Y - Gedit

Exemplos de relatórios de erros

Aqui estão alguns relatórios aleatórios de erros de uma pesquisa simples no rastreador de erros, por exemplo, "lembre-se da posição da janela" .

2013 2012 2011 2009 2008 2007
Gerard Roche
fonte
Bullfrogblues você acertou na unha. Você pode adicionar que o recurso real no Ubuntu existe no ccsm . Está em Place Windows... detalhes em: askubuntu.com/a/708984/29012 .
LD James
Onde o Firefox salva o tamanho da janela e os dados de localização?
Royi 25/08/19
5

Como salvar uma sessão no Ubuntu 11.04 ou superior:

  1. Baixe e instale o DConf-Editor.

  2. Digite dconfo traço e execute-o.

DASH-IMG

Abra os próximos rótulos em ordem: org->gnome

Então selecione gnome-session

Agora você deve ver a auto-save-sessionopção como a imagem a seguir, ative-a .

APP-IMG

FEITO!

Agora, quando você desligar o computador, a sessão atual será salva automaticamente. A próxima vez que você ligar, será exatamente como você saiu.

Lucio
fonte
2
Isso não parece fazer nada para as janelas do aplicativo, lembrando o tamanho e a posição.
Gerard Roche
Eu não entendo o que você está tentando dizer.
Lucio
11
Esta pergunta é feita muitas vezes no askubuntu.com. Nenhuma das muitas respostas aborda o específico da pergunta específica. Não se trata de hibernação, é de abrir o aplicativo terminal ou o início firefox, ajustar o tamanho e a posição da janela e, quando você iniciar novamente, o tamanho e a posição serão os que você acabou de definir. Ele não está tentando se lembrar de uma sessão anterior. Ele só quer iniciar o aplicativo terminalou firefoxno último tamanho e posição. Uma nova sessão / o mesmo tamanho e posição do mesmo aplicativo.
LD James
3

A crença atual é que o recurso adequado de salvar / restaurar sessões é usar a suspensão ou a hibernação. Concordo, porém, que hibernar e suspender pode ser uma dor para começar a trabalhar se eles não saírem da caixa ...

Mas dê uma olhada ...

CryoPID

O CryoPID permite capturar o estado de um processo em execução no Linux e salvá-lo em um arquivo. Esse arquivo pode ser usado para retomar o processo posteriormente, após uma reinicialização ou mesmo em outra máquina.

O CryoPID surgiu de uma discussão na lista de discussão de suspensão de software sobre as complexidades de suspender e retomar processos individuais.

O CryoPID consiste em um programa chamado freeze que captura o estado de um processo em execução e o grava em um arquivo. O arquivo é auto-executável e auto-extraível; portanto, para retomar um processo, você simplesmente executa esse arquivo. Veja a tabela abaixo para mais detalhes sobre o que é suportado.

Recursos

  • Pode ser executado como um usuário comum! (não são necessários privilégios de root)
  • Funciona em 2.4 e 2.6.
  • Funciona em x86 e AMD64.
  • Pode iniciar e parar um processo várias vezes
  • Pode migrar processos entre máquinas e entre versões do kernel (testadas entre 2.4 a 2.6 e 2.6 a 2.4).

No entanto, ele não está muito bem documentado e o último DEB lançado foi para Heron, e o site foi atualizado pela última vez em 2005, portanto pode ser inútil. Aqui estão os tarballs:

E também dê uma olhada no Tuxonice

O TuxOnIce é mais facilmente descrito como o equivalente do Linux à funcionalidade de hibernação do Windows, mas melhor. Ele salva o conteúdo da memória em disco e desliga. Quando o computador é reiniciado, ele recarrega o conteúdo e o usuário pode continuar de onde parou. Nenhum documento precisa ser recarregado ou os aplicativos reabridos e o processo é muito mais rápido do que um desligamento normal e a inicialização.

ppa:tuxonice/ppa 

O PPA pré-compilou kernels do Ubuntu com o TuxOnIce já compilado, o binário do userui e o script de hibernação. Portanto, pode não ser para os fracos de coração.


Há uma solução alternativa que pode valer a pena procurar:

  • Crie um script que possua todos os programas que você costuma abrir. Ou crie 2,3,4,5,6 desses scripts e vincule uma chave a esse script. Gosto control + alt + 1|2|3|4|5|6ou se isso estiver em uso de outra coisa. Pressione a tecla e deixe o script abrir todos os programas desse script.

  • E você pode usar algo como isso como mudar aplicativos do espaço de trabalho 1 para 2 usando o comando para lançá-los em outros espaços de trabalho, se você quiser que eles sejam agrupados.

Não é o que você pediu, mas parece que procuramos soluções alternativas :)

Rinzwind
fonte
11
Hummm .. Acho que levará um tempo até que ajustes suficientes no CryoPID possam ser feitos antes que possamos torná-lo compatível com o kernel 3.0. Se existe alguma maneira de avançar para a resposta à minha pergunta, então é isso. Obrigado Rinzwind.
harisibrahimkv
Parece que o cryopid está morto na água. tuconice parece esperançoso. Leia algum feedback positivo sobre isso. E não tem problema @harisibrahimkv Eu usei essa opção bastante nos velhos tempos (mas também tenho que concordar que era muito, muito buggy). Eu tenho outra opção, mas não tenho tempo para investigar mais: que tal um script que abra todos os seus programas e os envie para um espaço de trabalho? O xdotool deve ser capaz de fazer isso?
Rinzwind
3

12.04

Como solução alternativa, você pode reativar a hibernação no 12.04 e usá-lo, desligar o seu PC e depois ativá-lo com todo o seu aplicativo ainda em uso.

Digite o terminal:

sudo gedit /var/lib/polkit-1/localauthority/50-local.d/hibernate.pkla

e adicione essa sequência ao arquivo de texto:

[Reativar o Hibernate]
Identidade = usuário unix: * Ação = org.freedesktop.upower.hibernate
ResultActive = yes

Deste jeito :

insira a descrição da imagem aqui

A opção de hibernação será exibida novamente no menu de desligamento:

insira a descrição da imagem aqui

Espero que ajude.

neonboy
fonte
2
Obrigado por reservar um tempo para dar sua resposta. Mas, infelizmente, a opção de hibernação não é uma solução alternativa para a minha pergunta.
harisibrahimkv
11
o que é esse aplicativo em execução na área de trabalho? ou são apenas ícones? (Angry Birds / Firefox, etc), seu bom ... link por favor: D: D: D: P
kernel_panic
Eu suspeito que é apenas um papel de parede, mas eu adoraria ter um tema de ícones como essa
opensas
1

Você pode ativar um recurso semelhante a este. Você pode fazer isso fazendo o Ubuntu lembrar os locais e os aplicativos em execução no logoff / desligamento. Para fazer isso, navegue para Sistema> Aplicativos de inicialização e, na guia Opções, marque "Lembrar automaticamente da execução de aplicativos ao fazer logoff" e pressione o botão "Lembrar aplicativos atuais".

img

Marco Ceppi
fonte
6
O 12.04 não possui uma guia de opções nas Preferências dos aplicativos de inicialização.
fragos
1

Você precisa habilitar para ver todas as aplicações na aplicação de inicialização. Execute este comando bash em um terminal: sudo sed -i's / NoDisplay = true / NoDisplay = false / g '/etc/xdg/autostart/*.desktop Depois disso, você verá todas as aplicações nos Aplicativos de Inicialização.

Aproveito esta dica deste link http://www.webupd8.org/2012/04/things-to-tweak-after-installing-ubuntu.html , talvez seja do seu interesse.

Desculpe foy meu inglês!

Saludos!

ali3n
fonte
3
Obrigado pelo link, pois acho muito útil. Mas temo que esta não seja a resposta que estou procurando. O que você sugeriu exibe os aplicativos de inicialização que realmente são executados na inicialização no menu de aplicativos de inicialização.
Harisibrahimkv
0

No CCSM, use os plug-ins Place Windows e Resize Window.

jasmim
fonte
11
Place Windows aparece adiciona alguns algoritmos de posicionamento ou, em alternativa, requer que você insira regras para combinar e colocar janelas em locais específicos. Não consegui lembrar simplesmente onde as janelas foram colocadas na última vez em que entrei. Parece útil, no entanto.
John S Gruber
2
Você poderia fornecer mais detalhes em sua resposta sobre como usar esses plug-ins para obter o efeito desejado? Obrigado!
Christopher Kyle Horton
-1

1

Porém, o CryoPID não está muito bem documentado e o último DEB lançado foi para Heron, e o site foi atualizado pela última vez em 2005, por isso pode ser inútil.

O CryoPID permite capturar o estado de um processo em execução no Linux e salvá-lo em um arquivo. Esse arquivo pode ser usado para retomar o processo posteriormente, após uma reinicialização ou mesmo em outra máquina.

O CryoPID consiste em um programa chamado freeze que captura o estado de um processo em execução e o grava em um arquivo. O arquivo é auto-executável e auto-extraível; portanto, para retomar um processo, você simplesmente executa esse arquivo. Veja a tabela abaixo para mais detalhes sobre o que é suportado.

Recursos

  • Pode ser executado como um usuário comum! (não são necessários privilégios de root)
  • Funciona em 2.4 e 2.6.
  • Funciona em x86 e AMD64.
  • Pode iniciar e parar um processo várias vezes
  • Pode migrar processos entre máquinas e entre versões do kernel (testadas entre 2.4 a 2.6 e 2.6 a 2.4).

Aqui estão os tarballs:

2)

Tuxonice provavelmente esta é sua melhor aposta e pode funcionar.

O TuxOnIce é mais facilmente descrito como o equivalente do Linux à funcionalidade de hibernação do Windows, mas melhor. Ele salva o conteúdo da memória em disco e desliga. Quando o computador é reiniciado, ele recarrega o conteúdo e o usuário pode continuar de onde parou. Nenhum documento precisa ser recarregado ou os aplicativos reabridos e o processo é muito mais rápido do que um desligamento normal e a inicialização.

sudo add-apt-repository ppa:tuxonice/ppa

O PPA pré-compilou kernels do Ubuntu com o TuxOnIce já compilado, o binário do userui e o script de hibernação. Portanto, pode não ser para os fracos de coração.


Há uma solução alternativa que pode valer a pena procurar:

  • Crie um script que possua todos os programas que você costuma abrir. Ou crie 2,3,4,5,6 desses scripts e vincule uma chave a esse script. Gosto control + alt + 1|2|3|4|5|6ou se isso estiver em uso de outra coisa. Pressione a tecla e deixe o script abrir todos os programas desse script.

  • E você pode usar algo como isso como mudar aplicativos do espaço de trabalho 1 para 2 usando o comando para lançá-los em outros espaços de trabalho, se você quiser que eles sejam agrupados.

Eu não tenho permissão para copiar a resposta de alguém, então fonte .

Rahul Virpara
fonte
11
Você copiou completamente e colou a resposta daqui ( askubuntu.com/questions/129339/… ). Se você fizer isso no futuro - reconheça isso adicionando a citação.
fossfreedom
@fossfreedom Posso postar a resposta de alguém? Eu não vou se não deveria.
Rahul Virpara
@virpara: este talvez meta, mas reconheço a questão de origem / resposta no início se eu vou estar usando qualquer parte dele na minha resposta
ish
11
Se faz parte da resposta de alguém, explique-a na sua resposta. Dado que você copiou 99% da resposta, basta vincular a resposta. Observe - eu já vinculei este Q em um comentário da pergunta. Na minha opinião, os dois Qs são muito parecidos e podem precisar ser mesclados.
fossfreedom