From 89dc32e96a0ef31c4624224d42c0dbe0a6bd0083 Mon Sep 17 00:00:00 2001 From: Noa Aarts Date: Fri, 1 Mar 2024 13:46:10 +0100 Subject: [PATCH] split out pkg installs to respective files --- common/git.nix | 4 +- common/hyprland.nix | 13 +++ common/kitty.nix | 14 +++ common/waybar.nix | 3 + common/wofi.nix | 38 +++++++ common/zsh.nix | 11 +- hosts/default/home.nix | 49 +-------- hosts/default/root.nix | 225 ++++++++++++++--------------------------- 8 files changed, 155 insertions(+), 202 deletions(-) create mode 100644 common/kitty.nix diff --git a/common/git.nix b/common/git.nix index 84f8cca..103ebd5 100644 --- a/common/git.nix +++ b/common/git.nix @@ -1,7 +1,9 @@ { config, pkgs, inputs, ... }: { - + home.packages = with pkgs; [ + git + ]; programs.git = { enable = true; userName = "Noa Aarts"; diff --git a/common/hyprland.nix b/common/hyprland.nix index dc389df..e9c9cd2 100644 --- a/common/hyprland.nix +++ b/common/hyprland.nix @@ -1,6 +1,19 @@ { config, pkgs, inputs, ... }: { + # these are necessary for the config to function correctly + imports = [ + ./kitty.nix + ./waybar.nix + ./wofi.nix + ]; + home.packages = with pkgs; [ + hyprland + + # I always want these with hyprland anyways + dunst + wl-clipboard + ]; wayland.windowManager.hyprland = { enable = true; settings = { diff --git a/common/kitty.nix b/common/kitty.nix new file mode 100644 index 0000000..56ca91c --- /dev/null +++ b/common/kitty.nix @@ -0,0 +1,14 @@ +{ config, pkgs, inputs, ... }: + +{ + home.packages = with pkgs; [ + kitty + ]; + programs.kitty = { + enable = true; + settings = { + confirm_os_window_close = 0; + }; + shellIntegration.enableZshIntegration = true; + }; +} diff --git a/common/waybar.nix b/common/waybar.nix index 802e18b..2d0f6d1 100644 --- a/common/waybar.nix +++ b/common/waybar.nix @@ -1,6 +1,9 @@ { config, pkgs, inputs, ... }: { + home.packages = with pkgs; [ + waybar + ]; programs.waybar = { enable = true; settings = { diff --git a/common/wofi.nix b/common/wofi.nix index ff548f1..3089bec 100644 --- a/common/wofi.nix +++ b/common/wofi.nix @@ -1,6 +1,44 @@ { config, pkgs, inputs, ... }: { + home.packages = with pkgs; [ + (writeShellScriptBin "wofi-launch" '' + ${wofi}/bin/wofi --show drun + '') + (writeShellScriptBin "wofi-power" '' + lock="Lock" + logout="Logout" + poweroff="Poweroff" + reboot="Reboot" + sleep="Suspend" + + selected_option=$(echo -e "$lock\n$logout\n$sleep\n$reboot\n$poweroff" | wofi --dmenu -i -p "Powermenu") + + if [ "$selected_option" == "$lock" ] + then + echo "lock" + swaylock + elif [ "$selected_option" == "$logout" ] + then + echo "logout" + loginctl terminate-user `whoami` + elif [ "$selected_option" == "$poweroff" ] + then + echo "poweroff" + poweroff + elif [ "$selected_option" == "$reboot" ] + then + echo "reboot" + reboot + elif [ "$selected_option" == "$sleep" ] + then + echo "sleep" + suspend + else + echo "No match" + fi + '') + ]; programs.wofi = { enable = true; settings = { diff --git a/common/zsh.nix b/common/zsh.nix index b5a4e8e..7222b91 100644 --- a/common/zsh.nix +++ b/common/zsh.nix @@ -1,6 +1,9 @@ { config, pkgs, inputs, ... }: { + home.packages = with pkgs; [ + zsh + ]; programs.zsh = { enable=true; shellAliases = { @@ -21,12 +24,4 @@ }; }; - programs.kitty = { - enable = true; - settings = { - confirm_os_window_close = 0; - }; - shellIntegration.enableZshIntegration = true; - }; - } diff --git a/hosts/default/home.nix b/hosts/default/home.nix index ee7e4db..4674eff 100644 --- a/hosts/default/home.nix +++ b/hosts/default/home.nix @@ -4,10 +4,8 @@ imports = [ inputs.nixvim.homeManagerModules.nixvim - ../../common/wofi.nix ../../common/zsh.nix ../../common/hyprland.nix - ../../common/waybar.nix ../../common/git.nix ../../common/nvim/nvim.nix ]; @@ -48,10 +46,6 @@ ]; }) - hyprland - dunst - waybar - wl-clipboard dconf (symlinkJoin { @@ -66,45 +60,8 @@ discord ]; }) - kitty pipewire lsd - (writeShellScriptBin "wofi-launch" '' - ${wofi}/bin/wofi --show drun - '') - (writeShellScriptBin "wofi-power" '' - lock="Lock" - logout="Logout" - poweroff="Poweroff" - reboot="Reboot" - sleep="Suspend" - - selected_option=$(echo -e "$lock\n$logout\n$sleep\n$reboot\n$poweroff" | wofi --dmenu -i -p "Powermenu") - - if [ "$selected_option" == "$lock" ] - then - echo "lock" - swaylock - elif [ "$selected_option" == "$logout" ] - then - echo "logout" - loginctl terminate-user `whoami` - elif [ "$selected_option" == "$poweroff" ] - then - echo "poweroff" - poweroff - elif [ "$selected_option" == "$reboot" ] - then - echo "reboot" - reboot - elif [ "$selected_option" == "$sleep" ] - then - echo "sleep" - suspend - else - echo "No match" - fi - '') # Programming langs go @@ -148,8 +105,10 @@ TERM = "kitty"; }; - xdg.userDirs.enable = true; - xdg.userDirs.createDirectories = true; + xdg.userDirs = { + enable = true; + createDirectories = true; + }; dconf = { enable = true; diff --git a/hosts/default/root.nix b/hosts/default/root.nix index d14c10d..5c4b6a5 100644 --- a/hosts/default/root.nix +++ b/hosts/default/root.nix @@ -1,165 +1,94 @@ { config, pkgs, inputs, ... }: - { - imports = - [ - inputs.nixvim.homeManagerModules.nixvim - ]; - # Home Manager needs a bit of information about you and the paths it should - # manage. - home.username = "root"; - home.homeDirectory = "/root"; + imports = + [ + inputs.nixvim.homeManagerModules.nixvim + ../../common/wofi.nix + ../../common/zsh.nix + ../../common/hyprland.nix + ../../common/waybar.nix + ../../common/git.nix + ../../common/nvim/nvim.nix + ]; + # Home Manager needs a bit of information about you and the paths it should + # manage. + home.username = "root"; + home.homeDirectory = "/root"; - # This value determines the Home Manager release that your configuration is - # compatible with. This helps avoid breakage when a new Home Manager release - # introduces backwards incompatible changes. - # - # You should not change this value, even if you update Home Manager. If you do - # want to update the value, then make sure to first check the Home Manager - # release notes. - home.stateVersion = "23.11"; # Please read the comment before changing. + # This value determines the Home Manager release that your configuration is + # compatible with. This helps avoid breakage when a new Home Manager release + # introduces backwards incompatible changes. + # + # You should not change this value, even if you update Home Manager. If you do + # want to update the value, then make sure to first check the Home Manager + # release notes. + home.stateVersion = "23.11"; # Please read the comment before changing. - nixpkgs.config.allowUnfree = true; + nixpkgs.config.allowUnfree = true; - # The home.packages option allows you to install Nix packages into your - # environment. - home.packages = [ - ]; + # The home.packages option allows you to install Nix packages into your + # environment. + home.packages = with pkgs; [ + file + unzip + zip - # Home Manager is pretty good at managing dotfiles. The primary way to manage - # plain files is through 'home.file'. - home.file = { - # # Building this configuration will create a copy of 'dotfiles/screenrc' in - # # the Nix store. Activating the configuration will then make '~/.screenrc' a - # # symlink to the Nix store copy. - # ".screenrc".source = dotfiles/screenrc; + dig + mtr - # # You can also set the file content immediately. - # ".gradle/gradle.properties".text = '' - # org.gradle.console=verbose - # org.gradle.daemon.idletimeout=3600000 - # ''; - }; + kitty + lsd + ]; - # Home Manager can also manage your environment variables through - # 'home.sessionVariables'. If you don't want to manage your shell through Home - # Manager then you have to manually source 'hm-session-vars.sh' located at - # either - # - # ~/.nix-profile/etc/profile.d/hm-session-vars.sh - # - # or - # - # ~/.local/state/nix/profiles/profile/etc/profile.d/hm-session-vars.sh - # - # or - # - # /etc/profiles/per-user/noa/etc/profile.d/hm-session-vars.sh - # - home.sessionVariables = { - EDITOR = "nvim"; - TERM = "kitty"; - }; - xdg.userDirs.enable = true; - xdg.userDirs.createDirectories = true; + # Home Manager is pretty good at managing dotfiles. The primary way to manage + # plain files is through 'home.file'. + home.file = { + # # Building this configuration will create a copy of 'dotfiles/screenrc' in + # # the Nix store. Activating the configuration will then make '~/.screenrc' a + # # symlink to the Nix store copy. + # ".screenrc".source = dotfiles/screenrc; - # Let Home Manager install and manage itself. - programs.home-manager.enable = true; - - # TODO move to seperate file - programs.zsh = { - enable=true; - shellAliases = { - ll = "lsd -l"; - update = "sudo nixos-rebuild switch --flake /etc/nixos#default"; + # # You can also set the file content immediately. + # ".gradle/gradle.properties".text = '' + # org.gradle.console=verbose + # org.gradle.daemon.idletimeout=3600000 + # ''; }; - history = { - path = "${config.xdg.dataHome}/zsh/history"; - size = 10000; + + # Home Manager can also manage your environment variables through + # 'home.sessionVariables'. If you don't want to manage your shell through Home + # Manager then you have to manually source 'hm-session-vars.sh' located at + # either + # + # ~/.nix-profile/etc/profile.d/hm-session-vars.sh + # + # or + # + # ~/.local/state/nix/profiles/profile/etc/profile.d/hm-session-vars.sh + # + # or + # + # /etc/profiles/per-user/noa/etc/profile.d/hm-session-vars.sh + # + home.sessionVariables = { + EDITOR = "nvim"; + TERM = "kitty"; }; - oh-my-zsh = { + + xdg.userDirs.enable = true; + xdg.userDirs.createDirectories = true; + + dconf = { enable = true; - plugins = [ "git" ]; - theme = "frisk"; + settings = { + "org/gnome/desktop/interface" = { + color-scheme = "prefer-dark"; + }; + }; }; - }; - # TODO extend and move to seperate file - programs.git = { - enable = true; - userName = "Noa Aarts"; - userEmail = "itepastra@gmail.com"; - extraConfig = { - init = { defaultBranch = "main"; }; - }; - }; - - # TODO move to seperate file - # TODO create neovim config - programs.nixvim = { - enable = true; - vimAlias = true; - - # Configure neovim options... - options = { - relativenumber = true; - incsearch = true; - }; - - # ...mappings... - keymaps = [ - { - mode = "n"; - key = ""; - action = ":w"; - } - { - mode = "n"; - key = ""; - action = ":noh"; - options.silent = true; - } - { - mode = "v"; - key = ">"; - action = ">gv"; - } - { - mode = "v"; - key = "<"; - action = "k" = "goto_prev"; - "j" = "goto_next"; - }; - - lspBuf = { - gd = "definition"; - K = "hover"; - }; - }; - }; - }; - - # ... and even highlights and autocommands ! - highlight.ExtraWhitespace.bg = "red"; - match.ExtraWhitespace = "\\s\\+$"; - autoCmd = [ - { - event = "FileType"; - pattern = "nix"; - command = "setlocal tabstop=2 shiftwidth=2"; - } - ]; - }; + # Let Home Manager install and manage itself. + programs.home-manager.enable = true; }