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 / ubuntu / Perguntas / 1014860
Accepted
user37342
user37342
Asked: 2018-03-15 03:45:26 +0800 CST2018-03-15 03:45:26 +0800 CST 2018-03-15 03:45:26 +0800 CST

Mais marcadores para o Nautilus

  • 772

Infelizmente, o painel de favoritos do Nautilus não oferece subpastas e, no meu sistema, apenas cerca de 40 favoritos podem ser vistos ao mesmo tempo.

Os favoritos são armazenados em um arquivo predefinido ~/.config/gtk-3.0/bookmarks. Atualmente, uso diferentes arquivos de favoritos para diferentes projetos, algo que realmente é um aborrecimento.

Qualquer dica sobre como melhorar isso é apreciada.

Existe alguma possibilidade de usar diferentes arquivos de favoritos para diferentes projetos na inicialização do Nautilus ou podemos esperar subpastas em um futuro próximo?

nautilus bookmarks
  • 1 1 respostas
  • 361 Views

1 respostas

  • Voted
  1. Best Answer
    pa4080
    2018-03-15T07:33:34+08:002018-03-15T07:33:34+08:00

    Descobri que os favoritos do Nautilus mudam dinamicamente quando o conteúdo do arquivo ~/.config/gtk-3.0/bookmarksé alterado. Portanto, minha sugestão é o seguinte script, que pode ser vinculado a um atalho de teclado personalizado. Aqui está como funciona:

    insira a descrição da imagem aqui

    • Crie um arquivo executável, chamado nautilus-bookmarks-managere localizado no diretório /usr/local/bina ser acessado como comando shell (ou use nome e local diferentes):

      sudo touch /usr/local/bin/nautilus-bookmarks-manager
      sudo chmod +x /usr/local/bin/nautilus-bookmarks-manager
      sudo nano /usr/local/bin/nautilus-bookmarks-manager
      
    • Crie um atalho de teclado personalizado onde o comando deve estar:

      /usr/local/bin/nautilus-bookmarks-manager
      

    O conteúdo do roteiro é:

    #!/bin/bash
    
    # Initial variables; the last underscore in $PROFILE_NAME_TEMPLATE is important
    BOOKMARKS_DIR="$HOME/.config/gtk-3.0"
    BOOKMARKS="$BOOKMARKS_DIR/bookmarks"
    PROFILES_DIR="$BOOKMARKS_DIR/bookmarks_profiles"
    PROFILE_NAME_TEMPLATE="$PROFILES_DIR/bookmarks_profile_"
    
    # If the profiles directory doesn't exist create it,
    # otherwise renumber the existing profiles in case some of them were deleted
    [[ ! -d $PROFILES_DIR ]] && mkdir -p "$PROFILES_DIR" || rename 's/[0-9]*$/our $i; sprintf("%d", 1+$i++)/e' "$PROFILES_DIR/"*
    
    # Get the list of the profiles as an array,
    # the expression `[[ -z ${PROFILES[@]##*\*} ]]` means `if the directory is empty` or not empty when there is a `!`
    PROFILES=("$BOOKMARKS_DIR/bookmarks_profiles/"*)
    
    main() {
            # Compare the current profile to each existing profile in $PROFILES and find the $CURRENT_PROFILE if it exists
            for profile in "${PROFILES[@]}"; do cmp -s "$BOOKMARKS" "$profile" && CURRENT_PROFILE="$profile"; done
    
            # Get the number of the current profile
            CURRENT_PROFILE_NUMBER="${CURRENT_PROFILE##*_}"
    
            # If the $CURRENT_PROFILE doesn't exist in the list of profiles and the directory is epty: $NEW_PROFILE_NUMBER = 1
            # If it doesn't exist and the directory is not epty: $NEW_PROFILE_NUMBER = ( number of the profiles + 1 )
            # If this is the last profile from the list the next profile number is 1: $NEW_PROFILE_NUMBER = 1
            # In all other case increment the $CURRENT_PROFILE_NUMBER by 1
            if   [[ -z ${CURRENT_PROFILE+x} && -z ${PROFILES[@]##*\*} ]]; then
                    NEW_PROFILE_NUMBER=1
            elif [[ -z ${CURRENT_PROFILE+x} && ! -z ${PROFILES[@]##*\*} ]]; then
                    NEW_PROFILE_NUMBER=$(( ${#PROFILES[@]} + 1 ))
            elif [[ $CURRENT_PROFILE_NUMBER -eq ${PROFILES[-1]##*_} ]]; then
                    NEW_PROFILE_NUMBER=1
            else
                    NEW_PROFILE_NUMBER=$(( CURRENT_PROFILE_NUMBER + 1 ))
            fi
    
            # If the current profile doesn't exist in the list add it, else just switch to the next profile
            if   [[ -z ${CURRENT_PROFILE+x} ]]; then
                    cp "${BOOKMARKS}" "${PROFILE_NAME_TEMPLATE}${NEW_PROFILE_NUMBER}"
                    echo "Profile ${NEW_PROFILE_NUMBER} is CREATED"
            else
                    cp "${PROFILE_NAME_TEMPLATE}${NEW_PROFILE_NUMBER}" "${BOOKMARKS}"
                    echo "Profile ${NEW_PROFILE_NUMBER} is ACTIVATED"
            fi
    }
    
    killall notify-osd >/dev/null 2>&1  # Kill all notify-send messages
    notify-send "$(main 2>&1)"          # Call the `main` function and output all messages through `notify-send`
    

    O script armazenará cada novo perfil no diretório ~/.config/gtk-3.0/bookmarks_profiles. Se este diretório não existir, ele será criado. Caso contrário, o script tentará redefinir os perfis existentes caso você tenha removido alguns deles. Isso leva a dois casos:

    • Quando você deseja excluir determinado perfil, primeiro deve ativar algum outro perfil;
    • Quando quiser mover determinado perfil para o final da lista, ative-o, apague-o e execute o script.

    Próximo. O script irá comparar o arquivo ~/.config/gtk-3.0/bookmarkscom cada arquivo em ~/.config/gtk-3.0/bookmarks_profiles. Se for encontrada coincidência, o script mudará para o próximo perfil. Se não houver coincidência, um novo perfil será criado.

    Uma versão mais avançada do script poderia usar perfis nomeados (em vez de numerados) e alguma ferramenta como zenity para obter os nomes dos novos perfis.

    • 1

relate perguntas

Sidebar

Stats

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

    Existe um comando para listar todos os usuários? Também para adicionar, excluir, modificar usuários, no terminal?

    • 9 respostas
  • Marko Smith

    Como excluir um diretório não vazio no Terminal?

    • 4 respostas
  • Marko Smith

    Como descompactar um arquivo zip do Terminal?

    • 9 respostas
  • Marko Smith

    Como instalo um arquivo .deb por meio da linha de comando?

    • 11 respostas
  • Marko Smith

    Como instalo um arquivo .tar.gz (ou .tar.bz2)?

    • 14 respostas
  • Marko Smith

    Como listar todos os pacotes instalados

    • 24 respostas
  • Martin Hope
    Flimm Como posso usar o docker sem sudo? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    led-Zepp Como faço para salvar a saída do terminal em um arquivo? 2014-02-15 11:49:07 +0800 CST
  • Martin Hope
    ubuntu-nerd Como descompactar um arquivo zip do Terminal? 2011-12-11 20:37:54 +0800 CST
  • Martin Hope
    TheXed Como instalo um arquivo .deb por meio da linha de comando? 2011-05-07 09:40:28 +0800 CST
  • Martin Hope
    Ivan Como listar todos os pacotes instalados 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    David Barry Como determino o tamanho total de um diretório (pasta) na linha de comando? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher "Os seguintes pacotes foram retidos:" Por que e como resolvo isso? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford Como os PPAs podem ser removidos? 2010-07-30 01:09:42 +0800 CST

Hot tag

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

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