aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--flake.lock258
-rw-r--r--modules/programs/default.nix2
-rw-r--r--modules/programs/lf/default.nix10
-rw-r--r--modules/programs/lf/lfrc447
-rw-r--r--modules/programs/vscode/default.nix15
-rw-r--r--modules/programs/vscodium/default.nix15
-rw-r--r--users/arpit.nix2
7 files changed, 406 insertions, 343 deletions
diff --git a/flake.lock b/flake.lock
index cc9ccb7..cb7257e 100644
--- a/flake.lock
+++ b/flake.lock
@@ -37,11 +37,11 @@
]
},
"locked": {
- "lastModified": 1774017633,
- "narHash": "sha256-CWhnwL2M83/ItapPVeJqCevRoQttesYxJ1h0Mo6ZCXs=",
+ "lastModified": 1777487137,
+ "narHash": "sha256-TuvKVBX60mqyMT6OB5JqVEh1YIWtFMR/igLCaCdC9tw=",
"owner": "cachix",
"repo": "cachix",
- "rev": "e8be573b417f3daa3dd4cb9052178f848e0c9d1d",
+ "rev": "a66a440c321d35f7193472c317f42a55ccd1cb93",
"type": "github"
},
"original": {
@@ -174,6 +174,7 @@
"crate2nix": "crate2nix",
"flake-compat": "flake-compat_3",
"flake-parts": "flake-parts_3",
+ "ghostty": "ghostty",
"git-hooks": "git-hooks_3",
"nix": "nix",
"nixd": "nixd",
@@ -183,11 +184,11 @@
"rust-overlay": "rust-overlay"
},
"locked": {
- "lastModified": 1777020790,
- "narHash": "sha256-dLkJqswJv58chYKxGD6Bt+sxEZlGkToMpJJ9qGPmRoc=",
+ "lastModified": 1778071019,
+ "narHash": "sha256-vb4UzOKKdLext4faiI1KbI0yrTKNdI8wyxHvOMycWd8=",
"owner": "cachix",
"repo": "devenv",
- "rev": "537469db749984ff4f91ae1b291b78414efc551c",
+ "rev": "a3ebee0b80ce56ae4acba2c971c09ee6eca75338",
"type": "github"
},
"original": {
@@ -285,6 +286,22 @@
"type": "github"
}
},
+ "flake-compat_4": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1761588595,
+ "narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=",
+ "owner": "edolstra",
+ "repo": "flake-compat",
+ "rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5",
+ "type": "github"
+ },
+ "original": {
+ "owner": "edolstra",
+ "repo": "flake-compat",
+ "type": "github"
+ }
+ },
"flake-parts": {
"inputs": {
"nixpkgs-lib": [
@@ -338,11 +355,11 @@
]
},
"locked": {
- "lastModified": 1775087534,
- "narHash": "sha256-91qqW8lhL7TLwgQWijoGBbiD4t7/q75KTi8NxjVmSmA=",
+ "lastModified": 1777678872,
+ "narHash": "sha256-EPIFsulyon7Z1vLQq5Fk64GR8L7cQsT+IPhcsukVbgk=",
"owner": "hercules-ci",
"repo": "flake-parts",
- "rev": "3107b77cd68437b9a76194f0f7f9c55f2329ca5b",
+ "rev": "5250617bffd85403b14dbf43c3870e7f255d2c16",
"type": "github"
},
"original": {
@@ -359,11 +376,11 @@
]
},
"locked": {
- "lastModified": 1775087534,
- "narHash": "sha256-91qqW8lhL7TLwgQWijoGBbiD4t7/q75KTi8NxjVmSmA=",
+ "lastModified": 1777932387,
+ "narHash": "sha256-nUYVPiqrzr36ThiQOAr5MKeGHDBSDM3OFWkz0uDjOvc=",
"owner": "hercules-ci",
"repo": "flake-parts",
- "rev": "3107b77cd68437b9a76194f0f7f9c55f2329ca5b",
+ "rev": "71a3a77326609675e9f8b51084cf23d5d1945899",
"type": "github"
},
"original": {
@@ -388,6 +405,29 @@
"type": "github"
}
},
+ "ghostty": {
+ "inputs": {
+ "flake-compat": "flake-compat_4",
+ "home-manager": "home-manager",
+ "nixpkgs": "nixpkgs_4",
+ "systems": "systems",
+ "zig": "zig",
+ "zon2nix": "zon2nix"
+ },
+ "locked": {
+ "lastModified": 1777773742,
+ "narHash": "sha256-dZFc+8az7BUIs8+v45XqNnY5G6oXEwVfVVHZQuATSGQ=",
+ "owner": "ghostty-org",
+ "repo": "ghostty",
+ "rev": "1547dd667ab6d1f4ebcdc7282adc54c95752ee67",
+ "type": "github"
+ },
+ "original": {
+ "owner": "ghostty-org",
+ "repo": "ghostty",
+ "type": "github"
+ }
+ },
"git-hooks": {
"inputs": {
"flake-compat": [
@@ -463,11 +503,11 @@
]
},
"locked": {
- "lastModified": 1775585728,
- "narHash": "sha256-8Psjt+TWvE4thRKktJsXfR6PA/fWWsZ04DVaY6PUhr4=",
+ "lastModified": 1776796298,
+ "narHash": "sha256-PcRvlWayisPSjd0UcRQbhG8Oqw78AcPE6x872cPRHN8=",
"owner": "cachix",
"repo": "git-hooks.nix",
- "rev": "580633fa3fe5fc0379905986543fd7495481913d",
+ "rev": "3cfd774b0a530725a077e17354fbdb87ea1c4aad",
"type": "github"
},
"original": {
@@ -597,15 +637,37 @@
"home-manager": {
"inputs": {
"nixpkgs": [
+ "devenv",
+ "ghostty",
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1770586272,
+ "narHash": "sha256-Ucci8mu8QfxwzyfER2DQDbvW9t1BnTUJhBmY7ybralo=",
+ "owner": "nix-community",
+ "repo": "home-manager",
+ "rev": "b1f916ba052341edc1f80d4b2399f1092a4873ca",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-community",
+ "repo": "home-manager",
+ "type": "github"
+ }
+ },
+ "home-manager_2": {
+ "inputs": {
+ "nixpkgs": [
"nixpkgs"
]
},
"locked": {
- "lastModified": 1776964438,
- "narHash": "sha256-AF0cby9Xuijr5qaFpYKbm1mExV956Hk233bel6QxpFw=",
+ "lastModified": 1778144356,
+ "narHash": "sha256-dGM+QCstz/DyLB68+JK5GWyMx4QSqmOJEVgZmy63d/g=",
"owner": "nix-community",
"repo": "home-manager",
- "rev": "e09259dd2e147d35ef889784b51e89b0a10ffe15",
+ "rev": "e4419d3123b780d5f4c0bceeace450424387638c",
"type": "github"
},
"original": {
@@ -693,15 +755,15 @@
"devenv",
"flake-parts"
],
- "nixpkgs": "nixpkgs_4",
+ "nixpkgs": "nixpkgs_5",
"treefmt-nix": "treefmt-nix"
},
"locked": {
- "lastModified": 1776341634,
- "narHash": "sha256-L//ltP2o5+BnuK+KEulbi2gGeDpyyex6SkXLZcGQ/Ac=",
+ "lastModified": 1777345723,
+ "narHash": "sha256-BhY3D5DhpDnnUcaY+AL/cpyYX+OIjQgnAkbPLZ08C38=",
"owner": "nix-community",
"repo": "nixd",
- "rev": "951e98e2025c47614f5249556ecf509b0ea35b51",
+ "rev": "6bf30951a3dc407a798d30db427e3f96ac9b39f5",
"type": "github"
},
"original": {
@@ -760,24 +822,37 @@
},
"nixpkgs_4": {
"locked": {
- "lastModified": 1772963539,
- "narHash": "sha256-G4+9cEu8XSqEWYUB6iRgDfrg53av6yyRwAKhSeKbUVw=",
- "rev": "9dcb002ca1690658be4a04645215baea8b95f31d",
+ "lastModified": 1770537093,
+ "narHash": "sha256-XV30uo8tXuxdzuV8l3sojmlPRLd/8tpMsOp4lNzLGUo=",
+ "rev": "fef9403a3e4d31b0a23f0bacebbec52c248fbb51",
"type": "tarball",
- "url": "https://releases.nixos.org/nixos/unstable/nixos-26.05pre960399.9dcb002ca169/nixexprs.tar.xz"
+ "url": "https://releases.nixos.org/nixpkgs/nixpkgs-26.05pre942631.fef9403a3e4d/nixexprs.tar.xz"
},
"original": {
"type": "tarball",
- "url": "https://channels.nixos.org/nixos-unstable/nixexprs.tar.xz"
+ "url": "https://channels.nixos.org/nixpkgs-unstable/nixexprs.tar.xz"
}
},
"nixpkgs_5": {
"locked": {
- "lastModified": 1776548001,
- "narHash": "sha256-ZSK0NL4a1BwVbbTBoSnWgbJy9HeZFXLYQizjb2DPF24=",
+ "lastModified": 1776877367,
+ "narHash": "sha256-wMN1gM00sUQ2KC9CNr/XEOGdfOrl67PabIRv9AYayTo=",
+ "rev": "0726a0ecb6d4e08f6adced58726b95db924cef57",
+ "type": "tarball",
+ "url": "https://releases.nixos.org/nixos/unstable/nixos-26.05pre985613.0726a0ecb6d4/nixexprs.tar.xz"
+ },
+ "original": {
+ "type": "tarball",
+ "url": "https://channels.nixos.org/nixos-unstable/nixexprs.tar.xz"
+ }
+ },
+ "nixpkgs_6": {
+ "locked": {
+ "lastModified": 1777954456,
+ "narHash": "sha256-hGdgeU2Nk87RAuZyYjyDjFL6LK7dAZN5RE9+hrDTkDU=",
"owner": "nixos",
"repo": "nixpkgs",
- "rev": "b12141ef619e0a9c1c84dc8c684040326f27cdcc",
+ "rev": "549bd84d6279f9852cae6225e372cc67fb91a4c1",
"type": "github"
},
"original": {
@@ -787,13 +862,13 @@
"type": "github"
}
},
- "nixpkgs_6": {
+ "nixpkgs_7": {
"locked": {
- "lastModified": 1776255774,
- "narHash": "sha256-psVTpH6PK3q1htMJpmdz1hLF5pQgEshu7gQWgKO6t6Y=",
+ "lastModified": 1777918403,
+ "narHash": "sha256-7QiZv0LcW1yIOLo2LNuCQjWon1Z1r99FwK24hbtBOF4=",
"owner": "NixOS",
"repo": "nixpkgs",
- "rev": "566acc07c54dc807f91625bb286cb9b321b5f42a",
+ "rev": "afc5551119aae6eab73a95c1960891cfe63204f6",
"type": "github"
},
"original": {
@@ -806,15 +881,15 @@
"nixvim": {
"inputs": {
"flake-parts": "flake-parts_4",
- "nixpkgs": "nixpkgs_6",
- "systems": "systems"
+ "nixpkgs": "nixpkgs_7",
+ "systems": "systems_2"
},
"locked": {
- "lastModified": 1776830812,
- "narHash": "sha256-L2q0bpa6evlzE4IfIQ7JWqhTAuINggUSIxMmOAxUsCg=",
+ "lastModified": 1777991353,
+ "narHash": "sha256-DFwjggMV+nzCZpwK6Obxj9F+P59rbLVowGqHETfctBk=",
"owner": "nix-community",
"repo": "nixvim",
- "rev": "53aad7a9aaadaec21d740117ba0f0531b9a9b3cd",
+ "rev": "7986a276960b4dfaed9bb2c3c438b5ba71ae08f1",
"type": "github"
},
"original": {
@@ -885,8 +960,8 @@
"inputs": {
"base16": "base16",
"devenv": "devenv",
- "home-manager": "home-manager",
- "nixpkgs": "nixpkgs_5",
+ "home-manager": "home-manager_2",
+ "nixpkgs": "nixpkgs_6",
"nixvim": "nixvim"
}
},
@@ -898,11 +973,11 @@
]
},
"locked": {
- "lastModified": 1776741231,
- "narHash": "sha256-k9G98qzn+7npROUaks8VqCFm7cFtEG8ulQLBBo5lItg=",
+ "lastModified": 1777778183,
+ "narHash": "sha256-Lqv9MZO0XAGcMbXJU+ULBSMD41Pf391uJehylUQKe7Y=",
"owner": "oxalica",
"repo": "rust-overlay",
- "rev": "02061303f7c4c964f7b4584dabd9e985b4cd442b",
+ "rev": "dbba5f888c82ef3ce594c451c33ac2474eb80847",
"type": "github"
},
"original": {
@@ -912,6 +987,22 @@
}
},
"systems": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1681028828,
+ "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
+ "owner": "nix-systems",
+ "repo": "default",
+ "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-systems",
+ "repo": "default",
+ "type": "github"
+ }
+ },
+ "systems_2": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
@@ -947,6 +1038,85 @@
"repo": "treefmt-nix",
"type": "github"
}
+ },
+ "zig": {
+ "inputs": {
+ "flake-compat": [
+ "devenv",
+ "ghostty",
+ "flake-compat"
+ ],
+ "nixpkgs": [
+ "devenv",
+ "ghostty",
+ "nixpkgs"
+ ],
+ "systems": [
+ "devenv",
+ "ghostty",
+ "systems"
+ ]
+ },
+ "locked": {
+ "lastModified": 1776789209,
+ "narHash": "sha256-G6B7Q4TXn7MZ1mB+f9rymjsYF5PLWoSvmbxijb/99bw=",
+ "owner": "mitchellh",
+ "repo": "zig-overlay",
+ "rev": "14fe971844e841297ddd2ce9783d6892b467af39",
+ "type": "github"
+ },
+ "original": {
+ "owner": "mitchellh",
+ "repo": "zig-overlay",
+ "type": "github"
+ }
+ },
+ "zig_2": {
+ "inputs": {
+ "nixpkgs": [
+ "devenv",
+ "ghostty",
+ "zon2nix",
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1777234348,
+ "narHash": "sha256-fKw44a4qbUuI5eTG8k0gPbqMV5TOrjYF35PBzsYgd2U=",
+ "ref": "refs/heads/main",
+ "rev": "2c781c0609ecda600ab98f98cca417bbd981bd53",
+ "revCount": 1677,
+ "type": "git",
+ "url": "https://codeberg.org/jcollie/zig-overlay.git"
+ },
+ "original": {
+ "type": "git",
+ "url": "https://codeberg.org/jcollie/zig-overlay.git"
+ }
+ },
+ "zon2nix": {
+ "inputs": {
+ "nixpkgs": [
+ "devenv",
+ "ghostty",
+ "nixpkgs"
+ ],
+ "zig": "zig_2"
+ },
+ "locked": {
+ "lastModified": 1777314365,
+ "narHash": "sha256-eLxQaD0wc96Neqkln8wHS0rNq/chPODifFkhwrwilEU=",
+ "owner": "jcollie",
+ "repo": "zon2nix",
+ "rev": "a5a1d412ad1ab6305511997bbc92b3a9dd6cb784",
+ "type": "github"
+ },
+ "original": {
+ "owner": "jcollie",
+ "ref": "main",
+ "repo": "zon2nix",
+ "type": "github"
+ }
}
},
"root": "root",
diff --git a/modules/programs/default.nix b/modules/programs/default.nix
index c5ed999..1d95f6d 100644
--- a/modules/programs/default.nix
+++ b/modules/programs/default.nix
@@ -35,7 +35,7 @@
./tor
./umu-launcher
./vlc
- ./vscode
+ ./vscodium
./zathura
./zsh
];
diff --git a/modules/programs/lf/default.nix b/modules/programs/lf/default.nix
index a128650..1fab9a4 100644
--- a/modules/programs/lf/default.nix
+++ b/modules/programs/lf/default.nix
@@ -9,10 +9,15 @@
{
config = lib.mkIf config.programs.lf.enable {
home.packages = with pkgs; [
- ctpv
+ busybox
];
programs.lf = {
+ package = pkgs.lf.overrideAttrs (old: {
+ dontWrapQtApps = true;
+ dontPatchShebangs = true;
+ });
+
settings = {
number = true;
icons = true;
@@ -20,8 +25,7 @@
hidden = true;
preview = true;
- shell = lib.mkIf config.programs.zsh.enable (lib.getExe config.programs.zsh.package);
- shellopts = "'-eu'";
+ shell = "sh";
ifs = "\n";
scrolloff = "4";
period = "1";
diff --git a/modules/programs/lf/lfrc b/modules/programs/lf/lfrc
index 11a9959..7ae847c 100644
--- a/modules/programs/lf/lfrc
+++ b/modules/programs/lf/lfrc
@@ -1,279 +1,168 @@
-# ─── lf config — nvim-tree style keybindings ───────────────────────────────
-
-# ─── Colors (optional — remove if you use a color scheme plugin) ──────────────
-# set color256 true
-
-# ─── Custom commands ──────────────────────────────────────────────────────────
-
-# Create a new file (like nvim-tree 'a' with no trailing /)
-cmd touch %{{
- printf "New file name: "
- read -r name
- touch "$name"
- lf -remote "send $id select '$name'"
-}}
-
-# Create a new directory (like nvim-tree 'a' with trailing /)
-cmd mkdir %{{
- printf "New directory name: "
- read -r name
- mkdir -p "$name"
- lf -remote "send $id select '$name'"
-}}
-
-# Rename — full name (like nvim-tree 'r')
-cmd rename ${{
- printf "Rename '%s' to: " "$f"
- read -r newname
- mv -- "$f" "$(dirname "$f")/$newname"
- lf -remote "send $id select '$newname'"
-}}
-
-# Rename — only basename without extension (like nvim-tree 'e' in some configs)
-cmd rename_stem ${{
- stem="${f##*/}"
- stem="${stem%.*}"
- printf "Rename stem to: "
- read -r newname
- ext="${f##*.}"
- if [ "${f##*/}" = "$stem" ]; then
- mv -- "$f" "$(dirname "$f")/$newname"
- else
- mv -- "$f" "$(dirname "$f")/$newname.$ext"
- fi
-}}
-
-# Delete — trash (safe) using trash-cli if available, else rm
-cmd trash %{{
- set -f
- files=$(printf '%s\n' $fx | wc -l)
- printf "Trash $files item(s)? [y/N] "
- read -r ans
- [ "$ans" = "y" ] || [ "$ans" = "Y" ] || exit 0
- if command -v trash-put >/dev/null 2>&1; then
- printf '%s\n' $fx | xargs trash-put --
- else
- printf '%s\n' $fx | xargs rm -rf --
- fi
-}}
-
-# Delete — permanent, no confirmation prompt (use carefully)
-cmd delete ${{
- set -f
- printf "Permanently delete? [y/N] "
- read -r ans
- [ "$ans" = "y" ] || [ "$ans" = "Y" ] || exit 0
- rm -rf -- $fx
-}}
-
-# Paste (move or copy depending on operation)
-cmd paste &{{
- set -f
- load=$(lf -remote 'load')
- mode=$(echo "$load" | sed -n '1p')
- list=$(echo "$load" | sed -n '2,$p')
- if [ "$mode" = "copy" ]; then
- cp -rn -- $list .
- elif [ "$mode" = "move" ]; then
- mv -n -- $list .
- lf -remote 'send clear'
- fi
- lf -remote 'send reload'
- lf -remote 'send clear'
-}}
-
-# Paste with overwrite
-cmd paste_overwrite &{{
- set -f
- load=$(lf -remote 'load')
- mode=$(echo "$load" | sed -n '1p')
- list=$(echo "$load" | sed -n '2,$p')
- if [ "$mode" = "copy" ]; then
- cp -r -- $list .
- elif [ "$mode" = "move" ]; then
- mv -- $list .
- lf -remote 'send clear'
- fi
- lf -remote 'send reload'
- lf -remote 'send clear'
-}}
-
-# Open in nvim
-cmd edit $nvim "$f"
-
-# Open with xdg-open (GUI apps)
-cmd open_gui &xdg-open "$f"
-
-# Toggle hidden files (like nvim-tree 'H')
-cmd toggle_hidden :{{
- set hidden!
- set info
-}}
-
-# Bulk rename with $EDITOR (like vimv / nvim-tree mass rename)
-cmd bulk_rename ${{
- index=$(mktemp /tmp/lf-bulk-index.XXXXXX)
- names=$(mktemp /tmp/lf-bulk-names.XXXXXX)
- printf '%s\n' $fx > "$index"
- sed 's|.*/||' "$index" > "$names"
- $EDITOR "$names"
- paste "$index" "$names" | while IFS=$'\t' read -r old new; do
- if [ "$old" != "$(dirname "$old")/$new" ]; then
- mv -- "$old" "$(dirname "$old")/$new"
- fi
- done
- rm -- "$index" "$names"
- lf -remote 'send reload'
-}}
-
-# Create symlink (relative)
-cmd symlink %{{
- printf "Symlink target name: "
- read -r name
- ln -s "$f" "$name"
-}}
-
-# Copy path to clipboard (needs xclip / xsel / wl-copy)
-cmd copy_path &{{
- printf '%s' "$f" | xclip -selection clipboard 2>/dev/null \
- || printf '%s' "$f" | xsel --clipboard --input 2>/dev/null \
- || printf '%s' "$f" | wl-copy 2>/dev/null
-}}
-
-# Show file info (like nvim-tree 'i')
-cmd info %{{
- stat -- "$f"
- printf '\nPress ENTER...'
- read -r _
-}}
-
-# Jump to bookmarks (requires fzf)
-cmd bookmark_jump ${{
- bm="$HOME/.config/lf/bookmarks"
- [ -f "$bm" ] || touch "$bm"
- dest=$(cat "$bm" | fzf --prompt "Jump to: ")
- [ -n "$dest" ] && lf -remote "send $id cd '$dest'"
-}}
-
-# Add bookmark
-cmd bookmark_add %{{
- bm="$HOME/.config/lf/bookmarks"
- printf '%s\n' "$PWD" >> "$bm"
- sort -u "$bm" -o "$bm"
- echo "Bookmarked: $PWD"
-}}
-
-# fzf-based fuzzy find & cd/select
-cmd fzf_cd ${{
- dest=$(find . -type d 2>/dev/null | fzf --prompt "cd: ")
- [ -n "$dest" ] && lf -remote "send $id cd '$dest'"
-}}
-
-cmd fzf_file ${{
- file=$(find . -type f 2>/dev/null | fzf --prompt "open: ")
- [ -n "$dest" ] && lf -remote "send $id select '$file'"
-}}
-
-# ─── Keybindings — clear defaults and remap ───────────────────────────────────
-
-# Unmap keys we'll remap
-map d
-map y
-map p
-map c
-map r
-map a
-map e
-map f
-map g
-map G
-map i
-map o
-map H
-map m
-
-# ── Navigation ────────────────────────────────────────────────────────────────
-map h updir # go up one dir
-map l open # open file/dir (maps to $EDITOR for files)
-map j down
-map k up
-map J half-down
-map K half-up
-map gg top
-map G bottom
-map gd cd ~/Downloads
-map gh cd ~
-map gc cd ~/.config
-map gp cd ~/projects
-
-# Page navigation (nvim-style)
-map <c-d> half-down
-map <c-u> half-up
-map <c-f> page-down
-map <c-b> page-up
-
-# ── Opening / editing ─────────────────────────────────────────────────────────
-map <enter> open # open with default
-map o open_gui # open with GUI app
-map e edit # open in nvim explicitly
-
-# ── File / dir creation ───────────────────────────────────────────────────────
-map af touch # a → file (like nvim-tree 'a' without /)
-map ad mkdir # a → dir (like nvim-tree 'a' with /)
-
-# ── Rename ────────────────────────────────────────────────────────────────────
-map r rename # full rename (like nvim-tree 'r')
-map R bulk_rename # bulk rename in $EDITOR
-map cw rename # alias: cw like vim's 'change word'
-map I rename # alias: go to start (lf positions cursor)
-map A rename # alias: go to end
-
-# ── Delete ────────────────────────────────────────────────────────────────────
-map dd trash # move to trash (safe delete — like nvim-tree 'd')
-map dD delete # permanent delete (no trash)
-
-# ── Yank / Copy / Cut / Paste ─────────────────────────────────────────────────
-map yy copy # yank/copy selection (like nvim-tree 'c')
-map yn copy_path # yank path to clipboard
-map dd cut # cut selection (like nvim-tree 'x') — overrides trash above;
- # uncomment the trash line below if you prefer separate keys
-# map dt trash # use 'dt' for trash if 'dd' is used for cut
-map pp paste # paste (like nvim-tree 'p')
-map po paste_overwrite # paste with overwrite
-map P paste # alias
-
-# ── Marking / selection ───────────────────────────────────────────────────────
-map <space> toggle # toggle mark on current item (like nvim-tree space)
-map v invert # invert selection
-map V invert # alias
-map u unselect # clear all marks
-map * glob-select '*' # select all via glob
-
-# ── Search ────────────────────────────────────────────────────────────────────
-map / search # incremental search forward
-map n search-next
-map N search-prev
-map f fzf_file # fuzzy find file (requires fzf)
-map F fzf_cd # fuzzy cd into dir (requires fzf)
-
-# ── View toggles ──────────────────────────────────────────────────────────────
-map H toggle_hidden # toggle hidden files (like nvim-tree 'H')
-map zi set icons!
-map zr set reverse!
-map zh set hidden!
-map zn set sortby natural
-map zs set sortby size
-map zm set sortby modified
-map ze set sortby ext
-
-# ── Info / misc ───────────────────────────────────────────────────────────────
-map i info # show stat info (like nvim-tree 'i')
-map <c-r> reload # reload directory
-map <esc> clear # clear selection
-map q quit
-map Q quit
-map m bookmark_add # add bookmark
-map ' bookmark_jump # jump to bookmark (requires fzf)
-
-# Symlink
-map S symlink
+# =========================
+# BASIC MOVEMENT (nvim-like)
+# =========================
+
+map j down
+map k up
+map h updir
+map l open
+
+map gg top
+map G bottom
+
+map <c-u> half-up
+map <c-d> half-down
+
+map <c-b> page-up
+map <c-f> page-down
+
+# =========================
+# SELECTION
+# =========================
+
+map <space> toggle
+map v invert
+map V select
+
+# =========================
+# OPENING
+# =========================
+
+map o open
+map <enter> open
+map L open
+
+# =========================
+# DIRECTORY NAVIGATION
+# =========================
+
+map H cd ..
+map gh cd ~
+map ge cd /
+
+# =========================
+# FILE OPERATIONS
+# =========================
+
+map y copy
+map x cut
+map p paste
+
+map d delete
+
+map a :push %mkdir<space>
+map A :push %touch<space>
+
+map r rename
+
+# =========================
+# SEARCH
+# =========================
+
+map / search
+map n search-next
+map N search-prev
+
+map f find
+map F find-back
+
+# =========================
+# FILTER
+# =========================
+
+map zf filter
+map zc clear
+
+# =========================
+# MARKS (vim-style)
+# =========================
+
+map m mark-save
+map ' mark-load
+
+# =========================
+# HISTORY
+# =========================
+
+map <c-o> history-prev
+map <c-i> history-next
+
+# =========================
+# RELOAD
+# =========================
+
+map R reload
+
+# =========================
+# SHELL / COMMANDS
+# =========================
+
+map ! shell
+map : read
+
+map & shell-async
+
+# =========================
+# VISUAL MODES / TAGGING
+# =========================
+
+map t tag
+map T tag-toggle
+
+# =========================
+# SORTING
+# =========================
+
+map sn set sortby name
+map ss set sortby size
+map st set sortby time
+map se set sortby ext
+
+# =========================
+# TOGGLES
+# =========================
+
+map zh set hidden!
+map zr set reverse!
+
+# =========================
+# VIEW
+# =========================
+
+map zi set info
+map zs set preview
+
+# =========================
+# JUMPS
+# =========================
+
+map [ jump-prev
+map ] jump-next
+
+# =========================
+# CLIPBOARD-LIKE
+# =========================
+
+map c clear
+map u unselect
+
+# =========================
+# MULTI-SELECTION NAV
+# =========================
+
+map J down-select
+map K up-select
+
+# =========================
+# COMMAND MODE SHORTCUTS
+# =========================
+
+map w :write
+map q quit
+map Q quit!
+
+# =========================
+# FILE INFO
+# =========================
+
+map i info
diff --git a/modules/programs/vscode/default.nix b/modules/programs/vscode/default.nix
deleted file mode 100644
index 3c57567..0000000
--- a/modules/programs/vscode/default.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- config,
- lib,
- pkgs,
- ...
-}:
-
-# VSCode - Visual Studio Code (using VSCodium open-source build)
-{
- config = lib.mkIf config.programs.vscode.enable {
- programs.vscode = {
- package = pkgs.vscodium;
- };
- };
-}
diff --git a/modules/programs/vscodium/default.nix b/modules/programs/vscodium/default.nix
new file mode 100644
index 0000000..d60cd51
--- /dev/null
+++ b/modules/programs/vscodium/default.nix
@@ -0,0 +1,15 @@
+{
+ config,
+ lib,
+ pkgs,
+ ...
+}:
+
+# VSCodium - Visual Studio Code fork
+{
+ config = lib.mkIf config.programs.vscodium.enable {
+ programs.vscodium = {
+ package = pkgs.vscodium;
+ };
+ };
+}
diff --git a/users/arpit.nix b/users/arpit.nix
index 66aef67..12597cc 100644
--- a/users/arpit.nix
+++ b/users/arpit.nix
@@ -45,7 +45,7 @@
programs.tor.enable = true;
programs.umu-launcher.enable = true;
programs.vlc.enable = true;
- programs.vscode.enable = true;
+ programs.vscodium.enable = true;
programs.zathura.enable = true;
programs.zsh.enable = true;