diff --git a/nix/configuration.nix b/nix/configuration.nix index cfb1ce8..05d7798 100644 --- a/nix/configuration.nix +++ b/nix/configuration.nix @@ -18,10 +18,12 @@ ./modules/discord.nix ./modules/gtk.nix ./modules/hosts.nix - ./modules/picom.nix + #./modules/picom.nix ./modules/sound.nix ./modules/steam.nix ./modules/zsh.nix + ./fonts.nix + ]; # Use the systemd-boot EFI boot loader. @@ -111,7 +113,8 @@ environment.systemPackages = with pkgs; [ papirus-icon-theme pop-gtk-theme wget git vim neovim emacs alacritty xterm zsh tmux stow dunst - # haskellPackages.xmonad haskellPackages.xmobar haskellPackages.xmonad-contrib haskellPackages.xmonad-utils + # haskellPackages.xmonad haskellPackages.xmonad-contrib haskellPackages.xmonad-utils + haskellPackages.xmobar i3 surf dmenu st qutebrowser lightdm rofi nitrogen rofi-emoji mononoki fontmatrix @@ -124,7 +127,6 @@ killall audacity thefuck polkit etcher gsettings-qt appimage-run pamixer unzip qjackctl gnome3.nautilus bluez pkgconfig pavucontrol bpytop #nur.repos.reedrw.picom-next-ibhagwan - picom spotify obsidian discord ]; diff --git a/nix/flake.lock b/nix/flake.lock new file mode 100644 index 0000000..69a7052 --- /dev/null +++ b/nix/flake.lock @@ -0,0 +1,115 @@ +{ + "nodes": { + "emacs-overlay": { + "locked": { + "lastModified": 1622448019, + "narHash": "sha256-FngdKykveXHR0ZxHgRIccwBowwm6F/VKtwwilw3EE6w=", + "owner": "nix-community", + "repo": "emacs-overlay", + "rev": "226f1d5d6933d154be74d0c190babd24433ca442", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "emacs-overlay", + "type": "github" + } + }, + "home-manager": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1622312560, + "narHash": "sha256-xBWgiwnPaL/iZasPxw3BuvPAee/2jiToiZjKvKLs+PA=", + "owner": "rycee", + "repo": "home-manager", + "rev": "ab64dc32493996c24607eab2cae6663466ddfb8a", + "type": "github" + }, + "original": { + "owner": "rycee", + "ref": "release-21.05", + "repo": "home-manager", + "type": "github" + } + }, + "master": { + "locked": { + "lastModified": 1622448234, + "narHash": "sha256-QMfDneuVqjRHRKEFv2jAtFKdD/thptbvbkNbkYO6bcA=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "27165e70ad737782ec76c1d1885bee57caa6ae4d", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "master", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1622282707, + "narHash": "sha256-+GOrUDsdneUqrOm9d+9bHXjEVoVcU8tm14WGVzbt6gg=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "6933d068c5d2fcff398e802f7c4e271bbdab6705", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nur": { + "locked": { + "lastModified": 1622447676, + "narHash": "sha256-o58Fl8vmy8jG5T7ojGQ1Cg5zJCCKdHgn0DgPo0TgY/Y=", + "owner": "nix-community", + "repo": "NUR", + "rev": "6ae5440a6f830621670f86d3f9f42df7d6a0f2d0", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "NUR", + "type": "github" + } + }, + "root": { + "inputs": { + "emacs-overlay": "emacs-overlay", + "home-manager": "home-manager", + "master": "master", + "nixpkgs": "nixpkgs", + "nur": "nur", + "unstable": "unstable" + } + }, + "unstable": { + "locked": { + "lastModified": 1622282707, + "narHash": "sha256-+GOrUDsdneUqrOm9d+9bHXjEVoVcU8tm14WGVzbt6gg=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "6933d068c5d2fcff398e802f7c4e271bbdab6705", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/nix/flake.nix b/nix/flake.nix new file mode 100644 index 0000000..1f7d825 --- /dev/null +++ b/nix/flake.nix @@ -0,0 +1,83 @@ +{ + description = "Main configuration on top of nix flakes"; + inputs = { + home-manager = { + url = "github:rycee/home-manager/release-21.05"; + inputs = { + nixpkgs.follows = "nixpkgs"; + }; + }; + nur.url = "github:nix-community/NUR"; + emacs-overlay.url = "github:nix-community/emacs-overlay"; + + nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; + unstable.url = "github:nixos/nixpkgs/nixos-unstable"; + master.url = "github:nixos/nixpkgs/master"; + }; + + outputs = inputs@{ self, home-manager, nur, nixpkgs, ... }: + let + inherit (builtins) listToAttrs attrValues attrNames readDir; + inherit (nixpkgs) lib; + inherit (lib) removeSuffix; + pkgs = (import nixpkgs) { + system = "x86_64-linux"; + config = { + allowUnfree = true; + }; + overlays = attrValues self.overlays; + }; + + in + { + overlays = + let + overlayFiles = listToAttrs (map + (name: { + name = removeSuffix ".nix" name; + value = import (./overlays + "/${name}"); + }) + (attrNames (readDir ./overlays))); + in + overlayFiles // { + nur = final: prev: { + nur = import inputs.nur { nurpkgs = final.unstable; pkgs = final.unstable; }; + }; + emacs-overlay = inputs.emacs-overlay.overlay; + unstable = final: prev: { + unstable = import inputs.unstable { + system = final.system; + config = { + allowUnfree = true; + }; + }; + }; + master = final: prev: { + master = import inputs.master { + system = final.system; + config = { + allowUnfree = true; + }; + }; + }; + }; + nixosConfigurations.lap = nixpkgs.lib.nixosSystem { + system = "x86_64-linux"; + modules = [ + ./configuration.nix + ./hardware-configuration.nix + home-manager.nixosModules.home-manager + ({ + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.users.horhik = { + imports = [ + ./modules/picom.nix + ]; + }; + }) + ]; + inherit pkgs; + }; + }; +} diff --git a/nix/install b/nix/install new file mode 100644 index 0000000..48883c4 --- /dev/null +++ b/nix/install @@ -0,0 +1,5 @@ +#!/bin/sh + +nix-channel --add https://github.com/nix-community/home-manager/archive/release-20.09.tar.gz home-manager +nix-channel --update + diff --git a/nix/modules/#picom.nix# b/nix/modules/#picom.nix# new file mode 100644 index 0000000..e8945b3 --- /dev/null +++ b/nix/modules/#picom.nix# @@ -0,0 +1,23 @@ +{config, pkgs, ...}: +{ + services.picom = { + # package = pkgs.nur.repos.reedrw.picom-next-ibhagwan; + enable = true; + #detect-rounded-corners = true; + backend = "glx"; + shadow = true; + vSync = true; + activeOpacity = 1.0; + inactiveOpacity = 0.75 ; + experimentalBackends = true; + settings = { + blur = { + method = "kawase"; + size = 50; + deviation = 7.0; + }; + }; + }; + + +} diff --git a/nix/modules/.#picom.nix b/nix/modules/.#picom.nix new file mode 120000 index 0000000..f49ba16 --- /dev/null +++ b/nix/modules/.#picom.nix @@ -0,0 +1 @@ +horhik@lap.122842:1622363905 \ No newline at end of file diff --git a/nix/modules/discord.nix b/nix/modules/discord.nix index 7083451..60b76b9 100644 --- a/nix/modules/discord.nix +++ b/nix/modules/discord.nix @@ -1,4 +1,4 @@ {config, pkgs, ...}: { - nixpkgs.overlays = [(self: super: { discord = super.discord.overrideAttrs (_: { src = builtins.fetchTarball "https://discord.com/api/download/stable?platform=linux&format=tar.gz"; });})]; + # nixpkgs.overlays = [(self: super: { discord = super.discord.overrideAttrs (_: { src = builtins.fetchTarball "https://discord.com/api/download/stable?platform=linux&format=tar.gz"; });})]; } diff --git a/nix/modules/picom.nix b/nix/modules/picom.nix index e8945b3..6890b09 100644 --- a/nix/modules/picom.nix +++ b/nix/modules/picom.nix @@ -1,18 +1,65 @@ +# This file is generated from "README.org" +{ pkgs, ... }: +{ + services.picom.enable = true; + services.picom.package = pkgs.nur.repos.reedrw.picom-next-ibhagwan; + services.picom.shadow = true; + services.picom.vSync = true; + services.picom.inactiveOpacity = "0.8"; + services.picom.inactiveDim = "0.7"; + services.picom.backend = "glx"; + services.picom.experimentalBackends = true; + services.picom.opacityRule = [ + "80:class_g = 'Zathura'" + "80:class_g = 'TelegramDesktop'" + "80:class_g = 'Discord'" + "80:class_g = 'Emacs'" + "100:class_g = 'keynav'" + "85:class_g = 'Alacritty'" + ]; + services.picom.extraOptions = '' + #inactive-dim = 0.5; + #active-opacity = 1.0; + detect-client-opacity = true; + detect-rounded-corners = true; + blur: + { + method = "kawase"; + strength = 8; + background = false; + background-frame = false; + background-fixed = false; + }; + blur-background-exclude = [ + "class_g = 'keynav'" + ]; + corner-radius = 0; + rounded-corners-exclude = [ + "window_type = 'dock'", + "_NET_WM_STATE@:32a *= '_NET_WM_STATE_FULLSCREEN'", + "class_g = 'keynav'", + ]; + round-borders = 0; + round-borders-exclude = [ + "class_g = 'keynav'" + ]; + ''; +} + +/* {config, pkgs, ...}: { services.picom = { - # package = pkgs.nur.repos.reedrw.picom-next-ibhagwan; + package = pkgs.nur.repos.reedrw.picom-next-ibhagwan; enable = true; #detect-rounded-corners = true; backend = "glx"; - shadow = true; - vSync = true; activeOpacity = 1.0; inactiveOpacity = 0.75 ; experimentalBackends = true; settings = { blur = { - method = "kawase"; + method = "gaussian"; size = 50; deviation = 7.0; }; @@ -21,3 +68,4 @@ } +*/ diff --git a/nix/overlays/neofetch.nix b/nix/overlays/neofetch.nix new file mode 100644 index 0000000..5f6d4ab --- /dev/null +++ b/nix/overlays/neofetch.nix @@ -0,0 +1,13 @@ +# This file is generated from "README.org" +final: prev: +{ + neofetch = prev.neofetch.overrideAttrs (old: rec { + version = "unstable-2020-11-02"; + src = prev.fetchFromGitHub { + owner = "dylanaraps"; + repo = "neofetch"; + rev = "5dfce0f9c3068d4d8a49d0b7182bdace61b8f4d0"; + sha256 = "131r07wllkvrcgw0ndyf5avqpzqkym56ii0qck6qyjfa8ylx6s31"; + }; + }); +} diff --git a/nix/overlays/overrides.nix b/nix/overlays/overrides.nix new file mode 100644 index 0000000..d7dc97f --- /dev/null +++ b/nix/overlays/overrides.nix @@ -0,0 +1,9 @@ +# This file is generated from "README.org" +final: prev: +{ + inherit (final.unstable) lua; + inherit (final.unstable) fish; + inherit (final.master) youtube-dl; + inherit (final.master) mpv; + inherit (final.unstable) fzf; +} diff --git a/nix/overlays/packages.nix b/nix/overlays/packages.nix new file mode 100644 index 0000000..8090c43 --- /dev/null +++ b/nix/overlays/packages.nix @@ -0,0 +1,7 @@ +# This file is generated from "README.org" +final: prev: rec { + apple-color-emoji = prev.callPackage ../packages/apple-color-emoji { }; + tamzen-nerdfont = prev.callPackage ../packages/tamzen-nerdfont { }; + palenight-gtk-theme = prev.callPackage ../packages/palenight-gtk-theme { }; + vifmimg = prev.callPackage ../packages/vifmimg { }; +} diff --git a/nix/packages/apple-color-emoji/default.nix b/nix/packages/apple-color-emoji/default.nix new file mode 100644 index 0000000..3f93b66 --- /dev/null +++ b/nix/packages/apple-color-emoji/default.nix @@ -0,0 +1,35 @@ +{ stdenv, fetchurl }: + +stdenv.mkDerivation rec { + name = "apple-color-emoji-${version}"; + version = "2020-06-30"; + + src = fetchurl { + url = https://github.com/samuelngs/apple-emoji-linux/releases/download/latest/AppleColorEmoji.ttf; + sha256 = "0xaclj29b7xgqin8izkabrm2znp1m01894fngyxrhwbf9nbncp4g"; + }; + + phases = [ "unpackPhase" "installPhase" ]; + + sourceRoot = "./"; + + unpackCmd = '' + cp $curSrc ./AppleColorEmoji.ttf + ''; + + installPhase = '' + mkdir -p $out/share/fonts/apple-color-emoji + cp *.ttf $out/share/fonts/apple-color-emoji + ''; + + meta = { + description = "Apple Color Emoji is a color typeface used by iOS and macOS to display emoji"; + homepage = https://github.com/samuelngs/apple-emoji-linux; + license = stdenv.lib.licenses.asl20; + platforms = stdenv.lib.platforms.all; + maintainers = [ ]; + }; + +} + +# vim: foldmethod=marker shiftwidth=4 ft=nix: diff --git a/nix/packages/palenight-gtk-theme/default.nix b/nix/packages/palenight-gtk-theme/default.nix new file mode 100644 index 0000000..fa9526f --- /dev/null +++ b/nix/packages/palenight-gtk-theme/default.nix @@ -0,0 +1,30 @@ +{ stdenv, fetchFromGitHub, sassc, inkscape, optipng, ... }: + +stdenv.mkDerivation rec { + version = "0.2.0"; + pname = "palenight-gtk-theme"; + + src = fetchFromGitHub { + owner = "jaxwilko"; + repo = "gtk-theme-framework"; + rev = "b695bf4cf153691e485c09c1c744c46b6f025a74"; + sha256 = "0bfhv7ywgmw2s6kfxb7wgpri7gh6yd89gaazj1dxgz690b7mliv7"; + }; + + nativeBuildInputs = [ sassc inkscape optipng ]; + + postPatch = '' + patchShebangs . + ''; + + buildPhase = '' + ./main.sh -vcf + ''; + + installPhase = '' + mkdir -p $out/share/themes + mv ./dist/palenight/theme ./dist/palenight/palenight + cp -r ./dist/palenight/palenight $out/share/themes + ''; + +} diff --git a/nix/packages/spleen-otf/default.nix b/nix/packages/spleen-otf/default.nix new file mode 100644 index 0000000..f6e2025 --- /dev/null +++ b/nix/packages/spleen-otf/default.nix @@ -0,0 +1,29 @@ +# This file is generated from "README.org" +{ stdenv, lib, fetchurl, mkfontscale }: + +let + pname = "spleen-otf"; + version = "1.8.2"; +in +stdenv.mkDerivation rec { + name = "${pname}-${version}"; + src = fetchurl { + url = "https://github.com/fcambus/spleen/releases/download/${version}/spleen-${version}.tar.gz"; + sha256 = "1pvg34xzi2cqgwpcl56j55rlwz44qasv3fa1jln2b1il8272s9hn"; + }; + phases = [ "unpackPhase" "installPhase" ]; + sourceRoot = "./"; + unpackCmd = '' + tar xvf $curSrc --strip=1 + ''; + installPhase = '' + d="$out/share/fonts/misc" + install -D -m 644 *.otf -t "$d" + install -D -m 644 *.psfu -t "$out/share/consolefonts" + install -m644 fonts.alias-spleen $d/fonts.alias + + # create fonts.dir so NixOS xorg module adds to fp + ${mkfontscale}/bin/mkfontdir "$d" + ''; + +} diff --git a/nix/packages/tamzen-nerdfont/default.nix b/nix/packages/tamzen-nerdfont/default.nix new file mode 100644 index 0000000..c277c06 --- /dev/null +++ b/nix/packages/tamzen-nerdfont/default.nix @@ -0,0 +1,43 @@ +{ fetchFromGitHub, stdenv, fetchurl, size ? [ ] }: + +# select size from +# 10x20 5x9 6x12 7x13 7x14 8x15 8x16 +let + knownSize = "7x14"; + selectedSize = + if (size == [ ]) then + knownSize + else + size + ; + +in +stdenv.mkDerivation rec { + name = "tamzen-nerdfont-${version}"; + version = "1.11"; + + src = fetchFromGitHub { + "owner" = "btwiusegentoo"; + "repo" = "tamzen-nerdfont"; + "rev" = "5ccaef6ad5187818c883648a19841b1ea34a418d"; + "sha256" = "0ay1gk9ql51xkl2gq302lv9sbz4djqmw1zg7anm04hvszga8dmh5"; + }; + + phases = [ "installPhase" ]; + + sourceRoot = "./"; + + installPhase = '' + mkdir -p $out/share/fonts/tamzen-nerdfont + cp ${src}/patchedtamzen/Tamzen${selectedSize}r.ttf $out/share/fonts/tamzen-nerdfont + cp ${src}/patchedtamzen/Tamzen${selectedSize}b.ttf $out/share/fonts/tamzen-nerdfont + ''; + + meta = { + description = ":love_letter: Bitmapped programming font, based on Tamsyn"; + homepage = https://github.com/btwiusegentoo/tamzen-nerdfont; + maintainers = [ ]; + }; + +} +# vim: foldmethod=marker shiftwidth=4 ft=nix: diff --git a/nix/packages/vifmimg/default.nix b/nix/packages/vifmimg/default.nix new file mode 100644 index 0000000..a9005a6 --- /dev/null +++ b/nix/packages/vifmimg/default.nix @@ -0,0 +1,18 @@ +{ stdenv, fetchFromGitHub, ... }: + +stdenv.mkDerivation rec { + version = "unstable-2020-06-23"; + pname = "vifmimg"; + + src = fetchFromGitHub { + owner = "cirala"; + repo = "vifmimg"; + rev = "afe4f159e1acc9a54dd3a2dc28850f11f97c1ebf"; + sha256 = "11pbfayww7pwyk8a7jgvijx9i96ahyvn5y84gpn0yjd0b9wf75bn"; + }; + + installPhase = '' + mkdir -p $out/bin + cp vifm* $out/bin + ''; +}