home -> homeManagerModules

This commit is contained in:
Aly Raffauf 2024-03-28 19:52:15 -04:00
parent aa64f93930
commit 99e5f539d5
58 changed files with 651 additions and 516 deletions

View file

@ -34,13 +34,13 @@
];
};
outputs = inputs@{ nixpkgs, home-manager, nixpkgs-unstable
, home-manager-unstable, nixos-hardware, ... }: {
outputs =
inputs@{ nixpkgs-unstable, home-manager-unstable, nixos-hardware, ... }: {
homeConfigurations."aly" =
home-manager-unstable.lib.homeManagerConfiguration {
pkgs = import nixpkgs-unstable { system = "x86_64-linux"; };
modules = [ ./home/aly.nix ];
modules = [ ./homeManagerModules ];
};
nixosConfigurations = {
@ -48,6 +48,7 @@
# Framework 13 with AMD Ryzen 7640U and 32GB RAM.
lavaridge = nixpkgs-unstable.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = { inherit inputs; };
modules = [
nixos-hardware.nixosModules.framework-13-7040-amd
home-manager-unstable.nixosModules.home-manager
@ -59,6 +60,7 @@
# Home Lab. Ryzen 5 2600 with 16GB RAM, RX 6700.
mauville = nixpkgs-unstable.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = { inherit inputs; };
modules = [
home-manager-unstable.nixosModules.home-manager
./hosts/mauville
@ -69,6 +71,7 @@
# Lenovo Yoga 9i with i7-1360P and 16GB RAM.
petalburg = nixpkgs-unstable.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = { inherit inputs; };
modules = [
nixos-hardware.nixosModules.common-pc-laptop-ssd
nixos-hardware.nixosModules.common-cpu-intel
@ -81,6 +84,7 @@
# T440p with i5-4210M and 16GB RAM.
rustboro = nixpkgs-unstable.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = { inherit inputs; };
modules = [
nixos-hardware.nixosModules.lenovo-thinkpad-t440p
home-manager-unstable.nixosModules.home-manager

View file

@ -1,30 +0,0 @@
{ config, pkgs, ... }:
{
programs.alacritty = {
enable = true;
settings = {
colors = {
primary = {
foreground = "#fafafa";
background = "#232634";
};
draw_bold_text_with_bright_colors = true;
};
font = {
normal = {
family = "NotoSansM Nerd Font";
style = "Regular";
};
size = 10;
};
selection.save_to_clipboard = true;
window = {
blur = true;
# decorations = "None";
dynamic_padding = true;
opacity = 0.8;
};
};
};
}

View file

@ -1,5 +0,0 @@
{ config, pkgs, ... }:
{
imports = [ ./common.nix ./common-gui.nix ./gnome ];
}

View file

@ -1,5 +0,0 @@
{ config, pkgs, ... }:
{
imports = [ ./common.nix ./common-gui.nix ./hypr ./waybar ./mako ./fuzzel ];
}

View file

@ -1,5 +0,0 @@
{ config, pkgs, ... }:
{
imports = [ ./common.nix ./common-gui.nix ];
}

View file

@ -1,5 +0,0 @@
{ config, pkgs, ... }:
{
imports = [ ./common.nix ./shell ];
}

View file

@ -1,35 +0,0 @@
{ config, pkgs, ... }:
{
imports = [ ./alacritty ];
programs.librewolf = {
enable = true;
settings = {
"browser.safebrowsing.malware.enabled" = true;
"browser.safebrowsing.phishing.enabled" = true;
"browser.safebrowsing.blockedURIs.enabled" = true;
"browser.safebrowsing.provider.google4.gethashURL" =
"https://safebrowsing.googleapis.com/v4/fullHashes:find?$ct=application/x-protobuf&key=%GOOGLE_SAFEBROWSING_API_KEY%&$httpMethod=POST";
"browser.safebrowsing.provider.google4.updateURL" =
"https://safebrowsing.googleapis.com/v4/threatListUpdates:fetch?$ct=application/x-protobuf&key=%GOOGLE_SAFEBROWSING_API_KEY%&$httpMethod=POST";
"browser.safebrowsing.provider.google.gethashURL" =
"https://safebrowsing.google.com/safebrowsing/gethash?client=SAFEBROWSING_ID&appver=%MAJOR_VERSION%&pver=2.2";
"browser.safebrowsing.provider.google.updateURL" =
"https://safebrowsing.google.com/safebrowsing/downloads?client=SAFEBROWSING_ID&appver=%MAJOR_VERSION%&pver=2.2&key=%GOOGLE_SAFEBROWSING_API_KEY%";
"browser.safebrowsing.downloads.enabled" = true;
"identity.fxaccounts.enabled" = true;
"privacy.clearOnShutdown.history" = false;
"middlemouse.paste" = false;
"general.autoScroll" = true;
};
};
}

View file

@ -1,12 +0,0 @@
{ config, pkgs, ... }:
{
imports = [ ./shell ];
home.username = "aly";
home.homeDirectory = "/home/aly";
home.stateVersion = "23.11";
programs.home-manager.enable = true;
services.syncthing.enable = true;
}

View file

@ -1,12 +0,0 @@
{ config, pkgs, ... }:
{
imports = [ ./gnome ./common-gui.nix ];
home.username = "dustin";
home.homeDirectory = "/home/dustin";
home.stateVersion = "23.11";
programs.home-manager.enable = true;
services.syncthing.enable = true;
}

View file

@ -1,23 +0,0 @@
{ config, pkgs, ... }:
{
programs.fuzzel = {
enable = true;
settings = {
main = {
font = "NotoSansM Nerd Font Regular";
icon-theme = "Papirus-Dark";
layer = "overlay";
terminal = "${pkgs.alacritty}/bin/alacritty -e";
};
border = { width = 2; };
colors = {
background = "#232634CC";
selection = "#232634FF";
selection-match = "#e78284FF";
selection-text = "#f4b8e4FF";
text = "#fafafaFF";
};
};
};
}

View file

@ -1,43 +0,0 @@
{ config, pkgs, ... }:
{
dconf.enable = true;
dconf.settings = {
"org/gnome/desktop/datetime".automatic-timezone = true;
"org/gnome/desktop/interface".clock-format = "12h";
"org/gnome/desktop/interface".enable-hot-corners = true;
"org/gnome/desktop/peripherals/touchpad".tap-to-click = true;
"org/gnome/desktop/search-providers".enabled =
"['org.gnome.Calendar.desktop', 'org.gnome.Weather.desktop', 'org.gnome.Contacts.desktop', 'org.gnome.Calculator.desktop', 'org.gnome.Characters.desktop', 'org.gnome.clocks.desktop']";
"org/gnome/desktop/wm/preferences".auto-raise = true;
"org/gnome/mutter".dynamic-workspaces = true;
"org/gnome/mutter".edge-tiling = true;
"org/gnome/mutter".workspaces-only-on-primary = true;
"org/gnome/shell/extensions/blur-my-shell/overview".style-components = 3;
"org/gnome/shell/extensions/blur-my-shell/panel".blur = false;
"org/gnome/shell/extensions/blur-my-shell/panel".customize = true;
"org/gnome/shell/extensions/blur-my-shell/panel".style-panel = 0;
"org/gnome/shell/extensions/blur-my-shell/panel".override-background =
false;
"org/gnome/shell/extensions/blur-my-shell/panel".override-background-dynamically =
false;
"org/gnome/shell/extensions/blur-my-shell/panel".unblur-in-overview = true;
"org/gnome/system/location".enabled = true;
"org/gtk/gtk4/settings/file-chooser".sort-directories-first = true;
"org/gtk/settings/file-chooser".sort-directories-first = true;
"org/gnome/shell".enabled-extensions = [
"appindicatorsupport@rgcjonas.gmail.com"
"blur-my-shell@aunetx"
"gsconnect@andyholmes.github.io"
"nightthemeswitcher@romainvigier.fr"
"noannoyance-fork@vrba.dev"
"tailscale-status@maxgallup.github.com"
"tiling-assistant@leleat-on-github"
"drive-menu@gnome-shell-extensions.gcampax.github.com"
];
"org/virt-manager/virt-manager/connections" = {
autoconnect = [ "qemu:///system" ];
uris = [ "qemu:///system" ];
};
};
}

View file

@ -1,96 +0,0 @@
{ config, pkgs, ... }:
{
# Packages that should be installed to the user profile.
home.packages = with pkgs; [
brightnessctl
evince
hyprcursor
hypridle
hyprland-protocols
hyprlock
hyprnome
hyprpaper
hyprshade
hyprshot
playerctl
pyprland
xdg-desktop-portal-hyprland
xfce.exo
xfce.ristretto
xfce.thunar
xfce.thunar-archive-plugin
xfce.thunar-media-tags-plugin
xfce.thunar-volman
xfce.tumbler
xfce.xfce4-settings
xfce.xfce4-taskmanager
xfce.xfconf
];
services.gpg-agent.enable = true;
wayland.windowManager.hyprland = {
enable = true;
extraConfig = builtins.readFile ./hyprland.conf;
};
xdg.configFile."hypr/hypridle.conf".source = ./hypridle.conf;
xdg.configFile."hypr/hyprlock.conf".source = ./hyprlock.conf;
xdg.configFile."hypr/hyprpaper.conf".source = ./hyprpaper.conf;
xdg.configFile."hypr/wallpapers/greenCity.jpg".source =
./wallpapers/greenCity.jpg;
xdg.configFile."hypr/wallpapers/jr-korpa-9XngoIpxcEo-unsplash.jpg".source =
./wallpapers/jr-korpa-9XngoIpxcEo-unsplash.jpg;
xdg.configFile."hypr/wallpapers/salty-justice-NOMebOREvtc-unsplash.jpg".source =
./wallpapers/salty-justice-NOMebOREvtc-unsplash.jpg;
xdg.configFile."hypr/shaders/blue-light-filter.glsl".source =
./blue-light-filter.glsl;
xdg.configFile."hypr/hyprshade.toml".source = ./hyprshade.toml;
xdg.configFile."hypr/pyprland.toml".source = ./pyprland.toml;
xdg.configFile."xfce4/helpers.rc".source = ../xfce/helpers.rc;
home.pointerCursor = {
gtk.enable = true;
# x11.enable = true;
package = pkgs.catppuccin-cursors.frappeDark;
name = "Catppuccin-Frappe-Dark-Cursors";
size = 24;
};
qt = {
enable = true;
platformTheme = "gtk";
style.name = "Catppuccin-Frappe-Compact-Mauve-Dark";
};
gtk = {
enable = true;
theme = {
package = pkgs.catppuccin-gtk.override {
accents = [ "mauve" ];
size = "compact";
variant = "frappe";
tweaks = [ "normal" ];
};
name = "Catppuccin-Frappe-Compact-Mauve-Dark";
};
iconTheme = {
package = pkgs.catppuccin-papirus-folders.override {
flavor = "frappe";
accent = "mauve";
};
name = "Papirus-Dark";
};
font = {
name = "NotoSans Nerd Font Regular";
size = 11;
};
};
}

View file

@ -1,3 +0,0 @@
[pyprland]
plugins = ["expose", "scratchpads"]

View file

@ -1,19 +0,0 @@
{ config, pkgs, ... }:
{
services.mako = {
enable = true;
anchor = "top-center";
backgroundColor = "#232634CC";
borderColor = "#ca9ee6";
borderRadius = 10;
defaultTimeout = 10000;
font = "NotoSans Nerd Font Regular 10";
height = 300;
layer = "top";
padding = "15";
textColor = "#FAFAFA";
width = 400;
margin = "20,0";
};
}

View file

@ -1,98 +0,0 @@
{ config, pkgs, ... }:
{
home.packages = with pkgs; [
# backblaze-b2
curl
gh
git
nixfmt
python3
ruby
wget
browsh
];
programs.bash = {
enable = true;
enableCompletion = true;
initExtra = ''
export PS1="[\[$(tput setaf 27)\]\u\[$(tput setaf 135)\]@\[$(tput setaf 45)\]\h:\[$(tput setaf 33)\]\w] \[$(tput sgr0)\]$ "
'';
};
programs.emacs = {
enable = true;
extraPackages = (epkgs:
(with epkgs; [
better-defaults
catppuccin-theme
markdown-mode
nix-mode
org
org-bullets
org-journal
org-roam
ox-pandoc
projectile
python
treemacs
treemacs-projectile
treemacs-tab-bar
use-package
yaml
yaml-mode
]));
package = pkgs.emacs-nox;
extraConfig = builtins.readFile ./emacs.el;
};
programs.eza = {
enable = true;
git = true;
icons = true;
extraOptions = [ "--group-directories-first" "--header" ];
};
programs.fzf = {
enable = true;
tmux.enableShellIntegration = true;
};
programs.neovim = {
enable = true;
viAlias = true;
vimAlias = true;
defaultEditor = true;
};
programs.nnn.enable = true;
programs.rbw.enable = true;
programs.tmux = {
enable = true;
mouse = true;
newSession = true;
plugins = with pkgs; [
tmuxPlugins.weather
tmuxPlugins.better-mouse-mode
tmuxPlugins.cpu
tmuxPlugins.battery
tmuxPlugins.resurrect
];
terminal = "tmux-256color";
extraConfig = ''
set-option -g status-bg plum4
set-option -g pane-active-border-style fg=plum4
set-option -g @tmux-weather-format "%x+%t"
set-option -g @tmux-weather-units "u"
set -g status-right '#{cpu_percentage} CPU | #{battery_percentage} BAT | %I:%M %p | #{weather}'
run-shell ${pkgs.tmuxPlugins.weather}/share/tmux-plugins/weather/tmux-weather.tmux
run-shell ${pkgs.tmuxPlugins.cpu}/share/tmux-plugins/cpu/cpu.tmux
run-shell ${pkgs.tmuxPlugins.battery}/share/tmux-plugins/battery/battery.tmux
run-shell ${pkgs.tmuxPlugins.battery}/share/tmux-plugins/resurrect/resurrect.tmux
'';
};
}

View file

@ -1,97 +0,0 @@
{ config, pkgs, ... }:
{
# Packages that should be installed to the user profile.
home.packages = with pkgs; [ blueberry pavucontrol ];
xdg.configFile."waybar/style.css".source = ./waybar.css;
programs.waybar.enable = true;
programs.waybar.settings = {
mainBar = {
height = 36;
layer = "top";
output = [ "*" ];
position = "top";
reload_style_on_change = true;
modules-left = [ "hyprland/workspaces" "hyprland/submap" ];
modules-center = [ "hyprland/window" ];
modules-right = [
"tray"
"bluetooth"
"network"
"pulseaudio"
"battery"
"power-profiles-daemon"
"clock"
];
"hyprland/workspaces" = {
"all-outputs" = true;
"format" = "󰧞";
};
"hyprland/window" = { "max-length" = 100; };
"clock" = {
"tooltip-format" = "{:%Y-%m-%d | %H:%M}";
"interval" = 60;
"format" = "{:%I:%M%p}";
};
"battery" = {
"states" = { "critical" = 20; };
"format" = "{icon}";
"format-icons" = [ "󰁺" "󰁼" "󰁿" "󰂁" "󰁹" ];
"tooltip-format" = ''
{capacity}%: {timeTo}.
Using {power} watts.'';
};
"bluetooth" = {
"format" = "󰂯 {status}";
"format-disabled" = ""; # an empty format will hide the module
"format-connected" = "󰂯 {num_connections} connected";
"tooltip-format" = "{controller_alias} {controller_address}";
"tooltip-format-connected" = ''
{controller_alias} {controller_address}
{device_enumerate}'';
"tooltip-format-enumerate-connected" =
"{device_alias} {device_address}";
"on-click" = "blueberry";
};
"pulseaudio" = {
"format" = " {volume}%";
"format-bluetooth" = "{volume}% {icon}󰂯";
"format-muted" = "";
"format-icons" = {
"headphones" = "󰋋";
"handsfree" = "󰋎";
"headset" = "󰋎";
};
"on-click" = "pavucontrol -t 3";
};
"network" = {
"format-wifi" = "󰣾 {signalStrength}%";
"format-ethernet" = "󰈀";
"format-disconnected" = "";
"tooltip-format" = "{ifname} via {gwaddr} 󰊗";
"tooltip-format-wifi" = "{essid} ({signalStrength}%) 󰣾";
"tooltip-format-ethernet" = "{ifname} ";
"tooltip-format-disconnected" = "Disconnected";
"on-click" = "alacritty --class nmtui -e nmtui";
};
"tray" = { "spacing" = 10; };
"power-profiles-daemon" = {
"format" = "{icon}";
"tooltip-format" = ''
Profile: {profile}
Driver: {driver}'';
"tooltip" = true;
"format-icons" = {
"default" = "󱐌";
"performance" = "󱐌";
"balanced" = "󰗑";
"power-saver" = "󰌪";
};
};
};
};
}

View file

@ -1,4 +0,0 @@
TerminalEmulator=alacritty
FileManager=thunar
WebBrowser=firefox

View file

@ -0,0 +1,14 @@
{ pkgs, lib, config, ... }: {
options = { cliApps.bash.enable = lib.mkEnableOption "Enables bash."; };
config = lib.mkIf config.cliApps.bash.enable {
programs.bash = {
enable = true;
enableCompletion = true;
initExtra = ''
export PS1="[\[$(tput setaf 27)\]\u\[$(tput setaf 135)\]@\[$(tput setaf 45)\]\h:\[$(tput setaf 33)\]\w] \[$(tput sgr0)\]$ "
'';
};
};
}

View file

@ -0,0 +1,28 @@
{ config, lib, pkgs, ... }:
{
imports = [ ./bash ./emacs ./eza ./fzf ./neovim ./tmux ];
home.packages = with pkgs; [
# backblaze-b2
browsh
curl
gh
git
nixfmt
python3
ruby
wget
];
programs.nnn.enable = lib.mkDefault true;
programs.rbw.enable = lib.mkDefault true;
cliApps.bash.enable = lib.mkDefault true;
cliApps.emacs.enable = lib.mkDefault true;
cliApps.eza.enable = lib.mkDefault true;
cliApps.fzf.enable = lib.mkDefault true;
cliApps.neovim.enable = lib.mkDefault true;
cliApps.tmux.enable = lib.mkDefault true;
}

View file

@ -0,0 +1,34 @@
{ pkgs, lib, config, ... }: {
options = { cliApps.emacs.enable = lib.mkEnableOption "Enables emacs."; };
config = lib.mkIf config.cliApps.emacs.enable {
home.packages = with pkgs; [ nixfmt python3 ];
programs.emacs = {
enable = true;
extraPackages = (epkgs:
(with epkgs; [
better-defaults
catppuccin-theme
markdown-mode
nix-mode
org
org-bullets
org-journal
org-roam
ox-pandoc
projectile
python
treemacs
treemacs-projectile
treemacs-tab-bar
use-package
yaml
yaml-mode
]));
package = pkgs.emacs-nox;
extraConfig = builtins.readFile ./emacs.el;
};
};
}

View file

@ -0,0 +1,13 @@
{ pkgs, lib, config, ... }: {
options = { cliApps.eza.enable = lib.mkEnableOption "Enables eza."; };
config = lib.mkIf config.cliApps.eza.enable {
programs.eza = {
enable = true;
git = true;
icons = true;
extraOptions = [ "--group-directories-first" "--header" ];
};
};
}

View file

@ -0,0 +1,11 @@
{ pkgs, lib, config, ... }: {
options = { cliApps.fzf.enable = lib.mkEnableOption "Enables fzf."; };
config = lib.mkIf config.cliApps.fzf.enable {
programs.fzf = {
enable = true;
tmux.enableShellIntegration = true;
};
};
}

View file

@ -0,0 +1,13 @@
{ pkgs, lib, config, ... }: {
options = { cliApps.neovim.enable = lib.mkEnableOption "Enables neovim."; };
config = lib.mkIf config.cliApps.neovim.enable {
programs.neovim = {
enable = true;
viAlias = true;
vimAlias = true;
defaultEditor = true;
};
};
}

View file

@ -0,0 +1,31 @@
{ pkgs, lib, config, ... }: {
options = { cliApps.tmux.enable = lib.mkEnableOption "Enables tmux."; };
config = lib.mkIf config.cliApps.tmux.enable {
programs.tmux = {
enable = true;
mouse = true;
newSession = true;
plugins = with pkgs; [
tmuxPlugins.battery
tmuxPlugins.better-mouse-mode
tmuxPlugins.cpu
tmuxPlugins.resurrect
tmuxPlugins.weather
];
terminal = "tmux-256color";
extraConfig = ''
set-option -g status-bg plum4
set-option -g pane-active-border-style fg=plum4
set-option -g @tmux-weather-format "%x+%t"
set-option -g @tmux-weather-units "u"
set -g status-right '#{cpu_percentage} CPU | #{battery_percentage} BAT | %I:%M %p | #{weather}'
run-shell ${pkgs.tmuxPlugins.battery}/share/tmux-plugins/battery/battery.tmux
run-shell ${pkgs.tmuxPlugins.resurrect}/share/tmux-plugins/resurrect/resurrect.tmux
run-shell ${pkgs.tmuxPlugins.cpu}/share/tmux-plugins/cpu/cpu.tmux
run-shell ${pkgs.tmuxPlugins.weather}/share/tmux-plugins/weather/tmux-weather.tmux
'';
};
};
}

View file

@ -0,0 +1,5 @@
{ config, pkgs, ... }:
{
imports = [ ./cliApps ./guiApps ./desktopEnv ./userServices ];
}

View file

@ -0,0 +1,7 @@
{ config, lib, pkgs, ... }:
{
imports = [ ./gnome ./hypr ];
desktopEnv.hyprland.enable = lib.mkDefault true;
}

View file

@ -0,0 +1,50 @@
{ pkgs, lib, config, ... }: {
options = {
desktopEnv.gnome.enable =
lib.mkEnableOption "Enables GNOME with basic settings configuration.";
};
config = lib.mkIf config.desktopEnv.gnome.enable {
dconf.enable = true;
dconf.settings = {
"org/gnome/desktop/datetime".automatic-timezone = true;
"org/gnome/desktop/interface".clock-format = "12h";
"org/gnome/desktop/interface".enable-hot-corners = true;
"org/gnome/desktop/peripherals/touchpad".tap-to-click = true;
"org/gnome/desktop/search-providers".enabled =
"['org.gnome.Calendar.desktop', 'org.gnome.Weather.desktop', 'org.gnome.Contacts.desktop', 'org.gnome.Calculator.desktop', 'org.gnome.Characters.desktop', 'org.gnome.clocks.desktop']";
"org/gnome/desktop/wm/preferences".auto-raise = true;
"org/gnome/mutter".dynamic-workspaces = true;
"org/gnome/mutter".edge-tiling = true;
"org/gnome/mutter".workspaces-only-on-primary = true;
"org/gnome/shell/extensions/blur-my-shell/overview".style-components = 3;
"org/gnome/shell/extensions/blur-my-shell/panel".blur = false;
"org/gnome/shell/extensions/blur-my-shell/panel".customize = true;
"org/gnome/shell/extensions/blur-my-shell/panel".style-panel = 0;
"org/gnome/shell/extensions/blur-my-shell/panel".override-background =
false;
"org/gnome/shell/extensions/blur-my-shell/panel".override-background-dynamically =
false;
"org/gnome/shell/extensions/blur-my-shell/panel".unblur-in-overview =
true;
"org/gnome/system/location".enabled = true;
"org/gtk/gtk4/settings/file-chooser".sort-directories-first = true;
"org/gtk/settings/file-chooser".sort-directories-first = true;
"org/gnome/shell".enabled-extensions = [
"appindicatorsupport@rgcjonas.gmail.com"
"blur-my-shell@aunetx"
"gsconnect@andyholmes.github.io"
"nightthemeswitcher@romainvigier.fr"
"noannoyance-fork@vrba.dev"
"tailscale-status@maxgallup.github.com"
"tiling-assistant@leleat-on-github"
"drive-menu@gnome-shell-extensions.gcampax.github.com"
];
"org/virt-manager/virt-manager/connections" = {
autoconnect = [ "qemu:///system" ];
uris = [ "qemu:///system" ];
};
};
};
}

View file

@ -0,0 +1,111 @@
{ pkgs, lib, config, ... }: {
options = {
desktopEnv.hyprland.enable =
lib.mkEnableOption "Enables hyprland with extra apps.";
};
config = lib.mkIf config.desktopEnv.hyprland.enable {
# Basic apps needed to run a hyprland desktop.
guiApps.waybar.enable = lib.mkDefault true;
guiApps.mako.enable = lib.mkDefault true;
guiApps.fuzzel.enable = lib.mkDefault true;
guiApps.alacritty.enable = lib.mkDefault true;
# Packages that should be installed to the user profile.
home.packages = with pkgs; [
brightnessctl
evince
hyprcursor
hypridle
hyprland-protocols
hyprlock
hyprnome
hyprpaper
hyprshade
hyprshot
playerctl
pyprland
xdg-desktop-portal-hyprland
xfce.exo
xfce.ristretto
xfce.thunar
xfce.thunar-archive-plugin
xfce.thunar-media-tags-plugin
xfce.thunar-volman
xfce.tumbler
xfce.xfce4-settings
xfce.xfce4-taskmanager
xfce.xfconf
];
services.gpg-agent.enable = true;
wayland.windowManager.hyprland = {
enable = true;
extraConfig = builtins.readFile ./hyprland.conf;
};
xdg.configFile."hypr/hypridle.conf".source = ./hypridle.conf;
xdg.configFile."hypr/hyprlock.conf".source = ./hyprlock.conf;
xdg.configFile."hypr/hyprpaper.conf".source = ./hyprpaper.conf;
xdg.configFile."hypr/wallpapers/greenCity.jpg".source =
./wallpapers/greenCity.jpg;
xdg.configFile."hypr/wallpapers/jr-korpa-9XngoIpxcEo-unsplash.jpg".source =
./wallpapers/jr-korpa-9XngoIpxcEo-unsplash.jpg;
xdg.configFile."hypr/wallpapers/salty-justice-NOMebOREvtc-unsplash.jpg".source =
./wallpapers/salty-justice-NOMebOREvtc-unsplash.jpg;
xdg.configFile."hypr/shaders/blue-light-filter.glsl".source =
./blue-light-filter.glsl;
xdg.configFile."hypr/hyprshade.toml".source = ./hyprshade.toml;
xdg.configFile."xfce4/helpers.rc".text = ''
TerminalEmulator=alacritty
FileManager=thunar
WebBrowser=firefox
'';
home.pointerCursor = {
gtk.enable = true;
# x11.enable = true;
package = pkgs.catppuccin-cursors.frappeDark;
name = "Catppuccin-Frappe-Dark-Cursors";
size = 24;
};
qt = {
enable = true;
platformTheme = "gtk";
style.name = "Catppuccin-Frappe-Compact-Mauve-Dark";
};
gtk = {
enable = true;
theme = {
package = pkgs.catppuccin-gtk.override {
accents = [ "mauve" ];
size = "compact";
variant = "frappe";
tweaks = [ "normal" ];
};
name = "Catppuccin-Frappe-Compact-Mauve-Dark";
};
iconTheme = {
package = pkgs.catppuccin-papirus-folders.override {
flavor = "frappe";
accent = "mauve";
};
name = "Papirus-Dark";
};
font = {
name = "NotoSans Nerd Font Regular";
size = 11;
};
};
};
}

View file

Before

Width:  |  Height:  |  Size: 4.1 MiB

After

Width:  |  Height:  |  Size: 4.1 MiB

View file

Before

Width:  |  Height:  |  Size: 2.7 MiB

After

Width:  |  Height:  |  Size: 2.7 MiB

View file

@ -0,0 +1,36 @@
{ pkgs, lib, config, ... }: {
options = {
guiApps.alacritty.enable = lib.mkEnableOption "Enables alacritty.";
};
config = lib.mkIf config.guiApps.alacritty.enable {
programs.alacritty = {
enable = true;
settings = {
colors = {
primary = {
foreground = "#fafafa";
background = "#232634";
};
draw_bold_text_with_bright_colors = true;
};
font = {
normal = {
family = "NotoSansM Nerd Font";
style = "Regular";
};
size = 10;
};
selection.save_to_clipboard = true;
window = {
blur = true;
# decorations = "None";
dynamic_padding = true;
opacity = 0.8;
};
};
};
};
}

View file

@ -0,0 +1,8 @@
{ config, lib, pkgs, ... }:
{
imports = [ ./alacritty ./fuzzel ./librewolf ./mako ./waybar ];
guiApps.librewolf.enable = lib.mkDefault true;
guiApps.alacritty.enable = lib.mkDefault true;
}

View file

@ -0,0 +1,26 @@
{ pkgs, lib, config, ... }: {
options = { guiApps.fuzzel.enable = lib.mkEnableOption "Enables fuzzel."; };
config = lib.mkIf config.guiApps.fuzzel.enable {
programs.fuzzel = {
enable = true;
settings = {
main = {
font = "NotoSansM Nerd Font Regular";
icon-theme = "Papirus-Dark";
layer = "overlay";
terminal = "${pkgs.alacritty}/bin/alacritty -e";
};
border = { width = 2; };
colors = {
background = "#232634CC";
selection = "#232634FF";
selection-match = "#e78284FF";
selection-text = "#f4b8e4FF";
text = "#fafafaFF";
};
};
};
};
}

View file

@ -0,0 +1,37 @@
{ pkgs, lib, config, ... }: {
options = {
guiApps.librewolf.enable = lib.mkEnableOption "Enables librewolf.";
};
config = lib.mkIf config.guiApps.librewolf.enable {
programs.librewolf = {
enable = true;
settings = {
"browser.safebrowsing.malware.enabled" = true;
"browser.safebrowsing.phishing.enabled" = true;
"browser.safebrowsing.blockedURIs.enabled" = true;
"browser.safebrowsing.provider.google4.gethashURL" =
"https://safebrowsing.googleapis.com/v4/fullHashes:find?$ct=application/x-protobuf&key=%GOOGLE_SAFEBROWSING_API_KEY%&$httpMethod=POST";
"browser.safebrowsing.provider.google4.updateURL" =
"https://safebrowsing.googleapis.com/v4/threatListUpdates:fetch?$ct=application/x-protobuf&key=%GOOGLE_SAFEBROWSING_API_KEY%&$httpMethod=POST";
"browser.safebrowsing.provider.google.gethashURL" =
"https://safebrowsing.google.com/safebrowsing/gethash?client=SAFEBROWSING_ID&appver=%MAJOR_VERSION%&pver=2.2";
"browser.safebrowsing.provider.google.updateURL" =
"https://safebrowsing.google.com/safebrowsing/downloads?client=SAFEBROWSING_ID&appver=%MAJOR_VERSION%&pver=2.2&key=%GOOGLE_SAFEBROWSING_API_KEY%";
"browser.safebrowsing.downloads.enabled" = true;
"identity.fxaccounts.enabled" = true;
"privacy.clearOnShutdown.history" = false;
"middlemouse.paste" = false;
"general.autoScroll" = true;
};
};
};
}

View file

@ -0,0 +1,22 @@
{ pkgs, lib, config, ... }: {
options = { guiApps.mako.enable = lib.mkEnableOption "Enables mako."; };
config = lib.mkIf config.guiApps.mako.enable {
services.mako = {
enable = true;
anchor = "top-center";
backgroundColor = "#232634CC";
borderColor = "#ca9ee6";
borderRadius = 10;
defaultTimeout = 10000;
font = "NotoSans Nerd Font Regular 10";
height = 300;
layer = "top";
padding = "15";
textColor = "#FAFAFA";
width = 400;
margin = "20,0";
};
};
}

View file

@ -0,0 +1,100 @@
{ pkgs, lib, config, ... }: {
options = { guiApps.waybar.enable = lib.mkEnableOption "Enables waybar."; };
config = lib.mkIf config.guiApps.waybar.enable {
# Packages that should be installed to the user profile.
home.packages = with pkgs; [ blueberry pavucontrol ];
xdg.configFile."waybar/style.css".source = ./waybar.css;
programs.waybar.enable = true;
programs.waybar.settings = {
mainBar = {
height = 36;
layer = "top";
output = [ "*" ];
position = "top";
reload_style_on_change = true;
modules-left = [ "hyprland/workspaces" "hyprland/submap" ];
modules-center = [ "hyprland/window" ];
modules-right = [
"tray"
"bluetooth"
"network"
"pulseaudio"
"battery"
"power-profiles-daemon"
"clock"
];
"hyprland/workspaces" = {
"all-outputs" = true;
"format" = "󰧞";
};
"hyprland/window" = { "max-length" = 100; };
"clock" = {
"tooltip-format" = "{:%Y-%m-%d | %H:%M}";
"interval" = 60;
"format" = "{:%I:%M%p}";
};
"battery" = {
"states" = { "critical" = 20; };
"format" = "{icon}";
"format-icons" = [ "󰁺" "󰁼" "󰁿" "󰂁" "󰁹" ];
"tooltip-format" = ''
{capacity}%: {timeTo}.
Using {power} watts.'';
};
"bluetooth" = {
"format" = "󰂯 {status}";
"format-disabled" = ""; # an empty format will hide the module
"format-connected" = "󰂯 {num_connections} connected";
"tooltip-format" = "{controller_alias} {controller_address}";
"tooltip-format-connected" = ''
{controller_alias} {controller_address}
{device_enumerate}'';
"tooltip-format-enumerate-connected" =
"{device_alias} {device_address}";
"on-click" = "blueberry";
};
"pulseaudio" = {
"format" = " {volume}%";
"format-bluetooth" = "{volume}% {icon}󰂯";
"format-muted" = "";
"format-icons" = {
"headphones" = "󰋋";
"handsfree" = "󰋎";
"headset" = "󰋎";
};
"on-click" = "pavucontrol -t 3";
};
"network" = {
"format-wifi" = "󰣾 {signalStrength}%";
"format-ethernet" = "󰈀";
"format-disconnected" = "";
"tooltip-format" = "{ifname} via {gwaddr} 󰊗";
"tooltip-format-wifi" = "{essid} ({signalStrength}%) 󰣾";
"tooltip-format-ethernet" = "{ifname} ";
"tooltip-format-disconnected" = "Disconnected";
"on-click" = "alacritty --class nmtui -e nmtui";
};
"tray" = { "spacing" = 10; };
"power-profiles-daemon" = {
"format" = "{icon}";
"tooltip-format" = ''
Profile: {profile}
Driver: {driver}'';
"tooltip" = true;
"format-icons" = {
"default" = "󱐌";
"performance" = "󱐌";
"balanced" = "󰗑";
"power-saver" = "󰌪";
};
};
};
};
};
}

View file

@ -0,0 +1,7 @@
{ config, lib, pkgs, ... }:
{
imports = [ ./syncthing ];
userServices.syncthing.enable = lib.mkDefault true;
}

View file

@ -0,0 +1,11 @@
{ pkgs, lib, config, ... }: {
options = {
userServices.syncthing.enable =
lib.mkEnableOption "Enables syncthing as user.";
};
config = lib.mkIf config.userServices.syncthing.enable {
services.syncthing.enable = true;
};
}

View file

@ -1,10 +1,11 @@
# Framework Laptop 13 with AMD Ryzen 7640U, 32GB RAM, 1TB SSD.
{ config, pkgs, lib, ... }:
{ inputs, config, pkgs, lib, ... }:
{
imports = [
./hardware-configuration.nix # Include the results of the hardware scan.
./home.nix
];
boot = {
@ -24,8 +25,6 @@
mesonCheckFlags = [ "--no-suite" "fprintd:TestPamFprintd" ];
};
home-manager.users.aly = import ../../home/aly-hyprland.nix;
desktopConfig = {
enable = true;
windowManagers.hyprland.enable = true;

14
hosts/lavaridge/home.nix Normal file
View file

@ -0,0 +1,14 @@
{ inputs, config, pkgs, lib, ... }:
{
home-manager.users.aly = {
imports = [ ../../homeManagerModules ];
home.username = "aly";
home.homeDirectory = "/home/aly";
home.stateVersion = "23.11";
programs.home-manager.enable = true;
desktopEnv.hyprland.enable = true;
};
}

View file

@ -3,9 +3,7 @@
{ config, pkgs, lib, ... }:
{
imports = [
./hardware-configuration.nix
];
imports = [ ./hardware-configuration.nix ./home.nix ];
# Bootloader.
boot.loader.systemd-boot.enable = true;
@ -28,8 +26,6 @@
extraPackages32 = with pkgs; [ driversi686Linux.amdvlk ];
};
home-manager.users.aly = import ../../home/aly-hyprland.nix;
homeLab.enable = true;
desktopConfig.enable = true;

14
hosts/mauville/home.nix Normal file
View file

@ -0,0 +1,14 @@
{ inputs, config, pkgs, lib, ... }:
{
home-manager.users.aly = {
imports = [ ../../homeManagerModules ];
home.username = "aly";
home.homeDirectory = "/home/aly";
home.stateVersion = "23.11";
programs.home-manager.enable = true;
desktopEnv.hyprland.enable = true;
};
}

View file

@ -54,6 +54,7 @@ let
in {
imports = [
./hardware-configuration.nix # Include the results of the hardware scan.
./home.nix
];
boot = {
@ -72,13 +73,8 @@ in {
powerManagement.powertop.enable = true;
services.thermald.enable = true;
home-manager.users.aly = import ../../home/aly-gnome.nix;
home-manager.users.dustin = import ../../home/dustin-gnome.nix;
environment.systemPackages = [ cs-adjuster cs-adjuster-plasma pp-adjuster ];
userConfig.dustin.enable = true;
desktopConfig = {
enable = true;
windowManagers.hyprland.enable = false;

27
hosts/petalburg/home.nix Normal file
View file

@ -0,0 +1,27 @@
{ inputs, config, pkgs, lib, ... }:
{
home-manager.users.aly = {
imports = [ ../../homeManagerModules ];
home.username = "aly";
home.homeDirectory = "/home/aly";
home.stateVersion = "23.11";
programs.home-manager.enable = true;
desktopEnv.hyprland.enable = true;
};
userConfig.dustin.enable = true;
home-manager.users.dustin = {
imports = [ ../../homeManagerModules ];
home.username = "dustin";
home.homeDirectory = "/home/dustin";
home.stateVersion = "23.11";
programs.home-manager.enable = true;
desktopEnv.hyprland.enable = false;
desktopEnv.gnome.enable = true;
};
}

View file

@ -5,6 +5,7 @@
{
imports = [
./hardware-configuration.nix # Include the results of the hardware scan.
./home.nix
];
# Bootloader.
@ -16,8 +17,6 @@
powerManagement.cpuFreqGovernor = "ondemand";
home-manager.users.aly = import ../../home/aly-hyprland.nix;
desktopConfig = {
enable = true;
windowManagers.hyprland.enable = true;

14
hosts/rustboro/home.nix Normal file
View file

@ -0,0 +1,14 @@
{ inputs, config, pkgs, lib, ... }:
{
home-manager.users.aly = {
imports = [ ../../homeManagerModules ];
home.username = "aly";
home.homeDirectory = "/home/aly";
home.stateVersion = "23.11";
programs.home-manager.enable = true;
desktopEnv.hyprland.enable = true;
};
}

View file

@ -82,9 +82,4 @@
];
};
};
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
};
}

View file

@ -1,4 +1,4 @@
{ pkgs, lib, config, ... }: {
{ inputs, pkgs, lib, config, ... }: {
options = {
userConfig.aly.enable = lib.mkEnableOption "Enables Aly's user.";

View file

@ -3,4 +3,9 @@
imports = [ ./aly ./dustin ];
userConfig.aly.enable = lib.mkDefault true;
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
};
}