From 875fe5ebe45fdfa7bb0adc7f8a4afd663a5347fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Leonardo=20Eug=C3=AAnio?= Date: Tue, 6 Dec 2022 21:59:46 -0300 Subject: [PATCH] update rofi config --- scripts/wdmenu.nix | 2 +- scripts/wfile-picker.nix | 11 +++++++++ scripts/wlauncher.nix | 2 +- user/kak/rofi-commands.kak | 46 ++++++++++++++++++++++++++++++++++++++ user/kakoune.nix | 6 ++--- user/rofi.nix | 5 ++++- 6 files changed, 66 insertions(+), 6 deletions(-) create mode 100644 scripts/wfile-picker.nix create mode 100644 user/kak/rofi-commands.kak diff --git a/scripts/wdmenu.nix b/scripts/wdmenu.nix index 2f93ad5..037933a 100644 --- a/scripts/wdmenu.nix +++ b/scripts/wdmenu.nix @@ -3,7 +3,7 @@ let inherit (pkgs.uservars) dmenu; available_menus = { bmenu = "bmenu"; - rofi = "rofi -dmenu"; + rofi = "rofi -dmenu -sort"; }; menu_cmd = available_menus.${dmenu}; in pkgs.writeShellScriptBin "wdmenu" '' diff --git a/scripts/wfile-picker.nix b/scripts/wfile-picker.nix new file mode 100644 index 0000000..5ab75a0 --- /dev/null +++ b/scripts/wfile-picker.nix @@ -0,0 +1,11 @@ +{ pkgs, ... }: +let + inherit (pkgs.uservars) dmenu; + available_menus = { + bmenu = "bmenu run"; + rofi = "rofi -show drun -sort"; + }; + menu_cmd = available_menus.${dmenu}; +in pkgs.writeShellScriptBin "wlauncher" '' + exec ${menu_cmd} "$@" +'' diff --git a/scripts/wlauncher.nix b/scripts/wlauncher.nix index b98adc1..5ab75a0 100644 --- a/scripts/wlauncher.nix +++ b/scripts/wlauncher.nix @@ -3,7 +3,7 @@ let inherit (pkgs.uservars) dmenu; available_menus = { bmenu = "bmenu run"; - rofi = "rofi -show drun"; + rofi = "rofi -show drun -sort"; }; menu_cmd = available_menus.${dmenu}; in pkgs.writeShellScriptBin "wlauncher" '' diff --git a/user/kak/rofi-commands.kak b/user/kak/rofi-commands.kak new file mode 100644 index 0000000..1022e49 --- /dev/null +++ b/user/kak/rofi-commands.kak @@ -0,0 +1,46 @@ +define-command -override -hidden find_file \ +%{ evaluate-commands %sh{ + for line in `rofi -sort -show file-browser-extended -file-browser-depth 0 -file-browser-no-descend -file-browser-stdout -p "File: "`; do + echo "edit '$line'" + done +} } + +define-command -override -hidden find_delete \ +%{ nop %sh{ + rofi -sort -show file-browser-extended -file-browser-depth 0 -file-browser-no-descend -file-browser-stdout | xargs -r trash +} } + +define-command -override -hidden find_git_file \ +%{ evaluate-commands %sh{ + for line in `git ls-files | rofi -sort -show file-browser-extended -file-browser-depth 0 -file-browser-no-descend -file-browser-stdout -file-browser-stdin`; do + echo "edit -existing '$line'" + done +} } + +define-command -override -hidden find_git_modified \ +%{ evaluate-commands %sh{ + for line in `git status --porcelain | sd '^.. ' ''| rofi -sort -show file-browser-extended -file-browser-no-descend -file-browser-stdout -file-browser-stdin`; do + echo "edit -existing '$line'" + done +} } + +define-command -override -hidden find_dir \ +%{ cd %sh{ + for line in `fd --strip-cwd-prefix -Htd | rofi -sort -show file-browser-extended -file-browser-no-descend -file-browser-stdout -file-browser-stdin`; do + echo "edit '$line'" + done +} } + +define-command -override -hidden find_buffer \ +%{ evaluate-commands %sh{ + for line in `printf "%s\n" $kak_buflist | wdmenu -i`; do + echo "buffer '$line'" + done +} } + +define-command -override -hidden tree \ +%{ evaluate-commands %sh{ + for line in `rofi -sort -show file-browser-extended -file-browser-stdout`; do + echo "edit '$line'" + done +} } diff --git a/user/kakoune.nix b/user/kakoune.nix index 6405d82..b5b3e45 100644 --- a/user/kakoune.nix +++ b/user/kakoune.nix @@ -1,5 +1,5 @@ { config, pkgs, lib, font, ... }: -let inherit (import ./variables.nix) key theme color accent font; +let inherit (import ./variables.nix) key theme color accent font dmenu; in { config = { programs.kakoune = { @@ -15,7 +15,7 @@ in { brown = color.normal.brown; }; in with colors; - lib.concatStringsSep "\n" (map (lib.readFile) [ + lib.concatStringsSep "\n" (map (lib.readFile) ([ ./kak/filetypes.kak ./kak/hooks.kak ./kak/indent.kak @@ -23,7 +23,7 @@ in { ./kak/plug.kak ./kak/usermode.kak ./kak/git-mode.kak - ]) + '' + ] ++ lib.optional (dmenu == "rofi") ./kak/rofi-commands.kak)) + '' set global scrolloff 10,20 set global autoreload yes diff --git a/user/rofi.nix b/user/rofi.nix index 1c00435..cb78244 100644 --- a/user/rofi.nix +++ b/user/rofi.nix @@ -4,7 +4,10 @@ in { config = { programs.rofi = { enable = true; - package = pkgs.rofi-wayland.override { plugins = [ pkgs.rofi-emoji ]; }; + package = pkgs.rofi-wayland.override { plugins = with pkgs; [ + rofi-emoji + rofi-file-browser + ];}; extraConfig = { show-icons = true; modi = "drun,emoji";