Compare commits
24 Commits
d94e534ee4
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 434f14707c | |||
| f94f6e63b1 | |||
| ca285c92f7 | |||
| bcf0c17c51 | |||
| 5b9b48fede | |||
| fe2730b673 | |||
| 31b70d4221 | |||
| b9c0ab5f85 | |||
| 09f39d1537 | |||
| b696672f11 | |||
| 1ed32e29b0 | |||
| f04a72f19d | |||
| 3cf1f4f11f | |||
| dbf7c1cd2e | |||
| 134fc441a5 | |||
| d989792774 | |||
| 275d07f6e2 | |||
| 8357053c2a | |||
| 09585ce7ea | |||
| 1221a3a984 | |||
| 89a2eb335e | |||
| efca1819b4 | |||
| a62b187832 | |||
| 1991a88884 |
81
flake.lock
generated
@ -45,6 +45,28 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"awww": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat_2",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"rust-overlay": "rust-overlay_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1779666993,
|
||||
"narHash": "sha256-W0yA7Y37oj5BBzl4ojO8dtv9MuOvdrIZDxtRjs7kpdg=",
|
||||
"ref": "refs/heads/main",
|
||||
"rev": "9b7f47f7f394dce0a17a7b161e0d2fe391ce72b3",
|
||||
"revCount": 1366,
|
||||
"type": "git",
|
||||
"url": "https://codeberg.org/LGFae/awww"
|
||||
},
|
||||
"original": {
|
||||
"type": "git",
|
||||
"url": "https://codeberg.org/LGFae/awww"
|
||||
}
|
||||
},
|
||||
"base16": {
|
||||
"inputs": {
|
||||
"fromYaml": "fromYaml"
|
||||
@ -113,6 +135,26 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"cookiez-assets": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1776155298,
|
||||
"lfs": true,
|
||||
"narHash": "sha256-cOiaPp5vRLc6LglqgMoXXBHLCqixVM5YuJsI1Zj+kv4=",
|
||||
"ref": "main",
|
||||
"rev": "10e02d22a16707548897047323fe78ccf5d58dc1",
|
||||
"shallow": true,
|
||||
"type": "git",
|
||||
"url": "https://gitea.cookiee.org/cookiez/Nix-Assets.git"
|
||||
},
|
||||
"original": {
|
||||
"lfs": true,
|
||||
"ref": "main",
|
||||
"shallow": true,
|
||||
"type": "git",
|
||||
"url": "https://gitea.cookiee.org/cookiez/Nix-Assets.git"
|
||||
}
|
||||
},
|
||||
"fenix": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
@ -167,6 +209,22 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-compat_2": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1761588595,
|
||||
"narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=",
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-parts": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": [
|
||||
@ -598,6 +656,8 @@
|
||||
"inputs": {
|
||||
"aagl": "aagl",
|
||||
"alejandra": "alejandra",
|
||||
"awww": "awww",
|
||||
"cookiez-assets": "cookiez-assets",
|
||||
"grub2-themes": "grub2-themes",
|
||||
"home-manager": "home-manager",
|
||||
"niri": "niri",
|
||||
@ -650,6 +710,27 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"rust-overlay_2": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"awww",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1764038373,
|
||||
"narHash": "sha256-M6w2wNBRelcavoDAyFL2iO4NeWknD40ASkH1S3C0YGM=",
|
||||
"owner": "oxalica",
|
||||
"repo": "rust-overlay",
|
||||
"rev": "ab3536fe850211a96673c6ffb2cb88aab8071cc9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "oxalica",
|
||||
"repo": "rust-overlay",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"stylix": {
|
||||
"inputs": {
|
||||
"base16": "base16",
|
||||
|
||||
16
flake.nix
@ -4,6 +4,9 @@
|
||||
inputs = {
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||
|
||||
pinned-kernel.url = "github:NixOS/nixpkgs/3b5ec87c520b3f3f890c439da30b9fc3f7e173d3";
|
||||
#To pin Kernel versin 7.0.10 because others have bluetooth issues
|
||||
|
||||
nix-index-database = {
|
||||
url = "github:nix-community/nix-index-database";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
@ -32,8 +35,8 @@
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
quickshell = {
|
||||
url = "github:outfoxxed/quickshell";
|
||||
noctalia = {
|
||||
url = "github:noctalia-dev/noctalia-shell/v5";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
@ -57,6 +60,11 @@
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
cookiez-assets = {
|
||||
url = "git+https://gitea.cookiee.org/cookiez/Nix-Assets.git?ref=main&lfs=1&shallow=1";
|
||||
flake = false;
|
||||
};
|
||||
|
||||
nix-flatpak.url = "github:gmodena/nix-flatpak";
|
||||
|
||||
grub2-themes.url = "github:vinceliuice/grub2-themes";
|
||||
@ -66,8 +74,11 @@
|
||||
nixpkgs,
|
||||
alejandra,
|
||||
pam-fprint-grosshack,
|
||||
pinned-kernel,
|
||||
cookiez-assets,
|
||||
home-manager,
|
||||
plasma-manager,
|
||||
noctalia,
|
||||
nixos-hardware,
|
||||
aagl,
|
||||
stylix,
|
||||
@ -98,6 +109,7 @@
|
||||
inherit system;
|
||||
inherit project;
|
||||
inherit alejandra;
|
||||
inherit cookiez-assets;
|
||||
pam-fprint-grosshack-pkg = pam-fprint-grosshack.packages.${system}.default;
|
||||
host = hostname;
|
||||
};
|
||||
|
||||
@ -15,7 +15,9 @@
|
||||
system,
|
||||
pam-fprint-grosshack-pkg,
|
||||
...
|
||||
}: {
|
||||
}: let
|
||||
kernel-pinned = import inputs.pinned-kernel {inherit system;};
|
||||
in {
|
||||
#Assign Swap to the PC
|
||||
swapDevices = [
|
||||
{
|
||||
@ -25,7 +27,15 @@
|
||||
}
|
||||
];
|
||||
nix = {
|
||||
settings.nix-path = config.nix.nixPath;
|
||||
gc = {
|
||||
automatic = true;
|
||||
dates = "weekly";
|
||||
options = "--delete-older-than 14d";
|
||||
};
|
||||
settings = {
|
||||
auto-optimise-store = true;
|
||||
nix-path = config.nix.nixPath;
|
||||
};
|
||||
nixPath = ["nixpkgs=${inputs.nixpkgs}"];
|
||||
};
|
||||
|
||||
@ -46,7 +56,7 @@
|
||||
|
||||
# Bootloader.
|
||||
boot = {
|
||||
kernelPackages = pkgs.linuxPackages_latest;
|
||||
kernelPackages = kernel-pinned.linuxPackages_latest;
|
||||
kernelParams = ["quiet" "splash"];
|
||||
initrd = {
|
||||
systemd.enable = true; #For swap to automatically work
|
||||
@ -186,10 +196,15 @@
|
||||
openssh.enable = true;
|
||||
};
|
||||
|
||||
systemd.services.fprintd = {
|
||||
systemd = {
|
||||
tmpfiles.rules = [
|
||||
"L+ /var/lib/assets - - - - ${inputs.cookiez-assets}"
|
||||
];
|
||||
services.fprintd = {
|
||||
wantedBy = ["multi-user.target"];
|
||||
serviceConfig.Type = "simple";
|
||||
};
|
||||
};
|
||||
|
||||
fonts = {
|
||||
fontDir.enable = true;
|
||||
@ -218,6 +233,10 @@
|
||||
programs = {
|
||||
steam.enable = true;
|
||||
|
||||
gamemode.enable = true;
|
||||
|
||||
gamescope.enable = true;
|
||||
|
||||
nix-index-database.comma.enable = true;
|
||||
|
||||
direnv = {
|
||||
@ -300,7 +319,7 @@
|
||||
users.users.${username} = {
|
||||
isNormalUser = true;
|
||||
description = "Cookiez";
|
||||
extraGroups = ["networkmanager" "wheel" "docker"];
|
||||
extraGroups = ["networkmanager" "wheel" "docker" "gamemode" "dialout" "tty"];
|
||||
packages = with pkgs; [
|
||||
#User Packages Here
|
||||
];
|
||||
@ -371,9 +390,8 @@
|
||||
max-substitution-jobs = 32;
|
||||
http-connections = 50;
|
||||
|
||||
#Both needed for sleepy-launcher to work
|
||||
extra-substituters = ["https://ezkea.cachix.org" "https://nix-community.cachix.org"];
|
||||
extra-trusted-public-keys = ["ezkea.cachix.org-1:ioBmUbJTZIKsHmWWXPe1FSFbeVe+afhfgqgTSNd34eI=" "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="];
|
||||
extra-substituters = ["https://ezkea.cachix.org" "https://noctalia.cachix.org" "https://nix-community.cachix.org"];
|
||||
extra-trusted-public-keys = ["ezkea.cachix.org-1:ioBmUbJTZIKsHmWWXPe1FSFbeVe+afhfgqgTSNd34eI=" "noctalia.cachix.org-1:pCOR47nnMEo5thcxNDtzWpOxNFQsBRglJzxWPp3dkU4=" "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="];
|
||||
};
|
||||
|
||||
# Allow unfree packages
|
||||
|
||||
@ -7,18 +7,18 @@
|
||||
../niri
|
||||
];
|
||||
|
||||
specialisation = {
|
||||
"plasma" = {
|
||||
inheritParentConfig = false;
|
||||
configuration = {
|
||||
imports = [
|
||||
../plasma
|
||||
./configuration.nix
|
||||
];
|
||||
|
||||
environment.etc."nixos-tags".text = "plasma";
|
||||
};
|
||||
};
|
||||
#specialisation = {
|
||||
# "plasma" = {
|
||||
# inheritParentConfig = false;
|
||||
# configuration = {
|
||||
# imports = [
|
||||
# ../plasma
|
||||
# ./configuration.nix
|
||||
# ];
|
||||
#
|
||||
# environment.etc."nixos-tags".text = "plasma";
|
||||
# };
|
||||
# };
|
||||
|
||||
# "minimal" = {
|
||||
# inheritParentConfig = false;
|
||||
@ -31,16 +31,16 @@
|
||||
# };
|
||||
# };
|
||||
|
||||
"niri" = {
|
||||
inheritParentConfig = false;
|
||||
configuration = {
|
||||
imports = [
|
||||
../niri
|
||||
./configuration.nix
|
||||
];
|
||||
|
||||
environment.etc."nixos-tags".text = "niri";
|
||||
};
|
||||
};
|
||||
};
|
||||
# "niri" = {
|
||||
# inheritParentConfig = false;
|
||||
# configuration = {
|
||||
# imports = [
|
||||
# ../niri
|
||||
# ./configuration.nix
|
||||
# ];
|
||||
#
|
||||
# environment.etc."nixos-tags".text = "niri";
|
||||
# };
|
||||
# };
|
||||
#};
|
||||
}
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
{
|
||||
pkgs,
|
||||
inputs,
|
||||
username,
|
||||
project,
|
||||
...
|
||||
@ -19,11 +20,13 @@
|
||||
noDisplay = true;
|
||||
};
|
||||
|
||||
dataFile."icons/hicolor/256x256/apps/vencord-custom.png".source = "${inputs.cookiez-assets}/apps/discord.png";
|
||||
|
||||
desktopEntries."discord" = {
|
||||
categories = ["Network" "InstantMessaging" "Chat"];
|
||||
exec = "vesktop %U";
|
||||
genericName = "Internet Messenger";
|
||||
icon = "/home/${username}/${project}/other/discord.app.png";
|
||||
icon = "vencord-custom";
|
||||
name = "Discord";
|
||||
type = "Application";
|
||||
};
|
||||
@ -37,6 +40,8 @@
|
||||
type = "Application";
|
||||
};
|
||||
|
||||
dataFile."icons/hicolor/256x256/apps/kitty-custom.png".source = "${inputs.cookiez-assets}/apps/kitty.png";
|
||||
|
||||
desktopEntries.kitty = {
|
||||
name = "kitty";
|
||||
genericName = "Terminal emulator";
|
||||
@ -45,7 +50,8 @@
|
||||
terminal = false;
|
||||
categories = ["System" "TerminalEmulator"];
|
||||
|
||||
icon = "/home/${username}/${project}/other/kitty.app.png";
|
||||
#icon = "${inputs.cookiez-assets}/apps/kitty.png";
|
||||
icon = "kitty-custom";
|
||||
};
|
||||
|
||||
desktopEntries."org.kde.kinfocenter" = {
|
||||
|
||||
@ -7,6 +7,7 @@
|
||||
project,
|
||||
host,
|
||||
version,
|
||||
cookiez-assets,
|
||||
...
|
||||
}: {
|
||||
# Home Manager needs a bit of information about you and the
|
||||
@ -73,6 +74,7 @@
|
||||
|
||||
git = {
|
||||
enable = true;
|
||||
lfs.enable = true;
|
||||
settings = {
|
||||
user = {
|
||||
name = "Cookiez";
|
||||
|
||||
@ -1,32 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
inputs,
|
||||
username,
|
||||
project,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
];
|
||||
|
||||
services = {
|
||||
hyprpaper = {
|
||||
enable = false;
|
||||
|
||||
settings = {
|
||||
preload = [
|
||||
#"/home/${username}/${project}/other/wallpaper1.png"
|
||||
#"/home/${username}/${project}/other/wallpaper2.png"
|
||||
#"/home/${username}/${project}/other/wallpaper3.png"
|
||||
"/home/${username}/${project}/other/wallpaper4.png"
|
||||
];
|
||||
|
||||
wallpaper = [
|
||||
#"eDP-1,/home/${username}/${project}/other/wallpaper1.png"
|
||||
#"eDP-1,/home/${username}/${project}/other/wallpaper2.png"
|
||||
#"eDP-1,/home/${username}/${project}/other/wallpaper3.png"
|
||||
"eDP-1,/home/${username}/${project}/other/wallpaper4.png"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@ -18,6 +18,7 @@
|
||||
|
||||
# --- Help text ---
|
||||
print_help = ''
|
||||
print_help() {
|
||||
echo "NixOS CLI Utility -- version 2.1.3"
|
||||
echo ""
|
||||
echo "Usage: ncli [command]"
|
||||
@ -45,6 +46,7 @@
|
||||
echo ""
|
||||
echo " help - Show this help message."
|
||||
echo ""
|
||||
}
|
||||
'';
|
||||
in
|
||||
pkgs.writeShellScriptBin "ncli" ''
|
||||
@ -70,6 +72,7 @@ in
|
||||
${lib.print_success}
|
||||
${lib.print_error}
|
||||
${lib.print_info}
|
||||
${print_help}
|
||||
|
||||
# --- Main Logic ---
|
||||
if [ "$#" -eq 0 ]; then
|
||||
@ -122,7 +125,7 @@ in
|
||||
${dev.dev_case}
|
||||
;;
|
||||
help)
|
||||
${print_help}
|
||||
print_help
|
||||
;;
|
||||
*)
|
||||
echo "Error: Invalid command '$1'" >&2
|
||||
|
||||
@ -1,7 +1,5 @@
|
||||
# ncli/commands/dev.nix — dev init / track / untrack
|
||||
lib:
|
||||
|
||||
{
|
||||
lib: {
|
||||
dev_case = ''
|
||||
# Only flake files need assume-unchanged (Nix requires them in the index).
|
||||
# .envrc and .direnv are handled via .git/info/exclude instead.
|
||||
@ -323,14 +321,14 @@ lib:
|
||||
|
||||
if [[ "$GIT_CHOICE" =~ ^[Yy]$ ]]; then
|
||||
cat > "$TARGET_ABS/flake.lock" << 'FLAKE_LOCK_EOF'
|
||||
{
|
||||
"nodes": {
|
||||
{
|
||||
"nodes": {
|
||||
"root": {}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
||||
FLAKE_LOCK_EOF
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
||||
FLAKE_LOCK_EOF
|
||||
print_success "flake.lock ready (Nix will populate it on first run if empty)"
|
||||
|
||||
git -C "$TARGET_ABS" add --intent-to-add flake.nix flake.lock
|
||||
@ -362,6 +360,5 @@ FLAKE_LOCK_EOF
|
||||
;;
|
||||
|
||||
esac
|
||||
;;
|
||||
'';
|
||||
}
|
||||
|
||||
@ -1,10 +1,7 @@
|
||||
# ncli/commands/git.nix — commit, push, pull, status, format
|
||||
lib:
|
||||
|
||||
let
|
||||
lib: let
|
||||
inherit (lib) project;
|
||||
in
|
||||
{
|
||||
in {
|
||||
commit_case = ''
|
||||
cd "$HOME/${project}" || { echo "Error: Could not change to $HOME/${project}"; exit 1; }
|
||||
if [ "$#" -lt 2 ]; then
|
||||
@ -20,29 +17,24 @@ in
|
||||
fi
|
||||
|
||||
git add -A && git commit -m "$commit_msg"
|
||||
;;
|
||||
'';
|
||||
|
||||
push_case = ''
|
||||
cd "$HOME/${project}" || { echo "Error: Could not change to $HOME/${project}"; exit 1; }
|
||||
git push origin $(git branch --show-current)
|
||||
;;
|
||||
'';
|
||||
|
||||
pull_case = ''
|
||||
cd "$HOME/${project}" || { echo "Error: Could not change to $HOME/${project}"; exit 1; }
|
||||
git pull origin $(git branch --show-current)
|
||||
;;
|
||||
'';
|
||||
|
||||
status_case = ''
|
||||
cd "$HOME/${project}" || { echo "Error: Could not change to $HOME/${project}"; exit 1; }
|
||||
git status
|
||||
;;
|
||||
'';
|
||||
|
||||
format_case = ''
|
||||
nix fmt .
|
||||
;;
|
||||
'';
|
||||
}
|
||||
|
||||
@ -1,10 +1,7 @@
|
||||
# ncli/commands/maintenance.nix — cleanup, diag, list-gens, trim, home-backups
|
||||
lib:
|
||||
|
||||
let
|
||||
lib: let
|
||||
inherit (lib) project;
|
||||
in
|
||||
{
|
||||
in {
|
||||
cleanup_case = ''
|
||||
echo "Warning! This will remove old generations of your system."
|
||||
read -p "How many generations to keep (default: all)? " keep_count
|
||||
@ -33,7 +30,6 @@ in
|
||||
echo "Cleaning up old log files..." >> "$LOG_FILE"
|
||||
find "$LOG_DIR" -type f -mtime +3 -name "*.log" -delete >> "$LOG_FILE" 2>&1
|
||||
echo "Cleanup process logged to $LOG_FILE"
|
||||
;;
|
||||
'';
|
||||
|
||||
diag_case = ''
|
||||
@ -50,7 +46,6 @@ in
|
||||
echo ""
|
||||
} > "$HOME/diag.txt"
|
||||
echo "Diagnostic report saved to $HOME/diag.txt"
|
||||
;;
|
||||
'';
|
||||
|
||||
list_gens_case = ''
|
||||
@ -59,7 +54,6 @@ in
|
||||
echo ""
|
||||
echo "--- System Generations ---"
|
||||
nix profile history --profile /nix/var/nix/profiles/system | cat || echo "Could not list system generations."
|
||||
;;
|
||||
'';
|
||||
|
||||
trim_case = ''
|
||||
@ -73,11 +67,9 @@ in
|
||||
else
|
||||
echo "Trim operation cancelled."
|
||||
fi
|
||||
;;
|
||||
'';
|
||||
|
||||
home_backups_case = ''
|
||||
ls -a ~ | grep backup
|
||||
;;
|
||||
'';
|
||||
}
|
||||
|
||||
@ -1,10 +1,7 @@
|
||||
# ncli/commands/rebuild.nix — Rebuild + Update logic
|
||||
lib:
|
||||
|
||||
let
|
||||
lib: let
|
||||
inherit (lib) host project handle_backups handle_build_error;
|
||||
in
|
||||
{
|
||||
in rec {
|
||||
# Shared rebuild snippet used by both `rebuild` and `update`
|
||||
rebuild_logic = ''
|
||||
handle_backups
|
||||
@ -21,12 +18,21 @@ in
|
||||
${rebuild_logic}
|
||||
echo -e "Starting NixOS rebuild for current host: ${host} on generation: $YELLOW$geno$NOCOLOR"
|
||||
|
||||
sudo nixos-rebuild switch --flake . ; _rebuild_exit=$?
|
||||
# Step 1: Build the configuration and safely update the bootloader first
|
||||
set +e
|
||||
sudo nixos-rebuild boot --flake .
|
||||
_rebuild_exit=$?
|
||||
set -e
|
||||
|
||||
if [ "$_rebuild_exit" -eq 0 ]; then
|
||||
echo "✓ Rebuild finished successfully for ${host}"
|
||||
echo "✓ Rebuild and bootloader update finished successfully for ${host}"
|
||||
|
||||
# Step 2: Now that boot entries are safe, activate the system live
|
||||
echo "Activating new configuration..."
|
||||
sudo /nix/var/nix/profiles/system/bin/switch-to-configuration switch
|
||||
|
||||
if [ -n "$current" ]; then
|
||||
sudo /run/current-system/specialisation/"$current"/bin/switch-to-configuration test
|
||||
sudo /nix/var/nix/profiles/system/specialisation/"$current"/bin/switch-to-configuration test
|
||||
else
|
||||
echo "No specialization tag found, staying on default system."
|
||||
fi
|
||||
@ -38,7 +44,6 @@ in
|
||||
echo "✗ Rebuild failed for ${host}" >&2
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
'';
|
||||
|
||||
update_case = ''
|
||||
@ -110,12 +115,21 @@ in
|
||||
echo "Rebuilding system... Staying on current specialization"
|
||||
fi
|
||||
|
||||
sudo nixos-rebuild switch --flake . ; _rebuild_exit=$?
|
||||
# Step 1: Build the configuration and safely update the bootloader first
|
||||
set +e
|
||||
sudo nixos-rebuild boot --flake .
|
||||
_rebuild_exit=$?
|
||||
set -e
|
||||
|
||||
if [ "$_rebuild_exit" -eq 0 ]; then
|
||||
echo "✓ Update and rebuild finished successfully for ${host}"
|
||||
echo "✓ Update, rebuild and bootloader update finished successfully for ${host}"
|
||||
|
||||
# Step 2: Now that boot entries are safe, activate the system live
|
||||
echo "Activating new configuration..."
|
||||
sudo /nix/var/nix/profiles/system/bin/switch-to-configuration switch
|
||||
|
||||
if [ -n "$current" ]; then
|
||||
sudo /run/current-system/specialisation/"$current"/bin/switch-to-configuration test
|
||||
sudo /nix/var/nix/profiles/system/specialisation/"$current"/bin/switch-to-configuration test
|
||||
else
|
||||
echo "No specialization tag found, staying on default system."
|
||||
fi
|
||||
@ -127,6 +141,5 @@ in
|
||||
echo "✗ Update and rebuild failed for ${host}" >&2
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
'';
|
||||
}
|
||||
|
||||
@ -1,9 +1,5 @@
|
||||
# ncli/commands/switch.nix — Specialization switching
|
||||
lib:
|
||||
|
||||
{}:
|
||||
|
||||
{
|
||||
lib: {
|
||||
switch_case = ''
|
||||
current=""
|
||||
if [ -f /etc/nixos-tags ]; then
|
||||
@ -35,6 +31,5 @@ lib:
|
||||
echo "To switch to a specialization, run: 'ncli switch <tag>'"
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
'';
|
||||
}
|
||||
|
||||
@ -1,7 +1,3 @@
|
||||
# ncli/default.nix — Entry point
|
||||
# Usage in your flake:
|
||||
# ncli = import ./ncli { inherit pkgs host project; };
|
||||
# environment.systemPackages = [ ncli ];
|
||||
{
|
||||
pkgs,
|
||||
host,
|
||||
|
||||
@ -13,23 +13,26 @@ in
|
||||
|
||||
# --- Backup helper ---
|
||||
handle_backups = ''
|
||||
if [ ''${#BACKUP_FILES[@]} -eq 0 ]; then
|
||||
echo "No backup files configured to check."
|
||||
return
|
||||
fi
|
||||
|
||||
handle_backups() {
|
||||
echo "Checking for backup files to remove..."
|
||||
found=0
|
||||
for file_path in "''${BACKUP_FILES[@]}"; do
|
||||
full_path="$HOME/$file_path"
|
||||
if [ -f "$full_path" ]; then
|
||||
echo "Removing stale backup file: $full_path"
|
||||
rm "$full_path"
|
||||
found=1
|
||||
fi
|
||||
done
|
||||
if [ "$found" -eq 0 ]; then
|
||||
echo "No stale backup files found."
|
||||
fi
|
||||
}
|
||||
'';
|
||||
|
||||
# --- OOM / build error handler ---
|
||||
handle_build_error = ''
|
||||
handle_build_error() {
|
||||
local exit_code=$?
|
||||
if [ "$exit_code" -eq 137 ]; then
|
||||
echo ""
|
||||
@ -51,26 +54,35 @@ in
|
||||
echo " journalctl -k --since '5 minutes ago' | grep -i oom"
|
||||
echo ""
|
||||
fi
|
||||
}
|
||||
'';
|
||||
|
||||
# --- Print helpers (used by dev init) ---
|
||||
print_header = ''
|
||||
print_header() {
|
||||
echo ""
|
||||
echo -e "''${BLUE}==============================================''${NOCOLOR}"
|
||||
echo -e "''${BLUE} Nix Flake Development Environment Initializer''${NOCOLOR}"
|
||||
echo -e "''${BLUE}==============================================''${NOCOLOR}"
|
||||
echo ""
|
||||
}
|
||||
'';
|
||||
|
||||
print_success = ''
|
||||
print_success() {
|
||||
echo -e "''${GREEN}[OK]''${NOCOLOR} $1"
|
||||
}
|
||||
'';
|
||||
|
||||
print_error = ''
|
||||
print_error() {
|
||||
echo -e "''${RED}[ERR]''${NOCOLOR} $1"
|
||||
}
|
||||
'';
|
||||
|
||||
print_info = ''
|
||||
print_info() {
|
||||
echo -e "''${YELLOW}[->]''${NOCOLOR} $1"
|
||||
}
|
||||
'';
|
||||
}
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
{
|
||||
config,
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
@ -7,11 +6,7 @@
|
||||
imports = [
|
||||
];
|
||||
|
||||
home-manager.sharedModules = [
|
||||
./home.nix
|
||||
];
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
hyprpaper
|
||||
inputs.noctalia.packages.${pkgs.stdenv.hostPlatform.system}.default
|
||||
];
|
||||
}
|
||||
9
modules/noctalia/home.nix
Normal file
@ -0,0 +1,9 @@
|
||||
{inputs, ...}: {
|
||||
imports = [
|
||||
inputs.noctalia.homeModules.default
|
||||
];
|
||||
|
||||
programs.noctalia = {
|
||||
enable = true;
|
||||
};
|
||||
}
|
||||
@ -15,9 +15,15 @@
|
||||
stylix = {
|
||||
enable = true;
|
||||
autoEnable = false; #So I can choose my programs it targets myself!
|
||||
#image = ../../other/wallpaper2.png;
|
||||
#autoEnable = true; #Auto generate theme based on wallpaper
|
||||
#image = "${inputs.cookiez-assets}/wallpapers/beach-forest.png";
|
||||
#polarity = "dark"; # "dark" or "light"
|
||||
base16Scheme = "${pkgs.base16-schemes}/share/themes/dracula.yaml";
|
||||
#override = {
|
||||
# base05 = "e0e0e0"; # default text — light grey (no # prefix!)
|
||||
# base04 = "b0b0b0"; # secondary/muted text
|
||||
# base06 = "f5f5f5"; # lighter text variant
|
||||
#};
|
||||
|
||||
opacity = {
|
||||
desktop = 0.5;
|
||||
terminal = 0.9;
|
||||
@ -43,7 +49,8 @@
|
||||
plymouth.logoAnimated = true;
|
||||
console.enable = true; #Default console without desktop environment! (NOT KITTY!)
|
||||
grub.enable = false;
|
||||
#qt.enable = false;
|
||||
qt.enable = true;
|
||||
gtk.enable = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@ -5,6 +5,7 @@
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
inputs.niri.homeModules.stylix
|
||||
];
|
||||
|
||||
services = {
|
||||
@ -16,10 +17,9 @@
|
||||
#firefox = {
|
||||
# enable = true;
|
||||
# colorTheme.enable = true;
|
||||
# profileNames = [ "${username}" ];
|
||||
# profileNames = ["${username}"];
|
||||
#};
|
||||
qt.enable = false;
|
||||
qt.platform = "kde";
|
||||
niri.enable = true;
|
||||
#kde.enable = false;
|
||||
};
|
||||
};
|
||||
|
||||
@ -1,153 +0,0 @@
|
||||
{
|
||||
"layer": "top",
|
||||
"position": "top",
|
||||
"modules-left": [
|
||||
"custom/launcher",
|
||||
"hyprland/workspaces",
|
||||
"cpu",
|
||||
"memory"
|
||||
|
||||
],
|
||||
"modules-center": [
|
||||
"hyprland/window"
|
||||
],
|
||||
"spacing": 4,
|
||||
"modules-right": [
|
||||
"tray",
|
||||
"wireplumber",
|
||||
"network",
|
||||
"backlight",
|
||||
"clock",
|
||||
"battery",
|
||||
"custom/power"
|
||||
],
|
||||
"backlight": {
|
||||
"device": "intel_backlight",
|
||||
"format": "{percent}% {icon}",
|
||||
"format-icons": ["", ""]
|
||||
},
|
||||
"hyprland/workspaces": {
|
||||
"format": "{name}",
|
||||
"persistent-workspaces": {
|
||||
"1": [],
|
||||
"2": [],
|
||||
"3": []
|
||||
}
|
||||
},
|
||||
"hyprland/window": {
|
||||
"icon": false,
|
||||
"separate-outputs": true,
|
||||
"format": "{}"
|
||||
},
|
||||
"tray": {
|
||||
"icon-size": 15,
|
||||
"spacing": 7
|
||||
},
|
||||
"clock": {
|
||||
"format": "{:%H:%M} ",
|
||||
"format-alt": "{:%A, %B %d, %Y (%R)}",
|
||||
"tooltip-format": "<tt><small>{calendar}</small></tt>",
|
||||
"calendar": {
|
||||
"mode": "year",
|
||||
"mode-mon-col": 3,
|
||||
"weeks-pos": "right",
|
||||
"on-scroll": 1,
|
||||
"on-click-right": "mode",
|
||||
"format": {
|
||||
"months": "<span color='#f5e0dc'><b>{}</b></span>",
|
||||
"days": "<span color='#cdd6f4'><b>{}</b></span>",
|
||||
"weeks": "<span color='#fab387'><b>W{}</b></span>",
|
||||
"weekdays": "<span color='#f5c2e7'><b>{}</b></span>",
|
||||
"today": "<span color='#cba6f7'><b><u>{}</u></b></span>"
|
||||
}
|
||||
},
|
||||
"actions": {
|
||||
"on-click-right": "mode",
|
||||
"on-click-forward": "tz_up",
|
||||
"on-click-backward": "tz_down",
|
||||
"on-scroll-up": "shift_up",
|
||||
"on-scroll-down": "shift_down"
|
||||
}
|
||||
},
|
||||
"cpu": {
|
||||
"interval": 1,
|
||||
"format": "CPU {usage:>2}% {icon0}{icon1}{icon2}{icon3}",
|
||||
"format-icons": [
|
||||
"▁",
|
||||
"▂",
|
||||
"▃",
|
||||
"▄",
|
||||
"▅",
|
||||
"▆",
|
||||
"▇",
|
||||
"█"
|
||||
],
|
||||
"on-click": "kitty -e btop"
|
||||
},
|
||||
"memory": {
|
||||
"interval": 30,
|
||||
"format": "MEM {used:0.1f}G/{total:0.1f}G"
|
||||
},
|
||||
"network": {
|
||||
"format": " Disabled",
|
||||
"format-wifi": " ",
|
||||
"format-ethernet": " ",
|
||||
"format-disconnected": "⚠",
|
||||
"tooltip": true,
|
||||
"tooltip-format": "{ifname}\n{ipaddr}",
|
||||
"tooltip-format-wifi": "{essid} {ifname}\n{ipaddr}\nstrength: {signalStrength}%",
|
||||
"on-click": "networkmanager_dmenu"
|
||||
},
|
||||
"custom/launcher": {
|
||||
"format": " ",
|
||||
"tooltip": false,
|
||||
"on-click": "wofi -c ~/.config/wofi/config -I"
|
||||
},
|
||||
"custom/power": {
|
||||
"format": " ",
|
||||
"on-click": "~/.config/wofi/scripts/power.sh",
|
||||
"tooltip": false
|
||||
},
|
||||
"wireplumber": {
|
||||
"scroll-step": 10,
|
||||
"format": "{volume}% {icon} ",
|
||||
"format-bluetooth": "{icon} {volume}%",
|
||||
"format-muted": "muted ",
|
||||
"on-click": "pavucontrol",
|
||||
"format-icons": {
|
||||
"headphones": "",
|
||||
"handsfree": "",
|
||||
"headset": "",
|
||||
"phone": "",
|
||||
"portable": "",
|
||||
"car": "",
|
||||
"default": [
|
||||
"",
|
||||
""
|
||||
]
|
||||
}
|
||||
},
|
||||
"battery": {
|
||||
"states": {
|
||||
"warning": 30,
|
||||
"critical": 15
|
||||
},
|
||||
"format": "{capacity}% {icon}",
|
||||
"format-charging": " {capacity}%",
|
||||
"format-pluged": " {capacity}%",
|
||||
"format-full": " {capacity}%",
|
||||
"format-icons": [
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
""
|
||||
]
|
||||
}
|
||||
}
|
||||
@ -1,4 +0,0 @@
|
||||
{...}: {
|
||||
# xdg.configFile."waybar/config.jsonc".source = ./config.jsonc;
|
||||
# xdg.configFile."waybar/style.css".source = ./style.css;
|
||||
}
|
||||
@ -1,167 +0,0 @@
|
||||
* {
|
||||
font-family: "JetBrainsMono Nerd Font", sans-serif;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
window#waybar {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
window > box {
|
||||
margin-top: 0px;
|
||||
margin-left: 10px;
|
||||
margin-right: 10px;
|
||||
padding-left: 4px;
|
||||
padding-right: 4px;
|
||||
}
|
||||
|
||||
#window {
|
||||
background-color: #202020;
|
||||
border-radius: 20px;
|
||||
padding: 8px 12px 8px 8px;
|
||||
margin: 0px 0;
|
||||
}
|
||||
|
||||
window#waybar.empty #window {
|
||||
background: rgba(12, 12, 12, 0);
|
||||
}
|
||||
|
||||
.modules-left {
|
||||
padding: 3px;
|
||||
}
|
||||
|
||||
.modules-right {
|
||||
padding: 3px;
|
||||
}
|
||||
|
||||
.modules-center {
|
||||
padding: 3px;
|
||||
}
|
||||
|
||||
#workspaces {
|
||||
background-color: #202020;
|
||||
border-radius: 20px;
|
||||
padding: 4px 4px 4px 6px;
|
||||
margin: 4px 0;
|
||||
}
|
||||
|
||||
#workspaces button {
|
||||
min-height: 0;
|
||||
padding: 0 7px;
|
||||
margin-right: 2px;
|
||||
color: #f5e0dc;
|
||||
}
|
||||
|
||||
#workspaces button.urgent {
|
||||
color: #f5e0dc;
|
||||
animation-name: blink;
|
||||
animation-duration: 0.5s;
|
||||
animation-timing-function: linear;
|
||||
animation-iteration-count: infinite;
|
||||
animation-direction: alternate;
|
||||
}
|
||||
|
||||
#workspaces button.empty {
|
||||
color: #cdd6f4;
|
||||
}
|
||||
|
||||
#workspaces button.visible {
|
||||
color: #89dceb;
|
||||
}
|
||||
|
||||
#workspaces button.active {
|
||||
color: #fab387;
|
||||
}
|
||||
|
||||
@keyframes blink {
|
||||
to {
|
||||
color: #202020;
|
||||
background-color: #dcf5f3;
|
||||
}
|
||||
}
|
||||
|
||||
#custom-launcher {
|
||||
background-color: #202020;
|
||||
border-radius: 20px;
|
||||
padding: 8px 8px 8px 4px;
|
||||
margin: 4px 0;
|
||||
color: #89dceb;
|
||||
}
|
||||
|
||||
#custom-power {
|
||||
background-color: #202020;
|
||||
border-radius: 20px;
|
||||
padding: 8px 12px 8px 8px;
|
||||
margin: 4px 0;
|
||||
}
|
||||
|
||||
#cpu {
|
||||
background-color: #202020;
|
||||
border-radius: 20px;
|
||||
padding: 8px 8px 8px 20px;
|
||||
margin: 4px 0;
|
||||
color: #f2cdcd;
|
||||
}
|
||||
|
||||
#memory {
|
||||
background-color: #202020;
|
||||
border-radius: 20px;
|
||||
padding: 8px 8px 8px 20px;
|
||||
margin: 4px 0;
|
||||
color: #fab387;
|
||||
}
|
||||
|
||||
#wireplumber {
|
||||
background-color: #202020;
|
||||
border-radius: 20px;
|
||||
padding: 8px 8px 8px 20px;
|
||||
margin: 4px 0;
|
||||
color: #f9e2af;
|
||||
}
|
||||
|
||||
#wireplumber.muted {
|
||||
color: #f38ba8;
|
||||
}
|
||||
|
||||
#clock {
|
||||
background-color: #202020;
|
||||
border-radius: 20px;
|
||||
padding: 8px 10px 10px 10px;
|
||||
margin: 4px 0;
|
||||
color: #94e2d5;
|
||||
}
|
||||
|
||||
#network {
|
||||
background-color: #202020;
|
||||
color: #cdd6f4;
|
||||
border-radius: 20px;
|
||||
padding: 8px;
|
||||
margin: 4px 0;
|
||||
}
|
||||
|
||||
#network.disabled {
|
||||
color: #f38ba8;
|
||||
}
|
||||
|
||||
#tray {
|
||||
background-color: #202020;
|
||||
border-radius: 20px;
|
||||
padding: 8px 12px 8px 12px;
|
||||
margin: 4px 0;
|
||||
}
|
||||
|
||||
#battery {
|
||||
background-color: #202020;
|
||||
color: #cdd6f4;
|
||||
border-radius: 20px;
|
||||
padding: 8px;
|
||||
margin: 4px 0;
|
||||
}
|
||||
|
||||
#backlight {
|
||||
background-color: #202020;
|
||||
color: #cdd6f4;
|
||||
border-radius: 20px;
|
||||
padding: 8px;
|
||||
margin: 4px 0;
|
||||
}
|
||||
@ -1,5 +1,6 @@
|
||||
{
|
||||
config,
|
||||
inputs,
|
||||
pkgs,
|
||||
username,
|
||||
project,
|
||||
@ -7,31 +8,8 @@
|
||||
}: {
|
||||
#To show logs of services run:
|
||||
#journalctl --user-unit={service-name} --user
|
||||
systemd.user.services.niri-waybar = {
|
||||
description = "Waybar status bar for Niri";
|
||||
|
||||
# "wantedBy" replaces the [Install] section
|
||||
wantedBy = ["graphical-session.target"];
|
||||
|
||||
# "partOf" and "after" replace the [Unit] section dependencies
|
||||
partOf = ["graphical-session.target"];
|
||||
after = ["graphical-session.target"];
|
||||
|
||||
# [Unit] configuration goes here
|
||||
unitConfig = {
|
||||
# This checks the environment variable to ensure we are in Niri
|
||||
ConditionEnvironment = "XDG_CURRENT_DESKTOP=niri";
|
||||
};
|
||||
|
||||
# [Service] configuration goes here
|
||||
serviceConfig = {
|
||||
ExecStart = "${pkgs.waybar}/bin/waybar";
|
||||
Restart = "on-failure";
|
||||
RestartSec = "1s";
|
||||
};
|
||||
};
|
||||
|
||||
# 2. The Niri Session Cleanup Service
|
||||
# The Niri Session Cleanup Service
|
||||
# This service starts when the graphical session starts, and when it stops,
|
||||
# it forcibly stops the graphical-session.target to ensure a clean state for the next login.
|
||||
systemd.user.services.niri-session-manager = {
|
||||
|
||||
@ -2,12 +2,12 @@
|
||||
config,
|
||||
inputs,
|
||||
pkgs,
|
||||
system,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
./autostart.nix
|
||||
../modules/hyprlock
|
||||
../modules/hyprpaper
|
||||
../modules/stylix
|
||||
];
|
||||
|
||||
@ -16,10 +16,8 @@
|
||||
];
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
#mako
|
||||
fuzzel
|
||||
waybar
|
||||
xwayland-satellite
|
||||
lxsession #Needed for things like gparted
|
||||
];
|
||||
|
||||
programs = {
|
||||
@ -33,7 +31,6 @@
|
||||
#services.xserver.displayManager.sddm.enable = true;
|
||||
|
||||
xdg.portal = {
|
||||
#Needed for waybar
|
||||
enable = true;
|
||||
extraPortals = [pkgs.xdg-desktop-portal-gtk pkgs.xdg-desktop-portal-wlr];
|
||||
config.common.default = "*";
|
||||
|
||||
@ -5,31 +5,13 @@
|
||||
}: {
|
||||
imports = [
|
||||
inputs.niri.homeModules.niri
|
||||
../modules/waybar/home.nix
|
||||
../modules/noctalia/home.nix
|
||||
];
|
||||
|
||||
xdg.configFile."mako/config".text = ''
|
||||
default-timeout=5000
|
||||
ignore-timeout=1
|
||||
'';
|
||||
|
||||
programs.niri = {
|
||||
package = pkgs.niri;
|
||||
enable = true;
|
||||
#xwayland.enable = true;
|
||||
# config = ''
|
||||
# binds {
|
||||
# Super+Return { spawn "kitty"; }
|
||||
# Super+Space { spawn "fuzzel"; }
|
||||
# Super+Q { close-window; }
|
||||
# Super+Left { focus-column-left; }
|
||||
# Super+Right { focus-column-right; }
|
||||
# Super+Up { focus-workspace-up; }
|
||||
# Super+Down { focus-workspace-down; }
|
||||
# Super+L { spawn "hyprlock"; }
|
||||
# Super+Shift+E { "quit"; }
|
||||
# }
|
||||
# '';
|
||||
|
||||
config = ''
|
||||
input {
|
||||
keyboard {
|
||||
@ -38,6 +20,10 @@
|
||||
}
|
||||
numlock
|
||||
}
|
||||
mouse {
|
||||
accel-profile "flat"
|
||||
accel-speed -0.4
|
||||
}
|
||||
}
|
||||
|
||||
prefer-no-csd
|
||||
@ -83,11 +69,8 @@
|
||||
}
|
||||
}
|
||||
|
||||
// spawn-at-startup "waybar"
|
||||
spawn-at-startup "hyprpaper"
|
||||
spawn-at-startup "${pkgs.mako}/bin/mako"
|
||||
|
||||
// spawn-sh-at-startup "qs -c ~/source/qs/MyAwesomeShell"
|
||||
spawn-at-startup "noctalia"
|
||||
spawn-at-startup "lxpolkit"
|
||||
|
||||
hotkey-overlay {
|
||||
// Uncomment this line to disable the "Important Hotkeys" pop-up at startup.
|
||||
@ -102,6 +85,11 @@
|
||||
draw-border-with-background false
|
||||
}
|
||||
|
||||
// layer-rule {
|
||||
// match namespace="^awww-daemonbackdrop$"
|
||||
// place-within-backdrop true
|
||||
// }
|
||||
|
||||
output "eDP-1" {
|
||||
mode "2880x1920@120.000"
|
||||
scale 2
|
||||
@ -111,24 +99,26 @@
|
||||
binds {
|
||||
Mod+Shift+Minus { show-hotkey-overlay; }
|
||||
|
||||
Mod+Shift+S hotkey-overlay-title="Make a screenshot selection" { spawn-sh "noctalia msg screenshot-region";}
|
||||
|
||||
Mod+T hotkey-overlay-title="Open a Terminal: kitty" { spawn "kitty"; }
|
||||
Mod+D hotkey-overlay-title="Run an Application: fuzzel" { spawn "fuzzel"; }
|
||||
Super+L hotkey-overlay-title="Lock the Screen: hyprlock" { spawn "hyprlock"; }
|
||||
Mod+D hotkey-overlay-title="Run an Application" { spawn-sh "noctalia msg panel-toggle launcher"; }
|
||||
Super+L hotkey-overlay-title="Lock the Screen" { spawn-sh "noctalia msg session lock"; }
|
||||
|
||||
Super+Alt+S allow-when-locked=true hotkey-overlay-title=null { spawn-sh "pkill orca || exec orca"; }
|
||||
|
||||
XF86AudioRaiseVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1+ -l 1.0"; }
|
||||
XF86AudioLowerVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1-"; }
|
||||
XF86AudioMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"; }
|
||||
XF86AudioMicMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"; }
|
||||
XF86AudioRaiseVolume allow-when-locked=true { spawn-sh "noctalia msg volume-up"; }
|
||||
XF86AudioLowerVolume allow-when-locked=true { spawn-sh "noctalia msg volume-down"; }
|
||||
XF86AudioMute allow-when-locked=true { spawn-sh "noctalia msg volume-mute"; }
|
||||
XF86AudioMicMute allow-when-locked=true { spawn-sh "noctalia msg mic-mute"; }
|
||||
|
||||
XF86AudioPlay allow-when-locked=true { spawn-sh "playerctl play-pause"; }
|
||||
XF86AudioStop allow-when-locked=true { spawn-sh "playerctl stop"; }
|
||||
XF86AudioPrev allow-when-locked=true { spawn-sh "playerctl previous"; }
|
||||
XF86AudioNext allow-when-locked=true { spawn-sh "playerctl next"; }
|
||||
|
||||
XF86MonBrightnessUp allow-when-locked=true { spawn "brightnessctl" "--class=backlight" "set" "+10%"; }
|
||||
XF86MonBrightnessDown allow-when-locked=true { spawn "brightnessctl" "--class=backlight" "set" "10%-"; }
|
||||
XF86MonBrightnessUp allow-when-locked=true { spawn-sh "noctalia msg brightness-up"; }
|
||||
XF86MonBrightnessDown allow-when-locked=true { spawn-sh "noctalia msg brightness-down"; }
|
||||
|
||||
Mod+O repeat=false { toggle-overview; }
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 2.0 KiB |
|
Before Width: | Height: | Size: 18 KiB |
BIN
other/pfp.png
|
Before Width: | Height: | Size: 211 KiB |
@ -1,9 +0,0 @@
|
||||
mkdir -p /var/lib/AccountsService/{icons,users}
|
||||
cp /home/cookiez/NixOS/other/pfp.png /var/lib/AccountsService/icons/cookiez
|
||||
echo -e "[User]\nIcon=/var/lib/AccountsService/icons/cookiez\n" > /var/lib/AccountsService/users/cookiez
|
||||
|
||||
chown root:root /var/lib/AccountsService/users/cookiez
|
||||
chmod 0600 /var/lib/AccountsService/users/cookiez
|
||||
|
||||
chown root:root /var/lib/AccountsService/icons/cookiez
|
||||
chmod 0444 /var/lib/AccountsService/icons/cookiez
|
||||
|
Before Width: | Height: | Size: 134 KiB |
|
Before Width: | Height: | Size: 2.8 MiB |
|
Before Width: | Height: | Size: 2.7 MiB |
|
Before Width: | Height: | Size: 3.1 MiB |
@ -12,6 +12,11 @@
|
||||
description = "Automatically start Yakuake";
|
||||
after = ["graphical-session.target"];
|
||||
wantedBy = ["graphical-session.target"];
|
||||
|
||||
unitConfig = {
|
||||
ConditionEnvironment = "XDG_CURRENT_DESKTOP=KDE";
|
||||
};
|
||||
|
||||
serviceConfig = {
|
||||
ExecStart = ["${pkgs.kdePackages.yakuake}/bin/yakuake"];
|
||||
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
{
|
||||
config,
|
||||
inputs,
|
||||
pkgs,
|
||||
username,
|
||||
project,
|
||||
@ -8,13 +9,12 @@
|
||||
# Define the custom background package with the correct relative path
|
||||
background-package = pkgs.stdenvNoCC.mkDerivation {
|
||||
name = "background-image";
|
||||
src = ../other/wallpaper4.png; # Place wallpaper.jpg in the same directory as this config file
|
||||
src = "${inputs.cookiez-assets}/wallpapers/forest-cat.png"; # Place wallpaper.jpg in the same directory as this config file
|
||||
dontUnpack = true;
|
||||
installPhase = ''
|
||||
cp $src $out
|
||||
'';
|
||||
};
|
||||
|
||||
plasmaTheme = "desktop"; #Possible values are "laptop" or "desktop"
|
||||
powerProfile = "laptop"; #Possible values are "laptop" or "desktop"
|
||||
in {
|
||||
@ -38,8 +38,6 @@ in {
|
||||
"sddm".serviceConfig.KillMode = "mixed";
|
||||
};
|
||||
|
||||
programs.gamemode.enable = true;
|
||||
|
||||
services = {
|
||||
xserver = {
|
||||
enable = true;
|
||||
@ -74,7 +72,6 @@ in {
|
||||
|
||||
system.activationScripts.script.text = ''
|
||||
source /home/${username}/${project}/other/colors.sh
|
||||
source /home/${username}/${project}/other/pfp.sh
|
||||
'';
|
||||
|
||||
environment = {
|
||||
|
||||
@ -14,4 +14,7 @@
|
||||
]
|
||||
++ lib.optionals (plasmaTheme == "laptop") [./settings/laptop.nix]
|
||||
++ lib.optionals (plasmaTheme == "desktop") [./settings/desktop.nix];
|
||||
|
||||
#Add the wallpapers to be available to KDE wallpaper settings page
|
||||
xdg.dataFile."wallpapers/cookiez".source = "${inputs.cookiez-assets}/wallpapers";
|
||||
}
|
||||
|
||||
@ -123,7 +123,7 @@
|
||||
};
|
||||
};
|
||||
configFile = {
|
||||
plasmarc.Wallpapers.usersWallpapers = "/home/cookiez/NixOS/other/wallpaper1.png";
|
||||
plasmarc.Wallpapers.usersWallpapers = "${inputs.cookiez-assets}/wallpapers/pixel-desert.png";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||