about summary refs log tree commit diff stats
path: root/modules
diff options
context:
space:
mode:
Diffstat (limited to 'modules')
-rw-r--r--modules/by-name/nv/nvim/plgs/lf-nvim/default.nix83
-rw-r--r--modules/by-name/nv/nvim/plgs/lf-nvim/lua/lf-nvim.lua53
2 files changed, 75 insertions, 61 deletions
diff --git a/modules/by-name/nv/nvim/plgs/lf-nvim/default.nix b/modules/by-name/nv/nvim/plgs/lf-nvim/default.nix
index 3a1c6bf9..e652a60d 100644
--- a/modules/by-name/nv/nvim/plgs/lf-nvim/default.nix
+++ b/modules/by-name/nv/nvim/plgs/lf-nvim/default.nix
@@ -8,21 +8,88 @@
 # You should have received a copy of the License along with this program.
 # If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
 {
-  pkgs,
   lib,
   config,
   ...
 }: let
   cfg = config.soispha.programs.nvim;
 in {
-  # TODO: package lf-nvim though a module
   # TODO: change the nvim path, when I change the path with lf
   home-manager.users.soispha.programs.nixvim = lib.mkIf cfg.enable {
-    extraConfigLuaPost = ''
-      ${lib.strings.fileContents ./lua/lf-nvim.lua}
-    '';
-    extraPlugins = [
-      pkgs.vimPlugins.lf-nvim
-    ];
+    plugins.lf = {
+      enable = true;
+
+      settings = {
+        default_actions = {
+          "<C-o>" = "tab drop";
+          "<C-t>" = "tabedit";
+          "<C-v>" = "vsplit";
+          "<C-x>" = "split";
+        };
+
+        default_action = "drop";
+
+        winblend = 10;
+        dir = "";
+        direction = "float";
+        border = "rounded";
+        height.__raw = "vim.fn.float2nr(vim.fn.round(0.75 * vim.o.lines))";
+        width.__raw = "vim.fn.float2nr(vim.fn.round(0.75 * vim.o.columns))";
+        escape_quit = true;
+        focus_on_open = true;
+        mappings = true;
+        tmux = false;
+        default_file_manager = true;
+        disable_netrw_warning = true;
+        highlights = {
+          Normal = {link = "Normal";};
+          NormalFloat = {link = "Normal";};
+          FloatBorder = {
+            guifg = "#cdcbe0";
+            guibg = "#191726";
+          };
+        };
+
+        layout_mapping = "<M-u>";
+        views = [
+          {
+            width = 0.800;
+            height = 0.800;
+          }
+          {
+            width = 0.600;
+            height = 0.600;
+          }
+          {
+            width = 0.950;
+            height = 0.950;
+          }
+          {
+            width = 0.500;
+            height = 0.500;
+            col = 0;
+            row = 0;
+          }
+          {
+            width = 0.500;
+            height = 0.500;
+            col = 0;
+            row = 0.5;
+          }
+          {
+            width = 0.500;
+            height = 0.500;
+            col = 0.5;
+            row = 0;
+          }
+          {
+            width = 0.500;
+            height = 0.500;
+            col = 0.5;
+            row = 0.5;
+          }
+        ];
+      };
+    };
   };
 }
diff --git a/modules/by-name/nv/nvim/plgs/lf-nvim/lua/lf-nvim.lua b/modules/by-name/nv/nvim/plgs/lf-nvim/lua/lf-nvim.lua
deleted file mode 100644
index 8c40ab50..00000000
--- a/modules/by-name/nv/nvim/plgs/lf-nvim/lua/lf-nvim.lua
+++ /dev/null
@@ -1,53 +0,0 @@
--- nixos-config - My current NixOS configuration
---
--- Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
--- SPDX-License-Identifier: GPL-3.0-or-later
---
--- This file is part of my nixos-config.
---
--- You should have received a copy of the License along with this program.
--- If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
-
-local fn = vim.fn
-
--- Defaults
-require("lf").setup({
-  default_action = "drop", -- default action when `Lf` opens a file
-  -- TODO: what do these mappings do?
-  default_actions = { -- default action keybindings
-    ["<C-t>"] = "tabedit",
-    ["<C-x>"] = "split",
-    ["<C-v>"] = "vsplit",
-    ["<C-o>"] = "tab drop",
-  },
-
-  winblend = 10, -- psuedotransparency level
-  dir = "", -- directory where `lf` starts ('gwd' is git-working-directory, ""/nil is CWD)
-  direction = "float", -- window type: float horizontal vertical
-  border = "rounded", -- border kind: single double shadow curved
-  height = fn.float2nr(fn.round(0.75 * vim.o.lines)), -- height of the *floating* window
-  width = fn.float2nr(fn.round(0.75 * vim.o.columns)), -- width of the *floating* window
-  escape_quit = true, -- map escape to the quit command (so it doesn't go into a meta normal mode)
-  focus_on_open = true, -- focus the current file when opening Lf (experimental)
-  mappings = true, -- whether terminal buffer mapping is enabled
-  tmux = false, -- tmux statusline can be disabled on opening of Lf
-  default_file_manager = true, -- make lf default file manager
-  disable_netrw_warning = true, -- don't display a message when opening a directory with `default_file_manager` as true
-  highlights = { -- highlights passed to toggleterm
-    Normal = { link = "Normal" },
-    NormalFloat = { link = "Normal" },
-    FloatBorder = { guifg = "#cdcbe0", guibg = "#191726" },
-  },
-
-  -- Layout configurations
-  layout_mapping = "<M-u>", -- resize window with this key
-  views = { -- window dimensions to rotate through
-    { width = 0.800, height = 0.800 },
-    { width = 0.600, height = 0.600 },
-    { width = 0.950, height = 0.950 },
-    { width = 0.500, height = 0.500, col = 0, row = 0 },
-    { width = 0.500, height = 0.500, col = 0, row = 0.5 },
-    { width = 0.500, height = 0.500, col = 0.5, row = 0 },
-    { width = 0.500, height = 0.500, col = 0.5, row = 0.5 },
-  },
-})