From e63afa54b8887ac84ec44a39f11f9238b9ec91c0 Mon Sep 17 00:00:00 2001 From: 0xTux <0xtux@pm.me> Date: Thu, 21 Dec 2023 13:05:49 +0530 Subject: [PATCH] initial commit --- .gitignore | 1 + flake.lock | 407 +++++++++ flake.nix | 96 ++ home/tux/default.nix | 10 + hosts/canopus/default.nix | 180 ++++ hosts/canopus/hardware-configuration.nix | 36 + hosts/wsl/default.nix | 37 + modules/home-manager/alacritty/default.nix | 85 ++ modules/home-manager/barrier/default.nix | 7 + modules/home-manager/bitwarden/default.nix | 14 + modules/home-manager/default.nix | 63 ++ modules/home-manager/firefox/default.nix | 69 ++ modules/home-manager/firefox/userChrome.css | 834 ++++++++++++++++++ modules/home-manager/firefox/userContent.css | 95 ++ modules/home-manager/git/default.nix | 16 + .../nvim/astronvim/lua/user/init.lua | 197 +++++ .../nvim/astronvim/lua/user/mappings.lua | 18 + .../nvim/astronvim/lua/user/options.lua | 8 + modules/home-manager/nvim/default.nix | 68 ++ modules/home-manager/nvim/old/init.lua | 22 + modules/home-manager/nvim/old/lazy-lock.json | 38 + modules/home-manager/nvim/old/llama.log | 455 ++++++++++ modules/home-manager/nvim/old/lua/keymaps.lua | 32 + modules/home-manager/nvim/old/lua/options.lua | 39 + .../nvim/old/lua/plugins/alpha.lua | 40 + .../nvim/old/lua/plugins/autopair.lua | 4 + .../nvim/old/lua/plugins/barbecue.lua | 11 + .../nvim/old/lua/plugins/blankline.lua | 5 + .../nvim/old/lua/plugins/bufferline.lua | 17 + .../nvim/old/lua/plugins/colorscheme.lua | 25 + .../nvim/old/lua/plugins/comment.lua | 50 ++ .../nvim/old/lua/plugins/dressing.lua | 4 + .../nvim/old/lua/plugins/edgy.lua | 5 + .../nvim/old/lua/plugins/editorconfig.lua | 3 + .../nvim/old/lua/plugins/flash.lua | 38 + .../home-manager/nvim/old/lua/plugins/gen.lua | 16 + .../nvim/old/lua/plugins/gitsigns.lua | 6 + .../nvim/old/lua/plugins/lazygit.lua | 6 + .../nvim/old/lua/plugins/lualine.lua | 14 + .../nvim/old/lua/plugins/markdownpreview.lua | 8 + .../nvim/old/lua/plugins/modes.lua | 31 + .../nvim/old/lua/plugins/neorg.lua | 21 + .../nvim/old/lua/plugins/neotree.lua | 35 + .../nvim/old/lua/plugins/noice.lua | 27 + .../nvim/old/lua/plugins/nvterm.lua | 11 + .../nvim/old/lua/plugins/surround.lua | 4 + .../nvim/old/lua/plugins/telescope.lua | 20 + .../nvim/old/lua/plugins/todo-comments.lua | 5 + .../nvim/old/lua/plugins/treesitter.lua | 17 + .../nvim/old/lua/plugins/treesj.lua | 8 + .../nvim/old/lua/plugins/wakatime.lua | 1 + .../nvim/old/lua/plugins/whichkey.lua | 8 + modules/home-manager/picom/default.nix | 42 + modules/home-manager/shell/default.nix | 65 ++ modules/home-manager/starship/default.nix | 22 + modules/home-manager/wezterm/default.nix | 31 + modules/nixos/desktop/awesome/default.nix | 72 ++ modules/nixos/steam.nix | 7 + modules/nixos/virtualisation/default.nix | 7 + modules/nixos/virtualisation/docker.nix | 7 + modules/nixos/virtualisation/qemu.nix | 11 + modules/nixos/virtualisation/waydroid.nix | 5 + overlays/default.nix | 28 + pkgs/default.nix | 3 + pkgs/speedtestpp/default.nix | 22 + 65 files changed, 3589 insertions(+) create mode 100644 .gitignore create mode 100755 flake.lock create mode 100755 flake.nix create mode 100644 home/tux/default.nix create mode 100755 hosts/canopus/default.nix create mode 100755 hosts/canopus/hardware-configuration.nix create mode 100644 hosts/wsl/default.nix create mode 100755 modules/home-manager/alacritty/default.nix create mode 100755 modules/home-manager/barrier/default.nix create mode 100644 modules/home-manager/bitwarden/default.nix create mode 100755 modules/home-manager/default.nix create mode 100644 modules/home-manager/firefox/default.nix create mode 100644 modules/home-manager/firefox/userChrome.css create mode 100644 modules/home-manager/firefox/userContent.css create mode 100755 modules/home-manager/git/default.nix create mode 100755 modules/home-manager/nvim/astronvim/lua/user/init.lua create mode 100644 modules/home-manager/nvim/astronvim/lua/user/mappings.lua create mode 100644 modules/home-manager/nvim/astronvim/lua/user/options.lua create mode 100755 modules/home-manager/nvim/default.nix create mode 100644 modules/home-manager/nvim/old/init.lua create mode 100644 modules/home-manager/nvim/old/lazy-lock.json create mode 100644 modules/home-manager/nvim/old/llama.log create mode 100644 modules/home-manager/nvim/old/lua/keymaps.lua create mode 100644 modules/home-manager/nvim/old/lua/options.lua create mode 100644 modules/home-manager/nvim/old/lua/plugins/alpha.lua create mode 100644 modules/home-manager/nvim/old/lua/plugins/autopair.lua create mode 100644 modules/home-manager/nvim/old/lua/plugins/barbecue.lua create mode 100644 modules/home-manager/nvim/old/lua/plugins/blankline.lua create mode 100644 modules/home-manager/nvim/old/lua/plugins/bufferline.lua create mode 100644 modules/home-manager/nvim/old/lua/plugins/colorscheme.lua create mode 100644 modules/home-manager/nvim/old/lua/plugins/comment.lua create mode 100644 modules/home-manager/nvim/old/lua/plugins/dressing.lua create mode 100644 modules/home-manager/nvim/old/lua/plugins/edgy.lua create mode 100644 modules/home-manager/nvim/old/lua/plugins/editorconfig.lua create mode 100644 modules/home-manager/nvim/old/lua/plugins/flash.lua create mode 100644 modules/home-manager/nvim/old/lua/plugins/gen.lua create mode 100644 modules/home-manager/nvim/old/lua/plugins/gitsigns.lua create mode 100644 modules/home-manager/nvim/old/lua/plugins/lazygit.lua create mode 100644 modules/home-manager/nvim/old/lua/plugins/lualine.lua create mode 100644 modules/home-manager/nvim/old/lua/plugins/markdownpreview.lua create mode 100644 modules/home-manager/nvim/old/lua/plugins/modes.lua create mode 100644 modules/home-manager/nvim/old/lua/plugins/neorg.lua create mode 100644 modules/home-manager/nvim/old/lua/plugins/neotree.lua create mode 100644 modules/home-manager/nvim/old/lua/plugins/noice.lua create mode 100644 modules/home-manager/nvim/old/lua/plugins/nvterm.lua create mode 100644 modules/home-manager/nvim/old/lua/plugins/surround.lua create mode 100644 modules/home-manager/nvim/old/lua/plugins/telescope.lua create mode 100644 modules/home-manager/nvim/old/lua/plugins/todo-comments.lua create mode 100644 modules/home-manager/nvim/old/lua/plugins/treesitter.lua create mode 100644 modules/home-manager/nvim/old/lua/plugins/treesj.lua create mode 100644 modules/home-manager/nvim/old/lua/plugins/wakatime.lua create mode 100644 modules/home-manager/nvim/old/lua/plugins/whichkey.lua create mode 100644 modules/home-manager/picom/default.nix create mode 100755 modules/home-manager/shell/default.nix create mode 100755 modules/home-manager/starship/default.nix create mode 100644 modules/home-manager/wezterm/default.nix create mode 100755 modules/nixos/desktop/awesome/default.nix create mode 100644 modules/nixos/steam.nix create mode 100755 modules/nixos/virtualisation/default.nix create mode 100755 modules/nixos/virtualisation/docker.nix create mode 100755 modules/nixos/virtualisation/qemu.nix create mode 100755 modules/nixos/virtualisation/waydroid.nix create mode 100755 overlays/default.nix create mode 100755 pkgs/default.nix create mode 100755 pkgs/speedtestpp/default.nix diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..04204c7 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +config diff --git a/flake.lock b/flake.lock new file mode 100755 index 0000000..e660795 --- /dev/null +++ b/flake.lock @@ -0,0 +1,407 @@ +{ + "nodes": { + "astronvim": { + "flake": false, + "locked": { + "lastModified": 1693570730, + "narHash": "sha256-MJ1K8SL9K784PeI/4tKHzp+cACDrhQ89W9ZlONdXWsA=", + "owner": "AstroNvim", + "repo": "AstroNvim", + "rev": "b1a158eb3d8abda33cc28f3e9ca730530880e71b", + "type": "github" + }, + "original": { + "owner": "AstroNvim", + "ref": "v3.36.7", + "repo": "AstroNvim", + "type": "github" + } + }, + "emacs": { + "inputs": { + "flake-utils": "flake-utils_2", + "nixpkgs": "nixpkgs_2", + "nixpkgs-stable": "nixpkgs-stable" + }, + "locked": { + "lastModified": 1702399955, + "narHash": "sha256-FnB5O1RVFzj3h7Ayf7UxFnOL1gsJuG6gn1LCTd9dKFs=", + "owner": "nix-community", + "repo": "emacs-overlay", + "rev": "47798c4ab07d5f055bb2625010cf6d8e3f384923", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "emacs-overlay", + "type": "github" + } + }, + "fenix": { + "inputs": { + "nixpkgs": [ + "nixpkgs-f2k", + "nixpkgs-fmt", + "nixpkgs" + ], + "rust-analyzer-src": "rust-analyzer-src" + }, + "locked": { + "lastModified": 1637475807, + "narHash": "sha256-E3nzOvlzZXwyo8Stp5upKsTCDcqUTYAFj4EC060A31c=", + "owner": "nix-community", + "repo": "fenix", + "rev": "960e7fef45692a4fffc6df6d6b613b0399bbdfd5", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "fenix", + "type": "github" + } + }, + "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1701680307, + "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "4022d587cbbfd70fe950c1e2083a02621806a725", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_2": { + "inputs": { + "systems": "systems_2" + }, + "locked": { + "lastModified": 1701680307, + "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "4022d587cbbfd70fe950c1e2083a02621806a725", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_3": { + "locked": { + "lastModified": 1637014545, + "narHash": "sha256-26IZAc5yzlD9FlDT54io1oqG/bBoyka+FJk5guaX4x4=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "bba5dcc8e0b20ab664967ad83d24d64cb64ec4f4", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "home-manager": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1702937117, + "narHash": "sha256-4GjkL2D01bDg00UZN/SeGrnBZrDVOFeZTbQx6U702Vc=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "e8aaced73ebaf6bfa8e3c6ab0a19cb184bc4d798", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, + "nixos-hardware": { + "locked": { + "lastModified": 1702453208, + "narHash": "sha256-0wRi9SposfE2wHqjuKt8WO2izKB/ASDOV91URunIqgo=", + "owner": "nixos", + "repo": "nixos-hardware", + "rev": "7763c6fd1f299cb9361ff2abf755ed9619ef01d6", + "type": "github" + }, + "original": { + "owner": "nixos", + "repo": "nixos-hardware", + "type": "github" + } + }, + "nixos-wsl": { + "inputs": { + "flake-compat": "flake-compat", + "flake-utils": "flake-utils", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1702867085, + "narHash": "sha256-zcKtsexiTURppa7styWbMvrFiIYfoY5mBtWeIlh7YqU=", + "owner": "nix-community", + "repo": "nixos-wsl", + "rev": "86f3b26038b36603f51e260979a09e9c659415e9", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixos-wsl", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1702830618, + "narHash": "sha256-lvhwIvRwhOLgzbRuYkqHy4M5cQHYs4ktL6/hyuBS6II=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "91a00709aebb3602f172a0bf47ba1ef013e34835", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-f2k": { + "inputs": { + "emacs": "emacs", + "nixpkgs": "nixpkgs_3", + "nixpkgs-fmt": "nixpkgs-fmt", + "parts": "parts" + }, + "locked": { + "lastModified": 1702953048, + "narHash": "sha256-hGcKr8roKHT22+DTb1zbtUzs1ankUF2BS2/aiTN+Lq4=", + "owner": "moni-dz", + "repo": "nixpkgs-f2k", + "rev": "ccd1d893cd2f21e02b3f20dee7af3313c005da63", + "type": "github" + }, + "original": { + "owner": "moni-dz", + "repo": "nixpkgs-f2k", + "type": "github" + } + }, + "nixpkgs-fmt": { + "inputs": { + "fenix": "fenix", + "flake-utils": "flake-utils_3", + "nixpkgs": [ + "nixpkgs-f2k", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1702885237, + "narHash": "sha256-5oy8ntXhxzES+MifBMUjqnQDemIc5Nzv2hEVx+3gUmo=", + "owner": "nix-community", + "repo": "nixpkgs-fmt", + "rev": "8c58125463b104c07c58845a483fe9d2d12ce5db", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixpkgs-fmt", + "type": "github" + } + }, + "nixpkgs-lib": { + "locked": { + "dir": "lib", + "lastModified": 1701253981, + "narHash": "sha256-ztaDIyZ7HrTAfEEUt9AtTDNoCYxUdSd6NrRHaYOIxtk=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "e92039b55bcd58469325ded85d4f58dd5a4eaf58", + "type": "github" + }, + "original": { + "dir": "lib", + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-stable": { + "locked": { + "lastModified": 1702221085, + "narHash": "sha256-Br3GCSkkvkmw46cT6wCz6ro2H1WgDMWbKE0qctbdtL0=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "c2786e7084cbad90b4f9472d5b5e35ecb57958af", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-23.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_2": { + "locked": { + "lastModified": 1702151865, + "narHash": "sha256-9VAt19t6yQa7pHZLDbil/QctAgVsA66DLnzdRGqDisg=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "666fc80e7b2afb570462423cb0e1cf1a3a34fedd", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_3": { + "locked": { + "lastModified": 1702952957, + "narHash": "sha256-wu5fyAZ8eM/WwTViAQgLVNmtzPSId/XycVr+i83/7D4=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "25e3b2c7a9296ea1abd61d5fbba478427c609af7", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "master", + "repo": "nixpkgs", + "type": "github" + } + }, + "nur": { + "locked": { + "lastModified": 1702957303, + "narHash": "sha256-MspofgHcwmDRsfBtVoXRBluNz49OejQGvn7VM+aoSfc=", + "owner": "nix-community", + "repo": "nur", + "rev": "06f325fc281e404efda68baa45246ebc8a9e961b", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nur", + "type": "github" + } + }, + "parts": { + "inputs": { + "nixpkgs-lib": "nixpkgs-lib" + }, + "locked": { + "lastModified": 1701473968, + "narHash": "sha256-YcVE5emp1qQ8ieHUnxt1wCZCC3ZfAS+SRRWZ2TMda7E=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "34fed993f1674c8d06d58b37ce1e0fe5eebcb9f5", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "root": { + "inputs": { + "astronvim": "astronvim", + "home-manager": "home-manager", + "nixos-hardware": "nixos-hardware", + "nixos-wsl": "nixos-wsl", + "nixpkgs": "nixpkgs", + "nixpkgs-f2k": "nixpkgs-f2k", + "nur": "nur" + } + }, + "rust-analyzer-src": { + "flake": false, + "locked": { + "lastModified": 1637439871, + "narHash": "sha256-2awQ/obzl7zqYgLwbQL0zT58gN8Xq7n+81GcMiS595I=", + "owner": "rust-analyzer", + "repo": "rust-analyzer", + "rev": "4566414789310acb2617543f4b50beab4bb48e06", + "type": "github" + }, + "original": { + "owner": "rust-analyzer", + "ref": "nightly", + "repo": "rust-analyzer", + "type": "github" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "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" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100755 index 0000000..9e538b3 --- /dev/null +++ b/flake.nix @@ -0,0 +1,96 @@ +{ + description = "tux's NixOS Flake"; + + inputs = { + nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; + nixos-wsl = { + url = "github:nix-community/nixos-wsl"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + home-manager = { + url = "github:nix-community/home-manager"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + astronvim = { + url = "github:AstroNvim/AstroNvim/v3.36.7"; + flake = false; + }; + nixos-hardware.url = "github:nixos/nixos-hardware"; + nixpkgs-f2k.url = "github:moni-dz/nixpkgs-f2k"; + nur.url = "github:nix-community/nur"; + }; + + outputs = { self, nixpkgs, home-manager, ... } @ inputs: + let + inherit (self) outputs; + forAllSystems = nixpkgs.lib.genAttrs [ + "x86_64-linux" + ]; + username = "tux"; + in + { + packages = forAllSystems (system: import ./pkgs nixpkgs.legacyPackages.${system}); + formatter = forAllSystems (system: nixpkgs.legacyPackages.${system}.alejandra); + + # Custom packages and modifications, exported as overlays + overlays = import ./overlays { inherit inputs; }; + + # NixOS configuration entrypoint + # 'nixos-rebuild switch --flake .#your-hostname' + nixosConfigurations = { + canopus = nixpkgs.lib.nixosSystem { + specialArgs = { inherit inputs outputs username; }; + modules = [ + ./hosts/canopus + + ./modules/nixos/desktop/awesome + ./modules/nixos/virtualisation + ./modules/nixos/steam.nix + + home-manager.nixosModules.home-manager + { + home-manager.useUserPackages = true; + home-manager.extraSpecialArgs = { inherit inputs outputs username; }; + home-manager.users.${username} = { + imports = [ + ./modules/home-manager + ./home/tux + ]; + }; + } + ]; + }; + + wsl = nixpkgs.lib.nixosSystem { + specialArgs = { inherit inputs outputs username; }; + modules = [ + ./hosts/wsl + + home-manager.nixosModules.home-manager + { + home-manager.useUserPackages = true; + home-manager.extraSpecialArgs = { inherit inputs outputs username; }; + home-manager.users.${username} = { + imports = [ + ./modules/home-manager + ./home/tux + ]; + }; + } + ]; + }; + }; + + # Standalone home-manager configuration entrypoint + # home-manager switch --flake .#your-username@your-hostname' + homeConfigurations = { + "${username}@canopus" = home-manager.lib.homeManagerConfiguration { + pkgs = nixpkgs.legacyPackages.x86_64-linux; + extraSpecialArgs = { inherit inputs outputs username; }; + modules = [ + ./modules/home-manager + ]; + }; + }; + }; +} diff --git a/home/tux/default.nix b/home/tux/default.nix new file mode 100644 index 0000000..dadad58 --- /dev/null +++ b/home/tux/default.nix @@ -0,0 +1,10 @@ +{ pkgs, ... }: { + home.packages = with pkgs; [ + discord + anydesk + nodePackages.pnpm + vlc + darktable + rawtherapee + ]; +} diff --git a/hosts/canopus/default.nix b/hosts/canopus/default.nix new file mode 100755 index 0000000..e190ad2 --- /dev/null +++ b/hosts/canopus/default.nix @@ -0,0 +1,180 @@ +{ inputs, outputs, lib, config, pkgs, username, ... }: { + imports = [ + inputs.nixos-hardware.nixosModules.asus-zephyrus-ga503 + ./hardware-configuration.nix + ]; + + nixpkgs = { + overlays = [ + outputs.overlays.additions + outputs.overlays.modifications + outputs.overlays.unstable-packages + outputs.overlays.nur + ]; + + config = { + allowUnfree = true; + joypixels.acceptLicense = true; + }; + }; + + nix = { + settings = { + experimental-features = "nix-command flakes"; + auto-optimise-store = true; + }; + }; + + time.timeZone = "Asia/Kolkata"; + i18n = { + defaultLocale = "en_IN"; + extraLocaleSettings = { + LC_ADDRESS = "en_IN"; + LC_IDENTIFICATION = "en_IN"; + LC_MEASUREMENT = "en_IN"; + LC_MONETARY = "en_IN"; + LC_NAME = "en_IN"; + LC_NUMERIC = "en_IN"; + LC_PAPER = "en_IN"; + LC_TELEPHONE = "en_IN"; + LC_TIME = "en_IN"; + }; + }; + + networking = { + hostName = "canopus"; + networkmanager.enable = true; + firewall = { + enable = true; + allowedTCPPorts = [ 80 443 3000 6666 ]; + }; + }; + + boot = { + kernelPackages = pkgs.linuxPackages_zen; + supportedFilesystems = [ "ntfs" ]; + initrd.systemd.enable = true; + + loader = { + systemd-boot = { + enable = true; + # configurationLimit = 5; + }; + efi.canTouchEfiVariables = true; + timeout = 1; + }; + }; + + hardware = { + bluetooth.enable = true; + bluetooth.powerOnBoot = true; + opengl.driSupport32Bit = true; + }; + + security = { + sudo.wheelNeedsPassword = false; + polkit.enable = true; + rtkit.enable = true; + }; + + systemd = { + enableEmergencyMode = false; + + user = { + services.polkit-gnome-authentication-agent-1 = { + description = "polkit-gnome-authentication-agent-1"; + wantedBy = [ "graphical-session.target" ]; + wants = [ "graphical-session.target" ]; + after = [ "graphical-session.target" ]; + serviceConfig = { + Type = "simple"; + ExecStart = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1"; + Restart = "on-failure"; + RestartSec = 1; + TimeoutStopSec = 10; + }; + }; + }; + }; + + programs = { + ssh.startAgent = true; + zsh.enable = true; + thunar = { + enable = true; + plugins = with pkgs.xfce; [ thunar-archive-plugin thunar-volman ]; + }; + nix-ld.enable = true; + nm-applet.enable = true; + }; + + users = { + defaultUserShell = pkgs.zsh; + users.${username} = { + initialPassword = "${username}"; + isNormalUser = true; + extraGroups = [ "networkmanager" "wheel" "storage" ]; + openssh.authorizedKeys.keys = [ + ''ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIL+OzPUe2ECPC929DqpkM39tl/vdNAXfsRnmrGfR+X3D 0xtux@pm.me'' + ]; + }; + }; + + services = { + openssh = { + enable = true; + settings = { + PasswordAuthentication = false; + }; + }; + + pipewire = { + enable = true; + alsa.enable = true; + alsa.support32Bit = true; + pulse.enable = true; + }; + + logind = { + extraConfig = "HandlePowerKey=suspend"; + lidSwitch = "suspend"; + lidSwitchExternalPower = "suspend"; + }; + + syncthing = { + enable = true; + user = "tux"; + dataDir = "/home/tux/"; + }; + + xserver = { + enable = true; + layout = "in"; + xkbVariant = "eng"; + libinput.touchpad.naturalScrolling = true; + }; + + blueman.enable = true; + + supergfxd.enable = true; + + asusd = { + enable = true; + enableUserService = true; + asusdConfig = "bat_charge_limit: 80"; + }; + + gvfs.enable = true; + tumbler.enable = true; + gnome.gnome-keyring.enable = true; + tailscale.enable = true; + mullvad-vpn = { + enable = true; + package = pkgs.mullvad-vpn; + }; + }; + + fonts.packages = with pkgs; [ (nerdfonts.override { fonts = [ "FiraCode" "JetBrainsMono" ]; }) ]; + + system.stateVersion = "23.11"; +} diff --git a/hosts/canopus/hardware-configuration.nix b/hosts/canopus/hardware-configuration.nix new file mode 100755 index 0000000..f70b771 --- /dev/null +++ b/hosts/canopus/hardware-configuration.nix @@ -0,0 +1,36 @@ +# Do not modify this file! It was generated by ‘nixos-generate-config’ +# and may be overwritten by future invocations. Please make changes +# to /etc/nixos/configuration.nix instead. +{ config, lib, pkgs, modulesPath, ... }: { + imports = [ + (modulesPath + "/installer/scan/not-detected.nix") + ]; + + boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "usbhid" "usb_storage" "sd_mod" "sdhci_pci" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-amd" ]; + boot.extraModulePackages = [ ]; + + fileSystems."/" = { + device = "/dev/disk/by-uuid/e79e5cdf-4197-4f44-96c7-3ab9ba9878bb"; + fsType = "ext4"; + }; + + fileSystems."/boot" = { + device = "/dev/disk/by-uuid/ADC4-BC71"; + fsType = "vfat"; + }; + + swapDevices = [ ]; + + # Enables DHCP on each ethernet and wireless interface. In case of scripted networking + # (the default) this is the recommended approach. When using systemd-networkd it's + # still possible to use this option, but it's recommended to use it in conjunction + # with explicit per-interface declarations with `networking.interfaces..useDHCP`. + networking.useDHCP = lib.mkDefault true; + # networking.interfaces.enp3s0.useDHCP = lib.mkDefault true; + # networking.interfaces.wlp4s0.useDHCP = lib.mkDefault true; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +} diff --git a/hosts/wsl/default.nix b/hosts/wsl/default.nix new file mode 100644 index 0000000..7b09b21 --- /dev/null +++ b/hosts/wsl/default.nix @@ -0,0 +1,37 @@ +{ config, lib, pkgs, inputs, username, ... }: + +{ + imports = [ + inputs.nixos-wsl.nixosModules.wsl + ]; + + nixpkgs.hostPlatform = "x86_64-linux"; + + wsl.enable = true; + wsl.defaultUser = "${username}"; + + programs = { + zsh.enable = true; + nix-ld.enable = true; + }; + + users = { + defaultUserShell = pkgs.zsh; + users.${username} = { + initialPassword = "${username}"; + isNormalUser = true; + extraGroups = [ "networkmanager" "wheel" "storage" ]; + openssh.authorizedKeys.keys = [ + ''ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIL+OzPUe2ECPC929DqpkM39tl/vdNAXfsRnmrGfR+X3D 0xtux@pm.me'' + ]; + }; + }; + + environment.systemPackages = with pkgs;[ + ollama + ]; + + fonts.packages = with pkgs; [ (nerdfonts.override { fonts = [ "FiraCode" "JetBrainsMono" ]; }) ]; + + system.stateVersion = "23.11"; +} diff --git a/modules/home-manager/alacritty/default.nix b/modules/home-manager/alacritty/default.nix new file mode 100755 index 0000000..5675cd8 --- /dev/null +++ b/modules/home-manager/alacritty/default.nix @@ -0,0 +1,85 @@ +{ ... }: { + programs.alacritty = { + enable = true; + + settings = { + font = { + normal.family = "JetBrainsMono Nerd Font"; + bold.family = "JetBrainsMono Nerd Font"; + italic.family = "JetBrainsMono Nerd Font"; + bold_italic.family = "JetBrainsMono Nerd Font"; + size = 10; + }; + + window = { + padding = { + x = 15; + y = 15; + }; + + decorations = "none"; + opacity = 1.0; + dynamic_title = true; + history = 10000; + multiplier = 3; + }; + + selection.save_to_clipboard = false; + + live_config_reload = true; + + colors = { + primary = { + background = "#0f0f0f"; + foreground = "0xa6accd"; + }; + normal = { + black = "0x1b1e28"; + red = "0xd0679d"; + green = "0x5de4c7"; + yellow = "0xfffac2"; + blue = "0x89ddff"; + magenta = "0xfcc5e9"; + cyan = "0xadd7ff"; + white = "0xffffff"; + }; + bright = { + black = "0xa6accd"; + red = "0xd0679d"; + green = "0x5de4c7"; + yellow = "0xfffac2"; + blue = "0xadd7ff"; + magenta = "0xfae4fc"; + cyan = "0x89ddff"; + white = "0xffffff"; + }; + cursor = { + cursor = "#bb9af7"; + text = "CellBackground"; + }; + search = { + matches = { + foreground = "0x1b1e28"; + background = "0xadd7ff"; + }; + focused_match = { + foreground = "0x1b1e28"; + background = "0xadd7ff"; + }; + footer_bar = { + foreground = "0x1b1e28"; + background = "0xadd7ff"; + }; + }; + selection = { + text = "CellForeground"; + background = "0x303340"; + }; + vi_mode_cursor = { + text = "CellBackground"; + cursor = "CellForeground"; + }; + }; + }; + }; +} diff --git a/modules/home-manager/barrier/default.nix b/modules/home-manager/barrier/default.nix new file mode 100755 index 0000000..24c832d --- /dev/null +++ b/modules/home-manager/barrier/default.nix @@ -0,0 +1,7 @@ +{ pkgs, ... }: { + # services.barrier.client.enable = true; + + home.packages = with pkgs; [ + barrier + ]; +} diff --git a/modules/home-manager/bitwarden/default.nix b/modules/home-manager/bitwarden/default.nix new file mode 100644 index 0000000..74e2135 --- /dev/null +++ b/modules/home-manager/bitwarden/default.nix @@ -0,0 +1,14 @@ +{ pkgs, ... }: { + + programs.rbw = { + enable = true; + settings = { + base_url = "https://vault.0xtux.com"; + email = "0xtux@pm.me"; + }; + }; + + home.packages = with pkgs; [ + bitwarden + ]; +} diff --git a/modules/home-manager/default.nix b/modules/home-manager/default.nix new file mode 100755 index 0000000..b621141 --- /dev/null +++ b/modules/home-manager/default.nix @@ -0,0 +1,63 @@ +{ inputs, outputs, lib, config, pkgs, username, ... }: { + imports = [ + ./picom + ./shell + ./git + ./alacritty + ./wezterm + ./starship + ./nvim + ./barrier + ./firefox + ./bitwarden + ]; + + nixpkgs = { + overlays = [ + outputs.overlays.additions + outputs.overlays.modifications + outputs.overlays.unstable-packages + outputs.overlays.nur + ]; + + config = { + allowUnfree = true; + allowUnfreePredicate = _: true; + joypixels.acceptLicense = true; + }; + }; + + home = { + username = "${username}"; + homeDirectory = "/home/${username}"; + + pointerCursor = { + package = pkgs.bibata-cursors; + name = "Bibata-Modern-Ice"; + }; + }; + + qt.enable = true; + qt.platformTheme = "gtk"; + qt.style.name = "adwaita-dark"; + qt.style.package = pkgs.adwaita-qt; + + gtk = { + enable = true; + theme = { + name = "Materia-dark"; + package = pkgs.materia-theme; + }; + iconTheme = { + package = pkgs.tela-icon-theme; + name = "Tela-black"; + }; + }; + + programs.vscode.enable = true; + programs.home-manager.enable = true; + + systemd.user.startServices = "sd-switch"; + + home.stateVersion = "23.11"; +} diff --git a/modules/home-manager/firefox/default.nix b/modules/home-manager/firefox/default.nix new file mode 100644 index 0000000..5705530 --- /dev/null +++ b/modules/home-manager/firefox/default.nix @@ -0,0 +1,69 @@ +{ pkgs, inputs, username, ... }: { + programs.firefox = { + enable = true; + + package = pkgs.firefox.override { + extraPolicies = { + CaptivePortal = false; + DisableFirefoxStudies = true; + DisablePocket = true; + DisableTelemetry = true; + DisableFirefoxAccounts = false; + NoDefaultBookmarks = true; + OfferToSaveLogins = false; + OfferToSaveLoginsDefault = false; + PasswordManagerEnabled = false; + FirefoxHome = { + Search = true; + Pocket = false; + Snippets = false; + TopSites = false; + Highlights = false; + }; + UserMessaging = { + ExtensionRecommendations = false; + SkipOnboarding = true; + }; + }; + }; + + profiles = { + ${username} = { + id = 0; + name = "tux"; + search = { + force = true; + default = "Google"; + }; + settings = { + "general.smoothScroll" = true; + "extensions.activeThemeID" = "firefox-compact-dark@mozilla.org"; + "layout.css.prefers-color-scheme.content-override" = 0; + "browser.compactmode.show" = true; + "browser.tabs.firefox-view" = false; + "browser.bookmarks.addedImportButton" = false; + "extensions.pocket.enabled" = false; + }; + extraConfig = '' + user_pref("toolkit.legacyUserProfileCustomizations.stylesheets", true); + user_pref("full-screen-api.ignore-widgets", true); + user_pref("media.ffmpeg.vaapi.enabled", true); + user_pref("media.rdd-vpx.enabled", true); + ''; + userChrome = builtins.readFile ./userChrome.css; + userContent = builtins.readFile ./userContent.css; + + extensions = with pkgs.nur.repos.rycee.firefox-addons; [ + ublock-origin + facebook-container + metamask + darkreader + bitwarden + wappalyzer + private-relay + clearurls + ]; + }; + }; + }; +} diff --git a/modules/home-manager/firefox/userChrome.css b/modules/home-manager/firefox/userChrome.css new file mode 100644 index 0000000..1639a48 --- /dev/null +++ b/modules/home-manager/firefox/userChrome.css @@ -0,0 +1,834 @@ +/*================== Simplify Darkish Gray for Firefox ================== +Author: dpcdpc11.gumroad.com +ENJOY! +*/ + +/*================ GLOBAL COLORS ================*/ +:root { + --accent-color: 38, 38, 38; + /* #262626 */ + --secondary-accent-color: 140, 140, 140; + /* #8c8c8c */ + --third-accent-color: 190, 190, 190; + /* #bebebe */ + --light-color: 255, 255, 255; + /* #ffffff */ + --dark-color: 15, 15, 15; + /* #0f0f0f */ + --caption-min-color: 82, 82, 82; + /* #525252 */ + --caption-max-color: 100, 100, 100; + /* #646464 */ + --caption-close-color: 126, 126, 126; + /* #7e7e7e */ +} + +/*================ DARK MODE ================*/ +:root:-moz-lwtheme-brighttext, +.sidebar-panel[lwt-sidebar-brighttext], +body[lwt-sidebar-brighttext] { + --main-bgcolor: var(--dark-color); + --transparent-bgcolor: var(--accent-color); +} + + +/*================== MAIN HEADER ==================*/ +toolbox#navigator-toolbox { + border: 0 !important; +} + +/*================== TABS BAR ==================*/ +#titlebar #TabsToolbar { + padding: 6px 0px 2px 6px !important; + background: rgba(var(--dark-color), 1) !important; +} + +.titlebar-spacer[type="pre-tabs"] { + /* border: 0 !important; */ + display: none; +} + +#tabbrowser-tabs:not([movingtab])>.tabbrowser-tab[beforeselected-visible]::after, +#tabbrowser-tabs[movingtab]>.tabbrowser-tab[visuallyselected]::before, +.tabbrowser-tab[visuallyselected]::after { + opacity: 0 !important; +} + +.tab-line { + height: 0px !important; +} + +.tabbrowser-tab { + margin-right: 5px !important; +} + +.tabbrowser-tab:not([visuallyselected="true"]), +.tabbrowser-tab:-moz-lwtheme { + color: rgba(var(--secondary-accent-color), 1) !important; +} + +tab[selected="true"] .tab-content { + color: rgba(var(--secondary-accent-color), 1) !important; +} + +tab[selected="true"] .tab-background { + background: rgba(var(--accent-color), 1) !important; +} + +.tabbrowser-tab::after, +.tabbrowser-tab::before { + border-left: 0 !important; + opacity: 0 !important; +} + +.tab-close-button { + transition: all 0.3s ease !important; + border-radius: 4px !important; +} + +.tab-close-button:hover { + fill-opacity: 0.2 !important; +} + +.tabbrowser-tab>.tab-stack>.tab-background { + border-radius: 4px !important; +} + +.tabbrowser-tab>.tab-stack>.tab-background:not([selected="true"]) { + transition: all 0.3s ease !important; +} + +.tabbrowser-tab:hover>.tab-stack>.tab-background:not([selected="true"]) { + background-color: rgba(var(--transparent-bgcolor), 0.7) !important; +} + + +/*================== BOOKMARKS TOOLBAR ==================*/ +#PersonalToolbar { + background: rgba(var(--dark-color), 1) !important; + color: rgba(var(--secondary-accent-color), 1) !important; + padding-bottom: 6px !important; + padding-top: 1px !important; +} + +toolbarbutton.bookmark-item { + transition: all 0.3s ease !important; + padding: 3px 5px !important; + border-radius: 4px !important; +} + +toolbarbutton.bookmark-item .toolbarbutton-icon { + fill: rgba(var(--secondary-accent-color), 1) !important; +} + +#PlacesToolbar toolbarseparator { + -moz-appearance: none !important; + width: 1px; + margin: 0 8px !important; + background-color: rgba(var(--secondary-accent-color), 0.5) !important; + padding-inline: 0px !important; +} + + +/*================== CAPTION BUTTONS ==================*/ +.titlebar-buttonbox { + position: relative; + margin-right: 0px; + margin-top: -10px !important; +} + +.titlebar-button { + transition: all 0.3s ease !important; + padding: 8px 10px !important; + background: rgba(var(--dark-color), 1) !important; +} + +.titlebar-button.titlebar-close { + padding-right: 26px !important; +} + +.titlebar-button>.toolbarbutton-icon { + transition: all 0.3s ease !important; + list-style-image: none; + border-radius: 10px; +} + +.titlebar-button.titlebar-min>.toolbarbutton-icon { + background: rgba(var(--caption-min-color), 1); + !important; +} + +.titlebar-button.titlebar-max>.toolbarbutton-icon, +.titlebar-button.titlebar-restore>.toolbarbutton-icon { + background: rgba(var(--caption-max-color), 1); + !important; +} + +.titlebar-button.titlebar-close>.toolbarbutton-icon { + background: rgba(var(--caption-close-color), 1); + !important; +} + +.titlebar-button:hover>.toolbarbutton-icon { + background: rgba(var(--third-accent-color), 1); + !important; +} + +.titlebar-button.titlebar-min:hover>.toolbarbutton-icon, +.titlebar-button.titlebar-max:hover>.toolbarbutton-icon, +.titlebar-button.titlebar-restore:hover>.toolbarbutton-icon, +.titlebar-button.titlebar-close:hover>.toolbarbutton-icon {} + + +/*================== NEW TAB BUTTON ==================*/ +toolbar #tabs-newtab-button:not([disabled="true"]):not([checked]):not([open]):not(:active)>.toolbarbutton-icon, +toolbar #tabs-newtab-button:not([disabled="true"]):-moz-any([open], [checked], :hover:active)>.toolbarbutton-icon, +toolbar #tabs-newtab-button:not([disabled="true"]):-moz-any([open], [checked], :active)>.toolbarbutton-icon { + transition: all 0.3s ease !important; + fill: rgba(var(--secondary-accent-color), 1) !important; + border-radius: 4px !important; + background-color: rgba(var(--transparent-bgcolor), 0.7) !important; +} + +toolbar #tabs-newtab-button:not([disabled="true"]):not([checked]):not([open]):not(:active):hover>.toolbarbutton-icon { + background-color: rgba(var(--transparent-bgcolor), 1) !important; +} + + +/*================== NAV BAR ==================*/ +toolbar#nav-bar { + background: rgba(var(--dark-color), 1) !important; + box-shadow: none !important; + padding-bottom: 4px !important; +} + +toolbar#nav-bar toolbarbutton .toolbarbutton-icon, +toolbar#nav-bar toolbarbutton #fxa-avatar-image { + transition: all 0.3s ease !important; + fill: rgba(var(--secondary-accent-color), 1) !important; +} + +#urlbar>#urlbar-background { + border-radius: 4px !important; + border: 0 !important; + background-color: rgba(var(--accent-color), 1) !important; +} + +#urlbar:not([focused="true"])>#urlbar-background, +#urlbar>#urlbar-input-container { + border-radius: 4px !important; +} + +#PersonalToolbar .toolbarbutton-1:not([disabled="true"]):not([checked]):not([open]):not(:active):hover, +.tabbrowser-arrowscrollbox:not([scrolledtostart="true"])::part(scrollbutton-up):hover, +.tabbrowser-arrowscrollbox:not([scrolledtoend="true"])::part(scrollbutton-down):hover, +.findbar-button:not(:-moz-any([checked="true"], [disabled="true"])):hover, +toolbarbutton.bookmark-item:not(.subviewbutton):hover:not([disabled="true"]):not([open]), +toolbar .toolbarbutton-1:not([disabled="true"]):not([checked]):not([open]):not(:active):hover>.toolbarbutton-icon, +toolbar .toolbarbutton-1:not([disabled="true"]):not([checked]):not([open]):not(:active):hover>.toolbarbutton-text, +toolbar .toolbarbutton-1:not([disabled="true"]):not([checked]):not([open]):not(:active):hover>.toolbarbutton-badge-stack { + background-color: rgba(var(--transparent-bgcolor), 0.7) !important; +} + +#PersonalToolbar .toolbarbutton-1:not([disabled="true"]):-moz-any([open], [checked], :hover:active), +.findbar-button:not([disabled="true"]):-moz-any([checked="true"], :hover:active), +toolbarbutton.bookmark-item:not(.subviewbutton):hover:active:not([disabled="true"]), +toolbarbutton.bookmark-item[open="true"], +toolbar .toolbarbutton-1:not([disabled="true"]):-moz-any([open], [checked], :hover:active)>.toolbarbutton-icon, +toolbar .toolbarbutton-1:not([disabled="true"]):-moz-any([open], [checked], :hover:active)>.toolbarbutton-text, +toolbar .toolbarbutton-1:not([disabled="true"]):-moz-any([open], [checked], :hover:active)>.toolbarbutton-badge-stack { + background-color: rgba(var(--transparent-bgcolor), 0.2) !important; +} + +:root:not([uidensity="compact"]) #back-button>.toolbarbutton-icon { + background-color: transparent !important; +} + +.urlbar-input-box { + color: rgba(var(--third-accent-color), 1) !important; +} + +/*Fixes the funky Reload/Stop button*/ +box.toolbarbutton-animatable-box { + margin-top: -2px !important; +} + + +/*================== SEARCH BAR ==================*/ +searchbar#searchbar { + margin-top: 4px !important; + border-radius: 4px !important; + border: 0 !important; + fill: rgba(var(--secondary-accent-color), 1) !important; + background-color: rgba(var(--accent-color), 1) !important; + color: rgba(var(--third-accent-color), 1) !important; + box-shadow: none !important; +} + + +/*================== SIDEBAR ==================*/ +#sidebar-box, +.sidebar-panel[lwt-sidebar-brighttext] { + background-color: rgba(var(--main-bgcolor), 1) !important; +} + +#sidebar-header { + border-color: rgba(var(--accent-color), 1) !important; +} + +.sidebar-splitter { + border-color: rgba(var(--accent-color), 1) !important; +} + +#sidebar-switcher-target:hover, +#sidebar-switcher-target:hover:active, +#sidebar-switcher-target.active, +#viewButton:hover, +#viewButton[open] { + background-color: rgba(var(--accent-color), 1) !important; +} + +.sidebar-placesTreechildren { + color: unset !important; +} + +#search-box, +.search-box { + -moz-appearance: none !important; + background-color: rgba(var(--accent-color), 1) !important; + border-radius: 4px !important; + color: unset !important; +} + +.content-container { + background-color: rgba(var(--main-bgcolor), 1) !important; + color: unset !important; +} + +#viewButton { + color: unset !important; +} + + +/*================== CONTEXT MENU ==================*/ + +#backForwardMenu, +#contentAreaContextMenu, +#customizationPaletteItemContextMenu, +#customizationPanelItemContextMenu, +#customization-toolbar-menu, +#downloadsContextMenu, +#new-tab-button-popup, +#pageActionContextMenu, +#PlacesChevronPopup, +#placesContext, +.search-one-offs-context-menu, +#SyncedTabsSidebarContext, +#SyncedTabsSidebarTabsFilterContext, +#tabContextMenu, +#tabs-newtab-button-popup, +#textbox-contextmenu, +.textbox-contextmenu, +#toolbar-context-menu, +#toolbox-menu, +#widget-overflow>#customizationPanelItemContextMenu, +#back-button>menupopup, +#backForwardMenu menupopup, +#contentAreaContextMenu menupopup, +#customizationPaletteItemContextMenu menupopup, +#customizationPanelItemContextMenu menupopup, +#customization-toolbar-menu menupopup, +#downloadsContextMenu menupopup, +#forward-button>menupopup, +#main-menubar menupopup, +#new-tab-button-popup menupopup, +#pageActionContextMenu menupopup, +#PlacesChevronPopup menupopup, +#placesContext menupopup, +#PlacesToolbarItems .bookmark-item menupopup, +.search-one-offs-context-menu menupopup, +#SyncedTabsSidebarContext menupopup, +#tabContextMenu menupopup, +#textbox-contextmenu menupopup, +.textbox-contextmenu menupopup, +#toolbar-context-menu menupopup, +#toolbox-menu menupopup, +#viewButton>menupopup, +#widget-overflow>#customizationPanelItemContextMenu menupopup, +#back-button>menupopup menupopup, +#forward-button>menupopup menupopup, +#viewButton>menupopup menupopup { + -moz-appearance: none !important; + background-color: rgba(var(--accent-color), 1) !important; + border: 1px solid rgba(var(--secondary-accent-color), 0.5) !important; +} + +#back-button>menupopup :-moz-any(menuitem, menu), +#backForwardMenu :-moz-any(menuitem, menu), +#contentAreaContextMenu :-moz-any(menuitem, menu), +#customizationPaletteItemContextMenu :-moz-any(menuitem, menu), +#customizationPanelItemContextMenu :-moz-any(menuitem, menu), +#customization-toolbar-menu :-moz-any(menuitem, menu), +#downloadsContextMenu :-moz-any(menuitem, menu), +#forward-button>menupopup :-moz-any(menuitem, menu), +#main-menubar menupopup :-moz-any(menuitem, menu), +#new-tab-button-popup :-moz-any(menuitem, menu), +#pageActionContextMenu :-moz-any(menuitem, menu), +#PlacesChevronPopup :-moz-any(menuitem, menu), +#placesContext :-moz-any(menuitem, menu), +#PlacesToolbarItems .bookmark-item menupopup :-moz-any(menuitem, menu), +.search-one-offs-context-menu :-moz-any(menuitem, menu), +#SyncedTabsSidebarContext :-moz-any(menuitem, menu), +#tabContextMenu :-moz-any(menuitem, menu), +#tabs-newtab-button-popup :-moz-any(menuitem, menu), +.textbox-contextmenu :-moz-any(menuitem, menu), +#toolbar-context-menu :-moz-any(menuitem, menu), +#toolbox-menu :-moz-any(menuitem, menu), +.urlbar-input-box .textbox-contextmenu :-moz-any(menuitem, menu), +#viewButton>menupopup :-moz-any(menuitem, menu), +#widget-overflow #customizationPanelItemContextMenu :-moz-any(menuitem, menu) { + -moz-appearance: none !important; + color: rgba(var(--third-accent-color), 0.8) !important; + padding: 0px 0px 2px 0px !important; + min-height: 22px !important; +} + +#back-button>menupopup menugroup, +#backForwardMenu menugroup, +#contentAreaContextMenu menugroup, +#customizationPaletteItemContextMenu menugroup, +#customizationPanelItemContextMenu menugroup, +#customization-toolbar-menu menugroup, +#downloadsContextMenu menugroup, +#forward-button>menupopup menugroup, +#main-menubar menupopup menugroup, +#new-tab-button-popup menugroup, +#pageActionContextMenu menugroup, +#PlacesChevronPopup menugroup, +#placesContext menugroup, +#PlacesToolbarItems .bookmark-item menupopup menugroup, +.search-one-offs-context-menu menugroup, +#SyncedTabsSidebarContext menugroup, +#tabContextMenu menugroup, +#tabs-newtab-button-popup menugroup, +.textbox-contextmenu menugroup, +#toolbar-context-menu menugroup, +#toolbox-menu menugroup, +.urlbar-input-box .textbox-contextmenu menugroup, +#viewButton>menupopup menugroup, +#widget-overflow #customizationPanelItemContextMenu menugroup { + padding: 0px !important; + background-color: transparent !important; +} + + +/* Separator */ + +#back-button>menupopup menuseparator, +#backForwardMenu menuseparator, +#contentAreaContextMenu menuseparator, +#customizationPaletteItemContextMenu menuseparator, +#customizationPanelItemContextMenu menuseparator, +#customization-toolbar-menu menuseparator, +#downloadsContextMenu menuseparator, +#forward-button>menupopup menuseparator, +#main-menubar menupopup menuseparator, +#new-tab-button-popup menuseparator, +#pageActionContextMenu menuseparator, +#PlacesChevronPopup menuseparator, +#placesContext menuseparator, +#PlacesToolbarItems .bookmark-item menupopup menuseparator, +.search-one-offs-context-menu menuseparator, +#SyncedTabsSidebarContext menuseparator, +#tabContextMenu menuseparator, +#tabs-newtab-button-popup menuseparator, +.textbox-contextmenu menuseparator, +#toolbar-context-menu menuseparator, +#toolbox-menu menuseparator, +.urlbar-input-box .textbox-contextmenu menuseparator, +#viewButton>menupopup menuseparator, +#widget-overflow>#customizationPanelItemContextMenu menuseparator { + -moz-appearance: none !important; + margin: 3px 8px 3px 8px !important; + padding: 0 !important; + border-top: 1px solid rgba(var(--third-accent-color), 0.1) !important; + border-bottom: none !important; +} + + +/* Disabled */ + +#back-button>menupopup :-moz-any(menuitem, menu)[disabled="true"], +#backForwardMenu :-moz-any(menuitem, menu)[disabled="true"], +#contentAreaContextMenu :-moz-any(menuitem, menu)[disabled="true"], +#customizationPaletteItemContextMenu :-moz-any(menuitem, menu)[disabled="true"], +#customizationPanelItemContextMenu :-moz-any(menuitem, menu)[disabled="true"], +#customization-toolbar-menu :-moz-any(menuitem, menu)[disabled="true"], +#downloadsContextMenu :-moz-any(menuitem, menu)[disabled="true"], +#forward-button>menupopup :-moz-any(menuitem, menu)[disabled="true"], +#main-menubar menupopup :-moz-any(menuitem, menu)[disabled="true"], +#new-tab-button-popup :-moz-any(menuitem, menu)[disabled="true"], +#pageActionContextMenu :-moz-any(menuitem, menu)[disabled="true"], +#PlacesChevronPopup :-moz-any(menuitem, menu)[disabled="true"], +#placesContext :-moz-any(menuitem, menu)[disabled="true"], +#PlacesToolbarItems .bookmark-item menupopup :-moz-any(menuitem, menu)[disabled="true"], +.search-one-offs-context-menu :-moz-any(menuitem, menu)[disabled="true"], +#SyncedTabsSidebarContext :-moz-any(menuitem, menu)[disabled="true"], +#tabContextMenu :-moz-any(menuitem, menu)[disabled="true"], +#tabs-newtab-button-popup :-moz-any(menuitem, menu)[disabled="true"], +.textbox-contextmenu :-moz-any(menuitem, menu)[disabled="true"], +#toolbar-context-menu :-moz-any(menuitem, menu)[disabled="true"], +#toolbox-menu :-moz-any(menuitem, menu)[disabled="true"], +.urlbar-input-box .textbox-contextmenu :-moz-any(menuitem, menu)[disabled="true"], +#viewButton>menupopup :-moz-any(menuitem, menu)[disabled="true"], +#widget-overflow #customizationPanelItemContextMenu :-moz-any(menuitem, menu)[disabled="true"] { + -moz-appearance: none !important; + background-color: transparent !important; + color: rgba(var(--third-accent-color), 0.3) !important; +} + +#back-button>menupopup :-moz-any(menuitem, menu)[disabled="true"]:hover, +#backForwardMenu :-moz-any(menuitem, menu)[disabled="true"]:hover, +#contentAreaContextMenu :-moz-any(menuitem, menu)[disabled="true"]:hover, +#customizationPaletteItemContextMenu :-moz-any(menuitem, menu)[disabled="true"]:hover, +#customizationPanelItemContextMenu :-moz-any(menuitem, menu)[disabled="true"]:hover, +#customization-toolbar-menu :-moz-any(menuitem, menu)[disabled="true"]:hover, +#downloadsContextMenu :-moz-any(menuitem, menu)[disabled="true"]:hover, +#forward-button>menupopup :-moz-any(menuitem, menu)[disabled="true"]:hover, +#main-menubar menupopup :-moz-any(menuitem, menu)[disabled="true"]:hover, +#new-tab-button-popup :-moz-any(menuitem, menu)[disabled="true"]:hover, +#pageActionContextMenu :-moz-any(menuitem, menu)[disabled="true"]:hover, +#PlacesChevronPopup :-moz-any(menuitem, menu)[disabled="true"]:hover, +#placesContext :-moz-any(menuitem, menu)[disabled="true"]:hover, +#PlacesToolbarItems .bookmark-item menupopup :-moz-any(menuitem, menu)[disabled="true"]:hover, +.search-one-offs-context-menu :-moz-any(menuitem, menu)[disabled="true"]:hover, +#SyncedTabsSidebarContext :-moz-any(menuitem, menu)[disabled="true"]:hover, +#tabContextMenu :-moz-any(menuitem, menu)[disabled="true"]:hover, +#tabs-newtab-button-popup :-moz-any(menuitem, menu)[disabled="true"]:hover, +.textbox-contextmenu :-moz-any(menuitem, menu)[disabled="true"]:hover, +#toolbar-context-menu :-moz-any(menuitem, menu)[disabled="true"]:hover, +#toolbox-menu :-moz-any(menuitem, menu)[disabled="true"]:hover, +.urlbar-input-box .textbox-contextmenu :-moz-any(menuitem, menu)[disabled="true"]:hover, +#viewButton>menupopup :-moz-any(menuitem, menu)[disabled="true"]:hover, +#widget-overflow #customizationPanelItemContextMenu :-moz-any(menuitem, menu)[disabled="true"]:hover { + -moz-appearance: none !important; + background-color: transparent !important; +} + + +/* Hover */ + +#back-button>menupopup :-moz-any(menu, menuitem):-moz-any(:hover, [_moz-menuactive="true"]):not([disabled="true"]), +#backForwardMenu :-moz-any(menu, menuitem):-moz-any(:hover, [_moz-menuactive="true"]):not([disabled="true"]), +#customizationPaletteItemContextMenu :-moz-any(menu, menuitem):-moz-any(:hover, [_moz-menuactive="true"]):not([disabled="true"]), +#customizationPanelItemContextMenu :-moz-any(menu, menuitem):-moz-any(:hover, [_moz-menuactive="true"]):not([disabled="true"]), +#customization-toolbar-menu :-moz-any(menu, menuitem):-moz-any(:hover, [_moz-menuactive="true"]):not([disabled="true"]), +#downloadsContextMenu :-moz-any(menu, menuitem):-moz-any(:hover, [_moz-menuactive="true"]):not([disabled="true"]), +#forward-button>menupopup :-moz-any(menu, menuitem):-moz-any(:hover, [_moz-menuactive="true"]):not([disabled="true"]), +#main-menubar menupopup :-moz-any(menu, menuitem):-moz-any(:hover, [_moz-menuactive="true"]):not([disabled="true"]), +#new-tab-button-popup :-moz-any(menu, menuitem):-moz-any(:hover, [_moz-menuactive="true"]):not([disabled="true"]), +#contentAreaContextMenu :-moz-any(menu, menuitem):-moz-any(:hover, [_moz-menuactive="true"]):not([disabled="true"]), +#pageActionContextMenu :-moz-any(menu, menuitem):-moz-any(:hover, [_moz-menuactive="true"]):not([disabled="true"]), +#PlacesChevronPopup :-moz-any(menu, menuitem):-moz-any(:hover, [_moz-menuactive="true"]):not([disabled="true"]), +#placesContext :-moz-any(menu, menuitem):-moz-any(:hover, [_moz-menuactive="true"]):not([disabled="true"]), +#PlacesToolbarItems .bookmark-item menupopup :-moz-any(menu, menuitem):-moz-any(:hover, [_moz-menuactive="true"]):not([disabled="true"]), +.search-one-offs-context-menu :-moz-any(menu, menuitem):-moz-any(:hover, [_moz-menuactive="true"]):not([disabled="true"]), +#SyncedTabsSidebarContext :-moz-any(menu, menuitem):-moz-any(:hover, [_moz-menuactive="true"]):not([disabled="true"]), +#tabContextMenu :-moz-any(menu, menuitem):-moz-any(:hover, [_moz-menuactive="true"]):not([disabled="true"]), +#tabs-newtab-button-popup :-moz-any(menu, menuitem):-moz-any(:hover, [_moz-menuactive="true"]):not([disabled="true"]), +.textbox-contextmenu :-moz-any(menu, menuitem):-moz-any(:hover, [_moz-menuactive="true"]):not([disabled="true"]), +#toolbar-context-menu :-moz-any(menu, menuitem):-moz-any(:hover, [_moz-menuactive="true"]):not([disabled="true"]), +#toolbox-menu :-moz-any(menu, menuitem):-moz-any(:hover, [_moz-menuactive="true"]):not([disabled="true"]), +.urlbar-input-box .textbox-contextmenu :-moz-any(menu, menuitem):-moz-any(:hover, [_moz-menuactive="true"]):not([disabled="true"]), +#viewButton>menupopup :-moz-any(menu, menuitem):-moz-any(:hover, [_moz-menuactive="true"]):not([disabled="true"]), +#widget-overflow #customizationPanelItemContextMenu :-moz-any(menu, menuitem):-moz-any(:hover, [_moz-menuactive="true"]):not([disabled="true"]) { + -moz-appearance: none !important; + background-color: rgba(var(--secondary-accent-color), 0.4) !important; + color: rgba(var(--light-color), 1) !important; +} + + +/* Icons */ + +#back-button>menupopup .menu-right, +#backForwardMenu .menu-right, +#contentAreaContextMenu .menu-right, +#customizationPaletteItemContextMenu .menu-right, +#customizationPanelItemContextMenu .menu-right, +#customization-toolbar-menu .menu-right, +#downloadsContextMenu .menu-right, +#forward-button>menupopup .menu-right, +#main-menubar menupopup .menu-right, +#new-tab-button-popup .menu-right, +#pageActionContextMenu .menu-right, +#PlacesChevronPopup .menu-right, +#placesContext .menu-right, +#PlacesToolbarItems .bookmark-item menupopup .menu-right, +.search-one-offs-context-menu .menu-right, +#SyncedTabsSidebarContext .menu-right, +#tabContextMenu .menu-right, +#tabs-newtab-button-popup .menu-right, +.textbox-contextmenu .menu-right, +#toolbar-context-menu .menu-right, +#toolbox-menu .menu-right, +.urlbar-input-box .textbox-contextmenu .menu-right, +#viewButton>menupopup .menu-right, +#widget-overflow #customizationPanelItemContextMenu .menu-right { + -moz-appearance: none !important; + margin-right: 6px !important; + padding: 7.5px !important; + color: rgba(var(--third-accent-color), 1) !important; + border: solid rgba(var(--third-accent-color), 1) !important; + border-width: 0px 2px 2px 0px !important; + transform: rotate(-45deg) scale(.55); +} + +#back-button>menupopup menu[disabled="true"] .menu-right, +#backForwardMenu menu[disabled="true"] .menu-right, +#contentAreaContextMenu menu[disabled="true"] .menu-right, +#customizationPaletteItemContextMenu menu[disabled="true"] .menu-right, +#customizationPanelItemContextMenu menu[disabled="true"] .menu-right, +#customization-toolbar-menu menu[disabled="true"] .menu-right, +#downloadsContextMenu menu[disabled="true"] .menu-right, +#forward-button>menupopup menu[disabled="true"] .menu-right, +#main-menubar menupopup menu[disabled="true"] .menu-right, +#new-tab-button-popup menu[disabled="true"] .menu-right, +#pageActionContextMenu menu[disabled="true"] .menu-right, +#PlacesChevronPopup menu[disabled="true"] .menu-right, +#placesContext menu[disabled="true"] .menu-right, +#PlacesToolbarItems .bookmark-item menupopup menu[disabled="true"] .menu-right, +.search-one-offs-context-menu menu[disabled="true"] .menu-right, +#SyncedTabsSidebarContext menu[disabled="true"] .menu-right, +#tabContextMenu menu[disabled="true"] .menu-right, +#tabs-newtab-button-popup menu[disabled="true"] .menu-right, +.textbox-contextmenu menu[disabled="true"] .menu-right, +#toolbar-context-menu menu[disabled="true"] .menu-right, +#toolbox-menu menu[disabled="true"] .menu-right, +.urlbar-input-box .textbox-contextmenu menu[disabled="true"] .menu-right, +#viewButton>menupopup menu[disabled="true"] .menu-right, +#widget-overflow #customizationPanelItemContextMenu menu[disabled="true"] .menu-right { + color: rgba(var(--third-accent-color), 0.3) !important; + border-color: rgba(var(--third-accent-color), 0.3) !important; +} + + +/* Checkbox and Radio Items */ + +#back-button menuitem[type="checkbox"], +#back-button>menupopup menuitem[type="checkbox"], +#backForwardMenu menuitem[type="checkbox"], +#contentAreaContextMenu menuitem[type="checkbox"], +#customizationPaletteItemContextMenu menuitem[type="checkbox"], +#customizationPanelItemContextMenu menuitem[type="checkbox"], +#customization-toolbar-menu menuitem[type="checkbox"], +#downloadsContextMenu menuitem[type="checkbox"], +#forward-button menuitem[type="checkbox"], +#forward-button>menupopup menuitem[type="checkbox"], +#main-menubar menupopup menuitem[type="checkbox"], +#new-tab-button-popup menuitem[type="checkbox"], +#pageActionContextMenu menuitem[type="checkbox"], +#PlacesChevronPopup menuitem[type="checkbox"], +#placesContext menuitem[type="checkbox"], +#PlacesToolbarItems .bookmark-item menupopup menuitem[type="checkbox"], +.search-one-offs-context-menu menuitem[type="checkbox"], +#SyncedTabsSidebarContext menuitem[type="checkbox"], +#tabContextMenu menuitem[type="checkbox"], +#tabs-newtab-button-popup menuitem[type="checkbox"], +.textbox-contextmenu menuitem[type="checkbox"], +#toolbar-context-menu menuitem[type="checkbox"], +#toolbox-menu menuitem[type="checkbox"], +.urlbar-input-box .textbox-contextmenu menuitem[type="checkbox"], +#viewButton>menupopup menuitem[type="checkbox"], +#widget-overflow>#customizationPanelItemContextMenu menuitem[type="checkbox"] { + -moz-appearance: none !important; +} + +#back-button menuitem[checked="true"][type="checkbox"]>.menu-iconic-left, +#back-button>menupopup menuitem[checked="true"][type="checkbox"]>.menu-iconic-left, +#backForwardMenu menuitem[checked="true"][type="checkbox"]>.menu-iconic-left, +#contentAreaContextMenu menuitem[checked="true"][type="checkbox"]>.menu-iconic-left, +#customizationPaletteItemContextMenu menuitem[checked="true"][type="checkbox"]>.menu-iconic-left, +#customizationPanelItemContextMenu menuitem[checked="true"][type="checkbox"]>.menu-iconic-left, +#customization-toolbar-menu menuitem[checked="true"][type="checkbox"]>.menu-iconic-left, +#downloadsContextMenu menuitem[checked="true"][type="checkbox"]>.menu-iconic-left, +#forward-button menuitem[checked="true"][type="checkbox"]>.menu-iconic-left, +#forward-button>menupopup menuitem[checked="true"][type="checkbox"]>.menu-iconic-left, +#main-menubar menupopup menuitem[checked="true"][type="checkbox"]>.menu-iconic-left, +#new-tab-button-popup menuitem[checked="true"][type="checkbox"]>.menu-iconic-left, +#pageActionContextMenu menuitem[checked="true"][type="checkbox"]>.menu-iconic-left, +#PlacesChevronPopup menuitem[checked="true"][type="checkbox"]>.menu-iconic-left, +#placesContext menuitem[checked="true"][type="checkbox"]>.menu-iconic-left, +#PlacesToolbarItems .bookmark-item menupopup menuitem[checked="true"][type="checkbox"]>.menu-iconic-left, +.search-one-offs-context-menu menuitem[checked="true"][type="checkbox"]>.menu-iconic-left, +#SyncedTabsSidebarContext menuitem[checked="true"][type="checkbox"]>.menu-iconic-left, +#tabContextMenu menuitem[checked="true"][type="checkbox"]>.menu-iconic-left, +#tabs-newtab-button-popup menuitem[checked="true"][type="checkbox"]>.menu-iconic-left, +.textbox-contextmenu menuitem[checked="true"][type="checkbox"]>.menu-iconic-left, +#toolbar-context-menu menuitem[checked="true"][type="checkbox"]>.menu-iconic-left, +#toolbox-menu menuitem[checked="true"][type="checkbox"]>.menu-iconic-left, +.urlbar-input-box .textbox-contextmenu menuitem[checked="true"][type="checkbox"]>.menu-iconic-left, +#viewButton>menupopup menuitem[checked="true"][type="checkbox"]>.menu-iconic-left, +#widget-overflow>#customizationPanelItemContextMenu menuitem[checked="true"][type="checkbox"]>.menu-iconic-left { + -moz-appearance: none !important; + padding: 7px 0px 0px 0px !important; + margin-left: 7px !important; + margin-right: -7px !important; + border: solid rgba(var(--third-accent-color), 1) !important; + border-width: 0px 0px 2px 2px !important; + transform: rotate(-45deg) scale(.75); +} + +#back-button menuitem[type="radio"], +#back-button>menupopup menuitem[type="radio"], +#backForwardMenu menuitem[type="radio"], +#contentAreaContextMenu menuitem[type="radio"], +#customizationPaletteItemContextMenu menuitem[type="radio"], +#customizationPanelItemContextMenu menuitem[type="radio"], +#customization-toolbar-menu menuitem[type="radio"], +#downloadsContextMenu menuitem[type="radio"], +#forward-button menuitem[type="radio"], +#forward-button>menupopup menuitem[type="radio"], +#main-menubar menupopup menuitem[type="radio"], +#new-tab-button-popup menuitem[type="radio"], +#pageActionContextMenu menuitem[type="radio"], +#PlacesChevronPopup menuitem[type="radio"], +#placesContext menuitem[type="radio"], +#PlacesToolbarItems .bookmark-item menupopup menuitem[type="radio"], +.search-one-offs-context-menu menuitem[type="radio"], +#SyncedTabsSidebarContext menuitem[type="radio"], +#tabContextMenu menuitem[type="radio"], +#tabs-newtab-button-popup menuitem[type="radio"], +.textbox-contextmenu menuitem[type="radio"], +#toolbar-context-menu menuitem[type="radio"], +#toolbox-menu menuitem[type="radio"], +.urlbar-input-box .textbox-contextmenu menuitem[type="radio"], +#viewButton>menupopup menuitem[type="radio"], +#widget-overflow>#customizationPanelItemContextMenu menuitem[type="radio"] { + -moz-appearance: none !important; +} + +#back-button menuitem[checked="true"][type="radio"]>.menu-iconic-left, +#back-button>menupopup menuitem[checked="true"][type="radio"]>.menu-iconic-left, +#backForwardMenu menuitem[checked="true"][type="radio"]>.menu-iconic-left, +#contentAreaContextMenu menuitem[checked="true"][type="radio"]>.menu-iconic-left, +#customizationPaletteItemContextMenu menuitem[checked="true"][type="radio"]>.menu-iconic-left, +#customizationPanelItemContextMenu menuitem[checked="true"][type="radio"]>.menu-iconic-left, +#customization-toolbar-menu menuitem[checked="true"][type="radio"]>.menu-iconic-left, +#downloadsContextMenu menuitem[checked="true"][type="radio"]>.menu-iconic-left, +#forward-button menuitem[checked="true"][type="radio"]>.menu-iconic-left, +#forward-button>menupopup menuitem[checked="true"][type="radio"]>.menu-iconic-left, +#main-menubar menupopup menuitem[checked="true"][type="radio"]>.menu-iconic-left, +#new-tab-button-popup menuitem[checked="true"][type="radio"]>.menu-iconic-left, +#pageActionContextMenu menuitem[checked="true"][type="radio"]>.menu-iconic-left, +#PlacesChevronPopup menuitem[checked="true"][type="radio"]>.menu-iconic-left, +#placesContext menuitem[checked="true"][type="radio"]>.menu-iconic-left, +#PlacesToolbarItems .bookmark-item menupopup menuitem[checked="true"][type="radio"]>.menu-iconic-left, +.search-one-offs-context-menu menuitem[checked="true"][type="radio"]>.menu-iconic-left, +#SyncedTabsSidebarContext menuitem[checked="true"][type="radio"]>.menu-iconic-left, +#tabContextMenu menuitem[checked="true"][type="radio"]>.menu-iconic-left, +#tabs-newtab-button-popup menuitem[checked="true"][type="radio"]>.menu-iconic-left, +.textbox-contextmenu menuitem[checked="true"][type="radio"]>.menu-iconic-left, +#toolbar-context-menu menuitem[checked="true"][type="radio"]>.menu-iconic-left, +#toolbox-menu menuitem[checked="true"][type="radio"]>.menu-iconic-left, +.urlbar-input-box .textbox-contextmenu menuitem[checked="true"][type="radio"]>.menu-iconic-left, +#viewButton>menupopup menuitem[checked="true"][type="radio"]>.menu-iconic-left, +#widget-overflow>#customizationPanelItemContextMenu menuitem[checked="true"][type="radio"]>.menu-iconic-left { + -moz-appearance: none !important; + border: solid rgba(var(--third-accent-color), 1) !important; + height: 17px !important; + border-radius: 100% !important; + background: rgba(var(--third-accent-color), 1) !important; + margin-left: 7px !important; + margin-right: -7px !important; + margin-top: 1px !important; + padding: 1px !important; + transform: scale(0.5); +} + +#back-button menuitem[type="checkbox"]>.menu-iconic-text, +#back-button>menupopup menuitem[type="checkbox"]>.menu-iconic-text, +#backForwardMenu menuitem[type="checkbox"]>.menu-iconic-text, +#contentAreaContextMenu menuitem[type="checkbox"]>.menu-iconic-text, +#customizationPaletteItemContextMenu menuitem[type="checkbox"]>.menu-iconic-text, +#customizationPanelItemContextMenu menuitem[type="checkbox"]>.menu-iconic-text, +#customization-toolbar-menu menuitem[type="checkbox"]>.menu-iconic-text, +#downloadsContextMenu menuitem[type="checkbox"]>.menu-iconic-text, +#forward-button menuitem[type="checkbox"]>.menu-iconic-text, +#forward-button>menupopup menuitem[type="checkbox"]>.menu-iconic-text, +#main-menubar menupopup menuitem[type="checkbox"]>.menu-iconic-text, +#new-tab-button-popup menuitem[type="checkbox"]>.menu-iconic-text, +#pageActionContextMenu menuitem[type="checkbox"]>.menu-iconic-text, +#PlacesChevronPopup menuitem[type="checkbox"]>.menu-iconic-text, +#placesContext menuitem[type="checkbox"]>.menu-iconic-text, +#PlacesToolbarItems .bookmark-item menupopup menuitem[type="checkbox"]>.menu-iconic-text, +.search-one-offs-context-menu menuitem[type="checkbox"]>.menu-iconic-text, +#SyncedTabsSidebarContext menuitem[type="checkbox"]>.menu-iconic-text, +#tabContextMenu menuitem[type="checkbox"]>.menu-iconic-text, +#tabs-newtab-button-popup menuitem[type="checkbox"]>.menu-iconic-text, +.textbox-contextmenu menuitem[type="checkbox"]>.menu-iconic-text, +#toolbar-context-menu menuitem[type="checkbox"]>.menu-iconic-text, +#toolbox-menu menuitem[type="checkbox"]>.menu-iconic-text, +.urlbar-input-box .textbox-contextmenu menuitem[type="checkbox"]>.menu-iconic-text, +#viewButton>menupopup menuitem[type="checkbox"]>.menu-iconic-text, +#widget-overflow>#customizationPanelItemContextMenu menuitem[type="checkbox"]>.menu-iconic-text { + -moz-appearance: none !important; +} + +#back-button menuitem[checked="true"][type="checkbox"]>.menu-iconic-text, +#back-button>menupopup menuitem[checked="true"][type="checkbox"]>.menu-iconic-text, +#backForwardMenu menuitem[checked="true"][type="checkbox"]>.menu-iconic-text, +#contentAreaContextMenu menuitem[checked="true"][type="checkbox"]>.menu-iconic-text, +#customizationPaletteItemContextMenu menuitem[checked="true"][type="checkbox"]>.menu-iconic-text, +#customizationPanelItemContextMenu menuitem[checked="true"][type="checkbox"]>.menu-iconic-text, +#customization-toolbar-menu menuitem[checked="true"][type="checkbox"]>.menu-iconic-text, +#downloadsContextMenu menuitem[checked="true"][type="checkbox"]>.menu-iconic-text, +#forward-button menuitem[checked="true"][type="checkbox"]>.menu-iconic-text, +#forward-button>menupopup menuitem[checked="true"][type="checkbox"]>.menu-iconic-text, +#main-menubar menupopup menuitem[checked="true"][type="checkbox"]>.menu-iconic-text, +#new-tab-button-popup menuitem[checked="true"][type="checkbox"]>.menu-iconic-text, +#pageActionContextMenu menuitem[checked="true"][type="checkbox"]>.menu-iconic-text, +#PlacesChevronPopup menuitem[checked="true"][type="checkbox"]>.menu-iconic-text, +#placesContext menuitem[checked="true"][type="checkbox"]>.menu-iconic-text, +#PlacesToolbarItems .bookmark-item menupopup menuitem[checked="true"][type="checkbox"]>.menu-iconic-text, +.search-one-offs-context-menu menuitem[checked="true"][type="checkbox"]>.menu-iconic-text, +#SyncedTabsSidebarContext menuitem[checked="true"][type="checkbox"]>.menu-iconic-text, +#tabContextMenu menuitem[checked="true"][type="checkbox"]>.menu-iconic-text, +#tabs-newtab-button-popup menuitem[checked="true"][type="checkbox"]>.menu-iconic-text, +.textbox-contextmenu menuitem[checked="true"][type="checkbox"]>.menu-iconic-text, +#toolbar-context-menu menuitem[checked="true"][type="checkbox"]>.menu-iconic-text, +#toolbox-menu menuitem[checked="true"][type="checkbox"]>.menu-iconic-text, +.urlbar-input-box .textbox-contextmenu menuitem[checked="true"][type="checkbox"]>.menu-iconic-text, +#viewButton>menupopup menuitem[checked="true"][type="checkbox"]>.menu-iconic-text, +#widget-overflow>#customizationPanelItemContextMenu menuitem[checked="true"][type="checkbox"]>.menu-iconic-text { + padding-left: 13px !important; +} + +#back-button menuitem[type="radio"]>.menu-iconic-text, +#back-button>menupopup menuitem[type="radio"]>.menu-iconic-text, +#backForwardMenu menuitem[type="radio"]>.menu-iconic-text, +#contentAreaContextMenu menuitem[type="radio"]>.menu-iconic-text, +#customizationPaletteItemContextMenu menuitem[type="radio"]>.menu-iconic-text, +#customizationPanelItemContextMenu menuitem[type="radio"]>.menu-iconic-text, +#customization-toolbar-menu menuitem[type="radio"]>.menu-iconic-text, +#downloadsContextMenu menuitem[type="radio"]>.menu-iconic-text, +#forward-button menuitem[type="radio"]>.menu-iconic-text, +#forward-button>menupopup menuitem[type="radio"]>.menu-iconic-text, +#main-menubar menupopup menuitem[type="radio"]>.menu-iconic-text, +#new-tab-button-popup menuitem[type="radio"]>.menu-iconic-text, +#pageActionContextMenu menuitem[type="radio"]>.menu-iconic-text, +#PlacesChevronPopup menuitem[type="radio"]>.menu-iconic-text, +#placesContext menuitem[type="radio"]>.menu-iconic-text, +#PlacesToolbarItems .bookmark-item menupopup menuitem[type="radio"]>.menu-iconic-text, +.search-one-offs-context-menu menuitem[type="radio"]>.menu-iconic-text, +#SyncedTabsSidebarContext menuitem[type="radio"]>.menu-iconic-text, +#tabContextMenu menuitem[type="radio"]>.menu-iconic-text, +#tabs-newtab-button-popup menuitem[type="radio"]>.menu-iconic-text, +.textbox-contextmenu menuitem[type="radio"]>.menu-iconic-text, +#toolbar-context-menu menuitem[type="radio"]>.menu-iconic-text, +#toolbox-menu menuitem[type="radio"]>.menu-iconic-text, +.urlbar-input-box .textbox-contextmenu menuitem[type="radio"]>.menu-iconic-text, +#viewButton>menupopup menuitem[type="radio"]>.menu-iconic-text, +#widget-overflow>#customizationPanelItemContextMenu menuitem[type="radio"]>.menu-iconic-text { + padding-left: 13px !important; + -moz-appearance: none !important; +} \ No newline at end of file diff --git a/modules/home-manager/firefox/userContent.css b/modules/home-manager/firefox/userContent.css new file mode 100644 index 0000000..b6f5cb7 --- /dev/null +++ b/modules/home-manager/firefox/userContent.css @@ -0,0 +1,95 @@ +/*================ GLOBAL COLORS ================*/ +:root { + --accent-color: 38, 38, 38; + /* #262626 */ + --secondary-accent-color: 140, 140, 140; + /* #8c8c8c */ + --third-accent-color: 190, 190, 190; + /* #bebebe */ + --light-color: 255, 255, 255; + /* #ffffff */ + --dark-color: 15, 15, 15; + /* #0f0f0f */ + --caption-min-color: 82, 82, 82; + /* #525252 */ + --caption-max-color: 100, 100, 100; + /* #646464 */ + --caption-close-color: 126, 126, 126; + /* #7e7e7e */ +} + + +/*================ DARK MODE ================*/ +:root:-moz-lwtheme-brighttext, +.sidebar-panel[lwt-sidebar-brighttext], +body[lwt-sidebar-brighttext] { + --main-bgcolor: var(--dark-color); + --transparent-bgcolor: var(--accent-color); +} + + +/*================== NEW TAB BG COLOR ==================*/ +@media (prefers-color-scheme: dark) { + @-moz-document url("about:newtab"), url("about:home"), url("about:blank") { + body.activity-stream { + background-color: rgba(var(--dark-color), 1) !important; + } + } +} + +@media (prefers-color-scheme: light) { + @-moz-document url("about:newtab"), url("about:home"), url("about:blank") { + body.activity-stream { + background-color: rgba(var(--light-color), 1) !important; + } + } +} + +/*================== SEARCH BAR ==================*/ +#root .search-wrapper input { + transition: all 0.3s ease !important; + background: rgba(var(--accent-color), 0.2) var(--newtab-search-icon) 12px center no-repeat !important; + background-size: 20px !important; + border: 2px solid !important; + border-color: rgba(var(--accent-color), 0.3) !important; + box-shadow: none !important; +} + +#root .search-wrapper .search-inner-wrapper:hover input, +#root .search-wrapper .search-inner-wrapper:active input, +#root .search-wrapper input:focus { + border-color: rgba(var(--accent-color), 0.6) !important; +} + +#root .search-wrapper .search-button, +#root .search-wrapper .search-button { + transition: all 0.3s ease !important; +} + +#root .search-wrapper .search-button:focus, +#root .search-wrapper .search-button:hover { + background-color: rgba(var(--accent-color), 1) !important; +} + +/*================== SEARCH BAR RESULTS ==================*/ +.contentSearchSuggestionTable .contentSearchSuggestionsContainer, +.contentSearchSuggestionTable .contentSearchHeader { + background-color: rgba(var(--accent-color), 1) !important; +} + +.contentSearchSuggestionTable .contentSearchSuggestionRow.selected, +.contentSearchSuggestionTable .contentSearchOneOffItem.selected { + background-color: rgba(var(--secondary-accent-color), 0.2) !important; +} + +.contentSearchSuggestionTable .contentSearchHeader, +.contentSearchSuggestionTable .contentSearchSettingsButton, +.contentSearchSuggestionTable .contentSearchOneOffsTable { + border-color: rgba(var(--secondary-accent-color), 0.2) !important; +} + +.contentSearchSuggestionTable { + box-shadow: none !important; + border: 2px solid rgba(var(--secondary-accent-color), 0.2) !important; + border-radius: 3px !important; +} \ No newline at end of file diff --git a/modules/home-manager/git/default.nix b/modules/home-manager/git/default.nix new file mode 100755 index 0000000..a697a8b --- /dev/null +++ b/modules/home-manager/git/default.nix @@ -0,0 +1,16 @@ +{ ... }: { + programs.git = { + enable = true; + userName = "0xTux"; + userEmail = "0xtux@pm.me"; + signing = { + key = "~/.ssh/id_ed25519.pub"; + signByDefault = true; + }; + extraConfig = { + init.defaultBranch = "main"; + commit.gpgSign = true; + gpg.format = "ssh"; + }; + }; +} diff --git a/modules/home-manager/nvim/astronvim/lua/user/init.lua b/modules/home-manager/nvim/astronvim/lua/user/init.lua new file mode 100755 index 0000000..e76544b --- /dev/null +++ b/modules/home-manager/nvim/astronvim/lua/user/init.lua @@ -0,0 +1,197 @@ +local M = {} + +M.opt = { + guifont = "FiraCode Nerd Font:h8", + neovide_scale_factor = 0.6, +} + +M.colorscheme = "carbonfox" +M.icons = { + VimIcon = "", + ScrollText = "", + GitBranch = "", + GitAdd = "", + GitChange = "", + GitDelete = "", +} +M.heirline = { + separators = { + left = { "", " " }, + right = { " ", "" }, + tab = { "", "" }, + }, + colors = function(hl) + local get_hlgroup = require("astronvim.utils").get_hlgroup + local comment_fg = get_hlgroup("Comment").fg + hl.git_branch_fg = comment_fg + hl.git_added = comment_fg + hl.git_changed = comment_fg + hl.git_removed = comment_fg + hl.blank_bg = get_hlgroup("Folded").fg + hl.file_info_bg = get_hlgroup("Visual").bg + hl.nav_icon_bg = get_hlgroup("String").fg + hl.nav_fg = hl.nav_icon_bg + hl.folder_icon_bg = get_hlgroup("Error").fg + return hl + end, + attributes = { + mode = { bold = true }, + }, + icon_highlights = { + file_icon = { + statusline = false, + }, + }, +} +M.plugins = { + { + "goolord/alpha-nvim", + opts = function(_, opts) + opts.section.header.val = { + "██████████████████████████████████████████████████", + "█░░░░░░░░░░░░░░█░░░░░░██░░░░░░█░░░░░░░░██░░░░░░░░█", + "█░░▄▀▄▀▄▀▄▀▄▀░░█░░▄▀░░██░░▄▀░░█░░▄▀▄▀░░██░░▄▀▄▀░░█", + "█░░░░░░▄▀░░░░░░█░░▄▀░░██░░▄▀░░█░░░░▄▀░░██░░▄▀░░░░█", + "█████░░▄▀░░█████░░▄▀░░██░░▄▀░░███░░░░▄▀▄▀▄▀░░░░███", + "█████░░▄▀░░█████░░▄▀░░██░░▄▀░░█████░░▄▀▄▀▄▀░░█████", + "█████░░▄▀░░█████░░▄▀░░██░░▄▀░░███░░░░▄▀▄▀▄▀░░░░███", + "█████░░▄▀░░█████░░▄▀░░░░░░▄▀░░█░░░░▄▀░░██░░▄▀░░░░█", + "█████░░▄▀░░█████░░▄▀▄▀▄▀▄▀▄▀░░█░░▄▀▄▀░░██░░▄▀▄▀░░█", + "█████░░░░░░█████░░░░░░░░░░░░░░█░░░░░░░░██░░░░░░░░█", + "██████████████████████████████████████████████████", + } + end, + }, + { "wakatime/vim-wakatime" }, + { "eandrju/cellular-automaton.nvim", event = "VeryLazy" }, + "AstroNvim/astrocommunity", + { import = "astrocommunity.utility.noice-nvim" }, + { import = "astrocommunity.pack.json" }, + { import = "astrocommunity.pack.tailwindcss" }, + { import = "astrocommunity.pack.bash" }, + { import = "astrocommunity.pack.lua" }, + { import = "astrocommunity.pack.python" }, + { import = "astrocommunity.pack.go" }, + { import = "astrocommunity.pack.nix" }, + { import = "astrocommunity.pack.typescript" }, + { import = "astrocommunity.pack.prisma" }, + { import = "astrocommunity.colorscheme.nightfox-nvim" }, + { + "nightfox.nvim", + opts = { + options = { + -- transparent = function() + -- if vim.g.neovide then + -- return false + -- end + -- return true + -- end, + }, + }, + }, + { + "David-Kunz/gen.nvim", + config = function() + require("gen").setup({ + model = "zephyr", + display_mode = "float", + show_prompt = true, + show_model = true, + no_auto_close = false, + init = function() + pcall(io.popen, "ollama serve > /dev/null 2>&1 &") + end, + debug = false, + }) + end, + }, + { + "rebelot/heirline.nvim", + opts = function(_, opts) + local status = require("astronvim.utils.status") + opts.statusline = { + hl = { fg = "fg", bg = "bg" }, + status.component.mode({ + mode_text = { icon = { kind = "VimIcon", padding = { right = 1, left = 1 } } }, + surround = { + separator = "left", + color = function() + return { main = status.hl.mode_bg(), right = "blank_bg" } + end, + }, + }), + status.component.builder({ + { provider = "" }, + surround = { separator = "left", color = { main = "blank_bg", right = "file_info_bg" } }, + }), + status.component.file_info({ + file_icon = { padding = { left = 0 } }, + filename = { fallback = "Empty" }, + padding = { right = 1 }, + surround = { separator = "left", condition = false }, + }), + status.component.git_branch({ surround = { separator = "none" } }), + status.component.git_diff({ padding = { left = 1 }, surround = { separator = "none" } }), + status.component.fill(), + status.component.lsp({ lsp_client_names = false, surround = { separator = "none", color = "bg" } }), + status.component.fill(), + status.component.diagnostics({ surround = { separator = "right" } }), + status.component.lsp({ lsp_progress = false, surround = { separator = "right" } }), + { + status.component.builder({ + { provider = require("astronvim.utils").get_icon("FolderClosed") }, + padding = { right = 1 }, + hl = { fg = "bg" }, + surround = { separator = "right", color = "folder_icon_bg" }, + }), + status.component.file_info({ + filename = { + fname = function(nr) + return vim.fn.getcwd(nr) + end, + padding = { left = 1 }, + }, + file_icon = false, + file_modified = false, + file_read_only = false, + surround = { separator = "none", color = "file_info_bg", condition = false }, + }), + }, + { + status.component.builder({ + { provider = require("astronvim.utils").get_icon("ScrollText") }, + padding = { right = 1 }, + hl = { fg = "bg" }, + surround = { separator = "right", color = { main = "nav_icon_bg", left = "file_info_bg" } }, + }), + status.component.nav({ + percentage = { padding = { right = 1 } }, + ruler = false, + scrollbar = false, + surround = { separator = "none", color = "file_info_bg" }, + }), + }, + } + return opts + end, + }, +} +M.lsp = { + config = { + lua_ls = function() + return { + settings = { + Lua = { + diagnostics = { + globals = { + "vim", + "require", + }, + }, + }, + }, + } + end, + }, +} +return M diff --git a/modules/home-manager/nvim/astronvim/lua/user/mappings.lua b/modules/home-manager/nvim/astronvim/lua/user/mappings.lua new file mode 100644 index 0000000..eccd21a --- /dev/null +++ b/modules/home-manager/nvim/astronvim/lua/user/mappings.lua @@ -0,0 +1,18 @@ +return { + n = { + [""] = { + function() + vim.g.neovide_scale_factor = vim.g.neovide_scale_factor + 0.1 + end, + desc = "Zoom In (Neovide)", + }, + [""] = { + function() + vim.g.neovide_scale_factor = vim.g.neovide_scale_factor - 0.1 + end, + desc = "Zoom Out (Neovide)", + }, + ["ai"] = { ":Gen", desc = "Run Ollama" }, + ["fml"] = { ":CellularAutomaton make_it_rain", desc = "FML" }, + }, +} diff --git a/modules/home-manager/nvim/astronvim/lua/user/options.lua b/modules/home-manager/nvim/astronvim/lua/user/options.lua new file mode 100644 index 0000000..d45fe5b --- /dev/null +++ b/modules/home-manager/nvim/astronvim/lua/user/options.lua @@ -0,0 +1,8 @@ +return { + g = { + -- neovide_background_color = "#0f0f0f", + }, + opt = { + guifont = "FiraCode Nerd Font:h12", + }, +} diff --git a/modules/home-manager/nvim/default.nix b/modules/home-manager/nvim/default.nix new file mode 100755 index 0000000..9b6861b --- /dev/null +++ b/modules/home-manager/nvim/default.nix @@ -0,0 +1,68 @@ +{ inputs, pkgs, ... }: { + xdg.configFile = { + "nvim".source = inputs.astronvim; + "astronvim".source = ./astronvim; + }; + + programs = { + neovim = { + enable = true; + defaultEditor = true; + + viAlias = false; + vimAlias = true; + + withPython3 = true; + withNodeJs = true; + }; + }; + + home = { + packages = with pkgs; [ + gcc + neovide + #-- python + nodePackages.pyright # python language server + python311Packages.black # python formatter + + #-- nix + nil + rnix-lsp + statix # Lints and suggestions for the nix programming language + deadnix # Find and remove unused code in .nix source files + alejandra # Nix Code Formatter + + #-- golang + go + gomodifytags + iferr # generate error handling code for go + impl # generate function implementation for go + gotools # contains tools like: godoc, goimports, etc. + gopls # go language server + delve # go debugger + + #-- lua + stylua + lua-language-server + luarocks + + #-- bash + nodePackages.bash-language-server + shellcheck + shfmt + + #-- javascript/typescript --# + nodePackages.typescript + nodePackages.typescript-language-server + + #-- Misc + hadolint # Dockerfile linter + tree-sitter # common language parser/highlighter + nodePackages.prettier # common code formatter + + #-- Optional Requirements: + gdu # disk usage analyzer, required by AstroNvim + ripgrep # fast search tool, required by AstroNvim's 'fw'( is space key) + ]; + }; +} diff --git a/modules/home-manager/nvim/old/init.lua b/modules/home-manager/nvim/old/init.lua new file mode 100644 index 0000000..272e305 --- /dev/null +++ b/modules/home-manager/nvim/old/init.lua @@ -0,0 +1,22 @@ +require 'options' +require 'keymaps' + +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', -- latest stable release + lazypath, + } +end +vim.opt.rtp:prepend(lazypath) +require('lazy').setup { + import = 'plugins', + dev = { + path = '~/dev', + fallback = true, + }, +} diff --git a/modules/home-manager/nvim/old/lazy-lock.json b/modules/home-manager/nvim/old/lazy-lock.json new file mode 100644 index 0000000..f27dfe7 --- /dev/null +++ b/modules/home-manager/nvim/old/lazy-lock.json @@ -0,0 +1,38 @@ +{ + "Comment.nvim": { "branch": "master", "commit": "0236521ea582747b58869cb72f70ccfa967d2e89" }, + "alpha-nvim": { "branch": "main", "commit": "234822140b265ec4ba3203e3e0be0e0bb826dff5" }, + "barbecue.nvim": { "branch": "main", "commit": "d38a2a023dfb1073dd0e8fee0c9be08855d3688f" }, + "bufferline.nvim": { "branch": "main", "commit": "243893ba9d5d1049dd451a25cab32ec7f8f67bcf" }, + "dressing.nvim": { "branch": "master", "commit": "fe3071330a0720ce3695ac915820c8134b22d1b0" }, + "edgy.nvim": { "branch": "main", "commit": "8355be45610afdf79a0bab32b91ee297997455b4" }, + "editorconfig-vim": { "branch": "master", "commit": "0d54ea863089fb13be423b4aed6cca35f3a5d778" }, + "flash.nvim": { "branch": "main", "commit": "48817af25f51c0590653bbc290866e4890fe1cbe" }, + "gen.nvim": { "branch": "main", "commit": "049ec32f337fac6573221cde4f1dd88fa0b31390" }, + "gitsigns.nvim": { "branch": "main", "commit": "5fc573f2d2a49aec74dd6dc977e8b137429d1897" }, + "indent-blankline.nvim": { "branch": "master", "commit": "29be0919b91fb59eca9e90690d76014233392bef" }, + "lazy.nvim": { "branch": "main", "commit": "96584866b9c5e998cbae300594d0ccfd0c464627" }, + "lazygit.nvim": { "branch": "main", "commit": "de35012036d43bca03628d40d083f7c02a4cda3f" }, + "lualine.nvim": { "branch": "master", "commit": "2248ef254d0a1488a72041cfb45ca9caada6d994" }, + "markdown-preview.nvim": { "branch": "master", "commit": "a923f5fc5ba36a3b17e289dc35dc17f66d0548ee" }, + "modes.nvim": { "branch": "main", "commit": "5357fda0f4a21d73611496087a0d3b6d7b4f9384" }, + "neo-tree.nvim": { "branch": "main", "commit": "230ff118613fa07138ba579b89d13ec2201530b9" }, + "neorg": { "branch": "main", "commit": "3f531c362d07d52c4956520e3798e9cfb5aeabdf" }, + "nightfox.nvim": { "branch": "main", "commit": "eb82712f86319272f4b7b9dbb4ec6df650e6987f" }, + "noice.nvim": { "branch": "main", "commit": "92433164e2f7118d4122c7674c3834d9511722ba" }, + "nui.nvim": { "branch": "main", "commit": "c0c8e347ceac53030f5c1ece1c5a5b6a17a25b32" }, + "nvim-navic": { "branch": "master", "commit": "0ffa7ffe6588f3417e680439872f5049e38a24db" }, + "nvim-notify": { "branch": "master", "commit": "e4a2022f4fec2d5ebc79afa612f96d8b11c627b3" }, + "nvim-surround": { "branch": "main", "commit": "0855a89e00a5822c3a482a82e5223fcf2e9ede13" }, + "nvim-treesitter": { "branch": "master", "commit": "649d137371e9214d30b20565e0574824fa3a3670" }, + "nvim-web-devicons": { "branch": "master", "commit": "cdbcca210cf3655aa9b31ebf2422763ecd85ee5c" }, + "nvterm": { "branch": "main", "commit": "3e43be1d0ca60cc5e2dfc2d289b06577e7e57e98" }, + "plenary.nvim": { "branch": "master", "commit": "c47e1a21d235a422034012935febd2d078d77ac6" }, + "poimandres.nvim": { "branch": "main", "commit": "77635055e686ae3c8a519198006ff0b43b6b2eae" }, + "telescope-media-files.nvim": { "branch": "master", "commit": "0826c7a730bc4d36068f7c85cf4c5b3fd9fb570a" }, + "telescope.nvim": { "branch": "master", "commit": "7011eaae0ac1afe036e30c95cf80200b8dc3f21a" }, + "todo-comments.nvim": { "branch": "main", "commit": "4a6737a8d70fe1ac55c64dfa47fcb189ca431872" }, + "treesj": { "branch": "main", "commit": "1d6e89f4790aa04eaae38fa9460a3ee191961c96" }, + "ultimate-autopair.nvim": { "branch": "v0.6", "commit": "6fd0d6aa976a97dd6f1bed4d46be1b437613a52f" }, + "vim-wakatime": { "branch": "master", "commit": "87c6861ea81700ec4a6a27c81413cf07cb2c883c" }, + "which-key.nvim": { "branch": "main", "commit": "4433e5ec9a507e5097571ed55c02ea9658fb268a" } +} \ No newline at end of file diff --git a/modules/home-manager/nvim/old/llama.log b/modules/home-manager/nvim/old/llama.log new file mode 100644 index 0000000..d43263f --- /dev/null +++ b/modules/home-manager/nvim/old/llama.log @@ -0,0 +1,455 @@ +[1700985363] warming up the model with an empty run +[1700985363] Available slots: +[1700985363] -> Slot 0 - max context: 2048 +[1700985363] +llama server listening at http://127.0.0.1:61351 + +[1700985363] all slots are idle and system prompt is empty, clear the KV cache +[1700985366] slot 0 is processing [task id: 0] +[1700985366] slot 0 : kv cache rm - [0, end) +[1700985368] sampled token: 7638: 'Why' +[1700985368] sampled token: 949: ' don' +[1700985368] sampled token: 28742: ''' +[1700985368] sampled token: 28707: 't' +[1700985368] sampled token: 15067: ' scientists' +[1700985368] sampled token: 4893: ' trust' +[1700985368] sampled token: 24221: ' atoms' +[1700985369] sampled token: 28804: '?' +[1700985369] sampled token: 13: ' +' +[1700985369] sampled token: 17098: 'Because' +[1700985369] sampled token: 590: ' they' +[1700985369] sampled token: 1038: ' make' +[1700985369] sampled token: 582: ' up' +[1700985369] sampled token: 2905: ' everything' +[1700985369] sampled token: 28808: '!' +[1700985370] sampled token: 2: '' +[1700985370] +[1700985370] print_timings: prompt eval time = 1314.44 ms / 26 tokens ( 50.56 ms per token, 19.78 tokens per second) +[1700985370] print_timings: eval time = 1844.71 ms / 15 runs ( 122.98 ms per token, 8.13 tokens per second) +[1700985370] print_timings: total time = 3159.15 ms +[1700985370] slot 0 released (42 tokens in cache) +[1700985370] slot 0 released (42 tokens in cache) +[1700985383] slot 0 is processing [task id: 2] +[1700985383] slot 0 : kv cache rm - [0, end) +[1700985386] sampled token: 7638: 'Why' +[1700985386] sampled token: 863: ' did' +[1700985387] sampled token: 272: ' the' +[1700985387] sampled token: 752: ' sc' +[1700985387] sampled token: 492: 'are' +[1700985387] sampled token: 28717: 'c' +[1700985387] sampled token: 671: 'row' +[1700985387] sampled token: 3108: ' win' +[1700985387] sampled token: 396: ' an' +[1700985388] sampled token: 7619: ' award' +[1700985388] sampled token: 28804: '?' +[1700985388] sampled token: 13: ' +' +[1700985388] sampled token: 13: ' +' +[1700985388] sampled token: 17098: 'Because' +[1700985388] sampled token: 400: ' he' +[1700985388] sampled token: 403: ' was' +[1700985389] sampled token: 17329: ' outstanding' +[1700985389] sampled token: 297: ' in' +[1700985389] sampled token: 516: ' his' +[1700985389] sampled token: 1834: ' field' +[1700985389] sampled token: 28808: '!' +[1700985389] sampled token: 325: ' (' +[1700985390] sampled token: 28753: 'P' +[1700985390] sampled token: 370: 'un' +[1700985390] sampled token: 8926: ' intended' +[1700985390] sampled token: 28731: ')' +[1700985390] sampled token: 28705: ' ' +[1700985390] sampled token: 243: '' +[1700985390] sampled token: 162: '' +[1700985391] sampled token: 143: '' +[1700985391] sampled token: 193: '' +[1700985391] sampled token: 2: '' +[1700985391] +[1700985391] print_timings: prompt eval time = 2971.95 ms / 33 tokens ( 90.06 ms per token, 11.10 tokens per second) +[1700985391] print_timings: eval time = 4589.20 ms / 31 runs ( 148.04 ms per token, 6.75 tokens per second) +[1700985391] print_timings: total time = 7561.15 ms +[1700985391] slot 0 released (62 tokens in cache) +[1700985391] slot 0 released (62 tokens in cache) +[1700985439] slot 0 is processing [task id: 4] +[1700985439] slot 0 : kv cache rm - [0, end) +[1700985443] sampled token: 15423: 'Here' +[1700985443] sampled token: 28742: ''' +[1700985443] sampled token: 28713: 's' +[1700985443] sampled token: 396: ' an' +[1700985443] sampled token: 21733: ' enhanced' +[1700985443] sampled token: 2751: ' version' +[1700985444] sampled token: 302: ' of' +[1700985444] sampled token: 272: ' the' +[1700985444] sampled token: 2696: ' code' +[1700985444] sampled token: 369: ' that' +[1700985444] sampled token: 23468: ' formats' +[1700985444] sampled token: 272: ' the' +[1700985444] sampled token: 3825: ' output' +[1700985445] sampled token: 297: ' in' +[1700985445] sampled token: 393: ' L' +[1700985445] sampled token: 3772: 'ua' +[1700985445] sampled token: 25227: ' syntax' +[1700985445] sampled token: 28747: ':' +[1700985445] sampled token: 13: ' +' +[1700985445] sampled token: 13: ' +' +[1700985446] sampled token: 13940: '``' +[1700985446] sampled token: 28832: '`' +[1700985446] sampled token: 20487: 'lua' +[1700985446] sampled token: 13: ' +' +[1700985446] sampled token: 376: '--' +[1700985446] sampled token: 16693: ' Example' +[1700985446] sampled token: 11753: ' usage' +[1700985447] sampled token: 28747: ':' +[1700985447] sampled token: 17449: ' ./' +[1700985447] sampled token: 3220: 'run' +[1700985447] sampled token: 28723: '.' +[1700985447] sampled token: 811: 'sh' +[1700985447] sampled token: 28705: ' ' +[1700985447] sampled token: 28740: '1' +[1700985448] sampled token: 28734: '0' +[1700985448] sampled token: 28705: ' ' +[1700985448] sampled token: 28750: '2' +[1700985448] sampled token: 28734: '0' +[1700985448] sampled token: 13: ' +' +[1700985448] sampled token: 376: '--' +[1700985448] sampled token: 851: ' This' +[1700985449] sampled token: 6767: ' script' +[1700985449] sampled token: 4347: ' takes' +[1700985449] sampled token: 989: ' two' +[1700985449] sampled token: 6614: ' arguments' +[1700985449] sampled token: 14030: ' representing' +[1700985449] sampled token: 5551: ' numbers' +[1700985449] sampled token: 28725: ',' +[1700985449] sampled token: 304: ' and' +[1700985450] sampled token: 4900: ' calcul' +[1700985450] sampled token: 1002: 'ates' +[1700985450] sampled token: 652: ' their' +[1700985450] sampled token: 2648: ' sum' +[1700985450] sampled token: 304: ' and' +[1700985450] sampled token: 5133: ' difference' +[1700985450] sampled token: 13: ' +' +[1700985451] sampled token: 13: ' +' +[1700985451] sampled token: 3959: 'local' +[1700985451] sampled token: 1629: ' arg' +[1700985451] sampled token: 28740: '1' +[1700985451] sampled token: 327: ' =' +[1700985451] sampled token: 6339: ' ton' +[1700985451] sampled token: 1031: 'umber' +[1700985452] sampled token: 28732: '(' +[1700985452] sampled token: 926: 'arg' +[1700985452] sampled token: 28792: '[' +[1700985452] sampled token: 28740: '1' +[1700985452] sampled token: 2803: '])' +[1700985452] sampled token: 1939: ' --' +[1700985452] sampled token: 19468: ' Parse' +[1700985452] sampled token: 907: ' first' +[1700985453] sampled token: 5270: ' argument' +[1700985453] sampled token: 390: ' as' +[1700985453] sampled token: 264: ' a' +[1700985453] sampled token: 1474: ' number' +[1700985453] sampled token: 13: ' +' +[1700985453] sampled token: 3959: 'local' +[1700985453] sampled token: 1629: ' arg' +[1700985454] sampled token: 28750: '2' +[1700985454] sampled token: 327: ' =' +[1700985454] sampled token: 6339: ' ton' +[1700985454] sampled token: 1031: 'umber' +[1700985454] sampled token: 28732: '(' +[1700985454] sampled token: 926: 'arg' +[1700985454] sampled token: 28792: '[' +[1700985455] sampled token: 28750: '2' +[1700985455] sampled token: 2803: '])' +[1700985455] sampled token: 1939: ' --' +[1700985455] sampled token: 19468: ' Parse' +[1700985455] sampled token: 1676: ' second' +[1700985455] sampled token: 5270: ' argument' +[1700985455] sampled token: 390: ' as' +[1700985456] sampled token: 264: ' a' +[1700985456] sampled token: 1474: ' number' +[1700985456] sampled token: 13: ' +' +[1700985456] sampled token: 13: ' +' +[1700985456] sampled token: 335: 'if' +[1700985456] sampled token: 1629: ' arg' +[1700985456] sampled token: 28740: '1' +[1700985457] sampled token: 859: ' ==' +[1700985457] sampled token: 2346: ' nil' +[1700985457] sampled token: 442: ' or' +[1700985457] sampled token: 1629: ' arg' +[1700985457] sampled token: 28750: '2' +[1700985457] sampled token: 859: ' ==' +[1700985457] sampled token: 2346: ' nil' +[1700985457] sampled token: 868: ' then' +[1700985458] sampled token: 13: ' +' +[1700985458] sampled token: 28705: ' ' +[1700985458] sampled token: 2682: ' print' +[1700985458] sampled token: 618: '("' +[1700985458] sampled token: 16200: 'Usage' +[1700985458] sampled token: 28747: ':' +[1700985458] sampled token: 345: ' "' +[1700985459] sampled token: 8072: ' ..' +[1700985459] sampled token: 10852: ' Arg' +[1700985459] sampled token: 28728: 'v' +[1700985459] sampled token: 28792: '[' +[1700985459] sampled token: 28734: '0' +[1700985459] sampled token: 28793: ']' +[1700985459] sampled token: 8072: ' ..' +[1700985460] sampled token: 345: ' "' +[1700985460] sampled token: 733: ' [' +[1700985460] sampled token: 4810: 'number' +[1700985460] sampled token: 28793: ']' +[1700985460] sampled token: 733: ' [' +[1700985460] sampled token: 4810: 'number' +[1700985460] sampled token: 28793: ']' +[1700985461] sampled token: 1243: '")' +[1700985461] sampled token: 13: ' +' +[1700985461] sampled token: 28705: ' ' +[1700985461] sampled token: 3497: ' os' +[1700985461] sampled token: 28723: '.' +[1700985461] sampled token: 9427: 'exit' +[1700985461] sampled token: 470: '()' +[1700985461] sampled token: 13: ' +' +[1700985462] sampled token: 416: 'end' +[1700985462] sampled token: 13: ' +' +[1700985462] sampled token: 13: ' +' +[1700985462] sampled token: 376: '--' +[1700985462] sampled token: 2984: ' Cal' +[1700985462] sampled token: 16914: 'culate' +[1700985462] sampled token: 2648: ' sum' +[1700985463] sampled token: 304: ' and' +[1700985463] sampled token: 5133: ' difference' +[1700985463] sampled token: 302: ' of' +[1700985463] sampled token: 272: ' the' +[1700985463] sampled token: 6614: ' arguments' +[1700985463] sampled token: 13: ' +' +[1700985463] sampled token: 3959: 'local' +[1700985464] sampled token: 2648: ' sum' +[1700985464] sampled token: 327: ' =' +[1700985464] sampled token: 1629: ' arg' +[1700985464] sampled token: 28740: '1' +[1700985464] sampled token: 648: ' +' +[1700985464] sampled token: 1629: ' arg' +[1700985464] sampled token: 28750: '2' +[1700985464] sampled token: 13: ' +' +[1700985465] sampled token: 3959: 'local' +[1700985465] sampled token: 2800: ' diff' +[1700985465] sampled token: 327: ' =' +[1700985465] sampled token: 1629: ' arg' +[1700985465] sampled token: 28740: '1' +[1700985465] slot 0 released (214 tokens in cache) +[1700985523] slot 0 is processing [task id: 6] +[1700985523] slot 0 : kv cache rm - [0, end) +[1700985542] sampled token: 1551: 'To' +[1700985542] sampled token: 3825: ' output' +[1700985543] sampled token: 272: ' the' +[1700985543] sampled token: 1204: ' result' +[1700985543] sampled token: 297: ' in' +[1700985543] sampled token: 272: ' the' +[1700985543] sampled token: 6140: ' specified' +[1700985543] sampled token: 5032: ' format' +[1700985543] sampled token: 28725: ',' +[1700985543] sampled token: 368: ' you' +[1700985544] sampled token: 541: ' can' +[1700985544] sampled token: 9239: ' modify' +[1700985544] sampled token: 272: ' the' +[1700985544] sampled token: 2696: ' code' +[1700985544] sampled token: 390: ' as' +[1700985544] sampled token: 6104: ' follows' +[1700985544] sampled token: 28747: ':' +[1700985545] sampled token: 13: ' +' +[1700985545] sampled token: 13: ' +' +[1700985545] sampled token: 13940: '``' +[1700985545] sampled token: 28832: '`' +[1700985545] sampled token: 20487: 'lua' +[1700985545] sampled token: 13: ' +' +[1700985545] sampled token: 376: '--' +[1700985546] sampled token: 28808: '!' +[1700985546] sampled token: 28748: '/' +[1700985546] sampled token: 16785: 'usr' +[1700985546] sampled token: 28748: '/' +[1700985546] sampled token: 5721: 'bin' +[1700985546] sampled token: 28748: '/' +[1700985546] sampled token: 4227: 'env' +[1700985547] sampled token: 305: ' l' +[1700985547] sampled token: 3772: 'ua' +[1700985547] sampled token: 13: ' +' +[1700985547] sampled token: 376: '--' +[1700985547] sampled token: 7043: ' Start' +[1700985547] sampled token: 302: ' of' +[1700985547] sampled token: 2188: ' user' +[1700985548] sampled token: 7427: ' configuration' +[1700985548] sampled token: 13: ' +' +[1700985548] sampled token: 13: ' +' +[1700985548] sampled token: 376: '--' +[1700985548] sampled token: 11924: ' Load' +[1700985548] sampled token: 2877: ' options' +[1700985548] sampled token: 304: ' and' +[1700985548] sampled token: 945: ' ke' +[1700985549] sampled token: 1082: 'ym' +[1700985549] sampled token: 1882: 'aps' +[1700985549] sampled token: 13: ' +' +[1700985549] sampled token: 6351: 'require' +[1700985549] sampled token: 464: ' '' +[1700985549] sampled token: 3538: 'options' +[1700985549] sampled token: 28742: ''' +[1700985550] sampled token: 13: ' +' +[1700985550] sampled token: 6351: 'require' +[1700985550] sampled token: 464: ' '' +[1700985550] sampled token: 405: 'ke' +[1700985550] sampled token: 1082: 'ym' +[1700985550] sampled token: 1882: 'aps' +[1700985550] sampled token: 28742: ''' +[1700985551] sampled token: 13: ' +' +[1700985551] sampled token: 13: ' +' +[1700985551] sampled token: 376: '--' +[1700985551] sampled token: 3286: ' Set' +[1700985551] sampled token: 582: ' up' +[1700985551] sampled token: 17898: ' lazy' +[1700985551] sampled token: 28723: '.' +[1700985552] sampled token: 16885: 'nv' +[1700985552] sampled token: 321: 'im' +[1700985552] sampled token: 13: ' +' +[1700985552] sampled token: 3959: 'local' +[1700985552] sampled token: 543: ' la' +[1700985552] sampled token: 28764: 'z' +[1700985552] sampled token: 1416: 'yp' +[1700985553] sampled token: 498: 'ath' +[1700985553] sampled token: 327: ' =' +[1700985553] sampled token: 363: ' v' +[1700985553] sampled token: 321: 'im' +[1700985553] sampled token: 28723: '.' +[1700985553] sampled token: 5642: 'fn' +[1700985553] sampled token: 28723: '.' +[1700985554] sampled token: 3719: 'std' +[1700985554] sampled token: 1740: 'path' +[1700985554] sampled token: 464: ' '' +[1700985554] sampled token: 1056: 'data' +[1700985554] sampled token: 28742: ''' +[1700985554] sampled token: 8072: ' ..' +[1700985554] sampled token: 7377: ' '/' +[1700985555] sampled token: 28714: 'l' +[1700985555] sampled token: 13478: 'azy' +[1700985555] sampled token: 28748: '/' +[1700985555] sampled token: 28714: 'l' +[1700985555] sampled token: 13478: 'azy' +[1700985555] sampled token: 28723: '.' +[1700985555] sampled token: 16885: 'nv' +[1700985556] sampled token: 321: 'im' +[1700985556] sampled token: 28742: ''' +[1700985556] sampled token: 13: ' +' +[1700985556] sampled token: 335: 'if' +[1700985556] sampled token: 459: ' not' +[1700985556] sampled token: 363: ' v' +[1700985556] sampled token: 321: 'im' +[1700985557] sampled token: 28723: '.' +[1700985557] sampled token: 9374: 'loop' +[1700985557] sampled token: 28723: '.' +[1700985557] sampled token: 2547: 'fs' +[1700985557] sampled token: 28730: '_' +[1700985557] sampled token: 5975: 'stat' +[1700985557] sampled token: 28732: '(' +[1700985557] sampled token: 28714: 'l' +[1700985558] sampled token: 941: 'az' +[1700985558] sampled token: 1416: 'yp' +[1700985558] sampled token: 498: 'ath' +[1700985558] sampled token: 28731: ')' +[1700985558] sampled token: 868: ' then' +[1700985558] sampled token: 13: ' +' +[1700985558] sampled token: 259: ' ' +[1700985559] sampled token: 363: ' v' +[1700985559] sampled token: 321: 'im' +[1700985559] sampled token: 28723: '.' +[1700985559] sampled token: 5642: 'fn' +[1700985559] sampled token: 28723: '.' +[1700985559] sampled token: 6574: 'system' +[1700985559] sampled token: 371: ' {' +[1700985560] sampled token: 13: ' +' +[1700985560] sampled token: 355: ' ' +[1700985560] sampled token: 464: ' '' +[1700985560] sampled token: 12854: 'git' +[1700985560] sampled token: 647: '',' +[1700985560] sampled token: 13: ' +' +[1700985560] sampled token: 355: ' ' +[1700985561] sampled token: 464: ' '' +[1700985561] sampled token: 10519: 'clone' +[1700985561] sampled token: 647: '',' +[1700985561] sampled token: 13: ' +' +[1700985561] sampled token: 355: ' ' +[1700985561] sampled token: 464: ' '' +[1700985561] sampled token: 376: '--' +[1700985562] sampled token: 4650: 'filter' +[1700985562] sampled token: 28746: '=' +[1700985562] sampled token: 17678: 'blob' +[1700985562] sampled token: 28747: ':' +[1700985562] sampled token: 8607: 'none' +[1700985562] sampled token: 647: '',' +[1700985562] sampled token: 13: ' +' +[1700985562] sampled token: 355: ' ' +[1700985563] sampled token: 464: ' '' +[1700985563] sampled token: 3887: 'https' +[1700985563] sampled token: 1508: '://' +[1700985563] sampled token: 6222: 'github' +[1700985563] sampled token: 28723: '.' +[1700985563] sampled token: 675: 'com' +[1700985563] sampled token: 28748: '/' +[1700985564] sampled token: 5880: 'fol' +[1700985564] sampled token: 405: 'ke' +[1700985564] sampled token: 28748: '/' +[1700985564] sampled token: 28714: 'l' +[1700985564] sampled token: 13478: 'azy' +[1700985564] sampled token: 28723: '.' +[1700985564] sampled token: 16885: 'nv' +[1700985565] sampled token: 321: 'im' +[1700985565] sampled token: 28723: '.' +[1700985565] sampled token: 12854: 'git' +[1700985565] sampled token: 647: '',' +[1700985565] sampled token: 13: ' +' +[1700985565] sampled token: 355: ' ' +[1700985565] sampled token: 464: ' '' +[1700985566] sampled token: 376: '--' +[1700985566] sampled token: 19175: 'branch' +[1700985566] sampled token: 28746: '=' +[1700985566] sampled token: 17588: 'stable' +[1700985566] sampled token: 647: '',' +[1700985566] sampled token: 1939: ' --' +[1700985566] sampled token: 7345: ' latest' +[1700985567] sampled token: 11311: ' stable' +[1700985567] sampled token: 5614: ' release' +[1700985567] sampled token: 13: ' +' +[1700985567] slot 0 released (416 tokens in cache) diff --git a/modules/home-manager/nvim/old/lua/keymaps.lua b/modules/home-manager/nvim/old/lua/keymaps.lua new file mode 100644 index 0000000..ee32d00 --- /dev/null +++ b/modules/home-manager/nvim/old/lua/keymaps.lua @@ -0,0 +1,32 @@ +local keymap = vim.keymap +local opts = { noremap = true, silent = true } + +local function defaultOpts(desc) + if desc == nil then + return { noremap = true, silent = true } + else + return { noremap = true, silent = true, desc = desc } + end +end + +-- Buffer Navigation +keymap.set("n", "bn", "bnext", defaultOpts("Next Buffer")) +keymap.set("n", "bp", "bprevious", defaultOpts("Prev Buffer")) +keymap.set("n", "bb", "e #", defaultOpts("Switch Buffer")) + +-- Directory Navigation +keymap.set("n", "of", ":Neotree toggle", defaultOpts("Neotree")) + +-- Pane and Window Navigation +keymap.set("n", "", "h", defaultOpts("Navigate Left")) +keymap.set("n", "", "j", defaultOpts("Navigate Down")) +keymap.set("n", "", "k", defaultOpts("Navigate Up")) +keymap.set("n", "", "l", defaultOpts("Navigate Right")) + +-- Window Management +keymap.set("n", "sv", ":vsplit", defaultOpts("Split Vertically")) +keymap.set("n", "sh", ":split", defaultOpts("Split Horizontally")) + +-- Comments +vim.api.nvim_set_keymap("n", "", "gcc", { noremap = false }) +vim.api.nvim_set_keymap("v", "", "gcc", { noremap = false }) diff --git a/modules/home-manager/nvim/old/lua/options.lua b/modules/home-manager/nvim/old/lua/options.lua new file mode 100644 index 0000000..f47410f --- /dev/null +++ b/modules/home-manager/nvim/old/lua/options.lua @@ -0,0 +1,39 @@ +-- Global +vim.g.mapleader = ' ' +vim.g.maplocalleader = ' ' +vim.g.loaded_netrw = 1 +vim.g.loaded_netrwPlugin = 1 + +-- Settings +vim.opt.nu = true +vim.opt.tabstop = 4 +vim.opt.softtabstop = 4 +vim.opt.shiftwidth = 4 +vim.opt.expandtab = true +vim.opt.smartindent = true +vim.opt.wrap = false +vim.opt.swapfile = false +vim.opt.backup = false +vim.opt.undodir = os.getenv 'HOME' .. '/.vim/undodir' +vim.opt.undofile = true +vim.opt.hlsearch = false +vim.opt.incsearch = true +vim.opt.smartcase = true +vim.opt.termguicolors = true +vim.opt.scrolloff = 8 +vim.opt.signcolumn = 'yes' +vim.opt.isfname:append '@-@' +vim.opt.updatetime = 50 +vim.opt.clipboard = 'unnamedplus' +vim.opt.spelllang = 'en_us' +vim.opt.spell = true +vim.opt.laststatus = 3 +vim.opt.mouse:append("a") +vim.opt.number = true +vim.opt.relativenumber = true + +-- Neovide +if vim.g.neovide then + vim.o.guifont = 'JetBrains Mono Nerd Font:h14' + vim.g.neovide_cursor_vfx_mode = 'railgun' +end diff --git a/modules/home-manager/nvim/old/lua/plugins/alpha.lua b/modules/home-manager/nvim/old/lua/plugins/alpha.lua new file mode 100644 index 0000000..0c7f793 --- /dev/null +++ b/modules/home-manager/nvim/old/lua/plugins/alpha.lua @@ -0,0 +1,40 @@ +-- return { +-- 'goolord/alpha-nvim', +-- dependencies = { 'nvim-tree/nvim-web-devicons' }, +-- config = function() +-- require 'alpha'.setup(require 'alpha.themes.startify'.config) +-- end +-- } + +return { + 'goolord/alpha-nvim', + event = 'VimEnter', + config = function() + local dashboard = require 'alpha.themes.dashboard' + dashboard.section.header.val = { + "██████████████████████████████████████████████████", + "█░░░░░░░░░░░░░░█░░░░░░██░░░░░░█░░░░░░░░██░░░░░░░░█", + "█░░▄▀▄▀▄▀▄▀▄▀░░█░░▄▀░░██░░▄▀░░█░░▄▀▄▀░░██░░▄▀▄▀░░█", + "█░░░░░░▄▀░░░░░░█░░▄▀░░██░░▄▀░░█░░░░▄▀░░██░░▄▀░░░░█", + "█████░░▄▀░░█████░░▄▀░░██░░▄▀░░███░░░░▄▀▄▀▄▀░░░░███", + "█████░░▄▀░░█████░░▄▀░░██░░▄▀░░█████░░▄▀▄▀▄▀░░█████", + "█████░░▄▀░░█████░░▄▀░░██░░▄▀░░███░░░░▄▀▄▀▄▀░░░░███", + "█████░░▄▀░░█████░░▄▀░░░░░░▄▀░░█░░░░▄▀░░██░░▄▀░░░░█", + "█████░░▄▀░░█████░░▄▀▄▀▄▀▄▀▄▀░░█░░▄▀▄▀░░██░░▄▀▄▀░░█", + "█████░░░░░░█████░░░░░░░░░░░░░░█░░░░░░░░██░░░░░░░░█", + "██████████████████████████████████████████████████", + } + dashboard.section.header.opts = { + position = 'center', + hl = 'Comment', + } + + require('alpha').setup(require('alpha.themes.dashboard').config) + dashboard.section.buttons.val = { + dashboard.button('SPC f f', ' Find File', 'Telescope find_files'), + dashboard.button('SPC f r', ' Recent Files', 'Telescope oldfiles'), + dashboard.button('SPC f t', ' Find in Files', 'Telescope live_grep'), + } + end, + dependencies = { 'nvim-tree/nvim-web-devicons' }, +} diff --git a/modules/home-manager/nvim/old/lua/plugins/autopair.lua b/modules/home-manager/nvim/old/lua/plugins/autopair.lua new file mode 100644 index 0000000..e62f53b --- /dev/null +++ b/modules/home-manager/nvim/old/lua/plugins/autopair.lua @@ -0,0 +1,4 @@ +return { + 'altermo/ultimate-autopair.nvim', + config = true, +} diff --git a/modules/home-manager/nvim/old/lua/plugins/barbecue.lua b/modules/home-manager/nvim/old/lua/plugins/barbecue.lua new file mode 100644 index 0000000..5ed1737 --- /dev/null +++ b/modules/home-manager/nvim/old/lua/plugins/barbecue.lua @@ -0,0 +1,11 @@ +return { + 'utilyre/barbecue.nvim', + dependencies = { + 'SmiteshP/nvim-navic', + 'nvim-tree/nvim-web-devicons', -- optional dependency + }, + config = function() + require('barbecue').setup {} + require('barbecue.ui').toggle(true) + end, +} diff --git a/modules/home-manager/nvim/old/lua/plugins/blankline.lua b/modules/home-manager/nvim/old/lua/plugins/blankline.lua new file mode 100644 index 0000000..b42aac5 --- /dev/null +++ b/modules/home-manager/nvim/old/lua/plugins/blankline.lua @@ -0,0 +1,5 @@ +return { + 'lukas-reineke/indent-blankline.nvim', + main = 'ibl', + config = true, +} diff --git a/modules/home-manager/nvim/old/lua/plugins/bufferline.lua b/modules/home-manager/nvim/old/lua/plugins/bufferline.lua new file mode 100644 index 0000000..cd6ec17 --- /dev/null +++ b/modules/home-manager/nvim/old/lua/plugins/bufferline.lua @@ -0,0 +1,17 @@ +return { + 'akinsho/bufferline.nvim', + version = 'v3.*', + dependencies = 'nvim-tree/nvim-web-devicons', + config = { + options = { + offsets = { + { + filetype = 'neo-tree', + text = 'NeoTree', + text_align = 'left', + separator = true, + }, + }, + }, + }, +} diff --git a/modules/home-manager/nvim/old/lua/plugins/colorscheme.lua b/modules/home-manager/nvim/old/lua/plugins/colorscheme.lua new file mode 100644 index 0000000..359c5ac --- /dev/null +++ b/modules/home-manager/nvim/old/lua/plugins/colorscheme.lua @@ -0,0 +1,25 @@ +return { + { + "EdenEast/nightfox.nvim", + lazy = false, + priority = 1000, + config = function() + require('nightfox').setup { + options = { + transparent = true, + } + } + vim.cmd.colorscheme "carbonfox" + end, + }, + { + 'olivercederborg/poimandres.nvim', + lazy = false, + priority = 1000, + config = function() + require('poimandres').setup { + disable_background = true, + } + end, + } +} diff --git a/modules/home-manager/nvim/old/lua/plugins/comment.lua b/modules/home-manager/nvim/old/lua/plugins/comment.lua new file mode 100644 index 0000000..ae76ae9 --- /dev/null +++ b/modules/home-manager/nvim/old/lua/plugins/comment.lua @@ -0,0 +1,50 @@ +return { + 'numToStr/Comment.nvim', + config = function() + local comment = require 'Comment' + + comment.setup { + ---Add a space b/w comment and the line + padding = true, + ---Whether the cursor should stay at its position + sticky = true, + ---Lines to be ignored while (un)comment + ignore = nil, + ---LHS of toggle mappings in NORMAL mode + toggler = { + ---Line-comment toggle keymap + line = 'gcc', + ---Block-comment toggle keymap + block = 'gbc', + }, + ---LHS of operator-pending mappings in NORMAL and VISUAL mode + opleader = { + ---Line-comment keymap + line = 'gc', + ---Block-comment keymap + block = 'gb', + }, + ---LHS of extra mappings + extra = { + ---Add comment on the line above + above = 'gcO', + ---Add comment on the line below + below = 'gco', + ---Add comment at the end of line + eol = 'gcA', + }, + ---Enable keybindings + ---NOTE: If given `false` then the plugin won't create any mappings + mappings = { + ---Operator-pending mapping; `gcc` `gbc` `gc[count]{motion}` `gb[count]{motion}` + basic = true, + ---Extra mapping; `gco`, `gcO`, `gcA` + extra = true, + }, + ---Function to call before (un)comment + pre_hook = nil, + ---Function to call after (un)comment + post_hook = nil, + } + end, +} diff --git a/modules/home-manager/nvim/old/lua/plugins/dressing.lua b/modules/home-manager/nvim/old/lua/plugins/dressing.lua new file mode 100644 index 0000000..d4810ee --- /dev/null +++ b/modules/home-manager/nvim/old/lua/plugins/dressing.lua @@ -0,0 +1,4 @@ +return { + 'stevearc/dressing.nvim', + event = 'VeryLazy', +} diff --git a/modules/home-manager/nvim/old/lua/plugins/edgy.lua b/modules/home-manager/nvim/old/lua/plugins/edgy.lua new file mode 100644 index 0000000..4be96c3 --- /dev/null +++ b/modules/home-manager/nvim/old/lua/plugins/edgy.lua @@ -0,0 +1,5 @@ +return { + 'folke/edgy.nvim', + event = 'VeryLazy', + opts = {}, +} diff --git a/modules/home-manager/nvim/old/lua/plugins/editorconfig.lua b/modules/home-manager/nvim/old/lua/plugins/editorconfig.lua new file mode 100644 index 0000000..6f42f33 --- /dev/null +++ b/modules/home-manager/nvim/old/lua/plugins/editorconfig.lua @@ -0,0 +1,3 @@ +return { + 'editorconfig/editorconfig-vim', +} diff --git a/modules/home-manager/nvim/old/lua/plugins/flash.lua b/modules/home-manager/nvim/old/lua/plugins/flash.lua new file mode 100644 index 0000000..1755d3e --- /dev/null +++ b/modules/home-manager/nvim/old/lua/plugins/flash.lua @@ -0,0 +1,38 @@ +return { + 'folke/flash.nvim', + event = 'VeryLazy', + ---@type Flash.Config + opts = {}, + -- stylua: ignore + keys = { + { "s", mode = { "n", "o", "x" }, function() require("flash").jump() end, desc = "Flash" }, + { + "S", + mode = { "n", "o", "x" }, + function() require("flash").treesitter() end, + desc = + "Flash Treesitter" + }, + { + "r", + mode = "o", + function() require("flash").remote() end, + desc = + "Remote Flash" + }, + { + "R", + mode = { "o", "x" }, + function() require("flash").treesitter_search() end, + desc = + "Treesitter Search" + }, + { + "", + mode = { "c" }, + function() require("flash").toggle() end, + desc = + "Toggle Flash Search" + }, + }, +} diff --git a/modules/home-manager/nvim/old/lua/plugins/gen.lua b/modules/home-manager/nvim/old/lua/plugins/gen.lua new file mode 100644 index 0000000..793863b --- /dev/null +++ b/modules/home-manager/nvim/old/lua/plugins/gen.lua @@ -0,0 +1,16 @@ +return { + 'David-Kunz/gen.nvim', + config = function() + vim.keymap.set('v', 'ai', ':Gen') + vim.keymap.set('n', 'ai', ':Gen') + require('gen').setup({ + model = "zephyr", + display_mode = "float", + show_prompt = true, + show_model = true, + no_auto_close = false, + init = function(options) pcall(io.popen, "ollama serve > /dev/null 2>&1 &") end, + debug = false + }) + end, +} diff --git a/modules/home-manager/nvim/old/lua/plugins/gitsigns.lua b/modules/home-manager/nvim/old/lua/plugins/gitsigns.lua new file mode 100644 index 0000000..674157b --- /dev/null +++ b/modules/home-manager/nvim/old/lua/plugins/gitsigns.lua @@ -0,0 +1,6 @@ +return { + 'lewis6991/gitsigns.nvim', + config = { + current_line_blame = true, + }, +} diff --git a/modules/home-manager/nvim/old/lua/plugins/lazygit.lua b/modules/home-manager/nvim/old/lua/plugins/lazygit.lua new file mode 100644 index 0000000..8e6f3ba --- /dev/null +++ b/modules/home-manager/nvim/old/lua/plugins/lazygit.lua @@ -0,0 +1,6 @@ +return { + 'kdheepak/lazygit.nvim', + keys = { + { 'gg', 'LazyGit', desc = 'Git' }, + }, +} diff --git a/modules/home-manager/nvim/old/lua/plugins/lualine.lua b/modules/home-manager/nvim/old/lua/plugins/lualine.lua new file mode 100644 index 0000000..291a7be --- /dev/null +++ b/modules/home-manager/nvim/old/lua/plugins/lualine.lua @@ -0,0 +1,14 @@ +return { + "nvim-lualine/lualine.nvim", + lazy = false, + config = function() + local theme = require("lualine.themes.carbonfox") + + require("lualine").setup({ + options = { + theme = theme, + globalstatus = true, + }, + }) + end +} diff --git a/modules/home-manager/nvim/old/lua/plugins/markdownpreview.lua b/modules/home-manager/nvim/old/lua/plugins/markdownpreview.lua new file mode 100644 index 0000000..e413e31 --- /dev/null +++ b/modules/home-manager/nvim/old/lua/plugins/markdownpreview.lua @@ -0,0 +1,8 @@ +return { + 'iamcco/markdown-preview.nvim', + cmd = { 'MarkdownPreviewToggle', 'MarkdownPreview', 'MarkdownPreviewStop' }, + ft = { 'markdown' }, + build = function() + vim.fn['mkdp#util#install']() + end, +} diff --git a/modules/home-manager/nvim/old/lua/plugins/modes.lua b/modules/home-manager/nvim/old/lua/plugins/modes.lua new file mode 100644 index 0000000..e1eac19 --- /dev/null +++ b/modules/home-manager/nvim/old/lua/plugins/modes.lua @@ -0,0 +1,31 @@ +return { + 'mvllow/modes.nvim', + -- config = function() + -- local colors = require('catppuccin.palettes').get_palette() + -- require('modes').setup { + -- colors = { + -- copy = colors.peach, + -- delete = colors.red, + -- insert = colors.blue, + -- visual = colors.lavender, + -- }, + + -- -- Set opacity for cursorline and number background + -- line_opacity = 0.15, + + -- -- Enable cursor highlights + -- set_cursor = true, + + -- -- Enable cursorline initially, and disable cursorline for inactive windows + -- -- or ignored filetypes + -- set_cursorline = true, + + -- -- Enable line number highlights to match cursorline + -- set_number = true, + + -- -- Disable modes highlights in specified filetypes + -- -- Please PR commonly ignored filetypes + -- ignore_filetypes = { 'NvimTree', 'TelescopePrompt' }, + -- } + -- end, +} diff --git a/modules/home-manager/nvim/old/lua/plugins/neorg.lua b/modules/home-manager/nvim/old/lua/plugins/neorg.lua new file mode 100644 index 0000000..aa5508d --- /dev/null +++ b/modules/home-manager/nvim/old/lua/plugins/neorg.lua @@ -0,0 +1,21 @@ +return { + "nvim-neorg/neorg", + build = ":Neorg sync-parsers", + dependencies = { "nvim-lua/plenary.nvim" }, + config = function() + require("neorg").setup { + load = { + ["core.defaults"] = {}, + ["core.concealer"] = {}, + ["core.dirman"] = { + config = { + workspaces = { + snippets = string.format("%s/Projects/notes/snippets", os.getenv("HOME")) + }, + default_workspace = "snippets", + }, + } + }, + } + end, +} diff --git a/modules/home-manager/nvim/old/lua/plugins/neotree.lua b/modules/home-manager/nvim/old/lua/plugins/neotree.lua new file mode 100644 index 0000000..6181129 --- /dev/null +++ b/modules/home-manager/nvim/old/lua/plugins/neotree.lua @@ -0,0 +1,35 @@ +return { + 'nvim-neo-tree/neo-tree.nvim', + lazy = false, + cmd = 'Neotree', + branch = 'v3.x', + + dependencies = { + 'nvim-lua/plenary.nvim', + 'nvim-tree/nvim-web-devicons', + 'MunifTanjim/nui.nvim', + }, + config = { + filesystem = { + follow_current_file = { enabled = true }, + hijack_netrw_behavior = 'open_default', + filtered_items = { visible = true }, + use_libuv_file_watcher = true, + }, + git_status = { + symbols = { + -- Change type + added = '✚', -- or "✚", but this is redundant info if you use git_status_colors on the name + modified = '', -- or "", but this is redundant info if you use git_status_colors on the name + deleted = '✖', -- this can only be used in the git_status source + renamed = '󰁕', -- this can only be used in the git_status source + -- Status type + untracked = '', + ignored = '', + unstaged = '󰄱', + staged = '', + conflict = '', + }, + }, + }, +} diff --git a/modules/home-manager/nvim/old/lua/plugins/noice.lua b/modules/home-manager/nvim/old/lua/plugins/noice.lua new file mode 100644 index 0000000..5aad4ee --- /dev/null +++ b/modules/home-manager/nvim/old/lua/plugins/noice.lua @@ -0,0 +1,27 @@ +return { + 'folke/noice.nvim', + lazy = false, + dependencies = { + 'MunifTanjim/nui.nvim', + 'rcarriga/nvim-notify', + }, + config = { + lsp = { + override = { + ['vim.lsp.util.convert_input_to_markdown_lines'] = true, + ['vim.lsp.util.stylize_markdown'] = true, + ['cmp.entry.get_documentation'] = true, + }, + }, + presets = { + -- bottom_search = true, -- use a classic bottom cmdline for search + -- command_palette = true, -- position the cmdline and popupmenu together + long_message_to_split = true, -- long messages will be sent to a split + inc_rename = false, -- enables an input dialog for inc-rename.nvim + lsp_doc_border = false, -- add a border to hover docs and signature help + }, + -- cmdline = { + -- view = 'cmdline', + -- }, + }, +} diff --git a/modules/home-manager/nvim/old/lua/plugins/nvterm.lua b/modules/home-manager/nvim/old/lua/plugins/nvterm.lua new file mode 100644 index 0000000..37ed95f --- /dev/null +++ b/modules/home-manager/nvim/old/lua/plugins/nvterm.lua @@ -0,0 +1,11 @@ +return { + 'NvChad/nvterm', + keys = { + { 'ot', 'lua require("nvterm.terminal").toggle "horizontal"', desc = 'Toggle Terminal' }, + }, + config = function() + require('nvterm').setup {} + + vim.cmd [[ tnoremap ]] + end, +} diff --git a/modules/home-manager/nvim/old/lua/plugins/surround.lua b/modules/home-manager/nvim/old/lua/plugins/surround.lua new file mode 100644 index 0000000..1bfcdc6 --- /dev/null +++ b/modules/home-manager/nvim/old/lua/plugins/surround.lua @@ -0,0 +1,4 @@ +return { + 'kylechui/nvim-surround', + config = true, +} diff --git a/modules/home-manager/nvim/old/lua/plugins/telescope.lua b/modules/home-manager/nvim/old/lua/plugins/telescope.lua new file mode 100644 index 0000000..a724914 --- /dev/null +++ b/modules/home-manager/nvim/old/lua/plugins/telescope.lua @@ -0,0 +1,20 @@ +return { + { + 'nvim-telescope/telescope.nvim', + tag = '0.1.3', + lazy = true, + keys = { + { 'ff', 'Telescope find_files', desc = 'Find Files' }, + { 'ft', 'Telescope live_grep', desc = 'Search Text in Files' }, + { 'fb', 'Telescope buffers', desc = 'List Buffers' }, + { '', 'Telescope commands', desc = 'Run Command' }, + }, + dependencies = { 'nvim-lua/plenary.nvim' }, + }, + { + 'nvim-telescope/telescope-media-files.nvim', + config = function() + require('telescope').load_extension 'media_files' + end, + }, +} diff --git a/modules/home-manager/nvim/old/lua/plugins/todo-comments.lua b/modules/home-manager/nvim/old/lua/plugins/todo-comments.lua new file mode 100644 index 0000000..98c7aea --- /dev/null +++ b/modules/home-manager/nvim/old/lua/plugins/todo-comments.lua @@ -0,0 +1,5 @@ +return { + 'folke/todo-comments.nvim', + dependencies = { 'nvim-lua/plenary.nvim' }, + config = true, +} diff --git a/modules/home-manager/nvim/old/lua/plugins/treesitter.lua b/modules/home-manager/nvim/old/lua/plugins/treesitter.lua new file mode 100644 index 0000000..fa99351 --- /dev/null +++ b/modules/home-manager/nvim/old/lua/plugins/treesitter.lua @@ -0,0 +1,17 @@ +return { + 'nvim-treesitter/nvim-treesitter', + build = ':TSUpdate', + config = function() + require('nvim-treesitter.configs').setup { + ensure_installed = { 'lua', 'nix' }, + + sync_install = false, + auto_install = true, + + highlight = { + enable = true, + additional_vim_regex_highlighting = false, + }, + } + end, +} diff --git a/modules/home-manager/nvim/old/lua/plugins/treesj.lua b/modules/home-manager/nvim/old/lua/plugins/treesj.lua new file mode 100644 index 0000000..eb799b2 --- /dev/null +++ b/modules/home-manager/nvim/old/lua/plugins/treesj.lua @@ -0,0 +1,8 @@ +return { + 'Wansmer/treesj', + keys = { 'm' }, + dependencies = { 'nvim-treesitter/nvim-treesitter' }, + config = function() + require('treesj').setup {} + end, +} diff --git a/modules/home-manager/nvim/old/lua/plugins/wakatime.lua b/modules/home-manager/nvim/old/lua/plugins/wakatime.lua new file mode 100644 index 0000000..db74f08 --- /dev/null +++ b/modules/home-manager/nvim/old/lua/plugins/wakatime.lua @@ -0,0 +1 @@ +return { 'wakatime/vim-wakatime' } diff --git a/modules/home-manager/nvim/old/lua/plugins/whichkey.lua b/modules/home-manager/nvim/old/lua/plugins/whichkey.lua new file mode 100644 index 0000000..467a7bf --- /dev/null +++ b/modules/home-manager/nvim/old/lua/plugins/whichkey.lua @@ -0,0 +1,8 @@ +return { + 'folke/which-key.nvim', + config = function() + vim.o.timeout = true + vim.o.timeoutlen = 300 + require('which-key').setup {} + end, +} diff --git a/modules/home-manager/picom/default.nix b/modules/home-manager/picom/default.nix new file mode 100644 index 0000000..2250129 --- /dev/null +++ b/modules/home-manager/picom/default.nix @@ -0,0 +1,42 @@ +{ config, pkgs, ... }: { + services.picom = { + enable = false; + extraArgs = [ "--animations" ]; + + fade = true; + fadeDelta = 5; + fadeSteps = [ 0.05 0.05 ]; + fadeExclude = [ + "window_type *= 'menu'" + ]; + + settings = { + backend = "glx"; + use-damage = false; + + corner-radius = 12; + + animation-stiffness = 300; + animation-window-mass = 1.3; + animation-dampening = 35; + animation-clamping = true; + + animation-for-open-window = "zoom"; + animation-for-menu-window = "slide-down"; + animation-for-transient-window = "slide-down"; + animation-for-prev-tag = "zoom"; + enable-fading-prev-tag = true; + animation-for-next-tag = "zoom"; + enable-fading-next-tag = true; + + shadow = true; + shadow-radius = 20; + shadow-offset-x = -20; + shadow-offset-y = -18; + + no-fading-openclose = false; + + vsync = false; + }; + }; +} diff --git a/modules/home-manager/shell/default.nix b/modules/home-manager/shell/default.nix new file mode 100755 index 0000000..d4c0c7f --- /dev/null +++ b/modules/home-manager/shell/default.nix @@ -0,0 +1,65 @@ +{ pkgs, ... }: { + programs = { + bat.enable = true; + zsh = { + enable = true; + shellAliases = { + ls = "lsd"; + }; + syntaxHighlighting.enable = true; + enableAutosuggestions = true; + initExtra = '' + eval "$(starship init zsh)" + nitch + export WINIT_X11_SCALE_FACTOR=1 + ''; + }; + lazygit.enable = true; + zoxide.enable = true; + ripgrep.enable = true; + btop = { + enable = true; + settings = { + theme_background = false; + update_ms = 1000; + }; + }; + go.enable = true; + }; + + home.packages = with pkgs; [ + lsd + nitch + ranger + wget + portal + fast-cli + gdu + nvtop + zip + unzip + speedtestpp + pciutils + gnumake + copyq + zellij + cht-sh + + python311 + nodejs + rustc + cargo + bun + ollama + stremio + nixpkgs-fmt + flyctl + turso-cli + + libreoffice-qt + spotify + hunspell + hunspellDicts.en_US + galaxy-buds-client + ]; +} diff --git a/modules/home-manager/starship/default.nix b/modules/home-manager/starship/default.nix new file mode 100755 index 0000000..c72de87 --- /dev/null +++ b/modules/home-manager/starship/default.nix @@ -0,0 +1,22 @@ +{ ... }: { + programs.starship = { + enable = true; + settings = { + format = ''[󰊠 ](bold green)$directory(bold blue)$git_branch$git_status[❯](bold yellow)[❯](bold purple)[❯](bold blue) ''; + scan_timeout = 60; + add_newline = false; + + line_break.disabled = true; + directory.style = "bold blue"; + + cmd_duration.format = "[$duration]($style) "; + git_branch.format = "[$symbol$branch]($style) "; + nodejs.format = "[$symbol($version )]($style)"; + rust.format = "[$symbol($version )]($style)"; + golang = { + format = "[$symbol($version )]($style)"; + symbol = " "; + }; + }; + }; +} diff --git a/modules/home-manager/wezterm/default.nix b/modules/home-manager/wezterm/default.nix new file mode 100644 index 0000000..b6f0ded --- /dev/null +++ b/modules/home-manager/wezterm/default.nix @@ -0,0 +1,31 @@ +{ ... }: { + programs.wezterm = { + enable = true; + + extraConfig = '' + local wezterm = require 'wezterm' + local config = {} + + config.window_close_confirmation = 'NeverPrompt' + config.color_scheme = 'Poimandres' + config.colors = { + background = "#0f0f0f" + } + config.enable_tab_bar = false + config.font = wezterm.font_with_fallback { + 'FiraCode Nerd Font', + } + config.font_size = 18.0 + config.window_background_opacity = 1 + config.window_padding = { + left = '20px', + right = '20px', + top = '20px', + bottom = '20px', + } + config.audible_bell = "Disabled" + + return config + ''; + }; +} diff --git a/modules/nixos/desktop/awesome/default.nix b/modules/nixos/desktop/awesome/default.nix new file mode 100755 index 0000000..f8bde1c --- /dev/null +++ b/modules/nixos/desktop/awesome/default.nix @@ -0,0 +1,72 @@ +{ inputs, outputs, lib, pkgs, username, ... }: { + services = { + xserver = { + enable = true; + displayManager = { + sddm.enable = true; + autoLogin = { + enable = true; + user = "${username}"; + }; + }; + + windowManager.awesome = { + enable = true; + luaModules = lib.attrValues { + inherit + (pkgs.lua53Packages) + lgi + ldbus + luadbi-mysql + luaposix + ; + }; + }; + }; + + acpid.enable = true; + mpd.enable = true; + picom.enable = true; + upower.enable = true; + blueman.enable = true; + }; + + programs.dconf.enable = true; + + environment.systemPackages = with pkgs;[ + lua53Packages.lua + wezterm + rofi + acpi + linuxKernel.packages.linux_zen.acpi_call + lxappearance + jq + inotify-tools + polkit_gnome + xdotool + xclip + xorg.xbacklight + gpick + ffmpeg + alsa-utils + pavucontrol + brightnessctl + libnotify + feh + maim + mpv + mpd + mpc-cli + mpdris2 + python311 + python311Packages.mutagen + ncmpcpp + xdg-utils + playerctl + pulsemixer + procps + sct + slop + speedcrunch + ]; +} diff --git a/modules/nixos/steam.nix b/modules/nixos/steam.nix new file mode 100644 index 0000000..288c400 --- /dev/null +++ b/modules/nixos/steam.nix @@ -0,0 +1,7 @@ +{ ... }: { + programs.steam = { + enable = true; + }; + + hardware.opengl.driSupport32Bit = true; +} diff --git a/modules/nixos/virtualisation/default.nix b/modules/nixos/virtualisation/default.nix new file mode 100755 index 0000000..bbae769 --- /dev/null +++ b/modules/nixos/virtualisation/default.nix @@ -0,0 +1,7 @@ +{ + imports = [ + ./docker.nix + ./waydroid.nix + ./qemu.nix + ]; +} diff --git a/modules/nixos/virtualisation/docker.nix b/modules/nixos/virtualisation/docker.nix new file mode 100755 index 0000000..955d6bf --- /dev/null +++ b/modules/nixos/virtualisation/docker.nix @@ -0,0 +1,7 @@ +{ username, ... }: { + virtualisation = { + docker.enable = true; + }; + + users.users.${username}.extraGroups = [ "docker" ]; +} diff --git a/modules/nixos/virtualisation/qemu.nix b/modules/nixos/virtualisation/qemu.nix new file mode 100755 index 0000000..c7bfa88 --- /dev/null +++ b/modules/nixos/virtualisation/qemu.nix @@ -0,0 +1,11 @@ +{ pkgs, username, ... }: { + virtualisation = { + libvirtd.enable = true; + }; + + users.users.${username}.extraGroups = [ "libvirtd" ]; + + environment.systemPackages = with pkgs; [ + virt-manager + ]; +} diff --git a/modules/nixos/virtualisation/waydroid.nix b/modules/nixos/virtualisation/waydroid.nix new file mode 100755 index 0000000..c6459d2 --- /dev/null +++ b/modules/nixos/virtualisation/waydroid.nix @@ -0,0 +1,5 @@ +{ ... }: { + virtualisation = { + waydroid.enable = true; + }; +} diff --git a/overlays/default.nix b/overlays/default.nix new file mode 100755 index 0000000..4ef865c --- /dev/null +++ b/overlays/default.nix @@ -0,0 +1,28 @@ +{ inputs, ... }: { + additions = final: _prev: import ../pkgs { pkgs = final; }; + + modifications = final: prev: { + #vscode = prev.vscode.overrideAttrs (oldAttrs: rec { + # src = (builtins.fetchTarball { + # url = "https://code.visualstudio.com/sha/download?build=stable&os=linux-x64"; + # sha256 = "09hy3nw1bblrl0blzpwv492gy0hwwbaq4csx00mcymskginz1wyx"; + # }); + # version = "latest"; + # buildInputs = oldAttrs.buildInputs; + #}); + + awesome = inputs.nixpkgs-f2k.packages.${prev.system}.awesome-git.override { lua = prev.lua53Packages.lua; }; + picom = inputs.nixpkgs-f2k.packages.${prev.system}.picom-pijulius; + }; + + # When applied, the unstable nixpkgs set (declared in the flake inputs) will + # be accessible through 'pkgs.unstable' + unstable-packages = final: _prev: { + unstable = import inputs.nixpkgs-unstable { + system = final.system; + config.allowUnfree = true; + }; + }; + + nur = inputs.nur.overlay; +} diff --git a/pkgs/default.nix b/pkgs/default.nix new file mode 100755 index 0000000..9f81d0f --- /dev/null +++ b/pkgs/default.nix @@ -0,0 +1,3 @@ +{ pkgs, ... }: { + speedtestpp = pkgs.callPackage ./speedtestpp { }; +} diff --git a/pkgs/speedtestpp/default.nix b/pkgs/speedtestpp/default.nix new file mode 100755 index 0000000..0dcead1 --- /dev/null +++ b/pkgs/speedtestpp/default.nix @@ -0,0 +1,22 @@ +{ stdenv, lib, fetchFromGitHub, cmake, curl, openssl, libxml2 }: +stdenv.mkDerivation { + pname = "speedtestpp"; + version = "2021-08-29"; + src = fetchFromGitHub { + owner = "taganaka"; + repo = "speedtest"; + rev = "0f63cfbf7ce8d64ea803bf143b957eae76323405"; + sha256 = "sha256-rGY0kK2OCZl+229/JERf2ghBSdvAedhVuL4SrVzYFmU="; + }; + nativeBuildInputs = [ cmake curl openssl libxml2 ]; + postInstall = '' + ln -s $out/bin/SpeedTest $out/bin/speedtestpp + ''; + + meta = with lib; { + description = "Unofficial speedtest.net cli using raw TCP for better accuracy"; + homepage = "https://github.com/taganaka/SpeedTest"; + license = licenses.mit; + platforms = platforms.linux; + }; +}