refactored theme configuration to use stylix instead of individually theming each program

This commit is contained in:
pagedmov
2024-10-18 16:45:02 -04:00
parent 1e7b095bcd
commit 9d19902fbd
31 changed files with 728 additions and 4300 deletions

274
flake.lock generated
View File

@@ -33,67 +33,69 @@
"type": "github" "type": "github"
} }
}, },
"catppuccin-bat": { "base16": {
"flake": false, "inputs": {
"fromYaml": "fromYaml"
},
"locked": { "locked": {
"lastModified": 1722864529, "lastModified": 1708890466,
"narHash": "sha256-s0CHTihXlBMCKmbBBb8dUhfgOOQu9PBCQ+uviy7o47w=", "narHash": "sha256-LlrC09LoPi8OPYOGPXegD72v+//VapgAqhbOFS3i8sc=",
"owner": "catppuccin", "owner": "SenchoPens",
"repo": "bat", "repo": "base16.nix",
"rev": "d3feec47b16a8e99eabb34cdfbaa115541d374fc", "rev": "665b3c6748534eb766c777298721cece9453fdae",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "catppuccin", "owner": "SenchoPens",
"repo": "bat", "repo": "base16.nix",
"type": "github" "type": "github"
} }
}, },
"catppuccin-cava": { "base16-fish": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1725405604, "lastModified": 1622559957,
"narHash": "sha256-5AQcCRGaAxP5KFzkJtkKFYq0Ug2xVIEqr2r/k87uWwY=", "narHash": "sha256-PebymhVYbL8trDVVXxCvZgc0S5VxI7I1Hv4RMSquTpA=",
"owner": "catppuccin", "owner": "tomyun",
"repo": "cava", "repo": "base16-fish",
"rev": "0746f77974330338ee2e1e4d1ef9872eba57eb26", "rev": "2f6dd973a9075dabccd26f1cded09508180bf5fe",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "catppuccin", "owner": "tomyun",
"repo": "cava", "repo": "base16-fish",
"type": "github" "type": "github"
} }
}, },
"catppuccin-starship": { "base16-helix": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1723819937, "lastModified": 1725860795,
"narHash": "sha256-t/Hmd2dzBn0AbLUlbL8CBt19/we8spY5nMP0Z+VPMXA=", "narHash": "sha256-Z2o8VBPW3I+KKTSfe25kskz0EUj7MpUh8u355Z1nVsU=",
"owner": "catppuccin", "owner": "tinted-theming",
"repo": "starship", "repo": "base16-helix",
"rev": "3c4749512e7d552adf48e75e5182a271392ab176", "rev": "7f795bf75d38e0eea9fed287264067ca187b88a9",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "catppuccin", "owner": "tinted-theming",
"repo": "starship", "repo": "base16-helix",
"type": "github" "type": "github"
} }
}, },
"catppuccin-yazi": { "base16-vim": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1722538198, "lastModified": 1716150083,
"narHash": "sha256-oJo52hMSK7mr5f0DtnyaN1FVOSKKUOHWCT80V1qfyrU=", "narHash": "sha256-ZMhnNmw34ogE5rJZrjRv5MtG3WaqKd60ds2VXvT6hEc=",
"owner": "catppuccin", "owner": "tinted-theming",
"repo": "yazi", "repo": "base16-vim",
"rev": "37dec9bf1f7e52e0d593c225827b9dbc71ce504c", "rev": "6e955d704d046b0dc3e5c2d68a2a6eeffd2b5d3d",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "catppuccin", "owner": "tinted-theming",
"repo": "yazi", "repo": "base16-vim",
"type": "github" "type": "github"
} }
}, },
@@ -181,6 +183,22 @@
"type": "github" "type": "github"
} }
}, },
"flake-compat_5": {
"flake": false,
"locked": {
"lastModified": 1673956053,
"narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-parts": { "flake-parts": {
"inputs": { "inputs": {
"nixpkgs-lib": "nixpkgs-lib" "nixpkgs-lib": "nixpkgs-lib"
@@ -239,6 +257,43 @@
"type": "github" "type": "github"
} }
}, },
"flake-utils_2": {
"inputs": {
"systems": [
"stylix",
"systems"
]
},
"locked": {
"lastModified": 1710146030,
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"fromYaml": {
"flake": false,
"locked": {
"lastModified": 1689549921,
"narHash": "sha256-iX0pk/uB019TdBGlaJEWvBCfydT6sRq+eDcGPifVsCM=",
"owner": "SenchoPens",
"repo": "fromYaml",
"rev": "11fbbbfb32e3289d3c631e0134a23854e7865c84",
"type": "github"
},
"original": {
"owner": "SenchoPens",
"repo": "fromYaml",
"type": "github"
}
},
"git-hooks": { "git-hooks": {
"inputs": { "inputs": {
"flake-compat": [ "flake-compat": [
@@ -339,6 +394,23 @@
"type": "github" "type": "github"
} }
}, },
"gnome-shell": {
"flake": false,
"locked": {
"lastModified": 1713702291,
"narHash": "sha256-zYP1ehjtcV8fo+c+JFfkAqktZ384Y+y779fzmR9lQAU=",
"owner": "GNOME",
"repo": "gnome-shell",
"rev": "0d0aadf013f78a7f7f1dc984d0d812971864b934",
"type": "github"
},
"original": {
"owner": "GNOME",
"ref": "46.1",
"repo": "gnome-shell",
"type": "github"
}
},
"home-manager": { "home-manager": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@@ -381,6 +453,27 @@
"type": "github" "type": "github"
} }
}, },
"home-manager_3": {
"inputs": {
"nixpkgs": [
"stylix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1724435763,
"narHash": "sha256-UNky3lJNGQtUEXT2OY8gMxejakSWPTfWKvpFkpFlAfM=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "c2cd2a52e02f1dfa1c88f95abeb89298d46023be",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "home-manager",
"type": "github"
}
},
"hypr-contrib": { "hypr-contrib": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs" "nixpkgs": "nixpkgs"
@@ -762,6 +855,22 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_5": {
"locked": {
"lastModified": 1725194671,
"narHash": "sha256-tLGCFEFTB5TaOKkpfw3iYT9dnk4awTP/q4w+ROpMfuw=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "b833ff01a0d694b910daca6e2ff4a3f26dee478c",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixvim": { "nixvim": {
"inputs": { "inputs": {
"devshell": "devshell", "devshell": "devshell",
@@ -902,10 +1011,6 @@
}, },
"root": { "root": {
"inputs": { "inputs": {
"catppuccin-bat": "catppuccin-bat",
"catppuccin-cava": "catppuccin-cava",
"catppuccin-starship": "catppuccin-starship",
"catppuccin-yazi": "catppuccin-yazi",
"home-manager": "home-manager", "home-manager": "home-manager",
"hypr-contrib": "hypr-contrib", "hypr-contrib": "hypr-contrib",
"hyprland": "hyprland", "hyprland": "hyprland",
@@ -914,6 +1019,7 @@
"nur": "nur", "nur": "nur",
"nvim": "nvim", "nvim": "nvim",
"spicetify-nix": "spicetify-nix", "spicetify-nix": "spicetify-nix",
"stylix": "stylix",
"toilet": "toilet" "toilet": "toilet"
} }
}, },
@@ -938,6 +1044,36 @@
"type": "github" "type": "github"
} }
}, },
"stylix": {
"inputs": {
"base16": "base16",
"base16-fish": "base16-fish",
"base16-helix": "base16-helix",
"base16-vim": "base16-vim",
"flake-compat": "flake-compat_5",
"flake-utils": "flake-utils_2",
"gnome-shell": "gnome-shell",
"home-manager": "home-manager_3",
"nixpkgs": "nixpkgs_5",
"systems": "systems_4",
"tinted-foot": "tinted-foot",
"tinted-kitty": "tinted-kitty",
"tinted-tmux": "tinted-tmux"
},
"locked": {
"lastModified": 1728900372,
"narHash": "sha256-hmG/u7qZEm7CTh1XPDi+pg4Oi0nNrv7sL8PgZDRe6wg=",
"owner": "danth",
"repo": "stylix",
"rev": "33a2eff15181e557bb6dd9d2073b90f7d218975d",
"type": "github"
},
"original": {
"owner": "danth",
"repo": "stylix",
"type": "github"
}
},
"systems": { "systems": {
"locked": { "locked": {
"lastModified": 1689347949, "lastModified": 1689347949,
@@ -983,6 +1119,70 @@
"type": "github" "type": "github"
} }
}, },
"systems_4": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"tinted-foot": {
"flake": false,
"locked": {
"lastModified": 1696725948,
"narHash": "sha256-65bz2bUL/yzZ1c8/GQASnoiGwaF8DczlxJtzik1c0AU=",
"owner": "tinted-theming",
"repo": "tinted-foot",
"rev": "eedbcfa30de0a4baa03e99f5e3ceb5535c2755ce",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "tinted-foot",
"type": "github"
}
},
"tinted-kitty": {
"flake": false,
"locked": {
"lastModified": 1716423189,
"narHash": "sha256-2xF3sH7UIwegn+2gKzMpFi3pk5DlIlM18+vj17Uf82U=",
"owner": "tinted-theming",
"repo": "tinted-kitty",
"rev": "eb39e141db14baef052893285df9f266df041ff8",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "tinted-kitty",
"rev": "eb39e141db14baef052893285df9f266df041ff8",
"type": "github"
}
},
"tinted-tmux": {
"flake": false,
"locked": {
"lastModified": 1696725902,
"narHash": "sha256-wDPg5elZPcQpu7Df0lI5O8Jv4A3T6jUQIVg63KDU+3Q=",
"owner": "tinted-theming",
"repo": "tinted-tmux",
"rev": "c02050bebb60dbb20cb433cd4d8ce668ecc11ba7",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "tinted-tmux",
"type": "github"
}
},
"toilet": { "toilet": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [

View File

@@ -6,6 +6,7 @@
nur.url = "github:nix-community/NUR"; nur.url = "github:nix-community/NUR";
hypr-contrib.url = "github:hyprwm/contrib"; hypr-contrib.url = "github:hyprwm/contrib";
hyprpicker.url = "github:hyprwm/hyprpicker"; hyprpicker.url = "github:hyprwm/hyprpicker";
stylix.url = "github:danth/stylix";
home-manager = { home-manager = {
url = "github:nix-community/home-manager"; url = "github:nix-community/home-manager";
@@ -18,40 +19,20 @@
submodules = true; submodules = true;
}; };
catppuccin-bat = {
url = "github:catppuccin/bat";
flake = false;
};
catppuccin-cava = {
url = "github:catppuccin/cava";
flake = false;
};
catppuccin-starship = {
url = "github:catppuccin/starship";
flake = false;
};
catppuccin-yazi = {
url = "github:catppuccin/yazi";
flake = false;
};
spicetify-nix = { spicetify-nix = {
url = "github:gerg-l/spicetify-nix"; url = "github:gerg-l/spicetify-nix";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
nvim = { nvim = {
url = "github:pagedMov/pagedmov-nixvim"; url = "github:pagedMov/pagedmov-nixvim";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
toilet = { toilet = {
url = "github:pagedMov/toilet-extra-fonts"; url = "github:pagedMov/toilet-extra-fonts";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
}; };
outputs = { outputs = {
@@ -61,6 +42,7 @@
self, self,
nvim, nvim,
toilet, toilet,
stylix,
... ...
} @ inputs: let } @ inputs: let
system = "x86_64-linux"; system = "x86_64-linux";
@@ -75,6 +57,7 @@
inherit system; inherit system;
modules = [ modules = [
./hosts/desktop ./hosts/desktop
stylix.nixosModules.stylix
nur.nixosModules.nur nur.nixosModules.nur
]; ];
}; };
@@ -86,19 +69,20 @@
}; };
modules = [ modules = [
./hosts/laptop ./hosts/laptop
stylix.nixosModules.stylix
nur.nixosModules.nur nur.nixosModules.nur
]; ];
}; };
installer = nixpkgs.lib.nixosSystem { installer = nixpkgs.lib.nixosSystem {
specialArgs = { specialArgs = {
host = "installer"; host = "installer";
inherit self inputs; inherit self inputs;
}; };
modules = [ modules = [
./hosts/installer ./hosts/installer
]; ];
}; };
}; };
}; };
} }

View File

@@ -1,40 +1,44 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{ {
imports = config,
[ (modulesPath + "/installer/scan/not-detected.nix") lib,
]; pkgs,
modulesPath,
...
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ]; boot.initrd.availableKernelModules = ["nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod"];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [];
boot.kernelModules = [ "kvm-amd" ]; boot.kernelModules = ["kvm-amd"];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [];
fileSystems."/" = fileSystems."/" = {
{ device = "/dev/disk/by-partlabel/disk-main-root"; device = "/dev/disk/by-partlabel/disk-main-root";
fsType = "ext4"; fsType = "ext4";
}; };
fileSystems."/nix" = fileSystems."/nix" = {
{ device = "/dev/disk/by-partlabel/disk-main-nix"; device = "/dev/disk/by-partlabel/disk-main-nix";
fsType = "ext4"; fsType = "ext4";
}; };
fileSystems."/boot" = fileSystems."/boot" = {
{ device = "/dev/disk/by-partlabel/disk-main-ESP"; device = "/dev/disk/by-partlabel/disk-main-ESP";
fsType = "vfat"; fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ]; options = ["fmask=0077" "dmask=0077"];
}; };
fileSystems."/home" = fileSystems."/home" = {
{ device = "/dev/disk/by-partlabel/disk-main-home"; device = "/dev/disk/by-partlabel/disk-main-home";
fsType = "ext4"; fsType = "ext4";
}; };
swapDevices = [ ]; swapDevices = [];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking # 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 # (the default) this is the recommended approach. When using systemd-networkd it's

View File

@@ -16,7 +16,6 @@
environment = { environment = {
variables = { variables = {
XCURSOR_SIZE = "24";
PATH = "${pkgs.clang-tools}/bin:$PATH"; PATH = "${pkgs.clang-tools}/bin:$PATH";
}; };
shells = with pkgs; [ shells = with pkgs; [

View File

@@ -1,55 +1,58 @@
{ lib, inputs, pkgs, modulesPath, ... }:
let
nvim = inputs.nvim.packages."x86_64-linux".default;
toilet = inputs.toilet.packages."x86_64-linux".default;
install-script = pkgs.writeShellScriptBin "movcfg-install" (builtins.readFile ./movcfg-install.sh);
in
{ {
imports = [ lib,
"${modulesPath}/installer/cd-dvd/installation-cd-minimal.nix" inputs,
]; pkgs,
nixpkgs.hostPlatform = "x86_64-linux"; modulesPath,
system.stateVersion = "24.05"; ...
nix = { }: let
settings = { nvim = inputs.nvim.packages."x86_64-linux".default;
experimental-features = ["nix-command" "flakes"]; toilet = inputs.toilet.packages."x86_64-linux".default;
}; install-script = pkgs.writeShellScriptBin "movcfg-install" (builtins.readFile ./movcfg-install.sh);
}; in {
imports = [
"${modulesPath}/installer/cd-dvd/installation-cd-minimal.nix"
];
nixpkgs.hostPlatform = "x86_64-linux";
system.stateVersion = "24.05";
nix = {
settings = {
experimental-features = ["nix-command" "flakes"];
};
};
networking = { networking = {
wireless.enable = false; wireless.enable = false;
networkmanager.enable = true; networkmanager.enable = true;
}; };
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
nix-output-monitor nix-output-monitor
nh nh
nvd nvd
lolcat lolcat
curl curl
wget wget
coreutils coreutils
findutils findutils
zip zip
unzip unzip
util-linux util-linux
git git
btrfs-progs btrfs-progs
dosfstools dosfstools
parted parted
bc bc
pciutils pciutils
usbutils usbutils
toilet toilet
install-script install-script
nvim nvim
]; ];
services = { services = {
openssh.enable = true; openssh.enable = true;
dbus.enable=true; dbus.enable = true;
}; };
programs.zsh = { programs.zsh = {
enable = true; enable = true;
@@ -60,9 +63,9 @@ in
}; };
enableCompletion = true; enableCompletion = true;
histFile = "$HOME/.zsh_history"; histFile = "$HOME/.zsh_history";
histSize = 10000; histSize = 10000;
autosuggestions = { autosuggestions = {
enable = true; enable = true;
@@ -80,17 +83,17 @@ in
pk = "pkill -9 -f"; pk = "pkill -9 -f";
svc = "sudo systemctl"; svc = "sudo systemctl";
}; };
promptInit = '' promptInit = ''
bindkey -v bindkey -v
type starship_zle-keymap-select >/dev/null || \ type starship_zle-keymap-select >/dev/null || \
{ {
eval "$(starship init zsh)" eval "$(starship init zsh)"
} }
''; '';
setOptions = [ setOptions = [
"APPEND_HISTORY" "APPEND_HISTORY"
"INC_APPEND_HISTORY" "INC_APPEND_HISTORY"
"SHARE_HISTORY" "SHARE_HISTORY"
"CORRECT" "CORRECT"
"NO_NOMATCH" "NO_NOMATCH"
"LIST_PACKED" "LIST_PACKED"
@@ -109,7 +112,7 @@ in
"EXTENDED_GLOB" "EXTENDED_GLOB"
"TRANSIENT_RPROMPT" "TRANSIENT_RPROMPT"
"INTERACTIVE_COMMENTS" "INTERACTIVE_COMMENTS"
]; ];
shellInit = '' shellInit = ''
export EDITOR="nvim" export EDITOR="nvim"
export SUDO_EDITOR="nvim" export SUDO_EDITOR="nvim"
@@ -152,61 +155,57 @@ in
unalias ls unalias ls
clear clear
''; '';
}; };
programs.starship = { programs.starship = {
enable = true; enable = true;
settings = settings = {
{ add_newline = true;
add_newline = true; right_format = "($custom)";
right_format = "($custom)";
format = lib.concatStrings [ format = lib.concatStrings [
"($username)(bold white)($cmd_duration)($character)" "($username)(bold white)($cmd_duration)($character)"
"($git_branch)($git_status)($rust)($nix-shell)" "($git_branch)($git_status)($rust)($nix-shell)"
"($directory)" "($directory)"
"$line_break[ > ](bold #89b4fa)" "$line_break[ > ](bold #89b4fa)"
]; ];
username = { username = {
show_always = true; show_always = true;
style_user = "bold white"; style_user = "bold white";
format = "[$user]($style)"; format = "[$user]($style)";
}; };
directory = { directory = {
format = "\n[$path](bold cyan)[/](bold green) "; format = "\n[$path](bold cyan)[/](bold green) ";
style = "bold #b4befe"; style = "bold #b4befe";
}; };
character = { character = {
success_symbol = "[ -> ](bold green)"; success_symbol = "[ -> ](bold green)";
error_symbol = "[ -> ](bold red)"; error_symbol = "[ -> ](bold red)";
# error_symbol = "[ ](bold #89dceb)[ ✗](bold red)"; # error_symbol = "[ ](bold #89dceb)[ ✗](bold red)";
}; };
cmd_duration = { cmd_duration = {
format = "[ 󰔛 $duration]($style)"; format = "[ 󰔛 $duration]($style)";
disabled = false; disabled = false;
style = "bg:none fg:#f9e2af"; style = "bg:none fg:#f9e2af";
show_notifications = false; show_notifications = false;
min_time_to_notify = 60000; min_time_to_notify = 60000;
}; };
git_branch = { git_branch = {
format = "\non [$symbol$branch](bold purple)"; format = "\non [$symbol$branch](bold purple)";
symbol = " "; symbol = " ";
truncation_length = 15; truncation_length = 15;
style = "bold purple"; style = "bold purple";
}; };
custom.shellver = { custom.shellver = {
command = "zsh --version"; command = "zsh --version";
when = ''test $SHELL = "/run/current-system/sw/bin/zsh"''; when = ''test $SHELL = "/run/current-system/sw/bin/zsh"'';
symbol = ""; symbol = "";
style = "bold magenta"; style = "bold magenta";
}; };
};
palette = "catppuccin_mocha";
}
// builtins.fromTOML (builtins.readFile "${inputs.catppuccin-starship}/themes/mocha.toml");
}; };
} }

View File

@@ -1,62 +1,60 @@
# USAGE in your configuration.nix. # USAGE in your configuration.nix.
# Update devices to match your hardware. # Update devices to match your hardware.
{ {
device ? throw "Set this to your disk device, e.g. /dev/sda", device ? throw "Set this to your disk device, e.g. /dev/sda",
root_size, root_size,
nix_size, nix_size,
... ...
}: }: {
disko.devices = {
{ disk = {
disko.devices = { main = {
disk = { inherit device;
main = { type = "disk";
inherit device; content = {
type = "disk"; type = "gpt";
content = { partitions = {
type = "gpt"; boot = {
partitions = { size = "1M";
boot = { type = "EF02"; # for grub MBR
size = "1M"; };
type = "EF02"; # for grub MBR ESP = {
}; size = "1G";
ESP = { type = "EF00";
size = "1G"; content = {
type = "EF00"; type = "filesystem";
content = { format = "vfat";
type = "filesystem"; mountpoint = "/boot";
format = "vfat"; mountOptions = ["umask=0077"];
mountpoint = "/boot"; };
mountOptions = [ "umask=0077" ]; };
}; nix = {
}; size = "${nix_size}";
nix = { content = {
size = "${nix_size}"; type = "filesystem";
content = { format = "ext4";
type = "filesystem"; mountpoint = "/nix";
format = "ext4"; };
mountpoint = "/nix"; };
}; root = {
}; size = "${root_size}";
root = { content = {
size = "${root_size}"; type = "filesystem";
content = { format = "ext4";
type = "filesystem"; mountpoint = "/";
format = "ext4"; };
mountpoint = "/"; };
}; home = {
}; size = "100%";
home = { content = {
size = "100%"; type = "filesystem";
content = { format = "ext4";
type = "filesystem"; mountpoint = "/home";
format = "ext4"; };
mountpoint = "/home"; };
}; };
}; };
}; };
}; };
}; };
};
};
} }

View File

@@ -1,40 +1,44 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{ {
imports = config,
[ (modulesPath + "/installer/scan/not-detected.nix") lib,
]; pkgs,
modulesPath,
...
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ]; boot.initrd.availableKernelModules = ["nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod"];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [];
boot.kernelModules = [ "kvm-amd" ]; boot.kernelModules = ["kvm-amd"];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [];
fileSystems."/" = fileSystems."/" = {
{ device = "/dev/disk/by-partlabel/disk-main-root"; device = "/dev/disk/by-partlabel/disk-main-root";
fsType = "ext4"; fsType = "ext4";
}; };
fileSystems."/nix" = fileSystems."/nix" = {
{ device = "/dev/disk/by-partlabel/disk-main-nix"; device = "/dev/disk/by-partlabel/disk-main-nix";
fsType = "ext4"; fsType = "ext4";
}; };
fileSystems."/boot" = fileSystems."/boot" = {
{ device = "/dev/disk/by-partlabel/disk-main-ESP"; device = "/dev/disk/by-partlabel/disk-main-ESP";
fsType = "vfat"; fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ]; options = ["fmask=0077" "dmask=0077"];
}; };
fileSystems."/home" = fileSystems."/home" = {
{ device = "/dev/disk/by-partlabel/disk-main-home"; device = "/dev/disk/by-partlabel/disk-main-home";
fsType = "ext4"; fsType = "ext4";
}; };
swapDevices = [ ]; swapDevices = [];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking # 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 # (the default) this is the recommended approach. When using systemd-networkd it's

View File

@@ -7,13 +7,12 @@
config, config,
home-manager, home-manager,
... ...
}: }: let
desktop_modules =
let if (host == "onagesson")
desktop_modules = if (host == "onagesson") then then [(import ./programs/steam.nix)]
[(import ./programs/steam.nix)] else []; else [];
in in {
{
imports = imports =
[(import ./programs/btop.nix)] [(import ./programs/btop.nix)]
++ [(import ./programs/yazi.nix)] ++ [(import ./programs/yazi.nix)]
@@ -36,5 +35,5 @@ in
++ [(import ./hyprland)] ++ [(import ./hyprland)]
++ [(import ./scripts)] ++ [(import ./scripts)]
++ [(import ./swaync/swaync.nix)] ++ [(import ./swaync/swaync.nix)]
++ desktop_modules; ++ desktop_modules;
} }

View File

@@ -1,42 +1,48 @@
{ {
pkgs, pkgs,
inputs, inputs,
host, host,
... ...
}: let }: let
nvim = inputs.nvim.packages."x86_64-linux".default; nvim = inputs.nvim.packages."x86_64-linux".default;
toilet = inputs.toilet.packages."x86_64-linux".default; toilet = inputs.toilet.packages."x86_64-linux".default;
desktop_pkgs = if (host == "oganesson") then with pkgs; [ desktop_pkgs =
uhk-agent if (host == "oganesson")
zathura then
handbrake with pkgs; [
snes9x-gtk uhk-agent
obs-studio zathura
] else [ ]; handbrake
snes9x-gtk
obs-studio
]
else [];
in { in {
home.packages = with pkgs; [ home.packages = with pkgs;
gtk3 [
sqlite gtk3
gimp sqlite
imagemagick gimp
yt-dlp imagemagick
vlc yt-dlp
lolcat vlc
speedtest-cli lolcat
vesktop speedtest-cli
qbittorrent vesktop
neovide qbittorrent
zsh neovide
zsh-syntax-highlighting zsh
zsh-history-substring-search zsh-syntax-highlighting
zsh-autosuggestions zsh-history-substring-search
audacity zsh-autosuggestions
rustup audacity
libreoffice rustup
gtrash libreoffice
ripgrep gtrash
nvim ripgrep
toilet nvim
python3 toilet
] ++ desktop_pkgs; python3
]
++ desktop_pkgs;
} }

View File

@@ -5,28 +5,9 @@
}: { }: {
fonts.fontconfig.enable = true; fonts.fontconfig.enable = true;
home.packages = [ home.packages = [
pkgs.nerdfonts
(pkgs.nerdfonts.override {fonts = ["JetBrainsMono" "Noto"];})
pkgs.twemoji-color-font
pkgs.noto-fonts-emoji
]; ];
gtk = { gtk = {
enable = true; enable = true;
font = {
name = "JetBrainsMono Nerd Font";
size = 11;
};
iconTheme = {
name = "Papirus-Dark";
package = pkgs.catppuccin-papirus-folders.override {
flavor = "mocha";
accent = "lavender";
};
};
theme = {
name = "Dracula";
package = pkgs.dracula-theme;
};
}; };
} }

View File

@@ -20,7 +20,5 @@ in {
hidePodcasts hidePodcasts
shuffle # shuffle+ (special characters are sanitized out of extension names) shuffle # shuffle+ (special characters are sanitized out of extension names)
]; ];
theme = spicePkgs.themes.catppuccin;
colorScheme = "mocha";
}; };
} }

View File

@@ -6,58 +6,54 @@
programs.starship = { programs.starship = {
enable = true; enable = true;
enableZshIntegration = false; enableZshIntegration = false;
settings = settings = {
{ add_newline = true;
add_newline = true; right_format = "($custom)";
right_format = "($custom)";
format = lib.concatStrings [ format = lib.concatStrings [
"($username)(bold white)($cmd_duration)($character)" "($username)(bold white)($cmd_duration)($character)"
"($git_branch)($git_status)($rust)($nix-shell)" "($git_branch)($git_status)($rust)($nix-shell)"
"($directory)" "($directory)"
"$line_break[ > ](bold #89b4fa)" "$line_break[ > ](bold #89b4fa)"
]; ];
username = { username = {
show_always = true; show_always = true;
style_user = "bold white"; style_user = "bold white";
format = "[$user]($style)"; format = "[$user]($style)";
}; };
directory = { directory = {
format = "\n[$path](bold cyan)[/](bold green) "; format = "\n[$path](bold cyan)[/](bold green) ";
style = "bold #b4befe"; style = "bold #b4befe";
}; };
character = { character = {
success_symbol = "[ -> ](bold green)"; success_symbol = "[ -> ](bold green)";
error_symbol = "[ -> ](bold red)"; error_symbol = "[ -> ](bold red)";
# error_symbol = "[ ](bold #89dceb)[ ✗](bold red)"; # error_symbol = "[ ](bold #89dceb)[ ✗](bold red)";
}; };
cmd_duration = { cmd_duration = {
format = "[ 󰔛 $duration]($style)"; format = "[ 󰔛 $duration]($style)";
disabled = false; disabled = false;
style = "bg:none fg:#f9e2af"; style = "bg:none fg:#f9e2af";
show_notifications = false; show_notifications = false;
min_time_to_notify = 60000; min_time_to_notify = 60000;
}; };
git_branch = { git_branch = {
format = "\non [$symbol$branch](bold purple)"; format = "\non [$symbol$branch](bold purple)";
symbol = " "; symbol = " ";
truncation_length = 15; truncation_length = 15;
style = "bold purple"; style = "bold purple";
}; };
custom.shellver = { custom.shellver = {
command = "zsh --version"; command = "zsh --version";
when = ''test $SHELL = "/run/current-system/sw/bin/zsh"''; when = ''test $SHELL = "/run/current-system/sw/bin/zsh"'';
symbol = ""; symbol = "";
style = "bold magenta"; style = "bold magenta";
}; };
};
palette = "catppuccin_mocha";
}
// builtins.fromTOML (builtins.readFile "${inputs.catppuccin-starship}/themes/mocha.toml");
}; };
} }

View File

@@ -10,6 +10,6 @@
in { in {
imports = imports =
[(import ./hyprland.nix)] [(import ./hyprland.nix)]
++ [(import ./hyprpaper.nix)] # ++ [(import ./hyprpaper.nix)]
++ host_config; ++ host_config;
} }

View File

@@ -1,12 +1,19 @@
{username, host, ...}: { {
username,
host,
...
}: {
wayland.windowManager.hyprland = { wayland.windowManager.hyprland = {
settings = { settings = {
monitor = if (host == "oganesson") then [ monitor =
"DP-1, 1920x1080@144, 1920x0, 1" if (host == "oganesson")
"HDMI-A-1, 1920x1080, 0x0, 1" then [
] else [ "DP-1, 1920x1080@144, 1920x0, 1"
"eDP-1, 1600x900, 0x0, 1" "HDMI-A-1, 1920x1080, 0x0, 1"
]; ]
else [
"eDP-1, 1600x900, 0x0, 1"
];
exec-once = [ exec-once = [
"waybar &" "waybar &"
@@ -19,19 +26,22 @@
"aplay /home/${username}/sound/sys/login.wav &" "aplay /home/${username}/sound/sys/login.wav &"
]; ];
workspace = if (host == "oganesson") then [ workspace =
"1,persistent=true,monitor:HDMI-A-1" if (host == "oganesson")
"2,persistent=true,monitor:HDMI-A-1" then [
"3,persistent=true,monitor:HDMI-A-1" "1,persistent=true,monitor:HDMI-A-1"
"4,persistent=true,monitor:DP-1" "2,persistent=true,monitor:HDMI-A-1"
"5,persistent=true,monitor:DP-1" "3,persistent=true,monitor:HDMI-A-1"
"6,persistent=true,monitor:DP-1" "4,persistent=true,monitor:DP-1"
] else [ "5,persistent=true,monitor:DP-1"
"1,persistent=true,monitor:eDP-1" "6,persistent=true,monitor:DP-1"
"2,persistent=true,monitor:eDP-1" ]
"3,persistent=true,monitor:eDP-1" else [
"4,persistent=true,monitor:eDP-1" "1,persistent=true,monitor:eDP-1"
]; "2,persistent=true,monitor:eDP-1"
"3,persistent=true,monitor:eDP-1"
"4,persistent=true,monitor:eDP-1"
];
input = { input = {
kb_layout = "us"; kb_layout = "us";
@@ -47,8 +57,6 @@
gaps_in = 4; gaps_in = 4;
gaps_out = 8; gaps_out = 8;
border_size = 2; border_size = 2;
"col.active_border" = "rgb(cba6f7) rgb(94e2d5) 45deg";
"col.inactive_border" = "0x00000000";
border_part_of_window = false; border_part_of_window = false;
no_border_on_floating = false; no_border_on_floating = false;
}; };
@@ -104,7 +112,6 @@
shadow_offset = "0 2"; shadow_offset = "0 2";
shadow_range = 20; shadow_range = 20;
shadow_render_power = 3; shadow_render_power = 3;
"col.shadow" = "rgba(00000055)";
}; };
animations = { animations = {

View File

@@ -1,26 +0,0 @@
{
host,
username,
self,
...
}: {
services.hyprpaper = {
enable = true;
settings = {
ipc = "on";
splash = false;
splash_offset = 2.0;
preload = ["${self}/media/wallpapers/catppuccin/cat-leaves.png"];
wallpaper =
if (host == "oganesson")
then [
"DP-1,${self}/media/wallpapers/catppuccin/cat-leaves.png"
"HDMI-A-1,${self}/media/wallpapers/catppuccin/cat-leaves.png"
]
else [
"eDP-1,${self}/media/wallpapers/catppuccin/cat-leaves.png"
];
};
};
}

View File

@@ -3,7 +3,6 @@
enable = true; enable = true;
config = { config = {
pager = "less -FR"; pager = "less -FR";
theme = "Dracula";
}; };
}; };
} }

View File

@@ -3,8 +3,6 @@
enable = true; enable = true;
settings = { settings = {
color_theme = "tokyo-night";
theme_background = false;
update_ms = 500; update_ms = 500;
vim_keys = true; vim_keys = true;
proc_tree = true; proc_tree = true;

View File

@@ -6,11 +6,4 @@
programs.cava = { programs.cava = {
enable = true; enable = true;
}; };
# https://github.com/catppuccin/cava
home.file.".config/cava/config".text =
''
# custom cava config
''
+ builtins.readFile "${inputs.catppuccin-cava}/themes/mocha.cava";
} }

View File

@@ -3,27 +3,16 @@
enable = true; enable = true;
settings = { settings = {
main = { main = {
font = "JetBrainsMono Nerd Font:weight=bold:size=14";
line-height = 25; line-height = 25;
fields = "name,generic,comment,categories,filename,keywords"; fields = "name,generic,comment,categories,filename,keywords";
terminal = "kitty"; terminal = "kitty";
prompt = "' '"; prompt = "' '";
icon-theme = "Papirus-Dark";
layer = "top"; layer = "top";
lines = 10; lines = 10;
width = 35; width = 35;
horizontal-pad = 25; horizontal-pad = 25;
inner-pad = 5; inner-pad = 5;
}; };
colors = {
background = "1e1e2ecc";
text = "cdd6f4ff";
match = "f38ba8ff";
selection = "b4befeaa";
selection-match = "f38ba8ff";
selection-text = "cdd6f4ff";
border = "b4befeff";
};
border = { border = {
radius = 15; radius = 15;
width = 3; width = 3;

View File

@@ -2,16 +2,9 @@
programs.kitty = { programs.kitty = {
enable = true; enable = true;
themeFile = "Catppuccin-Mocha";
font = {
name = "JetBrainsMono Nerd Font";
size = 13;
};
settings = { settings = {
confirm_os_window_close = 0; confirm_os_window_close = 0;
background_opacity = "0.60";
window_padding_width = 10; window_padding_width = 10;
scrollback_lines = 10000; scrollback_lines = 10000;
enable_audio_bell = false; enable_audio_bell = false;
@@ -24,10 +17,6 @@
inactive_tab_font_style = "normal"; inactive_tab_font_style = "normal";
tab_bar_style = "powerline"; tab_bar_style = "powerline";
tab_powerline_style = "round"; tab_powerline_style = "round";
active_tab_foreground = "#1e1e2e";
active_tab_background = "#cba6f7";
inactive_tab_foreground = "#bac2de";
inactive_tab_background = "#313244";
}; };
keybindings = { keybindings = {

File diff suppressed because it is too large Load Diff

View File

@@ -4,14 +4,15 @@
pkgs, pkgs,
}: }:
pkgs.writeShellScriptBin "rebuild" '' pkgs.writeShellScriptBin "rebuild" ''
#!/run/current-system/sw/bin/bash #!/run/current-system/sw/bin/bash
scheck && runbg aplay ${self}/media/sound/nixswitch-start.wav scheck && runbg aplay ${self}/media/sound/nixswitch-start.wav
set -e set -e
sudo nixos-rebuild switch --flake "$HOME/.sysflake#${host}" nh os switch -H ${host} $HOME/.sysflake
if [ $? -eq 0 ]; then sudo nixos-rebuild switch --flake "$HOME/.sysflake#${host}"
scheck && runbg aplay ${self}/media/sound/update.wav if [ $? -eq 0 ]; then
else scheck && runbg aplay ${self}/media/sound/update.wav
scheck && runbg aplay ${self}/media/sound/error.wav else
fi scheck && runbg aplay ${self}/media/sound/error.wav
fi
'' ''

View File

@@ -6,22 +6,22 @@
username, username,
host, host,
... ...
}: }: let
desktop_modules =
let if (host == "oganesson")
desktop_modules = if (host == "oganesson") then [ then [
./software/virtualization.nix ./software/virtualization.nix
] else [ ]; ]
in else [];
{ in {
imports = imports =
[(import ./hardware/bootloader.nix)] [(import ./hardware/bootloader.nix)]
++ [(import ./hardware/network.nix)] ++ [(import ./hardware/network.nix)]
++ [(import ./software/fonts.nix)]
++ [(import ./software/sddm.nix)]
++ [(import ./software/packages.nix)] ++ [(import ./software/packages.nix)]
++ [(import ./software/programs.nix)] ++ [(import ./software/programs.nix)]
++ [(import ./software/services.nix)] ++ [(import ./software/services.nix)]
++ [(import ./software/users.nix)] ++ [(import ./environment/sddm.nix)]
++ [(import ./environment/users.nix)]
++ [(import ./environment/stylix.nix)]
++ desktop_modules; ++ desktop_modules;
} }

View File

@@ -0,0 +1,12 @@
{
pkgs,
self,
config,
...
}: {
services.displayManager.sddm = {
enable = true;
wayland.enable = true;
package = pkgs.kdePackages.sddm;
};
}

View File

@@ -0,0 +1,36 @@
{
pkgs,
self,
...
}: {
stylix = {
enable = true;
base16Scheme = "${pkgs.base16-schemes}/share/themes/material-darker.yaml";
image = ../../../media/wallpapers/catppuccin/cat-leaves.png;
polarity = "dark";
autoEnable = true;
targets = {
console.enable = true;
feh.enable = true;
grub.enable = true;
};
cursor = {
package = pkgs.bibata-cursors;
name = "Bibata-Modern-Ice";
};
fonts = {
monospace = {
package = pkgs.nerdfonts.override {fonts = ["JetBrainsMono"];};
name = "JetBrainsMono Nerd Font Mono";
};
sansSerif = {
package = pkgs.dejavu_fonts;
name = "DejaVu Sans";
};
serif = {
package = pkgs.dejavu_fonts;
name = "DejaVu Serif";
};
};
};
}

View File

@@ -0,0 +1,53 @@
{
config,
inputs,
pkgs,
username,
self,
host,
...
}: let
nur = config.nur;
in {
imports = [inputs.home-manager.nixosModules.home-manager];
home-manager = {
useUserPackages = true;
useGlobalPkgs = true;
backupFileExtension = "backup";
extraSpecialArgs = {inherit self inputs host username nur;};
users.${username} = {
dconf.settings = {
"org/virt-manager/virt-manager/connections" = {
autoconnect = ["qemu:///system"];
uris = ["qemu:///system"];
};
};
programs.home-manager.enable = true;
imports = [
./../../home
];
home = {
username = "${username}";
homeDirectory = "/home/${username}";
stateVersion = "24.05";
};
};
};
users = {
groups.persist = {};
users = {
root.initialPassword = "1234";
${username} = {
isNormalUser = true;
initialPassword = "1234";
shell = pkgs.zsh;
extraGroups = ["wheel" "persist" "libvirtd"];
};
};
};
security.sudo.extraConfig = ''
${username} ALL=(ALL) NOPASSWD: /run/current-system/sw/bin/nixos-rebuild
'';
nix.settings.allowed-users = ["${username}"];
}

View File

@@ -1,7 +0,0 @@
{pkgs, ...}: {
fonts.packages = with pkgs; [
times-newer-roman
nerdfonts
jetbrains-mono
];
}

View File

@@ -38,13 +38,13 @@
mullvad mullvad
mesa mesa
neofetch neofetch
nh nh
nix-index nix-index
nix-output-monitor nix-output-monitor
nix-prefetch-scripts nix-prefetch-scripts
nixos-option nixos-option
nix-search-cli nix-search-cli
nvd nvd
openssl openssl
p7zip p7zip
jq jq
@@ -56,7 +56,6 @@
protonmail-bridge protonmail-bridge
protontricks protontricks
pyright pyright
quintom-cursor-theme
socat socat
sox sox
stress stress
@@ -74,6 +73,6 @@
xpad xpad
libnotify libnotify
file file
libvirt-glib libvirt-glib
]; ];
} }

View File

@@ -1,23 +0,0 @@
{
pkgs,
self,
config,
...
}: {
environment.systemPackages = [
(
pkgs.catppuccin-sddm.override {
flavor = "mocha";
font = "JetBrains Mono";
fontSize = "9";
background = "${self}/media/wallpapers/catppuccin/nixos-catppuccin.png";
}
)
];
services.displayManager.sddm = {
enable = true;
wayland.enable = true;
theme = "catppuccin-mocha";
package = pkgs.kdePackages.sddm;
};
}

View File

@@ -1,57 +0,0 @@
{
config,
inputs,
pkgs,
username,
self,
host,
...
}: let
nur = config.nur;
in {
imports = [inputs.home-manager.nixosModules.home-manager];
home-manager = {
useUserPackages = true;
useGlobalPkgs = true;
backupFileExtension = "backup";
extraSpecialArgs = {inherit self inputs host username nur;};
users.${username} = {
dconf.settings = {
"org/virt-manager/virt-manager/connections" = {
autoconnect = ["qemu:///system"];
uris = ["qemu:///system"];
};
};
programs.home-manager.enable = true;
imports = [
./../../home
];
home = {
username = "${username}";
homeDirectory = "/home/${username}";
stateVersion = "24.05";
pointerCursor = {
name = "Quintom_Ink";
size = 36;
package = pkgs.quintom-cursor-theme;
};
};
};
};
users = {
groups.persist = {};
users = {
root.initialPassword = "1234";
${username} = {
isNormalUser = true;
initialPassword = "1234";
shell = pkgs.zsh;
extraGroups = ["wheel" "persist" "libvirtd"];
};
};
};
security.sudo.extraConfig = ''
${username} ALL=(ALL) NOPASSWD: /run/current-system/sw/bin/nixos-rebuild
'';
nix.settings.allowed-users = ["${username}"];
}

View File

@@ -1,6 +1,4 @@
{ username, ... }: {username, ...}: {
virtualisation.libvirtd.enable = true;
{ programs.virt-manager.enable = true;
virtualisation.libvirtd.enable = true;
programs.virt-manager.enable = true;
} }