nixconfigs/home/home.nix

335 lines
5.9 KiB
Nix

{ pkgs, ... }:
with pkgs;
let
unstable = import <nixos-unstable> {};
mybrowser = firefox;
lorri = import (fetchTarball { url = "https://github.com/target/lorri/archive/rolling-release.tar.gz"; }) { };
desktopApps = [
mybrowser
falkon
thunderbird
calibre
dino
zotero
keepassxc
ding
aspell
aspellDicts.de
aspellDicts.en
# for kate/KDE applications
hunspellDicts.de-de
hunspellDicts.en-us
hunspellDicts.en-gb-ise
seafile-client
alacritty
libreoffice-fresh
backintime-common
anki
signal-desktop
(tor-browser-bundle-bin.override {mediaSupport=true;pulseaudioSupport=true;})
virtualbox
pdfpc
quaternion
nheko
wire-desktop
gpx-viewer
gpxsee
cawbird
tootle
subsurface
(pkgs.pidgin-with-plugins.override {
plugins = [ pkgs.pidginotr ];})
# for Hibiscus banking software
jameica
#ToDo: which of these drivers is actually used?
geckodriver
chromedriver
];
graphicsApps = [
inkscape
darktable
hugin
luminanceHDR
exiftool
gimp
]
++ (with gimpPlugins; [
resynthesizer2
fourier
lqrPlugin
]);
multimediaApps = [
mpv
vlc
#amarok
clementine
youtube-dl
#sonic-pi
musescore
audacity
avidemux
linphone
picard
soundkonverter
];
cliApps = [
myVim
htop
tmux
httpie
ponysay
gti
tree
lsof
mosh
openssh
sshfsFuse
cryfs
smbnetfs # for FUSE smb mounting
sshuttle
thefuck
gnupg
unar
pwgen
pandoc
agrep
pdfgrep
torsocks
ncdu
psmisc # for killall
dos2unix
reptyr # re-bind running program to other tty
xclip
unzip
];
nixHelpers = [
lorri
nix-review
nixpkgs-fmt
];
kdeTools = with kdeApplications; [
okular
redshift-plasma-applet
gwenview
yakuake
kmail
kontact
korganizer
akonadi-mime #for KOrganizer
kaddressbook
kdeconnect
dolphin
spectacle
kate
kleopatra
qdirstat
ark
kwalletmanager
ktouch
kcharselect
konversation
okteta
ktorrent
krdc
skanlite
akonadiconsole
plasma-browser-integration
]
++ (with kdeFrameworks; [
networkmanager-qt
kcrash
plasma5.breeze-gtk
libsForQt5.phonon-backend-vlc
#(phonon-backend-vlc.override {qtbase=qt5.qtbase; qtx11extras=qt5.qtx11extras;})
]);
devTools = [
curl
httpie
gdb
strace
ltrace
valgrind
zeal
gcc
kdevelop
qtcreator
shellcheck
mtr
wireshark
ripgrep
ghc
];
latexApps = [
texmaker
kile
biber
# customize texlive installation
(texlive.combine {
inherit (texlive)
scheme-medium
xetex
luatex
unicode-math
fontspec
collection-binextra
collection-fontsrecommended
collection-latex
collection-latexextra
collection-latexrecommended
collection-langgerman
IEEEtran
moderncv
acronym
ccicons
fontawesome
biblatex
logreq
koma-script;
})
];
pythonApps = with python3Packages; [
notebook
ipython
pip
numpy
matplotlib
jedi
flake8
mypy
]
++ (with python2Packages; [
]);
fonts = [
comic-neue
source-sans-pro
source-serif-pro
fira-code
ubuntu_font_family
twemoji-color-font
opensans-ttf
(iosevka.override {design = [ "slab" "term" ]; set = "serif";})
# TODO: vollkorn
# TODO: humor-sans
];
games = [
superTuxKart
hedgewars
steam-run-native
];
in
{
home.packages = ([]
++ desktopApps
++ latexApps
++ pythonApps
++ graphicsApps
++ cliApps
++ multimediaApps
++ devTools
++ kdeTools
++ fonts
++ nixHelpers
++ games
);
programs.home-manager.enable = true;
programs.home-manager.path = "$HOME/.nix-defexpr/channels/home-manager";
home.stateVersion = "18.09";
programs.direnv =
{ enable = true;
enableZshIntegration = true;
};
# programs.vim =
# { enable = true;
# };
programs.bat.enable = true;
services.gpg-agent =
{ enable = true;
enableSshSupport = true;
};
programs.tmux = {
enable = true;
keyMode = "vi";
extraConfig =
# for direnv not messing up the environment
''set-option -g update-environment "DIRENV_DIFF DIRENV_DIR DIRENV_WATCHES"
set-environment -gu DIRENV_DIFF
set-environment -gu DIRENV_DIR
set-environment -gu DIRENV_WATCHES
set-environment -gu DIRENV_LAYOUT
bind-key -T copy-mode-vi 'v' send -X begin-selection
bind-key -T copy-mode-vi 'y' send -X copy-selection-and-cancel'';
terminal = "screen-256color";
};
# lorri daemon service
systemd.user = with lib; {
services.lorri = {
Unit = {
Description = "Lorri build daemon";
Documentation = "https://github.com/target/lorri";
ConditionUser = "!@system";
Requires = "lorri.socket";
After = "lorri.socket";
RefuseManualStart = true;
};
Service = {
ExecStart = "${lorri}/bin/lorri daemon";
PrivateTmp = true;
ProtectSystem = "strict";
WorkingDirectory = "%h";
Restart = "on-failure";
Environment =
let
path = with pkgs; makeSearchPath "bin" [ nix gnutar git mercurial ];
in
concatStringsSep " " [
"PATH=${path}"
"RUST_BACKTRACE=1"
];
};
};
sockets.lorri = {
Unit = {
Description = "Socket for lorri build daemon";
};
Socket = {
ListenStream = "%t/lorri/daemon.socket";
};
Install = {
WantedBy = [ "sockets.target" ];
};
};
};
}