Biegacz poleceń Unity

1

Szukam biegacza poleceń dla Unity. Wiedziałem, że domyślny biegacz znajduje się w skrócie ALT+ F2. Ale jak wyjaśniono w tym pytaniu Uruchom polecenie nie uruchamiaj programów wiersza polecenia , nie zezwala na uruchamianie programów wiersza polecenia bez dodawania niektórych prefiksów do polecenia.

W skrócie szukam biegacza poleceń, który:

  • ma automatyczne uzupełnianie
  • ma historię ostatnio używanych poleceń
  • pozwalają uruchamiać obie komendy vim test.txtlub gedit test.txtbez prefiksów, sufiksów itp.
  • jeśli program wiersza poleceń został uruchomiony, okno terminala powinno zostać zamknięte po wyjściu z programu

Sprawdzam od różnych biegaczy poleceń gmrun, ale nie ma ono automatycznego uzupełniania ani historii. Z drugiej strony, xfrun4jak opisano w Xfce4 Alt F2 - impotent polecenia xfrun4 w 14.04 Trusty wymaga pewnego przedrostka „!” Do działania.

Czy znasz jakiś program uruchamiający polecenia, który można zintegrować z Unity i spełnić te wymagania?

Kendzi
źródło
moją rekomendacją jest po prostu uruchomienie małego wyskakującego terminalu przy uruchomieniu, mam go na pulpicie kde i działa świetnie
sbergeron
@sbergeron Tak, obecnie robię to w ten sam sposób, ale nie chcę mieć otwartego terminalu. Chciałbym po prostu uruchomić polecenie.
Kendzi
Myślę, że są pewne kde. Zwykle mam zawsze otwarty terminal z nową kartą
sbergeron
Może trochę przestarzały, ale możesz spojrzeć na opcje tutaj: lifehacker.com/5873738/the-best-application-launcher-for-linux
muru
Gmrun ma automatyczne uzupełnianie, historię i może działać vi test.txtz Ctrl + Enter ubuntugeek.com/… . Jeśli chcesz więcej, musisz skorzystać z samego terminalu ...
TuKsn

Odpowiedzi:

0

Utwórz własny Command Runner za pomocą terminalu gnome:

Najpierw utwórz plik $HOME/.cmdrunrc

Treść powinna być:

# include .bashrc to load aliases from the .bashrc in the command runner
source .bashrc

# create a separated history file for the command runner
HISTFILE=~/.cmdrun_history

# shorten the command prompt
PS1='\w\$ '

# function to check an array if it contains an element
containsElement () {
  local e
  for e in "${@:2}"; do [[ "$e" == "$1" ]] && return 0; done
  return 1
}

# your guis which will not open a additional terminal window on execution 
guis=(firefox mousepad gedit geany leafpad nautilus thunar pcmanfm xterm) 

# after this commands finished the terminal will be closed automatically  
close_after=(vi nano top)

# the function that will be executed with every command
custom_run() { 
    if [ -n "$*" ]; then   
        # write the real command to the history without "custom_run" 
        history -s "$*"
        history -a

        # check if the command is an alias
        pure_cmd=$(echo "$*" | xargs | cut -d' ' -f1)
        if [ $(type -t "$pure_cmd") == "alias" ]; then
            # get the real command from the alias
            pure_cmd=$(type "$pure_cmd" | grep -oP "(?<=»)[^']+(?=«)")
            pure_cmd=$(echo "$pure_cmd" | cut -d' ' -f1)
        fi

        # check if command opens a gui or should be closed after it finished
        if containsElement "$pure_cmd" "${guis[@]}"; then
            bash -ic "($* &) &>/dev/null"
        elif containsElement "$pure_cmd" "${close_after[@]}"; then
            gnome-terminal -x bash -ic "$*"
        else
            gnome-terminal -x bash -ic "$*; bash"
        fi
    else
        # remove last command ("custom run") from history, if nothing is entered
        history -d $((HISTCMD-1))
    fi
    exit 0
}

# write the function "custom_run" before every command if the user presses return
bind 'RETURN: "\e[1~ custom_run "\e[4~"\n"'

Następnie utwórz plik .desktop lub skrypt powłoki za pomocą tego polecenia:

gnome-terminal --title="Command Runner" --hide-menubar --geometry="50x1" -x bash -ic "cd ~; bash --rcfile .cmdrunrc"
TuKsn
źródło