aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--flake.lock86
-rw-r--r--hosts/adam/configuration.nix20
-rw-r--r--hosts/sachiel/configuration.nix28
-rw-r--r--modules/desktop/default.nix2
-rw-r--r--modules/desktop/kde/default.nix21
-rw-r--r--modules/desktop/labwc/default.nix152
-rw-r--r--modules/desktop/labwc/sfwbar.nix138
-rw-r--r--modules/programs/gemini.nix13
-rw-r--r--modules/programs/kitty.nix6
-rw-r--r--modules/programs/neovim/init.lua164
-rw-r--r--modules/programs/opencode.nix2
11 files changed, 483 insertions, 149 deletions
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', '<leader>o', '<CMD>update<BAR>source %<CR>', { desc = 'Save & reload in
map('n', '<leader>w', '<CMD>write<CR>')
map('n', '<leader>q', '<CMD>quit<CR>')
--- 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', '<leader>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', '<leader>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;
};
};
};