config

NixOS config
Log | Files | Refs | README | LICENSE

default.nix (6129B) - Raw


      1 {
      2   lib,
      3   pkgs,
      4   config,
      5   ...
      6 }:
      7 let
      8   inherit (config.mj) username;
      9 in
     10 {
     11   imports = [
     12     ../linuxdesktop
     13     ../devtools
     14   ];
     15 
     16   config = {
     17 
     18     documentation = {
     19       dev.enable = true;
     20       doc.enable = true;
     21       info.enable = true;
     22       man = {
     23         enable = true;
     24         man-db.enable = false;
     25         mandoc.enable = true;
     26       };
     27     };
     28 
     29     programs = {
     30       ladybird.enable = true;
     31     };
     32 
     33     services = {
     34       xserver = {
     35         windowManager.awesome.enable = true;
     36       };
     37 
     38       displayManager = {
     39         defaultSession = lib.mkDefault "none+awesome";
     40       };
     41     };
     42 
     43     environment.systemPackages =
     44       with pkgs;
     45       [
     46         rr
     47         wrk2
     48         pdal
     49         gdal
     50         poop
     51         flex
     52         bison
     53         tracy
     54         mbpoll # modbus poll
     55         kicad
     56         esptool
     57         claudes
     58         neomutt
     59         freecad
     60         chromium
     61         binutils
     62         openscad
     63         patchelf
     64         valgrind
     65         musl.dev
     66         qgis-ltr
     67         bpftrace
     68         cppcheck
     69         wasmtime
     70         distrobox
     71         postgresql
     72         bubblewrap
     73         glabels-qt
     74         borgbackup
     75         joplin-desktop
     76         sweethome3d.application
     77         #diffoscope # broken on 2025-09-28, not used much
     78         wineWowPackages.full
     79         openorienteering-mapper
     80 
     81         (texlive.combine {
     82           inherit (texlive)
     83             lithuanian
     84             scheme-medium
     85             hyphen-lithuanian
     86             collection-binextra
     87             collection-bibtexextra
     88             collection-latexextra
     89             collection-publishers
     90             ;
     91         })
     92       ]
     93       ++ (with llvmPackages_20; [
     94         clang
     95         lld.dev
     96         llvm.dev
     97         clang-tools
     98         libllvm.dev
     99         libclang.dev
    100         llvm-manpages
    101         clang-manpages
    102         compiler-rt.dev
    103       ]);
    104 
    105     home-manager.users.${username} =
    106       { pkgs, ... }:
    107       {
    108         xdg.configFile = {
    109           "awesome/rc.lua".source = ../linuxdesktop/rc.lua;
    110           "gdb/gdbinit".text = ''
    111             set style address foreground yellow
    112             set style function foreground cyan
    113             set style string foreground magenta
    114           '';
    115         };
    116 
    117         programs = {
    118           msmtp.enable = true;
    119           mbsync.enable = true;
    120           neomutt.enable = true;
    121           notmuch.enable = true;
    122 
    123           tmux.extraConfig =
    124             let
    125               cmd = "${pkgs.extract_url}/bin/extract_url";
    126               cfg = pkgs.writeText "urlviewrc" "COMMAND systemd-run --user --collect xdg-open %s";
    127             in
    128             ''
    129               bind-key u capture-pane -J \; \
    130                 save-buffer /tmp/tmux-buffer \; \
    131                 delete-buffer \; \
    132                 split-window -l 10 "${cmd} -c ${cfg} /tmp/tmux-buffer"
    133             '';
    134         };
    135 
    136         accounts.email = {
    137           maildirBasePath = "Maildir";
    138 
    139           accounts.mj = {
    140             primary = true;
    141             userName = "motiejus@jakstys.lt";
    142             address = "motiejus@jakstys.lt";
    143             realName = "Motiejus Jakštys";
    144             passwordCommand = "cat /home/${username}/.mail-appcode";
    145             imap.host = "imap.gmail.com";
    146             smtp.host = "smtp.gmail.com";
    147 
    148             mbsync = {
    149               enable = true;
    150               create = "maildir";
    151               patterns = [
    152                 "*"
    153                 "![Gmail]/All Mail"
    154               ];
    155             };
    156 
    157             msmtp = {
    158               enable = true;
    159             };
    160 
    161             notmuch = {
    162               enable = true;
    163               neomutt.enable = true;
    164             };
    165 
    166             neomutt = {
    167               enable = true;
    168               extraConfig = ''
    169                 set index_format="%4C %Z %{%F %H:%M} %-15.15L (%?l?%4l&%4c?) %s"
    170 
    171                 set mailcap_path = ${pkgs.writeText "mailcaprc" ''
    172                   text/html; ${pkgs.elinks}/bin/elinks -dump ; copiousoutput;
    173                   application/*; ${pkgs.xdg-utils}/bin/xdg-open %s &> /dev/null &;
    174                   image/*; ${pkgs.xdg-utils}/bin/xdg-open %s &> /dev/null &;
    175                 ''}
    176                 auto_view text/html
    177                 unset record
    178                 set send_charset="utf-8"
    179 
    180                 macro attach 'V' "<pipe-entry>iconv -c --to-code=UTF8 > ~/.cache/mutt/mail.html<enter><shell-escape>firefox ~/.cache/mutt/mail.html<enter>"
    181                 macro index,pager \cb "<pipe-message> env BROWSER=firefox urlscan<Enter>" "call urlscan to extract URLs out of a message"
    182                 macro attach,compose \cb "<pipe-entry> env BROWSER=firefox urlscan<Enter>" "call urlscan to extract URLs out of a message"
    183 
    184                 set sort_browser=date
    185                 set sort=reverse-threads
    186                 set sort_aux=last-date-received
    187 
    188                 bind pager g top
    189                 bind pager G bottom
    190                 bind attach,index g first-entry
    191                 bind attach,index G last-entry
    192                 bind attach,index,pager \CD half-down
    193                 bind attach,index,pager \CU half-up
    194                 bind attach,index,pager \Ce next-line
    195                 bind attach,index,pager \Cy previous-line
    196                 bind index,pager B sidebar-toggle-visible
    197                 bind index,pager R group-reply
    198 
    199                 set sidebar_visible = yes
    200                 set sidebar_width = 15
    201                 bind index,pager \Cp sidebar-prev
    202                 bind index,pager \Cn sidebar-next
    203                 bind index,pager \Co sidebar-open
    204                 bind index,pager B sidebar-toggle-visible
    205                 set sidebar_short_path = yes
    206                 set sidebar_delim_chars = '/'
    207                 set sidebar_format = '%B%* %?N?%N?'
    208                 set mail_check_stats
    209                 set postponed="+[Gmail]/Drafts"
    210                 mailboxes =btrfs
    211                 mailboxes =Debian
    212                 mailboxes =alerts
    213                 mailboxes ="[Gmail]/Drafts"
    214                 mailboxes ="[Gmail]/Starred"
    215                 mailboxes ="[Gmail]/Sent Mail"
    216 
    217                 source ${../linuxdesktop/notmuch-colors.muttrc}
    218               '';
    219             };
    220           };
    221         };
    222       };
    223   };
    224 }