Rofiをいじる
rofiというランチャーをいじる
yoaurt -S rofi
使い方をみる
rofi --help rofi usage: rofi [-options ...] Command line only options: -no-config Do not load configuration, use default values. -v,-version Print the version number and exit. -dmenu Start in dmenu mode. -display [string] X server to contact. ${DISPLAY} -h,-help This help message. -dump-xresources Dump the current configuration in Xresources format and exit. -dump-xresources-theme Dump the current color scheme in Xresources format and exit. -e [string] Show a dialog displaying the passed message and exit. -markup Enable pango markup where possible. -normal-window In dmenu mode, behave as a normal window. (experimental) -show [mode] Show the mode 'mode' and exit. The mode has to be enabled. DMENU command line options: -mesg [string] Print a small user message under the prompt (uses pango markup) -p [string] Prompt to display left of entry field -selected-row [integer] Select row -format [string] Output format string s -u [list] List of row indexes to mark urgent -a [list] List of row indexes to mark active -l [integer] Number of rows to display -i Set filter to be case insensitive -only-match Force selection or custom entry -no-custom Don't accept custom entry -select [string] Select the first row that matches -password Do not show what the user inputs. Show '*' instead. -markup-rows Allow and render pango markup as input data. -sep [char] Element separator. '\n' -input [filename] Read input from file instead from standard input. -sync Force dmenu to first read all input data, then show dialog. Global options: -modi [string] Enabled modi window,run,ssh (Default) -width [number] Window width 50 (Default) -lines [number] Number of lines 15 (Default) -columns [number] Number of columns 1 (Default) -font [string] Font to use mono 12 (Default) -color-normal [string] Color scheme for normal row #fdf6e3,#002b36,#eee8d5,#586e75,#eee8d5 (Default) -color-urgent [string] Color scheme for urgent row #fdf6e3,#dc322f,#eee8d5,#dc322f,#fdf6e3 (Default) -color-active [string] Color scheme for active row #fdf6e3,#268bd2,#eee8d5,#268bd2,#fdf6e3 (Default) -color-window [string] Color scheme window #fdf6e3,#002b36 (Default) -bw [number] Border width 1 (Default) -location [number] Location on screen 0 (Default) -padding [number] Padding 5 (Default) -yoffset [number] Y-offset relative to location 0 (Default) -xoffset [number] X-offset relative to location 0 (Default) -[no-]fixed-num-lines Always show number of lines True (Default) -terminal [string] Terminal to use rofi-sensible-terminal (Default) -ssh-client [string] Ssh client to use ssh (Default) -ssh-command [string] Ssh command to execute {terminal} -e {ssh-client} {host} (Default) -run-command [string] Run command to execute {cmd} (Default) -run-list-command [string] Command to get extra run targets (Default) -run-shell-command [string] Run command to execute that runs in shell {terminal} -e {cmd} (Default) -window-command [string] Command executed on accep-entry-custom for window modus xkill -id {window} (Default) -[no-]disable-history Disable history in run/ssh False (Default) -[no-]levenshtein-sort Use levenshtein sorting False (Default) -[no-]case-sensitive Set case-sensitivity False (Default) -[no-]cycle Cycle through the results list True (Default) -[no-]sidebar-mode Enable sidebar-mode False (Default) -eh [number] Row height (in chars) 1 (Default) -[no-]auto-select Enable auto select mode False (Default) -[no-]parse-hosts Parse hosts file for ssh mode False (Default) -[no-]parse-known-hosts Parse known_hosts file for ssh mode True (Default) -combi-modi [string] Set the modi to combine in combi mode window,run (Default) -matching [string] Set the matching algorithm. (normal, regex, glob, fuzzy) normal (Default) -[no-]tokenize Tokenize input string True (Default) -m [string] Monitor id to show on -5 (Default) -line-margin [number] Margin between rows 2 (Default) -line-padding [number] Padding within rows 1 (Default) -filter [string] Pre-set filter (unset) (Default) -separator-style [string] Separator style (none, dash, solid) dash (Default) -[no-]hide-scrollbar Hide scroll-bar False (Default) -[no-]fullscreen Fullscreen False (Default) -[no-]fake-transparency Fake transparency False (Default) -dpi [number] DPI -1 (Default) -threads [number] Threads to use for string matching 0 (Default) -scrollbar-width [number] Scrollbar width 8 (Default) -scroll-method [number] Scrolling method. (0: Page, 1: Centered) 0 (Default) -fake-background [string] Background to use for fake transparency. (background or screenshot) screenshot (Default) -window-format [string] Window Format. w (desktop name), t (title), n (name), r (role), c (class) {w} {c} {t} (Default) -[no-]click-to-exit Click outside the window to exit True (Default) -[no-]show-match Indicate how it match by underlining it. True (Default) -pid [string] Pidfile location /run/user/15000/rofi.pid (Default) -kb-primary-paste [string] Paste primary selection Control+V,Shift+Insert (Default) -kb-secondary-paste [string] Paste clipboard Control+v,Insert (Default) -kb-clear-line [string] Clear input line Control+w (Default) -kb-move-front [string] Beginning of line Control+a (Default) -kb-move-end [string] End of line Control+e (Default) -kb-move-word-back [string] Move back one word Alt+b (Default) -kb-move-word-forward [string] Move forward one word Alt+f (Default) -kb-move-char-back [string] Move back one char Left,Control+b (Default) -kb-move-char-forward [string] Move forward one char Right,Control+f (Default) -kb-remove-word-back [string] Delete previous word Control+Alt+h,Control+BackSpace (Default) -kb-remove-word-forward [string] Delete next word Control+Alt+d (Default) -kb-remove-char-forward [string] Delete next char Delete,Control+d (Default) -kb-remove-char-back [string] Delete previous char BackSpace,Control+h (Default) -kb-remove-to-eol [string] Delete till the end of line Control+k (Default) -kb-remove-to-sol [string] Delete till the start of line Control+u (Default) -kb-accept-entry [string] Accept entry Control+j,Control+m,Return,KP_Enter (Default) -kb-accept-custom [string] Use entered text as command (in ssh/run modi) Control+Return (Default) -kb-accept-alt [string] Use alternate accept command. Shift+Return (Default) -kb-delete-entry [string] Delete entry from history Shift+Delete (Default) -kb-mode-next [string] Switch to the next mode. Shift+Right,Control+Tab (Default) -kb-mode-previous [string] Switch to the previous mode. Shift+Left,Control+Shift+Tab (Default) -kb-row-left [string] Go to the previous column Control+Page_Up (Default) -kb-row-right [string] Go to the next column Control+Page_Down (Default) -kb-row-up [string] Select previous entry Up,Control+p,Shift+Tab,Shift+ISO_Left_Tab (Default) -kb-row-down [string] Select next entry Down,Control+n (Default) -kb-row-tab [string] Go to next row, if one left, accept it, if no left next mode. Tab (Default) -kb-page-prev [string] Go to the previous page Page_Up (Default) -kb-page-next [string] Go to the next page Page_Down (Default) -kb-row-first [string] Go to the first entry Home,KP_Home (Default) -kb-row-last [string] Go to the last entry End,KP_End (Default) -kb-row-select [string] Set selected item as input text Control+space (Default) -kb-screenshot [string] Take a screenshot of the rofi window Alt+S (Default) -kb-toggle-case-sensitivity [string] Toggle case sensitivity grave,dead_grave (Default) -kb-toggle-sort [string] Toggle sort Alt+grave (Default) -kb-cancel [string] Quit rofi Escape,Control+g,Control+bracketleft (Default) -kb-custom-1 [string] Custom keybinding 1 Alt+1 (Default) -kb-custom-2 [string] Custom keybinding 2 Alt+2 (Default) -kb-custom-3 [string] Custom keybinding 3 Alt+3 (Default) -kb-custom-4 [string] Custom keybinding 4 Alt+4 (Default) -kb-custom-5 [string] Custom Keybinding 5 Alt+5 (Default) -kb-custom-6 [string] Custom keybinding 6 Alt+6 (Default) -kb-custom-7 [string] Custom Keybinding 7 Alt+7 (Default) -kb-custom-8 [string] Custom keybinding 8 Alt+8 (Default) -kb-custom-9 [string] Custom keybinding 9 Alt+9 (Default) -kb-custom-10 [string] Custom keybinding 10 Alt+0 (Default) -kb-custom-11 [string] Custom keybinding 11 Alt+exclam (Default) -kb-custom-12 [string] Custom keybinding 12 Alt+at (Default) -kb-custom-13 [string] Csutom keybinding 13 Alt+numbersign (Default) -kb-custom-14 [string] Custom keybinding 14 Alt+dollar (Default) -kb-custom-15 [string] Custom keybinding 15 Alt+percent (Default) -kb-custom-16 [string] Custom keybinding 16 Alt+dead_circumflex (Default) -kb-custom-17 [string] Custom keybinding 17 Alt+ampersand (Default) -kb-custom-18 [string] Custom keybinding 18 Alt+asterisk (Default) -kb-custom-19 [string] Custom Keybinding 19 Alt+parenleft (Default) -display-ssh [string] The display name of this browser (unset) (Default) -display-run [string] The display name of this browser (unset) (Default) -display-drun [string] The display name of this browser (unset) (Default) -display-window [string] The display name of this browser (unset) (Default) -display-windowcd [string] The display name of this browser (unset) (Default) -display-combi [string] The display name of this browser (unset) (Default) Monitor layout: ID: 0 name: eDP1 position: 0,900 size: 2880,1620 ID: 1 name: VGA1 position: 3704,0 size: 1920,1080 ID: 2 (primary) name: DP1 position: 3064,1080 size: 2560,1440 Compile time options: * window enabled * drun enabled * timings disabled * gcov disabled * asan disabled For more information see: man rofi Version: 1.3.0 Bugreports: https://github.com/DaveDavenport/rofi/ Support: https://forum.qtools.org/ #rofi @ freenode.net Configuration file: /home/kurari/.config/rofi/config
とりあえず、ウインドウの切り替えとコマンド実行の機能だけ持たせて起動
rofi -combi-modi 'window,run' -show
本家サイトを覗いていたらdmenuとかいうモードを発見
echo -e "Option #1\nOption #2\nOption #3" | rofi -dmenu
戻り値で選択したテキストが帰ってくる。 これをスクリプトで受ければ、グラフィカルな操作できるのね。
i3のランチャコマンドを作成してみた
#!/bin/bash cmd=$(cat <<EOF | rofi -dmenu -p "i3 menu: " -format s MainTerminal firefox thunderbird keepassx nautilus xprop sakura screenshot DP1 screenshot eDP1 screenshot VGA1 edit ~/.config/i3/config edit $HOME/.dotfiles/Makefile edit $HOME/.dotfiles/vim/rc/vimrc lock exit cansel EOF) case "$cmd" in MainTerminal) runorraise title MainTerminal 'sakura -t MainTerminal -e ./tmux-single main';; firefox) runorraise class Firefox firefox;; thunderbird) runorraise class Thunderbird thunderbird;; keepassx) runorraise class keepassx keepassx;; sakura) sakura ;; screenshot*) ~/bin/ss-monitor ${cmd##screenshot } ;; lock) xscreensaver-command --lock;; edit*) # rofi -e "vim ${cmd##edit }" sakura -t "$cmd" -e "sh -c \"$EDITOR ${cmd##edit }\"" ;; exit) i3-msg exit;; xprop) xprop > /tmp/tmp$$ sakura -t "$cmd" -e $EDITOR /tmp/tmp$$ ;; *) sh -c "$cmd" || rofi -e "noting to do $cmd" ;; esac