restructure

This commit is contained in:
twoneis 2024-05-09 20:17:37 +02:00
parent d7bd686648
commit eecb15a4ec
50 changed files with 281 additions and 564 deletions

View file

@ -6,17 +6,14 @@
networking.hostName = "akarso"; networking.hostName = "akarso";
# Add user to surface control group for surface linux
users.users.twoneis.extraGroups = [ "surface-control" ]; users.users.twoneis.extraGroups = [ "surface-control" ];
# Bootloader.
boot.loader = { boot.loader = {
systemd-boot = { systemd-boot = {
enable = true; enable = true;
}; };
}; };
# Enable OpenGL
hardware.opengl = { hardware.opengl = {
enable = true; enable = true;
driSupport = true; driSupport = true;
@ -36,17 +33,6 @@
surface-control.enable = true; surface-control.enable = true;
}; };
hardware.bluetooth = { system.stateVersion = "23.05";
enable = true;
powerOnBoot = true;
};
# This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions
# on your system were taken. Its perfectly fine and recommended to leave
# this value at the release version of the first install of this system.
# Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
system.stateVersion = "23.05"; # Did you read the comment?
} }

View file

@ -1,36 +1,31 @@
{ config, lib, modulesPath, ... }: { { config, lib, ... }: {
imports = [ boot = {
(modulesPath + "/installer/scan/not-detected.nix") initrd = {
]; availableKernelModules = [ "xhci_pci" "nvme" "usb_storage" "sd_mod" ];
kernelModules = [ ];
boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "usb_storage" "sd_mod" ]; };
boot.initrd.kernelModules = [ ]; kernelModules = [ "kvm-intel" ];
boot.kernelModules = [ "kvm-intel" ]; extraModulePackages = [ ];
boot.extraModulePackages = [ ];
fileSystems."/" = {
device = "/dev/disk/by-uuid/4ecc3b27-016f-4416-a819-bd0998fc993f";
fsType = "ext4";
}; };
fileSystems."/boot" = { fileSystems = {
device = "/dev/disk/by-uuid/0721-3632"; "/" = {
fsType = "vfat"; device = "/dev/disk/by-uuid/4ecc3b27-016f-4416-a819-bd0998fc993f";
}; fsType = "ext4";
};
fileSystems."/sd" = { "/boot" = {
device = "/dev/disk/by-uuid/b3faf000-8792-4fca-916a-5965c0cb8186"; device = "/dev/disk/by-uuid/0721-3632";
fsType = "ext4"; fsType = "vfat";
};
"/ext" = {
device = "/dev/disk/by-uuid/b3faf000-8792-4fca-916a-5965c0cb8186";
fsType = "ext4";
};
}; };
swapDevices = [ { device = "/dev/disk/by-uuid/b35abec3-ff20-4b3b-b953-e36f2df719cb"; } ]; swapDevices = [ { device = "/dev/disk/by-uuid/b35abec3-ff20-4b3b-b953-e36f2df719cb"; } ];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true; networking.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp0s20f3.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;

View file

@ -1,6 +1,16 @@
{ ... }: { { ... }: {
minimal = false;
full = true;
withAudio = true;
withBluetooth = true;
withNvidia = false;
withNiri = true; withNiri = true;
withGnome = false; withGnome = false;
withVM = false; withVM = false;
withContainers = false;
withDistrobox = false; withDistrobox = false;
withGames = false;
} }

View file

@ -1,17 +0,0 @@
{ pkgs, ... }: {
imports = [
./hardware-config.nix
];
boot.kernelPackages = pkgs.linuxPackages_zen;
networking.hostName = "creosote";
boot.loader = {
systemd-boot = {
enable = true;
};
};
system.stateVersion = "24.05";
}

View file

@ -1,36 +0,0 @@
{ config, lib, modulesPath, ... }: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "ahci" "xhci_pci" "usbhid" "usb_storage" "ums_realtek" "sd_mod" "sdhci_pci" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
fileSystems."/" = {
device = "/dev/disk/by-uuid/4a496297-dd6f-42d8-9e1f-56149a0166ea";
fsType = "ext4";
};
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/D976-03E3";
fsType = "vfat";
};
swapDevices = [
{ device = "/dev/disk/by-uuid/3a785c6a-7f59-4647-9a84-f2e65d03997b"; }
];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.enp2s0.useDHCP = lib.mkDefault true;
# networking.interfaces.enp3s0.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp1s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

View file

@ -1,7 +1,6 @@
{ pkgs, ... }: { { pkgs, ... }: {
imports = [ imports = [
./hardware-config.nix ./hardware-config.nix
./nvidia.nix
./options.nix ./options.nix
]; ];
@ -30,11 +29,6 @@
driSupport32Bit = true; driSupport32Bit = true;
}; };
hardware.bluetooth = {
enable = true;
powerOnBoot = true;
};
# This value determines the NixOS release from which the default # This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions # settings for stateful data, like file locations and database versions
# on your system were taken. Its perfectly fine and recommended to leave # on your system were taken. Its perfectly fine and recommended to leave

View file

@ -1,8 +1,16 @@
{ ... }: { { ... }: {
minimal = false;
full = true;
withAudio = true;
withBluetooth = true;
withNvidia = true;
withNiri = true; withNiri = true;
withGnome = false; withGnome = false;
withNvidia = true;
withVM = false; withVM = false;
withContainers = false;
withDistrobox = false; withDistrobox = false;
withGames = false; withGames = false;
} }

View file

@ -1,4 +1,4 @@
{ ... }: { { lib, config, ... }: lib.mkIf(config.withAudio) {
# Enable sound with pipewire. # Enable sound with pipewire.
sound.enable = false; sound.enable = false;
hardware.pulseaudio.enable = false; hardware.pulseaudio.enable = false;

View file

@ -0,0 +1,8 @@
{ lib, config, ... }: lib.mkIf(config.withBluetooth) {
hardware.bluetooth = {
enable = true;
powerOnBoot = true;
};
services.blueman.enable = true;
}

View file

@ -1,4 +1,4 @@
{ ... }: { { lib, config, ... }: lib.mkIf(config.withContainers) {
virtualisation.podman = { virtualisation.podman = {
enable = true; enable = true;
dockerCompat = true; dockerCompat = true;

View file

@ -4,67 +4,51 @@
{ inputs, pkgs, ... }: { { inputs, pkgs, ... }: {
imports = [ imports = [
./audio.nix ./audio
./containers.nix ./bluetooth
./distrobox.nix ./containers
./fonts.nix ./distrobox
./games.nix ./games
./gnome ./gnome
./home
./niri ./niri
./virt.nix ./nvidia
./virt
]; ];
# Overlays for nixpkgs nixpkgs = {
nixpkgs.overlays = [ overlays = [
inputs.nur.overlay inputs.nur.overlay
]; ];
config = {
# Needed for some nautilus features like auto-mount and trash allowUnfree = true;
services.gvfs.enable = true; };
# 57621: spotifyd
networking.firewall.allowedTCPPorts = [ 57621 ];
services.xserver.displayManager.gdm.enable = true;
# Wayland in electron
environment.sessionVariables.NIXOS_OZONE_WL = "1";
networking.extraHosts =
''
10.10.11.245 surveillance.htb
'';
nix.nixPath = ["nixpkgs=${inputs.nixpkgs}"];
# Allow packages from nixpkgs
nixpkgs.config = {
allowUnfree = true;
}; };
#Optimise nix store
nix = { nix = {
nixPath = ["nixpkgs=${inputs.nixpkgs}"];
gc = { gc = {
automatic = true; automatic = true;
dates = "weekly"; dates = "weekly";
options = "--delete-older-than 1w"; options = "--delete-older-than 1w";
}; };
settings.auto-optimise-store = true; settings = {
experimental-features = [ "nix-command" "flakes" ];
auto-optimise-store = true;
};
}; };
# Enable nix flakes
nix.settings.experimental-features = [ "nix-command" "flakes" ];
# Disable documentation
documentation.nixos.enable = false; documentation.nixos.enable = false;
# Enable networking networking = {
networking.networkmanager.enable = true; networkmanager.enable = true;
extraHosts =
''
10.10.11.245 surveillance.htb
'';
};
# Set your time zone.
time.timeZone = "Europe/Amsterdam"; time.timeZone = "Europe/Amsterdam";
# Select internationalisation properties.
i18n = { i18n = {
defaultLocale = "en_US.UTF-8"; defaultLocale = "en_US.UTF-8";
@ -81,35 +65,45 @@
}; };
}; };
# Configure xserver fonts = {
packages = with pkgs; [
alegreya
alegreya-sans
(nerdfonts.override { fonts = [ "FiraCode" ]; })
];
fontconfig = {
defaultFonts = {
serif = [ "Alegreya" ];
sansSerif = [ "Alegreya Sans" ];
monospace = [ "Fira Code Nerd Font" ];
};
};
};
services.xserver = { services.xserver = {
enable = true; enable = true;
excludePackages = [ pkgs.xterm ]; excludePackages = [ pkgs.xterm ];
displayManager.gdm.enable = true;
xkb = {
layout = "us";
variant = "";
};
}; };
# Configure xkb
services.xserver.xkb = {
layout = "us";
variant = "";
};
# Enable CUPS to print documents.
services.printing.enable = false; services.printing.enable = false;
# Security
security.rtkit.enable = true; security.rtkit.enable = true;
# Define a user account. Don't forget to set a password with passwd. environment.sessionVariables.NIXOS_OZONE_WL = "1";
users.users.twoneis = { users.users.twoneis = {
isNormalUser = true; isNormalUser = true;
description = "twoneis"; description = "twoneis";
extraGroups = [ "networkmanager" "wheel" ]; extraGroups = [ "networkmanager" "wheel" ];
}; };
# Use zsh
programs.zsh.enable = true; programs.zsh.enable = true;
users.defaultUserShell = pkgs.zsh; users.defaultUserShell = pkgs.zsh;
# Allow swaylock to PAM authentication
security.pam.services.swaylock = {}; security.pam.services.swaylock = {};
} }

View file

@ -1,7 +1,7 @@
{ pkgs, lib, config, ... }: lib.mkIf (config.withGnome) { { pkgs, lib, config, ... }: lib.mkIf (config.withGnome) {
# Enable the GNOME Desktop Environment. # Enable the GNOME Desktop Environment.
services.xserver.desktopManager.gnome.enable = true; services.xserver.desktopManager.gnome.enable = true;
# Don't pull unnecessary packages # Don't install unnecessary packages
services.gnome.core-utilities.enable = false; services.gnome.core-utilities.enable = false;
environment.gnome.excludePackages = [ pkgs.gnome-tour ]; environment.gnome.excludePackages = [ pkgs.gnome-tour ];

View file

@ -1,4 +1,9 @@
{ ... }: { { pkgs, ... }: {
home.packages = with pkgs; [
signal-desktop
fractal
];
programs.thunderbird = { programs.thunderbird = {
enable = true; enable = true;
profiles = { profiles = {

View file

@ -1,15 +1,20 @@
{ ... }: { { config, ... }: let
imp = if config.minimal then [
./browser
./communication
./niri-setup
./programs
./themes
./utils
] else [
./utils
];
in {
home-manager = { home-manager = {
useGlobalPkgs = true; useGlobalPkgs = true;
useUserPackages = true; useUserPackages = true;
users.twoneis = { users.twoneis = {
imports = [ imports = imp;
../../system/home/direnv
../../system/home/editor
../../system/home/git
../../system/home/shell
./server-utils
];
home = { home = {
username = "twoneis"; username = "twoneis";

View file

@ -1,5 +1,5 @@
{ lib, osConfig, pkgs, ... }: let { lib, osConfig, pkgs, ... }: let
theme = import ../../../../colors.nix; theme = import ../../colors.nix;
in lib.mkIf (osConfig.withNiri) { in lib.mkIf (osConfig.withNiri) {
programs.fuzzel= { programs.fuzzel= {
enable = true; enable = true;

View file

@ -1,12 +1,22 @@
{ pkgs, osConfig, ... }: { { pkgs, osConfig, ... }: {
home.packages = with pkgs; [ home.packages = with pkgs; [
krita
loupe loupe
gnome.nautilus
]; ];
# Needed for some features in nautilus such as auto-mounting and trash
osConfig.services.gvfs.enable = true;
programs.pandoc = {
enable = true;
};
programs.mpv = { programs.mpv = {
enable = true; enable = true;
}; };
osConfig.networking.firewall.allowedTCPPorts = [ 57621 ];
services.spotifyd = { services.spotifyd = {
enable = true; enable = true;
settings = { settings = {
@ -19,4 +29,10 @@
}; };
}; };
}; };
programs.alacritty = {
enable = true;
settings = import ./alacritty-config.nix;
};
} }

View file

@ -30,4 +30,18 @@
}; };
}; };
}; };
home.pointerCursor = let getFrom = url: hash: name: {
gtk.enable = true;
x11.enable = true;
name = name;
size = 24;
package = pkgs.runCommand "moveUp" {} ''
mkdir -p $out/share/icons
ln -s ${pkgs.fetchzip{
url = url;
hash = hash;
}} $out/share/icons/${name}
'';
}; in getFrom "https://github.com/rose-pine/cursor/releases/download/v1.1.0/BreezeX-RosePine-Linux.tar.xz" "sha256-t5xwAPGhuQUfGThedLsmtZEEp1Ljjo3Udhd5Ql3O67c=" "BreezX-RosePine-Linux";
} }

View file

@ -0,0 +1,112 @@
{ pkgs, ... }: {
home.packages = with pkgs; [
man-pages
man-pages-posix
tree
zip
unzip
thefuck
];
home.file = {
".gdbinit" = {
source = ./gdbinit;
};
};
programs.man = {
enable = true;
};
programs.git = {
enable = true;
userName = "twoneis";
userEmail = "sanjay29@sapura.de";
extraConfig = {
init.defaultBranch = "main";
push.autoSetupRemote = true;
};
};
programs.gh = {
enable = true;
gitCredentialHelper.enable = true;
};
programs.helix = {
enable = true;
defaultEditor = true;
extraPackages = with pkgs; [ nil marksman ];
settings = import ./helix-config.nix;
languages = import ./helix-languages.nix;
};
programs.direnv = {
enable = true;
enableBashIntegration = true;
nix-direnv.enable = true;
};
programs.bottom = {
enable = true;
};
programs.lsd = {
enable = true;
enableAliases = true;
};
programs.hyfetch = {
enable = true;
settings = {
preset = "transgender";
mode = "rgb";
light_dark = "dark";
lightness = 0.65;
color_align = {
mode = "horizontal";
custom_colors = [];
fore_back = null;
};
backend = "neofetch";
args = null;
distro = "nixos_old";
pride_month_shown = [];
pride_month_disable = false;
};
};
home.shellAliases = {
ga = "git add";
gc = "git commit -m ";
gca = "git add -A && git commit -am ";
gs = "git stash";
gsp = "git stash pop";
gp = "git push";
gpl = "git pull --recurse-submodules";
gst = "git status";
repl = "nix repl --expr 'import <nixpkgs>{}'";
nrb = "sudo nixos-rebuild switch --flake . --cores 0";
nd = "nix develop";
neofetch = "hyfetch";
};
# For direnv and shell aliases the shell needs to be managed by hm
programs.bash.enable = true;
programs.zsh = {
enable = true;
autosuggestion.enable = true;
enableVteIntegration = true;
history.ignoreAllDups = true;
historySubstringSearch.enable = true;
oh-my-zsh = {
enable = true;
plugins = [ "git" "thefuck" ];
theme = "bira";
};
};
}

View file

@ -79,7 +79,7 @@
spawn-at-startup = [ spawn-at-startup = [
{ command = ["waybar"]; } { command = ["waybar"]; }
{ command = ["swaybg" "-i" "${../../../wallpaper/wallpaper.png}" "-m" "fill"]; } { command = ["swaybg" "-i" "${../../wallpaper/wallpaper.png}" "-m" "fill"]; }
{ command = ["pamixer" "--set-volume" "0"]; } { command = ["pamixer" "--set-volume" "0"]; }
{ command = ["brightnessctl" "s" "50%"]; } { command = ["brightnessctl" "s" "50%"]; }
{ command = ["systemctl" "--user" "restart" "spotifyd.service"]; } { command = ["systemctl" "--user" "restart" "spotifyd.service"]; }

View file

@ -10,5 +10,4 @@
nvidiaSettings = false; nvidiaSettings = false;
package = config.boot.kernelPackages.nvidiaPackages.vulkan_beta; package = config.boot.kernelPackages.nvidiaPackages.vulkan_beta;
}; };
} }

View file

@ -1,11 +0,0 @@
{ ... }: {
services.create_ap = {
enable = true;
settings = {
INTERNET_IFACE = "enp2s0";
WIFI_IFACE = "wlp1s0";
SSID = "home";
PASSPHRASE = "FCKask4net";
};
};
}

View file

@ -1,5 +0,0 @@
{ ... }: {
services.calibre-server = {
enable = true;
};
}

View file

@ -1,73 +0,0 @@
{ pkgs, ... }: {
imports = [
# ./access-point.nix
./calibre.nix
];
# Allow ssh access
services.openssh = {
enable = true;
settings = {
PasswordAuthentication = true;
KbdInteractiveAuthentication = true;
};
};
# Allow packages from nixpkgs
nixpkgs.config = {
allowUnfree = true;
};
#Optimise nix store
nix = {
gc = {
automatic = true;
dates = "weekly";
options = "--delete-older-than 30d";
};
settings.auto-optimise-store = true;
};
# Enable nix flakes
nix.settings.experimental-features = [ "nix-command" "flakes" ];
# Disable documentation
documentation.nixos.enable = false;
# Enable networking
networking.networkmanager.enable = true;
# Set your time zone.
time.timeZone = "Europe/Amsterdam";
# Select internationalisation properties.
i18n = {
defaultLocale = "en_US.UTF-8";
extraLocaleSettings = {
LC_ADDRESS = "en_US.UTF-8";
LC_IDENTIFICATION = "en_US.UTF-8";
LC_MEASUREMENT = "en_US.UTF-8";
LC_MONETARY = "en_US.UTF-8";
LC_NAME = "en_US.UTF-8";
LC_NUMERIC = "en_US.UTF-8";
LC_PAPER = "en_US.UTF-8";
LC_TELEPHONE = "en_US.UTF-8";
LC_TIME = "en_US.UTF-8";
};
};
# Security
security.rtkit.enable = true;
# Define a user account. Don't forget to set a password with passwd.
users.users.twoneis = {
isNormalUser = true;
description = "twoneis";
extraGroups = [ "networkmanager" "wheel" ];
};
# Use zsh
programs.zsh.enable = true;
users.defaultUserShell = pkgs.zsh;
}

View file

@ -1,43 +0,0 @@
{ pkgs, ... }: {
home.packages = with pkgs; [
man-pages
man-pages-posix
tree
zip
unzip
];
programs.man = {
enable = true;
};
programs.bottom = {
enable = true;
};
programs.lsd = {
enable = true;
enableAliases = true;
};
programs.hyfetch = {
enable = true;
settings = {
preset = "transgender";
mode = "rgb";
light_dark = "dark";
lightness = 0.65;
color_align = {
mode = "horizontal";
custom_colors = [];
fore_back = null;
};
backend = "neofetch";
args = null;
distro = "nixos_old";
pride_month_shown = [];
pride_month_disable = false;
};
};
}

View file

@ -1,16 +0,0 @@
{ pkgs, ... }: {
# Configure fonts
fonts.packages = with pkgs; [
alegreya
alegreya-sans
(nerdfonts.override { fonts = [ "FiraCode" ]; })
];
fonts.fontconfig = {
defaultFonts = {
serif = [ "Alegreya" ];
sansSerif = [ "Alegreya Sans" ];
monospace = [ "Fira Code Nerd Font" ];
};
};
}

View file

@ -1,5 +0,0 @@
{ pkgs, ... }: {
home.packages = with pkgs; [
krita
];
}

View file

@ -1,6 +0,0 @@
{ pkgs, ... }: {
home.packages = with pkgs; [
signal-desktop
fractal
];
}

View file

@ -1,15 +0,0 @@
{ pkgs, ... }: {
home.pointerCursor = let getFrom = url: hash: name: {
gtk.enable = true;
x11.enable = true;
name = name;
size = 24;
package = pkgs.runCommand "moveUp" {} ''
mkdir -p $out/share/icons
ln -s ${pkgs.fetchzip{
url = url;
hash = hash;
}} $out/share/icons/${name}
'';
}; in getFrom "https://github.com/rose-pine/cursor/releases/download/v1.1.0/BreezeX-RosePine-Linux.tar.xz" "sha256-t5xwAPGhuQUfGThedLsmtZEEp1Ljjo3Udhd5Ql3O67c=" "BreezX-RosePine-Linux";
}

View file

@ -1,45 +0,0 @@
{ ... }: {
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
users.twoneis = {
imports = [
./art
./browser
./chat
./cursor
./discord
./direnv
./editor
./email
./gdb
./git
./media
./niri-setup
./notes
./shell
./terminal
./themes
./utils
];
home = {
username = "twoneis";
homeDirectory = "/home/twoneis";
stateVersion = "22.11";
};
programs.home-manager.enable = true;
dconf = {
enable = true;
settings = {
"org/gnome/desktop/interface" = {
color-scheme = "prefer-dark";
};
};
};
};
};
}

View file

@ -1,9 +0,0 @@
{ pkgs, ... }: {
programs.direnv = {
enable = true;
enableBashIntegration = true;
nix-direnv.enable = true;
};
programs.bash.enable = true;
}

View file

@ -1,5 +0,0 @@
{ pkgs, ... }: {
home.packages = with pkgs; [
dorion
];
}

View file

@ -1,9 +0,0 @@
{ pkgs, ... }: {
programs.helix = {
enable = true;
defaultEditor = true;
extraPackages = with pkgs; [ nil marksman ];
settings = import ./helix-config.nix;
languages = import ./helix-languages.nix;
};
}

View file

@ -1,7 +0,0 @@
{ ... }: {
home.file = {
".gdbinit" = {
source = ./gdbinit;
};
};
}

View file

@ -1,16 +0,0 @@
{ pkgs, ... }: {
programs.git = {
enable = true;
userName = "twoneis";
userEmail = "sanjay29@sapura.de";
extraConfig = {
init.defaultBranch = "main";
push.autoSetupRemote = true;
};
};
programs.gh = {
enable = true;
gitCredentialHelper.enable = true;
};
}

View file

@ -1,5 +0,0 @@
{ ... }: {
programs.pandoc = {
enable = true;
};
}

View file

@ -1,41 +0,0 @@
{ pkgs, ... }: {
home.packages = with pkgs; [
thefuck
git
];
home.shellAliases = {
ga = "git add";
gc = "git commit -m ";
gca = "git add -A && git commit -am ";
gs = "git stash";
gsp = "git stash pop";
gp = "git push";
gpl = "git pull --recurse-submodules";
gst = "git status";
repl = "nix repl --expr 'import <nixpkgs>{}'";
nrb = "sudo nixos-rebuild switch --flake . --cores 0";
nd = "nix develop";
neofetch = "hyfetch";
};
programs.bash = {
enable = true;
};
programs.zsh = {
enable = true;
autosuggestion.enable = true;
enableVteIntegration = true;
history.ignoreAllDups = true;
historySubstringSearch.enable = true;
oh-my-zsh = {
enable = true;
plugins = [ "git" "thefuck" ];
theme = "bira";
};
};
}

View file

@ -1,11 +0,0 @@
{ pkgs, ... }: {
home.packages = with pkgs; [
man-pages
man-pages-posix
];
programs.alacritty = {
enable = true;
settings = import ./alacritty-config.nix;
};
}

View file

@ -1,45 +0,0 @@
{ pkgs, ... }: {
home.packages = with pkgs; [
man-pages
man-pages-posix
gnome.nautilus
baobab
tree
zip
unzip
blueberry
];
programs.man = {
enable = true;
};
programs.bottom = {
enable = true;
};
programs.lsd = {
enable = true;
enableAliases = true;
};
programs.hyfetch = {
enable = true;
settings = {
preset = "transgender";
mode = "rgb";
light_dark = "dark";
lightness = 0.65;
color_align = {
mode = "horizontal";
custom_colors = [];
fore_back = null;
};
backend = "neofetch";
args = null;
distro = "nixos_old";
pride_month_shown = [];
pride_month_disable = false;
};
};
}

View file

@ -1,10 +1,18 @@
{ lib, ... }: { { lib, ... }: {
options = { options = with lib; {
withNiri = with lib; mkEnableOption "Enable niri compositor"; minimal = mkEnableOption "Minimal setup with only cli utilities";
withGnome = with lib; mkEnableOption "Enable gnome DE"; full = mkEnableOption "Full setup with all programs and themes";
withNvidia = with lib; mkEnableOption "Enable proprietary nvidia drivers";
withVM = with lib; mkEnableOption "Enable VM related configuration"; withAudio = mkEnableOption "Enable support for audio";
withDistrobox = with lib; mkEnableOption "Enable Distrobox"; withBluetooth = mkEnableOption "Enable bluetooth";
withGames = with lib; mkEnableOption "Enable games"; withNvidia = mkEnableOption "Enable proprietary nvidia drivers";
withNiri = mkEnableOption "Enable niri compositor";
withGnome =mkEnableOption "Enable gnome DE";
withVM = mkEnableOption "Enable VM related configuration";
withContainers = mkEnableOption "Enable container support";
withDistrobox = mkEnableOption "Enable Distrobox";
withGames = mkEnableOption "Enable games";
}; };
} }

View file

@ -9,8 +9,7 @@
}; };
modules = [ modules = [
./devices/ellaca ./devices/ellaca
./modules/system ./modules
./modules/system/home
./options.nix ./options.nix
niri.nixosModules.niri niri.nixosModules.niri
home-manager.nixosModules.home-manager home-manager.nixosModules.home-manager
@ -25,27 +24,12 @@
}; };
modules = [ modules = [
./devices/akarso ./devices/akarso
./modules/system ./modules
./modules/system/home
./options.nix ./options.nix
nixos-hardware.nixosModules.microsoft-surface-pro-intel nixos-hardware.nixosModules.microsoft-surface-pro-intel
niri.nixosModules.niri niri.nixosModules.niri
home-manager.nixosModules.home-manager home-manager.nixosModules.home-manager
]; ];
}; };
# Zotac Mini
# (Name should be used for an ARM device instead once i get one)
creosote = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = {
inherit inputs;
};
modules = [
./devices/creosote
./modules/server
home-manager.nixosModules.home-manager
];
};
}; };
} }