Deletged generated, testing new location scripts
This commit is contained in:
@@ -1,100 +0,0 @@
|
||||
# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
|
||||
{ lib, config, pkgs, flakeRoot, ... }:
|
||||
|
||||
let
|
||||
#################################
|
||||
# FILE
|
||||
#################################
|
||||
confPath = "${flakeRoot}/generated/assets/2_b_installed.conf";
|
||||
raw = builtins.readFile confPath;
|
||||
lines = lib.splitString "\n" raw;
|
||||
|
||||
#################################
|
||||
# CLEAN LINE
|
||||
#################################
|
||||
cleanLine = line:
|
||||
let
|
||||
noCR = lib.replaceStrings [ "\r" ] [ "" ] line;
|
||||
noInlineComment = lib.head (lib.splitString "#" noCR);
|
||||
in
|
||||
lib.strings.trim noInlineComment;
|
||||
|
||||
#################################
|
||||
# PARSE SECTION
|
||||
#################################
|
||||
parseSection = section:
|
||||
let
|
||||
result =
|
||||
builtins.foldl'
|
||||
(acc: line:
|
||||
let
|
||||
l = lib.strings.trim line;
|
||||
in
|
||||
if l == section then
|
||||
acc // { active = true; }
|
||||
else if lib.hasPrefix "#" l then
|
||||
acc // { active = false; }
|
||||
else if acc.active then
|
||||
acc // { entries = acc.entries ++ [ l ]; }
|
||||
else
|
||||
acc
|
||||
)
|
||||
{ active = false; entries = []; }
|
||||
lines;
|
||||
in
|
||||
builtins.filter (l: l != "") (map cleanLine result.entries);
|
||||
|
||||
#################################
|
||||
# NIX PACKAGES
|
||||
#################################
|
||||
packageEntries = parseSection "#packages";
|
||||
|
||||
resolvePkg = name:
|
||||
let
|
||||
parts = lib.splitString "." name;
|
||||
found = lib.attrByPath parts null pkgs;
|
||||
in
|
||||
if found == null then
|
||||
throw ''
|
||||
packages.nix: package not found
|
||||
Token: ${name}
|
||||
File : ${confPath}
|
||||
''
|
||||
else
|
||||
found;
|
||||
|
||||
packages = map resolvePkg packageEntries;
|
||||
|
||||
#################################
|
||||
# FLATPAKS
|
||||
#################################
|
||||
flatpakEntries = parseSection "#flatpaks";
|
||||
|
||||
in {
|
||||
#################################
|
||||
# Allow unfree
|
||||
#################################
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
#################################
|
||||
# System packages (Nix)
|
||||
#################################
|
||||
environment.systemPackages = packages;
|
||||
|
||||
#################################
|
||||
# Flatpak setup
|
||||
#################################
|
||||
services.flatpak.enable = true;
|
||||
|
||||
services.flatpak.remotes = [
|
||||
{
|
||||
name = "flathub";
|
||||
location = "https://flathub.org/repo/flathub.flatpakrepo";
|
||||
}
|
||||
];
|
||||
|
||||
#################################
|
||||
# Flatpak apps
|
||||
#################################
|
||||
services.flatpak.packages = flatpakEntries;
|
||||
}
|
||||
@@ -1,87 +0,0 @@
|
||||
# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
|
||||
{ config, pkgs, lib, flakeRoot, ... }:
|
||||
|
||||
let
|
||||
username = config.defaultUser or "henrov";
|
||||
|
||||
assetPath = "${flakeRoot}/generated/.config/emacs";
|
||||
|
||||
# Emacs package with Tree-sitter support
|
||||
emacsPkg = pkgs.emacs-pgtk.override { withTreeSitter = true; };
|
||||
|
||||
# Extra packages for Emacs via Home Manager
|
||||
emacsExtraPackages = epkgs: [
|
||||
epkgs.manualPackages.treesit-grammars.with-all-grammars
|
||||
epkgs.nerd-icons
|
||||
epkgs.doom-modeline
|
||||
epkgs.diminish
|
||||
epkgs.eldoc
|
||||
epkgs.pulsar
|
||||
epkgs.which-key
|
||||
epkgs.expreg
|
||||
epkgs.vundo
|
||||
epkgs.puni
|
||||
epkgs.avy
|
||||
epkgs.consult
|
||||
epkgs.vertico
|
||||
epkgs.marginalia
|
||||
epkgs.crux
|
||||
epkgs.magit
|
||||
epkgs.nerd-icons-corfu
|
||||
epkgs.corfu
|
||||
epkgs.cape
|
||||
epkgs.orderless
|
||||
epkgs.yasnippet
|
||||
epkgs.yasnippet-snippets
|
||||
epkgs.rg
|
||||
epkgs.exec-path-from-shell
|
||||
epkgs.eat
|
||||
epkgs.rust-mode
|
||||
epkgs.rustic
|
||||
epkgs.nix-mode
|
||||
epkgs.hcl-mode
|
||||
epkgs.shell-pop
|
||||
epkgs.envrc
|
||||
epkgs.nixpkgs-fmt
|
||||
epkgs.f
|
||||
epkgs.gptel
|
||||
epkgs.catppuccin-theme
|
||||
epkgs.eldoc-box
|
||||
epkgs.sideline
|
||||
epkgs.sideline-flymake
|
||||
epkgs.sideline-eglot
|
||||
];
|
||||
in
|
||||
{
|
||||
# System-wide installation
|
||||
environment.systemPackages = [
|
||||
emacsPkg
|
||||
];
|
||||
|
||||
# Home Manager user-specific configuration for your default user
|
||||
home-manager.users = {
|
||||
${username} = {
|
||||
home.sessionVariables = {
|
||||
EDITOR = "emacs";
|
||||
XDG_SCREENSHOTS_DIR = "~/screenshots";
|
||||
};
|
||||
|
||||
programs.emacs = {
|
||||
enable = true;
|
||||
package = emacsPkg;
|
||||
extraPackages = emacsExtraPackages;
|
||||
};
|
||||
|
||||
home.file = {
|
||||
".emacs.d/early-init.el" = {
|
||||
source = "${assetPath}/early-init.el";
|
||||
force = true; # <-- allow overwrite
|
||||
};
|
||||
".emacs.d/init.el" = {
|
||||
source = "${assetPath}/init.el";
|
||||
force = true; # <-- allow overwrite
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
|
||||
# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
|
||||
{ config, pkgs, ... }:
|
||||
let
|
||||
username = config.defaultUser or "henrov";
|
||||
in
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
kdePackages.kdeconnect-kde
|
||||
];
|
||||
|
||||
systemd.user.services.kdeconnect = {
|
||||
enable = true;
|
||||
description = "KDE Connect daemon";
|
||||
wantedBy = ["default.target"];
|
||||
serviceConfig = {
|
||||
ExecStart = "${pkgs.kdePackages.kdeconnect-kde}/bin/kdeconnectd";
|
||||
Restart = "on-failure";
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,44 +0,0 @@
|
||||
# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
|
||||
{ lib, pkgs, config, flakeRoot, ... }:
|
||||
|
||||
let
|
||||
username = config.defaultUser or "henrov";
|
||||
extraConfigFile = "${flakeRoot}/generated/.config/kitty/extra.conf";
|
||||
extraConfig =
|
||||
if builtins.pathExists extraConfigFile
|
||||
then builtins.readFile extraConfigFile
|
||||
else "";
|
||||
in
|
||||
{
|
||||
#################################
|
||||
# System-wide install
|
||||
#################################
|
||||
environment.systemPackages = [
|
||||
pkgs.kitty
|
||||
];
|
||||
#################################
|
||||
# Home Manager
|
||||
#################################
|
||||
home-manager.users = {
|
||||
"${username}" = {
|
||||
programs.kitty = {
|
||||
enable = true;
|
||||
settings = {
|
||||
confirm_os_window_close = lib.mkForce 0;
|
||||
dynamic_background_opacity = lib.mkForce true;
|
||||
enable_audio_bell = lib.mkForce false;
|
||||
mouse_hide_wait = lib.mkForce "-1.0";
|
||||
window_padding_width = lib.mkForce 10;
|
||||
background_opacity = lib.mkForce "0.5";
|
||||
background_blur = lib.mkForce 5;
|
||||
notify_on_command_complete = lib.mkForce "never";
|
||||
};
|
||||
extraConfig = ''
|
||||
${extraConfig}
|
||||
# Theme
|
||||
include themes/Catppuccin-Mocha.conf
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,31 +0,0 @@
|
||||
# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
|
||||
{ lib, config, pkgs, flakeRoot, ... }:
|
||||
|
||||
let
|
||||
# Default username fallback
|
||||
username = config.defaultUser or "henrov";
|
||||
|
||||
# Path to the starship config in assets
|
||||
starshipConfSrc = "${flakeRoot}/generated/.config/starship.toml";
|
||||
in
|
||||
{
|
||||
#################################
|
||||
# Install Starship system-wide
|
||||
#################################
|
||||
environment.systemPackages = [ pkgs.starship ];
|
||||
|
||||
#################################
|
||||
# Home Manager user configuration
|
||||
#################################
|
||||
home-manager.users = {
|
||||
${username} = {
|
||||
|
||||
home.file = {
|
||||
".config/starship.toml" = {
|
||||
text = builtins.readFile "${starshipConfSrc}";
|
||||
force = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,38 +0,0 @@
|
||||
# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
|
||||
{ pkgs, config, lib, ... }:
|
||||
|
||||
let
|
||||
# Resolve the default username from host config
|
||||
username = config.defaultUser or "henrov";
|
||||
in
|
||||
{
|
||||
############################
|
||||
# System-level packages
|
||||
############################
|
||||
environment.systemPackages = with pkgs; [
|
||||
thunar # main file manager
|
||||
thunar-archive-plugin # zip, tar, rar, 7z support
|
||||
thunar-volman # auto-mount removable drives
|
||||
gvfs # support for external drives and network shares
|
||||
xarchiver # optional GUI archive manager
|
||||
tumbler # Showing thumbnails
|
||||
libmtp
|
||||
mtpfs
|
||||
jmtpfs
|
||||
];
|
||||
|
||||
############################
|
||||
# Home Manager user-level configuration
|
||||
############################
|
||||
# Direct assignment to the user avoids recursiveUpdate issues
|
||||
home-manager.users."${username}" = {
|
||||
home.stateVersion = "26.05"; # required
|
||||
|
||||
home.sessionVariables = {
|
||||
FILE_MANAGER = "thunar";
|
||||
USERNAME = username;
|
||||
};
|
||||
};
|
||||
# Enable gvfs as a service
|
||||
services.gvfs.enable = true;
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
|
||||
{ lib, config, pkgs, flakeRoot, ... }:
|
||||
|
||||
let
|
||||
username = config.defaultUser or "henrov";
|
||||
assetPath = "${flakeRoot}/generated/.config/wofi";
|
||||
in
|
||||
{
|
||||
environment.systemPackages = [ pkgs.wofi ];
|
||||
|
||||
home-manager.users = {
|
||||
${username} = {
|
||||
home.file = {
|
||||
".config/wofi/config" = {
|
||||
text = builtins.readFile "${assetPath}/config";
|
||||
force = true;
|
||||
};
|
||||
".config/wofi/style.css" = {
|
||||
text = builtins.replaceStrings ["PLACEHOLDER_USERNAME"] [username] (builtins.readFile "${assetPath}/style.css");
|
||||
force = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
|
||||
{ config, pkgs, lib, zen-browser, ... }:
|
||||
|
||||
let
|
||||
# Grab the Zen Browser package for this host system
|
||||
zenBrowser = zen-browser.packages.${pkgs.stdenv.hostPlatform.system}.default;
|
||||
in
|
||||
{
|
||||
environment.systemPackages = [
|
||||
zenBrowser
|
||||
];
|
||||
}
|
||||
@@ -1,105 +0,0 @@
|
||||
# --- This file has been auto-generated. For permanent changes alter the appropriate block in the README.org. ---
|
||||
{ lib, config, pkgs, flakeRoot, ... }:
|
||||
|
||||
let
|
||||
#################################
|
||||
# User config
|
||||
#################################
|
||||
username = config.defaultUser or "henrov";
|
||||
generatedZsh = "${flakeRoot}/generated/.config/zsh/.zshrc";
|
||||
|
||||
#################################
|
||||
# Alias parsing
|
||||
#################################
|
||||
aliasFile = "${flakeRoot}/generated/assets/aliases.conf";
|
||||
content = builtins.readFile aliasFile;
|
||||
|
||||
lines =
|
||||
lib.filter (l: l != "")
|
||||
(map (l:
|
||||
let
|
||||
noComment = builtins.head (lib.splitString "#" l);
|
||||
in lib.trim noComment
|
||||
) (lib.splitString "\n" content));
|
||||
|
||||
parseLine = line:
|
||||
let
|
||||
parts = lib.splitString "=" line;
|
||||
in
|
||||
if lib.length parts < 2 then null else {
|
||||
name = lib.trim (lib.head parts);
|
||||
value = lib.trim (lib.concatStringsSep "=" (lib.tail parts));
|
||||
};
|
||||
|
||||
parsed =
|
||||
lib.filter (x: x != null)
|
||||
(map parseLine lines);
|
||||
|
||||
functions =
|
||||
lib.concatStringsSep "\n"
|
||||
(map (x: ''
|
||||
${x.name}() {
|
||||
${x.value} "$@"
|
||||
}
|
||||
'') parsed);
|
||||
|
||||
in
|
||||
{
|
||||
#################################
|
||||
# Packages
|
||||
#################################
|
||||
environment.systemPackages = with pkgs; [
|
||||
zsh
|
||||
oh-my-zsh
|
||||
starship
|
||||
zsh-syntax-highlighting
|
||||
];
|
||||
|
||||
#################################
|
||||
# Zsh config location
|
||||
#################################
|
||||
environment.etc."zshenv".text = ''
|
||||
export ZDOTDIR=$HOME/.config/zsh
|
||||
'';
|
||||
|
||||
#################################
|
||||
# Generated alias functions (system-wide)
|
||||
#################################
|
||||
environment.etc."profile.d/99-alias-functions.sh".text = ''
|
||||
# system-wide functions generated from aliases.conf
|
||||
${functions}
|
||||
'';
|
||||
|
||||
#################################
|
||||
# Global zshrc
|
||||
#################################
|
||||
environment.etc."zshrc".text = ''
|
||||
export ZSH=${pkgs.oh-my-zsh}/share/oh-my-zsh
|
||||
ZSH_THEME=""
|
||||
plugins=(git sudo extract colored-man-pages command-not-found history docker kubectl)
|
||||
|
||||
source $ZSH/oh-my-zsh.sh
|
||||
|
||||
# Init starship FIRST (prompt)
|
||||
eval "$(starship init zsh)"
|
||||
|
||||
# Load alias functions
|
||||
if [ -f /etc/profile.d/99-alias-functions.sh ]; then
|
||||
source /etc/profile.d/99-alias-functions.sh
|
||||
fi
|
||||
|
||||
# Load optional generated user config
|
||||
[ -f "${generatedZsh}" ] && source "${generatedZsh}"
|
||||
|
||||
# Syntax highlighting MUST be last
|
||||
source ${pkgs.zsh-syntax-highlighting}/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
|
||||
'';
|
||||
|
||||
#################################
|
||||
# Home Manager integration
|
||||
#################################
|
||||
home-manager.users.${username} = {
|
||||
programs.zsh.enable = true;
|
||||
home.file.".config/zsh/.zshrc".source = generatedZsh;
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user