Compare commits
No commits in common. "main" and "reorg" have entirely different histories.
48 changed files with 832 additions and 1253 deletions
3
.gitignore
vendored
3
.gitignore
vendored
|
|
@ -1,3 +1,2 @@
|
||||||
|
result/*
|
||||||
result
|
result
|
||||||
result/
|
|
||||||
https_cache.sqlite
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,8 @@
|
||||||
# NixOS Config
|
# NixOS Config
|
||||||
My personal NixOS Configuration Repository
|
My personal NixOS Configuration Repository
|
||||||
|
|
||||||
|
This Nix flake defines NixOS configurations for two machines: creatorforge-vm and creatorforge-framework. The flake imports various external repositories to provide additional functionality, such as Home Manager, sops-nix, and disko.
|
||||||
|
|
||||||
|
Here is an overview of the flake:
|
||||||
|
|
||||||
[](https://builtwithnix.org)
|
[](https://builtwithnix.org)
|
||||||
|
|
|
||||||
942
flake.lock
generated
942
flake.lock
generated
File diff suppressed because it is too large
Load diff
50
flake.nix
50
flake.nix
|
|
@ -1,28 +1,36 @@
|
||||||
{
|
{
|
||||||
description = "Nixos config flake";
|
description = "spec's nixos configs";
|
||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05";
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-23.11";
|
||||||
home-manager = {
|
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
|
||||||
url = "github:nix-community/home-manager/release-25.05";
|
sops-nix.url = "github:Mic92/sops-nix";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
xremap.url = "github:xremap/nix-flake";
|
||||||
|
hyprland.url = "github:hyprwm/Hyprland";
|
||||||
|
home-manager = {
|
||||||
|
url = "github:nix-community/home-manager/release-23.11";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
disko = {
|
||||||
|
url = "github:nix-community/disko";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
sops-nix.url = "github:Mic92/sops-nix";
|
outputs = { self, nixpkgs, ... }@inputs: {
|
||||||
xremap.url = "github:xremap/nix-flake";
|
|
||||||
hyprland.url = "github:hyprwm/Hyprland";
|
|
||||||
sk-extract.url = "git+https://git.skdevstudios.com/specCon18/sk_extract.git";
|
|
||||||
yunodo.url = "git+https://git.skdevstudios.com/specCon18/yunodo_redux.git";
|
|
||||||
};
|
|
||||||
|
|
||||||
outputs = { self, nixpkgs, ... }@inputs: {
|
nixosConfigurations = {
|
||||||
nixosConfigurations.katana = nixpkgs.lib.nixosSystem {
|
katana = nixpkgs.lib.nixosSystem {
|
||||||
specialArgs = {inherit inputs;};
|
specialArgs = { inherit inputs; };
|
||||||
modules = [
|
# Define the system type
|
||||||
inputs.home-manager.nixosModules.default
|
system = "x86_64-linux";
|
||||||
./hosts/katana.nix
|
homeManagerModules.default = ./home_manager/home-manager.nix;
|
||||||
./modules
|
# Define the modules for the configuration
|
||||||
./users/speccon18
|
modules = [
|
||||||
];
|
# Your configuration modules here. Example:
|
||||||
|
./hosts/katana.nix
|
||||||
|
./nixosModules/default.nix
|
||||||
|
];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,16 @@
|
||||||
{ config, pkgs, lib, self,inputs, ... }:
|
{ modulesPath, config, pkgs, lib, self, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
system.stateVersion = "23.05";
|
system.stateVersion = "23.05";
|
||||||
|
|
||||||
|
imports = [
|
||||||
|
(modulesPath + "/installer/scan/not-detected.nix")
|
||||||
|
];
|
||||||
|
|
||||||
# Hardware
|
# Hardware
|
||||||
hardware = {
|
hardware = {
|
||||||
enableRedistributableFirmware = lib.mkDefault true;
|
cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
pulseaudio.enable = false;
|
||||||
bluetooth = {
|
bluetooth = {
|
||||||
enable = true; # enables support for Bluetooth
|
enable = true; # enables support for Bluetooth
|
||||||
powerOnBoot = true; # powers up the default Bluetooth controller on boot
|
powerOnBoot = true; # powers up the default Bluetooth controller on boot
|
||||||
|
|
@ -15,7 +20,7 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# Boot
|
# Boot
|
||||||
boot = {
|
boot = {
|
||||||
|
|
@ -35,19 +40,16 @@
|
||||||
|
|
||||||
fileSystems = {
|
fileSystems = {
|
||||||
"/" = {
|
"/" = {
|
||||||
device = "/dev/disk/by-uuid/7a97edd8-c5a9-4354-a461-24c0f311e61b";
|
device = "/dev/disk/by-uuid/55c746b3-b9dc-4c9b-ab56-de68a561f9a3";
|
||||||
fsType = "ext4";
|
fsType = "ext4";
|
||||||
};
|
};
|
||||||
"/boot" = {
|
"/boot" = {
|
||||||
device = "/dev/disk/by-uuid/F0BD-FE72";
|
device = "/dev/disk/by-uuid/0C59-9996";
|
||||||
fsType = "vfat";
|
fsType = "vfat";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
swapDevices = [
|
|
||||||
{
|
swapDevices = [ ];
|
||||||
device = "/dev/disk/by-uuid/e107d78d-d934-4939-889d-1860410321d5";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
# Networking
|
# Networking
|
||||||
networking = {
|
networking = {
|
||||||
|
|
@ -60,6 +62,8 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Sound
|
||||||
|
sound.enable = true;
|
||||||
|
|
||||||
# Localization
|
# Localization
|
||||||
time.timeZone = "America/Detroit";
|
time.timeZone = "America/Detroit";
|
||||||
|
|
@ -78,31 +82,25 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
programs.steam.enable = true;
|
# Services.
|
||||||
|
|
||||||
# Services
|
|
||||||
services = {
|
services = {
|
||||||
pcscd.enable = true;
|
blueman.enable = true;
|
||||||
blueman.enable = false;
|
|
||||||
pulseaudio.enable = false;
|
|
||||||
printing.enable = true;
|
printing.enable = true;
|
||||||
xserver = {
|
xserver = {
|
||||||
xkb = {
|
layout = "us";
|
||||||
layout = "us";
|
xkbVariant = "";
|
||||||
variant = "";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# Package Manager
|
# Package Manager
|
||||||
nixpkgs = {
|
nixpkgs = {
|
||||||
config = {
|
config.allowUnfree = true;
|
||||||
allowUnfree = true;
|
|
||||||
};
|
|
||||||
hostPlatform = lib.mkDefault "x86_64-linux";
|
hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
};
|
};
|
||||||
|
|
||||||
nix = {
|
nix = {
|
||||||
|
# Sets flakes to unstable track instead of stable #
|
||||||
|
package = pkgs.nixUnstable; # or versioned attributes like nix_2_4
|
||||||
# Enable flakes and nix-command
|
# Enable flakes and nix-command
|
||||||
extraOptions = ''experimental-features = nix-command flakes'';
|
extraOptions = ''experimental-features = nix-command flakes'';
|
||||||
# Auto maintainence
|
# Auto maintainence
|
||||||
|
|
@ -116,42 +114,32 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
gparted # Drive Partition Manger
|
gparted
|
||||||
bluez # Bluetooth Stack
|
bluez
|
||||||
# blueman # Bluetooth Management
|
blueman
|
||||||
home-manager # Dotfiles Management
|
nerdfonts
|
||||||
pkg-config # Determine lib locations for linking during compliation
|
home-manager
|
||||||
ripgrep # regex parser written in rust
|
pkg-config
|
||||||
openssl # SSL TLS Protocol
|
ripgrep
|
||||||
tree # Filetree to stdout
|
openssl
|
||||||
eza # LS rewritten in rust
|
tree
|
||||||
zsh # Prefered Shell
|
eza
|
||||||
|
htop
|
||||||
|
zsh
|
||||||
dig #dns lookup
|
dig #dns lookup
|
||||||
rage #file encryption
|
rage #file encryption
|
||||||
age-plugin-yubikey #plugin for rage to manage yubi-2fa
|
age-plugin-yubikey #plugin for rage to manage yubi-2fa
|
||||||
sops #file based secrets operations
|
sops #file based secrets operations
|
||||||
direnv #used for development environments
|
direnv #used for development environments
|
||||||
gcc # Gnu C Compiler
|
gcc
|
||||||
bottom # Top rewritten in rust
|
bottom
|
||||||
felix-fm # File browser tui written in rust
|
felix-fm
|
||||||
discord # Discord for comms with friends
|
zulip
|
||||||
neovim # Modal Text Editor
|
vscode
|
||||||
brave # Web Browser
|
|
||||||
libation # Backup audible libraries
|
|
||||||
libreoffice-qt6 # Microsoft office but OSS
|
|
||||||
spotify # Spotify offical client
|
|
||||||
p7zip # posix complient 7zip
|
|
||||||
yubioath-flutter # Yubico Authenticator Client
|
|
||||||
lazygit # Git tui written in rust
|
|
||||||
glow # Markdown renderer for terminal
|
|
||||||
inputs.sk-extract.packages.${system}.default
|
|
||||||
inputs.yunodo.packages.${system}.default
|
|
||||||
signal-desktop
|
|
||||||
];
|
];
|
||||||
|
|
||||||
# Fonts
|
# Fonts
|
||||||
fonts.packages = [
|
fonts.packages = with pkgs; [
|
||||||
pkgs.nerd-fonts.droid-sans-mono
|
(nerdfonts.override { fonts = [ "SourceCodePro" "DroidSansMono" ]; })
|
||||||
];
|
];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
{config,lib,inputs,...}:{
|
|
||||||
imports = [
|
|
||||||
./system
|
|
||||||
./home-manager
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
{inputs,config,pkgs,...}:{
|
|
||||||
imports = [
|
|
||||||
inputs.home-manager.nixosModules.home-manager
|
|
||||||
];
|
|
||||||
home-manager = {
|
|
||||||
# useGlobalPackages = true;
|
|
||||||
# useUserPackages = true;
|
|
||||||
extraSpecialArgs = { inherit inputs; };
|
|
||||||
users.speccon18 = import ./home.nix;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,10 +0,0 @@
|
||||||
{ pkgs, config, lib, ...}:
|
|
||||||
{
|
|
||||||
options.speccon18.hm.direnv.enable = lib.mkEnableOption "enables direnv with zsh integration";
|
|
||||||
config = lib.mkIf config.speccon18.hm.direnv.enable {
|
|
||||||
programs.direnv = {
|
|
||||||
enable = true;
|
|
||||||
enableZshIntegration = lib.mkDefault true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,111 +0,0 @@
|
||||||
{ config, pkgs, ... }:
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./alacritty.nix
|
|
||||||
./rio.nix
|
|
||||||
./direnv.nix
|
|
||||||
./git.nix
|
|
||||||
./ncspot.nix
|
|
||||||
./starship.nix
|
|
||||||
./syncthing.nix
|
|
||||||
./waybar.nix
|
|
||||||
./zellij.nix
|
|
||||||
./zoxide.nix
|
|
||||||
./zsh.nix
|
|
||||||
./ssh.nix
|
|
||||||
./superfile.nix
|
|
||||||
];
|
|
||||||
speccon18.hm.alacritty.enable = true;
|
|
||||||
speccon18.hm.direnv.enable = true;
|
|
||||||
speccon18.hm.git.enable = true;
|
|
||||||
speccon18.hm.ncspot.enable = true;
|
|
||||||
speccon18.hm.starship.enable = true;
|
|
||||||
speccon18.hm.syncthing.enable = false;
|
|
||||||
speccon18.hm.waybar.enable = false;
|
|
||||||
speccon18.hm.zellij.enable = true;
|
|
||||||
speccon18.hm.zoxide.enable = true;
|
|
||||||
speccon18.hm.zsh.enable = true;
|
|
||||||
speccon18.hm.rio.enable = false;
|
|
||||||
speccon18.hm.ssh.enable = true;
|
|
||||||
speccon18.hm.superfile.enable = true;
|
|
||||||
# Home Manager needs a bit of information about you and the paths it should
|
|
||||||
# manage.
|
|
||||||
home = {
|
|
||||||
username = "speccon18";
|
|
||||||
homeDirectory = "/home/speccon18";
|
|
||||||
# This value determines the Home Manager release that your configuration is
|
|
||||||
# compatible with. This helps avoid breakage when a new Home Manager release
|
|
||||||
# introduces backwards incompatible changes.
|
|
||||||
#
|
|
||||||
# You should not change this value, even if you update Home Manager. If you do
|
|
||||||
# want to update the value, then make sure to first check the Home Manager
|
|
||||||
# release notes.
|
|
||||||
stateVersion = "23.11"; # Please read the comment before changing.
|
|
||||||
|
|
||||||
# The home.packages option allows you to install Nix packages into your
|
|
||||||
# environment.
|
|
||||||
packages = with pkgs; [
|
|
||||||
calibre
|
|
||||||
bitwarden
|
|
||||||
gimp
|
|
||||||
vlc
|
|
||||||
atuin
|
|
||||||
superfile
|
|
||||||
#rio
|
|
||||||
#imgcat
|
|
||||||
|
|
||||||
# # Adds the 'hello' command to your environment. It prints a friendly
|
|
||||||
# # "Hello, world!" when run.
|
|
||||||
# pkgs.hello
|
|
||||||
|
|
||||||
# # It is sometimes useful to fine-tune packages, for example, by applying
|
|
||||||
# # overrides. You can do that directly here, just don't forget the
|
|
||||||
# # parentheses. Maybe you want to install Nerd Fonts with a limited number of
|
|
||||||
# # fonts?
|
|
||||||
# (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; })
|
|
||||||
|
|
||||||
# # You can also create simple shell scripts directly inside your
|
|
||||||
# # configuration. For example, this adds a command 'my-hello' to your
|
|
||||||
# # environment:
|
|
||||||
# (pkgs.writeShellScriptBin "my-hello" ''
|
|
||||||
# echo "Hello, ${config.home.username}!"
|
|
||||||
# '')
|
|
||||||
];
|
|
||||||
|
|
||||||
# Home Manager is pretty good at managing dotfiles. The primary way to manage
|
|
||||||
# plain files is through 'home.file'.
|
|
||||||
file = {
|
|
||||||
# # Building this configuration will create a copy of 'dotfiles/screenrc' in
|
|
||||||
# # the Nix store. Activating the configuration will then make '~/.screenrc' a
|
|
||||||
# # symlink to the Nix store copy.
|
|
||||||
# ".screenrc".source = dotfiles/screenrc;
|
|
||||||
|
|
||||||
# # You can also set the file content immediately.
|
|
||||||
# ".gradle/gradle.properties".text = ''
|
|
||||||
# org.gradle.console=verbose
|
|
||||||
# org.gradle.daemon.idletimeout=3600000
|
|
||||||
# '';
|
|
||||||
};
|
|
||||||
|
|
||||||
# Home Manager can also manage your environment variables through
|
|
||||||
# 'home.sessionVariables'. If you don't want to manage your shell through Home
|
|
||||||
# Manager then you have to manually source 'hm-session-vars.sh' located at
|
|
||||||
# either
|
|
||||||
#
|
|
||||||
# ~/.nix-profile/etc/profile.d/hm-session-vars.sh
|
|
||||||
#
|
|
||||||
# or
|
|
||||||
#
|
|
||||||
# ~/.local/state/nix/profiles/profile/etc/profile.d/hm-session-vars.sh
|
|
||||||
#
|
|
||||||
# or
|
|
||||||
#
|
|
||||||
# /etc/profiles/per-user/speccon18/etc/profile.d/hm-session-vars.sh
|
|
||||||
#
|
|
||||||
sessionVariables = {
|
|
||||||
# EDITOR = "emacs";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
# Let Home Manager install and manage itself.
|
|
||||||
programs.home-manager.enable = true;
|
|
||||||
}
|
|
||||||
|
|
@ -1,10 +0,0 @@
|
||||||
{ pkgs, config, lib, ...}:
|
|
||||||
{
|
|
||||||
options.speccon18.hm.ncspot.enable = lib.mkEnableOption "enable ncspot";
|
|
||||||
config = lib.mkIf config.speccon18.hm.ncspot.enable {
|
|
||||||
programs.ncspot = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.ncspot;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,10 +0,0 @@
|
||||||
{ config, lib, pkgs,... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
options.speccon18.hm.rio.enable = lib.mkEnableOption "Enable Rio Term";
|
|
||||||
config = lib.mkIf config.speccon18.hm.rio.enable {
|
|
||||||
programs.rio= {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,17 +0,0 @@
|
||||||
{pkgs, config, lib, ...}:{
|
|
||||||
options.speccon18.hm.ssh.enable = lib.mkEnableOption "enables specs personal git preferences";
|
|
||||||
config = lib.mkIf config.speccon18.hm.ssh.enable {
|
|
||||||
programs.ssh = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
matchBlocks = {
|
|
||||||
"git.skdevstudios.com" = {
|
|
||||||
hostname = "git.skdevstudios.com";
|
|
||||||
user = "git";
|
|
||||||
port = 2223;
|
|
||||||
identityFile = "~/.ssh/id_ed25519"; # Adjust as needed
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,10 +0,0 @@
|
||||||
{ pkgs, config, lib, ...}:
|
|
||||||
{
|
|
||||||
options.speccon18.hm.starship.enable = lib.mkEnableOption "enables specs custom starship config";
|
|
||||||
config = lib.mkIf config.speccon18.hm.starship.enable {
|
|
||||||
programs.starship = {
|
|
||||||
enable = true;
|
|
||||||
enableZshIntegration = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,12 +0,0 @@
|
||||||
{ pkgs, config, lib, ... }:
|
|
||||||
{
|
|
||||||
options.speccon18.hm.superfile.enable = lib.mkEnableOption "enables specs superfile config";
|
|
||||||
|
|
||||||
config = lib.mkIf config.speccon18.hm.superfile.enable {
|
|
||||||
programs.superfile = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.superfile;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
@ -1,10 +0,0 @@
|
||||||
{config, lib, pkgs, modulesPath, ... }:
|
|
||||||
{
|
|
||||||
options.speccon18.hm.syncthing.enable = lib.mkEnableOption "enable syncthing";
|
|
||||||
config = lib.mkIf config.speccon18.hm.syncthing.enable {
|
|
||||||
services.syncthing = {
|
|
||||||
enable = true;
|
|
||||||
tray.enable = false;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,10 +0,0 @@
|
||||||
{pkgs,config,lib,...}:
|
|
||||||
{
|
|
||||||
options.speccon18.hm.zellij.enable = lib.mkEnableOption "enable zellij";
|
|
||||||
config = lib.mkIf config.speccon18.hm.zellij.enable {
|
|
||||||
programs.zellij = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.zellij;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,38 +0,0 @@
|
||||||
{ pkgs, config, lib, ... }:
|
|
||||||
{
|
|
||||||
options.speccon18.hm.zsh.enable = lib.mkEnableOption "enables specs zsh config";
|
|
||||||
|
|
||||||
config = lib.mkIf config.speccon18.hm.zsh.enable {
|
|
||||||
programs.zsh = {
|
|
||||||
enable = lib.mkDefault true;
|
|
||||||
dotDir = ".config/zsh";
|
|
||||||
|
|
||||||
history = {
|
|
||||||
path = "$ZDOTDIR/.zsh_history";
|
|
||||||
save = 10000000;
|
|
||||||
};
|
|
||||||
|
|
||||||
autosuggestion.enable = lib.mkDefault true;
|
|
||||||
enableCompletion = lib.mkDefault true;
|
|
||||||
syntaxHighlighting.enable = lib.mkDefault true;
|
|
||||||
|
|
||||||
shellAliases = {
|
|
||||||
ls = "eza -l";
|
|
||||||
lsa = "eza -al";
|
|
||||||
grep = "rg";
|
|
||||||
osrb = "sudo nixos-rebuild $1 --flake ~/Documents/code/nix/nixos-config/#katana";
|
|
||||||
nvim-cfg = "nvim /home/speccon18/.config/nvim/";
|
|
||||||
};
|
|
||||||
|
|
||||||
localVariables = {
|
|
||||||
EDITOR = "nvim";
|
|
||||||
};
|
|
||||||
|
|
||||||
# This adds the atuin init line to your Zsh config
|
|
||||||
initContent = ''
|
|
||||||
eval "$(atuin init zsh)"
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
{config,...}:{
|
|
||||||
imports = [
|
|
||||||
./desktop-environments
|
|
||||||
./services
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
@ -1,25 +0,0 @@
|
||||||
{ config, pkgs, lib, ... }:
|
|
||||||
let
|
|
||||||
cfg = config.speccon18.desktop.budgie;
|
|
||||||
in {
|
|
||||||
options.speccon18.desktop.budgie = {
|
|
||||||
enable = lib.mkEnableOption "enables specs custom budgie setup";
|
|
||||||
};
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
services.xserver = {
|
|
||||||
enable = true;
|
|
||||||
desktopManager.budgie.enable = true;
|
|
||||||
displayManager.lightdm.enable = true;
|
|
||||||
excludePackages = with pkgs; [ xterm ];
|
|
||||||
};
|
|
||||||
environment.budgie.excludePackages = with pkgs; [
|
|
||||||
mate.mate-terminal
|
|
||||||
mate.pluma
|
|
||||||
mate.atril
|
|
||||||
mate.eom
|
|
||||||
mate.engrampa
|
|
||||||
gnome-terminal
|
|
||||||
xterm
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,113 +0,0 @@
|
||||||
{ config, pkgs, lib, ...}:
|
|
||||||
{
|
|
||||||
options.speccon18.desktop.hyprland.enable = lib.mkEnableOption "enables specs custom hyprland setup";
|
|
||||||
config = lib.mkIf config.speccon18.desktop.hyprland.enable {
|
|
||||||
programs.hyprland = {
|
|
||||||
enable = true;
|
|
||||||
nvidiaPatches = true;
|
|
||||||
xwayland.enable = true;
|
|
||||||
};
|
|
||||||
environment = {
|
|
||||||
systemPackages = with pkgs; [
|
|
||||||
# libsForQt5.polkit-kde-agent
|
|
||||||
libsForQt5.qt5.qtwayland
|
|
||||||
qt6.full
|
|
||||||
qt6.qtwayland
|
|
||||||
waybar
|
|
||||||
swww
|
|
||||||
pw-volume
|
|
||||||
rofi-wayland
|
|
||||||
libnotify
|
|
||||||
mako
|
|
||||||
hyprland
|
|
||||||
font-awesome
|
|
||||||
brightnessctl
|
|
||||||
grim
|
|
||||||
slurp
|
|
||||||
wl-clipboard
|
|
||||||
];
|
|
||||||
sessionVariables = {
|
|
||||||
#Enable Wayland
|
|
||||||
WLR_NO_HARDWARE_CURSORS = "1";
|
|
||||||
NIXOS_OZONE_WL = "1";
|
|
||||||
MOZ_ENABLE_WAYLAND = "1";
|
|
||||||
GTK_USE_PORTAL = "1";
|
|
||||||
NIXOS_XDG_OPEN_USE_PORTAL = "1";
|
|
||||||
SDL_VIDEODRIVER = "wayland";
|
|
||||||
|
|
||||||
# XDG_Config
|
|
||||||
XDG_CURRENT_DESKTOP = "Hyprland";
|
|
||||||
XDG_SESSION_DESKTOP = "Hyprland";
|
|
||||||
XDG_SESSION_TYPE = "wayland";
|
|
||||||
XDG_CACHE_HOME = "\${HOME}/.cache";
|
|
||||||
XDG_CONFIG_HOME = "\${HOME}/.config";
|
|
||||||
XDG_BIN_HOME = "\${HOME}/.local/bin";
|
|
||||||
XDG_DATA_HOME = "\${HOME}/.local/share";
|
|
||||||
|
|
||||||
#Default Applications
|
|
||||||
BROWSER = "firefox";
|
|
||||||
TERMINAL = "alacritty";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
xdg.portal = {
|
|
||||||
enable = true;
|
|
||||||
extraPortals = [
|
|
||||||
pkgs.xdg-desktop-portal-gtk
|
|
||||||
pkgs.xdg-desktop-portal-hyprland
|
|
||||||
];
|
|
||||||
};
|
|
||||||
hardware = {
|
|
||||||
opengl.enable = true;
|
|
||||||
nvidia.modesetting.enable = true;
|
|
||||||
};
|
|
||||||
# wayland.windowManager.hyprland = {
|
|
||||||
# # systemdIntegration = true;
|
|
||||||
# enable = true;
|
|
||||||
# extraConfig = ''
|
|
||||||
# $mainMod = SUPER
|
|
||||||
# # Application Lauch Keybinds
|
|
||||||
# bind = $mainMod, Return, exec, alacritty
|
|
||||||
# bind = $mainMod, W, exec, firefox
|
|
||||||
# bind = $mainMod, R, exec, rofi -show drun
|
|
||||||
# # Switch workspaces with mainMod + [0-9]
|
|
||||||
# bind = $mainMod, 1, workspace, 1
|
|
||||||
# bind = $mainMod, 2, workspace, 2
|
|
||||||
# bind = $mainMod, 3, workspace, 3
|
|
||||||
# bind = $mainMod, 4, workspace, 4
|
|
||||||
# bind = $mainMod, 5, workspace, 5
|
|
||||||
# bind = $mainMod, 6, workspace, 6
|
|
||||||
# bind = $mainMod, 7, workspace, 7
|
|
||||||
# bind = $mainMod, 8, workspace, 8
|
|
||||||
# bind = $mainMod, 9, workspace, 9
|
|
||||||
# bind = $mainMod, 0, workspace, 10
|
|
||||||
|
|
||||||
# # Move active window to a workspace with mainMod + SHIFT + [0-9]
|
|
||||||
# bind = $mainMod SHIFT, 1, movetoworkspace, 1
|
|
||||||
# bind = $mainMod SHIFT, 2, movetoworkspace, 2
|
|
||||||
# bind = $mainMod SHIFT, 3, movetoworkspace, 3
|
|
||||||
# bind = $mainMod SHIFT, 4, movetoworkspace, 4
|
|
||||||
# bind = $mainMod SHIFT, 5, movetoworkspace, 5
|
|
||||||
# bind = $mainMod SHIFT, 6, movetoworkspace, 6
|
|
||||||
# bind = $mainMod SHIFT, 7, movetoworkspace, 7
|
|
||||||
# bind = $mainMod SHIFT, 8, movetoworkspace, 8
|
|
||||||
# bind = $mainMod SHIFT, 9, movetoworkspace, 9
|
|
||||||
# bind = $mainMod SHIFT, 0, movetoworkspace, 10
|
|
||||||
# bind = $mainMod, Print, exec, grim -o /home/speccon18/Pictures/$(date +'%s_grim.png') -g "$(slurp)" -t png
|
|
||||||
# # Startup Runners
|
|
||||||
# exec-once=systemctl --user start waybar.service
|
|
||||||
# exec-once=dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
|
|
||||||
# exec-once=mako
|
|
||||||
# exec-once = swww init
|
|
||||||
# monitor=,highres,auto,1
|
|
||||||
# '';
|
|
||||||
# };
|
|
||||||
# options.speccon18.home_manager.rofi.enable = lib.mkEnableOption "enable specs custom rofi config for hyprland";
|
|
||||||
# config = lib.mkIf config.speccon18.home_manager.rofi.enable {
|
|
||||||
# programs.rofi = {
|
|
||||||
# enable = true;
|
|
||||||
# theme = "android_notification";
|
|
||||||
# location = "top-left";
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
};
|
|
||||||
}
|
|
||||||
7
nixosModules/default.nix
Normal file
7
nixosModules/default.nix
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
{pkgs, lib, ... }: {
|
||||||
|
imports = [
|
||||||
|
./users/default.nix
|
||||||
|
./services/default.nix
|
||||||
|
./desktop_environments/default.nix
|
||||||
|
];
|
||||||
|
}
|
||||||
12
nixosModules/desktop_environments/budgie.nix
Normal file
12
nixosModules/desktop_environments/budgie.nix
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
{ config, pkgs, lib, ...}:
|
||||||
|
{
|
||||||
|
options.speccon18.desktop.budgie.enable = lib.mkEnableOption "enables specs custom budgie setup";
|
||||||
|
|
||||||
|
config = lib.mkIf config.speccon18.desktop.budgie.enable {
|
||||||
|
services.xserver = {
|
||||||
|
enable = true;
|
||||||
|
desktopManager.budgie.enable = true;
|
||||||
|
displayManager.lightdm.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
{config,...}:{
|
{pkgs,config,...}:
|
||||||
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./budgie.nix
|
./budgie.nix
|
||||||
./gnome.nix
|
./gnome.nix
|
||||||
|
|
@ -8,5 +9,5 @@
|
||||||
speccon18.desktop.budgie.enable = true;
|
speccon18.desktop.budgie.enable = true;
|
||||||
speccon18.desktop.gnome.enable = false;
|
speccon18.desktop.gnome.enable = false;
|
||||||
speccon18.desktop.hyprland.enable = false;
|
speccon18.desktop.hyprland.enable = false;
|
||||||
speccon18.desktop.tuigreet.enable = false;
|
speccon18.desktop.displayManager.tuigreet.enable = false;
|
||||||
}
|
}
|
||||||
|
|
@ -1,22 +1,23 @@
|
||||||
{ config, pkgs, lib, ... }:
|
{ config, pkgs, lib, ... }:
|
||||||
{
|
{
|
||||||
options.speccon18.desktop.gnome.enable = lib.mkEnableOption "enables specs custom gnome setup";
|
options.speccon18.desktop.gnome.enable = lib.mkEnableOption "enables specs custom gnome setup";
|
||||||
|
|
||||||
config = lib.mkIf config.speccon18.desktop.gnome.enable {
|
config = lib.mkIf config.speccon18.desktop.gnome.enable {
|
||||||
# Dconf settings for home manager
|
Dconf settings
|
||||||
# dconf = {
|
dconf = {
|
||||||
# enable = true;
|
enable = true;
|
||||||
# settings = {
|
settings = {
|
||||||
# "org/gnome/mutter" = {
|
"org/gnome/mutter" = {
|
||||||
# attach-modal-dialogs = true;
|
attach-modal-dialogs = true;
|
||||||
# dynamic-workspaces = true;
|
dynamic-workspaces = true;
|
||||||
# edge-tiling = false;
|
edge-tiling = false;
|
||||||
# experimental-features = [ "scale-monitor-framebuffer" ];
|
experimental-features = [ "scale-monitor-framebuffer" ];
|
||||||
# focus-change-on-pointer-rest = true;
|
focus-change-on-pointer-rest = true;
|
||||||
# workspaces-only-on-primary = true;
|
workspaces-only-on-primary = true;
|
||||||
# };
|
};
|
||||||
# };
|
};
|
||||||
# };
|
};
|
||||||
# Gnome extensions
|
Gnome extensions
|
||||||
environment.systemPackages = with pkgs; [ ];
|
environment.systemPackages = with pkgs; [ ];
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
|
|
@ -38,7 +39,7 @@
|
||||||
};
|
};
|
||||||
desktopManager = {
|
desktopManager = {
|
||||||
xterm.enable = false;
|
xterm.enable = false;
|
||||||
gnome.enable = false;
|
# gnome.enable = lib.mkDefault true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
@ -50,7 +51,7 @@
|
||||||
xdg = {
|
xdg = {
|
||||||
portal = { enable = lib.mkDefault true; };
|
portal = { enable = lib.mkDefault true; };
|
||||||
mime.defaultApplications = {
|
mime.defaultApplications = {
|
||||||
"text/markdown" = "nvim";
|
"text/markdown" = "hx";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
108
nixosModules/desktop_environments/hyprland.nix
Normal file
108
nixosModules/desktop_environments/hyprland.nix
Normal file
|
|
@ -0,0 +1,108 @@
|
||||||
|
{ config, pkgs, lib, ...}:
|
||||||
|
{
|
||||||
|
options.speccon18.desktop.hyprland.enable = lib.mkEnableOption "enables specs custom hyprland setup";
|
||||||
|
config = lib.mkIf config.speccon18.desktop.hyprland.enable {
|
||||||
|
programs.hyprland = {
|
||||||
|
enable = true;
|
||||||
|
nvidiaPatches = true;
|
||||||
|
xwayland.enable = true;
|
||||||
|
};
|
||||||
|
environment = {
|
||||||
|
systemPackages = with pkgs; [
|
||||||
|
# libsForQt5.polkit-kde-agent
|
||||||
|
libsForQt5.qt5.qtwayland
|
||||||
|
qt6.full
|
||||||
|
qt6.qtwayland
|
||||||
|
waybar
|
||||||
|
swww
|
||||||
|
pw-volume
|
||||||
|
rofi-wayland
|
||||||
|
libnotify
|
||||||
|
mako
|
||||||
|
hyprland
|
||||||
|
font-awesome
|
||||||
|
brightnessctl
|
||||||
|
grim
|
||||||
|
slurp
|
||||||
|
wl-clipboard
|
||||||
|
];
|
||||||
|
sessionVariables = {
|
||||||
|
#Enable Wayland
|
||||||
|
WLR_NO_HARDWARE_CURSORS = "1";
|
||||||
|
NIXOS_OZONE_WL = "1";
|
||||||
|
MOZ_ENABLE_WAYLAND = "1";
|
||||||
|
GTK_USE_PORTAL = "1";
|
||||||
|
NIXOS_XDG_OPEN_USE_PORTAL = "1";
|
||||||
|
SDL_VIDEODRIVER = "wayland";
|
||||||
|
|
||||||
|
# XDG_Config
|
||||||
|
XDG_CURRENT_DESKTOP = "Hyprland";
|
||||||
|
XDG_SESSION_DESKTOP = "Hyprland";
|
||||||
|
XDG_SESSION_TYPE = "wayland";
|
||||||
|
XDG_CACHE_HOME = "\${HOME}/.cache";
|
||||||
|
XDG_CONFIG_HOME = "\${HOME}/.config";
|
||||||
|
XDG_BIN_HOME = "\${HOME}/.local/bin";
|
||||||
|
XDG_DATA_HOME = "\${HOME}/.local/share";
|
||||||
|
|
||||||
|
#Default Applications
|
||||||
|
BROWSER = "firefox";
|
||||||
|
TERMINAL = "alacritty";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
xdg.portal = {
|
||||||
|
enable = true;
|
||||||
|
extraPortals = [
|
||||||
|
pkgs.xdg-desktop-portal-gtk
|
||||||
|
pkgs.xdg-desktop-portal-hyprland
|
||||||
|
];
|
||||||
|
};
|
||||||
|
hardware = {
|
||||||
|
opengl.enable = true;
|
||||||
|
nvidia.modesetting.enable = true;
|
||||||
|
};
|
||||||
|
wayland.windowManager.hyprland = {
|
||||||
|
# systemdIntegration = true;
|
||||||
|
enable = true;
|
||||||
|
extraConfig = ''
|
||||||
|
$mainMod = SUPER
|
||||||
|
# Application Lauch Keybinds
|
||||||
|
bind = $mainMod, Return, exec, alacritty
|
||||||
|
bind = $mainMod, W, exec, firefox
|
||||||
|
bind = $mainMod, R, exec, rofi -show drun
|
||||||
|
|
||||||
|
# Switch workspaces with mainMod + [0-9]
|
||||||
|
bind = $mainMod, 1, workspace, 1
|
||||||
|
bind = $mainMod, 2, workspace, 2
|
||||||
|
bind = $mainMod, 3, workspace, 3
|
||||||
|
bind = $mainMod, 4, workspace, 4
|
||||||
|
bind = $mainMod, 5, workspace, 5
|
||||||
|
bind = $mainMod, 6, workspace, 6
|
||||||
|
bind = $mainMod, 7, workspace, 7
|
||||||
|
bind = $mainMod, 8, workspace, 8
|
||||||
|
bind = $mainMod, 9, workspace, 9
|
||||||
|
bind = $mainMod, 0, workspace, 10
|
||||||
|
|
||||||
|
# Move active window to a workspace with mainMod + SHIFT + [0-9]
|
||||||
|
bind = $mainMod SHIFT, 1, movetoworkspace, 1
|
||||||
|
bind = $mainMod SHIFT, 2, movetoworkspace, 2
|
||||||
|
bind = $mainMod SHIFT, 3, movetoworkspace, 3
|
||||||
|
bind = $mainMod SHIFT, 4, movetoworkspace, 4
|
||||||
|
bind = $mainMod SHIFT, 5, movetoworkspace, 5
|
||||||
|
bind = $mainMod SHIFT, 6, movetoworkspace, 6
|
||||||
|
bind = $mainMod SHIFT, 7, movetoworkspace, 7
|
||||||
|
bind = $mainMod SHIFT, 8, movetoworkspace, 8
|
||||||
|
bind = $mainMod SHIFT, 9, movetoworkspace, 9
|
||||||
|
bind = $mainMod SHIFT, 0, movetoworkspace, 10
|
||||||
|
|
||||||
|
bind = $mainMod, Print, exec, grim -o /home/speccon18/Pictures/$(date +'%s_grim.png') -g "$(slurp)" -t png
|
||||||
|
|
||||||
|
# Startup Runners
|
||||||
|
exec-once=systemctl --user start waybar.service
|
||||||
|
exec-once=dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
|
||||||
|
exec-once=mako
|
||||||
|
exec-once = swww init
|
||||||
|
monitor=,highres,auto,1
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -2,10 +2,10 @@
|
||||||
let
|
let
|
||||||
inherit (lib) mkEnableOption mkOption optionalString mkIf types;
|
inherit (lib) mkEnableOption mkOption optionalString mkIf types;
|
||||||
dmcfg = config.services.xserver.displayManager;
|
dmcfg = config.services.xserver.displayManager;
|
||||||
cfg = config.speccon18.desktop.tuigreet;
|
cfg = config.speccon18.desktop.displayManager.tuigreet;
|
||||||
gduser = config.services.greetd.settings.default_session.user;
|
gduser = config.services.greetd.settings.default_session.user;
|
||||||
in {
|
in {
|
||||||
options.speccon18.desktop.tuigreet = {
|
options.speccon18.desktop.displayManager.tuigreet = {
|
||||||
enable = mkEnableOption "enables tuigreet";
|
enable = mkEnableOption "enables tuigreet";
|
||||||
args = mkOption {
|
args = mkOption {
|
||||||
default = "--time --asterisks --remember -s ${dmcfg.sessionData.desktops}/share/wayland-sessions:${dmcfg.sessionData.desktops}/share/xsessions";
|
default = "--time --asterisks --remember -s ${dmcfg.sessionData.desktops}/share/wayland-sessions:${dmcfg.sessionData.desktops}/share/xsessions";
|
||||||
|
|
@ -1,11 +1,17 @@
|
||||||
{ config, lib, pkgs, ... }:
|
{ pkgs, config, lib, ...}:
|
||||||
|
|
||||||
{
|
{
|
||||||
options.speccon18.hm.alacritty.enable = lib.mkEnableOption "Enable Alacritty";
|
options.speccon18.home_manager.alacritty.enable = lib.mkEnableOption "enables specs custom alacritty config";
|
||||||
config = lib.mkIf config.speccon18.hm.alacritty.enable {
|
config = lib.mkIf config.speccon18.home_manager.alacritty.enable {
|
||||||
programs.alacritty = {
|
programs.alacritty = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
|
cursor = {
|
||||||
|
style = {
|
||||||
|
shape = "Beam";
|
||||||
|
blinking = "On";
|
||||||
|
blink_interval = 75;
|
||||||
|
};
|
||||||
|
};
|
||||||
window = {
|
window = {
|
||||||
dimensions = {
|
dimensions = {
|
||||||
columns = 120;
|
columns = 120;
|
||||||
|
|
@ -15,6 +21,21 @@
|
||||||
opacity = 1.0;
|
opacity = 1.0;
|
||||||
title = "Alacritty";
|
title = "Alacritty";
|
||||||
};
|
};
|
||||||
|
font = {
|
||||||
|
normal = {
|
||||||
|
family = "SauceCodePro Nerd Font";
|
||||||
|
style = "Regular";
|
||||||
|
};
|
||||||
|
bold = {
|
||||||
|
family = "SauceCodePro Nerd Font";
|
||||||
|
style = "Bold";
|
||||||
|
};
|
||||||
|
italic = {
|
||||||
|
family = "SauceCodePro Nerd Font";
|
||||||
|
style = "Italic";
|
||||||
|
};
|
||||||
|
size = 14;
|
||||||
|
};
|
||||||
colors = {
|
colors = {
|
||||||
primary = {
|
primary = {
|
||||||
background = "#1d1f21";
|
background = "#1d1f21";
|
||||||
|
|
@ -24,6 +45,7 @@
|
||||||
text = "CellBackground";
|
text = "CellBackground";
|
||||||
cursor = "CellForeground";
|
cursor = "CellForeground";
|
||||||
};
|
};
|
||||||
|
# Normal colors
|
||||||
normal = {
|
normal = {
|
||||||
black = "#363537";
|
black = "#363537";
|
||||||
red = "#FC618D";
|
red = "#FC618D";
|
||||||
|
|
@ -34,6 +56,8 @@
|
||||||
cyan = "#5AD4E6";
|
cyan = "#5AD4E6";
|
||||||
white = "#F7F1FF";
|
white = "#F7F1FF";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Bright colors
|
||||||
bright = {
|
bright = {
|
||||||
black = "#69676C";
|
black = "#69676C";
|
||||||
red = "#FC618D";
|
red = "#FC618D";
|
||||||
29
nixosModules/home_manager/default.nix
Normal file
29
nixosModules/home_manager/default.nix
Normal file
|
|
@ -0,0 +1,29 @@
|
||||||
|
{pkgs,config,...}:{
|
||||||
|
imports = [
|
||||||
|
./zsh.nix
|
||||||
|
./alacritty.nix
|
||||||
|
./direnv.nix
|
||||||
|
./git.nix
|
||||||
|
./helix.nix
|
||||||
|
./ncspot.nix
|
||||||
|
./rofi.nix
|
||||||
|
./starship.nix
|
||||||
|
./syncthing.nix
|
||||||
|
./waybar.nix
|
||||||
|
./zellij.nix
|
||||||
|
./zoxide.nix
|
||||||
|
];
|
||||||
|
speccon18.home_manager.home-manager.enable = true;
|
||||||
|
speccon18.home_manager.zsh.enable = true;
|
||||||
|
speccon18.home_manager.alacritty.enable = false;
|
||||||
|
speccon18.home_manager.direnv.enable = true;
|
||||||
|
speccon18.home_manager.git.enable = true;
|
||||||
|
speccon18.home_manager.helix.enable = true;
|
||||||
|
speccon18.home_manager.ncspot.enable = true;
|
||||||
|
speccon18.home_manager.rofi.enable = false;
|
||||||
|
speccon18.home_manager.starship.enable = true;
|
||||||
|
speccon18.home_manager.syncthing.enable = false;
|
||||||
|
speccon18.home_manager.waybar.enable = false;
|
||||||
|
speccon18.home_manager.zellij.enable = true;
|
||||||
|
speccon18.home_manager.zoxide.enable = true;
|
||||||
|
}
|
||||||
10
nixosModules/home_manager/direnv.nix
Normal file
10
nixosModules/home_manager/direnv.nix
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
{ pkgs, config, lib, ...}:
|
||||||
|
{
|
||||||
|
options.speccon18.home_manager.direnv.enable = lib.mkEnableOption "enables direnv with zsh integration";
|
||||||
|
config = lib.mkIf config.speccon18.home_manager.direnv.enable {
|
||||||
|
programs.direnv = {
|
||||||
|
enable = true;
|
||||||
|
enableZshIntegration = lib.mkDefault true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
{pkgs, config, lib, ...}:{
|
{pkgs, config, lib, ...}:{
|
||||||
options.speccon18.hm.git.enable = lib.mkEnableOption "enables specs personal git preferences";
|
options.speccon18.home_manager.git.enable = lib.mkEnableOption "enables specs personal git preferences";
|
||||||
config = lib.mkIf config.speccon18.hm.git.enable {
|
config = lib.mkIf config.speccon18.home_manager.git.enable {
|
||||||
programs.git = {
|
programs.git = {
|
||||||
enable = true;
|
enable = true;
|
||||||
userName = "specCon18";
|
userName = "specCon18";
|
||||||
146
nixosModules/home_manager/helix.nix
Normal file
146
nixosModules/home_manager/helix.nix
Normal file
|
|
@ -0,0 +1,146 @@
|
||||||
|
{ pkgs, config, lib, ...}:
|
||||||
|
{
|
||||||
|
options.speccon18.home_manager.helix.enable = lib.mkEnableOption "enables specs custom helix configuration";
|
||||||
|
config = lib.mkIf config.speccon18.home_manager.helix.enable {
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
nodePackages_latest.yaml-language-server
|
||||||
|
nodePackages_latest.bash-language-server
|
||||||
|
nodePackages_latest.vscode-langservers-extracted
|
||||||
|
nodePackages_latest.dockerfile-language-server-nodejs
|
||||||
|
nodePackages_latest.typescript
|
||||||
|
nodePackages_latest.typescript-language-server
|
||||||
|
nodePackages_latest.svelte-language-server
|
||||||
|
nodePackages_latest.vls
|
||||||
|
python311Packages.python-lsp-server
|
||||||
|
rnix-lsp
|
||||||
|
rust-analyzer
|
||||||
|
taplo
|
||||||
|
];
|
||||||
|
programs.helix = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
theme = "monokai_pro_octagon";
|
||||||
|
editor = {
|
||||||
|
line-number = "relative";
|
||||||
|
shell = ["zsh" "-c"];
|
||||||
|
completion-trigger-len = 0;
|
||||||
|
scroll-lines = 1;
|
||||||
|
scrolloff = 5;
|
||||||
|
cursorline = true;
|
||||||
|
cursor-shape = {
|
||||||
|
normal = "block";
|
||||||
|
insert = "bar";
|
||||||
|
select = "underline";
|
||||||
|
};
|
||||||
|
color-modes = true;
|
||||||
|
indent-guides.render = true;
|
||||||
|
file-picker.hidden = false;
|
||||||
|
auto-pairs = true;
|
||||||
|
lsp = {
|
||||||
|
enable = true;
|
||||||
|
display-messages = true;
|
||||||
|
auto-signature-help = true;
|
||||||
|
display-signature-help-docs = true;
|
||||||
|
snippets = true;
|
||||||
|
goto-reference-include-declaration = true;
|
||||||
|
};
|
||||||
|
statusline = {
|
||||||
|
mode = {
|
||||||
|
normal = "NORMAL";
|
||||||
|
insert = "INSERT";
|
||||||
|
select = "SELECT";
|
||||||
|
};
|
||||||
|
left = [ "mode" "separator" "spinner" "separator" "file-name" ];
|
||||||
|
right = [ "diagnostics" "position" "file-encoding" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
themes = {
|
||||||
|
monokai_pro_octagon = let
|
||||||
|
red = "#ff657a";
|
||||||
|
orange = "#ff9b5e";
|
||||||
|
yellow = "#ffd76d";
|
||||||
|
green = "#bad761";
|
||||||
|
blue = "#9cd1bb";
|
||||||
|
purple = "#c39ac9";
|
||||||
|
base0 = "#161821";
|
||||||
|
base1 = "#1e1f2b";
|
||||||
|
base2 = "#282a3a";
|
||||||
|
base3 = "#3a3d4b";
|
||||||
|
base4 = "#535763";
|
||||||
|
base5 = "#696d77";
|
||||||
|
base6 = "#767b81";
|
||||||
|
base7 = "#b2b9bd";
|
||||||
|
base8 = "#eaf2f1";
|
||||||
|
base8x0c = "#303342";
|
||||||
|
in {
|
||||||
|
"ui.linenr.selected" = { bg = base3; };
|
||||||
|
"ui.text.focus" = { fg = yellow; modifiers = ["bold"]; };
|
||||||
|
"ui.menu" = { fg = base8; bg = base3; };
|
||||||
|
"ui.menu.selected" = { fg = base2; bg = yellow; };
|
||||||
|
"ui.virtual.whitespace" = base5;
|
||||||
|
"ui.virtual.ruler" = { bg = base1; };
|
||||||
|
"info" = base8;
|
||||||
|
"hint" = base8;
|
||||||
|
"ui.background" = {};
|
||||||
|
"ui.statusline.inactive" = { fg = base8; bg = base8x0c; };
|
||||||
|
"ui.statusline" = { fg = base8; bg = base4; };
|
||||||
|
"ui.statusline.normal" = { fg = base4; bg = blue; };
|
||||||
|
"ui.statusline.insert" = { fg = base4; bg = green; };
|
||||||
|
"ui.statusline.select" = { fg = base4; bg = purple; };
|
||||||
|
"ui.popup" = { bg = base3; };
|
||||||
|
"ui.window" = { bg = base3; };
|
||||||
|
"ui.help" = { fg = base8; bg = base3; };
|
||||||
|
"ui.selection" = { bg = base4; };
|
||||||
|
"ui.cursor.match" = { bg = base4; };
|
||||||
|
"ui.cursorline" = { bg = base1; };
|
||||||
|
"comment" = { fg = base5; modifiers = ["italic"]; };
|
||||||
|
"ui.linenr" = { fg = base5; };
|
||||||
|
"ui.cursor.primary" = { fg = base7; modifiers = ["reversed"]; };
|
||||||
|
"attribute" = blue;
|
||||||
|
"variable" = base8;
|
||||||
|
"constant" = orange;
|
||||||
|
"variable.builtin" = red;
|
||||||
|
"constant.builtin" = red;
|
||||||
|
"namespace" = base8;
|
||||||
|
"ui.text" = { fg = base8; };
|
||||||
|
"punctuation" = base6;
|
||||||
|
"type" = green;
|
||||||
|
"type.builtin" = { fg = red; };
|
||||||
|
"label" = base8;
|
||||||
|
"constructor" = blue;
|
||||||
|
"function" = green;
|
||||||
|
"function.macro" = { fg = blue; };
|
||||||
|
"function.builtin" = { fg = "cyan"; };
|
||||||
|
"operator" = red;
|
||||||
|
"variable.other.member" = base8;
|
||||||
|
"keyword" = { fg = red; };
|
||||||
|
"keyword.directive" = blue;
|
||||||
|
"variable.parameter" = "#f59762";
|
||||||
|
"error" = red;
|
||||||
|
"special" = "#f59762";
|
||||||
|
"module" = "#f59762";
|
||||||
|
"warning" = "orange";
|
||||||
|
"constant.character.escape" = { fg = base8; };
|
||||||
|
"string" = yellow;
|
||||||
|
"constant.numeric" = purple;
|
||||||
|
"diff.plus" = green;
|
||||||
|
"diff.delta" = "orange";
|
||||||
|
"diff.minus" = red;
|
||||||
|
"diagnostic.warning" = { underline = { color = "orange"; style = "curl"; }; };
|
||||||
|
"diagnostic.error" = { underline = { color = red; style = "curl"; }; };
|
||||||
|
"diagnostic.info" = { underline = { color = base8; style = "curl"; }; };
|
||||||
|
"diagnostic.hint" = { underline = { color = base8; style = "curl"; }; };
|
||||||
|
"markup.heading" = green;
|
||||||
|
"markup.bold" = { fg = "orange"; modifiers = ["bold"]; };
|
||||||
|
"markup.italic" = { fg = "orange"; modifiers = ["italic"]; };
|
||||||
|
"markup.strikethrough" = { modifiers = ["crossed_out"]; };
|
||||||
|
"markup.link.url" = { fg = "orange"; modifiers = ["underlined"]; };
|
||||||
|
"markup.link.text" = yellow;
|
||||||
|
"markup.quote" = green;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
9
nixosModules/home_manager/home-mananger.nix
Normal file
9
nixosModules/home_manager/home-mananger.nix
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
{ pkgs, config, lib, ...}:
|
||||||
|
{
|
||||||
|
options.speccon18.home_manager.home-manager.enable = lib.mkEnableOption "enable home manager";
|
||||||
|
config = lib.mkIf config.speccon18.home_manager.home-manager.enable = true {
|
||||||
|
programs.home-manager = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
10
nixosModules/home_manager/ncspot.nix
Normal file
10
nixosModules/home_manager/ncspot.nix
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
{ pkgs, config, lib, ...}:
|
||||||
|
{
|
||||||
|
options.speccon18.home_manager.ncspot.enable = lib.mkEnableOption "enable ncspot";
|
||||||
|
config = lib.mkIf config.speccon18.home_manager.ncspot.enable {
|
||||||
|
programs.ncspot = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.ncspot;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
11
nixosModules/home_manager/rofi.nix
Normal file
11
nixosModules/home_manager/rofi.nix
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
{ pkgs, config, lib, ...}:
|
||||||
|
{
|
||||||
|
options.speccon18.home_manager.rofi.enable = lib.mkEnableOption "enable specs custom rofi config for hyprland";
|
||||||
|
config = lib.mkIf config.speccon18.home_manager.rofi.enable {
|
||||||
|
programs.rofi = {
|
||||||
|
enable = true;
|
||||||
|
theme = "android_notification";
|
||||||
|
location = "top-left";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
10
nixosModules/home_manager/starship.nix
Normal file
10
nixosModules/home_manager/starship.nix
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
{ pkgs, config, lib, ...}:
|
||||||
|
{
|
||||||
|
options.speccon18.home_manager.enable = lib.mkEnableOption "enables specs custom starship config";
|
||||||
|
config = lib.mkIf config.speccon18.home_manager.enable {
|
||||||
|
programs.starship = {
|
||||||
|
enable = true;
|
||||||
|
enableZshIntegration = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
10
nixosModules/home_manager/syncthing.nix
Normal file
10
nixosModules/home_manager/syncthing.nix
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
{config, lib, pkgs, modulesPath, ... }:
|
||||||
|
{
|
||||||
|
options.speccon18.home_manager.syncthing.enable = lib.mkEnableOption "enable syncthing";
|
||||||
|
config = lib.mkIf config.speccon18.home_manager.syncthing.enable {
|
||||||
|
services.syncthing = {
|
||||||
|
enable = true;
|
||||||
|
tray.enable = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{ pkgs, config, lib, ...}:
|
{ pkgs, config, lib, ...}:
|
||||||
{
|
{
|
||||||
options.speccon18.hm.waybar.enable = lib.mkEnableOption "enable specs custom waybar for hyprland";
|
options.speccon18.home_manager.waybar.enable = lib.mkEnableOption "enable specs custom waybar for hyprland";
|
||||||
config = lib.mkIf config.speccon18.hm.waybar.enable {
|
config = lib.mkIf config.speccon18.home_manager.waybar.enable {
|
||||||
programs.waybar = {
|
programs.waybar = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.waybar;
|
package = pkgs.waybar;
|
||||||
|
|
@ -118,7 +118,7 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
style = builtins.readFile ./waybar-style.css;
|
style = builtins.readFile ./style.css;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
10
nixosModules/home_manager/zellij.nix
Normal file
10
nixosModules/home_manager/zellij.nix
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
{pkgs,config,lib,...}:
|
||||||
|
{
|
||||||
|
options.speccon18.home_manager.zellij.enable = lib.mkEnableOption "enable zellij";
|
||||||
|
config = lib.mkIf config.speccon18.home_manager.zellij.enable {
|
||||||
|
programs.zellij = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.zellij;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{pkgs,config,lib,...}:
|
{pkgs,config,lib,...}:
|
||||||
{
|
{
|
||||||
options.speccon18.hm.zoxide.enable = lib.mkEnableOption "";
|
options.speccon18.home_manager.zoxide.enable = lib.mkEnableOption "";
|
||||||
config = lib.mkIf config.speccon18.hm.zoxide.enable {
|
config = lib.mkIf config.speccon18.home_manager.zoxide.enable {
|
||||||
programs.zoxide = {
|
programs.zoxide = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableZshIntegration = lib.mkDefault true;
|
enableZshIntegration = lib.mkDefault true;
|
||||||
26
nixosModules/home_manager/zsh.nix
Normal file
26
nixosModules/home_manager/zsh.nix
Normal file
|
|
@ -0,0 +1,26 @@
|
||||||
|
{ pkgs, config, lib, ...}:
|
||||||
|
{
|
||||||
|
options.speccon18.home_manager.zsh.enable = lib.mkEnableOption "enables specs zsh config";
|
||||||
|
config = lib.mkIf config.speccon18.home_manager.zsh.enable {
|
||||||
|
programs.zsh = {
|
||||||
|
enable = lib.mkDefault true;
|
||||||
|
dotDir = ".config/zsh";
|
||||||
|
history = {
|
||||||
|
path = "$ZDOTDIR/.zsh_history";
|
||||||
|
save = 10000000;
|
||||||
|
};
|
||||||
|
enableAutosuggestions = lib.mkDefault true;
|
||||||
|
enableCompletion = lib.mkDefault true;
|
||||||
|
syntaxHighlighting.enable = lib.mkDefault true;
|
||||||
|
shellAliases = {
|
||||||
|
ls = "eza -l";
|
||||||
|
lsa = "eza -al";
|
||||||
|
grep = "rg";
|
||||||
|
osrb = "sudo nixos-rebuild $1 --flake ~/code/nixos-config/#katana";
|
||||||
|
};
|
||||||
|
localVariables = {
|
||||||
|
EDITOR="hx";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
7
nixosModules/users/default.nix
Normal file
7
nixosModules/users/default.nix
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
{pkgs, lib, ...}: {
|
||||||
|
imports = [
|
||||||
|
./speccon18.nix
|
||||||
|
];
|
||||||
|
speccon18.enable = true;
|
||||||
|
speccon18.home_manager.enable = true;
|
||||||
|
}
|
||||||
48
nixosModules/users/speccon18.nix
Normal file
48
nixosModules/users/speccon18.nix
Normal file
|
|
@ -0,0 +1,48 @@
|
||||||
|
{pkgs, lib, config, ... }: {
|
||||||
|
|
||||||
|
#Create new nixos options
|
||||||
|
options = {
|
||||||
|
speccon18.enable = lib.mkEnableOption "enables the speccon18 administrator user";
|
||||||
|
speccon18.home_manager.enable = lib.mkEnableOption "enables home-manager support for the speccon18 administrator user";
|
||||||
|
};
|
||||||
|
|
||||||
|
#Declare already defined nixos options and enable if the above mkEnable options parameter is ture
|
||||||
|
config = lib.mkIf config.speccon18.enable {
|
||||||
|
programs.zsh.enable = true;
|
||||||
|
users.users.speccon18 = {
|
||||||
|
shell = pkgs.zsh;
|
||||||
|
isNormalUser = true;
|
||||||
|
initialHashedPassword = "$y$j9T$RdLBHOvUpb17egl0d16LT/$3Y2RD/tT1IZ0nkfAR13pp3IzBjvKLRgGpDPLobUeO23";
|
||||||
|
openssh.authorizedKeys.keys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIrZpH5QV62dtTb2yx5I3PF2lJyNpPkV57pDlo6xawID" ];
|
||||||
|
description = "Steven Carpenter";
|
||||||
|
extraGroups = [ "wheel" ];
|
||||||
|
};
|
||||||
|
home = lib.mkIf config.speccon18.home_manager.enable {
|
||||||
|
username = "speccon18";
|
||||||
|
homeDirectory = "/home/speccon18";
|
||||||
|
|
||||||
|
# This value determines the Home Manager release that your
|
||||||
|
# configuration is compatible with. This helps avoid breakage
|
||||||
|
# when a new Home Manager release introduces backwards
|
||||||
|
# incompatible changes.
|
||||||
|
#
|
||||||
|
# You can update Home Manager without changing this value. See
|
||||||
|
# the Home Manager release notes for a list of state version
|
||||||
|
# changes in each release.
|
||||||
|
stateVersion = "22.11";
|
||||||
|
packages = with pkgs; [
|
||||||
|
freecad
|
||||||
|
calibre
|
||||||
|
bitwarden
|
||||||
|
firefox
|
||||||
|
discord
|
||||||
|
gimp
|
||||||
|
obsidian
|
||||||
|
neofetch
|
||||||
|
vlc
|
||||||
|
remmina
|
||||||
|
];
|
||||||
|
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
0
todo.md
Normal file
0
todo.md
Normal file
|
|
@ -1,14 +0,0 @@
|
||||||
{ config, pkgs, lib, ... }:
|
|
||||||
{
|
|
||||||
programs.zsh.enable = true;
|
|
||||||
users.users.speccon18 = {
|
|
||||||
shell = pkgs.zsh;
|
|
||||||
isNormalUser = true;
|
|
||||||
initialHashedPassword = "$y$j9T$RdLBHOvUpb17egl0d16LT/$3Y2RD/tT1IZ0nkfAR13pp3IzBjvKLRgGpDPLobUeO23";
|
|
||||||
openssh.authorizedKeys.keys = [];
|
|
||||||
description = "Steven Carpenter";
|
|
||||||
extraGroups = [
|
|
||||||
"wheel"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue