Initial commit
This commit is contained in:
commit
af34a76818
22 changed files with 1498 additions and 0 deletions
1
.gitattributes
vendored
Normal file
1
.gitattributes
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
flake.lock linguist-generated=true
|
216
configuration.nix
Executable file
216
configuration.nix
Executable file
|
@ -0,0 +1,216 @@
|
|||
# Edit this configuration file to define what should be installed on
|
||||
# your system. Help is available in the configuration.nix(5) man page
|
||||
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
||||
|
||||
{ pkgs, inputs, system, ... }:
|
||||
{
|
||||
imports = [
|
||||
./hardware-configuration.nix
|
||||
];
|
||||
|
||||
fileSystems."/mnt/arch" = {
|
||||
device = "/dev/mapper/arch";
|
||||
fsType = "btrfs";
|
||||
encrypted = {
|
||||
enable = true;
|
||||
blkDev = "/dev/disk/by-uuid/60b6f21d-85b2-4d4b-90f4-38612138eeec";
|
||||
keyFile = "/sysroot/root/keyfiles/arch.key";
|
||||
label = "arch";
|
||||
};
|
||||
};
|
||||
|
||||
# Bootloader.
|
||||
boot = {
|
||||
loader = {
|
||||
grub = {
|
||||
enable = true;
|
||||
useOSProber = false;
|
||||
devices = [ "nodev" ];
|
||||
efiSupport = true;
|
||||
extraEntries = ''
|
||||
menuentry "Poweroff" {
|
||||
halt
|
||||
}
|
||||
menuentry "Reboot" {
|
||||
reboot
|
||||
}
|
||||
'';
|
||||
theme = inputs.nixos-grub-themes.packages."${system}".hyperfluent;
|
||||
};
|
||||
efi.canTouchEfiVariables = true;
|
||||
};
|
||||
|
||||
plymouth = {
|
||||
enable = true;
|
||||
theme = "bgrt";
|
||||
};
|
||||
|
||||
consoleLogLevel = 0;
|
||||
initrd.verbose = false;
|
||||
kernelParams = [
|
||||
"quiet"
|
||||
"splash"
|
||||
"boot.shell_on_fail"
|
||||
"loglevel=3"
|
||||
"rd.systemd.show_status=false"
|
||||
"rd.udev.log_level=3"
|
||||
"udev.log_priority=3"
|
||||
];
|
||||
|
||||
initrd.systemd.enable = true;
|
||||
};
|
||||
|
||||
networking.hostName = "ty-nixos"; # Define your hostname.
|
||||
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
|
||||
|
||||
# Configure network proxy if necessary
|
||||
# networking.proxy.default = "http://user:password@proxy:port/";
|
||||
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
|
||||
|
||||
# Enable networking
|
||||
networking.networkmanager.enable = true;
|
||||
|
||||
# Set your time zone.
|
||||
time.timeZone = "America/Denver";
|
||||
|
||||
# Select internationalisation properties.
|
||||
i18n.defaultLocale = "en_US.UTF-8";
|
||||
|
||||
i18n.extraLocaleSettings = {
|
||||
LC_ADDRESS = "en_US.UTF-8";
|
||||
LC_IDENTIFICATION = "en_US.UTF-8";
|
||||
LC_MEASUREMENT = "en_US.UTF-8";
|
||||
LC_MONETARY = "en_US.UTF-8";
|
||||
LC_NAME = "en_US.UTF-8";
|
||||
LC_NUMERIC = "en_US.UTF-8";
|
||||
LC_PAPER = "en_US.UTF-8";
|
||||
LC_TELEPHONE = "en_US.UTF-8";
|
||||
LC_TIME = "en_US.UTF-8";
|
||||
};
|
||||
|
||||
# Enable the X11 windowing system.
|
||||
# You can disable this if you're only using the Wayland session.
|
||||
services.xserver.enable = false;
|
||||
|
||||
# KDE + SDDM Configuration
|
||||
services.desktopManager.plasma6.enable = true;
|
||||
services.displayManager.sddm = {
|
||||
enable = true;
|
||||
wayland.enable = true;
|
||||
|
||||
sugarCandyNix = {
|
||||
enable = true;
|
||||
settings = {
|
||||
HeaderText = ":3";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# Configure keymap in X11
|
||||
services.xserver.xkb = {
|
||||
layout = "us";
|
||||
variant = "";
|
||||
};
|
||||
|
||||
# Tailscale
|
||||
services.tailscale = {
|
||||
enable = true;
|
||||
useRoutingFeatures = "both";
|
||||
openFirewall = true;
|
||||
};
|
||||
|
||||
# Enable CUPS to print documents.
|
||||
services.printing.enable = true;
|
||||
|
||||
# Enable sound with pipewire.
|
||||
hardware.pulseaudio.enable = false;
|
||||
security.rtkit.enable = true;
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
# If you want to use JACK applications, uncomment this
|
||||
#jack.enable = true;
|
||||
|
||||
# use the example session manager (no others are packaged yet so this is enabled by default,
|
||||
# no need to redefine it in your config for now)
|
||||
#media-session.enable = true;
|
||||
};
|
||||
|
||||
# Enable touchpad support (enabled default in most desktopManager).
|
||||
# services.xserver.libinput.enable = true;
|
||||
|
||||
users.mutableUsers = false;
|
||||
users.defaultUserShell = pkgs.zsh;
|
||||
users.users.ty = {
|
||||
isNormalUser = true;
|
||||
shell = pkgs.zsh;
|
||||
description = "Tyler Beckman";
|
||||
extraGroups = [ "networkmanager" "wheel" ];
|
||||
hashedPassword = "$y$j9T$XCQtsX/NObNFzrYu7JcJe/$HHgvh4Re6UjKvxMz.XuHw7dwNecnMP8je.4AHUjHnsB";
|
||||
};
|
||||
|
||||
# Install firefox.
|
||||
programs.firefox = {
|
||||
enable = true;
|
||||
preferences = {
|
||||
# Disable bullshit
|
||||
"browser.ml.chat.enabled" = false;
|
||||
"browser.aboutConfig.showWarning" = false;
|
||||
"extensions.pocket.enabled" = false;
|
||||
"browser.newtabpage.activity-stream.showSponsored" = false;
|
||||
"browser.newtabpage.activity-stream.showSponsoredTopSites" = false;
|
||||
"browser.newtabpage.activity-stream.feeds.section.topstories" = false;
|
||||
"browser.newtabpage.activity-stream.feeds.system.topstories" = false;
|
||||
"browser.urlbar.suggest.quicksuggest.sponsored" = false;
|
||||
# Experimental prefs
|
||||
"image.jxl.enabled" = true;
|
||||
# Security
|
||||
"security.pki.certificate_transparency.mode" = true;
|
||||
};
|
||||
preferencesStatus = "locked";
|
||||
};
|
||||
|
||||
# Allow unfree packages
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
# List packages installed in system profile. To search, run:
|
||||
environment.systemPackages = with pkgs; [
|
||||
# Basic system packages
|
||||
wget
|
||||
curl
|
||||
neovim
|
||||
git
|
||||
jujutsu
|
||||
];
|
||||
programs.zsh.enable = true;
|
||||
|
||||
# Env vars
|
||||
environment.sessionVariables.NIXOS_OZONE_WL = "1";
|
||||
environment.pathsToLink = [ "/share/zsh" ];
|
||||
|
||||
# List services that you want to enable:
|
||||
|
||||
# Enable the OpenSSH daemon.
|
||||
# services.openssh.enable = true;
|
||||
|
||||
# Open ports in the firewall.
|
||||
# networking.firewall.allowedTCPPorts = [ ... ];
|
||||
# networking.firewall.allowedUDPPorts = [ ... ];
|
||||
networking.firewall.enable = true;
|
||||
|
||||
# This value determines the NixOS release from which the default
|
||||
# settings for stateful data, like file locations and database versions
|
||||
# on your system were taken. It‘s perfectly fine and recommended to leave
|
||||
# this value at the release version of the first install of this system.
|
||||
# Before changing this value read the documentation for this option
|
||||
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
|
||||
system.stateVersion = "24.05"; # Did you read the comment?
|
||||
|
||||
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||||
|
||||
# Enable bluetooth
|
||||
hardware.bluetooth.enable = true;
|
||||
hardware.bluetooth.powerOnBoot = true;
|
||||
}
|
364
flake.lock
generated
Executable file
364
flake.lock
generated
Executable file
|
@ -0,0 +1,364 @@
|
|||
{
|
||||
"nodes": {
|
||||
"cachix": {
|
||||
"locked": {
|
||||
"lastModified": 1635350005,
|
||||
"narHash": "sha256-tAMJnUwfaDEB2aa31jGcu7R7bzGELM9noc91L2PbVjg=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "1c1f5649bb9c1b0d98637c8c365228f57126f361",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-20.09",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"firefox-addons": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"dir": "/pkgs/firefox-addons",
|
||||
"lastModified": 1732248209,
|
||||
"narHash": "sha256-Mv8k0VuGdb6YhhKt+8SIvhMdmI4xZhw/3ycSvlAq19Q=",
|
||||
"owner": "rycee",
|
||||
"repo": "nur-expressions",
|
||||
"rev": "4a8ba00d1be3f3745428ed56efbb32155c548192",
|
||||
"type": "gitlab"
|
||||
},
|
||||
"original": {
|
||||
"dir": "/pkgs/firefox-addons",
|
||||
"owner": "rycee",
|
||||
"repo": "nur-expressions",
|
||||
"type": "gitlab"
|
||||
}
|
||||
},
|
||||
"firefox-nightly": {
|
||||
"inputs": {
|
||||
"cachix": "cachix",
|
||||
"flake-compat": "flake-compat",
|
||||
"lib-aggregate": "lib-aggregate",
|
||||
"mozilla": "mozilla",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1732244603,
|
||||
"narHash": "sha256-yuMZQA+j0IjdlnimtrKHsci3mZI7JKhkJrFs7d765Kw=",
|
||||
"owner": "nix-community",
|
||||
"repo": "flake-firefox-nightly",
|
||||
"rev": "49020629d258bd02d69db90d74b5bad72f9e076c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "flake-firefox-nightly",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-compat": {
|
||||
"locked": {
|
||||
"lastModified": 1717312683,
|
||||
"narHash": "sha256-FrlieJH50AuvagamEvWMIE6D2OAnERuDboFDYAED/dE=",
|
||||
"owner": "nix-community",
|
||||
"repo": "flake-compat",
|
||||
"rev": "38fd3954cf65ce6faf3d0d45cd26059e059f07ea",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "flake-compat",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-compat_2": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1696426674,
|
||||
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils": {
|
||||
"locked": {
|
||||
"lastModified": 1629284811,
|
||||
"narHash": "sha256-JHgasjPR0/J1J3DRm4KxM4zTyAj4IOJY8vIl75v/kPI=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "c5d161cc0af116a2e17f54316f0bf43f0819785c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils_2": {
|
||||
"inputs": {
|
||||
"systems": "systems"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1731533236,
|
||||
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils_3": {
|
||||
"inputs": {
|
||||
"systems": "systems_2"
|
||||
},
|
||||
"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"
|
||||
}
|
||||
},
|
||||
"home-manager": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1732025103,
|
||||
"narHash": "sha256-qjEI64RKvDxRyEarY0jTzrZMa8ebezh2DEZmJJrpVdo=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "a46e702093a5c46e192243edbd977d5749e7f294",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"lib-aggregate": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils_2",
|
||||
"nixpkgs-lib": "nixpkgs-lib"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1731845570,
|
||||
"narHash": "sha256-5reOtlm18XLnh3ezruPOg2wQO+MB7ztsFaIzSUAzeh8=",
|
||||
"owner": "nix-community",
|
||||
"repo": "lib-aggregate",
|
||||
"rev": "7a1d37b2b16f32536628df9cea6a2003d79a49f9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "lib-aggregate",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"mozilla": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1704373101,
|
||||
"narHash": "sha256-+gi59LRWRQmwROrmE1E2b3mtocwueCQqZ60CwLG+gbg=",
|
||||
"owner": "mozilla",
|
||||
"repo": "nixpkgs-mozilla",
|
||||
"rev": "9b11a87c0cc54e308fa83aac5b4ee1816d5418a2",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "mozilla",
|
||||
"repo": "nixpkgs-mozilla",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixos-grub-themes": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1720290504,
|
||||
"narHash": "sha256-QeIUxy0XJtp8SPes/TdDxzHCl96rgwYhX9kd65rIZ2s=",
|
||||
"owner": "jeslie0",
|
||||
"repo": "nixos-grub-themes",
|
||||
"rev": "781c410c3522fc62a99206a6c3e8469a5fc90a01",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "jeslie0",
|
||||
"repo": "nixos-grub-themes",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1732014248,
|
||||
"narHash": "sha256-y/MEyuJ5oBWrWAic/14LaIr/u5E0wRVzyYsouYY3W6w=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "23e89b7da85c3640bbc2173fe04f4bd114342367",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-lib": {
|
||||
"locked": {
|
||||
"lastModified": 1731805462,
|
||||
"narHash": "sha256-yhEMW4MBi+IAyEJyiKbnFvY1uARyMKJpLUhkczI49wk=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixpkgs.lib",
|
||||
"rev": "b9f04e3cf71c23bea21d2768051e6b3068d44734",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "nixpkgs.lib",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"plasma-manager": {
|
||||
"inputs": {
|
||||
"home-manager": [
|
||||
"home-manager"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1731193165,
|
||||
"narHash": "sha256-pGF8L5g9QpkQtJP9JmNIRNZfcyhJHf7uT+d8tqI1h6Y=",
|
||||
"owner": "nix-community",
|
||||
"repo": "plasma-manager",
|
||||
"rev": "f33173b9d22e554a6f869626bc01808d35995257",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "plasma-manager",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"firefox-addons": "firefox-addons",
|
||||
"firefox-nightly": "firefox-nightly",
|
||||
"home-manager": "home-manager",
|
||||
"nixos-grub-themes": "nixos-grub-themes",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"plasma-manager": "plasma-manager",
|
||||
"sddm-sugar-candy-nix": "sddm-sugar-candy-nix",
|
||||
"vscode-extensions": "vscode-extensions"
|
||||
}
|
||||
},
|
||||
"sddm-sugar-candy-nix": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1722593422,
|
||||
"narHash": "sha256-uZTuVWQEnfmcZj9QEEFCh0lMuCJULXQSurLTC/9tRgY=",
|
||||
"owner": "Zhaith-Izaliel",
|
||||
"repo": "sddm-sugar-candy-nix",
|
||||
"rev": "35d6fdb4eed20d682e992ae3c6095427e89c2b74",
|
||||
"type": "gitlab"
|
||||
},
|
||||
"original": {
|
||||
"owner": "Zhaith-Izaliel",
|
||||
"repo": "sddm-sugar-candy-nix",
|
||||
"type": "gitlab"
|
||||
}
|
||||
},
|
||||
"systems": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems_2": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"vscode-extensions": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat_2",
|
||||
"flake-utils": "flake-utils_3",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1732240454,
|
||||
"narHash": "sha256-P6DAyU0CoDhl8uCSjtrgbFEODfZdQalOpSb8itVmeIo=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nix-vscode-extensions",
|
||||
"rev": "ac441321f5667f9a12c45ba8e5a2969c1b57e318",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "nix-vscode-extensions",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
75
flake.nix
Executable file
75
flake.nix
Executable file
|
@ -0,0 +1,75 @@
|
|||
{
|
||||
description = "NixOS Configuration";
|
||||
|
||||
inputs = {
|
||||
# General NixOS config
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
# NixOS Grub Themes (hyperfluent)
|
||||
nixos-grub-themes = {
|
||||
url = "github:jeslie0/nixos-grub-themes";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
# SDDM Sugar Candy
|
||||
sddm-sugar-candy-nix = {
|
||||
url = "gitlab:Zhaith-Izaliel/sddm-sugar-candy-nix";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
# Home Manager + Plasma
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
plasma-manager = {
|
||||
url = "github:nix-community/plasma-manager";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
inputs.home-manager.follows = "home-manager";
|
||||
};
|
||||
# Firefox Nightly + Addons
|
||||
firefox-nightly = {
|
||||
url = "github:nix-community/flake-firefox-nightly";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
firefox-addons = {
|
||||
type = "gitlab";
|
||||
owner = "rycee";
|
||||
repo = "nur-expressions";
|
||||
dir = "/pkgs/firefox-addons";
|
||||
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
# VSCode extensions
|
||||
vscode-extensions = {
|
||||
url = "github:nix-community/nix-vscode-extensions";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
};
|
||||
|
||||
outputs = inputs@{ nixpkgs, home-manager, sddm-sugar-candy-nix, ... }: {
|
||||
nixosConfigurations.ty-nixos = nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
|
||||
modules = [
|
||||
sddm-sugar-candy-nix.nixosModules.default
|
||||
{
|
||||
nixpkgs = {
|
||||
overlays = [
|
||||
sddm-sugar-candy-nix.overlays.default
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
# Import legacy configuration
|
||||
./configuration.nix
|
||||
|
||||
# Home manager
|
||||
home-manager.nixosModules.home-manager
|
||||
./home-manager
|
||||
];
|
||||
|
||||
specialArgs = {
|
||||
inherit inputs;
|
||||
system = "x86_64-linux";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
41
hardware-configuration.nix
Executable file
41
hardware-configuration.nix
Executable file
|
@ -0,0 +1,41 @@
|
|||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||
# and may be overwritten by future invocations. Please make changes
|
||||
# to /etc/nixos/configuration.nix instead.
|
||||
{ config, lib, pkgs, modulesPath, ... }:
|
||||
|
||||
{
|
||||
imports =
|
||||
[ (modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "usb_storage" "sd_mod" ];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ "kvm-amd" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems."/" =
|
||||
{ device = "/dev/disk/by-uuid/f9bea90d-1dca-42d5-8297-0b5be85190a1";
|
||||
fsType = "btrfs";
|
||||
options = [ "subvol=@" ];
|
||||
};
|
||||
|
||||
boot.initrd.luks.devices."luks-16827abe-333c-43d7-b1b0-7d0df0b5931f".device = "/dev/disk/by-uuid/16827abe-333c-43d7-b1b0-7d0df0b5931f";
|
||||
|
||||
fileSystems."/boot" =
|
||||
{ device = "/dev/disk/by-uuid/B22B-9CCA";
|
||||
fsType = "vfat";
|
||||
options = [ "fmask=0077" "dmask=0077" ];
|
||||
};
|
||||
|
||||
swapDevices = [ ];
|
||||
|
||||
# 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
|
||||
# still possible to use this option, but it's recommended to use it in conjunction
|
||||
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||
networking.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.wlp2s0.useDHCP = lib.mkDefault true;
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
}
|
16
home-manager/default.nix
Executable file
16
home-manager/default.nix
Executable file
|
@ -0,0 +1,16 @@
|
|||
{ inputs, system, ... }:
|
||||
{
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.sharedModules = [ inputs.plasma-manager.homeManagerModules.plasma-manager ];
|
||||
home-manager.extraSpecialArgs = {
|
||||
inherit inputs;
|
||||
inherit system;
|
||||
};
|
||||
|
||||
home-manager.users.ty = {
|
||||
imports = [
|
||||
./home.nix
|
||||
];
|
||||
};
|
||||
}
|
16
home-manager/home.nix
Executable file
16
home-manager/home.nix
Executable file
|
@ -0,0 +1,16 @@
|
|||
{ ... }:
|
||||
{
|
||||
home.stateVersion = "24.05";
|
||||
|
||||
imports = [
|
||||
./modules/packages.nix
|
||||
./modules/plasma.nix
|
||||
./modules/vcs
|
||||
./modules/firefox.nix
|
||||
./modules/thunderbird.nix
|
||||
./modules/accounts
|
||||
./modules/gpg.nix
|
||||
./modules/shell
|
||||
./modules/vscode.nix
|
||||
];
|
||||
}
|
6
home-manager/modules/accounts/default.nix
Executable file
6
home-manager/modules/accounts/default.nix
Executable file
|
@ -0,0 +1,6 @@
|
|||
{ ... }:
|
||||
{
|
||||
imports = [
|
||||
./email.nix
|
||||
];
|
||||
}
|
44
home-manager/modules/accounts/email.nix
Executable file
44
home-manager/modules/accounts/email.nix
Executable file
|
@ -0,0 +1,44 @@
|
|||
{ ... }:
|
||||
{
|
||||
accounts.email.accounts = {
|
||||
PurelyMail = {
|
||||
realName = "Tyler Beckman";
|
||||
address = "ty@myriation.xyz";
|
||||
userName = "ty@myriation.xyz";
|
||||
primary = true;
|
||||
|
||||
folders = {
|
||||
inbox = "INBOX";
|
||||
drafts = "Drafts";
|
||||
sent = "Sent";
|
||||
trash = "Trash";
|
||||
};
|
||||
|
||||
gpg = {
|
||||
encryptByDefault = false;
|
||||
signByDefault = false;
|
||||
key = "A6299C20250223DCDEBA5E2C933B9437A97A56B8";
|
||||
};
|
||||
|
||||
imap = {
|
||||
host = "imap.purelymail.com";
|
||||
port = 993;
|
||||
tls = {
|
||||
enable = true;
|
||||
useStartTls = false;
|
||||
};
|
||||
};
|
||||
|
||||
smtp = {
|
||||
host = "smtp.purelymail.com";
|
||||
port = 465;
|
||||
tls = {
|
||||
enable = true;
|
||||
useStartTls = false;
|
||||
};
|
||||
};
|
||||
|
||||
thunderbird.enable = true;
|
||||
};
|
||||
};
|
||||
}
|
159
home-manager/modules/firefox.nix
Executable file
159
home-manager/modules/firefox.nix
Executable file
|
@ -0,0 +1,159 @@
|
|||
{ pkgs, inputs, system, ... }:
|
||||
{
|
||||
programs.firefox = {
|
||||
enable = true;
|
||||
policies = {
|
||||
ExtensionSettings = {
|
||||
# Force install alpenglow theme (why wouldn't you want it)
|
||||
"firefox-alpenglow@mozilla.org" = {
|
||||
install_url = "https://addons.mozilla.org/firefox/downloads/latest/firefox-alpenglow/latest.xpi";
|
||||
installation_mode = "force_installed";
|
||||
};
|
||||
};
|
||||
};
|
||||
profiles = {
|
||||
default = {
|
||||
id = 0;
|
||||
name = "default";
|
||||
isDefault = true;
|
||||
|
||||
# Settings
|
||||
settings = {
|
||||
# Theming
|
||||
"extensions.activeThemeID" = "firefox-alpenglow@mozilla.org"; # Purple
|
||||
"browser.tabs.inTitlebar" = 0; # Enable native title bar
|
||||
"browser.uidensity" = 2; # Touchscreen density
|
||||
"browser.newtab.extensionControlled" = true; # Tabliss
|
||||
"browser.startup.homepage_override.extensionControlled" = true; # More tabliss
|
||||
|
||||
# Extensions
|
||||
"extensions.autoDisableScopes" = 0; # Auto enable extensions
|
||||
|
||||
# Basic options
|
||||
"privacy.userContext.newTabContainerOnLeftClick.enabled" = true; # Container selection on +
|
||||
|
||||
# Toolbar customization
|
||||
"browser.uiCustomization.state" = ''
|
||||
{
|
||||
"placements": {
|
||||
"widget-overflow-fixed-list": [],
|
||||
"unified-extensions-area": [],
|
||||
"nav-bar": [
|
||||
"back-button",
|
||||
"forward-button",
|
||||
"stop-reload-button",
|
||||
"customizableui-special-spring1",
|
||||
"urlbar-container",
|
||||
"customizableui-special-spring2",
|
||||
"save-to-pocket-button",
|
||||
"downloads-button",
|
||||
"fxa-toolbar-menu-button",
|
||||
"reset-pbm-toolbar-button",
|
||||
"unified-extensions-button",
|
||||
"ublock0_raymondhill_net-browser-action",
|
||||
"_446900e4-71c2-419f-a6a7-df9c091e268b_-browser-action"
|
||||
],
|
||||
"toolbar-menubar": [
|
||||
"menubar-items"
|
||||
],
|
||||
"TabsToolbar": [
|
||||
"firefox-view-button",
|
||||
"tabbrowser-tabs",
|
||||
"new-tab-button",
|
||||
"alltabs-button"
|
||||
],
|
||||
"vertical-tabs": [],
|
||||
"PersonalToolbar": [
|
||||
"import-button",
|
||||
"personal-bookmarks"
|
||||
]
|
||||
},
|
||||
"seen": [
|
||||
"reset-pbm-toolbar-button",
|
||||
"profiler-button",
|
||||
"developer-button",
|
||||
"ublock0_raymondhill_net-browser-action",
|
||||
"_446900e4-71c2-419f-a6a7-df9c091e268b_-browser-action"
|
||||
],
|
||||
"dirtyAreaCache": [
|
||||
"nav-bar",
|
||||
"vertical-tabs",
|
||||
"PersonalToolbar",
|
||||
"toolbar-menubar",
|
||||
"TabsToolbar",
|
||||
"unified-extensions-area"
|
||||
],
|
||||
"currentVersion": 20,
|
||||
"newElementCount": 3
|
||||
}
|
||||
'';
|
||||
};
|
||||
|
||||
# Search engine configuration
|
||||
search = {
|
||||
force = true;
|
||||
default = "SearXNG";
|
||||
order = [ "SearXNG" "Google" "Wikipedia" "Nix Packages" "NixOS Wiki" ];
|
||||
engines = {
|
||||
# Nix Package Search
|
||||
"Nix Packages" = {
|
||||
urls = [{
|
||||
template = "https://search.nixos.org/packages";
|
||||
params = [
|
||||
{ name = "type"; value = "packages"; }
|
||||
{ name = "query"; value = "{searchTerms}"; }
|
||||
];
|
||||
}];
|
||||
icon = "''${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||
definedAliases = [ "@np" ];
|
||||
};
|
||||
# NixOS Wiki Search
|
||||
"NixOS Wiki" = {
|
||||
urls = [{ template = "https://nixos.wiki/index.php?search={searchTerms}"; }];
|
||||
iconUpdateURL = "https://nixos.wiki/favicon.png";
|
||||
updateInterval = 24 * 60 * 60 * 1000; # every day
|
||||
definedAliases = [ "@nw" ];
|
||||
};
|
||||
# Personal SearXNG instance
|
||||
"SearXNG" = {
|
||||
urls = [{ template = "https://search.myriation.xyz/?q={searchTerms}"; }];
|
||||
iconUpdateURL = "https://search.myriation.xyz/static/themes/simple/img/favicon.png";
|
||||
updateInterval = 24 * 60 * 60 * 1000; # every day
|
||||
definedAliases = [ "@sx" "@searx" ];
|
||||
};
|
||||
"Bing".metaData.hidden = true;
|
||||
"eBay".metaData.hidden = true;
|
||||
"Amazon.com".metaData.hidden = true;
|
||||
"DuckDuckGo".metaData.hidden = true;
|
||||
};
|
||||
};
|
||||
|
||||
# Extensions (NUR)
|
||||
extensions = with inputs.firefox-addons.packages."${system}"; [
|
||||
bitwarden
|
||||
ublock-origin
|
||||
tabliss
|
||||
];
|
||||
|
||||
# Containers
|
||||
containersForce = true;
|
||||
containers = {
|
||||
# The letters are a hack to sort the entries in firefox (it adds them alphabetically)
|
||||
A-Personal = {
|
||||
id = 2;
|
||||
name = "Personal";
|
||||
color = "purple";
|
||||
icon = "fingerprint";
|
||||
};
|
||||
|
||||
B-College = {
|
||||
id = 1;
|
||||
name = "College";
|
||||
color = "orange";
|
||||
icon = "fruit";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
62
home-manager/modules/gpg.nix
Executable file
62
home-manager/modules/gpg.nix
Executable file
|
@ -0,0 +1,62 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
programs.gpg = {
|
||||
enable = true;
|
||||
package = pkgs.gnupg;
|
||||
|
||||
mutableKeys = false;
|
||||
mutableTrust = false;
|
||||
|
||||
settings = {
|
||||
keyid-format = "LONG";
|
||||
};
|
||||
|
||||
publicKeys = [
|
||||
{
|
||||
trust = "ultimate";
|
||||
text = ''
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
mDMEY3FNLRYJKwYBBAHaRw8BAQdAzJpw9e+NCq+lNNxIooZqGdEq3eIySxi5iDaG
|
||||
WajRMYS0E1R5IDx0eUBibGFoYWoubGFuZD6IkwQTFgoAOwIbAQULCQgHAgIiAgYV
|
||||
CgkICwIEFgIDAQIeBwIXgBYhBKYpnCAlAiPc3rpeLJM7lDepela4BQJmy32yAAoJ
|
||||
EJM7lDepela4D5IA/jf1E/e1J3uc35VKc6AeJokbh4W/2r27ZFQv1H1oHBttAQCU
|
||||
FcMt0PGG//kiv6xKX0chxWAYoggmxeNGlcI548qBArQvVHlsZXIgQmVja21hbiAo
|
||||
ZWQyNTUxOSkgPHRiZWNrbWFuNTMwQGdtYWlsLmNvbT6IkAQTFggAOAIbAQULCQgH
|
||||
AgYVCgkICwIEFgIDAQIeAQIXgBYhBKYpnCAlAiPc3rpeLJM7lDepela4BQJkv+yV
|
||||
AAoJEJM7lDepela4FtABAJ80Vp0h7VatARFMO14WWow1zngUPJiBWvHmW7zflT1d
|
||||
AQDHh7N3Sj/Ij085NHbljB8oFhGUnFJv3PrP7RpA1oVTC7QgVHlsZXIgQmVja21h
|
||||
biA8dHlAbXlyaWF0aW9uLnh5ej6IzgQTFgoAdgIbAQULCQgHAgIiAgYVCgkICwIE
|
||||
FgIDAQIeBwIXgAIZARYhBKYpnCAlAiPc3rpeLJM7lDepela4BQJmy323NxSAAAAA
|
||||
ABAAHnByb29mQGFyaWFkbmUuaWRodHRwczovL215cmlhdGlvbi54eXova2V5b3hp
|
||||
ZGUACgkQkzuUN6l6VrhigwD+K+8YuIY6osUklUcvKbQMxOZbBIqjSa3MtavPTgXM
|
||||
K0EA/0QAN+/16mGdS0YPcq2AOISQNi4C3V1Lq9Xv+OePi0kEuDgEY3FPuxIKKwYB
|
||||
BAGXVQEFAQEHQJdRgJB1cY/faxDU76UfjRt91RhNMJ2+gmpgLjE+c3VXAwEIB4h4
|
||||
BBgWCAAgFiEEpimcICUCI9zeul4skzuUN6l6VrgFAmNxT7sCGwwACgkQkzuUN6l6
|
||||
VrhjUgEA5Jd1CjRsVnSDD6ujKqbER0fjhar8b2OHndzaJFjZcRAA/iIXZAQdZODL
|
||||
i67R7A5v97w8jN7a4wk45rscVbvNRfkLuDMEY3FPsBYJKwYBBAHaRw8BAQdAYwtz
|
||||
4Tcw9VBhrM62l+J0/ny0UNLGWNRKjT5evoNGrxeI7wQYFggAIBYhBKYpnCAlAiPc
|
||||
3rpeLJM7lDepela4BQJjcU+wAhsCAIEJEJM7lDepela4diAEGRYIAB0WIQTwjV6o
|
||||
sLRXn8aFdnQoE0QMdyVVpAUCY3FPsAAKCRAoE0QMdyVVpL43APsFQ/d9RJEuyQnG
|
||||
cy3f3Cjg5jb2XmERFHVB3D/90//yEgEAoPH4NEkVDc1m1zol34gcpMiUNvSTb/Rp
|
||||
sb5rpZ4HnARhtAEA825zCEk043kWRxrkPMRRa4QZwzBrPBJ9dFGi0WOr2Q8A/3vW
|
||||
pDJcqur4dGidvTzbLJXkm+vO5BJY9M6MuanT8iADuDMEY3FSeRYJKwYBBAHaRw8B
|
||||
AQdAf/an3gK28Vcj8Jcu50K7kpgV/wB96zWjcbtPXAsV4Y+IeAQYFggAIBYhBKYp
|
||||
nCAlAiPc3rpeLJM7lDepela4BQJjcVJ5AhsgAAoJEJM7lDepela46ocA/1NnMRDq
|
||||
vb0WHflAttm+HV4DJy+nXXEKrP52/7CqZ4X+AQDlf0iShUkvcj7ruMP9QSP+qmP2
|
||||
15dYmwRFY3dXw5+ZCQ==
|
||||
=tMzS
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
'';
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
services.gpg-agent = {
|
||||
enable = true;
|
||||
enableSshSupport = true;
|
||||
enableZshIntegration = true;
|
||||
pinentryPackage = pkgs.pinentry-qt;
|
||||
# sshKeys = [ ];
|
||||
};
|
||||
}
|
47
home-manager/modules/packages.nix
Executable file
47
home-manager/modules/packages.nix
Executable file
|
@ -0,0 +1,47 @@
|
|||
{ pkgs, inputs, system, ... }:
|
||||
{
|
||||
home.packages = (with pkgs; let vscode-extensions = inputs.vscode-extensions.extensions."${system}"; in [
|
||||
# Chat
|
||||
element-desktop
|
||||
vesktop
|
||||
|
||||
# Tailsccale
|
||||
tailscale
|
||||
|
||||
# Fonts
|
||||
fira-code-nerdfont
|
||||
|
||||
# KDE Packages
|
||||
kdePackages.kate
|
||||
kdePackages.elisa
|
||||
kdePackages.kdeconnect-kde
|
||||
|
||||
# KDE Themes
|
||||
vimix-cursors
|
||||
|
||||
# Programming
|
||||
nixd # NixD LSP for .nix files
|
||||
|
||||
# :3
|
||||
fastfetch
|
||||
|
||||
# Tools
|
||||
ripgrep # Text searching and manipulation
|
||||
jq # JSON filtering
|
||||
eza # Directory lister
|
||||
bat # File reading
|
||||
doggo # DNS Requests
|
||||
nmap # Network scanning
|
||||
glow # Markdown rendering
|
||||
|
||||
# Process tools
|
||||
btop # Process monitor
|
||||
nvtopPackages.full # GPU monitor
|
||||
|
||||
# Basic linux tools
|
||||
usbutils # `lsusb`
|
||||
]) ++ [
|
||||
# Firefox nightly
|
||||
inputs.firefox-nightly.packages.${system}.firefox-nightly-bin
|
||||
];
|
||||
}
|
37
home-manager/modules/plasma.nix
Executable file
37
home-manager/modules/plasma.nix
Executable file
|
@ -0,0 +1,37 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
programs.plasma = {
|
||||
enable = true;
|
||||
|
||||
workspace = {
|
||||
# Enable Breeze Dark theme
|
||||
lookAndFeel = "org.kde.breezedark.desktop";
|
||||
# Set cursor theme
|
||||
cursor = {
|
||||
theme = "Vimix-cursors";
|
||||
size = 24;
|
||||
};
|
||||
# Set icon theme TODO Package modern beautyline
|
||||
iconTheme = "breeze-dark";
|
||||
# Set wallpaper to Shell
|
||||
wallpaper = "${pkgs.kdePackages.plasma-workspace-wallpapers}/share/wallpapers/Shell/contents/images/5120x2880.jpg";
|
||||
};
|
||||
|
||||
# TODO Powerdevil
|
||||
|
||||
kwin = {
|
||||
edgeBarrier = 0; # Disables the highlighting when approaching an edge with an effect
|
||||
cornerBarrier = false;
|
||||
};
|
||||
|
||||
kscreenlocker = {
|
||||
lockOnResume = true;
|
||||
timeout = 10;
|
||||
};
|
||||
|
||||
configFile = {
|
||||
# Enable indexing
|
||||
baloofilerc."Basic Settings"."Indexing-Enabled" = true;
|
||||
};
|
||||
};
|
||||
}
|
8
home-manager/modules/shell/default.nix
Normal file
8
home-manager/modules/shell/default.nix
Normal file
|
@ -0,0 +1,8 @@
|
|||
{ ... }:
|
||||
{
|
||||
imports = [
|
||||
./zsh.nix
|
||||
./starship.nix
|
||||
./konsole.nix
|
||||
];
|
||||
}
|
23
home-manager/modules/shell/konsole.nix
Normal file
23
home-manager/modules/shell/konsole.nix
Normal file
|
@ -0,0 +1,23 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
programs.konsole = {
|
||||
enable = true;
|
||||
defaultProfile = "Primary";
|
||||
profiles = {
|
||||
Primary = {
|
||||
name = "Primary";
|
||||
command = "${pkgs.zsh}/bin/zsh";
|
||||
font = {
|
||||
name = "FiraMono Nerd Font Mono";
|
||||
};
|
||||
extraConfig = {
|
||||
Appearance = {
|
||||
UseFontBrailleChararacters = true;
|
||||
};
|
||||
|
||||
Scrolling.HistoryMode = 1;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
215
home-manager/modules/shell/starship.nix
Normal file
215
home-manager/modules/shell/starship.nix
Normal file
|
@ -0,0 +1,215 @@
|
|||
{ ... }: {
|
||||
# Shell prompt
|
||||
programs.starship = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
settings = {
|
||||
add_newline = true;
|
||||
|
||||
format = ""
|
||||
# Left powerline
|
||||
+ "[╭─](fg:242)[](fg:238)"
|
||||
+ "$os"
|
||||
+ "[ ](fg:007 bg:prev_bg)"
|
||||
+ "[$username@$hostname](bg:prev_bg)"
|
||||
+ "[ ](fg:007 bg:prev_bg)"
|
||||
+ "$shell$shlvl"
|
||||
+ "[ ](fg:007 bg:prev_bg)"
|
||||
+ "$directory"
|
||||
+ "[ ](bg:prev_bg)[](fg:prev_bg bg:none)"
|
||||
# Middle filling
|
||||
+ "$fill"
|
||||
# Right powerline
|
||||
+ "[](fg:238 bg:none)[ ](bg:prev_fg)"
|
||||
+ "\${custom.status}"
|
||||
+ "\${custom.time}"
|
||||
+ "[ ](fg:007 bg:prev_bg)"
|
||||
+ "\${custom.date}"
|
||||
+ "[ ](fg:007 bg:prev_bg)"
|
||||
+ "$battery"
|
||||
+ "[](fg:prev_bg)[─╮ ](fg:242)"
|
||||
# Left prompter
|
||||
+ "\n[╰─ ](fg:242)";
|
||||
|
||||
# Right prompter
|
||||
right_format = "[─╯ ](fg:242)";
|
||||
|
||||
os = {
|
||||
disabled = false;
|
||||
style = "bg:238 fg:007";
|
||||
|
||||
symbols = {
|
||||
Arch = "";
|
||||
Ubuntu = "";
|
||||
NixOS = "";
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
username = {
|
||||
disabled = false;
|
||||
format = "[$user]($style)";
|
||||
style_user = "bg:prev_bg fg:#63D0EE bold";
|
||||
style_root = "bg:prev_bg fg:#EFA9B1 bold";
|
||||
show_always = true;
|
||||
};
|
||||
|
||||
hostname = {
|
||||
disabled = false;
|
||||
ssh_only = false;
|
||||
ssh_symbol = "🌐 ";
|
||||
trim_at = "";
|
||||
style = "bg:prev_bg fg:prev_fg";
|
||||
format = "[$ssh_symbol$hostname]($style)";
|
||||
};
|
||||
|
||||
shell = {
|
||||
disabled = false;
|
||||
format = "[$indicator]($style)";
|
||||
style = "fg:#FFFFFF bg:prev_bg";
|
||||
};
|
||||
|
||||
shlvl = {
|
||||
disabled = false;
|
||||
threshold = 2;
|
||||
symbol = "";
|
||||
repeat = false;
|
||||
format = "[ \\(](bg:prev_bg fg:#FFFFFF)[$symbol$shlvl]($style)[\\)](bg:prev_bg fg:#FFFFFF)";
|
||||
style = "bg:prev_bg fg:#F5F543";
|
||||
};
|
||||
|
||||
directory = {
|
||||
disabled = false;
|
||||
home_symbol = "~";
|
||||
read_only = " ";
|
||||
truncate_to_repo = true;
|
||||
use_logical_path = true;
|
||||
fish_style_pwd_dir_length = 1;
|
||||
truncation_length = 3;
|
||||
style = "bold fg:#63D0EE bg:prev_bg";
|
||||
read_only_style = "bold fg:#63D0EE bg:prev_bg";
|
||||
format = "[$read_only]($read_only_style)[$path]($style)";
|
||||
repo_root_format = "[$read_only]($read_only_style)[$before_root_path]($before_repo_root_style)[$repo_root]($repo_root_style)[$path]($style)";
|
||||
};
|
||||
|
||||
# [status]
|
||||
# disabled = false
|
||||
# recognize_signal_code = false
|
||||
# map_symbol = false
|
||||
|
||||
# success_symbol = "✔"
|
||||
# symbol = "✘"
|
||||
|
||||
# # TODO Figure out status-dependent styling
|
||||
# style = "bold fg:#26FF05 bg:prev_bg"
|
||||
# format = "[$status $symbol]($style)"
|
||||
|
||||
custom.status = {
|
||||
disabled = false;
|
||||
when = ''test "$?" -ne 0'';
|
||||
command = ''echo "$?"'';
|
||||
style = "bg:238 fg:#EFA9B1";
|
||||
symbol = "✘";
|
||||
format = "[$output $symbol]($style)";
|
||||
};
|
||||
|
||||
custom.time = {
|
||||
disabled = false;
|
||||
when = true;
|
||||
command = ''date +"%I:%M:%S"'';
|
||||
description = "The current local time";
|
||||
style = "bg:238 fg:#63D0EE bold";
|
||||
format = "[$output]($style)";
|
||||
};
|
||||
|
||||
custom.date = {
|
||||
disabled = false;
|
||||
when = true;
|
||||
command = ''date +"%b %e %Y"'';
|
||||
description = "The current local date";
|
||||
style = "bg:238 fg:#E5B9E9 bold";
|
||||
format = "[$output]($style)";
|
||||
};
|
||||
|
||||
battery = {
|
||||
disabled = false;
|
||||
format = "[$symbol$percentage ]($style)";
|
||||
|
||||
display = [
|
||||
{
|
||||
threshold = 10;
|
||||
discharging_symbol = " ";
|
||||
charging_symbol = " ";
|
||||
style = "bold fg:#EFA9B1 bg:prev_bg";
|
||||
}
|
||||
{
|
||||
threshold = 20;
|
||||
discharging_symbol = " ";
|
||||
charging_symbol = " ";
|
||||
style = "bold fg:#FF9933 bg:prev_bg";
|
||||
}
|
||||
{
|
||||
threshold = 30;
|
||||
discharging_symbol = " ";
|
||||
charging_symbol = " ";
|
||||
style = "bold fg:#FF9933 bg:prev_bg";
|
||||
}
|
||||
{
|
||||
threshold = 40;
|
||||
discharging_symbol = " ";
|
||||
charging_symbol = " ";
|
||||
style = "bold fg:#F8E45C bg:prev_bg";
|
||||
}
|
||||
{
|
||||
threshold = 50;
|
||||
discharging_symbol = " ";
|
||||
charging_symbol = " ";
|
||||
style = "bold fg:#F8E45C bg:prev_bg";
|
||||
}
|
||||
{
|
||||
threshold = 60;
|
||||
discharging_symbol = " ";
|
||||
charging_symbol = " ";
|
||||
style = "bold fg:#FFFFFF bg:prev_bg";
|
||||
}
|
||||
{
|
||||
threshold = 70;
|
||||
discharging_symbol = " ";
|
||||
charging_symbol = " ";
|
||||
style = "bold fg:#FFFFFF bg:prev_bg";
|
||||
}
|
||||
{
|
||||
threshold = 75;
|
||||
discharging_symbol = " ";
|
||||
charging_symbol = " ";
|
||||
style = "bold fg:green bg:prev_bg";
|
||||
}
|
||||
{
|
||||
threshold = 80;
|
||||
discharging_symbol = " ";
|
||||
charging_symbol = " ";
|
||||
style = "bold fg:green bg:prev_bg";
|
||||
}
|
||||
{
|
||||
threshold = 97;
|
||||
discharging_symbol = " ";
|
||||
charging_symbol = " ";
|
||||
style = "bold fg:green bg:prev_bg";
|
||||
}
|
||||
{
|
||||
threshold = 100;
|
||||
discharging_symbol = " ";
|
||||
charging_symbol = " ";
|
||||
style = "bold fg:green bg:prev_bg";
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
fill = {
|
||||
disabled = false;
|
||||
style = "fg:242";
|
||||
symbol = "─";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
59
home-manager/modules/shell/zsh.nix
Normal file
59
home-manager/modules/shell/zsh.nix
Normal file
|
@ -0,0 +1,59 @@
|
|||
{ ... }:
|
||||
{
|
||||
# Zsh itself
|
||||
programs.zsh = {
|
||||
enable = true;
|
||||
|
||||
autosuggestion = {
|
||||
enable = true;
|
||||
strategy = [ "completion" ];
|
||||
};
|
||||
|
||||
syntaxHighlighting = {
|
||||
enable = true;
|
||||
highlighters = [ "main" "brackets" "cursor" "line" ];
|
||||
};
|
||||
|
||||
initExtra = ''
|
||||
bindkey "^[[H" beginning-of-line
|
||||
bindkey "^[[F" end-of-line
|
||||
bindkey "^[[3~" delete-char
|
||||
bindkey "^[[1;5C" forward-word
|
||||
bindkey "^[[1;5D" backward-word
|
||||
bindkey "5~" kill-word
|
||||
bindkey "^H" backward-kill-word
|
||||
bindkey "^Z" undo
|
||||
'';
|
||||
};
|
||||
|
||||
# Atuin shell history
|
||||
programs.atuin = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
settings = {
|
||||
dialect = "us";
|
||||
auto_sync = true;
|
||||
update_check = false;
|
||||
sync_address = "https://atuin.myriation.xyz";
|
||||
sync_frequency = "0";
|
||||
search_mode = "fuzzy";
|
||||
filter_mode = "global";
|
||||
style = "full";
|
||||
invert = false;
|
||||
show_help = true;
|
||||
exit_mode = "return-query";
|
||||
store_failed = true;
|
||||
secrets_filter = true;
|
||||
enter_accept = false;
|
||||
|
||||
stats = {
|
||||
common_prefix = [ "sudo" "doas" ];
|
||||
};
|
||||
|
||||
sync = {
|
||||
records = true;
|
||||
dotfiles = false;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
15
home-manager/modules/thunderbird.nix
Executable file
15
home-manager/modules/thunderbird.nix
Executable file
|
@ -0,0 +1,15 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
programs.thunderbird = {
|
||||
enable = true;
|
||||
package = pkgs.thunderbird-latest;
|
||||
profiles = {
|
||||
default = {
|
||||
isDefault = true;
|
||||
withExternalGnupg = true;
|
||||
};
|
||||
};
|
||||
|
||||
settings = {};
|
||||
};
|
||||
}
|
7
home-manager/modules/vcs/default.nix
Normal file
7
home-manager/modules/vcs/default.nix
Normal file
|
@ -0,0 +1,7 @@
|
|||
{ ... }:
|
||||
{
|
||||
imports = [
|
||||
./git.nix
|
||||
./jj.nix
|
||||
];
|
||||
}
|
18
home-manager/modules/vcs/git.nix
Normal file
18
home-manager/modules/vcs/git.nix
Normal file
|
@ -0,0 +1,18 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
programs.git = {
|
||||
enable = true;
|
||||
package = pkgs.git;
|
||||
|
||||
userName = "Tyler Beckman";
|
||||
userEmail = "ty@myriation.xyz";
|
||||
|
||||
delta.enable = true;
|
||||
lfs.enable = true;
|
||||
|
||||
signing = {
|
||||
key = "A6299C20250223DCDEBA5E2C933B9437A97A56B8";
|
||||
signByDefault = true;
|
||||
};
|
||||
};
|
||||
}
|
29
home-manager/modules/vcs/jj.nix
Normal file
29
home-manager/modules/vcs/jj.nix
Normal file
|
@ -0,0 +1,29 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
programs.jujutsu = {
|
||||
enable = true;
|
||||
package = pkgs.jujutsu;
|
||||
|
||||
settings = {
|
||||
user = {
|
||||
name = "Tyler Beckman";
|
||||
email = "ty@myriation.xyz";
|
||||
};
|
||||
|
||||
signing = {
|
||||
sign-all = true;
|
||||
backend = "gpg";
|
||||
key = "A6299C20250223DCDEBA5E2C933B9437A97A56B8";
|
||||
};
|
||||
|
||||
ui = {
|
||||
pager = "delta";
|
||||
default-command = "log";
|
||||
|
||||
diff = {
|
||||
format = "git";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
40
home-manager/modules/vscode.nix
Normal file
40
home-manager/modules/vscode.nix
Normal file
|
@ -0,0 +1,40 @@
|
|||
{ pkgs, inputs, system, ... }:
|
||||
{
|
||||
programs.vscode = {
|
||||
enable = true;
|
||||
package = pkgs.vscodium;
|
||||
|
||||
enableUpdateCheck = false;
|
||||
enableExtensionUpdateCheck = false;
|
||||
mutableExtensionsDir = false;
|
||||
|
||||
extensions = with inputs.vscode-extensions.extensions."${system}".open-vsx; [
|
||||
rust-lang.rust-analyzer
|
||||
jnoortheen.nix-ide
|
||||
];
|
||||
|
||||
userSettings = {
|
||||
# Editor
|
||||
"editor.fontFamily" = "'FiraCode Nerd Font Mono', 'Droid Sans Mono', 'monospace', monospace";
|
||||
# JJ
|
||||
"files.watcherExclude" = [
|
||||
"**/.git/objects/**"
|
||||
"**/.git/subtree-cache/**"
|
||||
"**/.hg/store/**"
|
||||
"**/.jj"
|
||||
];
|
||||
"files.exclude" = [
|
||||
"**/.git"
|
||||
"**/.jj"
|
||||
"**/.svn"
|
||||
"**/.hg"
|
||||
"**/CVS"
|
||||
"**/.DS_Store"
|
||||
"**/Thumbs.db"
|
||||
];
|
||||
# Nix
|
||||
"nix.enableLanguageServer" = true;
|
||||
"nix.serverPath" = "nixd";
|
||||
};
|
||||
};
|
||||
}
|
Loading…
Reference in a new issue