mirror of
https://github.com/librephoenix/nixos-config
synced 2025-01-19 15:15:52 +05:30
Compare commits
No commits in common. "9e72d186614700b0fe495a5c9c09c182f3e0fbc4" and "e858bfefa245cd557591ae9318ec4e0747b608ec" have entirely different histories.
9e72d18661
...
e858bfefa2
|
@ -21,18 +21,16 @@ Using this I have [[./themes][55+ themes]] (I add more sometimes) I can switch b
|
||||||
** Install
|
** Install
|
||||||
I wrote some reinstall notes for myself [[./install.org][here (install.org)]].
|
I wrote some reinstall notes for myself [[./install.org][here (install.org)]].
|
||||||
|
|
||||||
TLDR: You should™ be able to install my dotfiles to a fresh NixOS system with the following experimental script:
|
TLDR: You should™ be able to install my dotfiles to a fresh UEFI NixOS system with the following script:
|
||||||
#+begin_src sh :noeval
|
#+begin_src sh :noeval
|
||||||
nix-shell -p git --command "nix run gitlab:librephoenix/nixos-config --extra-experimental-features nix-command --extra-experimental-features flakes"
|
nix-shell -p git --command "nix run gitlab:librephoenix/nixos-config --extra-experimental-features nix-command --extra-experimental-features flakes"
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
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.
|
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!
|
||||||
|
|
||||||
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.
|
Note: If you're installing this to a VM, Hyprland won't work unless 3D acceleration is enabled.
|
||||||
|
|
||||||
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/:
|
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/homelab/configuration.nix][configuration.nix]] for homelab profile
|
||||||
- [[./profiles/worklab/configuration.nix][configuration.nix]] for worklab profile
|
- [[./profiles/worklab/configuration.nix][configuration.nix]] for worklab profile
|
||||||
|
|
||||||
|
|
60
flake.lock
60
flake.lock
|
@ -5,11 +5,11 @@
|
||||||
"fromYaml": "fromYaml"
|
"fromYaml": "fromYaml"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1708890466,
|
"lastModified": 1705180696,
|
||||||
"narHash": "sha256-LlrC09LoPi8OPYOGPXegD72v+//VapgAqhbOFS3i8sc=",
|
"narHash": "sha256-6TwTHERD+2SX21zvBwmm58mtmgVXHLPu273i04JdH9Y=",
|
||||||
"owner": "SenchoPens",
|
"owner": "SenchoPens",
|
||||||
"repo": "base16.nix",
|
"repo": "base16.nix",
|
||||||
"rev": "665b3c6748534eb766c777298721cece9453fdae",
|
"rev": "b390e87cd404e65ab4d786666351f1292e89162a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -150,11 +150,11 @@
|
||||||
"blocklist-hosts": {
|
"blocklist-hosts": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1709174876,
|
"lastModified": 1708054347,
|
||||||
"narHash": "sha256-aEjfaOnfPxQ0Dd954SWHOA9JyYDJ2m/25FpMHjO9X+w=",
|
"narHash": "sha256-Z6Kz4bRtswzoZt4xroSWfSZKMM+fWpsVQMI+Cy7EfVE=",
|
||||||
"owner": "StevenBlack",
|
"owner": "StevenBlack",
|
||||||
"repo": "hosts",
|
"repo": "hosts",
|
||||||
"rev": "b77a285f5f11ee53023d53cf2bf10cd58fe62567",
|
"rev": "61080e8dadbc9ee10d4567668cdbf017bb9f172e",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -199,11 +199,11 @@
|
||||||
"eaf": {
|
"eaf": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1708834876,
|
"lastModified": 1707263162,
|
||||||
"narHash": "sha256-12gVfkWhoc9y4UKfhp2n+iM8nyCetVgviyShm4mhmDA=",
|
"narHash": "sha256-5/oV93RmytyxRKMHVzpcdb6XusoO1KRFlscPKaNsgIo=",
|
||||||
"owner": "emacs-eaf",
|
"owner": "emacs-eaf",
|
||||||
"repo": "emacs-application-framework",
|
"repo": "emacs-application-framework",
|
||||||
"rev": "ac135be35220786df1e0bcb4f1a1a95d7c0c7183",
|
"rev": "46733de03bcd9f20c54747753aa4fd2669f7b4ce",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -215,11 +215,11 @@
|
||||||
"eaf-browser": {
|
"eaf-browser": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1708834925,
|
"lastModified": 1699540848,
|
||||||
"narHash": "sha256-lfFkz55aG5DhU6p6p/pLCE8UKe9281C8Znwc4HTyY8c=",
|
"narHash": "sha256-VyDwQiYfeEhIEpsl2Tw5hdspNFPC3I9jeSrp80G8IPo=",
|
||||||
"owner": "emacs-eaf",
|
"owner": "emacs-eaf",
|
||||||
"repo": "eaf-browser",
|
"repo": "eaf-browser",
|
||||||
"rev": "26a88c4d0e106b8ac7ae29e62fef42c636fbe8a6",
|
"rev": "1c0076cca287c384f46e5104365f679e94135734",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -466,11 +466,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1709485962,
|
"lastModified": 1708591310,
|
||||||
"narHash": "sha256-rmFB4uE10+LJbcVE4ePgiuHOBlUIjQOeZt4VQVJTU8M=",
|
"narHash": "sha256-8mQGVs8JccWTnORgoLOTh9zvf6Np+x2JzhIc+LDcJ9s=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "d579633ff9915a8f4058d5c439281097e92380a8",
|
"rev": "0e0e9669547e45ea6cca2de4044c1a384fd0fe55",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -504,11 +504,11 @@
|
||||||
"hyprland-plugins": {
|
"hyprland-plugins": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1709512528,
|
"lastModified": 1708270226,
|
||||||
"narHash": "sha256-4haLTurWZgPkzASTIWPqyb7zJhFprBjXPUkdqXAgg4s=",
|
"narHash": "sha256-PCsEiFKBDZ1VKw8rlo8D/J+22gic7ls5zDWcU3AAxGQ=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprland-plugins",
|
"repo": "hyprland-plugins",
|
||||||
"rev": "8d3a0701a26d51c9931b3583f93e7fb3fbcd5110",
|
"rev": "f99822818ec8276cfd6ec99ab60c4708c9884e3d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -582,11 +582,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1709237383,
|
"lastModified": 1708655239,
|
||||||
"narHash": "sha256-cy6ArO4k5qTx+l5o+0mL9f5fa86tYUX3ozE1S+Txlds=",
|
"narHash": "sha256-ZrP/yACUvDB+zbqYJsln4iwotbH6CTZiTkANJ0AgDv4=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "1536926ef5621b09bba54035ae2bb6d806d72ac8",
|
"rev": "cbc4211f0afffe6dfd2478a62615dd5175a13f9a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -597,11 +597,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs-stable": {
|
"nixpkgs-stable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1709309926,
|
"lastModified": 1708566995,
|
||||||
"narHash": "sha256-VZFBtXGVD9LWTecGi6eXrE0hJ/mVB3zGUlHImUs2Qak=",
|
"narHash": "sha256-e/THimsoxxMAHSbwMKov5f5Yg+utTj6XVGEo24Lhx+0=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "79baff8812a0d68e24a836df0a364c678089e2c7",
|
"rev": "3cb4ae6689d2aa3f363516234572613b31212b78",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -876,11 +876,11 @@
|
||||||
"nixpkgs": "nixpkgs_2"
|
"nixpkgs": "nixpkgs_2"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1709431943,
|
"lastModified": 1708654230,
|
||||||
"narHash": "sha256-CqTcEJGITB3rfSuAcWC1QZnbVnIipXmIDbZHfxsAy80=",
|
"narHash": "sha256-f8B3nm0DIsWBmaLHvFvjJnqvFsEEoHxTjE9or5w4nIo=",
|
||||||
"owner": "oxalica",
|
"owner": "oxalica",
|
||||||
"repo": "rust-overlay",
|
"repo": "rust-overlay",
|
||||||
"rev": "362184acf4a991f27fc222864e94a2e81b3c3c9f",
|
"rev": "67853eda5dfe64922b9deb0ebc246a846fe177c7",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -922,11 +922,11 @@
|
||||||
"nixpkgs": "nixpkgs_3"
|
"nixpkgs": "nixpkgs_3"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1708896938,
|
"lastModified": 1708699241,
|
||||||
"narHash": "sha256-oMjkMjeNhDUEpKIofo9+9RdUnmmZ4h0sm+kf6XKdy6k=",
|
"narHash": "sha256-HpRE7W000QQmII9Tt/BBEEL6Io1mzUL6rl82QoRQP3A=",
|
||||||
"owner": "danth",
|
"owner": "danth",
|
||||||
"repo": "stylix",
|
"repo": "stylix",
|
||||||
"rev": "fcff15ac5ffbe81f1c66e352f3167c270d79cdab",
|
"rev": "6c447e8761018fa75dfdc20df6232d67a8cc93f2",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
15
install.org
15
install.org
|
@ -37,9 +37,9 @@ 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"
|
nix-shell -p git --command "nix run gitlab:librephoenix/nixos-config --extra-experimental-features nix-command --extra-experimental-features flakes"
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
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.
|
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!
|
||||||
|
|
||||||
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.
|
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.
|
||||||
|
|
||||||
Note: If you're installing this to a VM, Hyprland won't work unless 3D acceleration is enabled.
|
Note: If you're installing this to a VM, Hyprland won't work unless 3D acceleration is enabled.
|
||||||
|
|
||||||
|
@ -56,8 +56,6 @@ 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.
|
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.
|
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/:
|
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/:
|
||||||
|
@ -70,8 +68,8 @@ At this time, this only works on an existing NixOS install. It also only works i
|
||||||
Future upgrade plans:
|
Future upgrade plans:
|
||||||
- [ ] Be able to install directly from NixOS iso
|
- [ ] 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 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?
|
- [ ] 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)
|
- [ ] ??? (open up an issue if you think there is anything else I should try to figure out)
|
||||||
|
|
||||||
** Manual Install Procedure
|
** Manual Install Procedure
|
||||||
|
@ -101,8 +99,6 @@ let
|
||||||
|
|
||||||
There are many more config options there that you may also want to change as well.
|
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.
|
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/:
|
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/:
|
||||||
|
@ -133,13 +129,10 @@ 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.
|
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=?
|
*** 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. Also, you may want to modify the =dotfilesDir= variable in =flake.nix=.
|
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.
|
||||||
|
|
||||||
*** So I cloned these dotfiles into ~/.dotfiles, and now there are system-level files owned by my user account.. HOW IS THIS SECURE?!
|
*** 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]].
|
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)?
|
*** 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.
|
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)
|
"q" 'helpful-kill-buffers)
|
||||||
|
|
||||||
;;;------ helpful configuration ------;;;
|
;;;------ helpful configuration ------;;;
|
||||||
(add-load-path! "~/.nix-profile/share/emacs/site-lisp/elpa/mu4e-1.12.0")
|
(add-load-path! "~/.nix-profile/share/emacs/site-lisp/elpa/mu4e-1.10.8")
|
||||||
(require 'mu4e)
|
(require 'mu4e)
|
||||||
(require 'mu4e-contrib)
|
(require 'mu4e-contrib)
|
||||||
(require 'mu4e-actions)
|
(require 'mu4e-actions)
|
||||||
|
|
|
@ -1469,7 +1469,7 @@ I don't have this active right now since it's kinda weird with pgtk...
|
||||||
** mu4e Configuration
|
** mu4e Configuration
|
||||||
#+BEGIN_SRC emacs-lisp :tangle config.el
|
#+BEGIN_SRC emacs-lisp :tangle config.el
|
||||||
;;;------ helpful configuration ------;;;
|
;;;------ helpful configuration ------;;;
|
||||||
(add-load-path! "~/.nix-profile/share/emacs/site-lisp/elpa/mu4e-1.12.0")
|
(add-load-path! "~/.nix-profile/share/emacs/site-lisp/elpa/mu4e-1.10.8")
|
||||||
(require 'mu4e)
|
(require 'mu4e)
|
||||||
(require 'mu4e-contrib)
|
(require 'mu4e-contrib)
|
||||||
(require 'mu4e-actions)
|
(require 'mu4e-actions)
|
||||||
|
|
Loading…
Reference in a new issue