Adapted hyprland configurations for new breaking changes, and some misc adjustments

adjusted hyprland config for new breaking changes

capitalized 'Description' keys in userservices

altered shell aliases and added missing autosuggest option in zsh/options.nix

rebuild now has dry run flags

added hyprpaper to packages.nix

updated check_updates service to check the upstream nixpkgs channel instead of my local flake pkgs
This commit is contained in:
2024-11-15 12:10:21 -05:00
parent 6d9e054a7a
commit 2431e4361b
8 changed files with 156 additions and 135 deletions

143
flake.lock generated
View File

@@ -20,11 +20,11 @@
]
},
"locked": {
"lastModified": 1729527199,
"narHash": "sha256-D5/YksfRga8Akd04ZtIkuYSIOjXVrAzQIQBSeplokzU=",
"lastModified": 1731496216,
"narHash": "sha256-nlQrNN+tmJ+iP6Ck/czwZI0Hxz3oNvUyGkVruxJwgwA=",
"owner": "hyprwm",
"repo": "aquamarine",
"rev": "8d732fa8aff8b12ef2b1e2f00fc8153e41312b72",
"rev": "3b00e96f90cb0040de6d88ad99bf5f4d443f0c59",
"type": "github"
},
"original": {
@@ -190,11 +190,11 @@
]
},
"locked": {
"lastModified": 1727826117,
"narHash": "sha256-K5ZLCyfO/Zj9mPFldf3iwS6oZStJcU4tSpiXTMYaaL0=",
"lastModified": 1730504689,
"narHash": "sha256-hgmguH29K2fvs9szpq2r3pz2/8cJd2LPS+b4tfNFCwE=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "3d04084d54bedc3d6b8b736c70ef449225c361b1",
"rev": "506278e768c2a08bec68eb62932193e341f55c90",
"type": "github"
},
"original": {
@@ -275,11 +275,11 @@
]
},
"locked": {
"lastModified": 1730302582,
"narHash": "sha256-W1MIJpADXQCgosJZT8qBYLRuZls2KSiKdpnTVdKBuvU=",
"lastModified": 1731363552,
"narHash": "sha256-vFta1uHnD29VUY4HJOO/D6p6rxyObnf+InnSMT4jlMU=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "af8a16fe5c264f5e9e18bcee2859b40a656876cf",
"rev": "cd1af27aa85026ac759d5d3fccf650abe7e1bbf0",
"type": "github"
},
"original": {
@@ -356,11 +356,11 @@
]
},
"locked": {
"lastModified": 1730490306,
"narHash": "sha256-AvCVDswOUM9D368HxYD25RsSKp+5o0L0/JHADjLoD38=",
"lastModified": 1731604581,
"narHash": "sha256-Qq2YZZaDTB3FZLWU/Hgh1uuWlUBl3cMLGB99bm7rFUM=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "1743615b61c7285976f85b303a36cdf88a556503",
"rev": "1d0862ee2d7c6f6cd720d6f32213fa425004be10",
"type": "github"
},
"original": {
@@ -377,11 +377,11 @@
]
},
"locked": {
"lastModified": 1730016908,
"narHash": "sha256-bFCxJco7d8IgmjfNExNz9knP8wvwbXU4s/d53KOK6U0=",
"lastModified": 1731535640,
"narHash": "sha256-2EckCJn4wxran/TsRiCOFcmVpep2m9EBKl99NBh2GnM=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "e83414058edd339148dc142a8437edb9450574c8",
"rev": "35b055009afd0107b69c286fca34d2ad98940d57",
"type": "github"
},
"original": {
@@ -416,11 +416,11 @@
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1729224425,
"narHash": "sha256-w9dNUedNe2qnhHuhcRf7A1l29+/6DxdMfwN6g4U3c/w=",
"lastModified": 1730743354,
"narHash": "sha256-gU4NySYyXeAzVaF5bI6BKmj2CdgiwGFnuPjXUId3Dx0=",
"owner": "hyprwm",
"repo": "contrib",
"rev": "d72bc8b1cd30d448bd438e8328f8eeb4c0f2ddb6",
"rev": "792f6b83dc719214e0e2a0b380c34f147b28ece2",
"type": "github"
},
"original": {
@@ -472,11 +472,11 @@
"xdph": "xdph"
},
"locked": {
"lastModified": 1730499652,
"narHash": "sha256-De3YRKpowtm15xN7hK0PdBpu96wwSyQE+qFoq9Gi6lM=",
"lastModified": 1731631654,
"narHash": "sha256-a6gy39yki4mX/Oj83aG08nNntXxXhM1wjksNXGZ8x5c=",
"ref": "refs/heads/main",
"rev": "32b18179dd789cde948c97eb3c2ebbdd6af36bf7",
"revCount": 5402,
"rev": "098e491a43e8b26f4382b48651a4131464bf6a2f",
"revCount": 5456,
"submodules": true,
"type": "git",
"url": "https://github.com/hyprwm/Hyprland"
@@ -549,11 +549,11 @@
"systems": "systems_2"
},
"locked": {
"lastModified": 1729810282,
"narHash": "sha256-ARBFaV1LtNfdvosdMuhVKX+q11JTx59Ed7/QK+BFmMc=",
"lastModified": 1731193353,
"narHash": "sha256-oiNuCxbwtfLOPGEoXjsojdVOXNEL5aFPtdELdaz65hw=",
"owner": "hyprwm",
"repo": "hyprpicker",
"rev": "89b9352d26cc0fd13cd6dc0a77ac18c795a44e59",
"rev": "4e8837ddabf669600c9571189e8a6a7937ba336a",
"type": "github"
},
"original": {
@@ -574,11 +574,11 @@
]
},
"locked": {
"lastModified": 1728941256,
"narHash": "sha256-WRypmcZ2Bw94lLmcmxYokVOHPJSZ7T06V49QZ4tkZeQ=",
"lastModified": 1731518387,
"narHash": "sha256-aZZw1ZvTMLkcA6udlvkA3hrCkuipoWLy8s/JNnIclxY=",
"owner": "hyprwm",
"repo": "hyprutils",
"rev": "fd4be8b9ca932f7384e454bcd923c5451ef2aa85",
"rev": "315fba5d21d87ddb756d4bebdb49f99d86b0ffe8",
"type": "github"
},
"original": {
@@ -676,16 +676,16 @@
]
},
"locked": {
"lastModified": 1729544999,
"narHash": "sha256-YcyJLvTmN6uLEBGCvYoMLwsinblXMkoYkNLEO4WnKus=",
"lastModified": 1729958008,
"narHash": "sha256-EiOq8jF4Z/zQe0QYVc3+qSKxRK//CFHMB84aYrYGwEs=",
"owner": "NuschtOS",
"repo": "ixx",
"rev": "65c207c92befec93e22086da9456d3906a4e999c",
"rev": "9fd01aad037f345350eab2cd45e1946cc66da4eb",
"type": "github"
},
"original": {
"owner": "NuschtOS",
"ref": "v0.0.5",
"ref": "v0.0.6",
"repo": "ixx",
"type": "github"
}
@@ -698,11 +698,11 @@
]
},
"locked": {
"lastModified": 1730184279,
"narHash": "sha256-6OB+WWR6gnaWiqSS28aMJypKeK7Pjc2Wm6L0MtOrTuA=",
"lastModified": 1731454423,
"narHash": "sha256-TtwvgFxUa0wyptLhQbKaixgNW1UXf3+TDqfX3Kp63oM=",
"owner": "lnl7",
"repo": "nix-darwin",
"rev": "b379bd4d872d159e5189053ce9a4adf86d56db4b",
"rev": "6c71c49e2448e51ad830ed211024e6d0edc50116",
"type": "github"
},
"original": {
@@ -729,11 +729,11 @@
},
"nixpkgs-stable": {
"locked": {
"lastModified": 1720386169,
"narHash": "sha256-NGKVY4PjzwAa4upkGtAMz1npHGoRzWotlSnVlqI40mo=",
"lastModified": 1730741070,
"narHash": "sha256-edm8WG19kWozJ/GqyYx2VjW99EdhjKwbY3ZwdlPAAlo=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "194846768975b7ad2c4988bdb82572c00222c0d7",
"rev": "d063c1dd113c91ab27959ba540c0d9753409edf3",
"type": "github"
},
"original": {
@@ -745,11 +745,11 @@
},
"nixpkgs_2": {
"locked": {
"lastModified": 1729413321,
"narHash": "sha256-I4tuhRpZFa6Fu6dcH9Dlo5LlH17peT79vx1y1SpeKt0=",
"lastModified": 1731139594,
"narHash": "sha256-IigrKK3vYRpUu+HEjPL/phrfh7Ox881er1UEsZvw9Q4=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "1997e4aa514312c1af7e2bda7fad1644e778ff26",
"rev": "76612b17c0ce71689921ca12d9ffdc9c23ce40b2",
"type": "github"
},
"original": {
@@ -777,11 +777,11 @@
},
"nixpkgs_4": {
"locked": {
"lastModified": 1730200266,
"narHash": "sha256-l253w0XMT8nWHGXuXqyiIC/bMvh1VRszGXgdpQlfhvU=",
"lastModified": 1731319897,
"narHash": "sha256-PbABj4tnbWFMfBp6OcUK5iGy1QY+/Z96ZcLpooIbuEI=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "807e9154dcb16384b1b765ebe9cd2bba2ac287fd",
"rev": "dc460ec76cbff0e66e269457d7b728432263166c",
"type": "github"
},
"original": {
@@ -793,11 +793,11 @@
},
"nixpkgs_5": {
"locked": {
"lastModified": 1725194671,
"narHash": "sha256-tLGCFEFTB5TaOKkpfw3iYT9dnk4awTP/q4w+ROpMfuw=",
"lastModified": 1731531548,
"narHash": "sha256-sz8/v17enkYmfpgeeuyzniGJU0QQBfmAjlemAUYhfy8=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "b833ff01a0d694b910daca6e2ff4a3f26dee478c",
"rev": "24f0d4acd634792badd6470134c387a3b039dace",
"type": "github"
},
"original": {
@@ -822,11 +822,11 @@
"treefmt-nix": "treefmt-nix"
},
"locked": {
"lastModified": 1730499477,
"narHash": "sha256-olt0Sx4alDxv3ko9BgbV3SsE2KQ/Tf0/Az1Fr9s2Y6U=",
"lastModified": 1731675303,
"narHash": "sha256-Pd0ZZICCwwDIE+ruHTDg8Oaizna5bJrdw5BSTht+Pdc=",
"owner": "nix-community",
"repo": "nixvim",
"rev": "356896f58dde22ee16481b7c954e340dceec340d",
"rev": "46e574d4ea1642dd87a6bfb162053c52b2e4878b",
"type": "github"
},
"original": {
@@ -837,11 +837,11 @@
},
"nur": {
"locked": {
"lastModified": 1730540878,
"narHash": "sha256-JYfoVW5lsfv4bo87U6mqbC3Jh+EBImU5iUsHJlOkyAI=",
"lastModified": 1731682507,
"narHash": "sha256-1gZCrmPQ3mWwXl3b3KM53DuS0SVpvZB+qwJcMT1qDB8=",
"owner": "nix-community",
"repo": "NUR",
"rev": "57df81c2bcabc503171defb232a0e11710ddaaf9",
"rev": "dd830ca21979e6566596d7acaa5d761d4421c278",
"type": "github"
},
"original": {
@@ -860,11 +860,11 @@
]
},
"locked": {
"lastModified": 1730337772,
"narHash": "sha256-uTxvqDohfG85+zldO5Tf1B+fuAF8ZhMouNwG5S6OAnA=",
"lastModified": 1731347683,
"narHash": "sha256-BcSWCEUBShuB32LPif+EG0XGXyUi2jyjCSpGE1rbOws=",
"owner": "NuschtOS",
"repo": "search",
"rev": "4e0a7a95a3df3333771abc4df6a656e7baf67106",
"rev": "135d202e032be70c93b6d7d53592ef4799d6efde",
"type": "github"
},
"original": {
@@ -884,11 +884,11 @@
"nixpkgs-stable": "nixpkgs-stable"
},
"locked": {
"lastModified": 1729104314,
"narHash": "sha256-pZRZsq5oCdJt3upZIU4aslS9XwFJ+/nVtALHIciX/BI=",
"lastModified": 1731363552,
"narHash": "sha256-vFta1uHnD29VUY4HJOO/D6p6rxyObnf+InnSMT4jlMU=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "3c3e88f0f544d6bb54329832616af7eb971b6be6",
"rev": "cd1af27aa85026ac759d5d3fccf650abe7e1bbf0",
"type": "github"
},
"original": {
@@ -918,11 +918,11 @@
]
},
"locked": {
"lastModified": 1730521028,
"narHash": "sha256-vZtg4J+jOADDKgS+s821PeJiTXfawan8mzX3JM3xjqc=",
"lastModified": 1731644206,
"narHash": "sha256-J4HjGCDIJTBjlzhHDjQpbci/fMIE8eNcgOAKbDJUlBs=",
"owner": "gerg-l",
"repo": "spicetify-nix",
"rev": "191323d81e19efa0be5071e17263851e62f35685",
"rev": "f8f8cac5aabb30009610e7ee4b56f04291577a12",
"type": "github"
},
"original": {
@@ -948,11 +948,11 @@
"tinted-tmux": "tinted-tmux"
},
"locked": {
"lastModified": 1729963473,
"narHash": "sha256-uGjTjvvlGQfQ0yypVP+at0NizI2nrb6kz4wGAqzRGbY=",
"lastModified": 1731657386,
"narHash": "sha256-Mm/JL8tFUS1SOmmZDPcswExUxzw0VpHcEyZI1h58CGA=",
"owner": "danth",
"repo": "stylix",
"rev": "04afcfc0684d9bbb24bb1dc77afda7c1843ec93b",
"rev": "5ab1207b2fdeb5a022f2dd7cccf6be760f1b150f",
"type": "github"
},
"original": {
@@ -1024,16 +1024,17 @@
"tinted-foot": {
"flake": false,
"locked": {
"lastModified": 1696725948,
"narHash": "sha256-65bz2bUL/yzZ1c8/GQASnoiGwaF8DczlxJtzik1c0AU=",
"lastModified": 1726913040,
"narHash": "sha256-+eDZPkw7efMNUf3/Pv0EmsidqdwNJ1TaOum6k7lngDQ=",
"owner": "tinted-theming",
"repo": "tinted-foot",
"rev": "eedbcfa30de0a4baa03e99f5e3ceb5535c2755ce",
"rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "tinted-foot",
"rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4",
"type": "github"
}
},
@@ -1119,11 +1120,11 @@
]
},
"locked": {
"lastModified": 1728166987,
"narHash": "sha256-w6dVTguAn9zJ+7aPOhBQgDz8bn6YZ7b56cY8Kg5HJRI=",
"lastModified": 1730743262,
"narHash": "sha256-iTLqj3lU8kFehPm5tXpctzkD274t/k1nwSSq3qCWXeg=",
"owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland",
"rev": "fb9c8d665af0588bb087f97d0f673ddf0d501787",
"rev": "09b23cef06fe248e61cec8862c04b9bcb62f4b6d",
"type": "github"
},
"original": {

View File

@@ -125,7 +125,6 @@ in {
};
dwindle = {
no_gaps_when_only = false;
force_split = 0;
special_scale_factor = 1.0;
split_width_multiplier = 1.0;
@@ -137,7 +136,6 @@ in {
master = {
new_status = "master";
special_scale_factor = 1;
no_gaps_when_only = false;
};
decoration = {
@@ -158,12 +156,6 @@ in {
xray = true;
};
drop_shadow = true;
shadow_ignore_window = true;
shadow_offset = "0 2";
shadow_range = 20;
shadow_render_power = 3;
};
animations = {

View File

@@ -15,7 +15,7 @@
services = {
loginSound = {
Unit= {
description = "Plays a sound on login";
Description = "Plays a sound on login";
After = [ "graphical-session.target" ];
WantedBy = [ "graphical-session.target" ];
};
@@ -27,7 +27,7 @@
};
maintenanceCheck = {
Unit = {
description = "Check for updates in my maintained packages";
Description = "Check for updates in my maintained packages";
};
Service = {

View File

@@ -23,7 +23,6 @@
iv = "invoke";
cfgfilecount =
''find $FLAKEPATH -name "*.nix" | wc -l | toilet -f 3d | lolcat'';
#git
ga = "playshellsound ${self}/assets/sound/gitadd.wav; git add";
gcomm = "gitcommit_sfx";

View File

@@ -25,6 +25,11 @@
size = 10000;
share = true;
};
autosuggestion = {
enable = true;
highlight = "fg=#4C566A,underline";
};
};
};
}

View File

@@ -4,13 +4,16 @@ pkgs.writeShellApplication {
text = ''
hooray() { scheck && runbg aplay ${self}/assets/sound/update.wav; }
damn() { scheck && runbg aplay ${self}/assets/sound/error.wav; }
[ $# -eq 0 ] && echo -e "\033[1;4;38;2;243;139;168mUsage\033[0m: rebuild -h for home config, rebuild -s for sys config, rebuild -a for both" && damn && exit 1
[ $# -eq 0 ] && echo -e "\033[1;4;38;2;243;139;168mUsage\033[0m: rebuild -h for home config, rebuild -s for sys config, rebuild -a for both. Adding 'n' before the flag does a dry run, i.e. rebuild -nh" && damn && exit 1
scheck && runbg aplay ${self}/assets/sound/nixswitch-start.wav
case $1 in
"-h" ) if nh home switch -c ${host}Home "$FLAKEPATH"; then hooray; else damn; fi;;
"-s" ) if nh os switch -H ${host} "$FLAKEPATH"; then hooray; else damn; fi;;
"-a" ) if sudo sleep 0.1 && nh os switch -H ${host} "$FLAKEPATH" && nh home switch -c ${host}Home "$FLAKEPATH"; then hooray; else damn; fi;;
* ) echo -e "\033[1;4;38;2;243;139;168mUsage\033[0m: rebuild -h for home config, rebuild -s for sys config";;
"-nh" ) if nh home switch -n -c ${host}Home "$FLAKEPATH"; then hooray; else damn; fi;;
"-ns" ) if nh os switch -n -H ${host} "$FLAKEPATH"; then hooray; else damn; fi;;
"-na" ) if sudo sleep 0.1 && nh os switch -n -H ${host} "$FLAKEPATH" && nh home switch -n -c ${host}Home "$FLAKEPATH"; then hooray; else damn; fi;;
* ) echo -e "\033[1;4;38;2;243;139;168mUsage\033[0m: rebuild -h for home config, rebuild -s for sys config. Adding 'n' before the flag does a dry run, i.e. rebuild -nh" && damn && exit 1;;
esac
'';
}

View File

@@ -13,6 +13,7 @@
fail2ban
git
hyprland-workspaces
hyprpaper
hyprpicker
inetutils
kitty

View File

@@ -7,65 +7,85 @@ pkgs.stdenv.mkDerivation {
buildPhase = ''
mkdir -p $out/bin
cat > $out/bin/checkupdates.py <<- EOF
import os, re, json, requests, subprocess
flakePath = os.getenv('FLAKEPATH')
def nix_eval(expr):
import json
import subprocess
import requests
def get_packages_by_maintainer(target_maintainer):
try:
nix_env_command = [
"nix-env", "--meta", "--json", "-qaP"
]
jq_query = (
'to_entries[] | select(.value.meta.maintainers? // [] | '
f'any(.github == "{target_maintainer}")) | .value'
)
result = subprocess.run(
["nix", "eval", "--json", expr],
nix_env_command,
capture_output=True,
text=True,
check=True)
return json.loads(result.stdout)
check=True
)
filtered_packages = subprocess.run(
["jq", "-r", "-c", jq_query],
input=result.stdout,
capture_output=True,
text=True,
check=True
)
return [json.loads(pkg) for pkg in filtered_packages.stdout.strip().split('\n') if pkg]
except subprocess.CalledProcessError as e:
print(f"Error running 'nix eval' for {expr}: {e}")
return {}
packages = nix_eval(f"{flakePath}#pkgs.myPkgs")
target_maintainer = 'pagedMov'
maintained_packages = []
for pname in packages.keys():
maintainers_info = nix_eval(f"{flakePath}#pkgs.myPkgs.{pname}.meta.maintainers")
for maintainer in maintainers_info:
if maintainer.get('github') == target_maintainer:
# Collect relevant package details
version = nix_eval(f"{flakePath}#pkgs.myPkgs.{pname}.version") or "unknown"
repo_url = nix_eval(f"{flakePath}#pkgs.myPkgs.{pname}.meta.homepage") or ""
maintained_packages.append({
'pname': pname,
'version': version,
'repo': repo_url,
'maintainers': maintainers_info
})
break
print(json.dumps(maintained_packages, indent=2))
print(f"Error running nix-env or jq: {e}")
return []
def check_github_releases(maintained_packages):
github_api_template = "https://api.github.com/repos/{owner}/{repo}/releases/latest"
updates = []
for package in maintained_packages:
repo_url = package["repo"]
current_version = package["version"]
pname = package.get("pname", "unknown")
repo_url = package.get("meta", {}).get("homepage", "")
current_version = package.get("version", "unknown")
if "github.com" in repo_url:
owner_repo = repo_url.split("github.com/")[1].rstrip('/')
owner, repo = owner_repo.split('/')
api_url = github_api_template.format(owner=owner, repo=repo)
response = requests.get(api_url)
if response.status_code == 200:
latest_release = response.json()
latest_version = latest_release.get("tag_name", "").lstrip('v')
if latest_version and latest_version != current_version:
updates.append({"pkg": package["pname"], "version": latest_version})
updates.append({"pkg": pname, "version": latest_version})
else:
print(f"{package['pname']} is up to date.\n")
print(f"{pname} is up to date.\n")
else:
print(f"Failed to check version for {package['pname']} (HTTP {response.status_code}).\n")
print(f"Failed to check version for {pname} (HTTP {response.status_code}).\n")
else:
print(f"Skipping non-GitHub repository for {package['pname']}.\n")
print(f"Skipping non-GitHub repository for {pname}.\n")
return updates
def notify_updates(updates):
if updates:
update_string = '\n'.join([f" {update['pkg']} -> {update['version']}" for update in updates])
subprocess.run(["notify-send", "--icon=/home/pagedmov/.sysflake/assets/images/nixos-icon-generic.png",
"Maintenance Update", f"Package updates found:\n{update_string}"])
subprocess.run([
"notify-send",
"--icon=/home/pagedmov/.sysflake/assets/images/nixos-icon-generic.png",
"Maintenance Update",
f"Package updates found:\n{update_string}"
])
subprocess.run(["aplay", "-q", "-N", "/home/pagedmov/.sysflake/assets/sound/login.wav"])
target_maintainer = "pagedMov"
maintained_packages = get_packages_by_maintainer(target_maintainer)
if maintained_packages:
updates = check_github_releases(maintained_packages)
notify_updates(updates)
else:
print(f"No packages maintained by {target_maintainer} were found.")
EOF
'';
buildInputs = with pkgs; [ python3Packages.requests ];
buildInputs = with pkgs; [ python3Packages.requests jq ];
installPhase = ":";
}