297 lines
6.3 KiB
Nix
297 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)"
|
||
|
|
||
|
source <(hcloud completion zsh) # 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 = true;
|
||
|
};
|
||
|
".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
|
||
|
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
|
||
|
]);
|
||
|
};
|
||
|
}
|