mirror of
https://github.com/donovanglover/nix-config.git
synced 2024-12-01 12:46:14 +01:00
9d93f39175
Should fix an issue where the camera app would previously stop taking photos on NixOS updates due to changed hashes.
305 lines
6.4 KiB
Nix
305 lines
6.4 KiB
Nix
{
|
||
self,
|
||
pkgs,
|
||
config,
|
||
lib,
|
||
...
|
||
}:
|
||
|
||
let
|
||
inherit (lib) mkIf mkForce;
|
||
inherit (lib.gvariant) mkTuple mkUint32;
|
||
inherit (config.modules.system) username;
|
||
inherit (builtins) attrValues;
|
||
|
||
phosh-backgrounds = self.packages.${pkgs.system}.phosh-backgrounds.override {
|
||
color = config.lib.stylix.colors.base00;
|
||
};
|
||
|
||
no = {
|
||
name = "";
|
||
settings = {
|
||
Hidden = "true";
|
||
};
|
||
};
|
||
in
|
||
{
|
||
imports = attrValues self.nixosModules;
|
||
|
||
nixpkgs = {
|
||
overlays = with self.overlays; [ phinger-cursors ];
|
||
|
||
config.permittedInsecurePackages = [
|
||
"olm-3.2.16"
|
||
];
|
||
};
|
||
|
||
home-manager.sharedModules = attrValues {
|
||
inherit (self.homeModules)
|
||
eza
|
||
fish
|
||
git
|
||
gpg
|
||
gtk
|
||
htop
|
||
kitty
|
||
librewolf
|
||
neovim
|
||
starship
|
||
xdg-user-dirs
|
||
xresources
|
||
;
|
||
|
||
config = {
|
||
programs = {
|
||
fish.functions.video = # fish
|
||
''
|
||
${pkgs.v4l-utils}/bin/media-ctl -d1 --links '"gc2145 3-003c":0->1:0[0],"ov5640 3-004c":0->1:0[1]'
|
||
${pkgs.v4l-utils}/bin/media-ctl -d1 --set-v4l2 '"ov5640 3-004c":0[fmt:UYVY8_2X8/1280x720@1/30]'
|
||
|
||
ffmpeg \
|
||
-input_format yuv420p \
|
||
-s 1280x720 \
|
||
-f video4linux2 \
|
||
-thread_queue_size 4096 \
|
||
-i /dev/video1 \
|
||
-f pulse \
|
||
-thread_queue_size 256 \
|
||
-i alsa_input.platform-sound.Voice_Call__DigitalMic__source \
|
||
-c:a libopus \
|
||
-c:v libx264 \
|
||
-preset ultrafast \
|
||
-qp 23 \
|
||
"$(date '+%x(%a)%R').mp4"
|
||
'';
|
||
|
||
man.generateCaches = mkForce false;
|
||
};
|
||
|
||
xdg = {
|
||
desktopEntries = {
|
||
anki = no;
|
||
htop = no;
|
||
fish = no;
|
||
nvim = no;
|
||
yazi = no;
|
||
qt5ct = no;
|
||
qt6ct = no;
|
||
gcdemu = no;
|
||
nixos-manual = no;
|
||
image-analyzer = no;
|
||
kvantummanager = no;
|
||
chromium-browser = no;
|
||
|
||
"org.gnome.Extensions" = no;
|
||
"org.pwmt.zathura" = no;
|
||
"org.gnome.eog" = no;
|
||
"org.gnome.Settings" = no;
|
||
"org.sigxcpu.Livi" = no;
|
||
};
|
||
|
||
userDirs = {
|
||
download = mkForce "/home/${username}";
|
||
documents = mkForce "/home/${username}";
|
||
music = mkForce "/home/${username}";
|
||
pictures = mkForce "/home/${username}";
|
||
videos = mkForce "/home/${username}";
|
||
};
|
||
};
|
||
|
||
dconf.settings = {
|
||
"sm/puri/phosh" = {
|
||
app-filter-mode = [ ];
|
||
enable-suspend = true;
|
||
|
||
favorites = [
|
||
"org.gnome.Calls.desktop"
|
||
"sm.puri.Chatty.desktop"
|
||
"kitty.desktop"
|
||
"librewolf.desktop"
|
||
];
|
||
};
|
||
|
||
"sm/puri/phosh/lockscreen" = {
|
||
shuffle-keypad = true;
|
||
};
|
||
|
||
"sm/puri/phosh/plugins" = {
|
||
quick-settings = [
|
||
"night-light-quick-setting"
|
||
"caffeine-quick-setting"
|
||
];
|
||
};
|
||
|
||
"org/gnome/desktop/interface" = {
|
||
show-battery-percentage = true;
|
||
};
|
||
|
||
"org/postmarketos/megapixels" = {
|
||
save-raw = false;
|
||
postprocessor = "${pkgs.megapixels}/share/megapixels/postprocess.sh";
|
||
};
|
||
|
||
"org/gnome/desktop/session" = {
|
||
idle-delay = mkUint32 60;
|
||
};
|
||
|
||
"org/gnome/desktop/input-sources" = {
|
||
sources = [
|
||
(mkTuple [
|
||
"xkb"
|
||
"us"
|
||
])
|
||
|
||
(mkTuple [
|
||
"xkb"
|
||
"jp+kana"
|
||
])
|
||
];
|
||
};
|
||
|
||
"org/gnome/eog/ui" = {
|
||
image-gallery = true;
|
||
sidebar = false;
|
||
};
|
||
|
||
"org/gnome/settings-daemon/plugins/power" = {
|
||
sleep-inactive-ac-type = "nothing";
|
||
sleep-inactive-battery-type = "suspend";
|
||
};
|
||
};
|
||
};
|
||
|
||
background = {
|
||
stylix.targets.gtk.extraCss = # css
|
||
''
|
||
phosh-lockscreen {
|
||
background: url('${phosh-backgrounds}/wall-lock.jpg');
|
||
}
|
||
|
||
phosh-app-grid {
|
||
background: url('${phosh-backgrounds}/wall-grid.jpg');
|
||
}
|
||
|
||
phosh-top-panel {
|
||
background: url('${phosh-backgrounds}/wall-panel.jpg');
|
||
}
|
||
|
||
phosh-home {
|
||
background: url('${phosh-backgrounds}/wall-home.jpg');
|
||
}
|
||
|
||
phosh-lockscreen, phosh-app-grid, phosh-top-panel, phosh-home {
|
||
background-size: cover;
|
||
background-position: center;
|
||
}
|
||
'';
|
||
};
|
||
};
|
||
|
||
environment = {
|
||
sessionVariables = {
|
||
LIBGL_ALWAYS_SOFTWARE = "true";
|
||
};
|
||
|
||
systemPackages = with pkgs; [
|
||
chatty
|
||
megapixels
|
||
livi
|
||
gnome-contacts
|
||
eog
|
||
];
|
||
};
|
||
|
||
modules = {
|
||
system = {
|
||
hostName = "mobile-nixos";
|
||
stateVersion = "23.11";
|
||
mullvad = true;
|
||
phone = true;
|
||
};
|
||
|
||
hardware.keyboardBinds = true;
|
||
};
|
||
|
||
i18n.inputMethod.enable = mkForce false;
|
||
|
||
programs = {
|
||
calls.enable = true;
|
||
|
||
cdemu.enable = mkForce false;
|
||
hyprland.enable = mkForce false;
|
||
thunar.enable = mkForce false;
|
||
};
|
||
|
||
networking = {
|
||
wireless.enable = false;
|
||
wireguard.enable = true;
|
||
|
||
networkmanager.ensureProfiles.profiles = {
|
||
mobile = {
|
||
connection = {
|
||
id = "4G";
|
||
type = "gsm";
|
||
};
|
||
|
||
gsm.apn = "NXTGENPHONE";
|
||
ipv4.method = "auto";
|
||
|
||
ipv6 = {
|
||
addr-gen-mode = "default";
|
||
method = "auto";
|
||
};
|
||
};
|
||
};
|
||
|
||
firewall.checkReversePath = mkForce false;
|
||
};
|
||
|
||
services = {
|
||
xserver = {
|
||
displayManager.lightdm.enable = false;
|
||
|
||
desktopManager.phosh = {
|
||
enable = true;
|
||
group = "users";
|
||
user = username;
|
||
};
|
||
};
|
||
|
||
udisks2.enable = mkForce false;
|
||
pipewire.enable = mkForce false;
|
||
greetd.enable = mkForce false;
|
||
};
|
||
|
||
boot = {
|
||
enableContainers = false;
|
||
|
||
binfmt.emulatedSystems = mkForce [ ];
|
||
loader.systemd-boot.enable = mkIf (pkgs.system == "aarch64-linux") (mkForce false);
|
||
|
||
kernel.sysctl = {
|
||
"vm.dirty_background_ratio" = 5;
|
||
"vm.dirty_ratio" = 10;
|
||
};
|
||
};
|
||
|
||
documentation = {
|
||
enable = false;
|
||
man.generateCaches = false;
|
||
};
|
||
|
||
hardware.graphics.enable32Bit = mkForce false;
|
||
|
||
powerManagement = {
|
||
enable = true;
|
||
|
||
cpufreq = rec {
|
||
min = 816000;
|
||
max = min;
|
||
};
|
||
|
||
cpuFreqGovernor = "performance";
|
||
};
|
||
}
|