{ 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; [ 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 ]; 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; "waybar" = { source = ./waybar; target = ".config/waybar"; recursive = true; onChange = "/run/current-system/sw/bin/swaymsg reload"; }; ".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 = pkgs.i3-rounded; xsession.windowManager.i3.config = { fonts = { names = [ "Ubuntu" ]; style = "Regular"; size = 12.0; }; defaultWorkspace = "workspace 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 = [ { class = "org.keepassxc.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"; }; menu = "dmenu_run -sb \"#a15ffc\" -nf \"#333333\" -nb \"#ef5ffc\" -sf \"#333333\" -fn \"Ubuntu Bold-13\""; modifier = "Mod4"; window.titlebar = false; terminal = "alacritty"; window.border = 2; startup = [ { command = "feh --bg-scale ~/.config/home-manager/xenia.png"; } { command = "keepassxc"; } ]; }; xsession.windowManager.i3.extraConfig = '' ''; 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 = "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"; }; 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 :Neotree nnoremap nnoremap :tabprevious nnoremap :tabnext nnoremap :tabnew 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 ''; 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; }