refactor: moved home config to more logical folder structure
This commit is contained in:
parent
f201190ef1
commit
ecaa2c0dc4
29 changed files with 165 additions and 171 deletions
|
@ -26,7 +26,7 @@
|
|||
extraSpecialArgs = args;
|
||||
# Add the users
|
||||
users.rafiq.imports = [
|
||||
./users/rafiq
|
||||
./users/rafiq.nix
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
10
users/modules/de.nix
Normal file
10
users/modules/de.nix
Normal file
|
@ -0,0 +1,10 @@
|
|||
# Default graphical programs and personalisation
|
||||
{
|
||||
imports = [
|
||||
./programs/firefox.nix
|
||||
./programs/font-terminess.nix
|
||||
./programs/kitty.nix
|
||||
./programs/hyprland.nix
|
||||
./programs/waybar.nix
|
||||
];
|
||||
}
|
10
users/modules/programs/bash.nix
Normal file
10
users/modules/programs/bash.nix
Normal file
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
programs.bash = {
|
||||
enable = true;
|
||||
shellAliases = {
|
||||
rebuild = "sudo nixos-rebuild switch --flake";
|
||||
gs = "git status";
|
||||
ai = "aichat -r %shell% -e";
|
||||
};
|
||||
};
|
||||
}
|
9
users/modules/programs/direnv.nix
Normal file
9
users/modules/programs/direnv.nix
Normal file
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
# direnv lets us declare a .envrc in each project directory
|
||||
# and updates the shell with the packages specified.
|
||||
programs.direnv = {
|
||||
enable = true;
|
||||
enableBashIntegration = true;
|
||||
nix-direnv.enable = true;
|
||||
};
|
||||
}
|
5
users/modules/programs/firefox.nix
Normal file
5
users/modules/programs/firefox.nix
Normal file
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
programs.firefox = {
|
||||
enable = true;
|
||||
};
|
||||
}
|
7
users/modules/programs/fzf.nix
Normal file
7
users/modules/programs/fzf.nix
Normal file
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
programs.fzf = {
|
||||
enable = true;
|
||||
enableBashIntegration = true;
|
||||
tmux.enableShellIntegration = true;
|
||||
};
|
||||
}
|
|
@ -80,14 +80,4 @@
|
|||
};
|
||||
};
|
||||
};
|
||||
programs.waybar = {
|
||||
enable = true;
|
||||
settings = {
|
||||
mainBar = {
|
||||
layer = "top";
|
||||
};
|
||||
};
|
||||
style = ''
|
||||
'';
|
||||
};
|
||||
}
|
14
users/modules/programs/nvim.nix
Normal file
14
users/modules/programs/nvim.nix
Normal file
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
programs.neovim = {
|
||||
enable = true;
|
||||
defaultEditor = true;
|
||||
viAlias = true;
|
||||
vimAlias = true;
|
||||
vimdiffAlias = true;
|
||||
extraLuaConfig = ''
|
||||
vim.opt.shiftwidth = 2;
|
||||
vim.opt.number = true;
|
||||
vim.opt.relativenumber = true;
|
||||
'';
|
||||
};
|
||||
}
|
9
users/modules/programs/starship.nix
Normal file
9
users/modules/programs/starship.nix
Normal file
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
# starship is a customisable prompt for any shell
|
||||
programs.starship = {
|
||||
enable = true;
|
||||
enableBashIntegration = true;
|
||||
settings = {
|
||||
};
|
||||
};
|
||||
}
|
7
users/modules/programs/tealdeer.nix
Normal file
7
users/modules/programs/tealdeer.nix
Normal file
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
# man page summaries (activate with tldr <command>)
|
||||
programs.tealdeer = {
|
||||
enable = true;
|
||||
enableAutoUpdates = true;
|
||||
};
|
||||
}
|
27
users/modules/programs/tmux.nix
Normal file
27
users/modules/programs/tmux.nix
Normal file
|
@ -0,0 +1,27 @@
|
|||
{ pkgs, ... }: {
|
||||
# Terminal Multiplexing
|
||||
programs.tmux = {
|
||||
enable = true;
|
||||
plugins = with pkgs.tmuxPlugins; [
|
||||
catppuccin
|
||||
|
||||
# Session Management between Reboots
|
||||
{
|
||||
plugin = resurrect;
|
||||
extraConfig = ''
|
||||
set -g @resurrect-strategy-nvim 'session'
|
||||
'';
|
||||
}
|
||||
{
|
||||
plugin = continuum;
|
||||
extraConfig = ''
|
||||
set -g @continuum-restore 'on'
|
||||
'';
|
||||
}
|
||||
];
|
||||
extraConfig = ''
|
||||
set -g default-terminal "tmux-256color"
|
||||
set -ag terminal-overrides ",xterm-256color:RGB"
|
||||
'';
|
||||
};
|
||||
}
|
12
users/modules/programs/waybar.nix
Normal file
12
users/modules/programs/waybar.nix
Normal file
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
programs.waybar = {
|
||||
enable = true;
|
||||
settings = {
|
||||
mainBar = {
|
||||
layer = "top";
|
||||
};
|
||||
};
|
||||
style = ''
|
||||
'';
|
||||
};
|
||||
}
|
6
users/modules/programs/yazi.nix
Normal file
6
users/modules/programs/yazi.nix
Normal file
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
programs.yazi = {
|
||||
enable = true;
|
||||
enableBashIntegration = true;
|
||||
};
|
||||
}
|
15
users/modules/sh.nix
Normal file
15
users/modules/sh.nix
Normal file
|
@ -0,0 +1,15 @@
|
|||
# Default shell utilities and programs
|
||||
{
|
||||
imports = [
|
||||
./programs/bash.nix
|
||||
./programs/direnv.nix
|
||||
./programs/fzf.nix
|
||||
./programs/git.nix
|
||||
./programs/nvim.nix
|
||||
./programs/starship.nix
|
||||
./programs/tealdeer.nix
|
||||
./programs/tmux.nix
|
||||
./programs/yazi.nix
|
||||
./scripts
|
||||
];
|
||||
}
|
13
users/modules/utils.nix
Normal file
13
users/modules/utils.nix
Normal file
|
@ -0,0 +1,13 @@
|
|||
{pkgs, ...}: {
|
||||
|
||||
home.packages = with pkgs; [
|
||||
fastfetch # system info
|
||||
wl-clipboard # provides cli copy and paste commands
|
||||
aichat # duh
|
||||
];
|
||||
|
||||
services = {
|
||||
# clipboard history (depends on wl-clipboard)
|
||||
cliphist.enable = true;
|
||||
};
|
||||
}
|
20
users/rafiq.nix
Normal file
20
users/rafiq.nix
Normal file
|
@ -0,0 +1,20 @@
|
|||
{ pkgs, ... }: {
|
||||
imports = [
|
||||
./modules/sh.nix
|
||||
./modules/de.nix
|
||||
./modules/utils.nix
|
||||
];
|
||||
|
||||
# This enables using home-manager from the command line.
|
||||
programs.home-manager.enable = true;
|
||||
|
||||
home = {
|
||||
username = "rafiq";
|
||||
homeDirectory = "/home/rafiq";
|
||||
|
||||
# This defines the version home-manager
|
||||
# was originally bulit against on this system.
|
||||
# Do not change it.
|
||||
stateVersion = "25.05";
|
||||
};
|
||||
}
|
|
@ -1,3 +0,0 @@
|
|||
vim.opt.shiftwidth = 2;
|
||||
vim.opt.number = true;
|
||||
vim.opt.relativenumber = true;
|
|
@ -1,26 +0,0 @@
|
|||
{ pkgs, ... }: {
|
||||
imports = [
|
||||
./modules/git.nix # git specific configs
|
||||
./modules/sh.nix # bash and other shell specific configs
|
||||
./modules/nvim.nix # nvim specific configs
|
||||
./modules/terminal.nix # terminal emulator configs
|
||||
./modules/firefox.nix # firefox configs
|
||||
./modules/hyprland.nix # hyprland settings
|
||||
./modules/fonts.nix # font settings
|
||||
./modules/utils.nix # miscellaneous utilities
|
||||
./scripts
|
||||
];
|
||||
|
||||
# This enables using home-manager from the command line.
|
||||
programs.home-manager.enable = true;
|
||||
|
||||
home = {
|
||||
username = "rafiq";
|
||||
homeDirectory = "/home/rafiq";
|
||||
|
||||
# This defines the version home-manager
|
||||
# was originally bulit against on this system.
|
||||
# Do not change it.
|
||||
stateVersion = "25.05";
|
||||
};
|
||||
}
|
|
@ -1,7 +0,0 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
firefox
|
||||
];
|
||||
}
|
|
@ -1,12 +0,0 @@
|
|||
{ config, lib, ... }: let
|
||||
nvimPath = "${config.home.homeDirectory}/repos/dotfiles/users/rafiq/.config/nvim";
|
||||
in {
|
||||
programs.neovim = {
|
||||
enable = true;
|
||||
defaultEditor = true;
|
||||
viAlias = true;
|
||||
vimAlias = true;
|
||||
vimdiffAlias = true;
|
||||
};
|
||||
xdg.configFile."nvim".source = config.lib.file.mkOutOfStoreSymlink nvimPath;
|
||||
}
|
|
@ -1,54 +0,0 @@
|
|||
{pkgs, ...}: {
|
||||
programs = {
|
||||
bash = {
|
||||
enable = true;
|
||||
shellAliases = {
|
||||
rebuild = "sudo nixos-rebuild switch --flake";
|
||||
gs = "git status";
|
||||
ai = "aichat -r %shell% -e";
|
||||
};
|
||||
};
|
||||
|
||||
# direnv lets us declare a .envrc in each project directory
|
||||
# and updates the shell with the packages specified.
|
||||
direnv = {
|
||||
enable = true;
|
||||
enableBashIntegration = true;
|
||||
nix-direnv.enable = true;
|
||||
};
|
||||
|
||||
# starship is a customisable prompt for any shell
|
||||
starship = {
|
||||
enable = true;
|
||||
enableBashIntegration = true;
|
||||
settings = {
|
||||
};
|
||||
};
|
||||
|
||||
# Terminal Multiplexing
|
||||
tmux = {
|
||||
enable = true;
|
||||
plugins = with pkgs.tmuxPlugins; [
|
||||
catppuccin
|
||||
|
||||
# Session Management between Reboots
|
||||
{
|
||||
plugin = resurrect;
|
||||
extraConfig = ''
|
||||
set -g @resurrect-strategy-nvim 'session'
|
||||
'';
|
||||
}
|
||||
{
|
||||
plugin = continuum;
|
||||
extraConfig = ''
|
||||
set -g @continuum-restore 'on'
|
||||
'';
|
||||
}
|
||||
];
|
||||
extraConfig = ''
|
||||
set -g default-terminal "tmux-256color"
|
||||
set -ag terminal-overrides ",xterm-256color:RGB"
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,31 +0,0 @@
|
|||
{pkgs, ...}: {
|
||||
# TODO: Move wayland-specific stuff to a wayland config
|
||||
|
||||
home.packages = with pkgs; [
|
||||
fastfetch # system info
|
||||
wl-clipboard # provides cli copy and paste commands
|
||||
aichat # duh
|
||||
];
|
||||
|
||||
programs = {
|
||||
# man page summaries (activate with tldr <command>)
|
||||
tealdeer = {
|
||||
enable = true;
|
||||
enableAutoUpdates = true;
|
||||
};
|
||||
fzf = {
|
||||
enable = true;
|
||||
enableBashIntegration = true;
|
||||
tmux.enableShellIntegration = true;
|
||||
};
|
||||
yazi = {
|
||||
enable = true;
|
||||
enableBashIntegration = true;
|
||||
};
|
||||
};
|
||||
|
||||
services = {
|
||||
# clipboard history (depends on wl-clipboard)
|
||||
cliphist.enable = true;
|
||||
};
|
||||
}
|
|
@ -1,27 +0,0 @@
|
|||
{
|
||||
wayland.windowManager.hyprland = {
|
||||
enable = true;
|
||||
systemd.enable = false; # Required for UWSM compat
|
||||
systemd.variables = ["--all"];
|
||||
# Use tha packages defined in the system configuration
|
||||
package = null;
|
||||
portalPackage = null;
|
||||
settings = {
|
||||
monitor = [
|
||||
"HDMI-A-2, 3840x2160@60, 0x0, 2"
|
||||
"DP-4, 1920x1080@60, -1920x0, 1"
|
||||
", preferred, auto, 1"
|
||||
];
|
||||
"$terminal" = "kitty";
|
||||
"$browser" = "firefox";
|
||||
"$mainMod" = "SUPER";
|
||||
bind = [
|
||||
"$mainMod, Q, exec, uwsm app -- $terminal"
|
||||
"$mainMod, W, killactive"
|
||||
"$mainMod, E, exec, uwsm app -- $browser"
|
||||
"$mainMod, M, exec, uwsm stop"
|
||||
];
|
||||
debug.disable_logs = false;
|
||||
};
|
||||
};
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue