diff --git a/flake.lock b/flake.lock index f984d327..a57e3c65 100644 --- a/flake.lock +++ b/flake.lock @@ -1,36 +1,13 @@ { "nodes": { - "beautysh": { - "inputs": { - "nixpkgs": [ - "nixvim", - "nixpkgs" - ], - "poetry2nix": "poetry2nix", - "utils": "utils" - }, - "locked": { - "lastModified": 1680308980, - "narHash": "sha256-aUEHV0jk2qIFP3jlsWYWhBbm+w/N9gzH3e4I5DcdB5s=", - "owner": "lovesegfault", - "repo": "beautysh", - "rev": "9845efc3ea3e86cc0d41465d720a47f521b2799c", - "type": "github" - }, - "original": { - "owner": "lovesegfault", - "repo": "beautysh", - "type": "github" - } - }, "flake-compat": { "flake": false, "locked": { - "lastModified": 1673956053, - "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", + "lastModified": 1650374568, + "narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=", "owner": "edolstra", "repo": "flake-compat", - "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", + "rev": "b4a34015c698c7793d592d66adbab377907a2be8", "type": "github" }, "original": { @@ -57,49 +34,30 @@ "type": "github" } }, - "flake-utils_2": { - "inputs": { - "systems": "systems_2" - }, - "locked": { - "lastModified": 1685518550, - "narHash": "sha256-o2d0KcvaXzTrPRIo0kOLV0/QXHhDQ5DTi+OxcjO8xqY=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "a1720a10a6cfe8234c0e93907ffe81be440f4cef", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "gitignore": { + "home-manager": { "inputs": { "nixpkgs": [ - "nixvim", - "pre-commit-hooks", "nixpkgs" ] }, "locked": { - "lastModified": 1660459072, - "narHash": "sha256-8DFJjXG8zqoONA1vXtgeKXy68KdJL5UaXR8NtVMUbx8=", - "owner": "hercules-ci", - "repo": "gitignore.nix", - "rev": "a20de23b925fd8264fd7fad6454652e142fd7f73", + "lastModified": 1688731042, + "narHash": "sha256-D1p/LLP1SpDYjutt9W+O5Ek+XGdszsjYjvL30ad++OY=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "34db2f05219bcb0e41cc85490e4c338e2405546c", "type": "github" }, "original": { - "owner": "hercules-ci", - "repo": "gitignore.nix", + "owner": "nix-community", + "repo": "home-manager", "type": "github" } }, - "home-manager": { + "home-manager_2": { "inputs": { "nixpkgs": [ + "nixneovim", "nixpkgs" ] }, @@ -125,11 +83,11 @@ "xdph": "xdph" }, "locked": { - "lastModified": 1688653598, - "narHash": "sha256-gLNu5/SEw3gg5SjuAfkwFSR473Wnc6GaFvS7kmySi7A=", + "lastModified": 1688750375, + "narHash": "sha256-BjFycq8qgBYFYC+b2/fb75Mp6fn1xo0bL4MSSsVu0hM=", "owner": "hyprwm", "repo": "Hyprland", - "rev": "e632bf176b04968ca6a22f6e5d5f1a7bf77b6fa6", + "rev": "f49af187bc0755f9b5be9376bfd52c0cf12c1e11", "type": "github" }, "original": { @@ -138,6 +96,24 @@ "type": "github" } }, + "hyprland-plugins": { + "inputs": { + "hyprland": "hyprland_2" + }, + "locked": { + "lastModified": 1687802267, + "narHash": "sha256-8kLOKO8+jfzE5cxicqZX0vaqR2Xj7KaZJN0ElJVFsww=", + "owner": "hyprwm", + "repo": "hyprland-plugins", + "rev": "16dc2927bdfb1b133fd682fa0b451155918a07d9", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprland-plugins", + "type": "github" + } + }, "hyprland-protocols": { "inputs": { "nixpkgs": [ @@ -159,6 +135,114 @@ "type": "github" } }, + "hyprland-protocols_2": { + "inputs": { + "nixpkgs": [ + "hyprland-plugins", + "hyprland", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1681065697, + "narHash": "sha256-QPzwwlGKX95tl6ZEshboZbEwwAXww6lNLdVYd6T9Mrc=", + "owner": "hyprwm", + "repo": "hyprland-protocols", + "rev": "4d29e48433270a2af06b8bc711ca1fe5109746cd", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprland-protocols", + "type": "github" + } + }, + "hyprland_2": { + "inputs": { + "hyprland-protocols": "hyprland-protocols_2", + "nixpkgs": "nixpkgs_2", + "wlroots": "wlroots_2", + "xdph": "xdph_2" + }, + "locked": { + "lastModified": 1682548480, + "narHash": "sha256-aycGKS+Vv/lQQFaYJNpK054leLKIapfUobgzt8fohFA=", + "owner": "hyprwm", + "repo": "Hyprland", + "rev": "72d2f33b34951b7f5be6cdbc302b1c6a33cbf60f", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "Hyprland", + "type": "github" + } + }, + "nix-flake-tests": { + "locked": { + "lastModified": 1677844186, + "narHash": "sha256-ErJZ/Gs1rxh561CJeWP5bohA2IcTq1rDneu1WT6CVII=", + "owner": "antifuchs", + "repo": "nix-flake-tests", + "rev": "bbd9216bd0f6495bb961a8eb8392b7ef55c67afb", + "type": "github" + }, + "original": { + "owner": "antifuchs", + "repo": "nix-flake-tests", + "type": "github" + } + }, + "nixneovim": { + "inputs": { + "flake-utils": "flake-utils", + "home-manager": "home-manager_2", + "nix-flake-tests": "nix-flake-tests", + "nixneovimplugins": "nixneovimplugins", + "nixpkgs": "nixpkgs_3", + "nmd": "nmd", + "nmt": "nmt" + }, + "locked": { + "lastModified": 1688653494, + "narHash": "sha256-BVOOhT8hx/8QoowVEAdWxP2W/UgoZMbbTsj1xBglYlo=", + "owner": "nixneovim", + "repo": "nixneovim", + "rev": "218db8db7435d893dfeb3267a3a44e0fee8ecb06", + "type": "github" + }, + "original": { + "owner": "nixneovim", + "repo": "nixneovim", + "type": "github" + } + }, + "nixneovimplugins": { + "inputs": { + "flake-compat": "flake-compat", + "flake-utils": [ + "nixneovim", + "flake-utils" + ], + "nixpkgs": [ + "nixneovim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1688371914, + "narHash": "sha256-jq43Ke9HThX0NG1qO08GgezjPkCwBX8pzvsixYjLQIs=", + "owner": "nixneovim", + "repo": "nixneovimplugins", + "rev": "f7ce3c7d9bbf50dc1d25921fa2c74e03c23bb541", + "type": "github" + }, + "original": { + "owner": "nixneovim", + "repo": "nixneovimplugins", + "type": "github" + } + }, "nixpkgs": { "locked": { "lastModified": 1688500189, @@ -175,23 +259,39 @@ "type": "github" } }, - "nixpkgs-stable": { + "nixpkgs_2": { "locked": { - "lastModified": 1685801374, - "narHash": "sha256-otaSUoFEMM+LjBI1XL/xGB5ao6IwnZOXc47qhIgJe8U=", + "lastModified": 1682453498, + "narHash": "sha256-WoWiAd7KZt5Eh6n+qojcivaVpnXKqBsVgpixpV2L9CE=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "c37ca420157f4abc31e26f436c1145f8951ff373", + "rev": "c8018361fa1d1650ee8d4b96294783cf564e8a7f", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixos-23.05", + "ref": "nixos-unstable", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs_2": { + "nixpkgs_3": { + "locked": { + "lastModified": 1688590700, + "narHash": "sha256-ZF055rIUP89cVwiLpG5xkJzx00gEuuGFF60Bs/LM3wc=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "f292b4964cb71f9dfbbd30dc9f511d6165cd109b", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_4": { "locked": { "lastModified": 1688590700, "narHash": "sha256-ZF055rIUP89cVwiLpG5xkJzx00gEuuGFF60Bs/LM3wc=", @@ -207,92 +307,35 @@ "type": "github" } }, - "nixpkgs_3": { + "nmd": { + "flake": false, "locked": { - "lastModified": 1688500189, - "narHash": "sha256-djYYiY4lzJOlXOnTHytH6BUugrxHDZjuGxTSrU4gt4M=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "78419edadf0fabbe5618643bd850b2f2198ed060", - "type": "github" + "lastModified": 1687627428, + "narHash": "sha256-7zGfXuNS5RHqhpEdz2fwrtqvF86JRo5U1hrxZSYgcm8=", + "owner": "~rycee", + "repo": "nmd", + "rev": "824a380546b5d0d0eb701ff8cd5dbafb360750ff", + "type": "sourcehut" }, "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" + "owner": "~rycee", + "repo": "nmd", + "type": "sourcehut" } }, - "nixvim": { - "inputs": { - "beautysh": "beautysh", - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs_3", - "pre-commit-hooks": "pre-commit-hooks" - }, + "nmt": { + "flake": false, "locked": { - "lastModified": 1688709814, - "narHash": "sha256-4VRfLCNiU0IXsB2OK34E/hQ+xQBFFoAYrYEurWqm/wU=", - "owner": "pta2002", - "repo": "nixvim", - "rev": "3ef05b4f13b427b271a477b7368c9efc1f3a1b73", + "lastModified": 1683843030, + "narHash": "sha256-2K9tFpypgSORyUTRAL7MFRKCXU4GykmhIDrrIydtPdI=", + "owner": "jooooscha", + "repo": "nmt", + "rev": "f30b96093eb056f1bcc60199545344b4e4a72c5a", "type": "github" }, "original": { - "owner": "pta2002", - "repo": "nixvim", - "type": "github" - } - }, - "poetry2nix": { - "inputs": { - "flake-utils": [ - "nixvim", - "beautysh", - "utils" - ], - "nixpkgs": [ - "nixvim", - "beautysh", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1658665240, - "narHash": "sha256-/wkx7D7enyBPRjIkK0w7QxLQhzEkb3UxNQnjyc3FTUI=", - "owner": "nix-community", - "repo": "poetry2nix", - "rev": "8b8edc85d24661d5a6d0d71d6a7011f3e699780f", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "poetry2nix", - "type": "github" - } - }, - "pre-commit-hooks": { - "inputs": { - "flake-compat": "flake-compat", - "flake-utils": "flake-utils_2", - "gitignore": "gitignore", - "nixpkgs": [ - "nixvim", - "nixpkgs" - ], - "nixpkgs-stable": "nixpkgs-stable" - }, - "locked": { - "lastModified": 1688473851, - "narHash": "sha256-j+ViA3lh4uQGIDqB6TjM4+wijX2M5mfNb6MVJVekpAs=", - "owner": "cachix", - "repo": "pre-commit-hooks.nix", - "rev": "f6a6863a3bcb61e846a9e4777b90ee365607a925", - "type": "github" - }, - "original": { - "owner": "cachix", - "repo": "pre-commit-hooks.nix", + "owner": "jooooscha", + "repo": "nmt", "type": "github" } }, @@ -300,8 +343,9 @@ "inputs": { "home-manager": "home-manager", "hyprland": "hyprland", - "nixpkgs": "nixpkgs_2", - "nixvim": "nixvim" + "hyprland-plugins": "hyprland-plugins", + "nixneovim": "nixneovim", + "nixpkgs": "nixpkgs_4" } }, "systems": { @@ -319,36 +363,6 @@ "type": "github" } }, - "systems_2": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - }, - "utils": { - "locked": { - "lastModified": 1678901627, - "narHash": "sha256-U02riOqrKKzwjsxc/400XnElV+UtPUQWpANPlyazjH0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "93a2b84fc4b70d9e089d029deacc3583435c2ed6", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, "wlroots": { "flake": false, "locked": { @@ -367,6 +381,24 @@ "type": "gitlab" } }, + "wlroots_2": { + "flake": false, + "locked": { + "host": "gitlab.freedesktop.org", + "lastModified": 1682436395, + "narHash": "sha256-GGEjkQO9m7YLYIXIXM76HWdhjg4Ye+oafOtyaFAYKI4=", + "owner": "wlroots", + "repo": "wlroots", + "rev": "6830bfc17fd94709e2cdd4da0af989f102a26e59", + "type": "gitlab" + }, + "original": { + "host": "gitlab.freedesktop.org", + "owner": "wlroots", + "repo": "wlroots", + "type": "gitlab" + } + }, "xdph": { "inputs": { "hyprland-protocols": [ @@ -391,6 +423,33 @@ "repo": "xdg-desktop-portal-hyprland", "type": "github" } + }, + "xdph_2": { + "inputs": { + "hyprland-protocols": [ + "hyprland-plugins", + "hyprland", + "hyprland-protocols" + ], + "nixpkgs": [ + "hyprland-plugins", + "hyprland", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1682439384, + "narHash": "sha256-zHDa8LCZs05TZHQSIZ3ucwyMPglBGHcqTBzfkLjYXTM=", + "owner": "hyprwm", + "repo": "xdg-desktop-portal-hyprland", + "rev": "c0e233955568fbea4e859336f6d3d14d51294d7c", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "xdg-desktop-portal-hyprland", + "type": "github" + } } }, "root": "root", diff --git a/flake.nix b/flake.nix index 3672afdb..5d280ce0 100644 --- a/flake.nix +++ b/flake.nix @@ -1,26 +1,27 @@ { - description = "the poz"; + description = "the poz"; - outputs = { - self, - nixpkgs, - ... - } @ inputs: let - inherit (nixpkgs) lib; # we isolate lib from nixpkgs to be able to pass it to specific flake options, alternatively use nixpkgs.lib - in { - # instead of cluttering flake.nix, import all nixosConfigurations from their own dedicated file - nixosConfigurations = import ./hosts {inherit nixpkgs inputs lib;}; - }; - - inputs = { - nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; - - hyprland.url = "github:hyprwm/Hyprland"; - - home-manager = { - url = "github:nix-community/home-manager"; - inputs.nixpkgs.follows = "nixpkgs"; + outputs = { + self, + nixpkgs, + ... + } @ inputs: let + inherit (nixpkgs) lib; # we isolate lib from nixpkgs to be able to pass it to specific flake options, alternatively use nixpkgs.lib + in { + # instead of cluttering flake.nix, import all nixosConfigurations from their own dedicated file + nixosConfigurations = import ./hosts {inherit nixpkgs inputs lib;}; + }; + inputs = { + nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + + hyprland.url = "github:hyprwm/Hyprland"; + hyprland-plugins.url = "github:hyprwm/hyprland-plugins"; + + home-manager = { + url = "github:nix-community/home-manager"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + + nixneovim.url = "github:nixneovim/nixneovim"; }; - nixvim.url = "github:pta2002/nixvim"; - }; } diff --git a/homes/default.nix b/homes/default.nix index 7ed0ab0c..e75b9f5c 100644 --- a/homes/default.nix +++ b/homes/default.nix @@ -1,14 +1,14 @@ { - inputs, - self, - ... + inputs, + self, + ... }: { - home-manager = { - useUserPackages = true; - useGlobalPkgs = true; - extraSpecialArgs = {inherit inputs self;}; # let home-manager access inputs and self - users = { - jacek = import ./jacek; # if more users to be added, create a directory for each one of them with a file called default.nix in them + home-manager = { + useUserPackages = true; + useGlobalPkgs = true; + extraSpecialArgs = {inherit inputs self;}; # let home-manager access inputs and self + users = { + jacek = import ./jacek; + }; }; - }; } diff --git a/homes/jacek/cli/default.nix b/homes/jacek/cli/default.nix new file mode 100644 index 00000000..24f4eca0 --- /dev/null +++ b/homes/jacek/cli/default.nix @@ -0,0 +1,8 @@ +_: { + imports = [ + ./git + ./starship + ./zoxide + ./zsh + ]; +} diff --git a/homes/jacek/cli/git/default.nix b/homes/jacek/cli/git/default.nix new file mode 100644 index 00000000..bd314cc5 --- /dev/null +++ b/homes/jacek/cli/git/default.nix @@ -0,0 +1,14 @@ +{ + config, + pkgs, + ... +}: +{ + config = { + programs.git = { + enable = true; + userName = "jacekpoz"; + userEmail = "jacekpoz@cock.li"; + }; + }; +} diff --git a/homes/jacek/cli/starship/default.nix b/homes/jacek/cli/starship/default.nix new file mode 100644 index 00000000..2ae021a5 --- /dev/null +++ b/homes/jacek/cli/starship/default.nix @@ -0,0 +1,24 @@ +{ + config, + ... +}: { + config = { + programs.starship = { + enable = true; + enableZshIntegration = true; + settings = { + add_newline = false; + command_timeout = 1000; + line_break = { + disabled = true; + }; + directory = { + truncation_length = 3; + truncate_to_repo = false; + truncation_symbol = "…/"; + read_only = ""; + }; + }; + }; + }; +} diff --git a/homes/jacek/cli/zoxide/default.nix b/homes/jacek/cli/zoxide/default.nix new file mode 100644 index 00000000..85e5b113 --- /dev/null +++ b/homes/jacek/cli/zoxide/default.nix @@ -0,0 +1,11 @@ +{ + config, + ... +}: { + config = { + programs.zoxide = { + enable = true; + enableZshIntegration = true; + }; + }; +} diff --git a/homes/jacek/cli/zsh/default.nix b/homes/jacek/cli/zsh/default.nix new file mode 100644 index 00000000..830af557 --- /dev/null +++ b/homes/jacek/cli/zsh/default.nix @@ -0,0 +1,54 @@ +{ + config, + pkgs, + ... +}: { + config = { + programs.zsh = { + enable = true; + shellAliases = { + cl = "clear"; + cp = "cp -ivr"; + mv = "mv -iv"; + rm = "trash -v"; + l = "ls -A --color=auto"; + ll = "exa -lha --git"; + untar = "tar -xvf"; + untargz = "tar -xzf"; + mnt = "udisksctl mount -b"; + umnt = "udisksctl unmount -b"; + v = "nvim"; + kys = "shutdown now"; + gpl = "curl https://www.gnu.org/licenses/gpl-3.0.txt -o LICENSE"; + agpl = "curl https://www.gnu.org/licenses/agpl-3.0.txt -o LICENSE"; + wget = "wget --hsts-file=\"${config.xdg.dataHome}/wget-hsts\""; + g = "git"; + }; + initExtra = '' + bindkey '^H' backward-kill-word + ''; + history = { + path = "${config.xdg.dataHome}/zsh/zsh_history"; + size = 999999999; + extended = true; + ignoreSpace = true; + }; + enableAutosuggestions = true; + enableCompletion = true; + autocd = false; + dotDir = ".config/zsh"; + plugins = [ + { + name = "fast-syntax-highlighting"; + file = "fast-syntax-highlighting.plugin.zsh"; + src = pkgs.fetchFromGitHub { + owner = "zdharma-continuum"; + repo = "fast-syntax-highlighting"; + rev = "cf318e06a9b7c9f2219d78f41b46fa6e06011fd9"; + sha256 = "sha256-RVX9ZSzjBW3LpFs2W86lKI6vtcvDWP6EPxzeTcRZua4="; + }; + } + ]; + }; + }; +} diff --git a/homes/jacek/default.nix b/homes/jacek/default.nix index f2bedada..2695c797 100644 --- a/homes/jacek/default.nix +++ b/homes/jacek/default.nix @@ -1,380 +1,97 @@ { - config, - inputs, - lib, - pkgs, - ... + config, + inputs, + lib, + pkgs, + ... }: { - imports = [ - inputs.hyprland.homeManagerModules.default - ]; + imports = [ + inputs.hyprland.homeManagerModules.default + ./gui + ./tui + ./cli + ]; - config = { - programs = { - home-manager.enable = true; # let home-manager enable itself - git = { - enable = true; - userName = "jacekpoz"; - userEmail = "jacekpoz@cock.li"; - }; - zsh = { - enable = true; - shellAliases = { - cl = "clear"; - cp = "cp -ivr"; - mv = "mv -iv"; - rm = "trash -v"; - l = "ls -A --color=auto"; - ll = "exa -lha --git"; - untar = "tar -xvf"; - untargz = "tar -xzf"; - mnt = "udisksctl mount -b"; - umnt = "udisksctl unmount -b"; - v = "nvim"; - kys = "shutdown now"; - gpl = "curl https://www.gnu.org/licenses/gpl-3.0.txt -o LICENSE"; - agpl = "curl https://www.gnu.org/licenses/agpl-3.0.txt -o LICENSE"; - wget = "wget --hsts-file=\"${config.xdg.dataHome}/wget-hsts\""; + config = { + programs = { + home-manager.enable = true; }; - initExtra = '' - bindkey '^H' backward-kill-word - ''; - history = { - path = "${config.xdg.dataHome}/zsh/zsh_history"; - size = 999999999; - extended = true; - ignoreSpace = true; + + home = { + username = "jacek"; + homeDirectory = "/home/jacek"; + packages = with pkgs; [ + git + librewolf-wayland + firefox-wayland + foot + keepassxc + exa + ripgrep + dunst + libnotify + rofi-wayland + rofi-calc + mpv + webcord-vencord + session-desktop + osu-lazer-bin + oppai-ng + signal-desktop-beta + schildichat-desktop + obs-studio + heroic + steam + ungoogled-chromium + amdgpu_top + tor-browser-bundle-bin + mullvad-browser + thunderbird + telegram-desktop + livecaptions + gimp + mullvad-vpn + helvum + ddccontrol + ddccontrol-db + bluez + blueman + btop + easyeffects + fcitx5 + fcitx5-gtk + fcitx5-skk + firejail + helix + lbry + libreoffice-fresh + minetest + airshipper + onionshare-gui + prismlauncher + qbittorrent + retroarchFull + ventoy-full + zathura + zellij + cargo + rustc + nodejs + unzip + cmake + gcc + sway + caprine-bin + libsForQt5.qt5ct + libsForQt5.kdenlive + telegram-desktop + waypipe + swaylock + trash-cli + ]; + + stateVersion = lib.mkDefault "23.11"; }; - enableAutosuggestions = true; - enableCompletion = true; - autocd = false; - dotDir = ".config/zsh"; - plugins = [ - { - name = "fast-syntax-highlighting"; - file = "fast-syntax-highlighting.plugin.zsh"; - src = pkgs.fetchFromGitHub { - owner = "zdharma-continuum"; - repo = "fast-syntax-highlighting"; - rev = "cf318e06a9b7c9f2219d78f41b46fa6e06011fd9"; - sha256 = "sha256-RVX9ZSzjBW3LpFs2W86lKI6vtcvDWP6EPxzeTcRZua4="; - }; - } - ]; - }; - zoxide = { - enable = true; - enableZshIntegration = true; - }; - starship = { - enable = true; - enableZshIntegration = true; - settings = { - add_newline = false; - command_timeout = 1000; - line_break = { - disabled = true; - }; - directory = { - truncation_length = 3; - truncate_to_repo = false; - truncation_symbol = ".../"; - read_only = ""; - }; - }; - }; - waybar = { - enable = true; - #package = pkgs.waybar.overrideAttrs (oldAttrs: { - # mesonFlags = oldAttrs.mesonFlags ++ [ "-Dexperimental=true" ]; - #}); - settings = { - bar = { - gtk-layer-shell = true; - layer = "top"; - modules-left = [ "custom/launcher" "custom/power_profile" "custom/xwayland" "tray" "wlr/workspaces" ]; - modules-center = [ "hyprland/window" ]; - modules-right = [ "custom/dnd" "backlight" "cava" "pulseaudio" "clock" "battery" "custom/power" ]; - - pulseaudio = { - tooltip = false; - scroll-step = "1"; - format = " {icon} {volume}%"; - format-muted = " 󰸈 {volume}%"; - format-icons = { - default = ["󰕿" "󰖀" "󰕾"]; - }; - on-click = "pactl set-sink-mute @DEFAULT_SINK@ toggle"; - }; - }; - }; - }; }; - - home = { - username = "jacek"; - homeDirectory = "/home/jacek"; - packages = with pkgs; [ - neofetch - git - librewolf-wayland - firefox-wayland - foot - keepassxc - neovim - exa - waybar - ]; - stateVersion = lib.mkDefault "23.11"; - }; - - wayland.windowManager.hyprland = { - enable = true; - extraConfig = '' - #laptop - #monitor=eDP-1,2560@1440@165,0x0,1 - #workspace=eDP-1,1 - #second monitor - #monitor=HDMI-A-1,2560x1440@144,2560x0,1 - #workspace=HDMI-A-1,11 - - workspace = 1, monitor: eDP-1 - workspace = 2, monitor: eDP-1 - workspace = 3, monitor: eDP-1 - workspace = 4, monitor: eDP-1 - workspace = 5, monitor: eDP-1 - workspace = 6, monitor: eDP-1 - workspace = 7, monitor: eDP-1 - workspace = 8, monitor: eDP-1 - workspace = 9, monitor: eDP-1 - workspace = 10, monitor: eDP-1 - - #wsbind = 11, HDMI-a-1 - #wsbind = 12, HDMI-a-1 - #wsbind = 13, HDMI-a-1 - #wsbind = 14, HDMI-a-1 - #wsbind = 15, HDMI-a-1 - #wsbind = 16, HDMI-a-1 - #wsbind = 17, HDMI-a-1 - #wsbind = 18, HDMI-a-1 - #wsbind = 19, HDMI-a-1 - #wsbind = 20, HDMI-a-1 - - input { - kb_layout=pl - kb_variant= - kb_model= - kb_options= - kb_rules= - - follow_mouse=1 - touchpad { - disable_while_typing=true - } - - } - - general { - sensitivity=1.0 # for mouse cursor - - gaps_in=5 - gaps_out=5 - #gaps_in=0 - #gaps_out=0 - border_size=2 - #border_size=1 - col.active_border=0xFFCC241D - col.inactive_border=0xFF928374 - col.group_border_active=0xFF98971A - col.group_border=0xFF928374 - - apply_sens_to_raw=0 # whether to apply the sensitivity to raw input (e.g. used by games where you aim using your mouse) - - #no_border_on_floating=true - } - - decoration { - #rounding=0 - rounding=10 - blur=1 - blur_size=3 - blur_passes=2 - blur_new_optimizations=1 - - drop_shadow=1 - shadow_range=15 - shadow_render_power=2 - shadow_ignore_window=1 - shadow_offset= 2 4 - shadow_scale=1 - col.shadow=0xAF282828 - } - - gestures { - workspace_swipe=1 - workspace_swipe_distance=200 - workspace_swipe_invert=1 - workspace_swipe_min_speed_to_force=20 - workspace_swipe_cancel_ratio=0.5 - } - - bezier=dupa, 0.1, 0.9, 0.1, 1.05 - - animations { - enabled=1 - animation=windows,1,4,dupa,popin - animation=windowsOut,1,7,dupa,slide - animation=border,1,15,default - animation=fade,1,10,default - animation=workspaces,1,5,dupa,slidevert - } - - dwindle { - no_gaps_when_only=1 - } - - misc { - enable_swallow=0 - swallow_regex=foot - focus_on_activate=true - vrr=1 - animate_manual_resizes=false - animate_mouse_windowdragging=false - } - - windowrulev2 = float, class:^(Tor Browser)$ - windowrulev2 = float, class:^(foot)$ - windowrulev2 = float, class:^(mpv)$ - windowrulev2 = float, class:^(imv)$ - windowrulev2 = float, class:^(Vieb)$ - windowrulev2 = float, title:^(Picture-in-Picture)$ - - windowrulev2 = float, class:^(code), title: ^(Open*) - windowrulev2 = size 70% 70%, class:^(code), title: ^(Open*) - windowrulev2 = center, class: ^(code), title: ^(Open*) - windowrulev2 = float, class:^(org.keepassxc.KeePassXC)$ - windowrulev2 = size 960 670, title:^(ROG Control Center)$ - - bind = SUPER, RETURN, exec, footclient - bind = SUPER, W, exec, librewolf - bind = SUPERSHIFT, W, exec, firefox - bind = SUPER, Q, killactive - bind = SUPER, F, fullscreen, 0 - bind = SUPER, M, fullscreen, 1 - bind = SUPER, D, exec, ~/.config/rofi/launchers/type-4/launcher.sh - bind = SUPER, SPACE, togglefloating, - bind = SUPER, C, exec, rofi -show calc -modi calc -no-show-match -no-sort - bind = SUPERSHIFT, C, centerwindow - bind = SUPER, R, bringactivetotop - binde = SUPER, H, exec, hyprsome focus l - binde = SUPER, J, exec, hyprsome focus d - binde = SUPER, K, exec, hyprsome focus u - binde = SUPER, L, exec, hyprsome focus r - binde = SUPERCTRL, J, focusmonitor, l - binde = SUPERCTRL, K, focusmonitor, r - bind = SUPER, 1, exec, hyprsome workspace 1 - bind = SUPER, 2, exec, hyprsome workspace 2 - bind = SUPER, 3, exec, hyprsome workspace 3 - bind = SUPER, 4, exec, hyprsome workspace 4 - bind = SUPER, 5, exec, hyprsome workspace 5 - bind = SUPER, 6, exec, hyprsome workspace 6 - bind = SUPER, 7, exec, hyprsome workspace 7 - bind = SUPER, 8, exec, hyprsome workspace 8 - bind = SUPER, 9, exec, hyprsome workspace 9 - bind = SUPER, 0, exec, hyprsome workspace 10 - bind = SUPERSHIFT, 1, exec, hyprsome move 1 - bind = SUPERSHIFT, 2, exec, hyprsome move 2 - bind = SUPERSHIFT, 3, exec, hyprsome move 3 - bind = SUPERSHIFT, 4, exec, hyprsome move 4 - bind = SUPERSHIFT, 5, exec, hyprsome move 5 - bind = SUPERSHIFT, 6, exec, hyprsome move 6 - bind = SUPERSHIFT, 7, exec, hyprsome move 7 - bind = SUPERSHIFT, 8, exec, hyprsome move 8 - bind = SUPERSHIFT, 9, exec, hyprsome move 9 - bindle = , XF86MonBrightnessUp, exec, ~/Scripts/notif_brightness.sh set +5% - bindle = , XF86MonBrightnessDown, exec, ~/Scripts/notif_brightness.sh set 5%- - bindl = , XF86AudioMedia, exec, playerctl play-pause - bindl = , XF86AudioPlay, exec, playerctl play-pause - bindl = , XF86AudioStop, exec, playerctl stop - bindl = , XF86AudioPrev, exec, playerctl previous - bindl = , XF86AudioNext, exec, playerctl next - bindle = , XF86AudioRaiseVolume, exec, ~/Scripts/notif_volume.sh -ui 5 - bindle = , XF86AudioLowerVolume, exec, ~/Scripts/notif_volume.sh -ud 5 - bindl = , XF86AudioMute, exec, ~/Scripts/notif_volume.sh --toggle-mute - # https://github.com/n3oney/shadower - bind = SUPER, S, exec, grimblast save area - | shadower | tee "$(xdg-user-dir PICTURES)/Screenshots/$(date +'screenshot-%Y%m%d%H%M%S.png')" | wl-copy - bind = SUPERSHIFT, S, exec, grimblast save area - | swappy -f - -o - | shadower | tee "$(xdg-user-dir PICTURES)/Screenshots/$(date +'screenshot-%Y%m%d%H%M%S.png')" | wl-copy - bind = SUPERSHIFT, R, exec, hyprctl reload - bind = SUPER, P, pin - bind = , XF86Launch1, exec, rog-control-center - binde = , XF86Launch3, exec, asusctl led-mode -n - bind = , XF86Launch4, exec, asusctl profile -n; pkill -SIGRTMIN+8 waybar - binde = , XF86KbdBrightnessUp, exec, asusctl -n - binde = , XF86KbdBrightnessDown, exec, asusctl -p - bind = , XF86TouchpadToggle, exec, - bind = SUPER, T, exec, grim -g "$(slurp)" -t ppm - | tesseract -l pol - - | wl-copy && notify-send "Copied text: " "\"$(wl-paste)\"" - bind = SUPER, SEMICOLON, exec, ~/.config/rofi/powermenu/type-2/powermenu.sh - bind = SUPER, X, exec, keepassxc - bind = SUPERSHIFT, M, exec, ~/Scripts/man.sh - bind = SUPER, E, exec, wl-paste | spd-say -e -w -i 10 - bind = SUPERCONTROL, E, exec, wl-paste | spd-say -e -w -i 10 -l pl - bind = SUPERSHIFT, E, exec, spd-say -C - bind = SUPER, G, togglegroup - binde = SUPERSHIFT, G, changegroupactive, f - bind = SUPERCONTROL, R, exec, replay-sorcery save - - bindm = SUPER, mouse:272, movewindow - bindm = SUPER, mouse:273, resizewindow - - binds { - pass_mouse_when_bound=0 - } - - exec=killall -9 waybar; waybar - - - exec-once=foot --server - exec-once=hyprctl setcursor Bibata-Modern-Classic 24 - - exec-once=wl-paste --watch cliphist store - - - exec-once=hyprctl dispatch exec "swww init" && sleep 0.5 - exec-once=swww img -o eDP-1 ~/wall0.jpg - exec-once=swww img -o HDMI-A-1 ~/wall1.jpg - - exec-once=rog-control-center - exec-once=mullvad-vpn - exec-once=gammastep-indicator - - exec-once=sleep 1 && keepassxc - - exec-once=/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 - - #exec-once=foot -e nvim ~/todo.md - - exec-once=nm-applet --indicator - - exec-once=blueman-applet - - exec-once=$HOME/.local/share/hyprload/hyprload.sh - - # no black border on grimblast screenshots - layerrule = noanim, ^(selection)$ - - layerrule = blur, ^(waybar)$ - - # temporary fix to swaylock screenshoting rofi before locking - layerrule = noanim, ^(rofi)$ - - plugin { - csgo-vulkan-fix { - res_w = 2560 - res_h = 1440 - } - } - ''; - }; - }; } diff --git a/homes/jacek/gui/default.nix b/homes/jacek/gui/default.nix new file mode 100644 index 00000000..fa541cd2 --- /dev/null +++ b/homes/jacek/gui/default.nix @@ -0,0 +1,8 @@ +_: { + imports = [ + ./foot + ./hypr + ./rofi + ./waybar + ]; +} diff --git a/homes/jacek/gui/firefox/default.nix b/homes/jacek/gui/firefox/default.nix new file mode 100644 index 00000000..e69de29b diff --git a/homes/jacek/gui/foot/default.nix b/homes/jacek/gui/foot/default.nix new file mode 100644 index 00000000..380d710e --- /dev/null +++ b/homes/jacek/gui/foot/default.nix @@ -0,0 +1,107 @@ +{ + config, + ... +}: +{ + config = { + programs.foot = { + enable = true; + server.enable = true; + settings = { + main = { + term = "xterm-256color"; + app-id = "foot"; + title = "foot"; + locked-title = "no"; + + font = "JetBrains Mono Nerd Font:size=16"; + line-height = 20; + letter-spacing = 0; + horizontal-letter-offset = 0; + vertical-letter-offset = -0.75; + box-drawings-uses-font-glyphs = "no"; + dpi-aware = "no"; + + initial-window-size-chars = "104x36"; + initial-window-mode = "windowed"; + pad = "5x5 center"; + resize-delay-ms = 100; + + notify = "notify-send -a \${app-id} -i \${app-id} \${title} \${body}"; + + bold-text-in-bright = "no"; + word-delimiters = ",│`|:\"'()[]{}<>"; + selection-target = "primary"; + }; + bell = { + urgent = "yes"; + notify = "yes"; + command = "notify-send bell"; + command-focused = "no"; + }; + scrollback = { + lines = 100000; + multiplier = 10.0; + indicator-position = "relative"; + indicator-format = "line"; + }; + url = { + launch = "xdg-open \${url}"; + label-letters = "sadfjklewcmpgh"; + osc8-underline = "always"; + protocols = "http, https, ftp, ftps, file, gemini, gopher, irc, ircs"; + uri-characters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_.,~:;/?#@!$&%*+=\"'()[]"; + }; + cursor = { + style = "block"; + blink = "no"; + }; + mouse = { + hide-when-typing = "yes"; + alternate-scroll-mode = "yes"; + }; + colors = { + alpha = 0.85; + foreground = "dee1e6"; + background = "101419"; +# Normal/regular colors (color palette 0-7) + regular0 = "c5c8cd"; # black + regular1 = "bd3c42"; # red + regular2 = "69b373"; # green + regular3 = "ceac67"; # yellow + regular4 = "4d82c8"; # blue + regular5 = "a367cb"; # magenta + regular6 = "519bc6"; # cyan + regular7 = "101419"; # white +# Bright colors (color palette 8-15) + bright0 = "989ba0"; # bright black + bright1 = "c24147"; # bright red + bright2 = "6eb878"; # bright green + bright3 = "d3b16c"; # bright yellow + bright4 = "5287cd"; # bright blue + bright5 = "a86cd0"; # bright magenta + bright6 = "56a0cb"; # bright cyan + bright7 = "1f2328"; # bright white + }; + csd = { + preferred = "server"; + }; + key-bindings = { + show-urls-launch = "Control+Shift+u"; + unicode-input = "Control+Shift+i"; + }; + mouse-bindings = { + selection-override-modifiers = "Shift"; + primary-paste = "BTN_MIDDLE"; + select-begin = "BTN_LEFT"; + select-begin-block = "Control+BTN_LEFT"; + select-extend = "BTN_RIGHT"; + select-extend-character-wise = "Control+BTN_RIGHT"; + select-word = "BTN_LEFT-2"; + select-word-whitespace = "Control+BTN_LEFT-2"; + select-row = "BTN_LEFT-3"; + }; + }; + }; + }; +} diff --git a/homes/jacek/gui/hypr/default.nix b/homes/jacek/gui/hypr/default.nix new file mode 100644 index 00000000..1c3d4408 --- /dev/null +++ b/homes/jacek/gui/hypr/default.nix @@ -0,0 +1,260 @@ +{ + config, + inputs, + pkgs, + ... +}: { + config = { + wayland.windowManager.hyprland = { + enable = true; + plugins = [ + inputs.hyprland-plugins.packages.${pkgs.system}.csgo-vulkan-fix + ]; + extraConfig = '' + #laptop + #monitor=eDP-1,2560@1440@165,0x0,1 + #workspace=eDP-1,1 + #second monitor + #monitor=HDMI-A-1,2560x1440@144,2560x0,1 + #workspace=HDMI-A-1,11 + + workspace = 1, monitor: eDP-1 + workspace = 2, monitor: eDP-1 + workspace = 3, monitor: eDP-1 + workspace = 4, monitor: eDP-1 + workspace = 5, monitor: eDP-1 + workspace = 6, monitor: eDP-1 + workspace = 7, monitor: eDP-1 + workspace = 8, monitor: eDP-1 + workspace = 9, monitor: eDP-1 + workspace = 10, monitor: eDP-1 + + #wsbind = 11, HDMI-a-1 + #wsbind = 12, HDMI-a-1 + #wsbind = 13, HDMI-a-1 + #wsbind = 14, HDMI-a-1 + #wsbind = 15, HDMI-a-1 + #wsbind = 16, HDMI-a-1 + #wsbind = 17, HDMI-a-1 + #wsbind = 18, HDMI-a-1 + #wsbind = 19, HDMI-a-1 + #wsbind = 20, HDMI-a-1 + + input { + kb_layout=pl + kb_variant= + kb_model= + kb_options= + kb_rules= + + follow_mouse=1 + touchpad { + disable_while_typing=true + } + + } + + general { + sensitivity=1.0 # for mouse cursor + + gaps_in=5 + gaps_out=5 + #gaps_in=0 + #gaps_out=0 + border_size=2 + #border_size=1 + col.active_border=0xFFCC241D + col.inactive_border=0xFF928374 + col.group_border_active=0xFF98971A + col.group_border=0xFF928374 + + apply_sens_to_raw=0 # whether to apply the sensitivity to raw input (e.g. used by games where you aim using your mouse) + + #no_border_on_floating=true + } + + decoration { + #rounding=0 + rounding=10 + blur=1 + blur_size=3 + blur_passes=2 + blur_new_optimizations=1 + + drop_shadow=1 + shadow_range=15 + shadow_render_power=2 + shadow_ignore_window=1 + shadow_offset= 2 4 + shadow_scale=1 + col.shadow=0xAF282828 + } + + gestures { + workspace_swipe=1 + workspace_swipe_distance=200 + workspace_swipe_invert=1 + workspace_swipe_min_speed_to_force=20 + workspace_swipe_cancel_ratio=0.5 + } + + bezier=dupa, 0.1, 0.9, 0.1, 1.05 + + animations { + enabled=1 + animation=windows,1,4,dupa,popin + animation=windowsOut,1,7,dupa,slide + animation=border,1,15,default + animation=fade,1,10,default + animation=workspaces,1,5,dupa,slidevert + } + + dwindle { + no_gaps_when_only=1 + } + + misc { + enable_swallow=0 + swallow_regex=foot + focus_on_activate=true + vrr=1 + animate_manual_resizes=false + animate_mouse_windowdragging=false + } + + windowrulev2 = float, class:^(Tor Browser)$ + windowrulev2 = float, class:^(foot)$ + windowrulev2 = float, class:^(mpv)$ + windowrulev2 = float, class:^(imv)$ + windowrulev2 = float, class:^(Vieb)$ + windowrulev2 = float, title:^(Picture-in-Picture)$ + + windowrulev2 = float, class:^(code), title: ^(Open*) + windowrulev2 = size 70% 70%, class:^(code), title: ^(Open*) + windowrulev2 = center, class: ^(code), title: ^(Open*) + windowrulev2 = float, class:^(org.keepassxc.KeePassXC)$ + windowrulev2 = size 960 670, title:^(ROG Control Center)$ + + bind = SUPER, RETURN, exec, footclient + bind = SUPER, W, exec, librewolf + bind = SUPERSHIFT, W, exec, firefox + bind = SUPER, Q, killactive + bind = SUPER, F, fullscreen, 0 + bind = SUPER, M, fullscreen, 1 + bind = SUPER, D, exec, rofi -show drun + bind = SUPER, SPACE, togglefloating, + bind = SUPER, C, exec, rofi -show calc -modi calc -no-show-match -no-sort + bind = SUPERSHIFT, C, centerwindow + bind = SUPER, R, bringactivetotop + binde = SUPER, H, exec, hyprsome focus l + binde = SUPER, J, exec, hyprsome focus d + binde = SUPER, K, exec, hyprsome focus u + binde = SUPER, L, exec, hyprsome focus r + binde = SUPERCTRL, J, focusmonitor, l + binde = SUPERCTRL, K, focusmonitor, r + bind = SUPER, 1, exec, hyprsome workspace 1 + bind = SUPER, 2, exec, hyprsome workspace 2 + bind = SUPER, 3, exec, hyprsome workspace 3 + bind = SUPER, 4, exec, hyprsome workspace 4 + bind = SUPER, 5, exec, hyprsome workspace 5 + bind = SUPER, 6, exec, hyprsome workspace 6 + bind = SUPER, 7, exec, hyprsome workspace 7 + bind = SUPER, 8, exec, hyprsome workspace 8 + bind = SUPER, 9, exec, hyprsome workspace 9 + bind = SUPER, 0, exec, hyprsome workspace 10 + bind = SUPERSHIFT, 1, exec, hyprsome move 1 + bind = SUPERSHIFT, 2, exec, hyprsome move 2 + bind = SUPERSHIFT, 3, exec, hyprsome move 3 + bind = SUPERSHIFT, 4, exec, hyprsome move 4 + bind = SUPERSHIFT, 5, exec, hyprsome move 5 + bind = SUPERSHIFT, 6, exec, hyprsome move 6 + bind = SUPERSHIFT, 7, exec, hyprsome move 7 + bind = SUPERSHIFT, 8, exec, hyprsome move 8 + bind = SUPERSHIFT, 9, exec, hyprsome move 9 + bindle = , XF86MonBrightnessUp, exec, ~/Scripts/notif_brightness.sh set +5% + bindle = , XF86MonBrightnessDown, exec, ~/Scripts/notif_brightness.sh set 5%- + bindl = , XF86AudioMedia, exec, playerctl play-pause + bindl = , XF86AudioPlay, exec, playerctl play-pause + bindl = , XF86AudioStop, exec, playerctl stop + bindl = , XF86AudioPrev, exec, playerctl previous + bindl = , XF86AudioNext, exec, playerctl next + bindle = , XF86AudioRaiseVolume, exec, ~/Scripts/notif_volume.sh -ui 5 + bindle = , XF86AudioLowerVolume, exec, ~/Scripts/notif_volume.sh -ud 5 + bindl = , XF86AudioMute, exec, ~/Scripts/notif_volume.sh --toggle-mute + # https://github.com/n3oney/shadower + bind = SUPER, S, exec, grimblast save area - | shadower | tee "$(xdg-user-dir PICTURES)/Screenshots/$(date +'screenshot-%Y%m%d%H%M%S.png')" | wl-copy + bind = SUPERSHIFT, S, exec, grimblast save area - | swappy -f - -o - | shadower | tee "$(xdg-user-dir PICTURES)/Screenshots/$(date +'screenshot-%Y%m%d%H%M%S.png')" | wl-copy + bind = SUPERSHIFT, R, exec, hyprctl reload + bind = SUPER, P, pin + bind = , XF86Launch1, exec, rog-control-center + binde = , XF86Launch3, exec, asusctl led-mode -n + bind = , XF86Launch4, exec, asusctl profile -n; pkill -SIGRTMIN+8 waybar + binde = , XF86KbdBrightnessUp, exec, asusctl -n + binde = , XF86KbdBrightnessDown, exec, asusctl -p + bind = , XF86TouchpadToggle, exec, + bind = SUPER, T, exec, grim -g "$(slurp)" -t ppm - | tesseract -l pol - - | wl-copy && notify-send "Copied text: " "\"$(wl-paste)\"" + bind = SUPER, SEMICOLON, exec, ~/.config/rofi/powermenu/type-2/powermenu.sh + bind = SUPER, X, exec, keepassxc + bind = SUPERSHIFT, M, exec, ~/Scripts/man.sh + bind = SUPER, E, exec, wl-paste | spd-say -e -w -i 10 + bind = SUPERCONTROL, E, exec, wl-paste | spd-say -e -w -i 10 -l pl + bind = SUPERSHIFT, E, exec, spd-say -C + bind = SUPER, G, togglegroup + binde = SUPERSHIFT, G, changegroupactive, f + bind = SUPERCONTROL, R, exec, replay-sorcery save + + bindm = SUPER, mouse:272, movewindow + bindm = SUPER, mouse:273, resizewindow + + binds { + pass_mouse_when_bound=0 + } + + #exec=pkill -9 waybar; waybar + exec=systemctl restart --user waybar.service + + + exec-once=foot --server + exec-once=hyprctl setcursor Bibata-Modern-Classic 24 + + exec-once=wl-paste --watch cliphist store + + + exec-once=hyprctl dispatch exec "swww init" && sleep 0.5 + exec-once=swww img -o eDP-1 ~/wall0.jpg + exec-once=swww img -o HDMI-A-1 ~/wall1.jpg + + exec-once=rog-control-center + exec-once=mullvad-vpn + exec-once=gammastep-indicator + + exec-once=sleep 1 && keepassxc + + exec-once=/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 + + #exec-once=foot -e nvim ~/todo.md + + exec-once=nm-applet --indicator + + exec-once=blueman-applet + + exec-once=$HOME/.local/share/hyprload/hyprload.sh + + # no black border on grimblast screenshots + layerrule = noanim, ^(selection)$ + + layerrule = blur, ^(waybar)$ + + # temporary fix to swaylock screenshoting rofi before locking + layerrule = noanim, ^(rofi)$ + + plugin { + csgo-vulkan-fix { + res_w = 2560 + res_h = 1440 + } + } + ''; + }; + }; +} diff --git a/homes/jacek/gui/rofi/default.nix b/homes/jacek/gui/rofi/default.nix new file mode 100644 index 00000000..03c77d34 --- /dev/null +++ b/homes/jacek/gui/rofi/default.nix @@ -0,0 +1,14 @@ +{ + config, + pkgs, + ... +}: { + config = { + programs.rofi = { + enable = true; + package = pkgs.rofi-wayland; + cycle = true; + terminal = "foot"; + }; + }; +} diff --git a/homes/jacek/gui/waybar/default.nix b/homes/jacek/gui/waybar/default.nix new file mode 100644 index 00000000..c20c77f2 --- /dev/null +++ b/homes/jacek/gui/waybar/default.nix @@ -0,0 +1,525 @@ +{ + config, + inputs, + pkgs, + ... +}: { + config = { + programs.waybar = { + enable = true; + package = inputs.hyprland.packages.${pkgs.system}.waybar-hyprland; + systemd.enable = true; + settings.mainBar = { + gtk-layer-shell = true; + layer = "top"; + modules-left = [ "custom/launcher" "custom/power_profile" "custom/xwayland" "tray" "hyprland/workspaces" ]; + modules-center = [ "hyprland/window" ]; + modules-right = [ "custom/dnd" "backlight" "cava" "pulseaudio" "clock" "battery" "custom/power" ]; + + pulseaudio = { + tooltip = false; + scroll-step = "1"; + format = " {icon} {volume}%"; + format-muted = " 󰸈 {volume}%"; + format-icons = { + default = ["󰕿" "󰖀" "󰕾"]; + }; + on-click = "pactl set-sink-mute @DEFAULT_SINK@ toggle"; + }; + "hyprland/workspaces" = { + sort-by-name = false; + sort-by-coordinates = true; + on-click = "activate"; + on-scroll = "~/Scripts/cycle_workspace.sh 1"; + active-only = false; + format = "{icon}"; + format-icons = { + "1" = "1"; + "2" = "2"; + "3" = "3"; + "4" = "4"; + "5" = "5"; + "6" = "6"; + "7" = "7"; + "8" = "8"; + "9" = "9"; + "10" = "10"; + "11" = "1"; + "12" = "2"; + "13" = "3"; + "14" = "4"; + "15" = "5"; + "16" = "6"; + "17" = "7"; + "18" = "8"; + "19" = "9"; + "20" = "10"; + }; + persistent_workspaces = { + "1" = [ "eDP-1" ]; + "2" = [ "eDP-1" ]; + "3" = [ "eDP-1" ]; + "4" = [ "eDP-1" ]; + "5" = [ "eDP-1" ]; + "6" = [ "eDP-1" ]; + "7" = [ "eDP-1" ]; + "8" = [ "eDP-1" ]; + "9" = [ "eDP-1" ]; + "10" = [ "eDP-1" ]; + "11" = [ "HDMI-A-1" ]; + "12" = [ "HDMI-A-1" ]; + "13" = [ "HDMI-A-1" ]; + "14" = [ "HDMI-A-1" ]; + "15" = [ "HDMI-A-1" ]; + "16" = [ "HDMI-A-1" ]; + "17" = [ "HDMI-A-1" ]; + "18" = [ "HDMI-A-1" ]; + "19" = [ "HDMI-A-1" ]; + "20" = [ "HDMI-A-1" ]; + }; + }; + network = { + tooltip = false; + format = "{ipaddr} {icon}"; + format-alt = "{icon}"; + format-icons = { + wifi = [ "󰖩" ]; + ethernet = [ "󰈀" ]; + disconnected = [ "󰖪" ]; + }; + on-click-right = "foot -e nmtui"; + }; + backlight = { + interval = 1; + align = 0; + rotate = 0; + format = "{icon} {percent}%"; + format-icons = [ "󰃚" "󰃛" "󰃜" "󰃝" "󰃞" "󰃟" "󰃠" ]; + on-scroll-up = "~/Scripts/bright.sh s +1%"; + on-scroll-down = "~/Scripts/bright.sh s 1%-"; + smooth-scrolling-threshold = 1; + }; + battery = { + interval = 1; + states = { + good = 75; + warning = 30; + critical = 20; + }; + format = "{icon}{capacity}%"; + format-charging = "󰚥{icon}{capacity}% 󱐋{power}"; + format-discharging = "{icon}{capacity}% 󱐋{power}"; + format-icons = ["󰂎" "󰁺" "󰁻" "󰁼" "󰁽" "󰁾" "󰁿" "󰂀" "󰂁" "󰂂" "󰁹"]; + format-charging-icons = ["󰢟" "󰢜" "󰂆" "󰂇" "󰂈" "󰢝" "󰂉" "󰢞" "󰂊" "󰂋" "󰂅"]; + }; + tray = { + icon-size = 18; + spacing = 10; + }; + clock = { + interval = 1; + format = "{:󱑁 %H:%M:%S 󰃰 %d/%m/%Y}"; + format-alt = "{:󱑁 %H:%M:%S}"; + tooltip-format = "{calendar}"; + calendar = { + mode = "year"; + mode-mon-col = 3; + weeks-pos = "right"; + on-scroll = 1; + on-click-right = "mode"; + format = { + months = "{}"; + days = "{}"; + weeks = "T{:%W}"; + weekdays = "{}"; + today = "{}"; + }; + actions = { + on-click-right = "mode"; + on-click-forward = "tz_up"; + on-click-backward = "tz_down"; + on-scroll-up = "shift_up"; + on-scroll-down = "shift_down"; + }; + }; + }; + cpu = { + interval = 1; + format = "󰻠 {}%"; + max-length = 10; + }; + memory = { + interval = 1; + format = "󰍛 {}%"; + max-length = 10; + }; + "custom/media" = { + interval = 30; + format = "{icon} {}"; + return-type = "json"; + max-length = 20; + format-icons = { + spotify = " "; + default = " "; + }; + escape = true; + exec = "$HOME/.config/system_scripts/mediaplayer.py 2> /dev/null"; + on-click = "playerctl play-pause"; + }; + "custom/launcher" = { + format = "󰣇 "; + on-click = "~/.config/rofi/launchers/type-2/launcher.sh"; + on-click-right = "pkill rofi"; + }; + "custom/power" = { + format = "󰐥"; + on-click = "~/.config/rofi/powermenu/type-2/powermenu.sh"; + }; + "hyprland/window" = { + format = "{}"; + separate-outputs = true; + }; + gamemode = { + format = "{glyph}"; + format-alt = "{glyph} {count}"; + glyph = "󰊴"; + hide-not-running = true; + use-icon = true; + icon-name = "input-gaming-symbolic"; + icon-spacing = 4; + icon-size = 20; + tooltip = true; + tooltip-format = "Games running: {count}"; + }; + "custom/dnd" = { + exec = "~/Scripts/waybar-dunst.sh"; + on-click = "~/Scripts/dnd.sh"; + restart-interval = 1; + tooltip = false; + }; + cava = { + framerate = 165; + autosens = 1; + sensitivity = 100; + bars = 14; + lower_cutoff_freq = 50; + higher_cutoff_freq = 10000; + method = "pipewire"; + source = "auto"; + stereo = true; + reverse = false; + bar_delimiter = 0; + monstercat = false; + waves = false; + noise_reduction = 0.77; + input_delay = 2; + format-icons = ["▁" "▂" "▃" "▄" "▅" "▆" "▇" "█" ]; + actions = { + on-click-right = "mode"; + }; + }; + "custom/power_profile" = { + exec = "asusctl profile -p | sed s:'Active profile is'::"; + interval = 30; + format = "󰈐{}"; + format-alt-click = "click-right"; + format-alt = "󰈐"; + on-click = "asusctl profile -n; pkill -SIGRTMIN+8 waybar"; + signal = 8; + }; + "custom/xwayland" = { + exec = "hyprctl clients | rg -e 'xwayland: [1]' | wc -l"; + interval = 1; + format = "X {}"; + }; + }; + style = '' + @define-color base #1e1e2e; + @define-color mantle #181825; + @define-color crust #11111b; + + @define-color text #cdd6f4; + @define-color subtext0 #a6adc8; + @define-color subtext1 #bac2de; + + @define-color surface0 #313244; + @define-color surface1 #45475a; + @define-color surface2 #585b70; + + @define-color overlay0 #6c7086; + @define-color overlay1 #7f849c; + @define-color overlay2 #9399b2; + + @define-color blue #89b4fa; + @define-color lavender #b4befe; + @define-color sapphire #74c7ec; + @define-color sky #89dceb; + @define-color teal #94e2d5; + @define-color green #a6e3a1; + @define-color yellow #f9e2af; + @define-color peach #fab387; + @define-color maroon #eba0ac; + @define-color red #f38ba8; + @define-color mauve #cba6f7; + @define-color pink #f5c2e7; + @define-color flamingo #f2cdcd; + @define-color rosewater #f5e0dc; + + * { + border-radius: 10px; + font-family: Material Design Icons; + font-size: 16px; + color: @text; + } + + window#waybar { + background-color: alpha(@base, 0.5); + border-radius: 0px; + } + + window#waybar.hidden { + opacity: 0.2; + } + + #window { + margin-top: 4px; + margin-bottom: 4px; + padding-left: 5px; + padding-right: 5px; + background: @mantle; + color: @teal; + font-family: JetBrains Mono; + } + + #workspaces { + padding-left: 5px; + } + + #workspaces button { + border-radius: 15px; + padding-top: 0px; + padding-right: 0px; + padding-bottom: 0px; + padding-left: 0px; + margin-top: 6px; + margin-right: 3px; + margin-bottom: 6px; + margin-left: 3px; + background-color: @mantle; + min-width: 24px; + } + + #workspaces button.active { + padding-top: 0px; + padding-bottom: 0px; + padding-right: 0px; + padding-left: 0px; + margin-top: 6px; + margin-right: 3px; + margin-bottom: 6px; + margin-left: 3px; + background-color: @blue; + min-width: 24px; + } + + #workspaces button:hover { + background: alpha(@mantle, 0.7); + transition-property: background, min-width; + transition-duration: 0.5s; + transition-timing-function: ease; + } + + #workspaces button.focused { + background-color: @yellow; + } + + #workspaces button.urgent { + background-color: @red; + } + + .modules-left > widget:first-child > #workspaces { + margin-left: 0; + } + + .modules-right > widget:first-child > #workspaces { + margin-right: 0; + } + + #pulseaudio { + margin-top: 3px; + margin-bottom: 3px; + margin-left: 8px; + padding-left: 10px; + padding-right: 10px; + transition: none; + background: @mantle; + color: @peach; + } + + #cava { + margin-top: 3px; + margin-bottom: 3px; + margin-left: 8px; + margin-right: 0px; + padding-left: 10px; + padding-right: 0px; + transition: none; + background: @mantle; + color: @peach; + border-top-right-radius: 0; + border-bottom-right-radius: 0; + } + + #battery { + margin-top: 3px; + margin-bottom: 3px; + margin-left: 8px; + padding-left: 10px; + padding-right: 10px; + transition: none; + background: @mantle; + color: @teal; + } + + @keyframes blink { + to { + background-color: @red; + } + } + + #battery.charging, #battery.plugged { + background-color: @mantle; + } + + #battery.critical:not(.charging) { + background-color: @mantle; + animation-name: blink; + animation-duration: 0.5s; + animation-timing-function: linear; + animation-iteration-count: infinite; + animation-direction: alternate; + } + + #backlight { + margin-top: 3px; + margin-bottom: 3px; + margin-left: 8px; + padding-left: 10px; + padding-right: 10px; + transition: none; + background: @mantle; + color: @yellow; + } + #clock { + margin-top: 3px; + margin-bottom: 3px; + margin-left: 8px; + padding-left: 10px; + padding-right: 10px; + transition-property: min-width; + transition-duration: 0.5s; + background: @mantle; + color: @pink; + } + + #custom-power_profile { + margin-top: 3px; + margin-bottom: 3px; + margin-left: 8px; + padding-left: 10px; + padding-right: 10px; + transition: none; + background: @mantle; + color: @rosewater; + } + + #tray { + margin-top: 3px; + margin-bottom: 3px; + margin-left: 8px; + padding-left: 10px; + padding-right: 10px; + transition: none; + background: @mantle; + } + + #custom-launcher { + font-size: 16px; + margin-top: 3px; + margin-bottom: 3px; + margin-left: 8px; + padding-left: 10px; + padding-right: 5px; + transition: none; + background: @mantle; + color: @blue; + } + + #custom-power { + font-size: 20px; + margin-top: 3px; + margin-bottom: 3px; + margin-left: 8px; + margin-right: 8px; + padding-left: 10px; + padding-right: 10px; + transition: none; + background: @mantle; + color: @red; + } + + #custom-wallpaper { + margin-top: 3px; + margin-bottom: 3px; + margin-left: 8px; + padding-left: 10px; + padding-right: 10px; + transition: none; + background: @mantle; + } + + #custom-updates { + margin-top: 3px; + margin-bottom: 3px; + margin-left: 8px; + padding-left: 10px; + padding-right: 10px; + transition: none; + background: @mantle; + } + + #custom-media { + margin-top: 3px; + margin-bottom: 3px; + margin-left: 8px; + padding-left: 10px; + padding-right: 10px; + transition: none; + background: @mantle; + } + + #custom-dnd { + margin-top: 3px; + margin-bottom: 3px; + margin-left: 8px; + padding-left: 10px; + padding-right: 10px; + transition: none; + background: @mantle; + color: @flamingo; + } + + #custom-xwayland { + margin-top: 3px; + margin-bottom: 3px; + margin-left: 8px; + padding-left: 10px; + padding-right: 10px; + transition: none; + background: @mantle; + color: @green; + } + ''; + }; + }; +} diff --git a/homes/jacek/services/default.nix b/homes/jacek/services/default.nix new file mode 100644 index 00000000..cec20dd6 --- /dev/null +++ b/homes/jacek/services/default.nix @@ -0,0 +1,5 @@ +_: { + imports = [ + ./dunst + ]; +} diff --git a/homes/jacek/services/dunst/default.nix b/homes/jacek/services/dunst/default.nix new file mode 100644 index 00000000..f73687d5 --- /dev/null +++ b/homes/jacek/services/dunst/default.nix @@ -0,0 +1,86 @@ +{ + config, + ... +}: { + config = { + services.dunst = { + enable = true; + settings = { + global = { + monitor = 0; + follow = "mouse"; + width = 300; + height = 300; + origin = "top-center"; + offset = "0x15"; + scale = 0; + notification_limit = 3; + idle_threshold = 120; + progress_bar = true; + progress_bar_height = 10; + progress_bar_frame_width = 0; + progress_bar_min_width = 150; + progress_bar_max_width = 300; + indicate_hidden = "yes"; + transparency = 10; + separator_height = 2; + padding = 10; + frame_width = 3; + frame_color = "#98971A"; + separator_color = "#689D6A"; + highlight = "#458588"; + sort = "yes"; + font = "JetBrains Mono 12"; + line_height = 0; + markup = "full"; + format = "%s\n%b"; + alignment = "right"; + vertical_alignment = "center"; + show_age_threshold = 60; + ellipsize = "middle"; + ignore_newline = "no"; + stack_duplicates = true; + hide_duplicate_count = false; + show_indicators = "yes"; + icon_position = "left"; + min_icon_size = 0; + max_icon_size = 32; + icon_path = "/usr/share/icons/Gruvbox-Material-Dark/16x16/status/:/usr/share/icons/Gruvbox-Material-Dark/16x16/devices/"; + sticky_history = "yes"; + history_length = 20; + dmenu = "/usr/bin/dmenu -p dunst:"; + browser = "/usr/bin/xdg-open"; + always_run_script = true; + title = "Dunst"; + class = "dunst"; + corner_radius = 10; + ignore_dbusclose = false; + force_xwayland = false; + force_xinerama = false; + mouse_left_click = "do_action, close_current"; + mouse_middle_click = "context"; + mouse_right_click = "close_all"; + }; + experimental = { + per_monitor_dpi = false; + }; + urgency_low = { + background = "#3C3836"; + foreground = "#EBDBB2"; + timeout = 5; + }; + urgency_normal = { + background = "#7C6F64"; + foreground = "#EBDBB2"; + timeout = 6; + }; + urgency_critical = { + background = "#CC241D"; + foreground = "#EBDBB2"; + frame_color = "#DB4934"; + timeout = 0; + }; + }; + }; + }; +} diff --git a/homes/jacek/tui/default.nix b/homes/jacek/tui/default.nix new file mode 100644 index 00000000..a9981060 --- /dev/null +++ b/homes/jacek/tui/default.nix @@ -0,0 +1,5 @@ +_: { + imports = [ + ./neovim + ]; +} diff --git a/homes/jacek/tui/neovim/default.nix b/homes/jacek/tui/neovim/default.nix new file mode 100644 index 00000000..4f02f2b4 --- /dev/null +++ b/homes/jacek/tui/neovim/default.nix @@ -0,0 +1,116 @@ +{ + config, + inputs, + pkgs, + ... +}: { + xdg.configFile."nvim" = { source = ./lua; recursive = true; }; + programs.neovim = { + enable = true; + viAlias = true; + vimAlias = true; + vimdiffAlias = true; + withPython3 = true; + #plugins = { + # plenary-nvim.enable = true; + # fugitive.enable = true; + # airline = { + # enable = true; + # powerline = true; + # theme = "gruvbox"; + # }; + # treesitter = { + # enable = true; + # grammars = [ + # "bash" + # "c" + # "cmake" + # "comment" + # "cpp" + # "css" + # "git_config" + # "git_rebase" + # "gitattributes" + # "gitcommit" + # "gitignore" + # "html" + # "ini" + # "java" + # "json" + # "kotlin" + # "lua" + # "markdown" + # "markdown_inline" + # "meson" + # "ninja" + # "nix" + # "python" + # "regex" + # "ron" + # "rust" + # "sql" + # "toml" + # "typescript" + # "vim" + # "vimdoc" + # "wgsl" + # "yaml" + # ]; + # }; + # coq-nvim = { + # enable = true; + # autoStart = "shut-up"; + # installArtifacts = true; + # recommendedKeymaps = true; + # }; + # gitsigns = { + # enable = true; + # signcolumn = true; + # numhl = true; + # wordDiff = true; + # currentLineBlame = true; + # }; + # lsp = { + # enable = true; + # coqSupport = true; + # servers = { + # bashls.enable = true; + # clangd.enable = true; + # cssls.enable = true; + # html.enable = true; + # kotlin-language-server.enable = true; + # ltex.enable = true; + # nil.enable = true; + # rust-analyzer.enable = true; + # }; + # }; + # telescope.enable = true; + # comment.enable = true; + #}; + #mappings = { + # + #}; + #options = { + # number = true; + # relativenumber = true; + # autoread = true; + # so = 7; + # cmdheight = 1; + # ignorecase = true; + # smartcase = true; + # showmatch = true; + # timeoutlen = 500; + # encoding = "utf8"; + # smarttab = true; + # shiftwidth = 4; + # tabstop = 4; + # expandtab = true; + # linebreak = true; + # smartindent = true; + # updatetime = 300; + # hidden = true; + # background = "dark"; + # mousemoveevent = true; + #}; + }; +} diff --git a/homes/jacek/tui/neovim/lua/after/ftplugin/PKGBUILD.lua b/homes/jacek/tui/neovim/lua/after/ftplugin/PKGBUILD.lua new file mode 100644 index 00000000..9fd7363c --- /dev/null +++ b/homes/jacek/tui/neovim/lua/after/ftplugin/PKGBUILD.lua @@ -0,0 +1,2 @@ +vim.opt.shiftwidth=2 +vim.opt.tabstop=2 diff --git a/homes/jacek/tui/neovim/lua/after/ftplugin/html.lua b/homes/jacek/tui/neovim/lua/after/ftplugin/html.lua new file mode 100644 index 00000000..9fd7363c --- /dev/null +++ b/homes/jacek/tui/neovim/lua/after/ftplugin/html.lua @@ -0,0 +1,2 @@ +vim.opt.shiftwidth=2 +vim.opt.tabstop=2 diff --git a/homes/jacek/tui/neovim/lua/after/ftplugin/makefile.lua b/homes/jacek/tui/neovim/lua/after/ftplugin/makefile.lua new file mode 100644 index 00000000..465fa626 --- /dev/null +++ b/homes/jacek/tui/neovim/lua/after/ftplugin/makefile.lua @@ -0,0 +1,2 @@ +vim.opt.shiftwidth=8 +vim.opt.tabstop=8 diff --git a/homes/jacek/tui/neovim/lua/after/ftplugin/nix.lua b/homes/jacek/tui/neovim/lua/after/ftplugin/nix.lua new file mode 100644 index 00000000..75f2a880 --- /dev/null +++ b/homes/jacek/tui/neovim/lua/after/ftplugin/nix.lua @@ -0,0 +1,2 @@ +vim.opt.shiftwidth=4 +vim.opt.tabstop=4 diff --git a/homes/jacek/tui/neovim/lua/after/ftplugin/svelte.lua b/homes/jacek/tui/neovim/lua/after/ftplugin/svelte.lua new file mode 100644 index 00000000..9fd7363c --- /dev/null +++ b/homes/jacek/tui/neovim/lua/after/ftplugin/svelte.lua @@ -0,0 +1,2 @@ +vim.opt.shiftwidth=2 +vim.opt.tabstop=2 diff --git a/homes/jacek/tui/neovim/lua/init.lua b/homes/jacek/tui/neovim/lua/init.lua new file mode 100644 index 00000000..b74b4ec0 --- /dev/null +++ b/homes/jacek/tui/neovim/lua/init.lua @@ -0,0 +1,16 @@ +require("global") +require("keymap") +require("plugins") +require("opts") +require("diagnostic") +require("lsp") +require("dap_conf") + +-- shit I haven't been able to port yet +vim.cmd [[ + if has('termguicolors') + set termguicolors + endif + filetype plugin indent on + autocmd VimEnter * hi Normal guibg=none +]] diff --git a/homes/jacek/tui/neovim/lua/lua/.luarc.json b/homes/jacek/tui/neovim/lua/lua/.luarc.json new file mode 100644 index 00000000..23b9ee27 --- /dev/null +++ b/homes/jacek/tui/neovim/lua/lua/.luarc.json @@ -0,0 +1,3 @@ +{ + "workspace.checkThirdParty": false +} \ No newline at end of file diff --git a/homes/jacek/tui/neovim/lua/lua/dap_conf.lua b/homes/jacek/tui/neovim/lua/lua/dap_conf.lua new file mode 100644 index 00000000..0d7d022e --- /dev/null +++ b/homes/jacek/tui/neovim/lua/lua/dap_conf.lua @@ -0,0 +1 @@ +local dap = require("dap") diff --git a/homes/jacek/tui/neovim/lua/lua/diagnostic.lua b/homes/jacek/tui/neovim/lua/lua/diagnostic.lua new file mode 100644 index 00000000..c193cc07 --- /dev/null +++ b/homes/jacek/tui/neovim/lua/lua/diagnostic.lua @@ -0,0 +1,12 @@ +vim.diagnostic.config({ + -- text after the erroneous line + virtual_text = true, + signs = false, + --float = { border = "single" }, +}) + +local opts = { noremap = true, silent = true } +vim.keymap.set('n', 'e', vim.diagnostic.open_float, opts) +vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, opts) +vim.keymap.set('n', ']d', vim.diagnostic.goto_next, opts) +vim.keymap.set('n', 'q', vim.diagnostic.setloclist, opts) diff --git a/homes/jacek/tui/neovim/lua/lua/global.lua b/homes/jacek/tui/neovim/lua/lua/global.lua new file mode 100644 index 00000000..f18fad79 --- /dev/null +++ b/homes/jacek/tui/neovim/lua/lua/global.lua @@ -0,0 +1,15 @@ +-- no triangles without it +vim.g.airline_powerline_fonts = true +vim.g.airline_theme="catppuccin" + +-- TODO idk if these actually do anything +vim.g.mapleader = ' ' +vim.g.maplocalleader = ' ' + +if vim.fn.exists("g:neovide") then + vim.g.neovide_refresh_rate = 165 + vim.g.neovide_transparency = 0.85 + vim.g.neovide_cursor_vfx_mode = "railgun" +end + +vim.g.lichess_api_token = os.getenv("LICHESS_API_TOKEN") diff --git a/homes/jacek/tui/neovim/lua/lua/keymap.lua b/homes/jacek/tui/neovim/lua/lua/keymap.lua new file mode 100644 index 00000000..55fe4f81 --- /dev/null +++ b/homes/jacek/tui/neovim/lua/lua/keymap.lua @@ -0,0 +1,7 @@ +--vim.keymap.set("n", "n", "h") +--vim.keymap.set("n", "e", "j") +--vim.keymap.set("n", "i", "k") +--vim.keymap.set("n", "o", "l") +--vim.keymap.set("n", "K", "N") +--vim.keymap.set("n", "k", "n") +--vim.keymap.set("n", "z", "b") diff --git a/homes/jacek/tui/neovim/lua/lua/lsp.lua b/homes/jacek/tui/neovim/lua/lua/lsp.lua new file mode 100644 index 00000000..0950e30b --- /dev/null +++ b/homes/jacek/tui/neovim/lua/lua/lsp.lua @@ -0,0 +1,97 @@ +require("mason").setup() +require("mason-lspconfig").setup { + ensure_installed = { + "rust_analyzer", + "wgsl_analyzer", + "tsserver", + "svelte", + "lua_ls", + "clangd", + "kotlin_language_server", + "jedi_language_server", + "jdtls", + }, +} + +local servers = { + "tsserver", + "svelte", + "lua_ls", + "clangd", + "kotlin_language_server", + "html", + "cssls", + "bashls", + "cmake", + "jedi_language_server", + "jdtls", + "wgsl_analyzer", + "nil_ls", +} + +-- shit wouldn't stop whining about an unused local variable +---@diagnostic disable-next-line: unused-local +local on_attach = function(client, bufnr) + vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc') + + local bufopts = { noremap = true, silent = true, buffer = bufnr } + vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, bufopts) + vim.keymap.set('n', 'gd', vim.lsp.buf.definition, bufopts) + vim.keymap.set('n', 'K', vim.lsp.buf.hover, bufopts) + vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, bufopts) + vim.keymap.set('n', '', vim.lsp.buf.signature_help, bufopts) + vim.keymap.set('n', 'wa', vim.lsp.buf.add_workspace_folder, bufopts) + vim.keymap.set('n', 'wr', vim.lsp.buf.remove_workspace_folder, bufopts) + vim.keymap.set('n', 'wl', function() + print(vim.inspect(vim.lsp.buf.list_workspace_folders())) + end, bufopts) + vim.keymap.set('n', 'D', vim.lsp.buf.type_definition, bufopts) + vim.keymap.set('n', 'r', vim.lsp.buf.rename, bufopts) + vim.keymap.set('n', 'a', vim.lsp.buf.code_action, bufopts) + vim.keymap.set('n', 'gr', vim.lsp.buf.references, bufopts) + vim.keymap.set('n', '', function() vim.lsp.buf.format { async = true } end, bufopts) +end + +local lsp_flags = { +} + +for _, server in ipairs(servers) do + require("lspconfig")[server].setup(require("coq").lsp_ensure_capabilities({ + on_attach = on_attach, + flags = lsp_flags, + })) +end + +require("flutter-tools").setup { + lsp = require("coq").lsp_ensure_capabilities({ + on_attach = on_attach, + flags = lsp_flags, + virtual_text = true, + }), +} + +local rt = require("rust-tools") +rt.setup({ + tools = { + inlay_hints = { + auto = true, + only_current_line = true, + show_parameter_hints = true, + } + }, + server = { + on_attach = function(client, bufnr) + on_attach(client, bufnr) + -- Hover actions + vim.keymap.set("n", "", rt.hover_actions.hover_actions, { buffer = bufnr }) + -- Code action groups + vim.keymap.set("n", "a", rt.code_action_group.code_action_group, { buffer = bufnr }) + end, + -- https://github.com/simrat39/rust-tools.nvim/issues/300 + settings = { + ["rust-analyzer"] = { + inlayHints = { locationLinks = false }, + }, + }, + }, +}) diff --git a/homes/jacek/tui/neovim/lua/lua/opts.lua b/homes/jacek/tui/neovim/lua/lua/opts.lua new file mode 100644 index 00000000..d5270f96 --- /dev/null +++ b/homes/jacek/tui/neovim/lua/lua/opts.lua @@ -0,0 +1,39 @@ +-- line numbers on the left +vim.opt.number = true +-- show number relative to current line +vim.opt.relativenumber = true +-- re-reads a file when it's changed +vim.opt.autoread = true +-- it scrolls the file when the cursor is x amount of lines from the edge +vim.opt.so = 7 +-- show cmd even if not used +vim.opt.cmdheight = 1 +-- ignores the case when searching +vim.opt.ignorecase = true +-- IDK do :help options and read the part about this I don't understand +vim.opt.smartcase = true +-- when you type a closing bracket it briefly jump to the opening one +vim.opt.showmatch = true +-- time in millis how long it wauts for another key in a sequence +vim.opt.timeoutlen = 500 +-- yeah +vim.opt.encoding = "utf8" +-- IDK read the manual +vim.opt.smarttab = true +-- insert 4 spaces instead of tab +vim.opt.shiftwidth = 4 +vim.opt.tabstop = 4 +vim.opt.expandtab = true +-- breaks line when too long +vim.opt.linebreak = true +-- indents but smart ! +vim.opt.smartindent = true +-- saves the swap file to disk after this many millis +vim.opt.updatetime = 300 +-- to keep the terminals from toggleterm on when hidden +vim.opt.hidden = true +vim.opt.background = "dark" +-- for bufferline hover shit +vim.opt.mousemoveevent = true +-- true color +--vim.opt.termguicolors = true diff --git a/homes/jacek/tui/neovim/lua/lua/plugins.lua b/homes/jacek/tui/neovim/lua/lua/plugins.lua new file mode 100644 index 00000000..1b084cf4 --- /dev/null +++ b/homes/jacek/tui/neovim/lua/lua/plugins.lua @@ -0,0 +1,186 @@ +require "paq" { + -- the paq: + "savq/paq-nvim", + -- tj lib + "nvim-lua/plenary.nvim", + -- TODO do I need this + "cdelledonne/vim-cmake", + -- TODO do I need this + "tpope/vim-fugitive", + -- the line on the bottom + "vim-airline/vim-airline", + "vim-airline/vim-airline-themes", + -- switch between .c and .h + "nacitar/a.vim", + -- sitting on the tree + "nvim-treesitter/nvim-treesitter", + -- fast as FUCK completion + "ms-jpq/coq_nvim", + "ms-jpq/coq.artifacts", + -- file explorer + { "ms-jpq/chadtree", run = "python3 -m chadtree deps" }, + -- better term + "akinsho/toggleterm.nvim", + -- hide secrets and shit + "laytan/cloak.nvim", + -- some cool icons for other plugins + "nvim-tree/nvim-web-devicons", + -- shows git changes at the start of the line + "lewis6991/gitsigns.nvim", + -- lsp manager + "williamboman/mason.nvim", + "williamboman/mason-lspconfig.nvim", + -- the one and only + "neovim/nvim-lspconfig", + -- flutter takes up too much space man + "akinsho/flutter-tools.nvim", + -- <3 + "simrat39/rust-tools.nvim", + -- s to jump to what you see on the screen + "ggandor/leap.nvim", + -- color picker + "uga-rosa/ccc.nvim", + -- some fun shit + "Eandrju/cellular-automaton.nvim", + -- progress thingy for lsp loading + { "j-hui/fidget.nvim", branch = "legacy" }, + -- better lsp for nvim config + "folke/neodev.nvim", + -- zen like me kernel + "folke/zen-mode.nvim", + -- dims inactive code + "folke/twilight.nvim", + -- the scope: + "nvim-telescope/telescope.nvim", + -- the comment: + "numToStr/Comment.nvim", + -- needed for cheat sheet + "RishabhRD/popfix", + -- cheat sheet + "RishabhRD/nvim-cheat.sh", + -- rust :3 + "Saecki/crates.nvim", + -- chess :3 + "luk400/vim-lichess", + -- + "mfussenegger/nvim-dap", + "lrangell/theme-cycler.nvim", + { "catppuccin/nvim", as="catppuccin" }, +} + +vim.filetype.add({extension = {wgsl = "wgsl"}}) + +require("nvim-treesitter.configs").setup { + highlight = { enable = true, }, + incremental_selection = { + enable = true, + keymaps = { + init_selection = "gnn", + node_incremental = "gzn", + node_decremental = "gzm", + scope_incremental = "gzb", + }, + }, +} + +vim.wo.foldmethod = "expr" +vim.wo.foldexpr = "nvim_treesitter#foldexpr()" +vim.o.foldlevelstart = 99 + +require("toggleterm").setup { + size = 10, + open_mapping = [[]], + shade_terminals = true, + shading_factor = 2, + auto_scroll = true, + direction = "float", +} + +-- cock +vim.g.coq_settings = { + auto_start = "shut-up", + display = { + pum = { + fast_close = true, + }, + }, + completion = { + always = false, + }, +} + +vim.keymap.set("n", "v", vim.cmd.CHADopen) + +require("neodev").setup() + +require("cloak").setup({ + cloak_character = "•", +}) + +vim.keymap.set("n", "", require("cloak").toggle) + +require("gitsigns").setup { + signcolumn = true, + numhl = true, + word_diff = true, + current_line_blame = true, +} + +require("leap").add_default_mappings() + +require("fidget").setup() + +require("ccc").setup({ + highlighter = { + auto_enable = true + } +}) + +local opts = { noremap = true, silent = true } + +local builtin = require("telescope.builtin") +vim.keymap.set("n", "ff", builtin.find_files, opts) +vim.keymap.set("n", "fg", builtin.live_grep, opts) +vim.keymap.set("n", "fb", builtin.buffers, opts) +vim.keymap.set("n", "fh", builtin.help_tags, opts) + +require("Comment").setup() + +local chadtree_settings = { + keymap = { + tertiary = { "t", "" } + } +} +vim.api.nvim_set_var("chadtree_settings", chadtree_settings) + +local crates = require("crates") + +crates.setup { + src = { + coq = { + enabled = true, + name = "crates.nvim", + } + } +} + +vim.keymap.set('n', 'ct', crates.toggle, opts) +vim.keymap.set('n', 'cr', crates.reload, opts) + +vim.keymap.set('n', 'cv', crates.show_versions_popup, opts) +vim.keymap.set('n', 'cf', crates.show_features_popup, opts) +vim.keymap.set('n', 'cd', crates.show_dependencies_popup, opts) + +vim.keymap.set('n', 'cu', crates.update_crate, opts) +vim.keymap.set('v', 'cu', crates.update_crates, opts) +vim.keymap.set('n', 'ca', crates.update_all_crates, opts) +vim.keymap.set('n', 'cU', crates.upgrade_crate, opts) +vim.keymap.set('v', 'cU', crates.upgrade_crates, opts) +vim.keymap.set('n', 'cA', crates.upgrade_all_crates, opts) + +vim.keymap.set('n', 'cH', crates.open_homepage, opts) +vim.keymap.set('n', 'cR', crates.open_repository, opts) +vim.keymap.set('n', 'cD', crates.open_documentation, opts) +vim.keymap.set('n', 'cC', crates.open_crates_io, opts) + +vim.keymap.set("n", "t", require("themeCycler").open_lazy) diff --git a/hosts/chmura/configuration.nix b/hosts/chmura/configuration.nix new file mode 100644 index 00000000..0839aad0 --- /dev/null +++ b/hosts/chmura/configuration.nix @@ -0,0 +1,49 @@ +{ + config, + pkgs, + inputs, + ... +}: { + # fuck broadcom + nixpkgs.config.allowUnfree = true; + + # Use the systemd-boot EFI boot loader. + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = true; + + networking.hostName = "chmura"; + + time.timeZone = "Europe/Warsaw"; + + nix.settings = { + experimental-features = [ + "flakes" + "nix-command" + ]; + }; + + programs.zsh.enable = true; + + users.users.jacek = { + isNormalUser = true; + extraGroups = ["wheel" "networkmanager"]; + shell = pkgs.zsh; + }; + + environment = { + shells = with pkgs; [zsh]; + pathsToLink = [ "/share/zsh" ]; + sessionVariables = rec { + EDITOR = "nvim"; + }; + }; + + services.openssh = { + enable = true; + passwordAuthentication = true; + }; + + networking.firewall.allowedTCPPorts = [ 80 443 22 ]; + + system.stateVersion = "23.11"; +} diff --git a/hosts/chmura/default.nix b/hosts/chmura/default.nix new file mode 100644 index 00000000..7ab916bd --- /dev/null +++ b/hosts/chmura/default.nix @@ -0,0 +1,6 @@ +_: { + imports = [ + ./configuration.nix + ./hardware-configuration.nix + ]; +} diff --git a/hosts/chmura/hardware-configuration.nix b/hosts/chmura/hardware-configuration.nix new file mode 100644 index 00000000..97f8ad0f --- /dev/null +++ b/hosts/chmura/hardware-configuration.nix @@ -0,0 +1,46 @@ +# 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" "ahci" "ohci_pci" "ehci_pci" "usb_storage" "usbhid" "sd_mod" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-amd" "wl" ]; + boot.extraModulePackages = [ config.boot.kernelPackages.broadcom_sta ]; + + fileSystems."/" = + { device = "/dev/disk/by-uuid/ba9b94f8-7c2e-43e4-ae8b-d48836819321"; + fsType = "btrfs"; + }; + + fileSystems."/boot" = + { device = "/dev/disk/by-uuid/43B9-A358"; + fsType = "vfat"; + }; + + swapDevices = + [ { device = "/dev/disk/by-uuid/8553092f-8960-4326-97d8-43af396eef82"; } + ]; + + # 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.enp3s0f0.useDHCP = lib.mkDefault true; + # networking.interfaces.enp3s0f1.useDHCP = lib.mkDefault true; + # networking.interfaces.enp4s0f0.useDHCP = lib.mkDefault true; + # networking.interfaces.enp4s0f1.useDHCP = lib.mkDefault true; + # networking.interfaces.enp6s0.useDHCP = lib.mkDefault true; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + powerManagement.cpuFreqGovernor = lib.mkDefault "ondemand"; + hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; + # high-resolution display + hardware.video.hidpi.enable = lib.mkDefault true; +} diff --git a/hosts/default.nix b/hosts/default.nix index f03825d2..557bf838 100644 --- a/hosts/default.nix +++ b/hosts/default.nix @@ -1,26 +1,24 @@ { - lib, - inputs, - ... + lib, + inputs, + ... }: let - self = inputs.self; + self = inputs.self; - home-manager = inputs.home-manager.nixosModules.home-manager; - home-configs = import ../homes; + home-manager = inputs.home-manager.nixosModules.home-manager; + home-configs = import ../homes; in { - niksos = lib.nixosSystem { - system = "x86_64-linux"; - specialArgs = {inherit lib inputs self;}; - modules = - [ - {networking.hostName = "niksos";} - ./niksos - ] - ++ [ - # this concatenates to lists - # this list includes an alias for the home-manager module, and another for the global home-manager configuration directory - home-manager - home-configs - ]; - }; + niksos = lib.nixosSystem { + system = "x86_64-linux"; + specialArgs = {inherit lib inputs self;}; + modules = [ + {networking.hostName = "niksos";} + ./niksos + ] + ++ [ + # this list includes an alias for the home-manager module, and another for the global home-manager configuration directory + home-manager + home-configs + ]; + }; } diff --git a/hosts/niksos/configuration.nix b/hosts/niksos/configuration.nix index dc000bd3..8cfdfe0e 100644 --- a/hosts/niksos/configuration.nix +++ b/hosts/niksos/configuration.nix @@ -1,117 +1,156 @@ { - config, - pkgs, - inputs, - ... -}: { - nixpkgs.config.allowUnfree = true; + config, + pkgs, + inputs, + ... +}: +let + swayConfig = pkgs.writeText "greetd-sway-config" '' + exec "${pkgs.greetd.gtkgreet}/bin/gtkgreet -l; swaymsg exit" + bindsym Mod4+shift+e exec swaynag \ + -t warning \ + -m 'What do you want to do?' \ + -b 'Poweroff' 'systemctl poweroff' \ + -b 'Reboot' 'systemctl reboot' + ''; +in +{ + nixpkgs.config.allowUnfree = true; - # Use the GRUB 2 boot loader. - boot.loader.grub.enable = true; - boot.loader.grub.device = "/dev/sda"; + # Use the GRUB 2 boot loader. + boot.loader.grub.enable = true; + boot.loader.grub.device = "/dev/sda"; - networking.networkmanager.enable = true; + networking.networkmanager.enable = true; - time.timeZone = "Europe/Warsaw"; + time.timeZone = "Europe/Warsaw"; - # Enable the X11 windowing system. - # services.xserver.enable = true; + # Enable the X11 windowing system. + # services.xserver.enable = true; - nix.settings = { - experimental-features = [ - "flakes" - "nix-command" + nix.settings = { + experimental-features = [ + "flakes" + "nix-command" + ]; + substituters = [ + "https://hyprland.cachix.org" + "https://neovim-nightly.cachix.org/" + ]; + trusted-public-keys = [ + "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" + "neovim-nightly.cachix.org-1:feIoInHRevVEplgdZvQDjhp11kYASYCE2NGY9hNrwxY=" + ]; + }; + + # Enable sound. + # sound.enable = true; + # hardware.pulseaudio.enable = true; + + # Enable touchpad support (enabled default in most desktopManager). + # services.xserver.libinput.enable = true; + + programs.zsh.enable = true; + + programs.hyprland = { + enable = true; + xwayland = { + enable = true; + hidpi = true; + }; + nvidiaPatches = false; + }; + + fonts.fonts = with pkgs; [ + material-design-icons + (nerdfonts.override { fonts = [ "JetBrainsMono" ]; }) ]; - substituters = ["https://hyprland.cachix.org"]; - trusted-public-keys = ["hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="]; - }; - # Enable sound. - # sound.enable = true; - # hardware.pulseaudio.enable = true; - - # Enable touchpad support (enabled default in most desktopManager). - # services.xserver.libinput.enable = true; - - programs.zsh.enable = true; - - programs.hyprland = { - enable = true; - xwayland = { - enable = true; - hidpi = true; + users.users.jacek = { + isNormalUser = true; + extraGroups = ["wheel" "networkmanager"]; + shell = pkgs.zsh; }; - nvidiaPatches = false; - }; - users.users.jacek = { - isNormalUser = true; - extraGroups = ["wheel" "networkmanager"]; - shell = pkgs.zsh; - }; + environment = { + shells = with pkgs; [zsh]; + pathsToLink = [ "/share/zsh" ]; + enableAllTerminfo = true; + sessionVariables = { + TERM = "foot"; + EDITOR = "nvim"; + SSH_AUTH_SOCK = "\$XDG_RUNTIME_DIR/ssh-agent.socket"; - environment = { - shells = with pkgs; [zsh]; - pathsToLink = [ "/share/zsh" ]; - sessionVariables = rec { - TERM = "foot"; - EDITOR = "nvim"; - SSH_AUTH_SOCK = "\$XDG_RUNTIME_DIR/ssh-agent.socket"; + GTK_IM_MODULE = "fcitx"; + QT_IM_MODULE = "fcitx"; + XMODIFIERS = "@im=fcitx"; - GTK_IM_MODULE = "fcitx"; - QT_IM_MODULE = "fcitx"; - XMODIFIERS = "@im=fcitx"; + LIBSEAT_BACKEND = "logind"; + QT_STYLE_OVERRIDE = "kvantum"; + QT_QPA_PLATFORMTHEME = "qt5ct"; - LIBSEAT_BACKEND = "logind"; - QT_STYLE_OVERRIDE = "kvantum"; - QT_QPA_PLATFORMTHEME = "qt5ct"; + GOPATH = "\$HOME/.local/share/go"; - #GOPATH = "${config.xdg.dataHome}/go"; + XDG_CURRENT_DESKTOP = "Hyprland"; + XDG_SESSION_TYPE = "wayland"; + XDG_SESSION_DESKTOP = "Hyprland"; - XDG_CURRENT_DESKTOP = "Hyprland"; - XDG_SESSION_TYPE = "wayland"; - XDG_SESSION_DESKTOP = "Hyprland"; + QT_QPA_PLATFORM = "wayland"; + MOZ_ENABLE_WAYLAND = "1"; + MOZ_DRM_DEVICE = "/dev/dri/card0"; - QT_QPA_PLATFORM = "wayland"; - MOZ_ENABLE_WAYLAND = "1"; - MOZ_DRM_DEVICE = "/dev/dri/card0"; + SDL_VIDEODRIVER = "wayland"; - SDL_VIDEODRIVER = "wayland"; + _JAVA_AWT_WM_NONEREPARENTING = "1"; + + CLUTTER_BACKEND = "wayland"; + + GDK_BACKEND = "wayland"; + + XCURSOR_THEME = "Bibata-Modern-Classic"; + XCURSOR_SIZE = "24"; - _JAVA_AWT_WM_NONEREPARENTING = "1"; - - CLUTTER_BACKEND = "wayland"; - - GDK_BACKEND = "wayland"; - - XCURSOR_THEME = "Bibata-Modern-Classic"; - XCURSOR_SIZE = "24"; - - SYSTEMD_TIMEDATED_NTP_SERVICES = "chronyd.service:systemd-timesyncd.service"; + SYSTEMD_TIMEDATED_NTP_SERVICES = "chronyd.service:systemd-timesyncd.service"; + }; + etc."greetd/environments".text = '' + Hyprland + sway + zsh + shutdown now + ''; }; - }; - services.pipewire = { - enable = true; - alsa.enable = true; - alsa.support32Bit = true; - pulse.enable = true; - }; + services = { + pipewire = { + enable = true; + alsa.enable = true; + alsa.support32Bit = true; + pulse.enable = true; + }; + openssh = { + enable = true; + settings.PasswordAuthentication = true; + }; + greetd = { + enable = true; + settings = { + default_session = { + command = "${pkgs.sway}/bin/sway --config ${swayConfig}"; + }; + }; + }; + }; - services.openssh = { - enable = true; - settings.PasswordAuthentication = true; - }; - #environment.systemPackages = with pkgs; [ - # neovim - #]; + #environment.systemPackages = with pkgs; [ + # neovim + #]; - # 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? + # 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/niksos/default.nix b/hosts/niksos/default.nix index 0ba368a5..7ab916bd 100644 --- a/hosts/niksos/default.nix +++ b/hosts/niksos/default.nix @@ -1,6 +1,6 @@ _: { - imports = [ - ./configuration.nix - ./hardware-configuration.nix - ]; + imports = [ + ./configuration.nix + ./hardware-configuration.nix + ]; }