2015-02-02 5 views

답변

1

가 직접 awful.widget.prompt에 신호를 연결하는 방법이 아니라 명령이 실행 된 때 프롬프트 위젯에 몇 가지 지침을 지정할 수 있습니다 위젯/prompt.lua 실행 기능 출시 awful.prompt.run() :

  • 이 선택적 인수와 테이블 인수 : 일부 매개 변수

    local function run(promptbox) 
        return prompt.run({ prompt = promptbox.prompt }, 
             promptbox.widget, 
             function (...) 
              local result = util.spawn(...) 
              if type(result) == "string" then 
               promptbox.widget:set_text(result) 
              end 
             end, 
             completion.shell, 
             util.getdir("cache") .. "/history") 
    end 
    

    fg_cursor, bg_cursor, ul_cursor을 프로 mpt, text, selectall, font, autoexec.

  • 텍스트 상자 프롬프트에 사용할 텍스트 상자입니다.
  • exe_callback 끝날 때 command를 인수로 호출하는 콜백 함수입니다.
  • completion_callback 완료를 위해 호출 할 콜백 함수입니다.
  • history_path 선택적 매개 변수 : 역사이 저장 될 파일 경로 설정 전무는 역사
  • history_max 선택적 매개 변수를 비활성화합니다 : 기본적으로 기록 파일에
  • done_callback 선택적 매개 변수를 50 최대 항목을 설정 : 콜백 기능에 프롬프트가 취소되었는지 여부에 관계없이 항상 인수없이 호출하십시오.
  • changed_callback 선택적 매개 변수 : 명령이 변경되었을 때 command를 인수로 호출하는 콜백 함수. wibox에서 프롬프트 상자 :

  • keypressed_callback 그래서 난 그냥 내 프롬프트 상자에 awful.prompt.run 사용하고 done_callback에게

    예를 지정해야합니다. Wibox는 Mod4 + r 키를 누를 때 표시되며 명령이 실행될 때 숨김이 숨겨집니다.

    awful.key({ modkey },   "r",  function() 
    --promptlist is a table that contains wibox for each screen 
    if promptlist[mouse.screen].visible == false then 
        promptlist[mouse.screen].visible=true 
        awful.prompt.run({ 
        prompt = promptlist.prompt[mouse.screen].prompt }, 
        promptlist.prompt[mouse.screen].widget, 
        function (...) 
         local result = awful.util.spawn(...) 
         if type(result) == "string" then 
         promptlist.prompt[mouse.screen].widget:set_text(result) 
         --promptlist.prompt table that contains prompt widget for each screen 
         end 
        end, 
        awful.completion.shell, 
        awful.util.getdir("cache") .. "/history", 
        50, 
        function() 
         promptlist[mouse.screen].visible = false 
        end 
    ) 
    else 
        promptlist[mouse.screen].visible=false 
    end 
    end),