nixconfigs/home/home.nix

365 lines
6.4 KiB
Nix
Raw Normal View History

2018-09-26 01:30:11 +02:00
{ pkgs, ... }:
with pkgs;
let
unstable = import <nixos-unstable> {};
2018-09-26 01:30:11 +02:00
mybrowser = firefox;
2019-11-12 17:59:59 +01:00
lorri = import (fetchTarball { url = "https://github.com/target/lorri/archive/rolling-release.tar.gz"; }) {};
pypi2nix = import (
pkgs.fetchgit {
url = "https://github.com/nix-community/pypi2nix";
rev = "v2.0.0";
sha256 = "sha256:1mrvbm78jnk7m44gvpa7l2iwrjiv9584f14vlcw9p334zxknpsfr";
}
) {};
2018-09-26 01:30:11 +02:00
desktopApps = [
mybrowser
2019-04-19 07:27:32 +02:00
falkon
2019-05-03 00:13:22 +02:00
thunderbird
2019-01-14 13:24:34 +01:00
calibre
dino
2019-10-10 01:05:02 +02:00
zotero
2019-01-14 13:24:34 +01:00
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
2019-11-12 17:59:59 +01:00
(tor-browser-bundle-bin.override { mediaSupport = true; pulseaudioSupport = true; })
2019-01-14 13:24:34 +01:00
pdfpc
quaternion
2019-10-10 01:05:02 +02:00
nheko
2019-02-25 20:59:29 +01:00
wire-desktop
2019-01-14 13:24:34 +01:00
gpx-viewer
gpxsee
2019-10-10 01:05:02 +02:00
cawbird
tootle
subsurface
2019-11-12 17:59:59 +01:00
(
pkgs.pidgin-with-plugins.override {
plugins = [ pkgs.pidginotr ];
}
)
2019-01-09 12:11:11 +01:00
2019-08-07 18:44:04 +02:00
# for Hibiscus banking software
jameica
2019-10-10 01:05:02 +02:00
#ToDo: which of these drivers is actually used?
geckodriver
chromedriver
2019-11-12 17:59:59 +01:00
];
2018-09-26 01:30:11 +02:00
graphicsApps = [
2019-01-14 13:24:34 +01:00
inkscape
2019-10-10 01:05:02 +02:00
darktable
2019-01-14 13:24:34 +01:00
hugin
luminanceHDR
exiftool
gimp
2019-11-12 17:59:59 +01:00
]
++ (
with gimpPlugins; [
resynthesizer2
fourier
lqrPlugin
2019-01-14 13:24:34 +01:00
]
2019-11-12 17:59:59 +01:00
);
2018-09-26 01:30:11 +02:00
multimediaApps = [
mpv
2019-01-14 13:24:34 +01:00
vlc
2019-10-10 01:05:02 +02:00
#amarok
2019-01-14 13:24:34 +01:00
clementine
youtube-dl
2019-10-10 01:05:02 +02:00
#sonic-pi
2019-01-14 13:24:34 +01:00
musescore
audacity
avidemux
linphone
picard
2019-05-03 00:13:22 +02:00
soundkonverter
2019-11-12 17:59:59 +01:00
];
2018-09-26 01:30:11 +02:00
cliApps = [
2018-10-14 16:57:02 +02:00
myVim
2019-01-14 13:24:34 +01:00
htop
tmux
httpie
ponysay
gti
2018-11-18 15:12:30 +01:00
tree
lsof
2019-01-14 13:24:34 +01:00
mosh
openssh
sshfsFuse
cryfs
2019-11-12 17:59:59 +01:00
smbnetfs # for FUSE smb mounting
2019-01-14 13:24:34 +01:00
sshuttle
thefuck
gnupg
unar
pwgen
pandoc
agrep
pdfgrep
torsocks
ncdu
psmisc # for killall
dos2unix
reptyr # re-bind running program to other tty
xclip
2019-02-11 22:15:45 +01:00
unzip
2019-11-12 17:59:59 +01:00
];
2018-09-26 01:30:11 +02:00
nixHelpers = [
2019-08-21 23:45:09 +02:00
lorri
2019-10-10 01:05:02 +02:00
nix-review
nixpkgs-fmt
pypi2nix
2019-11-12 17:59:59 +01:00
];
kdeTools = with kdeApplications; [
2018-09-26 01:30:11 +02:00
okular
2019-01-14 13:24:34 +01:00
redshift-plasma-applet
gwenview
yakuake
kmail
kontact
korganizer
akonadi-mime #for KOrganizer
kaddressbook
kdeconnect
dolphin
spectacle
kate
kleopatra
qdirstat
ark
kwalletmanager
2019-02-07 01:33:36 +01:00
ktouch
2019-01-13 23:37:09 +01:00
kcharselect
2019-01-14 13:24:34 +01:00
konversation
okteta
ktorrent
krdc
skanlite
akonadiconsole
plasma-browser-integration
2019-11-12 17:59:59 +01:00
]
++ (
with kdeFrameworks; [
networkmanager-qt
kcrash
plasma5.breeze-gtk
libsForQt5.phonon-backend-vlc
#(phonon-backend-vlc.override {qtbase=qt5.qtbase; qtx11extras=qt5.qtx11extras;})
2019-01-14 13:24:34 +01:00
]
2019-11-12 17:59:59 +01:00
);
2018-09-26 01:30:11 +02:00
devTools = [
curl
2019-01-14 13:24:34 +01:00
httpie
gdb
strace
ltrace
valgrind
zeal
gcc
kdevelop
qtcreator
shellcheck
mtr
wireshark
ripgrep
2019-08-21 23:45:09 +02:00
ghc
2019-11-12 17:59:59 +01:00
];
2018-09-26 01:30:11 +02:00
latexApps = [
texmaker
2019-10-10 01:05:02 +02:00
kile
2019-03-07 21:28:16 +01:00
biber
2019-01-14 13:24:34 +01:00
# customize texlive installation
2019-11-12 17:59:59 +01:00
(
texlive.combine {
inherit (texlive)
scheme-medium
2019-01-14 13:24:34 +01:00
2019-11-12 17:59:59 +01:00
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
;
}
)
2018-09-26 01:30:11 +02:00
];
pythonApps = with python3Packages; [
2019-01-14 13:24:34 +01:00
notebook
ipython
pip
numpy
matplotlib
jedi
flake8
mypy
]
2019-11-12 17:59:59 +01:00
++ (
with python2Packages; []
);
2018-09-26 01:30:11 +02:00
fonts = [
2019-01-14 13:24:34 +01:00
comic-neue
source-sans-pro
source-serif-pro
fira-code
ubuntu_font_family
twemoji-color-font
opensans-ttf
2019-11-12 17:59:59 +01:00
(iosevka.override { design = [ "slab" "term" ]; set = "serif"; })
(iosevka.override { privateBuildPlan = { design = [ "slab" "sp-term" ]; family = "Iosevka Serif"; }; set = "serif"; })
2018-10-31 00:20:35 +01:00
# TODO: vollkorn
2019-01-14 13:24:34 +01:00
# TODO: humor-sans
];
2019-08-08 01:48:20 +02:00
games = [
2019-10-10 01:05:02 +02:00
superTuxKart
#hedgewars
2019-08-08 01:48:20 +02:00
steam-run-native
2018-10-07 19:47:28 +02:00
];
2018-09-26 01:30:11 +02:00
in
{
2019-11-12 17:59:59 +01:00
home.packages = (
[]
2018-09-26 01:30:11 +02:00
++ desktopApps
++ latexApps
++ pythonApps
2019-01-14 13:24:34 +01:00
++ graphicsApps
++ cliApps
++ multimediaApps
++ devTools
++ kdeTools
++ fonts
++ nixHelpers
2019-08-08 01:48:20 +02:00
++ games
2018-09-26 01:30:11 +02:00
);
programs.home-manager.enable = true;
2018-10-31 00:20:35 +01:00
programs.home-manager.path = "$HOME/.nix-defexpr/channels/home-manager";
2019-01-09 12:15:08 +01:00
home.stateVersion = "18.09";
2018-10-31 00:20:35 +01:00
programs.direnv =
2019-11-12 17:59:59 +01:00
{
enable = true;
2019-01-14 13:24:34 +01:00
enableZshIntegration = true;
};
2018-10-14 16:57:02 +02:00
2019-11-12 17:59:59 +01:00
# programs.vim =
# { enable = true;
# };
2019-04-15 00:28:14 +02:00
programs.bat.enable = true;
2019-11-12 17:59:59 +01:00
2018-10-14 18:01:06 +02:00
services.gpg-agent =
2019-11-12 17:59:59 +01:00
{
enable = true;
2019-01-14 13:24:34 +01:00
enableSshSupport = true;
};
2019-05-14 15:33:26 +02:00
programs.ssh =
{
enable = true;
# ssh host config
matchBlocks =
import ./secrets/ssh_hosts.nix;
};
2019-11-12 17:59:59 +01:00
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"
2019-05-14 15:33:26 +02:00
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'';
2019-11-12 17:59:59 +01:00
terminal = "screen-256color";
};
2019-05-14 15:33:26 +02:00
2019-11-12 17:59:59 +01:00
# 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;
};
2019-11-12 17:59:59 +01:00
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"
];
};
2019-11-12 17:59:59 +01:00
};
2019-11-12 17:59:59 +01:00
sockets.lorri = {
Unit = {
Description = "Socket for lorri build daemon";
};
2019-11-12 17:59:59 +01:00
Socket = {
ListenStream = "%t/lorri/daemon.socket";
};
2019-11-12 17:59:59 +01:00
Install = {
WantedBy = [ "sockets.target" ];
};
};
2019-11-12 17:59:59 +01:00
};
2018-09-26 01:30:11 +02:00
}