unlinkified

This commit is contained in:
alisceon 2025-08-14 12:27:04 +02:00
parent 090f98718d
commit fc7b529ffd
9 changed files with 333 additions and 409 deletions

View file

@ -23,7 +23,7 @@
config.allowUnfree = true;
};
sharedModules = [
./hosts/common.nix
./hosts/common/base.nix
{
nixpkgs.config.allowUnfree = true;
}
@ -34,32 +34,52 @@
home-manager.extraSpecialArgs = {
inherit (config.networking) hostName;
}; # end extraSpecialArgs
home-manager.users.alisceon = import ./home/alisceon.nix;
home-manager.backupFileExtension = "backup";
}) # end home manager
];
]; # end sharedModules
in
{
nixosConfigurations = {
electra = nixpkgs.lib.nixosSystem {
inherit system;
modules = sharedModules ++ [
./hosts/common/workstation.nix
./hosts/electra/configuration.nix
home-manager.nixosModules.home-manager
({ config, ...}: {
home-manager.users.alisceon.imports = [
./home/alisceon/base.nix
./home/alisceon/workstation.nix
];
}) # end home-manager
]; # end modules
}; # end electra
tower = nixpkgs.lib.nixosSystem {
inherit system;
modules = sharedModules ++ [
./hosts/common/workstation.nix
./hosts/tower/configuration.nix
home-manager.nixosModules.home-manager
({ config, ...}: {
home-manager.users.alisceon.imports = [
./home/alisceon/base.nix
./home/alisceon/workstation.nix
];
}) # end home-manager
]; # end modules
}; # end tower
tesla-nixos = nixpkgs.lib.nixosSystem {
inherit system;
modules = [
modules = sharedModules ++ [
./hosts/common/server.nix
./hosts/tesla-nixos/configuration.nix
{
nixpkgs.config.allowUnfree = true;
}
home-manager.nixosModules.home-manager
({ config, ...}: {
home-manager.users.alisceon.imports = [
./home/alisceon/base.nix
./home/alisceon/workstation.nix
];
}) # end home-manager
]; # end modules
}; # end tesla-nixos
}; # end nixos conf

View file

@ -1,211 +0,0 @@
{ pkgs, config, hostName, lib, ... }: {
home.username = "alisceon";
home.homeDirectory = "/home/alisceon";
home.stateVersion = "24.05";
manual.manpages.enable = true;
programs = {
fish = {
enable = false;
# Disable greeting
interactiveShellInit = ''
set fish_greeting
'';
preferAbbrs = true;
shellAbbrs = {
ls = "exa";
ll = "exa -lah";
grep = "rg";
cat = "bat -p";
tsla-fan = "ipmitool -H 10.30.0.3 -U ADMIN -P ADMIN raw 0x30 0x70 0x66 0x01 0x0";
# NixOS commands
nixoss = "sudo nixos-rebuild switch --flake .#${hostName}";
nixos-main = "git checkout main && git pull && sudo nixos-rebuild switch --flake .#${hostName}";
nixossr = "sudo nixos-rebuild switch --flake .#${hostName} && reboot";
nixost = "sudo nixos-rebuild build-vm --flake .#${hostName}";
# Development commands
devt = "devenv test";
devtas = "devenv tasks list";
devtar = "devenv tasks run";
devs = "devenv shell";
devu = "devenv up -d";
devi = "nix flake init -t templates#";
pypod = "podman run --rm -it --network host -v '.:/run' -w '/run' python /run/";
# Tower commands
weboot = "nix shell nixpkgs#efibootmgr -c sudo efibootmgr -n 0000 && reboot";
# Misc commands
nix-shell = "nix shell";
};
}; # end fish
nushell = {
enable = true;
configFile.source = ./conf/config.nu;
shellAliases = {
tsla-fan = "ipmitool -H 10.30.0.3 -U ADMIN -P ADMIN raw 0x30 0x70 0x66 0x01 0x0";
# NixOS commands
nixoss = "sudo nixos-rebuild switch --flake .#${hostName}";
nixos-main = "git checkout main ; git pull ; sudo nixos-rebuild switch --flake #${hostName}";
nixossr = "sudo nixos-rebuild switch --flake .#${hostName} ; reboot";
nixost = "sudo nixos-rebuild build-vm --flake .#${hostName}";
# Development commands
devt = "devenv test";
devtas = "devenv tasks list";
devtar = "devenv tasks run";
devs = "devenv shell";
devu = "devenv up -d";
devi = "nix flake init -t templates#";
pypod = "podman run --rm -it --network host -v '.:/run' -w '/run' python /run/";
# Tower commands
weboot = "nix shell nixpkgs#efibootmgr -c sudo efibootmgr -n 0000 ; reboot";
};
};
git = {
enable = true;
userName = "alisceon";
userEmail = "alisceon@protonmail.com";
extraConfig = {
push = { autoSetupRemote = true; };
init.defaultBranch = "main";
};
}; # end git
vscode.enable = true;
firefox = {
enable = true;
nativeMessagingHosts = [
pkgs.gnome-browser-connector
pkgs.firefoxpwa
];
}; # end firefox
bat.enable = true;
ssh = {
enable = true;
matchBlocks = {
"alisceon.com" = {
hostname = "alisceon.com";
user = "opc";
};
"miscbox" = {
hostname = "10.1.0.11";
proxyJump = "alisceon.com";
user = "opc";
};
"blogbox" = {
hostname = "10.1.0.10";
proxyJump = "alisceon.com";
user = "ubuntu";
};
"filurbox" = {
hostname = "oci.malice.zone";
user = "opc";
};
"dnspi" = {
hostname = "10.40.0.2";
user = "pi";
};
"tsla-exporter-bridge" = {
hostname = "alma02.lab.the.malice.zone";
user = "root";
};
"tsla-runner-boi" = {
hostname = "alma03.lab.the.malice.zone";
user = "root";
};
"tsla-nixos" = {
hostname = "tesla-nixos.lab.the.malice.zone";
};
};
}; # end ssh
direnv = {
enable = true;
silent = true;
}; # end direnv
}; # end programs
# obsidian special case
programs.obsidian.enable = true;
# overide broken config
xdg.configFile."obsidian/obsidian.json".source = lib.mkForce ./conf/obsidian.json;
# nixpkgs config
xdg.configFile."nixpkgs/config.nix".source = ./conf/config.nix;
home.packages = with pkgs; [
signal-desktop
discord
eza
fd
ripgrep
];
xdg = {
enable = true;
userDirs.enable = true;
mime.enable = true;
};
services.syncthing = {
enable = true;
};
dconf.enable = true;
dconf.settings = {
"org/gnome/desktop/background" = {
color-shading-type = "solid";
picture-options = "zoom";
primary-color = "#000000000000";
secondary-color = "#000000000000";
picture-uri = "file:///home/alisceon/Pictures/system/bg.png";
picture-uri-dark = "file:///home/alisceon/Pictures/system/bg.png";
};
"org/gnome/mutter" = {
auto-maximize = true;
};
"org/gnome/desktop/interface" = {
accent-color = "red";
color-scheme = "prefer-dark";
};
"org/gnome/shell" = {
disable-user-extensions = false;
enabled-extensions = [ pkgs.gnomeExtensions.ddterm.extensionUuid ];
favorite-apps = [
"org.gnome.Nautilus.desktop"
"firefox.desktop"
"code.desktop"
"obsidian.desktop"
"discord.desktop"
"signal.desktop"
];
};
"org/gnome/shell/keybindings" = {
show-screenshot-ui = [ "<Shift><Super>s" ];
};
"org/gnome/settings-daemon/plugins/media-keys" = {
custom-keybindings = [
"/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/"
];
};
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0" = {
name = "GNOME Console";
command = "kgx";
binding = "<Shift><Super>Return";
};
"com/github/amezin/ddterm" = {
ddterm-toggle-hotkey = [ "<Super>Return" ];
window-monitor = "focus";
hide-when-focus-lost = true;
hide-window-on-esc = true;
tab-policy = "never";
panel-icon-type = "none";
};
}; # end dconf.settings
} # end file

106
home/alisceon/base.nix Normal file
View file

@ -0,0 +1,106 @@
{ pkgs, config, hostName, lib, ... }: {
home.username = "alisceon";
home.homeDirectory = "/home/alisceon";
home.stateVersion = "24.05";
manual.manpages.enable = true;
globalShellAbbrs = {
tsla-fan = "ipmitool -H 10.30.0.3 -U ADMIN -P ADMIN raw 0x30 0x70 0x66 0x01 0x0";
# NixOS commands
nixoss = "sudo nixos-rebuild switch --flake .#${hostName}";
nixos-main = "git checkout main ; git pull ; sudo nixos-rebuild switch --flake .#${hostName}";
nixossr = "sudo nixos-rebuild boot --flake .#${hostName} ; reboot";
nixost = "sudo nixos-rebuild dry-build --flake .#${hostName}";
# Development commands
devt = "devenv test";
devtas = "devenv tasks list";
devtar = "devenv tasks run";
devs = "devenv shell";
devu = "devenv up -d";
devi = "nix flake init -t templates#";
pypod = "podman run --rm -it --network host -v '.:/run' -w '/run' python /run/";
# Tower commands
weboot = "nix shell nixpkgs#efibootmgr -c sudo efibootmgr -n 0000 ; reboot";
}; # end globalShellAbbrs
programs = {
fish = {
enable = false;
# Disable greeting
interactiveShellInit = ''
set fish_greeting
'';
preferAbbrs = true;
shellAbbrs = globalShellAbbrs // {
ls = "exa";
ll = "exa -lah";
grep = "rg";
cat = "bat -p";
};
}; # end fish
nushell = {
enable = true;
configFile.source = ../conf/config.nu;
shellAliases = globalShellAbbrs //{
};
};
git = {
enable = true;
userName = "alisceon";
userEmail = "alisceon@protonmail.com";
extraConfig = {
push = { autoSetupRemote = true; };
init.defaultBranch = "main";
};
}; # end git
ssh = {
enable = true;
matchBlocks = {
"alisceon.com" = {
hostname = "alisceon.com";
user = "opc";
};
"miscbox" = {
hostname = "10.1.0.11";
proxyJump = "alisceon.com";
user = "opc";
};
"blogbox" = {
hostname = "10.1.0.10";
proxyJump = "alisceon.com";
user = "ubuntu";
};
"filurbox" = {
hostname = "oci.malice.zone";
user = "opc";
};
"dnspi" = {
hostname = "10.40.0.2";
user = "pi";
};
"tsla-exporter-bridge" = {
hostname = "alma02.lab.the.malice.zone";
user = "root";
};
"tsla-runner-boi" = {
hostname = "alma03.lab.the.malice.zone";
user = "root";
};
"tsla-nixos" = {
hostname = "tesla-nixos.lab.the.malice.zone";
};
};
}; # end ssh
direnv = {
enable = true;
silent = true;
}; # end direnv
}; # end programs
# nixpkgs config
xdg.configFile."nixpkgs/config.nix".source = ../conf/config.nix;
} # end file

8
home/alisceon/server.nix Normal file
View file

@ -0,0 +1,8 @@
{ pkgs, config, hostName, lib, ... }: {
home.username = "alisceon";
home.homeDirectory = "/home/alisceon";
home.stateVersion = "24.05";
manual.manpages.enable = true;
programs = {
} # end file

View file

@ -0,0 +1,95 @@
{ pkgs, config, hostName, lib, ... }: {
home.username = "alisceon";
home.homeDirectory = "/home/alisceon";
home.stateVersion = "24.05";
manual.manpages.enable = true;
programs = {
vscode.enable = true;
firefox = {
enable = true;
nativeMessagingHosts = [
pkgs.gnome-browser-connector
pkgs.firefoxpwa
];
}; # end firefox
direnv = {
enable = true;
silent = true;
}; # end direnv
}; # end programs
# obsidian special case
programs.obsidian.enable = true;
# overide broken config
xdg.configFile."obsidian/obsidian.json".source = lib.mkForce ../conf/obsidian.json;
# nixpkgs config
xdg.configFile."nixpkgs/config.nix".source = ../conf/config.nix;
home.packages = with pkgs; [
signal-desktop
discord
];
xdg = {
enable = true;
userDirs.enable = true;
mime.enable = true;
};
services.syncthing = {
enable = true;
};
dconf.enable = true;
dconf.settings = {
"org/gnome/desktop/background" = {
color-shading-type = "solid";
picture-options = "zoom";
primary-color = "#000000000000";
secondary-color = "#000000000000";
picture-uri = "file:///home/alisceon/Pictures/system/bg.png";
picture-uri-dark = "file:///home/alisceon/Pictures/system/bg.png";
};
"org/gnome/mutter" = {
auto-maximize = true;
};
"org/gnome/desktop/interface" = {
accent-color = "red";
color-scheme = "prefer-dark";
};
"org/gnome/shell" = {
disable-user-extensions = false;
enabled-extensions = [ pkgs.gnomeExtensions.ddterm.extensionUuid ];
favorite-apps = [
"org.gnome.Nautilus.desktop"
"firefox.desktop"
"code.desktop"
"obsidian.desktop"
"discord.desktop"
"signal.desktop"
];
};
"org/gnome/shell/keybindings" = {
show-screenshot-ui = [ "<Shift><Super>s" ];
};
"org/gnome/settings-daemon/plugins/media-keys" = {
custom-keybindings = [
"/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/"
];
};
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0" = {
name = "GNOME Console";
command = "kgx";
binding = "<Shift><Super>Return";
};
"com/github/amezin/ddterm" = {
ddterm-toggle-hotkey = [ "<Super>Return" ];
window-monitor = "focus";
hide-when-focus-lost = true;
hide-window-on-esc = true;
tab-policy = "never";
panel-icon-type = "none";
};
}; # end dconf.settings
} # end file

View file

@ -66,37 +66,6 @@
};
security.sudo.wheelNeedsPassword = false;
services = {
printing.enable = true;
pulseaudio.enable = false;
pipewire = {
enable = true;
alsa.enable = true;
pulse.enable = true;
jack.enable = true;
};
xserver.xkb.layout = "se";
displayManager = {
gdm.enable = true;
gdm.wayland = true;
};
desktopManager.gnome.enable = true;
gnome = {
gnome-keyring.enable = true;
gnome-initial-setup.enable = false;
};
}; # end services
services.fwupd.enable = true;
programs = {
dconf.enable = true;
fish.enable = true;
steam = {
enable = true;
remotePlay.openFirewall = true;
};
}; # end programs
environment = {
systemPackages = with pkgs; [
# CLI tools
@ -117,49 +86,10 @@
fish
powershell
# Chat
discord
signal-desktop
# Browser
firefox
firefoxpwa
# Development
vscode
devenv
direnv
# Virtualization
podman
# GNOME tweaks and extensions
gnome-tweaks
dconf-editor
gnomeExtensions.ddterm
# Other
syncthing
steam
krita
edk2-uefi-shell
obsidian
gparted
]; # end systemPackages
gnome.excludePackages = with pkgs; [
evolution
geary
gnome-contacts
gnome-music
gnome-user-docs
gnome-tour
gnome-weather
gnome-maps
gnome-calendar
gnome-initial-setup
gnome-clocks
]; # end gnome.excludePackages
shells = with pkgs; [
bash
nushell

16
hosts/common/server.nix Normal file
View file

@ -0,0 +1,16 @@
{ config, pkgs, ... }:
{
services = {
openssh.enable = true;
}; # end services
services.fwupd.enable = true;
environment = {
systemPackages = with pkgs; [
devenv
direnv
]; # end systemPackages
}; # end environment
} # end file

View file

@ -0,0 +1,79 @@
{ config, pkgs, ... }:
{
security.sudo.wheelNeedsPassword = false;
services = {
printing.enable = true;
pulseaudio.enable = false;
pipewire = {
enable = true;
alsa.enable = true;
pulse.enable = true;
jack.enable = true;
};
xserver.xkb.layout = "se";
displayManager = {
gdm.enable = true;
gdm.wayland = true;
};
desktopManager.gnome.enable = true;
gnome = {
gnome-keyring.enable = true;
gnome-initial-setup.enable = false;
};
}; # end services
services.fwupd.enable = true;
programs = {
dconf.enable = true;
steam = {
enable = true;
remotePlay.openFirewall = true;
};
}; # end programs
environment = {
systemPackages = with pkgs; [
# Chat
discord
signal-desktop
# Browser
firefox
firefoxpwa
# Development
vscode
devenv
direnv
# GNOME tweaks and extensions
gnome-tweaks
dconf-editor
gnomeExtensions.ddterm
# Other
syncthing
steam
krita
edk2-uefi-shell
obsidian
gparted
]; # end systemPackages
gnome.excludePackages = with pkgs; [
evolution
geary
gnome-contacts
gnome-music
gnome-user-docs
gnome-tour
gnome-weather
gnome-maps
gnome-calendar
gnome-initial-setup
gnome-clocks
]; # end gnome.excludePackages
}; # end environment
} #end file

View file

@ -10,123 +10,4 @@
enable = true;
}; # end loader.systemd-boot
}; # end boot
system.stateVersion = "24.05";
system.autoUpgrade = {
enable = true;
persistent = true;
flake = "/home/alisceon/nixos_config";
flags = [
"--update-input"
"nixpkgs"
"-L"
];
dates = "daily";
}; # end system.autoUpgrade
nix = {
settings = {
experimental-features = [ "nix-command" "flakes" ];
auto-optimise-store = true;
trusted-users = [ "root" "alisceon" ];
}; # end settings
gc = {
automatic = true;
persistent = true;
dates = "daily";
options = "--delete-older-than 7d";
}; # end gc
registry = {
templates.to = {
type = "git";
url = "git+ssh://git@git.malice.zone/alisceon/devenv_templates.git";
}; # end templates.to
nixpkgs.to = {
type = "github";
owner = "NixOS";
repo = "nixpkgs";
ref = "nixos-unstable";
}; # end nixpkgs.to
nixpkgs-stable.to = {
type = "github";
owner = "NixOS";
repo = "nixpkgs";
ref = "nixos-25.05";
}; # end nixpkgs.to
}; #end registry
}; #end nix
console.keyMap = "sv-latin1";
networking.networkmanager.enable = true;
time.timeZone = "Europe/Stockholm";
i18n.defaultLocale = "en_US.UTF-8";
i18n.extraLocaleSettings = {
LC_ADDRESS = "sv_SE.UTF-8";
LC_IDENTIFICATION = "sv_SE.UTF-8";
LC_MEASUREMENT = "sv_SE.UTF-8";
LC_MONETARY = "sv_SE.UTF-8";
LC_NAME = "sv_SE.UTF-8";
LC_NUMERIC = "sv_SE.UTF-8";
LC_PAPER = "sv_SE.UTF-8";
LC_TELEPHONE = "sv_SE.UTF-8";
LC_TIME = "sv_SE.UTF-8";
};
security.sudo.wheelNeedsPassword = false;
services = {
openssh.enable = true;
}; # end services
services.fwupd.enable = true;
programs = {
dconf.enable = true;
fish.enable = true;
}; # end programs
environment = {
systemPackages = with pkgs; [
# CLI tools
git
wget
curl
btop # system monitor
ripgrep # grep replacement
bat # cat replacement
fd # find replacement
eza # ls replacement
nh # nix helper
jq # JSON processor
# Shells
bash
nushell
fish
powershell
devenv
direnv
# Virtualization
podman
]; # end systemPackages
shells = with pkgs; [
bash
nushell
fish
powershell
];
}; # end environment
virtualisation.podman = {
enable = true;
dockerCompat = true;
defaultNetwork.settings.dns_enabled = true;
}; # end virtualisation
users.users.alisceon = {
isNormalUser = true;
extraGroups = [ "wheel" "networkmanager" "podman" ];
shell = pkgs.nushell;
}; # end users
} # end file