refactor
Signed-off-by: Harald Hoyer <harald@hoyer.xyz>
This commit is contained in:
parent
45d6f4b0f3
commit
1281c57892
|
@ -608,11 +608,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1704099619,
|
"lastModified": 1704980875,
|
||||||
"narHash": "sha256-QRVMkdxLmv+aKGjcgeEg31xtJEIsYq4i1Kbyw5EPS6g=",
|
"narHash": "sha256-IPZmMjk5f4TBbEpzUFBc3OC1W6OwDNEXk2w/0uVXX1o=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "7e398b3d76bc1503171b1364c9d4a07ac06f3851",
|
"rev": "5f0ab0eedc6ede69beb8f45561ffefa54edc6e65",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
23
flake.nix
23
flake.nix
|
@ -23,6 +23,13 @@
|
||||||
src = ./.;
|
src = ./.;
|
||||||
|
|
||||||
snowfall.namespace = "plusultra";
|
snowfall.namespace = "plusultra";
|
||||||
|
|
||||||
|
snowfall = {
|
||||||
|
meta = {
|
||||||
|
name = "plusultra";
|
||||||
|
title = "Plus Ultra";
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
lib.mkFlake {
|
lib.mkFlake {
|
||||||
|
@ -30,14 +37,26 @@
|
||||||
allowUnfree = true;
|
allowUnfree = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
# Add modules to all homes.
|
homes.users."harald@nix.fedora.fritz.box".modules = with inputs; [
|
||||||
homes.modules = with inputs; [
|
|
||||||
neovim-flake.homeManagerModules.default
|
neovim-flake.homeManagerModules.default
|
||||||
];
|
];
|
||||||
|
|
||||||
|
homes.users."harald@sgx-nixos".modules = with inputs; [
|
||||||
|
neovim-flake.homeManagerModules.default
|
||||||
|
];
|
||||||
|
|
||||||
|
# homes.users.modules = with inputs; [
|
||||||
|
# neovim-flake.homeManagerModules.default
|
||||||
|
# ];
|
||||||
|
|
||||||
|
systems.modules.nixos = with inputs; [
|
||||||
|
home-manager.nixosModules.home-manager
|
||||||
|
];
|
||||||
|
|
||||||
outputs-builder = channels: {
|
outputs-builder = channels: {
|
||||||
formatter = channels.nixpkgs.nixpkgs-fmt;
|
formatter = channels.nixpkgs.nixpkgs-fmt;
|
||||||
defaultApp = lib.flake-utils-plus.mkApp { drv = channels.nixpkgs.home-manager; };
|
defaultApp = lib.flake-utils-plus.mkApp { drv = channels.nixpkgs.home-manager; };
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,10 +8,10 @@
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
home = {
|
home = {
|
||||||
username = "harald";
|
username = "harald";
|
||||||
homeDirectory = "/home/${config.home.username}/nix";
|
homeDirectory = "/home/${config.home.username}/nix";
|
||||||
stateVersion = "23.11"; # Please read the comment before changing.
|
stateVersion = "23.11"; # Please read the comment before changing.
|
||||||
sessionPath = [ "$HOME/bin" ];
|
sessionPath = [ "$HOME/bin" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
plusultra = {
|
plusultra = {
|
||||||
|
|
36
homes/x86_64-linux/harald@sgx-nixos/default.nix
Normal file
36
homes/x86_64-linux/harald@sgx-nixos/default.nix
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
{ lib
|
||||||
|
, pkgs
|
||||||
|
, config
|
||||||
|
, nixpkgs
|
||||||
|
, osConfig ? { }
|
||||||
|
, format ? "unknown"
|
||||||
|
, ...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
home = {
|
||||||
|
username = "harald";
|
||||||
|
homeDirectory = "/home/${config.home.username}";
|
||||||
|
stateVersion = "23.11"; # Please read the comment before changing.
|
||||||
|
sessionPath = [ "$HOME/bin" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
plusultra = {
|
||||||
|
cli-apps = {
|
||||||
|
bash.enable = true;
|
||||||
|
fish.enable = true;
|
||||||
|
neovim.enable = true;
|
||||||
|
tmux.enable = true;
|
||||||
|
bat.enable = true;
|
||||||
|
git.enable = true;
|
||||||
|
starship.enable = true;
|
||||||
|
home-manager.enable = true;
|
||||||
|
};
|
||||||
|
tools = {
|
||||||
|
direnv.enable = true;
|
||||||
|
# jetbrains.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
fonts.fontconfig.enable = true;
|
||||||
|
}
|
||||||
|
|
|
@ -1,58 +0,0 @@
|
||||||
{ options
|
|
||||||
, config
|
|
||||||
, lib
|
|
||||||
, pkgs
|
|
||||||
, ...
|
|
||||||
}:
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra; let
|
|
||||||
cfg = config.plusultra.apps.firefox;
|
|
||||||
defaultSettings = {
|
|
||||||
"browser.aboutwelcome.enabled" = false;
|
|
||||||
"browser.meta_refresh_when_inactive.disabled" = true;
|
|
||||||
"browser.startup.homepage" = "https://start.duckduckgo.com/?kak=-1&kal=-1&kao=-1&kaq=-1&kt=Hack+Nerd+Font&kae=d&ks=m&k7=2e3440&kj=3b4252&k9=eceff4&kaa=d8dee9&ku=1&k8=d8dee9&kx=81a1c1&k21=3b4252&k18=1&k5=2&kp=-2&k1=-1&kaj=u&kay=b&kk=-1&kax=-1&kap=-1&kau=-1";
|
|
||||||
"browser.bookmarks.showMobileBookmarks" = true;
|
|
||||||
"browser.urlbar.suggest.quicksuggest.sponsored" = false;
|
|
||||||
"browser.newtabpage.activity-stream.showSponsoredTopSites" = false;
|
|
||||||
"browser.aboutConfig.showWarning" = false;
|
|
||||||
"browser.ssb.enabled" = true;
|
|
||||||
};
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.apps.firefox = with types; {
|
|
||||||
enable = mkBoolOpt false "Whether or not to enable Firefox.";
|
|
||||||
extraConfig =
|
|
||||||
mkOpt str "" "Extra configuration for the user profile JS file.";
|
|
||||||
userChrome =
|
|
||||||
mkOpt str "" "Extra configuration for the user chrome CSS file.";
|
|
||||||
settings = mkOpt attrs defaultSettings "Settings to apply to the profile.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
plusultra.desktop.addons.firefox-nordic-theme = enabled;
|
|
||||||
|
|
||||||
plusultra.home = {
|
|
||||||
extraOptions = {
|
|
||||||
programs.firefox = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.firefox.override {
|
|
||||||
cfg = {
|
|
||||||
# FIXME: This method of enabling browser pass support is
|
|
||||||
# deprecated, but the suggested solution requires using
|
|
||||||
# the NixOS module rather than Home-Manager. Update this
|
|
||||||
# if/when Home-Manager gets support for:
|
|
||||||
# `programs.firefox.extraNativeMessagingHosts.packages`
|
|
||||||
enableBrowserpass = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
profiles.${config.plusultra.user.name} = {
|
|
||||||
inherit (cfg) extraConfig userChrome settings;
|
|
||||||
id = 0;
|
|
||||||
name = config.plusultra.user.name;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,18 +0,0 @@
|
||||||
{ options, config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra;
|
|
||||||
let
|
|
||||||
cfg = config.plusultra.apps.iterm2;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.apps.iterm2 = with types; {
|
|
||||||
enable = mkBoolOpt false "Whether or not to enable iTerm2.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
iterm2
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,14 +0,0 @@
|
||||||
{ options, config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra;
|
|
||||||
let cfg = config.plusultra.apps.vscode;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.apps.vscode = with types; {
|
|
||||||
enable = mkBoolOpt false "Whether or not to enable vscode.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config =
|
|
||||||
mkIf cfg.enable { environment.systemPackages = with pkgs; [ vscode ]; };
|
|
||||||
}
|
|
|
@ -1,47 +0,0 @@
|
||||||
inputs @ { options
|
|
||||||
, config
|
|
||||||
, lib
|
|
||||||
, pkgs
|
|
||||||
, ...
|
|
||||||
}:
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra; let
|
|
||||||
cfg = config.plusultra.cli-apps.neovim;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.cli-apps.neovim = with types; {
|
|
||||||
enable = mkBoolOpt false "Whether or not to enable neovim.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
# FIXME: As of today (2022-12-09), `page` no longer works with my Neovim
|
|
||||||
# configuration. Either something in my configuration is breaking it or `page` is busted.
|
|
||||||
# page
|
|
||||||
plusultra.neovim
|
|
||||||
];
|
|
||||||
|
|
||||||
environment.variables = {
|
|
||||||
# PAGER = "page";
|
|
||||||
# MANPAGER =
|
|
||||||
# "page -C -e 'au User PageDisconnect sleep 100m|%y p|enew! |bd! #|pu p|set ft=man'";
|
|
||||||
PAGER = "less";
|
|
||||||
MANPAGER = "less";
|
|
||||||
NPM_CONFIG_PREFIX = "$HOME/.npm-global";
|
|
||||||
EDITOR = "nvim";
|
|
||||||
};
|
|
||||||
|
|
||||||
plusultra.home = {
|
|
||||||
configFile = {
|
|
||||||
"dashboard-nvim/.keep".text = "";
|
|
||||||
};
|
|
||||||
|
|
||||||
extraOptions = {
|
|
||||||
# Use Neovim for Git diffs.
|
|
||||||
programs.zsh.shellAliases.vimdiff = "nvim -d";
|
|
||||||
programs.bash.shellAliases.vimdiff = "nvim -d";
|
|
||||||
programs.fish.shellAliases.vimdiff = "nvim -d";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,23 +0,0 @@
|
||||||
{ options, config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra;
|
|
||||||
let
|
|
||||||
cfg = config.plusultra.desktop.addons.firefox-nordic-theme;
|
|
||||||
profileDir = ".mozilla/firefox/${config.plusultra.user.name}";
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.desktop.addons.firefox-nordic-theme = with types; {
|
|
||||||
enable = mkBoolOpt false "Whether to enable the Nordic theme for firefox.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
plusultra.apps.firefox = {
|
|
||||||
extraConfig = builtins.readFile
|
|
||||||
"${pkgs.plusultra.firefox-nordic-theme}/configuration/user.js";
|
|
||||||
userChrome = ''
|
|
||||||
@import "${pkgs.plusultra.firefox-nordic-theme}/userChrome.css";
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,109 +0,0 @@
|
||||||
{ lib, pkgs, config, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra;
|
|
||||||
let
|
|
||||||
cfg = config.plusultra.desktop.addons.skhd;
|
|
||||||
|
|
||||||
mkScript = name: file: pkgs.writeShellApplication {
|
|
||||||
inherit name;
|
|
||||||
checkPhase = "";
|
|
||||||
text = builtins.readFile file;
|
|
||||||
};
|
|
||||||
|
|
||||||
open-iterm2 = mkScript "open-iterm2" ./scripts/open-iterm2.sh;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.desktop.addons.skhd = {
|
|
||||||
enable = mkEnableOption "skhd";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
services.skhd = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
skhdConfig = ''
|
|
||||||
# Movement
|
|
||||||
shift + cmd - h : yabai -m window --focus west
|
|
||||||
shift + cmd - j : yabai -m window --focus south
|
|
||||||
shift + cmd - k : yabai -m window --focus north
|
|
||||||
shift + cmd - l : yabai -m window --focus east
|
|
||||||
|
|
||||||
# Window Movement
|
|
||||||
lctrl + shift + cmd - h : yabai -m window --swap west
|
|
||||||
lctrl + shift + cmd - j : yabai -m window --swap south
|
|
||||||
lctrl + shift + cmd - k : yabai -m window --swap north
|
|
||||||
lctrl + shift + cmd - l : yabai -m window --swap east
|
|
||||||
|
|
||||||
# Window Resize
|
|
||||||
lctrl + cmd - h : yabai -m window --resize left:-50:0; \
|
|
||||||
yabai -m window --resize right:-50:0
|
|
||||||
lctrl + cmd - j : yabai -m window --resize bottom:0:50; \
|
|
||||||
yabai -m window --resize top:0:50
|
|
||||||
lctrl + cmd - k : yabai -m window --resize top:0:-50; \
|
|
||||||
yabai -m window --resize bottom:0:-50
|
|
||||||
lctrl + cmd - l : yabai -m window --resize right:50:0; \
|
|
||||||
yabai -m window --resize left:50:0
|
|
||||||
|
|
||||||
lctrl + alt - h : yabai -m window --resize left:-10:0; \
|
|
||||||
yabai -m window --resize right:-10:0
|
|
||||||
lctrl + alt - j : yabai -m window --resize bottom:0:10; \
|
|
||||||
yabai -m window --resize top:0:10
|
|
||||||
lctrl + alt - k : yabai -m window --resize top:0:-10; \
|
|
||||||
yabai -m window --resize bottom:0:-10
|
|
||||||
lctrl + alt - l : yabai -m window --resize right:10:0; \
|
|
||||||
yabai -m window --resize left:10:0
|
|
||||||
|
|
||||||
lctrl + cmd - e : yabai -m space --balance
|
|
||||||
|
|
||||||
# Move Window To Space
|
|
||||||
lctrl + shift + cmd - m : yabai -m window --space last; yabai -m space --focus last
|
|
||||||
lctrl + shift + cmd - p : yabai -m window --space prev; yabai -m space --focus prev
|
|
||||||
lctrl + shift + cmd - n : yabai -m window --space next; yabai -m space --focus next
|
|
||||||
lctrl + shift + cmd - 1 : yabai -m window --space 1; yabai -m space --focus 1
|
|
||||||
lctrl + shift + cmd - 2 : yabai -m window --space 2; yabai -m space --focus 2
|
|
||||||
lctrl + shift + cmd - 3 : yabai -m window --space 3; yabai -m space --focus 3
|
|
||||||
lctrl + shift + cmd - 4 : yabai -m window --space 4; yabai -m space --focus 4
|
|
||||||
|
|
||||||
# Focus Space
|
|
||||||
# shift + cmd - m : yabai -m space --focus last
|
|
||||||
# shift + cmd - p : yabai -m space --focus prev
|
|
||||||
# shift + cmd - n : yabai -m space --focus next
|
|
||||||
shift + cmd - 1 : yabai -m space --focus 1
|
|
||||||
shift + cmd - 2 : yabai -m space --focus 2
|
|
||||||
shift + cmd - 3 : yabai -m space --focus 3
|
|
||||||
shift + cmd - 4 : yabai -m space --focus 4
|
|
||||||
|
|
||||||
# Insert Direction
|
|
||||||
lctrl + shift + cmd - v : yabai -m window --insert south
|
|
||||||
lctrl + shift + cmd - b : yabai -m window --insert east
|
|
||||||
lctrl + shift + cmd - s : yabai -m window --insert stack
|
|
||||||
|
|
||||||
# Floating Windows
|
|
||||||
# shift + cmd - space : \
|
|
||||||
# yabai -m window --toggle float; \
|
|
||||||
# yabai -m window --toggle border
|
|
||||||
shift + cmd - space : yabai -m window --toggle float
|
|
||||||
|
|
||||||
# Terminal
|
|
||||||
shift + cmd - return : ${open-iterm2}/bin/open-iterm2
|
|
||||||
|
|
||||||
# Fullscreen
|
|
||||||
alt - f : yabai -m window --toggle zoom-fullscreen
|
|
||||||
shift + alt - f : yabai -m window --toggle native-fullscreen
|
|
||||||
|
|
||||||
# Restart Yabai
|
|
||||||
shift + lctrl + alt - r : \
|
|
||||||
/usr/bin/env osascript <<< \
|
|
||||||
"display notification \"Restarting Yabai\" with title \"Yabai\""; \
|
|
||||||
launchctl kickstart -k "gui/$UID/org.nixos.yabai"
|
|
||||||
|
|
||||||
# Restart Spacebar
|
|
||||||
shift + lctrl + alt - s : \
|
|
||||||
/usr/bin/env osascript <<< \
|
|
||||||
"display notification \"Restarting Spacebar\" with title \"Spacebar\""; \
|
|
||||||
launchctl kickstart -k "gui/$UID/org.nixos.spacebar"
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,14 +0,0 @@
|
||||||
# Detects if iTerm2 is running
|
|
||||||
if ! pgrep -f "iTerm" > /dev/null 2>&1; then
|
|
||||||
open -a "/Applications/Nix Apps/iTerm2.app"
|
|
||||||
else
|
|
||||||
# Create a new window
|
|
||||||
script='tell application "iTerm2" to create window with default profile'
|
|
||||||
! osascript -e "${script}" > /dev/null 2>&1 && {
|
|
||||||
# Get pids for any app with "iTerm" and kill
|
|
||||||
while IFS="" read -r pid; do
|
|
||||||
kill -15 "${pid}"
|
|
||||||
done < <(pgrep -f "iTerm")
|
|
||||||
open -a "/Applications/Nix Apps/iTerm2.app"
|
|
||||||
}
|
|
||||||
fi
|
|
|
@ -1,47 +0,0 @@
|
||||||
{ lib, pkgs, config, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra;
|
|
||||||
let
|
|
||||||
cfg = config.plusultra.desktop.addons.spacebar;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.desktop.addons.spacebar = {
|
|
||||||
enable = mkEnableOption "Spacebar";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
services.spacebar = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.spacebar;
|
|
||||||
|
|
||||||
config = {
|
|
||||||
position = "top";
|
|
||||||
display = "all";
|
|
||||||
height = 32;
|
|
||||||
title = "on";
|
|
||||||
spaces = "on";
|
|
||||||
clock = "on";
|
|
||||||
power = "off";
|
|
||||||
|
|
||||||
padding_left = 10;
|
|
||||||
padding_right = 10;
|
|
||||||
|
|
||||||
spacing_left = 10;
|
|
||||||
spacing_right = 10;
|
|
||||||
|
|
||||||
foreground_color = "0xffeceff4";
|
|
||||||
background_color = "0xff1d2128";
|
|
||||||
|
|
||||||
text_font = ''"Hack Nerd Font Mono:Regular:14.0"'';
|
|
||||||
icon_font = ''"Hack Nerd Font Mono:Regular:20.0"'';
|
|
||||||
|
|
||||||
# Shell entries apparently break the whole bar...
|
|
||||||
# https://github.com/cmacrae/spacebar/issues/104
|
|
||||||
# right_shell_icon = "";
|
|
||||||
# right_shell_command = ''"whoami"'';
|
|
||||||
# right_shell = "on";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,77 +0,0 @@
|
||||||
{ lib
|
|
||||||
, pkgs
|
|
||||||
, config
|
|
||||||
, ...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
cfg = config.plusultra.desktop.yabai;
|
|
||||||
|
|
||||||
inherit (lib) types mkEnableOption mkIf;
|
|
||||||
inherit (lib.plusultra) mkOpt enabled;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.desktop.yabai = {
|
|
||||||
enable = mkEnableOption "Yabai";
|
|
||||||
enable-scripting-addition = mkOpt types.bool true "Whether to enable the scripting addition for Yabai. (Requires SIP to be disabled)";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
plusultra.desktop.addons = {
|
|
||||||
skhd = enabled;
|
|
||||||
spacebar = enabled;
|
|
||||||
};
|
|
||||||
|
|
||||||
services.yabai = {
|
|
||||||
enable = true;
|
|
||||||
enableScriptingAddition = cfg.enable-scripting-addition;
|
|
||||||
|
|
||||||
config = {
|
|
||||||
layout = "bsp";
|
|
||||||
|
|
||||||
auto_balance = "off";
|
|
||||||
|
|
||||||
debug_output = "on";
|
|
||||||
|
|
||||||
top_padding = 8;
|
|
||||||
right_padding = 8;
|
|
||||||
left_padding = 8;
|
|
||||||
bottom_padding = 8;
|
|
||||||
|
|
||||||
window_gap = 6;
|
|
||||||
window_topmost = "on";
|
|
||||||
window_shadow = "float";
|
|
||||||
|
|
||||||
# As of macOS Sonoma, window borders break Yabai and cause a bunch of lag.
|
|
||||||
window_border = "off";
|
|
||||||
# window_border = "on";
|
|
||||||
# window_border_width = 5;
|
|
||||||
# window_border_radius = 14;
|
|
||||||
# window_border_blur = "off";
|
|
||||||
# window_border_hidpi = "on";
|
|
||||||
# insert_feedback_color = "0xffb48ead";
|
|
||||||
# normal_window_border_color = "0x002e3440";
|
|
||||||
# active_window_border_color = "0xff5e81ac";
|
|
||||||
|
|
||||||
external_bar = "all:${builtins.toString config.services.spacebar.config.height}:0";
|
|
||||||
|
|
||||||
# mouse_modifier = "alt";
|
|
||||||
mouse_modifier = "cmd";
|
|
||||||
mouse_action1 = "move";
|
|
||||||
mouse_action2 = "resize";
|
|
||||||
};
|
|
||||||
|
|
||||||
extraConfig = ''
|
|
||||||
yabai -m rule --add label="Finder" app="^Finder$" title="(Co(py|nnect)|Move|Info|Pref)" manage=off
|
|
||||||
yabai -m rule --add label="Safari" app="^Safari$" title="^(General|(Tab|Password|Website|Extension)s|AutoFill|Se(arch|curity)|Privacy|Advance)$" manage=off
|
|
||||||
yabai -m rule --add label="System Preferences" app="^System Preferences$" title=".*" manage=off
|
|
||||||
yabai -m rule --add label="App Store" app="^App Store$" manage=off
|
|
||||||
yabai -m rule --add label="Activity Monitor" app="^Activity Monitor$" manage=off
|
|
||||||
yabai -m rule --add label="Calculator" app="^Calculator$" manage=off
|
|
||||||
yabai -m rule --add label="Dictionary" app="^Dictionary$" manage=off
|
|
||||||
yabai -m rule --add label="mpv" app="^mpv$" manage=off
|
|
||||||
yabai -m rule --add label="Software Update" title="Software Update" manage=off
|
|
||||||
yabai -m rule --add label="About This Mac" app="System Information" title="About This Mac" manage=off
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,40 +0,0 @@
|
||||||
{ options, config, pkgs, lib, inputs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra;
|
|
||||||
let
|
|
||||||
cfg = config.plusultra.home;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
# imports = with inputs; [
|
|
||||||
# home-manager.darwinModules.home-manager
|
|
||||||
# ];
|
|
||||||
|
|
||||||
options.plusultra.home = with types; {
|
|
||||||
file = mkOpt attrs { }
|
|
||||||
"A set of files to be managed by home-manager's <option>home.file</option>.";
|
|
||||||
configFile = mkOpt attrs { }
|
|
||||||
"A set of files to be managed by home-manager's <option>xdg.configFile</option>.";
|
|
||||||
extraOptions = mkOpt attrs { } "Options to pass directly to home-manager.";
|
|
||||||
homeConfig = mkOpt attrs { } "Final config for home-manager.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = {
|
|
||||||
plusultra.home.extraOptions = {
|
|
||||||
home.stateVersion = mkDefault "22.11";
|
|
||||||
home.file = mkAliasDefinitions options.plusultra.home.file;
|
|
||||||
xdg.enable = true;
|
|
||||||
xdg.configFile = mkAliasDefinitions options.plusultra.home.configFile;
|
|
||||||
};
|
|
||||||
|
|
||||||
snowfallorg.user.${config.plusultra.user.name}.home.config = mkAliasDefinitions options.plusultra.home.extraOptions;
|
|
||||||
|
|
||||||
home-manager = {
|
|
||||||
useUserPackages = true;
|
|
||||||
useGlobalPkgs = true;
|
|
||||||
|
|
||||||
# users.${config.plusultra.user.name} = args:
|
|
||||||
# mkAliasDefinitions options.plusultra.home.extraOptions;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,74 +0,0 @@
|
||||||
{ options
|
|
||||||
, config
|
|
||||||
, pkgs
|
|
||||||
, lib
|
|
||||||
, ...
|
|
||||||
}:
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra; let
|
|
||||||
cfg = config.plusultra.nix;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.nix = with types; {
|
|
||||||
enable = mkBoolOpt true "Whether or not to manage nix configuration.";
|
|
||||||
package = mkOpt package pkgs.nixUnstable "Which nix package to use.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
deploy-rs
|
|
||||||
nixfmt
|
|
||||||
nix-index
|
|
||||||
nix-prefetch-git
|
|
||||||
];
|
|
||||||
|
|
||||||
nix =
|
|
||||||
let
|
|
||||||
users = [ "root" config.plusultra.user.name ];
|
|
||||||
in
|
|
||||||
{
|
|
||||||
package = cfg.package;
|
|
||||||
|
|
||||||
settings = {
|
|
||||||
experimental-features = "nix-command flakes";
|
|
||||||
http-connections = 50;
|
|
||||||
warn-dirty = false;
|
|
||||||
log-lines = 50;
|
|
||||||
|
|
||||||
# Large builds apparently fail due to an issue with darwin:
|
|
||||||
# https://github.com/NixOS/nix/issues/4119
|
|
||||||
sandbox = false;
|
|
||||||
|
|
||||||
# This appears to break on darwin
|
|
||||||
# https://github.com/NixOS/nix/issues/7273
|
|
||||||
auto-optimise-store = false;
|
|
||||||
|
|
||||||
allow-import-from-derivation = true;
|
|
||||||
|
|
||||||
trusted-users = users;
|
|
||||||
allowed-users = users;
|
|
||||||
|
|
||||||
# NOTE: This configuration is generated by nix-installer so I'm adding it here in
|
|
||||||
# case it becomes important.
|
|
||||||
extra-nix-path = "nixpkgs=flake:nixpkgs";
|
|
||||||
build-users-group = "nixbld";
|
|
||||||
};
|
|
||||||
#// (lib.optionalAttrs config.plusultra.tools.direnv.enable {
|
|
||||||
# keep-outputs = true;
|
|
||||||
# keep-derivations = true;
|
|
||||||
#});
|
|
||||||
|
|
||||||
gc = {
|
|
||||||
automatic = true;
|
|
||||||
interval = { Day = 7; };
|
|
||||||
options = "--delete-older-than 30d";
|
|
||||||
user = config.plusultra.user.name;
|
|
||||||
};
|
|
||||||
|
|
||||||
# flake-utils-plus
|
|
||||||
generateRegistryFromInputs = true;
|
|
||||||
generateNixPathFromInputs = true;
|
|
||||||
linkInputs = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,84 +0,0 @@
|
||||||
{ lib, config, pkgs, inputs, ... }:
|
|
||||||
|
|
||||||
let
|
|
||||||
inherit (lib) types mkEnableOption mkIf;
|
|
||||||
inherit (lib.plusultra) mkOpt;
|
|
||||||
|
|
||||||
cfg = config.plusultra.security.gpg;
|
|
||||||
|
|
||||||
gpgConf = "${inputs.gpg-base-conf}/gpg.conf";
|
|
||||||
|
|
||||||
gpgAgentConf = ''
|
|
||||||
enable-ssh-support
|
|
||||||
default-cache-ttl 60
|
|
||||||
max-cache-ttl 120
|
|
||||||
'';
|
|
||||||
|
|
||||||
guide = "${inputs.yubikey-guide}/README.md";
|
|
||||||
|
|
||||||
theme = pkgs.fetchFromGitHub {
|
|
||||||
owner = "jez";
|
|
||||||
repo = "pandoc-markdown-css-theme";
|
|
||||||
rev = "019a4829242937761949274916022e9861ed0627";
|
|
||||||
sha256 = "1h48yqffpaz437f3c9hfryf23r95rr319lrb3y79kxpxbc9hihxb";
|
|
||||||
};
|
|
||||||
|
|
||||||
guideHTML = pkgs.runCommand "yubikey-guide" { } ''
|
|
||||||
${pkgs.pandoc}/bin/pandoc \
|
|
||||||
--standalone \
|
|
||||||
--metadata title="Yubikey Guide" \
|
|
||||||
--from markdown \
|
|
||||||
--to html5+smart \
|
|
||||||
--toc \
|
|
||||||
--template ${theme}/template.html5 \
|
|
||||||
--css ${theme}/docs/css/theme.css \
|
|
||||||
--css ${theme}/docs/css/skylighting-solarized-theme.css \
|
|
||||||
-o $out \
|
|
||||||
${guide}
|
|
||||||
'';
|
|
||||||
|
|
||||||
reload-yubikey = pkgs.writeShellScriptBin "reload-yubikey" ''
|
|
||||||
${pkgs.gnupg}/bin/gpg-connect-agent "scd serialno" "learn --force" /bye
|
|
||||||
'';
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.security.gpg = {
|
|
||||||
enable = mkEnableOption "GPG";
|
|
||||||
agentTimeout = mkOpt types.int 5 "The amount of time to wait before continuing with shell init.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
gnupg
|
|
||||||
];
|
|
||||||
|
|
||||||
environment.shellInit = ''
|
|
||||||
export GPG_TTY="$(tty)"
|
|
||||||
export SSH_AUTH_SOCK=$(${pkgs.gnupg}/bin/gpgconf --list-dirs agent-ssh-socket)
|
|
||||||
|
|
||||||
${pkgs.coreutils}/bin/timeout ${builtins.toString cfg.agentTimeout} ${pkgs.gnupg}/bin/gpgconf --launch gpg-agent
|
|
||||||
gpg_agent_timeout_status=$?
|
|
||||||
|
|
||||||
if [ "$gpg_agent_timeout_status" = 124 ]; then
|
|
||||||
# Command timed out...
|
|
||||||
echo "GPG Agent timed out..."
|
|
||||||
echo 'Run "gpgconf --launch gpg-agent" to try and launch it again.'
|
|
||||||
fi
|
|
||||||
'';
|
|
||||||
|
|
||||||
programs.gnupg.agent = {
|
|
||||||
enable = true;
|
|
||||||
enableSSHSupport = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
plusultra.home.file = {
|
|
||||||
".gnupg/.keep".text = "";
|
|
||||||
|
|
||||||
".gnupg/yubikey-guide.md".source = guide;
|
|
||||||
".gnupg/yubikey-guide.html".source = guideHTML;
|
|
||||||
|
|
||||||
".gnupg/gpg.conf".source = gpgConf;
|
|
||||||
".gnupg/gpg-agent.conf".text = gpgAgentConf;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,17 +0,0 @@
|
||||||
{ lib, config, ... }:
|
|
||||||
|
|
||||||
let
|
|
||||||
inherit (lib) types mkIf;
|
|
||||||
inherit (lib.plusultra) mkOpt enabled;
|
|
||||||
|
|
||||||
cfg = config.plusultra.services.nix-daemon;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.services.nix-daemon = {
|
|
||||||
enable = mkOpt types.bool true "Whether to enable the Nix daemon.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
services.nix-daemon = enabled;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,43 +0,0 @@
|
||||||
{ options, config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra;
|
|
||||||
let
|
|
||||||
cfg = config.plusultra.suites.common;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.suites.common = with types; {
|
|
||||||
enable = mkBoolOpt false "Whether or not to enable common configuration.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
programs.zsh = enabled;
|
|
||||||
|
|
||||||
plusultra = {
|
|
||||||
nix = enabled;
|
|
||||||
|
|
||||||
apps = {
|
|
||||||
iterm2 = enabled;
|
|
||||||
};
|
|
||||||
|
|
||||||
cli-apps = {
|
|
||||||
neovim = enabled;
|
|
||||||
};
|
|
||||||
|
|
||||||
tools = {
|
|
||||||
git = enabled;
|
|
||||||
flake = enabled;
|
|
||||||
};
|
|
||||||
|
|
||||||
system = {
|
|
||||||
fonts = enabled;
|
|
||||||
input = enabled;
|
|
||||||
interface = enabled;
|
|
||||||
};
|
|
||||||
|
|
||||||
security = {
|
|
||||||
gpg = enabled;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,35 +0,0 @@
|
||||||
{ options, config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra;
|
|
||||||
let
|
|
||||||
cfg = config.plusultra.suites.development;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.suites.development = with types; {
|
|
||||||
enable = mkBoolOpt false
|
|
||||||
"Whether or not to enable common development configuration.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
plusultra = {
|
|
||||||
apps = {
|
|
||||||
vscode = enabled;
|
|
||||||
};
|
|
||||||
|
|
||||||
tools = {
|
|
||||||
# at = enabled;
|
|
||||||
# direnv = enabled;
|
|
||||||
# go = enabled;
|
|
||||||
# http = enabled;
|
|
||||||
# k8s = enabled;
|
|
||||||
node = enabled;
|
|
||||||
# titan = enabled;
|
|
||||||
python = enabled;
|
|
||||||
java = enabled;
|
|
||||||
};
|
|
||||||
|
|
||||||
# virtualisation = { podman = enabled; };
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,32 +0,0 @@
|
||||||
{ options, config, pkgs, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra;
|
|
||||||
let cfg = config.plusultra.system.fonts;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.system.fonts = with types; {
|
|
||||||
enable = mkBoolOpt false "Whether or not to manage fonts.";
|
|
||||||
fonts = mkOpt (listOf package) [ ] "Custom font packages to install.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
environment.variables = {
|
|
||||||
# Enable icons in tooling since we have nerdfonts.
|
|
||||||
LOG_ICONS = "true";
|
|
||||||
};
|
|
||||||
|
|
||||||
fonts = {
|
|
||||||
fontDir = enabled;
|
|
||||||
|
|
||||||
fonts = with pkgs;
|
|
||||||
[
|
|
||||||
noto-fonts
|
|
||||||
noto-fonts-cjk-sans
|
|
||||||
noto-fonts-cjk-serif
|
|
||||||
noto-fonts-emoji
|
|
||||||
(nerdfonts.override { fonts = [ "Hack" ]; })
|
|
||||||
] ++ cfg.fonts;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1 +0,0 @@
|
||||||
{ "~a" = (); "~b" = (); "~c" = (); "~d" = (); "~e" = (); "~f" = (); "~g" = (); "~h" = (); "~i" = (); "~j" = (); "~k" = (); "~l" = (); "~m" = (); "~n" = (); "~o" = (); "~p" = (); "~q" = (); "~r" = (); "~s" = (); "~t" = (); "~u" = (); "~v" = (); "~w" = (); "~x" = (); "~y" = (); "~z" = (); }
|
|
|
@ -1,55 +0,0 @@
|
||||||
{ options, config, pkgs, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra;
|
|
||||||
let cfg = config.plusultra.system.input;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.system.input = with types; {
|
|
||||||
enable = mkEnableOption "macOS input";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable (mkMerge [
|
|
||||||
{
|
|
||||||
system = {
|
|
||||||
keyboard = {
|
|
||||||
enableKeyMapping = true;
|
|
||||||
remapCapsLockToEscape = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
defaults = {
|
|
||||||
".GlobalPreferences" = {
|
|
||||||
"com.apple.mouse.scaling" = "1";
|
|
||||||
};
|
|
||||||
|
|
||||||
NSGlobalDomain = {
|
|
||||||
AppleKeyboardUIMode = 3;
|
|
||||||
ApplePressAndHoldEnabled = false;
|
|
||||||
|
|
||||||
KeyRepeat = 2;
|
|
||||||
InitialKeyRepeat = 15;
|
|
||||||
|
|
||||||
NSAutomaticCapitalizationEnabled = false;
|
|
||||||
NSAutomaticDashSubstitutionEnabled = false;
|
|
||||||
NSAutomaticQuoteSubstitutionEnabled = false;
|
|
||||||
NSAutomaticPeriodSubstitutionEnabled = false;
|
|
||||||
NSAutomaticSpellingCorrectionEnabled = false;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
snowfallorg.user.${config.plusultra.user.name}.home.config = {
|
|
||||||
home.activation = {
|
|
||||||
# Disable special keys when using Option as a modifier.
|
|
||||||
# https://superuser.com/questions/941286/disable-default-option-key-binding
|
|
||||||
disableSpecialKeys = lib.home-manager.hm.dag.entryAfter [ "writeBoundary" ] ''
|
|
||||||
set +e
|
|
||||||
$DRY_RUN_CMD /usr/bin/sudo mkdir -p $HOME/Library/KeyBindings
|
|
||||||
$DRY_RUN_CMD /usr/bin/sudo cp '${builtins.toPath ./DefaultKeyBinding.dict}' "$HOME/Library/KeyBindings/DefaultKeyBinding.dict"
|
|
||||||
set -e
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
]);
|
|
||||||
}
|
|
|
@ -1,29 +0,0 @@
|
||||||
{ options, config, pkgs, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra;
|
|
||||||
let cfg = config.plusultra.system.interface;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.system.interface = with types; {
|
|
||||||
enable = mkEnableOption "macOS interface";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
system.defaults = {
|
|
||||||
dock.autohide = true;
|
|
||||||
|
|
||||||
finder = {
|
|
||||||
AppleShowAllExtensions = true;
|
|
||||||
FXEnableExtensionChangeWarning = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
NSGlobalDomain = {
|
|
||||||
_HIHideMenuBar = true;
|
|
||||||
AppleShowScrollBars = "Always";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
plusultra.home.file.".hushlogin".text = "";
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,18 +0,0 @@
|
||||||
{ lib, config, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra;
|
|
||||||
let
|
|
||||||
cfg = config.plusultra.tools.flake;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.tools.flake = {
|
|
||||||
enable = mkEnableOption "Flake";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
snowfallorg.flake
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,43 +0,0 @@
|
||||||
{ options, config, pkgs, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra;
|
|
||||||
let
|
|
||||||
cfg = config.plusultra.tools.git;
|
|
||||||
gpg = config.plusultra.security.gpg;
|
|
||||||
user = config.plusultra.user;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.tools.git = with types; {
|
|
||||||
enable = mkBoolOpt false "Whether or not to install and configure git.";
|
|
||||||
userName = mkOpt types.str user.fullName "The name to configure git with.";
|
|
||||||
userEmail = mkOpt types.str user.email "The email to configure git with.";
|
|
||||||
signingKey =
|
|
||||||
mkOpt types.str "9762169A1B35EA68" "The key ID to sign commits with.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
environment.systemPackages = with pkgs; [ git ];
|
|
||||||
|
|
||||||
plusultra.home.extraOptions = {
|
|
||||||
programs.git = {
|
|
||||||
enable = true;
|
|
||||||
inherit (cfg) userName userEmail;
|
|
||||||
lfs = enabled;
|
|
||||||
signing = {
|
|
||||||
key = cfg.signingKey;
|
|
||||||
signByDefault = mkIf gpg.enable true;
|
|
||||||
};
|
|
||||||
extraConfig = {
|
|
||||||
init = { defaultBranch = "main"; };
|
|
||||||
pull = { rebase = true; };
|
|
||||||
push = { autoSetupRemote = true; };
|
|
||||||
core = { whitespace = "trailing-space,space-before-tab"; };
|
|
||||||
safe = {
|
|
||||||
directory = "${config.users.users.${user.name}.home}/work/config";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,17 +0,0 @@
|
||||||
{ options, config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra;
|
|
||||||
let cfg = config.plusultra.tools.java;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.tools.java = with types; {
|
|
||||||
enable = mkBoolOpt false "Whether or not to enable Java.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
jdk
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,42 +0,0 @@
|
||||||
{ options
|
|
||||||
, config
|
|
||||||
, pkgs
|
|
||||||
, lib
|
|
||||||
, ...
|
|
||||||
}:
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra; let
|
|
||||||
cfg = config.plusultra.tools.node;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.tools.node = with types; {
|
|
||||||
enable = mkBoolOpt false "Whether or not to install and configure git";
|
|
||||||
pkg = mkOpt package pkgs.nodejs "The NodeJS package to use";
|
|
||||||
prettier = {
|
|
||||||
enable = mkBoolOpt true "Whether or not to install Prettier";
|
|
||||||
pkg =
|
|
||||||
mkOpt package pkgs.nodePackages.prettier "The NodeJS package to use";
|
|
||||||
};
|
|
||||||
yarn = {
|
|
||||||
enable = mkBoolOpt true "Whether or not to install Yarn";
|
|
||||||
pkg = mkOpt package pkgs.nodePackages.yarn "The NodeJS package to use";
|
|
||||||
};
|
|
||||||
pnpm = {
|
|
||||||
enable = mkBoolOpt true "Whether or not to install Pnpm";
|
|
||||||
pkg = mkOpt package pkgs.nodePackages.pnpm "The NodeJS package to use";
|
|
||||||
};
|
|
||||||
flyctl = {
|
|
||||||
enable = mkBoolOpt true "Whether or not to install flyctl";
|
|
||||||
pkg = mkOpt package pkgs.flyctl "The flyctl package to use";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
environment.systemPackages = with pkgs;
|
|
||||||
[ cfg.pkg ]
|
|
||||||
++ (lib.optional cfg.prettier.enable cfg.prettier.pkg)
|
|
||||||
++ (lib.optional cfg.yarn.enable cfg.yarn.pkg)
|
|
||||||
++ (lib.optional cfg.pnpm.enable cfg.pnpm.pkg)
|
|
||||||
++ (lib.optional cfg.flyctl.enable cfg.flyctl.pkg);
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,22 +0,0 @@
|
||||||
{ options, config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra;
|
|
||||||
let cfg = config.plusultra.tools.python;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.tools.python = with types; {
|
|
||||||
enable = mkBoolOpt false "Whether or not to enable Python.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config =
|
|
||||||
mkIf cfg.enable {
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
(python311.withPackages (ps:
|
|
||||||
with ps; [
|
|
||||||
numpy
|
|
||||||
])
|
|
||||||
)
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,45 +0,0 @@
|
||||||
{ lib
|
|
||||||
, config
|
|
||||||
, pkgs
|
|
||||||
, ...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
inherit (lib) types mkIf mkDefault;
|
|
||||||
inherit (lib.plusultra) mkOpt;
|
|
||||||
|
|
||||||
cfg = config.plusultra.user;
|
|
||||||
|
|
||||||
is-linux = pkgs.stdenv.isLinux;
|
|
||||||
is-darwin = pkgs.stdenv.isDarwin;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.user = {
|
|
||||||
name = mkOpt types.str "short" "The user account.";
|
|
||||||
|
|
||||||
fullName = mkOpt types.str "Jake Hamilton" "The full name of the user.";
|
|
||||||
email = mkOpt types.str "jake.hamilton@hey.com" "The email of the user.";
|
|
||||||
|
|
||||||
uid = mkOpt (types.nullOr types.int) 501 "The uid for the user account.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = {
|
|
||||||
users.users.${cfg.name} = {
|
|
||||||
# NOTE: Setting the uid here is required for another
|
|
||||||
# module to evaluate successfully since it reads
|
|
||||||
# `users.users.${plusultra.user.name}.uid`.
|
|
||||||
uid = mkIf (cfg.uid != null) cfg.uid;
|
|
||||||
};
|
|
||||||
|
|
||||||
snowfallorg.user.${config.plusultra.user.name}.home.config = {
|
|
||||||
home = {
|
|
||||||
file = {
|
|
||||||
".profile".text = ''
|
|
||||||
# The default file limit is far too low and throws an error when rebuilding the system.
|
|
||||||
# See the original with: ulimit -Sa
|
|
||||||
ulimit -n 4096
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,23 +0,0 @@
|
||||||
{ options, config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra;
|
|
||||||
let
|
|
||||||
cfg = config.plusultra.apps._1password;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.apps._1password = with types; {
|
|
||||||
enable = mkBoolOpt false "Whether or not to enable 1password.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
programs = {
|
|
||||||
_1password = enabled;
|
|
||||||
_1password-gui = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
polkitPolicyOwners = [ config.plusultra.user.name ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,15 +0,0 @@
|
||||||
{ options, config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra;
|
|
||||||
let
|
|
||||||
cfg = config.plusultra.apps.ardour;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.apps.ardour = with types; {
|
|
||||||
enable = mkBoolOpt false "Whether or not to enable Ardour.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config =
|
|
||||||
mkIf cfg.enable { environment.systemPackages = with pkgs; [ ardour ]; };
|
|
||||||
}
|
|
|
@ -1,14 +0,0 @@
|
||||||
{ options, config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra;
|
|
||||||
let cfg = config.plusultra.apps.blender;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.apps.blender = with types; {
|
|
||||||
enable = mkBoolOpt false "Whether or not to enable Blender.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config =
|
|
||||||
mkIf cfg.enable { environment.systemPackages = with pkgs; [ blender ]; };
|
|
||||||
}
|
|
|
@ -1,14 +0,0 @@
|
||||||
{ options, config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra;
|
|
||||||
let cfg = config.plusultra.apps.bottles;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.apps.bottles = with types; {
|
|
||||||
enable = mkBoolOpt false "Whether or not to enable Bottles.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config =
|
|
||||||
mkIf cfg.enable { environment.systemPackages = with pkgs; [ bottles ]; };
|
|
||||||
}
|
|
|
@ -1,14 +0,0 @@
|
||||||
{ options, config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra;
|
|
||||||
let cfg = config.plusultra.apps.cadence;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.apps.cadence = with types; {
|
|
||||||
enable = mkBoolOpt false "Whether or not to enable Cadence.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config =
|
|
||||||
mkIf cfg.enable { environment.systemPackages = with pkgs; [ cadence ]; };
|
|
||||||
}
|
|
|
@ -1,41 +0,0 @@
|
||||||
{ options, config, lib, pkgs, inputs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra;
|
|
||||||
let
|
|
||||||
cfg = config.plusultra.apps.discord;
|
|
||||||
discord = lib.replugged.makeDiscordPlugged {
|
|
||||||
inherit pkgs;
|
|
||||||
|
|
||||||
# This is currently broken, but could speed up Discord startup in the future.
|
|
||||||
withOpenAsar = false;
|
|
||||||
|
|
||||||
plugins = {
|
|
||||||
inherit (inputs) discord-tweaks;
|
|
||||||
};
|
|
||||||
|
|
||||||
themes = {
|
|
||||||
inherit (inputs) discord-nord-theme;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.apps.discord = with types; {
|
|
||||||
enable = mkBoolOpt false "Whether or not to enable Discord.";
|
|
||||||
canary.enable = mkBoolOpt false "Whether or not to enable Discord Canary.";
|
|
||||||
chromium.enable = mkBoolOpt false
|
|
||||||
"Whether or not to enable the Chromium version of Discord.";
|
|
||||||
firefox.enable = mkBoolOpt false
|
|
||||||
"Whether or not to enable the Firefox version of Discord.";
|
|
||||||
native.enable = mkBoolOpt false "Whether or not to enable the native version of Discord.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf (cfg.enable or cfg.chromium.enable) {
|
|
||||||
environment.systemPackages =
|
|
||||||
lib.optional cfg.enable discord
|
|
||||||
++ lib.optional cfg.canary.enable pkgs.plusultra.discord
|
|
||||||
++ lib.optional cfg.chromium.enable pkgs.plusultra.discord-chromium
|
|
||||||
++ lib.optional cfg.firefox.enable pkgs.plusultra.discord-firefox
|
|
||||||
++ lib.optional cfg.native.enable pkgs.discord;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,18 +0,0 @@
|
||||||
{ options, config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra;
|
|
||||||
let cfg = config.plusultra.apps.dolphin;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.apps.dolphin = with types; {
|
|
||||||
enable = mkBoolOpt false "Whether or not to enable Dolphin.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
environment.systemPackages = with pkgs; [ dolphin-emu ];
|
|
||||||
|
|
||||||
# Enable GameCube controller support.
|
|
||||||
services.udev.packages = [ pkgs.dolphinEmu ];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,30 +0,0 @@
|
||||||
{ options, config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra;
|
|
||||||
let
|
|
||||||
cfg = config.plusultra.apps.doukutsu-rs;
|
|
||||||
desktopItem = pkgs.makeDesktopItem {
|
|
||||||
name = "doukutsu-rs";
|
|
||||||
desktopName = "doukutsu-rs";
|
|
||||||
genericName =
|
|
||||||
"A fully playable re-implementation of Cave Story (Doukutsu Monogatari) engine written in Rust.";
|
|
||||||
exec = "${pkgs.plusultra.doukutsu-rs}/bin/doukutsu-rs";
|
|
||||||
icon = ./icon.png;
|
|
||||||
type = "Application";
|
|
||||||
categories = [ "Game" "AdventureGame" ];
|
|
||||||
terminal = false;
|
|
||||||
};
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.apps.doukutsu-rs = with types; {
|
|
||||||
enable = mkBoolOpt false "Whether or not to enable doukutsu-rs.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
environment.systemPackages = with pkgs.plusultra; [
|
|
||||||
doukutsu-rs
|
|
||||||
desktopItem
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
Binary file not shown.
Before Width: | Height: | Size: 34 KiB |
|
@ -1,16 +0,0 @@
|
||||||
{ options, config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra;
|
|
||||||
let
|
|
||||||
cfg = config.plusultra.apps.element;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.apps.element = with types; {
|
|
||||||
enable = mkBoolOpt false "Whether or not to enable Element.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
environment.systemPackages = with pkgs; [ element-desktop ];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,22 +0,0 @@
|
||||||
{ options, config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra;
|
|
||||||
let
|
|
||||||
cfg = config.plusultra.apps.etcher;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.apps.etcher = with types; {
|
|
||||||
enable = mkBoolOpt false "Whether or not to enable etcher.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
environment.systemPackages = with pkgs;
|
|
||||||
[
|
|
||||||
# Etcher is currently broken in nixpkgs, temporarily replaced with
|
|
||||||
# gnome disk utility.
|
|
||||||
# etcher
|
|
||||||
gnome.gnome-disk-utility
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,35 +0,0 @@
|
||||||
{ lib, config, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra;
|
|
||||||
let
|
|
||||||
cfg = config.plusultra.apps.expressvpn;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.apps.expressvpn = {
|
|
||||||
enable = mkEnableOption "Express VPN";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
plusultra.expressvpn
|
|
||||||
] ++ optionals config.plusultra.desktop.gnome.enable [
|
|
||||||
gnomeExtensions.evpn-shell-assistant
|
|
||||||
];
|
|
||||||
|
|
||||||
boot.kernelModules = [ "tun" ];
|
|
||||||
|
|
||||||
systemd.services.expressvpn = {
|
|
||||||
wantedBy = [ "multi-user.target" ];
|
|
||||||
after = [ "network.target" "network-online.target" ];
|
|
||||||
|
|
||||||
description = "ExpressVPN Daemon";
|
|
||||||
|
|
||||||
serviceConfig = {
|
|
||||||
ExecStart = "${pkgs.plusultra.expressvpn}/bin/expressvpnd";
|
|
||||||
Restart = "on-failure";
|
|
||||||
RestartSec = 5;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,66 +0,0 @@
|
||||||
{ options, config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra;
|
|
||||||
let
|
|
||||||
cfg = config.plusultra.apps.firefox;
|
|
||||||
defaultSettings = {
|
|
||||||
"browser.aboutwelcome.enabled" = false;
|
|
||||||
"browser.meta_refresh_when_inactive.disabled" = true;
|
|
||||||
"browser.startup.homepage" = "https://hamho.me";
|
|
||||||
"browser.bookmarks.showMobileBookmarks" = true;
|
|
||||||
"browser.urlbar.suggest.quicksuggest.sponsored" = false;
|
|
||||||
"browser.newtabpage.activity-stream.showSponsoredTopSites" = false;
|
|
||||||
"browser.aboutConfig.showWarning" = false;
|
|
||||||
"browser.ssb.enabled" = true;
|
|
||||||
};
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.apps.firefox = with types; {
|
|
||||||
enable = mkBoolOpt false "Whether or not to enable Firefox.";
|
|
||||||
extraConfig =
|
|
||||||
mkOpt str "" "Extra configuration for the user profile JS file.";
|
|
||||||
userChrome =
|
|
||||||
mkOpt str "" "Extra configuration for the user chrome CSS file.";
|
|
||||||
settings = mkOpt attrs defaultSettings "Settings to apply to the profile.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
plusultra.desktop.addons.firefox-nordic-theme = enabled;
|
|
||||||
|
|
||||||
services.gnome.gnome-browser-connector.enable = config.plusultra.desktop.gnome.enable;
|
|
||||||
|
|
||||||
plusultra.home = {
|
|
||||||
file = {
|
|
||||||
".mozilla/native-messaging-hosts/com.dannyvankooten.browserpass.json".source = "${pkgs.browserpass}/lib/mozilla/native-messaging-hosts/com.dannyvankooten.browserpass.json";
|
|
||||||
|
|
||||||
".mozilla/native-messaging-hosts/org.gnome.chrome_gnome_shell.json".source = mkIf config.plusultra.desktop.gnome.enable "${pkgs.chrome-gnome-shell}/lib/mozilla/native-messaging-hosts/org.gnome.chrome_gnome_shell.json";
|
|
||||||
};
|
|
||||||
|
|
||||||
extraOptions = {
|
|
||||||
programs.firefox = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.firefox.override (
|
|
||||||
{
|
|
||||||
cfg = {
|
|
||||||
enableBrowserpass = true;
|
|
||||||
enableGnomeExtensions = config.plusultra.desktop.gnome.enable;
|
|
||||||
};
|
|
||||||
|
|
||||||
extraNativeMessagingHosts =
|
|
||||||
optional
|
|
||||||
config.plusultra.desktop.gnome.enable
|
|
||||||
pkgs.gnomeExtensions.gsconnect;
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
profiles.${config.plusultra.user.name} = {
|
|
||||||
inherit (cfg) extraConfig userChrome settings;
|
|
||||||
id = 0;
|
|
||||||
name = config.plusultra.user.name;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,16 +0,0 @@
|
||||||
{ options, config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra;
|
|
||||||
let
|
|
||||||
cfg = config.plusultra.apps.frappe-books;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.apps.frappe-books = with types; {
|
|
||||||
enable = mkBoolOpt false "Whether or not to enable FrappeBooks.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
environment.systemPackages = with pkgs; [ plusultra.frappe-books ];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,15 +0,0 @@
|
||||||
{ options, config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra;
|
|
||||||
let
|
|
||||||
cfg = config.plusultra.apps.freetube;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.apps.freetube = with types; {
|
|
||||||
enable = mkBoolOpt false "Whether or not to enable FreeTube.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config =
|
|
||||||
mkIf cfg.enable { environment.systemPackages = with pkgs; [ freetube ]; };
|
|
||||||
}
|
|
|
@ -1,15 +0,0 @@
|
||||||
{ options, config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra;
|
|
||||||
let
|
|
||||||
cfg = config.plusultra.apps.gimp;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.apps.gimp = with types; {
|
|
||||||
enable = mkBoolOpt false "Whether or not to enable Gimp.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config =
|
|
||||||
mkIf cfg.enable { environment.systemPackages = with pkgs; [ gimp ]; };
|
|
||||||
}
|
|
|
@ -1,15 +0,0 @@
|
||||||
{ options, config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra;
|
|
||||||
let
|
|
||||||
cfg = config.plusultra.apps.gparted;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.apps.gparted = with types; {
|
|
||||||
enable = mkBoolOpt false "Whether or not to enable gparted.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config =
|
|
||||||
mkIf cfg.enable { environment.systemPackages = with pkgs; [ gparted ]; };
|
|
||||||
}
|
|
|
@ -1,14 +0,0 @@
|
||||||
{ options, config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra;
|
|
||||||
let
|
|
||||||
cfg = config.plusultra.apps.hey;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.apps.hey = with types; {
|
|
||||||
enable = mkBoolOpt false "Whether or not to enable HEY.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable { environment.systemPackages = with pkgs.plusultra; [ hey ]; };
|
|
||||||
}
|
|
|
@ -1,15 +0,0 @@
|
||||||
{ options, config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra;
|
|
||||||
let cfg = config.plusultra.apps.inkscape;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.apps.inkscape = with types; {
|
|
||||||
enable = mkBoolOpt false "Whether or not to enable Inkscape.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
environment.systemPackages = with pkgs; [ inkscape-with-extensions google-fonts ];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,14 +0,0 @@
|
||||||
{ options, config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra;
|
|
||||||
let cfg = config.plusultra.apps.logseq;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.apps.logseq = with types; {
|
|
||||||
enable = mkBoolOpt false "Whether or not to enable logseq.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config =
|
|
||||||
mkIf cfg.enable { environment.systemPackages = with pkgs; [ logseq ]; };
|
|
||||||
}
|
|
|
@ -1,9 +0,0 @@
|
||||||
[input]
|
|
||||||
escapeKey=56
|
|
||||||
rawMouse=yes
|
|
||||||
mouseSens=6
|
|
||||||
|
|
||||||
[win]
|
|
||||||
size=1920x1080
|
|
||||||
autoResize=yes
|
|
||||||
quickSplash=yes
|
|
|
@ -1,23 +0,0 @@
|
||||||
{ options, config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra;
|
|
||||||
let
|
|
||||||
cfg = config.plusultra.apps.looking-glass-client;
|
|
||||||
user = config.plusultra.user;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.apps.looking-glass-client = with types; {
|
|
||||||
enable =
|
|
||||||
mkBoolOpt false "Whether or not to enable the Looking Glass client.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
environment.systemPackages = with pkgs; [ looking-glass-client ];
|
|
||||||
|
|
||||||
environment.etc."looking-glass-client.ini" = {
|
|
||||||
user = "+${toString config.users.users.${user.name}.uid}";
|
|
||||||
source = ./client.ini;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,21 +0,0 @@
|
||||||
{ options, config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra;
|
|
||||||
let
|
|
||||||
cfg = config.plusultra.apps.lutris;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.apps.lutris = with types; {
|
|
||||||
enable = mkBoolOpt false "Whether or not to enable Lutris.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
lutris
|
|
||||||
# Needed for some installers like League of Legends
|
|
||||||
openssl
|
|
||||||
gnome.zenity
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,25 +0,0 @@
|
||||||
{ options, config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra;
|
|
||||||
let
|
|
||||||
cfg = config.plusultra.apps.obs;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.apps.obs = with types; {
|
|
||||||
enable = mkBoolOpt false "Whether or not to enable support for OBS.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
environment.systemPackages = [
|
|
||||||
(pkgs.wrapOBS {
|
|
||||||
plugins = with pkgs.obs-studio-plugins; [
|
|
||||||
wlrobs
|
|
||||||
obs-multi-rtmp
|
|
||||||
obs-move-transition
|
|
||||||
looking-glass-obs
|
|
||||||
];
|
|
||||||
})
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,15 +0,0 @@
|
||||||
{ options, config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra;
|
|
||||||
let
|
|
||||||
cfg = config.plusultra.apps.pcsx2;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.apps.pcsx2 = with types; {
|
|
||||||
enable = mkBoolOpt false "Whether or not to enable PCSX2.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config =
|
|
||||||
mkIf cfg.enable { environment.systemPackages = with pkgs; [ pcsx2 ]; };
|
|
||||||
}
|
|
|
@ -1,15 +0,0 @@
|
||||||
{ options, config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra;
|
|
||||||
let
|
|
||||||
cfg = config.plusultra.apps.pitivi;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.apps.pitivi = with types; {
|
|
||||||
enable = mkBoolOpt false "Whether or not to enable Pitivi.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config =
|
|
||||||
mkIf cfg.enable { environment.systemPackages = with pkgs; [ pitivi ]; };
|
|
||||||
}
|
|
|
@ -1,16 +0,0 @@
|
||||||
{ options, config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra;
|
|
||||||
let
|
|
||||||
cfg = config.plusultra.apps.pocketcasts;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.apps.pocketcasts = with types; {
|
|
||||||
enable = mkBoolOpt false "Whether or not to enable Pocketcasts.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
environment.systemPackages = with pkgs.plusultra; [ pocketcasts ];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,15 +0,0 @@
|
||||||
{ options, config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra;
|
|
||||||
let
|
|
||||||
cfg = config.plusultra.apps.prismlauncher;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.apps.prismlauncher = with types; {
|
|
||||||
enable = mkBoolOpt false "Whether or not to enable Prism Launcher.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config =
|
|
||||||
mkIf cfg.enable { environment.systemPackages = with pkgs; [ prismlauncher ]; };
|
|
||||||
}
|
|
|
@ -1,16 +0,0 @@
|
||||||
{ options, config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra;
|
|
||||||
let
|
|
||||||
cfg = config.plusultra.apps.protontricks;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.apps.protontricks = with types; {
|
|
||||||
enable = mkBoolOpt false "Whether or not to enable Protontricks.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
environment.systemPackages = with pkgs; [ protontricks ];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,18 +0,0 @@
|
||||||
{ options
|
|
||||||
, config
|
|
||||||
, lib
|
|
||||||
, pkgs
|
|
||||||
, ...
|
|
||||||
}:
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra; let
|
|
||||||
cfg = config.plusultra.apps.r2modman;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.apps.r2modman = with types; {
|
|
||||||
enable = mkBoolOpt false "Whether or not to enable r2modman.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config =
|
|
||||||
mkIf cfg.enable { environment.systemPackages = with pkgs; [ r2modman ]; };
|
|
||||||
}
|
|
|
@ -1,16 +0,0 @@
|
||||||
{ options, config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra;
|
|
||||||
let
|
|
||||||
cfg = config.plusultra.apps.rpcs3;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.apps.rpcs3 = with types; {
|
|
||||||
enable = mkBoolOpt false "Whether or not to enable rpcs3.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
environment.systemPackages = with pkgs; [ rpcs3 ];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,30 +0,0 @@
|
||||||
{ options, config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra;
|
|
||||||
let
|
|
||||||
cfg = config.plusultra.apps.steam;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.apps.steam = with types; {
|
|
||||||
enable = mkBoolOpt false "Whether or not to enable support for Steam.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
programs.steam.enable = true;
|
|
||||||
programs.steam.remotePlay.openFirewall = true;
|
|
||||||
|
|
||||||
hardware.steam-hardware.enable = true;
|
|
||||||
|
|
||||||
# Enable GameCube controller support.
|
|
||||||
services.udev.packages = [ pkgs.dolphinEmu ];
|
|
||||||
|
|
||||||
environment.systemPackages = with pkgs.plusultra; [
|
|
||||||
steam
|
|
||||||
];
|
|
||||||
|
|
||||||
environment.sessionVariables = {
|
|
||||||
STEAM_EXTRA_COMPAT_TOOLS_PATHS = "$HOME/.steam/root/compatibilitytools.d";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,18 +0,0 @@
|
||||||
{ lib, pkgs, config, ... }:
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.plusultra.apps.steamtinkerlaunch;
|
|
||||||
|
|
||||||
inherit (lib) mkIf mkEnableOption;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.apps.steamtinkerlaunch = {
|
|
||||||
enable = mkEnableOption "Steam Tinker Launch";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
steamtinkerlaunch
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,15 +0,0 @@
|
||||||
{ options, config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra;
|
|
||||||
let
|
|
||||||
cfg = config.plusultra.apps.twitter;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.apps.twitter = with types; {
|
|
||||||
enable = mkBoolOpt false "Whether or not to enable Twitter.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config =
|
|
||||||
mkIf cfg.enable { environment.systemPackages = with pkgs.plusultra; [ twitter ]; };
|
|
||||||
}
|
|
|
@ -1,23 +0,0 @@
|
||||||
{ options, config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra;
|
|
||||||
let
|
|
||||||
cfg = config.plusultra.apps.ubports-installer;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.apps.ubports-installer = with types; {
|
|
||||||
enable = mkBoolOpt false "Whether or not to enable the UBPorts Installer.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config =
|
|
||||||
mkIf cfg.enable {
|
|
||||||
environment.systemPackages = with pkgs.plusultra; [
|
|
||||||
ubports-installer
|
|
||||||
];
|
|
||||||
|
|
||||||
services.udev.packages = with pkgs.plusultra; [
|
|
||||||
ubports-installer-udev-rules
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,21 +0,0 @@
|
||||||
{ options, config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra;
|
|
||||||
let
|
|
||||||
cfg = config.plusultra.apps.virtualbox;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.apps.virtualbox = with types; {
|
|
||||||
enable = mkBoolOpt false "Whether or not to enable Virtualbox.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
virtualisation.virtualbox.host = {
|
|
||||||
enable = true;
|
|
||||||
enableExtensionPack = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
plusultra.user.extraGroups = [ "vboxusers" ];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,14 +0,0 @@
|
||||||
{ options, config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra;
|
|
||||||
let
|
|
||||||
cfg = config.plusultra.apps.vlc;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.apps.vlc = with types; {
|
|
||||||
enable = mkBoolOpt false "Whether or not to enable vlc.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable { environment.systemPackages = with pkgs; [ vlc ]; };
|
|
||||||
}
|
|
|
@ -1,14 +0,0 @@
|
||||||
{ options, config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra;
|
|
||||||
let cfg = config.plusultra.apps.vscode;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.apps.vscode = with types; {
|
|
||||||
enable = mkBoolOpt false "Whether or not to enable vscode.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config =
|
|
||||||
mkIf cfg.enable { environment.systemPackages = with pkgs; [ vscode ]; };
|
|
||||||
}
|
|
|
@ -1,15 +0,0 @@
|
||||||
{ options, config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra;
|
|
||||||
let
|
|
||||||
cfg = config.plusultra.apps.winetricks;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.apps.winetricks = with types; {
|
|
||||||
enable = mkBoolOpt false "Whether or not to enable Winetricks.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config =
|
|
||||||
mkIf cfg.enable { environment.systemPackages = with pkgs; [ winetricks ]; };
|
|
||||||
}
|
|
|
@ -1,15 +0,0 @@
|
||||||
{ options, config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra;
|
|
||||||
let
|
|
||||||
cfg = config.plusultra.apps.yt-music;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.apps.yt-music = with types; {
|
|
||||||
enable = mkBoolOpt false "Whether or not to enable YouTube Music.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config =
|
|
||||||
mkIf cfg.enable { environment.systemPackages = with pkgs.plusultra; [ yt-music ]; };
|
|
||||||
}
|
|
|
@ -1,17 +0,0 @@
|
||||||
{ options, config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra;
|
|
||||||
let
|
|
||||||
cfg = config.plusultra.apps.yubikey;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.apps.yubikey = with types; {
|
|
||||||
enable = mkBoolOpt false "Whether or not to enable Yubikey.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
services.yubikey-agent.enable = true;
|
|
||||||
environment.systemPackages = with pkgs; [ yubikey-manager-qt ];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,16 +0,0 @@
|
||||||
{ options, config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra;
|
|
||||||
let
|
|
||||||
cfg = config.plusultra.apps.yuzu;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.apps.yuzu = with types; {
|
|
||||||
enable = mkBoolOpt false "Whether or not to enable Yuzu.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
environment.systemPackages = with pkgs; [ yuzu-mainline ];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,22 +0,0 @@
|
||||||
{ options, config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra;
|
|
||||||
let
|
|
||||||
cfg = config.plusultra.archetypes.gaming;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.archetypes.gaming = with types; {
|
|
||||||
enable = mkBoolOpt false "Whether or not to enable the gaming archetype.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
plusultra.suites = {
|
|
||||||
common = enabled;
|
|
||||||
desktop = enabled;
|
|
||||||
games = enabled;
|
|
||||||
social = enabled;
|
|
||||||
media = enabled;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,26 +0,0 @@
|
||||||
{ options, config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra;
|
|
||||||
let
|
|
||||||
cfg = config.plusultra.archetypes.server;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.archetypes.server = with types; {
|
|
||||||
enable =
|
|
||||||
mkBoolOpt false "Whether or not to enable the server archetype.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
plusultra = {
|
|
||||||
suites = {
|
|
||||||
common-slim = enabled;
|
|
||||||
};
|
|
||||||
|
|
||||||
cli-apps = {
|
|
||||||
neovim = enabled;
|
|
||||||
tmux = enabled;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,29 +0,0 @@
|
||||||
{ options, config, lib, pkgs, ... }:
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra;
|
|
||||||
let cfg = config.plusultra.archetypes.workstation;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.archetypes.workstation = with types; {
|
|
||||||
enable =
|
|
||||||
mkBoolOpt false "Whether or not to enable the workstation archetype.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
plusultra = {
|
|
||||||
suites = {
|
|
||||||
common = enabled;
|
|
||||||
desktop = enabled;
|
|
||||||
development = enabled;
|
|
||||||
art = enabled;
|
|
||||||
video = enabled;
|
|
||||||
social = enabled;
|
|
||||||
media = enabled;
|
|
||||||
};
|
|
||||||
|
|
||||||
tools = {
|
|
||||||
appimage-run = enabled;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
18
modules/nixos/cache/public/default.nix
vendored
18
modules/nixos/cache/public/default.nix
vendored
|
@ -1,18 +0,0 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra;
|
|
||||||
let
|
|
||||||
cfg = config.plusultra.cache.public;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.cache.public = {
|
|
||||||
enable = mkEnableOption "Plus Ultra public cache";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
plusultra.nix.extra-substituters = {
|
|
||||||
"https://attic.ruby.hamho.me/public".key = "public:QUkZTErD8fx9HQ64kuuEUZHO9tXNzws7chV8qy/KLUk=";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,18 +0,0 @@
|
||||||
inputs@{ options, config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra;
|
|
||||||
let
|
|
||||||
cfg = config.plusultra.cli-apps.flake;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.cli-apps.flake = with types; {
|
|
||||||
enable = mkBoolOpt false "Whether or not to enable flake.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
snowfallorg.flake
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,47 +0,0 @@
|
||||||
inputs @ { options
|
|
||||||
, config
|
|
||||||
, lib
|
|
||||||
, pkgs
|
|
||||||
, ...
|
|
||||||
}:
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra; let
|
|
||||||
cfg = config.plusultra.cli-apps.neovim;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.cli-apps.neovim = with types; {
|
|
||||||
enable = mkBoolOpt false "Whether or not to enable neovim.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
# FIXME: As of today (2022-12-09), `page` no longer works with my Neovim
|
|
||||||
# configuration. Either something in my configuration is breaking it or `page` is busted.
|
|
||||||
# page
|
|
||||||
plusultra.neovim
|
|
||||||
];
|
|
||||||
|
|
||||||
environment.variables = {
|
|
||||||
# PAGER = "page";
|
|
||||||
# MANPAGER =
|
|
||||||
# "page -C -e 'au User PageDisconnect sleep 100m|%y p|enew! |bd! #|pu p|set ft=man'";
|
|
||||||
PAGER = "less";
|
|
||||||
MANPAGER = "less";
|
|
||||||
NPM_CONFIG_PREFIX = "$HOME/.npm-global";
|
|
||||||
EDITOR = "nvim";
|
|
||||||
};
|
|
||||||
|
|
||||||
plusultra.home = {
|
|
||||||
configFile = {
|
|
||||||
"dashboard-nvim/.keep".text = "";
|
|
||||||
};
|
|
||||||
|
|
||||||
extraOptions = {
|
|
||||||
# Use Neovim for Git diffs.
|
|
||||||
programs.zsh.shellAliases.vimdiff = "nvim -d";
|
|
||||||
programs.bash.shellAliases.vimdiff = "nvim -d";
|
|
||||||
programs.fish.shellAliases.vimdiff = "nvim -d";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,31 +0,0 @@
|
||||||
{ lib, pkgs, config, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra;
|
|
||||||
let
|
|
||||||
cfg = config.plusultra.cli-apps.prisma;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.cli-apps.prisma = with types; {
|
|
||||||
enable = mkBoolOpt false "Whether or not to install Prisma";
|
|
||||||
pkgs = {
|
|
||||||
npm = mkOpt package pkgs.nodePackages.prisma "The NPM package to install";
|
|
||||||
engines = mkOpt package pkgs.prisma-engines
|
|
||||||
"The package to get prisma engines from";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
environment.systemPackages = [ cfg.pkgs.npm ];
|
|
||||||
|
|
||||||
plusultra.home.extraOptions = {
|
|
||||||
programs.zsh.initExtra = ''
|
|
||||||
export PRISMA_MIGRATION_ENGINE_BINARY="${cfg.pkgs.engines}/bin/migration-engine"
|
|
||||||
export PRISMA_QUERY_ENGINE_BINARY="${cfg.pkgs.engines}/bin/query-engine"
|
|
||||||
export PRISMA_QUERY_ENGINE_LIBRARY="${cfg.pkgs.engines}/lib/libquery_engine.node"
|
|
||||||
export PRISMA_INTROSPECTION_ENGINE_BINARY="${cfg.pkgs.engines}/bin/introspection-engine"
|
|
||||||
export PRISMA_FMT_BINARY="${cfg.pkgs.engines}/bin/prisma-fmt"
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,16 +0,0 @@
|
||||||
{ options, config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra;
|
|
||||||
let
|
|
||||||
cfg = config.plusultra.cli-apps.proton;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.cli-apps.proton = with types; {
|
|
||||||
enable = mkBoolOpt false "Whether or not to enable Proton.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
environment.systemPackages = with pkgs; [ proton-caller ];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,20 +0,0 @@
|
||||||
{ config
|
|
||||||
, lib
|
|
||||||
, pkgs
|
|
||||||
, ...
|
|
||||||
}:
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra; let
|
|
||||||
cfg = config.plusultra.cli-apps.thaw;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.cli-apps.thaw = with types; {
|
|
||||||
enable = mkBoolOpt false "Whether or not to enable thaw.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
snowfallorg.thaw
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,5 +0,0 @@
|
||||||
# Enable saving sessions.
|
|
||||||
set -g @continuum-restore 'on'
|
|
||||||
|
|
||||||
# Save every 30 minutes.
|
|
||||||
set -g @continuum-save-interval '30'
|
|
|
@ -1,15 +0,0 @@
|
||||||
# Create a vertical split to show search & results to keep
|
|
||||||
# the content visible.
|
|
||||||
set -g @extrakto_split_direction "v"
|
|
||||||
|
|
||||||
# Override the way that Extrakto copies text. By default
|
|
||||||
# it was trying to use xclip and would not properly pick
|
|
||||||
# up on $XDG_SESSION_TYPE being wayland. Instead, use
|
|
||||||
# Tmux's built-in clipboard functionality.
|
|
||||||
set -g @extrakto_clip_tool_run "tmux_osc52"
|
|
||||||
|
|
||||||
# FIXME: The current version of Extrakto in
|
|
||||||
# NixPkgs is out of date and does not support wayland.
|
|
||||||
# This overrides the clipping tool to ensure that it works
|
|
||||||
# under wayland.
|
|
||||||
set -g @extrakto_clip_tool "wl-copy"
|
|
|
@ -1,2 +0,0 @@
|
||||||
# Change default keybinding.
|
|
||||||
TMUX_FZF_LAUNCH_KEY="C-f"
|
|
|
@ -1,38 +0,0 @@
|
||||||
# Lower delay waiting for chord after escape key press.
|
|
||||||
set -g escape-time 0
|
|
||||||
|
|
||||||
# Change the prefix from C-b to C-s to make it easier to type.
|
|
||||||
set -g prefix C-s
|
|
||||||
unbind C-b
|
|
||||||
bind C-s send-prefix
|
|
||||||
|
|
||||||
# Start window numbers at 1 rather than 0.
|
|
||||||
set -g base-index 1
|
|
||||||
|
|
||||||
# Use h, j, k, l for movement between panes.
|
|
||||||
bind h select-pane -L
|
|
||||||
bind j select-pane -D
|
|
||||||
bind k select-pane -U
|
|
||||||
bind l select-pane -R
|
|
||||||
|
|
||||||
# Fix colors being wrong in programs like Neovim.
|
|
||||||
set-option -ga terminal-overrides ",xterm-256color:Tc"
|
|
||||||
|
|
||||||
# Expand the left status to accomodate longer session names.
|
|
||||||
set-option -g status-left-length 20
|
|
||||||
|
|
||||||
# One of the plugins binds C-l, make sure we have accces to it.
|
|
||||||
unbind C-l
|
|
||||||
bind -n C-l send-keys C-l
|
|
||||||
|
|
||||||
# Don't require a prompt to detach from the current session.
|
|
||||||
unbind -n M-E
|
|
||||||
bind -n M-E detach-client
|
|
||||||
|
|
||||||
# Reload tmux configuration from ~/.config/tmux/tmux.conf instead
|
|
||||||
# of Tilish's default of ~/.tmux.conf.
|
|
||||||
unbind -n M-C
|
|
||||||
bind -n M-C source-file "~/.config/tmux/tmux.conf"
|
|
||||||
|
|
||||||
# Use M-z to zoom and unzoom panes.
|
|
||||||
bind -n M-z resize-pane -Z
|
|
|
@ -1,21 +0,0 @@
|
||||||
# Smart pane switching with awareness of Vim splits.
|
|
||||||
# See: https://github.com/christoomey/vim-tmux-navigator
|
|
||||||
is_vim="ps -o state= -o comm= -t '#{pane_tty}' \
|
|
||||||
| grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?(view|n?vim?x?)(diff)?$'"
|
|
||||||
|
|
||||||
bind-key -n 'M-h' if-shell "$is_vim" 'send-keys M-h' 'select-pane -L'
|
|
||||||
bind-key -n 'M-j' if-shell "$is_vim" 'send-keys M-j' 'select-pane -D'
|
|
||||||
bind-key -n 'M-k' if-shell "$is_vim" 'send-keys M-k' 'select-pane -U'
|
|
||||||
bind-key -n 'M-l' if-shell "$is_vim" 'send-keys M-l' 'select-pane -R'
|
|
||||||
tmux_version='$(tmux -V | sed -En "s/^tmux ([0-9]+(.[0-9]+)?).*/\1/p")'
|
|
||||||
if-shell -b '[ "$(echo "$tmux_version < 3.0" | bc)" = 1 ]' \
|
|
||||||
"bind-key -n 'M-\\' if-shell \"$is_vim\" 'send-keys M-\\' 'select-pane -l'"
|
|
||||||
if-shell -b '[ "$(echo "$tmux_version >= 3.0" | bc)" = 1 ]' \
|
|
||||||
"bind-key -n 'M-\\' if-shell \"$is_vim\" 'send-keys M-\\\\' 'select-pane -l'"
|
|
||||||
|
|
||||||
bind-key -T copy-mode-vi 'M-h' select-pane -L
|
|
||||||
bind-key -T copy-mode-vi 'M-j' select-pane -D
|
|
||||||
bind-key -T copy-mode-vi 'M-k' select-pane -U
|
|
||||||
bind-key -T copy-mode-vi 'M-l' select-pane -R
|
|
||||||
bind-key -T copy-mode-vi 'M-p' select-pane -l
|
|
||||||
|
|
|
@ -1,37 +0,0 @@
|
||||||
|
|
||||||
# Copyright (C) 2017-present Arctic Ice Studio <development@arcticicestudio.com>
|
|
||||||
# Copyright (C) 2017-present Sven Greb <development@svengreb.de>
|
|
||||||
# Copyright (C) 2022-present Jake Hamilton <jake.hamilton@hey.com>
|
|
||||||
|
|
||||||
# Project: Nord tmux
|
|
||||||
# Repository: https://github.com/arcticicestudio/nord-tmux
|
|
||||||
# License: MIT
|
|
||||||
|
|
||||||
#+----------------+
|
|
||||||
#+ Plugin Support +
|
|
||||||
#+----------------+
|
|
||||||
#+--- tmux-prefix-highlight ---+
|
|
||||||
set -g @prefix_highlight_output_prefix "#[fg=brightcyan]#[bg=black]#[nobold]#[noitalics]#[nounderscore]#[bg=brightcyan]#[fg=black]"
|
|
||||||
set -g @prefix_highlight_output_suffix ""
|
|
||||||
set -g @prefix_highlight_copy_mode_attr "fg=brightcyan,bg=black,bold"
|
|
||||||
|
|
||||||
#+--------+
|
|
||||||
#+ Status +
|
|
||||||
#+--------+
|
|
||||||
#+--- Bars ---+
|
|
||||||
set -g status-left "#[fg=brightblack,bg=black]#[fg=white,bg=brightblack,bold] #S #[fg=brightblack,bg=black,nobold,noitalics,nounderscore]"
|
|
||||||
set -g status-right "#{prefix_highlight}#[fg=brightblack,bg=black,nobold,noitalics,nounderscore]#[fg=white,bg=brightblack,nobold] #H #[fg=brightblack,bg=black,nobold]"
|
|
||||||
|
|
||||||
#+--- Windows ---+
|
|
||||||
set -g window-status-format "#[fg=brightblack,bg=black,nobold,noitalics,nounderscore]#[fg=white,bg=brightblack] #I#[fg=white,bg=brightblack,nobold,noitalics,nounderscore]: #W #[fg=brightblack,bg=black,nobold,noitalics,nounderscore]"
|
|
||||||
set -g window-status-current-format "#[fg=#5e81ac,bg=black]#[fg=white,bg=#5e81ac,bold,noitalics,nounderscore] #I#[fg=white,bg=#5e81ac,bold,noitalics,nounderscore]: #W #[fg=#5e81ac,bg=black,nobold,noitalics,nounderscore]"
|
|
||||||
set -g window-status-separator " "
|
|
||||||
|
|
||||||
# Center the window list (yes, this value has to be written as "centre").
|
|
||||||
set -g status-justify centre
|
|
||||||
|
|
||||||
#+----------------+
|
|
||||||
#+ Windows +
|
|
||||||
#+----------------+
|
|
||||||
#+--- Bars ---+
|
|
||||||
set -g pane-active-border-style "bg=default fg=blue"
|
|
|
@ -1,12 +0,0 @@
|
||||||
# Integrate Tmux and Neovim movement.
|
|
||||||
set -g @tilish-navigator "on"
|
|
||||||
|
|
||||||
# Default to splitting once vertically and then splitting horizontally
|
|
||||||
# after that.
|
|
||||||
select-layout "main-vertical"
|
|
||||||
select-layout -E
|
|
||||||
set -g @tilish-default "main-vertical"
|
|
||||||
|
|
||||||
|
|
||||||
bind-key -n "M-q" kill-pane
|
|
||||||
|
|
|
@ -1,20 +0,0 @@
|
||||||
{ lib
|
|
||||||
, config
|
|
||||||
, pkgs
|
|
||||||
, ...
|
|
||||||
}:
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra; let
|
|
||||||
cfg = config.plusultra.cli-apps.tmux;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.cli-apps.tmux = {
|
|
||||||
enable = mkEnableOption "Tmux";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
plusultra.tmux
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,20 +0,0 @@
|
||||||
{ options, config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra;
|
|
||||||
let
|
|
||||||
cfg = config.plusultra.cli-apps.wine;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.cli-apps.wine = with types; {
|
|
||||||
enable = mkBoolOpt false "Whether or not to enable Wine.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
winePackages.unstable
|
|
||||||
winetricks
|
|
||||||
wine64Packages.unstable
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,17 +0,0 @@
|
||||||
{ options, config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra;
|
|
||||||
let
|
|
||||||
cfg = config.plusultra.cli-apps.wshowkeys;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.cli-apps.wshowkeys = with types; {
|
|
||||||
enable = mkBoolOpt false "Whether or not to enable wshowkeys.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
plusultra.user.extraGroups = [ "input" ];
|
|
||||||
environment.systemPackages = with pkgs; [ wshowkeys ];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,17 +0,0 @@
|
||||||
{ options, config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra;
|
|
||||||
let
|
|
||||||
cfg = config.plusultra.cli-apps.yubikey;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.cli-apps.yubikey = with types; {
|
|
||||||
enable = mkBoolOpt false "Whether or not to enable Yubikey.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
services.yubikey-agent.enable = true;
|
|
||||||
environment.systemPackages = with pkgs; [ yubikey-manager ];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,19 +0,0 @@
|
||||||
{ options, config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra;
|
|
||||||
let cfg = config.plusultra.desktop.addons.electron-support;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.desktop.addons.electron-support = with types; {
|
|
||||||
enable = mkBoolOpt false
|
|
||||||
"Whether to enable electron support in the desktop environment.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
plusultra.home.configFile."electron-flags.conf".source =
|
|
||||||
./electron-flags.conf;
|
|
||||||
|
|
||||||
environment.sessionVariables = { NIXOS_OZONE_WL = "1"; };
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,2 +0,0 @@
|
||||||
--enable-features=UseOzonePlatform
|
|
||||||
--ozone-platform=wayland
|
|
|
@ -1,23 +0,0 @@
|
||||||
{ options, config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra;
|
|
||||||
let
|
|
||||||
cfg = config.plusultra.desktop.addons.firefox-nordic-theme;
|
|
||||||
profileDir = ".mozilla/firefox/${config.plusultra.user.name}";
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.desktop.addons.firefox-nordic-theme = with types; {
|
|
||||||
enable = mkBoolOpt false "Whether to enable the Nordic theme for firefox.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
plusultra.apps.firefox = {
|
|
||||||
extraConfig = builtins.readFile
|
|
||||||
"${pkgs.plusultra.firefox-nordic-theme}/configuration/user.js";
|
|
||||||
userChrome = ''
|
|
||||||
@import "${pkgs.plusultra.firefox-nordic-theme}/userChrome.css";
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,20 +0,0 @@
|
||||||
{ options, config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra;
|
|
||||||
let cfg = config.plusultra.desktop.addons.foot;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.desktop.addons.foot = with types; {
|
|
||||||
enable = mkBoolOpt false "Whether to enable the gnome file manager.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
plusultra.desktop.addons.term = {
|
|
||||||
enable = true;
|
|
||||||
pkg = pkgs.foot;
|
|
||||||
};
|
|
||||||
|
|
||||||
plusultra.home.configFile."foot/foot.ini".source = ./foot.ini;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,50 +0,0 @@
|
||||||
###########################################
|
|
||||||
#░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░#
|
|
||||||
#░░█▀█░█░░░█░█░█▀▀░░░█░█░█░░░▀█▀░█▀▄░█▀█░░#
|
|
||||||
#░░█▀▀░█░░░█░█░▀▀█░░░█░█░█░░░░█░░█▀▄░█▀█░░#
|
|
||||||
#░░▀░░░▀▀▀░▀▀▀░▀▀▀░░░▀▀▀░▀▀▀░░▀░░▀░▀░▀░▀░░#
|
|
||||||
#░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░#
|
|
||||||
###########################################
|
|
||||||
|
|
||||||
[main]
|
|
||||||
font=Hack Nerd Font Mono:size=12
|
|
||||||
#,Noto Color Emoji:size=12
|
|
||||||
line-height=14
|
|
||||||
underline-offset=2
|
|
||||||
pad=20x4 center
|
|
||||||
term=xterm-256color
|
|
||||||
|
|
||||||
[scrollback]
|
|
||||||
lines=2000
|
|
||||||
|
|
||||||
[url]
|
|
||||||
protocols=http,https,ftp,ftps,file,gemini,gopher,mailto
|
|
||||||
|
|
||||||
[cursor]
|
|
||||||
blink=yes
|
|
||||||
|
|
||||||
[colors]
|
|
||||||
# Nord
|
|
||||||
foreground=D8DEE9
|
|
||||||
background=2E3440
|
|
||||||
|
|
||||||
regular0=2E3440
|
|
||||||
regular1=BF616A
|
|
||||||
regular2=A3BE8C
|
|
||||||
regular3=EBCB8B
|
|
||||||
regular4=81A1C1
|
|
||||||
regular5=B48EAD
|
|
||||||
regular6=88C0D0
|
|
||||||
regular7=E5E9F0
|
|
||||||
|
|
||||||
bright0=4C566A
|
|
||||||
bright1=BF616A
|
|
||||||
bright2=A3BE8C
|
|
||||||
bright3=EBCB8B
|
|
||||||
bright4=8FBCBB
|
|
||||||
bright5=B48EAD
|
|
||||||
bright6=8FBCBB
|
|
||||||
bright7=ECEFF4
|
|
||||||
|
|
||||||
[csd]
|
|
||||||
size=0
|
|
|
@ -1,118 +0,0 @@
|
||||||
{ options
|
|
||||||
, config
|
|
||||||
, lib
|
|
||||||
, pkgs
|
|
||||||
, ...
|
|
||||||
}:
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra; let
|
|
||||||
cfg = config.plusultra.desktop.addons.gtk;
|
|
||||||
gdmCfg = config.services.xserver.displayManager.gdm;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.desktop.addons.gtk = with types; {
|
|
||||||
enable = mkBoolOpt false "Whether to customize GTK and apply themes.";
|
|
||||||
theme = {
|
|
||||||
name =
|
|
||||||
mkOpt str "Nordic-darker"
|
|
||||||
"The name of the GTK theme to apply.";
|
|
||||||
pkg = mkOpt package pkgs.nordic "The package to use for the theme.";
|
|
||||||
};
|
|
||||||
cursor = {
|
|
||||||
name =
|
|
||||||
mkOpt str "Bibata-Modern-Ice"
|
|
||||||
"The name of the cursor theme to apply.";
|
|
||||||
pkg = mkOpt package pkgs.plusultra.bibata-cursors "The package to use for the cursor theme.";
|
|
||||||
};
|
|
||||||
icon = {
|
|
||||||
name =
|
|
||||||
mkOpt str "Papirus"
|
|
||||||
"The name of the icon theme to apply.";
|
|
||||||
pkg = mkOpt package pkgs.papirus-icon-theme "The package to use for the icon theme.";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
environment.systemPackages = [
|
|
||||||
cfg.icon.pkg
|
|
||||||
cfg.cursor.pkg
|
|
||||||
];
|
|
||||||
|
|
||||||
environment.sessionVariables = {
|
|
||||||
XCURSOR_THEME = cfg.cursor.name;
|
|
||||||
};
|
|
||||||
|
|
||||||
plusultra.home.extraOptions = {
|
|
||||||
gtk = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
theme = {
|
|
||||||
name = cfg.theme.name;
|
|
||||||
package = cfg.theme.pkg;
|
|
||||||
};
|
|
||||||
|
|
||||||
cursorTheme = {
|
|
||||||
name = cfg.cursor.name;
|
|
||||||
package = cfg.cursor.pkg;
|
|
||||||
};
|
|
||||||
|
|
||||||
iconTheme = {
|
|
||||||
name = cfg.icon.name;
|
|
||||||
package = cfg.icon.pkg;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# NOTE: In order to set the cursor theme in GDM we have to specify it in the
|
|
||||||
# dconf profile. However, the NixOS module doesn't provide an easy way to do this so the relevant
|
|
||||||
# parts have been extracted from:
|
|
||||||
# https://github.com/NixOS/nixpkgs/blob/96e18717904dfedcd884541e5a92bf9ff632cf39/nixos/modules/services/x11/display-managers/gdm.nix
|
|
||||||
#
|
|
||||||
# NOTE: The GTK and icon themes don't seem to affect recent GDM versions. I've
|
|
||||||
# left them here as reference for the future.
|
|
||||||
programs.dconf.profiles = mkIf gdmCfg.enable {
|
|
||||||
gdm =
|
|
||||||
let
|
|
||||||
customDconf = pkgs.writeTextFile {
|
|
||||||
name = "gdm-dconf";
|
|
||||||
destination = "/dconf/gdm-custom";
|
|
||||||
text = ''
|
|
||||||
${optionalString (!gdmCfg.autoSuspend) ''
|
|
||||||
[org/gnome/settings-daemon/plugins/power]
|
|
||||||
sleep-inactive-ac-type='nothing'
|
|
||||||
sleep-inactive-battery-type='nothing'
|
|
||||||
sleep-inactive-ac-timeout=0
|
|
||||||
sleep-inactive-battery-timeout=0
|
|
||||||
''}
|
|
||||||
|
|
||||||
[org/gnome/desktop/interface]
|
|
||||||
gtk-theme='${cfg.theme.name}'
|
|
||||||
cursor-theme='${cfg.cursor.name}'
|
|
||||||
icon-theme='${cfg.icon.name}'
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
customDconfDb = pkgs.stdenv.mkDerivation {
|
|
||||||
name = "gdm-dconf-db";
|
|
||||||
buildCommand = ''
|
|
||||||
${pkgs.dconf}/bin/dconf compile $out ${customDconf}/dconf
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
in
|
|
||||||
mkForce (
|
|
||||||
pkgs.stdenv.mkDerivation {
|
|
||||||
name = "dconf-gdm-profile";
|
|
||||||
buildCommand = ''
|
|
||||||
# Check that the GDM profile starts with what we expect.
|
|
||||||
if [ $(head -n 1 ${pkgs.gnome.gdm}/share/dconf/profile/gdm) != "user-db:user" ]; then
|
|
||||||
echo "GDM dconf profile changed, please update gtk/default.nix"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
# Insert our custom DB behind it.
|
|
||||||
sed '2ifile-db:${customDconfDb}' ${pkgs.gnome.gdm}/share/dconf/profile/gdm > $out
|
|
||||||
'';
|
|
||||||
}
|
|
||||||
);
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,3 +0,0 @@
|
||||||
profile {
|
|
||||||
output eDP-1 enable scale 2
|
|
||||||
}
|
|
|
@ -1,41 +0,0 @@
|
||||||
{ options, config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra;
|
|
||||||
let
|
|
||||||
cfg = config.plusultra.desktop.addons.kanshi;
|
|
||||||
user = config.plusultra.user;
|
|
||||||
home = config.users.users.${user.name}.home;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.desktop.addons.kanshi = with types; {
|
|
||||||
enable =
|
|
||||||
mkBoolOpt false "Whether to enable Kanshi in the desktop environment.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
plusultra.home.configFile."kanshi/config".source = ./config;
|
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [ kanshi ];
|
|
||||||
|
|
||||||
# configuring kanshi
|
|
||||||
systemd.user.services.kanshi = {
|
|
||||||
description = "Kanshi output autoconfig ";
|
|
||||||
wantedBy = [ "graphical-session.target" ];
|
|
||||||
partOf = [ "graphical-session.target" ];
|
|
||||||
environment = { XDG_CONFIG_HOME = "${home}/.config"; };
|
|
||||||
serviceConfig = {
|
|
||||||
ExecCondition = ''
|
|
||||||
${pkgs.bash}/bin/bash -c '[ -n "$WAYLAND_DISPLAY" ]'
|
|
||||||
'';
|
|
||||||
|
|
||||||
ExecStart = ''
|
|
||||||
${pkgs.kanshi}/bin/kanshi
|
|
||||||
'';
|
|
||||||
|
|
||||||
RestartSec = 5;
|
|
||||||
Restart = "always";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,17 +0,0 @@
|
||||||
{ options, config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
with lib.plusultra;
|
|
||||||
let cfg = config.plusultra.desktop.addons.keyring;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.plusultra.desktop.addons.keyring = with types; {
|
|
||||||
enable = mkBoolOpt false "Whether to enable the gnome keyring.";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
services.gnome.gnome-keyring.enable = true;
|
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [ gnome.seahorse ];
|
|
||||||
};
|
|
||||||
}
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue