300 lines
6.3 KiB
Nix
300 lines
6.3 KiB
Nix
{ 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
|
|
]);
|
|
};
|
|
}
|