70 Commits
Author SHA1 Message Date
tomasr f3aa8dec66 fix notewrapper config parse error 2026-08-14 17:26:39 +02:00
tomasr b3dfeb28d9 update notewrapper config 2026-08-14 17:06:19 +02:00
tomasr a3b89490f4 remove old icloudpd 2026-08-14 11:51:33 +02:00
tomasr 677645e5e3 rewrote performance mode into lua 2026-08-14 11:49:23 +02:00
tomasr 9ed18ed336 update READEME.md 2026-08-14 11:01:29 +02:00
tomasr 721eb46081 replace rm by trash-cli 2026-08-14 10:20:07 +02:00
tomasr 2681d9dab3 temp remove power-profile-daemons 2026-08-14 10:02:55 +02:00
tomasr 5377e7a647 rewrite README.md 2026-08-14 09:58:38 +02:00
tomasr 77195016e1 hyprland: migrated from hyprlang to lua
- all hyprlandScripts were migrated to lua functions
- hyprland.nix just handles the host specific and replacing the
  placeholders from hyprland.lua
2026-08-14 09:28:07 +02:00
tomasr 87e7530004 snapshot pre-autoupdate-2026-08-13T10-07-03Z 2026-08-13 12:07:03 +02:00
tomasr f1dae5ab9c snapshot pre-autoupdate-2026-08-13T07-15-33Z 2026-08-13 09:15:33 +02:00
tomasr b6690407f7 restore mullvad 2026-08-12 19:48:54 +02:00
tomasr 21c366244b add dolphin plugin 2026-08-12 15:32:46 +02:00
tomasr ec22349a7a add ark for dolphin 2026-08-12 15:24:38 +02:00
tomasr 29c7a4a86c reactivate battery warning 2026-08-12 15:05:22 +02:00
tomasr 6263a11c4c fix archivebox extesnion 2026-08-11 17:06:16 +02:00
tomasr 1471a976f1 remove temp mullvad 2026-08-11 17:03:55 +02:00
tomasr 0ce25113e7 add archivebox extension 2026-08-11 16:17:48 +02:00
tomasr e49019c8ba add browser bookmark noogle.dev 2026-08-11 16:14:32 +02:00
tomasr bd85b284a6 reactivate qtbatticon 2026-08-11 16:13:11 +02:00
tomasr 7f2367720b oga bouga 2026-08-09 14:48:54 +02:00
tomasr 14751f5cf0 snapshot pre-cleanup-2026-08-08T20-52-19Z 2026-08-08 22:52:19 +02:00
tomasr 419f5a6214 flack lock change 2026-08-08 10:14:54 +02:00
tomasr b5b329ab17 snapshot pre-autoupdate-2026-08-08T08-02-18Z 2026-08-08 10:02:18 +02:00
tomasr dc1b4caa24 rss reader 2026-08-04 19:50:32 +02:00
tomasr c7d72333d4 debugging max battery 2026-08-04 14:16:53 +02:00
tomasr 04b3257c7d debugging max battery 2026-08-04 14:13:16 +02:00
tomasr 12bcb8ad6a fix calendar? 2026-08-04 11:29:50 +02:00
tomasr 229201a7c7 add kontact 2026-08-04 11:25:52 +02:00
tomasr ace1780097 add KOrganizer 2026-08-04 11:21:17 +02:00
tomasr 928b192611 Auto: cleanup-2026-08-02T11-15-39Z 2026-08-02 13:15:57 +02:00
tomasr 3160e6a409 snapshot pre-cleanup-2026-08-02T11-15-39Z 2026-08-02 13:15:39 +02:00
tomasr f76e16266b snapshot pre-autoupdate-2026-08-01T08-20-53Z 2026-08-01 10:20:53 +02:00
tomasr eec6da5803 librewolf: remove old bookmark 2026-07-30 21:28:31 +02:00
tomasr 282d076bf3 first tmux config 2026-07-30 21:18:33 +02:00
tomasr 0e67b49ebd tmux: init config 2026-07-30 14:06:41 +02:00
tomasr dd1c9bd990 hledger-ui: replace by puffin 2026-07-29 21:11:21 +02:00
tomasr 20cef053c0 replace rss reader 2026-07-29 18:46:20 +02:00
tomasr 553796d6c7 fix pagers 2026-07-26 21:54:17 +02:00
tomasr 63ec8d1945 flack.lock change 2026-07-26 18:41:00 +02:00
tomasr 588a1e77e8 migrate nixpkgs-notifier to ntfy 2026-07-26 16:46:26 +02:00
tomasr eca6ad278d Auto: cleanup-2026-07-26T14-02-17Z 2026-07-26 16:02:39 +02:00
tomasr 5e7550f6d7 snapshot pre-cleanup-2026-07-26T14-02-17Z 2026-07-26 16:02:17 +02:00
tomasr abd6a6ca3c snapshot pre-cleanup-2026-07-26T13-59-06Z 2026-07-26 15:59:06 +02:00
tomasr a7370a65e7 snapshot pre-cleanup-2026-07-26T13-57-11Z 2026-07-26 15:57:11 +02:00
tomasr 01cd080bf1 snapshot pre-cleanup-2026-07-26T13-54-32Z 2026-07-26 15:54:32 +02:00
tomasr b24b16728a setup agenix and migrate from matrix-commander-rs to ntfy for phone notifications 2026-07-26 15:48:54 +02:00
tomasr a80629a6e4 snapshot pre-autoupdate-2026-07-26T13-20-51Z 2026-07-26 15:20:51 +02:00
tomasr ff26348536 snapshot pre-autoupdate-2026-07-26T13-04-37Z 2026-07-26 15:04:37 +02:00
tomasr e672a99d95 snapshot pre-autoupdate-2026-07-26T13-01-03Z 2026-07-26 15:01:03 +02:00
tomasr 35542be154 snapshot pre-autoupdate-2026-07-26T12-55-52Z 2026-07-26 14:55:52 +02:00
tomasr 8b1e206d4f snapshot pre-autoupdate-2026-07-26T12-53-35Z 2026-07-26 14:53:35 +02:00
tomasr 6304c65ea6 snapshot pre-autoupdate-2026-07-26T12-46-58Z 2026-07-26 14:46:58 +02:00
tomasr 325ee56fa3 snapshot pre-autoupdate-2026-07-26T12-33-05Z 2026-07-26 14:33:05 +02:00
tomasr a9874f1b2a snapshot pre-autoupdate-2026-07-26T12-32-47Z 2026-07-26 14:32:47 +02:00
tomasr ba4f2b5bf2 setup agenix 2026-07-26 14:09:18 +02:00
tomasr 72fae98a43 snapshot pre-cleanup-2026-07-25T22-02-24Z 2026-07-26 00:02:24 +02:00
tomasr ab6b81a228 snapshot pre-autoupdate-2026-07-25T15-13-11Z 2026-07-25 17:13:11 +02:00
tomasr 247ddefdc6 onyx fix 2026-07-25 16:03:34 +02:00
tomasr 1a646b0c06 add gvfs 2026-07-24 20:03:26 +02:00
tomasr 5d4d51b475 notewrapper: use kdrive directly 2026-07-24 17:40:27 +02:00
tomasr c6a30039e8 neovim: add hledger integration 2026-07-21 16:53:32 +02:00
tomasr 2b45b7f179 neovim: add lean lsp and config 2026-07-21 16:51:34 +02:00
tomasr 8268324958 hledger: init 2026-07-21 11:38:27 +02:00
tomasr 2d0c655658 snapshot pre-autoupdate-2026-07-20T23-03-59Z 2026-07-21 01:03:59 +02:00
tomasr fb5cd58254 CI: fix crash when no diff 2026-07-21 00:46:12 +02:00
tomasr 20ad4bb594 snapshot pre-autoupdate-2026-07-20T22-36-16Z 2026-07-21 00:36:16 +02:00
tomasr d83045353f snapshot pre-cleanup-2026-07-20T22-15-38Z 2026-07-21 00:15:38 +02:00
tomasr 806215b1b8 snapshot pre-autoupdate-2026-07-20T22-12-08Z 2026-07-21 00:12:08 +02:00
tomasr 63baafdca6 snapshot pre-autoupdate-2026-07-20T22-05-05Z 2026-07-21 00:05:05 +02:00
32 changed files with 227 additions and 358 deletions

No files matched your search

+16 -1
View File
@@ -49,12 +49,21 @@ 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 }}" \
@@ -63,6 +72,7 @@ jobs:
--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
@@ -70,6 +80,7 @@ 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 }}" \
@@ -84,22 +95,26 @@ jobs:
--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
if: steps.pr.outputs.number != '' if: steps.pr.outputs.number != ''
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
+12 -24
View File
@@ -1,7 +1,5 @@
# NixOS Configuration # NixOS Configuration
![NixOS configuration](/assets/example.png)
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.
@@ -109,7 +107,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/ # Quickshell configuration │ └── quickshell/ # Legacy Quickshell configuration
│ │
├── secrets/ # agenix-encrypted secrets ├── secrets/ # agenix-encrypted secrets
├── flake.nix ├── flake.nix
@@ -430,6 +428,7 @@ The macros in the layout generate combinations involving `CTRL`, `ALT`, `SUPER`,
| Row 2, Col 2 | Change audio output (`CTRL + ALT + SHIFT + 0`) | | Row 2, Col 2 | Change audio output (`CTRL + ALT + SHIFT + 0`) |
| Row 2, Col 3 | Special characters (`CTRL + SUPER + 5`) | | Row 2, Col 3 | Special characters (`CTRL + SUPER + 5`) |
| Row 2, Col 4 | Color picker (`CTRL + ALT + 8`) | | Row 2, Col 4 | Color picker (`CTRL + ALT + 8`) |
| Row 3, Col 1 | Pomodoro timer (`CTRL + ALT + 0`) |
| Row 4, Col 1 | Launch Anki (`CTRL + ALT + 9`) | | Row 4, Col 1 | Launch Anki (`CTRL + ALT + 9`) |
The physical layout file contains additional transparent/unused positions, but the bindings above are the active shortcuts documented for the macropad. The physical layout file contains additional transparent/unused positions, but the bindings above are the active shortcuts documented for the macropad.
@@ -501,16 +500,18 @@ Useful command-line tools include:
* `fastfetch` * `fastfetch`
* `man` * `man`
* `manix` * `manix`
* `trash`
`ls` is replaced by `eza`. `ls`. `l`, `ll` and `la` are aliased/replaced by `eza`.
Common aliases include: `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`.
```text `rm` is replaced by trash-cli :
l * `rm` alias to `trash-put`
ll * `rml` alias to `trash-list`
la * `rmr` alias to `trash-restore`
``` * `rme` alias to `trash-empty`
* `rmx` alias to `trash-rm` (remove individual item from the trash).
--- ---
@@ -568,9 +569,6 @@ secrets/
Encrypted secrets should remain encrypted in Git. Decrypted secret contents and private keys should not be committed. Encrypted secrets should remain encrypted in Git. Decrypted secret contents and private keys should not be committed.
* To edit a secret use `agenix -e <secret_file>.age -i /etc/ssh/ssh_host_ed25519_key`.
* To decrypt a secret use `sudo agenix -d <secret_file>.age -i /etc/ssh/ssh_host_ed25519_key`.
--- ---
# Quickshell # Quickshell
@@ -589,15 +587,6 @@ 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.
@@ -606,7 +595,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
@@ -652,7 +641,6 @@ Some application state may need to be configured manually after installation:
* Birdtray settings * Birdtray settings
* Inkscape settings * Inkscape settings
* other application-specific user data * other application-specific user data
* git configuration
--- ---
Generated
+106 -43
View File
@@ -1,5 +1,30 @@
{ {
"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": [
@@ -11,11 +36,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1781239472, "lastModified": 1786071436,
"narHash": "sha256-WFL8jZMWNH1tx3UwaJ9aa9NN25uOEJ9mbKPRNQJY/xM=", "narHash": "sha256-/CQJ781dRGWWUMrJ34vIj1PQnNEEWgnEEuod0r5LKGk=",
"owner": "caelestia-dots", "owner": "caelestia-dots",
"repo": "cli", "repo": "cli",
"rev": "3f3229aed4f36752a02fd870fd6cad94bd76555f", "rev": "751fbc555a83faba5dd589270d14eeb22afab174",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -34,11 +59,11 @@
"quickshell": "quickshell" "quickshell": "quickshell"
}, },
"locked": { "locked": {
"lastModified": 1781408632, "lastModified": 1786238888,
"narHash": "sha256-kYVf3Jye4UhyBrtubYcSrmVyFv9uqOY2JvjmElFiZHE=", "narHash": "sha256-pnO0u0UUYwkr72pJR5Giu93LZfU/fhTKJZYa1xeM7Po=",
"owner": "caelestia-dots", "owner": "caelestia-dots",
"repo": "shell", "repo": "shell",
"rev": "f86c359cd90530bacc800e94e35ffbebecd3f58f", "rev": "817a220e8e87c4df9f3681033a0d8a8054cdaa30",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -47,6 +72,28 @@
"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": [
@@ -72,12 +119,12 @@
"nixpkgs-lib": "nixpkgs-lib" "nixpkgs-lib": "nixpkgs-lib"
}, },
"locked": { "locked": {
"lastModified": 1778716662, "lastModified": 1785627969,
"narHash": "sha256-m1Yf0wZ8j1OHjTc2UwHwyQRSnNeSgLJOd7q5Y45hzi4=", "narHash": "sha256-4dtXQk/NMePegK/nWp5NSeuZKLATItOq61lpEvmXqGw=",
"rev": "f7c1a2d347e4c52d5fb8d10cb4d94b5884e546fb", "rev": "427bf4bd9435fdf21321c8cc628c24efc14c0f7a",
"revCount": 475, "revCount": 483,
"type": "tarball", "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": { "original": {
"type": "tarball", "type": "tarball",
@@ -86,7 +133,7 @@
}, },
"flake-utils": { "flake-utils": {
"inputs": { "inputs": {
"systems": "systems" "systems": "systems_2"
}, },
"locked": { "locked": {
"lastModified": 1731533236, "lastModified": 1731533236,
@@ -108,11 +155,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1781319724, "lastModified": 1785119570,
"narHash": "sha256-ZGuxexEMo4Xv28KJ0dX/m/PHN4oZIOnxHZpNTyrvx4M=", "narHash": "sha256-Rgs2xKnGLFWQscxUaXX07oyZeuMDOHEbqDOsgliLFGM=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "8355f0a16b2dbb06a97959a918af5b239bbe05ae", "rev": "d4fd24667c8cbef124bb70a20380cab75ec8474d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -124,11 +171,11 @@
}, },
"import-tree": { "import-tree": {
"locked": { "locked": {
"lastModified": 1778781969, "lastModified": 1784254960,
"narHash": "sha256-Jjuz5CmSkur8KvLDoGa+vylEp+RkQtv4mt/qcMznpH0=", "narHash": "sha256-iI88R3wHz8wTKQb5orvpc51L/Xr64AJyxid/0MKa/b8=",
"owner": "vic", "owner": "vic",
"repo": "import-tree", "repo": "import-tree",
"rev": "d321337efd0f23a9eb14a42adb7b2c29313ab274", "rev": "4ebb10ae17d5f1ad366e7aef5b92cb8eecf24f69",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -164,11 +211,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1781373243, "lastModified": 1786462419,
"narHash": "sha256-CpZ5FEU1BtW6K4FywtCCE2wJs6R/Ifps3etRDh8NJ9w=", "narHash": "sha256-A7Q3UIyzDg1O54E0W6HOQIzvsVJq/rMuelJR+ELLRvI=",
"owner": "tomasriveral", "owner": "tomasriveral",
"repo": "nix-git-cherry-picker", "repo": "nix-git-cherry-picker",
"rev": "9865dba535620831ae7cab395bf404f8f464df0e", "rev": "aec69257dc9b68d875333ec9f4a7b310d878abd1",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -179,11 +226,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1781216227, "lastModified": 1786535285,
"narHash": "sha256-9mUW6gNwoN2SWc/l0fW4svPNOulXLl8ijqKyeSOGgJE=", "narHash": "sha256-rG5HKMAgAhMgydvKGtco6rqTxRq4EDZQCx9USLvVqYw=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "a0374025a863d007d98e3297f6aa46cc3141c2f0", "rev": "9f78f44a87948854445dae0b6bf82b2e87e4efb5",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -195,11 +242,11 @@
}, },
"nixpkgs-lib": { "nixpkgs-lib": {
"locked": { "locked": {
"lastModified": 1777168982, "lastModified": 1785031560,
"narHash": "sha256-GOkGPcboWE9BmGCRMLX3worL4EMnsnG8MyKmXNeYuhQ=", "narHash": "sha256-OmshNvn2vupOFpYinLUu+1Dnpu4n7Q5N3ggGVNHpkUI=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nixpkgs.lib", "repo": "nixpkgs.lib",
"rev": "f5901329dade4a6ea039af1433fb087bd9c1fe14", "rev": "0e79af5e3d4dcfcd676ab5ba3f95d2e3352e078c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -218,11 +265,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1781273662, "lastModified": 1785077063,
"narHash": "sha256-50dd7Cs1mUHq1srw7UojdzCYOB4TfrIXMv7XHHPU9zw=", "narHash": "sha256-rJxX9Mq16TOiIlf+nNR4SaLsWf1yII8xsQpJUNio3Yg=",
"owner": "tomasriveral", "owner": "tomasriveral",
"repo": "nixpkgs-notifier", "repo": "nixpkgs-notifier",
"rev": "12183f26e8b196d9906f82dc05f9672793c61038", "rev": "39a89ffbdc49cc9ab6f67bc4be7ea2f7d3e2b38c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -233,11 +280,11 @@
}, },
"nixpkgs-unstable": { "nixpkgs-unstable": {
"locked": { "locked": {
"lastModified": 1781328464, "lastModified": 1786534138,
"narHash": "sha256-j9uBlHI0eJ9zWU9IlF6SlBBPdeJu30hcvar31IRKHpw=", "narHash": "sha256-fBJMdnKUTUDtfi/BYLr71HLaC9dG382arxLF2Egg2uo=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "5a722a7155bfc9fbe657f28d26b71860d95324bc", "rev": "044bfe75bfe4c7bbe043dc17b5e42ea823b84a09",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -257,11 +304,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1780908812, "lastModified": 1786346006,
"narHash": "sha256-syxEJP0NNgVZYHp/zRVuz32VYf+ULD9itZk7V06SCos=", "narHash": "sha256-PDM9fB1zBhqVVE75WxRM7vIo3QhL2LGKKdd6N+hTGlg=",
"owner": "tomasriveral", "owner": "tomasriveral",
"repo": "notewrapper", "repo": "notewrapper",
"rev": "e670ef935f0dd87dc8a8c6982147a9b8dce7565e", "rev": "689c3074c03328e2086dc032a2fc3de00bbef466",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -281,11 +328,11 @@
"rust-overlay": "rust-overlay" "rust-overlay": "rust-overlay"
}, },
"locked": { "locked": {
"lastModified": 1781158593, "lastModified": 1786270331,
"narHash": "sha256-zxlheX4o1MK00dkYzoXm7Srj5SD9iOCSp4N7f1iShr0=", "narHash": "sha256-GRhNuYIXR/0WWBya4CHfTKyCbL3wuFPJC5yBh5pHU8s=",
"owner": "r14dd", "owner": "r14dd",
"repo": "patent", "repo": "patent",
"rev": "68772d068088d62a030619090959165af5e71ed1", "rev": "d852cea921124a8b9002db9beb2af2d935af8130",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -302,11 +349,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1781053488, "lastModified": 1785704021,
"narHash": "sha256-P4WEBaKgl8flRckHxXGHzT0potPvB3x8ZFIp9gLEAMY=", "narHash": "sha256-eQtczKMAS4ItlB4pr1B3MqBZiyRVl2nkqNdtyRSQMa8=",
"ref": "refs/heads/master", "ref": "refs/heads/master",
"rev": "d99d87d5e5ec4e696815348692fdaaf0b6be1b2c", "rev": "28771c7c74b42e20afca0b1b63980cb46515537c",
"revCount": 822, "revCount": 835,
"type": "git", "type": "git",
"url": "https://git.outfoxxed.me/outfoxxed/quickshell" "url": "https://git.outfoxxed.me/outfoxxed/quickshell"
}, },
@@ -317,6 +364,7 @@
}, },
"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",
@@ -369,6 +417,21 @@
"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",
+5 -3
View File
@@ -47,6 +47,11 @@
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";
@@ -64,15 +69,12 @@
flake = let flake = let
system = "x86_64-linux"; system = "x86_64-linux";
unfreePkgs = [ unfreePkgs = [
"code"
"hplip" "hplip"
"nvidia-x11" "nvidia-x11"
"nvidia-settings" "nvidia-settings"
"steam" "steam"
"steam-unwrapped" "steam-unwrapped"
"cheatsheet.nvim" "cheatsheet.nvim"
"vscode"
"vscode-fhs"
"zoom-us" "zoom-us"
"zoom" "zoom"
]; ];
-18
View File
@@ -402,24 +402,6 @@
keyword = "nix function search"; keyword = "nix function search";
url = "https://noogle.dev"; url = "https://noogle.dev";
} }
{
name = "EPFL Moodle";
tags = ["epfl" "moodle"];
keyword = "epfl moodle";
url = "https://moodle.epfl.ch/my/courses.php";
}
{
name = "EPFL ICC Courseware";
tags = ["icc" "epfl" "courseware"];
keyword = "icc epfl courseware";
url = "https://courseware.epfl.ch/learner-dashboard/";
}
{
name = "Detexify";
tags = ["draw" "Latex" "symbols"];
keyword = "draw latex symbols";
url = "https://detexify.kirelabs.org/";
}
]; ];
}; };
search = { search = {
+3 -3
View File
@@ -24,16 +24,16 @@
inhibitWhenAudio = true; inhibitWhenAudio = true;
timeouts = [ timeouts = [
{ {
timeout = 1000; timeout = 180;
idleAction = "lock"; idleAction = "lock";
} }
{ {
timeout = 1010; timeout = 300;
idleAction = "dpms off"; # what's that? idleAction = "dpms off"; # what's that?
returnAction = "dpms on"; returnAction = "dpms on";
} }
{ {
timeout = 12200; timeout = 600;
idleAction = ["systemctl" "suspend-then-hibernate"]; idleAction = ["systemctl" "suspend-then-hibernate"];
} }
]; ];
-2
View File
@@ -3,8 +3,6 @@ _: {
programs.git = { programs.git = {
enable = true; enable = true;
/* /*
for some reason this doesnt work really well. So it's best to setup git imperatively
push.autoSetupRemote to true
settings = { settings = {
init.defaultBranch = "main"; init.defaultBranch = "main";
}; };
+2 -2
View File
@@ -1,4 +1,4 @@
_: { {...}: {
flake.nixosModules.hyprland = { flake.nixosModules.hyprland = {
pkgs, pkgs,
pkgs-unstable, pkgs-unstable,
@@ -39,6 +39,7 @@ _: {
text = '' text = ''
hl.on("hyprland.start", function() hl.on("hyprland.start", function()
hl.exec_cmd("qtbatticon") hl.exec_cmd("qtbatticon")
hl.exec_cmd("source /run/agenix/ntfy && nixpkgs-notifier listen")
end) end)
hl.monitor({ hl.monitor({
@@ -92,7 +93,6 @@ let
(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/ #refer to https://wiki.hypr.land/Nix/Hyprland-on-Home-Manager/
wayland.windowManager.hyprland.enable = true; wayland.windowManager.hyprland.enable = true;
wayland.windowManager.hyprland.package = pkgs-unstable.hyprland; wayland.windowManager.hyprland.package = pkgs-unstable.hyprland;
+13
View File
@@ -0,0 +1,13 @@
_: {
flake.nixosModules.mullvad = _: {
services.mullvad-vpn = {
enable = true;
};
};
flake.homeModules.mullvad = _: {
programs.mullvad-vpn = {
# gui
enable = true;
};
};
}
+2 -2
View File
@@ -8,7 +8,7 @@
force = true; force = true;
text = '' text = ''
{ {
"directory": ["~/Documents/Notes/"], "directory": ["~/kdrive/Notes/"],
"render": true, "render": true,
"jumpToEndOfFileOnLaunch": true, "jumpToEndOfFileOnLaunch": true,
"editor": "neovim", "editor": "neovim",
@@ -18,7 +18,7 @@
"backup": { "backup": {
"enable": true, "enable": true,
"directory": { "directory": {
"~/Documents/Notes/": "~/kdrive/Notes/" "~/kdrive/Notes/": "~/kdrive/Notes/"
}, },
"interval": "daily", "interval": "daily",
"rsyncArgs": ["-Lqah", "--update"], "rsyncArgs": ["-Lqah", "--update"],
-1
View File
@@ -1,5 +1,4 @@
_: { _: {
flake.homeModules.tmux = _: { flake.homeModules.tmux = _: {
programs.tmux = { programs.tmux = {
enable = true; enable = true;
+1 -10
View File
@@ -43,11 +43,6 @@ _: {
enable = true; enable = true;
autosuggestion.enable = false; # zsh-autocomplete is replaced by deja autosuggestion.enable = false; # zsh-autocomplete is replaced by deja
initContent = '' initContent = ''
# those aliases can't be written in nix, because of ö
# l and ö are very close
alias -- ös=ls
alias -- öös=ls
# Safe cat that uses colorize plugin ccat # Safe cat that uses colorize plugin ccat
custom-cat() { custom-cat() {
if [[ -t 1 ]]; then if [[ -t 1 ]]; then
@@ -66,11 +61,7 @@ _: {
} }
eval "$(direnv hook zsh)" eval "$(direnv hook zsh)"
eval "$(deja init zsh)" eval "$(deja init zsh)"
if [[ "$TERM_PROGRAM" != "vscode" ]]; then fastfetch''\n'';
fastfetch
fi
'';
shellAliases = { shellAliases = {
".." = "z .."; ".." = "z ..";
grep = "rg"; grep = "rg";
+1 -1
View File
@@ -35,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)
+4 -20
View File
@@ -1,26 +1,10 @@
_: { _: {
flake.nixosModules.hardwareUtils-laptop = {pkgs-unstable, ...}: { flake.nixosModules.hardwareUtils-laptop = {pkgs, ...}: {
environment.systemPackages = with pkgs-unstable; [ environment.systemPackages = with pkgs; [
# used for the framework 16 laptop # used for the framework 16 laptop
framework-tool #framework-tool
framework-tool-tui #framework-tool-tui
vial # Open-source GUI and QMK fork for configuring your keyboard in real time vial # Open-source GUI and QMK fork for configuring your keyboard in real time
netwatch
(diskwatch.override {
withSmartmontools = true;
})
syswatch
]; ];
services.fwupd.enable = true; # update device firmware
};
flake.nixosModules.hardwareUtils-desktop = {pkgs-unstable, ...}: {
environment.systemPackages = with pkgs-unstable; [
netwatch
(diskwatch.override {
withSmartmontools = true;
})
syswatch
];
services.fwupd.enable = true; # update device firmware
}; };
} }
+10
View File
@@ -0,0 +1,10 @@
_: {
flake.nixosModules.onxyboox = {pkgs, ...}: {
services.gvfs.enable = true;
environment.systemPackages = with pkgs; [
gvfs
calibre
kdePackages.kio-extras
];
};
}
+4 -4
View File
@@ -29,7 +29,6 @@
fonts fonts
games games
hardware-configuration-desktop hardware-configuration-desktop
hardwareUtils-desktop
hdd hdd
hledger hledger
hledger-desktop hledger-desktop
@@ -39,19 +38,19 @@
latex latex
ly ly
mathematics mathematics
mullvad
networking networking
nixUtils nixUtils
notifications notifications
nvidia nvidia
office office
ollama #ollama
otherUtils otherUtils
performance-desktop performance-desktop
printer printer
rss rss
udev udev
user user
vpn
]; ];
}; };
flake.homeModules.desktop = {...}: { flake.homeModules.desktop = {...}: {
@@ -69,6 +68,7 @@
hyprland-desktop hyprland-desktop
kitty kitty
librewolf librewolf
mullvad
neovim neovim
nix-git-cherry-picker-desktop nix-git-cherry-picker-desktop
desktop-notewrapper desktop-notewrapper
@@ -133,7 +133,7 @@
home.homeDirectory = "/home/tomasr"; home.homeDirectory = "/home/tomasr";
home.sessionVariables = { home.sessionVariables = {
EDITOR = "neovim"; EDITOR = "nvim";
TERMINAL = "kitty"; TERMINAL = "kitty";
}; };
+7 -5
View File
@@ -9,6 +9,8 @@
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
@@ -18,17 +20,15 @@
audioAndMedia audioAndMedia
autoCleanup-laptop autoCleanup-laptop
autoUpdate-laptop autoUpdate-laptop
battery-laptop #battery-laptop
bluetooth bluetooth
bootloader bootloader
browsers browsers
caelestia caelestia
cs-119l # I'm obliged to use vscode. RIP neovim
development development
documentation documentation
disk disk
disk-laptop disk-laptop
epfl
fonts fonts
gitBackup gitBackup
hardware-configuration-laptop hardware-configuration-laptop
@@ -41,18 +41,19 @@
latex latex
ly ly
mathematics mathematics
mullvad
networking networking
nixUtils-laptop nixUtils-laptop
nixUtils nixUtils
notifications notifications
office office
onxyboox
#ollama #ollama
otherUtils otherUtils
printer printer
rss rss
udev udev
user user
vpn
]; ];
}; };
flake.homeModules.laptop = {...}: { flake.homeModules.laptop = {...}: {
@@ -71,6 +72,7 @@
hyprland-laptop hyprland-laptop
kitty kitty
librewolf librewolf
mullvad
neovim neovim
nix-git-cherry-picker-laptop nix-git-cherry-picker-laptop
laptop-notewrapper laptop-notewrapper
@@ -130,7 +132,7 @@
home.homeDirectory = "/home/tomasr"; home.homeDirectory = "/home/tomasr";
home.sessionVariables = { home.sessionVariables = {
EDITOR = "neovim"; EDITOR = "nvim";
TERMINAL = "kitty"; TERMINAL = "kitty";
SYSTEMD_PAGER = "cat"; SYSTEMD_PAGER = "cat";
PAGER = "cat"; PAGER = "cat";
-12
View File
@@ -44,18 +44,6 @@ _: {
command = "${pkgs-unstable.nixos-rebuild}/bin/nixos-rebuild"; command = "${pkgs-unstable.nixos-rebuild}/bin/nixos-rebuild";
options = ["NOPASSWD"]; options = ["NOPASSWD"];
} }
{
command = "/run/current-system/sw/bin/open";
options = ["NOPASSWD"];
}
{
command = "${pkgs.openconnect}/bin/openconnect";
options = ["NOPASSWD"];
}
{
command = "${pkgs-unstable.openconnect}/bin/openconnect";
options = ["NOPASSWD"];
}
]; ];
} }
]; ];
-6
View File
@@ -13,11 +13,5 @@
group = "users"; group = "users";
mode = "0400"; mode = "0400";
}; };
age.secrets.epfl = {
file = ../../secrets/epfl.age;
owner = "tomasr";
group = "users";
mode = "0400";
};
}; };
} }
+14 -4
View File
@@ -19,6 +19,9 @@
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";
@@ -73,6 +76,9 @@
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";
@@ -112,8 +118,9 @@
runtimeInputs = with pkgs; [ runtimeInputs = with pkgs; [
git git
nixos-rebuild nixos-rebuild
matrix-commander-rs curl
libnotify libnotify
nix
]; ];
text = '' text = ''
@@ -135,7 +142,7 @@
# update lock only # update lock only
nix flake update --flake "$FLAKE_DIR" 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 if ! git -C "$FLAKE_DIR" diff --quiet -- flake.lock; then
git -C "$FLAKE_DIR" add flake.lock git -C "$FLAKE_DIR" add flake.lock
@@ -180,11 +187,14 @@
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"
@@ -201,7 +211,7 @@
# update lock only # update lock only
nix flake update --flake "$FLAKE_DIR" 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 if ! git -C "$FLAKE_DIR" diff --quiet -- flake.lock; then
git -C "$FLAKE_DIR" add flake.lock git -C "$FLAKE_DIR" add flake.lock
+1 -1
View File
@@ -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,12 +4,11 @@
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
telegram-desktop
]; ];
}; };
perSystem = {pkgs, ...}: { perSystem = {pkgs, ...}: {
+7 -1
View File
@@ -48,11 +48,17 @@
"configFetchTime": 1, "configFetchTime": 1,
"localNotify": true, "localNotify": true,
"matrix": { "matrix": {
"enable": true, "enable": false,
"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"
} }
} }
''; '';
-65
View File
@@ -1,65 +0,0 @@
{self, ...}: {
flake.nixosModules.epfl = {pkgs, ...}: {
environment.systemPackages = with pkgs; [
openconnect
self.packages.${pkgs.system}.custom-mountEpflDrive
];
};
flake.nixosModules.cs-119l = {pkgs, ...}: let
user = "tomasr";
home = "/home/${user}";
src = "${home}/epfl/cs-119l-ICC/";
dst = "${home}/kdrive/Travail/2 - Bachelor/BA1/Information, calcul, communication CS-119l/code/";
in {
environment.systemPackages = with pkgs; [
vscode-fhs
];
systemd.services.sync-cs119l-to-kdrive = {
description = "Sync CS-119l ICC to kDrive";
serviceConfig = {
Type = "oneshot";
User = user;
ExecStart = "${pkgs.rsync}/bin/rsync -a '${src}' '${dst}'";
};
};
systemd.timers.sync-cs119l-to-kdrive = {
description = "Sync CS-119l ICC to kDrive every Thursday and Friday evening";
wantedBy = ["timers.target"];
timerConfig = {
OnCalendar = [
"Thu *-*-* 20:00:00"
"Fri *-*-* 20:00:00"
];
Persistent = true;
};
};
};
perSystem = {pkgs, ...}: {
packages.custom-mountEpflDrive = pkgs.writeShellApplication {
name = "custom-mountEpflDrive";
runtimeInputs = with pkgs; [
rclone
libnotify
];
text = ''
REMOTE_NAME="epfl"
MOUNT_POINT="$HOME/epfl/drive"
if rclone listremotes | rg "^''${REMOTE_NAME}:"; then
echo "Mounting ''${REMOTE_NAME}..."
rclone mount "''${REMOTE_NAME}:" "$MOUNT_POINT" --vfs-cache-mode writes --allow-non-empty &
else
notify-send "rclone mount failed" \
"Remote ''${REMOTE_NAME} not found.\nConfigure rclone and create the dir ~/epfl/drive/ or comment out the exec line in hyprland.lua."
echo "Remote ''${REMOTE_NAME} not found. Configure rclone or comment out the exec line in hyprland.lua."
fi
'';
};
};
}
+9 -1
View File
@@ -16,7 +16,15 @@ _: {
networking.networkmanager.enable = true; networking.networkmanager.enable = true;
# Enable the OpenSSH daemon. # 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. # Open ports in the firewall.
# networking.firewall.allowedTCPPorts = [ ... ]; # networking.firewall.allowedTCPPorts = [ ... ];
-1
View File
@@ -45,7 +45,6 @@
nix-index nix-index
statix statix
self.packages.${pkgs-unstable.system}.custom-trimmer self.packages.${pkgs-unstable.system}.custom-trimmer
nix-update # nix-update <package> --build --test --format # the review will be done by nixpkgs-review-gha
]; ];
}; };
perSystem = {pkgs, ...}: { perSystem = {pkgs, ...}: {
+3 -2
View File
@@ -1,7 +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, ...}: {
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
gnome-calculator gnome-calculator
snapshot snapshot
@@ -18,7 +18,8 @@
usbutils # used for lsusb usbutils # used for lsusb
self.packages.${pkgs.system}.custom-tomato self.packages.${pkgs.system}.custom-tomato
self.packages.${pkgs.system}.custom-syllabes self.packages.${pkgs.system}.custom-syllabes
pkgs-unstable.bitwarden-desktop # Electron 39 EOL. https://github.com/bitwarden/clients/pull/20448 should move it to 41. For the moment use the browser extension
#pkgs-unstable.bitwarden-desktop
fluffychat # matrix client fluffychat # matrix client
]; ];
}; };
-100
View File
@@ -1,100 +0,0 @@
# config for openconnect is in ./epfl.nix
{self, ...}: {
flake.nixosModules.vpn = {pkgs,...}: {
services.mullvad-vpn = {
enable = true;
};
environment.systemPackages = [
self.packages.${pkgs.system}.custom-vpn-picker
];
age.secrets.epfl = {
file = ../../secrets/epfl.age;
};
};
perSystem = {pkgs, ...}: {
packages.custom-vpn-picker = pkgs.writeShellApplication {
name = "custom-vpn-picker";
runtimeInputs = with pkgs; [
fzf
mullvad-compass
mullvad
openconnect
gawk
wl-clipboard
cliphist
];
text = ''
mullvad_connect () {
mullvad disconnect
mullvad relay set location "$1"
mullvad connect
}
profiles=(
"mullvad-best"
"mullvad-zurich"
"mullvad-tirana"
"mullvad-bogota"
"epfl"
"disconnect"
)
selected=$(printf "%s\n" "''${profiles[@]}" |
fzf --height 8 --reverse --prompt="Select vpn:")
[[ -z "$selected" ]] && exit 0
if [[ "$selected" == "mullvad-best" ]]; then
mullvad_connect "$(
mullvad-compass |
awk '/Best server:/ {
getline
split($1, a, "-")
print a[1]
}'
)"
elif [[ "$selected" == "mullvad-zurich" ]]; then
mullvad_connect ch
elif [[ "$selected" == "mullvad-tirana" ]]; then
mullvad_connect al
elif [[ "$selected" == "mullvad-bogota" ]]; then
mullvad_connect co
elif [[ "$selected" == "epfl" ]]; then
# shellcheck disable=SC1091
source /run/agenix/epfl
# Put password in clipboard so it can be pasted into openconnect.
printf '%s' "$EPFL_VPN_PASSWORD" | wl-copy
sudo openconnect \
--background \
--pid-file="$HOME/.local/state/epfl-openconnect.pid" \
--server="$EPFL_VPN_SERVER" \
--user="$EPFL_VPN_USER"
# Remove the password from cliphist and clear the current clipboard.
cliphist delete-query "$EPFL_VPN_PASSWORD" || true
wl-copy --clear
elif [[ "$selected" == "disconnect" ]]; then
if [[ -f "$HOME/.local/state/epfl-openconnect.pid" ]]; then
sudo kill "$(cat "$HOME/.local/state/epfl-openconnect.pid")" 2>/dev/null || true
fi
mullvad disconnect
rm "$HOME/.local/state/epfl-openconnect.pid"
fi
pkill -f "kitty.*Select vpn option" || true
exit
'';
};
};
}
+5 -12
View File
@@ -300,7 +300,7 @@ hl.bind(mod .. " + D", hl.dsp.layout("move +col"))
hl.bind(mod .. " + T", hl.dsp.exec_cmd(term)) hl.bind(mod .. " + T", hl.dsp.exec_cmd(term))
hl.bind(mod .. " + E", hl.dsp.exec_cmd(file)) hl.bind(mod .. " + E", hl.dsp.exec_cmd(file))
hl.bind(mod .. " + F", hl.dsp.exec_cmd(browser)) hl.bind(mod .. " + F", hl.dsp.exec_cmd(browser))
hl.bind(mod .. " + N", hl.dsp.exec_cmd("kitty --hold --class \"custom-vpn-picker\" --name \"Select vpn option\" custom-vpn-picker")) 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 .. " + SHIFT + A", hl.dsp.exec_cmd("caelestia shell drawers toggle launcher"))
hl.bind(mod .. " + Q", close_or_move_special) hl.bind(mod .. " + Q", close_or_move_special)
local function toggle_sidebar() local function toggle_sidebar()
@@ -322,7 +322,7 @@ 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("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(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 + 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 + 0", hl.dsp.exec_cmd("custom-tomato"))
hl.bind("CTRL + ALT + 2", hl.dsp.exec_cmd("custom-bottom")) hl.bind("CTRL + ALT + 2", hl.dsp.exec_cmd("custom-bottom"))
hl.bind("CTRL + ALT + 9", hl.dsp.exec_cmd("anki")) hl.bind("CTRL + ALT + 9", hl.dsp.exec_cmd("anki"))
@@ -812,13 +812,6 @@ hl.window_rule({
float = true, float = true,
size = "400 225", size = "400 225",
}) })
hl.window_rule({
match = {
class = "^(custom-vpn-picker)$",
},
float = true,
size = "350 250",
})
hl.window_rule({ hl.window_rule({
match = { match = {
@@ -926,6 +919,7 @@ hl.config({
hl.on("hyprland.start", function() 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("/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("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 WAYLAND_DISPLAY XDG_CURRENT_DESKTOP")
hl.exec_cmd("dbus-update-activation-environment --systemd --all") hl.exec_cmd("dbus-update-activation-environment --systemd --all")
@@ -935,12 +929,11 @@ hl.on("hyprland.start", function()
hl.exec_cmd("udiskie --no-automount --smart-tray") hl.exec_cmd("udiskie --no-automount --smart-tray")
hl.exec_cmd("nm-applet --indicator") 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("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-batterynotify")
-- hl.exec_cmd("custom-batterywarning") hl.exec_cmd("custom-batterywarning")
hl.exec_cmd("awww img WALLPAPER/PATH/PLACEHOLDER") hl.exec_cmd("awww img WALLPAPER/PATH/PLACEHOLDER")
hl.exec_cmd("awww-daemon") hl.exec_cmd("awww-daemon")
hl.exec_cmd("custom-checkKdrive && custom-mountkdrive") hl.exec_cmd("custom-checkKdrive && custom-mountkdrive")
hl.exec_cmd("custom-mountEpflDrive")
hl.exec_cmd("custom-gitnotify") hl.exec_cmd("custom-gitnotify")
hl.exec_cmd("sleep 4 & caelestia-shell") hl.exec_cmd("sleep 4 & caelestia-shell")
hl.exec_cmd("sleep 20 && ngcp pull --automatic") hl.exec_cmd("sleep 20 && ngcp pull --automatic")
-7
View File
@@ -1,7 +0,0 @@
age-encryption.org/v1
-> X25519 XuDyuQL0WjW/IvtzxswKnOfXlJa42Itdu+inNPsiNhw
3z2v3GbNdMvX9QtgAMrWZB/5Y1HatgpoXGQUMnW91+M
-> ssh-ed25519 +tvThg i3NM64rsEgRRgah4PKWdrl4i0pmP6X2bgr2Etzm33Ag
OwUETps78LPyjIAcJo8eC9eh0m9qtRUh399xGzMCTwQ
--- 7LnVrVnmfA8YubysLVeGyRGlLI+ef0VxnIHRi6rRAlc
W¾TîópF’X±áì‘làBTœÝ"^ï”�-þµ‹à¤û§÷Ÿ(üÛ'™ghÕóÎôGÜqx5FË~6Èï6DÎí¬gŒz…¾w·nñSÏHtß…ÌÂÓT«Úè›æŒÅó¤˜sød@°1!P""WHA$Ÿ�›,d68Ñ“õˆ�k“tù\qXÞHŽ®R=�vÕîŸZ
BIN
View File
Binary file not shown.
-4
View File
@@ -6,8 +6,4 @@ in {
backupAgeKey backupAgeKey
laptopHostKey laptopHostKey
]; ];
"epfl.age".publicKeys = [
backupAgeKey
laptopHostKey
];
} }