mirror of
https://github.com/Misterio77/Foundry.git
synced 2026-08-24 02:14:13 -05:00
format with alejandra
okay i'm not a big fan of nixfmt in the end
This commit is contained in:
@@ -81,152 +81,149 @@
|
||||
};
|
||||
};
|
||||
|
||||
outputs =
|
||||
{
|
||||
self,
|
||||
nixpkgs,
|
||||
home-manager,
|
||||
...
|
||||
}@inputs:
|
||||
let
|
||||
inherit (self) outputs;
|
||||
lib = nixpkgs.lib // home-manager.lib;
|
||||
systems = [
|
||||
"x86_64-linux"
|
||||
"aarch64-linux"
|
||||
];
|
||||
forEachSystem = f: lib.genAttrs systems (system: f pkgsFor.${system});
|
||||
pkgsFor = lib.genAttrs systems (
|
||||
system:
|
||||
outputs = {
|
||||
self,
|
||||
nixpkgs,
|
||||
home-manager,
|
||||
...
|
||||
} @ inputs: let
|
||||
inherit (self) outputs;
|
||||
lib = nixpkgs.lib // home-manager.lib;
|
||||
systems = [
|
||||
"x86_64-linux"
|
||||
"aarch64-linux"
|
||||
];
|
||||
forEachSystem = f: lib.genAttrs systems (system: f pkgsFor.${system});
|
||||
pkgsFor = lib.genAttrs systems (
|
||||
system:
|
||||
import nixpkgs {
|
||||
inherit system;
|
||||
config.allowUnfree = true;
|
||||
}
|
||||
);
|
||||
in
|
||||
{
|
||||
inherit lib;
|
||||
nixosModules = import ./modules/nixos;
|
||||
homeManagerModules = import ./modules/home-manager;
|
||||
templates = import ./templates;
|
||||
);
|
||||
in {
|
||||
inherit lib;
|
||||
nixosModules = import ./modules/nixos;
|
||||
homeManagerModules = import ./modules/home-manager;
|
||||
templates = import ./templates;
|
||||
|
||||
overlays = import ./overlays { inherit inputs outputs; };
|
||||
hydraJobs = import ./hydra.nix { inherit inputs outputs; };
|
||||
overlays = import ./overlays {inherit inputs outputs;};
|
||||
hydraJobs = import ./hydra.nix {inherit inputs outputs;};
|
||||
|
||||
packages = forEachSystem (pkgs: import ./pkgs { inherit pkgs; });
|
||||
devShells = forEachSystem (pkgs: import ./shell.nix { inherit pkgs; });
|
||||
formatter = forEachSystem (pkgs: pkgs.nixfmt-rfc-style);
|
||||
packages = forEachSystem (pkgs: import ./pkgs {inherit pkgs;});
|
||||
devShells = forEachSystem (pkgs: import ./shell.nix {inherit pkgs;});
|
||||
formatter = forEachSystem (pkgs: pkgs.alejandra);
|
||||
|
||||
nixosConfigurations = {
|
||||
# Main desktop
|
||||
atlas = lib.nixosSystem {
|
||||
modules = [ ./hosts/atlas ];
|
||||
specialArgs = {
|
||||
inherit inputs outputs;
|
||||
};
|
||||
};
|
||||
# Secondary desktop
|
||||
maia = lib.nixosSystem {
|
||||
modules = [ ./hosts/maia ];
|
||||
specialArgs = {
|
||||
inherit inputs outputs;
|
||||
};
|
||||
};
|
||||
# Personal laptop
|
||||
pleione = lib.nixosSystem {
|
||||
modules = [ ./hosts/pleione ];
|
||||
specialArgs = {
|
||||
inherit inputs outputs;
|
||||
};
|
||||
};
|
||||
# Work laptop
|
||||
electra = lib.nixosSystem {
|
||||
modules = [ ./hosts/electra ];
|
||||
specialArgs = {
|
||||
inherit inputs outputs;
|
||||
};
|
||||
};
|
||||
# Core server (Vultr)
|
||||
alcyone = lib.nixosSystem {
|
||||
modules = [ ./hosts/alcyone ];
|
||||
specialArgs = {
|
||||
inherit inputs outputs;
|
||||
};
|
||||
};
|
||||
# Build and game server (Oracle)
|
||||
celaeno = lib.nixosSystem {
|
||||
modules = [ ./hosts/celaeno ];
|
||||
specialArgs = {
|
||||
inherit inputs outputs;
|
||||
};
|
||||
};
|
||||
# Media server (RPi)
|
||||
merope = lib.nixosSystem {
|
||||
modules = [ ./hosts/merope ];
|
||||
specialArgs = {
|
||||
inherit inputs outputs;
|
||||
};
|
||||
nixosConfigurations = {
|
||||
# Main desktop
|
||||
atlas = lib.nixosSystem {
|
||||
modules = [./hosts/atlas];
|
||||
specialArgs = {
|
||||
inherit inputs outputs;
|
||||
};
|
||||
};
|
||||
|
||||
homeConfigurations = {
|
||||
# Desktops
|
||||
"misterio@atlas" = lib.homeManagerConfiguration {
|
||||
modules = [ ./home/misterio/atlas.nix ];
|
||||
pkgs = pkgsFor.x86_64-linux;
|
||||
extraSpecialArgs = {
|
||||
inherit inputs outputs;
|
||||
};
|
||||
# Secondary desktop
|
||||
maia = lib.nixosSystem {
|
||||
modules = [./hosts/maia];
|
||||
specialArgs = {
|
||||
inherit inputs outputs;
|
||||
};
|
||||
"misterio@maia" = lib.homeManagerConfiguration {
|
||||
modules = [ ./home/misterio/maia.nix ];
|
||||
pkgs = pkgsFor.x86_64-linux;
|
||||
extraSpecialArgs = {
|
||||
inherit inputs outputs;
|
||||
};
|
||||
};
|
||||
# Personal laptop
|
||||
pleione = lib.nixosSystem {
|
||||
modules = [./hosts/pleione];
|
||||
specialArgs = {
|
||||
inherit inputs outputs;
|
||||
};
|
||||
"misterio@pleione" = lib.homeManagerConfiguration {
|
||||
modules = [ ./home/misterio/pleione.nix ];
|
||||
pkgs = pkgsFor.x86_64-linux;
|
||||
extraSpecialArgs = {
|
||||
inherit inputs outputs;
|
||||
};
|
||||
};
|
||||
# Work laptop
|
||||
electra = lib.nixosSystem {
|
||||
modules = [./hosts/electra];
|
||||
specialArgs = {
|
||||
inherit inputs outputs;
|
||||
};
|
||||
"misterio@electra" = lib.homeManagerConfiguration {
|
||||
modules = [ ./home/misterio/electra.nix ];
|
||||
pkgs = pkgsFor.x86_64-linux;
|
||||
extraSpecialArgs = {
|
||||
inherit inputs outputs;
|
||||
};
|
||||
};
|
||||
# Core server (Vultr)
|
||||
alcyone = lib.nixosSystem {
|
||||
modules = [./hosts/alcyone];
|
||||
specialArgs = {
|
||||
inherit inputs outputs;
|
||||
};
|
||||
"misterio@alcyone" = lib.homeManagerConfiguration {
|
||||
modules = [ ./home/misterio/alcyone.nix ];
|
||||
pkgs = pkgsFor.x86_64-linux;
|
||||
extraSpecialArgs = {
|
||||
inherit inputs outputs;
|
||||
};
|
||||
};
|
||||
# Build and game server (Oracle)
|
||||
celaeno = lib.nixosSystem {
|
||||
modules = [./hosts/celaeno];
|
||||
specialArgs = {
|
||||
inherit inputs outputs;
|
||||
};
|
||||
"misterio@merope" = lib.homeManagerConfiguration {
|
||||
modules = [ ./home/misterio/merope.nix ];
|
||||
pkgs = pkgsFor.aarch64-linux;
|
||||
extraSpecialArgs = {
|
||||
inherit inputs outputs;
|
||||
};
|
||||
};
|
||||
"misterio@celaeno" = lib.homeManagerConfiguration {
|
||||
modules = [ ./home/misterio/celaeno.nix ];
|
||||
pkgs = pkgsFor.aarch64-linux;
|
||||
extraSpecialArgs = {
|
||||
inherit inputs outputs;
|
||||
};
|
||||
};
|
||||
"misterio@generic" = lib.homeManagerConfiguration {
|
||||
modules = [ ./home/misterio/generic.nix ];
|
||||
pkgs = pkgsFor.x86_64-linux;
|
||||
extraSpecialArgs = {
|
||||
inherit inputs outputs;
|
||||
};
|
||||
};
|
||||
# Media server (RPi)
|
||||
merope = lib.nixosSystem {
|
||||
modules = [./hosts/merope];
|
||||
specialArgs = {
|
||||
inherit inputs outputs;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
homeConfigurations = {
|
||||
# Desktops
|
||||
"misterio@atlas" = lib.homeManagerConfiguration {
|
||||
modules = [./home/misterio/atlas.nix];
|
||||
pkgs = pkgsFor.x86_64-linux;
|
||||
extraSpecialArgs = {
|
||||
inherit inputs outputs;
|
||||
};
|
||||
};
|
||||
"misterio@maia" = lib.homeManagerConfiguration {
|
||||
modules = [./home/misterio/maia.nix];
|
||||
pkgs = pkgsFor.x86_64-linux;
|
||||
extraSpecialArgs = {
|
||||
inherit inputs outputs;
|
||||
};
|
||||
};
|
||||
"misterio@pleione" = lib.homeManagerConfiguration {
|
||||
modules = [./home/misterio/pleione.nix];
|
||||
pkgs = pkgsFor.x86_64-linux;
|
||||
extraSpecialArgs = {
|
||||
inherit inputs outputs;
|
||||
};
|
||||
};
|
||||
"misterio@electra" = lib.homeManagerConfiguration {
|
||||
modules = [./home/misterio/electra.nix];
|
||||
pkgs = pkgsFor.x86_64-linux;
|
||||
extraSpecialArgs = {
|
||||
inherit inputs outputs;
|
||||
};
|
||||
};
|
||||
"misterio@alcyone" = lib.homeManagerConfiguration {
|
||||
modules = [./home/misterio/alcyone.nix];
|
||||
pkgs = pkgsFor.x86_64-linux;
|
||||
extraSpecialArgs = {
|
||||
inherit inputs outputs;
|
||||
};
|
||||
};
|
||||
"misterio@merope" = lib.homeManagerConfiguration {
|
||||
modules = [./home/misterio/merope.nix];
|
||||
pkgs = pkgsFor.aarch64-linux;
|
||||
extraSpecialArgs = {
|
||||
inherit inputs outputs;
|
||||
};
|
||||
};
|
||||
"misterio@celaeno" = lib.homeManagerConfiguration {
|
||||
modules = [./home/misterio/celaeno.nix];
|
||||
pkgs = pkgsFor.aarch64-linux;
|
||||
extraSpecialArgs = {
|
||||
inherit inputs outputs;
|
||||
};
|
||||
};
|
||||
"misterio@generic" = lib.homeManagerConfiguration {
|
||||
modules = [./home/misterio/generic.nix];
|
||||
pkgs = pkgsFor.x86_64-linux;
|
||||
extraSpecialArgs = {
|
||||
inherit inputs outputs;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
{ inputs, ... }:
|
||||
{
|
||||
imports = [ ./global ];
|
||||
{inputs, ...}: {
|
||||
imports = [./global];
|
||||
colorscheme = inputs.nix-colors.colorSchemes.equilibrium-dark;
|
||||
}
|
||||
|
||||
@@ -3,11 +3,9 @@
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
}: let
|
||||
inherit (inputs.nix-colors) colorSchemes;
|
||||
in
|
||||
{
|
||||
in {
|
||||
imports = [
|
||||
./global
|
||||
./features/desktop/hyprland
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
{ inputs, ... }:
|
||||
{
|
||||
imports = [ ./global ];
|
||||
{inputs, ...}: {
|
||||
imports = [./global];
|
||||
colorscheme = inputs.nix-colors.colorSchemes.unikitty-dark;
|
||||
}
|
||||
|
||||
@@ -4,11 +4,9 @@
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
}: let
|
||||
inherit (inputs.nix-colors) colorSchemes;
|
||||
in
|
||||
{
|
||||
in {
|
||||
imports = [
|
||||
./global
|
||||
./features/desktop/wireless
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
{pkgs, ...}: {
|
||||
imports = [
|
||||
./bash.nix
|
||||
./bat.nix
|
||||
|
||||
@@ -3,8 +3,7 @@
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
}: let
|
||||
inherit (lib) mkIf;
|
||||
packageNames = map (p: p.pname or p.name or null) config.home.packages;
|
||||
hasPackage = name: lib.any (x: x == name) packageNames;
|
||||
@@ -18,8 +17,7 @@ let
|
||||
hasShellColor = config.programs.shellcolor.enable;
|
||||
hasKitty = config.programs.kitty.enable;
|
||||
shellcolor = "${pkgs.shellcolord}/bin/shellcolor";
|
||||
in
|
||||
{
|
||||
in {
|
||||
programs.fish = {
|
||||
enable = true;
|
||||
plugins = [
|
||||
@@ -33,7 +31,9 @@ in
|
||||
hash = "sha256-l17v/aJ4PkjYM8kJDA0zUo87UTsfFqq+Prei/Qq0DRA=";
|
||||
};
|
||||
patches = [
|
||||
(builtins.toFile "fix-complete.diff" # diff
|
||||
(
|
||||
builtins.toFile "fix-complete.diff" # diff
|
||||
|
||||
''
|
||||
diff --git a/completions/aws.fish b/completions/aws.fish
|
||||
index fc75188..1e8d931 100644
|
||||
@@ -104,7 +104,10 @@ in
|
||||
nvimrg = mkIf (hasNeovim && hasRipgrep) "nvim -q (rg --vimgrep $argv | psub)";
|
||||
# Merge history upon doing up-or-search
|
||||
# This lets multiple fish instances share history
|
||||
up-or-search = /* fish */
|
||||
up-or-search =
|
||||
/*
|
||||
fish
|
||||
*/
|
||||
''
|
||||
if commandline --search-mode
|
||||
commandline -f history-search-backward
|
||||
@@ -126,19 +129,23 @@ in
|
||||
# Integrate ssh with shellcolord
|
||||
ssh =
|
||||
mkIf hasShellColor # fish
|
||||
''
|
||||
${shellcolor} disable $fish_pid
|
||||
# Check if kitty is available
|
||||
if set -q KITTY_PID && set -q KITTY_WINDOW_ID && type -q -f kitty
|
||||
kitty +kitten ssh $argv
|
||||
else
|
||||
command ssh $argv
|
||||
end
|
||||
${shellcolor} enable $fish_pid
|
||||
${shellcolor} apply $fish_pid
|
||||
'';
|
||||
|
||||
''
|
||||
${shellcolor} disable $fish_pid
|
||||
# Check if kitty is available
|
||||
if set -q KITTY_PID && set -q KITTY_WINDOW_ID && type -q -f kitty
|
||||
kitty +kitten ssh $argv
|
||||
else
|
||||
command ssh $argv
|
||||
end
|
||||
${shellcolor} enable $fish_pid
|
||||
${shellcolor} apply $fish_pid
|
||||
'';
|
||||
};
|
||||
interactiveShellInit = /* fish */
|
||||
interactiveShellInit =
|
||||
/*
|
||||
fish
|
||||
*/
|
||||
''
|
||||
# Open command buffer in vim when alt+e is pressed
|
||||
bind \ee edit_command_buffer
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
programs.fzf = {
|
||||
enable = true;
|
||||
defaultOptions = [ "--color 16" ];
|
||||
defaultOptions = ["--color 16"];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
{pkgs, ...}: {
|
||||
programs.gh = {
|
||||
enable = true;
|
||||
extensions = with pkgs; [ gh-markdown-preview ];
|
||||
extensions = with pkgs; [gh-markdown-preview];
|
||||
settings = {
|
||||
version = "1";
|
||||
git_protocol = "ssh";
|
||||
@@ -10,6 +9,6 @@
|
||||
};
|
||||
};
|
||||
home.persistence = {
|
||||
"/persist/home/misterio".directories = [ ".config/gh" ];
|
||||
"/persist/home/misterio".directories = [".config/gh"];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -3,8 +3,7 @@
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
}: let
|
||||
ssh = "${pkgs.openssh}/bin/ssh";
|
||||
|
||||
git-m7 = pkgs.writeShellScriptBin "git-m7" ''
|
||||
@@ -33,8 +32,7 @@ let
|
||||
git commit --fixup "$@"
|
||||
GIT_SEQUENCE_EDITOR=true git rebase -i --autostash --autosquash $rev^
|
||||
'';
|
||||
in
|
||||
{
|
||||
in {
|
||||
home.packages = [
|
||||
git-m7
|
||||
git-fixup
|
||||
|
||||
@@ -1,10 +1,7 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
let
|
||||
{pkgs, ...}: let
|
||||
ssh = "${pkgs.openssh}/bin/ssh";
|
||||
gpg-connect-agent = "${pkgs.gnupg}/bin/gpg-connect-agent";
|
||||
in
|
||||
{
|
||||
in {
|
||||
isUnlocked = "${pkgs.procps}/bin/pgrep 'gpg-agent' &> /dev/null && ${gpg-connect-agent} 'scd getinfo card_list' /bye | ${pkgs.gnugrep}/bin/grep SERIALNO -q";
|
||||
unlock = "${ssh} -T localhost -o StrictHostKeyChecking=no exit";
|
||||
}
|
||||
|
||||
@@ -3,46 +3,49 @@
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
{
|
||||
}: {
|
||||
services.gpg-agent = {
|
||||
enable = true;
|
||||
enableSshSupport = true;
|
||||
sshKeys = [ "149F16412997785363112F3DBD713BC91D51B831" ];
|
||||
sshKeys = ["149F16412997785363112F3DBD713BC91D51B831"];
|
||||
enableExtraSocket = true;
|
||||
pinentryPackage = if config.gtk.enable then pkgs.pinentry-gnome3 else pkgs.pinentry-tty;
|
||||
pinentryPackage =
|
||||
if config.gtk.enable
|
||||
then pkgs.pinentry-gnome3
|
||||
else pkgs.pinentry-tty;
|
||||
};
|
||||
|
||||
home.packages = lib.optional config.gtk.enable pkgs.gcr;
|
||||
|
||||
programs =
|
||||
let
|
||||
fixGpg = /* bash */
|
||||
''
|
||||
gpgconf --launch gpg-agent
|
||||
'';
|
||||
in
|
||||
{
|
||||
# Start gpg-agent if it's not running or tunneled in
|
||||
# SSH does not start it automatically, so this is needed to avoid having to use a gpg command at startup
|
||||
# https://www.gnupg.org/faq/whats-new-in-2.1.html#autostart
|
||||
bash.profileExtra = fixGpg;
|
||||
fish.loginShellInit = fixGpg;
|
||||
zsh.loginExtra = fixGpg;
|
||||
programs = let
|
||||
fixGpg =
|
||||
/*
|
||||
bash
|
||||
*/
|
||||
''
|
||||
gpgconf --launch gpg-agent
|
||||
'';
|
||||
in {
|
||||
# Start gpg-agent if it's not running or tunneled in
|
||||
# SSH does not start it automatically, so this is needed to avoid having to use a gpg command at startup
|
||||
# https://www.gnupg.org/faq/whats-new-in-2.1.html#autostart
|
||||
bash.profileExtra = fixGpg;
|
||||
fish.loginShellInit = fixGpg;
|
||||
zsh.loginExtra = fixGpg;
|
||||
|
||||
gpg = {
|
||||
enable = true;
|
||||
settings = {
|
||||
trust-model = "tofu+pgp";
|
||||
};
|
||||
publicKeys = [
|
||||
{
|
||||
source = ../../pgp.asc;
|
||||
trust = 5;
|
||||
}
|
||||
];
|
||||
gpg = {
|
||||
enable = true;
|
||||
settings = {
|
||||
trust-model = "tofu+pgp";
|
||||
};
|
||||
publicKeys = [
|
||||
{
|
||||
source = ../../pgp.asc;
|
||||
trust = 5;
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
systemd.user.services = {
|
||||
# Link /run/user/$UID/gnupg to ~/.gnupg-sockets
|
||||
@@ -57,8 +60,9 @@
|
||||
ExecStop = "${pkgs.coreutils}/bin/rm $HOME/.gnupg-sockets";
|
||||
RemainAfterExit = true;
|
||||
};
|
||||
Install.WantedBy = [ "default.target" ];
|
||||
Install.WantedBy = ["default.target"];
|
||||
};
|
||||
};
|
||||
}
|
||||
# vim: filetype=nix
|
||||
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
{ config, ... }:
|
||||
{
|
||||
{config, ...}: {
|
||||
programs.jujutsu = {
|
||||
enable = true;
|
||||
settings = {
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = [ pkgs.lyrics ];
|
||||
xdg.configFile."lyrics-in-terminal/lyrics.cfg".text = /* ini */
|
||||
{pkgs, ...}: {
|
||||
home.packages = [pkgs.lyrics];
|
||||
xdg.configFile."lyrics-in-terminal/lyrics.cfg".text =
|
||||
/*
|
||||
ini
|
||||
*/
|
||||
''
|
||||
[OPTIONS]
|
||||
alignment=left
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
{ pkgs, lib, ... }:
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
programs.nix-index.enable = true;
|
||||
|
||||
systemd.user.services.nix-index-database-sync = {
|
||||
@@ -32,6 +35,6 @@
|
||||
OnBootSec = "10m";
|
||||
OnUnitActiveSec = "24h";
|
||||
};
|
||||
Install.WantedBy = [ "timers.target" ];
|
||||
Install.WantedBy = ["timers.target"];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
{pkgs, ...}: {
|
||||
home = {
|
||||
packages = with pkgs; [ pfetch ];
|
||||
packages = with pkgs; [pfetch];
|
||||
sessionVariables.PF_INFO = "ascii title os kernel uptime shell term desktop scheme palette";
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [ ranger ];
|
||||
{pkgs, ...}: {
|
||||
home.packages = with pkgs; [ranger];
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = [ pkgs.screen ];
|
||||
{pkgs, ...}: {
|
||||
home.packages = [pkgs.screen];
|
||||
home.file.".screenrc".text = ''
|
||||
startup_message off
|
||||
defbce on
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
{ config, ... }:
|
||||
let
|
||||
{config, ...}: let
|
||||
inherit (config.colorscheme) colors;
|
||||
in
|
||||
{
|
||||
in {
|
||||
programs.shellcolor = {
|
||||
enable = true;
|
||||
settings = {
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
{ outputs, lib, ... }:
|
||||
let
|
||||
hostnames = builtins.attrNames outputs.nixosConfigurations;
|
||||
in
|
||||
{
|
||||
outputs,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
hostnames = builtins.attrNames outputs.nixosConfigurations;
|
||||
in {
|
||||
programs.ssh = {
|
||||
enable = true;
|
||||
matchBlocks = {
|
||||
@@ -16,7 +18,7 @@ in
|
||||
}
|
||||
];
|
||||
};
|
||||
trusted = lib.hm.dag.entryBefore [ "net" ] {
|
||||
trusted = lib.hm.dag.entryBefore ["net"] {
|
||||
host = "m7.rs *.m7.rs *.ts.m7.rs";
|
||||
forwardAgent = true;
|
||||
};
|
||||
@@ -24,6 +26,6 @@ in
|
||||
};
|
||||
|
||||
home.persistence = {
|
||||
"/persist/home/misterio".directories = [ ".ssh" ];
|
||||
"/persist/home/misterio".directories = [".ssh"];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,18 +1,19 @@
|
||||
{ pkgs, lib, ... }:
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
programs.starship = {
|
||||
enable = true;
|
||||
settings = {
|
||||
format =
|
||||
let
|
||||
git = "$git_branch$git_commit$git_state$git_status";
|
||||
cloud = "$aws$gcloud$openstack";
|
||||
in
|
||||
''
|
||||
$username$hostname($shlvl)($cmd_duration) $fill ($nix_shell)$custom
|
||||
$directory(${git})(${cloud}) $fill $time
|
||||
$jobs$character
|
||||
'';
|
||||
format = let
|
||||
git = "$git_branch$git_commit$git_state$git_status";
|
||||
cloud = "$aws$gcloud$openstack";
|
||||
in ''
|
||||
$username$hostname($shlvl)($cmd_duration) $fill ($nix_shell)$custom
|
||||
$directory(${git})(${cloud}) $fill $time
|
||||
$jobs$character
|
||||
'';
|
||||
|
||||
fill = {
|
||||
symbol = " ";
|
||||
@@ -50,23 +51,21 @@
|
||||
style = "bold red";
|
||||
};
|
||||
custom = {
|
||||
nix_inspect =
|
||||
let
|
||||
excluded = [
|
||||
"kitty"
|
||||
"imagemagick"
|
||||
"ncurses"
|
||||
"user-environment"
|
||||
];
|
||||
in
|
||||
{
|
||||
disabled = false;
|
||||
when = "test -z $IN_NIX_SHELL";
|
||||
command = "${(lib.getExe pkgs.nix-inspect)} ${(lib.concatStringsSep " " excluded)}";
|
||||
format = "[($output <- )$symbol]($style) ";
|
||||
symbol = " ";
|
||||
style = "bold blue";
|
||||
};
|
||||
nix_inspect = let
|
||||
excluded = [
|
||||
"kitty"
|
||||
"imagemagick"
|
||||
"ncurses"
|
||||
"user-environment"
|
||||
];
|
||||
in {
|
||||
disabled = false;
|
||||
when = "test -z $IN_NIX_SHELL";
|
||||
command = "${(lib.getExe pkgs.nix-inspect)} ${(lib.concatStringsSep " " excluded)}";
|
||||
format = "[($output <- )$symbol]($style) ";
|
||||
symbol = " ";
|
||||
style = "bold blue";
|
||||
};
|
||||
};
|
||||
|
||||
character = {
|
||||
|
||||
@@ -3,8 +3,7 @@
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{
|
||||
}: {
|
||||
imports = [
|
||||
./deluge.nix
|
||||
./discord.nix
|
||||
@@ -22,12 +21,11 @@
|
||||
|
||||
# Also sets org.freedesktop.appearance color-scheme
|
||||
dconf.settings."org/gnome/desktop/interface".color-scheme =
|
||||
if config.colorscheme.variant == "dark" then
|
||||
"prefer-dark"
|
||||
else if config.colorscheme.variant == "light" then
|
||||
"prefer-light"
|
||||
else
|
||||
"default";
|
||||
if config.colorscheme.variant == "dark"
|
||||
then "prefer-dark"
|
||||
else if config.colorscheme.variant == "light"
|
||||
then "prefer-light"
|
||||
else "default";
|
||||
|
||||
xdg.portal.enable = true;
|
||||
}
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [ deluge ];
|
||||
{pkgs, ...}: {
|
||||
home.packages = with pkgs; [deluge];
|
||||
}
|
||||
|
||||
@@ -1,16 +1,20 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
let
|
||||
c = config.colorscheme.palette;
|
||||
in
|
||||
{
|
||||
home.packages = with pkgs; [ vesktop ];
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
c = config.colorscheme.palette;
|
||||
in {
|
||||
home.packages = with pkgs; [vesktop];
|
||||
|
||||
home.persistence = {
|
||||
"/persist/home/misterio".directories = [ ".config/vesktop" ];
|
||||
"/persist/home/misterio".directories = [".config/vesktop"];
|
||||
};
|
||||
|
||||
xdg.configFile."vesktop/themes/base16.css".text = /* css */
|
||||
xdg.configFile."vesktop/themes/base16.css".text =
|
||||
/*
|
||||
css
|
||||
*/
|
||||
''
|
||||
@import url("https://slowstab.github.io/dracula/BetterDiscord/source.css");
|
||||
@import url("https://mulverinex.github.io/legacy-settings-icons/dist-native.css");
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [ xdragon ];
|
||||
{pkgs, ...}: {
|
||||
home.packages = with pkgs; [xdragon];
|
||||
}
|
||||
|
||||
@@ -1,16 +1,14 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
{pkgs, ...}: {
|
||||
programs.browserpass.enable = true;
|
||||
programs.firefox = {
|
||||
enable = true;
|
||||
profiles.misterio = {
|
||||
bookmarks = { };
|
||||
bookmarks = {};
|
||||
extensions = with pkgs.inputs.firefox-addons; [
|
||||
ublock-origin
|
||||
browserpass
|
||||
];
|
||||
bookmarks = { };
|
||||
bookmarks = {};
|
||||
settings = {
|
||||
"browser.disableResetPrompt" = true;
|
||||
"browser.download.panel.shown" = true;
|
||||
@@ -36,9 +34,9 @@
|
||||
};
|
||||
|
||||
xdg.mimeApps.defaultApplications = {
|
||||
"text/html" = [ "firefox.desktop" ];
|
||||
"text/xml" = [ "firefox.desktop" ];
|
||||
"x-scheme-handler/http" = [ "firefox.desktop" ];
|
||||
"x-scheme-handler/https" = [ "firefox.desktop" ];
|
||||
"text/html" = ["firefox.desktop"];
|
||||
"text/xml" = ["firefox.desktop"];
|
||||
"x-scheme-handler/http" = ["firefox.desktop"];
|
||||
"x-scheme-handler/https" = ["firefox.desktop"];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
{pkgs, ...}: {
|
||||
fontProfiles = {
|
||||
enable = true;
|
||||
monospace = {
|
||||
family = "FiraCode Nerd Font";
|
||||
package = pkgs.nerdfonts.override { fonts = [ "FiraCode" ]; };
|
||||
package = pkgs.nerdfonts.override {fonts = ["FiraCode"];};
|
||||
};
|
||||
regular = {
|
||||
family = "Fira Sans";
|
||||
|
||||
@@ -3,12 +3,9 @@
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
inherit (inputs.nix-colors.lib-contrib { inherit pkgs; }) gtkThemeFromScheme;
|
||||
in
|
||||
rec {
|
||||
}: let
|
||||
inherit (inputs.nix-colors.lib-contrib {inherit pkgs;}) gtkThemeFromScheme;
|
||||
in rec {
|
||||
gtk = {
|
||||
enable = true;
|
||||
font = {
|
||||
@@ -17,7 +14,7 @@ rec {
|
||||
};
|
||||
theme = {
|
||||
name = "${config.colorscheme.slug}";
|
||||
package = gtkThemeFromScheme { scheme = config.colorscheme; };
|
||||
package = gtkThemeFromScheme {scheme = config.colorscheme;};
|
||||
};
|
||||
iconTheme = {
|
||||
name = "Papirus";
|
||||
@@ -33,5 +30,5 @@ rec {
|
||||
};
|
||||
};
|
||||
|
||||
xdg.portal.extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
|
||||
xdg.portal.extraPortals = [pkgs.xdg-desktop-portal-gtk];
|
||||
}
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
{ pkgs, lib, ... }:
|
||||
|
||||
let
|
||||
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
kdeconnect-cli = "${pkgs.plasma5Packages.kdeconnect-kde}/bin/kdeconnect-cli";
|
||||
fortune = "${pkgs.fortune}/bin/fortune";
|
||||
|
||||
script-fortune = pkgs.writeShellScriptBin "fortune" ''
|
||||
${kdeconnect-cli} -d $(${kdeconnect-cli} --list-available --id-only) --ping-msg "$(${fortune})"
|
||||
'';
|
||||
in
|
||||
{
|
||||
in {
|
||||
# Hide all .desktop, except for org.kde.kdeconnect.settings
|
||||
xdg.desktopEntries = {
|
||||
"org.kde.kdeconnect.sms" = {
|
||||
@@ -39,6 +39,6 @@ in
|
||||
};
|
||||
|
||||
home.persistence = {
|
||||
"/persist/home/misterio".directories = [ ".config/kdeconnect" ];
|
||||
"/persist/home/misterio".directories = [".config/kdeconnect"];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [ pavucontrol ];
|
||||
{pkgs, ...}: {
|
||||
home.packages = with pkgs; [pavucontrol];
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [ playerctl ];
|
||||
{pkgs, ...}: {
|
||||
home.packages = with pkgs; [playerctl];
|
||||
services.playerctld = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
{ pkgs, config, ... }:
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
qt = {
|
||||
enable = true;
|
||||
platformTheme = "gtk";
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
{pkgs, ...}: {
|
||||
xdg.mimeApps.defaultApplications = {
|
||||
"x-scheme-handler/slack" = "slack.desktop";
|
||||
};
|
||||
home.packages = [ pkgs.slack ];
|
||||
home.packages = [pkgs.slack];
|
||||
}
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
{ pkgs, lib, ... }:
|
||||
{
|
||||
home.packages = [ pkgs.sublime-music ];
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
home.packages = [pkgs.sublime-music];
|
||||
home.persistence = {
|
||||
"/persist/home/misterio".directories = [ ".config/sublime-music" ];
|
||||
"/persist/home/misterio".directories = [".config/sublime-music"];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
{pkgs, ...}: {
|
||||
imports = [
|
||||
./hyprland-vnc.nix
|
||||
./gammastep.nix
|
||||
@@ -37,5 +36,5 @@
|
||||
LIBSEAT_BACKEND = "logind";
|
||||
};
|
||||
|
||||
xdg.portal.extraPortals = [ pkgs.xdg-desktop-portal-wlr ];
|
||||
xdg.portal.extraPortals = [pkgs.xdg-desktop-portal-wlr];
|
||||
}
|
||||
|
||||
@@ -3,8 +3,7 @@
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
}: let
|
||||
enabledMonitors = lib.filter (m: m.enabled) config.monitors;
|
||||
# A nice VNC script for remotes running hyprland
|
||||
vncsh = pkgs.writeShellScriptBin "vnc.sh" ''
|
||||
@@ -16,16 +15,16 @@ let
|
||||
xpos="$(hyprctl monitors -j | jq -r 'sort_by(.x)[-1] | .x + .width')"
|
||||
|
||||
${
|
||||
lib.concatLines (
|
||||
lib.forEach enabledMonitors (m: ''
|
||||
hyprctl output create headless
|
||||
monitor="$(hyprctl monitors -j | jq -r 'map(.name)[-1]')"
|
||||
hyprctl keyword monitor $monitor,${toString m.width}x${toString m.height}@${toString m.refreshRate},$(($xpos + ${toString m.x}))x${toString m.y},1
|
||||
screen -d -m wayvnc -k br -S /tmp/vnc-${m.workspace} -f 60 -o $monitor $ip 590${m.workspace}
|
||||
sudo iptables -I INPUT -j ACCEPT -p tcp --dport 590${m.workspace}
|
||||
'')
|
||||
)
|
||||
}
|
||||
lib.concatLines (
|
||||
lib.forEach enabledMonitors (m: ''
|
||||
hyprctl output create headless
|
||||
monitor="$(hyprctl monitors -j | jq -r 'map(.name)[-1]')"
|
||||
hyprctl keyword monitor $monitor,${toString m.width}x${toString m.height}@${toString m.refreshRate},$(($xpos + ${toString m.x}))x${toString m.y},1
|
||||
screen -d -m wayvnc -k br -S /tmp/vnc-${m.workspace} -f 60 -o $monitor $ip 590${m.workspace}
|
||||
sudo iptables -I INPUT -j ACCEPT -p tcp --dport 590${m.workspace}
|
||||
'')
|
||||
)
|
||||
}
|
||||
EOF
|
||||
|
||||
${lib.concatLines (
|
||||
@@ -36,8 +35,7 @@ let
|
||||
|
||||
wait
|
||||
'';
|
||||
in
|
||||
{
|
||||
in {
|
||||
home.packages = with pkgs; [
|
||||
vncsh
|
||||
wayvnc
|
||||
|
||||
@@ -1,14 +1,15 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
let
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
inherit (config.colorscheme) colors;
|
||||
kitty-xterm = pkgs.writeShellScriptBin "xterm" ''
|
||||
${config.programs.kitty.package}/bin/kitty "$@"
|
||||
'';
|
||||
in
|
||||
{
|
||||
in {
|
||||
home = {
|
||||
packages = [ kitty-xterm ];
|
||||
packages = [kitty-xterm];
|
||||
sessionVariables = {
|
||||
TERMINAL = "kitty -1";
|
||||
};
|
||||
|
||||
@@ -1,15 +1,12 @@
|
||||
{ config, ... }:
|
||||
let
|
||||
{config, ...}: let
|
||||
inherit (config.colorscheme) colors kind;
|
||||
in
|
||||
{
|
||||
in {
|
||||
services.mako = {
|
||||
enable = true;
|
||||
iconPath =
|
||||
if kind == "dark" then
|
||||
"${config.gtk.iconTheme.package}/share/icons/Papirus-Dark"
|
||||
else
|
||||
"${config.gtk.iconTheme.package}/share/icons/Papirus-Light";
|
||||
if kind == "dark"
|
||||
then "${config.gtk.iconTheme.package}/share/icons/Papirus-Dark"
|
||||
else "${config.gtk.iconTheme.package}/share/icons/Papirus-Light";
|
||||
font = "${config.fontProfiles.regular.family} 12";
|
||||
padding = "10,20";
|
||||
anchor = "top-center";
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (config.colorscheme) colors kind;
|
||||
in
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
inherit (config.colorscheme) colors kind;
|
||||
in {
|
||||
home.persistence = {
|
||||
"/persist/home/misterio".directories = [
|
||||
".config/qutebrowser/bookmarks"
|
||||
@@ -13,11 +14,11 @@ in
|
||||
};
|
||||
|
||||
xdg.mimeApps.defaultApplications = {
|
||||
"text/html" = [ "org.qutebrowser.qutebrowser.desktop" ];
|
||||
"text/xml" = [ "org.qutebrowser.qutebrowser.desktop" ];
|
||||
"x-scheme-handler/http" = [ "org.qutebrowser.qutebrowser.desktop" ];
|
||||
"x-scheme-handler/https" = [ "org.qutebrowser.qutebrowser.desktop" ];
|
||||
"x-scheme-handler/qute" = [ "org.qutebrowser.qutebrowser.desktop" ];
|
||||
"text/html" = ["org.qutebrowser.qutebrowser.desktop"];
|
||||
"text/xml" = ["org.qutebrowser.qutebrowser.desktop"];
|
||||
"x-scheme-handler/http" = ["org.qutebrowser.qutebrowser.desktop"];
|
||||
"x-scheme-handler/https" = ["org.qutebrowser.qutebrowser.desktop"];
|
||||
"x-scheme-handler/qute" = ["org.qutebrowser.qutebrowser.desktop"];
|
||||
};
|
||||
|
||||
programs.qutebrowser = {
|
||||
|
||||
@@ -3,9 +3,7 @@
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
}: let
|
||||
swaylock = "${config.programs.swaylock.package}/bin/swaylock";
|
||||
pgrep = "${pkgs.procps}/bin/pgrep";
|
||||
pactl = "${pkgs.pulseaudio}/bin/pactl";
|
||||
@@ -16,24 +14,21 @@ let
|
||||
lockTime = 4 * 60; # TODO: configurable desktop (10 min)/laptop (4 min)
|
||||
|
||||
# Makes two timeouts: one for when the screen is not locked (lockTime+timeout) and one for when it is.
|
||||
afterLockTimeout =
|
||||
afterLockTimeout = {
|
||||
timeout,
|
||||
command,
|
||||
resumeCommand ? null,
|
||||
}: [
|
||||
{
|
||||
timeout,
|
||||
command,
|
||||
resumeCommand ? null,
|
||||
}:
|
||||
[
|
||||
{
|
||||
timeout = lockTime + timeout;
|
||||
inherit command resumeCommand;
|
||||
}
|
||||
{
|
||||
command = "${isLocked} && ${command}";
|
||||
inherit resumeCommand timeout;
|
||||
}
|
||||
];
|
||||
in
|
||||
{
|
||||
timeout = lockTime + timeout;
|
||||
inherit command resumeCommand;
|
||||
}
|
||||
{
|
||||
command = "${isLocked} && ${command}";
|
||||
inherit resumeCommand timeout;
|
||||
}
|
||||
];
|
||||
in {
|
||||
services.swayidle = {
|
||||
enable = true;
|
||||
systemdTarget = "graphical-session.target";
|
||||
@@ -53,25 +48,25 @@ in
|
||||
resumeCommand = "${pactl} set-source-mute @DEFAULT_SOURCE@ no";
|
||||
})
|
||||
++
|
||||
# Turn off RGB
|
||||
(lib.optionals config.services.rgbdaemon.enable (afterLockTimeout {
|
||||
timeout = 20;
|
||||
command = "systemctl --user stop rgbdaemon";
|
||||
resumeCommand = "systemctl --user start rgbdaemon";
|
||||
}))
|
||||
# Turn off RGB
|
||||
(lib.optionals config.services.rgbdaemon.enable (afterLockTimeout {
|
||||
timeout = 20;
|
||||
command = "systemctl --user stop rgbdaemon";
|
||||
resumeCommand = "systemctl --user start rgbdaemon";
|
||||
}))
|
||||
++
|
||||
# Turn off displays (hyprland)
|
||||
(lib.optionals config.wayland.windowManager.hyprland.enable (afterLockTimeout {
|
||||
timeout = 40;
|
||||
command = "${hyprctl} dispatch dpms off";
|
||||
resumeCommand = "${hyprctl} dispatch dpms on";
|
||||
}))
|
||||
# Turn off displays (hyprland)
|
||||
(lib.optionals config.wayland.windowManager.hyprland.enable (afterLockTimeout {
|
||||
timeout = 40;
|
||||
command = "${hyprctl} dispatch dpms off";
|
||||
resumeCommand = "${hyprctl} dispatch dpms on";
|
||||
}))
|
||||
++
|
||||
# Turn off displays (sway)
|
||||
(lib.optionals config.wayland.windowManager.sway.enable (afterLockTimeout {
|
||||
timeout = 40;
|
||||
command = "${swaymsg} 'output * dpms off'";
|
||||
resumeCommand = "${swaymsg} 'output * dpms on'";
|
||||
}));
|
||||
# Turn off displays (sway)
|
||||
(lib.optionals config.wayland.windowManager.sway.enable (afterLockTimeout {
|
||||
timeout = 40;
|
||||
command = "${swaymsg} 'output * dpms off'";
|
||||
resumeCommand = "${swaymsg} 'output * dpms on'";
|
||||
}));
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
let
|
||||
inherit (config.colorscheme) colors;
|
||||
in
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
inherit (config.colorscheme) colors;
|
||||
in {
|
||||
programs.swaylock = {
|
||||
enable = true;
|
||||
package = pkgs.swaylock-effects;
|
||||
|
||||
@@ -5,9 +5,7 @@
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
}: let
|
||||
# Dependencies
|
||||
cat = "${pkgs.coreutils}/bin/cat";
|
||||
cut = "${pkgs.coreutils}/bin/cut";
|
||||
@@ -29,34 +27,30 @@ let
|
||||
wofi = "${pkgs.wofi}/bin/wofi";
|
||||
|
||||
# Function to simplify making waybar outputs
|
||||
jsonOutput =
|
||||
name:
|
||||
{
|
||||
pre ? "",
|
||||
text ? "",
|
||||
tooltip ? "",
|
||||
alt ? "",
|
||||
class ? "",
|
||||
percentage ? "",
|
||||
}:
|
||||
"${pkgs.writeShellScriptBin "waybar-${name}" ''
|
||||
set -euo pipefail
|
||||
${pre}
|
||||
${jq} -cn \
|
||||
--arg text "${text}" \
|
||||
--arg tooltip "${tooltip}" \
|
||||
--arg alt "${alt}" \
|
||||
--arg class "${class}" \
|
||||
--arg percentage "${percentage}" \
|
||||
'{text:$text,tooltip:$tooltip,alt:$alt,class:$class,percentage:$percentage}'
|
||||
''}/bin/waybar-${name}";
|
||||
jsonOutput = name: {
|
||||
pre ? "",
|
||||
text ? "",
|
||||
tooltip ? "",
|
||||
alt ? "",
|
||||
class ? "",
|
||||
percentage ? "",
|
||||
}: "${pkgs.writeShellScriptBin "waybar-${name}" ''
|
||||
set -euo pipefail
|
||||
${pre}
|
||||
${jq} -cn \
|
||||
--arg text "${text}" \
|
||||
--arg tooltip "${tooltip}" \
|
||||
--arg alt "${alt}" \
|
||||
--arg class "${class}" \
|
||||
--arg percentage "${percentage}" \
|
||||
'{text:$text,tooltip:$tooltip,alt:$alt,class:$class,percentage:$percentage}'
|
||||
''}/bin/waybar-${name}";
|
||||
|
||||
hasSway = config.wayland.windowManager.sway.enable;
|
||||
sway = config.wayland.windowManager.sway.package;
|
||||
hasHyprland = config.wayland.windowManager.hyprland.enable;
|
||||
hyprland = config.wayland.windowManager.hyprland.package;
|
||||
in
|
||||
{
|
||||
in {
|
||||
# Let it try to start a few more times
|
||||
systemd.user.services.waybar = {
|
||||
Unit.StartLimitBurst = 30;
|
||||
@@ -64,7 +58,7 @@ in
|
||||
programs.waybar = {
|
||||
enable = true;
|
||||
package = pkgs.waybar.overrideAttrs (oa: {
|
||||
mesonFlags = (oa.mesonFlags or [ ]) ++ [ "-Dexperimental=true" ];
|
||||
mesonFlags = (oa.mesonFlags or []) ++ ["-Dexperimental=true"];
|
||||
});
|
||||
systemd.enable = true;
|
||||
settings = {
|
||||
@@ -75,7 +69,7 @@ in
|
||||
margin = "6";
|
||||
position = "top";
|
||||
modules-left =
|
||||
[ "custom/menu" ]
|
||||
["custom/menu"]
|
||||
++ (lib.optionals hasSway [
|
||||
"sway/workspaces"
|
||||
"sway/mode"
|
||||
@@ -190,13 +184,12 @@ in
|
||||
"custom/tailscale-ping" = {
|
||||
interval = 10;
|
||||
return-type = "json";
|
||||
exec =
|
||||
let
|
||||
inherit (builtins) concatStringsSep attrNames;
|
||||
hosts = attrNames outputs.nixosConfigurations;
|
||||
homeMachine = "merope";
|
||||
remoteMachine = "alcyone";
|
||||
in
|
||||
exec = let
|
||||
inherit (builtins) concatStringsSep attrNames;
|
||||
hosts = attrNames outputs.nixosConfigurations;
|
||||
homeMachine = "merope";
|
||||
remoteMachine = "alcyone";
|
||||
in
|
||||
jsonOutput "tailscale-ping" {
|
||||
# Build variables for each host
|
||||
pre = ''
|
||||
@@ -204,7 +197,8 @@ in
|
||||
${concatStringsSep "\n" (
|
||||
map (host: ''
|
||||
ping_${host}="$(${timeout} 2 ${ping} -c 1 -q ${host} 2>/dev/null | ${tail} -1 | ${cut} -d '/' -f5 | ${cut} -d '.' -f1)ms" || ping_${host}="Disconnected"
|
||||
'') hosts
|
||||
'')
|
||||
hosts
|
||||
)}
|
||||
'';
|
||||
# Access a remote machine's and a home machine's ping
|
||||
@@ -215,28 +209,25 @@ in
|
||||
format = "{}";
|
||||
on-click = "";
|
||||
};
|
||||
"custom/menu" =
|
||||
let
|
||||
isFullScreen =
|
||||
if hasHyprland then
|
||||
"${hyprland}/bin/hyprctl activewindow -j | ${jq} -e '.fullscreen' &>/dev/null"
|
||||
else
|
||||
"false";
|
||||
in
|
||||
{
|
||||
interval = 1;
|
||||
return-type = "json";
|
||||
exec = jsonOutput "menu" {
|
||||
text = "";
|
||||
tooltip = ''$(${cat} /etc/os-release | ${grep} PRETTY_NAME | ${cut} -d '"' -f2)'';
|
||||
class = "$(if ${isFullScreen}; then echo fullscreen; fi)";
|
||||
};
|
||||
on-click-left = "${wofi} -S drun -x 10 -y 10 -W 25% -H 60%";
|
||||
on-click-right = lib.concatStringsSep ";" (
|
||||
(lib.optional hasHyprland "${hyprland}/bin/hyprctl dispatch togglespecialworkspace")
|
||||
++ (lib.optional hasSway "${sway}/bin/swaymsg scratchpad show")
|
||||
);
|
||||
"custom/menu" = let
|
||||
isFullScreen =
|
||||
if hasHyprland
|
||||
then "${hyprland}/bin/hyprctl activewindow -j | ${jq} -e '.fullscreen' &>/dev/null"
|
||||
else "false";
|
||||
in {
|
||||
interval = 1;
|
||||
return-type = "json";
|
||||
exec = jsonOutput "menu" {
|
||||
text = "";
|
||||
tooltip = ''$(${cat} /etc/os-release | ${grep} PRETTY_NAME | ${cut} -d '"' -f2)'';
|
||||
class = "$(if ${isFullScreen}; then echo fullscreen; fi)";
|
||||
};
|
||||
on-click-left = "${wofi} -S drun -x 10 -y 10 -W 25% -H 60%";
|
||||
on-click-right = lib.concatStringsSep ";" (
|
||||
(lib.optional hasHyprland "${hyprland}/bin/hyprctl dispatch togglespecialworkspace")
|
||||
++ (lib.optional hasSway "${sway}/bin/swaymsg scratchpad show")
|
||||
);
|
||||
};
|
||||
"custom/hostname" = {
|
||||
exec = "echo $USER@$HOSTNAME";
|
||||
on-click = "${systemctl} --user restart waybar";
|
||||
@@ -269,10 +260,9 @@ in
|
||||
"custom/gpg-agent" = {
|
||||
interval = 2;
|
||||
return-type = "json";
|
||||
exec =
|
||||
let
|
||||
gpgCmds = import ../../../cli/gpg-commands.nix { inherit pkgs; };
|
||||
in
|
||||
exec = let
|
||||
gpgCmds = import ../../../cli/gpg-commands.nix {inherit pkgs;};
|
||||
in
|
||||
jsonOutput "gpg-agent" {
|
||||
pre = ''status=$(${gpgCmds.isUnlocked} && echo "unlocked" || echo "locked")'';
|
||||
alt = "$status";
|
||||
@@ -369,13 +359,14 @@ in
|
||||
# x y -> vertical, horizontal
|
||||
# x y z -> top, horizontal, bottom
|
||||
# w x y z -> top, right, bottom, left
|
||||
style =
|
||||
let
|
||||
inherit (inputs.nix-colors.lib.conversions) hexToRGBString;
|
||||
inherit (config.colorscheme) colors;
|
||||
toRGBA = color: opacity: "rgba(${hexToRGBString "," color},${opacity})";
|
||||
in
|
||||
# css
|
||||
style = let
|
||||
inherit (inputs.nix-colors.lib.conversions) hexToRGBString;
|
||||
inherit (config.colorscheme) colors;
|
||||
toRGBA = color: opacity: "rgba(${hexToRGBString "," color},${opacity})";
|
||||
in
|
||||
/*
|
||||
css
|
||||
*/
|
||||
''
|
||||
* {
|
||||
font-family: ${config.fontProfiles.regular.family}, ${config.fontProfiles.monospace.family};
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
let
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
inherit (config) colorscheme;
|
||||
inherit (colorscheme) colors;
|
||||
in
|
||||
{
|
||||
in {
|
||||
programs.wezterm = {
|
||||
enable = true;
|
||||
colorSchemes = {
|
||||
@@ -38,7 +39,10 @@ in
|
||||
selection_bg = "#${colors.base05}";
|
||||
};
|
||||
};
|
||||
extraConfig = /* lua */
|
||||
extraConfig =
|
||||
/*
|
||||
lua
|
||||
*/
|
||||
''
|
||||
return {
|
||||
font = wezterm.font("${config.fontProfiles.monospace.family}"),
|
||||
|
||||
@@ -3,14 +3,15 @@
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
}: {
|
||||
programs.wofi = {
|
||||
enable = true;
|
||||
package = pkgs.wofi.overrideAttrs (oa: {
|
||||
patches = (oa.patches or [ ]) ++ [
|
||||
./wofi-run-shell.patch # Fix for https://todo.sr.ht/~scoopta/wofi/174
|
||||
];
|
||||
patches =
|
||||
(oa.patches or [])
|
||||
++ [
|
||||
./wofi-run-shell.patch # Fix for https://todo.sr.ht/~scoopta/wofi/174
|
||||
];
|
||||
});
|
||||
settings = {
|
||||
image_size = 48;
|
||||
@@ -23,9 +24,8 @@
|
||||
};
|
||||
};
|
||||
|
||||
home.packages =
|
||||
let
|
||||
inherit (config.programs.password-store) package enable;
|
||||
in
|
||||
lib.optional enable (pkgs.pass-wofi.override { pass = package; });
|
||||
home.packages = let
|
||||
inherit (config.programs.password-store) package enable;
|
||||
in
|
||||
lib.optional enable (pkgs.pass-wofi.override {pass = package;});
|
||||
}
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
{ config, ... }:
|
||||
let
|
||||
{config, ...}: let
|
||||
inherit (config.colorscheme) colors;
|
||||
in
|
||||
{
|
||||
in {
|
||||
programs.zathura = {
|
||||
enable = true;
|
||||
options = {
|
||||
|
||||
@@ -1 +1 @@
|
||||
{ imports = [ ../common ]; }
|
||||
{imports = [../common];}
|
||||
|
||||
@@ -1,49 +1,47 @@
|
||||
{ lib, ... }:
|
||||
{
|
||||
{lib, ...}: {
|
||||
wayland.windowManager.hyprland.settings = {
|
||||
bindm = [
|
||||
"SUPER,mouse:272,movewindow"
|
||||
"SUPER,mouse:273,resizewindow"
|
||||
];
|
||||
|
||||
bind =
|
||||
let
|
||||
workspaces = [
|
||||
"0"
|
||||
"1"
|
||||
"2"
|
||||
"3"
|
||||
"4"
|
||||
"5"
|
||||
"6"
|
||||
"7"
|
||||
"8"
|
||||
"9"
|
||||
"F1"
|
||||
"F2"
|
||||
"F3"
|
||||
"F4"
|
||||
"F5"
|
||||
"F6"
|
||||
"F7"
|
||||
"F8"
|
||||
"F9"
|
||||
"F10"
|
||||
"F11"
|
||||
"F12"
|
||||
];
|
||||
# Map keys (arrows and hjkl) to hyprland directions (l, r, u, d)
|
||||
directions = rec {
|
||||
left = "l";
|
||||
right = "r";
|
||||
up = "u";
|
||||
down = "d";
|
||||
h = left;
|
||||
l = right;
|
||||
k = up;
|
||||
j = down;
|
||||
};
|
||||
in
|
||||
bind = let
|
||||
workspaces = [
|
||||
"0"
|
||||
"1"
|
||||
"2"
|
||||
"3"
|
||||
"4"
|
||||
"5"
|
||||
"6"
|
||||
"7"
|
||||
"8"
|
||||
"9"
|
||||
"F1"
|
||||
"F2"
|
||||
"F3"
|
||||
"F4"
|
||||
"F5"
|
||||
"F6"
|
||||
"F7"
|
||||
"F8"
|
||||
"F9"
|
||||
"F10"
|
||||
"F11"
|
||||
"F12"
|
||||
];
|
||||
# Map keys (arrows and hjkl) to hyprland directions (l, r, u, d)
|
||||
directions = rec {
|
||||
left = "l";
|
||||
right = "r";
|
||||
up = "u";
|
||||
down = "d";
|
||||
h = left;
|
||||
l = right;
|
||||
k = up;
|
||||
j = down;
|
||||
};
|
||||
in
|
||||
[
|
||||
"SUPERSHIFT,q,killactive"
|
||||
"SUPERSHIFT,e,exit"
|
||||
@@ -71,29 +69,31 @@
|
||||
"SUPER,i,pseudo"
|
||||
]
|
||||
++
|
||||
# Change workspace
|
||||
(map (n: "SUPER,${n},workspace,name:${n}") workspaces)
|
||||
# Change workspace
|
||||
(map (n: "SUPER,${n},workspace,name:${n}") workspaces)
|
||||
++
|
||||
# Move window to workspace
|
||||
(map (n: "SUPERSHIFT,${n},movetoworkspacesilent,name:${n}") workspaces)
|
||||
# Move window to workspace
|
||||
(map (n: "SUPERSHIFT,${n},movetoworkspacesilent,name:${n}") workspaces)
|
||||
++
|
||||
# Move focus
|
||||
(lib.mapAttrsToList (key: direction: "SUPER,${key},movefocus,${direction}") directions)
|
||||
# Move focus
|
||||
(lib.mapAttrsToList (key: direction: "SUPER,${key},movefocus,${direction}") directions)
|
||||
++
|
||||
# Swap windows
|
||||
(lib.mapAttrsToList (key: direction: "SUPERSHIFT,${key},swapwindow,${direction}") directions)
|
||||
# Swap windows
|
||||
(lib.mapAttrsToList (key: direction: "SUPERSHIFT,${key},swapwindow,${direction}") directions)
|
||||
++
|
||||
# Move windows
|
||||
(lib.mapAttrsToList (
|
||||
# Move windows
|
||||
(lib.mapAttrsToList (
|
||||
key: direction: "SUPERCONTROL,${key},movewindoworgroup,${direction}"
|
||||
) directions)
|
||||
)
|
||||
directions)
|
||||
++
|
||||
# Move monitor focus
|
||||
(lib.mapAttrsToList (key: direction: "SUPERALT,${key},focusmonitor,${direction}") directions)
|
||||
# Move monitor focus
|
||||
(lib.mapAttrsToList (key: direction: "SUPERALT,${key},focusmonitor,${direction}") directions)
|
||||
++
|
||||
# Move workspace to other monitor
|
||||
(lib.mapAttrsToList (
|
||||
# Move workspace to other monitor
|
||||
(lib.mapAttrsToList (
|
||||
key: direction: "SUPERALTSHIFT,${key},movecurrentworkspacetomonitor,${direction}"
|
||||
) directions);
|
||||
)
|
||||
directions);
|
||||
};
|
||||
}
|
||||
|
||||
@@ -3,12 +3,10 @@
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
hyprland = pkgs.inputs.hyprland.hyprland.override { wrapRuntimeDeps = false; };
|
||||
xdph = pkgs.inputs.hyprland.xdg-desktop-portal-hyprland.override { inherit hyprland; };
|
||||
in
|
||||
{
|
||||
}: let
|
||||
hyprland = pkgs.inputs.hyprland.hyprland.override {wrapRuntimeDeps = false;};
|
||||
xdph = pkgs.inputs.hyprland.xdg-desktop-portal-hyprland.override {inherit hyprland;};
|
||||
in {
|
||||
imports = [
|
||||
../common
|
||||
../common/wayland-wm
|
||||
@@ -18,8 +16,8 @@ in
|
||||
];
|
||||
|
||||
xdg.portal = {
|
||||
extraPortals = [ xdph ];
|
||||
configPackages = [ hyprland ];
|
||||
extraPortals = [xdph];
|
||||
configPackages = [hyprland];
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [
|
||||
@@ -40,228 +38,220 @@ in
|
||||
];
|
||||
};
|
||||
|
||||
settings =
|
||||
let
|
||||
active = "0xaa${config.colorscheme.colors.base0C}";
|
||||
inactive = "0xaa${config.colorscheme.colors.base02}";
|
||||
in
|
||||
{
|
||||
general = {
|
||||
cursor_inactive_timeout = 4;
|
||||
gaps_in = 15;
|
||||
gaps_out = 20;
|
||||
border_size = 2;
|
||||
"col.active_border" = active;
|
||||
"col.inactive_border" = inactive;
|
||||
settings = let
|
||||
active = "0xaa${config.colorscheme.colors.base0C}";
|
||||
inactive = "0xaa${config.colorscheme.colors.base02}";
|
||||
in {
|
||||
general = {
|
||||
cursor_inactive_timeout = 4;
|
||||
gaps_in = 15;
|
||||
gaps_out = 20;
|
||||
border_size = 2;
|
||||
"col.active_border" = active;
|
||||
"col.inactive_border" = inactive;
|
||||
};
|
||||
group = {
|
||||
"col.border_active" = active;
|
||||
"col.border_inactive" = inactive;
|
||||
groupbar.font_size = 11;
|
||||
};
|
||||
binds = {
|
||||
movefocus_cycles_fullscreen = false;
|
||||
};
|
||||
input = {
|
||||
kb_layout = "br,us";
|
||||
touchpad.disable_while_typing = false;
|
||||
};
|
||||
dwindle = {
|
||||
split_width_multiplier = 1.35;
|
||||
pseudotile = true;
|
||||
};
|
||||
misc = {
|
||||
vfr = true;
|
||||
close_special_on_empty = true;
|
||||
focus_on_activate = true;
|
||||
# Unfullscreen when opening something
|
||||
new_window_takes_over_fullscreen = 2;
|
||||
};
|
||||
windowrulev2 = let
|
||||
sweethome3d-tooltips = "title:^(win[0-9])$,class:^(com-eteks-sweethome3d-SweetHome3DBootstrap)$";
|
||||
steam = "title:^()$,class:^(steam)$";
|
||||
in [
|
||||
"nofocus, ${sweethome3d-tooltips}"
|
||||
"stayfocused, ${steam}"
|
||||
"minsize 1 1, ${steam}"
|
||||
];
|
||||
layerrule = [
|
||||
"blur,waybar"
|
||||
"ignorezero,waybar"
|
||||
"blur,notifications"
|
||||
"ignorezero,notifications"
|
||||
"blur,wofi"
|
||||
"ignorezero,wofi"
|
||||
];
|
||||
|
||||
decoration = {
|
||||
active_opacity = 0.97;
|
||||
inactive_opacity = 0.77;
|
||||
fullscreen_opacity = 1.0;
|
||||
rounding = 7;
|
||||
blur = {
|
||||
enabled = true;
|
||||
size = 5;
|
||||
passes = 3;
|
||||
new_optimizations = true;
|
||||
ignore_opacity = true;
|
||||
popups = true;
|
||||
};
|
||||
group = {
|
||||
"col.border_active" = active;
|
||||
"col.border_inactive" = inactive;
|
||||
groupbar.font_size = 11;
|
||||
};
|
||||
binds = {
|
||||
movefocus_cycles_fullscreen = false;
|
||||
};
|
||||
input = {
|
||||
kb_layout = "br,us";
|
||||
touchpad.disable_while_typing = false;
|
||||
};
|
||||
dwindle = {
|
||||
split_width_multiplier = 1.35;
|
||||
pseudotile = true;
|
||||
};
|
||||
misc = {
|
||||
vfr = true;
|
||||
close_special_on_empty = true;
|
||||
focus_on_activate = true;
|
||||
# Unfullscreen when opening something
|
||||
new_window_takes_over_fullscreen = 2;
|
||||
};
|
||||
windowrulev2 =
|
||||
let
|
||||
sweethome3d-tooltips = "title:^(win[0-9])$,class:^(com-eteks-sweethome3d-SweetHome3DBootstrap)$";
|
||||
steam = "title:^()$,class:^(steam)$";
|
||||
in
|
||||
[
|
||||
"nofocus, ${sweethome3d-tooltips}"
|
||||
"stayfocused, ${steam}"
|
||||
"minsize 1 1, ${steam}"
|
||||
];
|
||||
layerrule = [
|
||||
"blur,waybar"
|
||||
"ignorezero,waybar"
|
||||
"blur,notifications"
|
||||
"ignorezero,notifications"
|
||||
"blur,wofi"
|
||||
"ignorezero,wofi"
|
||||
drop_shadow = true;
|
||||
shadow_range = 12;
|
||||
shadow_offset = "3 3";
|
||||
"col.shadow" = "0x44000000";
|
||||
"col.shadow_inactive" = "0x66000000";
|
||||
};
|
||||
animations = {
|
||||
enabled = true;
|
||||
bezier = [
|
||||
"easein,0.11, 0, 0.5, 0"
|
||||
"easeout,0.5, 1, 0.89, 1"
|
||||
"easeinout,0.45, 0, 0.55, 1"
|
||||
"easeinback,0.36, 0, 0.66, -0.56"
|
||||
"easeoutback,0.34, 1.56, 0.64, 1"
|
||||
"easeinoutback,0.68, -0.6, 0.32, 1.6"
|
||||
];
|
||||
|
||||
decoration = {
|
||||
active_opacity = 0.97;
|
||||
inactive_opacity = 0.77;
|
||||
fullscreen_opacity = 1.0;
|
||||
rounding = 7;
|
||||
blur = {
|
||||
enabled = true;
|
||||
size = 5;
|
||||
passes = 3;
|
||||
new_optimizations = true;
|
||||
ignore_opacity = true;
|
||||
popups = true;
|
||||
};
|
||||
drop_shadow = true;
|
||||
shadow_range = 12;
|
||||
shadow_offset = "3 3";
|
||||
"col.shadow" = "0x44000000";
|
||||
"col.shadow_inactive" = "0x66000000";
|
||||
};
|
||||
animations = {
|
||||
enabled = true;
|
||||
bezier = [
|
||||
"easein,0.11, 0, 0.5, 0"
|
||||
"easeout,0.5, 1, 0.89, 1"
|
||||
"easeinout,0.45, 0, 0.55, 1"
|
||||
"easeinback,0.36, 0, 0.66, -0.56"
|
||||
"easeoutback,0.34, 1.56, 0.64, 1"
|
||||
"easeinoutback,0.68, -0.6, 0.32, 1.6"
|
||||
];
|
||||
animation = [
|
||||
"border,1,3,easeout"
|
||||
"workspaces,1,2,easeoutback,slide"
|
||||
"windowsIn,1,3,easeoutback,slide"
|
||||
"windowsOut,1,3,easeinback,slide"
|
||||
"windowsMove,1,3,easeoutback"
|
||||
"fadeIn,1,3,easeout"
|
||||
"fadeOut,1,3,easein"
|
||||
"fadeSwitch,1,3,easeinout"
|
||||
"fadeShadow,1,3,easeinout"
|
||||
"fadeDim,1,3,easeinout"
|
||||
"fadeLayersIn,1,3,easeoutback"
|
||||
"fadeLayersOut,1,3,easeinback"
|
||||
"layersIn,1,3,easeoutback,slide"
|
||||
"layersOut,1,3,easeinback,slide"
|
||||
];
|
||||
};
|
||||
|
||||
animation = [
|
||||
"border,1,3,easeout"
|
||||
"workspaces,1,2,easeoutback,slide"
|
||||
"windowsIn,1,3,easeoutback,slide"
|
||||
"windowsOut,1,3,easeinback,slide"
|
||||
"windowsMove,1,3,easeoutback"
|
||||
"fadeIn,1,3,easeout"
|
||||
"fadeOut,1,3,easein"
|
||||
"fadeSwitch,1,3,easeinout"
|
||||
"fadeShadow,1,3,easeinout"
|
||||
"fadeDim,1,3,easeinout"
|
||||
"fadeLayersIn,1,3,easeoutback"
|
||||
"fadeLayersOut,1,3,easeinback"
|
||||
"layersIn,1,3,easeoutback,slide"
|
||||
"layersOut,1,3,easeinback,slide"
|
||||
];
|
||||
};
|
||||
exec = ["${pkgs.swaybg}/bin/swaybg -i ${config.wallpaper} --mode fill"];
|
||||
|
||||
exec = [ "${pkgs.swaybg}/bin/swaybg -i ${config.wallpaper} --mode fill" ];
|
||||
bind = let
|
||||
grimblast = lib.getExe pkgs.inputs.hyprwm-contrib.grimblast;
|
||||
tesseract = lib.getExe pkgs.tesseract;
|
||||
pactl = lib.getExe' pkgs.pulseaudio "pactl";
|
||||
tly = lib.getExe pkgs.tly;
|
||||
gtk-play = lib.getExe' pkgs.libcanberra-gtk3 "canberra-gtk-play";
|
||||
notify-send = lib.getExe' pkgs.libnotify "notify-send";
|
||||
|
||||
bind =
|
||||
terminal = config.home.sessionVariables.TERMINAL;
|
||||
defaultApp = type: "${lib.getExe' pkgs.gtk3 "gtk-launch"} $(${lib.getExe' pkgs.xdg-utils "xdg-mime"} query default ${type})";
|
||||
browser = defaultApp "x-scheme-handler/https";
|
||||
editor = defaultApp "text/plain";
|
||||
in
|
||||
[
|
||||
# Program bindings
|
||||
"SUPER,Return,exec,${terminal}"
|
||||
"SUPER,e,exec,${editor}"
|
||||
"SUPER,v,exec,${editor}"
|
||||
"SUPER,b,exec,${browser}"
|
||||
# Brightness control (only works if the system has lightd)
|
||||
",XF86MonBrightnessUp,exec,light -A 10"
|
||||
",XF86MonBrightnessDown,exec,light -U 10"
|
||||
# Volume
|
||||
",XF86AudioRaiseVolume,exec,${pactl} set-sink-volume @DEFAULT_SINK@ +5%"
|
||||
",XF86AudioLowerVolume,exec,${pactl} set-sink-volume @DEFAULT_SINK@ -5%"
|
||||
",XF86AudioMute,exec,${pactl} set-sink-mute @DEFAULT_SINK@ toggle"
|
||||
"SHIFT,XF86AudioMute,exec,${pactl} set-source-mute @DEFAULT_SOURCE@ toggle"
|
||||
",XF86AudioMicMute,exec,${pactl} set-source-mute @DEFAULT_SOURCE@ toggle"
|
||||
# Screenshotting
|
||||
",Print,exec,${grimblast} --notify --freeze copy output"
|
||||
"SUPER,Print,exec,${grimblast} --notify --freeze copy area"
|
||||
# To OCR
|
||||
"ALT,Print,exec,${grimblast} --freeze save area - | ${tesseract} - - | wl-copy && ${notify-send} -t 3000 'OCR result copied to buffer'"
|
||||
# Tally counter
|
||||
"SUPER,z,exec,${notify-send} -t 1000 $(${tly} time) && ${tly} add && ${gtk-play} -i dialog-information" # Add new entry
|
||||
"SUPERCONTROL,z,exec,${notify-send} -t 1000 $(${tly} time) && ${tly} undo && ${gtk-play} -i dialog-warning" # Undo last entry
|
||||
"SUPERCONTROLSHIFT,z,exec,${tly} reset && ${gtk-play} -i complete" # Reset
|
||||
"SUPERSHIFT,z,exec,${notify-send} -t 1000 $(${tly} time)" # Show current time
|
||||
]
|
||||
++ (
|
||||
let
|
||||
grimblast = lib.getExe pkgs.inputs.hyprwm-contrib.grimblast;
|
||||
tesseract = lib.getExe pkgs.tesseract;
|
||||
pactl = lib.getExe' pkgs.pulseaudio "pactl";
|
||||
tly = lib.getExe pkgs.tly;
|
||||
gtk-play = lib.getExe' pkgs.libcanberra-gtk3 "canberra-gtk-play";
|
||||
notify-send = lib.getExe' pkgs.libnotify "notify-send";
|
||||
|
||||
terminal = config.home.sessionVariables.TERMINAL;
|
||||
defaultApp =
|
||||
type:
|
||||
"${lib.getExe' pkgs.gtk3 "gtk-launch"} $(${lib.getExe' pkgs.xdg-utils "xdg-mime"} query default ${type})";
|
||||
browser = defaultApp "x-scheme-handler/https";
|
||||
editor = defaultApp "text/plain";
|
||||
playerctl = lib.getExe' config.services.playerctld.package "playerctl";
|
||||
playerctld = lib.getExe' config.services.playerctld.package "playerctld";
|
||||
in
|
||||
[
|
||||
# Program bindings
|
||||
"SUPER,Return,exec,${terminal}"
|
||||
"SUPER,e,exec,${editor}"
|
||||
"SUPER,v,exec,${editor}"
|
||||
"SUPER,b,exec,${browser}"
|
||||
# Brightness control (only works if the system has lightd)
|
||||
",XF86MonBrightnessUp,exec,light -A 10"
|
||||
",XF86MonBrightnessDown,exec,light -U 10"
|
||||
# Volume
|
||||
",XF86AudioRaiseVolume,exec,${pactl} set-sink-volume @DEFAULT_SINK@ +5%"
|
||||
",XF86AudioLowerVolume,exec,${pactl} set-sink-volume @DEFAULT_SINK@ -5%"
|
||||
",XF86AudioMute,exec,${pactl} set-sink-mute @DEFAULT_SINK@ toggle"
|
||||
"SHIFT,XF86AudioMute,exec,${pactl} set-source-mute @DEFAULT_SOURCE@ toggle"
|
||||
",XF86AudioMicMute,exec,${pactl} set-source-mute @DEFAULT_SOURCE@ toggle"
|
||||
# Screenshotting
|
||||
",Print,exec,${grimblast} --notify --freeze copy output"
|
||||
"SUPER,Print,exec,${grimblast} --notify --freeze copy area"
|
||||
# To OCR
|
||||
"ALT,Print,exec,${grimblast} --freeze save area - | ${tesseract} - - | wl-copy && ${notify-send} -t 3000 'OCR result copied to buffer'"
|
||||
# Tally counter
|
||||
"SUPER,z,exec,${notify-send} -t 1000 $(${tly} time) && ${tly} add && ${gtk-play} -i dialog-information" # Add new entry
|
||||
"SUPERCONTROL,z,exec,${notify-send} -t 1000 $(${tly} time) && ${tly} undo && ${gtk-play} -i dialog-warning" # Undo last entry
|
||||
"SUPERCONTROLSHIFT,z,exec,${tly} reset && ${gtk-play} -i complete" # Reset
|
||||
"SUPERSHIFT,z,exec,${notify-send} -t 1000 $(${tly} time)" # Show current time
|
||||
]
|
||||
++
|
||||
|
||||
(
|
||||
lib.optionals config.services.playerctld.enable [
|
||||
# Media control
|
||||
",XF86AudioNext,exec,${playerctl} next"
|
||||
",XF86AudioPrev,exec,${playerctl} previous"
|
||||
",XF86AudioPlay,exec,${playerctl} play-pause"
|
||||
",XF86AudioStop,exec,${playerctl} stop"
|
||||
"ALT,XF86AudioNext,exec,${playerctld} shift"
|
||||
"ALT,XF86AudioPrev,exec,${playerctld} unshift"
|
||||
"ALT,XF86AudioPlay,exec,systemctl --user restart playerctld"
|
||||
]
|
||||
)
|
||||
++
|
||||
# Screen lock
|
||||
(
|
||||
let
|
||||
swaylock = lib.getExe config.programs.swaylock.package;
|
||||
in
|
||||
lib.optionals config.programs.swaylock.enable [
|
||||
",XF86Launch5,exec,${swaylock} -S --grace 2"
|
||||
",XF86Launch4,exec,${swaylock} -S --grace 2"
|
||||
"SUPER,backspace,exec,${swaylock} -S --grace 2"
|
||||
]
|
||||
)
|
||||
++
|
||||
# Notification manager
|
||||
(
|
||||
let
|
||||
makoctl = lib.getExe' config.services.mako.package "makoctl";
|
||||
in
|
||||
lib.optionals config.services.mako.enable ["SUPER,w,exec,${makoctl} dismiss"]
|
||||
)
|
||||
++
|
||||
# Launcher
|
||||
(
|
||||
let
|
||||
wofi = lib.getExe config.programs.wofi.package;
|
||||
in
|
||||
lib.optionals config.programs.wofi.enable [
|
||||
"SUPER,x,exec,${wofi} -S drun -x 10 -y 10 -W 25% -H 60%"
|
||||
"SUPER,d,exec,${wofi} -S run"
|
||||
]
|
||||
++ (
|
||||
let
|
||||
playerctl = lib.getExe' config.services.playerctld.package "playerctl";
|
||||
playerctld = lib.getExe' config.services.playerctld.package "playerctld";
|
||||
pass-wofi = lib.getExe (pkgs.pass-wofi.override {pass = config.programs.password-store.package;});
|
||||
in
|
||||
lib.optionals config.services.playerctld.enable [
|
||||
# Media control
|
||||
",XF86AudioNext,exec,${playerctl} next"
|
||||
",XF86AudioPrev,exec,${playerctl} previous"
|
||||
",XF86AudioPlay,exec,${playerctl} play-pause"
|
||||
",XF86AudioStop,exec,${playerctl} stop"
|
||||
"ALT,XF86AudioNext,exec,${playerctld} shift"
|
||||
"ALT,XF86AudioPrev,exec,${playerctld} unshift"
|
||||
"ALT,XF86AudioPlay,exec,systemctl --user restart playerctld"
|
||||
]
|
||||
)
|
||||
++
|
||||
# Screen lock
|
||||
(
|
||||
let
|
||||
swaylock = lib.getExe config.programs.swaylock.package;
|
||||
in
|
||||
lib.optionals config.programs.swaylock.enable [
|
||||
",XF86Launch5,exec,${swaylock} -S --grace 2"
|
||||
",XF86Launch4,exec,${swaylock} -S --grace 2"
|
||||
"SUPER,backspace,exec,${swaylock} -S --grace 2"
|
||||
]
|
||||
)
|
||||
++
|
||||
# Notification manager
|
||||
(
|
||||
let
|
||||
makoctl = lib.getExe' config.services.mako.package "makoctl";
|
||||
in
|
||||
lib.optionals config.services.mako.enable [ "SUPER,w,exec,${makoctl} dismiss" ]
|
||||
)
|
||||
++
|
||||
|
||||
# Launcher
|
||||
(
|
||||
let
|
||||
wofi = lib.getExe config.programs.wofi.package;
|
||||
in
|
||||
lib.optionals config.programs.wofi.enable [
|
||||
"SUPER,x,exec,${wofi} -S drun -x 10 -y 10 -W 25% -H 60%"
|
||||
"SUPER,d,exec,${wofi} -S run"
|
||||
]
|
||||
++ (
|
||||
let
|
||||
pass-wofi = lib.getExe (pkgs.pass-wofi.override { pass = config.programs.password-store.package; });
|
||||
in
|
||||
lib.optionals config.programs.password-store.enable [
|
||||
",Scroll_Lock,exec,${pass-wofi}" # fn+k
|
||||
",XF86Calculator,exec,${pass-wofi}" # fn+f12
|
||||
"SUPER,semicolon,exec,pass-wofi"
|
||||
]
|
||||
)
|
||||
);
|
||||
|
||||
monitor = map (
|
||||
m:
|
||||
let
|
||||
resolution = "${toString m.width}x${toString m.height}@${toString m.refreshRate}";
|
||||
position = "${toString m.x}x${toString m.y}";
|
||||
in
|
||||
"${m.name},${if m.enabled then "${resolution},${position},1" else "disable"}"
|
||||
) (config.monitors);
|
||||
|
||||
workspace = map (m: "${m.name},${m.workspace}") (
|
||||
lib.filter (m: m.enabled && m.workspace != null) config.monitors
|
||||
)
|
||||
);
|
||||
};
|
||||
|
||||
monitor = map (
|
||||
m: let
|
||||
resolution = "${toString m.width}x${toString m.height}@${toString m.refreshRate}";
|
||||
position = "${toString m.x}x${toString m.y}";
|
||||
in "${m.name},${
|
||||
if m.enabled
|
||||
then "${resolution},${position},1"
|
||||
else "disable"
|
||||
}"
|
||||
) (config.monitors);
|
||||
|
||||
workspace = map (m: "${m.name},${m.workspace}") (
|
||||
lib.filter (m: m.enabled && m.workspace != null) config.monitors
|
||||
);
|
||||
};
|
||||
# This is order sensitive, so it has to come here.
|
||||
extraConfig = ''
|
||||
# Passthrough mode (e.g. for VNC)
|
||||
|
||||
@@ -3,25 +3,24 @@
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
let
|
||||
}: let
|
||||
hyprbars =
|
||||
(pkgs.inputs.hyprland-plugins.hyprbars.override {
|
||||
# Make sure it's using the same hyprland package as we are
|
||||
hyprland = config.wayland.windowManager.hyprland.package;
|
||||
}).overrideAttrs
|
||||
(old: {
|
||||
# Yeet the initialization notification (I hate it)
|
||||
postPatch =
|
||||
(old.postPatch or "")
|
||||
+ ''
|
||||
${lib.getExe pkgs.gnused} -i '/Initialized successfully/d' main.cpp
|
||||
'';
|
||||
});
|
||||
in
|
||||
{
|
||||
})
|
||||
.overrideAttrs
|
||||
(old: {
|
||||
# Yeet the initialization notification (I hate it)
|
||||
postPatch =
|
||||
(old.postPatch or "")
|
||||
+ ''
|
||||
${lib.getExe pkgs.gnused} -i '/Initialized successfully/d' main.cpp
|
||||
'';
|
||||
});
|
||||
in {
|
||||
wayland.windowManager.hyprland = {
|
||||
plugins = [ hyprbars ];
|
||||
plugins = [hyprbars];
|
||||
settings = {
|
||||
"plugin:hyprbars" = {
|
||||
bar_height = 25;
|
||||
@@ -30,34 +29,30 @@ in
|
||||
bar_text_font = config.fontProfiles.regular.family;
|
||||
bar_text_size = 12;
|
||||
bar_part_of_window = true;
|
||||
hyprbars-button =
|
||||
let
|
||||
closeAction = "hyprctl dispatch killactive";
|
||||
hyprbars-button = let
|
||||
closeAction = "hyprctl dispatch killactive";
|
||||
|
||||
isOnSpecial = ''hyprctl activewindow -j | jq -re 'select(.workspace.name == "special")' >/dev/null'';
|
||||
moveToSpecial = "hyprctl dispatch movetoworkspacesilent special";
|
||||
moveToActive = "hyprctl dispatch movetoworkspacesilent name:$(hyprctl -j activeworkspace | jq -re '.name')";
|
||||
minimizeAction = "${isOnSpecial} && ${moveToActive} || ${moveToSpecial}";
|
||||
isOnSpecial = ''hyprctl activewindow -j | jq -re 'select(.workspace.name == "special")' >/dev/null'';
|
||||
moveToSpecial = "hyprctl dispatch movetoworkspacesilent special";
|
||||
moveToActive = "hyprctl dispatch movetoworkspacesilent name:$(hyprctl -j activeworkspace | jq -re '.name')";
|
||||
minimizeAction = "${isOnSpecial} && ${moveToActive} || ${moveToSpecial}";
|
||||
|
||||
maximizeAction = "hyprctl dispatch togglefloating";
|
||||
in
|
||||
[
|
||||
# Red close button
|
||||
"rgb(${config.colorscheme.colors.base08}),12,,${closeAction}"
|
||||
# Yellow "minimize" (send to special workspace) button
|
||||
"rgb(${config.colorscheme.colors.base0A}),12,,${minimizeAction}"
|
||||
# Green "maximize" (togglefloating) button
|
||||
"rgb(${config.colorscheme.colors.base0B}),12,,${maximizeAction}"
|
||||
];
|
||||
maximizeAction = "hyprctl dispatch togglefloating";
|
||||
in [
|
||||
# Red close button
|
||||
"rgb(${config.colorscheme.colors.base08}),12,,${closeAction}"
|
||||
# Yellow "minimize" (send to special workspace) button
|
||||
"rgb(${config.colorscheme.colors.base0A}),12,,${minimizeAction}"
|
||||
# Green "maximize" (togglefloating) button
|
||||
"rgb(${config.colorscheme.colors.base0B}),12,,${maximizeAction}"
|
||||
];
|
||||
};
|
||||
bind =
|
||||
let
|
||||
barsEnabled = "hyprctl -j getoption plugin:hyprbars:bar_height | ${lib.getExe pkgs.jq} -re '.int != 0'";
|
||||
setBarHeight = height: "hyprctl keyword plugin:hyprbars:bar_height ${toString height}";
|
||||
toggleOn = setBarHeight config.wayland.windowManager.hyprland.settings."plugin:hyprbars".bar_height;
|
||||
toggleOff = setBarHeight 0;
|
||||
in
|
||||
[ "SUPER,m,exec,${barsEnabled} && ${toggleOff} || ${toggleOn}" ];
|
||||
bind = let
|
||||
barsEnabled = "hyprctl -j getoption plugin:hyprbars:bar_height | ${lib.getExe pkgs.jq} -re '.int != 0'";
|
||||
setBarHeight = height: "hyprctl keyword plugin:hyprbars:bar_height ${toString height}";
|
||||
toggleOn = setBarHeight config.wayland.windowManager.hyprland.settings."plugin:hyprbars".bar_height;
|
||||
toggleOff = setBarHeight 0;
|
||||
in ["SUPER,m,exec,${barsEnabled} && ${toggleOff} || ${toggleOn}"];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1 +1 @@
|
||||
{ imports = [ ./wpa-gui.nix ]; }
|
||||
{imports = [./wpa-gui.nix];}
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = [ pkgs.wpa_supplicant_gui ];
|
||||
{pkgs, ...}: {
|
||||
home.packages = [pkgs.wpa_supplicant_gui];
|
||||
}
|
||||
|
||||
@@ -1,12 +1,15 @@
|
||||
{ pkgs, config, ... }:
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
programs.emacs = {
|
||||
enable = true;
|
||||
package = pkgs.emacs-gtk;
|
||||
|
||||
overrides = final: _prev: { nix-theme = final.callPackage ./theme.nix { inherit config; }; };
|
||||
extraPackages =
|
||||
epkgs: with epkgs; [
|
||||
overrides = final: _prev: {nix-theme = final.callPackage ./theme.nix {inherit config;};};
|
||||
extraPackages = epkgs:
|
||||
with epkgs; [
|
||||
nix-theme
|
||||
|
||||
nix-mode
|
||||
|
||||
@@ -3,15 +3,15 @@
|
||||
writeText,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
}: let
|
||||
emacsPackages = emacsPackagesFor config.programs.emacs.package;
|
||||
scheme = config.colorscheme;
|
||||
in
|
||||
emacsPackages.trivialBuild {
|
||||
pname = "theme";
|
||||
src =
|
||||
writeText "nix-${scheme.slug}.el" # commonlisp
|
||||
emacsPackages.trivialBuild {
|
||||
pname = "theme";
|
||||
src =
|
||||
writeText "nix-${scheme.slug}.el" # commonlisp
|
||||
|
||||
''
|
||||
(require 'base16-theme)
|
||||
|
||||
@@ -45,5 +45,5 @@ emacsPackages.trivialBuild {
|
||||
|
||||
(provide 'base16-${scheme.slug}-theme)
|
||||
'';
|
||||
packageRequires = [ emacsPackages.base16-theme ];
|
||||
}
|
||||
packageRequires = [emacsPackages.base16-theme];
|
||||
}
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
{pkgs, ...}: {
|
||||
imports = [
|
||||
./lutris.nix
|
||||
./steam.nix
|
||||
@@ -7,7 +6,7 @@
|
||||
./runescape.nix
|
||||
];
|
||||
home = {
|
||||
packages = with pkgs; [ gamescope ];
|
||||
packages = with pkgs; [gamescope];
|
||||
persistence = {
|
||||
"/persist/home/misterio" = {
|
||||
allowOther = true;
|
||||
|
||||
@@ -1,11 +1,14 @@
|
||||
{ lib, pkgs, ... }:
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
home = {
|
||||
packages = [ pkgs.factorio ];
|
||||
packages = [pkgs.factorio];
|
||||
persistence = {
|
||||
"/persist/home/misterio" = {
|
||||
allowOther = true;
|
||||
directories = [ ".factorio" ];
|
||||
directories = [".factorio"];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
{ pkgs, lib, ... }:
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
home.packages = [
|
||||
(pkgs.lutris.override {
|
||||
extraPkgs = p: [
|
||||
|
||||
@@ -1,8 +1,11 @@
|
||||
{ pkgs, lib, ... }:
|
||||
{
|
||||
home.packages = [ pkgs.osu-lazer ];
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
home.packages = [pkgs.osu-lazer];
|
||||
|
||||
home.persistence = {
|
||||
"/persist/home/misterio".directories = [ ".local/share/osu" ];
|
||||
"/persist/home/misterio".directories = [".local/share/osu"];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,8 +1,11 @@
|
||||
{ pkgs, lib, ... }:
|
||||
{
|
||||
home.packages = [ pkgs.prismlauncher-qt5 ];
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
home.packages = [pkgs.prismlauncher-qt5];
|
||||
|
||||
home.persistence = {
|
||||
"/persist/home/misterio".directories = [ ".local/share/PrismLauncher" ];
|
||||
"/persist/home/misterio".directories = [".local/share/PrismLauncher"];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,33 +1,38 @@
|
||||
{ pkgs, lib, ... }:
|
||||
let
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
# Add PULSE_LATENCY_MSEC to .desktop file
|
||||
pulse_latency = 100;
|
||||
runescape = pkgs.runescape.overrideAttrs (oa: {
|
||||
nativeBuildInputs = (oa.nativeBuildInputs or [ ]) ++ [ pkgs.makeWrapper ];
|
||||
nativeBuildInputs = (oa.nativeBuildInputs or []) ++ [pkgs.makeWrapper];
|
||||
buildCommand =
|
||||
(oa.buildCommand or "")
|
||||
# bash
|
||||
+ ''
|
||||
+
|
||||
/*
|
||||
bash
|
||||
*/
|
||||
''
|
||||
wrapProgram "$out/bin/RuneScape" \
|
||||
--set PULSE_LATENCY_MSEC ${toString pulse_latency} \
|
||||
--run 'echo $PULSE_LATENCY_MSEC'
|
||||
'';
|
||||
});
|
||||
openssl = lib.head (lib.filter (p: p.pname == "openssl") runescape.fhsenv.targetPaths);
|
||||
in
|
||||
{
|
||||
in {
|
||||
home.packages = [
|
||||
runescape
|
||||
# TODO: Broken
|
||||
# pkgs.runelite
|
||||
];
|
||||
|
||||
nixpkgs.config.permittedInsecurePackages = [ openssl.name ];
|
||||
nixpkgs.config.permittedInsecurePackages = [openssl.name];
|
||||
|
||||
home.persistence = {
|
||||
"/persist/home/misterio" = {
|
||||
allowOther = true;
|
||||
directories = [ "Jagex" ];
|
||||
directories = ["Jagex"];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = [ pkgs.inputs.nix-gaming.star-citizen ];
|
||||
{pkgs, ...}: {
|
||||
home.packages = [pkgs.inputs.nix-gaming.star-citizen];
|
||||
}
|
||||
|
||||
@@ -3,11 +3,10 @@
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
}: let
|
||||
steam-with-pkgs = pkgs.steam.override {
|
||||
extraPkgs =
|
||||
pkgs: with pkgs; [
|
||||
extraPkgs = pkgs:
|
||||
with pkgs; [
|
||||
xorg.libXcursor
|
||||
xorg.libXi
|
||||
xorg.libXinerama
|
||||
@@ -24,33 +23,32 @@ let
|
||||
};
|
||||
|
||||
monitor = lib.head (lib.filter (m: m.primary) config.monitors);
|
||||
steam-session =
|
||||
let
|
||||
gamescope = lib.concatStringsSep " " [
|
||||
(lib.getExe pkgs.gamescope)
|
||||
"--output-width ${toString monitor.width}"
|
||||
"--output-height ${toString monitor.height}"
|
||||
"--framerate-limit ${toString monitor.refreshRate}"
|
||||
"--prefer-output ${monitor.name}"
|
||||
"--adaptive-sync"
|
||||
"--expose-wayland"
|
||||
"--hdr-enabled"
|
||||
"--steam"
|
||||
];
|
||||
steam = lib.concatStringsSep " " [
|
||||
"steam"
|
||||
"steam://open/bigpicture"
|
||||
];
|
||||
in
|
||||
steam-session = let
|
||||
gamescope = lib.concatStringsSep " " [
|
||||
(lib.getExe pkgs.gamescope)
|
||||
"--output-width ${toString monitor.width}"
|
||||
"--output-height ${toString monitor.height}"
|
||||
"--framerate-limit ${toString monitor.refreshRate}"
|
||||
"--prefer-output ${monitor.name}"
|
||||
"--adaptive-sync"
|
||||
"--expose-wayland"
|
||||
"--hdr-enabled"
|
||||
"--steam"
|
||||
];
|
||||
steam = lib.concatStringsSep " " [
|
||||
"steam"
|
||||
"steam://open/bigpicture"
|
||||
];
|
||||
in
|
||||
pkgs.writeTextDir "share/wayland-sessions/steam-sesson.desktop" # ini
|
||||
''
|
||||
[Desktop Entry]
|
||||
Name=Steam Session
|
||||
Exec=${gamescope} -- ${steam}
|
||||
Type=Application
|
||||
'';
|
||||
in
|
||||
{
|
||||
|
||||
''
|
||||
[Desktop Entry]
|
||||
Name=Steam Session
|
||||
Exec=${gamescope} -- ${steam}
|
||||
Type=Application
|
||||
'';
|
||||
in {
|
||||
home.packages = with pkgs; [
|
||||
steam-with-pkgs
|
||||
steam-session
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
{ pkgs, lib, ... }:
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
# Temporarily disabled while I wait for nixpkgs to package a fork (e.g. suyu)
|
||||
# home.packages = [ pkgs.yuzu-mainline ];
|
||||
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
{ config, ... }:
|
||||
let
|
||||
{config, ...}: let
|
||||
inherit (config) colorscheme;
|
||||
in
|
||||
{
|
||||
in {
|
||||
home.sessionVariables.COLORTERM = "truecolor";
|
||||
programs.helix = {
|
||||
enable = true;
|
||||
@@ -19,6 +17,6 @@ in
|
||||
};
|
||||
};
|
||||
};
|
||||
themes = import ./theme.nix { inherit colorscheme; };
|
||||
themes = import ./theme.nix {inherit colorscheme;};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
{ colorscheme }:
|
||||
{
|
||||
{colorscheme}: {
|
||||
"${colorscheme.slug}" = {
|
||||
palette = builtins.mapAttrs (name: value: "#${value}") colorscheme.colors; # Add leading '#'
|
||||
"attributes" = "base09";
|
||||
"comment" = {
|
||||
fg = "base03";
|
||||
modifiers = [ "italic" ];
|
||||
modifiers = ["italic"];
|
||||
};
|
||||
"constant" = "base09";
|
||||
"constant.character.escape" = "base0C";
|
||||
@@ -13,7 +12,7 @@
|
||||
"constructor" = "base0D";
|
||||
"debug" = "base03";
|
||||
"diagnostic" = {
|
||||
modifiers = [ "underlined" ];
|
||||
modifiers = ["underlined"];
|
||||
};
|
||||
"diagnostic.error" = {
|
||||
underline = {
|
||||
@@ -46,23 +45,23 @@
|
||||
"label" = "base0E";
|
||||
"markup.bold" = {
|
||||
fg = "base0A";
|
||||
modifiers = [ "bold" ];
|
||||
modifiers = ["bold"];
|
||||
};
|
||||
"markup.heading" = "base0D";
|
||||
"markup.italic" = {
|
||||
fg = "base0E";
|
||||
modifiers = [ "italic" ];
|
||||
modifiers = ["italic"];
|
||||
};
|
||||
"markup.link.text" = "base08";
|
||||
"markup.link.url" = {
|
||||
fg = "base09";
|
||||
modifiers = [ "underlined" ];
|
||||
modifiers = ["underlined"];
|
||||
};
|
||||
"markup.list" = "base08";
|
||||
"markup.quote" = "base0C";
|
||||
"markup.raw" = "base0B";
|
||||
"markup.strikethrough" = {
|
||||
modifiers = [ "crossed_out" ];
|
||||
modifiers = ["crossed_out"];
|
||||
};
|
||||
"namespace" = "base0E";
|
||||
"operator" = "base05";
|
||||
@@ -79,23 +78,23 @@
|
||||
"ui.bufferline.active" = {
|
||||
fg = "base00";
|
||||
bg = "base03";
|
||||
modifiers = [ "bold" ];
|
||||
modifiers = ["bold"];
|
||||
};
|
||||
"ui.cursor" = {
|
||||
fg = "base04";
|
||||
modifiers = [ "reversed" ];
|
||||
modifiers = ["reversed"];
|
||||
};
|
||||
"ui.cursor.insert" = {
|
||||
fg = "base0A";
|
||||
modifiers = [ "underlined" ];
|
||||
modifiers = ["underlined"];
|
||||
};
|
||||
"ui.cursor.match" = {
|
||||
fg = "base0A";
|
||||
modifiers = [ "underlined" ];
|
||||
modifiers = ["underlined"];
|
||||
};
|
||||
"ui.cursor.select" = {
|
||||
fg = "base0A";
|
||||
modifiers = [ "underlined" ];
|
||||
modifiers = ["underlined"];
|
||||
};
|
||||
"ui.cursorline.primary" = {
|
||||
fg = "base05";
|
||||
@@ -115,7 +114,7 @@
|
||||
"ui.linenr.selected" = {
|
||||
fg = "base04";
|
||||
bg = "base01";
|
||||
modifiers = [ "bold" ];
|
||||
modifiers = ["bold"];
|
||||
};
|
||||
"ui.menu" = {
|
||||
fg = "base05";
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [ alsa-utils ];
|
||||
{pkgs, ...}: {
|
||||
home.packages = with pkgs; [alsa-utils];
|
||||
services.fluidsynth = {
|
||||
enable = true;
|
||||
soundService = "pipewire-pulse";
|
||||
extraOptions = [ "-g 2" ];
|
||||
extraOptions = ["-g 2"];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
{ config, pkgs, ... }:
|
||||
let
|
||||
color = pkgs.writeText "color.vim" (import ./theme.nix config.colorscheme);
|
||||
in
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
color = pkgs.writeText "color.vim" (import ./theme.nix config.colorscheme);
|
||||
in {
|
||||
imports = [
|
||||
./lsp.nix
|
||||
./syntaxes.nix
|
||||
@@ -13,7 +15,10 @@ in
|
||||
programs.neovim = {
|
||||
enable = true;
|
||||
|
||||
extraConfig = /* vim */
|
||||
extraConfig =
|
||||
/*
|
||||
vim
|
||||
*/
|
||||
''
|
||||
"Use system clipboard
|
||||
set clipboard=unnamedplus
|
||||
@@ -112,7 +117,10 @@ in
|
||||
"Sudo save
|
||||
cmap w!! w !sudo tee > /dev/null %
|
||||
'';
|
||||
extraLuaConfig = /* lua */
|
||||
extraLuaConfig =
|
||||
/*
|
||||
lua
|
||||
*/
|
||||
''
|
||||
vim.keymap.set("n", "gD", vim.lsp.buf.declaration, { desc = "Go to declaration" })
|
||||
vim.keymap.set("n", "gd", vim.lsp.buf.definition, { desc = "Go to definition" })
|
||||
@@ -145,7 +153,10 @@ in
|
||||
{
|
||||
plugin = nvim-autopairs;
|
||||
type = "lua";
|
||||
config = /* lua */
|
||||
config =
|
||||
/*
|
||||
lua
|
||||
*/
|
||||
''
|
||||
require('nvim-autopairs').setup{}
|
||||
'';
|
||||
@@ -153,7 +164,10 @@ in
|
||||
];
|
||||
};
|
||||
|
||||
xdg.configFile."nvim/init.lua".onChange = /* bash */
|
||||
xdg.configFile."nvim/init.lua".onChange =
|
||||
/*
|
||||
bash
|
||||
*/
|
||||
''
|
||||
XDG_RUNTIME_DIR=''${XDG_RUNTIME_DIR:-/run/user/$(id -u)}
|
||||
for server in $XDG_RUNTIME_DIR/nvim.*; do
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
{pkgs, ...}: {
|
||||
programs.neovim.plugins = with pkgs.vimPlugins; [
|
||||
# LSP and completions for injected langs
|
||||
otter-nvim
|
||||
@@ -8,7 +7,10 @@
|
||||
{
|
||||
plugin = nvim-lspconfig;
|
||||
type = "lua";
|
||||
config = /* lua */
|
||||
config =
|
||||
/*
|
||||
lua
|
||||
*/
|
||||
''
|
||||
local lspconfig = require('lspconfig')
|
||||
function add_lsp(server, options)
|
||||
@@ -51,7 +53,10 @@
|
||||
{
|
||||
plugin = ltex_extra-nvim;
|
||||
type = "lua";
|
||||
config = /* lua */
|
||||
config =
|
||||
/*
|
||||
lua
|
||||
*/
|
||||
''
|
||||
local ltex_extra = require('ltex_extra')
|
||||
add_lsp(lspconfig.ltex, {
|
||||
@@ -66,7 +71,10 @@
|
||||
{
|
||||
plugin = rust-tools-nvim;
|
||||
type = "lua";
|
||||
config = /* lua */
|
||||
config =
|
||||
/*
|
||||
lua
|
||||
*/
|
||||
''
|
||||
local rust_tools = require('rust-tools')
|
||||
add_lsp(rust_tools, {
|
||||
@@ -89,7 +97,10 @@
|
||||
{
|
||||
plugin = cmp-git;
|
||||
type = "lua";
|
||||
config = /* lua */
|
||||
config =
|
||||
/*
|
||||
lua
|
||||
*/
|
||||
''
|
||||
require("cmp_git").setup({})
|
||||
'';
|
||||
@@ -99,7 +110,10 @@
|
||||
{
|
||||
plugin = nvim-cmp;
|
||||
type = "lua";
|
||||
config = /* lua */
|
||||
config =
|
||||
/*
|
||||
lua
|
||||
*/
|
||||
''
|
||||
local cmp = require('cmp')
|
||||
|
||||
|
||||
@@ -3,21 +3,21 @@
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
{
|
||||
}: {
|
||||
programs.neovim = {
|
||||
extraConfig =
|
||||
lib.mkAfter # vim
|
||||
''
|
||||
function! SetCustomKeywords()
|
||||
syn match Todo /TODO/
|
||||
syn match Done /DONE/
|
||||
syn match Start /START/
|
||||
syn match End /END/
|
||||
endfunction
|
||||
|
||||
''
|
||||
function! SetCustomKeywords()
|
||||
syn match Todo /TODO/
|
||||
syn match Done /DONE/
|
||||
syn match Start /START/
|
||||
syn match End /END/
|
||||
endfunction
|
||||
|
||||
autocmd Syntax * call SetCustomKeywords()
|
||||
'';
|
||||
autocmd Syntax * call SetCustomKeywords()
|
||||
'';
|
||||
plugins = with pkgs.vimPlugins; [
|
||||
rust-vim
|
||||
dart-vim-plugin
|
||||
@@ -37,9 +37,16 @@
|
||||
|
||||
{
|
||||
plugin = vimtex;
|
||||
config = /* vim */
|
||||
config =
|
||||
/*
|
||||
vim
|
||||
*/
|
||||
''
|
||||
let g:vimtex_view_method = '${if config.programs.zathura.enable then "zathura" else "general"}'
|
||||
let g:vimtex_view_method = '${
|
||||
if config.programs.zathura.enable
|
||||
then "zathura"
|
||||
else "general"
|
||||
}'
|
||||
'';
|
||||
}
|
||||
|
||||
@@ -47,7 +54,10 @@
|
||||
{
|
||||
plugin = nvim-treesitter.withAllGrammars;
|
||||
type = "lua";
|
||||
config = /* lua */
|
||||
config =
|
||||
/*
|
||||
lua
|
||||
*/
|
||||
''
|
||||
require('nvim-treesitter.configs').setup{
|
||||
highlight = {
|
||||
|
||||
@@ -1,332 +1,333 @@
|
||||
scheme:
|
||||
let
|
||||
scheme: let
|
||||
c = scheme.colors;
|
||||
in
|
||||
# vim
|
||||
''
|
||||
let g:colors_name="nix-${scheme.slug}"
|
||||
/*
|
||||
vim
|
||||
*/
|
||||
''
|
||||
let g:colors_name="nix-${scheme.slug}"
|
||||
|
||||
set termguicolors
|
||||
set termguicolors
|
||||
|
||||
if exists("syntax_on")
|
||||
syntax reset
|
||||
endif
|
||||
if exists("syntax_on")
|
||||
syntax reset
|
||||
endif
|
||||
|
||||
hi clear
|
||||
hi clear
|
||||
|
||||
hi Normal guifg=#${c.base05} guibg=#${c.base00} gui=NONE guisp=NONE
|
||||
hi Bold guifg=NONE guibg=NONE gui=bold guisp=NONE
|
||||
hi Debug guifg=#${c.base08} guibg=NONE gui=NONE guisp=NONE
|
||||
hi Directory guifg=#${c.base0D} guibg=NONE gui=NONE guisp=NONE
|
||||
hi Error guifg=#${c.base00} guibg=#${c.base08} gui=NONE guisp=NONE
|
||||
hi ErrorMsg guifg=#${c.base08} guibg=#${c.base00} gui=NONE guisp=NONE
|
||||
hi Exception guifg=#${c.base08} guibg=NONE gui=NONE guisp=NONE
|
||||
hi FoldColumn guifg=#${c.base0C} guibg=#${c.base00} gui=NONE guisp=NONE
|
||||
hi Folded guifg=#${c.base03} guibg=#${c.base01} gui=NONE guisp=NONE
|
||||
hi IncSearch guifg=#${c.base01} guibg=#${c.base09} gui=NONE guisp=NONE
|
||||
hi Italic guifg=NONE guibg=NONE gui=NONE guisp=NONE
|
||||
hi Macro guifg=#${c.base08} guibg=NONE gui=NONE guisp=NONE
|
||||
hi MatchParen guifg=NONE guibg=#${c.base03} gui=NONE guisp=NONE
|
||||
hi ModeMsg guifg=#${c.base0B} guibg=NONE gui=NONE guisp=NONE
|
||||
hi MoreMsg guifg=#${c.base0B} guibg=NONE gui=NONE guisp=NONE
|
||||
hi Question guifg=#${c.base0D} guibg=NONE gui=NONE guisp=NONE
|
||||
hi Search guifg=#${c.base01} guibg=#${c.base0A} gui=NONE guisp=NONE
|
||||
hi Substitute guifg=#${c.base01} guibg=#${c.base0A} gui=NONE guisp=NONE
|
||||
hi SpecialKey guifg=#${c.base03} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TooLong guifg=#${c.base08} guibg=NONE gui=NONE guisp=NONE
|
||||
hi Underlined guifg=#${c.base08} guibg=NONE gui=NONE guisp=NONE
|
||||
hi Visual guifg=NONE guibg=#${c.base02} gui=NONE guisp=NONE
|
||||
hi VisualNOS guifg=#${c.base08} guibg=NONE gui=NONE guisp=NONE
|
||||
hi WarningMsg guifg=#${c.base08} guibg=NONE gui=NONE guisp=NONE
|
||||
hi WildMenu guifg=#${c.base08} guibg=#${c.base0A} gui=NONE guisp=NONE
|
||||
hi Title guifg=#${c.base0D} guibg=NONE gui=NONE guisp=NONE
|
||||
hi Conceal guifg=#${c.base0D} guibg=#${c.base00} gui=NONE guisp=NONE
|
||||
hi Cursor guifg=#${c.base00} guibg=#${c.base05} gui=NONE guisp=NONE
|
||||
hi NonText guifg=#${c.base03} guibg=NONE gui=NONE guisp=NONE
|
||||
hi LineNr guifg=#${c.base04} guibg=#${c.base00} gui=NONE guisp=NONE
|
||||
hi SignColumn guifg=#${c.base04} guibg=#${c.base00} gui=NONE guisp=NONE
|
||||
hi StatusLine guifg=#${c.base0B} guibg=#${c.base02} gui=NONE guisp=NONE
|
||||
hi StatusLineNC guifg=#${c.base04} guibg=#${c.base01} gui=NONE guisp=NONE
|
||||
hi VertSplit guifg=#${c.base01} guibg=#${c.base00} gui=NONE guisp=NONE
|
||||
hi ColorColumn guifg=NONE guibg=#${c.base01} gui=NONE guisp=NONE
|
||||
hi CursorColumn guifg=NONE guibg=#${c.base01} gui=NONE guisp=NONE
|
||||
hi CursorLine guifg=NONE guibg=#${c.base02} gui=NONE guisp=NONE
|
||||
hi CursorLineNr guifg=#${c.base0B} guibg=#${c.base01} gui=NONE guisp=NONE
|
||||
hi QuickFixLine guifg=NONE guibg=#${c.base01} gui=NONE guisp=NONE
|
||||
hi PMenu guifg=#${c.base05} guibg=#${c.base01} gui=NONE guisp=NONE
|
||||
hi PMenuSel guifg=#${c.base01} guibg=#${c.base05} gui=NONE guisp=NONE
|
||||
hi TabLine guifg=#${c.base03} guibg=#${c.base01} gui=NONE guisp=NONE
|
||||
hi TabLineFill guifg=#${c.base03} guibg=#${c.base02} gui=NONE guisp=NONE
|
||||
hi TabLineSel guifg=#${c.base0B} guibg=#${c.base01} gui=NONE guisp=NONE
|
||||
hi EndOfBuffer guifg=#${c.base00} guibg=NONE gui=NONE guisp=NONE
|
||||
hi Normal guifg=#${c.base05} guibg=#${c.base00} gui=NONE guisp=NONE
|
||||
hi Bold guifg=NONE guibg=NONE gui=bold guisp=NONE
|
||||
hi Debug guifg=#${c.base08} guibg=NONE gui=NONE guisp=NONE
|
||||
hi Directory guifg=#${c.base0D} guibg=NONE gui=NONE guisp=NONE
|
||||
hi Error guifg=#${c.base00} guibg=#${c.base08} gui=NONE guisp=NONE
|
||||
hi ErrorMsg guifg=#${c.base08} guibg=#${c.base00} gui=NONE guisp=NONE
|
||||
hi Exception guifg=#${c.base08} guibg=NONE gui=NONE guisp=NONE
|
||||
hi FoldColumn guifg=#${c.base0C} guibg=#${c.base00} gui=NONE guisp=NONE
|
||||
hi Folded guifg=#${c.base03} guibg=#${c.base01} gui=NONE guisp=NONE
|
||||
hi IncSearch guifg=#${c.base01} guibg=#${c.base09} gui=NONE guisp=NONE
|
||||
hi Italic guifg=NONE guibg=NONE gui=NONE guisp=NONE
|
||||
hi Macro guifg=#${c.base08} guibg=NONE gui=NONE guisp=NONE
|
||||
hi MatchParen guifg=NONE guibg=#${c.base03} gui=NONE guisp=NONE
|
||||
hi ModeMsg guifg=#${c.base0B} guibg=NONE gui=NONE guisp=NONE
|
||||
hi MoreMsg guifg=#${c.base0B} guibg=NONE gui=NONE guisp=NONE
|
||||
hi Question guifg=#${c.base0D} guibg=NONE gui=NONE guisp=NONE
|
||||
hi Search guifg=#${c.base01} guibg=#${c.base0A} gui=NONE guisp=NONE
|
||||
hi Substitute guifg=#${c.base01} guibg=#${c.base0A} gui=NONE guisp=NONE
|
||||
hi SpecialKey guifg=#${c.base03} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TooLong guifg=#${c.base08} guibg=NONE gui=NONE guisp=NONE
|
||||
hi Underlined guifg=#${c.base08} guibg=NONE gui=NONE guisp=NONE
|
||||
hi Visual guifg=NONE guibg=#${c.base02} gui=NONE guisp=NONE
|
||||
hi VisualNOS guifg=#${c.base08} guibg=NONE gui=NONE guisp=NONE
|
||||
hi WarningMsg guifg=#${c.base08} guibg=NONE gui=NONE guisp=NONE
|
||||
hi WildMenu guifg=#${c.base08} guibg=#${c.base0A} gui=NONE guisp=NONE
|
||||
hi Title guifg=#${c.base0D} guibg=NONE gui=NONE guisp=NONE
|
||||
hi Conceal guifg=#${c.base0D} guibg=#${c.base00} gui=NONE guisp=NONE
|
||||
hi Cursor guifg=#${c.base00} guibg=#${c.base05} gui=NONE guisp=NONE
|
||||
hi NonText guifg=#${c.base03} guibg=NONE gui=NONE guisp=NONE
|
||||
hi LineNr guifg=#${c.base04} guibg=#${c.base00} gui=NONE guisp=NONE
|
||||
hi SignColumn guifg=#${c.base04} guibg=#${c.base00} gui=NONE guisp=NONE
|
||||
hi StatusLine guifg=#${c.base0B} guibg=#${c.base02} gui=NONE guisp=NONE
|
||||
hi StatusLineNC guifg=#${c.base04} guibg=#${c.base01} gui=NONE guisp=NONE
|
||||
hi VertSplit guifg=#${c.base01} guibg=#${c.base00} gui=NONE guisp=NONE
|
||||
hi ColorColumn guifg=NONE guibg=#${c.base01} gui=NONE guisp=NONE
|
||||
hi CursorColumn guifg=NONE guibg=#${c.base01} gui=NONE guisp=NONE
|
||||
hi CursorLine guifg=NONE guibg=#${c.base02} gui=NONE guisp=NONE
|
||||
hi CursorLineNr guifg=#${c.base0B} guibg=#${c.base01} gui=NONE guisp=NONE
|
||||
hi QuickFixLine guifg=NONE guibg=#${c.base01} gui=NONE guisp=NONE
|
||||
hi PMenu guifg=#${c.base05} guibg=#${c.base01} gui=NONE guisp=NONE
|
||||
hi PMenuSel guifg=#${c.base01} guibg=#${c.base05} gui=NONE guisp=NONE
|
||||
hi TabLine guifg=#${c.base03} guibg=#${c.base01} gui=NONE guisp=NONE
|
||||
hi TabLineFill guifg=#${c.base03} guibg=#${c.base02} gui=NONE guisp=NONE
|
||||
hi TabLineSel guifg=#${c.base0B} guibg=#${c.base01} gui=NONE guisp=NONE
|
||||
hi EndOfBuffer guifg=#${c.base00} guibg=NONE gui=NONE guisp=NONE
|
||||
|
||||
hi Boolean guifg=#${c.base09} guibg=NONE gui=NONE guisp=NONE
|
||||
hi Character guifg=#${c.base08} guibg=NONE gui=NONE guisp=NONE
|
||||
hi Comment guifg=#${c.base03} guibg=NONE gui=NONE guisp=NONE
|
||||
hi Conditional guifg=#${c.base0E} guibg=NONE gui=NONE guisp=NONE
|
||||
hi Constant guifg=#${c.base09} guibg=NONE gui=NONE guisp=NONE
|
||||
hi Define guifg=#${c.base0E} guibg=NONE gui=NONE guisp=NONE
|
||||
hi Delimiter guifg=#${c.base0F} guibg=NONE gui=NONE guisp=NONE
|
||||
hi Float guifg=#${c.base09} guibg=NONE gui=NONE guisp=NONE
|
||||
hi Function guifg=#${c.base0D} guibg=NONE gui=NONE guisp=NONE
|
||||
hi Identifier guifg=#${c.base08} guibg=NONE gui=NONE guisp=NONE
|
||||
hi Include guifg=#${c.base0D} guibg=NONE gui=NONE guisp=NONE
|
||||
hi Keyword guifg=#${c.base0E} guibg=NONE gui=NONE guisp=NONE
|
||||
hi Label guifg=#${c.base0A} guibg=NONE gui=NONE guisp=NONE
|
||||
hi Number guifg=#${c.base09} guibg=NONE gui=NONE guisp=NONE
|
||||
hi Operator guifg=#${c.base05} guibg=NONE gui=NONE guisp=NONE
|
||||
hi PreProc guifg=#${c.base0A} guibg=NONE gui=NONE guisp=NONE
|
||||
hi Repeat guifg=#${c.base0A} guibg=NONE gui=NONE guisp=NONE
|
||||
hi Special guifg=#${c.base0C} guibg=NONE gui=NONE guisp=NONE
|
||||
hi SpecialChar guifg=#${c.base0F} guibg=NONE gui=NONE guisp=NONE
|
||||
hi Statement guifg=#${c.base08} guibg=NONE gui=NONE guisp=NONE
|
||||
hi StorageClass guifg=#${c.base0A} guibg=NONE gui=NONE guisp=NONE
|
||||
hi String guifg=#${c.base0B} guibg=NONE gui=NONE guisp=NONE
|
||||
hi Structure guifg=#${c.base0E} guibg=NONE gui=NONE guisp=NONE
|
||||
hi Tag guifg=#${c.base0A} guibg=NONE gui=NONE guisp=NONE
|
||||
hi Type guifg=#${c.base0A} guibg=NONE gui=NONE guisp=NONE
|
||||
hi Typedef guifg=#${c.base0A} guibg=NONE gui=NONE guisp=NONE
|
||||
hi Boolean guifg=#${c.base09} guibg=NONE gui=NONE guisp=NONE
|
||||
hi Character guifg=#${c.base08} guibg=NONE gui=NONE guisp=NONE
|
||||
hi Comment guifg=#${c.base03} guibg=NONE gui=NONE guisp=NONE
|
||||
hi Conditional guifg=#${c.base0E} guibg=NONE gui=NONE guisp=NONE
|
||||
hi Constant guifg=#${c.base09} guibg=NONE gui=NONE guisp=NONE
|
||||
hi Define guifg=#${c.base0E} guibg=NONE gui=NONE guisp=NONE
|
||||
hi Delimiter guifg=#${c.base0F} guibg=NONE gui=NONE guisp=NONE
|
||||
hi Float guifg=#${c.base09} guibg=NONE gui=NONE guisp=NONE
|
||||
hi Function guifg=#${c.base0D} guibg=NONE gui=NONE guisp=NONE
|
||||
hi Identifier guifg=#${c.base08} guibg=NONE gui=NONE guisp=NONE
|
||||
hi Include guifg=#${c.base0D} guibg=NONE gui=NONE guisp=NONE
|
||||
hi Keyword guifg=#${c.base0E} guibg=NONE gui=NONE guisp=NONE
|
||||
hi Label guifg=#${c.base0A} guibg=NONE gui=NONE guisp=NONE
|
||||
hi Number guifg=#${c.base09} guibg=NONE gui=NONE guisp=NONE
|
||||
hi Operator guifg=#${c.base05} guibg=NONE gui=NONE guisp=NONE
|
||||
hi PreProc guifg=#${c.base0A} guibg=NONE gui=NONE guisp=NONE
|
||||
hi Repeat guifg=#${c.base0A} guibg=NONE gui=NONE guisp=NONE
|
||||
hi Special guifg=#${c.base0C} guibg=NONE gui=NONE guisp=NONE
|
||||
hi SpecialChar guifg=#${c.base0F} guibg=NONE gui=NONE guisp=NONE
|
||||
hi Statement guifg=#${c.base08} guibg=NONE gui=NONE guisp=NONE
|
||||
hi StorageClass guifg=#${c.base0A} guibg=NONE gui=NONE guisp=NONE
|
||||
hi String guifg=#${c.base0B} guibg=NONE gui=NONE guisp=NONE
|
||||
hi Structure guifg=#${c.base0E} guibg=NONE gui=NONE guisp=NONE
|
||||
hi Tag guifg=#${c.base0A} guibg=NONE gui=NONE guisp=NONE
|
||||
hi Type guifg=#${c.base0A} guibg=NONE gui=NONE guisp=NONE
|
||||
hi Typedef guifg=#${c.base0A} guibg=NONE gui=NONE guisp=NONE
|
||||
|
||||
hi Todo guifg=#${c.base01} guibg=#${c.base0A} gui=NONE guisp=NONE
|
||||
hi Done guifg=#${c.base01} guibg=#${c.base0B} gui=NONE guisp=NONE
|
||||
hi Start guifg=#${c.base01} guibg=#${c.base0D} gui=NONE guisp=NONE
|
||||
hi End guifg=#${c.base01} guibg=#${c.base0E} gui=NONE guisp=NONE
|
||||
hi Todo guifg=#${c.base01} guibg=#${c.base0A} gui=NONE guisp=NONE
|
||||
hi Done guifg=#${c.base01} guibg=#${c.base0B} gui=NONE guisp=NONE
|
||||
hi Start guifg=#${c.base01} guibg=#${c.base0D} gui=NONE guisp=NONE
|
||||
hi End guifg=#${c.base01} guibg=#${c.base0E} gui=NONE guisp=NONE
|
||||
|
||||
hi DiffAdd guifg=#${c.base0B} guibg=#${c.base00} gui=NONE guisp=NONE
|
||||
hi DiffChange guifg=#${c.base03} guibg=#${c.base00} gui=NONE guisp=NONE
|
||||
hi DiffDelete guifg=#${c.base08} guibg=#${c.base00} gui=NONE guisp=NONE
|
||||
hi DiffText guifg=#${c.base0D} guibg=#${c.base00} gui=NONE guisp=NONE
|
||||
hi DiffAdded guifg=#${c.base0B} guibg=#${c.base00} gui=NONE guisp=NONE
|
||||
hi DiffFile guifg=#${c.base08} guibg=#${c.base00} gui=NONE guisp=NONE
|
||||
hi DiffNewFile guifg=#${c.base0B} guibg=#${c.base00} gui=NONE guisp=NONE
|
||||
hi DiffLine guifg=#${c.base0D} guibg=#${c.base00} gui=NONE guisp=NONE
|
||||
hi DiffRemoved guifg=#${c.base08} guibg=#${c.base00} gui=NONE guisp=NONE
|
||||
hi DiffAdd guifg=#${c.base0B} guibg=#${c.base00} gui=NONE guisp=NONE
|
||||
hi DiffChange guifg=#${c.base03} guibg=#${c.base00} gui=NONE guisp=NONE
|
||||
hi DiffDelete guifg=#${c.base08} guibg=#${c.base00} gui=NONE guisp=NONE
|
||||
hi DiffText guifg=#${c.base0D} guibg=#${c.base00} gui=NONE guisp=NONE
|
||||
hi DiffAdded guifg=#${c.base0B} guibg=#${c.base00} gui=NONE guisp=NONE
|
||||
hi DiffFile guifg=#${c.base08} guibg=#${c.base00} gui=NONE guisp=NONE
|
||||
hi DiffNewFile guifg=#${c.base0B} guibg=#${c.base00} gui=NONE guisp=NONE
|
||||
hi DiffLine guifg=#${c.base0D} guibg=#${c.base00} gui=NONE guisp=NONE
|
||||
hi DiffRemoved guifg=#${c.base08} guibg=#${c.base00} gui=NONE guisp=NONE
|
||||
|
||||
hi gitcommitOverflow guifg=#${c.base08} guibg=NONE gui=NONE guisp=NONE
|
||||
hi gitcommitSummary guifg=#${c.base0B} guibg=NONE gui=NONE guisp=NONE
|
||||
hi gitcommitComment guifg=#${c.base03} guibg=NONE gui=NONE guisp=NONE
|
||||
hi gitcommitUntracked guifg=#${c.base03} guibg=NONE gui=NONE guisp=NONE
|
||||
hi gitcommitDiscarded guifg=#${c.base03} guibg=NONE gui=NONE guisp=NONE
|
||||
hi gitcommitSelected guifg=#${c.base03} guibg=NONE gui=NONE guisp=NONE
|
||||
hi gitcommitHeader guifg=#${c.base0E} guibg=NONE gui=NONE guisp=NONE
|
||||
hi gitcommitSelectedType guifg=#${c.base0D} guibg=NONE gui=NONE guisp=NONE
|
||||
hi gitcommitUnmergedType guifg=#${c.base0D} guibg=NONE gui=NONE guisp=NONE
|
||||
hi gitcommitDiscardedType guifg=#${c.base0D} guibg=NONE gui=NONE guisp=NONE
|
||||
hi gitcommitBranch guifg=#${c.base09} guibg=NONE gui=bold guisp=NONE
|
||||
hi gitcommitUntrackedFile guifg=#${c.base0A} guibg=NONE gui=NONE guisp=NONE
|
||||
hi gitcommitUnmergedFile guifg=#${c.base08} guibg=NONE gui=bold guisp=NONE
|
||||
hi gitcommitDiscardedFile guifg=#${c.base08} guibg=NONE gui=bold guisp=NONE
|
||||
hi gitcommitSelectedFile guifg=#${c.base0B} guibg=NONE gui=bold guisp=NONE
|
||||
hi gitcommitOverflow guifg=#${c.base08} guibg=NONE gui=NONE guisp=NONE
|
||||
hi gitcommitSummary guifg=#${c.base0B} guibg=NONE gui=NONE guisp=NONE
|
||||
hi gitcommitComment guifg=#${c.base03} guibg=NONE gui=NONE guisp=NONE
|
||||
hi gitcommitUntracked guifg=#${c.base03} guibg=NONE gui=NONE guisp=NONE
|
||||
hi gitcommitDiscarded guifg=#${c.base03} guibg=NONE gui=NONE guisp=NONE
|
||||
hi gitcommitSelected guifg=#${c.base03} guibg=NONE gui=NONE guisp=NONE
|
||||
hi gitcommitHeader guifg=#${c.base0E} guibg=NONE gui=NONE guisp=NONE
|
||||
hi gitcommitSelectedType guifg=#${c.base0D} guibg=NONE gui=NONE guisp=NONE
|
||||
hi gitcommitUnmergedType guifg=#${c.base0D} guibg=NONE gui=NONE guisp=NONE
|
||||
hi gitcommitDiscardedType guifg=#${c.base0D} guibg=NONE gui=NONE guisp=NONE
|
||||
hi gitcommitBranch guifg=#${c.base09} guibg=NONE gui=bold guisp=NONE
|
||||
hi gitcommitUntrackedFile guifg=#${c.base0A} guibg=NONE gui=NONE guisp=NONE
|
||||
hi gitcommitUnmergedFile guifg=#${c.base08} guibg=NONE gui=bold guisp=NONE
|
||||
hi gitcommitDiscardedFile guifg=#${c.base08} guibg=NONE gui=bold guisp=NONE
|
||||
hi gitcommitSelectedFile guifg=#${c.base0B} guibg=NONE gui=bold guisp=NONE
|
||||
|
||||
hi GitGutterAdd guifg=#${c.base0B} guibg=#${c.base00} gui=NONE guisp=NONE
|
||||
hi GitGutterChange guifg=#${c.base0D} guibg=#${c.base00} gui=NONE guisp=NONE
|
||||
hi GitGutterDelete guifg=#${c.base08} guibg=#${c.base00} gui=NONE guisp=NONE
|
||||
hi GitGutterChangeDelete guifg=#${c.base0E} guibg=#${c.base00} gui=NONE guisp=NONE
|
||||
hi GitGutterAdd guifg=#${c.base0B} guibg=#${c.base00} gui=NONE guisp=NONE
|
||||
hi GitGutterChange guifg=#${c.base0D} guibg=#${c.base00} gui=NONE guisp=NONE
|
||||
hi GitGutterDelete guifg=#${c.base08} guibg=#${c.base00} gui=NONE guisp=NONE
|
||||
hi GitGutterChangeDelete guifg=#${c.base0E} guibg=#${c.base00} gui=NONE guisp=NONE
|
||||
|
||||
hi SpellBad guifg=NONE guibg=NONE gui=undercurl guisp=#${c.base08}
|
||||
hi SpellLocal guifg=NONE guibg=NONE gui=undercurl guisp=#${c.base0C}
|
||||
hi SpellCap guifg=NONE guibg=NONE gui=undercurl guisp=#${c.base0D}
|
||||
hi SpellRare guifg=NONE guibg=NONE gui=undercurl guisp=#${c.base0E}
|
||||
hi SpellBad guifg=NONE guibg=NONE gui=undercurl guisp=#${c.base08}
|
||||
hi SpellLocal guifg=NONE guibg=NONE gui=undercurl guisp=#${c.base0C}
|
||||
hi SpellCap guifg=NONE guibg=NONE gui=undercurl guisp=#${c.base0D}
|
||||
hi SpellRare guifg=NONE guibg=NONE gui=undercurl guisp=#${c.base0E}
|
||||
|
||||
hi DiagnosticError guifg=#${c.base08} guibg=#${c.base01} gui=NONE guisp=NONE
|
||||
hi DiagnosticWarn guifg=#${c.base0E} guibg=#${c.base01} gui=NONE guisp=NONE
|
||||
hi DiagnosticInfo guifg=#${c.base05} guibg=#${c.base01} gui=NONE guisp=NONE
|
||||
hi DiagnosticHint guifg=#${c.base0C} guibg=#${c.base01} gui=NONE guisp=NONE
|
||||
hi DiagnosticUnderlineError guifg=NONE guibg=NONE gui=undercurl guisp=#${c.base08}
|
||||
hi DiagnosticUnderlineWarning guifg=NONE guibg=NONE gui=undercurl guisp=#${c.base0E}
|
||||
hi DiagnosticUnderlineWarn guifg=NONE guibg=NONE gui=undercurl guisp=#${c.base0E}
|
||||
hi DiagnosticUnderlineInformation guifg=NONE guibg=NONE gui=undercurl guisp=#${c.base0F}
|
||||
hi DiagnosticUnderlineHint guifg=NONE guibg=NONE gui=undercurl guisp=#${c.base0C}
|
||||
hi DiagnosticError guifg=#${c.base08} guibg=#${c.base01} gui=NONE guisp=NONE
|
||||
hi DiagnosticWarn guifg=#${c.base0E} guibg=#${c.base01} gui=NONE guisp=NONE
|
||||
hi DiagnosticInfo guifg=#${c.base05} guibg=#${c.base01} gui=NONE guisp=NONE
|
||||
hi DiagnosticHint guifg=#${c.base0C} guibg=#${c.base01} gui=NONE guisp=NONE
|
||||
hi DiagnosticUnderlineError guifg=NONE guibg=NONE gui=undercurl guisp=#${c.base08}
|
||||
hi DiagnosticUnderlineWarning guifg=NONE guibg=NONE gui=undercurl guisp=#${c.base0E}
|
||||
hi DiagnosticUnderlineWarn guifg=NONE guibg=NONE gui=undercurl guisp=#${c.base0E}
|
||||
hi DiagnosticUnderlineInformation guifg=NONE guibg=NONE gui=undercurl guisp=#${c.base0F}
|
||||
hi DiagnosticUnderlineHint guifg=NONE guibg=NONE gui=undercurl guisp=#${c.base0C}
|
||||
|
||||
hi LspReferenceText guifg=NONE guibg=NONE gui=underline guisp=#${c.base04}
|
||||
hi LspReferenceRead guifg=NONE guibg=NONE gui=underline guisp=#${c.base04}
|
||||
hi LspReferenceWrite guifg=NONE guibg=NONE gui=underline guisp=#${c.base04}
|
||||
hi LspReferenceText guifg=NONE guibg=NONE gui=underline guisp=#${c.base04}
|
||||
hi LspReferenceRead guifg=NONE guibg=NONE gui=underline guisp=#${c.base04}
|
||||
hi LspReferenceWrite guifg=NONE guibg=NONE gui=underline guisp=#${c.base04}
|
||||
|
||||
hi link LspDiagnosticsDefaultError DiagnosticError
|
||||
hi link LspDiagnosticsDefaultWarning DiagnosticWarn
|
||||
hi link LspDiagnosticsDefaultInformation DiagnosticInfo
|
||||
hi link LspDiagnosticsDefaultHint DiagnosticHint
|
||||
hi link LspDiagnosticsUnderlineError DiagnosticUnderlineError
|
||||
hi link LspDiagnosticsUnderlineWarning DiagnosticUnderlineWarning
|
||||
hi link LspDiagnosticsUnderlineInformation DiagnosticUnderlineInformation
|
||||
hi link LspDiagnosticsUnderlineHint DiagnosticUnderlineHint
|
||||
hi link LspDiagnosticsDefaultError DiagnosticError
|
||||
hi link LspDiagnosticsDefaultWarning DiagnosticWarn
|
||||
hi link LspDiagnosticsDefaultInformation DiagnosticInfo
|
||||
hi link LspDiagnosticsDefaultHint DiagnosticHint
|
||||
hi link LspDiagnosticsUnderlineError DiagnosticUnderlineError
|
||||
hi link LspDiagnosticsUnderlineWarning DiagnosticUnderlineWarning
|
||||
hi link LspDiagnosticsUnderlineInformation DiagnosticUnderlineInformation
|
||||
hi link LspDiagnosticsUnderlineHint DiagnosticUnderlineHint
|
||||
|
||||
hi TSAnnotation guifg=#${c.base0F} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSAttribute guifg=#${c.base0A} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSBoolean guifg=#${c.base09} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSCharacter guifg=#${c.base08} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSComment guifg=#${c.base03} guibg=NONE gui=NONE guisp=NONE "was italic
|
||||
hi TSConstructor guifg=#${c.base0D} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSConditional guifg=#${c.base0E} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSConstant guifg=#${c.base09} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSConstBuiltin guifg=#${c.base09} guibg=NONE gui=NONE guisp=NONE "was italic
|
||||
hi TSConstMacro guifg=#${c.base08} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSError guifg=#${c.base08} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSException guifg=#${c.base08} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSField guifg=#${c.base05} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSFloat guifg=#${c.base09} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSFunction guifg=#${c.base0D} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSFuncBuiltin guifg=#${c.base0D} guibg=NONE gui=NONE guisp=NONE "was italic
|
||||
hi TSFuncMacro guifg=#${c.base08} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSInclude guifg=#${c.base0D} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSKeyword guifg=#${c.base0E} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSKeywordFunction guifg=#${c.base0E} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSKeywordOperator guifg=#${c.base0E} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSLabel guifg=#${c.base0A} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSMethod guifg=#${c.base0D} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSNamespace guifg=#${c.base08} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSNone guifg=#${c.base05} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSNumber guifg=#${c.base09} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSOperator guifg=#${c.base05} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSParameter guifg=#${c.base05} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSParameterReference guifg=#${c.base05} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSProperty guifg=#${c.base05} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSPunctDelimiter guifg=#${c.base0F} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSPunctBracket guifg=#${c.base05} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSPunctSpecial guifg=#${c.base05} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSRepeat guifg=#${c.base0A} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSString guifg=#${c.base0B} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSStringRegex guifg=#${c.base0C} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSStringEscape guifg=#${c.base0C} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSSymbol guifg=#${c.base0B} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSTag guifg=#${c.base0A} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSTagDelimiter guifg=#${c.base0F} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSText guifg=#${c.base05} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSStrong guifg=NONE guibg=NONE gui=bold guisp=NONE
|
||||
hi TSEmphasis guifg=#${c.base09} guibg=NONE gui=NONE guisp=NONE "was italic
|
||||
hi TSUnderline guifg=#${c.base00} guibg=NONE gui=underline guisp=NONE
|
||||
hi TSStrike guifg=#${c.base00} guibg=NONE gui=strikethrough guisp=NONE
|
||||
hi TSTitle guifg=#${c.base0D} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSLiteral guifg=#${c.base09} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSURI guifg=#${c.base09} guibg=NONE gui=underline guisp=NONE
|
||||
hi TSType guifg=#${c.base0A} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSTypeBuiltin guifg=#${c.base0A} guibg=NONE gui=NONE guisp=NONE "was italic
|
||||
hi TSVariable guifg=#${c.base08} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSVariableBuiltin guifg=#${c.base08} guibg=NONE gui=NONE guisp=NONE "was italic
|
||||
hi TSAnnotation guifg=#${c.base0F} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSAttribute guifg=#${c.base0A} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSBoolean guifg=#${c.base09} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSCharacter guifg=#${c.base08} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSComment guifg=#${c.base03} guibg=NONE gui=NONE guisp=NONE "was italic
|
||||
hi TSConstructor guifg=#${c.base0D} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSConditional guifg=#${c.base0E} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSConstant guifg=#${c.base09} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSConstBuiltin guifg=#${c.base09} guibg=NONE gui=NONE guisp=NONE "was italic
|
||||
hi TSConstMacro guifg=#${c.base08} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSError guifg=#${c.base08} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSException guifg=#${c.base08} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSField guifg=#${c.base05} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSFloat guifg=#${c.base09} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSFunction guifg=#${c.base0D} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSFuncBuiltin guifg=#${c.base0D} guibg=NONE gui=NONE guisp=NONE "was italic
|
||||
hi TSFuncMacro guifg=#${c.base08} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSInclude guifg=#${c.base0D} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSKeyword guifg=#${c.base0E} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSKeywordFunction guifg=#${c.base0E} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSKeywordOperator guifg=#${c.base0E} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSLabel guifg=#${c.base0A} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSMethod guifg=#${c.base0D} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSNamespace guifg=#${c.base08} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSNone guifg=#${c.base05} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSNumber guifg=#${c.base09} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSOperator guifg=#${c.base05} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSParameter guifg=#${c.base05} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSParameterReference guifg=#${c.base05} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSProperty guifg=#${c.base05} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSPunctDelimiter guifg=#${c.base0F} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSPunctBracket guifg=#${c.base05} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSPunctSpecial guifg=#${c.base05} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSRepeat guifg=#${c.base0A} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSString guifg=#${c.base0B} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSStringRegex guifg=#${c.base0C} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSStringEscape guifg=#${c.base0C} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSSymbol guifg=#${c.base0B} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSTag guifg=#${c.base0A} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSTagDelimiter guifg=#${c.base0F} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSText guifg=#${c.base05} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSStrong guifg=NONE guibg=NONE gui=bold guisp=NONE
|
||||
hi TSEmphasis guifg=#${c.base09} guibg=NONE gui=NONE guisp=NONE "was italic
|
||||
hi TSUnderline guifg=#${c.base00} guibg=NONE gui=underline guisp=NONE
|
||||
hi TSStrike guifg=#${c.base00} guibg=NONE gui=strikethrough guisp=NONE
|
||||
hi TSTitle guifg=#${c.base0D} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSLiteral guifg=#${c.base09} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSURI guifg=#${c.base09} guibg=NONE gui=underline guisp=NONE
|
||||
hi TSType guifg=#${c.base0A} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSTypeBuiltin guifg=#${c.base0A} guibg=NONE gui=NONE guisp=NONE "was italic
|
||||
hi TSVariable guifg=#${c.base08} guibg=NONE gui=NONE guisp=NONE
|
||||
hi TSVariableBuiltin guifg=#${c.base08} guibg=NONE gui=NONE guisp=NONE "was italic
|
||||
|
||||
hi TSDefinition guifg=NONE guibg=NONE gui=underline guisp=#${c.base04}
|
||||
hi TSDefinitionUsage guifg=NONE guibg=NONE gui=underline guisp=#${c.base04}
|
||||
hi TSCurrentScope guifg=NONE guibg=NONE gui=bold guisp=NONE
|
||||
if has('nvim-0.8.0')
|
||||
highlight! link @annotation TSAnnotation
|
||||
highlight! link @attribute TSAttribute
|
||||
highlight! link @boolean TSBoolean
|
||||
highlight! link @character TSCharacter
|
||||
highlight! link @comment TSComment
|
||||
highlight! link @conditional TSConditional
|
||||
highlight! link @constant TSConstant
|
||||
highlight! link @constant.builtin TSConstBuiltin
|
||||
highlight! link @constant.macro TSConstMacro
|
||||
highlight! link @constructor TSConstructor
|
||||
highlight! link @exception TSException
|
||||
highlight! link @field TSField
|
||||
highlight! link @float TSFloat
|
||||
highlight! link @function TSFunction
|
||||
highlight! link @function.builtin TSFuncBuiltin
|
||||
highlight! link @function.macro TSFuncMacro
|
||||
highlight! link @include TSInclude
|
||||
highlight! link @keyword TSKeyword
|
||||
highlight! link @keyword.function TSKeywordFunction
|
||||
highlight! link @keyword.operator TSKeywordOperator
|
||||
highlight! link @label TSLabel
|
||||
highlight! link @method TSMethod
|
||||
highlight! link @namespace TSNamespace
|
||||
highlight! link @none TSNone
|
||||
highlight! link @number TSNumber
|
||||
highlight! link @operator TSOperator
|
||||
highlight! link @parameter TSParameter
|
||||
highlight! link @parameter.reference TSParameterReference
|
||||
highlight! link @property TSProperty
|
||||
highlight! link @punctuation.bracket TSPunctBracket
|
||||
highlight! link @punctuation.delimiter TSPunctDelimiter
|
||||
highlight! link @punctuation.special TSPunctSpecial
|
||||
highlight! link @repeat TSRepeat
|
||||
highlight! link @storageclass TSStorageClass
|
||||
highlight! link @string TSString
|
||||
highlight! link @string.escape TSStringEscape
|
||||
highlight! link @string.regex TSStringRegex
|
||||
highlight! link @symbol TSSymbol
|
||||
highlight! link @tag TSTag
|
||||
highlight! link @tag.delimiter TSTagDelimiter
|
||||
highlight! link @text TSText
|
||||
highlight! link @strike TSStrike
|
||||
highlight! link @math TSMath
|
||||
highlight! link @type TSType
|
||||
highlight! link @type.builtin TSTypeBuiltin
|
||||
highlight! link @uri TSURI
|
||||
highlight! link @variable TSVariable
|
||||
highlight! link @variable.builtin TSVariableBuiltin
|
||||
endif
|
||||
hi TSDefinition guifg=NONE guibg=NONE gui=underline guisp=#${c.base04}
|
||||
hi TSDefinitionUsage guifg=NONE guibg=NONE gui=underline guisp=#${c.base04}
|
||||
hi TSCurrentScope guifg=NONE guibg=NONE gui=bold guisp=NONE
|
||||
if has('nvim-0.8.0')
|
||||
highlight! link @annotation TSAnnotation
|
||||
highlight! link @attribute TSAttribute
|
||||
highlight! link @boolean TSBoolean
|
||||
highlight! link @character TSCharacter
|
||||
highlight! link @comment TSComment
|
||||
highlight! link @conditional TSConditional
|
||||
highlight! link @constant TSConstant
|
||||
highlight! link @constant.builtin TSConstBuiltin
|
||||
highlight! link @constant.macro TSConstMacro
|
||||
highlight! link @constructor TSConstructor
|
||||
highlight! link @exception TSException
|
||||
highlight! link @field TSField
|
||||
highlight! link @float TSFloat
|
||||
highlight! link @function TSFunction
|
||||
highlight! link @function.builtin TSFuncBuiltin
|
||||
highlight! link @function.macro TSFuncMacro
|
||||
highlight! link @include TSInclude
|
||||
highlight! link @keyword TSKeyword
|
||||
highlight! link @keyword.function TSKeywordFunction
|
||||
highlight! link @keyword.operator TSKeywordOperator
|
||||
highlight! link @label TSLabel
|
||||
highlight! link @method TSMethod
|
||||
highlight! link @namespace TSNamespace
|
||||
highlight! link @none TSNone
|
||||
highlight! link @number TSNumber
|
||||
highlight! link @operator TSOperator
|
||||
highlight! link @parameter TSParameter
|
||||
highlight! link @parameter.reference TSParameterReference
|
||||
highlight! link @property TSProperty
|
||||
highlight! link @punctuation.bracket TSPunctBracket
|
||||
highlight! link @punctuation.delimiter TSPunctDelimiter
|
||||
highlight! link @punctuation.special TSPunctSpecial
|
||||
highlight! link @repeat TSRepeat
|
||||
highlight! link @storageclass TSStorageClass
|
||||
highlight! link @string TSString
|
||||
highlight! link @string.escape TSStringEscape
|
||||
highlight! link @string.regex TSStringRegex
|
||||
highlight! link @symbol TSSymbol
|
||||
highlight! link @tag TSTag
|
||||
highlight! link @tag.delimiter TSTagDelimiter
|
||||
highlight! link @text TSText
|
||||
highlight! link @strike TSStrike
|
||||
highlight! link @math TSMath
|
||||
highlight! link @type TSType
|
||||
highlight! link @type.builtin TSTypeBuiltin
|
||||
highlight! link @uri TSURI
|
||||
highlight! link @variable TSVariable
|
||||
highlight! link @variable.builtin TSVariableBuiltin
|
||||
endif
|
||||
|
||||
hi IndentBlankLine guifg=#${c.base01} guibg=NONE gui=NONE guisp=NONE
|
||||
hi IndentBlankLine guifg=#${c.base01} guibg=NONE gui=NONE guisp=NONE
|
||||
|
||||
hi NvimTreeNormal guifg=#${c.base05} guibg=#${c.base00} gui=NONE guisp=NONE
|
||||
hi NvimTreeNormal guifg=#${c.base05} guibg=#${c.base00} gui=NONE guisp=NONE
|
||||
|
||||
hi CmpItemAbbr guifg=#${c.base05} guibg=NONE gui=NONE guisp=NONE
|
||||
hi CmpItemAbbrDeprecated guifg=#${c.base03} guibg=NONE gui=NONE guisp=NONE
|
||||
hi CmpItemAbbrMatch guifg=#${c.base05} guibg=NONE gui=NONE guisp=NONE
|
||||
hi CmpItemAbbrMatchFuzzy guifg=#${c.base05} guibg=NONE gui=NONE guisp=NONE
|
||||
hi CmpItemKind guifg=#${c.base0C} guibg=NONE gui=NONE guisp=NONE
|
||||
hi CmpItemMenu guifg=#${c.base05} guibg=NONE gui=NONE guisp=NONE
|
||||
hi CmpItemAbbr guifg=#${c.base05} guibg=NONE gui=NONE guisp=NONE
|
||||
hi CmpItemAbbrDeprecated guifg=#${c.base03} guibg=NONE gui=NONE guisp=NONE
|
||||
hi CmpItemAbbrMatch guifg=#${c.base05} guibg=NONE gui=NONE guisp=NONE
|
||||
hi CmpItemAbbrMatchFuzzy guifg=#${c.base05} guibg=NONE gui=NONE guisp=NONE
|
||||
hi CmpItemKind guifg=#${c.base0C} guibg=NONE gui=NONE guisp=NONE
|
||||
hi CmpItemMenu guifg=#${c.base05} guibg=NONE gui=NONE guisp=NONE
|
||||
|
||||
hi BufferCurrent guifg=#${c.base0B} guibg=#${c.base00} gui=NONE guisp=NONE
|
||||
hi BufferCurrentIndex guifg=#${c.base0B} guibg=#${c.base00} gui=NONE guisp=NONE
|
||||
hi BufferCurrentMod guifg=#${c.base0E} guibg=#${c.base00} gui=NONE guisp=NONE
|
||||
hi BufferCurrentSign guifg=#${c.base0B} guibg=#${c.base00} gui=NONE guisp=NONE
|
||||
hi BufferCurrentTarget guifg=#${c.base08} guibg=#${c.base00} gui=NONE guisp=NONE
|
||||
hi BufferCurrentIcon guifg=NONE guibg=#${c.base00} gui=NONE guisp=NONE
|
||||
hi BufferVisible guifg=#${c.base0A} guibg=#${c.base01} gui=NONE guisp=NONE
|
||||
hi BufferVisibleIndex guifg=#${c.base0A} guibg=#${c.base01} gui=NONE guisp=NONE
|
||||
hi BufferVisibleMod guifg=#${c.base0E} guibg=#${c.base01} gui=NONE guisp=NONE
|
||||
hi BufferVisibleSign guifg=#${c.base0A} guibg=#${c.base01} gui=NONE guisp=NONE
|
||||
hi BufferVisibleTarget guifg=#${c.base08} guibg=#${c.base01} gui=NONE guisp=NONE
|
||||
hi BufferVisibleIcon guifg=NONE guibg=#${c.base01} gui=NONE guisp=NONE
|
||||
hi BufferInactive guifg=#${c.base04} guibg=#${c.base02} gui=NONE guisp=NONE
|
||||
hi BufferInactiveIndex guifg=#${c.base05} guibg=#${c.base02} gui=NONE guisp=NONE
|
||||
hi BufferInactiveMod guifg=#${c.base0E} guibg=#${c.base02} gui=NONE guisp=NONE
|
||||
hi BufferInactiveSign guifg=#${c.base05} guibg=#${c.base02} gui=NONE guisp=NONE
|
||||
hi BufferInactiveTarget guifg=#${c.base08} guibg=#${c.base02} gui=NONE guisp=NONE
|
||||
hi BufferInactiveIcon guifg=NONE guibg=#${c.base02} gui=NONE guisp=NONE
|
||||
hi BufferTabpages guifg=#${c.base03} guibg=#${c.base02} gui=NONE guisp=NONE
|
||||
hi BufferTabpageFill guifg=#${c.base03} guibg=#${c.base02} gui=NONE guisp=NONE
|
||||
hi BufferCurrent guifg=#${c.base0B} guibg=#${c.base00} gui=NONE guisp=NONE
|
||||
hi BufferCurrentIndex guifg=#${c.base0B} guibg=#${c.base00} gui=NONE guisp=NONE
|
||||
hi BufferCurrentMod guifg=#${c.base0E} guibg=#${c.base00} gui=NONE guisp=NONE
|
||||
hi BufferCurrentSign guifg=#${c.base0B} guibg=#${c.base00} gui=NONE guisp=NONE
|
||||
hi BufferCurrentTarget guifg=#${c.base08} guibg=#${c.base00} gui=NONE guisp=NONE
|
||||
hi BufferCurrentIcon guifg=NONE guibg=#${c.base00} gui=NONE guisp=NONE
|
||||
hi BufferVisible guifg=#${c.base0A} guibg=#${c.base01} gui=NONE guisp=NONE
|
||||
hi BufferVisibleIndex guifg=#${c.base0A} guibg=#${c.base01} gui=NONE guisp=NONE
|
||||
hi BufferVisibleMod guifg=#${c.base0E} guibg=#${c.base01} gui=NONE guisp=NONE
|
||||
hi BufferVisibleSign guifg=#${c.base0A} guibg=#${c.base01} gui=NONE guisp=NONE
|
||||
hi BufferVisibleTarget guifg=#${c.base08} guibg=#${c.base01} gui=NONE guisp=NONE
|
||||
hi BufferVisibleIcon guifg=NONE guibg=#${c.base01} gui=NONE guisp=NONE
|
||||
hi BufferInactive guifg=#${c.base04} guibg=#${c.base02} gui=NONE guisp=NONE
|
||||
hi BufferInactiveIndex guifg=#${c.base05} guibg=#${c.base02} gui=NONE guisp=NONE
|
||||
hi BufferInactiveMod guifg=#${c.base0E} guibg=#${c.base02} gui=NONE guisp=NONE
|
||||
hi BufferInactiveSign guifg=#${c.base05} guibg=#${c.base02} gui=NONE guisp=NONE
|
||||
hi BufferInactiveTarget guifg=#${c.base08} guibg=#${c.base02} gui=NONE guisp=NONE
|
||||
hi BufferInactiveIcon guifg=NONE guibg=#${c.base02} gui=NONE guisp=NONE
|
||||
hi BufferTabpages guifg=#${c.base03} guibg=#${c.base02} gui=NONE guisp=NONE
|
||||
hi BufferTabpageFill guifg=#${c.base03} guibg=#${c.base02} gui=NONE guisp=NONE
|
||||
|
||||
hi NvimInternalError guifg=#${c.base00} guibg=#${c.base08} gui=NONE guisp=NONE
|
||||
hi NvimInternalError guifg=#${c.base00} guibg=#${c.base08} gui=NONE guisp=NONE
|
||||
|
||||
hi NormalFloat guifg=#${c.base05} guibg=#${c.base00} gui=NONE guisp=NONE
|
||||
hi FloatBorder guifg=#${c.base05} guibg=#${c.base00} gui=NONE guisp=NONE
|
||||
hi NormalNC guifg=#${c.base05} guibg=#${c.base00} gui=NONE guisp=NONE
|
||||
hi TermCursor guifg=#${c.base00} guibg=#${c.base05} gui=NONE guisp=NONE
|
||||
hi TermCursorNC guifg=#${c.base00} guibg=#${c.base05} gui=NONE guisp=NONE
|
||||
hi NormalFloat guifg=#${c.base05} guibg=#${c.base00} gui=NONE guisp=NONE
|
||||
hi FloatBorder guifg=#${c.base05} guibg=#${c.base00} gui=NONE guisp=NONE
|
||||
hi NormalNC guifg=#${c.base05} guibg=#${c.base00} gui=NONE guisp=NONE
|
||||
hi TermCursor guifg=#${c.base00} guibg=#${c.base05} gui=NONE guisp=NONE
|
||||
hi TermCursorNC guifg=#${c.base00} guibg=#${c.base05} gui=NONE guisp=NONE
|
||||
|
||||
hi User1 guifg=#${c.base08} guibg=#${c.base02} gui=NONE guisp=NONE
|
||||
hi User2 guifg=#${c.base0E} guibg=#${c.base02} gui=NONE guisp=NONE
|
||||
hi User3 guifg=#${c.base05} guibg=#${c.base02} gui=NONE guisp=NONE
|
||||
hi User4 guifg=#${c.base0C} guibg=#${c.base02} gui=NONE guisp=NONE
|
||||
hi User5 guifg=#${c.base01} guibg=#${c.base02} gui=NONE guisp=NONE
|
||||
hi User6 guifg=#${c.base05} guibg=#${c.base02} gui=NONE guisp=NONE
|
||||
hi User7 guifg=#${c.base05} guibg=#${c.base02} gui=NONE guisp=NONE
|
||||
hi User8 guifg=#${c.base00} guibg=#${c.base02} gui=NONE guisp=NONE
|
||||
hi User9 guifg=#${c.base00} guibg=#${c.base02} gui=NONE guisp=NONE
|
||||
hi User1 guifg=#${c.base08} guibg=#${c.base02} gui=NONE guisp=NONE
|
||||
hi User2 guifg=#${c.base0E} guibg=#${c.base02} gui=NONE guisp=NONE
|
||||
hi User3 guifg=#${c.base05} guibg=#${c.base02} gui=NONE guisp=NONE
|
||||
hi User4 guifg=#${c.base0C} guibg=#${c.base02} gui=NONE guisp=NONE
|
||||
hi User5 guifg=#${c.base01} guibg=#${c.base02} gui=NONE guisp=NONE
|
||||
hi User6 guifg=#${c.base05} guibg=#${c.base02} gui=NONE guisp=NONE
|
||||
hi User7 guifg=#${c.base05} guibg=#${c.base02} gui=NONE guisp=NONE
|
||||
hi User8 guifg=#${c.base00} guibg=#${c.base02} gui=NONE guisp=NONE
|
||||
hi User9 guifg=#${c.base00} guibg=#${c.base02} gui=NONE guisp=NONE
|
||||
|
||||
hi TreesitterContext guifg=NONE guibg=#${c.base01} gui=NONE guisp=NONE "was italic
|
||||
hi TreesitterContext guifg=NONE guibg=#${c.base01} gui=NONE guisp=NONE "was italic
|
||||
|
||||
let g:terminal_color_background = "#${c.base00}"
|
||||
let g:terminal_color_foreground = "#${c.base05}"
|
||||
let g:terminal_color_background = "#${c.base00}"
|
||||
let g:terminal_color_foreground = "#${c.base05}"
|
||||
|
||||
let g:terminal_color_0 = "#${c.base00}"
|
||||
let g:terminal_color_1 = "#${c.base08}"
|
||||
let g:terminal_color_2 = "#${c.base0B}"
|
||||
let g:terminal_color_3 = "#${c.base0A}"
|
||||
let g:terminal_color_4 = "#${c.base0D}"
|
||||
let g:terminal_color_5 = "#${c.base0E}"
|
||||
let g:terminal_color_6 = "#${c.base0C}"
|
||||
let g:terminal_color_7 = "#${c.base05}"
|
||||
let g:terminal_color_8 = "#${c.base03}"
|
||||
let g:terminal_color_9 = "#${c.base08}"
|
||||
let g:terminal_color_10 = "#${c.base0B}"
|
||||
let g:terminal_color_11 = "#${c.base0A}"
|
||||
let g:terminal_color_12 = "#${c.base0D}"
|
||||
let g:terminal_color_13 = "#${c.base0E}"
|
||||
let g:terminal_color_14 = "#${c.base0C}"
|
||||
let g:terminal_color_15 = "#${c.base07}"
|
||||
''
|
||||
let g:terminal_color_0 = "#${c.base00}"
|
||||
let g:terminal_color_1 = "#${c.base08}"
|
||||
let g:terminal_color_2 = "#${c.base0B}"
|
||||
let g:terminal_color_3 = "#${c.base0A}"
|
||||
let g:terminal_color_4 = "#${c.base0D}"
|
||||
let g:terminal_color_5 = "#${c.base0E}"
|
||||
let g:terminal_color_6 = "#${c.base0C}"
|
||||
let g:terminal_color_7 = "#${c.base05}"
|
||||
let g:terminal_color_8 = "#${c.base03}"
|
||||
let g:terminal_color_9 = "#${c.base08}"
|
||||
let g:terminal_color_10 = "#${c.base0B}"
|
||||
let g:terminal_color_11 = "#${c.base0A}"
|
||||
let g:terminal_color_12 = "#${c.base0D}"
|
||||
let g:terminal_color_13 = "#${c.base0E}"
|
||||
let g:terminal_color_14 = "#${c.base0C}"
|
||||
let g:terminal_color_15 = "#${c.base07}"
|
||||
''
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
{ pkgs, ... }:
|
||||
let
|
||||
{pkgs, ...}: let
|
||||
gx-nvim = pkgs.vimUtils.buildVimPlugin {
|
||||
name = "gx-nvim";
|
||||
src = pkgs.fetchFromGitHub {
|
||||
@@ -9,13 +8,15 @@ let
|
||||
hash = "sha256-QWJ/cPvSyMTJoWLg51BNFf9+/9i7G+nzennpHP/eQ4g=";
|
||||
};
|
||||
};
|
||||
in
|
||||
{
|
||||
in {
|
||||
programs.neovim.plugins = with pkgs.vimPlugins; [
|
||||
{
|
||||
plugin = gx-nvim;
|
||||
type = "lua";
|
||||
config = /* lua */
|
||||
config =
|
||||
/*
|
||||
lua
|
||||
*/
|
||||
''
|
||||
require('gx').setup{}
|
||||
vim.keymap.set({"n", "x"}, "gx", ":Browse<CR>", {
|
||||
@@ -30,7 +31,10 @@ in
|
||||
{
|
||||
plugin = vim-fugitive;
|
||||
type = "viml";
|
||||
config = /* vim */
|
||||
config =
|
||||
/*
|
||||
vim
|
||||
*/
|
||||
''
|
||||
nmap <space>G :Git<CR>
|
||||
'';
|
||||
@@ -38,7 +42,10 @@ in
|
||||
{
|
||||
plugin = nvim-bqf;
|
||||
type = "lua";
|
||||
config = /* lua */
|
||||
config =
|
||||
/*
|
||||
lua
|
||||
*/
|
||||
''
|
||||
require('bqf').setup{}
|
||||
'';
|
||||
@@ -46,7 +53,10 @@ in
|
||||
{
|
||||
plugin = alpha-nvim;
|
||||
type = "lua";
|
||||
config = /* lua */
|
||||
config =
|
||||
/*
|
||||
lua
|
||||
*/
|
||||
''
|
||||
local alpha = require("alpha")
|
||||
local dashboard = require("alpha.themes.dashboard")
|
||||
@@ -78,7 +88,10 @@ in
|
||||
{
|
||||
plugin = bufferline-nvim;
|
||||
type = "lua";
|
||||
config = /* lua */
|
||||
config =
|
||||
/*
|
||||
lua
|
||||
*/
|
||||
''
|
||||
require('bufferline').setup{}
|
||||
'';
|
||||
@@ -86,7 +99,10 @@ in
|
||||
{
|
||||
plugin = scope-nvim;
|
||||
type = "lua";
|
||||
config = /* lua */
|
||||
config =
|
||||
/*
|
||||
lua
|
||||
*/
|
||||
''
|
||||
require('scope').setup{}
|
||||
'';
|
||||
@@ -94,7 +110,10 @@ in
|
||||
{
|
||||
plugin = which-key-nvim;
|
||||
type = "lua";
|
||||
config = /* lua */
|
||||
config =
|
||||
/*
|
||||
lua
|
||||
*/
|
||||
''
|
||||
require('which-key').setup{}
|
||||
'';
|
||||
@@ -102,7 +121,10 @@ in
|
||||
{
|
||||
plugin = range-highlight-nvim;
|
||||
type = "lua";
|
||||
config = /* lua */
|
||||
config =
|
||||
/*
|
||||
lua
|
||||
*/
|
||||
''
|
||||
require('range-highlight').setup{}
|
||||
'';
|
||||
@@ -110,7 +132,10 @@ in
|
||||
{
|
||||
plugin = indent-blankline-nvim;
|
||||
type = "lua";
|
||||
config = /* lua */
|
||||
config =
|
||||
/*
|
||||
lua
|
||||
*/
|
||||
''
|
||||
require('ibl').setup{
|
||||
scope = { highlight = {"IndentBlankLine"} },
|
||||
@@ -121,7 +146,10 @@ in
|
||||
{
|
||||
plugin = nvim-web-devicons;
|
||||
type = "lua";
|
||||
config = /* lua */
|
||||
config =
|
||||
/*
|
||||
lua
|
||||
*/
|
||||
''
|
||||
require('nvim-web-devicons').setup{}
|
||||
'';
|
||||
@@ -129,7 +157,10 @@ in
|
||||
{
|
||||
plugin = gitsigns-nvim;
|
||||
type = "lua";
|
||||
config = /* lua */
|
||||
config =
|
||||
/*
|
||||
lua
|
||||
*/
|
||||
''
|
||||
require('gitsigns').setup{
|
||||
signs = {
|
||||
@@ -145,7 +176,10 @@ in
|
||||
{
|
||||
plugin = nvim-colorizer-lua;
|
||||
type = "lua";
|
||||
config = /* lua */
|
||||
config =
|
||||
/*
|
||||
lua
|
||||
*/
|
||||
''
|
||||
require('colorizer').setup{}
|
||||
'';
|
||||
@@ -153,7 +187,10 @@ in
|
||||
{
|
||||
plugin = fidget-nvim;
|
||||
type = "lua";
|
||||
config = /* lua */
|
||||
config =
|
||||
/*
|
||||
lua
|
||||
*/
|
||||
''
|
||||
require('fidget').setup{
|
||||
text = {
|
||||
@@ -165,7 +202,10 @@ in
|
||||
{
|
||||
plugin = oil-nvim;
|
||||
type = "lua";
|
||||
config = /* lua */
|
||||
config =
|
||||
/*
|
||||
lua
|
||||
*/
|
||||
''
|
||||
require('oil').setup{
|
||||
buf_options = {
|
||||
|
||||
@@ -1,20 +1,23 @@
|
||||
{ pkgs, config, ... }:
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
programs.password-store = {
|
||||
enable = true;
|
||||
settings = {
|
||||
PASSWORD_STORE_DIR = "$HOME/.password-store";
|
||||
};
|
||||
package = pkgs.pass.withExtensions (p: [ p.pass-otp ]);
|
||||
package = pkgs.pass.withExtensions (p: [p.pass-otp]);
|
||||
};
|
||||
|
||||
services.pass-secret-service = {
|
||||
enable = true;
|
||||
storePath = "${config.home.homeDirectory}/.password-store";
|
||||
extraArgs = [ "-e${config.programs.password-store.package}/bin/pass" ];
|
||||
extraArgs = ["-e${config.programs.password-store.package}/bin/pass"];
|
||||
};
|
||||
|
||||
home.persistence = {
|
||||
"/persist/home/misterio".directories = [ ".password-store" ];
|
||||
"/persist/home/misterio".directories = [".password-store"];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [ khal ];
|
||||
xdg.configFile."khal/config".text = /* toml */
|
||||
{pkgs, ...}: {
|
||||
home.packages = with pkgs; [khal];
|
||||
xdg.configFile."khal/config".text =
|
||||
/*
|
||||
toml
|
||||
*/
|
||||
''
|
||||
[calendars]
|
||||
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [ khard ];
|
||||
xdg.configFile."khard/khard.conf".text = /* toml */
|
||||
{pkgs, ...}: {
|
||||
home.packages = with pkgs; [khard];
|
||||
xdg.configFile."khard/khard.conf".text =
|
||||
/*
|
||||
toml
|
||||
*/
|
||||
''
|
||||
[addressbooks]
|
||||
[[contacts]]
|
||||
|
||||
@@ -3,9 +3,7 @@
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
}: let
|
||||
mbsync = "${config.programs.mbsync.package}/bin/mbsync";
|
||||
pass = "${config.programs.password-store.package}/bin/pass";
|
||||
|
||||
@@ -25,66 +23,70 @@ let
|
||||
'';
|
||||
};
|
||||
};
|
||||
in
|
||||
{
|
||||
in {
|
||||
home.persistence = {
|
||||
"/persist/home/misterio".directories = [ "Mail" ];
|
||||
"/persist/home/misterio".directories = ["Mail"];
|
||||
};
|
||||
|
||||
accounts.email = {
|
||||
maildirBasePath = "Mail";
|
||||
accounts = {
|
||||
personal = rec {
|
||||
primary = true;
|
||||
address = "hi@m7.rs";
|
||||
aliases = [
|
||||
"gabriel@gsfontes.com"
|
||||
"eu@misterio.me"
|
||||
];
|
||||
passwordCommand = "${pass} ${smtp.host}/${address}";
|
||||
|
||||
imap.host = "mail.m7.rs";
|
||||
mbsync = {
|
||||
enable = true;
|
||||
create = "maildir";
|
||||
expunge = "both";
|
||||
};
|
||||
folders = {
|
||||
inbox = "Inbox";
|
||||
drafts = "Drafts";
|
||||
sent = "Sent";
|
||||
trash = "Trash";
|
||||
};
|
||||
neomutt = {
|
||||
enable = true;
|
||||
extraMailboxes = [
|
||||
"Archive"
|
||||
"Drafts"
|
||||
"Junk"
|
||||
"Sent"
|
||||
"Trash"
|
||||
personal =
|
||||
rec {
|
||||
primary = true;
|
||||
address = "hi@m7.rs";
|
||||
aliases = [
|
||||
"gabriel@gsfontes.com"
|
||||
"eu@misterio.me"
|
||||
];
|
||||
};
|
||||
passwordCommand = "${pass} ${smtp.host}/${address}";
|
||||
|
||||
msmtp.enable = true;
|
||||
smtp.host = "mail.m7.rs";
|
||||
userName = address;
|
||||
} // common;
|
||||
imap.host = "mail.m7.rs";
|
||||
mbsync = {
|
||||
enable = true;
|
||||
create = "maildir";
|
||||
expunge = "both";
|
||||
};
|
||||
folders = {
|
||||
inbox = "Inbox";
|
||||
drafts = "Drafts";
|
||||
sent = "Sent";
|
||||
trash = "Trash";
|
||||
};
|
||||
neomutt = {
|
||||
enable = true;
|
||||
extraMailboxes = [
|
||||
"Archive"
|
||||
"Drafts"
|
||||
"Junk"
|
||||
"Sent"
|
||||
"Trash"
|
||||
];
|
||||
};
|
||||
|
||||
college = rec {
|
||||
address = "g.fontes@usp.br";
|
||||
passwordCommand = "${pass} ${smtp.host}/${address}";
|
||||
msmtp.enable = true;
|
||||
smtp.host = "mail.m7.rs";
|
||||
userName = address;
|
||||
}
|
||||
// common;
|
||||
|
||||
msmtp.enable = true;
|
||||
smtp.host = "smtp.gmail.com";
|
||||
userName = address;
|
||||
} // common;
|
||||
college =
|
||||
rec {
|
||||
address = "g.fontes@usp.br";
|
||||
passwordCommand = "${pass} ${smtp.host}/${address}";
|
||||
|
||||
zoocha = rec {
|
||||
address = "gabriel@zoocha.com";
|
||||
passwordCommand = "${pass} ${smtp.host}/${address}";
|
||||
msmtp.enable = true;
|
||||
smtp.host = "smtp.gmail.com";
|
||||
userName = address;
|
||||
}
|
||||
// common;
|
||||
|
||||
/*
|
||||
zoocha =
|
||||
rec {
|
||||
address = "gabriel@zoocha.com";
|
||||
passwordCommand = "${pass} ${smtp.host}/${address}";
|
||||
|
||||
/*
|
||||
TODO: add imap (conditionally)
|
||||
imap.host = "imap.gmail.com";
|
||||
mbsync = {
|
||||
@@ -99,12 +101,13 @@ in
|
||||
neomutt = {
|
||||
enable = true;
|
||||
};
|
||||
*/
|
||||
*/
|
||||
|
||||
msmtp.enable = true;
|
||||
smtp.host = "smtp.gmail.com";
|
||||
userName = address;
|
||||
} // common;
|
||||
msmtp.enable = true;
|
||||
smtp.host = "smtp.gmail.com";
|
||||
userName = address;
|
||||
}
|
||||
// common;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -115,17 +118,15 @@ in
|
||||
Unit = {
|
||||
Description = "mbsync synchronization";
|
||||
};
|
||||
Service =
|
||||
let
|
||||
gpgCmds = import ../cli/gpg-commands.nix { inherit pkgs; };
|
||||
in
|
||||
{
|
||||
Type = "oneshot";
|
||||
ExecCondition = ''
|
||||
/bin/sh -c "${gpgCmds.isUnlocked}"
|
||||
'';
|
||||
ExecStart = "${mbsync} -a";
|
||||
};
|
||||
Service = let
|
||||
gpgCmds = import ../cli/gpg-commands.nix {inherit pkgs;};
|
||||
in {
|
||||
Type = "oneshot";
|
||||
ExecCondition = ''
|
||||
/bin/sh -c "${gpgCmds.isUnlocked}"
|
||||
'';
|
||||
ExecStart = "${mbsync} -a";
|
||||
};
|
||||
};
|
||||
systemd.user.timers.mbsync = {
|
||||
Unit = {
|
||||
@@ -136,7 +137,7 @@ in
|
||||
OnUnitActiveSec = "5m";
|
||||
};
|
||||
Install = {
|
||||
WantedBy = [ "timers.target" ];
|
||||
WantedBy = ["timers.target"];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -3,8 +3,7 @@
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
{
|
||||
}: {
|
||||
xdg = {
|
||||
desktopEntries = {
|
||||
neomutt = {
|
||||
@@ -20,7 +19,7 @@
|
||||
"ConsoleOnly"
|
||||
];
|
||||
type = "Application";
|
||||
mimeType = [ "x-scheme-handler/mailto" ];
|
||||
mimeType = ["x-scheme-handler/mailto"];
|
||||
};
|
||||
};
|
||||
mimeApps.defaultApplications = {
|
||||
@@ -62,64 +61,61 @@
|
||||
{
|
||||
action = "toggle-new";
|
||||
key = "B";
|
||||
map = [ "index" ];
|
||||
map = ["index"];
|
||||
}
|
||||
];
|
||||
macros =
|
||||
let
|
||||
browserpipe = "cat /dev/stdin > /tmp/muttmail.html && xdg-open /tmp/muttmail.html";
|
||||
in
|
||||
[
|
||||
{
|
||||
action = "<sidebar-next><sidebar-open>";
|
||||
key = "J";
|
||||
map = [
|
||||
"index"
|
||||
"pager"
|
||||
];
|
||||
}
|
||||
{
|
||||
action = "<sidebar-prev><sidebar-open>";
|
||||
key = "K";
|
||||
map = [
|
||||
"index"
|
||||
"pager"
|
||||
];
|
||||
}
|
||||
{
|
||||
action = "<save-message>+Archive<enter>";
|
||||
key = "A";
|
||||
map = [
|
||||
"index"
|
||||
"pager"
|
||||
];
|
||||
}
|
||||
{
|
||||
action = "<pipe-entry>${browserpipe}<enter><exit>";
|
||||
key = "V";
|
||||
map = [ "attach" ];
|
||||
}
|
||||
{
|
||||
action = "<pipe-message>${pkgs.urlscan}/bin/urlscan<enter><exit>";
|
||||
key = "F";
|
||||
map = [ "pager" ];
|
||||
}
|
||||
{
|
||||
action = "<view-attachments><search>html<enter><pipe-entry>${browserpipe}<enter><exit>";
|
||||
key = "V";
|
||||
map = [
|
||||
"index"
|
||||
"pager"
|
||||
];
|
||||
}
|
||||
];
|
||||
extraConfig =
|
||||
let
|
||||
# Collect all addresses and aliases
|
||||
addresses = lib.flatten (
|
||||
lib.mapAttrsToList (n: v: [ v.address ] ++ v.aliases) config.accounts.email.accounts
|
||||
);
|
||||
in
|
||||
macros = let
|
||||
browserpipe = "cat /dev/stdin > /tmp/muttmail.html && xdg-open /tmp/muttmail.html";
|
||||
in [
|
||||
{
|
||||
action = "<sidebar-next><sidebar-open>";
|
||||
key = "J";
|
||||
map = [
|
||||
"index"
|
||||
"pager"
|
||||
];
|
||||
}
|
||||
{
|
||||
action = "<sidebar-prev><sidebar-open>";
|
||||
key = "K";
|
||||
map = [
|
||||
"index"
|
||||
"pager"
|
||||
];
|
||||
}
|
||||
{
|
||||
action = "<save-message>+Archive<enter>";
|
||||
key = "A";
|
||||
map = [
|
||||
"index"
|
||||
"pager"
|
||||
];
|
||||
}
|
||||
{
|
||||
action = "<pipe-entry>${browserpipe}<enter><exit>";
|
||||
key = "V";
|
||||
map = ["attach"];
|
||||
}
|
||||
{
|
||||
action = "<pipe-message>${pkgs.urlscan}/bin/urlscan<enter><exit>";
|
||||
key = "F";
|
||||
map = ["pager"];
|
||||
}
|
||||
{
|
||||
action = "<view-attachments><search>html<enter><pipe-entry>${browserpipe}<enter><exit>";
|
||||
key = "V";
|
||||
map = [
|
||||
"index"
|
||||
"pager"
|
||||
];
|
||||
}
|
||||
];
|
||||
extraConfig = let
|
||||
# Collect all addresses and aliases
|
||||
addresses = lib.flatten (
|
||||
lib.mapAttrsToList (n: v: [v.address] ++ v.aliases) config.accounts.email.accounts
|
||||
);
|
||||
in
|
||||
''
|
||||
alternates "${lib.concatStringsSep "|" addresses}"
|
||||
''
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [ todoman ];
|
||||
xdg.configFile."todoman/config.py".text = /* python */
|
||||
{pkgs, ...}: {
|
||||
home.packages = with pkgs; [todoman];
|
||||
xdg.configFile."todoman/config.py".text =
|
||||
/*
|
||||
python
|
||||
*/
|
||||
''
|
||||
path = "~/Calendars/*"
|
||||
default_list = "Personal"
|
||||
|
||||
@@ -3,12 +3,10 @@
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
}: let
|
||||
pass = "${config.programs.password-store.package}/bin/pass";
|
||||
in
|
||||
{
|
||||
home.packages = with pkgs; [ vdirsyncer ];
|
||||
in {
|
||||
home.packages = with pkgs; [vdirsyncer];
|
||||
|
||||
home.persistence = {
|
||||
"/persist/home/misterio".directories = [
|
||||
@@ -18,7 +16,10 @@ in
|
||||
];
|
||||
};
|
||||
|
||||
xdg.configFile."vdirsyncer/config".text = /* ini */
|
||||
xdg.configFile."vdirsyncer/config".text =
|
||||
/*
|
||||
ini
|
||||
*/
|
||||
''
|
||||
[general]
|
||||
status_path = "~/.local/share/vdirsyncer/status"
|
||||
@@ -63,17 +64,15 @@ in
|
||||
Unit = {
|
||||
Description = "vdirsyncer synchronization";
|
||||
};
|
||||
Service =
|
||||
let
|
||||
gpgCmds = import ../cli/gpg-commands.nix { inherit pkgs; };
|
||||
in
|
||||
{
|
||||
Type = "oneshot";
|
||||
ExecCondition = ''
|
||||
/bin/sh -c "${gpgCmds.isUnlocked}"
|
||||
'';
|
||||
ExecStart = "${pkgs.vdirsyncer}/bin/vdirsyncer sync";
|
||||
};
|
||||
Service = let
|
||||
gpgCmds = import ../cli/gpg-commands.nix {inherit pkgs;};
|
||||
in {
|
||||
Type = "oneshot";
|
||||
ExecCondition = ''
|
||||
/bin/sh -c "${gpgCmds.isUnlocked}"
|
||||
'';
|
||||
ExecStart = "${pkgs.vdirsyncer}/bin/vdirsyncer sync";
|
||||
};
|
||||
};
|
||||
systemd.user.timers.vdirsyncer = {
|
||||
Unit = {
|
||||
@@ -84,7 +83,7 @@ in
|
||||
OnUnitActiveSec = "5m";
|
||||
};
|
||||
Install = {
|
||||
WantedBy = [ "timers.target" ];
|
||||
WantedBy = ["timers.target"];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
{ config, ... }:
|
||||
let
|
||||
{config, ...}: let
|
||||
inherit (config.colorscheme) colors;
|
||||
in
|
||||
{
|
||||
in {
|
||||
services.rgbdaemon = {
|
||||
enable = true;
|
||||
daemons = {
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
{ lib, ... }:
|
||||
{
|
||||
imports = [ ./global ];
|
||||
{lib, ...}: {
|
||||
imports = [./global];
|
||||
# Disable impermanence
|
||||
home.persistence = lib.mkForce { };
|
||||
home.persistence = lib.mkForce {};
|
||||
}
|
||||
|
||||
@@ -5,24 +5,24 @@
|
||||
config,
|
||||
outputs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
}: let
|
||||
inherit (inputs.nix-colors) colorSchemes;
|
||||
inherit (inputs.nix-colors.lib-contrib { inherit pkgs; }) nixWallpaperFromScheme;
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
inputs.impermanence.nixosModules.home-manager.impermanence
|
||||
inputs.nix-colors.homeManagerModule
|
||||
../features/cli
|
||||
../features/nvim
|
||||
] ++ (builtins.attrValues outputs.homeManagerModules);
|
||||
inherit (inputs.nix-colors.lib-contrib {inherit pkgs;}) nixWallpaperFromScheme;
|
||||
in {
|
||||
imports =
|
||||
[
|
||||
inputs.impermanence.nixosModules.home-manager.impermanence
|
||||
inputs.nix-colors.homeManagerModule
|
||||
../features/cli
|
||||
../features/nvim
|
||||
]
|
||||
++ (builtins.attrValues outputs.homeManagerModules);
|
||||
|
||||
nixpkgs = {
|
||||
overlays = builtins.attrValues outputs.overlays;
|
||||
config = {
|
||||
allowUnfree = true;
|
||||
allowUnfreePredicate = (_: true);
|
||||
allowUnfreePredicate = _: true;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -49,7 +49,7 @@ in
|
||||
username = lib.mkDefault "misterio";
|
||||
homeDirectory = lib.mkDefault "/home/${config.home.username}";
|
||||
stateVersion = lib.mkDefault "22.05";
|
||||
sessionPath = [ "$HOME/.local/bin" ];
|
||||
sessionPath = ["$HOME/.local/bin"];
|
||||
sessionVariables = {
|
||||
FLAKE = "$HOME/Documents/NixConfig";
|
||||
};
|
||||
@@ -79,12 +79,11 @@ in
|
||||
".colorscheme.json".text = builtins.toJSON config.colorscheme;
|
||||
};
|
||||
|
||||
wallpaper =
|
||||
let
|
||||
largest = f: xs: builtins.head (builtins.sort (a: b: a > b) (map f xs));
|
||||
largestWidth = largest (x: x.width) config.monitors;
|
||||
largestHeight = largest (x: x.height) config.monitors;
|
||||
in
|
||||
wallpaper = let
|
||||
largest = f: xs: builtins.head (builtins.sort (a: b: a > b) (map f xs));
|
||||
largestWidth = largest (x: x.width) config.monitors;
|
||||
largestHeight = largest (x: x.height) config.monitors;
|
||||
in
|
||||
lib.mkDefault (nixWallpaperFromScheme {
|
||||
scheme = config.colorscheme;
|
||||
width = largestWidth;
|
||||
@@ -92,53 +91,51 @@ in
|
||||
logoScale = 4;
|
||||
});
|
||||
|
||||
home.packages =
|
||||
let
|
||||
specialisation = pkgs.writeShellScriptBin "specialisation" ''
|
||||
profiles="$HOME/.local/state/nix/profiles"
|
||||
current="$profiles/home-manager"
|
||||
base="$profiles/home-manager-base"
|
||||
home.packages = let
|
||||
specialisation = pkgs.writeShellScriptBin "specialisation" ''
|
||||
profiles="$HOME/.local/state/nix/profiles"
|
||||
current="$profiles/home-manager"
|
||||
base="$profiles/home-manager-base"
|
||||
|
||||
# If current contains specialisations, link it as base
|
||||
if [ -d "$current/specialisation" ]; then
|
||||
echo >&2 "Using current profile as base"
|
||||
ln -sfT "$(readlink "$current")" "$base"
|
||||
# Check that $base contains specialisations before proceeding
|
||||
elif [ -d "$base/specialisation" ]; then
|
||||
echo >&2 "Using previously linked base profile"
|
||||
else
|
||||
echo >&2 "No suitable base config found. Try 'home-manager switch' again."
|
||||
exit 1
|
||||
fi
|
||||
# If current contains specialisations, link it as base
|
||||
if [ -d "$current/specialisation" ]; then
|
||||
echo >&2 "Using current profile as base"
|
||||
ln -sfT "$(readlink "$current")" "$base"
|
||||
# Check that $base contains specialisations before proceeding
|
||||
elif [ -d "$base/specialisation" ]; then
|
||||
echo >&2 "Using previously linked base profile"
|
||||
else
|
||||
echo >&2 "No suitable base config found. Try 'home-manager switch' again."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ "$1" = "list" ] || [ "$1" = "-l" ] || [ "$1" = "--list" ]; then
|
||||
find "$base/specialisation" -type l -printf "%f\n"
|
||||
exit 0
|
||||
fi
|
||||
if [ "$1" = "list" ] || [ "$1" = "-l" ] || [ "$1" = "--list" ]; then
|
||||
find "$base/specialisation" -type l -printf "%f\n"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo >&2 "Switching to ''${1:-base} specialisation"
|
||||
if [ -n "$1" ]; then
|
||||
"$base/specialisation/$1/activate"
|
||||
echo >&2 "Switching to ''${1:-base} specialisation"
|
||||
if [ -n "$1" ]; then
|
||||
"$base/specialisation/$1/activate"
|
||||
else
|
||||
"$base/activate"
|
||||
fi
|
||||
'';
|
||||
toggle-theme = pkgs.writeShellScriptBin "toggle-theme" ''
|
||||
if [ -n "$1" ]; then
|
||||
theme="$1"
|
||||
else
|
||||
current="$(${lib.getExe pkgs.jq} -re '.kind' "$HOME/.colorscheme.json")"
|
||||
if [ "$current" = "light" ]; then
|
||||
theme="dark"
|
||||
else
|
||||
"$base/activate"
|
||||
theme="light"
|
||||
fi
|
||||
'';
|
||||
toggle-theme = pkgs.writeShellScriptBin "toggle-theme" ''
|
||||
if [ -n "$1" ]; then
|
||||
theme="$1"
|
||||
else
|
||||
current="$(${lib.getExe pkgs.jq} -re '.kind' "$HOME/.colorscheme.json")"
|
||||
if [ "$current" = "light" ]; then
|
||||
theme="dark"
|
||||
else
|
||||
theme="light"
|
||||
fi
|
||||
fi
|
||||
${lib.getExe specialisation} "$theme"
|
||||
'';
|
||||
in
|
||||
[
|
||||
specialisation
|
||||
toggle-theme
|
||||
];
|
||||
fi
|
||||
${lib.getExe specialisation} "$theme"
|
||||
'';
|
||||
in [
|
||||
specialisation
|
||||
toggle-theme
|
||||
];
|
||||
}
|
||||
|
||||
@@ -1 +1 @@
|
||||
{ imports = [ ./global ]; }
|
||||
{imports = [./global];}
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
{ inputs, ... }:
|
||||
{
|
||||
imports = [ ./global ];
|
||||
{inputs, ...}: {
|
||||
imports = [./global];
|
||||
colorscheme = inputs.nix-colors.colorSchemes.nord;
|
||||
}
|
||||
|
||||
@@ -3,11 +3,9 @@
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
}: let
|
||||
inherit (inputs.nix-colors) colorSchemes;
|
||||
in
|
||||
{
|
||||
in {
|
||||
imports = [
|
||||
./global
|
||||
./features/desktop/hyprland
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
imports = [ ../common/optional/ephemeral-btrfs.nix ];
|
||||
imports = [../common/optional/ephemeral-btrfs.nix];
|
||||
|
||||
boot = {
|
||||
initrd = {
|
||||
@@ -21,7 +21,7 @@
|
||||
fileSystems."/boot" = {
|
||||
device = "/dev/disk/by-label/alcyone";
|
||||
fsType = "btrfs";
|
||||
options = [ "subvol=boot" ];
|
||||
options = ["subvol=boot"];
|
||||
};
|
||||
|
||||
swapDevices = [
|
||||
@@ -34,7 +34,7 @@
|
||||
hardware.cpu.intel.updateMicrocode = true;
|
||||
|
||||
virtualisation.hypervGuest.enable = true;
|
||||
systemd.services.hv-kvp.unitConfig.ConditionPathExists = [ "/dev/vmbus/hv_kvp" ];
|
||||
systemd.services.hv-kvp.unitConfig.ConditionPathExists = ["/dev/vmbus/hv_kvp"];
|
||||
|
||||
nixpkgs.hostPlatform = "x86_64-linux";
|
||||
}
|
||||
|
||||
@@ -1,14 +1,11 @@
|
||||
{ pkgs, ... }:
|
||||
let
|
||||
{pkgs, ...}: let
|
||||
cgit = "${pkgs.scgit}";
|
||||
compileSass =
|
||||
file:
|
||||
pkgs.runCommand "sass" { buildInputs = [ pkgs.sass ]; } ''
|
||||
compileSass = file:
|
||||
pkgs.runCommand "sass" {buildInputs = [pkgs.sass];} ''
|
||||
sass ${file} > $out
|
||||
'';
|
||||
partials = "${pkgs.inputs.website.default}/public/cgit_partials";
|
||||
in
|
||||
{
|
||||
in {
|
||||
services = {
|
||||
nginx.virtualHosts."m7.rs" = {
|
||||
forceSSL = true;
|
||||
@@ -34,7 +31,7 @@ in
|
||||
master = "true";
|
||||
socket = "/run/uwsgi/cgit.sock";
|
||||
procname-master = "uwsgi cgit";
|
||||
plugins = [ "cgi" ];
|
||||
plugins = ["cgi"];
|
||||
cgi = "${cgit}/cgit/cgit.cgi";
|
||||
};
|
||||
};
|
||||
@@ -42,7 +39,7 @@ in
|
||||
systemd.services.create-cgit-cache = {
|
||||
description = "Create cache directory for cgit";
|
||||
enable = true;
|
||||
wantedBy = [ "uwsgi.service" ];
|
||||
wantedBy = ["uwsgi.service"];
|
||||
serviceConfig = {
|
||||
type = "oneshot";
|
||||
};
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
# Something I did for a UI/UX class I took
|
||||
# Decided to keep around to help out freshmen
|
||||
|
||||
{ pkgs, ... }:
|
||||
let
|
||||
{pkgs, ...}: let
|
||||
cincobola = pkgs.stdenv.mkDerivation {
|
||||
name = "cincobola";
|
||||
JEKYLL_ENV = "production";
|
||||
@@ -12,7 +10,7 @@ let
|
||||
rev = "bd1dcc3";
|
||||
hash = "sha256-npPYxuZkqZWS0nRGc9IpTNviWzF5sFNUeVTdS6486lg=";
|
||||
};
|
||||
buildInputs = [ pkgs.jekyll ];
|
||||
buildInputs = [pkgs.jekyll];
|
||||
buildPhase = ''
|
||||
jekyll build
|
||||
'';
|
||||
@@ -23,8 +21,7 @@ let
|
||||
days = n: (hours n) * 24;
|
||||
hours = n: (minutes n) * 60;
|
||||
minutes = n: n * 60;
|
||||
in
|
||||
{
|
||||
in {
|
||||
services.nginx.virtualHosts."cincobola.misterio.me" = {
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
|
||||
@@ -4,8 +4,7 @@ let
|
||||
enableACME = true;
|
||||
locations."/".root = "/srv/files";
|
||||
};
|
||||
in
|
||||
{
|
||||
in {
|
||||
services.nginx.virtualHosts = {
|
||||
"files.m7.rs" = files;
|
||||
"f.m7.rs" = files;
|
||||
|
||||
@@ -1,15 +1,18 @@
|
||||
{ inputs, config, ... }:
|
||||
{
|
||||
imports = [ inputs.firefly.nixosModules.firefly-iii ];
|
||||
inputs,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
imports = [inputs.firefly.nixosModules.firefly-iii];
|
||||
|
||||
nixpkgs.overlays = [ inputs.firefly.overlays.default ];
|
||||
nixpkgs.overlays = [inputs.firefly.overlays.default];
|
||||
|
||||
services.firefly-iii = {
|
||||
enable = true;
|
||||
hostname = "firefly.m7.rs";
|
||||
appKeyFile = config.sops.secrets.firefly-key.path;
|
||||
nginx = {
|
||||
serverAliases = [ "firefly.m7.rs" ];
|
||||
serverAliases = ["firefly.m7.rs"];
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
};
|
||||
@@ -24,6 +27,6 @@
|
||||
};
|
||||
|
||||
environment.persistence = {
|
||||
"/persist".directories = [ "/var/lib/firefly-iii" ];
|
||||
"/persist".directories = ["/var/lib/firefly-iii"];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -3,11 +3,9 @@
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
|
||||
}: {
|
||||
environment.persistence = {
|
||||
"/persist".directories = [ "/srv/git" ];
|
||||
"/persist".directories = ["/srv/git"];
|
||||
};
|
||||
|
||||
services.gitDaemon = {
|
||||
@@ -15,7 +13,7 @@
|
||||
basePath = "/srv/git";
|
||||
exportAll = true;
|
||||
};
|
||||
networking.firewall.allowedTCPPorts = [ 9418 ];
|
||||
networking.firewall.allowedTCPPorts = [9418];
|
||||
|
||||
users = {
|
||||
users.git = {
|
||||
@@ -25,15 +23,15 @@
|
||||
isSystemUser = true;
|
||||
shell = "${pkgs.bash}/bin/bash";
|
||||
group = "git";
|
||||
packages = [ pkgs.git ];
|
||||
packages = [pkgs.git];
|
||||
openssh.authorizedKeys.keys =
|
||||
# My key
|
||||
config.users.users.misterio.openssh.authorizedKeys.keys
|
||||
++
|
||||
# The key hydra uses to access other hosts
|
||||
# This is used to push CI-gated branches to my nix-config
|
||||
config.nix.sshServe.keys;
|
||||
# The key hydra uses to access other hosts
|
||||
# This is used to push CI-gated branches to my nix-config
|
||||
config.nix.sshServe.keys;
|
||||
};
|
||||
groups.git = { };
|
||||
groups.git = {};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
{ config, lib, ... }:
|
||||
let
|
||||
derpPort = 3478;
|
||||
in
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
derpPort = 3478;
|
||||
in {
|
||||
services = {
|
||||
headscale = {
|
||||
enable = true;
|
||||
@@ -13,8 +15,8 @@ in
|
||||
override_local_dns = true;
|
||||
base_domain = "m7.rs";
|
||||
magic_dns = true;
|
||||
domains = [ "ts.m7.rs" ];
|
||||
nameservers = [ "9.9.9.9" ];
|
||||
domains = ["ts.m7.rs"];
|
||||
nameservers = ["9.9.9.9"];
|
||||
};
|
||||
server_url = "https://tailscale.m7.rs";
|
||||
metrics_listen_addr = "127.0.0.1:8095";
|
||||
@@ -59,11 +61,11 @@ in
|
||||
};
|
||||
|
||||
# Derp server
|
||||
networking.firewall.allowedUDPPorts = [ derpPort ];
|
||||
networking.firewall.allowedUDPPorts = [derpPort];
|
||||
|
||||
environment.systemPackages = [ config.services.headscale.package ];
|
||||
environment.systemPackages = [config.services.headscale.package];
|
||||
|
||||
environment.persistence = {
|
||||
"/persist".directories = [ "/var/lib/headscale" ];
|
||||
"/persist".directories = ["/var/lib/headscale"];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -3,12 +3,11 @@
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
imports = [ inputs.nixos-mailserver.nixosModules.mailserver ];
|
||||
}: {
|
||||
imports = [inputs.nixos-mailserver.nixosModules.mailserver];
|
||||
|
||||
# https://gitlab.com/simple-nixos-mailserver/nixos-mailserver/-/issues/275
|
||||
services.dovecot2.sieve.extensions = [ "fileinto" ];
|
||||
services.dovecot2.sieve.extensions = ["fileinto"];
|
||||
|
||||
mailserver = rec {
|
||||
enable = true;
|
||||
@@ -72,7 +71,7 @@
|
||||
# Webmail
|
||||
services.roundcube = rec {
|
||||
enable = true;
|
||||
package = pkgs.roundcube.withPlugins (p: [ p.carddav ]);
|
||||
package = pkgs.roundcube.withPlugins (p: [p.carddav]);
|
||||
hostName = "mail.m7.rs";
|
||||
extraConfig = ''
|
||||
$config['smtp_host'] = "tls://${hostName}:587";
|
||||
|
||||
@@ -3,8 +3,7 @@
|
||||
outputs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
{
|
||||
}: {
|
||||
services = {
|
||||
prometheus = {
|
||||
enable = true;
|
||||
@@ -16,12 +15,12 @@
|
||||
{
|
||||
job_name = "hydra";
|
||||
scheme = "https";
|
||||
static_configs = [ { targets = [ "hydra.m7.rs" ]; } ];
|
||||
static_configs = [{targets = ["hydra.m7.rs"];}];
|
||||
}
|
||||
{
|
||||
job_name = "headscale";
|
||||
scheme = "https";
|
||||
static_configs = [ { targets = [ "tailscale.m7.rs" ]; } ];
|
||||
static_configs = [{targets = ["tailscale.m7.rs"];}];
|
||||
}
|
||||
{
|
||||
job_name = "nginx";
|
||||
@@ -39,23 +38,23 @@
|
||||
{
|
||||
job_name = "hosts";
|
||||
scheme = "http";
|
||||
static_configs = lib.mapAttrsToList (hostname: value: let
|
||||
port = value.config.services.prometheus.exporters.node.port;
|
||||
in {
|
||||
targets = ["${hostname}:${toString port}"];
|
||||
labels.instance = hostname;
|
||||
}) outputs.nixosConfigurations;
|
||||
static_configs =
|
||||
lib.mapAttrsToList (hostname: value: let
|
||||
port = value.config.services.prometheus.exporters.node.port;
|
||||
in {
|
||||
targets = ["${hostname}:${toString port}"];
|
||||
labels.instance = hostname;
|
||||
})
|
||||
outputs.nixosConfigurations;
|
||||
}
|
||||
];
|
||||
extraFlags =
|
||||
let
|
||||
prometheus = config.services.prometheus.package;
|
||||
in
|
||||
[
|
||||
# Custom consoles
|
||||
"--web.console.templates=${prometheus}/etc/prometheus/consoles"
|
||||
"--web.console.libraries=${prometheus}/etc/prometheus/console_libraries"
|
||||
];
|
||||
extraFlags = let
|
||||
prometheus = config.services.prometheus.package;
|
||||
in [
|
||||
# Custom consoles
|
||||
"--web.console.templates=${prometheus}/etc/prometheus/consoles"
|
||||
"--web.console.libraries=${prometheus}/etc/prometheus/console_libraries"
|
||||
];
|
||||
};
|
||||
nginx.virtualHosts = {
|
||||
"metrics.m7.rs" = {
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
{ config, lib, ... }:
|
||||
let
|
||||
port = "5232";
|
||||
in
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
port = "5232";
|
||||
in {
|
||||
services = {
|
||||
radicale = {
|
||||
enable = true;
|
||||
@@ -43,6 +45,6 @@ in
|
||||
};
|
||||
|
||||
environment.persistence = {
|
||||
"/persist".directories = [ "/var/lib/radicale" ];
|
||||
"/persist".directories = ["/var/lib/radicale"];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
{ pkgs, ... }:
|
||||
let
|
||||
{pkgs, ...}: let
|
||||
website = pkgs.inputs.website.default;
|
||||
pgpKey = ../../../../home/misterio/pgp.asc;
|
||||
sshKey = ../../../../home/misterio/ssh.pub;
|
||||
@@ -11,8 +10,7 @@ let
|
||||
days = n: (hours n) * 24;
|
||||
hours = n: (minutes n) * 60;
|
||||
minutes = n: n * 60;
|
||||
in
|
||||
{
|
||||
in {
|
||||
imports = [
|
||||
./themes.nix
|
||||
./shortner.nix
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
{ lib, ... }:
|
||||
{
|
||||
{lib, ...}: {
|
||||
services.nginx.virtualHosts."m7.rs" = {
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
locations = lib.mapAttrs' (n: v: lib.nameValuePair "/l/${n}" { return = "302 ${v}$request_uri"; }) {
|
||||
locations = lib.mapAttrs' (n: v: lib.nameValuePair "/l/${n}" {return = "302 ${v}$request_uri";}) {
|
||||
"booletim" = "https://drive.google.com/uc?export=download&id=1cPemsZV3mUq9nfPMW1nKE7CssijMk7s0";
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,10 +1,13 @@
|
||||
{ inputs, pkgs, ... }:
|
||||
let
|
||||
{
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
themes = pkgs.stdenv.mkDerivation {
|
||||
name = "website-themes";
|
||||
src = builtins.toFile "schemes" (builtins.toJSON inputs.nix-colors.colorSchemes);
|
||||
dontUnpack = true;
|
||||
buildInputs = [ pkgs.jq ];
|
||||
buildInputs = [pkgs.jq];
|
||||
buildPhase = ''
|
||||
build_css() {
|
||||
scheme_name="$1"
|
||||
@@ -48,8 +51,7 @@ let
|
||||
'';
|
||||
};
|
||||
days = n: toString (n * 60 * 60 * 24);
|
||||
in
|
||||
{
|
||||
in {
|
||||
services.nginx.virtualHosts = {
|
||||
"m7.rs" = {
|
||||
forceSSL = true;
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
{ pkgs, inputs, ... }:
|
||||
{
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
inputs.hardware.nixosModules.common-cpu-amd
|
||||
inputs.hardware.nixosModules.common-gpu-amd
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
"usbhid"
|
||||
"sd_mod"
|
||||
];
|
||||
kernelModules = [ "kvm-amd" ];
|
||||
kernelModules = ["kvm-amd"];
|
||||
};
|
||||
loader = {
|
||||
systemd-boot = {
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
{ modulesPath, ... }:
|
||||
{
|
||||
{modulesPath, ...}: {
|
||||
imports = [
|
||||
../common/optional/ephemeral-btrfs.nix
|
||||
(modulesPath + "/profiles/qemu-guest.nix")
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
sops.secrets.cache-sig-key = {
|
||||
sopsFile = ../secrets.yaml;
|
||||
};
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user