Compare commits
7 commits
f055d8e44a
...
ed0ac3e6e0
Author | SHA1 | Date | |
---|---|---|---|
|
ed0ac3e6e0 | ||
|
80844cfbaa | ||
|
e1f72da565 | ||
|
696609716b | ||
|
ff496b7ee5 | ||
|
294f1837d5 | ||
|
cf5e56ebaa |
36
flake.lock
36
flake.lock
|
@ -209,11 +209,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1739841949,
|
||||
"narHash": "sha256-lSOXdgW/1zi/SSu7xp71v+55D5Egz8ACv0STkj7fhbs=",
|
||||
"lastModified": 1740485968,
|
||||
"narHash": "sha256-WK+PZHbfDjLyveXAxpnrfagiFgZWaTJglewBWniTn2Y=",
|
||||
"owner": "nix-community",
|
||||
"repo": "disko",
|
||||
"rev": "15dbf8cebd8e2655a883b74547108e089f051bf0",
|
||||
"rev": "19c1140419c4f1cdf88ad4c1cfb6605597628940",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -481,11 +481,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1739676768,
|
||||
"narHash": "sha256-U1HQ7nzhJyVVXUgjU028UCkbLQLEIkg42+G7iIiBmlU=",
|
||||
"lastModified": 1740281615,
|
||||
"narHash": "sha256-dZWcbAQ1sF8oVv+zjSKkPVY0ebwENQEkz5vc6muXbKY=",
|
||||
"owner": "Mic92",
|
||||
"repo": "nix-index-database",
|
||||
"rev": "ae15068e79e22b76c344f0d7f8aed1bb1c5b0b63",
|
||||
"rev": "465792533d03e6bb9dc849d58ab9d5e31fac9023",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -504,11 +504,11 @@
|
|||
"nixpkgs-24_11": "nixpkgs-24_11"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1739121270,
|
||||
"narHash": "sha256-EmJhpy9U8sVlepl2QPjG019VfG67HcucsQNItTqW6cA=",
|
||||
"lastModified": 1740437053,
|
||||
"narHash": "sha256-exPTta4qI1ka9sk+jPcLogGffJ1OVXnAsTRqpeAXeNw=",
|
||||
"owner": "simple-nixos-mailserver",
|
||||
"repo": "nixos-mailserver",
|
||||
"rev": "8c1c4640b878c692dd3d8055e8cdea0a2bbd8cf3",
|
||||
"rev": "c8ec4d5e432f5df4838eacd39c11828d23ce66ec",
|
||||
"type": "gitlab"
|
||||
},
|
||||
"original": {
|
||||
|
@ -551,11 +551,11 @@
|
|||
},
|
||||
"nixpkgs-unstable": {
|
||||
"locked": {
|
||||
"lastModified": 1739736696,
|
||||
"narHash": "sha256-zON2GNBkzsIyALlOCFiEBcIjI4w38GYOb+P+R4S8Jsw=",
|
||||
"lastModified": 1740367490,
|
||||
"narHash": "sha256-WGaHVAjcrv+Cun7zPlI41SerRtfknGQap281+AakSAw=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "d74a2335ac9c133d6bbec9fc98d91a77f1604c1f",
|
||||
"rev": "0196c0175e9191c474c26ab5548db27ef5d34b05",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -612,11 +612,11 @@
|
|||
},
|
||||
"nixpkgs_5": {
|
||||
"locked": {
|
||||
"lastModified": 1739758141,
|
||||
"narHash": "sha256-uq6A2L7o1/tR6VfmYhZWoVAwb3gTy7j4Jx30MIrH0rE=",
|
||||
"lastModified": 1740339700,
|
||||
"narHash": "sha256-cbrw7EgQhcdFnu6iS3vane53bEagZQy/xyIkDWpCgVE=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "c618e28f70257593de75a7044438efc1c1fc0791",
|
||||
"rev": "04ef94c4c1582fd485bbfdb8c4a8ba250e359195",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -937,11 +937,11 @@
|
|||
},
|
||||
"vpsadminos": {
|
||||
"locked": {
|
||||
"lastModified": 1739153939,
|
||||
"narHash": "sha256-7z+4SMs1uD/mCruBasPeWeq1DGzzgACRHOSdLE+mHRk=",
|
||||
"lastModified": 1740082937,
|
||||
"narHash": "sha256-HcTWGIzG2leM0gZabg9lkY7iLwvAe49lqXEzez/Rp/s=",
|
||||
"owner": "vpsfreecz",
|
||||
"repo": "vpsadminos",
|
||||
"rev": "939254840fcd72bdd3cd52186171815c3f25403b",
|
||||
"rev": "521427c69173bc443de940ba88d4f58d5fa8d8e2",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
33
flake.nix
33
flake.nix
|
@ -102,17 +102,25 @@
|
|||
inputs.agenix.nixosModules.default
|
||||
inputs.home-manager.nixosModules.home-manager
|
||||
inputs.disko.nixosModules.disko
|
||||
{
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.users.lelgenio = import ./user/home.nix;
|
||||
home-manager.backupFileExtension = "bkp";
|
||||
# Optionally, use home-manager.extraSpecialArgs to pass
|
||||
# arguments to home.nix
|
||||
home-manager.extraSpecialArgs = {
|
||||
inherit inputs;
|
||||
};
|
||||
}
|
||||
(
|
||||
{ config, ... }:
|
||||
{
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.users.lelgenio = {
|
||||
my = config.my;
|
||||
imports = [
|
||||
./user/home.nix
|
||||
];
|
||||
};
|
||||
home-manager.backupFileExtension = "bkp";
|
||||
# Optionally, use home-manager.extraSpecialArgs to pass
|
||||
# arguments to home.nix
|
||||
home-manager.extraSpecialArgs = {
|
||||
inherit inputs;
|
||||
};
|
||||
}
|
||||
)
|
||||
]
|
||||
++ lib.optional (desktop == "gnome") ./system/gnome.nix
|
||||
++ lib.optional (desktop == "kde") ./system/kde.nix;
|
||||
|
@ -133,14 +141,12 @@
|
|||
./system/monolith-gitlab-runner.nix
|
||||
./system/monolith-forgejo-runner.nix
|
||||
./system/nix-serve.nix
|
||||
./system/steam.nix
|
||||
] ++ common_modules;
|
||||
};
|
||||
double-rainbow = lib.nixosSystem {
|
||||
inherit system specialArgs;
|
||||
modules = [
|
||||
./hosts/double-rainbow.nix
|
||||
./system/rainbow-gitlab-runner.nix
|
||||
] ++ common_modules;
|
||||
};
|
||||
pixie = lib.nixosSystem {
|
||||
|
@ -151,7 +157,6 @@
|
|||
++ [
|
||||
{
|
||||
packages.media-packages.enable = lib.mkOverride 0 false;
|
||||
programs.steam.enable = lib.mkOverride 0 false;
|
||||
services.flatpak.enable = lib.mkOverride 0 false;
|
||||
}
|
||||
];
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{ pkgs, ... }:
|
||||
{ pkgs, lib, ... }:
|
||||
let
|
||||
undervoltGpu = pkgs.writeShellScript "undervolt-gpu" ''
|
||||
set -xe
|
||||
|
@ -17,6 +17,17 @@ in
|
|||
"amdgpu.ppfeaturemask=0xfffd7fff" # enable undervolting
|
||||
];
|
||||
|
||||
systemd.services.amd-fan-control = {
|
||||
script = ''
|
||||
${lib.getExe pkgs.amd-fan-control} /sys/class/drm/card1/device 60 85
|
||||
'';
|
||||
serviceConfig = {
|
||||
Restart = "always";
|
||||
RestartSec = 10;
|
||||
};
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
};
|
||||
|
||||
hardware.graphics.enable32Bit = true;
|
||||
|
||||
hardware.graphics.extraPackages = with pkgs; [
|
||||
|
|
|
@ -41,6 +41,8 @@ in
|
|||
package = pkgs.unstable.opentabletdriver;
|
||||
};
|
||||
|
||||
my.gaming.enable = true;
|
||||
|
||||
boot.extraModulePackages = with config.boot.kernelPackages; [ zenpower ];
|
||||
|
||||
boot.initrd.kernelModules = [ "amdgpu" ];
|
||||
|
|
61
scripts/amd-fan-control
Executable file
61
scripts/amd-fan-control
Executable file
|
@ -0,0 +1,61 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
DEVICE="$1" # eg: /sys/class/drm/card1/device
|
||||
HWMON=$(echo "$DEVICE"/hwmon/hwmon*)
|
||||
|
||||
exit() {
|
||||
echo "Setting controll to auto" >&2
|
||||
echo 2 > "$HWMON/pwm1_enable"
|
||||
}
|
||||
|
||||
trap exit EXIT INT
|
||||
|
||||
bail() {
|
||||
echo "Error: $@" >&2
|
||||
echo "Exiting..." >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
if ! [ -d "$HWMON" ]; then
|
||||
bail "Invalid HWMON"
|
||||
fi
|
||||
|
||||
TEMP_INPUT="$HWMON/temp2_input"
|
||||
|
||||
if ! [ -f $TEMP_INPUT ]; then
|
||||
bail "Invalid TEMP_INPUT"
|
||||
fi
|
||||
|
||||
TEMP_MIN="$2"
|
||||
TEMP_MAX="$3"
|
||||
|
||||
if [ -z "$TEMP_MIN" ];then
|
||||
bail "No minimum temperature provided"
|
||||
fi
|
||||
|
||||
if [ -z "$TEMP_MAX" ];then
|
||||
bail "No maximum temperature provided"
|
||||
fi
|
||||
|
||||
PWM_MIN=0
|
||||
PWM_MAX=255
|
||||
|
||||
echo "Running..." >&2
|
||||
while true; do
|
||||
TEMPERATURE_RAW=$(cat "$TEMP_INPUT")
|
||||
TEMPERATURE="$(( $TEMPERATURE_RAW / 1000 ))"
|
||||
# Remap from a number between 60_000..90_000 to 0..255
|
||||
PWM=$(( ($TEMPERATURE - $TEMP_MIN) * $PWM_MAX / ($TEMP_MAX - $TEMP_MIN) ))
|
||||
|
||||
if [ "$PWM" -gt $PWM_MAX ]; then
|
||||
PWM=$PWM_MAX
|
||||
elif [ "$PWM" -lt $PWM_MIN ]; then
|
||||
PWM=$PWM_MIN
|
||||
fi
|
||||
|
||||
echo 1 > "$HWMON/pwm1_enable"
|
||||
echo "$PWM" > "$HWMON/pwm1"
|
||||
sleep .1s
|
||||
done
|
|
@ -23,6 +23,7 @@
|
|||
in
|
||||
with final;
|
||||
createScripts {
|
||||
amd-fan-control = [ bash ];
|
||||
br = [ ];
|
||||
bmenu = [
|
||||
bemenu
|
||||
|
@ -136,7 +137,6 @@
|
|||
libinput
|
||||
libratbag
|
||||
];
|
||||
vrr-fullscreen = [ ];
|
||||
controller-battery = [ ];
|
||||
_docker-block-external-connections = [
|
||||
iptables
|
||||
|
|
|
@ -1,28 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# List of supported outputs for VRR
|
||||
output_vrr_whitelist=(
|
||||
"DP-1"
|
||||
"DP-2"
|
||||
)
|
||||
|
||||
# Toggle VRR for fullscreened apps in prespecified displays to avoid stutters while in desktop
|
||||
swaymsg -t subscribe -m '[ "window" ]' | while read window_json; do
|
||||
window_event=$(echo ${window_json} | jq -r '.change')
|
||||
|
||||
# Process only focus change and fullscreen toggle
|
||||
if [[ $window_event = "focus" || $window_event = "fullscreen_mode" ]]; then
|
||||
output_json=$(swaymsg -t get_outputs | jq -r '.[] | select(.focused == true)')
|
||||
output_name=$(echo ${output_json} | jq -r '.name')
|
||||
|
||||
# Use only VRR in whitelisted outputs
|
||||
if [[ ${output_vrr_whitelist[*]} =~ ${output_name} ]]; then
|
||||
output_vrr_status=$(echo ${output_json} | jq -r '.adaptive_sync_status')
|
||||
window_fullscreen_status=$(echo ${window_json} | jq -r '.container.fullscreen_mode')
|
||||
|
||||
# Only update output if nesseccary to avoid flickering
|
||||
[[ $output_vrr_status = "disabled" && $window_fullscreen_status = "1" ]] && swaymsg output "${output_name}" adaptive_sync 1
|
||||
[[ $output_vrr_status = "enabled" && $window_fullscreen_status = "0" ]] && swaymsg output "${output_name}" adaptive_sync 0
|
||||
fi
|
||||
fi
|
||||
done
|
|
@ -2,9 +2,6 @@ let
|
|||
main_ssh_public_key = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCxR/w+38b2lX90yNBqhq3mUmkn1WGu6GAPhN1tVp2ZjYRJNV/+5gWCnTtOWYtDx35HmK/spQ2Qy8X9ttkzORa24fysNx1Iqn/TiXhD7eIJjbGPnrOpIKTkW5/uB3SD/P5NBSa06//BaqJU4sBlG79hoXRpod052hQtdpTVDiMCIV+iboWPKqopmJJfWdBtVnHXs9rep0htPRExxGslImFk7Z6xjcaHyCpIQZPlOGf+sGsmUU7jRqzvZFV8ucIdbnAlMHrU4pepNFhuraESyZVTa/bi9sw0iozXp5Q5+5thMebEslmT1Z771kI4sieDy+O4r8c0Sx2/VY1UAzcpq1faggc3YB01MTh+tiEC6xdMvZLrQGL1NBWjHleMyL53GU5ERluC0vXJF3Hv3BGGBDfXWbrEm5n06DHr2apRVJGC0LwiQ7Woud1X4V4X1pKSusxCVMjT2lmcOwV6YhKhB2sowJc1OdMx4+tL0UWE+YKSZgBHfolwk6ml0F4EO9nnUHc= lelgenio@i15";
|
||||
in
|
||||
{
|
||||
"rainbow-gitlab-runner-thoreb-itinerario-registrationConfigFile.age".publicKeys = [
|
||||
main_ssh_public_key
|
||||
];
|
||||
"monolith-gitlab-runner-thoreb-itinerario-registrationConfigFile.age".publicKeys = [
|
||||
main_ssh_public_key
|
||||
];
|
||||
|
|
|
@ -1,6 +1,18 @@
|
|||
{ lib, ... }:
|
||||
{
|
||||
options = {
|
||||
my = lib.mkOption { };
|
||||
my = {
|
||||
themes = lib.mkOption { };
|
||||
key = lib.mkOption { };
|
||||
theme = lib.mkOption { };
|
||||
accent = lib.mkOption { };
|
||||
font = lib.mkOption { };
|
||||
username = lib.mkOption { type = lib.types.str; };
|
||||
mail = lib.mkOption { };
|
||||
dmenu = lib.mkOption { type = lib.types.str; };
|
||||
desktop = lib.mkOption { type = lib.types.str; };
|
||||
browser = lib.mkOption { type = lib.types.str; };
|
||||
editor = lib.mkOption { type = lib.types.str; };
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
17
system/android.nix
Normal file
17
system/android.nix
Normal file
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
{
|
||||
options.my.android.enable = lib.mkEnableOption { };
|
||||
|
||||
config = lib.mkIf config.my.android.enable {
|
||||
# Open kde connect ports
|
||||
programs.kdeconnect.enable = true;
|
||||
|
||||
programs.adb.enable = true;
|
||||
services.udev.packages = [ pkgs.android-udev-rules ];
|
||||
};
|
||||
}
|
|
@ -2,7 +2,6 @@
|
|||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
|
|
|
@ -1,18 +0,0 @@
|
|||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{
|
||||
services.cachix-watch-store = {
|
||||
enable = true;
|
||||
cacheName = "lelgenio";
|
||||
cachixTokenFile = config.age.secrets.lelgenio-cachix.path;
|
||||
};
|
||||
systemd.services.cachix-watch-store-agent = {
|
||||
serviceConfig.TimeoutStopSec = 3;
|
||||
# If we don't do this, cachix tends to timeout
|
||||
serviceConfig.KillMode = lib.mkForce "control-group";
|
||||
};
|
||||
}
|
|
@ -1,16 +1,11 @@
|
|||
# Edit this configuration file to define what should be installed on
|
||||
# your system. Help is available in the configuration.nix(5) man page
|
||||
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
imports = [
|
||||
./gamemode.nix
|
||||
./cachix.nix
|
||||
./android.nix
|
||||
./gaming.nix
|
||||
./media-packages.nix
|
||||
./boot.nix
|
||||
./thunar.nix
|
||||
|
@ -26,39 +21,27 @@
|
|||
../settings
|
||||
];
|
||||
|
||||
my = import ../user/variables.nix;
|
||||
my = import ../user/variables.nix // {
|
||||
android.enable = true;
|
||||
media-packages.enable = true;
|
||||
containers.enable = true;
|
||||
};
|
||||
|
||||
zramSwap.enable = true;
|
||||
|
||||
programs.adb.enable = true;
|
||||
services.udev.packages = [ pkgs.android-udev-rules ];
|
||||
|
||||
# Enable touchpad support (enabled default in most desktopManager).
|
||||
services.libinput.enable = true;
|
||||
|
||||
packages.media-packages.enable = true;
|
||||
environment.systemPackages = with pkgs; [
|
||||
pavucontrol
|
||||
|
||||
glib # gsettings
|
||||
usbutils
|
||||
# dracula-theme # gtk theme
|
||||
adwaita-icon-theme # default gnome cursors
|
||||
|
||||
nix-output-monitor
|
||||
];
|
||||
|
||||
services.geoclue2.enable = true;
|
||||
|
||||
# Workaround for nm-wait-online hanging??
|
||||
# Ref: https://github.com/NixOS/nixpkgs/issues/180175
|
||||
systemd.services.NetworkManager-wait-online = {
|
||||
serviceConfig.ExecStart = [
|
||||
""
|
||||
"${pkgs.networkmanager}/bin/nm-online -q"
|
||||
];
|
||||
};
|
||||
|
||||
systemd.extraConfig = ''
|
||||
DefaultTimeoutStopSec=10s
|
||||
'';
|
||||
|
|
|
@ -1,30 +1,39 @@
|
|||
{ pkgs, lib, ... }:
|
||||
{
|
||||
services.flatpak.enable = true;
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{
|
||||
options.my.containers.enable = lib.mkEnableOption { };
|
||||
|
||||
virtualisation.docker = {
|
||||
enable = true;
|
||||
autoPrune = {
|
||||
config = lib.mkIf config.my.containers.enable {
|
||||
services.flatpak.enable = true;
|
||||
|
||||
virtualisation.docker = {
|
||||
enable = true;
|
||||
dates = "monthly";
|
||||
flags = [
|
||||
"--all"
|
||||
"--volumes"
|
||||
];
|
||||
};
|
||||
daemon.settings = {
|
||||
# needed by bitbucket runner ???
|
||||
log-driver = "json-file";
|
||||
log-opts = {
|
||||
max-size = "10m";
|
||||
max-file = "3";
|
||||
autoPrune = {
|
||||
enable = true;
|
||||
dates = "monthly";
|
||||
flags = [
|
||||
"--all"
|
||||
"--volumes"
|
||||
];
|
||||
};
|
||||
daemon.settings = {
|
||||
# needed by bitbucket runner ???
|
||||
log-driver = "json-file";
|
||||
log-opts = {
|
||||
max-size = "10m";
|
||||
max-file = "3";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
networking.firewall.extraCommands = lib.getExe pkgs._docker-block-external-connections;
|
||||
|
||||
programs.extra-container.enable = true;
|
||||
|
||||
programs.firejail.enable = true;
|
||||
};
|
||||
|
||||
networking.firewall.extraCommands = lib.getExe pkgs._docker-block-external-connections;
|
||||
|
||||
programs.extra-container.enable = true;
|
||||
|
||||
programs.firejail.enable = true;
|
||||
}
|
||||
|
|
|
@ -1,27 +0,0 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
programs.gamemode.enable = true;
|
||||
programs.gamemode.enableRenice = true;
|
||||
programs.gamemode.settings = {
|
||||
general = {
|
||||
renice = 10;
|
||||
};
|
||||
|
||||
# Warning: GPU optimisations have the potential to damage hardware
|
||||
gpu = {
|
||||
apply_gpu_optimisations = "accept-responsibility";
|
||||
gpu_device = 0;
|
||||
amd_performance_level = "high";
|
||||
};
|
||||
|
||||
custom = {
|
||||
start = "${pkgs.libnotify}/bin/notify-send 'GameMode started'";
|
||||
end = "${pkgs.libnotify}/bin/notify-send 'GameMode ended'";
|
||||
};
|
||||
};
|
||||
}
|
63
system/gaming.nix
Normal file
63
system/gaming.nix
Normal file
|
@ -0,0 +1,63 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
options.my.gaming.enable = lib.mkEnableOption { };
|
||||
|
||||
config = lib.mkIf config.my.gaming.enable {
|
||||
programs.steam.enable = true;
|
||||
programs.steam.extraPackages =
|
||||
config.fonts.packages
|
||||
++ (with pkgs; [
|
||||
capitaine-cursors
|
||||
bibata-cursors
|
||||
mangohud
|
||||
xdg-user-dirs
|
||||
gamescope
|
||||
|
||||
# gamescope compatibility??
|
||||
xorg.libXcursor
|
||||
xorg.libXi
|
||||
xorg.libXinerama
|
||||
xorg.libXScrnSaver
|
||||
libpng
|
||||
libpulseaudio
|
||||
libvorbis
|
||||
stdenv.cc.cc.lib
|
||||
libkrb5
|
||||
keyutils
|
||||
]);
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
protontricks
|
||||
bottles
|
||||
inputs.dzgui-nix.packages.${pkgs.system}.default
|
||||
];
|
||||
|
||||
programs.gamemode = {
|
||||
enable = true;
|
||||
enableRenice = true;
|
||||
settings = {
|
||||
general = {
|
||||
renice = 10;
|
||||
};
|
||||
|
||||
# Warning: GPU optimisations have the potential to damage hardware
|
||||
gpu = {
|
||||
apply_gpu_optimisations = "accept-responsibility";
|
||||
gpu_device = 0;
|
||||
amd_performance_level = "high";
|
||||
};
|
||||
|
||||
custom = {
|
||||
start = "${pkgs.libnotify}/bin/notify-send 'GameMode started'";
|
||||
end = "${pkgs.libnotify}/bin/notify-send 'GameMode ended'";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -5,10 +5,10 @@
|
|||
...
|
||||
}:
|
||||
let
|
||||
cfg = config.packages.media-packages;
|
||||
cfg = config.my.media-packages;
|
||||
in
|
||||
{
|
||||
options.packages.media-packages = {
|
||||
options.my.media-packages = {
|
||||
enable = lib.mkEnableOption "media packages";
|
||||
};
|
||||
config = lib.mkIf cfg.enable {
|
||||
|
|
|
@ -6,8 +6,6 @@
|
|||
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
|
||||
# Enable networking
|
||||
networking.networkmanager.enable = true;
|
||||
# Open kde connect ports
|
||||
programs.kdeconnect.enable = true;
|
||||
|
||||
networking.firewall = {
|
||||
enable = true;
|
||||
|
@ -15,7 +13,7 @@
|
|||
};
|
||||
|
||||
# Enable CUPS to print documents.
|
||||
# services.printing.enable = true;
|
||||
services.printing.enable = true;
|
||||
|
||||
security.rtkit.enable = true;
|
||||
services.openssh = {
|
||||
|
@ -27,4 +25,13 @@
|
|||
KbdInteractiveAuthentication = false;
|
||||
};
|
||||
};
|
||||
|
||||
# Workaround for nm-wait-online hanging??
|
||||
# Ref: https://github.com/NixOS/nixpkgs/issues/180175
|
||||
systemd.services.NetworkManager-wait-online = {
|
||||
serviceConfig.ExecStart = [
|
||||
""
|
||||
"${pkgs.networkmanager}/bin/nm-online -q"
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,22 +0,0 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
let
|
||||
inherit (pkgs.callPackage ./gitlab-runner.nix { }) mkNixRunner;
|
||||
in
|
||||
{
|
||||
boot.kernel.sysctl."net.ipv4.ip_forward" = true;
|
||||
virtualisation.docker.enable = true;
|
||||
services.gitlab-runner = {
|
||||
enable = true;
|
||||
settings.concurrent = 6;
|
||||
services = {
|
||||
thoreb-telemetria-nix = mkNixRunner config.age.secrets.gitlab-runner-thoreb-telemetria-registrationConfigFile.path;
|
||||
thoreb-itinerario-nix = mkNixRunner config.age.secrets.rainbow-gitlab-runner-thoreb-itinerario-registrationConfigFile.path;
|
||||
};
|
||||
};
|
||||
systemd.services.gitlab-runner.serviceConfig.Nice = 10;
|
||||
}
|
|
@ -6,7 +6,6 @@
|
|||
secrets.monolith-gitlab-runner-thoreb-itinerario-registrationConfigFile.file = ../secrets/monolith-gitlab-runner-thoreb-itinerario-registrationConfigFile.age;
|
||||
secrets.gitlab-runner-thoreb-telemetria-registrationConfigFile.file = ../secrets/gitlab-runner-thoreb-telemetria-registrationConfigFile.age;
|
||||
secrets.monolith-forgejo-runner-token.file = ../secrets/monolith-forgejo-runner-token.age;
|
||||
secrets.rainbow-gitlab-runner-thoreb-itinerario-registrationConfigFile.file = ../secrets/rainbow-gitlab-runner-thoreb-itinerario-registrationConfigFile.age;
|
||||
secrets.monolith-nix-serve-privkey.file = ../secrets/monolith-nix-serve-privkey.age;
|
||||
secrets.phantom-forgejo-mailer-password.file = ../secrets/phantom-forgejo-mailer-password.age;
|
||||
};
|
||||
|
|
|
@ -1,36 +0,0 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
programs.steam.enable = true;
|
||||
programs.steam.extraPackages =
|
||||
config.fonts.packages
|
||||
++ (with pkgs; [
|
||||
capitaine-cursors
|
||||
bibata-cursors
|
||||
mangohud
|
||||
xdg-user-dirs
|
||||
gamescope
|
||||
|
||||
# gamescope compatibility??
|
||||
xorg.libXcursor
|
||||
xorg.libXi
|
||||
xorg.libXinerama
|
||||
xorg.libXScrnSaver
|
||||
libpng
|
||||
libpulseaudio
|
||||
libvorbis
|
||||
stdenv.cc.cc.lib
|
||||
libkrb5
|
||||
keyutils
|
||||
]);
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
protontricks
|
||||
bottles
|
||||
inputs.dzgui-nix.packages.${pkgs.system}.default
|
||||
];
|
||||
}
|
8
user/dummy.nix
Normal file
8
user/dummy.nix
Normal file
|
@ -0,0 +1,8 @@
|
|||
{ lib, ... }:
|
||||
{
|
||||
options.my = {
|
||||
android.enable = lib.mkEnableOption { };
|
||||
media-packages.enable = lib.mkEnableOption { };
|
||||
containers.enable = lib.mkEnableOption { };
|
||||
};
|
||||
}
|
|
@ -6,9 +6,12 @@
|
|||
}:
|
||||
let
|
||||
inherit (config.my) accent editor desktop;
|
||||
cfg = config.my.fish;
|
||||
in
|
||||
{
|
||||
config = {
|
||||
options.my.fish.enable = lib.mkEnableOption { };
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
programs.fish = {
|
||||
enable = true;
|
||||
shellInit = ''
|
||||
|
|
|
@ -2,16 +2,10 @@
|
|||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
inherit (config.my)
|
||||
key
|
||||
theme
|
||||
accent
|
||||
font
|
||||
;
|
||||
inherit (config.my) theme accent;
|
||||
inherit (theme) color;
|
||||
|
||||
colors = {
|
||||
|
|
24
user/gaming.nix
Normal file
24
user/gaming.nix
Normal file
|
@ -0,0 +1,24 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
cfg = config.my.gaming;
|
||||
in
|
||||
{
|
||||
options.my.gaming.enable = lib.mkEnableOption { };
|
||||
config = lib.mkIf cfg.enable {
|
||||
my.mangohud.enable = true;
|
||||
|
||||
home.packages = with pkgs; [
|
||||
# lutris-unwrapped
|
||||
# steam # It's enabled in the system config
|
||||
tlauncher
|
||||
gamescope
|
||||
glxinfo
|
||||
vulkan-tools
|
||||
];
|
||||
};
|
||||
}
|
|
@ -43,6 +43,9 @@ in
|
|||
|
||||
home.packages = with pkgs; [
|
||||
git_clean_remote_deleted
|
||||
|
||||
gh
|
||||
glab
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -7,9 +7,13 @@
|
|||
let
|
||||
inherit (config.my) accent theme editor;
|
||||
inherit (theme) color;
|
||||
|
||||
cfg = config.my.helix;
|
||||
in
|
||||
{
|
||||
config = {
|
||||
options.my.helix.enable = lib.mkEnableOption "Enable helix config";
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
programs.helix = {
|
||||
enable = true;
|
||||
settings = {
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
}:
|
||||
{
|
||||
imports = [
|
||||
./dummy.nix
|
||||
./waybar
|
||||
./helix.nix
|
||||
./kakoune
|
||||
|
@ -21,6 +22,7 @@
|
|||
./rofi.nix
|
||||
./mpv.nix
|
||||
./mangohud.nix
|
||||
./gaming.nix
|
||||
./pipewire.nix
|
||||
./mimeapps.nix
|
||||
./desktop-entries.nix
|
||||
|
@ -44,7 +46,11 @@
|
|||
./powerplay-led-idle.nix
|
||||
];
|
||||
|
||||
my = import ./variables.nix;
|
||||
my = import ./variables.nix // {
|
||||
sway.enable = true;
|
||||
pass.enable = true;
|
||||
fish.enable = true;
|
||||
};
|
||||
|
||||
# Home Manager needs a bit of information about you and the
|
||||
# paths it should manage.
|
||||
|
@ -91,14 +97,6 @@
|
|||
mate.engrampa
|
||||
# gnome.nautilus
|
||||
|
||||
## games
|
||||
# lutris-unwrapped
|
||||
# steam # It's enabled in the system config
|
||||
tlauncher
|
||||
gamescope
|
||||
glxinfo
|
||||
vulkan-tools
|
||||
|
||||
## Theming
|
||||
orchis_theme_compact
|
||||
papirus_red
|
||||
|
@ -130,6 +128,8 @@
|
|||
|
||||
unstable.blade-formatter
|
||||
nixfmt-rfc-style
|
||||
|
||||
nix-output-monitor
|
||||
];
|
||||
|
||||
fonts.fontconfig.enable = true;
|
||||
|
|
|
@ -1,80 +1,68 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
font,
|
||||
...
|
||||
}:
|
||||
{ config, lib, ... }:
|
||||
let
|
||||
inherit (config.my)
|
||||
key
|
||||
theme
|
||||
color
|
||||
accent
|
||||
font
|
||||
;
|
||||
cfg = config.my.mangohud;
|
||||
in
|
||||
{
|
||||
config = {
|
||||
programs.mangohud = {
|
||||
enable = true;
|
||||
enableSessionWide = true;
|
||||
settings = {
|
||||
full = true;
|
||||
# histogram = true;
|
||||
no_display = true;
|
||||
fps_limit = "0,30,60,72,90,120,144,240,288,320";
|
||||
toggle_fps_limit = "Shift_R+F10";
|
||||
toggle_preset = "Control_R+F9";
|
||||
fps_metrics = "Control_R+F8";
|
||||
options.my.mangohud.enable = lib.mkEnableOption { };
|
||||
|
||||
# legacy_layout = "false";
|
||||
# gpu_stats = true;
|
||||
# gpu_temp = true;
|
||||
# gpu_core_clock = true;
|
||||
# gpu_mem_clock = true;
|
||||
# gpu_power = true;
|
||||
# gpu_load_change = true;
|
||||
# gpu_load_value = "50,90";
|
||||
gpu_load_color = "FFFFFF,FFAA7F,CC0000";
|
||||
# gpu_text = "GPU";
|
||||
# cpu_stats = true;
|
||||
# cpu_temp = true;
|
||||
# cpu_power = true;
|
||||
# cpu_mhz = true;
|
||||
# cpu_load_change = true;
|
||||
# core_load_change = true;
|
||||
# cpu_load_value = "50,90";
|
||||
cpu_load_color = "FFFFFF,FFAA7F,CC0000";
|
||||
cpu_color = "2e97cb";
|
||||
# cpu_text = "CPU";
|
||||
# io_stats = true;
|
||||
# io_read = true;
|
||||
# io_write = true;
|
||||
io_color = "a491d3";
|
||||
# swap = true;
|
||||
# vram = true;
|
||||
vram_color = "ad64c1";
|
||||
# ram = true;
|
||||
ram_color = "c26693";
|
||||
# fps = true;
|
||||
engine_color = "eb5b5b";
|
||||
gpu_color = "2e9762";
|
||||
wine_color = "eb5b5b";
|
||||
# frame_timing = "1";
|
||||
frametime_color = "00ff00";
|
||||
media_player_color = "ffffff";
|
||||
background_alpha = "0.8";
|
||||
font_size = "24";
|
||||
config.programs.mangohud = lib.mkIf cfg.enable {
|
||||
enable = true;
|
||||
enableSessionWide = true;
|
||||
settings = {
|
||||
full = true;
|
||||
# histogram = true;
|
||||
no_display = true;
|
||||
fps_limit = "0,30,60,72,90,120,144,240,288,320";
|
||||
toggle_fps_limit = "Shift_R+F10";
|
||||
toggle_preset = "Control_R+F9";
|
||||
fps_metrics = "Control_R+F8";
|
||||
|
||||
background_color = "020202";
|
||||
position = "top-left";
|
||||
# text_color = "ffffff";
|
||||
round_corners = "10";
|
||||
toggle_hud = "Shift_R+F12";
|
||||
# toggle_logging = "Shift_L+F12";
|
||||
# output_folder = "/home/lelgenio";
|
||||
};
|
||||
# legacy_layout = "false";
|
||||
# gpu_stats = true;
|
||||
# gpu_temp = true;
|
||||
# gpu_core_clock = true;
|
||||
# gpu_mem_clock = true;
|
||||
# gpu_power = true;
|
||||
# gpu_load_change = true;
|
||||
# gpu_load_value = "50,90";
|
||||
gpu_load_color = "FFFFFF,FFAA7F,CC0000";
|
||||
# gpu_text = "GPU";
|
||||
# cpu_stats = true;
|
||||
# cpu_temp = true;
|
||||
# cpu_power = true;
|
||||
# cpu_mhz = true;
|
||||
# cpu_load_change = true;
|
||||
# core_load_change = true;
|
||||
# cpu_load_value = "50,90";
|
||||
cpu_load_color = "FFFFFF,FFAA7F,CC0000";
|
||||
cpu_color = "2e97cb";
|
||||
# cpu_text = "CPU";
|
||||
# io_stats = true;
|
||||
# io_read = true;
|
||||
# io_write = true;
|
||||
io_color = "a491d3";
|
||||
# swap = true;
|
||||
# vram = true;
|
||||
vram_color = "ad64c1";
|
||||
# ram = true;
|
||||
ram_color = "c26693";
|
||||
# fps = true;
|
||||
engine_color = "eb5b5b";
|
||||
gpu_color = "2e9762";
|
||||
wine_color = "eb5b5b";
|
||||
# frame_timing = "1";
|
||||
frametime_color = "00ff00";
|
||||
media_player_color = "ffffff";
|
||||
background_alpha = "0.8";
|
||||
font_size = "24";
|
||||
|
||||
background_color = "020202";
|
||||
position = "top-left";
|
||||
# text_color = "ffffff";
|
||||
round_corners = "10";
|
||||
toggle_hud = "Shift_R+F12";
|
||||
# toggle_logging = "Shift_L+F12";
|
||||
# output_folder = "/home/lelgenio";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -4,8 +4,13 @@
|
|||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
cfg = config.my.mpd;
|
||||
in
|
||||
{
|
||||
config = lib.mkIf (config.my.desktop != "gnome") {
|
||||
options.my.mpd.enable = lib.mkEnableOption { };
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
services.mpd = {
|
||||
enable = true;
|
||||
musicDirectory = config.home.homeDirectory + "/Música";
|
||||
|
|
|
@ -2,11 +2,15 @@
|
|||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
cfg = config.my.pass;
|
||||
in
|
||||
{
|
||||
config = {
|
||||
options.my.pass.enable = lib.mkEnableOption { };
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
programs.password-store = {
|
||||
enable = true;
|
||||
package = pkgs.pass.withExtensions (
|
||||
|
|
|
@ -5,13 +5,10 @@
|
|||
...
|
||||
}:
|
||||
let
|
||||
inherit (config.my)
|
||||
key
|
||||
accent
|
||||
font
|
||||
theme
|
||||
;
|
||||
inherit (config.my) accent font theme;
|
||||
inherit (theme) color;
|
||||
|
||||
cfg = config.my.sway;
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
|
@ -24,10 +21,17 @@ in
|
|||
./swaylock.nix
|
||||
./theme.nix
|
||||
];
|
||||
config = lib.mkIf (config.my.desktop == "sway") {
|
||||
services.mako.enable = true;
|
||||
services.swayidle.enable = true;
|
||||
services.kanshi.enable = true;
|
||||
|
||||
options.my.sway.enable = lib.mkEnableOption { };
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
my.mako.enable = true;
|
||||
my.kanshi.enable = true;
|
||||
my.swayidle.enable = true;
|
||||
my.swaylock.enable = true;
|
||||
my.mpd.enable = true;
|
||||
my.zathura.enable = true;
|
||||
my.waybar.enable = true;
|
||||
|
||||
wayland.windowManager.sway = {
|
||||
enable = true;
|
||||
|
@ -36,7 +40,7 @@ in
|
|||
bars = [ ];
|
||||
|
||||
floating.modifier = "Mod4";
|
||||
terminal = pkgs.alacritty.executable;
|
||||
terminal = lib.getExe pkgs.alacritty;
|
||||
|
||||
window.titlebar = false;
|
||||
gaps = {
|
||||
|
@ -69,7 +73,7 @@ in
|
|||
};
|
||||
output = {
|
||||
"*" = {
|
||||
adaptive_sync = "off";
|
||||
adaptive_sync = "on";
|
||||
bg = "${theme.background} fill";
|
||||
mode = "1920x1080@144.000Hz";
|
||||
};
|
||||
|
@ -122,21 +126,6 @@ in
|
|||
indicator = true;
|
||||
};
|
||||
|
||||
systemd.user.services.vrr-fullscreen = {
|
||||
Unit = {
|
||||
Description = "Enable VRR for fullscreen windows";
|
||||
PartOf = [ "graphical-session.target" ];
|
||||
After = [ "graphical-session.target" ];
|
||||
};
|
||||
Service = {
|
||||
ExecStart = "${lib.getExe pkgs.vrr-fullscreen}";
|
||||
Restart = "on-failure";
|
||||
};
|
||||
Install = {
|
||||
WantedBy = [ "sway-session.target" ];
|
||||
};
|
||||
};
|
||||
|
||||
services.gpg-agent.pinentryPackage = pkgs.pinentry-all;
|
||||
|
||||
xdg.configFile."OpenTabletDriver/settings.json".source = ./open-tablet-driver.json;
|
||||
|
@ -147,7 +136,6 @@ in
|
|||
swaylock
|
||||
wdisplays
|
||||
|
||||
waybar
|
||||
dhist
|
||||
demoji
|
||||
bmenu
|
||||
|
|
|
@ -1,20 +1,12 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
{ config, lib, ... }:
|
||||
let
|
||||
inherit (config.my)
|
||||
key
|
||||
accent
|
||||
font
|
||||
theme
|
||||
;
|
||||
inherit (theme) color;
|
||||
cfg = config.my.kanshi;
|
||||
in
|
||||
{
|
||||
services.kanshi = {
|
||||
options.my.kanshi.enable = lib.mkEnableOption { };
|
||||
|
||||
config.services.kanshi = lib.mkIf cfg.enable {
|
||||
enable = true;
|
||||
settings = [
|
||||
{
|
||||
profile = {
|
||||
|
|
|
@ -6,60 +6,66 @@
|
|||
}:
|
||||
let
|
||||
inherit (config.my)
|
||||
key
|
||||
accent
|
||||
font
|
||||
theme
|
||||
;
|
||||
inherit (theme) color;
|
||||
|
||||
cfg = config.my.mako;
|
||||
in
|
||||
{
|
||||
services.mako = {
|
||||
borderSize = 2;
|
||||
padding = "5";
|
||||
margin = "15";
|
||||
layer = "overlay";
|
||||
options.my.mako.enable = lib.mkEnableOption { };
|
||||
|
||||
font = "${font.interface} ${toString font.size.small}";
|
||||
textColor = color.txt;
|
||||
config = lib.mkIf cfg.enable {
|
||||
services.mako = {
|
||||
enable = true;
|
||||
borderSize = 2;
|
||||
padding = "5";
|
||||
margin = "15";
|
||||
layer = "overlay";
|
||||
|
||||
backgroundColor = color.bg;
|
||||
borderColor = accent.color;
|
||||
progressColor = "over ${accent.color}88";
|
||||
font = "${font.interface} ${toString font.size.small}";
|
||||
textColor = color.txt;
|
||||
|
||||
defaultTimeout = 10000;
|
||||
backgroundColor = color.bg;
|
||||
borderColor = accent.color;
|
||||
progressColor = "over ${accent.color}88";
|
||||
|
||||
extraConfig = ''
|
||||
[app-name=volumesh]
|
||||
default-timeout=5000
|
||||
group-by=app-name
|
||||
format=<b>%s</b>\n%b
|
||||
'';
|
||||
defaultTimeout = 10000;
|
||||
|
||||
# # {{@@ header() @@}}
|
||||
# # text
|
||||
extraConfig = ''
|
||||
[app-name=volumesh]
|
||||
default-timeout=5000
|
||||
group-by=app-name
|
||||
format=<b>%s</b>\n%b
|
||||
'';
|
||||
|
||||
# # features
|
||||
# icons=1
|
||||
# markup=1
|
||||
# actions=1
|
||||
# default-timeout=10000
|
||||
# # {{@@ header() @@}}
|
||||
# # text
|
||||
|
||||
# # position
|
||||
# layer=overlay
|
||||
};
|
||||
systemd.user.services.mako = lib.mkIf (config.services.mako.enable) {
|
||||
Unit = {
|
||||
Description = "Notification daemon";
|
||||
PartOf = [ "graphical-session.target" ];
|
||||
After = [ "graphical-session.target" ];
|
||||
# # features
|
||||
# icons=1
|
||||
# markup=1
|
||||
# actions=1
|
||||
# default-timeout=10000
|
||||
|
||||
# # position
|
||||
# layer=overlay
|
||||
};
|
||||
Service = {
|
||||
ExecStart = "${pkgs.mako}/bin/mako";
|
||||
Restart = "on-failure";
|
||||
};
|
||||
Install = {
|
||||
WantedBy = [ "sway-session.target" ];
|
||||
systemd.user.services.mako = lib.mkIf (config.services.mako.enable) {
|
||||
Unit = {
|
||||
Description = "Notification daemon";
|
||||
PartOf = [ "graphical-session.target" ];
|
||||
After = [ "graphical-session.target" ];
|
||||
};
|
||||
Service = {
|
||||
ExecStart = "${pkgs.mako}/bin/mako";
|
||||
Restart = "on-failure";
|
||||
};
|
||||
Install = {
|
||||
WantedBy = [ "sway-session.target" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -5,18 +5,15 @@
|
|||
...
|
||||
}:
|
||||
let
|
||||
inherit (config.my)
|
||||
key
|
||||
accent
|
||||
font
|
||||
theme
|
||||
;
|
||||
inherit (theme) color;
|
||||
|
||||
asScript = filename: text: toString (pkgs.writeShellScript filename text);
|
||||
|
||||
cfg = config.my.swayidle;
|
||||
in
|
||||
{
|
||||
services.swayidle = {
|
||||
options.my.swayidle.enable = lib.mkEnableOption { };
|
||||
|
||||
config.services.swayidle = {
|
||||
enable = cfg.enable;
|
||||
timeouts = [
|
||||
{
|
||||
timeout = 360;
|
||||
|
|
|
@ -1,20 +1,14 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
{ config, lib, ... }:
|
||||
let
|
||||
inherit (config.my)
|
||||
key
|
||||
accent
|
||||
font
|
||||
theme
|
||||
;
|
||||
inherit (config.my) accent font theme;
|
||||
inherit (theme) color;
|
||||
|
||||
cfg = config.my.swaylock;
|
||||
in
|
||||
{
|
||||
programs.swaylock.settings = {
|
||||
options.my.swaylock.enable = lib.mkEnableOption { };
|
||||
|
||||
config.programs.swaylock.settings = lib.mkIf cfg.enable {
|
||||
image = toString theme.background;
|
||||
font = font.interface;
|
||||
font-size = font.size.medium;
|
||||
|
|
|
@ -14,9 +14,13 @@ let
|
|||
font
|
||||
;
|
||||
inherit (theme) color;
|
||||
|
||||
cfg = config.my.waybar;
|
||||
in
|
||||
{
|
||||
config = {
|
||||
options.my.waybar.enable = lib.mkEnableOption { };
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
programs.waybar = {
|
||||
enable = true;
|
||||
systemd.enable = true;
|
||||
|
|
|
@ -1,10 +1,4 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
font,
|
||||
...
|
||||
}:
|
||||
{ config, lib, ... }:
|
||||
let
|
||||
inherit (config.my)
|
||||
key
|
||||
|
@ -13,56 +7,62 @@ let
|
|||
theme
|
||||
;
|
||||
inherit (theme) color;
|
||||
|
||||
cfg = config.my.zathura;
|
||||
in
|
||||
{
|
||||
config = {
|
||||
programs.zathura.enable = true;
|
||||
programs.zathura.options = {
|
||||
font = "${font.mono} ${toString font.size.small}";
|
||||
guioptions = "s";
|
||||
options.my.zathura.enable = lib.mkEnableOption { };
|
||||
|
||||
selection-clipboard = "clipboard";
|
||||
config = lib.mkIf cfg.enable {
|
||||
programs.zathura = {
|
||||
enable = true;
|
||||
options = {
|
||||
font = "${font.mono} ${toString font.size.small}";
|
||||
guioptions = "s";
|
||||
|
||||
recolor = true;
|
||||
# Turn images grayscale, so they don't look weird
|
||||
recolor-keephue = false;
|
||||
recolor-lightcolor = "rgba(0,0,0,0)";
|
||||
recolor-darkcolor = color.txt;
|
||||
selection-clipboard = "clipboard";
|
||||
|
||||
default-bg = color.bg_dark;
|
||||
recolor = true;
|
||||
# Turn images grayscale, so they don't look weird
|
||||
recolor-keephue = false;
|
||||
recolor-lightcolor = "rgba(0,0,0,0)";
|
||||
recolor-darkcolor = color.txt;
|
||||
|
||||
inputbar-bg = color.bg_dark;
|
||||
inputbar-fg = color.txt;
|
||||
default-bg = color.bg_dark;
|
||||
|
||||
statusbar-bg = color.bg;
|
||||
statusbar-fg = color.txt;
|
||||
inputbar-bg = color.bg_dark;
|
||||
inputbar-fg = color.txt;
|
||||
|
||||
completion-bg = color.bg;
|
||||
completion-fg = color.txt;
|
||||
statusbar-bg = color.bg;
|
||||
statusbar-fg = color.txt;
|
||||
|
||||
completion-group-bg = color.bg_dark;
|
||||
completion-group-fg = color.txt;
|
||||
completion-bg = color.bg;
|
||||
completion-fg = color.txt;
|
||||
|
||||
completion-highlight-bg = accent.color;
|
||||
completion-highlight-fg = accent.fg;
|
||||
completion-group-bg = color.bg_dark;
|
||||
completion-group-fg = color.txt;
|
||||
|
||||
index-active-bg = accent.color;
|
||||
index-active-fg = accent.fg;
|
||||
};
|
||||
programs.zathura.mappings = {
|
||||
"<C-b>" = "toggle_statusbar";
|
||||
${key.left} = "scroll left";
|
||||
${key.down} = "scroll down";
|
||||
${key.up} = "scroll up";
|
||||
${key.right} = "scroll right";
|
||||
"[index] ${key.left}" = "navigate_index collapse";
|
||||
"[index] ${key.down}" = "navigate_index down";
|
||||
"[index] ${key.up}" = "navigate_index up";
|
||||
"[index] ${key.right}" = "navigate_index expand";
|
||||
${lib.toUpper key.down} = "navigate next";
|
||||
${lib.toUpper key.up} = "navigate previous";
|
||||
${key.next} = "search forward";
|
||||
${lib.toUpper key.next} = "search backward";
|
||||
completion-highlight-bg = accent.color;
|
||||
completion-highlight-fg = accent.fg;
|
||||
|
||||
index-active-bg = accent.color;
|
||||
index-active-fg = accent.fg;
|
||||
};
|
||||
mappings = {
|
||||
"<C-b>" = "toggle_statusbar";
|
||||
${key.left} = "scroll left";
|
||||
${key.down} = "scroll down";
|
||||
${key.up} = "scroll up";
|
||||
${key.right} = "scroll right";
|
||||
"[index] ${key.left}" = "navigate_index collapse";
|
||||
"[index] ${key.down}" = "navigate_index down";
|
||||
"[index] ${key.up}" = "navigate_index up";
|
||||
"[index] ${key.right}" = "navigate_index expand";
|
||||
${lib.toUpper key.down} = "navigate next";
|
||||
${lib.toUpper key.up} = "navigate previous";
|
||||
${key.next} = "search forward";
|
||||
${lib.toUpper key.next} = "search backward";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue