about summary refs log tree commit diff stats
path: root/home-manager/config/lf/default.nix
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--home-manager/config/lf/default.nix325
1 files changed, 4 insertions, 321 deletions
diff --git a/home-manager/config/lf/default.nix b/home-manager/config/lf/default.nix
index 6591cd56..ac092cc8 100644
--- a/home-manager/config/lf/default.nix
+++ b/home-manager/config/lf/default.nix
@@ -1,56 +1,11 @@
 {
-  config,
   pkgs,
   sysLib,
+  config,
   ...
 }: let
-  functionCall = {
-    file,
-    dependencies,
-    ...
-  }:
-    sysLib.makeShellScriptWithLibraryAndKeepPath {
-      name = "${builtins.baseNameOf file}";
-      script = file;
-      dependencies = dependencies ++ (builtins.attrValues {inherit (pkgs) dash coreutils;});
-    }
-    + "/bin/${builtins.baseNameOf file}";
-  shell = {
-    file,
-    dependencies,
-    ...
-  }: ''
-    ''${{
-      ${functionCall {inherit file dependencies;}}
-    }}
-  ''; # closes the lf tui
-  pipe = {
-    file,
-    dependencies,
-    ...
-  }: ''
-    %{{
-      ${functionCall {inherit file dependencies;}}
-    }}
-  ''; # runs the command in the ui/term bar
-  async = {
-    file,
-    dependencies,
-    ...
-  }: ''
-    &{{
-      ${functionCall {inherit file dependencies;}}
-    }}
-  ''; # runs the command in the background
-  wait = {
-    file,
-    dependencies,
-    ...
-  }: ''
-    !{{
-      ${functionCall {inherit file dependencies;}}
-    }}
-  ''; # adds a prompt after the command has run
+  commands = import ./commands {inherit pkgs sysLib;};
+  keybindings = import ./keybindings {inherit config;};
 in {
   xdg.configFile."lf/icons".source = ./icons;
   xdg.configFile."lf/colors".source = ./colors;
@@ -60,280 +15,8 @@ in {
   programs.lf = {
     enable = true;
 
-    commands = {
-      archive = shell {
-        file = ./cmds/archive;
-        dependencies = builtins.attrValues {
-          inherit
-            (pkgs)
-            fzf
-            gnutar
-            xz
-            p7zip
-            zip
-            ;
-        };
-      };
-      broot_jump = shell {
-        file = ./cmds/broot_jump;
-        dependencies = builtins.attrValues {
-          inherit (pkgs) broot;
-        };
-      };
-      chmod = pipe {
-        file = ./cmds/chmod;
-        dependencies = [];
-      };
-      clear_trash = shell {
-        file = ./cmds/clear_trash;
-        dependencies = builtins.attrValues {
-          inherit
-            (pkgs)
-            fzf
-            trashy
-            ;
-        };
-      };
-      dl_file = pipe {
-        file = ./cmds/dl_file;
-        dependencies = builtins.attrValues {
-          inherit
-            (pkgs)
-            xdragon
-            curl
-            ;
-        };
-      };
-      dragon = pipe {
-        file = ./cmds/dragon;
-        dependencies = builtins.attrValues {
-          inherit
-            (pkgs)
-            xdragon
-            ;
-        };
-      };
-      dragon_individual = pipe {
-        file = ./cmds/dragon_individual;
-        dependencies = builtins.attrValues {
-          inherit
-            (pkgs)
-            xdragon
-            ;
-        };
-      };
-      dragon_stay = pipe {
-        file = ./cmds/dragon_stay;
-        dependencies = builtins.attrValues {
-          inherit
-            (pkgs)
-            xdragon
-            ;
-        };
-      };
-      fzf_jump = shell {
-        file = ./cmds/fzf_jump;
-        dependencies = builtins.attrValues {
-          inherit (pkgs) fzf lf gnused;
-        };
-      };
-      help = shell {
-        file = ./cmds/help;
-        dependencies = [];
-      };
-      mk_dir = pipe {
-        file = ./cmds/mk_dir;
-        dependencies = [];
-      };
-      mk_file = shell {
-        file = ./cmds/mk_file;
-        dependencies = [];
-      };
-      mk_ln = pipe {
-        file = ./cmds/mk_ln;
-        dependencies = [];
-      };
-      mk_scr = shell {
-        file = ./cmds/mk_scr;
-        dependencies = builtins.attrValues {inherit (pkgs) neovim;};
-      };
-      open = shell {
-        file = ./cmds/open;
-        dependencies = builtins.attrValues {inherit (pkgs) file xdg-utils neovim git;};
-      };
-      open_config = shell {
-        file = ./cmds/open_config;
-        dependencies = builtins.attrValues {
-          #inherit
-          #(pkgs)
-          ## TODO rewrite this:  bookmenu, https://github.com/jarun/buku
-          #
-          #buku
-          #;
-        };
-      };
-      restore_trash = shell {
-        file = ./cmds/restore_trash;
-        dependencies = builtins.attrValues {
-          inherit
-            (pkgs)
-            fzf
-            trashy
-            ;
-        };
-      };
-      set_wall_paper = pipe {
-        file = ./cmds/set_wall_paper;
-        dependencies = [];
-      };
-      stripspace = pipe {
-        file = ./cmds/stripspace;
-        dependencies = [];
-      };
-      trash = pipe {
-        file = ./cmds/trash;
-        dependencies = builtins.attrValues {
-          inherit
-            (pkgs)
-            trashy
-            trash-cli
-            findutils
-            ;
-        };
-      };
-      unarchive = pipe {
-        file = ./cmds/unarchive;
-        dependencies = builtins.attrValues {
-          inherit
-            (pkgs)
-            gnutar
-            unzip
-            # TODO this is unfree! unrar
-            
-            p7zip
-            ;
-        };
-      };
-    };
-    keybindings = {
-      # Remove some defaults
-      m = null;
-      "\"'\"" = null;
-      "'\"'" = null;
-      d = null;
-      c = null;
-      e = null;
-      j = null;
-      k = null;
-      l = null;
-      ";" = null;
-
-      # File Openers
-      ee = "\$\$EDITOR \"$f\"";
-      u = "%\$IVIEWER \"$f\"";
-      cc = "\$sudo -e \"$f\"";
-
-      # Archive Mappings
-      au = "unarchive";
-      aa = "archive";
-
-      # Trash Mappings
-      dd = "trash";
-      jc = "clear_trash";
-      jr = "restore_trash";
-
-      # Broot Mapping
-      f = "fzf_jump";
-
-      # Dragon Mapping
-      dr = "dragon";
-      ds = "dragon-stay";
-      di = "dragon-individual";
-      #dm = "mvdragon";
-      #dc = "cpdragon";
-      dl = "dlfile";
+    inherit commands keybindings;
 
-      cs = "stripspace";
-
-      # Vim keys
-      h = "updir";
-      t = "down";
-      n = "up";
-      s = "open";
-
-      # Basic Functions
-      bn = "help";
-      kk = "mk_ln";
-      "." = "set hidden!";
-      DD = "delete";
-      p = "paste";
-      x = "cut";
-      y = "copy";
-      "<enter>" = "open";
-      mf = "mk_file";
-      md = "mk_dir";
-      ms = "mk_scr";
-      ch = "chmod";
-      bg = "set_wall_paper";
-      o = "open_config";
-      br = "\$vimv \$fx"; # TODO what is this command?
-      r = "rename";
-      H = "top";
-      L = "bottom";
-      R = "reload";
-      C = "clear";
-      U = "unselect";
-
-      # Movement
-      gjr = "cd ~/.local/share/Trash/files";
-      gus = "cd /run/${config.home.username}";
-
-      "gr." = "cd ~/repos";
-      grr = "cd ~/repos/rust";
-      grp = "cd ~/repos/python";
-      grc = "cd ~/repos/c";
-      gra = "cd ~/repos/auto_hot_key";
-      grn = "cd ~/repos/nix";
-      grt = "cd ~/repos/tex";
-      grs = "cd ~/repos/shell";
-      grch = "cd ~/repos/chroot";
-      grpe = "cd ~/repos/perl";
-      grja = "cd ~/repos/java";
-      grjs = "cd ~/repos/java_script";
-      # -------------
-      "gm." = "cd ~/media";
-      gmpi = "cd ~/media/pictures";
-      gmd = "cd ~/media/downloads";
-      gmpl = "cd ~/media/playlist";
-      gmi = "cd ~/media/isos";
-      # -------------
-      "gs." = "cd ~/school";
-      gsgs = "cd ~/school/geschichte";
-      gsch = "cd ~/school/chemie";
-      gsen = "cd ~/school/english";
-      gsgo = "cd ~/school/geographie";
-      gsin = "cd ~/school/infomatik";
-      gsso = "cd ~/school/sozialkunde";
-      gskr = "cd ~/school/katholische_religion";
-      gsmu = "cd ~/school/musik";
-      gsla = "cd ~/school/latein";
-      gsde = "cd ~/school/deutsch";
-      gsma = "cd ~/school/mathematik";
-      gspr = "cd ~/school/praktikum";
-      gsbi = "cd ~/school/biologie";
-      gssp = "cd ~/school/sport";
-      gsphy = "cd ~/school/physik";
-      gsphi = "cd ~/school/philosophie";
-
-      gc = "cd ~/.config";
-      gl = "cd ~/.local";
-      gE = "cd /etc";
-
-      "gU." = "cd /usr";
-      gUs = " cd /usr/share";
-
-      gt = "cd /tmp";
-    };
     previewer = {
       keybinding = "i";
       source = "${pkgs.ctpv}/bin/ctpv";