Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
NixOS system config
# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running ‘nixos-help’).
{ config, pkgs, ... }:
rec {
imports =
[ # Include the results of the hardware scan.
./hardware-configuration.nix
./musnix/default.nix
];
musnix = {
enable = true;
kernel = {
# optimize = true;
# realtime = true;
packages = pkgs.linuxPackages_4_6_rt_fix;
};
};
boot = {
kernelModules = [
"kvm-intel" "tpm-rng"
];
extraModprobeConfig = ''
# thinkpad acpi
options thinkpad_acpi fan_control=1
# intel graphics
options i915 modeset=1 i915_enable_rc6=7 i915_enable_fbc=1 lvds_downclock=1 # powersave=0
options bbswitch use_acpi_to_detect_card_state=1
# intel audio
# options snd-hda-intel index=0 id=PCH
# options snd-hda-intel index=1 id=HDMI
# options snd-hda-intel index=0 model=auto vid=8086 pid=8c20
# options snd-hda-intel index=1 model=auto vid=8086 pid=0c0c
# options snd slots=snd-hda-intel
# fix intel wifi-N
# options iwlwifi 11n_disable=1
# options iwlwifi swcrypto=1
options iwlwifi 11n_disable=8
iwlwifi.power_save=Y
iwldvm.force_cam=N
'';
extraModulePackages = [ config.boot.kernelPackages.tp_smapi ];
# kernelPackages = pkgs.linuxPackages_latest; # TODO: zen-kernel BFQ/BFS/reiserfs/lowlatency/hibernation/custom font
# kernelPackages = let
# rtKernel = pkgs.linuxPackagesFor (pkgs.linux.override {
# extraConfig = ''
# PREEMPT_RT_FULL? y
# PREEMPT y
# IOSCHED_DEADLINE y
# DEFAULT_DEADLINE y
# DEFAULT_IOSCHED "deadline"
# HPET_TIMER y
# CPU_FREQ n
# TREE_RCU_TRACE n
# '';
# }) pkgs.linuxPackages; in rtKernel;
kernelParams = [
# "acpi_osi=\"!Windows 2012\""
# "acpi_backlight=vendor"
"acpi_osi="
# "acpi_osi=\"!Windows 2013\""
"video.use_native_backlight=1"
"pcie_aspm=force"
"drm_kms_helper.edid_firmware=edid/1920x1080.bin"
"video=1920x1080"
"clocksource=acpi_pm"
"pci=use_crs"
"consoleblank=0"
# realtime
# "threadirq"
# debug only:
# "boot.shell_on_fail"
# "boot.trace"
# "systemd.log_level=debug"
# "systemd.log_target=console"
# colors
"vt.default_red=0x07,0xdc,0x85,0xb5,0x26,0xd3,0x2a,0xee,0x00,0xcb,0x58,0x65,0x83,0x6c,0x93,0xfd vt.default_grn=0x36,0x32,0x99,0x89,0x8b,0x36,0xa1,0xe8,0x2b,0x4b,0x6e,0x7b,0x94,0x71,0xa1,0xf6 vt.default_blu=0x42,0x2f,0x00,0x00,0xd2,0x82,0x98,0xd5,0x36,0x16,0x75,0x83,0x96,0xc4,0xa1,0xe3"
];
loader = {
# systemd-boot.enable = true;
efi.canTouchEfiVariables = true;
grub.enable = true;
grub.device = "nodev";
grub.fsIdentifier = "label";
grub.gfxmodeEfi = "1920x1080";
grub.efiSupport = true;
# grub.splashImage = "./background.png";
timeout = 3;
};
initrd.kernelModules = [
"intel_agp"
"i915"
"bbswitch"
# jack
# "snd-seq"
# "snd-rawmidi"
"snd-aloop"
"thinkpad_ec"
"tp_smapi"
"hdaps"
# "fbcon" # ???: Built-in now
# external sound card
"snd-usb-audio"
# "snd_hda_intel"
"ehci_hcd" "ahci" "firewire_ohci"
];
blacklistedKernelModules = [
# No beeping
"snd_pcsp"
"pcspkr"
# fix bumblebee
"nvidia_uvm"
# because of intel
"nouveau"
"nvidia"
"nvidiafb"
# buggy and old
"thinkpad_acpi"
];
# kernel.sysctl = { vm.swappiness = 1; };
# kernel.sysctl = { "vm.swappiness" = 10; "fs.inotify.max_user_watches" = 524288; };
# postBootCommands = ''
# echo 2048 > /sys/class/rtc/rtc0/max_user_freq
# echo 2048 > /proc/sys/dev/hpet/max-user-freq
# setpci -v -d *:* latency_timer=b0
# setpci -v -s $00:1b.0 latency_timer=ff
# '';
# /*The SOUND_CARD_PCI_ID can be obtained like so:*/
# /*$ lspci | grep -i audio*/
};
fileSystems."/" = pkgs.lib.mkForce {
device = "/dev/nixos/root";
label = "root";
fsType = "ext3";
options = [ "noatime" "errors=remount-ro"];
};
fileSystems."/home" = pkgs.lib.mkForce {
device = "/dev/nixos/home";
label = "home";
fsType = "ext4";
};
fileSystems."/boot" = pkgs.lib.mkForce {
device = "/dev/disk/by-label/ESP";
fsType = "vfat";
};
fileSystems."/tmp" = pkgs.lib.mkForce {
device = "tmpfs";
fsType = "tmpfs";
options = [ "nosuid" "nodev" "noatime" "nodiratime" "size=10G" ];
};
swapDevices = pkgs.lib.mkForce [
{ device = "/dev/disk/by-label/Swap"; }
];
networking = {
hostName = "hackbook";
hostId = "847849e7";
# interfaceMonitor.enable = false;
wireless.enable = false;
wireless.interfaces = [ "wlp4s0" ];
wireless.userControlled.enable = true;
wireless.userControlled.group = "network";
useDHCP = false;
wicd.enable = true;
extraHosts = ''
127.0.0.1 db
'';
};
# security.pam.loginLimits =
# [
# { domain = "@audio"; item = "memlock"; type = "-"; value = "unlimited"; }
# { domain = "@audio"; item = "rtprio"; type = "-"; value = "99"; }
# { domain = "@audio"; item = "nofile"; type = "soft"; value = "99999"; }
# { domain = "@audio"; item = "nofile"; type = "hard"; value = "99999"; }
# ];
nix = {
extraOptions = ''
auto-optimise-store = true
env-keep-derivations = true
gc-keep-outputs = true
gc-keep-derivations = true
# keep-failed = true
# keep-going = true
auto-optimise-store = true
'';
maxJobs = pkgs.lib.mkForce 9;
buildCores = pkgs.lib.mkForce 9;
useSandbox = true;
binaryCaches = [ "https://cache.nixos.org/" # "https://hydra.nixos.org/" "https://hydra.cryp.to/"
];
};
nixpkgs.config = {
allowUnfree = true;
# # CFLAGS="-march=core-avx2 -O2 -pipe"
# # stdenv.userHook = ''
# # NIX_CFLAGS_COMPILE+=" -march=core-avx2 -O2 -pipe"
# # '';
firefox = {
enableGoogleTalkPlugin = true;
enableAdobeFlash = true;
enableGTK3 = true; # recompilation required :(
# ffmpegSupport = false;
# jre = true;
# enableMPlayer = true; # will use MPV instead, see: https://addons.mozilla.org/en-US/firefox/addon/watch-with-mpv/
icedtea = true;
};
chromium = {
enablePepperFlash = true;
enablePepperPDF = true;
# hiDPISupport = true; # recompilation required :(
# jre = true;
icedtea = true;
};
pulseaudio = true;
jack = true;
# qt48Full = { gtkStyle = true; };
# qt53 = { gtkStyle = true; };
mesa = {
# enableTextureFloats = true;
};
# # virtualbox.enableExtensionPack = true;
haskellPackageOverrides = self: super: with pkgs.haskell.lib; {
# libmpd = pkgs.haskell.lib.overrideCabal super.libmpd (drv: {
# # don't help to fix time-1.5
# libraryHaskellDepends = drv.libraryHaskellDepends ++ [ pkgs.haskell.packages.lts-5_15.time ];
# });
libmpd = dontCheck (overrideCabal super.libmpd (drv: {
postPatch = (drv.postPatch or "") + ''
substituteInPlace ./libmpd.cabal --replace "time >=1.5 && <1.6" "time >=1.5"
'';
}));
xmobar = (overrideCabal super.xmobar (drv: {
# Skip -fwith_datezone
configureFlags = [ "-fwith_xft" "-fwith_utf8" "-fwith_inotify"
"-fwith_iwlib" "-fwith_mpd" "-fwith_alsa"
"-fwith_mpris" "-fwith_dbus" "-fwith_xpm" ];
})).override {
timezone-series = null;
timezone-olson = null;
};
# # pandoc = overrideCabal super.pandoc (drv: {
# # version = "1.12.4.2";
# # editedCabalFile = null;
# # revision = null;
# # sha256 = "0ibzladj0xm0xnsphd26lzndxzkawz73pfd7rnlnmllqckrzairg";
# # });
# # xmobar = pkgs.haskell.lib.overrideCabal super.xmobar
# # cabal-install = lib.overrideCabal super.cabal-install (attrs: {
# # buildDepends = [ self.text ]; # for antigen-hs, see: https://github.com/Tarrasch/antigen-hs/issues/24
# # });
# # ghc-mod = lib.overrideCabal super.ghc-mod (oldAttrs: {
# # src = pkgs.fetchgit {
# # url = https://github.com/kazu-yamamoto/ghc-mod;
# # rev = "247e4e0e7616fe1fecc68fdcf80d6249ac4cee4f";
# # sha256 = "2a23271d0e6907351a246f095040ba18c3ab6bf1cba08a14338d701defa55474";
# # };
# # buildDepends = oldAttrs.buildDepends ++ [ self.cabal-helper self.cereal ];
# # });
# # cabal-helper = lib.overrideCabal super.cabal-helper (oldAttrs: {
# # version = "0.3.2.0";
# # sha256 = "06igjmr0n8418wid1pr74cgvlsmwni7ar72g9bddivlbxax1pfli";
# # });
# # HaRe = lib.overrideCabal super.HaRe (attrs: {
# # version = "0.6.1.0";
# # sha256 = "1azxbfvzdn73bv3vg6xylrjiahaxcx86vhx9b60z106a4ynkxdfr";
# # });
# # ghc-mod = super.ghc-mod.overrideDerivation (attrs: {
# # src = pkgs.fetchFromGitHub {
# # owner = "kazu-yamamoto";
# # repo = "ghc-mod";
# # rev = "19b3de356928f7c1a7aa3a59430beae08a883e7b";
# # sha256 = "0airmyw5w912fxlq9r1076q6cca7nvh29smhny1lv694h3bbvgjz";
# # };
# # buildInputs = attrs.buildInputs ++ [ pkgs.haskellPackages.cabal-helper ];
# # });
# # cabal-helper = super.cabal-helper.overrideDerivation (attrs: {
# # src = pkgs.fetchFromGitHub {
# # owner = "DanielG";
# # repo = "cabal-helper";
# # rev = "c2f6a2e5bf40f9e4cb9276bcc9b58ec3627f727a";
# # sha256 = "075a4i8ck75rc03pmzr65ys20s9g0jwyclfvnziminpp3p8p53vi";
# # };
# # version = "0.6.0.0";
# # });
# # cabal-helper = lib.overrideCabal super.cabal-helper (attrs: {
# # version = "0.6.0.0";
# # sha256 = "0b12mz370fhlibln6w9c67npp9ivvgkayxn53zv5pq7w76rd1ajv";
# # });
hobbes = super.hobbes.overrideDerivation (attrs: {
src = pkgs.fetchFromGitHub {
owner = "jhickner";
repo = "hobbes";
rev = "764b04465b9d46e3521d42cd26f006b571aad912";
sha256 = "05cqirxfnibnwr1vwziwxp75jh7m871jq5y2rmbkz79b7bw8lbcz";
};
buildInputs = with pkgs.haskellPackages; [
filepath
filemanip
fsnotify
text
];
});
funnyprint = with pkgs.haskellPackages; mkDerivation {
pname = "funnyprint";
version = "0.0.5";
sha256 = "17prxs7cdblkn4f9w2nr0gjhcm1p1pqklxg44ynpr5a739zdh4wg";
isLibrary = true;
isExecutable = false;
libraryHaskellDepends = [ ipprint hscolour ];
testHaskellDepends = [ tasty tasty-hspec criterion ];
doCheck = false;
jailbreak = true;
homepage = "https://github.com/Pitometsu/funnyprint#readme";
description = "funnyPrint function to colorize GHCi output.";
license = pkgs.stdenv.lib.licenses.mit;
platforms = self.ghc.meta.platforms;
};
# # ghci-ng = overrideCabal super.ghci-ng (attrs: {
# # src = pkgs.fetchFromGitHub {
# # owner = "chrisdone";
# # repo = "ghci-ng";
# # rev = "05df61d826d71cf8d65a6d764928775fdb8c91ad";
# # sha256 = "0flawgqdn01axkzac3zkzzqgbjm7z7b4y0xwcvr360x1fbnmmp52";
# # };
# # executableHaskellDepends =
# # let deps = with super; [ containers syb time transformers ];
# # in attrs.executableHaskellDepends ++ deps;
# # version = "0.0.0";
# # homepage = "https://github.com/chrisdone/ghci-ng#readme";
# # description = "Next generation GHCi";
# # });
hmenu = overrideCabal super.hmenu (attrs: {
src = pkgs.fetchFromGitHub {
owner = "sulami";
repo = "hmenu";
rev = "728a746202065c740b1516f3c66e72c6ff90bd35";
sha256 = "1c05j9m0vgzx70245k84mqs3x9ikd2k6c3r64w46l26cgi9bfahc";
};
buildDepends = with super; [ MissingH ];
});
haskell-docs = overrideCabal super.haskell-docs (drv: {
src = pkgs.fetchFromGitHub {
owner = "chrisdone";
repo = "haskell-docs";
rev = "32ecee8afe78de600da2f85ae58e60dcbc02fceb";
sha256 = "098zf0bd93yk6w5vfpbaqhp51sdwk9bmg0wdnidhk7ff9y4b27b8";
};
# patches = [ ~/nix/patches/haskell-docs/0001-packagename-type-ambiguity.patch ];
});
# hell-git = pkgs.haskell-ng.lib.overrideCabal pkgs.haskellngPackages.hell (oldAttrs: {
# src = pkgs.fetchgit {
# url = https://github.com/chrisdone/hell.git;
# rev = "442b0fc7cd7e2e9a5b2e43b14540467ddd32d29b";
# sha256 = "0q046zixqz5hd8c2pd4m6gcz3qyl032z8i9xxs0658c36fkk788f";
# };
# });
# stack = (overrideCabal super.stack (drv: {
# version = "1.1.3";
# revision = null;
# editedCabalFile = null;
# src = pkgs.fetchFromGitHub {
# owner = "commercialhaskell";
# repo = "stack";
# rev = "35ad01e6c7a2c7b090e52594043dc72cd7ed27b9";
# sha256 = "1w656qzm4ba06blcmykrsv45hckygf16964i1w2snlhfpz4xij8g";
# };
# libraryHaskellDepends = with self; [store persistent-sqlite] ++ drv.libraryHaskellDepends;
# })).override {
# persistent-sqlite = self.persistent-sqlite_2_5;
# };
th-utilities = overrideCabal super.th-utilities (drv: {
doCheck = false;
});
store = overrideCabal super.store (drv: {
doCheck = false;
});
# persistent-sqlite_2_5 = overrideCabal super.persistent-sqlite (drv: {
# version = "2.5";
# sha256 = "0wv3pc226vq5xyz05j4jm960ambk49g2phw22zz5q8c9a1zfhrya";
# doCheck = false;
# jailbreak = true;
# isLibrary = true;
# isExecutable = false;
# revision = null;
# editedCabalFile = null;
# });
};
packageOverrides = pkgs: with pkgs; rec {
linuxPackages_4_6_rt = linuxPackages_4_6_rt.override {
kernelPatches = super.linuxPackages_4_6_rt.kernelPatches ++ [
# Fix Bumblebee for T440p
{ name = "pcipm-nouveau-pm2";
patch = fetchurl {
url = "https://lekensteyn.nl/files/linux-v4.6-pcipm-nouveau-pm2.patch";
sha256 = "8caa840429de855188b3e262b66708a2b70af05652286015b8e1f6f8ea90f12d";
};
}
];
extraConfig = ''
SCHED_BFS y
'';
};
# jrePlugin = pkgs.jre8Plugin;
# qt4 = pkgs.qt4.override { gtkStyle = true; };
# qt53 = pkgs.qt53.override { gtkStyle = true; };
bumblebee = pkgs.bumblebee.override {
extraNvidiaDeviceOptions = ''
# custom setup
BusID "PCI:2:0:0"
Option "DRI" "3"
Option "AllowGLXWithComposite" "true"
Option "TwinView" "true"
Option "AddARGBGLXVisuals" "true"
Option "DisableGLXRootClipping" "true"
Option "DamageEvents" "true"
Option "RenderAccel" "true"
Option "metamodes" "nvidia-auto-select +0+0 { ForceFullCompositionPipeline = On }"
Option "AllowIndirectGLXProtocol" "off"
# caution here
Option "UseEvents" "false"
Option "TripleBuffer" "true"
Option "BackingStore" "true"
Option "Coolbits" "1"
Option "AccelMethod" "EXA"
Option "MigrationHeuristic" "greedy"
Option "AccelDFS" "true"
Option "EnablePageFlip" "true"
Option "EnableDepthMoves" "true"
Option "RegistryDwords" "EnableBrightnessControl=1"
'';
};
lts-5_15 = (pkgs.haskell.packages.lts-5_15.override rec {
overrides = config.haskellPackageOverrides or (self: super: {
vector-algorithms = pkgs.haskell.lib.overrideCabal super.vector-algorithms (drv: {
libraryHaskellDepends = with self; [ mtl mwc-random ] ++ drv.libraryHaskellDepends;
# libraryHaskellDepends = with self; [ base bytestring primitive vector mtl mwc-random ];
# testHaskellDepends = with self; [ base bytestring primitive vector mtl mwc-random ];
# executableHaskellDepends = with self; [ base bytestring primitive vector mtl mwc-random ];
# doCheck = false;
# jailbreak = true;
# isLibrary = true;
# isExecutable = false;
# revision = null;
# editedCabalFile = null;
});
});
});
numix_solarized-gtk-theme = with pkgs; stdenv.mkDerivation rec {
version = "0.0.1";
name = "numix_solarized-gtk-theme-${version}";
src = fetchFromGitHub {
owner = "Ferdi265";
repo = "numix-solarized-gtk-theme";
rev = "b6fce07c95a84dd618ed8594d441d0543192c1bb";
sha256 = "0gix5gx0n2bqyig3ngc9ky4296kqhnjr2vzjkidsjlkqp8raalmw";
};
# actuall, buildDepends, but in case of buildDepends it don't see sass in $PATH, not sure, why
buildInputs = [ gdk_pixbuf glib sass libxml2 ];
buildPhase = ''
make DESTDIR=$out
'';
prePatch = ''
sed -i 's/Numix/Numix Solarized/g' index.theme
export bkgrn=586e75
export white=eee8d5
export black=002b36
sed -i 's/selected_bg_color: #[^\\n]*;/selected_bg_color: #'$bkgrn';/g' gtk-3.0/scss/_global.scss
sed -i 's/selected_bg_color: #[^\\n]*;/selected_bg_color: #'$bkgrn';/g' gtk-3.20/scss/_global.scss
sed -i 's/white: #fff;/white: #'$white';/g' gtk-3.0/scss/_global.scss
sed -i 's/white: #fff;/white: #'$white';/g' gtk-3.20/scss/_global.scss
sed -i 's/black: #000;/black: #'$black';/g' gtk-3.0/scss/_global.scss
sed -i 's/black: #000;/black: #'$black';/g' gtk-3.20/scss/_global.scss
sed -i 's/nselected_bg_color:#[^\\n]*\\n/nselected_bg_color:#'$bkgrn'\\n/g' gtk-2.0/gtkrc
'';
installPhase = ''
install -dm 755 $out/share/themes/Numix\ Solarized
cp -dr --no-preserve='ownership' {LICENSE,CREDITS,index.theme,README.md,gtk-2.0,gtk-3.0,gtk-3.20,metacity-1,openbox-3,unity,xfce-notify-4.0,xfwm4} $out/share/themes/Numix\ Solarized/
'';
# installPhase = ''
# make DESTDIR=$out install
# '';
meta = {
description = "Numix Solarized GTK theme";
homepage = http://bitterologist.deviantart.com/art/Numix-Solarized-417575928;
license = stdenv.lib.licenses.gpl3;
platforms = stdenv.lib.platforms.all;
};
};
conkeror-unwrapped = pkgs.stdenv.lib.overrideDerivation pkgs.conkeror-unwrapped (attrs: rec {
version = "1.0.3";
src = fetchgit {
url = "git://repo.or.cz/conkeror.git";
rev = "refs/tags/${version}";
sha256 = "06fhfk8km3gd1lc19543zn0c71zfbn8wsalinvm1dbgi724f52pd";
};
});
# vstsdk = fetchzip {
# name = "vstsdk-3.6.5";
# url = "file://" + requireFile {
# url = http://www.steinberg.net/sdk_downloads/vstsdk365_28_08_2015_build_66.zip;
# sha256 = "18jd2s31hgbgv3765xl9zmljlikryd0104m34qkpc1jmlxzaclac";
# };
# sha256 = "1vgwdplb1jsa4y4azdc93h3prs2jpqpbw2vzvv105amdizvq0f13";
# };
# carla = pkgs.stdenv.mkDerivation rec {
# version = "2.0";
# name = "carla-${version}";
# src = fetchzip {
# url = "https://github.com/falkTX/Carla/archive/master.zip";
# sha256 = "13sp36jyvdksxpz77ijddjdmdlhq9yvlb1z93p0nr7bpc4xp567q";
# };
# buildInputs = with pkgs; [
# wineWow
# pkgconfig
# python3
# # pyliblo - does not exist
# # liblo - enable this if pyliblo exists
# libclthreads
# libclxclient
# ffmpeg
# fluidsynth
# mesa_glu
# libpng
# libsmf
# /* linuxsampler */
# ntk
# minixml
# zita-convolver
# zita-resampler
# vstsdk
# # optionals:
# gtk2 # lv2 gtk2 ui support
# gtk3 # lv2 gtk3 ui support
# /* pygtk # NekoFilter UI */
# /* zlib # extra native plugins */
# /* zynaddsubfx # ZynAddSubFX banks */
# /* windows.mingw_w64 */
# /* windows.mingw_w64_headers */
# makeWrapper
# ] ++ (with python34Packages;
# [ wrapPython
# pyqt5
# ]);
# pyuic5 = "PYUIC5=${pkgs.python34Packages.pyqt5}/bin/pyuic5";
# phaseNames = [ "wrapBinContentsPython" ];
# buildPhase = ''
# sed -i source/Makefile.mk -e "s#CARLA_VESTIGE_HEADER = true##"
# rm -r source/includes/vestige
# ln -s ${pkgs.vstsdk} source/includes/vst2
# export ${pyuic5}
# export PREFIX=$out
# #echo "=== compiling win64 ==="
# #make win64
# #echo "=== compiling wine64 ==="
# #make wine64
# #echo "=== compiling carla ==="
# make
# '';
# installPhase = ''
# make ${pyuic5} install PREFIX=$out
# for i in $out/bin/*; do
# wrapProgram "$i" --set PYTHONPATH $PYTHONPATH
# done
# for i in $out/bin/.*wrapped; do
# sed -i $i \
# -e "s#python#${pkgs.python3}/bin/python3#"
# done
# for i in $out/share/carla/resources/{*-ui,*-plugin*}; do
# patch --batch $i ${./fixpypath.patch}
# done
# '';
# meta = with stdenv.lib; {
# description = "Audio plugin host";
# homepage = http://ardour.org/;
# license = licenses.gpl2;
# platforms = platforms.linux;
# maintainers = [ maintainers.joelmo ];
# };
# };
xombrero = with pkgs; stdenv.mkDerivation rec {
# TODO: gtk2 flag support
version = "1.6.4";
pname = "xombrero";
name = "${pname}-${version}";
src = fetchFromGitHub {
owner = "conformal";
repo = "${pname}";
rev = "28d140688dd5944df75568b2f6c785069a5883aa";
sha256 = "0376yyz2ybzgp7q9j1rvwxfmgww4hhkaq3fd6l7gljphjj6qvcqj";
};
preFixup=''
wrapProgram "$out/bin/$pname" \
--prefix GIO_EXTRA_MODULES : "${gnome3.glib_networking.out}/lib/gio/modules:${gnome3.dconf}/lib/gio/modules" \
--prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH:$out/share"
'';
buildInputs = [gnutls desktop_file_utils perl libbsd gtk3 gnome3.webkitgtk24x pkgconfig groff makeWrapper gsettings_desktop_schemas ];
makeFlags = [ "-C" "linux" "GTK_VERSION=gtk3" "PREFIX=\${out}" ];
installFlags = [ "PREFIX=\${out}" ];
# preInstall = "cp -r share/$pname $out/share/$pname";
# environment.pathsToLink = [ "/share/$pname" ];
# outputs = [ "out" "man" "${pname}" ];
};
# patched version for VFS5011 sensor, unreliable
# fprintd = pkgs.stdenv.lib.overrideDerivation pkgs.fprintd (attrs: {
# src = pkgs.fetchFromGitHub {
# owner = "abbradar";
# repo = "fprint_vfs5011";
# rev = "faa090818200ca3ea6bfac8bb510e5e01a246c34";
# sha256 = "0msiwk5f88030my6chchy5xzsmfd5x8m2inyg7br3jdx2vjr0mw3";
# };
# });
# # tmux = pkgs.stdenv.lib.overrideDerivation pkgs.tmux (attrs: {
# # version = "2.2";
# # });
emacs = pkgs.stdenv.lib.overrideDerivation (pkgs.emacs.override {
withGTK2 = false;
withGTK3 = true;
# imagemagick = pkgs.imagemagickBig;
}) (attrs: {
# src = pkgs.fetchgit {
# rev = "f85318cdcdc2f7cf7729117fcc841407776c7e4b";
# url = "git://git.savannah.gnu.org/emacs.git";
# sha256 = "1hqghjgr0kdhwgmw6nnilnw2dmmb7arcd14iyrai2z61krv0z29j";
# };
patches = map pkgs.fetchurl [
{ url = "https://gist.githubusercontent.com/choppsv1/e8198df70cb1778b04d6/raw/99b9c436c5b7dc96f2d4645b7b2cdeec614f7698/emacs-24.5-24bit.diff";
sha256 = "04jbskhhd90h5xkj2575kzs9p1lady864l6ng3c7jpsk2hhcxsgv";
}
];
});
urxvt = pkgs.stdenv.lib.overrideDerivation pkgs.rxvt_unicode (attrs: {
src = pkgs.fetchgit {
url = "https://github.com/spudowiar/rxvt-unicode.git";
rev = "d6732943f1e79f09fa1bd86dbeb4e02a06bdfc18";
sha256 = "1xh7b71f1a2zblykymcjmpnqw2jvmz114fc1sfvpjvq6rvswc93m";
fetchSubmodules = true;
};
preConfigure = ''
mkdir -p $terminfo/share/terminfo
configureFlags="--with-terminfo=$terminfo/share/terminfo --enable-256-color --enable-24-bit-color --enable-combining --enable-fading --enable-font-styles --enable-iso14755 --enable-keepscrolling --enable-lastlog --enable-mousewheel --enable-next-scroll --enable-perl --enable-pointer-blank --enable-rxvt-scroll --enable-selectionscrolling --enable-slipwheeling --disable-smart-resize --enable-startup-notification --enable-transparency --enable-unicode3 --enable-utmp --enable-wtmp --enable-xft --enable-xim --enable-xterm-scroll --disable-pixbuf --disable-frills"
export TERMINFO=$terminfo/share/terminfo # without this the terminfo won't be compiled by tic, see man tic
NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${pkgs.freetype}/include/freetype2"
NIX_LDFLAGS="$NIX_LDFLAGS -lfontconfig -lXrender "
mkdir -p $out/lib/perl5
ln -s $out/{lib/urxvt,lib/perl5/site_perl}
'';
});
urxvt-with-plugins = pkgs.rxvt_unicode_with-plugins.override {
rxvt_unicode = urxvt;
};
# # st = pkgs.stdenv.lib.overrideDerivation pkgs.st (attrs: rec {
# # patches = map pkgs.fetchurl [
# # { url = "http://st.suckless.org/patches/st-0.6-argbbg.diff";
# # sha256 = "0ig87m5dp0p08dl9idq7vsg5w0w5h24lpaj6kbfr9bl81zh0rjl4";
# # }
# # { url = "http://st.suckless.org/patches/st-git-20151119-solarized-light.diff";
# # sha256 = "14bi0vsvyj75mp5nqsp34c2x8kkkv9c2q0kbx495k2a4gcsgv1s7";
# # }
# # ];
# # });
rofi = pkgs.stdenv.lib.overrideDerivation pkgs.rofi (attrs: {
version = "0.15.8";
postInstall = ''
ln -s "$out/bin/rofi" "$out/bin/dmenu"
'';
});
skype = pkgs.stdenv.lib.overrideDerivation pkgs.skype (attrs: {
buildInputs = with pkgs.pkgsi686Linux; [gtk-engine-murrine gtk_engines gnome.gtk gnome3.gtk gdk_pixbuf libcanberra_gtk3] ++ attrs.buildInputs;
});
moc = pkgs.stdenv.lib.overrideDerivation pkgs.moc (attrs: {
buildInputs = attrs.buildInputs ++ (with pkgs; [ libsamplerate taglib libmpcdec wavpack faad2 curl file ]); # +librcc +libmagic -libmpc
configureFlags = "--with-rcc --without-oss --with-alsa --with-jack --with-aac --with-mp3 --with-musepack --with-vorbis --with-flac --with-wavpack --with-sndfile --with-modplug --with-ffmpeg --with-speex --with-timidity --with-samplerate --with-curl --with-sidplay2 --with-magic --disable-cache --disable-debug";
});
sox = pkgs.sox.override {
enableLame = true;
enableAMR = true;
};
ffmpeg-full = pkgs.ffmpeg-full.override {
lame = true;
# TODO: a lot of flags here...
};
vlc = pkgs.vlc.override {
jackSupport = true;
};
# gnome.gtk = pkgs.stdenv.lib.overrideDerivation pkgs.gnome.gtk (attrs: {
# prePatch = ''
# substituteInPlace gtk/gtkprivate.h '#define GTK_DEFAULT_ACCEL_MOD_MASK GDK_CONTROL_MASK' '#define GTK_DEFAULT_ACCEL_MOD_MASK GDK_SUPER_MASK'
# '';
# });
# gnome3.gtk = pkgs.stdenv.lib.overrideDerivation pkgs.gnome3.gtk (attrs: {
# prePatch = ''
# substituteInPlace gtk/gtkprivate.h '#define GTK_DEFAULT_ACCEL_MOD_MASK GDK_CONTROL_MASK' '#define GTK_DEFAULT_ACCEL_MOD_MASK GDK_SUPER_MASK'
# '';
# });
# wicd = pkgs.wicd.override {
# python = pkgs.python34;
# };
# sxiv_xft = pkgs.stdenv.lib.overrideDerivation (pkgs.sxiv.override
# (args: args) // { # here add new args
# # withImagemagick = true;
# # withLibjpeg = true;
# # withGimp = true;
# }
# ) (attrs: {
# name = "sxiv_xft-2013.10.27";
# # meta.description = "Simple (or small or suckless) X Image Viewer with manga view mode (-m) (baskerville xft fork)";
# prePatch = ''
# substituteInPlace config.def.h 'static const char * const BAR_FONT = "Monospace:size=9";' 'static const char * const BAR_FONT = "Inconsolata LGC:size=8.6";'
# substituteInPlace config.def.h 'static const char * const WIN_BG_COLOR = "#555555";' 'static const char * const WIN_BG_COLOR = "#fdf6e3";'
# substituteInPlace config.def.h 'static const char * const WIN_FS_COLOR = "#000000";' 'static const char * const WIN_FS_COLOR = "#657b83";'
# substituteInPlace config.def.h 'static const char * const SEL_COLOR = "#EEEEEE";' 'static const char * const SEL_COLOR = "#eee8d5";'
# substituteInPlace config.def.h 'static const char * const BAR_BG_COLOR = "#222222";' 'static const char * const BAR_BG_COLOR = "#fdf6e3";'
# substituteInPlace config.def.h 'static const char * const BAR_FG_COLOR = "#EEEEEE";' 'static const char * const BAR_FG_COLOR = "#657b83";'
# '';
# src = pkgs.fetchFromGitHub {
# owner = "Pitometsu";
# repo = "sxiv";
# # branch = "xft";
# sha256 = "02zj4gmckaca5ryxb52ma1fd26gm2fjpahz7f7iv801qs8i88b1j";
# rev = "6af450670d20cfaa779013e85e709eb3fe022c52";
# };
# # patches = [
# # (let manga_patch = {
# # name = "manga-patch";
# # src = import <nix/fetchurl.nix> {
# # url = "https://github.com/baskerville/sxiv/commit/77eb07637d14c432319605d3e383d37ff1a91850.patch";
# # md5 = "7faf8df927e34a44802ecc17e7b80755";
# # };
# # }; in manga_patch.src)
# # (let xft_patch = {
# # name = "xft-patch";
# # src = import <nix/fetchurl.nix> {
# # url = "https://github.com/baskerville/sxiv/commit/ea4ea27cae735f107c191eb4590db357f9ee5d4f.patch";
# # md5 = "0b8cc129d9d078322fa82179544cc008";
# # };
# # }; in xft_patch.src)
# # ];
# # buildInputs = attrs.buildInputs ++ [ pkgs.xlibs.libXft ] ++ stdenv.lib.optional attrs.withImagemagick pkgs.imagemagick ++ stdenv.lib.optional attrs.withLibjpeg pkgs.libjpeg ++ stdenv.lib.optional attrs.withGimp pkgs.gimp;
# buildInputs = attrs.buildInputs ++ [ pkgs.xlibs.libXft ];
# # buildDepends = [ pkgs.xlibs.libXft ];
# });
};
};
# system.copySystemConfiguration = true; # broken because of chroot
services.ntp.enable = true;
time.timeZone = "Europe/Kiev";
# Select internationalisation properties.
i18n = {
consoleFont = "${pkgs.terminus_font}/share/consolefonts/ter-v16n.psf.gz";
consoleKeyMap = "dvp";
defaultLocale = "en_US.UTF-8";
# consoleUseXkbConfig = true;
};
programs.zsh = {
enable = true;
interactiveShellInit = ''
x-copy-region-as-kill () {
zle copy-region-as-kill
print -rn $CUTBUFFER | xsel --clipboard --input --display :0
}
zle -N x-copy-region-as-kill
x-kill-region () {
zle kill-region
print -rn $CUTBUFFER | xsel --clipboard --input --display :0
}
zle -N x-kill-region
x-yank () {
CUTBUFFER=$(xsel --clipboard --output --display :0 < /dev/null)
zle yank
}
zle -N x-yank
bindkey -e '\ew' x-copy-region-as-kill
bindkey -e '^w' x-kill-region
bindkey -e '^y' x-yank
setopt extended_glob
'';
};
environment = {
shellAliases = {
j = "jobs";
g = "git";
gl = "git log --pretty=format:\"%an, %ar, %h: %s\"";
gs = "git status";
gf = "git fetch";
ga = "git add";
gcl = "git clone";
gc = "git commit -m";
gca = "git commit -a -m";
gp = "git pull --rebase && git push";
gull = "git pull --rebase";
gpp = "git pull --rebase git push";
gush = "git push";
gm = "git merge";
gb = "git branch";
gco = "git checkout";
gd = "git diff";
gu = "git ls-files --other --exclude-standard";
gt = "git log --graph --oneline --decorate --all";
gsm = "git submodule";
ecw = "emacsclient";
ec = "emacsclient -nw";
gr = "egrep -s --colour=auto";
t = "tree -C";
t1 = "t -L 1";
lls = "ls -F -h --color=auto";
ll = "ls -l";
la = "ls -a";
ls = "ls -h";
lla = "la -1";
l = "ls";
nano = "nano -w";
cp = "cp -viR";
mv = "mv -vi";
rm = "rm -viR";
md = "mkdir -p -v";
# jackD = "set_rlimits jackd -Rv -p512 -d alsa -dhw:1 -r96000 -p4096 -n2 -Xseq";
df = "df -h";
du = "du -h";
# burndvd = "growisofs -Z /dev/dvdrw -R -J";
# burndvdISO = "growisofs -dvd-compat -Z /dev/dvdrw=";
# burncd = "mkisofs -r -f -jcharset=cp1251 -C $(cdrecord dev=/dev/cdrw -msinfo) -M /dev/cdrw $HOME/forburn/ | cdrecord --speed=4 -v -multi driveropts=burnfree -eject dev=/dev/cdrw -";
# burncdISO = "cdrecord --speed=4 -v -multi driveropts=burnfree -eject dev=/dev/cdrw";
# blankcd = "cdrecord --dev=/dev/cdrw --blank=fast";
# bl = "baudline_jack -waveform -realtime -record -jack -inconnect";
wget = "wget --no-check-certificate";
wgetp = "wgetpaste -rXvt";
killall = "pkill";
pbcopy = "xsel --clipboard --input --display :0";
pbpaste = "xsel --clipboard --output --display :0";
open = "DISPLAY=:0 xdg-open";
zip = "zip -r";
ew = "emacs -Q";
et = "emacs -nw -Q";
tv = "pv -p --timer --rate --bytes";
dmesg = "dmesg --color=always";
less = "less -R";
s = "ssh";
c = "curl";
f = "find";
h = "heroku";
haix = "heroku sudo apps:info -xa";
be = "bundle exec";
# tmux
tma = "tmux attach -d -t";
tmn = "tmux new -s $(basename $(pwd))";
tml = "tmux list-sessions";
nixpaste = "curl -F \"text=<-\" http://nixpaste.lbr.uno";
nixos-fix = "nix-store --verify --check-contents --repair";
nixos-repkg = "nix-build --check -A";
nixos-clean = "nix-collect-garbage -d";
nixos-search = "nix-env -qaP --description \\* | sed -re \"s/^nixos\\.//g\" | fgrep -i";
nixos-update = "nixos-rebuild switch";
nixos-upgrade = "nixos-rebuild switch --upgrade";
nxf = "nixos-fix";
nxr = "nixos-repkg";
nxc = "nixos-clean";
nxs = "nixos-search";
nxu = "nixos-update";
nxg = "nixos-upgrade"; # TODO: sync git in /etc/nixos/* from imports
};
shells = [
"/run/current-system/sw/bin/zsh"
"/run/current-system/sw/bin/bash"
];
variables = with pkgs; rec {
EDITOR = "et";
# DRI_PRIME = "1";
VDPAU_DRIVER = "va_gl";
QT_STYLE_OVERRIDE = "GTK+";
# fish ssl for git, see: https://github.com/NixOS/nixpkgs/issues/3382
# GIT_SSL_CAINFO="/etc/ssl/certs/ca-certificates.crt";
# Fix Gtk org.a11y.Bus error. Or just add at-spi2-core-2.20.1/etc/xdg to /run/current-system/sw/etc/xdg ??? See: https://github.com/NixOS/nixpkgs/issues/16327
# NO_AT_BRIDGE = "1";
# nvidia tearing
__GL_YIELD = "USLEEP";
__GL_THREADED_OPTIMIZATIONS = "1";
# Fix webkitgtk
# GIO_EXTRA_MODULES = "${glib_networking}/lib/gio/modules";
# GIO_EXTRA_MODULES = "${dconf}/lib/gio/modules"
# GIO_EXTRA_MODULES = "${glib}/lib/gio/modules"
# GIO_EXTRA_MODULES = "${gconf}/lib/gio/modules"
# GSETTINGS_SCHEMA_DIR = "${glib}/share/glib-2.0/schemas";
# GSETTINGS_SCHEMA_PATH = "\$GSETTINGS_SCHEMA_DIR";
# XDG_DATA_DIRS = "${glib}/share:${gtk3}/share:\$GSETTINGS_SCHEMAS_PATH:\$XDG_ICON_DIRS:\$XDG_DATA_DIRS";
# XDG_ICON_DIRS = ...
XCURSOR_PATH = "~/.icons:${config.system.path}/share/icons:\$XCURSOR_PATH";
XDG_CONFIG_DIRS = "${gnome3.gnome_settings_daemon}/etc/xdg:\$XDG_CONFIG_DIRS";
# GTK2 theme
GTK_PATH = "\$GTK_PATH:${gtk-engine-murrine}/lib/gtk-2.0";
GTK2_RC_FILES = "${pkgs.writeText "iconrc" ''gtk-icon-theme-name="Numix-Light"''}:${pkgs.numix_solarized-gtk-theme}/share/themes/Numix\ Solarized/gtk-2.0/gtkrc:\$GTK2_RC_FILES";
# GTK3 theme
GTK_THEME = "Numix Solarized";
XDG_DATA_DIRS = "${numix_solarized-gtk-theme}/share:\$XDG_DATA_DIRS";
# export XDG_CONFIG_DIR S ="/etc/xdg:\$XDG_CONFIG_DIRS";
# XCURSOR_PATH = ...
# SVG loader for pixbuf (needed for svg icon themes)
GDK_PIXBUF_MODULE_FILE = "\$(echo ${librsvg.out}/lib/gdk-pixbuf-2.0/*/loaders.cache)";
# Set GTK_DATA_PREFIX so that GTK+ can find the system themes.
GTK_DATA_PREFIX = "\$GTK_DATA_PREFIX:${config.system.path}:${pkgs.numix_solarized-gtk-theme}";
};
interactiveShellInit = ''
'';
extraInit = ''
'';
# binsh = "${pkgs.dash}/bin/dash"; # SLIM not work with DASH :'(
# shellInit = ''
# export VST_PATH=/nix/var/nix/profiles/default/lib/vst:/var/run/current-system/sw/lib/vst:~/.vst
# export LXVST_PATH=/nix/var/nix/profiles/default/lib/lxvst:/var/run/current-system/sw/lib/lxvst:~/.lxvst
# export LADSPA_PATH=/nix/var/nix/profiles/default/lib/ladspa:/var/run/current-system/sw/lib/ladspa:~/.ladspa
# export LV2_PATH=/nix/var/nix/profiles/default/lib/lv2:/var/run/current-system/sw/lib/lv2:~/.lv2
# export DSSI_PATH=/nix/var/nix/profiles/default/lib/dssi:/var/run/current-system/sw/lib/dssi:~/.dssi
# '';
# /var/run/current-system/sw/etc/profile
# shellInit = ''
# # ===================================
# # SYSTEM WIDE CONFIGURATION GOES HERE
# # ===================================
# # Set GTK_PATH so that GTK+ can find themes engine.
# export GTK_PATH=$GTK_PATH:${pkgs.numix-gtk-theme}/lib/gtk-2.0::${pkgs.numix-gtk-theme}/lib/gtk-3.0:${pkgs.gtk-engine-murrine}/lib/gtk-2.0
# # Set GTK2 RC
# export GTK2_RC_FILES=$GTK2_RC_FILES:${pkgs.numix-gtk-theme}/share/themes/Numix/gtk-2.0/gtkrc
# # Set GTK_DATA_PREFIX so that GTK+ can find the system themes.
# export GTK_DATA_PREFIX=$GTK_DATA_PREFIX:${config.system.path}
# # ===================================
# '';
# pathsToLink =
# [ "/usr/share/themes" "/usr/share/mime" "/usr/share/desktop-directories" ];
# List packages installed in system profile
systemPackages = with pkgs; ([
# appearance
lxappearance gtk-engine-murrine hicolor_icon_theme gtk_engines numix-icon-theme numix_solarized-gtk-theme # qt5.qtbase.gtk
# desktop
lxappearance primus rofi compton-git unclutter haskellPackages.hmenu haskellPackages.yeganesh haskellPackages.xmobar taffybar redshift unclutter scrot screenfetch stalonetray xlaunch xlibs.xev xlibs.xlsfonts xclip xsel primus wmctrl feh xdotool # bgs
(let dmenfm = let version = "0.1.2.1";
in with pkgs; stdenv.mkDerivation rec {
name = "dmenfm-${version}";
src = fetchFromGitHub {
owner = "Pitometsu";
repo = "dmenfm";
rev = "a4b61f49b15ce210fde25aaa87a55a90c0a9f6bf";
sha256 = "14fq6c0kkxg29ikknsmk43j8hg3v70qnma5hs4iisx0dl5p9ma5i";
};
dontBuild = true;
installPhase = let
bin_dir = "$out/bin";
doc_dir = "$out/share/doc/${name}";
in ''
mkdir -pv "${bin_dir}"
mkdir -pv "${doc_dir}"
cp -v dmenfm "${bin_dir}"
cp -v README.md "${doc_dir}"
'';
meta = with stdenv.lib; {
homepage = "https://github.com/hangtwenty/dmenfm#readme";
description = "A simple dmenu-based file manager.";
license = licenses.gpl;
platforms = platforms.all;
};
}; in dmenfm)
# env
emacs zeal moc mpv st urxvt-with-plugins zathura conkeror chromium transmission_gtk rtorrent gimp-with-plugins inkscape skype qtox weechat gajim sxiv python27Packages.youtube-dl xombrero firefox # sxiv_xft # sxiv_bskv_manga vlc libreoffice firefox-esr-wrapper
# emacs wibkit dependensies:
python27Packages.pyqt5
python27Packages.epc
python27Packages.xlib
# qt5.qtwebkit
# (let sxiv_xft = with pkgs; stdenv.mkDerivation rec {
# name = "sxiv_xft";
# src = fetchgit {
# url = "git://github.com/pitometsu/sxiv.git";
# sha256 = "1fapnvaj0cf9gj2gmdls1ch2jh68i51sga9zdmrirmzr9fwqhfhx";
# rev = "6af450670d20cfaa779013e85e709eb3fe022c52";
# };
# postUnpack = ''
# substituteInPlace $sourceRoot/Makefile \
# --replace /usr/local $out
# '';
# buildInputs = with pkgs.xlibs; [ libX11 imlib2 libXft libXext fontconfig giflib libexif ]; # TODO: make giflib and libexif optional
# meta = with stdenv.lib; {
# description = "Simple (or small or suckless) X Image Viewer (xft fork)";
# homepage = https://github.com/pitometsu/sxiv;
# license = licenses.gpl2Plus;
# platforms = platforms.linux;
# };
# }; in sxiv_xft)
# cli
tmux w3m wget zsh nix-zsh-completions tree file lsof # byobu
# fun
steam
# audio
# sox soxr
pavucontrol lash baudline # ladish patchage gladish/claudia baudline
jack2Full qjackctl a2jmidid # spectrojack
jaaa jack_rack jalv jackmeter jack_oscrolloscope # zynjacku lv2rack
ingen ardour audacious jamin timemachine patchage iannix spectrojack non # laoe jamin luppp iannix algoscore rationale carla non_sequencer non_mixer non_timeline nsm
mhwaveedit # reZound
puredata # supercollider
calf artyFX ams-lv2
# commented out because of broken Faust
constant-detune-chorus CharacterCompressor CompBus LazyLimiter
# fomp MBdistortion mda_lv2 (hiPrio metersLv2) mod-distortion RhythmDelay rkrlv2 sorcer
# swh_lv2 x42-plugins # zam-plugins
# dev
stack cabal-install cabal2nix llvm (hiPrio clang) gdb gnumake automake autoconf cmake gitAndTools.gitFull diffoscope subversion bazaar bazaarTools cvs mercurial darcs silver-searcher haskellPackages.hobbes nodejs openjdk python3 # postgresql # oraclejre oraclejdk # ghc gcc
git-hub heroku nix-repl # howdoi
ditaa
gnupg
# Ruby
bundix
ruby_2_0 # for emacs plugins
# chruby
# # RVM -- ???: sholdn't it be in dependencies list?
# # git
# # gcc
# # bash
# # curl
# which
# ## openssl
# sqlite
# # patch
# ## readline
# # ncurses
# ## zlib
# libyaml
# libiconv
# libxml2 # used by gem nokogiri, rails dependency
# libxslt # used by gem nokogiri, rails dependency
# libksba
# libtool
# bison
# pkgconfig
# # v8
# # Rails
# nodejs
# python
python34Packages.ipython python34Packages.pip python34Packages.virtualenv
# sci
R graphviz gnuplot # octave (hiPrio texLiveFull) emacs24Packages.ess
# utils
keychain aspell pastebinit wgetpaste gnupg openvpn qrencode unrar unzip p7zip imagemagickBig pv glxinfo # imgurbash
tcpdump reptyr gnutls
python27Packages.googlecl python34Packages.youtube-dl gist # haskellPackages.pandoc haskellPackages.hakyll
(let clipmenu = # { stdenv
# , pkgs
# , fetchFromGitHub
# , withRofi ? true, rofi
# , withDmenu2 ? false, dmenu2 ? null
# , dmenu ? null }:
with pkgs.stdenv.lib;
# assert withRofi -> !withDmenu2 && dmenu2 == null && dmenu == null && rofi != null;
# assert withDmenu2 -> !withRofi && rofi == null && dmenu == null && dmenu2 != null;
# assert !withRofi && !withDmenu2 -> rofi == null && dmenu2 == null && dmenu != null;
let
version = "1.1.0";
in
stdenv.mkDerivation rec {
name = "clipmenu-${version}";
src = fetchFromGitHub {
owner = "cdown";
repo = "clipmenu";
rev = "4dfbfed9e2a1a66836816883a14065333abaf8c6";
sha256 = "0dbvrbzrb505sjcv0kyrc0yjzhwwckdpgya7ylrxqpfabklwv7lz";
};
dontBuild = true;
installPhase = let
bin_dir = "$out/bin";
doc_dir = "$out/share/doc/${name}";
in ''
mkdir -pv "${bin_dir}"
mkdir -pv "${doc_dir}"
cp -v {clipmenu,clipmenud} "${bin_dir}"
cp -v {README.md,LICENSE} "${doc_dir}"
'';
buildInputs = [ bash ]
++ [ rofi ];
# ++ optional withRofi [ rofi ]
# ++ optional (!withRofi && withDmenu2) [ dmenu2 ]
# ++ optional (!withRofi && !withDmenu2) [ dmenu ];
meta = with stdenv.lib; {
homepage = "https://github.com/cdown/clipmenu#readme";
description = "clipmenu is a simple clipboard manager using dmenu and xsel.";
license = licenses.isc;
platforms = platforms.all;
};
}; in clipmenu)
# sys
dash usbutils pciutils lshw htop ntfs3g fbterm nox hdparm powertop aircrackng acpitool mkpasswd reiser4progs udisks bashmount (hiPrio utillinuxCurses) parted gptfdisk pmutils # udisks manpages
gparted
# host
# qemu_kvm # linuxPackages_4_6.virtualbox
# haskell development and hacking
# HUnit broke hoogle suppert for now somewhy
# (lts-5_15.ghcWithHoogle (hpkgs: with lts-5_15; [
(lts-5_15.ghcWithPackages (hpkgs: with lts-5_15; [
hoogle
hlint
hi
shake
(pkgs.haskell.lib.dontCheck intero)
funnyprint
haskell-docs
stylish-haskell
structured-haskell-mode
ghc-mod
hasktags
HaRe
]))
] # ++ # (with haskellPackages; [
# (haskell.packages.lts-5_15.ghcWithHoogle (hpkgs: with haskell.packages.lts-5_15; [
# hlint hi
# (pkgs.haskell.lib.dontCheck intero)
# funnyprint
# haskell-docs
# hscolour ipprint
# stylish-haskell
# structured-haskell-mode ghc-mod # hdevtools
# hasktags
# ]))
# ]) # ++ (with haskell.packages.ghc784; [
# ghci-ng
# structured-haskell-mode # ghc stack hlint ghc-mod hi hdevtools cabal-install
# ]) # ++ [ haskell.packages.ghc763.HaRe ]
);
};
# nixpkgs.config.allowBroken = true;
environment.etc."adobe/mms.cfg".text = ''
EnableLinuxHWVideoDecode = 1
OverrideGPUValidation = 1
'';
fonts = {
enableCoreFonts = true;
enableFontDir = true;
enableGhostscriptFonts = false;
fonts = with pkgs; [
symbola
font-awesome-ttf
libertine
# code2000
# code2001
# code2002
terminus_font
ubuntu_font_family
liberation_ttf
freefont_ttf
source-code-pro
(let inconsolata-lgc = let version = "1.2.0";
in with pkgs; stdenv.mkDerivation rec {
name = "inconsolata-lgc-${version}";
src = fetchurl {
url = "https://github.com/MihailJP/Inconsolata-LGC/releases/download/LGC-1.2.0/InconsolataLGC-OT-1.2.0.tar.xz";
sha256 = "0rw8i481sdqi0pspbvyd2f86k0vlrb6mbi94jmsl1kms18c18p66";
};
dontBuild = true;
installPhase = let
fonts_dir = "$out/share/fonts/opentype";
doc_dir = "$out/share/doc/${name}";
in ''
mkdir -pv "${fonts_dir}"
mkdir -pv "${doc_dir}"
cp -v *.otf "${fonts_dir}"
cp -v {README,LICENSE,ChangeLog} "${doc_dir}"
'';
meta = with stdenv.lib; {
homepage = http://www.levien.com/type/myfonts/inconsolata.html;
description = "A monospace font for both screen and print, LGC extension";
license = licenses.ofl;
platforms = platforms.all;
};
}; in inconsolata-lgc)
inconsolata
vistafonts
dejavu_fonts
freefont_ttf
unifont
cm_unicode
ipafont
baekmuk-ttf
source-han-sans-japanese
source-han-sans-korean
source-han-sans-simplified-chinese
source-han-sans-traditional-chinese
source-sans-pro
source-serif-pro
fira
fira-code
fira-mono
hasklig
];
fontconfig = {
enable = true;
dpi = 100;
antialias = true;
hinting = {
autohint = false;
enable = true;
style = "slight";
};
subpixel.lcdfilter = "default";
ultimate = {
enable = true; # see also: rendering, substitutions
useEmbeddedBitmaps = true;
};
defaultFonts = {
serif = [ "Source Sans Pro" "DejaVu Serif" "IPAMincho" "Beakmuk Batang" ];
sansSerif = [ "Source Serif Pro" "DejaVu Sans" "IPAGothic" "Beakmuk Dotum" ];
monospace = [ "Inconsolata LGC" "DejaVu Sans Mono" "IPAGothic" "Beakmuk Dotum" ];
};
};
};
environment.etc."fonts/conf.d/98-matches.conf".text = ''
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<match target="font">
<!-- Medium hinting for smaller fonts -->
<match target="font">
<test compare="more" name="pixelsize" qual="any"><double>5</double></test>
<test compare="less_eq" name="pixelsize" qual="any"><double>9</double></test>
<edit mode="assign" name="hintstyle"><const>hintmedium</const></edit>
<edit mode="assign" name="lcdfilter"><const>lcdlight</const></edit>
</match>
<!-- Full hinting for smallest fonts -->
<match target="font">
<test compare="less_eq" name="pixelsize" qual="any"><double>5</double></test>
<edit mode="assign" name="hintstyle"><const>hintfull</const></edit>
<edit mode="assign" name="lcdfilter"><const>lcdnone</const></edit>
</match>
<!-- Medium hinting for bigger fonts -->
<match target="font">
<test compare="more_eq" name="pixelsize" qual="any"><double>18</double></test>
<test compare="less" name="pixelsize" qual="any"><double>24</double></test>
<edit mode="assign" name="hintstyle"><const>hintmedium</const></edit>
<edit mode="assign" name="lcdfilter"><const>lcdlight</const></edit>
</match>
<!-- Full hinting for biggest fonts -->
<match target="font">
<test compare="more_eq" name="pixelsize" qual="any"><double>24</double></test>
<edit mode="assign" name="hintstyle"><const>hintfull</const></edit>
<edit mode="assign" name="lcdfilter"><const>lcdnone</const></edit>
</match>
<!-- Medium hinting for BOLD bigger fonts -->
<match target="font">
<test compare="more_eq" name="pixelsize" qual="any"><double>16</double></test>
<test compare="less" name="pixelsize" qual="any"><double>18</double></test>
<test name="weight" compare="more"><const>medium</const></test>
<edit mode="assign" name="hintstyle"><const>hintmedium</const></edit>
<edit mode="assign" name="lcdfilter"><const>lcdlight</const></edit>
</match>
<!-- Full hinting for BOLD biggest fonts -->
<match target="font">
<test compare="more_eq" name="pixelsize" qual="any"><double>18</double></test>
<test name="weight" compare="more"><const>medium</const></test>
<edit mode="assign" name="hintstyle"><const>hintfull</const></edit>
<edit mode="assign" name="lcdfilter"><const>lcdnone</const></edit>
</match>
<!-- Medium hinting for _italic_ bigger fonts -->
<match target="font">
<test compare="more_eq" name="pixelsize" qual="any"><double>16</double></test>
<test name="slant" compare="not_eq"><double>0</double></test>
<edit mode="assign" name="hintstyle"><const>hintmedium</const></edit>
<edit mode="assign" name="lcdfilter"><const>lcdlight</const></edit>
</match>
</match>
</fontconfig>
'';
environment.etc."fonts/conf.d/99-aliases.conf".text = ''
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<match target="font">
<!-- Use Nimbus Sans L instead of Helvetica -->
<alias binding="same">
<family>Helvetica</family>
<prefer>
<family>Nimbus Sans L</family>
<family>DejaVu Sans</family>
<family>Source Han Sans</family>
<family>Sazanami-Hanazono Mincho</family>
<family>Hancom</family>
<family>Code2000</family>
<family>Code2001</family>
<family>Code2002</family>
</prefer>
</alias>
<!-- Use Nimbus Sans L instead of Segoe UI -->
<alias binding="same">
<family>Segoe UI</family>
<prefer>
<family>Nimbus Sans L</family>
<family>DejaVu Sans</family>
<family>Source Han Sans</family>
<family>Sazanami-Hanazono Mincho</family>
<family>Hancom</family>
<family>Code2000</family>
<family>Code2001</family>
<family>Code2002</family>
</prefer>
</alias>
<!-- Use Liberation Sans instead of Arial -->
<alias binding="same">
<family>Arial Unicode MS</family>
<prefer>
<family>DejaVu Sans</family>
<family>Source Han Sans</family>
<family>Sazanami-Hanazono Mincho</family>
<family>Hancom</family>
<family>Code2000</family>
<family>Code2001</family>
<family>Code2002</family>
</prefer>
</alias>
<!-- Use Liberation Sans instead of Arial -->
<alias binding="same">
<family>Arial</family>
<prefer>
<family>Liberation Sans</family>
<family>DejaVu Sans</family>
<family>Source Han Sans</family>
<family>Sazanami-Hanazono Mincho</family>
<family>Hancom</family>
<family>Code2000</family>
<family>Code2001</family>
<family>Code2002</family>
</prefer>
</alias>
<!-- Use Liberation Sans instead of Corbel -->
<alias binding="same">
<family>Corbel</family>
<prefer>
<family>Liberation Sans</family>
<family>DejaVu Sans</family>
<family>Source Han Sans</family>
<family>Sazanami-Hanazono Mincho</family>
<family>Hancom</family>
<family>Code2000</family>
<family>Code2001</family>
<family>Code2002</family>
</prefer>
</alias>
<!-- Use Liberation Sans instead of Candara -->
<alias binding="same">
<family>Candara</family>
<prefer>
<family>Liberation Sans</family>
<family>DejaVu Sans</family>
<family>Source Han Sans</family>
<family>Sazanami-Hanazono Mincho</family>
<family>Hancom</family>
<family>Code2000</family>
<family>Code2001</family>
<family>Code2002</family>
</prefer>
</alias>
<!-- Use Liberation Serif instead of Times New Roman -->
<alias binding="same">
<family>Times New Roman</family>
<prefer>
<family>Liberation Serif</family>
<family>DejaVu Serif</family>
<family>Source Han Sans</family>
<family>Sazanami-Hanazono Mincho</family>
<family>Hancom</family>
<family>Code2000</family>
<family>Code2001</family>
<family>Code2002</family>
</prefer>
</alias>
<!-- Use Liberation Serif instead of Palatino Linotype -->
<alias binding="same">
<family>Palatino Linotype</family>
<prefer>
<family>Liberation Serif</family>
<family>DejaVu Serif</family>
<family>Source Han Sans</family>
<family>Sazanami-Hanazono Mincho</family>
<family>Hancom</family>
<family>Code2000</family>
<family>Code2001</family>
<family>Code2002</family>
</prefer>
</alias>
<!-- Use Liberation Serif instead of Sylfaen -->
<alias binding="same">
<family>Sylfaen</family>
<prefer>
<family>Liberation Serif</family>
<family>DejaVu Serif</family>
<family>Source Han Sans</family>
<family>Sazanami-Hanazono Mincho</family>
<family>Hancom</family>
<family>Code2000</family>
<family>Code2001</family>
<family>Code2002</family>
</prefer>
</alias>
<!-- Use Liberation Serif instead of Cambria -->
<alias binding="same">
<family>Cambria</family>
<prefer>
<family>Liberation Serif</family>
<family>DejaVu Serif</family>
<family>Source Han Sans</family>
<family>Sazanami-Hanazono Mincho</family>
<family>Hancom</family>
<family>Code2000</family>
<family>Code2001</family>
<family>Code2002</family>
</prefer>
</alias>
<!-- Use Droid Serif instead of Georgia -->
<alias binding="same">
<family>Georgia</family>
<prefer>
<family>Droid Serif</family>
<family>DejaVu Serif</family>
<family>Source Han Sans</family>
<family>Sazanami-Hanazono Mincho</family>
<family>Hancom</family>
<family>Code2000</family>
<family>Code2001</family>
<family>Code2002</family>
</prefer>
</alias>
<!-- Use Droid Serif instead of Constantia -->
<alias binding="same">
<family>Constantia</family>
<prefer>
<family>Droid Serif</family>
<family>DejaVu Serif</family>
<family>Source Han Sans</family>
<family>Sazanami-Hanazono Mincho</family>
<family>Hancom</family>
<family>Code2000</family>
<family>Code2001</family>
<family>Code2002</family>
</prefer>
</alias>
<!-- Use Ubuntu instead of Calibri -->
<alias binding="same">
<family>Calibri</family>
<prefer>
<family>Ubuntu</family>
<family>DejaVu Sans</family>
<family>Source Han Sans</family>
<family>Sazanami-Hanazono Mincho</family>
<family>Hancom</family>
<family>Code2000</family>
<family>Code2001</family>
<family>Code2002</family>
</prefer>
</alias>
<!-- Use Ubuntu instead of Trebuchet MS -->
<alias binding="same">
<family>Trebuchet MS</family>
<prefer>
<family>Ubuntu</family>
<family>DejaVu Sans</family>
<family>Source Han Sans</family>
<family>Sazanami-Hanazono Mincho</family>
<family>Hancom</family>
<family>Code2000</family>
<family>Code2001</family>
<family>Code2002</family>
</prefer>
</alias>
<!-- Use Ubuntu instead of Segoe Script -->
<alias binding="same">
<family>Segoe Script</family>
<prefer>
<family>Ubuntu</family>
<family>DejaVu Sans</family>
<family>Source Han Sans</family>
<family>Sazanami-Hanazono Mincho</family>
<family>Hancom</family>
<family>Code2000</family>
<family>Code2001</family>
<family>Code2002</family>
</prefer>
</alias>
<!-- Use Ubuntu instead of Lucida Sans Unicode -->
<alias binding="same">
<family>Lucida Sans Unicode</family>
<prefer>
<family>Ubuntu</family>
<family>DejaVu Sans</family>
<family>Source Han Sans</family>
<family>Sazanami-Hanazono Mincho</family>
<family>Hancom</family>
<family>Code2000</family>
<family>Code2001</family>
<family>Code2002</family>
</prefer>
</alias>
<!-- Use Ubuntu instead of Comic Sans MS -->
<alias binding="same">
<family>Comic Sans MS</family>
<prefer>
<family>Ubuntu</family>
<family>DejaVu Sans</family>
<family>Source Han Sans</family>
<family>Sazanami-Hanazono Mincho</family>
<family>Hancom</family>
<family>Code2000</family>
<family>Code2001</family>
<family>Code2002</family>
</prefer>
</alias>
<!-- Use Droid Sans instead of Verdana -->
<alias binding="same">
<family>Verdana</family>
<prefer>
<family>Droid Sans</family>
<family>DejaVu Sans</family>
<family>Source Han Sans</family>
<family>Sazanami-Hanazono Mincho</family>
<family>Hancom</family>
<family>Code2000</family>
<family>Code2001</family>
<family>Code2002</family>
</prefer>
</alias>
<!-- Use Droid Sans instead of Tahoma -->
<alias binding="same">
<family>Tahoma</family>
<prefer>
<family>Droid Sans</family>
<family>DejaVu Sans</family>
<family>Source Han Sans</family>
<family>Sazanami-Hanazono Mincho</family>
<family>Hancom</family>
<family>Code2000</family>
<family>Code2001</family>
<family>Code2002</family>
</prefer>
</alias>
<!-- Use Droid Sans instead of Microsoft Sans Serif -->
<alias binding="same">
<family>Microsoft Sans Serif</family>
<prefer>
<family>Droid Sans</family>
<family>DejaVu Sans</family>
<family>Source Han Sans</family>
<family>Sazanami-Hanazono Mincho</family>
<family>Hancom</family>
<family>Code2000</family>
<family>Code2001</family>
<family>Code2002</family>
</prefer>
</alias>
<!-- Use Inconsolata LGC instead of Consolas -->
<alias binding="same">
<family>Consolas</family>
<prefer>
<family>Inconsolata LGC</family>
<family>MigMix 1M</family>
<family>DejaVu Sans</family>
<family>Source Han Sans</family>
<family>Sazanami-Hanazono Mincho</family>
<family>Hancom</family>
<family>Code2000</family>
<family>Code2001</family>
<family>Code2002</family>
</prefer>
</alias>
<!-- Use Inconsolata LGC instead of Monaco -->
<alias binding="same">
<family>Monaco</family>
<prefer>
<family>Inconsolata LGC</family>
<family>MigMix 1M</family>
<family>DejaVu Sans</family>
<family>Source Han Sans</family>
<family>Sazanami-Hanazono Mincho</family>
<family>Hancom</family>
<family>Code2000</family>
<family>Code2001</family>
<family>Code2002</family>
</prefer>
</alias>
<!-- Use Inconsolata LGC instead of Monaco -->
<alias binding="same">
<family>Menlo</family>
<prefer>
<family>Ubuntu Mono</family>
<family>MigMix 1M</family>
<family>DejaVu Sans</family>
<family>Source Han Sans</family>
<family>Sazanami-Hanazono Mincho</family>
<family>Hancom</family>
<family>Code2000</family>
<family>Code2001</family>
<family>Code2002</family>
</prefer>
</alias>
<!-- Ubuntu Mono instead of Courier New -->
<alias binding="same">
<family>Courier New</family>
<prefer>
<family>Ubuntu Mono</family>
<family>MigMix 1M</family>
<family>DejaVu Sans</family>
<family>Source Han Sans</family>
<family>Sazanami-Hanazono Mincho</family>
<family>Hancom</family>
<family>Code2000</family>
<family>Code2001</family>
<family>Code2002</family>
</prefer>
</alias>
<!-- Ubuntu Mono instead of Lucida Console -->
<alias binding="same">
<family>Lucida Console</family>
<prefer>
<family>Ubuntu Mono</family>
<family>MigMix 1M</family>
<family>DejaVu Sans Mono</family>
<family>Source Han Sans</family>
<family>Sazanami-Hanazono Mincho</family>
<family>Hancom</family>
<family>Code2000</family>
<family>Code2001</family>
<family>Code2002</family>
</prefer>
</alias>
</match>
</fontconfig>
'';
security.sudo.extraConfig = ''
# Disable timeout.
Defaults env_reset,timestamp_timeout=0
'';
security.setuidPrograms = [ "xlaunch"
# "pmount" "pumount" "udevil"
];
# List services that you want to enable:
# PostgreSQL
services.postgresql = {
enable = true;
package = pkgs.postgresql95;
authentication = "local all all ident";
};
# Enable the OpenSSH daemon.
# services.openssh.enable = true;
services.cron.enable = false;
# services.udev = {
# extraRules = ''
# KERNEL=="rtc0", GROUP="audio"
# KERNEL=="hpet", GROUP="audio"
# '';
# };
services.udisks2.enable = true;
# services.devmon.enable = true;
services.kmscon.hwRender = true;
services.logind.extraConfig = ''
HandleLidSwitch=ignore
HandlePowerKey=hybrid-sleep
'';
# Enable CUPS to print documents.
# services.printing.enable = true;
# Xorg, WM, DM, DE
services.xserver = {
useGlamor = true;
enable = true;
enableTCP = false;
exportConfiguration = true;
layout = "us,ru";
xkbVariant = "dvp,winkeys";
xkbOptions = "grp:shift_toggle,grp_led:caps,ctrl:nocaps,altwin:meta_alt,altwin:super_win,altwin:hyper_win";
# autorun = false;
videoDrivers = [ "intel" ];
synaptics = {
enable = true;
accelFactor = "0.005";
vertEdgeScroll = false;
horizEdgeScroll = false;
tapButtons = false;
buttonsMap = [ 0 0 0 ];
fingersMap = [ 1 3 2 ];
twoFingerScroll = true;
palmDetect = true;
palmMinZ = 100;
palmMinWidth = 8;
additionalOptions = ''
Option "MaxTapTime" "0"
'';
};
config = ''
# /etc/X11/xorg.conf.d/50-thinkpad_trackpoint.conf
Section "InputClass"
Identifier "TrackPoint"
MatchProduct "TrackPoint"
MatchDriver "evdev"
# MatchDevicePath "event"
Option "EmulateWheel" "true"
Option "EmulateWheelButton" "2"
Option "EmulateWheelTimeOut" "200"
Option "XAxisMapping" "6 7"
Option "YAxisMapping" "4 5"
Option "ZAxisMapping" "4 5"
Option "AccelerationProfile" "2"
Option "AccelerationNumerator" "5"
Option "AccelerationDenominator" "3"
Option "AccelerationThreshold" "4"
Option "AdaptiveDeceleration" "2"
# Option "ConstantDeceleration" "2"
EndSection
# /etc/X11/xorg.conf.d/60-mouse-acceleration.conf
Section "InputClass"
Identifier "My Mouse"
MatchIsPointer "yes"
# set the following to 1 1 0 respectively to disable acceleration.
Option "AccelerationNumerator" "2"
Option "AccelerationDenominator" "1"
Option "AccelerationThreshold" "4"
EndSection
# Disable black screen
Section "Monitor"
Identifier "LVDS0"
Option "DPMS" "false"
EndSection
Section "ServerLayout"
Identifier "ServerLayout0"
Option "StandbyTime" "0"
Option "SuspendTime" "0"
Option "OffTime" "0"
Option "BlankTime" "0"
Option "OffTime" "0"
EndSection
'';
# deviceSection = ''
# # custom setup
# BusID "PCI:0:2:0"
# Option "DRI" "3"
# Option "AllowGLXWithComposite" "true"
# Option "TwinView" "true"
# Option "XvMC" "true"
# Option "XAANoOffscreenPixmaps" "true"
# Option "UseEvents" "true"
# Option "TearFree" "true"
# Option "Tiling" "true"
# Option "SwapBuffersWait" "true"
# Option "Backlight" "intel_backlight"
# '';
# inputClassSections = [
# ''
# Identifier "TrackPoint"
# MatchProduct "TrackPoint"
# MatchDriver "evdev"
# Option "EmulateWheel" "true"
# Option "EmulateWheelButton" "2"
# Option "EmulateWheelTimeOut" "200"
# Option "XAxisMapping" "6 7"
# Option "YAxisMapping" "4 5"
# Option "ZAxisMapping" "4 5"
# Option "AccelerationProfile" "2"
# Option "AccelerationNumerator" "5"
# Option "AccelerationDenominator" "3"
# Option "AccelerationThreshold" "4"
# Option "AdaptiveDeceleration" "2"
# ''
# ''
# Identifier "Mouse"
# MatchIsPointer "yes"
# # set the following to 1 1 0 respectively to disable acceleration.
# Option "AccelerationNumerator" "2"
# Option "AccelerationDenominator" "1"
# Option "AccelerationThreshold" "4"
# ''
# ];
# moduleSection = ''
# # custom setup
# Load "glx"
# Load "dbe"
# Load "extmod"
# Load "dri"
# '';
# monitorSection = ''
# # custom setup
# Option "DPMS" "false"
# Option "PreferredMode" "1920x1080"
# DisplaySize 309 173
# '';
# screenSection = ''
# DefaultDepth 24
# '';
# serverFlagsSection = ''
# # custom setup
# # Option "DefaultServerLayout" "Layout[all]"
# Option "AIGLX" "true"
# Option "VTSysReq" "True"
# Option "Xinerama" "true"
# Option "DRI2" "true"
# Option "GlxVisuals" "all"
# Option "StandbyTime" "0"
# Option "SuspendTime" "0"
# Option "OffTime" "0"
# Option "BlankTime" "0"
# '';
# serverLayoutSection = ''
# # custom setup
# # Option "AutoAddDevices" "false"
# Option "AutoAddDevices" "true"
# Option "AutoAddGPU" "false"
# Option "AIGLX" "true"
# Option "IsolateDevice" "PCI:0:2:0"
# '';
# config = ''
# Section "Extensions"
# Option "Composite" "Enable"
# EndSection
# '';
desktopManager = {
kde4.enable = false;
xterm.enable = false;
default = "none";
};
displayManager.slim = {
enable = true;
defaultUser = "netsu";
# autoLogin = true;
# hideCursor = true;
};
windowManager.xmonad = {
enable = true;
enableContribAndExtras = true;
};
};
# services.mingetty.autologinUser = "netsu";
services.gnome3.at-spi2-core.enable = true;
services.acpid.enable = true;
services.hdapsd.enable = true;
# services.fprintd.enable = true;
# services.thinkfan.enable = true;
# services.thinkfan.sensor = "/sys/class/hwmon/hwmon0/temp1_input";
powerManagement.enable = true;
# powerManagement.cpuFreqGovernor = "ondemand";
# powerManagement.cpuFreqGovernor = "performance";
hardware = {
opengl = {
extraPackages = with pkgs; [ vaapiIntel vaapiVdpau ];
driSupport32Bit = true;
s3tcSupport = true;
};
bumblebee.enable = true;
# bluetooth.enable = true;
trackpoint.sensitivity = 255;
# trackpoint.speed = 255;
# firmware = [ pkgs.linuxPackages_4_6.mt7601 ];
enableAllFirmware = true;
pulseaudio = {
enable = true;
support32Bit = true;
package = pkgs.pulseaudioFull;
};
};
# Docker
virtualisation.docker.enable = true;
# User account
users.extraUsers.netsu = {
isNormalUser = true;
name = "netsu";
description = "Yuriy Pitomets";
group = "users";
extraGroups = [ "wheel" "network" "disk" "audio" "video" "docker" ];
uid = 1000;
createHome = true;
home = "/home/netsu";
hashedPassword = "RXBFfJzQ59q6Q";
};
users.mutableUsers = false;
users.extraUsers.root = {
hashedPassword = null;
initialHashedPassword = null;
initialPassword = null;
password = null;
passwordFile = null;
};
services.openssh.permitRootLogin = "no";
# Make Zsh the default shell system-wide
users.defaultUserShell = "/run/current-system/sw/bin/zsh";
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment