96 Commits
Author SHA1 Message Date
tomasr 6b0c997dad add telegram desktop 2026-10-10 09:59:01 +02:00
tomasr 21349e4585 add detexify bookmark 2026-10-04 18:14:52 +02:00
tomasr f23ec09369 setup fwupd 2026-09-21 12:00:44 +02:00
tomasr 7d5ae9fa2c remove pomodoro timer shortcut 2026-09-21 12:00:30 +02:00
tomasr 8f4117f3e7 fix path sync cs-119l 2026-09-13 10:43:34 +02:00
tomasr bd97ba4df7 Auto: cleanup-2026-09-13T08-29-34Z 2026-09-13 10:31:41 +02:00
tomasr bd678ae32d epfl switchDrive 2026-09-10 11:12:35 +02:00
tomasr 9879131aca fix fastfetch vscode 2026-09-06 11:33:03 +02:00
tomasr c2f733d4c9 setup for cs-119l 2026-09-06 11:17:23 +02:00
tomasr 44709a3b7c librewolf: add courseware bookmark 2026-09-05 14:14:36 +02:00
tomasr ce8c4f7d73 librewolf: add moodle bookmark 2026-09-05 14:14:36 +02:00
tomasr 2f2d3cd2ba remove duplciate exec nixpkgs-notifier 2026-08-30 21:07:33 +02:00
tomasr b738cbb8ef ös alias 2026-08-30 19:33:11 +02:00
tomasr fdb4d53ec0 reajuste lock timing 2026-08-30 17:03:57 +02:00
tomasr 1a29fda1f9 reworked lock time 2026-08-27 17:53:24 +02:00
tomasr b760904557 bitwarden-client updated electron 2026-08-23 13:38:14 +02:00
tomasr 28d56cf671 remove duplciate exec qtbatticon 2026-08-21 18:00:19 +02:00
tomasr 4db1f329f2 add instruction for nix-update 2026-08-18 08:04:15 +02:00
tomasr 7afe2cf7b6 nixUtils: add nix-update 2026-08-18 07:53:45 +02:00
tomasr 434e6ed31d moved out of kdrive for notes. Keep backup in there rsynced 2026-08-17 17:11:42 +02:00
tomasr f1e266331c remove battery scripts 2026-08-17 15:03:40 +02:00
tomasr f745a79af8 switch hardware utils to unstable 2026-08-16 18:02:44 +02:00
tomasr a99cb710b3 add watchecosystem to hardwareUtils 2026-08-16 18:01:39 +02:00
tomasr 9805986c10 git config 2026-08-16 08:32:23 +02:00
tomasr bc67f2b0e8 custom-vpn-picker: init 2026-08-15 20:07:34 +02:00
tomasr 7cd934c58c first setup epfl vpn 2026-08-15 20:07:34 +02:00
tomasr 6e3286419f fix notewrapper config parse error 2026-08-14 17:27:02 +02:00
tomasr c7781b7483 update notewrapper config 2026-08-14 17:06:23 +02:00
tomasr 682a5c13df remove old icloudpd 2026-08-14 11:51:36 +02:00
tomasr 82bd78bc73 rewrote performance mode into lua 2026-08-14 11:49:26 +02:00
tomasr 1071ce70d7 replace rm by trash-cli 2026-08-14 10:20:52 +02:00
tomasr 1ff4785399 rewrite README.md 2026-08-14 09:59:29 +02:00
tomasr ed9ccd4b11 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:34:43 +02:00
tomasr 13cdae0655 restore mullvad 2026-08-12 19:49:00 +02:00
tomasr d0b7183849 add dolphin plugin 2026-08-12 15:32:53 +02:00
tomasr cea0d0e3f8 add ark for dolphin 2026-08-12 15:24:56 +02:00
tomasr a4c66b4aff fix archivebox extesnion 2026-08-11 17:08:51 +02:00
tomasr 56a9bba86b remove temp mullvad 2026-08-11 17:08:51 +02:00
tomasr 1dab571e12 add archivebox extension 2026-08-11 17:08:51 +02:00
tomasr 93f7328a3b add browser bookmark noogle.dev 2026-08-11 17:08:51 +02:00
tomasr 0e222a9c50 rss reader 2026-08-04 19:50:42 +02:00
tomasr d1125d1571 fix calendar? 2026-08-04 11:30:00 +02:00
tomasr 550413c6b1 add kontact 2026-08-04 11:25:59 +02:00
tomasr b4537796a2 add KOrganizer 2026-08-04 11:21:26 +02:00
tomasr 4c0fbc5f0e librewolf: remove old bookmark 2026-07-30 21:28:41 +02:00
tomasr d0a9511ff7 first tmux config 2026-07-30 21:18:44 +02:00
tomasr 262476404e tmux: init config 2026-07-30 14:07:36 +02:00
tomasr 9f9906d423 replace rss reader 2026-07-30 14:07:36 +02:00
tomasr 0d616266ff fix pagers 2026-07-30 14:07:36 +02:00
tomasr 6b282b5344 somehow this file disappeared 2026-07-26 16:08:36 +02:00
tomasr 19fd3ec35d Auto: cleanup-2026-07-26T14-02-17Z 2026-07-26 16:06:33 +02:00
tomasr 324d54683c snapshot pre-cleanup-2026-07-26T14-02-17Z 2026-07-26 16:05:00 +02:00
tomasr 0030034418 snapshot pre-cleanup-2026-07-26T13-59-06Z 2026-07-26 16:05:00 +02:00
tomasr fb7be79e86 snapshot pre-cleanup-2026-07-26T13-57-11Z 2026-07-26 16:05:00 +02:00
tomasr 5db8135dd5 setup agenix and migrate from matrix-commander-rs to ntfy for phone notifications 2026-07-26 15:53:57 +02:00
tomasr 2107d23209 notewrapper: use kdrive directly 2026-07-24 17:40:39 +02:00
tomasr 77f4b0fc5f neovim: add hledger integration 2026-07-21 16:54:36 +02:00
tomasr 1642dc97ca neovim: add lean lsp and config 2026-07-21 16:54:36 +02:00
tomasr 2b59031896 hledger: init 2026-07-21 16:54:36 +02:00
tomasr d323e9f702 Merge branch 'main' into desktop 2026-06-24 16:39:59 -05:00
github-actions[bot] 25813d8ab5 Merge pull request #33 from tomasriveral/laptop
Weekly sync: laptop → main
2026-06-22 18:12:48 +00:00
tomasr 05ef065d75 snapshot pre-cleanup-2026-06-20T19-29-55Z 2026-06-20 21:29:55 +02:00
tomasr 2722840919 ollama: add desktop 2026-06-20 14:01:36 +02:00
tomasr 9e862337ca snapshot pre-autoupdate-2026-06-20T10-53-01Z 2026-06-20 12:53:01 +02:00
tomasr 876ec4ce21 icloud backup with kdrive 2026-06-18 19:47:29 +02:00
tomasr e2b7fd8a64 kdrive: setup sync with desktop 2026-06-18 17:00:20 +02:00
tomasr 752957818b gitBackup: add ngcp and ReSSPublica 2026-06-16 22:49:01 +02:00
tomasr 1c600dbf3c gitBackup: add ngcp and ReSSPublica 2026-06-16 22:45:12 +02:00
tomasr 4a648b7f7c Merge pull request #31 from tomasriveral/laptop 2026-06-15 18:45:41 +00:00
tomasr 67d21671c5 treesitter: add sparql 2026-06-14 17:29:16 +02:00
tomasr b8d8ef1aa8 treesitter: add sparql 2026-06-14 17:28:07 +02:00
tomasr 2d16f3893b Auto: cleanup-2026-06-14T15-26-03Z 2026-06-14 17:26:24 +02:00
tomasr 2a0c85275f snapshot pre-cleanup-2026-06-14T15-26-03Z 2026-06-14 17:26:03 +02:00
tomasr 23a9fdd4e8 snapshot pre-cleanup-2026-06-14T15-11-35Z 2026-06-14 17:11:35 +02:00
tomasr 246412ae4b custom-performance: entire rewrite
Now kills caelestia, change monitor hz and launches lightweight
alternative to calestia (waybar and swaync)
2026-06-14 11:19:36 +02:00
tomasr 88eb91c780 desktop: ported custom-performance 2026-06-14 11:14:48 +02:00
tomasr 3b73438d4f custom-performance: reset on startup 2026-06-14 11:11:05 +02:00
tomasr 8088f78f05 tlp:replace by powerprofilesdaemon 2026-06-14 11:08:03 +02:00
tomasr 3b89cf7b35 flake.lock: autoupdate-2026-06-14T09-01-11Z 2026-06-14 11:04:07 +02:00
tomasr 89eb25ca7d snapshot pre-autoupdate-2026-06-14T09-01-11Z 2026-06-14 11:01:11 +02:00
tomasr 3ea36fa6bb Merge pull request #30 from tomasriveral/main
desktop
2026-06-14 08:13:03 +00:00
tomasr 3d468572d5 Merge pull request #28 from tomasriveral/laptop
Weekly sync: laptop → main
2026-06-13 07:47:36 +00:00
github-actions[bot] d23c6979f9 Merge pull request #29 from tomasriveral/desktop
Weekly sync: desktop → main
2026-06-13 07:47:29 +00:00
tomasr 552d898680 librewolf: add rryan-tm logs bookmark 2026-06-13 09:45:16 +02:00
tomasr 5b7c43c8f9 librewolf: add r/Piracy megathread bookmark 2026-06-13 09:45:16 +02:00
tomasr f1e9c76d02 librewolf: add temp-mail.org bookmark 2026-06-13 09:45:16 +02:00
tomasr 37f76a4439 nixpkgs-master: follow unstable when unused 2026-06-13 09:37:43 +02:00
tomasr 143f699365 flake-utils: use flakehub cache 2026-06-13 09:29:18 +02:00
tomasr d20f0d87d5 flake-parts: use flakehub cache 2026-06-13 09:29:18 +02:00
github-actions[bot] 45639e2531 Merge pull request #27 from tomasriveral/desktop
Weekly sync: desktop → main
2026-06-12 14:38:11 +00:00
tomasr 2d2d4fd4a8 Merge pull request #26 from tomasriveral/laptop
Weekly sync: laptop → main
2026-06-12 14:32:48 +00:00
tomasr d49c7ba99e limine: rice 2026-06-12 15:58:28 +02:00
tomasr 29554e41ca nixUtils: add custom-trimmer 2026-06-12 15:49:23 +02:00
tomasr 2a318bdced hosts: forgot to use nixUtils module 2026-06-12 15:38:01 +02:00
tomasr 763bbbacd4 bootloader: limine 2026-06-12 15:10:49 +02:00
tomasr 99f1dd3ec8 bootloader: reunited desktop and laptop config 2026-06-12 15:07:17 +02:00
20 changed files with 184 additions and 295 deletions

No files matched your search

+28 -43
View File
@@ -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
+20 -11
View File
@@ -1,5 +1,7 @@
# 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.
@@ -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
View File
@@ -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",
-5
View File
@@ -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 -49
View File
@@ -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;
}; };
} }
+1 -3
View File
@@ -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
View File
@@ -1,4 +1,5 @@
_: { _: {
flake.homeModules.tmux = _: { flake.homeModules.tmux = _: {
programs.tmux = { programs.tmux = {
enable = true; enable = true;
+2 -2
View File
@@ -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";
+6 -2
View File
@@ -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)
-10
View File
@@ -1,10 +0,0 @@
_: {
flake.nixosModules.onxyboox = {pkgs, ...}: {
services.gvfs.enable = true;
environment.systemPackages = with pkgs; [
gvfs
calibre
kdePackages.kio-extras
];
};
}
+2 -2
View File
@@ -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";
}; };
+2 -5
View File
@@ -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";
+4 -14
View File
@@ -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
+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,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
+1 -7
View File
@@ -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"
} }
} }
''; '';
+1 -9
View File
@@ -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 -5
View File
@@ -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
View File
@@ -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
''; '';
BIN
View File
Binary file not shown.