formatted all files with nixfmt, added env variable to hold secrets

This commit is contained in:
pagedmov
2024-11-09 16:20:27 -05:00
parent d38da56ba2
commit 2a1ba18c09
93 changed files with 948 additions and 1254 deletions

3
.gitignore vendored
View File

@@ -1,4 +1,3 @@
env.nix
secrets.nix
result result
hardware.nix hardware.nix

View File

@@ -30,18 +30,19 @@
}; };
}; };
outputs = { self, home-manager, nixpkgs, nur, nixvim, stylix, ... } @ inputs: outputs = { self, home-manager, nixpkgs, nur, nixvim, stylix, ... }@inputs:
let let
system = "x86_64-linux"; system = "x86_64-linux";
pkgs = import nixpkgs { inherit system; }; pkgs = import nixpkgs { inherit system; };
username = "pagedmov"; username = "pagedmov";
env = import ./env.nix;
in { in {
homeConfigurations = { homeConfigurations = {
oganessonHome = home-manager.lib.homeManagerConfiguration { oganessonHome = home-manager.lib.homeManagerConfiguration {
inherit pkgs; inherit pkgs;
extraSpecialArgs = { extraSpecialArgs = {
host = "oganesson"; host = "oganesson";
inherit self username inputs; inherit self username env inputs;
}; };
modules = [ modules = [
@@ -57,7 +58,7 @@
inherit pkgs; inherit pkgs;
extraSpecialArgs = { extraSpecialArgs = {
host = "oganesson"; host = "oganesson";
inherit self username inputs; inherit self env username inputs;
}; };
modules = [ modules = [
@@ -73,7 +74,7 @@
inherit pkgs; inherit pkgs;
extraSpecialArgs = { extraSpecialArgs = {
host = "oganesson"; host = "oganesson";
inherit self username inputs; inherit self env username inputs;
}; };
modules = [ modules = [
@@ -88,7 +89,7 @@
oganesson = nixpkgs.lib.nixosSystem { oganesson = nixpkgs.lib.nixosSystem {
specialArgs = { specialArgs = {
host = "oganesson"; host = "oganesson";
inherit self inputs username; inherit self inputs env username;
}; };
inherit system; inherit system;
modules = [ modules = [
@@ -102,7 +103,7 @@
mercury = nixpkgs.lib.nixosSystem { mercury = nixpkgs.lib.nixosSystem {
specialArgs = { specialArgs = {
host = "mercury"; host = "mercury";
inherit self inputs username; inherit self inputs env username;
}; };
inherit system; inherit system;
modules = [ modules = [
@@ -116,7 +117,7 @@
xenon = nixpkgs.lib.nixosSystem { xenon = nixpkgs.lib.nixosSystem {
specialArgs = { specialArgs = {
host = "xenon"; host = "xenon";
inherit self inputs username; inherit self inputs env username;
}; };
inherit system; inherit system;
modules = [ modules = [
@@ -134,10 +135,7 @@
inherit self inputs; inherit self inputs;
}; };
inherit system; inherit system;
modules = [ modules = [ ./hosts/installer nixvim.nixosModules.nixvim ];
./hosts/installer
nixvim.nixosModules.nixvim
];
}; };
}; };
}; };

View File

@@ -1,7 +1,5 @@
{pkgs, username, ...}: { { pkgs, username, ... }: {
imports = [ imports = [ ./hardware.nix ];
./hardware.nix
];
# My module options # My module options
movOpts = { movOpts = {
@@ -28,8 +26,8 @@
nix = { nix = {
settings = { settings = {
auto-optimise-store = true; auto-optimise-store = true;
experimental-features = ["nix-command" "flakes"]; experimental-features = [ "nix-command" "flakes" ];
substituters = ["https://nix-gaming.cachix.org"]; substituters = [ "https://nix-gaming.cachix.org" ];
}; };
gc = { gc = {
automatic = true; automatic = true;
@@ -39,31 +37,26 @@
}; };
environment = { environment = {
variables = { variables = { PATH = "${pkgs.clang-tools}/bin:$PATH"; };
PATH = "${pkgs.clang-tools}/bin:$PATH"; shells = with pkgs; [ zsh bash ];
};
shells = with pkgs; [
zsh
bash
];
}; };
users = { users = {
groups.persist = {}; groups.persist = { };
users = { users = {
root.initialPassword = "1234"; root.initialPassword = "1234";
${username} = { ${username} = {
isNormalUser = true; isNormalUser = true;
initialPassword = "1234"; initialPassword = "1234";
shell = pkgs.zsh; shell = pkgs.zsh;
extraGroups = ["wheel" "persist" "libvirtd"]; extraGroups = [ "wheel" "persist" "libvirtd" ];
}; };
}; };
}; };
security.sudo.extraConfig = '' security.sudo.extraConfig = ''
${username} ALL=(ALL) NOPASSWD: /etc/profiles/per-user/${username}/bin/rebuild ${username} ALL=(ALL) NOPASSWD: /etc/profiles/per-user/${username}/bin/rebuild
''; '';
nix.settings.allowed-users = ["${username}"]; nix.settings.allowed-users = [ "${username}" ];
time.timeZone = "America/New_York"; time.timeZone = "America/New_York";
i18n.defaultLocale = "en_US.UTF-8"; i18n.defaultLocale = "en_US.UTF-8";

View File

@@ -1,21 +1,14 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ { config, lib, pkgs, modulesPath, ... }: {
config, imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
lib,
pkgs,
modulesPath,
...
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = ["nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod"]; boot.initrd.availableKernelModules =
boot.initrd.kernelModules = []; [ "nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ];
boot.kernelModules = ["kvm-amd"]; boot.initrd.kernelModules = [ ];
boot.extraModulePackages = []; boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ];
fileSystems."/" = { fileSystems."/" = {
device = "/dev/disk/by-partlabel/disk-main-root"; device = "/dev/disk/by-partlabel/disk-main-root";
@@ -30,7 +23,7 @@
fileSystems."/boot" = { fileSystems."/boot" = {
device = "/dev/disk/by-partlabel/disk-main-ESP"; device = "/dev/disk/by-partlabel/disk-main-ESP";
fsType = "vfat"; fsType = "vfat";
options = ["fmask=0077" "dmask=0077"]; options = [ "fmask=0077" "dmask=0077" ];
}; };
fileSystems."/home" = { fileSystems."/home" = {
@@ -38,7 +31,7 @@
fsType = "ext4"; fsType = "ext4";
}; };
swapDevices = []; swapDevices = [ ];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking # 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 # (the default) this is the recommended approach. When using systemd-networkd it's
@@ -49,5 +42,6 @@
# networking.interfaces.wlp15s0.useDHCP = lib.mkDefault true; # networking.interfaces.wlp15s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; hardware.cpu.amd.updateMicrocode =
lib.mkDefault config.hardware.enableRedistributableFirmware;
} }

View File

@@ -1,10 +1,5 @@
{ { lib, pkgs, modulesPath, inputs, ... }:
lib, let
pkgs,
modulesPath,
inputs,
...
}: let
extraFigletFonts = pkgs.fetchFromGitHub { extraFigletFonts = pkgs.fetchFromGitHub {
owner = "xero"; owner = "xero";
repo = "figlet-fonts"; repo = "figlet-fonts";
@@ -12,7 +7,7 @@
sha256 = "sha256-dAs7N66D2Fpy4/UB5Za1r2qb1iSAJR6TMmau1asxgtY="; sha256 = "sha256-dAs7N66D2Fpy4/UB5Za1r2qb1iSAJR6TMmau1asxgtY=";
}; };
toilet-extrafonts = pkgs.toilet.overrideAttrs (oldAttrs: { toilet-extrafonts = pkgs.toilet.overrideAttrs (oldAttrs: {
buildInputs = oldAttrs.buildInputs or [] ++ [extraFigletFonts]; buildInputs = oldAttrs.buildInputs or [ ] ++ [ extraFigletFonts ];
installPhase = '' installPhase = ''
make install PREFIX=$out make install PREFIX=$out
@@ -28,11 +23,7 @@ in {
]; ];
nixpkgs.hostPlatform = "x86_64-linux"; nixpkgs.hostPlatform = "x86_64-linux";
system.stateVersion = "24.05"; system.stateVersion = "24.05";
nix = { nix = { settings = { experimental-features = [ "nix-command" "flakes" ]; }; };
settings = {
experimental-features = ["nix-command" "flakes"];
};
};
networking = { networking = {
wireless.enable = false; wireless.enable = false;
@@ -65,11 +56,9 @@ in {
home-manager = { home-manager = {
users.root = { users.root = {
programs.home-manager.enable = true; programs.home-manager.enable = true;
home= { home = {
stateVersion = "24.05"; stateVersion = "24.05";
file = { file = { "disko.nix".source = ./disko-ext4-singledisk.nix; };
"disko.nix".source = ./disko-ext4-singledisk.nix;
};
}; };
}; };
}; };
@@ -81,106 +70,106 @@ in {
programs = { programs = {
zsh = { zsh = {
enable = true;
ohMyZsh = {
enable = true; enable = true;
plugins = ["git" "fzf"];
};
enableCompletion = true; ohMyZsh = {
enable = true;
plugins = [ "git" "fzf" ];
};
histFile = "$HOME/.zsh_history"; enableCompletion = true;
histSize = 10000;
autosuggestions = { histFile = "$HOME/.zsh_history";
enable = true; histSize = 10000;
highlightStyle = "fg=#4C566A,underline";
};
shellAliases = { autosuggestions = {
grep = "grep --color=auto"; enable = true;
vi = "nvim"; highlightStyle = "fg=#4C566A,underline";
mv = "mv -v"; };
cp = "cp -vr";
".." = "cd ..";
psg = "ps aux | grep -v grep | grep -i -e VSZ -e";
mkdir = "mkdir -p";
pk = "pkill -9 -f";
svc = "sudo systemctl";
};
promptInit = ''
bindkey -v
type starship_zle-keymap-select >/dev/null || \
{
eval "$(starship init zsh)"
}
'';
setOptions = [
"APPEND_HISTORY"
"INC_APPEND_HISTORY"
"SHARE_HISTORY"
"CORRECT"
"NO_NOMATCH"
"LIST_PACKED"
"ALWAYS_TO_END"
"GLOB_COMPLETE"
"COMPLETE_ALIASES"
"COMPLETE_IN_WORD"
"AUTO_CD"
"AUTO_CONTINUE"
"LONG_LIST_JOBS"
"HIST_VERIFY"
"SHARE_HISTORY"
"HIST_IGNORE_SPACE"
"HIST_SAVE_NO_DUPS"
"HIST_IGNORE_ALL_DUPS"
"EXTENDED_GLOB"
"TRANSIENT_RPROMPT"
"INTERACTIVE_COMMENTS"
];
shellInit = ''
export EDITOR="nvim"
export SUDO_EDITOR="nvim"
export VISUAL="nvim"
export LANG="en_US.UTF-8"
unalias ls shellAliases = {
ls() { grep = "grep --color=auto";
eza -1 --group-directories-first --icons "$@" vi = "nvim";
} mv = "mv -v";
cp = "cp -vr";
".." = "cd ..";
psg = "ps aux | grep -v grep | grep -i -e VSZ -e";
mkdir = "mkdir -p";
pk = "pkill -9 -f";
svc = "sudo systemctl";
};
promptInit = ''
bindkey -v
type starship_zle-keymap-select >/dev/null || \
{
eval "$(starship init zsh)"
}
'';
setOptions = [
"APPEND_HISTORY"
"INC_APPEND_HISTORY"
"SHARE_HISTORY"
"CORRECT"
"NO_NOMATCH"
"LIST_PACKED"
"ALWAYS_TO_END"
"GLOB_COMPLETE"
"COMPLETE_ALIASES"
"COMPLETE_IN_WORD"
"AUTO_CD"
"AUTO_CONTINUE"
"LONG_LIST_JOBS"
"HIST_VERIFY"
"SHARE_HISTORY"
"HIST_IGNORE_SPACE"
"HIST_SAVE_NO_DUPS"
"HIST_IGNORE_ALL_DUPS"
"EXTENDED_GLOB"
"TRANSIENT_RPROMPT"
"INTERACTIVE_COMMENTS"
];
shellInit = ''
export EDITOR="nvim"
export SUDO_EDITOR="nvim"
export VISUAL="nvim"
export LANG="en_US.UTF-8"
y() { unalias ls
local tmp="$(mktemp -t "yazi-cwd.XXXXXX")" ls() {
yazi "$@" --cwd-file="$tmp" eza -1 --group-directories-first --icons "$@"
if cwd="$(command cat -- "$tmp")" && [ -n "$cwd" ] && [ "$cwd" != "$PWD" ]; then }
builtin cd -- "$cwd"
fi
rm -f -- "$tmp"
}
cd() { y() {
export SOUNDS_ENABLED=0 local tmp="$(mktemp -t "yazi-cwd.XXXXXX")"
eza -1 --group-directories-first --icons "$@" yazi "$@" --cwd-file="$tmp"
builtin cd "$@" || exit if cwd="$(command cat -- "$tmp")" && [ -n "$cwd" ] && [ "$cwd" != "$PWD" ]; then
export SOUNDS_ENABLED=1 builtin cd -- "$cwd"
} fi
if [ ! -e $HOME/.zsh_history ]; then rm -f -- "$tmp"
touch $HOME/.zsh_history }
chmod 600 $HOME/.zsh_history
fi
autoload -U compinit # completion cd() {
autoload -U terminfo # terminfo keys export SOUNDS_ENABLED=0
zmodload -i zsh/complist # menu completion eza -1 --group-directories-first --icons "$@"
autoload -U promptinit # prompt builtin cd "$@" || exit
export SOUNDS_ENABLED=1
}
if [ ! -e $HOME/.zsh_history ]; then
touch $HOME/.zsh_history
chmod 600 $HOME/.zsh_history
fi
autoload -U up-line-or-beginning-search; zle -N up-line-or-beginning-search autoload -U compinit # completion
autoload -U down-line-or-beginning-search; zle -N down-line-or-beginning-search autoload -U terminfo # terminfo keys
zmodload -i zsh/complist # menu completion
autoload -U promptinit # prompt
unalias ls autoload -U up-line-or-beginning-search; zle -N up-line-or-beginning-search
clear autoload -U down-line-or-beginning-search; zle -N down-line-or-beginning-search
'';
unalias ls
clear
'';
}; };
starship = { starship = {
enable = true; enable = true;
@@ -201,7 +190,9 @@ in {
format = "[$user]($style)"; format = "[$user]($style)";
}; };
directory = { directory = {
format = "\n[$path](bold cyan)[/](bold green) "; format = ''
[$path](bold cyan)[/](bold green) '';
style = "bold #b4befe"; style = "bold #b4befe";
}; };
@@ -220,7 +211,9 @@ in {
}; };
git_branch = { git_branch = {
format = "\non [$symbol$branch](bold purple)"; format = ''
on [$symbol$branch](bold purple)'';
symbol = " "; symbol = " ";
truncation_length = 15; truncation_length = 15;
style = "bold purple"; style = "bold purple";

View File

@@ -1,11 +1,7 @@
# USAGE in your configuration.nix. # USAGE in your configuration.nix.
# Update devices to match your hardware. # Update devices to match your hardware.
{ { device ? throw "Set this to your disk device, e.g. /dev/sda", root_size
device ? throw "Set this to your disk device, e.g. /dev/sda", , nix_size, ... }: {
root_size,
nix_size,
...
}: {
disko.devices = { disko.devices = {
disk = { disk = {
main = { main = {
@@ -25,7 +21,7 @@
type = "filesystem"; type = "filesystem";
format = "vfat"; format = "vfat";
mountpoint = "/boot"; mountpoint = "/boot";
mountOptions = ["umask=0077"]; mountOptions = [ "umask=0077" ];
}; };
}; };
nix = { nix = {

View File

@@ -1,18 +1,11 @@
{pkgs, config, ...}: { { pkgs, config, ... }: {
imports = [ imports = [ ./hardware.nix ./home.nix ];
./hardware.nix
./home.nix
];
powerProfiles.enable = true; powerProfiles.enable = true;
boot = { boot = {
kernelModules = ["acpi_call"]; kernelModules = [ "acpi_call" ];
extraModulePackages = with config.boot.kernelPackages; extraModulePackages = with config.boot.kernelPackages;
[ [ acpi_call cpupower ] ++ [ pkgs.cpupower-gui ];
acpi_call
cpupower
]
++ [pkgs.cpupower-gui];
}; };
networkModule.enable = true; networkModule.enable = true;
@@ -26,20 +19,9 @@
sysServices.enable = true; sysServices.enable = true;
environment = { environment = {
variables = { variables = { PATH = "${pkgs.clang-tools}/bin:$PATH"; };
PATH = "${pkgs.clang-tools}/bin:$PATH"; shells = with pkgs; [ zsh bash ];
}; systemPackages = with pkgs; [ acpi brightnessctl cpupower-gui powertop ];
shells = with pkgs; [
zsh
bash
];
systemPackages = with pkgs; [
acpi
brightnessctl
cpupower-gui
powertop
];
}; };
} }

View File

@@ -1,21 +1,14 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ { config, lib, pkgs, modulesPath, ... }: {
config, imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
lib,
pkgs,
modulesPath,
...
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = ["nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod"]; boot.initrd.availableKernelModules =
boot.initrd.kernelModules = []; [ "nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ];
boot.kernelModules = ["kvm-amd"]; boot.initrd.kernelModules = [ ];
boot.extraModulePackages = []; boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ];
fileSystems."/" = { fileSystems."/" = {
device = "/dev/sda4"; device = "/dev/sda4";
@@ -30,7 +23,7 @@
fileSystems."/boot" = { fileSystems."/boot" = {
device = "/dev/sda2"; device = "/dev/sda2";
fsType = "vfat"; fsType = "vfat";
options = ["fmask=0077" "dmask=0077"]; options = [ "fmask=0077" "dmask=0077" ];
}; };
fileSystems."/home" = { fileSystems."/home" = {
@@ -38,7 +31,7 @@
fsType = "ext4"; fsType = "ext4";
}; };
swapDevices = []; swapDevices = [ ];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking # 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 # (the default) this is the recommended approach. When using systemd-networkd it's
@@ -49,5 +42,6 @@
# networking.interfaces.wlp15s0.useDHCP = lib.mkDefault true; # networking.interfaces.wlp15s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; hardware.cpu.amd.updateMicrocode =
lib.mkDefault config.hardware.enableRedistributableFirmware;
} }

View File

@@ -1,12 +1,5 @@
{ { pkgs, username, ... }: {
pkgs, imports = [ ./hardware.nix ./home.nix ];
username,
...
}: {
imports = [
./hardware.nix
./home.nix
];
movOpts = { movOpts = {
nixSettings.enable = true; nixSettings.enable = true;
networkModule.enable = true; networkModule.enable = true;
@@ -18,9 +11,7 @@
jellyfinConfig.enable = true; jellyfinConfig.enable = true;
caddyConfig.enable = true; caddyConfig.enable = true;
}; };
networking.firewall = { networking.firewall = { allowedTCPPorts = [ 443 8920 ]; };
allowedTCPPorts = [ 443 8920 ];
};
environment = { environment = {
etc."tmpfiles.d/home-permissions.conf".text = '' etc."tmpfiles.d/home-permissions.conf".text = ''
d /home/pagedmov 0750 pagedmov users - d /home/pagedmov 0750 pagedmov users -
@@ -29,9 +20,6 @@
PATH = "${pkgs.clang-tools}/bin:$PATH"; PATH = "${pkgs.clang-tools}/bin:$PATH";
TERM = "kitty"; TERM = "kitty";
}; };
shells = with pkgs; [ shells = with pkgs; [ zsh bash ];
zsh
bash
];
}; };
} }

View File

@@ -4,35 +4,34 @@
{ config, lib, pkgs, modulesPath, ... }: { config, lib, pkgs, modulesPath, ... }:
{ {
imports = imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
[ (modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ]; boot.initrd.availableKernelModules =
[ "nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ]; boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [ ];
fileSystems."/" = fileSystems."/" = {
{ device = "/dev/disk/by-uuid/c40b3b09-688d-4fe3-96f9-8e3d75b0a7b7"; device = "/dev/disk/by-uuid/c40b3b09-688d-4fe3-96f9-8e3d75b0a7b7";
fsType = "ext4"; fsType = "ext4";
}; };
fileSystems."/nix" = fileSystems."/nix" = {
{ device = "/dev/disk/by-uuid/1048d206-0a27-4e4e-b9a4-4f068bab5439"; device = "/dev/disk/by-uuid/1048d206-0a27-4e4e-b9a4-4f068bab5439";
fsType = "ext4"; fsType = "ext4";
}; };
fileSystems."/boot" = fileSystems."/boot" = {
{ device = "/dev/disk/by-uuid/357E-BCCD"; device = "/dev/disk/by-uuid/357E-BCCD";
fsType = "vfat"; fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ]; options = [ "fmask=0077" "dmask=0077" ];
}; };
fileSystems."/home" = fileSystems."/home" = {
{ device = "/dev/disk/by-uuid/b53ab583-f32e-4144-a2ee-f341e54f8233"; device = "/dev/disk/by-uuid/b53ab583-f32e-4144-a2ee-f341e54f8233";
fsType = "ext4"; fsType = "ext4";
}; };
swapDevices = [ ]; swapDevices = [ ];
@@ -45,5 +44,6 @@
# networking.interfaces.wlp11s0.useDHCP = lib.mkDefault true; # networking.interfaces.wlp11s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; hardware.cpu.amd.updateMicrocode =
lib.mkDefault config.hardware.enableRedistributableFirmware;
} }

View File

@@ -1,17 +1,3 @@
{ { env, inputs, nixpkgs, config, self, username, host, lib, ... }: {
inputs, imports = [ ./programs ./environment ./scripts ./files.nix ];
nixpkgs,
config,
self,
username,
host,
lib,
...
}: {
imports = [
./programs
./environment
./scripts
./files.nix
];
} }

View File

@@ -1,14 +1,4 @@
{ { host, nur, nixvim, self, inputs, username, config, home-manager, ... }: {
host,
nur,
nixvim,
self,
inputs,
username,
config,
home-manager,
...
}: {
imports = [ imports = [
./gtk.nix ./gtk.nix
./spicetify.nix ./spicetify.nix

View File

@@ -1,26 +1,22 @@
{lib, config, pkgs, ... }: { { lib, config, pkgs, ... }: {
options = { options = {
movOpts.envConfig.gtkConfig.enable = lib.mkEnableOption "enable my gtk options"; movOpts.envConfig.gtkConfig.enable =
lib.mkEnableOption "enable my gtk options";
}; };
config = lib.mkIf config.movOpts.envConfig.gtkConfig.enable { config = lib.mkIf config.movOpts.envConfig.gtkConfig.enable {
fonts.fontconfig.enable = true; fonts.fontconfig.enable = true;
home.packages = with pkgs; [ home.packages = with pkgs;
(nerdfonts.override { [
fonts = [ (nerdfonts.override {
"JetBrainsMono" fonts = [ "JetBrainsMono" "CascadiaCode" "NerdFontsSymbolsOnly" ];
"CascadiaCode" })
"NerdFontsSymbolsOnly" ];
];
})
];
gtk = { gtk = {
enable = true; enable = true;
iconTheme = { iconTheme = {
name = "Papirus-Dark"; name = "Papirus-Dark";
package = pkgs.papirus-nord.override { package = pkgs.papirus-nord.override { accent = "frostblue4"; };
accent = "frostblue4";
};
}; };
#cursorTheme = { #cursorTheme = {
# name = "Bibata-Modern-Ice"; # name = "Bibata-Modern-Ice";

View File

@@ -68,27 +68,30 @@ in {
"aplay ${self}/assets/sound/login.wav &" "aplay ${self}/assets/sound/login.wav &"
]; ];
workspace = workspace = if (config.movOpts.envConfig.hyprlandConfig.workspaceLayout
if (config.movOpts.envConfig.hyprlandConfig.workspaceLayout == "dualmonitor") then [ == "dualmonitor") then [
"1,persistent=true,monitor:${builtins.elemAt mons 0}" "1,persistent=true,monitor:${builtins.elemAt mons 0}"
"2,persistent=true,monitor:${builtins.elemAt mons 0}" "2,persistent=true,monitor:${builtins.elemAt mons 0}"
"3,persistent=true,monitor:${builtins.elemAt mons 0}" "3,persistent=true,monitor:${builtins.elemAt mons 0}"
"4,persistent=true,monitor:${builtins.elemAt mons 1}" "4,persistent=true,monitor:${builtins.elemAt mons 1}"
"5,persistent=true,monitor:${builtins.elemAt mons 1}" "5,persistent=true,monitor:${builtins.elemAt mons 1}"
"6,persistent=true,monitor:${builtins.elemAt mons 1}" "6,persistent=true,monitor:${builtins.elemAt mons 1}"
] else if (config.movOpts.envConfig.hyprlandConfig.workspaceLayout == "singlemonitor") then [ ] else if (config.movOpts.envConfig.hyprlandConfig.workspaceLayout
"1,persistent=true,monitor:${builtins.elemAt mons 0} " == "singlemonitor") then [
"2,persistent=true,monitor:${builtins.elemAt mons 0}" "1,persistent=true,monitor:${builtins.elemAt mons 0} "
"3,persistent=true,monitor:${builtins.elemAt mons 0}" "2,persistent=true,monitor:${builtins.elemAt mons 0}"
"4,persistent=true,monitor:${builtins.elemAt mons 0}" "3,persistent=true,monitor:${builtins.elemAt mons 0}"
] else if (config.movOpts.envConfig.hyprlandConfig.workspaceLayout == "trimonitor") then [ "4,persistent=true,monitor:${builtins.elemAt mons 0}"
"1,persistent=true,monitor:${builtins.elemAt mons 2}" ] else if (config.movOpts.envConfig.hyprlandConfig.workspaceLayout
"2,persistent=true,monitor:${builtins.elemAt mons 2}" == "trimonitor") then [
"3,persistent=true,monitor:${builtins.elemAt mons 1}" "1,persistent=true,monitor:${builtins.elemAt mons 2}"
"4,persistent=true,monitor:${builtins.elemAt mons 1}" "2,persistent=true,monitor:${builtins.elemAt mons 2}"
"5,persistent=true,monitor:${builtins.elemAt mons 0}" "3,persistent=true,monitor:${builtins.elemAt mons 1}"
"6,persistent=true,monitor:${builtins.elemAt mons 0}" "4,persistent=true,monitor:${builtins.elemAt mons 1}"
] else []; "5,persistent=true,monitor:${builtins.elemAt mons 0}"
"6,persistent=true,monitor:${builtins.elemAt mons 0}"
] else
[ ];
env = [ env = [
"XDG_CONFIG_HOME,$HOME/.config" "XDG_CONFIG_HOME,$HOME/.config"

View File

@@ -1,16 +1,16 @@
{lib, config, pkgs, inputs, ... }: let { lib, config, pkgs, inputs, ... }:
let
spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.system}; spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.system};
scheme = config.lib.stylix.colors; scheme = config.lib.stylix.colors;
in { in {
imports = [inputs.spicetify-nix.homeManagerModules.default]; imports = [ inputs.spicetify-nix.homeManagerModules.default ];
options = { options = {
movOpts.envConfig.spicetifyConfig.enable = lib.mkEnableOption "enable my spicetify options"; movOpts.envConfig.spicetifyConfig.enable =
lib.mkEnableOption "enable my spicetify options";
}; };
config = lib.mkIf config.movOpts.envConfig.spicetifyConfig.enable { config = lib.mkIf config.movOpts.envConfig.spicetifyConfig.enable {
nixpkgs.config.allowUnfreePredicate = pkg: nixpkgs.config.allowUnfreePredicate = pkg:
builtins.elem (lib.getName pkg) [ builtins.elem (lib.getName pkg) [ "spotify" ];
"spotify"
];
programs.spicetify = { programs.spicetify = {
enable = true; enable = true;

View File

@@ -1,6 +1,7 @@
{config, lib, inputs, ... }: { { config, lib, inputs, ... }: {
options = { options = {
movOpts.envConfig.starshipConfig.enable = lib.mkEnableOption "enables my starship configuration"; movOpts.envConfig.starshipConfig.enable =
lib.mkEnableOption "enables my starship configuration";
}; };
config = lib.mkIf config.movOpts.envConfig.starshipConfig.enable { config = lib.mkIf config.movOpts.envConfig.starshipConfig.enable {
programs.starship = { programs.starship = {
@@ -23,7 +24,9 @@
format = "[$user]($style)"; format = "[$user]($style)";
}; };
directory = { directory = {
format = "\n[$path](bold cyan)[/](bold green) "; format = ''
[$path](bold cyan)[/](bold green) '';
style = "bold #b4befe"; style = "bold #b4befe";
}; };
@@ -42,7 +45,9 @@
}; };
git_branch = { git_branch = {
format = "\non [$symbol$branch](bold purple)"; format = ''
on [$symbol$branch](bold purple)'';
symbol = " "; symbol = " ";
truncation_length = 15; truncation_length = 15;
style = "bold purple"; style = "bold purple";

View File

@@ -1,12 +1,12 @@
{lib, self, config, pkgs, ... }: { lib, self, config, pkgs, ... }:
let let
scheme = "tokyo-night-dark"; scheme = "tokyo-night-dark";
wallpaper = "${self}/assets/wallpapers/dark-waves.jpg"; wallpaper = "${self}/assets/wallpapers/dark-waves.jpg";
in in {
{
options = { options = {
movOpts.envConfig.stylixHomeConfig.enable = lib.mkEnableOption "enables my stylix Home-Manager options"; movOpts.envConfig.stylixHomeConfig.enable =
lib.mkEnableOption "enables my stylix Home-Manager options";
}; };
config = lib.mkIf config.movOpts.envConfig.stylixHomeConfig.enable { config = lib.mkIf config.movOpts.envConfig.stylixHomeConfig.enable {
stylix = { stylix = {
@@ -15,7 +15,7 @@ in
image = wallpaper; image = wallpaper;
polarity = "dark"; polarity = "dark";
autoEnable = true; autoEnable = true;
opacity.terminal = 0.50; opacity.terminal = 0.5;
targets = { targets = {
waybar.enable = false; waybar.enable = false;
btop.enable = false; btop.enable = false;
@@ -26,15 +26,15 @@ in
}; };
fonts = { fonts = {
monospace = { monospace = {
package = pkgs.nerdfonts.override {fonts = ["JetBrainsMono"];}; package = pkgs.nerdfonts.override { fonts = [ "JetBrainsMono" ]; };
name = "JetBrains Mono Nerd Font"; name = "JetBrains Mono Nerd Font";
}; };
sansSerif = { sansSerif = {
package = pkgs.nerdfonts.override {fonts = ["JetBrainsMono"];}; package = pkgs.nerdfonts.override { fonts = [ "JetBrainsMono" ]; };
name = "JetBrains Mono Nerd Font"; name = "JetBrains Mono Nerd Font";
}; };
serif = { serif = {
package = pkgs.nerdfonts.override {fonts = ["JetBrainsMono"];}; package = pkgs.nerdfonts.override { fonts = [ "JetBrainsMono" ]; };
name = "JetBrains Mono Nerd Font"; name = "JetBrains Mono Nerd Font";
}; };
sizes = { sizes = {

View File

@@ -1,9 +1,10 @@
{lib, config, pkgs, ...}: { { lib, config, pkgs, ... }: {
options = { options = {
movOpts.envConfig.swayncConfig.enable = lib.mkEnableOption "enables my swaync configuration"; movOpts.envConfig.swayncConfig.enable =
lib.mkEnableOption "enables my swaync configuration";
}; };
config = lib.mkIf config.movOpts.envConfig.swayncConfig.enable { config = lib.mkIf config.movOpts.envConfig.swayncConfig.enable {
home.packages = with pkgs; [swaynotificationcenter]; home.packages = with pkgs; [ swaynotificationcenter ];
xdg.configFile."swaync/style.css".text = '' xdg.configFile."swaync/style.css".text = ''
@define-color shadow rgba(0, 0, 0, 0.25); @define-color shadow rgba(0, 0, 0, 0.25);
/* /*

View File

@@ -1,4 +1,4 @@
{lib, config, pkgs, self, ... }: { lib, config, pkgs, self, ... }:
let let
extraFigletFonts = pkgs.fetchFromGitHub { extraFigletFonts = pkgs.fetchFromGitHub {
@@ -8,7 +8,7 @@ let
sha256 = "sha256-dAs7N66D2Fpy4/UB5Za1r2qb1iSAJR6TMmau1asxgtY="; sha256 = "sha256-dAs7N66D2Fpy4/UB5Za1r2qb1iSAJR6TMmau1asxgtY=";
}; };
toilet-extrafonts = pkgs.toilet.overrideAttrs (oldAttrs: { toilet-extrafonts = pkgs.toilet.overrideAttrs (oldAttrs: {
buildInputs = oldAttrs.buildInputs or [] ++ [extraFigletFonts]; buildInputs = oldAttrs.buildInputs or [ ] ++ [ extraFigletFonts ];
installPhase = '' installPhase = ''
make install PREFIX=$out make install PREFIX=$out
@@ -16,36 +16,35 @@ let
cp -r ${extraFigletFonts}/* $out/share/figlet cp -r ${extraFigletFonts}/* $out/share/figlet
''; '';
}); });
in in {
{
options = { options = {
movOpts.envConfig.userPkgs.enable = lib.mkEnableOption "enables my default user packages"; movOpts.envConfig.userPkgs.enable =
lib.mkEnableOption "enables my default user packages";
}; };
config = lib.mkIf config.movOpts.envConfig.userPkgs.enable { config = lib.mkIf config.movOpts.envConfig.userPkgs.enable {
home.packages = with pkgs; home.packages = with pkgs; [
[ nemo
nemo gtk3
gtk3 sqlite
sqlite gimp
gimp imagemagick
imagemagick vlc
vlc lolcat
lolcat vesktop
vesktop qbittorrent
qbittorrent neovide
neovide zsh
zsh zsh-syntax-highlighting
zsh-syntax-highlighting zsh-history-substring-search
zsh-history-substring-search zsh-autosuggestions
zsh-autosuggestions audacity
audacity rustup
rustup libreoffice
libreoffice gtrash
gtrash ripgrep
ripgrep toilet-extrafonts
toilet-extrafonts python3
python3 chafa
chafa ];
]; };
};
} }

View File

@@ -1,4 +1,4 @@
{pkgs, host, lib, config, ...}: { pkgs, host, lib, config, ... }:
let let
desktop = host == "oganesson"; desktop = host == "oganesson";
@@ -13,16 +13,20 @@ let
"6" = ""; "6" = "";
}; };
persistent-workspaces = persistent-workspaces =
if (config.movOpts.envConfig.hyprlandConfig.workspaceLayout == "singlemonitor") then { if (config.movOpts.envConfig.hyprlandConfig.workspaceLayout
"${builtins.elemAt monitors 0}" = [ 1 2 3 4 ]; == "singlemonitor") then {
} else if (config.movOpts.envConfig.hyprlandConfig.workspaceLayout == "dualmonitor") then { "${builtins.elemAt monitors 0}" = [ 1 2 3 4 ];
"${builtins.elemAt monitors 0}" = [ 1 2 3 ]; } else if (config.movOpts.envConfig.hyprlandConfig.workspaceLayout
"${builtins.elemAt monitors 1}" = [ 4 5 6 ]; == "dualmonitor") then {
} else if (config.movOpts.envConfig.hyprlandConfig.workspaceLayout == "trimonitor") then { "${builtins.elemAt monitors 0}" = [ 1 2 3 ];
"${builtins.elemAt monitors 2}" = [ 1 2 ]; "${builtins.elemAt monitors 1}" = [ 4 5 6 ];
"${builtins.elemAt monitors 1}" = [ 3 4 ]; } else if (config.movOpts.envConfig.hyprlandConfig.workspaceLayout
"${builtins.elemAt monitors 0}" = [ 5 6 ]; == "trimonitor") then {
} else {}; "${builtins.elemAt monitors 2}" = [ 1 2 ];
"${builtins.elemAt monitors 1}" = [ 3 4 ];
"${builtins.elemAt monitors 0}" = [ 5 6 ];
} else
{ };
}; };
@@ -52,14 +56,15 @@ let
monitors = config.movOpts.envConfig.hyprlandConfig.monitorNames; monitors = config.movOpts.envConfig.hyprlandConfig.monitorNames;
in { in {
options = { options = {
movOpts.envConfig.waybarConfig.enable = lib.mkEnableOption "enables my waybar configuration"; movOpts.envConfig.waybarConfig.enable =
lib.mkEnableOption "enables my waybar configuration";
}; };
config = { config = {
programs.waybar = { programs.waybar = {
enable = true; enable = true;
package = pkgs.waybar.overrideAttrs (oa: { package = pkgs.waybar.overrideAttrs (oa: {
mesonFlags = (oa.mesonFlags or []) ++ ["-Dexperimental=true"]; mesonFlags = (oa.mesonFlags or [ ]) ++ [ "-Dexperimental=true" ];
}); });
settings = { settings = {
mainBar = { mainBar = {
layer = "bottom"; layer = "bottom";
@@ -68,25 +73,13 @@ in {
name = "mainBar"; name = "mainBar";
margin-left = 8; margin-left = 8;
margin-top = 5; margin-top = 5;
margin-right = margin-right = if desktop then 8 else 5;
if desktop
then 8
else 5;
mode = "dock"; mode = "dock";
"gtk-layer-shell" = true; "gtk-layer-shell" = true;
modules-left = [ modules-left = [ "hyprland/workspaces" "cava" ];
"hyprland/workspaces" modules-center = [ "hyprland/window" ];
"cava" modules-right = [ "group/hardware" "clock" "group/powerbtns" ];
];
modules-center = [
"hyprland/window"
];
modules-right = [
"group/hardware"
"clock"
"group/powerbtns"
];
"hyprland/workspaces" = workspaces; "hyprland/workspaces" = workspaces;
@@ -107,16 +100,12 @@ in {
waves = false; waves = false;
noise_reduction = 0.77; noise_reduction = 0.77;
input_delay = 1; input_delay = 1;
format-icons = ["" "" "" "" "" "" "" ""]; format-icons = [ "" "" "" "" "" "" "" "" ];
}; };
"group/hardware" = { "group/hardware" = {
orientation = "inherit"; orientation = "inherit";
modules = [ modules = [ "custom/disk-icon" "memory" "cpu" ];
"custom/disk-icon"
"memory"
"cpu"
];
}; };
"custom/disk-icon" = { "custom/disk-icon" = {
@@ -146,34 +135,14 @@ in {
return-type = "json"; return-type = "json";
rotate = 270; rotate = 270;
format = "{icon}"; format = "{icon}";
format-icons = [ format-icons = [ "󰝦" "󰪞" "󰪟" "󰪠" "󰪡" "󰪢" "󰪣" "󰪤" "󰪥" ];
"󰝦"
"󰪞"
"󰪟"
"󰪠"
"󰪡"
"󰪢"
"󰪣"
"󰪤"
"󰪥"
];
}; };
memory = { memory = {
interval = 1; interval = 1;
rotate = 270; rotate = 270;
format = "{icon}"; format = "{icon}";
format-icons = [ format-icons = [ "󰝦" "󰪞" "󰪟" "󰪠" "󰪡" "󰪢" "󰪣" "󰪤" "󰪥" ];
"󰝦"
"󰪞"
"󰪟"
"󰪠"
"󰪡"
"󰪢"
"󰪣"
"󰪤"
"󰪥"
];
max-length = 10; max-length = 10;
tooltip-format = "RAM: {used:0.1f} GB / {total:0.1f} GB"; tooltip-format = "RAM: {used:0.1f} GB / {total:0.1f} GB";
}; };
@@ -182,17 +151,7 @@ in {
interval = 1; interval = 1;
rotate = 270; rotate = 270;
format = "{icon}"; format = "{icon}";
format-icons = [ format-icons = [ "󰝦" "󰪞" "󰪟" "󰪠" "󰪡" "󰪢" "󰪣" "󰪤" "󰪥" ];
"󰝦"
"󰪞"
"󰪟"
"󰪠"
"󰪡"
"󰪢"
"󰪣"
"󰪤"
"󰪥"
];
tooltip-format = "CPU: {usage:0.1f}%"; tooltip-format = "CPU: {usage:0.1f}%";
}; };
@@ -221,11 +180,7 @@ in {
children-class = "power-drawer"; children-class = "power-drawer";
transition-left-to-right = false; transition-left-to-right = false;
}; };
modules = [ modules = [ "custom/power" "custom/logout" "custom/reboot" ];
"custom/power"
"custom/logout"
"custom/reboot"
];
}; };
clock = { clock = {
@@ -234,292 +189,268 @@ in {
}; };
}; };
sideBar = { sideBar = {
layer = "bottom"; layer = "bottom";
output = output = if desktop then
if desktop builtins.elemAt monitors 0
then builtins.elemAt monitors 0 else
else builtins.elemAt monitors 1; builtins.elemAt monitors 1;
position = "right"; position = "right";
margin-top = 8; margin-top = 8;
margin-right = 5; margin-right = 5;
margin-bottom = 8; margin-bottom = 8;
name = "sideBar"; name = "sideBar";
mode = "dock"; mode = "dock";
"gtk-layer-shell" = true; "gtk-layer-shell" = true;
modules-left = modules-left = if desktop then
if desktop [ "hyprland/workspaces" ]
then [ else [
"hyprland/workspaces" "group/brightness"
] "battery"
else [ ];
"group/brightness" modules-center = [ ];
"battery" modules-right = [ "network" "group/audio" ];
];
modules-center = [
];
modules-right = [
"network"
"group/audio"
];
"hyprland/workspaces" = workspaces; "hyprland/workspaces" = workspaces;
"pulseaudio/slider" = { "pulseaudio/slider" = { orientation = "vertical"; };
orientation = "vertical";
};
"group/audio" = { "group/audio" = {
orientation = "vertical"; orientation = "vertical";
modules = [ modules = [ "pulseaudio/slider" "pulseaudio" ];
"pulseaudio/slider" };
"pulseaudio"
];
};
pulseaudio = { pulseaudio = {
format = "{icon}"; format = "{icon}";
format-muted = " "; format-muted = " ";
format-icons = { format-icons = { default = [ " " " " ]; };
default = [ on-click = "pactl set-sink-mute @DEFAULT_SINK@ toggle";
" " on-click-right =
" " "hyprctl dispatch exec '[float;size 40% 55%] pavucontrol'";
]; };
};
on-click = "pactl set-sink-mute @DEFAULT_SINK@ toggle";
on-click-right = "hyprctl dispatch exec '[float;size 40% 55%] pavucontrol'";
};
network = { network = {
interval = 30; interval = 30;
format-wifi = "󰖩 "; format-wifi = "󰖩 ";
tooltip-format-wifi = "{essid} ({signalStrength}%)"; tooltip-format-wifi = "{essid} ({signalStrength}%)";
format-ethernet = " "; format-ethernet = " ";
tooltip-format-ethernet = "{ifname}"; tooltip-format-ethernet = "{ifname}";
format-disconnected = "󰖪 "; format-disconnected = "󰖪 ";
tooltip-format-disconnected = "Disconnected"; tooltip-format-disconnected = "Disconnected";
on-click = "hyprctl dispatch exec '[float;size 40% 55%] kitty nmtui'"; on-click =
}; "hyprctl dispatch exec '[float;size 40% 55%] kitty nmtui'";
};
battery = { battery = {
bat = "BAT1"; bat = "BAT1";
interval = 1; interval = 1;
tooltip-format = "{capacity}%\nTil empty: {time}"; tooltip-format = ''
tooltip-format-charging = "{capacity}%\nTil full: {time}"; {capacity}%
format = "{icon}"; Til empty: {time}'';
format-icons = [ tooltip-format-charging = ''
"󰁺" {capacity}%
"󰁻" Til full: {time}'';
"󰁽" format = "{icon}";
"󰁾" format-icons = [ "󰁺" "󰁻" "󰁽" "󰁾" "󰁿" "󰂀" "󰂁" "󰂂" "󰁹" ];
"󰁿" format-charging = "󰂄";
"󰂀" };
"󰂁"
"󰂂"
"󰁹"
];
format-charging = "󰂄";
};
"group/brightness" = { "group/brightness" = {
orientation = "vertical"; orientation = "vertical";
modules = [ modules = [ "backlight" "backlight/slider" ];
"backlight" };
"backlight/slider" backlight = {
]; format = "󰃠";
}; tooltip = "{percentage}%";
backlight = { };
format = "󰃠"; "backlight/slider" = {
tooltip = "{percentage}%"; min = 10;
}; max = 100;
"backlight/slider" = { orientation = "vertical";
min = 10; rotate = 180;
max = 100; };
orientation = "vertical";
rotate = 180;
};
}; };
}; };
style = '' style = ''
* { * {
border: none; border: none;
border-radius: 0; border-radius: 0;
font-size: 16px; font-size: 16px;
font-family: "JetBrains Mono Nerd Font"; font-family: "JetBrains Mono Nerd Font";
} }
window#waybar { window#waybar {
border-radius: 10px; border-radius: 10px;
border: 3px solid #${fg.light}; border: 3px solid #${fg.light};
background: rgba(23,29,35,0.50); background: rgba(23,29,35,0.50);
margin: 20px; margin: 20px;
} }
window#waybar.empty #window { window#waybar.empty #window {
background: none; background: none;
border: none; border: none;
} }
#workspaces { #workspaces {
margin: 3px; margin: 3px;
background: #${bg.darker}; background: #${bg.darker};
border: 3px solid #${bg.dark}; border: 3px solid #${bg.dark};
border-radius: 8px; border-radius: 8px;
} }
#workspaces button:hover { #workspaces button:hover {
border-radius: 8px; border-radius: 8px;
} }
#workspaces button.active { #workspaces button.active {
background: #${fg.lightester}; background: #${fg.lightester};
border-radius: 8px; border-radius: 8px;
color: #${bg.darkest}; color: #${bg.darkest};
} }
#cava { #cava {
background: #${bg.darker}; background: #${bg.darker};
border-radius: 8px; border-radius: 8px;
border: 3px solid #${bg.dark}; border: 3px solid #${bg.dark};
margin: 3px 3px 3px 6px; margin: 3px 3px 3px 6px;
padding: 0px 15px 0px 15px; padding: 0px 15px 0px 15px;
color: #${colors.color6}; color: #${colors.color6};
} }
#window { #window {
margin: 3px; margin: 3px;
background: #${bg.darker}; background: #${bg.darker};
border-radius: 8px; border-radius: 8px;
border: 3px solid #${bg.dark}; border: 3px solid #${bg.dark};
padding: 0 15px 0 15px; padding: 0 15px 0 15px;
font-weight: bold; font-weight: bold;
} }
#hardware { #hardware {
margin: 3px; margin: 3px;
padding: 0 10px 0 10px; padding: 0 10px 0 10px;
background: #${bg.darker}; background: #${bg.darker};
border-radius: 8px; border-radius: 8px;
border: 3px solid #${bg.dark}; border: 3px solid #${bg.dark};
} }
#custom-disk-icon, #cpu, #memory { #custom-disk-icon, #cpu, #memory {
margin-bottom: 4px; margin-bottom: 4px;
font-size: 20px; font-size: 20px;
font-weight: bold; font-weight: bold;
} }
#custom-disk-icon { #custom-disk-icon {
color: #${colors.color4}; color: #${colors.color4};
} }
#memory { #memory {
color: #${colors.color1}; color: #${colors.color1};
} }
#cpu { #cpu {
color: #${colors.color3}; color: #${colors.color3};
} }
#clock { #clock {
font-weight: bold; font-weight: bold;
background: #${bg.darker}; background: #${bg.darker};
border-radius: 8px; border-radius: 8px;
border: 3px solid #${bg.dark}; border: 3px solid #${bg.dark};
margin: 3px; margin: 3px;
padding: 0 10px 0 10px; padding: 0 10px 0 10px;
font-size: 18px; font-size: 18px;
} }
#powerbtns { #powerbtns {
background: #${bg.darker}; background: #${bg.darker};
border-radius: 8px; border-radius: 8px;
border: 3px solid #${bg.dark}; border: 3px solid #${bg.dark};
margin: 3px; margin: 3px;
padding: 0 5px 0 10px; padding: 0 5px 0 10px;
} }
#custom-power { #custom-power {
color: #${colors.color2}; color: #${colors.color2};
font-size: 18px; font-size: 18px;
} }
#custom-logout { #custom-logout {
color: #${colors.color4}; color: #${colors.color4};
font-size: 18px; font-size: 18px;
} }
#custom-reboot { #custom-reboot {
color: #${colors.color0}; color: #${colors.color0};
font-size: 18px; font-size: 18px;
} }
#audio { #audio {
background: #${bg.darker}; background: #${bg.darker};
border-radius: 8px; border-radius: 8px;
border: 3px solid #${bg.dark}; border: 3px solid #${bg.dark};
margin: 3px; margin: 3px;
padding: 5px 0 10px 0; padding: 5px 0 10px 0;
} }
#pulseaudio { #pulseaudio {
color: #${colors.color1}; color: #${colors.color1};
font-size: 18px; font-size: 18px;
} }
#backlight-slider slider, #backlight-slider slider,
#pulseaudio-slider slider { #pulseaudio-slider slider {
background: #${colors.color4}; background: #${colors.color4};
background-color: transparent; background-color: transparent;
box-shadow: none; box-shadow: none;
} }
#backlight-slider trough, #backlight-slider trough,
#pulseaudio-slider trough { #pulseaudio-slider trough {
min-width: 9px; min-width: 9px;
min-height: 90px; min-height: 90px;
border-radius: 8px; border-radius: 8px;
background: #121212; background: #121212;
} }
#backlight-slider highlight, #backlight-slider highlight,
#pulseaudio-slider highlight { #pulseaudio-slider highlight {
border-radius: 8px; border-radius: 8px;
background-color: #${colors.color4}; background-color: #${colors.color4};
} }
#network { #network {
color: #${colors.color1}; color: #${colors.color1};
font-size: 20px; font-size: 20px;
background: #${bg.darker}; background: #${bg.darker};
border-radius: 8px; border-radius: 8px;
border: 3px solid #${bg.dark}; border: 3px solid #${bg.dark};
margin: 3px; margin: 3px;
padding: 5px 0 5px 6px; padding: 5px 0 5px 6px;
} }
#brightness { #brightness {
background: #${bg.darker}; background: #${bg.darker};
border-radius: 8px; border-radius: 8px;
border: 3px solid #${bg.dark}; border: 3px solid #${bg.dark};
margin: 3px; margin: 3px;
padding: 10px 0px 5px 0; padding: 10px 0px 5px 0;
} }
#backlight { #backlight {
color: #${colors.color4}; color: #${colors.color4};
font-size: 18px; font-size: 18px;
padding: 0 4px 0 0; padding: 0 4px 0 0;
} }
#battery { #battery {
color: #${colors.color4}; color: #${colors.color4};
font-size: 20px; font-size: 20px;
background: #${bg.darker}; background: #${bg.darker};
border: 3px solid #${bg.dark}; border: 3px solid #${bg.dark};
border-radius: 8px; border-radius: 8px;
margin: 3px; margin: 3px;
padding: 5px 0 5px 0px; padding: 5px 0 5px 0px;
} }
''; '';
}; };
}; };

View File

@@ -1,6 +1,7 @@
{lib, config, self, ...}: { { lib, config, self, ... }: {
options = { options = {
movOpts.envConfig.zshConfig.enable = lib.mkEnableOption "enables my zsh configuration"; movOpts.envConfig.zshConfig.enable =
lib.mkEnableOption "enables my zsh configuration";
}; };
config = lib.mkIf config.movOpts.envConfig.zshConfig.enable { config = lib.mkIf config.movOpts.envConfig.zshConfig.enable {
programs.zoxide = { programs.zoxide = {
@@ -28,7 +29,8 @@
svc = "sudo systemctl"; svc = "sudo systemctl";
viflake = "nvim flake.nix"; viflake = "nvim flake.nix";
iv = "invoke"; iv = "invoke";
cfgfilecount = "find $FLAKEPATH -name \"*.nix\" | wc -l | toilet -f 3d | lolcat"; cfgfilecount =
''find $FLAKEPATH -name "*.nix" | wc -l | toilet -f 3d | lolcat'';
#git #git
"ga" = "playshellsound ${self}/assets/sound/gitadd.wav; git add"; "ga" = "playshellsound ${self}/assets/sound/gitadd.wav; git add";
@@ -52,7 +54,7 @@
oh-my-zsh = { oh-my-zsh = {
enable = true; enable = true;
plugins = ["git" "fzf"]; plugins = [ "git" "fzf" ];
}; };
enableCompletion = true; enableCompletion = true;

View File

@@ -1,4 +1,4 @@
{pkgs, lib, self, config, ... }: { pkgs, lib, self, config, ... }:
# This folder is for programs that do not have existing configuration modules in NixOS. # This folder is for programs that do not have existing configuration modules in NixOS.
# Basically a to-do list for stuff I need to write my own modules for. # Basically a to-do list for stuff I need to write my own modules for.
@@ -10,25 +10,25 @@ let
scheme_path = "${pkgs.base16-schemes}/share/themes/${ssh_base16}.yaml"; scheme_path = "${pkgs.base16-schemes}/share/themes/${ssh_base16}.yaml";
scheme_string = builtins.readFile scheme_path; scheme_string = builtins.readFile scheme_path;
scheme_list = lib.splitString "\n" "${scheme_string}"; scheme_list = lib.splitString "\n" "${scheme_string}";
colors = lib.filter (line: builtins.match "^ *base[0-9A-F]{2}: .*" line != null) scheme_list; colors =
ssh_scheme = lib.filter (line: builtins.match "^ *base[0-9A-F]{2}: .*" line != null)
lib.lists.foldl' ( scheme_list;
acc: line: let ssh_scheme = lib.lists.foldl' (acc: line:
splitLine = lib.splitString ": " line; let
key = builtins.elemAt splitLine 0; splitLine = lib.splitString ": " line;
value = builtins.elemAt splitLine 1; key = builtins.elemAt splitLine 0;
trimmedKey = lib.trim key; value = builtins.elemAt splitLine 1;
cleanValue_step1 = lib.splitString " " value; trimmedKey = lib.trim key;
cleanValue_step2 = builtins.elemAt cleanValue_step1 0; cleanValue_step1 = lib.splitString " " value;
cleanValue_final = builtins.substring 1 (builtins.stringLength cleanValue_step2 - 2) cleanValue_step2; cleanValue_step2 = builtins.elemAt cleanValue_step1 0;
in cleanValue_final =
acc // {"${trimmedKey}" = cleanValue_final;} builtins.substring 1 (builtins.stringLength cleanValue_step2 - 2)
) {} cleanValue_step2;
colors; in acc // { "${trimmedKey}" = cleanValue_final; }) { } colors;
in in {
{
options = { options = {
movOpts.homeFiles.enable = lib.mkEnableOption "enables declared custom files"; movOpts.homeFiles.enable =
lib.mkEnableOption "enables declared custom files";
}; };
config = { config = {
home.file = { home.file = {

View File

@@ -1,6 +1,7 @@
{lib, config, ...}: { { lib, config, ... }: {
options = { options = {
movOpts.programConfigs.autojumpConfig.enable = lib.mkEnableOption "enables my autojump options"; movOpts.programConfigs.autojumpConfig.enable =
lib.mkEnableOption "enables my autojump options";
}; };
config = lib.mkIf config.movOpts.programConfigs.autojumpConfig.enable { config = lib.mkIf config.movOpts.programConfigs.autojumpConfig.enable {
programs.autojump = { programs.autojump = {

View File

@@ -1,13 +1,12 @@
{lib, config, inputs, ...}: { { lib, config, inputs, ... }: {
options = { options = {
movOpts.programConfigs.batConfig.enable = lib.mkEnableOption "enables my bat options"; movOpts.programConfigs.batConfig.enable =
lib.mkEnableOption "enables my bat options";
}; };
config = lib.mkIf config.movOpts.programConfigs.batConfig.enable { config = lib.mkIf config.movOpts.programConfigs.batConfig.enable {
programs.bat = { programs.bat = {
enable = true; enable = true;
config = { config = { pager = "less -FR"; };
pager = "less -FR";
};
}; };
}; };
} }

View File

@@ -1,6 +1,7 @@
{lib, config, pkgs, ...}: { { lib, config, pkgs, ... }: {
options = { options = {
movOpts.programConfigs.btopConfig.enable = lib.mkEnableOption "enables my btop config"; movOpts.programConfigs.btopConfig.enable =
lib.mkEnableOption "enables my btop config";
}; };
config = lib.mkIf config.movOpts.programConfigs.btopConfig.enable { config = lib.mkIf config.movOpts.programConfigs.btopConfig.enable {
programs.btop = { programs.btop = {
@@ -19,6 +20,6 @@
}; };
}; };
home.packages = with pkgs; [nvtopPackages.intel]; home.packages = with pkgs; [ nvtopPackages.intel ];
}; };
} }

View File

@@ -1,10 +1,9 @@
{lib, config, inputs, pkgs, ... }: { { lib, config, inputs, pkgs, ... }: {
options = { options = {
movOpts.programConfigs.cavaConfig.enable = lib.mkEnableOption "enables my cava settings"; movOpts.programConfigs.cavaConfig.enable =
lib.mkEnableOption "enables my cava settings";
}; };
config = lib.mkIf config.movOpts.programConfigs.cavaConfig.enable { config = lib.mkIf config.movOpts.programConfigs.cavaConfig.enable {
programs.cava = { programs.cava = { enable = true; };
enable = true;
};
}; };
} }

View File

@@ -1,27 +1,9 @@
{ { env, host, nur, nixvim, self, inputs, username, config, home-manager, ... }: {
host, imports = [ (import ./btop.nix) ] ++ [ (import ./yazi.nix) ]
nur, ++ [ (import ./kitty.nix) ] ++ [ (import ./fuzzel.nix) ]
nixvim, ++ [ (import ./eza.nix) ] ++ [ (import ./cava.nix) ]
self, ++ [ (import ./bat.nix) ] ++ [ (import ./fzf.nix) ]
inputs, ++ [ (import ./git.nix) ] ++ [ (import ./password-store.nix) ]
username, ++ [ (import ./autojump.nix) ] ++ [ (import ./firefox.nix) ]
config, ++ [ (import ./nixvim) ];
home-manager,
...
}:
{
imports =
[(import ./btop.nix)]
++ [(import ./yazi.nix)]
++ [(import ./kitty.nix)]
++ [(import ./fuzzel.nix)]
++ [(import ./eza.nix)]
++ [(import ./cava.nix)]
++ [(import ./bat.nix)]
++ [(import ./fzf.nix)]
++ [(import ./git.nix)]
++ [(import ./password-store.nix)]
++ [(import ./autojump.nix)]
++ [(import ./firefox.nix)]
++ [(import ./nixvim)];
} }

View File

@@ -1,12 +1,13 @@
{lib, config, ...}: { { lib, config, ... }: {
options = { options = {
movOpts.programConfigs.ezaConfig.enable = lib.mkEnableOption "enables my eza options"; movOpts.programConfigs.ezaConfig.enable =
lib.mkEnableOption "enables my eza options";
}; };
config = lib.mkIf config.movOpts.programConfigs.ezaConfig.enable { config = lib.mkIf config.movOpts.programConfigs.ezaConfig.enable {
programs.eza = { programs.eza = {
enable = true; enable = true;
enableZshIntegration = false; enableZshIntegration = false;
extraOptions = ["-1" "-h" "--group-directories-first"]; extraOptions = [ "-1" "-h" "--group-directories-first" ];
icons = "auto"; icons = "auto";
git = true; git = true;
}; };

View File

@@ -1,6 +1,7 @@
{lib, config, nur, username, self, pkgs, ... }: { { lib, config, nur, username, self, pkgs, ... }: {
options = { options = {
movOpts.programConfigs.firefoxConfig.enable = lib.mkEnableOption "enables my firefox configuration"; movOpts.programConfigs.firefoxConfig.enable =
lib.mkEnableOption "enables my firefox configuration";
}; };
config = lib.mkIf config.movOpts.programConfigs.firefoxConfig.enable { config = lib.mkIf config.movOpts.programConfigs.firefoxConfig.enable {
programs.firefox = { programs.firefox = {
@@ -22,7 +23,8 @@
OverridePostUpdatePage = ""; OverridePostUpdatePage = "";
DontCheckDefaultBrowser = true; DontCheckDefaultBrowser = true;
DisplayBookmarksToolbar = "always"; # alternatives: "always" or "newtab" DisplayBookmarksToolbar = "always"; # alternatives: "always" or "newtab"
DisplayMenuBar = "default-off"; # alternatives: "always", "never" or "default-on" DisplayMenuBar =
"default-off"; # alternatives: "always", "never" or "default-on"
SearchBar = "unified"; # alternative: "separate" isDefault = true; SearchBar = "unified"; # alternative: "separate" isDefault = true;
}; };
profiles.${username} = { profiles.${username} = {

View File

@@ -1,6 +1,7 @@
{config, lib, ...}: { { config, lib, ... }: {
options = { options = {
movOpts.programConfigs.fuzzelConfig.enable = lib.mkEnableOption "enables my fuzzel configuration"; movOpts.programConfigs.fuzzelConfig.enable =
lib.mkEnableOption "enables my fuzzel configuration";
}; };
config = lib.mkIf config.movOpts.programConfigs.fuzzelConfig.enable { config = lib.mkIf config.movOpts.programConfigs.fuzzelConfig.enable {
programs.fuzzel = { programs.fuzzel = {

View File

@@ -1,6 +1,7 @@
{lib, config, ...}: { { lib, config, ... }: {
options = { options = {
movOpts.programConfigs.fzfConfig.enable = lib.mkEnableOption "enables my fzf options"; movOpts.programConfigs.fzfConfig.enable =
lib.mkEnableOption "enables my fzf options";
}; };
config = lib.mkIf config.movOpts.programConfigs.fzfConfig.enable { config = lib.mkIf config.movOpts.programConfigs.fzfConfig.enable {
programs.fzf = { programs.fzf = {

View File

@@ -1,6 +1,7 @@
{lib, config, username, ...}: { { lib, config, username, ... }: {
options = { options = {
movOpts.programConfigs.gitConfig.enable = lib.mkEnableOption "enables my git configuration"; movOpts.programConfigs.gitConfig.enable =
lib.mkEnableOption "enables my git configuration";
}; };
config = lib.mkIf config.movOpts.programConfigs.gitConfig.enable { config = lib.mkIf config.movOpts.programConfigs.gitConfig.enable {
programs.git = { programs.git = {

View File

@@ -1,6 +1,7 @@
{lib, config, pkgs, ... }: { { lib, config, pkgs, ... }: {
options = { options = {
movOpts.programConfigs.kittyConfig.enable = lib.mkEnableOption "enables my kitty configuration"; movOpts.programConfigs.kittyConfig.enable =
lib.mkEnableOption "enables my kitty configuration";
}; };
config = lib.mkIf config.movOpts.programConfigs.kittyConfig.enable { config = lib.mkIf config.movOpts.programConfigs.kittyConfig.enable {
programs.kitty = { programs.kitty = {

View File

@@ -1,34 +1,37 @@
{...}: { { ... }: {
programs.nixvim = { programs.nixvim = {
autoCmd = [ autoCmd = [
{ {
command = "FloatermNew --wintype=float --name=shadeterm --position=topright --autoclose=0 --silent --cwd=<buffer> --titleposition=left zsh"; command =
event = ["VimEnter"]; "FloatermNew --wintype=float --name=shadeterm --position=topright --autoclose=0 --silent --cwd=<buffer> --titleposition=left zsh";
pattern = ["*"]; event = [ "VimEnter" ];
pattern = [ "*" ];
desc = "Create a floating terminal, placed in the top right"; desc = "Create a floating terminal, placed in the top right";
} }
{ {
command = "silent! mkview"; command = "silent! mkview";
event = ["BufWinLeave"]; event = [ "BufWinLeave" ];
pattern = ["*"]; pattern = [ "*" ];
desc = "Save session window settings to be loaded next time the file is opened"; desc =
"Save session window settings to be loaded next time the file is opened";
} }
{ {
command = "silent! !aplay ~/sound/sys/cd.wav > /dev/null 2>&1 &"; command = "silent! !aplay ~/sound/sys/cd.wav > /dev/null 2>&1 &";
event = ["BufWinLeave"]; event = [ "BufWinLeave" ];
pattern = ["*"]; pattern = [ "*" ];
desc = "Play a neat little sound effect when you close neovim"; desc = "Play a neat little sound effect when you close neovim";
} }
{ {
command = "silent! loadview"; command = "silent! loadview";
event = ["BufWinEnter"]; event = [ "BufWinEnter" ];
pattern = ["*"]; pattern = [ "*" ];
desc = "Load previous session window settings for the opened file (folds, cursor pos, etc)"; desc =
"Load previous session window settings for the opened file (folds, cursor pos, etc)";
} }
{ {
command = "setlocal textwidth=135"; command = "setlocal textwidth=135";
event = ["BufWinEnter" "BufEnter"]; event = [ "BufWinEnter" "BufEnter" ];
pattern = ["*.md" "*.wiki" "*.txt"]; pattern = [ "*.md" "*.wiki" "*.txt" ];
desc = "Set automatic linebreaks in plain text file formats"; desc = "Set automatic linebreaks in plain text file formats";
} }
]; ];

View File

@@ -1,14 +1,3 @@
{ { env, config, pkgs, host, self, ... }: {
config, imports = [ ./plugins ./options.nix ./keymaps.nix ./autocmd.nix ];
pkgs,
host,
self,
...
}: {
imports = [
./plugins
./options.nix
./keymaps.nix
./autocmd.nix
];
} }

View File

@@ -1,12 +1,7 @@
{ { config, ... }:
config,
...
}:
let let scheme = config.lib.stylix.colors;
scheme = config.lib.stylix.colors; in {
in
{
programs.nixvim = { programs.nixvim = {
colorschemes.base16 = { colorschemes.base16 = {
enable = true; enable = true;

View File

@@ -2,9 +2,7 @@
programs.nixvim = { programs.nixvim = {
plugins.barbar = { plugins.barbar = {
enable = false; enable = false;
settings = { settings = { auto_hide = 1; };
auto_hide = 1;
};
}; };
}; };
} }

View File

@@ -2,11 +2,8 @@
programs.nixvim = { programs.nixvim = {
plugins.cmp = { plugins.cmp = {
autoEnableSources = true; autoEnableSources = true;
settings.sources = [ settings.sources =
{name = "nvim_lsp";} [ { name = "nvim_lsp"; } { name = "path"; } { name = "buffer"; } ];
{name = "path";}
{name = "buffer";}
];
}; };
plugins.cmp-nvim-lsp.enable = true; plugins.cmp-nvim-lsp.enable = true;
plugins.cmp-nvim-lsp-document-symbol.enable = true; plugins.cmp-nvim-lsp-document-symbol.enable = true;

View File

@@ -2,9 +2,7 @@
programs.nixvim = { programs.nixvim = {
plugins.coq-nvim = { plugins.coq-nvim = {
enable = true; enable = true;
settings = { settings = { auto_start = false; };
auto_start = false;
};
}; };
}; };
} }

View File

@@ -1,4 +1,4 @@
{ host, self, pkgs, ... }: { host, self, pkgs, env, ... }:
{ {
imports = [ imports = [

View File

@@ -1,4 +1,4 @@
{pkgs, ...}: { { pkgs, ... }: {
programs.nixvim = { programs.nixvim = {
extraPlugins = [ extraPlugins = [
(pkgs.vimUtils.buildVimPlugin { (pkgs.vimUtils.buildVimPlugin {

View File

@@ -3,9 +3,7 @@
enable = true; enable = true;
notification = { notification = {
overrideVimNotify = true; overrideVimNotify = true;
window = { window = { border = "rounded"; };
border = "rounded";
};
}; };
}; };
} }

View File

@@ -1,4 +1,4 @@
{pkgs, ...}: { { pkgs, ... }: {
programs.nixvim = { programs.nixvim = {
extraPlugins = [ extraPlugins = [
(pkgs.vimUtils.buildVimPlugin { (pkgs.vimUtils.buildVimPlugin {
@@ -11,8 +11,6 @@
}; };
}) })
]; ];
plugins = { plugins = { haskell-scope-highlighting.enable = true; };
haskell-scope-highlighting.enable = true;
};
}; };
} }

View File

@@ -1,81 +1,81 @@
{ {
programs.nixvim = { programs.nixvim = {
plugins = { plugins = {
cmp-snippy.enable = true; cmp-snippy.enable = true;
cmp = { cmp = {
enable = true; enable = true;
settings = { settings = {
mapping = { mapping = {
__raw = '' __raw = ''
cmp.mapping.preset.insert({ cmp.mapping.preset.insert({
['<C-o>'] = cmp.mapping.close_docs(), ['<C-o>'] = cmp.mapping.close_docs(),
['<C-i>'] = cmp.mapping.open_docs(), ['<C-i>'] = cmp.mapping.open_docs(),
['<C-j>'] = cmp.mapping.scroll_docs(-4), ['<C-j>'] = cmp.mapping.scroll_docs(-4),
['<C-k>'] = cmp.mapping.scroll_docs(4), ['<C-k>'] = cmp.mapping.scroll_docs(4),
['<C-Space>'] = cmp.mapping.complete(), ['<C-Space>'] = cmp.mapping.complete(),
['<C-e>'] = cmp.mapping.abort(), ['<C-e>'] = cmp.mapping.abort(),
['<CR>'] = function(fallback) ['<CR>'] = function(fallback)
if cmp.visible() then if cmp.visible() then
cmp.confirm() cmp.confirm()
else else
fallback() fallback()
end end
end, -- Added a comma here end, -- Added a comma here
['<Tab>'] = function(fallback) ['<Tab>'] = function(fallback)
if cmp.visible() then if cmp.visible() then
cmp.select_next_item() cmp.select_next_item()
else else
fallback() fallback()
end end
end, -- Added a comma here end, -- Added a comma here
['<S-Tab>'] = function(fallback) ['<S-Tab>'] = function(fallback)
if cmp.visible() then if cmp.visible() then
cmp.select_prev_item() cmp.select_prev_item()
else else
fallback() fallback()
end end
end -- No comma needed for the last item end -- No comma needed for the last item
}) })
''; '';
};
window = {
completion.border = "rounded";
};
}; };
window = { completion.border = "rounded"; };
}; };
lsp = { };
enable = true; lsp = {
servers = { enable = true;
bashls.enable = true; servers = {
ccls.enable = true; bashls.enable = true;
clangd.enable = true; ccls.enable = true;
cmake.enable = true; clangd.enable = true;
html.enable = true; cmake.enable = true;
jsonls.enable = true; html.enable = true;
lua_ls.enable = true; jsonls.enable = true;
marksman.enable = true; lua_ls.enable = true;
nixd = { marksman.enable = true;
enable = true; nixd = {
settings = { enable = true;
nixd = { settings = {
nixpkgs.expr = "import <nixpkgs> { }"; nixd = {
formatting.command = "nixfmt"; nixpkgs.expr = "import <nixpkgs> { }";
}; formatting.command = "nixfmt";
options = { };
# uses Xenon config because it has every option exposed to it options = {
nixos.expr = "(builtins.getFlake \"github:pagedMov/nixos-config\").nixosConfigurations.xenon.options"; # uses Xenon config because it has every option exposed to it
home.expr = "(builtins.getFlake \"github:pagedMov/nixos-config\").homeConfigurations.xenonHome.options"; nixos.expr = ''
}; (builtins.getFlake "github:pagedMov/nixos-config").nixosConfigurations.xenon.options'';
home.expr = ''
(builtins.getFlake "github:pagedMov/nixos-config").homeConfigurations.xenonHome.options'';
}; };
}; };
pyright.enable = true; };
sqls.enable = true; pyright.enable = true;
hls = { sqls.enable = true;
enable = true; hls = {
installGhc = true; enable = true;
}; installGhc = true;
}; };
}; };
}; };
}; };
} };
}

View File

@@ -23,20 +23,20 @@
}; };
}; };
sections = { sections = {
lualine_a = ["mode"]; lualine_a = [ "mode" ];
lualine_b = ["buffers"]; lualine_b = [ "buffers" ];
lualine_c = []; lualine_c = [ ];
lualine_x = ["searchcount" "fileformat" "filetype"]; lualine_x = [ "searchcount" "fileformat" "filetype" ];
lualine_y = ["branch" "diff" "diagnostics"]; lualine_y = [ "branch" "diff" "diagnostics" ];
lualine_z = ["location"]; lualine_z = [ "location" ];
}; };
inactive_sections = { inactive_sections = {
lualine_a = []; lualine_a = [ ];
lualine_b = []; lualine_b = [ ];
lualine_c = ["filename"]; lualine_c = [ "filename" ];
lualine_x = ["location"]; lualine_x = [ "location" ];
lualine_y = []; lualine_y = [ ];
lualine_z = []; lualine_z = [ ];
}; };
}; };
}; };

View File

@@ -2,7 +2,8 @@
programs.nixvim.plugins.neocord = { programs.nixvim.plugins.neocord = {
enable = true; enable = true;
settings = { settings = {
logo = "https://styles.redditmedia.com/t5_30kix/styles/communityIcon_n2hvyn96zwk81.png"; logo =
"https://styles.redditmedia.com/t5_30kix/styles/communityIcon_n2hvyn96zwk81.png";
logo_tooltip = "Neovim"; logo_tooltip = "Neovim";
buttons = [ buttons = [
{ {

View File

@@ -2,9 +2,7 @@
programs.nixvim.plugins.nvim-lightbulb = { programs.nixvim.plugins.nvim-lightbulb = {
enable = true; enable = true;
settings = { settings = {
virtual_text = { virtual_text = { enable = true; };
enable = true;
};
autocmd.enabled = true; autocmd.enabled = true;
}; };
}; };

View File

@@ -0,0 +1 @@
{ programs.nixvim.plugins.chatgpt = { enable = true; }; }

View File

@@ -2,13 +2,7 @@
programs.nixvim = { programs.nixvim = {
plugins.telescope = { plugins.telescope = {
enable = true; enable = true;
settings = { settings = { pickers = { find_files = { hidden = true; }; }; };
pickers = {
find_files = {
hidden = true;
};
};
};
}; };
}; };
} }

View File

@@ -10,9 +10,7 @@
}; };
matchParen = { matchParen = {
hiSurroundAlways = true; hiSurroundAlways = true;
offscreen = { offscreen = { method = "popup"; };
method = "popup";
};
}; };
treesitterIntegration = { treesitterIntegration = {
enable = true; enable = true;

View File

@@ -1,15 +1,14 @@
{lib, config, username, ...}: let { lib, config, username, ... }:
home = "/home/${username}"; let home = "/home/${username}";
in { in {
options = { options = {
movOpts.programConfigs.passConfig.enable = lib.mkEnableOption "enables my pass config"; movOpts.programConfigs.passConfig.enable =
lib.mkEnableOption "enables my pass config";
}; };
config = lib.mkIf config.movOpts.programConfigs.passConfig.enable { config = lib.mkIf config.movOpts.programConfigs.passConfig.enable {
programs.password-store = { programs.password-store = {
enable = true; enable = true;
settings = { settings = { PASSWORD_STORE_DIR = "${home}/.password-store"; };
PASSWORD_STORE_DIR = "${home}/.password-store";
};
}; };
}; };
} }

View File

@@ -1,6 +1,7 @@
{lib, config, ...}: { { lib, config, ... }: {
options = { options = {
movOpts.programConfigs.yaziConfig.enable = lib.mkEnableOption "enables my yazi config"; movOpts.programConfigs.yaziConfig.enable =
lib.mkEnableOption "enables my yazi config";
}; };
config = lib.mkIf config.movOpts.programConfigs.yaziConfig.enable { config = lib.mkIf config.movOpts.programConfigs.yaziConfig.enable {
programs.yazi = { programs.yazi = {

View File

@@ -2,12 +2,7 @@
pkgs.writeShellApplication { pkgs.writeShellApplication {
name = "icanhazip"; name = "icanhazip";
runtimeInputs = with pkgs; [ runtimeInputs = with pkgs; [ iproute2 curl gawk coreutils ];
iproute2
curl
gawk
coreutils
];
text = '' text = ''
if [ $# -eq 0 ]; then if [ $# -eq 0 ]; then
echo "Public IP: $(curl -s icanhazip.com -4)" echo "Public IP: $(curl -s icanhazip.com -4)"

View File

@@ -1,6 +1,4 @@
{ { pkgs }:
pkgs
}:
pkgs.writeShellApplication { pkgs.writeShellApplication {
name = "invoke"; name = "invoke";
text = '' text = ''

View File

@@ -1,12 +1,10 @@
{ { pkgs, }:
pkgs,
}:
pkgs.writeShellApplication { pkgs.writeShellApplication {
name = "runbg"; name = "runbg";
runtimeInputs = with pkgs; [ runtimeInputs = with pkgs; [
coreutils # Provides `basename`, `which`, etc. coreutils # Provides `basename`, `which`, etc.
bash # Provides the Bash shell bash # Provides the Bash shell
util-linux # Provides `tty` util-linux # Provides `tty`
]; ];
text = '' text = ''
#!/usr/bin/env bash #!/usr/bin/env bash

View File

@@ -1,13 +1,7 @@
{ { pkgs }:
pkgs
}:
pkgs.writeShellApplication { pkgs.writeShellApplication {
name = "splash"; name = "splash";
runtimeInputs = with pkgs; [ runtimeInputs = with pkgs; [ lolcat toilet coreutils ];
lolcat
toilet
coreutils
];
text = '' text = ''
echo "NixOS kernel ver. $(uname -a | awk '{print $3}') x86_64 GNU/Linux" echo "NixOS kernel ver. $(uname -a | awk '{print $3}') x86_64 GNU/Linux"
date +"%A %B %-d %Y" date +"%A %B %-d %Y"

View File

@@ -1,4 +1,4 @@
{pkgs}: { pkgs }:
pkgs.writeShellApplication { pkgs.writeShellApplication {
name = "toolbelt"; name = "toolbelt";
runtimeInputs = with pkgs; [ runtimeInputs = with pkgs; [

View File

@@ -1,12 +1,7 @@
{pkgs}: { pkgs }:
pkgs.writeShellApplication { pkgs.writeShellApplication {
name = "viconf"; name = "viconf";
runtimeInputs = with pkgs; [ runtimeInputs = with pkgs; [ coreutils fd ripgrep fzf ];
coreutils
fd
ripgrep
fzf
];
text = '' text = ''
#!/usr/bin/env bash #!/usr/bin/env bash

View File

@@ -6,15 +6,9 @@ let
rev = "63dacb46bf939521bdc93981b4cbb7ecb58427a0"; rev = "63dacb46bf939521bdc93981b4cbb7ecb58427a0";
hash = "sha256-vboIEwIQojofItm2xGCdZCzW96U85l9nDW3ifMuAIdM="; hash = "sha256-vboIEwIQojofItm2xGCdZCzW96U85l9nDW3ifMuAIdM=";
}; };
in in pkgs.writeShellApplication {
pkgs.writeShellApplication {
name = "vipkg"; name = "vipkg";
runtimeInputs = with pkgs; [ runtimeInputs = with pkgs; [ coreutils fd ripgrep fzf ];
coreutils
fd
ripgrep
fzf
];
text = '' text = ''
[ ! $# -eq 1 ] && echo "Usage: vipkg <nixpkgs package name>" && exit 1 [ ! $# -eq 1 ] && echo "Usage: vipkg <nixpkgs package name>" && exit 1

View File

@@ -1,40 +1,32 @@
{ { host, lib, config, self, pkgs, ... }:
host, let
lib,
config,
self,
pkgs,
...
}: let
fetchfromgh = import ./nix/fetchfromgh.nix { inherit pkgs; }; fetchfromgh = import ./nix/fetchfromgh.nix { inherit pkgs; };
vipkg = import ./commands/vipkg.nix { inherit pkgs; }; vipkg = import ./commands/vipkg.nix { inherit pkgs; };
keyring = import ./wm-controls/keyring.nix { inherit pkgs; }; keyring = import ./wm-controls/keyring.nix { inherit pkgs; };
invoke = import ./commands/invoke.nix { inherit pkgs; }; invoke = import ./commands/invoke.nix { inherit pkgs; };
splash = import ./commands/splash.nix { inherit pkgs; }; splash = import ./commands/splash.nix { inherit pkgs; };
runbg = import ./commands/runbg.nix { inherit pkgs; }; runbg = import ./commands/runbg.nix { inherit pkgs; };
icanhazip = import ./commands/icanhazip.nix { inherit pkgs; }; icanhazip = import ./commands/icanhazip.nix { inherit pkgs; };
garbage-collect = import ./nix/garbage-collect.nix { inherit pkgs; }; garbage-collect = import ./nix/garbage-collect.nix { inherit pkgs; };
nsp = import ./nix/nsp.nix { inherit pkgs; }; nsp = import ./nix/nsp.nix { inherit pkgs; };
scheck = import ./wm-controls/s_check.nix { inherit pkgs; }; scheck = import ./wm-controls/s_check.nix { inherit pkgs; };
switchmon = import ./wm-controls/switchmon.nix { inherit pkgs; }; switchmon = import ./wm-controls/switchmon.nix { inherit pkgs; };
rebuild = import ./nix/rebuild.nix { inherit host self pkgs; }; rebuild = import ./nix/rebuild.nix { inherit host self pkgs; };
moveonscreen = import ./wm-controls/moveonscreen.nix { inherit pkgs; }; moveonscreen = import ./wm-controls/moveonscreen.nix { inherit pkgs; };
toolbelt = import ./commands/toolbelt.nix { inherit pkgs; }; toolbelt = import ./commands/toolbelt.nix { inherit pkgs; };
viconf = import ./commands/viconf.nix { inherit pkgs; }; viconf = import ./commands/viconf.nix { inherit pkgs; };
chscheme = import ./wm-controls/chscheme.nix { inherit pkgs; }; chscheme = import ./wm-controls/chscheme.nix { inherit pkgs; };
chpaper = import ./wm-controls/chpaper.nix { inherit pkgs; }; chpaper = import ./wm-controls/chpaper.nix { inherit pkgs; };
mkscreenshots = import ./wm-controls/mkscreenshots.nix { inherit pkgs; }; mkscreenshots = import ./wm-controls/mkscreenshots.nix { inherit pkgs; };
scriptOverride = scriptOverride = doc: group: name:
doc: lib.mkEnableOption "${doc}" // {
group: default = config.movOpts.movScripts.enable
name: && config.movOpts.movScripts.${group}.enable;
lib.mkEnableOption
"${doc}" // {
default = config.movOpts.movScripts.enable && config.movOpts.movScripts.${group}.enable;
}; };
in { in {
options = { options = {
movOpts.movScripts.enable = lib.mkEnableOption "Enables all pagedmov's scripts"; movOpts.movScripts.enable =
lib.mkEnableOption "Enables all pagedmov's scripts";
# Enable or disable by group # Enable or disable by group
movOpts.movScripts.commandScripts.enable = movOpts.movScripts.commandScripts.enable =
@@ -45,16 +37,20 @@ in {
lib.mkEnableOption "Enables all Nix shortcut scripts"; lib.mkEnableOption "Enables all Nix shortcut scripts";
# Command Scripts # Command Scripts
movOpts.movScripts.commandScripts.vipkg.enable = movOpts.movScripts.commandScripts.vipkg.enable = scriptOverride
scriptOverride "Search through the nixpkgs/pkgs directory for a package derivation. Useful for overrides." "commandScripts" "vipkg"; "Search through the nixpkgs/pkgs directory for a package derivation. Useful for overrides."
"commandScripts" "vipkg";
movOpts.movScripts.commandScripts.icanhazip.enable = movOpts.movScripts.commandScripts.icanhazip.enable =
scriptOverride "Enables the icanhazip command" "commandScripts" "icanhazip"; scriptOverride "Enables the icanhazip command" "commandScripts"
"icanhazip";
movOpts.movScripts.commandScripts.invoke.enable = movOpts.movScripts.commandScripts.invoke.enable =
scriptOverride "Enables the invoke command" "commandScripts" "invoke"; scriptOverride "Enables the invoke command" "commandScripts" "invoke";
movOpts.movScripts.commandScripts.runbg.enable = movOpts.movScripts.commandScripts.runbg.enable =
scriptOverride "Enables the runbg command - written by FrostPhoenix" "commandScripts" "runbg"; scriptOverride "Enables the runbg command - written by FrostPhoenix"
"commandScripts" "runbg";
movOpts.movScripts.commandScripts.splash.enable = movOpts.movScripts.commandScripts.splash.enable =
scriptOverride "Enables the splash screen when opening a terminal" "commandScripts" "splash"; scriptOverride "Enables the splash screen when opening a terminal"
"commandScripts" "splash";
movOpts.movScripts.commandScripts.toolbelt.enable = movOpts.movScripts.commandScripts.toolbelt.enable =
scriptOverride "Enables the toolbelt command" "commandScripts" "toolbelt"; scriptOverride "Enables the toolbelt command" "commandScripts" "toolbelt";
movOpts.movScripts.commandScripts.viconf.enable = movOpts.movScripts.commandScripts.viconf.enable =
@@ -66,52 +62,78 @@ in {
movOpts.movScripts.hyprlandControls.scheck.enable = movOpts.movScripts.hyprlandControls.scheck.enable =
scriptOverride "Enables the scheck command" "hyprlandControls" "scheck"; scriptOverride "Enables the scheck command" "hyprlandControls" "scheck";
movOpts.movScripts.hyprlandControls.chscheme.enable = movOpts.movScripts.hyprlandControls.chscheme.enable =
scriptOverride "Enables the chscheme command" "hyprlandControls" "chscheme"; scriptOverride "Enables the chscheme command" "hyprlandControls"
"chscheme";
movOpts.movScripts.hyprlandControls.keyring.enable = movOpts.movScripts.hyprlandControls.keyring.enable =
scriptOverride "Enables the keyring command" "hyprlandControls" "keyring"; scriptOverride "Enables the keyring command" "hyprlandControls" "keyring";
movOpts.movScripts.hyprlandControls.moveonscreen.enable = movOpts.movScripts.hyprlandControls.moveonscreen.enable =
scriptOverride "Ensures floating windows remain on screen" "hyprlandControls" "moveonscreen"; scriptOverride "Ensures floating windows remain on screen"
"hyprlandControls" "moveonscreen";
movOpts.movScripts.hyprlandControls.switchmon.enable = movOpts.movScripts.hyprlandControls.switchmon.enable =
scriptOverride "Moves cursor to the center of the second monitor" "hyprlandControls" "switchmon"; scriptOverride "Moves cursor to the center of the second monitor"
movOpts.movScripts.hyprlandControls.mkscreenshots.enable = "hyprlandControls" "switchmon";
scriptOverride "Generates screenshots, and updates the README.md with the current rev hash" "hyprlandControls" "switchmon"; movOpts.movScripts.hyprlandControls.mkscreenshots.enable = scriptOverride
"Generates screenshots, and updates the README.md with the current rev hash"
"hyprlandControls" "switchmon";
# Nix Shortcuts # Nix Shortcuts
movOpts.movScripts.nixShortcuts.fetchfromgh.enable = movOpts.movScripts.nixShortcuts.fetchfromgh.enable = scriptOverride
scriptOverride "Provides a full pkgs.fetchFromGitHub call from a repository url" "nixShortcuts" "fetchfromgh"; "Provides a full pkgs.fetchFromGitHub call from a repository url"
"nixShortcuts" "fetchfromgh";
movOpts.movScripts.nixShortcuts.garbage-collect.enable = movOpts.movScripts.nixShortcuts.garbage-collect.enable =
scriptOverride "Enables the garbage-collect script" "nixShortcuts" "garbage-collect"; scriptOverride "Enables the garbage-collect script" "nixShortcuts"
"garbage-collect";
movOpts.movScripts.nixShortcuts.nsp.enable = movOpts.movScripts.nixShortcuts.nsp.enable =
scriptOverride "Enables nsp as an alias for 'nix-shell -p'" "nixShortcuts" "nsp"; scriptOverride "Enables nsp as an alias for 'nix-shell -p'" "nixShortcuts"
movOpts.movScripts.nixShortcuts.rebuild.enable = "nsp";
scriptOverride "Enables rebuild as an alias for 'sudo nixos-rebuild switch'" "nixShortcuts" "rebuild"; movOpts.movScripts.nixShortcuts.rebuild.enable = scriptOverride
"Enables rebuild as an alias for 'sudo nixos-rebuild switch'"
"nixShortcuts" "rebuild";
}; };
config = lib.mkIf config.movOpts.movScripts.enable { config = lib.mkIf config.movOpts.movScripts.enable {
home.packages = home.packages =
lib.optionals config.movOpts.movScripts.commandScripts.invoke.enable [ invoke ] lib.optionals config.movOpts.movScripts.commandScripts.invoke.enable [
# Command Scripts Overrides invoke
++ lib.optionals config.movOpts.movScripts.commandScripts.vipkg.enable [ vipkg ] ]
++ lib.optionals config.movOpts.movScripts.commandScripts.runbg.enable [ runbg ] # Command Scripts Overrides
++ lib.optionals config.movOpts.movScripts.commandScripts.icanhazip.enable [ icanhazip ] ++ lib.optionals config.movOpts.movScripts.commandScripts.vipkg.enable
++ lib.optionals config.movOpts.movScripts.commandScripts.splash.enable [ splash ] [ vipkg ]
++ lib.optionals config.movOpts.movScripts.commandScripts.toolbelt.enable [ toolbelt ] ++ lib.optionals config.movOpts.movScripts.commandScripts.runbg.enable
++ lib.optionals config.movOpts.movScripts.commandScripts.viconf.enable [ viconf ] [ runbg ]
++ lib.optionals config.movOpts.movScripts.commandScripts.icanhazip.enable
[ icanhazip ]
++ lib.optionals config.movOpts.movScripts.commandScripts.splash.enable
[ splash ]
++ lib.optionals config.movOpts.movScripts.commandScripts.toolbelt.enable
[ toolbelt ]
++ lib.optionals config.movOpts.movScripts.commandScripts.viconf.enable [
viconf
]
# Hyprland Controls Overrides # Hyprland Controls Overrides
++ lib.optionals config.movOpts.movScripts.hyprlandControls.chpaper.enable [ chpaper ] ++ lib.optionals config.movOpts.movScripts.hyprlandControls.chpaper.enable
++ lib.optionals config.movOpts.movScripts.hyprlandControls.scheck.enable [ scheck ] [ chpaper ]
++ lib.optionals config.movOpts.movScripts.hyprlandControls.chscheme.enable [ chscheme ] ++ lib.optionals config.movOpts.movScripts.hyprlandControls.scheck.enable
++ lib.optionals config.movOpts.movScripts.hyprlandControls.keyring.enable [ keyring ] [ scheck ] ++ lib.optionals
++ lib.optionals config.movOpts.movScripts.hyprlandControls.moveonscreen.enable [ moveonscreen ] config.movOpts.movScripts.hyprlandControls.chscheme.enable [ chscheme ]
++ lib.optionals config.movOpts.movScripts.hyprlandControls.switchmon.enable [ switchmon ] ++ lib.optionals config.movOpts.movScripts.hyprlandControls.keyring.enable
++ lib.optionals config.movOpts.movScripts.hyprlandControls.mkscreenshots.enable [ mkscreenshots ] [ keyring ] ++ lib.optionals
config.movOpts.movScripts.hyprlandControls.moveonscreen.enable
[ moveonscreen ] ++ lib.optionals
config.movOpts.movScripts.hyprlandControls.switchmon.enable [ switchmon ]
++ lib.optionals
config.movOpts.movScripts.hyprlandControls.mkscreenshots.enable [
mkscreenshots
]
# Nix Shortcuts Overrides # Nix Shortcuts Overrides
++ lib.optionals config.movOpts.movScripts.nixShortcuts.fetchfromgh.enable [ fetchfromgh ] ++ lib.optionals config.movOpts.movScripts.nixShortcuts.fetchfromgh.enable
++ lib.optionals config.movOpts.movScripts.nixShortcuts.garbage-collect.enable [ garbage-collect ] [ fetchfromgh ] ++ lib.optionals
++ lib.optionals config.movOpts.movScripts.nixShortcuts.nsp.enable [ nsp ] config.movOpts.movScripts.nixShortcuts.garbage-collect.enable
++ lib.optionals config.movOpts.movScripts.nixShortcuts.rebuild.enable [ rebuild ]; [ garbage-collect ]
++ lib.optionals config.movOpts.movScripts.nixShortcuts.nsp.enable [ nsp ]
++ lib.optionals config.movOpts.movScripts.nixShortcuts.rebuild.enable
[ rebuild ];
}; };
} }

View File

@@ -2,37 +2,35 @@
pkgs.writeShellApplication { pkgs.writeShellApplication {
name = "fetchfromgh"; name = "fetchfromgh";
runtimeInputs = [ runtimeInputs = [ pkgs.nix-prefetch-scripts ];
pkgs.nix-prefetch-scripts
];
text = '' text = ''
if [ $# -ne 1 ] || ! echo "$1" | grep -qE "[A-Za-z0-9_-]+/[A-Za-z0-9_-]+"; then if [ $# -ne 1 ] || ! echo "$1" | grep -qE "[A-Za-z0-9_-]+/[A-Za-z0-9_-]+"; then
echo "Usage: fetchfromgh someuser/somerepo" echo "Usage: fetchfromgh someuser/somerepo"
echo " - i.e. fetchfromgh pagedMov/nixos-config" echo " - i.e. fetchfromgh pagedMov/nixos-config"
exit 1
fi
if ! curl -s -o /dev/null -w "%{http_code}" "https://github.com/$1" | grep -q "200"; then
echo "Couldn't find that repository, curl returned 404."
exit 1 exit 1
fi fi
if ! curl -s -o /dev/null -w "%{http_code}" "https://github.com/$1" | grep -q "200"; then json=$(nix-prefetch-git --quiet "https://github.com/$1")
echo "Couldn't find that repository, curl returned 404."
exit 1
fi
json=$(nix-prefetch-git --quiet "https://github.com/$1") url=$(echo "$json" | jq '.url' | tr -d '"')
owner=$(echo "$url" | awk -F'/' '{print $(NF-1)}')
repo=$(echo "$url" | awk -F'/' '{print $NF}')
rev=$(echo "$json" | jq '.rev' | tr -d '"')
hash=$(echo "$json" | jq '.hash' | tr -d '"')
url=$(echo "$json" | jq '.url' | tr -d '"') output="\
owner=$(echo "$url" | awk -F'/' '{print $(NF-1)}') src = pkgs.fetchFromGitHub {
repo=$(echo "$url" | awk -F'/' '{print $NF}') owner = \"$owner\";
rev=$(echo "$json" | jq '.rev' | tr -d '"') repo = \"$repo\";
hash=$(echo "$json" | jq '.hash' | tr -d '"') rev = \"$rev\";
hash = \"$hash\";
output="\ };
src = pkgs.fetchFromGitHub { "
owner = \"$owner\"; echo "$output"
repo = \"$repo\";
rev = \"$rev\";
hash = \"$hash\";
};
"
echo "$output"
''; '';
} }

View File

@@ -1,6 +1,4 @@
{ { pkgs }:
pkgs
}:
pkgs.writeShellApplication { pkgs.writeShellApplication {
name = "garbage-collect"; name = "garbage-collect";
runtimeInputs = with pkgs; [ runtimeInputs = with pkgs; [

View File

@@ -1,6 +1,4 @@
{ { pkgs }:
pkgs
}:
pkgs.writeShellApplication { pkgs.writeShellApplication {
name = "nsp"; name = "nsp";
text = '' text = ''

View File

@@ -1,8 +1,4 @@
{ { host, self, pkgs, }:
host,
self,
pkgs,
}:
pkgs.writeShellApplication { pkgs.writeShellApplication {
name = "rebuild"; name = "rebuild";
text = '' text = ''

View File

@@ -1,13 +1,7 @@
{pkgs}: { pkgs }:
pkgs.writeShellApplication { pkgs.writeShellApplication {
name = "chpaper"; name = "chpaper";
runtimeInputs = with pkgs; [ runtimeInputs = with pkgs; [ chafa fzf ripgrep findutils coreutils ];
chafa
fzf
ripgrep
findutils
coreutils
];
text = '' text = ''
paper="$\{self}/assets/wallpapers/$(find "$FLAKEPATH"/assets/wallpapers -exec basename {} \; | rg "\.\w+$" | fzf --preview "chafa -s 30x40 $FLAKEPATH/assets/wallpapers/{}")" paper="$\{self}/assets/wallpapers/$(find "$FLAKEPATH"/assets/wallpapers -exec basename {} \; | rg "\.\w+$" | fzf --preview "chafa -s 30x40 $FLAKEPATH/assets/wallpapers/{}")"
[ "$paper" = "$\{self}/assets/wallpapers/" ] && echo "Cancelling wallpaper change" && exit 1 [ "$paper" = "$\{self}/assets/wallpapers/" ] && echo "Cancelling wallpaper change" && exit 1

View File

@@ -1,10 +1,7 @@
{ pkgs }: { pkgs }:
pkgs.writeShellApplication { pkgs.writeShellApplication {
name = "chscheme"; name = "chscheme";
runtimeInputs = with pkgs; [ runtimeInputs = with pkgs; [ fzf coreutils ];
fzf
coreutils
];
text = '' text = ''
selected_scheme=$(/usr/bin/env ls "$(nix-build '<nixpkgs>' -A base16-schemes)"/share/themes | \ selected_scheme=$(/usr/bin/env ls "$(nix-build '<nixpkgs>' -A base16-schemes)"/share/themes | \
sed 's/\.yaml//g' | \ sed 's/\.yaml//g' | \

View File

@@ -1,6 +1,4 @@
{ { pkgs }:
pkgs
}:
pkgs.writeShellApplication { pkgs.writeShellApplication {
name = "keyring"; name = "keyring";
runtimeInputs = with pkgs; [ runtimeInputs = with pkgs; [

View File

@@ -2,15 +2,7 @@
pkgs.writeShellApplication { pkgs.writeShellApplication {
name = "mkscreenshots"; name = "mkscreenshots";
runtimeInputs = with pkgs; [ runtimeInputs = with pkgs; [ jq neofetch kitty coreutils nemo grimblast git ];
jq
neofetch
kitty
coreutils
nemo
grimblast
git
];
text = '' text = ''
if [ -n "$(hyprctl clients -j | jq -r '.[] | select(.workspace.name == "4")')" ]; then if [ -n "$(hyprctl clients -j | jq -r '.[] | select(.workspace.name == "4")')" ]; then
echo "There are windows in workspace 4. This script uses workspace 4, so move those windows and run it again." echo "There are windows in workspace 4. This script uses workspace 4, so move those windows and run it again."

View File

@@ -1,12 +1,7 @@
{pkgs}: { pkgs }:
pkgs.writeShellApplication { pkgs.writeShellApplication {
name = "moveonscreen"; name = "moveonscreen";
runtimeInputs = with pkgs; [ runtimeInputs = with pkgs; [ hyprland jq coreutils gawk ];
hyprland
jq
coreutils
gawk
];
text = '' text = ''
center_window=false center_window=false
if [[ ! $# -eq 0 ]] && [[ $1 == "--center" ]]; then if [[ ! $# -eq 0 ]] && [[ $1 == "--center" ]]; then

View File

@@ -1,6 +1,4 @@
{ { pkgs, }:
pkgs,
}:
pkgs.writeShellApplication { pkgs.writeShellApplication {
name = "scheck"; name = "scheck";
text = '' text = ''

View File

@@ -1,6 +1,4 @@
{ { pkgs, }:
pkgs,
}:
pkgs.writeShellApplication { pkgs.writeShellApplication {
name = "switchmon"; name = "switchmon";
text = '' text = ''

View File

@@ -1,13 +1,4 @@
{ { inputs, nixpkgs, config, self, username, host, lib, ... }: {
inputs,
nixpkgs,
config,
self,
username,
host,
lib,
...
}: {
imports = [ imports = [
./environment/starship.nix ./environment/starship.nix
./environment/userpkgs.nix ./environment/userpkgs.nix

View File

@@ -2,7 +2,8 @@
{ {
options = { options = {
movOpts.jellyfinConfig.enable = lib.mkEnableOption "Enables the server's jellyfin config"; movOpts.jellyfinConfig.enable =
lib.mkEnableOption "Enables the server's jellyfin config";
}; };
config = lib.mkIf config.movOpts.jellyfinConfig.enable { config = lib.mkIf config.movOpts.jellyfinConfig.enable {
services.jellyfin = { services.jellyfin = {

View File

@@ -1,10 +1,7 @@
{ pkgs, lib, ... }: { pkgs, lib, ... }:
{ {
imports = [ imports = [ ./cdn ./glasshaus ];
./cdn
./glasshaus
];
movOpts = { movOpts = {
jellyfinConfig.enable = lib.mkDefault false; jellyfinConfig.enable = lib.mkDefault false;
caddyConfig.enable = lib.mkDefault false; caddyConfig.enable = lib.mkDefault false;

View File

@@ -2,7 +2,8 @@
{ {
options = { options = {
movOpts.caddyConfig.enable = lib.mkEnableOption "Enable my caddy config for the glasshaus.info domain name"; movOpts.caddyConfig.enable = lib.mkEnableOption
"Enable my caddy config for the glasshaus.info domain name";
}; };
config = lib.mkIf config.movOpts.caddyConfig.enable { config = lib.mkIf config.movOpts.caddyConfig.enable {
services.caddy = { services.caddy = {

View File

@@ -1,16 +1,3 @@
{ { inputs, nixpkgs, config, self, username, host, lib, ... }: {
inputs, imports = [ ./hardware ./software ./environment ];
nixpkgs,
config,
self,
username,
host,
lib,
...
}: {
imports = [
./hardware
./software
./environment
];
} }

View File

@@ -1,16 +1,4 @@
{ { inputs, nixpkgs, nixvim, config, self, username, host, ... }: {
inputs, imports = [ (import ./sddm.nix) ] ++ [ (import ./issue.nix) ]
nixpkgs, ++ [ (import ./nix.nix) ] ++ [ (import ./stylix.nix) ];
nixvim,
config,
self,
username,
host,
...
}: {
imports =
[(import ./sddm.nix)]
++ [(import ./issue.nix)]
++ [(import ./nix.nix)]
++ [(import ./stylix.nix)];
} }

View File

@@ -1,6 +1,7 @@
{lib, config, ...}: { { lib, config, ... }: {
options = { options = {
movOpts.sysEnv.issue.enable = lib.mkEnableOption "enables custom /etc/issue splash screen for the tty"; movOpts.sysEnv.issue.enable =
lib.mkEnableOption "enables custom /etc/issue splash screen for the tty";
}; };
config = lib.mkIf config.movOpts.sysEnv.issue.enable { config = lib.mkIf config.movOpts.sysEnv.issue.enable {
environment.etc."issue".text = '' environment.etc."issue".text = ''

View File

@@ -1,6 +1,7 @@
{lib, config, ... }: { { lib, config, ... }: {
options = { options = {
movOpts.sysEnv.nixSettings.enable = lib.mkEnableOption "enables my nixos settings"; movOpts.sysEnv.nixSettings.enable =
lib.mkEnableOption "enables my nixos settings";
}; };
config = lib.mkIf config.movOpts.sysEnv.nixSettings.enable { config = lib.mkIf config.movOpts.sysEnv.nixSettings.enable {
system.stateVersion = "24.05"; system.stateVersion = "24.05";
@@ -8,8 +9,8 @@
nix = { nix = {
settings = { settings = {
auto-optimise-store = true; auto-optimise-store = true;
experimental-features = ["nix-command" "flakes"]; experimental-features = [ "nix-command" "flakes" ];
substituters = ["https://nix-gaming.cachix.org"]; substituters = [ "https://nix-gaming.cachix.org" ];
}; };
gc = { gc = {
automatic = true; automatic = true;

View File

@@ -1,24 +1,17 @@
{ { pkgs, self, lib, config, ... }: {
pkgs,
self,
lib,
config,
...
}: {
options = { options = {
movOpts.sysEnv.sddmConfig.enable = lib.mkEnableOption "enables custom sddm configuration"; movOpts.sysEnv.sddmConfig.enable =
lib.mkEnableOption "enables custom sddm configuration";
}; };
config = lib.mkIf config.movOpts.sysEnv.sddmConfig.enable { config = lib.mkIf config.movOpts.sysEnv.sddmConfig.enable {
environment.systemPackages = [ environment.systemPackages = [
( (pkgs.catppuccin-sddm.override {
pkgs.catppuccin-sddm.override { flavor = "mocha";
flavor = "mocha"; font = "JetBrains Mono Nerd Font";
font = "JetBrains Mono Nerd Font"; fontSize = "14";
fontSize = "14"; loginBackground = true;
loginBackground = true; background = "${self}/assets/wallpapers/dark-waves.jpg";
background = "${self}/assets/wallpapers/dark-waves.jpg"; })
}
)
]; ];
services.displayManager.sddm = { services.displayManager.sddm = {
enable = true; enable = true;

View File

@@ -1,18 +1,12 @@
{ { pkgs, self, lib, config, ... }:
pkgs,
self,
lib,
config,
...
}:
let let
scheme = "tokyo-night-dark"; scheme = "tokyo-night-dark";
wallpaper = "${self}/assets/wallpapers/dark-waves.jpg"; wallpaper = "${self}/assets/wallpapers/dark-waves.jpg";
in in {
{
options = { options = {
movOpts.sysEnv.stylixConfig.enable = lib.mkEnableOption "enables custom stylix options"; movOpts.sysEnv.stylixConfig.enable =
lib.mkEnableOption "enables custom stylix options";
}; };
config = lib.mkIf config.movOpts.sysEnv.stylixConfig.enable { config = lib.mkIf config.movOpts.sysEnv.stylixConfig.enable {
stylix = { stylix = {
@@ -25,7 +19,7 @@ in
}; };
polarity = "dark"; polarity = "dark";
autoEnable = true; autoEnable = true;
opacity.terminal = 0.50; opacity.terminal = 0.5;
targets = { targets = {
console.enable = true; console.enable = true;
feh.enable = true; feh.enable = true;
@@ -39,15 +33,15 @@ in
}; };
fonts = { fonts = {
monospace = { monospace = {
package = pkgs.nerdfonts.override {fonts = ["JetBrainsMono"];}; package = pkgs.nerdfonts.override { fonts = [ "JetBrainsMono" ]; };
name = "JetBrains Mono Nerd Font"; name = "JetBrains Mono Nerd Font";
}; };
sansSerif = { sansSerif = {
package = pkgs.nerdfonts.override {fonts = ["JetBrainsMono"];}; package = pkgs.nerdfonts.override { fonts = [ "JetBrainsMono" ]; };
name = "JetBrains Mono Nerd Font"; name = "JetBrains Mono Nerd Font";
}; };
serif = { serif = {
package = pkgs.nerdfonts.override {fonts = ["JetBrainsMono"];}; package = pkgs.nerdfonts.override { fonts = [ "JetBrainsMono" ]; };
name = "JetBrains Mono Nerd Font"; name = "JetBrains Mono Nerd Font";
}; };
sizes = { sizes = {

View File

@@ -1,6 +1,7 @@
{pkgs, lib, config, ...}: { { pkgs, lib, config, ... }: {
options = { options = {
movOpts.hardwareCfg.bootLoader.enable = lib.mkEnableOption "enables bootloader config"; movOpts.hardwareCfg.bootLoader.enable =
lib.mkEnableOption "enables bootloader config";
}; };
config = lib.mkIf config.movOpts.hardwareCfg.bootLoader.enable { config = lib.mkIf config.movOpts.hardwareCfg.bootLoader.enable {
boot = { boot = {

View File

@@ -1,15 +1,4 @@
{ { inputs, nixpkgs, nixvim, config, self, username, host, ... }: {
inputs, imports = [ (import ./bootloader.nix) ] ++ [ (import ./network.nix) ]
nixpkgs, ++ [ (import ./powerprofiles.nix) ];
nixvim,
config,
self,
username,
host,
...
}: {
imports =
[(import ./bootloader.nix)]
++ [(import ./network.nix)]
++ [(import ./powerprofiles.nix)];
} }

View File

@@ -1,16 +1,16 @@
{host, lib, config, ...}: { host, lib, config, ... }: {
{
options = { options = {
movOpts.hardwareCfg.networkModule.enable = lib.mkEnableOption "enables network configuration"; movOpts.hardwareCfg.networkModule.enable =
lib.mkEnableOption "enables network configuration";
}; };
config = lib.mkIf config.movOpts.hardwareCfg.networkModule.enable { config = lib.mkIf config.movOpts.hardwareCfg.networkModule.enable {
networking = { networking = {
networkmanager.enable = true; networkmanager.enable = true;
hostName = "${host}"; hostName = "${host}";
hosts = { hosts = {
"192.168.1.200" = ["xenon"]; "192.168.1.200" = [ "xenon" ];
"192.168.1.201" = ["oganesson"]; "192.168.1.201" = [ "oganesson" ];
"192.168.1.202" = ["mercury"]; "192.168.1.202" = [ "mercury" ];
}; };
firewall = { firewall = {
enable = true; enable = true;

View File

@@ -1,6 +1,7 @@
{lib, config, ... }: { { lib, config, ... }: {
options = { options = {
movOpts.hardwareCfg.powerProfiles.enable = lib.mkEnableOption "enables power profiles"; movOpts.hardwareCfg.powerProfiles.enable =
lib.mkEnableOption "enables power profiles";
}; };
config = lib.mkIf config.movOpts.hardwareCfg.powerProfiles.enable { config = lib.mkIf config.movOpts.hardwareCfg.powerProfiles.enable {
services = { services = {

View File

@@ -1,16 +1,5 @@
{ { inputs, nixpkgs, config, self, username, host, ... }: {
inputs, imports = [ (import ./packages.nix) ] ++ [ (import ./programs.nix) ]
nixpkgs, ++ [ (import ./services.nix) ] ++ [ (import ./virtualization.nix) ]
config, ++ [ (import ./gaming) ];
self,
username,
host,
...
}: {
imports =
[(import ./packages.nix)]
++ [(import ./programs.nix)]
++ [(import ./services.nix)]
++ [(import ./virtualization.nix)]
++ [(import ./gaming)];
} }

View File

@@ -1,5 +1,3 @@
{...}: { { ... }: {
imports = imports = [ (import ./steam.nix) ] ++ [ (import ./gaming_pkgs.nix) ];
[(import ./steam.nix)]
++ [(import ./gaming_pkgs.nix)];
} }

View File

@@ -1,23 +1,20 @@
{lib, config, pkgs, ...}: { lib, config, pkgs, ... }:
let let
cust-openrct2 = pkgs.openrct2.overrideAttrs (oldAttrs: { cust-openrct2 = pkgs.openrct2.overrideAttrs (oldAttrs: {
cmakeFlags = [ cmakeFlags = [
"-DDOWNLOAD_OBJECTS=ON" "-DDOWNLOAD_OBJECTS=ON"
"-DDOWNLOAD_OPENMSX=ON" "-DDOWNLOAD_OPENMSX=ON"
"-DDOWNLOAD_OPENSFX=ON" "-DDOWNLOAD_OPENSFX=ON"
"-DDOWNLOAD_TITLE_SEQUENCES=ON" "-DDOWNLOAD_TITLE_SEQUENCES=ON"
]; ];
}); });
in in {
{
options = { options = {
movOpts.softwareCfg.gamingPkgs.enable = lib.mkEnableOption "enables gaming packages"; movOpts.softwareCfg.gamingPkgs.enable =
lib.mkEnableOption "enables gaming packages";
}; };
config = lib.mkIf config.movOpts.softwareCfg.gamingPkgs.enable { config = lib.mkIf config.movOpts.softwareCfg.gamingPkgs.enable {
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [ snes9x-gtk cust-openrct2 ];
snes9x-gtk
cust-openrct2
];
}; };
} }

View File

@@ -1,6 +1,7 @@
{lib, config, ...}: { { lib, config, ... }: {
options = { options = {
movOpts.softwareCfg.steamConfig.enable = lib.mkEnableOption "enables steam configuration"; movOpts.softwareCfg.steamConfig.enable =
lib.mkEnableOption "enables steam configuration";
}; };
config = lib.mkIf config.movOpts.softwareCfg.steamConfig.enable { config = lib.mkIf config.movOpts.softwareCfg.steamConfig.enable {
programs.steam = { programs.steam = {

View File

@@ -1,6 +1,7 @@
{lib, config, pkgs, inputs, ... }: { { lib, config, pkgs, inputs, ... }: {
options = { options = {
movOpts.softwareCfg.sysPkgs.enable = lib.mkEnableOption "enables default system packages"; movOpts.softwareCfg.sysPkgs.enable =
lib.mkEnableOption "enables default system packages";
}; };
config = lib.mkIf config.movOpts.softwareCfg.sysPkgs.enable { config = lib.mkIf config.movOpts.softwareCfg.sysPkgs.enable {
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [

View File

@@ -1,6 +1,7 @@
{lib, config, pkgs, ...}: { { lib, config, pkgs, ... }: {
options = { options = {
movOpts.softwareCfg.sysProgs.enable = lib.mkEnableOption "enables default system programs"; movOpts.softwareCfg.sysProgs.enable =
lib.mkEnableOption "enables default system programs";
}; };
config = lib.mkIf config.movOpts.softwareCfg.sysProgs.enable { config = lib.mkIf config.movOpts.softwareCfg.sysProgs.enable {
programs = { programs = {
@@ -8,10 +9,7 @@
zsh.enable = lib.mkDefault true; zsh.enable = lib.mkDefault true;
nix-ld = { nix-ld = {
enable = lib.mkDefault true; enable = lib.mkDefault true;
libraries = with pkgs; [ libraries = with pkgs; [ stdenv.cc.cc ffmpeg-full ];
stdenv.cc.cc
ffmpeg-full
];
}; };
gnupg.agent = { gnupg.agent = {
enable = lib.mkDefault true; enable = lib.mkDefault true;

View File

@@ -1,16 +1,15 @@
{lib, config, ...}: { { lib, config, ... }: {
options = { options = {
movOpts.softwareCfg.sysServices.enable = lib.mkEnableOption "enables default system services"; movOpts.softwareCfg.sysServices.enable =
lib.mkEnableOption "enables default system services";
}; };
config = lib.mkIf config.movOpts.softwareCfg.sysServices.enable { config = lib.mkIf config.movOpts.softwareCfg.sysServices.enable {
services = { services = {
keyd = { keyd = {
enable = true; enable = true;
keyboards.default = { keyboards.default = {
ids = ["*"]; ids = [ "*" ];
settings.main = { settings.main = { capslock = "esc"; };
capslock = "esc";
};
}; };
}; };
pipewire = { pipewire = {

View File

@@ -1,6 +1,7 @@
{lib, config, username, ...}: { { lib, config, username, ... }: {
options = { options = {
movOpts.softwareCfg.virtConfig.enable = lib.mkEnableOption "enables virtualization"; movOpts.softwareCfg.virtConfig.enable =
lib.mkEnableOption "enables virtualization";
}; };
config = lib.mkIf config.movOpts.softwareCfg.virtConfig.enable { config = lib.mkIf config.movOpts.softwareCfg.virtConfig.enable {
virtualisation.libvirtd.enable = true; virtualisation.libvirtd.enable = true;