diff --git a/flake.lock b/flake.lock index c8ed260..6fbda7f 100644 --- a/flake.lock +++ b/flake.lock @@ -1,18 +1,144 @@ { "nodes": { - "base16-schemes": { + "aquamarine": { + "inputs": { + "hyprutils": [ + "hyprland", + "hyprutils" + ], + "hyprwayland-scanner": [ + "hyprland", + "hyprwayland-scanner" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1729527199, + "narHash": "sha256-D5/YksfRga8Akd04ZtIkuYSIOjXVrAzQIQBSeplokzU=", + "owner": "hyprwm", + "repo": "aquamarine", + "rev": "8d732fa8aff8b12ef2b1e2f00fc8153e41312b72", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "aquamarine", + "type": "github" + } + }, + "base16": { + "inputs": { + "fromYaml": "fromYaml" + }, + "locked": { + "lastModified": 1708890466, + "narHash": "sha256-LlrC09LoPi8OPYOGPXegD72v+//VapgAqhbOFS3i8sc=", + "owner": "SenchoPens", + "repo": "base16.nix", + "rev": "665b3c6748534eb766c777298721cece9453fdae", + "type": "github" + }, + "original": { + "owner": "SenchoPens", + "repo": "base16.nix", + "type": "github" + } + }, + "base16-fish": { "flake": false, "locked": { - "lastModified": 1696158499, - "narHash": "sha256-5yIHgDTPjoX/3oDEfLSQ0eJZdFL1SaCfb9d6M0RmOTM=", + "lastModified": 1622559957, + "narHash": "sha256-PebymhVYbL8trDVVXxCvZgc0S5VxI7I1Hv4RMSquTpA=", + "owner": "tomyun", + "repo": "base16-fish", + "rev": "2f6dd973a9075dabccd26f1cded09508180bf5fe", + "type": "github" + }, + "original": { + "owner": "tomyun", + "repo": "base16-fish", + "type": "github" + } + }, + "base16-helix": { + "flake": false, + "locked": { + "lastModified": 1725860795, + "narHash": "sha256-Z2o8VBPW3I+KKTSfe25kskz0EUj7MpUh8u355Z1nVsU=", "owner": "tinted-theming", - "repo": "base16-schemes", - "rev": "a9112eaae86d9dd8ee6bb9445b664fba2f94037a", + "repo": "base16-helix", + "rev": "7f795bf75d38e0eea9fed287264067ca187b88a9", "type": "github" }, "original": { "owner": "tinted-theming", - "repo": "base16-schemes", + "repo": "base16-helix", + "type": "github" + } + }, + "base16-vim": { + "flake": false, + "locked": { + "lastModified": 1716150083, + "narHash": "sha256-ZMhnNmw34ogE5rJZrjRv5MtG3WaqKd60ds2VXvT6hEc=", + "owner": "tinted-theming", + "repo": "base16-vim", + "rev": "6e955d704d046b0dc3e5c2d68a2a6eeffd2b5d3d", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "base16-vim", + "type": "github" + } + }, + "chaotic": { + "inputs": { + "flake-schemas": "flake-schemas", + "home-manager": "home-manager", + "jovian": "jovian", + "nixpkgs": "nixpkgs" + }, + "locked": { + "lastModified": 1730555728, + "narHash": "sha256-jBr4WUPat+R/79DBdk85hKyqDfoJII4Z+V+GoevYNDY=", + "owner": "chaotic-cx", + "repo": "nyx", + "rev": "e734744bc2e9ca9aa577555bf028c5ea51eb5f77", + "type": "github" + }, + "original": { + "owner": "chaotic-cx", + "ref": "nyxpkgs-unstable", + "repo": "nyx", + "type": "github" + } + }, + "crane": { + "inputs": { + "nixpkgs": [ + "lanzaboote", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1717535930, + "narHash": "sha256-1hZ/txnbd/RmiBPNUs7i8UQw2N89uAK3UzrGAWdnFfU=", + "owner": "ipetkov", + "repo": "crane", + "rev": "55e7754ec31dac78980c8be45f8a28e80e370946", + "type": "github" + }, + "original": { + "owner": "ipetkov", + "repo": "crane", "type": "github" } }, @@ -48,19 +174,51 @@ "type": "github" } }, + "flake-compat_3": { + "flake": false, + "locked": { + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_4": { + "flake": false, + "locked": { + "lastModified": 1673956053, + "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, "flake-parts": { "inputs": { "nixpkgs-lib": [ - "neovim-nightly-overlay", + "lanzaboote", "nixpkgs" ] }, "locked": { - "lastModified": 1712014858, - "narHash": "sha256-sB4SWl2lX95bExY2gMFG5HIzvva5AVMJd4Igm+GpZNw=", + "lastModified": 1717285511, + "narHash": "sha256-iKzJcpdXih14qYVcZ9QC9XuZYnPc6T8YImb6dX166kw=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "9126214d0a59633752a136528f5f3b9aa8565b7d", + "rev": "2a55567fcf15b1b1c7ed712a2c6fadaec7412ea8", "type": "github" }, "original": { @@ -69,30 +227,23 @@ "type": "github" } }, - "flake-parts_2": { - "inputs": { - "nixpkgs-lib": [ - "neovim-nightly-overlay", - "hercules-ci-effects", - "nixpkgs" - ] - }, + "flake-schemas": { "locked": { - "lastModified": 1709336216, - "narHash": "sha256-Dt/wOWeW6Sqm11Yh+2+t0dfEWxoMxGBvv3JpIocFl9E=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "f7b3c975cf067e56e7cda6cb098ebe3fb4d74ca2", - "type": "github" + "lastModified": 1721999734, + "narHash": "sha256-G5CxYeJVm4lcEtaO87LKzOsVnWeTcHGKbKxNamNWgOw=", + "rev": "0a5c42297d870156d9c57d8f99e476b738dcd982", + "revCount": 75, + "type": "tarball", + "url": "https://api.flakehub.com/f/pinned/DeterminateSystems/flake-schemas/0.1.5/0190ef2f-61e0-794b-ba14-e82f225e55e6/source.tar.gz" }, "original": { - "id": "flake-parts", - "type": "indirect" + "type": "tarball", + "url": "https://flakehub.com/f/DeterminateSystems/flake-schemas/%3D0.1.5.tar.gz" } }, "flake-utils": { "inputs": { - "systems": "systems_2" + "systems": "systems_5" }, "locked": { "lastModified": 1710146030, @@ -108,45 +259,140 @@ "type": "github" } }, - "hercules-ci-effects": { + "flake-utils_2": { + "inputs": { + "systems": [ + "stylix", + "systems" + ] + }, + "locked": { + "lastModified": 1710146030, + "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "fromYaml": { + "flake": false, + "locked": { + "lastModified": 1689549921, + "narHash": "sha256-iX0pk/uB019TdBGlaJEWvBCfydT6sRq+eDcGPifVsCM=", + "owner": "SenchoPens", + "repo": "fromYaml", + "rev": "11fbbbfb32e3289d3c631e0134a23854e7865c84", + "type": "github" + }, + "original": { + "owner": "SenchoPens", + "repo": "fromYaml", + "type": "github" + } + }, + "gitignore": { "inputs": { - "flake-parts": "flake-parts_2", "nixpkgs": [ - "neovim-nightly-overlay", + "hyprland", + "pre-commit-hooks", "nixpkgs" ] }, "locked": { - "lastModified": 1710478346, - "narHash": "sha256-Xjf8BdnQG0tLhPMlqQdwCIjOp7Teox0DP3N/jjyiGM4=", + "lastModified": 1709087332, + "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", "owner": "hercules-ci", - "repo": "hercules-ci-effects", - "rev": "64e7763d72c1e4c1e5e6472640615b6ae2d40fbf", + "repo": "gitignore.nix", + "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", "type": "github" }, "original": { "owner": "hercules-ci", - "repo": "hercules-ci-effects", + "repo": "gitignore.nix", + "type": "github" + } + }, + "gnome-shell": { + "flake": false, + "locked": { + "lastModified": 1713702291, + "narHash": "sha256-zYP1ehjtcV8fo+c+JFfkAqktZ384Y+y779fzmR9lQAU=", + "owner": "GNOME", + "repo": "gnome-shell", + "rev": "0d0aadf013f78a7f7f1dc984d0d812971864b934", + "type": "github" + }, + "original": { + "owner": "GNOME", + "ref": "46.1", + "repo": "gnome-shell", "type": "github" } }, "home-manager": { "inputs": { "nixpkgs": [ + "chaotic", "nixpkgs" ] }, "locked": { - "lastModified": 1712386041, - "narHash": "sha256-dA82pOMQNnCJMAsPG7AXG35VmCSMZsJHTFlTHizpKWQ=", + "lastModified": 1730016908, + "narHash": "sha256-bFCxJco7d8IgmjfNExNz9knP8wvwbXU4s/d53KOK6U0=", "owner": "nix-community", "repo": "home-manager", - "rev": "d6bb9f934f2870e5cbc5b94c79e9db22246141ff", + "rev": "e83414058edd339148dc142a8437edb9450574c8", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, + "home-manager_2": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1730633670, + "narHash": "sha256-ZFJqIXpvVKvzOVFKWNRDyIyAo+GYdmEPaYi1bZB6uf0=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "8f6ca7855d409aeebe2a582c6fd6b6a8d0bf5661", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, + "home-manager_3": { + "inputs": { + "nixpkgs": [ + "stylix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1724435763, + "narHash": "sha256-UNky3lJNGQtUEXT2OY8gMxejakSWPTfWKvpFkpFlAfM=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "c2cd2a52e02f1dfa1c88f95abeb89298d46023be", "type": "github" }, "original": { "owner": "nix-community", - "ref": "release-23.11", "repo": "home-manager", "type": "github" } @@ -167,11 +413,11 @@ ] }, "locked": { - "lastModified": 1713214463, - "narHash": "sha256-zAOOjqHAbccCRgJSuvTCA0FNLqKswN63LgVo43R7pxw=", + "lastModified": 1728669738, + "narHash": "sha256-EDNAU9AYcx8OupUzbTbWE1d3HYdeG0wO6Msg3iL1muk=", "owner": "hyprwm", "repo": "hyprcursor", - "rev": "0a53b9957f0b17f1a0036b25198f569969ad43a0", + "rev": "0264e698149fcb857a66a53018157b41f8d97bb0", "type": "github" }, "original": { @@ -182,53 +428,31 @@ }, "hyprland": { "inputs": { + "aquamarine": "aquamarine", "hyprcursor": "hyprcursor", "hyprland-protocols": "hyprland-protocols", "hyprlang": "hyprlang", - "nixpkgs": [ - "nixpkgs" - ], + "hyprutils": "hyprutils", + "hyprwayland-scanner": "hyprwayland-scanner", + "nixpkgs": "nixpkgs_2", + "pre-commit-hooks": "pre-commit-hooks", "systems": "systems", - "wlroots": "wlroots", "xdph": "xdph" }, "locked": { - "lastModified": 1713376910, - "narHash": "sha256-6cvw+CxacXe+l8/mZ1+ih21vLHvhIC+Erc7LQF0dyrQ=", - "owner": "hyprwm", - "repo": "hyprland", - "rev": "82222342f10a7eff0ec9be972153e740d0f95213", - "type": "github" + "lastModified": 1730652188, + "narHash": "sha256-3L+Jh3J3JvJPsGTqSOIKjwZy/AysR0WOLgGKNkXFqxs=", + "ref": "refs/heads/main", + "rev": "cd0d0491261728260de3d1aff150e1b6c05f9e86", + "revCount": 5407, + "submodules": true, + "type": "git", + "url": "https://github.com/hyprwm/Hyprland" }, "original": { - "owner": "hyprwm", - "repo": "hyprland", - "type": "github" - } - }, - "hyprland-plugins": { - "inputs": { - "hyprland": [ - "hyprland" - ], - "systems": [ - "hyprland-plugins", - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1713283897, - "narHash": "sha256-/0OPK/bDr8/Lf7r8kzDD/yP1kySbJ8gPmV3CdUbVTFM=", - "owner": "hyprwm", - "repo": "hyprland-plugins", - "rev": "00d147d7f6ad2ecfbf75efe4a8402723c72edd98", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprland-plugins", - "type": "github" + "submodules": true, + "type": "git", + "url": "https://github.com/hyprwm/Hyprland" } }, "hyprland-protocols": { @@ -243,11 +467,36 @@ ] }, "locked": { - "lastModified": 1691753796, - "narHash": "sha256-zOEwiWoXk3j3+EoF3ySUJmberFewWlagvewDRuWYAso=", + "lastModified": 1728345020, + "narHash": "sha256-xGbkc7U/Roe0/Cv3iKlzijIaFBNguasI31ynL2IlEoM=", "owner": "hyprwm", "repo": "hyprland-protocols", - "rev": "0c2ce70625cb30aef199cb388f99e19a61a6ce03", + "rev": "a7c183800e74f337753de186522b9017a07a8cee", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprland-protocols", + "type": "github" + } + }, + "hyprland-protocols_2": { + "inputs": { + "nixpkgs": [ + "hyprsunset", + "nixpkgs" + ], + "systems": [ + "hyprsunset", + "systems" + ] + }, + "locked": { + "lastModified": 1728345020, + "narHash": "sha256-xGbkc7U/Roe0/Cv3iKlzijIaFBNguasI31ynL2IlEoM=", + "owner": "hyprwm", + "repo": "hyprland-protocols", + "rev": "a7c183800e74f337753de186522b9017a07a8cee", "type": "github" }, "original": { @@ -257,6 +506,97 @@ } }, "hyprlang": { + "inputs": { + "hyprutils": [ + "hyprland", + "hyprutils" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1728168612, + "narHash": "sha256-AnB1KfiXINmuiW7BALYrKqcjCnsLZPifhb/7BsfPbns=", + "owner": "hyprwm", + "repo": "hyprlang", + "rev": "f054f2e44d6a0b74607a6bc0f52dba337a3db38e", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprlang", + "type": "github" + } + }, + "hyprpolkitagent": { + "inputs": { + "hyprutils": "hyprutils_2", + "nixpkgs": "nixpkgs_3", + "systems": "systems_2" + }, + "locked": { + "lastModified": 1730499931, + "narHash": "sha256-ASg3asYfWwKsq9koKld4zicezRdx7PF035GwhzXHvxQ=", + "owner": "hyprwm", + "repo": "hyprpolkitagent", + "rev": "615efd49303cb164bbf4ad065792e02d8f652a36", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprpolkitagent", + "type": "github" + } + }, + "hyprsunset": { + "inputs": { + "hyprland-protocols": "hyprland-protocols_2", + "hyprutils": "hyprutils_3", + "hyprwayland-scanner": "hyprwayland-scanner_2", + "nixpkgs": "nixpkgs_4", + "systems": "systems_3" + }, + "locked": { + "lastModified": 1728415425, + "narHash": "sha256-SVkcePzX9PAlWsPSGBaxiNFCouiQmGOezhMo0+zhDIQ=", + "owner": "hyprwm", + "repo": "hyprsunset", + "rev": "f535c1894d71d7639d19b52f5b72e1ac840c2512", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprsunset", + "type": "github" + } + }, + "hyprsysteminfo": { + "inputs": { + "hyprutils": "hyprutils_4", + "nixpkgs": "nixpkgs_5", + "systems": "systems_4" + }, + "locked": { + "lastModified": 1729184813, + "narHash": "sha256-ARrsIQPFCHWjVl9Sxh8tedIoEsvnV4nORaDmYCyK+kk=", + "owner": "hyprwm", + "repo": "hyprsysteminfo", + "rev": "8b271e2ba39a5a9299e4e7bb60245a71704f5a89", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprsysteminfo", + "type": "github" + } + }, + "hyprutils": { "inputs": { "nixpkgs": [ "hyprland", @@ -268,189 +608,270 @@ ] }, "locked": { - "lastModified": 1713121246, - "narHash": "sha256-502X0Q0fhN6tJK7iEUA8CghONKSatW/Mqj4Wappd++0=", + "lastModified": 1728941256, + "narHash": "sha256-WRypmcZ2Bw94lLmcmxYokVOHPJSZ7T06V49QZ4tkZeQ=", "owner": "hyprwm", - "repo": "hyprlang", - "rev": "78fcaa27ae9e1d782faa3ff06c8ea55ddce63706", + "repo": "hyprutils", + "rev": "fd4be8b9ca932f7384e454bcd923c5451ef2aa85", "type": "github" }, "original": { "owner": "hyprwm", - "repo": "hyprlang", + "repo": "hyprutils", "type": "github" } }, - "hyprwm-contrib": { + "hyprutils_2": { "inputs": { "nixpkgs": [ + "hyprpolkitagent", + "nixpkgs" + ], + "systems": [ + "hyprpolkitagent", + "systems" + ] + }, + "locked": { + "lastModified": 1727300645, + "narHash": "sha256-OvAtVLaSRPnbXzOwlR1fVqCXR7i+ICRX3aPMCdIiv+c=", + "owner": "hyprwm", + "repo": "hyprutils", + "rev": "3f5293432b6dc6a99f26aca2eba3876d2660665c", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprutils", + "type": "github" + } + }, + "hyprutils_3": { + "inputs": { + "nixpkgs": [ + "hyprsunset", + "nixpkgs" + ], + "systems": [ + "hyprsunset", + "systems" + ] + }, + "locked": { + "lastModified": 1727300645, + "narHash": "sha256-OvAtVLaSRPnbXzOwlR1fVqCXR7i+ICRX3aPMCdIiv+c=", + "owner": "hyprwm", + "repo": "hyprutils", + "rev": "3f5293432b6dc6a99f26aca2eba3876d2660665c", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprutils", + "type": "github" + } + }, + "hyprutils_4": { + "inputs": { + "nixpkgs": [ + "hyprsysteminfo", + "nixpkgs" + ], + "systems": [ + "hyprsysteminfo", + "systems" + ] + }, + "locked": { + "lastModified": 1727300645, + "narHash": "sha256-OvAtVLaSRPnbXzOwlR1fVqCXR7i+ICRX3aPMCdIiv+c=", + "owner": "hyprwm", + "repo": "hyprutils", + "rev": "3f5293432b6dc6a99f26aca2eba3876d2660665c", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprutils", + "type": "github" + } + }, + "hyprwayland-scanner": { + "inputs": { + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1726874836, + "narHash": "sha256-VKR0sf0PSNCB0wPHVKSAn41mCNVCnegWmgkrneKDhHM=", + "owner": "hyprwm", + "repo": "hyprwayland-scanner", + "rev": "500c81a9e1a76760371049a8d99e008ea77aa59e", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprwayland-scanner", + "type": "github" + } + }, + "hyprwayland-scanner_2": { + "inputs": { + "nixpkgs": [ + "hyprsunset", + "nixpkgs" + ], + "systems": [ + "hyprsunset", + "systems" + ] + }, + "locked": { + "lastModified": 1726874836, + "narHash": "sha256-VKR0sf0PSNCB0wPHVKSAn41mCNVCnegWmgkrneKDhHM=", + "owner": "hyprwm", + "repo": "hyprwayland-scanner", + "rev": "500c81a9e1a76760371049a8d99e008ea77aa59e", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprwayland-scanner", + "type": "github" + } + }, + "jovian": { + "inputs": { + "nix-github-actions": "nix-github-actions", + "nixpkgs": [ + "chaotic", "nixpkgs" ] }, "locked": { - "lastModified": 1712505318, - "narHash": "sha256-fzlBLhXUN6y7mzEtcGNRDXxFakBEfaj4Bmj5PuoCNaM=", - "owner": "hyprwm", - "repo": "contrib", - "rev": "5870244b592c22558b658dbaf94f9e41afb0316f", + "lastModified": 1730248099, + "narHash": "sha256-Fl7BSdpLk0uTXF6ol/MR0q1EB4XQ8tn0ftig0pyYh5Y=", + "owner": "Jovian-Experiments", + "repo": "Jovian-NixOS", + "rev": "c11bab124fc55a37cbd854ed28ea121ed609231f", "type": "github" }, "original": { - "owner": "hyprwm", - "repo": "contrib", + "owner": "Jovian-Experiments", + "repo": "Jovian-NixOS", "type": "github" } }, - "neovim-flake": { + "lanzaboote": { "inputs": { + "crane": "crane", + "flake-compat": "flake-compat_2", + "flake-parts": "flake-parts", "flake-utils": "flake-utils", "nixpkgs": [ - "neovim-nightly-overlay", + "nixpkgs" + ], + "pre-commit-hooks-nix": [], + "rust-overlay": "rust-overlay" + }, + "locked": { + "lastModified": 1718178907, + "narHash": "sha256-eSZyrQ9uoPB9iPQ8Y5H7gAmAgAvCw3InStmU3oEjqsE=", + "owner": "nix-community", + "repo": "lanzaboote", + "rev": "b627ccd97d0159214cee5c7db1412b75e4be6086", + "type": "github" + }, + "original": { + "owner": "nix-community", + "ref": "v0.4.1", + "repo": "lanzaboote", + "type": "github" + } + }, + "nix-filter": { + "locked": { + "lastModified": 1693833173, + "narHash": "sha256-hlMABKrGbEiJD5dwUSfnw1CQ3bG7KKwDV+Nx3bEZd7U=", + "owner": "numtide", + "repo": "nix-filter", + "rev": "ac030bd9ba98e318e1f4c4328d60766ade8ebe8b", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "nix-filter", + "type": "github" + } + }, + "nix-github-actions": { + "inputs": { + "nixpkgs": [ + "chaotic", + "jovian", "nixpkgs" ] }, "locked": { - "dir": "contrib", - "lastModified": 1713650988, - "narHash": "sha256-YAbwiZkKxpbM+fdTVcXmp49XtHMDYQNng/wc9L85eZs=", - "owner": "neovim", - "repo": "neovim", - "rev": "9e1bbb9813e0ea4e37f6325fe00e8f43617ef912", + "lastModified": 1729697500, + "narHash": "sha256-VFTWrbzDlZyFHHb1AlKRiD/qqCJIripXKiCSFS8fAOY=", + "owner": "zhaofengli", + "repo": "nix-github-actions", + "rev": "e418aeb728b6aa5ca8c5c71974e7159c2df1d8cf", "type": "github" }, "original": { - "dir": "contrib", - "owner": "neovim", - "repo": "neovim", - "type": "github" - } - }, - "neovim-nightly-overlay": { - "inputs": { - "flake-compat": "flake-compat", - "flake-parts": "flake-parts", - "hercules-ci-effects": "hercules-ci-effects", - "neovim-flake": "neovim-flake", - "nixpkgs": "nixpkgs" - }, - "locked": { - "lastModified": 1713657840, - "narHash": "sha256-O99sOWro/5J4qWyIFZ3vEw+abLnzOv4jrfA7FaRoyrI=", - "owner": "nix-community", - "repo": "neovim-nightly-overlay", - "rev": "3ad9c1eae733e9ba5cc73c6833e3d62dbc12df9e", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "neovim-nightly-overlay", - "type": "github" - } - }, - "neovim-src": { - "flake": false, - "locked": { - "lastModified": 1713716176, - "narHash": "sha256-RXKbZ40QQ1IvksBIRAmj9uWgHkGvER2dlpZVEBeaMnI=", - "owner": "neovim", - "repo": "neovim", - "rev": "f694d020c576fb037eb92bae3bbf03a69d8686b6", - "type": "github" - }, - "original": { - "owner": "neovim", - "ref": "f694d020c576fb037eb92bae3bbf03a69d8686b6", - "repo": "neovim", - "type": "github" - } - }, - "nix-colors": { - "inputs": { - "base16-schemes": "base16-schemes", - "nixpkgs-lib": "nixpkgs-lib" - }, - "locked": { - "lastModified": 1707825078, - "narHash": "sha256-hTfge2J2W+42SZ7VHXkf4kjU+qzFqPeC9k66jAUBMHk=", - "owner": "misterio77", - "repo": "nix-colors", - "rev": "b01f024090d2c4fc3152cd0cf12027a7b8453ba1", - "type": "github" - }, - "original": { - "owner": "misterio77", - "repo": "nix-colors", + "owner": "zhaofengli", + "ref": "matrix-name", + "repo": "nix-github-actions", "type": "github" } }, "nixpkgs": { "locked": { - "lastModified": 1713596654, - "narHash": "sha256-LJbHQQ5aX1LVth2ST+Kkse/DRzgxlVhTL1rxthvyhZc=", + "lastModified": 1730200266, + "narHash": "sha256-l253w0XMT8nWHGXuXqyiIC/bMvh1VRszGXgdpQlfhvU=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "fd16bb6d3bcca96039b11aa52038fafeb6e4f4be", + "rev": "807e9154dcb16384b1b765ebe9cd2bba2ac287fd", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-lib": { - "locked": { - "lastModified": 1697935651, - "narHash": "sha256-qOfWjQ2JQSQL15KLh6D7xQhx0qgZlYZTYlcEiRuAMMw=", - "owner": "nix-community", - "repo": "nixpkgs.lib", - "rev": "e1e11fdbb01113d85c7f41cada9d2847660e3902", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "nixpkgs.lib", - "type": "github" - } - }, - "nixpkgs-unstable": { - "locked": { - "lastModified": 1713248628, - "narHash": "sha256-NLznXB5AOnniUtZsyy/aPWOk8ussTuePp2acb9U+ISA=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "5672bc9dbf9d88246ddab5ac454e82318d094bb8", - "type": "github" - }, - "original": { - "id": "nixpkgs", "ref": "nixos-unstable", - "type": "indirect" + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-stable": { + "locked": { + "lastModified": 1720386169, + "narHash": "sha256-NGKVY4PjzwAa4upkGtAMz1npHGoRzWotlSnVlqI40mo=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "194846768975b7ad2c4988bdb82572c00222c0d7", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-24.05", + "repo": "nixpkgs", + "type": "github" } }, "nixpkgs_2": { "locked": { - "lastModified": 1713995372, - "narHash": "sha256-fFE3M0vCoiSwCX02z8VF58jXFRj9enYUSTqjyHAjrds=", + "lastModified": 1730531603, + "narHash": "sha256-Dqg6si5CqIzm87sp57j5nTaeBbWhHFaVyG7V6L8k3lY=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "dd37924974b9202f8226ed5d74a252a9785aedf8", - "type": "github" - }, - "original": { - "id": "nixpkgs", - "ref": "nixos-23.11", - "type": "indirect" - } - }, - "nixpkgs_3": { - "locked": { - "lastModified": 1713895582, - "narHash": "sha256-cfh1hi+6muQMbi9acOlju3V1gl8BEaZBXBR9jQfQi4U=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "572af610f6151fd41c212f897c71f7056e3fb518", + "rev": "7ffd9ae656aec493492b44d0ddfb28e79a1ea25d", "type": "github" }, "original": { @@ -460,37 +881,205 @@ "type": "github" } }, - "nvim-flake": { - "inputs": { - "flake-compat": "flake-compat_2", - "neovim-src": "neovim-src", - "nixpkgs": "nixpkgs_3" - }, + "nixpkgs_3": { "locked": { - "lastModified": 1714040289, - "narHash": "sha256-DZJCNtoGOxnNT7y3rXXqzRaQfilQPGJpkmcAEkc14Tk=", - "owner": "Gerg-L", - "repo": "nvim-flake", - "rev": "0d64affe1e384b1a90043a3cb7fb050d78e9434b", + "lastModified": 1728492678, + "narHash": "sha256-9UTxR8eukdg+XZeHgxW5hQA9fIKHsKCdOIUycTryeVw=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "5633bcff0c6162b9e4b5f1264264611e950c8ec7", "type": "github" }, "original": { - "owner": "Gerg-L", - "repo": "nvim-flake", + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_4": { + "locked": { + "lastModified": 1728241625, + "narHash": "sha256-yumd4fBc/hi8a9QgA9IT8vlQuLZ2oqhkJXHPKxH/tRw=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "c31898adf5a8ed202ce5bea9f347b1c6871f32d1", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_5": { + "locked": { + "lastModified": 1728492678, + "narHash": "sha256-9UTxR8eukdg+XZeHgxW5hQA9fIKHsKCdOIUycTryeVw=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "5633bcff0c6162b9e4b5f1264264611e950c8ec7", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_6": { + "locked": { + "lastModified": 1730531603, + "narHash": "sha256-Dqg6si5CqIzm87sp57j5nTaeBbWhHFaVyG7V6L8k3lY=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "7ffd9ae656aec493492b44d0ddfb28e79a1ea25d", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "ref": "nixos-unstable", + "type": "indirect" + } + }, + "pre-commit-hooks": { + "inputs": { + "flake-compat": "flake-compat", + "gitignore": "gitignore", + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "nixpkgs-stable": "nixpkgs-stable" + }, + "locked": { + "lastModified": 1729104314, + "narHash": "sha256-pZRZsq5oCdJt3upZIU4aslS9XwFJ+/nVtALHIciX/BI=", + "owner": "cachix", + "repo": "git-hooks.nix", + "rev": "3c3e88f0f544d6bb54329832616af7eb971b6be6", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "git-hooks.nix", "type": "github" } }, "root": { "inputs": { - "home-manager": "home-manager", + "chaotic": "chaotic", + "home-manager": "home-manager_2", "hyprland": "hyprland", - "hyprland-plugins": "hyprland-plugins", - "hyprwm-contrib": "hyprwm-contrib", - "neovim-nightly-overlay": "neovim-nightly-overlay", - "nix-colors": "nix-colors", - "nixpkgs": "nixpkgs_2", - "nixpkgs-unstable": "nixpkgs-unstable", - "nvim-flake": "nvim-flake" + "hyprpolkitagent": "hyprpolkitagent", + "hyprsunset": "hyprsunset", + "hyprsysteminfo": "hyprsysteminfo", + "lanzaboote": "lanzaboote", + "nixpkgs": "nixpkgs_6", + "spicetify-nix": "spicetify-nix", + "split-monitor-workspaces": "split-monitor-workspaces", + "stylix": "stylix" + } + }, + "rust-overlay": { + "inputs": { + "flake-utils": [ + "lanzaboote", + "flake-utils" + ], + "nixpkgs": [ + "lanzaboote", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1717813066, + "narHash": "sha256-wqbRwq3i7g5EHIui0bIi84mdqZ/It1AXBSLJ5tafD28=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "6dc3e45fe4aee36efeed24d64fc68b1f989d5465", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" + } + }, + "spicetify-nix": { + "inputs": { + "flake-compat": "flake-compat_3", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1730607408, + "narHash": "sha256-ae8GwT8uvakniK7izEPYypuBA0RHBmehVziIit3BxH0=", + "owner": "Gerg-L", + "repo": "spicetify-nix", + "rev": "c29215e233ddd504d670d432095fbba7e541b880", + "type": "github" + }, + "original": { + "owner": "Gerg-L", + "repo": "spicetify-nix", + "type": "github" + } + }, + "split-monitor-workspaces": { + "inputs": { + "hyprland": [ + "hyprland" + ], + "nix-filter": "nix-filter" + }, + "locked": { + "lastModified": 1729443896, + "narHash": "sha256-T9NTy1oGLv4FGHXK501OS6bSDfvAsyIGuoiJBAo+3IU=", + "owner": "Duckonaut", + "repo": "split-monitor-workspaces", + "rev": "131bc5bd02d7f558a66d1a6c4d0013d8545823e0", + "type": "github" + }, + "original": { + "owner": "Duckonaut", + "repo": "split-monitor-workspaces", + "type": "github" + } + }, + "stylix": { + "inputs": { + "base16": "base16", + "base16-fish": "base16-fish", + "base16-helix": "base16-helix", + "base16-vim": "base16-vim", + "flake-compat": "flake-compat_4", + "flake-utils": "flake-utils_2", + "gnome-shell": "gnome-shell", + "home-manager": "home-manager_3", + "nixpkgs": [ + "nixpkgs" + ], + "systems": "systems_6", + "tinted-foot": "tinted-foot", + "tinted-kitty": "tinted-kitty", + "tinted-tmux": "tinted-tmux" + }, + "locked": { + "lastModified": 1729963473, + "narHash": "sha256-uGjTjvvlGQfQ0yypVP+at0NizI2nrb6kz4wGAqzRGbY=", + "owner": "danth", + "repo": "stylix", + "rev": "04afcfc0684d9bbb24bb1dc77afda7c1843ec93b", + "type": "github" + }, + "original": { + "owner": "danth", + "repo": "stylix", + "type": "github" } }, "systems": { @@ -509,6 +1098,51 @@ } }, "systems_2": { + "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_3": { + "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_4": { + "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_5": { "locked": { "lastModified": 1681028828, "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", @@ -523,20 +1157,67 @@ "type": "github" } }, - "wlroots": { - "flake": false, + "systems_6": { "locked": { - "lastModified": 1713124002, - "narHash": "sha256-vPeZCY+sdiGsz4fl3AVVujfyZyQBz6+vZdkUE4hQ+HI=", - "owner": "hyprwm", - "repo": "wlroots-hyprland", - "rev": "611a4f24cd2384378f6e500253983107c6656c64", + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", "type": "github" }, "original": { - "owner": "hyprwm", - "repo": "wlroots-hyprland", - "rev": "611a4f24cd2384378f6e500253983107c6656c64", + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "tinted-foot": { + "flake": false, + "locked": { + "lastModified": 1696725948, + "narHash": "sha256-65bz2bUL/yzZ1c8/GQASnoiGwaF8DczlxJtzik1c0AU=", + "owner": "tinted-theming", + "repo": "tinted-foot", + "rev": "eedbcfa30de0a4baa03e99f5e3ceb5535c2755ce", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "tinted-foot", + "type": "github" + } + }, + "tinted-kitty": { + "flake": false, + "locked": { + "lastModified": 1716423189, + "narHash": "sha256-2xF3sH7UIwegn+2gKzMpFi3pk5DlIlM18+vj17Uf82U=", + "owner": "tinted-theming", + "repo": "tinted-kitty", + "rev": "eb39e141db14baef052893285df9f266df041ff8", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "tinted-kitty", + "rev": "eb39e141db14baef052893285df9f266df041ff8", + "type": "github" + } + }, + "tinted-tmux": { + "flake": false, + "locked": { + "lastModified": 1696725902, + "narHash": "sha256-wDPg5elZPcQpu7Df0lI5O8Jv4A3T6jUQIVg63KDU+3Q=", + "owner": "tinted-theming", + "repo": "tinted-tmux", + "rev": "c02050bebb60dbb20cb433cd4d8ce668ecc11ba7", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "tinted-tmux", "type": "github" } }, @@ -550,6 +1231,14 @@ "hyprland", "hyprlang" ], + "hyprutils": [ + "hyprland", + "hyprutils" + ], + "hyprwayland-scanner": [ + "hyprland", + "hyprwayland-scanner" + ], "nixpkgs": [ "hyprland", "nixpkgs" @@ -560,11 +1249,11 @@ ] }, "locked": { - "lastModified": 1713214484, - "narHash": "sha256-h1bSIsDuPk1FGgvTuSHJyiU2Glu7oAyoPMJutKZmLQ8=", + "lastModified": 1730187742, + "narHash": "sha256-M0umGIIvVFqCwA0fQ5edivMTbRYA0r/5tXK8sr+M7EA=", "owner": "hyprwm", "repo": "xdg-desktop-portal-hyprland", - "rev": "bb44921534a9cee9635304fdb876c1b3ec3a8f61", + "rev": "998f646762b94fbac61b0271ce66d3e617262858", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index c4ec8a3..8788c79 100644 --- a/flake.nix +++ b/flake.nix @@ -2,121 +2,74 @@ description = "Mike's Flake"; inputs = { - # Nixpkgs - nixpkgs.url = "nixpkgs/nixos-23.11"; - # You can access packages and modules from different nixpkgs revs - # at the same time. Here's an working example: - nixpkgs-unstable.url = "nixpkgs/nixos-unstable"; - # Also see the 'unstable-packages' overlay at 'overlays/default.nix'. + nixpkgs.url = "nixpkgs/nixos-unstable"; + chaotic.url = "github:chaotic-cx/nyx/nyxpkgs-unstable"; - # Home manager - home-manager = { - url = "github:nix-community/home-manager/release-23.11"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - - # TODO: Add any other flake you might need - # hardware.url = "github:nixos/nixos-hardware"; - - # Shameless plug: looking for a way to nixify your themes and make - # everything match nicely? Try nix-colors! - nix-colors.url = "github:misterio77/nix-colors"; - - neovim-nightly-overlay.url = "github:nix-community/neovim-nightly-overlay"; - - nvim-flake = { - url = "github:Gerg-L/nvim-flake"; - }; + hyprsunset.url = "github:hyprwm/hyprsunset"; + hyprsysteminfo.url = "github:/hyprwm/hyprsysteminfo"; + hyprpolkitagent.url = "github:hyprwm/hyprpolkitagent"; hyprland = { - url = "github:hyprwm/hyprland"; + type = "git"; + url = "https://github.com/hyprwm/Hyprland"; + submodules = true; + }; + + split-monitor-workspaces = { + url = "github:Duckonaut/split-monitor-workspaces"; + inputs.hyprland.follows = "hyprland"; # <- make sure this line is present for the plugin to work as intended + }; + + lanzaboote = { + url = "github:nix-community/lanzaboote/v0.4.1"; + inputs.nixpkgs.follows = "nixpkgs"; + inputs.pre-commit-hooks-nix.follows = ""; + }; + + home-manager = { + url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; - hyprwm-contrib = { - url = "github:hyprwm/contrib"; + spicetify-nix = { + url = "github:Gerg-L/spicetify-nix"; inputs.nixpkgs.follows = "nixpkgs"; }; - hyprland-plugins = { - url = "github:hyprwm/hyprland-plugins"; - inputs.hyprland.follows = "hyprland"; + stylix = { + url = "github:danth/stylix"; + inputs.nixpkgs.follows = "nixpkgs"; }; }; - outputs = { - self, - nixpkgs, - nixpkgs-unstable, - home-manager, - ... - } @ inputs: let - inherit (self) outputs; - # Supported systems for your flake packages, shell, etc. - systems = [ - "aarch64-linux" - "i686-linux" - "x86_64-linux" - "aarch64-darwin" - "x86_64-darwin" - ]; - # This is a function that generates an attribute by calling a function you - # pass to it, with each system as an argument - forAllSystems = nixpkgs.lib.genAttrs systems; - in { - # Your custom packages - # Accessible through 'nix build', 'nix shell', etc - # packages = forAllSystems (system: import ./pkgs nixpkgs.legacyPackages.${system}); - # Formatter for your nix files, available through 'nix fmt' - # Other options beside 'alejandra' include 'nixpkgs-fmt' - formatter = forAllSystems (system: nixpkgs.legacyPackages.${system}.alejandra); + outputs = { nixpkgs, ... } @inputs: { - # Your custom packages and modifications, exported as overlays - overlays = import ./overlays {inherit inputs;}; - # Reusable nixos modules you might want to export - # These are usually stuff you would upstream into nixpkgs - nixosModules = import ./modules/nixos; - # Reusable home-manager modules you might want to export - # These are usually stuff you would upstream into home-manager - homeManagerModules = import ./modules/home-manager; - - # NixOS configuration entrypoint - # Available through 'nixos-rebuild --flake .#hostname' nixosConfigurations = { zion = nixpkgs.lib.nixosSystem { - specialArgs = {inherit inputs outputs;}; - modules = [ - # > Main NixOS configuration file < - ./hosts/zion/configuration.nix - ]; + modules = [ ./hosts ]; + specialArgs = { + inherit inputs; + username = "mike"; + hostname = "zion"; + }; }; - thor = nixpkgs.lib.nixosSystem { - specialArgs = {inherit inputs outputs;}; - modules = [ - # > Main NixOS configuration file < - ./hosts/thor/configuration.nix - ]; - }; - }; - # Standalone home-manager configuration entrypoint - # Available through 'home-manager --flake .#username@hostname' - homeConfigurations = { - "mike@zion" = home-manager.lib.homeManagerConfiguration { - pkgs = nixpkgs.legacyPackages.x86_64-linux; # home-manager requires 'pkgs' instance - extraSpecialArgs = {inherit inputs outputs;}; - modules = [ - # > Main home-manager configuration file < - ./home-manager/home.nix - ]; + thor = nixpkgs.lib.nixosSystem { + modules = [ ./hosts ]; + specialArgs = { + inherit inputs; + username = "mike"; + hostname = "thor"; + }; }; - "mike@thor" = home-manager.lib.homeManagerConfiguration { - pkgs = nixpkgs.legacyPackages.x86_64-linux; # home-manager requires 'pkgs' instance - extraSpecialArgs = {inherit inputs outputs;}; - modules = [ - # > Main home-manager configuration file < - ./home-manager/home.nix - ]; + + server = nixpkgs.lib.nixosSystem { + modules = [ ./hosts ]; + specialArgs = { + inherit inputs; + username = "mike"; + hostname = "server"; + }; }; }; }; diff --git a/home-manager/features/cli/aliases.nix b/home-manager/features/cli/aliases.nix deleted file mode 100644 index c217366..0000000 --- a/home-manager/features/cli/aliases.nix +++ /dev/null @@ -1,40 +0,0 @@ -{ - myAliases = { - ".." = "cd .."; - "cd.." = "cd .."; - - ls = "command eza"; - grep = "grep --color=auto"; - fgrep = "fgrep --color=auto"; - egrep = "egrep --color=auto"; - - l = "eza -G --icons"; - ll = "eza -l --icons"; - lg = "eza -lG"; - lall = "eza -lahF --icons --git"; - lalg = "eza -laGhF --icons --git"; - latree = "eza -laGghHT --git --icons"; - la = "eza --git --icons -la"; - lsd = "eza -laD"; - - cls = "clear"; - # df="df -ahiT --total"; - userlist = "cut -d: -f1 /etc/passwd"; - free = "free -mt"; - du = "du -ach | sort -h"; - ps = "ps auxf"; - - sudo = "sudo "; - reload = "exec $SHELL -l"; - - xclip = "xclip -selection c"; - - mkdir = "mkdir -pv"; - psmem = "ps -e -orss=,args= | sort -b -k1 -nr"; - psmem10 = "ps -e -orss=,args= | sort -b -k1 -nr | head -10"; - pscpu = "ps -e -o pcpu,cpu,nice,state,cputime,args|sort -k1,1n -nr"; - pscpu10 = "ps -e -o pcpu,cpu,nice,state,cputime,args|sort -k1,1n -nr | head -10"; - - gua = "git remote | xargs -L1 git push --all"; - }; -} diff --git a/home-manager/features/cli/bash.nix b/home-manager/features/cli/bash.nix deleted file mode 100644 index d09973b..0000000 --- a/home-manager/features/cli/bash.nix +++ /dev/null @@ -1,8 +0,0 @@ -let - cli = import ./aliases.nix; -in { - programs.bash = { - enable = true; - shellAliases = cli.myAliases; - }; -} diff --git a/home-manager/features/cli/default.nix b/home-manager/features/cli/default.nix deleted file mode 100644 index 9c08fcb..0000000 --- a/home-manager/features/cli/default.nix +++ /dev/null @@ -1,22 +0,0 @@ -{pkgs, ...}: { - imports = [ - ./bash.nix - ./git.nix - ./zsh - ./gpg.nix - ]; - home.packages = with pkgs; [ - killall - comma - distrobox - bc - bottom - ncdu - ltex-ls - nil - alejandra - timer - jq - diffsitter - ]; -} diff --git a/home-manager/features/cli/git.nix b/home-manager/features/cli/git.nix deleted file mode 100644 index 8071ef9..0000000 --- a/home-manager/features/cli/git.nix +++ /dev/null @@ -1,28 +0,0 @@ -{ - programs.git = { - enable = true; - userName = "Michał Czyż"; - userEmail = "mike@c2yz.com"; - signing = { - key = "78D4829A477DAB25"; - signByDefault = true; - }; - extraConfig = { - push = { - default = "simple"; - }; - rerere = { - enable = true; - }; - column = { - ui = "auto"; - }; - branch = { - sort = "-committerdate"; - }; - init = { - defaultBranch = "main"; - }; - }; - }; -} diff --git a/home-manager/features/cli/gpg.nix b/home-manager/features/cli/gpg.nix deleted file mode 100644 index 6f20cc5..0000000 --- a/home-manager/features/cli/gpg.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ - services.gpg-agent = { - enable = true; - defaultCacheTtl = 1800; - enableSshSupport = true; - }; -} diff --git a/home-manager/features/cli/zsh/default.nix b/home-manager/features/cli/zsh/default.nix deleted file mode 100644 index c9bc39f..0000000 --- a/home-manager/features/cli/zsh/default.nix +++ /dev/null @@ -1,47 +0,0 @@ -{ - config, - pkgs, - ... -}: let - cli = import ../aliases.nix; -in { - home.packages = with pkgs; [ - ]; - - programs.zsh = { - enable = true; - enableCompletion = true; - - history.size = 10000000; - history.path = "${config.xdg.dataHome}/zsh/history"; - - shellAliases = cli.myAliases; - - plugins = [ - { - name = "powerlevel10k"; - src = pkgs.zsh-powerlevel10k; - file = "share/zsh-powerlevel10k/powerlevel10k.zsh-theme"; - } - ]; - - enableAutosuggestions = true; - - syntaxHighlighting = { - enable = true; - }; - - historySubstringSearch = { - enable = true; - }; - - initExtra = '' - [[ ! -f ${./p10k.zsh} ]] || source ${./p10k.zsh} - eval "$(zoxide init --cmd cd zsh)" - if [ -x "$(command -v tmux)" ] && [ -n "$DISPLAY" ] && [ -z "$TMUX" ]; then - # exec tmux new-session -A -s $USER >/dev/null 2>&1 - exec tmux new-session -t $USER >/dev/null 2>&1 | tmux new-session -A -s $USER >/dev/null 2>&1 - fi - ''; - }; -} diff --git a/home-manager/features/cli/zsh/p10k.zsh b/home-manager/features/cli/zsh/p10k.zsh deleted file mode 100644 index 1ff2fce..0000000 --- a/home-manager/features/cli/zsh/p10k.zsh +++ /dev/null @@ -1,1712 +0,0 @@ -# Generated by Powerlevel10k configuration wizard on 2024-04-06 at 22:45 CEST. -# Based on romkatv/powerlevel10k/config/p10k-lean.zsh. -# Wizard options: nerdfont-complete + powerline, small icons, unicode, lean, 12h time, -# 1 line, compact, many icons, fluent, transient_prompt, instant_prompt=verbose. -# Type `p10k configure` to generate another config. -# -# Config for Powerlevel10k with lean prompt style. Type `p10k configure` to generate -# your own config based on it. -# -# Tip: Looking for a nice color? Here's a one-liner to print colormap. -# -# for i in {0..255}; do print -Pn "%K{$i} %k%F{$i}${(l:3::0:)i}%f " ${${(M)$((i%6)):#3}:+$'\n'}; done - -# Temporarily change options. -'builtin' 'local' '-a' 'p10k_config_opts' -[[ ! -o 'aliases' ]] || p10k_config_opts+=('aliases') -[[ ! -o 'sh_glob' ]] || p10k_config_opts+=('sh_glob') -[[ ! -o 'no_brace_expand' ]] || p10k_config_opts+=('no_brace_expand') -'builtin' 'setopt' 'no_aliases' 'no_sh_glob' 'brace_expand' - -() { - emulate -L zsh -o extended_glob - - # Unset all configuration options. This allows you to apply configuration changes without - # restarting zsh. Edit ~/.p10k.zsh and type `source ~/.p10k.zsh`. - unset -m '(POWERLEVEL9K_*|DEFAULT_USER)~POWERLEVEL9K_GITSTATUS_DIR' - - # Zsh >= 5.1 is required. - [[ $ZSH_VERSION == (5.<1->*|<6->.*) ]] || return - - # The list of segments shown on the left. Fill it with the most important segments. - typeset -g POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=( - os_icon # os identifier - dir # current directory - vcs # git status - prompt_char # prompt symbol - ) - - # The list of segments shown on the right. Fill it with less important segments. - # Right prompt on the last prompt line (where you are typing your commands) gets - # automatically hidden when the input line reaches it. Right prompt above the - # last prompt line gets hidden if it would overlap with left prompt. - typeset -g POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=( - status # exit code of the last command - command_execution_time # duration of the last command - background_jobs # presence of background jobs - direnv # direnv status (https://direnv.net/) - asdf # asdf version manager (https://github.com/asdf-vm/asdf) - virtualenv # python virtual environment (https://docs.python.org/3/library/venv.html) - anaconda # conda environment (https://conda.io/) - pyenv # python environment (https://github.com/pyenv/pyenv) - goenv # go environment (https://github.com/syndbg/goenv) - nodenv # node.js version from nodenv (https://github.com/nodenv/nodenv) - nvm # node.js version from nvm (https://github.com/nvm-sh/nvm) - nodeenv # node.js environment (https://github.com/ekalinin/nodeenv) - # node_version # node.js version - # go_version # go version (https://golang.org) - # rust_version # rustc version (https://www.rust-lang.org) - # dotnet_version # .NET version (https://dotnet.microsoft.com) - # php_version # php version (https://www.php.net/) - # laravel_version # laravel php framework version (https://laravel.com/) - # java_version # java version (https://www.java.com/) - # package # name@version from package.json (https://docs.npmjs.com/files/package.json) - rbenv # ruby version from rbenv (https://github.com/rbenv/rbenv) - rvm # ruby version from rvm (https://rvm.io) - fvm # flutter version management (https://github.com/leoafarias/fvm) - luaenv # lua version from luaenv (https://github.com/cehoffman/luaenv) - jenv # java version from jenv (https://github.com/jenv/jenv) - plenv # perl version from plenv (https://github.com/tokuhirom/plenv) - perlbrew # perl version from perlbrew (https://github.com/gugod/App-perlbrew) - phpenv # php version from phpenv (https://github.com/phpenv/phpenv) - scalaenv # scala version from scalaenv (https://github.com/scalaenv/scalaenv) - haskell_stack # haskell version from stack (https://haskellstack.org/) - kubecontext # current kubernetes context (https://kubernetes.io/) - terraform # terraform workspace (https://www.terraform.io) - # terraform_version # terraform version (https://www.terraform.io) - aws # aws profile (https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html) - aws_eb_env # aws elastic beanstalk environment (https://aws.amazon.com/elasticbeanstalk/) - azure # azure account name (https://docs.microsoft.com/en-us/cli/azure) - gcloud # google cloud cli account and project (https://cloud.google.com/) - google_app_cred # google application credentials (https://cloud.google.com/docs/authentication/production) - toolbox # toolbox name (https://github.com/containers/toolbox) - context # user@hostname - nordvpn # nordvpn connection status, linux only (https://nordvpn.com/) - ranger # ranger shell (https://github.com/ranger/ranger) - yazi # yazi shell (https://github.com/sxyazi/yazi) - nnn # nnn shell (https://github.com/jarun/nnn) - lf # lf shell (https://github.com/gokcehan/lf) - xplr # xplr shell (https://github.com/sayanarijit/xplr) - vim_shell # vim shell indicator (:sh) - midnight_commander # midnight commander shell (https://midnight-commander.org/) - nix_shell # nix shell (https://nixos.org/nixos/nix-pills/developing-with-nix-shell.html) - chezmoi_shell # chezmoi shell (https://www.chezmoi.io/) - # vpn_ip # virtual private network indicator - # load # CPU load - # disk_usage # disk usage - # ram # free RAM - # swap # used swap - todo # todo items (https://github.com/todotxt/todo.txt-cli) - timewarrior # timewarrior tracking status (https://timewarrior.net/) - taskwarrior # taskwarrior task count (https://taskwarrior.org/) - per_directory_history # Oh My Zsh per-directory-history local/global indicator - # cpu_arch # CPU architecture - time # current time - # ip # ip address and bandwidth usage for a specified network interface - # public_ip # public IP address - # proxy # system-wide http/https/ftp proxy - # battery # internal battery - # wifi # wifi speed - # example # example user-defined segment (see prompt_example function below) - ) - - # Defines character set used by powerlevel10k. It's best to let `p10k configure` set it for you. - typeset -g POWERLEVEL9K_MODE=nerdfont-complete - # When set to `moderate`, some icons will have an extra space after them. This is meant to avoid - # icon overlap when using non-monospace fonts. When set to `none`, spaces are not added. - typeset -g POWERLEVEL9K_ICON_PADDING=none - - # Basic style options that define the overall look of your prompt. You probably don't want to - # change them. - typeset -g POWERLEVEL9K_BACKGROUND= # transparent background - typeset -g POWERLEVEL9K_{LEFT,RIGHT}_{LEFT,RIGHT}_WHITESPACE= # no surrounding whitespace - typeset -g POWERLEVEL9K_{LEFT,RIGHT}_SUBSEGMENT_SEPARATOR=' ' # separate segments with a space - typeset -g POWERLEVEL9K_{LEFT,RIGHT}_SEGMENT_SEPARATOR= # no end-of-line symbol - - # When set to true, icons appear before content on both sides of the prompt. When set - # to false, icons go after content. If empty or not set, icons go before content in the left - # prompt and after content in the right prompt. - # - # You can also override it for a specific segment: - # - # POWERLEVEL9K_STATUS_ICON_BEFORE_CONTENT=false - # - # Or for a specific segment in specific state: - # - # POWERLEVEL9K_DIR_NOT_WRITABLE_ICON_BEFORE_CONTENT=false - typeset -g POWERLEVEL9K_ICON_BEFORE_CONTENT=true - - # Add an empty line before each prompt. - typeset -g POWERLEVEL9K_PROMPT_ADD_NEWLINE=false - - # Connect left prompt lines with these symbols. - typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_PREFIX= - typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_PREFIX= - typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_PREFIX= - # Connect right prompt lines with these symbols. - typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_SUFFIX= - typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_SUFFIX= - typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_SUFFIX= - - # The left end of left prompt. - typeset -g POWERLEVEL9K_LEFT_PROMPT_FIRST_SEGMENT_START_SYMBOL= - # The right end of right prompt. - typeset -g POWERLEVEL9K_RIGHT_PROMPT_LAST_SEGMENT_END_SYMBOL= - - # Ruler, a.k.a. the horizontal line before each prompt. If you set it to true, you'll - # probably want to set POWERLEVEL9K_PROMPT_ADD_NEWLINE=false above and - # POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_CHAR=' ' below. - typeset -g POWERLEVEL9K_SHOW_RULER=false - typeset -g POWERLEVEL9K_RULER_CHAR='─' # reasonable alternative: '·' - typeset -g POWERLEVEL9K_RULER_FOREGROUND=242 - - # Filler between left and right prompt on the first prompt line. You can set it to '·' or '─' - # to make it easier to see the alignment between left and right prompt and to separate prompt - # from command output. It serves the same purpose as ruler (see above) without increasing - # the number of prompt lines. You'll probably want to set POWERLEVEL9K_SHOW_RULER=false - # if using this. You might also like POWERLEVEL9K_PROMPT_ADD_NEWLINE=false for more compact - # prompt. - typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_CHAR=' ' - if [[ $POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_CHAR != ' ' ]]; then - # The color of the filler. - typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_FOREGROUND=242 - # Add a space between the end of left prompt and the filler. - typeset -g POWERLEVEL9K_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL=' ' - # Add a space between the filler and the start of right prompt. - typeset -g POWERLEVEL9K_RIGHT_PROMPT_FIRST_SEGMENT_START_SYMBOL=' ' - # Start filler from the edge of the screen if there are no left segments on the first line. - typeset -g POWERLEVEL9K_EMPTY_LINE_LEFT_PROMPT_FIRST_SEGMENT_END_SYMBOL='%{%}' - # End filler on the edge of the screen if there are no right segments on the first line. - typeset -g POWERLEVEL9K_EMPTY_LINE_RIGHT_PROMPT_FIRST_SEGMENT_START_SYMBOL='%{%}' - fi - - #################################[ os_icon: os identifier ]################################## - # OS identifier color. - typeset -g POWERLEVEL9K_OS_ICON_FOREGROUND= - # Custom icon. - # typeset -g POWERLEVEL9K_OS_ICON_CONTENT_EXPANSION='⭐' - - ################################[ prompt_char: prompt symbol ]################################ - # Green prompt symbol if the last command succeeded. - typeset -g POWERLEVEL9K_PROMPT_CHAR_OK_{VIINS,VICMD,VIVIS,VIOWR}_FOREGROUND=76 - # Red prompt symbol if the last command failed. - typeset -g POWERLEVEL9K_PROMPT_CHAR_ERROR_{VIINS,VICMD,VIVIS,VIOWR}_FOREGROUND=196 - # Default prompt symbol. - typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIINS_CONTENT_EXPANSION='❯' - # Prompt symbol in command vi mode. - typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VICMD_CONTENT_EXPANSION='❮' - # Prompt symbol in visual vi mode. - typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIVIS_CONTENT_EXPANSION='V' - # Prompt symbol in overwrite vi mode. - typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIOWR_CONTENT_EXPANSION='▶' - typeset -g POWERLEVEL9K_PROMPT_CHAR_OVERWRITE_STATE=true - # No line terminator if prompt_char is the last segment. - typeset -g POWERLEVEL9K_PROMPT_CHAR_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL='' - # No line introducer if prompt_char is the first segment. - typeset -g POWERLEVEL9K_PROMPT_CHAR_LEFT_PROMPT_FIRST_SEGMENT_START_SYMBOL= - - ##################################[ dir: current directory ]################################## - # Default current directory color. - typeset -g POWERLEVEL9K_DIR_FOREGROUND=31 - # If directory is too long, shorten some of its segments to the shortest possible unique - # prefix. The shortened directory can be tab-completed to the original. - typeset -g POWERLEVEL9K_SHORTEN_STRATEGY=truncate_to_unique - # Replace removed segment suffixes with this symbol. - typeset -g POWERLEVEL9K_SHORTEN_DELIMITER= - # Color of the shortened directory segments. - typeset -g POWERLEVEL9K_DIR_SHORTENED_FOREGROUND=103 - # Color of the anchor directory segments. Anchor segments are never shortened. The first - # segment is always an anchor. - typeset -g POWERLEVEL9K_DIR_ANCHOR_FOREGROUND=39 - # Display anchor directory segments in bold. - typeset -g POWERLEVEL9K_DIR_ANCHOR_BOLD=true - # Don't shorten directories that contain any of these files. They are anchors. - local anchor_files=( - .bzr - .citc - .git - .hg - .node-version - .python-version - .go-version - .ruby-version - .lua-version - .java-version - .perl-version - .php-version - .tool-versions - .shorten_folder_marker - .svn - .terraform - CVS - Cargo.toml - composer.json - go.mod - package.json - stack.yaml - ) - typeset -g POWERLEVEL9K_SHORTEN_FOLDER_MARKER="(${(j:|:)anchor_files})" - # If set to "first" ("last"), remove everything before the first (last) subdirectory that contains - # files matching $POWERLEVEL9K_SHORTEN_FOLDER_MARKER. For example, when the current directory is - # /foo/bar/git_repo/nested_git_repo/baz, prompt will display git_repo/nested_git_repo/baz (first) - # or nested_git_repo/baz (last). This assumes that git_repo and nested_git_repo contain markers - # and other directories don't. - # - # Optionally, "first" and "last" can be followed by ":" where is an integer. - # This moves the truncation point to the right (positive offset) or to the left (negative offset) - # relative to the marker. Plain "first" and "last" are equivalent to "first:0" and "last:0" - # respectively. - typeset -g POWERLEVEL9K_DIR_TRUNCATE_BEFORE_MARKER=false - # Don't shorten this many last directory segments. They are anchors. - typeset -g POWERLEVEL9K_SHORTEN_DIR_LENGTH=1 - # Shorten directory if it's longer than this even if there is space for it. The value can - # be either absolute (e.g., '80') or a percentage of terminal width (e.g, '50%'). If empty, - # directory will be shortened only when prompt doesn't fit or when other parameters demand it - # (see POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS and POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS_PCT below). - # If set to `0`, directory will always be shortened to its minimum length. - typeset -g POWERLEVEL9K_DIR_MAX_LENGTH=80 - # When `dir` segment is on the last prompt line, try to shorten it enough to leave at least this - # many columns for typing commands. - typeset -g POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS=40 - # When `dir` segment is on the last prompt line, try to shorten it enough to leave at least - # COLUMNS * POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS_PCT * 0.01 columns for typing commands. - typeset -g POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS_PCT=50 - # If set to true, embed a hyperlink into the directory. Useful for quickly - # opening a directory in the file manager simply by clicking the link. - # Can also be handy when the directory is shortened, as it allows you to see - # the full directory that was used in previous commands. - typeset -g POWERLEVEL9K_DIR_HYPERLINK=false - - # Enable special styling for non-writable and non-existent directories. See POWERLEVEL9K_LOCK_ICON - # and POWERLEVEL9K_DIR_CLASSES below. - typeset -g POWERLEVEL9K_DIR_SHOW_WRITABLE=v3 - - # The default icon shown next to non-writable and non-existent directories when - # POWERLEVEL9K_DIR_SHOW_WRITABLE is set to v3. - # typeset -g POWERLEVEL9K_LOCK_ICON='⭐' - - # POWERLEVEL9K_DIR_CLASSES allows you to specify custom icons and colors for different - # directories. It must be an array with 3 * N elements. Each triplet consists of: - # - # 1. A pattern against which the current directory ($PWD) is matched. Matching is done with - # extended_glob option enabled. - # 2. Directory class for the purpose of styling. - # 3. An empty string. - # - # Triplets are tried in order. The first triplet whose pattern matches $PWD wins. - # - # If POWERLEVEL9K_DIR_SHOW_WRITABLE is set to v3, non-writable and non-existent directories - # acquire class suffix _NOT_WRITABLE and NON_EXISTENT respectively. - # - # For example, given these settings: - # - # typeset -g POWERLEVEL9K_DIR_CLASSES=( - # '~/work(|/*)' WORK '' - # '~(|/*)' HOME '' - # '*' DEFAULT '') - # - # Whenever the current directory is ~/work or a subdirectory of ~/work, it gets styled with one - # of the following classes depending on its writability and existence: WORK, WORK_NOT_WRITABLE or - # WORK_NON_EXISTENT. - # - # Simply assigning classes to directories doesn't have any visible effects. It merely gives you an - # option to define custom colors and icons for different directory classes. - # - # # Styling for WORK. - # typeset -g POWERLEVEL9K_DIR_WORK_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_DIR_WORK_FOREGROUND=31 - # typeset -g POWERLEVEL9K_DIR_WORK_SHORTENED_FOREGROUND=103 - # typeset -g POWERLEVEL9K_DIR_WORK_ANCHOR_FOREGROUND=39 - # - # # Styling for WORK_NOT_WRITABLE. - # typeset -g POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_FOREGROUND=31 - # typeset -g POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_SHORTENED_FOREGROUND=103 - # typeset -g POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_ANCHOR_FOREGROUND=39 - # - # # Styling for WORK_NON_EXISTENT. - # typeset -g POWERLEVEL9K_DIR_WORK_NON_EXISTENT_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_DIR_WORK_NON_EXISTENT_FOREGROUND=31 - # typeset -g POWERLEVEL9K_DIR_WORK_NON_EXISTENT_SHORTENED_FOREGROUND=103 - # typeset -g POWERLEVEL9K_DIR_WORK_NON_EXISTENT_ANCHOR_FOREGROUND=39 - # - # If a styling parameter isn't explicitly defined for some class, it falls back to the classless - # parameter. For example, if POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_FOREGROUND is not set, it falls - # back to POWERLEVEL9K_DIR_FOREGROUND. - # - # typeset -g POWERLEVEL9K_DIR_CLASSES=() - - # Custom prefix. - # typeset -g POWERLEVEL9K_DIR_PREFIX='%fin ' - - #####################################[ vcs: git status ]###################################### - # Branch icon. Set this parameter to '\UE0A0 ' for the popular Powerline branch icon. - typeset -g POWERLEVEL9K_VCS_BRANCH_ICON='\uF126 ' - - # Untracked files icon. It's really a question mark, your font isn't broken. - # Change the value of this parameter to show a different icon. - typeset -g POWERLEVEL9K_VCS_UNTRACKED_ICON='?' - - # Formatter for Git status. - # - # Example output: master wip ⇣42⇡42 *42 merge ~42 +42 !42 ?42. - # - # You can edit the function to customize how Git status looks. - # - # VCS_STATUS_* parameters are set by gitstatus plugin. See reference: - # https://github.com/romkatv/gitstatus/blob/master/gitstatus.plugin.zsh. - function my_git_formatter() { - emulate -L zsh - - if [[ -n $P9K_CONTENT ]]; then - # If P9K_CONTENT is not empty, use it. It's either "loading" or from vcs_info (not from - # gitstatus plugin). VCS_STATUS_* parameters are not available in this case. - typeset -g my_git_format=$P9K_CONTENT - return - fi - - if (( $1 )); then - # Styling for up-to-date Git status. - local meta='%f' # default foreground - local clean='%76F' # green foreground - local modified='%178F' # yellow foreground - local untracked='%39F' # blue foreground - local conflicted='%196F' # red foreground - else - # Styling for incomplete and stale Git status. - local meta='%244F' # grey foreground - local clean='%244F' # grey foreground - local modified='%244F' # grey foreground - local untracked='%244F' # grey foreground - local conflicted='%244F' # grey foreground - fi - - local res - - if [[ -n $VCS_STATUS_LOCAL_BRANCH ]]; then - local branch=${(V)VCS_STATUS_LOCAL_BRANCH} - # If local branch name is at most 32 characters long, show it in full. - # Otherwise show the first 12 … the last 12. - # Tip: To always show local branch name in full without truncation, delete the next line. - (( $#branch > 32 )) && branch[13,-13]="…" # <-- this line - res+="${clean}${(g::)POWERLEVEL9K_VCS_BRANCH_ICON}${branch//\%/%%}" - fi - - if [[ -n $VCS_STATUS_TAG - # Show tag only if not on a branch. - # Tip: To always show tag, delete the next line. - && -z $VCS_STATUS_LOCAL_BRANCH # <-- this line - ]]; then - local tag=${(V)VCS_STATUS_TAG} - # If tag name is at most 32 characters long, show it in full. - # Otherwise show the first 12 … the last 12. - # Tip: To always show tag name in full without truncation, delete the next line. - (( $#tag > 32 )) && tag[13,-13]="…" # <-- this line - res+="${meta}#${clean}${tag//\%/%%}" - fi - - # Display the current Git commit if there is no branch and no tag. - # Tip: To always display the current Git commit, delete the next line. - [[ -z $VCS_STATUS_LOCAL_BRANCH && -z $VCS_STATUS_TAG ]] && # <-- this line - res+="${meta}@${clean}${VCS_STATUS_COMMIT[1,8]}" - - # Show tracking branch name if it differs from local branch. - if [[ -n ${VCS_STATUS_REMOTE_BRANCH:#$VCS_STATUS_LOCAL_BRANCH} ]]; then - res+="${meta}:${clean}${(V)VCS_STATUS_REMOTE_BRANCH//\%/%%}" - fi - - # Display "wip" if the latest commit's summary contains "wip" or "WIP". - if [[ $VCS_STATUS_COMMIT_SUMMARY == (|*[^[:alnum:]])(wip|WIP)(|[^[:alnum:]]*) ]]; then - res+=" ${modified}wip" - fi - - if (( VCS_STATUS_COMMITS_AHEAD || VCS_STATUS_COMMITS_BEHIND )); then - # ⇣42 if behind the remote. - (( VCS_STATUS_COMMITS_BEHIND )) && res+=" ${clean}⇣${VCS_STATUS_COMMITS_BEHIND}" - # ⇡42 if ahead of the remote; no leading space if also behind the remote: ⇣42⇡42. - (( VCS_STATUS_COMMITS_AHEAD && !VCS_STATUS_COMMITS_BEHIND )) && res+=" " - (( VCS_STATUS_COMMITS_AHEAD )) && res+="${clean}⇡${VCS_STATUS_COMMITS_AHEAD}" - elif [[ -n $VCS_STATUS_REMOTE_BRANCH ]]; then - # Tip: Uncomment the next line to display '=' if up to date with the remote. - # res+=" ${clean}=" - fi - - # ⇠42 if behind the push remote. - (( VCS_STATUS_PUSH_COMMITS_BEHIND )) && res+=" ${clean}⇠${VCS_STATUS_PUSH_COMMITS_BEHIND}" - (( VCS_STATUS_PUSH_COMMITS_AHEAD && !VCS_STATUS_PUSH_COMMITS_BEHIND )) && res+=" " - # ⇢42 if ahead of the push remote; no leading space if also behind: ⇠42⇢42. - (( VCS_STATUS_PUSH_COMMITS_AHEAD )) && res+="${clean}⇢${VCS_STATUS_PUSH_COMMITS_AHEAD}" - # *42 if have stashes. - (( VCS_STATUS_STASHES )) && res+=" ${clean}*${VCS_STATUS_STASHES}" - # 'merge' if the repo is in an unusual state. - [[ -n $VCS_STATUS_ACTION ]] && res+=" ${conflicted}${VCS_STATUS_ACTION}" - # ~42 if have merge conflicts. - (( VCS_STATUS_NUM_CONFLICTED )) && res+=" ${conflicted}~${VCS_STATUS_NUM_CONFLICTED}" - # +42 if have staged changes. - (( VCS_STATUS_NUM_STAGED )) && res+=" ${modified}+${VCS_STATUS_NUM_STAGED}" - # !42 if have unstaged changes. - (( VCS_STATUS_NUM_UNSTAGED )) && res+=" ${modified}!${VCS_STATUS_NUM_UNSTAGED}" - # ?42 if have untracked files. It's really a question mark, your font isn't broken. - # See POWERLEVEL9K_VCS_UNTRACKED_ICON above if you want to use a different icon. - # Remove the next line if you don't want to see untracked files at all. - (( VCS_STATUS_NUM_UNTRACKED )) && res+=" ${untracked}${(g::)POWERLEVEL9K_VCS_UNTRACKED_ICON}${VCS_STATUS_NUM_UNTRACKED}" - # "─" if the number of unstaged files is unknown. This can happen due to - # POWERLEVEL9K_VCS_MAX_INDEX_SIZE_DIRTY (see below) being set to a non-negative number lower - # than the number of files in the Git index, or due to bash.showDirtyState being set to false - # in the repository config. The number of staged and untracked files may also be unknown - # in this case. - (( VCS_STATUS_HAS_UNSTAGED == -1 )) && res+=" ${modified}─" - - typeset -g my_git_format=$res - } - functions -M my_git_formatter 2>/dev/null - - # Don't count the number of unstaged, untracked and conflicted files in Git repositories with - # more than this many files in the index. Negative value means infinity. - # - # If you are working in Git repositories with tens of millions of files and seeing performance - # sagging, try setting POWERLEVEL9K_VCS_MAX_INDEX_SIZE_DIRTY to a number lower than the output - # of `git ls-files | wc -l`. Alternatively, add `bash.showDirtyState = false` to the repository's - # config: `git config bash.showDirtyState false`. - typeset -g POWERLEVEL9K_VCS_MAX_INDEX_SIZE_DIRTY=-1 - - # Don't show Git status in prompt for repositories whose workdir matches this pattern. - # For example, if set to '~', the Git repository at $HOME/.git will be ignored. - # Multiple patterns can be combined with '|': '~(|/foo)|/bar/baz/*'. - typeset -g POWERLEVEL9K_VCS_DISABLED_WORKDIR_PATTERN='~' - - # Disable the default Git status formatting. - typeset -g POWERLEVEL9K_VCS_DISABLE_GITSTATUS_FORMATTING=true - # Install our own Git status formatter. - typeset -g POWERLEVEL9K_VCS_CONTENT_EXPANSION='${$((my_git_formatter(1)))+${my_git_format}}' - typeset -g POWERLEVEL9K_VCS_LOADING_CONTENT_EXPANSION='${$((my_git_formatter(0)))+${my_git_format}}' - # Enable counters for staged, unstaged, etc. - typeset -g POWERLEVEL9K_VCS_{STAGED,UNSTAGED,UNTRACKED,CONFLICTED,COMMITS_AHEAD,COMMITS_BEHIND}_MAX_NUM=-1 - - # Icon color. - typeset -g POWERLEVEL9K_VCS_VISUAL_IDENTIFIER_COLOR=76 - typeset -g POWERLEVEL9K_VCS_LOADING_VISUAL_IDENTIFIER_COLOR=244 - # Custom icon. - # typeset -g POWERLEVEL9K_VCS_VISUAL_IDENTIFIER_EXPANSION='⭐' - # Custom prefix. - typeset -g POWERLEVEL9K_VCS_PREFIX='%fon ' - - # Show status of repositories of these types. You can add svn and/or hg if you are - # using them. If you do, your prompt may become slow even when your current directory - # isn't in an svn or hg repository. - typeset -g POWERLEVEL9K_VCS_BACKENDS=(git) - - # These settings are used for repositories other than Git or when gitstatusd fails and - # Powerlevel10k has to fall back to using vcs_info. - typeset -g POWERLEVEL9K_VCS_CLEAN_FOREGROUND=76 - typeset -g POWERLEVEL9K_VCS_UNTRACKED_FOREGROUND=76 - typeset -g POWERLEVEL9K_VCS_MODIFIED_FOREGROUND=178 - - ##########################[ status: exit code of the last command ]########################### - # Enable OK_PIPE, ERROR_PIPE and ERROR_SIGNAL status states to allow us to enable, disable and - # style them independently from the regular OK and ERROR state. - typeset -g POWERLEVEL9K_STATUS_EXTENDED_STATES=true - - # Status on success. No content, just an icon. No need to show it if prompt_char is enabled as - # it will signify success by turning green. - typeset -g POWERLEVEL9K_STATUS_OK=false - typeset -g POWERLEVEL9K_STATUS_OK_FOREGROUND=70 - typeset -g POWERLEVEL9K_STATUS_OK_VISUAL_IDENTIFIER_EXPANSION='✔' - - # Status when some part of a pipe command fails but the overall exit status is zero. It may look - # like this: 1|0. - typeset -g POWERLEVEL9K_STATUS_OK_PIPE=true - typeset -g POWERLEVEL9K_STATUS_OK_PIPE_FOREGROUND=70 - typeset -g POWERLEVEL9K_STATUS_OK_PIPE_VISUAL_IDENTIFIER_EXPANSION='✔' - - # Status when it's just an error code (e.g., '1'). No need to show it if prompt_char is enabled as - # it will signify error by turning red. - typeset -g POWERLEVEL9K_STATUS_ERROR=false - typeset -g POWERLEVEL9K_STATUS_ERROR_FOREGROUND=160 - typeset -g POWERLEVEL9K_STATUS_ERROR_VISUAL_IDENTIFIER_EXPANSION='✘' - - # Status when the last command was terminated by a signal. - typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL=true - typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL_FOREGROUND=160 - # Use terse signal names: "INT" instead of "SIGINT(2)". - typeset -g POWERLEVEL9K_STATUS_VERBOSE_SIGNAME=false - typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL_VISUAL_IDENTIFIER_EXPANSION='✘' - - # Status when some part of a pipe command fails and the overall exit status is also non-zero. - # It may look like this: 1|0. - typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE=true - typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE_FOREGROUND=160 - typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE_VISUAL_IDENTIFIER_EXPANSION='✘' - - ###################[ command_execution_time: duration of the last command ]################### - # Show duration of the last command if takes at least this many seconds. - typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD=3 - # Show this many fractional digits. Zero means round to seconds. - typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_PRECISION=0 - # Execution time color. - typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_FOREGROUND=101 - # Duration format: 1d 2h 3m 4s. - typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_FORMAT='d h m s' - # Custom icon. - # typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_VISUAL_IDENTIFIER_EXPANSION='⭐' - # Custom prefix. - typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_PREFIX='%ftook ' - - #######################[ background_jobs: presence of background jobs ]####################### - # Don't show the number of background jobs. - typeset -g POWERLEVEL9K_BACKGROUND_JOBS_VERBOSE=false - # Background jobs color. - typeset -g POWERLEVEL9K_BACKGROUND_JOBS_FOREGROUND=70 - # Custom icon. - # typeset -g POWERLEVEL9K_BACKGROUND_JOBS_VISUAL_IDENTIFIER_EXPANSION='⭐' - - #######################[ direnv: direnv status (https://direnv.net/) ]######################## - # Direnv color. - typeset -g POWERLEVEL9K_DIRENV_FOREGROUND=178 - # Custom icon. - # typeset -g POWERLEVEL9K_DIRENV_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ###############[ asdf: asdf version manager (https://github.com/asdf-vm/asdf) ]############### - # Default asdf color. Only used to display tools for which there is no color override (see below). - # Tip: Override this parameter for ${TOOL} with POWERLEVEL9K_ASDF_${TOOL}_FOREGROUND. - typeset -g POWERLEVEL9K_ASDF_FOREGROUND=66 - - # There are four parameters that can be used to hide asdf tools. Each parameter describes - # conditions under which a tool gets hidden. Parameters can hide tools but not unhide them. If at - # least one parameter decides to hide a tool, that tool gets hidden. If no parameter decides to - # hide a tool, it gets shown. - # - # Special note on the difference between POWERLEVEL9K_ASDF_SOURCES and - # POWERLEVEL9K_ASDF_PROMPT_ALWAYS_SHOW. Consider the effect of the following commands: - # - # asdf local python 3.8.1 - # asdf global python 3.8.1 - # - # After running both commands the current python version is 3.8.1 and its source is "local" as - # it takes precedence over "global". If POWERLEVEL9K_ASDF_PROMPT_ALWAYS_SHOW is set to false, - # it'll hide python version in this case because 3.8.1 is the same as the global version. - # POWERLEVEL9K_ASDF_SOURCES will hide python version only if the value of this parameter doesn't - # contain "local". - - # Hide tool versions that don't come from one of these sources. - # - # Available sources: - # - # - shell `asdf current` says "set by ASDF_${TOOL}_VERSION environment variable" - # - local `asdf current` says "set by /some/not/home/directory/file" - # - global `asdf current` says "set by /home/username/file" - # - # Note: If this parameter is set to (shell local global), it won't hide tools. - # Tip: Override this parameter for ${TOOL} with POWERLEVEL9K_ASDF_${TOOL}_SOURCES. - typeset -g POWERLEVEL9K_ASDF_SOURCES=(shell local global) - - # If set to false, hide tool versions that are the same as global. - # - # Note: The name of this parameter doesn't reflect its meaning at all. - # Note: If this parameter is set to true, it won't hide tools. - # Tip: Override this parameter for ${TOOL} with POWERLEVEL9K_ASDF_${TOOL}_PROMPT_ALWAYS_SHOW. - typeset -g POWERLEVEL9K_ASDF_PROMPT_ALWAYS_SHOW=false - - # If set to false, hide tool versions that are equal to "system". - # - # Note: If this parameter is set to true, it won't hide tools. - # Tip: Override this parameter for ${TOOL} with POWERLEVEL9K_ASDF_${TOOL}_SHOW_SYSTEM. - typeset -g POWERLEVEL9K_ASDF_SHOW_SYSTEM=true - - # If set to non-empty value, hide tools unless there is a file matching the specified file pattern - # in the current directory, or its parent directory, or its grandparent directory, and so on. - # - # Note: If this parameter is set to empty value, it won't hide tools. - # Note: SHOW_ON_UPGLOB isn't specific to asdf. It works with all prompt segments. - # Tip: Override this parameter for ${TOOL} with POWERLEVEL9K_ASDF_${TOOL}_SHOW_ON_UPGLOB. - # - # Example: Hide nodejs version when there is no package.json and no *.js files in the current - # directory, in `..`, in `../..` and so on. - # - # typeset -g POWERLEVEL9K_ASDF_NODEJS_SHOW_ON_UPGLOB='*.js|package.json' - typeset -g POWERLEVEL9K_ASDF_SHOW_ON_UPGLOB= - - # Ruby version from asdf. - typeset -g POWERLEVEL9K_ASDF_RUBY_FOREGROUND=168 - # typeset -g POWERLEVEL9K_ASDF_RUBY_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_ASDF_RUBY_SHOW_ON_UPGLOB='*.foo|*.bar' - - # Python version from asdf. - typeset -g POWERLEVEL9K_ASDF_PYTHON_FOREGROUND=37 - # typeset -g POWERLEVEL9K_ASDF_PYTHON_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_ASDF_PYTHON_SHOW_ON_UPGLOB='*.foo|*.bar' - - # Go version from asdf. - typeset -g POWERLEVEL9K_ASDF_GOLANG_FOREGROUND=37 - # typeset -g POWERLEVEL9K_ASDF_GOLANG_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_ASDF_GOLANG_SHOW_ON_UPGLOB='*.foo|*.bar' - - # Node.js version from asdf. - typeset -g POWERLEVEL9K_ASDF_NODEJS_FOREGROUND=70 - # typeset -g POWERLEVEL9K_ASDF_NODEJS_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_ASDF_NODEJS_SHOW_ON_UPGLOB='*.foo|*.bar' - - # Rust version from asdf. - typeset -g POWERLEVEL9K_ASDF_RUST_FOREGROUND=37 - # typeset -g POWERLEVEL9K_ASDF_RUST_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_ASDF_RUST_SHOW_ON_UPGLOB='*.foo|*.bar' - - # .NET Core version from asdf. - typeset -g POWERLEVEL9K_ASDF_DOTNET_CORE_FOREGROUND=134 - # typeset -g POWERLEVEL9K_ASDF_DOTNET_CORE_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_ASDF_DOTNET_SHOW_ON_UPGLOB='*.foo|*.bar' - - # Flutter version from asdf. - typeset -g POWERLEVEL9K_ASDF_FLUTTER_FOREGROUND=38 - # typeset -g POWERLEVEL9K_ASDF_FLUTTER_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_ASDF_FLUTTER_SHOW_ON_UPGLOB='*.foo|*.bar' - - # Lua version from asdf. - typeset -g POWERLEVEL9K_ASDF_LUA_FOREGROUND=32 - # typeset -g POWERLEVEL9K_ASDF_LUA_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_ASDF_LUA_SHOW_ON_UPGLOB='*.foo|*.bar' - - # Java version from asdf. - typeset -g POWERLEVEL9K_ASDF_JAVA_FOREGROUND=32 - # typeset -g POWERLEVEL9K_ASDF_JAVA_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_ASDF_JAVA_SHOW_ON_UPGLOB='*.foo|*.bar' - - # Perl version from asdf. - typeset -g POWERLEVEL9K_ASDF_PERL_FOREGROUND=67 - # typeset -g POWERLEVEL9K_ASDF_PERL_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_ASDF_PERL_SHOW_ON_UPGLOB='*.foo|*.bar' - - # Erlang version from asdf. - typeset -g POWERLEVEL9K_ASDF_ERLANG_FOREGROUND=125 - # typeset -g POWERLEVEL9K_ASDF_ERLANG_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_ASDF_ERLANG_SHOW_ON_UPGLOB='*.foo|*.bar' - - # Elixir version from asdf. - typeset -g POWERLEVEL9K_ASDF_ELIXIR_FOREGROUND=129 - # typeset -g POWERLEVEL9K_ASDF_ELIXIR_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_ASDF_ELIXIR_SHOW_ON_UPGLOB='*.foo|*.bar' - - # Postgres version from asdf. - typeset -g POWERLEVEL9K_ASDF_POSTGRES_FOREGROUND=31 - # typeset -g POWERLEVEL9K_ASDF_POSTGRES_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_ASDF_POSTGRES_SHOW_ON_UPGLOB='*.foo|*.bar' - - # PHP version from asdf. - typeset -g POWERLEVEL9K_ASDF_PHP_FOREGROUND=99 - # typeset -g POWERLEVEL9K_ASDF_PHP_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_ASDF_PHP_SHOW_ON_UPGLOB='*.foo|*.bar' - - # Haskell version from asdf. - typeset -g POWERLEVEL9K_ASDF_HASKELL_FOREGROUND=172 - # typeset -g POWERLEVEL9K_ASDF_HASKELL_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_ASDF_HASKELL_SHOW_ON_UPGLOB='*.foo|*.bar' - - # Julia version from asdf. - typeset -g POWERLEVEL9K_ASDF_JULIA_FOREGROUND=70 - # typeset -g POWERLEVEL9K_ASDF_JULIA_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_ASDF_JULIA_SHOW_ON_UPGLOB='*.foo|*.bar' - - ##########[ nordvpn: nordvpn connection status, linux only (https://nordvpn.com/) ]########### - # NordVPN connection indicator color. - typeset -g POWERLEVEL9K_NORDVPN_FOREGROUND=39 - # Hide NordVPN connection indicator when not connected. - typeset -g POWERLEVEL9K_NORDVPN_{DISCONNECTED,CONNECTING,DISCONNECTING}_CONTENT_EXPANSION= - typeset -g POWERLEVEL9K_NORDVPN_{DISCONNECTED,CONNECTING,DISCONNECTING}_VISUAL_IDENTIFIER_EXPANSION= - # Custom icon. - # typeset -g POWERLEVEL9K_NORDVPN_VISUAL_IDENTIFIER_EXPANSION='⭐' - - #################[ ranger: ranger shell (https://github.com/ranger/ranger) ]################## - # Ranger shell color. - typeset -g POWERLEVEL9K_RANGER_FOREGROUND=178 - # Custom icon. - # typeset -g POWERLEVEL9K_RANGER_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ####################[ yazi: yazi shell (https://github.com/sxyazi/yazi) ]##################### - # Yazi shell color. - typeset -g POWERLEVEL9K_YAZI_FOREGROUND=178 - # Custom icon. - # typeset -g POWERLEVEL9K_YAZI_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ######################[ nnn: nnn shell (https://github.com/jarun/nnn) ]####################### - # Nnn shell color. - typeset -g POWERLEVEL9K_NNN_FOREGROUND=72 - # Custom icon. - # typeset -g POWERLEVEL9K_NNN_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ######################[ lf: lf shell (https://github.com/gokcehan/lf) ]####################### - # lf shell color. - typeset -g POWERLEVEL9K_LF_FOREGROUND=72 - # Custom icon. - # typeset -g POWERLEVEL9K_LF_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ##################[ xplr: xplr shell (https://github.com/sayanarijit/xplr) ]################## - # xplr shell color. - typeset -g POWERLEVEL9K_XPLR_FOREGROUND=72 - # Custom icon. - # typeset -g POWERLEVEL9K_XPLR_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ###########################[ vim_shell: vim shell indicator (:sh) ]########################### - # Vim shell indicator color. - typeset -g POWERLEVEL9K_VIM_SHELL_FOREGROUND=34 - # Custom icon. - # typeset -g POWERLEVEL9K_VIM_SHELL_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ######[ midnight_commander: midnight commander shell (https://midnight-commander.org/) ]###### - # Midnight Commander shell color. - typeset -g POWERLEVEL9K_MIDNIGHT_COMMANDER_FOREGROUND=178 - # Custom icon. - # typeset -g POWERLEVEL9K_MIDNIGHT_COMMANDER_VISUAL_IDENTIFIER_EXPANSION='⭐' - - #[ nix_shell: nix shell (https://nixos.org/nixos/nix-pills/developing-with-nix-shell.html) ]## - # Nix shell color. - typeset -g POWERLEVEL9K_NIX_SHELL_FOREGROUND=74 - - # Display the icon of nix_shell if PATH contains a subdirectory of /nix/store. - # typeset -g POWERLEVEL9K_NIX_SHELL_INFER_FROM_PATH=false - - # Tip: If you want to see just the icon without "pure" and "impure", uncomment the next line. - # typeset -g POWERLEVEL9K_NIX_SHELL_CONTENT_EXPANSION= - - # Custom icon. - # typeset -g POWERLEVEL9K_NIX_SHELL_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ##################[ chezmoi_shell: chezmoi shell (https://www.chezmoi.io/) ]################## - # chezmoi shell color. - typeset -g POWERLEVEL9K_CHEZMOI_SHELL_FOREGROUND=33 - # Custom icon. - # typeset -g POWERLEVEL9K_CHEZMOI_SHELL_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ##################################[ disk_usage: disk usage ]################################## - # Colors for different levels of disk usage. - typeset -g POWERLEVEL9K_DISK_USAGE_NORMAL_FOREGROUND=35 - typeset -g POWERLEVEL9K_DISK_USAGE_WARNING_FOREGROUND=220 - typeset -g POWERLEVEL9K_DISK_USAGE_CRITICAL_FOREGROUND=160 - # Thresholds for different levels of disk usage (percentage points). - typeset -g POWERLEVEL9K_DISK_USAGE_WARNING_LEVEL=90 - typeset -g POWERLEVEL9K_DISK_USAGE_CRITICAL_LEVEL=95 - # If set to true, hide disk usage when below $POWERLEVEL9K_DISK_USAGE_WARNING_LEVEL percent. - typeset -g POWERLEVEL9K_DISK_USAGE_ONLY_WARNING=false - # Custom icon. - # typeset -g POWERLEVEL9K_DISK_USAGE_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ######################################[ ram: free RAM ]####################################### - # RAM color. - typeset -g POWERLEVEL9K_RAM_FOREGROUND=66 - # Custom icon. - # typeset -g POWERLEVEL9K_RAM_VISUAL_IDENTIFIER_EXPANSION='⭐' - - #####################################[ swap: used swap ]###################################### - # Swap color. - typeset -g POWERLEVEL9K_SWAP_FOREGROUND=96 - # Custom icon. - # typeset -g POWERLEVEL9K_SWAP_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ######################################[ load: CPU load ]###################################### - # Show average CPU load over this many last minutes. Valid values are 1, 5 and 15. - typeset -g POWERLEVEL9K_LOAD_WHICH=5 - # Load color when load is under 50%. - typeset -g POWERLEVEL9K_LOAD_NORMAL_FOREGROUND=66 - # Load color when load is between 50% and 70%. - typeset -g POWERLEVEL9K_LOAD_WARNING_FOREGROUND=178 - # Load color when load is over 70%. - typeset -g POWERLEVEL9K_LOAD_CRITICAL_FOREGROUND=166 - # Custom icon. - # typeset -g POWERLEVEL9K_LOAD_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ################[ todo: todo items (https://github.com/todotxt/todo.txt-cli) ]################ - # Todo color. - typeset -g POWERLEVEL9K_TODO_FOREGROUND=110 - # Hide todo when the total number of tasks is zero. - typeset -g POWERLEVEL9K_TODO_HIDE_ZERO_TOTAL=true - # Hide todo when the number of tasks after filtering is zero. - typeset -g POWERLEVEL9K_TODO_HIDE_ZERO_FILTERED=false - - # Todo format. The following parameters are available within the expansion. - # - # - P9K_TODO_TOTAL_TASK_COUNT The total number of tasks. - # - P9K_TODO_FILTERED_TASK_COUNT The number of tasks after filtering. - # - # These variables correspond to the last line of the output of `todo.sh -p ls`: - # - # TODO: 24 of 42 tasks shown - # - # Here 24 is P9K_TODO_FILTERED_TASK_COUNT and 42 is P9K_TODO_TOTAL_TASK_COUNT. - # - # typeset -g POWERLEVEL9K_TODO_CONTENT_EXPANSION='$P9K_TODO_FILTERED_TASK_COUNT' - - # Custom icon. - # typeset -g POWERLEVEL9K_TODO_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ###########[ timewarrior: timewarrior tracking status (https://timewarrior.net/) ]############ - # Timewarrior color. - typeset -g POWERLEVEL9K_TIMEWARRIOR_FOREGROUND=110 - # If the tracked task is longer than 24 characters, truncate and append "…". - # Tip: To always display tasks without truncation, delete the following parameter. - # Tip: To hide task names and display just the icon when time tracking is enabled, set the - # value of the following parameter to "". - typeset -g POWERLEVEL9K_TIMEWARRIOR_CONTENT_EXPANSION='${P9K_CONTENT:0:24}${${P9K_CONTENT:24}:+…}' - - # Custom icon. - # typeset -g POWERLEVEL9K_TIMEWARRIOR_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ##############[ taskwarrior: taskwarrior task count (https://taskwarrior.org/) ]############## - # Taskwarrior color. - typeset -g POWERLEVEL9K_TASKWARRIOR_FOREGROUND=74 - - # Taskwarrior segment format. The following parameters are available within the expansion. - # - # - P9K_TASKWARRIOR_PENDING_COUNT The number of pending tasks: `task +PENDING count`. - # - P9K_TASKWARRIOR_OVERDUE_COUNT The number of overdue tasks: `task +OVERDUE count`. - # - # Zero values are represented as empty parameters. - # - # The default format: - # - # '${P9K_TASKWARRIOR_OVERDUE_COUNT:+"!$P9K_TASKWARRIOR_OVERDUE_COUNT/"}$P9K_TASKWARRIOR_PENDING_COUNT' - # - # typeset -g POWERLEVEL9K_TASKWARRIOR_CONTENT_EXPANSION='$P9K_TASKWARRIOR_PENDING_COUNT' - - # Custom icon. - # typeset -g POWERLEVEL9K_TASKWARRIOR_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ######[ per_directory_history: Oh My Zsh per-directory-history local/global indicator ]####### - # Color when using local/global history. - typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_LOCAL_FOREGROUND=135 - typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_GLOBAL_FOREGROUND=130 - - # Tip: Uncomment the next two lines to hide "local"/"global" text and leave just the icon. - # typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_LOCAL_CONTENT_EXPANSION='' - # typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_GLOBAL_CONTENT_EXPANSION='' - - # Custom icon. - # typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_LOCAL_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_GLOBAL_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ################################[ cpu_arch: CPU architecture ]################################ - # CPU architecture color. - typeset -g POWERLEVEL9K_CPU_ARCH_FOREGROUND=172 - - # Hide the segment when on a specific CPU architecture. - # typeset -g POWERLEVEL9K_CPU_ARCH_X86_64_CONTENT_EXPANSION= - # typeset -g POWERLEVEL9K_CPU_ARCH_X86_64_VISUAL_IDENTIFIER_EXPANSION= - - # Custom icon. - # typeset -g POWERLEVEL9K_CPU_ARCH_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ##################################[ context: user@hostname ]################################## - # Context color when running with privileges. - typeset -g POWERLEVEL9K_CONTEXT_ROOT_FOREGROUND=178 - # Context color in SSH without privileges. - typeset -g POWERLEVEL9K_CONTEXT_{REMOTE,REMOTE_SUDO}_FOREGROUND=180 - # Default context color (no privileges, no SSH). - typeset -g POWERLEVEL9K_CONTEXT_FOREGROUND=180 - - # Context format when running with privileges: bold user@hostname. - typeset -g POWERLEVEL9K_CONTEXT_ROOT_TEMPLATE='%B%n@%m' - # Context format when in SSH without privileges: user@hostname. - typeset -g POWERLEVEL9K_CONTEXT_{REMOTE,REMOTE_SUDO}_TEMPLATE='%n@%m' - # Default context format (no privileges, no SSH): user@hostname. - typeset -g POWERLEVEL9K_CONTEXT_TEMPLATE='%n@%m' - - # Don't show context unless running with privileges or in SSH. - # Tip: Remove the next line to always show context. - typeset -g POWERLEVEL9K_CONTEXT_{DEFAULT,SUDO}_{CONTENT,VISUAL_IDENTIFIER}_EXPANSION= - - # Custom icon. - # typeset -g POWERLEVEL9K_CONTEXT_VISUAL_IDENTIFIER_EXPANSION='⭐' - # Custom prefix. - typeset -g POWERLEVEL9K_CONTEXT_PREFIX='%fwith ' - - ###[ virtualenv: python virtual environment (https://docs.python.org/3/library/venv.html) ]### - # Python virtual environment color. - typeset -g POWERLEVEL9K_VIRTUALENV_FOREGROUND=37 - # Don't show Python version next to the virtual environment name. - typeset -g POWERLEVEL9K_VIRTUALENV_SHOW_PYTHON_VERSION=false - # If set to "false", won't show virtualenv if pyenv is already shown. - # If set to "if-different", won't show virtualenv if it's the same as pyenv. - typeset -g POWERLEVEL9K_VIRTUALENV_SHOW_WITH_PYENV=false - # Separate environment name from Python version only with a space. - typeset -g POWERLEVEL9K_VIRTUALENV_{LEFT,RIGHT}_DELIMITER= - # Custom icon. - # typeset -g POWERLEVEL9K_VIRTUALENV_VISUAL_IDENTIFIER_EXPANSION='⭐' - - #####################[ anaconda: conda environment (https://conda.io/) ]###################### - # Anaconda environment color. - typeset -g POWERLEVEL9K_ANACONDA_FOREGROUND=37 - - # Anaconda segment format. The following parameters are available within the expansion. - # - # - CONDA_PREFIX Absolute path to the active Anaconda/Miniconda environment. - # - CONDA_DEFAULT_ENV Name of the active Anaconda/Miniconda environment. - # - CONDA_PROMPT_MODIFIER Configurable prompt modifier (see below). - # - P9K_ANACONDA_PYTHON_VERSION Current python version (python --version). - # - # CONDA_PROMPT_MODIFIER can be configured with the following command: - # - # conda config --set env_prompt '({default_env}) ' - # - # The last argument is a Python format string that can use the following variables: - # - # - prefix The same as CONDA_PREFIX. - # - default_env The same as CONDA_DEFAULT_ENV. - # - name The last segment of CONDA_PREFIX. - # - stacked_env Comma-separated list of names in the environment stack. The first element is - # always the same as default_env. - # - # Note: '({default_env}) ' is the default value of env_prompt. - # - # The default value of POWERLEVEL9K_ANACONDA_CONTENT_EXPANSION expands to $CONDA_PROMPT_MODIFIER - # without the surrounding parentheses, or to the last path component of CONDA_PREFIX if the former - # is empty. - typeset -g POWERLEVEL9K_ANACONDA_CONTENT_EXPANSION='${${${${CONDA_PROMPT_MODIFIER#\(}% }%\)}:-${CONDA_PREFIX:t}}' - - # Custom icon. - # typeset -g POWERLEVEL9K_ANACONDA_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ################[ pyenv: python environment (https://github.com/pyenv/pyenv) ]################ - # Pyenv color. - typeset -g POWERLEVEL9K_PYENV_FOREGROUND=37 - # Hide python version if it doesn't come from one of these sources. - typeset -g POWERLEVEL9K_PYENV_SOURCES=(shell local global) - # If set to false, hide python version if it's the same as global: - # $(pyenv version-name) == $(pyenv global). - typeset -g POWERLEVEL9K_PYENV_PROMPT_ALWAYS_SHOW=false - # If set to false, hide python version if it's equal to "system". - typeset -g POWERLEVEL9K_PYENV_SHOW_SYSTEM=true - - # Pyenv segment format. The following parameters are available within the expansion. - # - # - P9K_CONTENT Current pyenv environment (pyenv version-name). - # - P9K_PYENV_PYTHON_VERSION Current python version (python --version). - # - # The default format has the following logic: - # - # 1. Display just "$P9K_CONTENT" if it's equal to "$P9K_PYENV_PYTHON_VERSION" or - # starts with "$P9K_PYENV_PYTHON_VERSION/". - # 2. Otherwise display "$P9K_CONTENT $P9K_PYENV_PYTHON_VERSION". - typeset -g POWERLEVEL9K_PYENV_CONTENT_EXPANSION='${P9K_CONTENT}${${P9K_CONTENT:#$P9K_PYENV_PYTHON_VERSION(|/*)}:+ $P9K_PYENV_PYTHON_VERSION}' - - # Custom icon. - # typeset -g POWERLEVEL9K_PYENV_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ################[ goenv: go environment (https://github.com/syndbg/goenv) ]################ - # Goenv color. - typeset -g POWERLEVEL9K_GOENV_FOREGROUND=37 - # Hide go version if it doesn't come from one of these sources. - typeset -g POWERLEVEL9K_GOENV_SOURCES=(shell local global) - # If set to false, hide go version if it's the same as global: - # $(goenv version-name) == $(goenv global). - typeset -g POWERLEVEL9K_GOENV_PROMPT_ALWAYS_SHOW=false - # If set to false, hide go version if it's equal to "system". - typeset -g POWERLEVEL9K_GOENV_SHOW_SYSTEM=true - # Custom icon. - # typeset -g POWERLEVEL9K_GOENV_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ##########[ nodenv: node.js version from nodenv (https://github.com/nodenv/nodenv) ]########## - # Nodenv color. - typeset -g POWERLEVEL9K_NODENV_FOREGROUND=70 - # Hide node version if it doesn't come from one of these sources. - typeset -g POWERLEVEL9K_NODENV_SOURCES=(shell local global) - # If set to false, hide node version if it's the same as global: - # $(nodenv version-name) == $(nodenv global). - typeset -g POWERLEVEL9K_NODENV_PROMPT_ALWAYS_SHOW=false - # If set to false, hide node version if it's equal to "system". - typeset -g POWERLEVEL9K_NODENV_SHOW_SYSTEM=true - # Custom icon. - # typeset -g POWERLEVEL9K_NODENV_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ##############[ nvm: node.js version from nvm (https://github.com/nvm-sh/nvm) ]############### - # Nvm color. - typeset -g POWERLEVEL9K_NVM_FOREGROUND=70 - # If set to false, hide node version if it's the same as default: - # $(nvm version current) == $(nvm version default). - typeset -g POWERLEVEL9K_NVM_PROMPT_ALWAYS_SHOW=false - # If set to false, hide node version if it's equal to "system". - typeset -g POWERLEVEL9K_NVM_SHOW_SYSTEM=true - # Custom icon. - # typeset -g POWERLEVEL9K_NVM_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ############[ nodeenv: node.js environment (https://github.com/ekalinin/nodeenv) ]############ - # Nodeenv color. - typeset -g POWERLEVEL9K_NODEENV_FOREGROUND=70 - # Don't show Node version next to the environment name. - typeset -g POWERLEVEL9K_NODEENV_SHOW_NODE_VERSION=false - # Separate environment name from Node version only with a space. - typeset -g POWERLEVEL9K_NODEENV_{LEFT,RIGHT}_DELIMITER= - # Custom icon. - # typeset -g POWERLEVEL9K_NODEENV_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ##############################[ node_version: node.js version ]############################### - # Node version color. - typeset -g POWERLEVEL9K_NODE_VERSION_FOREGROUND=70 - # Show node version only when in a directory tree containing package.json. - typeset -g POWERLEVEL9K_NODE_VERSION_PROJECT_ONLY=true - # Custom icon. - # typeset -g POWERLEVEL9K_NODE_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐' - - #######################[ go_version: go version (https://golang.org) ]######################## - # Go version color. - typeset -g POWERLEVEL9K_GO_VERSION_FOREGROUND=37 - # Show go version only when in a go project subdirectory. - typeset -g POWERLEVEL9K_GO_VERSION_PROJECT_ONLY=true - # Custom icon. - # typeset -g POWERLEVEL9K_GO_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐' - - #################[ rust_version: rustc version (https://www.rust-lang.org) ]################## - # Rust version color. - typeset -g POWERLEVEL9K_RUST_VERSION_FOREGROUND=37 - # Show rust version only when in a rust project subdirectory. - typeset -g POWERLEVEL9K_RUST_VERSION_PROJECT_ONLY=true - # Custom icon. - # typeset -g POWERLEVEL9K_RUST_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ###############[ dotnet_version: .NET version (https://dotnet.microsoft.com) ]################ - # .NET version color. - typeset -g POWERLEVEL9K_DOTNET_VERSION_FOREGROUND=134 - # Show .NET version only when in a .NET project subdirectory. - typeset -g POWERLEVEL9K_DOTNET_VERSION_PROJECT_ONLY=true - # Custom icon. - # typeset -g POWERLEVEL9K_DOTNET_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐' - - #####################[ php_version: php version (https://www.php.net/) ]###################### - # PHP version color. - typeset -g POWERLEVEL9K_PHP_VERSION_FOREGROUND=99 - # Show PHP version only when in a PHP project subdirectory. - typeset -g POWERLEVEL9K_PHP_VERSION_PROJECT_ONLY=true - # Custom icon. - # typeset -g POWERLEVEL9K_PHP_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ##########[ laravel_version: laravel php framework version (https://laravel.com/) ]########### - # Laravel version color. - typeset -g POWERLEVEL9K_LARAVEL_VERSION_FOREGROUND=161 - # Custom icon. - # typeset -g POWERLEVEL9K_LARAVEL_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ####################[ java_version: java version (https://www.java.com/) ]#################### - # Java version color. - typeset -g POWERLEVEL9K_JAVA_VERSION_FOREGROUND=32 - # Show java version only when in a java project subdirectory. - typeset -g POWERLEVEL9K_JAVA_VERSION_PROJECT_ONLY=true - # Show brief version. - typeset -g POWERLEVEL9K_JAVA_VERSION_FULL=false - # Custom icon. - # typeset -g POWERLEVEL9K_JAVA_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ###[ package: name@version from package.json (https://docs.npmjs.com/files/package.json) ]#### - # Package color. - typeset -g POWERLEVEL9K_PACKAGE_FOREGROUND=117 - # Package format. The following parameters are available within the expansion. - # - # - P9K_PACKAGE_NAME The value of `name` field in package.json. - # - P9K_PACKAGE_VERSION The value of `version` field in package.json. - # - # typeset -g POWERLEVEL9K_PACKAGE_CONTENT_EXPANSION='${P9K_PACKAGE_NAME//\%/%%}@${P9K_PACKAGE_VERSION//\%/%%}' - # Custom icon. - # typeset -g POWERLEVEL9K_PACKAGE_VISUAL_IDENTIFIER_EXPANSION='⭐' - - #############[ rbenv: ruby version from rbenv (https://github.com/rbenv/rbenv) ]############## - # Rbenv color. - typeset -g POWERLEVEL9K_RBENV_FOREGROUND=168 - # Hide ruby version if it doesn't come from one of these sources. - typeset -g POWERLEVEL9K_RBENV_SOURCES=(shell local global) - # If set to false, hide ruby version if it's the same as global: - # $(rbenv version-name) == $(rbenv global). - typeset -g POWERLEVEL9K_RBENV_PROMPT_ALWAYS_SHOW=false - # If set to false, hide ruby version if it's equal to "system". - typeset -g POWERLEVEL9K_RBENV_SHOW_SYSTEM=true - # Custom icon. - # typeset -g POWERLEVEL9K_RBENV_VISUAL_IDENTIFIER_EXPANSION='⭐' - - #######################[ rvm: ruby version from rvm (https://rvm.io) ]######################## - # Rvm color. - typeset -g POWERLEVEL9K_RVM_FOREGROUND=168 - # Don't show @gemset at the end. - typeset -g POWERLEVEL9K_RVM_SHOW_GEMSET=false - # Don't show ruby- at the front. - typeset -g POWERLEVEL9K_RVM_SHOW_PREFIX=false - # Custom icon. - # typeset -g POWERLEVEL9K_RVM_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ###########[ fvm: flutter version management (https://github.com/leoafarias/fvm) ]############ - # Fvm color. - typeset -g POWERLEVEL9K_FVM_FOREGROUND=38 - # Custom icon. - # typeset -g POWERLEVEL9K_FVM_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ##########[ luaenv: lua version from luaenv (https://github.com/cehoffman/luaenv) ]########### - # Lua color. - typeset -g POWERLEVEL9K_LUAENV_FOREGROUND=32 - # Hide lua version if it doesn't come from one of these sources. - typeset -g POWERLEVEL9K_LUAENV_SOURCES=(shell local global) - # If set to false, hide lua version if it's the same as global: - # $(luaenv version-name) == $(luaenv global). - typeset -g POWERLEVEL9K_LUAENV_PROMPT_ALWAYS_SHOW=false - # If set to false, hide lua version if it's equal to "system". - typeset -g POWERLEVEL9K_LUAENV_SHOW_SYSTEM=true - # Custom icon. - # typeset -g POWERLEVEL9K_LUAENV_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ###############[ jenv: java version from jenv (https://github.com/jenv/jenv) ]################ - # Java color. - typeset -g POWERLEVEL9K_JENV_FOREGROUND=32 - # Hide java version if it doesn't come from one of these sources. - typeset -g POWERLEVEL9K_JENV_SOURCES=(shell local global) - # If set to false, hide java version if it's the same as global: - # $(jenv version-name) == $(jenv global). - typeset -g POWERLEVEL9K_JENV_PROMPT_ALWAYS_SHOW=false - # If set to false, hide java version if it's equal to "system". - typeset -g POWERLEVEL9K_JENV_SHOW_SYSTEM=true - # Custom icon. - # typeset -g POWERLEVEL9K_JENV_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ###########[ plenv: perl version from plenv (https://github.com/tokuhirom/plenv) ]############ - # Perl color. - typeset -g POWERLEVEL9K_PLENV_FOREGROUND=67 - # Hide perl version if it doesn't come from one of these sources. - typeset -g POWERLEVEL9K_PLENV_SOURCES=(shell local global) - # If set to false, hide perl version if it's the same as global: - # $(plenv version-name) == $(plenv global). - typeset -g POWERLEVEL9K_PLENV_PROMPT_ALWAYS_SHOW=false - # If set to false, hide perl version if it's equal to "system". - typeset -g POWERLEVEL9K_PLENV_SHOW_SYSTEM=true - # Custom icon. - # typeset -g POWERLEVEL9K_PLENV_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ###########[ perlbrew: perl version from perlbrew (https://github.com/gugod/App-perlbrew) ]############ - # Perlbrew color. - typeset -g POWERLEVEL9K_PERLBREW_FOREGROUND=67 - # Show perlbrew version only when in a perl project subdirectory. - typeset -g POWERLEVEL9K_PERLBREW_PROJECT_ONLY=true - # Don't show "perl-" at the front. - typeset -g POWERLEVEL9K_PERLBREW_SHOW_PREFIX=false - # Custom icon. - # typeset -g POWERLEVEL9K_PERLBREW_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ############[ phpenv: php version from phpenv (https://github.com/phpenv/phpenv) ]############ - # PHP color. - typeset -g POWERLEVEL9K_PHPENV_FOREGROUND=99 - # Hide php version if it doesn't come from one of these sources. - typeset -g POWERLEVEL9K_PHPENV_SOURCES=(shell local global) - # If set to false, hide php version if it's the same as global: - # $(phpenv version-name) == $(phpenv global). - typeset -g POWERLEVEL9K_PHPENV_PROMPT_ALWAYS_SHOW=false - # If set to false, hide php version if it's equal to "system". - typeset -g POWERLEVEL9K_PHPENV_SHOW_SYSTEM=true - # Custom icon. - # typeset -g POWERLEVEL9K_PHPENV_VISUAL_IDENTIFIER_EXPANSION='⭐' - - #######[ scalaenv: scala version from scalaenv (https://github.com/scalaenv/scalaenv) ]####### - # Scala color. - typeset -g POWERLEVEL9K_SCALAENV_FOREGROUND=160 - # Hide scala version if it doesn't come from one of these sources. - typeset -g POWERLEVEL9K_SCALAENV_SOURCES=(shell local global) - # If set to false, hide scala version if it's the same as global: - # $(scalaenv version-name) == $(scalaenv global). - typeset -g POWERLEVEL9K_SCALAENV_PROMPT_ALWAYS_SHOW=false - # If set to false, hide scala version if it's equal to "system". - typeset -g POWERLEVEL9K_SCALAENV_SHOW_SYSTEM=true - # Custom icon. - # typeset -g POWERLEVEL9K_SCALAENV_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ##########[ haskell_stack: haskell version from stack (https://haskellstack.org/) ]########### - # Haskell color. - typeset -g POWERLEVEL9K_HASKELL_STACK_FOREGROUND=172 - # Hide haskell version if it doesn't come from one of these sources. - # - # shell: version is set by STACK_YAML - # local: version is set by stack.yaml up the directory tree - # global: version is set by the implicit global project (~/.stack/global-project/stack.yaml) - typeset -g POWERLEVEL9K_HASKELL_STACK_SOURCES=(shell local) - # If set to false, hide haskell version if it's the same as in the implicit global project. - typeset -g POWERLEVEL9K_HASKELL_STACK_ALWAYS_SHOW=true - # Custom icon. - # typeset -g POWERLEVEL9K_HASKELL_STACK_VISUAL_IDENTIFIER_EXPANSION='⭐' - - #############[ kubecontext: current kubernetes context (https://kubernetes.io/) ]############# - # Show kubecontext only when the command you are typing invokes one of these tools. - # Tip: Remove the next line to always show kubecontext. - typeset -g POWERLEVEL9K_KUBECONTEXT_SHOW_ON_COMMAND='kubectl|helm|kubens|kubectx|oc|istioctl|kogito|k9s|helmfile|flux|fluxctl|stern|kubeseal|skaffold|kubent|kubecolor|cmctl|sparkctl' - - # Kubernetes context classes for the purpose of using different colors, icons and expansions with - # different contexts. - # - # POWERLEVEL9K_KUBECONTEXT_CLASSES is an array with even number of elements. The first element - # in each pair defines a pattern against which the current kubernetes context gets matched. - # More specifically, it's P9K_CONTENT prior to the application of context expansion (see below) - # that gets matched. If you unset all POWERLEVEL9K_KUBECONTEXT_*CONTENT_EXPANSION parameters, - # you'll see this value in your prompt. The second element of each pair in - # POWERLEVEL9K_KUBECONTEXT_CLASSES defines the context class. Patterns are tried in order. The - # first match wins. - # - # For example, given these settings: - # - # typeset -g POWERLEVEL9K_KUBECONTEXT_CLASSES=( - # '*prod*' PROD - # '*test*' TEST - # '*' DEFAULT) - # - # If your current kubernetes context is "deathray-testing/default", its class is TEST - # because "deathray-testing/default" doesn't match the pattern '*prod*' but does match '*test*'. - # - # You can define different colors, icons and content expansions for different classes: - # - # typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_FOREGROUND=28 - # typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_CONTENT_EXPANSION='> ${P9K_CONTENT} <' - typeset -g POWERLEVEL9K_KUBECONTEXT_CLASSES=( - # '*prod*' PROD # These values are examples that are unlikely - # '*test*' TEST # to match your needs. Customize them as needed. - '*' DEFAULT) - typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_FOREGROUND=134 - # typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_VISUAL_IDENTIFIER_EXPANSION='⭐' - - # Use POWERLEVEL9K_KUBECONTEXT_CONTENT_EXPANSION to specify the content displayed by kubecontext - # segment. Parameter expansions are very flexible and fast, too. See reference: - # http://zsh.sourceforge.net/Doc/Release/Expansion.html#Parameter-Expansion. - # - # Within the expansion the following parameters are always available: - # - # - P9K_CONTENT The content that would've been displayed if there was no content - # expansion defined. - # - P9K_KUBECONTEXT_NAME The current context's name. Corresponds to column NAME in the - # output of `kubectl config get-contexts`. - # - P9K_KUBECONTEXT_CLUSTER The current context's cluster. Corresponds to column CLUSTER in the - # output of `kubectl config get-contexts`. - # - P9K_KUBECONTEXT_NAMESPACE The current context's namespace. Corresponds to column NAMESPACE - # in the output of `kubectl config get-contexts`. If there is no - # namespace, the parameter is set to "default". - # - P9K_KUBECONTEXT_USER The current context's user. Corresponds to column AUTHINFO in the - # output of `kubectl config get-contexts`. - # - # If the context points to Google Kubernetes Engine (GKE) or Elastic Kubernetes Service (EKS), - # the following extra parameters are available: - # - # - P9K_KUBECONTEXT_CLOUD_NAME Either "gke" or "eks". - # - P9K_KUBECONTEXT_CLOUD_ACCOUNT Account/project ID. - # - P9K_KUBECONTEXT_CLOUD_ZONE Availability zone. - # - P9K_KUBECONTEXT_CLOUD_CLUSTER Cluster. - # - # P9K_KUBECONTEXT_CLOUD_* parameters are derived from P9K_KUBECONTEXT_CLUSTER. For example, - # if P9K_KUBECONTEXT_CLUSTER is "gke_my-account_us-east1-a_my-cluster-01": - # - # - P9K_KUBECONTEXT_CLOUD_NAME=gke - # - P9K_KUBECONTEXT_CLOUD_ACCOUNT=my-account - # - P9K_KUBECONTEXT_CLOUD_ZONE=us-east1-a - # - P9K_KUBECONTEXT_CLOUD_CLUSTER=my-cluster-01 - # - # If P9K_KUBECONTEXT_CLUSTER is "arn:aws:eks:us-east-1:123456789012:cluster/my-cluster-01": - # - # - P9K_KUBECONTEXT_CLOUD_NAME=eks - # - P9K_KUBECONTEXT_CLOUD_ACCOUNT=123456789012 - # - P9K_KUBECONTEXT_CLOUD_ZONE=us-east-1 - # - P9K_KUBECONTEXT_CLOUD_CLUSTER=my-cluster-01 - typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_CONTENT_EXPANSION= - # Show P9K_KUBECONTEXT_CLOUD_CLUSTER if it's not empty and fall back to P9K_KUBECONTEXT_NAME. - POWERLEVEL9K_KUBECONTEXT_DEFAULT_CONTENT_EXPANSION+='${P9K_KUBECONTEXT_CLOUD_CLUSTER:-${P9K_KUBECONTEXT_NAME}}' - # Append the current context's namespace if it's not "default". - POWERLEVEL9K_KUBECONTEXT_DEFAULT_CONTENT_EXPANSION+='${${:-/$P9K_KUBECONTEXT_NAMESPACE}:#/default}' - - # Custom prefix. - typeset -g POWERLEVEL9K_KUBECONTEXT_PREFIX='%fat ' - - ################[ terraform: terraform workspace (https://www.terraform.io) ]################# - # Don't show terraform workspace if it's literally "default". - typeset -g POWERLEVEL9K_TERRAFORM_SHOW_DEFAULT=false - # POWERLEVEL9K_TERRAFORM_CLASSES is an array with even number of elements. The first element - # in each pair defines a pattern against which the current terraform workspace gets matched. - # More specifically, it's P9K_CONTENT prior to the application of context expansion (see below) - # that gets matched. If you unset all POWERLEVEL9K_TERRAFORM_*CONTENT_EXPANSION parameters, - # you'll see this value in your prompt. The second element of each pair in - # POWERLEVEL9K_TERRAFORM_CLASSES defines the workspace class. Patterns are tried in order. The - # first match wins. - # - # For example, given these settings: - # - # typeset -g POWERLEVEL9K_TERRAFORM_CLASSES=( - # '*prod*' PROD - # '*test*' TEST - # '*' OTHER) - # - # If your current terraform workspace is "project_test", its class is TEST because "project_test" - # doesn't match the pattern '*prod*' but does match '*test*'. - # - # You can define different colors, icons and content expansions for different classes: - # - # typeset -g POWERLEVEL9K_TERRAFORM_TEST_FOREGROUND=28 - # typeset -g POWERLEVEL9K_TERRAFORM_TEST_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_TERRAFORM_TEST_CONTENT_EXPANSION='> ${P9K_CONTENT} <' - typeset -g POWERLEVEL9K_TERRAFORM_CLASSES=( - # '*prod*' PROD # These values are examples that are unlikely - # '*test*' TEST # to match your needs. Customize them as needed. - '*' OTHER) - typeset -g POWERLEVEL9K_TERRAFORM_OTHER_FOREGROUND=38 - # typeset -g POWERLEVEL9K_TERRAFORM_OTHER_VISUAL_IDENTIFIER_EXPANSION='⭐' - - #############[ terraform_version: terraform version (https://www.terraform.io) ]############## - # Terraform version color. - typeset -g POWERLEVEL9K_TERRAFORM_VERSION_FOREGROUND=38 - # Custom icon. - # typeset -g POWERLEVEL9K_TERRAFORM_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐' - - #[ aws: aws profile (https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html) ]# - # Show aws only when the command you are typing invokes one of these tools. - # Tip: Remove the next line to always show aws. - typeset -g POWERLEVEL9K_AWS_SHOW_ON_COMMAND='aws|awless|cdk|terraform|pulumi|terragrunt' - - # POWERLEVEL9K_AWS_CLASSES is an array with even number of elements. The first element - # in each pair defines a pattern against which the current AWS profile gets matched. - # More specifically, it's P9K_CONTENT prior to the application of context expansion (see below) - # that gets matched. If you unset all POWERLEVEL9K_AWS_*CONTENT_EXPANSION parameters, - # you'll see this value in your prompt. The second element of each pair in - # POWERLEVEL9K_AWS_CLASSES defines the profile class. Patterns are tried in order. The - # first match wins. - # - # For example, given these settings: - # - # typeset -g POWERLEVEL9K_AWS_CLASSES=( - # '*prod*' PROD - # '*test*' TEST - # '*' DEFAULT) - # - # If your current AWS profile is "company_test", its class is TEST - # because "company_test" doesn't match the pattern '*prod*' but does match '*test*'. - # - # You can define different colors, icons and content expansions for different classes: - # - # typeset -g POWERLEVEL9K_AWS_TEST_FOREGROUND=28 - # typeset -g POWERLEVEL9K_AWS_TEST_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_AWS_TEST_CONTENT_EXPANSION='> ${P9K_CONTENT} <' - typeset -g POWERLEVEL9K_AWS_CLASSES=( - # '*prod*' PROD # These values are examples that are unlikely - # '*test*' TEST # to match your needs. Customize them as needed. - '*' DEFAULT) - typeset -g POWERLEVEL9K_AWS_DEFAULT_FOREGROUND=208 - # typeset -g POWERLEVEL9K_AWS_DEFAULT_VISUAL_IDENTIFIER_EXPANSION='⭐' - - # AWS segment format. The following parameters are available within the expansion. - # - # - P9K_AWS_PROFILE The name of the current AWS profile. - # - P9K_AWS_REGION The region associated with the current AWS profile. - typeset -g POWERLEVEL9K_AWS_CONTENT_EXPANSION='${P9K_AWS_PROFILE//\%/%%}${P9K_AWS_REGION:+ ${P9K_AWS_REGION//\%/%%}}' - - #[ aws_eb_env: aws elastic beanstalk environment (https://aws.amazon.com/elasticbeanstalk/) ]# - # AWS Elastic Beanstalk environment color. - typeset -g POWERLEVEL9K_AWS_EB_ENV_FOREGROUND=70 - # Custom icon. - # typeset -g POWERLEVEL9K_AWS_EB_ENV_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ##########[ azure: azure account name (https://docs.microsoft.com/en-us/cli/azure) ]########## - # Show azure only when the command you are typing invokes one of these tools. - # Tip: Remove the next line to always show azure. - typeset -g POWERLEVEL9K_AZURE_SHOW_ON_COMMAND='az|terraform|pulumi|terragrunt' - - # POWERLEVEL9K_AZURE_CLASSES is an array with even number of elements. The first element - # in each pair defines a pattern against which the current azure account name gets matched. - # More specifically, it's P9K_CONTENT prior to the application of context expansion (see below) - # that gets matched. If you unset all POWERLEVEL9K_AZURE_*CONTENT_EXPANSION parameters, - # you'll see this value in your prompt. The second element of each pair in - # POWERLEVEL9K_AZURE_CLASSES defines the account class. Patterns are tried in order. The - # first match wins. - # - # For example, given these settings: - # - # typeset -g POWERLEVEL9K_AZURE_CLASSES=( - # '*prod*' PROD - # '*test*' TEST - # '*' OTHER) - # - # If your current azure account is "company_test", its class is TEST because "company_test" - # doesn't match the pattern '*prod*' but does match '*test*'. - # - # You can define different colors, icons and content expansions for different classes: - # - # typeset -g POWERLEVEL9K_AZURE_TEST_FOREGROUND=28 - # typeset -g POWERLEVEL9K_AZURE_TEST_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_AZURE_TEST_CONTENT_EXPANSION='> ${P9K_CONTENT} <' - typeset -g POWERLEVEL9K_AZURE_CLASSES=( - # '*prod*' PROD # These values are examples that are unlikely - # '*test*' TEST # to match your needs. Customize them as needed. - '*' OTHER) - - # Azure account name color. - typeset -g POWERLEVEL9K_AZURE_OTHER_FOREGROUND=32 - # Custom icon. - # typeset -g POWERLEVEL9K_AZURE_OTHER_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ##########[ gcloud: google cloud account and project (https://cloud.google.com/) ]########### - # Show gcloud only when the command you are typing invokes one of these tools. - # Tip: Remove the next line to always show gcloud. - typeset -g POWERLEVEL9K_GCLOUD_SHOW_ON_COMMAND='gcloud|gcs|gsutil' - # Google cloud color. - typeset -g POWERLEVEL9K_GCLOUD_FOREGROUND=32 - - # Google cloud format. Change the value of POWERLEVEL9K_GCLOUD_PARTIAL_CONTENT_EXPANSION and/or - # POWERLEVEL9K_GCLOUD_COMPLETE_CONTENT_EXPANSION if the default is too verbose or not informative - # enough. You can use the following parameters in the expansions. Each of them corresponds to the - # output of `gcloud` tool. - # - # Parameter | Source - # -------------------------|-------------------------------------------------------------------- - # P9K_GCLOUD_CONFIGURATION | gcloud config configurations list --format='value(name)' - # P9K_GCLOUD_ACCOUNT | gcloud config get-value account - # P9K_GCLOUD_PROJECT_ID | gcloud config get-value project - # P9K_GCLOUD_PROJECT_NAME | gcloud projects describe $P9K_GCLOUD_PROJECT_ID --format='value(name)' - # - # Note: ${VARIABLE//\%/%%} expands to ${VARIABLE} with all occurrences of '%' replaced with '%%'. - # - # Obtaining project name requires sending a request to Google servers. This can take a long time - # and even fail. When project name is unknown, P9K_GCLOUD_PROJECT_NAME is not set and gcloud - # prompt segment is in state PARTIAL. When project name gets known, P9K_GCLOUD_PROJECT_NAME gets - # set and gcloud prompt segment transitions to state COMPLETE. - # - # You can customize the format, icon and colors of gcloud segment separately for states PARTIAL - # and COMPLETE. You can also hide gcloud in state PARTIAL by setting - # POWERLEVEL9K_GCLOUD_PARTIAL_VISUAL_IDENTIFIER_EXPANSION and - # POWERLEVEL9K_GCLOUD_PARTIAL_CONTENT_EXPANSION to empty. - typeset -g POWERLEVEL9K_GCLOUD_PARTIAL_CONTENT_EXPANSION='${P9K_GCLOUD_PROJECT_ID//\%/%%}' - typeset -g POWERLEVEL9K_GCLOUD_COMPLETE_CONTENT_EXPANSION='${P9K_GCLOUD_PROJECT_NAME//\%/%%}' - - # Send a request to Google (by means of `gcloud projects describe ...`) to obtain project name - # this often. Negative value disables periodic polling. In this mode project name is retrieved - # only when the current configuration, account or project id changes. - typeset -g POWERLEVEL9K_GCLOUD_REFRESH_PROJECT_NAME_SECONDS=60 - - # Custom icon. - # typeset -g POWERLEVEL9K_GCLOUD_VISUAL_IDENTIFIER_EXPANSION='⭐' - - #[ google_app_cred: google application credentials (https://cloud.google.com/docs/authentication/production) ]# - # Show google_app_cred only when the command you are typing invokes one of these tools. - # Tip: Remove the next line to always show google_app_cred. - typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_SHOW_ON_COMMAND='terraform|pulumi|terragrunt' - - # Google application credentials classes for the purpose of using different colors, icons and - # expansions with different credentials. - # - # POWERLEVEL9K_GOOGLE_APP_CRED_CLASSES is an array with even number of elements. The first - # element in each pair defines a pattern against which the current kubernetes context gets - # matched. More specifically, it's P9K_CONTENT prior to the application of context expansion - # (see below) that gets matched. If you unset all POWERLEVEL9K_GOOGLE_APP_CRED_*CONTENT_EXPANSION - # parameters, you'll see this value in your prompt. The second element of each pair in - # POWERLEVEL9K_GOOGLE_APP_CRED_CLASSES defines the context class. Patterns are tried in order. - # The first match wins. - # - # For example, given these settings: - # - # typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_CLASSES=( - # '*:*prod*:*' PROD - # '*:*test*:*' TEST - # '*' DEFAULT) - # - # If your current Google application credentials is "service_account deathray-testing x@y.com", - # its class is TEST because it doesn't match the pattern '* *prod* *' but does match '* *test* *'. - # - # You can define different colors, icons and content expansions for different classes: - # - # typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_TEST_FOREGROUND=28 - # typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_TEST_VISUAL_IDENTIFIER_EXPANSION='⭐' - # typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_TEST_CONTENT_EXPANSION='$P9K_GOOGLE_APP_CRED_PROJECT_ID' - typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_CLASSES=( - # '*:*prod*:*' PROD # These values are examples that are unlikely - # '*:*test*:*' TEST # to match your needs. Customize them as needed. - '*' DEFAULT) - typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_DEFAULT_FOREGROUND=32 - # typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_DEFAULT_VISUAL_IDENTIFIER_EXPANSION='⭐' - - # Use POWERLEVEL9K_GOOGLE_APP_CRED_CONTENT_EXPANSION to specify the content displayed by - # google_app_cred segment. Parameter expansions are very flexible and fast, too. See reference: - # http://zsh.sourceforge.net/Doc/Release/Expansion.html#Parameter-Expansion. - # - # You can use the following parameters in the expansion. Each of them corresponds to one of the - # fields in the JSON file pointed to by GOOGLE_APPLICATION_CREDENTIALS. - # - # Parameter | JSON key file field - # ---------------------------------+--------------- - # P9K_GOOGLE_APP_CRED_TYPE | type - # P9K_GOOGLE_APP_CRED_PROJECT_ID | project_id - # P9K_GOOGLE_APP_CRED_CLIENT_EMAIL | client_email - # - # Note: ${VARIABLE//\%/%%} expands to ${VARIABLE} with all occurrences of '%' replaced by '%%'. - typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_DEFAULT_CONTENT_EXPANSION='${P9K_GOOGLE_APP_CRED_PROJECT_ID//\%/%%}' - - ##############[ toolbox: toolbox name (https://github.com/containers/toolbox) ]############### - # Toolbox color. - typeset -g POWERLEVEL9K_TOOLBOX_FOREGROUND=178 - # Don't display the name of the toolbox if it matches fedora-toolbox-*. - typeset -g POWERLEVEL9K_TOOLBOX_CONTENT_EXPANSION='${P9K_TOOLBOX_NAME:#fedora-toolbox-*}' - # Custom icon. - # typeset -g POWERLEVEL9K_TOOLBOX_VISUAL_IDENTIFIER_EXPANSION='⭐' - # Custom prefix. - typeset -g POWERLEVEL9K_TOOLBOX_PREFIX='%fin ' - - ###############################[ public_ip: public IP address ]############################### - # Public IP color. - typeset -g POWERLEVEL9K_PUBLIC_IP_FOREGROUND=94 - # Custom icon. - # typeset -g POWERLEVEL9K_PUBLIC_IP_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ########################[ vpn_ip: virtual private network indicator ]######################### - # VPN IP color. - typeset -g POWERLEVEL9K_VPN_IP_FOREGROUND=81 - # When on VPN, show just an icon without the IP address. - # Tip: To display the private IP address when on VPN, remove the next line. - typeset -g POWERLEVEL9K_VPN_IP_CONTENT_EXPANSION= - # Regular expression for the VPN network interface. Run `ifconfig` or `ip -4 a show` while on VPN - # to see the name of the interface. - typeset -g POWERLEVEL9K_VPN_IP_INTERFACE='(gpd|wg|(.*tun)|tailscale)[0-9]*|(zt.*)' - # If set to true, show one segment per matching network interface. If set to false, show only - # one segment corresponding to the first matching network interface. - # Tip: If you set it to true, you'll probably want to unset POWERLEVEL9K_VPN_IP_CONTENT_EXPANSION. - typeset -g POWERLEVEL9K_VPN_IP_SHOW_ALL=false - # Custom icon. - # typeset -g POWERLEVEL9K_VPN_IP_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ###########[ ip: ip address and bandwidth usage for a specified network interface ]########### - # IP color. - typeset -g POWERLEVEL9K_IP_FOREGROUND=38 - # The following parameters are accessible within the expansion: - # - # Parameter | Meaning - # ----------------------+------------------------------------------- - # P9K_IP_IP | IP address - # P9K_IP_INTERFACE | network interface - # P9K_IP_RX_BYTES | total number of bytes received - # P9K_IP_TX_BYTES | total number of bytes sent - # P9K_IP_RX_BYTES_DELTA | number of bytes received since last prompt - # P9K_IP_TX_BYTES_DELTA | number of bytes sent since last prompt - # P9K_IP_RX_RATE | receive rate (since last prompt) - # P9K_IP_TX_RATE | send rate (since last prompt) - typeset -g POWERLEVEL9K_IP_CONTENT_EXPANSION='$P9K_IP_IP${P9K_IP_RX_RATE:+ %70F⇣$P9K_IP_RX_RATE}${P9K_IP_TX_RATE:+ %215F⇡$P9K_IP_TX_RATE}' - # Show information for the first network interface whose name matches this regular expression. - # Run `ifconfig` or `ip -4 a show` to see the names of all network interfaces. - typeset -g POWERLEVEL9K_IP_INTERFACE='[ew].*' - # Custom icon. - # typeset -g POWERLEVEL9K_IP_VISUAL_IDENTIFIER_EXPANSION='⭐' - - #########################[ proxy: system-wide http/https/ftp proxy ]########################## - # Proxy color. - typeset -g POWERLEVEL9K_PROXY_FOREGROUND=68 - # Custom icon. - # typeset -g POWERLEVEL9K_PROXY_VISUAL_IDENTIFIER_EXPANSION='⭐' - - ################################[ battery: internal battery ]################################# - # Show battery in red when it's below this level and not connected to power supply. - typeset -g POWERLEVEL9K_BATTERY_LOW_THRESHOLD=20 - typeset -g POWERLEVEL9K_BATTERY_LOW_FOREGROUND=160 - # Show battery in green when it's charging or fully charged. - typeset -g POWERLEVEL9K_BATTERY_{CHARGING,CHARGED}_FOREGROUND=70 - # Show battery in yellow when it's discharging. - typeset -g POWERLEVEL9K_BATTERY_DISCONNECTED_FOREGROUND=178 - # Battery pictograms going from low to high level of charge. - typeset -g POWERLEVEL9K_BATTERY_STAGES='\uf58d\uf579\uf57a\uf57b\uf57c\uf57d\uf57e\uf57f\uf580\uf581\uf578' - # Don't show the remaining time to charge/discharge. - typeset -g POWERLEVEL9K_BATTERY_VERBOSE=false - - #####################################[ wifi: wifi speed ]##################################### - # WiFi color. - typeset -g POWERLEVEL9K_WIFI_FOREGROUND=68 - # Custom icon. - # typeset -g POWERLEVEL9K_WIFI_VISUAL_IDENTIFIER_EXPANSION='⭐' - - # Use different colors and icons depending on signal strength ($P9K_WIFI_BARS). - # - # # Wifi colors and icons for different signal strength levels (low to high). - # typeset -g my_wifi_fg=(68 68 68 68 68) # <-- change these values - # typeset -g my_wifi_icon=('WiFi' 'WiFi' 'WiFi' 'WiFi' 'WiFi') # <-- change these values - # - # typeset -g POWERLEVEL9K_WIFI_CONTENT_EXPANSION='%F{${my_wifi_fg[P9K_WIFI_BARS+1]}}$P9K_WIFI_LAST_TX_RATE Mbps' - # typeset -g POWERLEVEL9K_WIFI_VISUAL_IDENTIFIER_EXPANSION='%F{${my_wifi_fg[P9K_WIFI_BARS+1]}}${my_wifi_icon[P9K_WIFI_BARS+1]}' - # - # The following parameters are accessible within the expansions: - # - # Parameter | Meaning - # ----------------------+--------------- - # P9K_WIFI_SSID | service set identifier, a.k.a. network name - # P9K_WIFI_LINK_AUTH | authentication protocol such as "wpa2-psk" or "none"; empty if unknown - # P9K_WIFI_LAST_TX_RATE | wireless transmit rate in megabits per second - # P9K_WIFI_RSSI | signal strength in dBm, from -120 to 0 - # P9K_WIFI_NOISE | noise in dBm, from -120 to 0 - # P9K_WIFI_BARS | signal strength in bars, from 0 to 4 (derived from P9K_WIFI_RSSI and P9K_WIFI_NOISE) - - ####################################[ time: current time ]#################################### - # Current time color. - typeset -g POWERLEVEL9K_TIME_FOREGROUND=66 - # Format for the current time: 09:51:02. See `man 3 strftime`. - typeset -g POWERLEVEL9K_TIME_FORMAT='%D{%I:%M:%S %p}' - # If set to true, time will update when you hit enter. This way prompts for the past - # commands will contain the start times of their commands as opposed to the default - # behavior where they contain the end times of their preceding commands. - typeset -g POWERLEVEL9K_TIME_UPDATE_ON_COMMAND=false - # Custom icon. - # typeset -g POWERLEVEL9K_TIME_VISUAL_IDENTIFIER_EXPANSION='⭐' - # Custom prefix. - typeset -g POWERLEVEL9K_TIME_PREFIX='%fat ' - - # Example of a user-defined prompt segment. Function prompt_example will be called on every - # prompt if `example` prompt segment is added to POWERLEVEL9K_LEFT_PROMPT_ELEMENTS or - # POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS. It displays an icon and orange text greeting the user. - # - # Type `p10k help segment` for documentation and a more sophisticated example. - function prompt_example() { - p10k segment -f 208 -i '⭐' -t 'hello, %n' - } - - # User-defined prompt segments may optionally provide an instant_prompt_* function. Its job - # is to generate the prompt segment for display in instant prompt. See - # https://github.com/romkatv/powerlevel10k/blob/master/README.md#instant-prompt. - # - # Powerlevel10k will call instant_prompt_* at the same time as the regular prompt_* function - # and will record all `p10k segment` calls it makes. When displaying instant prompt, Powerlevel10k - # will replay these calls without actually calling instant_prompt_*. It is imperative that - # instant_prompt_* always makes the same `p10k segment` calls regardless of environment. If this - # rule is not observed, the content of instant prompt will be incorrect. - # - # Usually, you should either not define instant_prompt_* or simply call prompt_* from it. If - # instant_prompt_* is not defined for a segment, the segment won't be shown in instant prompt. - function instant_prompt_example() { - # Since prompt_example always makes the same `p10k segment` calls, we can call it from - # instant_prompt_example. This will give us the same `example` prompt segment in the instant - # and regular prompts. - prompt_example - } - - # User-defined prompt segments can be customized the same way as built-in segments. - # typeset -g POWERLEVEL9K_EXAMPLE_FOREGROUND=208 - # typeset -g POWERLEVEL9K_EXAMPLE_VISUAL_IDENTIFIER_EXPANSION='⭐' - - # Transient prompt works similarly to the builtin transient_rprompt option. It trims down prompt - # when accepting a command line. Supported values: - # - # - off: Don't change prompt when accepting a command line. - # - always: Trim down prompt when accepting a command line. - # - same-dir: Trim down prompt when accepting a command line unless this is the first command - # typed after changing current working directory. - typeset -g POWERLEVEL9K_TRANSIENT_PROMPT=always - - # Instant prompt mode. - # - # - off: Disable instant prompt. Choose this if you've tried instant prompt and found - # it incompatible with your zsh configuration files. - # - quiet: Enable instant prompt and don't print warnings when detecting console output - # during zsh initialization. Choose this if you've read and understood - # https://github.com/romkatv/powerlevel10k/blob/master/README.md#instant-prompt. - # - verbose: Enable instant prompt and print a warning when detecting console output during - # zsh initialization. Choose this if you've never tried instant prompt, haven't - # seen the warning, or if you are unsure what this all means. - typeset -g POWERLEVEL9K_INSTANT_PROMPT=verbose - - # Hot reload allows you to change POWERLEVEL9K options after Powerlevel10k has been initialized. - # For example, you can type POWERLEVEL9K_BACKGROUND=red and see your prompt turn red. Hot reload - # can slow down prompt by 1-2 milliseconds, so it's better to keep it turned off unless you - # really need it. - typeset -g POWERLEVEL9K_DISABLE_HOT_RELOAD=true - - # If p10k is already loaded, reload configuration. - # This works even with POWERLEVEL9K_DISABLE_HOT_RELOAD=true. - (( ! $+functions[p10k] )) || p10k reload -} - -# Tell `p10k configure` which file it should overwrite. -typeset -g POWERLEVEL9K_CONFIG_FILE=${${(%):-%x}:a} - -(( ${#p10k_config_opts} )) && setopt ${p10k_config_opts[@]} -'builtin' 'unset' 'p10k_config_opts' diff --git a/home-manager/features/desktop/common/default.nix b/home-manager/features/desktop/common/default.nix deleted file mode 100644 index 5b6fc13..0000000 --- a/home-manager/features/desktop/common/default.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ - lib, - pkgs, - config, - ... -}: { - imports = [ - ]; - - # dconf.settings."org/gnome/desktop/interface".color-scheme = - # if config.colorscheme.variant == "dark" - # then "prefer-dark" - # else if config.colorscheme.variant == "light" - # then "prefer-light" - # else "default"; - - # xdg.portal.enable = true; -} diff --git a/home-manager/features/desktop/common/wayland-wm/default.nix b/home-manager/features/desktop/common/wayland-wm/default.nix deleted file mode 100644 index c6e2c10..0000000 --- a/home-manager/features/desktop/common/wayland-wm/default.nix +++ /dev/null @@ -1,29 +0,0 @@ -{pkgs, ...}: { - imports = []; - - xdg.mimeApps.enable = true; - home.packages = with pkgs; [ - grim - gtk3 - imv - mimeo - # primary-xwayland - pulseaudio - slurp - waypipe - wf-recorder - wl-clipboard - wl-mirror - # wl-mirror-pick - xdg-utils - ydotool - ]; - - home.sessionVariables = { - MOZ_ENABLE_WAYLAND = 1; - QT_QPA_PLATFORM = "wayland"; - LIBSEAT_BACKEND = "logind"; - }; - - # xdg.portal.extraPortals = [pkgs.xdg-desktop-portal-wlr]; -} diff --git a/home-manager/features/desktop/dwm/.xinitrc b/home-manager/features/desktop/dwm/.xinitrc deleted file mode 100755 index 5b10dde..0000000 --- a/home-manager/features/desktop/dwm/.xinitrc +++ /dev/null @@ -1,143 +0,0 @@ -#!/bin/sh - -# screenlayout setup for odin -autorandr -c - -# start some nice programs -# if [ -d /etc/X11/xinit/xinitrc.d ] ; then -# for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do -# # shellcheck source=/dev/null -# [ -x "$f" ] && . "$f" -# done -# unset f -# fi - -xset -b # disable bell - -export SSH_AUTH_SOCK; -# export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/ssh-agent.socket" -# ssh-agent -d & - - -# ssh agent setup -#eval `/usr/bin/ssh-agent` -# -#if test -f /usr/lib/openssh/x11-ssh-askpass # Archlinux -#then -# SSH_ASKPASS=/usr/lib/openssh/x11-ssh-askpass ssh-add < /dev/null -#fi -# -#if test -f /usr/lib/ssh/x11-ssh-askpass # Debian -#then -# SSH_ASKPASS=/usr/lib/ssh/x11-ssh-askpass ssh-add < /dev/null -#fi - -# theming -export QT_QPA_PLATFORMTHEME=qt5ct -export DESKTOP_SESSION=plasma -export XDG_CURRENT_DESKTOP=dwm - -# IMF configuration (fcitx5) -export GTK_IM_MODULE=fcitx -export QT_IM_MODULE=fcitx -export XMODIFIERS=@im=fcitx -export GLFW_IM_MODULE=ibus - -# compositor -picom -b --vsync & - -# fix android studio interface -export _JAVA_AWT_WM_NONREPARENTING=1 & - -# set keyboard layout -setxkbmap pl & -# IMF daemon -# fcitx5 -d & - -# enable local fonts in .fonts directory -# xset +fp /usr/share/fonts/local & -# xset +fp /usr/share/fonts/misc & -# xset +fp ~/.fonts & -# xset fp rehash & -# fc-cache -fv & - -# powersaving options -# xset s off & -# xset s noblank & -# xset s noexpose & -# xset s on & -# xset -dpms & -# xset s 900 & -xset +dpms & -xset dpms 1200 1800 2100 & -xset s on & -xset s 900 & - -# auths -# /usr/lib/mate-polkit/polkit-mate-authentication-agent-1 & -# gnome-keyring-daemon & -# source /etc/X11/xinit/xinitrc.d/50-systemd-user.sh - -## Map super key to trigger rofi when used alone -# xcape -e 'Super_L=Super_L|Shift_L|space' & - -# wallpaper engine and theming -# nitrogen --restore & -# wal --backend colorz -i $HOME/.dots/nitrogen/.config/nitrogen/pexels-engin-akyurt-1435752.jpg & -. ~/.fehbg & - -## Set screen locker -xss-lock -v -- betterlockscreen -l --time-format '%I:%M %p' & - -## Desktop portal -/usr/lib/xdg-desktop-portal-gtk & - -# notification daemon -dunst & - -## Screenshot daemon -flameshot & - -# Easyeffects daemon -# easyeffects --gapplication-service & - -## Telegram daemon -# telegram-desktop -startintray & - -## Caffeine-ng -# caffeine >/dev/null 2>&1 & - -## Ulauncher -# ulauncher --hide-window --no-window-shadow >/dev/null 2>&1 & - -# Emacs Server -# emacs --daemon & - -# Theme changing service -# xsettingsd & - -# Theming service -# dusk & - -# Alacritty config -# $HOME/.config/alacritty/theme-patcher.sh & - -## THINKPAD-SPECIFIC -#hash dockd && dockd --daemon & - -# status bar -bash bar.sh & disown - -dbus-update-activation-environment --systemd DBUS_SESSION_BUS_ADDRESS DISPLAY XAUTHORITY - -# . /etc/X11/Xsession - -# redshift & - -# some merges -# xrdb merge .Xresources & -# xsetroot -cursor_name left_ptr & - -# start dwm -exec dwm - diff --git a/home-manager/features/desktop/dwm/.zprofile b/home-manager/features/desktop/dwm/.zprofile deleted file mode 100644 index 1aa1531..0000000 --- a/home-manager/features/desktop/dwm/.zprofile +++ /dev/null @@ -1,3 +0,0 @@ -if [ "$(tty)" = "/dev/tty1" ];then - exec startx -fi diff --git a/home-manager/features/desktop/dwm/bar.sh b/home-manager/features/desktop/dwm/bar.sh deleted file mode 100644 index 79147c1..0000000 --- a/home-manager/features/desktop/dwm/bar.sh +++ /dev/null @@ -1,181 +0,0 @@ -#!/bin/bash - -function lighten_color() { - offset=20 - - hex_color=$1 - hex_color=${hex_color:1} - - red=${hex_color:0:2} - green=${hex_color:2:2} - blue=${hex_color:4:2} - - red_dec=$(printf "%d" 0x$red) - green_dec=$(printf "%d" 0x$green) - blue_dec=$(printf "%d" 0x$blue) - - if [[ $red_dec -lt 128 ]]; then - red_dec_l=$((red_dec+offset)) - green_dec_l=$((green_dec+offset)) - blue_dec_l=$((blue_dec+offset)) - else - red_dec_l=$((red_dec-offset)) - green_dec_l=$((green_dec-offset)) - blue_dec_l=$((blue_dec-offset)) - fi - - red=$(printf "%02X" $red_dec_l) - green=$(printf "%02X" $green_dec_l) - blue=$(printf "%02X" $blue_dec_l) - - echo "#$red$green$blue" -} - -# ^c$var^ = fg color -# ^b$var^ = bg color - -interval=0 - -# load colors -# . ~/.config/bar_themes/onedark - -# colors - -rosewater=#f4dbd6 -flamingo=#f0c6c6 -pink=#f5bde6 -mauve=#c6a0f6 -red=#fb4934 -maroon=#ee99a0 -peach=#f5a97f -yellow=#eed49f -green=#b8bb26 -teal=#8bd5ca -sky=#91d7e3 -sapphire=#7dc4e4 -blue=#8aadf4 -lavender=#b7bdf8 -text=#cad3f5 -subtext1=#b8c0e0 -subtext0=#a5adcb -overlay2=#939ab7 -overlay1=#8087a2 -overlay0=#6e738d -surface2=#5b6078 -surface1=#494d64 -surface0=#363a4f -base=#24273a -mantle=#1e2030 -crust=#181926 - -# Special -background=#282828 -foreground=#ebdbb2 -cursor=#ebdbb2 - -# Colors -color0=#05090e -color1=#425965 -color2=#016b86 -color3=#1f7284 -color4=#48717a -color5=#358292 -color6=#79796b -color7=#828486 -color8=#43464a -color9=#597787 -color10=#028FB3 -color11=#2A99B1 -color12=#6097A3 -color13=#47AEC3 -color14=#A2A28F -color15=#c0c1c2 - -background0=$(lighten_color $background) -background1=$(lighten_color $background0) -background2=$(lighten_color $background1) - -pulse () { - VOL=$(pamixer --get-volume) - STATE=$(pamixer --get-mute) - - printf "%s" "$SEP1" - if [ "$STATE" = "true" ] || [ "$VOL" -eq 0 ]; then - printf "AMUT%%" - elif [ "$VOL" -gt 0 ] && [ "$VOL" -le 33 ]; then - printf "A%s%%" "$VOL" - elif [ "$VOL" -gt 33 ] && [ "$VOL" -le 66 ]; then - printf "A%s%%" "$VOL" - else - printf "A%s%%" "$VOL" - fi - printf "%s\n" "$SEP2" -} - -cpu() { - cpu_val=$(grep -o "^[^ ]*" /proc/loadavg) - - printf "^c$background^ ^b$yellow^ 󰇄 " - printf "^c$background^ ^b$yellow^$cpu_val" -} - -battery() { - capacity_0="$(cat /sys/class/power_supply/BAT0/capacity)" - capacity_1="$(cat /sys/class/power_supply/BAT1/capacity)" - - capacity="$capacity_0+$capacity_1" - # capacity=$(((capacity_0 + capacity_1) / 2)) - - printf " B$capacity%% " -} - -brightness() { - value=$(cat /sys/class/backlight/*/brightness) - percentage=$(echo "scale=2; $value / 8.54" | bc) - printf "L%.0f%%" "$percentage" -} - -mem() { - printf "^c$background^^b$green^  " - printf "^c$background^^b$green^ $(free -h | awk '/^Mem/ { print $3 }' | sed s/i//g)" -} - -wlan() { - case "$(cat /sys/class/net/wl*/operstate 2>/dev/null)" in - up) printf "^c$background^ ^b$blue^ 󰤨 ^c$background^ ^b$blue^Connected" ;; - down) printf "^c$background^ ^b$blue^ 󰤭 ^c$background^ ^b$blue^Disconnected" ;; - esac -} - -clock() { - printf " $(date '+%I:%M %P') " -} - -today() { - printf " $(date '+%b %e') " -} - -net() { - if nc -zw1 c2yz.com 443; then - printf "^c$background^^b$green^ i " - else - printf "^c$background^^b$red^ ! " - fi -} - - -while true; do - - # [ $interval = 0 ] || [ $(($interval % 3600)) = 0 ] && updates=$(pkg_updates) - # interval=$((interval + 1)) - - # sleep 1 && xsetroot -name "$updates $(battery) $(brightness) $(cpu) $(mem) $(wlan) $(clock)" - # sleep 1 && xsetroot -name "$(battery) $(brightness) $(cpu) $(mem) $(wlan) $(clock)" - # if hash dockd 2>/dev/null; then - # sleep 1 && xsetroot -name "^c$foreground^^b$background1^ $(brightness) ^b$background0^ $(battery) $(net)^c$foreground^^b$background0^ $(today) ^b$background1^ $(clock) ^b$background2^ $(pulse) " - # else - sleep 1 && xsetroot -name "^c$foreground^$(net)^c$foreground^^b$background0^ $(today) ^b$background1^ $(clock) ^b$background2^ $(pulse) " - xsetroot -cursor_name left_ptr - # fi - -done diff --git a/home-manager/features/desktop/dwm/betterlockscreen.nix b/home-manager/features/desktop/dwm/betterlockscreen.nix deleted file mode 100644 index cea90ac..0000000 --- a/home-manager/features/desktop/dwm/betterlockscreen.nix +++ /dev/null @@ -1,6 +0,0 @@ -{pkgs, ...}: { - services.betterlockscreen = { - enable = true; - package = pkgs.unstable.betterlockscreen; - }; -} diff --git a/home-manager/features/desktop/dwm/black_to_transparent.frag b/home-manager/features/desktop/dwm/black_to_transparent.frag deleted file mode 100644 index 7760876..0000000 --- a/home-manager/features/desktop/dwm/black_to_transparent.frag +++ /dev/null @@ -1,22 +0,0 @@ -#version 330 -in vec2 texcoord; -uniform float opacity; -uniform bool invert_color; -uniform sampler2D tex; - -vec4 window_shader() { - vec4 c = texelFetch(tex, ivec2(texcoord), 0); - { - // Change vec4(1.0, 1.0, 1.0, 1.0) to your desired color - vec4 vdiff = abs(vec4(0.0, 0.0, 0.0, 1.0) - c); - float diff = max(max(max(vdiff.r, vdiff.g), vdiff.b), vdiff.a); - // Change 0.8 to your desired opacity - if (diff < 0.001) - c *= 0; - } - if (invert_color) - c = vec4(vec3(c.a, c.a, c.a) - vec3(c), c.a); - c *= opacity; - // vec4 default_post_processing(vec4 c); - return c; -} diff --git a/home-manager/features/desktop/dwm/default.nix b/home-manager/features/desktop/dwm/default.nix deleted file mode 100644 index 22e09aa..0000000 --- a/home-manager/features/desktop/dwm/default.nix +++ /dev/null @@ -1,93 +0,0 @@ -{ - lib, - config, - pkgs, - ... -}: { - imports = [ - ./picom.nix - ./rofi.nix - ./flameshot.nix - ./betterlockscreen.nix - ./easyeffects.nix - ./theming.nix - ]; - - home.packages = with pkgs; [ - dmenu - st - dunst - xss-lock - xdg-desktop-portal-gtk - xorg.xrdb - xorg.xrandr - xorg.xset - xorg.xsetroot - xorg.setxkbmap - xorg.xbacklight - xorg.libX11 - xorg.libX11.dev - xorg.libxcb - xorg.libXft - xorg.libXinerama - xorg.xinit - xorg.xinput - brightnessctl - xclip - # gnome.gnome-keyring - feh - alsaUtils - cinnamon.nemo - pulseaudioFull - arandr - neomutt - ncmpcpp - ncspot - ncpamixer - lf - pamixer - w3m - bat - efibootmgr - eww - fontconfig - freetype - fuse-common - gimp - gnugrep - gnumake - gparted - nfs-utils - ninja - nodejs - openssl - nerdfonts - polkit_gnome - qemu - ripgrep - stdenv - tldr - variety - virt-manager - xfce.thunar - dconf - ]; - - home.file = { - ".xinitrc" = { - source = ./.xinitrc; - }; - ".zprofile" = { - source = ./.zprofile; - }; - ".config/picom/black_to_transparent.frag" = { - source = ./black_to_transparent.frag; - }; - # ".Xresources" = { - # text = '' - # Xcursor.theme: "Bibata-Modern-Classic" - # Xcursor.size: 18 - # ''; - # }; - }; -} diff --git a/home-manager/features/desktop/dwm/easyeffects.nix b/home-manager/features/desktop/dwm/easyeffects.nix deleted file mode 100644 index c0d755e..0000000 --- a/home-manager/features/desktop/dwm/easyeffects.nix +++ /dev/null @@ -1,5 +0,0 @@ -{pkgs, ...}: { - services.easyeffects = { - enable = true; - }; -} diff --git a/home-manager/features/desktop/dwm/flameshot.nix b/home-manager/features/desktop/dwm/flameshot.nix deleted file mode 100644 index 1656df4..0000000 --- a/home-manager/features/desktop/dwm/flameshot.nix +++ /dev/null @@ -1,10 +0,0 @@ -{pkgs, ...}: { - services.flameshot = { - enable = true; - settings = { - General = { - showStartupLaunchMessage = false; - }; - }; - }; -} diff --git a/home-manager/features/desktop/dwm/picom.nix b/home-manager/features/desktop/dwm/picom.nix deleted file mode 100644 index 59a8fca..0000000 --- a/home-manager/features/desktop/dwm/picom.nix +++ /dev/null @@ -1,99 +0,0 @@ -{ - lib, - config, - pkgs, - ... -}: { - services.picom = { - enable = true; - package = pkgs.unstable.picom; - backend = "glx"; - - shadow = true; - shadowOpacity = 0.2; - shadowOffsets = [1 1]; - - shadowExclude = [ - "name = 'Notification'" - "class_g = 'Conky'" - "_GTK_FRAME_EXTENTS@:c" - "override_redirect = 1 && !WM_CLASS@:s" - "class_g ?= 'Dmenu'" - "class_g ?= 'Dunst'" - "_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'" - "_GTK_FRAME_EXTENTS@:c" - "_NET_WM_STATE@:32a *= '_NET_WM_STATE_STICKY'" - "class_g ?= 'i3-frame'" - "class_g = 'Rofi'" - ]; - - fade = true; - fadeSteps = [0.08 0.05]; - - vSync = true; - - settings = { - shadow = { - radius = 3; - }; - - corner-radius = 9; - rounder-corners-exclude = [ - "window_type = 'dock'" - "window_type = 'desktop'" - "class_g = 'Dunst'" - ]; - - blur = { - method = "dual_kawase"; - strength = 10; - background = false; - background-frame = false; - background-fixed = false; - }; - - blur-kern = "3x3box"; - - # xprop | grep -i 'class' - opacity-rule = [ - "90:class_g = 'neovide'" - "90:class_g = 'code-oss'" - "90:class_g = 'discord'" - "90:class_g = 'Emacs'" - "90:class_g = 'TelegramDesktop'" - "90:class_g = 'Spotify'" - "90:class_g = 'easyeffects'" - "90:class_g = 'kitty'" - "90:class_g = 'Nemo'" - "97:class_g = 'firefox'" - ]; - - # Exclude conditions for background blur. - # blur-background-exclude = [] - blur-background-exclude = [ - "window_type = 'dock'" - "window_type = 'desktop'" - "_GTK_FRAME_EXTENTS@:c" - ]; - - mark-wmwin-focused = true; - mark-ovredir-focused = true; - detect-rounded-corners = true; - detect-client-opacity = true; - unredir-if-possible = false; - detect-transient = true; - detect-client-leader = true; - use-damage = true; - - window-shader-fg-rule = [ - # "black_to_transparent.frag:class_g = 'stalonetray'", - # "black_to_transparent.frag:class_g = 'Minecraft 1.7.10'", - # "black_to_transparent.frag:class_g = 'i3lock'" - # "black_to_transparent.frag:focused = true", - # "black_to_transparent.frag:focused != true", - #"sphere.glsl:focused != true" - #"nordify.glsl:class_g = 'miru'" - ]; - }; - }; -} diff --git a/home-manager/features/desktop/dwm/rofi.nix b/home-manager/features/desktop/dwm/rofi.nix deleted file mode 100644 index 4d73fe4..0000000 --- a/home-manager/features/desktop/dwm/rofi.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ - lib, - config, - pkgs, - ... -}: { - programs.rofi = { - enable = true; - plugins = with pkgs; [ - rofi-calc - ]; - location = "center"; - theme = "gruvbox-dark-soft"; - }; -} diff --git a/home-manager/features/desktop/dwm/theming.nix b/home-manager/features/desktop/dwm/theming.nix deleted file mode 100644 index e419085..0000000 --- a/home-manager/features/desktop/dwm/theming.nix +++ /dev/null @@ -1,54 +0,0 @@ -{ - lib, - config, - pkgs, - ... -}: { - # enable gtk - gtk = { - enable = true; - cursorTheme = { - name = "Bibata-Modern-Classic"; - package = pkgs.bibata-cursors; - }; - theme = { - name = "gruvbox-dark"; - package = pkgs.gruvbox-dark-gtk; - }; - iconTheme = { - name = "oomox-gruvbox-dark"; - package = pkgs.gruvbox-dark-icons-gtk; - }; - }; - - # enable qt - qt = { - enable = true; - platformTheme = "qtct"; - style = { - name = "kvantum"; - }; - }; - - xdg.configFile = { - "Kvantum/kvantum.kvconfig".text = '' - [General] - theme=GraphiteNordDark - ''; - - "Kvantum/GraphiteNord".source = "${pkgs.graphite-kde-theme}/share/Kvantum/GraphiteNord"; - }; - - home.pointerCursor = { - gtk.enable = true; - x11.enable = true; - package = pkgs.bibata-cursors; - name = "Bibata-Modern-Classic"; - size = 18; - }; - - xsession.pointerCursor = { - name = "Bibata-Modern-Classic"; - size = 18; - }; -} diff --git a/home-manager/features/desktop/gnome/default.nix b/home-manager/features/desktop/gnome/default.nix deleted file mode 100644 index 65b3071..0000000 --- a/home-manager/features/desktop/gnome/default.nix +++ /dev/null @@ -1 +0,0 @@ -{imports = [../common];} diff --git a/home-manager/features/desktop/hyprland/basic-binds.nix b/home-manager/features/desktop/hyprland/basic-binds.nix deleted file mode 100644 index 6ab154a..0000000 --- a/home-manager/features/desktop/hyprland/basic-binds.nix +++ /dev/null @@ -1,99 +0,0 @@ -{lib, ...}: { - wayland.windowManager.hyprland.settings = { - bindm = [ - "SUPER,mouse:272,movewindow" - "SUPER,mouse:273,resizewindow" - ]; - - bind = let - workspaces = [ - "0" - "1" - "2" - "3" - "4" - "5" - "6" - "7" - "8" - "9" - "F1" - "F2" - "F3" - "F4" - "F5" - "F6" - "F7" - "F8" - "F9" - "F10" - "F11" - "F12" - ]; - # Map keys (arrows and hjkl) to hyprland directions (l, r, u, d) - directions = rec { - left = "l"; - right = "r"; - up = "u"; - down = "d"; - h = left; - l = right; - k = up; - j = down; - }; - in - [ - "SUPERSHIFT,q,killactive" - "SUPERSHIFT,e,exit" - - "SUPER,s,togglesplit" - "SUPER,f,fullscreen,1" - "SUPERSHIFT,f,fullscreen,0" - "SUPERSHIFT,space,togglefloating" - - "SUPER,minus,splitratio,-0.25" - "SUPERSHIFT,minus,splitratio,-0.3333333" - - "SUPER,equal,splitratio,0.25" - "SUPERSHIFT,equal,splitratio,0.3333333" - - "SUPER,g,togglegroup" - "SUPER,t,lockactivegroup,toggle" - "SUPER,tab,changegroupactive,f" - "SUPERSHIFT,tab,changegroupactive,b" - - "SUPER,apostrophe,workspace,previous" - - "SUPER,u,togglespecialworkspace" - "SUPERSHIFT,u,movetoworkspacesilent,special" - "SUPER,i,pseudo" - ] - ++ - # Change workspace - (map (n: "SUPER,${n},workspace,name:${n}") workspaces) - ++ - # Move window to workspace - (map (n: "SUPERSHIFT,${n},movetoworkspacesilent,name:${n}") workspaces) - ++ - # Move focus - (lib.mapAttrsToList (key: direction: "SUPER,${key},movefocus,${direction}") directions) - ++ - # Swap windows - (lib.mapAttrsToList (key: direction: "SUPERSHIFT,${key},swapwindow,${direction}") directions) - ++ - # Move windows - (lib.mapAttrsToList ( - key: direction: "SUPERCONTROL,${key},movewindoworgroup,${direction}" - ) - directions) - ++ - # Move monitor focus - (lib.mapAttrsToList (key: direction: "SUPERALT,${key},focusmonitor,${direction}") directions) - ++ - # Move workspace to other monitor - (lib.mapAttrsToList ( - key: direction: "SUPERALTSHIFT,${key},movecurrentworkspacetomonitor,${direction}" - ) - directions); - }; -} diff --git a/home-manager/features/desktop/hyprland/default.nix b/home-manager/features/desktop/hyprland/default.nix deleted file mode 100644 index 630b3bb..0000000 --- a/home-manager/features/desktop/hyprland/default.nix +++ /dev/null @@ -1,43 +0,0 @@ -{ - lib, - config, - pkgs, - ... -}: let - # hyprland = pkgs.inputs.hyprland.hyprland.override {wrapRuntimeDeps = false;}; - # xdhp = pkgs.inputs.hyprland.xdg-desktop-portal-hyprland.override {inherit hyprland;}; -in { - imports = [ - ../common - ../common/wayland-wm - ]; - - # xdg.portal = { - # extraPortals = [xdhp]; - # configPackages = [hyprland]; - # }; - - home.packages = with pkgs; [ - # inputs.hyprwm-contrib.grimblast - # hyprslurp - hyprpicker - hyprpaper - waybar - xdg-desktop-portal-hyprland - ]; - - # wayland.windowManger.hyprland = { - # enable = true; - # # package = hyprland; - # systemd = { - # enable = true; - # # Same as default but stop graphical-session too - # extraCommands = lib.mkBefore [ - # "systemctl --user stop graphical-session.target" - # "systemctl --user start hyprland-session.target" - # ]; - # }; - # - # #TODO: Add hyprland config - # }; -} diff --git a/home-manager/features/desktop/hyprland/hyprbars.nix b/home-manager/features/desktop/hyprland/hyprbars.nix deleted file mode 100644 index 8c96e6d..0000000 --- a/home-manager/features/desktop/hyprland/hyprbars.nix +++ /dev/null @@ -1,58 +0,0 @@ -{ - config, - pkgs, - lib, - ... -}: let - hyprbars = - (pkgs.inputs.hyprland-plugins.hyprbars.override { - # Make sure it's using the same hyprland package as we are - hyprland = config.wayland.windowManager.hyprland.package; - }) - .overrideAttrs - (old: { - # Yeet the initialization notification (I hate it) - postPatch = - (old.postPatch or "") - + '' - ${lib.getExe pkgs.gnused} -i '/Initialized successfully/d' main.cpp - ''; - }); -in { - wayland.windowManager.hyprland = { - plugins = [hyprbars]; - settings = { - "plugin:hyprbars" = { - bar_height = 25; - #bar_color = "0xdd${config.colorscheme.colors.base00}"; - #"col.text" = "0xee${config.colorscheme.colors.base05}"; - #bar_text_font = config.fontProfiles.regular.family; - bar_text_size = 12; - bar_part_of_window = true; - hyprbars-button = let - closeAction = "hyprctl dispatch killactive"; - - isOnSpecial = ''hyprctl activewindow -j | jq -re 'select(.workspace.name == "special")' >/dev/null''; - moveToSpecial = "hyprctl dispatch movetoworkspacesilent special"; - moveToActive = "hyprctl dispatch movetoworkspacesilent name:$(hyprctl -j activeworkspace | jq -re '.name')"; - minimizeAction = "${isOnSpecial} && ${moveToActive} || ${moveToSpecial}"; - - maximizeAction = "hyprctl dispatch togglefloating"; - in [ - # Red close button - #"rgb(${config.colorscheme.colors.base08}),12,,${closeAction}" - # Yellow "minimize" (send to special workspace) button - #"rgb(${config.colorscheme.colors.base0A}),12,,${minimizeAction}" - # Green "maximize" (togglefloating) button - #"rgb(${config.colorscheme.colors.base0B}),12,,${maximizeAction}" - ]; - }; - bind = let - barsEnabled = "hyprctl -j getoption plugin:hyprbars:bar_height | ${lib.getExe pkgs.jq} -re '.int != 0'"; - setBarHeight = height: "hyprctl keyword plugin:hyprbars:bar_height ${toString height}"; - toggleOn = setBarHeight config.wayland.windowManager.hyprland.settings."plugin:hyprbars".bar_height; - toggleOff = setBarHeight 0; - in ["SUPER,m,exec,${barsEnabled} && ${toggleOff} || ${toggleOn}"]; - }; - }; -} diff --git a/home-manager/features/emacs.nix b/home-manager/features/emacs.nix deleted file mode 100644 index a2907b5..0000000 --- a/home-manager/features/emacs.nix +++ /dev/null @@ -1,6 +0,0 @@ -{pkgs, ...}: { - programs.emacs = { - enable = true; - package = pkgs.unstable.emacs; - }; -} diff --git a/home-manager/features/helix.nix b/home-manager/features/helix.nix deleted file mode 100644 index 9cf6edd..0000000 --- a/home-manager/features/helix.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ pkgs, ... }: { - programs.helix = { - enable = true; - settings = { - theme = "gruvbox_dark_soft"; - editor.cursor-shape = { - normal = "block"; - insert = "bar"; - select = "underline"; - }; - }; - languages.language = [{ - name = "nix"; - auto-format = true; - formatter.command = "${pkgs.nixfmt}/bin/nixfmt"; - }]; - }; -} diff --git a/home-manager/features/kitty.nix b/home-manager/features/kitty.nix deleted file mode 100644 index bd54772..0000000 --- a/home-manager/features/kitty.nix +++ /dev/null @@ -1,19 +0,0 @@ -{ - programs.kitty = { - enable = true; - font = { - name = "FiraCode Nerd Font"; - size = 12; - }; - - theme = "Gruvbox Dark"; - - settings = { - confirm_os_window_close = 0; - detect_urls = true; - enable_audio_bell = false; - resize_in_steps = true; - # window_padding_width = 16; - }; - }; -} diff --git a/home-manager/features/neovide.nix b/home-manager/features/neovide.nix deleted file mode 100644 index 9b404d5..0000000 --- a/home-manager/features/neovide.nix +++ /dev/null @@ -1,17 +0,0 @@ -{pkgs, ...}: { - home.packages = with pkgs; [ - neovide - ]; - - home.file = { - ".config/neovide/config.toml" = { - text = '' - vsync = true - - [font] - normal = ["FiraCode Nerd Font"] - size = 14 - ''; - }; - }; -} diff --git a/home-manager/features/neovim.nix b/home-manager/features/neovim.nix deleted file mode 100644 index fabebd3..0000000 --- a/home-manager/features/neovim.nix +++ /dev/null @@ -1,20 +0,0 @@ -{ - inputs, - pkgs, - ... -}: { - nixpkgs.overlays = [ - inputs.neovim-nightly-overlay.overlay - ]; - - programs.neovim = { - enable = true; - package = pkgs.neovim-nightly; - - viAlias = true; - vimAlias = true; - vimdiffAlias = true; - - defaultEditor = true; - }; -} diff --git a/home-manager/features/tmux.nix b/home-manager/features/tmux.nix deleted file mode 100644 index a3ece19..0000000 --- a/home-manager/features/tmux.nix +++ /dev/null @@ -1,49 +0,0 @@ -{pkgs, ...}: { - programs.tmux = { - enable = true; - mouse = true; - prefix = "C-Space"; - keyMode = "vi"; - terminal = "screen-256color"; - baseIndex = 1; - plugins = with pkgs.tmuxPlugins; [ - sensible - vim-tmux-navigator - gruvbox - yank - ]; - extraConfig = '' - # history limit - set -g history-limit 5000 - - # increase repeat time - set -g repeat-time 1000 - - # decrese command delay - set -sg escape-time 1 - - # faster key repetition - set -s escape-time 0 - - setw -g aggressive-resize on - - # reload tmux while using tmux - bind r source-file ~/.config/tmux/tmux.conf \; display "Reloaded!" - - # Shift Alt vim keys to switch windows - bind -n M-H previous-window - bind -n M-L next-window - - # Vim like yank - bind-key -T copy-mode-vi v send-keys -X begin-selection - bind-key -T copy-mode-vi C-v send-keys -X rectangle-toggle - bind-key -T copy-mode-vi y send-keys -X copy-selection-and-cancel - - # Open panes in current directory - bind '"' split-window -v -c "#{pane_current_path}" - bind % split-window -h -c "#{pane_current_path}" - - - ''; - }; -} diff --git a/home-manager/home.nix b/home-manager/home.nix deleted file mode 100644 index bb839a9..0000000 --- a/home-manager/home.nix +++ /dev/null @@ -1,180 +0,0 @@ -# This is your home-manager configuration file -# Use this to configure your home environment (it replaces ~/.config/nixpkgs/home.nix) -{ inputs, outputs, pkgs, ... }: { - # You can import other home-manager modules here - imports = [ - # If you want to use modules your own flake exports (from modules/home-manager): - # outputs.homeManagerModules.example - - # Or modules exported from other flakes (such as nix-colors): - inputs.nix-colors.homeManagerModules.default - - # You can also split up your configuration and import pieces of it here: - # ./nvim.nix - ./features/cli - ./features/desktop/dwm - ./features/kitty.nix - ./features/neovim.nix - ./features/tmux.nix - ./features/neovide.nix - ./features/emacs.nix - ./features/helix.nix - ]; - - colorScheme = inputs.nix-colors.colorSchemes.gruvbox-dark-medium; - - nixpkgs = { - # You can add overlays here - overlays = [ - # Add overlays your own flake exports (from overlays and pkgs dir): - outputs.overlays.additions - outputs.overlays.modifications - outputs.overlays.unstable-packages - - # You can also add overlays exported from other flakes: - # neovim-nightly-overlay.overlays.default - - # Or define it inline, for example: - # (final: prev: { - # hi = final.hello.overrideAttrs (oldAttrs: { - # patches = [ ./change-hello-to-hi.patch ]; - # }); - # }) - ]; - # Configure your nixpkgs instance - config = { - # Disable if you don't want unfree packages - allowUnfree = true; - # Workaround for https://github.com/nix-community/home-manager/issues/2942 - allowUnfreePredicate = _: true; - }; - }; - - # Username to manage - home = { - username = "mike"; - homeDirectory = "/home/mike"; - file = { - # Building this configuration will create a copy of 'dotfiles/screenrc' in - # the Nix store. Activating the configuration will then make '~/.screenrc' a - # symlink to the Nix store copy. - # ".screenrc".source = dotfiles/screenrc; - - # You can also set the file content immediately. - # ".gradle/gradle.properties".text = '' - # org.gradle.console=verbose - # org.gradle.daemon.idletimeout=3600000 - # ''; - }; - }; - - # The home.packages option allows you to install Nix packages into your - # environment. - home.packages = with pkgs; [ - # > graphics < - tuxpaint - krita - - # > terminal < - kitty - kitty-themes - - # > tools < - git - wget - eza - yt-dlp - ffmpeg - # texliveFull - texlive.combined.scheme-full - pgf-umlcd - fastfetch - pgf-umlsd - zoxide - neofetch - pavucontrol - htop - woeusb - steam-run - unzip - gnome.adwaita-icon-theme - R - openvpn - wol - direnv - p7zip - czkawka - insomnia - - # > media < - spotify - vlc - mpv - obs-studio - okular - - # > desktop < - firefox - discord - telegram-desktop - libreoffice-fresh - # vscodium - unstable.vscode - google-chrome - lunarvim - unstable.evolution - rstudio - unstable.obsidian - foliate - helio-workstation - - # > gaming < - prismlauncher - classicube - steam - - # > development < - docker - docker-compose - gnome.seahorse - lmstudio - unstable.arduino-ide - iwgtk - kwallet-pam - kwalletcli - kwalletmanager - ]; - - services.gnome-keyring = { - enable = true; - components = [ "ssh" "secrets" "pkcs11" ]; - }; - - # programs.keychain = { - # enable = true; - # enableZshIntegration = true; - # keys = [ - # "id_rsa" - # ]; - # enableXsessionIntegration = true; - # }; - - # systemd.user.sessionVariables.SSH_AUTH_SOCK = "/run/user/1000/keyring/ssh"; - - home.sessionVariables = { EDITOR = "nvim"; }; - - # Let Home Manager install and manage itself. - programs.home-manager.enable = true; - - # Nicely reload system units when changing configs - systemd.user.startServices = "sd-switch"; - - # This value determines the Home Manager release that your configuration is - # compatible with. This helps avoid breakage when a new Home Manager release - # introduces backwards incompatible changes. - # - # You should not change this value, even if you update Home Manager. If you do - # want to update the value, then make sure to first check the Home Manager - # release notes. - home.stateVersion = "23.11"; # Please read the comment before changing. -} diff --git a/home/home.nix b/home/home.nix new file mode 100644 index 0000000..ead08d9 --- /dev/null +++ b/home/home.nix @@ -0,0 +1,37 @@ +{ hostname, ... }: +{ + imports = + if hostname == "zion" then + [ + ./programs/git.nix + ./programs/btop.nix + # ./programs/yazi.nix + # ./programs/foot.nix + ./programs/shell.nix + # ./programs/helix.nix + # ./programs/zathura.nix + ./programs/packages.nix + # ./programs/vscodium.nix + ./programs/vscode.nix + ./programs/kitty.nix + ./programs/fastfetch.nix + + ./system/tofi.nix + ./system/wofi.nix + ./system/dunst.nix + ./system/stylix.nix + ./system/waybar.nix + ./system/wlsunset.nix + ./system/hyprland.nix + ] + else if hostname == "server" then + [ + ./programs/git.nix + ./programs/btop.nix + ./programs/yazi.nix + ./programs/shell.nix + ./programs/helix.nix + ./programs/fastfetch.nix + ] + else [ ]; +} diff --git a/home/programs/btop.nix b/home/programs/btop.nix new file mode 100644 index 0000000..e99c2e8 --- /dev/null +++ b/home/programs/btop.nix @@ -0,0 +1,11 @@ +{ + programs.btop = { + enable = true; + settings = { + update_ms = 1000; + rounded_corners = false; + proc_sorting = "memory"; + shown_boxes = "proc cpu "; + }; + }; +} diff --git a/home/programs/fastfetch.nix b/home/programs/fastfetch.nix new file mode 100644 index 0000000..09be369 --- /dev/null +++ b/home/programs/fastfetch.nix @@ -0,0 +1,122 @@ +{ + programs.fastfetch = { + enable = true; + settings = { + + "$schema" = "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json"; + + logo = { + type = "kitty"; + height = 20; + padding = { + top = 0; + right = 2; + }; + }; + + display = { + separator = " ➜ "; + }; + + modules = [ + "break" + { + type = "os"; + key = "OS "; + keyColor = "31"; + format = "{2} {8}"; + } + { + type = "kernel"; + key = " ├  "; + keyColor = "31"; + format = "{2}"; + } + { + type = "packages"; + format = "{} (nixpkgs)"; + key = " ├ 󰏖 "; + keyColor = "31"; + } + { + type = "shell"; + key = " └  "; + keyColor = "31"; + } + "break" + { + type = "wm"; + key = "WM "; + keyColor = "32"; + format = "{2}"; + } + { + type = "wmtheme"; + key = " ├ 󰉼 "; + keyColor = "32"; + } + { + type = "icons"; + key = " ├ 󰀻 "; + keyColor = "32"; + } + { + type = "cursor"; + key = " ├  "; + keyColor = "32"; + } + { + type = "terminal"; + key = " ├  "; + keyColor = "32"; + } + { + type = "terminalfont"; + key = " └  "; + keyColor = "32"; + } + "break" + { + type = "host"; + format = "{5} {1}"; + key = "PC "; + keyColor = "33"; + } + { + type = "cpu"; + format = "AMD Ryzen 7 8845HS"; + key = " ├  "; + keyColor = "33"; + } + { + type = "gpu"; + format = "AMD Radeon 780M"; + key = " ├ 󰢮 "; + keyColor = "33"; + } + { + type = "memory"; + key = " ├  "; + keyColor = "33"; + } + { + type = "swap"; + key = " ├ 󰓡 "; + keyColor = "33"; + } + { + type = "disk"; + key = " ├ 󰋊 "; + keyColor = "33"; + } + { + type = "monitor"; + key = " └  "; + keyColor = "33"; + format = "{2}x{3} px"; + } + ]; + }; + }; +} + diff --git a/home/programs/foot.nix b/home/programs/foot.nix new file mode 100644 index 0000000..4667641 --- /dev/null +++ b/home/programs/foot.nix @@ -0,0 +1,41 @@ +{ + programs.foot = { + enable = true; + + settings = { + main = { + pad = "5x0"; + dpi-aware = "yes"; + }; + + mouse = { + hide-when-typing = "yes"; + }; + + tweak = { + font-monospace-warn = "no"; + }; + + colors = { + foreground = "cdd6f4"; + background = "1e1e2e"; + regular0 = "1e1e2e"; # black + regular1 = "f38ba8"; # red + regular2 = "a6e3a1"; # green + regular3 = "f9e2af"; # yellow + regular4 = "89b4fa"; # blue + regular5 = "cba6f7"; # magenta + regular6 = "94e2d5"; # cyan + regular7 = "cdd6f4"; # white + bright0 = "45475a"; # bright black + bright1 = "f38ba8"; # bright red + bright2 = "a6e3a1"; # bright green + bright3 = "f9e2af"; # bright yellow + bright4 = "89b4fa"; # bright blue + bright5 = "cba6f7"; # bright magenta + bright6 = "94e2d5"; # bright cyan + bright7 = "b4befe"; # bright white + }; + }; + }; +} diff --git a/home/programs/freetube.nix b/home/programs/freetube.nix new file mode 100644 index 0000000..c9860cd --- /dev/null +++ b/home/programs/freetube.nix @@ -0,0 +1,26 @@ +{ + programs.freetube = { + enable = true; + + settings = { + allowDashAv1Formats = true; + defaultQuality = "1080"; + useSponsorBlock = true; + + backendFallback = true; + + autoplayPlaylists = false; + autoplayVideos = false; + expandSideBar = false; + hideLabelsSideBar = true; + + checkForBlogPosts = false; + checkForUpdates = false; + + mainColor = "CatppuccinMochaMauve"; + secColor = "CatppuccinMochaPink"; + baseTheme = "catppuccinMocha"; + barColor = false; + }; + }; +} diff --git a/home/programs/git.nix b/home/programs/git.nix new file mode 100644 index 0000000..88ff1da --- /dev/null +++ b/home/programs/git.nix @@ -0,0 +1,13 @@ +{ + programs.git = { + enable = true; + + userName = "Michał Czyż"; + userEmail = "mike@c2yz.com"; + + extraConfig = { + init.defaultBranch = "main"; + push.autoSetupRemote = true; + }; + }; +} diff --git a/home/programs/helix.nix b/home/programs/helix.nix new file mode 100644 index 0000000..ac43c9d --- /dev/null +++ b/home/programs/helix.nix @@ -0,0 +1,176 @@ +{ pkgs, ... }: +{ + programs.helix = { + enable = true; + + # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + # languages Configuration + # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + languages = { + language = [ + + { + name = "nix"; + auto-format = true; + language-servers = [ "nixd" "nil" ]; + formatter = { + command = "${pkgs.nixpkgs-fmt}/bin/nixpkgs-fmt"; + # command = "${pkgs.nixfmt-rfc-style}/bin/nixfmt"; + # command = "${pkgs.alejandra}/bin/alejandra"; + }; + } + + { + name = "bash"; + auto-format = true; + language-servers = [ "bash-language-server" ]; + formatter = { + command = "${pkgs.shfmt}/bin/shfmt"; + args = [ "-i" "2" "-ci" ]; + }; + } + + { + name = "python"; + auto-format = true; + language-servers = [ "pyright" ]; + formatter = { + command = "${pkgs.black}/bin/black"; + args = [ "--quiet" "-" ]; + }; + } + + { + name = "rust"; + auto-format = false; + file-types = [ "rs" ]; + language-servers = [ "rust-analyzer" ]; + formatter = { command = "${pkgs.rustfmt}/bin/rustfmt"; }; + } + + { + name = "zig"; + auto-format = true; + language-servers = [ "zsl" ]; + formatter = { command = "${pkgs.zig}/bin/zig"; }; + } + + { + name = "html"; + auto-format = true; + language-servers = [ "vscode-langservers-extracted" ]; + } + + { + name = "javascript"; + auto-format = true; + language-servers = [ "typescript-language-server" ]; + } + ]; + + # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + # Language Server Protocol Configuration + # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + language-servers = { + + nil = { command = "${pkgs.nixd}/bin/nixd"; }; + + rust-analyzer = { + config = { + check = { command = "${pkgs.clippy}/bin/cargo-clippy"; }; + # cargo.features = "all"; + checkOnSave.command = "${pkgs.clippy}/bin/cargo-clippy"; + completion.autoimport.enable = true; + }; + }; + + typescript-language-server = { + command = "${pkgs.nodePackages_latest.typescript-language-server}/bin/typescript-language-server"; + args = [ "--stdio" ]; + }; + }; + }; + + # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + # Needed Packages + # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + extraPackages = with pkgs; [ + # DEBUG + lldb_18 + + # lldb-vscode : + # c + # cpp + + # = < NIX > = + # = Language Server Protocol = + nil + nixd + # = DAP = + + # = Formatter = + # nixfmt + nixfmt-rfc-style + # alejandra + + # = < Bash > = + # = Language Server Protocol = + nodePackages.bash-language-server + # = DAP = + # = Formatter = + shfmt + + # = < Python > = + # = Language Server Protocol = + pyright + # = DAP = + # = Formatter = + black + + # = < Rust > = + # = Language Server Protocol = + rust-analyzer + # = DAP = + lldb + # = Formatter = + # rust-fmt + clippy # Good place ? + + # = < lua > = + # = Language Server Protocol = + lua-language-server + # = DAP = + # = Formatter = + + # = < Zig > = + # = Language Server Protocol = + zls + # = DAP = + # lldb (commented because already called) + # = Formatter = + zig + + # = < HTML > = + # = Language Server Protocol = + # vscode-html-language-server + vscode-langservers-extracted + # = DAP = + # = Formatter = + + # = < CSS > = + # = Language Server Protocol = + nodePackages_latest.typescript-language-server + # = DAP = + # = Formatter = + + # = Language Server Protocol = + docker-compose-language-service + dockerfile-language-server-nodejs + yaml-language-server + ansible-language-server + ]; + }; +} diff --git a/home/programs/kitty.nix b/home/programs/kitty.nix new file mode 100644 index 0000000..b6e99a8 --- /dev/null +++ b/home/programs/kitty.nix @@ -0,0 +1,13 @@ +{ + programs.kitty = { + enable = true; + + settings = { + confirm_os_window_close = 0; + window_padding_width = 10; + scrollback_lines = 10000; + enable_audio_bell = false; + mouse_hide_wait = 60; + }; + }; +} diff --git a/home/programs/librewolf.nix b/home/programs/librewolf.nix new file mode 100644 index 0000000..b514aac --- /dev/null +++ b/home/programs/librewolf.nix @@ -0,0 +1,10 @@ +{ + programs.librewolf = { + enable = true; + settings = { + "browser.sessionstore.resume_from_crash" = false; + "DisableSystemAddonUpdate" = true; + "DisableSetDesktopBackground" = true; + }; + }; +} diff --git a/home/programs/packages.nix b/home/programs/packages.nix new file mode 100644 index 0000000..9b64624 --- /dev/null +++ b/home/programs/packages.nix @@ -0,0 +1,37 @@ +{ pkgs, inputs, ... }: +{ + home.packages = with pkgs; [ + # DEV + python3 + # MEDIA + mpv + imv + pwvucontrol + + # CONNECTIONS + overskride + protonvpn-cli_2 + networkmanagerapplet + + # APPS + floorp + spotube + vesktop + nautilus + keepassxc + whatsapp-for-linux + + libreoffice + qalculate-gtk + + # Utilities + ventoy-full + file-roller + vim + firefox + rofi + nixfmt + nemo + neovim + ]; +} diff --git a/home/programs/qutebrowser.nix b/home/programs/qutebrowser.nix new file mode 100644 index 0000000..866bae1 --- /dev/null +++ b/home/programs/qutebrowser.nix @@ -0,0 +1,62 @@ +{ + programs.qutebrowser = { + enable = false; + + searchEngines = { + "DEFAULT" = "https://priv.au/search?q={}"; + "d" = "https://duckduckgo.com/?q={}&ia=web"; + + "n" = "https://mynixos.com/search?q={}"; + "nixo" = "https://search.nixos.org/options?channel=unstable&query={}"; + "nixp" = "https://search.nixos.org/packages?channel=unstable&query={}"; + "gt" = "https://github.com/search?q={}&type=repositories"; + }; + + quickmarks = { + nwiki = "https://wiki.nixos.org/wiki/NixOS_Wiki"; + nflake = "https://nixos-and-flakes.thiscute.world/introduction/"; + nixy = "https://github.com/anotherhadi/nixy?tab=readme-ov-file"; + nca = "https://github.com/nix-community/awesome-nix"; + nc = "https://github.com/nix-community"; + + yb = "https://youatb.unibocconi.it/"; + bk = "https://blackboard.unibocconi.it/ultra/stream"; + pz = "https://piazza.com/class/m0nl57y6g4z1wh"; + + om = "https://outlook.office.com/mail/"; + pm = "https://mail.proton.me/u/0/inbox"; + tm = "https://app.tuta.com/mail/"; + + mai = "https://chat.mistral.ai/chat"; + cai = "https://claude.ai/new"; + + chess = "https://www.chess.com/home"; + lichess = "https://lichess.org/"; + + git = "https://github.com/dashboard"; + berg = "https://codeberg.org/PyNEL/Dotfiles"; + + box = "http://192.168.1.254/#"; + }; + + settings = { + + content = { + autoplay = false; + javascript.clipboard = "access"; + prefers_reduced_motion = true; + cookies.accept = "no-3rdparty"; + pdfjs = true; + }; + + qt = { + highdpi = true; + }; + + scrolling = { + bar = "never"; + smooth = true; + }; + }; + }; +} diff --git a/home/programs/shell.nix b/home/programs/shell.nix new file mode 100644 index 0000000..378ab1d --- /dev/null +++ b/home/programs/shell.nix @@ -0,0 +1,58 @@ +{ + programs = { + zoxide.enable = true; + + eza = { + enable = true; + icons = "auto"; + extraOptions = [ + "--group-directories-first" + "--header" + "--icons" + ]; + }; + + starship = { + enable = true; + settings = { + add_newline = true; + }; + }; + + zellij = { + enable = true; + settings = { + ui = { + pane_frames.hide_session_name = true; + pane_borderless = true; + }; + }; + }; + + bash = { + enable = true; + enableCompletion = true; + shellAliases = { + fetch = "fastfetch"; + rebuild = "nh os switch"; + update = "nh os switch --update"; + garbage = "nh clean all && sudo bootctl cleanup "; + + hxd = "hx ~/.files/"; + hxc = "hx ~/code/"; + + ls = "eza"; + la = "eza -a"; + ll = "eza -l"; + lr = "eza -R"; + tree = "eza -T"; + + ".." = "cd .."; + + grep = "grep --color=auto"; + + startupctl = "systemctl list-unit-files --type=service | grep enabled"; + }; + }; + }; +} diff --git a/home/programs/spicetify.nix b/home/programs/spicetify.nix new file mode 100644 index 0000000..2cc6bf5 --- /dev/null +++ b/home/programs/spicetify.nix @@ -0,0 +1,18 @@ +{ + inputs, + pkgs, + ... +}: { + imports = [inputs.spicetify-nix.homeManagerModules.default]; + + programs.spicetify = { + enable = true; + #theme = spicePkgs.themes.catppuccin; + #colorScheme = "mocha"; + enabledExtensions = with inputs.spicetify-nix.legacyPackages.${pkgs.system}.extensions; [ + fullAppDisplay + shuffle + hidePodcasts + ]; + }; +} diff --git a/home/programs/vscode.nix b/home/programs/vscode.nix new file mode 100644 index 0000000..0ac70fa --- /dev/null +++ b/home/programs/vscode.nix @@ -0,0 +1,58 @@ +{ pkgs, ... }: +{ + programs.vscode = { + enable = true; + + extensions = with pkgs.vscode-extensions; [ + ms-python.python + ms-python.debugpy + jnoortheen.nix-ide + mvllow.rose-pine + ]; + + userSettings = { + + "editor.fontSize" = 18; + "explorer.confirmDelete" = false; + "explorer.confirmDragAndDrop" = true; + "git.openRepositoryInParentFolders" = "never"; + + "[python]" = { + "editor.defaultFormatter" = "ms-python.black-formatter"; + "editor.formatOnSave" = true; + }; + + "nix.enableLanguageServer" = true; + "nix.serverPath" = "${pkgs.nixd}/bin/nixd"; + "nix.serverSettings" = { + "nixd" = { + "formatting" = { + "command" = [ "${pkgs.nixpkgs-fmt}/bin/nixpkgs-fmt" ]; + }; + "nixpkgs" = { + "expr" = "import { }"; + "options" = { + "nixos" = { + "expr" = "(builtins.getFlake \"/home/mike/.files\").nixosConfigurations.zion.options"; + }; + }; + }; + }; + }; + + "editor.formatOnSave" = true; + + "editor.fontLigatures" = true; + "editor.formatOnPaste" = true; + "editor.minimap.enabled" = false; + + "symbols.hidesExplorerArrows" = false; + + "workbench.iconTheme" = "vs-minimal"; + "workbench.colorTheme" = "Rose Pine"; + "workbench.preferredDarkColorTheme" = "Rose Pine"; + "workbench.preferredHighContrastColorTheme" = "Rose Pine"; + + }; + }; +} diff --git a/home/programs/vscodium.nix b/home/programs/vscodium.nix new file mode 100644 index 0000000..49db027 --- /dev/null +++ b/home/programs/vscodium.nix @@ -0,0 +1,60 @@ +{ pkgs, ... }: +{ + programs.vscode = { + enable = true; + package = pkgs.vscodium; + + extensions = with pkgs.vscode-extensions; [ + ms-python.python + ms-python.debugpy + jnoortheen.nix-ide + catppuccin.catppuccin-vsc + ]; + + userSettings = { + + "editor.fontSize" = 18; + "explorer.confirmDelete" = false; + "explorer.confirmDragAndDrop" = true; + "git.openRepositoryInParentFolders" = "never"; + + "[python]" = { + "editor.defaultFormatter" = "ms-python.black-formatter"; + "editor.formatOnSave" = true; + }; + + "nix.enableLanguageServer" = true; + "nix.serverPath" = "${pkgs.nixd}/bin/nixd"; + "nix.serverSettings" = { + "nixd" = { + "formatting" = { + "command" = [ "${pkgs.nixpkgs-fmt}/bin/nixpkgs-fmt" ]; + }; + "nixpkgs" = { + "expr" = "import { }"; + "options" = { + "nixos" = { + "expr" = "(builtins.getFlake \"/home/nel/Dotfiles\").nixosConfigurations.laptop.options"; + }; + }; + }; + }; + }; + + "editor.formatOnSave" = true; + + "editor.fontLigatures" = true; + "editor.formatOnPaste" = true; + "editor.minimap.enabled" = false; + + "symbols.hidesExplorerArrows" = false; + + "catppuccin.accentColor" = "blue"; + "workbench.iconTheme" = "vs-minimal"; + "workbench.colorTheme" = "Catppuccin Mocha"; + "workbench.preferredDarkColorTheme" = "Catppuccin Mocha"; + "workbench.preferredHighContrastColorTheme" = "Catppuccin Mocha"; + + }; + }; +} diff --git a/home/programs/yazi.nix b/home/programs/yazi.nix new file mode 100644 index 0000000..03335d7 --- /dev/null +++ b/home/programs/yazi.nix @@ -0,0 +1,12 @@ +{ + programs.yazi = { + enable = true; + settings = { + manager = { + sort_by = "alphabetical"; + show_hidden = true; + show_symlink = true; + }; + }; + }; +} diff --git a/home/programs/zathura.nix b/home/programs/zathura.nix new file mode 100644 index 0000000..8cb738a --- /dev/null +++ b/home/programs/zathura.nix @@ -0,0 +1,14 @@ +# Zathura is a PDF viewer +{ + programs.zathura = { + enable = true; + + options = { + guioptions = "v"; + adjust-open = "width"; + statusbar-basename = true; + render-loading = false; + scroll-step = 120; + }; + }; +} diff --git a/home/system/dunst.nix b/home/system/dunst.nix new file mode 100644 index 0000000..664440c --- /dev/null +++ b/home/system/dunst.nix @@ -0,0 +1,25 @@ +{ pkgs, ... }: +{ + home.packages = with pkgs; [ libnotify ]; + + services.dunst = { + enable = true; + package = pkgs.dunst; + + settings = { + global = { + follow = "mouse"; + + width = "0 , 600"; + height = "400"; + + origin = "top-center"; + offset = "0x10"; + }; + + fullscreen_delay_everything = { + fullscreen = "delay"; + }; + }; + }; +} diff --git a/home/system/hyprland.nix b/home/system/hyprland.nix new file mode 100644 index 0000000..183deb3 --- /dev/null +++ b/home/system/hyprland.nix @@ -0,0 +1,724 @@ +{ pkgs, inputs, ... }: +{ + # ------------------------------------------------ + # Needed Packages + # ------------------------------------------------ + + home.packages = with pkgs; [ + qt6ct + qt6.qtwayland + + hyprshot + hyprshade + hyprpicker + + inputs.hyprsunset.packages."${pkgs.system}".hyprsunset + inputs.hyprsysteminfo.packages."${pkgs.system}".hyprsysteminfo + inputs.hyprpolkitagent.packages."${pkgs.system}".hyprpolkitagent + + xdg-desktop-portal-hyprland + + wev + wlr-randr + wdisplays + # wf-recorder + # wl-screenrec + + playerctl + brightnessctl + ]; + + # ------------------------------------------------ + # Hyprland Config + # ------------------------------------------------ + + wayland.windowManager.hyprland = { + enable = true; + systemd.enable = true; + xwayland.enable = true; + package = inputs.hyprland.packages."${pkgs.system}".hyprland; + + plugins = [ + inputs.split-monitor-workspaces.packages."${pkgs.system}".split-monitor-workspaces + ]; + + # ------------------------------------------------ + # Configuration + # ------------------------------------------------ + + # settings = { + + # "$mod" = "SUPER"; + # "$shiftMod" = "SUPER_SHIFT"; + # "$Alt_L" = "ALT"; + + # # App + # "$terminal" = "kitty"; + # "$browser" = "firefox"; + # "$launcher" = "rofi -show drun"; + # "$file-manager" = "nemo"; + # "$Tfile-manager" = "$terminal -e yazi"; + # "$audio-manager" = "com.saivert.pwvucontrol"; + # "$password-manager" = "org.keepassxc.KeePassXC"; + # "$bluetooth-manager" = "io.github.kaii_lb.Overskride"; + + # # ------------------------------------------------ + # # Envirronement variables + # # ------------------------------------------------ + + # env = [ + # "XDG_SESSION_TYPE,wayland" + # "XDG_CURRENT_DESKTOP,Hyprland" + # "XDG_SESSION_DESKTOP,Hyprland" + + # "DISABLE_QT5_COMPAT,1" + # "QT_QPA_PLATFORM,wayland" + # "QT_AUTO_SCREEN_SCALE_FACTOR,1" + # "QT_WAYLAND_DISABLE_WINDOWDECORATION,1" + + # "NIXOS_OZONE_WL,1" + # "ELECTRON_OZONE_PLATFORM_HINT,auto" + + # "GTK_WAYLAND_DISABLE_WINDOWDECORATION,1" + # ]; + + # # ------------------------------------------------ + # # Startup + # # ------------------------------------------------ + + # exec-once = [ + # "waybar" + # # "systemctl --user start hyprpolkitagent" + # ]; + + # # ------------------------------------------------ + # # Monitors + # # ------------------------------------------------ + + # monitor = [ + # "HDMI-A-1, preferred, 0x360, 1" + # "DP-1, highrr, 4480x0, 1" + # "DP-2, highrr, 1920x0, 1" + # ]; + + # # ------------------------------------------------ + # # Window Rules + # # ------------------------------------------------ + + # windowrule = [ + # "float, ^($terminal)$" + # "size 45% 45%,^($terminal)$" + + # "float, ^($password-manager)$" + # "size 50% 40%,^($password-manager)$" + + # "float, ^($bluetooth-manager)$" + # "size 50% 60%,^($bluetooth-manager)$" + + # "float, ^($audio-manager)$" + # "size 50% 30%,^($audio-manager)$" + + # "noblur, class:^(steam)" + # "forcergbx, class:^(steam)" + # ]; + + # # ------------------------------------------------ + # # Keybidings + # # ------------------------------------------------ + + # bind = [ + # # Apps + # "ALT, code:10, exec, $browser" + # "ALT, code:11, exec, $file-manager" + # "ALT, code:12, exec, $Tfile-manager" + + # # System + # "SUPER, RETURN, exec, $terminal" + # "SUPER, X, exec, powermenu" + # "SUPER, R, exec, $launcher" + + # "SUPER, Q, killactive" + # "SUPER, F, fullscreen" + # "SUPER, T, togglefloating" + + # # Screenshot + # "ALT, S , exec , hyprshot -m region --clipboard-only" + # "CONTROL&ALT , S , exec , hyprshot -m region " + # "CONTROL&ALT&SHIFT_L , S , exec , hyprshot -m output" + + # # Window Focus + # "SUPER, h, movefocus, l" + # "SUPER, l, movefocus, r" + # "SUPER, k, movefocus, u" + # "SUPER, j, movefocus, d" + + # # Switch workspaces with mainMod + [0-9] + # "SUPER, code:10, workspace, 1" + # "SUPER, code:11, workspace, 2" + # "SUPER, code:12, workspace, 3" + # "SUPER, code:13, workspace, 4" + # "SUPER, code:14, workspace, 5" + # "SUPER, code:15, workspace, 6" + # "SUPER, code:16, workspace, 7" + # "SUPER, code:17, workspace, 8" + # "SUPER, code:18, workspace, 9" + # "SUPER, code:19, workspace, 10" + + # # Move active window to a workspace with mainMod + SHIFT + [0-9] + # "SUPER SHIFT, code:10, movetoworkspace, 1" + # "SUPER SHIFT, code:11, movetoworkspace, 2" + # "SUPER SHIFT, code:12, movetoworkspace, 3" + # "SUPER SHIFT, code:13, movetoworkspace, 4" + # "SUPER SHIFT, code:14, movetoworkspace, 5" + # "SUPER SHIFT, code:15, movetoworkspace, 6" + # "SUPER SHIFT, code:16, movetoworkspace, 7" + # "SUPER SHIFT, code:17, movetoworkspace, 8" + # "SUPER SHIFT, code:18, movetoworkspace, 9" + # "SUPER SHIFT, code:19, movetoworkspace, 10" + # ]; + + # bindm = [ + # "SUPER, mouse:272, movewindow" + # "SUPER, mouse:273, resizewindow" + # ]; + + # bindl = [ + # ",XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle" + # ",switch:Lid Switch, exec, pidof hyprlock || hyprlock" + # ]; + + # bindle = [ + # ", XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%+ -l 1" + # ", XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%-" + + # ", XF86AudioPlay , exec , playerctl play-pause" + # ", XF86AudioStop , exec , playerctl pause" + # ", XF86AudioPrev , exec , playerctl previous" + # ", XF86AudioNext , exec , playerctl next" + + # ", XF86MonBrightnessUp, exec, brightnessctl -q s 5%+" + # ", XF86MonBrightnessDown, exec, brightnessctl -q s 5%-" + # ]; + + # # ------------------------------------------------ + # # Sections + # # ------------------------------------------------ + + # xwayland = { enabled = false; }; + # opengl = { force_introspection = 1; }; + + # animations = { enabled = false; }; + # decoration = { drop_shadow = false; blur = { enabled = false; }; }; + + # general = { + # gaps_in = 4; + # gaps_out = 0; + # border_size = 2; + # "col.active_border" = "rgb(F5A97F) rgb(ED8796) rgb(C6A0F6) rgb(8AADF4) rgb(A6DA95) rgb(EED49F)"; + + # layout = "dwindle"; + # }; + + # misc = { + # vfr = true; + # vrr = 1; + + # focus_on_activate = true; + + # disable_autoreload = true; + # disable_hyprland_logo = true; + # disable_splash_rendering = true; + # }; + + # input = { + # kb_layout = "us"; + # kb_variant = ""; + + # follow_mouse = 1; + # accel_profile = "flat"; + # sensitivity = 0.4; + # repeat_delay = 300; + # repeat_rate = 50; + + # touchpad = { + # natural_scroll = true; + # clickfinger_behavior = true; + # disable_while_typing = true; + # }; + # }; + # }; + extraConfig = '' +# This is an example Hyprland config file. +# Refer to the wiki for more information. +# https://wiki.hyprland.org/Configuring/Configuring-Hyprland/ + +# Please note not all available settings / options are set here. +# For a full list, see the wiki + +# You can split this configuration into multiple files +# Create your files separately and then link them to this file like this: +# source = ~/.config/hypr/myColors.conf + + +################ +### MONITORS ### +################ + +# See https://wiki.hyprland.org/Configuring/Monitors/ +monitor=HDMI-A-1, preferred, 0x360, 1 +monitor=DP-1, highrr, 4480x0, 1 +monitor=DP-2, highrr, 1920x0, 1 + + +################### +### MY PROGRAMS ### +################### + +# See https://wiki.hyprland.org/Configuring/Keywords/ + +# Set programs that you use +$terminal = kitty +$fileManager = nemo +$menu = rofi -show drun +$lock = $HOME/.config/hypr/lock.sh +$editor = zed +$browser = firefox +$picker = hyprpicker -a -f hex + +################# +### AUTOSTART ### +################# + +# Autostart necessary processes (like notifications daemons, status bars, etc.) + +# exec-once = hyprpm reload -n +exec-once = hypridle +exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP +# exec-once=zsh $HOME/.config/hypr/autostart.sh +exec-once = waybar + +############################# +### ENVIRONMENT VARIABLES ### +############################# + +# See https://wiki.hyprland.org/Configuring/Environment-variables/ + +env = XCURSOR_SIZE,24 +env = XCURSOR_THEME,/usr/share/icons/Gruvbox-Dark/index.theme +env = HYPRCURSOR_SIZE,24 +env = HYPRCURSOR_THEME,/usr/share/icons/Gruvbox-Dark/index.theme + +env = CLUTTER_BACKEND,wayland +env = GDK_BACKEND,wayland,x11 +env = QT_AUTO_SCREEN_SCALE_FACTOR,1 +env = QT_QPA_PLATFORMTHEME,qt5ct +env = QT_QPA_PLATFORMTHEME,qt6ct +env = QT_SCALE_FACTOR,1 +env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1 + +# Nvidia +env = LIBVA_DRIVER_NAME,nvidia +env = XDG_SESSION_TYPE,wayland +env = GBM_BACKEND,nvidia-drm +env = __GLX_VENDOR_LIBRARY_NAME,nvidia +env = WLR_NO_HARDWARE_CURSORS,1 +env = __NV_PRIME_RENDER_OFFLOAD,1 +env = __VK_LAYER_NV_optimus,NVIDIA_only +env = __GL_THREADED_OPTIMIZATIONS=0 + +# Wayland enforce +env = QT_QPA_PLATFORM,wayland +env = ELECTRON_OZONE_PLATFORM_HINT,wayland +env = XDG_CURRENT_DESKTOP,Hyprland +env = XDG_SESSION_DESKTOP,Hyprland + +# Java +env = _JAVA_AWT_WM_NONREPARENTING,1 +env = _JAVA_OPTIONS,-Dawt.useSystemAAFontSettings=on + +# Firefox +env = MOZ_ENABLE_WAYLAND,1 +env = MOZ_DISABLE_RDD_SANDBOX,1 +env = EGL_PLATFORM,wayland + +# Electron +env = ELECTRON_OZONE_PLATFORM_HINT,auto + +# Input +env = QT_IM_MODULE,fcitx +env = XMODIFIERS=@im=fcitx +env = GLFW_IM_MODULE,ibus + +# SSH Agents +env = SSH_AUTH_SOCK,$XDG_RUNTIME_DIR/ssh-agent.socket + +##################### +### LOOK AND FEEL ### +##################### + +# Refer to https://wiki.hyprland.org/Configuring/Variables/ + +# https://wiki.hyprland.org/Configuring/Variables/#general +general { + gaps_in = 10 + gaps_out = 20 + + border_size = 1 + + # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors + col.active_border = rgba(fabd2fee) rgba(fe8019ee) 45deg + col.inactive_border = rgba(928374aa) + + # Set to true enable resizing windows by clicking and dragging on borders and gaps + resize_on_border = false + + # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on + allow_tearing = false + + layout = dwindle +} + +# https://wiki.hyprland.org/Configuring/Variables/#decoration +decoration { + rounding = 10 + + # Change transparency of focused and unfocused windows + active_opacity = 0.98 + inactive_opacity = 0.95 + + drop_shadow = true + shadow_range = 5 + shadow_render_power = 3 + col.shadow = rgba(1a1a1aee) + + # https://wiki.hyprland.org/Configuring/Variables/#blur + blur { + enabled = true + size = 4 + passes = 3 + + vibrancy = 0.1696 + } +} + +cursor { + no_hardware_cursors = true +} + +# https://wiki.hyprland.org/Configuring/Variables/#animations +animations { + enabled = true + + # Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more + + bezier = myBezier, 0.05, 0.9, 0.1, 1.05 + + animation = windows, 1, 7, myBezier + animation = windowsOut, 1, 7, default, popin 80% + animation = border, 1, 10, default + animation = borderangle, 1, 8, default + animation = fade, 1, 7, default + animation = workspaces, 1, 6, default +} + +# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more +dwindle { + pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below + preserve_split = true # You probably want this +} + +# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more +master { + new_status = master +} + +# https://wiki.hyprland.org/Configuring/Variables/#misc +misc { + force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers + disable_hyprland_logo = false # If true disables the random hyprland logo / anime girl background. :( +} + + +############# +### INPUT ### +############# + +# https://wiki.hyprland.org/Configuring/Variables/#input +input { + kb_layout = pl + kb_variant = + kb_model = + kb_options = + kb_rules = + + numlock_by_default = true + + follow_mouse = 1 + + sensitivity = 0 # -1.0 - 1.0, 0 means no modification. + + touchpad { + natural_scroll = true + } +} + +# https://wiki.hyprland.org/Configuring/Variables/#gestures +gestures { + workspace_swipe = false +} + +# Example per-device config +# See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more +# device { +# name = epic-mouse-v1 +# sensitivity = -0.5 +# } + +############### +### PLUGINS ### +############### + +plugin { + split-monitor-workspaces { + count = 10 + keep_focused = 1 + enable_notifications = 0 + } +} + +############## +### RENDER ### +############## + +render { + explicit_sync = 1 +} + +xwayland { + force_zero_scaling = true +} + +#################### +### KEYBINDINGSS ### +#################### + +# See https://wiki.hyprland.org/Configuring/Keywords/ +$mainMod = SUPER # Sets "Windows" key as main modifier + +# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more +bind = $mainMod SHIFT, RETURN, exec, $terminal +bind = $mainMod, Q, killactive, +bind = $mainMod SHIFT, Q, exit +bind = $mainMod, N, exec, $fileManager +bind = $mainMod, W, exec, $editor +bind = $mainMod, Z, exec, $terminal +bind = $mainMod, B, exec, $browser +bind = $mainMod SHIFT, L, exec, $lock +bind = $mainMod, V, togglefloating, +bind = $mainMod, R, exec, $menu +bind = $mainMod, SPACE, exec, $menu +bind = $mainMod SHIFT, C, exec, $picker +bind = $mainMod, P, pseudo, # dwindle +bind = $mainMod, J, togglesplit, # dwindle +bind = $mainMod, F, fullscreen, 1 +bind = $mainMod SHIFT, F, fullscreen, 0 +bind = $mainMod, T, togglefloating +bind = $mainMod, mouse:274, togglefloating + +# Move focus with mainMod + vim keys +bind = $mainMod, H, movefocus, l +bind = $mainMod, L, movefocus, r +bind = $mainMod, K, movefocus, u +bind = $mainMod, J, movefocus, d + +# Switch workspaces with mainMod + [0-9] +bind = $mainMod, 1, split-workspace, 1 +bind = $mainMod, 2, split-workspace, 2 +bind = $mainMod, 3, split-workspace, 3 +bind = $mainMod, 4, split-workspace, 4 +bind = $mainMod, 5, split-workspace, 5 +bind = $mainMod, 6, split-workspace, 6 +bind = $mainMod, 7, split-workspace, 7 +bind = $mainMod, 8, split-workspace, 8 +bind = $mainMod, 9, split-workspace, 9 +bind = $mainMod, 0, split-workspace, 10 + +# Move active window to a workspace with mainMod + SHIFT + [0-9] +bind = $mainMod SHIFT, 1, split-movetoworkspacesilent, 1 +bind = $mainMod SHIFT, 2, split-movetoworkspacesilent, 2 +bind = $mainMod SHIFT, 3, split-movetoworkspacesilent, 3 +bind = $mainMod SHIFT, 4, split-movetoworkspacesilent, 4 +bind = $mainMod SHIFT, 5, split-movetoworkspacesilent, 5 +bind = $mainMod SHIFT, 6, split-movetoworkspacesilent, 6 +bind = $mainMod SHIFT, 7, split-movetoworkspacesilent, 7 +bind = $mainMod SHIFT, 8, split-movetoworkspacesilent, 8 +bind = $mainMod SHIFT, 9, split-movetoworkspacesilent, 9 +bind = $mainMod SHIFT, 0, split-movetoworkspacesilent, 10 + +# Example special workspace (scratchpad) +bind = $mainMod, D, togglespecialworkspace, magic +bind = $mainMod SHIFT, D, movetoworkspace, special:magic + +# Move between monitors +bind = $mainMod, code:60, focusmonitor, -1 # code 60 is a dot (.) +bind = $mainMod, code:59, focusmonitor, +1 # code 59 is a comma (,) +# bind = $mainMod SHIFT, BackSpace, movewindow, mon:+1, +# bind = $mainMod SHIFT, code:59, changemonitorsilent, e-1 +# bind = $mainMod SHIFT, code:60, changemonitorsilent, e+1 + +# Scroll through existing workspaces with mainMod + scroll +bind = $mainMod, mouse_down, workspace, e+1 +bind = $mainMod, mouse_up, workspace, e-1 + +# Move/resize windows with mainMod + LMB/RMB and dragging +bindm = $mainMod, mouse:272, movewindow +bindm = $mainMod, mouse:273, resizewindow + +bind = ,XF86AudioMicMute, exec, amixer set Capture toggle +bind = ,XF86AudioMute, exec, amixer set Master toggle +bind = ,XF86AudioRaiseVolume, exec, amixer set Master playback 2%+ +bind = ,XF86AudioLowerVolume, exec, amixer set Master playback 2%- +bind = ,XF86MonBrightnessUp, exec, brightnessctl set 5%+ +bind = ,XF86MonBrightnessDown, exec, brightnessctl set 5%- +# bind =CTRL,XF86Launch2, exec, hyprctl keyword monitor "eDP-1,1920x1080@60,0x0,1" +# bind = SHIFT,XF86Launch2, exec, hyprctl keyword monitor "eDP-1,1920x1080@60,0x0,1.5" +bind = SHIFT, XF86MonBrightnessDown, exec, brightnessctl set 1% +bind = SHIFT, XF86MonBrightnessUp, exec, brightnessctl set 100% + +# Screenshot a window +bind = $mainMod, PRINT, exec, hyprshot -m window +# Screenshot a monitor +bind = , PRINT, exec, hyprshot -m output +# Screenshot a region +bind = $mainMod SHIFT, S, exec, hyprshot -m region + +############################## +### WINDOWS AND WORKSPACES ### +############################## + +# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more +# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules + +# Example windowrule v1 +# windowrule = float, ^(kitty)$ + +windowrule=opacity 1.0 override 1.0, ^(firefox)$ + +# Example windowrule v2 +# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$ + +windowrulev2 = suppressevent maximize, class:.* # You'll probably like this. + +windowrule=fullscreen, flameshot +windowrule=float,flameshot +windowrule=monitor 0,flameshot +windowrule=move 0 0,flameshot +windowrule=workspace 0,flameshot +windowrule=stayfocused,flameshot + +windowrulev2=move 0 -195,class:^(flameshot)$ + +windowrulev2 = opacity 0.0 override,class:^(xwaylandvideobridge)$ +windowrulev2 = noanim,class:^(xwaylandvideobridge)$ +windowrulev2 = noinitialfocus,class:^(xwaylandvideobridge)$ +windowrulev2 = maxsize 1 1,class:^(xwaylandvideobridge)$ +windowrulev2 = noblur,class:^(xwaylandvideobridge)$ + ''; + + }; + + + ################################# + # Hyprpaper + ################################# + services.hyprpaper = { + enable = true; + settings = { + ipc = "off"; + splash = false; + preload = [ "~/Dotfiles/home/wallpapers/nixppuccin.png" ]; + wallpaper = [ ",~/Dotfiles/home/wallpapers/nixppuccin.png" ]; + }; + }; + + ################################# + # Hypridle + ################################# + services.hypridle = { + enable = true; + + settings = { + general = { + lock_cmd = "pidof hyprlock || hyprlock"; + after_sleep_cmd = "hyprctl dispatch dpms on"; + }; + + listener = [ + + { + timeout = 60; + on-timeout = "brightnessctl -sd asus::kbd_backlight set 0"; + on-resume = "brightnessctl -rd asus::kbd_backlight"; + } + + { + timeout = 80; + on-timeout = "brightnessctl -s set 0"; + on-resume = "brightnessctl -r"; + } + + { + timeout = 100; + on-timeout = "hyprctl dispatch dpms off "; + on-resume = "hyprctl dispatch dpms on"; + } + + { + timeout = 150; + on-timeout = "systemctl suspend"; + } + ]; + }; + }; + + ################################# + # Hyprlock + ################################# + programs.hyprlock = { + enable = true; + + settings = { + + general = { + grace = 5; + no_fade_in = true; + no_fade_out = true; + disable_loading_bar = false; + }; + + background = { + monitor = ""; + path = "~/Dotfiles/home/wallpapers/lock.jpg"; + }; + + input-field = [ + { + monitor = ""; + size = "200 , 50"; + outline_thickness = 7; + + dots_size = 0.2; + dots_spacing = 0.2; + dots_center = true; + + fade_on_empty = true; + fade_timeout = "1000"; + + position = "0, -20"; + halign = "center"; + valign = "center"; + } + ]; + }; + }; +} diff --git a/home/system/stylix.nix b/home/system/stylix.nix new file mode 100644 index 0000000..6fa17ad --- /dev/null +++ b/home/system/stylix.nix @@ -0,0 +1,78 @@ +{ inputs, pkgs, ... }: +{ + imports = [ inputs.stylix.homeManagerModules.stylix ]; + + qt = { + enable = false; + style.name = "gtk2"; + platformTheme.name = "gtk"; + }; + + gtk.iconTheme = { + name = "Papirus-Dark"; + package = pkgs.papirus-icon-theme; + }; + + stylix = { + enable = true; + autoEnable = true; + + targets = { + foot.enable = false; + wofi.enable = false; + tofi.enable = false; + vscode.enable = false; + waybar.enable = false; + hyprland.enable = false; + }; + + image = ../wallpapers/nixppuccin.png; + + override = { + base00 = "1e1e2e"; # base + base01 = "181825"; # mantle + base02 = "313244"; # surface0 + base03 = "45475a"; # surface1 + base04 = "585b70"; # surface2 + base05 = "cdd6f4"; # text + base06 = "f5e0dc"; # rosewater + base07 = "b4befe"; # lavender + base08 = "f38ba8"; # red + base09 = "fab387"; # peach + base0A = "f9e2af"; # yellow + base0B = "a6e3a1"; # green + base0C = "94e2d5"; # teal + base0D = "89b4fa"; # blue + base0E = "cba6f7"; # mauve + base0F = "f2cdcd"; # flamingo + }; + + cursor = { + size = 24; + name = "Bibata-Modern-Ice"; + package = pkgs.bibata-cursors; + }; + + fonts = { + emoji = { + package = pkgs.noto-fonts-emoji; + name = "noto-fonts-color-emoji"; + }; + + monospace = { + package = pkgs.nerdfonts.override { fonts = [ "DroidSansMono" ]; }; + name = "DroidSansMono"; + }; + + sansSerif = { + package = pkgs.nerdfonts.override { fonts = [ "DroidSansMono" ]; }; + name = "DroidSansMono"; + }; + + serif = { + package = pkgs.nerdfonts.override { fonts = [ "DroidSansMono" ]; }; + name = "DroidSansMono"; + }; + }; + }; +} diff --git a/home/system/tofi.nix b/home/system/tofi.nix new file mode 100644 index 0000000..69545be --- /dev/null +++ b/home/system/tofi.nix @@ -0,0 +1,36 @@ +{ + programs.tofi = { + enable = true; + settings = { + # font + font-size = 12; + + # Window Style + horizontal = true; + anchor = "top"; + width = "100%"; + height = "15%"; + + result-spacing = 25; + min-input-width = 120; + + # Style + padding-top = 0; + padding-bottom = 0; + padding-left = 0; + padding-right = 0; + + outline-width = 0; + border-width = 0; + + prompt-text = " ❯ "; + num-results = 7; + + text-color = "#cdd6f4"; + prompt-color = "#f38ba8"; + selection-color = "#f9e2af"; + background-color = "#1a1b26"; + + }; + }; +} diff --git a/home/system/waybar.nix b/home/system/waybar.nix new file mode 100644 index 0000000..e961e42 --- /dev/null +++ b/home/system/waybar.nix @@ -0,0 +1,550 @@ +{ pkgs, ... }: +{ + programs.waybar = { + enable = true; + package = pkgs.waybar.overrideAttrs (oa: { mesonFlags = (oa.mesonFlags or [ ]) ++ [ "-Dexperimental=true" ]; }); + + settings.mainBar = { + layer = "top"; # Waybar at top layer + height = 32; # Waybar height (to be removed for auto height) + spacing = 0; # Gaps between modules (4px) + position = "top"; + margin = "10 20 0"; + # Choose the order of the modules + modules-left = [ + "hyprland/workspaces" + "custom/media" + ]; + modules-center = ["hyprland/window"]; + modules-right = [ + "mpris" + # "idle_inhibitor", + "pulseaudio" + # "network", + "cpu" + "memory" + # "temperature", + "backlight" + # "keyboard-state", + "battery" + "clock" + "tray" + ]; + # Modules configuration + # "sway/workspaces = { + # "disable-scroll = true, + # "all-outputs = true, + # "warp-on-scroll = false, + # "format = "{name}: {icon}", + # "format-icons = { + # "1 = "", + # "2 = "", + # "3 = "", + # "4 = "", + # "5 = "", + # "urgent = "", + # "focused = "", + # "default = "" + # } + # }, + "hyprland/workspaces" = { + active-only = false; + format = "{icon}"; + # format-icons = { + # 1 = "一"; + # 2 = "二"; + # 3 = "三"; + # 4 = "四"; + # 5 = "五"; + # 6 = "六"; + # 7 = "七"; + # 8 = "八"; + # 9 = "九"; + # 10 = "十"; + # 11 = "一"; + # 12 = "二"; + # 13 = "三"; + # 14 = "四"; + # 15 = "五"; + # 16 = "六"; + # 17 = "七"; + # 18 = "八"; + # 19 = "九"; + # 20 = "十"; + # 21 = "一"; + # 22 = "二"; + # 23 = "三"; + # 24 = "四"; + # 25 = "五"; + # 26 = "六"; + # 27 = "七"; + # 28 = "八"; + # 29 = "九"; + # 30 = "十"; + # }; + on-scroll-up = "hyprctl dispatch workspace e+1"; + on-scroll-down = "hyprctl dispatch workspace e-1"; + persistent-workspaces = { + HDMI-A-1 = [1 2 3 4 5 6 7 8 9 10]; + DP-1 = [11 12 13 14 15 16 17 18 19 20]; + DP-2 = [21 22 23 24 25 26 27 28 29 30]; + }; + }; + keyboard-state = { + numlock = false; + capslock = true; + format = "{name} {icon}"; + format-icons = { + locked = ""; + unlocked = ""; + }; + }; + "sway/mode" = { + format = "{}"; + }; + "sway/scratchpad" = { + format = "{icon} {count}"; + show-empty = false; + format-icons = ["" ""]; + tooltip = true; + tooltip-format = "{app}: {title}"; + }; + mpris = { + interval = 1; + format = "{player_icon} {status_icon}"; + format-paused = "{player_icon} {status_icon}"; + tooltip-format = "{player_icon} {dynamic}"; + tooltip-format-paused = "{player_icon} {dynamic}"; + player-icons = { + default = "󰎄"; + mpv = "󰝚"; + vlc = "󰕼"; + spotify = ""; + }; + status-icons = { + playing = ""; + paused = ""; + stopped = ""; + }; + # "ignored-players = ["firefox"] + }; + mpd = { + format = "{stateIcon} {consumeIcon}{randomIcon}{repeatIcon}{singleIcon}{artist} - {album} - {title} ({elapsedTime:%M:%S}/{totalTime:%M:%S}) ⸨{songPosition}|{queueLength}⸩ {volume}% "; + format-disconnected = "Disconnected "; + format-stopped = "{consumeIcon}{randomIcon}{repeatIcon}{singleIcon}Stopped "; + unknown-tag = "N/A"; + interval = 2; + consume-icons = { + on = " "; + }; + random-icons = { + off = " "; + on = " "; + }; + repeat-icons = { + on = " "; + }; + single-icons = { + on = "1 "; + }; + state-icons = { + paused = ""; + playing = ""; + }; + tooltip-format = "MPD (connected)"; + tooltip-format-disconnected = "MPD (disconnected)"; + }; + idle_inhibitor = { + format = "{icon}"; + format-icons = { + activated = "󰅶"; + deactivated = "󰾪"; + }; + }; + tray = { + # "icon-size = 21, + spacing = 10; + show-passive-items = true; + }; + clock = { + format = "{:%b %d %I:%M %p}"; + tooltip-format = "{:%d %B %Y}\n{calendar}"; + format-alt = "{:%Y-%m-%d %I:%M %p}"; + }; + cpu = { + format = "{usage}% "; + tooltip = false; + }; + memory = { + format = "{}% "; + }; + temperature = { + # "thermal-zone = 2, + # "hwmon-path = "/sys/class/hwmon/hwmon2/temp1_input", + critical-threshold = 80; + # "format-critical = "{temperatureC}°C {icon}", + format = "{temperatureC}°C {icon}"; + format-icons = ["" "" " "]; + }; + backlight = { + # "device = "acpi_video1", + format = "{percent}% {icon}"; + format-icons = ["" "" "" "" "" "" "" "" ""]; + }; + battery = { + bat = "BAT0"; + states = { + # good = 95, + warning = 30; + critical = 15; + }; + format = "{capacity}% {icon}"; + format-charging = "{capacity}% "; + format-plugged = "{capacity}% "; + format-alt = "{time} {icon}"; + # "format-good = "", # An empty format will hide the module + # "format-full = "", + format-icons = ["" "" "" "" ""]; + }; + network = { + # "interface = "wlp2*", # (Optional) To force the use of this interface + format-wifi = "{essid} ({signalStrength}%) "; + format-ethernet = "{ipaddr}/{cidr} 󰈀"; + tooltip-format = "{ifname} via {gwaddr} "; + format-linked = "{ifname} (No IP) "; + format-disconnected = "Disconnected ⚠"; + format-alt = "{ifname}: {ipaddr}/{cidr}"; + on-click-right = "kitty nmtui"; + }; + pulseaudio = { + # "scroll-step = 1, # %, can be a float + format = "{volume}% {icon} {format_source}"; + format-bluetooth = "{volume}% {icon} {format_source}"; + format-bluetooth-muted = "󰝟 {icon} {format_source}"; + format-muted = "󰝟 {format_source}"; + format-source = " {volume}% "; + format-source-muted = " "; + format-icons = { + headphone = "󰋋"; + hands-free = "󰟅"; + headset = "󰋎"; + phone = ""; + portable = ""; + car = ""; + default = ["" "" ""]; + }; + on-click = "pavucontrol"; + }; + "custom/media" = { + format = "{icon} {}"; + return-type = "json"; + max-length = 40; + format-icons = { + spotify = ""; + default = "🎜"; + }; + escape = true; + exec = "$HOME/.config/waybar/mediaplayer.py 2> /dev/null"; # Script in resources folder + # exec = "$HOME/.config/waybar/mediaplayer.py --player spotify 2> /dev/null" # Filter player based on name + }; + "custom/archicon" = { + format = "󰣇"; + # "on-click":"nwg-menu -d -fm nemo -cmd-lock gtklock -va top", + on-click = "jgmenu_run"; + tooltip = false; + }; + }; + + # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + # CSS Styling + # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + style = '' + * { + font-family: "JetBrainsMono Nerd Font", FontAwesome, Roboto, Helvetica, + Arial, sans-serif; + font-size: 16px; + } + + window#waybar { + background-color: @background-hard-contrast; + color: @foreground; + transition-property: background-color; + transition-duration: 0.5s; + border-radius: 10px; + } + + window#waybar.hidden { + opacity: 0.2; + } + + /* + window#waybar.empty { + background-color: transparent; + } + window#waybar.solo { + background-color: #FFFFFF; + } + */ + + /*window#waybar.termite { + background-color: #3F3F3F; + } + window#waybar.chromium { + background-color: #000000; + border: none; + }*/ + + #workspaces button { + box-shadow: inset 0 -3px transparent; + padding: 0 8px; + background-color: @background; + color: @foreground; + border: none; + border-radius: 0; + font-weight: 800; + } + + #workspaces button:first-child { + border-radius: 10px 0 0 10px; + } + + #workspaces button:last-child { + border-radius: 0 10px 10px 0; + } + + /* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */ + #workspaces button:hover { + background: rgba(0, 0, 0, 0.2); + background-color: @background-soft-contrast; + /* box-shadow: inset 0 -100px 0 -97px @bright-yellow; */ + } + + #workspaces button.empty { + color: @foreground-soft-contrast; + box-shadow: inherit; + text-shadow: inherit; + } + + #workspaces button.active { + color: @yellow; + box-shadow: inset 0 -100px 0 -97px @bright-yellow; + text-shadow: inherit; + } + + #workspaces button.focused { + background-color: @background-soft-contrast; + color: @foreground; + /* box-shadow: inset 0 -100px 0 -97px @bright-yellow; */ + } + + #workspaces button.urgent { + background-color: @bright-red; + color: @background; + } + + #mode { + background-color: @background-soft-contrast; + border-bottom: 3px solid @yellow; + } + + #cava, + #clock, + #battery, + #cpu, + #memory, + #disk, + #temperature, + #backlight, + #network, + #pulseaudio, + #pulseaudio.muted, + #pulseaudio.bluetooth, + #wireplumber, + #custom-media, + #tray, + #mpris, + #keyboard-state, + #mode, + #battery, + #idle_inhibitor, + #scratchpad, + #mpd { + padding: 0 10px; + color: @foreground; + } + + #window, + #workspaces { + margin: 0 4px; + padding-top: 0px; + } + + .modules-right { + background-color: @background-soft-contrast; + border-radius: 10px; + } + + /* If workspaces is the leftmost module, omit left margin */ + .modules-left > widget:first-child > #workspaces { + margin-left: 0; + } + + /* If workspaces is the rightmost module, omit right margin */ + .modules-right > widget:last-child > #workspaces { + margin-right: 0; + } + + #mpris { + color: @yellow; + } + + #clock { + color: @yellow; + } + + #battery { + color: @blue; + } + + #battery.charging, + #battery.plugged { + color: #d3869b; + } + + @keyframes blink { + to { + background-color: #fbf1c7; + color: #df3f71; + } + } + + #battery.critical:not(.charging) { + background-color: #282828; + color: #d3869b; + animation-name: blink; + animation-duration: 0.5s; + animation-timing-function: linear; + animation-iteration-count: infinite; + animation-direction: alternate; + } + + label:focus { + background-color: #000000; + } + + #backlight { + color: #458588; + } + + #temperature { + color: #fabd2f; + } + + #temperature.critical { + background-color: #fbf1c7; + color: #b57614; + } + + #cpu { + color: @blue; + } + + #memory { + color: @magenta; + } + + #network { + color: @blue; + } + + #network.disconnected { + background-color: @bright-red; + color: @background; + } + + /*#disk { + background-color: #964B00; + }*/ + + #pulseaudio, + #pulseaudio.muted, + #pulseaudio.bluetooth { + color: @cyan; + } + + #tray { + } + + #tray > .needs-attention { + background-color: @bright-red; + color: @background; + } + + #idle_inhibitor { + background-color: #282828; + color: #ebdbb2; + } + + #idle_inhibitor.activated { + background-color: #fbf1c7; + color: #3c3836; + } + + #custom-media { + background-color: #66cc99; + color: #2a5c45; + min-width: 100px; + } + + #custom-media.custom-spotify { + background-color: #66cc99; + } + + #custom-media.custom-vlc { + background-color: #ffa000; + } + + #mpd { + background-color: #66cc99; + color: #2a5c45; + } + + #mpd.disconnected { + background-color: #f53c3c; + } + + #mpd.stopped { + background-color: #90b1b1; + } + + #mpd.paused { + background-color: #51a37a; + } + + #language { + background: #00b093; + color: #740864; + padding: 0 5px; + margin: 0 5px; + min-width: 16px; + } + + #keyboard-state { + background: #97e1ad; + color: #000000; + padding: 0 0px; + margin: 0 5px; + min-width: 16px; + } + + #keyboard-state > label { + padding: 0 5px; + } + + #keyboard-state > label.locked { + background: rgba(0, 0, 0, 0.2); + } + + ''; + }; +} diff --git a/home/system/wlsunset.nix b/home/system/wlsunset.nix new file mode 100644 index 0000000..a6d37ad --- /dev/null +++ b/home/system/wlsunset.nix @@ -0,0 +1,11 @@ +{ + services.wlsunset = { + enable = true; + gamma = 0.8; + + sunrise = "7:00"; + sunset = "19:00"; + + temperature.night = 4000; + }; +} diff --git a/home/system/wofi.nix b/home/system/wofi.nix new file mode 100644 index 0000000..6dec274 --- /dev/null +++ b/home/system/wofi.nix @@ -0,0 +1,102 @@ +{ + programs.wofi = { + enable = true; + settings = { + allow_markup = true; + width = 450; + terminal = "foot"; + height = "305px"; + orientation = "vertical"; + halign = "fill"; + show = "drun"; + prompt = "Apps"; + normal_window = true; + layer = "top"; + gtk_dark = true; + line_wrap = "off"; + dynamic_lines = false; + allow_images = true; + image_size = 24; + exec_search = false; + hide_search = false; + parse_search = false; + insensitive = true; + hide_scroll = true; + no_actions = true; + sort_order = "default"; + filter_rate = 100; + key_expand = "Tab"; + key_exit = "Escape"; + }; + + style = '' + /** ********** Fonts ********** **/ + + * { + font-size: 14px; + font-weight: 800; + } + + #window { + background-color: @theme_base_color; + color: @theme_text_color; + border-radius: 10px; + } + + #outer-box { + padding: 20px; + } + + #input { + background-color: #181825; + border: #313244; + padding: 8px 12px; + } + + #scroll { + margin-top: 20px; + } + + #inner-box {} + + #img { + padding-right: 8px; + } + + #text { + color: #cdd6f4; + } + + #text:selected { + color: #f5e0dc; + } + + #entry { + padding: 6px; + } + + #entry:selected { + background-image: linear-gradient( + to right, + #F5A97F, + #ED8796, + #C6A0F6, + #8AADF4, + #A6DA95, + #EED49F + ); + color: #cdd6f4; + } + + #unselected {} + + #selected {} + + #input, + #entry:selected { + border-radius: 20px; + } + + ''; + }; +} diff --git a/home/wallpapers/Nixos.png b/home/wallpapers/Nixos.png new file mode 100755 index 0000000..3e252b8 Binary files /dev/null and b/home/wallpapers/Nixos.png differ diff --git a/home/wallpapers/lock.jpg b/home/wallpapers/lock.jpg new file mode 100644 index 0000000..cd18acf Binary files /dev/null and b/home/wallpapers/lock.jpg differ diff --git a/home/wallpapers/nix-black-4k.png b/home/wallpapers/nix-black-4k.png new file mode 100755 index 0000000..c1f20a2 Binary files /dev/null and b/home/wallpapers/nix-black-4k.png differ diff --git a/home/wallpapers/nix-magenta-blue-1920x1080.png b/home/wallpapers/nix-magenta-blue-1920x1080.png new file mode 100644 index 0000000..fd596a4 Binary files /dev/null and b/home/wallpapers/nix-magenta-blue-1920x1080.png differ diff --git a/home/wallpapers/nix-magenta-pink-1920x1080.png b/home/wallpapers/nix-magenta-pink-1920x1080.png new file mode 100644 index 0000000..ef8c9de Binary files /dev/null and b/home/wallpapers/nix-magenta-pink-1920x1080.png differ diff --git a/home/wallpapers/nixos-catpuchin.png b/home/wallpapers/nixos-catpuchin.png new file mode 100755 index 0000000..ccb261e Binary files /dev/null and b/home/wallpapers/nixos-catpuchin.png differ diff --git a/home/wallpapers/nixppuccin.png b/home/wallpapers/nixppuccin.png new file mode 100644 index 0000000..a1d07e4 Binary files /dev/null and b/home/wallpapers/nixppuccin.png differ diff --git a/home/wallpapers/rog.jpg b/home/wallpapers/rog.jpg new file mode 100644 index 0000000..3a11d44 Binary files /dev/null and b/home/wallpapers/rog.jpg differ diff --git a/hosts/common/default.nix b/hosts/common/default.nix deleted file mode 100644 index 8a23cbf..0000000 --- a/hosts/common/default.nix +++ /dev/null @@ -1,89 +0,0 @@ -{ - inputs, - outputs, - lib, - config, - pkgs, - ... -}: { - imports = [ - ./locale.nix - ./packages.nix - ./services.nix - ./users.nix - ./docker.nix - ./x.nix - ]; - - nixpkgs = { - # You can add overlays here - overlays = [ - # Add overlays your own flake exports (from overlays and pkgs dir): - outputs.overlays.additions - outputs.overlays.modifications - outputs.overlays.unstable-packages - - # You can also add overlays exported from other flakes: - # neovim-nightly-overlay.overlays.default - - # Or define it inline, for example: - # (final: prev: { - # hi = final.hello.overrideAttrs (oldAttrs: { - # patches = [ ./change-hello-to-hi.patch ]; - # }); - # }) - ]; - # Configure your nixpkgs instance - config = { - # I'm sorry Richard Stallman - allowUnfree = true; - }; - }; - - # This will add each flake input as a registry - # To make nix3 commands consistent with your flake - nix.registry = (lib.mapAttrs (_: flake: {inherit flake;})) ((lib.filterAttrs (_: lib.isType "flake")) inputs); - - # This will additionally add your inputs to the system's legacy channels - # Making legacy nix commands consistent as well, awesome! - nix.nixPath = ["/etc/nix/path"]; - environment.etc = - lib.mapAttrs' - (name: value: { - name = "nix/path/${name}"; - value.source = value.flake; - }) - config.nix.registry; - - nix.settings = { - # Enable flakes and new 'nix' command - experimental-features = "nix-command flakes"; - # Deduplicate and optimize nix store - auto-optimise-store = true; - # Use cache servers for packages - substituters = [ - "https://nix-community.cachix.org" - "https://cache.nixos.org/" - ]; - trusted-public-keys = [ - "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" - ]; - }; - - # Bootloader. - boot.loader.systemd-boot.enable = true; - boot.loader.efi.canTouchEfiVariables = true; - - # Enables wireless support via wpa_supplicant - # networking.wireless.enable = true; - - # Configure network proxy if necessary - # networking.proxy.default = "http://user:password@proxy:port/"; - # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain"; - - # Enable networking - networking.networkmanager.enable = true; - - # Set your time zone - time.timeZone = "Europe/Warsaw"; -} diff --git a/hosts/common/docker.nix b/hosts/common/docker.nix deleted file mode 100644 index a0f86ac..0000000 --- a/hosts/common/docker.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ - virtualisation.docker = { - enable = true; - }; -} diff --git a/hosts/common/locale.nix b/hosts/common/locale.nix deleted file mode 100644 index c919dc9..0000000 --- a/hosts/common/locale.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ - inputs, - outputs, - lib, - config, - pkgs, - ... -}: { - # Select internationalisation properties - i18n.defaultLocale = "en_US.UTF-8"; - - i18n.extraLocaleSettings = { - LC_ADDRESS = "pl_PL.UTF-8"; - LC_IDENTIFICATION = "pl_PL.UTF-8"; - LC_MEASUREMENT = "pl_PL.UTF-8"; - LC_MONETARY = "pl_PL.UTF-8"; - LC_NAME = "pl_PL.UTF-8"; - LC_NUMERIC = "en_US.UTF-8"; - LC_PAPER = "pl_PL.UTF-8"; - LC_TELEPHONE = "pl_PL.UTF-8"; - LC_TIME = "en_US.UTF-8"; - }; -} diff --git a/hosts/common/packages.nix b/hosts/common/packages.nix deleted file mode 100644 index f56baad..0000000 --- a/hosts/common/packages.nix +++ /dev/null @@ -1,56 +0,0 @@ -{ - inputs, - outputs, - lib, - config, - pkgs, - ... -}: { - # Auto-upgrade in the background - system.autoUpgrade = { - enable = true; - flake = inputs.self.outPath; - flags = [ - "--update-input" - "nixpkgs" - "-L" - ]; - dates = "12:00"; - randomizedDelaySec = "45min"; - }; - - environment.systemPackages = with pkgs; [ - vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. - # wget - ntfs3g - dosfstools - unstable.nh - nix-output-monitor - nvd - ]; - - fonts.packages = with pkgs; [ - nerdfonts - noto-fonts - noto-fonts-cjk - noto-fonts-emoji - font-awesome - source-han-sans - source-han-sans-japanese - source-han-serif-japanese - ]; - - environment.sessionVariables = { - FLAKE = "/home/mike/.dots"; - }; - - programs.nix-ld = { - enable = true; - libraries = with pkgs; [ - # Add any missing dynamic libraries for unpackaged - # programs here, NOT in environment.systemPackages - ]; - }; - - programs.dconf.enable = true; -} diff --git a/hosts/common/services.nix b/hosts/common/services.nix deleted file mode 100644 index 51e8b8a..0000000 --- a/hosts/common/services.nix +++ /dev/null @@ -1,87 +0,0 @@ -{ - inputs, - outputs, - lib, - config, - pkgs, - ... -}: { - # I use zsh btw - environment.shells = with pkgs; [bash zsh]; - users.defaultUserShell = pkgs.zsh; - programs.zsh.enable = true; - - - # Configure console keymap - console.keyMap = "pl2"; - - services.gnome.gnome-keyring.enable = true; - - # Enable CUPS to print documents. - services.printing.enable = true; - - # Enable sound with pipewire. - sound.enable = true; - hardware.pulseaudio.enable = false; - security.rtkit.enable = true; - services.pipewire = { - enable = true; - alsa.enable = true; - alsa.support32Bit = true; - pulse.enable = true; - # If you want to use JACK applications, uncomment this - #jack.enable = true; - - # use the example session manager (no others are packaged yet so this is enabled by default, - # no need to redefine it in your config for now) - #media-session.enable = true; - }; - - # Enable touchpad support (enabled default in most desktopManager). - # services.xserver.libinput.enable = true; - - # Some programs need SUID wrappers, can be configured further or are - # started in user sessions. - programs.mtr.enable = true; - programs.gnupg.agent = { - enable = true; - enableSSHSupport = true; - pinentryFlavor = "curses"; - settings = { - max-cache-ttl = 60480000; - default-cache-ttl = 60480000; - # default-cache-ttl-ssh = 60480000; - # max-cache-ttl-ssl = 60480000; - }; - }; - - # This setups a SSH server. Very important if you're setting up a headless system. - # Feel free to remove if you don't need it. - services.openssh = { - enable = true; - settings = { - # Forbid root login through SSH. - PermitRootLogin = "no"; - # Use keys only. Remove if you want to SSH using password (not recommended) - PasswordAuthentication = true; - X11Forwarding = true; - }; - }; - - # security.pam.services.kwallet = { - # name = "kwallet"; - # enableKwallet = true; - # }; - - programs.ssh = { - # startAgent = true; - # forwardX11 = true; - # enableAskPassword = true; - }; - - # Open ports in the firewall. - # networking.firewall.allowedTCPPorts = [ ... ]; - # networking.firewall.allowedUDPPorts = [ ... ]; - # Or disable the firewall altogether. - # networking.firewall.enable = false; -} diff --git a/hosts/common/users.nix b/hosts/common/users.nix deleted file mode 100644 index 0d4fe8d..0000000 --- a/hosts/common/users.nix +++ /dev/null @@ -1,20 +0,0 @@ -{ - inputs, - outputs, - lib, - config, - pkgs, - ... -}: { - # Define a user account. Don't forget to set a password with ‘passwd’. - users.users = { - mike = { - isNormalUser = true; - description = "Mike"; - openssh.authorizedKeys.keys = [ - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDfqPj+a2gmoUl3TuGSZxf0zRBabVWvXRrjLF7sFlqjMbfkx428F3L7C8OC3Z9XDT4ysbpgWcPuVKNtK5kkKGjSLHAgB2CgvD15K11Q+ag1+uyePaiOypZYJewvv1hhqU5IrVcxUbTsbREH/IsdQSlNSuyNFIr3oFnrff5iKEKEwEvSDeiqpqRh56pAkF6Kb15aYqZO7X9rbfoa8Sgj3VJXN0181lXMjXkNsYVa3gDmKv89C6qutg+KOpHlXgn4AfIRcCw8ik6OGBEfi/gUeb3SYpD+7undNLyloxCbGwHQ40IdoqPatyhTNS4jm9kb+Tno4hj0pbLHZSUdXgGaSfGx1W0MVVY0mm0Hu7EmYDBHUTfmPmPxnolWh8UH+XdkNPnwZfyZlyBcVVkVzog1ZCs1i9Y6oS1ZIbzuz+WxBPPDIHMRdmxv6+PMc5kZyrpuX1PgFb7Xt5cRNAL5/wywoi9Z45SS7qP9zNSb443UaaXzUatqnlawZ0GS0qXJh3ljwJ8= mike@odin" - ]; - extraGroups = ["networkmanager" "wheel" "docker" "libvirtd"]; - }; - }; -} diff --git a/hosts/common/x.nix b/hosts/common/x.nix deleted file mode 100644 index 3086e83..0000000 --- a/hosts/common/x.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ - inputs, - outputs, - lib, - config, - pkgs, - ... -}: { - services.udisks2.enable = true; - security.polkit.enable = true; - services.upower.enable = config.powerManagement.enable; - services.gvfs.enable = true; - - services.autorandr = { - enable = true; - }; - - environment.systemPackages = with pkgs; [ - autorandr - xorg.xrandr - xorg.libX11 - xorg.libX11.dev - xorg.libXft - xorg.libXinerama - xorg.xbacklight - pulseaudioFull - brightnessctl - ]; -} diff --git a/hosts/default.nix b/hosts/default.nix new file mode 100644 index 0000000..14e24d9 --- /dev/null +++ b/hosts/default.nix @@ -0,0 +1,56 @@ +{ hostname, ... }: +{ + imports = + if hostname == "zion" then [ + ./zion.nix + + ./modules/nh.nix + ./modules/boot.nix + ./modules/users.nix + ./modules/greetd.nix + ./modules/fstrim.nix + ./modules/nvidia.nix + ./modules/network.nix + ./modules/security.nix + ./modules/pipewire.nix + ./modules/gsettings.nix + ./modules/bluetooth.nix + ./modules/packages.nix + # ./modules/lanzaboot.nix + ./modules/configuration.nix + ] + else if hostname == "thor" then [ + ./thor.nix + + ./modules/nh.nix + ./modules/tlp.nix + ./modules/boot.nix + ./modules/users.nix + ./modules/greetd.nix + ./modules/fstrim.nix + ./modules/network.nix + ./modules/security.nix + ./modules/pipewire.nix + ./modules/gsettings.nix + ./modules/bluetooth.nix + ./modules/lanzaboot.nix + ./modules/configuration.nix + ] + else if hostname == "server" then [ + ./server.nix + + ./modules/nh.nix + ./modules/tlp.nix + ./modules/ssh.nix + ./modules/boot.nix + ./modules/users.nix + ./modules/nvidia.nix + ./modules/ollama.nix + ./modules/fstrim.nix + ./modules/system.nix + ./modules/network.nix + ./modules/configuration.nix + #./modules/lanzaboot.nix + ] + else [ ]; +} diff --git a/hosts/modules/adb.nix b/hosts/modules/adb.nix new file mode 100644 index 0000000..7162c77 --- /dev/null +++ b/hosts/modules/adb.nix @@ -0,0 +1,8 @@ +{ pkgs, ... }: +{ + programs.adb.enable = true; + environment.systemPackages = [ + pkgs.android-tools + pkgs.universal-android-debloater + ]; +} diff --git a/hosts/modules/ananicy.nix b/hosts/modules/ananicy.nix new file mode 100644 index 0000000..650fe29 --- /dev/null +++ b/hosts/modules/ananicy.nix @@ -0,0 +1,8 @@ +{ pkgs, ... }: +{ + services.ananicy = { + enable = true; + package = pkgs.ananicy-cpp; + rulesProvider = pkgs.ananicy-rules-cachyos; + }; +} diff --git a/hosts/modules/bluetooth.nix b/hosts/modules/bluetooth.nix new file mode 100644 index 0000000..3fe24b0 --- /dev/null +++ b/hosts/modules/bluetooth.nix @@ -0,0 +1,8 @@ +{ + services.blueman.enable = false; + + hardware.bluetooth = { + enable = true; + powerOnBoot = false; + }; +} diff --git a/hosts/modules/boot.nix b/hosts/modules/boot.nix new file mode 100644 index 0000000..c7b1e14 --- /dev/null +++ b/hosts/modules/boot.nix @@ -0,0 +1,24 @@ +{ pkgs, hostname, inputs, ... }: +{ + imports = if hostname == "zion" then [ inputs.chaotic.nixosModules.default ] else [ ]; + + boot = { + tmp.cleanOnBoot = true; + + loader = { + timeout = 1; + efi.canTouchEfiVariables = true; + + systemd-boot = { + enable = true; + configurationLimit = 10; + }; + }; + + kernelPackages = + if hostname == "zion" then pkgs.linuxPackages #linuxPackages_zen #linuxPackages #linuxPackages_latest #linuxPackages_xanmod_latest + else if hostname == "thor" then pkgs.linuxPackages + else if hostname == "server" then pkgs.linuxPackages + else pkgs.linuxPackages_zen; + }; +} diff --git a/hosts/modules/configuration.nix b/hosts/modules/configuration.nix new file mode 100644 index 0000000..b3cc796 --- /dev/null +++ b/hosts/modules/configuration.nix @@ -0,0 +1,66 @@ +{ hostname, inputs, ... }: +{ + time.timeZone = "Europe/Warsaw"; + i18n.defaultLocale = "en_US.UTF-8"; + + hardware.graphics = { + enable = true; + enable32Bit = true; + }; + + services = { + logind = { + lidSwitch = "ignore"; + lidSwitchExternalPower = if hostname == "server" then "ignore" else "suspend-then-hibernate"; + }; + }; + + system = { + stateVersion = "24.05"; + switch = { + enable = false; + enableNg = true; + }; + }; + + nixpkgs = { config = { allowUnfree = true; }; }; + + documentation = { + enable = false; + doc.enable = false; + man.enable = false; + dev.enable = false; + info.enable = false; + nixos.enable = false; + }; + + nix = { + daemonCPUSchedPolicy = "batch"; + channel.enable = false; + nixPath = [ "nixpkgs=${inputs.nixpkgs}" ]; + + optimise = { + automatic = true; + dates = [ "daily" ]; + }; + + settings = { + auto-optimise-store = true; + experimental-features = [ "nix-command" "flakes" ]; + + substituters = [ + "https://cache.nixos.org" + "https://hyprland.cachix.org" + "https://nix-community.cachix.org" + "https://cuda-maintainers.cachix.org" + ]; + + trusted-public-keys = [ + "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" + "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" + "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" + "cuda-maintainers.cachix.org-1:0dq3bujKpuEPMCX6U4WylrUDZ9JyUG0VpVZa7CNfq5E=" + ]; + }; + }; +} diff --git a/hosts/modules/fstrim.nix b/hosts/modules/fstrim.nix new file mode 100644 index 0000000..a93803e --- /dev/null +++ b/hosts/modules/fstrim.nix @@ -0,0 +1,6 @@ +{ + services.fstrim = { + enable = true; + interval = "daily"; + }; +} diff --git a/hosts/modules/gaming.nix b/hosts/modules/gaming.nix new file mode 100755 index 0000000..1b9220d --- /dev/null +++ b/hosts/modules/gaming.nix @@ -0,0 +1,28 @@ +{ pkgs, username, ... }: +{ + users.users.${username}.packages = with pkgs; [ heroic ]; + hardware.steam-hardware.enable = true; + + programs = { + steam = { + enable = true; + gamescopeSession.enable = true; + extraCompatPackages = with pkgs; [ proton-ge-bin ]; + }; + + gamemode = { + enable = false; + enableRenice = false; + settings = { }; + }; + + gamescope = { + enable = false; + args = [ + "-w 1920 -h 1080" + "-F nis" + "f" + ]; + }; + }; +} diff --git a/hosts/modules/greetd.nix b/hosts/modules/greetd.nix new file mode 100644 index 0000000..bfba4fb --- /dev/null +++ b/hosts/modules/greetd.nix @@ -0,0 +1,32 @@ +{ pkgs, ... }: +{ + services.greetd = { + enable = true; + settings = { + default_session = { + command = "${pkgs.greetd.tuigreet}/bin/tuigreet --remember --asterisks --container-padding 2 --time --time-format '%I:%M %p | %a • %h | %F' --cmd Hyprland"; + user = "greeter"; + }; + }; + }; + + # this is a life saver. + # literally no documentation about this anywhere. + # might be good to write about this... + # https://www.reddit.com/r/NixOS/comments/u0cdpi/tuigreet_with_xmonad_how/ + + systemd = { + # To prevent getting stuck at shutdown + extraConfig = "DefaultTimeoutStopSec=10s"; + services.greetd.serviceConfig = { + Type = "idle"; + StandardInput = "tty"; + StandardOutput = "tty"; + StandardError = "journal"; # Without this errors will spam on screen + # Without these bootlogs will spam on screen + TTYReset = true; + TTYVHangup = true; + TTYVTDisallocate = true; + }; + }; +} diff --git a/hosts/modules/gsettings.nix b/hosts/modules/gsettings.nix new file mode 100644 index 0000000..1434a0b --- /dev/null +++ b/hosts/modules/gsettings.nix @@ -0,0 +1,4 @@ +{ + programs.dconf.enable = true; + services.gvfs.enable = true; +} diff --git a/hosts/modules/kde.nix b/hosts/modules/kde.nix new file mode 100644 index 0000000..17ffac1 --- /dev/null +++ b/hosts/modules/kde.nix @@ -0,0 +1,6 @@ +{ + services.desktopManager = { + plasma6.enable = true; + enableQt5Integration = false; + }; +} diff --git a/hosts/modules/lanzaboot.nix b/hosts/modules/lanzaboot.nix new file mode 100644 index 0000000..9220fe1 --- /dev/null +++ b/hosts/modules/lanzaboot.nix @@ -0,0 +1,14 @@ +{ lib, pkgs, inputs, ... }: +{ + imports = [ inputs.lanzaboote.nixosModules.lanzaboote ]; + + environment.systemPackages = [ pkgs.sbctl ]; + + boot = { + loader.systemd-boot.enable = lib.mkForce false; + lanzaboote = { + enable = true; + pkiBundle = "/etc/secureboot"; + }; + }; +} diff --git a/hosts/modules/network.nix b/hosts/modules/network.nix new file mode 100644 index 0000000..f84b7d7 --- /dev/null +++ b/hosts/modules/network.nix @@ -0,0 +1,20 @@ +{ hostname, ... }: +{ + boot.initrd.systemd.network.wait-online.enable = false; + systemd.services.NetworkManager-wait-online.enable = false; + + networking = { + hostName = "${hostname}"; + firewall.enable = true; + + wireless = { + enable = false; + iwd.enable = false; + }; + + networkmanager = { + enable = true; + wifi.backend = "wpa_supplicant"; + }; + }; +} diff --git a/hosts/modules/nh.nix b/hosts/modules/nh.nix new file mode 100644 index 0000000..9c53284 --- /dev/null +++ b/hosts/modules/nh.nix @@ -0,0 +1,12 @@ +{ username, ... }: +{ + programs.nh = { + enable = true; + flake = "/home/${username}/.files"; + clean = { + enable = true; + dates = "weekly"; + extraArgs = "--keep-since 3d --keep 3"; + }; + }; +} diff --git a/hosts/modules/nvidia.nix b/hosts/modules/nvidia.nix new file mode 100755 index 0000000..1021fa6 --- /dev/null +++ b/hosts/modules/nvidia.nix @@ -0,0 +1,56 @@ +{ config, ... }: +{ + nixpkgs.config.nvidia.acceptLicense = true; + services.xserver.videoDrivers = [ "nvidia" ]; + + hardware = { + graphics = { + enable = true; + enable32Bit = true; + }; + + nvidia = { + package = config.boot.kernelPackages.nvidiaPackages.beta; + open = false; + + nvidiaSettings = true; + modesetting.enable = true; + # dynamicBoost.enable = true; + + powerManagement = { + enable = false; + finegrained = false; + }; + + # prime = { + # amdgpuBusId = "PCI:05:00:0"; + # nvidiaBusId = "PCI:01:00:0"; + # #sync.enable = true; + # offload = { + # enable = true; + # enableOffloadCmd = true; + # }; + # }; + }; + }; + + # specialisation = { + # Battery.configuration = { + # system.nixos.tags = [ "Battery" ]; + + # boot.extraModprobeConfig = ''blacklist nouveau options nouveau modeset=0''; + # boot.blacklistedKernelModules = [ "nouveau" "nvidia" "nvidia_drm" "nvidia_modeset" ]; + + # services.udev.extraRules = '' + # # Remove NVIDIA USB xHCI Host Controller devices, if present + # ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x0c0330", ATTR{power/control}="auto", ATTR{remove}="1" + # # Remove NVIDIA USB Type-C UCSI devices, if present + # ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x0c8000", ATTR{power/control}="auto", ATTR{remove}="1" + # # Remove NVIDIA Audio devices, if present + # ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x040300", ATTR{power/control}="auto", ATTR{remove}="1" + # # Remove NVIDIA VGA/3D controller devices + # ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x03[0-9]*", ATTR{power/control}="auto", ATTR{remove}="1" + # ''; + # }; + # }; +} diff --git a/hosts/modules/ollama.nix b/hosts/modules/ollama.nix new file mode 100644 index 0000000..ca46c21 --- /dev/null +++ b/hosts/modules/ollama.nix @@ -0,0 +1,14 @@ +{ + nixpkgs.config.cudaSupport = true; + + services.ollama = { + enable = true; + acceleration = "cuda"; + }; + + services.open-webui = { + enable = false; + host = "0.0.0.0"; + openFirewall = true; + }; +} diff --git a/hosts/modules/packages.nix b/hosts/modules/packages.nix new file mode 100644 index 0000000..da95909 --- /dev/null +++ b/hosts/modules/packages.nix @@ -0,0 +1,30 @@ +{ pkgs, ... }: +{ + environment.systemPackages = with pkgs; [ + vim + ntfs3g + dosfstools + nix-output-monitor + nvd + ]; + + fonts.packages = with pkgs; [ + nerdfonts + noto-fonts + noto-fonts-cjk-sans + noto-fonts-emoji + font-awesome + source-han-sans + source-han-sans-japanese + source-han-serif-japanese + ]; + + # Some programs need SUID wrappers, can be configured further or are + # started in user sessions. + programs.mtr.enable = true; + programs.gnupg.agent = { + enable = true; + enableSSHSupport = true; + }; + +} diff --git a/hosts/modules/pipewire.nix b/hosts/modules/pipewire.nix new file mode 100644 index 0000000..99e0425 --- /dev/null +++ b/hosts/modules/pipewire.nix @@ -0,0 +1,23 @@ +{ + services.pipewire = { + enable = true; + + jack.enable = true; + pulse.enable = true; + + alsa = { + enable = true; + support32Bit = true; + }; + + wireplumber.extraConfig = { + "10-disable-camera" = { + "wireplumber.profiles" = { + main = { + "monitor.libcamera" = "disabled"; + }; + }; + }; + }; + }; +} diff --git a/hosts/modules/qtile.nix b/hosts/modules/qtile.nix new file mode 100755 index 0000000..5745360 --- /dev/null +++ b/hosts/modules/qtile.nix @@ -0,0 +1,28 @@ +# Enable Qtile +{ pkgs, ... }: +{ + # -------------------------------------- + # Enable QTILE + # -------------------------------------- + services.xserver.windowManager.qtile = { + enable = true; + configFile = /home/nel/dotfiles/qtile/config.py; + extraPackages = python3Packages: with python3Packages; [ qtile-extras ]; + }; + + # -------------------------------------- + # Necessary things + # -------------------------------------- + environment.sessionVariables = { + NIXOS_OZONE_WL = "1"; + }; + + xdg.portal = { + enable = true; + config.common.default = "*"; + extraPortals = with pkgs; [ + xdg-desktop-portal-wlr + xdg-desktop-portal-gtk + ]; + }; +} diff --git a/hosts/modules/security.nix b/hosts/modules/security.nix new file mode 100644 index 0000000..db7e8cd --- /dev/null +++ b/hosts/modules/security.nix @@ -0,0 +1,7 @@ +{ + security = { + sudo.enable = true; + rtkit.enable = true; + polkit.enable = true; + }; +} diff --git a/hosts/modules/ssh.nix b/hosts/modules/ssh.nix new file mode 100644 index 0000000..c248358 --- /dev/null +++ b/hosts/modules/ssh.nix @@ -0,0 +1,13 @@ +{ + networking.firewall.allowedTCPPorts = [ 22 ]; + + services.openssh = { + enable = true; + ports = [ 22 ]; + + settings = { + PasswordAuthentication = true; + UseDns = true; + }; + }; +} diff --git a/hosts/modules/thunar.nix b/hosts/modules/thunar.nix new file mode 100644 index 0000000..01d73e8 --- /dev/null +++ b/hosts/modules/thunar.nix @@ -0,0 +1,10 @@ +{ pkgs, ... }: +{ + programs.thunar = { + enable = true; + plugins = with pkgs.xfce; [ + thunar-archive-plugin + thunar-volman + ]; + }; +} diff --git a/hosts/modules/tlp.nix b/hosts/modules/tlp.nix new file mode 100644 index 0000000..5721d3b --- /dev/null +++ b/hosts/modules/tlp.nix @@ -0,0 +1,50 @@ +{ config, hostname, ... }: +{ + boot = { + kernelModules = [ "acpi_call" ]; + extraModulePackages = with config.boot.kernelPackages; [ acpi_call ]; + }; + + services.tlp = { + enable = true; + + settings = { + + TLP_DEFAULT_MODE = + if hostname == "laptop" + then "BAT" + else "AC"; + + TLP_PERSISTENT_DEFAULT = + if hostname == "laptop" + then 0 + else 1; + + CPU_BOOST_ON_AC = 1; + CPU_BOOST_ON_BAT = 0; + CPU_HWP_DYN_BOOST_ON_AC = 1; + CPU_HWP_DYN_BOOST_ON_BAT = 0; + CPU_SCALING_GOVERNOR_ON_AC = "performance"; + CPU_SCALING_GOVERNOR_ON_BAT = "powersave"; + CPU_ENERGY_PERF_POLICY_ON_AC = "performance"; + CPU_ENERGY_PERF_POLICY_ON_BAT = "balance_power"; + + RADEON_DPM_PERF_LEVEL_ON_AC = "auto"; + RADEON_DPM_PERF_LEVEL_ON_BAT = "low"; + RADEON_DPM_STATE_ON_AC = "performance"; + RADEON_DPM_STATE_ON_BAT = "battery"; + RADEON_POWER_PROFILE_ON_AC = "default"; + RADEON_POWER_PROFILE_ON_BAT = "low"; + + PLATFORM_PROFILE_ON_AC = "performance"; + PLATFORM_PROFILE_ON_BAT = "low-power"; + + START_CHARGE_THRESH_BAT0 = 40; + STOP_CHARGE_THRESH_BAT0 = 60; + + WOL_DISABLE = "Y"; + + USB_AUTOSUSPEND = 1; + }; + }; +} diff --git a/hosts/modules/users.nix b/hosts/modules/users.nix new file mode 100644 index 0000000..1465b88 --- /dev/null +++ b/hosts/modules/users.nix @@ -0,0 +1,26 @@ +{ inputs, username, hostname, ... }: +{ + imports = [ inputs.home-manager.nixosModules.home-manager ]; + + users.users.${username} = { + isNormalUser = true; + description = "${username}"; + extraGroups = [ "networkmanager" "wheel" ]; + }; + + home-manager = { + useGlobalPkgs = true; + useUserPackages = true; + extraSpecialArgs = { inherit inputs username hostname; }; + + users.${username} = { + imports = [ ../../home/home.nix ]; + programs.home-manager.enable = true; + home = { + stateVersion = "24.05"; + username = "${username}"; + homeDirectory = "/home/${username}"; + }; + }; + }; +} diff --git a/hosts/modules/vm.nix b/hosts/modules/vm.nix new file mode 100644 index 0000000..d9516af --- /dev/null +++ b/hosts/modules/vm.nix @@ -0,0 +1,31 @@ +{ pkgs, username, ... }: +{ + users.users.${username}.extraGroups = [ "libvirtd" ]; + boot.kernel.sysctl = { "vm.max_map_count" = 2147483642; }; + + # Install necessary packages + environment.systemPackages = with pkgs; [ + virt-manager + virt-viewer + spice + spice-gtk + spice-protocol + win-virtio + win-spice + adwaita-icon-theme + ]; + + services.spice-vdagentd.enable = true; + + virtualisation = { + spiceUSBRedirection.enable = true; + libvirtd = { + enable = true; + qemu = { + swtpm.enable = true; + ovmf.enable = true; + ovmf.packages = [ pkgs.OVMFFull.fd ]; + }; + }; + }; +} diff --git a/hosts/modules/xserver.nix b/hosts/modules/xserver.nix new file mode 100644 index 0000000..5f44ec2 --- /dev/null +++ b/hosts/modules/xserver.nix @@ -0,0 +1,9 @@ +{ pkgs, ... }: +{ + services.xserver = { + enable = true; + xkb.layout = "fr"; + xkb.variant = ""; + excludePackages = [ pkgs.xterm ]; + }; +} diff --git a/hosts/thor/bluetooth.nix b/hosts/thor/bluetooth.nix deleted file mode 100644 index ad03e6b..0000000 --- a/hosts/thor/bluetooth.nix +++ /dev/null @@ -1,22 +0,0 @@ -{ - inputs, - outputs, - lib, - config, - pkgs, - ... -}: { - hardware.bluetooth = { - enable = true; - powerOnBoot = true; - settings = { - General = { - Experimental = true; - }; - }; - }; - - services.blueman.enable = true; - - environment.systemPackages = with pkgs; [bluez]; -} diff --git a/hosts/thor/configuration.nix b/hosts/thor/configuration.nix deleted file mode 100644 index 2e6d7cd..0000000 --- a/hosts/thor/configuration.nix +++ /dev/null @@ -1,42 +0,0 @@ -# Edit this configuration file to define what should be installed on -# your system. Help is available in the configuration.nix(5) man page -# and in the NixOS manual (accessible by running ‘nixos-help’). -{ - inputs, - outputs, - lib, - config, - pkgs, - ... -}: { - # You can import other NixOS modules here - imports = [ - # If you want to use modules your own flake exports (from modules/nixos): - # outputs.nixosModules.example - - # Or modules from other flakes (such as nixos-hardware): - # inputs.hardware.nixosModules.common-cpu-amd - # inputs.hardware.nixosModules.common-ssd - - # You can also split up your configuration and import pieces of it here: - # ./users.nix - ../common - ./gui.nix - ./bluetooth.nix - ./networking.nix - - # Import your generated (nixos-generate-config) hardware configuration - ./hardware-configuration.nix - ]; - - # Hostname - networking.hostName = "thor"; - - # This value determines the NixOS release from which the default - # settings for stateful data, like file locations and database versions - # on your system were taken. It‘s perfectly fine and recommended to leave - # this value at the release version of the first install of this system. - # Before changing this value read the documentation for this option - # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). - system.stateVersion = "23.11"; # Did you read the comment? -} diff --git a/hosts/thor/gui.nix b/hosts/thor/gui.nix deleted file mode 100644 index d285084..0000000 --- a/hosts/thor/gui.nix +++ /dev/null @@ -1,42 +0,0 @@ -{ - inputs, - outputs, - lib, - config, - pkgs, - ... -}: { - # X Server settings - services.xserver = { - enable = true; - layout = "pl"; - xkbVariant = ""; - libinput.enable = true; - - displayManager = { - lightdm = { - enable = false; - }; - startx = { - enable = true; - }; - }; - - windowManager = { - dwm = { - enable = true; - package = pkgs.dwm-customized; - }; - }; - - desktopManager = { - xfce = { - enable = false; - }; - }; - }; - - services.autorandr = { - enable = true; - }; -} diff --git a/hosts/thor/hardware-configuration.nix b/hosts/thor/hardware-configuration.nix deleted file mode 100644 index f5602b8..0000000 --- a/hosts/thor/hardware-configuration.nix +++ /dev/null @@ -1,49 +0,0 @@ -# Do not modify this file! It was generated by ‘nixos-generate-config’ -# and may be overwritten by future invocations. Please make changes -# to /etc/nixos/configuration.nix instead. -{ - config, - lib, - pkgs, - modulesPath, - ... -}: { - imports = [ - (modulesPath + "/installer/scan/not-detected.nix") - ]; - - boot.initrd.availableKernelModules = ["xhci_pci" "nvme" "usb_storage" "sd_mod"]; - boot.initrd.kernelModules = []; - boot.kernelModules = ["kvm-intel"]; - boot.extraModulePackages = []; - boot.kernelParams = ["resume=/var/swapfile" "resume_offset=16230400"]; - boot.resumeDevice = "/dev/disk/by-uuid/9bf8fe18-8b72-4e43-a472-546260574b1e"; - - fileSystems."/" = { - device = "/dev/disk/by-uuid/9bf8fe18-8b72-4e43-a472-546260574b1e"; - fsType = "ext4"; - }; - - fileSystems."/boot" = { - device = "/dev/disk/by-uuid/09BA-3F6F"; - fsType = "vfat"; - }; - - swapDevices = [ - { - device = "/var/swapfile"; - size = 32 * 1024; - } - ]; - - # Enables DHCP on each ethernet and wireless interface. In case of scripted networking - # (the default) this is the recommended approach. When using systemd-networkd it's - # still possible to use this option, but it's recommended to use it in conjunction - # with explicit per-interface declarations with `networking.interfaces..useDHCP`. - networking.useDHCP = lib.mkDefault true; - # networking.interfaces.enp0s31f6.useDHCP = lib.mkDefault true; - # networking.interfaces.wlp3s0.useDHCP = lib.mkDefault true; - - nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; - hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; -} diff --git a/hosts/thor/networking.nix b/hosts/thor/networking.nix deleted file mode 100644 index e27d73a..0000000 --- a/hosts/thor/networking.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ - inputs, - outputs, - lib, - config, - pkgs, - ... -}: { - networking.networkmanager.wifi.backend = "iwd"; - - networking.wireless.iwd = { - enable = true; - settings = { - General = { - EnableNetworkConfiguration = true; - UseDefaultInterface = true; - }; - Settings = { - AutoConnect = true; - }; - }; - }; - - # system.activationScripts = { - # rfkillUnblockWlan = { - # text = '' - # rfkill unblock wlan - # ''; - # deps = []; - # }; - # }; -} diff --git a/hosts/zion/hardware-configuration.nix b/hosts/zion.nix similarity index 53% rename from hosts/zion/hardware-configuration.nix rename to hosts/zion.nix index 3583db5..4e2b2e9 100644 --- a/hosts/zion/hardware-configuration.nix +++ b/hosts/zion.nix @@ -1,35 +1,32 @@ # Do not modify this file! It was generated by ‘nixos-generate-config’ # and may be overwritten by future invocations. Please make changes # to /etc/nixos/configuration.nix instead. +{ config, lib, pkgs, modulesPath, ... }: + { - config, - lib, - pkgs, - modulesPath, - ... -}: { - imports = [ - (modulesPath + "/installer/scan/not-detected.nix") - ]; + 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/8af14034-1aec-4b6f-b8c4-de13e6987ac5"; - fsType = "ext4"; - }; + fileSystems."/" = + { device = "/dev/disk/by-uuid/9b9ed0c3-1236-499b-b9c3-51e6c4d02483"; + fsType = "ext4"; + }; - fileSystems."/boot" = { - device = "/dev/disk/by-uuid/CEC7-B082"; - fsType = "vfat"; - }; + fileSystems."/boot" = + { device = "/dev/disk/by-uuid/17B9-AFFF"; + fsType = "vfat"; + options = [ "fmask=0077" "dmask=0077" ]; + }; - swapDevices = [ - {device = "/dev/disk/by-uuid/00a782e1-71c2-4121-8608-9ed1104d6aa5";} - ]; + swapDevices = + [ { device = "/dev/disk/by-uuid/d6820248-2865-4b52-9893-174309c9e684"; } + ]; # 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/zion/configuration.nix b/hosts/zion/configuration.nix deleted file mode 100644 index 8b2760b..0000000 --- a/hosts/zion/configuration.nix +++ /dev/null @@ -1,43 +0,0 @@ -# Edit this configuration file to define what should be installed on -# your system. Help is available in the configuration.nix(5) man page -# and in the NixOS manual (accessible by running ‘nixos-help’). -{ - inputs, - outputs, - lib, - config, - pkgs, - ... -}: { - # You can import other NixOS modules here - imports = [ - # If you want to use modules your own flake exports (from modules/nixos): - # outputs.nixosModules.example - - # Or modules from other flakes (such as nixos-hardware): - # inputs.hardware.nixosModules.common-cpu-amd - # inputs.hardware.nixosModules.common-ssd - - # You can also split up your configuration and import pieces of it here: - # ./users.nix - ../common - ./gui.nix - - # nvidia drivers - ./nvidia.nix - - # Import your generated (nixos-generate-config) hardware configuration - ./hardware-configuration.nix - ]; - - # Hostname - networking.hostName = "zion"; - - # This value determines the NixOS release from which the default - # settings for stateful data, like file locations and database versions - # on your system were taken. It‘s perfectly fine and recommended to leave - # this value at the release version of the first install of this system. - # Before changing this value read the documentation for this option - # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). - system.stateVersion = "23.11"; # Did you read the comment? -} diff --git a/hosts/zion/gui.nix b/hosts/zion/gui.nix deleted file mode 100644 index bf9de5a..0000000 --- a/hosts/zion/gui.nix +++ /dev/null @@ -1,95 +0,0 @@ -{ - inputs, - outputs, - lib, - config, - pkgs, - ... -}: { - # X Server settings - services.xserver = { - enable = true; - layout = "pl"; - xkbVariant = ""; - dpi = 100; - - displayManager = { - lightdm = { - enable = false; - }; - startx = { - enable = true; - }; - setupCommands = '' - LEFT='HDMI-0' - CENTER='DP-2' - RIGHT='DP-0' - ${pkgs.xorg.xrandr}/bin/xrandr \ - --output $LEFT --mode 1920x1080 --rate 60.00 --pos 0x360 \ - --output $CENTER --primary --mode 2560x1440 --rate 74.92 --pos 1920x0 \ - --output $RIGHT --mode 2560x1440 --rate 74.92 --pos 4480x0 - ''; - }; - - windowManager = { - dwm = { - enable = true; - package = pkgs.dwm-customized; - }; - }; - - desktopManager = { - xfce = { - enable = false; - }; - }; - - xrandrHeads = [ - { - output = "HDMI-0"; - } - { - output = "DP-2"; - primary = true; - } - { - output = "DP-0"; - } - ]; - }; - - services.autorandr = { - enable = true; - defaultTarget = "zion"; - profiles = { - "zion" = { - fingerprint = { - HDMI-0 = "00ffffffffffff004c2db30a000000003416010380301b780a2621a65555a0280d5054bdef80714f81c0810081809500a9c0b3000101023a801871382d40582c4500dd0c1100001e662156aa51001e30468f3300dd0c1100001e000000fd00184b0f5117000a202020202020000000fc00543232433330300a202020202001dc020325f14d901f04130514031220212207162309070783010000e2000f67030c001000b82d011d007251d01e206e285500dd0c1100001e011d00bc52d01e20b8285540dd0c1100001e011d8018711c1620582c2500dd0c1100009e011d80d0721c1620102c2580dd0c1100009e000000000000000000000000000000000000ec"; - DP-2 = "00ffffffffffff000472c90672bb9004311e0104b53c22783f0c95ab554ca0240d5054bfef80714f8140818081c081009500b300d1c0565e00a0a0a029503020350055502100001a000000fd00304b70701e010a202020202020000000fc005647323730550a202020202020000000ff005445484545303034383532430a0146020318f14b010203040590111213141f23090707830100009774006ea0a034501720680855502100001a2a4480a0703827403020350055502100001a023a801871382d40582c450055502100001e011d8018711c1620582c250055502100009e011d007251d01e206e28550055502100001e0000000000000000000000000040"; - DP-0 = "00ffffffffffff000472c9064bbc9004311e0104b53c22783f0c95ab554ca0240d5054bfef80714f8140818081c081009500b300d1c0565e00a0a0a029503020350055502100001a000000fd00304b70701e010a202020202020000000fc005647323730550a202020202020000000ff005445484545303034383532430a016c020318f14b010203040590111213141f23090707830100009774006ea0a034501720680855502100001a2a4480a0703827403020350055502100001a023a801871382d40582c450055502100001e011d8018711c1620582c250055502100009e011d007251d01e206e28550055502100001e0000000000000000000000000040"; - }; - config = { - HDMI-0 = { - enable = true; - position = "0x360"; - mode = "1920x1080"; - rate = "60.00"; - }; - DP-2 = { - enable = true; - primary = true; - position = "1920x0"; - mode = "2560x1440"; - rate = "74.92"; - }; - DP-0 = { - enable = true; - position = "4480x0"; - mode = "2560x1440"; - rate = "74.92"; - }; - }; - }; - }; - }; -} diff --git a/hosts/zion/nvidia.nix b/hosts/zion/nvidia.nix deleted file mode 100644 index 7787203..0000000 --- a/hosts/zion/nvidia.nix +++ /dev/null @@ -1,49 +0,0 @@ -{ - inputs, - outputs, - lib, - config, - pkgs, - ... -}: { - # Enable OpenGL - hardware.opengl = { - enable = true; - driSupport = true; - driSupport32Bit = true; - }; - - # Load nvidia driver for Xorg and Wayland - services.xserver.videoDrivers = ["nvidia"]; - - hardware.nvidia = { - # Modesetting is required. - modesetting.enable = true; - - # Nvidia power management. Experimental, and can cause sleep/suspend to fail. - # Enable this if you have graphical corruption issues or application crashes after waking - # up from sleep. This fixes it by saving the entire VRAM memory to /tmp/ instead - # of just the bare essentials. - powerManagement.enable = false; - - # Fine-grained power management. Turns off GPU when not in use. - # Experimental and only works on modern Nvidia GPUs (Turing or newer). - powerManagement.finegrained = false; - - # Use the NVidia open source kernel module (not to be confused with the - # independent third-party "nouveau" open source driver). - # Support is limited to the Turing and later architectures. Full list of - # supported GPUs is at: - # https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus - # Only available from driver 515.43.04+ - # Currently alpha-quality/buggy, so false is currently the recommended setting. - open = false; - - # Enable the Nvidia settings menu, - # accessible via `nvidia-settings`. - nvidiaSettings = true; - - # Optionally, you may need to select the appropriate driver version for your specific GPU. - package = config.boot.kernelPackages.nvidiaPackages.stable; - }; -} diff --git a/modules/home-manager/default.nix b/modules/home-manager/default.nix deleted file mode 100644 index 45aae31..0000000 --- a/modules/home-manager/default.nix +++ /dev/null @@ -1,6 +0,0 @@ -# Add your reusable home-manager modules to this directory, on their own file (https://nixos.wiki/wiki/Module). -# These should be stuff you would like to share with others, not your personal configurations. -{ - # List your module files here - # my-module = import ./my-module.nix; -} diff --git a/modules/nixos/default.nix b/modules/nixos/default.nix deleted file mode 100644 index 8605069..0000000 --- a/modules/nixos/default.nix +++ /dev/null @@ -1,6 +0,0 @@ -# Add your reusable NixOS modules to this directory, on their own file (https://nixos.wiki/wiki/Module). -# These should be stuff you would like to share with others, not your personal configurations. -{ - # List your module files here - # my-module = import ./my-module.nix; -} diff --git a/overlays/default.nix b/overlays/default.nix deleted file mode 100644 index f327936..0000000 --- a/overlays/default.nix +++ /dev/null @@ -1,41 +0,0 @@ -# This file defines overlays -{inputs, ...}: { - # This one brings our custom packages from the 'pkgs' directory - additions = final: _prev: - import ../pkgs {pkgs = final;}; - - # This one contains whatever you want to overlay - # You can change versions, add patches, set compilation flags, anything really. - # https://nixos.wiki/wiki/Overlays - modifications = final: prev: { - # example = prev.example.overrideAttrs (oldAttrs: rec { - # ... - # }); - }; - - # 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; - }; - - # When applied, the unstable nixpkgs set (declared in the flake inputs) will - # be accessible through 'pkgs.unstable' - unstable-packages = final: _prev: { - unstable = import inputs.nixpkgs-unstable { - system = final.system; - config.allowUnfree = true; - }; - }; -} diff --git a/pkgs/.gitignore b/pkgs/.gitignore deleted file mode 100644 index aa82977..0000000 --- a/pkgs/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -*.tar.gz -*.tbz -result diff --git a/pkgs/default.nix b/pkgs/default.nix deleted file mode 100644 index 2b435f3..0000000 --- a/pkgs/default.nix +++ /dev/null @@ -1,7 +0,0 @@ -# Custom packages, that can be defined similarly to ones from nixpkgs -# You can build them using 'nix build .#example' -{pkgs ? import {}}: rec { - # example = pkgs.callPackage ./example { }; - dwm-customized = pkgs.callPackage ./dwm-customized {}; - lmstudio = pkgs.callPackage ./lmstudio {}; -} diff --git a/pkgs/dwm-customized/default.nix b/pkgs/dwm-customized/default.nix deleted file mode 100644 index 2e1b7d4..0000000 --- a/pkgs/dwm-customized/default.nix +++ /dev/null @@ -1,27 +0,0 @@ -{ - stdenv, - pkgs, - libX11, - libXinerama, - libXft, - ... -}: -stdenv.mkDerivation { - pname = "dwm-customized"; - version = "6.4.2"; - - src = pkgs.fetchFromGitHub { - owner = "eRgo35"; - repo = "dwm"; - rev = "d4fed3cac603ea386d57b8c96f6bc49b3c2eec64"; - sha256 = "sha256-pQMoxKbvWJLznpzcl91yPuB4ugxXW1PnslDM/877ZqA="; - }; - - # unpackPhase = ''tar -xf $src''; - - buildInputs = [libX11 libXinerama libXft]; - - buildPhase = ''make''; - - installPhase = ''make PREFIX=$out DESTDIR="" install''; -} diff --git a/pkgs/lmstudio/default.nix b/pkgs/lmstudio/default.nix deleted file mode 100644 index 83e9b59..0000000 --- a/pkgs/lmstudio/default.nix +++ /dev/null @@ -1,38 +0,0 @@ -{ - lib, - appimageTools, - fetchurl, -}: let - pname = "lmstudio"; - version = "0.2.18"; - src = fetchurl { - url = "https://releases.lmstudio.ai/linux/${version}/beta/LM_Studio-${version}.AppImage"; - hash = "sha256-cUa0fjV7xx6+2tnGVP7uLG0QQb44LhP2nYsn6Qn0al4="; - }; - - appimageContents = appimageTools.extractType2 {inherit pname version src;}; -in - appimageTools.wrapType2 { - inherit pname version src; - - extraPkgs = pkgs: (appimageTools.defaultFhsEnvArgs.multiPkgs pkgs) ++ [pkgs.ocl-icd]; - - extraInstallCommands = '' - mkdir -p $out/share/applications - mv $out/bin/lmstudio-${version} $out/bin/lmstudio - cp -r ${appimageContents}/usr/share/icons $out/share - install -m 444 -D ${appimageContents}/lm-studio.desktop -t $out/share/applications - substituteInPlace $out/share/applications/lm-studio.desktop \ - --replace-fail 'Exec=AppRun --no-sandbox %U' 'Exec=lmstudio' - ''; - - meta = { - description = "LM Studio is an easy to use desktop app for experimenting with local and open-source Large Language Models (LLMs)"; - homepage = "https://lmstudio.ai/"; - license = lib.licenses.unfree; - mainProgram = "lmstudio"; - maintainers = with lib.maintainers; [drupol]; - platforms = lib.platforms.linux; - sourceProvenance = with lib.sourceTypes; [binaryNativeCode]; - }; - } diff --git a/pkgs/lunarvim/config.lua b/pkgs/lunarvim/config.lua deleted file mode 100644 index 141d487..0000000 --- a/pkgs/lunarvim/config.lua +++ /dev/null @@ -1,120 +0,0 @@ ---[[ - THESE ARE EXAMPLE CONFIGS FEEL FREE TO CHANGE TO WHATEVER YOU WANT - `lvim` is the global options object -]] - --- vim options -vim.opt.shiftwidth = 2 -vim.opt.tabstop = 2 -vim.opt.relativenumber = true - --- general -lvim.log.level = "info" -lvim.format_on_save = { - enabled = true, - pattern = "*.lua", - timeout = 1000, -} --- to disable icons and use a minimalist setup, uncomment the following --- lvim.use_icons = false - --- keymappings -lvim.leader = "space" --- add your own keymapping -lvim.keys.normal_mode[""] = ":w" - --- lvim.keys.normal_mode[""] = ":BufferLineCycleNext" --- lvim.keys.normal_mode[""] = ":BufferLineCyclePrev" - --- -- Use which-key to add extra bindings with the leader-key prefix --- lvim.builtin.which_key.mappings["W"] = { "noautocmd w", "Save without formatting" } --- lvim.builtin.which_key.mappings["P"] = { "Telescope projects", "Projects" } - --- -- Change theme settings -lvim.colorscheme = "gruvbox-material" - -lvim.builtin.alpha.active = true -lvim.builtin.alpha.mode = "dashboard" -lvim.builtin.terminal.active = true -lvim.builtin.nvimtree.setup.view.side = "left" -lvim.builtin.nvimtree.setup.renderer.icons.show.git = false - --- Automatically install missing parsers when entering buffer -lvim.builtin.treesitter.auto_install = true - --- lvim.builtin.treesitter.ignore_install = { "haskell" } - --- -- always installed on startup, useful for parsers without a strict filetype --- lvim.builtin.treesitter.ensure_installed = { "comment", "markdown_inline", "regex" } - --- -- generic LSP settings - --- --- disable automatic installation of servers --- lvim.lsp.installer.setup.automatic_installation = false - --- ---configure a server manually. IMPORTANT: Requires `:LvimCacheReset` to take effect --- ---see the full default list `:lua =lvim.lsp.automatic_configuration.skipped_servers` --- vim.list_extend(lvim.lsp.automatic_configuration.skipped_servers, { "pyright" }) --- local opts = {} -- check the lspconfig documentation for a list of all possible options --- require("lvim.lsp.manager").setup("pyright", opts) - --- ---remove a server from the skipped list, e.g. eslint, or emmet_ls. IMPORTANT: Requires `:LvimCacheReset` to take effect --- ---`:LvimInfo` lists which server(s) are skipped for the current filetype --- lvim.lsp.automatic_configuration.skipped_servers = vim.tbl_filter(function(server) --- return server ~= "emmet_ls" --- end, lvim.lsp.automatic_configuration.skipped_servers) - --- -- you can set a custom on_attach function that will be used for all the language servers --- -- See --- lvim.lsp.on_attach_callback = function(client, bufnr) --- local function buf_set_option(...) --- vim.api.nvim_buf_set_option(bufnr, ...) --- end --- --Enable completion triggered by --- buf_set_option("omnifunc", "v:lua.vim.lsp.omnifunc") --- end - --- -- linters and formatters -local formatters = require "lvim.lsp.null-ls.formatters" -formatters.setup { - { command = "stylua" }, - { - command = "prettier", - extra_args = { "--print-width", "100" }, - filetypes = { "typescript", "typescriptreact" }, - }, - { command = "clang-format" }, -} -local linters = require "lvim.lsp.null-ls.linters" -linters.setup { - { command = "flake8", filetypes = { "python" } }, - { - command = "shellcheck", - args = { "--severity", "warning" }, - }, -} - --- -- Additional Plugins -lvim.plugins = { - -- { - -- "folke/trouble.nvim", - -- cmd = "TroubleToggle", - -- }, - -- - { - "nanotee/zoxide.vim", - lazy = false, - }, - { - "sainnhe/gruvbox-material" - } -} - --- -- Autocommands (`:help autocmd`) --- vim.api.nvim_create_autocmd("FileType", { --- pattern = "zsh", --- callback = function() --- -- let treesitter use bash highlight for zsh files as well --- require("nvim-treesitter.highlight").attach(0, "bash") --- end, --- }) diff --git a/pkgs/papyrus/default.nix b/pkgs/papyrus/default.nix deleted file mode 100644 index afc69d5..0000000 --- a/pkgs/papyrus/default.nix +++ /dev/null @@ -1,2 +0,0 @@ -{pkgs ? import {}}: -pkgs.callPackage ./papyrus.nix {} diff --git a/pkgs/papyrus/papyrus.nix b/pkgs/papyrus/papyrus.nix deleted file mode 100644 index 32466c0..0000000 --- a/pkgs/papyrus/papyrus.nix +++ /dev/null @@ -1,137 +0,0 @@ -{ - stdenv, - fetchurl, - makeDesktopItem, - makeWrapper, - autoPatchelfHook, - fontconfig, - freetype, - glib, - gtk3, - jdk17, - lib, - xorg, - zlib, - alsaLib, -}: let - # Please keep the version x.y.0.z and do not update to x.y.76.z because the - # source of the latter disappears much faster. - version = "6.6.0"; - - # rpath = stdenv.lib.makeLibraryPath [ - # gcc-unwrapped - # glibc - # ]; - # What is it for? - # + ":${stdenv.cc.cc.lib}/lib64"; - - src = ./papyrus-2023-12-6.6.0-linux64.tar.gz; - - desktopItem = makeDesktopItem { - name = "papyrus"; - exec = "papyrus"; - icon = "papyrus"; - desktopName = "Papyrus"; - comment = "SQL Integrated Development Environment"; - genericName = "SQL Integrated Development Environment"; - categories = ["Development"]; - }; -in - stdenv.mkDerivation { - pname = "papyrus"; - version = "6.6.0"; - - system = "x86_64-linux"; - - inherit src; - - nativeBuildInputs = [ - makeWrapper - autoPatchelfHook - ]; - - buildInputs = [ - fontconfig - freetype - glib - gtk3 - jdk17 - xorg.libX11 - xorg.libXrender - xorg.libXtst - zlib - alsaLib - ]; - - # Extract and copy executable in $out/bin - installPhase = '' - # Remove the bundled Java Runtime Environment as we will use our own. - rm -rf jre - - # Create the directory where DBeaver will reside within the Nix store. - mkdir -p $out/ - - # Copy all the files from the build directory to the Nix store. - cp -r . $out/Papyrus - - # The binaries will be automatically patched by autoPatchelfHook. - # This adds necessary runtime dependencies to the ELF files. - - # Create a wrapper script for launching DBeaver. - # - Sets Java path - # - Sets library path for GTK and X11 - # - Sets GSettings schema path - makeWrapper $out/Papyrus/papyrus $out/bin/Papyrus \ - --prefix PATH : ${jdk17}/bin \ - --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [glib gtk3 xorg.libXtst]} \ - --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" - - # Create a directory for the desktop entry. - mkdir -p $out/share/applications - - # Copy the generated desktop entry to the appropriate location. - cp ${desktopItem}/share/applications/* $out/share/applications - - # Create a directory for storing the DBeaver icon. - mkdir -p $out/share/pixmaps - - # Symlink the DBeaver icon to the standard location. - ln -s $out/Papyrus/icon.xpm $out/share/pixmaps/papyrus.xpm - ''; - - meta = with lib; { - homepage = "https://eclipse.dev/papyrus/index.php"; - description = "Open source Model-Based Engineering tool"; - # longDescription = '' - # Multi-platform database tool for developers, SQL programmers, database - # administrators and analysts. Supports all popular databases: MySQL, - # PostgreSQL, MariaDB, SQLite, Oracle, DB2, SQL Server, Sybase, MS Access, - # Teradata, Firebird, Derby, etc. - # ''; - license = licenses.free; - platforms = ["x86_64-linux"]; - maintainers = [maintainers.eRgo35]; - }; - } -# desktopItem = makeDesktopItem { -# name = "dbeaver-ee"; -# exec = "dbeaver"; -# icon = "dbeaver"; -# desktopName = "dbeaver-ee"; -# comment = "SQL Integrated Development Environment"; -# genericName = "SQL Integrated Development Environment"; -# categories = ["Development"]; -# }; -# -# # src = pkgs.fetchurl { -# # url = "https://download.eclipse.org/modeling/mdt/papyrus/rcp/2023-12/6.6.0/papyrus-2023-12-6.6.0-linux64.tar.gz"; -# # sha512 = "ab1f1c0192fa7791550ef284c221a5445e02a699f4a82ec9b08f2c4b1f894b387751c37a6c5109f7709afea265126210682a266adb00fb26768057c0321ba802"; -# # }; -# # unpackPhase = "tar -xf $src -C $out/bin/papyrus --strip-components=1"; -# -# installPhase = '' -# mkdir -p $out/bin -# tar -xf $src -C $out/bin --strip-components=1 -# ''; -# - diff --git a/pkgs/tikz-uml/default.nix b/pkgs/tikz-uml/default.nix deleted file mode 100644 index f12d700..0000000 --- a/pkgs/tikz-uml/default.nix +++ /dev/null @@ -1,2 +0,0 @@ -{pkgs ? import {}}: -pkgs.callPackage ./tikzuml.nix {} diff --git a/pkgs/tikz-uml/tikzuml.nix b/pkgs/tikz-uml/tikzuml.nix deleted file mode 100644 index 3a1f34e..0000000 --- a/pkgs/tikz-uml/tikzuml.nix +++ /dev/null @@ -1,52 +0,0 @@ -{ - lib, - stdenvNoCC, - fetchurl, - mkShell, -}: let - pkgs = import {}; - - version = "1.0"; - date = "2016-03-29"; - - # src = ./tikzuml-v1.0-2016-03-29.tbz; - - src = fetchurl { - url = "http://perso.ensta-paristech.fr/~kielbasi/tikzuml/var/files/src/tikzuml-v${version}-${date}.tbz"; - sha256 = "0cbc4a20c8ed40162b3b9ab1400b174293ec1ad7508e640ca879e78c45a105d0"; - }; - - tikzuml = {pkgs = [pkgs.tikzuml];}; - - texpkgs = pkgs.texlive.combine { - inherit (pkgs.texlive) scheme-full; - inherit tikzuml; - }; -in - stdenvNoCC.mkDerivation (finalAttrs: { - pname = "tikz-uml"; - inherit version; - - inherit src; - - installPhase = '' - runHook preInstall - - mkdir -p $out/share/texmf-nix/latex/tikz-uml - mkdir -p $out/share/texmf-nix/doc/tikz-uml - cp -prd doc/. $out/share/texmf-nix/doc/tikz-uml - cp -prd tikz-uml.sty $out/share/texmf-nix/latex/tikz-uml/ - - # install -Dm644 "$src/tikzuml-v${version}-${date}/tikz-uml.sty" "$out/share/texmf-nix/tex/latex/tikz-uml/tikz-uml.sty" - - runHook postInstall - ''; - - meta = with lib; { - homepage = "https://perso.ensta-paris.fr/~kielbasi/tikzuml/index.php"; - description = "A LaTeX package for drawing UML diagrams using pgf/tikz"; - license = licenses.gpl2Plus; - maintainers = with maintainers; [eRgo35]; - platforms = platforms.unix; - }; - })