feat: add nix code formatter
This commit is contained in:
parent
231fd16756
commit
1fae0a73d3
52 changed files with 702 additions and 609 deletions
|
@ -1,4 +1,4 @@
|
||||||
{ ... }: {
|
{...}: {
|
||||||
nix = {
|
nix = {
|
||||||
settings = {
|
settings = {
|
||||||
substituters = [
|
substituters = [
|
||||||
|
|
|
@ -1,16 +1,17 @@
|
||||||
{ config
|
{
|
||||||
, home-manager
|
config,
|
||||||
, lib
|
home-manager,
|
||||||
, nixpkgs
|
lib,
|
||||||
, nixpkgs-wayland
|
nixpkgs,
|
||||||
, nix-index-database
|
nixpkgs-wayland,
|
||||||
, nh
|
nix-index-database,
|
||||||
, nur
|
nh,
|
||||||
, nix-melt
|
nur,
|
||||||
, nurl
|
nix-melt,
|
||||||
, coc-stylelintplus
|
nurl,
|
||||||
, pkgs
|
coc-stylelintplus,
|
||||||
, ...
|
pkgs,
|
||||||
|
...
|
||||||
}: {
|
}: {
|
||||||
imports = [
|
imports = [
|
||||||
./cachix.nix
|
./cachix.nix
|
||||||
|
@ -29,7 +30,7 @@
|
||||||
nix = {
|
nix = {
|
||||||
# Edit nix.conf
|
# Edit nix.conf
|
||||||
settings = {
|
settings = {
|
||||||
experimental-features = [ "nix-command" "flakes" ];
|
experimental-features = ["nix-command" "flakes"];
|
||||||
keep-outputs = true;
|
keep-outputs = true;
|
||||||
keep-derivations = true;
|
keep-derivations = true;
|
||||||
auto-optimise-store = true;
|
auto-optimise-store = true;
|
||||||
|
@ -83,36 +84,34 @@
|
||||||
./home/tmux.nix
|
./home/tmux.nix
|
||||||
|
|
||||||
./device-vars.nix
|
./device-vars.nix
|
||||||
({ osConfig, ... }: {
|
({osConfig, ...}: {
|
||||||
services.device-vars = osConfig.services.device-vars;
|
services.device-vars = osConfig.services.device-vars;
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
|
|
||||||
home.packages = [
|
home.packages =
|
||||||
nix-melt.packages.x86_64-linux.default
|
[
|
||||||
nurl.packages.x86_64-linux.default
|
nix-melt.packages.x86_64-linux.default
|
||||||
] ++
|
nurl.packages.x86_64-linux.default
|
||||||
|
]
|
||||||
(with config.nur.repos.rycee; [
|
++ (with config.nur.repos.rycee; [
|
||||||
mozilla-addons-to-nix
|
mozilla-addons-to-nix
|
||||||
]) ++
|
])
|
||||||
|
++ (with pkgs.nodePackages; [
|
||||||
(with pkgs.nodePackages; [
|
undollar
|
||||||
undollar
|
])
|
||||||
]) ++
|
++ (with pkgs; [
|
||||||
|
dracula-theme
|
||||||
(with pkgs; [
|
neofetch
|
||||||
dracula-theme
|
progress
|
||||||
neofetch
|
wget
|
||||||
progress
|
tree
|
||||||
wget
|
mosh
|
||||||
tree
|
rsync
|
||||||
mosh
|
killall
|
||||||
rsync
|
imagemagick
|
||||||
killall
|
usbutils
|
||||||
imagemagick
|
]);
|
||||||
usbutils
|
|
||||||
]);
|
|
||||||
|
|
||||||
home.stateVersion = lib.mkDefault "23.05";
|
home.stateVersion = lib.mkDefault "23.05";
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
{ lib, ... }: {
|
{lib, ...}: {
|
||||||
options.services.device-vars = with lib; {
|
options.services.device-vars = with lib; {
|
||||||
username = mkOption {
|
username = mkOption {
|
||||||
description = ''
|
description = ''
|
||||||
Username that was defined at the initial setup process
|
Username that was defined at the initial setup process
|
||||||
'';
|
'';
|
||||||
type = types.nullOr types.str;
|
type = types.nullOr types.str;
|
||||||
};
|
};
|
||||||
|
|
||||||
configDir = mkOption {
|
configDir = mkOption {
|
||||||
|
|
|
@ -1,15 +1,18 @@
|
||||||
{ config, lib, ... }: {
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
imports = [
|
imports = [
|
||||||
./programs.nix
|
./programs.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
programs = {
|
programs = {
|
||||||
|
|
||||||
starship = let
|
starship = let
|
||||||
textColor = "#e3e5e5";
|
textColor = "#e3e5e5";
|
||||||
firstColor = "#bd93f9";
|
firstColor = "#bd93f9";
|
||||||
secondColor = "#715895";
|
secondColor = "#715895";
|
||||||
thirdColor = "#382c4a";
|
thirdColor = "#382c4a";
|
||||||
fourthColor = "#120e18";
|
fourthColor = "#120e18";
|
||||||
in {
|
in {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
@ -93,10 +96,10 @@
|
||||||
enable = true;
|
enable = true;
|
||||||
enableCompletion = true;
|
enableCompletion = true;
|
||||||
|
|
||||||
historyFile = "\$HOME/.cache/.bash_history";
|
historyFile = "\$HOME/.cache/.bash_history";
|
||||||
historyFileSize = 100000; # default
|
historyFileSize = 100000; # default
|
||||||
historySize = 10000; # default
|
historySize = 10000; # default
|
||||||
historyControl = [
|
historyControl = [
|
||||||
"erasedups"
|
"erasedups"
|
||||||
"ignorespace"
|
"ignorespace"
|
||||||
];
|
];
|
||||||
|
@ -119,29 +122,29 @@
|
||||||
];
|
];
|
||||||
|
|
||||||
shellAliases = {
|
shellAliases = {
|
||||||
sudo = "sudo ";
|
sudo = "sudo ";
|
||||||
frick = "sudo $(fc -ln -1)";
|
frick = "sudo $(fc -ln -1)";
|
||||||
|
|
||||||
nivm = "nvim";
|
nivm = "nvim";
|
||||||
nivim = "nvim";
|
nivim = "nvim";
|
||||||
|
|
||||||
tmux = "tmux -2";
|
tmux = "tmux -2";
|
||||||
ls = "ls -lah --color=auto";
|
ls = "ls -lah --color=auto";
|
||||||
tree = "tree -a -I node_modules";
|
tree = "tree -a -I node_modules";
|
||||||
cp = "cp -r";
|
cp = "cp -r";
|
||||||
|
|
||||||
chore = "(cd ~/.nix; git add flake.lock; git commit -m 'chore: update flake.lock'; git push)";
|
chore = "(cd ~/.nix; git add flake.lock; git commit -m 'chore: update flake.lock'; git push)";
|
||||||
|
|
||||||
tup = "tailscale up --login-server https://headscale.nelim.org";
|
tup = "tailscale up --login-server https://headscale.nelim.org";
|
||||||
|
|
||||||
pc = "mosh matt@binto -- tmux -2u new -At laptop";
|
pc = "mosh matt@binto -- tmux -2u new -At laptop";
|
||||||
oksys = "mosh matt@oksys -- tmux -2u new -At laptop";
|
oksys = "mosh matt@oksys -- tmux -2u new -At laptop";
|
||||||
pve = "mosh matt@pve -- tmux -2u new -At laptop";
|
pve = "mosh matt@pve -- tmux -2u new -At laptop";
|
||||||
|
|
||||||
mc = "mosh mc@mc -- tmux -2u new -At laptop";
|
mc = "mosh mc@mc -- tmux -2u new -At laptop";
|
||||||
pod = "mosh matt@pve -- ssh -t -p 6768 matt@10.0.0.122 'tmux -2u new -At laptop'";
|
pod = "mosh matt@pve -- ssh -t -p 6768 matt@10.0.0.122 'tmux -2u new -At laptop'";
|
||||||
jelly = "mosh matt@pve -- ssh -t matt@10.0.0.123 'tmux -2u new -At laptop'";
|
jelly = "mosh matt@pve -- ssh -t matt@10.0.0.123 'tmux -2u new -At laptop'";
|
||||||
qbit = "mosh matt@pve -- ssh -t matt@10.0.0.128 'tmux -2u new -At laptop'";
|
qbit = "mosh matt@pve -- ssh -t matt@10.0.0.128 'tmux -2u new -At laptop'";
|
||||||
};
|
};
|
||||||
sessionVariables = {
|
sessionVariables = {
|
||||||
# FIXME: why is this not set by home-manager?
|
# FIXME: why is this not set by home-manager?
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ pkgs, ... }: {
|
{pkgs, ...}: {
|
||||||
programs = {
|
programs = {
|
||||||
fzf = {
|
fzf = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
{ pkgs, ... }: {
|
{pkgs, ...}: {
|
||||||
programs = {
|
programs = {
|
||||||
|
|
||||||
git = {
|
git = {
|
||||||
enable = true;
|
enable = true;
|
||||||
lfs.enable = true;
|
lfs.enable = true;
|
||||||
|
@ -9,7 +8,7 @@
|
||||||
userEmail = "matt@nelim.org";
|
userEmail = "matt@nelim.org";
|
||||||
|
|
||||||
includes = [
|
includes = [
|
||||||
{ path = "${pkgs.dracula-theme}/git-colors"; }
|
{path = "${pkgs.dracula-theme}/git-colors";}
|
||||||
];
|
];
|
||||||
|
|
||||||
delta = {
|
delta = {
|
||||||
|
@ -24,11 +23,11 @@
|
||||||
extraConfig.pager = let
|
extraConfig.pager = let
|
||||||
cmd = "LESS='LRc --mouse' ${pkgs.delta}/bin/delta";
|
cmd = "LESS='LRc --mouse' ${pkgs.delta}/bin/delta";
|
||||||
in {
|
in {
|
||||||
diff = cmd;
|
diff = cmd;
|
||||||
show = cmd;
|
show = cmd;
|
||||||
stash = cmd;
|
stash = cmd;
|
||||||
log = cmd;
|
log = cmd;
|
||||||
reflog = cmd;
|
reflog = cmd;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
2
common/home/neovim/base.lua
Normal file
2
common/home/neovim/base.lua
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
-- Add `:Format` command to format current buffer
|
||||||
|
vim.api.nvim_create_user_command("Format", "call CocAction('format')", {})
|
|
@ -1,28 +1,32 @@
|
||||||
{ pkgs, lib, ... }: let
|
{
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
# installs a vim plugin from git with a given tag / branch
|
# installs a vim plugin from git with a given tag / branch
|
||||||
plugin = owner: repo: rev: hash: pkgs.vimUtils.buildVimPlugin {
|
plugin = owner: repo: rev: hash:
|
||||||
pname = "${lib.strings.sanitizeDerivationName repo}";
|
pkgs.vimUtils.buildVimPlugin {
|
||||||
version = rev;
|
pname = "${lib.strings.sanitizeDerivationName repo}";
|
||||||
src = pkgs.fetchFromGitHub {
|
version = rev;
|
||||||
inherit rev owner repo hash;
|
src = pkgs.fetchFromGitHub {
|
||||||
|
inherit rev owner repo hash;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
|
||||||
fileContents = lib.strings.fileContents;
|
fileContents = lib.strings.fileContents;
|
||||||
in {
|
in {
|
||||||
# TODO: make a gradle module and have java in device-vars.nix
|
# TODO: make a gradle module and have java in device-vars.nix
|
||||||
xdg.dataFile = {
|
xdg.dataFile = {
|
||||||
".gradle/gradle.properties".source =
|
".gradle/gradle.properties".source = pkgs.writeText "gradle.properties" ''
|
||||||
pkgs.writeText "gradle.properties" ''
|
org.gradle.java.home = ${pkgs.temurin-bin-17}
|
||||||
org.gradle.java.home = ${pkgs.temurin-bin-17}
|
'';
|
||||||
'';
|
|
||||||
};
|
};
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
gradle
|
gradle
|
||||||
gradle-completion # FIXME: not working
|
gradle-completion # FIXME: not working
|
||||||
|
alejandra
|
||||||
];
|
];
|
||||||
|
|
||||||
programs = {
|
programs = {
|
||||||
|
|
||||||
java = {
|
java = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.temurin-bin-17;
|
package = pkgs.temurin-bin-17;
|
||||||
|
@ -95,8 +99,13 @@ in {
|
||||||
languageserver = {
|
languageserver = {
|
||||||
nix = {
|
nix = {
|
||||||
command = "nil";
|
command = "nil";
|
||||||
filetypes = [ "nix" ];
|
filetypes = ["nix"];
|
||||||
rootPatterns = [ "flake.nix" ];
|
rootPatterns = ["flake.nix"];
|
||||||
|
settings = {
|
||||||
|
nil = {
|
||||||
|
formatting = {command = ["alejandra"];};
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -107,6 +116,7 @@ in {
|
||||||
};
|
};
|
||||||
|
|
||||||
extraConfig = fileContents ./base.vim;
|
extraConfig = fileContents ./base.vim;
|
||||||
|
extraLuaConfig = fileContents ./base.lua;
|
||||||
|
|
||||||
plugins = with pkgs.vimPlugins; [
|
plugins = with pkgs.vimPlugins; [
|
||||||
# Coc configured
|
# Coc configured
|
||||||
|
@ -173,9 +183,10 @@ in {
|
||||||
config = fileContents ./plugins/treesitter.vim;
|
config = fileContents ./plugins/treesitter.vim;
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
plugin = (plugin "lukas-reineke" "indent-blankline.nvim"
|
plugin =
|
||||||
"046e2cf04e08ece927bacbfb87c5b35c0b636546"
|
plugin "lukas-reineke" "indent-blankline.nvim"
|
||||||
"sha256-bhoep8aTYje5K/dZ/XmpwBPn4PBEMPrmw33QJdfFe6M=");
|
"046e2cf04e08ece927bacbfb87c5b35c0b636546"
|
||||||
|
"sha256-bhoep8aTYje5K/dZ/XmpwBPn4PBEMPrmw33QJdfFe6M=";
|
||||||
type = "lua";
|
type = "lua";
|
||||||
config = fileContents ./plugins/indent.lua;
|
config = fileContents ./plugins/indent.lua;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ pkgs, ... }: {
|
{pkgs, ...}: {
|
||||||
programs = {
|
programs = {
|
||||||
tmux = {
|
tmux = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
|
@ -1,25 +1,27 @@
|
||||||
{ pkgs, ... }: {
|
{pkgs, ...}: {
|
||||||
fonts = {
|
fonts = {
|
||||||
fontconfig = {
|
fontconfig = {
|
||||||
enable = true;
|
enable = true;
|
||||||
defaultFonts = {
|
defaultFonts = {
|
||||||
emoji = [ "Noto Color Emoji" ];
|
emoji = ["Noto Color Emoji"];
|
||||||
monospace = [ "Noto Nerd Font" ];
|
monospace = ["Noto Nerd Font"];
|
||||||
sansSerif = [ "Noto Nerd Font" ];
|
sansSerif = ["Noto Nerd Font"];
|
||||||
serif = [ "Noto Nerd Font" ];
|
serif = ["Noto Nerd Font"];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
packages = with pkgs; [
|
packages = with pkgs; [
|
||||||
(nerdfonts.override { fonts = [
|
(nerdfonts.override {
|
||||||
"JetBrainsMono"
|
fonts = [
|
||||||
"Go-Mono"
|
"JetBrainsMono"
|
||||||
"Iosevka"
|
"Go-Mono"
|
||||||
"NerdFontsSymbolsOnly"
|
"Iosevka"
|
||||||
"SpaceMono"
|
"NerdFontsSymbolsOnly"
|
||||||
"Ubuntu"
|
"SpaceMono"
|
||||||
"Noto"
|
"Ubuntu"
|
||||||
]; })
|
"Noto"
|
||||||
|
];
|
||||||
|
})
|
||||||
noto-fonts
|
noto-fonts
|
||||||
noto-fonts-cjk
|
noto-fonts-cjk
|
||||||
noto-fonts-emoji
|
noto-fonts-emoji
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
{ pkgs, ... }: {
|
{pkgs, ...}: {
|
||||||
services = {
|
services = {
|
||||||
|
|
||||||
fwupd.enable = true;
|
fwupd.enable = true;
|
||||||
upower.enable = true;
|
upower.enable = true;
|
||||||
|
|
||||||
|
|
|
@ -1,10 +1,14 @@
|
||||||
final: prev: {
|
final: prev: {
|
||||||
blueberry = prev.blueberry.overrideAttrs (o: {
|
blueberry = prev.blueberry.overrideAttrs (o: {
|
||||||
patches = (o.patches or [ ]) ++ [
|
patches =
|
||||||
./patches/wayland.patch
|
(o.patches or [])
|
||||||
];
|
++ [
|
||||||
buildInputs = (o.buildInputs or [ ]) ++ [
|
./patches/wayland.patch
|
||||||
prev.libappindicator
|
];
|
||||||
];
|
buildInputs =
|
||||||
|
(o.buildInputs or [])
|
||||||
|
++ [
|
||||||
|
prev.libappindicator
|
||||||
|
];
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ neovim-flake, ... }: {
|
{neovim-flake, ...}: {
|
||||||
imports = [
|
imports = [
|
||||||
./dracula-theme.nix
|
./dracula-theme.nix
|
||||||
./regreet.nix
|
./regreet.nix
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ pkgs, ... }: let
|
{pkgs, ...}: let
|
||||||
plymouth = pkgs.fetchFromGitHub {
|
plymouth = pkgs.fetchFromGitHub {
|
||||||
owner = "dracula";
|
owner = "dracula";
|
||||||
repo = "plymouth";
|
repo = "plymouth";
|
||||||
|
@ -27,74 +27,75 @@
|
||||||
hash = "sha256-f9FwSOSvqTeDj4bOjYUQ6TM+/carCD9o5dhg/MnP/lk=";
|
hash = "sha256-f9FwSOSvqTeDj4bOjYUQ6TM+/carCD9o5dhg/MnP/lk=";
|
||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
nixpkgs.overlays = [ (final: prev: {
|
nixpkgs.overlays = [
|
||||||
dracula-theme = prev.dracula-theme.overrideAttrs (oldAttrs: rec {
|
(final: prev: {
|
||||||
|
dracula-theme = prev.dracula-theme.overrideAttrs (oldAttrs: rec {
|
||||||
|
src = prev.fetchFromGitHub {
|
||||||
|
owner = "dracula";
|
||||||
|
repo = "gtk";
|
||||||
|
rev = "84dd7a3021938ceec8a0ee292a8561f8a6d47ebe";
|
||||||
|
hash = "sha256-xHf+f0RGMtbprJX+3c0cmp5LKkf0V7BHKcoiAW60du8=";
|
||||||
|
};
|
||||||
|
|
||||||
src = prev.fetchFromGitHub {
|
installPhase = ''
|
||||||
owner = "dracula";
|
runHook preInstall
|
||||||
repo = "gtk";
|
|
||||||
rev = "84dd7a3021938ceec8a0ee292a8561f8a6d47ebe";
|
|
||||||
hash = "sha256-xHf+f0RGMtbprJX+3c0cmp5LKkf0V7BHKcoiAW60du8=";
|
|
||||||
};
|
|
||||||
|
|
||||||
installPhase = ''
|
# Git colors
|
||||||
runHook preInstall
|
cp -a ${git-colors}/config/gitconfig ./git-colors
|
||||||
|
chmod 777 ./git-colors
|
||||||
|
|
||||||
# Git colors
|
line=$(grep -n 'Dracula Dark Theme' ./git-colors | cut -d: -f1)
|
||||||
cp -a ${git-colors}/config/gitconfig ./git-colors
|
sed -i "1,$((line-1))d" ./git-colors
|
||||||
chmod 777 ./git-colors
|
|
||||||
|
|
||||||
line=$(grep -n 'Dracula Dark Theme' ./git-colors | cut -d: -f1)
|
mkdir -p $out
|
||||||
sed -i "1,$((line-1))d" ./git-colors
|
cp -a ./git-colors $out
|
||||||
|
|
||||||
mkdir -p $out
|
# Bat colors
|
||||||
cp -a ./git-colors $out
|
mkdir -p ./bat $out/bat
|
||||||
|
cp -a ${bat-theme}/Dracula.tmTheme ./bat/dracula-bat.tmTheme
|
||||||
|
chmod 777 ./bat/dracula-bat.tmTheme
|
||||||
|
|
||||||
# Bat colors
|
cp -a ./bat/dracula-bat.tmTheme $out/bat
|
||||||
mkdir -p ./bat $out/bat
|
|
||||||
cp -a ${bat-theme}/Dracula.tmTheme ./bat/dracula-bat.tmTheme
|
|
||||||
chmod 777 ./bat/dracula-bat.tmTheme
|
|
||||||
|
|
||||||
cp -a ./bat/dracula-bat.tmTheme $out/bat
|
# Plymouth
|
||||||
|
cp -a ${plymouth}/dracula ./dracula
|
||||||
|
chmod 777 ./dracula
|
||||||
|
|
||||||
# Plymouth
|
rm ./dracula/dracula.script
|
||||||
cp -a ${plymouth}/dracula ./dracula
|
cp -a ${dracula-script} ./dracula/dracula.script
|
||||||
chmod 777 ./dracula
|
|
||||||
|
|
||||||
rm ./dracula/dracula.script
|
sed -i "s@\/usr\/@$out\/@" ./dracula/dracula.plymouth
|
||||||
cp -a ${dracula-script} ./dracula/dracula.script
|
|
||||||
|
|
||||||
sed -i "s@\/usr\/@$out\/@" ./dracula/dracula.plymouth
|
mkdir -p $out/share/plymouth/themes
|
||||||
|
cp -a ./dracula $out/share/plymouth/themes/
|
||||||
|
|
||||||
mkdir -p $out/share/plymouth/themes
|
# Wallpapers
|
||||||
cp -a ./dracula $out/share/plymouth/themes/
|
cp -a ${wallpaper} ./waves.png
|
||||||
|
|
||||||
# Wallpapers
|
mkdir -p $out/wallpapers
|
||||||
cp -a ${wallpaper} ./waves.png
|
cp -a ./waves.png $out/wallpapers/
|
||||||
|
|
||||||
mkdir -p $out/wallpapers
|
|
||||||
cp -a ./waves.png $out/wallpapers/
|
|
||||||
|
|
||||||
|
|
||||||
# -------------------------------------------
|
# -------------------------------------------
|
||||||
mkdir -p $out/share/themes/Dracula
|
mkdir -p $out/share/themes/Dracula
|
||||||
cp -a {assets,cinnamon,gnome-shell,gtk-2.0,gtk-3.0,gtk-3.20,gtk-4.0,index.theme,metacity-1,unity,xfwm4} $out/share/themes/Dracula
|
cp -a {assets,cinnamon,gnome-shell,gtk-2.0,gtk-3.0,gtk-3.20,gtk-4.0,index.theme,metacity-1,unity,xfwm4} $out/share/themes/Dracula
|
||||||
|
|
||||||
cp -a kde/{color-schemes,plasma} $out/share/
|
cp -a kde/{color-schemes,plasma} $out/share/
|
||||||
cp -a kde/kvantum $out/share/Kvantum
|
cp -a kde/kvantum $out/share/Kvantum
|
||||||
|
|
||||||
mkdir -p $out/share/aurorae/themes
|
mkdir -p $out/share/aurorae/themes
|
||||||
cp -a kde/aurorae/* $out/share/aurorae/themes/
|
cp -a kde/aurorae/* $out/share/aurorae/themes/
|
||||||
|
|
||||||
mkdir -p $out/share/sddm/themes
|
mkdir -p $out/share/sddm/themes
|
||||||
cp -a kde/sddm/* $out/share/sddm/themes/
|
cp -a kde/sddm/* $out/share/sddm/themes/
|
||||||
|
|
||||||
mkdir -p $out/share/icons/Dracula-cursors
|
mkdir -p $out/share/icons/Dracula-cursors
|
||||||
mv kde/cursors/Dracula-cursors/index.theme $out/share/icons/Dracula-cursors/cursor.theme
|
mv kde/cursors/Dracula-cursors/index.theme $out/share/icons/Dracula-cursors/cursor.theme
|
||||||
mv kde/cursors/Dracula-cursors/cursors $out/share/icons/Dracula-cursors/cursors
|
mv kde/cursors/Dracula-cursors/cursors $out/share/icons/Dracula-cursors/cursors
|
||||||
|
|
||||||
runHook postInstall
|
runHook postInstall
|
||||||
'';
|
'';
|
||||||
});
|
});
|
||||||
}) ];
|
})
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,12 +1,11 @@
|
||||||
{ python3Packages }:
|
{python3Packages}:
|
||||||
|
|
||||||
python3Packages.buildPythonPackage rec {
|
python3Packages.buildPythonPackage rec {
|
||||||
pname = "coloryou";
|
pname = "coloryou";
|
||||||
version = "0.0.1";
|
version = "0.0.1";
|
||||||
|
|
||||||
src = ./.;
|
src = ./.;
|
||||||
|
|
||||||
propagatedBuildInputs = with python3Packages; [ utils material-color-utilities ];
|
propagatedBuildInputs = with python3Packages; [utils material-color-utilities];
|
||||||
|
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
mv -v $out/bin/coloryou.py $out/bin/coloryou
|
mv -v $out/bin/coloryou.py $out/bin/coloryou
|
||||||
|
|
|
@ -1,8 +1,7 @@
|
||||||
with import <nixpkgs> {};
|
with import <nixpkgs> {};
|
||||||
with pkgs.python311Packages;
|
with pkgs.python311Packages;
|
||||||
|
buildPythonPackage rec {
|
||||||
buildPythonPackage rec {
|
name = "coloryou";
|
||||||
name = "coloryou";
|
src = ./.;
|
||||||
src = ./.;
|
propagatedBuildInputs = [material-color-utilities utils];
|
||||||
propagatedBuildInputs = [ material-color-utilities utils ];
|
}
|
||||||
}
|
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
{ stdenv
|
{
|
||||||
, meson
|
stdenv,
|
||||||
, ninja
|
meson,
|
||||||
, pkg-config
|
ninja,
|
||||||
, cmake
|
pkg-config,
|
||||||
, bash-completion
|
cmake,
|
||||||
, fetchFromGitHub
|
bash-completion,
|
||||||
|
fetchFromGitHub,
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "input-emulator";
|
pname = "input-emulator";
|
||||||
version = "6c35040e6fc4f65ce0519ee76d00d60490bcb987";
|
version = "6c35040e6fc4f65ce0519ee76d00d60490bcb987";
|
||||||
|
|
|
@ -1,17 +1,17 @@
|
||||||
{ stdenv
|
{
|
||||||
, meson
|
stdenv,
|
||||||
, ninja
|
meson,
|
||||||
, pkg-config
|
ninja,
|
||||||
, glib
|
pkg-config,
|
||||||
, libfprint
|
glib,
|
||||||
, polkit
|
libfprint,
|
||||||
, dbus
|
polkit,
|
||||||
, systemd
|
dbus,
|
||||||
, pam
|
systemd,
|
||||||
, libpam-wrapper
|
pam,
|
||||||
, fetchFromGitLab
|
libpam-wrapper,
|
||||||
|
fetchFromGitLab,
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "pam-fprint-grosshack";
|
pname = "pam-fprint-grosshack";
|
||||||
version = "v0.3.0";
|
version = "v0.3.0";
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
# https://github.com/NixOS/nixpkgs/blob/77b27fdb6a9ba01f60b8f5c48038938cf14b7d2f/pkgs/applications/audio/spotifywm/default.nix
|
# https://github.com/NixOS/nixpkgs/blob/77b27fdb6a9ba01f60b8f5c48038938cf14b7d2f/pkgs/applications/audio/spotifywm/default.nix
|
||||||
|
|
||||||
{
|
{
|
||||||
lib,
|
lib,
|
||||||
stdenv,
|
stdenv,
|
||||||
|
@ -8,8 +7,7 @@
|
||||||
makeBinaryWrapper,
|
makeBinaryWrapper,
|
||||||
spotify,
|
spotify,
|
||||||
symlinkJoin,
|
symlinkJoin,
|
||||||
}:
|
}: let
|
||||||
let
|
|
||||||
spotifywm = stdenv.mkDerivation {
|
spotifywm = stdenv.mkDerivation {
|
||||||
pname = "spotifywm";
|
pname = "spotifywm";
|
||||||
version = "unstable-2022-10-25";
|
version = "unstable-2022-10-25";
|
||||||
|
@ -34,31 +32,31 @@ let
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
symlinkJoin {
|
symlinkJoin {
|
||||||
inherit (spotifywm) name;
|
inherit (spotifywm) name;
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
makeBinaryWrapper
|
makeBinaryWrapper
|
||||||
];
|
];
|
||||||
|
|
||||||
paths = [
|
paths = [
|
||||||
spotify
|
spotify
|
||||||
spotifywm
|
spotifywm
|
||||||
];
|
];
|
||||||
|
|
||||||
postBuild = ''
|
postBuild = ''
|
||||||
wrapProgram $out/bin/spotify \
|
wrapProgram $out/bin/spotify \
|
||||||
--suffix LD_PRELOAD : "$out/lib/spotifywm.so"
|
--suffix LD_PRELOAD : "$out/lib/spotifywm.so"
|
||||||
|
|
||||||
ln -sf $out/bin/spotify $out/bin/spotifywm
|
ln -sf $out/bin/spotify $out/bin/spotifywm
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
homepage = "https://github.com/dasJ/spotifywm";
|
homepage = "https://github.com/dasJ/spotifywm";
|
||||||
description = "Wrapper around Spotify that correctly sets class name before opening the window";
|
description = "Wrapper around Spotify that correctly sets class name before opening the window";
|
||||||
license = lib.licenses.mit;
|
license = lib.licenses.mit;
|
||||||
platforms = lib.platforms.linux;
|
platforms = lib.platforms.linux;
|
||||||
maintainers = with lib.maintainers; [ jqueiroz the-argus ];
|
maintainers = with lib.maintainers; [jqueiroz the-argus];
|
||||||
mainProgram = "spotify";
|
mainProgram = "spotify";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ pkgs, ... }: {
|
{pkgs, ...}: {
|
||||||
programs.regreet = {
|
programs.regreet = {
|
||||||
package = pkgs.greetd.regreet.overrideAttrs (self: super: rec {
|
package = pkgs.greetd.regreet.overrideAttrs (self: super: rec {
|
||||||
version = "0.1.1-patched";
|
version = "0.1.1-patched";
|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
final: prev: {
|
final: prev: {
|
||||||
squeekboard = prev.squeekboard.overrideAttrs (o: {
|
squeekboard = prev.squeekboard.overrideAttrs (o: {
|
||||||
patches = (o.patches or [ ]) ++ [
|
patches =
|
||||||
./patches/remove-panel.patch
|
(o.patches or [])
|
||||||
];
|
++ [
|
||||||
|
./patches/remove-panel.patch
|
||||||
|
];
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ ... }: {
|
{...}: {
|
||||||
imports = [
|
imports = [
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
|
|
||||||
|
@ -32,7 +32,6 @@
|
||||||
};
|
};
|
||||||
home-manager.users = {
|
home-manager.users = {
|
||||||
matt = {
|
matt = {
|
||||||
|
|
||||||
imports = [
|
imports = [
|
||||||
../../home/alacritty.nix
|
../../home/alacritty.nix
|
||||||
../../home/dconf.nix
|
../../home/dconf.nix
|
||||||
|
|
|
@ -1,21 +1,27 @@
|
||||||
{ config, lib, modulesPath, pkgs, ... }: {
|
{
|
||||||
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
|
config,
|
||||||
|
lib,
|
||||||
|
modulesPath,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
imports = [(modulesPath + "/installer/scan/not-detected.nix")];
|
||||||
|
|
||||||
boot = {
|
boot = {
|
||||||
kernelPackages = pkgs.linuxPackages_xanmod_latest;
|
kernelPackages = pkgs.linuxPackages_xanmod_latest;
|
||||||
kernelModules = [ "kvm-amd" ];
|
kernelModules = ["kvm-amd"];
|
||||||
extraModulePackages = with config.boot.kernelPackages; [
|
extraModulePackages = with config.boot.kernelPackages; [
|
||||||
v4l2loopback
|
v4l2loopback
|
||||||
];
|
];
|
||||||
|
|
||||||
supportedFilesystems = [ "ntfs" ];
|
supportedFilesystems = ["ntfs"];
|
||||||
|
|
||||||
consoleLogLevel = 0;
|
consoleLogLevel = 0;
|
||||||
|
|
||||||
initrd = {
|
initrd = {
|
||||||
verbose = false;
|
verbose = false;
|
||||||
systemd.enable = true;
|
systemd.enable = true;
|
||||||
availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ];
|
availableKernelModules = ["nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod"];
|
||||||
};
|
};
|
||||||
|
|
||||||
loader = {
|
loader = {
|
||||||
|
@ -35,10 +41,10 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
fileSystems = {
|
fileSystems = {
|
||||||
"/" ={
|
"/" = {
|
||||||
device = "/dev/disk/by-uuid/560976b6-85e0-44ca-bb73-e15a78e9c449";
|
device = "/dev/disk/by-uuid/560976b6-85e0-44ca-bb73-e15a78e9c449";
|
||||||
fsType = "btrfs";
|
fsType = "btrfs";
|
||||||
options = [ "subvol=@" ];
|
options = ["subvol=@"];
|
||||||
};
|
};
|
||||||
|
|
||||||
"/boot" = {
|
"/boot" = {
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ ... }: {
|
{...}: {
|
||||||
# Disable compositor in X11 for best performance
|
# Disable compositor in X11 for best performance
|
||||||
# TODO: add mic sound
|
# TODO: add mic sound
|
||||||
xdg.configFile."gpu-screen-recorder.env".text = ''
|
xdg.configFile."gpu-screen-recorder.env".text = ''
|
||||||
|
@ -21,7 +21,7 @@
|
||||||
icon = "com.github.iwalton3.jellyfin-media-player";
|
icon = "com.github.iwalton3.jellyfin-media-player";
|
||||||
terminal = false;
|
terminal = false;
|
||||||
type = "Application";
|
type = "Application";
|
||||||
categories = [ "AudioVideo" "Video" "Player" "TV" ];
|
categories = ["AudioVideo" "Video" "Player" "TV"];
|
||||||
settings = {
|
settings = {
|
||||||
Version = "1.0";
|
Version = "1.0";
|
||||||
StartupWMClass = "jellyfin-media-player";
|
StartupWMClass = "jellyfin-media-player";
|
||||||
|
|
|
@ -1,4 +1,8 @@
|
||||||
{ pkgs, lib, ... }: {
|
{
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
programs.dconf.enable = true;
|
programs.dconf.enable = true;
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
|
|
|
@ -1,19 +1,25 @@
|
||||||
{ pkgs, lib, ... }: let
|
{
|
||||||
gsr = (pkgs.gpu-screen-recorder.overrideAttrs (o: {
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
gsr = pkgs.gpu-screen-recorder.overrideAttrs (o: {
|
||||||
src = pkgs.fetchgit {
|
src = pkgs.fetchgit {
|
||||||
url = "https://repo.dec05eba.com/gpu-screen-recorder";
|
url = "https://repo.dec05eba.com/gpu-screen-recorder";
|
||||||
rev = "1ac862d155e10f050e6f6cca5381f9f5a3528d98";
|
rev = "1ac862d155e10f050e6f6cca5381f9f5a3528d98";
|
||||||
hash = "sha256-wLiBn4VIi+IWY4qVkdFzkHhECTFH97snogVTEwM5yx8=";
|
hash = "sha256-wLiBn4VIi+IWY4qVkdFzkHhECTFH97snogVTEwM5yx8=";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = (o.buildInputs or [ ]) ++ (with pkgs; [
|
buildInputs =
|
||||||
wayland
|
(o.buildInputs or [])
|
||||||
wayland-protocols
|
++ (with pkgs; [
|
||||||
libdrm
|
wayland
|
||||||
libva
|
wayland-protocols
|
||||||
xorg.libXrandr
|
libdrm
|
||||||
libglvnd
|
libva
|
||||||
]);
|
xorg.libXrandr
|
||||||
|
libglvnd
|
||||||
|
]);
|
||||||
|
|
||||||
postPatch = "";
|
postPatch = "";
|
||||||
|
|
||||||
|
@ -30,7 +36,7 @@
|
||||||
pkgs.libglvnd
|
pkgs.libglvnd
|
||||||
]}"
|
]}"
|
||||||
'';
|
'';
|
||||||
}));
|
});
|
||||||
in {
|
in {
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
pulseaudio # for getting audio sink
|
pulseaudio # for getting audio sink
|
||||||
|
|
|
@ -1,4 +1,8 @@
|
||||||
{ nix-gaming, pkgs, ... }: {
|
{
|
||||||
|
nix-gaming,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
imports = [
|
imports = [
|
||||||
nix-gaming.nixosModules.steamCompat
|
nix-gaming.nixosModules.steamCompat
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
{ config, ... }:
|
{config, ...}: {
|
||||||
{
|
|
||||||
# Enable OpenGL
|
# Enable OpenGL
|
||||||
hardware.opengl = {
|
hardware.opengl = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
@ -11,7 +10,6 @@
|
||||||
services.xserver.videoDrivers = ["nvidia"];
|
services.xserver.videoDrivers = ["nvidia"];
|
||||||
|
|
||||||
hardware.nvidia = {
|
hardware.nvidia = {
|
||||||
|
|
||||||
# Modesetting is required.
|
# Modesetting is required.
|
||||||
modesetting.enable = true;
|
modesetting.enable = true;
|
||||||
|
|
||||||
|
@ -23,15 +21,15 @@
|
||||||
|
|
||||||
# Use the NVidia open source kernel module (not to be confused with the
|
# Use the NVidia open source kernel module (not to be confused with the
|
||||||
# independent third-party "nouveau" open source driver).
|
# independent third-party "nouveau" open source driver).
|
||||||
# Support is limited to the Turing and later architectures. Full list of
|
# Support is limited to the Turing and later architectures. Full list of
|
||||||
# supported GPUs is at:
|
# supported GPUs is at:
|
||||||
# https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus
|
# https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus
|
||||||
# Only available from driver 515.43.04+
|
# Only available from driver 515.43.04+
|
||||||
# Do not disable this unless your GPU is unsupported or if you have a good reason to.
|
# Do not disable this unless your GPU is unsupported or if you have a good reason to.
|
||||||
open = true;
|
open = true;
|
||||||
|
|
||||||
# Enable the Nvidia settings menu,
|
# Enable the Nvidia settings menu,
|
||||||
# accessible via `nvidia-settings`.
|
# accessible via `nvidia-settings`.
|
||||||
nvidiaSettings = true;
|
nvidiaSettings = true;
|
||||||
|
|
||||||
# Optionally, you may need to select the appropriate driver version for your specific GPU.
|
# Optionally, you may need to select the appropriate driver version for your specific GPU.
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ ... }: {
|
{...}: {
|
||||||
imports = [
|
imports = [
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
|
|
||||||
|
|
|
@ -1,10 +1,15 @@
|
||||||
{ config, modulesPath, pkgs, ... }: {
|
{
|
||||||
|
config,
|
||||||
|
modulesPath,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
nixpkgs.hostPlatform = "x86_64-linux";
|
nixpkgs.hostPlatform = "x86_64-linux";
|
||||||
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
|
imports = [(modulesPath + "/installer/scan/not-detected.nix")];
|
||||||
|
|
||||||
boot = {
|
boot = {
|
||||||
kernelPackages = pkgs.linuxPackages_latest;
|
kernelPackages = pkgs.linuxPackages_latest;
|
||||||
kernelModules = [ "kvm-amd" ];
|
kernelModules = ["kvm-amd"];
|
||||||
extraModulePackages = with config.boot.kernelPackages; [
|
extraModulePackages = with config.boot.kernelPackages; [
|
||||||
v4l2loopback
|
v4l2loopback
|
||||||
];
|
];
|
||||||
|
@ -19,7 +24,7 @@
|
||||||
initrd = {
|
initrd = {
|
||||||
verbose = false;
|
verbose = false;
|
||||||
systemd.enable = true;
|
systemd.enable = true;
|
||||||
availableKernelModules = [ "nvme" "xhci_pci" "usb_storage" "sd_mod" ];
|
availableKernelModules = ["nvme" "xhci_pci" "usb_storage" "sd_mod"];
|
||||||
|
|
||||||
luks.devices."root" = {
|
luks.devices."root" = {
|
||||||
device = "/dev/disk/by-uuid/ab82b477-2477-453f-b95f-28e5553ad10d";
|
device = "/dev/disk/by-uuid/ab82b477-2477-453f-b95f-28e5553ad10d";
|
||||||
|
|
|
@ -1,23 +1,26 @@
|
||||||
{ config, pkgs, ... }: let
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
configDir = config.services.device-vars.configDir;
|
configDir = config.services.device-vars.configDir;
|
||||||
symlink = config.lib.file.mkOutOfStoreSymlink;
|
symlink = config.lib.file.mkOutOfStoreSymlink;
|
||||||
in
|
in {
|
||||||
{
|
|
||||||
xdg.configFile = {
|
xdg.configFile = {
|
||||||
"gtklock/config.ini".source = pkgs.writeText "config.ini" ''
|
"gtklock/config.ini".source = pkgs.writeText "config.ini" ''
|
||||||
[main]
|
[main]
|
||||||
modules=${builtins.concatStringsSep ";" [
|
modules=${builtins.concatStringsSep ";" [
|
||||||
"${pkgs.gtklock-powerbar-module}/lib/gtklock/powerbar-module.so"
|
"${pkgs.gtklock-powerbar-module}/lib/gtklock/powerbar-module.so"
|
||||||
"${pkgs.gtklock-playerctl-module}/lib/gtklock/playerctl-module.so"
|
"${pkgs.gtklock-playerctl-module}/lib/gtklock/playerctl-module.so"
|
||||||
]}
|
]}
|
||||||
'';
|
'';
|
||||||
"gtklock/style.css".source = symlink "${configDir}/gtklock/style.css";
|
"gtklock/style.css".source = symlink "${configDir}/gtklock/style.css";
|
||||||
|
|
||||||
"dolphinrc".source = symlink "${configDir}/dolphinrc";
|
"dolphinrc".source = symlink "${configDir}/dolphinrc";
|
||||||
"kdeglobals".source = symlink "${configDir}/kdeglobals";
|
"kdeglobals".source = symlink "${configDir}/kdeglobals";
|
||||||
"kiorc".source = symlink "${configDir}/kiorc";
|
"kiorc".source = symlink "${configDir}/kiorc";
|
||||||
"mimeapps.list".source = symlink "${configDir}/mimeapps.list";
|
"mimeapps.list".source = symlink "${configDir}/mimeapps.list";
|
||||||
"neofetch".source = symlink "${configDir}/neofetch";
|
"neofetch".source = symlink "${configDir}/neofetch";
|
||||||
"swappy".source = symlink "${configDir}/swappy";
|
"swappy".source = symlink "${configDir}/swappy";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,12 @@
|
||||||
{ pkgs, config, hyprland, hyprgrass, ags, osConfig, ... }: let
|
{
|
||||||
|
pkgs,
|
||||||
|
config,
|
||||||
|
hyprland,
|
||||||
|
hyprgrass,
|
||||||
|
ags,
|
||||||
|
osConfig,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
configDir = config.services.device-vars.configDir;
|
configDir = config.services.device-vars.configDir;
|
||||||
symlink = config.lib.file.mkOutOfStoreSymlink;
|
symlink = config.lib.file.mkOutOfStoreSymlink;
|
||||||
|
|
||||||
|
@ -13,7 +21,7 @@ in {
|
||||||
enable = true;
|
enable = true;
|
||||||
configDir = symlink "${configDir}/ags";
|
configDir = symlink "${configDir}/ags";
|
||||||
package = ags.packages.x86_64-linux.default;
|
package = ags.packages.x86_64-linux.default;
|
||||||
extraPackages = [ pkgs.libgudev ];
|
extraPackages = [pkgs.libgudev];
|
||||||
};
|
};
|
||||||
|
|
||||||
wayland.windowManager.hyprland = {
|
wayland.windowManager.hyprland = {
|
||||||
|
@ -43,7 +51,7 @@ in {
|
||||||
"swww init --no-cache && swww img -t none ${pkgs.dracula-theme}/wallpapers/waves.png"
|
"swww init --no-cache && swww img -t none ${pkgs.dracula-theme}/wallpapers/waves.png"
|
||||||
];
|
];
|
||||||
|
|
||||||
source = [ "~/.config/hypr/main.conf" ];
|
source = ["~/.config/hypr/main.conf"];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -68,7 +76,6 @@ in {
|
||||||
networkmanagerapplet # TODO: replace with ags widget
|
networkmanagerapplet # TODO: replace with ags widget
|
||||||
blueberry # TODO: replace with ags widget
|
blueberry # TODO: replace with ags widget
|
||||||
|
|
||||||
|
|
||||||
# Hyprland
|
# Hyprland
|
||||||
swww
|
swww
|
||||||
swayidle
|
swayidle
|
||||||
|
|
|
@ -1,8 +1,11 @@
|
||||||
{ pkgs, nixpkgs-wayland, ... }: let
|
{
|
||||||
|
pkgs,
|
||||||
|
nixpkgs-wayland,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
waypkgs = nixpkgs-wayland.packages.x86_64-linux;
|
waypkgs = nixpkgs-wayland.packages.x86_64-linux;
|
||||||
in {
|
in {
|
||||||
programs = {
|
programs = {
|
||||||
|
|
||||||
obs-studio = {
|
obs-studio = {
|
||||||
enable = true;
|
enable = true;
|
||||||
plugins = with waypkgs; [
|
plugins = with waypkgs; [
|
||||||
|
@ -13,76 +16,74 @@ in {
|
||||||
btop.enable = true;
|
btop.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
home.packages = (with pkgs.python311Packages; [
|
home.packages =
|
||||||
python
|
(with pkgs.python311Packages; [
|
||||||
pyclip
|
python
|
||||||
]) ++
|
pyclip
|
||||||
|
])
|
||||||
|
++ (with pkgs.plasma5Packages; [
|
||||||
|
polkit-kde-agent
|
||||||
|
ark
|
||||||
|
kcharselect
|
||||||
|
kdenlive
|
||||||
|
okular
|
||||||
|
|
||||||
(with pkgs.plasma5Packages; [
|
# Dolphin & co
|
||||||
polkit-kde-agent
|
dolphin
|
||||||
ark
|
dolphin-plugins
|
||||||
kcharselect
|
kdegraphics-thumbnailers
|
||||||
kdenlive
|
ffmpegthumbs
|
||||||
okular
|
kio
|
||||||
|
kio-admin # needs to be both here and in system pkgs
|
||||||
|
kio-extras
|
||||||
|
kmime
|
||||||
|
])
|
||||||
|
++ (with pkgs.gnome; [
|
||||||
|
gnome-calculator
|
||||||
|
seahorse
|
||||||
|
])
|
||||||
|
++ (with pkgs; [
|
||||||
|
# School
|
||||||
|
virt-manager
|
||||||
|
bluej
|
||||||
|
#camunda-modeler
|
||||||
|
|
||||||
# Dolphin & co
|
# Misc Apps
|
||||||
dolphin
|
thunderbird # TODO: use programs.thunderbird
|
||||||
dolphin-plugins
|
spotifywm
|
||||||
kdegraphics-thumbnailers
|
zeal
|
||||||
ffmpegthumbs
|
libreoffice-fresh # TODO: add spelling stuff and declarative conf?
|
||||||
kio
|
photoqt
|
||||||
kio-admin # needs to be both here and in system pkgs
|
gimp-with-plugins # TODO: set plugins using nix
|
||||||
kio-extras
|
vlc
|
||||||
kmime
|
nextcloud-client
|
||||||
]) ++
|
jellyfin-media-player
|
||||||
|
xournalpp
|
||||||
|
(pkgs.discord.override {
|
||||||
|
withOpenASAR = true;
|
||||||
|
withVencord = true;
|
||||||
|
})
|
||||||
|
prismlauncher-qt5
|
||||||
|
|
||||||
(with pkgs.gnome; [
|
# Misc CLI
|
||||||
gnome-calculator
|
acpi
|
||||||
seahorse
|
alsa-utils
|
||||||
]) ++
|
fontfor
|
||||||
|
|
||||||
(with pkgs; [
|
(writeShellScriptBin "Gparted" ''
|
||||||
# School
|
(
|
||||||
virt-manager
|
sleep 1.5
|
||||||
bluej
|
while killall -r -0 ksshaskpass > /dev/null 2>&1
|
||||||
#camunda-modeler
|
do
|
||||||
|
sleep 0.1
|
||||||
# Misc Apps
|
if [[ $(hyprctl activewindow | grep Ksshaskpass) == "" ]]; then
|
||||||
thunderbird # TODO: use programs.thunderbird
|
killall -r ksshaskpass
|
||||||
spotifywm
|
fi
|
||||||
zeal
|
done
|
||||||
libreoffice-fresh # TODO: add spelling stuff and declarative conf?
|
) &
|
||||||
photoqt
|
exec env SUDO_ASKPASS=${pkgs.plasma5Packages.ksshaskpass}/bin/${pkgs.plasma5Packages.ksshaskpass.pname} sudo -k -EA "${gparted}/bin/${gparted.pname}" "$@"
|
||||||
gimp-with-plugins # TODO: set plugins using nix
|
'')
|
||||||
vlc
|
]);
|
||||||
nextcloud-client
|
|
||||||
jellyfin-media-player
|
|
||||||
xournalpp
|
|
||||||
(pkgs.discord.override {
|
|
||||||
withOpenASAR = true;
|
|
||||||
withVencord = true;
|
|
||||||
})
|
|
||||||
prismlauncher-qt5
|
|
||||||
|
|
||||||
# Misc CLI
|
|
||||||
acpi
|
|
||||||
alsa-utils
|
|
||||||
fontfor
|
|
||||||
|
|
||||||
(writeShellScriptBin "Gparted" ''
|
|
||||||
(
|
|
||||||
sleep 1.5
|
|
||||||
while killall -r -0 ksshaskpass > /dev/null 2>&1
|
|
||||||
do
|
|
||||||
sleep 0.1
|
|
||||||
if [[ $(hyprctl activewindow | grep Ksshaskpass) == "" ]]; then
|
|
||||||
killall -r ksshaskpass
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
) &
|
|
||||||
exec env SUDO_ASKPASS=${pkgs.plasma5Packages.ksshaskpass}/bin/${pkgs.plasma5Packages.ksshaskpass.pname} sudo -k -EA "${gparted}/bin/${gparted.pname}" "$@"
|
|
||||||
'')
|
|
||||||
]);
|
|
||||||
|
|
||||||
xdg.desktopEntries.gparted = {
|
xdg.desktopEntries.gparted = {
|
||||||
name = "GParted";
|
name = "GParted";
|
||||||
|
@ -92,7 +93,7 @@ in {
|
||||||
icon = "gparted";
|
icon = "gparted";
|
||||||
terminal = false;
|
terminal = false;
|
||||||
type = "Application";
|
type = "Application";
|
||||||
categories = [ "GNOME" "System" "Filesystem" ];
|
categories = ["GNOME" "System" "Filesystem"];
|
||||||
startupNotify = true;
|
startupNotify = true;
|
||||||
settings = {
|
settings = {
|
||||||
Keywords = "Partition";
|
Keywords = "Partition";
|
||||||
|
|
|
@ -1,4 +1,8 @@
|
||||||
{ hyprland, pkgs, ... }: {
|
{
|
||||||
|
hyprland,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
programs.dconf.enable = true;
|
programs.dconf.enable = true;
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
|
|
|
@ -1,11 +1,13 @@
|
||||||
{ pkgs, lib, ... }:
|
|
||||||
|
|
||||||
{
|
{
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
services.fprintd.enable = true;
|
services.fprintd.enable = true;
|
||||||
|
|
||||||
# https://www.reddit.com/r/NixOS/comments/z7i83r/fingertip_tip_start_fprintd_at_boot_for_a_quick/
|
# https://www.reddit.com/r/NixOS/comments/z7i83r/fingertip_tip_start_fprintd_at_boot_for_a_quick/
|
||||||
systemd.services.fprintd = {
|
systemd.services.fprintd = {
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = ["multi-user.target"];
|
||||||
serviceConfig.Type = "simple";
|
serviceConfig.Type = "simple";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -16,11 +18,10 @@
|
||||||
'';
|
'';
|
||||||
|
|
||||||
security.pam.services = {
|
security.pam.services = {
|
||||||
|
|
||||||
gtklock = {};
|
gtklock = {};
|
||||||
|
|
||||||
# all the changes in /etc/pam.d/*
|
# all the changes in /etc/pam.d/*
|
||||||
sddm.text = lib.mkBefore ''
|
sddm.text = lib.mkBefore ''
|
||||||
auth [success=1 new_authtok_reqd=1 default=ignore] pam_unix.so try_first_pass likeauth nullok
|
auth [success=1 new_authtok_reqd=1 default=ignore] pam_unix.so try_first_pass likeauth nullok
|
||||||
auth sufficient ${pkgs.fprintd}/lib/security/pam_fprintd.so
|
auth sufficient ${pkgs.fprintd}/lib/security/pam_fprintd.so
|
||||||
'';
|
'';
|
||||||
|
|
BIN
flake.nix
BIN
flake.nix
Binary file not shown.
|
@ -1,4 +1,4 @@
|
||||||
{ config, ... }: {
|
{config, ...}: {
|
||||||
programs.alacritty = {
|
programs.alacritty = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ ... }: {
|
{...}: {
|
||||||
dconf.settings = {
|
dconf.settings = {
|
||||||
"org/virt-manager/virt-manager/connections" = {
|
"org/virt-manager/virt-manager/connections" = {
|
||||||
autoconnect = ["qemu:///system"];
|
autoconnect = ["qemu:///system"];
|
||||||
|
@ -6,7 +6,7 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
"apps/seahorse/listing" = {
|
"apps/seahorse/listing" = {
|
||||||
keyrings-selected = [ "gnupg://" ];
|
keyrings-selected = ["gnupg://"];
|
||||||
};
|
};
|
||||||
|
|
||||||
"org/gtk/settings/file-chooser" = {
|
"org/gtk/settings/file-chooser" = {
|
||||||
|
|
|
@ -1,16 +1,25 @@
|
||||||
{ fetchurl, lib, stdenv }@args:
|
{
|
||||||
|
fetchurl,
|
||||||
let
|
lib,
|
||||||
|
stdenv,
|
||||||
buildFirefoxXpiAddon = lib.makeOverridable ({ stdenv ? args.stdenv
|
} @ args: let
|
||||||
, fetchurl ? args.fetchurl, pname, version, addonId, url, sha256, meta, ...
|
buildFirefoxXpiAddon = lib.makeOverridable ({
|
||||||
}:
|
stdenv ? args.stdenv,
|
||||||
|
fetchurl ? args.fetchurl,
|
||||||
|
pname,
|
||||||
|
version,
|
||||||
|
addonId,
|
||||||
|
url,
|
||||||
|
sha256,
|
||||||
|
meta,
|
||||||
|
...
|
||||||
|
}:
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
name = "${pname}-${version}";
|
name = "${pname}-${version}";
|
||||||
|
|
||||||
inherit meta;
|
inherit meta;
|
||||||
|
|
||||||
src = fetchurl { inherit url sha256; };
|
src = fetchurl {inherit url sha256;};
|
||||||
|
|
||||||
preferLocalBuild = true;
|
preferLocalBuild = true;
|
||||||
allowSubstitutes = true;
|
allowSubstitutes = true;
|
||||||
|
@ -25,23 +34,25 @@ let
|
||||||
packages = import ./generated-firefox-addons.nix {
|
packages = import ./generated-firefox-addons.nix {
|
||||||
inherit buildFirefoxXpiAddon fetchurl lib stdenv;
|
inherit buildFirefoxXpiAddon fetchurl lib stdenv;
|
||||||
};
|
};
|
||||||
|
in
|
||||||
|
packages
|
||||||
|
// {
|
||||||
|
inherit buildFirefoxXpiAddon;
|
||||||
|
|
||||||
in packages // {
|
seventv = let
|
||||||
inherit buildFirefoxXpiAddon;
|
version = "v3.0.10.1000";
|
||||||
|
in
|
||||||
seventv = let
|
buildFirefoxXpiAddon {
|
||||||
version = "v3.0.10.1000";
|
pname = "seventv";
|
||||||
in buildFirefoxXpiAddon {
|
inherit version;
|
||||||
pname = "seventv";
|
addonId = "moz-addon@7tv.app";
|
||||||
inherit version;
|
url = "https://extension.7tv.gg/${version}/ext.xpi";
|
||||||
addonId = "moz-addon@7tv.app";
|
sha256 = "sha256-dZyjFayvnLebSZHjMTTQFjcsxxpmc1aL5q17mLF3kG8=";
|
||||||
url = "https://extension.7tv.gg/${version}/ext.xpi";
|
meta = with lib; {
|
||||||
sha256 = "sha256-dZyjFayvnLebSZHjMTTQFjcsxxpmc1aL5q17mLF3kG8=";
|
homepage = "https://7tv.app/";
|
||||||
meta = with lib; {
|
description = "The Web Extension for 7TV, bringing new features, emotes, vanity and performance to Twitch, Kick & YouTube";
|
||||||
homepage = "https://7tv.app/";
|
license = licenses.asl20;
|
||||||
description = "The Web Extension for 7TV, bringing new features, emotes, vanity and performance to Twitch, Kick & YouTube";
|
platforms = platforms.all;
|
||||||
license = licenses.asl20;
|
};
|
||||||
platforms = platforms.all;
|
};
|
||||||
};
|
}
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,105 +1,104 @@
|
||||||
{ buildFirefoxXpiAddon, fetchurl, lib, stdenv }:
|
{
|
||||||
{
|
buildFirefoxXpiAddon,
|
||||||
"600-sound-volume" = buildFirefoxXpiAddon {
|
fetchurl,
|
||||||
pname = "600-sound-volume";
|
lib,
|
||||||
version = "1.5.3";
|
stdenv,
|
||||||
addonId = "{c4b582ec-4343-438c-bda2-2f691c16c262}";
|
}: {
|
||||||
url = "https://addons.mozilla.org/firefox/downloads/file/4133303/600_sound_volume-1.5.3.xpi";
|
"600-sound-volume" = buildFirefoxXpiAddon {
|
||||||
sha256 = "7045a812608338f95181459ae3e518bb51c8dc9a724a4083afb687d14075c304";
|
pname = "600-sound-volume";
|
||||||
meta = with lib;
|
version = "1.5.3";
|
||||||
{
|
addonId = "{c4b582ec-4343-438c-bda2-2f691c16c262}";
|
||||||
homepage = "http://resourcefulman.net/";
|
url = "https://addons.mozilla.org/firefox/downloads/file/4133303/600_sound_volume-1.5.3.xpi";
|
||||||
description = "Up to 600% volume boost";
|
sha256 = "7045a812608338f95181459ae3e518bb51c8dc9a724a4083afb687d14075c304";
|
||||||
license = licenses.mpl20;
|
meta = with lib; {
|
||||||
mozPermissions = [ "<all_urls>" "tabs" "activeTab" "storage" ];
|
homepage = "http://resourcefulman.net/";
|
||||||
platforms = platforms.all;
|
description = "Up to 600% volume boost";
|
||||||
};
|
license = licenses.mpl20;
|
||||||
};
|
mozPermissions = ["<all_urls>" "tabs" "activeTab" "storage"];
|
||||||
"checkmarks-web-ext" = buildFirefoxXpiAddon {
|
platforms = platforms.all;
|
||||||
pname = "checkmarks-web-ext";
|
};
|
||||||
version = "1.6.1";
|
};
|
||||||
addonId = "{bd97f89b-17ba-4539-9fec-06852d07f917}";
|
"checkmarks-web-ext" = buildFirefoxXpiAddon {
|
||||||
url = "https://addons.mozilla.org/firefox/downloads/file/3594420/checkmarks_web_ext-1.6.1.xpi";
|
pname = "checkmarks-web-ext";
|
||||||
sha256 = "c3ccf4b302ee96c9b883c4a1f7d26395ab4e276b976cab2d65c9cd898964e4f0";
|
version = "1.6.1";
|
||||||
meta = with lib;
|
addonId = "{bd97f89b-17ba-4539-9fec-06852d07f917}";
|
||||||
{
|
url = "https://addons.mozilla.org/firefox/downloads/file/3594420/checkmarks_web_ext-1.6.1.xpi";
|
||||||
homepage = "https://github.com/tanwald/checkmarks";
|
sha256 = "c3ccf4b302ee96c9b883c4a1f7d26395ab4e276b976cab2d65c9cd898964e4f0";
|
||||||
description = "Checks, sorts, formats bookmarks and loads favicons.";
|
meta = with lib; {
|
||||||
license = licenses.gpl3;
|
homepage = "https://github.com/tanwald/checkmarks";
|
||||||
mozPermissions = [
|
description = "Checks, sorts, formats bookmarks and loads favicons.";
|
||||||
"<all_urls>"
|
license = licenses.gpl3;
|
||||||
"bookmarks"
|
mozPermissions = [
|
||||||
"browsingData"
|
"<all_urls>"
|
||||||
"storage"
|
"bookmarks"
|
||||||
"tabs"
|
"browsingData"
|
||||||
"webNavigation"
|
"storage"
|
||||||
"webRequest"
|
"tabs"
|
||||||
"webRequestBlocking"
|
"webNavigation"
|
||||||
];
|
"webRequest"
|
||||||
platforms = platforms.all;
|
"webRequestBlocking"
|
||||||
};
|
];
|
||||||
};
|
platforms = platforms.all;
|
||||||
"google-container" = buildFirefoxXpiAddon {
|
};
|
||||||
pname = "google-container";
|
};
|
||||||
version = "1.5.4";
|
"google-container" = buildFirefoxXpiAddon {
|
||||||
addonId = "@contain-google";
|
pname = "google-container";
|
||||||
url = "https://addons.mozilla.org/firefox/downloads/file/3736912/google_container-1.5.4.xpi";
|
version = "1.5.4";
|
||||||
sha256 = "47a7c0e85468332a0d949928d8b74376192cde4abaa14280002b3aca4ec814d0";
|
addonId = "@contain-google";
|
||||||
meta = with lib;
|
url = "https://addons.mozilla.org/firefox/downloads/file/3736912/google_container-1.5.4.xpi";
|
||||||
{
|
sha256 = "47a7c0e85468332a0d949928d8b74376192cde4abaa14280002b3aca4ec814d0";
|
||||||
homepage = "https://github.com/containers-everywhere/contain-google";
|
meta = with lib; {
|
||||||
description = "THIS IS NOT AN OFFICIAL ADDON FROM MOZILLA!\nIt is a fork of the Facebook Container addon.\n\nPrevent Google from tracking you around the web. The Google Container extension helps you take control and isolate your web activity from Google.";
|
homepage = "https://github.com/containers-everywhere/contain-google";
|
||||||
license = licenses.mpl20;
|
description = "THIS IS NOT AN OFFICIAL ADDON FROM MOZILLA!\nIt is a fork of the Facebook Container addon.\n\nPrevent Google from tracking you around the web. The Google Container extension helps you take control and isolate your web activity from Google.";
|
||||||
mozPermissions = [
|
license = licenses.mpl20;
|
||||||
"<all_urls>"
|
mozPermissions = [
|
||||||
"contextualIdentities"
|
"<all_urls>"
|
||||||
"cookies"
|
"contextualIdentities"
|
||||||
"management"
|
"cookies"
|
||||||
"tabs"
|
"management"
|
||||||
"webRequestBlocking"
|
"tabs"
|
||||||
"webRequest"
|
"webRequestBlocking"
|
||||||
"storage"
|
"webRequest"
|
||||||
];
|
"storage"
|
||||||
platforms = platforms.all;
|
];
|
||||||
};
|
platforms = platforms.all;
|
||||||
};
|
};
|
||||||
"opera-gx-witchcraft-purple" = buildFirefoxXpiAddon {
|
};
|
||||||
pname = "opera-gx-witchcraft-purple";
|
"opera-gx-witchcraft-purple" = buildFirefoxXpiAddon {
|
||||||
version = "2.0";
|
pname = "opera-gx-witchcraft-purple";
|
||||||
addonId = "{bf197856-a3c2-4280-84c5-9b556379b706}";
|
version = "2.0";
|
||||||
url = "https://addons.mozilla.org/firefox/downloads/file/3522842/opera_gx_witchcraft_purple-2.0.xpi";
|
addonId = "{bf197856-a3c2-4280-84c5-9b556379b706}";
|
||||||
sha256 = "aa3c6377b8571c42a3988de042694be70ec6a250a9aea7ae1cc262acdc9374eb";
|
url = "https://addons.mozilla.org/firefox/downloads/file/3522842/opera_gx_witchcraft_purple-2.0.xpi";
|
||||||
meta = with lib;
|
sha256 = "aa3c6377b8571c42a3988de042694be70ec6a250a9aea7ae1cc262acdc9374eb";
|
||||||
{
|
meta = with lib; {
|
||||||
description = "inspired by Opera GX";
|
description = "inspired by Opera GX";
|
||||||
license = licenses.cc-by-sa-30;
|
license = licenses.cc-by-sa-30;
|
||||||
mozPermissions = [];
|
mozPermissions = [];
|
||||||
platforms = platforms.all;
|
platforms = platforms.all;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
"ttv-lol-pro" = buildFirefoxXpiAddon {
|
"ttv-lol-pro" = buildFirefoxXpiAddon {
|
||||||
pname = "ttv-lol-pro";
|
pname = "ttv-lol-pro";
|
||||||
version = "2.2.1";
|
version = "2.2.1";
|
||||||
addonId = "{76ef94a4-e3d0-4c6f-961a-d38a429a332b}";
|
addonId = "{76ef94a4-e3d0-4c6f-961a-d38a429a332b}";
|
||||||
url = "https://addons.mozilla.org/firefox/downloads/file/4179399/ttv_lol_pro-2.2.1.xpi";
|
url = "https://addons.mozilla.org/firefox/downloads/file/4179399/ttv_lol_pro-2.2.1.xpi";
|
||||||
sha256 = "83d012878021fb5fe25bee1101a7a760974ae9e2949b80fd99b73d3da48b1f99";
|
sha256 = "83d012878021fb5fe25bee1101a7a760974ae9e2949b80fd99b73d3da48b1f99";
|
||||||
meta = with lib;
|
meta = with lib; {
|
||||||
{
|
homepage = "https://github.com/younesaassila/ttv-lol-pro";
|
||||||
homepage = "https://github.com/younesaassila/ttv-lol-pro";
|
description = "TTV LOL PRO removes most livestream ads from Twitch.";
|
||||||
description = "TTV LOL PRO removes most livestream ads from Twitch.";
|
license = licenses.gpl3;
|
||||||
license = licenses.gpl3;
|
mozPermissions = [
|
||||||
mozPermissions = [
|
"proxy"
|
||||||
"proxy"
|
"storage"
|
||||||
"storage"
|
"webRequest"
|
||||||
"webRequest"
|
"webRequestBlocking"
|
||||||
"webRequestBlocking"
|
"https://*.ttvnw.net/*"
|
||||||
"https://*.ttvnw.net/*"
|
"https://*.twitch.tv/*"
|
||||||
"https://*.twitch.tv/*"
|
"https://perfprod.com/ttvlolpro/telemetry"
|
||||||
"https://perfprod.com/ttvlolpro/telemetry"
|
"https://www.twitch.tv/*"
|
||||||
"https://www.twitch.tv/*"
|
"https://m.twitch.tv/*"
|
||||||
"https://m.twitch.tv/*"
|
];
|
||||||
];
|
platforms = platforms.all;
|
||||||
platforms = platforms.all;
|
};
|
||||||
};
|
};
|
||||||
};
|
}
|
||||||
}
|
|
||||||
|
|
|
@ -1,14 +1,17 @@
|
||||||
{ config, pkgs, ... }: let
|
{
|
||||||
firefox-addons = pkgs.recurseIntoAttrs (pkgs.callPackage ./addons { });
|
config,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
firefox-addons = pkgs.recurseIntoAttrs (pkgs.callPackage ./addons {});
|
||||||
sound-volume = firefox-addons."600-sound-volume";
|
sound-volume = firefox-addons."600-sound-volume";
|
||||||
|
|
||||||
firefox-gx = pkgs.callPackage ./firefox-gx { };
|
firefox-gx = pkgs.callPackage ./firefox-gx {};
|
||||||
in
|
in {
|
||||||
{
|
|
||||||
home.file = {
|
home.file = {
|
||||||
".mozilla/firefox/matt/chrome/components".source = "${firefox-gx}/chrome/components";
|
".mozilla/firefox/matt/chrome/components".source = "${firefox-gx}/chrome/components";
|
||||||
".mozilla/firefox/matt/chrome/icons".source = "${firefox-gx}/chrome/icons";
|
".mozilla/firefox/matt/chrome/icons".source = "${firefox-gx}/chrome/icons";
|
||||||
".mozilla/firefox/matt/chrome/images".source = "${firefox-gx}/chrome/images";
|
".mozilla/firefox/matt/chrome/images".source = "${firefox-gx}/chrome/images";
|
||||||
".mozilla/firefox/matt/chrome/userContent.css".source = "${firefox-gx}/chrome/userContent.css";
|
".mozilla/firefox/matt/chrome/userContent.css".source = "${firefox-gx}/chrome/userContent.css";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -76,69 +79,89 @@ in
|
||||||
force = true;
|
force = true;
|
||||||
engines = {
|
engines = {
|
||||||
"Nix Packages" = {
|
"Nix Packages" = {
|
||||||
urls = [{
|
urls = [
|
||||||
template = "https://search.nixos.org/packages";
|
{
|
||||||
params = [
|
template = "https://search.nixos.org/packages";
|
||||||
{ name = "type"; value = "packages"; }
|
params = [
|
||||||
{ name = "query"; value = "{searchTerms}"; }
|
{
|
||||||
];
|
name = "type";
|
||||||
}];
|
value = "packages";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "query";
|
||||||
|
value = "{searchTerms}";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
|
];
|
||||||
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake-white.svg";
|
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake-white.svg";
|
||||||
definedAliases = [ "@np" ];
|
definedAliases = ["@np"];
|
||||||
};
|
};
|
||||||
|
|
||||||
"NixOS Wiki" = {
|
"NixOS Wiki" = {
|
||||||
urls = [{ template =
|
urls = [
|
||||||
"https://nixos.wiki/index.php?search={searchTerms}";
|
{
|
||||||
}];
|
template = "https://nixos.wiki/index.php?search={searchTerms}";
|
||||||
|
}
|
||||||
|
];
|
||||||
iconUpdateURL = "https://nixos.wiki/favicon.png";
|
iconUpdateURL = "https://nixos.wiki/favicon.png";
|
||||||
updateInterval = 24 * 60 * 60 * 1000; # every day
|
updateInterval = 24 * 60 * 60 * 1000; # every day
|
||||||
definedAliases = [ "@nw" ];
|
definedAliases = ["@nw"];
|
||||||
};
|
};
|
||||||
|
|
||||||
"MyNixos" = {
|
"MyNixos" = {
|
||||||
urls = [{ template =
|
urls = [
|
||||||
"https://mynixos.com/search?q={searchTerms}";
|
{
|
||||||
}];
|
template = "https://mynixos.com/search?q={searchTerms}";
|
||||||
|
}
|
||||||
|
];
|
||||||
iconUpdateURL = "https://mynixos.com/favicon.ico";
|
iconUpdateURL = "https://mynixos.com/favicon.ico";
|
||||||
updateInterval = 24 * 60 * 60 * 1000; # every day
|
updateInterval = 24 * 60 * 60 * 1000; # every day
|
||||||
definedAliases = [ "@mn" ];
|
definedAliases = ["@mn"];
|
||||||
};
|
};
|
||||||
|
|
||||||
"Noogle" = {
|
"Noogle" = {
|
||||||
urls = [{ template =
|
urls = [
|
||||||
"https://noogle.dev/?term={searchTerms}";
|
{
|
||||||
}];
|
template = "https://noogle.dev/?term={searchTerms}";
|
||||||
|
}
|
||||||
|
];
|
||||||
iconUpdateURL = "https://noogle.dev/favicon.ico";
|
iconUpdateURL = "https://noogle.dev/favicon.ico";
|
||||||
updateInterval = 24 * 60 * 60 * 1000; # every day
|
updateInterval = 24 * 60 * 60 * 1000; # every day
|
||||||
definedAliases = [ "@ng" ];
|
definedAliases = ["@ng"];
|
||||||
};
|
};
|
||||||
|
|
||||||
"Firefox Add-ons" = {
|
"Firefox Add-ons" = {
|
||||||
urls = [{ template =
|
urls = [
|
||||||
"https://addons.mozilla.org/en-US/firefox/search/?q={searchTerms}";
|
{
|
||||||
}];
|
template = "https://addons.mozilla.org/en-US/firefox/search/?q={searchTerms}";
|
||||||
|
}
|
||||||
|
];
|
||||||
iconUpdateURL = "https://addons.mozilla.org/favicon.ico";
|
iconUpdateURL = "https://addons.mozilla.org/favicon.ico";
|
||||||
updateInterval = 24 * 60 * 60 * 1000; # every day
|
updateInterval = 24 * 60 * 60 * 1000; # every day
|
||||||
definedAliases = [ "@fa" ];
|
definedAliases = ["@fa"];
|
||||||
};
|
};
|
||||||
|
|
||||||
"ProtonDB" = {
|
"ProtonDB" = {
|
||||||
urls = [{ template =
|
urls = [
|
||||||
"https://www.protondb.com/search?q={searchTerms}";
|
{
|
||||||
}];
|
template = "https://www.protondb.com/search?q={searchTerms}";
|
||||||
|
}
|
||||||
|
];
|
||||||
iconUpdateURL = "https://www.protondb.com/favicon.ico";
|
iconUpdateURL = "https://www.protondb.com/favicon.ico";
|
||||||
updateInterval = 24 * 60 * 60 * 1000; # every day
|
updateInterval = 24 * 60 * 60 * 1000; # every day
|
||||||
definedAliases = [ "@pdb" ];
|
definedAliases = ["@pdb"];
|
||||||
};
|
};
|
||||||
|
|
||||||
"YouTube" = {
|
"YouTube" = {
|
||||||
urls = [{ template =
|
urls = [
|
||||||
"https://www.youtube.com/results?search_query={searchTerms}";
|
{
|
||||||
}];
|
template = "https://www.youtube.com/results?search_query={searchTerms}";
|
||||||
|
}
|
||||||
|
];
|
||||||
iconUpdateURL = "https://www.youtube.com/favicon.ico";
|
iconUpdateURL = "https://www.youtube.com/favicon.ico";
|
||||||
updateInterval = 24 * 60 * 60 * 1000; # every day
|
updateInterval = 24 * 60 * 60 * 1000; # every day
|
||||||
definedAliases = [ "@yt" "@youtube" ];
|
definedAliases = ["@yt" "@youtube"];
|
||||||
};
|
};
|
||||||
|
|
||||||
"Bing".metaData.hidden = true;
|
"Bing".metaData.hidden = true;
|
||||||
|
@ -160,31 +183,29 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
extensions = with config.nur.repos;
|
extensions = with config.nur.repos;
|
||||||
(with bandithedoge.firefoxAddons; [
|
(with bandithedoge.firefoxAddons; [
|
||||||
sponsorblock
|
sponsorblock
|
||||||
stylus
|
stylus
|
||||||
#tridactyl
|
#tridactyl
|
||||||
ublock-origin
|
ublock-origin
|
||||||
]) ++
|
])
|
||||||
|
++ (with rycee.firefox-addons; [
|
||||||
(with rycee.firefox-addons; [
|
bitwarden
|
||||||
bitwarden
|
darkreader
|
||||||
darkreader
|
floccus
|
||||||
floccus
|
istilldontcareaboutcookies
|
||||||
istilldontcareaboutcookies
|
image-search-options
|
||||||
image-search-options
|
return-youtube-dislikes
|
||||||
return-youtube-dislikes
|
undoclosetabbutton
|
||||||
undoclosetabbutton
|
])
|
||||||
]) ++
|
++ (with firefox-addons; [
|
||||||
|
sound-volume
|
||||||
(with firefox-addons; [
|
google-container
|
||||||
sound-volume
|
checkmarks-web-ext
|
||||||
google-container
|
ttv-lol-pro
|
||||||
checkmarks-web-ext
|
seventv
|
||||||
ttv-lol-pro
|
opera-gx-witchcraft-purple
|
||||||
seventv
|
]);
|
||||||
opera-gx-witchcraft-purple
|
|
||||||
]);
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,40 +1,44 @@
|
||||||
{ lib, stdenvNoCC, fetchFromGitHub, writeText }:
|
{
|
||||||
let
|
lib,
|
||||||
|
stdenvNoCC,
|
||||||
|
fetchFromGitHub,
|
||||||
|
writeText,
|
||||||
|
}: let
|
||||||
pname = "firefox-gx";
|
pname = "firefox-gx";
|
||||||
version = "8.5";
|
version = "8.5";
|
||||||
|
|
||||||
custom-menu = writeText "menu" "${builtins.readFile ./ogx_menu.css}";
|
custom-menu = writeText "menu" "${builtins.readFile ./ogx_menu.css}";
|
||||||
custom-sidebar = writeText "sidebar" "${builtins.readFile ./ogx_left-sidebar.css}";
|
custom-sidebar = writeText "sidebar" "${builtins.readFile ./ogx_left-sidebar.css}";
|
||||||
in
|
in
|
||||||
stdenvNoCC.mkDerivation {
|
stdenvNoCC.mkDerivation {
|
||||||
inherit pname version;
|
inherit pname version;
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "Godiesc";
|
owner = "Godiesc";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = "v.${version}";
|
rev = "v.${version}";
|
||||||
sha256 = "sha256-llffq16PZz5GxkLIJDeWN1d04SCCJFqwCLzOrxgwhYI=";
|
sha256 = "sha256-llffq16PZz5GxkLIJDeWN1d04SCCJFqwCLzOrxgwhYI=";
|
||||||
};
|
};
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
# Personal changes
|
# Personal changes
|
||||||
sed -i 's/var(--fuchsia))/var(--purple))/' ./chrome/components/ogx_root-personal.css
|
sed -i 's/var(--fuchsia))/var(--purple))/' ./chrome/components/ogx_root-personal.css
|
||||||
|
|
||||||
# Fix new tab background for nix
|
# Fix new tab background for nix
|
||||||
substituteInPlace ./chrome/components/ogx_root-personal.css \
|
substituteInPlace ./chrome/components/ogx_root-personal.css \
|
||||||
--replace '../images/newtab/wallpaper-dark.png' "$out/chrome/images/newtab/private-dark.png"
|
--replace '../images/newtab/wallpaper-dark.png' "$out/chrome/images/newtab/private-dark.png"
|
||||||
|
|
||||||
# TODO: make patch instead
|
# TODO: make patch instead
|
||||||
cp -a ${custom-menu} ./chrome/components/ogx_menu.css
|
cp -a ${custom-menu} ./chrome/components/ogx_menu.css
|
||||||
cp -a ${custom-sidebar} ./chrome/components/ogx_left-sidebar.css
|
cp -a ${custom-sidebar} ./chrome/components/ogx_left-sidebar.css
|
||||||
|
|
||||||
mkdir -p $out
|
mkdir -p $out
|
||||||
cp -r ./* $out
|
cp -r ./* $out
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "Firefox Theme CSS to Opera GX Lovers ";
|
description = "Firefox Theme CSS to Opera GX Lovers ";
|
||||||
homepage = "https://github.com/Godiesc/firefox-gx";
|
homepage = "https://github.com/Godiesc/firefox-gx";
|
||||||
license = licenses.mspl;
|
license = licenses.mspl;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,9 @@
|
||||||
{ pkgs, lib, config, ... }: let
|
{
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
fontSize = config.services.device-vars.fontSize;
|
fontSize = config.services.device-vars.fontSize;
|
||||||
dracula-xresources = pkgs.fetchFromGitHub {
|
dracula-xresources = pkgs.fetchFromGitHub {
|
||||||
owner = "dracula";
|
owner = "dracula";
|
||||||
|
@ -6,8 +11,7 @@
|
||||||
rev = "539ef24e9b0c5498a82d59bfa2bad9b618d832a3";
|
rev = "539ef24e9b0c5498a82d59bfa2bad9b618d832a3";
|
||||||
sha256 = "sha256-6fltsAluqOqYIh2NX0I/LC3WCWkb9Fn8PH6LNLBQbrY=";
|
sha256 = "sha256-6fltsAluqOqYIh2NX0I/LC3WCWkb9Fn8PH6LNLBQbrY=";
|
||||||
};
|
};
|
||||||
in
|
in {
|
||||||
{
|
|
||||||
home.pointerCursor = {
|
home.pointerCursor = {
|
||||||
name = "Dracula-cursors";
|
name = "Dracula-cursors";
|
||||||
package = pkgs.dracula-theme;
|
package = pkgs.dracula-theme;
|
||||||
|
@ -48,7 +52,7 @@ in
|
||||||
platformTheme = "qtct";
|
platformTheme = "qtct";
|
||||||
};
|
};
|
||||||
|
|
||||||
xresources.extraConfig = builtins.readFile("${dracula-xresources}/Xresources");
|
xresources.extraConfig = builtins.readFile "${dracula-xresources}/Xresources";
|
||||||
|
|
||||||
xdg.configFile = let
|
xdg.configFile = let
|
||||||
qtconf = ''
|
qtconf = ''
|
||||||
|
@ -58,13 +62,11 @@ in
|
||||||
|
|
||||||
[Appearance]
|
[Appearance]
|
||||||
icon_theme=Flat-Remix-Violet-Dark
|
icon_theme=Flat-Remix-Violet-Dark
|
||||||
style=''
|
style='';
|
||||||
;
|
in {
|
||||||
in
|
|
||||||
{
|
|
||||||
"Kvantum/Dracula/Dracula.kvconfig".source = "${pkgs.dracula-theme}/share/Kvantum/Dracula-purple-solid/Dracula-purple-solid.kvconfig";
|
"Kvantum/Dracula/Dracula.kvconfig".source = "${pkgs.dracula-theme}/share/Kvantum/Dracula-purple-solid/Dracula-purple-solid.kvconfig";
|
||||||
"Kvantum/Dracula/Dracula.svg".source = "${pkgs.dracula-theme}/share/Kvantum/Dracula-purple-solid/Dracula-purple-solid.svg";
|
"Kvantum/Dracula/Dracula.svg".source = "${pkgs.dracula-theme}/share/Kvantum/Dracula-purple-solid/Dracula-purple-solid.svg";
|
||||||
"Kvantum/kvantum.kvconfig".text = "[General]\ntheme=Dracula";
|
"Kvantum/kvantum.kvconfig".text = "[General]\ntheme=Dracula";
|
||||||
|
|
||||||
"qt5ct/qt5ct.conf".text = qtconf + "kvantum";
|
"qt5ct/qt5ct.conf".text = qtconf + "kvantum";
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ ... }: {
|
{...}: {
|
||||||
programs = {
|
programs = {
|
||||||
wofi = {
|
wofi = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ nix-gaming, ... }: {
|
{nix-gaming, ...}: {
|
||||||
imports = [
|
imports = [
|
||||||
nix-gaming.nixosModules.pipewireLowLatency
|
nix-gaming.nixosModules.pipewireLowLatency
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
{ lib
|
{
|
||||||
, pkgs
|
lib,
|
||||||
, config
|
pkgs,
|
||||||
, hyprland
|
config,
|
||||||
, ...
|
hyprland,
|
||||||
|
...
|
||||||
}: let
|
}: let
|
||||||
regreetBin = "${lib.getExe config.programs.regreet.package}";
|
regreetBin = "${lib.getExe config.programs.regreet.package}";
|
||||||
hyprBin = "${hyprland.packages.x86_64-linux.default}/bin";
|
hyprBin = "${hyprland.packages.x86_64-linux.default}/bin";
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ ... }: {
|
{...}: {
|
||||||
services.kmscon = {
|
services.kmscon = {
|
||||||
enable = true;
|
enable = true;
|
||||||
hwRender = false;
|
hwRender = false;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ pkgs, ... }: {
|
{pkgs, ...}: {
|
||||||
boot = {
|
boot = {
|
||||||
initrd = {
|
initrd = {
|
||||||
verbose = false;
|
verbose = false;
|
||||||
|
@ -18,7 +18,7 @@
|
||||||
|
|
||||||
plymouth = {
|
plymouth = {
|
||||||
enable = true;
|
enable = true;
|
||||||
themePackages = [ pkgs.dracula-theme ];
|
themePackages = [pkgs.dracula-theme];
|
||||||
theme = "dracula";
|
theme = "dracula";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
{ pkgs, ... }: {
|
{pkgs, ...}: {
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
# Enable CUPS to print documents.
|
# Enable CUPS to print documents.
|
||||||
printing = {
|
printing = {
|
||||||
enable = true;
|
enable = true;
|
||||||
drivers = with pkgs; [
|
drivers = with pkgs; [
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
{ pkgs, ... }: {
|
{pkgs, ...}: {
|
||||||
systemd.user.services.protonmail-bridge = {
|
systemd.user.services.protonmail-bridge = {
|
||||||
description = "Protonmail Bridge";
|
description = "Protonmail Bridge";
|
||||||
enable = true;
|
enable = true;
|
||||||
script = "${pkgs.protonmail-bridge}/bin/protonmail-bridge --noninteractive --log-level info";
|
script = "${pkgs.protonmail-bridge}/bin/protonmail-bridge --noninteractive --log-level info";
|
||||||
path = [ pkgs.gnome.gnome-keyring ]; # HACK: https://github.com/ProtonMail/proton-bridge/issues/176
|
path = [pkgs.gnome.gnome-keyring]; # HACK: https://github.com/ProtonMail/proton-bridge/issues/176
|
||||||
wantedBy = [ "graphical-session.target" ];
|
wantedBy = ["graphical-session.target"];
|
||||||
partOf = [ "graphical-session.target" ];
|
partOf = ["graphical-session.target"];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ pkgs, ... }: {
|
{pkgs, ...}: {
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
dracula-theme
|
dracula-theme
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ ... }: {
|
{...}: {
|
||||||
services = {
|
services = {
|
||||||
tailscale = {
|
tailscale = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
Loading…
Reference in a new issue