diff --git a/flake.lock b/flake.lock index 857f8f0..cc8de3d 100644 --- a/flake.lock +++ b/flake.lock @@ -128,11 +128,11 @@ ] }, "locked": { - "lastModified": 1738453229, - "narHash": "sha256-7H9XgNiGLKN1G1CgRh0vUL4AheZSYzPm+zmZ7vxbJdo=", + "lastModified": 1740872218, + "narHash": "sha256-ZaMw0pdoUKigLpv9HiNDH2Pjnosg7NBYMJlHTIsHEUo=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "32ea77a06711b758da0ad9bd6a844c5740a87abd", + "rev": "3876f6b87db82f33775b1ef5ea343986105db764", "type": "github" }, "original": { @@ -150,11 +150,11 @@ ] }, "locked": { - "lastModified": 1736143030, - "narHash": "sha256-+hu54pAoLDEZT9pjHlqL9DNzWz0NbUn8NEAHP7PQPzU=", + "lastModified": 1738453229, + "narHash": "sha256-7H9XgNiGLKN1G1CgRh0vUL4AheZSYzPm+zmZ7vxbJdo=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "b905f6fc23a9051a6e1b741e1438dbfc0634c6de", + "rev": "32ea77a06711b758da0ad9bd6a844c5740a87abd", "type": "github" }, "original": { @@ -188,11 +188,11 @@ ] }, "locked": { - "lastModified": 1737465171, - "narHash": "sha256-R10v2hoJRLq8jcL4syVFag7nIGE7m13qO48wRIukWNg=", + "lastModified": 1740870877, + "narHash": "sha256-LWDIJvKWMW0tiih1jTcAK0ncTi3S9IF3gOhpCT1ydik=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "9364dc02281ce2d37a1f55b6e51f7c0f65a75f17", + "rev": "25d4946dfc2021584f5bde1fbd2aa97353384a95", "type": "github" }, "original": { @@ -232,11 +232,11 @@ ] }, "locked": { - "lastModified": 1738237977, - "narHash": "sha256-oJN/yvRL7G0WlR/hTkQIjFbPkzCV+sFnNB/38Tb9RL4=", + "lastModified": 1739595404, + "narHash": "sha256-0CjCfbq0yHWexOrpO06e2WU1r5JAqR6ffy1zgM3NksI=", "owner": "hercules-ci", "repo": "hercules-ci-effects", - "rev": "6d1b6d5d59758b4f5f05745f774fc13cdc59da43", + "rev": "06519cec8fb32d219006da6eacd255504a9996af", "type": "github" }, "original": { @@ -252,11 +252,11 @@ ] }, "locked": { - "lastModified": 1736373539, - "narHash": "sha256-dinzAqCjenWDxuy+MqUQq0I4zUSfaCvN9rzuCmgMZJY=", + "lastModified": 1739757849, + "narHash": "sha256-Gs076ot1YuAAsYVcyidLKUMIc4ooOaRGO0PqTY7sBzA=", "owner": "nix-community", "repo": "home-manager", - "rev": "bd65bc3cde04c16755955630b344bc9e35272c56", + "rev": "9d3d080aec2a35e05a15cedd281c2384767c2cfe", "type": "github" }, "original": { @@ -277,11 +277,11 @@ "treefmt-nix": "treefmt-nix" }, "locked": { - "lastModified": 1739060572, - "narHash": "sha256-b66lHmfaZ4lKAG5VW8wC7fba2vUs6OMRlJumO4xMEfc=", + "lastModified": 1740874225, + "narHash": "sha256-sdBT6Njf1MDVnb4kLbGhCpXQ2P7E+50TRW1mIdujFEE=", "owner": "nix-community", "repo": "neovim-nightly-overlay", - "rev": "4452574d52632a36458cd9c80f6303f556460221", + "rev": "ee3854351ae89ad79eb148d4253263aeaa936913", "type": "github" }, "original": { @@ -293,11 +293,11 @@ "neovim-src": { "flake": false, "locked": { - "lastModified": 1739058097, - "narHash": "sha256-QNlqRh8BnmSgJ6e5CRII9og+Z7fBfMAUbL3g66O8ZXg=", + "lastModified": 1740870130, + "narHash": "sha256-nrKnJhmplq4QMcenY/bpD6SHOsiN3VS2toUtsO9NfII=", "owner": "neovim", "repo": "neovim", - "rev": "59edd7c88a13d793501b88c55803da8a0ba7c739", + "rev": "13513835798c732554de277229d4c6744df11502", "type": "github" }, "original": { @@ -313,11 +313,11 @@ ] }, "locked": { - "lastModified": 1739034224, - "narHash": "sha256-Mj/8jDzh1KNmUhWqEeVlW3hO9MZkxqioJGnmR7rivaE=", + "lastModified": 1740755725, + "narHash": "sha256-amZbqP84H/ApugaT+TADXTB3NbjkVHI9Vac1saIk0kE=", "owner": "LnL7", "repo": "nix-darwin", - "rev": "0b6f96a6b9efcfa8d3cc8023008bcbcd1b9bc1a4", + "rev": "5d6e0851b60508cffd66b4a6982440a40720338d", "type": "github" }, "original": { @@ -381,11 +381,11 @@ ] }, "locked": { - "lastModified": 1737057290, - "narHash": "sha256-3Pe0yKlCc7EOeq1X/aJVDH0CtNL+tIBm49vpepwL1MQ=", + "lastModified": 1740947705, + "narHash": "sha256-Co2kAD2SZalOm+5zoxmzEVZNvZ17TyafuFsD46BwSdY=", "owner": "nix-community", "repo": "nixos-generators", - "rev": "d002ce9b6e7eb467cd1c6bb9aef9c35d191b5453", + "rev": "507911df8c35939050ae324caccc7cf4ffb76565", "type": "github" }, "original": { @@ -396,11 +396,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1739019272, - "narHash": "sha256-7Fu7oazPoYCbDzb9k8D/DdbKrC3aU1zlnc39Y8jy/s8=", + "lastModified": 1740791350, + "narHash": "sha256-igS2Z4tVw5W/x3lCZeeadt0vcU9fxtetZ/RyrqsCRQ0=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "fa35a3c8e17a3de613240fea68f876e5b4896aec", + "rev": "199169a2135e6b864a888e89a2ace345703c025d", "type": "github" }, "original": { @@ -412,11 +412,11 @@ }, "nixpkgsSmall": { "locked": { - "lastModified": 1739055578, - "narHash": "sha256-2MhC2Bgd06uI1A0vkdNUyDYsMD0SLNGKtD8600mZ69A=", + "lastModified": 1740932899, + "narHash": "sha256-F0qDu2egq18M3edJwEOAE+D+VQ+yESK6YWPRQBfOqq8=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "a45fa362d887f4d4a7157d95c28ca9ce2899b70e", + "rev": "1546c45c538633ae40b93e2d14e0bb6fd8f13347", "type": "github" }, "original": { @@ -428,11 +428,11 @@ }, "nixpkgsUnstable": { "locked": { - "lastModified": 1739020877, - "narHash": "sha256-mIvECo/NNdJJ/bXjNqIh8yeoSjVLAuDuTUzAo7dzs8Y=", + "lastModified": 1740828860, + "narHash": "sha256-cjbHI+zUzK5CPsQZqMhE3npTyYFt9tJ3+ohcfaOF/WM=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "a79cfe0ebd24952b580b1cf08cd906354996d547", + "rev": "303bd8071377433a2d8f76e684ec773d70c5b642", "type": "github" }, "original": { @@ -444,11 +444,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1738843498, - "narHash": "sha256-7x+Q4xgFj9UxZZO9aUDCR8h4vyYut4zPUvfj3i+jBHE=", + "lastModified": 1740865531, + "narHash": "sha256-h00vGIh/jxcGl8aWdfnVRD74KuLpyY3mZgMFMy7iKIc=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "f5a32fa27df91dfc4b762671a0e0a859a8a0058f", + "rev": "5ef6c425980847c78a80d759abc476e941a9bf42", "type": "github" }, "original": { @@ -512,11 +512,11 @@ "nixpkgs": "nixpkgs_3" }, "locked": { - "lastModified": 1738291974, - "narHash": "sha256-wkwYJc8cKmmQWUloyS9KwttBnja2ONRuJQDEsmef320=", + "lastModified": 1739262228, + "narHash": "sha256-7JAGezJ0Dn5qIyA2+T4Dt/xQgAbhCglh6lzCekTVMeU=", "owner": "Mic92", "repo": "sops-nix", - "rev": "4c1251904d8a08c86ac6bc0d72cc09975e89aef7", + "rev": "07af005bb7d60c7f118d9d9f5530485da5d1e975", "type": "github" }, "original": { @@ -548,11 +548,11 @@ ] }, "locked": { - "lastModified": 1738953846, - "narHash": "sha256-yrK3Hjcr8F7qS/j2F+r7C7o010eVWWlm4T1PrbKBOxQ=", + "lastModified": 1739829690, + "narHash": "sha256-mL1szCeIsjh6Khn3nH2cYtwO5YXG6gBiTw1A30iGeDU=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "4f09b473c936d41582dd744e19f34ec27592c5fd", + "rev": "3d0579f5cc93436052d94b73925b48973a104204", "type": "github" }, "original": { diff --git a/home-manager/home.nix b/home-manager/home.nix index 6dd51f5..ab3ddb6 100644 --- a/home-manager/home.nix +++ b/home-manager/home.nix @@ -1,4 +1,11 @@ -{ config, pkgs, lib, osConfig, inputs, ... }: +{ + config, + pkgs, + lib, + osConfig, + inputs, + ... +}: { # Home Manager needs a bit of information about you and the paths it should @@ -15,9 +22,11 @@ # release notes. home.stateVersion = "24.05"; # Please read the comment before changing. - nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [ - "vscode" - ]; + nixpkgs.config.allowUnfreePredicate = + pkg: + builtins.elem (lib.getName pkg) [ + "vscode" + ]; # The home.packages option allows you to install Nix packages into your # environment. @@ -25,14 +34,13 @@ # # Adds the 'hello' command to your environment. It prints a friendly # # "Hello, world!" when run. # pkgs.hello - - + # # It is sometimes useful to fine-tune packages, for example, by applying # # overrides. You can do that directly here, just don't forget the # # parentheses. Maybe you want to install Nerd Fonts with a limited number of # # fonts? (pkgs.nerdfonts.override { fonts = [ "CodeNewRoman" ]; }) - + pkgs.dm-sans pkgs.zoxide pkgs.btop @@ -84,8 +92,12 @@ pkgs.libsixel pkgs.walker + pkgs.unzip + pkgs.p7zip + + pkgs.nixfmt-rfc-style # # You can also create simple shell scripts directly inside your - # # configuration. For example, this adds a command 'my-hello' to your + # # configuration. For example, this adds a command 'my-hello' to your # # environment: # (pkgs.writeShellScriptBin "my-hello" '' # echo "Hello, ${config.home.username}!" @@ -124,7 +136,7 @@ }; programs.zoxide.enable = true; - programs.zoxide.enableBashIntegration= true; + programs.zoxide.enableBashIntegration = true; programs.zoxide.options = [ "--cmd cd" ]; @@ -165,15 +177,15 @@ name = "miku-cursor-linux"; size = 32; gtk.enable = true; - package = pkgs.callPackage ../packages/miku-cursor.nix {}; + package = pkgs.callPackage ../packages/miku-cursor.nix { }; }; programs.git = { userName = "harry123"; - userEmail = "harryh@ik.me"; + userEmail = "harryh@ik.me"; enable = true; extraConfig = { - credential.helper = "${pkgs.git.override { withLibsecret = true; }}/bin/git-credential-libsecret"; + credential.helper = "${pkgs.git.override { withLibsecret = true; }}/bin/git-credential-libsecret"; }; }; @@ -183,19 +195,19 @@ latitude = 49.0; longitude = 8.4; }; -/* - xdg.mimeApps = { - enable = true; - defaultApplications = { - "text/html" = "firefox.desktop"; - "x-scheme-handler/http" = "firefox.desktop"; - "x-scheme-handler/https" = "firefox.desktop"; - "x-scheme-handler/about" = "firefox.desktop"; - "x-scheme-handler/unknown" = "firefox.desktop"; - "application/pdf" = "org.pwmt.zathura-pdf-mupdf.desktop"; + /* + xdg.mimeApps = { + enable = true; + defaultApplications = { + "text/html" = "firefox.desktop"; + "x-scheme-handler/http" = "firefox.desktop"; + "x-scheme-handler/https" = "firefox.desktop"; + "x-scheme-handler/about" = "firefox.desktop"; + "x-scheme-handler/unknown" = "firefox.desktop"; + "application/pdf" = "org.pwmt.zathura-pdf-mupdf.desktop"; + }; }; - }; -*/ + */ programs.foot = { enable = true; server.enable = true; diff --git a/hosts/goober/configuration.nix b/hosts/goober/configuration.nix index b304356..9ed0989 100644 --- a/hosts/goober/configuration.nix +++ b/hosts/goober/configuration.nix @@ -2,32 +2,39 @@ # your system. Help is available in the configuration.nix(5) man page, on # https://search.nixos.org/options and in the NixOS manual (`nixos-help`). -{ config, lib, pkgs, inputs, ... }: +{ + config, + lib, + pkgs, + inputs, + ... +}: { - imports = - [ # Include the results of the hardware scan. - ./hardware-configuration.nix - ../../features/client/tailscale.nix - ../../features/client/sway.nix - ./features/default.nix - ]; + imports = [ + # Include the results of the hardware scan. + ./hardware-configuration.nix + ../../features/client/tailscale.nix + ../../features/client/sway.nix + ./features/default.nix + ./overlays/foot-overlay.nix + ]; nixpkgs.config.allowUnfree = true; boot.loader = { efi.canTouchEfiVariables = true; grub = { enable = true; - devices = ["nodev"]; + devices = [ "nodev" ]; efiSupport = true; useOSProber = true; }; }; - + time.hardwareClockInLocalTime = true; networking.hostName = "goober"; # Define your hostname. - networking.networkmanager.enable = true; # Easiest to use and most distros use this by default. + networking.networkmanager.enable = true; # Easiest to use and most distros use this by default. # Set your time zone. time.timeZone = "Europe/Paris"; @@ -37,21 +44,27 @@ console = { font = "Lat2-Terminus16"; keyMap = "fr"; - # useXkbConfig = true; # use xkb.options in tty. + # useXkbConfig = true; # use xkb.options in tty. }; # mount compression fileSystems = { - "/".options = ["compress=zstd"]; - "/home".options = ["compress=zstd"]; - "/nix".options = ["compress=zstd" "noatime"]; + "/".options = [ "compress=zstd" ]; + "/home".options = [ "compress=zstd" ]; + "/nix".options = [ + "compress=zstd" + "noatime" + ]; #"/swap".options = ["compress=zstd"]; }; - + services.btrfs.autoScrub.enable = true; services.btrfs.autoScrub.interval = "weekly"; - nix.settings.experimental-features = ["nix-command" "flakes"]; + nix.settings.experimental-features = [ + "nix-command" + "flakes" + ]; # Configure keymap in X11 # services.xserver.xkb.layout = "us"; # services.xserver.xkb.options = "eurosign:e,caps:escape"; @@ -65,7 +78,11 @@ # Define a user account. Don't forget to set a password with ‘passwd’. users.users.harry123 = { isNormalUser = true; - extraGroups = [ "wheel" "audio" "video" ]; # Enable ‘sudo’ for the user. + extraGroups = [ + "wheel" + "audio" + "video" + ]; # Enable ‘sudo’ for the user. packages = with pkgs; [ firefox tailscale @@ -96,10 +113,9 @@ enableSSHSupport = true; }; - services.udisks2.enable = true ; + services.udisks2.enable = true; - - security.pam.services.swaylock = {}; + security.pam.services.swaylock = { }; # cleaning old builds nix.gc = { @@ -107,6 +123,7 @@ randomizedDelaySec = "14m"; options = "--delete-older-than 10d"; }; + # List services that you want to enable: # Enable the OpenSSH daemon. @@ -138,4 +155,3 @@ system.stateVersion = "24.05"; # Did you read the comment? } - diff --git a/hosts/goober/features/hardware/default.nix b/hosts/goober/features/hardware/default.nix index 3f10141..19b59bf 100644 --- a/hosts/goober/features/hardware/default.nix +++ b/hosts/goober/features/hardware/default.nix @@ -1,8 +1,9 @@ -{config, ...}: +{ config, ... }: { imports = [ ./bluetooth.nix ./pipewire.nix ./nvidia.nix + ./ios-phone-support.nix ]; } diff --git a/hosts/goober/features/hardware/ios-phone-support.nix b/hosts/goober/features/hardware/ios-phone-support.nix new file mode 100644 index 0000000..9bf960f --- /dev/null +++ b/hosts/goober/features/hardware/ios-phone-support.nix @@ -0,0 +1,14 @@ +{ config, pkgs, ... }: +{ + services.usbmuxd = { + enable = true; + package = pkgs.usbmuxd2; + }; + + environment.systemPackages = with pkgs; [ + libimobiledevice + usbutils + ifuse # optional, to mount using 'ifuse' + ]; + +} diff --git a/overlays/foot-overlay.nix b/overlays/foot-overlay.nix new file mode 100644 index 0000000..d775c77 --- /dev/null +++ b/overlays/foot-overlay.nix @@ -0,0 +1,19 @@ +{ config, lib, pkgs, ... }: +{ + let foot-next = pkgs.foot.overrideAttrs (oldAttrs: rec { + inherit (oldAttrs) name; + version = "1.20.2"; + src = pkgs.fetchFromGitea { + domain = "codeberg.org"; + owner = "dnkl"; + repo = "foot"; + rev = version; + hash = "sha256-tnBoRRKHcuvBSnqvJ/772UWuepvpUiSg6t+gx4MZ0VQ="; + }; + }) in + nixpkgs.overlays = [( + final: previous: { + foot = foot-next; + } + )]; +} \ No newline at end of file