diff --git a/flake.lock b/flake.lock index 475e999..e16fa9a 100644 --- a/flake.lock +++ b/flake.lock @@ -123,29 +123,6 @@ "type": "github" } }, - "devshell_2": { - "inputs": { - "flake-utils": "flake-utils_5", - "nixpkgs": [ - "ookvim", - "nixvim", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1717408969, - "narHash": "sha256-Q0OEFqe35fZbbRPPRdrjTUUChKVhhWXz3T9ZSKmaoVY=", - "owner": "numtide", - "repo": "devshell", - "rev": "1ebbe68d57457c8cae98145410b164b5477761f4", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "devshell", - "type": "github" - } - }, "firefox-addons": { "inputs": { "flake-utils": "flake-utils", @@ -170,27 +147,13 @@ } }, "flake-compat": { - "locked": { - "lastModified": 1696426674, - "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", - "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", - "revCount": 57, - "type": "tarball", - "url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.0.1/018afb31-abd1-7bff-a5e4-cff7e18efb7a/source.tar.gz" - }, - "original": { - "type": "tarball", - "url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz" - } - }, - "flake-compat_2": { "flake": false, "locked": { - "lastModified": 1696426674, - "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "lastModified": 1673956053, + "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", "owner": "edolstra", "repo": "flake-compat", - "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", "type": "github" }, "original": { @@ -267,11 +230,11 @@ "nixpkgs-lib": "nixpkgs-lib_2" }, "locked": { - "lastModified": 1719745305, - "narHash": "sha256-xwgjVUpqSviudEkpQnioeez1Uo2wzrsMaJKJClh+Bls=", + "lastModified": 1719994518, + "narHash": "sha256-pQMhCCHyQGRzdfAkdJ4cIWiw+JNuWsTX7f0ZYSyz0VY=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "c3c5ecc05edc7dafba779c6c1a61cd08ac6583e9", + "rev": "9227223f6d922fee3c7b190b2cc238a99527bbb7", "type": "github" }, "original": { @@ -282,18 +245,14 @@ }, "flake-parts_5": { "inputs": { - "nixpkgs-lib": [ - "ookvim", - "nixvim", - "nixpkgs" - ] + "nixpkgs-lib": "nixpkgs-lib_3" }, "locked": { - "lastModified": 1717285511, - "narHash": "sha256-iKzJcpdXih14qYVcZ9QC9XuZYnPc6T8YImb6dX166kw=", + "lastModified": 1715865404, + "narHash": "sha256-/GJvTdTpuDjNn84j82cU6bXztE0MSkdnTWClUCRub78=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "2a55567fcf15b1b1c7ed712a2c6fadaec7412ea8", + "rev": "8dc45382d5206bd292f9c2768b8058a8fd8311d9", "type": "github" }, "original": { @@ -390,24 +349,6 @@ "inputs": { "systems": "systems_9" }, - "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_6": { - "inputs": { - "systems": "systems_13" - }, "locked": { "lastModified": 1710146030, "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", @@ -422,71 +363,36 @@ "type": "github" } }, - "git-hooks": { - "inputs": { - "flake-compat": "flake-compat_2", - "gitignore": "gitignore", - "nixpkgs": [ - "ookvim", - "nixvim", - "nixpkgs" - ], - "nixpkgs-stable": [ - "ookvim", - "nixvim", - "nixpkgs" - ] - }, + "flake-utils_6": { "locked": { - "lastModified": 1719259945, - "narHash": "sha256-F1h+XIsGKT9TkGO3omxDLEb/9jOOsI6NnzsXFsZhry4=", - "owner": "cachix", - "repo": "git-hooks.nix", - "rev": "0ff4381bbb8f7a52ca4a851660fc7a437a4c6e07", + "lastModified": 1659877975, + "narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0", "type": "github" }, "original": { - "owner": "cachix", - "repo": "git-hooks.nix", + "owner": "numtide", + "repo": "flake-utils", "type": "github" } }, - "gitignore": { + "flake-utils_7": { "inputs": { - "nixpkgs": [ - "ookvim", - "nixvim", - "git-hooks", - "nixpkgs" - ] + "systems": "systems_15" }, "locked": { - "lastModified": 1709087332, - "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", - "owner": "hercules-ci", - "repo": "gitignore.nix", - "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", + "lastModified": 1710146030, + "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", "type": "github" }, "original": { - "owner": "hercules-ci", - "repo": "gitignore.nix", - "type": "github" - } - }, - "gruvbox-material": { - "flake": false, - "locked": { - "lastModified": 1719323321, - "narHash": "sha256-gQO6PrZ0ss9TyD2Q9yxtsJFCWemIZcPy4p8EQz+/Ezg=", - "owner": "sainnhe", - "repo": "gruvbox-material", - "rev": "23371661bac2b7fdd9769c685e4224990c3b9ab8", - "type": "github" - }, - "original": { - "owner": "sainnhe", - "repo": "gruvbox-material", + "owner": "numtide", + "repo": "flake-utils", "type": "github" } }, @@ -556,18 +462,14 @@ }, "home-manager_3": { "inputs": { - "nixpkgs": [ - "ookvim", - "nixvim", - "nixpkgs" - ] + "nixpkgs": "nixpkgs_10" }, "locked": { - "lastModified": 1719588253, - "narHash": "sha256-A03i8xiVgP14DCmV5P7VUv37eodCjY4e1iai0b2EuuM=", + "lastModified": 1722119539, + "narHash": "sha256-2kU90liMle0vKR8exJx1XM4hZh9CdNgZGHCTbeA9yzY=", "owner": "nix-community", "repo": "home-manager", - "rev": "7e68e55d2e16d3a1e92a679430728c35a30fd24e", + "rev": "d0240a064db3987eb4d5204cf2400bc4452d9922", "type": "github" }, "original": { @@ -845,7 +747,7 @@ "xdg-portal-hyprland", "nixpkgs" ], - "systems": "systems_11" + "systems": "systems_13" }, "locked": { "lastModified": 1717881852, @@ -1081,6 +983,44 @@ "type": "github" } }, + "mnw": { + "locked": { + "lastModified": 1722037780, + "narHash": "sha256-ejkSFN5qHf161CnFq73b2LZlnJzYidBwUEtdx5/hNiY=", + "owner": "Gerg-L", + "repo": "mnw", + "rev": "81e98e83d863d4fad506ed932d432570030cedd3", + "type": "github" + }, + "original": { + "owner": "Gerg-L", + "repo": "mnw", + "type": "github" + } + }, + "naersk": { + "inputs": { + "nixpkgs": [ + "ooks-vim", + "nvf", + "rnix-lsp", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1655042882, + "narHash": "sha256-9BX8Fuez5YJlN7cdPO63InoyBy7dm3VlJkkmTt6fS1A=", + "owner": "nix-community", + "repo": "naersk", + "rev": "cddffb5aa211f50c4b8750adbec0bbbdfb26bb9f", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "naersk", + "type": "github" + } + }, "nh": { "inputs": { "nixpkgs": [ @@ -1123,6 +1063,34 @@ "type": "github" } }, + "nil_2": { + "inputs": { + "flake-utils": [ + "ooks-vim", + "nvf", + "flake-utils" + ], + "nixpkgs": [ + "ooks-vim", + "nvf", + "nixpkgs" + ], + "rust-overlay": "rust-overlay_3" + }, + "locked": { + "lastModified": 1714571717, + "narHash": "sha256-o4tqlTzi9kcVub167kTGXgCac9jM3kW4+v9MH/ue4Hk=", + "owner": "oxalica", + "repo": "nil", + "rev": "2f3ed6348bbf1440fcd1ab0411271497a0fbbfa4", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "nil", + "type": "github" + } + }, "nix-colors": { "inputs": { "base16-schemes": "base16-schemes", @@ -1142,28 +1110,6 @@ "type": "github" } }, - "nix-darwin": { - "inputs": { - "nixpkgs": [ - "ookvim", - "nixvim", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1719128254, - "narHash": "sha256-I7jMpq0CAOZA/i70+HDQO/ulLttyQu/K70cSESiMX7A=", - "owner": "lnl7", - "repo": "nix-darwin", - "rev": "50581970f37f06a4719001735828519925ef8310", - "type": "github" - }, - "original": { - "owner": "lnl7", - "repo": "nix-darwin", - "type": "github" - } - }, "nix-formatter-pack": { "inputs": { "nixpkgs": [ @@ -1323,14 +1269,26 @@ }, "nixpkgs-lib_2": { "locked": { - "lastModified": 1717284937, - "narHash": "sha256-lIbdfCsf8LMFloheeE6N31+BMIeixqyQWbSr2vk79EQ=", + "lastModified": 1719876945, + "narHash": "sha256-Fm2rDDs86sHy0/1jxTOKB1118Q0O3Uc7EC0iXvXKpbI=", "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/eb9ceca17df2ea50a250b6b27f7bf6ab0186f198.tar.gz" + "url": "https://github.com/NixOS/nixpkgs/archive/5daf0514482af3f97abaefc78a6606365c9108e2.tar.gz" }, "original": { "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/eb9ceca17df2ea50a250b6b27f7bf6ab0186f198.tar.gz" + "url": "https://github.com/NixOS/nixpkgs/archive/5daf0514482af3f97abaefc78a6606365c9108e2.tar.gz" + } + }, + "nixpkgs-lib_3": { + "locked": { + "lastModified": 1714640452, + "narHash": "sha256-QBx10+k6JWz6u7VsohfSw8g8hjdBZEf8CFzXH1/1Z94=", + "type": "tarball", + "url": "https://github.com/NixOS/nixpkgs/archive/50eb7ecf4cd0a5756d7275c8ba36790e5bd53e33.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://github.com/NixOS/nixpkgs/archive/50eb7ecf4cd0a5756d7275c8ba36790e5bd53e33.tar.gz" } }, "nixpkgs-small": { @@ -1351,15 +1309,15 @@ }, "nixpkgs_10": { "locked": { - "lastModified": 1719506693, - "narHash": "sha256-C8e9S7RzshSdHB7L+v9I51af1gDM5unhJ2xO1ywxNH8=", - "owner": "nixos", + "lastModified": 1721562059, + "narHash": "sha256-Tybxt65eyOARf285hMHIJ2uul8SULjFZbT9ZaEeUnP8=", + "owner": "NixOS", "repo": "nixpkgs", - "rev": "b2852eb9365c6de48ffb0dc2c9562591f652242a", + "rev": "68c9ed8bbed9dfce253cc91560bf9043297ef2fe", "type": "github" }, "original": { - "owner": "nixos", + "owner": "NixOS", "ref": "nixos-unstable", "repo": "nixpkgs", "type": "github" @@ -1367,21 +1325,69 @@ }, "nixpkgs_11": { "locked": { - "lastModified": 1719506693, - "narHash": "sha256-C8e9S7RzshSdHB7L+v9I51af1gDM5unhJ2xO1ywxNH8=", - "owner": "NixOS", + "lastModified": 1722062969, + "narHash": "sha256-QOS0ykELUmPbrrUGmegAUlpmUFznDQeR4q7rFhl8eQg=", + "owner": "nixos", "repo": "nixpkgs", - "rev": "b2852eb9365c6de48ffb0dc2c9562591f652242a", + "rev": "b73c2221a46c13557b1b3be9c2070cc42cf01eb3", "type": "github" }, "original": { - "owner": "NixOS", + "owner": "nixos", "ref": "nixos-unstable", "repo": "nixpkgs", "type": "github" } }, "nixpkgs_12": { + "locked": { + "lastModified": 1721016451, + "narHash": "sha256-Cypl9ORr5UjtBsbjXMTJRepTe362yNVrPrntUvHiTaw=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "a14c5d651cee9ed70f9cd9e83f323f1e531002db", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_13": { + "locked": { + "lastModified": 1656753965, + "narHash": "sha256-BCrB3l0qpJokOnIVc3g2lHiGhnjUi0MoXiw6t1o8H1E=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "0ea7a8f1b939d74e5df8af9a8f7342097cdf69eb", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_14": { + "locked": { + "lastModified": 1702350026, + "narHash": "sha256-A+GNZFZdfl4JdDphYKBJ5Ef1HOiFsP18vQe9mqjmUis=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "9463103069725474698139ab10f17a9d125da859", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-23.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_15": { "locked": { "lastModified": 1720031269, "narHash": "sha256-rwz8NJZV+387rnWpTYcXaRNvzUSnnF9aHONoJIYmiUQ=", @@ -1397,7 +1403,7 @@ "type": "github" } }, - "nixpkgs_13": { + "nixpkgs_16": { "locked": { "lastModified": 1720955038, "narHash": "sha256-GaliJqfFwyYxReFywxAa8orCO+EnDq2NK2F+5aSc8vo=", @@ -1541,31 +1547,6 @@ "type": "github" } }, - "nixvim": { - "inputs": { - "devshell": "devshell_2", - "flake-compat": "flake-compat", - "flake-parts": "flake-parts_5", - "git-hooks": "git-hooks", - "home-manager": "home-manager_3", - "nix-darwin": "nix-darwin", - "nixpkgs": "nixpkgs_11", - "treefmt-nix": "treefmt-nix_2" - }, - "locked": { - "lastModified": 1719768179, - "narHash": "sha256-gS+EB9iYftAxcnaMM648Ht/JGMocfRctBJh3yGAslUM=", - "owner": "nix-community", - "repo": "nixvim", - "rev": "1391a64cf6f216315a6ce904db7144949585839a", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "nixvim", - "type": "github" - } - }, "nmd": { "flake": false, "locked": { @@ -1604,6 +1585,22 @@ "type": "sourcehut" } }, + "nmd_3": { + "flake": false, + "locked": { + "lastModified": 1705050560, + "narHash": "sha256-x3zzcdvhJpodsmdjqB4t5mkVW22V3wqHLOun0KRBzUI=", + "owner": "~rycee", + "repo": "nmd", + "rev": "66d9334933119c36f91a78d565c152a4fdc8d3d3", + "type": "sourcehut" + }, + "original": { + "owner": "~rycee", + "repo": "nmd", + "type": "sourcehut" + } + }, "nmt": { "flake": false, "locked": { @@ -1620,35 +1617,128 @@ "type": "gitlab" } }, - "nvim-hl-md": { - "flake": false, + "nvf": { + "inputs": { + "flake-parts": "flake-parts_5", + "flake-utils": "flake-utils_5", + "mnw": "mnw", + "nil": "nil_2", + "nixpkgs": "nixpkgs_12", + "nmd": "nmd_3", + "plugin-alpha-nvim": "plugin-alpha-nvim", + "plugin-bufdelete-nvim": "plugin-bufdelete-nvim", + "plugin-catppuccin": "plugin-catppuccin", + "plugin-ccc": "plugin-ccc", + "plugin-cellular-automaton": "plugin-cellular-automaton", + "plugin-chatgpt": "plugin-chatgpt", + "plugin-cheatsheet-nvim": "plugin-cheatsheet-nvim", + "plugin-cinnamon-nvim": "plugin-cinnamon-nvim", + "plugin-cmp-buffer": "plugin-cmp-buffer", + "plugin-cmp-nvim-lsp": "plugin-cmp-nvim-lsp", + "plugin-cmp-path": "plugin-cmp-path", + "plugin-cmp-treesitter": "plugin-cmp-treesitter", + "plugin-cmp-vsnip": "plugin-cmp-vsnip", + "plugin-codewindow-nvim": "plugin-codewindow-nvim", + "plugin-comment-nvim": "plugin-comment-nvim", + "plugin-copilot-cmp": "plugin-copilot-cmp", + "plugin-copilot-lua": "plugin-copilot-lua", + "plugin-crates-nvim": "plugin-crates-nvim", + "plugin-dashboard-nvim": "plugin-dashboard-nvim", + "plugin-diffview-nvim": "plugin-diffview-nvim", + "plugin-dracula": "plugin-dracula", + "plugin-dressing-nvim": "plugin-dressing-nvim", + "plugin-elixir-tools": "plugin-elixir-tools", + "plugin-fidget-nvim": "plugin-fidget-nvim", + "plugin-flutter-tools": "plugin-flutter-tools", + "plugin-gesture-nvim": "plugin-gesture-nvim", + "plugin-gitsigns-nvim": "plugin-gitsigns-nvim", + "plugin-glow-nvim": "plugin-glow-nvim", + "plugin-gruvbox": "plugin-gruvbox", + "plugin-highlight-undo": "plugin-highlight-undo", + "plugin-hop-nvim": "plugin-hop-nvim", + "plugin-icon-picker-nvim": "plugin-icon-picker-nvim", + "plugin-image-nvim": "plugin-image-nvim", + "plugin-indent-blankline": "plugin-indent-blankline", + "plugin-leap-nvim": "plugin-leap-nvim", + "plugin-lsp-lines": "plugin-lsp-lines", + "plugin-lsp-signature": "plugin-lsp-signature", + "plugin-lspkind": "plugin-lspkind", + "plugin-lspsaga": "plugin-lspsaga", + "plugin-lualine": "plugin-lualine", + "plugin-mind-nvim": "plugin-mind-nvim", + "plugin-minimap-vim": "plugin-minimap-vim", + "plugin-modes-nvim": "plugin-modes-nvim", + "plugin-neo-tree-nvim": "plugin-neo-tree-nvim", + "plugin-neocord": "plugin-neocord", + "plugin-neodev-nvim": "plugin-neodev-nvim", + "plugin-noice-nvim": "plugin-noice-nvim", + "plugin-none-ls": "plugin-none-ls", + "plugin-nui-nvim": "plugin-nui-nvim", + "plugin-nvim-autopairs": "plugin-nvim-autopairs", + "plugin-nvim-bufferline-lua": "plugin-nvim-bufferline-lua", + "plugin-nvim-cmp": "plugin-nvim-cmp", + "plugin-nvim-code-action-menu": "plugin-nvim-code-action-menu", + "plugin-nvim-colorizer-lua": "plugin-nvim-colorizer-lua", + "plugin-nvim-cursorline": "plugin-nvim-cursorline", + "plugin-nvim-dap": "plugin-nvim-dap", + "plugin-nvim-dap-go": "plugin-nvim-dap-go", + "plugin-nvim-dap-ui": "plugin-nvim-dap-ui", + "plugin-nvim-docs-view": "plugin-nvim-docs-view", + "plugin-nvim-lightbulb": "plugin-nvim-lightbulb", + "plugin-nvim-lspconfig": "plugin-nvim-lspconfig", + "plugin-nvim-navbuddy": "plugin-nvim-navbuddy", + "plugin-nvim-navic": "plugin-nvim-navic", + "plugin-nvim-neoclip": "plugin-nvim-neoclip", + "plugin-nvim-nio": "plugin-nvim-nio", + "plugin-nvim-notify": "plugin-nvim-notify", + "plugin-nvim-session-manager": "plugin-nvim-session-manager", + "plugin-nvim-surround": "plugin-nvim-surround", + "plugin-nvim-tree-lua": "plugin-nvim-tree-lua", + "plugin-nvim-treesitter-context": "plugin-nvim-treesitter-context", + "plugin-nvim-ts-autotag": "plugin-nvim-ts-autotag", + "plugin-nvim-web-devicons": "plugin-nvim-web-devicons", + "plugin-obsidian-nvim": "plugin-obsidian-nvim", + "plugin-onedark": "plugin-onedark", + "plugin-orgmode-nvim": "plugin-orgmode-nvim", + "plugin-oxocarbon": "plugin-oxocarbon", + "plugin-plenary-nvim": "plugin-plenary-nvim", + "plugin-project-nvim": "plugin-project-nvim", + "plugin-registers": "plugin-registers", + "plugin-rose-pine": "plugin-rose-pine", + "plugin-rustaceanvim": "plugin-rustaceanvim", + "plugin-scrollbar-nvim": "plugin-scrollbar-nvim", + "plugin-smartcolumn": "plugin-smartcolumn", + "plugin-sqls-nvim": "plugin-sqls-nvim", + "plugin-tabular": "plugin-tabular", + "plugin-telescope": "plugin-telescope", + "plugin-todo-comments": "plugin-todo-comments", + "plugin-toggleterm-nvim": "plugin-toggleterm-nvim", + "plugin-tokyonight": "plugin-tokyonight", + "plugin-trouble": "plugin-trouble", + "plugin-ts-error-translator": "plugin-ts-error-translator", + "plugin-vim-dirtytalk": "plugin-vim-dirtytalk", + "plugin-vim-fugitive": "plugin-vim-fugitive", + "plugin-vim-illuminate": "plugin-vim-illuminate", + "plugin-vim-markdown": "plugin-vim-markdown", + "plugin-vim-repeat": "plugin-vim-repeat", + "plugin-vim-startify": "plugin-vim-startify", + "plugin-vim-vsnip": "plugin-vim-vsnip", + "plugin-which-key": "plugin-which-key", + "rnix-lsp": "rnix-lsp", + "systems": "systems_10", + "zig": "zig" + }, "locked": { - "lastModified": 1682765089, - "narHash": "sha256-uGn2RcyYhla0nY9Jyn5FIcvaZjd6i9EPAQ+5UuPKumU=", - "owner": "yaocccc", - "repo": "nvim-hl-mdcodeblock.lua", - "rev": "a652470bfed791d5026f6a35bacdfe90a9d8ac2f", + "lastModified": 1722053024, + "narHash": "sha256-c/xy1SKT2Cn3mZcNJMmT6waGSdnL7lhQCBlP+rlbvMg=", + "owner": "notashelf", + "repo": "nvf", + "rev": "21f4e5b9ab1ed44c75031cfa3e2e5cd45997bb0d", "type": "github" }, "original": { - "owner": "yaocccc", - "repo": "nvim-hl-mdcodeblock.lua", - "type": "github" - } - }, - "nvim-md": { - "flake": false, - "locked": { - "lastModified": 1717236659, - "narHash": "sha256-tZQpioTsVwMO+rnqsid0d1F1Tbpc8IQXY8+HPWbNoak=", - "owner": "ixru", - "repo": "nvim-markdown", - "rev": "bf5c87788156f072cfb87b994844424b164b5b44", - "type": "github" - }, - "original": { - "owner": "ixru", - "repo": "nvim-markdown", + "owner": "notashelf", + "repo": "nvf", "type": "github" } }, @@ -1670,27 +1760,1631 @@ "type": "github" } }, - "ookvim": { + "ooks-vim": { "inputs": { "flake-parts": "flake-parts_4", - "gruvbox-material": "gruvbox-material", - "nixpkgs": "nixpkgs_10", - "nixvim": "nixvim", - "nvim-hl-md": "nvim-hl-md", - "nvim-md": "nvim-md" + "home-manager": "home-manager_3", + "nixpkgs": "nixpkgs_11", + "nvf": "nvf", + "systems": "systems_11" }, "locked": { - "lastModified": 1721533991, - "narHash": "sha256-4Tbn5+5jD5qzGs61thDgy6GcAJmIMzTvFAJFurGHUgo=", + "lastModified": 1722216992, + "narHash": "sha256-4QTevAJxxparWvQDtPfjI9ROmjfHUk0ektZqwJP1VWU=", "ref": "refs/heads/master", - "rev": "3e6b2442f370b5063b49abe77dd8bce3a604b477", - "revCount": 26, + "rev": "56adad9c8efb9c32a856b6cdb782a873bcac07d0", + "revCount": 14, "type": "git", - "url": "ssh://git@github.com/ooks-io/ookvim" + "url": "ssh://git@github.com/ooks-io/ooks-vim" }, "original": { "type": "git", - "url": "ssh://git@github.com/ooks-io/ookvim" + "url": "ssh://git@github.com/ooks-io/ooks-vim" + } + }, + "plugin-alpha-nvim": { + "flake": false, + "locked": { + "lastModified": 1708891191, + "narHash": "sha256-kTVPKZ/e1us/uHfSwFwR38lFYN8EotJq2jKz6xm/eqg=", + "owner": "goolord", + "repo": "alpha-nvim", + "rev": "41283fb402713fc8b327e60907f74e46166f4cfd", + "type": "github" + }, + "original": { + "owner": "goolord", + "repo": "alpha-nvim", + "type": "github" + } + }, + "plugin-bufdelete-nvim": { + "flake": false, + "locked": { + "lastModified": 1708814161, + "narHash": "sha256-ljUNfmpImtxFCS19HC9kFlaLlqaPDltKtnx1+/6Y33U=", + "owner": "famiu", + "repo": "bufdelete.nvim", + "rev": "f6bcea78afb3060b198125256f897040538bcb81", + "type": "github" + }, + "original": { + "owner": "famiu", + "repo": "bufdelete.nvim", + "type": "github" + } + }, + "plugin-catppuccin": { + "flake": false, + "locked": { + "lastModified": 1716704960, + "narHash": "sha256-UDPS+1o8FQGkfqiG4GX4DNUI2pU5hIvagmfnWTKDb44=", + "owner": "catppuccin", + "repo": "nvim", + "rev": "5215ea59df6d0a7e27da9a5cd1165e06d1b04cbe", + "type": "github" + }, + "original": { + "owner": "catppuccin", + "repo": "nvim", + "type": "github" + } + }, + "plugin-ccc": { + "flake": false, + "locked": { + "lastModified": 1714299582, + "narHash": "sha256-QRq9hQF5vLnOTzQGbOWC2ykMdMsQDlDlb6XC17dJG7Q=", + "owner": "uga-rosa", + "repo": "ccc.nvim", + "rev": "f388f1981d222967c741fe9927edf9ba5fa3bcbe", + "type": "github" + }, + "original": { + "owner": "uga-rosa", + "repo": "ccc.nvim", + "type": "github" + } + }, + "plugin-cellular-automaton": { + "flake": false, + "locked": { + "lastModified": 1693589931, + "narHash": "sha256-szbd6m7hH7NFI0UzjWF83xkpSJeUWCbn9c+O8F8S/Fg=", + "owner": "Eandrju", + "repo": "cellular-automaton.nvim", + "rev": "b7d056dab963b5d3f2c560d92937cb51db61cb5b", + "type": "github" + }, + "original": { + "owner": "Eandrju", + "repo": "cellular-automaton.nvim", + "type": "github" + } + }, + "plugin-chatgpt": { + "flake": false, + "locked": { + "lastModified": 1709721561, + "narHash": "sha256-vD3NEsYmPRWlxBSOxyIMIQiJXQXxx0hhsw4zIxxXB3o=", + "owner": "jackMort", + "repo": "ChatGPT.nvim", + "rev": "df53728e05129278d6ea26271ec086aa013bed90", + "type": "github" + }, + "original": { + "owner": "jackMort", + "repo": "ChatGPT.nvim", + "type": "github" + } + }, + "plugin-cheatsheet-nvim": { + "flake": false, + "locked": { + "lastModified": 1640255456, + "narHash": "sha256-TYkGB7cON2t4GwMaR9H1MDG2j3btBv2AR37ade8kqTY=", + "owner": "sudormrfbin", + "repo": "cheatsheet.nvim", + "rev": "9716f9aaa94dd1fd6ce59b5aae0e5f25e2a463ef", + "type": "github" + }, + "original": { + "owner": "sudormrfbin", + "repo": "cheatsheet.nvim", + "type": "github" + } + }, + "plugin-cinnamon-nvim": { + "flake": false, + "locked": { + "lastModified": 1714107684, + "narHash": "sha256-cMP9WRZzevxaWgpILyDh1JwNukm3Jl3JKJYPT2HnFns=", + "owner": "declancm", + "repo": "cinnamon.nvim", + "rev": "a011e84b624cd7b609ea928237505d31b987748a", + "type": "github" + }, + "original": { + "owner": "declancm", + "repo": "cinnamon.nvim", + "type": "github" + } + }, + "plugin-cmp-buffer": { + "flake": false, + "locked": { + "lastModified": 1660101488, + "narHash": "sha256-dG4U7MtnXThoa/PD+qFtCt76MQ14V1wX8GMYcvxEnbM=", + "owner": "hrsh7th", + "repo": "cmp-buffer", + "rev": "3022dbc9166796b644a841a02de8dd1cc1d311fa", + "type": "github" + }, + "original": { + "owner": "hrsh7th", + "repo": "cmp-buffer", + "type": "github" + } + }, + "plugin-cmp-nvim-lsp": { + "flake": false, + "locked": { + "lastModified": 1715931395, + "narHash": "sha256-CT1+Z4XJBVsl/RqvJeGmyitD6x7So0ylXvvef5jh7I8=", + "owner": "hrsh7th", + "repo": "cmp-nvim-lsp", + "rev": "39e2eda76828d88b773cc27a3f61d2ad782c922d", + "type": "github" + }, + "original": { + "owner": "hrsh7th", + "repo": "cmp-nvim-lsp", + "type": "github" + } + }, + "plugin-cmp-path": { + "flake": false, + "locked": { + "lastModified": 1664784283, + "narHash": "sha256-thppiiV3wjIaZnAXmsh7j3DUc6ceSCvGzviwFUnoPaI=", + "owner": "hrsh7th", + "repo": "cmp-path", + "rev": "91ff86cd9c29299a64f968ebb45846c485725f23", + "type": "github" + }, + "original": { + "owner": "hrsh7th", + "repo": "cmp-path", + "type": "github" + } + }, + "plugin-cmp-treesitter": { + "flake": false, + "locked": { + "lastModified": 1715596479, + "narHash": "sha256-8WAk9S+/7vSz7bVHdEzjbKUokU144fvnByIeJ1gAWhU=", + "owner": "ray-x", + "repo": "cmp-treesitter", + "rev": "958fcfa0d8ce46d215e19cc3992c542f576c4123", + "type": "github" + }, + "original": { + "owner": "ray-x", + "repo": "cmp-treesitter", + "type": "github" + } + }, + "plugin-cmp-vsnip": { + "flake": false, + "locked": { + "lastModified": 1669100283, + "narHash": "sha256-2mkN03noOr5vBvRbSb35xZKorSH+8savQNZtgM9+QcM=", + "owner": "hrsh7th", + "repo": "cmp-vsnip", + "rev": "989a8a73c44e926199bfd05fa7a516d51f2d2752", + "type": "github" + }, + "original": { + "owner": "hrsh7th", + "repo": "cmp-vsnip", + "type": "github" + } + }, + "plugin-codewindow-nvim": { + "flake": false, + "locked": { + "lastModified": 1695487629, + "narHash": "sha256-/u2Zjbd9m3/iJU3I3HzFzXWxuvoycwJoIq7UFeHNtKM=", + "owner": "gorbit99", + "repo": "codewindow.nvim", + "rev": "8c8f5ff66e123491c946c04848d744fcdc7cac6c", + "type": "github" + }, + "original": { + "owner": "gorbit99", + "repo": "codewindow.nvim", + "type": "github" + } + }, + "plugin-comment-nvim": { + "flake": false, + "locked": { + "lastModified": 1691409559, + "narHash": "sha256-+dF1ZombrlO6nQggufSb0igXW5zwU++o0W/5ZA07cdc=", + "owner": "numToStr", + "repo": "Comment.nvim", + "rev": "0236521ea582747b58869cb72f70ccfa967d2e89", + "type": "github" + }, + "original": { + "owner": "numToStr", + "repo": "Comment.nvim", + "type": "github" + } + }, + "plugin-copilot-cmp": { + "flake": false, + "locked": { + "lastModified": 1694286652, + "narHash": "sha256-srgNohm/aJpswNJ5+T7p+zi9Jinp9e5FA8/wdk6VRiY=", + "owner": "zbirenbaum", + "repo": "copilot-cmp", + "rev": "72fbaa03695779f8349be3ac54fa8bd77eed3ee3", + "type": "github" + }, + "original": { + "owner": "zbirenbaum", + "repo": "copilot-cmp", + "type": "github" + } + }, + "plugin-copilot-lua": { + "flake": false, + "locked": { + "lastModified": 1709095198, + "narHash": "sha256-JX3sdsnOnjkY7r9fCtC2oauo0PXF3SQ+SHUo8ifBvAc=", + "owner": "zbirenbaum", + "repo": "copilot.lua", + "rev": "f7612f5af4a7d7615babf43ab1e67a2d790c13a6", + "type": "github" + }, + "original": { + "owner": "zbirenbaum", + "repo": "copilot.lua", + "type": "github" + } + }, + "plugin-crates-nvim": { + "flake": false, + "locked": { + "lastModified": 1715690194, + "narHash": "sha256-R1y1OIep4tcFd4mhylZ/A2zdwOmEQtCzuVBOBYu0qUI=", + "owner": "Saecki", + "repo": "crates.nvim", + "rev": "d556c00d60c9421c913ee54ff690df2a34f6264e", + "type": "github" + }, + "original": { + "owner": "Saecki", + "repo": "crates.nvim", + "type": "github" + } + }, + "plugin-dashboard-nvim": { + "flake": false, + "locked": { + "lastModified": 1715952164, + "narHash": "sha256-mLQHRzt9vUJLOO15+u7EaE2FGzIm1Ba7fqwdu5zaTYA=", + "owner": "glepnir", + "repo": "dashboard-nvim", + "rev": "5182c09ac8085dc73b78ad0ea9f5479c9a866fc4", + "type": "github" + }, + "original": { + "owner": "glepnir", + "repo": "dashboard-nvim", + "type": "github" + } + }, + "plugin-diffview-nvim": { + "flake": false, + "locked": { + "lastModified": 1716569036, + "narHash": "sha256-sCrswSN/ERirije4hukg81t+X8sVG6EnG8SPK/P1Bts=", + "owner": "sindrets", + "repo": "diffview.nvim", + "rev": "1ec7b56b959dab18f7030f541c33ae60e18a6f88", + "type": "github" + }, + "original": { + "owner": "sindrets", + "repo": "diffview.nvim", + "type": "github" + } + }, + "plugin-dracula": { + "flake": false, + "locked": { + "lastModified": 1708834650, + "narHash": "sha256-I3rtbJYv1D+kniOLL9hmTF3ucp/qSNewnO2GmYAERko=", + "owner": "Mofiqul", + "repo": "dracula.nvim", + "rev": "8d8bddb8814c3e7e62d80dda65a9876f97eb699c", + "type": "github" + }, + "original": { + "owner": "Mofiqul", + "repo": "dracula.nvim", + "type": "github" + } + }, + "plugin-dressing-nvim": { + "flake": false, + "locked": { + "lastModified": 1716410905, + "narHash": "sha256-AXY1+nA6Q/kWbuwOAqwVdd3QrjkHGVdVMHShvSIfLwM=", + "owner": "stevearc", + "repo": "dressing.nvim", + "rev": "3c38ac861e1b8d4077ff46a779cde17330b29f3a", + "type": "github" + }, + "original": { + "owner": "stevearc", + "repo": "dressing.nvim", + "type": "github" + } + }, + "plugin-elixir-tools": { + "flake": false, + "locked": { + "lastModified": 1716478469, + "narHash": "sha256-ESL/H/l5Yarcuo3MjBplKwox8E6CBxvWrpciyJeaES0=", + "owner": "elixir-tools", + "repo": "elixir-tools.nvim", + "rev": "815cf0b0aab0421f8490199c0dd7442d22a7c1b7", + "type": "github" + }, + "original": { + "owner": "elixir-tools", + "repo": "elixir-tools.nvim", + "type": "github" + } + }, + "plugin-fidget-nvim": { + "flake": false, + "locked": { + "lastModified": 1716093309, + "narHash": "sha256-Gpk/G0ByOAIE8uX4Xr94CvAjJBSJMEOwBuvrhmYYGsg=", + "owner": "j-hui", + "repo": "fidget.nvim", + "rev": "ef99df04a1c53a453602421bc0f756997edc8289", + "type": "github" + }, + "original": { + "owner": "j-hui", + "repo": "fidget.nvim", + "type": "github" + } + }, + "plugin-flutter-tools": { + "flake": false, + "locked": { + "lastModified": 1716114535, + "narHash": "sha256-dRcWCqFHtDMOEGjKji3lxYQZKBhlhss/i51pX6FZxuI=", + "owner": "akinsho", + "repo": "flutter-tools.nvim", + "rev": "990a1349c29f7d474a0cd51355aba773ccc9deea", + "type": "github" + }, + "original": { + "owner": "akinsho", + "repo": "flutter-tools.nvim", + "type": "github" + } + }, + "plugin-gesture-nvim": { + "flake": false, + "locked": { + "lastModified": 1715776261, + "narHash": "sha256-XgF5BTKR5IiELNqYDvOPIGMw3HtkyNd3K5SOGfYFizY=", + "owner": "notomo", + "repo": "gesture.nvim", + "rev": "3750313a40a752629e3e90f3c3e591969fdab388", + "type": "github" + }, + "original": { + "owner": "notomo", + "repo": "gesture.nvim", + "type": "github" + } + }, + "plugin-gitsigns-nvim": { + "flake": false, + "locked": { + "lastModified": 1716453598, + "narHash": "sha256-TTC3uvRsq4v6PBdS/3YAGpyhVt0w3/SGkPE3fu1zW94=", + "owner": "lewis6991", + "repo": "gitsigns.nvim", + "rev": "cdfcd9d39d23c46ae9a040de2c6a8b8bf868746e", + "type": "github" + }, + "original": { + "owner": "lewis6991", + "repo": "gitsigns.nvim", + "type": "github" + } + }, + "plugin-glow-nvim": { + "flake": false, + "locked": { + "lastModified": 1703345545, + "narHash": "sha256-GsNcASzVvY0066kak2nvUY5luzanoBclqcUOsODww8g=", + "owner": "ellisonleao", + "repo": "glow.nvim", + "rev": "238070a686c1da3bccccf1079700eb4b5e19aea4", + "type": "github" + }, + "original": { + "owner": "ellisonleao", + "repo": "glow.nvim", + "type": "github" + } + }, + "plugin-gruvbox": { + "flake": false, + "locked": { + "lastModified": 1716072809, + "narHash": "sha256-BLhZGijGF03UFiyMJ66C1ZLDRqAo1C80ekHcBm1PGoY=", + "owner": "ellisonleao", + "repo": "gruvbox.nvim", + "rev": "96a8ec336fb48a11cefbd57508888361431aac26", + "type": "github" + }, + "original": { + "owner": "ellisonleao", + "repo": "gruvbox.nvim", + "type": "github" + } + }, + "plugin-highlight-undo": { + "flake": false, + "locked": { + "lastModified": 1714982601, + "narHash": "sha256-yGw1SxcUmGQxqKhMb2SJAai07g+rOpEJy2CqIX2h9dM=", + "owner": "tzachar", + "repo": "highlight-undo.nvim", + "rev": "1ea1c79372d7d93c88fd97543880927b7635e3d2", + "type": "github" + }, + "original": { + "owner": "tzachar", + "repo": "highlight-undo.nvim", + "type": "github" + } + }, + "plugin-hop-nvim": { + "flake": false, + "locked": { + "lastModified": 1694283445, + "narHash": "sha256-SnuFeD/lrMxKtpBRPgIwdG0kVF7BWe02PiV7URVDASI=", + "owner": "phaazon", + "repo": "hop.nvim", + "rev": "1a1eceafe54b5081eae4cb91c723abd1d450f34b", + "type": "github" + }, + "original": { + "owner": "phaazon", + "repo": "hop.nvim", + "type": "github" + } + }, + "plugin-icon-picker-nvim": { + "flake": false, + "locked": { + "lastModified": 1704321319, + "narHash": "sha256-VZKsVeSmPR3AA8267Mtd5sSTZl2CAqnbgqceCptgp4w=", + "owner": "ziontee113", + "repo": "icon-picker.nvim", + "rev": "3ee9a0ea9feeef08ae35e40c8be6a2fa2c20f2d3", + "type": "github" + }, + "original": { + "owner": "ziontee113", + "repo": "icon-picker.nvim", + "type": "github" + } + }, + "plugin-image-nvim": { + "flake": false, + "locked": { + "lastModified": 1716308282, + "narHash": "sha256-6nFzUchDQIvaTOv4lZ10q66m/ntU3dgVnlfBRodW+0Y=", + "owner": "3rd", + "repo": "image.nvim", + "rev": "2a618c86d9f8fd9f7895d12b55ec2f31fd14fa05", + "type": "github" + }, + "original": { + "owner": "3rd", + "repo": "image.nvim", + "type": "github" + } + }, + "plugin-indent-blankline": { + "flake": false, + "locked": { + "lastModified": 1716449809, + "narHash": "sha256-K5y0UQAXc0N6+1kqncX2eClpvZb7jlg7GhSerHQVZX0=", + "owner": "lukas-reineke", + "repo": "indent-blankline.nvim", + "rev": "d98f537c3492e87b6dc6c2e3f66ac517528f406f", + "type": "github" + }, + "original": { + "owner": "lukas-reineke", + "repo": "indent-blankline.nvim", + "type": "github" + } + }, + "plugin-leap-nvim": { + "flake": false, + "locked": { + "lastModified": 1716207448, + "narHash": "sha256-O/wN5v8GhlEECBIhJQvWhKcpQrqT7J+BNkd/fIh0TIQ=", + "owner": "ggandor", + "repo": "leap.nvim", + "rev": "8f4d3ab9fe5c906c5745150191831c5ee0a427a0", + "type": "github" + }, + "original": { + "owner": "ggandor", + "repo": "leap.nvim", + "type": "github" + } + }, + "plugin-lsp-lines": { + "flake": false, + "locked": { + "lastModified": 1716108775, + "narHash": "sha256-QsvmPOer7JgO7Y+N/iaNJD7Kmy69gnlV4CeyaQesNvA=", + "owner": "~whynothugo", + "repo": "lsp_lines.nvim", + "rev": "7d9e2748b61bff6ebba6e30adbc7173ccf21c055", + "type": "sourcehut" + }, + "original": { + "owner": "~whynothugo", + "repo": "lsp_lines.nvim", + "type": "sourcehut" + } + }, + "plugin-lsp-signature": { + "flake": false, + "locked": { + "lastModified": 1716637798, + "narHash": "sha256-4Abo4HGwzZtqEHcS9lsQdw+Dsn7tkQoeq5QyfTEEwnA=", + "owner": "ray-x", + "repo": "lsp_signature.nvim", + "rev": "529e8861d0410389f0163a5e5c2199d4a4ef5bf6", + "type": "github" + }, + "original": { + "owner": "ray-x", + "repo": "lsp_signature.nvim", + "type": "github" + } + }, + "plugin-lspkind": { + "flake": false, + "locked": { + "lastModified": 1704982040, + "narHash": "sha256-/QLdBU/Zwmkw1NGuLBD48tvrmIP9d9WHhgcLEQgRTWo=", + "owner": "onsails", + "repo": "lspkind-nvim", + "rev": "1735dd5a5054c1fb7feaf8e8658dbab925f4f0cf", + "type": "github" + }, + "original": { + "owner": "onsails", + "repo": "lspkind-nvim", + "type": "github" + } + }, + "plugin-lspsaga": { + "flake": false, + "locked": { + "lastModified": 1670360222, + "narHash": "sha256-7ENInq3LAPPTdm0Fb7klOc630j8m4LRj1kLZZFYLh68=", + "owner": "tami5", + "repo": "lspsaga.nvim", + "rev": "5faeec9f2508d2d49a66c0ac0d191096b4e3fa81", + "type": "github" + }, + "original": { + "owner": "tami5", + "repo": "lspsaga.nvim", + "type": "github" + } + }, + "plugin-lualine": { + "flake": false, + "locked": { + "lastModified": 1712310396, + "narHash": "sha256-WcH2dWdRDgMkwBQhcgT+Z/ArMdm+VbRhmQftx4t2kNI=", + "owner": "hoob3rt", + "repo": "lualine.nvim", + "rev": "0a5a66803c7407767b799067986b4dc3036e1983", + "type": "github" + }, + "original": { + "owner": "hoob3rt", + "repo": "lualine.nvim", + "type": "github" + } + }, + "plugin-mind-nvim": { + "flake": false, + "locked": { + "lastModified": 1679526071, + "narHash": "sha256-JIhAhQYGLLRucwlhzfckQYU5qjqbHtNH52JlGS5a79w=", + "owner": "phaazon", + "repo": "mind.nvim", + "rev": "002137dd7cf97865ebd01b6a260209d2daf2da66", + "type": "github" + }, + "original": { + "owner": "phaazon", + "repo": "mind.nvim", + "type": "github" + } + }, + "plugin-minimap-vim": { + "flake": false, + "locked": { + "lastModified": 1710689313, + "narHash": "sha256-GR8VAHla5HWry1TAZQv0Xp7iG256vIGeQcBGMxyt310=", + "owner": "wfxr", + "repo": "minimap.vim", + "rev": "395378137e6180762d5b963ca9ad5ac2db5d3283", + "type": "github" + }, + "original": { + "owner": "wfxr", + "repo": "minimap.vim", + "type": "github" + } + }, + "plugin-modes-nvim": { + "flake": false, + "locked": { + "lastModified": 1702245923, + "narHash": "sha256-Kd2hf5obrPvCVLtRcFjLd75byyrB2o3uYCSEMW6IeCc=", + "owner": "mvllow", + "repo": "modes.nvim", + "rev": "4035a46aaabe43faf1b54740575af9dd5bb03809", + "type": "github" + }, + "original": { + "owner": "mvllow", + "repo": "modes.nvim", + "type": "github" + } + }, + "plugin-neo-tree-nvim": { + "flake": false, + "locked": { + "lastModified": 1713050882, + "narHash": "sha256-cZwOVpdMT0NCtp6Ha592QA2RzKVS6LhXXcjfDBCQ+0k=", + "owner": "nvim-neo-tree", + "repo": "neo-tree.nvim", + "rev": "22e566aeb075c94f670f34077e05ba95190dfb4a", + "type": "github" + }, + "original": { + "owner": "nvim-neo-tree", + "repo": "neo-tree.nvim", + "type": "github" + } + }, + "plugin-neocord": { + "flake": false, + "locked": { + "lastModified": 1713923379, + "narHash": "sha256-oVWdnQlgXIMzMiybMq7yR/WfEW+Fm5RmhWx0RWprlfQ=", + "owner": "IogaMaster", + "repo": "neocord", + "rev": "aa7a58023166533da83ca7b11c0d2569e45d7381", + "type": "github" + }, + "original": { + "owner": "IogaMaster", + "repo": "neocord", + "type": "github" + } + }, + "plugin-neodev-nvim": { + "flake": false, + "locked": { + "lastModified": 1711715247, + "narHash": "sha256-mAJOMVN7/xO7ykVNAeTeX+z2A/7yB8zdqlEKHL6Pb74=", + "owner": "folke", + "repo": "neodev.nvim", + "rev": "ce9a2e8eaba5649b553529c5498acb43a6c317cd", + "type": "github" + }, + "original": { + "owner": "folke", + "repo": "neodev.nvim", + "type": "github" + } + }, + "plugin-noice-nvim": { + "flake": false, + "locked": { + "lastModified": 1716502618, + "narHash": "sha256-GrgFjVDIQcCfg5qyO6FnhlGUCrz6rwAFh81yZXUJra4=", + "owner": "folke", + "repo": "noice.nvim", + "rev": "f119045f38792ad5311e5f9be7a879e4c1a95fe0", + "type": "github" + }, + "original": { + "owner": "folke", + "repo": "noice.nvim", + "type": "github" + } + }, + "plugin-none-ls": { + "flake": false, + "locked": { + "lastModified": 1708525772, + "narHash": "sha256-VCDUKiy9C3Bu9suf2bI6XSis1+j01oFC3GFPyQxi74c=", + "owner": "nvimtools", + "repo": "none-ls.nvim", + "rev": "bb680d752cec37949faca7a1f509e2fe67ab418a", + "type": "github" + }, + "original": { + "owner": "nvimtools", + "repo": "none-ls.nvim", + "rev": "bb680d752cec37949faca7a1f509e2fe67ab418a", + "type": "github" + } + }, + "plugin-nui-nvim": { + "flake": false, + "locked": { + "lastModified": 1716019714, + "narHash": "sha256-JRVVRT1CZZTjr58L+gAer7eCg9/fMdAD0YD5ljNwl0Q=", + "owner": "MunifTanjim", + "repo": "nui.nvim", + "rev": "b1b3dcd6ed8f355c78bad3d395ff645be5f8b6ae", + "type": "github" + }, + "original": { + "owner": "MunifTanjim", + "repo": "nui.nvim", + "type": "github" + } + }, + "plugin-nvim-autopairs": { + "flake": false, + "locked": { + "lastModified": 1716158088, + "narHash": "sha256-YEAqjlzVrS/VLrkwGo3L7cNOE1LuyLYlBtkR2HA5oVk=", + "owner": "windwp", + "repo": "nvim-autopairs", + "rev": "c15de7e7981f1111642e7e53799e1211d4606cb9", + "type": "github" + }, + "original": { + "owner": "windwp", + "repo": "nvim-autopairs", + "type": "github" + } + }, + "plugin-nvim-bufferline-lua": { + "flake": false, + "locked": { + "lastModified": 1716555412, + "narHash": "sha256-8PCkY1zrlMrPGnQOb7MjqDXNlkeX46jrT4ScIL+MOwM=", + "owner": "akinsho", + "repo": "nvim-bufferline.lua", + "rev": "99337f63f0a3c3ab9519f3d1da7618ca4f91cffe", + "type": "github" + }, + "original": { + "owner": "akinsho", + "repo": "nvim-bufferline.lua", + "type": "github" + } + }, + "plugin-nvim-cmp": { + "flake": false, + "locked": { + "lastModified": 1715954188, + "narHash": "sha256-GhXfnWqpXFVM7Yi9+qEXHfA6LIMILcMG9pP4VYXuptE=", + "owner": "hrsh7th", + "repo": "nvim-cmp", + "rev": "5260e5e8ecadaf13e6b82cf867a909f54e15fd07", + "type": "github" + }, + "original": { + "owner": "hrsh7th", + "repo": "nvim-cmp", + "type": "github" + } + }, + "plugin-nvim-code-action-menu": { + "flake": false, + "locked": { + "lastModified": 1702287297, + "narHash": "sha256-pY+aP9iBuJhvDZzVEsOHZmnfaq3vUP7TfKEEQrj+Mo8=", + "owner": "weilbith", + "repo": "nvim-code-action-menu", + "rev": "8c7672a4b04d3cc4edd2c484d05b660a9cb34a1b", + "type": "github" + }, + "original": { + "owner": "weilbith", + "repo": "nvim-code-action-menu", + "type": "github" + } + }, + "plugin-nvim-colorizer-lua": { + "flake": false, + "locked": { + "lastModified": 1703321305, + "narHash": "sha256-oKvFN2K+ASlPNwj2rhptR/ErYgo6XKBPhXSZotDdCP0=", + "owner": "NvChad", + "repo": "nvim-colorizer.lua", + "rev": "85855b38011114929f4058efc97af1059ab3e41d", + "type": "github" + }, + "original": { + "owner": "NvChad", + "repo": "nvim-colorizer.lua", + "type": "github" + } + }, + "plugin-nvim-cursorline": { + "flake": false, + "locked": { + "lastModified": 1650034925, + "narHash": "sha256-Uhw65p1KBjs8KsVOmTzuiu3XKclxBob8AVdWEt30C/8=", + "owner": "yamatsum", + "repo": "nvim-cursorline", + "rev": "804f0023692653b2b2368462d67d2a87056947f9", + "type": "github" + }, + "original": { + "owner": "yamatsum", + "repo": "nvim-cursorline", + "type": "github" + } + }, + "plugin-nvim-dap": { + "flake": false, + "locked": { + "lastModified": 1716747841, + "narHash": "sha256-uzivFy0ZNLxAXDqkYNrNy1SSHPRrGv3OLVCNCRDiikU=", + "owner": "mfussenegger", + "repo": "nvim-dap", + "rev": "922ebc75c2fa9305e36402fbd8c984c8638770a0", + "type": "github" + }, + "original": { + "owner": "mfussenegger", + "repo": "nvim-dap", + "type": "github" + } + }, + "plugin-nvim-dap-go": { + "flake": false, + "locked": { + "lastModified": 1716775637, + "narHash": "sha256-B8A+ven18YgePLxAN3Q/j5NFb0FeTHCQak1uzaNDX9c=", + "owner": "leoluz", + "repo": "nvim-dap-go", + "rev": "a0c5a2b991d7e9304a9a032cf177e22a4b0acda1", + "type": "github" + }, + "original": { + "owner": "leoluz", + "repo": "nvim-dap-go", + "type": "github" + } + }, + "plugin-nvim-dap-ui": { + "flake": false, + "locked": { + "lastModified": 1716237606, + "narHash": "sha256-paiyLNzqUq9G3U8qn8yl1AjHJzTTa17exA05QO09nGA=", + "owner": "rcarriga", + "repo": "nvim-dap-ui", + "rev": "334cf3038c4756e6ab999cbac67c847fb654c190", + "type": "github" + }, + "original": { + "owner": "rcarriga", + "repo": "nvim-dap-ui", + "type": "github" + } + }, + "plugin-nvim-docs-view": { + "flake": false, + "locked": { + "lastModified": 1705711563, + "narHash": "sha256-N5PrJKhF6pHkel4EyAllNdEYQRninfSyaAXPbuAiD+s=", + "owner": "amrbashir", + "repo": "nvim-docs-view", + "rev": "78d88bca16f32a430572758677f9246f6d7f7b94", + "type": "github" + }, + "original": { + "owner": "amrbashir", + "repo": "nvim-docs-view", + "type": "github" + } + }, + "plugin-nvim-lightbulb": { + "flake": false, + "locked": { + "lastModified": 1689887436, + "narHash": "sha256-Meoop66jINllnxN6aohuPmU7DEjn64FMq/b8zuy9FEQ=", + "owner": "kosayoda", + "repo": "nvim-lightbulb", + "rev": "8f00b89dd1b1dbde16872bee5fbcee2e58c9b8e9", + "type": "github" + }, + "original": { + "owner": "kosayoda", + "repo": "nvim-lightbulb", + "type": "github" + } + }, + "plugin-nvim-lspconfig": { + "flake": false, + "locked": { + "lastModified": 1716498901, + "narHash": "sha256-PMMqPDnq4Q8gWeKQ2WPE+pOf1R1G61wJ+bAWkHpQlzE=", + "owner": "neovim", + "repo": "nvim-lspconfig", + "rev": "b972e7154bc94ab4ecdbb38c8edbccac36f83996", + "type": "github" + }, + "original": { + "owner": "neovim", + "repo": "nvim-lspconfig", + "type": "github" + } + }, + "plugin-nvim-navbuddy": { + "flake": false, + "locked": { + "lastModified": 1716111817, + "narHash": "sha256-sZ1M27qNbLMHKR4Zu0NfJoBcQxJbhmW7Cx74Acirlww=", + "owner": "SmiteshP", + "repo": "nvim-navbuddy", + "rev": "f22bac988f2dd073601d75ba39ea5636ab6e38cb", + "type": "github" + }, + "original": { + "owner": "SmiteshP", + "repo": "nvim-navbuddy", + "type": "github" + } + }, + "plugin-nvim-navic": { + "flake": false, + "locked": { + "lastModified": 1701345631, + "narHash": "sha256-0p5n/V8Jlj9XyxV/fuMwsbQ7oV5m9H2GqZZEA/njxCQ=", + "owner": "SmiteshP", + "repo": "nvim-navic", + "rev": "8649f694d3e76ee10c19255dece6411c29206a54", + "type": "github" + }, + "original": { + "owner": "SmiteshP", + "repo": "nvim-navic", + "type": "github" + } + }, + "plugin-nvim-neoclip": { + "flake": false, + "locked": { + "lastModified": 1701664728, + "narHash": "sha256-QtqLKdrDGzIiSEo3DZtv0C7wx3KlrcyePoIYdvH6vpk=", + "owner": "AckslD", + "repo": "nvim-neoclip.lua", + "rev": "798cd0592a81c185465db3a091a0ff8a21af60fd", + "type": "github" + }, + "original": { + "owner": "AckslD", + "repo": "nvim-neoclip.lua", + "type": "github" + } + }, + "plugin-nvim-nio": { + "flake": false, + "locked": { + "lastModified": 1716391538, + "narHash": "sha256-UffuTu7mF96LHk0MQRNrsgDyo1QWa/1i5eJKjZkuG8k=", + "owner": "nvim-neotest", + "repo": "nvim-nio", + "rev": "632024157d01e8bc48fd7df6a7de8ffe3fdd4f3a", + "type": "github" + }, + "original": { + "owner": "nvim-neotest", + "repo": "nvim-nio", + "type": "github" + } + }, + "plugin-nvim-notify": { + "flake": false, + "locked": { + "lastModified": 1715959703, + "narHash": "sha256-wxyHwL/uFdp6w32CVHgSOWkzRrIRuFvWh+J2401RAAA=", + "owner": "rcarriga", + "repo": "nvim-notify", + "rev": "d333b6f167900f6d9d42a59005d82919830626bf", + "type": "github" + }, + "original": { + "owner": "rcarriga", + "repo": "nvim-notify", + "type": "github" + } + }, + "plugin-nvim-session-manager": { + "flake": false, + "locked": { + "lastModified": 1716560093, + "narHash": "sha256-A6oHIg8PG84L7QIRpo9WXKzMq4EUe92jQIxObOxpFmg=", + "owner": "Shatur", + "repo": "neovim-session-manager", + "rev": "b552ee8667037be5d0291229279a35af25e515fb", + "type": "github" + }, + "original": { + "owner": "Shatur", + "repo": "neovim-session-manager", + "type": "github" + } + }, + "plugin-nvim-surround": { + "flake": false, + "locked": { + "lastModified": 1715892699, + "narHash": "sha256-Mg60htwXPqNKu+JnexKiKF3Huvr7pBNdvc6f3Kt2FRA=", + "owner": "kylechui", + "repo": "nvim-surround", + "rev": "79aaa42da1f698ed31bcbe7f83081f69dca7ba17", + "type": "github" + }, + "original": { + "owner": "kylechui", + "repo": "nvim-surround", + "type": "github" + } + }, + "plugin-nvim-tree-lua": { + "flake": false, + "locked": { + "lastModified": 1716687243, + "narHash": "sha256-E6J9d0LJMK+Owj/iWbGVZBiVL/NI1xd5P0NNQpUmXj4=", + "owner": "nvim-tree", + "repo": "nvim-tree.lua", + "rev": "517e4fbb9ef3c0986da7047f44b4b91a2400f93c", + "type": "github" + }, + "original": { + "owner": "nvim-tree", + "repo": "nvim-tree.lua", + "type": "github" + } + }, + "plugin-nvim-treesitter-context": { + "flake": false, + "locked": { + "lastModified": 1716388265, + "narHash": "sha256-EY5Si6t7LXcxOP3ubGAAMd3lgbeaCOCIybSKi1Ucx98=", + "owner": "nvim-treesitter", + "repo": "nvim-treesitter-context", + "rev": "f62bfe19e0fbc13ae95649dfb3cf22f4ff85b683", + "type": "github" + }, + "original": { + "owner": "nvim-treesitter", + "repo": "nvim-treesitter-context", + "type": "github" + } + }, + "plugin-nvim-ts-autotag": { + "flake": false, + "locked": { + "lastModified": 1716420040, + "narHash": "sha256-gy6OVR2iH361XMDDo0dqxJsAxo+5nXr3wP42pieeCUg=", + "owner": "windwp", + "repo": "nvim-ts-autotag", + "rev": "8ae54b90e36ef1fc5267214b30c2cbff71525fe4", + "type": "github" + }, + "original": { + "owner": "windwp", + "repo": "nvim-ts-autotag", + "type": "github" + } + }, + "plugin-nvim-web-devicons": { + "flake": false, + "locked": { + "lastModified": 1716609001, + "narHash": "sha256-fmbsnNVZ6nBorBILwPfEgcDDWZCkh9YZH/aC343FxP4=", + "owner": "nvim-tree", + "repo": "nvim-web-devicons", + "rev": "b77921fdc44833c994fdb389d658ccbce5490c16", + "type": "github" + }, + "original": { + "owner": "nvim-tree", + "repo": "nvim-web-devicons", + "type": "github" + } + }, + "plugin-obsidian-nvim": { + "flake": false, + "locked": { + "lastModified": 1716489161, + "narHash": "sha256-R7q3PmDMYQtDTE1JZgQtvArBq55MnvNdcChOsuivSCo=", + "owner": "epwalsh", + "repo": "obsidian.nvim", + "rev": "0890a3f4e1711d98b5aa78bf40d2c5b81ef3c39f", + "type": "github" + }, + "original": { + "owner": "epwalsh", + "repo": "obsidian.nvim", + "type": "github" + } + }, + "plugin-onedark": { + "flake": false, + "locked": { + "lastModified": 1715454207, + "narHash": "sha256-GERMsVNELbeRrKsiPeSKcwNI+bH4C79koTBRtRMGqvc=", + "owner": "navarasu", + "repo": "onedark.nvim", + "rev": "8e4b79b0e6495ddf29552178eceba1e147e6cecf", + "type": "github" + }, + "original": { + "owner": "navarasu", + "repo": "onedark.nvim", + "type": "github" + } + }, + "plugin-orgmode-nvim": { + "flake": false, + "locked": { + "lastModified": 1716750850, + "narHash": "sha256-3xsdklkUuJwUzUieZT6eGIgDZUdVEGeyhxxUe99TOAA=", + "owner": "nvim-orgmode", + "repo": "orgmode", + "rev": "cb3c9bf6caf3411af88a9a1a0b7eb9be57b9741c", + "type": "github" + }, + "original": { + "owner": "nvim-orgmode", + "repo": "orgmode", + "type": "github" + } + }, + "plugin-oxocarbon": { + "flake": false, + "locked": { + "lastModified": 1701119822, + "narHash": "sha256-++JALLPklok9VY2ChOddTYDvDNVadmCeB98jCAJYCZ0=", + "owner": "nyoom-engineering", + "repo": "oxocarbon.nvim", + "rev": "c5846d10cbe4131cc5e32c6d00beaf59cb60f6a2", + "type": "github" + }, + "original": { + "owner": "nyoom-engineering", + "repo": "oxocarbon.nvim", + "type": "github" + } + }, + "plugin-plenary-nvim": { + "flake": false, + "locked": { + "lastModified": 1716230027, + "narHash": "sha256-5Jf2mWFVDofXBcXLbMa417mqlEPWLA+cQIZH/vNEV1g=", + "owner": "nvim-lua", + "repo": "plenary.nvim", + "rev": "a3e3bc82a3f95c5ed0d7201546d5d2c19b20d683", + "type": "github" + }, + "original": { + "owner": "nvim-lua", + "repo": "plenary.nvim", + "type": "github" + } + }, + "plugin-project-nvim": { + "flake": false, + "locked": { + "lastModified": 1680567592, + "narHash": "sha256-avV3wMiDbraxW4mqlEsKy0oeewaRj9Q33K8NzWoaptU=", + "owner": "ahmedkhalf", + "repo": "project.nvim", + "rev": "8c6bad7d22eef1b71144b401c9f74ed01526a4fb", + "type": "github" + }, + "original": { + "owner": "ahmedkhalf", + "repo": "project.nvim", + "type": "github" + } + }, + "plugin-registers": { + "flake": false, + "locked": { + "lastModified": 1703954003, + "narHash": "sha256-/MwIOR7H6ZkH/uLZOcMgg9XOWQB0yYYonbSKl51bXzo=", + "owner": "tversteeg", + "repo": "registers.nvim", + "rev": "22bb98f93a423252fffeb3531f7bc12a3e07b63f", + "type": "github" + }, + "original": { + "owner": "tversteeg", + "repo": "registers.nvim", + "type": "github" + } + }, + "plugin-rose-pine": { + "flake": false, + "locked": { + "lastModified": 1716691958, + "narHash": "sha256-mpBx0R9tR4KrOMO9J0gg2aOeHtiU9zK8xoa7Ebkx0n8=", + "owner": "rose-pine", + "repo": "neovim", + "rev": "87aa437172357ad8f916942bca249ceadc6c68b1", + "type": "github" + }, + "original": { + "owner": "rose-pine", + "repo": "neovim", + "type": "github" + } + }, + "plugin-rustaceanvim": { + "flake": false, + "locked": { + "lastModified": 1720595685, + "narHash": "sha256-Mx8pB9ECjFpbfmZPuXfpwoE5pUZ363M53f27ht7MBmA=", + "owner": "mrcjkb", + "repo": "rustaceanvim", + "rev": "047f9c9d8cd2861745eb9de6c1570ee0875aa795", + "type": "github" + }, + "original": { + "owner": "mrcjkb", + "repo": "rustaceanvim", + "type": "github" + } + }, + "plugin-scrollbar-nvim": { + "flake": false, + "locked": { + "lastModified": 1684886154, + "narHash": "sha256-zLBexSxQCn9HPY04a9w/UCJP1F5ShI2X12I9xE9H0cM=", + "owner": "petertriho", + "repo": "nvim-scrollbar", + "rev": "35f99d559041c7c0eff3a41f9093581ceea534e8", + "type": "github" + }, + "original": { + "owner": "petertriho", + "repo": "nvim-scrollbar", + "type": "github" + } + }, + "plugin-smartcolumn": { + "flake": false, + "locked": { + "lastModified": 1710067624, + "narHash": "sha256-DHIeDNUF9n9s14GVeojIwc5QUPwJMYYl3gRvhvO/rdE=", + "owner": "m4xshen", + "repo": "smartcolumn.nvim", + "rev": "cefb17be095ad5526030a21bb2a80553cae09127", + "type": "github" + }, + "original": { + "owner": "m4xshen", + "repo": "smartcolumn.nvim", + "type": "github" + } + }, + "plugin-sqls-nvim": { + "flake": false, + "locked": { + "lastModified": 1684697500, + "narHash": "sha256-jKFut6NZAf/eIeIkY7/2EsjsIhvZQKCKAJzeQ6XSr0s=", + "owner": "nanotee", + "repo": "sqls.nvim", + "rev": "4b1274b5b44c48ce784aac23747192f5d9d26207", + "type": "github" + }, + "original": { + "owner": "nanotee", + "repo": "sqls.nvim", + "type": "github" + } + }, + "plugin-tabular": { + "flake": false, + "locked": { + "lastModified": 1550598128, + "narHash": "sha256-irolBA/m3YIaezl+90h5G+xUOpad+3u44uJqDs4JCUs=", + "owner": "godlygeek", + "repo": "tabular", + "rev": "339091ac4dd1f17e225fe7d57b48aff55f99b23a", + "type": "github" + }, + "original": { + "owner": "godlygeek", + "repo": "tabular", + "type": "github" + } + }, + "plugin-telescope": { + "flake": false, + "locked": { + "lastModified": 1716732931, + "narHash": "sha256-JXdpKfrSvrzpTqy+g9Bg85/vIDTUZfDr+ZhxH8wJDxA=", + "owner": "nvim-telescope", + "repo": "telescope.nvim", + "rev": "349660c0d35da06459ee8589af77de2086b652ce", + "type": "github" + }, + "original": { + "owner": "nvim-telescope", + "repo": "telescope.nvim", + "type": "github" + } + }, + "plugin-todo-comments": { + "flake": false, + "locked": { + "lastModified": 1716400082, + "narHash": "sha256-ZJp0emoHogSdhXPIH74MH4CznxhCmMbO243dqxAZMJo=", + "owner": "folke", + "repo": "todo-comments.nvim", + "rev": "e1549807066947818113a7d7ed48f637e49620d3", + "type": "github" + }, + "original": { + "owner": "folke", + "repo": "todo-comments.nvim", + "type": "github" + } + }, + "plugin-toggleterm-nvim": { + "flake": false, + "locked": { + "lastModified": 1716115307, + "narHash": "sha256-h82zisizLm0FOt4l8lzgC/spFk3R5Gx25A5YgULwW8U=", + "owner": "akinsho", + "repo": "toggleterm.nvim", + "rev": "fee58a0473fd92b28c34f8f724e4918b15ba30a3", + "type": "github" + }, + "original": { + "owner": "akinsho", + "repo": "toggleterm.nvim", + "type": "github" + } + }, + "plugin-tokyonight": { + "flake": false, + "locked": { + "lastModified": 1716732360, + "narHash": "sha256-ZWxK0q8kUYHOk+ykH1m4901trnuHN8O9hkOZR6HdC+Y=", + "owner": "folke", + "repo": "tokyonight.nvim", + "rev": "0fae425aaab04a5f97666bd431b96f2f19c36935", + "type": "github" + }, + "original": { + "owner": "folke", + "repo": "tokyonight.nvim", + "type": "github" + } + }, + "plugin-trouble": { + "flake": false, + "locked": { + "lastModified": 1716133735, + "narHash": "sha256-D3dqI4NRgEG4BCDLQ3ci9lgYxt90XyWDQXlk4/uuR6M=", + "owner": "folke", + "repo": "trouble.nvim", + "rev": "a8264a65a0b894832ea642844f5b7c30112c458f", + "type": "github" + }, + "original": { + "owner": "folke", + "repo": "trouble.nvim", + "type": "github" + } + }, + "plugin-ts-error-translator": { + "flake": false, + "locked": { + "lastModified": 1712269172, + "narHash": "sha256-NJ0qfKvkwZ/0GolAeATlQLyQ7nGN6Z6q3uRqI+73wPk=", + "owner": "dmmulroy", + "repo": "ts-error-translator.nvim", + "rev": "11ae55b28bde02663b5f983f59b0e3fd9c4e845b", + "type": "github" + }, + "original": { + "owner": "dmmulroy", + "repo": "ts-error-translator.nvim", + "type": "github" + } + }, + "plugin-vim-dirtytalk": { + "flake": false, + "locked": { + "lastModified": 1713047519, + "narHash": "sha256-azU5jkv/fD/qDDyCU1bPNXOH6rmbDauG9jDNrtIXc0Y=", + "owner": "psliwka", + "repo": "vim-dirtytalk", + "rev": "aa57ba902b04341a04ff97214360f56856493583", + "type": "github" + }, + "original": { + "owner": "psliwka", + "repo": "vim-dirtytalk", + "type": "github" + } + }, + "plugin-vim-fugitive": { + "flake": false, + "locked": { + "lastModified": 1716130336, + "narHash": "sha256-nyNtb3nsS/zFdSNRyXabcGIabAwgivJIUFB2c62vXmA=", + "owner": "tpope", + "repo": "vim-fugitive", + "rev": "4f59455d2388e113bd510e85b310d15b9228ca0d", + "type": "github" + }, + "original": { + "owner": "tpope", + "repo": "vim-fugitive", + "type": "github" + } + }, + "plugin-vim-illuminate": { + "flake": false, + "locked": { + "lastModified": 1715960194, + "narHash": "sha256-DdJzTHxoOv+vjFymETa2MgXpM/qDwvZjpoo1W8OOBj0=", + "owner": "RRethy", + "repo": "vim-illuminate", + "rev": "5eeb7951fc630682c322e88a9bbdae5c224ff0aa", + "type": "github" + }, + "original": { + "owner": "RRethy", + "repo": "vim-illuminate", + "type": "github" + } + }, + "plugin-vim-markdown": { + "flake": false, + "locked": { + "lastModified": 1709279705, + "narHash": "sha256-eKwWdyvMZ7FV3FvOtqWVD7pulXNnhbEEjHq7MYg1woU=", + "owner": "preservim", + "repo": "vim-markdown", + "rev": "a657e697376909c41475a686eeef7fc7a4972d94", + "type": "github" + }, + "original": { + "owner": "preservim", + "repo": "vim-markdown", + "type": "github" + } + }, + "plugin-vim-repeat": { + "flake": false, + "locked": { + "lastModified": 1611544268, + "narHash": "sha256-8rfZa3uKXB3TRCqaDHZ6DfzNbm7WaYnLvmTNzYtnKHg=", + "owner": "tpope", + "repo": "vim-repeat", + "rev": "24afe922e6a05891756ecf331f39a1f6743d3d5a", + "type": "github" + }, + "original": { + "owner": "tpope", + "repo": "vim-repeat", + "type": "github" + } + }, + "plugin-vim-startify": { + "flake": false, + "locked": { + "lastModified": 1695213983, + "narHash": "sha256-W5N/Dqxf9hSXEEJsrEkXInFwBXNBJe9Dzx9TVS12mPk=", + "owner": "mhinz", + "repo": "vim-startify", + "rev": "4e089dffdad46f3f5593f34362d530e8fe823dcf", + "type": "github" + }, + "original": { + "owner": "mhinz", + "repo": "vim-startify", + "type": "github" + } + }, + "plugin-vim-vsnip": { + "flake": false, + "locked": { + "lastModified": 1704937299, + "narHash": "sha256-gvm6z4pgSULBVPukewRyjwxZ0vZgreQWbG/0kOB1QBo=", + "owner": "hrsh7th", + "repo": "vim-vsnip", + "rev": "02a8e79295c9733434aab4e0e2b8c4b7cea9f3a9", + "type": "github" + }, + "original": { + "owner": "hrsh7th", + "repo": "vim-vsnip", + "type": "github" + } + }, + "plugin-which-key": { + "flake": false, + "locked": { + "lastModified": 1697801635, + "narHash": "sha256-uvghPj/teWrRMm09Gh8iQ/LV2nYJw0lmoiZK6L4+1cY=", + "owner": "folke", + "repo": "which-key.nvim", + "rev": "4433e5ec9a507e5097571ed55c02ea9658fb268a", + "type": "github" + }, + "original": { + "owner": "folke", + "repo": "which-key.nvim", + "type": "github" + } + }, + "rnix-lsp": { + "inputs": { + "naersk": "naersk", + "nixpkgs": "nixpkgs_13", + "utils": "utils" + }, + "locked": { + "lastModified": 1669555118, + "narHash": "sha256-F0s0m62S5bHNVWNHLZD6SeHiLrsDx98VQbRjDyIu+qQ=", + "owner": "nix-community", + "repo": "rnix-lsp", + "rev": "95d40673fe43642e2e1144341e86d0036abd95d9", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "rnix-lsp", + "type": "github" } }, "root": { @@ -1714,8 +3408,8 @@ "nixpkgs": "nixpkgs_8", "nixpkgs-small": "nixpkgs-small", "ooks-scripts": "ooks-scripts", - "ookvim": "ookvim", - "systems": "systems_10", + "ooks-vim": "ooks-vim", + "systems": "systems_12", "xdg-portal-hyprland": "xdg-portal-hyprland", "zjstatus": "zjstatus" } @@ -1771,6 +3465,35 @@ } }, "rust-overlay_3": { + "inputs": { + "flake-utils": [ + "ooks-vim", + "nvf", + "nil", + "flake-utils" + ], + "nixpkgs": [ + "ooks-vim", + "nvf", + "nil", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1714529851, + "narHash": "sha256-YMKJW880f7LHXVRzu93xa6Ek+QLECIu0IRQbXbzZe38=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "9ca720fdcf7865385ae3b93ecdf65f1a64cb475e", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" + } + }, + "rust-overlay_4": { "inputs": { "nixpkgs": [ "zjstatus", @@ -1824,31 +3547,31 @@ }, "systems_10": { "locked": { - "lastModified": 1689347949, - "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", "owner": "nix-systems", - "repo": "default-linux", - "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", "type": "github" }, "original": { "owner": "nix-systems", - "repo": "default-linux", + "repo": "default", "type": "github" } }, "systems_11": { "locked": { - "lastModified": 1689347949, - "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", "owner": "nix-systems", - "repo": "default-linux", - "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", "type": "github" }, "original": { "owner": "nix-systems", - "repo": "default-linux", + "repo": "default", "type": "github" } }, @@ -1868,6 +3591,36 @@ } }, "systems_13": { + "locked": { + "lastModified": 1689347949, + "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", + "owner": "nix-systems", + "repo": "default-linux", + "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default-linux", + "type": "github" + } + }, + "systems_14": { + "locked": { + "lastModified": 1689347949, + "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", + "owner": "nix-systems", + "repo": "default-linux", + "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default-linux", + "type": "github" + } + }, + "systems_15": { "locked": { "lastModified": 1681028828, "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", @@ -2023,25 +3776,18 @@ "type": "github" } }, - "treefmt-nix_2": { - "inputs": { - "nixpkgs": [ - "ookvim", - "nixvim", - "nixpkgs" - ] - }, + "utils": { "locked": { - "lastModified": 1719243788, - "narHash": "sha256-9T9mSY35EZSM1KAwb7K9zwQ78qTlLjosZgtUGnw4rn4=", + "lastModified": 1656928814, + "narHash": "sha256-RIFfgBuKz6Hp89yRr7+NR5tzIAbn52h8vT6vXkYjZoM=", "owner": "numtide", - "repo": "treefmt-nix", - "rev": "065a23edceff48f948816b795ea8cc6c0dee7cdf", + "repo": "flake-utils", + "rev": "7e2a3b3dfd9af950a856d66b0a7d01e3c18aa249", "type": "github" }, "original": { "owner": "numtide", - "repo": "treefmt-nix", + "repo": "flake-utils", "type": "github" } }, @@ -2071,8 +3817,8 @@ "inputs": { "hyprland-protocols": "hyprland-protocols_2", "hyprlang": "hyprlang_5", - "nixpkgs": "nixpkgs_12", - "systems": "systems_12" + "nixpkgs": "nixpkgs_15", + "systems": "systems_14" }, "locked": { "lastModified": 1721755049, @@ -2118,12 +3864,32 @@ "type": "github" } }, + "zig": { + "inputs": { + "flake-compat": "flake-compat", + "flake-utils": "flake-utils_6", + "nixpkgs": "nixpkgs_14" + }, + "locked": { + "lastModified": 1716725305, + "narHash": "sha256-LIz08gALt2wlutGXAEhNroEoIuPV5ePQB8LI4WzXcy8=", + "owner": "mitchellh", + "repo": "zig-overlay", + "rev": "93b02a697561ecd438cfa5779727b5a1c300cb4c", + "type": "github" + }, + "original": { + "owner": "mitchellh", + "repo": "zig-overlay", + "type": "github" + } + }, "zjstatus": { "inputs": { "crane": "crane_2", - "flake-utils": "flake-utils_6", - "nixpkgs": "nixpkgs_13", - "rust-overlay": "rust-overlay_3" + "flake-utils": "flake-utils_7", + "nixpkgs": "nixpkgs_16", + "rust-overlay": "rust-overlay_4" }, "locked": { "lastModified": 1721054167, diff --git a/flake.nix b/flake.nix index 869a9db..6452cb7 100644 --- a/flake.nix +++ b/flake.nix @@ -2,9 +2,12 @@ # ooknet description = "a nix configuration written by an orangutan"; - outputs = { flake-parts, self, ... } @ inputs: - flake-parts.lib.mkFlake { inherit inputs; } ({withSystem, ... }: { - + outputs = { + flake-parts, + self, + ... + } @ inputs: + flake-parts.lib.mkFlake {inherit inputs;} ({withSystem, ...}: { systems = import inputs.systems; imports = [ @@ -16,11 +19,13 @@ nixosConfigurations = import ./outputs/nixos.nix {inherit self inputs withSystem;}; }; + perSystem = {pkgs, ...}: { + formatter = pkgs.alejandra; + }; }); # External inputs we depend on inputs = { - # unstable because why not nixpkgs.url = "github:Nixos/nixpkgs/nixos-unstable"; nixpkgs-small.url = "github:Nixos/nixpkgs/nixos-unstable-small"; @@ -32,14 +37,14 @@ systems.url = "github:nix-systems/default-linux"; # split your flake into... parts? flake-parts = { - url = "github:hercules-ci/flake-parts"; + url = "github:hercules-ci/flake-parts"; inputs.nixpkgs-lib.follows = "nixpkgs"; }; # dotfile configuration home-manager = { url = "github:nix-community/home-manager"; - inputs.nixpkgs.follows = "nixpkgs"; + inputs.nixpkgs.follows = "nixpkgs"; }; nix-index-db = { @@ -93,7 +98,7 @@ }; # neovim configured with nix - ookvim.url = "git+ssh://git@github.com/ooks-io/ookvim"; + ooks-vim.url = "git+ssh://git@github.com/ooks-io/ooks-vim"; # packaged firefox addons firefox-addons = { diff --git a/home/modules/appearance/cursor.nix b/home/modules/appearance/cursor.nix index df272c6..43b57a8 100644 --- a/home/modules/appearance/cursor.nix +++ b/home/modules/appearance/cursor.nix @@ -1,11 +1,11 @@ -{ lib, config, ... }: - -let +{ + lib, + config, + ... +}: let inherit (lib) mkIf; cfg = config.ooknet.cursor; -in - -{ +in { config = mkIf cfg.enable { home.pointerCursor = { package = cfg.package; @@ -16,4 +16,3 @@ in }; }; } - diff --git a/home/modules/appearance/default.nix b/home/modules/appearance/default.nix index f0f91b0..e18447b 100644 --- a/home/modules/appearance/default.nix +++ b/home/modules/appearance/default.nix @@ -1,4 +1,4 @@ -{ +{ imports = [ ./fonts.nix ./cursor.nix diff --git a/home/modules/appearance/fonts.nix b/home/modules/appearance/fonts.nix index 53ebde2..edf77a8 100644 --- a/home/modules/appearance/fonts.nix +++ b/home/modules/appearance/fonts.nix @@ -1,21 +1,21 @@ -{ lib, config, pkgs, ... }: - -let +{ + lib, + config, + pkgs, + ... +}: let inherit (lib) mkIf; cfg = config.ooknet.fonts; -in - -{ +in { config = mkIf cfg.enable { fonts.fontconfig.enable = true; - home.packages = [ + home.packages = [ cfg.monospace.package cfg.regular.package pkgs.noto-fonts pkgs.noto-fonts-cjk pkgs.noto-fonts-emoji - ]; + ]; }; } - diff --git a/home/modules/appearance/gtk.nix b/home/modules/appearance/gtk.nix index a03684f..73e27a6 100644 --- a/home/modules/appearance/gtk.nix +++ b/home/modules/appearance/gtk.nix @@ -1,12 +1,15 @@ -{ config, pkgs, inputs, lib, ... }: - -let - inherit (inputs.nix-colors.lib-contrib { inherit pkgs; }) gtkThemeFromScheme; +{ + config, + pkgs, + inputs, + lib, + ... +}: let + inherit (inputs.nix-colors.lib-contrib {inherit pkgs;}) gtkThemeFromScheme; inherit (lib) mkIf; cfg = config.ooknet.gtk; -in -{ - config = mkIf cfg.enable (rec { +in { + config = mkIf cfg.enable rec { gtk = { enable = true; font = { @@ -15,7 +18,7 @@ in }; theme = { name = config.colorscheme.slug; - package = gtkThemeFromScheme { scheme = config.colorscheme; }; + package = gtkThemeFromScheme {scheme = config.colorscheme;}; }; iconTheme = { name = "Papirus-Dark"; @@ -30,6 +33,5 @@ in "Net/IconThemeName" = gtk.iconTheme.name; }; }; - }); + }; } - diff --git a/home/modules/appearance/qt.nix b/home/modules/appearance/qt.nix index 11ec089..b2e9c7a 100644 --- a/home/modules/appearance/qt.nix +++ b/home/modules/appearance/qt.nix @@ -1,15 +1,16 @@ -{ config, lib, pkgs, ... }: - -let +{ + config, + lib, + pkgs, + ... +}: let inherit (lib) mkIf; cfg = config.ooknet.qt; -in - -{ +in { config = mkIf cfg.enable { qt = { enable = true; - style.name = "gtk2"; + style.name = "gtk2"; platformTheme.name = "gtk2"; }; diff --git a/home/modules/appearance/wallpaper.nix b/home/modules/appearance/wallpaper.nix index 2e8b3ca..e35d4de 100644 --- a/home/modules/appearance/wallpaper.nix +++ b/home/modules/appearance/wallpaper.nix @@ -1,19 +1,23 @@ -{ lib, config, inputs, pkgs, osConfig, ... }: -let - inherit (inputs.nix-colors.lib-contrib { inherit pkgs; }) nixWallpaperFromScheme; +{ + lib, + config, + inputs, + pkgs, + osConfig, + ... +}: let + inherit (inputs.nix-colors.lib-contrib {inherit pkgs;}) nixWallpaperFromScheme; inherit (lib) mkDefault mkIf; monitors = osConfig.ooknet.host.hardware.monitors; cfg = config.ooknet.wallpaper; -in -{ +in { config = mkIf cfg.enable { - ooknet.wallpaper.path = - let - largest = f: xs: builtins.head (builtins.sort (a: b: a > b) (map f xs)); - largestWidth = largest (x: x.width) monitors; - largestHeight = largest (x: x.height) monitors; - in + ooknet.wallpaper.path = let + largest = f: xs: builtins.head (builtins.sort (a: b: a > b) (map f xs)); + largestWidth = largest (x: x.width) monitors; + largestHeight = largest (x: x.height) monitors; + in mkDefault (nixWallpaperFromScheme { scheme = config.colorscheme; @@ -23,4 +27,3 @@ in }); }; } - diff --git a/home/modules/base/home-manager.nix b/home/modules/base/home-manager.nix index 32ad894..a88bf9b 100644 --- a/home/modules/base/home-manager.nix +++ b/home/modules/base/home-manager.nix @@ -1,19 +1,20 @@ -{ lib, config, osConfig, ... }: - -let +{ + lib, + config, + osConfig, + ... +}: let inherit (lib) mkDefault; admin = osConfig.ooknet.host.admin; -in - -{ +in { programs.home-manager.enable = true; systemd.user.startServices = "sd-switch"; - + home = { username = admin.name; homeDirectory = "/home/${config.home.username}"; stateVersion = mkDefault "22.05"; - sessionPath = [ "${config.home.homeDirectory}/.local/bin" ]; + sessionPath = ["${config.home.homeDirectory}/.local/bin"]; sessionVariables = { TZ = "Pacific/Auckland"; }; diff --git a/home/modules/base/mime-apps.nix b/home/modules/base/mime-apps.nix index 0f71a1b..f9f985e 100644 --- a/home/modules/base/mime-apps.nix +++ b/home/modules/base/mime-apps.nix @@ -1,7 +1,5 @@ -{ pkgs, ... }: - -{ - home.packages = [ pkgs.xdg-utils ]; +{pkgs, ...}: { + home.packages = [pkgs.xdg-utils]; xdg.mimeApps = { enable = true; }; diff --git a/home/modules/base/user-dirs.nix b/home/modules/base/user-dirs.nix index 3391ec2..000a2f2 100644 --- a/home/modules/base/user-dirs.nix +++ b/home/modules/base/user-dirs.nix @@ -1,6 +1,4 @@ -{ config, ... }: - -{ +{config, ...}: { xdg = { enable = true; configHome = "${config.home.homeDirectory}/.config"; diff --git a/home/modules/console/editor/helix/default.nix b/home/modules/console/editor/helix/default.nix index 9d68453..44bd528 100644 --- a/home/modules/console/editor/helix/default.nix +++ b/home/modules/console/editor/helix/default.nix @@ -1,17 +1,19 @@ -{ inputs, config, pkgs, lib, ... }: - -let +{ + inputs, + config, + pkgs, + lib, + ... +}: let inherit (config) colorscheme; inherit (lib) mkIf; cfg = config.ooknet.editor.helix; console = config.ooknet.console; -in - -{ +in { imports = [ ./languages.nix ]; - + config = mkIf (cfg.enable || console.editor == "helix") { programs.helix = { enable = true; @@ -49,9 +51,9 @@ in select = "underline"; }; statusline = { - left = [ "mode" "spinner" ]; - center = [ "file-name" ]; - right = [ "diagnostics" "selections" "position" "file-encoding" "file-line-ending" "file-type" ]; + left = ["mode" "spinner"]; + center = ["file-name"]; + right = ["diagnostics" "selections" "position" "file-encoding" "file-line-ending" "file-type"]; }; lsp = { display-messages = true; @@ -64,7 +66,7 @@ in W = ":set whitespace.render none"; }; }; - themes = import ./theme.nix { inherit colorscheme; }; + themes = import ./theme.nix {inherit colorscheme;}; }; }; } diff --git a/home/modules/console/editor/helix/languages.nix b/home/modules/console/editor/helix/languages.nix index abddddc..2c3e91a 100644 --- a/home/modules/console/editor/helix/languages.nix +++ b/home/modules/console/editor/helix/languages.nix @@ -1,12 +1,13 @@ -{ pkgs, lib, config, ... }: - -let +{ + pkgs, + lib, + config, + ... +}: let inherit (lib) mkIf getExe; cfg = config.ooknet.editor.helix; console = config.ooknet.console; -in - -{ +in { config = mkIf (cfg.enable || console.editor == "helix") { programs.helix.languages = { language = let diff --git a/home/modules/console/editor/helix/theme.nix b/home/modules/console/editor/helix/theme.nix index 7847727..644b091 100644 --- a/home/modules/console/editor/helix/theme.nix +++ b/home/modules/console/editor/helix/theme.nix @@ -1,19 +1,21 @@ - -{ colorscheme }: { +{colorscheme}: { "${colorscheme.slug}" = { palette = builtins.mapAttrs (_name: value: "#${value}") colorscheme.colors; # Add leading '#' "attributes" = "base09"; - "comment" = { fg = "base03"; modifiers = [ "italic" ]; }; + "comment" = { + fg = "base03"; + modifiers = ["italic"]; + }; "constant" = "base09"; "constant.character.escape" = "base0C"; "constant.numeric" = "base09"; "constructor" = "base0D"; "debug" = "base03"; - "diagnostic" = { modifiers = [ "underlined" ]; }; - "diagnostic.error" = { underline = { style = "curl"; }; }; - "diagnostic.hint" = { underline = { style = "curl"; }; }; - "diagnostic.info" = { underline = { style = "curl"; }; }; - "diagnostic.warning" = { underline = { style = "curl"; }; }; + "diagnostic" = {modifiers = ["underlined"];}; + "diagnostic.error" = {underline = {style = "curl";};}; + "diagnostic.hint" = {underline = {style = "curl";};}; + "diagnostic.info" = {underline = {style = "curl";};}; + "diagnostic.warning" = {underline = {style = "curl";};}; "diff.delta" = "base09"; "diff.minus" = "base08"; "diff.plus" = "base0B"; @@ -23,49 +25,114 @@ "info" = "base0D"; "keyword" = "base0E"; "label" = "base0E"; - "markup.bold" = { fg = "base0A"; modifiers = [ "bold" ]; }; + "markup.bold" = { + fg = "base0A"; + modifiers = ["bold"]; + }; "markup.heading" = "base0D"; - "markup.italic" = { fg = "base0E"; modifiers = [ "italic" ]; }; + "markup.italic" = { + fg = "base0E"; + modifiers = ["italic"]; + }; "markup.link.text" = "base08"; - "markup.link.url" = { fg = "base09"; modifiers = [ "underlined" ]; }; + "markup.link.url" = { + fg = "base09"; + modifiers = ["underlined"]; + }; "markup.list" = "base08"; "markup.quote" = "base0C"; "markup.raw" = "base0B"; - "markup.strikethrough" = { modifiers = [ "crossed_out" ]; }; + "markup.strikethrough" = {modifiers = ["crossed_out"];}; "namespace" = "base0E"; "operator" = "base05"; "special" = "base0D"; "string" = "base0B"; "type" = "base0A"; - "ui.background" = { bg = "base00"; }; - "ui.bufferline" = { fg = "base04"; bg = "base00"; }; - "ui.bufferline.active" = { fg = "base00"; bg = "base03"; modifiers = [ "bold" ]; }; - "ui.cursor" = { fg = "base04"; modifiers = [ "reversed" ]; }; - "ui.cursor.insert" = { fg = "base0A"; modifiers = [ "underlined" ]; }; - "ui.cursor.match" = { fg = "base0A"; modifiers = [ "underlined" ]; }; - "ui.cursor.select" = { fg = "base0A"; modifiers = [ "underlined" ]; }; - "ui.cursorline.primary" = { fg = "base05"; bg = "base01"; }; - "ui.gutter" = { bg = "base00"; }; - "ui.help" = { fg = "base06"; bg = "base01"; }; - "ui.linenr" = { fg = "base03"; bg = "base00"; }; - "ui.linenr.selected" = { fg = "base04"; bg = "base01"; modifiers = [ "bold" ]; }; - "ui.menu" = { fg = "base05"; bg = "base01"; }; - "ui.menu.scroll" = { fg = "base03"; bg = "base01"; }; - "ui.menu.selected" = { fg = "base01"; bg = "base04"; }; - "ui.popup" = { bg = "base01"; }; - "ui.selection" = { bg = "base02"; }; - "ui.selection.primary" = { bg = "base02"; }; - "ui.statusline" = { fg = "base0B"; bg = "base02"; }; - "ui.statusline.inactive" = { bg = "base01"; fg = "base02"; }; - "ui.statusline.insert" = { fg = "base00"; bg = "base0B"; }; - "ui.statusline.normal" = { fg = "base00"; bg = "base04"; }; - "ui.statusline.select" = { fg = "base00"; bg = "base0E"; }; + "ui.background" = {bg = "base00";}; + "ui.bufferline" = { + fg = "base04"; + bg = "base00"; + }; + "ui.bufferline.active" = { + fg = "base00"; + bg = "base03"; + modifiers = ["bold"]; + }; + "ui.cursor" = { + fg = "base04"; + modifiers = ["reversed"]; + }; + "ui.cursor.insert" = { + fg = "base0A"; + modifiers = ["underlined"]; + }; + "ui.cursor.match" = { + fg = "base0A"; + modifiers = ["underlined"]; + }; + "ui.cursor.select" = { + fg = "base0A"; + modifiers = ["underlined"]; + }; + "ui.cursorline.primary" = { + fg = "base05"; + bg = "base01"; + }; + "ui.gutter" = {bg = "base00";}; + "ui.help" = { + fg = "base06"; + bg = "base01"; + }; + "ui.linenr" = { + fg = "base03"; + bg = "base00"; + }; + "ui.linenr.selected" = { + fg = "base04"; + bg = "base01"; + modifiers = ["bold"]; + }; + "ui.menu" = { + fg = "base05"; + bg = "base01"; + }; + "ui.menu.scroll" = { + fg = "base03"; + bg = "base01"; + }; + "ui.menu.selected" = { + fg = "base01"; + bg = "base04"; + }; + "ui.popup" = {bg = "base01";}; + "ui.selection" = {bg = "base02";}; + "ui.selection.primary" = {bg = "base02";}; + "ui.statusline" = { + fg = "base0B"; + bg = "base02"; + }; + "ui.statusline.inactive" = { + bg = "base01"; + fg = "base02"; + }; + "ui.statusline.insert" = { + fg = "base00"; + bg = "base0B"; + }; + "ui.statusline.normal" = { + fg = "base00"; + bg = "base04"; + }; + "ui.statusline.select" = { + fg = "base00"; + bg = "base0E"; + }; "ui.text" = "base05"; "ui.text.focus" = "base05"; - "ui.virtual.indent-guide" = { fg = "base03"; }; - "ui.virtual.ruler" = { bg = "base01"; }; - "ui.virtual.whitespace" = { fg = "base01"; }; - "ui.window" = { bg = "base01"; }; + "ui.virtual.indent-guide" = {fg = "base03";}; + "ui.virtual.ruler" = {bg = "base01";}; + "ui.virtual.whitespace" = {fg = "base01";}; + "ui.window" = {bg = "base01";}; "variable" = "base08"; "variable.other.member" = "base08"; "warning" = "base09"; diff --git a/home/modules/console/editor/nvim/default.nix b/home/modules/console/editor/nvim/default.nix index 6d4d501..739535e 100644 --- a/home/modules/console/editor/nvim/default.nix +++ b/home/modules/console/editor/nvim/default.nix @@ -1,16 +1,19 @@ -{ config, lib, inputs, pkgs, ... }: - -let - inherit (lib) mkIf; - cfg = config.ooknet.editor.nvim; - console = config.ooknet.console; - - ookvim = inputs.ookvim.packages.${pkgs.system}.default; -in - { - + config, + lib, + inputs, + pkgs, + ... +}: let + inherit (lib) mkIf; + inherit (config.ooknet) console; + + cfg = config.ooknet.editor.nvim; + + ookvim = inputs.ooks-vim.packages.${pkgs.system}.ooks-vim; +in { config = mkIf (cfg.enable || console.editor == "nvim") { - home.packages = [ ookvim ]; + home.packages = [ookvim]; + home.sessionVariables.EDITOR = mkIf (console.editor == "nvim") "nvim"; }; } diff --git a/home/modules/console/multiplexer/tmux/default.nix b/home/modules/console/multiplexer/tmux/default.nix index ac694ae..95e295d 100644 --- a/home/modules/console/multiplexer/tmux/default.nix +++ b/home/modules/console/multiplexer/tmux/default.nix @@ -1,13 +1,14 @@ -{ config, lib, pkgs, ... }: - -let +{ + config, + lib, + pkgs, + ... +}: let inherit (config.colorscheme) palette; inherit (lib) mkIf; cfg = config.ooknet.multiplexer.tmux; console = config.ooknet.console; -in - -{ +in { config = mkIf (cfg.enable || console.multiplexer == "tmux") { programs.tmux = { enable = true; @@ -22,39 +23,43 @@ in plugin = tmuxPlugins.mode-indicator; } ]; - extraConfig = /* sh */ '' - # General Settings - set -g set-clipboard on - #Appearance - set -g status-position top - set -g status-style "fg=#${palette.base05} bg=#${palette.base00}" - #Windows - set -g status-justify "centre" - setw -g window-status-current-format "#[bg=#${palette.base0B},fg=#${palette.base00},bold] #W " - setw -g window-status-format "#[bg=#${palette.base03},fg=#${palette.base05}] #W " - #Left - set -g status-left " #{tmux_mode_indicator} #[bg=#${palette.base0B},fg=#${palette.base00}] #S" - set -g status-right '%Y-%m-%d %H:%M #{tmux_mode_indicator}' - #Move to Pane - bind -n M-Left select-pane -L - bind -n M-h select-pane -L - bind -n M-Right select-pane -R - bind -n M-l select-pane -R - bind -n M-Up select-pane -U - bind -n M-k select-pane -U - bind -n M-Down select-pane -D - bind -n M-j select-pane -D - #Split Pane - bind -n M-- split-window -h - bind -n M-= split-window -v - #Resize Pane - bind -n C-M-Up resize-pane -U 5 - bind -n C-M-Down resize-pane -D 5 - bind -n C-M-Left resize-pane -L 5 - bind -n C-M-Right resize-pane -R 5 - #Move to Window - bind -n M-1 - ''; + extraConfig = + /* + sh + */ + '' + # General Settings + set -g set-clipboard on + #Appearance + set -g status-position top + set -g status-style "fg=#${palette.base05} bg=#${palette.base00}" + #Windows + set -g status-justify "centre" + setw -g window-status-current-format "#[bg=#${palette.base0B},fg=#${palette.base00},bold] #W " + setw -g window-status-format "#[bg=#${palette.base03},fg=#${palette.base05}] #W " + #Left + set -g status-left " #{tmux_mode_indicator} #[bg=#${palette.base0B},fg=#${palette.base00}] #S" + set -g status-right '%Y-%m-%d %H:%M #{tmux_mode_indicator}' + #Move to Pane + bind -n M-Left select-pane -L + bind -n M-h select-pane -L + bind -n M-Right select-pane -R + bind -n M-l select-pane -R + bind -n M-Up select-pane -U + bind -n M-k select-pane -U + bind -n M-Down select-pane -D + bind -n M-j select-pane -D + #Split Pane + bind -n M-- split-window -h + bind -n M-= split-window -v + #Resize Pane + bind -n C-M-Up resize-pane -U 5 + bind -n C-M-Down resize-pane -D 5 + bind -n C-M-Left resize-pane -L 5 + bind -n C-M-Right resize-pane -R 5 + #Move to Window + bind -n M-1 + ''; }; }; } diff --git a/home/modules/console/multiplexer/zellij/default.nix b/home/modules/console/multiplexer/zellij/default.nix index d3499f9..28cea32 100644 --- a/home/modules/console/multiplexer/zellij/default.nix +++ b/home/modules/console/multiplexer/zellij/default.nix @@ -1,13 +1,16 @@ -{ osConfig, lib, config, pkgs, ... }: -let +{ + osConfig, + lib, + config, + pkgs, + ... +}: let inherit (config.colorscheme) palette; inherit (lib) mkIf; + inherit (config.ooknet) console; + inherit (osConfig.ooknet.host) admin; cfg = config.ooknet.multiplexer.zellij; - console = config.ooknet.console; - admin = osConfig.ooknet.host.admin; -in - -{ +in { config = mkIf (cfg.enable || console.multiplexer == "zellij") { programs.zellij = { enable = true; @@ -16,6 +19,7 @@ in default_shell = "${admin.shell}"; default_layout = "default"; pane_frames = false; + scrollback_editor = "${console.editor}"; themes = { "${config.colorscheme.slug}" = { fg = "#${palette.base05}"; @@ -35,29 +39,160 @@ in }; # Layouts - # Default layout - xdg.configFile."zellij/layouts/default.kdl" = import ./layouts/defaultLayout.nix { inherit pkgs config; }; - # Layout for bash scripts - xdg.configFile."zellij/layouts/script.kdl" = import ./layouts/scriptLayout.nix { inherit pkgs config; }; - # Layout for configuring my flake - xdg.configFile."zellij/layouts/flake.kdl" = import ./layouts/flakeLayout.nix { inherit pkgs config; }; + xdg.configFile = { + # Default layout + "zellij/layouts/default.kdl" = import ./layouts/defaultLayout.nix {inherit pkgs config;}; + # Layout for bash scripts + "zellij/layouts/script.kdl" = import ./layouts/scriptLayout.nix {inherit pkgs config;}; + # Layout for configuring my flake + "zellij/layouts/flake.kdl" = import ./layouts/flakeLayout.nix {inherit pkgs config;}; + # Additional keybinds + "zellij/config.kdl".text = + # kdl + '' + keybinds clear-defaults=true { + shared_except "locked" { + bind "Alt 1" { GoToTab 1; } + bind "Alt 2" { GoToTab 2; } + bind "Alt 3" { GoToTab 3; } + bind "Alt 4" { GoToTab 4; } + bind "Alt 5" { GoToTab 5; } + bind "Alt 6" { GoToTab 6; } + bind "Alt 7" { GoToTab 7; } + bind "Alt 8" { GoToTab 8; } + bind "Alt 9" { GoToTab 9; } + bind "Alt -" { Resize "Decrease" ; } + bind "Alt =" { Resize "Increase" ; } + } - # Additional keybinds - xdg.configFile."zellij/config.kdl".text = /* kdl */ '' - keybinds { - shared_except "locked" { - bind "Alt 1" { GoToTab 1; } - bind "Alt 2" { GoToTab 2; } - bind "Alt 3" { GoToTab 3; } - bind "Alt 4" { GoToTab 4; } - bind "Alt 5" { GoToTab 5; } - bind "Alt 6" { GoToTab 6; } - bind "Alt 7" { GoToTab 7; } - bind "Alt 8" { GoToTab 8; } - bind "Alt 9" { GoToTab 9; } + locked { + bind "Alt g" { SwitchToMode "Normal" ; } + } + + resize { + bind "Alt r" { SwitchToMode "Normal" ; } + bind "h" "Left" { Resize "Increase Left" ; } + bind "j" "Down" { Resize "Increase Down" ; } + bind "k" "Up" { Resize "Increase Up" ; } + bind "l" "Right" { Resize "Increase Right" ; } + } + + pane { + bind "Alt p" { SwitchToMode "Normal" ; } + bind "c" { Clear ; } + bind "e" { TogglePaneEmbedOrFloating ; SwitchToMode "Normal" ; } + bind "f" { ToggleFocusFullscreen ; SwitchToMode "Normal" ; } + bind "j" "Down" { NewPane "Down" ; SwitchToMode "Normal" ; } + bind "l" "Right" { NewPane "Right" ; SwitchToMode "Normal" ; } + bind "n" { NewPane ; SwitchToMode "Normal" ; } + bind "p" { SwitchFocus ; SwitchToMode "Normal" ; } + bind "r" { SwitchToMode "RenamePane" ; PaneNameInput 0 ; } + bind "w" { ToggleFloatingPanes ; SwitchToMode "Normal" ; } + bind "x" { CloseFocus ; SwitchToMode "Normal" ; } + bind "z" { TogglePaneFrames ; SwitchToMode "Normal" ; } + } + move { + bind "Alt m" { SwitchToMode "Normal"; } + bind "h" "Left" { MovePane "Left" ; } + bind "j" "Down" { MovePane "Down" ; } + bind "k" "Up" { MovePane "Up" ; } + bind "l" "Right" { MovePane "Right" ; } + } + tab { + bind "Alt t" { SwitchToMode "Normal" ; } + bind "b" { BreakPane; SwitchToMode "Normal" ; } + bind "h" { MoveTab "Left" ; } + bind "l" { MoveTab "Right" ; } + bind "n" { NewTab ; SwitchToMode "Normal" ; } + bind "r" { SwitchToMode "RenameTab" ; TabNameInput 0 ; } + bind "x" { CloseTab ; SwitchToMode "Normal" ; } + bind "1" { GoToTab 1 ; SwitchToMode "Normal" ; } + bind "2" { GoToTab 2 ; SwitchToMode "Normal" ; } + bind "3" { GoToTab 3 ; SwitchToMode "Normal" ; } + bind "4" { GoToTab 4 ; SwitchToMode "Normal" ; } + bind "5" { GoToTab 5 ; SwitchToMode "Normal" ; } + bind "6" { GoToTab 6 ; SwitchToMode "Normal" ; } + bind "7" { GoToTab 7 ; SwitchToMode "Normal" ; } + bind "8" { GoToTab 8 ; SwitchToMode "Normal" ; } + bind "9" { GoToTab 9 ; SwitchToMode "Normal" ; } + } + scroll { + bind "Alt s" { SwitchToMode "Normal" ; } + bind "e" { EditScrollback; SwitchToMode "Normal" ; } + bind "d" { HalfPageScrollDown ; } + bind "u" { HalfPageScrollUp ; } + bind "j" "Down" { ScrollDown ; } + bind "k" "Up" { ScrollUp ; } + bind "Home" { ScrollToTop ; SwitchToMode "Normal" ; } + bind "End" { ScrollToBottom ; SwitchToMode "Normal" ; } + bind "PageDown" { PageScrollDown ; } + bind "PageUp" { PageScrollUp ; } + bind "s" { SwitchToMode "EnterSearch" ; SearchInput 0 ; } + } + search { + bind "Alt s" { SwitchToMode "Normal" ; } + bind "n" { Search "down" ; } + bind "p" { Search "up" ; } + bind "c" { SearchToggleOption "CaseSensitivity" ; } + bind "w" { SearchToggleOption "Wrap" ; } + bind "o" { SearchToggleOption "WholeWord" ; } + } + entersearch { + bind "Alt c" "Esc" { SwitchToMode "Scroll" ; } + bind "Enter" { SwitchToMode "Search" ; } + } + renametab { + bind "Alt c" { SwitchToMode "Normal" ; } + bind "Esc" { UndoRenameTab ; SwitchToMode "Tab" ; } + } + renamepane { + bind "Alt c" { SwitchToMode "Normal"; } + bind "Esc" { UndoRenamePane; SwitchToMode "Pane"; } + } + session { + bind "Alt o" { SwitchToMode "Normal" ; } + bind "d" { Detach ; } + bind "w" { + LaunchOrFocusPlugin "session-manager" { + floating true + move_to_focused_tab true + }; + SwitchToMode "Normal" + } + } + shared_except "locked" { + bind "Alt g" { SwitchToMode "Locked" ; } + bind "Alt q" { Quit ; } + bind "Alt h" "Alt Left" { MoveFocusOrTab "Left" ; } + bind "Alt l" "Alt Right" { MoveFocusOrTab "Right" ; } + bind "Alt j" "Alt Down" { MoveFocus "Down" ; } + bind "Alt k" "Alt Up" { MoveFocus "Up" ; } + bind "Alt [" { PreviousSwapLayout ; } + bind "Alt ]" { NextSwapLayout ; } + } + shared_except "normal" "locked" { + bind "Enter" "Esc" { SwitchToMode "Normal" ; } + } + shared_except "pane" "locked" { + bind "Alt p" { SwitchToMode "Pane" ; } + } + shared_except "resize" "locked" { + bind "Alt r" { SwitchToMode "Resize" ; } + } + shared_except "scroll" "locked" { + bind "Alt s" { SwitchToMode "Scroll" ; } + } + shared_except "session" "locked" { + bind "Alt o" { SwitchToMode "Session" ; } + } + shared_except "tab" "locked" { + bind "Alt t" { SwitchToMode "Tab" ; } + } + shared_except "move" "locked" { + bind "Alt m" { SwitchToMode "Move" ; } + } } - } - ''; + ''; + }; }; } - diff --git a/home/modules/console/multiplexer/zellij/layouts/defaultLayout.nix b/home/modules/console/multiplexer/zellij/layouts/defaultLayout.nix index 03c8ac1..c216f7b 100644 --- a/home/modules/console/multiplexer/zellij/layouts/defaultLayout.nix +++ b/home/modules/console/multiplexer/zellij/layouts/defaultLayout.nix @@ -1,60 +1,64 @@ -{ pkgs, config, ... }: - -let - inherit (config.colorscheme) palette; -in - { - text = /* kdl */ '' - layout { - default_tab_template { - pane size=2 borderless=true { - plugin location="file:${pkgs.zjstatus}/bin/zjstatus.wasm" { - format_left "{mode}" - format_right "{session} {command_git_branch} {datetime}" - format_center "#[fg=#${palette.base0D},bold] {tabs}" - format_space "" + pkgs, + config, + ... +}: let + inherit (config.colorscheme) palette; +in { + text = + /* + kdl + */ + '' + layout { + default_tab_template { + pane size=2 borderless=true { + plugin location="file:${pkgs.zjstatus}/bin/zjstatus.wasm" { + format_left "{mode}" + format_right "{session} {command_git_branch} {datetime}" + format_center "#[fg=#${palette.base0D},bold] {tabs}" + format_space "" - border_enabled "true" - border_char "─" - border_format "#[fg=#${palette.base05}]{char}" - border_position "bottom" + border_enabled "true" + border_char "─" + border_format "#[fg=#${palette.base05}]{char}" + border_position "bottom" - hide_frame_for_single_pane "true" + hide_frame_for_single_pane "true" - mode_normal "#[fg=#${palette.base0D}] " - mode_tmux "#[fg=#${palette.base0E}] " - mode_pane "#[fg=#${palette.base08}] " - mode_tab "#[fg=#${palette.base08}] " - mode_rename_tab "#[fg=#${palette.base08}] " - mode_rename_pane "#[fg=#${palette.base08}] " - mode_session "#[fg=#${palette.base08}] " - mode_locked "#[fg=#${palette.base05}] " - mode_move "#[fg=#${palette.base0B}] " - mode_resize "#[fg=#${palette.base0B}] " - mode_prompt "#[fg=#${palette.base0A}] " - mode_search "#[fg=#${palette.base0A}] " - mode_enter_search "#[fg=#${palette.base0A}] " + mode_normal "#[fg=#${palette.base0D}] " + mode_tmux "#[fg=#${palette.base0E}] " + mode_pane "#[fg=#${palette.base08}] " + mode_tab "#[fg=#${palette.base08}] " + mode_rename_tab "#[fg=#${palette.base08}] " + mode_rename_pane "#[fg=#${palette.base08}] " + mode_session "#[fg=#${palette.base08}] " + mode_locked "#[fg=#${palette.base05}] " + mode_move "#[fg=#${palette.base0B}] " + mode_resize "#[fg=#${palette.base0B}] " + mode_prompt "#[fg=#${palette.base0A}] " + mode_search "#[fg=#${palette.base0A}] " + mode_enter_search "#[fg=#${palette.base0A}] " - tab_normal "#[bg=#${palette.base01}] {name} " - tab_active "#[bg=#${palette.base02}] {name} " - tab_separator " " + tab_normal "#[bg=#${palette.base01}] {name} " + tab_active "#[bg=#${palette.base02}] {name} " + tab_separator " " - command_git_branch_command "git rev-parse --abbrev-ref HEAD" - command_git_branch_format "#[fg=#${palette.base0C}] {stdout} " - command_git_branch_interval "10" - command_git_branch_rendermode "static" + command_git_branch_command "git rev-parse --abbrev-ref HEAD" + command_git_branch_format "#[fg=#${palette.base0C}] {stdout} " + command_git_branch_interval "10" + command_git_branch_rendermode "static" - datetime "#[fg=#${palette.base05},bold] {format} " - datetime_format "%I:%M %p" - datetime_timezone "${config.home.sessionVariables.TZ}" + datetime "#[fg=#${palette.base05},bold] {format} " + datetime_format "%I:%M %p" + datetime_timezone "${config.home.sessionVariables.TZ}" + } } - } - children - } - tab name="terminal" focus=true { - pane name="term" focus=true + children } - } - ''; + tab name="terminal" focus=true { + pane name="term" focus=true + } + } + ''; } diff --git a/home/modules/console/multiplexer/zellij/layouts/flakeLayout.nix b/home/modules/console/multiplexer/zellij/layouts/flakeLayout.nix index d456bf7..438d145 100644 --- a/home/modules/console/multiplexer/zellij/layouts/flakeLayout.nix +++ b/home/modules/console/multiplexer/zellij/layouts/flakeLayout.nix @@ -1,66 +1,70 @@ -{ pkgs, config, ... }: - -let - inherit (config.colorscheme) palette; -in - { - text = /* kdl */ '' - layout { - default_tab_template { - pane size=2 borderless=true { - plugin location="file:${pkgs.zjstatus}/bin/zjstatus.wasm" { - format_left "{mode}" - format_right "{session} {command_git_branch} {datetime}" - format_center "#[fg=#${palette.base0D},bold] {tabs}" - format_space "" + pkgs, + config, + ... +}: let + inherit (config.colorscheme) palette; +in { + text = + /* + kdl + */ + '' + layout { + default_tab_template { + pane size=2 borderless=true { + plugin location="file:${pkgs.zjstatus}/bin/zjstatus.wasm" { + format_left "{mode}" + format_right "{session} {command_git_branch} {datetime}" + format_center "#[fg=#${palette.base0D},bold] {tabs}" + format_space "" - border_enabled "true" - border_char "─" - border_format "#[fg=#${palette.base05}]{char}" - border_position "bottom" + border_enabled "true" + border_char "─" + border_format "#[fg=#${palette.base05}]{char}" + border_position "bottom" - hide_frame_for_single_pane "true" + hide_frame_for_single_pane "true" - mode_normal "#[fg=#${palette.base0D}] " - mode_tmux "#[fg=#${palette.base0E}] " - mode_pane "#[fg=#${palette.base08}] " - mode_tab "#[fg=#${palette.base08}] " - mode_rename_tab "#[fg=#${palette.base08}] " - mode_rename_pane "#[fg=#${palette.base08}] " - mode_session "#[fg=#${palette.base08}] " - mode_locked "#[fg=#${palette.base05}] " - mode_move "#[fg=#${palette.base0B}] " - mode_resize "#[fg=#${palette.base0B}] " - mode_prompt "#[fg=#${palette.base0A}] " - mode_search "#[fg=#${palette.base0A}] " - mode_enter_search "#[fg=#${palette.base0A}] " + mode_normal "#[fg=#${palette.base0D}] " + mode_tmux "#[fg=#${palette.base0E}] " + mode_pane "#[fg=#${palette.base08}] " + mode_tab "#[fg=#${palette.base08}] " + mode_rename_tab "#[fg=#${palette.base08}] " + mode_rename_pane "#[fg=#${palette.base08}] " + mode_session "#[fg=#${palette.base08}] " + mode_locked "#[fg=#${palette.base05}] " + mode_move "#[fg=#${palette.base0B}] " + mode_resize "#[fg=#${palette.base0B}] " + mode_prompt "#[fg=#${palette.base0A}] " + mode_search "#[fg=#${palette.base0A}] " + mode_enter_search "#[fg=#${palette.base0A}] " - tab_normal "#[bg=#${palette.base01}] {name} " - tab_active "#[bg=#${palette.base02}] {name} " - tab_separator " " + tab_normal "#[bg=#${palette.base01}] {name} " + tab_active "#[bg=#${palette.base02}] {name} " + tab_separator " " - command_git_branch_command "git rev-parse --abbrev-ref HEAD" - command_git_branch_format "#[fg=#${palette.base0C}] {stdout} " - command_git_branch_interval "10" - command_git_branch_rendermode "static" + command_git_branch_command "git rev-parse --abbrev-ref HEAD" + command_git_branch_format "#[fg=#${palette.base0C}] {stdout} " + command_git_branch_interval "10" + command_git_branch_rendermode "static" - datetime "#[fg=#${palette.base05},bold] {format} " - datetime_format "%I:%M %p" - datetime_timezone "${config.home.sessionVariables.TZ}" + datetime "#[fg=#${palette.base05},bold] {format} " + datetime_format "%I:%M %p" + datetime_timezone "${config.home.sessionVariables.TZ}" + } } + children + } + tab name="terminal" focus=true { + pane name="term" cwd="$FLAKE" focus=true + } + tab name="editor" { + pane name="edit" edit="$FLAKE" + } + tab name="git" { + pane name="git" cwd="$FLAKE" command="lazygit" } - children } - tab name="terminal" focus=true { - pane name="term" cwd="$FLAKE" focus=true - } - tab name="editor" { - pane name="edit" edit="$FLAKE" - } - tab name="git" { - pane name="git" cwd="$FLAKE" command="lazygit" - } - } - ''; + ''; } diff --git a/home/modules/console/multiplexer/zellij/layouts/scriptLayout.nix b/home/modules/console/multiplexer/zellij/layouts/scriptLayout.nix index 288bc00..f31dec9 100644 --- a/home/modules/console/multiplexer/zellij/layouts/scriptLayout.nix +++ b/home/modules/console/multiplexer/zellij/layouts/scriptLayout.nix @@ -1,64 +1,68 @@ -{ pkgs, config, ... }: - -let - inherit (config.colorscheme) palette; -in - { -text = /* kdl */ '' - layout { - default_tab_template { - pane size=2 borderless=true { - plugin location="file:${pkgs.zjstatus}/bin/zjstatus.wasm" { - format_left "{mode}" - format_right "{session} {command_git_branch} {datetime}" - format_center "#[fg=#${palette.base0D},bold] {tabs}" - format_space "" + pkgs, + config, + ... +}: let + inherit (config.colorscheme) palette; +in { + text = + /* + kdl + */ + '' + layout { + default_tab_template { + pane size=2 borderless=true { + plugin location="file:${pkgs.zjstatus}/bin/zjstatus.wasm" { + format_left "{mode}" + format_right "{session} {command_git_branch} {datetime}" + format_center "#[fg=#${palette.base0D},bold] {tabs}" + format_space "" - border_enabled "true" - border_char "─" - border_format "#[fg=#${palette.base05}]{char}" - border_position "bottom" + border_enabled "true" + border_char "─" + border_format "#[fg=#${palette.base05}]{char}" + border_position "bottom" - hide_frame_for_single_pane "true" + hide_frame_for_single_pane "true" - mode_normal "#[fg=#${palette.base0D}] " - mode_tmux "#[fg=#${palette.base0E}] " - mode_pane "#[fg=#${palette.base08}] " - mode_tab "#[fg=#${palette.base08}] " - mode_rename_tab "#[fg=#${palette.base08}] " - mode_rename_pane "#[fg=#${palette.base08}] " - mode_session "#[fg=#${palette.base08}] " - mode_locked "#[fg=#${palette.base05}] " - mode_move "#[fg=#${palette.base0B}] " - mode_resize "#[fg=#${palette.base0B}] " - mode_prompt "#[fg=#${palette.base0A}] " - mode_search "#[fg=#${palette.base0A}] " - mode_enter_search "#[fg=#${palette.base0A}] " + mode_normal "#[fg=#${palette.base0D}] " + mode_tmux "#[fg=#${palette.base0E}] " + mode_pane "#[fg=#${palette.base08}] " + mode_tab "#[fg=#${palette.base08}] " + mode_rename_tab "#[fg=#${palette.base08}] " + mode_rename_pane "#[fg=#${palette.base08}] " + mode_session "#[fg=#${palette.base08}] " + mode_locked "#[fg=#${palette.base05}] " + mode_move "#[fg=#${palette.base0B}] " + mode_resize "#[fg=#${palette.base0B}] " + mode_prompt "#[fg=#${palette.base0A}] " + mode_search "#[fg=#${palette.base0A}] " + mode_enter_search "#[fg=#${palette.base0A}] " - tab_normal "#[bg=#${palette.base01}] {name} " - tab_active "#[bg=#${palette.base02}] {name} " - tab_separator " " + tab_normal "#[bg=#${palette.base01}] {name} " + tab_active "#[bg=#${palette.base02}] {name} " + tab_separator " " - command_git_branch_command "git rev-parse --abbrev-ref HEAD" - command_git_branch_format "#[fg=#${palette.base0C}] {stdout} " - command_git_branch_interval "10" - command_git_branch_rendermode "static" + command_git_branch_command "git rev-parse --abbrev-ref HEAD" + command_git_branch_format "#[fg=#${palette.base0C}] {stdout} " + command_git_branch_interval "10" + command_git_branch_rendermode "static" - datetime "#[fg=#${palette.base05},bold] {format} " - datetime_format "%I:%M %p" - datetime_timezone "${config.home.sessionVariables.TZ}" + datetime "#[fg=#${palette.base05},bold] {format} " + datetime_format "%I:%M %p" + datetime_timezone "${config.home.sessionVariables.TZ}" + } + } + children } + tab name="edit" focus=true { + pane edit="./" name="edit" focus=true size="85%" borderless=true + pane name="term" focus=false size="15%" borderless=false + } + tab name="git" focus=false { + pane name="git" focus=false command="lazygit" + } } - children - } - tab name="edit" focus=true { - pane edit="./" name="edit" focus=true size="85%" borderless=true - pane name="term" focus=false size="15%" borderless=false - } - tab name="git" focus=false { - pane name="git" focus=false command="lazygit" - } - } -''; + ''; } diff --git a/home/modules/console/shell/bash/default.nix b/home/modules/console/shell/bash/default.nix index 7ecea99..2370ddb 100644 --- a/home/modules/console/shell/bash/default.nix +++ b/home/modules/console/shell/bash/default.nix @@ -1,12 +1,13 @@ -{ config, lib, osConfig, ... }: - -let +{ + config, + lib, + osConfig, + ... +}: let inherit (lib) mkIf; cfg = config.ooknet.shell.bash; admin = osConfig.ooknet.host.admin; -in - -{ +in { config = mkIf (cfg.enable || admin.shell == "bash") { programs.bash.enable = true; }; diff --git a/home/modules/console/shell/fish/aliases.nix b/home/modules/console/shell/fish/aliases.nix index c658563..bba82f8 100644 --- a/home/modules/console/shell/fish/aliases.nix +++ b/home/modules/console/shell/fish/aliases.nix @@ -1,14 +1,16 @@ -{ lib, config, osConfig, pkgs, ... }: - -let +{ + lib, + config, + osConfig, + pkgs, + ... +}: let inherit (lib) mkIf getExe; inherit (pkgs) bat eza dust nh; - + cfg = config.ooknet.shell.fish; admin = osConfig.ooknet.host.admin; -in - -{ +in { config = mkIf (cfg.enable || admin.shell == "fish") { programs.fish = { shellAliases = { diff --git a/home/modules/console/shell/fish/binds.nix b/home/modules/console/shell/fish/binds.nix index 9d0492d..b4dee6c 100644 --- a/home/modules/console/shell/fish/binds.nix +++ b/home/modules/console/shell/fish/binds.nix @@ -1,16 +1,18 @@ -{ lib, config, osConfig, ... }: - -let - inherit (lib) mkIf; - cfg = config.ooknet.shell.fish; - admin = osConfig.ooknet.host.admin; -in - { + lib, + config, + osConfig, + ... +}: let + inherit (lib) mkIf; + inherit (osConfig.ooknet.host) admin; + + cfg = config.ooknet.shell.fish; +in { config = mkIf (cfg.enable || admin.shell == "fish") { programs.fish.functions = { fish_user_key_bindings = '' - bind --preset -M insert \cf fe + bind --preset -M insert \cf $EDITOR $FLAKE bind --preset -M insert \ec fzf_cd_widget ''; }; diff --git a/home/modules/console/shell/fish/default.nix b/home/modules/console/shell/fish/default.nix index efc9181..0337b02 100644 --- a/home/modules/console/shell/fish/default.nix +++ b/home/modules/console/shell/fish/default.nix @@ -1,12 +1,14 @@ -{ lib, config, osConfig, ... }: - -let - inherit (lib) mkIf; - cfg = config.ooknet.shell.fish; - admin = osConfig.ooknet.host.admin; -in - { + lib, + config, + osConfig, + ... +}: let + inherit (lib) mkIf; + inherit (osConfig.ooknet.host) admin; + + cfg = config.ooknet.shell.fish; +in { imports = [ ./plugins.nix ./binds.nix @@ -27,7 +29,8 @@ in set fish_cursor_insert line blink set fish_cursor_replace_one underscore blink set fish_cursor_visual block - '' + + '' + + # Use terminal colors '' set -U fish_color_autosuggestion brblack @@ -60,4 +63,3 @@ in }; }; } - diff --git a/home/modules/console/shell/fish/plugins.nix b/home/modules/console/shell/fish/plugins.nix index 0cafc74..b553777 100644 --- a/home/modules/console/shell/fish/plugins.nix +++ b/home/modules/console/shell/fish/plugins.nix @@ -1,12 +1,14 @@ -{ lib, config, pkgs, osConfig, ... }: - -let +{ + lib, + config, + pkgs, + osConfig, + ... +}: let inherit (lib) mkIf; cfg = config.ooknet.shell.fish; admin = osConfig.ooknet.host.admin; -in - -{ +in { config = mkIf (cfg.enable || admin.shell == "fish") { programs.fish = { plugins = [ @@ -26,4 +28,3 @@ in }; }; } - diff --git a/home/modules/console/shell/zsh/default.nix b/home/modules/console/shell/zsh/default.nix index 7e3f2b5..2449d8d 100644 --- a/home/modules/console/shell/zsh/default.nix +++ b/home/modules/console/shell/zsh/default.nix @@ -1,16 +1,17 @@ -{ lib, config, osConfig, ... }: - -let +{ + lib, + config, + osConfig, + ... +}: let inherit (lib) mkIf; cfg = config.ooknet.shell.zsh; admin = osConfig.ooknet.host.admin; -in - -{ +in { imports = [ ./plugins.nix ]; - + config = mkIf (cfg.enable || admin.shell == "zsh") { programs.zsh = { enable = true; diff --git a/home/modules/console/shell/zsh/plugins.nix b/home/modules/console/shell/zsh/plugins.nix index 8ec825d..75bcb50 100644 --- a/home/modules/console/shell/zsh/plugins.nix +++ b/home/modules/console/shell/zsh/plugins.nix @@ -1,12 +1,14 @@ -{ lib, pkgs, config, osConfig, ... }: - -let +{ + lib, + pkgs, + config, + osConfig, + ... +}: let inherit (lib) mkIf; cfg = config.ooknet.shell.zsh; admin = osConfig.ooknet.host.admin; -in - -{ +in { config = mkIf (cfg.enable || admin.shell == "zsh") { programs.zsh.plugins = [ { diff --git a/home/modules/console/tools/bat.nix b/home/modules/console/tools/bat.nix index ad33f1a..7bb8761 100644 --- a/home/modules/console/tools/bat.nix +++ b/home/modules/console/tools/bat.nix @@ -1,11 +1,12 @@ -{ lib, config, pkgs, ... }: - -let +{ + lib, + config, + pkgs, + ... +}: let inherit (lib) mkIf; cfg = config.ooknet.tools.bat; -in - -{ +in { config = mkIf cfg.enable { programs.bat = { enable = true; diff --git a/home/modules/console/tools/btop.nix b/home/modules/console/tools/btop.nix index 5de1036..32b0f27 100644 --- a/home/modules/console/tools/btop.nix +++ b/home/modules/console/tools/btop.nix @@ -1,11 +1,11 @@ -{ lib, config, ... }: - -let +{ + lib, + config, + ... +}: let inherit (lib) mkIf; cfg = config.ooknet.tools.btop; -in - -{ +in { config = mkIf cfg.enable { programs.btop = { enable = true; diff --git a/home/modules/console/tools/direnv.nix b/home/modules/console/tools/direnv.nix index 6b5eab9..28d5e4a 100644 --- a/home/modules/console/tools/direnv.nix +++ b/home/modules/console/tools/direnv.nix @@ -1,11 +1,11 @@ -{ lib, config, ... }: - -let +{ + lib, + config, + ... +}: let inherit (lib) mkIf; cfg = config.ooknet.tools.direnv; -in - -{ +in { config = mkIf cfg.enable { programs.direnv = { enable = true; diff --git a/home/modules/console/tools/eza.nix b/home/modules/console/tools/eza.nix index b8e505d..d075eb1 100644 --- a/home/modules/console/tools/eza.nix +++ b/home/modules/console/tools/eza.nix @@ -1,11 +1,11 @@ -{ lib, config, ... }: - -let +{ + lib, + config, + ... +}: let inherit (lib) mkIf; cfg = config.ooknet.tools.eza; -in - -{ +in { config = mkIf cfg.enable { programs.eza = { enable = true; diff --git a/home/modules/console/tools/ffmpeg.nix b/home/modules/console/tools/ffmpeg.nix index c836762..504a229 100644 --- a/home/modules/console/tools/ffmpeg.nix +++ b/home/modules/console/tools/ffmpeg.nix @@ -1,12 +1,13 @@ -{ lib, config, pkgs, ... }: - -let +{ + lib, + config, + pkgs, + ... +}: let inherit (lib) mkIf; cfg = config.ooknet.tools.ffmpeg; -in - -{ +in { config = mkIf cfg.enable { - home.packages = [ pkgs.ffmpeg ]; + home.packages = [pkgs.ffmpeg]; }; } diff --git a/home/modules/console/tools/fzf.nix b/home/modules/console/tools/fzf.nix index 1f09b5b..a9b168a 100644 --- a/home/modules/console/tools/fzf.nix +++ b/home/modules/console/tools/fzf.nix @@ -1,12 +1,13 @@ -{ lib, config, osConfig, ... }: - -let +{ + lib, + config, + osConfig, + ... +}: let inherit (lib) mkIf; admin = osConfig.ooknet.host.admin; cfg = config.ooknet.tools.fzf; -in - -{ +in { config = mkIf cfg.enable { programs.fzf = { enable = true; diff --git a/home/modules/console/tools/git.nix b/home/modules/console/tools/git.nix index a047108..6237ce0 100644 --- a/home/modules/console/tools/git.nix +++ b/home/modules/console/tools/git.nix @@ -1,26 +1,27 @@ -{ pkgs, config, lib, osConfig, ... }: - - let - inherit (lib) mkIf; - cfg = config.ooknet.tools.git; - admin = osConfig.ooknet.host.admin; - in - -{ +{ + pkgs, + config, + lib, + osConfig, + ... +}: let + inherit (lib) mkIf; + cfg = config.ooknet.tools.git; + admin = osConfig.ooknet.host.admin; +in { config = mkIf cfg.enable { programs.git = { enable = true; package = pkgs.gitAndTools.gitFull; userName = admin.gitName; userEmail = admin.gitEmail; - ignores = [ ".direnv" "result" ]; + ignores = [".direnv" "result"]; lfs.enable = true; }; - + home.packages = with pkgs; [ lazygit gh ]; }; } - diff --git a/home/modules/console/tools/nixIndex.nix b/home/modules/console/tools/nixIndex.nix index 1c8a7d3..5874679 100644 --- a/home/modules/console/tools/nixIndex.nix +++ b/home/modules/console/tools/nixIndex.nix @@ -1,12 +1,13 @@ -{ lib, config, inputs, ... }: - -let +{ + lib, + config, + inputs, + ... +}: let inherit (lib) mkIf; cfg = config.ooknet.tools.nixIndex; -in - -{ - imports = [ inputs.nix-index-db.hmModules.nix-index ]; +in { + imports = [inputs.nix-index-db.hmModules.nix-index]; config = mkIf cfg.enable { programs = { nix-index = { diff --git a/home/modules/console/tools/sourcegraph.nix b/home/modules/console/tools/sourcegraph.nix index b0e49cd..1c74e64 100644 --- a/home/modules/console/tools/sourcegraph.nix +++ b/home/modules/console/tools/sourcegraph.nix @@ -1,12 +1,13 @@ -{ lib, config, pkgs, ... }: - -let +{ + lib, + config, + pkgs, + ... +}: let inherit (lib) mkIf; cfg = config.ooknet.tools.sourcegraph; -in - -{ +in { config = mkIf cfg.enable { - home.packages = [ pkgs.src-cli ]; + home.packages = [pkgs.src-cli]; }; } diff --git a/home/modules/console/tools/ssh.nix b/home/modules/console/tools/ssh.nix index 7f9c9ac..30e1416 100644 --- a/home/modules/console/tools/ssh.nix +++ b/home/modules/console/tools/ssh.nix @@ -1,11 +1,12 @@ -{ lib, config, osConfig, ... }: - -let +{ + lib, + config, + osConfig, + ... +}: let inherit (lib) mkIf; cfg = config.ooknet.tools.ssh; -in - -{ +in { config = mkIf cfg.enable { programs.ssh = { enable = true; diff --git a/home/modules/console/tools/starship.nix b/home/modules/console/tools/starship.nix index e3574c6..e73952e 100644 --- a/home/modules/console/tools/starship.nix +++ b/home/modules/console/tools/starship.nix @@ -1,11 +1,11 @@ -{ config, lib, ... }: - -let +{ + config, + lib, + ... +}: let cfg = config.ooknet.tools.starship; inherit (lib) concatStrings mkIf; -in - -{ +in { config = mkIf cfg.enable { programs.starship = { enable = true; @@ -73,4 +73,3 @@ in }; }; } - diff --git a/home/modules/console/tools/utils.nix b/home/modules/console/tools/utils.nix index 3f83dc5..8b4b6af 100644 --- a/home/modules/console/tools/utils.nix +++ b/home/modules/console/tools/utils.nix @@ -1,14 +1,15 @@ -{ pkgs, lib, config, ... }: - -let - cfg = config.ooknet.tools.utils; -in - { + pkgs, + lib, + config, + ... +}: let + cfg = config.ooknet.tools.utils; +in { config = lib.mkIf cfg.enable { home.packages = with pkgs; [ bc # Calculator - + # file utility duf du-dust @@ -19,7 +20,7 @@ in zip unzip unrar - + # file transfer wget httpie # Better curl @@ -31,7 +32,7 @@ in gum # audio ctrl pamixer - + diffsitter # Better diff jq # JSON pretty printer and manipulator tldr # Community maintained help pages diff --git a/home/modules/desktop/browser/firefox/default.nix b/home/modules/desktop/browser/firefox/default.nix index 060010b..b4bf787 100644 --- a/home/modules/desktop/browser/firefox/default.nix +++ b/home/modules/desktop/browser/firefox/default.nix @@ -1,6 +1,11 @@ -{ pkgs, lib, inputs, config, osConfig, ... }: - -let +{ + pkgs, + lib, + inputs, + config, + osConfig, + ... +}: let inherit (lib) mkIf mkMerge; addons = inputs.firefox-addons.packages.${pkgs.system}; @@ -22,16 +27,13 @@ let "application/x-extension-xht" = ["firefox.desktop"]; "application/json" = ["firefox.desktop"]; }; -in - -{ - - imports = [ ./tridactyl.nix ]; - config = mkMerge [ +in { + imports = [./tridactyl.nix]; + config = mkMerge [ (mkIf (cfg.enable || browser == "firefox") { programs.firefox = { enable = true; - nativeMessagingHosts = [ pkgs.tridactyl-native ]; + nativeMessagingHosts = [pkgs.tridactyl-native]; profiles.${admin.name} = { extensions = with addons; [ ublock-origin @@ -54,6 +56,5 @@ in defaultApplications = firefoxMime; }; }) - ]; } diff --git a/home/modules/desktop/browser/firefox/settings/narsilUserjs.nix b/home/modules/desktop/browser/firefox/settings/narsilUserjs.nix index 423ca4b..d3f67a1 100644 --- a/home/modules/desktop/browser/firefox/settings/narsilUserjs.nix +++ b/home/modules/desktop/browser/firefox/settings/narsilUserjs.nix @@ -1,1048 +1,1047 @@ { -# https:#git.nixnet.services/Narsil/desktop_user.js -# Author : Narsil : https:#git.nixnet.services/Narsil + # https:#git.nixnet.services/Narsil/desktop_user.js + # Author : Narsil : https:#git.nixnet.services/Narsil -# Based on : arkenfox : https:#github.com/arkenfox/user.js + # Based on : arkenfox : https:#github.com/arkenfox/user.js -# License : https:#git.nixnet.services/Narsil/desktop_user.js/raw/branch/master/LICENSE + # License : https:#git.nixnet.services/Narsil/desktop_user.js/raw/branch/master/LICENSE -# Disable about:config warning -"browser.aboutConfig.showWarning" = false; + # Disable about:config warning + "browser.aboutConfig.showWarning" = false; -# STARTUP + # STARTUP -# Disable default browser check -"browser.shell.checkDefaultBrowser" = false; + # Disable default browser check + "browser.shell.checkDefaultBrowser" = false; -# Set startup page [SETUP-CHROME] -# 0=blank = 1=home = 2=last visited page = 3=resume previous session -"browser.startup.page" = 0; + # Set startup page [SETUP-CHROME] + # 0=blank = 1=home = 2=last visited page = 3=resume previous session + "browser.startup.page" = 0; -# Set HOME+NEWWINDOW page -"browser.startup.homepage" = "about:blank"; + # Set HOME+NEWWINDOW page + "browser.startup.homepage" = "about:blank"; -# Set NEWTAB page -# true=Activity Stream (default) = false=blank page -"browser.newtabpage.enabled" = false; + # Set NEWTAB page + # true=Activity Stream (default) = false=blank page + "browser.newtabpage.enabled" = false; -# Disable sponsored content on Firefox Home (Activity Stream) -"browser.newtabpage.activity-stream.showSponsored" = false; # [FF58+] Pocket > Sponsored Stories -"browser.newtabpage.activity-stream.showSponsoredTopSites" = false; # [FF83+] Sponsored shortcuts + # Disable sponsored content on Firefox Home (Activity Stream) + "browser.newtabpage.activity-stream.showSponsored" = false; # [FF58+] Pocket > Sponsored Stories + "browser.newtabpage.activity-stream.showSponsoredTopSites" = false; # [FF83+] Sponsored shortcuts -# Clear default topsites -"browser.newtabpage.activity-stream.default.sites" = ""; -"browser.topsites.contile.enabled" = false; -"browser.topsites.useRemoteSetting" = false; + # Clear default topsites + "browser.newtabpage.activity-stream.default.sites" = ""; + "browser.topsites.contile.enabled" = false; + "browser.topsites.useRemoteSetting" = false; -# GEOLOCATION + # GEOLOCATION -# Use Mozilla geolocation service instead of Google if permission is granted [FF74+] -"geo.provider.network.url" = ""; -#"geo.provider.network.logging.enabled" = true; # [HIDDEN PREF] + # Use Mozilla geolocation service instead of Google if permission is granted [FF74+] + "geo.provider.network.url" = ""; + #"geo.provider.network.logging.enabled" = true; # [HIDDEN PREF] -# Disable using the OS's geolocation service -"geo.provider.use_gpsd" = false; # [LINUX] [HIDDEN PREF] -"geo.provider.geoclue.always_high_accuracy" = false; # [LINUX] -"geo.provider.use_geoclue" = false; # [FF102+] [LINUX] + # Disable using the OS's geolocation service + "geo.provider.use_gpsd" = false; # [LINUX] [HIDDEN PREF] + "geo.provider.geoclue.always_high_accuracy" = false; # [LINUX] + "geo.provider.use_geoclue" = false; # [FF102+] [LINUX] -# Disable region updates -"browser.region.network.url" = ""; # [FF78+] Defense-in-depth -"browser.region.update.enabled" = false; # [FF79+] + # Disable region updates + "browser.region.network.url" = ""; # [FF78+] Defense-in-depth + "browser.region.update.enabled" = false; # [FF79+] -# QUIETER FOX + # QUIETER FOX -# Disable recommendation pane in about:addons (uses Google Analytics) -"extensions.getAddons.showPane" = false; # [HIDDEN PREF] + # Disable recommendation pane in about:addons (uses Google Analytics) + "extensions.getAddons.showPane" = false; # [HIDDEN PREF] -# Disable recommendations in about:addons' Extensions and Themes panes [FF68+] -"extensions.htmlaboutaddons.recommendations.enabled" = false; + # Disable recommendations in about:addons' Extensions and Themes panes [FF68+] + "extensions.htmlaboutaddons.recommendations.enabled" = false; -# Disable personalized Extension Recommendations in about:addons and AMO [FF65+] -"browser.discovery.enabled" = false; + # Disable personalized Extension Recommendations in about:addons and AMO [FF65+] + "browser.discovery.enabled" = false; -# Disable shopping experience [FF116+] -"browser.shopping.experience2023.enabled" = false; # [DEFAULT: false] -"browser.shopping.experience2023.opted" = 2; -"browser.shopping.experience2023.active" = false; + # Disable shopping experience [FF116+] + "browser.shopping.experience2023.enabled" = false; # [DEFAULT: false] + "browser.shopping.experience2023.opted" = 2; + "browser.shopping.experience2023.active" = false; -# TELEMETRY + # TELEMETRY -# Disable new data submission [FF41+] -"datareporting.policy.dataSubmissionEnabled" = false; + # Disable new data submission [FF41+] + "datareporting.policy.dataSubmissionEnabled" = false; -# Disable Health Reports -"datareporting.healthreport.uploadEnabled" = false; + # Disable Health Reports + "datareporting.healthreport.uploadEnabled" = false; -# Disable telemetry -"toolkit.telemetry.unified" = false; -"toolkit.telemetry.enabled" = false; # see [NOTE] -"toolkit.telemetry.server" = "data:,"; -"toolkit.telemetry.archive.enabled" = false; -"toolkit.telemetry.newProfilePing.enabled" = false; # [FF55+] -"toolkit.telemetry.shutdownPingSender.enabled" = false; # [FF55+] -"toolkit.telemetry.updatePing.enabled" = false; # [FF56+] -"toolkit.telemetry.bhrPing.enabled" = false; # [FF57+] Background Hang Reporter -"toolkit.telemetry.firstShutdownPing.enabled" = false; # [FF57+] - -# Skip checking omni.ja and other files -"corroborator.enabled" = false; - -# Disable Telemetry Coverage -"toolkit.telemetry.coverage.opt-out" = true; # [HIDDEN PREF] -"toolkit.coverage.opt-out" = true; # [FF64+] [HIDDEN PREF] -"toolkit.coverage.endpoint.base" = ""; - -# Disable PingCentre telemetry (used in several System Add-ons) [FF57+] -"browser.ping-centre.telemetry" = false; - -# Disable Firefox Home (Activity Stream) telemetry -"browser.newtabpage.activity-stream.feeds.telemetry" = false; -"browser.newtabpage.activity-stream.telemetry" = false; - -# Disable WebVTT logging and test events -"media.webvtt.debug.logging" = false; -"media.webvtt.testing.events" = false; - -# Disable send content blocking log to about:protections -"browser.contentblocking.database.enabled" = false; - -# Disable celebrating milestone toast when certain numbers of trackers are blocked -"browser.contentblocking.cfr-milestone.enabled" = false; - -# Disable Default Browser Agent -"default-browser-agent.enabled" = false; # [WINDOWS] - -# STUDIES - -# Disable Studies -"app.shield.optoutstudies.enabled" = false; - -# Disable Normandy/Shield [FF60+] -"app.normandy.enabled" = false; -"app.normandy.api_url" = ""; - -# CRASH REPORTS - -# Disable Crash Reports -"breakpad.reportURL" = ""; -"browser.tabs.crashReporting.sendReport" = false; # [FF44+] -#"browser.crashReports.unsubmittedCheck.enabled" = false; # [FF51+] [DEFAULT: false] - -# Enforce no submission of backlogged Crash Reports [FF58+] -"browser.crashReports.unsubmittedCheck.autoSubmit2" = false; # [DEFAULT: false] - -# OTHER - -# Disable Captive Portal detection -"captivedetect.canonicalURL" = ""; -"network.captive-portal-service.enabled" = false; # [FF52+] - -# Disable Network Connectivity checks [FF65+] -"network.connectivity-service.enabled" = false; - -# Disable contentblocking reports -"browser.contentblocking.reportBreakage.url" = ""; -"browser.contentblocking.report.cookie.url" = ""; -"browser.contentblocking.report.cryptominer.url" = ""; -"browser.contentblocking.report.fingerprinter.url" = ""; -"browser.contentblocking.report.lockwise.enabled" = false; -"browser.contentblocking.report.lockwise.how_it_works.url" = ""; -"browser.contentblocking.report.manage_devices.url" = ""; -"browser.contentblocking.report.monitor.enabled" = false; -"browser.contentblocking.report.monitor.how_it_works.url" = ""; -"browser.contentblocking.report.monitor.sign_in_url" = ""; -"browser.contentblocking.report.monitor.url" = ""; -"browser.contentblocking.report.proxy.enabled" = false; -"browser.contentblocking.report.proxy_extension.url" = ""; -"browser.contentblocking.report.social.url" = ""; -"browser.contentblocking.report.tracker.url" = ""; -"browser.contentblocking.report.endpoint_url" = ""; -"browser.contentblocking.report.monitor.home_page_url" = ""; -"browser.contentblocking.report.monitor.preferences_url" = ""; -"browser.contentblocking.report.vpn.enabled" = false; -"browser.contentblocking.report.hide_vpn_banner" = true; -"browser.contentblocking.report.show_mobile_app" = false; -"browser.vpn_promo.enabled" = false; -"browser.promo.focus.enabled" = false; - -# Block unwanted connections -"app.feedback.baseURL" = ""; -"app.support.baseURL" = ""; -"app.releaseNotesURL" = ""; -"app.update.url.details" = ""; -"app.update.url.manual" = ""; -"app.update.staging.enabled" = false; - -# Remove default handlers and translation engine -"gecko.handlerService.schemes.mailto.0.uriTemplate" = ""; -"gecko.handlerService.schemes.mailto.0.name" = ""; -"gecko.handlerService.schemes.mailto.1.uriTemplate" = ""; -"gecko.handlerService.schemes.mailto.1.name" = ""; -"gecko.handlerService.schemes.irc.0.uriTemplate" = ""; -"gecko.handlerService.schemes.irc.0.name" = ""; -"gecko.handlerService.schemes.ircs.0.uriTemplate" = ""; -"gecko.handlerService.schemes.ircs.0.name" = ""; -"browser.translation.engine" = ""; - -# Disable connections to Mozilla servers -"services.settings.server" = ""; - -# SAFE BROWSING (SB) - -# Disable SB (Safe Browsing) -"browser.safebrowsing.malware.enabled" = false; -"browser.safebrowsing.phishing.enabled" = false; -"browser.safebrowsing.passwords.enabled" = false; -"browser.safebrowsing.allowOverride" = false; - -# Disable SB checks for downloads (both local lookups + remote) -"browser.safebrowsing.downloads.enabled" = false; - -# Disable SB checks for downloads (remote) -"browser.safebrowsing.downloads.remote.enabled" = false; -"browser.safebrowsing.downloads.remote.url" = ""; - -# Disable SB checks for unwanted software -"browser.safebrowsing.downloads.remote.block_potentially_unwanted" = false; -"browser.safebrowsing.downloads.remote.block_uncommon" = false; - -# Disable "ignore this warning" on SB warnings [FF45+] -#"browser.safebrowsing.allowOverride" = false; - -# Google connections -"browser.safebrowsing.downloads.remote.block_dangerous" = false; -"browser.safebrowsing.downloads.remote.block_dangerous_host" = false; -"browser.safebrowsing.provider.google.updateURL" = ""; -"browser.safebrowsing.provider.google.gethashURL" = ""; -"browser.safebrowsing.provider.google4.updateURL" = ""; -"browser.safebrowsing.provider.google4.gethashURL" = ""; -"browser.safebrowsing.provider.google.reportURL" = ""; -"browser.safebrowsing.reportPhishURL" = ""; -"browser.safebrowsing.provider.google4.reportURL" = ""; -"browser.safebrowsing.provider.google.reportMalwareMistakeURL" = ""; -"browser.safebrowsing.provider.google.reportPhishMistakeURL" = ""; -"browser.safebrowsing.provider.google4.reportMalwareMistakeURL" = ""; -"browser.safebrowsing.provider.google4.reportPhishMistakeURL" = ""; -"browser.safebrowsing.provider.google4.dataSharing.enabled" = false; -"browser.safebrowsing.provider.google4.dataSharingURL" = ""; -"browser.safebrowsing.provider.google.advisory" = ""; -"browser.safebrowsing.provider.google.advisoryURL" = ""; -# "browser.safebrowsing.provider.google.gethashURL" = ""; -"browser.safebrowsing.provider.google4.advisoryURL" = ""; -"browser.safebrowsing.blockedURIs.enabled" = false; -"browser.safebrowsing.provider.mozilla.gethashURL" = ""; -"browser.safebrowsing.provider.mozilla.updateURL" = ""; - -# BLOCK IMPLICIT OUTBOUND - -# Disable link prefetching -"network.prefetch-next" = false; - -# Disable DNS prefetching -"network.dns.disablePrefetch" = true; -#"network.dns.disablePrefetchFromHTTPS" = true; # [DEFAULT: true] - -# Disable predictor / prefetching -"network.predictor.enabled" = false; -"network.predictor.enable-prefetch" = false; # [FF48+] [DEFAULT: false] - -# Disable link-mouseover opening connection to linked server -"network.http.speculative-parallel-limit" = 0; - -# Disable mousedown speculative connections on bookmarks and history [FF98+] -"browser.places.speculativeConnect.enabled" = false; - -# Enforce no "Hyperlink Auditing" (click tracking) -#"browser.send_pings" = false; # [DEFAULT: false] - -# DNS / DoH / PROXY / SOCKS - -# Set the proxy server to do any DNS lookups when using SOCKS -"network.proxy.socks_remote_dns" = true; - -# Disable using UNC (Uniform Naming Convention) paths [FF61+] -"network.file.disable_unc_paths" = true; # [HIDDEN PREF] - -# Disable GIO as a potential proxy bypass vector -"network.gio.supported-protocols" = ""; # [HIDDEN PREF] [DEFAULT: "" FF118+] - -# Disable proxy direct failover for system requests [FF91+] -#"network.proxy.failover_direct" = false; + # Disable telemetry + "toolkit.telemetry.unified" = false; + "toolkit.telemetry.enabled" = false; # see [NOTE] + "toolkit.telemetry.server" = "data:,"; + "toolkit.telemetry.archive.enabled" = false; + "toolkit.telemetry.newProfilePing.enabled" = false; # [FF55+] + "toolkit.telemetry.shutdownPingSender.enabled" = false; # [FF55+] + "toolkit.telemetry.updatePing.enabled" = false; # [FF56+] + "toolkit.telemetry.bhrPing.enabled" = false; # [FF57+] Background Hang Reporter + "toolkit.telemetry.firstShutdownPing.enabled" = false; # [FF57+] + + # Skip checking omni.ja and other files + "corroborator.enabled" = false; + + # Disable Telemetry Coverage + "toolkit.telemetry.coverage.opt-out" = true; # [HIDDEN PREF] + "toolkit.coverage.opt-out" = true; # [FF64+] [HIDDEN PREF] + "toolkit.coverage.endpoint.base" = ""; + + # Disable PingCentre telemetry (used in several System Add-ons) [FF57+] + "browser.ping-centre.telemetry" = false; + + # Disable Firefox Home (Activity Stream) telemetry + "browser.newtabpage.activity-stream.feeds.telemetry" = false; + "browser.newtabpage.activity-stream.telemetry" = false; + + # Disable WebVTT logging and test events + "media.webvtt.debug.logging" = false; + "media.webvtt.testing.events" = false; + + # Disable send content blocking log to about:protections + "browser.contentblocking.database.enabled" = false; + + # Disable celebrating milestone toast when certain numbers of trackers are blocked + "browser.contentblocking.cfr-milestone.enabled" = false; + + # Disable Default Browser Agent + "default-browser-agent.enabled" = false; # [WINDOWS] + + # STUDIES + + # Disable Studies + "app.shield.optoutstudies.enabled" = false; + + # Disable Normandy/Shield [FF60+] + "app.normandy.enabled" = false; + "app.normandy.api_url" = ""; + + # CRASH REPORTS + + # Disable Crash Reports + "breakpad.reportURL" = ""; + "browser.tabs.crashReporting.sendReport" = false; # [FF44+] + #"browser.crashReports.unsubmittedCheck.enabled" = false; # [FF51+] [DEFAULT: false] + + # Enforce no submission of backlogged Crash Reports [FF58+] + "browser.crashReports.unsubmittedCheck.autoSubmit2" = false; # [DEFAULT: false] + + # OTHER + + # Disable Captive Portal detection + "captivedetect.canonicalURL" = ""; + "network.captive-portal-service.enabled" = false; # [FF52+] + + # Disable Network Connectivity checks [FF65+] + "network.connectivity-service.enabled" = false; + + # Disable contentblocking reports + "browser.contentblocking.reportBreakage.url" = ""; + "browser.contentblocking.report.cookie.url" = ""; + "browser.contentblocking.report.cryptominer.url" = ""; + "browser.contentblocking.report.fingerprinter.url" = ""; + "browser.contentblocking.report.lockwise.enabled" = false; + "browser.contentblocking.report.lockwise.how_it_works.url" = ""; + "browser.contentblocking.report.manage_devices.url" = ""; + "browser.contentblocking.report.monitor.enabled" = false; + "browser.contentblocking.report.monitor.how_it_works.url" = ""; + "browser.contentblocking.report.monitor.sign_in_url" = ""; + "browser.contentblocking.report.monitor.url" = ""; + "browser.contentblocking.report.proxy.enabled" = false; + "browser.contentblocking.report.proxy_extension.url" = ""; + "browser.contentblocking.report.social.url" = ""; + "browser.contentblocking.report.tracker.url" = ""; + "browser.contentblocking.report.endpoint_url" = ""; + "browser.contentblocking.report.monitor.home_page_url" = ""; + "browser.contentblocking.report.monitor.preferences_url" = ""; + "browser.contentblocking.report.vpn.enabled" = false; + "browser.contentblocking.report.hide_vpn_banner" = true; + "browser.contentblocking.report.show_mobile_app" = false; + "browser.vpn_promo.enabled" = false; + "browser.promo.focus.enabled" = false; + + # Block unwanted connections + "app.feedback.baseURL" = ""; + "app.support.baseURL" = ""; + "app.releaseNotesURL" = ""; + "app.update.url.details" = ""; + "app.update.url.manual" = ""; + "app.update.staging.enabled" = false; + + # Remove default handlers and translation engine + "gecko.handlerService.schemes.mailto.0.uriTemplate" = ""; + "gecko.handlerService.schemes.mailto.0.name" = ""; + "gecko.handlerService.schemes.mailto.1.uriTemplate" = ""; + "gecko.handlerService.schemes.mailto.1.name" = ""; + "gecko.handlerService.schemes.irc.0.uriTemplate" = ""; + "gecko.handlerService.schemes.irc.0.name" = ""; + "gecko.handlerService.schemes.ircs.0.uriTemplate" = ""; + "gecko.handlerService.schemes.ircs.0.name" = ""; + "browser.translation.engine" = ""; + + # Disable connections to Mozilla servers + "services.settings.server" = ""; + + # SAFE BROWSING (SB) + + # Disable SB (Safe Browsing) + "browser.safebrowsing.malware.enabled" = false; + "browser.safebrowsing.phishing.enabled" = false; + "browser.safebrowsing.passwords.enabled" = false; + "browser.safebrowsing.allowOverride" = false; + + # Disable SB checks for downloads (both local lookups + remote) + "browser.safebrowsing.downloads.enabled" = false; + + # Disable SB checks for downloads (remote) + "browser.safebrowsing.downloads.remote.enabled" = false; + "browser.safebrowsing.downloads.remote.url" = ""; + + # Disable SB checks for unwanted software + "browser.safebrowsing.downloads.remote.block_potentially_unwanted" = false; + "browser.safebrowsing.downloads.remote.block_uncommon" = false; + + # Disable "ignore this warning" on SB warnings [FF45+] + #"browser.safebrowsing.allowOverride" = false; + + # Google connections + "browser.safebrowsing.downloads.remote.block_dangerous" = false; + "browser.safebrowsing.downloads.remote.block_dangerous_host" = false; + "browser.safebrowsing.provider.google.updateURL" = ""; + "browser.safebrowsing.provider.google.gethashURL" = ""; + "browser.safebrowsing.provider.google4.updateURL" = ""; + "browser.safebrowsing.provider.google4.gethashURL" = ""; + "browser.safebrowsing.provider.google.reportURL" = ""; + "browser.safebrowsing.reportPhishURL" = ""; + "browser.safebrowsing.provider.google4.reportURL" = ""; + "browser.safebrowsing.provider.google.reportMalwareMistakeURL" = ""; + "browser.safebrowsing.provider.google.reportPhishMistakeURL" = ""; + "browser.safebrowsing.provider.google4.reportMalwareMistakeURL" = ""; + "browser.safebrowsing.provider.google4.reportPhishMistakeURL" = ""; + "browser.safebrowsing.provider.google4.dataSharing.enabled" = false; + "browser.safebrowsing.provider.google4.dataSharingURL" = ""; + "browser.safebrowsing.provider.google.advisory" = ""; + "browser.safebrowsing.provider.google.advisoryURL" = ""; + # "browser.safebrowsing.provider.google.gethashURL" = ""; + "browser.safebrowsing.provider.google4.advisoryURL" = ""; + "browser.safebrowsing.blockedURIs.enabled" = false; + "browser.safebrowsing.provider.mozilla.gethashURL" = ""; + "browser.safebrowsing.provider.mozilla.updateURL" = ""; + + # BLOCK IMPLICIT OUTBOUND + + # Disable link prefetching + "network.prefetch-next" = false; + + # Disable DNS prefetching + "network.dns.disablePrefetch" = true; + #"network.dns.disablePrefetchFromHTTPS" = true; # [DEFAULT: true] + + # Disable predictor / prefetching + "network.predictor.enabled" = false; + "network.predictor.enable-prefetch" = false; # [FF48+] [DEFAULT: false] + + # Disable link-mouseover opening connection to linked server + "network.http.speculative-parallel-limit" = 0; + + # Disable mousedown speculative connections on bookmarks and history [FF98+] + "browser.places.speculativeConnect.enabled" = false; + + # Enforce no "Hyperlink Auditing" (click tracking) + #"browser.send_pings" = false; # [DEFAULT: false] + + # DNS / DoH / PROXY / SOCKS + + # Set the proxy server to do any DNS lookups when using SOCKS + "network.proxy.socks_remote_dns" = true; + + # Disable using UNC (Uniform Naming Convention) paths [FF61+] + "network.file.disable_unc_paths" = true; # [HIDDEN PREF] + + # Disable GIO as a potential proxy bypass vector + "network.gio.supported-protocols" = ""; # [HIDDEN PREF] [DEFAULT: "" FF118+] + + # Disable proxy direct failover for system requests [FF91+] + #"network.proxy.failover_direct" = false; -# Disable proxy bypass for system request failures [FF95+] -#"network.proxy.allow_bypass" = false; + # Disable proxy bypass for system request failures [FF95+] + #"network.proxy.allow_bypass" = false; -# Disable DNS-over-HTTPS (DoH)[FF60+] -"network.trr.mode" = 5; -"network.trr.confirmationNS" = ""; + # Disable DNS-over-HTTPS (DoH)[FF60+] + "network.trr.mode" = 5; + "network.trr.confirmationNS" = ""; -# Disable skipping DoH when parental controls are enabled -"network.trr.uri" = ""; -"network.trr.custom_uri" = ""; + # Disable skipping DoH when parental controls are enabled + "network.trr.uri" = ""; + "network.trr.custom_uri" = ""; -# LOCATION BAR / SEARCH BAR / SUGGESTIONS / HISTORY / FORMS + # LOCATION BAR / SEARCH BAR / SUGGESTIONS / HISTORY / FORMS -# Disable location bar making speculative connections [FF56+] -"browser.urlbar.speculativeConnect.enabled" = false; + # Disable location bar making speculative connections [FF56+] + "browser.urlbar.speculativeConnect.enabled" = false; -# Disable location bar contextual suggestions -"browser.urlbar.suggest.quicksuggest.nonsponsored" = false; # [FF95+] -"browser.urlbar.suggest.quicksuggest.sponsored" = false; # [FF92+] + # Disable location bar contextual suggestions + "browser.urlbar.suggest.quicksuggest.nonsponsored" = false; # [FF95+] + "browser.urlbar.suggest.quicksuggest.sponsored" = false; # [FF92+] -# Disable live search suggestions -"browser.search.suggest.enabled" = false; -"browser.urlbar.suggest.searches" = false; + # Disable live search suggestions + "browser.search.suggest.enabled" = false; + "browser.urlbar.suggest.searches" = false; -# Disable urlbar trending search suggestions [FF118+] -"browser.urlbar.trending.featureGate" = false; + # Disable urlbar trending search suggestions [FF118+] + "browser.urlbar.trending.featureGate" = false; -# Disable urlbar suggestions -"browser.urlbar.addons.featureGate" = false; # [FF115+] -"browser.urlbar.mdn.featureGate" = false; # [FF117+] [HIDDEN PREF] -"browser.urlbar.pocket.featureGate" = false; # [FF116+] [DEFAULT: false] -"browser.urlbar.weather.featureGate" = false; # [FF108+] [DEFAULT: false] + # Disable urlbar suggestions + "browser.urlbar.addons.featureGate" = false; # [FF115+] + "browser.urlbar.mdn.featureGate" = false; # [FF117+] [HIDDEN PREF] + "browser.urlbar.pocket.featureGate" = false; # [FF116+] [DEFAULT: false] + "browser.urlbar.weather.featureGate" = false; # [FF108+] [DEFAULT: false] -# Disable urlbar clipboard suggestions [FF118+] -#"browser.urlbar.clipboard.featureGate" = false; # [DEFAULT: false] + # Disable urlbar clipboard suggestions [FF118+] + #"browser.urlbar.clipboard.featureGate" = false; # [DEFAULT: false] -# Disable search and form history -"browser.formfill.enable" = false; + # Disable search and form history + "browser.formfill.enable" = false; -# Disable tab-to-search [FF85+] -"browser.urlbar.suggest.engines" = false; + # Disable tab-to-search [FF85+] + "browser.urlbar.suggest.engines" = false; -# Disable coloring of visited links -"layout.css.visited_links_enabled" = false; + # Disable coloring of visited links + "layout.css.visited_links_enabled" = false; -# Enable separate default search engine in Private Windows and its UI setting -"browser.search.separatePrivateDefault" = true; # [FF70+] -"browser.search.separatePrivateDefault.ui.enabled" = true; # [FF71+] + # Enable separate default search engine in Private Windows and its UI setting + "browser.search.separatePrivateDefault" = true; # [FF70+] + "browser.search.separatePrivateDefault.ui.enabled" = true; # [FF71+] -# Disable merino -"browser.urlbar.merino.enabled" = false; + # Disable merino + "browser.urlbar.merino.enabled" = false; -# PASSWORDS -# -# Disable saving passwords and password alerts. -"signon.rememberSignons" = false; -"signon.generation.enabled" = false; -"signon.management.page.breach-alerts.enabled" = false; -"signon.management.page.breachAlertUrl" = ""; + # PASSWORDS + # + # Disable saving passwords and password alerts. + "signon.rememberSignons" = false; + "signon.generation.enabled" = false; + "signon.management.page.breach-alerts.enabled" = false; + "signon.management.page.breachAlertUrl" = ""; -# Set when Firefox should prompt for the primary password -# 0=once per session (default) = 1=every time it's needed = 2=after n minutes -"security.ask_for_password" = 2; + # Set when Firefox should prompt for the primary password + # 0=once per session (default) = 1=every time it's needed = 2=after n minutes + "security.ask_for_password" = 2; -# Set how long in minutes Firefox should remember the primary password (0901) -"security.password_lifetime" = 5; # [DEFAULT: 30] + # Set how long in minutes Firefox should remember the primary password (0901) + "security.password_lifetime" = 5; # [DEFAULT: 30] -# Disable auto-filling username & password form fields -"signon.autofillForms" = false; + # Disable auto-filling username & password form fields + "signon.autofillForms" = false; -# Disable formless login capture for Password Manager [FF51+] -"signon.formlessCapture.enabled" = false; + # Disable formless login capture for Password Manager [FF51+] + "signon.formlessCapture.enabled" = false; -# Limit (or disable) HTTP authentication credentials dialogs triggered by sub-resources [FF41+] -# 0 = don't allow sub-resources to open HTTP authentication credentials dialogs -# 1 = don't allow cross-origin sub-resources to open HTTP authentication credentials dialogs -# 2 = allow sub-resources to open HTTP authentication credentials dialogs (default) -"network.auth.subresource-http-auth-allow" = 1; + # Limit (or disable) HTTP authentication credentials dialogs triggered by sub-resources [FF41+] + # 0 = don't allow sub-resources to open HTTP authentication credentials dialogs + # 1 = don't allow cross-origin sub-resources to open HTTP authentication credentials dialogs + # 2 = allow sub-resources to open HTTP authentication credentials dialogs (default) + "network.auth.subresource-http-auth-allow" = 1; -# DISK AVOIDANCE + # DISK AVOIDANCE -# Disable disk cache -"browser.cache.disk.enable" = false; + # Disable disk cache + "browser.cache.disk.enable" = false; -# Disable media cache from writing to disk in Private Browsing -"browser.privatebrowsing.forceMediaMemoryCache" = true; # [FF75+] -"media.memory_cache_max_size" = 65536; + # Disable media cache from writing to disk in Private Browsing + "browser.privatebrowsing.forceMediaMemoryCache" = true; # [FF75+] + "media.memory_cache_max_size" = 65536; -# Disable storing extra session data [SETUP-CHROME] -# 0=everywhere = 1=unencrypted sites = 2=nowhere -"browser.sessionstore.privacy_level" = 2; + # Disable storing extra session data [SETUP-CHROME] + # 0=everywhere = 1=unencrypted sites = 2=nowhere + "browser.sessionstore.privacy_level" = 2; -# HTTPS (SSL/TLS / OCSP / CERTS / HPKP) + # HTTPS (SSL/TLS / OCSP / CERTS / HPKP) -# Require safe negotiation -"security.ssl.require_safe_negotiation" = true; + # Require safe negotiation + "security.ssl.require_safe_negotiation" = true; -# Disable TLS1.3 0-RTT (round-trip time) [FF51+] -"security.tls.enable_0rtt_data" = false; + # Disable TLS1.3 0-RTT (round-trip time) [FF51+] + "security.tls.enable_0rtt_data" = false; -# OCSP (Online Certificate Status Protocol) + # OCSP (Online Certificate Status Protocol) -# Enforce OCSP fetching to confirm current validity of certificates -# 0=disabled = 1=enabled (default) = 2=enabled for EV certificates only -"security.OCSP.enabled" = 0; # [DEFAULT: 1] + # Enforce OCSP fetching to confirm current validity of certificates + # 0=disabled = 1=enabled (default) = 2=enabled for EV certificates only + "security.OCSP.enabled" = 0; # [DEFAULT: 1] -# Set OCSP fetch failures (non-stapled) to hard-fail [SETUP-WEB] -"security.OCSP.require" = false; + # Set OCSP fetch failures (non-stapled) to hard-fail [SETUP-WEB] + "security.OCSP.require" = false; -# CERTS / HPKP (HTTP Public Key Pinning) + # CERTS / HPKP (HTTP Public Key Pinning) -# Enable strict PKP (Public Key Pinning) -# 0=disabled = 1=allow user MiTM (default; such as your antivirus) = 2=strict -"security.cert_pinning.enforcement_level" = 2; + # Enable strict PKP (Public Key Pinning) + # 0=disabled = 1=allow user MiTM (default; such as your antivirus) = 2=strict + "security.cert_pinning.enforcement_level" = 2; -# Disable CRLite [FF73+] -# 0 = disabled -# 1 = consult CRLite but only collect telemetry (default) -# 2 = consult CRLite and enforce both "Revoked" and "Not Revoked" results -# 3 = consult CRLite and enforce "Not Revoked" results = but defer to OCSP for "Revoked" (default) -"security.remote_settings.intermediates.enabled" = false; -"security.remote_settings.intermediates.bucket" = ""; -"security.remote_settings.intermediates.collection" = ""; -"security.remote_settings.intermediates.signer" = ""; -"security.remote_settings.crlite_filters.enabled" = false; -"security.remote_settings.crlite_filters.bucket" = ""; -"security.remote_settings.crlite_filters.collection" = ""; -"security.remote_settings.crlite_filters.signer" = ""; -"security.pki.crlite_mode" = 0; + # Disable CRLite [FF73+] + # 0 = disabled + # 1 = consult CRLite but only collect telemetry (default) + # 2 = consult CRLite and enforce both "Revoked" and "Not Revoked" results + # 3 = consult CRLite and enforce "Not Revoked" results = but defer to OCSP for "Revoked" (default) + "security.remote_settings.intermediates.enabled" = false; + "security.remote_settings.intermediates.bucket" = ""; + "security.remote_settings.intermediates.collection" = ""; + "security.remote_settings.intermediates.signer" = ""; + "security.remote_settings.crlite_filters.enabled" = false; + "security.remote_settings.crlite_filters.bucket" = ""; + "security.remote_settings.crlite_filters.collection" = ""; + "security.remote_settings.crlite_filters.signer" = ""; + "security.pki.crlite_mode" = 0; -# MIXED CONTENT + # MIXED CONTENT -# Disable insecure passive content (such as images) on https pages [SETUP-WEB] -#"security.mixed_content.block_display_content" = true; # Defense-in-depth + # Disable insecure passive content (such as images) on https pages [SETUP-WEB] + #"security.mixed_content.block_display_content" = true; # Defense-in-depth -# Enable HTTPS-Only mode in all windows -"dom.security.https_only_mode" = true; # [FF76+] -#"dom.security.https_only_mode_pbm" = true; # [FF80+] + # Enable HTTPS-Only mode in all windows + "dom.security.https_only_mode" = true; # [FF76+] + #"dom.security.https_only_mode_pbm" = true; # [FF80+] -# Enable HTTPS-Only mode for local resources [FF77+] -#"dom.security.https_only_mode.upgrade_local" = true; + # Enable HTTPS-Only mode for local resources [FF77+] + #"dom.security.https_only_mode.upgrade_local" = true; -# Disable HTTP background requests [FF82+] -"dom.security.https_only_mode_send_http_background_request" = false; + # Disable HTTP background requests [FF82+] + "dom.security.https_only_mode_send_http_background_request" = false; -# Disable ping to Mozilla for Man-in-the-Middle detection -"security.certerrors.mitm.priming.enabled" = false; -"security.certerrors.mitm.priming.endpoint" = ""; -"security.pki.mitm_canary_issuer" = ""; -"security.pki.mitm_canary_issuer.enabled" = false; -"security.pki.mitm_detected" = false; + # Disable ping to Mozilla for Man-in-the-Middle detection + "security.certerrors.mitm.priming.enabled" = false; + "security.certerrors.mitm.priming.endpoint" = ""; + "security.pki.mitm_canary_issuer" = ""; + "security.pki.mitm_canary_issuer.enabled" = false; + "security.pki.mitm_detected" = false; -# UI (User Interface) + # UI (User Interface) -# Display warning on the padlock for "broken security" -"security.ssl.treat_unsafe_negotiation_as_broken" = true; + # Display warning on the padlock for "broken security" + "security.ssl.treat_unsafe_negotiation_as_broken" = true; -# Display advanced information on Insecure Connection warning pages -"browser.xul.error_pages.expert_bad_cert" = true; + # Display advanced information on Insecure Connection warning pages + "browser.xul.error_pages.expert_bad_cert" = true; -# REFERERS + # REFERERS -# Control the amount of cross-origin information to send [FF52+] -# 0=send full URI (default) = 1=scheme+host+port+path = 2=scheme+host+port -"network.http.referer.XOriginTrimmingPolicy" = 2; + # Control the amount of cross-origin information to send [FF52+] + # 0=send full URI (default) = 1=scheme+host+port+path = 2=scheme+host+port + "network.http.referer.XOriginTrimmingPolicy" = 2; -# CONTAINERS + # CONTAINERS -# Enable Container Tabs and its UI setting [FF50+] -"privacy.userContext.enabled" = true; -"privacy.userContext.ui.enabled" = true; + # Enable Container Tabs and its UI setting [FF50+] + "privacy.userContext.enabled" = true; + "privacy.userContext.ui.enabled" = true; -# Set behavior on "+ Tab" button to display container menu on left click [FF74+] -#"privacy.userContext.newTabContainerOnLeftClick.enabled" = true; + # Set behavior on "+ Tab" button to display container menu on left click [FF74+] + #"privacy.userContext.newTabContainerOnLeftClick.enabled" = true; -# PLUGINS / MEDIA / WEBRTC + # PLUGINS / MEDIA / WEBRTC -# Force WebRTC inside the proxy [FF70+] -"media.peerconnection.ice.proxy_only_if_behind_proxy" = true; + # Force WebRTC inside the proxy [FF70+] + "media.peerconnection.ice.proxy_only_if_behind_proxy" = true; -# Force a single network interface for ICE candidates generation [FF42+] -"media.peerconnection.ice.default_address_only" = true; + # Force a single network interface for ICE candidates generation [FF42+] + "media.peerconnection.ice.default_address_only" = true; -# Force exclusion of private IPs from ICE candidates [FF51+] -#"media.peerconnection.ice.no_host" = true; + # Force exclusion of private IPs from ICE candidates [FF51+] + #"media.peerconnection.ice.no_host" = true; -# Disable GMP (Gecko Media Plugins) -"media.gmp-provider.enabled" = false; -"media.gmp-manager.url" = ""; -"media.gmp-gmpopenh264.enabled" = false; + # Disable GMP (Gecko Media Plugins) + "media.gmp-provider.enabled" = false; + "media.gmp-manager.url" = ""; + "media.gmp-gmpopenh264.enabled" = false; -# DOM (DOCUMENT OBJECT MODEL) + # DOM (DOCUMENT OBJECT MODEL) -# Prevent scripts from moving and resizing open windows -"dom.disable_window_move_resize" = true; + # Prevent scripts from moving and resizing open windows + "dom.disable_window_move_resize" = true; -# MISCELLANEOUS + # MISCELLANEOUS -# Remove temp files opened from non-PB windows with an external application -"browser.download.start_downloads_in_tmp_dir" = true; # [FF102+] + # Remove temp files opened from non-PB windows with an external application + "browser.download.start_downloads_in_tmp_dir" = true; # [FF102+] -# Disable sending additional analytics to web servers -"beacon.enabled" = false; + # Disable sending additional analytics to web servers + "beacon.enabled" = false; -# Remove temp files opened with an external application -"browser.helperApps.deleteTempFileOnExit" = true; + # Remove temp files opened with an external application + "browser.helperApps.deleteTempFileOnExit" = true; -# Disable UITour backend so there is no chance that a remote page can use it -"browser.uitour.enabled" = false; -"browser.uitour.url" = ""; # Defense-in-depth + # Disable UITour backend so there is no chance that a remote page can use it + "browser.uitour.enabled" = false; + "browser.uitour.url" = ""; # Defense-in-depth -# Reset remote debugging to disabled -"devtools.debugger.remote-enabled" = false; # [DEFAULT: false] + # Reset remote debugging to disabled + "devtools.debugger.remote-enabled" = false; # [DEFAULT: false] -# Disable websites overriding Firefox's keyboard shortcuts [FF58+] -# 0 (default) or 1=allow = 2=block -#"permissions.default.shortcuts" = 2; + # Disable websites overriding Firefox's keyboard shortcuts [FF58+] + # 0 (default) or 1=allow = 2=block + #"permissions.default.shortcuts" = 2; -# Remove special permissions for certain mozilla domains [FF35+] -"permissions.manager.defaultsUrl" = ""; + # Remove special permissions for certain mozilla domains [FF35+] + "permissions.manager.defaultsUrl" = ""; -# Remove webchannel whitelist -"webchannel.allowObject.urlWhitelist" = ""; + # Remove webchannel whitelist + "webchannel.allowObject.urlWhitelist" = ""; -# Use Punycode in Internationalized Domain Names to eliminate possible spoofing -"network.IDN_show_punycode" = true; + # Use Punycode in Internationalized Domain Names to eliminate possible spoofing + "network.IDN_show_punycode" = true; -# Enforce PDFJS = disable PDFJS scripting -"pdfjs.disabled" = false; # [DEFAULT: false] -"pdfjs.enableScripting" = false; # [FF86+] + # Enforce PDFJS = disable PDFJS scripting + "pdfjs.disabled" = false; # [DEFAULT: false] + "pdfjs.enableScripting" = false; # [FF86+] -# Disable middle click on new tab button opening URLs or searches using clipboard [FF115+] -"browser.tabs.searchclipboardfor.middleclick" = false; # [DEFAULT: false NON-LINUX] + # Disable middle click on new tab button opening URLs or searches using clipboard [FF115+] + "browser.tabs.searchclipboardfor.middleclick" = false; # [DEFAULT: false NON-LINUX] -# Disable the default checkedness for "Save card and address to Firefox" checkboxes -"dom.payments.defaults.saveAddress" = false; -"dom.payments.defaults.saveCreditCard" = false; + # Disable the default checkedness for "Save card and address to Firefox" checkboxes + "dom.payments.defaults.saveAddress" = false; + "dom.payments.defaults.saveCreditCard" = false; -# Disable Displaying Javascript in History URLs -"browser.urlbar.filter.javascript" = true; + # Disable Displaying Javascript in History URLs + "browser.urlbar.filter.javascript" = true; -# DOWNLOADS + # DOWNLOADS -# Enable user interaction for security by always asking where to download -"browser.download.useDownloadDir" = false; + # Enable user interaction for security by always asking where to download + "browser.download.useDownloadDir" = false; -# Disable downloads panel opening on every download [FF96+] -"browser.download.alwaysOpenPanel" = false; + # Disable downloads panel opening on every download [FF96+] + "browser.download.alwaysOpenPanel" = false; -# Disable adding downloads to the system's "recent documents" list -"browser.download.manager.addToRecentDocs" = false; + # Disable adding downloads to the system's "recent documents" list + "browser.download.manager.addToRecentDocs" = false; -# Enable user interaction for security by always asking how to handle new mimetypes [FF101+] -"browser.download.always_ask_before_handling_new_types" = true; + # Enable user interaction for security by always asking how to handle new mimetypes [FF101+] + "browser.download.always_ask_before_handling_new_types" = true; -# EXTENSIONS + # EXTENSIONS -# Limit allowed extension directories -"extensions.enabledScopes" = 5; # [HIDDEN PREF] -#"extensions.autoDisableScopes" = 15; # [DEFAULT: 15] + # Limit allowed extension directories + "extensions.enabledScopes" = 5; # [HIDDEN PREF] + #"extensions.autoDisableScopes" = 15; # [DEFAULT: 15] -# Disable bypassing 3rd party extension install prompts [FF82+] -"extensions.postDownloadThirdPartyPrompt" = false; + # Disable bypassing 3rd party extension install prompts [FF82+] + "extensions.postDownloadThirdPartyPrompt" = false; -# Disable webextension restrictions on certain mozilla domains [FF60+] -#"extensions.webextensions.restrictedDomains" = ""; + # Disable webextension restrictions on certain mozilla domains [FF60+] + #"extensions.webextensions.restrictedDomains" = ""; -# Disable extensions suggestions -"extensions.webservice.discoverURL" = ""; + # Disable extensions suggestions + "extensions.webservice.discoverURL" = ""; -# ETP (ENHANCED TRACKING PROTECTION) + # ETP (ENHANCED TRACKING PROTECTION) -# Enable ETP Strict Mode [FF86+] -"browser.contentblocking.category" = "strict"; # [HIDDEN PREF] + # Enable ETP Strict Mode [FF86+] + "browser.contentblocking.category" = "strict"; # [HIDDEN PREF] -# Disable ETP web compat features [FF93+] -#"privacy.antitracking.enableWebcompat" = false; + # Disable ETP web compat features [FF93+] + #"privacy.antitracking.enableWebcompat" = false; -# SHUTDOWN & SANITIZING + # SHUTDOWN & SANITIZING -# Enable Firefox to clear items on shutdown -"privacy.sanitize.sanitizeOnShutdown" = true; + # Enable Firefox to clear items on shutdown + "privacy.sanitize.sanitizeOnShutdown" = true; -# SANITIZE ON SHUTDOWN: IGNORES "ALLOW" SITE EXCEPTIONS + # SANITIZE ON SHUTDOWN: IGNORES "ALLOW" SITE EXCEPTIONS -# Set/enforce what items to clear on shutdown [SETUP-CHROME] -"privacy.clearOnShutdown.cache" = true; -"privacy.clearOnShutdown.downloads" = true; # [DEFAULT: true] -"privacy.clearOnShutdown.formdata" = true; # [DEFAULT: true] -"privacy.clearOnShutdown.history" = true; # [DEFAULT: true] -"privacy.clearOnShutdown.sessions" = true; # [DEFAULT: true] -#"privacy.clearOnShutdown.siteSettings" = false; # [DEFAULT: false] + # Set/enforce what items to clear on shutdown [SETUP-CHROME] + "privacy.clearOnShutdown.cache" = true; + "privacy.clearOnShutdown.downloads" = true; # [DEFAULT: true] + "privacy.clearOnShutdown.formdata" = true; # [DEFAULT: true] + "privacy.clearOnShutdown.history" = true; # [DEFAULT: true] + "privacy.clearOnShutdown.sessions" = true; # [DEFAULT: true] + #"privacy.clearOnShutdown.siteSettings" = false; # [DEFAULT: false] -# Set Session Restore to clear on shutdown [FF34+] -#"privacy.clearOnShutdown.openWindows" = true; + # Set Session Restore to clear on shutdown [FF34+] + #"privacy.clearOnShutdown.openWindows" = true; -# SANITIZE ON SHUTDOWN: RESPECTS "ALLOW" SITE EXCEPTIONS FF103+ + # SANITIZE ON SHUTDOWN: RESPECTS "ALLOW" SITE EXCEPTIONS FF103+ -# Set "Cookies" and "Site Data" to clear on shutdown -"privacy.clearOnShutdown.cookies" = true; # Cookies -"privacy.clearOnShutdown.offlineApps" = true; # Site Data + # Set "Cookies" and "Site Data" to clear on shutdown + "privacy.clearOnShutdown.cookies" = true; # Cookies + "privacy.clearOnShutdown.offlineApps" = true; # Site Data -# SANITIZE MANUAL: IGNORES "ALLOW" SITE EXCEPTIONS + # SANITIZE MANUAL: IGNORES "ALLOW" SITE EXCEPTIONS -# Reset default items to clear with Ctrl-Shift-Del -"privacy.cpd.cache" = true; # [DEFAULT: true] -"privacy.cpd.formdata" = true; # Form & Search History -"privacy.cpd.history" = true; # Browsing & Download History -"privacy.cpd.offlineApps" = true; # Offline Website Data -"privacy.cpd.sessions" = true; # [DEFAULT: true] -# "privacy.cpd.offlineApps" = true; # [DEFAULT: false] -"privacy.cpd.cookies" = true; -#"privacy.cpd.downloads" = true; # not used -#"privacy.cpd.openWindows" = false; # Session Restore -#"privacy.cpd.passwords" = false; -#"privacy.cpd.siteSettings" = false; + # Reset default items to clear with Ctrl-Shift-Del + "privacy.cpd.cache" = true; # [DEFAULT: true] + "privacy.cpd.formdata" = true; # Form & Search History + "privacy.cpd.history" = true; # Browsing & Download History + "privacy.cpd.offlineApps" = true; # Offline Website Data + "privacy.cpd.sessions" = true; # [DEFAULT: true] + # "privacy.cpd.offlineApps" = true; # [DEFAULT: false] + "privacy.cpd.cookies" = true; + #"privacy.cpd.downloads" = true; # not used + #"privacy.cpd.openWindows" = false; # Session Restore + #"privacy.cpd.passwords" = false; + #"privacy.cpd.siteSettings" = false; -# Clear Session Restore data when sanitizing on shutdown or manually [FF34+] -#"privacy.clearOnShutdown.openWindows" = true; -#"privacy.cpd.openWindows" = true; + # Clear Session Restore data when sanitizing on shutdown or manually [FF34+] + #"privacy.clearOnShutdown.openWindows" = true; + #"privacy.cpd.openWindows" = true; -# Reset default "Time range to clear" for "Clear Recent History" -# 0=everything = 1=last hour = 2=last two hours = 3=last four hours = 4=today -"privacy.sanitize.timeSpan" = 0; + # Reset default "Time range to clear" for "Clear Recent History" + # 0=everything = 1=last hour = 2=last two hours = 3=last four hours = 4=today + "privacy.sanitize.timeSpan" = 0; -# FPP (fingerprintingProtection) + # FPP (fingerprintingProtection) -# Enable FPP in PB mode [FF114+] -#"privacy.fingerprintingProtection.pbmode" = true; # [DEFAULT: true FF118+] + # Enable FPP in PB mode [FF114+] + #"privacy.fingerprintingProtection.pbmode" = true; # [DEFAULT: true FF118+] -# Set global FPP overrides [FF114+] -#"privacy.fingerprintingProtection.overrides" = ""; + # Set global FPP overrides [FF114+] + #"privacy.fingerprintingProtection.overrides" = ""; -# RFP (resistFingerprinting) + # RFP (resistFingerprinting) -# Enable RFP -"privacy.resistFingerprinting" = true; # [FF41+] -#"privacy.resistFingerprinting.pbmode" = true; # [FF114+] + # Enable RFP + "privacy.resistFingerprinting" = true; # [FF41+] + #"privacy.resistFingerprinting.pbmode" = true; # [FF114+] -# Set new window size rounding max values [FF55+] -"privacy.window.maxInnerWidth" = 1400; -"privacy.window.maxInnerHeight" = 900; + # Set new window size rounding max values [FF55+] + "privacy.window.maxInnerWidth" = 1400; + "privacy.window.maxInnerHeight" = 900; -# Disable mozAddonManager Web API [FF57+] -"privacy.resistFingerprinting.block_mozAddonManager" = true; + # Disable mozAddonManager Web API [FF57+] + "privacy.resistFingerprinting.block_mozAddonManager" = true; -# Enable RFP letterboxing [FF67+] -#"privacy.resistFingerprinting.letterboxing" = true; # [HIDDEN PREF] -#"privacy.resistFingerprinting.letterboxing.dimensions" = ""; # [HIDDEN PREF] + # Enable RFP letterboxing [FF67+] + #"privacy.resistFingerprinting.letterboxing" = true; # [HIDDEN PREF] + #"privacy.resistFingerprinting.letterboxing.dimensions" = ""; # [HIDDEN PREF] -# Experimental RFP [FF91+] -#"privacy.resistFingerprinting.exemptedDomains" = "*.example.invalid"; + # Experimental RFP [FF91+] + #"privacy.resistFingerprinting.exemptedDomains" = "*.example.invalid"; -# Disable using system colors -"browser.display.use_system_colors" = false; # [DEFAULT: false NON-WINDOWS] + # Disable using system colors + "browser.display.use_system_colors" = false; # [DEFAULT: false NON-WINDOWS] -# Enforce non-native widget theme -"widget.non-native-theme.enabled" = true; # [DEFAULT: true] + # Enforce non-native widget theme + "widget.non-native-theme.enabled" = true; # [DEFAULT: true] -# Enforce links targeting new windows to open in a new tab instead -# 1=most recent window or tab = 2=new window = 3=new tab -"browser.link.open_newwindow" = 3; # [DEFAULT: 3] + # Enforce links targeting new windows to open in a new tab instead + # 1=most recent window or tab = 2=new window = 3=new tab + "browser.link.open_newwindow" = 3; # [DEFAULT: 3] -# Set all open window methods to abide by "browser.link.open_newwindow" -"browser.link.open_newwindow.restriction" = 0; + # Set all open window methods to abide by "browser.link.open_newwindow" + "browser.link.open_newwindow.restriction" = 0; -# Disable WebGL (Web Graphics Library) -"webgl.disabled" = true; + # Disable WebGL (Web Graphics Library) + "webgl.disabled" = true; -# OPTIONAL OPSEC + # OPTIONAL OPSEC -# Start Firefox in PB (Private Browsing) mode -#"browser.privatebrowsing.autostart" = true; + # Start Firefox in PB (Private Browsing) mode + #"browser.privatebrowsing.autostart" = true; -# Disable memory cache -# capacity: -1=determine dynamically (default) = 0=none = n=memory capacity in kibibytes -#"browser.cache.memory.enable" = false; -#"browser.cache.memory.capacity" = 0; + # Disable memory cache + # capacity: -1=determine dynamically (default) = 0=none = n=memory capacity in kibibytes + #"browser.cache.memory.enable" = false; + #"browser.cache.memory.capacity" = 0; -# Disable saving passwords -#"signon.rememberSignons" = false; + # Disable saving passwords + #"signon.rememberSignons" = false; -# Disable permissions manager from writing to disk [FF41+] [RESTART] -#"permissions.memory_only" = true; # [HIDDEN PREF] + # Disable permissions manager from writing to disk [FF41+] [RESTART] + #"permissions.memory_only" = true; # [HIDDEN PREF] -# Disable intermediate certificate caching [FF41+] [RESTART] -#"security.nocertdb" = true; # + # Disable intermediate certificate caching [FF41+] [RESTART] + #"security.nocertdb" = true; # -# Disable favicons in history and bookmarks -"browser.chrome.site_icons" = false; + # Disable favicons in history and bookmarks + "browser.chrome.site_icons" = false; -# Exclude "Undo Closed Tabs" in Session Restore -#"browser.sessionstore.max_tabs_undo" = 0; + # Exclude "Undo Closed Tabs" in Session Restore + #"browser.sessionstore.max_tabs_undo" = 0; -# Disable resuming session from crash -#"browser.sessionstore.resume_from_crash" = false; + # Disable resuming session from crash + #"browser.sessionstore.resume_from_crash" = false; -# Disable "open with" in download dialog [FF50+] -#"browser.download.forbid_open_with" = true; + # Disable "open with" in download dialog [FF50+] + #"browser.download.forbid_open_with" = true; -# Disable location bar suggestion types -"browser.urlbar.suggest.history" = false; -"browser.urlbar.suggest.bookmark" = false; -"browser.urlbar.suggest.openpage" = false; -"browser.urlbar.suggest.topsites" = false; # [FF78+] -"browser.urlbar.suggest.weather" = false; + # Disable location bar suggestion types + "browser.urlbar.suggest.history" = false; + "browser.urlbar.suggest.bookmark" = false; + "browser.urlbar.suggest.openpage" = false; + "browser.urlbar.suggest.topsites" = false; # [FF78+] + "browser.urlbar.suggest.weather" = false; -# Disable location bar dropdown -#"browser.urlbar.maxRichResults" = 0; + # Disable location bar dropdown + #"browser.urlbar.maxRichResults" = 0; -# Disable location bar autofill -"browser.urlbar.autoFill" = false; + # Disable location bar autofill + "browser.urlbar.autoFill" = false; -# Disable browsing and download history -"places.history.enabled" = false; + # Disable browsing and download history + "places.history.enabled" = false; -# Discourage downloading to desktop -# 0=desktop = 1=downloads (default) = 2=custom -#"browser.download.folderList" = 2; + # Discourage downloading to desktop + # 0=desktop = 1=downloads (default) = 2=custom + #"browser.download.folderList" = 2; -# Disable Form Autofill -"extensions.formautofill.addresses.enabled" = false; # [FF55+] -"extensions.formautofill.creditCards.enabled" = false; # [FF56+] + # Disable Form Autofill + "extensions.formautofill.addresses.enabled" = false; # [FF55+] + "extensions.formautofill.creditCards.enabled" = false; # [FF56+] -# Limit events that can cause a pop-up -#"dom.popup_allowed_events" = "click dblclick mousedown pointerdown"; + # Limit events that can cause a pop-up + #"dom.popup_allowed_events" = "click dblclick mousedown pointerdown"; -# Disable page thumbnail collection -#"browser.pagethumbnails.capturing_disabled" = true; # [HIDDEN PREF] + # Disable page thumbnail collection + #"browser.pagethumbnails.capturing_disabled" = true; # [HIDDEN PREF] -# Disable location bar using search -"keyword.enabled" = false; + # Disable location bar using search + "keyword.enabled" = false; -# Force GPU sandboxing (Linux = default on Windows) -"security.sandbox.gpu.level" = 1; + # Force GPU sandboxing (Linux = default on Windows) + "security.sandbox.gpu.level" = 1; -# Enable Site Isolation -"fission.autostart" = true; -"gfx.webrender.all" = true; + # Enable Site Isolation + "fission.autostart" = true; + "gfx.webrender.all" = true; -# OPTIONAL HARDENING + # OPTIONAL HARDENING -# Disable MathML (Mathematical Markup Language) [FF51+] -"mathml.disabled" = true; + # Disable MathML (Mathematical Markup Language) [FF51+] + "mathml.disabled" = true; -# Disable in-content SVG (Scalable Vector Graphics) [FF53+] -#"svg.disabled" = true; + # Disable in-content SVG (Scalable Vector Graphics) [FF53+] + #"svg.disabled" = true; -# Disable graphite -"gfx.font_rendering.graphite.enabled" = false; + # Disable graphite + "gfx.font_rendering.graphite.enabled" = false; -# Disable asm.js [FF22+] -"javascript.options.asmjs" = false; + # Disable asm.js [FF22+] + "javascript.options.asmjs" = false; -# Disable Ion and baseline JIT to harden against JS exploits -"javascript.options.ion" = false; -"javascript.options.baselinejit" = false; -"javascript.options.jit_trustedprincipals" = true; # [FF75+] [HIDDEN PREF] + # Disable Ion and baseline JIT to harden against JS exploits + "javascript.options.ion" = false; + "javascript.options.baselinejit" = false; + "javascript.options.jit_trustedprincipals" = true; # [FF75+] [HIDDEN PREF] -# Disable WebAssembly [FF52+] -"javascript.options.wasm" = false; + # Disable WebAssembly [FF52+] + "javascript.options.wasm" = false; -# Disable rendering of SVG OpenType fonts -"gfx.font_rendering.opentype_svg.enabled" = false; + # Disable rendering of SVG OpenType fonts + "gfx.font_rendering.opentype_svg.enabled" = false; -# Disable widevine CDM (Content Decryption Module) -"media.gmp-widevinecdm.enabled" = false; + # Disable widevine CDM (Content Decryption Module) + "media.gmp-widevinecdm.enabled" = false; -# Disable all DRM content (EME: Encryption Media Extension) -"media.eme.enabled" = false; -"browser.eme.ui.enabled" = false; + # Disable all DRM content (EME: Encryption Media Extension) + "media.eme.enabled" = false; + "browser.eme.ui.enabled" = false; -# Disable IPv6 if using a VPN -#"network.dns.disableIPv6" = true; + # Disable IPv6 if using a VPN + #"network.dns.disableIPv6" = true; -# Control when to send a cross-origin referer -# * 0=always (default) = 1=only if base domains match = 2=only if hosts match -#"network.http.referer.XOriginPolicy" = 2; + # Control when to send a cross-origin referer + # * 0=always (default) = 1=only if base domains match = 2=only if hosts match + #"network.http.referer.XOriginPolicy" = 2; -# Set DoH bootstrap address [FF89+] -#"network.trr.bootstrapAddr" = "10.0.0.1"; # [HIDDEN PREF] + # Set DoH bootstrap address [FF89+] + #"network.trr.bootstrapAddr" = "10.0.0.1"; # [HIDDEN PREF] -# DON'T TOUCH + # DON'T TOUCH -# Disable Firefox blocklist -"extensions.blocklist.enabled" = false; # [DEFAULT: true] -"extensions.blocklist.addonItemURL" = ""; -"extensions.blocklist.detailsURL" = ""; -"extensions.blocklist.itemURL" = ""; -"services.blocklist.addons.collection" = ""; -"services.blocklist.addons.signer" = ""; -"services.blocklist.plugins.collection" = ""; -"services.blocklist.plugins.signer" = ""; -"services.blocklist.gfx.collection" = ""; -"services.blocklist.gfx.signer" = ""; + # Disable Firefox blocklist + "extensions.blocklist.enabled" = false; # [DEFAULT: true] + "extensions.blocklist.addonItemURL" = ""; + "extensions.blocklist.detailsURL" = ""; + "extensions.blocklist.itemURL" = ""; + "services.blocklist.addons.collection" = ""; + "services.blocklist.addons.signer" = ""; + "services.blocklist.plugins.collection" = ""; + "services.blocklist.plugins.signer" = ""; + "services.blocklist.gfx.collection" = ""; + "services.blocklist.gfx.signer" = ""; -# Enforce no referer spoofing -"network.http.referer.spoofSource" = true; # [DEFAULT: false] + # Enforce no referer spoofing + "network.http.referer.spoofSource" = true; # [DEFAULT: false] -# Enforce a security delay on some confirmation dialogs such as install = open/save -"security.dialog_enable_delay" = 1000; # [DEFAULT: 1000] + # Enforce a security delay on some confirmation dialogs such as install = open/save + "security.dialog_enable_delay" = 1000; # [DEFAULT: 1000] -# Enforce no First Party Isolation [FF51+] -"privacy.firstparty.isolate" = false; # [DEFAULT: false] + # Enforce no First Party Isolation [FF51+] + "privacy.firstparty.isolate" = false; # [DEFAULT: false] -# Enforce SmartBlock shims (about:compat) [FF81+] -"extensions.webcompat.enable_shims" = true; # [HIDDEN PREF] [DEFAULT: true] + # Enforce SmartBlock shims (about:compat) [FF81+] + "extensions.webcompat.enable_shims" = true; # [HIDDEN PREF] [DEFAULT: true] -# Enforce no TLS 1.0/1.1 downgrades -"security.tls.version.enable-deprecated" = false; # [DEFAULT: false] + # Enforce no TLS 1.0/1.1 downgrades + "security.tls.version.enable-deprecated" = false; # [DEFAULT: false] -# Enforce disabling of Web Compatibility Reporter [FF56+] -"extensions.webcompat-reporter.enabled" = false; # [DEFAULT: false] + # Enforce disabling of Web Compatibility Reporter [FF56+] + "extensions.webcompat-reporter.enabled" = false; # [DEFAULT: false] -# Disable Quarantined Domains [FF115+] -"extensions.quarantinedDomains.enabled" = false; # [DEFAULT: true] + # Disable Quarantined Domains [FF115+] + "extensions.quarantinedDomains.enabled" = false; # [DEFAULT: true] -# prefsCleaner: previously active items removed from arkenfox 115-117 -#"accessibility.force_disabled" = ""; -#"browser.urlbar.dnsResolveSingleWordsAfterSearch" = ""; -#"network.protocol-handler.external.ms-windows-store" = ""; -#"privacy.partition.always_partition_third_party_non_cookie_storage" = ""; -#"privacy.partition.always_partition_third_party_non_cookie_storage.exempt_sessionstorage" = ""; -#"privacy.partition.serviceWorkers" = ""; + # prefsCleaner: previously active items removed from arkenfox 115-117 + #"accessibility.force_disabled" = ""; + #"browser.urlbar.dnsResolveSingleWordsAfterSearch" = ""; + #"network.protocol-handler.external.ms-windows-store" = ""; + #"privacy.partition.always_partition_third_party_non_cookie_storage" = ""; + #"privacy.partition.always_partition_third_party_non_cookie_storage.exempt_sessionstorage" = ""; + #"privacy.partition.serviceWorkers" = ""; -# DON'T BOTHER + # DON'T BOTHER -# Disable APIs -"geo.enabled" = false; -#"full-screen-api.enabled" = false; + # Disable APIs + "geo.enabled" = false; + #"full-screen-api.enabled" = false; -# Set default permissions -# 0=always ask (default) = 1=allow = 2=block -"permissions.default.geo" = 2; -"permissions.default.camera" = 2; -"permissions.default.microphone" = 2; -"permissions.default.desktop-notification" = 2; -"permissions.default.xr" = 2; # Virtual Reality - -# Disable canvas capture stream -"canvas.capturestream.enabled" = false; - -# Disable offscreen canvas -"gfx.offscreencanvas.enabled" = false; - -# Disable non-modern cipher suites -#"security.ssl3.ecdhe_ecdsa_aes_128_sha" = false; -#"security.ssl3.ecdhe_ecdsa_aes_256_sha" = false; -#"security.ssl3.ecdhe_rsa_aes_128_sha" = false; -#"security.ssl3.ecdhe_rsa_aes_256_sha" = false; -#"security.ssl3.rsa_aes_128_gcm_sha256" = false; # no PFS -#"security.ssl3.rsa_aes_256_gcm_sha384" = false; # no PFS -#"security.ssl3.rsa_aes_128_sha" = false; # no PFS -#"security.ssl3.rsa_aes_256_sha" = false; # no PFS - -# Control TLS versions -#"security.tls.version.min" = 3; # [DEFAULT: 3] -#"security.tls.version.max" = 4; - -# Disable SSL session IDs [FF36+] -#"security.ssl.disable_session_identifiers" = true; - -# Onions -#"dom.securecontext.allowlist_onions" = true; -#"network.http.referer.hideOnionSource" = true; - -# Referers -#"network.http.sendRefererHeader" = 2; -#"network.http.referer.trimmingPolicy" = 0; - -# Set the default Referrer Policy [FF59+] -# 0=no-referer = 1=same-origin = 2=strict-origin-when-cross-origin = 3=no-referrer-when-downgrade -#"network.http.referer.defaultPolicy" = 2; # [DEFAULT: 2] -#"network.http.referer.defaultPolicy.pbmode" = 2; # [DEFAULT: 2] - -# Disable HTTP Alternative Services [FF37+] -#"network.http.altsvc.enabled" = false; - -# Disable website control over browser right-click context menu -#"dom.event.contextmenu.enabled" = false; - -# Disable icon fonts (glyphs) and local fallback rendering -#"gfx.downloadable_fonts.enabled" = false; # [FF41+] -#"gfx.downloadable_fonts.fallback_delay" = -1; - -# Disable Clipboard API -#"dom.event.clipboardevents.enabled" = false; - -# Disable System Add-on updates -"extensions.systemAddon.update.enabled" = false; # [FF62+] -"extensions.systemAddon.update.url" = ""; # [FF44+] - -# Enable the DNT (Do Not Track) HTTP header -"privacy.donottrackheader.enabled" = false; - -# Customize ETP settings -#"network.cookie.cookieBehavior" = 5; # [DEFAULT: 5] -#"privacy.fingerprintingProtection" = true; # [FF114+] [ETP FF119+] -#"privacy.partition.network_state.ocsp_cache" = true; # [DEFAULT: true FF123+] -#"privacy.query_stripping.enabled" = true; # [FF101+] -"privacy.query_stripping.strip_list" = "__hsfp __hssc __hstc __s _hsenc _openstat dclid fbclid gbraid gclid hsCtaTracking igshid mc_eid ml_subscriber ml_subscriber_hash msclkid oft_c oft_ck oft_d oft_id oft_ids oft_k oft_lk oft_sk oly_anon_id oly_enc_id rb_clickid s_cid twclid vero_conv vero_id wbraid wickedid yclid"; -#"network.http.referer.disallowCrossSiteRelaxingDefault" = true; -#"network.http.referer.disallowCrossSiteRelaxingDefault.top_navigation" = true; # [FF100+] -#"privacy.trackingprotection.enabled" = true; -#"privacy.trackingprotection.socialtracking.enabled" = true; -#"privacy.trackingprotection.cryptomining.enabled" = true; # [DEFAULT: true] -#"privacy.trackingprotection.fingerprinting.enabled" = true; # [DEFAULT: true] - -# Allow embedded tweets and Reddit posts. Don't do it! -#"urlclassifier.trackingSkipURLs" = "*.reddit.com = *.twitter.com = *.twimg.com"; # [HIDDEN PREF] -#"urlclassifier.features.socialtracking.skipURLs" = "*.instagram.com = *.twitter.com = *.twimg.com"; # [HIDDEN PREF] - -# Disable service workers -#"dom.serviceWorkers.enabled" = false; - -# Disable Web Notifications [FF22+] -#"dom.webnotifications.enabled" = false; - -# Disable Push Notifications [FF44+] -"dom.push.enabled" = false; -"dom.push.connection.enabled" = false; -"dom.push.serverURL" = ""; -"dom.push.userAgentID" = ""; - -# Disable WebRTC (Web Real-Time Communication) -"media.peerconnection.enabled" = false; - -# DON'T BOTHER: FINGERPRINTING - -# prefsCleaner: reset items useless for anti-fingerprinting -#"browser.zoom.siteSpecific" = false; -#"dom.enable_performance" = false; -#"dom.enable_resource_timing" = false; -#"dom.maxHardwareConcurrency" = 2; -#"font.system.whitelist" = ""; # [HIDDEN PREF] -#"general.appname.override" = ""; # [HIDDEN PREF] -#"general.appversion.override" = ""; # [HIDDEN PREF] -#"general.buildID.override" = "20181001000000"; # [HIDDEN PREF] -#"general.oscpu.override" = ""; # [HIDDEN PREF] -#"general.platform.override" = ""; # [HIDDEN PREF] -#"general.useragent.override" = "Mozilla/5.0 (Windows NT 10.0; rv:102.0) Gecko/20100101 Firefox/102.0"; # [HIDDEN PREF] -#"media.ondevicechange.enabled" = false; -#"media.video_stats.enabled" = false; -#"webgl.enable-debug-renderer-info" = false; -"ui.use_standins_for_native_colors" = true; -"browser.display.use_document_fonts" = 0; -"device.sensors.enabled" = false; -"dom.gamepad.enabled" = false; -"dom.netinfo.enabled" = false; -"dom.vibrator.enabled" = false; -"dom.w3c_touch_events.enabled" = 0; -"dom.webaudio.enabled" = false; -"media.navigator.enabled" = false; -"media.webspeech.synth.enabled" = false; - -# Disable API for measuring text width and height. -"dom.textMetrics.actualBoundingBox.enabled" = false; -"dom.textMetrics.baselines.enabled" = false; -"dom.textMetrics.emHeight.enabled" = false; -"dom.textMetrics.fontBoundingBox.enabled" = false; - -# NON-PROJECT RELATED - -# WELCOME & WHAT'S NEW NOTICES - -"browser.startup.homepage_override.mstone" = "ignore"; # [HIDDEN PREF] -"startup.homepage_welcome_url" = ""; -"startup.homepage_welcome_url.additional" = ""; -"startup.homepage_override_url" = ""; # What's New page after updates - -# WARNINGS - -"browser.tabs.warnOnClose" = false; # [DEFAULT: false FF94+] -"browser.tabs.warnOnCloseOtherTabs" = false; -"browser.tabs.warnOnOpen" = false; -"browser.warnOnQuitShortcut" = false; # [FF94+] -"full-screen-api.warning.delay" = 0; -"full-screen-api.warning.timeout" = 0; -"browser.warnOnQuit" = false; - -# UPDATES - -# Disable auto-INSTALLING Firefox updates [NON-WINDOWS] -"app.update.auto" = false; - -# Disable auto-CHECKING for extension and theme updates -"extensions.update.enabled" = false; - -# Disable auto-INSTALLING extension and theme updates -"extensions.update.autoUpdateDefault" = false; - -# Disable extension metadata -"extensions.getAddons.cache.enabled" = false; - -# Disable search engine updates (e.g. OpenSearch) -"browser.search.update" = false; - -# CONTENT BEHAVIOR - -"accessibility.typeaheadfind" = false; # enable "Find As You Type" -"clipboard.autocopy" = false; # disable autocopy default [LINUX] -"layout.spellcheckDefault" = 0; # 0=none = 1-multi-line = 2=multi-line & single-line - -# FIREFOX HOME CONTENT - -"browser.newtabpage.activity-stream.feeds.section.topstories" = false; # Recommended by Pocket -"browser.newtabpage.activity-stream.section.highlights.includePocket" = false; -"browser.newtabpage.activity-stream.feeds.topsites" = false; -"browser.newtabpage.activity-stream.showSearch" = false; -"browser.newtabpage.activity-stream.section.highlights.includeBookmarks" = false; -"browser.newtabpage.activity-stream.section.highlights.includeDownloads" = false; -"browser.newtabpage.activity-stream.section.highlights.includeVisited" = false; - -# UX FEATURES + # Set default permissions + # 0=always ask (default) = 1=allow = 2=block + "permissions.default.geo" = 2; + "permissions.default.camera" = 2; + "permissions.default.microphone" = 2; + "permissions.default.desktop-notification" = 2; + "permissions.default.xr" = 2; # Virtual Reality + + # Disable canvas capture stream + "canvas.capturestream.enabled" = false; + + # Disable offscreen canvas + "gfx.offscreencanvas.enabled" = false; + + # Disable non-modern cipher suites + #"security.ssl3.ecdhe_ecdsa_aes_128_sha" = false; + #"security.ssl3.ecdhe_ecdsa_aes_256_sha" = false; + #"security.ssl3.ecdhe_rsa_aes_128_sha" = false; + #"security.ssl3.ecdhe_rsa_aes_256_sha" = false; + #"security.ssl3.rsa_aes_128_gcm_sha256" = false; # no PFS + #"security.ssl3.rsa_aes_256_gcm_sha384" = false; # no PFS + #"security.ssl3.rsa_aes_128_sha" = false; # no PFS + #"security.ssl3.rsa_aes_256_sha" = false; # no PFS + + # Control TLS versions + #"security.tls.version.min" = 3; # [DEFAULT: 3] + #"security.tls.version.max" = 4; + + # Disable SSL session IDs [FF36+] + #"security.ssl.disable_session_identifiers" = true; + + # Onions + #"dom.securecontext.allowlist_onions" = true; + #"network.http.referer.hideOnionSource" = true; + + # Referers + #"network.http.sendRefererHeader" = 2; + #"network.http.referer.trimmingPolicy" = 0; + + # Set the default Referrer Policy [FF59+] + # 0=no-referer = 1=same-origin = 2=strict-origin-when-cross-origin = 3=no-referrer-when-downgrade + #"network.http.referer.defaultPolicy" = 2; # [DEFAULT: 2] + #"network.http.referer.defaultPolicy.pbmode" = 2; # [DEFAULT: 2] + + # Disable HTTP Alternative Services [FF37+] + #"network.http.altsvc.enabled" = false; + + # Disable website control over browser right-click context menu + #"dom.event.contextmenu.enabled" = false; + + # Disable icon fonts (glyphs) and local fallback rendering + #"gfx.downloadable_fonts.enabled" = false; # [FF41+] + #"gfx.downloadable_fonts.fallback_delay" = -1; + + # Disable Clipboard API + #"dom.event.clipboardevents.enabled" = false; + + # Disable System Add-on updates + "extensions.systemAddon.update.enabled" = false; # [FF62+] + "extensions.systemAddon.update.url" = ""; # [FF44+] + + # Enable the DNT (Do Not Track) HTTP header + "privacy.donottrackheader.enabled" = false; + + # Customize ETP settings + #"network.cookie.cookieBehavior" = 5; # [DEFAULT: 5] + #"privacy.fingerprintingProtection" = true; # [FF114+] [ETP FF119+] + #"privacy.partition.network_state.ocsp_cache" = true; # [DEFAULT: true FF123+] + #"privacy.query_stripping.enabled" = true; # [FF101+] + "privacy.query_stripping.strip_list" = "__hsfp __hssc __hstc __s _hsenc _openstat dclid fbclid gbraid gclid hsCtaTracking igshid mc_eid ml_subscriber ml_subscriber_hash msclkid oft_c oft_ck oft_d oft_id oft_ids oft_k oft_lk oft_sk oly_anon_id oly_enc_id rb_clickid s_cid twclid vero_conv vero_id wbraid wickedid yclid"; + #"network.http.referer.disallowCrossSiteRelaxingDefault" = true; + #"network.http.referer.disallowCrossSiteRelaxingDefault.top_navigation" = true; # [FF100+] + #"privacy.trackingprotection.enabled" = true; + #"privacy.trackingprotection.socialtracking.enabled" = true; + #"privacy.trackingprotection.cryptomining.enabled" = true; # [DEFAULT: true] + #"privacy.trackingprotection.fingerprinting.enabled" = true; # [DEFAULT: true] + + # Allow embedded tweets and Reddit posts. Don't do it! + #"urlclassifier.trackingSkipURLs" = "*.reddit.com = *.twitter.com = *.twimg.com"; # [HIDDEN PREF] + #"urlclassifier.features.socialtracking.skipURLs" = "*.instagram.com = *.twitter.com = *.twimg.com"; # [HIDDEN PREF] + + # Disable service workers + #"dom.serviceWorkers.enabled" = false; + + # Disable Web Notifications [FF22+] + #"dom.webnotifications.enabled" = false; + + # Disable Push Notifications [FF44+] + "dom.push.enabled" = false; + "dom.push.connection.enabled" = false; + "dom.push.serverURL" = ""; + "dom.push.userAgentID" = ""; + + # Disable WebRTC (Web Real-Time Communication) + "media.peerconnection.enabled" = false; + + # DON'T BOTHER: FINGERPRINTING + + # prefsCleaner: reset items useless for anti-fingerprinting + #"browser.zoom.siteSpecific" = false; + #"dom.enable_performance" = false; + #"dom.enable_resource_timing" = false; + #"dom.maxHardwareConcurrency" = 2; + #"font.system.whitelist" = ""; # [HIDDEN PREF] + #"general.appname.override" = ""; # [HIDDEN PREF] + #"general.appversion.override" = ""; # [HIDDEN PREF] + #"general.buildID.override" = "20181001000000"; # [HIDDEN PREF] + #"general.oscpu.override" = ""; # [HIDDEN PREF] + #"general.platform.override" = ""; # [HIDDEN PREF] + #"general.useragent.override" = "Mozilla/5.0 (Windows NT 10.0; rv:102.0) Gecko/20100101 Firefox/102.0"; # [HIDDEN PREF] + #"media.ondevicechange.enabled" = false; + #"media.video_stats.enabled" = false; + #"webgl.enable-debug-renderer-info" = false; + "ui.use_standins_for_native_colors" = true; + "browser.display.use_document_fonts" = 0; + "device.sensors.enabled" = false; + "dom.gamepad.enabled" = false; + "dom.netinfo.enabled" = false; + "dom.vibrator.enabled" = false; + "dom.w3c_touch_events.enabled" = 0; + "dom.webaudio.enabled" = false; + "media.navigator.enabled" = false; + "media.webspeech.synth.enabled" = false; + + # Disable API for measuring text width and height. + "dom.textMetrics.actualBoundingBox.enabled" = false; + "dom.textMetrics.baselines.enabled" = false; + "dom.textMetrics.emHeight.enabled" = false; + "dom.textMetrics.fontBoundingBox.enabled" = false; + + # NON-PROJECT RELATED + + # WELCOME & WHAT'S NEW NOTICES + + "browser.startup.homepage_override.mstone" = "ignore"; # [HIDDEN PREF] + "startup.homepage_welcome_url" = ""; + "startup.homepage_welcome_url.additional" = ""; + "startup.homepage_override_url" = ""; # What's New page after updates + + # WARNINGS + + "browser.tabs.warnOnClose" = false; # [DEFAULT: false FF94+] + "browser.tabs.warnOnCloseOtherTabs" = false; + "browser.tabs.warnOnOpen" = false; + "browser.warnOnQuitShortcut" = false; # [FF94+] + "full-screen-api.warning.delay" = 0; + "full-screen-api.warning.timeout" = 0; + "browser.warnOnQuit" = false; + + # UPDATES + + # Disable auto-INSTALLING Firefox updates [NON-WINDOWS] + "app.update.auto" = false; + + # Disable auto-CHECKING for extension and theme updates + "extensions.update.enabled" = false; + + # Disable auto-INSTALLING extension and theme updates + "extensions.update.autoUpdateDefault" = false; + + # Disable extension metadata + "extensions.getAddons.cache.enabled" = false; + + # Disable search engine updates (e.g. OpenSearch) + "browser.search.update" = false; + + # CONTENT BEHAVIOR + + "accessibility.typeaheadfind" = false; # enable "Find As You Type" + "clipboard.autocopy" = false; # disable autocopy default [LINUX] + "layout.spellcheckDefault" = 0; # 0=none = 1-multi-line = 2=multi-line & single-line + + # FIREFOX HOME CONTENT + + "browser.newtabpage.activity-stream.feeds.section.topstories" = false; # Recommended by Pocket + "browser.newtabpage.activity-stream.section.highlights.includePocket" = false; + "browser.newtabpage.activity-stream.feeds.topsites" = false; + "browser.newtabpage.activity-stream.showSearch" = false; + "browser.newtabpage.activity-stream.section.highlights.includeBookmarks" = false; + "browser.newtabpage.activity-stream.section.highlights.includeDownloads" = false; + "browser.newtabpage.activity-stream.section.highlights.includeVisited" = false; + + # UX FEATURES + + "extensions.pocket.enabled" = false; # Pocket Account [FF46+] + "extensions.screenshots.disabled" = true; # [FF55+] + "identity.fxaccounts.enabled" = false; # Firefox Accounts & Sync [FF60+] [RESTART] + "reader.parse-on-load.enabled" = false; # Reader View + "browser.tabs.firefox-view" = false; # Firefox-view + + # OTHER + + #"browser.bookmarks.max_backups" = 2; + "browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons" = false; # disable CFR [FF67+] + "browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features" = false; # disable CFR [FF67+] + "browser.messaging-system.whatsNewPanel.enabled" = false; # What's New toolbar icon [FF69+] + "browser.urlbar.showSearchTerms.enabled" = false; + "browser.sessionstore.interval" = 30000; # minimum interval between session save operations + "network.manage-offline-status" = false; + "browser.preferences.moreFromMozilla" = false; + "browser.disableResetPrompt" = true; # [HIDDEN PREF] + #"xpinstall.signatures.required" = false; # enforced extension signing (Nightly/ESR) + + # MORE + + #"security.insecure_connection_icon.enabled" = ""; # [DEFAULT: true FF70+] + #"security.mixed_content.block_active_content" = ""; # [DEFAULT: true since at least FF60] + "security.ssl.enable_ocsp_stapling" = false; # [DEFAULT: true FF26+] + #"webgl.disable-fail-if-major-performance-caveat" = ""; # [DEFAULT: true FF86+] + "webgl.enable-webgl2" = false; + #"webgl.min_capability_mode" = ""; -"extensions.pocket.enabled" = false; # Pocket Account [FF46+] -"extensions.screenshots.disabled" = true; # [FF55+] -"identity.fxaccounts.enabled" = false; # Firefox Accounts & Sync [FF60+] [RESTART] -"reader.parse-on-load.enabled" = false; # Reader View -"browser.tabs.firefox-view" = false; # Firefox-view - -# OTHER + # DEPRECATED / RENAMED -#"browser.bookmarks.max_backups" = 2; -"browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons" = false; # disable CFR [FF67+] -"browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features" = false; # disable CFR [FF67+] -"browser.messaging-system.whatsNewPanel.enabled" = false; # What's New toolbar icon [FF69+] -"browser.urlbar.showSearchTerms.enabled" = false; -"browser.sessionstore.interval" = 30000; # minimum interval between session save operations -"network.manage-offline-status" = false; -"browser.preferences.moreFromMozilla" = false; -"browser.disableResetPrompt" = true; # [HIDDEN PREF] -#"xpinstall.signatures.required" = false; # enforced extension signing (Nightly/ESR) + # ESR115.x still uses all the following prefs -# MORE + # FF116 -#"security.insecure_connection_icon.enabled" = ""; # [DEFAULT: true FF70+] -#"security.mixed_content.block_active_content" = ""; # [DEFAULT: true since at least FF60] -"security.ssl.enable_ocsp_stapling" = false; # [DEFAULT: true FF26+] -#"webgl.disable-fail-if-major-performance-caveat" = ""; # [DEFAULT: true FF86+] -"webgl.enable-webgl2" = false; -#"webgl.min_capability_mode" = ""; + # Set RFP's font visibility level [FF94+] + #"layout.css.font-visibility.resistFingerprinting" = 1; # [DEFAULT: 1] -# DEPRECATED / RENAMED + # FF117 -# ESR115.x still uses all the following prefs + # Disable service worker Web Notifications [FF44+] + #"dom.webnotifications.serviceworker.enabled" = false; -# FF116 + # FF118 -# Set RFP's font visibility level [FF94+] -#"layout.css.font-visibility.resistFingerprinting" = 1; # [DEFAULT: 1] + # Limit font visibility (Windows = Mac = some Linux) [FF94+] + #"layout.css.font-visibility.private" = 1; + #"layout.css.font-visibility.standard" = 1; + #"layout.css.font-visibility.trackingprotection" = 1; -# FF117 + # Disable permissions delegation [FF73+] + #"permissions.delegation.enabled" = false; -# Disable service worker Web Notifications [FF44+] -#"dom.webnotifications.serviceworker.enabled" = false; + # FF119 -# FF118 - -# Limit font visibility (Windows = Mac = some Linux) [FF94+] -#"layout.css.font-visibility.private" = 1; -#"layout.css.font-visibility.standard" = 1; -#"layout.css.font-visibility.trackingprotection" = 1; - -# Disable permissions delegation [FF73+] -#"permissions.delegation.enabled" = false; - -# FF119 - -# Use en-US locale regardless of the system or region locale -#"javascript.use_us_english_locale" = true; # [HIDDEN PREF] - -# Disable skipping DoH when parental controls are enabled [FF70+] -"network.dns.skipTRR-when-parental-control-enabled" = false; -# + # Use en-US locale regardless of the system or region locale + #"javascript.use_us_english_locale" = true; # [HIDDEN PREF] + # Disable skipping DoH when parental controls are enabled [FF70+] + "network.dns.skipTRR-when-parental-control-enabled" = false; + # } diff --git a/home/modules/desktop/browser/firefox/settings/ooksJs.nix b/home/modules/desktop/browser/firefox/settings/ooksJs.nix index afc0e51..3db90d9 100644 --- a/home/modules/desktop/browser/firefox/settings/ooksJs.nix +++ b/home/modules/desktop/browser/firefox/settings/ooksJs.nix @@ -35,7 +35,7 @@ "toolkit.telemetry.updatePing.enabled" = false; "toolkit.telemetry.bhrPing.enabled" = false; "toolkit.telemetry.firstShutdownPing.enabled" = false; - "toolkit.telemetry.coverage.opt-out" = true; + "toolkit.telemetry.coverage.opt-out" = true; "toolkit.coverage.opt-out" = true; "toolkit.coverage.endpoint.base" = ""; "browser.ping-centre.telemetry" = false; @@ -64,5 +64,5 @@ "geo.provider.use_geoclue" = false; #Calculator - "browser.urlbar.suggest.calculator" = true; + "browser.urlbar.suggest.calculator" = true; } diff --git a/home/modules/desktop/browser/firefox/theme/penguinFox.nix b/home/modules/desktop/browser/firefox/theme/penguinFox.nix index ebd3353..3544332 100644 --- a/home/modules/desktop/browser/firefox/theme/penguinFox.nix +++ b/home/modules/desktop/browser/firefox/theme/penguinFox.nix @@ -1,4 +1,6 @@ - /* css */ +/* +css +*/ '' /* config */ @@ -177,4 +179,3 @@ /* Removes the annoying rainbow thing from the hamburger */ #appMenu-fxa-separator{border-image:none !important;} '' - diff --git a/home/modules/desktop/browser/firefox/theme/penguinFoxContent.nix b/home/modules/desktop/browser/firefox/theme/penguinFoxContent.nix index ab6a8c0..896652e 100644 --- a/home/modules/desktop/browser/firefox/theme/penguinFoxContent.nix +++ b/home/modules/desktop/browser/firefox/theme/penguinFoxContent.nix @@ -1,4 +1,7 @@ -/* css */ '' +/* +css +*/ +'' @-moz-document url-prefix(about:){ /* Removes the scrollbar on some places */ diff --git a/home/modules/desktop/browser/firefox/tridactyl.nix b/home/modules/desktop/browser/firefox/tridactyl.nix index c5ae4fc..74adb86 100644 --- a/home/modules/desktop/browser/firefox/tridactyl.nix +++ b/home/modules/desktop/browser/firefox/tridactyl.nix @@ -1,16 +1,15 @@ -{ lib, config, ... }: - -let +{ + lib, + config, + ... +}: let inherit (lib) mkIf; - inherit (config.colorscheme) palette; + inherit (config.colorscheme) palette; cfg = config.ooknet.browser.firefox; browser = config.ooknet.desktop.browser; fonts = config.ooknet.fonts; - -in - -{ +in { config = mkIf (browser == "firefox" || cfg.enable) { xdg.configFile = { "tridactyl/tridactylrc".text = '' @@ -20,14 +19,14 @@ in unbind --mode=normal t unbind --mode=normal gt - + bind / fillcmdline find bind n findnext 1 bind N findnext -1 bind gtr open http://192.168.1.210:9091/transmission/web/ bind ttr tabopen http://192.168.1.210:9091/transmission/web/ - + bind gem open https://gmail.com bind tem tabopen https://gmail.com @@ -37,189 +36,193 @@ in # based off base16 themes # source: - "tridactyl/themes/ooknet.css".text = /* css */ '' - :root { - --font: ${fonts.monospace.family}; - --bg: #${palette.base00}; - --fg: #${palette.base05}; - --red: #${palette.base08}; - --green: #${palette.base0B}; - --blue: #${palette.base0D}; - --yellow: #${palette.base0A}; - --purple: #${palette.base0E}; - --orange: #${palette.base09}; - --cyan: #${palette.base0C}; - --comment: #${palette.base04}; - --selectedline: #${palette.base02}; + "tridactyl/themes/ooknet.css".text = + /* + css + */ + '' + :root { + --font: ${fonts.monospace.family}; + --bg: #${palette.base00}; + --fg: #${palette.base05}; + --red: #${palette.base08}; + --green: #${palette.base0B}; + --blue: #${palette.base0D}; + --yellow: #${palette.base0A}; + --purple: #${palette.base0E}; + --orange: #${palette.base09}; + --cyan: #${palette.base0C}; + --comment: #${palette.base04}; + --selectedline: #${palette.base02}; - --tridactyl-fg: var(--fg); - --tridactyl-bg: var(--bg); + --tridactyl-fg: var(--fg); + --tridactyl-bg: var(--bg); - --tridactyl-url-fg: var(--green); - --tridactyl-url-bg: var(--bg); - - --tridactyl-highlight-box-bg: var(--selectedline); - --tridactyl-highlight-box-fg: var(--fg); + --tridactyl-url-fg: var(--green); + --tridactyl-url-bg: var(--bg); - --tridactyl-of-fg: var(--fg); - --tridactyl-of-bg: var(--selectedline); + --tridactyl-highlight-box-bg: var(--selectedline); + --tridactyl-highlight-box-fg: var(--fg); - --tridactyl-cmdl-fg: var(--bg); - --tridactyl-cmdl-font-family: var(--selectedline); + --tridactyl-of-fg: var(--fg); + --tridactyl-of-bg: var(--selectedline); - --tridactyl-cmplt-font-family: var(--font); - - --tridactyl-hintspan-font-family: var(--font); - --tridactyl-hintspan-fg: var(--bg) !important; - --tridactyl-hintspan-bg: var(--orange) !important; + --tridactyl-cmdl-fg: var(--bg); + --tridactyl-cmdl-font-family: var(--selectedline); - --tridactyl-hint-active-fg: none; - --tridactyl-hint-active-bg: var(--tridactyl-bg); - --tridactyl-hint-active-outline: var(--green); - --tridactyl-hint-bg: none; - --tridactyl-hint-outline: none; - } + --tridactyl-cmplt-font-family: var(--font); - #tridactyl-colon::before { - content: " "; - font-family: var(--font); - font-size: 1.5rem; - color: var(--green); - display: inline; - margin-left: 15px; - } + --tridactyl-hintspan-font-family: var(--font); + --tridactyl-hintspan-fg: var(--bg) !important; + --tridactyl-hintspan-bg: var(--orange) !important; - #command-line-holder { - order: 1; - display: flex; - justify-content: center; - align-items: center; - border: 2px solid var(--tridactyl-fg); - background: var(--tridactyl-bg); - } + --tridactyl-hint-active-fg: none; + --tridactyl-hint-active-bg: var(--tridactyl-bg); + --tridactyl-hint-active-outline: var(--green); + --tridactyl-hint-bg: none; + --tridactyl-hint-outline: none; + } - #tridactyl-input { - padding: 1rem; - color: var(--tridactyl-fg); - width: 90%; - font-family: var(--font); - font-size: 1.5rem; - line-height: 1.5; - background: var(--tridactyl-bg); - padding-left: unset; - padding: 1rem; - } + #tridactyl-colon::before { + content: " "; + font-family: var(--font); + font-size: 1.5rem; + color: var(--green); + display: inline; + margin-left: 15px; + } + + #command-line-holder { + order: 1; + display: flex; + justify-content: center; + align-items: center; + border: 2px solid var(--tridactyl-fg); + background: var(--tridactyl-bg); + } + + #tridactyl-input { + padding: 1rem; + color: var(--tridactyl-fg); + width: 90%; + font-family: var(--font); + font-size: 1.5rem; + line-height: 1.5; + background: var(--tridactyl-bg); + padding-left: unset; + padding: 1rem; + } - #completions table { - font-size: 0.8rem; - font-weight: 200; - border-spacing: 0; - table-layout: fixed; - padding: 1rem; - padding-top: 1rem; - padding-bottom: 1rem; - } + #completions table { + font-size: 0.8rem; + font-weight: 200; + border-spacing: 0; + table-layout: fixed; + padding: 1rem; + padding-top: 1rem; + padding-bottom: 1rem; + } - #completions > div { - max-height: calc(20 * var(--option-height)); - min-height: calc(10 * var(--option-height)); - } + #completions > div { + max-height: calc(20 * var(--option-height)); + min-height: calc(10 * var(--option-height)); + } - #completions { - --option-height: 1.4em; - color: var(--tridactyl-fg); - background: var(--tridactyl-bg); - display: inline-block; - font-size: unset; - font-weight: 200; - overflow: hidden; - width: 100%; - border-top: unset; - order: 2; - } + #completions { + --option-height: 1.4em; + color: var(--tridactyl-fg); + background: var(--tridactyl-bg); + display: inline-block; + font-size: unset; + font-weight: 200; + overflow: hidden; + width: 100%; + border-top: unset; + order: 2; + } - #completions .HistoryCompletionSource { - max-height: unset; - min-height: unset; - } + #completions .HistoryCompletionSource { + max-height: unset; + min-height: unset; + } - #completions .HistoryCompletionSource table { - width: 100%; - font-size: 9pt; - border-spacing: 0; - table-layout: fixed; - } + #completions .HistoryCompletionSource table { + width: 100%; + font-size: 9pt; + border-spacing: 0; + table-layout: fixed; + } - #completions .BmarkCompletionSource { - max-height: unset; - min-height: unset; - } + #completions .BmarkCompletionSource { + max-height: unset; + min-height: unset; + } - #completions table tr td.prefix, - #completions table tr td.privatewindow, - #completions table tr td.container, - #completions table tr td.icon { - display: none; - } + #completions table tr td.prefix, + #completions table tr td.privatewindow, + #completions table tr td.container, + #completions table tr td.icon { + display: none; + } - #completions .BufferCompletionSource table { - width: unset; - font-size: unset; - border-spacing: unset; - table-layout: unset; - } + #completions .BufferCompletionSource table { + width: unset; + font-size: unset; + border-spacing: unset; + table-layout: unset; + } - #completions table tr .title { - width: 50%; - } + #completions table tr .title { + width: 50%; + } - #completions table tr { - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - } + #completions table tr { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + } - #completions .sectionHeader { - background: unset; - font-weight: bold; - border-bottom: unset; - padding: 1rem !important; - padding-left: unset; - padding-bottom: 0.2rem; - } + #completions .sectionHeader { + background: unset; + font-weight: bold; + border-bottom: unset; + padding: 1rem !important; + padding-left: unset; + padding-bottom: 0.2rem; + } - #cmdline_iframe { - position: fixed !important; - bottom: unset; - top: 25% !important; - left: 10% !important; - z-index: 2147483647 !important; - width: 80% !important; - box-shadow: rgba(0, 0, 0, 0.5) 0px 0px 20px !important; - } + #cmdline_iframe { + position: fixed !important; + bottom: unset; + top: 25% !important; + left: 10% !important; + z-index: 2147483647 !important; + width: 80% !important; + box-shadow: rgba(0, 0, 0, 0.5) 0px 0px 20px !important; + } - .TridactylStatusIndicator { - position: fixed !important; - bottom: 0 !important; - background: var(--tridactyl-bg) !important; - border: unset !important; - border: 1px var(--green) solid !important; - font-size: 12pt !important; - padding: 0.8ex !important; - } + .TridactylStatusIndicator { + position: fixed !important; + bottom: 0 !important; + background: var(--tridactyl-bg) !important; + border: unset !important; + border: 1px var(--green) solid !important; + font-size: 12pt !important; + padding: 0.8ex !important; + } - #completions .focused { - background: var(--green); - color: var(--bg); - } + #completions .focused { + background: var(--green); + color: var(--bg); + } - #completions .focused .url { - background: var(--green); - color: var(--bg); - } - ''; + #completions .focused .url { + background: var(--green); + color: var(--bg); + } + ''; }; }; } diff --git a/home/modules/desktop/communication/discord/vesktop.nix b/home/modules/desktop/communication/discord/vesktop.nix index a5f6627..aac48e4 100644 --- a/home/modules/desktop/communication/discord/vesktop.nix +++ b/home/modules/desktop/communication/discord/vesktop.nix @@ -1,6 +1,9 @@ -{ config, lib, pkgs, ... }: - -let +{ + config, + lib, + pkgs, + ... +}: let inherit (config.colorscheme) palette; inherit (lib) mkIf mkMerge; @@ -10,157 +13,159 @@ let vesktopMime = { "x-scheme-handler/discord" = ["vesktop.desktop"]; }; -in - -{ - config = mkMerge [ +in { + config = mkMerge [ (mkIf (cfg.enable || discord == "vesktop") { - # - home.packages = [ + # + home.packages = [ (pkgs.vesktop.overrideAttrs (old: { patches = (old.patches or []) ++ [./vesktop-patch.patch]; })) ]; - xdg.configFile."vesktop/themes/nix.css".text = /* css */ '' - /** - * @name nix-colors-minimal - * @author aoku - * @description minimal theme designed with nix colors + xdg.configFile."vesktop/themes/nix.css".text = + /* + css */ - - :root { - --nix-bg1: #${palette.base00}; - --nix-bg2: #${palette.base01}; - --nix-bg3: #${palette.base02}; - - --nix-fg1: #${palette.base05}; - --nix-fg2: #${palette.base07}; - --nix-fg3: #${palette.base03}; - --nix-link: #${palette.base0D}; + '' + /** + * @name nix-colors-minimal + * @author aoku + * @description minimal theme designed with nix colors + */ - --nix-accent: #${palette.base08}; - --nix-hi: #${palette.base0B}; + :root { + --nix-bg1: #${palette.base00}; + --nix-bg2: #${palette.base01}; + --nix-bg3: #${palette.base02}; + + --nix-fg1: #${palette.base05}; + --nix-fg2: #${palette.base07}; + --nix-fg3: #${palette.base03}; + --nix-link: #${palette.base0D}; + + --nix-accent: #${palette.base08}; + --nix-hi: #${palette.base0B}; + + --font-mono: ${fonts.monospace.family}, monospace; + --font-regular: ${fonts.regular.family}, sans serif; + + /* server collapse */ + --sb-collapsed-width: 12px; + --sb-transition-duration: 0s; + } + + .theme-dark { + --background-primary: var(--nix-bg1); + --background-secondary: var(--nix-bg1); + --background-secondary-alt: var(--nix-bg1); + --background-accent: var(--nix-accent); + --background-tertiary: var(--nix-bg1); + --background-floating: var(--nix-bg1); + --background-mentioned: var(--nix-bg1); + --background-mentioned-hover: var(--nix-bg1); + --background-mobile: var(--nix-bg1); + --background-mobile-secondary: var(--nix-bg2); + --background-modifier-selected: var(--nix-bg1); + --channeltextarea-background:var(--nix-bg1); + --background-modifier-hover:var(--nix-bg1); + --activity-card-background: var(--nix-bg2); + + --header-primary: var(--nix-fg2); + --header-secondary: var(--nix-fg1); + + --text-normal: var(--nix-fg1); + --text-muted: var(--nix-fg1); + --text-link: var(--nix-link); + --text-warning: var(--nix-accent); + --font-primary: var(--font-mono); + --font-headline: var(--font-mono); + --font-display: var(--font-mono); + + --interactive-normal: var(--nix-fg1); /*base05*/ + --interactive-hover: var(--nix-hi); /*base0B*/ + --interactive-active: var(--nix-fg2); + --interactive-muted: var(--nix-fg3); /*base03*/ + --channels-default: var(--nix-fg1); + + --scrollbar-thin-thumb: transparent; + --scrollbar-thin-track: transparent; + --scrollbar-auto-thumb: var(--nix-fg1); + --scrollbar-auto-track:var(--nix-bg1); + --scrollbar-auto-scrollbar-color-thumb: var(--nix-accent); + } + + .messagesWrapper_ea2b0b { + font-family: var(--font-regular); + } + + .titleWrapper__482dc { + font-family: var(--font-mono); + } + + .link__95dc0 /* text channel*/{ + border-radius: 0px; + margin-left: -10px; + font-family: var(--font-mono); + } + + .container_ca50b9 .avatar_f8541f { /*avatar*/ + display: none; + } + + .form__13a2c /* text input box resize */ { + height: 50px; + font-family: var(--font-regular); + } + + .containerDefault__3187b .wrapper__7bcde:before /* text channel */{ + content: ""; + display:inline-block; + background: var(--nix-hi); + height: 100%; + position: absolute; + left: 0; + } - --font-mono: ${fonts.monospace.family}, monospace; - --font-regular: ${fonts.regular.family}, sans serif; /* server collapse */ - --sb-collapsed-width: 12px; - --sb-transition-duration: 0s; - } + .guilds__2b93a /* servers */{ + overflow: hidden !important; + width: var(--sb-collapsed-width, 75px); + transition: width var(--sb-transition-duration); + } + .guilds__2b93a:hover /* expand server bar on hover */{ + width: 70px; + overflow: visible !important; + animation: server-bar-overflow 0s linear 0ms forwards + } + .guilds__2b93a ~ .base__3e6af /* friends list, chat */{ + position: absolute; + left: var(--sb-collapsed-left, var(--sb-collapsed-width)); + top: var(--sb-collapsed-top, 0px); + bottom: var(--sb-collapsed-bottom, 0px); + right: var(--sb-collapsed-right, 0px); + transition-property: var(--sb-transition-property, left); + transition-duration: var(--sb-transition-duration); + } + .guilds__2b93a:hover ~ .base__3e6af /* friends list, chat */{ + position: absolute; + left: var(--sb-left, 70px); + top: var(--sb-top, 0px); + bottom: var(--sb-bottom, 0px); + right: var(--sb-right, 0px); + } + @keyframes server-bar-overflow{ + from{ + overflow: hidden; + } + to{ + overflow: visible; + } + } + ''; + }) - .theme-dark { - --background-primary: var(--nix-bg1); - --background-secondary: var(--nix-bg1); - --background-secondary-alt: var(--nix-bg1); - --background-accent: var(--nix-accent); - --background-tertiary: var(--nix-bg1); - --background-floating: var(--nix-bg1); - --background-mentioned: var(--nix-bg1); - --background-mentioned-hover: var(--nix-bg1); - --background-mobile: var(--nix-bg1); - --background-mobile-secondary: var(--nix-bg2); - --background-modifier-selected: var(--nix-bg1); - --channeltextarea-background:var(--nix-bg1); - --background-modifier-hover:var(--nix-bg1); - --activity-card-background: var(--nix-bg2); - - --header-primary: var(--nix-fg2); - --header-secondary: var(--nix-fg1); - - --text-normal: var(--nix-fg1); - --text-muted: var(--nix-fg1); - --text-link: var(--nix-link); - --text-warning: var(--nix-accent); - --font-primary: var(--font-mono); - --font-headline: var(--font-mono); - --font-display: var(--font-mono); - - --interactive-normal: var(--nix-fg1); /*base05*/ - --interactive-hover: var(--nix-hi); /*base0B*/ - --interactive-active: var(--nix-fg2); - --interactive-muted: var(--nix-fg3); /*base03*/ - --channels-default: var(--nix-fg1); - - --scrollbar-thin-thumb: transparent; - --scrollbar-thin-track: transparent; - --scrollbar-auto-thumb: var(--nix-fg1); - --scrollbar-auto-track:var(--nix-bg1); - --scrollbar-auto-scrollbar-color-thumb: var(--nix-accent); - } - - .messagesWrapper_ea2b0b { - font-family: var(--font-regular); - } - - .titleWrapper__482dc { - font-family: var(--font-mono); - } - - .link__95dc0 /* text channel*/{ - border-radius: 0px; - margin-left: -10px; - font-family: var(--font-mono); - } - - .container_ca50b9 .avatar_f8541f { /*avatar*/ - display: none; - } - - .form__13a2c /* text input box resize */ { - height: 50px; - font-family: var(--font-regular); - } - - .containerDefault__3187b .wrapper__7bcde:before /* text channel */{ - content: ""; - display:inline-block; - background: var(--nix-hi); - height: 100%; - position: absolute; - left: 0; - } - - - /* server collapse */ - .guilds__2b93a /* servers */{ - overflow: hidden !important; - width: var(--sb-collapsed-width, 75px); - transition: width var(--sb-transition-duration); - } - .guilds__2b93a:hover /* expand server bar on hover */{ - width: 70px; - overflow: visible !important; - animation: server-bar-overflow 0s linear 0ms forwards - } - .guilds__2b93a ~ .base__3e6af /* friends list, chat */{ - position: absolute; - left: var(--sb-collapsed-left, var(--sb-collapsed-width)); - top: var(--sb-collapsed-top, 0px); - bottom: var(--sb-collapsed-bottom, 0px); - right: var(--sb-collapsed-right, 0px); - transition-property: var(--sb-transition-property, left); - transition-duration: var(--sb-transition-duration); - } - .guilds__2b93a:hover ~ .base__3e6af /* friends list, chat */{ - position: absolute; - left: var(--sb-left, 70px); - top: var(--sb-top, 0px); - bottom: var(--sb-bottom, 0px); - right: var(--sb-right, 0px); - } - @keyframes server-bar-overflow{ - from{ - overflow: hidden; - } - to{ - overflow: visible; - } - } - ''; - }) - (mkIf (discord == "vesktop") { ooknet.binds.discord = "vesktop"; xdg.mimeApps = { diff --git a/home/modules/desktop/creative/audacity.nix b/home/modules/desktop/creative/audacity.nix index 46a335e..e48a3b2 100644 --- a/home/modules/desktop/creative/audacity.nix +++ b/home/modules/desktop/creative/audacity.nix @@ -1,12 +1,13 @@ -{ lib, config, pkgs, ... }: - -let +{ + lib, + config, + pkgs, + ... +}: let inherit (lib) mkIf; cfg = config.ooknet.creative.audacity; -in - -{ +in { config = mkIf cfg.enable { - home.packages = [ pkgs.audacity ]; + home.packages = [pkgs.audacity]; }; } diff --git a/home/modules/desktop/creative/inkscape.nix b/home/modules/desktop/creative/inkscape.nix index 94fefaf..ba30756 100644 --- a/home/modules/desktop/creative/inkscape.nix +++ b/home/modules/desktop/creative/inkscape.nix @@ -1,13 +1,13 @@ -{ lib, config, pkgs, ... }: - -let +{ + lib, + config, + pkgs, + ... +}: let inherit (lib) mkIf; cfg = config.ooknet.creative.inkscape; -in - -{ +in { config = mkIf cfg.enable { - home.packages = [ pkgs.inkscape-with-extensions ]; + home.packages = [pkgs.inkscape-with-extensions]; }; } - diff --git a/home/modules/desktop/default.nix b/home/modules/desktop/default.nix index 46aba0c..5400c69 100644 --- a/home/modules/desktop/default.nix +++ b/home/modules/desktop/default.nix @@ -7,7 +7,7 @@ ./terminal ./wayland ./productivity - ./gaming + ./gaming ./security ./tools ./file-manager diff --git a/home/modules/desktop/file-manager/nemo.nix b/home/modules/desktop/file-manager/nemo.nix index 6c01505..ffdcdb7 100644 --- a/home/modules/desktop/file-manager/nemo.nix +++ b/home/modules/desktop/file-manager/nemo.nix @@ -1,25 +1,26 @@ -{ lib, config, pkgs, ... }: - -let +{ + lib, + config, + pkgs, + ... +}: let inherit (lib) mkIf mkMerge; cfg = config.ooknet.fileManager.nemo; fileManager = config.ooknet.desktop.fileManager; nemoMime = { "inode/directory" = ["nemo.desktop"]; }; -in - -{ +in { config = mkMerge [ (mkIf (cfg.enable || fileManager == "nemo") { - home.packages = [ pkgs.cinnamon.nemo-with-extensions ]; + home.packages = [pkgs.cinnamon.nemo-with-extensions]; }) (mkIf (fileManager == "nemo") { - ooknet.binds.fileManager = "nemo"; + ooknet.binds.fileManager = "nemo"; xdg.mimeApps = { associations.added = nemoMime; - defaultApplications = nemoMime; + defaultApplications = nemoMime; }; }) ]; diff --git a/home/modules/desktop/gaming/bottles.nix b/home/modules/desktop/gaming/bottles.nix index 575ec5c..03b32ca 100644 --- a/home/modules/desktop/gaming/bottles.nix +++ b/home/modules/desktop/gaming/bottles.nix @@ -1,15 +1,15 @@ -{ lib, config, pkgs, ... }: - -let +{ + lib, + config, + pkgs, + ... +}: let inherit (lib) mkIf; cfg = config.ooknet.gaming.bottles; -in - -{ +in { config = mkIf cfg.enable { home.packages = with pkgs; [ bottles ]; }; - } diff --git a/home/modules/desktop/gaming/factorio.nix b/home/modules/desktop/gaming/factorio.nix index 62aed02..80a8183 100644 --- a/home/modules/desktop/gaming/factorio.nix +++ b/home/modules/desktop/gaming/factorio.nix @@ -1,11 +1,12 @@ -{ lib, config, pkgs, ... }: - -let - cfg = config.ooknet.gaming.factorio; -in - { + lib, + config, + pkgs, + ... +}: let + cfg = config.ooknet.gaming.factorio; +in { config = lib.mkIf cfg.enable { - home.packages = with pkgs; [ factorio ]; + home.packages = with pkgs; [factorio]; }; } diff --git a/home/modules/desktop/gaming/lutris.nix b/home/modules/desktop/gaming/lutris.nix index 9d82938..5b429ed 100644 --- a/home/modules/desktop/gaming/lutris.nix +++ b/home/modules/desktop/gaming/lutris.nix @@ -1,11 +1,12 @@ -{ lib, config, pkgs, ... }: - -let +{ + lib, + config, + pkgs, + ... +}: let inherit (lib) mkIf; cfg = config.ooknet.gaming.lutris; -in - -{ +in { config = mkIf cfg.enable { home.packages = with pkgs; [ (lutris.override { diff --git a/home/modules/desktop/gaming/wine.nix b/home/modules/desktop/gaming/wine.nix index 0464a5b..3a55cd6 100644 --- a/home/modules/desktop/gaming/wine.nix +++ b/home/modules/desktop/gaming/wine.nix @@ -1,11 +1,12 @@ -{ lib, config, pkgs, ... }: - -let +{ + lib, + config, + pkgs, + ... +}: let inherit (lib) mkIf; cfg = config.ooknet.gaming.wine; -in - -{ +in { config = mkIf cfg.enable { home.packages = with pkgs; [ winetricks diff --git a/home/modules/desktop/media/image/imv.nix b/home/modules/desktop/media/image/imv.nix index 7f9bf7d..753f766 100644 --- a/home/modules/desktop/media/image/imv.nix +++ b/home/modules/desktop/media/image/imv.nix @@ -1,14 +1,14 @@ -{ lib, config, ... }: - -let +{ + lib, + config, + ... +}: let inherit (lib) mkIf; cfg = config.ooknet.media.image.imv; imvMime = { "image/*" = ["imv.desktop"]; }; -in - -{ +in { config = mkIf cfg.enable { programs = { imv = { diff --git a/home/modules/desktop/media/music/tui.nix b/home/modules/desktop/media/music/tui.nix index 8a3b858..10c1c7a 100644 --- a/home/modules/desktop/media/music/tui.nix +++ b/home/modules/desktop/media/music/tui.nix @@ -1,17 +1,18 @@ -{ osConfig, pkgs, config, lib, ... }: - -let +{ + osConfig, + pkgs, + config, + lib, + ... +}: let inherit (config.colorscheme) palette; inherit (lib) mkIf getExe; cfg = config.ooknet.media.music.tui; zellij = config.ooknet.multiplexer.zellij; - multiplexer= config.ooknet.console.multiplexer; + multiplexer = config.ooknet.console.multiplexer; hostName = osConfig.networking.hostName; - -in - -{ +in { config = mkIf cfg.enable { home.packages = with pkgs; [ termusic @@ -43,89 +44,97 @@ in }; }; - xdg.configFile."spotify-player/app.toml".text = /* toml */ '' - theme = "default" - client_id = "fc4c3656d7cc4a7ea70c6080965f8b1a" - client_port = 8080 - tracks_playback_limit = 50 - playback_format = "{track} • {artists}\n{album}\n{metadata}" - notify_format = { summary = "{track} • {artists}", body = "{album}" } - app_refresh_duration_in_ms = 32 - playback_refresh_duration_in_ms = 0 - page_size_in_rows = 20 - enable_media_control = false - enable_streaming = "Always" - enable_notify = true - enable_cover_image_cache = false - notify_streaming_only = false - default_device = "${hostName}" - play_icon = "▶" - pause_icon = "▌▌" - liked_icon = "♥" - playback_window_position = "Top" - cover_img_length = 9 - cover_img_width = 5 - playback_window_width = 6 + xdg.configFile."spotify-player/app.toml".text = + /* + toml + */ + '' + theme = "default" + client_id = "fc4c3656d7cc4a7ea70c6080965f8b1a" + client_port = 8080 + tracks_playback_limit = 50 + playback_format = "{track} • {artists}\n{album}\n{metadata}" + notify_format = { summary = "{track} • {artists}", body = "{album}" } + app_refresh_duration_in_ms = 32 + playback_refresh_duration_in_ms = 0 + page_size_in_rows = 20 + enable_media_control = false + enable_streaming = "Always" + enable_notify = true + enable_cover_image_cache = false + notify_streaming_only = false + default_device = "${hostName}" + play_icon = "▶" + pause_icon = "▌▌" + liked_icon = "♥" + playback_window_position = "Top" + cover_img_length = 9 + cover_img_width = 5 + playback_window_width = 6 - [device] - name = "${hostName}" - device_type = "speaker" - volume = 100 - bitrate = 320 - audio_cache = false - normalization = false - ''; - - xdg.configFile."zellij/layouts/music.kdl".text = mkIf (zellij.enable || multiplexer == "zellij") /* kdl */ '' - layout { - default_tab_template { - pane size=2 borderless=true { - plugin location="file:${pkgs.zjstatus}/bin/zjstatus.wasm" { - format_left "{mode}" - format_right "{session} {datetime}" - format_center "#[fg=#89B4FA,bold] {tabs}" - format_space "" + [device] + name = "${hostName}" + device_type = "speaker" + volume = 100 + bitrate = 320 + audio_cache = false + normalization = false + ''; - border_enabled "true" - border_char "─" - border_format "#[fg=#${palette.base0D}]{char}" - border_position "bottom" + xdg.configFile."zellij/layouts/music.kdl".text = + mkIf (zellij.enable || multiplexer == "zellij") + /* + kdl + */ + '' + layout { + default_tab_template { + pane size=2 borderless=true { + plugin location="file:${pkgs.zjstatus}/bin/zjstatus.wasm" { + format_left "{mode}" + format_right "{session} {datetime}" + format_center "#[fg=#89B4FA,bold] {tabs}" + format_space "" - hide_frame_for_single_pane "true" + border_enabled "true" + border_char "─" + border_format "#[fg=#${palette.base0D}]{char}" + border_position "bottom" - mode_normal "#[fg=${palette.base0D}]󰝚" - - tab_normal "#[bg=#${palette.base01}] {name} " - tab_active "#[bg=#${palette.base02}] {name} " - tab_separator " " + hide_frame_for_single_pane "true" - datetime "#[fg=#${palette.base05},bold] {format} " - datetime_format "%I:%M %p" - datetime_timezone "${config.home.sessionVariables.TZ}" - } - } - children - } + mode_normal "#[fg=${palette.base0D}]󰝚" - tab name="spotify" focus=true { - pane name="spotify" { - borderless true - command "${getExe pkgs.spotify-player}" - focus true - } - pane name="Visualizer" { - borderless false - split_direction "horizontal" - size "20%" - command "${getExe pkgs.cava}" - } - } - } - ''; + tab_normal "#[bg=#${palette.base01}] {name} " + tab_active "#[bg=#${palette.base02}] {name} " + tab_separator " " + + datetime "#[fg=#${palette.base05},bold] {format} " + datetime_format "%I:%M %p" + datetime_timezone "${config.home.sessionVariables.TZ}" + } + } + children + } + + tab name="spotify" focus=true { + pane name="spotify" { + borderless true + command "${getExe pkgs.spotify-player}" + focus true + } + pane name="Visualizer" { + borderless false + split_direction "horizontal" + size "20%" + command "${getExe pkgs.cava}" + } + } + } + ''; home.shellAliases = mkIf (zellij.enable || multiplexer == "zellij") { zjm = "zellij --layout music"; }; }; - } diff --git a/home/modules/desktop/media/video/jellyfin-player.nix b/home/modules/desktop/media/video/jellyfin-player.nix index 64cb247..5dc1597 100644 --- a/home/modules/desktop/media/video/jellyfin-player.nix +++ b/home/modules/desktop/media/video/jellyfin-player.nix @@ -1,12 +1,13 @@ -{ pkgs, lib, config, ... }: - -let +{ + pkgs, + lib, + config, + ... +}: let inherit (lib) mkIf; cfg = config.ooknet.media.video.jellyfinPlayer; -in - -{ +in { config = mkIf cfg.enable { - home.packages = [ pkgs.jellyfin-media-player ]; + home.packages = [pkgs.jellyfin-media-player]; }; } diff --git a/home/modules/desktop/media/video/mpv.nix b/home/modules/desktop/media/video/mpv.nix index 49c0809..76afc77 100644 --- a/home/modules/desktop/media/video/mpv.nix +++ b/home/modules/desktop/media/video/mpv.nix @@ -1,22 +1,22 @@ -{ lib, config, ... }: - -let +{ + lib, + config, + ... +}: let inherit (lib) mkIf; cfg = config.ooknet.media.video.mpv; mpvMime = { "audio/*" = ["mpv.desktop"]; "video/*" = ["mpv.desktop"]; }; -in - -{ +in { config = mkIf cfg.enable { programs.mpv = { enable = true; }; xdg.mimeApps = { associations.added = mpvMime; - defaultApplications = mpvMime; + defaultApplications = mpvMime; }; }; } diff --git a/home/modules/desktop/media/video/youtube.nix b/home/modules/desktop/media/video/youtube.nix index 4e7d130..92c40de 100644 --- a/home/modules/desktop/media/video/youtube.nix +++ b/home/modules/desktop/media/video/youtube.nix @@ -1,13 +1,14 @@ -{ lib, config, pkgs, ...}: - -let +{ + lib, + config, + pkgs, + ... +}: let inherit (lib) mkIf; cfg = config.ooknet.media.video.youtube; -in - -{ +in { config = mkIf cfg.enable { - home.packages = [ pkgs.youtube-tui ]; + home.packages = [pkgs.youtube-tui]; programs.yt-dlp = { enable = true; }; diff --git a/home/modules/desktop/productivity/default.nix b/home/modules/desktop/productivity/default.nix index 299f6e9..a8af9b0 100644 --- a/home/modules/desktop/productivity/default.nix +++ b/home/modules/desktop/productivity/default.nix @@ -1,6 +1,4 @@ -{ ... }: - -{ +{...}: { imports = [ ./office ./notes diff --git a/home/modules/desktop/productivity/notes/obsidian.nix b/home/modules/desktop/productivity/notes/obsidian.nix index 8a797ce..f592cc3 100644 --- a/home/modules/desktop/productivity/notes/obsidian.nix +++ b/home/modules/desktop/productivity/notes/obsidian.nix @@ -1,6 +1,9 @@ -{ lib, config, pkgs, ... }: - -let +{ + lib, + config, + pkgs, + ... +}: let inherit (lib) mkIf mkMerge hm; cfg = config.ooknet.productivity.notes.obsidian; notes = config.ooknet.desktop.notes; @@ -8,17 +11,20 @@ let # TODO: use admin.githubUsername notesRepo = "git@github.com:ooks-io/notes.git"; notesPath = "${config.xdg.userDirs.documents}/notes"; -in - -{ - config = mkMerge [ +in { + config = mkMerge [ (mkIf (cfg.enable || notes == "obsidian") { - home.packages = [ pkgs.obsidian ]; - home.activation.cloneObsidianVault = hm.dag.entryAfter ["installPackages"] /* shell */ '' - if ! [ -d "${notesPath}" ]; then - $DRY_RUN_CMD git clone ${notesRepo} ${notesPath} - fi - ''; + home.packages = [pkgs.obsidian]; + home.activation.cloneObsidianVault = + hm.dag.entryAfter ["installPackages"] + /* + shell + */ + '' + if ! [ -d "${notesPath}" ]; then + $DRY_RUN_CMD git clone ${notesRepo} ${notesPath} + fi + ''; }) (mkIf (notes == "obsidian") { diff --git a/home/modules/desktop/productivity/office/libreoffice.nix b/home/modules/desktop/productivity/office/libreoffice.nix index f335511..2342ee7 100644 --- a/home/modules/desktop/productivity/office/libreoffice.nix +++ b/home/modules/desktop/productivity/office/libreoffice.nix @@ -1,13 +1,14 @@ -{ lib, config, pkgs, ... }: - -let +{ + lib, + config, + pkgs, + ... +}: let inherit (lib) mkIf mkEnableOption; cfg = config.ooknet.desktop.productivity.office; -in - -{ +in { options.ooknet.desktop.productivity.office.enable = mkEnableOption "enable office home module"; config = mkIf cfg.enable { - home.packages = [ pkgs.libreoffice ]; + home.packages = [pkgs.libreoffice]; }; } diff --git a/home/modules/desktop/productivity/pdf/zathura.nix b/home/modules/desktop/productivity/pdf/zathura.nix index b96defe..60c8e73 100644 --- a/home/modules/desktop/productivity/pdf/zathura.nix +++ b/home/modules/desktop/productivity/pdf/zathura.nix @@ -1,16 +1,16 @@ -{ lib, config, ... }: - -let +{ + lib, + config, + ... +}: let inherit (config.colorscheme) palette; inherit (lib) mkIf; - - zathura = { "application/pdf" = ["org.pwmt.zathura.desktop"]; }; + + zathura = {"application/pdf" = ["org.pwmt.zathura.desktop"];}; cfg = config.ooknet.productivity.pdf.zathura; pdf = config.ooknet.desktop.pdf; fonts = config.ooknet.fonts; -in - -{ +in { config = mkIf (cfg.enable || pdf == "zathura") { programs.zathura = { enable = true; diff --git a/home/modules/desktop/security/polkit.nix b/home/modules/desktop/security/polkit.nix index 9434f7d..992e676 100644 --- a/home/modules/desktop/security/polkit.nix +++ b/home/modules/desktop/security/polkit.nix @@ -1,20 +1,21 @@ -{ lib, config, pkgs, ... }: - -let - inherit (lib) mkIf; - polkit = config.ooknet.security.polkit; -in - { + lib, + config, + pkgs, + ... +}: let + inherit (lib) mkIf; + polkit = config.ooknet.security.polkit; +in { config = { systemd.user.services = { polkit-pantheon-authentication-agent-1 = mkIf (polkit == "pantheon") { Unit.Description = "polkit-pantheon-authentication-agent-1"; Install = { - WantedBy = [ "graphical-session.target" ]; - Wants = [ "graphical-session.target" ]; - After = [ "graphical-session.target" ]; + WantedBy = ["graphical-session.target"]; + Wants = ["graphical-session.target"]; + After = ["graphical-session.target"]; }; Service = { @@ -29,9 +30,9 @@ in polkit-gnome-authentication-agent-1 = mkIf (polkit == "gnome") { Unit.Description = "polkit-pantheon-authentication-agent-1"; Install = { - WantedBy = [ "graphical-session.target" ]; - Wants = [ "graphical-session.target" ]; - After = [ "graphical-session.target" ]; + WantedBy = ["graphical-session.target"]; + Wants = ["graphical-session.target"]; + After = ["graphical-session.target"]; }; Service = { diff --git a/home/modules/desktop/terminal/foot.nix b/home/modules/desktop/terminal/foot.nix index 6b7eb79..564cef9 100644 --- a/home/modules/desktop/terminal/foot.nix +++ b/home/modules/desktop/terminal/foot.nix @@ -1,82 +1,82 @@ -{ config, lib, ... }: - -let +{ + config, + lib, + ... +}: let inherit (config.colorscheme) palette; inherit (lib) mkMerge mkIf; fonts = config.ooknet.fonts; cfg = config.ooknet.terminal.foot; desktop = config.ooknet.desktop; -in +in { + config = mkMerge [ + (mkIf (cfg.enable || desktop.terminal == "foot") { + programs.foot = { + enable = true; + server.enable = true; + settings = { + main = { + term = "xterm-256color"; + font = "${fonts.monospace.family}:pixelsize=18:antialias=true"; + font-bold = "${fonts.monospace.family}:style=Bold:pixelsize=18:antialias=true"; + font-italic = "${fonts.monospace.family}:style=Italic:pixelsize=18:antialias=true"; + font-bold-italic = "${fonts.monospace.family}:style=Bold Italic:pixelsize=18:antialias=true"; + dpi-aware = "yes"; + letter-spacing = "-1px"; + bold-text-in-bright = "palette-based"; + resize-delay-ms = "80"; + pad = "9x9 center"; + selection-target = "clipboard"; + }; -{ - config = mkMerge [ - (mkIf (cfg.enable || desktop.terminal == "foot") { - programs.foot = { - enable = true; - server.enable = true; - settings = { - main = { - term = "xterm-256color"; - font = "${fonts.monospace.family}:pixelsize=18:antialias=true"; - font-bold = "${fonts.monospace.family}:style=Bold:pixelsize=18:antialias=true"; - font-italic = "${fonts.monospace.family}:style=Italic:pixelsize=18:antialias=true"; - font-bold-italic = "${fonts.monospace.family}:style=Bold Italic:pixelsize=18:antialias=true"; - dpi-aware = "yes"; - letter-spacing = "-1px"; - bold-text-in-bright = "palette-based"; - resize-delay-ms = "80"; - pad = "9x9 center"; - selection-target = "clipboard"; - }; + tweak = { + sixel = "yes"; + font-monospace-warn = "no"; + }; - tweak = { - sixel = "yes"; - font-monospace-warn = "no"; - }; - - cursor = { - style = "beam"; - blink = "yes"; - }; + cursor = { + style = "beam"; + blink = "yes"; + }; - colors = { - alpha = 1.0; - foreground = "${palette.base05}"; - background = "${palette.base00}"; - regular0 = "${palette.base00}"; # black - regular1 = "${palette.base08}"; # red - regular2 = "${palette.base0B}"; # green - regular3 = "${palette.base0A}"; # yellow - regular4 = "${palette.base0D}"; # blue - regular5 = "${palette.base0E}"; # magenta - regular6 = "${palette.base0C}"; # cyan - regular7 = "${palette.base05}"; # white - bright0 = "${palette.base03}"; # bright black - bright1 = "${palette.base08}"; # bright red - bright2 = "${palette.base0B}"; # bright green - bright3 = "${palette.base0A}"; # bright yellow - bright4 = "${palette.base0D}"; # bright blue - bright5 = "${palette.base0E}"; # bright magenta - bright6 = "${palette.base0C}"; # bright cyan - bright7 = "${palette.base07}"; # bright white - "16" = "${palette.base09}"; - "17" = "${palette.base0F}"; - "18" = "${palette.base01}"; - "19" = "${palette.base02}"; - "20" = "${palette.base04}"; - "21" = "${palette.base06}"; + colors = { + alpha = 1.0; + foreground = "${palette.base05}"; + background = "${palette.base00}"; + regular0 = "${palette.base00}"; # black + regular1 = "${palette.base08}"; # red + regular2 = "${palette.base0B}"; # green + regular3 = "${palette.base0A}"; # yellow + regular4 = "${palette.base0D}"; # blue + regular5 = "${palette.base0E}"; # magenta + regular6 = "${palette.base0C}"; # cyan + regular7 = "${palette.base05}"; # white + bright0 = "${palette.base03}"; # bright black + bright1 = "${palette.base08}"; # bright red + bright2 = "${palette.base0B}"; # bright green + bright3 = "${palette.base0A}"; # bright yellow + bright4 = "${palette.base0D}"; # bright blue + bright5 = "${palette.base0E}"; # bright magenta + bright6 = "${palette.base0C}"; # bright cyan + bright7 = "${palette.base07}"; # bright white + "16" = "${palette.base09}"; + "17" = "${palette.base0F}"; + "18" = "${palette.base01}"; + "19" = "${palette.base02}"; + "20" = "${palette.base04}"; + "21" = "${palette.base06}"; + }; }; }; - }; - }) + }) - (mkIf (desktop.terminal == "foot") { - home.sessionVariables = { - TERMINAL = "foot"; - TERM = "foot"; - }; - ooknet.binds.terminal = "foot"; - ooknet.binds.terminalLaunch = "foot"; + (mkIf (desktop.terminal == "foot") { + home.sessionVariables = { + TERMINAL = "foot"; + TERM = "foot"; + }; + ooknet.binds.terminal = "foot"; + ooknet.binds.terminalLaunch = "foot"; }) ]; } diff --git a/home/modules/desktop/terminal/kitty.nix b/home/modules/desktop/terminal/kitty.nix index 5c649fe..b160cc4 100644 --- a/home/modules/desktop/terminal/kitty.nix +++ b/home/modules/desktop/terminal/kitty.nix @@ -1,17 +1,17 @@ -{ config, lib, osConfig, ... }: - -let +{ + config, + lib, + osConfig, + ... +}: let inherit (lib) mkIf; inherit (config.colorscheme) palette; fonts = config.ooknet.fonts; cfg = config.ooknet.terminal.kitty; terminal = config.ooknet.desktop.terminal; shell = osConfig.ooknet.host.admin.shell; -in - -{ +in { config = mkIf (cfg.enable || terminal == "kitty") { - home.sessionVariables = mkIf (terminal == "kitty") { TERMINAL = "kitty -1"; TERM = "kitty -1"; diff --git a/home/modules/desktop/tools/1password.nix b/home/modules/desktop/tools/1password.nix index 6981688..b6f34c8 100644 --- a/home/modules/desktop/tools/1password.nix +++ b/home/modules/desktop/tools/1password.nix @@ -1,11 +1,11 @@ -{ osConfig, lib, ... }: - -let +{ + osConfig, + lib, + ... +}: let inherit (lib) mkIf; cfg = osConfig.ooknet.programs._1password; -in - -{ +in { config = mkIf cfg.enable { ooknet.binds.password = "1password"; }; diff --git a/home/modules/desktop/tools/kdeconnect.nix b/home/modules/desktop/tools/kdeconnect.nix index 0968668..013d115 100644 --- a/home/modules/desktop/tools/kdeconnect.nix +++ b/home/modules/desktop/tools/kdeconnect.nix @@ -1,11 +1,11 @@ -{ lib, osConfig, ... }: - -let +{ + lib, + osConfig, + ... +}: let inherit (lib) mkIf; cfg = osConfig.ooknet.programs.kdeconnect; -in - -{ +in { config = mkIf cfg.enable { services.kdeconnect = { enable = true; diff --git a/home/modules/desktop/tools/ookbrightness.nix b/home/modules/desktop/tools/ookbrightness.nix index fcc0551..da8ce20 100644 --- a/home/modules/desktop/tools/ookbrightness.nix +++ b/home/modules/desktop/tools/ookbrightness.nix @@ -1,42 +1,47 @@ -{ lib, osConfig, pkgs, ... }: - -let +{ + lib, + osConfig, + pkgs, + ... +}: let inherit (lib) mkIf; inherit (builtins) elem; features = osConfig.ooknet.host.hardware.features; ookbrightness = pkgs.writeShellApplication { name = "ookbrightness"; runtimeInputs = with pkgs; [brillo libnotify]; - text = /* bash */ '' - BRIGHTNESS=$(brillo -G | awk -F'.' '{print$1}') - notify() { - notify-send --app-name="system-notify" -h string:x-canonical-private-synchronous:sys-notify "󰃠 $BRIGHTNESS%" - } - option() { - case "$1" in - up) - brillo -q -u 30000 -A 5 - ;; - down) - brillo -q -u 30000 -U 5 - ;; - *) - echo "Invalid argument" - ;; - esac - } - main() { - option "$@" - notify - } - main "$@" - ''; + text = + /* + bash + */ + '' + BRIGHTNESS=$(brillo -G | awk -F'.' '{print$1}') + notify() { + notify-send --app-name="system-notify" -h string:x-canonical-private-synchronous:sys-notify "󰃠 $BRIGHTNESS%" + } + option() { + case "$1" in + up) + brillo -q -u 30000 -A 5 + ;; + down) + brillo -q -u 30000 -U 5 + ;; + *) + echo "Invalid argument" + ;; + esac + } + main() { + option "$@" + notify + } + main "$@" + ''; }; -in - -{ +in { config = mkIf (elem "backlight" features) { - home.packages = [ ookbrightness ]; + home.packages = [ookbrightness]; ooknet.binds.brightness = { up = "ookbrightness up"; down = "ookbrightness down"; diff --git a/home/modules/desktop/tools/ookpower.nix b/home/modules/desktop/tools/ookpower.nix index 2133665..7ec412e 100644 --- a/home/modules/desktop/tools/ookpower.nix +++ b/home/modules/desktop/tools/ookpower.nix @@ -1,14 +1,15 @@ -{ lib, config, inputs, pkgs, ... }: - -let +{ + lib, + config, + inputs, + pkgs, + ... +}: let inherit (lib) mkIf; launcher = config.ooknet.wayland.launcher; -in - - -{ +in { config = mkIf (launcher == "rofi") { - home.packages = [ inputs.ooks-scripts.packages.${pkgs.system}.powermenu ]; + home.packages = [inputs.ooks-scripts.packages.${pkgs.system}.powermenu]; ooknet.binds.powerMenu = "powermenu -c dmenu"; }; } diff --git a/home/modules/desktop/tools/ookvolume.nix b/home/modules/desktop/tools/ookvolume.nix index 5cb1460..51b17bf 100644 --- a/home/modules/desktop/tools/ookvolume.nix +++ b/home/modules/desktop/tools/ookvolume.nix @@ -1,6 +1,9 @@ -{ lib, pkgs, osConfig, ... }: - -let +{ + lib, + pkgs, + osConfig, + ... +}: let inherit (lib) mkIf; inherit (builtins) elem; features = osConfig.ooknet.host.hardware.features; @@ -33,11 +36,9 @@ let main "$@" ''; }; -in - -{ +in { config = mkIf (elem "audio" features) { - home.packages = [ ookvolume ]; + home.packages = [ookvolume]; ooknet.binds.volume = { up = "ookvolume up"; down = "ookvolume down"; diff --git a/home/modules/desktop/tools/zellijMenu.nix b/home/modules/desktop/tools/zellijMenu.nix index 8db4157..2dd5e5d 100644 --- a/home/modules/desktop/tools/zellijMenu.nix +++ b/home/modules/desktop/tools/zellijMenu.nix @@ -1,234 +1,239 @@ -{ lib, config, pkgs, ... }: - -let +{ + lib, + config, + pkgs, + ... +}: let inherit (lib) mkIf; multiplexer = config.ooknet.console.multiplexer; launcher = config.ooknet.wayland.launcher; binds = config.ooknet.binds; zellijmenu = pkgs.writeShellApplication { name = "zellijmenu"; - runtimeInputs = with pkgs; [ coreutils rofi-wayland ]; - text = /* bash */ '' - set -e + runtimeInputs = with pkgs; [coreutils rofi-wayland]; + text = + /* + bash + */ + '' + set -e - type="" - type_dir="" - project_name="" - project_dir="" - session_name="" - layout="" - spawn_terminal=0 + type="" + type_dir="" + project_name="" + project_dir="" + session_name="" + layout="" + spawn_terminal=0 - while [[ "$#" -gt 0 ]]; do - case $1 in - -n) spawn_terminal=1 ;; - *) - echo "Unknown parameter: $1" >&2 - exit 1 - ;; - esac - shift - done - - rofi_cmd() { - MSG=$1 - rofi -dmenu -i -mesg "$MSG" - } - - zellij_cmd() { - if [[ "$spawn_terminal" -eq 1 ]]; then - ${binds.terminalLaunch} zellij "$@" - else - zellij "$@" - fi - } - - session_manager() { - session_list() { - zellij ls -s | tr ' ' '\n' - } - - layout_menu() { - layout_list=$(find ~/.config/zellij/layouts -name "*.kdl" | sed 's|.*/||; s/\.kdl$//' | tr ' ' '\n') - echo -e "$layout_list" | rofi_cmd "Select layout for $session_name:" - } - - session_menu() { - echo -e "$(session_list)" | rofi_cmd "Session:" - } - - session_select() { - session_name=$(session_menu) - if [[ -z "$session_name" ]]; then - echo "Nothing selected." - exit 0 - fi - - if session_list | grep -qx "$session_name"; then - session_action="select" - else - session_action="create" - fi - } - - selection_menu() { - echo -e "Attach\nDelete\nBack" | rofi_cmd "$session_name action:" - } - - while true; do - session_select - case $session_action in - "create") - layout="$(layout_menu)" - if [ -z "$layout" ]; then - echo "No layout given" - continue - fi - zellij_cmd -s "$session_name" --layout "$layout" - break + while [[ "$#" -gt 0 ]]; do + case $1 in + -n) spawn_terminal=1 ;; + *) + echo "Unknown parameter: $1" >&2 + exit 1 ;; - "select") - selection=$(selection_menu) - case $selection in - "Attach") - zellij_cmd attach "$session_name" + esac + shift + done + + rofi_cmd() { + MSG=$1 + rofi -dmenu -i -mesg "$MSG" + } + + zellij_cmd() { + if [[ "$spawn_terminal" -eq 1 ]]; then + ${binds.terminalLaunch} zellij "$@" + else + zellij "$@" + fi + } + + session_manager() { + session_list() { + zellij ls -s | tr ' ' '\n' + } + + layout_menu() { + layout_list=$(find ~/.config/zellij/layouts -name "*.kdl" | sed 's|.*/||; s/\.kdl$//' | tr ' ' '\n') + echo -e "$layout_list" | rofi_cmd "Select layout for $session_name:" + } + + session_menu() { + echo -e "$(session_list)" | rofi_cmd "Session:" + } + + session_select() { + session_name=$(session_menu) + if [[ -z "$session_name" ]]; then + echo "Nothing selected." + exit 0 + fi + + if session_list | grep -qx "$session_name"; then + session_action="select" + else + session_action="create" + fi + } + + selection_menu() { + echo -e "Attach\nDelete\nBack" | rofi_cmd "$session_name action:" + } + + while true; do + session_select + case $session_action in + "create") + layout="$(layout_menu)" + if [ -z "$layout" ]; then + echo "No layout given" + continue + fi + zellij_cmd -s "$session_name" --layout "$layout" break ;; - "Delete") zellij delete-session --force "$session_name" ;; - "Back") echo "Going back." ;; - *) echo "Going Back." ;; + "select") + selection=$(selection_menu) + case $selection in + "Attach") + zellij_cmd attach "$session_name" + break + ;; + "Delete") zellij delete-session --force "$session_name" ;; + "Back") echo "Going back." ;; + *) echo "Going Back." ;; + esac + ;; + *) echo "Going Back" ;; esac - ;; - *) echo "Going Back" ;; - esac - done - } + done + } - project_manager() { - get_project_type() { - while true; do - type=$(echo -e "script\nnix" | rofi_cmd "Select project type:") + project_manager() { + get_project_type() { + while true; do + type=$(echo -e "script\nnix" | rofi_cmd "Select project type:") + case "$type" in + script) + type_dir="$SCRIPTS" + break + ;; + nix) + type_dir="$NIX_DIR" + break + ;; + *) + echo "Invalid selection, try again." + ;; + esac + done + } + + get_project_name() { + while true; do + project_name=$(rofi_cmd "Enter project name:") + if [ -z "$project_name" ]; then + echo "No name provided, try again." + elif [ -d "$type_dir/$project_name" ]; then + echo "Project already exists, try again." + else + project_dir="$type_dir/$project_name" + break + fi + done + } + + get_session_name() { + session_name="$project_name" + if zellij ls | grep -q "^$session_name$"; then + session_name=$(rofi_cmd "Session name '$project_name' in use, enter a new session name:") + if [ -z "$session_name" ]; then + echo "No session name entered, exiting." + exit 1 + fi + fi + } + + get_layout() { case "$type" in script) - type_dir="$SCRIPTS" - break + layout="script" ;; nix) - type_dir="$NIX_DIR" - break + layout="nix" ;; *) - echo "Invalid selection, try again." + echo "Unknown project type, using default layout." + layout="base" ;; esac - done - } + } - get_project_name() { - while true; do - project_name=$(rofi_cmd "Enter project name:") - if [ -z "$project_name" ]; then - echo "No name provided, try again." - elif [ -d "$type_dir/$project_name" ]; then - echo "Project already exists, try again." - else - project_dir="$type_dir/$project_name" - break - fi - done - } + select_project() { + project_name=$(find "$type_dir" -maxdepth 1 -mindepth 1 -type d ! -name .git -exec basename {} \; | rofi_cmd "Select project:") + project_dir="$type_dir/$project_name" - get_session_name() { - session_name="$project_name" - if zellij ls | grep -q "^$session_name$"; then - session_name=$(rofi_cmd "Session name '$project_name' in use, enter a new session name:") - if [ -z "$session_name" ]; then - echo "No session name entered, exiting." - exit 1 - fi - fi - } + cd "$project_dir" || return 1 + get_session_name + get_layout + zellij_cmd -s "$session_name" --layout "$layout" + } - get_layout() { - case "$type" in - script) - layout="script" + create_and_start_project() { + mkdir -p "$project_dir" + cd "$project_dir" || return 1 + + case "$type" in + script) + echo -e "#!/usr/bin/env bash\necho 'hello world'" >"$project_name.sh" + chmod +x "$project_name.sh" + ;; + nix) + echo "Creating Nix project..." + # still need to implement + ;; + *) + echo "Unknown project type." + return 1 + ;; + esac + + get_session_name + get_layout + zellij_cmd -s "$session_name" --layout "$layout" + } + project_action=$(echo -e "Create Project\nSelect Project" | rofi_cmd "Project action:") + case "$project_action" in + "Create Project") + get_project_type + get_project_name + create_and_start_project ;; - nix) - layout="nix" - ;; - *) - echo "Unknown project type, using default layout." - layout="base" - ;; - esac - } - - select_project() { - project_name=$(find "$type_dir" -maxdepth 1 -mindepth 1 -type d ! -name .git -exec basename {} \; | rofi_cmd "Select project:") - project_dir="$type_dir/$project_name" - - cd "$project_dir" || return 1 - get_session_name - get_layout - zellij_cmd -s "$session_name" --layout "$layout" - } - - create_and_start_project() { - mkdir -p "$project_dir" - cd "$project_dir" || return 1 - - case "$type" in - script) - echo -e "#!/usr/bin/env bash\necho 'hello world'" >"$project_name.sh" - chmod +x "$project_name.sh" - ;; - nix) - echo "Creating Nix project..." - # still need to implement - ;; - *) - echo "Unknown project type." - return 1 + "Select Project") + get_project_type + select_project ;; esac - get_session_name - get_layout - zellij_cmd -s "$session_name" --layout "$layout" } - project_action=$(echo -e "Create Project\nSelect Project" | rofi_cmd "Project action:") - case "$project_action" in - "Create Project") - get_project_type - get_project_name - create_and_start_project - ;; - "Select Project") - get_project_type - select_project - ;; - esac - } + main() { + main_action=$(echo -e "Projects\nSessions" | rofi_cmd "Choose action:") + case "$main_action" in + "Projects") project_manager ;; + "Sessions") session_manager ;; + *) echo "Invalid option, exiting." ;; + esac + } - main() { - main_action=$(echo -e "Projects\nSessions" | rofi_cmd "Choose action:") - case "$main_action" in - "Projects") project_manager ;; - "Sessions") session_manager ;; - *) echo "Invalid option, exiting." ;; - esac - } - - main - ''; + main + ''; }; -in - -{ +in { config = mkIf (multiplexer == "zellij" && launcher == "rofi") { - home.packages = [ zellijmenu ]; + home.packages = [zellijmenu]; ooknet.binds.zellijMenu = "zellijmenu -n"; }; } diff --git a/home/modules/desktop/wayland/bar/default.nix b/home/modules/desktop/wayland/bar/default.nix index 49af6a7..94829c7 100644 --- a/home/modules/desktop/wayland/bar/default.nix +++ b/home/modules/desktop/wayland/bar/default.nix @@ -1,5 +1,4 @@ -{ lib, ... }: -{ +{lib, ...}: { imports = [ #./eww # ./ags @@ -17,5 +16,4 @@ enable = lib.mkEnableOption "Enable waybar bar"; }; }; - } diff --git a/home/modules/desktop/wayland/bar/waybar/default.nix b/home/modules/desktop/wayland/bar/waybar/default.nix index 06d2b04..db4fd0e 100644 --- a/home/modules/desktop/wayland/bar/waybar/default.nix +++ b/home/modules/desktop/wayland/bar/waybar/default.nix @@ -1,15 +1,17 @@ -{ config, lib, pkgs, osConfig, ... }: - -let +{ + config, + lib, + pkgs, + osConfig, + ... +}: let inherit (config.colorscheme) palette; inherit (lib) mkIf head; fonts = config.ooknet.fonts; wayland = config.ooknet.wayland; monitors = osConfig.ooknet.host.hardware.monitors; - monitorWidth = (head monitors).width - 20; -in - -{ + monitorWidth = (head monitors).width - 20; +in { config = mkIf (wayland.bar == "waybar") { programs.waybar = { enable = true; @@ -25,9 +27,9 @@ in margin-top = 10; margin-bottom = -12; - modules-left = [ "clock" "battery" "hyprland/workspaces" ]; + modules-left = ["clock" "battery" "hyprland/workspaces"]; modules-center = []; - modules-right = [ "custom/hyprrecord" "tray" ]; + modules-right = ["custom/hyprrecord" "tray"]; "hyprland/workspaces" = let hyprctl = config.wayland.windowManager.hyprland.package + "/bin/hyprctl"; @@ -60,7 +62,7 @@ in }; bat = "BAT0"; interval = 10; - format-icons = [ "󰁺" "󰁻" "󰁼" "󰁽" "󰁾" "󰁿" "󰂀" "󰂁" "󰂂" "󰁹" ]; + format-icons = ["󰁺" "󰁻" "󰁼" "󰁽" "󰁾" "󰁿" "󰂀" "󰂁" "󰂂" "󰁹"]; format = "{icon} {capacity}%"; format-charging = "󱐋{icon} {capacity}%"; tooltip-format = "{timeTo} {power}W"; @@ -79,77 +81,81 @@ in signal = 12; }; }; - style = /* css */ '' - * { - font-family: "${fonts.monospace.family}"; - font-size: 19px; - border: solid #${palette.base05}; - } + style = + /* + css + */ + '' + * { + font-family: "${fonts.monospace.family}"; + font-size: 19px; + border: solid #${palette.base05}; + } - window#waybar { - background-color: transparent; - margin: 10px; - } + window#waybar { + background-color: transparent; + margin: 10px; + } - #clock, - #battery, - #workspaces { - background-color: #${palette.base00}; - padding-right: 10px; - } + #clock, + #battery, + #workspaces { + background-color: #${palette.base00}; + padding-right: 10px; + } - #clock { - padding-left: 10px; - border: 2px solid #${palette.base05}; - border-right: 0px; - border-top-left-radius: 10px; - } + #clock { + padding-left: 10px; + border: 2px solid #${palette.base05}; + border-right: 0px; + border-top-left-radius: 10px; + } - #battery { - padding-left: 10px; - border-top: 2px solid #${palette.base05}; - border-bottom: 2px solid #${palette.base05}; - border-left: 0px; - } + #battery { + padding-left: 10px; + border-top: 2px solid #${palette.base05}; + border-bottom: 2px solid #${palette.base05}; + border-left: 0px; + } - #battery.good { - color: #${palette.base0B}; - } - #battery.warning { - color: #${palette.base0A}; - } - #battery.critical { - color: #${palette.base08}; - } + #battery.good { + color: #${palette.base0B}; + } + #battery.warning { + color: #${palette.base0A}; + } + #battery.critical { + color: #${palette.base08}; + } - #tray { - padding-right: 10px; - padding-left: 10px; - background-color: transparent; - border: 0; - } + #tray { + padding-right: 10px; + padding-left: 10px; + background-color: transparent; + border: 0; + } - #workspaces { - border: 2px solid #${palette.base05}; - border-left: 0; - border-top-right-radius: 10px; - } + #workspaces { + border: 2px solid #${palette.base05}; + border-left: 0; + border-top-right-radius: 10px; + } - #workspace button, - #workspaces button.active, - #workspaces button.visible { - color: #${palette.base0B}; - } + #workspace button, + #workspaces button.active, + #workspaces button.visible { + color: #${palette.base0B}; + } - #workspaces button.urgent { - color: #${palette.base08}; - } + #workspaces button.urgent { + color: #${palette.base08}; + } - #custom-hyprrecord { - color: #${palette.base08}; - padding-right: 20px; - } - ''; + #custom-hyprrecord { + color: #${palette.base08}; + padding-right: 20px; + } + ''; }; }; } diff --git a/home/modules/desktop/wayland/compositor/hyprland/default.nix b/home/modules/desktop/wayland/compositor/hyprland/default.nix index 924232a..3b221dd 100644 --- a/home/modules/desktop/wayland/compositor/hyprland/default.nix +++ b/home/modules/desktop/wayland/compositor/hyprland/default.nix @@ -1,9 +1,13 @@ -{ inputs, lib, config, pkgs, ... }: -let +{ + inputs, + lib, + config, + pkgs, + ... +}: let wayland = config.ooknet.wayland; inherit (lib) mkIf; -in -{ +in { imports = [ inputs.hyprland.homeManagerModules.default ./settings @@ -13,8 +17,8 @@ in config = mkIf (wayland.compositor == "hyprland") { home.packages = [ pkgs.hyprpicker - ]; - + ]; + wayland.windowManager.hyprland = { enable = true; package = inputs.hyprland.packages.${pkgs.system}.hyprland; diff --git a/home/modules/desktop/wayland/compositor/hyprland/extras/hyprcapture.nix b/home/modules/desktop/wayland/compositor/hyprland/extras/hyprcapture.nix index 21ebd0f..2d9c851 100644 --- a/home/modules/desktop/wayland/compositor/hyprland/extras/hyprcapture.nix +++ b/home/modules/desktop/wayland/compositor/hyprland/extras/hyprcapture.nix @@ -1,17 +1,18 @@ -{ lib, config, pkgs, inputs, ... }: - -let +{ + lib, + config, + pkgs, + inputs, + ... +}: let inherit (lib) mkIf; wayland = config.ooknet.wayland; -in - -{ +in { config = mkIf (wayland.compositor == "hyprland") { - home.packages = with inputs; [ - # Screenshot tool + # Screenshot tool hyprland-contrib.packages.${pkgs.system}.grimblast - # Screen recording tool + # Screen recording tool ooks-scripts.packages.${pkgs.system}.hyprrecord ]; diff --git a/home/modules/desktop/wayland/compositor/hyprland/extras/hyprshade.nix b/home/modules/desktop/wayland/compositor/hyprland/extras/hyprshade.nix index 4be31c2..d3448dd 100644 --- a/home/modules/desktop/wayland/compositor/hyprland/extras/hyprshade.nix +++ b/home/modules/desktop/wayland/compositor/hyprland/extras/hyprshade.nix @@ -1,13 +1,14 @@ -{ lib, config, pkgs, ... }: - -let +{ + lib, + config, + pkgs, + ... +}: let inherit (lib) mkIf; wayland = config.ooknet.wayland; -in - -{ +in { config = mkIf (wayland.compositor == "hyprland") { - home.packages = [ pkgs.hyprshade ]; + home.packages = [pkgs.hyprshade]; # TODO: implement hyprshade configuration }; } diff --git a/home/modules/desktop/wayland/compositor/hyprland/settings/appearance.nix b/home/modules/desktop/wayland/compositor/hyprland/settings/appearance.nix index 0fd6b00..8073ed5 100644 --- a/home/modules/desktop/wayland/compositor/hyprland/settings/appearance.nix +++ b/home/modules/desktop/wayland/compositor/hyprland/settings/appearance.nix @@ -1,13 +1,13 @@ -{ config, lib, ... }: - -let +{ + config, + lib, + ... +}: let wayland = config.ooknet.wayland; pointer = config.home.pointerCursor; inherit (config.colorscheme) palette; inherit (lib) mkIf; -in - -{ +in { config = mkIf (wayland.compositor == "hyprland") { wayland.windowManager.hyprland = { settings = { @@ -20,14 +20,13 @@ in border_size = 2; "col.active_border" = "0xff${palette.base05}"; "col.inactive_border" = "0xff${palette.base02}"; - }; + }; exec-once = [ "hyprctl setcursor ${pointer.name} ${toString pointer.size}" ]; decoration = { - active_opacity = 1.0; inactive_opacity = 1.0; fullscreen_opacity = 1.0; @@ -45,7 +44,7 @@ in "col.shadow" = "0x44000000"; "col.shadow_inactive" = "0x66000000"; }; - + animations = { enabled = false; }; diff --git a/home/modules/desktop/wayland/compositor/hyprland/settings/binds.nix b/home/modules/desktop/wayland/compositor/hyprland/settings/binds.nix index b899fb3..8a368d3 100644 --- a/home/modules/desktop/wayland/compositor/hyprland/settings/binds.nix +++ b/home/modules/desktop/wayland/compositor/hyprland/settings/binds.nix @@ -1,12 +1,12 @@ -{ lib, config, ... }: - -let +{ + lib, + config, + ... +}: let inherit (lib) mkIf; wayland = config.ooknet.wayland; binds = config.ooknet.binds; -in - -{ +in { config = mkIf (wayland.compositor == "hyprland") { wayland.windowManager.hyprland.settings = { bind = [ @@ -38,7 +38,7 @@ in ",XF86AudioRaiseVolume, exec, ${binds.volume.up}" ",XF86AudioLowerVolume, exec, ${binds.volume.down}" ",XF86AudioMute, exec, ${binds.volume.mute}" - + # Window Management "SUPER, Q, killactive" "SUPER CTRL, backspace, killactive" @@ -97,7 +97,7 @@ in # Lock Screen "SUPER, Backspace, exec, ${binds.lock}" ]; - # Mouse + # Mouse bindm = [ "SUPER, mouse:272, movewindow" "SUPER, mouse:273, resizewindow" diff --git a/home/modules/desktop/wayland/compositor/hyprland/settings/env.nix b/home/modules/desktop/wayland/compositor/hyprland/settings/env.nix index bb7ca2c..f784385 100644 --- a/home/modules/desktop/wayland/compositor/hyprland/settings/env.nix +++ b/home/modules/desktop/wayland/compositor/hyprland/settings/env.nix @@ -1,17 +1,15 @@ -{ lib, config, ... }: - -let +{ + lib, + config, + ... +}: let inherit (lib) mkIf; wayland = config.ooknet.wayland; -in - -{ +in { config = mkIf (wayland.compositor == "hyprland") { wayland.windowManager.hyprland.settings.env = [ "XDG_SESSION_DESKTOP,hyprland" "XDG_CURRENT_DESKTOP,hyprland" - ]; + ]; }; - - } diff --git a/home/modules/desktop/wayland/compositor/hyprland/settings/exec.nix b/home/modules/desktop/wayland/compositor/hyprland/settings/exec.nix index 982522f..f83e51d 100644 --- a/home/modules/desktop/wayland/compositor/hyprland/settings/exec.nix +++ b/home/modules/desktop/wayland/compositor/hyprland/settings/exec.nix @@ -1,11 +1,12 @@ -{ config, lib, pkgs, ... }: - -let +{ + config, + lib, + pkgs, + ... +}: let inherit (lib) mkIf; wayland = config.ooknet.wayland; -in - -{ +in { config = mkIf (wayland.compositor == "hyprland") { wayland.windowManager.hyprland.settings = { exec = [ diff --git a/home/modules/desktop/wayland/compositor/hyprland/settings/gestures.nix b/home/modules/desktop/wayland/compositor/hyprland/settings/gestures.nix index e8d5064..714773c 100644 --- a/home/modules/desktop/wayland/compositor/hyprland/settings/gestures.nix +++ b/home/modules/desktop/wayland/compositor/hyprland/settings/gestures.nix @@ -1,11 +1,11 @@ -{ lib, config, ... }: - -let +{ + lib, + config, + ... +}: let inherit (lib) mkIf; wayland = config.ooknet.wayland; -in - -{ +in { config = mkIf (wayland.compositor == "hyprland") { wayland.windowManager.hyprland.settings.gestures = { workspace_swipe = true; diff --git a/home/modules/desktop/wayland/compositor/hyprland/settings/hyprpaper.nix b/home/modules/desktop/wayland/compositor/hyprland/settings/hyprpaper.nix index 04f637f..9c9bd6c 100644 --- a/home/modules/desktop/wayland/compositor/hyprland/settings/hyprpaper.nix +++ b/home/modules/desktop/wayland/compositor/hyprland/settings/hyprpaper.nix @@ -1,12 +1,12 @@ -{ lib, config, ... }: - -let +{ + lib, + config, + ... +}: let inherit (lib) mkIf; wayland = config.ooknet.wayland; wallpaperPath = config.ooknet.wallpaper.path; -in - -{ +in { config = mkIf (wayland.compositor == "hyprland") { services.hyprpaper = { enable = true; diff --git a/home/modules/desktop/wayland/compositor/hyprland/settings/inputs.nix b/home/modules/desktop/wayland/compositor/hyprland/settings/inputs.nix index 001adbf..9147e0e 100644 --- a/home/modules/desktop/wayland/compositor/hyprland/settings/inputs.nix +++ b/home/modules/desktop/wayland/compositor/hyprland/settings/inputs.nix @@ -1,11 +1,11 @@ -{ lib, config, ... }: - -let +{ + lib, + config, + ... +}: let inherit (lib) mkIf; wayland = config.ooknet.wayland; -in - -{ +in { config = mkIf (wayland.compositor == "hyprland") { wayland.windowManager.hyprland.settings.input = { kb_layout = "us"; @@ -14,5 +14,4 @@ in mouse_refocus = false; }; }; - } diff --git a/home/modules/desktop/wayland/compositor/hyprland/settings/misc.nix b/home/modules/desktop/wayland/compositor/hyprland/settings/misc.nix index 217cf2a..80d4554 100644 --- a/home/modules/desktop/wayland/compositor/hyprland/settings/misc.nix +++ b/home/modules/desktop/wayland/compositor/hyprland/settings/misc.nix @@ -1,11 +1,11 @@ -{ lib, config, ... }: - -let +{ + lib, + config, + ... +}: let inherit (lib) mkIf; wayland = config.ooknet.wayland; -in - -{ +in { config = mkIf (wayland.compositor == "hyprland") { wayland.windowManager.hyprland.settings.misc = { mouse_move_enables_dpms = true; @@ -19,4 +19,4 @@ in focus_on_activate = true; }; }; -} +} diff --git a/home/modules/desktop/wayland/compositor/hyprland/settings/monitor.nix b/home/modules/desktop/wayland/compositor/hyprland/settings/monitor.nix index 34572d3..128ccad 100644 --- a/home/modules/desktop/wayland/compositor/hyprland/settings/monitor.nix +++ b/home/modules/desktop/wayland/compositor/hyprland/settings/monitor.nix @@ -1,22 +1,34 @@ -{ lib, config, osConfig, ... }: - -let +{ + lib, + config, + osConfig, + ... +}: let inherit (lib) mkIf concatMap; wayland = config.ooknet.wayland; monitors = osConfig.ooknet.host.hardware.monitors; -in - -{ +in { config = mkIf (wayland.compositor == "hyprland") { wayland.windowManager.hyprland.settings = { - monitor = concatMap (m: let - resolution = "${toString m.width}x${toString m.height}@${toString m.refreshRate}"; - position = "${toString m.x}x${toString m.y}"; - basicConfig = "${m.name},${if m.enabled then "${resolution},${position},1" else "disable"}"; - in - [ basicConfig ] ++ (if m.transform != 0 then ["${m.name},transform,${toString m.transform}"] else []) - ) (monitors); + monitor = + concatMap ( + m: let + resolution = "${toString m.width}x${toString m.height}@${toString m.refreshRate}"; + position = "${toString m.x}x${toString m.y}"; + basicConfig = "${m.name},${ + if m.enabled + then "${resolution},${position},1" + else "disable" + }"; + in + [basicConfig] + ++ ( + if m.transform != 0 + then ["${m.name},transform,${toString m.transform}"] + else [] + ) + ) + monitors; }; }; } - diff --git a/home/modules/desktop/wayland/compositor/hyprland/settings/rules.nix b/home/modules/desktop/wayland/compositor/hyprland/settings/rules.nix index c225f59..8bb8f0a 100644 --- a/home/modules/desktop/wayland/compositor/hyprland/settings/rules.nix +++ b/home/modules/desktop/wayland/compositor/hyprland/settings/rules.nix @@ -1,11 +1,11 @@ -{ lib, config, ... }: - -let +{ + lib, + config, + ... +}: let inherit (lib) mkIf; wayland = config.ooknet.wayland; -in - -{ +in { config = mkIf (wayland.compositor == "hyprland") { wayland.windowManager.hyprland.settings = { windowrulev2 = [ @@ -26,7 +26,7 @@ in "stayfocused,title:^(BTOP)$" # Tearing - "immediate, title:^(TEKKEN™8)$" + "immediate, title:^(TEKKEN™8)$" ]; }; }; diff --git a/home/modules/desktop/wayland/launcher/rofi.nix b/home/modules/desktop/wayland/launcher/rofi.nix index 649c277..2493264 100644 --- a/home/modules/desktop/wayland/launcher/rofi.nix +++ b/home/modules/desktop/wayland/launcher/rofi.nix @@ -1,12 +1,13 @@ -{ lib, config, pkgs, ... }: - -let +{ + lib, + config, + pkgs, + ... +}: let inherit (lib) mkIf; fonts = config.ooknet.fonts; wayland = config.ooknet.wayland; -in - -{ +in { config = mkIf (wayland.launcher == "rofi") { programs.rofi = { enable = true; @@ -14,7 +15,7 @@ in package = pkgs.rofi-wayland; terminal = "${config.home.sessionVariables.TERMINAL}"; theme = let - inherit (config.colorscheme ) palette; + inherit (config.colorscheme) palette; inherit (config.lib.formats.rasi) mkLiteral; in { "*" = { diff --git a/home/modules/desktop/wayland/launcher/tofi.nix b/home/modules/desktop/wayland/launcher/tofi.nix index 541f0e0..0d11804 100644 --- a/home/modules/desktop/wayland/launcher/tofi.nix +++ b/home/modules/desktop/wayland/launcher/tofi.nix @@ -1,41 +1,45 @@ -{ lib, config, pkgs, ... }: - -let +{ + lib, + config, + pkgs, + ... +}: let inherit (config.colorscheme) palette; inherit (lib) mkIf; wayland = config.ooknet.wayland; fonts = config.ooknet.fonts; -in - -{ +in { config = mkIf (wayland.launcher == "tofi") { home.packages = [pkgs.tofi]; - xdg.configFile."tofi/config".text = /* config */ '' - history = false - clip-to-padding = false - horizontal = true - width = 40% - height = 35 - anchor = top-left - margin-top = 5 - margin-left = 25% - num-results = 1 - border-width = 0 - outline-width = 0 - result-spacing = 10 - selection-background-padding = 30 - prompt-padding = 10 - font = "${fonts.monospace.family}" - font-size = 14 - prompt-text = "  " - background-color = #0000 - prompt-background = #0000 - prompt-color = ${palette.base0B} - input-color = ${palette.base05} - placeholder-color = ${palette.base03} - default-result-color = ${palette.base03} - selection-color = ${palette.base04} - ''; + xdg.configFile."tofi/config".text = + /* + config + */ + '' + history = false + clip-to-padding = false + horizontal = true + width = 40% + height = 35 + anchor = top-left + margin-top = 5 + margin-left = 25% + num-results = 1 + border-width = 0 + outline-width = 0 + result-spacing = 10 + selection-background-padding = 30 + prompt-padding = 10 + font = "${fonts.monospace.family}" + font-size = 14 + prompt-text = "  " + background-color = #0000 + prompt-background = #0000 + prompt-color = ${palette.base0B} + input-color = ${palette.base05} + placeholder-color = ${palette.base03} + default-result-color = ${palette.base03} + selection-color = ${palette.base04} + ''; }; } - diff --git a/home/modules/desktop/wayland/lockscreen/default.nix b/home/modules/desktop/wayland/lockscreen/default.nix index b0ec501..769c934 100644 --- a/home/modules/desktop/wayland/lockscreen/default.nix +++ b/home/modules/desktop/wayland/lockscreen/default.nix @@ -4,4 +4,3 @@ ./hyprlock.nix ]; } - diff --git a/home/modules/desktop/wayland/lockscreen/hyprlock.nix b/home/modules/desktop/wayland/lockscreen/hyprlock.nix index 8cc9207..b06f43a 100644 --- a/home/modules/desktop/wayland/lockscreen/hyprlock.nix +++ b/home/modules/desktop/wayland/lockscreen/hyprlock.nix @@ -1,13 +1,13 @@ -{ lib, config, ... }: - -let +{ + lib, + config, + ... +}: let inherit (config.colorscheme) palette; inherit (lib) mkIf; wayland = config.ooknet.wayland; fonts = config.ooknet.fonts; -in - -{ +in { config = mkIf (wayland.locker == "hyprlock") { ooknet.binds.lock = "hyprlock"; programs.hyprlock = { @@ -29,7 +29,7 @@ in size = { width = 300; height = 40; - }; + }; position = { x = 0; y = 0; @@ -49,7 +49,7 @@ in text = "  "; position = { x = 0; - y = 80; + y = 80; }; color = "0xff${palette.base08}"; font_size = 30; @@ -60,7 +60,7 @@ in text = "$TIME"; position = { x = 0; - y = -80; + y = -80; }; color = "0xff${palette.base0B}"; font_size = 20; diff --git a/home/modules/desktop/wayland/lockscreen/swaylock.nix b/home/modules/desktop/wayland/lockscreen/swaylock.nix index 04b2cca..bf6970c 100644 --- a/home/modules/desktop/wayland/lockscreen/swaylock.nix +++ b/home/modules/desktop/wayland/lockscreen/swaylock.nix @@ -1,13 +1,14 @@ -{ config, lib, ... }: - -let +{ + config, + lib, + ... +}: let inherit (config.colorscheme) palette; inherit (lib) mkIf; fonts = config.ooknet.fonts; wallpaperPath = config.ooknet.wallpaper.path; wayland = config.ooknet.wayland; -in -{ +in { config = mkIf (wayland.locker == "swaylock") { ooknet.binds.lock = "swaylock"; programs.swaylock = { diff --git a/home/modules/desktop/wayland/notification/mako.nix b/home/modules/desktop/wayland/notification/mako.nix index 8687033..c85e2a9 100644 --- a/home/modules/desktop/wayland/notification/mako.nix +++ b/home/modules/desktop/wayland/notification/mako.nix @@ -1,21 +1,20 @@ -{ config, lib, ... }: - -let +{ + config, + lib, + ... +}: let inherit (config.colorscheme) palette variant; inherit (lib) mkIf; fonts = config.ooknet.fonts; wayland = config.ooknet.wayland; -in - -{ +in { config = mkIf (wayland.notification == "mako") { - services.mako = { + services.mako = { enable = true; iconPath = - if variant == "dark" then - "${config.gtk.iconTheme.package}/share/icons/Papirus-Dark" - else - "${config.gtk.iconTheme.package}/share/icons/Papirus-Light"; + if variant == "dark" + then "${config.gtk.iconTheme.package}/share/icons/Papirus-Dark" + else "${config.gtk.iconTheme.package}/share/icons/Papirus-Light"; font = "${fonts.regular.family} 12"; padding = "10,10"; anchor = "top-right"; @@ -41,4 +40,3 @@ in }; }; } - diff --git a/home/modules/desktop/wayland/utility/gammastep.nix b/home/modules/desktop/wayland/utility/gammastep.nix index 6769e5b..c6c19d8 100644 --- a/home/modules/desktop/wayland/utility/gammastep.nix +++ b/home/modules/desktop/wayland/utility/gammastep.nix @@ -1,11 +1,11 @@ -{ lib, config, ... }: - -let +{ + lib, + config, + ... +}: let inherit (lib) mkIf; cfg = config.ooknet.wayland; -in - -{ +in { config = mkIf cfg.enable { services.gammastep = { enable = true; diff --git a/home/modules/desktop/wayland/utility/tools.nix b/home/modules/desktop/wayland/utility/tools.nix index 537b62a..82afbaf 100644 --- a/home/modules/desktop/wayland/utility/tools.nix +++ b/home/modules/desktop/wayland/utility/tools.nix @@ -1,11 +1,12 @@ -{ lib, config, pkgs, ... }: - -let +{ + lib, + config, + pkgs, + ... +}: let inherit (lib) mkIf; cfg = config.ooknet.wayland; -in - -{ +in { config = lib.mkIf cfg.enable { home = { packages = with pkgs; [ @@ -17,7 +18,7 @@ in wl-clipboard ]; }; - + systemd.user.targets.tray = { Unit = { Description = "Home Manager System Tray"; diff --git a/home/modules/desktop/wayland/variables.nix b/home/modules/desktop/wayland/variables.nix index 6a31746..3339f1f 100644 --- a/home/modules/desktop/wayland/variables.nix +++ b/home/modules/desktop/wayland/variables.nix @@ -1,30 +1,33 @@ -{ lib, config, osConfig, ... }: - -let +{ + lib, + config, + osConfig, + ... +}: let inherit (lib) mkIf; cfg = config.ooknet.wayland; gpu = osConfig.ooknet.host.hardware.gpu; -in - -{ +in { config = mkIf cfg.enable { - home.sessionVariables = { - CLUTTER_BACKEND = "wayland"; - NIXOS_OZONE_WL = "1"; - GDK_BACKEND = "wayland"; - QT_QPA_PLATFORM = "wayland"; - QT_WAYLAND_DISABLE_WINDOWDECORATION = "1"; - DISABLE_QT5_COMPAT = "0"; - QT_AUTO_SCREEN_SCALE_FACTOR = "1"; - MOZ_ENABLE_WAYLAND = "1"; - MOZ_DBUS_REMOTE = "1"; - XDG_SESSION_TYPE = "wayland"; - SDL_VIDEODRIVER = "wayland"; - } // mkIf (gpu == "nvidia") { - LIBVA_DRIVER_NAME = "nvidia"; - GBM_BACKEND = "nvidia-drm"; - __GLX_VENDOR_LIBRARY_NAME = "nvidia"; - WLR_NO_HARDWARE_CURSORS = "1"; - }; + home.sessionVariables = + { + CLUTTER_BACKEND = "wayland"; + NIXOS_OZONE_WL = "1"; + GDK_BACKEND = "wayland"; + QT_QPA_PLATFORM = "wayland"; + QT_WAYLAND_DISABLE_WINDOWDECORATION = "1"; + DISABLE_QT5_COMPAT = "0"; + QT_AUTO_SCREEN_SCALE_FACTOR = "1"; + MOZ_ENABLE_WAYLAND = "1"; + MOZ_DBUS_REMOTE = "1"; + XDG_SESSION_TYPE = "wayland"; + SDL_VIDEODRIVER = "wayland"; + } + // mkIf (gpu == "nvidia") { + LIBVA_DRIVER_NAME = "nvidia"; + GBM_BACKEND = "nvidia-drm"; + __GLX_VENDOR_LIBRARY_NAME = "nvidia"; + WLR_NO_HARDWARE_CURSORS = "1"; + }; }; } diff --git a/home/options/appearance/cursor.nix b/home/options/appearance/cursor.nix index 4f0fe2b..56af79d 100644 --- a/home/options/appearance/cursor.nix +++ b/home/options/appearance/cursor.nix @@ -1,10 +1,6 @@ -{ lib, ... }: - -let +{lib, ...}: let inherit (lib) mkEnableOption mkOption types; -in - -{ +in { options.ooknet.cursor = { enable = mkEnableOption "Enable cursor module"; package = mkOption { diff --git a/home/options/appearance/fonts.nix b/home/options/appearance/fonts.nix index 4a982f8..e5ac475 100644 --- a/home/options/appearance/fonts.nix +++ b/home/options/appearance/fonts.nix @@ -1,6 +1,4 @@ -{ lib, ... }: - -let +{lib, ...}: let mkFontOption = kind: { family = lib.mkOption { type = lib.types.str; @@ -15,8 +13,7 @@ let example = "pkgs.fira-code"; }; }; -in -{ +in { options.ooknet.fonts = { enable = lib.mkEnableOption "Whether to enable font profiles"; monospace = mkFontOption "monospace"; diff --git a/home/options/appearance/gtk.nix b/home/options/appearance/gtk.nix index 98f218d..14a71fb 100644 --- a/home/options/appearance/gtk.nix +++ b/home/options/appearance/gtk.nix @@ -1,9 +1,5 @@ -{ lib, ... }: - -let +{lib, ...}: let inherit (lib) mkEnableOption; -in - -{ +in { options.ooknet.gtk.enable = mkEnableOption ""; } diff --git a/home/options/appearance/qt.nix b/home/options/appearance/qt.nix index b1abad2..5439a8e 100644 --- a/home/options/appearance/qt.nix +++ b/home/options/appearance/qt.nix @@ -1,9 +1,5 @@ -{ lib, ... }: - -let +{lib, ...}: let inherit (lib) mkEnableOption; -in - -{ +in { options.ooknet.qt.enable = mkEnableOption ""; } diff --git a/home/options/appearance/theme.nix b/home/options/appearance/theme.nix index 6cf3d49..b03c69d 100644 --- a/home/options/appearance/theme.nix +++ b/home/options/appearance/theme.nix @@ -1,13 +1,9 @@ -{ lib, ... }: - -let +{lib, ...}: let inherit (lib) mkOption; inherit (lib.types) nullOr enum; -in - -{ +in { options.ooknet.theme = mkOption { - type = nullOr (enum [ "minimal" "phone" ]); + type = nullOr (enum ["minimal" "phone"]); default = null; }; } diff --git a/home/options/appearance/wallpaper.nix b/home/options/appearance/wallpaper.nix index a5e8aac..73ee232 100644 --- a/home/options/appearance/wallpaper.nix +++ b/home/options/appearance/wallpaper.nix @@ -1,10 +1,6 @@ -{ lib, ... }: - -let +{lib, ...}: let inherit (lib) types mkEnableOption mkOption; -in - -{ +in { options.ooknet.wallpaper = { enable = mkEnableOption ""; path = mkOption { diff --git a/home/options/console/editor.nix b/home/options/console/editor.nix index a196919..4bf832a 100644 --- a/home/options/console/editor.nix +++ b/home/options/console/editor.nix @@ -1,10 +1,6 @@ -{ lib, ... }: - -let +{lib, ...}: let inherit (lib) mkEnableOption; -in - -{ +in { options.ooknet.editor = { helix.enable = mkEnableOption ""; nvim.enable = mkEnableOption ""; diff --git a/home/options/console/multiplexer.nix b/home/options/console/multiplexer.nix index 38b3816..e258f9a 100644 --- a/home/options/console/multiplexer.nix +++ b/home/options/console/multiplexer.nix @@ -1,10 +1,6 @@ -{ lib, ... }: - -let +{lib, ...}: let inherit (lib) mkEnableOption; -in - -{ +in { options.ooknet.multiplexer = { zellij.enable = mkEnableOption ""; tmux.enable = mkEnableOption ""; diff --git a/home/options/console/shell.nix b/home/options/console/shell.nix index b033368..0ad8f45 100644 --- a/home/options/console/shell.nix +++ b/home/options/console/shell.nix @@ -1,13 +1,9 @@ -{ lib , ... }: - -let +{lib, ...}: let inherit (lib) mkEnableOption; -in - -{ +in { options.ooknet.shell = { fish.enable = mkEnableOption ""; zsh.enable = mkEnableOption ""; bash.enable = mkEnableOption ""; }; -} +} diff --git a/home/options/console/tools.nix b/home/options/console/tools.nix index 6d6d0b9..b6e2cc7 100644 --- a/home/options/console/tools.nix +++ b/home/options/console/tools.nix @@ -1,10 +1,6 @@ -{ lib, ... }: - -let +{lib, ...}: let inherit (lib) mkEnableOption; -in - -{ +in { options.ooknet.tools = { btop.enable = mkEnableOption ""; eza.enable = mkEnableOption ""; diff --git a/home/options/desktop/binds.nix b/home/options/desktop/binds.nix index 619ab8e..589ff86 100644 --- a/home/options/desktop/binds.nix +++ b/home/options/desktop/binds.nix @@ -1,13 +1,14 @@ -{ lib, pkgs, ... }: - -let - mkBind = message: lib.mkOption { - type = lib.types.str; - default = "${pkgs.libnotify}/bin/notify-send --urgency=normal 'Warning' '${message}'"; - }; -in - { + lib, + pkgs, + ... +}: let + mkBind = message: + lib.mkOption { + type = lib.types.str; + default = "${pkgs.libnotify}/bin/notify-send --urgency=normal 'Warning' '${message}'"; + }; +in { options.ooknet.binds = { browser = mkBind "No browser is enabled"; terminal = mkBind "No terminal is enabled"; diff --git a/home/options/desktop/browser.nix b/home/options/desktop/browser.nix index 1d278a4..8c74055 100644 --- a/home/options/desktop/browser.nix +++ b/home/options/desktop/browser.nix @@ -1,10 +1,6 @@ -{ lib, ... }: - -let +{lib, ...}: let inherit (lib) mkEnableOption; -in - -{ +in { options.ooknet.browser = { firefox.enable = mkEnableOption ""; brave.enable = mkEnableOption ""; diff --git a/home/options/desktop/communication.nix b/home/options/desktop/communication.nix index 387e7b0..c2aba50 100644 --- a/home/options/desktop/communication.nix +++ b/home/options/desktop/communication.nix @@ -1,10 +1,6 @@ -{ lib, ... }: - -let +{lib, ...}: let inherit (lib) mkEnableOption; -in - -{ +in { options.ooknet.communication = { discord.enable = mkEnableOption ""; }; diff --git a/home/options/desktop/creative.nix b/home/options/desktop/creative.nix index 2d820ef..6e60a12 100644 --- a/home/options/desktop/creative.nix +++ b/home/options/desktop/creative.nix @@ -1,10 +1,6 @@ -{ lib, ... }: - -let +{lib, ...}: let inherit (lib) mkEnableOption; -in - -{ +in { options.ooknet.creative = { inkscape.enable = mkEnableOption ""; audacity.enable = mkEnableOption ""; diff --git a/home/options/desktop/fileManager.nix b/home/options/desktop/fileManager.nix index 58a03b9..c710b57 100644 --- a/home/options/desktop/fileManager.nix +++ b/home/options/desktop/fileManager.nix @@ -1,10 +1,6 @@ -{ lib, ... }: - -let +{lib, ...}: let inherit (lib) mkEnableOption; -in - -{ +in { options.ooknet.fileManager = { nemo.enable = mkEnableOption ""; }; diff --git a/home/options/desktop/gaming.nix b/home/options/desktop/gaming.nix index c4eec4e..acfc1b1 100644 --- a/home/options/desktop/gaming.nix +++ b/home/options/desktop/gaming.nix @@ -1,10 +1,6 @@ -{ lib, ... }: - -let +{lib, ...}: let inherit (lib) mkEnableOption; -in - -{ +in { options.ooknet.gaming = { factorio.enable = mkEnableOption ""; bottles.enable = mkEnableOption ""; diff --git a/home/options/desktop/media.nix b/home/options/desktop/media.nix index b46e4bb..e455250 100644 --- a/home/options/desktop/media.nix +++ b/home/options/desktop/media.nix @@ -1,10 +1,6 @@ -{ lib, ... }: - -let +{lib, ...}: let inherit (lib) mkEnableOption; -in - -{ +in { options.ooknet.media = { image = { imv.enable = mkEnableOption ""; diff --git a/home/options/desktop/productivity.nix b/home/options/desktop/productivity.nix index 0d183bb..8046d0d 100644 --- a/home/options/desktop/productivity.nix +++ b/home/options/desktop/productivity.nix @@ -1,10 +1,6 @@ -{ lib, ... }: - -let +{lib, ...}: let inherit (lib) mkEnableOption; -in - -{ +in { options.ooknet.productivity = { notes = { obsidian.enable = mkEnableOption ""; diff --git a/home/options/desktop/security.nix b/home/options/desktop/security.nix index 902d593..bc64ca0 100644 --- a/home/options/desktop/security.nix +++ b/home/options/desktop/security.nix @@ -1,11 +1,7 @@ -{ lib, ... }: - -let +{lib, ...}: let inherit (lib) mkOption types; inherit (types) nullOr enum; -in - -{ +in { options.ooknet.security.polkit = mkOption { type = nullOr (enum ["gnome" "pantheon"]); # TODO: add kde agent default = "gnome"; diff --git a/home/options/desktop/terminal.nix b/home/options/desktop/terminal.nix index dbde488..3e85ef7 100644 --- a/home/options/desktop/terminal.nix +++ b/home/options/desktop/terminal.nix @@ -1,10 +1,6 @@ -{ lib, ... }: - -let +{lib, ...}: let inherit (lib) mkEnableOption; -in - -{ +in { options.ooknet.terminal = { foot.enable = mkEnableOption ""; kitty.enable = mkEnableOption ""; diff --git a/home/options/desktop/tools.nix b/home/options/desktop/tools.nix index 43961ae..0138b53 100644 --- a/home/options/desktop/tools.nix +++ b/home/options/desktop/tools.nix @@ -1,10 +1,6 @@ -{ lib, ... }: - -let +{lib, ...}: let inherit (lib) mkEnableOption; -in - -{ +in { options.ooknet.tools = { kdeconnect.enable = mkEnableOption ""; }; diff --git a/home/options/desktop/wayland.nix b/home/options/desktop/wayland.nix index 268b0c7..5a10fb7 100644 --- a/home/options/desktop/wayland.nix +++ b/home/options/desktop/wayland.nix @@ -1,30 +1,26 @@ -{ lib, ... }: - -let +{lib, ...}: let inherit (lib) mkOption mkEnableOption types; inherit (types) nullOr enum; -in - -{ +in { options.ooknet.wayland = { enable = mkEnableOption ""; compositor = mkOption { - type = nullOr (enum [ "hyprland" ]); + type = nullOr (enum ["hyprland"]); }; launcher = mkOption { - type = nullOr (enum [ "rofi" "tofi" ]); + type = nullOr (enum ["rofi" "tofi"]); default = null; }; locker = mkOption { - type = nullOr (enum [ "hyprlock" "swaylock" ]); + type = nullOr (enum ["hyprlock" "swaylock"]); default = null; }; notification = mkOption { - type = nullOr (enum [ "mako" ]); + type = nullOr (enum ["mako"]); default = null; }; bar = mkOption { - type = nullOr (enum [ "waybar" ]); + type = nullOr (enum ["waybar"]); default = null; }; }; diff --git a/home/options/profiles/console.nix b/home/options/profiles/console.nix index 327223b..634fe60 100644 --- a/home/options/profiles/console.nix +++ b/home/options/profiles/console.nix @@ -1,11 +1,7 @@ -{ lib, ... }: - -let +{lib, ...}: let inherit (lib) mkOption types; inherit (types) nullOr enum; -in - -{ +in { options.ooknet.console = { editor = mkOption { type = nullOr (enum ["helix" "nvim"]); diff --git a/home/options/profiles/desktop.nix b/home/options/profiles/desktop.nix index f87aad2..7fa6616 100644 --- a/home/options/profiles/desktop.nix +++ b/home/options/profiles/desktop.nix @@ -1,51 +1,46 @@ -{ lib, ... }: - -let +{lib, ...}: let inherit (lib) mkOption types; inherit (types) enum nullOr listOf; -in - -{ +in { options.ooknet.desktop = { - environment = mkOption { - type = nullOr (enum [ "hyprland" ]); + type = nullOr (enum ["hyprland"]); default = "hyprland"; }; browser = mkOption { - type = nullOr (enum [ "firefox" "brave" ]); + type = nullOr (enum ["firefox" "brave"]); default = null; }; terminal = mkOption { - type = nullOr (enum [ "foot" "kitty" "wezterm" ]); + type = nullOr (enum ["foot" "kitty" "wezterm"]); default = "foot"; }; fileManager = mkOption { - type = nullOr (enum [ "nemo" ]); + type = nullOr (enum ["nemo"]); default = null; }; notes = mkOption { - type = nullOr (enum [ "obsidian" ]); + type = nullOr (enum ["obsidian"]); default = null; }; pdf = mkOption { - type = nullOr (enum [ "zathura" ]); + type = nullOr (enum ["zathura"]); default = null; }; discord = mkOption { - type = nullOr (enum [ "vesktop" ]); + type = nullOr (enum ["vesktop"]); default = null; }; suites = mkOption { - type = listOf (enum [ "gaming" "tools" "media" "creative" ]); - default = [ ]; + type = listOf (enum ["gaming" "tools" "media" "creative"]); + default = []; }; }; } diff --git a/home/profiles/desktop-environments/hyprland.nix b/home/profiles/desktop-environments/hyprland.nix index 5cfd622..bfe2717 100644 --- a/home/profiles/desktop-environments/hyprland.nix +++ b/home/profiles/desktop-environments/hyprland.nix @@ -1,11 +1,11 @@ -{ lib, config, ... }: - -let +{ + lib, + config, + ... +}: let inherit (lib) mkIf; desktop = config.ooknet.desktop; -in - -{ +in { config = mkIf (desktop.environment == "hyprland") { ooknet.wayland = { enable = true; diff --git a/home/profiles/suites/console-tools.nix b/home/profiles/suites/console-tools.nix index db71598..4eda45b 100644 --- a/home/profiles/suites/console-tools.nix +++ b/home/profiles/suites/console-tools.nix @@ -1,12 +1,12 @@ -{ osConfig, lib, ... }: - -let +{ + osConfig, + lib, + ... +}: let inherit (lib) mkIf; inherit (builtins) elem; profiles = osConfig.ooknet.host.profiles; -in - -{ +in { config = mkIf (elem "console-tools" profiles) { ooknet.tools = { btop.enable = true; diff --git a/home/profiles/suites/creative.nix b/home/profiles/suites/creative.nix index f6a4488..bafbfcf 100644 --- a/home/profiles/suites/creative.nix +++ b/home/profiles/suites/creative.nix @@ -1,12 +1,12 @@ -{ osConfig, lib, ... }: - -let +{ + osConfig, + lib, + ... +}: let inherit (lib) mkIf; inherit (builtins) elem; profiles = osConfig.ooknet.host.profiles; -in - -{ +in { config = mkIf (elem "creative" profiles) { ooknet.creative = { audacity.enable = true; diff --git a/home/profiles/suites/gaming.nix b/home/profiles/suites/gaming.nix index 6c7418d..0d29ade 100644 --- a/home/profiles/suites/gaming.nix +++ b/home/profiles/suites/gaming.nix @@ -1,12 +1,12 @@ -{ osConfig, lib, ... }: - -let +{ + osConfig, + lib, + ... +}: let inherit (lib) mkIf; inherit (builtins) elem; profiles = osConfig.ooknet.host.profiles; -in - -{ +in { config = mkIf (elem "gaming" profiles) { ooknet.gaming = { wine.enable = true; diff --git a/home/profiles/suites/media.nix b/home/profiles/suites/media.nix index 87331f0..a71b034 100644 --- a/home/profiles/suites/media.nix +++ b/home/profiles/suites/media.nix @@ -1,12 +1,12 @@ -{ osConfig, lib, ... }: - -let +{ + osConfig, + lib, + ... +}: let inherit (lib) mkIf; inherit (builtins) elem; profiles = osConfig.ooknet.host.profiles; -in - -{ +in { config = mkIf (elem "media" profiles) { ooknet.media = { image = { diff --git a/home/profiles/suites/productivity.nix b/home/profiles/suites/productivity.nix index ed77753..1aa7f49 100644 --- a/home/profiles/suites/productivity.nix +++ b/home/profiles/suites/productivity.nix @@ -1,12 +1,12 @@ -{ osConfig, lib, ... }: - -let +{ + osConfig, + lib, + ... +}: let inherit (lib) mkIf; inherit (builtins) elem; profiles = osConfig.ooknet.host.profiles; -in - -{ +in { config = mkIf (elem "productiviy" profiles) { ooknet.productivity = { notes.obsidian.enable = true; diff --git a/home/profiles/themes/minimal.nix b/home/profiles/themes/minimal.nix index 4c69093..2dfa068 100644 --- a/home/profiles/themes/minimal.nix +++ b/home/profiles/themes/minimal.nix @@ -1,15 +1,16 @@ -{ lib, config, pkgs, inputs, ... }: - -let +{ + lib, + config, + pkgs, + inputs, + ... +}: let inherit (inputs.nix-colors) colorSchemes; inherit (lib) mkIf; theme = config.ooknet.theme; -in - -{ - imports = [ inputs.nix-colors.homeManagerModule ]; +in { + imports = [inputs.nix-colors.homeManagerModule]; config = mkIf (theme == "minimal") { - colorscheme = colorSchemes.gruvbox-material-dark-medium; home.file.".colorscheme".text = config.colorscheme.slug; home.sessionVariables.COLOR_SCHEME = "${config.colorscheme.slug}"; @@ -22,7 +23,7 @@ in }; fonts.monospace = { family = "JetBrainsMono Nerd Font"; - package = pkgs.nerdfonts.override { fonts = [ "JetBrainsMono" ]; }; + package = pkgs.nerdfonts.override {fonts = ["JetBrainsMono"];}; }; cursor.enable = true; @@ -35,7 +36,7 @@ in wallpaper = { enable = true; }; - + gtk.enable = true; qt.enable = true; }; diff --git a/home/profiles/themes/phone.nix b/home/profiles/themes/phone.nix index 19be48a..8be93c5 100644 --- a/home/profiles/themes/phone.nix +++ b/home/profiles/themes/phone.nix @@ -1,14 +1,15 @@ -{ lib, config, pkgs, inputs, ... }: - -let +{ + lib, + config, + pkgs, + inputs, + ... +}: let inherit (inputs.nix-colors) colorSchemes; inherit (lib) mkIf; theme = config.ooknet.theme; -in - -{ +in { config = mkIf (theme == "phone") { - colorscheme = colorSchemes.gruvbox-material-dark-soft; home.file.".colorscheme".text = config.colorscheme.slug; home.sessionVariables.COLOR_SCHEME = "${config.colorscheme.slug}"; @@ -21,7 +22,7 @@ in }; fonts.monospace = { family = "JetBrainsMono Nerd Font"; - package = pkgs.nerdfonts.override { fonts = [ "JetBrainsMono" ]; }; + package = pkgs.nerdfonts.override {fonts = ["JetBrainsMono"];}; }; }; }; diff --git a/home/roles/ooks-desktop-workstation.nix b/home/roles/ooks-desktop-workstation.nix index 27df69c..7bfb09a 100644 --- a/home/roles/ooks-desktop-workstation.nix +++ b/home/roles/ooks-desktop-workstation.nix @@ -1,11 +1,11 @@ -{ lib, osConfig, ... }: - -let +{ + lib, + osConfig, + ... +}: let inherit (lib) mkIf; host = osConfig.ooknet.host; -in - -{ +in { config = mkIf (host.admin.name == "ooks" && host.type == "desktop" && host.role == "workstation") { ooknet = { theme = "minimal"; diff --git a/home/roles/ooks-laptop-workstation.nix b/home/roles/ooks-laptop-workstation.nix index 69b03f8..66f2291 100644 --- a/home/roles/ooks-laptop-workstation.nix +++ b/home/roles/ooks-laptop-workstation.nix @@ -1,11 +1,11 @@ -{ lib, osConfig, ... }: - -let +{ + lib, + osConfig, + ... +}: let inherit (lib) mkIf; host = osConfig.ooknet.host; -in - -{ +in { config = mkIf (host.admin.name == "ooks" && host.type == "laptop" && host.role == "workstation") { ooknet = { theme = "minimal"; @@ -19,7 +19,7 @@ in fileManager = "nemo"; }; console = { - editor = "helix"; + editor = "nvim"; multiplexer = "zellij"; }; }; diff --git a/home/roles/ooks-micro-workstation.nix b/home/roles/ooks-micro-workstation.nix index 401cb67..3d64c86 100644 --- a/home/roles/ooks-micro-workstation.nix +++ b/home/roles/ooks-micro-workstation.nix @@ -1,11 +1,11 @@ -{ lib, osConfig, ... }: - -let +{ + lib, + osConfig, + ... +}: let inherit (lib) mkIf; host = osConfig.ooknet.host; -in - -{ +in { config = mkIf (host.admin.name == "ooks" && host.type == "micro" && host.role == "workstation") { ooknet = { theme = "minimal"; diff --git a/home/user/ooks/ooksdesk/default.nix b/home/user/ooks/ooksdesk/default.nix index 37d1ee3..5fa913c 100644 --- a/home/user/ooks/ooksdesk/default.nix +++ b/home/user/ooks/ooksdesk/default.nix @@ -1,6 +1,4 @@ -{ ... }: - -{ +{...}: { imports = [ ../../../profile ]; @@ -11,4 +9,3 @@ home.sessionVariables.HN = "ooksdesk"; } - diff --git a/home/user/ooks/ooksmedia/default.nix b/home/user/ooks/ooksmedia/default.nix index 7a4dc4c..32d8175 100644 --- a/home/user/ooks/ooksmedia/default.nix +++ b/home/user/ooks/ooksmedia/default.nix @@ -1,6 +1,4 @@ -{ ... }: - -{ +{...}: { imports = [ ../../../profile ]; @@ -12,14 +10,15 @@ home.sessionVariables.HN = "ooksmedia"; ooknet.desktop.wayland.nvidia = true; - - monitors = [{ - name = "HDMI-A-1"; - width = 1920; - height = 1080; - refreshRate = 60; - workspace = "1"; - primary = true; - }]; -} + monitors = [ + { + name = "HDMI-A-1"; + width = 1920; + height = 1080; + refreshRate = 60; + workspace = "1"; + primary = true; + } + ]; +} diff --git a/home/user/ooks/ooksmicro/default.nix b/home/user/ooks/ooksmicro/default.nix index e5d6faf..80cd34b 100644 --- a/home/user/ooks/ooksmicro/default.nix +++ b/home/user/ooks/ooksmicro/default.nix @@ -1,6 +1,4 @@ -{ inputs, ... }: - -{ +{inputs, ...}: { imports = [ ../../../profile ]; @@ -9,15 +7,16 @@ home.sessionVariables.HN = "ooksmicro"; - monitors = [{ - name = "DSI-1"; - width = 720; - height = 1280; - workspace = "1"; - primary = true; - transform = 3; - }]; + monitors = [ + { + name = "DSI-1"; + width = 720; + height = 1280; + workspace = "1"; + primary = true; + transform = 3; + } + ]; colorscheme = inputs.nix-colors.colorSchemes.gruvbox-material-dark-soft; } - diff --git a/home/user/ooks/ooksphone/default.nix b/home/user/ooks/ooksphone/default.nix index 6d778fa..f2422f6 100644 --- a/home/user/ooks/ooksphone/default.nix +++ b/home/user/ooks/ooksphone/default.nix @@ -1,11 +1,12 @@ -{ pkgs, config, ... }: - - { + pkgs, + config, + ... +}: { imports = [ ../../../profile ]; - + theme.phone.enable = true; ooknet = { @@ -43,7 +44,7 @@ package = pkgs.gitAndTools.gitFull; userName = "ooks-io"; userEmail = "ooks@protonmail.com"; - ignores = [ ".direnv" "result" ]; + ignores = [".direnv" "result"]; lfs.enable = true; }; }; @@ -59,4 +60,3 @@ home.stateVersion = "23.11"; } - diff --git a/home/user/ooks/ookst480s/default.nix b/home/user/ooks/ookst480s/default.nix index abaf16d..ce8ea6d 100644 --- a/home/user/ooks/ookst480s/default.nix +++ b/home/user/ooks/ookst480s/default.nix @@ -1,6 +1,4 @@ -{ ... }: - -{ +{...}: { imports = [ ../../../profile ]; @@ -19,4 +17,3 @@ }; home.sessionVariables.HN = "ookst480s"; } - diff --git a/hosts/ooksdesk/default.nix b/hosts/ooksdesk/default.nix index 7dfba97..8c222d2 100644 --- a/hosts/ooksdesk/default.nix +++ b/hosts/ooksdesk/default.nix @@ -1,46 +1,50 @@ -{ lib, pkgs, ... }: - { - imports = [ - ./hardware-configuration.nix - ]; + lib, + pkgs, + ... +}: { + imports = [ + ./hardware-configuration.nix + ]; - ooknet.host = { - name = "ooksdesk"; - type = "desktop"; - role = "workstation"; - profiles = [ "gaming" "creative" "media" "console-tools" ]; - admin = { - name = "ooks"; - shell = "fish"; - homeManager = true; - }; - networking = { - tailscale = { - enable = true; - client = true; - autoconnect = true; - }; - }; - hardware = { - cpu.type = "amd"; - cpu.amd.pstate.enable = true; - gpu.type = "amd"; - features = [ "ssd" "audio" "video" ]; - monitors = [{ - name = "DP-1"; - primary = true; - width = 2560; - height = 1440; - refreshRate = 155; - workspace = "1"; - }]; - }; - }; + ooknet.host = { + name = "ooksdesk"; + type = "desktop"; + role = "workstation"; + profiles = ["gaming" "creative" "media" "console-tools"]; + admin = { + name = "ooks"; + shell = "fish"; + homeManager = true; + }; + networking = { + tailscale = { + enable = true; + client = true; + autoconnect = true; + }; + }; + hardware = { + cpu.type = "amd"; + cpu.amd.pstate.enable = true; + gpu.type = "amd"; + features = ["ssd" "audio" "video"]; + monitors = [ + { + name = "DP-1"; + primary = true; + width = 2560; + height = 1440; + refreshRate = 155; + workspace = "1"; + } + ]; + }; + }; boot = { - kernelPackages = pkgs.linuxPackages_xanmod_latest; - }; + kernelPackages = pkgs.linuxPackages_xanmod_latest; + }; system.stateVersion = lib.mkDefault "23.11"; } diff --git a/hosts/ooksdesk/hardware-configuration.nix b/hosts/ooksdesk/hardware-configuration.nix index b183b2c..26fe503 100644 --- a/hosts/ooksdesk/hardware-configuration.nix +++ b/hosts/ooksdesk/hardware-configuration.nix @@ -1,50 +1,53 @@ # 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, modulesPath, ... }: - { - imports = - [ (modulesPath + "/installer/scan/not-detected.nix") - ]; + config, + lib, + modulesPath, + ... +}: { + imports = [ + (modulesPath + "/installer/scan/not-detected.nix") + ]; - boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ]; - boot.initrd.kernelModules = [ ]; - boot.kernelModules = [ "kvm-amd" ]; - boot.extraModulePackages = [ ]; + boot.initrd.availableKernelModules = ["nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod"]; + boot.initrd.kernelModules = []; + boot.kernelModules = ["kvm-amd"]; + boot.extraModulePackages = []; - fileSystems."/" = - { device = "/dev/disk/by-uuid/629a7421-24a0-45e6-87af-031574d9d46d"; - fsType = "btrfs"; - options = [ "subvol=root" ]; - }; + fileSystems."/" = { + device = "/dev/disk/by-uuid/629a7421-24a0-45e6-87af-031574d9d46d"; + fsType = "btrfs"; + options = ["subvol=root"]; + }; boot.initrd.luks.devices."cryptroot".device = "/dev/disk/by-uuid/b5d09a8b-54a9-4f72-828c-5cceea2ec287"; - fileSystems."/nix" = - { device = "/dev/disk/by-uuid/629a7421-24a0-45e6-87af-031574d9d46d"; - fsType = "btrfs"; - options = [ "subvol=nix" ]; - }; + fileSystems."/nix" = { + device = "/dev/disk/by-uuid/629a7421-24a0-45e6-87af-031574d9d46d"; + fsType = "btrfs"; + options = ["subvol=nix"]; + }; - fileSystems."/persist" = - { device = "/dev/disk/by-uuid/629a7421-24a0-45e6-87af-031574d9d46d"; - fsType = "btrfs"; - options = [ "subvol=persist" ]; - }; + fileSystems."/persist" = { + device = "/dev/disk/by-uuid/629a7421-24a0-45e6-87af-031574d9d46d"; + fsType = "btrfs"; + options = ["subvol=persist"]; + }; - fileSystems."/swap" = - { device = "/dev/disk/by-uuid/629a7421-24a0-45e6-87af-031574d9d46d"; - fsType = "btrfs"; - options = [ "subvol=swap" ]; - }; + fileSystems."/swap" = { + device = "/dev/disk/by-uuid/629a7421-24a0-45e6-87af-031574d9d46d"; + fsType = "btrfs"; + options = ["subvol=swap"]; + }; - fileSystems."/boot" = - { device = "/dev/disk/by-uuid/1D01-7040"; - fsType = "vfat"; - }; + fileSystems."/boot" = { + device = "/dev/disk/by-uuid/1D01-7040"; + fsType = "vfat"; + }; - swapDevices = [ ]; + 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 diff --git a/hosts/ooksmedia/default.nix b/hosts/ooksmedia/default.nix index f7d6004..506c0d6 100644 --- a/hosts/ooksmedia/default.nix +++ b/hosts/ooksmedia/default.nix @@ -1,50 +1,54 @@ -{ lib, pkgs, ... }: - { - imports = [ - ./hardware-configuration.nix - ./modules - ]; + lib, + pkgs, + ... +}: { + imports = [ + ./hardware-configuration.nix + ./modules + ]; - ooknet.host = { - name = "ooksmedia"; - type = "desktop"; - role = "workstation"; - profiles = [ "media-server" "console-tools" ]; - admin = { - name = "ooks"; - shell = "fish"; - homeManager = true; - }; - networking = { - tailscale = { - enable = true; - server = true; - autoconnect = true; - }; - }; - hardware = { - cpu.type = "intel"; - cpu.amd.pstate.enable = true; - gpu.type = "nvidia"; - features = [ - "audio" - "video" - "ssd" - ]; - monitors = [{ - name = "HDMI-A-1"; - width = 1920; - height = 1080; - refreshRate = 60; - workspace = "1"; - primary = true; - }]; - }; - }; + ooknet.host = { + name = "ooksmedia"; + type = "desktop"; + role = "workstation"; + profiles = ["media-server" "console-tools"]; + admin = { + name = "ooks"; + shell = "fish"; + homeManager = true; + }; + networking = { + tailscale = { + enable = true; + server = true; + autoconnect = true; + }; + }; + hardware = { + cpu.type = "intel"; + cpu.amd.pstate.enable = true; + gpu.type = "nvidia"; + features = [ + "audio" + "video" + "ssd" + ]; + monitors = [ + { + name = "HDMI-A-1"; + width = 1920; + height = 1080; + refreshRate = 60; + workspace = "1"; + primary = true; + } + ]; + }; + }; boot = { - kernelPackages = pkgs.linuxPackages_xanmod_latest; - }; + kernelPackages = pkgs.linuxPackages_xanmod_latest; + }; system.stateVersion = lib.mkDefault "23.11"; } diff --git a/hosts/ooksmedia/hardware-configuration.nix b/hosts/ooksmedia/hardware-configuration.nix index fc2d52d..89331ac 100644 --- a/hosts/ooksmedia/hardware-configuration.nix +++ b/hosts/ooksmedia/hardware-configuration.nix @@ -1,48 +1,51 @@ # 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, modulesPath, ... }: - { - imports = - [ (modulesPath + "/installer/scan/not-detected.nix") - ]; + config, + lib, + modulesPath, + ... +}: { + imports = [ + (modulesPath + "/installer/scan/not-detected.nix") + ]; - boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ]; - boot.initrd.kernelModules = [ ]; - boot.kernelModules = [ "kvm-intel" ]; - boot.extraModulePackages = [ ]; + boot.initrd.availableKernelModules = ["xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod"]; + boot.initrd.kernelModules = []; + boot.kernelModules = ["kvm-intel"]; + boot.extraModulePackages = []; - fileSystems."/" = - { device = "/dev/disk/by-uuid/50617edf-e788-49cc-9e0c-85a2f90a5550"; - fsType = "btrfs"; - options = [ "subvol=root" ]; - }; + fileSystems."/" = { + device = "/dev/disk/by-uuid/50617edf-e788-49cc-9e0c-85a2f90a5550"; + fsType = "btrfs"; + options = ["subvol=root"]; + }; - fileSystems."/nix" = - { device = "/dev/disk/by-uuid/50617edf-e788-49cc-9e0c-85a2f90a5550"; - fsType = "btrfs"; - options = [ "subvol=nix" ]; - }; + fileSystems."/nix" = { + device = "/dev/disk/by-uuid/50617edf-e788-49cc-9e0c-85a2f90a5550"; + fsType = "btrfs"; + options = ["subvol=nix"]; + }; - fileSystems."/persist" = - { device = "/dev/disk/by-uuid/50617edf-e788-49cc-9e0c-85a2f90a5550"; - fsType = "btrfs"; - options = [ "subvol=persist" ]; - }; + fileSystems."/persist" = { + device = "/dev/disk/by-uuid/50617edf-e788-49cc-9e0c-85a2f90a5550"; + fsType = "btrfs"; + options = ["subvol=persist"]; + }; - fileSystems."/swap" = - { device = "/dev/disk/by-uuid/50617edf-e788-49cc-9e0c-85a2f90a5550"; - fsType = "btrfs"; - options = [ "subvol=swap" ]; - }; + fileSystems."/swap" = { + device = "/dev/disk/by-uuid/50617edf-e788-49cc-9e0c-85a2f90a5550"; + fsType = "btrfs"; + options = ["subvol=swap"]; + }; - fileSystems."/boot" = - { device = "/dev/disk/by-uuid/B511-09E2"; - fsType = "vfat"; - }; + fileSystems."/boot" = { + device = "/dev/disk/by-uuid/B511-09E2"; + fsType = "vfat"; + }; - swapDevices = [ ]; + 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 diff --git a/hosts/ooksmedia/modules/nixarr.nix b/hosts/ooksmedia/modules/nixarr.nix index 6f6a510..2282cf2 100644 --- a/hosts/ooksmedia/modules/nixarr.nix +++ b/hosts/ooksmedia/modules/nixarr.nix @@ -1,12 +1,12 @@ -{ config, lib, ... }: - -let +{ + config, + lib, + ... +}: let inherit (lib) mkIf; admin = config.ooknet.host.admin; cfg = config.ooknet.services.nixarr; -in - -{ +in { config = mkIf cfg.enable { nixarr = { vpn.enable = false; diff --git a/hosts/ooksmicro/default.nix b/hosts/ooksmicro/default.nix index 767b67a..e8d2688 100644 --- a/hosts/ooksmicro/default.nix +++ b/hosts/ooksmicro/default.nix @@ -1,67 +1,68 @@ -{ pkgs, lib, ... }: - -let - inherit (lib) mkDefault; -in - { - imports = [ - ./hardware-configuration.nix - ]; + pkgs, + lib, + ... +}: let + inherit (lib) mkDefault; +in { + imports = [ + ./hardware-configuration.nix + ]; - - ooknet.host = { - name = "ooksmicro"; - type = "micro"; - role = "workstation"; - profiles = [ "console-tools" ]; - admin = { - name = "ooks"; - shell = "fish"; - homeManager = true; - }; - networking = { - tailscale = { - enable = true; - client = true; - autoconnect = true; - }; - }; - hardware = { - cpu.type = "intel"; - gpu.type = "intel"; - features = [ - "bluetooth" - "backlight" - "battery" - "ssd" - "audio" - "video" - ]; - monitors = [{ - name = "DSI-1"; - width = 720; - height = 1280; - workspace = "1"; - primary = true; - transform = 3; - }]; - battery = { - powersave = { - minFreq = 500; - maxFreq = 800; - }; - performance = { - minFreq = 1200; - maxFreq = 2400; - }; - }; - }; - }; + ooknet.host = { + name = "ooksmicro"; + type = "micro"; + role = "workstation"; + profiles = ["console-tools"]; + admin = { + name = "ooks"; + shell = "fish"; + homeManager = true; + }; + networking = { + tailscale = { + enable = true; + client = true; + autoconnect = true; + }; + }; + hardware = { + cpu.type = "intel"; + gpu.type = "intel"; + features = [ + "bluetooth" + "backlight" + "battery" + "ssd" + "audio" + "video" + ]; + monitors = [ + { + name = "DSI-1"; + width = 720; + height = 1280; + workspace = "1"; + primary = true; + transform = 3; + } + ]; + battery = { + powersave = { + minFreq = 500; + maxFreq = 800; + }; + performance = { + minFreq = 1200; + maxFreq = 2400; + }; + }; + }; + }; boot = { kernelPackages = pkgs.linuxKernel.packages.linux_zen; }; - system.stateVersion = mkDefault "23.11"; + system.stateVersion = mkDefault "23.11"; } diff --git a/hosts/ooksmicro/hardware-configuration.nix b/hosts/ooksmicro/hardware-configuration.nix index c12ee18..a7bf113 100644 --- a/hosts/ooksmicro/hardware-configuration.nix +++ b/hosts/ooksmicro/hardware-configuration.nix @@ -1,44 +1,47 @@ # 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, modulesPath, ... }: - { - imports = - [ (modulesPath + "/installer/scan/not-detected.nix") - ]; + config, + lib, + modulesPath, + ... +}: { + imports = [ + (modulesPath + "/installer/scan/not-detected.nix") + ]; - boot.initrd.availableKernelModules = [ "ahci" "xhci_pci" "usbhid" "usb_storage" "sd_mod" "sdhci_pci" ]; - boot.initrd.kernelModules = [ ]; - boot.kernelModules = [ "kvm-intel" ]; - boot.extraModulePackages = [ ]; + boot.initrd.availableKernelModules = ["ahci" "xhci_pci" "usbhid" "usb_storage" "sd_mod" "sdhci_pci"]; + boot.initrd.kernelModules = []; + boot.kernelModules = ["kvm-intel"]; + boot.extraModulePackages = []; - fileSystems."/" = - { device = "/dev/disk/by-uuid/385526ad-e263-495d-91eb-1f484985bd0f"; - fsType = "btrfs"; - options = [ "subvol=root" ]; - }; + fileSystems."/" = { + device = "/dev/disk/by-uuid/385526ad-e263-495d-91eb-1f484985bd0f"; + fsType = "btrfs"; + options = ["subvol=root"]; + }; boot.initrd.luks.devices."cryptroot".device = "/dev/disk/by-uuid/fe7ea7fd-b531-4c00-8123-99f7ea855800"; - fileSystems."/nix" = - { device = "/dev/disk/by-uuid/385526ad-e263-495d-91eb-1f484985bd0f"; - fsType = "btrfs"; - options = [ "subvol=nix" ]; - }; + fileSystems."/nix" = { + device = "/dev/disk/by-uuid/385526ad-e263-495d-91eb-1f484985bd0f"; + fsType = "btrfs"; + options = ["subvol=nix"]; + }; - fileSystems."/boot" = - { device = "/dev/disk/by-uuid/57C5-11E7"; - fsType = "vfat"; - }; + fileSystems."/boot" = { + device = "/dev/disk/by-uuid/57C5-11E7"; + fsType = "vfat"; + }; - fileSystems."/persist" = - { device = "/dev/disk/by-uuid/385526ad-e263-495d-91eb-1f484985bd0f"; - fsType = "btrfs"; - options = [ "subvol=persist" ]; - }; + fileSystems."/persist" = { + device = "/dev/disk/by-uuid/385526ad-e263-495d-91eb-1f484985bd0f"; + fsType = "btrfs"; + options = ["subvol=persist"]; + }; - swapDevices = [ ]; + 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 diff --git a/hosts/ooksphone/default.nix b/hosts/ooksphone/default.nix index 3d16a25..6889d85 100644 --- a/hosts/ooksphone/default.nix +++ b/hosts/ooksphone/default.nix @@ -1,7 +1,10 @@ -{ pkgs, inputs, outputs, ... }: - { - imports = [ ./modules ]; + pkgs, + inputs, + outputs, + ... +}: { + imports = [./modules]; environment.packages = with pkgs; [ killall @@ -29,7 +32,7 @@ "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" ]; }; - + time.timeZone = "Pacific/Auckland"; user = { @@ -37,7 +40,7 @@ }; home-manager = { - extraSpecialArgs = { inherit inputs outputs; }; + extraSpecialArgs = {inherit inputs outputs;}; config = import ../../../home/user/ooks/ooksphone; }; } diff --git a/hosts/ooksphone/modules/openssh.nix b/hosts/ooksphone/modules/openssh.nix index bf4c719..1e0c329 100644 --- a/hosts/ooksphone/modules/openssh.nix +++ b/hosts/ooksphone/modules/openssh.nix @@ -1,5 +1,4 @@ -{ ... }: -{ +{...}: { programs.ssh = { enable = true; startAgent = true; diff --git a/hosts/ooksphone/modules/theme.nix b/hosts/ooksphone/modules/theme.nix index 829bcb2..903f4bc 100644 --- a/hosts/ooksphone/modules/theme.nix +++ b/hosts/ooksphone/modules/theme.nix @@ -1,11 +1,7 @@ -{ pkgs, ... }: - -let - fontPackage = pkgs.nerdfonts.override { fonts = [ "JetBrainsMono" ]; }; +{pkgs, ...}: let + fontPackage = pkgs.nerdfonts.override {fonts = ["JetBrainsMono"];}; fontPath = "/share/fonts/truetype/NerdFonts/JetBrainsMonoNerdFontMono-Regular.ttf"; -in - -{ +in { terminal = { font = fontPackage + fontPath; diff --git a/hosts/ookst480s/default.nix b/hosts/ookst480s/default.nix index 957e13d..effac4c 100644 --- a/hosts/ookst480s/default.nix +++ b/hosts/ookst480s/default.nix @@ -1,66 +1,67 @@ -{ pkgs, lib, ... }: - -let - inherit (lib) mkDefault; -in - { - imports = [ - ./hardware-configuration.nix - ]; + pkgs, + lib, + ... +}: let + inherit (lib) mkDefault; +in { + imports = [ + ./hardware-configuration.nix + ]; - - ooknet.host = { - name = "ookst480s"; - type = "laptop"; - role = "workstation"; - profiles = [ "console-tools" "media" ]; - admin = { - name = "ooks"; - shell = "fish"; - homeManager = true; - }; - networking = { - tailscale = { - enable = true; - client = true; - autoconnect = true; - }; - }; - hardware = { - cpu.type = "intel"; - gpu.type = "intel"; - features = [ - "bluetooth" - "backlight" - "battery" - "ssd" - "audio" - "video" - ]; - monitors = [{ - name = "eDP-1"; - width = 1920; - height = 1080; - workspace = "1"; - primary = true; - }]; - battery = { - powersave = { - minFreq = 800; - maxFreq = 1800; - }; - performance = { - minFreq = 1800; - maxFreq = 3600; - }; - }; - }; - }; + ooknet.host = { + name = "ookst480s"; + type = "laptop"; + role = "workstation"; + profiles = ["console-tools" "media"]; + admin = { + name = "ooks"; + shell = "fish"; + homeManager = true; + }; + networking = { + tailscale = { + enable = true; + client = true; + autoconnect = true; + }; + }; + hardware = { + cpu.type = "intel"; + gpu.type = "intel"; + features = [ + "bluetooth" + "backlight" + "battery" + "ssd" + "audio" + "video" + ]; + monitors = [ + { + name = "eDP-1"; + width = 1920; + height = 1080; + workspace = "1"; + primary = true; + } + ]; + battery = { + powersave = { + minFreq = 800; + maxFreq = 1800; + }; + performance = { + minFreq = 1800; + maxFreq = 3600; + }; + }; + }; + }; boot = { kernelPackages = pkgs.linuxKernel.packages.linux_zen; }; - system.stateVersion = mkDefault "23.11"; + system.stateVersion = mkDefault "23.11"; } diff --git a/hosts/ookst480s/hardware-configuration.nix b/hosts/ookst480s/hardware-configuration.nix index d7b2c91..44cf66a 100644 --- a/hosts/ookst480s/hardware-configuration.nix +++ b/hosts/ookst480s/hardware-configuration.nix @@ -1,50 +1,53 @@ # 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, modulesPath, ... }: - { - imports = - [ (modulesPath + "/installer/scan/not-detected.nix") - ]; + config, + lib, + modulesPath, + ... +}: { + imports = [ + (modulesPath + "/installer/scan/not-detected.nix") + ]; - boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "usb_storage" "sd_mod" ]; - boot.initrd.kernelModules = [ ]; - boot.kernelModules = [ "kvm-intel" ]; - boot.extraModulePackages = [ ]; + boot.initrd.availableKernelModules = ["xhci_pci" "nvme" "usb_storage" "sd_mod"]; + boot.initrd.kernelModules = []; + boot.kernelModules = ["kvm-intel"]; + boot.extraModulePackages = []; - fileSystems."/" = - { device = "/dev/disk/by-uuid/19e4cf0f-b5ac-4544-a44b-c017b23fd283"; - fsType = "btrfs"; - options = [ "subvol=root" ]; - }; + fileSystems."/" = { + device = "/dev/disk/by-uuid/19e4cf0f-b5ac-4544-a44b-c017b23fd283"; + fsType = "btrfs"; + options = ["subvol=root"]; + }; boot.initrd.luks.devices."cryptnix".device = "/dev/disk/by-uuid/014d725c-bf13-40a2-a9ab-0dd6185a95f6"; - fileSystems."/nix" = - { device = "/dev/disk/by-uuid/19e4cf0f-b5ac-4544-a44b-c017b23fd283"; - fsType = "btrfs"; - options = [ "subvol=nix" ]; - }; + fileSystems."/nix" = { + device = "/dev/disk/by-uuid/19e4cf0f-b5ac-4544-a44b-c017b23fd283"; + fsType = "btrfs"; + options = ["subvol=nix"]; + }; - fileSystems."/persist" = - { device = "/dev/disk/by-uuid/19e4cf0f-b5ac-4544-a44b-c017b23fd283"; - fsType = "btrfs"; - options = [ "subvol=persist" ]; - }; + fileSystems."/persist" = { + device = "/dev/disk/by-uuid/19e4cf0f-b5ac-4544-a44b-c017b23fd283"; + fsType = "btrfs"; + options = ["subvol=persist"]; + }; - fileSystems."/swap" = - { device = "/dev/disk/by-uuid/19e4cf0f-b5ac-4544-a44b-c017b23fd283"; - fsType = "btrfs"; - options = [ "subvol=swap" ]; - }; + fileSystems."/swap" = { + device = "/dev/disk/by-uuid/19e4cf0f-b5ac-4544-a44b-c017b23fd283"; + fsType = "btrfs"; + options = ["subvol=swap"]; + }; - fileSystems."/boot" = - { device = "/dev/disk/by-uuid/F356-6F9C"; - fsType = "vfat"; - }; + fileSystems."/boot" = { + device = "/dev/disk/by-uuid/F356-6F9C"; + fsType = "vfat"; + }; - swapDevices = [ ]; + 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 diff --git a/hosts/ooksx1/default.nix b/hosts/ooksx1/default.nix index ab1cb26..359929b 100644 --- a/hosts/ooksx1/default.nix +++ b/hosts/ooksx1/default.nix @@ -1,59 +1,60 @@ -{ pkgs, lib, ... }: - -let - inherit (lib) mkDefault; -in - { - imports = [ - ./hardware-configuration.nix - ]; + pkgs, + lib, + ... +}: let + inherit (lib) mkDefault; +in { + imports = [ + ./hardware-configuration.nix + ]; - - ooknet.host = { - name = "ooksx1"; - type = "laptop"; - role = "workstation"; - profiles = [ "console-tools" ]; - admin = { - name = "ooks"; - shell = "fish"; - homeManager = true; - }; - hardware = { - cpu.type = "intel"; - gpu.type = "intel"; - features = [ - "bluetooth" - "backlight" - "battery" - "ssd" - "audio" - "video" - ]; - monitors = [{ - name = "eDP-1"; - width = 1920; - height = 1080; - workspace = "1"; - primary = true; - }]; - battery = { - powersave = { - minFreq = 800; - maxFreq = 1800; - }; - performance = { - minFreq = 1800; - maxFreq = 3600; - }; - }; - }; - }; + ooknet.host = { + name = "ooksx1"; + type = "laptop"; + role = "workstation"; + profiles = ["console-tools"]; + admin = { + name = "ooks"; + shell = "fish"; + homeManager = true; + }; + hardware = { + cpu.type = "intel"; + gpu.type = "intel"; + features = [ + "bluetooth" + "backlight" + "battery" + "ssd" + "audio" + "video" + ]; + monitors = [ + { + name = "eDP-1"; + width = 1920; + height = 1080; + workspace = "1"; + primary = true; + } + ]; + battery = { + powersave = { + minFreq = 800; + maxFreq = 1800; + }; + performance = { + minFreq = 1800; + maxFreq = 3600; + }; + }; + }; + }; boot = { kernelPackages = pkgs.linuxKernel.packages.linux_zen; }; - system.stateVersion = mkDefault "23.11"; + system.stateVersion = mkDefault "23.11"; } diff --git a/hosts/ooksx1/hardware-configuration.nix b/hosts/ooksx1/hardware-configuration.nix index 97b7f3e..36207d7 100644 --- a/hosts/ooksx1/hardware-configuration.nix +++ b/hosts/ooksx1/hardware-configuration.nix @@ -1,51 +1,55 @@ -{ config, lib, modulesPath, ... }: - { - imports = - [ (modulesPath + "/installer/scan/not-detected.nix") - ]; + config, + lib, + modulesPath, + ... +}: { + imports = [ + (modulesPath + "/installer/scan/not-detected.nix") + ]; - boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ]; - boot.initrd.kernelModules = [ ]; - boot.kernelModules = [ "kvm-intel" ]; - boot.extraModulePackages = [ ]; + boot.initrd.availableKernelModules = ["xhci_pci" "ahci" "usb_storage" "sd_mod" "rtsx_pci_sdmmc"]; + boot.initrd.kernelModules = []; + boot.kernelModules = ["kvm-intel"]; + boot.extraModulePackages = []; - fileSystems."/" = - { device = "/dev/disk/by-uuid/db84a41f-6094-46b1-b98a-26e03afc18e1"; - fsType = "btrfs"; - options = [ "subvol=root" ]; - }; + fileSystems."/" = { + device = "/dev/disk/by-uuid/db84a41f-6094-46b1-b98a-26e03afc18e1"; + fsType = "btrfs"; + options = ["subvol=root"]; + }; boot.initrd.luks.devices."cryptroot".device = "/dev/disk/by-uuid/3ea21f10-f705-457c-8366-a8268f658ba6"; - fileSystems."/nix" = - { device = "/dev/disk/by-uuid/db84a41f-6094-46b1-b98a-26e03afc18e1"; - fsType = "btrfs"; - options = [ "subvol=nix" ]; - }; + fileSystems."/nix" = { + device = "/dev/disk/by-uuid/db84a41f-6094-46b1-b98a-26e03afc18e1"; + fsType = "btrfs"; + options = ["subvol=nix"]; + }; - fileSystems."/persist" = - { device = "/dev/disk/by-uuid/db84a41f-6094-46b1-b98a-26e03afc18e1"; - fsType = "btrfs"; - options = [ "subvol=persist" ]; - }; + fileSystems."/persist" = { + device = "/dev/disk/by-uuid/db84a41f-6094-46b1-b98a-26e03afc18e1"; + fsType = "btrfs"; + options = ["subvol=persist"]; + }; - fileSystems."/swap" = - { device = "/dev/disk/by-uuid/db84a41f-6094-46b1-b98a-26e03afc18e1"; - fsType = "btrfs"; - options = [ "subvol=swap" ]; - }; + fileSystems."/swap" = { + device = "/dev/disk/by-uuid/db84a41f-6094-46b1-b98a-26e03afc18e1"; + fsType = "btrfs"; + options = ["subvol=swap"]; + }; - fileSystems."/boot" = - { device = "/dev/disk/by-uuid/45D8-8DC3"; - fsType = "vfat"; - }; - - swapDevices = [{ - device = "/swap/swapfile"; - size = 8196; - }]; + fileSystems."/boot" = { + device = "/dev/disk/by-uuid/45D8-8DC3"; + fsType = "vfat"; + }; + swapDevices = [ + { + device = "/swap/swapfile"; + size = 8196; + } + ]; # 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 diff --git a/nixos/modules/base/boot/loader/default.nix b/nixos/modules/base/boot/loader/default.nix index d8a8665..bc6f35d 100644 --- a/nixos/modules/base/boot/loader/default.nix +++ b/nixos/modules/base/boot/loader/default.nix @@ -1,10 +1,6 @@ -{ lib, ... }: - -let +{lib, ...}: let inherit (lib) types mkOption; -in - -{ +in { imports = [ ./systemd.nix # ./grub diff --git a/nixos/modules/base/boot/loader/systemd.nix b/nixos/modules/base/boot/loader/systemd.nix index 64f5e76..37bfa3d 100644 --- a/nixos/modules/base/boot/loader/systemd.nix +++ b/nixos/modules/base/boot/loader/systemd.nix @@ -1,11 +1,11 @@ -{ lib, config, ... }: - -let +{ + lib, + config, + ... +}: let inherit (lib) mkIf; bootloader = config.ooknet.boot.loader; -in - -{ +in { config = mkIf (bootloader == "systemd") { boot.loader = { systemd-boot = { diff --git a/nixos/modules/base/boot/plymouth.nix b/nixos/modules/base/boot/plymouth.nix index 06ad440..ab3b404 100644 --- a/nixos/modules/base/boot/plymouth.nix +++ b/nixos/modules/base/boot/plymouth.nix @@ -1,11 +1,12 @@ -{ lib, config, pkgs, ... }: - -let +{ + lib, + config, + pkgs, + ... +}: let inherit (lib) mkIf mkEnableOption; cfg = config.sys.boot.plymouth; -in - -{ +in { options.sys.boot.plymouth.enable = mkEnableOption ""; config = mkIf cfg.enable { diff --git a/nixos/modules/base/displayManager/tuigreet.nix b/nixos/modules/base/displayManager/tuigreet.nix index b282bc2..b6f730a 100644 --- a/nixos/modules/base/displayManager/tuigreet.nix +++ b/nixos/modules/base/displayManager/tuigreet.nix @@ -1,10 +1,13 @@ -{ pkgs, lib, config, ... }: -let +{ + pkgs, + lib, + config, + ... +}: let inherit (lib) mkIf; tuigreet = "${pkgs.greetd.tuigreet}/bin/tuigreet"; host = config.ooknet.host; -in -{ +in { config = mkIf (host.type != "phone") { services.greetd = { enable = true; diff --git a/nixos/modules/base/locale.nix b/nixos/modules/base/locale.nix index 71838bc..cdc27af 100644 --- a/nixos/modules/base/locale.nix +++ b/nixos/modules/base/locale.nix @@ -1,10 +1,6 @@ -{ lib, ... }: - -let +{lib, ...}: let inherit (lib) mkDefault; -in - -{ +in { i18n = { defaultLocale = mkDefault "en_US.UTF-8"; supportedLocales = mkDefault [ diff --git a/nixos/modules/base/networking/default.nix b/nixos/modules/base/networking/default.nix index 877247d..1ac0ee8 100644 --- a/nixos/modules/base/networking/default.nix +++ b/nixos/modules/base/networking/default.nix @@ -1,11 +1,11 @@ -{ lib, config, ... }: - -let +{ + lib, + config, + ... +}: let inherit (lib) mkIf; host = config.ooknet.host; -in - -{ +in { imports = [ ./firewall.nix ./tools.nix diff --git a/nixos/modules/base/networking/firewall.nix b/nixos/modules/base/networking/firewall.nix index 7a78ebb..3fad5f1 100644 --- a/nixos/modules/base/networking/firewall.nix +++ b/nixos/modules/base/networking/firewall.nix @@ -1,11 +1,11 @@ -{ lib, config, ... }: - -let +{ + lib, + config, + ... +}: let inherit (lib) mkIf; host = config.ooknet.host; -in - -{ +in { config = mkIf (host.type != "phone") { networking.firewall = { enable = true; diff --git a/nixos/modules/base/networking/resolved.nix b/nixos/modules/base/networking/resolved.nix index 2f9a6c5..002ed22 100644 --- a/nixos/modules/base/networking/resolved.nix +++ b/nixos/modules/base/networking/resolved.nix @@ -1,18 +1,18 @@ -{ lib, config, ... }: - -let +{ + lib, + config, + ... +}: let inherit (lib) mkIf; host = config.ooknet.host; -in - -{ +in { config = mkIf (host.type != "phone") { services.resolved = { enable = true; fallbackDns = ["9.9.9.9"]; # allow-downgrade is vulnerable to downgrade attacks extraConfig = '' - DNSOverTLS=yes # or allow-downgrade + DNSOverTLS=yes # or allow-downgrade ''; }; }; diff --git a/nixos/modules/base/networking/ssh.nix b/nixos/modules/base/networking/ssh.nix index 10159ce..72aef52 100644 --- a/nixos/modules/base/networking/ssh.nix +++ b/nixos/modules/base/networking/ssh.nix @@ -1,11 +1,11 @@ -{ lib, config, ... }: - -let +{ + lib, + config, + ... +}: let inherit (lib) mkIf mkDefault; host = config.ooknet.host; -in - -{ +in { config = mkIf (host.type != "phone") { services.openssh = { enable = true; diff --git a/nixos/modules/base/networking/tailscale.nix b/nixos/modules/base/networking/tailscale.nix index 7391d8e..63c256d 100644 --- a/nixos/modules/base/networking/tailscale.nix +++ b/nixos/modules/base/networking/tailscale.nix @@ -1,12 +1,13 @@ -{ lib, config, pkgs, ... }: - -let +{ + lib, + config, + pkgs, + ... +}: let cfg = config.ooknet.host.networking.tailscale; inherit (config.services) tailscale; inherit (lib) mkIf mkDefault mkBefore; -in - -{ +in { config = mkIf cfg.enable { services.tailscale = { enable = true; @@ -29,7 +30,7 @@ in }; systemd.network.wait-online.ignoredInterfaces = ["${tailscale.interfaceName}"]; - environment.systemPackages = [ pkgs.tailscale ]; + environment.systemPackages = [pkgs.tailscale]; # disable tailscale logging systemd.services.tailscaled.serviceConfig.Environment = mkBefore ["TS_NO_LOGS_NO_SUPPORT"]; diff --git a/nixos/modules/base/networking/tcp.nix b/nixos/modules/base/networking/tcp.nix index 2005d7d..5de3a57 100644 --- a/nixos/modules/base/networking/tcp.nix +++ b/nixos/modules/base/networking/tcp.nix @@ -1,11 +1,11 @@ -{ lib, config, ... }: - -let +{ + lib, + config, + ... +}: let inherit (lib) mkIf; host = config.ooknet.host; -in - -{ +in { # nyx module config = mkIf (host.type != "phone") { boot = { diff --git a/nixos/modules/base/networking/tools.nix b/nixos/modules/base/networking/tools.nix index 418c755..a468b17 100644 --- a/nixos/modules/base/networking/tools.nix +++ b/nixos/modules/base/networking/tools.nix @@ -1,6 +1,4 @@ -{ pkgs, ... }: - -{ +{pkgs, ...}: { environment.systemPackages = with pkgs; [ traceroute mtr diff --git a/nixos/modules/base/nix/default.nix b/nixos/modules/base/nix/default.nix index 98f2d6b..7f24944 100644 --- a/nixos/modules/base/nix/default.nix +++ b/nixos/modules/base/nix/default.nix @@ -1,11 +1,13 @@ -{ lib, config, pkgs, inputs, ... }: - -let +{ + lib, + config, + pkgs, + inputs, + ... +}: let inherit (lib) mkIf mapAttrs mapAttrsToList; host = config.ooknet.host; -in - -{ +in { imports = [ ./nh.nix ./nixpkgs.nix @@ -31,7 +33,7 @@ in nixPath = mapAttrsToList (key: value: "${key}=${value.to.path}") config.nix.registry; optimise = { automatic = true; - dates = [ "18:00" ]; + dates = ["18:00"]; }; gc = { automatic = true; @@ -40,9 +42,9 @@ in }; settings = { flake-registry = "/etc/nix/registry.json"; - allowed-users = [ "root" "@wheel" ]; - trusted-users = [ "root" "@wheel" ]; - experimental-features = [ "nix-command" "flakes" ]; + allowed-users = ["root" "@wheel"]; + trusted-users = ["root" "@wheel"]; + experimental-features = ["nix-command" "flakes"]; builders-use-substitutes = true; }; }; diff --git a/nixos/modules/base/nix/nh.nix b/nixos/modules/base/nix/nh.nix index e695078..418a2c7 100644 --- a/nixos/modules/base/nix/nh.nix +++ b/nixos/modules/base/nix/nh.nix @@ -1,12 +1,13 @@ -{ pkgs, lib, config, ... }: - -let +{ + pkgs, + lib, + config, + ... +}: let inherit (lib) mkIf; host = config.ooknet.host; admin = host.admin; -in - -{ +in { config = mkIf (host.type != "phone") { environment.variables.FLAKE = mkIf admin.homeManager "/home/${admin.name}/.config/ooknet/"; diff --git a/nixos/modules/base/nix/nixpkgs.nix b/nixos/modules/base/nix/nixpkgs.nix index e79e944..a7e528e 100644 --- a/nixos/modules/base/nix/nixpkgs.nix +++ b/nixos/modules/base/nix/nixpkgs.nix @@ -1,11 +1,12 @@ -{ lib, config, inputs, ... }: - -let +{ + lib, + config, + inputs, + ... +}: let inherit (lib) mkIf; host = config.ooknet.host; -in - -{ +in { config = mkIf (host.type != "phone") { nixpkgs = { config = { diff --git a/nixos/modules/base/nix/subs.nix b/nixos/modules/base/nix/subs.nix index 1cdcee7..8964deb 100644 --- a/nixos/modules/base/nix/subs.nix +++ b/nixos/modules/base/nix/subs.nix @@ -1,11 +1,11 @@ -{ lib, config, ... }: - -let +{ + lib, + config, + ... +}: let inherit (lib) mkIf; host = config.ooknet.host; -in - -{ +in { config = mkIf (host.type != "phone") { nix.settings = { substituters = [ diff --git a/nixos/modules/base/secrets.nix b/nixos/modules/base/secrets.nix index 84a7532..dc725a0 100644 --- a/nixos/modules/base/secrets.nix +++ b/nixos/modules/base/secrets.nix @@ -1,14 +1,15 @@ -{ config, lib, self, ... }: - -let +{ + config, + lib, + self, + ... +}: let inherit (lib) mkIf; host = config.ooknet.host; admin = host.admin; tailscale = host.networking.tailscale; -in - -{ +in { age.identityPaths = [ "/home/${admin.name}/.ssh/id_ed25519" ]; diff --git a/nixos/modules/base/security/kernel.nix b/nixos/modules/base/security/kernel.nix index fa372c0..a21205d 100644 --- a/nixos/modules/base/security/kernel.nix +++ b/nixos/modules/base/security/kernel.nix @@ -1,18 +1,18 @@ -{ lib, config, ... }: - -let +{ + lib, + config, + ... +}: let inherit (lib) optionals mkForce concatLists; inherit (builtins) elem; features = config.ooknet.host.hardware.features; -in - -{ +in { security = { # Protects the kernel from being tampered with at runtime. prevents the ability to hibernate. - protectKernelImage = true; + protectKernelImage = true; # page table isolation (PTI) is a kernel option designed to protect against - # side-channel attacks, including Meltdown & Spectre vunerabilities. + # side-channel attacks, including Meltdown & Spectre vunerabilities. forcePageTableIsolation = true; # locking kernel modules during runtime breaks certain services by stopping them from being @@ -41,7 +41,7 @@ in # limits the exposer of the kernel memory address via dmesg "kernel.dmesg_restrict" = 1; - + # we are not a kernel developer so we disable this to prevent potential information leaks & attacks "kernel.ftrace_enabled" = false; @@ -100,7 +100,7 @@ in # disables a common interface that contains sensitive info on the kernel "debugfs=off" - # prevent kernel from blanking plymouth out of the frame buffer console + # prevent kernel from blanking plymouth out of the frame buffer console "fbcon=nodefer" # enables auditing of integrity measurement events @@ -112,11 +112,10 @@ in # disables the legacy vyscall mechanism, reducing attack surface. "vsyscall=none" - + # reduce exposure to heap attacks by preventing different slab caches from being merged. "slab_nomerge" - "rootflags=noatime" "lsm=landlock,lockdown,yama,integrity,apparmor,bpf,tomoyo,selinux" ]; diff --git a/nixos/modules/base/security/polkit.nix b/nixos/modules/base/security/polkit.nix index 1b52b00..1bbacd3 100644 --- a/nixos/modules/base/security/polkit.nix +++ b/nixos/modules/base/security/polkit.nix @@ -1,11 +1,10 @@ - -{ lib, config, ... }: - -let - inherit (lib) mkDefault mkIf; -in - { + lib, + config, + ... +}: let + inherit (lib) mkDefault mkIf; +in { security.polkit = { enable = true; debug = mkDefault true; diff --git a/nixos/modules/base/security/sudo.nix b/nixos/modules/base/security/sudo.nix index ecd763f..f808934 100644 --- a/nixos/modules/base/security/sudo.nix +++ b/nixos/modules/base/security/sudo.nix @@ -1,10 +1,6 @@ -{ lib, ... }: - -let +{lib, ...}: let inherit (lib) mkDefault mkForce; -in - -{ +in { # nyx module security = { sudo-rs.enable = mkForce false; # we don't want the rust sudo fork @@ -12,12 +8,16 @@ in enable = true; wheelNeedsPassword = mkDefault false; # only use false here if the extraRules below are enabled execWheelOnly = mkForce true; # only allow wheel to execute sudo - extraConfig = /* shell */ '' - Defaults lecture = never # disable sudo lecture - Defaults pwfeedback # password feedback - Defaults env_keep += "EDITOR PATH DISPLAY" # variables to be passes to root - Defaults timestamp_timeout = 300 # asks for sudo password ever 300s - ''; + extraConfig = + /* + shell + */ + '' + Defaults lecture = never # disable sudo lecture + Defaults pwfeedback # password feedback + Defaults env_keep += "EDITOR PATH DISPLAY" # variables to be passes to root + Defaults timestamp_timeout = 300 # asks for sudo password ever 300s + ''; extraRules = [ { # allow wheel group to run nixos-rebuild without password diff --git a/nixos/modules/base/shell/bash/default.nix b/nixos/modules/base/shell/bash/default.nix index a4e4f92..51c1b91 100644 --- a/nixos/modules/base/shell/bash/default.nix +++ b/nixos/modules/base/shell/bash/default.nix @@ -1,16 +1,15 @@ -{ lib, config, ... }: - -let +{ + lib, + config, + ... +}: let inherit (lib) mkIf; adminShell = config.ooknet.host.admin.shell; -in - -{ - config = mkIf (adminShell == "bash" ) { +in { + config = mkIf (adminShell == "bash") { programs.bash = { enable = true; }; environment.pathsToLink = ["/share/bash-completion"]; }; } - diff --git a/nixos/modules/base/shell/fish/default.nix b/nixos/modules/base/shell/fish/default.nix index 29d32d0..2c535c0 100644 --- a/nixos/modules/base/shell/fish/default.nix +++ b/nixos/modules/base/shell/fish/default.nix @@ -1,12 +1,12 @@ -{ lib, config, ... }: - -let +{ + lib, + config, + ... +}: let inherit (lib) mkIf mkEnableOption; adminShell = config.ooknet.host.admin.shell; cfg = config.ooknet.shell.fish; -in - -{ +in { options.ooknet.shell.fish.enable = mkEnableOption "Enable fish module"; config = mkIf (adminShell == "fish" || cfg.enable) { diff --git a/nixos/modules/base/shell/zsh/default.nix b/nixos/modules/base/shell/zsh/default.nix index 1662ae5..8e4ed9c 100644 --- a/nixos/modules/base/shell/zsh/default.nix +++ b/nixos/modules/base/shell/zsh/default.nix @@ -1,14 +1,14 @@ -{ lib, config, ... }: - -let +{ + lib, + config, + ... +}: let inherit (lib) mkIf; adminShell = config.ooknet.host.admin.shell; -in - -{ +in { config = mkIf (adminShell == "zsh") { - # enable nixpkgs module if zsh is the main users login shell - # configure with home-manager module + # enable nixpkgs module if zsh is the main users login shell + # configure with home-manager module programs.zsh = { enable = true; diff --git a/nixos/modules/gaming/gamemode.nix b/nixos/modules/gaming/gamemode.nix index fa186e3..0017813 100644 --- a/nixos/modules/gaming/gamemode.nix +++ b/nixos/modules/gaming/gamemode.nix @@ -1,11 +1,12 @@ -{ lib, config, pkgs, ... }: - -let +{ + lib, + config, + pkgs, + ... +}: let inherit (lib) mkIf; cfg = config.ooknet.gaming.gamemode; -in - -{ +in { config = mkIf cfg.enable { programs.gamemode = { enable = true; diff --git a/nixos/modules/gaming/gamescope.nix b/nixos/modules/gaming/gamescope.nix index dc8f5b5..f715154 100644 --- a/nixos/modules/gaming/gamescope.nix +++ b/nixos/modules/gaming/gamescope.nix @@ -1,13 +1,14 @@ -{ lib, config, pkgs, ... }: - -let +{ + lib, + config, + pkgs, + ... +}: let inherit (lib) mkIf; cfg = config.ooknet.gaming.gamescope; -in - -{ +in { config = mkIf cfg.enable { - hardware.opengl.extraPackages = [ pkgs.gamescope ]; + hardware.opengl.extraPackages = [pkgs.gamescope]; programs.gamescope = { enable = true; capSysNice = true; diff --git a/nixos/modules/gaming/openPorts.nix b/nixos/modules/gaming/openPorts.nix index 165c0f7..bc6a6be 100644 --- a/nixos/modules/gaming/openPorts.nix +++ b/nixos/modules/gaming/openPorts.nix @@ -1,14 +1,14 @@ -{ lib, config, ... }: - -let +{ + lib, + config, + ... +}: let inherit (lib) mkIf; cfg = config.ooknet.gaming.openPorts; -in - -{ +in { config = mkIf cfg.enable { networking.firewall = { - allowedTCPPorts = [ 3074 ]; + allowedTCPPorts = [3074]; allowedUDPPorts = [ 88 500 diff --git a/nixos/modules/gaming/steam.nix b/nixos/modules/gaming/steam.nix index 583f8a4..629437b 100644 --- a/nixos/modules/gaming/steam.nix +++ b/nixos/modules/gaming/steam.nix @@ -1,35 +1,37 @@ -{ lib, config, pkgs, ... }: - -let +{ + lib, + config, + pkgs, + ... +}: let inherit (lib) mkIf; cfg = config.ooknet.gaming.steam; steamFix = pkgs.steam.override { - extraPkgs = pkgs: with pkgs; [ - xorg.libXcursor - xorg.libXi - xorg.libXinerama - xorg.libXScrnSaver - libpng - libpulseaudio - libvorbis - stdenv.cc.cc.lib - libkrb5 - keyutils - mangohud - winetricks - protontricks - gtk3 - gtk3-x11 - ]; + extraPkgs = pkgs: + with pkgs; [ + xorg.libXcursor + xorg.libXi + xorg.libXinerama + xorg.libXScrnSaver + libpng + libpulseaudio + libvorbis + stdenv.cc.cc.lib + libkrb5 + keyutils + mangohud + winetricks + protontricks + gtk3 + gtk3-x11 + ]; }; -in - -{ +in { config = mkIf cfg.enable { programs.steam = { enable = true; package = steamFix; - extraCompatPackages = [ pkgs.proton-ge-bin.steamcompattool ]; + extraCompatPackages = [pkgs.proton-ge-bin.steamcompattool]; }; }; } diff --git a/nixos/modules/host/admin.nix b/nixos/modules/host/admin.nix index 7eeb6f4..9852779 100644 --- a/nixos/modules/host/admin.nix +++ b/nixos/modules/host/admin.nix @@ -1,40 +1,47 @@ -{ lib, config, pkgs, inputs, outputs, self, keys, ... }: - -let +{ + lib, + config, + pkgs, + inputs, + outputs, + self, + keys, + ... +}: let cfg = config.ooknet.host.admin; ifTheyExist = groups: builtins.filter (group: builtins.hasAttr group config.users.groups) groups; inherit (lib) mkIf; -in - -{ +in { config = { users.users.${cfg.name} = { isNormalUser = true; shell = pkgs.${cfg.shell}; initialPassword = "password"; - openssh.authorizedKeys.keys = [ (keys.users."${cfg.name}") ]; - extraGroups = [ - "wheel" - "video" - "audio" - ] ++ ifTheyExist [ - "git" - "media" - "network" - "libvirtd" - "deluge" - "streamer" - "torrenter" - ]; + openssh.authorizedKeys.keys = [(keys.users."${cfg.name}")]; + extraGroups = + [ + "wheel" + "video" + "audio" + ] + ++ ifTheyExist [ + "git" + "media" + "network" + "libvirtd" + "deluge" + "streamer" + "torrenter" + ]; }; home-manager = mkIf cfg.homeManager { useGlobalPkgs = true; useUserPackages = true; backupFileExtension = "hm.old"; verbose = true; - extraSpecialArgs = { inherit inputs outputs self; }; + extraSpecialArgs = {inherit inputs outputs self;}; users.${cfg.name} = { - imports = [ "${self}/home" ]; + imports = ["${self}/home"]; }; }; }; diff --git a/nixos/modules/host/hardware/common.nix b/nixos/modules/host/hardware/common.nix index 064a223..a5470e4 100644 --- a/nixos/modules/host/hardware/common.nix +++ b/nixos/modules/host/hardware/common.nix @@ -1,11 +1,11 @@ -{ lib, config, ... }: - -let +{ + lib, + config, + ... +}: let inherit (lib) mkIf; host = config.ooknet.host; -in - -{ +in { config = mkIf (host.type != "phone") { hardware = { enableRedistributableFirmware = true; diff --git a/nixos/modules/host/hardware/cpu/amd.nix b/nixos/modules/host/hardware/cpu/amd.nix index e09301f..8daa5c1 100644 --- a/nixos/modules/host/hardware/cpu/amd.nix +++ b/nixos/modules/host/hardware/cpu/amd.nix @@ -1,16 +1,17 @@ -{ lib, config, pkgs, ... }: - -let +{ + lib, + config, + pkgs, + ... +}: let inherit (lib) mkMerge mkIf versionAtLeast versionOlder; inherit (builtins) elem; - cpu = config.ooknet.host.hardware.cpu; + cpu = config.ooknet.host.hardware.cpu; cfg = cpu.amd; kernelVersion = config.boot.kernelPackages.kernel.version; kernelVersionAtLeast = versionAtLeast kernelVersion; - kernelVersionOlder= versionOlder kernelVersion; -in - -{ + kernelVersionOlder = versionOlder kernelVersion; +in { config = mkIf (elem cpu.type ["amd"]) { environment.systemPackages = [pkgs.amdctl]; hardware.cpu.amd.updateMicrocode = true; @@ -22,7 +23,7 @@ in "msr" # required for amdctl ]; } - + (mkIf (cfg.pstate.enable && (kernelVersionAtLeast "5.27") && (kernelVersionOlder "6.1")) { kernelParams = ["initcall_blacklist-acpi_cpufreq_init"]; kernelModules = ["amd-pstate"]; diff --git a/nixos/modules/host/hardware/cpu/intel.nix b/nixos/modules/host/hardware/cpu/intel.nix index 6897742..f192446 100644 --- a/nixos/modules/host/hardware/cpu/intel.nix +++ b/nixos/modules/host/hardware/cpu/intel.nix @@ -1,12 +1,13 @@ -{ config, lib, pkgs, ... }: - -let +{ + config, + lib, + pkgs, + ... +}: let inherit (lib) mkIf; inherit (builtins) elem; cpu = config.ooknet.host.hardware.cpu; -in - -{ +in { # TODO: put kvm/gvt behind virtualization module flag config = mkIf (elem cpu.type ["intel"]) { diff --git a/nixos/modules/host/hardware/features/audio.nix b/nixos/modules/host/hardware/features/audio.nix index cb589bc..bc86d4c 100644 --- a/nixos/modules/host/hardware/features/audio.nix +++ b/nixos/modules/host/hardware/features/audio.nix @@ -1,25 +1,24 @@ -{ config, lib, pkgs, ... }: - -let +{ + config, + lib, + pkgs, + ... +}: let inherit (lib) mkIf; inherit (lib.generators) toLua; inherit (lib.lists) elem optionals; # inherit (builtins) elem; features = config.ooknet.host.hardware.features; - hasBT = (elem "bluetooth" features); -in - -{ + hasBT = elem "bluetooth" features; +in { config = mkIf (elem "audio" features) { hardware.pulseaudio.enable = !config.services.pipewire.enable; security.rtkit.enable = config.services.pipewire.enable; - services.pipewire = - let + services.pipewire = let quantum = 64; rate = 48000; qr = "${toString quantum}/${toString rate}"; - in - { + in { enable = true; alsa.enable = true; @@ -89,14 +88,18 @@ in '') ] ++ optionals hasBT [ - (pkgs.writeTextDir "share/bluetooth.lua.d/51-bluez-config.lua" /* lua */ '' - bluez_monitor.properties = { - ["bluez5.enable-sbc-xq"] = true, - ["bluez5.enable-msbc"] = true, - ["bluez5.enable-hw-volume"] = true, - ["bluez5.headset-roles"] = "[ hsp_hs hsp_ag hfp_hf hfp_ag ]" - } - '') + (pkgs.writeTextDir "share/bluetooth.lua.d/51-bluez-config.lua" + /* + lua + */ + '' + bluez_monitor.properties = { + ["bluez5.enable-sbc-xq"] = true, + ["bluez5.enable-msbc"] = true, + ["bluez5.enable-hw-volume"] = true, + ["bluez5.headset-roles"] = "[ hsp_hs hsp_ag hfp_hf hfp_ag ]" + } + '') ]; }; }; @@ -106,6 +109,4 @@ in pipewire-pulse.wantedBy = ["default.target"]; }; }; -} - - +} diff --git a/nixos/modules/host/hardware/features/backlight.nix b/nixos/modules/host/hardware/features/backlight.nix index 456db78..a792b62 100644 --- a/nixos/modules/host/hardware/features/backlight.nix +++ b/nixos/modules/host/hardware/features/backlight.nix @@ -1,12 +1,12 @@ -{ lib, config, ... }: - -let +{ + lib, + config, + ... +}: let features = config.ooknet.host.hardware.features; inherit (lib) mkIf; inherit (builtins) elem; -in - -{ +in { config = mkIf (elem "backlight" features) { hardware.brillo.enable = true; }; diff --git a/nixos/modules/host/hardware/features/battery.nix b/nixos/modules/host/hardware/features/battery.nix index 6c7943b..752e2e2 100644 --- a/nixos/modules/host/hardware/features/battery.nix +++ b/nixos/modules/host/hardware/features/battery.nix @@ -1,15 +1,15 @@ - -{ lib, config, pkgs, ... }: - -let +{ + lib, + config, + pkgs, + ... +}: let features = config.ooknet.host.hardware.features; cfg = config.ooknet.host.hardware.battery; inherit (lib) mkIf mkDefault; inherit (builtins) elem; MHz = x: x * 1000; -in - -{ +in { config = mkIf (elem "battery" features) { boot = { kernelModules = ["acpi_call"]; diff --git a/nixos/modules/host/hardware/features/bluetooth.nix b/nixos/modules/host/hardware/features/bluetooth.nix index 22c7eac..87c42d8 100644 --- a/nixos/modules/host/hardware/features/bluetooth.nix +++ b/nixos/modules/host/hardware/features/bluetooth.nix @@ -1,22 +1,24 @@ -{ config, lib, pkgs, self, ... }: - -let +{ + config, + lib, + pkgs, + self, + ... +}: let features = config.ooknet.host.hardware.features; inherit (lib) mkIf; inherit (builtins) elem; -in - -{ +in { config = mkIf (elem "bluetooth" features) { hardware.bluetooth = { enable = true; package = pkgs.bluez5-experimental; }; - + environment.systemPackages = with pkgs; [ self.packages.${pkgs.system}.live-buds-cli - bluetuith - ]; + bluetuith + ]; # https://github.com/NixOS/nixpkgs/issues/114222 systemd.user.services.telephony_client.enable = false; diff --git a/nixos/modules/host/hardware/features/ssd.nix b/nixos/modules/host/hardware/features/ssd.nix index 44154eb..f8c4d65 100644 --- a/nixos/modules/host/hardware/features/ssd.nix +++ b/nixos/modules/host/hardware/features/ssd.nix @@ -1,12 +1,12 @@ -{ lib, config, ... }: - -let +{ + lib, + config, + ... +}: let features = config.ooknet.host.hardware.features; inherit (lib) mkIf; inherit (builtins) elem; -in - -{ +in { config = mkIf (elem "ssd" features) { services.fstrim = { enable = true; @@ -18,6 +18,6 @@ in Nice = 19; IOSchedulingClass = "idle"; }; - }; + }; }; } diff --git a/nixos/modules/host/hardware/features/video.nix b/nixos/modules/host/hardware/features/video.nix index 8b51ec9..a79d73e 100644 --- a/nixos/modules/host/hardware/features/video.nix +++ b/nixos/modules/host/hardware/features/video.nix @@ -1,13 +1,15 @@ -{ lib, inputs, config, pkgs, ... }: - -let +{ + lib, + inputs, + config, + pkgs, + ... +}: let inherit (lib) mkIf; inherit (builtins) elem; isx86Linux = pkgs: with pkgs.stdenv; hostPlatform.isLinux && hostPlatform.isx86; features = config.ooknet.host.hardware.features; -in - -{ +in { config = mkIf (elem "video" features) { hardware = { opengl = { diff --git a/nixos/modules/host/hardware/gpu/amd.nix b/nixos/modules/host/hardware/gpu/amd.nix index 3135351..e96cf55 100644 --- a/nixos/modules/host/hardware/gpu/amd.nix +++ b/nixos/modules/host/hardware/gpu/amd.nix @@ -1,12 +1,13 @@ -{ config, lib, pkgs, ... }: - -let +{ + config, + lib, + pkgs, + ... +}: let gpu = config.ooknet.host.hardware.gpu; inherit (lib) mkIf mkDefault; inherit (builtins) elem; -in - -{ +in { config = mkIf (elem gpu.type ["amd"]) { hardware.opengl = { extraPackages = with pkgs; [ @@ -17,13 +18,13 @@ in # amdvlk mesa ]; - extraPackages32 = [ pkgs.driversi686Linux.amdvlk ]; + extraPackages32 = [pkgs.driversi686Linux.amdvlk]; }; boot = { initrd.kernelModules = ["amdgpu"]; kernelModules = ["amdgpu"]; }; - environment.systemPackages = [ pkgs.nvtopPackages.amd ]; + environment.systemPackages = [pkgs.nvtopPackages.amd]; services.xserver.videoDrivers = mkDefault ["modesetting" "amdgpu"]; }; } diff --git a/nixos/modules/host/hardware/gpu/intel.nix b/nixos/modules/host/hardware/gpu/intel.nix index 58de15b..92ad023 100644 --- a/nixos/modules/host/hardware/gpu/intel.nix +++ b/nixos/modules/host/hardware/gpu/intel.nix @@ -1,16 +1,15 @@ -{ config, lib, pkgs, ... }: - -let +{ + config, + lib, + pkgs, + ... +}: let gpu = config.ooknet.host.hardware.gpu; inherit (lib) mkIf; inherit (builtins) elem; - # vaapiIntel = pkgs.vaapiIntel.override {enableHybridCodec = true;}; -in - -{ +in { config = mkIf (elem gpu.type ["intel"]) { - services.xserver.videoDrivers = ["modesetting"]; hardware.opengl = { extraPackages = with pkgs; [ @@ -29,7 +28,7 @@ in intel-media-driver ]; }; - boot.initrd.kernelModules = ["i915"]; + boot.initrd.kernelModules = ["i915"]; environment.variables = mkIf config.hardware.opengl.enable { VDPAU_DRIVER = "va_gl"; }; diff --git a/nixos/modules/host/hardware/gpu/nvidia.nix b/nixos/modules/host/hardware/gpu/nvidia.nix index 7931278..870f8e9 100644 --- a/nixos/modules/host/hardware/gpu/nvidia.nix +++ b/nixos/modules/host/hardware/gpu/nvidia.nix @@ -1,15 +1,16 @@ -{ config, lib, pkgs, ... }: - -let +{ + config, + lib, + pkgs, + ... +}: let gpu = config.ooknet.host.hardware.gpu; inherit (lib) mkIf mkDefault; inherit (builtins) elem; production = config.boot.kernelPackages.nvidiaPackages.production; # beta = config.boot.kernelPackages.nvidiaPackages.beta; -in - -{ -# TODO: make option to choose nvidia package +in { + # TODO: make option to choose nvidia package config = mkIf (elem gpu.type ["nvidia"]) { hardware = { nvidia = { @@ -25,12 +26,11 @@ in }; }; opengl = { - extraPackages = with pkgs; [ nvidia-vaapi-driver ]; - extraPackages32 = with pkgs.pkgsi686Linux; [ nvidia-vaapi-driver ]; + extraPackages = with pkgs; [nvidia-vaapi-driver]; + extraPackages32 = with pkgs.pkgsi686Linux; [nvidia-vaapi-driver]; }; }; environment.systemPackages = with pkgs; [ - libva libva-utils diff --git a/nixos/modules/host/name.nix b/nixos/modules/host/name.nix index 29a682c..2c88c92 100644 --- a/nixos/modules/host/name.nix +++ b/nixos/modules/host/name.nix @@ -1,10 +1,6 @@ -{ config, ... }: - -let +{config, ...}: let cfg = config.ooknet.host; -in - -{ +in { config = { networking.hostName = cfg.name; environment.sessionVariables.HN = cfg.name; diff --git a/nixos/modules/programs/1password.nix b/nixos/modules/programs/1password.nix index fd6fde0..c70aac4 100644 --- a/nixos/modules/programs/1password.nix +++ b/nixos/modules/programs/1password.nix @@ -1,18 +1,18 @@ -{ lib, config, ... }: - -let +{ + lib, + config, + ... +}: let inherit (lib) mkIf; admin = config.ooknet.host.admin; cfg = config.ooknet.programs._1password; -in - -{ +in { config = mkIf cfg.enable { programs = { _1password.enable = true; _1password-gui = { enable = true; - polkitPolicyOwners = [ "${admin.name}" ]; + polkitPolicyOwners = ["${admin.name}"]; }; }; }; diff --git a/nixos/modules/programs/dconf.nix b/nixos/modules/programs/dconf.nix index 4a7eea1..ad29acd 100644 --- a/nixos/modules/programs/dconf.nix +++ b/nixos/modules/programs/dconf.nix @@ -1,11 +1,11 @@ -{ lib, config, ... }: - -let +{ + lib, + config, + ... +}: let inherit (lib) mkIf; cfg = config.ooknet.programs.dconf; -in - -{ +in { config = mkIf cfg.enable { programs.dconf.enable = true; }; diff --git a/nixos/modules/programs/kdeconnect.nix b/nixos/modules/programs/kdeconnect.nix index a5989f9..bc8ce41 100644 --- a/nixos/modules/programs/kdeconnect.nix +++ b/nixos/modules/programs/kdeconnect.nix @@ -1,11 +1,11 @@ -{ lib, config, ... }: - -let +{ + lib, + config, + ... +}: let inherit (lib) mkIf; cfg = config.ooknet.programs.kdeconnect; -in - -{ +in { config = mkIf cfg.enable { programs.kdeconnect = { enable = true; diff --git a/nixos/modules/services/dbus.nix b/nixos/modules/services/dbus.nix index 889d4e9..fe142c9 100644 --- a/nixos/modules/services/dbus.nix +++ b/nixos/modules/services/dbus.nix @@ -1,15 +1,16 @@ -{ lib, config, pkgs, ... }: - -let +{ + lib, + config, + pkgs, + ... +}: let inherit (lib) mkIf; cfg = config.ooknet.services.dbus; -in - -{ +in { config = mkIf cfg.enable { services.dbus = { enable = true; - packages = with pkgs; [ dconf gcr udisks2 ]; + packages = with pkgs; [dconf gcr udisks2]; implementation = "broker"; }; }; diff --git a/nixos/modules/services/default.nix b/nixos/modules/services/default.nix index 1572d1f..228e7ea 100644 --- a/nixos/modules/services/default.nix +++ b/nixos/modules/services/default.nix @@ -1,5 +1,5 @@ { - imports = [ + imports = [ ./system76Scheduler.nix ./dbus.nix ./gnome.nix diff --git a/nixos/modules/services/flatpak.nix b/nixos/modules/services/flatpak.nix index ab9f6ed..395c68c 100644 --- a/nixos/modules/services/flatpak.nix +++ b/nixos/modules/services/flatpak.nix @@ -1,11 +1,11 @@ -{ lib, config, ... }: - -let +{ + lib, + config, + ... +}: let inherit (lib) mkIf; cfg = config.ooknet.services.flatpak; -in - -{ +in { config = mkIf cfg.enable { services.flatpak.enable = true; }; diff --git a/nixos/modules/services/gnome.nix b/nixos/modules/services/gnome.nix index 610887e..80b24ee 100644 --- a/nixos/modules/services/gnome.nix +++ b/nixos/modules/services/gnome.nix @@ -1,18 +1,19 @@ -{ lib, config, pkgs, ... }: - -let - inherit (lib) mkIf; - cfg = config.ooknet.services.gnomeServices; -in - { + lib, + config, + pkgs, + ... +}: let + inherit (lib) mkIf; + cfg = config.ooknet.services.gnomeServices; +in { config = mkIf cfg.enable { services = { gnome = { glib-networking.enable = true; gnome-keyring.enable = true; }; - udev.packages = [ pkgs.gnome.gnome-settings-daemon ]; + udev.packages = [pkgs.gnome.gnome-settings-daemon]; }; }; } diff --git a/nixos/modules/services/gvfs.nix b/nixos/modules/services/gvfs.nix index 08a75b8..245d83b 100644 --- a/nixos/modules/services/gvfs.nix +++ b/nixos/modules/services/gvfs.nix @@ -1,11 +1,11 @@ -{ lib, config, ... }: - -let +{ + lib, + config, + ... +}: let inherit (lib) mkIf; cfg = config.ooknet.services.gvfs; -in - -{ +in { config = mkIf cfg.enable { services.gvfs.enable = true; }; diff --git a/nixos/modules/services/system76Scheduler.nix b/nixos/modules/services/system76Scheduler.nix index a19f238..96f2583 100644 --- a/nixos/modules/services/system76Scheduler.nix +++ b/nixos/modules/services/system76Scheduler.nix @@ -1,11 +1,11 @@ -{ lib, config, ... }: - -let +{ + lib, + config, + ... +}: let inherit (lib) mkIf; cfg = config.ooknet.services.system76Scheduler; -in - -{ +in { config = mkIf cfg.enable { services.system76-scheduler = { enable = true; diff --git a/nixos/modules/virtualization/default.nix b/nixos/modules/virtualization/default.nix index 40adac1..cf1c172 100644 --- a/nixos/modules/virtualization/default.nix +++ b/nixos/modules/virtualization/default.nix @@ -1,29 +1,30 @@ -{ lib, config, pkgs, ... }: - -let - cfg = config.ooknet.virtualisation; -in - { + lib, + config, + pkgs, + ... +}: let + cfg = config.ooknet.virtualisation; +in { config = lib.mkIf cfg.enable { environment.systemPackages = with pkgs; [ virt-manager virt-viewer - spice + spice spice-gtk spice-protocol win-virtio win-spice gnome.adwaita-icon-theme ]; - + virtualisation = { libvirtd = { enable = true; qemu = { swtpm.enable = true; ovmf.enable = true; - ovmf.packages = [ pkgs.OVMFFull.fd ]; + ovmf.packages = [pkgs.OVMFFull.fd]; }; }; spiceUSBRedirection.enable = true; diff --git a/nixos/options/gaming.nix b/nixos/options/gaming.nix index d0b59ef..37cd673 100644 --- a/nixos/options/gaming.nix +++ b/nixos/options/gaming.nix @@ -1,10 +1,6 @@ -{ lib, ... }: - -let +{lib, ...}: let inherit (lib) mkEnableOption; -in - -{ +in { options.ooknet.gaming = { steam.enable = mkEnableOption ""; gamescope.enable = mkEnableOption ""; diff --git a/nixos/options/host.nix b/nixos/options/host.nix index 9568dce..b3d31e2 100644 --- a/nixos/options/host.nix +++ b/nixos/options/host.nix @@ -1,6 +1,8 @@ -{ lib, config, ... }: - -let +{ + lib, + config, + ... +}: let inherit (lib) mkOption mkEnableOption; inherit (lib.types) bool enum listOf int submodule nullOr str; inherit (lib.lists) optionals concatLists; @@ -8,15 +10,13 @@ let admin = config.ooknet.host.admin; hardware = config.ooknet.host.hardware; tailscale = config.ooknet.host.networking.tailscale; -in - -{ +in { options.ooknet.host = { name = mkOption { type = str; default = "ooksgeneric"; }; - + type = mkOption { type = enum ["desktop" "laptop" "phone" "micro" "vm"]; default = "desktop"; @@ -73,8 +73,9 @@ in }; tags = mkOption { type = listOf str; - default = - if tailscale.server then ["tag:server"] + default = + if tailscale.server + then ["tag:server"] else []; description = "Sets host tag depending on if server/client"; }; @@ -121,8 +122,8 @@ in }; features = mkOption { - type = listOf (enum ["audio" "video" "bluetooth" "backlight" "battery" "ssd"]); - default = [ "ssd" ]; + type = listOf (enum ["audio" "video" "bluetooth" "backlight" "battery" "ssd"]); + default = ["ssd"]; }; battery = { @@ -197,16 +198,19 @@ in }; }; }); - default = [ ]; + default = []; }; }; }; config = { - assertions = [{ - assertion = ((lib.length hardware.monitors) != 0) -> - ((lib.length (lib.filter (m: m.primary) hardware.monitors)) == 1); - message = "At least 1 primary monitor is required"; - }]; + assertions = [ + { + assertion = + ((lib.length hardware.monitors) != 0) + -> ((lib.length (lib.filter (m: m.primary) hardware.monitors)) == 1); + message = "At least 1 primary monitor is required"; + } + ]; }; } diff --git a/nixos/options/programs.nix b/nixos/options/programs.nix index fa1a71c..76458f5 100644 --- a/nixos/options/programs.nix +++ b/nixos/options/programs.nix @@ -1,10 +1,6 @@ -{ lib, ... }: - -let +{lib, ...}: let inherit (lib) mkEnableOption; -in - -{ +in { options.ooknet.programs = { _1password.enable = mkEnableOption ""; dconf.enable = mkEnableOption ""; diff --git a/nixos/options/services.nix b/nixos/options/services.nix index 8a21457..3c81cbb 100644 --- a/nixos/options/services.nix +++ b/nixos/options/services.nix @@ -1,12 +1,8 @@ -{ lib, ... }: - -let +{lib, ...}: let inherit (lib) mkEnableOption; -in - -{ +in { options.ooknet.services = { - nixarr.enable = mkEnableOption ""; + nixarr.enable = mkEnableOption ""; gnomeServices.enable = mkEnableOption ""; gvfs.enable = mkEnableOption ""; dbus.enable = mkEnableOption ""; diff --git a/nixos/profiles/gaming.nix b/nixos/profiles/gaming.nix index 875c6ea..09af84a 100644 --- a/nixos/profiles/gaming.nix +++ b/nixos/profiles/gaming.nix @@ -1,12 +1,12 @@ -{ lib, config, ... }: - -let +{ + lib, + config, + ... +}: let inherit (lib) mkIf; inherit (builtins) elem; profiles = config.ooknet.host.profiles; -in - -{ +in { config = mkIf (elem "gaming" profiles) { ooknet.gaming = { steam.enable = true; @@ -14,5 +14,5 @@ in gamemode.enable = true; }; ooknet.services.flatpak.enable = true; - }; + }; } diff --git a/nixos/profiles/media-server.nix b/nixos/profiles/media-server.nix index 6e576d9..a6cceb5 100644 --- a/nixos/profiles/media-server.nix +++ b/nixos/profiles/media-server.nix @@ -1,12 +1,12 @@ -{ lib, config, ... }: - -let +{ + lib, + config, + ... +}: let inherit (lib) mkIf; inherit (builtins) elem; profiles = config.ooknet.host.profiles; -in - -{ +in { config = mkIf (elem "media-server" profiles) { ooknet.services.nixarr.enable = true; }; diff --git a/nixos/roles/desktop-workstation.nix b/nixos/roles/desktop-workstation.nix index bc92212..2b4916b 100644 --- a/nixos/roles/desktop-workstation.nix +++ b/nixos/roles/desktop-workstation.nix @@ -1,18 +1,18 @@ -{ lib, config, ... }: - -let +{ + lib, + config, + ... +}: let inherit (lib) mkIf; host = config.ooknet.host; -in - -{ +in { config = mkIf (host.type == "desktop" && host.role == "workstation") { ooknet = { services = { gnomeServices.enable = true; gvfs.enable = true; dbus.enable = true; - system76Scheduler.enable = true; + system76Scheduler.enable = true; }; programs = { _1password.enable = true; diff --git a/nixos/roles/laptop-workstation.nix b/nixos/roles/laptop-workstation.nix index 9b7bb6b..c7c182a 100644 --- a/nixos/roles/laptop-workstation.nix +++ b/nixos/roles/laptop-workstation.nix @@ -1,18 +1,18 @@ -{ lib, config, ... }: - -let +{ + lib, + config, + ... +}: let inherit (lib) mkIf; host = config.ooknet.host; -in - -{ +in { config = mkIf (host.type == "laptop" && host.role == "workstation") { ooknet = { services = { gnomeServices.enable = true; gvfs.enable = true; dbus.enable = true; - system76Scheduler.enable = true; + system76Scheduler.enable = true; }; programs = { _1password.enable = true; diff --git a/outputs/nixos.nix b/outputs/nixos.nix index 790de0d..743e273 100644 --- a/outputs/nixos.nix +++ b/outputs/nixos.nix @@ -1,6 +1,9 @@ -{ inputs, self, withSystem, ... }: - -let +{ + inputs, + self, + withSystem, + ... +}: let inherit (inputs.nixpkgs.lib) nixosSystem; inherit (self) keys; @@ -19,36 +22,34 @@ let ]; specialArgs = {inherit withSystem keys inputs self;}; -in - -{ +in { ooksdesk = nixosSystem { inherit specialArgs; system = "x86_64-linux"; - modules = [ "${hosts}/ooksdesk" ] ++ workstation; + modules = ["${hosts}/ooksdesk"] ++ workstation; }; ookst480s = nixosSystem { inherit specialArgs; system = "x86_64-linux"; - modules = [ "${hosts}/ookst480s" ] ++ workstation; + modules = ["${hosts}/ookst480s"] ++ workstation; }; ooksmedia = nixosSystem { inherit specialArgs; system = "x86_64-linux"; - modules = [ "${hosts}/ooksmedia" nixarr ] ++ workstation; + modules = ["${hosts}/ooksmedia" nixarr] ++ workstation; }; ooksmicro = nixosSystem { inherit specialArgs; system = "x86_64-linux"; - modules = [ "${hosts}/ooksmicro" ] ++ workstation; + modules = ["${hosts}/ooksmicro"] ++ workstation; }; ooksx1 = nixosSystem { inherit specialArgs; system = "x86_64-linux"; - modules = [ "${hosts}/ooksx1" ] ++ workstation; + modules = ["${hosts}/ooksx1"] ++ workstation; }; } diff --git a/outputs/overlays/default.nix b/outputs/overlays/default.nix index 15d17c6..e2c6223 100644 --- a/outputs/overlays/default.nix +++ b/outputs/overlays/default.nix @@ -1,26 +1,29 @@ -{ inputs, ... }: -{ +{inputs, ...}: { # For every flake input, aliases 'pkgs.inputs.${flake}' to # 'inputs.${flake}.packages.${pkgs.system}' or # 'inputs.${flake}.legacyPackages.${pkgs.system}' flake-inputs = final: _: { - inputs = builtins.mapAttrs - (_: flake: let - legacyPackages = ((flake.legacyPackages or {}).${final.system} or {}); - packages = ((flake.packages or {}).${final.system} or {}); - in - if legacyPackages != {} then legacyPackages else packages + inputs = + builtins.mapAttrs + ( + _: flake: let + legacyPackages = (flake.legacyPackages or {}).${final.system} or {}; + packages = (flake.packages or {}).${final.system} or {}; + in + if legacyPackages != {} + then legacyPackages + else packages ) inputs; }; zjstatus = _final: prev: { zjstatus = inputs.zjstatus.packages.${prev.system}.default; - }; + }; # waybar = final: prev: { # waybar = inputs.nixpkgs-wayland.packages.${prev.system}.waybar; # }; - additions = final: _prev: import ../pkgs { pkgs = final; }; + additions = final: _prev: import ../pkgs {pkgs = final;}; } diff --git a/outputs/pkgs/default.nix b/outputs/pkgs/default.nix index 2f09652..5684a70 100644 --- a/outputs/pkgs/default.nix +++ b/outputs/pkgs/default.nix @@ -1,6 +1,6 @@ -{ - perSystem = { pkgs, ... }: { - packages = { +{ + perSystem = {pkgs, ...}: { + packages = { live-buds-cli = pkgs.callPackage ./live-buds-cli {}; }; }; diff --git a/outputs/pkgs/live-buds-cli/default.nix b/outputs/pkgs/live-buds-cli/default.nix index f47931c..b2546ad 100644 --- a/outputs/pkgs/live-buds-cli/default.nix +++ b/outputs/pkgs/live-buds-cli/default.nix @@ -1,5 +1,12 @@ -{ lib, rustPlatform, fetchFromGitHub, pkg-config, dbus, libpulseaudio, bluez }: - +{ + lib, + rustPlatform, + fetchFromGitHub, + pkg-config, + dbus, + libpulseaudio, + bluez, +}: rustPlatform.buildRustPackage rec { pname = "live-buds-cli"; version = "0.1.9"; @@ -9,13 +16,12 @@ rustPlatform.buildRustPackage rec { repo = "LiveBudsCli"; rev = "v${version}"; sha256 = "A4XQiJrk4ehb6+935L2JFOeAhUJ7bdukV5mL0Jxn0sQ="; - }; cargoSha256 = "w/dt7Q9TACw5N/+QNAKMUEngf8sAhWyGslnw3B16crQ="; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ libpulseaudio bluez dbus ]; + nativeBuildInputs = [pkg-config]; + buildInputs = [libpulseaudio bluez dbus]; meta = with lib; { description = "A free cli tool to control your Galaxy buds live, Galaxy Buds+, Galaxy Buds Pro, Galaxy Buds 2 and Galaxy Buds 2 Pro"; diff --git a/outputs/sshKeys.nix b/outputs/sshKeys.nix index 7b3ffa9..c302f54 100644 --- a/outputs/sshKeys.nix +++ b/outputs/sshKeys.nix @@ -1,9 +1,7 @@ let sshKeys = import ../secrets/keys.nix; -in - -{ - perSystem = { ... }: { +in { + perSystem = {...}: { imports = [ { _module.args.keys = sshKeys; diff --git a/secrets/keys.nix b/secrets/keys.nix index 1e90f02..a3cf90f 100644 --- a/secrets/keys.nix +++ b/secrets/keys.nix @@ -20,8 +20,6 @@ let hosts.ooksmicro hosts.ooksx1 ]; -in - -{ +in { inherit users hosts workstations; } diff --git a/secrets/secrets.nix b/secrets/secrets.nix index 37c2ce5..3cf98f6 100644 --- a/secrets/secrets.nix +++ b/secrets/secrets.nix @@ -1,9 +1,7 @@ let keys = import ./keys.nix; inherit (keys) users workstations; -in - -{ - "tailscale-auth.age".publicKeys = [ users.ooks] ++ workstations; - "github_key.age".publicKeys = [ users.ooks ] ++ workstations; +in { + "tailscale-auth.age".publicKeys = [users.ooks] ++ workstations; + "github_key.age".publicKeys = [users.ooks] ++ workstations; }