Compare commits
84 Commits
532bbe8675
...
master
Author | SHA1 | Date | |
---|---|---|---|
c543bc13ea | |||
b4d1681b99 | |||
6c32ffbe94 | |||
6787243414 | |||
d350807e8c | |||
f872c8db0c | |||
8c53c66c4d | |||
0f07029660 | |||
8010d771a1 | |||
7f4c41429e | |||
6d21fe4262 | |||
c081f95aaf | |||
452a34c7e8 | |||
15c4616b91 | |||
07274a0364 | |||
3bb8db1349 | |||
65a3dcdc08 | |||
9fe40bfd13 | |||
07943d4f95 | |||
815a79ff41 | |||
32ddceba8f | |||
55ba4125d6 | |||
b9274f546f | |||
fd246d7daf | |||
edae0d2bb0 | |||
1cb23dd0a4 | |||
ab1052193a | |||
6dadb2008c | |||
18f9cc3fa8 | |||
9295ad7010 | |||
e3cf2379ab | |||
f6c3f676b2 | |||
d57017382a | |||
1d7690eab4 | |||
67d68a9946 | |||
9af362b5c8 | |||
a0ae09452f | |||
711859e660 | |||
1c1e496425 | |||
97229a521f | |||
7d8190210b | |||
a1dfeff98b | |||
9e512c2863 | |||
136653b0fa | |||
75fb0f54ec | |||
a3282f3eb3 | |||
843dfb986d | |||
3eba0fe092 | |||
fdc8b03d9b | |||
d86321cfe6 | |||
881c930fdb | |||
dc3f9fe681 | |||
d73ff17327 | |||
67468ba6fa | |||
6d2a7f50df | |||
3cf8f19fcc | |||
d335f6c892 | |||
8d94428f77 | |||
903776dca6 | |||
b6dc568215 | |||
130c341816 | |||
8d0430ae52 | |||
68da077c72 | |||
7d17c52192 | |||
c217e3297b | |||
c41a642593 | |||
d02f28ad89 | |||
7d18d2bd50 | |||
68c37c0f42 | |||
20e2b5e20e | |||
08d3844778 | |||
34084e45aa | |||
7c1c51954e | |||
659d235fc7 | |||
64958b068f | |||
95d9f9cf61 | |||
6f57594884 | |||
b077da4998 | |||
8aaf0b81c2 | |||
439b4d769e | |||
66bde6646f | |||
c323a747ea | |||
d87cec971a | |||
7db055ca27 |
@ -1,61 +0,0 @@
|
||||
[helpers]
|
||||
|
||||
[default]
|
||||
depends = []
|
||||
|
||||
[manjaro.files]
|
||||
manjaro = "~"
|
||||
|
||||
[mc.files]
|
||||
mc = "~/.config/mc"
|
||||
|
||||
[vim.files]
|
||||
# type symbolic prevents interpreting '{{' as template
|
||||
"vim/.vimrc" = { target = "~/.vimrc", type = "symbolic" }
|
||||
|
||||
[nvim.files]
|
||||
"vim/init.vim" = { target = "~/.config/nvim/init.vim", type = "symbolic" }
|
||||
|
||||
[i3.files]
|
||||
"i3/i3" = "~/.config/i3"
|
||||
"i3/i3blocks" = { target = "~/.config/i3blocks", type = "symbolic" }
|
||||
"i3/rofi" = "~/.config/rofi"
|
||||
"i3/i3-scrot.conf" = "~/.config/i3-scrot.conf"
|
||||
"i3/i3status-rust" = "~/.config/i3status-rust"
|
||||
"i3/.profile" = "~/.profile"
|
||||
|
||||
[i3.variables]
|
||||
monitor-primary = "not-specified"
|
||||
monitor-secondary = "not-specified"
|
||||
screenlayout-script = "echo screenlayout-script not specified"
|
||||
bar-font-size = 15
|
||||
tray-output = "tray_output primary"
|
||||
|
||||
[emacs.files]
|
||||
"emacs/doom" = "~/.config/doom"
|
||||
# "emacs/spacemacs/.spacemacs" = "~/.spacemacs"
|
||||
# "emacs/chemacs/.emacs-profiles.el" = "~/.emacs-profiles.el"
|
||||
|
||||
[alacritty.files]
|
||||
alacritty = "~/.config/alacritty"
|
||||
|
||||
[starship.files]
|
||||
starship = "~/.config/"
|
||||
|
||||
[zsh.files]
|
||||
"zsh/.zshrc" = "~/.zshrc"
|
||||
"zsh/custom-plugins" = "~/.oh-my-zsh/custom"
|
||||
|
||||
[polybar.files]
|
||||
polybar = "~/.config/polybar"
|
||||
|
||||
[leftwm.files]
|
||||
leftwm = "~/.config/leftwm"
|
||||
|
||||
[xmonad.files]
|
||||
xmonad = "~/.xmonad"
|
||||
|
||||
[nix.files]
|
||||
"direnvrc" = "~/.config/direnv/direnvrc"
|
||||
"nix/configuration.nix" = "/etc/nixos/configuration.nix"
|
||||
"nix/flake.nix" = "/etc/nixos/flake.nix"
|
@ -1,6 +0,0 @@
|
||||
[i3.variables]
|
||||
monitor-primary = "DVI-D-0"
|
||||
monitor-secondary = "DVI-D-1"
|
||||
screenlayout-script = "~/.screenlayout/2desktop-dvi.sh"
|
||||
bar-font-size = 15
|
||||
tray-output = "tray_output DVI-D-1"
|
@ -1,4 +0,0 @@
|
||||
[i3.variables]
|
||||
monitor-primary = "HDMI-1"
|
||||
monitor-secondary = "eDP-1"
|
||||
screenlayout-script = "~/.screenlayout/laptop-at-home.sh"
|
@ -1,5 +0,0 @@
|
||||
[i3.variables]
|
||||
monitor-primary = "HDMI-1"
|
||||
monitor-secondary = "eDP-1"
|
||||
tray-output = "tray_output eDP-1"
|
||||
screenlayout-script = "$scripts/display-layoutpicker"
|
@ -1,2 +0,0 @@
|
||||
includes = [".dotter/kardorf.toml"]
|
||||
packages = ["i3", "emacs", "alacritty", "zsh", "starship", "nix"]
|
@ -1,2 +0,0 @@
|
||||
includes = [".dotter/laptop.toml"]
|
||||
packages = []
|
@ -25,6 +25,7 @@ jobs:
|
||||
- name: Rebase from master branch
|
||||
shell: bash
|
||||
run: |
|
||||
git fetch origin master
|
||||
commits_ahead=$(git rev-list --count HEAD..origin/master)
|
||||
echo "Commits ahead: $commits_ahead"
|
||||
git log --oneline -5
|
||||
|
10
.sops.yaml
@ -3,23 +3,25 @@ keys:
|
||||
- &aspi-ssh age1q8lc5340gz5xw2f57nglrss68wv0j0hf36py2pdtrl6ky3yrq9qqk0njr4
|
||||
- &pianonix-ssh age1hsmfz8fjxu83sax9lr487h8xr6cyge0apdq4zpge4c8jpcjj2cksj825ct
|
||||
- &builder-ssh age1kw4kmdm45zprvdkrrpvgq966l7585vhusmum083qlwnr0xxgd3uqatcyja
|
||||
- &kardorf-ssh age15lxw97z03q40xrdscnxqqugh5ky5aqrerg2t2rphkcqm6rnllurq8v98q5
|
||||
|
||||
creation_rules:
|
||||
- path_regex: secrets/secrets.yaml$
|
||||
- path_regex: hosts/common/secrets.yaml$
|
||||
key_groups:
|
||||
- age:
|
||||
- *primary
|
||||
- *aspi-ssh
|
||||
- *pianonix-ssh
|
||||
- *kardorf-ssh
|
||||
|
||||
- path_regex: secrets/secrets-builder.yaml$
|
||||
- path_regex: hosts/builder/secrets.yaml$
|
||||
key_groups:
|
||||
- age:
|
||||
- *primary
|
||||
- *builder-ssh
|
||||
|
||||
- path_regex: secrets/.+
|
||||
- path_regex: hosts/pianonix/secrets.yaml$
|
||||
key_groups:
|
||||
- age:
|
||||
- *primary
|
||||
- *aspi-ssh
|
||||
- *pianonix-ssh
|
||||
|
205
flake.lock
generated
@ -1,21 +1,5 @@
|
||||
{
|
||||
"nodes": {
|
||||
"alacritty-theme": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1740080741,
|
||||
"narHash": "sha256-ROer+oqSY/Z5PAxZFJ5U9R+kMfWb596/1CuEWTcoMIk=",
|
||||
"owner": "alacritty",
|
||||
"repo": "alacritty-theme",
|
||||
"rev": "687675f3f2245c80ff8bfe8180b0eb40dfc0bc86",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "alacritty",
|
||||
"repo": "alacritty-theme",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"base16-schemes": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
@ -54,11 +38,11 @@
|
||||
"utils": "utils"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1727447169,
|
||||
"narHash": "sha256-3KyjMPUKHkiWhwR91J1YchF6zb6gvckCAY1jOE+ne0U=",
|
||||
"lastModified": 1749105467,
|
||||
"narHash": "sha256-hXh76y/wDl15almBcqvjryB50B0BaiXJKk20f314RoE=",
|
||||
"owner": "serokell",
|
||||
"repo": "deploy-rs",
|
||||
"rev": "aa07eb05537d4cd025e2310397a6adcedfe72c76",
|
||||
"rev": "6bc76b872374845ba9d645a2f012b764fecd765f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -74,11 +58,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1741786315,
|
||||
"narHash": "sha256-VT65AE2syHVj6v/DGB496bqBnu1PXrrzwlw07/Zpllc=",
|
||||
"lastModified": 1752113600,
|
||||
"narHash": "sha256-7LYDxKxZgBQ8LZUuolAQ8UkIB+jb4A2UmiR+kzY9CLI=",
|
||||
"owner": "nix-community",
|
||||
"repo": "disko",
|
||||
"rev": "0d8c6ad4a43906d14abd5c60e0ffe7b587b213de",
|
||||
"rev": "79264292b7e3482e5702932949de9cbb69fedf6d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -90,11 +74,11 @@
|
||||
"flake-compat": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1696426674,
|
||||
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
||||
"lastModified": 1733328505,
|
||||
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
||||
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -106,11 +90,11 @@
|
||||
"flake-compat_2": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1733328505,
|
||||
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
|
||||
"lastModified": 1747046372,
|
||||
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
|
||||
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -127,11 +111,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1741352980,
|
||||
"narHash": "sha256-+u2UunDA4Cl5Fci3m7S643HzKmIDAe+fiXrLqYsR2fs=",
|
||||
"lastModified": 1751413152,
|
||||
"narHash": "sha256-Tyw1RjYEsp5scoigs1384gIg6e0GoBVjms4aXFfRssQ=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "f4330d22f1c5d2ba72d3d22df5597d123fdb60a9",
|
||||
"rev": "77826244401ea9de6e3bac47c2db46005e1f30b5",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -159,21 +143,6 @@
|
||||
}
|
||||
},
|
||||
"flake-utils_2": {
|
||||
"locked": {
|
||||
"lastModified": 1659877975,
|
||||
"narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils_3": {
|
||||
"inputs": {
|
||||
"systems": "systems_3"
|
||||
},
|
||||
@ -191,7 +160,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils_4": {
|
||||
"flake-utils_3": {
|
||||
"inputs": {
|
||||
"systems": "systems_4"
|
||||
},
|
||||
@ -209,6 +178,24 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils_4": {
|
||||
"inputs": {
|
||||
"systems": "systems_6"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1731533236,
|
||||
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"home-manager": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
@ -216,11 +203,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1745340124,
|
||||
"narHash": "sha256-zQTOl/JPGjiAQoU1yraCGfPBg7yr4nlHNdbZy8Ebrl4=",
|
||||
"lastModified": 1752202894,
|
||||
"narHash": "sha256-knafgng4gCjZIUMyAEWjxxdols6n/swkYnbWr+oF+1w=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "c9433ae62fbb4bd09609e242569edc3b551e21a9",
|
||||
"rev": "fab659b346c0d4252208434c3c4b3983a4b38fec",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -258,16 +245,16 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1729958008,
|
||||
"narHash": "sha256-EiOq8jF4Z/zQe0QYVc3+qSKxRK//CFHMB84aYrYGwEs=",
|
||||
"lastModified": 1748294338,
|
||||
"narHash": "sha256-FVO01jdmUNArzBS7NmaktLdGA5qA3lUMJ4B7a05Iynw=",
|
||||
"owner": "NuschtOS",
|
||||
"repo": "ixx",
|
||||
"rev": "9fd01aad037f345350eab2cd45e1946cc66da4eb",
|
||||
"rev": "cc5f390f7caf265461d4aab37e98d2292ebbdb85",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NuschtOS",
|
||||
"ref": "v0.0.6",
|
||||
"ref": "v0.0.8",
|
||||
"repo": "ixx",
|
||||
"type": "github"
|
||||
}
|
||||
@ -340,11 +327,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1713543440,
|
||||
"narHash": "sha256-lnzZQYG0+EXl/6NkGpyIz+FEOc/DSEG57AP1VsdeNrM=",
|
||||
"lastModified": 1752054764,
|
||||
"narHash": "sha256-Ob/HuUhANoDs+nvYqyTKrkcPXf4ZgXoqMTQoCK0RFgQ=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixgl",
|
||||
"rev": "310f8e49a149e4c9ea52f1adf70cdc768ec53f8a",
|
||||
"rev": "a8e1ce7d49a149ed70df676785b07f63288f53c5",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -361,11 +348,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1741791880,
|
||||
"narHash": "sha256-0nFAtEaSk0OZXIp3gjeK43e3drbzXjLLSye8RT6hKPU=",
|
||||
"lastModified": 1751986921,
|
||||
"narHash": "sha256-lRVaL5ZOzg3OJNcp5RgCwgrXi/gdVgYAs9pGJKSenOc=",
|
||||
"owner": "doronbehar",
|
||||
"repo": "nix-matlab",
|
||||
"rev": "a8ea92e365477727c924293255a143026e57a5ba",
|
||||
"rev": "2b6e33435a188dc8870e420abf4969d2b1b4ee8b",
|
||||
"type": "gitlab"
|
||||
},
|
||||
"original": {
|
||||
@ -376,11 +363,11 @@
|
||||
},
|
||||
"nixos-hardware": {
|
||||
"locked": {
|
||||
"lastModified": 1744633460,
|
||||
"narHash": "sha256-fbWE4Xpw6eH0Q6in+ymNuDwTkqmFmtxcQEmtRuKDTTk=",
|
||||
"lastModified": 1752048960,
|
||||
"narHash": "sha256-gATnkOe37eeVwKKYCsL+OnS2gU4MmLuZFzzWCtaKLI8=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixos-hardware",
|
||||
"rev": "9a049b4a421076d27fee3eec664a18b2066824cb",
|
||||
"rev": "7ced9122cff2163c6a0212b8d1ec8c33a1660806",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -391,11 +378,11 @@
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1702272962,
|
||||
"narHash": "sha256-D+zHwkwPc6oYQ4G3A1HuadopqRwUY/JkMwHz1YF7j4Q=",
|
||||
"lastModified": 1743014863,
|
||||
"narHash": "sha256-jAIUqsiN2r3hCuHji80U7NNEafpIMBXiwKlSrjWMlpg=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "e97b3e4186bcadf0ef1b6be22b8558eab1cdeb5d",
|
||||
"rev": "bd3bac8bfb542dbde7ffffb6987a1a1f9d41699f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -422,11 +409,11 @@
|
||||
},
|
||||
"nixpkgs-stable": {
|
||||
"locked": {
|
||||
"lastModified": 1744440957,
|
||||
"narHash": "sha256-FHlSkNqFmPxPJvy+6fNLaNeWnF1lZSgqVCl/eWaJRc4=",
|
||||
"lastModified": 1751274312,
|
||||
"narHash": "sha256-/bVBlRpECLVzjV19t5KMdMFWSwKLtb5RyXdjz3LJT+g=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "26d499fc9f1d567283d5d56fcf367edd815dba1d",
|
||||
"rev": "50ab793786d9de88ee30ec4e4c24fb4236fc2674",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -450,11 +437,11 @@
|
||||
},
|
||||
"nixpkgs_3": {
|
||||
"locked": {
|
||||
"lastModified": 1744932701,
|
||||
"narHash": "sha256-fusHbZCyv126cyArUwwKrLdCkgVAIaa/fQJYFlCEqiU=",
|
||||
"lastModified": 1751984180,
|
||||
"narHash": "sha256-LwWRsENAZJKUdD3SpLluwDmdXY9F45ZEgCb0X+xgOL0=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "b024ced1aac25639f8ca8fdfc2f8c4fbd66c48ef",
|
||||
"rev": "9807714d6944a957c2e036f84b0ff8caf9930bc0",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -470,14 +457,15 @@
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"nuschtosSearch": "nuschtosSearch"
|
||||
"nuschtosSearch": "nuschtosSearch",
|
||||
"systems": "systems_5"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1745324162,
|
||||
"narHash": "sha256-Sjb/LvtWpPtSXacjJCTrLAmWtXNJd0SWxO3PzTvD7Tc=",
|
||||
"lastModified": 1752158208,
|
||||
"narHash": "sha256-XbXYLUtaB/wHvZYefvaDPbo4eYj27kbtowHfww9bqLw=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixvim",
|
||||
"rev": "60638182b8d1b0fe13631d02eafaf8903499ee60",
|
||||
"rev": "b728cf43d97814df43f5d9bd9dafac9072ccd9e8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -496,11 +484,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1739738736,
|
||||
"narHash": "sha256-Rl4Fw+3PsLTEzzUGlB8kePaiIersDbv5voAif3D6LoM=",
|
||||
"lastModified": 1749730855,
|
||||
"narHash": "sha256-L3x2nSlFkXkM6tQPLJP3oCBMIsRifhIDPMQQdHO5xWo=",
|
||||
"owner": "NuschtOS",
|
||||
"repo": "search",
|
||||
"rev": "9ff62c8e1fbe5dc649dee680c7eb4935936c8ac3",
|
||||
"rev": "8dfe5879dd009ff4742b668d9c699bc4b9761742",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -511,7 +499,6 @@
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"alacritty-theme": "alacritty-theme",
|
||||
"deploy-rs": "deploy-rs",
|
||||
"disko": "disko",
|
||||
"home-manager": "home-manager",
|
||||
@ -526,7 +513,7 @@
|
||||
"nixvim": "nixvim",
|
||||
"sheet-organizer": "sheet-organizer",
|
||||
"sops-nix": "sops-nix",
|
||||
"systems": "systems_5",
|
||||
"systems": "systems_7",
|
||||
"yazi-flavors": "yazi-flavors"
|
||||
}
|
||||
},
|
||||
@ -539,11 +526,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1737048258,
|
||||
"narHash": "sha256-QcprTngXkN/XuaiSKrswJUHEV+Nz3dSzP6zcLq00Y48=",
|
||||
"lastModified": 1742577105,
|
||||
"narHash": "sha256-1VFPRxydmDhq+CQogLeafh2zmNGKTMFYiV4y9NZXApo=",
|
||||
"ref": "refs/heads/master",
|
||||
"rev": "67d5dac0d1a1c0ae0beaf972881976a8b0908fd1",
|
||||
"revCount": 73,
|
||||
"rev": "94de09f4298233795996e17163ae6b987cdedbe9",
|
||||
"revCount": 75,
|
||||
"type": "git",
|
||||
"url": "https://gitlab.julian-mutter.de/julian/sheet-organizer"
|
||||
},
|
||||
@ -559,11 +546,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1741644481,
|
||||
"narHash": "sha256-E0RrMykMtEv15V3QhpsFutgoSKhL1JBhidn+iZajOyg=",
|
||||
"lastModified": 1751606940,
|
||||
"narHash": "sha256-KrDPXobG7DFKTOteqdSVeL1bMVitDcy7otpVZWDE6MA=",
|
||||
"owner": "Mic92",
|
||||
"repo": "sops-nix",
|
||||
"rev": "e653d71e82575a43fe9d228def8eddb73887b866",
|
||||
"rev": "3633fc4acf03f43b260244d94c71e9e14a2f6e0d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -633,6 +620,36 @@
|
||||
}
|
||||
},
|
||||
"systems_5": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"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"
|
||||
}
|
||||
},
|
||||
"systems_7": {
|
||||
"locked": {
|
||||
"lastModified": 1689347949,
|
||||
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
|
||||
@ -652,11 +669,11 @@
|
||||
"systems": "systems"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1701680307,
|
||||
"narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=",
|
||||
"lastModified": 1731533236,
|
||||
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "4022d587cbbfd70fe950c1e2083a02621806a725",
|
||||
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -668,11 +685,11 @@
|
||||
"yazi-flavors": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1741392393,
|
||||
"narHash": "sha256-iTMch0T933Tvofvo3ZzFwk+PNs+dsK0SrAIlJ03v73E=",
|
||||
"lastModified": 1751970029,
|
||||
"narHash": "sha256-RtunaCs1RUfzjefFLFu5qLRASbyk5RUILWTdavThRkc=",
|
||||
"owner": "yazi-rs",
|
||||
"repo": "flavors",
|
||||
"rev": "b929df6bdb56536e14c1fc24c9659f441b961f28",
|
||||
"rev": "d3fd3a5d774b48b3f88845f4f0ae1b82f106d331",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
216
flake.nix
@ -28,10 +28,6 @@
|
||||
};
|
||||
|
||||
# Various flakes
|
||||
alacritty-theme = {
|
||||
url = "github:alacritty/alacritty-theme";
|
||||
flake = false;
|
||||
};
|
||||
yazi-flavors = {
|
||||
url = "github:yazi-rs/flavors";
|
||||
flake = false;
|
||||
@ -56,116 +52,136 @@
|
||||
};
|
||||
};
|
||||
|
||||
outputs =
|
||||
{
|
||||
self,
|
||||
nixpkgs,
|
||||
home-manager,
|
||||
systems,
|
||||
...
|
||||
}@inputs:
|
||||
let
|
||||
inherit (self) outputs;
|
||||
lib = nixpkgs.lib // home-manager.lib;
|
||||
forEachSystem = f: lib.genAttrs (import systems) (system: f pkgsFor.${system});
|
||||
pkgsFor = lib.genAttrs (import systems) (
|
||||
system:
|
||||
outputs = {
|
||||
self,
|
||||
nixpkgs,
|
||||
home-manager,
|
||||
systems,
|
||||
...
|
||||
} @ inputs: let
|
||||
inherit (self) outputs;
|
||||
lib = nixpkgs.lib // home-manager.lib;
|
||||
forEachSystem = f: lib.genAttrs (import systems) (system: f pkgsFor.${system});
|
||||
pkgsFor = lib.genAttrs (import systems) (
|
||||
system:
|
||||
import nixpkgs {
|
||||
inherit system;
|
||||
config.allowUnfree = true;
|
||||
config.permittedInsecurePackages = [
|
||||
"olm-3.2.16"
|
||||
];
|
||||
warn-dirty = false;
|
||||
}
|
||||
);
|
||||
in
|
||||
{
|
||||
inherit lib;
|
||||
);
|
||||
in {
|
||||
inherit lib;
|
||||
|
||||
nixosModules = import ./modules/nixos;
|
||||
homeManagerModules = import ./modules/home-manager;
|
||||
nixosModules = import ./modules/nixos;
|
||||
homeManagerModules = import ./modules/home-manager;
|
||||
|
||||
overlays = import ./overlays { inherit inputs outputs; };
|
||||
# hydraJobs = import ./hydra.nix { inherit inputs outputs; }; # TODO add hydra jobs here?
|
||||
overlays = import ./overlays {inherit inputs outputs;};
|
||||
# hydraJobs = import ./hydra.nix { inherit inputs outputs; }; # TODO add hydra jobs here?
|
||||
|
||||
packages = forEachSystem (pkgs: import ./pkgs { inherit pkgs; });
|
||||
devShells = forEachSystem (pkgs: import ./shell.nix { inherit pkgs; });
|
||||
formatter = forEachSystem (pkgs: pkgs.alejandra);
|
||||
packages = forEachSystem (pkgs: import ./pkgs {inherit pkgs;});
|
||||
devShells = forEachSystem (pkgs: import ./shell.nix {inherit pkgs;});
|
||||
formatter = forEachSystem (pkgs: pkgs.alejandra);
|
||||
|
||||
nixosConfigurations = {
|
||||
# Main laptop
|
||||
aspi = lib.nixosSystem {
|
||||
modules = [ ./hosts/aspi ];
|
||||
specialArgs = {
|
||||
inherit inputs outputs;
|
||||
};
|
||||
};
|
||||
# Piano raspberry pi
|
||||
pianonix = lib.nixosSystem {
|
||||
modules = [ ./hosts/pianonix ];
|
||||
specialArgs = {
|
||||
inherit inputs outputs;
|
||||
};
|
||||
nixosConfigurations = {
|
||||
# Main laptop
|
||||
aspi = lib.nixosSystem {
|
||||
modules = [./hosts/aspi];
|
||||
specialArgs = {
|
||||
inherit inputs outputs;
|
||||
};
|
||||
};
|
||||
|
||||
# Standalone HM
|
||||
homeConfigurations = {
|
||||
# Main laptop
|
||||
"julian@aspi" = lib.homeManagerConfiguration {
|
||||
modules = [
|
||||
./home/julian/aspi.nix
|
||||
./home/julian/nixpkgs.nix
|
||||
];
|
||||
pkgs = pkgsFor.x86_64-linux;
|
||||
extraSpecialArgs = {
|
||||
inherit inputs outputs;
|
||||
};
|
||||
};
|
||||
# Media server (RPi)
|
||||
"julian@pianonix" = lib.homeManagerConfiguration {
|
||||
modules = [
|
||||
./home/julian/pianonix.nix
|
||||
./home/julian/nixpkgs.nix
|
||||
];
|
||||
pkgs = pkgsFor.aarch64-linux;
|
||||
extraSpecialArgs = {
|
||||
inherit inputs outputs;
|
||||
};
|
||||
# Piano raspberry pi
|
||||
pianonix = lib.nixosSystem {
|
||||
modules = [./hosts/pianonix];
|
||||
specialArgs = {
|
||||
inherit inputs outputs;
|
||||
};
|
||||
};
|
||||
|
||||
# Add overlays for the `nixpkgs` channel.
|
||||
# overlays = with inputs; [
|
||||
# nix-matlab.overlay
|
||||
# ];
|
||||
|
||||
# systems.modules.nixos = with inputs; [
|
||||
# sops-nix.nixosModules.sops
|
||||
# disko.nixosModules.disko
|
||||
# TODO: add sops and disko modules somewhere
|
||||
# ];
|
||||
# systems.hosts.pianonix.modules = with inputs; [ nixos-hardware.nixosModules.raspberry-pi-4 ];
|
||||
# TODO: add rpi4 hardware modules
|
||||
|
||||
# deploy-rs node configuration
|
||||
deploy.nodes = {
|
||||
pianonix = {
|
||||
hostname = "pianonix.local";
|
||||
profiles.system = {
|
||||
sshUser = "root";
|
||||
user = "root";
|
||||
path = inputs.deploy-rs.lib.aarch64-linux.activate.nixos self.nixosConfigurations.pianonix;
|
||||
confirmTimeout = 90; # default: 30s; raspberrypi takes a little longer restarting services
|
||||
};
|
||||
kardorf = lib.nixosSystem {
|
||||
modules = [./hosts/kardorf];
|
||||
specialArgs = {
|
||||
inherit inputs outputs;
|
||||
};
|
||||
|
||||
builder = {
|
||||
hostname = "builder.julian-mutter.de";
|
||||
profiles.system = {
|
||||
sshUser = "root";
|
||||
user = "root";
|
||||
path = inputs.deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.builder;
|
||||
remoteBuild = true;
|
||||
};
|
||||
};
|
||||
builder = lib.nixosSystem {
|
||||
modules = [./hosts/builder];
|
||||
specialArgs = {
|
||||
inherit inputs outputs;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# Standalone HM
|
||||
homeConfigurations = {
|
||||
# Main laptop
|
||||
"julian@aspi" = lib.homeManagerConfiguration {
|
||||
modules = [
|
||||
./homes/julian/aspi.nix
|
||||
./homes/julian/hm-standalone-config.nix
|
||||
];
|
||||
pkgs = pkgsFor.x86_64-linux;
|
||||
extraSpecialArgs = {
|
||||
inherit inputs outputs;
|
||||
};
|
||||
};
|
||||
# Media server (RPi)
|
||||
"julian@pianonix" = lib.homeManagerConfiguration {
|
||||
modules = [
|
||||
./homes/julian/pianonix.nix
|
||||
./homes/julian/hm-standalone-config.nix
|
||||
];
|
||||
pkgs = pkgsFor.aarch64-linux;
|
||||
extraSpecialArgs = {
|
||||
inherit inputs outputs;
|
||||
};
|
||||
};
|
||||
"julian@kardorf" = lib.homeManagerConfiguration {
|
||||
modules = [
|
||||
./homes/julian/kardorf.nix
|
||||
./homes/julian/hm-standalone-config.nix
|
||||
];
|
||||
pkgs = pkgsFor.x86_64-linux;
|
||||
extraSpecialArgs = {
|
||||
inherit inputs outputs;
|
||||
};
|
||||
};
|
||||
"julian@v3ms" = lib.homeManagerConfiguration {
|
||||
modules = [
|
||||
./homes/julian/v3ms
|
||||
./homes/julian/hm-standalone-config.nix
|
||||
];
|
||||
pkgs = pkgsFor.x86_64-linux;
|
||||
extraSpecialArgs = {
|
||||
inherit inputs outputs;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# deploy-rs node configuration
|
||||
deploy.nodes = {
|
||||
pianonix = {
|
||||
hostname = "pianonix.local";
|
||||
profiles.system = {
|
||||
sshUser = "root";
|
||||
user = "root";
|
||||
path = inputs.deploy-rs.lib.aarch64-linux.activate.nixos self.nixosConfigurations.pianonix;
|
||||
confirmTimeout = 90; # default: 30s; raspberrypi takes a little longer restarting services
|
||||
};
|
||||
};
|
||||
|
||||
builder = {
|
||||
hostname = "builder.julian-mutter.de";
|
||||
profiles.system = {
|
||||
sshUser = "root";
|
||||
user = "root";
|
||||
path = inputs.deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.builder;
|
||||
remoteBuild = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
@ -1,29 +1,56 @@
|
||||
{
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{
|
||||
imports = [
|
||||
./global
|
||||
|
||||
./features/fish
|
||||
./features/direnv
|
||||
./features/topgrade
|
||||
./features/neovim
|
||||
./features/kitty
|
||||
./features/ghostty
|
||||
./features/wezterm
|
||||
./features/alacritty
|
||||
./features/yazi
|
||||
./features/emacs
|
||||
./features/i3
|
||||
./features/nix-helper
|
||||
./features/desktop
|
||||
|
||||
./features/hyprland
|
||||
|
||||
./features/suites/cli
|
||||
./features/suites/desktop
|
||||
./features/suites/development
|
||||
|
||||
];
|
||||
|
||||
config.terminal = "kitty"; # TODO: only terminal = ???
|
||||
hostName = "aspi";
|
||||
is-nixos = true;
|
||||
terminal = "alacritty";
|
||||
|
||||
# ------- ----------
|
||||
# | eDP-1 | | HDMI-A-1 |
|
||||
# ------- ----------
|
||||
monitors = [
|
||||
{
|
||||
name = "HDMI-A-1";
|
||||
# width = 1680;
|
||||
# height = 1050;
|
||||
workspaces = [
|
||||
"1"
|
||||
"2"
|
||||
"3"
|
||||
"4"
|
||||
"5"
|
||||
];
|
||||
primary = true;
|
||||
}
|
||||
{
|
||||
name = "eDP-1";
|
||||
# width = 1680;
|
||||
# height = 1050;
|
||||
workspaces = [
|
||||
"6"
|
||||
"7"
|
||||
"8"
|
||||
"9"
|
||||
"10"
|
||||
];
|
||||
}
|
||||
];
|
||||
}
|
||||
|
@ -1,3 +0,0 @@
|
||||
import = [
|
||||
"~/.config/alacritty/theme/themes/smoooooth.toml"
|
||||
]
|
@ -1,17 +1,12 @@
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
inputs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
home.packages = with pkgs; [ alacritty ];
|
||||
|
||||
home.file = {
|
||||
".config/alacritty/theme".source = "${inputs.alacritty-theme}";
|
||||
".config/alacritty/alacritty.toml".source = ./alacritty.toml;
|
||||
}: {
|
||||
programs.alacritty = {
|
||||
enable = true;
|
||||
settings = {};
|
||||
theme = "smoooooth";
|
||||
};
|
||||
|
||||
home.sessionVariables.TERMINAL = lib.mkIf (config.terminal == "alacritty") "alacritty";
|
||||
|
@ -1,30 +0,0 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
inherit (inputs.nix-colors.lib-contrib { inherit pkgs; }) gtkThemeFromScheme;
|
||||
cfg = config.modules.desktop;
|
||||
in
|
||||
{
|
||||
# Do not make conditional, just toggle things on and off
|
||||
imports = [ inputs.nix-colors.homeManagerModules.default ]; # TODO: what does this do
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
# home.sessionVariables.GTK_THEME = "Catppuccin-Mocha-Compact-Blue-dark";
|
||||
gtk = {
|
||||
enable = true;
|
||||
theme = {
|
||||
name = inputs.nix-colors.colorschemes.${config.colorscheme}.slug;
|
||||
package = gtkThemeFromScheme { scheme = inputs.nix-colors.colorschemes.${config.colorscheme}; };
|
||||
};
|
||||
iconTheme = {
|
||||
name = "Papirus-Dark";
|
||||
package = pkgs.papirus-icon-theme;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
Before Width: | Height: | Size: 182 KiB |
Before Width: | Height: | Size: 177 KiB |
Before Width: | Height: | Size: 823 KiB |
Before Width: | Height: | Size: 759 KiB |
Before Width: | Height: | Size: 1.6 MiB |
Before Width: | Height: | Size: 1024 KiB |
Before Width: | Height: | Size: 2.8 MiB |
Before Width: | Height: | Size: 1.3 MiB |
Before Width: | Height: | Size: 1.6 MiB |
Before Width: | Height: | Size: 499 KiB |
Before Width: | Height: | Size: 607 KiB |
Before Width: | Height: | Size: 1.2 MiB |
Before Width: | Height: | Size: 719 KiB |
Before Width: | Height: | Size: 464 KiB |
Before Width: | Height: | Size: 831 KiB |
Before Width: | Height: | Size: 159 KiB |
Before Width: | Height: | Size: 354 KiB |
Before Width: | Height: | Size: 861 KiB |
Before Width: | Height: | Size: 98 KiB |
Before Width: | Height: | Size: 1.0 MiB |
Before Width: | Height: | Size: 267 KiB |
Before Width: | Height: | Size: 239 KiB |
Before Width: | Height: | Size: 299 KiB |
Before Width: | Height: | Size: 10 MiB |
Before Width: | Height: | Size: 2.7 MiB |
Before Width: | Height: | Size: 1.6 MiB |
Before Width: | Height: | Size: 4.0 MiB |
Before Width: | Height: | Size: 261 KiB |
Before Width: | Height: | Size: 269 KiB |
Before Width: | Height: | Size: 1.2 MiB |
Before Width: | Height: | Size: 216 KiB |
Before Width: | Height: | Size: 342 KiB |
Before Width: | Height: | Size: 412 KiB |
Before Width: | Height: | Size: 595 KiB |
@ -4,24 +4,19 @@
|
||||
config,
|
||||
...
|
||||
}:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
with lib; let
|
||||
doomRepoUrl = "https://github.com/doomemacs/doomemacs";
|
||||
configRepoUrl = "https://gitlab.julian-mutter.de/julian/emacs-config";
|
||||
in
|
||||
{
|
||||
home.sessionPath = [ "/home/julian/.config/emacs/bin" ];
|
||||
in {
|
||||
home.sessionPath = ["/home/julian/.config/emacs/bin"];
|
||||
|
||||
home.packages =
|
||||
with pkgs;
|
||||
home.packages = with pkgs;
|
||||
[
|
||||
binutils # native-comp needs 'as', provided by this
|
||||
|
||||
## Doom dependencies
|
||||
git
|
||||
(ripgrep.override { withPCRE2 = true; })
|
||||
(ripgrep.override {withPCRE2 = true;})
|
||||
|
||||
## Optional dependencies
|
||||
fd # faster projectile indexing
|
||||
@ -30,12 +25,13 @@ in
|
||||
|
||||
## Module dependencies
|
||||
(aspellWithDicts (
|
||||
ds: with ds; [
|
||||
en
|
||||
en-computers
|
||||
en-science
|
||||
de
|
||||
]
|
||||
ds:
|
||||
with ds; [
|
||||
en
|
||||
en-computers
|
||||
en-science
|
||||
de
|
||||
]
|
||||
))
|
||||
|
||||
hunspell
|
||||
@ -46,6 +42,8 @@ in
|
||||
|
||||
# Code formatters for use with doom emacs
|
||||
nixfmt-rfc-style # nix
|
||||
alejandra # nix
|
||||
|
||||
nixd # nix lsp
|
||||
dockfmt # docker
|
||||
google-java-format # java
|
||||
@ -62,9 +60,9 @@ in
|
||||
|
||||
emacs-all-the-icons-fonts
|
||||
]
|
||||
++ lib.optional config.modules.non-nixos.is-nixos emacs;
|
||||
++ lib.optional config.is-nixos emacs;
|
||||
|
||||
home.activation.installDoomEmacs = lib.home-manager.hm.dag.entryAfter [ "writeBoundary" ] ''
|
||||
home.activation.installDoomEmacs = lib.hm.dag.entryAfter ["writeBoundary"] ''
|
||||
if [ ! -d "/home/julian/.config/emacs" ]; then
|
||||
$DRY_RUN_CMD ${pkgs.git}/bin/git clone --depth=1 --single-branch "${doomRepoUrl}" "/home/julian/.config/emacs"
|
||||
fi
|
||||
|
@ -3,10 +3,7 @@
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
with lib;
|
||||
|
||||
{
|
||||
with lib; {
|
||||
home.file = {
|
||||
".config/starship.toml".source = ./starship.toml;
|
||||
".config/fish/conf.d/last-working-dir.fish".source = ./last-working-dir.fish;
|
||||
|
@ -4,13 +4,10 @@
|
||||
config,
|
||||
...
|
||||
}:
|
||||
|
||||
with lib;
|
||||
|
||||
{
|
||||
with lib; {
|
||||
fonts.fontconfig.enable = true; # required to autoload fonts from packages
|
||||
home.packages = with pkgs; [
|
||||
(nerdfonts.override { fonts = [ "FiraCode" ]; })
|
||||
nerd-fonts.fira-code
|
||||
font-awesome
|
||||
dejavu_fonts
|
||||
noto-fonts
|
||||
|
@ -1,8 +1,13 @@
|
||||
{
|
||||
services.gammastep = {
|
||||
enable = true;
|
||||
latitude = 47.92;
|
||||
longitude = 10.12;
|
||||
provider = "manual";
|
||||
provider = "geoclue2";
|
||||
temperature = {
|
||||
day = 6000;
|
||||
night = 4600;
|
||||
};
|
||||
settings = {
|
||||
general.adjustment-method = "wayland";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
16
homes/julian/features/ghostty/default.nix
Normal file
@ -0,0 +1,16 @@
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
programs.ghostty = {
|
||||
enable = true;
|
||||
enableFishIntegration = true;
|
||||
settings = {
|
||||
theme = "catppuccin-mocha";
|
||||
font-size = 12;
|
||||
};
|
||||
};
|
||||
|
||||
home.sessionVariables.TERMINAL = lib.mkIf (config.terminal == "ghostty") "ghostty";
|
||||
}
|
33
homes/julian/features/gtk/default.nix
Normal file
@ -0,0 +1,33 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}: let
|
||||
inherit (inputs.nix-colors.lib-contrib {inherit pkgs;}) gtkThemeFromScheme;
|
||||
in {
|
||||
# Do not make conditional, just toggle things on and off
|
||||
imports = [inputs.nix-colors.homeManagerModules.default]; # TODO: what does this do
|
||||
|
||||
# home.sessionVariables.GTK_THEME = "Catppuccin-Mocha-Compact-Blue-dark";
|
||||
gtk = {
|
||||
enable = true;
|
||||
theme = {
|
||||
name = inputs.nix-colors.colorschemes.${config.colorscheme.name}.slug;
|
||||
package = gtkThemeFromScheme {
|
||||
scheme = inputs.nix-colors.colorschemes.${config.colorscheme.name};
|
||||
};
|
||||
};
|
||||
iconTheme = {
|
||||
name = "Papirus-Dark";
|
||||
package = pkgs.papirus-icon-theme;
|
||||
};
|
||||
cursorTheme = {
|
||||
package = pkgs.apple-cursor;
|
||||
name = "macOS";
|
||||
size = 24;
|
||||
};
|
||||
};
|
||||
|
||||
xdg.portal.extraPortals = [pkgs.xdg-desktop-portal-gtk];
|
||||
}
|
@ -2,33 +2,79 @@
|
||||
pkgs,
|
||||
inputs,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
inherit (inputs.nix-colors.colorschemes.${builtins.toString config.colorscheme})
|
||||
}: let
|
||||
inherit
|
||||
(inputs.nix-colors.colorschemes.${builtins.toString config.colorscheme.name})
|
||||
palette
|
||||
;
|
||||
in
|
||||
{
|
||||
in {
|
||||
imports = [
|
||||
inputs.hyprland.homeManagerModules.default
|
||||
|
||||
# inputs.hyprland.homeManagerModules.default
|
||||
./waybar
|
||||
./wofi
|
||||
./mako
|
||||
./hyprlock
|
||||
# ./hyprlock
|
||||
./wlogout
|
||||
../gammastep
|
||||
|
||||
./swayidle.nix
|
||||
./swaylock.nix
|
||||
./zathura.nix
|
||||
./waypipe.nix
|
||||
|
||||
./hyprbars.nix
|
||||
];
|
||||
|
||||
xdg.portal = {
|
||||
extraPortals = [pkgs.xdg-desktop-portal-wlr];
|
||||
config.hyprland = {
|
||||
default = [
|
||||
"wlr"
|
||||
"gtk"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
programs.imv.enable = true; # TODO: what is that
|
||||
|
||||
home.packages = with pkgs; [
|
||||
# hyprpicker # TODO
|
||||
# hyprcursor # TODO
|
||||
hyprpicker
|
||||
brightnessctl
|
||||
# grimblast
|
||||
frajul.hyprshot-gui
|
||||
frajul.wl-ocr
|
||||
|
||||
wf-recorder
|
||||
wl-clipboard
|
||||
|
||||
(pkgs.writeShellScriptBin "toggle-screen-mirroring" (
|
||||
builtins.readFile ./toggle-screen-mirroring.sh
|
||||
))
|
||||
|
||||
(pkgs.writeShellScriptBin "correct-workspace-locations" (
|
||||
lib.concatStringsSep "\n" (
|
||||
builtins.concatLists (
|
||||
map (
|
||||
monitor:
|
||||
map (ws: "hyprctl dispatch moveworkspacetomonitor ${ws} ${monitor.name}") monitor.workspaces
|
||||
)
|
||||
config.monitors
|
||||
)
|
||||
)
|
||||
))
|
||||
];
|
||||
|
||||
services.cliphist = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
home.sessionVariables = {
|
||||
MOZ_ENABLE_WAYLAND = 1;
|
||||
QT_QPA_PLATFORM = "wayland";
|
||||
LIBSEAT_BACKEND = "logind";
|
||||
};
|
||||
|
||||
# services.hypridle = {
|
||||
# enable = true;
|
||||
# settings = {
|
||||
@ -66,7 +112,29 @@ in
|
||||
wayland.windowManager.hyprland = {
|
||||
# Whether to enable Hyprland wayland compositor
|
||||
enable = true;
|
||||
package = inputs.hyprland.packages."${pkgs.system}".hyprland; # does only work with nixos-unstable
|
||||
# package = config.lib.nixGL.wrap (
|
||||
# pkgs.hyprland.override {
|
||||
# # nixgl needed?
|
||||
# wrapRuntimeDeps = false;
|
||||
# }
|
||||
# );
|
||||
|
||||
systemd = {
|
||||
enable = true;
|
||||
# Same as default, but stop graphical-session too
|
||||
extraCommands = lib.mkBefore [
|
||||
"systemctl --user stop graphical-session.target"
|
||||
"systemctl --user start hyprland-session.target"
|
||||
];
|
||||
variables = [
|
||||
"DISPLAY"
|
||||
"HYPRLAND_INSTANCE_SIGNATURE"
|
||||
"WAYLAND_DISPLAY"
|
||||
"XDG_CURRENT_DESKTOP"
|
||||
];
|
||||
};
|
||||
|
||||
# package = inputs.hyprland.packages."${pkgs.system}".hyprland; # does only work with nixos-unstable
|
||||
|
||||
# The hyprland package to use (simplifies use of plugins)
|
||||
# package = inputs.hyprland.packages.${pkgs.system}.hyprland;
|
||||
@ -75,23 +143,29 @@ in
|
||||
|
||||
# Optional
|
||||
# Whether to enable hyprland-session.target on hyprland startup
|
||||
systemd.enable = true;
|
||||
# systemd.enable = true;
|
||||
# Make PATH available to systemd services
|
||||
systemd.variables = [ "--all" ];
|
||||
# systemd.variables = [ "--all" ];
|
||||
|
||||
plugins = [
|
||||
inputs.hyprland-plugins.packages.${pkgs.system}.hyprbars # does only work with nixos-unstable
|
||||
# inputs.hyprland-plugins.packages.${pkgs.system}.hyprbars # does only work with nixos-unstable
|
||||
# hyprlandPlugins.hyprbars
|
||||
];
|
||||
|
||||
settings = {
|
||||
"$mod" = "SUPER";
|
||||
|
||||
# Environment variables programs like emacs have access to
|
||||
env = "TERMINAL,${config.terminal}";
|
||||
|
||||
# Monitors
|
||||
monitor = ",preferred,auto,auto";
|
||||
monitor = ",preferred,auto,1";
|
||||
|
||||
# Autostart
|
||||
exec-once = [ "firefox" ];
|
||||
exec-once = [
|
||||
(lib.getExe pkgs.firefox)
|
||||
(lib.getExe pkgs.waybar)
|
||||
];
|
||||
|
||||
# Look and Feel
|
||||
general = {
|
||||
@ -100,42 +174,65 @@ in
|
||||
|
||||
layout = "dwindle";
|
||||
|
||||
"col.active_border" = "0xff${palette.base0C} 0xff${palette.base0D} 270deg";
|
||||
"col.inactive_border" = "0xff${palette.base00}";
|
||||
# "col.active_border" = "0xff${palette.base0C} 0xff${palette.base0D} 270deg";
|
||||
# "col.inactive_border" = "0xff${palette.base00}";
|
||||
};
|
||||
|
||||
decoration = {
|
||||
# power saving
|
||||
blur.enabled = false;
|
||||
# power saving
|
||||
drop_shadow = false;
|
||||
shadow.enabled = false;
|
||||
};
|
||||
|
||||
# Dwindle layout
|
||||
dwindle = {
|
||||
pseudotile = true; # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
|
||||
preserve_split = true; # You probably want this
|
||||
no_gaps_when_only = 2; # with border
|
||||
smart_split = false;
|
||||
smart_resizing = false;
|
||||
force_split = 2;
|
||||
# no_gaps_when_only = 2; # with border
|
||||
};
|
||||
|
||||
# Master layout
|
||||
master = {
|
||||
new_status = "slave";
|
||||
no_gaps_when_only = 2; # with border
|
||||
# no_gaps_when_only = 2; # with border
|
||||
mfact = 0.5; # Do not make master bigger
|
||||
};
|
||||
|
||||
animations = {
|
||||
enabled = true;
|
||||
|
||||
animation = [
|
||||
"windows,1,3,default,slide"
|
||||
"fade,1,3,default"
|
||||
"layers,1,3,default,slide"
|
||||
"border,1,3,default"
|
||||
"workspaces,1,3,default,slide"
|
||||
];
|
||||
};
|
||||
|
||||
exec = [
|
||||
"hyprctl setcursor ${config.gtk.cursorTheme.name} ${toString config.gtk.cursorTheme.size}"
|
||||
"correct-workspace-locations"
|
||||
];
|
||||
|
||||
misc = {
|
||||
# disable auto polling for config file changes
|
||||
disable_autoreload = true;
|
||||
|
||||
force_default_wallpaper = 0;
|
||||
|
||||
# we do, in fact, want direct scanout
|
||||
# no_direct_scanout = false;
|
||||
vfr = true; # power saving
|
||||
};
|
||||
|
||||
render = {
|
||||
# we do, in fact, want direct scanout
|
||||
direct_scanout = true;
|
||||
};
|
||||
|
||||
# Input
|
||||
input = {
|
||||
kb_layout = "de";
|
||||
@ -155,18 +252,17 @@ in
|
||||
];
|
||||
|
||||
# Workspace rules
|
||||
workspace = [
|
||||
"1, monitor:HDMI-A-1"
|
||||
"2, monitor:HDMI-A-1"
|
||||
"3, monitor:HDMI-A-1"
|
||||
"4, monitor:HDMI-A-1"
|
||||
"5, monitor:HDMI-A-1"
|
||||
"6, monitor:eDP-1"
|
||||
"7, monitor:eDP-1"
|
||||
"8, monitor:eDP-1"
|
||||
"9, monitor:eDP-1"
|
||||
"10, monitor:eDP-1"
|
||||
];
|
||||
workspace =
|
||||
[
|
||||
# smart gaps (none when only one window in workspace)
|
||||
"w[t1], gapsin:0, gapsout:0, border:1"
|
||||
"w[tg1], gapsin:0, gapsout:0, border:1"
|
||||
"f[1], gapsin:0, gapsout:0, border:1"
|
||||
]
|
||||
# builds like "1, e-DP1" "2, HDMI-1" etc.
|
||||
++ builtins.concatLists (
|
||||
map (monitor: map (ws: "${ws}, monitor:${monitor.name}") monitor.workspaces) config.monitors
|
||||
);
|
||||
|
||||
# Mouse binds
|
||||
bindm = [
|
||||
@ -175,115 +271,138 @@ in
|
||||
];
|
||||
|
||||
# binds
|
||||
bind = [
|
||||
# compositor commands
|
||||
"$mod, Space, focuswindow, floating"
|
||||
"$mod SHIFT, Space, togglefloating,"
|
||||
"$mod, F, fullscreen,"
|
||||
"$mod, X, killactive,"
|
||||
bind =
|
||||
[
|
||||
# compositor commands
|
||||
"$mod, Space, focuswindow, floating"
|
||||
"$mod SHIFT, Space, togglefloating,"
|
||||
"$mod, F, fullscreen,"
|
||||
"$mod, X, killactive,"
|
||||
|
||||
"$mod, O, togglesplit," # dwindle
|
||||
"$mod, O, togglesplit," # dwindle
|
||||
|
||||
# opening applications
|
||||
"$mod, D, exec, wofi --show drun,run"
|
||||
"$mod, E, exec, pcmanfm"
|
||||
"$mod, Return, exec, kitty"
|
||||
"$mod, B, exec, firefox"
|
||||
"$mod, C, exec, qalculate-gtk"
|
||||
# opening applications
|
||||
"$mod, D, exec, wofi --show drun,run"
|
||||
"$mod, E, exec, pcmanfm"
|
||||
"$mod, Return, exec, ${config.terminal}"
|
||||
"$mod, B, exec, firefox"
|
||||
"$mod, C, exec, qalculate-gtk"
|
||||
|
||||
# other commands
|
||||
"$mod SHIFT, E, exec, wlogout -p layer-shell"
|
||||
"$mod, Escape, exec, wlogout -p layer-shell"
|
||||
"$mod, TAB, exec, hyprlock"
|
||||
"$mod SHIFT, R, exec, hyprctl reload"
|
||||
", Print, exec, hyprshot-gui"
|
||||
# other commands
|
||||
"$mod SHIFT, E, exec, wlogout -p layer-shell"
|
||||
"$mod, Escape, exec, wlogout -p layer-shell"
|
||||
"$mod SHIFT, R, exec, hyprctl reload"
|
||||
"$mod, Print, exec, hyprshot-gui"
|
||||
", Print, exec, hyprshot-gui"
|
||||
"$mod, P, exec, toggle-screen-mirroring; correct-workspace-locations"
|
||||
|
||||
# "$mod SHIFT, E, exec, pkill Hyprland"
|
||||
# "$mod, G, togglegroup,"
|
||||
# "$mod SHIFT, N, changegroupactive, f"
|
||||
# "$mod SHIFT, P, changegroupactive, b"
|
||||
# "$mod ALT, ,resizeactive,"
|
||||
# "$mod SHIFT, E, exec, pkill Hyprland"
|
||||
# "$mod, G, togglegroup,"
|
||||
# "$mod SHIFT, N, changegroupactive, f"
|
||||
# "$mod SHIFT, P, changegroupactive, b"
|
||||
# "$mod ALT, ,resizeactive,"
|
||||
|
||||
# media keys
|
||||
", XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+"
|
||||
", XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
|
||||
", XF86AudioPlay, exec, playerctl play-pause"
|
||||
", XF86AudioPause, exec, playerctl pause"
|
||||
", XF86AudioStop, exec, playerctl stop"
|
||||
", XF86AudioNext, exec, playerctl next"
|
||||
", XF86AudioPrev, exec, playerctl previous"
|
||||
", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
|
||||
", XF86MonBrightnessUp, exec, brightnessctl --class backlight set 5%+"
|
||||
", XF86MonBrightnessDown, exec, brightnessctl --class backlight set 5%-"
|
||||
# media keys
|
||||
", XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+"
|
||||
", XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
|
||||
", XF86AudioPlay, exec, playerctl play-pause"
|
||||
", XF86AudioPause, exec, playerctl pause"
|
||||
", XF86AudioStop, exec, playerctl stop"
|
||||
", XF86AudioNext, exec, playerctl next"
|
||||
", XF86AudioPrev, exec, playerctl previous"
|
||||
", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
|
||||
", XF86MonBrightnessUp, exec, brightnessctl --class backlight set 5%+"
|
||||
", XF86MonBrightnessDown, exec, brightnessctl --class backlight set 5%-"
|
||||
|
||||
# move focus
|
||||
"$mod, left, movefocus, l"
|
||||
"$mod, H, movefocus, l"
|
||||
"$mod, right, movefocus, r"
|
||||
"$mod, L, movefocus, r"
|
||||
"$mod, up, movefocus, u"
|
||||
"$mod, K, movefocus, u"
|
||||
"$mod, down, movefocus, d"
|
||||
"$mod, J, movefocus, d"
|
||||
# move focus
|
||||
"$mod, left, movefocus, l"
|
||||
"$mod, H, movefocus, l"
|
||||
"$mod, right, movefocus, r"
|
||||
"$mod, L, movefocus, r"
|
||||
"$mod, up, movefocus, u"
|
||||
"$mod, K, movefocus, u"
|
||||
"$mod, down, movefocus, d"
|
||||
"$mod, J, movefocus, d"
|
||||
|
||||
# move window
|
||||
"$mod SHIFT, left, movewindow, l"
|
||||
"$mod SHIFT, H, movewindow, l"
|
||||
"$mod SHIFT, right, movewindow, r"
|
||||
"$mod SHIFT, L, movewindow, r"
|
||||
"$mod SHIFT, up, movewindow, u"
|
||||
"$mod SHIFT, K, movewindow, u"
|
||||
"$mod SHIFT, down, movewindow, d"
|
||||
"$mod SHIFT, J, movewindow, d"
|
||||
# move window
|
||||
"$mod SHIFT, left, movewindow, l"
|
||||
"$mod SHIFT, H, movewindow, l"
|
||||
"$mod SHIFT, right, movewindow, r"
|
||||
"$mod SHIFT, L, movewindow, r"
|
||||
"$mod SHIFT, up, movewindow, u"
|
||||
"$mod SHIFT, K, movewindow, u"
|
||||
"$mod SHIFT, down, movewindow, d"
|
||||
"$mod SHIFT, J, movewindow, d"
|
||||
|
||||
# Switch workspaces with mainMod + [0-9]
|
||||
"$mod, 1, workspace, 1"
|
||||
"$mod, 2, workspace, 2"
|
||||
"$mod, 3, workspace, 3"
|
||||
"$mod, 4, workspace, 4"
|
||||
"$mod, 5, workspace, 5"
|
||||
"$mod, 6, workspace, 6"
|
||||
"$mod, 7, workspace, 7"
|
||||
"$mod, 8, workspace, 8"
|
||||
"$mod, 9, workspace, 9"
|
||||
"$mod, 0, workspace, 10"
|
||||
# Switch workspaces with mainMod + [0-9]
|
||||
"$mod, 1, workspace, 1"
|
||||
"$mod, 2, workspace, 2"
|
||||
"$mod, 3, workspace, 3"
|
||||
"$mod, 4, workspace, 4"
|
||||
"$mod, 5, workspace, 5"
|
||||
"$mod, 6, workspace, 6"
|
||||
"$mod, 7, workspace, 7"
|
||||
"$mod, 8, workspace, 8"
|
||||
"$mod, 9, workspace, 9"
|
||||
"$mod, 0, workspace, 10"
|
||||
|
||||
# Move active window to a workspace with mainMod + SHIFT + [0-9]
|
||||
"$mod SHIFT, 1, movetoworkspace, 1"
|
||||
"$mod SHIFT, 2, movetoworkspace, 2"
|
||||
"$mod SHIFT, 3, movetoworkspace, 3"
|
||||
"$mod SHIFT, 4, movetoworkspace, 4"
|
||||
"$mod SHIFT, 5, movetoworkspace, 5"
|
||||
"$mod SHIFT, 6, movetoworkspace, 6"
|
||||
"$mod SHIFT, 7, movetoworkspace, 7"
|
||||
"$mod SHIFT, 8, movetoworkspace, 8"
|
||||
"$mod SHIFT, 9, movetoworkspace, 9"
|
||||
"$mod SHIFT, 0, movetoworkspace, 10"
|
||||
# Move active window to a workspace with mainMod + SHIFT + [0-9]
|
||||
"$mod SHIFT, 1, movetoworkspace, 1"
|
||||
"$mod SHIFT, 2, movetoworkspace, 2"
|
||||
"$mod SHIFT, 3, movetoworkspace, 3"
|
||||
"$mod SHIFT, 4, movetoworkspace, 4"
|
||||
"$mod SHIFT, 5, movetoworkspace, 5"
|
||||
"$mod SHIFT, 6, movetoworkspace, 6"
|
||||
"$mod SHIFT, 7, movetoworkspace, 7"
|
||||
"$mod SHIFT, 8, movetoworkspace, 8"
|
||||
"$mod SHIFT, 9, movetoworkspace, 9"
|
||||
"$mod SHIFT, 0, movetoworkspace, 10"
|
||||
|
||||
# Move active window to a workspace without following with mainMod + CTRL + [0-9]
|
||||
"$mod CTRL, 1, movetoworkspacesilent, 1"
|
||||
"$mod CTRL, 2, movetoworkspacesilent, 2"
|
||||
"$mod CTRL, 3, movetoworkspacesilent, 3"
|
||||
"$mod CTRL, 4, movetoworkspacesilent, 4"
|
||||
"$mod CTRL, 5, movetoworkspacesilent, 5"
|
||||
"$mod CTRL, 6, movetoworkspacesilent, 6"
|
||||
"$mod CTRL, 7, movetoworkspacesilent, 7"
|
||||
"$mod CTRL, 8, movetoworkspacesilent, 8"
|
||||
"$mod CTRL, 9, movetoworkspacesilent, 9"
|
||||
"$mod CTRL, 0, movetoworkspacesilent, 10"
|
||||
];
|
||||
# Move active window to a workspace without following with mainMod + CTRL + [0-9]
|
||||
"$mod CTRL, 1, movetoworkspacesilent, 1"
|
||||
"$mod CTRL, 2, movetoworkspacesilent, 2"
|
||||
"$mod CTRL, 3, movetoworkspacesilent, 3"
|
||||
"$mod CTRL, 4, movetoworkspacesilent, 4"
|
||||
"$mod CTRL, 5, movetoworkspacesilent, 5"
|
||||
"$mod CTRL, 6, movetoworkspacesilent, 6"
|
||||
"$mod CTRL, 7, movetoworkspacesilent, 7"
|
||||
"$mod CTRL, 8, movetoworkspacesilent, 8"
|
||||
"$mod CTRL, 9, movetoworkspacesilent, 9"
|
||||
"$mod CTRL, 0, movetoworkspacesilent, 10"
|
||||
]
|
||||
++
|
||||
# Screen lock
|
||||
(
|
||||
let
|
||||
swaylock = lib.getExe config.programs.swaylock.package;
|
||||
in
|
||||
lib.optionals config.programs.swaylock.enable [
|
||||
"$mod,TAB,exec,${swaylock} --daemonize"
|
||||
]
|
||||
)
|
||||
++
|
||||
# Notification manager
|
||||
(
|
||||
let
|
||||
makoctl = lib.getExe' config.services.mako.package "makoctl";
|
||||
in
|
||||
lib.optionals config.services.mako.enable [
|
||||
"$mod,w,exec,${makoctl} dismiss"
|
||||
"$mod SHIFT,W,exec,${makoctl} restore"
|
||||
]
|
||||
);
|
||||
|
||||
plugin = {
|
||||
hyprbars = {
|
||||
bar_text_size = 10;
|
||||
bar_height = 16;
|
||||
bar_text_font = "Ubuntu Nerd Font";
|
||||
bar_precedence_over_border = true;
|
||||
bar_color = "rgb(${palette.base01})";
|
||||
# plugin = {
|
||||
# hyprbars = {
|
||||
# bar_text_size = 10;
|
||||
# bar_height = 16;
|
||||
# bar_text_font = "Ubuntu Nerd Font";
|
||||
# bar_precedence_over_border = true;
|
||||
# bar_color = "rgb(${palette.base01})";
|
||||
|
||||
hyprbars-button = [ "rgb(${palette.base03}), 14, , hyprctl dispatch killactive" ];
|
||||
};
|
||||
};
|
||||
# hyprbars-button = [ "rgb(${palette.base03}), 14, , hyprctl dispatch killactive" ];
|
||||
# };
|
||||
# };
|
||||
};
|
||||
};
|
||||
}
|
||||
|
76
homes/julian/features/hyprland/hyprbars.nix
Normal file
@ -0,0 +1,76 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
outputs,
|
||||
...
|
||||
}: let
|
||||
getHostname = x: lib.last (lib.splitString "@" x);
|
||||
# remoteColorschemes = lib.mapAttrs' (n: v: {
|
||||
# name = getHostname n;
|
||||
# value = v.config.colorscheme.rawColorscheme.colors.${config.colorscheme.mode};
|
||||
# }) outputs.homeConfigurations;
|
||||
rgb = color: "rgb(${lib.removePrefix "#" color})";
|
||||
rgba = color: alpha: "rgba(${lib.removePrefix "#" color}${alpha})";
|
||||
|
||||
hyprbars =
|
||||
(pkgs.hyprlandPlugins.hyprbars.override {
|
||||
# Make sure it's using the same hyprland package as we are
|
||||
hyprland = config.wayland.windowManager.hyprland.package;
|
||||
}).overrideAttrs
|
||||
(old: {
|
||||
# Yeet the initialization notification (I hate it)
|
||||
postPatch =
|
||||
(old.postPatch or "")
|
||||
+ ''
|
||||
${lib.getExe pkgs.gnused} -i '/Initialized successfully/d' main.cpp
|
||||
'';
|
||||
});
|
||||
in {
|
||||
wayland.windowManager.hyprland = {
|
||||
plugins = [hyprbars];
|
||||
settings = {
|
||||
"plugin:hyprbars" = {
|
||||
bar_height = 25;
|
||||
# bar_color = rgba config.colorscheme.colors.surface "dd";
|
||||
# "col.text" = rgb config.colorscheme.colors.primary;
|
||||
# bar_text_font = config.fontProfiles.regular.name;
|
||||
# bar_text_size = config.fontProfiles.regular.size;
|
||||
bar_part_of_window = true;
|
||||
bar_precedence_over_border = true;
|
||||
hyprbars-button = let
|
||||
closeAction = "hyprctl dispatch killactive";
|
||||
|
||||
isOnSpecial = ''hyprctl activewindow -j | jq -re 'select(.workspace.name == "special")' >/dev/null'';
|
||||
moveToSpecial = "hyprctl dispatch movetoworkspacesilent special";
|
||||
moveToActive = "hyprctl dispatch movetoworkspacesilent name:$(hyprctl -j activeworkspace | jq -re '.name')";
|
||||
minimizeAction = "${isOnSpecial} && ${moveToActive} || ${moveToSpecial}";
|
||||
|
||||
maximizeAction = "hyprctl dispatch fullscreen 1";
|
||||
in [
|
||||
# Red close button
|
||||
# "${rgb config.colorscheme.colors.red},12,,${closeAction}"
|
||||
# # Yellow "minimize" (send to special workspace) button
|
||||
# "${rgb config.colorscheme.colors.yellow},12,,${minimizeAction}"
|
||||
# # Green "maximize" (fullscreen) button
|
||||
# "${rgb config.colorscheme.colors.green},12,,${maximizeAction}"
|
||||
];
|
||||
};
|
||||
|
||||
# windowrulev2 =
|
||||
# [
|
||||
# "plugin:hyprbars:bar_color ${rgba config.colorscheme.colors.primary "ee"}, focus:1"
|
||||
# "plugin:hyprbars:title_color ${rgb config.colorscheme.colors.on_primary}, focus:1"
|
||||
# ]
|
||||
# ++ (lib.flatten (
|
||||
# lib.mapAttrsToList (name: colors: [
|
||||
# "plugin:hyprbars:bar_color ${rgba colors.primary_container "dd"}, title:\\[${name}\\].*"
|
||||
# "plugin:hyprbars:title_color ${rgb colors.on_primary_container}, title:\\[${name}\\].*"
|
||||
|
||||
# "plugin:hyprbars:bar_color ${rgba colors.primary "ee"}, title:\\[${name}\\].*, focus:1"
|
||||
# "plugin:hyprbars:title_color ${rgb colors.on_primary}, title:\\[${name}\\].*, focus:1"
|
||||
# ]) remoteColorschemes
|
||||
# ));
|
||||
};
|
||||
};
|
||||
}
|
@ -5,13 +5,12 @@
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
inherit (inputs.nix-colors.colorschemes.${builtins.toString config.modules.desktop.colorscheme})
|
||||
}: let
|
||||
inherit
|
||||
(inputs.nix-colors.colorschemes.${builtins.toString config.colorscheme.name})
|
||||
palette
|
||||
;
|
||||
in
|
||||
{
|
||||
in {
|
||||
programs.hyprlock.enable = true;
|
||||
programs.hyprlock.settings = {
|
||||
general = {
|
||||
|
@ -5,25 +5,26 @@
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
inherit (inputs.nix-colors.colorschemes.${builtins.toString config.modules.desktop.colorscheme})
|
||||
}: let
|
||||
inherit
|
||||
(inputs.nix-colors.colorschemes.${builtins.toString config.colorscheme.name})
|
||||
palette
|
||||
;
|
||||
in
|
||||
{
|
||||
home.packages = with pkgs; [ libnotify ];
|
||||
in {
|
||||
home.packages = with pkgs; [libnotify];
|
||||
|
||||
services.mako = {
|
||||
enable = true;
|
||||
defaultTimeout = 5000; # milliseconds, can be overwritten by notification sender
|
||||
backgroundColor = "#${palette.base00}";
|
||||
textColor = "#${palette.base05}";
|
||||
borderColor = "#${palette.base0D}";
|
||||
progressColor = "over #${palette.base02}";
|
||||
extraConfig = ''
|
||||
[urgency=high]
|
||||
border-color=#${palette.base09}
|
||||
'';
|
||||
settings = {
|
||||
defaultTimeout = "5000"; # milliseconds, can be overwritten by notification sender
|
||||
backgroundColor = "#${palette.base00}";
|
||||
textColor = "#${palette.base05}";
|
||||
borderColor = "#${palette.base0D}";
|
||||
progressColor = "over #${palette.base02}";
|
||||
extraConfig = ''
|
||||
[urgency=high]
|
||||
border-color=#${palette.base09}
|
||||
# '';
|
||||
};
|
||||
};
|
||||
}
|
||||
|
58
homes/julian/features/hyprland/swayidle.nix
Normal file
@ -0,0 +1,58 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: let
|
||||
swaylock = "${config.programs.swaylock.package}/bin/swaylock";
|
||||
pgrep = "${pkgs.procps}/bin/pgrep";
|
||||
pactl = "${pkgs.pulseaudio}/bin/pactl";
|
||||
hyprctl = "${config.wayland.windowManager.hyprland.package}/bin/hyprctl";
|
||||
swaymsg = "${config.wayland.windowManager.sway.package}/bin/swaymsg";
|
||||
|
||||
isLocked = "${pgrep} -x ${swaylock}";
|
||||
lockTime = 4 * 60; # TODO: configurable desktop (10 min)/laptop (4 min)
|
||||
|
||||
# Makes two timeouts: one for when the screen is not locked (lockTime+timeout) and one for when it is.
|
||||
afterLockTimeout = {
|
||||
timeout,
|
||||
command,
|
||||
resumeCommand ? null,
|
||||
}: [
|
||||
{
|
||||
timeout = lockTime + timeout;
|
||||
inherit command resumeCommand;
|
||||
}
|
||||
{
|
||||
command = "${isLocked} && ${command}";
|
||||
inherit resumeCommand timeout;
|
||||
}
|
||||
];
|
||||
in {
|
||||
services.swayidle = {
|
||||
enable = true;
|
||||
systemdTarget = "graphical-session.target";
|
||||
timeouts =
|
||||
# Lock screen
|
||||
[
|
||||
{
|
||||
timeout = lockTime;
|
||||
command = "${swaylock} --daemonize --grace 15";
|
||||
}
|
||||
]
|
||||
++
|
||||
# Turn off displays (hyprland)
|
||||
(lib.optionals config.wayland.windowManager.hyprland.enable (afterLockTimeout {
|
||||
timeout = 300;
|
||||
command = "${hyprctl} dispatch dpms off";
|
||||
resumeCommand = "${hyprctl} dispatch dpms on";
|
||||
}))
|
||||
++
|
||||
# Turn off displays (sway)
|
||||
(lib.optionals config.wayland.windowManager.sway.enable (afterLockTimeout {
|
||||
timeout = 300;
|
||||
command = "${swaymsg} 'output * dpms off'";
|
||||
resumeCommand = "${swaymsg} 'output * dpms on'";
|
||||
}));
|
||||
};
|
||||
}
|
16
homes/julian/features/hyprland/swaylock.nix
Normal file
@ -0,0 +1,16 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
inherit (config.colorscheme) colors;
|
||||
in {
|
||||
programs.swaylock = {
|
||||
enable = true;
|
||||
settings = {
|
||||
color = "000000";
|
||||
ignore-empty-password = true;
|
||||
indicator-idle-visible = false;
|
||||
};
|
||||
};
|
||||
}
|
67
homes/julian/features/hyprland/toggle-screen-mirroring.sh
Normal file
@ -0,0 +1,67 @@
|
||||
#! /usr/bin/env sh
|
||||
|
||||
# A hyprland script for a laptop-external-monitor setup, toggling between which is in use
|
||||
|
||||
# Launch at startup to make hyprland disable the internal monitor if an external monitor is detected and enabled
|
||||
# Additionally it's called with a keybind to switch between a laptop monitor and an external display
|
||||
# Ideally the conditional monitor behaviour was instead done directly in hyprland.conf, but I'm not sure whether that's possible
|
||||
#
|
||||
# Relevant info:
|
||||
# - hyprctl monitors: identifies currently enabled monitors
|
||||
# - hyprctl monitors all: identifies ALL connected monitors - including those not in use
|
||||
#
|
||||
# Suggested use:
|
||||
# Add this line somewhere after the regular monitor configuration in hyprland.conf:
|
||||
# exec = /path/to/hyprland-monitors-toggle.sh
|
||||
# Add a keybind to run this script on demand:
|
||||
# bind =,SomeKeyHere, exec, /path/to/hyprland-monitors-toggle.sh
|
||||
|
||||
#move_all_workspaces_to_monitor() {
|
||||
# TARGET_MONITOR="$1"
|
||||
|
||||
# hyprctl workspaces | grep ^workspace | cut --delimiter ' ' --fields 3 | xargs -I '{}' hyprctl dispatch moveworkspacetomonitor '{}' "$TARGET_MONITOR"
|
||||
|
||||
# # Previous approach
|
||||
# #hyprctl swapactiveworkspaces $EXTERNAL_MONITOR $INTERNAL_MONITOR
|
||||
#}
|
||||
|
||||
# TODO: Detect these instead of hardcoding them
|
||||
INTERNAL_MONITOR="eDP-1"
|
||||
EXTERNAL_MONITOR="HDMI-A-1"
|
||||
|
||||
# NUM_MONITORS=$(hyprctl monitors all | grep --count Monitor)
|
||||
# NUM_MONITORS_ACTIVE=$(hyprctl monitors | grep --count Monitor)
|
||||
|
||||
# Make sure all
|
||||
# if [ "$NUM_MONITORS_ACTIVE" -eq 1 ]; then
|
||||
# move_all_workspaces_to_monitor $INTERNAL_MONITOR
|
||||
# exit
|
||||
# fi
|
||||
|
||||
MIRROR_SETTING=$(hyprctl monitors all -j | jq -r '.[] | select(.name == "HDMI-A-1") | .mirrorOf')
|
||||
|
||||
# # For dynamically toggling which monitor is active later via a keybind
|
||||
# if [ "$NUM_MONITORS" -gt 1 ]; then # Handling multiple monitors
|
||||
# if hyprctl monitors | cut --delimiter ' ' --fields 2 | grep --quiet ^$EXTERNAL_MONITOR; then
|
||||
# hyprctl keyword monitor $INTERNAL_MONITOR,preferred,0x0,1
|
||||
# move_all_workspaces_to_monitor $INTERNAL_MONITOR
|
||||
# hyprctl keyword monitor "$EXTERNAL_MONITOR, disable"
|
||||
# else
|
||||
# hyprctl keyword monitor $EXTERNAL_MONITOR,preferred,0x0,1
|
||||
# move_all_workspaces_to_monitor $EXTERNAL_MONITOR
|
||||
# hyprctl keyword monitor "$INTERNAL_MONITOR, disable"
|
||||
# fi
|
||||
# else # If the external monitor is disconnected without running this script first, it might become the case that no monitor is on - therefore turn on the laptop monitor!
|
||||
# hyprctl keyword monitor $INTERNAL_MONITOR,preferred,0x0,1
|
||||
# move_all_workspaces_to_monitor $INTERNAL_MONITOR
|
||||
# fi
|
||||
|
||||
echo setting:
|
||||
echo $MIRROR_SETTING
|
||||
if [ "$MIRROR_SETTING" = "none" ]; then
|
||||
echo "mirroring..."
|
||||
hyprctl keyword monitor "$EXTERNAL_MONITOR, preferred, auto, 1, mirror, $INTERNAL_MONITOR"
|
||||
else
|
||||
hyprctl keyword monitor "$EXTERNAL_MONITOR, disable" # shortly disable monitor so waybar recognizes the new monitor again # TODO: find better solution
|
||||
hyprctl keyword monitor "$EXTERNAL_MONITOR, preferred, auto, 1"
|
||||
fi
|
@ -12,7 +12,14 @@
|
||||
|
||||
"modules-center": [],
|
||||
|
||||
"modules-right": ["idle_inhibitor", "disk", "cpu", "memory", "pulseaudio", "battery", "clock", "tray"],
|
||||
"modules-right": ["idle_inhibitor", "custom/nixos-update", "disk", "cpu", "memory", "pulseaudio", "battery", "clock", "tray"],
|
||||
|
||||
"custom/nixos-update": {
|
||||
"exec": "frajul-auto-upgrade-status",
|
||||
"return-type": "json",
|
||||
"interval": 2,
|
||||
"on-click-right": "frajul-auto-upgrade-toggle"
|
||||
},
|
||||
|
||||
"hyprland/workspaces": {
|
||||
"on-scroll-up": "hyprctl dispatch workspace m+1",
|
||||
@ -35,6 +42,7 @@
|
||||
},
|
||||
|
||||
"idle_inhibitor": {
|
||||
"start-activated": true,
|
||||
"format": "{icon}",
|
||||
"format-icons": {
|
||||
"activated": "",
|
||||
@ -75,9 +83,9 @@
|
||||
"warning": 30,
|
||||
"critical": 15
|
||||
},
|
||||
"format": "{icon} {capacity}% ({time})",
|
||||
"format-charging": " {capacity}% ({time})",
|
||||
"format-plugged": " {capacity}% ({time})",
|
||||
"format": "{icon} {capacity}%",
|
||||
"format-charging": " {capacity}%",
|
||||
"format-plugged": " {capacity}%",
|
||||
"format-full": "{icon} ",
|
||||
"format-icons": ["", "", "", "", ""]
|
||||
},
|
||||
|
@ -5,16 +5,12 @@
|
||||
lib,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
inherit (inputs.nix-colors.colorschemes.${builtins.toString config.modules.desktop.colorscheme})
|
||||
palette
|
||||
;
|
||||
in
|
||||
{
|
||||
}: let
|
||||
palette = (inputs.nix-colors.colorschemes.${builtins.toString config.colorscheme.name}).palette;
|
||||
in {
|
||||
programs.waybar = {
|
||||
enable = true;
|
||||
systemd.enable = true;
|
||||
# systemd.enable = true;
|
||||
settings.mainBar = builtins.fromJSON (builtins.readFile ./config.json);
|
||||
};
|
||||
|
||||
|
29
homes/julian/features/hyprland/waypipe.nix
Normal file
@ -0,0 +1,29 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
home.packages = [pkgs.waypipe];
|
||||
systemd.user.services = {
|
||||
waypipe-client = {
|
||||
Unit.Description = "Runs waypipe on startup to support SSH forwarding";
|
||||
Service = {
|
||||
ExecStartPre = "${lib.getExe' pkgs.coreutils "mkdir"} %h/.waypipe -p";
|
||||
ExecStart = "${lib.getExe (config.lib.nixGL.wrap pkgs.waypipe)} --socket %h/.waypipe/client.sock client";
|
||||
ExecStopPost = "${lib.getExe' pkgs.coreutils "rm"} -f %h/.waypipe/client.sock";
|
||||
};
|
||||
Install.WantedBy = ["graphical-session.target"];
|
||||
};
|
||||
waypipe-server = {
|
||||
Unit.Description = "Runs waypipe on startup to support SSH forwarding";
|
||||
Service = {
|
||||
Type = "simple";
|
||||
ExecStartPre = "${lib.getExe' pkgs.coreutils "mkdir"} %h/.waypipe -p";
|
||||
ExecStart = "${lib.getExe (config.lib.nixGL.wrap pkgs.waypipe)} --socket %h/.waypipe/server.sock --title-prefix '[%H] ' --login-shell --display wayland-waypipe server -- ${lib.getExe' pkgs.coreutils "sleep"} infinity";
|
||||
ExecStopPost = "${lib.getExe' pkgs.coreutils "rm"} -f %h/.waypipe/server.sock %t/wayland-waypipe";
|
||||
};
|
||||
Install.WantedBy = ["default.target"];
|
||||
};
|
||||
};
|
||||
}
|
@ -5,14 +5,13 @@
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
inherit (inputs.nix-colors.colorschemes.${builtins.toString config.modules.desktop.colorscheme})
|
||||
}: let
|
||||
inherit
|
||||
(inputs.nix-colors.colorschemes.${builtins.toString config.colorscheme.name})
|
||||
palette
|
||||
;
|
||||
in
|
||||
{
|
||||
home.packages = with pkgs; [ wlogout ];
|
||||
in {
|
||||
home.packages = with pkgs; [wlogout];
|
||||
|
||||
# xdg.configFile."wlogout/style.css".text = ''
|
||||
# * {
|
||||
|
@ -5,14 +5,13 @@
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
inherit (inputs.nix-colors.colorschemes.${builtins.toString config.modules.desktop.colorscheme})
|
||||
}: let
|
||||
inherit
|
||||
(inputs.nix-colors.colorschemes.${builtins.toString config.colorscheme.name})
|
||||
palette
|
||||
;
|
||||
in
|
||||
{
|
||||
home.packages = with pkgs; [ wofi ];
|
||||
in {
|
||||
home.packages = with pkgs; [wofi];
|
||||
|
||||
xdg.configFile."wofi/config".source = ./config;
|
||||
xdg.configFile."wofi/style.css".text = ''
|
||||
|
33
homes/julian/features/hyprland/zathura.nix
Normal file
@ -0,0 +1,33 @@
|
||||
{config, ...}: let
|
||||
inherit (config.colorscheme) colors;
|
||||
in {
|
||||
programs.zathura = {
|
||||
enable = true;
|
||||
options = {
|
||||
selection-clipboard = "clipboard";
|
||||
# TODO fix
|
||||
# font = "${config.fontProfiles.regular.name} ${toString config.fontProfiles.regular.size}";
|
||||
# recolor = true;
|
||||
# default-bg = "${colors.surface}";
|
||||
# default-fg = "${colors.surface_bright}";
|
||||
# statusbar-bg = "${colors.surface_container}";
|
||||
# statusbar-fg = "${colors.on_surface_variant}";
|
||||
# inputbar-bg = "${colors.surface}";
|
||||
# inputbar-fg = "${colors.on_secondary}";
|
||||
# notification-bg = "${colors.surface}";
|
||||
# notification-fg = "${colors.on_secondary}";
|
||||
# notification-error-bg = "${colors.error}";
|
||||
# notification-error-fg = "${colors.on_error}";
|
||||
# notification-warning-bg = "${colors.error}";
|
||||
# notification-warning-fg = "${colors.on_error}";
|
||||
# highlight-color = "${colors.tertiary}";
|
||||
# highlight-active-color = "${colors.secondary}";
|
||||
# completion-bg = "${colors.surface_bright}";
|
||||
# completion-fg = "${colors.on_surface}";
|
||||
# completions-highlight-bg = "${colors.secondary}";
|
||||
# completions-highlight-fg = "${colors.on_secondary}";
|
||||
# recolor-lightcolor = "${colors.surface}";
|
||||
# recolor-darkcolor = "${colors.inverse_surface}";
|
||||
};
|
||||
};
|
||||
}
|
@ -1,11 +1,10 @@
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
host,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{
|
||||
modules.rofi.enable = true;
|
||||
}: {
|
||||
imports = [../rofi];
|
||||
|
||||
services.dunst.enable = true;
|
||||
|
||||
@ -32,11 +31,13 @@
|
||||
package = pkgs.i3-gaps;
|
||||
};
|
||||
|
||||
xsession.importedVariables = [ ];
|
||||
xsession.importedVariables = [];
|
||||
|
||||
# Overwrite default home-manager config file
|
||||
xdg.configFile."i3/config".source = lib.mkForce (
|
||||
if host == "kardorf" then ./i3/config-kardorf else ./i3/config
|
||||
if config.hostName == "kardorf"
|
||||
then ./i3/config-kardorf
|
||||
else ./i3/config
|
||||
);
|
||||
|
||||
home.file = {
|
||||
@ -48,5 +49,5 @@
|
||||
".config/i3status-rust/config.toml".source = ./i3status-rust/config.toml;
|
||||
};
|
||||
|
||||
home.sessionPath = [ "/home/julian/.config/i3/scripts" ];
|
||||
home.sessionPath = ["/home/julian/.config/i3/scripts"];
|
||||
}
|
||||
|
@ -142,8 +142,8 @@ bindsym $mod+Shift+9 move container to workspace number $ws9; workspace $ws9
|
||||
bindsym $mod+Shift+0 move container to workspace number $ws10; workspace $ws10
|
||||
|
||||
# Monitor config
|
||||
set $monitor_left "DVI-D-0"
|
||||
set $monitor_right "DVI-D-1"
|
||||
set $monitor_left "DVI-D-1"
|
||||
set $monitor_right "DVI-D-2"
|
||||
|
||||
workspace $ws1 output $monitor_left
|
||||
workspace $ws2 output $monitor_left
|
||||
|
@ -1,27 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
start_if_not_running()
|
||||
{
|
||||
program=$1
|
||||
pidof -sq $program
|
||||
if [ "$?" -eq "1" ]; then
|
||||
start_program $1
|
||||
else
|
||||
echo "$program is already running"
|
||||
fi
|
||||
}
|
||||
|
||||
start_program()
|
||||
{
|
||||
program=$1
|
||||
echo "Starting $program..."
|
||||
$program & > /dev/null
|
||||
}
|
||||
|
||||
i3-msg 'workspace 9; append_layout ~/.config/i3/workspace-messaging.json'
|
||||
start_program nheko
|
||||
sleep 0.1
|
||||
start_program telegram-desktop
|
||||
sleep 0.1
|
||||
start_program thunderbird
|
||||
sleep 0.1
|
@ -1,20 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
HDMI_SINK="alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__hw_sofhdadsp_3__sink"
|
||||
LAPTOP_SINK="alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__hw_sofhdadsp__sink"
|
||||
|
||||
HDMI_ICON=$(pactl info | grep -q $HDMI_SINK && echo "checkbox")
|
||||
LAPTOP_ICON=$(pactl info | grep -q $LAPTOP_SINK && echo "checkbox")
|
||||
|
||||
HDMI_VOLUME=$(pactl get-sink-volume $HDMI_SINK | head -n 1 | awk '{print $5}')
|
||||
LAPTOP_VOLUME=$(pactl get-sink-volume $LAPTOP_SINK | head -n 1 | awk '{print $5}')
|
||||
|
||||
read -r -d '' CONF <<EOF
|
||||
Open Pavucontrol,pavucontrol,pavucontrol
|
||||
|
||||
^sep()
|
||||
HDMI - $HDMI_VOLUME,pactl set-default-sink $HDMI_SINK,$HDMI_ICON
|
||||
Laptop - $LAPTOP_VOLUME,pactl set-default-sink $LAPTOP_SINK,$LAPTOP_ICON
|
||||
EOF
|
||||
|
||||
echo "$CONF" | jgmenu --simple
|
@ -3,9 +3,7 @@
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
}: {
|
||||
programs.kitty = {
|
||||
enable = true;
|
||||
shellIntegration.enableFishIntegration = true;
|
||||
|
@ -3,11 +3,8 @@
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
|
||||
imports = [ inputs.nixvim.homeManagerModules.nixvim ];
|
||||
}: {
|
||||
imports = [inputs.nixvim.homeManagerModules.nixvim];
|
||||
|
||||
home.sessionVariables = {
|
||||
EDITOR = "nvim";
|
||||
@ -39,7 +36,6 @@
|
||||
opts = {
|
||||
number = false;
|
||||
relativenumber = false;
|
||||
|
||||
};
|
||||
clipboard.register = "unnamedplus"; # Use system clipboard
|
||||
|
||||
@ -93,9 +89,9 @@
|
||||
conform-nvim = {
|
||||
enable = true;
|
||||
settings.formatters_by_ft = with pkgs; {
|
||||
lua = [ "stylua" ];
|
||||
python = [ "black" ];
|
||||
nix = [ "nixfmt" ];
|
||||
lua = ["stylua"];
|
||||
python = ["black"];
|
||||
nix = ["nixfmt"];
|
||||
};
|
||||
# extraOptions = {
|
||||
# default_format_opts.lsp_format = "fallback";
|
||||
@ -107,9 +103,9 @@
|
||||
enable = true;
|
||||
autoEnableSources = true;
|
||||
settings.sources = [
|
||||
{ name = "nvim_lsp"; }
|
||||
{ name = "path"; }
|
||||
{ name = "buffer"; }
|
||||
{name = "nvim_lsp";}
|
||||
{name = "path";}
|
||||
{name = "buffer";}
|
||||
];
|
||||
settings.mapping = {
|
||||
"<Tab>" = "cmp.mapping(cmp.mapping.select_next_item(), {'i', 's'})";
|
||||
@ -155,10 +151,9 @@
|
||||
pyright.enable = true;
|
||||
dockerls.enable = true;
|
||||
lua_ls.enable = true;
|
||||
clangd.enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
};
|
||||
}
|
||||
|
@ -1,12 +1,6 @@
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
{pkgs, ...}: {
|
||||
home.sessionVariables = {
|
||||
FLAKE = "/home/julian/.dotfiles";
|
||||
NH_FLAKE = "/home/julian/.dotfiles";
|
||||
};
|
||||
|
||||
home.shellAliases = {
|
||||
@ -14,5 +8,5 @@
|
||||
"hs" = "nh home switch";
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [ nh ];
|
||||
home.packages = with pkgs; [nh];
|
||||
}
|
||||
|
@ -2,13 +2,11 @@
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
}: {
|
||||
# this would need you to config rofi using home-manager
|
||||
# programs.rofi = { enable = true; };
|
||||
|
||||
home.packages = with pkgs; [ rofi ];
|
||||
home.packages = with pkgs; [rofi];
|
||||
|
||||
home.file = {
|
||||
".config/rofi/config.rasi".source = ./config.rasi;
|
||||
|
@ -1,9 +1,4 @@
|
||||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
{pkgs, ...}: {
|
||||
home.packages = with pkgs; [
|
||||
bat
|
||||
du-dust # Like du tree but better
|
||||
|
@ -1,10 +1,6 @@
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{pkgs, ...}: {
|
||||
imports = [../../gtk];
|
||||
|
||||
{
|
||||
services.blueman-applet.enable = true;
|
||||
services.nextcloud-client.enable = true;
|
||||
services.nextcloud-client.startInBackground = true;
|
||||
@ -17,14 +13,14 @@
|
||||
enable = true;
|
||||
extensions = [
|
||||
# Tampermonkey
|
||||
{ id = "dhdgffkkebhmkfjojejmpbldmpobfkfo"; }
|
||||
{id = "dhdgffkkebhmkfjojejmpbldmpobfkfo";}
|
||||
];
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [
|
||||
arandr
|
||||
calibre # ebook manager and viewer
|
||||
digikam
|
||||
# digikam
|
||||
discord
|
||||
# dvdisaster
|
||||
# element-desktop
|
||||
@ -38,12 +34,12 @@
|
||||
# geogebra
|
||||
cheese
|
||||
handbrake
|
||||
kitty # Terminal
|
||||
# kitty # Terminal, already available as feature
|
||||
libnotify
|
||||
libreoffice
|
||||
mate.engrampa
|
||||
nomacs # Image viewer
|
||||
okular # Pdf reader with many features, good for commenting documents
|
||||
kdePackages.okular # Pdf reader with many features, good for commenting documents
|
||||
pavucontrol
|
||||
pdfsam-basic # Split, merge, etc for pdfs
|
||||
qalculate-gtk # Nice gui calculator
|
||||
|
@ -1,10 +1,4 @@
|
||||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
|
||||
{pkgs, ...}: {
|
||||
home.packages = with pkgs; [
|
||||
watchexec # Run command when any file in current dir changes
|
||||
android-tools # adb
|
||||
@ -29,18 +23,23 @@
|
||||
julia-bin
|
||||
(texlive.combine {
|
||||
# for rendering latex in inkscape
|
||||
inherit (texlive)
|
||||
inherit
|
||||
(texlive)
|
||||
scheme-medium
|
||||
standalone
|
||||
amsmath
|
||||
preview
|
||||
# needed for org mode export
|
||||
wrapfig
|
||||
capt-of
|
||||
biblatex
|
||||
;
|
||||
})
|
||||
matlab # Using nix-matlab overlay defined in flake
|
||||
maven
|
||||
nodejs
|
||||
pkg-config # Often needed to build something
|
||||
pwndbg # improved gdb (debugger)
|
||||
# pwndbg # improved gdb (debugger)
|
||||
python3
|
||||
rust-analyzer
|
||||
rustc
|
||||
@ -63,6 +62,7 @@
|
||||
|
||||
## My scripts
|
||||
frajul.deploy-to-pianopi
|
||||
frajul.rtklib
|
||||
|
||||
(pkgs.writeShellScriptBin "matlab-rsp" ''
|
||||
matlab -desktop -sd "/home/julian/git/uwa-channel-model" -softwareopengl
|
||||
|
@ -7,8 +7,7 @@
|
||||
misc.assume_yes = true;
|
||||
misc.no_retry = true;
|
||||
|
||||
pre_commands."Update flake" =
|
||||
"git -C /home/julian/.dotfiles checkout origin/flake-updates -- flake.lock";
|
||||
# pre_commands."Update flake" = "git -C /home/julian/.dotfiles checkout origin/flake-updates -- flake.lock";
|
||||
|
||||
linux.nix_arguments = "--flake /home/julian/.dotfiles";
|
||||
linux.home_manager_arguments = [
|
||||
|
@ -3,9 +3,7 @@
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
}: {
|
||||
programs.wezterm = {
|
||||
enable = true;
|
||||
extraConfig = ''
|
||||
|
@ -2,8 +2,7 @@
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
}: {
|
||||
programs.zoxide.enable = true;
|
||||
programs.zoxide.enableFishIntegration = true;
|
||||
|
||||
@ -27,7 +26,7 @@
|
||||
programs.yazi.enable = true;
|
||||
programs.yazi.enableFishIntegration = true;
|
||||
programs.yazi.settings.manager = {
|
||||
sort_by = "modified";
|
||||
sort_by = "mtime";
|
||||
sort_reverse = true;
|
||||
show_hidden = true;
|
||||
};
|
||||
@ -36,29 +35,29 @@
|
||||
manager.prepend_keymap = [
|
||||
# Override defaults
|
||||
{
|
||||
on = [ "e" ];
|
||||
on = ["e"];
|
||||
run = ''shell --orphan --confirm "pcmanfm &"'';
|
||||
desc = "Open gui file manager";
|
||||
}
|
||||
{
|
||||
on = [ "<C-o>" ];
|
||||
on = ["<C-o>"];
|
||||
run = ''shell "$SHELL" --block --confirm'';
|
||||
desc = "Open shell here";
|
||||
}
|
||||
{
|
||||
on = [ "<C-n>" ];
|
||||
on = ["<C-n>"];
|
||||
run = ''shell 'dragon -x -i -T "$1"' --confirm'';
|
||||
desc = "Dragndrop via dragon";
|
||||
}
|
||||
{
|
||||
on = [ "<Enter>" ];
|
||||
on = ["<Enter>"];
|
||||
run = "plugin --sync smart-enter";
|
||||
desc = "Enter the child directory, or open the file";
|
||||
}
|
||||
];
|
||||
input.prepend_keymap = [
|
||||
{
|
||||
on = [ "<Esc>" ];
|
||||
on = ["<Esc>"];
|
||||
run = "close";
|
||||
desc = "Cancel input";
|
||||
}
|
||||
|
@ -2,13 +2,12 @@
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
}: {
|
||||
home.file = {
|
||||
".config/starship.toml".source = ./starship.toml;
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [ starship ];
|
||||
home.packages = with pkgs; [starship];
|
||||
|
||||
programs.starship = {
|
||||
enable = true;
|
||||
@ -28,14 +27,14 @@
|
||||
enable = true;
|
||||
plugins = [
|
||||
# list of plugins: https://github.com/unixorn/awesome-zsh-plugins
|
||||
{ name = "agkozak/zsh-z"; }
|
||||
{name = "agkozak/zsh-z";}
|
||||
{
|
||||
name = "zsh-users/zsh-completions";
|
||||
}
|
||||
|
||||
# make it behave like fish
|
||||
{ name = "zsh-users/zsh-autosuggestions"; }
|
||||
{ name = "zsh-users/zsh-history-substring-search"; }
|
||||
{name = "zsh-users/zsh-autosuggestions";}
|
||||
{name = "zsh-users/zsh-history-substring-search";}
|
||||
{
|
||||
name = "zsh-users/zsh-syntax-highlighting";
|
||||
} # must be last sourced plugin
|
||||
|
@ -1,16 +1,16 @@
|
||||
{
|
||||
inputs,
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
outputs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
imports = [
|
||||
../features/cli
|
||||
../features/helix
|
||||
] ++ (builtins.attrValues outputs.homeManagerModules);
|
||||
}: {
|
||||
imports =
|
||||
[
|
||||
../features/fonts
|
||||
../features/nix-helper
|
||||
]
|
||||
++ (builtins.attrValues outputs.homeManagerModules);
|
||||
|
||||
nix = {
|
||||
package = lib.mkDefault pkgs.nix;
|
||||
@ -20,10 +20,12 @@
|
||||
"flakes"
|
||||
"ca-derivations"
|
||||
];
|
||||
# warn-dirty = false; # TODO: do I want it? also for systems
|
||||
warn-dirty = false; # TODO: do I want it? also for systems
|
||||
};
|
||||
};
|
||||
|
||||
colorscheme.name = "catppuccin-mocha";
|
||||
|
||||
# systemd.user.startServices = "sd-switch"; # TODO: what is this
|
||||
|
||||
programs = {
|
||||
@ -36,10 +38,7 @@
|
||||
homeDirectory = lib.mkDefault "/home/${config.home.username}";
|
||||
stateVersion = lib.mkDefault "23.11";
|
||||
|
||||
sessionPath = [ "$HOME/.local/bin" ];
|
||||
sessionVariables = {
|
||||
FLAKE = "$HOME/Documents/NixConfig";
|
||||
};
|
||||
sessionPath = ["$HOME/.local/bin"];
|
||||
};
|
||||
|
||||
# TODO: colorscheme
|
||||
@ -51,5 +50,4 @@
|
||||
# home.file = {
|
||||
# ".colorscheme.json".text = builtins.toJSON config.colorscheme;
|
||||
# };
|
||||
|
||||
}
|
||||
|
@ -6,9 +6,11 @@
|
||||
# inherit pkgs;
|
||||
# inherit lib;
|
||||
# };
|
||||
|
||||
{ lib, pkgs, ... }:
|
||||
let
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
package-names = with pkgs; {
|
||||
"x-scheme-handler/tg" = telegram-desktop;
|
||||
"x-scheme-handler/mailto" = thunderbird;
|
||||
@ -40,6 +42,7 @@ let
|
||||
"inode/directory" = pcmanfm;
|
||||
};
|
||||
in
|
||||
lib.mapAttrs (mimeType: package: [
|
||||
"${package}/share/applications/${package.pname}.desktop"
|
||||
]) package-names
|
||||
lib.mapAttrs (mimeType: package: [
|
||||
"${package}/share/applications/${package.pname}.desktop"
|
||||
])
|
||||
package-names
|
||||
|
43
homes/julian/hm-standalone-config.nix
Normal file
@ -0,0 +1,43 @@
|
||||
# Only apply this to home-manager standalone
|
||||
{outputs, ...}: {
|
||||
# Apply overlays
|
||||
nixpkgs = {
|
||||
overlays = builtins.attrValues outputs.overlays;
|
||||
config = {
|
||||
allowUnfree = true;
|
||||
allowUnfreePredicate = _: true; # TODO: what is this
|
||||
permittedInsecurePackages = [
|
||||
"olm-3.2.16"
|
||||
];
|
||||
warn-dirty = false;
|
||||
};
|
||||
};
|
||||
|
||||
# Setup binary caches
|
||||
nix.settings = {
|
||||
substituters = [
|
||||
"https://nix-community.cachix.org"
|
||||
"https://cache.nixos.org/"
|
||||
"https://hyprland.cachix.org"
|
||||
"http://binarycache.julian-mutter.de"
|
||||
];
|
||||
trusted-public-keys = [
|
||||
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
||||
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
|
||||
"binarycache.julian-mutter.de:oJ67uRFwRhNPKL58CHzy3QQLv38Kx7OA1K+6xlEPu7E="
|
||||
];
|
||||
|
||||
trusted-users = [
|
||||
"root"
|
||||
"@wheel"
|
||||
];
|
||||
|
||||
experimental-features = [
|
||||
"nix-command"
|
||||
"flakes"
|
||||
"ca-derivations"
|
||||
];
|
||||
|
||||
# nix.settings. # warn-dirty = false; # TODO: do I want this
|
||||
};
|
||||
}
|
@ -1,57 +1,56 @@
|
||||
{
|
||||
# Snowfall Lib provides a customized `lib` instance with access to your flake's library
|
||||
# as well as the libraries available from your flake's inputs.
|
||||
lib,
|
||||
# An instance of `pkgs` with your overlays and packages applied is also available.
|
||||
pkgs,
|
||||
# You also have access to your flake's inputs.
|
||||
inputs,
|
||||
imports = [
|
||||
./global
|
||||
|
||||
# Additional metadata is provided by Snowfall Lib.
|
||||
namespace, # The namespace used for your flake, defaulting to "internal" if not set.
|
||||
home, # The home architecture for this host (eg. `x86_64-linux`).
|
||||
target, # The Snowfall Lib target for this home (eg. `x86_64-home`).
|
||||
format, # A normalized name for the home target (eg. `home`).
|
||||
virtual, # A boolean to determine whether this home is a virtual target using nixos-generators.
|
||||
host, # The host name for this home.
|
||||
./features/fish
|
||||
./features/direnv
|
||||
./features/topgrade
|
||||
./features/neovim
|
||||
./features/ghostty
|
||||
./features/wezterm
|
||||
./features/yazi
|
||||
./features/emacs
|
||||
|
||||
# All other arguments come from the home home.
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.username = "julian";
|
||||
home.homeDirectory = "/home/julian";
|
||||
# ./features/hyprland
|
||||
./features/i3
|
||||
|
||||
modules = {
|
||||
non-nixos.is-nixos = true;
|
||||
shell = {
|
||||
fish.enable = true;
|
||||
direnv.enable = true;
|
||||
};
|
||||
topgrade.enable = true;
|
||||
neovim.enable = true;
|
||||
# alacritty.enable = true;
|
||||
kitty.enable = true;
|
||||
yazi.enable = true;
|
||||
emacs.enable = true;
|
||||
i3.enable = true;
|
||||
nix-helper.enable = true;
|
||||
./features/suites/cli
|
||||
./features/suites/desktop
|
||||
./features/suites/development
|
||||
];
|
||||
|
||||
desktop.enable = true;
|
||||
fonts.enable = true;
|
||||
hostName = "kardorf";
|
||||
is-nixos = true;
|
||||
terminal = "ghostty";
|
||||
|
||||
suites = {
|
||||
cli.enable = true;
|
||||
desktop.enable = true;
|
||||
development.enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
# Let Home Manager install and manage itself.
|
||||
programs.home-manager.enable = true;
|
||||
|
||||
# ======================== DO NOT CHANGE THIS ========================
|
||||
home.stateVersion = "23.11";
|
||||
# ======================== DO NOT CHANGE THIS ========================
|
||||
# --------- ---------
|
||||
# | DVI-D-1 | | DVI-D-2 |
|
||||
# --------- ---------
|
||||
monitors = [
|
||||
{
|
||||
name = "DVI-D-1";
|
||||
width = 1680;
|
||||
height = 1050;
|
||||
workspaces = [
|
||||
"1"
|
||||
"2"
|
||||
"3"
|
||||
"4"
|
||||
"5"
|
||||
];
|
||||
primary = true;
|
||||
}
|
||||
{
|
||||
name = "DVI-D-2";
|
||||
width = 1680;
|
||||
height = 1050;
|
||||
workspaces = [
|
||||
"6"
|
||||
"7"
|
||||
"8"
|
||||
"9"
|
||||
"10"
|
||||
];
|
||||
}
|
||||
];
|
||||
}
|
||||
|
@ -1,43 +1,18 @@
|
||||
{
|
||||
# Snowfall Lib provides a customized `lib` instance with access to your flake's library
|
||||
# as well as the libraries available from your flake's inputs.
|
||||
lib,
|
||||
# An instance of `pkgs` with your overlays and packages applied is also available.
|
||||
pkgs,
|
||||
# You also have access to your flake's inputs.
|
||||
inputs,
|
||||
{pkgs, ...}: {
|
||||
imports = [
|
||||
./global
|
||||
|
||||
# Additional metadata is provided by Snowfall Lib.
|
||||
namespace, # The namespace used for your flake, defaulting to "internal" if not set.
|
||||
home,
|
||||
target, # The Snowfall Lib target for this home (eg. `x86_64-home`).
|
||||
format, # A normalized name for the home target (eg. `home`).
|
||||
virtual, # A boolean to determine whether this home is a virtual target using nixos-generators.
|
||||
host, # The host name for this home.
|
||||
./features/fish
|
||||
./features/topgrade
|
||||
./features/neovim
|
||||
./features/wezterm
|
||||
./features/yazi
|
||||
./features/gtk
|
||||
];
|
||||
|
||||
# All other arguments come from the home home.
|
||||
config,
|
||||
...
|
||||
}@arguments:
|
||||
{
|
||||
home.username = "julian";
|
||||
home.homeDirectory = "/home/julian";
|
||||
|
||||
modules = {
|
||||
non-nixos.is-nixos = true;
|
||||
|
||||
shell = {
|
||||
fish.enable = true;
|
||||
};
|
||||
yazi.enable = true;
|
||||
topgrade.enable = true;
|
||||
neovim.enable = true;
|
||||
wezterm.enable = true;
|
||||
nix-helper.enable = true;
|
||||
|
||||
desktop.enable = true;
|
||||
fonts.enable = true;
|
||||
};
|
||||
hostName = "pianonix";
|
||||
is-nixos = true;
|
||||
terminal = "wezterm";
|
||||
|
||||
services.syncthing.tray.enable = true;
|
||||
services.syncthing.tray.command = "syncthingtray --wait"; # Wait for tray to become available
|
||||
@ -54,17 +29,9 @@
|
||||
|
||||
# Autostart link
|
||||
home.file = {
|
||||
".config/autostart/sheet-organizer.desktop".source =
|
||||
"${pkgs.sheet-organizer}/share/applications/sheet-organizer.desktop";
|
||||
".config/autostart/sheet-organizer.desktop".source = "${pkgs.sheet-organizer}/share/applications/sheet-organizer.desktop";
|
||||
".config/sheet-organizer/config.toml".text = ''
|
||||
working_directory = "/home/julian/Klavier"
|
||||
'';
|
||||
};
|
||||
|
||||
# Let Home Manager install and manage itself.
|
||||
programs.home-manager.enable = true;
|
||||
|
||||
# ======================== DO NOT CHANGE THIS ========================
|
||||
home.stateVersion = "23.11";
|
||||
# ======================== DO NOT CHANGE THIS ========================
|
||||
}
|
||||
|
1
homes/julian/ssh.pub
Normal file
@ -0,0 +1 @@
|
||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFjSZYdoF/51F+ykcBAYVCzCPTF5EEigWBL1APiR0h+H
|
@ -1,53 +1,30 @@
|
||||
{
|
||||
# Snowfall Lib provides a customized `lib` instance with access to your flake's library
|
||||
# as well as the libraries available from your flake's inputs.
|
||||
lib,
|
||||
# An instance of `pkgs` with your overlays and packages applied is also available.
|
||||
pkgs,
|
||||
# You also have access to your flake's inputs.
|
||||
inputs,
|
||||
|
||||
# Additional metadata is provided by Snowfall Lib.
|
||||
namespace, # The namespace used for your flake, defaulting to "internal" if not set.
|
||||
home, # The home architecture for this host (eg. `x86_64-linux`).
|
||||
target, # The Snowfall Lib target for this home (eg. `x86_64-home`).
|
||||
format, # A normalized name for the home target (eg. `home`).
|
||||
virtual, # A boolean to determine whether this home is a virtual target using nixos-generators.
|
||||
host, # The host name for this home.
|
||||
|
||||
# All other arguments come from the home home.
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.username = "julian";
|
||||
home.homeDirectory = "/home/julian";
|
||||
}: {
|
||||
imports = [
|
||||
../global
|
||||
|
||||
modules = {
|
||||
non-nixos.is-nixos = false;
|
||||
shell = {
|
||||
fish.enable = true;
|
||||
direnv.enable = true;
|
||||
};
|
||||
topgrade.enable = true;
|
||||
neovim.enable = true;
|
||||
yazi.enable = true;
|
||||
emacs.enable = true;
|
||||
../features/fish
|
||||
../features/direnv
|
||||
../features/topgrade
|
||||
../features/neovim
|
||||
../features/yazi
|
||||
../features/emacs
|
||||
../features/nix-helper
|
||||
];
|
||||
|
||||
nix-helper.enable = true;
|
||||
};
|
||||
hostName = "aspi";
|
||||
is-nixos = false;
|
||||
# terminal = "kitty";
|
||||
|
||||
home.sessionPath = ["/snap/bin"];
|
||||
|
||||
home.packages =
|
||||
lib.lists.concatMap (packages-list-file: import packages-list-file { inherit pkgs; })
|
||||
[
|
||||
./fonts.nix
|
||||
./packages.nix
|
||||
];
|
||||
|
||||
# Let Home Manager install and manage itself.
|
||||
programs.home-manager.enable = true;
|
||||
|
||||
# ======================== DO NOT CHANGE THIS ========================
|
||||
home.stateVersion = "23.11";
|
||||
# ======================== DO NOT CHANGE THIS ========================
|
||||
lib.lists.concatMap (packages-list-file: import packages-list-file {inherit pkgs;})
|
||||
[
|
||||
./fonts.nix
|
||||
./packages.nix
|
||||
];
|
||||
}
|
||||
|
@ -1,8 +1,6 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
with pkgs;
|
||||
[
|
||||
(nerdfonts.override { fonts = [ "FiraCode" ]; })
|
||||
{pkgs, ...}:
|
||||
with pkgs; [
|
||||
nerd-fonts.fira-code
|
||||
font-awesome
|
||||
dejavu_fonts
|
||||
noto-fonts
|
||||
|
@ -1,7 +1,5 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
with pkgs;
|
||||
[
|
||||
{pkgs, ...}:
|
||||
with pkgs; [
|
||||
# Rust setup
|
||||
rustc
|
||||
rustfmt
|
||||
|
@ -1,132 +1,54 @@
|
||||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
imports = [
|
||||
# inputs.hardware.nixosModules.common-cpu-amd # TODO something useful for me?
|
||||
|
||||
./hardware-configuration.nix
|
||||
|
||||
../common/global
|
||||
../common/users/julian
|
||||
../common/optional/binarycaches.nix
|
||||
|
||||
# ../common/optional/greetd.nix
|
||||
../common/optional/pipewire.nix
|
||||
../common/optional/quietboot.nix
|
||||
../common/optional/remote-builder.nix
|
||||
../common/optional/boot-efi.nix
|
||||
|
||||
../common/optional/greetd.nix
|
||||
../common/optional/authentication.nix
|
||||
../common/optional/pcmanfm.nix
|
||||
../common/optional/i3.nix
|
||||
../common/optional/gdm.nix
|
||||
../common/optional/redshift.nix
|
||||
../common/optional/pipewire.nix
|
||||
|
||||
../common/optional/gamemode.nix
|
||||
../common/optional/virtualbox.nix
|
||||
../common/optional/xdg-portal.nix
|
||||
../common/optional/polkit.nix # TODO: maybe not needed!
|
||||
../common/optional/keyring.nix # TODO: maybe not needed!
|
||||
|
||||
../common/optional/podman.nix
|
||||
../common/optional/wireguard.nix
|
||||
../common/optional/flatpak.nix
|
||||
|
||||
../common/optional/avahi.nix
|
||||
];
|
||||
|
||||
boot.binfmt.emulatedSystems = [ "aarch64-linux" ];
|
||||
boot.blacklistedKernelModules = [ "pcspkr" ]; # Disables "beep"
|
||||
|
||||
networking.hostName = "aspi";
|
||||
networking.networkmanager.enable = true;
|
||||
# networking.networkmanager.dns = "systemd-resolved";
|
||||
services.resolved.enable = true;
|
||||
|
||||
time.timeZone = "Europe/Berlin";
|
||||
|
||||
sops.secrets = {
|
||||
"password/aspi".neededForUsers = true; # necessary for setting password
|
||||
};
|
||||
|
||||
hardware.graphics.enable = true;
|
||||
system.stateVersion = "24.05";
|
||||
|
||||
modules = {
|
||||
syncthing = {
|
||||
enable = true;
|
||||
overrideSettings = false;
|
||||
};
|
||||
frajulAutoUpgrade = {
|
||||
enable = true;
|
||||
flakePath = "/home/julian/.dotfiles";
|
||||
};
|
||||
};
|
||||
|
||||
users.mutableUsers = false;
|
||||
|
||||
services.blueman.enable = true;
|
||||
services.upower.enable = true;
|
||||
|
||||
programs.steam.enable = true;
|
||||
|
||||
programs.dconf.enable = true;
|
||||
# TODO: not working
|
||||
services.logind.lidSwitch = "lock";
|
||||
services.logind.lidSwitchDocked = "lock";
|
||||
|
||||
programs.kdeconnect.enable = true;
|
||||
|
||||
# Enable touchpad support (enabled default in most desktopManager).
|
||||
# Enable touchpad support
|
||||
services.libinput.enable = true;
|
||||
|
||||
# This interface is started on boot / switch
|
||||
networking.wg-quick.interfaces = {
|
||||
julian = {
|
||||
configFile = "/etc/wireguard/julian.conf";
|
||||
};
|
||||
};
|
||||
|
||||
# List services that you want to enable:
|
||||
services.openssh.enable = false;
|
||||
services.flatpak.enable = true;
|
||||
|
||||
security.krb5.enable = true;
|
||||
security.krb5.settings = {
|
||||
# domain_realm = {
|
||||
# ".julian-mutter.de" = "julian-mutter.de";
|
||||
# "julian-mutter.de" = "julian-mutter.de";
|
||||
# };
|
||||
libdefaults = {
|
||||
default_realm = "julian-mutter.de";
|
||||
# dns_lookup_realm = true;
|
||||
# dns_lookup_kdc = true;
|
||||
# ticket_lifetime = "24h";
|
||||
# renew_lifetime = "7d";
|
||||
};
|
||||
realms = {
|
||||
"julian-mutter.de" = {
|
||||
kdc = [ "kerberos.julian-mutter.de" ];
|
||||
admin_server = "kerberos-admin.julian-mutter.de";
|
||||
default_domain = "julian-mutter.de";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
virtualisation.docker.enable = true;
|
||||
# hardware.nvidia-container-toolkit.enable = true;
|
||||
# services.xserver.videoDrivers = [ "nvidia" ];
|
||||
hardware.nvidia.open = false;
|
||||
|
||||
# Do not alway generate man-cache, making builds much faster
|
||||
documentation.man.generateCaches = false;
|
||||
|
||||
# MDNS on local network
|
||||
services.avahi = {
|
||||
enable = true;
|
||||
nssmdns4 = true;
|
||||
};
|
||||
|
||||
# Packages needed as root
|
||||
environment.systemPackages = with pkgs; [
|
||||
vim
|
||||
htop
|
||||
mc
|
||||
xorg.xhost
|
||||
pavucontrol
|
||||
frajul.pulseaudio-popup
|
||||
gparted-xhost # needs to be installed as system package so it can be actually opened
|
||||
xclip
|
||||
|
||||
brightnessctl
|
||||
];
|
||||
|
||||
# ======================== DO NOT CHANGE THIS ========================
|
||||
system.stateVersion = "24.05";
|
||||
# ======================== DO NOT CHANGE THIS ========================
|
||||
}
|
||||
|
@ -1,17 +1,22 @@
|
||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||
# and may be overwritten by future invocations. Please make changes
|
||||
# to /etc/nixos/configuration.nix instead.
|
||||
{ config, lib, pkgs, modulesPath, ... }:
|
||||
|
||||
{
|
||||
imports =
|
||||
[ (modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = [ "vmd" "xhci_pci" "ahci" "nvme" "usb_storage" "usbhid" "sd_mod" ];
|
||||
boot.initrd.kernelModules = [ "dm-snapshot" ];
|
||||
boot.kernelModules = [ "kvm-intel" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
boot.initrd.availableKernelModules = [
|
||||
"vmd"
|
||||
"xhci_pci"
|
||||
"ahci"
|
||||
"nvme"
|
||||
"usb_storage"
|
||||
"usbhid"
|
||||
"sd_mod"
|
||||
];
|
||||
boot.initrd.kernelModules = ["dm-snapshot"];
|
||||
boot.kernelModules = ["kvm-intel"];
|
||||
boot.extraModulePackages = [];
|
||||
boot.blacklistedKernelModules = ["pcspkr"]; # Disables "beep"
|
||||
boot.binfmt.emulatedSystems = ["aarch64-linux"];
|
||||
|
||||
boot.initrd.luks.devices = {
|
||||
root = {
|
||||
@ -21,32 +26,42 @@
|
||||
};
|
||||
};
|
||||
|
||||
fileSystems."/" =
|
||||
{ device = "/dev/disk/by-uuid/bbc45be3-75f5-40c5-8427-2a425de8422c";
|
||||
fsType = "btrfs";
|
||||
options = [ "subvol=root" "compress=zstd" ];
|
||||
};
|
||||
|
||||
fileSystems."/home" =
|
||||
{ device = "/dev/disk/by-uuid/bbc45be3-75f5-40c5-8427-2a425de8422c";
|
||||
fsType = "btrfs";
|
||||
options = [ "subvol=home" "compress=zstd" ];
|
||||
};
|
||||
|
||||
fileSystems."/nix" =
|
||||
{ device = "/dev/disk/by-uuid/bbc45be3-75f5-40c5-8427-2a425de8422c";
|
||||
fsType = "btrfs";
|
||||
options = [ "subvol=nix" "compress=zstd" "noatime" ];
|
||||
};
|
||||
|
||||
fileSystems."/boot" =
|
||||
{ device = "/dev/disk/by-uuid/7040-F37C";
|
||||
fsType = "vfat";
|
||||
};
|
||||
|
||||
swapDevices =
|
||||
[ { device = "/dev/disk/by-uuid/26140b4a-0579-406d-a484-35aa31b32e80"; }
|
||||
fileSystems."/" = {
|
||||
device = "/dev/disk/by-uuid/bbc45be3-75f5-40c5-8427-2a425de8422c";
|
||||
fsType = "btrfs";
|
||||
options = [
|
||||
"subvol=root"
|
||||
"compress=zstd"
|
||||
];
|
||||
};
|
||||
|
||||
fileSystems."/home" = {
|
||||
device = "/dev/disk/by-uuid/bbc45be3-75f5-40c5-8427-2a425de8422c";
|
||||
fsType = "btrfs";
|
||||
options = [
|
||||
"subvol=home"
|
||||
"compress=zstd"
|
||||
];
|
||||
};
|
||||
|
||||
fileSystems."/nix" = {
|
||||
device = "/dev/disk/by-uuid/bbc45be3-75f5-40c5-8427-2a425de8422c";
|
||||
fsType = "btrfs";
|
||||
options = [
|
||||
"subvol=nix"
|
||||
"compress=zstd"
|
||||
"noatime"
|
||||
];
|
||||
};
|
||||
|
||||
fileSystems."/boot" = {
|
||||
device = "/dev/disk/by-uuid/7040-F37C";
|
||||
fsType = "vfat";
|
||||
};
|
||||
|
||||
swapDevices = [
|
||||
{device = "/dev/disk/by-uuid/26140b4a-0579-406d-a484-35aa31b32e80";}
|
||||
];
|
||||
|
||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||
@ -59,4 +74,5 @@
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
|
||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
hardware.nvidia.open = false;
|
||||
}
|
||||
|
@ -1,44 +1,15 @@
|
||||
# sudo nixos-rebuild switch --flake .#builder --target-host root@192.168.3.118
|
||||
# or
|
||||
# deploy .#builder
|
||||
{ config, pkgs, ... }:
|
||||
{config, ...}: {
|
||||
imports = [
|
||||
./hardware-configuration.nix
|
||||
|
||||
{
|
||||
imports = [ ./hardware-configuration.nix ];
|
||||
|
||||
# hardware.graphics = {
|
||||
# enable = true;
|
||||
# extraPackages = with pkgs; [
|
||||
# rocmPackages.clr.icd
|
||||
# linuxPackages.amdgpu-pro
|
||||
# ];
|
||||
# };
|
||||
|
||||
# boot.kernelParams = [
|
||||
# "radeon.si_support=0"
|
||||
# "radeon.cik_support=1"
|
||||
# "amdgpu.si_support=0"
|
||||
# "amdgpu.cik_support=1"
|
||||
# ];
|
||||
# boot.extraModulePackages = with config.boot.kernelPackages; [ amdgpu-pro ];
|
||||
# boot.blacklistedKernelModules = [ "radeon" ];
|
||||
|
||||
boot.loader.grub.enable = true;
|
||||
boot.loader.grub.device = "/dev/sda";
|
||||
|
||||
# Emulated systems used as alternative to cross-compiling
|
||||
boot.binfmt.emulatedSystems = [ "aarch64-linux" ];
|
||||
../common/global
|
||||
];
|
||||
|
||||
networking.hostName = "builder";
|
||||
networking.networkmanager.enable = true;
|
||||
|
||||
time.timeZone = "Europe/Berlin";
|
||||
|
||||
modules = {
|
||||
keymap.enable = true;
|
||||
locales.enable = true;
|
||||
sops.enable = true;
|
||||
};
|
||||
system.stateVersion = "23.11";
|
||||
|
||||
users.users.nix = {
|
||||
isNormalUser = true;
|
||||
@ -46,6 +17,7 @@
|
||||
extraGroups = [
|
||||
"networkmanager"
|
||||
"wheel"
|
||||
"docker"
|
||||
];
|
||||
};
|
||||
|
||||
@ -59,17 +31,30 @@
|
||||
substituters = [
|
||||
"https://nix-community.cachix.org"
|
||||
"https://cache.nixos.org/"
|
||||
"https://hyprland.cachix.org"
|
||||
];
|
||||
trusted-public-keys = [
|
||||
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
||||
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
|
||||
];
|
||||
trusted-public-keys = [ "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" ];
|
||||
|
||||
trusted-users = [ "nix" ];
|
||||
trusted-users = ["nix"];
|
||||
max-jobs = "auto";
|
||||
cores = 0;
|
||||
};
|
||||
|
||||
system.autoUpgrade = {
|
||||
enable = true;
|
||||
flake = "git+https://gitlab.julian-mutter.de/julian/dotfiles";
|
||||
flags = [
|
||||
"--recreate-lock-file" # update lock file
|
||||
];
|
||||
dates = "02:13";
|
||||
};
|
||||
|
||||
# optimize store by hardlinking store files
|
||||
nix.optimise.automatic = true;
|
||||
nix.optimise.dates = [ "03:15" ];
|
||||
nix.optimise.dates = ["03:15"];
|
||||
|
||||
# nix.gc.automatic = true;
|
||||
# nix.gc.dates = "daily";
|
||||
@ -84,17 +69,6 @@
|
||||
max-free = ${toString (100 * 1024 * 1024 * 1024)}
|
||||
'';
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
vim
|
||||
htop
|
||||
mc
|
||||
|
||||
# # AMD GPU tools
|
||||
# pciutils
|
||||
# nvtopPackages.amd
|
||||
# linuxPackages.amdgpu-pro
|
||||
];
|
||||
|
||||
nix.nrBuildUsers = 64;
|
||||
|
||||
# prevent memory to get filled
|
||||
@ -208,8 +182,7 @@
|
||||
};
|
||||
|
||||
virtualHosts."binarycache.julian-mutter.de" = {
|
||||
locations."/".proxyPass =
|
||||
"http://${config.services.nix-serve.bindAddress}:${toString config.services.nix-serve.port}";
|
||||
locations."/".proxyPass = "http://${config.services.nix-serve.bindAddress}:${toString config.services.nix-serve.port}";
|
||||
};
|
||||
|
||||
clientMaxBodySize = "2G";
|
||||
@ -224,7 +197,7 @@
|
||||
url = "https://gitlab.julian-mutter.de";
|
||||
name = "builder";
|
||||
tokenFile = config.sops.secrets."gitea_token".path;
|
||||
labels = [ ]; # use default labels
|
||||
labels = []; # use default labels
|
||||
};
|
||||
|
||||
virtualisation.docker.enable = true;
|
||||
@ -238,7 +211,7 @@
|
||||
|
||||
sops.secrets."gitea_token" = {
|
||||
owner = config.users.users.nix.name;
|
||||
sopsFile = ../../../secrets/secrets-builder.yaml;
|
||||
sopsFile = ./secrets.yaml;
|
||||
};
|
||||
|
||||
# =========== Binary Cache ==========
|
||||
@ -248,7 +221,7 @@
|
||||
};
|
||||
|
||||
# =========== Binary Cache with attic ==========
|
||||
sops.secrets."attic_token".sopsFile = ../../../secrets/secrets-builder.yaml;
|
||||
sops.secrets."attic_token".sopsFile = ./secrets.yaml;
|
||||
|
||||
services.atticd = {
|
||||
enable = true;
|
||||
@ -256,7 +229,7 @@
|
||||
settings = {
|
||||
listen = "[::]:8080";
|
||||
|
||||
jwt = { };
|
||||
jwt = {};
|
||||
|
||||
# Data chunking
|
||||
#
|
||||
@ -283,7 +256,16 @@
|
||||
};
|
||||
};
|
||||
|
||||
# ======================== DO NOT CHANGE THIS ========================
|
||||
system.stateVersion = "23.11";
|
||||
# ======================== DO NOT CHANGE THIS ========================
|
||||
services.gitlab-runner.enable = true;
|
||||
# runner for everything else
|
||||
#
|
||||
sops.secrets."gitlab_runner_token".sopsFile = ./secrets.yaml;
|
||||
services.gitlab-runner.services.default = {
|
||||
# File should contain at least these two variables:
|
||||
authenticationTokenConfigFile = config.sops.secrets."gitlab_runner_token".path;
|
||||
dockerImage = "alpine:latest";
|
||||
dockerVolumes = [
|
||||
"/var/run/docker.sock:/var/run/docker.sock"
|
||||
];
|
||||
};
|
||||
}
|
||||
|
@ -1,17 +1,4 @@
|
||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||
# and may be overwritten by future invocations. Please make changes
|
||||
# to /etc/nixos/configuration.nix instead.
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
modulesPath,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
imports = [ (modulesPath + "/profiles/qemu-guest.nix") ];
|
||||
|
||||
{lib, ...}: {
|
||||
boot.initrd.availableKernelModules = [
|
||||
"ata_piix"
|
||||
"uhci_hcd"
|
||||
@ -21,8 +8,8 @@
|
||||
"sr_mod"
|
||||
];
|
||||
# boot.initrd.kernelModules = [ "amdgpu" ]; # GPU support
|
||||
boot.kernelModules = [ ];
|
||||
boot.extraModulePackages = [ ];
|
||||
boot.kernelModules = [];
|
||||
boot.extraModulePackages = [];
|
||||
|
||||
fileSystems."/" = {
|
||||
device = "/dev/disk/by-uuid/f088fe8e-bf3d-4a89-98bd-ead9852d381f";
|
||||
@ -37,4 +24,27 @@
|
||||
# networking.interfaces.ens18.useDHCP = lib.mkDefault true;
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
|
||||
# hardware.graphics = {
|
||||
# enable = true;
|
||||
# extraPackages = with pkgs; [
|
||||
# rocmPackages.clr.icd
|
||||
# linuxPackages.amdgpu-pro
|
||||
# ];
|
||||
# };
|
||||
|
||||
# boot.kernelParams = [
|
||||
# "radeon.si_support=0"
|
||||
# "radeon.cik_support=1"
|
||||
# "amdgpu.si_support=0"
|
||||
# "amdgpu.cik_support=1"
|
||||
# ];
|
||||
# boot.extraModulePackages = with config.boot.kernelPackages; [ amdgpu-pro ];
|
||||
# boot.blacklistedKernelModules = [ "radeon" ];
|
||||
|
||||
boot.loader.grub.enable = true;
|
||||
boot.loader.grub.device = "/dev/sda";
|
||||
|
||||
# Emulated systems used as alternative to cross-compiling
|
||||
boot.binfmt.emulatedSystems = ["aarch64-linux"];
|
||||
}
|
||||
|
16
hosts/common/global/auto-upgrade.nix
Normal file
@ -0,0 +1,16 @@
|
||||
{
|
||||
inputs,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
system.hydraAutoUpgrade = {
|
||||
# Only enable if not dirty
|
||||
enable = inputs.self ? rev;
|
||||
dates = "*:0/10"; # Every 10 minutes
|
||||
instance = "http://hydra.julian-mutter.de";
|
||||
project = "dotfiles";
|
||||
jobset = "main";
|
||||
job = "hosts.${config.networking.hostName}";
|
||||
oldFlakeRef = "self";
|
||||
};
|
||||
}
|
@ -1,68 +1,41 @@
|
||||
# Common config for all hosts
|
||||
|
||||
{
|
||||
inputs,
|
||||
outputs,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
}: {
|
||||
imports =
|
||||
[
|
||||
./fish.nix # fish for admin
|
||||
./locale.nix
|
||||
./nix.nix
|
||||
./openssh.nix
|
||||
./podman.nix
|
||||
./sops.nix
|
||||
./xserver.nix
|
||||
./root.nix
|
||||
]
|
||||
++ [
|
||||
inputs.home-manager.nixosModules.home-manager
|
||||
]
|
||||
++ (builtins.attrValues outputs.nixosModules);
|
||||
|
||||
# Replaces the (modulesPath + "/installer/scan/not-detected.nix") from default hardware-configuration.nix
|
||||
# Enables non-free firmware
|
||||
hardware.enableRedistributableFirmware = true;
|
||||
|
||||
# Networking
|
||||
networking.networkmanager = {
|
||||
enable = true;
|
||||
plugins = with pkgs; [
|
||||
networkmanager-openconnect
|
||||
];
|
||||
};
|
||||
services.resolved.enable = true;
|
||||
|
||||
programs.dconf.enable = true;
|
||||
|
||||
# HM
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.extraSpecialArgs = {
|
||||
inherit inputs outputs;
|
||||
};
|
||||
|
||||
# Apply overlays
|
||||
nixpkgs = {
|
||||
overlays = builtins.attrValues outputs.overlays;
|
||||
config = {
|
||||
allowUnfree = true;
|
||||
};
|
||||
};
|
||||
|
||||
nix.settings.auto-optimise-store = true;
|
||||
nix.settings.experimental-features = [
|
||||
"nix-command"
|
||||
"flakes"
|
||||
];
|
||||
|
||||
# Setup binary caches
|
||||
nix.settings = {
|
||||
substituters = [
|
||||
"https://nix-community.cachix.org"
|
||||
"https://cache.nixos.org/"
|
||||
"https://hyprland.cachix.org"
|
||||
"http://binarycache.julian-mutter.de"
|
||||
];
|
||||
trusted-public-keys = [
|
||||
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
||||
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
|
||||
"binarycache.julian-mutter.de:oJ67uRFwRhNPKL58CHzy3QQLv38Kx7OA1K+6xlEPu7E="
|
||||
];
|
||||
|
||||
trusted-users = [ "@wheel" ]; # needed for devenv to add custom caches
|
||||
};
|
||||
|
||||
nix.gc = {
|
||||
automatic = true;
|
||||
dates = "weekly";
|
||||
options = "--delete-older-than 30d";
|
||||
};
|
||||
|
||||
programs.nix-ld.enable = true;
|
||||
|
||||
}
|
||||
|
@ -19,6 +19,8 @@
|
||||
layout = "de";
|
||||
variant = "";
|
||||
};
|
||||
# Configure console keymap
|
||||
|
||||
console.keyMap = "de";
|
||||
|
||||
time.timeZone = "Europe/Berlin";
|
||||
}
|
||||
|
@ -1,8 +1,23 @@
|
||||
{
|
||||
lib,
|
||||
outputs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
}: {
|
||||
# Apply overlays
|
||||
nixpkgs = {
|
||||
# TODO: apply this to hm and nixos without duplicate code
|
||||
overlays = builtins.attrValues outputs.overlays;
|
||||
config = {
|
||||
nvidia.acceptLicense = true;
|
||||
allowUnfree = true;
|
||||
allowUnfreePredicate = _: true; # TODO: what is this
|
||||
warn-dirty = false;
|
||||
permittedInsecurePackages = [
|
||||
"olm-3.2.16"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
nix.settings.auto-optimise-store = lib.mkDefault true;
|
||||
nix.settings.experimental-features = [
|
||||
"nix-command"
|
||||
@ -11,26 +26,6 @@
|
||||
];
|
||||
# warn-dirty = false;
|
||||
|
||||
# Setup binary caches
|
||||
nix.settings = {
|
||||
substituters = [
|
||||
"https://nix-community.cachix.org"
|
||||
"https://cache.nixos.org/"
|
||||
"https://hyprland.cachix.org"
|
||||
"http://binarycache.julian-mutter.de"
|
||||
];
|
||||
trusted-public-keys = [
|
||||
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
||||
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
|
||||
"binarycache.julian-mutter.de:oJ67uRFwRhNPKL58CHzy3QQLv38Kx7OA1K+6xlEPu7E="
|
||||
];
|
||||
|
||||
trusted-users = [
|
||||
"root"
|
||||
"@wheel"
|
||||
]; # needed for devenv to add custom caches
|
||||
};
|
||||
|
||||
nix.gc = {
|
||||
automatic = true;
|
||||
dates = "weekly";
|
||||
@ -45,5 +40,4 @@
|
||||
# Add each flake input as a registry and nix_path
|
||||
# registry = lib.mapAttrs (_: flake: { inherit flake; }) flakeInputs;
|
||||
# nixPath = lib.mapAttrsToList (n: _: "${n}=flake:${n}") flakeInputs;
|
||||
|
||||
}
|
||||
|