mirror of
https://github.com/librephoenix/nixos-config
synced 2025-01-18 22:55:52 +05:30
Compare commits
3 commits
e858bfefa2
...
9e72d18661
Author | SHA1 | Date | |
---|---|---|---|
9e72d18661 | |||
f9f9592848 | |||
a33df41aad |
|
@ -21,16 +21,18 @@ Using this I have [[./themes][55+ themes]] (I add more sometimes) I can switch b
|
|||
** Install
|
||||
I wrote some reinstall notes for myself [[./install.org][here (install.org)]].
|
||||
|
||||
TLDR: You should™ be able to install my dotfiles to a fresh UEFI NixOS system with the following script:
|
||||
TLDR: You should™ be able to install my dotfiles to a fresh NixOS system with the following experimental script:
|
||||
#+begin_src sh :noeval
|
||||
nix-shell -p git --command "nix run gitlab:librephoenix/nixos-config --extra-experimental-features nix-command --extra-experimental-features flakes"
|
||||
#+end_src
|
||||
|
||||
This will clone my dotfiles to =~/.dotfiles=, and switch into both the system and home-manager configurations. Right now it only works on UEFI, and only if your EFI partition is "/boot" (which is what NixOS sets up by default on UEFI). I will try to expand this at some point, but for now, that's all it is!
|
||||
Disclaimer: Ultimately, I can't gaurantee this will work for anyone other than myself, so /use this at your own discretion/. Also my dotfiles are /highly/ opinionated, which you will discover immediately if you try them out.
|
||||
|
||||
Potential Errors: I've only tested it working on UEFI with the default EFI mount point of =/boot=. I've added experimental legacy (BIOS) boot support, but it does rely on a quick and dirty script to find the grub device. If you are testing it using some weird boot configuration for whatever reason, try modifying =bootMountPath= (UEFI) or =grubDevice= (legacy BIOS) in =flake.nix= before install, or else it will complain about not being able to install the bootloader.
|
||||
|
||||
Note: If you're installing this to a VM, Hyprland won't work unless 3D acceleration is enabled.
|
||||
|
||||
Disclaimer: If you install or copy my =homelab= or =worklab= profiles, /CHANGE THE PUBLIC SSH KEYS UNLESS YOU WANT ME TO BE ABLE TO SSH INTO YOUR SERVER. YOU CAN CHANGE OR REMOVE THE SSH KEY IN THE RELEVANT CONFIGURATION.NIX/:
|
||||
Security Disclaimer: If you install or copy my =homelab= or =worklab= profiles, /CHANGE THE PUBLIC SSH KEYS UNLESS YOU WANT ME TO BE ABLE TO SSH INTO YOUR SERVER. YOU CAN CHANGE OR REMOVE THE SSH KEY IN THE RELEVANT CONFIGURATION.NIX/:
|
||||
- [[./profiles/homelab/configuration.nix][configuration.nix]] for homelab profile
|
||||
- [[./profiles/worklab/configuration.nix][configuration.nix]] for worklab profile
|
||||
|
||||
|
|
60
flake.lock
60
flake.lock
|
@ -5,11 +5,11 @@
|
|||
"fromYaml": "fromYaml"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1705180696,
|
||||
"narHash": "sha256-6TwTHERD+2SX21zvBwmm58mtmgVXHLPu273i04JdH9Y=",
|
||||
"lastModified": 1708890466,
|
||||
"narHash": "sha256-LlrC09LoPi8OPYOGPXegD72v+//VapgAqhbOFS3i8sc=",
|
||||
"owner": "SenchoPens",
|
||||
"repo": "base16.nix",
|
||||
"rev": "b390e87cd404e65ab4d786666351f1292e89162a",
|
||||
"rev": "665b3c6748534eb766c777298721cece9453fdae",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -150,11 +150,11 @@
|
|||
"blocklist-hosts": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1708054347,
|
||||
"narHash": "sha256-Z6Kz4bRtswzoZt4xroSWfSZKMM+fWpsVQMI+Cy7EfVE=",
|
||||
"lastModified": 1709174876,
|
||||
"narHash": "sha256-aEjfaOnfPxQ0Dd954SWHOA9JyYDJ2m/25FpMHjO9X+w=",
|
||||
"owner": "StevenBlack",
|
||||
"repo": "hosts",
|
||||
"rev": "61080e8dadbc9ee10d4567668cdbf017bb9f172e",
|
||||
"rev": "b77a285f5f11ee53023d53cf2bf10cd58fe62567",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -199,11 +199,11 @@
|
|||
"eaf": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1707263162,
|
||||
"narHash": "sha256-5/oV93RmytyxRKMHVzpcdb6XusoO1KRFlscPKaNsgIo=",
|
||||
"lastModified": 1708834876,
|
||||
"narHash": "sha256-12gVfkWhoc9y4UKfhp2n+iM8nyCetVgviyShm4mhmDA=",
|
||||
"owner": "emacs-eaf",
|
||||
"repo": "emacs-application-framework",
|
||||
"rev": "46733de03bcd9f20c54747753aa4fd2669f7b4ce",
|
||||
"rev": "ac135be35220786df1e0bcb4f1a1a95d7c0c7183",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -215,11 +215,11 @@
|
|||
"eaf-browser": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1699540848,
|
||||
"narHash": "sha256-VyDwQiYfeEhIEpsl2Tw5hdspNFPC3I9jeSrp80G8IPo=",
|
||||
"lastModified": 1708834925,
|
||||
"narHash": "sha256-lfFkz55aG5DhU6p6p/pLCE8UKe9281C8Znwc4HTyY8c=",
|
||||
"owner": "emacs-eaf",
|
||||
"repo": "eaf-browser",
|
||||
"rev": "1c0076cca287c384f46e5104365f679e94135734",
|
||||
"rev": "26a88c4d0e106b8ac7ae29e62fef42c636fbe8a6",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -466,11 +466,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1708591310,
|
||||
"narHash": "sha256-8mQGVs8JccWTnORgoLOTh9zvf6Np+x2JzhIc+LDcJ9s=",
|
||||
"lastModified": 1709485962,
|
||||
"narHash": "sha256-rmFB4uE10+LJbcVE4ePgiuHOBlUIjQOeZt4VQVJTU8M=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "0e0e9669547e45ea6cca2de4044c1a384fd0fe55",
|
||||
"rev": "d579633ff9915a8f4058d5c439281097e92380a8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -504,11 +504,11 @@
|
|||
"hyprland-plugins": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1708270226,
|
||||
"narHash": "sha256-PCsEiFKBDZ1VKw8rlo8D/J+22gic7ls5zDWcU3AAxGQ=",
|
||||
"lastModified": 1709512528,
|
||||
"narHash": "sha256-4haLTurWZgPkzASTIWPqyb7zJhFprBjXPUkdqXAgg4s=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprland-plugins",
|
||||
"rev": "f99822818ec8276cfd6ec99ab60c4708c9884e3d",
|
||||
"rev": "8d3a0701a26d51c9931b3583f93e7fb3fbcd5110",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -582,11 +582,11 @@
|
|||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1708655239,
|
||||
"narHash": "sha256-ZrP/yACUvDB+zbqYJsln4iwotbH6CTZiTkANJ0AgDv4=",
|
||||
"lastModified": 1709237383,
|
||||
"narHash": "sha256-cy6ArO4k5qTx+l5o+0mL9f5fa86tYUX3ozE1S+Txlds=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "cbc4211f0afffe6dfd2478a62615dd5175a13f9a",
|
||||
"rev": "1536926ef5621b09bba54035ae2bb6d806d72ac8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -597,11 +597,11 @@
|
|||
},
|
||||
"nixpkgs-stable": {
|
||||
"locked": {
|
||||
"lastModified": 1708566995,
|
||||
"narHash": "sha256-e/THimsoxxMAHSbwMKov5f5Yg+utTj6XVGEo24Lhx+0=",
|
||||
"lastModified": 1709309926,
|
||||
"narHash": "sha256-VZFBtXGVD9LWTecGi6eXrE0hJ/mVB3zGUlHImUs2Qak=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "3cb4ae6689d2aa3f363516234572613b31212b78",
|
||||
"rev": "79baff8812a0d68e24a836df0a364c678089e2c7",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -876,11 +876,11 @@
|
|||
"nixpkgs": "nixpkgs_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1708654230,
|
||||
"narHash": "sha256-f8B3nm0DIsWBmaLHvFvjJnqvFsEEoHxTjE9or5w4nIo=",
|
||||
"lastModified": 1709431943,
|
||||
"narHash": "sha256-CqTcEJGITB3rfSuAcWC1QZnbVnIipXmIDbZHfxsAy80=",
|
||||
"owner": "oxalica",
|
||||
"repo": "rust-overlay",
|
||||
"rev": "67853eda5dfe64922b9deb0ebc246a846fe177c7",
|
||||
"rev": "362184acf4a991f27fc222864e94a2e81b3c3c9f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -922,11 +922,11 @@
|
|||
"nixpkgs": "nixpkgs_3"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1708699241,
|
||||
"narHash": "sha256-HpRE7W000QQmII9Tt/BBEEL6Io1mzUL6rl82QoRQP3A=",
|
||||
"lastModified": 1708896938,
|
||||
"narHash": "sha256-oMjkMjeNhDUEpKIofo9+9RdUnmmZ4h0sm+kf6XKdy6k=",
|
||||
"owner": "danth",
|
||||
"repo": "stylix",
|
||||
"rev": "6c447e8761018fa75dfdc20df6232d67a8cc93f2",
|
||||
"rev": "fcff15ac5ffbe81f1c66e352f3167c270d79cdab",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
15
install.org
15
install.org
|
@ -37,10 +37,10 @@ And if you want a single copy-paste solution:
|
|||
nix-shell -p git --command "nix run gitlab:librephoenix/nixos-config --extra-experimental-features nix-command --extra-experimental-features flakes"
|
||||
#+end_src
|
||||
|
||||
This will clone my dotfiles to =~/.dotfiles=, and switch into both the system and home-manager configurations. Right now it only works on UEFI, and only if your EFI partition is "/boot" (which is what NixOS sets up by default on UEFI). I will try to expand this at some point, but for now, that's all it is!
|
||||
|
||||
At a certain point in the install script it will open =nano= (or whatever your $EDITOR is set to) and ask you to edit the =flake.nix=. You can edit as much or as little of the config variables as you like, and it will continue the install after you exit the editor.
|
||||
|
||||
Potential Errors: I've only tested it working on UEFI with the default EFI mount point of =/boot=. I've added experimental legacy (BIOS) boot support, but it does rely on a quick and dirty script to find the grub device. If you are testing it using some weird boot configuration for whatever reason, try modifying =bootMountPath= (UEFI) or =grubDevice= (legacy BIOS) in =flake.nix= before install, or else it will complain about not being able to install the bootloader.
|
||||
|
||||
Note: If you're installing this to a VM, Hyprland won't work unless 3D acceleration is enabled.
|
||||
|
||||
Disclaimer: If you install my =homelab= or =worklab= profiles /CHANGE THE PUBLIC SSH KEYS UNLESS YOU WANT ME TO BE ABLE TO SSH INTO YOUR SERVER. YOU CAN CHANGE OR REMOVE THE SSH KEY IN THE RELEVANT CONFIGURATION.NIX/:
|
||||
|
@ -56,6 +56,8 @@ git clone https://gitlab.com/librephoenix/nixos-config.git ~/.dotfiles
|
|||
|
||||
At a certain point in the install script it will open =nano= (or whatever your =$EDITOR= is set to) and ask you to edit the =flake.nix=. You can edit as much or as little of the config variables as you like, and it will continue the install after you exit the editor.
|
||||
|
||||
Potential Errors: I've only tested it working on UEFI with the default EFI mount point of =/boot=. I've added experimental legacy (BIOS) boot support, but it does rely on a quick and dirty script to find the grub device. If you are testing it using some weird boot configuration for whatever reason, try modifying =bootMountPath= (UEFI) or =grubDevice= (legacy BIOS) in =flake.nix= before install, or else it will complain about not being able to install the bootloader.
|
||||
|
||||
Note: If you're installing this to a VM, Hyprland won't work unless 3D acceleration is enabled.
|
||||
|
||||
Disclaimer: If you install my =homelab= or =worklab= profiles /CHANGE THE PUBLIC SSH KEYS UNLESS YOU WANT ME TO BE ABLE TO SSH INTO YOUR SERVER. YOU CAN CHANGE OR REMOVE THE SSH KEY IN THE RELEVANT CONFIGURATION.NIX/:
|
||||
|
@ -68,8 +70,8 @@ At this time, this only works on an existing NixOS install. It also only works i
|
|||
Future upgrade plans:
|
||||
- [ ] Be able to install directly from NixOS iso
|
||||
- [ ] Be able to install just home-manager config to a non-NixOS Linux distro
|
||||
- [ ] Be able to detect UEFI or BIOS and switch config as needed
|
||||
- [ ] Be able to detect EFI mount point for systemd-boot?
|
||||
- [X] +Be able to detect UEFI or BIOS and switch config as needed+
|
||||
- [ ] ??? (open up an issue if you think there is anything else I should try to figure out)
|
||||
|
||||
** Manual Install Procedure
|
||||
|
@ -99,6 +101,8 @@ let
|
|||
|
||||
There are many more config options there that you may also want to change as well.
|
||||
|
||||
Potential Errors: I've only tested it working on UEFI with the default EFI mount point of =/boot=. I've added experimental legacy (BIOS) boot support, but it does rely on a quick and dirty script to find the grub device. If you are testing it using some weird boot configuration for whatever reason, try modifying =bootMountPath= (UEFI) or =grubDevice= (legacy BIOS) in =flake.nix= before install, or else it will complain about not being able to install the bootloader.
|
||||
|
||||
Note: If you're installing this to a VM, Hyprland won't work unless 3D acceleration is enabled.
|
||||
|
||||
Disclaimer: If you install my =homelab= or =worklab= profiles /CHANGE THE PUBLIC SSH KEYS UNLESS YOU WANT ME TO BE ABLE TO SSH INTO YOUR SERVER. YOU CAN CHANGE OR REMOVE THE SSH KEY IN THE RELEVANT CONFIGURATION.NIX/:
|
||||
|
@ -129,10 +133,13 @@ I have included a script in the [[./themes][themes directory]] named [[./themes/
|
|||
If you're having this error, navigate to the [[./flake.nix][flake.nix]] and select any theme with a good background wallpaper link. As long as it is able to download the new wallpaper, it should be able to build.
|
||||
|
||||
*** Do I have to put the configuration files in =~/.dotfiles=?
|
||||
No. You can put them in literally any directory you want. I just prefer to use =~/.dotfiles= as a convention. If you change the directory, do keep in mind that the above scripts must be modified, replacing =~/.dotfiles= with whatever directory you want to install them to.
|
||||
No. You can put them in literally any directory you want. I just prefer to use =~/.dotfiles= as a convention. If you change the directory, do keep in mind that the above scripts must be modified, replacing =~/.dotfiles= with whatever directory you want to install them to. Also, you may want to modify the =dotfilesDir= variable in =flake.nix=.
|
||||
|
||||
*** So I cloned these dotfiles into ~/.dotfiles, and now there are system-level files owned by my user account.. HOW IS THIS SECURE?!
|
||||
If you're worried about someone modifying your system-level (root configuration) files as your unpriveleged user, see [[./harden.sh][harden.sh]].
|
||||
|
||||
*** I installed this to a VM and when I log in, it crashes and sends me back to the login manager (SDDM)?
|
||||
Enable 3D acceleration for your virtual machine. Hyprland doesn't work without it.
|
||||
|
||||
*** It fails installing with some weird errors about grub or a bootloader?
|
||||
It will 100% fail if you test it with a non-default boot configuration. It might even give this error otherwise! If this is the case, try modifying =bootMountPath= (UEFI) or =grubDevice= (legacy BIOS) in =flake.nix= before installing again.
|
||||
|
|
|
@ -1246,7 +1246,7 @@ https://github.com/magit/magit/issues/460 (@cpitclaudel)."
|
|||
"q" 'helpful-kill-buffers)
|
||||
|
||||
;;;------ helpful configuration ------;;;
|
||||
(add-load-path! "~/.nix-profile/share/emacs/site-lisp/elpa/mu4e-1.10.8")
|
||||
(add-load-path! "~/.nix-profile/share/emacs/site-lisp/elpa/mu4e-1.12.0")
|
||||
(require 'mu4e)
|
||||
(require 'mu4e-contrib)
|
||||
(require 'mu4e-actions)
|
||||
|
|
|
@ -1469,7 +1469,7 @@ I don't have this active right now since it's kinda weird with pgtk...
|
|||
** mu4e Configuration
|
||||
#+BEGIN_SRC emacs-lisp :tangle config.el
|
||||
;;;------ helpful configuration ------;;;
|
||||
(add-load-path! "~/.nix-profile/share/emacs/site-lisp/elpa/mu4e-1.10.8")
|
||||
(add-load-path! "~/.nix-profile/share/emacs/site-lisp/elpa/mu4e-1.12.0")
|
||||
(require 'mu4e)
|
||||
(require 'mu4e-contrib)
|
||||
(require 'mu4e-actions)
|
||||
|
|
Loading…
Reference in a new issue