# Phase 2: Software Migration Plan & Mapping (Filled) **Objective:** To create a clear mapping from currently installed software (via APT and Snap) to their equivalents in the NixOS ecosystem. This list will directly inform the creation of the `configuration.nix` file. ## Analysis Summary The following tables are based on the `logs/01_system_recon.log` file. --- ### Tier 1: Critical Applications & Services These are essential for your daily workflow and server functions. | Application Name | Installed Via | Notes | NixOS Package Name / Module | | ----------------------- | ------------- | ----------------------------------------------- | -------------------------------- | | Firefox | `snap` | Primary web browser. | `firefox` | | Thunderbird | `snap` | Email client. | `thunderbird` | | Kitty | `apt` | Terminal emulator. | `kitty` | | Neovim | `apt` | Primary text editor. | `neovim` | | Nushell | `snap` | Shell. | `nushell` | | VS Code | `snap` | Code editor. | `vscode` | | Telegram Desktop | `snap` | Messaging app. | `telegram-desktop` | | --- | --- | --- | --- | ### Tier 2: Development & CLI Tools Essential tools for your development and command-line environment. | Tool Name | Installed Via | Notes | NixOS Package Name | | ----------------------- | ------------- | ----------------------------------------------- | -------------------------------- | | Git | `apt` | Version control. | `git` | | Rust (cargo, rustc) | `apt` | Rust programming language toolchain. | `rustc`, `cargo` | | Node.js | `apt` | JavaScript runtime. | `nodejs` (specify version) | | Python 3 | `apt` | Python programming language. | `python3` | | build-essential / gcc | `apt` | C/C++ compiler and core build tools. | `gcc`, `gnumake` | | btop | `apt` | Resource monitor. | `btop` | | eza | `apt` | Modern `ls` replacement. | `eza` | | bat | `apt` | Modern `cat` replacement. | `bat` | | fzf | `apt` | Command-line fuzzy finder. | `fzf` | | ripgrep | `apt` | Fast search tool. | `ripgrep` | | zoxide | `apt` | Smarter `cd` command. | `zoxide` | | --- | --- | --- | --- | ### Tier 3: Desktop & GUI Applications Standard desktop applications. | Application Name | Installed Via | Notes | NixOS Package Name | | ----------------------- | ------------- | ----------------------------------------------- | -------------------------------- | | LibreOffice | `apt` | Office suite. | `libreoffice` | | Flameshot | `apt` | Screenshot tool. | `flameshot` | | VLC | `apt` | Media player. | `vlc` | | Spotify | `snap` | Music player. | `spotify` | | Timeshift | `apt` | System restore utility. | `timeshift` | | GNOME Apps (various) | `apt` | Calculator, Clocks, etc. | Handled by `services.xserver.desktopManager.gnome.enable = true;` | | --- | --- | --- | --- | ## Plan for Other Packages - **System Libraries:** The vast majority of packages listed in the log are system libraries (files ending in `...:amd64`, `...-dev`, `lib...`). These will be managed automatically by NixOS as dependencies for the applications you choose to install. You do not need to list them manually. - **Snap Packages:** All applications installed via `snap` will need to be replaced with their NixOS/Flathub equivalents. NixOS does not support Snap out of the box. The list above includes the most important ones. - **De-duplication:** Many packages are related (e.g., `g++`, `gcc`, `cpp`). In NixOS, installing the `gcc` package will provide the necessary toolchain. **Next Step:** Use this document as a worksheet to build the `environment.systemPackages` list in the `configuration.nix` file.