infra/nixos-configuration/common/steveej-live-usb/pkg.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
]);
};
}