system

Nix (home-manager) configurations for my computers

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
  48. 48
  49. 49
  50. 50
  51. 51
  52. 52
  53. 53
  54. 54
  55. 55
  56. 56
  57. 57
  58. 58
  59. 59
  60. 60
  61. 61
  62. 62
  63. 63
  64. 64
  65. 65
  66. 66
  67. 67
  68. 68
  69. 69
  70. 70
  71. 71
  72. 72
  73. 73
  74. 74
  75. 75
  76. 76
  77. 77
  78. 78
<!--
Copyright 2023 Shota FUJI <pockawoooh@gmail.com>

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

SPDX-License-Identifier: Apache-2.0
-->

# pocka/system

My systems configuration using Nix/Home Manager.

![Screenshot of the configured Wayland desktop](./screenshot.png)

## Usage

See `outputs.homeConfigurations` section in [`flake.nix`](./flake.nix) for available `<name>`s.

### Local install

1. Clone or Download the repository
2. Run `nix-shell`
3. Inside the spawned shell, run `home-manager switch --flake .#<name>`
4. Exit the shell

Without interactive Bash session: `nix-shell --run "home-manager switch --flake .#<name>"`.

### Remote install

This is handy and useful especially for initial bootstrap, but less reproducible compared to local installation.

1. Make sure Flakes is available on your system
2. Run `nix run home-manager/master -- switch --flake github:pocka/system#<name>`

### Display changes between Home Manager generations

First, find the directory that contains Nix profiles.
For defaults location, see this page: <https://nix.dev/manual/nix/2.18/command-ref/files/profiles>.

Then, run `nix profile diff-closures --profile <profiles directory>/home-manager`.

## Requirements

### `dev-linux`

Due to each softwares' design limitation, the system needs to have these packages.

- [niri](https://github.com/YaLTeR/niri)
- [`pantheon-polkit-agent`](https://archlinux.org/packages/extra/x86_64/pantheon-polkit-agent/) ... The one installed installed using Nix cannot lookup `polkit-agent-helper-1`.
- [swaylock](https://github.com/swaywm/swaylock) ... access to PAM required, which is not possible with regular user Nix installation.

## Programs

### `hm-clean`

`hm-clean` removes obsolete Home Manager generations.

```sh
# Clean obsolete home-manager generations.
hm-clean

# with verbose logging.
hm-clean --verbose
```

## License

[Apache-2.0](./LICENSE)