forked from poz/niksos
small changes
This commit is contained in:
parent
352b3b11c6
commit
f253cb092c
39 changed files with 2233 additions and 695 deletions
405
flake.lock
405
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",
|
||||
|
|
|
@ -11,16 +11,17 @@
|
|||
# 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";
|
||||
};
|
||||
nixvim.url = "github:pta2002/nixvim";
|
||||
|
||||
nixneovim.url = "github:nixneovim/nixneovim";
|
||||
};
|
||||
}
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
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
|
||||
jacek = import ./jacek;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
8
homes/jacek/cli/default.nix
Normal file
8
homes/jacek/cli/default.nix
Normal file
|
@ -0,0 +1,8 @@
|
|||
_: {
|
||||
imports = [
|
||||
./git
|
||||
./starship
|
||||
./zoxide
|
||||
./zsh
|
||||
];
|
||||
}
|
14
homes/jacek/cli/git/default.nix
Normal file
14
homes/jacek/cli/git/default.nix
Normal file
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
config = {
|
||||
programs.git = {
|
||||
enable = true;
|
||||
userName = "jacekpoz";
|
||||
userEmail = "jacekpoz@cock.li";
|
||||
};
|
||||
};
|
||||
}
|
24
homes/jacek/cli/starship/default.nix
Normal file
24
homes/jacek/cli/starship/default.nix
Normal file
|
@ -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 = "";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
11
homes/jacek/cli/zoxide/default.nix
Normal file
11
homes/jacek/cli/zoxide/default.nix
Normal file
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
config = {
|
||||
programs.zoxide = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
};
|
||||
};
|
||||
}
|
54
homes/jacek/cli/zsh/default.nix
Normal file
54
homes/jacek/cli/zsh/default.nix
Normal file
|
@ -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=";
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
|
@ -8,373 +8,90 @@
|
|||
|
||||
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\"";
|
||||
};
|
||||
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=";
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
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-manager.enable = true;
|
||||
};
|
||||
|
||||
home = {
|
||||
username = "jacek";
|
||||
homeDirectory = "/home/jacek";
|
||||
packages = with pkgs; [
|
||||
neofetch
|
||||
git
|
||||
librewolf-wayland
|
||||
firefox-wayland
|
||||
foot
|
||||
keepassxc
|
||||
neovim
|
||||
exa
|
||||
waybar
|
||||
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";
|
||||
};
|
||||
|
||||
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
|
||||
}
|
||||
}
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
8
homes/jacek/gui/default.nix
Normal file
8
homes/jacek/gui/default.nix
Normal file
|
@ -0,0 +1,8 @@
|
|||
_: {
|
||||
imports = [
|
||||
./foot
|
||||
./hypr
|
||||
./rofi
|
||||
./waybar
|
||||
];
|
||||
}
|
0
homes/jacek/gui/firefox/default.nix
Normal file
0
homes/jacek/gui/firefox/default.nix
Normal file
107
homes/jacek/gui/foot/default.nix
Normal file
107
homes/jacek/gui/foot/default.nix
Normal file
|
@ -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";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
260
homes/jacek/gui/hypr/default.nix
Normal file
260
homes/jacek/gui/hypr/default.nix
Normal file
|
@ -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
|
||||
}
|
||||
}
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
14
homes/jacek/gui/rofi/default.nix
Normal file
14
homes/jacek/gui/rofi/default.nix
Normal file
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
config = {
|
||||
programs.rofi = {
|
||||
enable = true;
|
||||
package = pkgs.rofi-wayland;
|
||||
cycle = true;
|
||||
terminal = "foot";
|
||||
};
|
||||
};
|
||||
}
|
525
homes/jacek/gui/waybar/default.nix
Normal file
525
homes/jacek/gui/waybar/default.nix
Normal file
|
@ -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 = "<tt><small>{calendar}</small></tt>";
|
||||
calendar = {
|
||||
mode = "year";
|
||||
mode-mon-col = 3;
|
||||
weeks-pos = "right";
|
||||
on-scroll = 1;
|
||||
on-click-right = "mode";
|
||||
format = {
|
||||
months = "<span color='#EBDBB2'><b>{}</b></span>";
|
||||
days = "<span color='#B16286'><b>{}</b></span>";
|
||||
weeks = "<span color='#458588'><b>T{:%W}</b></span>";
|
||||
weekdays = "<span color='#D79921'><b>{}</b></span>";
|
||||
today = "<span color='#CC241D'><b><u>{}</u></b></span>";
|
||||
};
|
||||
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;
|
||||
}
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
5
homes/jacek/services/default.nix
Normal file
5
homes/jacek/services/default.nix
Normal file
|
@ -0,0 +1,5 @@
|
|||
_: {
|
||||
imports = [
|
||||
./dunst
|
||||
];
|
||||
}
|
86
homes/jacek/services/dunst/default.nix
Normal file
86
homes/jacek/services/dunst/default.nix
Normal file
|
@ -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 = "<b>%s</b>\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;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
5
homes/jacek/tui/default.nix
Normal file
5
homes/jacek/tui/default.nix
Normal file
|
@ -0,0 +1,5 @@
|
|||
_: {
|
||||
imports = [
|
||||
./neovim
|
||||
];
|
||||
}
|
116
homes/jacek/tui/neovim/default.nix
Normal file
116
homes/jacek/tui/neovim/default.nix
Normal file
|
@ -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;
|
||||
#};
|
||||
};
|
||||
}
|
2
homes/jacek/tui/neovim/lua/after/ftplugin/PKGBUILD.lua
Normal file
2
homes/jacek/tui/neovim/lua/after/ftplugin/PKGBUILD.lua
Normal file
|
@ -0,0 +1,2 @@
|
|||
vim.opt.shiftwidth=2
|
||||
vim.opt.tabstop=2
|
2
homes/jacek/tui/neovim/lua/after/ftplugin/html.lua
Normal file
2
homes/jacek/tui/neovim/lua/after/ftplugin/html.lua
Normal file
|
@ -0,0 +1,2 @@
|
|||
vim.opt.shiftwidth=2
|
||||
vim.opt.tabstop=2
|
2
homes/jacek/tui/neovim/lua/after/ftplugin/makefile.lua
Normal file
2
homes/jacek/tui/neovim/lua/after/ftplugin/makefile.lua
Normal file
|
@ -0,0 +1,2 @@
|
|||
vim.opt.shiftwidth=8
|
||||
vim.opt.tabstop=8
|
2
homes/jacek/tui/neovim/lua/after/ftplugin/nix.lua
Normal file
2
homes/jacek/tui/neovim/lua/after/ftplugin/nix.lua
Normal file
|
@ -0,0 +1,2 @@
|
|||
vim.opt.shiftwidth=4
|
||||
vim.opt.tabstop=4
|
2
homes/jacek/tui/neovim/lua/after/ftplugin/svelte.lua
Normal file
2
homes/jacek/tui/neovim/lua/after/ftplugin/svelte.lua
Normal file
|
@ -0,0 +1,2 @@
|
|||
vim.opt.shiftwidth=2
|
||||
vim.opt.tabstop=2
|
16
homes/jacek/tui/neovim/lua/init.lua
Normal file
16
homes/jacek/tui/neovim/lua/init.lua
Normal file
|
@ -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
|
||||
]]
|
3
homes/jacek/tui/neovim/lua/lua/.luarc.json
Normal file
3
homes/jacek/tui/neovim/lua/lua/.luarc.json
Normal file
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"workspace.checkThirdParty": false
|
||||
}
|
1
homes/jacek/tui/neovim/lua/lua/dap_conf.lua
Normal file
1
homes/jacek/tui/neovim/lua/lua/dap_conf.lua
Normal file
|
@ -0,0 +1 @@
|
|||
local dap = require("dap")
|
12
homes/jacek/tui/neovim/lua/lua/diagnostic.lua
Normal file
12
homes/jacek/tui/neovim/lua/lua/diagnostic.lua
Normal file
|
@ -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', '<leader>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', '<leader>q', vim.diagnostic.setloclist, opts)
|
15
homes/jacek/tui/neovim/lua/lua/global.lua
Normal file
15
homes/jacek/tui/neovim/lua/lua/global.lua
Normal file
|
@ -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")
|
7
homes/jacek/tui/neovim/lua/lua/keymap.lua
Normal file
7
homes/jacek/tui/neovim/lua/lua/keymap.lua
Normal file
|
@ -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")
|
97
homes/jacek/tui/neovim/lua/lua/lsp.lua
Normal file
97
homes/jacek/tui/neovim/lua/lua/lsp.lua
Normal file
|
@ -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', '<C-k>', vim.lsp.buf.signature_help, bufopts)
|
||||
vim.keymap.set('n', '<space>wa', vim.lsp.buf.add_workspace_folder, bufopts)
|
||||
vim.keymap.set('n', '<space>wr', vim.lsp.buf.remove_workspace_folder, bufopts)
|
||||
vim.keymap.set('n', '<space>wl', function()
|
||||
print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
|
||||
end, bufopts)
|
||||
vim.keymap.set('n', '<space>D', vim.lsp.buf.type_definition, bufopts)
|
||||
vim.keymap.set('n', '<space>r', vim.lsp.buf.rename, bufopts)
|
||||
vim.keymap.set('n', '<space>a', vim.lsp.buf.code_action, bufopts)
|
||||
vim.keymap.set('n', 'gr', vim.lsp.buf.references, bufopts)
|
||||
vim.keymap.set('n', '<C-f>', 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", "<C-space>", rt.hover_actions.hover_actions, { buffer = bufnr })
|
||||
-- Code action groups
|
||||
vim.keymap.set("n", "<leader>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 },
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
39
homes/jacek/tui/neovim/lua/lua/opts.lua
Normal file
39
homes/jacek/tui/neovim/lua/lua/opts.lua
Normal file
|
@ -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
|
186
homes/jacek/tui/neovim/lua/lua/plugins.lua
Normal file
186
homes/jacek/tui/neovim/lua/lua/plugins.lua
Normal file
|
@ -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 = [[<C-\>]],
|
||||
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", "<space>v", vim.cmd.CHADopen)
|
||||
|
||||
require("neodev").setup()
|
||||
|
||||
require("cloak").setup({
|
||||
cloak_character = "•",
|
||||
})
|
||||
|
||||
vim.keymap.set("n", "<C-c>", 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", "<leader>ff", builtin.find_files, opts)
|
||||
vim.keymap.set("n", "<leader>fg", builtin.live_grep, opts)
|
||||
vim.keymap.set("n", "<leader>fb", builtin.buffers, opts)
|
||||
vim.keymap.set("n", "<leader>fh", builtin.help_tags, opts)
|
||||
|
||||
require("Comment").setup()
|
||||
|
||||
local chadtree_settings = {
|
||||
keymap = {
|
||||
tertiary = { "<leader>t", "<middlemouse>" }
|
||||
}
|
||||
}
|
||||
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', '<leader>ct', crates.toggle, opts)
|
||||
vim.keymap.set('n', '<leader>cr', crates.reload, opts)
|
||||
|
||||
vim.keymap.set('n', '<leader>cv', crates.show_versions_popup, opts)
|
||||
vim.keymap.set('n', '<leader>cf', crates.show_features_popup, opts)
|
||||
vim.keymap.set('n', '<leader>cd', crates.show_dependencies_popup, opts)
|
||||
|
||||
vim.keymap.set('n', '<leader>cu', crates.update_crate, opts)
|
||||
vim.keymap.set('v', '<leader>cu', crates.update_crates, opts)
|
||||
vim.keymap.set('n', '<leader>ca', crates.update_all_crates, opts)
|
||||
vim.keymap.set('n', '<leader>cU', crates.upgrade_crate, opts)
|
||||
vim.keymap.set('v', '<leader>cU', crates.upgrade_crates, opts)
|
||||
vim.keymap.set('n', '<leader>cA', crates.upgrade_all_crates, opts)
|
||||
|
||||
vim.keymap.set('n', '<leader>cH', crates.open_homepage, opts)
|
||||
vim.keymap.set('n', '<leader>cR', crates.open_repository, opts)
|
||||
vim.keymap.set('n', '<leader>cD', crates.open_documentation, opts)
|
||||
vim.keymap.set('n', '<leader>cC', crates.open_crates_io, opts)
|
||||
|
||||
vim.keymap.set("n", "<leader>t", require("themeCycler").open_lazy)
|
49
hosts/chmura/configuration.nix
Normal file
49
hosts/chmura/configuration.nix
Normal file
|
@ -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";
|
||||
}
|
6
hosts/chmura/default.nix
Normal file
6
hosts/chmura/default.nix
Normal file
|
@ -0,0 +1,6 @@
|
|||
_: {
|
||||
imports = [
|
||||
./configuration.nix
|
||||
./hardware-configuration.nix
|
||||
];
|
||||
}
|
46
hosts/chmura/hardware-configuration.nix
Normal file
46
hosts/chmura/hardware-configuration.nix
Normal file
|
@ -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.<interface>.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;
|
||||
}
|
|
@ -11,13 +11,11 @@ in {
|
|||
niksos = lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
specialArgs = {inherit lib inputs self;};
|
||||
modules =
|
||||
[
|
||||
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
|
||||
|
|
|
@ -3,7 +3,18 @@
|
|||
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.
|
||||
|
@ -22,8 +33,14 @@
|
|||
"flakes"
|
||||
"nix-command"
|
||||
];
|
||||
substituters = ["https://hyprland.cachix.org"];
|
||||
trusted-public-keys = ["hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="];
|
||||
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.
|
||||
|
@ -44,6 +61,11 @@
|
|||
nvidiaPatches = false;
|
||||
};
|
||||
|
||||
fonts.fonts = with pkgs; [
|
||||
material-design-icons
|
||||
(nerdfonts.override { fonts = [ "JetBrainsMono" ]; })
|
||||
];
|
||||
|
||||
users.users.jacek = {
|
||||
isNormalUser = true;
|
||||
extraGroups = ["wheel" "networkmanager"];
|
||||
|
@ -53,7 +75,8 @@
|
|||
environment = {
|
||||
shells = with pkgs; [zsh];
|
||||
pathsToLink = [ "/share/zsh" ];
|
||||
sessionVariables = rec {
|
||||
enableAllTerminfo = true;
|
||||
sessionVariables = {
|
||||
TERM = "foot";
|
||||
EDITOR = "nvim";
|
||||
SSH_AUTH_SOCK = "\$XDG_RUNTIME_DIR/ssh-agent.socket";
|
||||
|
@ -66,7 +89,7 @@
|
|||
QT_STYLE_OVERRIDE = "kvantum";
|
||||
QT_QPA_PLATFORMTHEME = "qt5ct";
|
||||
|
||||
#GOPATH = "${config.xdg.dataHome}/go";
|
||||
GOPATH = "\$HOME/.local/share/go";
|
||||
|
||||
XDG_CURRENT_DESKTOP = "Hyprland";
|
||||
XDG_SESSION_TYPE = "wayland";
|
||||
|
@ -89,19 +112,35 @@
|
|||
|
||||
SYSTEMD_TIMEDATED_NTP_SERVICES = "chronyd.service:systemd-timesyncd.service";
|
||||
};
|
||||
etc."greetd/environments".text = ''
|
||||
Hyprland
|
||||
sway
|
||||
zsh
|
||||
shutdown now
|
||||
'';
|
||||
};
|
||||
|
||||
services.pipewire = {
|
||||
services = {
|
||||
pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
};
|
||||
|
||||
services.openssh = {
|
||||
openssh = {
|
||||
enable = true;
|
||||
settings.PasswordAuthentication = true;
|
||||
};
|
||||
greetd = {
|
||||
enable = true;
|
||||
settings = {
|
||||
default_session = {
|
||||
command = "${pkgs.sway}/bin/sway --config ${swayConfig}";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
#environment.systemPackages = with pkgs; [
|
||||
# neovim
|
||||
|
|
Loading…
Reference in a new issue