diff --git a/flake.nix b/flake.nix index 8e030f4..f17dcfa 100644 --- a/flake.nix +++ b/flake.nix @@ -52,6 +52,9 @@ username = "foglar"; hostname = "laptop"; + shell = "bash"; # bash, zsh + terminal = "kitty"; + theme = "catppuccin-mocha"; background = "aurora_borealis.png"; }; diff --git a/nixos/home/apps/terminal_tools.nix b/nixos/home/apps/terminal_tools.nix index 9db0b91..6bf1862 100644 --- a/nixos/home/apps/terminal_tools.nix +++ b/nixos/home/apps/terminal_tools.nix @@ -12,15 +12,12 @@ config = lib.mkIf config.app_list.terminal_tools.enable { home.packages = with pkgs; [ - pfetch - bat btop cmatrix entr figlet jp2a yt-dlp - eza nvtopPackages.full neofetch wget diff --git a/nixos/home/desktop/hyprland/hyprland.nix b/nixos/home/desktop/hyprland/hyprland.nix index 341abf4..c3736b2 100644 --- a/nixos/home/desktop/hyprland/hyprland.nix +++ b/nixos/home/desktop/hyprland/hyprland.nix @@ -56,11 +56,6 @@ wayland.windowManager.hyprland = { enable = true; - #plugins = [ - #inputs.hyprland-plugins.packages.${pkgs.system}.hyprbars - #inputs.Hyprspace.packages.${pkgs.system}.Hyprspace - #]; - settings = { monitor = [ "eDP-1,1920x1080,0x0,1" diff --git a/nixos/home/packages/packages.nix b/nixos/home/packages/packages.nix index 3dc14ee..83cd1fa 100644 --- a/nixos/home/packages/packages.nix +++ b/nixos/home/packages/packages.nix @@ -37,7 +37,22 @@ firefox.enable = lib.mkDefault true; spotify.enable = lib.mkDefault true; - vscode.enable = lib.mkDefault true; + vscode = { + enable = lib.mkDefault true; + ide = { + python.enable = lib.mkDefault true; + go.enable = lib.mkDefault true; + csharp.enable = lib.mkDefault true; + cpp.enable = lib.mkDefault false; + web.enable = lib.mkDefault true; + }; + nix.enable = lib.mkDefault true; + markdown.enable = lib.mkDefault true; + ai.enable = lib.mkDefault true; + git.enable = lib.mkDefault true; + + themes.enable = lib.mkDefault false; + }; git.enable = lib.mkDefault true; neovim.enable = lib.mkDefault true; }; diff --git a/nixos/home/packages/programming/code.nix b/nixos/home/packages/programming/code.nix index eef5dac..b36b699 100644 --- a/nixos/home/packages/programming/code.nix +++ b/nixos/home/packages/programming/code.nix @@ -7,57 +7,117 @@ }: { options = { program.vscode.enable = lib.mkEnableOption "enable vscode"; + + program.vscode.ide.python.enable = lib.mkEnableOption "enable python for vscode"; + program.vscode.ide.go.enable = lib.mkEnableOption "enable go for vscode"; + program.vscode.ide.csharp.enable = lib.mkEnableOption "enable c# for vscode"; + program.vscode.ide.web.enable = lib.mkEnableOption "enable html and css for vscode"; + program.vscode.ide.cpp.enable = lib.mkEnableOption "enable cpp for vscode"; + + program.vscode.nix.enable = lib.mkEnableOption "enable nix support for vscode"; + program.vscode.ai.enable = lib.mkEnableOption "enable ai copilot for vscode"; + program.vscode.git.enable = lib.mkEnableOption "enable git features for vscode"; + program.vscode.themes.enable = lib.mkEnableOption "enable themes for vscode"; + program.vscode.markdown.enable = lib.mkEnableOption "enable markdown for vscode"; }; - config = lib.mkIf config.program.vscode.enable { - home.packages = with pkgs; [ - vscode - ]; + config = lib.mkMerge [ + (lib.mkIf config.program.vscode.enable { + home.packages = with pkgs; [ + vscode + ]; - home.sessionVariables = { - GOOS = "linux"; - GOARCH = "amd64"; - GOPATH = "$HOME/.local/share/go"; - }; + programs.vscode = { + enable = true; - programs.vscode = { - enable = true; - - userSettings = { - "files.autoSave" = "afterDelay"; - "explorer.confirmDragAndDrop" = false; - "editor.fontSize" = 16; - "editor.minimap.side" = "right"; - "editor.scrollbar.vertical" = "hidden"; - "editor.scrollbar.verticalScrollbarSize" = 0; - "editor.fontLigatures" = "'calt', 'ss01', 'ss02', 'ss03', 'ss04', 'ss05', 'ss06', 'ss07', 'ss08', 'ss09', 'liga'"; - "editor.stickyScroll.enabled" = false; - "security.workspace.trust.untrustedFiles" = "newWindow"; - "security.workspace.trust.startupPrompt" = "never"; - "security.workspace.trust.enabled" = false; - "terminal.external.linuxExec" = "kitty"; - "terminal.integrated.stickyScroll.enabled" = true; - "terminal.integrated.inheritEnv"= false; - "telemetry.telemetryLevel" = "off"; - "workbench.activityBar.location" = "hidden"; # bottom - "workbench.iconTheme" = "material-icon-theme"; - "workbench.productIconTheme" = "material-product-icons"; - "window.menuBarVisibility" = "toggle"; - "github.copilot.editor.enableAutoCompletions" = false; - "[json]" = { - "editor.defaultFormatter" = "esbenp.prettier-vscode"; + userSettings = { + "files.autoSave" = "afterDelay"; + "explorer.confirmDragAndDrop" = false; + "editor.fontSize" = 16; + "editor.minimap.side" = "right"; + "editor.scrollbar.vertical" = "hidden"; + "editor.scrollbar.verticalScrollbarSize" = 0; + "editor.fontLigatures" = "'calt', 'ss01', 'ss02', 'ss03', 'ss04', 'ss05', 'ss06', 'ss07', 'ss08', 'ss09', 'liga'"; + "editor.stickyScroll.enabled" = false; + "security.workspace.trust.untrustedFiles" = "newWindow"; + "security.workspace.trust.startupPrompt" = "never"; + "security.workspace.trust.enabled" = false; + "terminal.external.linuxExec" = "${pkgs.kitty}/bin/kitty"; + "terminal.integrated.stickyScroll.enabled" = true; + "terminal.integrated.inheritEnv" = false; + "telemetry.telemetryLevel" = "off"; + "workbench.activityBar.location" = "hidden"; # bottom + "workbench.iconTheme" = "material-icon-theme"; + "workbench.productIconTheme" = "material-product-icons"; + "window.menuBarVisibility" = "toggle"; }; + + extensions = with pkgs-stable.vscode-extensions; [ + ms-azuretools.vscode-docker + + foxundermoon.shell-format + tamasfe.even-better-toml + aaron-bond.better-comments + christian-kohler.path-intellisense + + github.codespaces + + # Remote + ms-vscode-remote.remote-ssh + ms-vscode-remote.remote-ssh-edit + ]; + }; + }) + (lib.mkIf config.program.vscode.ide.python.enable { + programs.vscode.userSettings = { "[python]" = { "editor.defaultFormatter" = "ms-python.black-formatter"; + "python.defaultInterpreterPath" = "${pkgs.python3}"; }; - "[html]" = { - "editor.defaultFormatter" = "esbenp.prettier-vscode"; - }; - "python.defaultInterpreterPath" = "${pkgs.python3}"; + }; + + programs.vscode.extensions = with pkgs-stable.vscode-extensions; [ + ms-python.python + ms-python.vscode-pylance + ms-python.black-formatter + ms-python.debugpy + njpwerner.autodocstring + ms-toolsai.jupyter + ms-toolsai.jupyter-keymap + ms-toolsai.jupyter-renderers + ]; + }) + + (lib.mkIf config.program.vscode.ide.go.enable { + programs.vscode.userSettings = { "go.alternateTools" = { "go-langserver" = "${pkgs.gopls}/bin/gopls"; }; "gopls" = {"ui.diagnostic.staticcheck" = true;}; + }; + + home.sessionVariables = { + GOOS = "linux"; + GOARCH = "amd64"; + GOPATH = "$HOME/.local/share/go"; + }; + + programs.vscode.extensions = with pkgs-stable.vscode-extensions; [ + golang.go + ]; + }) + + (lib.mkIf config.program.vscode.ide.csharp.enable { + programs.vscode.extensions = with pkgs-stable.vscode-extensions; [ + ms-dotnettools.csharp + ms-dotnettools.csdevkit + ms-dotnettools.vscodeintellicode-csharp + ms-dotnettools.vscode-dotnet-runtime + ]; + }) + + (lib.mkIf config.program.vscode.nix.enable { + programs.vscode.userSettings = { "nix.serverPath" = "nixd"; "nix.enableLanguageServer" = true; "nix.serverSettings" = { @@ -78,53 +138,48 @@ }; }; - extensions = with pkgs-stable.vscode-extensions; [ - ms-azuretools.vscode-docker - - # Mardown - yzhang.markdown-all-in-one - davidanson.vscode-markdownlint - - foxundermoon.shell-format - tamasfe.even-better-toml - aaron-bond.better-comments - christian-kohler.path-intellisense + programs.vscode.extensions = with pkgs-stable.vscode-extensions; [ jnoortheen.nix-ide + ]; + }) - github.vscode-pull-request-github - github.vscode-github-actions - github.codespaces + (lib.mkIf config.program.vscode.ide.web.enable { + programs.vscode.userSettings = { + "[json]" = { + "editor.defaultFormatter" = "esbenp.prettier-vscode"; + }; + "[html]" = { + "editor.defaultFormatter" = "esbenp.prettier-vscode"; + }; + }; - # Remote - ms-vscode-remote.remote-ssh - ms-vscode-remote.remote-ssh-edit - - # Webdev + programs.vscode.extensions = with pkgs-stable.vscode-extensions; [ ritwickdey.liveserver esbenp.prettier-vscode ecmel.vscode-html-css ms-vscode.live-server formulahendry.auto-rename-tag + ]; + }) - # Ai - github.copilot - github.copilot-chat - - # Git + (lib.mkIf config.program.vscode.git.enable { + programs.vscode.extensions = with pkgs-stable.vscode-extensions; [ donjayamanne.githistory eamodio.gitlens + github.vscode-pull-request-github + github.vscode-github-actions + ]; + }) - # Python - ms-python.python - ms-python.vscode-pylance - ms-python.black-formatter - ms-python.debugpy - njpwerner.autodocstring - ms-toolsai.jupyter - ms-toolsai.jupyter-keymap - ms-toolsai.jupyter-renderers + (lib.mkIf config.program.vscode.markdown.enable { + programs.vscode.extensions = with pkgs-stable.vscode-extensions; [ + yzhang.markdown-all-in-one + davidanson.vscode-markdownlint + ]; + }) - # Theme + (lib.mkIf config.program.vscode.themes.enable { + programs.vscode.extensions = with pkgs-stable.vscode-extensions; [ catppuccin.catppuccin-vsc catppuccin.catppuccin-vsc-icons zhuangtongfa.material-theme @@ -132,20 +187,25 @@ enkia.tokyo-night pkief.material-product-icons pkief.material-icon-theme + ]; + }) - # C/C++ + (lib.mkIf config.program.vscode.ai.enable { + programs.vscode.userSettings = { + "github.copilot.editor.enableAutoCompletions" = false; + }; + + programs.vscode.extensions = with pkgs-stable.vscode-extensions; [ + github.copilot + github.copilot-chat + ]; + }) + + (lib.mkIf config.program.vscode.ide.cpp.enable { + programs.vscode.extensions = with pkgs-stable.vscode-extensions; [ twxs.cmake ms-vscode.cmake-tools - - # C# - ms-dotnettools.csharp - ms-dotnettools.csdevkit - ms-dotnettools.vscodeintellicode-csharp - ms-dotnettools.vscode-dotnet-runtime - - # Go - golang.go ]; - }; - }; + }) + ]; } diff --git a/nixos/home/packages/tools/shell.nix b/nixos/home/packages/tools/shell.nix index a70ed7a..e9eb07d 100644 --- a/nixos/home/packages/tools/shell.nix +++ b/nixos/home/packages/tools/shell.nix @@ -1,6 +1,7 @@ { lib, config, + pkgs, ... }: { options = { @@ -9,27 +10,26 @@ }; config = lib.mkIf config.sh.bash.enable { - programs.bash = { enable = true; enableCompletion = true; shellAliases = { #vim = "nvim"; - ls = "exa --icons"; - ll = "exa -alh --icons"; - tree = "exa --tree --icons"; + ls = "${pkgs.eza}/bin/eza --icons"; + ll = "${pkgs.eza}/bin/eza -alh --icons"; + l = "${pkgs.eza}/bin/eza -lh --icons=auto"; + tree = "${pkgs.eza}/bin/eza --tree --icons"; open = "rifle"; ip = "ip -c"; s = "kitten ssh"; diff = "diff --color"; - respawn = "clear; pfetch"; - l = "eza -lh --icons=auto"; + respawn = "clear; ${pkgs.pfetch}/bin/pfetch"; mkdir = "mkdir -p"; - cat = "bat --style plain"; + cat = "${pkgs.bat}/bin/bat --style plain"; rasp = "s foglar@192.168.8.140"; hist = "history | awk '{for (i=2; i<=NF; i++) printf \$i\" \"; print \"\"}' | fzf | wl-copy"; - cdx = "zoxide query --interactive"; + cdx = "${pkgs.zoxide}/bin/zoxide query --interactive"; #distrobox-enter = "distrobox-enter --root"; #distrobox-create = "distrobox-create --root"; @@ -37,7 +37,7 @@ }; bashrcExtra = '' - pfetch''; + ${pkgs.pfetch}/bin/pfetch''; }; home.sessionVariables = { diff --git a/zenith/home.nix b/zenith/home.nix index 8f0cc23..e517f3b 100644 --- a/zenith/home.nix +++ b/zenith/home.nix @@ -22,11 +22,11 @@ # Application lists app_list = { - hacking.enable = true; applications.enable = true; - terminal_tools.enable = true; - programming.enable = true; games.enable = true; + hacking.enable = true; + programming.enable = true; + terminal_tools.enable = true; }; # Configured programs to enable @@ -34,9 +34,13 @@ kitty.enable = true; tmux.enable = true; zoxide.enable = true; - vscode.enable = true; + + vscode = { + enable = true; + }; git.enable = true; neovim.enable = true; + firefox.enable = true; spotify.enable = true; };