diff --git a/README.md b/README.md
index c5901da..a454684 100644
--- a/README.md
+++ b/README.md
@@ -6,30 +6,43 @@ ZaneyOS is my production machines config files.
## What Is NixOS
-example
+NixOS is a Linux distribution known for its unique approach to package management and system configuration. It uses the Nix package manager, which is based on a purely functional approach to managing software and system configurations.
+
+In NixOS, the entire operating system configuration is described declaratively in a configuration file, allowing for reproducibility and easy rollbacks. This means that changes to the system can be tracked and reversed, making it robust and reliable for system administrators and developers.
## Why Choose NixOS
+Choosing NixOS often depends on specific needs and preferences. Here are some reasons why people opt for NixOS:
+
+### Declarative Configuration
+
+NixOS employs a declarative approach to system configuration. This means the entire system configuration is defined in a single file, making it reproducible and easier to manage. Changes are tracked and can be rolled back if needed.
+
+### Functional Package Management
+
+The Nix package manager ensures that each package and its dependencies are isolated and managed separately. This prevents conflicts between different versions of software and enables easy rollbacks to previous versions.
+
+### Reproducibility
+
+NixOS allows for consistent and reproducible environments, critical in development, testing, and deployment scenarios. It's particularly valuable in DevOps and CI/CD pipelines where consistent environments are essential.
+
+### Multiple Environments and Rollbacks
+
+With NixOS, it's possible to have multiple versions of the same software installed simultaneously without conflicts. This flexibility is especially useful for developers or those requiring different versions of software for various projects.
+
+### Community and Customization
+
+NixOS has an active community that contributes to its growth, sharing configurations, and offering support. Its customizable nature allows users to tailor their systems to their needs.
+
# Steps To Reproduce My System
-## 1a) Starting From Fresh Install
-Install NixOS as you normally would. Under the NixOS Downloads Page Section you will find a GNOME or Plasma live isos and you can install any desktop environment you please.
+Clone this repo, replace your hardware-configuration.nix with the one inside the workstation folder, enable flakes in your default configuration.nix, then go into repo folder and run this command:
-After booting into the install ensure you are connected to the internet and go into your /etc/nixos/configuration.nix file and ensure git and your favorite editor are in system or user packages. After doing that run the sudo nixos-rebuild switch command.
+```
+sudo nixos-rebuild switch --flake .#workstation
+```
-Now you are ready to move onto the pulling my dotfiles section.
-
-## 1b) On Excisting System
-
-asdasd
-
-## 2) Pulling In Dotfiles
-
-Now that you have git you can pull the dotfiles like so:
-
-## 3) Run The Build Script
-
-Go into the zaneyos folder you got and you'll see a build script. You can run this command now to install my configs, you can also run this after you make any changes in that folder.
+Replace #workstation with laptop to switch to my Intel Whitebook laptop's configuration.
Hope you enjoy!
diff --git a/build b/build
deleted file mode 100755
index 93c884d..0000000
--- a/build
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/usr/bin/env bash
-
-sudo rm /etc/nixos/configuration.nix
-sudo rm /etc/nixos/home.nix
-sudo rm -rf /etc/configfiles
-sudo rm -rf /etc/scripts
-
-sudo cp nixos/configuration.nix /etc/nixos/
-sudo cp nixos/home.nix /etc/nixos/
-
-sudo cp -r configfiles/ /etc/
-sudo cp -r scripts/ /etc/
-
-sudo nixos-rebuild switch
diff --git a/configfiles/emoji b/config/emoji
similarity index 100%
rename from configfiles/emoji
rename to config/emoji
diff --git a/configfiles/hypr/animations.conf b/config/hyprland/animations.conf
similarity index 100%
rename from configfiles/hypr/animations.conf
rename to config/hyprland/animations.conf
diff --git a/configfiles/hypr/autostart.conf b/config/hyprland/autostart.conf
similarity index 89%
rename from configfiles/hypr/autostart.conf
rename to config/hyprland/autostart.conf
index 4db02de..8fc3c6e 100644
--- a/configfiles/hypr/autostart.conf
+++ b/config/hyprland/autostart.conf
@@ -6,4 +6,6 @@
exec-once = dbus-update-activation-environment --systemd --all
exec-once = systemctl --user import-environment QT_QPA_PLATFORMTHEME WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
exec-once = hyprctl setcursor Bibata-Modern-Ice 24
-exec-once = autohypr
+exec-once = swww init
+exec-once = waybar
+exec-once = swaync
diff --git a/configfiles/hypr/hyprland.conf b/config/hyprland/hyprland.conf
similarity index 95%
rename from configfiles/hypr/hyprland.conf
rename to config/hyprland/hyprland.conf
index 77c10ce..7fb6118 100644
--- a/configfiles/hypr/hyprland.conf
+++ b/config/hyprland/hyprland.conf
@@ -21,9 +21,7 @@
# flipped + 90 degrees -> 5
# flipped + 180 degrees -> 6
# flipped + 270 degrees -> 7
-monitor=,highres,auto,auto # Automatic Configuration
-monitor=DP-1,highres,0x560,1 # Vertical Ultrawide
-monitor=HDMI-A-1,highres,2560x0,1,transform,3 # Vertical Ultrawide
+monitor=,highres,auto,1 # Automatic Configuration
# ___ ______ _________ ________ ______
# __ | / /__(_)____________ /________ __ ___ __ \___ ____ /____________
diff --git a/configfiles/hypr/keybindings.conf b/config/hyprland/keybindings.conf
similarity index 63%
rename from configfiles/hypr/keybindings.conf
rename to config/hyprland/keybindings.conf
index 7884d3c..cc00a2d 100644
--- a/configfiles/hypr/keybindings.conf
+++ b/config/hyprland/keybindings.conf
@@ -6,16 +6,16 @@
# /____/ /____/
$mainMod = SUPER
# Sound Control Keybinds
-bind = , XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+
-bind = , XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
-bind = , XF86AudioMute, exec, pactl set-sink-mute @DEFAULT_SINK@ toggle
-bind = , XF86AudioMicMute, exec, pactl set-source-mute @DEFAULT_SOURCE@ toggle
+bind = , XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+
+bind = , XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
+bind = , XF86AudioMute, exec, pactl set-sink-mute @DEFAULT_SINK@ toggle
+bind = , XF86AudioMicMute, exec, pactl set-source-mute @DEFAULT_SOURCE@ toggle
# Brightness Control Keybinds
-bind = , XF86MonBrightnessDown, exec, brightnessctl set 5%-
-bind = , XF86MonBrightnessUp, exec, brightnessctl set +5%
+bind = , XF86MonBrightnessDown, exec, brightnessctl set 5%-
+bind = , XF86MonBrightnessUp, exec, brightnessctl set +5%
# System Application Keybinds
-bind = $mainMod, Return, exec, kitty
-bind = $mainMod SHIFT, Return, exec, tofi-drun | xargs hyprctl dispatch exec --
+bind = $mainMod, Return, exec, kitty
+bind = $mainMod SHIFT, Return, exec, rofi -show drun
bind = $mainMod SHIFT, W, exec, kitty -e amfora
bind = $mainMod SHIFT, S, exec, web-search
bind = $mainMod, W, exec, firefox
@@ -24,36 +24,36 @@ bind = $mainMod, S, exec, grim -g "$(slurp)"
bind = $mainMod, D, exec, discord
bind = $mainMod, O, exec, obs
bind = $mainMod, G, exec, gimp
-bind = $mainMod SHIFT, G, exec, godot4
+bind = $mainMod SHIFT, G, exec, godot4
bind = $mainMod, T, exec, thunar
bind = $mainMod, M, exec, ario
# OBS Global Keybinds
-bind = ALT, F1, pass, ^(com\.obsproject\.Studio)$
-bind = ALT, F2, pass, ^(com\.obsproject\.Studio)$
-bind = ALT, F3, pass, ^(com\.obsproject\.Studio)$
-bind = ALT, F4, pass, ^(com\.obsproject\.Studio)$
-bind = ALT, F5, pass, ^(com\.obsproject\.Studio)$
+bind = ALT, F1, pass, ^(com\.obsproject\.Studio)$
+bind = ALT, F2, pass, ^(com\.obsproject\.Studio)$
+bind = ALT, F3, pass, ^(com\.obsproject\.Studio)$
+bind = ALT, F4, pass, ^(com\.obsproject\.Studio)$
+bind = ALT, F5, pass, ^(com\.obsproject\.Studio)$
# Hyprland Keybinds
bind = $mainMod, Q, killactive,
bind = $mainMod, P, pseudo, # dwindle
-bind = $mainMod SHIFT, I, togglesplit, # dwindle
-bind = $mainMod, F, fullscreen,
-bind = $mainMod SHIFT, F, togglefloating,
-bind = $mainMod SHIFT, C, exit,
+bind = $mainMod SHIFT, I, togglesplit, # dwindle
+bind = $mainMod, F, fullscreen,
+bind = $mainMod SHIFT, F, togglefloating,
+bind = $mainMod SHIFT, C, exit,
# Move window with mainMod + shift + arrow keys
-bind = $mainMod SHIFT, left, movewindow, l
-bind = $mainMod SHIFT, right, movewindow, r
-bind = $mainMod SHIFT, up, movewindow, u
-bind = $mainMod SHIFT, down, movewindow, d
-bind = $mainMod SHIFT, h, movewindow, l
-bind = $mainMod SHIFT, l, movewindow, r
-bind = $mainMod SHIFT, k, movewindow, u
-bind = $mainMod SHIFT, j, movewindow, d
+bind = $mainMod SHIFT, left, movewindow, l
+bind = $mainMod SHIFT, right, movewindow, r
+bind = $mainMod SHIFT, up, movewindow, u
+bind = $mainMod SHIFT, down, movewindow, d
+bind = $mainMod SHIFT, h, movewindow, l
+bind = $mainMod SHIFT, l, movewindow, r
+bind = $mainMod SHIFT, k, movewindow, u
+bind = $mainMod SHIFT, j, movewindow, d
# Move focus with mainMod + arrow keys
-bind = $mainMod, left, movefocus, l
-bind = $mainMod, right, movefocus, r
+bind = $mainMod, left, movefocus, l
+bind = $mainMod, right, movefocus, r
bind = $mainMod, up, movefocus, u
-bind = $mainMod, down, movefocus, d
+bind = $mainMod, down, movefocus, d
bind = $mainMod, h, movefocus, l
bind = $mainMod, l, movefocus, r
bind = $mainMod, k, movefocus, u
diff --git a/configfiles/hypr/theme.conf b/config/hyprland/theme.conf
similarity index 100%
rename from configfiles/hypr/theme.conf
rename to config/hyprland/theme.conf
diff --git a/configfiles/neofetch/config.conf b/config/neofetch/config.conf
similarity index 100%
rename from configfiles/neofetch/config.conf
rename to config/neofetch/config.conf
diff --git a/configfiles/pipewire/pipewire.conf b/config/pipewire/pipewire.conf
similarity index 100%
rename from configfiles/pipewire/pipewire.conf
rename to config/pipewire/pipewire.conf
diff --git a/config/rofi/config.rasi b/config/rofi/config.rasi
new file mode 100644
index 0000000..5340917
--- /dev/null
+++ b/config/rofi/config.rasi
@@ -0,0 +1,81 @@
+@theme "/dev/null"
+
+* {
+ bg: #181E27;
+ background-color: @bg;
+}
+
+configuration {
+ show-icons: true;
+ icon-theme: "Papirus";
+ location: 0;
+ font: "JetBrainsMono Nerd Font 12";
+ display-drun: "Launch:";
+}
+
+window {
+ width: 35%;
+ transparency: "real";
+ orientation: vertical;
+ border-color: #74adc0;
+}
+
+mainbox {
+ children: [inputbar, listview];
+}
+
+
+// ELEMENT
+// -----------------------------------
+
+element {
+ padding: 4 12;
+ text-color: #EFE7DD;
+}
+
+element selected {
+ background-color: #74adc0;
+}
+
+element-text {
+ background-color: inherit;
+ text-color: inherit;
+}
+
+element-icon {
+ size: 16 px;
+ background-color: inherit;
+ padding: 0 6 0 0;
+ alignment: vertical;
+}
+
+listview {
+ columns: 2;
+ lines: 9;
+ padding: 8 0;
+ fixed-height: true;
+ fixed-columns: true;
+ fixed-lines: true;
+ border: 0 10 6 10;
+}
+
+// INPUT BAR
+//------------------------------------------------
+
+entry {
+ text-color: #EFE7DD;
+ padding: 10 10 0 0;
+ margin: 0 -2 0 0;
+}
+
+inputbar {
+ background-image: url("~/.config/rofi/rofi.jpg", width);
+ padding: 180 0 0;
+ margin: 0 0 0 0;
+}
+
+prompt {
+ text-color: #aaffaa;
+ padding: 10 6 0 10;
+ margin: 0 -2 0 0;
+}
diff --git a/config/rofi/rofi.jpg b/config/rofi/rofi.jpg
new file mode 100644
index 0000000..50fbaed
Binary files /dev/null and b/config/rofi/rofi.jpg differ
diff --git a/configfiles/swaync/config.json b/config/swaync/config.json
similarity index 98%
rename from configfiles/swaync/config.json
rename to config/swaync/config.json
index 4a25746..06aa6f2 100644
--- a/configfiles/swaync/config.json
+++ b/config/swaync/config.json
@@ -89,7 +89,7 @@
"command": "steam"
},
{
- "label": "",
+ "label": "",
"command": "firefox"
},
{
diff --git a/configfiles/swaync/style.css b/config/swaync/style.css
similarity index 98%
rename from configfiles/swaync/style.css
rename to config/swaync/style.css
index 5c55b5c..87c4009 100644
--- a/configfiles/swaync/style.css
+++ b/config/swaync/style.css
@@ -1,5 +1,5 @@
* {
- font-family: Ubuntu Nerd Font;
+ font-family: Ubuntu;
font-weight: bolder;
}
@@ -166,7 +166,7 @@
}
.blank-window {
- background: alpha(black, 0.1)
+ background: alpha(black, 0)
}
.widget-title {
diff --git a/configfiles/.vimrc b/config/vimrc
similarity index 100%
rename from configfiles/.vimrc
rename to config/vimrc
diff --git a/configfiles/.Xresources b/configfiles/.Xresources
deleted file mode 100644
index 1703a2f..0000000
--- a/configfiles/.Xresources
+++ /dev/null
@@ -1,23 +0,0 @@
-Xcursor.theme: Bibata-Modern-Ice
-Xcursor.size: 24
-
-! Tokyo Night
-*foreground: #c0caf5
-*background: #1a1b26
-*color0: #15161e
-*color1: #f7768e
-*color2: #9ece6a
-*color3: #e0af68
-*color4: #7aa2f7
-*color5: #bb9af7
-*color6: #7dcfff
-*color7: #a9b1d6
-
-*color8: #414868
-*color9: #f7768e
-*color10: #9ece6a
-*color11: #e0af68
-*color12: #7aa2f7
-*color13: #bb9af7
-*color14: #7dcfff
-*color15: #c0caf5
diff --git a/configfiles/starship.toml b/configfiles/starship.toml
deleted file mode 100644
index f5f8574..0000000
--- a/configfiles/starship.toml
+++ /dev/null
@@ -1,22 +0,0 @@
-[character]
-error_symbol = "[λ](bold #ff5555)"
-success_symbol = "[λ](bold #f8f8f2)"
-
-[cmd_duration]
-style = "bold #f1fa8c"
-
-[directory]
-style = "bold #50fa7b"
-
-[git_branch]
-style = "bold #ff79c6"
-
-[git_status]
-style = "bold #ff5555"
-
-[hostname]
-style = "bold #ff5555"
-
-[username]
-format = "[$user]($style) on "
-style_user = "bold #bd93f9"
diff --git a/configfiles/tofi/config b/configfiles/tofi/config
deleted file mode 100644
index 78060e3..0000000
--- a/configfiles/tofi/config
+++ /dev/null
@@ -1,35 +0,0 @@
-# ███████╗ █████╗ ███╗ ██╗███████╗██╗ ██╗███████╗
-# ╚══███╔╝██╔══██╗████╗ ██║██╔════╝╚██╗ ██╔╝██╔════╝
-# ███╔╝ ███████║██╔██╗ ██║█████╗ ╚████╔╝ ███████╗
-# ███╔╝ ██╔══██║██║╚██╗██║██╔══╝ ╚██╔╝ ╚════██║
-# ███████╗██║ ██║██║ ╚████║███████╗ ██║ ███████║
-# ╚══════╝╚═╝ ╚═╝╚═╝ ╚═══╝╚══════╝ ╚═╝ ╚══════╝
-# Dotfiles circa 2023
-
-# Font
-font = Ubuntu Nerd Font
-font-size = 18
-
-# Window Style
-anchor = top
-width = 100%
-height = 100%
-outline-width = 0
-border-width = 0
-min-input-width = 130
-result-spacing = 30
-padding-top = 35%
-padding-bottom = 0
-padding-left = 35%
-padding-right = 0
-num-results = 5
-prompt-text = "What Ya Need? "
-
-background-color = #000A
-text-color = #c0caf5
-input-color = #7aa2f7
-selection-color = #7dcfff
-selection-match-color = #9ece6a
-
-clip-to-padding = false
-require-match = false
diff --git a/flake.nix b/flake.nix
new file mode 100644
index 0000000..12a7577
--- /dev/null
+++ b/flake.nix
@@ -0,0 +1,44 @@
+{
+ description = "ZaneyOS";
+
+ inputs = {
+ nixpkgs.url = "github:nixos/nixpkgs/nixos-23.11";
+ home-manager.url = "github:nix-community/home-manager/release-23.11";
+ home-manager.inputs.nixpkgs.follows = "nixpkgs";
+ hyprland.url = "github:hyprwm/Hyprland";
+ };
+
+ outputs = inputs@{ nixpkgs, home-manager, ... }:
+ let
+ system = "x86_64-linux";
+ pkgs = import nixpkgs {
+ inherit system;
+ config = {
+ allowUnfree = true;
+ };
+ };
+ in {
+ nixosConfigurations = {
+ laptop = nixpkgs.lib.nixosSystem {
+ specialArgs = { inherit system; inherit inputs; };
+ modules = [ ./laptop/configuration.nix
+ home-manager.nixosModules.home-manager {
+ home-manager.useGlobalPkgs = true;
+ home-manager.useUserPackages = true;
+ home-manager.users.zaney = import ./home.nix;
+ }
+ ];
+ };
+ workstation = nixpkgs.lib.nixosSystem {
+ specialArgs = { inherit system; inherit inputs; };
+ modules = [ ./workstation/configuration.nix
+ home-manager.nixosModules.home-manager {
+ home-manager.useGlobalPkgs = true;
+ home-manager.useUserPackages = true;
+ home-manager.users.zaney = import ./home.nix;
+ }
+ ];
+ };
+ };
+ };
+}
diff --git a/configfiles/UniSans-Heavy.otf b/fonts/UniSans-Heavy.otf
old mode 100755
new mode 100644
similarity index 100%
rename from configfiles/UniSans-Heavy.otf
rename to fonts/UniSans-Heavy.otf
diff --git a/home.nix b/home.nix
new file mode 100644
index 0000000..96ab8f7
--- /dev/null
+++ b/home.nix
@@ -0,0 +1,412 @@
+{ config, pkgs, ... }:
+
+{
+ home.username = "zaney";
+ home.homeDirectory = "/home/zaney";
+ home.stateVersion = "23.11";
+
+ home.file.".config/zaney-stinger.mov" = {
+ source = ./media/zaney-stinger.mov;
+ };
+ home.file.".config/wallpaper.png" = {
+ source = ./media/wallpaper.png;
+ };
+ home.file.".local/share/fonts" = {
+ source = ./fonts;
+ recursive = true;
+ };
+ home.file.".vimrc" = {
+ source = ./config/vimrc;
+ };
+ home.file.".emoji" = {
+ source = ./config/emoji;
+ };
+ home.file.".config/rofi" = {
+ source = ./config/rofi;
+ recursive = true;
+ };
+ home.file.".config/swaync" = {
+ source = ./config/swaync;
+ recursive = true;
+ };
+ home.file.".config/pipewire/pipewire.conf" = {
+ source = ./config/pipewire/pipewire.conf;
+ };
+ home.file.".config/neofetch/config.conf" = {
+ source = ./config/neofetch/config.conf;
+ };
+ home.file.".config/hypr" = {
+ source = ./config/hyprland;
+ recursive = true;
+ };
+
+ xresources.properties = {
+ "Xcursor.size" = 24;
+ };
+
+ programs.git = {
+ enable = true;
+ userName = "Tyler Kelley";
+ userEmail = "tylerzanekelley@gmail.com";
+ };
+
+ home.packages = with pkgs; [
+ neofetch lolcat cmatrix discord firefox btop libvirt
+ swww polkit_gnome grim slurp lm_sensors unzip unrar gnome.file-roller
+ libnotify swaynotificationcenter rofi-wayland xfce.thunar imv v4l-utils
+ ydotool wl-clipboard socat cowsay lsd pkg-config transmission-gtk mpv
+ gimp obs-studio blender kdenlive meson glibc hugo gnumake ninja go
+ nodejs godot_4 rustup pavucontrol audacity zeroad xonotic gvfs udiskie
+ openra font-awesome symbola noto-fonts-color-emoji material-icons
+ # Import Scripts
+ (import ./scripts/emopicker9000.nix { inherit pkgs; })
+ (import ./scripts/task-waybar.nix { inherit pkgs; })
+ (import ./scripts/squirtle.nix { inherit pkgs; })
+ ];
+
+ home.pointerCursor = {
+ gtk.enable = true;
+ x11.enable = true;
+ package = pkgs.bibata-cursors;
+ name = "Bibata-Modern-Ice";
+ size = 24;
+ };
+ qt.enable = true;
+ qt.platformTheme = "gtk";
+ qt.style.name = "adwaita-dark";
+ qt.style.package = pkgs.adwaita-qt;
+ gtk = {
+ enable = true;
+ font = {
+ name = "Ubuntu";
+ size = 12;
+ package = pkgs.ubuntu_font_family;
+ };
+ theme = {
+ name = "Tokyonight-Storm-BL";
+ package = pkgs.tokyo-night-gtk;
+ };
+ iconTheme = {
+ name = "Papirus-Dark";
+ package = pkgs.papirus-icon-theme;
+ };
+ cursorTheme = {
+ name = "Bibata-Modern-Ice";
+ package = pkgs.bibata-cursors;
+ };
+ gtk3.extraConfig = {
+ Settings = ''
+ gtk-application-prefer-dark-theme=1
+ '';
+ };
+ gtk4.extraConfig = {
+ Settings = ''
+ gtk-application-prefer-dark-theme=1
+ '';
+ };
+ };
+ xdg = {
+ userDirs = {
+ enable = true;
+ createDirectories = true;
+ };
+ };
+
+ programs.bash = {
+ enable = true;
+ enableCompletion = true;
+ sessionVariables = {
+
+ };
+ shellAliases = {
+ sv="sudo vim";
+ v="vim";
+ ls="lsd";
+ ll="lsd -l";
+ la="lsd -a";
+ lal="lsd -al";
+ ".."="cd ..";
+ };
+ };
+
+ programs.kitty = {
+ enable = true;
+ package = pkgs.kitty;
+ font.name = "JetBrainsMono Nerd Font";
+ font.size = 16;
+ settings = {
+ scrollback_lines = 2000;
+ wheel_scroll_min_lines = 1;
+ window_padding_width = 6;
+ confirm_os_window_close = 0;
+ background_opacity = "0.85";
+ };
+ extraConfig = ''
+ foreground #a9b1d6
+ background #1a1b26
+ color0 #414868
+ color8 #414868
+ color1 #f7768e
+ color9 #f7768e
+ color2 #73daca
+ color10 #73daca
+ color3 #e0af68
+ color11 #e0af68
+ color4 #7aa2f7
+ color12 #7aa2f7
+ color5 #bb9af7
+ color13 #bb9af7
+ color6 #7dcfff
+ color14 #7dcfff
+ color7 #c0caf5
+ color15 #c0caf5
+ cursor #c0caf5
+ cursor_text_color #1a1b26
+ selection_foreground none
+ selection_background #28344a
+ url_color #9ece6a
+ active_border_color #3d59a1
+ inactive_border_color #101014
+ bell_border_color #e0af68
+ tab_bar_style fade
+ tab_fade 1
+ active_tab_foreground #3d59a1
+ active_tab_background #16161e
+ active_tab_font_style bold
+ inactive_tab_foreground #787c99
+ inactive_tab_background #16161e
+ inactive_tab_font_style bold
+ tab_bar_background #101014
+ '';
+ };
+
+ programs.waybar = {
+ enable = true;
+ package = pkgs.waybar;
+ settings = [{
+ layer = "top";
+ position = "top";
+
+ modules-left = [ "hyprland/window" ];
+ modules-center = [ "network" "pulseaudio" "cpu" "hyprland/workspaces" "memory" "disk" "clock" ];
+ modules-right = [ "custom/notification" "tray" ];
+ "hyprland/workspaces" = {
+ format = "{icon}";
+ format-icons = {
+ default = " ";
+ active = " ";
+ urgent = " ";
+ };
+ on-scroll-up = "hyprctl dispatch workspace e+1";
+ on-scroll-down = "hyprctl dispatch workspace e-1";
+ };
+ "clock" = {
+ format = "{: %I:%M %p}";
+ tooltip = false;
+ };
+ "hyprland/window" = {
+ max-length = 60;
+ separate-outputs = false;
+ };
+ "memory" = {
+ interval = 5;
+ format = " {}%";
+ tooltip = true;
+ };
+ "cpu" = {
+ interval = 5;
+ format = " {usage:2}%";
+ tooltip = true;
+ };
+ "disk" = {
+ format = " {free}";
+ tooltip = true;
+ };
+ "network" = {
+ format-icons = ["" "" "" "" ""];
+ format-ethernet = ": {bandwidthDownOctets} : {bandwidthUpOctets}";
+ format-wifi = "{icon} {signalStrength}%";
+ format-disconnected = "";
+ tooltip = false;
+ };
+ "tray" = {
+ spacing = 12;
+ };
+ "pulseaudio" = {
+ format = "{icon} {volume}% {format_source}";
+ format-bluetooth = "{volume}% {icon} {format_source}";
+ format-bluetooth-muted = " {icon} {format_source}";
+ format-muted = " {format_source}";
+ format-source = " {volume}%";
+ format-source-muted = "";
+ format-icons = {
+ headphone = "";
+ hands-free = "";
+ headset = "";
+ phone = "";
+ portable = "";
+ car = "";
+ default = ["" "" ""];
+ };
+ on-click = "pavucontrol";
+ };
+ "custom/notification" = {
+ tooltip = false;
+ format = "{icon} {}";
+ format-icons = {
+ notification = "";
+ none = "";
+ dnd-notification = "";
+ dnd-none = "";
+ inhibited-notification = "";
+ inhibited-none = "";
+ dnd-inhibited-notification = "";
+ dnd-inhibited-none = "";
+ };
+ return-type = "json";
+ exec-if = "which swaync-client";
+ exec = "swaync-client -swb";
+ on-click = "task-waybar";
+ escape = true;
+ };
+ "battery" = {
+ states = {
+ warning = 30;
+ critical = 15;
+ };
+ format = "{icon} {capacity}%";
+ format-charging = " {capacity}%";
+ format-plugged = " {capacity}%";
+ format-icons = ["" "" "" "" "" "" "" "" "" ""];
+ on-click = "";
+ tooltip = false;
+ };
+ }];
+ style = ''
+ * {
+ font-size: 16px;
+ font-family: JetBrainsMono Nerd Font, Font Awesome, sans-serif;
+ font-weight: bold;
+ }
+ window#waybar {
+ background-color: rgba(26,27,38,0);
+ border-bottom: 1px solid rgba(26,27,38,0);
+ border-radius: 0px;
+ color: #f8f8f2;
+ }
+ #workspaces {
+ background: linear-gradient(180deg, #414868, #24283b);
+ margin: 5px;
+ padding: 0px 1px;
+ border-radius: 15px;
+ border: 0px;
+ font-style: normal;
+ color: #15161e;
+ }
+ #workspaces button {
+ padding: 0px 5px;
+ margin: 4px 3px;
+ border-radius: 15px;
+ border: 0px;
+ color: #15161e;
+ background-color: #1a1b26;
+ opacity: 1.0;
+ transition: all 0.3s ease-in-out;
+ }
+ #workspaces button.active {
+ color: #15161e;
+ background: #7aa2f7;
+ border-radius: 15px;
+ min-width: 40px;
+ transition: all 0.3s ease-in-out;
+ opacity: 1.0;
+ }
+ #workspaces button:hover {
+ color: #15161e;
+ background: #7aa2f7;
+ border-radius: 15px;
+ opacity: 1.0;
+ }
+ tooltip {
+ background: #1a1b26;
+ border: 1px solid #7aa2f7;
+ border-radius: 10px;
+ }
+ tooltip label {
+ color: #c0caf5;
+ }
+ #window {
+ color: #565f89;
+ background: #1a1b26;
+ border-radius: 0px 15px 50px 0px;
+ margin: 5px 5px 5px 0px;
+ padding: 2px 20px;
+ }
+ #memory {
+ color: #2ac3de;
+ background: #1a1b26;
+ border-radius: 15px 50px 15px 50px;
+ margin: 5px;
+ padding: 2px 20px;
+ }
+ #clock {
+ color: #c0caf5;
+ background: #1a1b26;
+ border-radius: 15px 50px 15px 50px;
+ margin: 5px;
+ padding: 2px 20px;
+ }
+ #cpu {
+ color: #b4f9f8;
+ background: #1a1b26;
+ border-radius: 50px 15px 50px 15px;
+ margin: 5px;
+ padding: 2px 20px;
+ }
+ #disk {
+ color: #9ece6a;
+ background: #1a1b26;
+ border-radius: 15px 50px 15px 50px;
+ margin: 5px;
+ padding: 2px 20px;
+ }
+ #battery {
+ color: #f7768e;
+ background: #1a1b26;
+ border-radius: 15px;
+ margin: 5px;
+ padding: 2px 20px;
+ }
+ #network {
+ color: #ff9e64;
+ background: #1a1b26;
+ border-radius: 50px 15px 50px 15px;
+ margin: 5px;
+ padding: 2px 20px;
+ }
+ #tray {
+ color: #bb9af7;
+ background: #1a1b26;
+ border-radius: 15px 0px 0px 50px;
+ margin: 5px 0px 5px 5px;
+ padding: 2px 20px;
+ }
+ #pulseaudio {
+ color: #bb9af7;
+ background: #1a1b26;
+ border-radius: 50px 15px 50px 15px;
+ margin: 5px;
+ padding: 2px 20px;
+ }
+ #custom-notification {
+ color: #7dcfff;
+ background: #1a1b26;
+ border-radius: 15px 50px 15px 50px;
+ margin: 5px;
+ padding: 2px 20px;
+ }
+ '';
+ };
+
+ programs.home-manager.enable = true;
+}
diff --git a/laptop/configuration.nix b/laptop/configuration.nix
new file mode 100644
index 0000000..dd8ebc4
--- /dev/null
+++ b/laptop/configuration.nix
@@ -0,0 +1,127 @@
+# Edit this configuration file to define what should be installed on
+# your system. Help is available in the configuration.nix(5) man page
+# and in the NixOS manual (accessible by running ‘nixos-help’).
+
+{ inputs, config, pkgs, ... }:
+
+{
+ imports =
+ [ # Include the results of the hardware scan.
+ ./hardware-configuration.nix
+ ];
+
+ # Bootloader.
+ boot.loader.systemd-boot.enable = true;
+ boot.loader.efi.canTouchEfiVariables = true;
+ boot.kernelModules = [ "v4l2loopback" ];
+ boot.extraModulePackages = [ config.boot.kernelPackages.v4l2loopback ];
+
+ networking.hostName = "nixtop"; # Define your hostname.
+
+ # Enable networking
+ networking.networkmanager.enable = true;
+
+ # Set your time zone.
+ time.timeZone = "America/Chicago";
+
+ # Select internationalisation properties.
+ i18n.defaultLocale = "en_US.UTF-8";
+
+ i18n.extraLocaleSettings = {
+ LC_ADDRESS = "en_US.UTF-8";
+ LC_IDENTIFICATION = "en_US.UTF-8";
+ LC_MEASUREMENT = "en_US.UTF-8";
+ LC_MONETARY = "en_US.UTF-8";
+ LC_NAME = "en_US.UTF-8";
+ LC_NUMERIC = "en_US.UTF-8";
+ LC_PAPER = "en_US.UTF-8";
+ LC_TELEPHONE = "en_US.UTF-8";
+ LC_TIME = "en_US.UTF-8";
+ };
+
+ # Define a user account. Don't forget to set a password with ‘passwd’.
+ users.users.zaney = {
+ isNormalUser = true;
+ description = "Tyler Kelley";
+ extraGroups = [ "networkmanager" "wheel" ];
+ packages = with pkgs; [];
+ };
+
+ # Allow unfree packages
+ nixpkgs.config.allowUnfree = true;
+
+ # List packages installed in system profile. To search, run:
+ # $ nix search wget
+ environment.systemPackages = with pkgs; [
+ vim wget curl
+ ];
+
+ fonts.packages = with pkgs; [
+ (nerdfonts.override { fonts = [ "JetBrainsMono" ]; })
+ ];
+
+ programs.steam = {
+ enable = true;
+ remotePlay.openFirewall = true;
+ dedicatedServer.openFirewall = true;
+ };
+
+ nixpkgs.config.packageOverrides = pkgs: {
+ vaapiIntel = pkgs.vaapiIntel.override { enableHybridCodec = true; };
+ };
+ hardware.opengl = {
+ enable = true;
+ extraPackages = with pkgs; [
+ intel-media-driver # LIBVA_DRIVER_NAME=iHD
+ vaapiIntel # LIBVA_DRIVER_NAME=i965 (older but works better for Firefox/Chromium)
+ vaapiVdpau
+ libvdpau-va-gl
+ ];
+ driSupport = true;
+ driSupport32Bit = true;
+ };
+
+ programs.hyprland = {
+ enable = true;
+ package = inputs.hyprland.packages.${pkgs.system}.hyprland;
+ };
+
+ # Some programs need SUID wrappers, can be configured further or are
+ # started in user sessions.
+ programs.mtr.enable = true;
+ programs.gnupg.agent = {
+ enable = true;
+ enableSSHSupport = true;
+ };
+
+ # List services that you want to enable:
+ services.openssh.enable = true;
+ services.fstrim.enable = true;
+ services.xserver = {
+ layout = "us";
+ xkbVariant = "";
+ libinput.enable = true;
+ };
+ services.pipewire = {
+ enable = true;
+ alsa.enable = true;
+ alsa.support32Bit = true;
+ pulse.enable = true;
+ jack.enable = true;
+ };
+ hardware.pulseaudio.enable = false;
+ sound.enable = true;
+ security.rtkit.enable = true;
+
+
+ system.stateVersion = "23.11";
+ nix = {
+ settings.auto-optimise-store = true;
+ gc = {
+ automatic = true;
+ dates = "weekly";
+ options = "--delete-older-than 7d";
+ };
+ };
+ nix.settings.experimental-features = [ "nix-command" "flakes" ];
+}
diff --git a/laptop/hardware-configuration.nix b/laptop/hardware-configuration.nix
new file mode 100644
index 0000000..cce5fe1
--- /dev/null
+++ b/laptop/hardware-configuration.nix
@@ -0,0 +1,47 @@
+# Do not modify this file! It was generated by ‘nixos-generate-config’
+# and may be overwritten by future invocations. Please make changes
+# to /etc/nixos/configuration.nix instead.
+{ config, lib, pkgs, modulesPath, ... }:
+
+{
+ imports =
+ [ (modulesPath + "/installer/scan/not-detected.nix")
+ ];
+
+ boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usb_storage" "sd_mod" ];
+ boot.initrd.kernelModules = [ ];
+ boot.kernelModules = [ "kvm-intel" ];
+ boot.extraModulePackages = [ ];
+
+ fileSystems."/" =
+ { device = "/dev/disk/by-uuid/8f47c564-523f-4eca-9644-69d2bed92f0a";
+ fsType = "ext4";
+ };
+
+ boot.initrd.luks.devices."luks-4f3ec042-9a98-4e10-84b3-3e081b030d6e".device = "/dev/disk/by-uuid/4f3ec042-9a98-4e10-84b3-3e081b030d6e";
+
+ fileSystems."/boot" =
+ { device = "/dev/disk/by-uuid/3B15-2EB6";
+ fsType = "vfat";
+ };
+
+ fileSystems."/home" =
+ { device = "/dev/disk/by-uuid/cb501f9a-6814-477f-b8d5-1a8aaba243a9";
+ fsType = "ext4";
+ };
+
+ boot.initrd.luks.devices."luks-9b120c21-77b6-4291-bee0-185c5a1e3682".device = "/dev/disk/by-uuid/9b120c21-77b6-4291-bee0-185c5a1e3682";
+
+ swapDevices = [ ];
+
+ # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
+ # (the default) this is the recommended approach. When using systemd-networkd it's
+ # still possible to use this option, but it's recommended to use it in conjunction
+ # with explicit per-interface declarations with `networking.interfaces..useDHCP`.
+ networking.useDHCP = lib.mkDefault true;
+ # networking.interfaces.enp61s0.useDHCP = lib.mkDefault true;
+ # networking.interfaces.wlp62s0.useDHCP = lib.mkDefault true;
+
+ nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
+ hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
+}
diff --git a/configfiles/wallpaper.png b/media/wallpaper.png
similarity index 100%
rename from configfiles/wallpaper.png
rename to media/wallpaper.png
diff --git a/configfiles/zaney-stinger.mov b/media/zaney-stinger.mov
similarity index 100%
rename from configfiles/zaney-stinger.mov
rename to media/zaney-stinger.mov
diff --git a/nixos/home.nix b/nixos/home.nix
deleted file mode 100644
index 20dfac3..0000000
--- a/nixos/home.nix
+++ /dev/null
@@ -1,422 +0,0 @@
-{ config, pkgs, ... }:
-
-let
- home-manager = builtins.fetchTarball "https://github.com/nix-community/home-manager/archive/release-23.11.tar.gz";
-in
-{
- imports = [
- (import "${home-manager}/nixos")
- ];
-
- home-manager.users.zaney = {
-
- home.username = "zaney";
- home.homeDirectory = "/home/zaney";
- home.stateVersion = "23.11";
-
- home.file.".config/swaync/config.json" = {
- source = ../configfiles/swaync/config.json;
- recursive = true;
- };
- home.file.".Xresources" = {
- source = ../configfiles/.Xresources;
- recursive = true;
- };
- home.file.".vimrc" = {
- source = ../configfiles/.vimrc;
- recursive = true;
- };
- home.file.".config/tofi/config" = {
- source = ../configfiles/tofi/config;
- recursive = true;
- };
- home.file.".config/wallpaper.png" = {
- source = ../configfiles/wallpaper.png;
- recursive = true;
- };
- home.file.".config/swaync/style.css" = {
- source = ../configfiles/swaync/style.css;
- recursive = true;
- };
- home.file.".config/pipewire/pipewire.conf" = {
- source = ../configfiles/pipewire/pipewire.conf;
- recursive = true;
- };
- home.file.".config/neofetch/config.conf" = {
- source = ../configfiles/neofetch/config.conf;
- recursive = true;
- };
- home.file.".local/share/scriptdeps/emoji" = {
- source = ../configfiles/emoji;
- recursive = true;
- };
- home.file.".config/hypr/hyprland.conf" = {
- source = ../configfiles/hypr/hyprland.conf;
- recursive = true;
- };
- home.file.".config/hypr/keybindings.conf" = {
- source = ../configfiles/hypr/keybindings.conf;
- recursive = true;
- };
- home.file.".config/hypr/theme.conf" = {
- source = ../configfiles/hypr/theme.conf;
- recursive = true;
- };
- home.file.".config/hypr/animations.conf" = {
- source = ../configfiles/hypr/animations.conf;
- recursive = true;
- };
- home.file.".config/hypr/autostart.conf" = {
- source = ../configfiles/hypr/autostart.conf;
- recursive = true;
- };
- home.file.".config/zaney-stinger.mov" = {
- source = ../configfiles/zaney-stinger.mov;
- recursive = true;
- };
- home.file.".local/share/fonts/UniSans-Heavy.otf" = {
- source = ../configfiles/UniSans-Heavy.otf;
- recursive = true;
- };
- home.pointerCursor = {
- gtk.enable = true;
- # x11.enable = true;
- package = pkgs.bibata-cursors;
- name = "Bibata-Modern-Ice";
- size = 24;
- };
- qt.enable = true;
- qt.platformTheme = "gtk";
- qt.style.name = "adwaita-dark";
- qt.style.package = pkgs.adwaita-qt;
- gtk = {
- enable = true;
- font = {
- name = "Ubuntu";
- size = 12;
- package = pkgs.ubuntu_font_family;
- };
- theme = {
- name = "Tokyonight-Storm-BL";
- package = pkgs.tokyo-night-gtk;
- };
- iconTheme = {
- name = "Papirus-Dark";
- package = pkgs.papirus-icon-theme;
- };
- cursorTheme = {
- name = "Bibata-Modern-Ice";
- package = pkgs.bibata-cursors;
- };
- gtk3.extraConfig = {
- Settings = ''
- gtk-application-prefer-dark-theme=1
- '';
- };
- gtk4.extraConfig = {
- Settings = ''
- gtk-application-prefer-dark-theme=1
- '';
- };
- };
- xdg = {
- userDirs = {
- enable = true;
- createDirectories = true;
- };
- };
- programs = {
- kitty = {
- enable = true;
- package = pkgs.kitty;
- font.name = "JetBrainsMono Nerd Font";
- font.size = 16;
- settings = {
- scrollback_lines = 2000;
- wheel_scroll_min_lines = 1;
- window_padding_width = 6;
- confirm_os_window_close = 0;
- background_opacity = "0.85";
- };
- extraConfig = ''
- foreground #a9b1d6
- background #1a1b26
- color0 #414868
- color8 #414868
- color1 #f7768e
- color9 #f7768e
- color2 #73daca
- color10 #73daca
- color3 #e0af68
- color11 #e0af68
- color4 #7aa2f7
- color12 #7aa2f7
- color5 #bb9af7
- color13 #bb9af7
- color6 #7dcfff
- color14 #7dcfff
- color7 #c0caf5
- color15 #c0caf5
- cursor #c0caf5
- cursor_text_color #1a1b26
- selection_foreground none
- selection_background #28344a
- url_color #9ece6a
- active_border_color #3d59a1
- inactive_border_color #101014
- bell_border_color #e0af68
- tab_bar_style fade
- tab_fade 1
- active_tab_foreground #3d59a1
- active_tab_background #16161e
- active_tab_font_style bold
- inactive_tab_foreground #787c99
- inactive_tab_background #16161e
- inactive_tab_font_style bold
- tab_bar_background #101014
- '';
- };
- bash = {
- enable = true;
- enableCompletion = true;
- sessionVariables = {
-
- };
- shellAliases = {
- sv="sudo vim";
- v="vim";
- ls="lsd";
- ll="lsd -l";
- la="lsd -a";
- lal="lsd -al";
- ".."="cd ..";
- };
- };
- waybar = {
- enable = true;
- package = pkgs.waybar;
- settings = [{
- layer = "top";
- position = "top";
-
- modules-left = [ "hyprland/window" ];
- modules-center = [ "network" "pulseaudio" "cpu" "hyprland/workspaces" "memory" "disk" "clock" ];
- modules-right = [ "custom/notification" "tray" ];
- "hyprland/workspaces" = {
- format = "{icon}";
- format-icons = {
- default = " ";
- active = " ";
- urgent = " ";
- };
- on-scroll-up = "hyprctl dispatch workspace e+1";
- on-scroll-down = "hyprctl dispatch workspace e-1";
- };
- "clock" = {
- format = "{: %I:%M %p}";
- tooltip = false;
- };
- "hyprland/window" = {
- max-length = 60;
- separate-outputs = false;
- };
- "memory" = {
- interval = 5;
- format = " {}%";
- };
- "cpu" = {
- interval = 5;
- format = " {usage:2}%";
- tooltip = false;
- };
- "disk" = {
- format = " {free}/{total}";
- tooltip = true;
- };
- "network" = {
- format-icons = ["" "" "" "" ""];
- format-ethernet = ": {bandwidthDownOctets} : {bandwidthUpOctets}";
- format-wifi = "{icon} {signalStrength}%";
- format-disconnected = "";
- };
- "tray" = {
- spacing = 12;
- };
- "pulseaudio" = {
- format = "{icon} {volume}% {format_source}";
- format-bluetooth = "{volume}% {icon} {format_source}";
- format-bluetooth-muted = " {icon} {format_source}";
- format-muted = " {format_source}";
- format-source = " {volume}%";
- format-source-muted = "";
- format-icons = {
- headphone = "";
- hands-free = "";
- headset = "";
- phone = "";
- portable = "";
- car = "";
- default = ["" "" ""];
- };
- on-click = "pavucontrol";
- };
- "custom/notification" = {
- tooltip = false;
- format = "{icon} {}";
- format-icons = {
- notification = "";
- none = "";
- dnd-notification = "";
- dnd-none = "";
- inhibited-notification = "";
- inhibited-none = "";
- dnd-inhibited-notification = "";
- dnd-inhibited-none = "";
- };
- return-type = "json";
- exec-if = "which swaync-client";
- exec = "swaync-client -swb";
- on-click = "task-waybar";
- escape = true;
- };
- "battery" = {
- states = {
- warning = 30;
- critical = 15;
- };
- format = "{icon} {capacity}%";
- format-charging = " {capacity}%";
- format-plugged = " {capacity}%";
- format-icons = ["" "" "" "" "" "" "" "" "" ""];
- on-click = "";
- tooltip = false;
- };
- }];
- style = ''
- * {
- font-size: 16px;
- font-family: Ubuntu Nerd Font, Font Awesome, sans-serif;
- font-weight: bold;
- }
- window#waybar {
- background-color: rgba(26,27,38,0);
- border-bottom: 1px solid rgba(26,27,38,0);
- border-radius: 0px;
- color: #f8f8f2;
- }
- #workspaces {
- background: linear-gradient(180deg, #414868, #24283b);
- margin: 5px;
- padding: 0px 1px;
- border-radius: 15px;
- border: 0px;
- font-style: normal;
- color: #15161e;
- }
- #workspaces button {
- padding: 0px 5px;
- margin: 4px 3px;
- border-radius: 15px;
- border: 0px;
- color: #15161e;
- background-color: #1a1b26;
- opacity: 1.0;
- transition: all 0.3s ease-in-out;
- }
- #workspaces button.active {
- color: #15161e;
- background: #7aa2f7;
- border-radius: 15px;
- min-width: 40px;
- transition: all 0.3s ease-in-out;
- opacity: 1.0;
- }
- #workspaces button:hover {
- color: #15161e;
- background: #7aa2f7;
- border-radius: 15px;
- opacity: 1.0;
- }
- tooltip {
- background: #1a1b26;
- border: 1px solid #7aa2f7;
- border-radius: 10px;
- }
- tooltip label {
- color: #c0caf5;
- }
- #window {
- color: #565f89;
- background: #1a1b26;
- border-radius: 0px 15px 50px 0px;
- margin: 5px 5px 5px 0px;
- padding: 2px 20px;
- }
- #memory {
- color: #2ac3de;
- background: #1a1b26;
- border-radius: 15px 50px 15px 50px;
- margin: 5px;
- padding: 2px 20px;
- }
- #clock {
- color: #c0caf5;
- background: #1a1b26;
- border-radius: 15px 50px 15px 50px;
- margin: 5px;
- padding: 2px 20px;
- }
- #cpu {
- color: #b4f9f8;
- background: #1a1b26;
- border-radius: 50px 15px 50px 15px;
- margin: 5px;
- padding: 2px 20px;
- }
- #disk {
- color: #9ece6a;
- background: #1a1b26;
- border-radius: 15px 50px 15px 50px;
- margin: 5px;
- padding: 2px 20px;
- }
- #battery {
- color: #f7768e;
- background: #1a1b26;
- border-radius: 15px;
- margin: 5px;
- padding: 2px 20px;
- }
- #network {
- color: #ff9e64;
- background: #1a1b26;
- border-radius: 50px 15px 50px 15px;
- margin: 5px;
- padding: 2px 20px;
- }
- #tray {
- color: #bb9af7;
- background: #1a1b26;
- border-radius: 15px 0px 0px 50px;
- margin: 5px 0px 5px 5px;
- padding: 2px 20px;
- }
- #pulseaudio {
- color: #bb9af7;
- background: #1a1b26;
- border-radius: 50px 15px 50px 15px;
- margin: 5px;
- padding: 2px 20px;
- }
- #custom-notification {
- color: #7dcfff;
- background: #1a1b26;
- border-radius: 15px 50px 15px 50px;
- margin: 5px;
- padding: 2px 20px;
- }
- '';
- };
- };
- };
-}
diff --git a/scripts/autohypr.nix b/scripts/autohypr.nix
deleted file mode 100644
index 68aa70d..0000000
--- a/scripts/autohypr.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-{ pkgs }:
-
-pkgs.writeShellScriptBin "autohypr" ''
- ${pkgs.swww}/bin/swww init &
- ${pkgs.swaynotificationcenter}/bin/swaync &
- ${pkgs.waybar}/bin/waybar &
- ${pkgs.xfce.thunar}/bin/thunar --daemon &
- ${pkgs.swww}/bin/swww img ~/.config/wallpaper.png &
-''
diff --git a/scripts/emopicker9000.nix b/scripts/emopicker9000.nix
index 6219ecc..2915747 100644
--- a/scripts/emopicker9000.nix
+++ b/scripts/emopicker9000.nix
@@ -2,7 +2,7 @@
pkgs.writeShellScriptBin "emopicker9000" ''
# Get user selection via wofi from emoji file.
- chosen=$(cat $HOME/.local/share/scriptdeps/emoji | ${pkgs.tofi}/bin/tofi | awk '{print $1}')
+ chosen=$(cat $HOME/.emoji | ${pkgs.rofi-wayland}/bin/rofi -dmenu | awk '{print $1}')
# Exit if none chosen.
[ -z "$chosen" ] && exit
diff --git a/nixos/configuration.nix b/workstation/configuration.nix
similarity index 59%
rename from nixos/configuration.nix
rename to workstation/configuration.nix
index 0fc964c..ae38530 100644
--- a/nixos/configuration.nix
+++ b/workstation/configuration.nix
@@ -2,24 +2,25 @@
# your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running ‘nixos-help’).
-{ config, pkgs, ... }:
+{ inputs, config, pkgs, ... }:
{
imports =
- [ # Include the results of the hardware scan.
- ./hardware-configuration.nix
- # Include Home Manager
- ./home.nix
+ [ # Include the results of the hardware scan.
+ ./hardware-configuration.nix
];
- # Bootloader
+ # Bootloader.
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
+ boot.kernelModules = [ "v4l2loopback" ];
+ boot.extraModulePackages = [ config.boot.kernelPackages.v4l2loopback ];
- # Networking
- networking.networkmanager.enable = true;
networking.hostName = "hyprnix"; # Define your hostname.
+ # Enable networking
+ networking.networkmanager.enable = true;
+
# Set your time zone.
time.timeZone = "America/Chicago";
@@ -42,84 +43,17 @@
users.users.zaney = {
isNormalUser = true;
description = "Tyler Kelley";
- extraGroups = [ "networkmanager" "wheel" "disk" "power" "video" ];
+ extraGroups = [ "networkmanager" "wheel" ];
packages = with pkgs; [];
};
- programs.hyprland.enable = true;
+ # Allow unfree packages
+ nixpkgs.config.allowUnfree = true;
# List packages installed in system profile. To search, run:
# $ nix search wget
environment.systemPackages = with pkgs; [
- # Import Scripts
- (import ../scripts/emopicker9000.nix { inherit pkgs; })
- (import ../scripts/task-waybar.nix { inherit pkgs; })
- (import ../scripts/squirtle.nix { inherit pkgs; })
- (import ../scripts/autohypr.nix { inherit pkgs; })
- # Utils
- vim
- wget
- btop
- git
- libvirt
- swww
- polkit_gnome
- grim
- slurp
- lm_sensors
- unzip
- unrar
- gnome.file-roller
- libnotify
- swaynotificationcenter
- tofi
- xfce.thunar
- imv
- killall
- v4l-utils
- # Misc
- ydotool
- wl-clipboard
- socat
- cowsay
- lsd
- neofetch
- pkg-config
- cmatrix
- lolcat
- transmission-gtk
- # Photo & Video
- mpv
- gimp
- obs-studio
- blender
- kdenlive
- # Online
- firefox
- discord
- # Dev
- meson
- glibc
- hugo
- gnumake
- ninja
- go
- nodejs_21
- godot_4
- rustup
- rust-analyzer
- # Audio
- pavucontrol
- audacity
- # Gaming
- zeroad
- xonotic
- openra
- # Fonts
- font-awesome
- symbola
- noto-fonts-color-emoji
- material-icons
+ vim wget curl
];
fonts.packages = with pkgs; [
@@ -140,7 +74,41 @@
driSupport32Bit = true;
};
- # Nix Package Management
+ programs.hyprland = {
+ enable = true;
+ package = inputs.hyprland.packages.${pkgs.system}.hyprland;
+ };
+
+ # Some programs need SUID wrappers, can be configured further or are
+ # started in user sessions.
+ programs.mtr.enable = true;
+ programs.gnupg.agent = {
+ enable = true;
+ enableSSHSupport = true;
+ };
+
+ # List services that you want to enable:
+ services.openssh.enable = true;
+ services.fstrim.enable = true;
+ services.xserver = {
+ layout = "us";
+ xkbVariant = "";
+ libinput.enable = true;
+ videoDrivers = [ "amdgpu" ];
+ };
+ services.pipewire = {
+ enable = true;
+ alsa.enable = true;
+ alsa.support32Bit = true;
+ pulse.enable = true;
+ jack.enable = true;
+ };
+ hardware.pulseaudio.enable = false;
+ sound.enable = true;
+ security.rtkit.enable = true;
+
+
+ system.stateVersion = "23.11";
nix = {
settings.auto-optimise-store = true;
gc = {
@@ -175,54 +143,5 @@
QT_AUTO_SCREEN_SCALE_FACTOR = "1";
MOZ_ENABLE_WAYLAND = "1";
};
-
- # Some programs need SUID wrappers, can be configured further or are
- # started in user sessions.
- programs.mtr.enable = true;
- programs.gnupg.agent = {
- enable = true;
- enableSSHSupport = true;
- };
-
- # List services that you want to enable:
- services.openssh.enable = true;
- services.fstrim.enable = true;
- services.xserver = {
- layout = "us";
- xkbVariant = "";
- libinput.enable = true;
- };
- services.pipewire = {
- enable = true;
- alsa.enable = true;
- alsa.support32Bit = true;
- pulse.enable = true;
- jack.enable = true;
- };
- hardware.pulseaudio.enable = false;
- sound.enable = true;
- security.rtkit.enable = true;
-
- # Automatic Updates
- system.autoUpgrade = {
- enable = true;
- channel = "https://nixos.org/channels/nixos-23.11";
- };
-
- nixpkgs.config.allowUnfree = true;
-
- # Open ports in the firewall.
- # networking.firewall.allowedTCPPorts = [ ... ];
- # networking.firewall.allowedUDPPorts = [ ... ];
- # Or disable the firewall altogether.
- # networking.firewall.enable = false;
-
- # This value determines the NixOS release from which the default
- # settings for stateful data, like file locations and database versions
- # on your system were taken. It‘s perfectly fine and recommended to leave
- # this value at the release version of the first install of this system.
- # Before changing this value read the documentation for this option
- # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
- system.stateVersion = "23.11"; # Did you read the comment?
-
+ nix.settings.experimental-features = [ "nix-command" "flakes" ];
}
diff --git a/workstation/hardware-configuration.nix b/workstation/hardware-configuration.nix
new file mode 100644
index 0000000..e87c57d
--- /dev/null
+++ b/workstation/hardware-configuration.nix
@@ -0,0 +1,38 @@
+# Do not modify this file! It was generated by ‘nixos-generate-config’
+# and may be overwritten by future invocations. Please make changes
+# to /etc/nixos/configuration.nix instead.
+{ config, lib, pkgs, modulesPath, ... }:
+
+{
+ imports =
+ [ (modulesPath + "/installer/scan/not-detected.nix")
+ ];
+
+ boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod" ];
+ boot.initrd.kernelModules = [ ];
+ boot.kernelModules = [ "kvm-amd" ];
+ boot.extraModulePackages = [ ];
+
+ fileSystems."/" =
+ { device = "/dev/disk/by-uuid/37d2dff5-91fd-42c8-b836-1cc3d18b9cd4";
+ fsType = "ext4";
+ };
+
+ fileSystems."/boot" =
+ { device = "/dev/disk/by-uuid/6ADB-9840";
+ fsType = "vfat";
+ };
+
+ swapDevices = [ ];
+
+ # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
+ # (the default) this is the recommended approach. When using systemd-networkd it's
+ # still possible to use this option, but it's recommended to use it in conjunction
+ # with explicit per-interface declarations with `networking.interfaces..useDHCP`.
+ networking.useDHCP = lib.mkDefault true;
+ # networking.interfaces.enp7s0.useDHCP = lib.mkDefault true;
+ # networking.interfaces.wlp6s0.useDHCP = lib.mkDefault true;
+
+ nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
+ hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
+}