Merge branch 'flake-parts' into 'master'

Module-based ricing

See merge request bertof/nix-dotfiles!1
This commit is contained in:
Filippo Berto 2024-10-22 16:50:48 +00:00
commit 4d65b238a4
52 changed files with 848 additions and 1277 deletions

1
.gitignore vendored
View file

@ -1,4 +1,5 @@
result result
result-*
.direnv .direnv
.pre-commit-config.yaml .pre-commit-config.yaml
.worktrees/ .worktrees/

View file

@ -1,22 +0,0 @@
{ writeShellScriptBin
, lib
, xclip
, coreutils
, terminal-command ? "kitty -e"
,
}:
# 64 │ function clipcopy() { xclip -in -selection clipboard < "${1:-/dev/stdin}"; }
# 65 │ function clippaste() { xclip -out -selection clipboard; } clip
writeShellScriptBin "clipedit" ''
PATH=$PATH:"${
lib.makeBinPath [
coreutils
xclip
]
}"
tmp_file=$(mktemp)
xclip -out -selection -clipboard > $tmp_file
${terminal-command} $VISUAL $tmp_file || ${terminal-command} $EDITOR $tmp_file
xclip -in -selection clipboard < $tmp_file
rm $tmp_file
''

View file

@ -1,9 +0,0 @@
{ stdenv, autoPatchelfHook, ... }:
stdenv.mkDerivation rec {
name = "cocktail-bar-cli";
version = "1.0";
src = /home/bertof/Documenti/Security/NPI/cli/cocktail-bar-cli;
dontUnpack = true;
nativeBuildInputs = [ autoPatchelfHook ];
installPhase = "install -m755 -D ${src} $out/bin/cocktail-bar-cli";
}

View file

@ -1,57 +0,0 @@
{ lib
, rice
, roboto
, i3lock-color
, writeScriptBin
, font ? {
package = roboto;
name = "Roboto";
}
, palette ? rice.palette.palette { }
, ...
}:
let
strPalette = lib.nix-rice.palette.toRGBAHex palette;
in
writeScriptBin "lockscreen" ''
# Using font package ${font.package}
${i3lock-color}/bin/i3lock-color \
--insidever-color="${strPalette.normal.green}" \
--insidewrong-color="${strPalette.normal.red}" \
--inside-color="${strPalette.normal.black}" \
--ringver-color="${strPalette.bright.green}" \
--ringwrong-color="${strPalette.bright.red}" \
--ringver-color="${strPalette.bright.green}" \
--ringwrong-color="${strPalette.bright.red}" \
--ring-color="${strPalette.bright.blue}" \
--line-uses-ring \
--keyhl-color="${strPalette.bright.red}" \
--bshl-color="${strPalette.bright.red}" \
--separator-color="${strPalette.normal.black}" \
--verif-color="${strPalette.normal.green}" \
--wrong-color="${strPalette.normal.red}" \
--layout-color="${strPalette.normal.blue}" \
--date-color="${strPalette.normal.blue}" \
--time-color="${strPalette.normal.blue}" \
--blur 10 \
--clock \
--indicator \
--time-str="%H:%M:%S" \
--date-str="%a %e %b %Y" \
--verif-text="Verifying..." \
--wrong-text="Auth Failed" \
--noinput="No Input" \
--lock-text="Locking..." \
--lockfailed="Lock Failed" \
--time-font="${font.name}" \
--date-font="${font.name}" \
--layout-font="${font.name}" \
--verif-font="${font.name}" \
--wrong-font="${font.name}" \
--radius=120 \
--ring-width=20 \
--pass-media-keys \
--pass-screen-keys \
--pass-volume-keys \
--nofork
''

View file

@ -1,26 +0,0 @@
{ feh
, glib
, findutils
, gnugrep
, coreutils
, writeScriptBin
, backgrounds_directory ? "$HOME/Immagini/Sfondi"
,
}:
let
find = "${findutils}/bin/find";
grep = "${gnugrep}/bin/grep";
shuf = "${coreutils}/bin/shuf";
in
writeScriptBin "update-background" ''
#!/bin/sh
if [ $# -eq 0 ]; then
image=`${find} ${backgrounds_directory} -type f | ${grep} -v "/\." | ${shuf} -n 1`
else
image="$1"
fi
echo "image: $image"
${feh}/bin/feh --bg-fill --no-fehbg "$image"
${glib}/bin/gsettings set org.gnome.desktop.background picture-uri "file://$image"
true
''

288
flake.lock generated
View file

@ -100,11 +100,11 @@
"flake-compat_3": { "flake-compat_3": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1673956053, "lastModified": 1696426674,
"narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
"owner": "edolstra", "owner": "edolstra",
"repo": "flake-compat", "repo": "flake-compat",
"rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -114,22 +114,6 @@
} }
}, },
"flake-compat_4": { "flake-compat_4": {
"flake": false,
"locked": {
"lastModified": 1673956053,
"narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-compat_5": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1696426674, "lastModified": 1696426674,
@ -145,56 +129,97 @@
"type": "github" "type": "github"
} }
}, },
"flake-utils": { "flake-parts": {
"inputs": { "inputs": {
"systems": "systems_3" "nixpkgs-lib": "nixpkgs-lib"
}, },
"locked": { "locked": {
"lastModified": 1726560853, "lastModified": 1727826117,
"narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=", "narHash": "sha256-K5ZLCyfO/Zj9mPFldf3iwS6oZStJcU4tSpiXTMYaaL0=",
"owner": "numtide", "owner": "hercules-ci",
"repo": "flake-utils", "repo": "flake-parts",
"rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a", "rev": "3d04084d54bedc3d6b8b736c70ef449225c361b1",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "numtide", "owner": "hercules-ci",
"repo": "flake-utils", "repo": "flake-parts",
"type": "github" "type": "github"
} }
}, },
"flake-utils_2": { "flake-parts_2": {
"inputs": { "inputs": {
"systems": "systems_4" "nixpkgs-lib": "nixpkgs-lib_2"
}, },
"locked": { "locked": {
"lastModified": 1681202837, "lastModified": 1727826117,
"narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=", "narHash": "sha256-K5ZLCyfO/Zj9mPFldf3iwS6oZStJcU4tSpiXTMYaaL0=",
"owner": "numtide", "owner": "hercules-ci",
"repo": "flake-utils", "repo": "flake-parts",
"rev": "cfacdce06f30d2b68473a46042957675eebb3401", "rev": "3d04084d54bedc3d6b8b736c70ef449225c361b1",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "numtide", "owner": "hercules-ci",
"repo": "flake-utils", "repo": "flake-parts",
"type": "github"
}
},
"git-hooks-nix": {
"inputs": {
"flake-compat": "flake-compat_3",
"gitignore": "gitignore",
"nixpkgs": "nixpkgs",
"nixpkgs-stable": "nixpkgs-stable"
},
"locked": {
"lastModified": 1729104314,
"narHash": "sha256-pZRZsq5oCdJt3upZIU4aslS9XwFJ+/nVtALHIciX/BI=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "3c3e88f0f544d6bb54329832616af7eb971b6be6",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "git-hooks.nix",
"type": "github"
}
},
"git-hooks-nix_2": {
"inputs": {
"flake-compat": "flake-compat_4",
"gitignore": "gitignore_2",
"nixpkgs": "nixpkgs_2",
"nixpkgs-stable": "nixpkgs-stable_2"
},
"locked": {
"lastModified": 1729104314,
"narHash": "sha256-pZRZsq5oCdJt3upZIU4aslS9XwFJ+/nVtALHIciX/BI=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "3c3e88f0f544d6bb54329832616af7eb971b6be6",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "git-hooks.nix",
"type": "github" "type": "github"
} }
}, },
"gitignore": { "gitignore": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"nix-rice", "git-hooks-nix",
"pre-commit-hooks",
"nixpkgs" "nixpkgs"
] ]
}, },
"locked": { "locked": {
"lastModified": 1660459072, "lastModified": 1709087332,
"narHash": "sha256-8DFJjXG8zqoONA1vXtgeKXy68KdJL5UaXR8NtVMUbx8=", "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
"owner": "hercules-ci", "owner": "hercules-ci",
"repo": "gitignore.nix", "repo": "gitignore.nix",
"rev": "a20de23b925fd8264fd7fad6454652e142fd7f73", "rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -206,7 +231,8 @@
"gitignore_2": { "gitignore_2": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"pre-commit-hooks", "nix-rice",
"git-hooks-nix",
"nixpkgs" "nixpkgs"
] ]
}, },
@ -252,11 +278,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1729414726, "lastModified": 1729459288,
"narHash": "sha256-Dtmm1OU8Ymiy9hVWn/a2B8DhRYo9Eoyx9veERdOBR4o=", "narHash": "sha256-gBOVJv+q6Mx8jGvwX7cE6J8+sZmi1uxpRVsO7WxvVuQ=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "fe56302339bb28e3471632379d733547caec8103", "rev": "1e27f213d77fc842603628bcf2df6681d7d08f7e",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -304,33 +330,35 @@
}, },
"nix-rice": { "nix-rice": {
"inputs": { "inputs": {
"flake-compat": "flake-compat_3", "flake-parts": "flake-parts_2",
"flake-utils": "flake-utils_2", "git-hooks-nix": "git-hooks-nix_2",
"kitty-themes-src": "kitty-themes-src", "kitty-themes-src": "kitty-themes-src",
"nixpkgs-lib": "nixpkgs-lib", "nixpkgs": "nixpkgs_3",
"pre-commit-hooks": "pre-commit-hooks" "nixpkgs-lib": "nixpkgs-lib_3",
"systems": "systems_3"
}, },
"locked": { "locked": {
"lastModified": 1682952592, "lastModified": 1729607158,
"narHash": "sha256-1qXvqCxnWpk0ELdpmS2OMDu047gvl166CGBm+sfi8oo=", "narHash": "sha256-H0cr8kohjo+fJIKIpcLZwtmRUGH01Gyld0ulhfqe/Rw=",
"owner": "bertof", "owner": "bertof",
"repo": "nix-rice", "repo": "nix-rice",
"rev": "dddd03ed3c5e05c728b0df985f7af905b002f588", "rev": "2a4b7d31de444ab5d1f8623f41f0382c9e3eac33",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "bertof", "owner": "bertof",
"ref": "modules",
"repo": "nix-rice", "repo": "nix-rice",
"type": "github" "type": "github"
} }
}, },
"nixlib": { "nixlib": {
"locked": { "locked": {
"lastModified": 1728781282, "lastModified": 1729386149,
"narHash": "sha256-hUP9oxmnOmNnKcDOf5Y55HQ+NnoT0+bLWHLQWLLw9Ks=", "narHash": "sha256-hUP9oxmnOmNnKcDOf5Y55HQ+NnoT0+bLWHLQWLLw9Ks=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nixpkgs.lib", "repo": "nixpkgs.lib",
"rev": "16340f605f4e8e5cf07fd74dcbe692eee2d4f51b", "rev": "cce4521b6df014e79a7b7afc58c703ed683c916e",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -347,11 +375,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1729127034, "lastModified": 1729472750,
"narHash": "sha256-42AMGl+dh4I2wGgICSeDI1mqYaDEJhwqquHJ1vA0QiQ=", "narHash": "sha256-s93LPHi5BN7I2xSGNAFWiYb8WRsPvT1LE9ZjZBrpFlg=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nixos-generators", "repo": "nixos-generators",
"rev": "dd28a0806e7124fe392c33c9ccaa12f21970401f", "rev": "7c60ba4bc8d6aa2ba3e5b0f6ceb9fc07bc261565",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -362,11 +390,11 @@
}, },
"nixos-hardware": { "nixos-hardware": {
"locked": { "locked": {
"lastModified": 1729417461, "lastModified": 1729509737,
"narHash": "sha256-p0j/sUs7noqZw0W+SEuZXskzOfgOH7yY80ksIM0fCi4=", "narHash": "sha256-8OHgqz+tFo21h3hg4/GHizFPws+MMzpEru/+62Z0E8c=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixos-hardware", "repo": "nixos-hardware",
"rev": "8f38d8a4754cf673c2609c4ed399630db87e678b", "rev": "cc2d3c0e060f981905d52337340ee6ec8b8eb037",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -377,27 +405,51 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1681303793, "lastModified": 1719082008,
"narHash": "sha256-JEdQHsYuCfRL2PICHlOiH/2ue3DwoxUX7DJ6zZxZXFk=", "narHash": "sha256-jHJSUH619zBQ6WdC21fFAlDxHErKVDJ5fpN0Hgx4sjs=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "fe2ecaf706a5907b5e54d979fbde4924d84b65fc", "rev": "9693852a2070b398ee123a329e68f0dab5526681",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "NixOS", "owner": "NixOS",
"ref": "nixos-unstable", "ref": "nixpkgs-unstable",
"repo": "nixpkgs", "repo": "nixpkgs",
"type": "github" "type": "github"
} }
}, },
"nixpkgs-lib": { "nixpkgs-lib": {
"locked": { "locked": {
"lastModified": 1681001314, "lastModified": 1727825735,
"narHash": "sha256-5sDnCLdrKZqxLPK4KA8+f4A3YKO/u6ElpMILvX0g72c=", "narHash": "sha256-0xHYkMkeLVQAMa7gvkddbPqpxph+hDzdu1XdGPJR+Os=",
"type": "tarball",
"url": "https://github.com/NixOS/nixpkgs/archive/fb192fec7cc7a4c26d51779e9bab07ce6fa5597a.tar.gz"
},
"original": {
"type": "tarball",
"url": "https://github.com/NixOS/nixpkgs/archive/fb192fec7cc7a4c26d51779e9bab07ce6fa5597a.tar.gz"
}
},
"nixpkgs-lib_2": {
"locked": {
"lastModified": 1727825735,
"narHash": "sha256-0xHYkMkeLVQAMa7gvkddbPqpxph+hDzdu1XdGPJR+Os=",
"type": "tarball",
"url": "https://github.com/NixOS/nixpkgs/archive/fb192fec7cc7a4c26d51779e9bab07ce6fa5597a.tar.gz"
},
"original": {
"type": "tarball",
"url": "https://github.com/NixOS/nixpkgs/archive/fb192fec7cc7a4c26d51779e9bab07ce6fa5597a.tar.gz"
}
},
"nixpkgs-lib_3": {
"locked": {
"lastModified": 1729386149,
"narHash": "sha256-hUP9oxmnOmNnKcDOf5Y55HQ+NnoT0+bLWHLQWLLw9Ks=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nixpkgs.lib", "repo": "nixpkgs.lib",
"rev": "367c0e1086a4eb4502b24d872cea2c7acdd557f4", "rev": "cce4521b6df014e79a7b7afc58c703ed683c916e",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -408,16 +460,16 @@
}, },
"nixpkgs-stable": { "nixpkgs-stable": {
"locked": { "locked": {
"lastModified": 1678872516, "lastModified": 1720386169,
"narHash": "sha256-/E1YwtMtFAu2KUQKV/1+KFuReYPANM2Rzehk84VxVoc=", "narHash": "sha256-NGKVY4PjzwAa4upkGtAMz1npHGoRzWotlSnVlqI40mo=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "9b8e5abb18324c7fe9f07cb100c3cd4a29cda8b8", "rev": "194846768975b7ad2c4988bdb82572c00222c0d7",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "NixOS", "owner": "NixOS",
"ref": "nixos-22.11", "ref": "nixos-24.05",
"repo": "nixpkgs", "repo": "nixpkgs",
"type": "github" "type": "github"
} }
@ -456,11 +508,42 @@
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1729357638, "lastModified": 1719082008,
"narHash": "sha256-66RHecx+zohbZwJVEPF7uuwHeqf8rykZTMCTqIrOew4=", "narHash": "sha256-jHJSUH619zBQ6WdC21fFAlDxHErKVDJ5fpN0Hgx4sjs=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "bb8c2cf7ea0dd2e18a52746b2c3a5b0c73b93c22", "rev": "9693852a2070b398ee123a329e68f0dab5526681",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_3": {
"locked": {
"lastModified": 1729507178,
"narHash": "sha256-3UZqmGSK+uMUGkydhnqng/iaT857JtAxH9DtucTbUQs=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "e156ec8b02301cd455ab96bbd53ebd7bf7d1e29d",
"type": "github"
},
"original": {
"owner": "nixos",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_4": {
"locked": {
"lastModified": 1729519254,
"narHash": "sha256-tcPVpLwrcqFM4ovqXtHgwgMT+nm4qBa/6pwkckks35A=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "7c51187abf20b81c883605ab8e8c7acdc24fadb2",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -470,68 +553,21 @@
"type": "github" "type": "github"
} }
}, },
"pre-commit-hooks": {
"inputs": {
"flake-compat": "flake-compat_4",
"flake-utils": [
"nix-rice",
"flake-utils"
],
"gitignore": "gitignore",
"nixpkgs": "nixpkgs",
"nixpkgs-stable": "nixpkgs-stable"
},
"locked": {
"lastModified": 1682596858,
"narHash": "sha256-Hf9XVpqaGqe/4oDGr30W8HlsWvJXtMsEPHDqHZA6dDg=",
"owner": "cachix",
"repo": "pre-commit-hooks.nix",
"rev": "fb58866e20af98779017134319b5663b8215d912",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "pre-commit-hooks.nix",
"type": "github"
}
},
"pre-commit-hooks_2": {
"inputs": {
"flake-compat": "flake-compat_5",
"gitignore": "gitignore_2",
"nixpkgs": [
"nixpkgs"
],
"nixpkgs-stable": "nixpkgs-stable_2"
},
"locked": {
"lastModified": 1729104314,
"narHash": "sha256-pZRZsq5oCdJt3upZIU4aslS9XwFJ+/nVtALHIciX/BI=",
"owner": "cachix",
"repo": "pre-commit-hooks.nix",
"rev": "3c3e88f0f544d6bb54329832616af7eb971b6be6",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "pre-commit-hooks.nix",
"type": "github"
}
},
"root": { "root": {
"inputs": { "inputs": {
"agenix": "agenix", "agenix": "agenix",
"deploy-rs": "deploy-rs", "deploy-rs": "deploy-rs",
"flake-compat": "flake-compat_2", "flake-compat": "flake-compat_2",
"flake-utils": "flake-utils", "flake-parts": "flake-parts",
"git-hooks-nix": "git-hooks-nix",
"home-manager": "home-manager_2", "home-manager": "home-manager_2",
"home-manager-u": "home-manager-u", "home-manager-u": "home-manager-u",
"nix-rice": "nix-rice", "nix-rice": "nix-rice",
"nixos-generators": "nixos-generators", "nixos-generators": "nixos-generators",
"nixos-hardware": "nixos-hardware", "nixos-hardware": "nixos-hardware",
"nixpkgs": "nixpkgs_2", "nixpkgs": "nixpkgs_4",
"nixpkgs-u": "nixpkgs-u", "nixpkgs-u": "nixpkgs-u",
"pre-commit-hooks": "pre-commit-hooks_2" "systems": "systems_4"
} }
}, },
"systems": { "systems": {

659
flake.nix
View file

@ -25,8 +25,7 @@
nixpkgs.follows = "nixpkgs"; nixpkgs.follows = "nixpkgs";
}; };
}; };
flake-utils.url = "github:numtide/flake-utils"; nix-rice.url = "github:bertof/nix-rice/modules";
nix-rice.url = "github:bertof/nix-rice";
nixos-generators = { nixos-generators = {
url = "github:nix-community/nixos-generators"; url = "github:nix-community/nixos-generators";
inputs = { inputs = {
@ -34,31 +33,18 @@
}; };
}; };
nixos-hardware.url = "github:NixOS/nixos-hardware"; nixos-hardware.url = "github:NixOS/nixos-hardware";
pre-commit-hooks = {
url = "github:cachix/pre-commit-hooks.nix"; systems.url = "github:nix-systems/default";
inputs = { flake-parts.url = "github:hercules-ci/flake-parts";
nixpkgs.follows = "nixpkgs"; git-hooks-nix.url = "github:cachix/git-hooks.nix";
}; # agenix-shell.url = "github:aciceri/agenix-shell"; # TODO
}; # agenix-rekey.url = "github:oddlama/agenix-rekey"; # TODO
# emanote.url = "github:srid/emanote";
}; };
outputs = outputs = inputs:
{ self
, nixpkgs
, nixpkgs-u
, home-manager
, home-manager-u
, agenix
, deploy-rs
, flake-utils
, nixos-generators
, nixos-hardware
, nix-rice
, pre-commit-hooks
, ...
}:
let let
config = { nix-config = {
allowUnfree = true; allowUnfree = true;
extraOptions = "experimental-features = nix-command flakes"; extraOptions = "experimental-features = nix-command flakes";
permittedInsecurePackages = [ permittedInsecurePackages = [
@ -66,126 +52,28 @@
]; ];
}; };
overlays = [ basic_module = {
# Combine stable and unstable packages
(self: _: {
stable_pkgs = import nixpkgs {
inherit config overlays;
inherit (self) system;
};
unstable_pkgs = import nixpkgs-u {
inherit config overlays;
inherit (self) system;
};
})
# Nix rice
nix-rice.overlays.default
(import ./rice.nix)
# Flakes packages
(self: super: {
clipedit = self.callPackage ./custom/clipedit { };
wl-clipedit = self.callPackage ./custom/wl-clipedit { };
update-background = self.callPackage ./custom/update-background {
backgrounds_directory = "$HOME/Immagini/Sfondi/1080+/1440+";
};
lockscreen = self.callPackage ./custom/lockscreen {
palette = self.rice.colorPalette;
font = self.rice.font.normal;
};
way-lockscreen = self.callPackage ./custom/way-lockscreen {
palette = self.rice.colorPalette;
font = self.rice.font.normal;
};
sddm-theme-clairvoyance = self.callPackage ./custom/sddm-theme-clairvoyance {
wallpaper = ./wallpapers/background.jpg;
};
keyboard-switch = self.callPackage ./custom/keyboard-switch { };
sddm-sugar-dark = self.callPackage ./custom/sddm-sugar-dark { };
google-chrome = super.google-chrome.override {
commandLineArgs = [
"--password-store=gnome"
"--force-dark-mode"
];
};
logseq = super.logseq.override { electron = super.electron_27; };
})
];
basic =
with flake-utils.lib;
eachDefaultSystem (
system:
let
pkgs = import nixpkgs { inherit system config overlays; };
in
{
checks = {
pre-commit-check = pre-commit-hooks.lib.${system}.run {
src = ./.;
hooks = {
deadnix.enable = true;
nixpkgs-fmt.enable = true;
statix.enable = true;
};
};
};
devShells.default = pkgs.mkShell {
buildInputs = [
# deploy-rs.packages.${system}.deploy-rs
pkgs.deploy-rs
];
shellHook = ''
${self.checks.${system}.pre-commit-check.shellHook}
'';
LOCAL_KEY = "/etc/nix/key";
};
formatter = pkgs.nixpkgs-fmt;
}
);
nix_configuration = {
nixpkgs = { nixpkgs = {
inherit overlays config; config = nix-config;
overlays = [
# packages
inputs.self.overlays.packages
inputs.self.overlays.overrides
];
}; };
nix = { nix = {
inherit (config) extraOptions; inherit (nix-config) extraOptions;
registry = { registry = {
nixpkgs = { nixpkgs = { from = { id = "nixpkgs"; type = "indirect"; }; to = { owner = "nixos"; repo = "nixpkgs"; type = "github"; }; };
from = { stable = { from = { id = "stable"; type = "indirect"; }; flake = inputs.nixpkgs; };
id = "nixpkgs"; unstable = { from = { id = "unstable"; type = "indirect"; }; flake = inputs.nixpkgs-u; };
type = "indirect";
};
to = {
owner = "nixos";
repo = "nixpkgs";
type = "github";
};
};
stable = {
from = {
id = "stable";
type = "indirect";
};
flake = nixpkgs;
};
unstable = {
from = {
id = "unstable";
type = "indirect";
};
flake = nixpkgs-u;
};
}; };
}; };
}; };
# Home manager configuration # Home manager configuration
homeManagerModules = [ homeManagerModules = [
home-manager.nixosModules.default inputs.home-manager.nixosModules.default
{ {
home-manager = { home-manager = {
useGlobalPkgs = true; useGlobalPkgs = true;
@ -193,34 +81,29 @@
}; };
} }
]; ];
homeManagerUModules = [ homeManagerUModules = [
home-manager-u.nixosModules.default inputs.home-manager-u.nixosModules.default
{ home-manager = { useGlobalPkgs = true; useUserPackages = true; }; } { home-manager = { useGlobalPkgs = true; useUserPackages = true; }; }
]; ];
commonModules = [ commonModules = [
# Nix configuration # Nix configuration
nix_configuration basic_module
inputs.nix-rice.modules.default
./modules/nixos/rice.nix
# S3 cache read # S3 cache read
./modules/nixos/s3_cache_read.nix ./modules/nixos/s3_cache_read.nix
# Agenix configuration # Agenix configuration
agenix.nixosModules.default inputs.agenix.nixosModules.default
{ {
age.secrets = { age.secrets = {
# oauth_proxy_client_credentials.file = ./secrets/oauth_proxy_client_credentials.age; wg_psk.file = ./secrets/wg_psk.age;
# spotify_password = { file = ./secrets/spotify_password.age; owner = "bertof"; }; baldur_wg_priv.file = ./secrets/baldur_wg_priv.age;
wg_psk = { oppo_wg_priv.file = ./secrets/oppo_wg_priv.age;
file = ./secrets/wg_psk.age;
};
baldur_wg_priv = {
file = ./secrets/baldur_wg_priv.age;
};
oppo_wg_priv = {
file = ./secrets/oppo_wg_priv.age;
};
}; };
} }
@ -230,158 +113,236 @@
./modules/nixos/basics ./modules/nixos/basics
]; ];
odinCommonModules = [
inputs.nixos-hardware.nixosModules.common-cpu-intel
inputs.nixos-hardware.nixosModules.common-pc-laptop
inputs.nixos-hardware.nixosModules.common-pc-laptop-ssd
./instances/odin/hardware-configuration.nix
./instances/odin/common_configuration.nix
# S3 cache write
./modules/nixos/s3_cache_write.nix
# ./modules/nixos/pro_audio.nix
./modules/nixos/kdeconnect.nix
./modules/nixos/steam.nix
./modules/nixos/hyprland.nix
{ home-manager.users.bertof.imports = [ ./modules/hm/hyprland.nix ]; }
./modules/nixos/musa.nix
] ++ homeManagerUModules ++ [{ home-manager.users.bertof = import ./instances/odin/hm.nix; }];
installerModules = commonModules ++ [ ./modules/nixos/installer.nix ]; installerModules = commonModules ++ [ ./modules/nixos/installer.nix ];
in
inputs.flake-parts.lib.mkFlake { inherit inputs; } {
systems = import inputs.systems;
imports = [
inputs.git-hooks-nix.flakeModule
];
perSystem = { config, pkgs, system, ... }: {
_module.args.pkgs = import inputs.nixpkgs {
inherit system;
config = nix-config;
overlays = [
# inputs.nix-rice.overlays.default
inputs.self.overlays.packages
];
};
thorConfig = { pre-commit.settings.hooks = {
nixosConfigurations = { deadnix.enable = true;
thor = nixpkgs-u.lib.nixosSystem { nixpkgs-fmt.enable = true;
system = "x86_64-linux"; statix.enable = true;
modules = };
commonModules
++ [
./instances/thor/hardware-configuration.nix
nixos-hardware.nixosModules.common-cpu-amd
nixos-hardware.nixosModules.common-pc-ssd
./instances/thor/configuration.nix
# S3 cache write devShells.default = pkgs.mkShell {
./modules/nixos/s3_cache_write.nix shellHook = ''
${config.pre-commit.installationScript}
LOCAL_KEY = "/etc/nix/key";
'';
};
./modules/nixos/pro_audio.nix formatter = pkgs.nixpkgs-fmt;
./modules/nixos/kdeconnect.nix
./modules/nixos/steam.nix
./modules/nixos/plymouth.nix packages = {
./modules/nixos/hyprland.nix inherit
{ (pkgs)
home-manager.users.bertof.imports = [ keyboard-switch
./modules/hm/hyprland.nix sddm-sugar-dark
./modules/hm/swayidle.nix sddm-theme-clairvoyance
]; wl-clipedit
} wl-lockscreen
wl-update-background
;
./modules/nixos/musa.nix
] # Installer ISO
++ homeManagerUModules install-iso = inputs.nixos-generators.nixosGenerate {
++ [{ home-manager.users.bertof = import ./instances/thor/hm.nix; }]; inherit system;
modules = installerModules;
format = "install-iso";
}; };
# RAW base image
raw-base-image = inputs.nixos-generators.nixosGenerate {
inherit system;
modules = installerModules;
format = "raw-efi";
};
# VMDK base image
vmdk-base-image = inputs.nixos-generators.nixosGenerate {
system = "x86_64-linux";
modules = installerModules;
format = "vmware";
};
# Aarch64 base image
aarch64-base-image = inputs.nixos-generators.nixosGenerate {
system = "aarch64-linux";
modules = installerModules;
format = "sd-aarch64";
};
# Installer DigitalOcean
do-image = inputs.nixos-generators.nixosGenerate {
inherit system;
modules = installerModules;
format = "do";
};
}; };
}; };
odinConfig = { flake = {
nixosConfigurations =
let overlays = {
odinCommonModules = [ default = inputs.self.overlays.packages;
nixos-hardware.nixosModules.common-cpu-intel
nixos-hardware.nixosModules.common-pc-laptop packages = self: _super: {
nixos-hardware.nixosModules.common-pc-laptop-ssd keyboard-switch = self.callPackage ./pkgs/keyboard-switch { };
./instances/odin/hardware-configuration.nix sddm-sugar-dark = self.callPackage ./pkgs/sddm-sugar-dark { };
./instances/odin/common_configuration.nix sddm-theme-clairvoyance = self.callPackage ./pkgs/sddm-theme-clairvoyance { };
wl-clipedit = self.callPackage ./pkgs/wl-clipedit { };
wl-lockscreen = self.callPackage ./pkgs/wl-lockscreen { };
wl-update-background = self.callPackage ./pkgs/wl-update-background { };
};
overrides = _self: super: {
google-chrome = super.google-chrome.override { commandLineArgs = [ "--password-store=gnome" "--force-dark-mode" ]; };
sddm-theme-clairvoyance = super.sddm-theme-clairvoyance.override { wallpaper = ./wallpapers/background.jpg; };
};
# two-channels = (self: _: {
# stable_pkgs = import inputs.nixpkgs {
# inherit config overlays;
# inherit (self) system;
# };
# unstable_pkgs = import inputs.nixpkgs-u {
# inherit config overlays;
# inherit (self) system;
# };
# });
};
nixosConfigurations = {
thor = inputs.nixpkgs-u.lib.nixosSystem {
system = "x86_64-linux";
modules = commonModules ++ [
./instances/thor/hardware-configuration.nix
inputs.nixos-hardware.nixosModules.common-cpu-amd
inputs.nixos-hardware.nixosModules.common-pc-ssd
./instances/thor/configuration.nix
# S3 cache write # S3 cache write
./modules/nixos/s3_cache_write.nix ./modules/nixos/s3_cache_write.nix
# ./modules/nixos/pro_audio.nix ./modules/nixos/pro_audio.nix
./modules/nixos/kdeconnect.nix ./modules/nixos/kdeconnect.nix
./modules/nixos/steam.nix ./modules/nixos/steam.nix
./modules/nixos/plymouth.nix
./modules/nixos/hyprland.nix ./modules/nixos/hyprland.nix
{ home-manager.users.bertof.imports = [ ./modules/hm/hyprland.nix ]; } {
home-manager.users.bertof.imports = [
./modules/hm/hyprland.nix
./modules/hm/swayidle.nix
];
}
./modules/nixos/musa.nix ./modules/nixos/musa.nix
] ++ homeManagerUModules ++ [{ home-manager.users.bertof = import ./instances/odin/hm.nix; }]; ] ++ homeManagerUModules ++ [{
in home-manager.users.bertof = import ./instances/thor/hm.nix;
rec { }];
odin-nvidia = nixpkgs-u.lib.nixosSystem {
system = "x86_64-linux";
modules = commonModules ++ odinCommonModules ++ [ ./instances/odin/configuration-nvidia.nix ];
};
odin-intel = nixpkgs-u.lib.nixosSystem {
system = "x86_64-linux";
modules = commonModules ++ odinCommonModules ++ [ ./instances/odin/configuration-intel.nix ];
};
odin = odin-intel;
}; };
};
heimdallConfig = { odin-nvidia = inputs.nixpkgs-u.lib.nixosSystem {
nixosConfigurations = {
heimdall = nixpkgs.lib.nixosSystem {
system = "x86_64-linux"; system = "x86_64-linux";
modules = modules = commonModules ++ odinCommonModules ++ [ ./instances/odin/configuration-nvidia.nix ];
commonModules
++ [
nixos-hardware.nixosModules.common-cpu-amd
nixos-hardware.nixosModules.common-gpu-amd
nixos-hardware.nixosModules.common-pc-ssd
./modules/nixos/server
./instances/heimdall/hardware-configuration.nix
./instances/heimdall/configuration.nix
./modules/nixos/users/tiziano.nix
./modules/nixos/torrentbox.nix
./modules/nixos/minio.nix
./modules/nixos/rclone.nix
./modules/nixos/nextcloud.nix
# ./modules/nixos/ntfy.nix
# S3 cache read
./modules/nixos/s3_cache_read.nix
]
++ homeManagerModules
++ [{ home-manager.users.bertof = import ./instances/heimdall/hm.nix; }];
}; };
};
};
freyaConfig = { odin = inputs.nixpkgs-u.lib.nixosSystem {
nixosConfigurations = { system = "x86_64-linux";
freya = nixpkgs.lib.nixosSystem { modules = commonModules ++ odinCommonModules ++ [ ./instances/odin/configuration-intel.nix ];
};
heimdall = inputs.nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = commonModules ++ [
inputs.nixos-hardware.nixosModules.common-cpu-amd
inputs.nixos-hardware.nixosModules.common-gpu-amd
inputs.nixos-hardware.nixosModules.common-pc-ssd
./modules/nixos/server
./instances/heimdall/hardware-configuration.nix
./instances/heimdall/configuration.nix
./modules/nixos/users/tiziano.nix
./modules/nixos/torrentbox.nix
./modules/nixos/minio.nix
./modules/nixos/rclone.nix
./modules/nixos/nextcloud.nix
# ./modules/nixos/ntfy.nix
# S3 cache read
./modules/nixos/s3_cache_read.nix
] ++ homeManagerModules ++ [{
home-manager.users.bertof = import ./instances/heimdall/hm.nix;
}];
};
freya = inputs.nixpkgs.lib.nixosSystem {
system = "aarch64-linux"; system = "aarch64-linux";
modules = modules = commonModules ++ [
commonModules inputs.nixos-hardware.nixosModules.raspberry-pi-4
++ [ ({ lib, ... }: {
nixos-hardware.nixosModules.raspberry-pi-4 boot.supportedFilesystems = lib.mkForce [
( "btrfs"
{ lib, ... }: "reiserfs"
{ "vfat"
boot.supportedFilesystems = lib.mkForce [ "f2fs"
"btrfs" "xfs"
"reiserfs" "ntfs"
"vfat" "cifs"
"f2fs" ];
"xfs" })
"ntfs" ./modules/nixos/server
"cifs"
];
}
)
./modules/nixos/server
./instances/freya/hardware-configuration.nix ./instances/freya/hardware-configuration.nix
./instances/freya/configuration.nix ./instances/freya/configuration.nix
./modules/nixos/users/tiziano.nix ./modules/nixos/users/tiziano.nix
./modules/nixos/torrentbox.nix ./modules/nixos/torrentbox.nix
./modules/nixos/minio.nix ./modules/nixos/minio.nix
# ./modules/nixos/nextcloud.nix # ./modules/nixos/nextcloud.nix
./modules/nixos/ntfy.nix ./modules/nixos/ntfy.nix
# S3 cache read # S3 cache read
./modules/nixos/s3_cache_read.nix ./modules/nixos/s3_cache_read.nix
] ] ++ homeManagerModules ++ [{
++ homeManagerModules home-manager.users.bertof = import ./instances/freya/hm.nix;
++ [{ home-manager.users.bertof = import ./instances/freya/hm.nix; }]; }];
}; };
};
};
baldurConfig = { baldur = inputs.nixpkgs.lib.nixosSystem {
nixosConfigurations = {
baldur = nixpkgs.lib.nixosSystem {
system = "x86_64-linux"; system = "x86_64-linux";
modules = commonModules ++ [ modules = commonModules ++ [
./modules/nixos/server ./modules/nixos/server
@ -399,141 +360,57 @@
# }] # }]
; ;
}; };
};
};
lokiConfig = { loki = inputs.nixpkgs.lib.nixosSystem {
nixosConfigurations = {
loki = nixpkgs.lib.nixosSystem {
system = "x86_64-linux"; system = "x86_64-linux";
modules = modules = commonModules ++ [
commonModules ./modules/nixos/server
++ [
./modules/nixos/server
nixos-hardware.nixosModules.common-cpu-intel inputs.nixos-hardware.nixosModules.common-cpu-intel
nixos-hardware.nixosModules.common-pc-ssd inputs.nixos-hardware.nixosModules.common-pc-ssd
./instances/loki/hardware-configuration.nix ./instances/loki/hardware-configuration.nix
./instances/loki/configuration.nix ./instances/loki/configuration.nix
./modules/nixos/users/tiziano.nix ./modules/nixos/users/tiziano.nix
# S3 cache read # S3 cache read
./modules/nixos/s3_cache_read.nix ./modules/nixos/s3_cache_read.nix
] ] ++ homeManagerModules ++ [{
++ homeManagerModules home-manager.users.bertof = import ./instances/loki/hm.nix;
++ [ home-manager.users.tiziano = import ./instances/loki/hm_tiziano.nix;
{ }];
home-manager.users.bertof = import ./instances/loki/hm.nix;
home-manager.users.tiziano = import ./instances/loki/hm_tiziano.nix;
}
];
}; };
};
};
deployments = { # # Deploy-rs checks
# Deploy-rs checks # checks = builtins.mapAttrs (_system: deployLib: deployLib.deployChecks inputs.self.deploy) inputs.deploy-rs.lib;
checks = builtins.mapAttrs (_system: deployLib: deployLib.deployChecks self.deploy) deploy-rs.lib;
# Map nodes to Deploy-rs deployments # Map nodes to Deploy-rs deployments
deploy.nodes = { deploy.nodes = {
baldur = { baldur = {
hostname = "baldur.bertof.net"; hostname = "baldur.bertof.net";
profiles.system = { profiles.system = { user = "root"; path = inputs.deploy-rs.lib.x86_64-linux.activate.nixos inputs.self.nixosConfigurations.baldur; };
user = "root";
path = deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.baldur;
}; };
}; freya = {
freya = { hostname = "freya.tsn";
hostname = "freya.tsn"; profiles.system = { user = "root"; path = inputs.deploy-rs.lib.aarch64-linux.activate.nixos inputs.self.nixosConfigurations.freya; };
profiles.system = {
user = "root";
path = deploy-rs.lib.aarch64-linux.activate.nixos self.nixosConfigurations.freya;
}; };
}; heimdall = {
heimdall = { hostname = "heimdall.tsn";
hostname = "heimdall.tsn"; profiles.system = { user = "root"; path = inputs.deploy-rs.lib.x86_64-linux.activate.nixos inputs.self.nixosConfigurations.heimdall; };
profiles.system = {
user = "root";
path = deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.heimdall;
}; };
}; loki = {
loki = { hostname = "loki.tsn";
hostname = "loki.tsn"; profiles.system = { user = "root"; path = inputs.deploy-rs.lib.x86_64-linux.activate.nixos inputs.self.nixosConfigurations.loki; };
profiles.system = {
user = "root";
path = deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.loki;
}; };
}; odin = {
odin = { hostname = "odin.tsn";
hostname = "odin.tsn"; profiles.system = { user = "root"; path = inputs.deploy-rs.lib.x86_64-linux.activate.nixos inputs.self.nixosConfigurations.odin; };
profiles.system = {
user = "root";
path = deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.odin;
}; };
}; thor = {
thor = { hostname = "thor.tsn";
hostname = "thor.tsn"; profiles.system = { user = "root"; path = inputs.deploy-rs.lib.x86_64-linux.activate.nixos inputs.self.nixosConfigurations.thor; };
profiles.system = {
user = "root";
path = deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.thor;
}; };
}; };
}; };
}; };
};
images =
with flake-utils.lib;
eachSystem
[
system.x86_64-linux
system.aarch64-linux
]
(system: {
packages = {
# Installer ISO
install-iso = nixos-generators.nixosGenerate {
inherit system;
modules = installerModules;
format = "install-iso";
};
# RAW base image
raw-base-image = nixos-generators.nixosGenerate {
system = flake-utils.lib.system.x86_64-linux;
modules = installerModules;
format = "raw-efi";
};
# VMDK base image
vmdk-base-image = nixos-generators.nixosGenerate {
system = flake-utils.lib.system.x86_64-linux;
modules = installerModules;
format = "vmware";
};
# Aarch64 base image
aarch64-base-image = nixos-generators.nixosGenerate {
system = flake-utils.lib.system.aarch64-linux;
modules = installerModules;
format = "sd-aarch64";
};
# Installer DigitalOcean
do-image = nixos-generators.nixosGenerate {
inherit system;
modules = installerModules;
format = "do";
};
};
});
in
builtins.foldl' nixpkgs.lib.recursiveUpdate { } [
basic
thorConfig
odinConfig
freyaConfig
baldurConfig
heimdallConfig
lokiConfig
deployments
images
];
} }

View file

@ -300,7 +300,6 @@ in
services.home-assistant = { services.home-assistant = {
enable = true; enable = true;
openFirewall = true; openFirewall = true;
# package = pkgs.unstable_pkgs.home-assistant;
config = { config = {
default_config = { }; default_config = { };

View file

@ -5,24 +5,19 @@
, ... , ...
}: }:
{ {
boot.initrd.kernelModules = [ "i915" ];
boot = { hardware.nvidia = {
initrd.kernelModules = [ "i915" ]; # modesetting.enable = true;
kernelPackages = pkgs.unstable_pkgs.linuxPackages; # package = pkgs.linuxPackages.nvidia_x11;
}; open = false;
prime = {
hardware.nvidia = offload.enable = false;
{ sync.enable = true;
# modesetting.enable = true; intelBusId = "PCI:0:2:0";
# package = pkgs.linuxPackages.nvidia_x11; nvidiaBusId = "PCI:1:0:0";
open = false;
prime = {
offload.enable = false;
sync.enable = true;
intelBusId = "PCI:0:2:0";
nvidiaBusId = "PCI:1:0:0";
};
}; };
};
programs.gamemode = { programs.gamemode = {
enable = true; enable = true;

View file

@ -56,9 +56,6 @@
wireguard-tools wireguard-tools
xournalpp xournalpp
zoom-us zoom-us
;
inherit (pkgs.unstable_pkgs)
# heroic
proton-pass; proton-pass;
}; };
}; };
@ -100,7 +97,6 @@
../../modules/hm/biblio.nix ../../modules/hm/biblio.nix
# ../../modules/hm/bitwarden.nix # ../../modules/hm/bitwarden.nix
# ../../modules/hm/blender.nix # ../../modules/hm/blender.nix
# ../../modules/hm/bspwm.nix
../../modules/hm/cava.nix ../../modules/hm/cava.nix
# ../../modules/hm/dwarf-fortress.nix # ../../modules/hm/dwarf-fortress.nix
../../modules/hm/easyeffects.nix ../../modules/hm/easyeffects.nix
@ -142,7 +138,7 @@
../../modules/hm/syncthing.nix ../../modules/hm/syncthing.nix
# ../../modules/hm/thunar.nix # ../../modules/hm/thunar.nix
# ../../modules/hm/twmn.nix # ../../modules/hm/twmn.nix
../../modules/hm/update_background.nix # ../../modules/hm/update_background.nix
../../modules/hm/vim.nix ../../modules/hm/vim.nix
../../modules/hm/virtualization.nix ../../modules/hm/virtualization.nix
../../modules/hm/webapp.nix ../../modules/hm/webapp.nix

View file

@ -61,7 +61,7 @@
xournalpp xournalpp
zoom-us zoom-us
; ;
inherit (pkgs.unstable_pkgs) heroic; inherit (pkgs) heroic;
}; };
}; };
@ -91,7 +91,6 @@
../../modules/hm/biblio.nix ../../modules/hm/biblio.nix
# ../../modules/hm/bitwarden.nix # ../../modules/hm/bitwarden.nix
../../modules/hm/blender_nvidia.nix ../../modules/hm/blender_nvidia.nix
# ../../modules/hm/bspwm.nix
../../modules/hm/cava.nix ../../modules/hm/cava.nix
# ../../modules/hm/dwarf-fortress.nix # ../../modules/hm/dwarf-fortress.nix
../../modules/hm/easyeffects.nix ../../modules/hm/easyeffects.nix
@ -130,15 +129,13 @@
# ../../modules/hm/screen_locker.nix # ../../modules/hm/screen_locker.nix
# ../../modules/hm/security.nix # ../../modules/hm/security.nix
# ../../modules/hm/spotifyd.nix # ../../modules/hm/spotifyd.nix
../../modules/hm/sxhkd.nix
../../modules/hm/syncthing.nix ../../modules/hm/syncthing.nix
# ../../modules/hm/thunar.nix # ../../modules/hm/thunar.nix
# ../../modules/hm/twmn.nix # ../../modules/hm/twmn.nix
../../modules/hm/update_background.nix # ../../modules/hm/update_background.nix
../../modules/hm/vim.nix ../../modules/hm/vim.nix
../../modules/hm/virtualization.nix ../../modules/hm/virtualization.nix
../../modules/hm/webapp.nix ../../modules/hm/webapp.nix
../../modules/hm/wl_update_background.nix
../../modules/hm/xresources.nix ../../modules/hm/xresources.nix
../../modules/hm/zathura.nix ../../modules/hm/zathura.nix
../../modules/hm/yazi.nix ../../modules/hm/yazi.nix

View file

@ -1,8 +1,10 @@
{ pkgs, ... }: { nixosConfig, ... }:
with nixosConfig.nix-rice.lib;
let let
strPalette = pkgs.lib.nix-rice.palette.toRgbHex rec { inherit (nixosConfig.nix-rice) rice;
inherit (pkgs.rice.colorPalette) normal bright primary; strPalette = palette.toRgbHex rec {
dim = pkgs.rice.colorPalette.dark; inherit (rice.colorPalette) normal bright primary;
dim = rice.colorPalette.dark;
cursor = { cursor = {
cursor = normal.white; cursor = normal.white;
text = normal.black; text = normal.black;
@ -23,7 +25,7 @@ let
in in
{ {
# Include fonts packages # Include fonts packages
home.packages = [ pkgs.rice.font.monospace.package ]; home.packages = [ rice.font.monospace.package ];
programs.alacritty = { programs.alacritty = {
enable = true; enable = true;
settings = { settings = {
@ -41,10 +43,10 @@ in
}; };
scrolling.history = 3000; scrolling.history = 3000;
font = { font = {
normal.family = pkgs.rice.font.monospace.name; normal.family = rice.font.monospace.name;
inherit (pkgs.rice.font.monospace) size; inherit (rice.font.monospace) size;
}; };
window.opacity = pkgs.rice.opacity; window.opacity = rice.opacity;
mouse = { mouse = {
# hide_when_typing = true; # hide_when_typing = true;
hints.modifiers = "Control"; hints.modifiers = "Control";

View file

@ -2,6 +2,6 @@
{ {
home.packages = builtins.attrValues { home.packages = builtins.attrValues {
# inherit (pkgs) calibre; # inherit (pkgs) calibre;
inherit (pkgs.unstable_pkgs) mangal; inherit (pkgs) mangal;
}; };
} }

View file

@ -1,4 +1,4 @@
{ pkgs, ... }: { pkgs, ... }:
{ {
home.packages = [ (pkgs.unstable_pkgs.blender.override { cudaSupport = true; }) ]; home.packages = [ (pkgs.blender.override { cudaSupport = true; }) ];
} }

View file

@ -1,84 +0,0 @@
{ pkgs, lib, ... }:
let
xsetroot = "${pkgs.xorg.xsetroot}/bin/xsetroot";
monitorPages = [
""
""
""
""
""
""
""
""
""
""
];
monitorPagesString = lib.strings.concatStringsSep " " monitorPages;
monitorSetupScript = pkgs.writeShellScript "monitorSetupScript" ''
for monitor in $(bspc query -M --names); do
bspc monitor $monitor -d ${monitorPagesString}
done
${pkgs.autorandr}/bin/autorandr -c || true
systemctl --user restart polybar # Restart polybar
systemctl --user restart kdeconnect-indicator # Restart polybar
'';
strPalette = pkgs.lib.nix-rice.palette.toRGBHex pkgs.rice.colorPalette;
in
{
imports = [
./picom.nix
./polybar.nix
./sxhkd.nix
./update_background.nix
./xidlehook.nix
./dunst.nix
];
home.packages = builtins.attrValues {
inherit (pkgs)
arandr
blueman
dmenu
keyboard-switch
;
};
xsession.windowManager.bspwm = {
enable = true;
settings = {
border_width = 1;
border_radius = 8;
window_gap = 2;
split_ratio = 0.5;
top_padding = 0;
bottom_padding = 0;
right_padding = 0;
left_padding = 0;
borderless_monocle = true;
gapless_monocle = false;
normal_border_color = strPalette.normal.blue;
focused_border_color = strPalette.bright.red;
};
# monitors = builtins.foldl' (acc: monitor: acc // { ${monitor} = monitorPages; }) { } monitors;
rules = {
"*" = {
follow = true;
};
"Zathura" = {
state = "tiled";
};
"Yad" = {
state = "floating";
};
};
startupPrograms = [
"${monitorSetupScript}" # Setup monitors
"${xsetroot} -solid black -cursor_name left_ptr" # Set cursor
"${pkgs.update-background}/bin/update-background" # Set background
];
};
services = {
network-manager-applet.enable = true;
blueman-applet.enable = true;
};
}

View file

@ -1,6 +1,7 @@
{ pkgs, lib, ... }: { pkgs, lib, nixosConfig, ... }:
with nixosConfig.nix-rice.lib;
let let
strPalette = pkgs.lib.nix-rice.palette.toRgbHex pkgs.rice.colorPalette; strPalette = palette.toRgbHex nixosConfig.nix-rice.rice.colorPalette;
fmtString = str: "'${str}'"; fmtString = str: "'${str}'";
in in
{ {

View file

@ -1,4 +1,4 @@
{ pkgs, ... }: { pkgs, ... }:
{ {
home.packages = builtins.attrValues { inherit (pkgs.unstable_pkgs.jetbrains) datagrip jdk; }; home.packages = builtins.attrValues { inherit (pkgs.jetbrains) datagrip jdk; };
} }

View file

@ -19,7 +19,7 @@
pkgs.k9s pkgs.k9s
pkgs.awscli2 pkgs.awscli2
pkgs.lens pkgs.lens
pkgs.unstable_pkgs.kubevirt pkgs.kubevirt
]; ];
}; };
} }

View file

@ -1,26 +1,24 @@
{ pkgs, ... }: { pkgs, nixosConfig, ... }:
with nixosConfig.nix-rice.lib;
let let
inherit (pkgs.lib) nix-rice; inherit (nixosConfig.nix-rice) rice;
strPalette = nix-rice.palette.toRGBHex pkgs.rice.colorPalette; strPalette = palette.toRGBHex rice.colorPalette;
in in
{ {
home.packages = builtins.attrValues { home.packages = builtins.attrValues {
inherit (pkgs) dunst; inherit (pkgs) dunst;
inherit (pkgs.rice.font.normal) package; inherit (rice.font.normal) package;
}; };
services.dunst = { services.dunst = {
enable = true; enable = true;
iconTheme = { iconTheme = { package = pkgs.qogir-icon-theme; name = "Qogir"; };
package = pkgs.qogir-icon-theme;
name = "Qogir";
};
settings = { settings = {
global = { global = {
browser = "${pkgs.xdg-utils}/bin/xdg-open"; browser = "${pkgs.xdg-utils}/bin/xdg-open";
corner_radius = 10; corner_radius = 10;
dmenu = "${pkgs.rofi}/bin/rofi -dmenu -p dunst:"; dmenu = "${pkgs.rofi}/bin/rofi -dmenu -p dunst:";
follow = "keyboard"; follow = "keyboard";
font = "${pkgs.rice.font.normal.name} 10"; font = "${rice.font.normal.name} 10";
frame_color = strPalette.normal.blue; frame_color = strPalette.normal.blue;
frame_width = 1; frame_width = 1;
height = 320; height = 320;
@ -28,7 +26,7 @@ in
notification_limit = 10; notification_limit = 10;
offset = "7x7"; offset = "7x7";
separator_color = strPalette.normal.blue; separator_color = strPalette.normal.blue;
transparency = 100 - nix-rice.float.round (pkgs.rice.opacity * 100); transparency = 100 - nix-rice.float.round (rice.opacity * 100);
width = "(0, 320)"; width = "(0, 320)";
}; };
urgency_low = { urgency_low = {

View file

@ -1,8 +1,6 @@
{ pkgs, ... }: { pkgs, ... }:
{ {
fonts.fontconfig = { fonts.fontconfig.enable = true;
enable = true;
};
home.packages = builtins.attrValues { home.packages = builtins.attrValues {
inherit (pkgs) inherit (pkgs)
dejavu_fonts dejavu_fonts

View file

@ -1,8 +1,8 @@
{ pkgs, ... }: { pkgs, nixosConfig, ... }:
{ {
gtk = { gtk = {
enable = true; enable = true;
font = pkgs.rice.font.normal; font = nixosConfig.nix-rice.rice.font.normal;
iconTheme = { iconTheme = {
package = pkgs.qogir-icon-theme; package = pkgs.qogir-icon-theme;
name = "Qogir-dark"; name = "Qogir-dark";

View file

@ -15,7 +15,6 @@
}; };
programs.helix = { programs.helix = {
enable = true; enable = true;
package = pkgs.unstable_pkgs.helix;
languages.language = [ languages.language = [
{ {
name = "nix"; name = "nix";

View file

@ -1,6 +1,9 @@
{ nixosConfig, pkgs, ... }: { nixosConfig, pkgs, ... }:
with nixosConfig.nix-rice.lib;
let
strPalette = palette.toRgbaShortHex nixosConfig.nix-rice.rice.colorPalette;
in
{ {
imports = [ imports = [
./kitty.nix ./kitty.nix
./nautilus.nix ./nautilus.nix
@ -26,7 +29,7 @@
swaylock swaylock
swww swww
# walker # walker
way-lockscreen wl-lockscreen
waybar waybar
wl-clipboard wl-clipboard
wl-clipedit wl-clipedit
@ -50,259 +53,255 @@
}; };
xdg.configFile."hypr/hyprland.conf" = { xdg.configFile."hypr/hyprland.conf" = {
text = text = ''
let #
strPalette = pkgs.lib.nix-rice.palette.toRgbaShortHex pkgs.rice.colorPalette; # Please note not all available settings / options are set here.
in # For a full list, see the wiki
'' #
#
# Please note not all available settings / options are set here.
# For a full list, see the wiki
#
# See https://wiki.hyprland.org/Configuring/Monitors/ # See https://wiki.hyprland.org/Configuring/Monitors/
# monitor=name,resolution,position,scale # monitor=name,resolution,position,scale
monitor=,preferred,auto,auto monitor=,preferred,auto,auto
monitor=Unknown-1,disable monitor=Unknown-1,disable
${ ${
if nixosConfig.networking.hostName == "thor" then if nixosConfig.networking.hostName == "thor" then
'' ''
monitor=DP-3,preferred,1080x420,auto monitor=DP-3,preferred,1080x420,auto
monitor=HDMI-A-1,preferred,0x0,auto,transform,3 monitor=HDMI-A-1,preferred,0x0,auto,transform,3
'' ''
else if nixosConfig.networking.hostName == "odin" then else if nixosConfig.networking.hostName == "odin" then
'' ''
monitor=eDP-1,preferred,320x1440,1 monitor=eDP-1,preferred,320x1440,1
monitor=DP-1,preferred,0x0,1 monitor=DP-1,preferred,0x0,1
'' ''
else else
"" ""
}
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
# Execute your favorite apps at launch
exec-once = ${
if nixosConfig.networking.hostName == "thor" then "xrandr --output DP-2 --primary" else "true"
} & swww init & nm-applet & blueman-applet & systemctl --user start hyprland-login.target
# Source a file (multi-file configs)
# source = ~/.config/hypr/myColors.conf
# Some default env vars.
env = XCURSOR_SIZE,24
# For all categories, see https://wiki.hyprland.org/Configuring/Variables/
input {
kb_layout = ${if nixosConfig.networking.hostName == "thor" then "us,it,us" else "it,us,us"}
kb_variant = ,,colemak
kb_model =
kb_options = grp:menu_toggle,compose:rctrl
kb_rules =
numlock_by_default = true
follow_mouse = 2
touchpad {
natural_scroll = yes
}
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
}
$LAPTOP_KEYBOARD_ENABLED = true
device {
name = at-translated-set-2-keyboard
enabled = $LAPTOP_KEYBOARD_ENABLED
}
device {
name=keychron-k1-max-keyboard
kb_layout=us
}
device {
name=keychron-k1-max-keyboard-2
kb_layout=us
}
general {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
gaps_in = 1
gaps_out = 2
border_size = 2
col.active_border = rgba(${strPalette.normal.yellow}) rgba(${strPalette.normal.red}) 45deg
col.inactive_border = rgba(${strPalette.bright.black})
layout = dwindle
} }
misc {
disable_hyprland_logo = true
}
# See https://wiki.hyprland.org/Configuring/Keywords/ for more decoration {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
# Execute your favorite apps at launch rounding = 10
exec-once = ${
if nixosConfig.networking.hostName == "thor" then "xrandr --output DP-2 --primary" else "true"
} & swww init & nm-applet & blueman-applet & systemctl --user start hyprland-login.target
# Source a file (multi-file configs) blur {
# source = ~/.config/hypr/myColors.conf enabled = true
size = 3
# Some default env vars. passes = 1
env = XCURSOR_SIZE,24 new_optimizations = true
# For all categories, see https://wiki.hyprland.org/Configuring/Variables/
input {
kb_layout = ${if nixosConfig.networking.hostName == "thor" then "us,it,us" else "it,us,us"}
kb_variant = ,,colemak
kb_model =
kb_options = grp:menu_toggle,compose:rctrl
kb_rules =
numlock_by_default = true
follow_mouse = 2
touchpad {
natural_scroll = yes
}
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
}
$LAPTOP_KEYBOARD_ENABLED = true
device {
name = at-translated-set-2-keyboard
enabled = $LAPTOP_KEYBOARD_ENABLED
}
device {
name=keychron-k1-max-keyboard
kb_layout=us
}
device {
name=keychron-k1-max-keyboard-2
kb_layout=us
}
general {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
gaps_in = 1
gaps_out = 2
border_size = 2
col.active_border = rgba(${strPalette.normal.yellow}) rgba(${strPalette.normal.red}) 45deg
col.inactive_border = rgba(${strPalette.bright.black})
layout = dwindle
} }
misc { drop_shadow = yes
disable_hyprland_logo = true shadow_range = 4
} shadow_render_power = 3
col.shadow = rgba(1a1a1aee)
}
decoration { animations {
# See https://wiki.hyprland.org/Configuring/Variables/ for more enabled = yes
rounding = 10 # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
blur { bezier = myBezier, 0.05, 0.9, 0.1, 1.05
enabled = true
size = 3
passes = 1
new_optimizations = true
}
drop_shadow = yes animation = windows, 1, 7, myBezier
shadow_range = 4 animation = windowsOut, 1, 7, default, popin 80%
shadow_render_power = 3 animation = border, 1, 10, default
col.shadow = rgba(1a1a1aee) animation = borderangle, 1, 8, default
} animation = fade, 1, 7, default
animation = workspaces, 1, 6, default
}
animations { dwindle {
enabled = yes # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
preserve_split = yes # you probably want this
}
# Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more master {
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
new_status = master
}
bezier = myBezier, 0.05, 0.9, 0.1, 1.05 gestures {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
workspace_swipe = true
}
animation = windows, 1, 7, myBezier # Example per-device config
animation = windowsOut, 1, 7, default, popin 80% # See https://wiki.hyprland.org/Configuring/Keywords/#executing for more
animation = border, 1, 10, default # device:epic-mouse-v1 {
animation = borderangle, 1, 8, default # sensitivity = -0.5
animation = fade, 1, 7, default # }
animation = workspaces, 1, 6, default
}
dwindle { # Example windowrule v1
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more # windowrule = float, ^(kitty)$
pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below # Example windowrule v2
preserve_split = yes # you probably want this # windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
} # See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
master {
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
new_status = master
}
gestures {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
workspace_swipe = true
}
# Example per-device config
# See https://wiki.hyprland.org/Configuring/Keywords/#executing for more
# device:epic-mouse-v1 {
# sensitivity = -0.5
# }
# Example windowrule v1
# windowrule = float, ^(kitty)$
# Example windowrule v2
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
# See https://wiki.hyprland.org/Configuring/Keywords/ for more # See https://wiki.hyprland.org/Configuring/Keywords/ for more
# $mainMod = SUPER # $mainMod = SUPER
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more # Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
bind = SUPER, RETURN, exec, kitty bind = SUPER, RETURN, exec, kitty
bind = SUPER, W, killactive, bind = SUPER, W, killactive,
bind = SUPER, M, exec, way-lockscreen bind = SUPER, M, exec, wl-lockscreen
bind = SUPER_ALT_L, Q, exit, bind = SUPER_ALT_L, Q, exit,
bind = SUPER, E, exec, nautilus bind = SUPER, E, exec, nautilus
bind = SUPER, L, exec, env -u WAYLAND_DISPLAY logseq bind = SUPER, L, exec, env -u WAYLAND_DISPLAY logseq
bind = SUPER_SHIFT, E, exec, nemo bind = SUPER_SHIFT, E, exec, nemo
bind = SUPER, V, togglefloating, bind = SUPER, V, togglefloating,
bind = SUPER, SPACE, exec, sirula bind = SUPER, SPACE, exec, sirula
bind = SUPER, F, fullscreen, bind = SUPER, F, fullscreen,
bind = SUPER, P, pseudo, # dwindle bind = SUPER, P, pseudo, # dwindle
bind = SUPER, J, togglesplit, # dwindle bind = SUPER, J, togglesplit, # dwindle
bind = SUPER ALT, E, exec, wofi-emoji bind = SUPER ALT, E, exec, wofi-emoji
bind = SUPER ALT, P, exec, wl-clipedit bind = SUPER ALT, P, exec, wl-clipedit
bind = SUPER, B, exec, wl-update-background bind = SUPER, B, exec, wl-update-background
bind = ,Print, exec, grimblast copy bind = ,Print, exec, grimblast copy
bind = SHIFT, Print, exec, grimblast copy area bind = SHIFT, Print, exec, grimblast copy area
# Move focus to relative position # Move focus to relative position
bind = SUPER, left, movefocus, l bind = SUPER, left, movefocus, l
bind = SUPER, right, movefocus, r bind = SUPER, right, movefocus, r
bind = SUPER, up, movefocus, u bind = SUPER, up, movefocus, u
bind = SUPER, down, movefocus, d bind = SUPER, down, movefocus, d
# Move window to relative position # Move window to relative position
bind = SUPER_SHIFT, left, movewindow, l bind = SUPER_SHIFT, left, movewindow, l
bind = SUPER_SHIFT, right, movewindow, r bind = SUPER_SHIFT, right, movewindow, r
bind = SUPER_SHIFT, up, movewindow, u bind = SUPER_SHIFT, up, movewindow, u
bind = SUPER_SHIFT, down, movewindow, d bind = SUPER_SHIFT, down, movewindow, d
# Switch workspaces with mainMod + [0-9] # Switch workspaces with mainMod + [0-9]
bind = SUPER, 1, workspace, 1 bind = SUPER, 1, workspace, 1
bind = SUPER, 2, workspace, 2 bind = SUPER, 2, workspace, 2
bind = SUPER, 3, workspace, 3 bind = SUPER, 3, workspace, 3
bind = SUPER, 4, workspace, 4 bind = SUPER, 4, workspace, 4
bind = SUPER, 5, workspace, 5 bind = SUPER, 5, workspace, 5
bind = SUPER, 6, workspace, 6 bind = SUPER, 6, workspace, 6
bind = SUPER, 7, workspace, 7 bind = SUPER, 7, workspace, 7
bind = SUPER, 8, workspace, 8 bind = SUPER, 8, workspace, 8
bind = SUPER, 9, workspace, 9 bind = SUPER, 9, workspace, 9
bind = SUPER, 0, workspace, 10 bind = SUPER, 0, workspace, 10
# Move active window to a workspace with mainMod + SHIFT + [0-9] # Move active window to a workspace with mainMod + SHIFT + [0-9]
bind = SUPER SHIFT, 1, movetoworkspace, 1 bind = SUPER SHIFT, 1, movetoworkspace, 1
bind = SUPER SHIFT, 2, movetoworkspace, 2 bind = SUPER SHIFT, 2, movetoworkspace, 2
bind = SUPER SHIFT, 3, movetoworkspace, 3 bind = SUPER SHIFT, 3, movetoworkspace, 3
bind = SUPER SHIFT, 4, movetoworkspace, 4 bind = SUPER SHIFT, 4, movetoworkspace, 4
bind = SUPER SHIFT, 5, movetoworkspace, 5 bind = SUPER SHIFT, 5, movetoworkspace, 5
bind = SUPER SHIFT, 6, movetoworkspace, 6 bind = SUPER SHIFT, 6, movetoworkspace, 6
bind = SUPER SHIFT, 7, movetoworkspace, 7 bind = SUPER SHIFT, 7, movetoworkspace, 7
bind = SUPER SHIFT, 8, movetoworkspace, 8 bind = SUPER SHIFT, 8, movetoworkspace, 8
bind = SUPER SHIFT, 9, movetoworkspace, 9 bind = SUPER SHIFT, 9, movetoworkspace, 9
bind = SUPER SHIFT, 0, movetoworkspace, 10 bind = SUPER SHIFT, 0, movetoworkspace, 10
# Move workspace to monitor with mainMod + SHIFT + CTRL + [0-9] # Move workspace to monitor with mainMod + SHIFT + CTRL + [0-9]
bind = SUPER SHIFT CTRL, 1, movecurrentworkspacetomonitor, 0 bind = SUPER SHIFT CTRL, 1, movecurrentworkspacetomonitor, 0
bind = SUPER SHIFT CTRL, 2, movecurrentworkspacetomonitor, 1 bind = SUPER SHIFT CTRL, 2, movecurrentworkspacetomonitor, 1
bind = SUPER SHIFT CTRL, 3, movecurrentworkspacetomonitor, 2 bind = SUPER SHIFT CTRL, 3, movecurrentworkspacetomonitor, 2
bind = SUPER SHIFT CTRL, 4, movecurrentworkspacetomonitor, 3 bind = SUPER SHIFT CTRL, 4, movecurrentworkspacetomonitor, 3
bind = SUPER SHIFT CTRL, 5, movecurrentworkspacetomonitor, 4 bind = SUPER SHIFT CTRL, 5, movecurrentworkspacetomonitor, 4
bind = SUPER SHIFT CTRL, 6, movecurrentworkspacetomonitor, 5 bind = SUPER SHIFT CTRL, 6, movecurrentworkspacetomonitor, 5
bind = SUPER SHIFT CTRL, 7, movecurrentworkspacetomonitor, 6 bind = SUPER SHIFT CTRL, 7, movecurrentworkspacetomonitor, 6
bind = SUPER SHIFT CTRL, 8, movecurrentworkspacetomonitor, 7 bind = SUPER SHIFT CTRL, 8, movecurrentworkspacetomonitor, 7
bind = SUPER SHIFT CTRL, 9, movecurrentworkspacetomonitor, 8 bind = SUPER SHIFT CTRL, 9, movecurrentworkspacetomonitor, 8
bind = SUPER SHIFT CTRL, 0, movecurrentworkspacetomonitor, 9 bind = SUPER SHIFT CTRL, 0, movecurrentworkspacetomonitor, 9
bind = ALT, Tab, cyclenext bind = ALT, Tab, cyclenext
bind = ALT SHIFT, Tab, cyclenext, prev bind = ALT SHIFT, Tab, cyclenext, prev
# Scroll through existing workspaces with mainMod + scroll # Scroll through existing workspaces with mainMod + scroll
bind = SUPER, mouse_down, workspace, e+1 bind = SUPER, mouse_down, workspace, e+1
bind = SUPER, mouse_up, workspace, e-1 bind = SUPER, mouse_up, workspace, e-1
# Move/resize windows with mainMod + LMB/RMB and dragging # Move/resize windows with mainMod + LMB/RMB and dragging
bindm = SUPER, mouse:272, movewindow bindm = SUPER, mouse:272, movewindow
bindm = SUPER, mouse:273, resizewindow bindm = SUPER, mouse:273, resizewindow
bindel=, XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%+ bindel=, XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%+
bindel=, XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%- bindel=, XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%-
bindl=, XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle bindl=, XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
bind = SUPER ALT, M, exec, wpctl set-mute @DEFAULT_SOURCE@ toggle bind = SUPER ALT, M, exec, wpctl set-mute @DEFAULT_SOURCE@ toggle
bind = , XF86AudioNext, exec, playerctl next bind = , XF86AudioNext, exec, playerctl next
bind = , XF86AudioPlay, exec, playerctl play-pause bind = , XF86AudioPlay, exec, playerctl play-pause
bind = , XF86AudioPrev, exec, playerctl previous bind = , XF86AudioPrev, exec, playerctl previous
bind = SUPER ALT, Right, exec, playerctl next bind = SUPER ALT, Right, exec, playerctl next
bind = SUPER ALT, Down, exec, playerctl play-pause bind = SUPER ALT, Down, exec, playerctl play-pause
bind = SUPER ALT, Left, exec, playerctl previous bind = SUPER ALT, Left, exec, playerctl previous
bind = , XF86PowerOff, exec, wlogout bind = , XF86PowerOff, exec, wlogout
bind = , XF86MonBrightnessUp, exec, brillo -A 10 bind = , XF86MonBrightnessUp, exec, brillo -A 10
bind = , XF86MonBrightnessDown, exec, brillo -U 10 bind = , XF86MonBrightnessDown, exec, brillo -U 10
''; '';
}; };
} }

View file

@ -5,7 +5,7 @@ in
{ {
# TODO: switch to module on next release # TODO: switch to module on next release
home.packages = [ pkgs.unstable_pkgs.joshuto ]; home.packages = [ pkgs.joshuto ];
home.shellAliases."fm" = "joshuto --change-directory"; home.shellAliases."fm" = "joshuto --change-directory";
xdg.configFile = { xdg.configFile = {

View file

@ -1,5 +1,7 @@
{ pkgs, ... }: { pkgs, nixosConfig, ... }:
with nixosConfig.nix-rice.lib;
let let
inherit (nixosConfig.nix-rice) rice;
themeBuilder = themeBuilder =
palette: with palette; '' palette: with palette; ''
set-face global value rgb:${normal.magenta},default set-face global value rgb:${normal.magenta},default
@ -275,7 +277,7 @@ in
# THEME FILE # THEME FILE
xdg.configFile."kak/colors/nord.kak".text = themeBuilder ( xdg.configFile."kak/colors/nord.kak".text = themeBuilder (
pkgs.lib.nix-rice.palette.toRgbShortHex pkgs.rice.colorPalette palette.toRgbShortHex rice.colorPalette
); );
xdg.configFile."kak-lsp/kak-lsp.toml".text = '' xdg.configFile."kak-lsp/kak-lsp.toml".text = ''

View file

@ -1,7 +1,9 @@
{ pkgs, ... }: { nixosConfig, ... }:
with nixosConfig.nix-rice.lib;
let let
strPalette = pkgs.lib.nix-rice.palette.toRgbHex { inherit (nixosConfig.nix-rice) rice;
inherit (pkgs.rice.colorPalette) strPalette = palette.toRgbHex {
inherit (rice.colorPalette)
background background
foreground foreground
color0 color0
@ -31,7 +33,7 @@ in
enable_audio_bell = false; enable_audio_bell = false;
visual_bell_duration = toString 0.1; visual_bell_duration = toString 0.1;
update_check_interval = 0; update_check_interval = 0;
background_opacity = toString pkgs.rice.opacity; background_opacity = toString rice.opacity;
close_on_child_death = "yes"; close_on_child_death = "yes";
clipboard_control = "write-clipboard write-primary read-clipboard read-primary"; clipboard_control = "write-clipboard write-primary read-clipboard read-primary";
disable_ligatures = "never"; disable_ligatures = "never";
@ -44,6 +46,6 @@ in
"ctrl+shift+up" = "previous_window"; "ctrl+shift+up" = "previous_window";
"ctrl+shift+down" = "next_window"; "ctrl+shift+down" = "next_window";
}; };
font = pkgs.rice.font.monospace; font = rice.font.monospace;
}; };
} }

View file

@ -1,6 +1,8 @@
{ pkgs, ... }: { nixosConfig, ... }:
with nixosConfig.nix-rice.lib;
let let
strPalette = pkgs.lib.nix-rice.palette.toRgbShortHex pkgs.rice.colorPalette; inherit (nixosConfig.nix-rice) rice;
strPalette = palette.toRgbShortHex rice.colorPalette;
in in
{ {
programs.mangohud = { programs.mangohud = {

View file

@ -1,7 +1,6 @@
{ {
programs.nix-index = { programs.nix-index = {
enable = true; enable = true;
# package = pkgs.unstable_pkgs.nix-index;
enableBashIntegration = true; enableBashIntegration = true;
enableZshIntegration = true; enableZshIntegration = true;
}; };

View file

@ -4,9 +4,9 @@
, lib , lib
, ... , ...
}: }:
with nixosConfig.nix-rice.lib;
let let
inherit (pkgs.rice) colorPalette opacity; inherit (nixosConfig.nix-rice.rice) colorPalette opacity;
inherit (pkgs.lib) nix-rice;
alpha = 255 * opacity; alpha = 255 * opacity;
grep = "${pkgs.gnugrep}/bin/grep"; grep = "${pkgs.gnugrep}/bin/grep";
cut = "${pkgs.coreutils}/bin/cut"; cut = "${pkgs.coreutils}/bin/cut";
@ -62,27 +62,27 @@ let
}" }"
zsh -c 'rofi -show menu -modi "menu:rofi-power-menu --choices=shutdown/reboot/hibernate/logout"' zsh -c 'rofi -show menu -modi "menu:rofi-power-menu --choices=shutdown/reboot/hibernate/logout"'
''; '';
colors = nix-rice.palette.toARGBHex rec { colors = palette.toARGBHex rec {
normal = { normal = {
foreground = nix-rice.color.darken 10 colorPalette.foreground; foreground = color.darken 10 colorPalette.foreground;
background = nix-rice.color.setAlphaRgba alpha colorPalette.background; background = color.setAlphaRgba alpha colorPalette.background;
underline = colorPalette.normal.blue; underline = colorPalette.normal.blue;
}; };
active = { active = {
inherit (colorPalette) foreground; inherit (colorPalette) foreground;
background = nix-rice.color.setAlphaRgba alpha colorPalette.background; background = color.setAlphaRgba alpha colorPalette.background;
underline = colorPalette.normal.yellow; underline = colorPalette.normal.yellow;
}; };
selected = { selected = {
inherit (colorPalette) foreground; inherit (colorPalette) foreground;
background = nix-rice.color.setAlphaRgba alpha colorPalette.background; background = color.setAlphaRgba alpha colorPalette.background;
underline = colorPalette.bright.red; underline = colorPalette.bright.red;
}; };
inherit (colorPalette.normal) green red yellow; inherit (colorPalette.normal) green red yellow;
inherit (nix-rice.color) transparent; inherit (color) transparent;
orange = colorPalette.bright.red; orange = colorPalette.bright.red;
alert = orange; alert = orange;
}; };
@ -110,29 +110,22 @@ let
bottom.size = 0; bottom.size = 0;
}; };
font = [ font = [
"${pkgs.rice.font.monospace.name}:size=${toString pkgs.rice.font.monospace.size};2" "${rice.font.monospace.name}:size=${toString rice.font.monospace.size};2"
# "Font Awesome 6 Free:size=14;0" # "Font Awesome 6 Free:size=14;0"
# "Noto Color Emoji:size=2;2" # "Noto Color Emoji:size=2;2"
"Noto Sans Symbols2:size=${toString pkgs.rice.font.monospace.size};2" "Noto Sans Symbols2:size=${toString rice.font.monospace.size};2"
"Material Design Icons:size=${toString pkgs.rice.font.monospace.size};2" "Material Design Icons:size=${toString rice.font.monospace.size};2"
# "EmojiOne Color:size=${toString pkgs.rice.font.monospace.size};0" # "EmojiOne Color:size=${toString rice.font.monospace.size};0"
"Noto Sans CJK JP:size=${toString pkgs.rice.font.monospace.size};0" "Noto Sans CJK JP:size=${toString rice.font.monospace.size};0"
"Noto Sans CJK KR:size=${toString pkgs.rice.font.monospace.size};0" "Noto Sans CJK KR:size=${toString rice.font.monospace.size};0"
"Noto Sans CJK CN:size=${toString pkgs.rice.font.monospace.size};0" "Noto Sans CJK CN:size=${toString rice.font.monospace.size};0"
"Noto Sans CJK HK:size=${toString pkgs.rice.font.monospace.size};0" "Noto Sans CJK HK:size=${toString rice.font.monospace.size};0"
]; ];
enable-ipc = true; enable-ipc = true;
wm-restack = "bspwm"; wm-restack = "bspwm";
}; };
ramp = [ ramp = [ "" "" "" "" "" "" ];
""
""
""
""
""
""
];
in in
{ {
home.packages = builtins.attrValues { home.packages = builtins.attrValues {
@ -140,7 +133,7 @@ in
# emojione # emojione
# noto-fonts-emoji # noto-fonts-emoji
# font-awesome # font-awesome
inherit (pkgs.rice.font.monospace) package; inherit (rice.font.monospace) package;
}; };
services.polybar = { services.polybar = {
enable = true; enable = true;

View file

@ -14,44 +14,42 @@ in
{ {
home.packages = builtins.attrValues { home.packages = builtins.attrValues {
inherit (pkgs) inherit (pkgs)
ardour
breeze-icons
carla
mixxx
rnnoise
#mamba
# zrythm
# Plugins # Plugins
aeolus
artyFX
autotalent
boops
calf
cardinal
fluidsynth
geonkick
giada
lsp-plugins
samplv1
sfizz
surge
surge-XT
talentedhack
vocproc
x42-plugins
zita-at1
zyn-fusion
zynaddsubfx
# helm # helm
# noise-repellent # noise-repellent
# speech-denoiser # speech-denoiser
# stochas # stochas
# sunvox # sunvox
# tunefish # tunefish
# zrythm
#mamba
aeolus
ardour
artyFX
autotalent
boops
breeze-icons
calf
cardinal
carla
fluidsynth
geonkick
giada
lsp-plugins
mixxx
rnnoise
samplv1
sfizz
surge
surge-XT
talentedhack
vital
vocproc
x42-plugins
zita-at1
zyn-fusion
zynaddsubfx
; ;
inherit (pkgs.unstable_pkgs) vital;
}; };
home.sessionVariables = variables; home.sessionVariables = variables;

View file

@ -2,6 +2,6 @@
{ {
home.packages = builtins.attrValues { home.packages = builtins.attrValues {
inherit (pkgs) python3; inherit (pkgs) python3;
inherit (pkgs.unstable_pkgs.jetbrains) pycharm-professional jdk; inherit (pkgs.jetbrains) pycharm-professional jdk;
}; };
} }

View file

@ -1,4 +1,8 @@
{ pkgs, ... }: { pkgs, nixosConfig, ... }:
with nixosConfig.nix-rice.lib;
let
inherit (nixosConfig.nix-rice) rice;
in
{ {
home.packages = builtins.attrValues { home.packages = builtins.attrValues {
@ -14,7 +18,7 @@
programs.rofi = { programs.rofi = {
enable = true; enable = true;
location = "center"; location = "center";
font = "${pkgs.rice.font.monospace.name} ${toString pkgs.rice.font.monospace.size}"; font = "${rice.font.monospace.name} ${toString rice.font.monospace.size}";
plugins = [ pkgs.rofi-calc ]; plugins = [ pkgs.rofi-calc ];
extraConfig = { extraConfig = {
modi = "drun,run,ssh,window,calc"; modi = "drun,run,ssh,window,calc";

View file

@ -7,11 +7,11 @@
events = [ events = [
{ {
event = "before-sleep"; event = "before-sleep";
command = "${pkgs.way-lockscreen}/bin/way-lockscreen"; command = "${pkgs.wl-lockscreen}/bin/wl-lockscreen";
} }
{ {
event = "lock"; event = "lock";
command = "${pkgs.way-lockscreen}/bin/way-lockscreen"; command = "${pkgs.wl-lockscreen}/bin/wl-lockscreen";
} }
]; ];
timeouts = [ timeouts = [
@ -22,7 +22,7 @@
} }
{ {
timeout = 120; timeout = 120;
command = "${pkgs.brillo}/bin/brillo -e -S 0; ${pkgs.way-lockscreen}/bin/way-lockscreen"; command = "${pkgs.brillo}/bin/brillo -e -S 0; ${pkgs.wl-lockscreen}/bin/wl-lockscreen";
resumeCommand = "${pkgs.brillo}/bin/brillo -e -S 100"; resumeCommand = "${pkgs.brillo}/bin/brillo -e -S 100";
} }
]; ];

View file

@ -1,131 +0,0 @@
{ pkgs, lib, ... }:
{
imports = [
# ./alacritty.nix
./kitty.nix
# ./nautilus.nix
./nemo.nix
./terminator.nix
# ./thunar.nix
./yazi.nix
];
home.packages = builtins.attrValues {
inherit (pkgs)
bc# required by bsp-layout
bsp-layout
clipedit
lockscreen
terminator
;
};
services.sxhkd =
let
primaryTerminal = "kitty";
secondaryTerminal = "terminator";
fileManager =
let
ya = pkgs.writeShellScript "ya" ''
tmp="$(mktemp -t "yazi-cwd.XXXXX")"
yazi --cwd-file="$tmp"
if cwd="$(cat -- "$tmp")" && [ -n "$cwd" ] && [ "$cwd" != "$PWD" ]; then
cd -- "$cwd"
fi
rm -f -- "$tmp"
'';
in
"kitty -e bash ${ya}";
secondaryFileManager = "nemo";
emojiChooser = "rofimoji --skin-tone light -a copy";
windowSwitcher = "rofi -show window";
arandr = "${pkgs.arandr}/bin/arandr";
passwordChoser = "rofi-rbw";
notify = "${pkgs.libnotify}/bin/notify-send";
pamixer = "${pkgs.pamixer}/bin/pamixer";
playerctl = "${pkgs.playerctl}/bin/playerctl";
xbacklight = "${pkgs.xorg.xbacklight}/bin/xbacklight";
resetBspwm = pkgs.writeShellScript "resetBspwm" ''
bspc wm -r
for p in {top,bottom,left,right}; do bspc config -m any ''${p}_padding 0; done # Reset padding
systemctl --user restart polybar # Restart polybar
${notify} "BSPWM restarted"
'';
moveAllNodesToPrimary = pkgs.writeShellScript "moveAllNodesToPrimary" ''
comm -23 <(bspc query -N | sort) <(bspc query -m primary -N | sort) | while read n; do bspc node $n -m primary; done
'';
notifyVolume = pkgs.writeShellScript "notifyVolume" ''
PATH=$PATH:"${
lib.makeBinPath [
pkgs.coreutils
pkgs.pamixer
]
}"
sink=`pamixer --get-default-sink | tail -n 1| sed -E 's/.+"(.+)"$/\1/'`
muted=`pamixer --get-mute`
volume=`pamixer --get-volume`
if [[ $muted == "true" ]]; then
${notify} -r 1 -h "int:value:0" "Muted" "$sink"
else
${notify} -r 1 -h "int:value:$volume" "Volume $volume%" "$sink"
fi
'';
notifyBrightness = pkgs.writeShellScript "notifyBrightness" ''
level=`printf "%.0f" $(${xbacklight} -get)`
${notify} -r 2 -h "int:value:$level" "Luminosità $level"
'';
powermenu = pkgs.writeShellScript "powermenu" ''
PATH=$PATH:"${
lib.makeBinPath [
pkgs.rofi
pkgs.rofi-power-menu
]
}"
rofi -show menu -modi "menu:rofi-power-menu --choices=shutdown/reboot/hibernate/logout"
'';
in
{
enable = true;
keybindings = {
"{,shift+}Print" = "${pkgs.gnome-screenshot}/bin/gnome-screenshot {-i,-a}";
"XF86Audio{LowerVolume,Mute,RaiseVolume}" = "${pamixer} {-d 2 -u,-t,-i 2 -u} && ${notifyVolume}";
"XF86Audio{Next,Play,Prev}" = "${playerctl} {next,play-pause,previous}";
"XF86MonBrightness{Up,Down}" = "${xbacklight} -{inc,dec} 10 && ${notifyBrightness}";
"XF86PowerOff" = toString powermenu;
"alt + Tab" = windowSwitcher;
"button10" = windowSwitcher;
"super + Escape" = "pkill -USR1 -x sxhkd";
"super + alt + e" = emojiChooser;
"super + alt + i" = passwordChoser;
"super + alt + m" = "lockscreen";
"super + alt + o" = "${moveAllNodesToPrimary}";
"super + alt + p" = "${arandr}";
"super + alt + r" = "${resetBspwm}";
"super + alt + shift + {h,j,k,l}" = "bspc node -z {right -20 0,top 0 20,bottom 0 -20,left 20 0}";
"super + alt + {Right,Down,Left}" = "${playerctl} {next,play-pause,previous}";
"super + alt + {h,j,k,l}" = "bspc node -z {left -20 0,bottom 0 20,top 0 -20,right 20 0}";
"super + b" = "${pkgs.update-background}/bin/update-background";
"super + bracket{left,right}" = "bspc desktop -f {prev,next}.local";
"super + ctrl + shift + space" = "bspc query -N -d | xargs -I id -n 1 bspc node id -p cancel";
"super + ctrl + space" = "bspc node -p cancel";
"super + ctrl + {1-9}" = "bspc node -o 0.{1-9}";
"super + ctrl + {h,j,k,l}" = "bspc node -p {west,south,north,east}";
"super + e {_,+shift}" = "{${fileManager},${secondaryFileManager}}";
"super + g" = "bspc node -s biggest";
"super + m" = "bspc desktop -l next";
"super + n {_, + shift}" = "bsp-layout {next, previous}";
"super + shift + ctrl + d" = "rofi -show ssh";
"super + shift + p" = "clipedit";
"super + shift + {a,d}" = "bspc node @/ -C {forward,backward}";
"super + shift + {h,j,k,l}" = ''dir={west,south,north,east}; bspc node -s "$dir.local" --follow || bspc node -m "$dir" --follow'';
"super + {Left,Down,Up,Right}" = "bspc node -v {-20 0,0 20,0 -20,20 0}";
"super + {_,shift + } Return" = "{${primaryTerminal} , ${secondaryTerminal}}";
"super + {_,shift + } c" = "bspc node -f {next,prev}.local";
"super + {_,shift + } space" = "rofi -show {drun,run}";
"super + {_,shift + } w" = "bspc node -{c,k}";
"super + {_,shift + }{1-9,0}" = "bspc {desktop -f,node -d} 'focused:^{1-9,10}'";
"super + {h,j,k,l}" = "dir={west,south,north,east}; bspc node -f $dir || bspc monitor -f $dir";
"super + {o,i}" = "bspc wm -h off;bspc node {older,newer} -f;bspc wm -h on";
"super + {t,shift + t,s,f}" = "bspc node -t {tiled,pseudo_tiled,floating,fullscreen}";
};
};
}

View file

@ -1,11 +1,13 @@
{ pkgs, ... }: { pkgs, nixosConfig, ... }:
with nixosConfig.nix-rice.lib;
let let
strPalette = pkgs.lib.nix-rice.palette.toRgbHex { inherit (nixosConfig.nix-rice) rice;
inherit (pkgs.rice.colorPalette) normal bright dark; strPalette = palette.toRgbHex {
inherit (pkgs.rice.colorPalette.primary) background foreground; inherit (rice.colorPalette) normal bright dark;
inherit (rice.colorPalette.primary) background foreground;
}; };
opacity = toString pkgs.rice.opacity; opacity = toString rice.opacity;
font = pkgs.rice.font.monospace; font = rice.font.monospace;
colorString = colorString =
normal: bright: normal: bright:
builtins.concatStringsSep ":" [ builtins.concatStringsSep ":" [

View file

@ -1,7 +1,9 @@
{ pkgs, ... }: { nixosConfig, ... }:
with nixosConfig.nix-rice.lib;
let let
strPalette = pkgs.lib.nix-rice.palette.toRGBHex pkgs.rice.colorPalette; inherit (nixosConfig.nix-rice) rice;
font = pkgs.rice.font.normal; strPalette = palette.toRGBHex rice.colorPalette;
font = rice.font.normal;
in in
{ {
services.twmn = { services.twmn = {
@ -17,7 +19,7 @@ in
animation.bounce.enable = false; animation.bounce.enable = false;
color = strPalette.primary.background; color = strPalette.primary.background;
height = 32; height = 32;
opacity = pkgs.lib.nix-rice.float.round (pkgs.rice.opacity * 100); opacity = float.round (rice.opacity * 100);
offset = { offset = {
x = -20; x = -20;
y = 50; y = 50;

View file

@ -1,17 +1,17 @@
{ pkgs, ... }: { pkgs, nixosConfig, ... }:
with nixosConfig.nix-rice.lib;
let let
inherit (pkgs.rice) colorPalette; inherit (nixosConfig.nix-rice.rice) colorPalette font;
inherit (pkgs.lib) nix-rice;
alpha = 0.9; alpha = 0.9;
custom = nix-rice.palette.toRGBHex { custom = palette.toRGBHex {
inherit (colorPalette.primary) background foreground; inherit (colorPalette.primary) background foreground;
alpha_background = nix-rice.color.setAlphaRgba alpha colorPalette.primary.background; alpha_background = color.setAlphaRgba alpha colorPalette.primary.background;
primary_accent = colorPalette.normal.blue; primary_accent = colorPalette.normal.blue;
secondary_accent = colorPalette.normal.cyan; secondary_accent = colorPalette.normal.cyan;
tertiary_accent = colorPalette.primary.yellow; tertiary_accent = colorPalette.primary.yellow;
palette = { palette = {
primary_background_rgba = colorPalette.primary.background; primary_background_rgba = colorPalette.primary.background;
tertiary_background_hex = nix-rice.color.setAlphaRgba alpha colorPalette.primary.background; tertiary_background_hex = color.setAlphaRgba alpha colorPalette.primary.background;
}; };
}; };
swaync-client = "${pkgs.swaynotificationcenter}/bin/swaync-client"; swaync-client = "${pkgs.swaynotificationcenter}/bin/swaync-client";
@ -184,7 +184,7 @@ in
* { * {
border: none; border: none;
border-radius: 0px; border-radius: 0px;
font-family: ${pkgs.rice.font.monospace.name}; font-family: ${font.monospace.name};
font-size: 10px; font-size: 10px;
min-height: 0; min-height: 0;
} }

View file

@ -1,20 +1,5 @@
{ pkgs, ... }: { pkgs, ... }: {
let home.packages = [ pkgs.wl-update-background ];
update_time = "10m";
backgrounds_directory = "$HOME/Immagini/Sfondi/1080+/1440+";
update_script = pkgs.writeShellScriptBin "wl-update-background" ''
set -e
if [ $# -eq 0 ]; then
image=`${pkgs.findutils}/bin/find ${backgrounds_directory} -type f | ${pkgs.gnugrep}/bin/grep -v "/\." | ${pkgs.coreutils}/bin/shuf -n 1`
else
image="$1"
fi
echo "image: $image"
${pkgs.swww}/bin/swww img "$image"
'';
in
{
home.packages = [ update_script ];
systemd.user.services."wl-update-background" = { systemd.user.services."wl-update-background" = {
Unit = { Unit = {
@ -29,7 +14,7 @@ in
Service = { Service = {
Type = "oneshot"; Type = "oneshot";
IOSchedulingClass = "idle"; IOSchedulingClass = "idle";
ExecStart = "${update_script}/bin/wl-update-background"; ExecStart = "${pkgs.wl-update-background}/bin/wl-update-background";
}; };
}; };
@ -38,7 +23,7 @@ in
Description = "Set random desktop background using swww"; Description = "Set random desktop background using swww";
}; };
Timer = { Timer = {
OnUnitActiveSec = update_time; OnUnitActiveSec = "10m";
}; };
Install = { Install = {
WantedBy = [ "timers.target" ]; WantedBy = [ "timers.target" ];

View file

@ -1,8 +1,8 @@
{ pkgs, ... }: { pkgs, nixosConfig, ... }:
with nixosConfig.nix-rice.lib;
let let
strPalette = pkgs.lib.nix-rice.palette.toRgbHex { inherit (nixosConfig.nix-rice) rice;
inherit (pkgs.rice.colorPalette) normal bright primary; strPalette = palette.toRgbHex rice.colorPalette;
};
in in
{ {
home.file.".Xresources" = { home.file.".Xresources" = {
@ -30,8 +30,8 @@ in
*.color14: ${strPalette.bright.cyan} *.color14: ${strPalette.bright.cyan}
*.color15: ${strPalette.bright.white} *.color15: ${strPalette.bright.white}
xterm*faceName: ${pkgs.rice.font.monospace.name} xterm*faceName: ${rice.font.monospace.name}
xterm*faceSize: ${toString pkgs.rice.font.monospace.size} xterm*faceSize: ${toString rice.font.monospace.size}
''; '';
onChange = "${pkgs.xorg.xrdb}/bin/xrdb -merge ~/.Xresources "; onChange = "${pkgs.xorg.xrdb}/bin/xrdb -merge ~/.Xresources ";
}; };

View file

@ -15,7 +15,6 @@
enable = true; enable = true;
enableBashIntegration = true; enableBashIntegration = true;
enableZshIntegration = true; enableZshIntegration = true;
package = pkgs.unstable_pkgs.yazi;
settings = { settings = {
manager = { manager = {
sort_by = "natural"; sort_by = "natural";

View file

@ -1,6 +1,8 @@
{ pkgs, ... }: { nixosConfig, ... }:
with nixosConfig.nix-rice.lib;
let let
strPalette = pkgs.lib.nix-rice.palette.toRgbHex pkgs.rice.colorPalette; inherit (nixosConfig.nix-rice) rice;
strPalette = palette.toRgbHex rice.colorPalette;
in in
{ {
programs.zathura = { programs.zathura = {
@ -11,7 +13,7 @@ in
options = { options = {
# completion-bg = strPalette.bright.black; # completion-bg = strPalette.bright.black;
# default-bg = strPalette.normal.black; # default-bg = strPalette.normal.black;
font = "${pkgs.rice.font.normal.name} 10"; font = "${rice.font.normal.name} 10";
# inputbar-bg = strPalette.bright.black; # inputbar-bg = strPalette.bright.black;
# inputbar-fg = strPalette.normal.cyan; # inputbar-fg = strPalette.normal.cyan;
page-padding = 10; page-padding = 10;
@ -59,6 +61,5 @@ in
# recolor = true; # recolor = true;
recolor-keephue = true; # keep original color recolor-keephue = true; # keep original color
}; };
}; };
} }

View file

@ -1,12 +1,10 @@
{ pkgs, ... }: { nixosConfig, ... }:
with nixosConfig.nix-rice.lib;
let let
strPalette = pkgs.lib.nix-rice.palette.toRgbHex pkgs.rice.colorPalette; strPalette = palette.toRgbHex nixosConfig.nix-rice.rice.colorPalette;
in in
{ {
programs.zellij = { programs.zellij.enable = true;
enable = true;
package = pkgs.unstable_pkgs.zellij;
};
home.shellAliases = { home.shellAliases = {
"ze" = "zellij"; "ze" = "zellij";

View file

@ -1,5 +1,4 @@
{ pkgs { config
, config
, lib , lib
, ... , ...
}: }:
@ -26,7 +25,6 @@
}; };
services.garage = { services.garage = {
package = pkgs.unstable_pkgs.garage;
enable = true; enable = true;
settings = { settings = {
replication_mode = 1; replication_mode = 1;

View file

@ -2,7 +2,6 @@
{ {
programs.hyprland = { programs.hyprland = {
enable = true; enable = true;
# package = pkgs.unstable_pkgs.hyprland;
# enableNvidiaPatches = builtins.elem "nvidia" config.services.xserver.videoDrivers; # removed in 24.x # enableNvidiaPatches = builtins.elem "nvidia" config.services.xserver.videoDrivers; # removed in 24.x
xwayland.enable = true; xwayland.enable = true;
}; };

View file

@ -1,10 +1,11 @@
self: super: { pkgs, config, ... }:
with super.lib.nix-rice; with config.nix-rice.lib;
let let
theme = kitty-themes.getThemeByName "Nightfox"; theme = kitty-themes.getThemeByName "Nightfox";
inherit (config.nix-rice) rice;
in in
{ {
rice = { nix-rice.config = {
colorPalette = rec { colorPalette = rec {
normal = palette.defaultPalette // { normal = palette.defaultPalette // {
black = theme.color0; black = theme.color0;
@ -36,17 +37,26 @@ in
font = { font = {
normal = { normal = {
name = "Cantarell"; name = "Cantarell";
package = self.cantarell-fonts; package = pkgs.cantarell-fonts;
size = 10; size = 10;
}; };
monospace = { monospace = {
name = "CaskaydiaCove Nerd Font"; name = "CaskaydiaCove Nerd Font";
package = self.nerdfonts.override { fonts = [ "CascadiaCode" ]; }; package = pkgs.nerdfonts.override { fonts = [ "CascadiaCode" ]; };
# name = "FiraCode Nerd Font Mono"; # name = "FiraCode Nerd Font Mono";
# package = self.nerdfonts.override { fonts = [ "FiraCode" ]; }; # package = pkgs.nerdfonts.override { fonts = [ "FiraCode" ]; };
size = 10; size = 10;
}; };
}; };
opacity = 0.95; opacity = 0.95;
}; };
nixpkgs.overlays = [
(_self: super: {
wl-lockscreen = super.wl-lockscreen.override {
strPalette = palette.toRgbaShortHex rice.colorPalette;
font = rice.font.normal;
};
})
];
} }

View file

@ -3,7 +3,6 @@
, fetchFromGitHub , fetchFromGitHub
, sddm , sddm
, qt5 , qt5
,
}: }:
stdenv.mkDerivation { stdenv.mkDerivation {
pname = "sddm-sugar-dark"; pname = "sddm-sugar-dark";

View file

@ -3,7 +3,6 @@
, fetchFromGitHub , fetchFromGitHub
, fira-mono , fira-mono
, wallpaper ? null , wallpaper ? null
,
}: }:
with lib; with lib;
stdenv.mkDerivation { stdenv.mkDerivation {

View file

@ -1,20 +1,14 @@
{ lib { roboto
, rice
, roboto
, swaylock , swaylock
, writeScriptBin , writeScriptBin
, font ? {
package = roboto;
name = "Roboto";
}
, wallpaper ? ../../wallpapers/n8ca4obsys991.png , wallpaper ? ../../wallpapers/n8ca4obsys991.png
, palette ? rice.palette.palette { } , font ? { package = roboto; name = "Roboto"; size = 10; }
, ... , strPalette ? {
}: primary.background = "000000ff";
let normal = { red = "ff0000ff"; green = "00ff00ff"; black = "000000ff"; };
strPalette = lib.nix-rice.palette.toRgbaShortHex palette; bright = { red = "ff1010ff"; green = "10ff10ff"; blue = "1010ffff"; };
in }
writeScriptBin "way-lockscreen" '' }: writeScriptBin "wl-lockscreen" ''
# Using font package ${font.package} # Using font package ${font.package}
${swaylock}/bin/swaylock \ ${swaylock}/bin/swaylock \
--color "${strPalette.primary.background}" \ --color "${strPalette.primary.background}" \

View file

@ -0,0 +1,16 @@
{ findutils
, gnugrep
, coreutils
, writeShellScriptBin
, swww
, backgrounds_directory ? "$HOME/Immagini/Sfondi/1080+/1440+"
}: writeShellScriptBin "wl-update-background" ''
set -e
if [ $# -eq 0 ]; then
image=`${findutils}/bin/find ${backgrounds_directory} -type f | ${gnugrep}/bin/grep -v "/\." | ${coreutils}/bin/shuf -n 1`
else
image="$1"
fi
echo "image: $image"
${swww}/bin/swww img "$image"
''