mirror of
https://github.com/tomasriveral/nixos.git
synced 2026-10-10 17:02:43 +02:00
Compare commits
62
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
206780c3f9 | ||
|
|
6f342a6338 | ||
|
|
f1dae5ab9c | ||
|
|
b6690407f7 | ||
|
|
21c366244b | ||
|
|
ec22349a7a | ||
|
|
29c7a4a86c | ||
|
|
6263a11c4c | ||
|
|
1471a976f1 | ||
|
|
0ce25113e7 | ||
|
|
e49019c8ba | ||
|
|
bd85b284a6 | ||
|
|
7f2367720b | ||
|
|
14751f5cf0 | ||
|
|
419f5a6214 | ||
|
|
b5b329ab17 | ||
|
|
dc1b4caa24 | ||
|
|
c7d72333d4 | ||
|
|
04b3257c7d | ||
|
|
12bcb8ad6a | ||
|
|
229201a7c7 | ||
|
|
ace1780097 | ||
|
|
928b192611 | ||
|
|
3160e6a409 | ||
|
|
f76e16266b | ||
|
|
eec6da5803 | ||
|
|
282d076bf3 | ||
|
|
0e67b49ebd | ||
|
|
dd1c9bd990 | ||
|
|
20cef053c0 | ||
|
|
553796d6c7 | ||
|
|
63ec8d1945 | ||
|
|
588a1e77e8 | ||
|
|
eca6ad278d | ||
|
|
5e7550f6d7 | ||
|
|
abd6a6ca3c | ||
|
|
a7370a65e7 | ||
|
|
01cd080bf1 | ||
|
|
b24b16728a | ||
|
|
a80629a6e4 | ||
|
|
ff26348536 | ||
|
|
e672a99d95 | ||
|
|
35542be154 | ||
|
|
8b1e206d4f | ||
|
|
6304c65ea6 | ||
|
|
325ee56fa3 | ||
|
|
a9874f1b2a | ||
|
|
ba4f2b5bf2 | ||
|
|
72fae98a43 | ||
|
|
ab6b81a228 | ||
|
|
247ddefdc6 | ||
|
|
1a646b0c06 | ||
|
|
5d4d51b475 | ||
|
|
c6a30039e8 | ||
|
|
2b45b7f179 | ||
|
|
8268324958 | ||
|
|
2d0c655658 | ||
|
|
fb5cd58254 | ||
|
|
20ad4bb594 | ||
|
|
d83045353f | ||
|
|
806215b1b8 | ||
|
|
63baafdca6 |
No files matched your search
@@ -49,20 +49,30 @@ jobs:
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
- name: Check for changes
|
||||
run: |
|
||||
git fetch origin main "${{ steps.branch.outputs.source }}"
|
||||
HAS_CHANGES=true
|
||||
if git diff --quiet \
|
||||
"origin/main...origin/${{ steps.branch.outputs.source }}"; then
|
||||
HAS_CHANGES=false
|
||||
fi
|
||||
|
||||
- name: Check for existing PR
|
||||
id: existing
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
PR_NUMBER=$(gh pr list \
|
||||
--base main \
|
||||
--head "${{ steps.branch.outputs.source }}" \
|
||||
--state open \
|
||||
--json number \
|
||||
--jq '.[0].number // empty')
|
||||
if $HAS_CHANGES; then
|
||||
PR_NUMBER=$(gh pr list \
|
||||
--base main \
|
||||
--head "${{ steps.branch.outputs.source }}" \
|
||||
--state open \
|
||||
--json number \
|
||||
--jq '.[0].number // empty')
|
||||
|
||||
echo "number=$PR_NUMBER" >> "$GITHUB_OUTPUT"
|
||||
echo "number=$PR_NUMBER" >> "$GITHUB_OUTPUT"
|
||||
fi
|
||||
|
||||
- name: Create PR
|
||||
id: create
|
||||
@@ -70,28 +80,31 @@ jobs:
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
gh pr create \
|
||||
--base main \
|
||||
--head "${{ steps.branch.outputs.source }}" \
|
||||
--title "Weekly sync: ${{ steps.branch.outputs.source }} → main" \
|
||||
--body "This pull request was created automatically by GitHub Actions."
|
||||
if $HAS_CHANGES; then
|
||||
gh pr create \
|
||||
--base main \
|
||||
--head "${{ steps.branch.outputs.source }}" \
|
||||
--title "Weekly sync: ${{ steps.branch.outputs.source }} → main" \
|
||||
--body "This pull request was created automatically by GitHub Actions."
|
||||
|
||||
PR_NUMBER=$(gh pr list \
|
||||
--base main \
|
||||
--head "${{ steps.branch.outputs.source }}" \
|
||||
--state open \
|
||||
--json number \
|
||||
--jq '.[0].number')
|
||||
|
||||
echo "number=$PR_NUMBER" >> "$GITHUB_OUTPUT"
|
||||
PR_NUMBER=$(gh pr list \
|
||||
--base main \
|
||||
--head "${{ steps.branch.outputs.source }}" \
|
||||
--state open \
|
||||
--json number \
|
||||
--jq '.[0].number')
|
||||
|
||||
echo "number=$PR_NUMBER" >> "$GITHUB_OUTPUT"
|
||||
fi
|
||||
- name: Determine PR number
|
||||
id: pr
|
||||
run: |
|
||||
if [ -n "${{ steps.existing.outputs.number }}" ]; then
|
||||
echo "number=${{ steps.existing.outputs.number }}" >> "$GITHUB_OUTPUT"
|
||||
else
|
||||
echo "number=${{ steps.create.outputs.number }}" >> "$GITHUB_OUTPUT"
|
||||
if $HAS_CHANGES; then
|
||||
if [ -n "${{ steps.existing.outputs.number }}" ]; then
|
||||
echo "number=${{ steps.existing.outputs.number }}" >> "$GITHUB_OUTPUT"
|
||||
else
|
||||
echo "number=${{ steps.create.outputs.number }}" >> "$GITHUB_OUTPUT"
|
||||
fi
|
||||
fi
|
||||
|
||||
- name: Enable auto-merge
|
||||
@@ -99,7 +112,9 @@ jobs:
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
gh pr merge \
|
||||
"${{ steps.pr.outputs.number }}" \
|
||||
--auto \
|
||||
--merge
|
||||
if $HAS_CHANGES; then
|
||||
gh pr merge \
|
||||
"${{ steps.pr.outputs.number }}" \
|
||||
--auto \
|
||||
--merge
|
||||
fi
|
||||
Generated
+106
-43
@@ -1,5 +1,30 @@
|
||||
{
|
||||
"nodes": {
|
||||
"agenix": {
|
||||
"inputs": {
|
||||
"darwin": "darwin",
|
||||
"home-manager": [
|
||||
"home-manager"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"systems": "systems"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1770165109,
|
||||
"narHash": "sha256-9VnK6Oqai65puVJ4WYtCTvlJeXxMzAp/69HhQuTdl/I=",
|
||||
"owner": "ryantm",
|
||||
"repo": "agenix",
|
||||
"rev": "b027ee29d959fda4b60b57566d64c98a202e0feb",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "ryantm",
|
||||
"repo": "agenix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"caelestia-cli": {
|
||||
"inputs": {
|
||||
"caelestia-shell": [
|
||||
@@ -11,11 +36,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1780375472,
|
||||
"narHash": "sha256-Q8RAJoYlakA6B2I5DVcuxzNbhCNU1nnIjqQZYP1KGrM=",
|
||||
"lastModified": 1786071436,
|
||||
"narHash": "sha256-/CQJ781dRGWWUMrJ34vIj1PQnNEEWgnEEuod0r5LKGk=",
|
||||
"owner": "caelestia-dots",
|
||||
"repo": "cli",
|
||||
"rev": "d1c8c8fc09738d1b40576e97c274b4a11a2e0ac7",
|
||||
"rev": "751fbc555a83faba5dd589270d14eeb22afab174",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -34,11 +59,11 @@
|
||||
"quickshell": "quickshell"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1781178648,
|
||||
"narHash": "sha256-z6V1T7MHShM7TfFIMCDp94Bi1Wk9LJfK96vm8YFGY5M=",
|
||||
"lastModified": 1786238888,
|
||||
"narHash": "sha256-pnO0u0UUYwkr72pJR5Giu93LZfU/fhTKJZYa1xeM7Po=",
|
||||
"owner": "caelestia-dots",
|
||||
"repo": "shell",
|
||||
"rev": "a16c957a8bd13e0cfd09928ca0a22fecd3681e44",
|
||||
"rev": "817a220e8e87c4df9f3681033a0d8a8054cdaa30",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -47,6 +72,28 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"darwin": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"agenix",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1744478979,
|
||||
"narHash": "sha256-dyN+teG9G82G+m+PX/aSAagkC+vUv0SgUw3XkPhQodQ=",
|
||||
"owner": "lnl7",
|
||||
"repo": "nix-darwin",
|
||||
"rev": "43975d782b418ebf4969e9ccba82466728c2851b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "lnl7",
|
||||
"ref": "master",
|
||||
"repo": "nix-darwin",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"disko": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
@@ -72,12 +119,12 @@
|
||||
"nixpkgs-lib": "nixpkgs-lib"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1778716662,
|
||||
"narHash": "sha256-m1Yf0wZ8j1OHjTc2UwHwyQRSnNeSgLJOd7q5Y45hzi4=",
|
||||
"rev": "f7c1a2d347e4c52d5fb8d10cb4d94b5884e546fb",
|
||||
"revCount": 475,
|
||||
"lastModified": 1785627969,
|
||||
"narHash": "sha256-4dtXQk/NMePegK/nWp5NSeuZKLATItOq61lpEvmXqGw=",
|
||||
"rev": "427bf4bd9435fdf21321c8cc628c24efc14c0f7a",
|
||||
"revCount": 483,
|
||||
"type": "tarball",
|
||||
"url": "https://api.flakehub.com/f/pinned/hercules-ci/flake-parts/0.1.475%2Brev-f7c1a2d347e4c52d5fb8d10cb4d94b5884e546fb/019e2533-0324-7e90-93eb-29b02e1a61cd/source.tar.gz"
|
||||
"url": "https://api.flakehub.com/f/pinned/hercules-ci/flake-parts/0.1.483%2Brev-427bf4bd9435fdf21321c8cc628c24efc14c0f7a/019fc124-5bcc-79d1-a1e4-306df724dc0a/source.tar.gz"
|
||||
},
|
||||
"original": {
|
||||
"type": "tarball",
|
||||
@@ -86,7 +133,7 @@
|
||||
},
|
||||
"flake-utils": {
|
||||
"inputs": {
|
||||
"systems": "systems"
|
||||
"systems": "systems_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1731533236,
|
||||
@@ -108,11 +155,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1781319724,
|
||||
"narHash": "sha256-ZGuxexEMo4Xv28KJ0dX/m/PHN4oZIOnxHZpNTyrvx4M=",
|
||||
"lastModified": 1785119570,
|
||||
"narHash": "sha256-Rgs2xKnGLFWQscxUaXX07oyZeuMDOHEbqDOsgliLFGM=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "8355f0a16b2dbb06a97959a918af5b239bbe05ae",
|
||||
"rev": "d4fd24667c8cbef124bb70a20380cab75ec8474d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -124,11 +171,11 @@
|
||||
},
|
||||
"import-tree": {
|
||||
"locked": {
|
||||
"lastModified": 1778781969,
|
||||
"narHash": "sha256-Jjuz5CmSkur8KvLDoGa+vylEp+RkQtv4mt/qcMznpH0=",
|
||||
"lastModified": 1784254960,
|
||||
"narHash": "sha256-iI88R3wHz8wTKQb5orvpc51L/Xr64AJyxid/0MKa/b8=",
|
||||
"owner": "vic",
|
||||
"repo": "import-tree",
|
||||
"rev": "d321337efd0f23a9eb14a42adb7b2c29313ab274",
|
||||
"rev": "4ebb10ae17d5f1ad366e7aef5b92cb8eecf24f69",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -164,11 +211,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1780928816,
|
||||
"narHash": "sha256-s4wU4nfs8xsXvwPtD0yebTPaOgmtDesmEvWuKFES6cE=",
|
||||
"lastModified": 1786462419,
|
||||
"narHash": "sha256-A7Q3UIyzDg1O54E0W6HOQIzvsVJq/rMuelJR+ELLRvI=",
|
||||
"owner": "tomasriveral",
|
||||
"repo": "nix-git-cherry-picker",
|
||||
"rev": "785b747ebca67f3e11b49ef5a85f9d3635bfe85d",
|
||||
"rev": "aec69257dc9b68d875333ec9f4a7b310d878abd1",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -179,11 +226,11 @@
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1780902259,
|
||||
"narHash": "sha256-q8yYEC5f1mFlQO9RGna4LTc9QrcvWunX6FYp83munkQ=",
|
||||
"lastModified": 1786535285,
|
||||
"narHash": "sha256-rG5HKMAgAhMgydvKGtco6rqTxRq4EDZQCx9USLvVqYw=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "bd0ff2d3eac24699c3664d5966b9ef36f388e2ca",
|
||||
"rev": "9f78f44a87948854445dae0b6bf82b2e87e4efb5",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -195,11 +242,11 @@
|
||||
},
|
||||
"nixpkgs-lib": {
|
||||
"locked": {
|
||||
"lastModified": 1777168982,
|
||||
"narHash": "sha256-GOkGPcboWE9BmGCRMLX3worL4EMnsnG8MyKmXNeYuhQ=",
|
||||
"lastModified": 1785031560,
|
||||
"narHash": "sha256-OmshNvn2vupOFpYinLUu+1Dnpu4n7Q5N3ggGVNHpkUI=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixpkgs.lib",
|
||||
"rev": "f5901329dade4a6ea039af1433fb087bd9c1fe14",
|
||||
"rev": "0e79af5e3d4dcfcd676ab5ba3f95d2e3352e078c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -218,11 +265,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1781273662,
|
||||
"narHash": "sha256-50dd7Cs1mUHq1srw7UojdzCYOB4TfrIXMv7XHHPU9zw=",
|
||||
"lastModified": 1785077063,
|
||||
"narHash": "sha256-rJxX9Mq16TOiIlf+nNR4SaLsWf1yII8xsQpJUNio3Yg=",
|
||||
"owner": "tomasriveral",
|
||||
"repo": "nixpkgs-notifier",
|
||||
"rev": "12183f26e8b196d9906f82dc05f9672793c61038",
|
||||
"rev": "39a89ffbdc49cc9ab6f67bc4be7ea2f7d3e2b38c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -233,11 +280,11 @@
|
||||
},
|
||||
"nixpkgs-unstable": {
|
||||
"locked": {
|
||||
"lastModified": 1781268102,
|
||||
"narHash": "sha256-Zn5KTggEmUB3lXn/ccERNcBdddE6IaOFber9dWViWDg=",
|
||||
"lastModified": 1786534138,
|
||||
"narHash": "sha256-fBJMdnKUTUDtfi/BYLr71HLaC9dG382arxLF2Egg2uo=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "49a4bd0573c376468dd7996ddb6f9fa31d8c4d97",
|
||||
"rev": "044bfe75bfe4c7bbe043dc17b5e42ea823b84a09",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -257,11 +304,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1780908812,
|
||||
"narHash": "sha256-syxEJP0NNgVZYHp/zRVuz32VYf+ULD9itZk7V06SCos=",
|
||||
"lastModified": 1786346006,
|
||||
"narHash": "sha256-PDM9fB1zBhqVVE75WxRM7vIo3QhL2LGKKdd6N+hTGlg=",
|
||||
"owner": "tomasriveral",
|
||||
"repo": "notewrapper",
|
||||
"rev": "e670ef935f0dd87dc8a8c6982147a9b8dce7565e",
|
||||
"rev": "689c3074c03328e2086dc032a2fc3de00bbef466",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -281,11 +328,11 @@
|
||||
"rust-overlay": "rust-overlay"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1781158593,
|
||||
"narHash": "sha256-zxlheX4o1MK00dkYzoXm7Srj5SD9iOCSp4N7f1iShr0=",
|
||||
"lastModified": 1786270331,
|
||||
"narHash": "sha256-GRhNuYIXR/0WWBya4CHfTKyCbL3wuFPJC5yBh5pHU8s=",
|
||||
"owner": "r14dd",
|
||||
"repo": "patent",
|
||||
"rev": "68772d068088d62a030619090959165af5e71ed1",
|
||||
"rev": "d852cea921124a8b9002db9beb2af2d935af8130",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -302,11 +349,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1780303737,
|
||||
"narHash": "sha256-7HgdJBG4BgAPDyHKKxWtxj7nziqsQo6zQCXtwy+L9fs=",
|
||||
"lastModified": 1785704021,
|
||||
"narHash": "sha256-eQtczKMAS4ItlB4pr1B3MqBZiyRVl2nkqNdtyRSQMa8=",
|
||||
"ref": "refs/heads/master",
|
||||
"rev": "b66495fcc5022681b56b61f928c7acbe910e722c",
|
||||
"revCount": 821,
|
||||
"rev": "28771c7c74b42e20afca0b1b63980cb46515537c",
|
||||
"revCount": 835,
|
||||
"type": "git",
|
||||
"url": "https://git.outfoxxed.me/outfoxxed/quickshell"
|
||||
},
|
||||
@@ -317,6 +364,7 @@
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"agenix": "agenix",
|
||||
"caelestia-shell": "caelestia-shell",
|
||||
"disko": "disko",
|
||||
"flake-parts": "flake-parts",
|
||||
@@ -369,6 +417,21 @@
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems_2": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
|
||||
@@ -47,6 +47,11 @@
|
||||
url = "github:nix-community/disko";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
agenix = {
|
||||
url = "github:ryantm/agenix";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
inputs.home-manager.follows = "home-manager";
|
||||
};
|
||||
/*
|
||||
microPlugins-vivify = {
|
||||
url = "git+https://codeberg.org/gibbert/micro-vivify";
|
||||
@@ -70,7 +75,8 @@
|
||||
"steam"
|
||||
"steam-unwrapped"
|
||||
"cheatsheet.nvim"
|
||||
"zoom-us" "zoom"
|
||||
"zoom-us"
|
||||
"zoom"
|
||||
];
|
||||
mkUnfreePredicate = pkg:
|
||||
builtins.elem (inputs.nixpkgs.lib.getName pkg) unfreePkgs;
|
||||
|
||||
@@ -164,6 +164,10 @@
|
||||
install_url = "https://addons.mozilla.org/firefox/downloads/file/4790089/consumer_rights_wiki-latest.xpi";
|
||||
installation_mode = "force_installed";
|
||||
};
|
||||
"archivebox@tjhorner.dev" = {
|
||||
install_url = "https://addons.mozilla.org/firefox/downloads/file/4820668/archivebox_exporter-latest.xpi";
|
||||
installation_mode = "force_installed";
|
||||
};
|
||||
};
|
||||
DisableTelemetry = true;
|
||||
DisableFirefoxStudies = true;
|
||||
@@ -344,12 +348,6 @@
|
||||
keyword = "nixpkgs tracker";
|
||||
url = "https://nixpk.gs/pr-tracker.html";
|
||||
}
|
||||
{
|
||||
name = "fahrlehrer";
|
||||
tags = ["theorie" "fahrlehrer" "conduite"];
|
||||
keyword = "fahrlehrer24";
|
||||
url = "https://app.fahrlehrer24.ch/";
|
||||
}
|
||||
{
|
||||
name = "cogito";
|
||||
tags = ["cogito" "esprit" "critique"];
|
||||
@@ -398,6 +396,12 @@
|
||||
keyword = "rryan-tm logs";
|
||||
url = "https://nixpkgs-update-logs.nix-community.org";
|
||||
}
|
||||
{
|
||||
name = "Nix function search";
|
||||
tags = ["nixpkgs" "nix" "search"];
|
||||
keyword = "nix function search";
|
||||
url = "https://noogle.dev";
|
||||
}
|
||||
];
|
||||
};
|
||||
search = {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{self, ...}: {
|
||||
{...}: {
|
||||
flake.nixosModules.hyprland = {
|
||||
pkgs,
|
||||
pkgs-unstable,
|
||||
@@ -11,9 +11,6 @@
|
||||
capitaine-cursors-themed # cursor theme
|
||||
papirus-icon-theme
|
||||
papirus-folders
|
||||
self.packages.${pkgs.system}.custom-wallpaper
|
||||
self.packages.${pkgs.system}.custom-dontkillsteam # kill app (if not steam or tomato-c
|
||||
self.packages.${pkgs.system}.custom-killall # kill all windows except focused window
|
||||
xdg-utils
|
||||
];
|
||||
# enable hyprland WM
|
||||
@@ -37,493 +34,75 @@
|
||||
# Enable the X11 windowing system.
|
||||
services.xserver.enable = true;
|
||||
};
|
||||
flake.homeModules.hyprland-laptop = _: {
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
exec-once = [
|
||||
"qtbatticon" # custom battery tray
|
||||
"nixpkgs-notifier listen" # tracks PR merge in nixos-unstable
|
||||
];
|
||||
monitor = [
|
||||
"eDP-1, highres@highrr, 0x0, 1"
|
||||
];
|
||||
};
|
||||
flake.homeModules.hyprland-laptop = {
|
||||
home.file.".config/hypr/host.lua" = {
|
||||
text = ''
|
||||
hl.on("hyprland.start", function()
|
||||
hl.exec_cmd("qtbatticon")
|
||||
hl.exec_cmd("source /run/agenix/ntfy && nixpkgs-notifier listen")
|
||||
end)
|
||||
|
||||
hl.monitor({
|
||||
output = "eDP-1",
|
||||
mode = "highres@highrr",
|
||||
position = "0x0",
|
||||
scale = 1,
|
||||
})
|
||||
'';
|
||||
enable = true;
|
||||
force = true;
|
||||
};
|
||||
flake.homeModules.hyprland-desktop = _: {
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
monitor = [
|
||||
", highres@highrr, auto, 0.75"
|
||||
];
|
||||
exec-once = [
|
||||
"if [ -e \"/home/tomasr/icloudSync.sh\" ]; then /home/tomasr/icloudSync.sh; else notify-send \"icloudSync.sh doesn't exist\" \"See ~/nixos/modules/applications/hyprland.nix for more information\"; fi"
|
||||
# my icloud account uses an email that I don't want to make public. So the script isnt pushed to github. The script looks like:
|
||||
/*
|
||||
#!/etc/profiles/per-user/tomasr/bin/zsh
|
||||
if ! icloudpd --auth-only --username tomas.rivera_2009@icloud.com --dry-run; then
|
||||
notify-send "icloudpd is not logged in" "Please run icloudpd icloudpd --username my@email.address --password my_password --auth-only"
|
||||
exit 1
|
||||
fi
|
||||
icloudpd --directory ~/hdd/kdrive/Photo/IPhone/icloudpd-backup --username tomas.rivera_2009@icloud.com --watch-with-interval 3600 --no-progress-bar
|
||||
*/
|
||||
|
||||
];
|
||||
};
|
||||
};
|
||||
flake.homeModules.hyprland-desktop = {
|
||||
home.file.".config/hypr/host.lua" = {
|
||||
text = ''
|
||||
hl.monitor({
|
||||
output = "",
|
||||
mode = "preferred",
|
||||
position = "auto",
|
||||
scale = 0.75,
|
||||
})
|
||||
'';
|
||||
enable = true;
|
||||
force = true;
|
||||
};
|
||||
flake.homeModules.hyprland = {pkgs-unstable, ...}: let
|
||||
wallpaper = ../../assets/wallpaper1.jpg;
|
||||
in {
|
||||
#refer to https://wiki.hypr.land/Nix/Hyprland-on-Home-Manager/
|
||||
wayland.windowManager.hyprland.enable = true;
|
||||
wayland.windowManager.hyprland.package = pkgs-unstable.hyprland;
|
||||
#hint Electron apps to use on wayland;
|
||||
home.sessionVariables.NIXOS_OZONE_WL = "1";
|
||||
wayland.windowManager.hyprland.plugins = [
|
||||
#pkgs-unstable.hyprlandPlugins.hyprspace # currently broken
|
||||
pkgs-unstable.hyprlandPlugins.hypr-dynamic-cursors
|
||||
];
|
||||
wayland.windowManager.hyprland.configType = "hyprlang";
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
"$mod" = "SUPER";
|
||||
"$term" = "kitty";
|
||||
"$editor" = "nvim";
|
||||
"$notes" = "kitty --class \"custom-obsidianvaults\" --name \"Select Obsidian vault\" --hold custom-obsidianvaults";
|
||||
"$file" = "dolphin";
|
||||
"$browser" = "kitty --class \"custom-browserprofiles\" --name \"Select browser profile\" --hold custom-browserprofiles";
|
||||
# ▄▀█ █▄░█ █ █▀▄▀█ ▄▀█ ▀█▀ █ █▀█ █▄░█
|
||||
# █▀█ █░▀█ █ █░▀░█ █▀█ ░█░ █ █▄█ █░▀█
|
||||
animations = {
|
||||
enabled = true;
|
||||
bezier = [
|
||||
"wind, 0.05, 0.9, 0.1, 1.05"
|
||||
"winIn, 0.1, 1.1, 0.1, 1.1"
|
||||
"winOut, 0.3, -0.3, 0, 1"
|
||||
"liner, 1, 1, 1, 1"
|
||||
];
|
||||
animation = [
|
||||
"windows, 1, 6, wind, slide"
|
||||
"windowsIn, 1, 6, winIn, slide"
|
||||
"windowsOut, 1, 5, winOut, slide"
|
||||
"windowsMove, 1, 5, wind, slide"
|
||||
"border, 1, 1, liner"
|
||||
"borderangle, 1, 30, liner, loop"
|
||||
"fade, 1, 10, default"
|
||||
"workspaces, 1, 5, wind"
|
||||
];
|
||||
};
|
||||
};
|
||||
flake.homeModules.hyprland = {pkgs-unstable, ... }:
|
||||
let
|
||||
wallpaper1 = ../../assets/wallpaper1.jpg;
|
||||
wallpaper2 = ../../assets/wallpaper2.jpg;
|
||||
wallpaper3 = ../../assets/wallpaper3.jpg;
|
||||
wallpaper4 = ../../assets/wallpaper4.jpg;
|
||||
wallpaper5 = ../../assets/wallpaper5.jpg;
|
||||
|
||||
# █▀▀ █▄░█ █░█
|
||||
# ██▄ █░▀█ ▀▄▀
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Environment-variables/
|
||||
env = [
|
||||
"PATH, $PATH:$scrPath"
|
||||
"XDG_CURRENT_DESKTOP,Hyprland"
|
||||
"XDG_SESSION_TYPE,wayland"
|
||||
"XDG_SESSION_DESKTOP,Hyprland"
|
||||
"QT_QPA_PLATFORM,wayland;xcb"
|
||||
"QT_QPAPLATFORMTHEME,qt6ct"
|
||||
"QT_WAYLAND_DISABLE_WINDOWDECORATION,1"
|
||||
"MOZ_ENABLE_WAYLAND,1"
|
||||
"GDK_SCALE,1"
|
||||
hyprlandLua = builtins.replaceStrings
|
||||
[
|
||||
"WALLPAPER1/PATH/PLACEHOLDER"
|
||||
"WALLPAPER2/PATH/PLACEHOLDER"
|
||||
"WALLPAPER3/PATH/PLACEHOLDER"
|
||||
"WALLPAPER4/PATH/PLACEHOLDER"
|
||||
"WALLPAPER5/PATH/PLACEHOLDER"
|
||||
]
|
||||
[
|
||||
(toString wallpaper1)
|
||||
(toString wallpaper2)
|
||||
(toString wallpaper3)
|
||||
(toString wallpaper4)
|
||||
(toString wallpaper5)
|
||||
]
|
||||
(builtins.readFile ../../other/hyprland/hyprland.lua);
|
||||
in
|
||||
{
|
||||
#refer to https://wiki.hypr.land/Nix/Hyprland-on-Home-Manager/
|
||||
wayland.windowManager.hyprland.enable = true;
|
||||
wayland.windowManager.hyprland.package = pkgs-unstable.hyprland;
|
||||
#hint Electron apps to use on wayland;
|
||||
home.sessionVariables.NIXOS_OZONE_WL = "1";
|
||||
wayland.windowManager.hyprland.plugins = [
|
||||
#pkgs-unstable.hyprlandPlugins.hyprspace # currently broken
|
||||
#pkgs-unstable.hyprlandPlugins.hypr-dynamic-cursors
|
||||
];
|
||||
|
||||
# █ █▄░█ █▀█ █░█ ▀█▀
|
||||
# █ █░▀█ █▀▀ █▄█ ░█░
|
||||
|
||||
input = {
|
||||
kb_layout = ["ch"];
|
||||
follow_mouse = 1;
|
||||
sensitivity = 0;
|
||||
force_no_accel = 1;
|
||||
};
|
||||
|
||||
# █▄▀ █▀▀ █▄█ █▄▄ █ █▄░█ █▀▄ █ █▄░█ █▀▀ █▀
|
||||
# █░█ ██▄ ░█░ █▄█ █ █░▀█ █▄▀ █ █░▀█ █▄█ ▄█
|
||||
# caelestia shell drawers toggle dashboard
|
||||
# caelestia shell drawers toggle utilities
|
||||
|
||||
bind = [
|
||||
#hyprland/utility keybindings
|
||||
"$mod, W, togglefloating"
|
||||
"$mod, G, togglegroup"
|
||||
"Alt, Return, fullscreen"
|
||||
"$mod, Left, movefocus, l"
|
||||
"$mod, Right, movefocus, r"
|
||||
"$mod, Up, movefocus, u"
|
||||
"$mod, Down, movefocus, d"
|
||||
"Alt, Tab, movefocus, d"
|
||||
"$mod, 1, workspace, 1"
|
||||
"$mod, 2, workspace, 2"
|
||||
"$mod, 3, workspace, 3"
|
||||
"$mod, 4, workspace, 4"
|
||||
"$mod, 5, workspace, 5"
|
||||
"$mod, 6, workspace, 6"
|
||||
"$mod, 7, workspace, 7"
|
||||
"$mod, 8, workspace, 8"
|
||||
"$mod, 9, workspace, 9"
|
||||
"$mod, 0, workspace, 10"
|
||||
"$mod+Ctrl, Right, workspace, r+1"
|
||||
"$mod+Ctrl, Left, workspace, r-1"
|
||||
"$mod+Ctrl, Doown, workspace, empty"
|
||||
"$mod+Shift, 1, movetoworkspace, 1"
|
||||
"$mod+Shift, 2, movetoworkspace, 2"
|
||||
"$mod+Shift, 3, movetoworkspace, 3"
|
||||
"$mod+Shift, 4, movetoworkspace, 4"
|
||||
"$mod+Shift, 5, movetoworkspace, 5"
|
||||
"$mod+Shift, 6, movetoworkspace, 6"
|
||||
"$mod+Shift, 7, movetoworkspace, 7"
|
||||
"$mod+Shift, 8, movetoworkspace, 8"
|
||||
"$mod+Shift, 9, movetoworkspace, 9"
|
||||
"$mod+Shift, 0, movetoworkspace, 10"
|
||||
"$mod+Ctrl+Alt, Right, movetoworkspace, r+1"
|
||||
"$mod+Ctrl+Alt, Left, movetoworkspace, r-1"
|
||||
#"$mod, Backspace, exec, wlogout -b 4 -T 600 -B 600"
|
||||
"$mod, Backspace, exec, caelestia shell drawers toggle session"
|
||||
"$mod+Shift+Ctrl, Left, movewindow, l"
|
||||
"$mod+Shift+Ctrl, Right, movewindow, r"
|
||||
"$mod+Shift+Ctrl, Up, movewindow, u"
|
||||
"$mod+Shift+Ctrl, Down, movewindow, d"
|
||||
"$mod, mouse_down, workspace, e+1"
|
||||
"$mod, mouse_up, workspace, e-1"
|
||||
"$mod, V, exec, cliphist list | rofi -dmenu| cliphist decode | wl-copy" # copy paste
|
||||
"$mod, B, exec, hyprkeys -bkr | rofi -dmenu"
|
||||
#"$mod, A, tagwindow, noborder" # used to not apply image border
|
||||
"$mod, S, togglespecialworkspace,"
|
||||
"Alt+$mod, S, movetoworkspace, special"
|
||||
# for the scrolling layout
|
||||
"$mod, A, layoutmsg, move -col"
|
||||
"$mod, D, layoutmsg, move +col"
|
||||
#apps keybindings
|
||||
"$mod, T, exec, $term"
|
||||
"$mod, E, exec, $file"
|
||||
"$mod, F, exec, $browser"
|
||||
"$mod, N, exec, $notes"
|
||||
#"$mod+Shift, A, exec, rofi -show drun"
|
||||
"$mod+Shift, A, exec, caelestia shell drawers toggle launcher"
|
||||
"$mod, Q, exec, custom-dontkillsteam"
|
||||
#"Ctrl+Alt, W, exec, pkill waybar || waybar"
|
||||
"Ctrl+Alt, W, exec, caelestia shell drawers toggle sidebar"
|
||||
#"$mod, L, exec, swaylock -eFLK -i ${wallpaper}"
|
||||
"$mod, L, exec, caelestia shell lock lock"
|
||||
#"$mod, F11, exec, hyprshot -m window"
|
||||
", F11, exec, caelestia screenshot"
|
||||
#"$mod_SHIFT, S, exec, hyprshot -m region --clipboard only"
|
||||
# "$mod_SHIFT, S, exec, qs ipc call screenshot toggle"
|
||||
"$mod_SHIFT, S, exec, caelestia shell picker open"
|
||||
# framework 16 rgb macropad
|
||||
"Ctrl+$mod, 6, exec, custom-killall" # pos 1 1 killall apps except focused one
|
||||
"Ctrl+Alt, 7, exec, custom-performance" # pos 2 1 start performance mode
|
||||
#"Ctrl+Alt, 7, exec, caelestia shell gameMode toggle"
|
||||
# reloads the autostart programs # pos 3 1
|
||||
# we passed to caelestia-shell and stoped using that
|
||||
/*
|
||||
"Ctrl+$mod, 4, exec, sleep 1 && kitty -o font_size=16 -e sh -c 'custom-weather'"
|
||||
"Ctrl+$mod, 4, exec, sleep 1 && kitty -o font_size=11 -e sh -c 'custom-cowsay'"
|
||||
"Ctrl+$mod, 4, exec, kitty -e 'custom-launch'"
|
||||
"Ctrl+$mod, 4, exec, sleep 1 && kitty -o font_size=5 -e btm --theme gruvbox --disable-click --disable_advanced_kill --enable_cache_memory -g -R -T "
|
||||
"Ctrl+$mod, 4, exec, sleep 1 && kitty -o font_size=1 -e sh -c 'cmatrix -br'"
|
||||
#"Ctrl+Alt, 1, exec, swaync-client -t" # pos 4 1 notification center
|
||||
"Ctrl+Alt, 1, exec, qs ipc call notifications toggle"
|
||||
*/
|
||||
# pos 4 1 notification center.
|
||||
"Ctrl+Alt, 1, exec, caelestia shell drawers toggle sidebar"
|
||||
"Ctrl+Alt, 1, exec, [[ -f ~/.cache/hypr-battery-saver ]] || swaync-client -t"
|
||||
"Ctrl+$mod, 4, exec, caelestia shell notifs toggleDnd"
|
||||
"Ctrl+$mod, 3, exec, pavucontrol" # pos 1 2 audiocontrol
|
||||
"Ctrl+Shift+Alt, 0, exec, kitty --hold --class \"custom-changeAudioOutput\" --name \"Select audio output\" zsh -c \"custom-changeAudioOutput\"" # pos 2 2 change audio output fzf
|
||||
"Ctrl+$mod, 5, exec, gnome-characters" # pos 3 2 special chars
|
||||
"Ctrl+Alt, 8, exec, hyprpicker | tee >(wl-copy) | cliphist store" # pos 4 2 colorpicker
|
||||
"Ctrl+Alt, 0, exec, custom-tomato" # pos 1 3 pomodoro app
|
||||
"Ctrl+Alt, 2, exec, custom-bottom" # pos 2 3 btm (like htop but cleaner)
|
||||
"Ctrl+Alt, 9, exec, anki"
|
||||
# if hyprexpo plugin enabled bind = $mainMod, Space, hyprexpo:expo, toggle
|
||||
# maybe exec sudo framework-tools-tui
|
||||
|
||||
#plugins keybindings
|
||||
#"$mod, SPACE, overview:toggle, "
|
||||
];
|
||||
binde = [
|
||||
"$mod+Shift, Right, resizeactive, 30 0"
|
||||
"$mod+Shift, Left, resizeactive, -30, 0"
|
||||
"$mod+Shift, Up, resizeactive, 0 -30"
|
||||
"$mod+Shift, Down, resizeactive,m 0 30"
|
||||
];
|
||||
bindl = [
|
||||
", F1, exec, pactl set-sink-mute @DEFAULT_SINK@ toggle" #toggle audio mute
|
||||
", F5, exec, playerctl play-pause" # media F4-F6
|
||||
", F4, exec, playerctl previous"
|
||||
", F6, exec, playerctl next"
|
||||
];
|
||||
bindel = [
|
||||
", F2, exec, pactl set-sink-volume @DEFAULT_SINK@ -10%" # decrease volume
|
||||
", F3, exec, pactl set-sink-volume @DEFAULT_SINK@ +10%" # increase volume
|
||||
", F7, exec, brightnessctl s 10%-" # decrease brightness
|
||||
", F8, exec, brightnessctl s +10%" # increase brightness
|
||||
];
|
||||
bindm = [
|
||||
"$mod, mouse:272, movewindow"
|
||||
"$mod, mouse:273, resizewindow"
|
||||
"$mod, Z, movewindow"
|
||||
"$mod, X, resizewindow"
|
||||
];
|
||||
# █░░ ▄▀█ █░█ █▄░█ █▀▀ █░█
|
||||
# █▄▄ █▀█ █▄█ █░▀█ █▄▄ █▀█
|
||||
exec-once = [
|
||||
"dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP" # for XDPH
|
||||
"dbus-update-activation-environment --systemd --all" # for XDPH
|
||||
"systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP" # for XDPH
|
||||
"systemctl --user start xdg-desktop-portal-wlr.service"
|
||||
"blueman-applet" # systray app for Bluetooth
|
||||
"udiskie --no-automount --smart-tray" # front-end that allows to manage removable media
|
||||
"nm-applet --indicator" # systray app for Network/wifi
|
||||
#setups clipboard
|
||||
"rm -rf ~/.cache/cliphist/ && wl-paste --type text --watch cliphist store & wl-paste --type image --watch cliphist store"
|
||||
#"wl-paste --type text --watch cliphist store" # clipboard store text data
|
||||
#"wl-paste --type image --watch cliphist store" # clipboard store image data
|
||||
"custom-batterynotify"
|
||||
"custom-batterywarning"
|
||||
#"birdtray" # thunderbird tray app # curently broken
|
||||
#wallpapers/b
|
||||
"awww img ${wallpaper}"
|
||||
"awww-daemon"
|
||||
"sleep 1 && custom-wallpaper"
|
||||
"custom-checkKdrive && custom-mountkdrive" # checks if the remote works and mount it
|
||||
#"waybar"
|
||||
"custom-gitnotify"
|
||||
"custom-checkMatrix" # checks if matrix-commander-rs is connected which is important for other stuff
|
||||
#"custom-obsidianbackup" # backups the obsidian notes to kdrive and to a timed hidden dir (~/.Notes.backup/)
|
||||
#"QS-notifycache" # builds the cache that will be used for the notification history
|
||||
"sleep 4 & caelestia-shell" #works better if it sleeps a bit before
|
||||
"sleep 20 && ngcp pull --automatic" # see github.com/tomasriveral/nix-git-cherry-picker
|
||||
"rm ~/.cache/hypr-battery-saver"
|
||||
"rm ~/.cache/hypr-battery-saver.brightness"
|
||||
/*
|
||||
We stopped using that ######################### maybe we should desactivate those scripts
|
||||
# login autostart
|
||||
#######################
|
||||
"[workspace 1 silent] sleep 1 && kitty -o font_size=16 -e sh -c 'custom-weather'"
|
||||
"[workspace 1 silent] sleep 1 && kitty -o font_size=11 -e sh -c 'custom-cowsay'"
|
||||
"[workspace 1 silent] kitty -e 'custom-launch'"
|
||||
"[workspace 1 silent] sleep 1 && kitty -o font_size=5 -e btm --theme gruvbox --disable-click --disable_advanced_kill --enable_cache_memory -g -R -T "
|
||||
"[workspace 1 silent] sleep 1 && kitty -o font_size=1 -e sh -c 'cmatrix -br'"
|
||||
######################
|
||||
######################
|
||||
*/
|
||||
];
|
||||
splash = true; # remove default background on startup
|
||||
# gestures (also keybindings)
|
||||
gesture = [
|
||||
"3, right, move, +col"
|
||||
"3, left, move, -col"
|
||||
];
|
||||
|
||||
# █░░ ▄▀█ █▄█ █▀█ █░█ ▀█▀ █▀
|
||||
# █▄▄ █▀█ ░█░ █▄█ █▄█ ░█░ ▄█
|
||||
|
||||
dwindle = {
|
||||
preserve_split = true;
|
||||
};
|
||||
scrolling = {
|
||||
column_width = 0.45;
|
||||
};
|
||||
|
||||
# █▀▄▀█ █ █▀ █▀▀
|
||||
# █░▀░█ █ ▄█ █▄▄
|
||||
|
||||
misc = {
|
||||
vrr = 0;
|
||||
force_default_wallpaper = 0;
|
||||
};
|
||||
xwayland = {
|
||||
force_zero_scaling = true;
|
||||
};
|
||||
|
||||
# █▀▄▀█ █▀█ █▄░█ █ ▀█▀ █▀█ █▀█
|
||||
# █░▀░█ █▄█ █#░▀█ █ ░█░ █▄█ █▀▄
|
||||
monitor = [
|
||||
#",preferred, auto, auto"
|
||||
"HDMI-A-1, highres2highrr, auto-left, 1"
|
||||
];
|
||||
# _______ ___ __ __ _______ ___ __ _ _______
|
||||
#| || | | | | || || | | | | || |
|
||||
#| _ || | | | | || ___|| | | |_| || _____|
|
||||
#| |_| || | | |_| || | __ | | | || |_____
|
||||
#| ___|| |___ | || || || | | _ ||_____ |
|
||||
#| | | || || |_| || | | | | | _____| |
|
||||
#|___| |_______||_______||_______||___| |_| |__||_______|
|
||||
#
|
||||
"plugin:dynamic-cursors" = {
|
||||
enabled = true;
|
||||
threshold = 2;
|
||||
mode = "rotate";
|
||||
rotate = {
|
||||
# length in px of the simulated stick used to rotate the cursor
|
||||
# most realistic if this is your actual cursor size
|
||||
length = 20;
|
||||
offset = 0;
|
||||
};
|
||||
shake = {
|
||||
enabled = true;
|
||||
# use nearest-neighbour (pixelated) scaling when shaking
|
||||
# may look weird when effects are enabled
|
||||
nearest = true;
|
||||
threshold = 4;
|
||||
# magnification level immediately after shake start
|
||||
base = 4.0;
|
||||
# magnification increase per second when continuing to shake
|
||||
speed = 4.0;
|
||||
# how much the speed is influenced by the current shake intensitiy
|
||||
influence = 0.0;
|
||||
|
||||
# maximal magnification the cursor can reach
|
||||
# values below 1 disable the limit (e.g. 0)
|
||||
limit = 0.0;
|
||||
|
||||
# time in millseconds the cursor will stay magnified after a shake has ended
|
||||
timeout = 2000;
|
||||
|
||||
# show cursor behaviour `tilt`, `rotate`, etc. while shaking
|
||||
effects = true;
|
||||
|
||||
# enable ipc events for shake
|
||||
ipc = false;
|
||||
};
|
||||
};
|
||||
"plugin:overview" = {
|
||||
disableGestures = true;
|
||||
showEmptyWorkspace = true;
|
||||
workspaceActiveBorder = "rgb(ab7746)";
|
||||
disableBlur = true;
|
||||
};
|
||||
|
||||
#####################################################
|
||||
#####################################################
|
||||
# theme
|
||||
decoration = {
|
||||
dim_special = 0.3;
|
||||
rounding = 18;
|
||||
blur = {
|
||||
special = true;
|
||||
enabled = true;
|
||||
size = 4;
|
||||
passes = 2;
|
||||
new_optimizations = true;
|
||||
ignore_opacity = true;
|
||||
};
|
||||
};
|
||||
general = {
|
||||
gaps_in = 5;
|
||||
gaps_out = 15;
|
||||
border_size = 4;
|
||||
"col.active_border" = "rgba(ca6702ff) rgba(ecd3a0ff) 45deg";
|
||||
"col.inactive_border" = "rgba(f1dca7d9) rgba(ffe1a8d9) 45deg";
|
||||
layout = "dwindle";
|
||||
resize_on_border = true;
|
||||
};
|
||||
group = {
|
||||
"col.border_active" = "rgba(ca6702ff) rgba(ecd3a0ff) 45deg";
|
||||
"col.border_inactive" = "rgba(f1dca7d9) rgba(ffe1a8d9) 45deg";
|
||||
"col.border_locked_active" = "rgba(ca6702ff) rgba(ecd3a0ff) 45deg";
|
||||
"col.border_locked_inactive" = "rgba(f1dca7d9) rgba(ffe1a8d9) 45deg";
|
||||
};
|
||||
####################################################
|
||||
##################################################
|
||||
|
||||
# /$$ /$$ /$$
|
||||
#| $$ /$ | $$ | $$
|
||||
#| $$ /$$$| $$ /$$$$$$ /$$$$$$ | $$ /$$ /$$$$$$$ /$$$$$$ /$$$$$$ /$$$$$$$ /$$$$$$
|
||||
#| $$/$$ $$ $$ /$$__ $$ /$$__ $$| $$ /$$/ /$$_____/ /$$__ $$ |____ $$ /$$_____/ /$$__ $$
|
||||
#| $$$$_ $$$$| $$ \ $$| $$ \__/| $$$$$$/ | $$$$$$ | $$ \ $$ /$$$$$$$| $$ | $$$$$$$$
|
||||
#| $$$/ \ $$$| $$ | $$| $$ | $$_ $$ \____ $$| $$ | $$ /$$__ $$| $$ | $$_____/
|
||||
#| $$/ \ $$| $$$$$$/| $$ | $$ \ $$ /$$$$$$$/| $$$$$$$/| $$$$$$$| $$$$$$$| $$$$$$$
|
||||
#|__/ \__/ \______/ |__/ |__/ \__/|_______/ | $$____/ \_______/ \_______/ \_______/
|
||||
# | $$
|
||||
# | $$
|
||||
# |__/
|
||||
# see https://wiki.hypr.land/Configuring/Workspace-Rules/
|
||||
workspace = [
|
||||
"1, layout:master"
|
||||
"2, layout:scrolling, layoutopt:direction:right"
|
||||
"name:special, layout:scrolling"
|
||||
# used for smart gaps along some windowrules
|
||||
#"w[tv1], gapsout:1, gapsin:1"
|
||||
#"f[1], gapsout:1, gapsin:1"
|
||||
];
|
||||
|
||||
# █░█░█ █ █▄░█ █▀▄ █▀█ █░█░█ █▀█ █░█ █░░ █▀▀ █▀
|
||||
# ▀▄▀▄▀ █ █░▀█ █▄▀ █▄█ ▀▄▀▄▀ █▀▄ █▄█ █▄▄ ██▄ ▄█
|
||||
windowrule = [
|
||||
"opacity 0.90 0.90, match:class ^(firefox)$"
|
||||
"opacity 0.90 0.90, match:class ^(Brave-browser)$"
|
||||
"opacity 0.80 0.80, match:class ^(code-oss)$"
|
||||
"opacity 0.80 0.80, match:class ^(Code)$"
|
||||
"opacity 0.80 0.80, match:class ^(code-url-handler)$"
|
||||
"opacity 0.80 0.80, match:class ^(code-insiders-url-handler)$"
|
||||
"opacity 0.75 0.75, match:class ^(kitty)$"
|
||||
"opacity 0.80 0.80, match:class ^(org.kde.dolphin)$"
|
||||
"opacity 0.80 0.80, float on, match:class ^(org.kde.ark)$"
|
||||
"opacity 0.80 0.80, float on, match:class ^(nwg-look)$"
|
||||
"opacity 0.80 0.80, float on, match:class ^(qt5ct)$"
|
||||
"opacity 0.80 0.80, float on, match:class ^(qt6ct)$"
|
||||
"opacity 0.80 0.80, float on, match:class ^(kvantummanager)$"
|
||||
"opacity 0.80 0.70, float on, match:class ^(org.pulseaudio.pavucontrol)$"
|
||||
"opacity 0.80 0.70, float on, match:class ^(blueman-manager)$"
|
||||
"opacity 0.80 0.70, float on, match:class ^(nm-applet)$"
|
||||
"opacity 0.80 0.70, float on, match:class ^(nm-connection-editor)$"
|
||||
"opacity 0.80 0.70, float on, match:class ^(org.kde.polkit-kde-authentication-agent-1)$"
|
||||
"opacity 0.80 0.70, match:class ^(polkit-gnome-authentication-agent-1)$"
|
||||
"opacity 0.80 0.70, match:class ^(org.freedesktop.impl.portal.desktop.gtk)$"
|
||||
"opacity 0.80 0.70, match:class ^(org.freedesktop.impl.portal.desktop.hyprland)$"
|
||||
"opacity 0.70 0.70, match:class ^([Ss]team)$"
|
||||
"opacity 0.70 0.70, match:class ^(steamwebhelper)$"
|
||||
"opacity 0.70 0.70, match:class ^(Spotify)$"
|
||||
"opacity 0.70 0.70, match:initial_title ^(Spotify Free)$"
|
||||
"opacity 0.90 0.90, float on, match:class ^(com.github.rafostar.Clapper)$"
|
||||
"opacity 0.80 0.80, match:class ^(com.github.tchx84.Flatseal)$"
|
||||
"opacity 0.80 0.80, match:class ^(hu.kramo.Cartridges)$"
|
||||
"opacity 0.80 0.80, match:class ^(com.obsproject.Studio)$"
|
||||
"opacity 0.80 0.80, match:class ^(gnome-boxes)$"
|
||||
"opacity 0.80 0.80, match:class ^(discord)$"
|
||||
"opacity 0.80 0.80, match:class ^(WebCord)$"
|
||||
"opacity 0.80 0.80, match:class ^(ArmCord)$"
|
||||
"opacity 0.80 0.80, float on, match:class ^(app.drey.Warp)$"
|
||||
"opacity 0.80 0.80, float on, match:class ^(net.davidotek.pupgui2)$"
|
||||
"opacity 0.80 0.80, float on, match:class ^(yad)$"
|
||||
"opacity 0.80 0.80, float on, match:class ^(Signal)$"
|
||||
"opacity 0.80 0.80, float on, match:class ^(io.github.alainm23.planify)$"
|
||||
"opacity 0.80 0.80, float on, match:class ^(io.gitlab.theevilskeleton.Upscaler)$"
|
||||
"opacity 0.80 0.80, float on, match:class ^(com.github.unrud.VideoDownloader)$"
|
||||
"opacity 0.80 0.80, float on, match:class ^(io.gitlab.adhami3310.Impression)$"
|
||||
"opacity 0.80 0.80, float on, match:class ^(io.missioncenter.MissionCenter)$"
|
||||
"opacity 0.80 0.80, match:class ^(io.github.flattool.Warehouse)$"
|
||||
"float on, match:class ^(org.kde.dolphin)$, match:title ^(Progress Dialog — Dolphin)$"
|
||||
"float on, match:class ^(org.kde.dolphin)$, match:title ^(Copying — Dolphin)$"
|
||||
"float on, match:class ^(firefox)$, match:title ^(Picture-in-Picture)$"
|
||||
"float on, match:class ^(firefox)$, match:title ^(Library)$"
|
||||
"float on, match:class ^(kitty)$, match:title ^(top)$"
|
||||
"float on, match:class ^(kitty)$, match:title ^(btop)$"
|
||||
"float on, match:class ^(kitty)$, match:title ^(htop)$"
|
||||
"float on, match:class ^(vlc)$"
|
||||
"float on, match:class ^(eog)$"
|
||||
"float on, size 400 225, match:class ^(custom-browserprofiles)$"
|
||||
"float on, size 1050 200, match:class ^(custom-changeAudioOutput)$"
|
||||
"float on, size 400 175, match:class ^(custom-obsidianvaults)$"
|
||||
"float on, size 600 600, match:initial_class ^(custom-pomodoro)$"
|
||||
"float on, size 1500 800, match:initial_class ^(custom-bottom)$"
|
||||
# smart gaps/border is ugly with caelestia-shell
|
||||
#"border_size 2, match:float 0, match:workspace w[tv1]"
|
||||
#"rounding 1, match:float 0, match:workspace w[tv1]"
|
||||
#"border_size 2, match:float 0, match:workspace f[1]"
|
||||
#"rounding 1, match:float 0, match:workspace f[1]"
|
||||
];
|
||||
# add a float for tomato when in kitty
|
||||
#"plugin:imgborders:noimgborders, tag:noborder"
|
||||
layerrule = [
|
||||
"blur on, ignore_alpha 0, match:namespace rofi"
|
||||
"blur on, ignore_alpha 0, match:namespace notifications"
|
||||
"blur on, ignore_alpha 0, match:namespace swaync-notification-window"
|
||||
"blur on, ignore_alpha 0, match:namespace swaync-control-center"
|
||||
"blur on, match:namespace logout_dialog"
|
||||
];
|
||||
};
|
||||
wayland.windowManager.hyprland.configType = "lua";
|
||||
wayland.windowManager.hyprland.extraConfig = hyprlandLua;
|
||||
};
|
||||
}
|
||||
@@ -1,99 +0,0 @@
|
||||
_: {
|
||||
# for some reason perSystem can't expose pkgs-unstable so we need to expose it here
|
||||
# -----------------------------------------------------
|
||||
# Here are a bunch of scripts that interact with hyprland
|
||||
# Some are still used. Some are broken. Some are deprecated. But I do still keep them in case I want to go back to old tools
|
||||
# -----------------------------------------------------
|
||||
perSystem = {pkgs, ...}: let
|
||||
wallpaper1 = ../../assets/wallpaper1.jpg;
|
||||
wallpaper2 = ../../assets/wallpaper2.jpg;
|
||||
wallpaper3 = ../../assets/wallpaper3.jpg;
|
||||
wallpaper4 = ../../assets/wallpaper4.jpg;
|
||||
wallpaper5 = ../../assets/wallpaper5.jpg;
|
||||
in {
|
||||
# kills the app, but when it's steam or custom-pomodoro
|
||||
packages.custom-dontkillsteam = pkgs.writeShellApplication {
|
||||
name = "custom-dontkillsteam";
|
||||
runtimeInputs = with pkgs; [
|
||||
hyprland
|
||||
jq
|
||||
];
|
||||
text = ''
|
||||
class=$(hyprctl activewindow -j | jq -r ".class")
|
||||
if [[ "$class" == "Steam" || "$class" == "custom-pomodoro" ]]; then
|
||||
hyprctl dispatch movetoworkspacesilent special
|
||||
else
|
||||
hyprctl dispatch killactive ""
|
||||
fi
|
||||
|
||||
'';
|
||||
};
|
||||
packages.custom-killall = pkgs.writeShellApplication {
|
||||
name = "custom-killall";
|
||||
runtimeInputs = [
|
||||
pkgs.hyprland # for some reason pkgs-unstable doesn't work here
|
||||
pkgs.jq
|
||||
];
|
||||
text = ''
|
||||
active_workspace_id=$(hyprctl activeworkspace -j | jq -r '.id')
|
||||
|
||||
hyprctl clients -j |
|
||||
jq -r ".[]
|
||||
| select(.workspace.id==''${active_workspace_id})
|
||||
| select(.focusHistoryID!=0)
|
||||
| .pid" |
|
||||
xargs -r kill
|
||||
'';
|
||||
};
|
||||
packages.custom-wallpaper = pkgs.writeShellApplication {
|
||||
name = "custom-wallpaper";
|
||||
runtimeInputs = with pkgs; [
|
||||
socat
|
||||
awww
|
||||
];
|
||||
text = ''
|
||||
handle() {
|
||||
case $1 in
|
||||
workspace*)
|
||||
str=$1
|
||||
i=$((''${#str}-1))
|
||||
workspace="''${str:$i:1}"
|
||||
case $workspace in
|
||||
1 | 6)
|
||||
awww img -t none ${wallpaper1}
|
||||
;;
|
||||
2 | 7)
|
||||
awww img -t none ${wallpaper2}
|
||||
;;
|
||||
3 | 8)
|
||||
awww img -t none ${wallpaper3}
|
||||
;;
|
||||
4 | 9)
|
||||
awww img -t none ${wallpaper4}
|
||||
;;
|
||||
5 | 10 | 0)
|
||||
awww img -t none ${wallpaper5}
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
socat -U - UNIX-CONNECT:"$XDG_RUNTIME_DIR"/hypr/"$HYPRLAND_INSTANCE_SIGNATURE"/.socket2.sock | while read -r line; do handle "$line"; done
|
||||
'';
|
||||
};
|
||||
packages.custom-launch = pkgs.writeShellApplication {
|
||||
# used for the terminal autostart. Needs to get cleared and recall fastfetch so that the bar from oh-my-zsh get resized
|
||||
# unused
|
||||
name = "custom-launch";
|
||||
runtimeInputs = with pkgs; [
|
||||
zsh
|
||||
];
|
||||
text = ''
|
||||
sleep 2
|
||||
clear
|
||||
zsh
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -35,8 +35,8 @@
|
||||
CPUWeight = 1; # minimum relative CPU share
|
||||
};
|
||||
};
|
||||
systemd.user.timers.kdrive-sync = {
|
||||
wantedBy = [ "timers.target" ];
|
||||
systemd.user.timers.kdrive-sync = {
|
||||
wantedBy = ["timers.target"];
|
||||
timerConfig = {
|
||||
OnBootSec = "10m";
|
||||
OnUnitActiveSec = "1h";
|
||||
@@ -48,11 +48,12 @@
|
||||
name = "custom-checkKdrive";
|
||||
runtimeInputs = with pkgs; [
|
||||
rclone
|
||||
matrix-commander-rs
|
||||
curl
|
||||
libnotify
|
||||
];
|
||||
text = ''
|
||||
|
||||
# shellcheck disable=SC1091
|
||||
source /run/agenix/ntfy
|
||||
# waits for an internet connection. It pings both Google DNS and Cloudfare dns in case one of them is down
|
||||
until ping -c1 -W1 1.1.1.1 >/dev/null 2>&1 || \
|
||||
ping -c1 -W1 8.8.8.8 >/dev/null 2>&1
|
||||
@@ -72,9 +73,11 @@
|
||||
else
|
||||
echo "kdrive rclone failed with error: $output"
|
||||
notify-send "rclone kdrive failed" "$output"
|
||||
matrix-commander-rs --verbose -m "rclone kdrive failed.<br>Error: <pre>$output</pre><br><a href=\"https://matrix.to/#/@notificationbot_0000:matrix.org\">@notificationbot_0000</a>" \
|
||||
--html \
|
||||
-r "\!BXRRokBmEdNOyYdfOF:matrix.org"
|
||||
curl \
|
||||
-u ":$NTFY_TOKEN" \
|
||||
-d "Rclone couldnt access kdrive (rclone lsd kdrive). Error: $output" \
|
||||
-H "Title: Rclone kdrive" \
|
||||
"$NTFY_SERVER/Alerts"
|
||||
fi
|
||||
'';
|
||||
};
|
||||
|
||||
@@ -1,15 +1,13 @@
|
||||
_: {
|
||||
flake.nixosModules.mullvad = {pkgs-unstable, ...}: {
|
||||
flake.nixosModules.mullvad = _: {
|
||||
services.mullvad-vpn = {
|
||||
enable = true;
|
||||
package = pkgs-unstable.mullvad-vpn;
|
||||
};
|
||||
};
|
||||
flake.homeModules.mullvad = {pkgs-unstable, ...}: {
|
||||
flake.homeModules.mullvad = _: {
|
||||
programs.mullvad-vpn = {
|
||||
# gui
|
||||
enable = true;
|
||||
package = pkgs-unstable.mullvad-vpn;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -53,6 +53,8 @@ _: {
|
||||
pkgs-unstable.vimPlugins.nvim-treesitter-parsers.printf
|
||||
pkgs-unstable.vimPlugins.nvim-treesitter-parsers.python
|
||||
pkgs-unstable.vimPlugins.nvim-treesitter-parsers.sparql
|
||||
pkgs-unstable.vimPlugins.lean-nvim
|
||||
pkgs-unstable.vimPlugins.vim-ledger
|
||||
pkgs-unstable.vimPlugins.telescope-nvim
|
||||
pkgs-unstable.vimPlugins.nvim-scrollbar
|
||||
pkgs-unstable.vimPlugins.promise-async
|
||||
@@ -371,7 +373,7 @@ _: {
|
||||
},
|
||||
})
|
||||
|
||||
vim.lsp.enable({ "lua_ls", "clangd", "pylsp", "texlab", "nixd", "ltex"})
|
||||
vim.lsp.enable({ "lua_ls", "clangd", "pylsp", "texlab", "nixd", "ltex", "leanls"})
|
||||
-- =========================
|
||||
-- DASHBOARD
|
||||
-- =========================
|
||||
@@ -474,7 +476,12 @@ _: {
|
||||
-- =========================
|
||||
require('lualine').setup { options = { theme = "gruvbox_dark" } }
|
||||
|
||||
|
||||
-- ==================
|
||||
-- lean
|
||||
-- ==================
|
||||
require('lean').setup({
|
||||
mappings = true,
|
||||
})
|
||||
--==================0
|
||||
-- Some utils
|
||||
--==================
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{inputs, ...}: {
|
||||
flake.homeModules.notewrapper = {pkgs, ...}: {
|
||||
flake.homeModules.laptop-notewrapper = {pkgs, ...}: {
|
||||
home.packages = [
|
||||
inputs.notewrapper.packages.${pkgs.system}.default
|
||||
];
|
||||
@@ -8,7 +8,7 @@
|
||||
force = true;
|
||||
text = ''
|
||||
{
|
||||
"directory": ["~/Documents/Notes/", "~/test/"],
|
||||
"directory": ["~/kdrive/Notes/"],
|
||||
"render": true,
|
||||
"jumpToEndOfFileOnLaunch": true,
|
||||
"editor": "neovim",
|
||||
@@ -16,7 +16,36 @@
|
||||
"dateEntry": "# %Y %m %d %a",
|
||||
"newLineOnOpening": true,
|
||||
"backup": {
|
||||
"enable": true,
|
||||
"enable": false,
|
||||
"directory": {
|
||||
"~/Documents/Notes/": "~/kdrive/Notes/",
|
||||
"~/test/": "~/backupTest/"
|
||||
},
|
||||
"interval": "daily",
|
||||
"rsyncArgs": ["-Lqah", "--update"]
|
||||
}
|
||||
}
|
||||
'';
|
||||
};
|
||||
};
|
||||
flake.homeModules.desktop-notewrapper = {pkgs, ...}: {
|
||||
home.packages = [
|
||||
inputs.notewrapper.packages.${pkgs.system}.default
|
||||
];
|
||||
home.file.".config/notewrapper/config.json" = {
|
||||
enable = true;
|
||||
force = true;
|
||||
text = ''
|
||||
{
|
||||
"directory": ["~/hdd/kdrive/Notes/"],
|
||||
"render": true,
|
||||
"jumpToEndOfFileOnLaunch": true,
|
||||
"editor": "neovim",
|
||||
"journalRegex": ".*journal.*",
|
||||
"dateEntry": "# %Y %m %d %a",
|
||||
"newLineOnOpening": true,
|
||||
"backup": {
|
||||
"enable": false,
|
||||
"directory": {
|
||||
"~/Documents/Notes/": "~/kdrive/Notes/",
|
||||
"~/test/": "~/backupTest/"
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
_: {
|
||||
flake.homeModules.tmux = _: {
|
||||
programs.tmux = {
|
||||
enable = true;
|
||||
clock24 = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -50,7 +50,7 @@ _: {
|
||||
command cat "$@"
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
custom-eza() { # behaves differently if we just call it or if we pipe initContent
|
||||
if [[ -t 1 ]]; then
|
||||
eza -hlF -aa --color=always --hyperlink --group-directories-first --show-symlinks --icons=always --git --no-permissions "$@"
|
||||
@@ -88,6 +88,7 @@ _: {
|
||||
nnvim = "nvim";
|
||||
nvvim = "nvim";
|
||||
nviim = "nvim";
|
||||
hledger-ui = "puffin";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -36,7 +36,8 @@
|
||||
services.system76-scheduler.settings.cfsProfiles.enable = true; # Better scheduling for CPU cycles - thanks System76!!!
|
||||
services.thermald.enable = false; # Enable thermald, the temperature management daemon. (only necessary if on Intel CPUs)
|
||||
services.power-profiles-daemon.enable = true; # ppd is recommended over tlp for framework 16
|
||||
/*services.tlp = {
|
||||
/*
|
||||
services.tlp = {
|
||||
enable = true; # Enable TLP (better than gnomes internal power manager)
|
||||
settings = {
|
||||
CPU_BOOST_ON_AC = 1;
|
||||
@@ -51,7 +52,8 @@
|
||||
PLATFORM_PROFILE_ON_BAT = "powersave";
|
||||
STOP_CHARGE_THRESH_BAT1 = 80;
|
||||
};
|
||||
};*/
|
||||
};
|
||||
*/
|
||||
environment.systemPackages = [
|
||||
self.packages.${pkgs.system}.custom-performance
|
||||
];
|
||||
|
||||
@@ -2,8 +2,8 @@ _: {
|
||||
flake.nixosModules.hardwareUtils-laptop = {pkgs, ...}: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
# used for the framework 16 laptop
|
||||
framework-tool
|
||||
framework-tool-tui
|
||||
#framework-tool
|
||||
#framework-tool-tui
|
||||
vial # Open-source GUI and QMK fork for configuring your keyboard in real time
|
||||
];
|
||||
};
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
_: {
|
||||
flake.nixosModules.onxyboox = {pkgs, ...}: {
|
||||
services.gvfs.enable = true;
|
||||
environment.systemPackages = with pkgs; [
|
||||
gvfs
|
||||
calibre
|
||||
kdePackages.kio-extras
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
{self, ...}: {
|
||||
flake.nixosModules.performance-desktop = {pkgs,...}: {
|
||||
flake.nixosModules.performance-desktop = {pkgs, ...}: {
|
||||
environment.systemPackages = [
|
||||
self.packages.${pkgs.system}.custom-performance
|
||||
];
|
||||
|
||||
@@ -30,6 +30,8 @@
|
||||
games
|
||||
hardware-configuration-desktop
|
||||
hdd
|
||||
hledger
|
||||
hledger-desktop
|
||||
hyprland
|
||||
IO
|
||||
kdrive-desktop # we will setup this later
|
||||
@@ -69,7 +71,7 @@
|
||||
mullvad
|
||||
neovim
|
||||
nix-git-cherry-picker-desktop
|
||||
notewrapper
|
||||
desktop-notewrapper
|
||||
oh-my-zsh
|
||||
ripgrep
|
||||
rofi
|
||||
@@ -78,6 +80,7 @@
|
||||
swaync # used in performance mode
|
||||
thunderbird
|
||||
tomasr
|
||||
tmux
|
||||
vivify
|
||||
waybar-minimal # used in performance mode
|
||||
zoxide
|
||||
@@ -130,7 +133,7 @@
|
||||
home.homeDirectory = "/home/tomasr";
|
||||
|
||||
home.sessionVariables = {
|
||||
EDITOR = "neovim";
|
||||
EDITOR = "nvim";
|
||||
TERMINAL = "kitty";
|
||||
};
|
||||
|
||||
|
||||
@@ -9,6 +9,8 @@
|
||||
inherit (self) pkgs-unstable pkgs-local pkgs-master;
|
||||
};
|
||||
modules = with self.nixosModules; [
|
||||
inputs.agenix.nixosModules.default
|
||||
agenix
|
||||
# important do not remove
|
||||
home-manager-laptop
|
||||
laptop
|
||||
@@ -18,7 +20,7 @@
|
||||
audioAndMedia
|
||||
autoCleanup-laptop
|
||||
autoUpdate-laptop
|
||||
battery-laptop
|
||||
#battery-laptop
|
||||
bluetooth
|
||||
bootloader
|
||||
browsers
|
||||
@@ -31,6 +33,8 @@
|
||||
gitBackup
|
||||
hardware-configuration-laptop
|
||||
hardwareUtils-laptop
|
||||
hledger
|
||||
hledger-laptop
|
||||
hyprland
|
||||
IO
|
||||
kdrive-laptop
|
||||
@@ -43,6 +47,7 @@
|
||||
nixUtils
|
||||
notifications
|
||||
office
|
||||
onxyboox
|
||||
#ollama
|
||||
otherUtils
|
||||
printer
|
||||
@@ -70,7 +75,7 @@
|
||||
mullvad
|
||||
neovim
|
||||
nix-git-cherry-picker-laptop
|
||||
notewrapper
|
||||
laptop-notewrapper
|
||||
oh-my-zsh
|
||||
ripgrep
|
||||
rofi
|
||||
@@ -78,6 +83,7 @@
|
||||
ssh
|
||||
swaync # used in performance mode
|
||||
thunderbird
|
||||
tmux
|
||||
tomasr
|
||||
vivify
|
||||
waybar-minimal # used in performance mode
|
||||
@@ -126,8 +132,10 @@
|
||||
home.homeDirectory = "/home/tomasr";
|
||||
|
||||
home.sessionVariables = {
|
||||
EDITOR = "neovim";
|
||||
EDITOR = "nvim";
|
||||
TERMINAL = "kitty";
|
||||
SYSTEMD_PAGER = "cat";
|
||||
PAGER = "cat";
|
||||
};
|
||||
|
||||
# Required for Home Manager
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
{inputs, ...}: {
|
||||
flake.nixosModules.agenix = {pkgs, ...}: {
|
||||
environment.systemPackages = [
|
||||
inputs.agenix.packages.${pkgs.system}.default
|
||||
pkgs.age
|
||||
];
|
||||
age.identityPaths = [
|
||||
"/etc/ssh/ssh_host_ed25519_key"
|
||||
];
|
||||
age.secrets.ntfy = {
|
||||
file = ../../secrets/ntfy.age;
|
||||
owner = "tomasr";
|
||||
group = "users";
|
||||
mode = "0400";
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -19,6 +19,8 @@
|
||||
self.packages.${pkgs.system}.custom-changeAudioOutput
|
||||
kdePackages.okular
|
||||
kdePackages.dolphin
|
||||
kdePackages.dolphin-plugins
|
||||
kdePackages.ark
|
||||
pulseaudio # sound server
|
||||
playerctl # controls media player
|
||||
pavucontrol # PulseAudio Volume Control
|
||||
|
||||
@@ -2,8 +2,12 @@
|
||||
flake.nixosModules.autoCleanup-laptop = {
|
||||
pkgs,
|
||||
pkgs-unstable,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
age.secrets.ntfy = {
|
||||
file = ../../secrets/ntfy.age;
|
||||
};
|
||||
# Ensure your script is available system-wide
|
||||
environment.systemPackages = [
|
||||
self.packages.${pkgs.system}.custom-cleanNix-laptop
|
||||
@@ -17,6 +21,9 @@
|
||||
description = "NixOS configuration auto cleanup";
|
||||
|
||||
serviceConfig = {
|
||||
Environment = [
|
||||
"NTFY_SECRET=${config.age.secrets.ntfy.path}"
|
||||
];
|
||||
Type = "oneshot";
|
||||
|
||||
ExecStart = "/run/current-system/sw/bin/custom-cleanNix";
|
||||
@@ -54,8 +61,12 @@
|
||||
flake.nixosModules.autoCleanup-desktop = {
|
||||
pkgs,
|
||||
pkgs-unstable,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
age.secrets.ntfy = {
|
||||
file = ../../secrets/ntfy.age;
|
||||
};
|
||||
# Ensure your script is available system-wide
|
||||
environment.systemPackages = [
|
||||
self.packages.${pkgs.system}.custom-cleanNix-desktop
|
||||
@@ -69,6 +80,9 @@
|
||||
description = "NixOS configuration auto cleanup";
|
||||
|
||||
serviceConfig = {
|
||||
Environment = [
|
||||
"NTFY_SECRET=${config.age.secrets.ntfy.path}"
|
||||
];
|
||||
Type = "oneshot";
|
||||
|
||||
ExecStart = "/run/current-system/sw/bin/custom-cleanNix";
|
||||
@@ -108,14 +122,18 @@
|
||||
runtimeInputs = with pkgs; [
|
||||
git
|
||||
nixos-rebuild
|
||||
matrix-commander-rs
|
||||
curl
|
||||
libnotify
|
||||
alejandra
|
||||
deadnix
|
||||
statix
|
||||
];
|
||||
|
||||
text = ''
|
||||
set -e
|
||||
set -ex
|
||||
|
||||
# shellcheck disable=SC1090
|
||||
source "$NTFY_SECRET"
|
||||
|
||||
FLAKE_DIR="/home/tomasr/nixos"
|
||||
FLAKE="$FLAKE_DIR#laptop"
|
||||
@@ -139,7 +157,7 @@
|
||||
alejandra "$FLAKE_DIR" # formats the config
|
||||
echo "--------------------------------------------------------------"
|
||||
|
||||
if sudo /run/current-system/sw/bin/nixos-rebuild switch --flake "$FLAKE" 2> "$ERROR_FILE"; then # use /run/.../bin/ uses the sudoless rule
|
||||
if /run/wrappers/bin/sudo /run/current-system/sw/bin/nixos-rebuild switch --flake "$FLAKE" 2> "$ERROR_FILE"; then # use /run/.../bin/ uses the sudoless rule
|
||||
|
||||
if ! git -C "$FLAKE_DIR" diff --quiet HEAD; then
|
||||
git -C "$FLAKE_DIR" add -A
|
||||
@@ -148,9 +166,11 @@
|
||||
|
||||
notify-send "Nix auto cleanup" "Everything OK"
|
||||
|
||||
matrix-commander-rs --verbose -m "Nix auto cleanup. Everything OK.<br><a href=\"https://matrix.to/#/@notificationbot_0000:matrix.org\">@notificationbot_0000</a>" \
|
||||
--html \
|
||||
-r "\!BXRRokBmEdNOyYdfOF:matrix.org"
|
||||
curl \
|
||||
-u ":$NTFY_TOKEN" \
|
||||
-d "Everything OK" \
|
||||
-H "Title: Laptop Nix auto cleanup" \
|
||||
"$NTFY_SERVER/Alerts"
|
||||
else
|
||||
notify-send "Nix auto cleanup" "No changes"
|
||||
git -C "$FLAKE_DIR" push
|
||||
@@ -161,9 +181,11 @@
|
||||
|
||||
notify-send -u critical "Nix auto cleanup" "FAILED"
|
||||
|
||||
matrix-commander-rs --verbose -m "Nix auto cleanup failed.<br>Error: <pre>$ERROR_MSG</pre><br><a href=\"https://matrix.to/#/@notificationbot_0000:matrix.org\">@notificationbot_0000</a>" \
|
||||
--html \
|
||||
-r "\!BXRRokBmEdNOyYdfOF:matrix.org"
|
||||
curl \
|
||||
-u ":$NTFY_TOKEN" \
|
||||
-d "Nix auto cleanup failed. Error: $ERROR_MSG" \
|
||||
-H "Title: Laptop Nix auto cleanup" \
|
||||
"$NTFY_SERVER/Alerts"
|
||||
|
||||
git -C "$FLAKE_DIR" reset --hard "pre-cleanup-$TIME"
|
||||
fi
|
||||
@@ -178,14 +200,18 @@
|
||||
runtimeInputs = with pkgs; [
|
||||
git
|
||||
nixos-rebuild
|
||||
matrix-commander-rs
|
||||
curl
|
||||
libnotify
|
||||
alejandra
|
||||
deadnix
|
||||
statix
|
||||
];
|
||||
|
||||
text = ''
|
||||
set -e
|
||||
set -ex
|
||||
|
||||
# shellcheck disable=SC1090
|
||||
source "$NTFY_SECRET"
|
||||
|
||||
FLAKE_DIR="/home/tomasr/nixos"
|
||||
FLAKE="$FLAKE_DIR#desktop"
|
||||
@@ -209,7 +235,7 @@
|
||||
alejandra "$FLAKE_DIR" # formats the config
|
||||
echo "--------------------------------------------------------------"
|
||||
|
||||
if sudo /run/current-system/sw/bin/nixos-rebuild switch --flake "$FLAKE" 2> "$ERROR_FILE"; then # use /run/.../bin/ uses the sudoless rule
|
||||
if /run/wrappers/bin/sudo /run/current-system/sw/bin/nixos-rebuild switch --flake "$FLAKE" 2> "$ERROR_FILE"; then # use /run/.../bin/ uses the sudoless rule
|
||||
|
||||
if ! git -C "$FLAKE_DIR" diff --quiet HEAD; then
|
||||
git -C "$FLAKE_DIR" add -A
|
||||
@@ -218,9 +244,11 @@
|
||||
|
||||
notify-send "Nix auto cleanup" "Everything OK"
|
||||
|
||||
matrix-commander-rs --verbose -m "Nix auto cleanup. Everything OK.<br><a href=\"https://matrix.to/#/@notificationbot_0000:matrix.org\">@notificationbot_0000</a>" \
|
||||
--html \
|
||||
-r "\!BXRRokBmEdNOyYdfOF:matrix.org"
|
||||
curl \
|
||||
-u ":$NTFY_TOKEN" \
|
||||
-d "Everything OK" \
|
||||
-H "Title: Desktop Nix auto cleanup" \
|
||||
"$NTFY_SERVER/Alerts"
|
||||
else
|
||||
notify-send "Nix auto cleanup" "No changes"
|
||||
git -C "$FLAKE_DIR" push
|
||||
@@ -231,9 +259,11 @@
|
||||
|
||||
notify-send -u critical "Nix auto cleanup" "FAILED"
|
||||
|
||||
matrix-commander-rs --verbose -m "Nix auto cleanup failed.<br>Error: <pre>$ERROR_MSG</pre><br><a href=\"https://matrix.to/#/@notificationbot_0000:matrix.org\">@notificationbot_0000</a>" \
|
||||
--html \
|
||||
-r "\!BXRRokBmEdNOyYdfOF:matrix.org"
|
||||
curl \
|
||||
-u ":$NTFY_TOKEN" \
|
||||
-d "Nix auto cleanup failed. Error: $ERROR_MSG" \
|
||||
-H "Title: Desktop Nix auto cleanup" \
|
||||
"$NTFY_SERVER/Alerts"
|
||||
|
||||
git -C "$FLAKE_DIR" reset --hard "pre-cleanup-$TIME"
|
||||
fi
|
||||
|
||||
@@ -1,5 +1,12 @@
|
||||
{self, ...}: {
|
||||
flake.nixosModules.autoUpdate-laptop = {pkgs, ...}: {
|
||||
flake.nixosModules.autoUpdate-laptop = {
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
age.secrets.ntfy = {
|
||||
file = ../../secrets/ntfy.age;
|
||||
};
|
||||
# Ensure your script is available system-wide
|
||||
environment.systemPackages = [
|
||||
self.packages.${pkgs.system}.custom-autoupdate-laptop
|
||||
@@ -12,6 +19,9 @@
|
||||
description = "NixOS flake auto update";
|
||||
|
||||
serviceConfig = {
|
||||
Environment = [
|
||||
"NTFY_SECRET=${config.age.secrets.ntfy.path}"
|
||||
];
|
||||
Type = "oneshot";
|
||||
|
||||
ExecStart = "/run/current-system/sw/bin/custom-autoupdate";
|
||||
@@ -46,7 +56,14 @@
|
||||
};
|
||||
|
||||
## desktop
|
||||
flake.nixosModules.autoUpdate-desktop = {pkgs, ...}: {
|
||||
flake.nixosModules.autoUpdate-desktop = {
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
age.secrets.ntfy = {
|
||||
file = ../../secrets/ntfy.age;
|
||||
};
|
||||
# Ensure your script is available system-wide
|
||||
environment.systemPackages = [
|
||||
self.packages.${pkgs.system}.custom-autoupdate-desktop
|
||||
@@ -59,6 +76,9 @@
|
||||
description = "NixOS flake auto update";
|
||||
|
||||
serviceConfig = {
|
||||
Environment = [
|
||||
"NTFY_SECRET=${config.age.secrets.ntfy.path}"
|
||||
];
|
||||
Type = "oneshot";
|
||||
|
||||
ExecStart = "/run/current-system/sw/bin/custom-autoupdate";
|
||||
@@ -98,11 +118,14 @@
|
||||
runtimeInputs = with pkgs; [
|
||||
git
|
||||
nixos-rebuild
|
||||
matrix-commander-rs
|
||||
curl
|
||||
libnotify
|
||||
nix
|
||||
];
|
||||
|
||||
text = ''
|
||||
# shellcheck disable=SC1090
|
||||
source "$NTFY_SECRET"
|
||||
set -e
|
||||
|
||||
FLAKE_DIR="/home/tomasr/nixos"
|
||||
@@ -119,7 +142,7 @@
|
||||
# update lock only
|
||||
nix flake update --flake "$FLAKE_DIR"
|
||||
|
||||
if sudo /run/current-system/sw/bin/nixos-rebuild switch --flake "$FLAKE" 2> "$ERROR_FILE"; then # use /run/.../bin/ uses the sudoless rule
|
||||
if /run/wrappers/bin/sudo ${pkgs.nixos-rebuild}/bin/nixos-rebuild switch --flake "$FLAKE" 2> "$ERROR_FILE"; then # use /run/.../bin/ uses the sudoless rule
|
||||
|
||||
if ! git -C "$FLAKE_DIR" diff --quiet -- flake.lock; then
|
||||
git -C "$FLAKE_DIR" add flake.lock
|
||||
@@ -128,9 +151,11 @@
|
||||
|
||||
notify-send "Flake autoupdate" "Rebuild OK"
|
||||
|
||||
matrix-commander-rs --verbose -m "Flake rebuild succesfull.<br><a href=\"https://matrix.to/#/@notificationbot_0000:matrix.org\">@notificationbot_0000</a>" \
|
||||
--html \
|
||||
-r "\!BXRRokBmEdNOyYdfOF:matrix.org"
|
||||
curl \
|
||||
-u ":$NTFY_TOKEN" \
|
||||
-d "Laptop Flake rebuild successful" \
|
||||
-H "Title: Flake autoupdate" \
|
||||
"$NTFY_SERVER/Alerts"
|
||||
else
|
||||
notify-send "Flake autoupdate" "No changes"
|
||||
git -C "$FLAKE_DIR" push
|
||||
@@ -141,9 +166,12 @@
|
||||
|
||||
notify-send -u critical "Flake autoupdate" "FAILED"
|
||||
|
||||
matrix-commander-rs --verbose -m "Flake rebuild failed.<br>Error: <pre>$ERROR_MSG</pre><br><a href=\"https://matrix.to/#/@notificationbot_0000:matrix.org\">@notificationbot_0000</a>" \
|
||||
--html \
|
||||
-r "\!BXRRokBmEdNOyYdfOF:matrix.org"
|
||||
curl \
|
||||
-u ":$NTFY_TOKEN" \
|
||||
-d "Laptop Flake rebuild failed. Error: $ERROR_MSG" \
|
||||
-H "Title: Flake autoupdate FAILED" \
|
||||
-H "Priority: urgent" \
|
||||
"$NTFY_SERVER/Alerts"
|
||||
|
||||
git -C "$FLAKE_DIR" reset --hard "pre-autoupdate-$TIME"
|
||||
fi
|
||||
@@ -159,11 +187,14 @@
|
||||
runtimeInputs = with pkgs; [
|
||||
git
|
||||
nixos-rebuild
|
||||
matrix-commander-rs
|
||||
libnotify
|
||||
curl
|
||||
nix
|
||||
];
|
||||
|
||||
text = ''
|
||||
# shellcheck disable=SC1090
|
||||
source "$NTFY_SECRET"
|
||||
set -e
|
||||
|
||||
FLAKE_DIR="/home/tomasr/nixos"
|
||||
@@ -180,7 +211,7 @@
|
||||
# update lock only
|
||||
nix flake update --flake "$FLAKE_DIR"
|
||||
|
||||
if sudo /run/current-system/sw/bin/nixos-rebuild switch --flake "$FLAKE" 2> "$ERROR_FILE"; then # use /run/.../bin/ uses the sudoless rule
|
||||
if /run/wrappers/bin/sudo /run/current-system/sw/bin/nixos-rebuild switch --flake "$FLAKE" 2> "$ERROR_FILE"; then # use /run/.../bin/ uses the sudoless rule
|
||||
|
||||
if ! git -C "$FLAKE_DIR" diff --quiet -- flake.lock; then
|
||||
git -C "$FLAKE_DIR" add flake.lock
|
||||
@@ -189,9 +220,12 @@
|
||||
|
||||
notify-send "Flake autoupdate" "Rebuild OK"
|
||||
|
||||
matrix-commander-rs --verbose -m "Flake rebuild succesfull.<br><a href=\"https://matrix.to/#/@notificationbot_0000:matrix.org\">@notificationbot_0000</a>" \
|
||||
--html \
|
||||
-r "\!BXRRokBmEdNOyYdfOF:matrix.org"
|
||||
curl \
|
||||
-u ":$NTFY_TOKEN" \
|
||||
-d "Flake rebuild successful" \
|
||||
-H "Title: Desktop Flake autoupdate" \
|
||||
"$NTFY_SERVER/Alerts"
|
||||
|
||||
else
|
||||
notify-send "Flake autoupdate" "No changes"
|
||||
git -C "$FLAKE_DIR" push
|
||||
@@ -202,9 +236,12 @@
|
||||
|
||||
notify-send -u critical "Flake autoupdate" "FAILED"
|
||||
|
||||
matrix-commander-rs --verbose -m "Flake rebuild failed.<br>Error: <pre>$ERROR_MSG</pre><br><a href=\"https://matrix.to/#/@notificationbot_0000:matrix.org\">@notificationbot_0000</a>" \
|
||||
--html \
|
||||
-r "\!BXRRokBmEdNOyYdfOF:matrix.org"
|
||||
curl \
|
||||
-u ":$NTFY_TOKEN" \
|
||||
-d "Flake rebuild failed. Error: $ERROR_MSG" \
|
||||
-H "Title: Desktop Flake autoupdate FAILED" \
|
||||
-H "Priority: urgent" \
|
||||
"$NTFY_SERVER/Alerts"
|
||||
|
||||
git -C "$FLAKE_DIR" reset --hard "pre-autoupdate-$TIME"
|
||||
fi
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
_: {
|
||||
flake.nixosModules.hledger = {pkgs, ...}: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
hledger
|
||||
hledger-web
|
||||
asciinema # used for some hledger demos
|
||||
puffin
|
||||
];
|
||||
};
|
||||
flake.nixosModules.hledger-laptop = _: {
|
||||
environment.variables = {
|
||||
LEDGER_FILE = "/home/tomasr/kdrive/Budget/hledger.journal";
|
||||
};
|
||||
};
|
||||
flake.nixosModules.hledger-desktop = _: {
|
||||
environment.variables = {
|
||||
LEDGER_FILE = "/home/tomasr/hdd/kdrive/Budget/hledger.journal";
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -3,44 +3,26 @@
|
||||
environment.systemPackages = with pkgs; [
|
||||
libnotify # Library that sends desktop notifications to a notification daemon
|
||||
socat # Utility for bidirectional data transfer between two independent data channels (used to communicate between hyprland and awww to change wallpapers dinamically)
|
||||
matrix-commander-rs # matrix client used to send notifications from scripts to my phone
|
||||
# battery notifications
|
||||
self.packages.${pkgs.system}.custom-batterynotify
|
||||
self.packages.${pkgs.system}.custom-batterywarning
|
||||
# checks if matrix-commander-rs is installed and logged in
|
||||
self.packages.${pkgs.system}.custom-checkMatrix
|
||||
self.packages.${pkgs.system}.custom-gitnotify # checks if git is set up
|
||||
self.packages.${pkgs.system}.custom-checkKdrive # check if kdrive is set up with rclone
|
||||
zoom-us
|
||||
];
|
||||
};
|
||||
perSystem = {pkgs, ...}: {
|
||||
packages.custom-checkMatrix = pkgs.writeShellApplication {
|
||||
name = "custom-checkMatrix";
|
||||
|
||||
runtimeInputs = with pkgs; [
|
||||
matrix-commander-rs
|
||||
libnotify
|
||||
];
|
||||
|
||||
text = ''
|
||||
expected="@totorile1:unredacted.org"
|
||||
|
||||
current="$(matrix-commander-rs --whoami | tr -d '\n')"
|
||||
|
||||
if [ "$current" != "$expected" ]; then
|
||||
notify-send "matrix-commander-rs" \
|
||||
"You are not logged in as @totorile1:unredacted.org\nLog:\n$current"
|
||||
fi
|
||||
'';
|
||||
};
|
||||
packages.custom-gitnotify = pkgs.writeShellApplication {
|
||||
name = "custom-gitnotify";
|
||||
runtimeInputs = with pkgs; [
|
||||
git
|
||||
libnotify
|
||||
curl
|
||||
];
|
||||
text = ''
|
||||
# shellcheck disable=SC1091
|
||||
source /run/agenix/ntfy
|
||||
|
||||
# Check if git is installed
|
||||
if ! command -v git >/dev/null 2>&1; then
|
||||
exit 0
|
||||
@@ -53,9 +35,10 @@
|
||||
notify-send \
|
||||
"Git not configured" \
|
||||
"Set your identity\n or remove this warning by removing the custom-gitnotify line in\n ~/nixos/modules/applications/hyprland.nix"
|
||||
matrix-commander-rs --verbose -m "Git not configured.<br>Set your identify or remove this warning by removing the custom-gitnotify in ~/nixos/modules/applications/hyprland.nix<br><a href=\"https://matrix.to/#/@notificationbot_0000:matrix.org\">@notificationbot_0000</a>" \
|
||||
--html \
|
||||
-r "\!BXRRokBmEdNOyYdfOF:matrix.org"
|
||||
curl \
|
||||
-u ":$NTFY_TOKEN" \
|
||||
-d "Git not configured" \
|
||||
"$NTFY_SERVER/Alerts"
|
||||
fi
|
||||
'';
|
||||
};
|
||||
|
||||
@@ -48,11 +48,17 @@
|
||||
"configFetchTime": 1,
|
||||
"localNotify": true,
|
||||
"matrix": {
|
||||
"enable": true,
|
||||
"enable": false,
|
||||
"room": "!BXRRokBmEdNOyYdfOF:matrix.org",
|
||||
"ping": true,
|
||||
"userPing": "@notificationbot_0000",
|
||||
"userPingServer": "matrix.org"
|
||||
},
|
||||
"ntfy": {
|
||||
"enable": true,
|
||||
"auth": ":$NTFY_TOKEN",
|
||||
"server": "$NTFY_SERVER",
|
||||
"topic": "Alerts"
|
||||
}
|
||||
}
|
||||
'';
|
||||
|
||||
@@ -1,5 +1,12 @@
|
||||
{self, ...}: {
|
||||
flake.nixosModules.gitBackup = {pkgs, ...}: {
|
||||
flake.nixosModules.gitBackup = {
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
age.secrets.ntfy = {
|
||||
file = ../../secrets/ntfy.age;
|
||||
};
|
||||
environment.systemPackages = [
|
||||
self.packages.${pkgs.system}.custom-gitBackup
|
||||
];
|
||||
@@ -9,6 +16,9 @@
|
||||
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
Environment = [
|
||||
"NTFY_SECRET=${config.age.secrets.ntfy.path}"
|
||||
];
|
||||
|
||||
ExecStart = "/run/current-system/sw/bin/custom-gitBackup";
|
||||
|
||||
@@ -41,11 +51,14 @@
|
||||
name = "custom-gitBackup";
|
||||
runtimeInputs = with pkgs; [
|
||||
rsync
|
||||
matrix-commander-rs
|
||||
curl
|
||||
libnotify
|
||||
self.packages.${pkgs.system}.custom-checkKdrive
|
||||
];
|
||||
text = ''
|
||||
# shellcheck disable=SC1090
|
||||
source "$NTFY_SECRET"
|
||||
|
||||
# checks if kdrive is available
|
||||
custom-checkKdrive
|
||||
|
||||
@@ -69,9 +82,11 @@
|
||||
notify_error() {
|
||||
local message="$1"
|
||||
notify-send "Git Backup Failed" "$message"
|
||||
matrix-commander-rs --verbose -m "Git Backup Failed: $message <br><a href=\"https://matrix.to/#/@notificationbot_0000:matrix.org\">@notificationbot_0000</a>" \
|
||||
--html \
|
||||
-r "\!BXRRokBmEdNOyYdfOF:matrix.org"
|
||||
curl \
|
||||
-u ":$NTFY_TOKEN" \
|
||||
-d "Git backup failed. Error: $message" \
|
||||
-H "Title: Git Backup" \
|
||||
"$NTFY_SERVER/Alerts"
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -16,7 +16,15 @@ _: {
|
||||
networking.networkmanager.enable = true;
|
||||
|
||||
# Enable the OpenSSH daemon.
|
||||
# services.openssh.enable = true;
|
||||
services.openssh = {
|
||||
enable = true;
|
||||
hostKeys = [
|
||||
{
|
||||
path = "/etc/ssh/ssh_host_ed25519_key";
|
||||
type = "ed25519";
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
# Open ports in the firewall.
|
||||
# networking.firewall.allowedTCPPorts = [ ... ];
|
||||
|
||||
@@ -3,6 +3,12 @@ _: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
libreoffice
|
||||
birdtray
|
||||
kdePackages.korganizer
|
||||
#needed for korganizer
|
||||
kdePackages.akonadi
|
||||
kdePackages.akonadi-calendar
|
||||
kdePackages.akonadi-calendar-tools
|
||||
];
|
||||
programs.kde-pim.kontact = true; # needed for korganizer
|
||||
};
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
_: {
|
||||
flake.nixosModules.rss = {pkgs, ...}: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
nom
|
||||
newsflash
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
Migrating from hyprlang to lua is really difficult with home-manager. I tried to do it, but a some point half my keybinds stopped working and the nix language made everything much more difficult to debug. So what we will do is have a hyprland.lua which will import a host.lua (for laptop/desktop specific configuration). Both of them will be copied by home-manager. For the migration from .conf to .lua we will use some publicly available [website](https://eiontusk.github.io/hyprlang2lua/).
|
||||
@@ -0,0 +1,299 @@
|
||||
exec-once = /nix/store/8kih8alkk4qzgjchg5501r1c3a8a71aw-dbus-1.16.2/bin/dbus-update-activation-environment --systemd DISPLAY HYPRLAND_INSTANCE_SIGNATURE WAYLAND_DISPLAY XDG_CURRENT_DESKTOP XDG_SESSION_TYPE && systemctl --user stop hyprland-session.target && systemctl --user start hyprland-session.target
|
||||
$browser=kitty --class "custom-browserprofiles" --name "Select browser profile" --hold custom-browserprofiles
|
||||
$editor=nvim
|
||||
$file=dolphin
|
||||
$mod=SUPER
|
||||
$notes=kitty --class "custom-obsidianvaults" --name "Select Obsidian vault" --hold custom-obsidianvaults
|
||||
$term=kitty
|
||||
animations {
|
||||
bezier=wind, 0.05, 0.9, 0.1, 1.05
|
||||
bezier=winIn, 0.1, 1.1, 0.1, 1.1
|
||||
bezier=winOut, 0.3, -0.3, 0, 1
|
||||
bezier=liner, 1, 1, 1, 1
|
||||
animation=windows, 1, 6, wind, slide
|
||||
animation=windowsIn, 1, 6, winIn, slide
|
||||
animation=windowsOut, 1, 5, winOut, slide
|
||||
animation=windowsMove, 1, 5, wind, slide
|
||||
animation=border, 1, 1, liner
|
||||
animation=borderangle, 1, 30, liner, loop
|
||||
animation=fade, 1, 10, default
|
||||
animation=workspaces, 1, 5, wind
|
||||
enabled=true
|
||||
}
|
||||
|
||||
bind=$mod, W, togglefloating
|
||||
bind=$mod, G, togglegroup
|
||||
bind=Alt, Return, fullscreen
|
||||
bind=$mod, Left, movefocus, l
|
||||
bind=$mod, Right, movefocus, r
|
||||
bind=$mod, Up, movefocus, u
|
||||
bind=$mod, Down, movefocus, d
|
||||
bind=Alt, Tab, movefocus, d
|
||||
bind=$mod, 1, workspace, 1
|
||||
bind=$mod, 2, workspace, 2
|
||||
bind=$mod, 3, workspace, 3
|
||||
bind=$mod, 4, workspace, 4
|
||||
bind=$mod, 5, workspace, 5
|
||||
bind=$mod, 6, workspace, 6
|
||||
bind=$mod, 7, workspace, 7
|
||||
bind=$mod, 8, workspace, 8
|
||||
bind=$mod, 9, workspace, 9
|
||||
bind=$mod, 0, workspace, 10
|
||||
bind=$mod+Ctrl, Right, workspace, r+1
|
||||
bind=$mod+Ctrl, Left, workspace, r-1
|
||||
bind=$mod+Ctrl, Doown, workspace, empty
|
||||
bind=$mod+Shift, 1, movetoworkspace, 1
|
||||
bind=$mod+Shift, 2, movetoworkspace, 2
|
||||
bind=$mod+Shift, 3, movetoworkspace, 3
|
||||
bind=$mod+Shift, 4, movetoworkspace, 4
|
||||
bind=$mod+Shift, 5, movetoworkspace, 5
|
||||
bind=$mod+Shift, 6, movetoworkspace, 6
|
||||
bind=$mod+Shift, 7, movetoworkspace, 7
|
||||
bind=$mod+Shift, 8, movetoworkspace, 8
|
||||
bind=$mod+Shift, 9, movetoworkspace, 9
|
||||
bind=$mod+Shift, 0, movetoworkspace, 10
|
||||
bind=$mod+Ctrl+Alt, Right, movetoworkspace, r+1
|
||||
bind=$mod+Ctrl+Alt, Left, movetoworkspace, r-1
|
||||
bind=$mod, Backspace, exec, caelestia shell drawers toggle session
|
||||
bind=$mod+Shift+Ctrl, Left, movewindow, l
|
||||
bind=$mod+Shift+Ctrl, Right, movewindow, r
|
||||
bind=$mod+Shift+Ctrl, Up, movewindow, u
|
||||
bind=$mod+Shift+Ctrl, Down, movewindow, d
|
||||
bind=$mod, mouse_down, workspace, e+1
|
||||
bind=$mod, mouse_up, workspace, e-1
|
||||
bind=$mod, V, exec, cliphist list | rofi -dmenu| cliphist decode | wl-copy
|
||||
bind=$mod, B, exec, hyprkeys -bkr | rofi -dmenu
|
||||
bind=$mod, S, togglespecialworkspace,
|
||||
bind=Alt+$mod, S, movetoworkspace, special
|
||||
bind=$mod, A, layoutmsg, move -col
|
||||
bind=$mod, D, layoutmsg, move +col
|
||||
bind=$mod, T, exec, $term
|
||||
bind=$mod, E, exec, $file
|
||||
bind=$mod, F, exec, $browser
|
||||
bind=$mod, N, exec, $notes
|
||||
bind=$mod+Shift, A, exec, caelestia shell drawers toggle launcher
|
||||
bind=$mod, Q, exec, custom-dontkillsteam
|
||||
bind=Ctrl+Alt, W, exec, caelestia shell drawers toggle sidebar
|
||||
bind=$mod, L, exec, caelestia shell lock lock
|
||||
bind=, F11, exec, caelestia screenshot
|
||||
bind=$mod_SHIFT, S, exec, caelestia shell picker open
|
||||
bind=Ctrl+$mod, 6, exec, custom-killall
|
||||
bind=Ctrl+Alt, 7, exec, custom-performance
|
||||
bind=Ctrl+Alt, 1, exec, caelestia shell drawers toggle sidebar
|
||||
bind=Ctrl+$mod, 4, exec, caelestia shell notifs toggleDnd
|
||||
bind=Ctrl+$mod, 3, exec, pavucontrol
|
||||
bind=Ctrl+Shift+Alt, 0, exec, kitty --hold --class "custom-changeAudioOutput" --name "Select audio output" zsh -c "custom-changeAudioOutput"
|
||||
bind=Ctrl+$mod, 5, exec, gnome-characters
|
||||
bind=Ctrl+Alt, 8, exec, hyprpicker | tee >(wl-copy) | cliphist store
|
||||
bind=Ctrl+Alt, 0, exec, custom-tomato
|
||||
bind=Ctrl+Alt, 2, exec, custom-bottom
|
||||
bind=Ctrl+Alt, 9, exec, anki
|
||||
|
||||
binde=$mod+Shift, Right, resizeactive, 30 0
|
||||
binde=$mod+Shift, Left, resizeactive, -30, 0
|
||||
binde=$mod+Shift, Up, resizeactive, 0 -30
|
||||
binde=$mod+Shift, Down, resizeactive,m 0 30
|
||||
|
||||
bindel=, F2, exec, pactl set-sink-volume @DEFAULT_SINK@ -10%
|
||||
bindel=, F3, exec, pactl set-sink-volume @DEFAULT_SINK@ +10%
|
||||
bindel=, F7, exec, brightnessctl s 10%-
|
||||
bindel=, F8, exec, brightnessctl s +10%
|
||||
|
||||
bindl=, F1, exec, pactl set-sink-mute @DEFAULT_SINK@ toggle
|
||||
bindl=, F5, exec, playerctl play-pause
|
||||
bindl=, F4, exec, playerctl previous
|
||||
bindl=, F6, exec, playerctl next
|
||||
|
||||
bindm=$mod, mouse:272, movewindow
|
||||
bindm=$mod, mouse:273, resizewindow
|
||||
bindm=$mod, Z, movewindow
|
||||
bindm=$mod, X, resizewindow
|
||||
|
||||
decoration {
|
||||
blur {
|
||||
enabled=true
|
||||
ignore_opacity=true
|
||||
new_optimizations=true
|
||||
passes=2
|
||||
size=4
|
||||
special=true
|
||||
}
|
||||
dim_special=0.300000
|
||||
rounding=18
|
||||
}
|
||||
|
||||
dwindle {
|
||||
preserve_split=true
|
||||
}
|
||||
|
||||
env=PATH, $PATH:$scrPath
|
||||
env=XDG_CURRENT_DESKTOP,Hyprland
|
||||
env=XDG_SESSION_TYPE,wayland
|
||||
env=XDG_SESSION_DESKTOP,Hyprland
|
||||
env=QT_QPA_PLATFORM,wayland;xcb
|
||||
env=QT_QPAPLATFORMTHEME,qt6ct
|
||||
env=QT_WAYLAND_DISABLE_WINDOWDECORATION,1
|
||||
env=MOZ_ENABLE_WAYLAND,1
|
||||
env=GDK_SCALE,1
|
||||
|
||||
exec-once=qtbatticon
|
||||
exec-once=source /run/agenix/ntfy && nixpkgs-notifier listen
|
||||
exec-once=dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
|
||||
exec-once=dbus-update-activation-environment --systemd --all
|
||||
exec-once=systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
|
||||
exec-once=systemctl --user start xdg-desktop-portal-wlr.service
|
||||
exec-once=blueman-applet
|
||||
exec-once=udiskie --no-automount --smart-tray
|
||||
exec-once=nm-applet --indicator
|
||||
exec-once=rm -rf ~/.cache/cliphist/ && wl-paste --type text --watch cliphist store & wl-paste --type image --watch cliphist store
|
||||
exec-once=custom-batterynotify
|
||||
exec-once=custom-batterywarning
|
||||
exec-once=awww img /nix/store/30py8zav0pbsbcvcll5017hwz07fxmr0-wallpaper1.jpg
|
||||
exec-once=awww-daemon
|
||||
exec-once=sleep 1 && custom-wallpaper
|
||||
exec-once=custom-checkKdrive && custom-mountkdrive
|
||||
exec-once=custom-gitnotify
|
||||
exec-once=sleep 4 & caelestia-shell
|
||||
exec-once=sleep 20 && ngcp pull --automatic
|
||||
|
||||
general {
|
||||
border_size=4
|
||||
col.active_border=rgba(ca6702ff) rgba(ecd3a0ff) 45deg
|
||||
col.inactive_border=rgba(f1dca7d9) rgba(ffe1a8d9) 45deg
|
||||
gaps_in=5
|
||||
gaps_out=15
|
||||
layout=dwindle
|
||||
resize_on_border=true
|
||||
}
|
||||
|
||||
gesture=3, right, move, +col
|
||||
gesture=3, left, move, -col
|
||||
|
||||
group {
|
||||
col.border_active=rgba(ca6702ff) rgba(ecd3a0ff) 45deg
|
||||
col.border_inactive=rgba(f1dca7d9) rgba(ffe1a8d9) 45deg
|
||||
col.border_locked_active=rgba(ca6702ff) rgba(ecd3a0ff) 45deg
|
||||
col.border_locked_inactive=rgba(f1dca7d9) rgba(ffe1a8d9) 45deg
|
||||
}
|
||||
|
||||
input {
|
||||
kb_layout=ch
|
||||
follow_mouse=1
|
||||
force_no_accel=1
|
||||
sensitivity=0
|
||||
}
|
||||
|
||||
layerrule=blur on, ignore_alpha 0, match:namespace rofi
|
||||
layerrule=blur on, ignore_alpha 0, match:namespace notifications
|
||||
layerrule=blur on, ignore_alpha 0, match:namespace swaync-notification-window
|
||||
layerrule=blur on, ignore_alpha 0, match:namespace swaync-control-center
|
||||
layerrule=blur on, match:namespace logout_dialog
|
||||
|
||||
misc {
|
||||
force_default_wallpaper=0
|
||||
vrr=0
|
||||
}
|
||||
|
||||
monitor=eDP-1, highres@highrr, 0x0, 1
|
||||
monitor=HDMI-A-1, highres2highrr, auto-left, 1
|
||||
|
||||
plugin:dynamic-cursors {
|
||||
rotate {
|
||||
length=20
|
||||
offset=0
|
||||
}
|
||||
|
||||
shake {
|
||||
base=4.000000
|
||||
effects=true
|
||||
enabled=true
|
||||
influence=0.000000
|
||||
ipc=false
|
||||
limit=0.000000
|
||||
nearest=true
|
||||
speed=4.000000
|
||||
threshold=4
|
||||
timeout=2000
|
||||
}
|
||||
enabled=true
|
||||
mode=rotate
|
||||
threshold=2
|
||||
}
|
||||
|
||||
plugin:overview {
|
||||
disableBlur=true
|
||||
disableGestures=true
|
||||
showEmptyWorkspace=true
|
||||
workspaceActiveBorder=rgb(ab7746)
|
||||
}
|
||||
|
||||
scrolling {
|
||||
column_width=0.450000
|
||||
}
|
||||
|
||||
windowrule=opacity 0.90 0.90, match:class ^(firefox)$
|
||||
windowrule=opacity 0.90 0.90, match:class ^(Brave-browser)$
|
||||
windowrule=opacity 0.80 0.80, match:class ^(code-oss)$
|
||||
windowrule=opacity 0.80 0.80, match:class ^(Code)$
|
||||
windowrule=opacity 0.80 0.80, match:class ^(code-url-handler)$
|
||||
windowrule=opacity 0.80 0.80, match:class ^(code-insiders-url-handler)$
|
||||
windowrule=opacity 0.75 0.75, match:class ^(kitty)$
|
||||
windowrule=opacity 0.80 0.80, match:class ^(org.kde.dolphin)$
|
||||
windowrule=opacity 0.80 0.80, float on, match:class ^(org.kde.ark)$
|
||||
windowrule=opacity 0.80 0.80, float on, match:class ^(nwg-look)$
|
||||
windowrule=opacity 0.80 0.80, float on, match:class ^(qt5ct)$
|
||||
windowrule=opacity 0.80 0.80, float on, match:class ^(qt6ct)$
|
||||
windowrule=opacity 0.80 0.80, float on, match:class ^(kvantummanager)$
|
||||
windowrule=opacity 0.80 0.70, float on, match:class ^(org.pulseaudio.pavucontrol)$
|
||||
windowrule=opacity 0.80 0.70, float on, match:class ^(blueman-manager)$
|
||||
windowrule=opacity 0.80 0.70, float on, match:class ^(nm-applet)$
|
||||
windowrule=opacity 0.80 0.70, float on, match:class ^(nm-connection-editor)$
|
||||
windowrule=opacity 0.80 0.70, float on, match:class ^(org.kde.polkit-kde-authentication-agent-1)$
|
||||
windowrule=opacity 0.80 0.70, match:class ^(polkit-gnome-authentication-agent-1)$
|
||||
windowrule=opacity 0.80 0.70, match:class ^(org.freedesktop.impl.portal.desktop.gtk)$
|
||||
windowrule=opacity 0.80 0.70, match:class ^(org.freedesktop.impl.portal.desktop.hyprland)$
|
||||
windowrule=opacity 0.70 0.70, match:class ^([Ss]team)$
|
||||
windowrule=opacity 0.70 0.70, match:class ^(steamwebhelper)$
|
||||
windowrule=opacity 0.70 0.70, match:class ^(Spotify)$
|
||||
windowrule=opacity 0.70 0.70, match:initial_title ^(Spotify Free)$
|
||||
windowrule=opacity 0.90 0.90, float on, match:class ^(com.github.rafostar.Clapper)$
|
||||
windowrule=opacity 0.80 0.80, match:class ^(com.github.tchx84.Flatseal)$
|
||||
windowrule=opacity 0.80 0.80, match:class ^(hu.kramo.Cartridges)$
|
||||
windowrule=opacity 0.80 0.80, match:class ^(com.obsproject.Studio)$
|
||||
windowrule=opacity 0.80 0.80, match:class ^(gnome-boxes)$
|
||||
windowrule=opacity 0.80 0.80, match:class ^(discord)$
|
||||
windowrule=opacity 0.80 0.80, match:class ^(WebCord)$
|
||||
windowrule=opacity 0.80 0.80, match:class ^(ArmCord)$
|
||||
windowrule=opacity 0.80 0.80, float on, match:class ^(app.drey.Warp)$
|
||||
windowrule=opacity 0.80 0.80, float on, match:class ^(net.davidotek.pupgui2)$
|
||||
windowrule=opacity 0.80 0.80, float on, match:class ^(yad)$
|
||||
windowrule=opacity 0.80 0.80, float on, match:class ^(Signal)$
|
||||
windowrule=opacity 0.80 0.80, float on, match:class ^(io.github.alainm23.planify)$
|
||||
windowrule=opacity 0.80 0.80, float on, match:class ^(io.gitlab.theevilskeleton.Upscaler)$
|
||||
windowrule=opacity 0.80 0.80, float on, match:class ^(com.github.unrud.VideoDownloader)$
|
||||
windowrule=opacity 0.80 0.80, float on, match:class ^(io.gitlab.adhami3310.Impression)$
|
||||
windowrule=opacity 0.80 0.80, float on, match:class ^(io.missioncenter.MissionCenter)$
|
||||
windowrule=opacity 0.80 0.80, match:class ^(io.github.flattool.Warehouse)$
|
||||
windowrule=float on, match:class ^(org.kde.dolphin)$, match:title ^(Progress Dialog — Dolphin)$
|
||||
windowrule=float on, match:class ^(org.kde.dolphin)$, match:title ^(Copying — Dolphin)$
|
||||
windowrule=float on, match:class ^(firefox)$, match:title ^(Picture-in-Picture)$
|
||||
windowrule=float on, match:class ^(firefox)$, match:title ^(Library)$
|
||||
windowrule=float on, match:class ^(kitty)$, match:title ^(top)$
|
||||
windowrule=float on, match:class ^(kitty)$, match:title ^(btop)$
|
||||
windowrule=float on, match:class ^(kitty)$, match:title ^(htop)$
|
||||
windowrule=float on, match:class ^(vlc)$
|
||||
windowrule=float on, match:class ^(eog)$
|
||||
windowrule=float on, size 400 225, match:class ^(custom-browserprofiles)$
|
||||
windowrule=float on, size 1050 200, match:class ^(custom-changeAudioOutput)$
|
||||
windowrule=float on, size 400 175, match:class ^(custom-obsidianvaults)$
|
||||
windowrule=float on, size 600 600, match:initial_class ^(custom-pomodoro)$
|
||||
windowrule=float on, size 1500 800, match:initial_class ^(custom-bottom)$
|
||||
|
||||
workspace=1, layout:master
|
||||
workspace=2, layout:scrolling, layoutopt:direction:right
|
||||
workspace=name:special, layout:scrolling
|
||||
|
||||
xwayland {
|
||||
force_zero_scaling=true
|
||||
}
|
||||
splash=true
|
||||
@@ -0,0 +1,804 @@
|
||||
local browser = "kitty --class \"custom-browserprofiles\" --name \"Select browser profile\" --hold custom-browserprofiles"
|
||||
local editor = "nvim"
|
||||
local file = "dolphin"
|
||||
local mod = "SUPER"
|
||||
local notes = "kitty --class \"custom-obsidianvaults\" --name \"Select Obsidian vault\" --hold custom-obsidianvaults"
|
||||
local term = "kitty"
|
||||
|
||||
local function close_or_move_special()
|
||||
local window = hl.get_active_window()
|
||||
|
||||
if not window then
|
||||
return
|
||||
end
|
||||
|
||||
local class = window.class or window.initial_class
|
||||
|
||||
if class == "Steam" or class == "custom-pomodoro" then
|
||||
hl.dispatch(hl.dsp.window.move({ workspace = "special" }))
|
||||
else
|
||||
hl.dispatch(hl.dsp.window.close({ window = window }))
|
||||
end
|
||||
end
|
||||
local function close_other_windows()
|
||||
local active = hl.get_active_window()
|
||||
local workspace = hl.get_active_workspace()
|
||||
|
||||
if not active or not workspace then
|
||||
return
|
||||
end
|
||||
|
||||
for _, window in pairs(hl.get_windows()) do
|
||||
if window.workspace
|
||||
and window.workspace.id == workspace.id
|
||||
and window.address ~= active.address
|
||||
then
|
||||
hl.dispatch(hl.dsp.window.close({ window = window }))
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local wallpapers = {
|
||||
[1] = "WALLPAPER1/PATH/PLACEHOLDER",
|
||||
[2] = "WALLPAPER2/PATH/PLACEHOLDER",
|
||||
[3] = "WALLPAPER3/PATH/PLACEHOLDER",
|
||||
[4] = "WALLPAPER4/PATH/PLACEHOLDER",
|
||||
[5] = "WALLPAPER5/PATH/PLACEHOLDER",
|
||||
[6] = "WALLPAPER1/PATH/PLACEHOLDER",
|
||||
[7] = "WALLPAPER2/PATH/PLACEHOLDER",
|
||||
[8] = "WALLPAPER3/PATH/PLACEHOLDER",
|
||||
[9] = "WALLPAPER4/PATH/PLACEHOLDER",
|
||||
[10] = "WALLPAPER5/PATH/PLACEHOLDER",
|
||||
}
|
||||
|
||||
hl.on("workspace.active", function(workspace)
|
||||
local wallpaper = wallpapers[workspace.id]
|
||||
|
||||
if wallpaper then
|
||||
hl.exec_cmd("awww img -t none " .. wallpaper)
|
||||
end
|
||||
end)
|
||||
|
||||
hl.curve("wind", { type = "bezier", points = { { 0.05, 0.9 }, { 0.1, 1.05 } } })
|
||||
hl.curve("winIn", { type = "bezier", points = { { 0.1, 1.1 }, { 0.1, 1.1 } } })
|
||||
hl.curve("winOut", { type = "bezier", points = { { 0.3, -0.3 }, { 0, 1 } } })
|
||||
hl.curve("liner", { type = "bezier", points = { { 1, 1 }, { 1, 1 } } })
|
||||
hl.animation({
|
||||
leaf = "windows",
|
||||
enabled = true,
|
||||
speed = 6,
|
||||
bezier = "wind",
|
||||
style = "slide",
|
||||
})
|
||||
hl.animation({
|
||||
leaf = "windowsIn",
|
||||
enabled = true,
|
||||
speed = 6,
|
||||
bezier = "winIn",
|
||||
style = "slide",
|
||||
})
|
||||
hl.animation({
|
||||
leaf = "windowsOut",
|
||||
enabled = true,
|
||||
speed = 5,
|
||||
bezier = "winOut",
|
||||
style = "slide",
|
||||
})
|
||||
hl.animation({
|
||||
leaf = "windowsMove",
|
||||
enabled = true,
|
||||
speed = 5,
|
||||
bezier = "wind",
|
||||
style = "slide",
|
||||
})
|
||||
hl.animation({
|
||||
leaf = "border",
|
||||
enabled = true,
|
||||
speed = 1,
|
||||
bezier = "liner",
|
||||
})
|
||||
hl.animation({
|
||||
leaf = "borderangle",
|
||||
enabled = true,
|
||||
speed = 30,
|
||||
bezier = "liner",
|
||||
style = "loop",
|
||||
})
|
||||
hl.animation({
|
||||
leaf = "fade",
|
||||
enabled = true,
|
||||
speed = 10,
|
||||
bezier = "default",
|
||||
})
|
||||
hl.animation({
|
||||
leaf = "workspaces",
|
||||
enabled = true,
|
||||
speed = 5,
|
||||
bezier = "wind",
|
||||
})
|
||||
|
||||
hl.bind(mod .. " + W", hl.dsp.window.float({ action = "toggle" }))
|
||||
hl.bind(mod .. " + G", hl.dsp.group.toggle())
|
||||
hl.bind("ALT + Return", hl.dsp.window.fullscreen({ mode = "fullscreen", action = "toggle" }))
|
||||
hl.bind(mod .. " + Left", hl.dsp.focus({ direction = "left" }))
|
||||
hl.bind(mod .. " + Right", hl.dsp.focus({ direction = "right" }))
|
||||
hl.bind(mod .. " + CTRL + D", hl.dsp.layout("swapcol r"))
|
||||
hl.bind(mod .. " + CTRL + A", hl.dsp.layout("swapcol l"))
|
||||
hl.bind(mod .. " + Up", hl.dsp.focus({ direction = "up" }))
|
||||
hl.bind(mod .. " + Down", hl.dsp.focus({ direction = "down" }))
|
||||
hl.bind("ALT + Tab", hl.dsp.focus({ direction = "down" }))
|
||||
hl.bind(mod .. " + 1", hl.dsp.focus({ workspace = 1 }))
|
||||
hl.bind(mod .. " + 2", hl.dsp.focus({ workspace = 2 }))
|
||||
hl.bind(mod .. " + 3", hl.dsp.focus({ workspace = 3 }))
|
||||
hl.bind(mod .. " + 4", hl.dsp.focus({ workspace = 4 }))
|
||||
hl.bind(mod .. " + 5", hl.dsp.focus({ workspace = 5 }))
|
||||
hl.bind(mod .. " + 6", hl.dsp.focus({ workspace = 6 }))
|
||||
hl.bind(mod .. " + 7", hl.dsp.focus({ workspace = 7 }))
|
||||
hl.bind(mod .. " + 8", hl.dsp.focus({ workspace = 8 }))
|
||||
hl.bind(mod .. " + 9", hl.dsp.focus({ workspace = 9 }))
|
||||
hl.bind(mod .. " + 0", hl.dsp.focus({ workspace = 10 }))
|
||||
hl.bind(mod .. " + CTRL + Right", hl.dsp.focus({ workspace = "r+1" }))
|
||||
hl.bind(mod .. " + CTRL + Left", hl.dsp.focus({ workspace = "r-1" }))
|
||||
hl.bind(mod .. " + CTRL + Down", hl.dsp.focus({ workspace = "empty" }))
|
||||
hl.bind(mod .. " + SHIFT + 1", hl.dsp.window.move({ workspace = 1 }))
|
||||
hl.bind(mod .. " + SHIFT + 2", hl.dsp.window.move({ workspace = 2 }))
|
||||
hl.bind(mod .. " + SHIFT + 3", hl.dsp.window.move({ workspace = 3 }))
|
||||
hl.bind(mod .. " + SHIFT + 4", hl.dsp.window.move({ workspace = 4 }))
|
||||
hl.bind(mod .. " + SHIFT + 5", hl.dsp.window.move({ workspace = 5 }))
|
||||
hl.bind(mod .. " + SHIFT + 6", hl.dsp.window.move({ workspace = 6 }))
|
||||
hl.bind(mod .. " + SHIFT + 7", hl.dsp.window.move({ workspace = 7 }))
|
||||
hl.bind(mod .. " + SHIFT + 8", hl.dsp.window.move({ workspace = 8 }))
|
||||
hl.bind(mod .. " + SHIFT + 9", hl.dsp.window.move({ workspace = 9 }))
|
||||
hl.bind(mod .. " + SHIFT + 0", hl.dsp.window.move({ workspace = 10 }))
|
||||
hl.bind(mod .. " + CTRL + ALT + Right", hl.dsp.window.move({ workspace = "r+1" }))
|
||||
hl.bind(mod .." + CTRL + ALT + Left", hl.dsp.window.move({ workspace = "r-1" }))
|
||||
hl.bind(mod .. " + Backspace", hl.dsp.exec_cmd("caelestia shell drawers toggle session"))
|
||||
hl.bind(mod .. " + SHIFT + CTRL + Left", hl.dsp.window.move({ direction = "l" }))
|
||||
hl.bind(mod .. " + SHIFT + CTRL + Right", hl.dsp.window.move({ direction = "r" }))
|
||||
hl.bind(mod .. " + SHIFT + CTRL + Up", hl.dsp.window.move({ direction = "u" }))
|
||||
hl.bind(mod .. " + SHIFT + CTRL + Down", hl.dsp.window.move({ direction = "d" }))
|
||||
hl.bind(mod .. " + mouse_down", hl.dsp.focus({ workspace = "e+1" }))
|
||||
hl.bind(mod .. " + mouse_up", hl.dsp.focus({ workspace = "e-1" }))
|
||||
hl.bind(mod .. " + V", hl.dsp.exec_cmd("cliphist list | rofi -dmenu| cliphist decode | wl-copy"))
|
||||
hl.bind(mod .. " + B", hl.dsp.exec_cmd("hyprkeys -bkr | rofi -dmenu"))
|
||||
hl.bind(mod .. " + S", hl.dsp.workspace.toggle_special(""))
|
||||
hl.bind(mod .. " + ALT + S", hl.dsp.window.move({ workspace = "special" }))
|
||||
hl.bind(mod .. " + A", hl.dsp.layout("move -col"))
|
||||
hl.bind(mod .. " + D", hl.dsp.layout("move +col"))
|
||||
hl.bind(mod .. " + T", hl.dsp.exec_cmd(term))
|
||||
hl.bind(mod .. " + E", hl.dsp.exec_cmd(file))
|
||||
hl.bind(mod .. " + F", hl.dsp.exec_cmd(browser))
|
||||
hl.bind(mod .. " + N", hl.dsp.exec_cmd(notes))
|
||||
hl.bind(mod .. " + SHIFT + A", hl.dsp.exec_cmd("caelestia shell drawers toggle launcher"))
|
||||
hl.bind(mod .. " + Q", close_or_move_special)
|
||||
hl.bind("CTRL + ALT + W", hl.dsp.exec_cmd("caelestia shell drawers toggle sidebar"))
|
||||
hl.bind(mod .. " + L", hl.dsp.exec_cmd("caelestia shell lock lock"))
|
||||
hl.bind("F11", hl.dsp.exec_cmd("caelestia screenshot"))
|
||||
hl.bind(mod .. " + SHIFT + S", hl.dsp.exec_cmd("caelestia shell picker open"))
|
||||
hl.bind(mod .. " + CTRL + 6", close_other_windows)
|
||||
hl.bind("CTRL + ALT + 7", hl.dsp.exec_cmd("custom-performance"))
|
||||
hl.bind("CTRL + ALT + 1", hl.dsp.exec_cmd("caelestia shell drawers toggle sidebar"))
|
||||
hl.bind(mod .. " + CTRL + 4", hl.dsp.exec_cmd("caelestia shell notifs toggleDnd"))
|
||||
hl.bind(mod .. " + CTRL + 3", hl.dsp.exec_cmd("pavucontrol"))
|
||||
hl.bind("CTRL + SHIFT + ALT + 0", hl.dsp.exec_cmd("kitty --hold --class \"custom-changeAudioOutput\" --name \"Select audio output\" zsh -c \"custom-changeAudioOutput\""))
|
||||
hl.bind(mod .. " + CTRL + 5", hl.dsp.exec_cmd("gnome-characters"))
|
||||
hl.bind("CTRL + ALT + 8", hl.dsp.exec_cmd("hyprpicker | tee >(wl-copy) | cliphist store"))
|
||||
hl.bind("CTRL + ALT + 0", hl.dsp.exec_cmd("custom-tomato"))
|
||||
hl.bind("CTRL + ALT + 2", hl.dsp.exec_cmd("custom-bottom"))
|
||||
hl.bind("CTRL + ALT + 9", hl.dsp.exec_cmd("anki"))
|
||||
|
||||
hl.bind(mod .. " + SHIFT + Right", hl.dsp.window.resize({ x = 30, y = 0, relative = true }), { repeating = true })
|
||||
-- TODO: manual review on line 93 — resizeactive: expected 'X Y' or 'X% Y%', got "-30"
|
||||
-- hl.bind("SUPER + SHIFT + Left", hl.dsp.resizeactive(-30, 0), { repeating = true })
|
||||
hl.bind(mod .. " + SHIFT + Up", hl.dsp.window.resize({ x = 0, y = -30, relative = true }), { repeating = true })
|
||||
-- TODO: manual review on line 95 — resizeactive: expected 'X Y' or 'X% Y%', got "m 0 30"
|
||||
-- hl.bind("SUPER + SHIFT + Down", hl.dsp.resizeactive("m 0 30"), { repeating = true })
|
||||
|
||||
hl.bind("F2", hl.dsp.exec_cmd("pactl set-sink-volume @DEFAULT_SINK@ -10%"), { locked = true, repeating = true })
|
||||
hl.bind("F3", hl.dsp.exec_cmd("pactl set-sink-volume @DEFAULT_SINK@ +10%"), { locked = true, repeating = true })
|
||||
hl.bind("F7", hl.dsp.exec_cmd("brightnessctl s 10%-"), { locked = true, repeating = true })
|
||||
hl.bind("F8", hl.dsp.exec_cmd("brightnessctl s +10%"), { locked = true, repeating = true })
|
||||
|
||||
hl.bind("F1", hl.dsp.exec_cmd("pactl set-sink-mute @DEFAULT_SINK@ toggle"), { locked = true })
|
||||
hl.bind("F5", hl.dsp.exec_cmd("playerctl play-pause"), { locked = true })
|
||||
hl.bind("F4", hl.dsp.exec_cmd("playerctl previous"), { locked = true })
|
||||
hl.bind("F6", hl.dsp.exec_cmd("playerctl next"), { locked = true })
|
||||
|
||||
hl.bind(mod .. " + mouse:272", hl.dsp.window.drag())
|
||||
hl.bind(mod .. " + mouse:273", hl.dsp.window.resize())
|
||||
hl.bind(mod .. " + Z", hl.dsp.window.drag())
|
||||
hl.bind(mod .. " + X", hl.dsp.window.resize())
|
||||
|
||||
hl.env("XDG_CURRENT_DESKTOP", "Hyprland")
|
||||
hl.env("XDG_SESSION_TYPE", "wayland")
|
||||
hl.env("XDG_SESSION_DESKTOP", "Hyprland")
|
||||
hl.env("QT_QPA_PLATFORM", "wayland;xcb")
|
||||
hl.env("QT_QPAPLATFORMTHEME", "qt6ct")
|
||||
hl.env("QT_WAYLAND_DISABLE_WINDOWDECORATION", "1")
|
||||
hl.env("MOZ_ENABLE_WAYLAND", "1")
|
||||
hl.env("GDK_SCALE", "1")
|
||||
|
||||
hl.gesture({
|
||||
fingers = 3,
|
||||
direction = "horizontal",
|
||||
action = "scroll_move",
|
||||
})
|
||||
|
||||
hl.gesture({
|
||||
fingers = 2,
|
||||
direction = "pinch",
|
||||
action = "cursor_zoom",
|
||||
mode = "live",
|
||||
})
|
||||
|
||||
--hl.layer_rule({
|
||||
-- match = { namespace = "ignore_alpha 0" },
|
||||
-- TODO: manual review — unmapped layer rule: "blur on"
|
||||
-- TODO: manual review — unmapped layer rule: "blur on"
|
||||
-- TODO: manual review — unmapped layer rule: "blur on"
|
||||
-- TODO: manual review — unmapped layer rule: "blur on"
|
||||
--})
|
||||
|
||||
--hl.layer_rule({
|
||||
-- match = { namespace = "match:namespace logout_dialog" },
|
||||
-- TODO: manual review — unmapped layer rule: "blur on"
|
||||
--)
|
||||
|
||||
hl.monitor({
|
||||
output = "eDP-1",
|
||||
mode = "highres@highrr",
|
||||
position = "0x0",
|
||||
scale = "1",
|
||||
})
|
||||
|
||||
hl.monitor({
|
||||
output = "HDMI-A-1",
|
||||
mode = "highres2highrr",
|
||||
position = "auto-left",
|
||||
scale = "1",
|
||||
})
|
||||
|
||||
-- TODO: manual review — plugin section 'dynamic-cursors'. The new Lua API exposes plugins via hl.plugin.<name>(...) — wire up per the plugin's docs.
|
||||
--[[
|
||||
rotate { ... }
|
||||
shake { ... }
|
||||
enabled = true
|
||||
mode = rotate
|
||||
threshold = 2
|
||||
]]
|
||||
|
||||
-- TODO: manual review — plugin section 'overview'. The new Lua API exposes plugins via hl.plugin.<name>(...) — wire up per the plugin's docs.
|
||||
--[[
|
||||
disableBlur = true
|
||||
disableGestures = true
|
||||
showEmptyWorkspace = true
|
||||
workspaceActiveBorder = rgb(ab7746)
|
||||
]]
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "^(firefox)$",
|
||||
},
|
||||
opacity = "0.90 0.90",
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "^(Brave-browser)$",
|
||||
},
|
||||
opacity = "0.90 0.90",
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "^(code-oss)$",
|
||||
},
|
||||
opacity = "0.80 0.80",
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "^(Code)$",
|
||||
},
|
||||
opacity = "0.80 0.80",
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "^(code-url-handler)$",
|
||||
},
|
||||
opacity = "0.80 0.80",
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "^(code-insiders-url-handler)$",
|
||||
},
|
||||
opacity = "0.80 0.80",
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "^(kitty)$",
|
||||
},
|
||||
opacity = "0.75 0.75",
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "^(org.kde.dolphin)$",
|
||||
},
|
||||
opacity = "0.80 0.80",
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "^(org.kde.ark)$",
|
||||
},
|
||||
opacity = "0.80 0.80",
|
||||
float = true,
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "^(nwg-look)$",
|
||||
},
|
||||
opacity = "0.80 0.80",
|
||||
float = true,
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "^(qt5ct)$",
|
||||
},
|
||||
opacity = "0.80 0.80",
|
||||
float = true,
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "^(qt6ct)$",
|
||||
},
|
||||
opacity = "0.80 0.80",
|
||||
float = true,
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "^(kvantummanager)$",
|
||||
},
|
||||
opacity = "0.80 0.80",
|
||||
float = true,
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "^(org.pulseaudio.pavucontrol)$",
|
||||
},
|
||||
opacity = "0.80 0.70",
|
||||
float = true,
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "^(blueman-manager)$",
|
||||
},
|
||||
opacity = "0.80 0.70",
|
||||
float = true,
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "^(nm-applet)$",
|
||||
},
|
||||
opacity = "0.80 0.70",
|
||||
float = true,
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "^(nm-connection-editor)$",
|
||||
},
|
||||
opacity = "0.80 0.70",
|
||||
float = true,
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "^(org.kde.polkit-kde-authentication-agent-1)$",
|
||||
},
|
||||
opacity = "0.80 0.70",
|
||||
float = true,
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "^(polkit-gnome-authentication-agent-1)$",
|
||||
},
|
||||
opacity = "0.80 0.70",
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "^(org.freedesktop.impl.portal.desktop.gtk)$",
|
||||
},
|
||||
opacity = "0.80 0.70",
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "^(org.freedesktop.impl.portal.desktop.hyprland)$",
|
||||
},
|
||||
opacity = "0.80 0.70",
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "^([Ss]team)$",
|
||||
},
|
||||
opacity = "0.70 0.70",
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "^(steamwebhelper)$",
|
||||
},
|
||||
opacity = "0.70 0.70",
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "^(Spotify)$",
|
||||
},
|
||||
opacity = "0.70 0.70",
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
initial_title = "^(Spotify Free)$",
|
||||
},
|
||||
opacity = "0.70 0.70",
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "^(com.github.rafostar.Clapper)$",
|
||||
},
|
||||
opacity = "0.90 0.90",
|
||||
float = true,
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "^(com.github.tchx84.Flatseal)$",
|
||||
},
|
||||
opacity = "0.80 0.80",
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "^(hu.kramo.Cartridges)$",
|
||||
},
|
||||
opacity = "0.80 0.80",
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "^(com.obsproject.Studio)$",
|
||||
},
|
||||
opacity = "0.80 0.80",
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "^(gnome-boxes)$",
|
||||
},
|
||||
opacity = "0.80 0.80",
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "^(discord)$",
|
||||
},
|
||||
opacity = "0.80 0.80",
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "^(WebCord)$",
|
||||
},
|
||||
opacity = "0.80 0.80",
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "^(ArmCord)$",
|
||||
},
|
||||
opacity = "0.80 0.80",
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "^(app.drey.Warp)$",
|
||||
},
|
||||
opacity = "0.80 0.80",
|
||||
float = true,
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "^(net.davidotek.pupgui2)$",
|
||||
},
|
||||
opacity = "0.80 0.80",
|
||||
float = true,
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "^(yad)$",
|
||||
},
|
||||
opacity = "0.80 0.80",
|
||||
float = true,
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "^(Signal)$",
|
||||
},
|
||||
opacity = "0.80 0.80",
|
||||
float = true,
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "^(io.github.alainm23.planify)$",
|
||||
},
|
||||
opacity = "0.80 0.80",
|
||||
float = true,
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "^(io.gitlab.theevilskeleton.Upscaler)$",
|
||||
},
|
||||
opacity = "0.80 0.80",
|
||||
float = true,
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "^(com.github.unrud.VideoDownloader)$",
|
||||
},
|
||||
opacity = "0.80 0.80",
|
||||
float = true,
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "^(io.gitlab.adhami3310.Impression)$",
|
||||
},
|
||||
opacity = "0.80 0.80",
|
||||
float = true,
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "^(io.missioncenter.MissionCenter)$",
|
||||
},
|
||||
opacity = "0.80 0.80",
|
||||
float = true,
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "^(io.github.flattool.Warehouse)$",
|
||||
},
|
||||
opacity = "0.80 0.80",
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "^(org.kde.dolphin)$",
|
||||
title = "^(Progress Dialog — Dolphin)$",
|
||||
},
|
||||
float = true,
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "^(org.kde.dolphin)$",
|
||||
title = "^(Copying — Dolphin)$",
|
||||
},
|
||||
float = true,
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "^(firefox)$",
|
||||
title = "^(Picture-in-Picture)$",
|
||||
},
|
||||
float = true,
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "^(firefox)$",
|
||||
title = "^(Library)$",
|
||||
},
|
||||
float = true,
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "^(kitty)$",
|
||||
title = "^(top)$",
|
||||
},
|
||||
float = true,
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "^(kitty)$",
|
||||
title = "^(btop)$",
|
||||
},
|
||||
float = true,
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "^(kitty)$",
|
||||
title = "^(htop)$",
|
||||
},
|
||||
float = true,
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "^(vlc)$",
|
||||
},
|
||||
float = true,
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "^(eog)$",
|
||||
},
|
||||
float = true,
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "^(custom-browserprofiles)$",
|
||||
},
|
||||
float = true,
|
||||
size = "400 225",
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "^(custom-changeAudioOutput)$",
|
||||
},
|
||||
float = true,
|
||||
size = "1050 200",
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
class = "^(custom-obsidianvaults)$",
|
||||
},
|
||||
float = true,
|
||||
size = "400 175",
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
initial_class = "^(custom-pomodoro)$",
|
||||
},
|
||||
float = true,
|
||||
size = "600 600",
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
match = {
|
||||
initial_class = "^(custom-bottom)$",
|
||||
},
|
||||
float = true,
|
||||
size = "1500 800",
|
||||
})
|
||||
|
||||
hl.workspace_rule({
|
||||
workspace = "1",
|
||||
layout = "master",
|
||||
})
|
||||
|
||||
hl.workspace_rule({
|
||||
workspace = "2",
|
||||
layout = "scrolling",
|
||||
})
|
||||
|
||||
hl.workspace_rule({
|
||||
workspace = "special",
|
||||
layout = "scrolling",
|
||||
})
|
||||
|
||||
-- TODO: manual review — top-level key 'splash = true' has no enclosing section
|
||||
hl.config({
|
||||
animations = {
|
||||
enabled = true,
|
||||
},
|
||||
decoration = {
|
||||
blur = {
|
||||
enabled = true,
|
||||
ignore_opacity = true,
|
||||
new_optimizations = true,
|
||||
passes = 2,
|
||||
size = 4,
|
||||
special = true,
|
||||
},
|
||||
dim_special = 0.300000,
|
||||
rounding = 18,
|
||||
},
|
||||
dwindle = {
|
||||
preserve_split = true,
|
||||
},
|
||||
general = {
|
||||
border_size = 4,
|
||||
col = {
|
||||
active_border = { colors = { "rgba(ca6702ff)", "rgba(ecd3a0ff)" }, angle = 45 },
|
||||
inactive_border = { colors = { "rgba(f1dca7d9)", "rgba(ffe1a8d9)" }, angle = 45 },
|
||||
},
|
||||
gaps_in = 5,
|
||||
gaps_out = 15,
|
||||
layout = "dwindle",
|
||||
resize_on_border = true,
|
||||
},
|
||||
group = {
|
||||
col = {
|
||||
border_active = { colors = { "rgba(ca6702ff)", "rgba(ecd3a0ff)" }, angle = 45 },
|
||||
border_inactive = { colors = { "rgba(f1dca7d9)", "rgba(ffe1a8d9)" }, angle = 45 },
|
||||
border_locked_active = { colors = { "rgba(ca6702ff)", "rgba(ecd3a0ff)" }, angle = 45 },
|
||||
border_locked_inactive = { colors = { "rgba(f1dca7d9)", "rgba(ffe1a8d9)" }, angle = 45 },
|
||||
},
|
||||
},
|
||||
input = {
|
||||
kb_layout = "ch",
|
||||
follow_mouse = 1,
|
||||
force_no_accel = 1,
|
||||
sensitivity = 0,
|
||||
},
|
||||
misc = {
|
||||
force_default_wallpaper = 0,
|
||||
vrr = 0,
|
||||
},
|
||||
scrolling = {
|
||||
column_width = 0.450000,
|
||||
},
|
||||
xwayland = {
|
||||
force_zero_scaling = true,
|
||||
},
|
||||
})
|
||||
|
||||
hl.on("hyprland.start", function()
|
||||
hl.exec_cmd("/nix/store/8kih8alkk4qzgjchg5501r1c3a8a71aw-dbus-1.16.2/bin/dbus-update-activation-environment --systemd DISPLAY HYPRLAND_INSTANCE_SIGNATURE WAYLAND_DISPLAY XDG_CURRENT_DESKTOP XDG_SESSION_TYPE && systemctl --user stop hyprland-session.target && systemctl --user start hyprland-session.target")
|
||||
hl.exec_cmd("qtbatticon")
|
||||
hl.exec_cmd("source /run/agenix/ntfy && nixpkgs-notifier listen")
|
||||
hl.exec_cmd("dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP")
|
||||
hl.exec_cmd("dbus-update-activation-environment --systemd --all")
|
||||
hl.exec_cmd("systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP")
|
||||
hl.exec_cmd("systemctl --user start xdg-desktop-portal-wlr.service")
|
||||
hl.exec_cmd("blueman-applet")
|
||||
hl.exec_cmd("udiskie --no-automount --smart-tray")
|
||||
hl.exec_cmd("nm-applet --indicator")
|
||||
hl.exec_cmd("rm -rf ~/.cache/cliphist/ && wl-paste --type text --watch cliphist store & wl-paste --type image --watch cliphist store")
|
||||
hl.exec_cmd("custom-batterynotify")
|
||||
hl.exec_cmd("custom-batterywarning")
|
||||
hl.exec_cmd("awww img WALLPAPER/PATH/PLACEHOLDER")
|
||||
hl.exec_cmd("awww-daemon")
|
||||
hl.exec_cmd("sleep 1 && custom-wallpaper")
|
||||
hl.exec_cmd("custom-checkKdrive && custom-mountkdrive")
|
||||
hl.exec_cmd("custom-gitnotify")
|
||||
hl.exec_cmd("sleep 4 & caelestia-shell")
|
||||
hl.exec_cmd("sleep 20 && ngcp pull --automatic")
|
||||
end)
|
||||
-- host specific config
|
||||
require("host")
|
||||
Binary file not shown.
@@ -0,0 +1,9 @@
|
||||
let
|
||||
backupAgeKey = "age1y4lhpk7awhjyu42p46ulg5q2c49r2lnwu8tyyk4ejj6jztd64uksfhd670";
|
||||
laptopHostKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJCsewl8ZXXMjRyO20cBIiuW2gA4mGoMkxQ0dcMyNidR root@nixos";
|
||||
in {
|
||||
"ntfy.age".publicKeys = [
|
||||
backupAgeKey
|
||||
laptopHostKey
|
||||
];
|
||||
}
|
||||
Reference in new issue
Block a user