{ config, pkgs, ... }: let environmentVariables = { EDITOR = "nvim"; }; dotfiles = builtins.fetchGit { url = "https://gitlab.com/steveeJ/dotfiles.git"; ref = "master"; }; mkSimpleTrayService = { execStart }: { Unit = { Description = "pasystray applet"; After = [ "graphical-session-pre.target" ]; PartOf = [ "graphical-session.target" ]; }; Install = { WantedBy = [ "graphical-session.target" ]; }; Service = { ExecStart = execStart; }; }; in { imports = [ "${builtins.fetchGit { url = "https://github.com/rycee/home-manager.git"; ref = "master"; }}/nixos" ]; nixpkgs.config = { allowBroken = false; allowUnfree = true; packageOverrides = pkgs: with pkgs; { busyboxStatic = busybox.override { enableStatic = true; extraConfig = '' CONFIG_STATIC y CONFIG_INSTALL_APPLET_DONT y CONFIG_INSTALL_APPLET_SYMLINKS n ''; }; }; }; environment.systemPackages = with pkgs; [ ]; home-manager.users.steveej = { programs.firefox = { enable = true; enableAdobeFlash = false; enableGoogleTalk = true; enableIcedTea = true; }; programs.command-not-found.enable = true; programs.zsh = { enable = true; # will be called again by oh-my-zsh enableCompletion = false; enableAutosuggestions = true; initExtra = '' PROMPT='%F{%(!.red.green)}%n%f@%m %(?.%F{green}✓%f.%F{red}✗ ($?%))%f %F{blue}%~%f %F{magenta}$(git_prompt_info)%f %_%F{%(!.red.green)}$(prompt_char)%f ' RPROMPT="" # Automatic rehash zstyle ':completion:*' rehash true if [ -f $HOME/.shrc.d/sh_aliases ]; then . $HOME/.shrc.d/sh_aliases fi # source "$HOME/.homesick/repos/homeshick/homeshick.sh" # fpath=($HOME/.homesick/repos/homeshick/completions $fpath) # Disable intercepting of ctrl-s and ctrl-q as flow control. stty stop ''' -ixoff -ixon # don't cd into directories when executed unsetopt AUTO_CD # Load direnv eval "$(direnv hook zsh)" ''; sessionVariables = environmentVariables // { # Add more envrionment variables here }; plugins = [ { # will source zsh-autosuggestions.plugin.zsh name = "zsh-autosuggestions"; src = pkgs.fetchFromGitHub { owner = "zsh-users"; repo = "zsh-autosuggestions"; rev = "v0.4.0"; sha256 = "0z6i9wjjklb4lvr7zjhbphibsyx51psv50gm07mbb0kj9058j6kc"; }; } { name = "enhancd"; file = "init.sh"; src = pkgs.fetchFromGitHub { owner = "b4b4r07"; repo = "enhancd"; rev = "v2.2.1"; sha256 = "0iqa9j09fwm6nj5rpip87x3hnvbbz9w9ajgm6wkrd5fls8fn8i5g"; }; } { name = "pass"; src = "${pkgs.oh-my-zsh}/share/oh-my-zsh/plugins/pass"; } { name = "minikube"; src = "${pkgs.oh-my-zsh}/share/oh-my-zsh/plugins/minikube"; } ]; oh-my-zsh = { enable = true; theme = "tjkirch"; plugins = [ "git" "sudo" ]; }; }; programs.neovim = { enable = true; }; home.keyboard = { layout = "us"; variant = "altgr-intl"; options = [ "nodeadkeys" # "caps:swapescape" ]; }; xsession = { enable = true; windowManager.command = "${pkgs.qtile}/bin/qtile"; initExtra = '' ${pkgs.autorandr}/bin/autorandr -c ${pkgs.feh}/bin/feh --bg-scale ${pkgs.nixos-artwork.wallpapers.simple-blue}/share/artwork/gnome/nix-wallpaper-simple-blue.png # Workaround for Libreoffice to force gtk3 export SAL_USE_VCLPLUGIN=gtk3 ''; }; home.file = { ".config/qtile/config.py" = { source = "${dotfiles}/home/.config/qtile/config.py"; }; ".config/roxterm.sourceforge.net" = { source = "${dotfiles}/home/.config/roxterm.sourceforge.net"; recursive = false; }; ".config/autorandr" = { source = "${dotfiles}/home/.config/autorandr"; recursive = true; }; }; services = { gnome-keyring.enable = true; blueman-applet.enable = true; screen-locker = { enable = true; inactiveInterval = 7; lockCmd = "${pkgs.xscreensaver}/bin/xscreensaver-command -lock"; }; xscreensaver.enable = true; network-manager-applet.enable = true; syncthing.enable = true; gpg-agent = { enable = true; enableScDaemon = true; enableSshSupport = true; grabKeyboardAndMouse = true; }; flameshot.enable = true; }; systemd.user = { startServices = true; services = { redshift-gtk = mkSimpleTrayService { execStart = "${pkgs.redshift}/bin/redshift-gtk -v -l 47.6691:9.1698 -t 7000:4500 -m randr"; }; pasystray = mkSimpleTrayService { execStart = "${pkgs.pasystray}/bin/pasystray"; }; cbatticon = mkSimpleTrayService { execStart = "${pkgs.cbatticon}/bin/cbatticon"; }; }; }; home.packages = [] ++ (with pkgs; [ # Version Control Systems git-crypt gitFull gitless # Filesystem Tools ntfs3g ddrescue ncdu unetbootin pcmanfm hdparm testdisk python27Packages.binwalk gptfdisk # Password Management gnupg (hiPrio pass) pass-otp qtpass rofi-pass yubikey-neo-manager yubikey-personalization yubikey-personalization-gui gnome3.gnome_keyring gnome3.seahorse # Code Editors xclip xsel # Archive Managers sshfsFuse xarchive p7zip zip unzip gzip lzop # X Tools/Libraries lightdm qtile feh xscreensaver gnome3.networkmanagerapplet autorandr arandr gnome3.gnome_themes_standard gnome3.adwaita-icon-theme lxappearance xorg.xcursorthemes # Misc Desktop Tools direnv ltunify solaar dex roxterm busyboxStatic xorg.xbacklight coreutils lsof pavucontrol x11_ssh_askpass xdotool xdg_utils xdg-user-dirs gnome3.dconf picocom glib.dev # contains gdbus tool # Misc Development Tools jq direnv ]); }; }