rofibangs: add option to specify bang
This commit is contained in:
parent
48ed29efb5
commit
308f3a6ece
35
rofibangs.py
35
rofibangs.py
|
@ -28,9 +28,8 @@ import webbrowser
|
||||||
|
|
||||||
def load_config(config_path=None):
|
def load_config(config_path=None):
|
||||||
if config_path is None:
|
if config_path is None:
|
||||||
config_path = os.environ.get(
|
config_path = os.environ.get("ROFIBANGS_CONFIG_PATH") or os.path.expanduser(
|
||||||
"ROFIBANGS_CONFIG_PATH",
|
"~/.config/rofibangs.json"
|
||||||
os.path.expanduser("~/.config/rofibangs.json")
|
|
||||||
)
|
)
|
||||||
try:
|
try:
|
||||||
with open(config_path, "rt") as bangs_file:
|
with open(config_path, "rt") as bangs_file:
|
||||||
|
@ -52,7 +51,7 @@ def run_rofi(config, input_text="", title="bang"):
|
||||||
[rofi_path, "-dmenu", "-p", title],
|
[rofi_path, "-dmenu", "-p", title],
|
||||||
text=True,
|
text=True,
|
||||||
capture_output=True,
|
capture_output=True,
|
||||||
input=input_text
|
input=input_text,
|
||||||
)
|
)
|
||||||
output = completed_process.stdout
|
output = completed_process.stdout
|
||||||
if not output:
|
if not output:
|
||||||
|
@ -73,12 +72,9 @@ def open_bang(config, handle, query):
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
ap = argparse.ArgumentParser()
|
ap = argparse.ArgumentParser()
|
||||||
ap.add_argument(
|
ap.add_argument("-c", "--config", help="path to JSON config file")
|
||||||
"-c", "--config", help="path to JSON config file"
|
ap.add_argument("-l", "--list", action="store_true", help="show available bangs")
|
||||||
)
|
ap.add_argument("-b", "--bang", help="launch with this bang already set")
|
||||||
ap.add_argument(
|
|
||||||
"-l", "--list", action="store_true", help="show available bangs"
|
|
||||||
)
|
|
||||||
args = ap.parse_args()
|
args = ap.parse_args()
|
||||||
|
|
||||||
config = load_config()
|
config = load_config()
|
||||||
|
@ -89,16 +85,19 @@ def main():
|
||||||
list_bangs(config)
|
list_bangs(config)
|
||||||
return
|
return
|
||||||
|
|
||||||
process_input = "\n".join(i["handle"] for i in config["bangs"]) + "\n"
|
if handle := args.bang:
|
||||||
output = run_rofi(config, input_text=process_input)
|
|
||||||
parts = output.split(maxsplit=1)
|
|
||||||
if len(parts) < 1:
|
|
||||||
exit("Bad Rofi output.")
|
|
||||||
if len(parts) == 1:
|
|
||||||
handle = parts[0]
|
|
||||||
query = run_rofi(config, title=handle)
|
query = run_rofi(config, title=handle)
|
||||||
else:
|
else:
|
||||||
handle, query = parts
|
process_input = "\n".join(i["handle"] for i in config["bangs"]) + "\n"
|
||||||
|
output = run_rofi(config, input_text=process_input)
|
||||||
|
parts = output.split(maxsplit=1)
|
||||||
|
if len(parts) < 1:
|
||||||
|
exit("Bad Rofi output.")
|
||||||
|
if len(parts) == 1:
|
||||||
|
handle = parts[0]
|
||||||
|
query = run_rofi(config, title=handle)
|
||||||
|
else:
|
||||||
|
handle, query = parts
|
||||||
open_bang(config, handle, query)
|
open_bang(config, handle, query)
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue