switch to flake based config
This commit is contained in:
parent
3e366daa1f
commit
a123f87b22
49
flake.lock
Normal file
49
flake.lock
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
{
|
||||||
|
"nodes": {
|
||||||
|
"home-manager": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1687871164,
|
||||||
|
"narHash": "sha256-bBFlPthuYX322xOlpJvkjUBz0C+MOBjZdDOOJJ+G2jU=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"rev": "07c347bb50994691d7b0095f45ebd8838cf6bc38",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"ref": "release-23.05",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1690630041,
|
||||||
|
"narHash": "sha256-gbnvqm5goS9DSKAqGFpq3398aOpwejmq4qWikqmQyRo=",
|
||||||
|
"owner": "NixOs",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "d57e8c535d4cbb07f441c30988ce52eec69db7a8",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOs",
|
||||||
|
"ref": "nixos-23.05",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"inputs": {
|
||||||
|
"home-manager": "home-manager",
|
||||||
|
"nixpkgs": "nixpkgs"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "root",
|
||||||
|
"version": 7
|
||||||
|
}
|
32
flake.nix
Normal file
32
flake.nix
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
rec {
|
||||||
|
|
||||||
|
description = "My various NixOs configurations";
|
||||||
|
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.url = "github:NixOs/nixpkgs/nixos-23.05";
|
||||||
|
home-manager.url = "github:nix-community/home-manager/release-23.05";
|
||||||
|
home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs = { self, nixpkgs, home-manager }: {
|
||||||
|
|
||||||
|
nixosConfigurations.lambda = nixpkgs.lib.nixosSystem {
|
||||||
|
system = "x86_64-linux";
|
||||||
|
modules = [
|
||||||
|
{
|
||||||
|
nix.registry.nixpkgs.flake = nixpkgs;
|
||||||
|
system.configurationRevision = nixpkgs.lib.mkIf (self ? rev) self.rev;
|
||||||
|
}
|
||||||
|
./lambda/configuration.nix
|
||||||
|
home-manager.nixosModules.home-manager
|
||||||
|
{
|
||||||
|
home-manager = {
|
||||||
|
useGlobalPkgs = true;
|
||||||
|
useUserPackages = true;
|
||||||
|
users.rachel = import ./home/rachel.nix;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
188
home/rachel.nix
Normal file
188
home/rachel.nix
Normal file
|
@ -0,0 +1,188 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
let username = "rachel";
|
||||||
|
homeDir = "/home/${username}";
|
||||||
|
SAX2 = pkgs.fetchurl {
|
||||||
|
name = "SAX2";
|
||||||
|
url = "https://abrudz.github.io/SAX2/SAX2.ttf";
|
||||||
|
sha256 = "sha256-DgvDWXO2fnKZNu9EvQOq8GNMTU3PUdp85+/0ZHdRXZc=";
|
||||||
|
|
||||||
|
recursiveHash = true;
|
||||||
|
|
||||||
|
downloadToTemp = true;
|
||||||
|
postFetch = ''
|
||||||
|
mkdir -p "$out/share/fonts/truetype"
|
||||||
|
mv "$downloadedFile" "$out/share/fonts/truetype/SAX2.ttf"
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
home = {
|
||||||
|
username = username;
|
||||||
|
homeDirectory = homeDir;
|
||||||
|
packages = with pkgs; [
|
||||||
|
neofetch
|
||||||
|
pfetch
|
||||||
|
unzip
|
||||||
|
zip
|
||||||
|
xz
|
||||||
|
gzip
|
||||||
|
bzip2
|
||||||
|
p7zip
|
||||||
|
usbutils
|
||||||
|
pciutils
|
||||||
|
nettools
|
||||||
|
nmap
|
||||||
|
arp-scan
|
||||||
|
acpi
|
||||||
|
julia
|
||||||
|
python3
|
||||||
|
ghc
|
||||||
|
firefox
|
||||||
|
sxiv
|
||||||
|
zathura
|
||||||
|
gnupg
|
||||||
|
agda
|
||||||
|
rofi
|
||||||
|
discord
|
||||||
|
pinentry_qt
|
||||||
|
dig
|
||||||
|
xxd
|
||||||
|
mpv
|
||||||
|
zoom-us
|
||||||
|
slack
|
||||||
|
imagemagick
|
||||||
|
ffmpeg
|
||||||
|
sl
|
||||||
|
cowsay
|
||||||
|
lolcat
|
||||||
|
fortune
|
||||||
|
banner
|
||||||
|
yt-dlp
|
||||||
|
libreoffice
|
||||||
|
protonmail-bridge
|
||||||
|
pass
|
||||||
|
protonvpn-cli
|
||||||
|
protonvpn-gui
|
||||||
|
thunderbird
|
||||||
|
tidal-hifi
|
||||||
|
signal-desktop
|
||||||
|
transmission-gtk
|
||||||
|
xclip
|
||||||
|
clinfo
|
||||||
|
glxinfo
|
||||||
|
vulkan-tools
|
||||||
|
obs-studio
|
||||||
|
file
|
||||||
|
gimp
|
||||||
|
SAX2
|
||||||
|
twemoji-color-font
|
||||||
|
bat
|
||||||
|
steam
|
||||||
|
steam-run
|
||||||
|
];
|
||||||
|
stateVersion = "23.05";
|
||||||
|
};
|
||||||
|
|
||||||
|
xdg.userDirs = {
|
||||||
|
enable = true;
|
||||||
|
createDirectories = true;
|
||||||
|
desktop = "${homeDir}";
|
||||||
|
documents = "${homeDir}/doc";
|
||||||
|
download = "${homeDir}/dwn";
|
||||||
|
music = "${homeDir}/music";
|
||||||
|
pictures = "${homeDir}/img";
|
||||||
|
publicShare = "${homeDir}/srv";
|
||||||
|
templates = "${homeDir}/doc/templates";
|
||||||
|
videos = "${homeDir}/vid";
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
programs = {
|
||||||
|
bash = {
|
||||||
|
enable = true;
|
||||||
|
enableCompletion = true;
|
||||||
|
historyFile = "/dev/null";
|
||||||
|
sessionVariables = {
|
||||||
|
PS1 ="\\033[1m\\u\\033[0m@\\033[1m\\h\\033[0m: \\w\nλ ";
|
||||||
|
BROWSER = "firefox";
|
||||||
|
XINITRC = "${homeDir}/bin/xinitrc";
|
||||||
|
XAUTHORITY = "${homeDir}/.local/share/Xauthority";
|
||||||
|
PASH_KEYID = "3E4A909C8FEF6E3783699C79DFC26EF8EDAD6D71";
|
||||||
|
QT_AUTO_SCREEN_FACTOR = 1;
|
||||||
|
EDITOR = "emacsclient";
|
||||||
|
PATH = "${homeDir}/bin:$PATH";
|
||||||
|
NIX_SHELL_PRESERVE_PROMPT=1;
|
||||||
|
};
|
||||||
|
shellAliases = {
|
||||||
|
x = "startx";
|
||||||
|
rm = "rm -i";
|
||||||
|
cal = "cal -m";
|
||||||
|
};
|
||||||
|
initExtra = ''
|
||||||
|
source ~/.profile
|
||||||
|
set -o vi
|
||||||
|
[ "$IN_NIX_SHELL" ] && export PS1="''${PS1%λ }❄ "
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
emacs = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.emacs-gtk;
|
||||||
|
extraPackages = epkgs: with epkgs; with melpaStablePackages; [
|
||||||
|
magit
|
||||||
|
nix-mode
|
||||||
|
julia-repl
|
||||||
|
julia-mode
|
||||||
|
lean-mode
|
||||||
|
proof-general
|
||||||
|
pdf-tools
|
||||||
|
dune
|
||||||
|
tuareg
|
||||||
|
idris-mode
|
||||||
|
haskell-emacs-base
|
||||||
|
multi-vterm
|
||||||
|
dmenu
|
||||||
|
markdown-preview-mode
|
||||||
|
markdown-mode
|
||||||
|
exwm
|
||||||
|
org-superstar
|
||||||
|
org-fragtog
|
||||||
|
visual-fill
|
||||||
|
writeroom-mode
|
||||||
|
haskell-emacs
|
||||||
|
treemacs-evil
|
||||||
|
treemacs
|
||||||
|
solarized-theme
|
||||||
|
doom-modeline
|
||||||
|
all-the-icons-dired
|
||||||
|
page-break-lines
|
||||||
|
all-the-icons
|
||||||
|
dashboard
|
||||||
|
org-evil
|
||||||
|
zotero
|
||||||
|
vterm
|
||||||
|
undo-fu
|
||||||
|
latex-math-preview
|
||||||
|
haskell-mode
|
||||||
|
evil-surround
|
||||||
|
undo-tree
|
||||||
|
evil-org
|
||||||
|
evil
|
||||||
|
evil-commentary
|
||||||
|
evil-leader
|
||||||
|
meow
|
||||||
|
purescript-mode
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
git = {
|
||||||
|
enable = true;
|
||||||
|
userName = "Rachel Lambda Samuelsson";
|
||||||
|
userEmail = "depsterr@protonmail.com";
|
||||||
|
extraConfig = {
|
||||||
|
init.defaultBranch = "master";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,31 +1,17 @@
|
||||||
{ config, pkgs, ... }:
|
{ config, pkgs, ... }:
|
||||||
let SAX2 = pkgs.fetchurl {
|
{
|
||||||
name = "SAX2";
|
|
||||||
url = "https://abrudz.github.io/SAX2/SAX2.ttf";
|
|
||||||
sha256 = "sha256-DgvDWXO2fnKZNu9EvQOq8GNMTU3PUdp85+/0ZHdRXZc=";
|
|
||||||
|
|
||||||
recursiveHash = true;
|
|
||||||
|
|
||||||
downloadToTemp = true;
|
|
||||||
postFetch = ''
|
|
||||||
mkdir -p "$out/share/fonts/truetype"
|
|
||||||
mv "$downloadedFile" "$out/share/fonts/truetype/SAX2.ttf"
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
in
|
|
||||||
rec {
|
|
||||||
|
|
||||||
# [HARDWARE]
|
# [HARDWARE]
|
||||||
imports =
|
imports =
|
||||||
[ # Include the results of the hardware scan.
|
[ # Include the results of the hardware scan.
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
<home-manager/nixos>
|
|
||||||
];
|
];
|
||||||
hardware.opengl = {
|
hardware.opengl = {
|
||||||
enable = true;
|
enable = true;
|
||||||
driSupport = true;
|
driSupport = true;
|
||||||
driSupport32Bit = true;
|
driSupport32Bit = true;
|
||||||
};
|
};
|
||||||
|
hardware.bluetooth.enable = true;
|
||||||
services.logind = {
|
services.logind = {
|
||||||
lidSwitch = "hibernate";
|
lidSwitch = "hibernate";
|
||||||
lidSwitchDocked = "ignore";
|
lidSwitchDocked = "ignore";
|
||||||
|
@ -187,179 +173,13 @@ rec {
|
||||||
# [USER / HOME MANAGER]
|
# [USER / HOME MANAGER]
|
||||||
users.users.rachel = {
|
users.users.rachel = {
|
||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
extraGroups = [ "wheel" "networkmanager" "video" "input" "audio" "wireshark" ];
|
extraGroups = [
|
||||||
};
|
"wheel"
|
||||||
|
"networkmanager"
|
||||||
home-manager.users.rachel = rec {
|
"video"
|
||||||
home = {
|
"input"
|
||||||
username = "rachel";
|
"audio"
|
||||||
homeDirectory = "/home/rachel";
|
|
||||||
packages = with pkgs; [
|
|
||||||
neofetch
|
|
||||||
pfetch
|
|
||||||
unzip
|
|
||||||
zip
|
|
||||||
xz
|
|
||||||
gzip
|
|
||||||
bzip2
|
|
||||||
p7zip
|
|
||||||
usbutils
|
|
||||||
pciutils
|
|
||||||
nettools
|
|
||||||
nmap
|
|
||||||
arp-scan
|
|
||||||
acpi
|
|
||||||
julia
|
|
||||||
python3
|
|
||||||
ghc
|
|
||||||
firefox
|
|
||||||
sxiv
|
|
||||||
zathura
|
|
||||||
gnupg
|
|
||||||
agda
|
|
||||||
rofi
|
|
||||||
discord
|
|
||||||
pinentry_qt
|
|
||||||
dig
|
|
||||||
xxd
|
|
||||||
mpv
|
|
||||||
zoom-us
|
|
||||||
slack
|
|
||||||
imagemagick
|
|
||||||
ffmpeg
|
|
||||||
sl
|
|
||||||
cowsay
|
|
||||||
lolcat
|
|
||||||
fortune
|
|
||||||
banner
|
|
||||||
yt-dlp
|
|
||||||
libreoffice
|
|
||||||
protonmail-bridge
|
|
||||||
pass
|
|
||||||
protonvpn-cli
|
|
||||||
protonvpn-gui
|
|
||||||
thunderbird
|
|
||||||
tidal-hifi
|
|
||||||
signal-desktop
|
|
||||||
transmission-gtk
|
|
||||||
xclip
|
|
||||||
clinfo
|
|
||||||
glxinfo
|
|
||||||
vulkan-tools
|
|
||||||
obs-studio
|
|
||||||
file
|
|
||||||
gimp
|
|
||||||
SAX2
|
|
||||||
twemoji-color-font
|
|
||||||
bat
|
|
||||||
steam
|
|
||||||
steam-run
|
|
||||||
];
|
];
|
||||||
stateVersion = system.stateVersion;
|
|
||||||
};
|
|
||||||
|
|
||||||
xdg.userDirs = {
|
|
||||||
enable = true;
|
|
||||||
createDirectories = true;
|
|
||||||
desktop = "${home.homeDirectory}";
|
|
||||||
documents = "${home.homeDirectory}/doc";
|
|
||||||
download = "${home.homeDirectory}/dwn";
|
|
||||||
music = "${home.homeDirectory}/music";
|
|
||||||
pictures = "${home.homeDirectory}/img";
|
|
||||||
publicShare = "${home.homeDirectory}/srv";
|
|
||||||
templates = "${home.homeDirectory}/doc/templates";
|
|
||||||
videos = "${home.homeDirectory}/vid";
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
programs = {
|
|
||||||
bash = {
|
|
||||||
enable = true;
|
|
||||||
enableCompletion = true;
|
|
||||||
historyFile = "/dev/null";
|
|
||||||
sessionVariables = {
|
|
||||||
PS1 ="\\033[1m\\u\\033[0m@\\033[1m\\h\\033[0m: \\w\nλ ";
|
|
||||||
BROWSER = "firefox";
|
|
||||||
XINITRC = "${home.homeDirectory}/bin/xinitrc";
|
|
||||||
XAUTHORITY = "${home.homeDirectory}/.local/share/Xauthority";
|
|
||||||
PASH_KEYID = "3E4A909C8FEF6E3783699C79DFC26EF8EDAD6D71";
|
|
||||||
QT_AUTO_SCREEN_FACTOR = 1;
|
|
||||||
EDITOR = "emacsclient";
|
|
||||||
PATH = "${home.homeDirectory}/bin:$PATH";
|
|
||||||
NIX_SHELL_PRESERVE_PROMPT=1;
|
|
||||||
};
|
|
||||||
shellAliases = {
|
|
||||||
x = "startx";
|
|
||||||
rm = "rm -i";
|
|
||||||
cal = "cal -m";
|
|
||||||
};
|
|
||||||
initExtra = ''
|
|
||||||
source ~/.profile
|
|
||||||
set -o vi
|
|
||||||
[ "$IN_NIX_SHELL" ] && export PS1="''${PS1%λ }❄ "
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
emacs = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.emacs-gtk;
|
|
||||||
extraPackages = epkgs: with epkgs; with melpaStablePackages; [
|
|
||||||
magit
|
|
||||||
nix-mode
|
|
||||||
julia-repl
|
|
||||||
julia-mode
|
|
||||||
lean-mode
|
|
||||||
proof-general
|
|
||||||
pdf-tools
|
|
||||||
dune
|
|
||||||
tuareg
|
|
||||||
idris-mode
|
|
||||||
haskell-emacs-base
|
|
||||||
multi-vterm
|
|
||||||
dmenu
|
|
||||||
markdown-preview-mode
|
|
||||||
markdown-mode
|
|
||||||
exwm
|
|
||||||
org-superstar
|
|
||||||
org-fragtog
|
|
||||||
visual-fill
|
|
||||||
writeroom-mode
|
|
||||||
haskell-emacs
|
|
||||||
treemacs-evil
|
|
||||||
treemacs
|
|
||||||
solarized-theme
|
|
||||||
doom-modeline
|
|
||||||
all-the-icons-dired
|
|
||||||
page-break-lines
|
|
||||||
all-the-icons
|
|
||||||
dashboard
|
|
||||||
org-evil
|
|
||||||
zotero
|
|
||||||
vterm
|
|
||||||
undo-fu
|
|
||||||
latex-math-preview
|
|
||||||
haskell-mode
|
|
||||||
evil-surround
|
|
||||||
undo-tree
|
|
||||||
evil-org
|
|
||||||
evil
|
|
||||||
evil-commentary
|
|
||||||
evil-leader
|
|
||||||
meow
|
|
||||||
purescript-mode
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
git = {
|
|
||||||
enable = true;
|
|
||||||
userName = "Rachel Lambda Samuelsson";
|
|
||||||
userEmail = "depsterr@protonmail.com";
|
|
||||||
extraConfig = {
|
|
||||||
init.defaultBranch = "master";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
# This value determines the NixOS release from which the default
|
# This value determines the NixOS release from which the default
|
|
@ -1,2 +1,7 @@
|
||||||
# nix
|
# nix
|
||||||
This is my nixos configuration, once I have multiple machines running nix I'll devise some modular approach with device specific options in different files. I'm also interested in switching to a flakes based configuration at some point.
|
|
||||||
|
My flake-based nixos configuration.
|
||||||
|
|
||||||
|
* `flake.nix`: flake defining configurations
|
||||||
|
* `home`: contains home-manager user configs
|
||||||
|
* `lambda`: contains config for laptop
|
||||||
|
|
Loading…
Reference in New Issue
Block a user