From 13bd5e9000453a01afd6ab9a8f66b961e3f1c3f4 Mon Sep 17 00:00:00 2001 From: Stefan Junker Date: Wed, 31 Oct 2018 19:52:39 +0100 Subject: [PATCH] move all expressions to nix/; include modularized home-manager config --- README.md | 17 +- .../configuration/fullblown-workstation.nix | 394 ++++++++++++++++++ .../configuration/removable-desktop.nix | 161 +++++++ .../configuration/steveej-qtile-desktop.nix | 381 +++++++++++++++++ nix/home-manager/lib.nix | 22 + nix/home-manager/profiles/common.nix | 52 +++ nix/home-manager/profiles/qtile-desktop.nix | 278 ++++++++++++ nix/home-manager/programs/chromium.nix | 23 + nix/home-manager/programs/emacs.nix | 24 ++ nix/home-manager/programs/firefox.nix | 19 + nix/home-manager/programs/homeshick.nix | 38 ++ nix/home-manager/programs/libreoffice.nix | 14 + nix/home-manager/programs/neovim.nix | 152 +++++++ .../home-manager/programs}/neovim/vimrc | 0 nix/home-manager/programs/pass.nix | 24 ++ nix/home-manager/programs/zsh.nix | 79 ++++ {nixops => nix/ops}/nano/configuration.nix | 0 .../ops}/nano/hardware-configuration.nix | 0 {nixops => nix/ops}/nanos@kn.nix | 0 {nixos => nix/os}/devices/default.nix | 4 +- .../os}/devices/steveej-laptop/boot.nix | 9 - .../devices/steveej-laptop/configuration.nix | 0 .../os}/devices/steveej-laptop/hw.nix | 0 .../os}/devices/steveej-laptop/pkg.nix | 2 +- .../os}/devices/steveej-laptop/system.nix | 0 .../os}/devices/steveej-laptop/user.nix | 0 .../configuration.nix | 0 .../steveej-live-mmc-SL32G_0x259093f6/hw.nix | 0 .../system.nix | 0 .../steveej-utilitepro/configuration.nix | 0 .../hardware-configuration.nix | 0 .../utilitepro-kernel-dts-Makefile.patch | 0 .../patches/utilitepro-kernel-dts.patch | 0 {nixos => nix/os}/lib/default.nix | 0 {nixos => nix/os}/modules/encryptedDisk.nix | 3 +- {nixos => nix/os}/modules/natrouter.nix | 0 nix/os/profiles/common/boot.nix | 17 + .../os}/profiles/common/configuration.nix | 1 + {nixos => nix/os}/profiles/common/pkg.nix | 0 {nixos => nix/os}/profiles/common/system.nix | 0 {nixos => nix/os}/profiles/common/user.nix | 0 .../os}/profiles/graphical/configuration.nix | 0 .../os}/profiles/graphical/system.nix | 0 .../os}/profiles/install-medium/iso/Justfile | 0 .../os}/profiles/install-medium/iso/iso.nix | 0 .../os}/profiles/removable-medium/boot.nix | 20 +- .../removable-medium/configuration.nix | 0 .../os}/profiles/removable-medium/hw.nix | 0 nix/os/profiles/removable-medium/pkg.nix | 27 ++ .../os}/profiles/removable-medium/system.nix | 0 {pkgs => nix/pkgs}/browserpass/default.nix | 0 {pkgs => nix/pkgs}/nomad/default.nix | 0 {pkgs => nix/pkgs}/nozbe/default.nix | 0 {pkgs => nix/pkgs}/staruml.nix | 0 .../tests}/buildvmwithbootloader/build-vm.nix | 0 .../tests}/buildvmwithbootloader/build-vm.sh | 0 .../buildvmwithbootloader/configuration.nix | 0 .../tests}/buildvmwithbootloader/debug-vm.sh | 0 .../tests}/buildvmwithbootloader/result | 0 {tests => nix/tests}/test-vm.nix | 0 {variables => nix/variables}/keys.nix | 0 .../variables}/passwords.crypt.nix | Bin nixos/profiles/removable-medium/pkg.nix | 332 --------------- pkgs-configuration/config.nix | 14 - .../home-manager/steveej/neovim/default.nix | 130 ------ 65 files changed, 1726 insertions(+), 511 deletions(-) create mode 100644 nix/home-manager/configuration/fullblown-workstation.nix create mode 100644 nix/home-manager/configuration/removable-desktop.nix create mode 100644 nix/home-manager/configuration/steveej-qtile-desktop.nix create mode 100644 nix/home-manager/lib.nix create mode 100644 nix/home-manager/profiles/common.nix create mode 100644 nix/home-manager/profiles/qtile-desktop.nix create mode 100644 nix/home-manager/programs/chromium.nix create mode 100644 nix/home-manager/programs/emacs.nix create mode 100644 nix/home-manager/programs/firefox.nix create mode 100644 nix/home-manager/programs/homeshick.nix create mode 100644 nix/home-manager/programs/libreoffice.nix create mode 100644 nix/home-manager/programs/neovim.nix rename {pkgs-configuration/home-manager/steveej => nix/home-manager/programs}/neovim/vimrc (100%) create mode 100644 nix/home-manager/programs/pass.nix create mode 100644 nix/home-manager/programs/zsh.nix rename {nixops => nix/ops}/nano/configuration.nix (100%) rename {nixops => nix/ops}/nano/hardware-configuration.nix (100%) rename {nixops => nix/ops}/nanos@kn.nix (100%) rename {nixos => nix/os}/devices/default.nix (96%) rename {nixos => nix/os}/devices/steveej-laptop/boot.nix (57%) rename {nixos => nix/os}/devices/steveej-laptop/configuration.nix (100%) rename {nixos => nix/os}/devices/steveej-laptop/hw.nix (100%) rename {nixos => nix/os}/devices/steveej-laptop/pkg.nix (97%) rename {nixos => nix/os}/devices/steveej-laptop/system.nix (100%) rename {nixos => nix/os}/devices/steveej-laptop/user.nix (100%) rename {nixos => nix/os}/devices/steveej-live-mmc-SL32G_0x259093f6/configuration.nix (100%) rename {nixos => nix/os}/devices/steveej-live-mmc-SL32G_0x259093f6/hw.nix (100%) rename {nixos => nix/os}/devices/steveej-live-mmc-SL32G_0x259093f6/system.nix (100%) rename {nixos => nix/os}/devices/steveej-utilitepro/configuration.nix (100%) rename {nixos => nix/os}/devices/steveej-utilitepro/hardware-configuration.nix (100%) rename {nixos => nix/os}/devices/steveej-utilitepro/patches/utilitepro-kernel-dts-Makefile.patch (100%) rename {nixos => nix/os}/devices/steveej-utilitepro/patches/utilitepro-kernel-dts.patch (100%) rename {nixos => nix/os}/lib/default.nix (100%) rename {nixos => nix/os}/modules/encryptedDisk.nix (96%) rename {nixos => nix/os}/modules/natrouter.nix (100%) create mode 100644 nix/os/profiles/common/boot.nix rename {nixos => nix/os}/profiles/common/configuration.nix (84%) rename {nixos => nix/os}/profiles/common/pkg.nix (100%) rename {nixos => nix/os}/profiles/common/system.nix (100%) rename {nixos => nix/os}/profiles/common/user.nix (100%) rename {nixos => nix/os}/profiles/graphical/configuration.nix (100%) rename {nixos => nix/os}/profiles/graphical/system.nix (100%) rename {nixos => nix/os}/profiles/install-medium/iso/Justfile (100%) rename {nixos => nix/os}/profiles/install-medium/iso/iso.nix (100%) rename {nixos => nix/os}/profiles/removable-medium/boot.nix (62%) rename {nixos => nix/os}/profiles/removable-medium/configuration.nix (100%) rename {nixos => nix/os}/profiles/removable-medium/hw.nix (100%) create mode 100644 nix/os/profiles/removable-medium/pkg.nix rename {nixos => nix/os}/profiles/removable-medium/system.nix (100%) rename {pkgs => nix/pkgs}/browserpass/default.nix (100%) rename {pkgs => nix/pkgs}/nomad/default.nix (100%) rename {pkgs => nix/pkgs}/nozbe/default.nix (100%) rename {pkgs => nix/pkgs}/staruml.nix (100%) rename {tests => nix/tests}/buildvmwithbootloader/build-vm.nix (100%) rename {tests => nix/tests}/buildvmwithbootloader/build-vm.sh (100%) rename {tests => nix/tests}/buildvmwithbootloader/configuration.nix (100%) rename {tests => nix/tests}/buildvmwithbootloader/debug-vm.sh (100%) rename {tests => nix/tests}/buildvmwithbootloader/result (100%) rename {tests => nix/tests}/test-vm.nix (100%) rename {variables => nix/variables}/keys.nix (100%) rename {variables => nix/variables}/passwords.crypt.nix (100%) delete mode 100644 nixos/profiles/removable-medium/pkg.nix delete mode 100644 pkgs-configuration/config.nix delete mode 100644 pkgs-configuration/home-manager/steveej/neovim/default.nix diff --git a/README.md b/README.md index e051c26..16d479d 100644 --- a/README.md +++ b/README.md @@ -6,12 +6,21 @@ In the unlikely case that you actually read this and have any questions please d ## Roadmap - All graphical systems (incl. install media) must have - - [x] Full-disk encryption by default + - [x] Full-disk encryption by default - [x] Yubikey support with SSH auth - [ ] Migrate all devices to new structure - [x] Encrypted Install media - [ ] steveej-laptop - [ ] steveej-laptop-work +- [ ] Migrate home environment to new structure + - [x] home-manager + - [x] pkgs-configuration + - [ ] development environments +- [ ] (Semi-) automatic synchronization of important repositories + - [ ] Modification strategy + - [ ] dotfiles + - [ ] password-store + - [ ] this repo - [ ] Toplevel Justfile for simple actions - [x] mount/umount disks - [x] install to mounted disk @@ -21,12 +30,6 @@ In the unlikely case that you actually read this and have any questions please d - [ ] annotate recipes with some documentation - [ ] declare shell.nix with runtime deps - [ ] Document bootstrap process -- [ ] Incorporate home environment - - [ ] home-manager - - [ ] dotfiles - - [ ] Modification strategy for tracked dotfiles - - [ ] pkgs-configuration - - [ ] development environments - [ ] Automatic backups - [ ] tracked dotfiles - [ ] detect new and untracked dotfiles? diff --git a/nix/home-manager/configuration/fullblown-workstation.nix b/nix/home-manager/configuration/fullblown-workstation.nix new file mode 100644 index 0000000..6cc45d6 --- /dev/null +++ b/nix/home-manager/configuration/fullblown-workstation.nix @@ -0,0 +1,394 @@ +{ pkgs +, config, +... }: + +let + # gitpkgs = import /home/steveej/src/github/NixOS/nixpkgs {}; + unstablepkgs = import {}; + +in { + imports = [ + ../profiles/common.nix + ../profiles/qtile-desktop.nix + ../programs/emacs.nix + ../programs/firefox.nix + ../programs/chromium.nix + ../programs/homeshick.nix + ../programs/libreoffice.nix + ../programs/neovim.nix + ../programs/pass.nix + ../programs/zsh.nix + ]; + + nixpkgs.config = { + pidgin = { + openssl = true; + gnutls = true; + }; + + packageOverrides = pkgs: with pkgs; { + busyboxStatic = busybox.override { + enableStatic = true; + extraConfig = '' + CONFIG_STATIC y + CONFIG_INSTALL_APPLET_DONT y + CONFIG_INSTALL_APPLET_SYMLINKS n + ''; + }; + + dropbearStatic = dropbear.override { + enableStatic = true; + }; + + myPython36 = python36Full.withPackages (ps: with ps; [ + pylint pep8 yapf flake8 + # autopep8 (broken) + # pylint (broken) + ipython + llfuse + dugong + defusedxml + wheel + pip + virtualenv + pypi2nix + cffi + pyopenssl + urllib3 + mistune + + flask + + pyaml + ] ++ [ + pkgs.libffi + ]); + + staruml = callPackage ../../pkgs/staruml.nix { inherit (gnome2) GConf; libgcrypt = libgcrypt_1_5; }; + }; + }; + + home.sessionVariables = { + GOPATH="$HOME/src/go"; + + PATH=pkgs.lib.concatStringsSep ":" [ + "$HOME/.local/bin" + "$HOME/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin" + "$HOME/.cargo/bin" + "$HOME/.gem/ruby/2.3.0/bin" + "$HOME/.npm-packages/bin" + "$GOPATH/bin" + "$PATH" + ]; + }; + + home.packages = [] + ++ (with pkgs; [ + # Authentication + cacert + fprintd + openssl + mkpasswd + + # Nix package related tools + patchelf + nix-index + nox + nix-prefetch-scripts + + # Version Control Systems + git-crypt + unstablepkgs.pijul + gitFull + gitless + mr + + gitRepo + + # Cloud/Remote System Management + google-cloud-sdk + ansible + nixops + unstablepkgs.terraform + awscli + hcloud + + # Process/System Administration + htop + gnome3.gnome-tweak-tool + xorg.xhost + dmidecode + python36Packages.glances + evtest + + # Archive Managers + sshfsFuse + xarchive + p7zip + zip + unzip + gzip + lzop + + # Password Management + gnupg + yubikey-neo-manager + yubikey-personalization + yubikey-personalization-gui + gnome3.gnome_keyring + gnome3.seahorse + + # Security + tpm-tools + tpmmanager + + # Web Browsers + links2 + + # Language Support + hunspellDicts.en-us + hunspellDicts.de-de + + # Messaging/Communication + pidgin + hexchat + aspellDicts.en + aspellDicts.de + unstablepkgs.skype + zoom-us + unstablepkgs.bluejeans-gui + thunderbird + gnome3.evolution # gnome4.glib_networking + tdesktop + gnome3.cheese + + # Virtualization + virtmanager + qemu + # virtualbox + vagrant + unstablepkgs.rkt + python27Packages.docker_compose + # unstablepkgs.kubernetes + unstablepkgs.minikube + unstablepkgs.openshift + # (unstablepkgs.minikube.overrideAttrs (oldAttrs: { + # patches = oldAttrs.patches ++ [ + # (builtins.fetchurl { url ="https://patch-diff.githubusercontent.com/raw/kubernetes/minikube/pull/2517.diff"; }) + # ]; + # })) + + # Remote Control Tools + remmina + freerdp + x2goclient + teamviewer + + # Audio/Video Players + ffmpeg + vlc + audacity + spotify + smtube + python27Packages.youtube-dl-light + screenkey + quvi + + # Network Tools + openvpn + tcpdump + iftop + iperf + bind + socat + + # samba + iptables + nftables + wireshark + + # Code Editors + xclip + xsel + unstablepkgs.vscode + # (vscode-with-extensions.override { + # # When the extension is already available in the default extensions set. + # vscodeExtensions = with vscode-extensions; [ + # ] + # # Concise version from the vscode market place when not available in the default set. + # ++ vscode-utils.extensionsFromVscodeMarketplace [ + # { + # name = "vsliveshare"; + # publisher = "MS-vsliveshare"; + # version = "0.3.198"; + # sha256 = "019ffyxca3qnqyz1fr7vh0plfdkc3ikr8v295z846lghvwlzjqdh"; + # } + # ]; + # }) + + unstablepkgs.atom + + # Image/Graphic/Design Tools + gnome3.eog + gimp + imagemagick + exiv2 + graphviz + inkscape + ## barcode + qrencode + zbar + feh + # digikam + + + # Modelling Tools + plantuml + umlet + staruml + eclipses.eclipse-modeling + dia + astah-community + + # Misc Development Tools + qrcode + travis + jq + prometheus + cdrtools + + # Document Processing and Management + unstablepkgs.zathura + mendeley + jabref + zotero + hugo + pandoc + + # LaTeX + perlPackages.YAMLTiny + perlPackages.FileHomeDir + perlPackages.UnicodeLineBreak + (texlive.combine { + inherit (texlive) + scheme-small + texlive-de + texlive-en + texlive-scripts + collection-langgerman + + latexindent + latexmk + + algorithms + cm-super + + preprint + enumitem + draftwatermark + everypage + ulem + placeins + minted ifplatform fvextra xstring framed + ; + }) + + pdftk + masterpdfeditor + + # File Synchronzation + seafile-client + syncthing + grive2 + dropbox + # gocryptfs + # hubicfuse + # s3ql + # rclone + rsync + + # Filesystem Tools + ntfs3g + ddrescue + ncdu + unstablepkgs.woeusb + unetbootin + pcmanfm + hdparm + testdisk + python27Packages.binwalk + gptfdisk + + # games + zeroad + + # Compilers & Toolchains + autoconf + automake + libtool + gcc + pkgconfig + binutils + valgrind + gdb + cgdb + man-pages + gnumake + shellcheck + bazel + + ## Android + androidsdk + + ## Java + jre + openjdk + + ## Ruby + ruby + + ## Python + myPython36 + pypi2nix + + ## Webdev + nodejs-8_x + npm2nix + emscripten + etcd + sigal + + # Code generators + unstablepkgs.swagger-codegen + + # Misc Desktop Tools + ltunify + solaar + dex + roxterm + # kitty + busyboxStatic + xorg.xbacklight + coreutils + lsof + pavucontrol + x11_ssh_askpass + xdotool + xdg_utils + xdg-user-dirs + gnome3.dconf + picocom + glib.dev # contains gdbus tool + + # Screen recording + gtk-recordmydesktop # can't select the window + qt-recordmydesktop + vokoscreen + shutter + # kazam # doesn't start + # xvidcap # doesn't keep the recording rectangle + obs-studio + shotcut + openshot-qt + ]); +} diff --git a/nix/home-manager/configuration/removable-desktop.nix b/nix/home-manager/configuration/removable-desktop.nix new file mode 100644 index 0000000..2046dcb --- /dev/null +++ b/nix/home-manager/configuration/removable-desktop.nix @@ -0,0 +1,161 @@ +{ pkgs +, config, +... }: + +let + # gitpkgs = import /home/steveej/src/github/NixOS/nixpkgs {}; + unstablepkgs = import {}; + +in { + imports = [ + ../profiles/common.nix + ../profiles/qtile-desktop.nix + ../programs/emacs.nix + ../programs/firefox.nix + ../programs/chromium.nix + ../programs/homeshick.nix + ../programs/libreoffice.nix + ../programs/neovim.nix + ../programs/pass.nix + ../programs/zsh.nix + ]; + + nixpkgs.config = { + pidgin = { + openssl = true; + gnutls = true; + }; + + packageOverrides = pkgs: with pkgs; { + myPython36 = python36Full.withPackages (ps: with ps; [ + pylint pep8 yapf flake8 + # autopep8 (broken) + # pylint (broken) + ipython + llfuse + dugong + defusedxml + wheel + pip + virtualenv + pypi2nix + cffi + pyopenssl + urllib3 + mistune + + flask + + pyaml + ] ++ [ + pkgs.libffi + ]); + }; + }; + + home.sessionVariables = { + }; + + home.packages = [] + ++ (with pkgs; [ + # Authentication + cacert + fprintd + openssl + mkpasswd + + # Nix package related tools + patchelf + nix-index + nox + nix-prefetch-scripts + + # Version Control Systems + git-crypt + unstablepkgs.pijul + gitFull + gitless + mr + gitRepo + + # Process/System Administration + htop + gnome3.gnome-tweak-tool + xorg.xhost + dmidecode + python36Packages.glances + evtest + + # Archive Managers + sshfsFuse + xarchive + p7zip + zip + unzip + gzip + lzop + + # Password Management + gnupg + gnome3.gnome_keyring + gnome3.seahorse + + # Remote Control Tools + remmina + freerdp + x2goclient + + # Network Tools + openvpn + tcpdump + iftop + iperf + bind + socat + + # samba + iptables + nftables + wireshark + + # Code Editors + xclip + xsel + unstablepkgs.vscode + + # Image/Graphic/Design Tools + gnome3.eog + gimp + inkscape + + # Misc Development Tools + qrcode + jq + cdrtools + + # Document Processing and Management + unstablepkgs.zathura + + # File Synchronzation + rsync + + # Filesystem Tools + ntfs3g + ddrescue + ncdu + unstablepkgs.woeusb + unetbootin + pcmanfm + hdparm + testdisk + python27Packages.binwalk + gptfdisk + + androidsdk + + ## Python + myPython36 + + busyboxStatic + ]); +} diff --git a/nix/home-manager/configuration/steveej-qtile-desktop.nix b/nix/home-manager/configuration/steveej-qtile-desktop.nix new file mode 100644 index 0000000..eef2f4f --- /dev/null +++ b/nix/home-manager/configuration/steveej-qtile-desktop.nix @@ -0,0 +1,381 @@ +{ pkgs +, config, +... }: + +let + # gitpkgs = import /home/steveej/src/github/NixOS/nixpkgs {}; + unstablepkgs = import {}; + +in { + imports = [ + ../profiles/common.nix + ../profiles/qtile-desktop.nix + ../programs/emacs.nix + ../programs/firefox.nix + ../programs/chromium.nix + ../programs/homeshick.nix + ../programs/libreoffice.nix + ../programs/neovim.nix + ../programs/pass.nix + ../programs/zsh.nix + ]; + + nixpkgs.config = { + pidgin = { + openssl = true; + gnutls = true; + }; + + packageOverrides = pkgs: with pkgs; { + myPython36 = python36Full.withPackages (ps: with ps; [ + pylint pep8 yapf flake8 + # autopep8 (broken) + # pylint (broken) + ipython + llfuse + dugong + defusedxml + wheel + pip + virtualenv + pypi2nix + cffi + pyopenssl + urllib3 + mistune + + flask + + pyaml + ] ++ [ + pkgs.libffi + ]); + + staruml = callPackage ../../pkgs/staruml.nix { inherit (gnome2) GConf; libgcrypt = libgcrypt_1_5; }; + }; + }; + + home.sessionVariables = { + GOPATH="$HOME/src/go"; + + PATH=pkgs.lib.concatStringsSep ":" [ + "$HOME/.local/bin" + "$HOME/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin" + "$HOME/.cargo/bin" + "$HOME/.gem/ruby/2.3.0/bin" + "$HOME/.npm-packages/bin" + "$GOPATH/bin" + "$PATH" + ]; + }; + + home.packages = [] + ++ (with pkgs; [ + # Authentication + cacert + fprintd + openssl + mkpasswd + + # Nix package related tools + patchelf + nix-index + nox + nix-prefetch-scripts + + # Version Control Systems + git-crypt + unstablepkgs.pijul + gitFull + gitless + mr + + gitRepo + + # Cloud/Remote System Management + google-cloud-sdk + ansible + nixops + unstablepkgs.terraform + awscli + hcloud + + # Process/System Administration + htop + gnome3.gnome-tweak-tool + xorg.xhost + dmidecode + python36Packages.glances + evtest + + # Archive Managers + sshfsFuse + xarchive + p7zip + zip + unzip + gzip + lzop + + # Password Management + gnupg + yubikey-neo-manager + yubikey-personalization + yubikey-personalization-gui + gnome3.gnome_keyring + gnome3.seahorse + + # Security + tpm-tools + tpmmanager + + # Web Browsers + links2 + + # Language Support + hunspellDicts.en-us + hunspellDicts.de-de + + # Messaging/Communication + pidgin + hexchat + aspellDicts.en + aspellDicts.de + unstablepkgs.skype + zoom-us + unstablepkgs.bluejeans-gui + thunderbird + gnome3.evolution # gnome4.glib_networking + tdesktop + gnome3.cheese + + # Virtualization + virtmanager + qemu + # virtualbox + vagrant + unstablepkgs.rkt + python27Packages.docker_compose + # unstablepkgs.kubernetes + unstablepkgs.minikube + unstablepkgs.openshift + # (unstablepkgs.minikube.overrideAttrs (oldAttrs: { + # patches = oldAttrs.patches ++ [ + # (builtins.fetchurl { url ="https://patch-diff.githubusercontent.com/raw/kubernetes/minikube/pull/2517.diff"; }) + # ]; + # })) + + # Remote Control Tools + remmina + freerdp + x2goclient + teamviewer + + # Audio/Video Players + ffmpeg + vlc + audacity + spotify + smtube + python27Packages.youtube-dl-light + screenkey + quvi + + # Network Tools + openvpn + tcpdump + iftop + iperf + bind + socat + + # samba + iptables + nftables + wireshark + + # Code Editors + xclip + xsel + unstablepkgs.vscode + # (vscode-with-extensions.override { + # # When the extension is already available in the default extensions set. + # vscodeExtensions = with vscode-extensions; [ + # ] + # # Concise version from the vscode market place when not available in the default set. + # ++ vscode-utils.extensionsFromVscodeMarketplace [ + # { + # name = "vsliveshare"; + # publisher = "MS-vsliveshare"; + # version = "0.3.198"; + # sha256 = "019ffyxca3qnqyz1fr7vh0plfdkc3ikr8v295z846lghvwlzjqdh"; + # } + # ]; + # }) + + unstablepkgs.atom + + # Image/Graphic/Design Tools + gnome3.eog + gimp + imagemagick + exiv2 + graphviz + inkscape + ## barcode + qrencode + zbar + feh + # digikam + + + # Modelling Tools + plantuml + umlet + staruml + eclipses.eclipse-modeling + dia + astah-community + + # Misc Development Tools + qrcode + travis + jq + prometheus + cdrtools + + # Document Processing and Management + unstablepkgs.zathura + mendeley + jabref + zotero + hugo + pandoc + + # LaTeX + perlPackages.YAMLTiny + perlPackages.FileHomeDir + perlPackages.UnicodeLineBreak + (texlive.combine { + inherit (texlive) + scheme-small + texlive-de + texlive-en + texlive-scripts + collection-langgerman + + latexindent + latexmk + + algorithms + cm-super + + preprint + enumitem + draftwatermark + everypage + ulem + placeins + minted ifplatform fvextra xstring framed + ; + }) + + pdftk + masterpdfeditor + + # File Synchronzation + seafile-client + syncthing + grive2 + dropbox + # gocryptfs + # hubicfuse + # s3ql + # rclone + rsync + + # Filesystem Tools + ntfs3g + ddrescue + ncdu + unstablepkgs.woeusb + unetbootin + pcmanfm + hdparm + testdisk + python27Packages.binwalk + gptfdisk + + # games + zeroad + + # Compilers & Toolchains + autoconf + automake + libtool + gcc + pkgconfig + binutils + valgrind + gdb + cgdb + man-pages + gnumake + shellcheck + bazel + + ## Android + androidsdk + + ## Java + jre + openjdk + + ## Ruby + ruby + + ## Python + myPython36 + pypi2nix + + ## Webdev + nodejs-8_x + npm2nix + emscripten + etcd + sigal + + # Code generators + unstablepkgs.swagger-codegen + + # Misc Desktop Tools + ltunify + solaar + dex + roxterm + # kitty + busyboxStatic + xorg.xbacklight + coreutils + lsof + pavucontrol + x11_ssh_askpass + xdotool + xdg_utils + xdg-user-dirs + gnome3.dconf + picocom + glib.dev # contains gdbus tool + + # Screen recording + gtk-recordmydesktop # can't select the window + qt-recordmydesktop + vokoscreen + shutter + # kazam # doesn't start + # xvidcap # doesn't keep the recording rectangle + obs-studio + shotcut + openshot-qt + ]); +} diff --git a/nix/home-manager/lib.nix b/nix/home-manager/lib.nix new file mode 100644 index 0000000..0c240cc --- /dev/null +++ b/nix/home-manager/lib.nix @@ -0,0 +1,22 @@ +{ +}: + +let + +in { + mkSimpleTrayService = { execStart }: { + Unit = { + Description = "pasystray applet"; + After = [ "graphical-session-pre.target" ]; + PartOf = [ "graphical-session.target" ]; + }; + + Install = { + WantedBy = [ "graphical-session.target" ]; + }; + + Service = { + ExecStart = execStart; + }; + }; +} diff --git a/nix/home-manager/profiles/common.nix b/nix/home-manager/profiles/common.nix new file mode 100644 index 0000000..06fe50c --- /dev/null +++ b/nix/home-manager/profiles/common.nix @@ -0,0 +1,52 @@ +{ pkgs, +... +}: + +let +in { + programs.home-manager.enable = true; + programs.home-manager.path = https://github.com/rycee/home-manager/archive/master.tar.gz; + + nixpkgs.config = { + allowBroken = true; + allowUnfree = true; + + # TODO: move this to a pkgs overlay + packageOverrides = pkgs: with pkgs; { + busyboxStatic = busybox.override { + enableStatic = true; + extraConfig = '' + CONFIG_STATIC y + CONFIG_INSTALL_APPLET_DONT y + CONFIG_INSTALL_APPLET_SYMLINKS n + ''; + }; + + dropbearStatic = dropbear.override { + enableStatic = true; + }; + }; + }; + + home.keyboard = { + layout = "us"; + variant = "altgr-intl"; + options = [ + "nodeadkeys" + # "caps:swapescape" + ]; + }; + + programs.direnv.enable = true; + + home.sessionVariables = { + NIXPKGS_ALLOW_UNFREE = "1"; + # Don't create .pyc files. + PYTHONDONTWRITEBYTECODE = "1"; + + HOMESHICK_DIR="${pkgs.homeshick}"; + }; + + programs.command-not-found.enable = true; + programs.fzf.enable = true; +} diff --git a/nix/home-manager/profiles/qtile-desktop.nix b/nix/home-manager/profiles/qtile-desktop.nix new file mode 100644 index 0000000..dd35838 --- /dev/null +++ b/nix/home-manager/profiles/qtile-desktop.nix @@ -0,0 +1,278 @@ +{ pkgs +, ... +}: + +let + inherit (import ../lib.nix { }) + mkSimpleTrayService + ; + + qtileConfig = pkgs.writeScript "config.py" '' +from libqtile.config import Key, Screen, Group, Drag, Click +from libqtile.command import lazy +from libqtile import layout, bar, widget +from libqtile import hook + +import logging, os +logger = logging.getLogger() +logger.setLevel(logging.WARN) + +handler = logging.handlers.RotatingFileHandler( + os.path.join(os.getenv('HOME'), '.qtilelog'), maxBytes=10240000, + backupCount=7 +) +handler.setLevel(logging.WARN) +logger.addHandler(handler) + +@hook.subscribe.screen_change +def restart_on_randr(qtile, ev): + import time + + with open(os.path.join(os.environ['HOME'], ".qtilelastrestart"), "w"): + pass + + lastRestart = 0 + with open(os.path.join(os.environ['HOME'], ".qtilelastrestart"), "r+") as lastRestartFile: + lastRestartStr = lastRestartFile.read() + if len(lastRestartStr) > 0: + lastRestart = float(lastRestartStr) + + print("screen changed. (last change: %s)" % lastRestart) + + delta=time.time()-lastRestart + if delta > 3: + import subprocess + lastRestartFile.seek(0) + lastRestartFile.write("%s" % time.time()) + lastRestartFile.truncate() + + subprocess.call(["autorandr","-c"]) + qtile.cmd_restart() + else: + print("screen is changing too fast: %s" % delta) + +active_screen = 0 +@hook.subscribe.client_focus +def focus_changed(window): + global active_screen + pass + active_screen = window.group.screen.index + +@hook.subscribe.current_screen_change +def move_widget(): + global active_screen + systray = widget.Systray() + logging.warn("Screen changed to %i" % active_screen) + +key_super = "mod4" +key_alt = "mod1" +key_control = "control" + +keys = [ + # https://github.com/qtile/qtile/blob/develop/libqtile/xkeysyms.py + Key([key_super], "Return", lazy.spawn("${pkgs.roxterm}/bin/roxterm")), + Key([key_super], "backslash", lazy.spawn("${pkgs.roxterm}/bin/roxterm")), + Key([key_super], "apostrophe", lazy.spawn("${pkgs.roxterm}/bin/roxterm")), + Key([key_super], "r", lazy.spawncmd()), + Key([key_super], "w", lazy.window.kill()), + +# Key([key_alt, key_super], "l", lazy.spawn("xscreensaver-command -lock")), +# Key([key_alt, key_super], "l", lazy.spawn("sh -c '(sleep 1; xset dpms force off) & xautolock -locknow'")), +# Key([key_alt, key_super], "l", lazy.spawn("light-locker-command -l")), +# Key([key_alt, key_super], "l", lazy.spawn("dm-tool lock")), + Key([key_alt, key_super], "l", lazy.spawn('${pkgs.bash}/bin/sh -c "loginctl lock-session $XDG_SESSION_ID"')), + Key([key_alt, key_super], "s", lazy.spawn("${pkgs.systemd}/bin/systemctl suspend")), + + Key([key_super, key_control], "r", lazy.restart()), + Key([key_super, key_control], "q", lazy.shutdown()), + + # Toggle between different layouts as defined below + Key([key_super], "Tab", lazy.next_layout()), + + # MonadTall keybindings + Key([key_super], "h", lazy.layout.left()), + Key([key_super], "l", lazy.layout.right()), + Key([key_super], "j", lazy.layout.down()), + Key([key_super], "k", lazy.layout.up()), + Key([key_super, key_control], "h", lazy.layout.shuffle_left()), + Key([key_super, key_control], "l", lazy.layout.shuffle_right()), + Key([key_super, key_control], "j", lazy.layout.shuffle_down()), + Key([key_super, key_control], "k", lazy.layout.shuffle_up()), + Key([key_super, key_control], "space", lazy.layout.toggle_split()), + Key([key_control, key_alt], "h", lazy.layout.grow_left()), + Key([key_control, key_alt], "j", lazy.layout.grow_down()), + Key([key_control, key_alt], "k", lazy.layout.grow_up()), + Key([key_control, key_alt], "l", lazy.layout.grow_right()), + Key([key_super], "n", lazy.layout.normalize()), + Key([key_super], "o", lazy.layout.maximize()), + + # Stack + Key([key_super], "h", lazy.layout.previous().when('stack')), + Key([key_super], "l", lazy.layout.next().when('stack')), + Key([key_super], "j", lazy.layout.up().when('stack')), + Key([key_super], "k", lazy.layout.down().when('stack')), + Key([key_super, key_control], "j", lazy.layout.shuffle_up().when('stack')), + Key([key_super, key_control], "k", lazy.layout.shuffle_down().when('stack')), + Key([key_super, key_control], "h", lazy.layout.client_to_previous().when('stack')), + Key([key_super, key_control], "l", lazy.layout.client_to_next().when('stack')), + + # Columns + Key([key_super], "h", lazy.layout.left().when('columns')), + Key([key_super], "l", lazy.layout.right().when('columns')), + Key([key_super], "j", lazy.layout.down().when('columns')), + Key([key_super], "k", lazy.layout.up().when('columns')), + Key([key_super, key_control], "j", lazy.layout.shuffle_down().when('columns')), + Key([key_super, key_control], "k", lazy.layout.shuffle_up().when('columns')), + Key([key_super, key_control], "h", lazy.layout.shuffle_left().when('columns')), + Key([key_super, key_control], "l", lazy.layout.shuffle_right().when('columns')), + + # Max + Key([key_super], "j", lazy.layout.next()), + Key([key_super], "k", lazy.layout.previous()), + + # Multimedia Keys + Key([], "XF86AudioPlay", lazy.spawn("${pkgs.dbus}/bin/dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.PlayPause")), + Key([], "XF86AudioPrev", lazy.spawn("${pkgs.dbus}/bin/dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Previous")), + Key([], "XF86AudioNext", lazy.spawn("${pkgs.dbus}/bin/dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Next")), + ## Microsoft Comfort Curve specific + Key([key_super, "shift"], "XF86TouchpadToggle", lazy.spawn("${pkgs.dbus}/bin/dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Previous")), + Key([key_alt, key_super], "XF86TouchpadToggle", lazy.spawn("${pkgs.dbus}/bin/dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Next")), + + # FIXME: Backlight currently broken +# Key([], "XF86MonBrightnessDown", lazy.spawn("xbacklight -inc -5")), +# Key([], "XF86MonBrightnessUp", lazy.spawn("xbacklight -inc 5")), + + Key([], "Print", lazy.spawn("${pkgs.flameshot}/bin/flameshot gui")), +] +groups = [Group(i) for i in "1234567890"] + +for i in groups: + # super + letter of group = switch to group + keys.append( + Key([key_super], i.name, lazy.group[i.name].toscreen()) + ) + + # super + shift + letter of group = switch to & move focused window to group + keys.append( + Key([key_super, key_control], i.name, lazy.window.togroup(i.name)) + ) + +layouts = [ + layout.Columns(num_columns=3, border_focus='#00ff00', border_width=2), + layout.Max(), + # layout.Stack(num_stacks=3, border_focus='#00ff00', border_width=2, autosplit=True, previous_on_rm=True), + # layout.Wmii(border_focus='#00ff00'), + # layout.MonadTall(ratio=0.6, border_focus='#00ff00'), +] + +widget_defaults = dict( + font='Arial', + fontsize=16, + padding=3, +) + +screens_count = 4 +screens = [] +for i in range(0, screens_count+1): + j = i+1 + widgets = [ + widget.TextBox("Screen %i" % j, name="Screen %i" % j), + widget.GroupBox(), + widget.WindowName(), + widget.Prompt(), + widget.CPUGraph(), + widget.MemoryGraph(), + widget.NetGraph(bandwidth_type='down'), + widget.NetGraph(bandwidth_type='up'), + widget.Clock(format='%Y-%m-%d %a %I:%M %p'), + ] + if i is 0: + widgets.insert(-1, widget.Systray()) + + screens.append(Screen(bottom=bar.Bar(widgets, 30))) + + keys.append(Key([key_super, "shift"], "%i" % (i+1), lazy.to_screen(i))) + +# subscribe.current_screen_change(func) + +dgroups_key_binder = None +dgroups_app_rules = [] +main = None +follow_mouse_focus = False +bring_front_click = True +cursor_warp = False +auto_fullscreen = True +focus_on_window_activation = "urgent" + + +# Drag floating layouts. +mouse = [ + Drag([key_super,key_control], "Button1", lazy.window.set_position_floating(), start=lazy.window.get_position()), + Drag([key_super,key_control], "Button2", lazy.window.set_size_floating(), start=lazy.window.get_size()), + Click([key_super,key_control], "Button3", lazy.window.disable_floating()) +] +floating_layout = layout.Floating() + +wmname = "LG3D" + ''; +in { + 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"; + }; + }; + }; + + 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; + }; + + xsession = { + enable = true; + windowManager.command = "${pkgs.qtile}/bin/qtile -c ${qtileConfig}"; + 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 + ''; + }; + + home.packages = with pkgs; [ + # X Tools/Libraries + lightdm + qtile + xscreensaver + gnome3.networkmanagerapplet + autorandr + arandr + gnome3.gnome_themes_standard + gnome3.adwaita-icon-theme + lxappearance + xorg.xcursorthemes + ]; +} diff --git a/nix/home-manager/programs/chromium.nix b/nix/home-manager/programs/chromium.nix new file mode 100644 index 0000000..95f161f --- /dev/null +++ b/nix/home-manager/programs/chromium.nix @@ -0,0 +1,23 @@ +{ +... +}: + +{ + programs.chromium = { + enable = true; + }; + + nixpkgs.config = { + chromium = { + enablePepperPDF = true; + enablePepperFlash = false; + }; + }; + + programs.browserpass = { + browsers = [ + "chromium" + ]; + }; +} + diff --git a/nix/home-manager/programs/emacs.nix b/nix/home-manager/programs/emacs.nix new file mode 100644 index 0000000..2b606a9 --- /dev/null +++ b/nix/home-manager/programs/emacs.nix @@ -0,0 +1,24 @@ +{ pkgs, +... +}: + +{ + programs.emacs = { + enable = true; + extraPackages = epkgs: (with epkgs; [ + nix-mode + magit # ; Integrate git + zerodark-theme # ; Nicolas' theme + undo-tree # ; to show the undo tree + # zoom-frm # ; increase/decrease font size for all buffers %lt;C-x C-+> + ]) ++ (with epkgs.melpaPackages; [ + evil + ]) ++ (with epkgs.elpaPackages; [ + auctex # ; LaTeX mode + beacon # ; highlight my cursor when scrolling + nameless # ; hide current package name everywhere in elisp code + ]) ++ (with pkgs; [ + pkgs.notmuch # From main packages set + ]); + }; +} diff --git a/nix/home-manager/programs/firefox.nix b/nix/home-manager/programs/firefox.nix new file mode 100644 index 0000000..b49b51e --- /dev/null +++ b/nix/home-manager/programs/firefox.nix @@ -0,0 +1,19 @@ +{ +... +}: + +{ + programs.firefox = { + enable = true; + enableAdobeFlash = false; + enableGoogleTalk = true; + enableIcedTea = true; + }; + + programs.browserpass = { + browsers = [ + "firefox" + ]; + }; +} + diff --git a/nix/home-manager/programs/homeshick.nix b/nix/home-manager/programs/homeshick.nix new file mode 100644 index 0000000..7238ea5 --- /dev/null +++ b/nix/home-manager/programs/homeshick.nix @@ -0,0 +1,38 @@ +{ pkgs +, config +, ... +}: + +let + bootstrapRepos = pkgs.writeScript "bootstrapRepos" '' + set -e + echo home-manager path is ${config.home.path} + echo home is $HOME + + source ${pkgs.homeshick}/homeshick.sh + type homeshick + + # echo Updating homeshick + # ln -sfT ${pkgs.homeshick} "$HOMESICK_REPOS"/.homeshick + # mv -Tf "$HOMESICK_REPOS"/{.,}homeshick + ''; + +in { + home.sessionVariables = { + HOMESHICK_DIR="${pkgs.homeshick}"; + }; + + home.activation.bootstrapRepos = config.lib.dag.entryAfter ["writeBoundary"] '' + $DRY_RUN_CMD ${bootstrapRepos} + ''; + + nixpkgs.config = { + + packageOverrides = pkgs: with pkgs; { + homeshick = builtins.fetchGit { + url = "https://github.com/andsens/homeshick.git"; + ref = "master"; + }; + }; + }; +} diff --git a/nix/home-manager/programs/libreoffice.nix b/nix/home-manager/programs/libreoffice.nix new file mode 100644 index 0000000..7edf5b9 --- /dev/null +++ b/nix/home-manager/programs/libreoffice.nix @@ -0,0 +1,14 @@ +{ pkgs, +... +}: + +{ + home.sessionVariables = { + # Workaround for Libreoffice to force gtk3 + SAL_USE_VCLPLUGIN = "gtk3"; + }; + + home.packages = with pkgs; [ + libreoffice-fresh + ]; +} diff --git a/nix/home-manager/programs/neovim.nix b/nix/home-manager/programs/neovim.nix new file mode 100644 index 0000000..8b5a343 --- /dev/null +++ b/nix/home-manager/programs/neovim.nix @@ -0,0 +1,152 @@ +{ pkgs, +... +}: + +let + unstablepkgs = import {}; + +in { + home.sessionVariables = { + EDITOR = "nvim"; + }; + + nixpkgs.config = { + pidgin = { + openssl = true; + gnutls = true; + }; + + packageOverrides = pkgs: with pkgs; { + neovim = unstablepkgs.neovim; + vimPlugins = unstablepkgs.vimPlugins; + }; + }; + + programs.neovim = { + enable = true; + + extraPythonPackages = (ps: with ps; [ ]); + extraPython3Packages = (ps: with ps; [ ]); + + configure = { + customRC = builtins.readFile ./neovim/vimrc; + vam = { + knownPlugins = with pkgs; vimPlugins // { + delimitMate = vimUtils.buildVimPlugin { + name = "delimitMate-vim"; + src = fetchFromGitHub { + owner = "Raimondi"; + repo = "delimitMate"; + rev = "728b57a6564c1d2bdfb9b9e0f2f8c5ba3d7e0c5c"; + sha256 = "0fskm9gz81dk8arcidrm71mv72a7isng1clssqkqn5wnygbiimsn"; + }; + buildInputs = [ zip vim ]; + }; + + yaml-folds = vimUtils.buildVimPlugin { + name = "vim-yaml-folds"; + src = fetchFromGitHub { + owner = "pedrohdz"; + repo = "vim-yaml-folds"; + rev = "0672d9a3b685b51b4c49d8716c2ad4e27cfa5abd"; + sha256 = "0yp2jgaqiria79lh75fkrs77rw7nk518bq63w9bvyy814i7s4scn"; + }; + buildInputs = [ zip vim ]; + }; + + vim-markdown-toc = vimUtils.buildVimPlugin { + name = "vim-markdown-toc"; + src = fetchFromGitHub { + owner = "mzlogin"; + repo = "vim-markdown-toc"; + rev = "a6e227023f405a7c39590a8aaf0d54dde5614a2e"; + sha256 = "1vpsnjzc7hvrkp6mq68myxl3k1x363iif58rrd17njcsa4jh1zwy"; + }; + }; + vim-perl = vimUtils.buildVimPlugin { + name = "vim-perl"; + src = fetchFromGitHub { + owner = "vim-perl"; + repo = "vim-perl"; + rev = "21d0a0d795336acf8a9306da35f379c32cfc5e08"; + sha256 = "0f2sa0v3djd89k16n4saji9n7grziyhkljq75dskcbv8r19m8i1j"; + }; + }; + + git-blame = vimUtils.buildVimPlugin { + name = "git-blame"; + src = fetchFromGitHub { + "owner" = "zivyangll"; + "repo" = "git-blame.vim"; + "rev" = "a5b666840eead1b1ea1c351038da6ce026716bb6"; + "sha256" = "181siphb87yzln9433159ssa6vmm1h2dd0kqhlx7bgsi51gng4rv"; + }; + }; + }; + + pluginDictionaries = let + default = [ + "delimitMate" + "vim-airline" + "ctrlp" + "vim-css-color" + "rainbow_parentheses" + "vim-colorschemes" + "vim-colorstepper" + "vim-signify" + "fugitive" + "ctrlp" + "vim-indent-guides" + "UltiSnips" + "fzfWrapper" + + "ncm2" + "ncm2-bufword" + "ncm2-path" + "ncm2-tmux" + "ncm2-ultisnips" + "nvim-yarp" + + "LanguageClient-neovim" + + "Improved-AnsiEsc" + "tabular" + "git-blame" + + # Nix + "vim-addon-nix" + "vim-addon-vim2nix" + + # LaTeX + "vim-latex-live-preview" + "vimtex" + + # YAML + "yaml-folds" + + # Perl + # "vim-perl" + + + # markdown + "vim-markdown" + "vim-markdown-toc" + + # misc syntax support + "vim-bazel" + ]; + in [ + { names = default; } + { names = default ++ [ + ]; + filename_regex = ".*\.nix\$"; + } + { names = default ++ [ + ]; + filename_regex = ".*\.tex\$"; + } + ]; + }; + }; + }; +} diff --git a/pkgs-configuration/home-manager/steveej/neovim/vimrc b/nix/home-manager/programs/neovim/vimrc similarity index 100% rename from pkgs-configuration/home-manager/steveej/neovim/vimrc rename to nix/home-manager/programs/neovim/vimrc diff --git a/nix/home-manager/programs/pass.nix b/nix/home-manager/programs/pass.nix new file mode 100644 index 0000000..78eb69f --- /dev/null +++ b/nix/home-manager/programs/pass.nix @@ -0,0 +1,24 @@ +{ pkgs +, ... +}: + +{ + home.sessionVariables = { + EDITOR = "nvim"; + + # required by pass-otp + PASSWORD_STORE_EXTENSIONS_DIR = "$HOME/.nix-profile/lib/password-store/extensions"; + PASSWORD_STORE_ENABLE_EXTENSIONS = "true"; + }; + + programs.browserpass = { + enable = true; + }; + + home.packages = with pkgs; [ + pass-otp + qtpass + rofi-pass + ]; +} + diff --git a/nix/home-manager/programs/zsh.nix b/nix/home-manager/programs/zsh.nix new file mode 100644 index 0000000..f035372 --- /dev/null +++ b/nix/home-manager/programs/zsh.nix @@ -0,0 +1,79 @@ +{ pkgs +, config +, ... +}: + +let +in { + 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 ${pkgs.homeshick}/homeshick.sh + fpath=(${pkgs.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 + ''; + + sessionVariables = { + # 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" + ]; + }; + }; +} diff --git a/nixops/nano/configuration.nix b/nix/ops/nano/configuration.nix similarity index 100% rename from nixops/nano/configuration.nix rename to nix/ops/nano/configuration.nix diff --git a/nixops/nano/hardware-configuration.nix b/nix/ops/nano/hardware-configuration.nix similarity index 100% rename from nixops/nano/hardware-configuration.nix rename to nix/ops/nano/hardware-configuration.nix diff --git a/nixops/nanos@kn.nix b/nix/ops/nanos@kn.nix similarity index 100% rename from nixops/nanos@kn.nix rename to nix/ops/nanos@kn.nix diff --git a/nixos/devices/default.nix b/nix/os/devices/default.nix similarity index 96% rename from nixos/devices/default.nix rename to nix/os/devices/default.nix index 995f0fc..acba03a 100644 --- a/nixos/devices/default.nix +++ b/nix/os/devices/default.nix @@ -18,7 +18,9 @@ in { [[ -e "''${NIXOS_CONFIG}" ]] nixos-rebuild -I nixos-config=''${NIXOS_CONFIG} ${rebuildarg} - rm result + if test -L result; then + rm result + fi ''; diskMount = pkgs.writeScript "script" '' diff --git a/nixos/devices/steveej-laptop/boot.nix b/nix/os/devices/steveej-laptop/boot.nix similarity index 57% rename from nixos/devices/steveej-laptop/boot.nix rename to nix/os/devices/steveej-laptop/boot.nix index fe71bea..975fc6e 100644 --- a/nixos/devices/steveej-laptop/boot.nix +++ b/nix/os/devices/steveej-laptop/boot.nix @@ -1,13 +1,6 @@ { config, lib, pkgs, ... }: { - boot.kernelPackages = pkgs.linuxPackages_latest; - - # Bootloader, initrd and Kernel - boot.loader.grub.enable = true; - boot.loader.grub.enableCryptodisk = true; - boot.loader.grub.version = 2; - # workaround to disable CPU wining # current CPU has 9 idle cstates. boot.kernelParams = [ "intel_idle.max_cstate=9" ]; @@ -17,6 +10,4 @@ "nf_conntrack_proto_gre" "nf_conntrack_pptp" ]; - - boot.tmpOnTmpfs = true; } diff --git a/nixos/devices/steveej-laptop/configuration.nix b/nix/os/devices/steveej-laptop/configuration.nix similarity index 100% rename from nixos/devices/steveej-laptop/configuration.nix rename to nix/os/devices/steveej-laptop/configuration.nix diff --git a/nixos/devices/steveej-laptop/hw.nix b/nix/os/devices/steveej-laptop/hw.nix similarity index 100% rename from nixos/devices/steveej-laptop/hw.nix rename to nix/os/devices/steveej-laptop/hw.nix diff --git a/nixos/devices/steveej-laptop/pkg.nix b/nix/os/devices/steveej-laptop/pkg.nix similarity index 97% rename from nixos/devices/steveej-laptop/pkg.nix rename to nix/os/devices/steveej-laptop/pkg.nix index 4048c76..becd2da 100644 --- a/nixos/devices/steveej-laptop/pkg.nix +++ b/nix/os/devices/steveej-laptop/pkg.nix @@ -13,7 +13,7 @@ in allowUnfree = true; packageOverrides = pkgs: rec { - libvirt = unstablepkgs.libvirt; + # libvirt = unstablepkgs.libvirt; myLinuxPackages = pkgs.recurseIntoAttrs (pkgs.linuxPackagesFor (pkgs.linux_latest.override { diff --git a/nixos/devices/steveej-laptop/system.nix b/nix/os/devices/steveej-laptop/system.nix similarity index 100% rename from nixos/devices/steveej-laptop/system.nix rename to nix/os/devices/steveej-laptop/system.nix diff --git a/nixos/devices/steveej-laptop/user.nix b/nix/os/devices/steveej-laptop/user.nix similarity index 100% rename from nixos/devices/steveej-laptop/user.nix rename to nix/os/devices/steveej-laptop/user.nix diff --git a/nixos/devices/steveej-live-mmc-SL32G_0x259093f6/configuration.nix b/nix/os/devices/steveej-live-mmc-SL32G_0x259093f6/configuration.nix similarity index 100% rename from nixos/devices/steveej-live-mmc-SL32G_0x259093f6/configuration.nix rename to nix/os/devices/steveej-live-mmc-SL32G_0x259093f6/configuration.nix diff --git a/nixos/devices/steveej-live-mmc-SL32G_0x259093f6/hw.nix b/nix/os/devices/steveej-live-mmc-SL32G_0x259093f6/hw.nix similarity index 100% rename from nixos/devices/steveej-live-mmc-SL32G_0x259093f6/hw.nix rename to nix/os/devices/steveej-live-mmc-SL32G_0x259093f6/hw.nix diff --git a/nixos/devices/steveej-live-mmc-SL32G_0x259093f6/system.nix b/nix/os/devices/steveej-live-mmc-SL32G_0x259093f6/system.nix similarity index 100% rename from nixos/devices/steveej-live-mmc-SL32G_0x259093f6/system.nix rename to nix/os/devices/steveej-live-mmc-SL32G_0x259093f6/system.nix diff --git a/nixos/devices/steveej-utilitepro/configuration.nix b/nix/os/devices/steveej-utilitepro/configuration.nix similarity index 100% rename from nixos/devices/steveej-utilitepro/configuration.nix rename to nix/os/devices/steveej-utilitepro/configuration.nix diff --git a/nixos/devices/steveej-utilitepro/hardware-configuration.nix b/nix/os/devices/steveej-utilitepro/hardware-configuration.nix similarity index 100% rename from nixos/devices/steveej-utilitepro/hardware-configuration.nix rename to nix/os/devices/steveej-utilitepro/hardware-configuration.nix diff --git a/nixos/devices/steveej-utilitepro/patches/utilitepro-kernel-dts-Makefile.patch b/nix/os/devices/steveej-utilitepro/patches/utilitepro-kernel-dts-Makefile.patch similarity index 100% rename from nixos/devices/steveej-utilitepro/patches/utilitepro-kernel-dts-Makefile.patch rename to nix/os/devices/steveej-utilitepro/patches/utilitepro-kernel-dts-Makefile.patch diff --git a/nixos/devices/steveej-utilitepro/patches/utilitepro-kernel-dts.patch b/nix/os/devices/steveej-utilitepro/patches/utilitepro-kernel-dts.patch similarity index 100% rename from nixos/devices/steveej-utilitepro/patches/utilitepro-kernel-dts.patch rename to nix/os/devices/steveej-utilitepro/patches/utilitepro-kernel-dts.patch diff --git a/nixos/lib/default.nix b/nix/os/lib/default.nix similarity index 100% rename from nixos/lib/default.nix rename to nix/os/lib/default.nix diff --git a/nixos/modules/encryptedDisk.nix b/nix/os/modules/encryptedDisk.nix similarity index 96% rename from nixos/modules/encryptedDisk.nix rename to nix/os/modules/encryptedDisk.nix index 9567873..74e865c 100644 --- a/nixos/modules/encryptedDisk.nix +++ b/nix/os/modules/encryptedDisk.nix @@ -43,8 +43,7 @@ in { boot.loader.grub = { device = bootGrubDevice; - efiSupport = true; - efiInstallAsRemovable = true; + enableCryptodisk = true; }; boot.initrd.luks.devices = [ diff --git a/nixos/modules/natrouter.nix b/nix/os/modules/natrouter.nix similarity index 100% rename from nixos/modules/natrouter.nix rename to nix/os/modules/natrouter.nix diff --git a/nix/os/profiles/common/boot.nix b/nix/os/profiles/common/boot.nix new file mode 100644 index 0000000..8e1a03c --- /dev/null +++ b/nix/os/profiles/common/boot.nix @@ -0,0 +1,17 @@ +{ pkgs +, ... +}: + +{ + boot.kernelPackages = pkgs.linuxPackages_latest; + boot.loader.grub = { + efiSupport = true; + efiInstallAsRemovable = false; + enable = true; + version = 2; + }; + + boot.loader.efi.canTouchEfiVariables = true; + boot.tmpOnTmpfs = true; +} + diff --git a/nixos/profiles/common/configuration.nix b/nix/os/profiles/common/configuration.nix similarity index 84% rename from nixos/profiles/common/configuration.nix rename to nix/os/profiles/common/configuration.nix index 273637c..a2519ca 100644 --- a/nixos/profiles/common/configuration.nix +++ b/nix/os/profiles/common/configuration.nix @@ -2,6 +2,7 @@ { imports = [ + ./boot.nix ./pkg.nix ./user.nix ./system.nix diff --git a/nixos/profiles/common/pkg.nix b/nix/os/profiles/common/pkg.nix similarity index 100% rename from nixos/profiles/common/pkg.nix rename to nix/os/profiles/common/pkg.nix diff --git a/nixos/profiles/common/system.nix b/nix/os/profiles/common/system.nix similarity index 100% rename from nixos/profiles/common/system.nix rename to nix/os/profiles/common/system.nix diff --git a/nixos/profiles/common/user.nix b/nix/os/profiles/common/user.nix similarity index 100% rename from nixos/profiles/common/user.nix rename to nix/os/profiles/common/user.nix diff --git a/nixos/profiles/graphical/configuration.nix b/nix/os/profiles/graphical/configuration.nix similarity index 100% rename from nixos/profiles/graphical/configuration.nix rename to nix/os/profiles/graphical/configuration.nix diff --git a/nixos/profiles/graphical/system.nix b/nix/os/profiles/graphical/system.nix similarity index 100% rename from nixos/profiles/graphical/system.nix rename to nix/os/profiles/graphical/system.nix diff --git a/nixos/profiles/install-medium/iso/Justfile b/nix/os/profiles/install-medium/iso/Justfile similarity index 100% rename from nixos/profiles/install-medium/iso/Justfile rename to nix/os/profiles/install-medium/iso/Justfile diff --git a/nixos/profiles/install-medium/iso/iso.nix b/nix/os/profiles/install-medium/iso/iso.nix similarity index 100% rename from nixos/profiles/install-medium/iso/iso.nix rename to nix/os/profiles/install-medium/iso/iso.nix diff --git a/nixos/profiles/removable-medium/boot.nix b/nix/os/profiles/removable-medium/boot.nix similarity index 62% rename from nixos/profiles/removable-medium/boot.nix rename to nix/os/profiles/removable-medium/boot.nix index ff9e4f0..7c3d25b 100644 --- a/nixos/profiles/removable-medium/boot.nix +++ b/nix/os/profiles/removable-medium/boot.nix @@ -1,14 +1,10 @@ -{ config, lib, pkgs, ... }: +{ lib +, ... +}: { - boot.kernelPackages = pkgs.linuxPackages_latest; - - # Bootloader, initrd and Kernel - boot.loader.grub = { - enable = true; - enableCryptodisk = true; - version = 2; - }; + boot.loader.grub.efiInstallAsRemovable = lib.mkForce true; + boot.loader.efi.canTouchEfiVariables = lib.mkForce false; boot.initrd.availableKernelModules = [ "xhci_pci" @@ -38,10 +34,4 @@ boot.extraModulePackages = [ ]; boot.loader.systemd-boot.enable = true; - boot.loader.efi.canTouchEfiVariables = false; - - # workaround to disable CPU wining - # current CPU has 9 idle cstates. - - boot.tmpOnTmpfs = true; } diff --git a/nixos/profiles/removable-medium/configuration.nix b/nix/os/profiles/removable-medium/configuration.nix similarity index 100% rename from nixos/profiles/removable-medium/configuration.nix rename to nix/os/profiles/removable-medium/configuration.nix diff --git a/nixos/profiles/removable-medium/hw.nix b/nix/os/profiles/removable-medium/hw.nix similarity index 100% rename from nixos/profiles/removable-medium/hw.nix rename to nix/os/profiles/removable-medium/hw.nix diff --git a/nix/os/profiles/removable-medium/pkg.nix b/nix/os/profiles/removable-medium/pkg.nix new file mode 100644 index 0000000..ae8f8e9 --- /dev/null +++ b/nix/os/profiles/removable-medium/pkg.nix @@ -0,0 +1,27 @@ +{ +... +}: + +{ + 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 + ''; + }; + }; + }; + + home-manager.users.steveej = import ../../../home-manager/configuration/removable-desktop.nix; +} diff --git a/nixos/profiles/removable-medium/system.nix b/nix/os/profiles/removable-medium/system.nix similarity index 100% rename from nixos/profiles/removable-medium/system.nix rename to nix/os/profiles/removable-medium/system.nix diff --git a/pkgs/browserpass/default.nix b/nix/pkgs/browserpass/default.nix similarity index 100% rename from pkgs/browserpass/default.nix rename to nix/pkgs/browserpass/default.nix diff --git a/pkgs/nomad/default.nix b/nix/pkgs/nomad/default.nix similarity index 100% rename from pkgs/nomad/default.nix rename to nix/pkgs/nomad/default.nix diff --git a/pkgs/nozbe/default.nix b/nix/pkgs/nozbe/default.nix similarity index 100% rename from pkgs/nozbe/default.nix rename to nix/pkgs/nozbe/default.nix diff --git a/pkgs/staruml.nix b/nix/pkgs/staruml.nix similarity index 100% rename from pkgs/staruml.nix rename to nix/pkgs/staruml.nix diff --git a/tests/buildvmwithbootloader/build-vm.nix b/nix/tests/buildvmwithbootloader/build-vm.nix similarity index 100% rename from tests/buildvmwithbootloader/build-vm.nix rename to nix/tests/buildvmwithbootloader/build-vm.nix diff --git a/tests/buildvmwithbootloader/build-vm.sh b/nix/tests/buildvmwithbootloader/build-vm.sh similarity index 100% rename from tests/buildvmwithbootloader/build-vm.sh rename to nix/tests/buildvmwithbootloader/build-vm.sh diff --git a/tests/buildvmwithbootloader/configuration.nix b/nix/tests/buildvmwithbootloader/configuration.nix similarity index 100% rename from tests/buildvmwithbootloader/configuration.nix rename to nix/tests/buildvmwithbootloader/configuration.nix diff --git a/tests/buildvmwithbootloader/debug-vm.sh b/nix/tests/buildvmwithbootloader/debug-vm.sh similarity index 100% rename from tests/buildvmwithbootloader/debug-vm.sh rename to nix/tests/buildvmwithbootloader/debug-vm.sh diff --git a/tests/buildvmwithbootloader/result b/nix/tests/buildvmwithbootloader/result similarity index 100% rename from tests/buildvmwithbootloader/result rename to nix/tests/buildvmwithbootloader/result diff --git a/tests/test-vm.nix b/nix/tests/test-vm.nix similarity index 100% rename from tests/test-vm.nix rename to nix/tests/test-vm.nix diff --git a/variables/keys.nix b/nix/variables/keys.nix similarity index 100% rename from variables/keys.nix rename to nix/variables/keys.nix diff --git a/variables/passwords.crypt.nix b/nix/variables/passwords.crypt.nix similarity index 100% rename from variables/passwords.crypt.nix rename to nix/variables/passwords.crypt.nix diff --git a/nixos/profiles/removable-medium/pkg.nix b/nixos/profiles/removable-medium/pkg.nix deleted file mode 100644 index 38d23a8..0000000 --- a/nixos/profiles/removable-medium/pkg.nix +++ /dev/null @@ -1,332 +0,0 @@ -{ config, - pkgs, - ... }: - -let - environmentVariables = { - EDITOR = "nvim"; - }; - - dotfiles = builtins.fetchGit { - url = "https://gitlab.com/steveeJ/dotfiles.git"; - ref = "master"; - }; - - mkSimpleTrayService = { execStart, description }: { - Unit = { - Description = description; - 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; - }; - - programs.git = { - enable = true; - userName = "Stefan Junker"; - userEmail = "mail@stefanjunker.de"; - extraConfig = '' - [push] - default = simple - [color] - ui = auto - [gpg] - program = gpg2 - [alias] - mr = !sh -c 'git fetch $1 merge-requests/$2/head:mr-$1-$2 && git checkout mr-$1-$2' - - [diff] - tool = nvimdiff - [merge] - tool = nvimdiff - [mergetool] - path = nvim - [difftool "nvimdiff"] - cmd = "nvim -d \"$LOCAL\" \"$REMOTE\"" - - [remote "origin"] - prune = true - [remote "upstream"] - prune = 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"; - description = "redshift gtk applet"; - }; - - pasystray = mkSimpleTrayService { - execStart = "${pkgs.pasystray}/bin/pasystray"; - description = "pasystray applet"; - }; - - cbatticon = mkSimpleTrayService { - execStart = "${pkgs.cbatticon}/bin/cbatticon"; - description = "cbatticon applet"; - }; - }; - }; - - home.packages = [] - ++ (with pkgs; [ - # Version Control Systems - git-crypt - 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 - ]); - }; -} diff --git a/pkgs-configuration/config.nix b/pkgs-configuration/config.nix deleted file mode 100644 index b7bcdab..0000000 --- a/pkgs-configuration/config.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ ... } @ args: - -# unused, switched to home-manager - -let - stablepkgs = import {}; -in { - packageOverrides = stablepkgs: rec { - userPackages = with stablepkgs; buildEnv { - name = "userPackages"; - paths = []; - }; - }; -} diff --git a/pkgs-configuration/home-manager/steveej/neovim/default.nix b/pkgs-configuration/home-manager/steveej/neovim/default.nix deleted file mode 100644 index 8867557..0000000 --- a/pkgs-configuration/home-manager/steveej/neovim/default.nix +++ /dev/null @@ -1,130 +0,0 @@ -{ pkgs }: - -{ - enable = true; - - extraPythonPackages = (ps: with ps; [ ]); - extraPython3Packages = (ps: with ps; [ ]); - - configure = { - customRC = builtins.readFile ./vimrc; - vam = { - knownPlugins = with pkgs; vimPlugins // { - delimitMate = vimUtils.buildVimPlugin { - name = "delimitMate-vim"; - src = fetchFromGitHub { - owner = "Raimondi"; - repo = "delimitMate"; - rev = "728b57a6564c1d2bdfb9b9e0f2f8c5ba3d7e0c5c"; - sha256 = "0fskm9gz81dk8arcidrm71mv72a7isng1clssqkqn5wnygbiimsn"; - }; - buildInputs = [ zip vim ]; - }; - - yaml-folds = vimUtils.buildVimPlugin { - name = "vim-yaml-folds"; - src = fetchFromGitHub { - owner = "pedrohdz"; - repo = "vim-yaml-folds"; - rev = "0672d9a3b685b51b4c49d8716c2ad4e27cfa5abd"; - sha256 = "0yp2jgaqiria79lh75fkrs77rw7nk518bq63w9bvyy814i7s4scn"; - }; - buildInputs = [ zip vim ]; - }; - - vim-markdown-toc = vimUtils.buildVimPlugin { - name = "vim-markdown-toc"; - src = fetchFromGitHub { - owner = "mzlogin"; - repo = "vim-markdown-toc"; - rev = "a6e227023f405a7c39590a8aaf0d54dde5614a2e"; - sha256 = "1vpsnjzc7hvrkp6mq68myxl3k1x363iif58rrd17njcsa4jh1zwy"; - }; - }; - vim-perl = vimUtils.buildVimPlugin { - name = "vim-perl"; - src = fetchFromGitHub { - owner = "vim-perl"; - repo = "vim-perl"; - rev = "21d0a0d795336acf8a9306da35f379c32cfc5e08"; - sha256 = "0f2sa0v3djd89k16n4saji9n7grziyhkljq75dskcbv8r19m8i1j"; - }; - }; - - git-blame = vimUtils.buildVimPlugin { - name = "git-blame"; - src = fetchFromGitHub { - "owner" = "zivyangll"; - "repo" = "git-blame.vim"; - "rev" = "a5b666840eead1b1ea1c351038da6ce026716bb6"; - "sha256" = "181siphb87yzln9433159ssa6vmm1h2dd0kqhlx7bgsi51gng4rv"; - }; - }; - }; - - pluginDictionaries = let - default = [ - "delimitMate" - "vim-airline" - "ctrlp" - "vim-css-color" - "rainbow_parentheses" - "vim-colorschemes" - "vim-colorstepper" - "vim-signify" - "fugitive" - "ctrlp" - "vim-indent-guides" - "UltiSnips" - "fzfWrapper" - - "ncm2" - "ncm2-bufword" - "ncm2-path" - "ncm2-tmux" - "ncm2-ultisnips" - "nvim-yarp" - - "LanguageClient-neovim" - - "Improved-AnsiEsc" - "tabular" - "git-blame" - - # Nix - "vim-addon-nix" - "vim-addon-vim2nix" - - # LaTeX - "vim-latex-live-preview" - "vimtex" - - # YAML - "yaml-folds" - - # Perl - # "vim-perl" - - - # markdown - "vim-markdown" - "vim-markdown-toc" - - # misc syntax support - "vim-bazel" - ]; - in [ - { names = default; } - { names = default ++ [ - ]; - filename_regex = ".*\.nix\$"; - } - { names = default ++ [ - ]; - filename_regex = ".*\.tex\$"; - } - ]; - - }; - }; -}