fix: resolve environment conflicts and configuration issues

Python Environment:
- Update Python package references to use top-level packages
- Move pipenv and poetry from python3Packages to global packages
- Fix environment variable conflicts between Python and Rust

Rust Configuration:
- Remove cargo package to prevent collision with rustup
- Keep cargo-related utility packages
- Move PATH modifications to shell initialization

Shell Configuration:
- Move PATH modifications from sessionVariables to zsh.initExtra
- Fix PATH order for language tools using shell initialization
- Ensure proper loading order for development tools

Terminal Configuration:
- Replace kitty theme configuration with direct color settings
- Implement Dracula color scheme directly in kitty settings
- Remove external theme file dependency

This commit resolves various dependency conflicts and improves
the reliability of language-specific environment configurations
while maintaining functionality across all development tools.
This commit is contained in:
jeirmeister 2024-10-30 21:51:16 -07:00
parent 59b5bc41df
commit a5f747815f
8 changed files with 89 additions and 7 deletions

3
config.json Normal file
View File

@ -0,0 +1,3 @@
{
"users/jeirmeister/programs/shell/terminals/kitty.nix": "{ config, pkgs, ... }:\n\n{\n programs.kitty = {\n enable = true;\n settings = {\n font_family = \"JetBrains Mono\";\n font_size = 12;\n window_padding_width = 4;\n background_opacity = \"0.95\";\n hide_window_decorations = \"yes\";\n tab_bar_style = \"powerline\";\n \n # Dracula theme colors\n foreground = \"#F8F8F2\";\n background = \"#282A36\";\n selection_foreground = \"#ffffff\";\n selection_background = \"#44475a\";\n url_color = \"#8be9fd\";\n cursor = \"#f8f8f2\";\n\n # black\n color0 = \"#21222c\";\n color8 = \"#6272a4\";\n\n # red\n color1 = \"#ff5555\";\n color9 = \"#ff6e6e\";\n\n # green\n color2 = \"#50fa7b\";\n color10 = \"#69ff94\";\n\n # yellow\n color3 = \"#f1fa8c\";\n color11 = \"#ffffa5\";\n\n # blue\n color4 = \"#bd93f9\";\n color12 = \"#d6acff\";\n\n # magenta\n color5 = \"#ff79c6\";\n color13 = \"#ff92df\";\n\n # cyan\n color6 = \"#8be9fd\";\n color14 = \"#a4ffff\";\n\n # white\n color7 = \"#f8f8f2\";\n color15 = \"#ffffff\";\n\n # tab bar\n active_tab_foreground = \"#282a36\";\n active_tab_background = \"#f8f8f2\";\n inactive_tab_foreground = \"#282a36\";\n inactive_tab_background = \"#6272a4\";\n };\n };\n}"
}

32
config.sh Executable file
View File

@ -0,0 +1,32 @@
#!/usr/bin/env bash
# README # ------
# Configure the config.json file in this same directory for an AI chatbot to
# Assist in making direct changes to files.
set -euo pipefail
# Make sure jq is available
if ! command -v jq &> /dev/null; then
echo "Error: jq is required but not installed"
exit 1
fi
# Make sure config.json exists
if [ ! -f "config.json" ]; then
echo "Error: config.json not found in current directory"
exit 1
fi
echo "Creating directories and files..."
# Process each key in the JSON configuration
for file in $(jq -r 'keys[]' config.json); do
# Create directory if it doesn't exist
dir=$(dirname "$file")
mkdir -p "$dir"
# Write content to file
jq -r --arg file "$file" '.[$file]' config.json > "$file"
echo "Created: $file"
done
echo "Configuration files have been created successfully!"

View File

@ -20,7 +20,6 @@
PYTHONDONTWRITEBYTECODE = 1;
PYTHONIOENCODING = "UTF-8";
PYTHONUSERBASE = "$HOME/.local/python";
PATH = "$PYTHONUSERBASE/bin:$PATH";
};
# Create Python user directory

View File

@ -2,7 +2,7 @@
{
home.packages = with pkgs; [
python311Packages.pipenv
pipenv
];
home.sessionVariables = {

View File

@ -2,7 +2,7 @@
{
home.packages = with pkgs; [
python311Packages.poetry
poetry
];
home.sessionVariables = {

View File

@ -7,7 +7,6 @@
home.sessionVariables = {
PYENV_ROOT = "$HOME/.pyenv";
PATH = "$PYENV_ROOT/bin:$PATH";
PYENV_SHELL = "zsh";
PYENV_VIRTUALENV_INIT = "1";
};
@ -15,6 +14,7 @@
home.file.".pyenv/version".text = "system";
programs.zsh.initExtra = ''
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"
eval "$(pyenv virtualenv-init -)"
'';

View File

@ -2,7 +2,7 @@
{
home.packages = with pkgs; [
cargo
# cargo is provided by rustup
cargo-edit
cargo-watch
cargo-audit
@ -11,9 +11,12 @@
home.sessionVariables = {
CARGO_HOME = "$HOME/.cargo";
PATH = "$CARGO_HOME/bin:$PATH";
};
programs.zsh.initExtra = ''
export PATH="$CARGO_HOME/bin:$PATH"
'';
home.file.".cargo/config.toml".text = ''
[build]
target-dir = "target"

View File

@ -10,7 +10,52 @@
background_opacity = "0.95";
hide_window_decorations = "yes";
tab_bar_style = "powerline";
# Dracula theme colors
foreground = "#F8F8F2";
background = "#282A36";
selection_foreground = "#ffffff";
selection_background = "#44475a";
url_color = "#8be9fd";
cursor = "#f8f8f2";
# black
color0 = "#21222c";
color8 = "#6272a4";
# red
color1 = "#ff5555";
color9 = "#ff6e6e";
# green
color2 = "#50fa7b";
color10 = "#69ff94";
# yellow
color3 = "#f1fa8c";
color11 = "#ffffa5";
# blue
color4 = "#bd93f9";
color12 = "#d6acff";
# magenta
color5 = "#ff79c6";
color13 = "#ff92df";
# cyan
color6 = "#8be9fd";
color14 = "#a4ffff";
# white
color7 = "#f8f8f2";
color15 = "#ffffff";
# tab bar
active_tab_foreground = "#282a36";
active_tab_background = "#f8f8f2";
inactive_tab_foreground = "#282a36";
inactive_tab_background = "#6272a4";
};
theme = "Dracula";
};
}