diff --git a/nix/flake.nix b/nix/flake.nix index 95a28372..06f6ed24 100644 --- a/nix/flake.nix +++ b/nix/flake.nix @@ -39,12 +39,17 @@ inputs.nix-flatpak.nixosModules.nix-flatpak ]; }; + }; homeConfigurations = { joey = home-manager.lib.homeManagerConfiguration { - inherit pkgs, pkgs-unstable; - modules = [ ./home-manager/joey.nix ]; + inherit pkgs; + extraSpecialArgs = { inherit pkgs-unstable; inherit inputs; }; + modules = [ + ./home-manager/joey.nix + inputs.stylix.homeManagerModules.stylix + ]; }; }; - }; }; } + diff --git a/nix/home-manager/joey.nix b/nix/home-manager/joey.nix index ddab6b28..2be90fc4 100644 --- a/nix/home-manager/joey.nix +++ b/nix/home-manager/joey.nix @@ -1,26 +1,67 @@ -{ config, pkgs, pkgs-unstable, ... }: +{ pkgs, pkgs-unstable, ... }: { home.username = "joey"; home.homeDirectory = "/home/joey"; home.stateVersion = "24.05"; home.packages = with pkgs; [ - fastfetch - tree - bat - btop - wl-clipboard - fd - eza - flatpak - fzf-git-sh - tmux - vesktop - base16-schemes - nixd + fastfetch + tree btop + bat fd eza fzf-git-sh tmux + wl-clipboard + flatpak + vesktop + base16-schemes + nixd + vlc ]; # Programs + ## Stylix + stylix = { + enable = true; + autoEnable = true; + polarity = "dark"; + fonts = { + monospace = { + name = "DejaVu Sans Mono"; + package = pkgs.dejavu_fonts; + }; + serif = { + name = "DejaVu Serif"; + package = pkgs.dejavu_fonts; + }; + sansSerif = { + name = "DejaVu Sans"; + package = pkgs.dejavu_fonts; + }; + emoji = { + name = "Noto Color Emoji"; + package = pkgs.noto-fonts-color-emoji; + }; + sizes = { + terminal = 14; + applications = 12; + popups = 12; + desktop = 12; + }; + }; + }; + ### Stylix theme: gruvbox + #stylix = { + # image = pkgs.fetchurl { url = "https://wallpaperaccess.com/full/7731826.png"; sha256 = "07cq8vvi25h8wp21jgmj1yw3w4674khxcjb6c8vgybi94ikjqcyv"; }; + # base16Scheme = "${pkgs.base16-schemes}/share/themes/gruvbox-dark-medium.yaml"; + #}; + stylix = { + image = pkgs.fetchurl { url = "https://wallpaperaccess.com/full/7731794.png"; sha256 = "1n0l1v0hfna5378zdfazvhq1np8x1wgjcmfnphxj4vjb48gkzmjk"; }; + base16Scheme = "${pkgs.base16-schemes}/share/themes/gruvbox-dark-medium.yaml"; + }; + ### Stylix theme: stevo + #stylix = { + # image = pkgs.fetchurl { url = "https://wallpaperaccess.com/full/7731794.png"; sha265 = "070vysl5ws4470pswnnw3jghwbcs1s5b5sm0cz37vmxwrff7ixdz"; }; + # override = { base01 = "332330"; }; + #}; + ## Hyprland wayland.windowManager.hyprland = { enable = true; @@ -135,6 +176,7 @@ fetch = "fastfetch"; neofetch = "fetch"; nu = "sudo nixos-rebuild switch --flake ~/Jafner.net/nix"; + hmu = "home-manager switch -b bak --flake ~/Jafner.net/nix"; ngls = "nix-env --profile /nix/var/nix/profiles/system --list-generations"; ngclean = "nix-collect-garbage --delete-old"; ngcleanboot = "/run/current-system/bin/switch-to-configuration boot"; diff --git a/nix/home-manager/temple.png b/nix/home-manager/temple.png new file mode 100644 index 00000000..1b1a3564 Binary files /dev/null and b/nix/home-manager/temple.png differ diff --git a/nix/nixos/configuration.nix b/nix/nixos/configuration.nix index b6c7204a..80e63c6f 100644 --- a/nix/nixos/configuration.nix +++ b/nix/nixos/configuration.nix @@ -1,18 +1,24 @@ { config, lib, pkgs, pkgs-unstable, inputs, ... }: { - imports = - [ - ./hardware-configuration.nix - ./display.nix - ./system.nix - ./security.nix - ./flatpak.nix - ./kde.nix - ./steam.nix - ./theming.nix - ./locale.nix - ]; + imports = [ + ./hardware-configuration.nix + ./desktopEnvironment.nix + ./system.nix + ./security.nix + ./flatpak.nix + ./steam.nix + ./locale.nix + ]; + # Configure user joey + programs.zsh.enable = true; + users.users.joey.shell = pkgs.zsh; + users.users.joey = { + isNormalUser = true; + description = "joey"; + extraGroups = [ "networkmanager" "wheel" ]; + }; + # DO NOT CHANGE system.stateVersion = "24.05"; } diff --git a/nix/nixos/display.nix b/nix/nixos/desktopEnvironment.nix similarity index 55% rename from nix/nixos/display.nix rename to nix/nixos/desktopEnvironment.nix index 199751e2..0e20f831 100644 --- a/nix/nixos/display.nix +++ b/nix/nixos/desktopEnvironment.nix @@ -1,11 +1,12 @@ -{ ... }: +{ pkgs, lib, ... }: + { # Configure displayManager + services.displayManager.defaultSession = "plasma"; services.displayManager = { enable = true; autoLogin.enable = true; autoLogin.user = "joey"; - defaultSession = "plasma"; sddm = { enable = true; autoNumlock = true; @@ -18,4 +19,10 @@ layout = "us"; variant = ""; }; -} \ No newline at end of file + + # Configure KDE Plasma 6 + services.desktopManager.plasma6.enable = true; + programs.kdeconnect.enable = true; + programs.kdeconnect.package = lib.mkForce pkgs.kdePackages.kdeconnect-kde; + +} diff --git a/nix/nixos/joey.nix b/nix/nixos/joey.nix deleted file mode 100644 index 50398571..00000000 --- a/nix/nixos/joey.nix +++ /dev/null @@ -1,188 +0,0 @@ -{ config, pkgs, pkgs-unstable, ... }: - -{ - # Configure user joey - programs.zsh.enable = true; - users.users.joey.shell = pkgs.zsh; - users.users.joey = { - isNormalUser = true; - description = "joey"; - extraGroups = [ "networkmanager" "wheel" ]; - }; - home-manager.useUserPackages = true; - home-manager.useGlobalPkgs = true; - home-manager.users.joey = { ... }: { - home.username = "joey"; - home.homeDirectory = "/home/joey"; - home.stateVersion = "24.05"; - home.packages = with pkgs; [ - fastfetch - tree - bat - btop - wl-clipboard - fd - eza - flatpak - fzf-git-sh - tmux - vesktop - base16-schemes - nixd - ]; - - # Programs - ## Hyprland - wayland.windowManager.hyprland = { - enable = true; - package = pkgs.hyprland; - plugins = []; - settings = { - }; - }; - - ## VSCodium - programs.vscode = { - enable = true; - package = pkgs.vscodium; - extensions = with pkgs.vscode-extensions; [ - jnoortheen.nix-ide - continue.continue - ]; - userSettings = { - "nix.serverPath" = "nixd"; - "nix.enableLanguageServer" = true; - }; - }; - - ## Kitty - programs.kitty = { - enable = true; - theme = "Gruvbox Material Dark Medium"; - }; - - ## eza - programs.eza = { - enable = true; - enableZshIntegration = true; - git = true; - extraOptions = [ - "--color=always" - "--long" - "--icons=always" - "--no-time" - "--no-user" - ]; - }; - - ## vim - programs.vim = { - enable = true; - defaultEditor = true; - settings = { - copyindent = true; - relativenumber = true; - expandtab = true; - tabstop = 2; - }; - extraConfig = '' - set nocompatible - filetype on - filetype plugin on - filetype indent on - syntax on - set cursorline - set wildmenu - set wildmode=list:longest - ''; - }; - - ## OBS-Studio - programs.obs-studio = { - enable = true; - plugins = with pkgs.obs-studio-plugins; [ - obs-vaapi - obs-vkcapture - input-overlay - ]; - }; - - ## fzf - programs.fzf = { - enable = true; - package = pkgs-unstable.fzf; - defaultCommand = "fd --hidden --strip-cwd-prefix --exclude .git"; - fileWidgetCommand = "$FZF_DEFAULT_COMMAND"; - changeDirWidgetCommand = "fd --type=d --hidden --strip-cwd-prefix --exclude .git ."; - enableZshIntegration = true; - }; - - ## Git - programs.git = { - enable = true; - userName = "Joey Hafner"; - userEmail = "joey@jafner.net"; - extraConfig = { - core.sshCommand = "ssh -i /home/joey/.ssh/joey@joey-laptop"; - }; - delta.enable = true; - delta.options = { - side-by-side = true; - }; - }; - - ## Zsh - programs.zsh = { - enable = true; - dotDir = ".config/zsh"; - enableCompletion = true; - autosuggestion.enable = true; - syntaxHighlighting.enable = true; - initExtraFirst = "source ${pkgs.fzf-git-sh}/share/fzf-git-sh/fzf-git.sh"; - shellAliases = { - cat = "bat"; - fd = "fd -Lu"; - ls = "eza"; - fetch = "fastfetch"; - neofetch = "fetch"; - nu = "sudo nixos-rebuild switch --flake ~/Jafner.net/nix"; - ngls = "nix-env --profile /nix/var/nix/profiles/system --list-generations"; - ngclean = "nix-collect-garbage --delete-old"; - ngcleanboot = "/run/current-system/bin/switch-to-configuration boot"; - }; - history = { - share = true; - save = 10000; - size = 10000; - expireDuplicatesFirst = false; - extended = false; - ignoreAllDups = false; - ignoreDups = true; - }; - initExtra = '' - bindkey -e - bindkey '^[[1;5A' history-search-backward # Ctrl+Up-arrow - bindkey '^[[1;5B' history-search-forward # Ctrl+Down-arrow - bindkey '^[[1;5D' backward-word # Ctrl+Left-arrow - bindkey '^[[1;5C' forward-word # Ctrl+Right-arrow - bindkey '^[[H' beginning-of-line # Home - bindkey '^[[F' end-of-line # End - bindkey '^[w' kill-region # Delete - bindkey '^I^I' autosuggest-accept # Tab, Tab - bindkey '^[' autosuggest-clear # Esc - _fzf_compgen_path() { - fd --hidden --exclude .git . "$1" - } - _fzf_compgen_dir() { - fd --hidden --exclude .git . "$1" - } - ''; - - }; - - ## Home-manager - programs.home-manager = { - enable = true; - }; - }; -} diff --git a/nix/nixos/kde.nix b/nix/nixos/kde.nix deleted file mode 100644 index 0f94dd1f..00000000 --- a/nix/nixos/kde.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ pkgs, lib, ... }: - -{ - services.desktopManager.plasma6.enable = true; - programs.kdeconnect.enable = true; - programs.kdeconnect.package = lib.mkForce pkgs.kdePackages.kdeconnect-kde; -} diff --git a/nix/nixos/system.nix b/nix/nixos/system.nix index 1a059736..3acdb8de 100644 --- a/nix/nixos/system.nix +++ b/nix/nixos/system.nix @@ -14,6 +14,10 @@ inputs.nixos-conf-editor.packages.${system}.nixos-conf-editor ]; + fonts.packages = with pkgs; [ + nerdfonts + ]; + # Configure mouse and touchpad services.libinput = { enable = true; @@ -58,4 +62,4 @@ xdg.portal.extraPortals = with pkgs; [ xdg-desktop-portal-gtk ]; -} \ No newline at end of file +} diff --git a/nix/nixos/theming.nix b/nix/nixos/theming.nix deleted file mode 100644 index 971228bf..00000000 --- a/nix/nixos/theming.nix +++ /dev/null @@ -1,34 +0,0 @@ -{ pkgs, ... }: { - # Configure stylix - stylix = { - enable = true; - autoEnable = true; - polarity = "dark"; - base16Scheme = "${pkgs.base16-schemes}/share/themes/gruvbox-dark-medium.yaml"; - image = ./wallpaper.png; - fonts = { - monospace = { - name = "DejaVu Sans Mono"; - package = pkgs.dejavu_fonts; - }; - serif = { - name = "DejaVu Serif"; - package = pkgs.dejavu_fonts; - }; - sansSerif = { - name = "DejaVu Sans"; - package = pkgs.dejavu_fonts; - }; - emoji = { - name = "Noto Color Emoji"; - package = pkgs.noto-fonts-color-emoji; - }; - sizes = { - terminal = 14; - applications = 12; - popups = 12; - desktop = 12; - }; - }; - }; -}