about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--home-manager/config/lf/commands/default.nix207
-rwxr-xr-xhome-manager/config/lf/commands/scripts/archive (renamed from home-manager/config/lf/cmds/archive)0
-rwxr-xr-xhome-manager/config/lf/commands/scripts/broot_jump (renamed from home-manager/config/lf/cmds/broot_jump)0
-rwxr-xr-xhome-manager/config/lf/commands/scripts/chmod (renamed from home-manager/config/lf/cmds/chmod)0
-rwxr-xr-xhome-manager/config/lf/commands/scripts/clear_trash (renamed from home-manager/config/lf/cmds/clear_trash)0
-rwxr-xr-xhome-manager/config/lf/commands/scripts/dl_file (renamed from home-manager/config/lf/cmds/dl_file)0
-rwxr-xr-xhome-manager/config/lf/commands/scripts/dragon (renamed from home-manager/config/lf/cmds/dragon)0
-rwxr-xr-xhome-manager/config/lf/commands/scripts/dragon_individual (renamed from home-manager/config/lf/cmds/dragon_individual)0
-rwxr-xr-xhome-manager/config/lf/commands/scripts/dragon_stay (renamed from home-manager/config/lf/cmds/dragon_stay)0
-rwxr-xr-xhome-manager/config/lf/commands/scripts/fzf_jump (renamed from home-manager/config/lf/cmds/fzf_jump)0
-rwxr-xr-xhome-manager/config/lf/commands/scripts/help (renamed from home-manager/config/lf/cmds/help)0
-rwxr-xr-xhome-manager/config/lf/commands/scripts/mk_dir (renamed from home-manager/config/lf/cmds/mk_dir)0
-rwxr-xr-xhome-manager/config/lf/commands/scripts/mk_file (renamed from home-manager/config/lf/cmds/mk_file)0
-rwxr-xr-xhome-manager/config/lf/commands/scripts/mk_ln (renamed from home-manager/config/lf/cmds/mk_ln)0
-rwxr-xr-xhome-manager/config/lf/commands/scripts/mk_scr (renamed from home-manager/config/lf/cmds/mk_scr)0
-rwxr-xr-xhome-manager/config/lf/commands/scripts/open (renamed from home-manager/config/lf/cmds/open)0
-rwxr-xr-xhome-manager/config/lf/commands/scripts/open_config (renamed from home-manager/config/lf/cmds/open_config)0
-rwxr-xr-xhome-manager/config/lf/commands/scripts/restore_trash (renamed from home-manager/config/lf/cmds/restore_trash)0
-rwxr-xr-xhome-manager/config/lf/commands/scripts/set_wall_paper (renamed from home-manager/config/lf/cmds/set_wall_paper)0
-rwxr-xr-xhome-manager/config/lf/commands/scripts/stripspace (renamed from home-manager/config/lf/cmds/stripspace)0
-rwxr-xr-xhome-manager/config/lf/commands/scripts/trash (renamed from home-manager/config/lf/cmds/trash)0
-rwxr-xr-xhome-manager/config/lf/commands/scripts/unarchive (renamed from home-manager/config/lf/cmds/unarchive)0
-rw-r--r--home-manager/config/lf/default.nix325
-rw-r--r--home-manager/config/lf/keybindings/default.nix117
24 files changed, 328 insertions, 321 deletions
diff --git a/home-manager/config/lf/commands/default.nix b/home-manager/config/lf/commands/default.nix
new file mode 100644
index 00000000..446466be
--- /dev/null
+++ b/home-manager/config/lf/commands/default.nix
@@ -0,0 +1,207 @@
+{
+  pkgs,
+  sysLib,
+  ...
+}: 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
+in {
+  archive = shell {
+    file = ./scripts/archive;
+    dependencies = builtins.attrValues {
+      inherit
+        (pkgs)
+        fzf
+        gnutar
+        xz
+        p7zip
+        zip
+        ;
+    };
+  };
+  broot_jump = shell {
+    file = ./scripts/broot_jump;
+    dependencies = builtins.attrValues {
+      inherit (pkgs) broot;
+    };
+  };
+  chmod = pipe {
+    file = ./scripts/chmod;
+    dependencies = [];
+  };
+  clear_trash = shell {
+    file = ./scripts/clear_trash;
+    dependencies = builtins.attrValues {
+      inherit
+        (pkgs)
+        fzf
+        trashy
+        ;
+    };
+  };
+  dl_file = pipe {
+    file = ./scripts/dl_file;
+    dependencies = builtins.attrValues {
+      inherit
+        (pkgs)
+        xdragon
+        curl
+        ;
+    };
+  };
+  dragon = pipe {
+    file = ./scripts/dragon;
+    dependencies = builtins.attrValues {
+      inherit
+        (pkgs)
+        xdragon
+        ;
+    };
+  };
+  dragon_individual = pipe {
+    file = ./scripts/dragon_individual;
+    dependencies = builtins.attrValues {
+      inherit
+        (pkgs)
+        xdragon
+        ;
+    };
+  };
+  dragon_stay = pipe {
+    file = ./scripts/dragon_stay;
+    dependencies = builtins.attrValues {
+      inherit
+        (pkgs)
+        xdragon
+        ;
+    };
+  };
+  fzf_jump = shell {
+    file = ./scripts/fzf_jump;
+    dependencies = builtins.attrValues {
+      inherit (pkgs) fzf lf gnused;
+    };
+  };
+  help = shell {
+    file = ./scripts/help;
+    dependencies = [];
+  };
+  mk_dir = pipe {
+    file = ./scripts/mk_dir;
+    dependencies = [];
+  };
+  mk_file = shell {
+    file = ./scripts/mk_file;
+    dependencies = [];
+  };
+  mk_ln = pipe {
+    file = ./scripts/mk_ln;
+    dependencies = [];
+  };
+  mk_scr = shell {
+    file = ./scripts/mk_scr;
+    dependencies = builtins.attrValues {inherit (pkgs) neovim;};
+  };
+  open = shell {
+    file = ./scripts/open;
+    dependencies = builtins.attrValues {inherit (pkgs) file xdg-utils neovim git;};
+  };
+  open_config = shell {
+    file = ./scripts/open_config;
+    dependencies = builtins.attrValues {
+      #inherit
+      #(pkgs)
+      ## TODO rewrite this:  bookmenu, https://github.com/jarun/buku
+      #
+      #buku
+      #;
+    };
+  };
+  restore_trash = shell {
+    file = ./scripts/restore_trash;
+    dependencies = builtins.attrValues {
+      inherit
+        (pkgs)
+        fzf
+        trashy
+        ;
+    };
+  };
+  set_wall_paper = pipe {
+    file = ./scripts/set_wall_paper;
+    dependencies = [];
+  };
+  stripspace = pipe {
+    file = ./scripts/stripspace;
+    dependencies = [];
+  };
+  trash = pipe {
+    file = ./scripts/trash;
+    dependencies = builtins.attrValues {
+      inherit
+        (pkgs)
+        trashy
+        trash-cli
+        findutils
+        ;
+    };
+  };
+  unarchive = pipe {
+    file = ./scripts/unarchive;
+    dependencies = builtins.attrValues {
+      inherit
+        (pkgs)
+        gnutar
+        unzip
+        # TODO this is unfree! unrar
+        
+        p7zip
+        ;
+    };
+  };
+}
diff --git a/home-manager/config/lf/cmds/archive b/home-manager/config/lf/commands/scripts/archive
index fd032dd4..fd032dd4 100755
--- a/home-manager/config/lf/cmds/archive
+++ b/home-manager/config/lf/commands/scripts/archive
diff --git a/home-manager/config/lf/cmds/broot_jump b/home-manager/config/lf/commands/scripts/broot_jump
index ff62ec90..ff62ec90 100755
--- a/home-manager/config/lf/cmds/broot_jump
+++ b/home-manager/config/lf/commands/scripts/broot_jump
diff --git a/home-manager/config/lf/cmds/chmod b/home-manager/config/lf/commands/scripts/chmod
index b1682090..b1682090 100755
--- a/home-manager/config/lf/cmds/chmod
+++ b/home-manager/config/lf/commands/scripts/chmod
diff --git a/home-manager/config/lf/cmds/clear_trash b/home-manager/config/lf/commands/scripts/clear_trash
index e1ee3d1e..e1ee3d1e 100755
--- a/home-manager/config/lf/cmds/clear_trash
+++ b/home-manager/config/lf/commands/scripts/clear_trash
diff --git a/home-manager/config/lf/cmds/dl_file b/home-manager/config/lf/commands/scripts/dl_file
index 373386f8..373386f8 100755
--- a/home-manager/config/lf/cmds/dl_file
+++ b/home-manager/config/lf/commands/scripts/dl_file
diff --git a/home-manager/config/lf/cmds/dragon b/home-manager/config/lf/commands/scripts/dragon
index fce161be..fce161be 100755
--- a/home-manager/config/lf/cmds/dragon
+++ b/home-manager/config/lf/commands/scripts/dragon
diff --git a/home-manager/config/lf/cmds/dragon_individual b/home-manager/config/lf/commands/scripts/dragon_individual
index 7adf6924..7adf6924 100755
--- a/home-manager/config/lf/cmds/dragon_individual
+++ b/home-manager/config/lf/commands/scripts/dragon_individual
diff --git a/home-manager/config/lf/cmds/dragon_stay b/home-manager/config/lf/commands/scripts/dragon_stay
index aff9d01d..aff9d01d 100755
--- a/home-manager/config/lf/cmds/dragon_stay
+++ b/home-manager/config/lf/commands/scripts/dragon_stay
diff --git a/home-manager/config/lf/cmds/fzf_jump b/home-manager/config/lf/commands/scripts/fzf_jump
index e0995761..e0995761 100755
--- a/home-manager/config/lf/cmds/fzf_jump
+++ b/home-manager/config/lf/commands/scripts/fzf_jump
diff --git a/home-manager/config/lf/cmds/help b/home-manager/config/lf/commands/scripts/help
index 4ec06648..4ec06648 100755
--- a/home-manager/config/lf/cmds/help
+++ b/home-manager/config/lf/commands/scripts/help
diff --git a/home-manager/config/lf/cmds/mk_dir b/home-manager/config/lf/commands/scripts/mk_dir
index fb69cf92..fb69cf92 100755
--- a/home-manager/config/lf/cmds/mk_dir
+++ b/home-manager/config/lf/commands/scripts/mk_dir
diff --git a/home-manager/config/lf/cmds/mk_file b/home-manager/config/lf/commands/scripts/mk_file
index eef8df4b..eef8df4b 100755
--- a/home-manager/config/lf/cmds/mk_file
+++ b/home-manager/config/lf/commands/scripts/mk_file
diff --git a/home-manager/config/lf/cmds/mk_ln b/home-manager/config/lf/commands/scripts/mk_ln
index 066150bd..066150bd 100755
--- a/home-manager/config/lf/cmds/mk_ln
+++ b/home-manager/config/lf/commands/scripts/mk_ln
diff --git a/home-manager/config/lf/cmds/mk_scr b/home-manager/config/lf/commands/scripts/mk_scr
index 6857e8f6..6857e8f6 100755
--- a/home-manager/config/lf/cmds/mk_scr
+++ b/home-manager/config/lf/commands/scripts/mk_scr
diff --git a/home-manager/config/lf/cmds/open b/home-manager/config/lf/commands/scripts/open
index 2065eee3..2065eee3 100755
--- a/home-manager/config/lf/cmds/open
+++ b/home-manager/config/lf/commands/scripts/open
diff --git a/home-manager/config/lf/cmds/open_config b/home-manager/config/lf/commands/scripts/open_config
index 55ae68cb..55ae68cb 100755
--- a/home-manager/config/lf/cmds/open_config
+++ b/home-manager/config/lf/commands/scripts/open_config
diff --git a/home-manager/config/lf/cmds/restore_trash b/home-manager/config/lf/commands/scripts/restore_trash
index 22c16888..22c16888 100755
--- a/home-manager/config/lf/cmds/restore_trash
+++ b/home-manager/config/lf/commands/scripts/restore_trash
diff --git a/home-manager/config/lf/cmds/set_wall_paper b/home-manager/config/lf/commands/scripts/set_wall_paper
index 50cc9656..50cc9656 100755
--- a/home-manager/config/lf/cmds/set_wall_paper
+++ b/home-manager/config/lf/commands/scripts/set_wall_paper
diff --git a/home-manager/config/lf/cmds/stripspace b/home-manager/config/lf/commands/scripts/stripspace
index 65dabc4c..65dabc4c 100755
--- a/home-manager/config/lf/cmds/stripspace
+++ b/home-manager/config/lf/commands/scripts/stripspace
diff --git a/home-manager/config/lf/cmds/trash b/home-manager/config/lf/commands/scripts/trash
index 9e2e6aa4..9e2e6aa4 100755
--- a/home-manager/config/lf/cmds/trash
+++ b/home-manager/config/lf/commands/scripts/trash
diff --git a/home-manager/config/lf/cmds/unarchive b/home-manager/config/lf/commands/scripts/unarchive
index dfa82c9a..dfa82c9a 100755
--- a/home-manager/config/lf/cmds/unarchive
+++ b/home-manager/config/lf/commands/scripts/unarchive
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";
diff --git a/home-manager/config/lf/keybindings/default.nix b/home-manager/config/lf/keybindings/default.nix
new file mode 100644
index 00000000..bc2178cf
--- /dev/null
+++ b/home-manager/config/lf/keybindings/default.nix
@@ -0,0 +1,117 @@
+{config, ...}: {
+  # 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";
+
+  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";
+  grpe = "cd ~/repos/perl";
+  grja = "cd ~/repos/java";
+  grjs = "cd ~/repos/java_script";
+  # -------------
+  "gm." = "cd ~/media";
+  gmpi = "cd ~/media/pictures";
+  gmd = "cd ~/media/downloads";
+  gmm = "cd ~/media/music";
+  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";
+  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";
+}