This package adapts the configuration files moved from Windows to Debian. It contains no tokens, SSH keys, or passwords.
The highlight is Neovim, configured as an IDE for Java and Spring Boot: jdtls, code generation and refactoring, Maven/Gradle builds, tests, JaCoCo coverage, debugging, and Spring Boot Language Server. See the Neovim README and the keybindings guide.
| Source | Debian implementation |
|---|---|
| PowerShell profile | PowerShell 7-compatible profile on Linux, without Git for Windows paths |
| PowerShell functions and aliases | Equivalent version for Bash, the default Debian shell |
| Oh My Posh theme | The same lucas.omp.json, shared by Bash and PowerShell |
| Windows Terminal | Script that creates a new GNOME Terminal profile with the One Dark font and palette |
| Neovim | Java/Spring Boot IDE with Java paths discovered through PATH/JAVA_HOME, all installed JDKs registered, and the integrated terminal using the Linux shell |
The installer creates symbolic links from ~/.config to this repository, so
any change (including lazy-lock.json updates made by :Lazy sync) appears in
git status. Therefore, keep the repository in the same location after
installation; if you move it, run ./install.sh again. The installer moves old
configurations to ~/.config-backups.
The GNOME Terminal script creates the Lucas One Dark profile on its first run
and only updates it on subsequent runs; the previous profile is not deleted.
First install the dependencies available in Debian:
sudo apt update
sudo apt install -y \
git curl unzip build-essential ripgrep fd-find fzf zoxide eza bat \
wl-clipboard xclip trash-cli nodejs npm openjdk-21-jdk maven uuid-runtimeThe Debian 13 neovim package provides the 0.10 series, but this configuration
uses Neovim 0.12 APIs. Use the included installer, which installs the official
stable version for your user only:
chmod +x scripts/install-neovim-latest.sh
./scripts/install-neovim-latest.sh
exec bash
nvim --versionThe binary is located at ~/.local/bin/nvim; the system package is not removed.
Install Oh My Posh using the official method for Linux:
curl -s https://ohmyposh.dev/install.sh | bash -s
exec bash
oh-my-posh font list | grep -i jet
oh-my-posh font install JetBrainsMono
fc-cache -fIf JetBrainsMono does not appear in the list, choose another Nerd Font there
and then adjust the font property in terminal/apply-gnome-terminal.sh.
From the root of this package:
chmod +x install.sh terminal/apply-gnome-terminal.sh
./install.sh
exec bashWith no options, the installer links:
~/.config/nvim;~/.config/shell/lucas-terminal.bashand its loading through~/.bashrc;~/.inputrc, which includes/etc/inputrcand makesCtrl+Backspacedelete the previous word;~/.config/powershell/Microsoft.PowerShell_profile.ps1;~/.config/oh-my-posh/lucas.omp.json, the prompt theme used by Bash and PowerShell (linked with--bashor--powershell).
To install only part of the configuration:
./install.sh --nvim
./install.sh --bash
./install.sh --powershell
./install.sh --checkThen apply the appearance in GNOME Terminal:
./terminal/apply-gnome-terminal.shClose and reopen the terminal. The created profile is called Lucas One Dark. Transparency was reduced from 50% to 15% to preserve readability; on GNOME Terminal versions without transparency support, the script simply ignores this property.
The Windows Terminal shortcuts were not copied literally. GNOME Terminal keeps
its native shortcuts, such as Ctrl+Shift+T for a new tab, and leaves Ctrl+T
available for Neovim's integrated terminal.
Open the editor with internet access:
nvimlazy.nvim will be downloaded and will install the plugins at the versions in
lazy-lock.json. At the same time, Mason installs language servers and tools in
the background (jdtls, debugger and Java tests, Spring Boot Tools, SonarLint,
lemminx, and others), notifying you when each one finishes. After the
notifications stop, restart Neovim (Ctrl+Alt+Q) and run:
:NeotestJava setup
:checkhealth:NeotestJava setup downloads the JUnit Console Launcher used by the test
panel (neotest); it asks for confirmation before downloading. :Mason shows
installation progress and lets you reinstall a package that failed.
Java is located in this order:
- The
JAVA_HOMEvariable, when set; - The real path of the
javacommand found inPATH.
Check in the terminal:
java -version
readlink -f "$(command -v java)"For Neovim copy/paste to work in GNOME/Wayland, wl-copy must be available.
The wl-clipboard package installed above provides it.
Bash remains the system shell. PowerShell is used only in the GNOME Terminal
Lucas PowerShell profile, which displays the history suggestion list as you
type (PredictionViewStyle ListView).
Install from Microsoft's official repository (https://learn.microsoft.com/pt-br/powershell/scripting/install/install-debian):
source /etc/os-release
curl -fsSLO "https://packages.microsoft.com/config/debian/$VERSION_ID/packages-microsoft-prod.deb"
sudo dpkg -i packages-microsoft-prod.deb && rm packages-microsoft-prod.deb
sudo apt update && sudo apt install -y powershellThen install the profile modules, link the profile, and create the terminal profile:
pwsh -NoLogo -Command \
'Install-Module posh-git,Terminal-Icons,PSFzf -Scope CurrentUser -Force'
./install.sh --powershell
./terminal/apply-gnome-terminal.shIn GNOME Terminal, open a tab with the Lucas PowerShell profile from the menu next to the new-tab button. Lucas One Dark remains the default and opens Bash.
To make Neovim's integrated terminal open PowerShell instead of Bash:
export NVIM_TERMINAL_SHELL='pwsh -NoLogo'
nvimTo make this permanent, add the export to the end of
~/.config/shell/lucas-terminal.bash.
dc,dco,di,dn,dv,ds: Docker namespaces;ll,lt: modern listing withezawhen available;z: frequency-based navigation withzoxide;Ctrl+R: fuzzy Bash/PowerShell history;reload: reloads the shell profile;ep: opens the shell configuration in the editor.