mirror of
https://github.com/tomasriveral/nixos.git
synced 2026-10-10 17:02:43 +02:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6b0c997dad | ||
|
|
21349e4585 | ||
|
|
f23ec09369 | ||
|
|
7d5ae9fa2c | ||
|
|
8f4117f3e7 | ||
|
|
bd97ba4df7 | ||
|
|
bd678ae32d | ||
|
|
9879131aca | ||
|
|
c2f733d4c9 | ||
|
|
44709a3b7c | ||
|
|
ce8c4f7d73 | ||
|
|
2f2d3cd2ba | ||
|
|
b738cbb8ef | ||
|
|
fdb4d53ec0 | ||
|
|
1a29fda1f9 | ||
|
|
b760904557 | ||
|
|
28d56cf671 | ||
|
|
4db1f329f2 | ||
|
|
7afe2cf7b6 | ||
|
|
434e6ed31d | ||
|
|
f1e266331c | ||
|
|
f745a79af8 | ||
|
|
a99cb710b3 | ||
|
|
9805986c10 | ||
|
|
bc67f2b0e8 | ||
|
|
7cd934c58c | ||
|
|
6e3286419f | ||
|
|
c7781b7483 | ||
|
|
682a5c13df | ||
|
|
82bd78bc73 | ||
|
|
1071ce70d7 | ||
|
|
1ff4785399 | ||
|
|
ed9ccd4b11 | ||
|
|
13cdae0655 | ||
|
|
d0b7183849 | ||
|
|
cea0d0e3f8 | ||
|
|
a4c66b4aff | ||
|
|
56a9bba86b | ||
|
|
1dab571e12 | ||
|
|
93f7328a3b | ||
|
|
0e222a9c50 | ||
|
|
d1125d1571 | ||
|
|
550413c6b1 | ||
|
|
b4537796a2 | ||
|
|
4c0fbc5f0e | ||
|
|
d0a9511ff7 | ||
|
|
262476404e | ||
|
|
9f9906d423 | ||
|
|
0d616266ff | ||
|
|
6b282b5344 | ||
|
|
19fd3ec35d | ||
|
|
324d54683c | ||
|
|
0030034418 | ||
|
|
fb7be79e86 | ||
|
|
5db8135dd5 | ||
|
|
2107d23209 | ||
|
|
77f4b0fc5f | ||
|
|
1642dc97ca | ||
|
|
2b59031896 | ||
|
|
d323e9f702 | ||
|
|
25813d8ab5 | ||
|
|
05ef065d75 | ||
|
|
2722840919 | ||
|
|
9e862337ca | ||
|
|
876ec4ce21 | ||
|
|
e2b7fd8a64 | ||
|
|
752957818b | ||
|
|
1c600dbf3c | ||
|
|
4a648b7f7c | ||
|
|
67d21671c5 | ||
|
|
b8d8ef1aa8 | ||
|
|
2d16f3893b | ||
|
|
2a0c85275f | ||
|
|
23a9fdd4e8 | ||
|
|
246412ae4b | ||
|
|
88eb91c780 | ||
|
|
3b73438d4f | ||
|
|
8088f78f05 | ||
|
|
3b89cf7b35 | ||
|
|
89eb25ca7d | ||
|
|
3ea36fa6bb | ||
|
|
3d468572d5 | ||
|
|
d23c6979f9 | ||
|
|
552d898680 | ||
|
|
5b7c43c8f9 | ||
|
|
f1e9c76d02 | ||
|
|
37f76a4439 | ||
|
|
143f699365 | ||
|
|
d20f0d87d5 | ||
|
|
45639e2531 | ||
|
|
2d2d4fd4a8 | ||
|
|
d49c7ba99e | ||
|
|
29554e41ca | ||
|
|
2a318bdced | ||
|
|
763bbbacd4 | ||
|
|
99f1dd3ec8 |
No files matched your search
@@ -49,30 +49,20 @@ jobs:
|
|||||||
exit 1
|
exit 1
|
||||||
;;
|
;;
|
||||||
esac
|
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
|
- name: Check for existing PR
|
||||||
id: existing
|
id: existing
|
||||||
env:
|
env:
|
||||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
run: |
|
run: |
|
||||||
if $HAS_CHANGES; then
|
PR_NUMBER=$(gh pr list \
|
||||||
PR_NUMBER=$(gh pr list \
|
--base main \
|
||||||
--base main \
|
--head "${{ steps.branch.outputs.source }}" \
|
||||||
--head "${{ steps.branch.outputs.source }}" \
|
--state open \
|
||||||
--state open \
|
--json number \
|
||||||
--json number \
|
--jq '.[0].number // empty')
|
||||||
--jq '.[0].number // empty')
|
|
||||||
|
|
||||||
echo "number=$PR_NUMBER" >> "$GITHUB_OUTPUT"
|
echo "number=$PR_NUMBER" >> "$GITHUB_OUTPUT"
|
||||||
fi
|
|
||||||
|
|
||||||
- name: Create PR
|
- name: Create PR
|
||||||
id: create
|
id: create
|
||||||
@@ -80,31 +70,28 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
run: |
|
run: |
|
||||||
if $HAS_CHANGES; then
|
gh pr create \
|
||||||
gh pr create \
|
--base main \
|
||||||
--base main \
|
--head "${{ steps.branch.outputs.source }}" \
|
||||||
--head "${{ steps.branch.outputs.source }}" \
|
--title "Weekly sync: ${{ steps.branch.outputs.source }} → main" \
|
||||||
--title "Weekly sync: ${{ steps.branch.outputs.source }} → main" \
|
--body "This pull request was created automatically by GitHub Actions."
|
||||||
--body "This pull request was created automatically by GitHub Actions."
|
|
||||||
|
|
||||||
PR_NUMBER=$(gh pr list \
|
PR_NUMBER=$(gh pr list \
|
||||||
--base main \
|
--base main \
|
||||||
--head "${{ steps.branch.outputs.source }}" \
|
--head "${{ steps.branch.outputs.source }}" \
|
||||||
--state open \
|
--state open \
|
||||||
--json number \
|
--json number \
|
||||||
--jq '.[0].number')
|
--jq '.[0].number')
|
||||||
|
|
||||||
|
echo "number=$PR_NUMBER" >> "$GITHUB_OUTPUT"
|
||||||
|
|
||||||
echo "number=$PR_NUMBER" >> "$GITHUB_OUTPUT"
|
|
||||||
fi
|
|
||||||
- name: Determine PR number
|
- name: Determine PR number
|
||||||
id: pr
|
id: pr
|
||||||
run: |
|
run: |
|
||||||
if $HAS_CHANGES; then
|
if [ -n "${{ steps.existing.outputs.number }}" ]; then
|
||||||
if [ -n "${{ steps.existing.outputs.number }}" ]; then
|
echo "number=${{ steps.existing.outputs.number }}" >> "$GITHUB_OUTPUT"
|
||||||
echo "number=${{ steps.existing.outputs.number }}" >> "$GITHUB_OUTPUT"
|
else
|
||||||
else
|
echo "number=${{ steps.create.outputs.number }}" >> "$GITHUB_OUTPUT"
|
||||||
echo "number=${{ steps.create.outputs.number }}" >> "$GITHUB_OUTPUT"
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
- name: Enable auto-merge
|
- name: Enable auto-merge
|
||||||
@@ -112,9 +99,7 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
run: |
|
run: |
|
||||||
if $HAS_CHANGES; then
|
gh pr merge \
|
||||||
gh pr merge \
|
"${{ steps.pr.outputs.number }}" \
|
||||||
"${{ steps.pr.outputs.number }}" \
|
--auto \
|
||||||
--auto \
|
--merge
|
||||||
--merge
|
|
||||||
fi
|
|
||||||
@@ -1,5 +1,7 @@
|
|||||||
# NixOS Configuration
|
# NixOS Configuration
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
This repository contains my personal NixOS configuration.
|
This repository contains my personal NixOS configuration.
|
||||||
|
|
||||||
The configuration uses the **[dendritic pattern](https://github.com/mightyiam/dendritic)**. Instead of keeping one large system configuration, functionality is split into smaller, composable modules. This makes it easier to reuse pieces of the configuration across hosts and to keep application, hardware, utility, and host-specific configuration separate.
|
The configuration uses the **[dendritic pattern](https://github.com/mightyiam/dendritic)**. Instead of keeping one large system configuration, functionality is split into smaller, composable modules. This makes it easier to reuse pieces of the configuration across hosts and to keep application, hardware, utility, and host-specific configuration separate.
|
||||||
@@ -107,7 +109,7 @@ nixos/
|
|||||||
│ │ └── README.md
|
│ │ └── README.md
|
||||||
│ ├── kblayouts/ # Keyboard and Framework macropad layouts
|
│ ├── kblayouts/ # Keyboard and Framework macropad layouts
|
||||||
│ ├── mullvad/ # Mullvad configuration
|
│ ├── mullvad/ # Mullvad configuration
|
||||||
│ └── quickshell/ # Legacy Quickshell configuration
|
│ └── quickshell/ # Quickshell configuration
|
||||||
│
|
│
|
||||||
├── secrets/ # agenix-encrypted secrets
|
├── secrets/ # agenix-encrypted secrets
|
||||||
├── flake.nix
|
├── flake.nix
|
||||||
@@ -499,18 +501,16 @@ Useful command-line tools include:
|
|||||||
* `fastfetch`
|
* `fastfetch`
|
||||||
* `man`
|
* `man`
|
||||||
* `manix`
|
* `manix`
|
||||||
* `trash`
|
|
||||||
|
|
||||||
`ls`. `l`, `ll` and `la` are aliased/replaced by `eza`.
|
`ls` is replaced by `eza`.
|
||||||
|
|
||||||
`man` and `manix` are modified to use fzf to search for the man(ix) page. So in `man(ix) <arg>` `<arg>` will be ignored. If you want a specific man(ix) page, you can use `\man` and `\manix`.
|
Common aliases include:
|
||||||
|
|
||||||
`rm` is replaced by trash-cli :
|
```text
|
||||||
* `rm` alias to `trash-put`
|
l
|
||||||
* `rml` alias to `trash-list`
|
ll
|
||||||
* `rmr` alias to `trash-restore`
|
la
|
||||||
* `rme` alias to `trash-empty`
|
```
|
||||||
* `rmx` alias to `trash-rm` (remove individual item from the trash).
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -589,6 +589,15 @@ Custom scripts and packages are located in:
|
|||||||
```text
|
```text
|
||||||
modules/packages/
|
modules/packages/
|
||||||
```
|
```
|
||||||
|
Examples include:
|
||||||
|
|
||||||
|
* `custom-colorpicker`
|
||||||
|
* `custom-cowsay`
|
||||||
|
* `custom-syllabes`
|
||||||
|
* `custom-tomato`
|
||||||
|
* `custom-weather`
|
||||||
|
* `vivifyManuallyDerived`
|
||||||
|
* `dejaManuallyDerived`
|
||||||
|
|
||||||
Or imported in flake.nix from other repos.
|
Or imported in flake.nix from other repos.
|
||||||
|
|
||||||
@@ -597,7 +606,7 @@ Examples include:
|
|||||||
* `custom-syllabes` A syllab counter when I write french poetry. (note: algorithmic syllab counting is pretty difficult in french, so this small scripts makes a lot of errors)
|
* `custom-syllabes` A syllab counter when I write french poetry. (note: algorithmic syllab counting is pretty difficult in french, so this small scripts makes a lot of errors)
|
||||||
* `ngcp` (see the [GitHub repo](https://github.com/tomasriveral/Nix-Git-Cherry-Picker)) is what i use to manage between my `laptop` and `desktop` git branch.
|
* `ngcp` (see the [GitHub repo](https://github.com/tomasriveral/Nix-Git-Cherry-Picker)) is what i use to manage between my `laptop` and `desktop` git branch.
|
||||||
* `nixpkgs-notifier` (see the [GitHub repo](https://github.com/tomasriveral/nixpkgs-notifier)) notifies my when PRs get merged to nixos-unstable.
|
* `nixpkgs-notifier` (see the [GitHub repo](https://github.com/tomasriveral/nixpkgs-notifier)) notifies my when PRs get merged to nixos-unstable.
|
||||||
* `notewrapper` (see the [GitHub repo](https://github.com/tomasriveral/Notewrapper)) a notetaking/journalling TUI wrapper organizer.
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# Applications and Desktop Environment
|
# Applications and Desktop Environment
|
||||||
|
|||||||
Generated
+43
-106
@@ -1,30 +1,5 @@
|
|||||||
{
|
{
|
||||||
"nodes": {
|
"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": {
|
"caelestia-cli": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"caelestia-shell": [
|
"caelestia-shell": [
|
||||||
@@ -36,11 +11,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1787276686,
|
"lastModified": 1781239472,
|
||||||
"narHash": "sha256-rYdGb5rKIfETdlenQRxHfg17dhf9fN8eaRryX6sztnQ=",
|
"narHash": "sha256-WFL8jZMWNH1tx3UwaJ9aa9NN25uOEJ9mbKPRNQJY/xM=",
|
||||||
"owner": "caelestia-dots",
|
"owner": "caelestia-dots",
|
||||||
"repo": "cli",
|
"repo": "cli",
|
||||||
"rev": "7401d9e3a371e583bc0b42dc1a139d01e278e6c1",
|
"rev": "3f3229aed4f36752a02fd870fd6cad94bd76555f",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -59,11 +34,11 @@
|
|||||||
"quickshell": "quickshell"
|
"quickshell": "quickshell"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1787890941,
|
"lastModified": 1781408632,
|
||||||
"narHash": "sha256-j91lsxm/wuuoPPwz4RQOr520EXlHgLPWfSW0KqKsy7E=",
|
"narHash": "sha256-kYVf3Jye4UhyBrtubYcSrmVyFv9uqOY2JvjmElFiZHE=",
|
||||||
"owner": "caelestia-dots",
|
"owner": "caelestia-dots",
|
||||||
"repo": "shell",
|
"repo": "shell",
|
||||||
"rev": "1b7052d108677a7ca0d3d3365511bfe8281a6868",
|
"rev": "f86c359cd90530bacc800e94e35ffbebecd3f58f",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -72,28 +47,6 @@
|
|||||||
"type": "github"
|
"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": {
|
"disko": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
@@ -119,12 +72,12 @@
|
|||||||
"nixpkgs-lib": "nixpkgs-lib"
|
"nixpkgs-lib": "nixpkgs-lib"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1787559586,
|
"lastModified": 1778716662,
|
||||||
"narHash": "sha256-onL0VLf9vPllmT0H/OlURIU5r5t5WIEl7t4tVNKT0Nw=",
|
"narHash": "sha256-m1Yf0wZ8j1OHjTc2UwHwyQRSnNeSgLJOd7q5Y45hzi4=",
|
||||||
"rev": "9d0d87172c374f89da73c1cfe6d81ae62feac1f1",
|
"rev": "f7c1a2d347e4c52d5fb8d10cb4d94b5884e546fb",
|
||||||
"revCount": 489,
|
"revCount": 475,
|
||||||
"type": "tarball",
|
"type": "tarball",
|
||||||
"url": "https://api.flakehub.com/f/pinned/hercules-ci/flake-parts/0.1.489%2Brev-9d0d87172c374f89da73c1cfe6d81ae62feac1f1/01a034df-3c80-7cd2-a669-be2243c45202/source.tar.gz"
|
"url": "https://api.flakehub.com/f/pinned/hercules-ci/flake-parts/0.1.475%2Brev-f7c1a2d347e4c52d5fb8d10cb4d94b5884e546fb/019e2533-0324-7e90-93eb-29b02e1a61cd/source.tar.gz"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"type": "tarball",
|
"type": "tarball",
|
||||||
@@ -133,7 +86,7 @@
|
|||||||
},
|
},
|
||||||
"flake-utils": {
|
"flake-utils": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems_2"
|
"systems": "systems"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1731533236,
|
"lastModified": 1731533236,
|
||||||
@@ -155,11 +108,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1787377438,
|
"lastModified": 1781319724,
|
||||||
"narHash": "sha256-Sxu1NLTD/Ern6hFGLlZmtKCSct3YQXZI/lls8RE1XeM=",
|
"narHash": "sha256-ZGuxexEMo4Xv28KJ0dX/m/PHN4oZIOnxHZpNTyrvx4M=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "65258d5c65a250189fde2e35f490d15e064c4c62",
|
"rev": "8355f0a16b2dbb06a97959a918af5b239bbe05ae",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -171,11 +124,11 @@
|
|||||||
},
|
},
|
||||||
"import-tree": {
|
"import-tree": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1784254960,
|
"lastModified": 1778781969,
|
||||||
"narHash": "sha256-iI88R3wHz8wTKQb5orvpc51L/Xr64AJyxid/0MKa/b8=",
|
"narHash": "sha256-Jjuz5CmSkur8KvLDoGa+vylEp+RkQtv4mt/qcMznpH0=",
|
||||||
"owner": "vic",
|
"owner": "vic",
|
||||||
"repo": "import-tree",
|
"repo": "import-tree",
|
||||||
"rev": "4ebb10ae17d5f1ad366e7aef5b92cb8eecf24f69",
|
"rev": "d321337efd0f23a9eb14a42adb7b2c29313ab274",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -211,11 +164,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1786462419,
|
"lastModified": 1781373243,
|
||||||
"narHash": "sha256-A7Q3UIyzDg1O54E0W6HOQIzvsVJq/rMuelJR+ELLRvI=",
|
"narHash": "sha256-CpZ5FEU1BtW6K4FywtCCE2wJs6R/Ifps3etRDh8NJ9w=",
|
||||||
"owner": "tomasriveral",
|
"owner": "tomasriveral",
|
||||||
"repo": "nix-git-cherry-picker",
|
"repo": "nix-git-cherry-picker",
|
||||||
"rev": "aec69257dc9b68d875333ec9f4a7b310d878abd1",
|
"rev": "9865dba535620831ae7cab395bf404f8f464df0e",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -226,11 +179,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1787848966,
|
"lastModified": 1781216227,
|
||||||
"narHash": "sha256-7gDpu5hpq0rOYnYMcOWqSzquK4HA/xU8Xf3CjUBOOJA=",
|
"narHash": "sha256-9mUW6gNwoN2SWc/l0fW4svPNOulXLl8ijqKyeSOGgJE=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "d57af924f160a5084293c71c2043f058bd1cdb60",
|
"rev": "a0374025a863d007d98e3297f6aa46cc3141c2f0",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -242,11 +195,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs-lib": {
|
"nixpkgs-lib": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1785031560,
|
"lastModified": 1777168982,
|
||||||
"narHash": "sha256-OmshNvn2vupOFpYinLUu+1Dnpu4n7Q5N3ggGVNHpkUI=",
|
"narHash": "sha256-GOkGPcboWE9BmGCRMLX3worL4EMnsnG8MyKmXNeYuhQ=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nixpkgs.lib",
|
"repo": "nixpkgs.lib",
|
||||||
"rev": "0e79af5e3d4dcfcd676ab5ba3f95d2e3352e078c",
|
"rev": "f5901329dade4a6ea039af1433fb087bd9c1fe14",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -265,11 +218,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1785077063,
|
"lastModified": 1781273662,
|
||||||
"narHash": "sha256-rJxX9Mq16TOiIlf+nNR4SaLsWf1yII8xsQpJUNio3Yg=",
|
"narHash": "sha256-50dd7Cs1mUHq1srw7UojdzCYOB4TfrIXMv7XHHPU9zw=",
|
||||||
"owner": "tomasriveral",
|
"owner": "tomasriveral",
|
||||||
"repo": "nixpkgs-notifier",
|
"repo": "nixpkgs-notifier",
|
||||||
"rev": "39a89ffbdc49cc9ab6f67bc4be7ea2f7d3e2b38c",
|
"rev": "12183f26e8b196d9906f82dc05f9672793c61038",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -280,11 +233,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs-unstable": {
|
"nixpkgs-unstable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1787814960,
|
"lastModified": 1781328464,
|
||||||
"narHash": "sha256-PYZq1qzCJXC2zGI0mH07vrZBsw6DRBAOX0jN1pPtqOQ=",
|
"narHash": "sha256-j9uBlHI0eJ9zWU9IlF6SlBBPdeJu30hcvar31IRKHpw=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "c27cdad491a991b11ed731760aa2ef8db0cb0410",
|
"rev": "5a722a7155bfc9fbe657f28d26b71860d95324bc",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -304,11 +257,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1787547082,
|
"lastModified": 1780908812,
|
||||||
"narHash": "sha256-v2KPBHgeSvThqz/qsajxpc98CIcBhXson4uUazAuwFs=",
|
"narHash": "sha256-syxEJP0NNgVZYHp/zRVuz32VYf+ULD9itZk7V06SCos=",
|
||||||
"owner": "tomasriveral",
|
"owner": "tomasriveral",
|
||||||
"repo": "notewrapper",
|
"repo": "notewrapper",
|
||||||
"rev": "713fa27893c91896607229895d06e4b853edceeb",
|
"rev": "e670ef935f0dd87dc8a8c6982147a9b8dce7565e",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -328,11 +281,11 @@
|
|||||||
"rust-overlay": "rust-overlay"
|
"rust-overlay": "rust-overlay"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1787604401,
|
"lastModified": 1781158593,
|
||||||
"narHash": "sha256-r5Ts5BWk99uIuyFqai85c+WdS3AAar20Qgd0diV1YoM=",
|
"narHash": "sha256-zxlheX4o1MK00dkYzoXm7Srj5SD9iOCSp4N7f1iShr0=",
|
||||||
"owner": "r14dd",
|
"owner": "r14dd",
|
||||||
"repo": "patent",
|
"repo": "patent",
|
||||||
"rev": "bbe68e8ebc29ca6cec996f89b03997a5d67aa550",
|
"rev": "68772d068088d62a030619090959165af5e71ed1",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -349,11 +302,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1787440121,
|
"lastModified": 1781053488,
|
||||||
"narHash": "sha256-OZdLL1rMR9kjTFZroOODeyQ0u6nrSxcFHlK6JUi+R/c=",
|
"narHash": "sha256-P4WEBaKgl8flRckHxXGHzT0potPvB3x8ZFIp9gLEAMY=",
|
||||||
"ref": "refs/heads/master",
|
"ref": "refs/heads/master",
|
||||||
"rev": "0fed22a2c47d9568ddf13cf61586b3f2ac4378a2",
|
"rev": "d99d87d5e5ec4e696815348692fdaaf0b6be1b2c",
|
||||||
"revCount": 847,
|
"revCount": 822,
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://git.outfoxxed.me/outfoxxed/quickshell"
|
"url": "https://git.outfoxxed.me/outfoxxed/quickshell"
|
||||||
},
|
},
|
||||||
@@ -364,7 +317,6 @@
|
|||||||
},
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"agenix": "agenix",
|
|
||||||
"caelestia-shell": "caelestia-shell",
|
"caelestia-shell": "caelestia-shell",
|
||||||
"disko": "disko",
|
"disko": "disko",
|
||||||
"flake-parts": "flake-parts",
|
"flake-parts": "flake-parts",
|
||||||
@@ -417,21 +369,6 @@
|
|||||||
"repo": "default",
|
"repo": "default",
|
||||||
"type": "github"
|
"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",
|
"root": "root",
|
||||||
|
|||||||
@@ -47,11 +47,6 @@
|
|||||||
url = "github:nix-community/disko";
|
url = "github:nix-community/disko";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
agenix = {
|
|
||||||
url = "github:ryantm/agenix";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
inputs.home-manager.follows = "home-manager";
|
|
||||||
};
|
|
||||||
/*
|
/*
|
||||||
microPlugins-vivify = {
|
microPlugins-vivify = {
|
||||||
url = "git+https://codeberg.org/gibbert/micro-vivify";
|
url = "git+https://codeberg.org/gibbert/micro-vivify";
|
||||||
|
|||||||
@@ -51,56 +51,58 @@ _: {
|
|||||||
enable = true;
|
enable = true;
|
||||||
force = true;
|
force = true;
|
||||||
};
|
};
|
||||||
|
};
|
||||||
|
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-desktop = {
|
};
|
||||||
home.file.".config/hypr/host.lua" = {
|
flake.homeModules.hyprland = {pkgs-unstable, ... }:
|
||||||
text = ''
|
let
|
||||||
hl.monitor({
|
wallpaper1 = ../../assets/wallpaper1.jpg;
|
||||||
output = "",
|
wallpaper2 = ../../assets/wallpaper2.jpg;
|
||||||
mode = "preferred",
|
wallpaper3 = ../../assets/wallpaper3.jpg;
|
||||||
position = "auto",
|
wallpaper4 = ../../assets/wallpaper4.jpg;
|
||||||
scale = 0.75,
|
wallpaper5 = ../../assets/wallpaper5.jpg;
|
||||||
})
|
|
||||||
'';
|
|
||||||
enable = true;
|
|
||||||
force = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
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;
|
|
||||||
|
|
||||||
hyprlandLua =
|
hyprlandLua = builtins.replaceStrings
|
||||||
builtins.replaceStrings
|
[
|
||||||
[
|
"WALLPAPER1/PATH/PLACEHOLDER"
|
||||||
"WALLPAPER1/PATH/PLACEHOLDER"
|
"WALLPAPER2/PATH/PLACEHOLDER"
|
||||||
"WALLPAPER2/PATH/PLACEHOLDER"
|
"WALLPAPER3/PATH/PLACEHOLDER"
|
||||||
"WALLPAPER3/PATH/PLACEHOLDER"
|
"WALLPAPER4/PATH/PLACEHOLDER"
|
||||||
"WALLPAPER4/PATH/PLACEHOLDER"
|
"WALLPAPER5/PATH/PLACEHOLDER"
|
||||||
"WALLPAPER5/PATH/PLACEHOLDER"
|
]
|
||||||
]
|
[
|
||||||
[
|
(toString wallpaper1)
|
||||||
(toString wallpaper1)
|
(toString wallpaper2)
|
||||||
(toString wallpaper2)
|
(toString wallpaper3)
|
||||||
(toString wallpaper3)
|
(toString wallpaper4)
|
||||||
(toString wallpaper4)
|
(toString wallpaper5)
|
||||||
(toString wallpaper5)
|
]
|
||||||
]
|
(builtins.readFile ../../other/hyprland/hyprland.lua);
|
||||||
(builtins.readFile ../../other/hyprland/hyprland.lua);
|
in
|
||||||
in {
|
{
|
||||||
#refer to https://wiki.hypr.land/Nix/Hyprland-on-Home-Manager/
|
|
||||||
wayland.windowManager.hyprland.enable = true;
|
#refer to https://wiki.hypr.land/Nix/Hyprland-on-Home-Manager/
|
||||||
wayland.windowManager.hyprland.package = pkgs-unstable.hyprland;
|
wayland.windowManager.hyprland.enable = true;
|
||||||
#hint Electron apps to use on wayland;
|
wayland.windowManager.hyprland.package = pkgs-unstable.hyprland;
|
||||||
home.sessionVariables.NIXOS_OZONE_WL = "1";
|
#hint Electron apps to use on wayland;
|
||||||
wayland.windowManager.hyprland.plugins = [
|
home.sessionVariables.NIXOS_OZONE_WL = "1";
|
||||||
#pkgs-unstable.hyprlandPlugins.hyprspace # currently broken
|
wayland.windowManager.hyprland.plugins = [
|
||||||
#pkgs-unstable.hyprlandPlugins.hypr-dynamic-cursors
|
#pkgs-unstable.hyprlandPlugins.hyprspace # currently broken
|
||||||
];
|
#pkgs-unstable.hyprlandPlugins.hypr-dynamic-cursors
|
||||||
wayland.windowManager.hyprland.configType = "lua";
|
];
|
||||||
wayland.windowManager.hyprland.extraConfig = hyprlandLua;
|
wayland.windowManager.hyprland.configType = "lua";
|
||||||
|
wayland.windowManager.hyprland.extraConfig = hyprlandLua;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@@ -333,8 +333,6 @@ _: {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
vim.lsp.config("texlab", { cmd = { "texlab" }, filetypes = { "tex" }, on_attach = on_attach })
|
vim.lsp.config("texlab", { cmd = { "texlab" }, filetypes = { "tex" }, on_attach = on_attach })
|
||||||
|
|
||||||
-- i remove ltex from being enable bellow as it's too anoying and doesn't really help as sometime i write in french and other times in english/spanish or even german
|
|
||||||
vim.lsp.config("ltex", {
|
vim.lsp.config("ltex", {
|
||||||
cmd = { "ltex-ls-plus" },
|
cmd = { "ltex-ls-plus" },
|
||||||
filetypes = { "markdown", "text", "tex", "plaintex" },
|
filetypes = { "markdown", "text", "tex", "plaintex" },
|
||||||
@@ -375,7 +373,7 @@ _: {
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
vim.lsp.enable({ "lua_ls", "clangd", "pylsp", "texlab", "nixd", "leanls"})
|
vim.lsp.enable({ "lua_ls", "clangd", "pylsp", "texlab", "nixd", "ltex", "leanls"})
|
||||||
-- =========================
|
-- =========================
|
||||||
-- DASHBOARD
|
-- DASHBOARD
|
||||||
-- =========================
|
-- =========================
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
_: {
|
_: {
|
||||||
|
|
||||||
flake.homeModules.tmux = _: {
|
flake.homeModules.tmux = _: {
|
||||||
programs.tmux = {
|
programs.tmux = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ _: {
|
|||||||
command cat "$@"
|
command cat "$@"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
custom-eza() { # behaves differently if we just call it or if we pipe initContent
|
custom-eza() { # behaves differently if we just call it or if we pipe initContent
|
||||||
if [[ -t 1 ]]; then
|
if [[ -t 1 ]]; then
|
||||||
eza -hlF -aa --color=always --hyperlink --group-directories-first --show-symlinks --icons=always --git --no-permissions "$@"
|
eza -hlF -aa --color=always --hyperlink --group-directories-first --show-symlinks --icons=always --git --no-permissions "$@"
|
||||||
@@ -70,7 +70,7 @@ _: {
|
|||||||
fastfetch
|
fastfetch
|
||||||
fi
|
fi
|
||||||
|
|
||||||
'';
|
'';
|
||||||
shellAliases = {
|
shellAliases = {
|
||||||
".." = "z ..";
|
".." = "z ..";
|
||||||
grep = "rg";
|
grep = "rg";
|
||||||
|
|||||||
@@ -1,4 +1,8 @@
|
|||||||
{self, ...}: {
|
{
|
||||||
|
self,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
flake.nixosModules.battery-laptop = {pkgs, ...}:
|
flake.nixosModules.battery-laptop = {pkgs, ...}:
|
||||||
# https://discourse.nixos.org/t/what-is-the-best-option-for-power-management/63406/2
|
# https://discourse.nixos.org/t/what-is-the-best-option-for-power-management/63406/2
|
||||||
# we just activate tlp unconditonally
|
# we just activate tlp unconditonally
|
||||||
@@ -31,7 +35,7 @@
|
|||||||
*/
|
*/
|
||||||
services.system76-scheduler.settings.cfsProfiles.enable = true; # Better scheduling for CPU cycles - thanks System76!!!
|
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.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.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)
|
enable = true; # Enable TLP (better than gnomes internal power manager)
|
||||||
|
|||||||
@@ -1,10 +0,0 @@
|
|||||||
_: {
|
|
||||||
flake.nixosModules.onxyboox = {pkgs, ...}: {
|
|
||||||
services.gvfs.enable = true;
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
gvfs
|
|
||||||
calibre
|
|
||||||
kdePackages.kio-extras
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -44,7 +44,7 @@
|
|||||||
notifications
|
notifications
|
||||||
nvidia
|
nvidia
|
||||||
office
|
office
|
||||||
#ollama
|
ollama
|
||||||
otherUtils
|
otherUtils
|
||||||
performance-desktop
|
performance-desktop
|
||||||
printer
|
printer
|
||||||
@@ -133,7 +133,7 @@
|
|||||||
home.homeDirectory = "/home/tomasr";
|
home.homeDirectory = "/home/tomasr";
|
||||||
|
|
||||||
home.sessionVariables = {
|
home.sessionVariables = {
|
||||||
EDITOR = "nvim";
|
EDITOR = "neovim";
|
||||||
TERMINAL = "kitty";
|
TERMINAL = "kitty";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -9,8 +9,6 @@
|
|||||||
inherit (self) pkgs-unstable pkgs-local pkgs-master;
|
inherit (self) pkgs-unstable pkgs-local pkgs-master;
|
||||||
};
|
};
|
||||||
modules = with self.nixosModules; [
|
modules = with self.nixosModules; [
|
||||||
inputs.agenix.nixosModules.default
|
|
||||||
agenix
|
|
||||||
# important do not remove
|
# important do not remove
|
||||||
home-manager-laptop
|
home-manager-laptop
|
||||||
laptop
|
laptop
|
||||||
@@ -20,7 +18,7 @@
|
|||||||
audioAndMedia
|
audioAndMedia
|
||||||
autoCleanup-laptop
|
autoCleanup-laptop
|
||||||
autoUpdate-laptop
|
autoUpdate-laptop
|
||||||
#battery-laptop
|
battery-laptop
|
||||||
bluetooth
|
bluetooth
|
||||||
bootloader
|
bootloader
|
||||||
browsers
|
browsers
|
||||||
@@ -48,7 +46,6 @@
|
|||||||
nixUtils
|
nixUtils
|
||||||
notifications
|
notifications
|
||||||
office
|
office
|
||||||
onxyboox
|
|
||||||
#ollama
|
#ollama
|
||||||
otherUtils
|
otherUtils
|
||||||
printer
|
printer
|
||||||
@@ -133,7 +130,7 @@
|
|||||||
home.homeDirectory = "/home/tomasr";
|
home.homeDirectory = "/home/tomasr";
|
||||||
|
|
||||||
home.sessionVariables = {
|
home.sessionVariables = {
|
||||||
EDITOR = "nvim";
|
EDITOR = "neovim";
|
||||||
TERMINAL = "kitty";
|
TERMINAL = "kitty";
|
||||||
SYSTEMD_PAGER = "cat";
|
SYSTEMD_PAGER = "cat";
|
||||||
PAGER = "cat";
|
PAGER = "cat";
|
||||||
|
|||||||
@@ -19,9 +19,6 @@
|
|||||||
description = "NixOS flake auto update";
|
description = "NixOS flake auto update";
|
||||||
|
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
Environment = [
|
|
||||||
"NTFY_SECRET=${config.age.secrets.ntfy.path}"
|
|
||||||
];
|
|
||||||
Type = "oneshot";
|
Type = "oneshot";
|
||||||
|
|
||||||
ExecStart = "/run/current-system/sw/bin/custom-autoupdate";
|
ExecStart = "/run/current-system/sw/bin/custom-autoupdate";
|
||||||
@@ -76,9 +73,6 @@
|
|||||||
description = "NixOS flake auto update";
|
description = "NixOS flake auto update";
|
||||||
|
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
Environment = [
|
|
||||||
"NTFY_SECRET=${config.age.secrets.ntfy.path}"
|
|
||||||
];
|
|
||||||
Type = "oneshot";
|
Type = "oneshot";
|
||||||
|
|
||||||
ExecStart = "/run/current-system/sw/bin/custom-autoupdate";
|
ExecStart = "/run/current-system/sw/bin/custom-autoupdate";
|
||||||
@@ -118,9 +112,8 @@
|
|||||||
runtimeInputs = with pkgs; [
|
runtimeInputs = with pkgs; [
|
||||||
git
|
git
|
||||||
nixos-rebuild
|
nixos-rebuild
|
||||||
curl
|
matrix-commander-rs
|
||||||
libnotify
|
libnotify
|
||||||
nix
|
|
||||||
];
|
];
|
||||||
|
|
||||||
text = ''
|
text = ''
|
||||||
@@ -142,7 +135,7 @@
|
|||||||
# update lock only
|
# update lock only
|
||||||
nix flake update --flake "$FLAKE_DIR"
|
nix flake update --flake "$FLAKE_DIR"
|
||||||
|
|
||||||
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 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
|
if ! git -C "$FLAKE_DIR" diff --quiet -- flake.lock; then
|
||||||
git -C "$FLAKE_DIR" add flake.lock
|
git -C "$FLAKE_DIR" add flake.lock
|
||||||
@@ -187,14 +180,11 @@
|
|||||||
runtimeInputs = with pkgs; [
|
runtimeInputs = with pkgs; [
|
||||||
git
|
git
|
||||||
nixos-rebuild
|
nixos-rebuild
|
||||||
|
matrix-commander-rs
|
||||||
libnotify
|
libnotify
|
||||||
curl
|
|
||||||
nix
|
|
||||||
];
|
];
|
||||||
|
|
||||||
text = ''
|
text = ''
|
||||||
# shellcheck disable=SC1090
|
|
||||||
source "$NTFY_SECRET"
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
FLAKE_DIR="/home/tomasr/nixos"
|
FLAKE_DIR="/home/tomasr/nixos"
|
||||||
@@ -211,7 +201,7 @@
|
|||||||
# update lock only
|
# update lock only
|
||||||
nix flake update --flake "$FLAKE_DIR"
|
nix flake update --flake "$FLAKE_DIR"
|
||||||
|
|
||||||
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 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
|
if ! git -C "$FLAKE_DIR" diff --quiet -- flake.lock; then
|
||||||
git -C "$FLAKE_DIR" add flake.lock
|
git -C "$FLAKE_DIR" add flake.lock
|
||||||
|
|||||||
@@ -2,9 +2,9 @@ _: {
|
|||||||
flake.nixosModules.hledger = {pkgs, ...}: {
|
flake.nixosModules.hledger = {pkgs, ...}: {
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
hledger
|
hledger
|
||||||
|
hledger-ui
|
||||||
hledger-web
|
hledger-web
|
||||||
asciinema # used for some hledger demos
|
asciinema # used for some hledger demos
|
||||||
puffin
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
flake.nixosModules.hledger-laptop = _: {
|
flake.nixosModules.hledger-laptop = _: {
|
||||||
|
|||||||
@@ -4,10 +4,8 @@
|
|||||||
libnotify # Library that sends desktop notifications to a notification daemon
|
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)
|
socat # Utility for bidirectional data transfer between two independent data channels (used to communicate between hyprland and awww to change wallpapers dinamically)
|
||||||
# battery notifications
|
# battery notifications
|
||||||
/*
|
/*self.packages.${pkgs.system}.custom-batterynotify
|
||||||
self.packages.${pkgs.system}.custom-batterynotify
|
self.packages.${pkgs.system}.custom-batterywarning*/
|
||||||
self.packages.${pkgs.system}.custom-batterywarning
|
|
||||||
*/
|
|
||||||
self.packages.${pkgs.system}.custom-gitnotify # checks if git is set up
|
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
|
self.packages.${pkgs.system}.custom-checkKdrive # check if kdrive is set up with rclone
|
||||||
zoom-us
|
zoom-us
|
||||||
|
|||||||
@@ -48,17 +48,11 @@
|
|||||||
"configFetchTime": 1,
|
"configFetchTime": 1,
|
||||||
"localNotify": true,
|
"localNotify": true,
|
||||||
"matrix": {
|
"matrix": {
|
||||||
"enable": false,
|
"enable": true,
|
||||||
"room": "!BXRRokBmEdNOyYdfOF:matrix.org",
|
"room": "!BXRRokBmEdNOyYdfOF:matrix.org",
|
||||||
"ping": true,
|
"ping": true,
|
||||||
"userPing": "@notificationbot_0000",
|
"userPing": "@notificationbot_0000",
|
||||||
"userPingServer": "matrix.org"
|
"userPingServer": "matrix.org"
|
||||||
},
|
|
||||||
"ntfy": {
|
|
||||||
"enable": true,
|
|
||||||
"auth": ":$NTFY_TOKEN",
|
|
||||||
"server": "$NTFY_SERVER",
|
|
||||||
"topic": "Alerts"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
'';
|
'';
|
||||||
|
|||||||
@@ -16,15 +16,7 @@ _: {
|
|||||||
networking.networkmanager.enable = true;
|
networking.networkmanager.enable = true;
|
||||||
|
|
||||||
# Enable the OpenSSH daemon.
|
# Enable the OpenSSH daemon.
|
||||||
services.openssh = {
|
# services.openssh.enable = true;
|
||||||
enable = true;
|
|
||||||
hostKeys = [
|
|
||||||
{
|
|
||||||
path = "/etc/ssh/ssh_host_ed25519_key";
|
|
||||||
type = "ed25519";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
# Open ports in the firewall.
|
# Open ports in the firewall.
|
||||||
# networking.firewall.allowedTCPPorts = [ ... ];
|
# networking.firewall.allowedTCPPorts = [ ... ];
|
||||||
|
|||||||
@@ -1,11 +1,7 @@
|
|||||||
{self, ...}: {
|
{self, ...}: {
|
||||||
flake.nixosModules.otherUtils =
|
flake.nixosModules.otherUtils =
|
||||||
# try to keep packages here at a minium. Preferably use a dedicated file
|
# try to keep packages here at a minium. Preferably use a dedicated file
|
||||||
{
|
{pkgs, pkgs-unstable, ...}: {
|
||||||
pkgs,
|
|
||||||
pkgs-unstable,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
gnome-calculator
|
gnome-calculator
|
||||||
snapshot
|
snapshot
|
||||||
|
|||||||
+18
-17
@@ -1,6 +1,6 @@
|
|||||||
# config for openconnect is in ./epfl.nix
|
# config for openconnect is in ./epfl.nix
|
||||||
{self, ...}: {
|
{self, ...}: {
|
||||||
flake.nixosModules.vpn = {pkgs, ...}: {
|
flake.nixosModules.vpn = {pkgs,...}: {
|
||||||
services.mullvad-vpn = {
|
services.mullvad-vpn = {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
@@ -10,11 +10,12 @@
|
|||||||
age.secrets.epfl = {
|
age.secrets.epfl = {
|
||||||
file = ../../secrets/epfl.age;
|
file = ../../secrets/epfl.age;
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
perSystem = {pkgs, ...}: {
|
perSystem = {pkgs, ...}: {
|
||||||
packages.custom-vpn-picker = pkgs.writeShellApplication {
|
packages.custom-vpn-picker = pkgs.writeShellApplication {
|
||||||
name = "custom-vpn-picker";
|
name = "custom-vpn-picker";
|
||||||
|
|
||||||
runtimeInputs = with pkgs; [
|
runtimeInputs = with pkgs; [
|
||||||
fzf
|
fzf
|
||||||
mullvad-compass
|
mullvad-compass
|
||||||
@@ -24,14 +25,14 @@
|
|||||||
wl-clipboard
|
wl-clipboard
|
||||||
cliphist
|
cliphist
|
||||||
];
|
];
|
||||||
|
|
||||||
text = ''
|
text = ''
|
||||||
mullvad_connect () {
|
mullvad_connect () {
|
||||||
mullvad disconnect
|
mullvad disconnect
|
||||||
mullvad relay set location "$1"
|
mullvad relay set location "$1"
|
||||||
mullvad connect
|
mullvad connect
|
||||||
}
|
}
|
||||||
|
|
||||||
profiles=(
|
profiles=(
|
||||||
"mullvad-best"
|
"mullvad-best"
|
||||||
"mullvad-zurich"
|
"mullvad-zurich"
|
||||||
@@ -40,12 +41,12 @@
|
|||||||
"epfl"
|
"epfl"
|
||||||
"disconnect"
|
"disconnect"
|
||||||
)
|
)
|
||||||
|
|
||||||
selected=$(printf "%s\n" "''${profiles[@]}" |
|
selected=$(printf "%s\n" "''${profiles[@]}" |
|
||||||
fzf --height 8 --reverse --prompt="Select vpn:")
|
fzf --height 8 --reverse --prompt="Select vpn:")
|
||||||
|
|
||||||
[[ -z "$selected" ]] && exit 0
|
[[ -z "$selected" ]] && exit 0
|
||||||
|
|
||||||
if [[ "$selected" == "mullvad-best" ]]; then
|
if [[ "$selected" == "mullvad-best" ]]; then
|
||||||
mullvad_connect "$(
|
mullvad_connect "$(
|
||||||
mullvad-compass |
|
mullvad-compass |
|
||||||
@@ -55,42 +56,42 @@
|
|||||||
print a[1]
|
print a[1]
|
||||||
}'
|
}'
|
||||||
)"
|
)"
|
||||||
|
|
||||||
elif [[ "$selected" == "mullvad-zurich" ]]; then
|
elif [[ "$selected" == "mullvad-zurich" ]]; then
|
||||||
mullvad_connect ch
|
mullvad_connect ch
|
||||||
|
|
||||||
elif [[ "$selected" == "mullvad-tirana" ]]; then
|
elif [[ "$selected" == "mullvad-tirana" ]]; then
|
||||||
mullvad_connect al
|
mullvad_connect al
|
||||||
|
|
||||||
elif [[ "$selected" == "mullvad-bogota" ]]; then
|
elif [[ "$selected" == "mullvad-bogota" ]]; then
|
||||||
mullvad_connect co
|
mullvad_connect co
|
||||||
|
|
||||||
elif [[ "$selected" == "epfl" ]]; then
|
elif [[ "$selected" == "epfl" ]]; then
|
||||||
# shellcheck disable=SC1091
|
# shellcheck disable=SC1091
|
||||||
source /run/agenix/epfl
|
source /run/agenix/epfl
|
||||||
|
|
||||||
# Put password in clipboard so it can be pasted into openconnect.
|
# Put password in clipboard so it can be pasted into openconnect.
|
||||||
printf '%s' "$EPFL_VPN_PASSWORD" | wl-copy
|
printf '%s' "$EPFL_VPN_PASSWORD" | wl-copy
|
||||||
|
|
||||||
sudo openconnect \
|
sudo openconnect \
|
||||||
--background \
|
--background \
|
||||||
--pid-file="$HOME/.local/state/epfl-openconnect.pid" \
|
--pid-file="$HOME/.local/state/epfl-openconnect.pid" \
|
||||||
--server="$EPFL_VPN_SERVER" \
|
--server="$EPFL_VPN_SERVER" \
|
||||||
--user="$EPFL_VPN_USER"
|
--user="$EPFL_VPN_USER"
|
||||||
|
|
||||||
# Remove the password from cliphist and clear the current clipboard.
|
# Remove the password from cliphist and clear the current clipboard.
|
||||||
cliphist delete-query "$EPFL_VPN_PASSWORD" || true
|
cliphist delete-query "$EPFL_VPN_PASSWORD" || true
|
||||||
wl-copy --clear
|
wl-copy --clear
|
||||||
|
|
||||||
elif [[ "$selected" == "disconnect" ]]; then
|
elif [[ "$selected" == "disconnect" ]]; then
|
||||||
if [[ -f "$HOME/.local/state/epfl-openconnect.pid" ]]; then
|
if [[ -f "$HOME/.local/state/epfl-openconnect.pid" ]]; then
|
||||||
sudo kill "$(cat "$HOME/.local/state/epfl-openconnect.pid")" 2>/dev/null || true
|
sudo kill "$(cat "$HOME/.local/state/epfl-openconnect.pid")" 2>/dev/null || true
|
||||||
fi
|
fi
|
||||||
|
|
||||||
mullvad disconnect
|
mullvad disconnect
|
||||||
rm "$HOME/.local/state/epfl-openconnect.pid"
|
rm "$HOME/.local/state/epfl-openconnect.pid"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
pkill -f "kitty.*Select vpn option" || true
|
pkill -f "kitty.*Select vpn option" || true
|
||||||
exit
|
exit
|
||||||
'';
|
'';
|
||||||
|
|||||||
Binary file not shown.
Reference in new issue
Block a user