modularize neovim and terminal

This commit is contained in:
Fabian Montero 2024-11-20 17:04:00 -06:00
parent 85dfcfdb72
commit 001642dc94
Signed by: fabian
GPG key ID: 1FFAC35E1798174F
9 changed files with 104 additions and 74 deletions

View file

@ -7,6 +7,11 @@
...
}:
with lib; {
imports = [
./modules
];
xdg.enable = true;
programs = {

11
home/modules/default.nix Normal file
View file

@ -0,0 +1,11 @@
{
config,
lib,
pkgs,
...
}: {
imports = [
./terminal
./neovim.nix
];
}

48
home/modules/neovim.nix Normal file
View file

@ -0,0 +1,48 @@
{
config,
lib,
pkgs,
...
}:
with lib; let
cfg = config.local.apps.neovim;
in {
options.local.apps.neovim = {
enable = mkEnableOption "Neovim settings";
};
config = mkIf cfg.enable {
programs.neovim = {
enable = true;
viAlias = true;
vimAlias = true;
defaultEditor = true;
extraConfig = ''
set nobackup
set showmatch " show matching
set hlsearch " highlight search
set incsearch " incremental search
set tabstop=4 " number of columns occupied by a tab
set softtabstop=4 " see multiple spaces as tabstops so <BS> does the right thing
set shiftwidth=4 " width for autoindents
set autoindent " indent a new line the same amount as the line just typed
set number " add line numbers
set wildmode=longest,list " get bash-like tab completions
set cc=80 " set an 80 column border for good coding style
filetype plugin indent on " allow auto-indenting depending on file type
syntax on " syntax highlighting
set mouse=a " enable mouse click
set clipboard=unnamedplus " using system clipboard
filetype plugin on
set cursorline " highlight current cursorline
set ttyfast " Speed up scrolling in Vim
set noswapfile " disable creating swap file
'';
plugins = with pkgs.vimPlugins; [
vim-nix
vim-multiple-cursors
];
};
};
}

View file

@ -0,0 +1,37 @@
{
config,
lib,
pkgs,
...
}:
with lib; let
cfg = config.local.apps.terminal;
in {
options.local.apps.terminal.enable = mkEnableOption "Terminal emulator settings";
config = mkIf cfg.enable {
programs = {
kitty = {
enable = true;
extraConfig = import ./kitty.conf.nix;
};
tmux = {
enable = true;
aggressiveResize = true;
clock24 = true;
escapeTime = 10;
terminal = "xterm-256color";
keyMode = "emacs";
extraConfig = ''
set -g mouse on
set -ga update-environment " LIFT_PID"
set -g set-titles on
set -g renumber-windows on
set -sa terminal-overrides ',xterm-termite:RGB'
set -g status-right "#{?window_bigger,[#{window_offset_x}#,#{window_offset_y}] ,} %H:%M %d-%b-%y"
'';
};
};
};
}

View file

@ -6,8 +6,6 @@
}: {
imports = [
./steam
./terminal
./neovim.nix
];
home.packages = with pkgs; [

View file

@ -1,40 +0,0 @@
{
config,
lib,
pkgs,
...
}: {
programs.neovim = {
enable = true;
viAlias = true;
vimAlias = true;
defaultEditor = true;
extraConfig = ''
set nobackup
set showmatch " show matching
set hlsearch " highlight search
set incsearch " incremental search
set tabstop=4 " number of columns occupied by a tab
set softtabstop=4 " see multiple spaces as tabstops so <BS> does the right thing
set shiftwidth=4 " width for autoindents
set autoindent " indent a new line the same amount as the line just typed
set number " add line numbers
set wildmode=longest,list " get bash-like tab completions
set cc=80 " set an 80 column border for good coding style
filetype plugin indent on " allow auto-indenting depending on file type
syntax on " syntax highlighting
set mouse=a " enable mouse click
set clipboard=unnamedplus " using system clipboard
filetype plugin on
set cursorline " highlight current cursorline
set ttyfast " Speed up scrolling in Vim
set noswapfile " disable creating swap file
'';
plugins = with pkgs.vimPlugins; [
vim-nix
vim-multiple-cursors
];
};
}

View file

@ -1,32 +0,0 @@
{
config,
lib,
pkgs,
...
}:
with lib; let
cfg = config.local.apps.terminal;
in {
kitty = {
enable = true;
extraConfig = import ./kitty.conf.nix;
};
tmux = {
enable = true;
aggressiveResize = true;
clock24 = true;
escapeTime = 10;
terminal = "xterm-256color";
keyMode = "emacs";
extraConfig = ''
set -g mouse on
set -ga update-environment " LIFT_PID"
set -g set-titles on
set -g renumber-windows on
set -sa terminal-overrides ',xterm-termite:RGB'
set -g status-right "#{?window_bigger,[#{window_offset_x}#,#{window_offset_y}] ,} %H:%M %d-%b-%y"
'';
};
}

View file

@ -12,6 +12,9 @@
./isolation.nix
];
local.apps.terminal.enable = true;
local.apps.neovim.enable = true;
nix.registry = {
"system".to = {
type = "path";