Compare commits

..

No commits in common. "b8e4f0929ac96e1db06ae86f31dcb4308abc0def" and "0335b240b60eb45448a4aac2fa50488aeae99904" have entirely different histories.

15 changed files with 175 additions and 218 deletions

View File

@ -36,23 +36,22 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v3 uses: actions/checkout@v2.3.4
- name: Install nix - name: Install nix
uses: cachix/install-nix-action@v18 uses: cachix/install-nix-action@v14
with: with:
nix_path: "${{ matrix.nixPath }}" nix_path: "${{ matrix.nixPath }}"
extra_nix_config: |
experimental-features = nix-command flakes
- name: Show nixpkgs version - name: Show nixpkgs version
run: nix-instantiate --eval -E '(import <nixpkgs> {}).lib.version' run: nix-instantiate --eval -E '(import <nixpkgs> {}).lib.version'
- name: Setup cachix - name: Setup cachix
uses: cachix/cachix-action@v11 uses: cachix/cachix-action@v10
if: ${{ matrix.cachixName != '<YOUR_CACHIX_NAME>' }} if: ${{ matrix.cachixName != '<YOUR_CACHIX_NAME>' }}
with: with:
name: ${{ matrix.cachixName }} name: ${{ matrix.cachixName }}
signingKey: '${{ secrets.CACHIX_SIGNING_KEY }}' signingKey: '${{ secrets.CACHIX_SIGNING_KEY }}'
- name: Build nix packages - name: Build nix packages
run: nix shell -f '<nixpkgs>' nix-build-uncached -c nix-build-uncached ci.nix -A cacheOutputs # TODO switch to default nixpkgs channel once nix-build-uncached 1.0.0 is in stable
run: nix run -I 'nixpkgs=channel:nixos-unstable' nixpkgs.nix-build-uncached -c nix-build-uncached ci.nix -A cacheOutputs
- name: Trigger NUR update - name: Trigger NUR update
if: ${{ matrix.nurRepo != '<YOUR_REPO_NAME>' }} if: ${{ matrix.nurRepo != '<YOUR_REPO_NAME>' }}
run: curl -XPOST "https://nur-update.herokuapp.com/update?repo=${{ matrix.nurRepo }}" run: curl -XPOST "https://nur-update.herokuapp.com/update?repo=${{ matrix.nurRepo }}"

22
flake.lock generated
View File

@ -1,12 +1,27 @@
{ {
"nodes": { "nodes": {
"flake-utils": {
"locked": {
"lastModified": 1614513358,
"narHash": "sha256-LakhOx3S1dRjnh0b5Dg3mbZyH0ToC9I8Y2wKSkBaTzU=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "5466c5bbece17adaab2d82fae80b46e807611bf3",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1650194139, "lastModified": 1616259034,
"narHash": "sha256-kurZsqeOw5fpqA/Ig+8tHvbjwzs5P9AE6WUKOX1m6qM=", "narHash": "sha256-WlMIiGIXJm7J+jemzd+ksoun6znWmabCZNz76szV158=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "bd4dffcdb7c577d74745bd1eff6230172bd176d5", "rev": "4e0d3868c679da20108db402785f924daa1a7fb5",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -18,6 +33,7 @@
}, },
"root": { "root": {
"inputs": { "inputs": {
"flake-utils": "flake-utils",
"nixpkgs": "nixpkgs" "nixpkgs": "nixpkgs"
} }
} }

View File

@ -1,31 +1,18 @@
{ {
description = "xeals's Nix repository"; description = "xeals's flake";
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
flake-utils.url = "github:numtide/flake-utils";
};
outputs = { self, nixpkgs }: outputs = { self, nixpkgs, flake-utils }:
let let
inherit (flake-utils.lib) eachDefaultSystem flattenTree;
inherit (nixpkgs) lib; inherit (nixpkgs.lib.attrsets) filterAttrs mapAttrs;
supportedSystems = [
"aarch64-darwin"
"aarch64-linux"
"i686-linux"
"x86_64-darwin"
"x86_64-linux"
];
forAllSystems = f: lib.genAttrs supportedSystems (system: f system);
in in
{ {
nixosModules = mapAttrs (_: path: import path) (import ./modules);
nixosModules = lib.mapAttrs (_: path: import path) (import ./modules);
nixosModule = {
imports = lib.attrValues self.nixosModules;
};
overlays = import ./overlays // { overlays = import ./overlays // {
pkgs = final: prev: import ./pkgs/top-level/all-packages.nix { pkgs = prev; }; pkgs = final: prev: import ./pkgs/top-level/all-packages.nix { pkgs = prev; };
@ -34,30 +21,27 @@
overlay = final: prev: { overlay = final: prev: {
xeals = nixpkgs.lib.composeExtensions self.overlays.pkgs; xeals = nixpkgs.lib.composeExtensions self.overlays.pkgs;
}; };
} // eachDefaultSystem (system:
packages = forAllSystems (system:
let let
pkgs = nixpkgs.legacyPackages.${system}; pkgs = nixpkgs.legacyPackages.${system};
xPkgs = import ./pkgs/top-level/all-packages.nix { inherit pkgs; }; xPkgs = import ./pkgs/top-level/all-packages.nix { inherit pkgs; };
in
lib.filterAttrs
(attr: drv: builtins.elem system (drv.meta.platforms or [ ]))
xPkgs);
apps = forAllSystems (system:
let
mkApp = opts: { type = "app"; } // opts; mkApp = opts: { type = "app"; } // opts;
pkgs = self.packages.${system};
in in
{ rec {
alacritty = mkApp { program = "${pkgs.alacritty-ligatures}/bin/alacritty"; }; packages = filterAttrs
protonmail-bridge = mkApp { program = "${pkgs.protonmail-bridge}/bin/protonmail-bridge"; }; (attr: drv: builtins.elem system (drv.meta.platforms or [ ]))
protonmail-bridge-headless = mkApp { program = "${pkgs.protonmail-bridge}/bin/protonmail-bridge"; }; (flattenTree xPkgs);
psst-cli = mkApp { program = "${pkgs.psst}/bin/psst-cli"; };
psst-gui = mkApp { program = "${pkgs.psst}/bin/psst-gui"; };
samrewritten = mkApp { program = "${pkgs.samrewritten}/bin/samrewritten"; };
spotify-ripper = mkApp { program = "${pkgs.spotify-ripper}/bin/spotify-ripper"; };
});
apps = flattenTree {
alacritty = mkApp { program = "${packages.alacritty-ligatures}/bin/alacritty"; };
protonmail-bridge = mkApp { program = "${packages.protonmail-bridge}/bin/protonmail-bridge"; };
protonmail-bridge-headless = mkApp { program = "${packages.protonmail-bridge}/bin/protonmail-bridge"; };
psst = {
cli = mkApp { program = "${packages.psst}/bin/psst-cli"; };
gui = mkApp { program = "${packages.psst}/bin/psst-gui"; };
}; };
samrewritten = mkApp { program = "${packages.samrewritten}/bin/samrewritten"; };
spotify-ripper = mkApp { program = "${packages.spotify-ripper}/bin/spotify-ripper"; };
};
});
} }

View File

@ -2,7 +2,6 @@
amdgpu-common = ./services/hardware/amdgpu-common.nix; amdgpu-common = ./services/hardware/amdgpu-common.nix;
amdgpu-fan = ./services/hardware/amdgpu-fan.nix; amdgpu-fan = ./services/hardware/amdgpu-fan.nix;
amdgpu-pwm = ./services/hardware/amdgpu-pwm.nix; amdgpu-pwm = ./services/hardware/amdgpu-pwm.nix;
dunst = ./services/x11/dunst.nix;
radeon-profile-daemon = ./services/hardware/radeon-profile-daemon.nix; radeon-profile-daemon = ./services/hardware/radeon-profile-daemon.nix;
} }

View File

@ -7,7 +7,7 @@ with lib;
cards = mkOption { cards = mkOption {
type = types.listOf types.str; type = types.listOf types.str;
default = [ "card0" ]; default = [ "card0" ];
example = [ "card0" "card1" ]; example = literalExample ''[ "card0" ]'';
description = '' description = ''
A list of cards to enable fan configuration for. The identifiers for A list of cards to enable fan configuration for. The identifiers for
each device can be found in /sys/class/drm/ as card0, card1, etc. each device can be found in /sys/class/drm/ as card0, card1, etc.

View File

@ -33,12 +33,14 @@ in
[ 75 89 ] [ 75 89 ]
[ 80 100 ] [ 80 100 ]
]; ];
example = [ example = literalExample ''
[
[ 0 0 ] [ 0 0 ]
[ 40 30 ] [ 40 30 ]
[ 60 50 ] [ 60 50 ]
[ 80 100 ] [ 80 100 ]
]; ]
'';
description = '' description = ''
A list of temperature-fan speed pairs. The temperature is specified in A list of temperature-fan speed pairs. The temperature is specified in
degrees celcius, and speed is specified in %. degrees celcius, and speed is specified in %.

View File

@ -1,68 +0,0 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.dunst;
in
{
options.services.dunst = {
enable = mkEnableOption "dunst";
package = mkOption {
type = types.package;
default = pkgs.dunst;
};
settings = mkOption {
type = types.nullOr types.attrs;
default = null;
description = ''
Configuration set alternative to <literal>configFile</literal>.
'';
example = {
global = {
monitor = 0;
follow = "none";
};
};
};
configFile = mkOption {
type = types.nullOr types.path;
default = null;
description = "Path to dunstrc configuration file.";
};
};
config = mkIf cfg.enable {
assertions = [
{
assertion = !(cfg.settings != null && cfg.configFile != null);
message = "only one of services.dunst.settings or .configFile may be specified";
}
];
environment.systemPackages = [ (getOutput "man" cfg.package) ];
systemd.user.services.dunst = {
description = "Dunst notification daemon";
documentation = [ "man:dunst(1)" ];
after = [ "graphical-session-pre.target" ];
partOf = [ "graphical-session.target" ];
serviceConfig = {
Type = "dbus";
BusName = "org.freedesktop.Notifications";
ExecStart =
let
config =
if (cfg.settings != null)
then pkgs.writeText "dunstrc" (generators.toINI { } cfg.settings)
else if (cfg.configFile != null)
then cfg.configFile
else null;
in
"${cfg.package}/bin/dunst ${optionalString (config != null) "-conf ${config}"}";
};
};
};
}

View File

@ -5,8 +5,6 @@
, cmake , cmake
, pkg-config , pkg-config
, alsaLib
, dbus
, openssl , openssl
# GUI # GUI
@ -24,20 +22,20 @@ assert withGui -> gtk3.meta.available;
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "psst"; pname = "psst";
version = "20221012.d70ed81"; version = "20210122.gec114ac";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "jpochyla"; owner = "jpochyla";
repo = "psst"; repo = "psst";
rev = "d70ed8104533dc15bc36b989ba8428872c9b578f"; rev = "ec114ac8299179c8dd51bc026d6060dc75658b83";
hash = "sha256-ZKhHN0ruLb6ZVKkrKv/YawRsVop6SP1QF/nrtkmA8P8="; sha256 = "02mh6hjnlimadc3w899hccss31p1r4sxgb5880zwn7yiycbq3yyj";
fetchSubmodules = true; fetchSubmodules = true;
}; };
cargoSha256 = "sha256-zH6+EV78FDVOYEFXk0f54pH2Su0QpK1I0bHqzIiMdBo="; cargoSha256 = "1m01rycnpy9asspih1x9l5ppfbjnqcfdycmzgkrmdwzah3x8s8xc";
nativeBuildInputs = [ pkg-config ] nativeBuildInputs = [ pkg-config ]
++ optional withGui copyDesktopItems; ++ optional withGui copyDesktopItems;
buildInputs = [ alsaLib dbus openssl ] buildInputs = [ openssl ]
++ optional withGui gtk3; ++ optional withGui gtk3;
cargoBuildFlags = optionals (!withGui) [ cargoBuildFlags = optionals (!withGui) [
@ -57,10 +55,10 @@ rustPlatform.buildRustPackage rec {
name = pname; name = pname;
desktopName = "psst"; desktopName = "psst";
genericName = "Spotify Player"; genericName = "Spotify Player";
categories = [ "AudioVideo" "Audio" "Network" "Player" ]; categories = "AudioVideo;Audio;Network;Player;";
comment = "Spotify client with native GUI"; comment = "Spotify client with native GUI";
exec = "psst-gui"; exec = "psst-gui";
keywords = [ "spotify" "music" ]; extraEntries = "Keywords=spotify;music;";
icon = "spotify"; icon = "spotify";
type = "Application"; type = "Application";
}) })

View File

@ -2,10 +2,12 @@ diff --git a/include/components/types.hpp b/include/components/types.hpp
index 8125d4b..c435f4a 100644 index 8125d4b..c435f4a 100644
--- a/include/components/types.hpp --- a/include/components/types.hpp
+++ b/include/components/types.hpp +++ b/include/components/types.hpp
@@ -43,5 +43,6 @@ enum class controltag { @@ -57,7 +57,7 @@ enum class controltag {
DOUBLE_MIDDLE, R, // Reset all open tags (B, F, T, o, u). Used at module edges
DOUBLE_RIGHT,
+ EXTRA,
// Terminator value, do not use
BTN_COUNT,
}; };
-enum class mousebtn { NONE = 0, LEFT, MIDDLE, RIGHT, SCROLL_UP, SCROLL_DOWN, DOUBLE_LEFT, DOUBLE_MIDDLE, DOUBLE_RIGHT };
+enum class mousebtn { NONE = 0, LEFT, MIDDLE, RIGHT, SCROLL_UP, SCROLL_DOWN, DOUBLE_LEFT, DOUBLE_MIDDLE, DOUBLE_RIGHT, EXTRA };
enum class strut {
LEFT = 0,

View File

@ -12,7 +12,7 @@
buildGoModule (lib.recursiveUpdate args rec { buildGoModule (lib.recursiveUpdate args rec {
inherit pname; inherit pname;
version = "1.8.10"; version = "1.5.6";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "ProtonMail"; owner = "ProtonMail";
@ -31,12 +31,18 @@ buildGoModule (lib.recursiveUpdate args rec {
libsecret libsecret
]; ];
inherit tags; buildFlagsArray =
let
ldflags = [ t = "github.com/ProtonMail/proton-bridge/pkg/constants";
"-X github.com/ProtonMail/proton-bridge/pkg/constants.Version=${version}" in
"-X github.com/ProtonMail/proton-bridge/pkg/constants.Revision=${version}" [
"-X github.com/ProtonMail/proton-bridge/pkg/constants.BuildDate=unknown" "-tags=${tags}"
''
-ldflags=
-X ${t}.Version=${version}
-X ${t}.Revision=unknown
-X ${t}.BuildDate=unknown
''
]; ];
meta = with lib; { meta = with lib; {

View File

@ -1,17 +1,30 @@
{}: {}:
{ rec {
pname = "protonmail-bridge-headless"; pname = "protonmail-bridge-headless";
tags = [ "pmapi_prod" "nogui" ]; tags = "pmapi_prod nogui";
# REVIEW: Some issue with IMAP tests that probably fail due to network # FIXME: There's something fucky going on in the buildFlagsArray
# sandboxing. # substitution. I shouldn't need to do this.
doCheck = false; buildPhase =
let
t = "github.com/ProtonMail/proton-bridge/pkg/constants";
in
''
runHook preBuild
go install \
-tags="${tags}" \
-ldflags="-X ${t}.Version=1.3.2 -X ${t}.Revision=unknown -X ${t}.BuildDate=unknown" \
cmd/Desktop-Bridge/main.go
mv $GOPATH/bin/main $GOPATH/bin/Desktop-Bridge
runHook postBuild
'';
# Fix up name. # Fix up name.
postInstall = '' postInstall = ''
mv $out/bin/Desktop-Bridge $out/bin/protonmail-bridge mv $out/bin/Desktop-Bridge $out/bin/protonmail-bridge
mv $out/bin/Import-Export $out/bin/protonmail-import-export
''; '';
} }

View File

@ -1,42 +0,0 @@
{ stdenv
, lib
, fetchurl
, makeWrapper
, jre
, udev
}:
stdenv.mkDerivation rec {
pname = "atlauncher";
version = "3.4.20.2";
src = fetchurl {
url = "https://github.com/ATLauncher/ATLauncher/releases/download/v${version}/ATLauncher-${version}.jar";
hash = "sha256-YnCDs67BVhJ5rwY6jTbfgHKPbavtmcIMd16AWMBUDgk=";
};
dontUnpack = true;
nativeBuildInputs = [ makeWrapper ];
installPhase = ''
mkdir -p $out/bin $out/share/java
cp $src $out/share/java/ATLauncher.jar
makeWrapper ${jre}/bin/java $out/bin/atlauncher \
--prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ udev ]}" \
--add-flags "-jar $out/share/java/ATLauncher.jar" \
--add-flags "--working-dir \''${XDG_DATA_HOME:-\$HOME/.local/share}/ATLauncher"
'';
meta = with lib; {
description = "Minecraft launcher";
longDescription = ''
ATLauncher is a Launcher for Minecraft which integrates multiple different
ModPacks to allow you to download and install ModPacks easily and quickly.
'';
sourceProvenance = with sourceTypes; [ binaryBytecode ];
license = licenses.gpl3Only;
platforms = platforms.all;
homepage = "https://atlauncher.com/";
};
}

View File

@ -2,8 +2,7 @@
, lib , lib
, fetchFromGitHub , fetchFromGitHub
, python3Packages , python2Packages
, lame
, aacSupport ? false, faac , aacSupport ? false, faac
, alacSupport ? false, libav , alacSupport ? false, libav
@ -20,27 +19,25 @@ assert m4aSupport || mp4Support -> fdk-aac-encoder.meta.available;
assert oggSupport -> vorbisTools.meta.available; assert oggSupport -> vorbisTools.meta.available;
assert opusSupport -> opusTools.meta.available; assert opusSupport -> opusTools.meta.available;
python3Packages.buildPythonApplication rec { python2Packages.buildPythonApplication rec {
pname = "spotify-ripper"; pname = "spotify-ripper";
version = "20210724.5bfd3f7"; version = "20161231.gd046419";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "ast261"; owner = "hbashton";
repo = pname; repo = pname;
rev = "5bfd3f7a52f2767b433fd315145409837a3c33f0"; rev = "d0464193dead7bd3ac7580e98bde86a0f323acae";
sha256 = "sha256-LLunGzs9Mg4S00Su260b+M5w/XwS+kICl/YXQdR/cPI="; sha256 = "003d6br20f1cf4qvmpl62bk0k4h4v66ib76wn36c23bnh9x5q806";
}; };
propagatedBuildInputs = (with python3Packages; [ propagatedBuildInputs = (with python2Packages; [
colorama colorama
mutagen mutagen
pyspotify pyspotify
requests requests
schedule schedule
setuptools setuptools
spotipy
]) ++ [ ]) ++ [
lame
(if flacSupport then flac else null) (if flacSupport then flac else null)
(if alacSupport then libav else null) (if alacSupport then libav else null)
(if aacSupport then faac else null) (if aacSupport then faac else null)

View File

@ -2,7 +2,7 @@ diff --git a/setup.py b/setup.py
index a800b3b..8967921 100755 index a800b3b..8967921 100755
--- a/setup.py --- a/setup.py
+++ b/setup.py +++ b/setup.py
@@ -33,14 +33,13 @@ setup( @@ -22,14 +22,13 @@ setup(
name='spotify-ripper', name='spotify-ripper',
version='2.9.1', version='2.9.1',
packages=find_packages(exclude=["tests"]), packages=find_packages(exclude=["tests"]),
@ -18,7 +18,11 @@ index a800b3b..8967921 100755
], ],
}, },
@@ -121,3 +121,2 @@ setup( @@ -67,7 +66,5 @@ setup(
return True 'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.4',
],
- long_description=_read('README.rst'),
)
-create_default_dir() -create_default_dir()

View File

@ -4,8 +4,6 @@ rec {
# Alacritty with the unmerged ligature patches applied. # Alacritty with the unmerged ligature patches applied.
alacritty-ligatures = pkgs.callPackage ../applications/terminal-emulators/alacritty-ligatures { }; alacritty-ligatures = pkgs.callPackage ../applications/terminal-emulators/alacritty-ligatures { };
atlauncher = pkgs.callPackage ../games/atlauncher { };
amdgpu-fan = pkgs.callPackage ../tools/misc/amdgpu-fan { }; amdgpu-fan = pkgs.callPackage ../tools/misc/amdgpu-fan { };
cardboard = pkgs.callPackage ../applications/window-managers/cardboard { }; cardboard = pkgs.callPackage ../applications/window-managers/cardboard { };
@ -60,6 +58,50 @@ rec {
psst = pkgs.callPackage ../applications/audio/psst { }; psst = pkgs.callPackage ../applications/audio/psst { };
python2Packages =
let
fixVersion =
{ package
, version
, sha256
, extra ? (oldAttrs: { })
}: package.overrideAttrs (oldAttrs: rec {
inherit version;
src = pkgs.python2Packages.fetchPypi {
inherit (oldAttrs) pname;
inherit version sha256;
};
} // extra oldAttrs);
in
pkgs.recurseIntoAttrs rec {
colorama_0_3_3 = fixVersion {
package = pkgs.python2Packages.colorama;
version = "0.3.3";
sha256 = "1716z9pq1r5ys3nkg7wdrb3h2f9rmd0zdxpxzmx3bgwgf6xg48gb";
};
mutagen_1_30 = fixVersion {
package = pkgs.python2Packages.mutagen;
version = "1.30";
sha256 = "0kv2gjnzbj1w0bswmxm7wi05x6ypi7jk52s0lb8gw8s459j41gyd";
extra = oldAttrs: {
patches = [ ];
};
};
pyspotify_2_0_5 = fixVersion {
package = pkgs.python2Packages.pyspotify;
version = "2.0.5";
sha256 = "0y16c024rrvbvfdqj1n0k4b25b1nbza3i7kspg5b0ci2src1rm7v";
};
overlay = {
colorama = colorama_0_3_3;
mutagen = mutagen_1_30;
pyspotify = pyspotify_2_0_5;
};
};
python3Packages = pkgs.recurseIntoAttrs { python3Packages = pkgs.recurseIntoAttrs {
py-sonic = pkgs.python3.pkgs.callPackage ../development/python-modules/py-sonic { }; py-sonic = pkgs.python3.pkgs.callPackage ../development/python-modules/py-sonic { };
}; };
@ -76,7 +118,12 @@ rec {
samrewritten = pkgs.callPackage ../tools/misc/samrewritten { }; samrewritten = pkgs.callPackage ../tools/misc/samrewritten { };
spotify-ripper = pkgs.callPackage ../tools/misc/spotify-ripper { }; spotify-ripper = pkgs.callPackage ../tools/misc/spotify-ripper {
# NOTE: Not available in 20.03. Specifying it this way lets me cheat the
# build auto-failing on 20.03 because of the attribute not existing.
inherit (pkgs) fdk-aac-encoder;
python2Packages = pkgs.python2Packages // python2Packages.overlay;
};
ytarchive = pkgs.callPackage ../tools/misc/ytarchive { }; ytarchive = pkgs.callPackage ../tools/misc/ytarchive { };