diff --git a/configuration.nix b/configuration.nix index 2add873..6567327 100644 --- a/configuration.nix +++ b/configuration.nix @@ -208,7 +208,7 @@ hardware.amdgpu.opencl.enable = true; # networking.firewall.enable = false; networking.firewall = { - enable = true; + enable = false; allowedTCPPortRanges = [ { from = 1714; to = 1764; } # KDE Connect ]; diff --git a/flake.lock b/flake.lock index 3f78b67..b7d52ed 100644 --- a/flake.lock +++ b/flake.lock @@ -6,11 +6,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1744557573, - "narHash": "sha256-XAyj0iDuI51BytJ1PwN53uLpzTDdznPDQFG4RwihlTQ=", + "lastModified": 1756679577, + "narHash": "sha256-pkfftqE2CxVN6nKDZvlNdBxIkb/x5ch4wVfwZMYNGCM=", "owner": "Aylur", "repo": "ags", - "rev": "3ed9737bdbc8fc7a7c7ceef2165c9109f336bff6", + "rev": "04d51ac4082af3ec47e8a803417a1a55b75151d7", "type": "github" }, "original": { @@ -27,11 +27,11 @@ ] }, "locked": { - "lastModified": 1742571008, - "narHash": "sha256-5WgfJAeBpxiKbTR/gJvxrGYfqQRge5aUDcGKmU1YZ1Q=", + "lastModified": 1756474652, + "narHash": "sha256-iiBU6itpEqE0spXeNJ3uJTfioSyKYjt5bNepykpDXTE=", "owner": "aylur", "repo": "astal", - "rev": "dc0e5d37abe9424c53dcbd2506a4886ffee6296e", + "rev": "20bd8318e4136fbd3d4eb2d64dbabc3acbc915dd", "type": "github" }, "original": { @@ -40,26 +40,41 @@ "type": "github" } }, - "firefox-addons": { + "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1751685974, + "narHash": "sha256-NKw96t+BgHIYzHUjkTK95FqYRVKB8DHpVhefWSz/kTw=", + "ref": "refs/heads/main", + "rev": "549f2762aebeff29a2e5ece7a7dc0f955281a1d1", + "revCount": 92, + "type": "git", + "url": "https://git.lix.systems/lix-project/flake-compat.git" + }, + "original": { + "type": "git", + "url": "https://git.lix.systems/lix-project/flake-compat.git" + } + }, + "flake-parts": { "inputs": { - "nixpkgs": [ + "nixpkgs-lib": [ + "nvf", "nixpkgs" ] }, "locked": { - "dir": "pkgs/firefox-addons", - "lastModified": 1748491405, - "narHash": "sha256-kjHOCsU66vlEv0NIyrMYmg9DvUiLsEGkhxtPiYIdx5g=", - "owner": "rycee", - "repo": "nur-expressions", - "rev": "42b96163341bdb7934cf880307f166f0238038ab", - "type": "gitlab" + "lastModified": 1756770412, + "narHash": "sha256-+uWLQZccFHwqpGqr2Yt5VsW/PbeJVTn9Dk6SHWhNRPw=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "4524271976b625a4a605beefd893f270620fd751", + "type": "github" }, "original": { - "dir": "pkgs/firefox-addons", - "owner": "rycee", - "repo": "nur-expressions", - "type": "gitlab" + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" } }, "home-manager": { @@ -69,11 +84,11 @@ ] }, "locked": { - "lastModified": 1748489961, - "narHash": "sha256-uGnudxMoQi2c8rpPoHXuQSm80NBqlOiNF4xdT3hhzLM=", + "lastModified": 1756991914, + "narHash": "sha256-4ve/3ah5H/SpL2m3qmZ9GU+VinQYp2MN1G7GamimTds=", "owner": "nix-community", "repo": "home-manager", - "rev": "95c988cf08e9a5a8fe7cc275d5e3f24e9e87bd51", + "rev": "b08f8737776f10920c330657bee8b95834b7a70f", "type": "github" }, "original": { @@ -82,13 +97,49 @@ "type": "github" } }, + "home-manager_2": { + "inputs": { + "nixpkgs": [ + "zen-browser", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1752603129, + "narHash": "sha256-S+wmHhwNQ5Ru689L2Gu8n1OD6s9eU9n9mD827JNR+kw=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "e8c19a3cec2814c754f031ab3ae7316b64da085b", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, + "mnw": { + "locked": { + "lastModified": 1756659871, + "narHash": "sha256-v6Rh4aQ6RKjM2N02kK9Usn0Ix7+OY66vNpeklc1MnGE=", + "owner": "Gerg-L", + "repo": "mnw", + "rev": "ed6cc3e48557ba18266e598a5ebb6602499ada16", + "type": "github" + }, + "original": { + "owner": "Gerg-L", + "repo": "mnw", + "type": "github" + } + }, "nixpkgs": { "locked": { - "lastModified": 1743583204, - "narHash": "sha256-F7n4+KOIfWrwoQjXrL2wD9RhFYLs2/GGe/MQY1sSdlE=", + "lastModified": 1756542300, + "narHash": "sha256-tlOn88coG5fzdyqz6R93SQL5Gpq+m/DsWpekNFhqPQk=", "owner": "nixos", "repo": "nixpkgs", - "rev": "2c8d3f48d33929642c1c12cd243df4cc7d2ce434", + "rev": "d7600c775f877cd87b4f5a831c28aa94137377aa", "type": "github" }, "original": { @@ -100,11 +151,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1748370509, - "narHash": "sha256-QlL8slIgc16W5UaI3w7xHQEP+Qmv/6vSNTpoZrrSlbk=", + "lastModified": 1756787288, + "narHash": "sha256-rw/PHa1cqiePdBxhF66V7R+WAP8WekQ0mCDG4CFqT8Y=", "owner": "nixos", "repo": "nixpkgs", - "rev": "4faa5f5321320e49a78ae7848582f684d64783e9", + "rev": "d0fc30899600b9b3466ddb260fd83deb486c32f1", "type": "github" }, "original": { @@ -116,11 +167,27 @@ }, "nixpkgs_3": { "locked": { - "lastModified": 1748026106, - "narHash": "sha256-6m1Y3/4pVw1RWTsrkAK2VMYSzG4MMIj7sqUy7o8th1o=", + "lastModified": 1756696532, + "narHash": "sha256-6FWagzm0b7I/IGigOv9pr6LL7NQ86mextfE8g8Q6HBg=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "58dcbf1ec551914c3756c267b8b9c8c86baa1b2f", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_4": { + "locked": { + "lastModified": 1756542300, + "narHash": "sha256-tlOn88coG5fzdyqz6R93SQL5Gpq+m/DsWpekNFhqPQk=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "063f43f2dbdef86376cc29ad646c45c46e93234c", + "rev": "d7600c775f877cd87b4f5a831c28aa94137377aa", "type": "github" }, "original": { @@ -130,26 +197,65 @@ "type": "github" } }, - "root": { - "inputs": { - "ags": "ags", - "firefox-addons": "firefox-addons", - "home-manager": "home-manager", - "nixpkgs": "nixpkgs_2", - "spicetify-nix": "spicetify-nix" + "nixpkgs_5": { + "locked": { + "lastModified": 1755615617, + "narHash": "sha256-HMwfAJBdrr8wXAkbGhtcby1zGFvs+StOp19xNsbqdOg=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "20075955deac2583bb12f07151c2df830ef346b4", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" } }, - "spicetify-nix": { + "nvf": { "inputs": { + "flake-compat": "flake-compat", + "flake-parts": "flake-parts", + "mnw": "mnw", "nixpkgs": "nixpkgs_3", "systems": "systems" }, "locked": { - "lastModified": 1748147548, - "narHash": "sha256-9IaAQkgyF4PFtVyui8vF6oJah0iVcO9DaOefjdTMthE=", + "lastModified": 1756870502, + "narHash": "sha256-0diPvHFwQbKvKkz0bmEVEoFIzL4rdD80CaApHaj6hzs=", + "owner": "notashelf", + "repo": "nvf", + "rev": "7b009c945d2f0213409aa0bae07c79d28b92d625", + "type": "github" + }, + "original": { + "owner": "notashelf", + "repo": "nvf", + "type": "github" + } + }, + "root": { + "inputs": { + "ags": "ags", + "home-manager": "home-manager", + "nixpkgs": "nixpkgs_2", + "nvf": "nvf", + "spicetify-nix": "spicetify-nix", + "zen-browser": "zen-browser" + } + }, + "spicetify-nix": { + "inputs": { + "nixpkgs": "nixpkgs_4", + "systems": "systems_2" + }, + "locked": { + "lastModified": 1756614537, + "narHash": "sha256-qyszmZO9CEKAlj5NBQo1AIIADm5Fgqs5ZggW1sU1TVo=", "owner": "Gerg-L", "repo": "spicetify-nix", - "rev": "f0595e3b59260457042450749eaec00a5a47db35", + "rev": "374eb5d97092b97f7aaafd58a2012943b388c0df", "type": "github" }, "original": { @@ -172,6 +278,40 @@ "repo": "default", "type": "github" } + }, + "systems_2": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "zen-browser": { + "inputs": { + "home-manager": "home-manager_2", + "nixpkgs": "nixpkgs_5" + }, + "locked": { + "lastModified": 1756999202, + "narHash": "sha256-AiJDRmIt2DuMk2IlBPnMG52ghUI9+D1nO7JRBF2vnZ0=", + "owner": "0xc000022070", + "repo": "zen-browser-flake", + "rev": "369fbe5c53420b1a17295c5e85ea0dbe02fbcfbd", + "type": "github" + }, + "original": { + "owner": "0xc000022070", + "repo": "zen-browser-flake", + "type": "github" + } } }, "root": "root", diff --git a/flake.nix b/flake.nix index 6a61021..ed7011e 100644 --- a/flake.nix +++ b/flake.nix @@ -11,15 +11,15 @@ ags.url = "github:Aylur/ags"; + nvf.url = "github:notashelf/nvf"; + + zen-browser.url = "github:0xc000022070/zen-browser-flake"; + spicetify-nix.url = "github:Gerg-L/spicetify-nix"; - firefox-addons = { - url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons"; - inputs.nixpkgs.follows = "nixpkgs"; - }; }; - outputs = { self, nixpkgs, ... }@inputs: + outputs = { self, nixpkgs, nvf, zen-browser, spicetify-nix, ... }@inputs: let system = "x86_64-linux"; in { nixosConfigurations.nixos = nixpkgs.lib.nixosSystem { @@ -29,6 +29,8 @@ }; modules = [ ./configuration.nix + # inputs.zen-browser.packages."${system}".default +# nvf.homeManagerModules.default inputs.home-manager.nixosModules.default ]; }; diff --git a/home-nico.nix b/home-nico.nix index 473af24..a266f55 100644 --- a/home-nico.nix +++ b/home-nico.nix @@ -7,6 +7,7 @@ imports = [ ./packages inputs.spicetify-nix.homeManagerModules.default + inputs.zen-browser.homeModules.default ]; nixpkgs = { @@ -20,6 +21,8 @@ floorp ]; + programs.zen-browser.enable = true; + programs.spicetify = let spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.system}; diff --git a/packages/default.nix b/packages/default.nix index 79ed96b..d79b685 100644 --- a/packages/default.nix +++ b/packages/default.nix @@ -12,7 +12,7 @@ ./emacs ./terminal ./rofi - # ./fuzzel + ./fuzzel ./niri ./hyprland # ./tmux diff --git a/packages/fuzzel/default.nix b/packages/fuzzel/default.nix index 7e4eed9..a5d81bf 100644 --- a/packages/fuzzel/default.nix +++ b/packages/fuzzel/default.nix @@ -1,14 +1,18 @@ + { pkgs, config, lib,... }: { home.packages = with pkgs; [ + # raffi + fuzzel ]; - programs.fuzzel = { - enable = true; - }; +home.file."/home/nico/.config/fuzzel/fuzzel.ini" = { + source = ./fuzzel.ini; +}; + +# home.file."/home/n/.config/raffi/raffi.yaml" = { +# source = ./raffi.yaml; +#}; - home.file."/home/nico/.config/fuzzel/fuzzel.ini" = { - source = ./fuzzel.ini; - }; } diff --git a/packages/fuzzel/fuzzel.ini b/packages/fuzzel/fuzzel.ini index f4749a8..57e28c4 100644 --- a/packages/fuzzel/fuzzel.ini +++ b/packages/fuzzel/fuzzel.ini @@ -1,12 +1,16 @@ +dpi-aware=yes +font=RobotoMonoNerdFont-Thin:size=12 +terminal=ghostty +layer=overlay +exit-on-keyboard-focus-loss=no +inner-pad=15 +fields=filename,name + [colors] -background=1e1e2edd -text=cdd6f4ff -prompt=bac2deff -placeholder=7f849cff -input=cdd6f4ff -match=cba6f7ff -selection=585b70ff -selection-text=cdd6f4ff -selection-match=cba6f7ff -counter=7f849cff -border=cba6f7ff +background=282a36ff +text=f8f8f2ff +match=8be9fdff +selection-match=8be9fdff +selection=44475add +selection-text=f8f8f2ff +border=bd93f9ff diff --git a/packages/fuzzel/raffi.yaml b/packages/fuzzel/raffi.yaml new file mode 100644 index 0000000..e69de29 diff --git a/packages/niri/config.kdl b/packages/niri/config.kdl index 4c050fc..9979899 100644 --- a/packages/niri/config.kdl +++ b/packages/niri/config.kdl @@ -362,9 +362,10 @@ binds { // Suggested binds for running programs: terminal, app launcher, screen locker. Mod+Return hotkey-overlay-title="Open a Terminal: ghostty" { spawn "ghostty"; } - Mod+M hotkey-overlay-title="Run an Application: rofi" { spawn "rofi" "-show" "drun"; } + Mod+M hotkey-overlay-title="Run an Application: fuzzel" { spawn "fuzzel"; } + // Mod+M hotkey-overlay-title="Run an Application: rofi" { spawn "rofi" "-show" "drun"; } Super+Alt+L hotkey-overlay-title="Power menu" { spawn "rofi" "-show" "power-menu" "-modi" "power-menu:rofi-power-menu"; } - Super+V hotkey-overlay-title="Clipboard history" { spawn "bash" "-c" "cliphist list | rofi -dmenu | cliphist decode | wl-copy"; } + Super+V hotkey-overlay-title="Clipboard history" { spawn "bash" "-c" "cliphist list | fuzzel -d | cliphist decode | wl-copy"; } // You can also use a shell. Do this if you need pipes, multiple commands, etc. // Note: the entire command goes as a single argument in the end. diff --git a/packages/nvim/default.nix b/packages/nvim/default.nix index 1818d1e..d0836d1 100644 --- a/packages/nvim/default.nix +++ b/packages/nvim/default.nix @@ -8,7 +8,7 @@ lldb lazygit gcc - gopls + # gopls stylua rustfmt ]; @@ -56,8 +56,9 @@ programs.neovim.plugins = [ ".config/nvim/lua/plugins/vim-suda.lua".source = ./lua/plugins/vim-suda.lua; ".config/nvim/lua/plugins/tiny-inline-diagnostic.lua".source = ./lua/plugins/tiny-inline-diagnostic.lua; ".config/nvim/lua/plugins/conform.lua".source = ./lua/plugins/conform.lua; - ".config/nvim/lua/plugins/go.lua".source = ./lua/plugins/go.lua; - # ".config/nvim/lua/plugins/avante.lua".source = ./lua/plugins/avante.lua; + ".config/nvim/lua/plugins/nvim-tree.lua".source = ./lua/plugins/nvim-tree.lua; + # ".config/nvim/lua/plugins/go.lua".source = ./lua/plugins/go.lua; + # ".config/nvim/lua/plugins/typst.lua".source = ./lua/plugins/typst.lua; } ]; diff --git a/packages/nvim/init.lua b/packages/nvim/init.lua index 05ef028..87450c2 100644 --- a/packages/nvim/init.lua +++ b/packages/nvim/init.lua @@ -38,7 +38,6 @@ vim.keymap.set("n", "gd", vim.lsp.buf.definition, bufopts) -- jump to definition vim.keymap.set("n", "gd", vim.lsp.buf.definition, bufopts) - -- code actions vim.keymap.set("n", "ca", function() require("tiny-code-action").code_action() @@ -47,7 +46,6 @@ end, { noremap = true, silent = true }) -- Lazy require("config.lazy") --- require("flutter-tools").setup {} -- use defaults require("catppuccin").setup({}) vim.cmd.colorscheme("catppuccin") @@ -62,6 +60,7 @@ require("ibl").setup() require("telescope").load_extension("flutter") require("toggleterm").setup({}) require("mini.animate").setup() +require('nvim-autopairs').enable() vim.o.showtabline = 2 require("tabby").setup({ @@ -77,7 +76,7 @@ require("conform").setup({}) require("flutter-tools").setup({}) -- GO -require("go").setup() +-- require("go").setup() ------------- -- Debugger local dap, dapui = require("dap"), require("dapui") @@ -120,6 +119,8 @@ vim.keymap.set("n", "rh", ":RustLsp hover actions", { desc = "rust h vim.keymap.set("n", "re", ":RustLsp explainError", { desc = "explain rust error" }) vim.keymap.set("n", "rs", ":RustLsp openDocs", { desc = "open rust docs for symbol under cursor" }) vim.keymap.set("n", "rrn", ":RustLsp ssr ", { desc = "rust rename" }) +-- Love binds +vim.keymap.set("n", "lr", ":LoveRun", { desc = "Love run" }) -- Telescope binds vim.keymap.set("n", "ff", builtin.find_files, { desc = "Telescope find files" }) vim.keymap.set("n", "fg", builtin.live_grep, { desc = "Telescope live grep" }) @@ -143,12 +144,13 @@ vim.keymap.set("n", "tf", ":ToggleTerm direction=float ", { desc = " vim.keymap.set("n", "tt", ":ToggleTerm direction=tab size=50 ", { desc = "Open terminal in new tab" }) vim.keymap.set("n", "tv", ":ToggleTerm direction=vertical ", { desc = "Open terminal vertical" }) vim.keymap.set("n", "ts", ":ToggleTerm direction=vertical ", { desc = "select open terminal" }) +-- file explorer binds (nvim-tree) +vim.keymap.set("n", "fe", ":NvimTreeToggle ", { desc = "select open terminal" }) -- code actions vim.keymap.set("n", "ca", function() require("tiny-code-action").code_action() end, { desc = "Show code actions", noremap = true, silent = true }) - -- disable annoying inline type things vim.lsp.inlay_hint.enable(false) vim.diagnostic.config({virtual_text = false}) diff --git a/packages/nvim/lua/plugins/lsp.lua b/packages/nvim/lua/plugins/lsp.lua index dd48aa0..67de36d 100644 --- a/packages/nvim/lua/plugins/lsp.lua +++ b/packages/nvim/lua/plugins/lsp.lua @@ -7,8 +7,9 @@ return { servers = { lua_ls = {}, nil_ls = {}, + -- vue_ls = {}, -- rust_analyzer = {}, - gopls = {}, + -- gopls = {}, } }, config = function(_, opts) diff --git a/packages/nvim/lua/plugins/nvim-tree.lua b/packages/nvim/lua/plugins/nvim-tree.lua new file mode 100644 index 0000000..9493a11 --- /dev/null +++ b/packages/nvim/lua/plugins/nvim-tree.lua @@ -0,0 +1,15 @@ +return { + "nvim-tree/nvim-tree.lua", + version = "*", + lazy = false, + dependencies = { + "nvim-tree/nvim-web-devicons", + }, + config = function() + require("nvim-tree").setup({ + view = { + width = 30, + }, + }) + end, +} diff --git a/packages/nvim/lua/plugins/typst.lua b/packages/nvim/lua/plugins/typst.lua new file mode 100644 index 0000000..6f65f73 --- /dev/null +++ b/packages/nvim/lua/plugins/typst.lua @@ -0,0 +1,6 @@ +return { + 'chomosuke/typst-preview.nvim', + lazy = false, -- or ft = 'typst' + version = '1.*', + opts = {}, -- lazy.nvim will implicitly calls `setup {}` +} diff --git a/packages/terminal/default.nix b/packages/terminal/default.nix index aebe2ca..b831707 100644 --- a/packages/terminal/default.nix +++ b/packages/terminal/default.nix @@ -29,7 +29,7 @@ programs.carapace = { enableNushellIntegration = true; }; -programs.thefuck.enable = true; +# programs.thefuck.enable = true; programs.starship.enable = true; @@ -59,7 +59,7 @@ programs.zsh = { oh-my-zsh = { enable = true; - plugins = [ "thefuck" ]; + # plugins = [ "thefuck" ]; # theme = ""; }; }; @@ -74,6 +74,10 @@ home.file."/home/nico/.config/ghostty/config" = { source = ./ghostty-config; }; +programs.zoxide = { + enable = true; + enableZshIntegration = true; +}; programs.kitty = { enable = true; diff --git a/shells/linguacafe/flake.nix b/shells/linguacafe/flake.nix new file mode 100644 index 0000000..cdbd9cb --- /dev/null +++ b/shells/linguacafe/flake.nix @@ -0,0 +1,53 @@ +{ + description = "Everything for linguacafe <3"; + inputs = { + nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + flake-utils.url = "github:numtide/flake-utils"; + cursor.url = "github:omarcresp/cursor-flake/main"; + }; + outputs = { self, nixpkgs, flake-utils, cursor }: + flake-utils.lib.eachDefaultSystem (system: + let + pkgs = import nixpkgs { + config.allowUnfree = true; + inherit system; + }; + in + { + devShell = + with pkgs; mkShell rec { + buildInputs = [ + vue-language-server + cursor.packages.${pkgs.system}.default + php + + (vscode-with-extensions.override { + # vscode = vscodium; + vscodeExtensions = with vscode-extensions; [ + vscodevim.vim + vue.volar + catppuccin.catppuccin-vsc + github.copilot + github.copilot-chat + ] ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [ + # { + # name = "vscode-arduino-community"; + # publisher = "vscode-arduino"; + # version = "0.7.2"; + # sha256 = "/HdPJ6LBnyPhz7jeJ0MLRXO2L3bcAzM7J65nKsXsacY="; + # } + ]; + }) + + ]; + + shellHook = '' + zsh + + exit + ''; + }; + }); +} + + diff --git a/shells/triolingo/flake.nix b/shells/triolingo/flake.nix new file mode 100644 index 0000000..0e1ed0d --- /dev/null +++ b/shells/triolingo/flake.nix @@ -0,0 +1,106 @@ +{ + inputs = { + nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; + flake-utils.url = "github:numtide/flake-utils"; + fenix.url = "github:nix-community/fenix"; + fenix.inputs.nixpkgs.follows = "nixpkgs"; + }; + + outputs = { + self, + nixpkgs, + flake-utils, + fenix, + }: + flake-utils.lib.eachDefaultSystem (system: let + pkgs = import nixpkgs { + system = system; + config.allowUnfree = true; + # config.android_sdk.accept_license = true; + }; + + # android_sdk = + # (pkgs.androidenv.composeAndroidPackages { + # platformVersions = ["34"]; + # ndkVersions = ["26.3.11579264"]; + # includeNDK = true; + # useGoogleAPIs = false; + # useGoogleTVAddOns = false; + # includeEmulator = false; + # includeSystemImages = false; + # includeSources = false; + # }) + # .androidsdk; + + packages = with pkgs; [ + curl + wget + pkg-config + + nodejs_20 + typescript-language-server + + (vscode-with-extensions.override { + # vscode = vscodium; + vscodeExtensions = with vscode-extensions; [ + vscodevim.vim + vue.volar + catppuccin.catppuccin-vsc + github.copilot + github.copilot-chat + tauri-apps.tauri-vscode + ] ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [ + # { + # name = "vscode-arduino-community"; + # publisher = "vscode-arduino"; + # version = "0.7.2"; + # sha256 = "/HdPJ6LBnyPhz7jeJ0MLRXO2L3bcAzM7J65nKsXsacY="; + # } + ]; + }) + + (with fenix.packages.${system}; + combine [ + complete.rustc + complete.cargo + complete.clippy + # targets.aarch64-linux-android.latest.rust-std + # targets.armv7-linux-androideabi.latest.rust-std + # targets.i686-linux-android.latest.rust-std + targets.x86_64-linux-android.latest.rust-std + ]) + rust-analyzer + + # android_sdk + jdk + ]; + + libraries = with pkgs; [ + gtk3 + libsoup_3 + webkitgtk_4_1 + cairo + gdk-pixbuf + glib + dbus + openssl + librsvg + ]; + in { + devShell = pkgs.mkShell { + buildInputs = packages ++ libraries; + + shellHook = '' + zsh + + exit + ''; + + LD_LIBRARY_PATH = "${pkgs.lib.makeLibraryPath libraries}:$LD_LIBRARY_PATH"; + XDG_DATA_DIRS = "${pkgs.gsettings-desktop-schemas}/share/gsettings-schemas/${pkgs.gsettings-desktop-schemas.name}:${pkgs.gtk3}/share/gsettings-schemas/${pkgs.gtk3.name}:$XDG_DATA_DIRS"; + # ANDROID_HOME = "${android_sdk}/libexec/android-sdk"; + # NDK_HOME = "${android_sdk}/libexec/android-sdk/ndk/26.3.11579264"; + # GRADLE_OPTS = "-Dorg.gradle.project.android.aapt2FromMavenOverride=${android_sdk}/libexec/android-sdk/build-tools/34.0.0/aapt2"; + }; + }); +}