split modules and profiles
This commit is contained in:
parent
0e0fbd2f44
commit
cbf852ce45
53
flake.lock
generated
53
flake.lock
generated
@ -34,6 +34,21 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils": {
|
||||
"locked": {
|
||||
"lastModified": 1620759905,
|
||||
"narHash": "sha256-WiyWawrgmyN0EdmiHyG2V+fqReiVi8bM9cRdMaKQOFg=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "b543720b25df6ffdfcf9227afafc5b8c1fabfae8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"home-manager": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
@ -141,6 +156,25 @@
|
||||
"type": "indirect"
|
||||
}
|
||||
},
|
||||
"nix-direnv": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils",
|
||||
"nixpkgs": "nixpkgs_3"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1631525216,
|
||||
"narHash": "sha256-lNEEXpSJ0aRmqYkoyRhaofJXffxmPDXkZQgXZgQs0gI=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nix-direnv",
|
||||
"rev": "53c44ae33a453e2c9759cc81e028ca6a86f232d4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "nix-direnv",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1623798125,
|
||||
@ -220,6 +254,22 @@
|
||||
}
|
||||
},
|
||||
"nixpkgs_3": {
|
||||
"locked": {
|
||||
"lastModified": 1622059058,
|
||||
"narHash": "sha256-t1/ZMtyxClVSfcV4Pt5C1YpkeJ/UwFF3oitLD7Ch/UA=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "84aa23742f6c72501f9cc209f29c438766f5352d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixpkgs-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_4": {
|
||||
"locked": {
|
||||
"lastModified": 1631470189,
|
||||
"narHash": "sha256-hkUPYlpNOY9nbG1ByRin9NzPAYnPtwq/nGxO/DoeZd0=",
|
||||
@ -260,7 +310,8 @@
|
||||
"materia-theme": "materia-theme",
|
||||
"multimc-cracked": "multimc-cracked",
|
||||
"nix": "nix",
|
||||
"nixpkgs": "nixpkgs_3",
|
||||
"nix-direnv": "nix-direnv",
|
||||
"nixpkgs": "nixpkgs_4",
|
||||
"nixpkgs-master": "nixpkgs-master",
|
||||
"nixpkgs-mozilla": "nixpkgs-mozilla",
|
||||
"nixpkgs-stable": "nixpkgs-stable",
|
||||
|
109
flake.nix
109
flake.nix
@ -2,47 +2,47 @@
|
||||
description = "System configuration";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = github:nixos/nixpkgs/nixos-unstable;
|
||||
nixpkgs-master.url = github:nixos/nixpkgs/master;
|
||||
nixpkgs-stable.url = github:nixos/nixpkgs/nixos-21.05;
|
||||
home-manager.url = github:nix-community/home-manager;
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||
nixpkgs-master.url = "github:nixos/nixpkgs/master";
|
||||
nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-21.05";
|
||||
home-manager.url = "github:nix-community/home-manager";
|
||||
home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
||||
# base16.url = "/shared/nixos/base16-nix";
|
||||
base16.url = github:alukardbf/base16-nix;
|
||||
base16.url = "github:alukardbf/base16-nix";
|
||||
base16-horizon-scheme = {
|
||||
url = github:michael-ball/base16-horizon-scheme;
|
||||
url = "github:michael-ball/base16-horizon-scheme";
|
||||
flake = false;
|
||||
};
|
||||
materia-theme = {
|
||||
url = github:nana-4/materia-theme;
|
||||
url = "github:nana-4/materia-theme";
|
||||
flake = false;
|
||||
};
|
||||
zsh-autosuggestions = {
|
||||
url = github:zsh-users/zsh-autosuggestions;
|
||||
url = "github:zsh-users/zsh-autosuggestions";
|
||||
flake = false;
|
||||
};
|
||||
zsh-nix-shell = {
|
||||
url = github:chisui/zsh-nix-shell;
|
||||
url = "github:chisui/zsh-nix-shell";
|
||||
flake = false;
|
||||
};
|
||||
zsh-you-should-use = {
|
||||
url = github:MichaelAquilina/zsh-you-should-use;
|
||||
url = "github:MichaelAquilina/zsh-you-should-use";
|
||||
flake = false;
|
||||
};
|
||||
zsh-cod = {
|
||||
url = github:dim-an/cod;
|
||||
url = "github:dim-an/cod";
|
||||
flake = false;
|
||||
};
|
||||
i3lock-fancy-rapid = {
|
||||
url = github:yvbbrjdr/i3lock-fancy-rapid;
|
||||
url = "github:yvbbrjdr/i3lock-fancy-rapid";
|
||||
flake = false;
|
||||
};
|
||||
nixpkgs-mozilla = {
|
||||
url = github:mozilla/nixpkgs-mozilla;
|
||||
url = "github:mozilla/nixpkgs-mozilla";
|
||||
flake = false;
|
||||
};
|
||||
rycee = {
|
||||
url = gitlab:rycee/nur-expressions;
|
||||
url = "gitlab:rycee/nur-expressions";
|
||||
flake = false;
|
||||
};
|
||||
multimc-cracked = {
|
||||
@ -54,42 +54,63 @@
|
||||
type = "git";
|
||||
};
|
||||
qbittorrent-ee = {
|
||||
url = github:c0re100/qBittorrent-Enhanced-Edition;
|
||||
url = "github:c0re100/qBittorrent-Enhanced-Edition";
|
||||
flake = false;
|
||||
};
|
||||
nix-direnv.url = "github:nix-community/nix-direnv";
|
||||
};
|
||||
|
||||
outputs = { nixpkgs, nix, self, ... }@inputs: {
|
||||
nixosModules = import ./modules;
|
||||
outputs = { nixpkgs, nix, self, ... }@inputs:
|
||||
let
|
||||
findModules = dir:
|
||||
builtins.concatLists (builtins.attrValues (builtins.mapAttrs
|
||||
(name: type:
|
||||
if type == "regular" then
|
||||
[{
|
||||
name = builtins.elemAt (builtins.match "(.*)\\.nix" name) 0;
|
||||
value = dir + "/${name}";
|
||||
}]
|
||||
else if (builtins.readDir (dir + "/${name}"))
|
||||
? "default.nix" then [{
|
||||
inherit name;
|
||||
value = dir + "/${name}";
|
||||
}] else
|
||||
findModules (dir + "/${name}"))
|
||||
(builtins.readDir dir)));
|
||||
in {
|
||||
nixosModules = builtins.listToAttrs (findModules ./modules);
|
||||
|
||||
nixosProfiles = import ./profiles;
|
||||
# Generate system config for each of hardware configuration
|
||||
nixosConfigurations = with nixpkgs.lib;
|
||||
let
|
||||
hosts = builtins.attrNames (builtins.readDir ./machines);
|
||||
mkHost = name: let
|
||||
system = builtins.readFile (./machines + "/${name}/system");
|
||||
modules = [ (import (./machines + "/${name}")) { device = name; } ];
|
||||
specialArgs = { inherit inputs; };
|
||||
in nixosSystem { inherit system modules specialArgs; };
|
||||
in genAttrs hosts mkHost;
|
||||
nixosProfiles = builtins.listToAttrs (findModules ./profiles);
|
||||
|
||||
legacyPackages.x86_64-linux =
|
||||
(builtins.head (builtins.attrValues self.nixosConfigurations)).pkgs;
|
||||
nixosRoles = import ./roles;
|
||||
# Generate system config for each of hardware configuration
|
||||
nixosConfigurations = with nixpkgs.lib;
|
||||
let
|
||||
hosts = builtins.attrNames (builtins.readDir ./machines);
|
||||
mkHost = name:
|
||||
nixosSystem {
|
||||
system = builtins.readFile (./machines + "/${name}/system");
|
||||
modules = [ (import (./machines + "/${name}")) { device = name; } ];
|
||||
specialArgs = { inherit inputs; };
|
||||
};
|
||||
in genAttrs hosts mkHost;
|
||||
|
||||
devShell.x86_64-linux = let
|
||||
pkgs = self.legacyPackages.x86_64-linux;
|
||||
rebuild = pkgs.writeShellScriptBin "rebuild" ''
|
||||
if [[ -z $1 ]]; then
|
||||
echo "Usage: $(basename $0) {switch|boot|test}"
|
||||
elif [[ $1 = "iso" ]]; then
|
||||
nix build .#nixosConfigurations.Flakes-ISO.config.system.build.isoImage
|
||||
else
|
||||
sudo nixos-rebuild $1 --flake .
|
||||
fi
|
||||
'';
|
||||
in pkgs.mkShell {
|
||||
nativeBuildInputs = [ rebuild ];
|
||||
legacyPackages.x86_64-linux =
|
||||
(builtins.head (builtins.attrValues self.nixosConfigurations)).pkgs;
|
||||
|
||||
devShell.x86_64-linux = let
|
||||
pkgs = self.legacyPackages.x86_64-linux;
|
||||
rebuild = pkgs.writeShellScriptBin "rebuild" ''
|
||||
if [[ -z $1 ]]; then
|
||||
echo "Usage: $(basename $0) {switch|boot|test}"
|
||||
elif [[ $1 = "iso" ]]; then
|
||||
nix build .#nixosConfigurations.Flakes-ISO.config.system.build.isoImage
|
||||
else
|
||||
sudo nixos-rebuild $1 --flake .
|
||||
fi
|
||||
'';
|
||||
in pkgs.mkShell {
|
||||
nativeBuildInputs = [ rebuild ];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
{ inputs, lib, ... }: {
|
||||
imports = [
|
||||
./hardware-configuration.nix
|
||||
inputs.self.nixosProfiles.desktop
|
||||
inputs.self.nixosRoles.desktop
|
||||
];
|
||||
|
||||
deviceSpecific.devInfo = {
|
||||
|
@ -1,7 +1,7 @@
|
||||
{ inputs, config, pkgs, ... }: {
|
||||
imports = with inputs.self.nixosModules; [
|
||||
./hardware-configuration.nix
|
||||
inputs.self.nixosProfiles.desktop
|
||||
inputs.self.nixosRoles.desktop
|
||||
];
|
||||
|
||||
deviceSpecific.devInfo = {
|
||||
|
@ -1,7 +1,7 @@
|
||||
{ modulesPath, lib, inputs, pkgs, ... }: {
|
||||
imports = with inputs.self.nixosModules; [
|
||||
"${modulesPath}/installer/cd-dvd/installation-cd-minimal.nix"
|
||||
inputs.self.nixosProfiles.base
|
||||
inputs.self.nixosRoles.base
|
||||
inputs.base16.hmModule
|
||||
|
||||
alacritty
|
||||
|
@ -1,7 +1,7 @@
|
||||
{ inputs, ... }: {
|
||||
imports = with inputs.self.nixosModules; [
|
||||
./hardware-configuration.nix
|
||||
inputs.self.nixosProfiles.desktop
|
||||
inputs.self.nixosRoles.desktop
|
||||
];
|
||||
|
||||
deviceSpecific.devInfo = {
|
||||
|
Binary file not shown.
@ -1,51 +0,0 @@
|
||||
[CherryBlossom]
|
||||
main_fg = d98ba1
|
||||
secondary_fg = 816e7c
|
||||
main_bg = 131c26
|
||||
sidebar_and_player_bg = 131c26
|
||||
|
||||
#tl_selected_hover = EEEEEE
|
||||
|
||||
cover_overlay_and_shadow = 816e7c
|
||||
indicator_fg_and_button_bg = d98ba1
|
||||
pressing_fg = d98ba1
|
||||
slider_bg = 131c26
|
||||
sidebar_indicator_and_hover_button_bg = d98ba1
|
||||
scrollbar_fg_and_selected_row_bg = 131c26
|
||||
pressing_button_fg = 816e7c
|
||||
pressing_button_bg = d98ba1
|
||||
selected_button = 816e7c
|
||||
miscellaneous_bg = 131c26
|
||||
miscellaneous_hover_bg = 131c26
|
||||
preserve_1 = 131c26
|
||||
|
||||
[Coral]
|
||||
main_fg = f88379
|
||||
secondary_fg = 8c92ac
|
||||
main_bg = 1d1f28
|
||||
sidebar_and_player_bg = 1d1f28
|
||||
|
||||
#tl_selected_hover = EEEEEE
|
||||
|
||||
cover_overlay_and_shadow = 8c92ac
|
||||
indicator_fg_and_button_bg = f88379
|
||||
pressing_fg = f88379
|
||||
slider_bg = 1d1f28
|
||||
sidebar_indicator_and_hover_button_bg = f88379
|
||||
scrollbar_fg_and_selected_row_bg = 1d1f28
|
||||
pressing_button_fg = 8c92ac
|
||||
pressing_button_bg = f88379
|
||||
selected_button = 8c92ac
|
||||
miscellaneous_bg = 1d1f28
|
||||
miscellaneous_hover_bg = 1d1f28
|
||||
preserve_1 = 1d1f28
|
||||
|
||||
|
||||
#Greyish Pink = #c79da9
|
||||
#Purplish grey = #816e7c
|
||||
#Very dark (mostly black) blue = #131c26
|
||||
|
||||
#NEED TO DO
|
||||
#corner radius when hovering to edit playlist image
|
||||
#downloaded status is fully colored
|
||||
#connect to device shadow
|
@ -1,647 +0,0 @@
|
||||
:root {
|
||||
--bar-height: 120px;
|
||||
}
|
||||
|
||||
/*Round corner cover image*/
|
||||
.card-image,
|
||||
.card-placeholder-wrapper,
|
||||
.card-image-content-wrapper,
|
||||
.Card:not(.Card--artist) .Card__image,
|
||||
.Card:not(.Card--artist) .Card__image-wrapper {
|
||||
border-radius: 10px !important;
|
||||
overflow: hidden !important
|
||||
}
|
||||
|
||||
/*Hide some annoying elements like profile name and pic, upgrade button and device connect bar at bottom, new playlist button*/
|
||||
.profile.content-top-bar__profile-link,
|
||||
.upgrade-button,
|
||||
.view-player .remote-playback-bar,
|
||||
.NewPlaylistButton {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
|
||||
/*Exclude these elements from draggable property because it stops them from clickable*/
|
||||
.profile-items-container,
|
||||
.profile {
|
||||
-webkit-app-region: no-drag !important;
|
||||
}
|
||||
|
||||
/*Thinner scrollbar*/
|
||||
::-webkit-scrollbar {
|
||||
height: 6px !important;
|
||||
width: 6px !important;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
/*Round corner scrollbar*/
|
||||
::-webkit-scrollbar-thumb {
|
||||
border-radius: 3px !important;
|
||||
}
|
||||
|
||||
/*Hide top and bottom buttons of scrollbar */
|
||||
/*who uses those, lol*/
|
||||
::-webkit-scrollbar-button {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/*Hide cover image overlay*/
|
||||
.card-overlay {
|
||||
visibility: hidden !important;
|
||||
}
|
||||
|
||||
/*Lift up cover when hovering on it*/
|
||||
.card-image-content-wrapper,
|
||||
.Card:not(.Card--artist) .Card__image-wrapper {
|
||||
transition-property: transform, box-shadow !important;
|
||||
transition-duration: 1s !important;
|
||||
transition-timing-function: cubic-bezier(.3,0,0,1) !important;
|
||||
box-shadow: 0 5px 20px rgba(0,0,0,0.1);
|
||||
}
|
||||
|
||||
.card-image-hit-area:not(.no-hover):hover .card-image-content-wrapper,
|
||||
.Card:not(.Card--artist) .Card__image-hit-area-counter-scale:hover .Card__image-wrapper {
|
||||
transform: translateY(-10px);
|
||||
box-shadow: 0 15px 30px rgba(0,0,0,0.3);
|
||||
}
|
||||
|
||||
.card-image-hit-area .card-button-add,
|
||||
.card-image-hit-area .card-button-play,
|
||||
.card-image-hit-area .card-button-more,
|
||||
.Card__image-hit-area .card-button-add,
|
||||
.Card__image-hit-area .card-button-play,
|
||||
.Card__image-hit-area .card-button-more,
|
||||
.Card__image-hit-area .Card__play-button,
|
||||
.Card__image-hit-area .Card__add-button,
|
||||
.Card__image-hit-area .Card__more-button,
|
||||
.Card__image-hit-area .Card__overlay {
|
||||
transition-property: all !important;
|
||||
transition-duration: 1s !important;
|
||||
transition-timing-function: cubic-bezier(.3,0,0,1) !important;
|
||||
opacity: 0 !important;
|
||||
}
|
||||
.card-image-hit-area:not(.no-hover):hover .card-button-add,
|
||||
.card-image-hit-area:not(.no-hover):hover .card-button-play,
|
||||
.card-image-hit-area:not(.no-hover):hover .card-button-more,
|
||||
.Card__image-hit-area:not(.no-hover):hover .card-button-add,
|
||||
.Card__image-hit-area:not(.no-hover):hover .card-button-play,
|
||||
.Card__image-hit-area:not(.no-hover):hover .card-button-more {
|
||||
opacity: 1 !important;
|
||||
transform: translateY(-10px);
|
||||
}
|
||||
|
||||
.Card__image-hit-area:hover .Card__play-button,
|
||||
.Card__image-hit-area:hover .Card__add-button,
|
||||
.Card__image-hit-area:hover .Card__more-button,
|
||||
.Card__image-hit-area:hover .Card__overlay {
|
||||
opacity: 1 !important;
|
||||
}
|
||||
|
||||
.glue-page-header__content .glue-page-header__image-inner {
|
||||
border-radius: 10px;
|
||||
box-shadow: unset !important;
|
||||
}
|
||||
|
||||
.glue-page-header__full-description-overlay {
|
||||
box-shadow: unset !important;
|
||||
}
|
||||
|
||||
.card-placeholder-wrapper {
|
||||
background: transparent !important;
|
||||
}
|
||||
|
||||
/*Spice up search input background*/
|
||||
.SearchInput {
|
||||
color: var(--modspotify_main_fg);
|
||||
}
|
||||
.SearchInput__input {
|
||||
color: var(--modspotify_secondary_fg);
|
||||
background-color: rgba(var(--modspotify_rgb_scrollbar_fg_and_selected_row_bg), 0.5) !important;
|
||||
border-radius: 4px !important;
|
||||
padding-left: 34px;
|
||||
}
|
||||
|
||||
.sidebar:hover .sidebar-navbar.sidebar-scroll-element {
|
||||
opacity: 1!important;
|
||||
}
|
||||
|
||||
.view-player .player-controls-container,
|
||||
.view-player .player-controls-container .controls {
|
||||
overflow: visible !important;
|
||||
}
|
||||
|
||||
.view-player .player-controls-container .controls .button-play{
|
||||
height:50px !important;
|
||||
border-radius:50px !important;
|
||||
background: transparent !important;
|
||||
box-shadow:0 0 0 0 !important;
|
||||
width:50px !important;
|
||||
overflow: visible !important;
|
||||
box-shadow: 0 4px 15px rgba(0,0,0,0.2) !important;
|
||||
transition:none 0.3s cubic-bezier(.3,0,.7,1);
|
||||
}
|
||||
|
||||
.view-player .player-controls-container .controls .button-play:before{
|
||||
font-size:18px !important;
|
||||
padding-left: 16px !important;
|
||||
padding-top: 9px !important;
|
||||
}
|
||||
|
||||
.view-player .player-controls-container .controls .button-play:after {
|
||||
box-shadow: unset !important;
|
||||
}
|
||||
|
||||
.view-player .player-controls-container {
|
||||
position: absolute !important;
|
||||
width: 100% !important;
|
||||
}
|
||||
|
||||
.view-player .player-controls-container .controls {
|
||||
width: 100% !important;
|
||||
height: 100% !important;
|
||||
align-items: center !important;
|
||||
margin-top : 0px !important;
|
||||
}
|
||||
|
||||
/*
|
||||
Hide the song duration and elapsed text. I dont know where to put those so I just hide them
|
||||
*/
|
||||
.view-player .player-controls-container .progress-container .elapsed,
|
||||
.view-player .player-controls-container .progress-container .remaining {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/* Add round corner for Gerne and Mood cards */
|
||||
.gc-image-container,
|
||||
.gc-image {
|
||||
border-radius: 10px !important;
|
||||
}
|
||||
|
||||
/*
|
||||
Collage of 3 album covers is usually seen in Browse and Chart.
|
||||
*/
|
||||
.card-puff__image-wrapper,
|
||||
.card-puff__info-container,
|
||||
.card-puff__card-image {
|
||||
border-radius: 10px !important;
|
||||
}
|
||||
|
||||
.card-puff__image-wrapper {
|
||||
overflow: visible;
|
||||
}
|
||||
|
||||
.card-puff__card-image {
|
||||
box-shadow: 5px 0 30px rgba(0,0,0,0.7);
|
||||
overflow: visible;
|
||||
}
|
||||
|
||||
.card-puff__title-container {
|
||||
background-color: transparent !important;
|
||||
}
|
||||
|
||||
.card-puff.pressed .card-puff__image-wrapper,
|
||||
.card-puff.pressed .card-puff__info-container {
|
||||
opacity: 0.7 !important;
|
||||
}
|
||||
|
||||
.card-puff__title {
|
||||
padding: 5px 10px 5px 10px !important;
|
||||
background-color: var(--modspotify_main_bg) !important;
|
||||
border-radius: 4px;
|
||||
border: 2px solid var(--modspotify_main_fg);
|
||||
}
|
||||
|
||||
/*
|
||||
We use round corner on cover so they look weird in original
|
||||
form, so I move last cover to the right 20px and first one to the left 20px
|
||||
*/
|
||||
.card-puff__card-image:nth-child(1) {
|
||||
right: 20px;
|
||||
box-shadow: 0 0 0 0 !important;
|
||||
}
|
||||
|
||||
.card-puff__card-image:nth-child(3) {
|
||||
left: 20px;
|
||||
}
|
||||
|
||||
.grid-overlay-label {
|
||||
top: 140px !important;
|
||||
}
|
||||
|
||||
/**/
|
||||
.glue-page-header__background-color {
|
||||
background-image: none !important;
|
||||
background: var(--modspotify_main_bg);
|
||||
}
|
||||
|
||||
/* .glue-page-header__sticky {
|
||||
padding-top: 60px !important;
|
||||
} */
|
||||
|
||||
/*
|
||||
Remove those title, cringy description and
|
||||
meaningless followers number
|
||||
*/
|
||||
|
||||
.carousel .card-info-subtitle-description,
|
||||
.carousel .card-info-subtitle-metadata,
|
||||
.carousel .card:not(.card-type-station).card-info-title,
|
||||
.carousel .card.card-type-playlist.image-loaded .card-info-subtitle-description,
|
||||
.carousel .card.card-type-playlist.image-loaded .card-info-subtitle-metadata {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
In top of Browse usually has bunch of Playlist or Album cards,
|
||||
and they has .carousel as a wrapper and it hides anything that
|
||||
overflows from its zone, aka our shadow and lifting animation.
|
||||
*/
|
||||
.carousel {
|
||||
overflow: visible !important;
|
||||
}
|
||||
|
||||
/*
|
||||
Button with text Play
|
||||
*/
|
||||
.button.button-green,
|
||||
.GlueButton.GlueButton--style-green {
|
||||
color: var(--modspotify_main_bg) !important;
|
||||
}
|
||||
|
||||
/*
|
||||
Change text color in playlist
|
||||
*/
|
||||
.tl-explicit .label,
|
||||
.tl-premium .label,
|
||||
.tl-cell:not(.tl-number),
|
||||
.tl-cell a:link,
|
||||
.tl-highlight {
|
||||
color: var(--modspotify_secondary_fg);
|
||||
}
|
||||
|
||||
.card-type-album .card-info-title,
|
||||
.card-type-track .card-info-title,
|
||||
.card-type-collection-album .card-info-title,
|
||||
.card-type-episode .card-info-title {
|
||||
font-size: 15px;
|
||||
font-weight: 900 !important;
|
||||
text-align: center !important;
|
||||
width: 100% !important;
|
||||
}
|
||||
|
||||
.card-type-album .card-info-subtitle-links,
|
||||
.card-type-track .card-info-subtitle-links,
|
||||
.card-type-collection-album .card-info-subtitle-links,
|
||||
.card-type-episode .card-info-subtitle-links {
|
||||
text-align: center !important;
|
||||
width: 100% !important;
|
||||
}
|
||||
|
||||
.tracklist-station-container::after {
|
||||
background: transparent !important;
|
||||
}
|
||||
|
||||
.GlueHeader__background-overlay {
|
||||
background: var(--modspotify_main_bg) !important;
|
||||
}
|
||||
|
||||
/* Move navigation buttons and search field to the right and down */
|
||||
.browser-navigation-top-bar {
|
||||
margin-left: 40px !important;
|
||||
margin-top: 15px !important;
|
||||
}
|
||||
|
||||
.SearchInput__input,
|
||||
.SearchInput__searchIcon,
|
||||
.SearchInput__clearButton {
|
||||
margin-top: 15px !important;
|
||||
}
|
||||
|
||||
.content-top-bar__profile-menu-button {
|
||||
margin-top: 15px !important;
|
||||
}
|
||||
|
||||
.body-container--windows:not(.with-buddy-list):not(.messagebar) .content-top-bar__profile {
|
||||
margin-right: 110px !important;
|
||||
margin-top: -5px;
|
||||
}
|
||||
|
||||
/* Spice up Fullscreen mode */
|
||||
#view-player .album-art .album-art__image {
|
||||
border-radius: 30px !important;
|
||||
box-shadow: 0 10px 70px rgba(var(--modspotify_rgb_cover_overlay_and_shadow),.5) !important;
|
||||
}
|
||||
|
||||
#view-player .album-art .album-art__image .card-image-content-wrapper,
|
||||
#view-player .album-art .album-art__image .card-image-content-wrapper .card-image {
|
||||
border-radius: 30px !important;
|
||||
}
|
||||
|
||||
/* Daily mixes */
|
||||
.carousel .card-info-wrapper.card-info-with-description.card-info-with-metadata {
|
||||
height: 50px !important;
|
||||
}
|
||||
|
||||
/* Remove section divider */
|
||||
.section-divider {
|
||||
border-bottom: 0 !important;
|
||||
}
|
||||
|
||||
/* Adjust Position of border active tab in Nav bar at top
|
||||
and add little glowing effect
|
||||
*/
|
||||
.nav.navbar-nav {
|
||||
overflow: hidden !important;
|
||||
}
|
||||
|
||||
.nav.navbar-nav a {
|
||||
overflow: visible !important;
|
||||
}
|
||||
|
||||
.nav.navbar-nav a::after {
|
||||
bottom: 0px !important;
|
||||
width: 100% !important;
|
||||
}
|
||||
|
||||
.nav.navbar-nav .active a::after{
|
||||
box-shadow: 0 0px 20px !important;
|
||||
}
|
||||
|
||||
.nav.navbar-nav a:focus:not(.button):active::after{
|
||||
background-color: var(--modspotify_pressing_fg) !important;
|
||||
}
|
||||
|
||||
/* Notification bar */
|
||||
#content-wrapper #view-message-bar {
|
||||
position: absolute !important;
|
||||
width: calc(100% - 160px) !important;
|
||||
margin-left: 80px !important;
|
||||
border-radius: 0 0 10px 10px !important;
|
||||
}
|
||||
|
||||
/* Small cover Big cover mechanism */
|
||||
.now-playing.cover-size-transition.active.image-expanded .cover-image {
|
||||
width: 10px !important;
|
||||
height: 10px !important;
|
||||
}
|
||||
.now-playing.cover-size-transition.active.image-expanded .caption {
|
||||
padding-left: 0px !important;
|
||||
}
|
||||
#view-now-playing a.image {
|
||||
overflow: visible !important;
|
||||
}
|
||||
|
||||
#view-now-playing.expanded {
|
||||
width: 200px;
|
||||
height: 200px;
|
||||
}
|
||||
|
||||
#now-playing-image-large .cover-image {
|
||||
height: 200px !important;
|
||||
}
|
||||
|
||||
/* Profile arrow in top left */
|
||||
.content-top-bar__profile-menu-button .dropdown {
|
||||
position: fixed !important;
|
||||
top: 10px !important;
|
||||
-webkit-app-region: no-drag !important;
|
||||
}
|
||||
|
||||
body.body-container--windows .content-top-bar__profile-menu-button .dropdown {
|
||||
right: 190px !important;
|
||||
}
|
||||
|
||||
body:not(.body-container--windows) .content-top-bar__profile-menu-button .dropdown {
|
||||
right: 20px !important;
|
||||
}
|
||||
|
||||
/* Small tooltip */
|
||||
#tooltip {
|
||||
box-shadow: 0 0 10px rgba(0,0,0,0.2) !important;
|
||||
border-radius: 5px !important;
|
||||
border: 2px solid var(--modspotify_main_fg);
|
||||
padding: 10px 10px;
|
||||
}
|
||||
|
||||
.tooltip-arrow-top, .tooltip-arrow-bottom {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.lyrics-lines-container,
|
||||
.message-container {
|
||||
color: #FFFFFF !important;
|
||||
}
|
||||
|
||||
/* Home page */
|
||||
.GlueCarousel__grid-wrapper::-webkit-scrollbar-thumb {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.GlueCard__info-wrapper,
|
||||
.Card__info-wrapper {
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
|
||||
.card-horizontal-interior-wrapper .card-info-title {
|
||||
text-align: start !important;
|
||||
}
|
||||
|
||||
.tl-row.selected:hover .tl-cell {
|
||||
background: var(--modspotify_scrollbar_fg_and_selected_row_bg) !important;
|
||||
}
|
||||
|
||||
.GlueTableRow--is-selected {
|
||||
background-color: var(--modspotify_scrollbar_fg_and_selected_row_bg) !important;
|
||||
}
|
||||
|
||||
.tracklist-podcast .tl-progress .row-progress__bar {
|
||||
background-color: var(--modspotify_main_fg);
|
||||
}
|
||||
|
||||
.Header__background-color{
|
||||
background-color: var(--modspotify_main_bg) !important;
|
||||
}
|
||||
|
||||
.Button--style-green,
|
||||
.button.button-green, .button.button-white {
|
||||
border-radius: 4px;
|
||||
color: var(--modspotify_main_bg) !important;
|
||||
}
|
||||
|
||||
.glue-page-header:not(.glue-page-header--album):not(.glue-page-header--playlist):not(.glue-page-header--artist):not(.glue-page-header--dailymix):not(.glue-page-header--user):not(.glue-page-header--show)
|
||||
.glue-page-header__content-inner .glue-page-header__title-text,
|
||||
.HomeHeader .Header__content-inner .Header__title-text-inner,
|
||||
.MadeForYouHeader .Header__content-inner .Header__title-text-inner,
|
||||
.RecentlyPlayedPage__header .Header__content-inner .Header__title-text-inner {
|
||||
background-color: var(--modspotify_main_bg);
|
||||
padding: 5px 20px;
|
||||
border: 5px solid var(--modspotify_main_fg) !important;
|
||||
border-radius: 6px;
|
||||
box-shadow: 0 4px 12px 0 rgba(var(--modspotify_rgb_cover_overlay_and_shadow),.2);
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.glue-page-header.glue-page-header--album .glue-page-header__content-inner .glue-page-header__title,
|
||||
.glue-page-header.glue-page-header--artist .glue-page-header__content-inner .glue-page-header__title,
|
||||
.glue-page-header.glue-page-header--dailymix .glue-page-header__content-inner .glue-page-header__title,
|
||||
.glue-page-header.glue-page-header--playlist .glue-page-header__content-inner .glue-page-header__title {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
span.glue-page-header__title-text {
|
||||
color: var(--modspotify_main_fg);
|
||||
}
|
||||
|
||||
.glue-page-header .glue-page-header__content-inner .glue-page-header__button {
|
||||
margin-top: 40px;
|
||||
}
|
||||
|
||||
.glue-page-header__content-inner,
|
||||
.glue-page-header__data,
|
||||
.glue-page-header__title,
|
||||
.Header__content-inner,
|
||||
.Header__data,
|
||||
.Header__title,
|
||||
.Header__title-text,
|
||||
.Header__title-text-inner {
|
||||
overflow: visible !important;
|
||||
}
|
||||
|
||||
/*Force player bar to has fixed height*/
|
||||
.view-player {
|
||||
height: var(--bar-height) !important;
|
||||
border-top: 0;
|
||||
}
|
||||
|
||||
.view-player .now-playing {
|
||||
overflow: unset;
|
||||
}
|
||||
|
||||
.view-player .now-playing .cover-image-link,
|
||||
.view-player .now-playing .cover-image-link figure {
|
||||
width: var(--bar-height);
|
||||
height: var(--bar-height);
|
||||
}
|
||||
|
||||
#now-playing-image-small .cover-image {
|
||||
position: fixed !important;
|
||||
width: var(--bar-height);
|
||||
height: var(--bar-height);
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
}
|
||||
|
||||
.view-player .now-playing .cover-image-link-wrapper {
|
||||
flex: 0 1 calc(var(--bar-height) + 10px);
|
||||
}
|
||||
|
||||
.text-container {
|
||||
z-index: 3;
|
||||
}
|
||||
|
||||
.view-player .now-playing-container .button-add {
|
||||
color: var(--modspotify_main_fg) !important;
|
||||
}
|
||||
|
||||
.progress-container .progress-bar,
|
||||
.progress-container .inner {
|
||||
top: 0 !important;
|
||||
margin-top: 0 !important;
|
||||
height: 5px;
|
||||
}
|
||||
|
||||
.progress-container .progress-bar-wrapper {
|
||||
top: 0 !important;
|
||||
height: 5px;
|
||||
}
|
||||
|
||||
.progress-container {
|
||||
position: fixed !important;
|
||||
width: 100% !important;
|
||||
bottom: var(--bar-height) !important;
|
||||
margin : 0 !important;
|
||||
}
|
||||
|
||||
.progress-container .inner {
|
||||
border-radius: 0 2px 2px 0 !important;
|
||||
background-color: var(--modspotify_main_fg) !important;
|
||||
box-shadow: 0 2px 2px 0 var(--modspotify_main_fg);
|
||||
}
|
||||
|
||||
.glue-page-header__p2s-details,
|
||||
.glue-page-header__p2s-followers {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.context-menu {
|
||||
border: 2px solid var(--modspotify_main_fg);
|
||||
box-shadow: 0 4px 12px 0 rgba(var(--modspotify_rgb_cover_overlay_and_shadow),.2);
|
||||
border-radius: 7px !important;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
#menu-wrapper ::-webkit-scrollbar {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#menu-wrapper {
|
||||
border-right: 3px solid black;
|
||||
border-image: linear-gradient(0deg, transparent , var(--modspotify_scrollbar_fg_and_selected_row_bg) 40%, var(--modspotify_scrollbar_fg_and_selected_row_bg) 60%, transparent 90%) 2 90%;
|
||||
}
|
||||
|
||||
.main-view-wrapper {
|
||||
overflow: unset;
|
||||
}
|
||||
|
||||
.Button--style-icon-stroke:after,
|
||||
.Button--style-icon-stroke:hover:after,
|
||||
.Button--style-icon-stroke,
|
||||
.glue-page-header__button .button-icon-with-stroke,
|
||||
.glue-page-header__button .button-icon-with-stroke::after {
|
||||
box-shadow: unset;
|
||||
}
|
||||
|
||||
.glue-page-header.glue-page-header--artist .glue-page-header__label {
|
||||
padding-top: 10px;
|
||||
}
|
||||
|
||||
.glue-page-header.glue-page-header--artist.has-custom-image .glue-page-header__label {
|
||||
padding-top: 8px;
|
||||
}
|
||||
|
||||
.glue-page-header__content .glue-page-header__label {
|
||||
margin-left: -2px;
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
.glue-page-header__label span,
|
||||
.Header__label span {
|
||||
background-color: var(--modspotify_main_fg);
|
||||
color: var(--modspotify_main_bg);
|
||||
padding: 2px 10px;
|
||||
}
|
||||
|
||||
.glue-page-header__label .header-verified-check {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
body.remotebar .view-player .player-bar-wrapper {
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.SidebarListItem--is-active:after,
|
||||
.RootlistItem--is-active:after,
|
||||
/* For Linux */ #view-navigation-bar .item.active:after {
|
||||
background-color: transparent;
|
||||
background-image: linear-gradient(90deg, var(--modspotify_sidebar_indicator_and_hover_button_bg) , transparent);
|
||||
opacity: 0.2;
|
||||
bottom: unset;
|
||||
top: 5%;
|
||||
height: 90%;
|
||||
width: 100%
|
||||
}
|
||||
|
||||
.Header__image-inner {
|
||||
box-shadow: unset;
|
||||
}
|
@ -1,17 +0,0 @@
|
||||
let
|
||||
findModules = dir:
|
||||
builtins.concatLists (builtins.attrValues (builtins.mapAttrs (name: type:
|
||||
if type == "regular" then
|
||||
(if name == "default.nix" then
|
||||
[ ]
|
||||
else [{
|
||||
name = builtins.elemAt (builtins.match "(.*)\\.nix" name) 0;
|
||||
value = dir + "/${name}";
|
||||
}])
|
||||
else if (builtins.readDir (dir + "/${name}")) ? "default.nix" then [{
|
||||
inherit name;
|
||||
value = dir + "/${name}";
|
||||
}] else
|
||||
findModules (dir + "/${name}")) (builtins.readDir dir)));
|
||||
|
||||
in builtins.listToAttrs (findModules ./.)
|
@ -65,7 +65,12 @@ let
|
||||
else
|
||||
echo "Failed to decrypt the secret"
|
||||
rm '${decrypted}.tmp'
|
||||
exit 1
|
||||
if [[ -f '${decrypted}' ]]; then
|
||||
echo "The decrypted file exists anyways, not failing"
|
||||
exit 0
|
||||
else
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
'';
|
||||
|
||||
|
@ -1,5 +0,0 @@
|
||||
{
|
||||
"device": "alsa_output.pci-0000_00_1f.3.analog-stereo",
|
||||
"device-profile": "output:analog-stereo+input:analog-stereo",
|
||||
"preset-name": "HE4XX"
|
||||
}
|
@ -1,5 +0,0 @@
|
||||
{
|
||||
"device": "bluez_output.D8_37_3B_60_5D_55.a2dp-sink",
|
||||
"device-profile": "a2dp-sink-aac",
|
||||
"preset-name": "Bluetooth"
|
||||
}
|
@ -1,14 +0,0 @@
|
||||
{ config, pkgs, lib, ... }:
|
||||
with lib;
|
||||
let
|
||||
cfg = config.deviceSpecific.wireguard;
|
||||
kernel = config.boot.kernelPackages;
|
||||
in {
|
||||
config = mkIf cfg.enable {
|
||||
boot.extraModulePackages = optional (versionOlder kernel.kernel.version "5.6") kernel.wireguard;
|
||||
networking.firewall.checkReversePath = "loose";
|
||||
environment.systemPackages = [ pkgs.wireguard-tools pkgs.mullvad-vpn ];
|
||||
services.mullvad-vpn.enable = true;
|
||||
startupApplications = [ "${pkgs.mullvad-vpn}/share/mullvad/mullvad-gui" ];
|
||||
};
|
||||
}
|
@ -1,14 +0,0 @@
|
||||
{ config, pkgs, lib, ... }: {
|
||||
home-manager.users.alukard = {
|
||||
|
||||
programs.command-not-found = {
|
||||
enable = true;
|
||||
dbPath = ../../misc/programs.sqlite;
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
environment.sessionVariables = {
|
||||
NIX_AUTO_RUN = "1";
|
||||
};
|
||||
}
|
@ -1,119 +0,0 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
with lib;
|
||||
let
|
||||
cfgC = config.services.barrier.client;
|
||||
cfgS = config.services.barrier.server;
|
||||
in
|
||||
{
|
||||
options = {
|
||||
services.barrier = {
|
||||
client = {
|
||||
enable = mkOption {
|
||||
default = false;
|
||||
description = "
|
||||
Whether to enable the Barrier client (receive keyboard and mouse events from a Barrier server).
|
||||
";
|
||||
};
|
||||
screenName = mkOption {
|
||||
default = "";
|
||||
description = ''
|
||||
Use the given name instead of the hostname to identify
|
||||
ourselves to the server.
|
||||
'';
|
||||
};
|
||||
serverAddress = mkOption {
|
||||
description = ''
|
||||
The server address is of the form: [hostname][:port]. The
|
||||
hostname must be the address or hostname of the server. The
|
||||
port overrides the default port, 24800.
|
||||
'';
|
||||
};
|
||||
autoStart = mkOption {
|
||||
default = true;
|
||||
type = types.bool;
|
||||
description = "Whether the Barrier client should be started automatically.";
|
||||
};
|
||||
};
|
||||
|
||||
server = {
|
||||
enable = mkOption {
|
||||
default = false;
|
||||
description = ''
|
||||
Whether to enable the Barrier server (send keyboard and mouse events).
|
||||
'';
|
||||
};
|
||||
configFile = mkOption {
|
||||
default = "/etc/barrier-server.conf";
|
||||
description = "The Barrier server configuration file.";
|
||||
};
|
||||
screenName = mkOption {
|
||||
default = "";
|
||||
description = ''
|
||||
Use the given name instead of the hostname to identify
|
||||
this screen in the configuration.
|
||||
'';
|
||||
};
|
||||
address = mkOption {
|
||||
default = "";
|
||||
description = "Address on which to listen for clients.";
|
||||
};
|
||||
autoStart = mkOption {
|
||||
default = true;
|
||||
type = types.bool;
|
||||
description = "Whether the Barrier server should be started automatically.";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = mkMerge [
|
||||
(mkIf cfgC.enable {
|
||||
systemd.user.services."barrier-client" = {
|
||||
after = [ "network.target" "graphical-session.target" ];
|
||||
description = "Barrier client";
|
||||
wantedBy = optional cfgC.autoStart "graphical-session.target";
|
||||
path = [ pkgs.barrier ];
|
||||
serviceConfig.ExecStart = ''${pkgs.barrier}/bin/barrierc -f ${optionalString (cfgC.screenName != "") "-n ${cfgC.screenName}"} ${cfgC.serverAddress}'';
|
||||
serviceConfig.Restart = "on-failure";
|
||||
};
|
||||
})
|
||||
(mkIf cfgS.enable {
|
||||
systemd.user.services."barrier-server" = {
|
||||
after = [ "network.target" "graphical-session.target" ];
|
||||
description = "Barrier server";
|
||||
wantedBy = optional cfgS.autoStart "graphical-session.target";
|
||||
path = [ pkgs.barrier ];
|
||||
serviceConfig.ExecStart = ''${pkgs.barrier}/bin/barriers -c ${cfgS.configFile} -f ${optionalString (cfgS.address != "") "-a ${cfgS.address}"} ${optionalString (cfgS.screenName != "") "-n ${cfgS.screenName}" }'';
|
||||
serviceConfig.Restart = "on-failure";
|
||||
};
|
||||
})
|
||||
({
|
||||
services.barrier = if config.device == "AMD-Workstation" then {
|
||||
server.enable = true;
|
||||
server.autoStart = true;
|
||||
server.configFile = pkgs.writeTextFile {
|
||||
name = "barrier.conf";
|
||||
text = ''
|
||||
section: screens
|
||||
ataraxia-pc:
|
||||
dell-ataraxia:
|
||||
end
|
||||
section: links
|
||||
dell-ataraxia:
|
||||
right = ataraxia-pc
|
||||
end
|
||||
section: options
|
||||
keystroke(super+alt+left) = switchInDirection(left)
|
||||
keystroke(super+alt+right) = switchInDirection(right)
|
||||
end
|
||||
'';
|
||||
};
|
||||
} else {
|
||||
client.enable = true;
|
||||
client.serverAddress = "ataraxia-pc";
|
||||
server.autoStart = false;
|
||||
};
|
||||
})
|
||||
];
|
||||
|
||||
}
|
@ -1,27 +0,0 @@
|
||||
|
||||
{ config, lib, pkgs, ... }:
|
||||
{
|
||||
home-manager.users.alukard = {
|
||||
xresources.properties = with config.lib.base16.theme; {
|
||||
"*foreground" = "#${base05-hex}";
|
||||
"*background" = "#${base00-hex}";
|
||||
"*cursorColor" = "#${base05-hex}";
|
||||
"*color0" = "#${base00-hex}";
|
||||
"*color1" = "#${base08-hex}";
|
||||
"*color2" = "#${base0B-hex}";
|
||||
"*color3" = "#${base0A-hex}";
|
||||
"*color4" = "#${base0D-hex}";
|
||||
"*color5" = "#${base0E-hex}";
|
||||
"*color6" = "#${base0C-hex}";
|
||||
"*color7" = "#${base05-hex}";
|
||||
"*color8" = "#${base03-hex}";
|
||||
"*color9" = "#${base09-hex}";
|
||||
"*color10" = "#${base01-hex}";
|
||||
"*color11" = "#${base02-hex}";
|
||||
"*color12" = "#${base04-hex}";
|
||||
"*color13" = "#${base06-hex}";
|
||||
"*color14" = "#${base0F-hex}";
|
||||
"*color15" = "#${base07-hex}";
|
||||
};
|
||||
};
|
||||
}
|
@ -75,12 +75,7 @@ with config.deviceSpecific; {
|
||||
youtube-to-mpv
|
||||
zathura
|
||||
zoom-us
|
||||
|
||||
# misc
|
||||
# i3status-rust
|
||||
] ++ lib.optionals (!(isVM || isISO)) [
|
||||
# rust-stable
|
||||
# rust-nightly
|
||||
libreoffice
|
||||
] ++ lib.optionals isGaming [
|
||||
lutris
|
||||
@ -92,11 +87,6 @@ with config.deviceSpecific; {
|
||||
acpi
|
||||
] ++ lib.optionals (config.device == "AMD-Workstation") [
|
||||
multimc
|
||||
# xonar-fp
|
||||
# Android dev
|
||||
# androidenv.androidPkgs_9_0.androidsdk
|
||||
# android-studio
|
||||
# scrcpy
|
||||
] ++ lib.optionals (enableVirtualisation) [
|
||||
virt-manager
|
||||
];
|
@ -81,29 +81,4 @@ in {
|
||||
};
|
||||
}
|
||||
];
|
||||
}
|
||||
# {
|
||||
|
||||
# home-manager.users.alukard = {
|
||||
# # xdg.configFile."spicetify/Themes/base16/color.ini".source = ./color.ini;
|
||||
# # xdg.configFile."spicetify/Themes/base16/user.css".source = ./user.css;
|
||||
# services.spotifyd = {
|
||||
# enable = true;
|
||||
# package = (pkgs.spotifyd.override { withALSA = false; withPulseAudio = true; withPortAudio = false; });
|
||||
# settings = {
|
||||
# global = {
|
||||
# username = "${config.secrets.spotify.user}";
|
||||
# password = "${config.secrets.spotify.password}";
|
||||
# backend = "pulseaudio";
|
||||
# volume_controller = "softvol";
|
||||
# device_name = "nix";
|
||||
# bitrate = 320;
|
||||
# no_audio_cache = true;
|
||||
# volume_normalisation = false;
|
||||
# device_type = "computer";
|
||||
# cache_path = "${config.users.users.alukard.home}/.cache/spotifyd";
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
# }
|
||||
}
|
@ -9,9 +9,9 @@ in
|
||||
cmd = "${pkgs.rxvt-unicode}/bin/urxvt";
|
||||
desktop = "urxvt";
|
||||
};
|
||||
home-manager.users.alukard = {
|
||||
home-manager.users.alukard = lib.mkIf (isISO || isVM) {
|
||||
programs.urxvt = {
|
||||
enable = (isISO || isVM);
|
||||
enable = true;
|
||||
extraConfig = {
|
||||
"font" = "xft:${thm.powerlineFont}:style=Regular:size=${thm.smallFontSize}";
|
||||
"boldFont" = "xft:${thm.powerlineFont}:style=Bold:size=${thm.smallFontSize}";
|
||||
@ -65,5 +65,26 @@ in
|
||||
"color21" = "#${thm.base06-hex}";
|
||||
};
|
||||
};
|
||||
xresources.properties = with config.lib.base16.theme; {
|
||||
"*foreground" = "#${base05-hex}";
|
||||
"*background" = "#${base00-hex}";
|
||||
"*cursorColor" = "#${base05-hex}";
|
||||
"*color0" = "#${base00-hex}";
|
||||
"*color1" = "#${base08-hex}";
|
||||
"*color2" = "#${base0B-hex}";
|
||||
"*color3" = "#${base0A-hex}";
|
||||
"*color4" = "#${base0D-hex}";
|
||||
"*color5" = "#${base0E-hex}";
|
||||
"*color6" = "#${base0C-hex}";
|
||||
"*color7" = "#${base05-hex}";
|
||||
"*color8" = "#${base03-hex}";
|
||||
"*color9" = "#${base09-hex}";
|
||||
"*color10" = "#${base01-hex}";
|
||||
"*color11" = "#${base02-hex}";
|
||||
"*color12" = "#${base04-hex}";
|
||||
"*color13" = "#${base06-hex}";
|
||||
"*color14" = "#${base0F-hex}";
|
||||
"*color15" = "#${base07-hex}";
|
||||
};
|
||||
};
|
||||
}
|
@ -2,7 +2,6 @@
|
||||
boot = {
|
||||
loader = {
|
||||
systemd-boot.enable = lib.mkIf (pkgs.system == "x86_64-linux") true;
|
||||
# efi.canTouchEfiVariables = true;
|
||||
};
|
||||
|
||||
kernelPackages = pkgs.linuxPackages_latest;
|
@ -5,7 +5,6 @@ with rec {
|
||||
with deviceSpecific;
|
||||
{
|
||||
secrets.samba = {
|
||||
# encrypted = "${config.home-manager.users.alukard.xdg.dataHome}/password-store/samba/linux.gpg";
|
||||
services = [ ];
|
||||
};
|
||||
|
@ -4,7 +4,6 @@ with config.deviceSpecific; {
|
||||
hardware.cpu.${devInfo.cpu.vendor}.updateMicrocode = true;
|
||||
hardware.enableRedistributableFirmware = true;
|
||||
|
||||
# Enable hardware video acceleration for Intel
|
||||
nixpkgs.config.packageOverrides = pkgs: {
|
||||
vaapiIntel = pkgs.vaapiIntel.override { enableHybridCodec = true; };
|
||||
};
|
||||
@ -33,9 +32,4 @@ with config.deviceSpecific; {
|
||||
] else if devInfo.gpu.vendor == "intel" then [
|
||||
i915
|
||||
] else [ ];
|
||||
# environment.systemPackages = if devInfo.gpu.vendor == "amd" then
|
||||
# # [ (pkgs.mesa.override { enableRadv = true; }) ]
|
||||
# [ pkgs.mesa ]
|
||||
# else
|
||||
# [ ];
|
||||
}
|
10
profiles/mullvad.nix
Normal file
10
profiles/mullvad.nix
Normal file
@ -0,0 +1,10 @@
|
||||
{ pkgs, lib, config, ... }:
|
||||
let
|
||||
vpn = config.deviceSpecific.wireguard;
|
||||
in {
|
||||
config = lib.mkIf vpn.enable {
|
||||
services.mullvad-vpn.enable = true;
|
||||
home-manager.users.alukard.home.packages = [ pkgs.mullvad-vpn ];
|
||||
startupApplications = [ "${pkgs.mullvad-vpn}/share/mullvad/mullvad-gui" ];
|
||||
};
|
||||
}
|
@ -12,7 +12,9 @@
|
||||
|
||||
autoOptimiseStore = false;
|
||||
|
||||
package = inputs.nix.packages.x86_64-linux.nix;
|
||||
package = inputs.nix.packages.x86_64-linux.nix.overrideAttrs (oa: {
|
||||
patches = [./nix.patch] ++ oa.patches or [];
|
||||
});
|
||||
|
||||
extraOptions = ''
|
||||
experimental-features = nix-command flakes
|
42
profiles/nix/nix.patch
Normal file
42
profiles/nix/nix.patch
Normal file
@ -0,0 +1,42 @@
|
||||
diff --git a/src/libstore/profiles.cc b/src/libstore/profiles.cc
|
||||
index 5d1723886..4f2e4f5db 100644
|
||||
--- a/src/libstore/profiles.cc
|
||||
+++ b/src/libstore/profiles.cc
|
||||
@@ -250,13 +250,6 @@ Path getDefaultProfile()
|
||||
{
|
||||
Path profileLink = getHome() + "/.nix-profile";
|
||||
try {
|
||||
- if (!pathExists(profileLink)) {
|
||||
- replaceSymlink(
|
||||
- getuid() == 0
|
||||
- ? settings.nixStateDir + "/profiles/default"
|
||||
- : fmt("%s/profiles/per-user/%s/profile", settings.nixStateDir, getUserName()),
|
||||
- profileLink);
|
||||
- }
|
||||
return absPath(readLink(profileLink), dirOf(profileLink));
|
||||
} catch (Error &) {
|
||||
return profileLink;
|
||||
diff --git a/src/nix-env/nix-env.cc b/src/nix-env/nix-env.cc
|
||||
index e04954d45..5649bd01a 100644
|
||||
--- a/src/nix-env/nix-env.cc
|
||||
+++ b/src/nix-env/nix-env.cc
|
||||
@@ -1336,19 +1336,6 @@ static int main_nix_env(int argc, char * * argv)
|
||||
globals.instSource.nixExprPath = getHome() + "/.nix-defexpr";
|
||||
globals.instSource.systemFilter = "*";
|
||||
|
||||
- if (!pathExists(globals.instSource.nixExprPath)) {
|
||||
- try {
|
||||
- createDirs(globals.instSource.nixExprPath);
|
||||
- replaceSymlink(
|
||||
- fmt("%s/profiles/per-user/%s/channels", settings.nixStateDir, getUserName()),
|
||||
- globals.instSource.nixExprPath + "/channels");
|
||||
- if (getuid() != 0)
|
||||
- replaceSymlink(
|
||||
- fmt("%s/profiles/per-user/root/channels", settings.nixStateDir),
|
||||
- globals.instSource.nixExprPath + "/channels_root");
|
||||
- } catch (Error &) { }
|
||||
- }
|
||||
-
|
||||
globals.dryRun = false;
|
||||
globals.preserveInstalled = false;
|
||||
globals.removeAll = false;
|
@ -32,6 +32,7 @@ in
|
||||
vscode-fhs = master.vscode-fhs;
|
||||
vivaldi = master.vivaldi;
|
||||
multimc = pkgs.qt5.callPackage ./packages/multimc.nix { multimc-repo = inputs.multimc-cracked; };
|
||||
nix-direnv = inputs.nix-direnv.defaultPackage.${system};
|
||||
steam = super.steam.override {
|
||||
extraLibraries = pkgs: with pkgs; [
|
||||
pipewire
|
@ -7,47 +7,24 @@ with config.deviceSpecific; {
|
||||
hardware.bluetooth.enable = true;
|
||||
services.blueman.enable = true;
|
||||
|
||||
services.redshift = {
|
||||
enable = true;
|
||||
temperature.day = 6500;
|
||||
temperature.night = 3000;
|
||||
};
|
||||
|
||||
services.earlyoom = {
|
||||
enable = devInfo.ram < 16;
|
||||
freeMemThreshold = 5;
|
||||
freeSwapThreshold = 100;
|
||||
};
|
||||
|
||||
# Enable zram, disable zswap
|
||||
zramSwap = {
|
||||
enable = true;
|
||||
algorithm = "zstd";
|
||||
memoryPercent = 60;
|
||||
numDevices = 1;
|
||||
};
|
||||
boot.kernelParams = [ "zswap.enabled=0" ];
|
||||
|
||||
services.fstrim = {
|
||||
enable = isSSD;
|
||||
interval = "weekly";
|
||||
};
|
||||
|
||||
services.udev.packages = [ pkgs.stlink ];
|
||||
services.redshift = {
|
||||
enable = true;
|
||||
temperature.day = 6500;
|
||||
temperature.night = 3000;
|
||||
};
|
||||
|
||||
# services.avahi = {
|
||||
# enable = true;
|
||||
# nssmdns = true;
|
||||
# publish = {
|
||||
# enable = true;
|
||||
# addresses = true;
|
||||
# domain = true;
|
||||
# };
|
||||
# };
|
||||
|
||||
systemd.services.systemd-udev-settle.enable = false;
|
||||
|
||||
services.upower.enable = true;
|
||||
services.thermald.enable = isLaptop;
|
||||
|
||||
services.tlp = {
|
||||
enable = isLaptop;
|
||||
@ -78,5 +55,18 @@ with config.deviceSpecific; {
|
||||
gpuOffset = -48; # -54
|
||||
};
|
||||
|
||||
services.thermald.enable = isLaptop;
|
||||
services.udev.packages = [ pkgs.stlink ];
|
||||
|
||||
services.upower.enable = true;
|
||||
|
||||
systemd.services.systemd-udev-settle.enable = false;
|
||||
|
||||
# Enable zram, disable zswap
|
||||
zramSwap = {
|
||||
enable = true;
|
||||
algorithm = "zstd";
|
||||
memoryPercent = 60;
|
||||
numDevices = 1;
|
||||
};
|
||||
boot.kernelParams = [ "zswap.enabled=0" ];
|
||||
}
|
@ -26,23 +26,6 @@ in {
|
||||
markup = "full";
|
||||
};
|
||||
|
||||
# urgency_low = {
|
||||
# background = "#${thm.base01-hex}";
|
||||
# foreground = "#${thm.base03-hex}";
|
||||
# timeout = 5;
|
||||
# };
|
||||
|
||||
# urgency_normal = {
|
||||
# background = "#${thm.base02-hex}";
|
||||
# foreground = "#${thm.base05-hex}";
|
||||
# timeout = 10;
|
||||
# };
|
||||
|
||||
# urgency_critical = {
|
||||
# background = "#${thm.base08-hex}";
|
||||
# foreground = "#${thm.base06-hex}";
|
||||
# timeout = 15;
|
||||
# };
|
||||
urgency_low = {
|
||||
background = "#${thm.base01-hex}";
|
||||
foreground = "#${thm.base05-hex}";
|
@ -11,12 +11,9 @@ in
|
||||
roboto
|
||||
roboto-mono
|
||||
roboto-slab
|
||||
# powerline-fonts
|
||||
# Icons
|
||||
# font-awesome_4
|
||||
font-awesome
|
||||
material-icons
|
||||
# material-design-icons
|
||||
];
|
||||
fontconfig = {
|
||||
enable = lib.mkForce true;
|
@ -4,6 +4,7 @@
|
||||
LESS = "MR";
|
||||
LESSHISTFILE = "~/.local/share/lesshist";
|
||||
SYSTEMD_LESS = LESS;
|
||||
CARGO_HOME = "${config.home-manager.users.alukard.xdg.dataHome}/cargo";
|
||||
};
|
||||
|
||||
home-manager.users.alukard = {
|
@ -23,6 +23,7 @@
|
||||
"100:class_i ?= 'vivaldi-stable'"
|
||||
"100:class_g = 'mpv'"
|
||||
"100:class_g = 'explorer.exe'"
|
||||
"100:class_g = '.scrcpy-wrapped'"
|
||||
"90:class_g = 'URxvt' && focused"
|
||||
"70:class_g = 'URxvt' && !focused"
|
||||
];
|
@ -67,18 +67,27 @@
|
||||
|
||||
nixify() {
|
||||
if [ ! -e ./.envrc ]; then
|
||||
echo 'use nix' > .envrc
|
||||
echo 'use flake' > .envrc
|
||||
direnv allow
|
||||
fi
|
||||
if [ ! -e shell.nix ]; then
|
||||
cat > shell.nix <<'EOF'
|
||||
{ pkgs ? import <nixpkgs> {} }:
|
||||
# with import <nixpkgs> {};
|
||||
pkgs.mkShell {
|
||||
# Hack SSL Cert error
|
||||
GIT_SSL_CAINFO=/etc/ssl/certs/ca-certificates.crt;
|
||||
SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt;
|
||||
buildInputs = [];
|
||||
if [ ! -e flake.nix ]; then
|
||||
cat > flake.nix <<'EOF'
|
||||
{
|
||||
description = "shell environment";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = github:nixos/nixpkgs/nixos-unstable;
|
||||
};
|
||||
|
||||
outputs = { self, nixpkgs, ... }@inputs: {
|
||||
devShell.x86_64-linux = let
|
||||
pkgs = import nixpkgs { config.allowUnfree = true; localSystem = "x86_64-linux"; };
|
||||
in pkgs.mkShell {
|
||||
nativeBuildInputs = [ ];
|
||||
buildInputs = with pkgs; [ ];
|
||||
shellHook = "";
|
||||
};
|
||||
};
|
||||
}
|
||||
EOF
|
||||
fi
|
@ -1,5 +1,5 @@
|
||||
{ inputs, ... }: {
|
||||
imports = with inputs.self.nixosModules; [
|
||||
imports = with inputs.self.nixosModules; with inputs.self.nixosProfiles; [
|
||||
inputs.home-manager.nixosModules.home-manager
|
||||
|
||||
applications
|
@ -1,17 +1,17 @@
|
||||
{ inputs, ... }: {
|
||||
imports = with inputs.self.nixosModules; [
|
||||
imports = with inputs.self.nixosModules; with inputs.self.nixosProfiles; [
|
||||
./base.nix
|
||||
inputs.base16.hmModule
|
||||
|
||||
applications-setup
|
||||
filesystems
|
||||
hardware
|
||||
mullvad
|
||||
samba
|
||||
services
|
||||
sound
|
||||
themes
|
||||
virtualisation
|
||||
wireguard
|
||||
xserver
|
||||
|
||||
alacritty
|
||||
@ -39,6 +39,5 @@
|
||||
light
|
||||
picom
|
||||
print-scan
|
||||
xresources
|
||||
];
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user