Compare commits
10 Commits
d913c6cc02
...
8fa948b0be
| Author | SHA1 | Date | |
|---|---|---|---|
|
8fa948b0be
|
|||
|
859d524f4a
|
|||
|
989f676ce7
|
|||
|
55bb23cf07
|
|||
|
894c113607
|
|||
|
724db8a252
|
|||
|
d0eb6f614d
|
|||
|
c419f052a3
|
|||
|
1f7e9f6eef
|
|||
|
656dfe4b93
|
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
../../modules/nixos/bootloader.nix
|
|
||||||
../../modules/nixos/audio.nix
|
../../modules/nixos/audio.nix
|
||||||
|
../../modules/nixos/bootloader.nix
|
||||||
../../modules/nixos/compositor.nix
|
../../modules/nixos/compositor.nix
|
||||||
../../modules/nixos/gnupg.nix
|
../../modules/nixos/gnupg.nix
|
||||||
../../modules/nixos/locales.nix
|
../../modules/nixos/locales.nix
|
||||||
|
|||||||
18
modules/home-manager/git.nix
Normal file
18
modules/home-manager/git.nix
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
{ config, pkgs, inputs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.git = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
push = { autoSetupRemote = true; };
|
||||||
|
user = {
|
||||||
|
name = "aaron";
|
||||||
|
email = "aaron@0x29a.ch";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
signing = {
|
||||||
|
key = "7A830180A05DAC59CDE43B0677D2F5DB48184456";
|
||||||
|
signByDefault = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
26
modules/home-manager/nixvim.nix
Normal file
26
modules/home-manager/nixvim.nix
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
{ config, pkgs, inputs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.nixvim = {
|
||||||
|
globals.mapleader = " ";
|
||||||
|
enable = true;
|
||||||
|
viAlias = false;
|
||||||
|
vimAlias = true;
|
||||||
|
opts = {
|
||||||
|
number = true;
|
||||||
|
relativenumber = true;
|
||||||
|
shiftwidth = 2;
|
||||||
|
tabstop = 2;
|
||||||
|
expandtab = true;
|
||||||
|
incsearch = true;
|
||||||
|
};
|
||||||
|
colorschemes.nord.enable = true;
|
||||||
|
plugins.lualine.enable = true;
|
||||||
|
plugins.nix.enable = true;
|
||||||
|
plugins.nvim-tree.enable = true;
|
||||||
|
plugins.treesitter.enable = true;
|
||||||
|
plugins.telescope.enable = true;
|
||||||
|
plugins.web-devicons.enable = true;
|
||||||
|
plugins.indent-blankline.enable = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
18
modules/home-manager/programs.nix
Normal file
18
modules/home-manager/programs.nix
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
{ config, pkgs, inputs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
# user packages
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
discord
|
||||||
|
fastfetch
|
||||||
|
keepassxc
|
||||||
|
nerd-fonts.sauce-code-pro
|
||||||
|
powerline-fonts
|
||||||
|
powerline-symbols
|
||||||
|
screenfetch
|
||||||
|
];
|
||||||
|
|
||||||
|
# services and other software
|
||||||
|
services.syncthing.enable = true;
|
||||||
|
programs.home-manager.enable = true;
|
||||||
|
}
|
||||||
20
modules/home-manager/shell.nix
Normal file
20
modules/home-manager/shell.nix
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
{ config, pkgs, inputs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.zsh = {
|
||||||
|
enable = true;
|
||||||
|
autosuggestion.enable = true;
|
||||||
|
syntaxHighlighting.enable = true;
|
||||||
|
oh-my-zsh = {
|
||||||
|
enable = true;
|
||||||
|
theme = "agnoster";
|
||||||
|
#plugins = [ "git" "ssh-agent" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# set important env vars
|
||||||
|
home.sessionVariables = {
|
||||||
|
EDITOR = "vim";
|
||||||
|
NH_FLAKE = "/home/aaron/git/nixconfig";
|
||||||
|
};
|
||||||
|
}
|
||||||
30
modules/home-manager/styling.nix
Normal file
30
modules/home-manager/styling.nix
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
{ config, pkgs, inputs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
# set gtk theme
|
||||||
|
gtk = {
|
||||||
|
enable = true;
|
||||||
|
theme = {
|
||||||
|
name = "Adwaita-dark";
|
||||||
|
package = pkgs.gnome-themes-extra;
|
||||||
|
};
|
||||||
|
gtk3.extraConfig.gtk-application-prefer-dark-theme = 1;
|
||||||
|
gtk4.extraConfig.gtk-application-prefer-dark-theme = 1;
|
||||||
|
};
|
||||||
|
|
||||||
|
# set qt theme
|
||||||
|
qt = {
|
||||||
|
enable = true;
|
||||||
|
platformTheme.name = "qt6";
|
||||||
|
style = {
|
||||||
|
name = "adwaita-dark";
|
||||||
|
package = pkgs.adwaita-qt;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# ensure packages are installed
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
gnome-themes-extra
|
||||||
|
adwaita-qt
|
||||||
|
];
|
||||||
|
}
|
||||||
56
modules/home-manager/tmux.nix
Normal file
56
modules/home-manager/tmux.nix
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
{ config, pkgs, inputs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.tmux = {
|
||||||
|
enable = true;
|
||||||
|
prefix = "C-a";
|
||||||
|
keyMode = "vi";
|
||||||
|
mouse = true;
|
||||||
|
terminal = "screen-256color";
|
||||||
|
extraConfig = ''
|
||||||
|
# Status keys
|
||||||
|
set -g status-keys vi
|
||||||
|
# Status bar options
|
||||||
|
set -g status-interval 1
|
||||||
|
set -g status on
|
||||||
|
set -g status-justify left
|
||||||
|
# Clock mode
|
||||||
|
setw -g clock-mode-colour cyan
|
||||||
|
# Colors
|
||||||
|
set -g status-bg black
|
||||||
|
set -g status-fg white
|
||||||
|
# Key bindings
|
||||||
|
# Reload configuration
|
||||||
|
bind r source-file ~/.config/tmux/tmux.conf
|
||||||
|
# Panel split and selection
|
||||||
|
unbind %
|
||||||
|
unbind '"'
|
||||||
|
bind v split-window -v
|
||||||
|
bind c split-window -h
|
||||||
|
bind i new-window
|
||||||
|
bind b previous-window
|
||||||
|
bind n next-window
|
||||||
|
# Move around panes with hjkl
|
||||||
|
bind h select-pane -L
|
||||||
|
bind j select-pane -D
|
||||||
|
bind k select-pane -U
|
||||||
|
bind l select-pane -R
|
||||||
|
# Resize panes
|
||||||
|
bind H resize-pane -L 5
|
||||||
|
bind J resize-pane -D 5
|
||||||
|
bind K resize-pane -U 5
|
||||||
|
bind L resize-pane -R 5
|
||||||
|
# Kill commands
|
||||||
|
bind q kill-window
|
||||||
|
bind Q kill-session
|
||||||
|
# Bars
|
||||||
|
set -g status-left "#[fg=black,bg=blue,bold] #S#[fg=blue,bg=black,nobold,noitalics,nounderscore]"
|
||||||
|
set -g status-left "#[fg=black,bg=blue,bold] #S #[fg=blue,bg=black,nobold,noitalics,nounderscore]"
|
||||||
|
set -g status-right "#{prefix_highlight}#[fg=brightblack,bg=black,nobold,noitalics,nounderscore]#[fg=white,bg=brightblack] %Y-%m-%d #[fg=white,bg=brightblack,nobold,noitalics,nounderscore]#[fg=white,bg=brightblack] %H:%M #[fg=cyan,bg=brightblack,nobold,noitalics,nounderscore]#[fg=black,bg=cyan,bold] #H "
|
||||||
|
# Windows
|
||||||
|
set -g window-status-format "#[fg=black,bg=brightblack,nobold,noitalics,nounderscore] #[fg=white,bg=brightblack]#I #[fg=white,bg=brightblack,nobold,noitalics,nounderscore] #[fg=white,bg=brightblack]#W #F #[fg=brightblack,bg=black,nobold,noitalics,nounderscore]"
|
||||||
|
set -g window-status-current-format "#[fg=black,bg=cyan,nobold,noitalics,nounderscore] #[fg=black,bg=cyan]#I #[fg=black,bg=cyan,nobold,noitalics,nounderscore] #[fg=black,bg=cyan]#W #F #[fg=cyan,bg=black,nobold,noitalics,nounderscore]"
|
||||||
|
set -g window-status-separator ""
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -1,151 +1,18 @@
|
|||||||
{ config, pkgs, inputs, ... }:
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
# user config
|
imports = [
|
||||||
home.username = "aaron";
|
../../modules/home-manager/git.nix
|
||||||
home.homeDirectory = "/home/aaron";
|
../../modules/home-manager/nixvim.nix
|
||||||
# set env vars
|
../../modules/home-manager/programs.nix
|
||||||
home.sessionVariables = {
|
../../modules/home-manager/shell.nix
|
||||||
EDITOR = "vim";
|
../../modules/home-manager/styling.nix
|
||||||
NH_FLAKE = "/home/aaron/git/nixconfig";
|
../../modules/home-manager/tmux.nix
|
||||||
};
|
|
||||||
# don't change
|
|
||||||
home.stateVersion = "25.11";
|
|
||||||
|
|
||||||
# nixvim config
|
|
||||||
programs.nixvim = {
|
|
||||||
globals.mapleader = " ";
|
|
||||||
enable = true;
|
|
||||||
viAlias = false;
|
|
||||||
vimAlias = true;
|
|
||||||
opts = {
|
|
||||||
number = true;
|
|
||||||
relativenumber = true;
|
|
||||||
shiftwidth = 2;
|
|
||||||
tabstop = 2;
|
|
||||||
expandtab = true;
|
|
||||||
incsearch = true;
|
|
||||||
};
|
|
||||||
colorschemes.nord.enable = true;
|
|
||||||
plugins.lualine.enable = true;
|
|
||||||
plugins.nix.enable = true;
|
|
||||||
plugins.nvim-tree.enable = true;
|
|
||||||
plugins.treesitter.enable = true;
|
|
||||||
plugins.telescope.enable = true;
|
|
||||||
plugins.web-devicons.enable = true;
|
|
||||||
plugins.indent-blankline.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
# tmux config
|
|
||||||
programs.tmux = {
|
|
||||||
enable = true;
|
|
||||||
# Basic options
|
|
||||||
prefix = "C-a";
|
|
||||||
keyMode = "vi";
|
|
||||||
mouse = true;
|
|
||||||
# Terminal settings
|
|
||||||
terminal = "screen-256color";
|
|
||||||
# Extra configuration
|
|
||||||
extraConfig = ''
|
|
||||||
# Status keys
|
|
||||||
set -g status-keys vi
|
|
||||||
# Status bar options
|
|
||||||
set -g status-interval 1
|
|
||||||
set -g status on
|
|
||||||
set -g status-justify left
|
|
||||||
# Clock mode
|
|
||||||
setw -g clock-mode-colour cyan
|
|
||||||
# Colors
|
|
||||||
set -g status-bg black
|
|
||||||
set -g status-fg white
|
|
||||||
# Key bindings
|
|
||||||
# Reload configuration
|
|
||||||
bind r source-file ~/.config/tmux/tmux.conf
|
|
||||||
# Panel split and selection
|
|
||||||
unbind %
|
|
||||||
unbind '"'
|
|
||||||
bind v split-window -v
|
|
||||||
bind c split-window -h
|
|
||||||
bind i new-window
|
|
||||||
bind b previous-window
|
|
||||||
bind n next-window
|
|
||||||
# Move around panes with hjkl
|
|
||||||
bind h select-pane -L
|
|
||||||
bind j select-pane -D
|
|
||||||
bind k select-pane -U
|
|
||||||
bind l select-pane -R
|
|
||||||
# Resize panes
|
|
||||||
bind H resize-pane -L 5
|
|
||||||
bind J resize-pane -D 5
|
|
||||||
bind K resize-pane -U 5
|
|
||||||
bind L resize-pane -R 5
|
|
||||||
# Kill commands
|
|
||||||
bind q kill-window
|
|
||||||
bind Q kill-session
|
|
||||||
# Bars
|
|
||||||
set -g status-left "#[fg=black,bg=blue,bold] #S#[fg=blue,bg=black,nobold,noitalics,nounderscore]"
|
|
||||||
set -g status-left "#[fg=black,bg=blue,bold] #S #[fg=blue,bg=black,nobold,noitalics,nounderscore]"
|
|
||||||
set -g status-right "#{prefix_highlight}#[fg=brightblack,bg=black,nobold,noitalics,nounderscore]#[fg=white,bg=brightblack] %Y-%m-%d #[fg=white,bg=brightblack,nobold,noitalics,nounderscore]#[fg=white,bg=brightblack] %H:%M #[fg=cyan,bg=brightblack,nobold,noitalics,nounderscore]#[fg=black,bg=cyan,bold] #H "
|
|
||||||
# Windows
|
|
||||||
set -g window-status-format "#[fg=black,bg=brightblack,nobold,noitalics,nounderscore] #[fg=white,bg=brightblack]#I #[fg=white,bg=brightblack,nobold,noitalics,nounderscore] #[fg=white,bg=brightblack]#W #F #[fg=brightblack,bg=black,nobold,noitalics,nounderscore]"
|
|
||||||
set -g window-status-current-format "#[fg=black,bg=cyan,nobold,noitalics,nounderscore] #[fg=black,bg=cyan]#I #[fg=black,bg=cyan,nobold,noitalics,nounderscore] #[fg=black,bg=cyan]#W #F #[fg=cyan,bg=black,nobold,noitalics,nounderscore]"
|
|
||||||
set -g window-status-separator ""
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
# user packages
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
discord
|
|
||||||
fastfetch
|
|
||||||
keepassxc
|
|
||||||
nerd-fonts.sauce-code-pro
|
|
||||||
powerline-fonts
|
|
||||||
powerline-symbols
|
|
||||||
screenfetch
|
|
||||||
];
|
];
|
||||||
|
|
||||||
# configure git
|
home = {
|
||||||
programs.git.settings = {
|
username = "aaron";
|
||||||
enable = true;
|
homeDirectory = "/home/aaron";
|
||||||
userName = "aaron";
|
stateVersion = "25.11";
|
||||||
userEmail = "aaron@0x29a.ch";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
# configure zsh theme
|
|
||||||
programs.zsh = {
|
|
||||||
enable = true;
|
|
||||||
autosuggestion.enable = true;
|
|
||||||
syntaxHighlighting.enable = true;
|
|
||||||
oh-my-zsh = {
|
|
||||||
enable = true;
|
|
||||||
theme = "agnoster";
|
|
||||||
#plugins = [ "git" "ssh-agent" ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# set gtk theme
|
|
||||||
gtk = {
|
|
||||||
enable = true;
|
|
||||||
theme = {
|
|
||||||
name = "Adwaita-dark";
|
|
||||||
package = pkgs.gnome-themes-extra;
|
|
||||||
};
|
|
||||||
gtk3.extraConfig.gtk-application-prefer-dark-theme = 1;
|
|
||||||
gtk4.extraConfig.gtk-application-prefer-dark-theme = 1;
|
|
||||||
};
|
|
||||||
|
|
||||||
# set qt theme
|
|
||||||
qt = {
|
|
||||||
enable = true;
|
|
||||||
platformTheme.name = "qt6";
|
|
||||||
style = {
|
|
||||||
name = "adwaita-dark";
|
|
||||||
package = pkgs.adwaita-qt;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# enable syncthing for user
|
|
||||||
services.syncthing.enable = true;
|
|
||||||
# enable home manager
|
|
||||||
programs.home-manager.enable = true;
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user