summaryrefslogtreecommitdiff
path: root/nix_archive/nix
diff options
context:
space:
mode:
Diffstat (limited to 'nix_archive/nix')
-rw-r--r--nix_archive/nix/amdgpu.nix51
-rw-r--r--nix_archive/nix/audio.nix113
-rw-r--r--nix_archive/nix/bluetooth.nix16
-rw-r--r--nix_archive/nix/email.nix158
-rw-r--r--nix_archive/nix/gaming.nix110
-rw-r--r--nix_archive/nix/intel.nix15
-rw-r--r--nix_archive/nix/mesa_git.nix16
-rw-r--r--nix_archive/nix/programs/bash.nix65
-rw-r--r--nix_archive/nix/programs/docker.nix4
-rw-r--r--nix_archive/nix/programs/firefox.nix145
-rw-r--r--nix_archive/nix/programs/foot.nix51
-rw-r--r--nix_archive/nix/programs/kdeconnect.nix12
-rw-r--r--nix_archive/nix/programs/kitty.nix112
-rw-r--r--nix_archive/nix/programs/nvim.nix235
-rw-r--r--nix_archive/nix/programs/obs.nix11
-rw-r--r--nix_archive/nix/programs/sunshine.nix29
-rw-r--r--nix_archive/nix/programs/sway.nix360
-rw-r--r--nix_archive/nix/programs/waydroid.nix3
-rw-r--r--nix_archive/nix/programs/zsh.nix76
-rw-r--r--nix_archive/nix/scripts.nix28
-rw-r--r--nix_archive/nix/settings.nix8
-rw-r--r--nix_archive/nix/steam.nix48
-rw-r--r--nix_archive/nix/system.nix134
-rw-r--r--nix_archive/nix/user.nix211
-rw-r--r--nix_archive/nix/virtualisation.nix15
-rw-r--r--nix_archive/nix/x86.nix3
26 files changed, 2029 insertions, 0 deletions
diff --git a/nix_archive/nix/amdgpu.nix b/nix_archive/nix/amdgpu.nix
new file mode 100644
index 0000000..3d28b1d
--- /dev/null
+++ b/nix_archive/nix/amdgpu.nix
@@ -0,0 +1,51 @@
+{ pkgs, ... }: {
+ boot.kernelParams = [ "amdgpu.ppfeaturemask=0xffffffff" ];
+ environment.sessionVariables = with pkgs; {
+ VDPAU_DRIVER = "radeonsi";
+ LIBVA_DRIVER_NAME = "radeonsi";
+ AMD_VULKAN_ICD = "RADV";
+ VK_ICD_FILENAMES="${pkgsi686Linux.mesa}/share/vulkan/icd.d/radeon_icd.i686.json:${mesa}/share/vulkan/icd.d/radeon_icd.x86_64.json";
+ __EGL_VENDOR_LIBRARY_FILENAMES="${pkgsi686Linux.mesa}/share/glvnd/egl_vendor.d/50_mesa.json:${mesa}/share/glvnd/egl_vendor.d/50_mesa.json";
+ };
+ environment.systemPackages = with pkgs; [
+ radeontop
+ (writeShellScriptBin "proton-env-amdvlk" ''
+ export AMD_VULKAN_ICD="AMDVLK"
+ export VK_ICD_FILENAMES="${amdvlk}/share/vulkan/icd.d/amd_icd64.json"
+ proton-env "$@"
+ '')
+ ];
+ security.wrappers = {
+ radeontop = {
+ owner = "root";
+ group = "root";
+ source = "${pkgs.radeontop}/bin/radeontop";
+ capabilities = "cap_perfmon+ep";
+ };
+ };
+ # https://github.com/sibradzic/amdgpu-clocks
+ # @TODO: Fetch and patch scripts from the git repo.
+ #environment.etc = { # XFX RX 6600
+ # "default/amdgpu-custom-states.card0".text = ''
+ # OD_VDDGFX_OFFSET:
+ # -55mV
+ # FORCE_POWER_CAP: 120000000
+ # FORCE_PERF_LEVEL: auto
+ # FORCE_POWER_PROFILE: 1
+ # '';
+ #};
+ #environment.systemPackages = [ amdgpu-clocks pkgs.radeontop ];
+ #systemd.services.amdgpu-clocks = {
+ # description = "Set custom amdgpu clocks & voltages";
+ # after = [ "multi-user.target" "rc-local.service" "systemd-user-sessions.service" ];
+ # wants = [ "modprobe@amdgpu.service" ];
+ # wantedBy = [ "multi-user.target" ];
+ # serviceConfig = {
+ # Type = "oneshot";
+ # ExecStart = "${amdgpu-clocks}/bin/amdgpu-clocks";
+ # ExecStop = "${amdgpu-clocks}/bin/amdgpu-clocks restore";
+ # ExecReload = "${amdgpu-clocks}/bin/amdgpu-clocks";
+ # RemainAfterExit = true;
+ # };
+ #};
+}
diff --git a/nix_archive/nix/audio.nix b/nix_archive/nix/audio.nix
new file mode 100644
index 0000000..adac55b
--- /dev/null
+++ b/nix_archive/nix/audio.nix
@@ -0,0 +1,113 @@
+{ pkgs, ... }: {
+ #hardware.pulseaudio = {
+ # enable = true;
+ # support32Bit = true;
+ #};
+ #nixpkgs.config.pulseaudio = true;
+ services.pipewire = {
+ enable = true;
+ pulse.enable = true;
+ alsa.enable = true;
+ alsa.support32Bit = true;
+ extraConfig = {
+ # cat /proc/asound/card1/stream0
+ pipewire = {
+ "92-user" = {
+ "context.properties" = {
+ "default.clock.rate" = 48000;
+ "default.clock.allowed-rates" = [ 44100 48000 88200 96000 176400 192000 352800 384000 ];
+ "default.clock.quantum" = 512;
+ "default.clock.min-quantum" = 32;
+ "default.clock.max-quantum" = 4096;
+ "default.clock.quantum-limit" = 4096;
+ "default.video.width" = 640;
+ "default.video.height" = 480;
+ "default.video.rate.num" = 25;
+ "default.video.rate.denom" = 1;
+ };
+ "context.modules" = [{
+ "name" = "libpipewire-module-filter-chain";
+ "args" = {
+ "node.description" = "Focal Elegia EQ (Convolver)";
+ "media.name" = "Focal Elegia EQ (Convolver)";
+ "filter.graph" = {
+ "nodes" = [{
+ "type" = "builtin";
+ "name" = "Convolver EQ";
+ "label" = "convolver";
+ "config" = {
+ "filename" = [
+ "/etc/convolver/Focal_Elegia_minimum_phase_44100Hz.wav"
+ "/etc/convolver/Focal_Elegia_minimum_phase_48000Hz.wav"
+ ];
+ "resample_quality" = 10;
+ };
+ }];
+ };
+ "capture.props" = {
+ "node.name" = "eq_input.elegia_convolver_eq";
+ "media.class" = "Audio/Sink";
+ "audio.channels" = 2;
+ "audio.position" = [ "FL" "FR" ];
+ };
+ "playback.props" = {
+ "node.name" = "eq_output.elegia_convolver_eq";
+ "node.passive" = true;
+ "audio.channels" = 2;
+ "audio.position" = [ "FL" "FR" ];
+ };
+ };
+ }];
+ "stream.properties" = {
+ "resample.quality" = 10;
+ "channelmix.normalize" = false;
+ };
+ };
+ };
+ client = {
+ "92-client-user" = {
+ "stream.properties" = {
+ "resample.quality" = 10;
+ "channelmix.normalize" = false;
+ };
+ };
+ };
+ pipewire-pulse = {
+ "92-pulse-user" = {
+ "pulse.properties" = {
+ "pulse.default.format" = "S32";
+ "pulse.default.position" = [ "FL" "FR" ];
+ };
+ "stream.properties" = {
+ "resample.quality" = 10;
+ "channelmix.normalize" = false;
+ };
+ };
+ };
+ };
+ wireplumber = {
+ enable = true;
+ extraConfig = {
+ "alsa-conf" = {
+ "monitor.alsa.properties" = {
+ "alsa.use-acp" = true;
+ };
+ "wireplumber.profiles" = {
+ "main" = {
+ "monitor.alsa.reserve-device" = "disabled";
+ };
+ };
+ };
+ };
+ };
+ };
+ environment.systemPackages = with pkgs; [
+ pipewire
+ pavucontrol
+ ];
+ environment.etc = {
+ "convolver/Focal_Elegia_minimum_phase_44100Hz.wav".source = ../../files/audio/convolver/Focal_Elegia_minimum_phase_44100Hz.wav;
+ "convolver/Focal_Elegia_minimum_phase_48000Hz.wav".source = ../../files/audio/convolver/Focal_Elegia_minimum_phase_48000Hz.wav;
+ };
+ security.rtkit.enable = true;
+}
diff --git a/nix_archive/nix/bluetooth.nix b/nix_archive/nix/bluetooth.nix
new file mode 100644
index 0000000..18b9a42
--- /dev/null
+++ b/nix_archive/nix/bluetooth.nix
@@ -0,0 +1,16 @@
+{ ... }: {
+ hardware.bluetooth = {
+ enable = true;
+ powerOnBoot = true;
+ settings = {
+ General = {
+ ControllerMode = "dual";
+ };
+ LE = {
+ MinConnectionInterval = 7;
+ MaxConnectionInterval = 9;
+ ConnectionLatency = 0;
+ };
+ };
+ };
+}
diff --git a/nix_archive/nix/email.nix b/nix_archive/nix/email.nix
new file mode 100644
index 0000000..8320d88
--- /dev/null
+++ b/nix_archive/nix/email.nix
@@ -0,0 +1,158 @@
+{ config, pkgs, ... }: {
+ environment.systemPackages = with pkgs; [ lynx urlscan ];
+ home-manager.users.andrew = let
+ homeDir = "${config.users.users.andrew.home}";
+ in {
+ accounts.email.maildirBasePath = "mail";
+ accounts.email.accounts."andrew" = {
+ address = "andrew@akon.city";
+ realName = "Andrew Opalach";
+ userName = "andrew@akon.city";
+ maildir.path = "";
+ primary = true;
+ passwordCommand = "${pkgs.pass}/bin/pass andrew@akon.city";
+ folders.inbox = "INBOX";
+ imap = {
+ host = "mail.akon.city";
+ port = 993;
+ tls.enable = true;
+ };
+ smtp = {
+ host = "mail.akon.city";
+ port = 465;
+ tls.enable = true;
+ };
+ mbsync = {
+ enable = true;
+ create = "maildir";
+ };
+ msmtp.enable = true;
+ imapnotify = {
+ enable = true;
+ boxes = [ "INBOX" ];
+ onNotify = "${pkgs.notmuch}/bin/notmuch new";
+ onNotifyPost = "${pkgs.libnotify}/bin/notify-send '📥 New Mail!'";
+ };
+ notmuch = {
+ enable = true;
+ neomutt = {
+ enable = true;
+ virtualMailboxes = [
+ { name = "INBOX"; query = "folder:INBOX"; }
+ { name = "Sent"; query = "folder:Sent"; }
+ { name = "Archive"; query = "folder:Archive"; }
+ { name = "Drafts"; query = "folder:Drafts"; }
+ { name = "Trash"; query = "folder:Trash"; }
+ { name = "Junk"; query = "folder:Junk"; }
+ ];
+ };
+ };
+ neomutt.enable = true;
+ };
+ programs.mbsync.enable = true;
+ services.mbsync.enable = true;
+ programs.msmtp.enable = true;
+ services.imapnotify.enable = true;
+ programs.notmuch = {
+ enable = true;
+ hooks = {
+ preNew = "${pkgs.notmuch}/bin/notmuch search --output=files --format=text0 tag:deleted | xargs -0 rm -f; ${pkgs.isync}/bin/mbsync --all -ngfuX";
+ };
+ };
+ programs.neomutt = {
+ enable = true;
+ vimKeys = false;
+ sidebar = {
+ enable = true;
+ width = 18;
+ shortPath = true;
+ };
+ sort = "reverse-date";
+ binds = [
+ { key = "i"; action = "noop"; map = [ "index" "pager" ]; }
+ { key = "g"; action = "noop"; map = [ "index" "pager" ]; }
+ { key = "gg"; action = "first-entry"; map = [ "index" ]; }
+ { key = "j"; action = "next-entry"; map = [ "index" ]; }
+ { key = "k"; action = "previous-entry"; map = [ "index" ]; }
+ { key = "G"; action = "last-entry"; map = [ "index" ]; }
+ { key = "<Return>"; action = "view-mailcap"; map = [ "attach" ]; }
+ { key = "l"; action = "view-mailcap"; map = [ "attach" ]; }
+ { key = "<space>"; action = "noop"; map = [ "editor" ]; }
+ { key = "j"; action = "next-line"; map = [ "pager" ]; }
+ { key = "k"; action = "previous-line"; map = [ "pager" ]; }
+ { key = "gg"; action = "top"; map = [ "pager" ]; }
+ { key = "G"; action = "bottom"; map = [ "pager" ]; }
+ { key = "l"; action = "view-attachments"; map = [ "pager" ]; }
+ { key = "h"; action = "noop"; map = [ "index" ]; }
+ { key = "h"; action = "exit"; map = [ "pager" "attach" ]; }
+ { key = "\\Ck"; action = "sidebar-prev"; map = [ "index" "pager" ]; }
+ { key = "\\Cj"; action = "sidebar-next"; map = [ "index" "pager" ]; }
+ { key = "\\Co"; action = "sidebar-open"; map = [ "index" "pager" ]; }
+ { key = "<Tab>"; action = "complete-query"; map = [ "editor" ]; }
+ { key = "l"; action = "select-entry"; map = [ "browser" ]; }
+ { key = "gg"; action = "top-page"; map = [ "browser" ]; }
+ { key = "G"; action = "bottom-page"; map = [ "browser" ]; }
+ { key = "H"; action = "view-raw-message"; map = [ "index" "pager" ]; }
+ ];
+ macros = let
+ delete-macro = "<modify-labels>+deleted<enter>";
+ undelete-macro = "<modify-labels>-deleted<enter>";
+ in [
+ { key = "\\Cb"; action = "<pipe-message>${pkgs.urlscan}/bin/urlscan -cW<enter>"; map = [ "index" "pager" ]; }
+ { key = "\\Cb"; action = "<pipe-entry>${pkgs.urlscan}/bin/urlscan -cW<enter>"; map = [ "attach" "compose" ]; }
+ { key = "h"; action = "<change-dir><kill-line>..<enter>"; map = [ "browser" ]; }
+ { key = "o"; action = "<shell-escape>${pkgs.notmuch}/bin/notmuch new<enter><sync-mailbox>"; map = [ "index" ]; }
+ { key = "\\Cd"; action = delete-macro; map = [ "index" ]; }
+ { key = "\\Cu"; action = undelete-macro; map = [ "index" ]; }
+ ];
+ extraConfig = ''
+ unmailboxes ${homeDir}/mail/INBOX
+ set mail_check_stats = yes
+ set delete = ask-yes
+
+ # https://github.com/LukeSmithxyz/mutt-wizard/blob/10a16e0ee6442425e7ca1634b1d3356e6d4d04f6/share/mutt-wizard.muttrc#L14
+ set rfc2047_parameters = yes
+ set sleep_time = 0
+ set markers = no
+ set wait_key = no
+ set reverse_name
+ set fast_reply
+ set fcc_attach
+ set mime_forward = no
+ set forward_attachments = yes
+ set forward_format = "Fwd: %s"
+ set forward_quote
+
+ set index_format="%2C (%Z) %[%D %I:%M %p] %-15.15F %s (%c, %g)"
+
+ auto_view text/html
+ auto_view application/pgp-encrypted
+ alternative_order text/plain text/enriched text/html
+
+ color normal blue black
+ color attachment brightyellow black
+ color hdrdefault blue black
+ color indicator black blue
+ color markers brightred black
+ color quoted green black
+ color signature blue black
+ color status black red
+ color tilde blue black
+ color tree red black
+
+ color index red black ~D
+ color index magenta black ~T
+
+ color header brightgreen black ^From:
+ color header brightblue black ^To:
+ color header brightblue black ^Reply-To:
+ color header brightblue black ^Cc:
+ color header brightblue black ^Subject:
+
+ color body brightred black [\-\.+_a-zA-Z0-9]+@[\-\.a-zA-Z0-9]+
+ color body brightblue black (https?|ftp)://[\-\.,/%~_:?&=\#a-zA-Z0-9]+
+ '';
+ };
+ home.file.".mailcap".source = ../../files/mailcap;
+ };
+}
diff --git a/nix_archive/nix/gaming.nix b/nix_archive/nix/gaming.nix
new file mode 100644
index 0000000..e86cd61
--- /dev/null
+++ b/nix_archive/nix/gaming.nix
@@ -0,0 +1,110 @@
+{ config, lib, pkgs, ... }: let
+ loc = config.local;
+ colo = loc.scheme;
+in {
+ users.users.andrew = {
+ extraGroups = [ "gamemode" ];
+ };
+ environment.systemPackages = with pkgs; lib.lists.flatten [
+ (asNeeded "gamepad-tool" ["gamepad-tool"])
+ (asNeeded "sdl-jstest" ["sdl-jstest" "sdl2-jstest"])
+ (asNeeded "parsec-bin" ["parsecd"])
+ (asNeeded "[lutris umu-launcher]" ["lutris"])
+ (asNeeded "(retroarch.withCores (cores: with cores; [ mesen bsnes ]))" ["retroarch"])
+ (asNeeded "dolphin-emu" ["dolphin-emu"])
+ (asNeeded "cemu" ["cemu"])
+ (asNeeded "ryujinx" ["ryujinx"])
+ (asNeeded "pcsx2" ["pcsx2-qt"])
+ (asNeeded "(ppsspp.override { enableQt = true; })" ["ppsspp"])
+ (asNeeded "rpcs3" ["rpcs3"])
+ (asNeeded "prismlauncher" ["prismlauncher"])
+ (asNeeded "osu-lazer-bin" ["osu!"])
+ ];
+ #hardware.xone.enable = true;
+ #hardware.opentabletdriver.enable = true;
+ #services.udev.packages = [ pkgs.dolphinEmu ];
+ #boot.extraModulePackages = [
+ # config.boot.kernelPackages.gcadapter-oc-kmod
+ #];
+ #boot.kernelModules = [ "gcadapter_oc" ];
+ programs.gamemode = {
+ enable = true;
+ settings = {
+ general.desiredgov = "schedutil";
+ general.inhibit_screensaver = 0;
+ general.renice = 10;
+ # Can't set GPU parameters from an unprivileged container.
+ #gpu = {
+ # apply_gpu_optimisations = "accept-responsibility";
+ # gpu_device = 0;
+ # amd_performance_level = "high";
+ #};
+ };
+ };
+ programs.gamescope = {
+ enable = true;
+ package = pkgs.gamescope;
+ capSysNice = true;
+ };
+ #services.ananicy = {
+ # enable = true;
+ # #package = pkgs.ananicy-cpp;
+ # settings = {
+ # apply_nice = true;
+ # };
+ # extraTypes = [
+ # { type = "realtime"; nice = -20; }
+ # ];
+ # extraRules = [
+ # { name = "gamescope"; type = "realtime"; }
+ # ];
+ #};
+ #security.wrappers = {
+ # gamescope = {
+ # owner = "root";
+ # group = "root";
+ # source = "${pkgs.gamescope}/bin/gamescope";
+ # capabilities = "cap_sys_nice+eip";
+ # };
+ #};
+ home-manager.users.andrew = let
+ homeDir = "${config.users.users.andrew.home}";
+ in {
+ programs.mangohud = {
+ enable = true;
+ enableSessionWide = false;
+ package = (pkgs.mangohud.override { nvidiaSupport = false; });
+ settings = {
+ gamemode = true;
+ cpu_temp = true;
+ cpu_mhz = true;
+ vulkan_driver = true;
+ gpu_name = true;
+ gpu_power = true;
+ gpu_temp = true;
+ gpu_junction_temp = true;
+ gpu_core_clock = true;
+ gpu_voltage = true;
+ vram = true;
+ gpu_mem_temp = true;
+ gpu_mem_clock = true;
+ engine_version = true;
+ wine = true;
+ winesync = true;
+ display_server = true;
+ present_mode = true;
+ table_columns = 4;
+ cellpadding_y = -0.100;
+ font_size = 22;
+ round_corners = true;
+ toggle_preset = "";
+ toggle_hud_position = "";
+ toggle_fps_limit = "";
+ toggle_logging = "";
+ reload_cfg = "";
+ upload_log = "";
+ toggle_hud = "Shift_R+F10";
+ };
+ };
+ };
+}
diff --git a/nix_archive/nix/intel.nix b/nix_archive/nix/intel.nix
new file mode 100644
index 0000000..7b69ba8
--- /dev/null
+++ b/nix_archive/nix/intel.nix
@@ -0,0 +1,15 @@
+{ pkgs, ... }: {
+ environment.sessionVariables = with pkgs; {
+ VDPAU_DRIVER = "va_gl";
+ LIBVA_DRIVER_NAME = "iHD";
+ AMD_VULKAN_ICD = "ANV";
+ VK_ICD_FILENAMES="${pkgsi686Linux.mesa}/share/vulkan/icd.d/intel_icd.i686.json:${mesa}/share/vulkan/icd.d/intel_icd.x86_64.json";
+ __EGL_VENDOR_LIBRARY_FILENAMES="${pkgsi686Linux.mesa}/share/glvnd/egl_vendor.d/50_mesa.json:${mesa}/share/glvnd/egl_vendor.d/50_mesa.json";
+ };
+ hardware.graphics = {
+ extraPackages = with pkgs; [
+ intel-media-driver
+ ];
+ };
+ hardware.intel-gpu-tools.enable = true;
+}
diff --git a/nix_archive/nix/mesa_git.nix b/nix_archive/nix/mesa_git.nix
new file mode 100644
index 0000000..ba2dcc1
--- /dev/null
+++ b/nix_archive/nix/mesa_git.nix
@@ -0,0 +1,16 @@
+{ pkgs, ... }: {
+ environment.systemPackages = with pkgs; [
+ (writeShellScriptBin "proton-env-anv" ''
+ export AMD_VULKAN_ICD="ANV"
+ export VK_ICD_FILENAMES="${pkgsi686Linux.mesa_git}/share/vulkan/icd.d/intel_icd.i686.json:${mesa_git}/share/vulkan/icd.d/intel_icd.x86_64.json"
+ proton-env "$@"
+ '')
+ (writeShellScriptBin "proton-env-radv" ''
+ export AMD_VULKAN_ICD="RADV"
+ export VK_ICD_FILENAMES="${pkgsi686Linux.mesa_git}/share/vulkan/icd.d/radeon_icd.i686.json:${mesa_git}/share/vulkan/icd.d/radeon_icd.x86_64.json"
+ export __EGL_VENDOR_LIBRARY_FILENAMES="${pkgsi686Linux.mesa_git}/share/glvnd/egl_vendor.d/50_mesa.json:${mesa_git}/share/glvnd/egl_vendor.d/50_mesa.json"
+ export LD_LIBRARY_PATH="${pkgsi686Linux.mesa_git}/lib:${mesa_git}/lib:$LD_LIBRARY_PATH"
+ proton-env "$@"
+ '')
+ ];
+}
diff --git a/nix_archive/nix/programs/bash.nix b/nix_archive/nix/programs/bash.nix
new file mode 100644
index 0000000..571b4fe
--- /dev/null
+++ b/nix_archive/nix/programs/bash.nix
@@ -0,0 +1,65 @@
+{ config, pkgs, ... }: {
+ users.defaultUserShell = pkgs.bashInteractive;
+ environment.sessionVariables = {
+ SHELL = "${pkgs.bashInteractive}/bin/bash";
+ };
+ home-manager.users.andrew = let
+ homeDir = "${config.users.users.andrew.home}";
+ in {
+ programs.bash = {
+ enable = true;
+ shellAliases = {
+ cp = "rsync -av";
+ top = "htop";
+ bc = "bc -l";
+ pgrep = "pgrep -f";
+ make = "make -j6";
+ diff = "diff -u";
+ gdb = "gdb -q";
+ mail = "neomutt";
+ iroha = "ssh andrew@iroha";
+ moyo = "ssh andrew@moyo";
+ zasshi = "ssh andrew@zasshi";
+ denpa = "ssh moyo -t 'ssh 192.168.122.89'";
+ rod = "ssh -p 1738 rod";
+ bmrg = "ssh boomerang";
+ cmv-add = "$HOME/c/camu/scripts/cmv_add.sh";
+ cmv-pause = "cmv-add PAUSE";
+ cmv-next = "cmv-add NEXT";
+ cmv-prev = "cmv-add PREV";
+ cmv-shuffle = "cmv-add SHUFFLE";
+ cmv-sort = "cmv-add SORT";
+ cmv-reverse = "cmv-add REVERSE";
+ cmv-clear = "cmv-add CLEAR";
+ };
+ historyControl = [ "erasedups" ];
+ historySize = 10000;
+ historyFile = "${homeDir}/.bash_history";
+ historyFileSize = 100000;
+ initExtra = ''
+ bind 'set completion-query-items 0'
+ bind 'set show-all-if-ambiguous on'
+ bind 'set show-all-if-unmodified on'
+ bind 'set menu-complete-display-prefix on'
+ bind '"\t": menu-complete'
+ bind '"\e[Z": menu-complete-backward'
+ RESET="\001\017\002"
+ NORMAL="\001\033[0m\002"
+ YELLOW="\001\033[0;33m\002"
+ BLUE="\001\033[0;34m\002"
+ MAGENTA="\001\033[0;35m\002"
+ CYAN="\001\033[0;36m\002"
+ RED="\001\033[0;31m\002"
+ exit_code_guy()
+ {
+ if [ $? -eq 0 ]; then
+ printf "(・_・) >"
+ else
+ printf "(″ロ゛) >"
+ fi
+ }
+ export PS1="$RESET$MAGENTA\u@$CYAN\H$MAGENTA:\w\$(exit_code_guy)$NORMAL "
+ '';
+ };
+ };
+}
diff --git a/nix_archive/nix/programs/docker.nix b/nix_archive/nix/programs/docker.nix
new file mode 100644
index 0000000..3491a80
--- /dev/null
+++ b/nix_archive/nix/programs/docker.nix
@@ -0,0 +1,4 @@
+{ ... }: {
+ virtualisation.docker.enable = true;
+ users.users.andrew.extraGroups = [ "docker" ];
+}
diff --git a/nix_archive/nix/programs/firefox.nix b/nix_archive/nix/programs/firefox.nix
new file mode 100644
index 0000000..d278bd4
--- /dev/null
+++ b/nix_archive/nix/programs/firefox.nix
@@ -0,0 +1,145 @@
+{ config, pkgs, ... }:
+let
+ colo = config.local.scheme;
+in {
+ environment.systemPackages = with pkgs; [
+ firefox-wayland
+ ];
+ environment.sessionVariables = {
+ BROWSER = "firefox";
+ };
+ services.psd.enable = true;
+ home-manager.users.andrew = {
+ home.file."user-overrides.js" = {
+ target = ".mozilla/firefox/default/user-overrides.js";
+ source = ../../../files/firefox/user-overrides.js;
+ };
+ home.file."firefox-gnome-theme" = {
+ target = ".mozilla/firefox/default/chrome/firefox-gnome-theme";
+ source = (pkgs.fetchFromGitHub {
+ owner = "rafaelmardojai";
+ repo = "firefox-gnome-theme";
+ rev = "0909cfe4a2af8d358ad13b20246a350e14c2473d";
+ hash = "sha256-lizRM2pj6PHrR25yimjyFn04OS4wcdbc38DCdBVa2rk=";
+ });
+ };
+ home.file."customChrome.css" = {
+ target = ".mozilla/firefox/default/chrome/customChrome.css";
+ source = pkgs.writeText "customChrome.css" ''
+ @namespace xul url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
+
+ @media (prefers-color-scheme: ${colo.lightness}) {
+ :root {
+ /* Accent */
+ --gnome-accent-bg: #${colo.color3};
+ --gnome-accent: #${colo.color4};
+
+ --gnome-toolbar-star-button: #${colo.color4};
+
+ /* Window */
+ --gnome-window-background: #${colo.background};
+ --gnome-window-color: #${colo.foreground};
+ --gnome-view-background: #${colo.background};
+ --gnome-sidebar-background: #${colo.color5};
+ --gnome-secondary-sidebar-background: #${colo.color4};
+
+ /* Card */
+ --gnome-card-background: #${colo.background};
+ --gnome-card-shade-color: #${colo.color4};
+
+ /* Menu */
+ --gnome-menu-background: #${colo.background};
+
+ /* Header bar */
+ --gnome-headerbar-background: #${colo.background};
+ --gnome-headerbar-shade-color: #${colo.background};
+
+ /* Toolbars */
+ --gnome-toolbar-icon-fill: #${colo.foreground};
+
+ /* Tabs */
+ --gnome-tabbar-tab-hover-background: #${colo.color5};
+ --gnome-tabbar-tab-active-background: #${colo.color4};
+ --gnome-tabbar-tab-active-background-contrast: #${colo.color4};
+ --gnome-tabbar-tab-active-hover-background: #${colo.color5};
+
+ --gnome-tabbar-identity-color-green: var(--gnome-palette-green-1);
+ --gnome-tabbar-identity-color-yellow: var(--gnome-palette-yellow-2);
+ --gnome-tabbar-identity-color-orange: var(--gnome-palette-orange-3);
+ --gnome-tabbar-identity-color-red: var(--gnome-palette-red-1);
+ --gnome-tabbar-identity-color-purple: var(--gnome-palette-purple-1);
+
+ /* Text color for Firefox Logo in new private tab */
+ --gnome-private-wordmark: #${colo.background};
+ /* New private tab background */
+ --gnome-private-in-content-page-background: #${colo.background};
+ /* Private browsing info box */
+ --gnome-private-text-primary-color: #${colo.background};
+ }
+
+ /* Backdrop colors */
+ :root:-moz-window-inactive {
+ --gnome-tabbar-tab-hover-background: #${colo.background};
+ --gnome-tabbar-tab-active-background: #${colo.background};
+ }
+
+ /* Private colors */
+ :root[privatebrowsingmode="temporary"] {
+ --gnome-accent-fg: #${colo.color4};
+ /* Headerbar */
+ --gnome-headerbar-background: #${colo.color5} !important;
+ /* Tabs */
+ --gnome-tabbar-tab-hover-background: #${colo.color5};
+ --gnome-tabbar-tab-active-background: #${colo.background};
+ --gnome-tabbar-tab-active-background-contrast: #${colo.background};
+ --gnome-tabbar-tab-active-hover-background: #${colo.color5};
+ }
+
+ /* Private and backdrop colors */
+ :root[privatebrowsingmode="temporary"]:-moz-window-inactive {
+ --gnome-headerbar-background: #${colo.color5} !important;
+ --gnome-tabbar-tab-hover-background: #${colo.color5};
+ --gnome-tabbar-tab-active-background: #${colo.color5};
+ }
+ }
+ '';
+ };
+ home.sessionVariables = {
+ MOZ_WEBRENDER = "1";
+ MOZ_USE_XINPUT2 = "1";
+ MOZ_ENABLE_WAYLAND = "1";
+ };
+ programs.firefox = {
+ enable = true;
+ profiles.default = {
+ extensions.packages = with pkgs.nur.repos.rycee.firefox-addons; [
+ ublock-origin
+ skip-redirect
+ cookies-txt
+ youtube-recommended-videos
+ istilldontcareaboutcookies
+ hls-stream-detector
+ old-reddit-redirect
+ tampermonkey
+ enhanced-h264ify
+ ];
+ userChrome = ''
+ @import "firefox-gnome-theme/userChrome.css";
+ @import "customChrome.css";
+ #urlbar .search-one-offs {
+ display: none !important;
+ }
+ #tabbrowser-tabpanels{
+ background-color: #${colo.background} !important;
+ }
+ '';
+ userContent = ''
+ @import "firefox-gnome-theme/userContent.css";
+ @-moz-document url("about:home"),url("about:blank"),url("about:newtab"),url("about:privatebrowsing") {
+ body{ background-color: #${colo.background} !important }
+ }
+ '';
+ };
+ };
+ };
+}
diff --git a/nix_archive/nix/programs/foot.nix b/nix_archive/nix/programs/foot.nix
new file mode 100644
index 0000000..5c85ce7
--- /dev/null
+++ b/nix_archive/nix/programs/foot.nix
@@ -0,0 +1,51 @@
+{ config, pkgs, ... }:
+let
+ loc = config.local;
+ colo = loc.scheme;
+in {
+ environment.sessionVariables = {
+ TERMINAL = "${pkgs.foot}/bin/footclient";
+ };
+ home-manager.users.andrew = {
+ programs.foot = {
+ enable = true;
+ server.enable = true;
+ settings = {
+ main = {
+ font = "${s.font.name}:size=${toString s.font.size}";
+ };
+ colors = {
+ foreground = "${colo.foreground}";
+ background = "${colo.background}";
+ regular0 = "${colo.color0}";
+ regular1 = "${colo.color1}";
+ regular2 = "${colo.color2}";
+ regular3 = "${colo.color3}";
+ regular4 = "${colo.color4}";
+ regular5 = "${colo.color5}";
+ regular6 = "${colo.color6}";
+ regular7 = "${colo.color7}";
+ bright0 = "${colo.color8}";
+ bright1 = "${colo.color9}";
+ bright2 = "${colo.color10}";
+ bright3 = "${colo.color11}";
+ bright4 = "${colo.color12}";
+ bright5 = "${colo.color13}";
+ bright6 = "${colo.color14}";
+ bright7 = "${colo.color15}";
+ alpha = "1.0";
+ };
+ };
+ };
+ wayland.windowManager.sway = {
+ config = rec {
+ terminal = "${pkgs.foot}/bin/footclient";
+ keybindings = let
+ mod1 = "Mod1";
+ in {
+ "${mod1}+Return" = "exec ${terminal}";
+ };
+ };
+ };
+ };
+}
diff --git a/nix_archive/nix/programs/kdeconnect.nix b/nix_archive/nix/programs/kdeconnect.nix
new file mode 100644
index 0000000..8d8b366
--- /dev/null
+++ b/nix_archive/nix/programs/kdeconnect.nix
@@ -0,0 +1,12 @@
+{ ... }: {
+ networking.firewall = {
+ allowedTCPPortRanges = [ { from = 1714; to = 1764; } ];
+ allowedUDPPortRanges = [ { from = 1714; to = 1764; } ];
+ };
+ home-manager.users.andrew = {
+ services.kdeconnect = {
+ enable = true;
+ indicator = false;
+ };
+ };
+}
diff --git a/nix_archive/nix/programs/kitty.nix b/nix_archive/nix/programs/kitty.nix
new file mode 100644
index 0000000..86ad720
--- /dev/null
+++ b/nix_archive/nix/programs/kitty.nix
@@ -0,0 +1,112 @@
+{ config, lib, pkgs, ... }:
+let
+ loc = config.local;
+ colo = loc.scheme;
+in {
+ environment.sessionVariables = {
+ TERMINAL = "${pkgs.kitty}/bin/kitty -1";
+ };
+ home-manager.users.andrew = {
+ programs.kitty = {
+ enable = true;
+ font = {
+ name = loc.font.name;
+ size = loc.font.size;
+ };
+ shellIntegration = {
+ mode = "enabled";
+ enableBashIntegration = true;
+ };
+ extraConfig = ''
+ shell ${pkgs.bashInteractive}/bin/bash --login
+ update_check_interval 0
+ confirm_os_window_close 0
+ sync_to_monitor no
+ allow_remote_control yes
+ linux_display_server wayland
+ remember_window_size no
+ initial_window_width 720
+ initial_window_height 480
+ resize_debounce_time 0.025 0.5
+ window_padding_width 1
+ placement_strategy top-left
+ scrollback_lines 3000
+ paste_actions confirm,confirm-if-large
+ disable_ligatures always
+ modify_font baseline ${toString loc.font.baseline}
+ modify_font cell_height ${toString loc.font.cell-height-offset}
+ cursor_shape block
+ #cursor_blink_interval -1 linear ease-out
+ #cursor_stop_blinking_after 20.0
+ #cursor_trail 2
+ #cursor_trail_decay 0.075 0.425
+ #cursor_trail_start_threshold 3
+ cursor #${colo.foreground}
+ #cursor none
+ cursor_text_color background
+ foreground #${colo.foreground}
+ background #${colo.background}
+ color0 #${colo.color0}
+ color1 #${colo.color1}
+ color2 #${colo.color2}
+ color3 #${colo.color3}
+ color4 #${colo.color4}
+ color5 #${colo.color5}
+ color6 #${colo.color6}
+ color7 #${colo.color7}
+ color8 #${colo.color8}
+ color9 #${colo.color9}
+ color10 #${colo.color10}
+ color11 #${colo.color11}
+ color12 #${colo.color12}
+ color13 #${colo.color13}
+ color14 #${colo.color14}
+ color15 #${colo.color15}
+ selection_foreground #${colo.background}
+ selection_background #${colo.color6}
+ mark1_foreground #${colo.background}
+ mark1_background #${colo.color5}
+ mark2_foreground #${colo.background}
+ mark2_background #${colo.color6}
+ mark3_foreground #${colo.background}
+ mark3_background #${colo.color4}
+ background_opacity ${toString colo.alpha}
+ active_border_color #${colo.color4}
+ bell_border_color #${colo.color1}
+ inactive_border_color #${colo.color3}
+ active_tab_foreground #${colo.background}
+ active_tab_background #${colo.color5}
+ active_tab_font_style bold-italic
+ inactive_tab_foreground #${colo.background}
+ inactive_tab_background #${colo.color4}
+ url_color #${colo.color5}
+ enabled_layouts splits,stack
+ '';
+ };
+ home.file.".config/kitty/quick-access-terminal.conf".text = ''
+ lines 18
+ background_opacity 0.925
+ output_name ${loc.monitors.monitor1}
+ kitty_override startup_session=quick-access-session.conf
+ kitty_override placement_strategy=bottom-right
+ kitty_override window_padding_width=0 12 8 0
+ '';
+ home.file.".config/kitty/quick-access-session.conf".text = ''
+ layout splits
+ launch --var window=main
+ launch --location=vsplit --bias=17.1 /home/andrew/dl/tmp/clock/a.out
+ focus_matching_window var:window=first
+ '';
+ wayland.windowManager.sway = {
+ config = rec {
+ terminal = "${pkgs.kitty}/bin/kitty -1";
+ keybindings = let
+ mod1 = "Mod1";
+ in {
+ "${mod1}+Return" = "exec ${terminal}";
+ "${mod1}+backslash" = "exec ${pkgs.kitty}/bin/kitten quick-access-terminal";
+ };
+ };
+ };
+ };
+}
diff --git a/nix_archive/nix/programs/nvim.nix b/nix_archive/nix/programs/nvim.nix
new file mode 100644
index 0000000..3cdf12e
--- /dev/null
+++ b/nix_archive/nix/programs/nvim.nix
@@ -0,0 +1,235 @@
+{ config, pkgs, ... }:
+let
+ colo = config.local.scheme;
+ local-nvim = pkgs.vimUtils.buildVimPlugin {
+ pname = "local";
+ version = "0.2";
+ src = ../../files/nvim/local;
+ };
+ wal = pkgs.vimUtils.buildVimPlugin {
+ # https://github.com/neovim/neovim/blob/ec8922978eb14fe62671628bb25215743712eac0/src/nvim/highlight_group.c#L432
+ # ...neovim-unwrapped-0.10.4/share/nvim/runtime/syntax/c.vim
+ pname = "wal";
+ version = "3.3";
+ src = pkgs.writeTextDir "colors/wal-gui.vim" ''
+ let g:colors_name = "wal-gui"
+
+ set background=${colo.lightness}
+ set pumblend=10
+
+ " Lag Fix
+ hi! link CurSearch Search
+
+ " Plugins
+ hi MiniStarterInactive guifg=#${colo.foreground}
+ hi MiniStarterQuery guifg=#${colo.color5} gui=bold
+ hi MiniStarterItemPrefix guifg=#${colo.color4}
+
+ " https://github.com/NeogitOrg/neogit/blob/nightly/lua/neogit/lib/hl.lua
+ hi link NeogitDiffContext Normal
+ hi link NeogitDiffContextHighlight Normal
+ hi link NeogitDiffContextCursor Normal
+ hi link NeogitHunkHeader NeogitHunkHeaderHighlight
+
+ " Custom
+ hi ExtraWhitespace guibg=#${colo.color4}
+
+ hi Normal guifg=#${colo.foreground} guibg=#${colo.background}
+
+ " Necessary even without tree-sitter.
+ hi @variable guifg=#${colo.foreground}
+
+ " UI
+ hi Added guifg=#${colo.color2}
+ hi Changed guifg=#${colo.color3}
+ hi ColorColumn guibg=#${colo.color6}
+ hi Conceal guifg=#${colo.color5}
+ hi CurSearch guifg=#${colo.background} guibg=#${colo.color4}
+ hi CursorColumn guibg=#${colo.background}
+ hi CursorLine guibg=#${colo.color5}
+ hi DiffAdd guifg=#${colo.color2} guibg=#${colo.background}
+ hi DiffChange guifg=#${colo.color3} guibg=#${colo.background}
+ hi DiffDelete guifg=#${colo.color1} guibg=#${colo.background} gui=bold
+ hi DiffText guifg=#${colo.color4} guibg=#${colo.background}
+ hi Directory guifg=#${colo.color2}
+ hi ErrorMsg guifg=#${colo.color1}
+ hi FloatShadow guibg=#${colo.color6} blend=80
+ hi FloatShadowThrough guibg=#${colo.color6} blend=100
+ hi Folded guifg=#${colo.color5} guibg=#${colo.background}
+ hi LineNr guifg=#${colo.color2}
+ hi MatchParen guifg=#${colo.color2} guibg=#${colo.background} gui=bold
+ hi ModeMsg guifg=#${colo.color4}
+ hi MoreMsg guifg=#${colo.color2}
+ hi NonText guifg=#${colo.color6}
+ hi NormalFloat guibg=#${colo.color5}
+ hi Pmenu guibg=#${colo.color5}
+ hi PmenuThumb guibg=#${colo.color4}
+ hi PmenuSel guibg=#${colo.color5} " Font color.
+ hi PmenuSbar guibg=#${colo.color5}
+ hi Question guifg=#${colo.color3}
+ hi QuickFixLine guifg=#${colo.color3}
+ hi RedrawDebugClear guibg=#${colo.color2}
+ hi RedrawDebugComposed guibg=#${colo.background}
+ hi RedrawDebugRecompose guibg=#${colo.color3}
+ hi Removed guifg=#${colo.color1}
+ hi Search guifg=#${colo.foreground} guibg=#${colo.color1}
+ hi SignColumn guifg=#${colo.color6}
+ hi SpecialKey guifg=#${colo.color6}
+ hi SpellBad guisp=#${colo.color1} gui=undercurl
+ hi SpellCap guisp=#${colo.color4} gui=undercurl
+ hi SpellLocal guisp=#${colo.color4} gui=undercurl
+ hi SpellRare guisp=#${colo.color3} gui=undercurl
+ hi StatusLine guifg=#${colo.background} guibg=#${colo.color5}
+ hi StatusLineNC guifg=#${colo.background} guibg=#${colo.color4}
+ hi Title guifg=#${colo.foreground} gui=bold
+ hi Visual guibg=#${colo.color3}
+ hi WarningMsg guifg=#${colo.color3}
+ hi WinBar guifg=#${colo.color5} guibg=#${colo.background} gui=bold
+ hi WinBarNC guifg=#${colo.color5} guibg=#${colo.background}
+
+ " // Syntax
+ " "default link Character Constant",
+ " "default link Number Constant",
+ " "default link Boolean Constant",
+ " "default link Float Number",
+ " "default link Conditional Statement",
+ " "default link Repeat Statement",
+ " "default link Label Statement",
+ " "default link Keyword Statement",
+ " "default link Exception Statement",
+ " "default link Include PreProc",
+ " "default link Define PreProc",
+ " "default link Macro PreProc",
+ " "default link PreCondit PreProc",
+ " "default link StorageClass Type",
+ " "default link Structure Type",
+ " "default link Typedef Type",
+ " "default link Tag Special",
+ " "default link SpecialChar Special",
+ " "default link SpecialComment Special",
+ " "default link Debug Special",
+ " "default link Ignore Normal",
+
+ " Syntax Overrides
+ hi Structure guifg=#${colo.color4} gui=bold
+ hi StorageClass guifg=#${colo.color4} gui=bold
+ hi Number guifg=#${colo.foreground}
+ " -----
+ hi link Boolean Number
+ hi link Character String
+ hi link SpecialChar Character
+
+ " Syntax
+ hi Constant guifg=#${colo.foreground}
+ hi Operator guifg=#${colo.foreground}
+ hi PreProc guifg=#${colo.foreground}
+ hi Type guifg=#${colo.foreground} gui=bold
+ hi Delimiter guifg=#${colo.foreground}
+
+ hi Comment guifg=#${colo.color2}
+ hi String guifg=#${colo.color2}
+ hi Identifier guifg=#${colo.foreground}
+ hi Function guifg=#${colo.foreground}
+ hi Statement guifg=#${colo.foreground} gui=bold
+ hi Special guifg=#${colo.color6}
+ hi Error guifg=#${colo.color1} guibg=#${colo.foreground} " Used for Neogit delete.
+ hi Todo guifg=#${colo.foreground} gui=bold
+
+ " Diagnostic
+ hi DiagnosticError guifg=#${colo.color1}
+ hi DiagnosticWarn guifg=#${colo.color3}
+ hi DiagnosticInfo guifg=#${colo.color2}
+ hi DiagnosticHint guifg=#${colo.foreground}
+ hi DiagnosticOk guifg=#${colo.color4}
+ hi DiagnosticUnderlineError guisp=#${colo.color1} gui=underline
+ hi DiagnosticUnderlineWarn guisp=#${colo.color3} gui=underline
+ hi DiagnosticUnderlineInfo guisp=#${colo.color2} gui=underline
+ hi DiagnosticUnderlineHint guisp=#${colo.foreground} gui=underline
+ hi DiagnosticUnderlineOk guisp=#${colo.color4} gui=underline
+ hi DiagnosticDeprecated guisp=#${colo.color3} gui=strikethrough
+ '';
+ };
+in {
+ environment.sessionVariables = {
+ EDITOR = "nvim";
+ };
+ home-manager.users.andrew = {
+ programs.neovim = let
+ s = config.local.starter;
+ in {
+ enable = true;
+ viAlias = true;
+ vimAlias = true;
+ extraConfig = ''
+ lua << EOF
+ -- Simpler mini.starter builtin actions.
+ local builtin_actions_edit = function()
+ return {
+ { name = 'Edit new buffer', action = 'enew', section = 'Actions' },
+ { name = 'Quit', action = 'qall', section = 'Actions' }
+ }
+ end
+ local starter = require('mini.starter')
+ starter.setup({
+ items = {
+ starter.sections.sessions(6, true),
+ starter.sections.recent_files(7, false, false),
+ builtin_actions_edit()
+ },
+ content_hooks = {
+ starter.gen_hook.adding_bullet(),
+ starter.gen_hook.aligning('center', 'center')
+ },
+ top_padding = ${toString s.top_padding},
+ header = '${s.header}',
+ footer = '${s.footer}',
+ footer_offset = ${toString s.footer-offset},
+ picture = {
+ path = '${s.picture}',
+ kitty = os.getenv('TERM') == 'xterm-kitty',
+ width = ${toString s.width},
+ position = '${s.position}',
+ padding = {
+ top = ${toString s.padding.top},
+ left = ${toString s.padding.left},
+ text = ${toString s.padding.text}
+ }
+ }
+ })
+ EOF
+ '' + builtins.readFile(../../files/nvim/init.vim);
+ extraPackages = with pkgs; [
+ fzf
+ chafa
+ ripgrep
+ xxd
+ ];
+ #(pkgs.vimUtils.buildVimPlugin {
+ # pname = "";
+ # version = "";
+ # src = pkgs.fetchFromGitHub {
+ # owner = "";
+ # repo = "";
+ # rev = "";
+ # hash = "";
+ # };
+ # meta.homepage = "";
+ #})
+ plugins = with pkgs.vimPlugins; [
+ local-nvim
+ wal
+ undotree
+ fzfWrapper
+ fzf-vim
+ vim-gitbranch
+ vim-signify
+ nvim-lspconfig
+ inc-rename-nvim
+ mini-nvim
+ neogit
+ plenary-nvim
+ ccc-nvim
+ ];
+ };
+ };
+}
diff --git a/nix_archive/nix/programs/obs.nix b/nix_archive/nix/programs/obs.nix
new file mode 100644
index 0000000..59dca35
--- /dev/null
+++ b/nix_archive/nix/programs/obs.nix
@@ -0,0 +1,11 @@
+{ config, pkgs, ... }: {
+ environment.systemPackages = with pkgs; [
+ obs-studio
+ ];
+ home-manager.users.andrew = let
+ homeDir = "${config.users.users.andrew.home}";
+ in {
+ home.file.".config/obs-studio/plugins/wlrobs/bin/64bit/libwlrobs.so".source = "${pkgs.obs-studio-plugins.wlrobs}/lib/obs-plugins/libwlrobs.so";
+ home.file.".config/obs-studio/plugins/wlrobs/bin/64bit/obs-vaapi.so".source = "${pkgs.obs-studio-plugins.obs-vaapi}/lib/obs-plugins/obs-vaapi.so";
+ };
+}
diff --git a/nix_archive/nix/programs/sunshine.nix b/nix_archive/nix/programs/sunshine.nix
new file mode 100644
index 0000000..dff4d97
--- /dev/null
+++ b/nix_archive/nix/programs/sunshine.nix
@@ -0,0 +1,29 @@
+{ pkgs, ... }: {
+ #environment.systemPackages = with pkgs; [ sunshine ];
+ services.sunshine = {
+ enable = true;
+ capSysAdmin = true;
+ settings = {
+ sunshine_name = "Iroha";
+ };
+ applications = {
+ env = {
+ PATH = "$(PATH)";
+ };
+ apps = [
+ {
+ name = "Steam Gamescope";
+ cmd = "gamescope -w 960 -W 960 -h 544 -H 544 -r 60 -O DP-1 -e -- steam steam://open/bigpicture";
+ }
+ ];
+ };
+ };
+ #security.wrappers = {
+ # sunshine = {
+ # owner = "root";
+ # group = "root";
+ # source = "${pkgs.sunshine}/bin/sunshine";
+ # capabilities = "cap_sys_admin+p";
+ # };
+ #};
+}
diff --git a/nix_archive/nix/programs/sway.nix b/nix_archive/nix/programs/sway.nix
new file mode 100644
index 0000000..b5dcb5f
--- /dev/null
+++ b/nix_archive/nix/programs/sway.nix
@@ -0,0 +1,360 @@
+{ config, lib, pkgs, ... }:
+let
+ loc = config.local;
+ colo = loc.scheme;
+in {
+ services.xserver.videoDrivers = [ "modesetting" ];
+ programs.sway = {
+ enable = true;
+ package = pkgs.swayfx;
+ extraPackages = with pkgs; [
+ libinput
+ swaybg
+ swayidle
+ wl-clipboard
+ libnotify
+ bemenu
+ slurp
+ grim
+ wf-recorder
+ wlsunset
+ xorg.xprop
+ xorg.xset
+ xorg.xrdb
+ xorg.xrandr
+ ];
+ };
+ local.scripts.imports = [
+ "dbus-sway-environment"
+ "dmenu-path"
+ "dmenu-path0"
+ "dmenu-emoji"
+ "wlsunset-toggle"
+ "screenshot"
+ ];
+ services.dbus.enable = true;
+ security.polkit.enable = true;
+ programs.dconf.enable = true;
+ xdg.portal = {
+ enable = true;
+ wlr.enable = true;
+ extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
+ };
+ xdg.icons.enable = true;
+ #services.getty.autologinUser = "andrew";
+ #services.greetd = {
+ # enable = false;
+ # settings = {
+ # vt=3;
+ # default_session = {
+ # command = "run-sway";
+ # user = "root";
+ # };
+ # };
+ #};
+ qt = {
+ enable = true;
+ platformTheme = "qt5ct"; # Also selects qt6ct.
+ style = "adwaita";
+ };
+ home-manager.users.andrew = {
+ home.sessionVariables = {
+ MAIN_MONITOR="${loc.monitors.monitor1}";
+ XDG_CURRENT_DESKTOP = "sway";
+ MOZ_ENABLE_WAYLAND = "1";
+ SDL_VIDEODRIVER = "wayland";
+ GDK_BACKEND = "wayland,x11";
+ QT_QPA_PLATFORM = "wayland;xcb";
+ QT_WAYLAND_DISABLE_WINDOWDECORATION = "1";
+ _JAVA_AWT_WM_NONREPARENTING = "1";
+ };
+ xresources.properties = {
+ "*background" = "#${colo.background}";
+ "*foreground" = "#${colo.foreground}";
+ "*color0" = "#${colo.color0}";
+ "*color1" = "#${colo.color1}";
+ "*color2" = "#${colo.color2}";
+ "*color3" = "#${colo.color3}";
+ "*color4" = "#${colo.color4}";
+ "*color5" = "#${colo.color5}";
+ "*color6" = "#${colo.color6}";
+ "*color7" = "#${colo.color7}";
+ "*color8" = "#${colo.color8}";
+ "*color9" = "#${colo.color9}";
+ "*color10" = "#${colo.color10}";
+ "*color11" = "#${colo.color11}";
+ "*color12" = "#${colo.color12}";
+ "*color13" = "#${colo.color13}";
+ "*color14" = "#${colo.color14}";
+ "*color15" = "#${colo.color15}";
+ };
+ gtk = let
+ # *_shade_color is adjusted from black by default.
+ extraCss3 = ''
+ @define-color shade_color #${colo.background};
+ @define-color scrollbar_outline_color #${colo.foreground};
+ @define-color window_bg_color #${colo.background};
+ @define-color window_fg_color #${colo.foreground};
+ @define-color view_bg_color #${colo.background};
+ @define-color view_fg_color #${colo.foreground};
+ @define-color accent_bg_color #${colo.color4};
+ @define-color accent_fg_color #${colo.background};
+ @define-color accent_color #${colo.color4};
+ @define-color headerbar_bg_color #${colo.background};
+ @define-color headerbar_fg_color #${colo.foreground};
+ @define-color headerbar_backdrop_color #${colo.background};
+ @define-color headerbar_border_color #${colo.color6};
+ @define-color secondary_headerbar_bg_color #${colo.background};
+ @define-color secondary_headerbar_fg_color #${colo.foreground};
+ @define-color secondary_headerbar_backdrop_color #${colo.background};
+ @define-color secondary_headerbar_border_color #${colo.color5};
+ @define-color thumbnail_bg_color #${colo.background};
+ @define-color thumbnail_fg_color #${colo.foreground};
+ @define-color card_bg_color #${colo.background};
+ @define-color card_fg_color #${colo.foreground};
+ @define-color popover_bg_color #${colo.background};
+ @define-color popover_fg_color #${colo.foreground};
+ @define-color dialog_bg_color #${colo.background};
+ @define-color dialog_fg_color #${colo.foreground};
+ @define-color panel_bg_color #${colo.background};
+ @define-color panel_fg_color #${colo.foreground};
+ @define-color sidebar_bg_color #${colo.background};
+ @define-color sidebar_fg_color #${colo.foreground};
+ @define-color sidebar_backdrop_color #${colo.background};
+ @define-color sidebar_border_color #${colo.color5};
+ @define-color secondary_sidebar_bg_color #${colo.background};
+ @define-color secondary_sidebar_fg_color #${colo.foreground};
+ @define-color secondary_sidebar_backdrop_color #${colo.background};
+ @define-color secondary_sidebar_border_color #${colo.color6};
+ @define-color warning_bg_color #${colo.color4};
+ @define-color warning_fg_color #${colo.foreground};
+ @define-color warning_color #${colo.color4};
+ @define-color error_bg_color #${colo.color3};
+ @define-color error_fg_color #${colo.foreground};
+ @define-color error_color #${colo.color3};
+ @define-color success_bg_color #${colo.color2};
+ @define-color success_fg_color #${colo.background};
+ @define-color success_color #${colo.color2};
+ @define-color destructive_bg_color #${colo.color5};
+ @define-color destructive_fg_color #${colo.background};
+ @define-color destructive_color #${colo.color5};
+ '';
+ extraCss4 = ''
+ '';
+ in {
+ enable = true;
+ theme = {
+ name = "adw-gtk3" + (if colo.lightness == "light" then "" else "-dark");
+ package = pkgs.adw-gtk3;
+ };
+ cursorTheme = {
+ name = "WhiteSur-cursors";
+ };
+ #iconTheme = {
+ # name = "suru";
+ # package = pkgs.ubuntu-themes;
+ #};
+ gtk3.extraCss = extraCss3;
+ gtk4.extraCss = extraCss3;
+ };
+ home.pointerCursor = {
+ name = "WhiteSur-cursors";
+ package = pkgs.whitesur-cursors;
+ };
+ wayland.windowManager.sway = {
+ enable = true;
+ systemd.enable = true;
+ xwayland = true;
+ wrapperFeatures = { base = true; gtk = true; };
+ swaynag = {
+ enable = true;
+ settings = {
+ "<config>" = {
+ edge = "top";
+ font = "${loc.ui-font.name} ${toString loc.ui-font.size}";
+ background = "${colo.background}";
+ border = "${colo.background}";
+ text = "${colo.foreground}";
+ button-text = "${colo.foreground}";
+ button-background = "${colo.color6}";
+ message-padding = 5;
+ border-bottom-size = 1;
+ details-border-size = 1;
+ button-border-size = 1;
+ button-gap = 3;
+ button-dismiss-gap = 7;
+ button-padding = 3;
+ button-margin-right = 5;
+ };
+ };
+ };
+ config = rec {
+ input = {
+ "type:keyboard" = {
+ repeat_rate = "45";
+ repeat_delay = "220";
+ xkb_options = "ctrl:nocaps";
+ };
+ "type:touchpad" = {
+ natural_scroll = "enabled";
+ };
+ "1189:32769:BenQ_ZOWIE_BenQ_ZOWIE_Gaming_Mouse" = {
+ accel_profile = "flat";
+ pointer_accel = "-0.675";
+ scroll_factor = "1.0";
+ };
+ "1241:44368:USB_Gaming_Mouse" = { # Finalmouse Ultralight 2
+ accel_profile = "flat";
+ scroll_factor = "0.75";
+ };
+ "1133:45104:Logi_POP_Mouse" = {
+ accel_profile = "flat";
+ scroll_factor = "0.75";
+ };
+ "1133:50504:Logitech_USB_Receiver_Mouse" = {
+ accel_profile = "flat";
+ scroll_factor = "0.75";
+ };
+ "2362:9488:PixArt_USB_Optical_Mouse" = {
+ accel_profile = "flat";
+ scroll_factor = "0.75";
+ };
+ "1390:268:ELECOM_TrackBall_Mouse_HUGE_TrackBall" = {
+ accel_profile = "flat";
+ scroll_factor = "0.25";
+ scroll_method = "on_button_down";
+ scroll_button = "276";
+ };
+ "1386:890:Wacom_One_by_Wacom_S_Pen" = {
+ map_to_output = loc.monitors.monitor1;
+ left_handed = "enabled";
+ };
+ };
+ modifier = "Mod1";
+ menu = "dmenu-path | bemenu-colored | ${pkgs.findutils}/bin/xargs swaymsg exec --";
+ focus.wrapping = "yes";
+ keybindings = let
+ mod1 = "Mod1";
+ in {
+ "button4" = "nop";
+ "button5" = "nop";
+ "${mod1}+d" = "exec ${menu}";
+ "${mod1}+e" = "exec dmenu-emoji | bemenu-colored | awk '{split($0,a);printf \"%s\", a[1];}' | wl-copy";
+ "${mod1}+q" = "exec screenshot qrcode";
+ "${mod1}+c" = "exec screenshot color";
+ "${mod1}+Shift+q" = "kill";
+ "${mod1}+h" = "focus left";
+ "${mod1}+j" = "focus down";
+ "${mod1}+k" = "focus up";
+ "${mod1}+l" = "focus right";
+ "${mod1}+Shift+h" = "move left";
+ "${mod1}+Shift+j" = "move down";
+ "${mod1}+Shift+k" = "move up";
+ "${mod1}+Shift+l" = "move right";
+ "${mod1}+b" = "split h";
+ "${mod1}+v" = "split v";
+ "${mod1}+f" = "fullscreen toggle";
+ "${mod1}+space" = "floating toggle";
+ "${mod1}+r" = "mode \"resize\"";
+ "${mod1}+Shift+c" = "reload";
+ "${mod1}+Shift+e" = "exec swaynag -m 'Do you really want to exit?' -B 'Yes' 'swaymsg exit'";
+ "Print" = "exec screenshot main";
+ "Shift+Print" = "exec screenshot full";
+ "${mod1}+Shift+s" = "exec screenshot";
+ "${mod1}+s" = "exec wlsunset-toggle";
+ "${mod1}+Shift+t" = "exec swaymsg -- input 1386:890:Wacom_One_by_Wacom_S_Pen events disabled";
+ };
+ modes = {
+ resize = {
+ Escape = "mode default";
+ h = "resize shrink width 1 px";
+ j = "resize grow height 1 px";
+ k = "resize shrink height 1 px";
+ l = "resize grow width 1 px";
+ };
+ };
+ fonts = {
+ names = [ loc.ui-font.name ];
+ style = "Regular";
+ size = loc.ui-font.size + 0.0;
+ };
+ bars = [ ];
+ window = {
+ border = 2;
+ titlebar = false;
+ commands = [
+ { command = "move to scratchpad"; criteria.app_id = "kitty-server"; }
+ { command = "allow_tearing yes"; criteria.app_id = "kitty"; }
+ { command = "inhibit_idle fullscreen; floating enable"; criteria.app_id = "cmv"; }
+ { command = "floating enable"; criteria.class = "cmv.exe"; }
+ { command = "floating enable"; criteria.app_id = "mauri"; }
+ { command = "inhibit_idle fullscreen"; criteria.title = "Parsec"; }
+ { command = "inhibit_idle fullscreen"; criteria.class = "streaming_client"; }
+ { command = "inhibit_idle fullscreen; allow_tearing yes"; criteria.class = "steam_app_.*"; }
+ { command = "inhibit_idle fullscreen; allow_tearing yes; floating enable"; criteria.app_id = "gamescope"; }
+ { command = "inhibit_idle fullscreen; allow_tearing yes"; criteria.class = ".gamescope-wrapped"; }
+ { command = "inhibit_idle fullscreen; allow_tearing yes"; criteria.app_id = "osu!"; }
+ { command = "inhibit_idle fullscreen; allow_tearing yes"; criteria.class = "cs2"; }
+ { command = "inhibit_idle fullscreen; allow_tearing yes"; criteria.class = "Minecraft*"; }
+ { command = "inhibit_idle fullscreen; allow_tearing yes"; criteria.title = "Overwatch"; }
+ { command = "inhibit_idle fullscreen"; criteria.class = "Ryujinx"; }
+ { command = "inhibit_idle fullscreen"; criteria.app_id = "org.yuzu_emu.yuzu"; }
+ { command = "inhibit_idle fullscreen"; criteria.app_id = "info.cemu.Cemu"; }
+ { command = "inhibit_idle fullscreen"; criteria.class = "dolphin-emu"; }
+ { command = "inhibit_idle fullscreen"; criteria.class = "AppRun"; } # Ishiiruka-Dolphin
+ { command = "inhibit_idle fullscreen"; criteria.class = "SuperMeatBoy"; }
+ ];
+ };
+ colors = let
+ bg = "#${colo.background}";
+ fg = "#${colo.foreground}";
+ ch = "#${colo.color4}";
+ urgent = "#${colo.color1}";
+ in {
+ background = bg;
+ focused = { background = bg; border = ch; childBorder = ch; indicator = ch; text = fg; };
+ focusedInactive = { background = bg; border = ch; childBorder = ch; indicator = ch; text = fg; };
+ unfocused = { background = bg; border = bg; childBorder = bg; indicator = bg; text = fg; };
+ urgent = { background = urgent; border = urgent; childBorder = urgent; indicator = urgent; text = fg; };
+ placeholder = { background = bg; border = bg; childBorder = bg; indicator = bg; text = fg; };
+ };
+ startup = let
+ gnome-schema = "org.gnome.desktop.interface";
+ in [
+ { command = "dconf write /org/gnome/desktop/interface/color-scheme \"'prefer-${colo.lightness}'\""; always = true; }
+ { command = "dbus-sway-environment"; }
+ { command = "swaymsg 'seat * hide_cursor 4000'"; always = true; }
+ { command = "kitty -1 --class=\"kitty-server\""; }
+ { command = "wlsunset-toggle"; }
+ ];
+ };
+# extraConfig = ''
+# blur enable
+# blur_passes 4
+# blur_radius 2
+# blur_contrast 1.5
+# blur_saturation 1.1
+# '';
+ };
+ services.swayidle = {
+ enable = true;
+ timeouts = [
+ {
+ timeout = 300;
+ command = "${pkgs.sway}/bin/swaymsg \"output * dpms off\"";
+ resumeCommand = "${pkgs.sway}/bin/swaymsg \"output * dpms on\"";
+ }
+ ];
+ };
+ services.mako = {
+ enable = true;
+ settings = {
+ default-timeout = 14000;
+ font = "${loc.font.name} ${toString loc.ui-font.size}";
+ background-color = "#${colo.background}";
+ text-color = "#${colo.foreground}";
+ border-color = "#${colo.color6}";
+ };
+ };
+ };
+}
diff --git a/nix_archive/nix/programs/waydroid.nix b/nix_archive/nix/programs/waydroid.nix
new file mode 100644
index 0000000..af0c207
--- /dev/null
+++ b/nix_archive/nix/programs/waydroid.nix
@@ -0,0 +1,3 @@
+{ ... }: {
+ virtualisation.waydroid.enable = true;
+}
diff --git a/nix_archive/nix/programs/zsh.nix b/nix_archive/nix/programs/zsh.nix
new file mode 100644
index 0000000..6071429
--- /dev/null
+++ b/nix_archive/nix/programs/zsh.nix
@@ -0,0 +1,76 @@
+{ config, pkgs, ... }: {
+ programs.zsh.enable = true;
+
+ environment.shells = [ pkgs.zsh ];
+ environment.pathsToLink = [ "/share/zsh" ];
+ users.defaultUserShell = pkgs.zsh;
+ environment.sessionVariables = {
+ SHELL = "${pkgs.zsh}/bin/zsh";
+ };
+
+ home-manager.users.andrew = let
+ homeDir = "${config.users.users.andrew.home}";
+ in {
+ programs.zsh = {
+ enable = true;
+ shellAliases = {
+ sudo = "nocorrect sudo ";
+ xargs = "nocorrect xargs ";
+ cp = "rsync -avz";
+ top = "htop";
+ bc = "bc -l";
+ pgrep = "pgrep -f";
+ make = "make -j6";
+ diff = "diff -u";
+ gdb = "gdb -q";
+ mail = "neomutt";
+ iroha = "ssh andrew@iroha";
+ moyo = "ssh andrew@moyo";
+ zasshi = "ssh andrew@zasshi";
+ denpa = "ssh moyo -t 'ssh 192.168.122.89'";
+ rod = "ssh -p 1738 rod";
+ bmrg = "ssh boomerang";
+ cmv = "$HOME/c/camu/scripts/cmv.sh";
+ cmv-add = "$HOME/c/camu/scripts/cmv_add.sh";
+ cmv-pause = "cmv-add PAUSE";
+ cmv-next = "cmv-add NEXT";
+ cmv-prev = "cmv-add PREV";
+ cmv-shuffle = "cmv-add SHUFFLE";
+ cmv-sort = "cmv-add SORT";
+ cmv-reverse = "cmv-add REVERSE";
+ cmv-clear = "cmv-add CLEAR";
+ };
+ defaultKeymap = "emacs";
+ history = {
+ save = 10000;
+ size = 10000;
+ append = true;
+ expireDuplicatesFirst = true;
+ extended = true;
+ path = "${homeDir}/.histfile";
+ # Don't share history between sessions.
+ share = false;
+ };
+ # Completion tanks startup performance.
+ enableCompletion = false;
+ zprof.enable = false;
+ initExtra = ''
+ autoload -U colors && colors
+ exit_code_guy()
+ {
+ if [[ $? == 0 ]]; then
+ echo "(・_・) >"
+ else
+ echo "(″ロ゛) > %{$fg[red]%}$?%{$fg[cyan]%}"
+ fi
+ }
+ setopt prompt_subst
+ if [[ -v NIX_SHELL ]]; then
+ PS1="($NIX_SHELL)%{$fg[yellow]%}%n%{$fg[red]%}@%{$fg[light\ red]%}%M%{$fg[cyan]%}:%~\$(exit_code_guy)%{$reset_color%} "
+ else
+ PS1="%{$fg[yellow]%}%n%{$fg[red]%}@%{$fg[light\ red]%}%M%{$fg[cyan]%}:%~\$(exit_code_guy)%{$reset_color%} "
+ fi
+ '';
+ };
+ };
+}
diff --git a/nix_archive/nix/scripts.nix b/nix_archive/nix/scripts.nix
new file mode 100644
index 0000000..2f53a2a
--- /dev/null
+++ b/nix_archive/nix/scripts.nix
@@ -0,0 +1,28 @@
+{ config, lib, pkgs, ... }:
+let
+ loc = config.local;
+ colo = loc.scheme;
+in {
+ environment.etc = {
+ "emoji.json".source = builtins.fetchurl {
+ url = "https://raw.githubusercontent.com/github/gemoji/0eca75db9301421efc8710baf7a7576793ae452a/db/emoji.json";
+ sha256 = "sha256-sXSuKusyG1L2Stuf9BL5ZqfzOIOdeAeE3RXcrXAsLdY=";
+ };
+ };
+ environment.systemPackages = with pkgs; [
+ (writeShellScriptBin "bemenu-colored" ''
+ bemenu -C --single-instance -B 0 -M 0 --hp 6 \
+ --fn "${loc.font.name} ${toString (loc.font.size - 1)}" -H ${toString ((loc.font.size * 2) - 4)} \
+ --cf "#${colo.foreground}" --cb "#${colo.background}" \
+ --hf "#${colo.background}" --hb "#${colo.color4}" \
+ --nf "#${colo.foreground}" --nb "#${colo.background}" \
+ --ff "#${colo.foreground}" --fb "#${colo.background}" \
+ --af "#${colo.foreground}" --ab "#${colo.background}" -p ""
+ '')
+ ] ++ (lib.lists.forEach loc.scripts.imports (x: pkgs.writeTextFile {
+ name = x;
+ text = (builtins.readFile ../../scripts/desktop/${x});
+ executable = true;
+ destination = "/bin/${x}";
+ }));
+}
diff --git a/nix_archive/nix/settings.nix b/nix_archive/nix/settings.nix
new file mode 100644
index 0000000..743529c
--- /dev/null
+++ b/nix_archive/nix/settings.nix
@@ -0,0 +1,8 @@
+{
+ disks = {
+ nfs_options = [ "noatime" "nodiratime" "rw" "bg" "hard" "fsc" "proto=tcp" "timeo=600" "nfsvers=4" "minorversion=2" "x-systemd.automount" "noauto" "x-systemd.idle-timeout=60" "x-systemd.device-timeout=5s" "x-systemd.mount-timeout=5s" ];
+ hdd_options = [ "noatime" ];
+ cdrom_options = [ "ro" "user" "noauto" "unhide" ];
+ ntfs_options = [ "uid=1000" "gid=100" "rw" "user" "exec" "umask=000" ];
+ };
+}
diff --git a/nix_archive/nix/steam.nix b/nix_archive/nix/steam.nix
new file mode 100644
index 0000000..66d675f
--- /dev/null
+++ b/nix_archive/nix/steam.nix
@@ -0,0 +1,48 @@
+{ config, lib, pkgs, ... }: let
+ loc = config.local;
+in {
+ environment.systemPackages = with pkgs; lib.lists.flatten [
+ (asNeeded "protontricks" ["protontricks" "protontricks-launch"])
+ (writeShellScriptBin "run-steam-gamescope" ''
+ export TTY=/dev/tty4
+ export XDG_VTNR=4
+ cd $HOME
+ exec ${pkgs.kbd}/bin/openvt --switch --login --console 4 -f -- steam-gamescope
+ '')
+ (writeShellScriptBin "proton-env" ''
+ export STEAM_COMPAT_LAUNCHER_SERVICE=proton
+ export DXVK_HUD=compiler
+ export DXVK_LOG_LEVEL=none
+ export DXVK_DEBUG=none
+ export VKD3D_HUD=compiler
+ export VKD3D_CONFIG=dxr
+ export VKD3D_DEBUG=none
+ export VKD3D_SHADER_DEBUG=none
+ export mesa_glthread=true
+ xrandr --output ${loc.monitors.monitor1} --primary
+ exec env --unset=SDL_VIDEODRIVER --unset=SDL_VIDEO_DRIVER MANGOHUD=1 gamemoderun "$@"
+ '')
+ ];
+ programs.steam = {
+ enable = true;
+ gamescopeSession = let
+ width = "2560";
+ height = "1440";
+ in {
+ enable = true;
+ args = [
+ "-W ${width}" "-H ${height}"
+ "-w ${width}" "-h ${height}"
+ "-r 144"
+ "-O ${loc.monitors.monitor1}"
+ "--rt"
+ "-f"
+ "-e"
+ #"-o 10"
+ "--adaptive-sync"
+ #"--force-grab-cursor"
+ "--mangoapp"
+ ];
+ };
+ };
+}
diff --git a/nix_archive/nix/system.nix b/nix_archive/nix/system.nix
new file mode 100644
index 0000000..92b95df
--- /dev/null
+++ b/nix_archive/nix/system.nix
@@ -0,0 +1,134 @@
+{ config, lib, pkgs, ... }: {
+ nix = {
+ settings = {
+ experimental-features = [ "nix-command" "flakes" ];
+ system-features = [ "big-parallel" "kvm" ];
+ auto-optimise-store = true;
+ download-buffer-size = 134217728;
+ };
+ gc.automatic = false;
+ optimise.automatic = true;
+ };
+
+ nixpkgs.config.allowUnfree = true;
+ hardware.enableRedistributableFirmware = true;
+
+ security.pam.loginLimits = [
+ {
+ domain = "*";
+ type = "soft";
+ item = "nice";
+ value = "-11";
+ }
+ {
+ domain = "*";
+ type = "hard";
+ item = "nice";
+ value = "-11";
+ }
+ {
+ domain = "*";
+ type = "soft";
+ item = "rtprio";
+ value = "99";
+ }
+ {
+ domain = "*";
+ type = "hard";
+ item = "rtprio";
+ value = "99";
+ }
+ {
+ domain = "*";
+ type = "soft";
+ item = "nofile";
+ value = "8192";
+ }
+ {
+ domain = "*";
+ type = "hard";
+ item = "nofile";
+ value = "1048576";
+ }
+ {
+ domain = "*";
+ type = "soft";
+ item = "memlock";
+ value = "unlimited";
+ }
+ {
+ domain = "*";
+ type = "hard";
+ item = "memlock";
+ value = "unlimited";
+ }
+ ];
+ #systemd.services.nix-daemon.serviceConfig.LimitNOFILE = lib.mkForce 134217728;
+
+ security.wrappers = {
+ ping = {
+ owner = "root";
+ group = "root";
+ source = "${pkgs.iputils.out}/bin/ping";
+ capabilities = "cap_net_raw+p";
+ };
+ };
+
+ hardware.graphics = {
+ enable = true;
+ extraPackages = with pkgs; [
+ libvdpau-va-gl
+ vaapiVdpau
+ ];
+ };
+
+ environment.systemPackages = with pkgs; [
+ git # flakes
+ appimage-run
+ i2c-tools
+ pciutils
+ smartmontools
+ lm_sensors
+ libdrm
+ libva-utils
+ vulkan-loader
+ vulkan-validation-layers
+ vulkan-tools
+ mesa-demos
+ ];
+
+ boot.binfmt.registrations.appimage = {
+ wrapInterpreterInShell = false;
+ interpreter = "${pkgs.appimage-run}/bin/appimage-run";
+ recognitionType = "magic";
+ offset = 0;
+ mask = ''\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff'';
+ magicOrExtension = ''\x7fELF....AI\x02'';
+ };
+
+ services.openssh.enable = true;
+
+ time.timeZone = "America/New_York";
+ i18n.defaultLocale = "en_US.UTF-8";
+ i18n.supportedLocales = [
+ "C.UTF-8/UTF-8"
+ "${config.i18n.defaultLocale}/UTF-8"
+ "ja_JP.UTF-8/UTF-8"
+ "ko_KR.UTF-8/UTF-8"
+ ];
+ i18n.glibcLocales = pkgs.glibcLocales.override {
+ allLocales = false;
+ locales = [
+ "C.UTF-8/UTF-8"
+ "${config.i18n.defaultLocale}/UTF-8"
+ "ja_JP.UTF-8/UTF-8"
+ "ko_KR.UTF-8/UTF-8"
+ ];
+ };
+
+ console = {
+ font = "Lat2-Terminus16";
+ keyMap = "us";
+ useXkbConfig = false;
+ };
+}
diff --git a/nix_archive/nix/user.nix b/nix_archive/nix/user.nix
new file mode 100644
index 0000000..817d36e
--- /dev/null
+++ b/nix_archive/nix/user.nix
@@ -0,0 +1,211 @@
+{ config, lib, pkgs, ... }: let
+ loc = config.local;
+ colo = loc.scheme;
+in {
+ users.users.andrew = {
+ isNormalUser = true;
+ uid = 1000;
+ extraGroups = [ "wheel" "input" "audio" "video" "render" "disk" "cdrom" ];
+ };
+ nix.settings.trusted-users = [ "andrew" ];
+
+ documentation = {
+ enable = true;
+ man.enable = true;
+ dev.enable = true;
+ };
+
+ fonts = {
+ fontDir.enable = true;
+ packages = with pkgs; [
+ local-fonts
+ vistafonts
+ noto-fonts
+ noto-fonts-extra
+ noto-fonts-cjk-sans
+ noto-fonts-cjk-serif
+ noto-fonts-emoji-blob-bin
+ mplus-outline-fonts.osdnRelease
+ intel-one-mono
+ nanum-gothic-coding
+ iosevka-comfy.comfy
+ dina-font
+ freefont_ttf # FreeMono
+ ];
+ fontconfig = {
+ enable = true;
+ includeUserConf = false;
+ allowBitmaps = true;
+ cache32Bit = true;
+ antialias = true;
+ hinting = {
+ enable = false;
+ style = "slight";
+ };
+ subpixel = {
+ rgba = "rgb";
+ lcdfilter = "light";
+ };
+ defaultFonts = {
+ serif = [ loc.ui-font.name ];
+ sansSerif = [ loc.ui-font.name ];
+ monospace = [ loc.font.name ];
+ emoji = [ loc.emoji-font.name ];
+ };
+ };
+ };
+
+ environment.systemPackages = with pkgs; lib.lists.flatten [
+ man-pages
+ man-pages-posix
+ home-manager
+ mercurial
+ file
+ bc
+ screen
+ loccount
+ (aspellWithDicts (dicts: with dicts; [ en en-computers en-science ]))
+ rsync
+ (python3.withPackages (python-pkgs: [ python-pkgs.requests python-pkgs.beautifulsoup4 ]))
+ htop
+ neofetch
+ ufetch
+ (asNeeded "cmatrix" ["cmatrix"])
+ hdparm
+ #dcfldd
+ ddrescue
+ cdrtools
+ usbutils
+ cryptsetup
+ (asNeeded "nix-index" ["nix-channel-index" "nix-index" "nix-locate"])
+ imagemagick
+ pngcheck
+ (asNeeded "optipng" ["optipng"])
+ (asNeeded "dmtx-utils" ["dmtxquery" "dmtxread" "dmtxwrite"])
+ (asNeeded "zbar" ["zbarcam" "zbarcam-gtk" "zbarcam-qt" "zbarimg"])
+ perlPackages.ArchiveZip # For crc32.
+ b3sum
+ libfaketime
+ cpulimit
+ dos2unix
+ socat
+ curl
+ (asNeeded "httrack" ["htsserver" "httrack" "proxytrack" "webhttrack"])
+ libuchardet
+ (unzip.override { enableNLS = true; })
+ rar
+ unrar
+ p7zip
+ rclone
+ ffmpeg-headless
+ xdg-utils
+ jq
+ when
+ evtest
+ linuxConsoleTools
+ wev
+ gcr
+ pass
+ zenity
+ ];
+
+ local.scripts.imports = [
+ "install-as-needed"
+ "cpu-vulns"
+ "sp" # spell
+ "ts-date"
+ "term-font-size"
+ "shift-jis-zip"
+ "7z-password"
+ "moonrune-charset-utf8"
+ "gpg-pubkey"
+ "img-fstype"
+ "mount-nfs"
+ "rewrite-git"
+ "xbox360-ffmpeg-enc"
+ ];
+
+ programs.screen = {
+ enable = true;
+ screenrc = ''
+ termcapinfo xterm* ti@:te@
+ defscrollback 10000
+ startup_message off
+ '';
+ };
+
+ programs.mtr.enable = true;
+ services.gnome.gnome-keyring.enable = false;
+ programs.gnupg.agent = {
+ enable = true;
+ pinentryPackage = pkgs.pinentry-gnome3;
+ enableSSHSupport = true;
+ settings = {
+ default-cache-ttl = 28800;
+ max-cache-ttl = 28800;
+ };
+ };
+ programs.ssh = {
+ extraConfig = "AddKeysToAgent yes";
+ };
+
+ home-manager.users.andrew = let
+ homeDir = "${config.users.users.andrew.home}";
+ in {
+ home.username = "andrew";
+ xdg.userDirs = {
+ enable = true;
+ desktop = "${homeDir}/tmp";
+ documents = "${homeDir}/docs";
+ download = "${homeDir}/dl";
+ music = "${homeDir}/tmp";
+ pictures = "${homeDir}/pics";
+ publicShare = "${homeDir}/tmp";
+ templates = "${homeDir}/tmp";
+ videos = "${homeDir}/dl/mp4";
+ };
+ home.sessionVariables = {
+ GOPATH = "${homeDir}/tmp/go";
+ };
+ programs.git = {
+ enable = true;
+ userEmail = "andrew@akon.city";
+ userName = "Andrew Opalach";
+ signing = {
+ key = "99659CB58598BDDB"; # The last digits of the key.
+ signByDefault = true;
+ };
+ extraConfig = {
+ format.signOff = true;
+ init.defaultBranch = "master";
+ };
+ };
+ home.file.".config/gdb/gdbinit".source = ../../files/gdbinit;
+ home.file.".config/colors.json".text = ''
+ {
+ "special": {
+ "background": "${colo.background}",
+ "foreground": "${colo.foreground}"
+ },
+ "colors": {
+ "color0": "${colo.color0}",
+ "color1": "${colo.color1}",
+ "color2": "${colo.color2}",
+ "color3": "${colo.color3}",
+ "color4": "${colo.color4}",
+ "color5": "${colo.color5}",
+ "color6": "${colo.color6}",
+ "color7": "${colo.color7}",
+ "color8": "${colo.color8}",
+ "color9": "${colo.color9}",
+ "color10": "${colo.color10}",
+ "color11": "${colo.color11}",
+ "color12": "${colo.color12}",
+ "color13": "${colo.color13}",
+ "color14": "${colo.color14}",
+ "color15": "${colo.color15}"
+ }
+ }
+ '';
+ };
+}
diff --git a/nix_archive/nix/virtualisation.nix b/nix_archive/nix/virtualisation.nix
new file mode 100644
index 0000000..bc6a6c0
--- /dev/null
+++ b/nix_archive/nix/virtualisation.nix
@@ -0,0 +1,15 @@
+{ pkgs, ... }: {
+ users.users.andrew.extraGroups = [ "libvirtd" "kvm" ];
+ virtualisation.libvirtd.enable = true;
+ programs.virt-manager.enable = true;
+ virtualisation.spiceUSBRedirection.enable = true;
+ environment.systemPackages = with pkgs; [
+ virt-manager
+ OVMF
+ spice-gtk
+ looking-glass-client
+ ];
+ local.scripts.imports = [
+ "looking-glass"
+ ];
+}
diff --git a/nix_archive/nix/x86.nix b/nix_archive/nix/x86.nix
new file mode 100644
index 0000000..a8ebdd1
--- /dev/null
+++ b/nix_archive/nix/x86.nix
@@ -0,0 +1,3 @@
+{ ... }: {
+ hardware.graphics.enable32Bit = true;
+}