Compare commits
8 Commits
1da7320ad3
...
561f4dd058
| Author | SHA1 | Date | |
|---|---|---|---|
|
561f4dd058
|
|||
|
5b3cac325e
|
|||
|
19869cbc2a
|
|||
|
02586c29bb
|
|||
|
453d56d52e
|
|||
|
85736f7195
|
|||
|
13fc58544b
|
|||
|
13685940a2
|
@ -8,6 +8,16 @@ sudo nixos-rebuild <type> --flake .#<flake>
|
|||||||
$ type: echo -e "switch\nbuild\nboot"
|
$ type: echo -e "switch\nbuild\nboot"
|
||||||
$ flake: echo -e "nixinator\nnixtop"
|
$ flake: echo -e "nixinator\nnixtop"
|
||||||
|
|
||||||
|
% nixos
|
||||||
|
# Rebuild the system using nh
|
||||||
|
nh os <mode>
|
||||||
|
$ mode: echo -e "switch\nbuild\nboot"
|
||||||
|
|
||||||
|
% nixos
|
||||||
|
# Clean the nix store
|
||||||
|
nh clean <mode>
|
||||||
|
$ mode: echo -e "all\nuser"
|
||||||
|
|
||||||
% nixos
|
% nixos
|
||||||
# Find out why a package is included in the closure when building the system derivation
|
# Find out why a package is included in the closure when building the system derivation
|
||||||
nix why-depends /run/current-system nixpkgs#<package>
|
nix why-depends /run/current-system nixpkgs#<package>
|
||||||
@ -22,6 +32,35 @@ $ executable: bash -c "compgen -c"
|
|||||||
ldd $(readlink -f $(which <executable>))
|
ldd $(readlink -f $(which <executable>))
|
||||||
$ executable: bash -c "compgen -c"
|
$ executable: bash -c "compgen -c"
|
||||||
|
|
||||||
|
% nixos
|
||||||
|
# Browse closures in the nix store sorted by size
|
||||||
|
nix-tree
|
||||||
|
|
||||||
|
% nixos
|
||||||
|
# Search in nixpkgs
|
||||||
|
nps -e "<package>"
|
||||||
|
|
||||||
|
% nixos
|
||||||
|
# Search in nixpkgs, nur, nixos and home-manager
|
||||||
|
nix-search-tv print --indexes 'nixos,home-manager,nixpkgs,nur' | fzf --preview 'nix-search-tv preview {}' --scheme history
|
||||||
|
|
||||||
|
% nixos
|
||||||
|
# Compare the current NixOS generation to another one
|
||||||
|
nvd diff /run/current-system ./result
|
||||||
|
|
||||||
|
% nixos
|
||||||
|
# Generate a nix fetcher section
|
||||||
|
nurl "<url>"
|
||||||
|
|
||||||
|
% nixos
|
||||||
|
# Generate a nix fetcher section for a specific revision
|
||||||
|
nurl "<url>" "<rev>"
|
||||||
|
|
||||||
|
% nixos
|
||||||
|
# Run an unpatched binary on NixOS
|
||||||
|
nix-alien-ld -- <binary>
|
||||||
|
$ binary: eza -f -1
|
||||||
|
|
||||||
; ===========================
|
; ===========================
|
||||||
; SYSTEMD
|
; SYSTEMD
|
||||||
; ===========================
|
; ===========================
|
||||||
@ -104,6 +143,37 @@ xdg-mime query default <mimetype>
|
|||||||
xdg-mime query default $(file --mime-type <file> | awk -F' ' '{print $2}')
|
xdg-mime query default $(file --mime-type <file> | awk -F' ' '{print $2}')
|
||||||
$ file: eza -f -1
|
$ file: eza -f -1
|
||||||
|
|
||||||
|
% ouch
|
||||||
|
# Extract an archive
|
||||||
|
ouch decompress "<archive>"
|
||||||
|
$ archive: eza -f -1
|
||||||
|
|
||||||
|
% pastel
|
||||||
|
# Generate a color
|
||||||
|
pastel color <color>
|
||||||
|
$ color: pastel list
|
||||||
|
|
||||||
|
% pastel
|
||||||
|
# Generate an adjacent color
|
||||||
|
pastel color <color> | pastel <mode>
|
||||||
|
$ color: pastel list
|
||||||
|
$ mode: echo -e "complement\ntextcolor"
|
||||||
|
|
||||||
|
% pastel
|
||||||
|
# Generate a color gradient
|
||||||
|
pastel gradient <a> <b> | pastel format hex
|
||||||
|
$ a: pastel list
|
||||||
|
$ b: pastel list
|
||||||
|
|
||||||
|
% ripdrag
|
||||||
|
# Drag & drop file from the terminal
|
||||||
|
ripdrag <file>
|
||||||
|
$ file: eza -1
|
||||||
|
|
||||||
|
% nvidia-smi
|
||||||
|
# Monitor Nvidia GPUs
|
||||||
|
watch -d -c -n 0.5 nvidia-smi
|
||||||
|
|
||||||
; ===========================
|
; ===========================
|
||||||
; CODE
|
; CODE
|
||||||
; ===========================
|
; ===========================
|
||||||
@ -138,7 +208,11 @@ yt-dlp -f 'ba' --extract-audio --audio-format mp3 "<url>"
|
|||||||
|
|
||||||
% spotdl
|
% spotdl
|
||||||
# Download spotify playlist
|
# Download spotify playlist
|
||||||
spotdl --config /home/christoph/.spotdl/config.json --user-auth --format m4a --bitrate disable --threads 24 --generate-lrc --m3u "<name>" download "<url>"
|
mkdir -p "<name>" && cd "<name>" && spotdl --client-id (cat /home/christoph/.secrets/spotify_client_id) --client-secret (cat /home/christoph/.secrets/spotify_client_secret) --user-auth --cookie-file /home/christoph/.secrets/youtube_music_cookies --format opus --bitrate disable --threads 24 --m3u "<name>" download "<url>" && cd ..
|
||||||
|
|
||||||
|
% spotdl
|
||||||
|
# Download spotify item
|
||||||
|
mkdir -p "<name>" && cd "<name>" && spotdl --client-id (cat /home/christoph/.secrets/spotify_client_id) --client-secret (cat /home/christoph/.secrets/spotify_client_secret) --user-auth --cookie-file /home/christoph/.secrets/youtube_music_cookies --format opus --bitrate disable --threads 24 download "<url>" && cd ..
|
||||||
|
|
||||||
; ===========================
|
; ===========================
|
||||||
; FFMPEG
|
; FFMPEG
|
||||||
|
|||||||
193
flake.lock
generated
193
flake.lock
generated
@ -135,6 +135,27 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"devshell_2": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nix-topology",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1728330715,
|
||||||
|
"narHash": "sha256-xRJ2nPOXb//u1jaBnDP56M7v5ldavjbtR6lfGqSvcKg=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "devshell",
|
||||||
|
"rev": "dd6b80932022cea34a019e2bb32f6fa9e494dfef",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "devshell",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"emacs-overlay": {
|
"emacs-overlay": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
@ -204,6 +225,22 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-compat_4": {
|
"flake-compat_4": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1696426674,
|
||||||
|
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-compat_5": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1696426674,
|
"lastModified": 1696426674,
|
||||||
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
||||||
@ -263,6 +300,24 @@
|
|||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems_3"
|
"systems": "systems_3"
|
||||||
},
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1726560853,
|
||||||
|
"narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-utils_2": {
|
||||||
|
"inputs": {
|
||||||
|
"systems": "systems_4"
|
||||||
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1731533236,
|
"lastModified": 1731533236,
|
||||||
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
||||||
@ -277,7 +332,7 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-utils_2": {
|
"flake-utils_3": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1667395993,
|
"lastModified": 1667395993,
|
||||||
"narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=",
|
"narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=",
|
||||||
@ -338,6 +393,28 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"gitignore_3": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nix-topology",
|
||||||
|
"pre-commit-hooks",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1709087332,
|
||||||
|
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "gitignore.nix",
|
||||||
|
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "gitignore.nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"gnim": {
|
"gnim": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
@ -1026,6 +1103,26 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"musnix": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1741303672,
|
||||||
|
"narHash": "sha256-eRKbKccBu3PK/oJpmUuLo+0v45d0SEjosE8tVsHbpeA=",
|
||||||
|
"owner": "musnix",
|
||||||
|
"repo": "musnix",
|
||||||
|
"rev": "d56a15f30329f304151e4e05fa82264d127da934",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "musnix",
|
||||||
|
"repo": "musnix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"naersk": {
|
"naersk": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": "nixpkgs_5"
|
"nixpkgs": "nixpkgs_5"
|
||||||
@ -1103,6 +1200,29 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nix-topology": {
|
||||||
|
"inputs": {
|
||||||
|
"devshell": "devshell_2",
|
||||||
|
"flake-utils": "flake-utils",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"pre-commit-hooks": "pre-commit-hooks_3"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1744142264,
|
||||||
|
"narHash": "sha256-h5KyodobZm8dx/HSNN+basgdmjxrQxudjrss4gAQpZk=",
|
||||||
|
"owner": "oddlama",
|
||||||
|
"repo": "nix-topology",
|
||||||
|
"rev": "f49121cbbf4a86c560638ade406d99ee58deb7aa",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "oddlama",
|
||||||
|
"repo": "nix-topology",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1722073938,
|
"lastModified": 1722073938,
|
||||||
@ -1203,7 +1323,7 @@
|
|||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
],
|
||||||
"nuschtosSearch": "nuschtosSearch",
|
"nuschtosSearch": "nuschtosSearch",
|
||||||
"systems": "systems_4"
|
"systems": "systems_5"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1751492444,
|
"lastModified": 1751492444,
|
||||||
@ -1221,8 +1341,8 @@
|
|||||||
},
|
},
|
||||||
"nps": {
|
"nps": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": "flake-compat_4",
|
"flake-compat": "flake-compat_5",
|
||||||
"flake-utils": "flake-utils_2",
|
"flake-utils": "flake-utils_3",
|
||||||
"naersk": "naersk",
|
"naersk": "naersk",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
@ -1265,7 +1385,7 @@
|
|||||||
},
|
},
|
||||||
"nuschtosSearch": {
|
"nuschtosSearch": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-utils": "flake-utils",
|
"flake-utils": "flake-utils_2",
|
||||||
"ixx": "ixx",
|
"ixx": "ixx",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixvim",
|
"nixvim",
|
||||||
@ -1334,6 +1454,33 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"pre-commit-hooks_3": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-compat": "flake-compat_4",
|
||||||
|
"gitignore": "gitignore_3",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nix-topology",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"nixpkgs-stable": [
|
||||||
|
"nix-topology",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1730797577,
|
||||||
|
"narHash": "sha256-SrID5yVpyUfknUTGWgYkTyvdr9J1LxUym4om3SVGPkg=",
|
||||||
|
"owner": "cachix",
|
||||||
|
"repo": "pre-commit-hooks.nix",
|
||||||
|
"rev": "1864030ed24a2b8b4e4d386a5eeaf0c5369e50a9",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "cachix",
|
||||||
|
"repo": "pre-commit-hooks.nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"ags": "ags",
|
"ags": "ags",
|
||||||
@ -1343,13 +1490,16 @@
|
|||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"hypr-dynamic-cursors": "hypr-dynamic-cursors",
|
"hypr-dynamic-cursors": "hypr-dynamic-cursors",
|
||||||
"hyprland-plugins": "hyprland-plugins",
|
"hyprland-plugins": "hyprland-plugins",
|
||||||
|
"musnix": "musnix",
|
||||||
"nix-alien": "nix-alien",
|
"nix-alien": "nix-alien",
|
||||||
"nix-flatpak": "nix-flatpak",
|
"nix-flatpak": "nix-flatpak",
|
||||||
|
"nix-topology": "nix-topology",
|
||||||
"nixpkgs": "nixpkgs_4",
|
"nixpkgs": "nixpkgs_4",
|
||||||
"nixvim": "nixvim",
|
"nixvim": "nixvim",
|
||||||
"nps": "nps",
|
"nps": "nps",
|
||||||
"nur": "nur",
|
"nur": "nur",
|
||||||
"spicetify-nix": "spicetify-nix",
|
"spicetify-nix": "spicetify-nix",
|
||||||
|
"unityhub-pinned": "unityhub-pinned",
|
||||||
"v4l2loopback-pinned": "v4l2loopback-pinned"
|
"v4l2loopback-pinned": "v4l2loopback-pinned"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -1358,7 +1508,7 @@
|
|||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
],
|
||||||
"systems": "systems_5"
|
"systems": "systems_6"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1751171964,
|
"lastModified": 1751171964,
|
||||||
@ -1449,6 +1599,37 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"systems_6": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"unityhub-pinned": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1751747067,
|
||||||
|
"narHash": "sha256-EjdnadZ90Q0sUWhz/owDik9fHSXw7ho/rsrsYGCDH2U=",
|
||||||
|
"owner": "huantianad",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "9542b0bc7701e173a10e6977e57bbba68bb3051f",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "huantianad",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "9542b0bc7701e173a10e6977e57bbba68bb3051f",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"v4l2loopback-pinned": {
|
"v4l2loopback-pinned": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1748124733,
|
"lastModified": 1748124733,
|
||||||
|
|||||||
97
flake.nix
97
flake.nix
@ -5,6 +5,9 @@
|
|||||||
# It depends on "inputs" that are passed as arguments to the "outputs" function.
|
# It depends on "inputs" that are passed as arguments to the "outputs" function.
|
||||||
# The inputs' git revisions get locked in the flake.lock file, making the outputs deterministic.
|
# The inputs' git revisions get locked in the flake.lock file, making the outputs deterministic.
|
||||||
inputs = {
|
inputs = {
|
||||||
|
# Just for shell.nix
|
||||||
|
devshell.url = "github:numtide/devshell";
|
||||||
|
|
||||||
# Nixpkgs
|
# Nixpkgs
|
||||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||||
hardware.url = "github:nixos/nixos-hardware";
|
hardware.url = "github:nixos/nixos-hardware";
|
||||||
@ -13,55 +16,64 @@
|
|||||||
home-manager.url = "github:nix-community/home-manager";
|
home-manager.url = "github:nix-community/home-manager";
|
||||||
home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|
||||||
|
# Nix User Repository (e.g. Firefox addons)
|
||||||
|
nur.url = "github:nix-community/NUR";
|
||||||
|
nur.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|
||||||
|
# Nix Package Search - nps
|
||||||
|
nps.url = "github:OleMussmann/nps";
|
||||||
|
nps.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|
||||||
|
# Run unpatched binaries on NixOS
|
||||||
|
nix-alien.url = "github:thiagokokada/nix-alien";
|
||||||
|
nix-alien.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|
||||||
# NeoVim <3
|
# NeoVim <3
|
||||||
nixvim.url = "github:nix-community/nixvim";
|
nixvim.url = "github:nix-community/nixvim";
|
||||||
nixvim.inputs.nixpkgs.follows = "nixpkgs";
|
nixvim.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|
||||||
|
# Emacs nightly
|
||||||
|
emacs-overlay.url = "github:nix-community/emacs-overlay";
|
||||||
|
emacs-overlay.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|
||||||
|
# Declarative Flatpak
|
||||||
|
nix-flatpak.url = "github:gmodena/nix-flatpak/?ref=latest";
|
||||||
|
# nix-flatpak.inputs.nixpkgs.follows = "nixpkgs"; # nix-flatpak doesn't have this
|
||||||
|
|
||||||
# HyprPlugins
|
# HyprPlugins
|
||||||
hyprland-plugins.url = "github:hyprwm/hyprland-plugins";
|
hyprland-plugins.url = "github:hyprwm/hyprland-plugins";
|
||||||
hyprland-plugins.inputs.nixpkgs.follows = "nixpkgs";
|
hyprland-plugins.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
hypr-dynamic-cursors.url = "github:VirtCode/hypr-dynamic-cursors";
|
hypr-dynamic-cursors.url = "github:VirtCode/hypr-dynamic-cursors";
|
||||||
hypr-dynamic-cursors.inputs.nixpkgs.follows = "nixpkgs";
|
hypr-dynamic-cursors.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|
||||||
# Nix User Repository (e.g. Firefox addons)
|
# Realtime audio
|
||||||
nur.url = "github:nix-community/NUR";
|
musnix.url = "github:musnix/musnix";
|
||||||
nur.inputs.nixpkgs.follows = "nixpkgs";
|
musnix.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|
||||||
# Spicetify
|
nix-topology.url = "github:oddlama/nix-topology";
|
||||||
spicetify-nix.url = "github:Gerg-L/spicetify-nix";
|
nix-topology.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
spicetify-nix.inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
|
|
||||||
# Ags for widgets (this was a terrible idea)
|
# Ags for widgets (this was a terrible idea)
|
||||||
ags.url = "github:Aylur/ags";
|
ags.url = "github:Aylur/ags";
|
||||||
ags.inputs.nixpkgs.follows = "nixpkgs";
|
ags.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|
||||||
# Nix Package Search - nps
|
# Spicetify
|
||||||
nps.url = "github:OleMussmann/nps";
|
spicetify-nix.url = "github:Gerg-L/spicetify-nix";
|
||||||
nps.inputs.nixpkgs.follows = "nixpkgs";
|
spicetify-nix.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
|
||||||
# Declarative Flatpak
|
|
||||||
nix-flatpak.url = "github:gmodena/nix-flatpak/?ref=latest";
|
|
||||||
# nix-flatpak.inputs.nixpkgs.follows = "nixpkgs"; # nix-flatpak doesn't have this
|
|
||||||
|
|
||||||
# Creates an environment containing required libraries for an executable
|
|
||||||
nix-alien.url = "github:thiagokokada/nix-alien";
|
|
||||||
nix-alien.inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
|
|
||||||
# Emacs nightly
|
|
||||||
emacs-overlay.url = "github:nix-community/emacs-overlay";
|
|
||||||
emacs-overlay.inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
|
|
||||||
# Pinned versions
|
# Pinned versions
|
||||||
v4l2loopback-pinned.url = "github:nixos/nixpkgs/4684fd6b0c01e4b7d99027a34c93c2e09ecafee2";
|
v4l2loopback-pinned.url = "github:nixos/nixpkgs/4684fd6b0c01e4b7d99027a34c93c2e09ecafee2";
|
||||||
|
unityhub-pinned.url = "github:huantianad/nixpkgs/9542b0bc7701e173a10e6977e57bbba68bb3051f";
|
||||||
# Just for shell.nix
|
|
||||||
devshell.url = "github:numtide/devshell";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
# Outputs is a function that takes the inputs as arguments.
|
# Outputs is a function that takes the inputs as arguments.
|
||||||
# To handle extra arguments we use the @ inputs pattern.
|
# To handle extra arguments we use the @ inputs pattern.
|
||||||
# It gives the name "inputs" to the ... ellipses.
|
# It gives the name "inputs" to the ... ellipses.
|
||||||
outputs = {nixpkgs, ...} @ inputs: let
|
outputs = {
|
||||||
|
self,
|
||||||
|
nixpkgs,
|
||||||
|
...
|
||||||
|
} @ inputs: let
|
||||||
# Our configuration is buildable on the following system/platform.
|
# Our configuration is buildable on the following system/platform.
|
||||||
# Configs can support more than a single system simultaneously,
|
# Configs can support more than a single system simultaneously,
|
||||||
# e.g. NixOS (linux) and MacOS (darwin) or Arm.
|
# e.g. NixOS (linux) and MacOS (darwin) or Arm.
|
||||||
@ -89,12 +101,15 @@
|
|||||||
inputs.devshell.overlays.default
|
inputs.devshell.overlays.default
|
||||||
inputs.nur.overlays.default
|
inputs.nur.overlays.default
|
||||||
inputs.emacs-overlay.overlay
|
inputs.emacs-overlay.overlay
|
||||||
|
inputs.nix-topology.overlays.default
|
||||||
|
|
||||||
# TODO: Check if this works
|
# https://github.com/NixOS/nixpkgs/issues/418451
|
||||||
# TODO: Remove after OBS is fixed: https://github.com/obsproject/obs-studio/pull/11906
|
(final: prev: {
|
||||||
# (final: prev: {
|
unityhub_pinned_3_13 = import inputs.unityhub-pinned {
|
||||||
# v4l2loopback = inputs.v4l2loopback-pinned.pkgs.v4l2loopback;
|
config.allowUnfree = true;
|
||||||
# })
|
localSystem = {inherit (prev) system;};
|
||||||
|
};
|
||||||
|
})
|
||||||
|
|
||||||
# All my own overlays
|
# All my own overlays
|
||||||
(import ./overlays {inherit nixpkgs inputs;})
|
(import ./overlays {inherit nixpkgs inputs;})
|
||||||
@ -118,6 +133,18 @@
|
|||||||
# Local shell for NixFlake directory
|
# Local shell for NixFlake directory
|
||||||
devShells."${system}".default = import ./shell.nix {inherit pkgs;};
|
devShells."${system}".default = import ./shell.nix {inherit pkgs;};
|
||||||
|
|
||||||
|
# TODO: Add my homelab configs into this flake, then add a topology config for each host
|
||||||
|
# Output that generates a system topology diagram
|
||||||
|
# topology = import inputs.nix-topology {
|
||||||
|
# inherit pkgs; # Only this package set must include nix-topology.overlays.default
|
||||||
|
# modules = [
|
||||||
|
# # Your own file to define global topology. Works in principle like a nixos module but uses different options.
|
||||||
|
# # ./topology.nix
|
||||||
|
# # Inline module to inform topology of your existing NixOS hosts.
|
||||||
|
# {nixosConfigurations = self.nixosConfigurations;}
|
||||||
|
# ];
|
||||||
|
# };
|
||||||
|
|
||||||
# We give each configuration a (host)name to choose a configuration when rebuilding.
|
# We give each configuration a (host)name to choose a configuration when rebuilding.
|
||||||
# This makes it easy to add different configurations (e.g. for a laptop).
|
# This makes it easy to add different configurations (e.g. for a laptop).
|
||||||
# Usage: sudo nixos-rebuild switch --flake .#nixinator
|
# Usage: sudo nixos-rebuild switch --flake .#nixinator
|
||||||
@ -136,13 +163,19 @@
|
|||||||
inherit system mylib;
|
inherit system mylib;
|
||||||
hostname = "nixinator";
|
hostname = "nixinator";
|
||||||
username = "christoph";
|
username = "christoph";
|
||||||
extraModules = [];
|
extraModules = [
|
||||||
|
# TODO:
|
||||||
|
# inputs.nix-topology.nixosModules.default
|
||||||
|
];
|
||||||
};
|
};
|
||||||
nixtop = mylib.nixos.mkNixosConfigWithHomeManagerModule {
|
nixtop = mylib.nixos.mkNixosConfigWithHomeManagerModule {
|
||||||
inherit system mylib;
|
inherit system mylib;
|
||||||
hostname = "nixtop";
|
hostname = "nixtop";
|
||||||
username = "christoph";
|
username = "christoph";
|
||||||
extraModules = [];
|
extraModules = [
|
||||||
|
# TODO:
|
||||||
|
# inputs.nix-topology.nixosModules.default
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
# These configurations don't include HM.
|
# These configurations don't include HM.
|
||||||
|
|||||||
@ -68,7 +68,7 @@ rec {
|
|||||||
|
|
||||||
hyprland = {
|
hyprland = {
|
||||||
enable = true;
|
enable = true;
|
||||||
dunst.enable = false; # Disable for hyprpanel
|
dunst.enable = !config.modules.hyprpanel.enable; # Disable for hyprpanel
|
||||||
theme = "Foggy-Lake"; # Three-Bears
|
theme = "Foggy-Lake"; # Three-Bears
|
||||||
|
|
||||||
keybindings = {
|
keybindings = {
|
||||||
@ -111,7 +111,6 @@ rec {
|
|||||||
"nextcloud --background"
|
"nextcloud --background"
|
||||||
"keepassxc"
|
"keepassxc"
|
||||||
"ferdium"
|
"ferdium"
|
||||||
"kdeconnect-indicator"
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -219,8 +218,7 @@ rec {
|
|||||||
neovide = true;
|
neovide = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
nnn.enable = false;
|
nnn.enable = false; # Use yazi
|
||||||
|
|
||||||
rmpc.enable = true;
|
rmpc.enable = true;
|
||||||
|
|
||||||
rofi = {
|
rofi = {
|
||||||
@ -229,7 +227,7 @@ rec {
|
|||||||
theme = "Foggy-Lake";
|
theme = "Foggy-Lake";
|
||||||
};
|
};
|
||||||
|
|
||||||
waybar.enable = false;
|
waybar.enable = false; # Use hyprpanel
|
||||||
zathura.enable = true;
|
zathura.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -347,10 +345,21 @@ rec {
|
|||||||
unzip # Unzip stuff
|
unzip # Unzip stuff
|
||||||
progress # Find coreutils processes and show their progress
|
progress # Find coreutils processes and show their progress
|
||||||
tokei # Text file statistics in a project
|
tokei # Text file statistics in a project
|
||||||
nvd # nix rebuild diff
|
|
||||||
ripdrag # drag & drop from terminal
|
ripdrag # drag & drop from terminal
|
||||||
playerctl # media player control
|
playerctl # media player control
|
||||||
pastel # color tools
|
pastel # color tools
|
||||||
|
nvd # nix rebuild diff
|
||||||
|
nix-search-tv # search nixpkgs, nur, nixos options and homemanager options
|
||||||
|
nix-tree # Browse the nix store sorted by size (gdu for closures)
|
||||||
|
nurl # Generate nix fetcher sections based on URLs
|
||||||
|
|
||||||
|
# Run unpatched binaries on NixOS
|
||||||
|
# Sets NIX_LD_LIBRARY_PATH and NIX_LD variables for nix-ld.
|
||||||
|
# Start dynamically linked executable using "nix-alien-ld -- <Executable>".
|
||||||
|
inputs.nix-alien.packages.${system}.nix-alien
|
||||||
|
|
||||||
|
# Search nixpkgs
|
||||||
|
inputs.nps.packages.${system}.default
|
||||||
|
|
||||||
# Hardware/Software info
|
# Hardware/Software info
|
||||||
pciutils # lspci
|
pciutils # lspci
|
||||||
@ -492,7 +501,8 @@ rec {
|
|||||||
|
|
||||||
import = {
|
import = {
|
||||||
write = true; # Write metadata to files
|
write = true; # Write metadata to files
|
||||||
copy = true; # Move files to the music directory when importing
|
copy = false; # Copy files to the music directory when importing
|
||||||
|
move = true; # Move files to the music directory when importing
|
||||||
log = "${home.homeDirectory}/Music/.beetslog.txt";
|
log = "${home.homeDirectory}/Music/.beetslog.txt";
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -1007,7 +1017,10 @@ rec {
|
|||||||
};
|
};
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
kdeconnect.enable = nixosConfig.programs.kdeconnect.enable; # Only the system package sets up the firewall
|
kdeconnect = {
|
||||||
|
enable = nixosConfig.programs.kdeconnect.enable; # Only the system package sets up the firewall
|
||||||
|
indicator = nixosConfig.programs.kdeconnect.enable;
|
||||||
|
};
|
||||||
|
|
||||||
mpd = {
|
mpd = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|||||||
@ -113,7 +113,9 @@
|
|||||||
# jetbrains.webstorm
|
# jetbrains.webstorm
|
||||||
|
|
||||||
# Unity Stuff
|
# Unity Stuff
|
||||||
# unityhub # TODO: Disable until https://github.com/NixOS/nixpkgs/issues/418451 is closed
|
# unityhub
|
||||||
|
unityhub_pinned_3_13.unityhub # TODO: Remove after https://github.com/NixOS/nixpkgs/issues/418451
|
||||||
|
|
||||||
rider
|
rider
|
||||||
dotnetCore
|
dotnetCore
|
||||||
mono
|
mono
|
||||||
|
|||||||
@ -181,6 +181,8 @@ in {
|
|||||||
|
|
||||||
(abbrify pkgs.lazygit {lg = "lazygit";})
|
(abbrify pkgs.lazygit {lg = "lazygit";})
|
||||||
|
|
||||||
|
(abbrify pkgs.nix-search-tv {search = "nix-search-tv print --indexes 'nixos,home-manager,nixpkgs,nur' | fzf --preview 'nix-search-tv preview {}' --scheme history";})
|
||||||
|
|
||||||
# Doesn't work with abbrify because I have nnn.override...
|
# Doesn't work with abbrify because I have nnn.override...
|
||||||
(lib.optionalAttrs config.modules.nnn.enable {n = "nnncd -a";})
|
(lib.optionalAttrs config.modules.nnn.enable {n = "nnncd -a";})
|
||||||
(lib.optionalAttrs config.modules.nnn.enable {np = "nnncd -a -P p";})
|
(lib.optionalAttrs config.modules.nnn.enable {np = "nnncd -a -P p";})
|
||||||
|
|||||||
@ -68,9 +68,6 @@
|
|||||||
"$mainMod CTRL, k" = ["movewindow, u"];
|
"$mainMod CTRL, k" = ["movewindow, u"];
|
||||||
"$mainMod CTRL, d" = ["movewindow, d"];
|
"$mainMod CTRL, d" = ["movewindow, d"];
|
||||||
|
|
||||||
# Special workspace
|
|
||||||
"$mainMod, x" = ["togglespecialworkspace"];
|
|
||||||
|
|
||||||
# TODO: Somehow write this more compact? Try to use workspace 0 instead of 10...
|
# TODO: Somehow write this more compact? Try to use workspace 0 instead of 10...
|
||||||
"$mainMod, 1" = ["workspace, 1"];
|
"$mainMod, 1" = ["workspace, 1"];
|
||||||
"$mainMod, 2" = ["workspace, 2"];
|
"$mainMod, 2" = ["workspace, 2"];
|
||||||
@ -82,6 +79,7 @@
|
|||||||
"$mainMod, 8" = ["workspace, 8"];
|
"$mainMod, 8" = ["workspace, 8"];
|
||||||
"$mainMod, 9" = ["workspace, 9"];
|
"$mainMod, 9" = ["workspace, 9"];
|
||||||
"$mainMod, 0" = ["workspace, 10"];
|
"$mainMod, 0" = ["workspace, 10"];
|
||||||
|
"$mainMod, x" = ["togglespecialworkspace"];
|
||||||
|
|
||||||
"$mainMod SHIFT, 1" = ["movetoworkspace, 1"];
|
"$mainMod SHIFT, 1" = ["movetoworkspace, 1"];
|
||||||
"$mainMod SHIFT, 2" = ["movetoworkspace, 2"];
|
"$mainMod SHIFT, 2" = ["movetoworkspace, 2"];
|
||||||
@ -93,6 +91,7 @@
|
|||||||
"$mainMod SHIFT, 8" = ["movetoworkspace, 8"];
|
"$mainMod SHIFT, 8" = ["movetoworkspace, 8"];
|
||||||
"$mainMod SHIFT, 9" = ["movetoworkspace, 9"];
|
"$mainMod SHIFT, 9" = ["movetoworkspace, 9"];
|
||||||
"$mainMod SHIFT, 0" = ["movetoworkspace, 10"];
|
"$mainMod SHIFT, 0" = ["movetoworkspace, 10"];
|
||||||
|
"$mainMod SHIFT, x" = ["movetoworkspace, special"];
|
||||||
|
|
||||||
# Reset workspaces to the defined configuration in hyprland.workspaces:
|
# Reset workspaces to the defined configuration in hyprland.workspaces:
|
||||||
# [
|
# [
|
||||||
@ -112,23 +111,25 @@
|
|||||||
"$mainMod, mouse:273" = ["resizewindow"];
|
"$mainMod, mouse:273" = ["resizewindow"];
|
||||||
};
|
};
|
||||||
|
|
||||||
always-exec = [
|
always-exec = builtins.concatLists [
|
||||||
# "dunst" # Notifications
|
(lib.optionals hyprland.dunst.enable ["dunst"]) # Notifications
|
||||||
"wl-paste -t text --watch clipman store --no-persist"
|
[
|
||||||
"wl-paste -p -t text --watch clipman store -P --histpath=\"~/.local/share/clipman-primary.json\""
|
"wl-paste -t text --watch clipman store --no-persist"
|
||||||
"hyprctl setcursor Bibata-Modern-Classic 16"
|
"wl-paste -p -t text --watch clipman store -P --histpath=\"~/.local/share/clipman-primary.json\""
|
||||||
"hyprsunset --identity"
|
"hyprctl setcursor Bibata-Modern-Classic 16"
|
||||||
|
"hyprsunset --identity"
|
||||||
|
|
||||||
# HACK: Hyprland doesn't set the xwayland/x11 keymap correctly
|
# HACK: Hyprland doesn't set the xwayland/x11 keymap correctly
|
||||||
"setxkbmap -layout ${hyprland.kb-layout} -variant ${hyprland.kb-variant} -model pc104"
|
"setxkbmap -layout ${hyprland.kb-layout} -variant ${hyprland.kb-variant} -model pc104"
|
||||||
|
|
||||||
# HACK: Flatpak doesn't find applications in the system PATH
|
# HACK: Flatpak doesn't find applications in the system PATH
|
||||||
"systemctl --user import-environment PATH && systemctl --user restart xdg-desktop-portal.service"
|
"systemctl --user import-environment PATH && systemctl --user restart xdg-desktop-portal.service"
|
||||||
|
|
||||||
# Provide a polkit authentication UI.
|
# Provide a polkit authentication UI.
|
||||||
# This is used for example when running systemd commands without root.
|
# This is used for example when running systemd commands without root.
|
||||||
"${pkgs.kdePackages.polkit-kde-agent-1}/libexec/polkit-kde-authentication-agent-1"
|
"${pkgs.kdePackages.polkit-kde-agent-1}/libexec/polkit-kde-authentication-agent-1"
|
||||||
# "systemctl --user start hyprpolkitagent.service"
|
# "systemctl --user start hyprpolkitagent.service"
|
||||||
|
]
|
||||||
];
|
];
|
||||||
in {
|
in {
|
||||||
options.modules.hyprland = import ./options.nix {inherit lib mylib;};
|
options.modules.hyprland = import ./options.nix {inherit lib mylib;};
|
||||||
@ -159,7 +160,7 @@ in {
|
|||||||
x11.enable = true;
|
x11.enable = true;
|
||||||
package = pkgs.bibata-cursors;
|
package = pkgs.bibata-cursors;
|
||||||
name = "Bibata-Modern-Classic";
|
name = "Bibata-Modern-Classic";
|
||||||
size = 16;
|
size = 32;
|
||||||
};
|
};
|
||||||
|
|
||||||
packages = with pkgs; [
|
packages = with pkgs; [
|
||||||
|
|||||||
@ -411,29 +411,20 @@ with mylib.networking; {
|
|||||||
# Empty since we basically only need git + editor which is enabled below
|
# Empty since we basically only need git + editor which is enabled below
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
iw
|
iw
|
||||||
|
|
||||||
# iPhone tethering + mounting
|
|
||||||
libimobiledevice
|
|
||||||
ifuse
|
|
||||||
usbmuxd
|
|
||||||
|
|
||||||
mprocs # run multiple processes in single terminal window, screen alternative
|
mprocs # run multiple processes in single terminal window, screen alternative
|
||||||
parted # partition manager
|
parted # partition manager
|
||||||
procs # Better ps
|
procs # Better ps
|
||||||
procps # pgrep, pkill
|
procps # pgrep, pkill
|
||||||
|
killall
|
||||||
slirp4netns # user network namespaces
|
slirp4netns # user network namespaces
|
||||||
wireguard-tools
|
wireguard-tools
|
||||||
man-pages
|
man-pages
|
||||||
man-pages-posix
|
man-pages-posix
|
||||||
|
|
||||||
# Sets NIX_LD_LIBRARY_PATH and NIX_LD variables for nix-ld
|
# iPhone tethering + mounting
|
||||||
# Start dynamically linked executable using "nix-alien-ld -- <Executable>"
|
libimobiledevice
|
||||||
inputs.nix-alien.packages.${system}.nix-alien
|
ifuse
|
||||||
|
usbmuxd
|
||||||
# Search nixpkgs
|
|
||||||
inputs.nps.packages.${system}.default
|
|
||||||
|
|
||||||
# egl-wayland
|
|
||||||
];
|
];
|
||||||
|
|
||||||
# It is preferred to use the module (if it exists) over environment.systemPackages,
|
# It is preferred to use the module (if it exists) over environment.systemPackages,
|
||||||
|
|||||||
Reference in New Issue
Block a user