citadel

My dotfiles, scripts and nix configs
git clone git://jb55.com/citadel
Log | Files | Refs | README | LICENSE

default.nix (3167B)


      1 { userConfig, theme, icon-theme, extra }:
      2 { config, lib, pkgs, ... }:
      3 let gtk2rc = pkgs.writeText "gtk2rc" ''
      4       gtk-icon-theme-name = "${icon-theme.name}"
      5       gtk-theme-name = "${theme.name}"
      6 
      7       binding "gtk-binding-menu" {
      8         bind "j" { "move-current" (next) }
      9         bind "k" { "move-current" (prev) }
     10         bind "h" { "move-current" (parent) }
     11         bind "l" { "move-current" (child) }
     12       }
     13       class "GtkMenuShell" binding "gtk-binding-menu"
     14     '';
     15 
     16     jb55pkgs = import <jb55pkgs> { inherit pkgs; };
     17 
     18     jbpkgs = with jb55pkgs; [
     19        snap
     20        cmdtree
     21        zoom-link-opener
     22        x11-rename
     23        #hoogle-zen
     24        viscal
     25     ];
     26 
     27     df = pkgs.dwarf-fortress-packages.dwarf-fortress-full.override {
     28        #dfVersion = "0.44.11";
     29        enableIntro = false;
     30        enableFPS = false;
     31        enableDFHack = false;
     32        enableTextMode = false;
     33        theme = "cla";
     34     };
     35 
     36     mypkgs = (with pkgs; [
     37       obs-studio
     38       clipmenu
     39       colorpicker
     40       dasht
     41       dmenu
     42       xdragon
     43       dunst
     44       dynamic-colors
     45       feh
     46       getmail6 # for getmail-gmail-xoauth-tokens
     47       gnome.gnome-calculator
     48       gtk-engine-murrine
     49       hwi
     50       lagrange
     51       lastpass-cli
     52       libnotify
     53       mpv
     54       msmtp
     55       muchsync
     56       neomutt
     57       notmuch
     58       oathToolkit
     59       pandoc
     60       pavucontrol
     61       pamixer
     62       pinentry
     63       postgresql # psql
     64       qalculate-gtk
     65       qutebrowser
     66       rxvt-unicode
     67       signal-desktop
     68       simplescreenrecorder
     69       slock
     70       spotify
     71       sxiv
     72       todo-txt-cli
     73       tdesktop
     74       userConfig
     75       vdirsyncer
     76       w3m
     77       wmctrl
     78       xautolock
     79       xbindkeys
     80       xclip
     81       xdotool
     82       xorg.xev
     83       xorg.xmodmap
     84       xorg.xset
     85       zathura
     86       zoom-us
     87 
     88       #aerc 
     89       #bitcoin     --- probably don't want a binary substitute of this
     90       #khal
     91       #python37Packages.trezor
     92       #texlive.combined.scheme-full
     93       #steam
     94       #wine
     95       #df
     96     ]) ++ jbpkgs;
     97 
     98 in {
     99 
    100   # latest emacs overlay
    101   #nixpkgs.overlays =  [
    102   #  (import (builtins.fetchTarball {
    103   #    url = https://github.com/nix-community/emacs-overlay/archive/773a9f17db9296b45e6b7864d8cee741c8d0d7c7.tar.gz;
    104   #    sha256 = "157klv69myjmdgqvxv0avv32yfra3i21h5bxjhksvaii1xf3w1gp";
    105   #  }))
    106   #];
    107 
    108   environment.variables = lib.mkIf (!extra.is-minimal) {
    109     LC_TIME="en_DK.UTF-8";
    110     GDK_PIXBUF_MODULE_FILE = "${pkgs.librsvg.out}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache";
    111     GTK2_RC_FILES = "${gtk2rc}:${theme.package}/share/themes/${theme.name}/gtk-2.0/gtkrc:$GTK2_RC_FILES";
    112     GTK_DATA_PREFIX = "${theme.package}";
    113     GTK_EXEC_PREFIX = "${theme.package}";
    114     GTK_IM_MODULE = "xim";
    115     GTK_PATH = "${theme.package}:${pkgs.gtk3.out}";
    116     GTK_THEME = "${theme.name}";
    117     QT_STYLE_OVERRIDE = "GTK+";
    118     VK_ICD_FILENAMES = "/run/opengl-driver/share/vulkan/icd.d/radeon_icd.x86_64.json"; # radv
    119   };
    120 
    121   programs.steam.enable = true;
    122   programs.gamemode.enable = true;
    123 
    124   environment.systemPackages = if extra.is-minimal then (with pkgs; [
    125     #steam
    126     #steam-run
    127     #wine
    128     
    129     lastpass-cli
    130     rxvt-unicode
    131   ]) else mypkgs;
    132 
    133   programs.slock.enable = true;
    134 }