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-----
|
||||||
|
|
||||||
|
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
|
||||||
|
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