Compare commits
5 commits
cf5e56ebaa
...
80844cfbaa
Author | SHA1 | Date | |
---|---|---|---|
|
80844cfbaa | ||
|
e1f72da565 | ||
|
696609716b | ||
|
ff496b7ee5 | ||
|
294f1837d5 |
36
flake.lock
36
flake.lock
|
@ -209,11 +209,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1739841949,
|
"lastModified": 1740485968,
|
||||||
"narHash": "sha256-lSOXdgW/1zi/SSu7xp71v+55D5Egz8ACv0STkj7fhbs=",
|
"narHash": "sha256-WK+PZHbfDjLyveXAxpnrfagiFgZWaTJglewBWniTn2Y=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "disko",
|
"repo": "disko",
|
||||||
"rev": "15dbf8cebd8e2655a883b74547108e089f051bf0",
|
"rev": "19c1140419c4f1cdf88ad4c1cfb6605597628940",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -481,11 +481,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1739676768,
|
"lastModified": 1740281615,
|
||||||
"narHash": "sha256-U1HQ7nzhJyVVXUgjU028UCkbLQLEIkg42+G7iIiBmlU=",
|
"narHash": "sha256-dZWcbAQ1sF8oVv+zjSKkPVY0ebwENQEkz5vc6muXbKY=",
|
||||||
"owner": "Mic92",
|
"owner": "Mic92",
|
||||||
"repo": "nix-index-database",
|
"repo": "nix-index-database",
|
||||||
"rev": "ae15068e79e22b76c344f0d7f8aed1bb1c5b0b63",
|
"rev": "465792533d03e6bb9dc849d58ab9d5e31fac9023",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -504,11 +504,11 @@
|
||||||
"nixpkgs-24_11": "nixpkgs-24_11"
|
"nixpkgs-24_11": "nixpkgs-24_11"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1739121270,
|
"lastModified": 1740437053,
|
||||||
"narHash": "sha256-EmJhpy9U8sVlepl2QPjG019VfG67HcucsQNItTqW6cA=",
|
"narHash": "sha256-exPTta4qI1ka9sk+jPcLogGffJ1OVXnAsTRqpeAXeNw=",
|
||||||
"owner": "simple-nixos-mailserver",
|
"owner": "simple-nixos-mailserver",
|
||||||
"repo": "nixos-mailserver",
|
"repo": "nixos-mailserver",
|
||||||
"rev": "8c1c4640b878c692dd3d8055e8cdea0a2bbd8cf3",
|
"rev": "c8ec4d5e432f5df4838eacd39c11828d23ce66ec",
|
||||||
"type": "gitlab"
|
"type": "gitlab"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -551,11 +551,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs-unstable": {
|
"nixpkgs-unstable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1739736696,
|
"lastModified": 1740367490,
|
||||||
"narHash": "sha256-zON2GNBkzsIyALlOCFiEBcIjI4w38GYOb+P+R4S8Jsw=",
|
"narHash": "sha256-WGaHVAjcrv+Cun7zPlI41SerRtfknGQap281+AakSAw=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "d74a2335ac9c133d6bbec9fc98d91a77f1604c1f",
|
"rev": "0196c0175e9191c474c26ab5548db27ef5d34b05",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -612,11 +612,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs_5": {
|
"nixpkgs_5": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1739758141,
|
"lastModified": 1740339700,
|
||||||
"narHash": "sha256-uq6A2L7o1/tR6VfmYhZWoVAwb3gTy7j4Jx30MIrH0rE=",
|
"narHash": "sha256-cbrw7EgQhcdFnu6iS3vane53bEagZQy/xyIkDWpCgVE=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "c618e28f70257593de75a7044438efc1c1fc0791",
|
"rev": "04ef94c4c1582fd485bbfdb8c4a8ba250e359195",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -937,11 +937,11 @@
|
||||||
},
|
},
|
||||||
"vpsadminos": {
|
"vpsadminos": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1739153939,
|
"lastModified": 1740082937,
|
||||||
"narHash": "sha256-7z+4SMs1uD/mCruBasPeWeq1DGzzgACRHOSdLE+mHRk=",
|
"narHash": "sha256-HcTWGIzG2leM0gZabg9lkY7iLwvAe49lqXEzez/Rp/s=",
|
||||||
"owner": "vpsfreecz",
|
"owner": "vpsfreecz",
|
||||||
"repo": "vpsadminos",
|
"repo": "vpsadminos",
|
||||||
"rev": "939254840fcd72bdd3cd52186171815c3f25403b",
|
"rev": "521427c69173bc443de940ba88d4f58d5fa8d8e2",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
12
flake.nix
12
flake.nix
|
@ -102,10 +102,17 @@
|
||||||
inputs.agenix.nixosModules.default
|
inputs.agenix.nixosModules.default
|
||||||
inputs.home-manager.nixosModules.home-manager
|
inputs.home-manager.nixosModules.home-manager
|
||||||
inputs.disko.nixosModules.disko
|
inputs.disko.nixosModules.disko
|
||||||
|
(
|
||||||
|
{ config, ... }:
|
||||||
{
|
{
|
||||||
home-manager.useGlobalPkgs = true;
|
home-manager.useGlobalPkgs = true;
|
||||||
home-manager.useUserPackages = true;
|
home-manager.useUserPackages = true;
|
||||||
home-manager.users.lelgenio = import ./user/home.nix;
|
home-manager.users.lelgenio = {
|
||||||
|
my = config.my;
|
||||||
|
imports = [
|
||||||
|
./user/home.nix
|
||||||
|
];
|
||||||
|
};
|
||||||
home-manager.backupFileExtension = "bkp";
|
home-manager.backupFileExtension = "bkp";
|
||||||
# Optionally, use home-manager.extraSpecialArgs to pass
|
# Optionally, use home-manager.extraSpecialArgs to pass
|
||||||
# arguments to home.nix
|
# arguments to home.nix
|
||||||
|
@ -113,6 +120,7 @@
|
||||||
inherit inputs;
|
inherit inputs;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
)
|
||||||
]
|
]
|
||||||
++ lib.optional (desktop == "gnome") ./system/gnome.nix
|
++ lib.optional (desktop == "gnome") ./system/gnome.nix
|
||||||
++ lib.optional (desktop == "kde") ./system/kde.nix;
|
++ lib.optional (desktop == "kde") ./system/kde.nix;
|
||||||
|
@ -133,7 +141,6 @@
|
||||||
./system/monolith-gitlab-runner.nix
|
./system/monolith-gitlab-runner.nix
|
||||||
./system/monolith-forgejo-runner.nix
|
./system/monolith-forgejo-runner.nix
|
||||||
./system/nix-serve.nix
|
./system/nix-serve.nix
|
||||||
./system/steam.nix
|
|
||||||
] ++ common_modules;
|
] ++ common_modules;
|
||||||
};
|
};
|
||||||
double-rainbow = lib.nixosSystem {
|
double-rainbow = lib.nixosSystem {
|
||||||
|
@ -151,7 +158,6 @@
|
||||||
++ [
|
++ [
|
||||||
{
|
{
|
||||||
packages.media-packages.enable = lib.mkOverride 0 false;
|
packages.media-packages.enable = lib.mkOverride 0 false;
|
||||||
programs.steam.enable = lib.mkOverride 0 false;
|
|
||||||
services.flatpak.enable = lib.mkOverride 0 false;
|
services.flatpak.enable = lib.mkOverride 0 false;
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ pkgs, ... }:
|
{ pkgs, lib, ... }:
|
||||||
let
|
let
|
||||||
undervoltGpu = pkgs.writeShellScript "undervolt-gpu" ''
|
undervoltGpu = pkgs.writeShellScript "undervolt-gpu" ''
|
||||||
set -xe
|
set -xe
|
||||||
|
@ -17,6 +17,17 @@ in
|
||||||
"amdgpu.ppfeaturemask=0xfffd7fff" # enable undervolting
|
"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.enable32Bit = true;
|
||||||
|
|
||||||
hardware.graphics.extraPackages = with pkgs; [
|
hardware.graphics.extraPackages = with pkgs; [
|
||||||
|
|
|
@ -41,6 +41,8 @@ in
|
||||||
package = pkgs.unstable.opentabletdriver;
|
package = pkgs.unstable.opentabletdriver;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
my.gaming.enable = true;
|
||||||
|
|
||||||
boot.extraModulePackages = with config.boot.kernelPackages; [ zenpower ];
|
boot.extraModulePackages = with config.boot.kernelPackages; [ zenpower ];
|
||||||
|
|
||||||
boot.initrd.kernelModules = [ "amdgpu" ];
|
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
|
in
|
||||||
with final;
|
with final;
|
||||||
createScripts {
|
createScripts {
|
||||||
|
amd-fan-control = [ bash ];
|
||||||
br = [ ];
|
br = [ ];
|
||||||
bmenu = [
|
bmenu = [
|
||||||
bemenu
|
bemenu
|
||||||
|
@ -136,7 +137,6 @@
|
||||||
libinput
|
libinput
|
||||||
libratbag
|
libratbag
|
||||||
];
|
];
|
||||||
vrr-fullscreen = [ ];
|
|
||||||
controller-battery = [ ];
|
controller-battery = [ ];
|
||||||
_docker-block-external-connections = [
|
_docker-block-external-connections = [
|
||||||
iptables
|
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
|
|
|
@ -1,6 +1,18 @@
|
||||||
{ lib, ... }:
|
{ lib, ... }:
|
||||||
{
|
{
|
||||||
options = {
|
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,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
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
|
# Edit this configuration file to define what should be installed on
|
||||||
# your system. Help is available in the configuration.nix(5) man page
|
# your system. Help is available in the configuration.nix(5) man page
|
||||||
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
||||||
{
|
{ pkgs, ... }:
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
inputs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./gamemode.nix
|
./android.nix
|
||||||
./cachix.nix
|
./gaming.nix
|
||||||
./media-packages.nix
|
./media-packages.nix
|
||||||
./boot.nix
|
./boot.nix
|
||||||
./thunar.nix
|
./thunar.nix
|
||||||
|
@ -26,39 +21,27 @@
|
||||||
../settings
|
../settings
|
||||||
];
|
];
|
||||||
|
|
||||||
my = import ../user/variables.nix;
|
my = import ../user/variables.nix // {
|
||||||
|
android.enable = true;
|
||||||
|
media-packages.enable = true;
|
||||||
|
containers.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
zramSwap.enable = true;
|
zramSwap.enable = true;
|
||||||
|
|
||||||
programs.adb.enable = true;
|
|
||||||
services.udev.packages = [ pkgs.android-udev-rules ];
|
|
||||||
|
|
||||||
# Enable touchpad support (enabled default in most desktopManager).
|
# Enable touchpad support (enabled default in most desktopManager).
|
||||||
services.libinput.enable = true;
|
services.libinput.enable = true;
|
||||||
|
|
||||||
packages.media-packages.enable = true;
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
pavucontrol
|
pavucontrol
|
||||||
|
|
||||||
glib # gsettings
|
glib # gsettings
|
||||||
usbutils
|
usbutils
|
||||||
# dracula-theme # gtk theme
|
|
||||||
adwaita-icon-theme # default gnome cursors
|
adwaita-icon-theme # default gnome cursors
|
||||||
|
|
||||||
nix-output-monitor
|
|
||||||
];
|
];
|
||||||
|
|
||||||
services.geoclue2.enable = true;
|
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 = ''
|
systemd.extraConfig = ''
|
||||||
DefaultTimeoutStopSec=10s
|
DefaultTimeoutStopSec=10s
|
||||||
'';
|
'';
|
||||||
|
|
|
@ -1,5 +1,13 @@
|
||||||
{ pkgs, lib, ... }:
|
|
||||||
{
|
{
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
options.my.containers.enable = lib.mkEnableOption { };
|
||||||
|
|
||||||
|
config = lib.mkIf config.my.containers.enable {
|
||||||
services.flatpak.enable = true;
|
services.flatpak.enable = true;
|
||||||
|
|
||||||
virtualisation.docker = {
|
virtualisation.docker = {
|
||||||
|
@ -27,4 +35,5 @@
|
||||||
programs.extra-container.enable = true;
|
programs.extra-container.enable = true;
|
||||||
|
|
||||||
programs.firejail.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
|
let
|
||||||
cfg = config.packages.media-packages;
|
cfg = config.my.media-packages;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.packages.media-packages = {
|
options.my.media-packages = {
|
||||||
enable = lib.mkEnableOption "media packages";
|
enable = lib.mkEnableOption "media packages";
|
||||||
};
|
};
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
|
|
|
@ -6,8 +6,6 @@
|
||||||
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
|
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
|
||||||
# Enable networking
|
# Enable networking
|
||||||
networking.networkmanager.enable = true;
|
networking.networkmanager.enable = true;
|
||||||
# Open kde connect ports
|
|
||||||
programs.kdeconnect.enable = true;
|
|
||||||
|
|
||||||
networking.firewall = {
|
networking.firewall = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
@ -15,7 +13,7 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
# Enable CUPS to print documents.
|
# Enable CUPS to print documents.
|
||||||
# services.printing.enable = true;
|
services.printing.enable = true;
|
||||||
|
|
||||||
security.rtkit.enable = true;
|
security.rtkit.enable = true;
|
||||||
services.openssh = {
|
services.openssh = {
|
||||||
|
@ -27,4 +25,13 @@
|
||||||
KbdInteractiveAuthentication = false;
|
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,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
|
let
|
||||||
inherit (config.my) accent editor desktop;
|
inherit (config.my) accent editor desktop;
|
||||||
|
cfg = config.my.fish;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
config = {
|
options.my.fish.enable = lib.mkEnableOption { };
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
programs.fish = {
|
programs.fish = {
|
||||||
enable = true;
|
enable = true;
|
||||||
shellInit = ''
|
shellInit = ''
|
||||||
|
|
|
@ -2,16 +2,10 @@
|
||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
lib,
|
||||||
inputs,
|
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
inherit (config.my)
|
inherit (config.my) theme accent;
|
||||||
key
|
|
||||||
theme
|
|
||||||
accent
|
|
||||||
font
|
|
||||||
;
|
|
||||||
inherit (theme) color;
|
inherit (theme) color;
|
||||||
|
|
||||||
colors = {
|
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
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
|
@ -7,9 +7,13 @@
|
||||||
let
|
let
|
||||||
inherit (config.my) accent theme editor;
|
inherit (config.my) accent theme editor;
|
||||||
inherit (theme) color;
|
inherit (theme) color;
|
||||||
|
|
||||||
|
cfg = config.my.helix;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
config = {
|
options.my.helix.enable = lib.mkEnableOption "Enable helix config";
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
programs.helix = {
|
programs.helix = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
|
|
|
@ -8,6 +8,7 @@
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
|
./dummy.nix
|
||||||
./waybar
|
./waybar
|
||||||
./helix.nix
|
./helix.nix
|
||||||
./kakoune
|
./kakoune
|
||||||
|
@ -21,6 +22,7 @@
|
||||||
./rofi.nix
|
./rofi.nix
|
||||||
./mpv.nix
|
./mpv.nix
|
||||||
./mangohud.nix
|
./mangohud.nix
|
||||||
|
./gaming.nix
|
||||||
./pipewire.nix
|
./pipewire.nix
|
||||||
./mimeapps.nix
|
./mimeapps.nix
|
||||||
./desktop-entries.nix
|
./desktop-entries.nix
|
||||||
|
@ -44,7 +46,11 @@
|
||||||
./powerplay-led-idle.nix
|
./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
|
# Home Manager needs a bit of information about you and the
|
||||||
# paths it should manage.
|
# paths it should manage.
|
||||||
|
@ -91,14 +97,6 @@
|
||||||
mate.engrampa
|
mate.engrampa
|
||||||
# gnome.nautilus
|
# gnome.nautilus
|
||||||
|
|
||||||
## games
|
|
||||||
# lutris-unwrapped
|
|
||||||
# steam # It's enabled in the system config
|
|
||||||
tlauncher
|
|
||||||
gamescope
|
|
||||||
glxinfo
|
|
||||||
vulkan-tools
|
|
||||||
|
|
||||||
## Theming
|
## Theming
|
||||||
orchis_theme_compact
|
orchis_theme_compact
|
||||||
papirus_red
|
papirus_red
|
||||||
|
@ -130,6 +128,8 @@
|
||||||
|
|
||||||
unstable.blade-formatter
|
unstable.blade-formatter
|
||||||
nixfmt-rfc-style
|
nixfmt-rfc-style
|
||||||
|
|
||||||
|
nix-output-monitor
|
||||||
];
|
];
|
||||||
|
|
||||||
fonts.fontconfig.enable = true;
|
fonts.fontconfig.enable = true;
|
||||||
|
|
|
@ -1,22 +1,11 @@
|
||||||
{
|
{ config, lib, ... }:
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
font,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
let
|
||||||
inherit (config.my)
|
cfg = config.my.mangohud;
|
||||||
key
|
|
||||||
theme
|
|
||||||
color
|
|
||||||
accent
|
|
||||||
font
|
|
||||||
;
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
config = {
|
options.my.mangohud.enable = lib.mkEnableOption { };
|
||||||
programs.mangohud = {
|
|
||||||
|
config.programs.mangohud = lib.mkIf cfg.enable {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableSessionWide = true;
|
enableSessionWide = true;
|
||||||
settings = {
|
settings = {
|
||||||
|
@ -76,5 +65,4 @@ in
|
||||||
# output_folder = "/home/lelgenio";
|
# output_folder = "/home/lelgenio";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,8 +4,13 @@
|
||||||
config,
|
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 = {
|
services.mpd = {
|
||||||
enable = true;
|
enable = true;
|
||||||
musicDirectory = config.home.homeDirectory + "/Música";
|
musicDirectory = config.home.homeDirectory + "/Música";
|
||||||
|
|
|
@ -2,11 +2,15 @@
|
||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
lib,
|
||||||
inputs,
|
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
let
|
||||||
|
cfg = config.my.pass;
|
||||||
|
in
|
||||||
{
|
{
|
||||||
config = {
|
options.my.pass.enable = lib.mkEnableOption { };
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
programs.password-store = {
|
programs.password-store = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.pass.withExtensions (
|
package = pkgs.pass.withExtensions (
|
||||||
|
|
|
@ -5,13 +5,10 @@
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
inherit (config.my)
|
inherit (config.my) accent font theme;
|
||||||
key
|
|
||||||
accent
|
|
||||||
font
|
|
||||||
theme
|
|
||||||
;
|
|
||||||
inherit (theme) color;
|
inherit (theme) color;
|
||||||
|
|
||||||
|
cfg = config.my.sway;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
|
@ -24,10 +21,17 @@ in
|
||||||
./swaylock.nix
|
./swaylock.nix
|
||||||
./theme.nix
|
./theme.nix
|
||||||
];
|
];
|
||||||
config = lib.mkIf (config.my.desktop == "sway") {
|
|
||||||
services.mako.enable = true;
|
options.my.sway.enable = lib.mkEnableOption { };
|
||||||
services.swayidle.enable = true;
|
|
||||||
services.kanshi.enable = true;
|
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 = {
|
wayland.windowManager.sway = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
@ -36,7 +40,7 @@ in
|
||||||
bars = [ ];
|
bars = [ ];
|
||||||
|
|
||||||
floating.modifier = "Mod4";
|
floating.modifier = "Mod4";
|
||||||
terminal = pkgs.alacritty.executable;
|
terminal = lib.getExe pkgs.alacritty;
|
||||||
|
|
||||||
window.titlebar = false;
|
window.titlebar = false;
|
||||||
gaps = {
|
gaps = {
|
||||||
|
@ -69,7 +73,7 @@ in
|
||||||
};
|
};
|
||||||
output = {
|
output = {
|
||||||
"*" = {
|
"*" = {
|
||||||
adaptive_sync = "off";
|
adaptive_sync = "on";
|
||||||
bg = "${theme.background} fill";
|
bg = "${theme.background} fill";
|
||||||
mode = "1920x1080@144.000Hz";
|
mode = "1920x1080@144.000Hz";
|
||||||
};
|
};
|
||||||
|
@ -122,21 +126,6 @@ in
|
||||||
indicator = true;
|
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;
|
services.gpg-agent.pinentryPackage = pkgs.pinentry-all;
|
||||||
|
|
||||||
xdg.configFile."OpenTabletDriver/settings.json".source = ./open-tablet-driver.json;
|
xdg.configFile."OpenTabletDriver/settings.json".source = ./open-tablet-driver.json;
|
||||||
|
@ -147,7 +136,6 @@ in
|
||||||
swaylock
|
swaylock
|
||||||
wdisplays
|
wdisplays
|
||||||
|
|
||||||
waybar
|
|
||||||
dhist
|
dhist
|
||||||
demoji
|
demoji
|
||||||
bmenu
|
bmenu
|
||||||
|
|
|
@ -1,20 +1,12 @@
|
||||||
{
|
{ config, lib, ... }:
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
let
|
||||||
inherit (config.my)
|
cfg = config.my.kanshi;
|
||||||
key
|
|
||||||
accent
|
|
||||||
font
|
|
||||||
theme
|
|
||||||
;
|
|
||||||
inherit (theme) color;
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
services.kanshi = {
|
options.my.kanshi.enable = lib.mkEnableOption { };
|
||||||
|
|
||||||
|
config.services.kanshi = lib.mkIf cfg.enable {
|
||||||
|
enable = true;
|
||||||
settings = [
|
settings = [
|
||||||
{
|
{
|
||||||
profile = {
|
profile = {
|
||||||
|
|
|
@ -6,15 +6,20 @@
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
inherit (config.my)
|
inherit (config.my)
|
||||||
key
|
|
||||||
accent
|
accent
|
||||||
font
|
font
|
||||||
theme
|
theme
|
||||||
;
|
;
|
||||||
inherit (theme) color;
|
inherit (theme) color;
|
||||||
|
|
||||||
|
cfg = config.my.mako;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
options.my.mako.enable = lib.mkEnableOption { };
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
services.mako = {
|
services.mako = {
|
||||||
|
enable = true;
|
||||||
borderSize = 2;
|
borderSize = 2;
|
||||||
padding = "5";
|
padding = "5";
|
||||||
margin = "15";
|
margin = "15";
|
||||||
|
@ -62,4 +67,5 @@ in
|
||||||
WantedBy = [ "sway-session.target" ];
|
WantedBy = [ "sway-session.target" ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,18 +5,15 @@
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
inherit (config.my)
|
|
||||||
key
|
|
||||||
accent
|
|
||||||
font
|
|
||||||
theme
|
|
||||||
;
|
|
||||||
inherit (theme) color;
|
|
||||||
|
|
||||||
asScript = filename: text: toString (pkgs.writeShellScript filename text);
|
asScript = filename: text: toString (pkgs.writeShellScript filename text);
|
||||||
|
|
||||||
|
cfg = config.my.swayidle;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
services.swayidle = {
|
options.my.swayidle.enable = lib.mkEnableOption { };
|
||||||
|
|
||||||
|
config.services.swayidle = {
|
||||||
|
enable = cfg.enable;
|
||||||
timeouts = [
|
timeouts = [
|
||||||
{
|
{
|
||||||
timeout = 360;
|
timeout = 360;
|
||||||
|
|
|
@ -1,20 +1,14 @@
|
||||||
{
|
{ config, lib, ... }:
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
let
|
||||||
inherit (config.my)
|
inherit (config.my) accent font theme;
|
||||||
key
|
|
||||||
accent
|
|
||||||
font
|
|
||||||
theme
|
|
||||||
;
|
|
||||||
inherit (theme) color;
|
inherit (theme) color;
|
||||||
|
|
||||||
|
cfg = config.my.swaylock;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
programs.swaylock.settings = {
|
options.my.swaylock.enable = lib.mkEnableOption { };
|
||||||
|
|
||||||
|
config.programs.swaylock.settings = lib.mkIf cfg.enable {
|
||||||
image = toString theme.background;
|
image = toString theme.background;
|
||||||
font = font.interface;
|
font = font.interface;
|
||||||
font-size = font.size.medium;
|
font-size = font.size.medium;
|
||||||
|
|
|
@ -14,9 +14,13 @@ let
|
||||||
font
|
font
|
||||||
;
|
;
|
||||||
inherit (theme) color;
|
inherit (theme) color;
|
||||||
|
|
||||||
|
cfg = config.my.waybar;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
config = {
|
options.my.waybar.enable = lib.mkEnableOption { };
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
programs.waybar = {
|
programs.waybar = {
|
||||||
enable = true;
|
enable = true;
|
||||||
systemd.enable = true;
|
systemd.enable = true;
|
||||||
|
|
|
@ -1,10 +1,4 @@
|
||||||
{
|
{ config, lib, ... }:
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
font,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
let
|
||||||
inherit (config.my)
|
inherit (config.my)
|
||||||
key
|
key
|
||||||
|
@ -13,11 +7,16 @@ let
|
||||||
theme
|
theme
|
||||||
;
|
;
|
||||||
inherit (theme) color;
|
inherit (theme) color;
|
||||||
|
|
||||||
|
cfg = config.my.zathura;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
config = {
|
options.my.zathura.enable = lib.mkEnableOption { };
|
||||||
programs.zathura.enable = true;
|
|
||||||
programs.zathura.options = {
|
config = lib.mkIf cfg.enable {
|
||||||
|
programs.zathura = {
|
||||||
|
enable = true;
|
||||||
|
options = {
|
||||||
font = "${font.mono} ${toString font.size.small}";
|
font = "${font.mono} ${toString font.size.small}";
|
||||||
guioptions = "s";
|
guioptions = "s";
|
||||||
|
|
||||||
|
@ -49,7 +48,7 @@ in
|
||||||
index-active-bg = accent.color;
|
index-active-bg = accent.color;
|
||||||
index-active-fg = accent.fg;
|
index-active-fg = accent.fg;
|
||||||
};
|
};
|
||||||
programs.zathura.mappings = {
|
mappings = {
|
||||||
"<C-b>" = "toggle_statusbar";
|
"<C-b>" = "toggle_statusbar";
|
||||||
${key.left} = "scroll left";
|
${key.left} = "scroll left";
|
||||||
${key.down} = "scroll down";
|
${key.down} = "scroll down";
|
||||||
|
@ -65,4 +64,5 @@ in
|
||||||
${lib.toUpper key.next} = "search backward";
|
${lib.toUpper key.next} = "search backward";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue