diff --git a/configs/client.nix b/configs/client.nix index caf0ff3..9e20d55 100644 --- a/configs/client.nix +++ b/configs/client.nix @@ -1,4 +1,5 @@ { + lib, pkgs, config, ... diff --git a/configs/desktop.nix b/configs/desktop.nix index 4bea9b1..ef35cb7 100644 --- a/configs/desktop.nix +++ b/configs/desktop.nix @@ -84,7 +84,6 @@ gimp gparted idea-ultimate-fixed - krita mpv obsidian strawberry diff --git a/flake.lock b/flake.lock index 92d82df..d3bfc5c 100644 --- a/flake.lock +++ b/flake.lock @@ -247,7 +247,8 @@ "nixpkgs": "nixpkgs", "systems": "systems", "treefmt-nix": "treefmt-nix", - "ukubot-rs": "ukubot-rs" + "ukubot-rs": "ukubot-rs", + "vscode-extensions": "vscode-extensions" } }, "rust-overlay": { @@ -328,6 +329,30 @@ "repo": "ukubot-rs", "type": "github" } + }, + "vscode-extensions": { + "inputs": { + "flake-compat": [], + "flake-utils": [ + "flake-utils" + ], + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1739929767, + "narHash": "sha256-4mcftoL28KCeBX+wyD37IdVGeY2MyXxigL8Jj2rzsus=", + "owner": "nix-community", + "repo": "nix-vscode-extensions", + "rev": "fe953b35b591faf57660800fb6e8b74956eea846", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nix-vscode-extensions", + "type": "github" + } } }, "root": "root", diff --git a/flake.nix b/flake.nix index ca1cc01..4f98d99 100644 --- a/flake.nix +++ b/flake.nix @@ -120,6 +120,13 @@ inputs.nixpkgs.follows = "nixpkgs"; }; + vscode-extensions = { + url = "github:nix-community/nix-vscode-extensions"; + inputs.nixpkgs.follows = "nixpkgs"; + inputs.flake-utils.follows = "flake-utils"; + inputs.flake-compat.follows = ""; + }; + # ==== uku3lig stuff ==== api-rs = { url = "github:uku3lig/api-rs"; diff --git a/programs/ghostty.nix b/programs/ghostty.nix index bb7ae9c..9594049 100644 --- a/programs/ghostty.nix +++ b/programs/ghostty.nix @@ -1,14 +1,15 @@ { - hm.programs.ghostty = { - enable = true; - settings = { - theme = "light:catppuccin-latte,dark:catppuccin-mocha"; - font-family = "Iosevka Term"; - font-size = 12; - font-feature = [ - "-calt" - "-dlig" - ]; - }; - }; + pkgs, + ... +}: +{ + environment.systemPackages = [ pkgs.ghostty ]; + + hm.home.file.".config/ghostty/config".text = '' + theme = light:catppuccin-latte,dark:catppuccin-mocha + font-family = Iosevka Term + font-size = 12 + font-feature = -calt + font-feature = -dlig + ''; } diff --git a/programs/kde.nix b/programs/kde.nix index 62042ea..32212a5 100644 --- a/programs/kde.nix +++ b/programs/kde.nix @@ -1,4 +1,8 @@ -{ pkgs, ... }: +{ + pkgs, + camasca, + ... +}: { services = { desktopManager.plasma6.enable = true; @@ -13,7 +17,7 @@ environment = { systemPackages = with pkgs; [ gnome-calculator - kdePackages.koi + koi ]; plasma6.excludePackages = with pkgs.kdePackages; [ diff --git a/programs/vscode.nix b/programs/vscode.nix new file mode 100644 index 0000000..c2c43ce --- /dev/null +++ b/programs/vscode.nix @@ -0,0 +1,108 @@ +{ + pkgs, + vscode-extensions, + ... +}: +let + inherit (pkgs.stdenv.hostPlatform) system; + extensions = vscode-extensions.extensions.${system}; + + patched = with pkgs.vscode-extensions; [ + ms-python.python + ms-vscode.cpptools + ms-vscode-remote.remote-ssh + rust-lang.rust-analyzer + wakatime.vscode-wakatime + ]; +in +{ + hm.programs.vscode = { + enable = true; + enableUpdateCheck = false; + enableExtensionUpdateCheck = false; + mutableExtensionsDir = false; + + extensions = + with extensions.vscode-marketplace; + patched + ++ [ + # style + bierner.markdown-preview-github-styles + catppuccin.catppuccin-vsc + + # git + donjayamanne.githistory + eamodio.gitlens + + # misc + github.copilot + editorconfig.editorconfig + mkhl.direnv + tailscale.vscode-tailscale + usernamehw.errorlens + + # rust + dustypomerleau.rust-syntax + serayuzgur.crates + tamasfe.even-better-toml + ms-vsliveshare.vsliveshare + + # nix + jnoortheen.nix-ide + + # cpp + mesonbuild.mesonbuild + (ms-vscode.cmake-tools.overrideAttrs (_: { + sourceRoot = "extension"; + })) + (ms-vscode.makefile-tools.overrideAttrs (_: { + sourceRoot = "extension"; + })) + twxs.cmake + xaver.clang-format + + # python + donjayamanne.python-environment-manager + ms-python.vscode-pylance + + # java + redhat.java + + # web + astro-build.astro-vscode + vue.volar + esbenp.prettier-vscode + dbaeumer.vscode-eslint + ]; + + userSettings = { + "cmake.configureOnOpen" = true; + "editor.fontFamily" = "'Iosevka Nerd Font', monospace"; + "editor.fontSize" = 16; + "editor.formatOnSave" = true; + "editor.inlineSuggest.enabled" = true; + "files.autoSave" = "afterDelay"; + "nix.enableLanguageServer" = true; + "nix.serverPath" = "nil"; + "rust-analyzer.check.command" = "clippy"; + "terminal.integrated.fontFamily" = "Iosevka Nerd Font"; + "workbench.colorTheme" = "Catppuccin Macchiato"; + "errorLens.messageBackgroundMode" = "message"; + "java.jdt.ls.java.home" = "${pkgs.jdk17}/lib/openjdk"; + + "editor.defaultFormatter" = "esbenp.prettier-vscode"; + "[javascript]"."editor.defaultFormatter" = "esbenp.prettier-vscode"; + "[astro]"."editor.defaultFormatter" = "astro-build.astro-vscode"; + "[rust]"."editor.defaultFormatter" = "rust-lang.rust-analyzer"; + + # fix for segfault on hyprland + "window.titleBarStyle" = "custom"; + + "remote.SSH.useLocalServer" = false; + "remote.SSH.remotePlatform" = { + "etna.fossa-macaroni.ts.net" = "linux"; + "contabo.fossa-macaroni.ts.net" = "linux"; + }; + }; + }; +}