From 75129ca37657fed13d04bc647432274f7ccc139d Mon Sep 17 00:00:00 2001 From: schererleander Date: Fri, 19 Dec 2025 15:57:40 +0100 Subject: configure labwc --- flake.lock | 86 ++++++++++---------- hosts/adam/configuration.nix | 20 ++++- hosts/sachiel/configuration.nix | 28 +++++-- modules/desktop/default.nix | 2 + modules/desktop/kde/default.nix | 21 +++++ modules/desktop/labwc/default.nix | 152 +++++++++++++++++++++++++++++++++++ modules/desktop/labwc/sfwbar.nix | 138 ++++++++++++++++++++++++++++++++ modules/programs/gemini.nix | 13 +-- modules/programs/kitty.nix | 6 +- modules/programs/neovim/init.lua | 164 +++++++++++++++++--------------------- modules/programs/opencode.nix | 2 +- 11 files changed, 483 insertions(+), 149 deletions(-) create mode 100644 modules/desktop/kde/default.nix create mode 100644 modules/desktop/labwc/default.nix create mode 100644 modules/desktop/labwc/sfwbar.nix diff --git a/flake.lock b/flake.lock index 9577d87..c63329a 100644 --- a/flake.lock +++ b/flake.lock @@ -6,11 +6,11 @@ }, "locked": { "dir": "pkgs/firefox-addons", - "lastModified": 1766046711, - "narHash": "sha256-PijxRQcvSgQae3qBdY4+IGMsMFL67N3D7sBJdZxDii4=", + "lastModified": 1767473845, + "narHash": "sha256-Pvd0l14qYA4jBS+JSCufoj8qFpeu2dt0Q9zBvpeLKac=", "owner": "rycee", "repo": "nur-expressions", - "rev": "7163ab9a8e64cd29c45e8f93fbc038b12056e6fc", + "rev": "7f7d9e8b61abade02c6dc0d530ba6b43a50acead", "type": "gitlab" }, "original": { @@ -27,7 +27,7 @@ "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec", "revCount": 69, "type": "tarball", - "url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.1.0/01948eb7-9cba-704f-bbf3-3fa956735b52/source.tar.gz?rev=ff81ac966bb2cae68946d5ed5fc4994f96d0ffec&revCount=69" + "url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.1.0/01948eb7-9cba-704f-bbf3-3fa956735b52/source.tar.gz" }, "original": { "type": "tarball", @@ -60,11 +60,11 @@ "nixpkgs-lib": "nixpkgs-lib" }, "locked": { - "lastModified": 1763759067, - "narHash": "sha256-LlLt2Jo/gMNYAwOgdRQBrsRoOz7BPRkzvNaI/fzXi2Q=", + "lastModified": 1765835352, + "narHash": "sha256-XswHlK/Qtjasvhd1nOa1e8MgZ8GS//jBoTqWtrS1Giw=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "2cccadc7357c0ba201788ae99c4dfa90728ef5e0", + "rev": "a34fae9c08a15ad73f295041fec82323541400a9", "type": "github" }, "original": { @@ -98,11 +98,11 @@ ] }, "locked": { - "lastModified": 1765980955, - "narHash": "sha256-rB45jv4uwC90vM9UZ70plfvY/2Kdygs+zlQ07dGQFk4=", + "lastModified": 1767437240, + "narHash": "sha256-OA0dBHhccdupFXp+/eaFfb8K1dQxk61in4aF5ITGVX8=", "owner": "nix-community", "repo": "home-manager", - "rev": "89c9508bbe9b40d36b3dc206c2483ef176f15173", + "rev": "1cfa305fba94468f665de1bd1b62dddf2e0cb012", "type": "github" }, "original": { @@ -118,11 +118,11 @@ "nixpkgs": "nixpkgs_2" }, "locked": { - "lastModified": 1766016290, - "narHash": "sha256-YMf/PUyY4z7RlIe/Dzn1NnxZGS0Vp2eHxcMNWJM9q+A=", + "lastModified": 1767485114, + "narHash": "sha256-Y3Y+cTyUtlKNUAEw1v/g9K67Go/Hb6pRHJJ0CLs7r4w=", "owner": "nix-community", "repo": "neovim-nightly-overlay", - "rev": "f7fbc4e3d4ccea45eaa5b187884592eb42dfdbbd", + "rev": "f731eee3e59ad17361587898b55054644c18bd81", "type": "github" }, "original": { @@ -134,11 +134,11 @@ "neovim-src": { "flake": false, "locked": { - "lastModified": 1766014002, - "narHash": "sha256-KE/ufBGH8XFXTw3Vt1DrK1rQmAEp1Q+oyLQibX5UKO0=", + "lastModified": 1767483975, + "narHash": "sha256-kufXcgn8ZbShHKCvgHgxZq85yCWrOJYgcY40k+JBno8=", "owner": "neovim", "repo": "neovim", - "rev": "c172fd9f464d5766eab9071e8f4770504c920c05", + "rev": "715015d3b231a5d640f9bb109caf4d817c7f2bd6", "type": "github" }, "original": { @@ -154,11 +154,11 @@ ] }, "locked": { - "lastModified": 1766038392, - "narHash": "sha256-ht/GuKaw5NT3M12xM+mkUtkSBVtzjJ8IHIy6R/ncv9g=", + "lastModified": 1767028240, + "narHash": "sha256-0/fLUqwJ4Z774muguUyn5t8AQ6wyxlNbHexpje+5hRo=", "owner": "nix-darwin", "repo": "nix-darwin", - "rev": "5fb45ece6129bd7ad8f7310df0ae9c00bae7c562", + "rev": "c31afa6e76da9bbc7c9295e39c7de9fca1071ea1", "type": "github" }, "original": { @@ -174,11 +174,11 @@ "nixpkgs": "nixpkgs_3" }, "locked": { - "lastModified": 1766045567, - "narHash": "sha256-w3w0PxcBMLFYE8MOAJwp6NeBWZUI3eykczV9MfJrAQ8=", + "lastModified": 1767451989, + "narHash": "sha256-sUZmTUFti+uETSvUEQ3bklw8fFoDPKD9E4dbgxvRKPc=", "owner": "kaylorben", "repo": "nixcord", - "rev": "2cc1a69f9b4a5c980c26ba4ba9dee252ebf0d218", + "rev": "93b998d75b3548314fc196e65186f307c4807e94", "type": "github" }, "original": { @@ -205,11 +205,11 @@ }, "nixpkgs-lib": { "locked": { - "lastModified": 1761765539, - "narHash": "sha256-b0yj6kfvO8ApcSE+QmA6mUfu8IYG6/uU28OFn4PaC8M=", + "lastModified": 1765674936, + "narHash": "sha256-k00uTP4JNfmejrCLJOwdObYC9jHRrr/5M/a/8L2EIdo=", "owner": "nix-community", "repo": "nixpkgs.lib", - "rev": "719359f4562934ae99f5443f20aa06c2ffff91fc", + "rev": "2075416fcb47225d9b68ac469a5c4801a9c4dd85", "type": "github" }, "original": { @@ -220,11 +220,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1765934234, - "narHash": "sha256-pJjWUzNnjbIAMIc5gRFUuKCDQ9S1cuh3b2hKgA7Mc4A=", + "lastModified": 1767364772, + "narHash": "sha256-fFUnEYMla8b7UKjijLnMe+oVFOz6HjijGGNS1l7dYaQ=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "af84f9d270d404c17699522fab95bbf928a2d92f", + "rev": "16c7794d0a28b5a37904d55bcca36003b9109aaa", "type": "github" }, "original": { @@ -236,11 +236,11 @@ }, "nixpkgs_3": { "locked": { - "lastModified": 1764983851, - "narHash": "sha256-y7RPKl/jJ/KAP/VKLMghMgXTlvNIJMHKskl8/Uuar7o=", + "lastModified": 1766885793, + "narHash": "sha256-P6RVkrM9JLCW6xBjSwHfgTOQ1JwBUma5xe5LI8xAPC0=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "d9bc5c7dceb30d8d6fafa10aeb6aa8a48c218454", + "rev": "9ef261221d1e72399f2036786498d78c38185c46", "type": "github" }, "original": { @@ -252,11 +252,11 @@ }, "nixpkgs_4": { "locked": { - "lastModified": 1765934234, - "narHash": "sha256-pJjWUzNnjbIAMIc5gRFUuKCDQ9S1cuh3b2hKgA7Mc4A=", + "lastModified": 1767364772, + "narHash": "sha256-fFUnEYMla8b7UKjijLnMe+oVFOz6HjijGGNS1l7dYaQ=", "owner": "nixos", "repo": "nixpkgs", - "rev": "af84f9d270d404c17699522fab95bbf928a2d92f", + "rev": "16c7794d0a28b5a37904d55bcca36003b9109aaa", "type": "github" }, "original": { @@ -284,11 +284,11 @@ }, "nixpkgs_6": { "locked": { - "lastModified": 1765472234, - "narHash": "sha256-9VvC20PJPsleGMewwcWYKGzDIyjckEz8uWmT0vCDYK0=", + "lastModified": 1766651565, + "narHash": "sha256-QEhk0eXgyIqTpJ/ehZKg9IKS7EtlWxF3N7DXy42zPfU=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "2fbfb1d73d239d2402a8fe03963e37aab15abe8b", + "rev": "3e2499d5539c16d0d173ba53552a4ff8547f4539", "type": "github" }, "original": { @@ -316,11 +316,11 @@ "nixpkgs": "nixpkgs_5" }, "locked": { - "lastModified": 1766056158, - "narHash": "sha256-nB53SAIXV8dqjc0yle4LO9akX8LMgtS/VXoB4aMww5s=", + "lastModified": 1766967002, + "narHash": "sha256-4uA4o0TgLJjXediZ8utkBdMoV9WEG5OKVzaw3Pny2a0=", "owner": "schererleander", "repo": "site", - "rev": "37e2962472acc01b15cc10831bc3bf01e9dc0ed0", + "rev": "8ed3234746a79e4714e5bf7afb3fa4c9fb711b63", "type": "github" }, "original": { @@ -335,11 +335,11 @@ "systems": "systems_2" }, "locked": { - "lastModified": 1765687197, - "narHash": "sha256-5aJgT+lEC7ypuAGE3DQLj3LzYDQ+kRG6MnkVr3ZF9RU=", + "lastModified": 1767195736, + "narHash": "sha256-0xvPSbhIGeJzsJXNTkgJ3PjwdVItKm85wzYKA9NmSzI=", "owner": "Gerg-L", "repo": "spicetify-nix", - "rev": "fa6a5dde9d95bf7b8f075ff5aceeb1d97fa9043a", + "rev": "465adc0ab6ff0c4b9b1db1c6e7fd7eeb553b3261", "type": "github" }, "original": { diff --git a/hosts/adam/configuration.nix b/hosts/adam/configuration.nix index 1aeb0a1..99e2726 100644 --- a/hosts/adam/configuration.nix +++ b/hosts/adam/configuration.nix @@ -51,6 +51,20 @@ enable32Bit = true; }; + hardware.bluetooth = { + enable = true; + powerOnBoot = true; + settings = { + General = { + Experimental = true; + FastConnectable = true; + }; + Policy = { + AutoEnable = true; + }; + }; + }; + programs.dconf.enable = true; home-manager.users.${username} = { @@ -69,19 +83,19 @@ zoxide noto-fonts-cjk-sans - noto-fonts-color-emoji + noto-fonts-color-emoji ]; programs.zsh.shellAliases = { open = "xdg-open"; }; - + home.stateVersion = "25.11"; }; nx = { desktop = { - cinnamon.enable = true; + kde.enable = true; }; programs = { kitty.enable = true; diff --git a/hosts/sachiel/configuration.nix b/hosts/sachiel/configuration.nix index 5cd0298..7bb5aca 100644 --- a/hosts/sachiel/configuration.nix +++ b/hosts/sachiel/configuration.nix @@ -52,12 +52,12 @@ system.autoUpgrade = { enable = true; flake = "github:schererleander/nix#${host}"; - flags = [ - "--update-input" - "nixpkgs" - "--no-write-lock-file" + flags = [ + "--update-input" + "nixpkgs" + "--no-write-lock-file" "-L" # print build logs - ]; + ]; allowReboot = true; rebootWindow = { @@ -158,6 +158,16 @@ sslCertificate = "/etc/ssl/schererleander.de/fullchain.pem"; sslCertificateKey = "/etc/ssl/schererleander.de/privkey.key"; }; + + virtualHosts."analytics.schererleander.de" = { + forceSSL = true; + sslCertificate = "/etc/ssl/schererleander.de/fullchain.pem"; + sslCertificateKey = "/etc/ssl/schererleander.de/privkey.key"; + locations."/" = { + proxyPass = "http://127.0.0.1:${toString config.services.plausible.server.port}"; + proxyWebsockets = true; + }; + }; }; services.site = { @@ -259,6 +269,14 @@ ''; }; + services.plausible = { + enable = true; + server = { + baseUrl = "https://analytics.scherereleander.de"; + secretKeybaseFile = "/etc/plausible-secret-keybase"; + }; + }; + security.auditd.enable = true; security.audit = { enable = true; diff --git a/modules/desktop/default.nix b/modules/desktop/default.nix index 1a500e7..f3efbf5 100644 --- a/modules/desktop/default.nix +++ b/modules/desktop/default.nix @@ -7,5 +7,7 @@ ./waybar.nix ./gnome ./cinnamon + ./kde + ./labwc ]; } diff --git a/modules/desktop/kde/default.nix b/modules/desktop/kde/default.nix new file mode 100644 index 0000000..d2d37dd --- /dev/null +++ b/modules/desktop/kde/default.nix @@ -0,0 +1,21 @@ +{ + config, + lib, + pkgs, + ... +}: + +{ + + options.nx.desktop.kde.enable = lib.mkEnableOption "Enable kde"; + config = lib.mkIf config.nx.desktop.kde.enable { + services.displayManager.sddm.enable = true; + services.displayManager.sddm.wayland.enable = true; + services.desktopManager.plasma6.enable = true; + + environment.plasma6.excludePackages = with pkgs.kdePackages; [ + elisa + kate + ]; + }; +} diff --git a/modules/desktop/labwc/default.nix b/modules/desktop/labwc/default.nix new file mode 100644 index 0000000..9f15641 --- /dev/null +++ b/modules/desktop/labwc/default.nix @@ -0,0 +1,152 @@ +{ + config, + username, + pkgs, + lib, + ... +}: + +let + gruvbox-openbox = pkgs.stdenv.mkDerivation { + pname = "gruvbox-openbox"; + version = "0-unstable-2024-02-14"; + + src = pkgs.fetchFromGitHub { + owner = "nathanielevan"; + repo = "gruvbox-openbox"; + rev = "master"; + hash = "sha256-61BsD/DK6OOJLKwdY03HL1pCG1DJcIE9bsFPAVFfcIY="; + }; + + installPhase = '' + mkdir -p $out/share/themes + cp -r gruvbox-dark $out/share/themes/ + cp -r gruvbox-material-dark $out/share/themes/ + cp -r gruvbox-material-dark-blocks $out/share/themes/ + ''; + }; +in +{ + imports = [ + ./sfwbar.nix + ]; + + options.nx.desktop.labwc.enable = lib.mkEnableOption "Enable labwc"; + config = lib.mkIf config.nx.desktop.labwc.enable { + home-manager.users.${username} = { + home.packages = with pkgs; [ + labwc-tweaks + labwc-gtktheme + gruvbox-material-gtk-theme + gruvbox-dark-icons-gtk + swaybg + wl-clipboard + + gruvbox-openbox + ]; + + services.cliphist.enable = true; + + gtk = { + enable = true; + theme = { + name = "Gruvbox-Material-Dark"; + package = pkgs.gruvbox-material-gtk-theme; + }; + iconTheme = { + name = "Gruvbox-Dark"; + package = pkgs.gruvbox-dark-icons-gtk; + }; + cursorTheme = { + name = "Adwaita"; + package = pkgs.adwaita-icon-theme; + }; + gtk3.extraConfig = { + gtk-application-prefer-dark-theme = 1; + }; + gtk4.extraConfig = { + gtk-application-prefer-dark-theme = 1; + }; + }; + + services.kanshi = { + enable = true; + profiles = { + home = { + outputs = [ + { + criteria = "DP-1"; + mode = "1920x1080@240"; + position = "1920,0"; + } + ]; + }; + }; + }; + + wayland.windowManager.labwc = { + enable = true; + autostart = [ + "${pkgs.sfwbar}/bin/sfwbar" + "${pkgs.swaybg}/bin/swaybg -m fill -i /home/${username}/Developer/nix/images/pond.jpg & disown" + ]; + environment = [ + "XKB_DEFAULT_LAYOUT=de" + "XCURSOR_SIZE=24" + "XDG_CURRENT_DESKTOP=wlroots" + ]; + + menu = [ + ]; + + rc = { + core = { + decoration = "server"; + gap = 5; + adaptiveSync = "no"; + reuseOutputMode = "yes"; + }; + + theme = { + # "gruvbox-dark", "gruvbox-material-dark", "gruvbox-material-dark-blocks" + name = "gruvbox-material-dark-blocks"; + }; + + keyboard = { + default = true; + keybind = [ + { + "@key" = "W-Return"; + action = { + "@name" = "Execute"; + "@command" = "kitty"; + }; + } + { + "@key" = "W-F4"; + action = { + "@name" = "None"; + }; + } + ]; + }; + + mouse = { + default = true; + context = { + "@name" = "Root"; + mousebind = { + "@button" = "Right"; + "@action" = "Press"; + action = { + "@name" = "ShowMenu"; + "@menu" = "root-menu"; + }; + }; + }; + }; + }; + }; + }; + }; +} diff --git a/modules/desktop/labwc/sfwbar.nix b/modules/desktop/labwc/sfwbar.nix new file mode 100644 index 0000000..62c4982 --- /dev/null +++ b/modules/desktop/labwc/sfwbar.nix @@ -0,0 +1,138 @@ +{ + config, + username, + pkgs, + lib, + ... +}: + +{ + options.nx.desktop.sfwbar.enable = lib.mkEnableOption "Enable sfwbar" // { + default = config.nx.desktop.labwc.enable; + }; + + config = lib.mkIf config.nx.desktop.sfwbar.enable { + home-manager.users.${username} = { + home.packages = with pkgs; [ + sfwbar + gtk-layer-shell + ]; + + # CONFIGURATION + xdg.configFile."sfwbar/sfwbar.config".text = '' + # Term setup + Set Term = "foot" + Set ThicknessHint = "20px" + + # Actions + TriggerAction "SIGRTMIN+1", SwitcherEvent "forward" + TriggerAction "SIGRTMIN+2", SwitcherEvent "back" + + # Initialization + Function("SfwbarInit") { + SetLayer "top" + SetMirror "*" + SetExclusiveZone "auto" + } + + # Placer (Window positioning) + placer { + xorigin = 5 + yorigin = 5 + xstep = 5 + ystep = 5 + children = true + } + + # Task Switcher + switcher { + interval = 700 + icons = true + labels = false + cols = 5 + } + + # Load Standard Library Winops + include("${pkgs.sfwbar}/share/sfwbar/winops.widget") + + # Main Layout + layout { + + # Start Menu + include("${pkgs.sfwbar}/share/sfwbar/startmenu.widget") + + # Show Desktop + include("${pkgs.sfwbar}/share/sfwbar/showdesktop.widget") + + # Taskbar + taskbar { + rows = 1 + icons = true + labels = false + sort = false + action[3] = Menu "winops" + action[Drag] = Focus + } + + # Spacer + label { + value = "" + style = "spacer" + } + + # Pager + pager { + rows = 1 + pins = "1","2","3","4" + preview = true + action[Drag] = WorkspaceActivate + } + + # System Monitors + #include("${pkgs.sfwbar}/share/sfwbar/cpu.widget") + #include("${pkgs.sfwbar}/share/sfwbar/memory.widget") + + # Tray + tray { + rows = 1 + } + + # --- MODULES --- + #include("${pkgs.sfwbar}/share/sfwbar/upower.widget") + #include("${pkgs.sfwbar}/share/sfwbar/battery-svg.widget") + + #include("${pkgs.sfwbar}/share/sfwbar/idle.widget") + #include("${pkgs.sfwbar}/share/sfwbar/backlight.widget") + include("${pkgs.sfwbar}/share/sfwbar/volume.widget") + #include("${pkgs.sfwbar}/share/sfwbar/network-module.widget") + #include("${pkgs.sfwbar}/share/sfwbar/sway-lang.widget") + + # Clock + grid { + style = "clock_grid" + label { + value = Time("%H:%M") + tooltip = Time("%H:%M\n%x") + } + } + } + #CSS + + #spacer { + -GtkWidget-hexpand: true; + } + + button#taskbar_item { + padding: 5px; + border-radius: 0px; + border-width: 0px; + -GtkWidget-hexpand: false; + } + + button#taskbar_item:hover { + background-color: rgba(255, 255, 255, 0.1); + } + ''; + }; + }; +} diff --git a/modules/programs/gemini.nix b/modules/programs/gemini.nix index 8c0e38a..70c5260 100644 --- a/modules/programs/gemini.nix +++ b/modules/programs/gemini.nix @@ -10,12 +10,13 @@ config = lib.mkIf config.nx.programs.gemini-cli.enable { home-manager.users."${username}".programs.gemini-cli = { enable = true; - settings = { - "ui.theme" = "Default"; - "general.preferredEditor" = "nvim"; - "general.disableAutoUpdate" = true; - "privacy.usageStatisticsEnabled" = false; - }; + # Cant store credentials due config read-only + #settings = { + # "ui.theme" = "Default"; + # "general.preferredEditor" = "nvim"; + # "general.disableAutoUpdate" = true; + # "privacy.usageStatisticsEnabled" = false; + #}; }; }; } diff --git a/modules/programs/kitty.nix b/modules/programs/kitty.nix index f48985f..619d1db 100644 --- a/modules/programs/kitty.nix +++ b/modules/programs/kitty.nix @@ -12,9 +12,11 @@ programs.kitty = { enable = true; enableGitIntegration = true; + font = { + name = "monospace"; + size = 11; + }; settings = { - font_size = 11; - cursor_shape = "underline"; cursor_blink_interval = "-1"; cursor_stop_blinking_after = "15.0"; diff --git a/modules/programs/neovim/init.lua b/modules/programs/neovim/init.lua index bd83eb9..79c49a5 100644 --- a/modules/programs/neovim/init.lua +++ b/modules/programs/neovim/init.lua @@ -20,38 +20,24 @@ map('n', 'o', 'updatesource %', { desc = 'Save & reload in map('n', 'w', 'write') map('n', 'q', 'quit') --- Bootstrap lazy.nvim -local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" -if not vim.loop.fs_stat(lazypath) then - vim.fn.system({ - "git", - "clone", - "--filter=blob:none", - "https://github.com/folke/lazy.nvim.git", - "--branch=stable", - lazypath, - }) -end -vim.opt.rtp:prepend(lazypath) - --- Plugin specifications -require("lazy").setup({ - { "ellisonleao/gruvbox.nvim" }, - { "echasnovski/mini.starter" }, - { "lewis6991/gitsigns.nvim" }, - { "windwp/nvim-autopairs" }, - { "nvim-telescope/telescope.nvim", dependencies = { "nvim-lua/plenary.nvim" } }, - { "j-hui/fidget.nvim" }, - { "nvim-treesitter/nvim-treesitter" }, - { "neovim/nvim-lspconfig" }, - { "hrsh7th/nvim-cmp" }, - { "hrsh7th/cmp-nvim-lsp" }, - { "hrsh7th/cmp-buffer" }, - { "hrsh7th/cmp-path" }, - { "hrsh7th/cmp-cmdline" }, - { "L3MON4D3/LuaSnip" }, - { "saadparwaiz1/cmp_luasnip" }, - { "onsails/lspkind-nvim" } +vim.pack.add({ + { src = "https://github.com/ellisonleao/gruvbox.nvim" }, + { src = "https://github.com/echasnovski/mini.starter" }, + { src = "https://github.com/lewis6991/gitsigns.nvim" }, + { src = "https://github.com/windwp/nvim-autopairs" }, + { src = "https://github.com/nvim-telescope/telescope.nvim" }, + { src = "https://github.com/j-hui/fidget.nvim" }, + { src = "https://github.com/nvim-lua/plenary.nvim" }, + { src = "https://github.com/nvim-treesitter/nvim-treesitter" }, + { src = "https://github.com/neovim/nvim-lspconfig" }, + { src = "https://github.com/hrsh7th/nvim-cmp" }, + { src = "https://github.com/hrsh7th/cmp-nvim-lsp" }, + { src = "https://github.com/hrsh7th/cmp-buffer" }, + { src = "https://github.com/hrsh7th/cmp-path" }, + { src = "https://github.com/hrsh7th/cmp-cmdline" }, + { src = "https://github.com/L3MON4D3/LuaSnip" }, + { src = "https://github.com/saadparwaiz1/cmp_luasnip" }, + { src = "https://github.com/onsails/lspkind-nvim" } }) require("nvim-treesitter.configs").setup({ @@ -105,74 +91,75 @@ cmp.setup({ -- Add parentheses after selecting function or method local cmp_autopairs = require('nvim-autopairs.completion.cmp') cmp.event:on( - 'confirm_done', - cmp_autopairs.on_confirm_done() + 'confirm_done', + cmp_autopairs.on_confirm_done() ) local capabilities = require('cmp_nvim_lsp').default_capabilities() vim.api.nvim_create_autocmd('LspAttach', { - group = vim.api.nvim_create_augroup('UserLspConfig', {}), - callback = function(ev) - local opts = { buffer = ev.buf, noremap = true, silent = true } - vim.keymap.set('n', 'lf', function() vim.lsp.buf.format { async = true } end, opts) - end, + group = vim.api.nvim_create_augroup('UserLspConfig', {}), + callback = function(ev) + local opts = { buffer = ev.buf, noremap = true, silent = true } + vim.keymap.set('n', 'lf', function() vim.lsp.buf.format { async = true } end, opts) + end, }) local servers = { - nixd = { - settings = { - nixd = { - formatting = { - command = { "nixfmt" }, - }, - }, - }, - }, - lua_ls = { - settings = { - lua_ls = { - formatting = { - command = { "luaformatter" }, - }, - }, - Lua = { - runtime = { - version = 'LuaJIT', - }, - diagnostics = { - globals = { 'vim', 'require' }, - }, - workspace = { - library = vim.api.nvim_get_runtime_file("", true), - }, - telemetry = { - enable = false, - }, - }, - }, - }, - pyright = {}, - tailwindcss = {}, - gopls = { - settings = { - gopls = { - analyses = { - unusedparams = true, - unusedwrite = true, - }, - staticcheck = true, - }, - }, - }, - rust_analyzer = {}, + nixd = { + settings = { + nixd = { + formatting = { + command = { "nixfmt" }, + }, + }, + }, + }, + lua_ls = { + settings = { + lua_ls = { + formatting = { + command = { "luaformatter" }, + }, + }, + Lua = { + runtime = { + version = 'LuaJIT', + }, + diagnostics = { + globals = { 'vim', 'require' }, + }, + workspace = { + library = vim.api.nvim_get_runtime_file("", true), + }, + telemetry = { + enable = false, + }, + }, + }, + }, + pyright = {}, + tailwindcss = {}, + gopls = { + settings = { + gopls = { + analyses = { + unusedparams = true, + unusedwrite = true, + }, + staticcheck = true, + }, + }, + }, + rust_analyzer = {}, + ts_ls = {}, } local server_names = {} for server, config in pairs(servers) do - config.capabilities = capabilities - vim.lsp.config(server, config) - table.insert(server_names, server) + config.capabilities = capabilities + vim.lsp.config(server, config) + table.insert(server_names, server) end vim.lsp.enable(server_names) @@ -216,4 +203,3 @@ hl(0, "DiagnosticSignError", { bg = "none" }) hl(0, "DiagnosticSignHint", { bg = "none" }) hl(0, "DiagnosticSignInfo", { bg = "none" }) hl(0, "DiagnosticSignWarn", { bg = "none" }) - diff --git a/modules/programs/opencode.nix b/modules/programs/opencode.nix index 00c55e7..3ceb6fb 100644 --- a/modules/programs/opencode.nix +++ b/modules/programs/opencode.nix @@ -13,7 +13,7 @@ settings = { theme = "system"; share = "disabled"; - autoUpdate = false; + autoupdate = false; }; }; }; -- cgit v1.3.1