This commit is contained in:
joygnu 2024-06-05 20:52:52 +02:00
commit 4a33d1f1fe
28 changed files with 2042 additions and 0 deletions

818
flake.lock Normal file
View file

@ -0,0 +1,818 @@
{
"nodes": {
"base16": {
"inputs": {
"fromYaml": "fromYaml"
},
"locked": {
"lastModified": 1708890466,
"narHash": "sha256-LlrC09LoPi8OPYOGPXegD72v+//VapgAqhbOFS3i8sc=",
"owner": "SenchoPens",
"repo": "base16.nix",
"rev": "665b3c6748534eb766c777298721cece9453fdae",
"type": "github"
},
"original": {
"owner": "SenchoPens",
"repo": "base16.nix",
"type": "github"
}
},
"base16-fish": {
"flake": false,
"locked": {
"lastModified": 1622559957,
"narHash": "sha256-PebymhVYbL8trDVVXxCvZgc0S5VxI7I1Hv4RMSquTpA=",
"owner": "tomyun",
"repo": "base16-fish",
"rev": "2f6dd973a9075dabccd26f1cded09508180bf5fe",
"type": "github"
},
"original": {
"owner": "tomyun",
"repo": "base16-fish",
"type": "github"
}
},
"base16-foot": {
"flake": false,
"locked": {
"lastModified": 1696725948,
"narHash": "sha256-65bz2bUL/yzZ1c8/GQASnoiGwaF8DczlxJtzik1c0AU=",
"owner": "tinted-theming",
"repo": "base16-foot",
"rev": "eedbcfa30de0a4baa03e99f5e3ceb5535c2755ce",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "base16-foot",
"type": "github"
}
},
"base16-helix": {
"flake": false,
"locked": {
"lastModified": 1696727917,
"narHash": "sha256-FVrbPk+NtMra0jtlC5oxyNchbm8FosmvXIatkRbYy1g=",
"owner": "tinted-theming",
"repo": "base16-helix",
"rev": "dbe1480d99fe80f08df7970e471fac24c05f2ddb",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "base16-helix",
"type": "github"
}
},
"base16-kitty": {
"flake": false,
"locked": {
"lastModified": 1665001328,
"narHash": "sha256-aRaizTYPpuWEcvoYE9U+YRX+Wsc8+iG0guQJbvxEdJY=",
"owner": "kdrag0n",
"repo": "base16-kitty",
"rev": "06bb401fa9a0ffb84365905ffbb959ae5bf40805",
"type": "github"
},
"original": {
"owner": "kdrag0n",
"repo": "base16-kitty",
"type": "github"
}
},
"base16-schemes": {
"flake": false,
"locked": {
"lastModified": 1696158499,
"narHash": "sha256-5yIHgDTPjoX/3oDEfLSQ0eJZdFL1SaCfb9d6M0RmOTM=",
"owner": "tinted-theming",
"repo": "base16-schemes",
"rev": "a9112eaae86d9dd8ee6bb9445b664fba2f94037a",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "base16-schemes",
"type": "github"
}
},
"base16-tmux": {
"flake": false,
"locked": {
"lastModified": 1696725902,
"narHash": "sha256-wDPg5elZPcQpu7Df0lI5O8Jv4A3T6jUQIVg63KDU+3Q=",
"owner": "tinted-theming",
"repo": "base16-tmux",
"rev": "c02050bebb60dbb20cb433cd4d8ce668ecc11ba7",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "base16-tmux",
"type": "github"
}
},
"base16-vim": {
"flake": false,
"locked": {
"lastModified": 1663659192,
"narHash": "sha256-uJvaYYDMXvoo0fhBZUhN8WBXeJ87SRgof6GEK2efFT0=",
"owner": "chriskempson",
"repo": "base16-vim",
"rev": "3be3cd82cd31acfcab9a41bad853d9c68d30478d",
"type": "github"
},
"original": {
"owner": "chriskempson",
"repo": "base16-vim",
"type": "github"
}
},
"devshell": {
"inputs": {
"flake-utils": "flake-utils",
"nixpkgs": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1713532798,
"narHash": "sha256-wtBhsdMJA3Wa32Wtm1eeo84GejtI43pMrFrmwLXrsEc=",
"owner": "numtide",
"repo": "devshell",
"rev": "12e914740a25ea1891ec619bb53cf5e6ca922e40",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "devshell",
"type": "github"
}
},
"flake-compat": {
"locked": {
"lastModified": 1696426674,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
"revCount": 57,
"type": "tarball",
"url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.0.1/018afb31-abd1-7bff-a5e4-cff7e18efb7a/source.tar.gz"
},
"original": {
"type": "tarball",
"url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz"
}
},
"flake-compat_2": {
"flake": false,
"locked": {
"lastModified": 1696426674,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-compat_3": {
"flake": false,
"locked": {
"lastModified": 1673956053,
"narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-parts": {
"inputs": {
"nixpkgs-lib": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1715865404,
"narHash": "sha256-/GJvTdTpuDjNn84j82cU6bXztE0MSkdnTWClUCRub78=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "8dc45382d5206bd292f9c2768b8058a8fd8311d9",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-root": {
"locked": {
"lastModified": 1713493429,
"narHash": "sha256-ztz8JQkI08tjKnsTpfLqzWoKFQF4JGu2LRz8bkdnYUk=",
"owner": "srid",
"repo": "flake-root",
"rev": "bc748b93b86ee76e2032eecda33440ceb2532fcd",
"type": "github"
},
"original": {
"owner": "srid",
"repo": "flake-root",
"type": "github"
}
},
"flake-utils": {
"inputs": {
"systems": "systems_2"
},
"locked": {
"lastModified": 1701680307,
"narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "4022d587cbbfd70fe950c1e2083a02621806a725",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"fromYaml": {
"flake": false,
"locked": {
"lastModified": 1689549921,
"narHash": "sha256-iX0pk/uB019TdBGlaJEWvBCfydT6sRq+eDcGPifVsCM=",
"owner": "SenchoPens",
"repo": "fromYaml",
"rev": "11fbbbfb32e3289d3c631e0134a23854e7865c84",
"type": "github"
},
"original": {
"owner": "SenchoPens",
"repo": "fromYaml",
"type": "github"
}
},
"gitignore": {
"inputs": {
"nixpkgs": [
"nixvim",
"pre-commit-hooks",
"nixpkgs"
]
},
"locked": {
"lastModified": 1709087332,
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
"owner": "hercules-ci",
"repo": "gitignore.nix",
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "gitignore.nix",
"type": "github"
}
},
"gnome-shell": {
"flake": false,
"locked": {
"lastModified": 1713702291,
"narHash": "sha256-zYP1ehjtcV8fo+c+JFfkAqktZ384Y+y779fzmR9lQAU=",
"owner": "GNOME",
"repo": "gnome-shell",
"rev": "0d0aadf013f78a7f7f1dc984d0d812971864b934",
"type": "github"
},
"original": {
"owner": "GNOME",
"ref": "46.1",
"repo": "gnome-shell",
"type": "github"
}
},
"home-manager": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1715930644,
"narHash": "sha256-W9pyM3/vePxrffHtzlJI6lDS3seANQ+Nqp+i58O46LI=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "e3ad5108f54177e6520535768ddbf1e6af54b59d",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "home-manager",
"type": "github"
}
},
"home-manager_2": {
"inputs": {
"nixpkgs": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1716457508,
"narHash": "sha256-ZxzffLuWRyuMrkVVq7wastNUqeO0HJL9xqfY1QsYaqo=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "850cb322046ef1a268449cf1ceda5fd24d930b05",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "home-manager",
"type": "github"
}
},
"home-manager_3": {
"inputs": {
"nixpkgs": [
"stylix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1714981474,
"narHash": "sha256-b3/U21CJjCjJKmA9WqUbZGZgCvospO3ArOUTgJugkOY=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "6ebe7be2e67be7b9b54d61ce5704f6fb466c536f",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "home-manager",
"type": "github"
}
},
"hyprcursor": {
"inputs": {
"hyprlang": [
"hyprland",
"hyprlang"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1715791817,
"narHash": "sha256-J069Uhv/gCMFLX1dSh2f+9ZTM09r1Nv3oUfocCnWKow=",
"owner": "hyprwm",
"repo": "hyprcursor",
"rev": "7c3aa03dffb53921e583ade3d4ae3f487e390e7e",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprcursor",
"type": "github"
}
},
"hyprland": {
"inputs": {
"hyprcursor": "hyprcursor",
"hyprlang": "hyprlang",
"hyprwayland-scanner": "hyprwayland-scanner",
"nixpkgs": "nixpkgs",
"systems": "systems",
"xdph": "xdph"
},
"locked": {
"lastModified": 1716063601,
"narHash": "sha256-lH2CLdRQFtbQVauhLFDbPWTGmj7LgblMg2dq9thd0Zc=",
"owner": "hyprwm",
"repo": "Hyprland",
"rev": "f8857e6072bd85b95393499688872aaf7f088b5b",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "Hyprland",
"type": "github"
}
},
"hyprland-protocols": {
"inputs": {
"nixpkgs": [
"hyprland",
"xdph",
"nixpkgs"
],
"systems": [
"hyprland",
"xdph",
"systems"
]
},
"locked": {
"lastModified": 1691753796,
"narHash": "sha256-zOEwiWoXk3j3+EoF3ySUJmberFewWlagvewDRuWYAso=",
"owner": "hyprwm",
"repo": "hyprland-protocols",
"rev": "0c2ce70625cb30aef199cb388f99e19a61a6ce03",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprland-protocols",
"type": "github"
}
},
"hyprlang": {
"inputs": {
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1715791527,
"narHash": "sha256-HhQ4zvGHrRjR63ltySSeg+x+0jb0lepiutWdnFhLRoo=",
"owner": "hyprwm",
"repo": "hyprlang",
"rev": "969cb076e5b76f2e823aeca1937a3e1f159812ee",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprlang",
"type": "github"
}
},
"hyprwayland-scanner": {
"inputs": {
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1715879663,
"narHash": "sha256-/DwglRvj4XF4ECdNtrCIbthleszAZBwOiXG5A6r0K/c=",
"owner": "hyprwm",
"repo": "hyprwayland-scanner",
"rev": "f5181a068c1b06f2db51f6222e50a0c665a2b0c3",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprwayland-scanner",
"type": "github"
}
},
"nix-colors": {
"inputs": {
"base16-schemes": "base16-schemes",
"nixpkgs-lib": "nixpkgs-lib"
},
"locked": {
"lastModified": 1707825078,
"narHash": "sha256-hTfge2J2W+42SZ7VHXkf4kjU+qzFqPeC9k66jAUBMHk=",
"owner": "misterio77",
"repo": "nix-colors",
"rev": "b01f024090d2c4fc3152cd0cf12027a7b8453ba1",
"type": "github"
},
"original": {
"owner": "misterio77",
"repo": "nix-colors",
"type": "github"
}
},
"nix-darwin": {
"inputs": {
"nixpkgs": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1716511055,
"narHash": "sha256-5Fe/DGgvMhPEMl9VdVxv3zvwRcwNDmW5eRJ0gk72w7U=",
"owner": "lnl7",
"repo": "nix-darwin",
"rev": "0bea8222f6e83247dd13b055d83e64bce02ee532",
"type": "github"
},
"original": {
"owner": "lnl7",
"repo": "nix-darwin",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1715787315,
"narHash": "sha256-cYApT0NXJfqBkKcci7D9Kr4CBYZKOQKDYA23q8XNuWg=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "33d1e753c82ffc557b4a585c77de43d4c922ebb5",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-lib": {
"locked": {
"lastModified": 1697935651,
"narHash": "sha256-qOfWjQ2JQSQL15KLh6D7xQhx0qgZlYZTYlcEiRuAMMw=",
"owner": "nix-community",
"repo": "nixpkgs.lib",
"rev": "e1e11fdbb01113d85c7f41cada9d2847660e3902",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nixpkgs.lib",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1716137900,
"narHash": "sha256-sowPU+tLQv8GlqtVtsXioTKeaQvlMz/pefcdwg8MvfM=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "6c0b7a92c30122196a761b440ac0d46d3d9954f1",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_3": {
"locked": {
"lastModified": 1714912032,
"narHash": "sha256-clkcOIkg8G4xuJh+1onLG4HPMpbtzdLv4rHxFzgsH9c=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "ee4a6e0f566fe5ec79968c57a9c2c3c25f2cf41d",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixvim": {
"inputs": {
"devshell": "devshell",
"flake-compat": "flake-compat",
"flake-parts": "flake-parts",
"flake-root": "flake-root",
"home-manager": "home-manager_2",
"nix-darwin": "nix-darwin",
"nixpkgs": [
"nixpkgs"
],
"pre-commit-hooks": "pre-commit-hooks",
"treefmt-nix": "treefmt-nix"
},
"locked": {
"lastModified": 1716733566,
"narHash": "sha256-Zu0fn7bC+M/LwOOkR1RmeoOuCIbvvFwuqTldVBVe4WY=",
"owner": "nix-community",
"repo": "nixvim",
"rev": "8212bf1cd2d2dfe6ba521dd8c65a13b67e562d1a",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nixvim",
"type": "github"
}
},
"pre-commit-hooks": {
"inputs": {
"flake-compat": "flake-compat_2",
"gitignore": "gitignore",
"nixpkgs": [
"nixvim",
"nixpkgs"
],
"nixpkgs-stable": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1716213921,
"narHash": "sha256-xrsYFST8ij4QWaV6HEokCUNIZLjjLP1bYC60K8XiBVA=",
"owner": "cachix",
"repo": "pre-commit-hooks.nix",
"rev": "0e8fcc54b842ad8428c9e705cb5994eaf05c26a0",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "pre-commit-hooks.nix",
"type": "github"
}
},
"root": {
"inputs": {
"home-manager": "home-manager",
"hyprland": "hyprland",
"nix-colors": "nix-colors",
"nixpkgs": "nixpkgs_2",
"nixvim": "nixvim",
"stylix": "stylix",
"suyu": "suyu"
}
},
"stylix": {
"inputs": {
"base16": "base16",
"base16-fish": "base16-fish",
"base16-foot": "base16-foot",
"base16-helix": "base16-helix",
"base16-kitty": "base16-kitty",
"base16-tmux": "base16-tmux",
"base16-vim": "base16-vim",
"flake-compat": "flake-compat_3",
"gnome-shell": "gnome-shell",
"home-manager": "home-manager_3",
"nixpkgs": "nixpkgs_3"
},
"locked": {
"lastModified": 1716456264,
"narHash": "sha256-s9Tyj5pEivl/AsvrpkUkfR1Iu3zHfXpviPfe4HbPJ5I=",
"owner": "danth",
"repo": "stylix",
"rev": "290c8aef476ce98fff9cefc059284429d561a085",
"type": "github"
},
"original": {
"owner": "danth",
"repo": "stylix",
"type": "github"
}
},
"suyu": {
"inputs": {
"nixpkgs": [
"nixpkgs"
],
"systems": "systems_3"
},
"locked": {
"lastModified": 1714727263,
"narHash": "sha256-R+x0UZrBedeR6w+h44JaGwuQJrut5VVD2yjNgYNt9f4=",
"ref": "refs/heads/master",
"rev": "4013bb63ca2217eab5c4a25e266d68d908b96791",
"revCount": 15,
"type": "git",
"url": "https://git.suyu.dev/suyu/nix-flake"
},
"original": {
"type": "git",
"url": "https://git.suyu.dev/suyu/nix-flake"
}
},
"systems": {
"locked": {
"lastModified": 1689347949,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
"owner": "nix-systems",
"repo": "default-linux",
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default-linux",
"type": "github"
}
},
"systems_2": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_3": {
"locked": {
"lastModified": 1689347949,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
"owner": "nix-systems",
"repo": "default-linux",
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default-linux",
"type": "github"
}
},
"treefmt-nix": {
"inputs": {
"nixpkgs": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1715940852,
"narHash": "sha256-wJqHMg/K6X3JGAE9YLM0LsuKrKb4XiBeVaoeMNlReZg=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "2fba33a182602b9d49f0b2440513e5ee091d838b",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "treefmt-nix",
"type": "github"
}
},
"xdph": {
"inputs": {
"hyprland-protocols": "hyprland-protocols",
"hyprlang": [
"hyprland",
"hyprlang"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1715788457,
"narHash": "sha256-32HOkjSIyANphV0p5gIwP4ONU/CcinhwOyVFB+tL/d0=",
"owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland",
"rev": "af7c87a32f5d67eb2ada908a6a700f4e74831943",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland",
"type": "github"
}
}
},
"root": "root",
"version": 7
}

47
flake.nix Normal file
View file

@ -0,0 +1,47 @@
{
description = "Nixos config flake";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
hyprland.url = "github:hyprwm/Hyprland";
stylix.url = "github:danth/stylix";
nix-colors.url = "github:misterio77/nix-colors";
suyu.url = "git+https://git.suyu.dev/suyu/nix-flake";
suyu.inputs.nixpkgs.follows = "nixpkgs";
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
nixvim = {
url = "github:nix-community/nixvim";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = { nixpkgs, home-manager,stylix, ... }@inputs: {
nixosConfigurations.pc = nixpkgs.lib.nixosSystem {
specialArgs = {inherit inputs;};
system = "x86_64-linux";
modules = [
./hosts/pc
# inputs.stylix.nixosModules.stylix
];
};
nixosConfigurations.laptop = nixpkgs.lib.nixosSystem {
specialArgs = {inherit inputs;};
modules = [
./hosts/laptop
];
};
nixosConfigurations.craptop = nixpkgs.lib.nixosSystem {
specialArgs = {inherit inputs;};
modules = [
./hosts/craptop
];
};
};
}

View file

@ -0,0 +1,55 @@
{ config, lib, pkgs, ... }:
{
programs.alacritty = {
enable = true;
settings = {
# Font settings
font = {
size = 17.5;
};
# Color scheme
colors = {
primary = {
background = "0x282828";
foreground = "0xebdbb2";
};
normal = {
black = "0x665c54";
blue = "0x458588";
cyan = "0x689d6a";
green = "0x98971a";
magenta = "0xb16286";
red = "0xcc241d";
white = "0xa89984";
yellow = "0xd79921";
};
bright = {
black = "0x7c6f64";
blue = "0x83a598";
cyan = "0x8ec07c";
green = "0xb8bb26";
magenta = "0xd3869b";
red = "0xfb4934";
white = "0xbdae93";
yellow = "0xfabd2f";
};
};
# Cursor settings
cursor = {
style = "Block";
vi_mode_style = "Block";
};
# Window padding
window = {
padding = {
x = 5;
y = 5;
};
};
};
};
}

24
home/default.nix Normal file
View file

@ -0,0 +1,24 @@
{ config, pkgs, inputs, ... }:
{
colorScheme = inputs.nix-colors.colorSchemes.gruvbox-dark-medium;
imports = [
./waybar
./alacritty
./hyprland
./zsh
./rofi
./gtk
inputs.nix-colors.homeManagerModules.default
];
home.username = "joy";
home.homeDirectory = "/home/joy";
home.stateVersion = "23.11";
programs.home-manager.enable = true;
home.sessionVariables = {
EDITOR = "vim";
};
}

117
home/gtk/default.nix Normal file
View file

@ -0,0 +1,117 @@
{
pkgs,
config,
...
}: let
gruvboxPlus = import ./gruvbox-plus.nix {inherit pkgs;};
in let
cssContent = with config.colorScheme.colors; ''
@define-color accent_color #${base0D};
@define-color accent_bg_color mix(#${base0D}, #${base00},0.3);
@define-color accent_fg_color #${base00};
@define-color destructive_color #${base0C};
@define-color destructive_bg_color mix(#${base0C}, #${base00},0.3);
@define-color destructive_fg_color #${base02};
@define-color success_color #${base0B};
@define-color success_bg_color mix(#${base0B}, black,0.6);
@define-color success_fg_color #${base02};
@define-color warning_color #${base0A};
@define-color warning_bg_color mix(#${base0A}, black,0.6);
@define-color warning_fg_color rgba(0, 0, 0, 0.8);
@define-color error_color #${base08};
@define-color error_bg_color mix(#${base0C}, #${base00},0.3);
@define-color error_fg_color #${base02};
@define-color window_bg_color #${base00};
@define-color window_fg_color #${base04};
@define-color view_bg_color #${base01};
@define-color view_fg_color #${base04};
@define-color headerbar_bg_color mix(#${base00},black,0.2);
@define-color headerbar_fg_color #${base04};
@define-color headerbar_border_color #${base02};
@define-color headerbar_backdrop_color @window_bg_color;
@define-color headerbar_shade_color rgba(0, 0, 0, 0.36);
@define-color card_bg_color rgba(255, 255, 255, 0.08);
@define-color card_fg_color #${base04};
@define-color card_shade_color rgba(0, 0, 0, 0.36);
@define-color dialog_bg_color #${base02};
@define-color dialog_fg_color #${base04};
@define-color popover_bg_color #${base02};
@define-color popover_fg_color #${base04};
@define-color shade_color rgba(0,0,0,0.36);
@define-color scrollbar_outline_color rgba(0,0,0,0.5);
@define-color blue_1 #${base0D};
@define-color blue_2 #${base0D};
@define-color blue_3 #${base0D};
@define-color blue_4 #${base0D};
@define-color blue_5 #${base0D};
@define-color green_1 #${base0B};
@define-color green_2 #${base0B};
@define-color green_3 #${base0B};
@define-color green_4 #${base0B};
@define-color green_5 #${base0B};
@define-color yellow_1 #${base0A};
@define-color yellow_2 #${base0A};
@define-color yellow_3 #${base0A};
@define-color yellow_4 #${base0A};
@define-color yellow_5 #${base0A};
@define-color orange_1 #${base09};
@define-color orange_2 #${base09};
@define-color orange_3 #${base09};
@define-color orange_4 #${base09};
@define-color orange_5 #${base09};
@define-color red_1 #${base08};
@define-color red_2 #${base08};
@define-color red_3 #${base08};
@define-color red_4 #${base08};
@define-color red_5 #${base08};
@define-color purple_1 #${base0E};
@define-color purple_2 #${base0E};
@define-color purple_3 #${base0E};
@define-color purple_4 #${base0E};
@define-color purple_5 #${base0E};
@define-color brown_1 #${base0F};
@define-color brown_2 #${base0F};
@define-color brown_3 #${base0F};
@define-color brown_4 #${base0F};
@define-color brown_5 #${base0F};
@define-color light_1 #${base02};
@define-color light_2 #f6f5f4;
@define-color light_3 #deddda;
@define-color light_4 #c0bfbc;
@define-color light_5 #9a9996;
@define-color dark_1 mix(#${base00},white,0.5);
@define-color dark_2 mix(#${base00},white,0.2);
@define-color dark_3 #${base00};
@define-color dark_4 mix(#${base00},black,0.2);
@define-color dark_5 mix(#${base00},black,0.4);
'';
in {
home.file = {
".local/share/icons/GruvboxPlus".source = "${gruvboxPlus}";
};
home.pointerCursor.name = "Bibata-Modern-Ice";
home.pointerCursor.package = pkgs.bibata-cursors;
gtk.enable = true;
gtk.theme.package = pkgs.adw-gtk3;
gtk.theme.name = "adw-gtk3";
gtk.cursorTheme.package = pkgs.bibata-cursors;
gtk.cursorTheme.name = "Bibata-Modern-Ice";
gtk.iconTheme.package = gruvboxPlus;
gtk.iconTheme.name = "GruvboxPlus";
xdg.configFile."gtk-4.0/gtk.css" = {
text = cssContent;
};
xdg.configFile."gtk-3.0/gtk.css" = {
text = cssContent;
};
qt.enable = true;
qt.platformTheme.name= "gtk3";
qt.style.name = "Gruvbox";
}

18
home/gtk/gruvbox-plus.nix Normal file
View file

@ -0,0 +1,18 @@
{pkgs}: let
link = "https://github.com/SylEleuth/gruvbox-plus-icon-pack/releases/download/v3.1/gruvbox-plus-icon-pack-3.1.zip";
in
pkgs.stdenv.mkDerivation {
name = "gruvbox-plus";
src = pkgs.fetchurl {
url = link;
sha256 = "sha256-i/AzhYz/ACeXsG5j0kDVfvfA4TwxA3KZJTPwCO4BKmc=";
};
dontUnpack = true;
installPhase = ''
mkdir -p $out
${pkgs.unzip}/bin/unzip $src -d $out/
'';
}

110
home/hyprland/default.nix Normal file
View file

@ -0,0 +1,110 @@
{ config, lib, pkgs, ... }:
{
home.packages = with pkgs; [
rofi-wayland
pavucontrol
swww
wl-clipboard
lxqt.lxqt-policykit
grim
slurp
swappy
hyprpicker
emote
];
wayland.windowManager.hyprland.enable = true;
wayland.windowManager.hyprland.settings = {
monitor = "DP-1,2560x1440@165.00Hz,0x0,1,bitdepth,10";
env = [
"XCURSOR_THEME = Bibata-Modern-Ice "
"XCURSOR_SIZE = 24 "
"HYPRCURSOR_THEME = Bibata-Modern-Ice"
"HYPRCURSOR_SIZE = 24"
];
exec-once = [
"lxqt-policykit-agent &"
"swww init &"
"swww img ~/nix/modules/stylix/image.png &"
"waybar &"
];
"$mod" = "SUPER";
bind = [
"$mod, B, exec, emote &"
"$mod, Z, exec, grim - | swappy -f -"
"$mod, D, exec, prismlauncher -l minecraft"
"$mod, S, exec, brave"
"$mod, A, exec, rofi -show drun"
"$mod, TAB, exec, alacritty"
"$mod, A, exec, rofi -show drun"
"$mod, E, exec, nemo &"
"$mod, X, exec, keepassxc"
"$mod, F, exec, freetube"
"$mod, C, exec, hyprpicker -a"
"$mod, Q, killactive"
"$mod, M, exit, hyprland"
"$mod, W, togglefloating"
"$mod, U, exec, systemctl suspend"
"$mod, L, exec, amixer -q sset Master 5%+"
"$mod, K, exec, amixer -q sset Master 5%-"
"$mod, Return, fullscreen"
"$mod, left, movefocus, l"
"$mod, right, movefocus, r"
"$mod, up, movefocus, u"
"$mod, down, movefocus, d"
"$mod, 1, workspace, 1"
"$mod, 2, workspace, 2"
"$mod, 3, workspace, 3"
"$mod, 4, workspace, 4"
"$mod, 5, workspace, 5"
"$mod, 6, workspace, 6"
"$mod, 7, workspace, 7"
"$mod, 8, workspace, 8"
"$mod, 9, workspace, 9"
"$mod, 0, workspace, 10"
"$mod+Shift, 1, movetoworkspace, 1"
"$mod+Shift, 2, movetoworkspace, 2"
"$mod+Shift, 3, movetoworkspace, 3"
"$mod+Shift, 4, movetoworkspace, 4"
"$mod+Shift, 5, movetoworkspace, 5"
"$mod+Shift, 6, movetoworkspace, 6"
"$mod+Shift, 7, movetoworkspace, 7"
"$mod+Shift, 8, movetoworkspace, 8"
"$mod+Shift, 9, movetoworkspace, 9"
"$mod+Shift, 0, movetoworkspace, 10"
];
bindm= [
"$mod, mouse:272, movewindow"
"$mod, mouse:273, resizewindow"
];
general = {
gaps_in = 3;
gaps_out = 5;
border_size = 0;
# allow_tearing = false;
};
misc ={
disable_hyprland_logo = true;
disable_splash_rendering = true;
};
decoration = {
rounding = 5;
};
input = {
kb_layout = "us,de";
kb_variant = ",qwerty";
kb_options = "grp:alt_shift_toggle";
};
};
}

22
home/rofi/default.nix Normal file
View file

@ -0,0 +1,22 @@
{ pkgs, config, lib, ... }:
{
programs.rofi = {
enable = true;
package = pkgs.rofi-wayland;
theme = "~/nix/home/rofi/gruvbox-material.rasi";
extraConfig = {
modi = "drun";
icon-theme = "Oranchelo";
show-icons = true;
terminal = "alacritty";
drun-display-format = "{icon} {name}";
location = 0;
disable-history = false;
hide-scrollbar = true;
display-drun = " Apps ";
display-network = " 󰤨 Network";
sidebar-mode = true;
};
};
}

View file

@ -0,0 +1,149 @@
/**
* Gruvbox rofi theme
*
* Color palette imported from https://github.com/sainnhe/gruvbox-material
*
*/
* {
gruv0: #282828;
gruv1: #32302f;
gruv2: #45403d;
gruv3: #5a524c;
gruv4: #fbf1c7;
gruv5: #f4e8be;
gruv6: #eee0b7;
gruv7: #a89984;
gruv8: #928374;
gruv9: #7c6f64;
gruv10: #504945;
red: #ea6962;
orange: #e78a4e;
yellow: #d8a657;
aqua: #89b482;
purple: #d3869b;
reddark: #c14a4a;
yellowdark: #b47109;
foreground: @gruv9;
background-color: transparent;
highlight: underline bold #eee0b7;
transparent: rgba(46,52,64,0);
}
window {
location: center;
anchor: center;
border-radius: 10px;
height: 560px;
width: 600px;
background-color: @transparent;
spacing: 0;
children: [mainbox];
orientation: horizontal;
}
mainbox {
spacing: 0;
children: [ inputbar, message, listview ];
}
message {
padding: 10px;
border: 0px 2px 2px 2px;
border-color: @gruv0;
background-color: @gruv7;
}
inputbar {
color: @gruv6;
padding: 14px;
background-color: @gruv0;
border-color: @gruv0;
border: 1px;
border-radius: 10px 10px 0px 0px;
}
entry, prompt, case-indicator {
text-font: inherit;
text-color: inherit;
}
prompt {
margin: 0px 1em 0em 0em ;
}
listview {
padding: 8px;
border-radius: 0px 0px 10px 10px;
border: 2px 2px 2px 2px;
border-color: @gruv0;
background-color: @gruv0;
dynamic: false;
}
element {
padding: 5px;
vertical-align: 0.5;
border-radius: 10px;
color: @foreground;
text-color: @gruv6;
background-color: @gruv1;
}
element.normal.active {
background-color: @yellow;
}
element.normal.urgent {
background-color: @reddark;
}
element.selected.normal {
background-color: @gruv7;
text-color: @gruv0;
}
element.selected.active {
background-color: @yellowdark;
}
element.selected.urgent {
background-color: @red;
}
element.alternate.normal {
background-color: @transparent;
}
element-text, element-icon {
size: 3ch;
margin: 0 10 0 0;
vertical-align: 0.5;
background-color: inherit;
text-color: @gruv6;
}
button {
padding: 6px;
color: @foreground;
horizontal-align: 0.5;
border: 2px 0px 2px 2px;
border-radius: 10px;
border-color: @foreground;
}
button.selected.normal {
border: 2px 0px 2px 2px;
border-color: @foreground;
}

220
home/waybar/default.nix Normal file
View file

@ -0,0 +1,220 @@
{
pkgs,
config,
...
}: let
workspaces = {
};
mainWaybarConfig = {
mod = "dock";
layer = "top";
gtk-layer-shell = true;
height = 14;
position = "top";
modules-left = ["hyprland/workspaces"];
modules-center = ["clock"];
modules-right = [
"pulseaudio"
"tray"
];
"wlr/workspaces" = workspaces;
"hyprland/workspaces" = workspaces;
clock = {
actions = {
on-click-backward = "tz_down";
on-click-forward = "tz_up";
on-click-right = "mode";
on-scroll-down = "shift_down";
on-scroll-up = "shift_up";
};
};
pulseaudio = {
format = "{icon} {volume}%";
on-click = "pavucontrol";
format-icons = {
default = ["" "" ""];
};
};
tray = {
icon-size = 15;
spacing = 5;
};
};
css = ''
/* -----------------------------------------------------
* General
* ----------------------------------------------------- */
* {
font-size: 16px;
font-family: Ubuntu Nerd Font, Font Awesome, sans-serif;
font-weight: bold;
}
window#waybar {
background-color: rgba(26,27,38,0.4);
border-bottom: 1px solid rgba(26,27,38,0);
border-radius: 0px;
color: #f8f8f2;
}
/* -----------------------------------------------------
* Workspaces
* ----------------------------------------------------- */
#workspaces {
background: #fb4934;
margin: 5px 3px 5px 12px;
padding: 0px 1px;
border-radius: 15px;
border: 0px;
font-style: normal;
color: #15161e;
}
#workspaces button {
padding: 0px 5px;
margin: 4px 3px;
border-radius: 15px;
border: 0px;
color: #15161e;
background-color: #fb4934;
opacity: 0.5;
transition: all 0.3s ease-in-out;
}
#workspaces button.active {
color: #15161e;
background: #fb4934;
border-radius: 15px;
min-width: 40px;
transition: all 0.3s ease-in-out;
opacity: 1.0;
}
#workspaces button:hover {
color: #15161e;
background: #fb4934;
border-radius: 15px;
opacity: 1.0;
}
/* -----------------------------------------------------
* Tooltips
* ----------------------------------------------------- */
tooltip {
background: #282828;
border: 1px solid #282828;
border-radius: 10px;
}
tooltip label {
color: #15161e;
}
/* -----------------------------------------------------
* Window
* ----------------------------------------------------- */
#window {
color: #15161e;
background: #8ec07c;
border-radius: 15px;
margin: 5px;
padding: 2px 10px;
}
#custom-packages {
color: #15161e;
background: #f7768e;
border-radius: 15px;
margin: 5px;
padding: 2px 10px;
}
#memory {
color: #15161e;
background: #e0af68;
border-radius: 15px;
margin: 5px;
padding: 2px 10px;
}
#clock {
color: #15161e;
background: #fabd2f;
border-radius: 15px;
margin: 5px;
padding: 2px 10px;
}
#cpu {
color: #15161e;
background: #7dcfff;
border-radius: 15px;
margin: 5px;
padding: 2px 10px;
}
#disk {
color: #15161e;
background: #9ece6a;
border-radius: 15px;
margin: 5px;
padding: 2px 10px;
}
#battery {
color: #15161e;
background: #ff79c6;
border-radius: 15px;
margin: 5px;
padding: 2px 10px;
}
#network {
color: #15161e;
background: #f1fa8c;
border-radius: 15px;
margin: 5px;
padding: 2px 10px;
}
#tray {
color: #15161e;
background: #8EC07C;
border-radius: 15px;
margin: 5px;
padding: 2px 10px;
}
#pulseaudio {
color: #15161e;
background: #83a598;
border-radius: 15px;
margin: 5px;
padding: 2px 10px;
}
#custom-notification {
color: #15161e;
background: #6272a4;
border-radius: 15px;
margin: 5px;
padding: 2px 10px;
}
'';
in {
programs.waybar = {
enable = true;
package = pkgs.waybar.overrideAttrs (oldAttrs: {
mesonFlags = oldAttrs.mesonFlags ++ ["-Dexperimental=true"];
});
style = css;
settings = {mainBar = mainWaybarConfig;};
};
}

43
home/zsh/default.nix Normal file
View file

@ -0,0 +1,43 @@
{ config, pkgs, ...} :
{
programs.zsh = {
enable = true;
enableCompletion = true;
autosuggestion.enable = true;
syntaxHighlighting.enable = true;
shellAliases = {
ls = "ls -a";
sp = "sudo nixos-rebuild switch --flake ~/nix/#pc";
sl = "sudo nixos-rebuild switch --flake ~/nix/#laptop";
sc = "sudo nixos-rebuild switch --flake ~/nix/#craptop";
up = "sudo nix flake update ~/nix";
fr = "sudo systemctl reboot --firmware";
hy = "vim ~/nix/home/hyprland/default.nix";
eh = "vim ~/nix/home/default.nix";
gtk = "vim ~/nix/home/gtk/default.nix";
v = "vim";
ser = "ssh root@joygnu.org";
zs = "vim ~/nix/home/zsh/default.nix";
ep = "vim ~/nix/modules/packages/default.nix";
del = "sudo nix-collect-garbage -d";
push = "git push origin main && git push berg main";
ec = "vim ~/nix/hosts/pc/default.nix";
ef = "vim ~/nix/flake.nix";
epc = "vim ~/nix/hosts/pc/default.nix";
em = "vim ~/nix/modules/misc/default.nix";
es = "vim ~/nix/modules/stylix/default.nix";
};
history.size = 10000;
history.path = "${config.xdg.dataHome}/zsh/history";
oh-my-zsh = {
enable = true;
plugins = [ "history-substring-search" ];
theme = "simple";
};
};
}

15
hosts/craptop/default.nix Normal file
View file

@ -0,0 +1,15 @@
{ config, lib, pkgs, modulesPath, inputs, ... }:
{
networking.hostName = "craptop";
networking.networkmanager.enable = true;
boot.loader.grub.enable = true;
boot.loader.grub.device = "/dev/nvme0n1";
boot.loader.grub.useOSProber = true;
imports = [
../../modules
./hardware.nix
inputs.home-manager.nixosModules.default
];
}

View file

@ -0,0 +1,32 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/c8b1effc-0f19-4317-a206-6d66c5c10091";
fsType = "ext4";
};
swapDevices = [ ];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp2s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

15
hosts/laptop/default.nix Normal file
View file

@ -0,0 +1,15 @@
{ config, lib, pkgs, modulesPath, inputs, ... }:
{
networking.hostName = "laptop";
networking.networkmanager.enable = true;
hardware.nvidia.nvidiaSettings = true;
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
imports = [
../../modules
./hardware.nix
inputs.home-manager.nixosModules.default
];
}

40
hosts/laptop/hardware.nix Normal file
View file

@ -0,0 +1,40 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usb_storage" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/aa1db414-24a7-46c5-872b-6a88a0fdb1d8";
fsType = "ext4";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/0CB0-36CE";
fsType = "vfat";
};
swapDevices =
[ { device = "/dev/disk/by-uuid/ef9203a3-505b-4331-b19a-cd2ec27a9d00"; }
];
# 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.enp3s0.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp4s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

15
hosts/pc/default.nix Normal file
View file

@ -0,0 +1,15 @@
{ config, lib, pkgs, modulesPath, inputs, ... }:
{
networking.hostName = "pc";
networking.networkmanager.enable = true;
services.xserver.videoDrivers = ["amdgpu"];
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
boot.loader.timeout = 0;
imports = [
../../modules
./hardware.nix
inputs.home-manager.nixosModules.default
];
}

38
hosts/pc/hardware.nix Normal file
View file

@ -0,0 +1,38 @@
# 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" "nvme" "usbhid" "usb_storage" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/8c81ac04-9d75-4b58-8abe-3dfdd1b9e6ae";
fsType = "ext4";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/8810-3A12";
fsType = "vfat";
};
swapDevices = [ ];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.enp6s0.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp7s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

13
modules/default.nix Normal file
View file

@ -0,0 +1,13 @@
{
imports = [
./fonts
./yazi
./sound
./vm
./retro
./packages
./misc
./gdm
# ./stylix
];
}

View file

@ -0,0 +1,8 @@
{ config, pkgs, ...}:
{
fonts.packages = with pkgs; [
font-awesome
(nerdfonts.override { fonts = [ "FiraCode" "JetBrainsMono" "Iosevka" ]; })
];
}

14
modules/gdm/default.nix Normal file
View file

@ -0,0 +1,14 @@
{ config, ... }:
{
services.xserver.enable = true;
services.xserver.displayManager.gdm.enable = true;
services.displayManager.autoLogin.enable = true;
services.displayManager.autoLogin.user = "joy";
systemd.services."getty@tty1".enable = false;
systemd.services."autovt@tty1".enable = false;
}

44
modules/misc/default.nix Normal file
View file

@ -0,0 +1,44 @@
{ config, inputs, pkgs, ... }:
{
programs.hyprland.enable = true;
users.defaultUserShell = pkgs.zsh;
programs.zsh.enable = true;
programs.gnupg.agent.enable = true;
boot.initrd.luks.gpgSupport = true;
home-manager = {
extraSpecialArgs = {inherit inputs;};
users = {
"joy" = import ./../../home;
};
};
users.users.joy = {
isNormalUser = true;
description = "joy";
extraGroups = [ "wheel" ];
};
nix.settings.experimental-features = [ "nix-command" "flakes"];
time.timeZone = "Europe/Zurich";
programs.thunar.enable = true;
virtualisation.docker.enable = true;
services.devmon.enable = true;
services.udisks2.enable = true;
services.gvfs.enable = true;
boot.binfmt.registrations.appimage = {
wrapInterpreterInShell = false;
interpreter = "${pkgs.appimage-run}/bin/appimage-run";
recognitionType = "magic";
offset = 0;
mask = ''\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff'';
magicOrExtension = ''\x7fELF....AI\x02'';
};
system.stateVersion = "23.11";
}

View file

@ -0,0 +1,74 @@
{ config, pkgs, ... }:
{
virtualisation.docker.rootless.enable = true;
virtualisation.docker.enable = true;
nixpkgs.config.allowUnfree = true;
programs.steam.enable = true;
services = {
syncthing = {
enable = true;
user = "joy";
dataDir = "/home/joy/sync";
configDir = "/home/joy/.config/syncthing";
};
};
environment.systemPackages = with pkgs; [
#Games
alacritty
ark
rofi
prismlauncher
zulu17
lutris
mangohud
#hackerman
neovim
vim
fastfetch
freshfetch
cmatrix
cava
nitch
htop
gotop
#chromium
brave
freetube
webcord-vencord
#image/video/music/recording
imv
mpv
moc
obs-studio
#gui stuff
ark
keepassxc
signal-desktop
gnome.gnome-disk-utility
transmission-gtk
upscayl
cinnamon.nemo
bottles
thunderbird
chatterino2
gnome.gnome-clocks
gnome.gnome-calculator
firefox
#random utils
git
zip
rar
unzip
unrar
scrcpy
lm_sensors
appimage-run
ytmdl
yt-dlp
distrobox
wget
nginx
];
}

13
modules/retro/default.nix Normal file
View file

@ -0,0 +1,13 @@
{ pkgs, config, ...}:
{
environment.systemPackages = with pkgs; [
emulationstation-de
retroarchFull
dolphin-emu
];
nixpkgs.config.permittedInsecurePackages = [
"freeimage-unstable-2021-11-01"
];
}

13
modules/sound/default.nix Normal file
View file

@ -0,0 +1,13 @@
{ config, ... }:
{
sound.enable = true;
hardware.pulseaudio.enable = false;
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
};
}

View file

@ -0,0 +1,35 @@
{ config, inputs, pkgs, ... }:
{
stylix.image = ./image.png;
stylix.override= {
base00 = "282828";
base01 = "3c3836";
base02 = "504945";
base03 = "665c54";
base04 = "bdae93";
base05 = "d5c4a1";
base06 = "ebdbb2";
base07 = "fbf1c7";
base08 = "fb4934";
base09 = "fe8019";
base0A = "fabd2f";
base0B = "b8bb26";
base0C = "8ec07c";
base0D = "83a598";
base0E = "d3869b";
base0F = "d65d0e";
};
# stylix.cursor.package = pkgs.bibata-cursors;
# stylix.cursor.name = "Bibata-Modern-Ice";
# stylix.cursor.size = 24;
stylix.targets.chromium.enable = false;
stylix.homeManagerIntegration.autoImport = false;
users.users.joy = {
isNormalUser = true;
description = "joy";
extraGroups = [ "networkmanager" "wheel" ];
};
}

BIN
modules/stylix/image.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 365 KiB

37
modules/vm/default.nix Normal file
View file

@ -0,0 +1,37 @@
{ config, pkgs, ... }:
{
# Enable dconf (System Management Tool)
programs.dconf.enable = true;
# Add user to libvirtd group
users.users.joy.extraGroups = [ "libvirtd" ];
# Install necessary packages
environment.systemPackages = with pkgs; [
virt-manager
virt-viewer
spice spice-gtk
spice-protocol
win-virtio
win-spice
virtiofsd
#gnome.adwaita-icon-theme
];
# Manage the virtualisation services
virtualisation = {
libvirtd = {
enable = true;
qemu = {
swtpm.enable = true;
ovmf.enable = true;
ovmf.packages = [ pkgs.OVMFFull.fd ];
};
};
spiceUSBRedirection.enable = true;
};
services.spice-vdagentd.enable = true;
}

13
modules/yazi/default.nix Normal file
View file

@ -0,0 +1,13 @@
{ pkgs, ... }:
{
environment.systemPackages = with pkgs; [
yazi
jq
poppler
fd
ripgrep
fzf
zoxide
];
}