Files
home-manager/home.nix
2024-02-14 16:35:02 +01:00

381 lines
8.3 KiB
Nix

{ config, pkgs, lib, ... }:
{
imports = [
./device-conf.nix
private/private.nix
];
home.username = "vi";
home.homeDirectory = "/home/vi";
home.stateVersion = "23.11"; # Please read the comment before changing.
home.packages = with pkgs; [
openssl
feh
killall
sshfs
hledger
extremetuxracer
superTux
superTuxKart
pinentry
evolution
w3m
nmap
nb
asciidoctor-with-extensions
simple-scan
paperwork
xsane
dnsutils
# inetutils
shotwell
lua54Packages.lua
lua54Packages.fennel
entr
zathura
swayimg
texliveSmall
vlc
quodlibet
ffmpeg
mosh
openscad
openscad-lsp
pandoc
lynx
neofetch
telegram-desktop
git-annex
dmenu
python3
eza
bat
fzf
ripgrep
wl-clipboard
foot
git
waybar
wofi
# signal-desktop
element-desktop
# thunderbird
keepassxc
glib
gsettings-desktop-schemas
themechanger
gnome.seahorse
pavucontrol
dunst
libreoffice
borgbackup
gnupg
i3lock-blur
xclip
firefox
thunderbird
rofi
];
programs.taskwarrior = {
enable = true;
config = {
weekstart = "Monday";
dateformat = "d.m.y";
report.X.dateformat = "a, D. b Y";
};
};
programs.alacritty = {
enable = true;
settings = {
env.TERM = "xterm";
window.opacity = 0.9;
font.normal = {
family = "Hack Nerd Font Mono";
style = "Regular";
};
colors.primary = {
foreground = "#fc28c3";
background = "#230038";
};
font.size = 9;
};
};
programs.starship = {
enable = true;
enableZshIntegration = true;
enableFishIntegration = true;
settings = {
add_newline = false;
format = "$username$hostname $directory$all";
directory.style = "bold bright-blue";
username.show_always = true;
username.format = "[$user]($style)";
username.style_user = "bold bright-purple";
hostname.ssh_only = false;
hostname.format = "[@$hostname$ssh_symbol]($style)";
hostname.style = "bold bright-purple";
character = {
success_symbol = "[>>](bold light-green)";
error_symbol = "[>>](bold red)";
};
line_break.disabled = true;
cmd_duration.disabled = true;
};
};
home.file = {
".config/sway/xenia.png".source = ./xenia.png;
".config/gtk-3.0/settings.ini".text = ''
[Settings]
gtk-application-prefer-dark-theme=1
'';
".config/wofi/config".text = ''
show=drun
drun-print_command=true
'';
".borg" = {
source = ./borg;
recursive = true;
};
"scripts" = {
source = ./scripts;
recursive = true;
};
};
home.sessionVariables = {
EDITOR = "nvim";
VISUAL = "nvim";
LEDGER_FILE = "$HOME/hledger/hledger.journal";
};
# Let Home Manager install and manage itself.
xsession.windowManager.i3.enable = true;
# xsession.windowManager.i3.package = ;
xsession.windowManager.i3.config = {
fonts = {
names = [ "Ubuntu" ];
style = "Regular";
size = 12.0;
};
defaultWorkspace = "1";
bars = [{
position = "top";
colors.background = "#ef5ffc";
colors.focusedWorkspace = {
text = "#333333";
border = "#ef5ffc";
background = "#a15ffc";
};
colors.inactiveWorkspace = {
text = "#333333";
border = "#ef5ffc";
background = "#ef5ffc";
};
colors.statusline = "#333333";
fonts = {
names = [ "Ubuntu" ];
style = "Regular";
size = 13.0;
};
statusCommand = "~/.borg/i3status-bakage.sh";
extraConfig = ''
height 24
'';
}];
colors.focused = {
border = "#ef5ffc";
background = "#ef5ffc";
text = "#333333";
indicator = "#2e9ef4";
childBorder = "#ef5ffc";
};
floating = {
criteria = [
{
instance = "keepassxc";
class = "KeePassXC";
}
];
};
gaps = {
inner = 8;
smartBorders = "on";
smartGaps = true;
};
keybindings =
let
modifier = config.xsession.windowManager.i3.config.modifier;
menu = config.xsession.windowManager.i3.config.menu;
in lib.mkOptionDefault {
"${modifier}+space" = "exec ${menu}";
"${modifier}+Control+Space" = "focus mode_toggle";
"XF86AudioLowerVolume" = "exec pactl set-sink-volume @DEFAULT_SINK@ -5%";
"XF86AudioRaiseVolume" = "exec pactl set-sink-volume @DEFAULT_SINK@ +5%";
"XF86AudioMute" = "exec pactl set-sink-mute @DEFAULT_SINK@ toggle";
"XF86AudioMicMute" = "exec pactl set-source-mute @DEFAULT_SOURCE@ toggle";
# "XF86Launch1" = "exec ~/scripts/sunset.sh";
"${modifier}+Control+p" = "exec i3lock -n -c ef5ffc";
"${modifier}+Control+x" = "exec ~/scripts/scale.sh";
};
menu = "rofi -show drun";
modifier = "Mod4";
window.titlebar = false;
terminal = "alacritty";
window.border = 2;
startup = [
{ command = "feh --bg-scale ~/.config/home-manager/xenia.png"; }
{ command = "keepassxc"; }
{ command = "i3-msg workspace 1"; }
];
};
services.redshift = {
enable = true;
latitude = 49.0;
longitude = 9.0;
tray = true;
};
services.caffeine.enable = true;
services.screen-locker.enable = true;
services.screen-locker.lockCmd = "/home/vi/.nix-profile/bin/i3lock -n -c ef5ffc";
programs.i3status = {
enable = true;
enableDefault = false;
general = {
colors = true;
interval = 5;
color_good = "#333333";
color_degraded = "#333333";
color_bad = "#333333";
color_separator = "#a15ffc";
separator = " ";
};
modules = {
"volume master".position = 1;
"wireless wlp2s0" = {
position = 2;
settings = {
format_up = "%essid %bitrate";
format_down = "down";
};
};
"battery 0" = {
position = 3;
settings = {
color_good = "#333333";
color_degraded = "#d6cf19";
color_bad = "#d6191f";
format = "%status %percentage %remaining";
status_chr = "C";
status_bat = "B";
status_full = "F";
};
};
"time" = {
position = 4;
settings = {
format = "%a, %d.%m.%Y - %H:%M ";
};
};
};
};
programs.home-manager.enable = true;
programs.fish.enable = true;
home.shellAliases = {
ls = "exa --git";
ll = "exa --git -l";
la = "exa --git -al";
tt = "exa --git -Tl";
g = "git";
cat = "bat";
backup = "$HOME/.borg/backup.sh";
grep = "rg";
fox = "cat";
t = "task";
hl = "hledger";
mountNas = "systemctl start home-vi-nas.mount";
};
programs.neovim = {
enable = true;
defaultEditor = true;
extraConfig = ''
set number
set listchars=tab:>-,trail:~,extends:>,precedes:<
set list
set expandtab
set tabstop=2
set shiftwidth=2
set autoindent
set colorcolumn=80
set cursorline
set mouse=a
set clipboard=unnamedplus
set nocompatible
filetype plugin on
syntax on
call plug#begin('~/.vim/plugged')
Plug 'mattn/calendar-vim'
call plug#end()
nnoremap <C-n> :Neotree<CR>
nnoremap <tab> <C-w>
nnoremap <C-h> :tabprevious<CR>
nnoremap <C-l> :tabnext<CR>
nnoremap <C-CR> :tabnew<CR>
let g:airline_theme='violet'
set modeline
autocmd FileType markdown set textwidth=80
autocmd FileType asciidoc set textwidth=80
set scrolloff=5
let g:org_agenda_files = ['~/org/*.org']
tnoremap <Esc> <C-\><C-n>
'';
plugins = with pkgs.vimPlugins; [
vim-speeddating
indentLine
nightfox-nvim
vim-airline
vim-airline-themes
neo-tree-nvim
syntastic
ale
surround-nvim
fennel-vim
vim-orgmode
];
extraLuaConfig = ''
require("nightfox").setup({
palettes = {
duskfox = {
bg1 = "#230038",
fg1 = "#fc28c3",
}
}
})
vim.cmd("colorscheme duskfox")
'';
viAlias = true;
vimAlias = true;
vimdiffAlias = true;
};
services.gpg-agent.enable = true;
services.syncthing.enable = true;
}