From f70a18723f7330df090f52d408f0f74fb55884d5 Mon Sep 17 00:00:00 2001 From: Vivian Date: Wed, 24 Apr 2024 12:05:59 +0200 Subject: [PATCH] various updates --- assets/wallpaper-nix-pink.png | Bin 0 -> 60838 bytes common/desktop/home.nix | 5 +- common/hm-modules/catppuccin/default.nix | 13 +- common/hm-modules/nvim/default.nix | 2 +- common/hm-modules/rust.nix | 11 +- common/users/default.nix | 28 +++- flake.lock | 98 ++++++------ flake.nix | 2 +- hosts/thalassa/aoife/default.nix | 18 ++- hosts/thalassa/aoife/domain.crt | 21 +++ hosts/thalassa/aoife/home/default.nix | 4 +- hosts/thalassa/aoife/home/hyprland.nix | 87 ++++++++--- hosts/thalassa/aoife/home/starship.nix | 17 +++ hosts/thalassa/aoife/uni.nix | 19 ++- hosts/thalassa/null/home/default.nix | 183 ++++++++++++++++++++--- pkgs/default.nix | 3 +- pkgs/hyprland-workspaces/default.nix | 20 +++ 17 files changed, 415 insertions(+), 116 deletions(-) create mode 100644 assets/wallpaper-nix-pink.png create mode 100644 hosts/thalassa/aoife/domain.crt create mode 100644 hosts/thalassa/aoife/home/starship.nix create mode 100644 pkgs/hyprland-workspaces/default.nix diff --git a/assets/wallpaper-nix-pink.png b/assets/wallpaper-nix-pink.png new file mode 100644 index 0000000000000000000000000000000000000000..e8a88d7899e8b13dc38167723e00c9a263f7e748 GIT binary patch literal 60838 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 Mu5v9){-MwR0ry0FWB>pF literal 0 HcmV?d00001 diff --git a/common/desktop/home.nix b/common/desktop/home.nix index 7d780ad5..89832ef7 100644 --- a/common/desktop/home.nix +++ b/common/desktop/home.nix @@ -22,6 +22,7 @@ let flask ipwhois pyasn + z3-solver ]; in { @@ -37,9 +38,8 @@ in gcc gimp inputs.attic.packages.${pkgs.system}.attic - inputs.comma.packages.${pkgs.system}.default + comma discord - jetbrains.clion jetbrains.rust-rover kdenlive libreoffice-fresh @@ -54,6 +54,7 @@ in tex unzip yt-dlp + # z3 ]; # Enable my own hm modules diff --git a/common/hm-modules/catppuccin/default.nix b/common/hm-modules/catppuccin/default.nix index 3fabb170..e8a184f5 100644 --- a/common/hm-modules/catppuccin/default.nix +++ b/common/hm-modules/catppuccin/default.nix @@ -6,6 +6,7 @@ }: with lib; let + inherit (builtins) fromTOML readFile; cfg = config.themes.v.catppuccin; mako = pkgs.fetchFromGitHub { owner = "catppuccin"; @@ -13,6 +14,12 @@ let rev = "9dd088aa5f4529a3dd4d9760415e340664cb86df"; sha256 = "sha256-nUzWkQVsIH4rrCFSP87mXAka6P+Td2ifNbTuP7NM/SQ="; }; + starship = pkgs.fetchFromGitHub { + owner = "catppuccin"; + repo = "starship"; + rev = "5629d2356f62a9f2f8efad3ff37476c19969bd4f"; + sha256 = "sha256-nsRuxQFKbQkyEI4TXgvAjcroVdG+heKX5Pauq/4Ota0="; + }; in { options.themes.v.catppuccin = { @@ -69,7 +76,11 @@ in }) ]; - programs.mako.extraConfig = builtins.readFile "${mako}/src/frappe"; + programs.mako.extraConfig = readFile "${mako}/src/frappe"; + + programs.starship.settings = { + palette = "catppuccin_frappe"; + } //fromTOML (readFile "${starship}/palettes/frappe.toml"); programs.vscode = { userSettings."workbench.colorTheme" = "Catppuccin Frappé"; diff --git a/common/hm-modules/nvim/default.nix b/common/hm-modules/nvim/default.nix index 53b966bf..3bc2b7ba 100644 --- a/common/hm-modules/nvim/default.nix +++ b/common/hm-modules/nvim/default.nix @@ -296,7 +296,7 @@ with lib; telescope = { enable = true; defaults.preview.ls_short = true; - extensions.file_browser = { + extensions.file-browser = { enable = true; hijackNetrw = true; dirIcon = ""; diff --git a/common/hm-modules/rust.nix b/common/hm-modules/rust.nix index d822f8d6..11b1e2fb 100644 --- a/common/hm-modules/rust.nix +++ b/common/hm-modules/rust.nix @@ -28,15 +28,16 @@ in [build] rustc-wrapper = "${pkgs.sccache}/bin/sccache" - - [target.'cfg(not(target_arch = "mips"))'] - linker = "${pkgs.clang}/bin/clang" - rustflags = ["-C", "link-arg=-fuse-ld=${pkgs.mold}/bin/mold"] - [profile.rust-analyzer] inherits = "dev" ''; + # [target.'cfg(not(target_arch = "mips"))'] + # linker = "${pkgs.clang}/bin/clang" + # rustflags = ["-C", "link-arg=-fuse-ld=${pkgs.mold}/bin/mold"] + + + sessionPath = [ "$HOME/.cargo/bin" ]; }; }; diff --git a/common/users/default.nix b/common/users/default.nix index 79f64479..07f80481 100644 --- a/common/users/default.nix +++ b/common/users/default.nix @@ -1,5 +1,16 @@ -{ config, pkgs, lib, inputs, ... }: { - imports = [ ./laura.nix ./vivian.nix ./jonathan.nix ]; +{ + config, + pkgs, + lib, + inputs, + ... +}: +{ + imports = [ + ./laura.nix + ./vivian.nix + ./jonathan.nix + ]; programs = { # Setup ZSH to use grml config @@ -11,15 +22,16 @@ interactiveShellInit = '' source "${pkgs.grml-zsh-config}/etc/zsh/zshrc" export FZF_DEFAULT_COMMAND="${pkgs.ripgrep}/bin/rg --files --follow" - source "${pkgs.fzf}/share/fzf/key-bindings.zsh" - source "${pkgs.fzf}/share/fzf/completion.zsh" + export FZF_CTRL_T_COMMAND="$FZF_DEFAULT_COMMAND" + export FZF_CTRL_R_COMMAND="$FZF_DEFAULT_COMMAND" eval "$(${pkgs.zoxide}/bin/zoxide init zsh)" + eval "$(${pkgs.fzf}/bin/fzf --zsh)" export TEMPDIRS="$HOME/tmp" source "${inputs.t.packages.${pkgs.system}.default}/bin/t-rs.sh" ''; # otherwise it'll override the grml prompt - promptInit = ""; + # promptInit = lib.mkDefault ""; }; # Install Neovim and set it as alias for vi(m) @@ -39,8 +51,7 @@ # Configure the root account users.extraUsers.root = { # Allow my SSH keys for logging in as root. - openssh.authorizedKeys.keys = - config.users.extraUsers.vivian.openssh.authorizedKeys.keys; + openssh.authorizedKeys.keys = config.users.extraUsers.vivian.openssh.authorizedKeys.keys; # Also use zsh for root shell = pkgs.zsh; }; @@ -57,6 +68,9 @@ ripgrep rsync zoxide + + # Terminfo + pkgs.kitty.terminfo ]; programs.tmux = { diff --git a/flake.lock b/flake.lock index 0dfd34d1..11db4249 100644 --- a/flake.lock +++ b/flake.lock @@ -132,11 +132,11 @@ ] }, "locked": { - "lastModified": 1711099426, - "narHash": "sha256-HzpgM/wc3aqpnHJJ2oDqPBkNsqWbW0WfWUO8lKu8nGk=", + "lastModified": 1713532798, + "narHash": "sha256-wtBhsdMJA3Wa32Wtm1eeo84GejtI43pMrFrmwLXrsEc=", "owner": "numtide", "repo": "devshell", - "rev": "2d45b54ca4a183f2fdcf4b19c895b64fbf620ee8", + "rev": "12e914740a25ea1891ec619bb53cf5e6ca922e40", "type": "github" }, "original": { @@ -321,11 +321,11 @@ ] }, "locked": { - "lastModified": 1709336216, - "narHash": "sha256-Dt/wOWeW6Sqm11Yh+2+t0dfEWxoMxGBvv3JpIocFl9E=", + "lastModified": 1712014858, + "narHash": "sha256-sB4SWl2lX95bExY2gMFG5HIzvva5AVMJd4Igm+GpZNw=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "f7b3c975cf067e56e7cda6cb098ebe3fb4d74ca2", + "rev": "9126214d0a59633752a136528f5f3b9aa8565b7d", "type": "github" }, "original": { @@ -631,11 +631,11 @@ ] }, "locked": { - "lastModified": 1712093955, - "narHash": "sha256-94I0sXz6fiVBvUAk2tg6t3UpM5rOImj4JTSTNFbg64s=", + "lastModified": 1713906585, + "narHash": "sha256-fv84DCOkBtjF6wMATt0rfovu7e95L8rdEkSfNbwKR3U=", "owner": "nix-community", "repo": "home-manager", - "rev": "80546b220e95a575c66c213af1b09fe255299438", + "rev": "bfa7c06436771e3a0c666ccc6ee01e815d4c33aa", "type": "github" }, "original": { @@ -652,11 +652,11 @@ ] }, "locked": { - "lastModified": 1711625603, - "narHash": "sha256-W+9dfqA9bqUIBV5u7jaIARAzMe3kTq/Hp2SpSVXKRQw=", + "lastModified": 1713732794, + "narHash": "sha256-AYCofb8Zu4Mbc1lHDtju/uxeARawRijmOueAqEMEfMU=", "owner": "nix-community", "repo": "home-manager", - "rev": "c0ef0dab55611c676ad7539bf4e41b3ec6fa87d2", + "rev": "670d9ecc3e46a6e3265c203c2d136031a3d3548e", "type": "github" }, "original": { @@ -678,11 +678,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1711442573, - "narHash": "sha256-/A3YzcY5erYOPojp5Ffwgxv4X5MTnRiWwuaXfgXbK2g=", + "lastModified": 1713369831, + "narHash": "sha256-G4OGxvlIIjphpkxcRAkf1QInYsAeqbfNh6Yl1JLy2uM=", "owner": "nix-community", "repo": "lanzaboote", - "rev": "df7ac26bd24fac8baa94d60a02c3e0f0d4d16368", + "rev": "850f27322239f8cfa56b122cc9a278ab99a49015", "type": "github" }, "original": { @@ -717,11 +717,11 @@ "utils": "utils_2" }, "locked": { - "lastModified": 1710449465, - "narHash": "sha256-2orO8nfplp6uQJBFqKkj1iyNMC6TysmwbWwbb4osTag=", + "lastModified": 1713012165, + "narHash": "sha256-z/soXKDnz+w4Nw0LkRaM73YqolhSmIYy6cpg1F2ps8I=", "owner": "simple-nixos-mailserver", "repo": "nixos-mailserver", - "rev": "79c8cfcd5873a85559da6201b116fb38b490d030", + "rev": "9f6635a0351c190179dc6904545f950108a23dd8", "type": "gitlab" }, "original": { @@ -737,11 +737,11 @@ "spectrum": "spectrum" }, "locked": { - "lastModified": 1711753492, - "narHash": "sha256-lLlXQBebD6wd2m7vjXg2zQ8tfJF2a70RL+zXdbaQqn0=", + "lastModified": 1713463636, + "narHash": "sha256-IPdnR0Rs7XoffnCn6rExYDlft/GHD/UFgQ11lTVEK48=", "owner": "astro", "repo": "microvm.nix", - "rev": "1b7c70b198554d0f0306ec153c94906623437aed", + "rev": "6a4f822a817180be03fcdceb654088d002c9ec5e", "type": "github" }, "original": { @@ -777,11 +777,11 @@ ] }, "locked": { - "lastModified": 1711763326, - "narHash": "sha256-sXcesZWKXFlEQ8oyGHnfk4xc9f2Ip0X/+YZOq3sKviI=", + "lastModified": 1713543876, + "narHash": "sha256-olEWxacm1xZhAtpq+ZkEyQgR4zgfE7ddpNtZNvubi3g=", "owner": "lnl7", "repo": "nix-darwin", - "rev": "36524adc31566655f2f4d55ad6b875fb5c1a4083", + "rev": "9e7c20ffd056e406ddd0276ee9d89f09c5e5f4ed", "type": "github" }, "original": { @@ -792,11 +792,11 @@ }, "nixlib": { "locked": { - "lastModified": 1711846064, - "narHash": "sha256-cqfX0QJNEnge3a77VnytM0Q6QZZ0DziFXt6tSCV8ZSc=", + "lastModified": 1712450863, + "narHash": "sha256-K6IkdtMtq9xktmYPj0uaYc8NsIqHuaAoRBaMgu9Fvrw=", "owner": "nix-community", "repo": "nixpkgs.lib", - "rev": "90b1a963ff84dc532db92f678296ff2499a60a87", + "rev": "3c62b6a12571c9a7f65ab037173ee153d539905f", "type": "github" }, "original": { @@ -813,11 +813,11 @@ ] }, "locked": { - "lastModified": 1711932680, - "narHash": "sha256-CEpVtyB7uyRprTuiG+lpWWMvM/C0CbY/dbBuxT5BDwM=", + "lastModified": 1713783234, + "narHash": "sha256-3yh0nqI1avYUmmtqqTW3EVfwaLE+9ytRWxsA5aWtmyI=", "owner": "nix-community", "repo": "nixos-generators", - "rev": "1f4c32ca4295bb7cca1e48a2f39b65490b249b0b", + "rev": "722b512eb7e6915882f39fff0e4c9dd44f42b77e", "type": "github" }, "original": { @@ -828,11 +828,11 @@ }, "nixos-hardware": { "locked": { - "lastModified": 1711352745, - "narHash": "sha256-luvqik+i3HTvCbXQZgB6uggvEcxI9uae0nmrgtXJ17U=", + "lastModified": 1713864415, + "narHash": "sha256-/BPDMJEkrsFAFOsQWhwm31wezlgshPFlLBn34KEUdVA=", "owner": "nixos", "repo": "nixos-hardware", - "rev": "9a763a7acc4cfbb8603bb0231fec3eda864f81c0", + "rev": "797f8d8082c7cc3259cba7275c699d4991b09ecc", "type": "github" }, "original": { @@ -939,26 +939,26 @@ }, "nixpkgs_4": { "locked": { - "lastModified": 1712047400, - "narHash": "sha256-P1ddj7Anx1zQXyn1RqLcleA3ZL/8cmewWjdm2nR7mc8=", + "lastModified": 1713714899, + "narHash": "sha256-+z/XjO3QJs5rLE5UOf015gdVauVRQd2vZtsFkaXBq2Y=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "43f956227e7bbcb11aa54ce1294f6b5bdf6c8fad", + "rev": "6143fc5eeb9c4f00163267708e26191d1e918932", "type": "github" }, "original": { "id": "nixpkgs", - "ref": "nixos-unstable-small", + "ref": "nixos-unstable", "type": "indirect" } }, "nixpkgs_5": { "locked": { - "lastModified": 1711703276, - "narHash": "sha256-iMUFArF0WCatKK6RzfUJknjem0H9m4KgorO/p3Dopkk=", + "lastModified": 1713714899, + "narHash": "sha256-+z/XjO3QJs5rLE5UOf015gdVauVRQd2vZtsFkaXBq2Y=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "d8fe5e6c92d0d190646fb9f1056741a229980089", + "rev": "6143fc5eeb9c4f00163267708e26191d1e918932", "type": "github" }, "original": { @@ -1011,11 +1011,11 @@ "pre-commit-hooks": "pre-commit-hooks" }, "locked": { - "lastModified": 1712057047, - "narHash": "sha256-o5KSQO82/sCgaaSsZONTeb+P47MXo0bbp+eID9I0CwI=", + "lastModified": 1713939051, + "narHash": "sha256-EwDbsFjpXANXd2MIvRm4Bz2CDNWIhlV/659xOAxhEv0=", "owner": "pta2002", "repo": "nixvim", - "rev": "7baefc8aa587931827797db7fbd55a733179dc79", + "rev": "f2f97d844bb39559f3356e209b49c92900d860b8", "type": "github" }, "original": { @@ -1026,11 +1026,11 @@ }, "nur": { "locked": { - "lastModified": 1712127152, - "narHash": "sha256-LPFdS9oxJfLsIPn3/59p/n43EgUV3InMZdhlhmMg8WI=", + "lastModified": 1713947685, + "narHash": "sha256-8faxXE53zBQmr5lsVZvT9Vh8CW7dNSwphIasPP4S1UI=", "owner": "nix-community", "repo": "NUR", - "rev": "9d71b5e8ad6127de490d4715170ce32e767f2d0f", + "rev": "a5a62f60303597824baa29266ebf218de266d3d5", "type": "github" }, "original": { @@ -1054,11 +1054,11 @@ ] }, "locked": { - "lastModified": 1711760932, - "narHash": "sha256-DqUTQ2iAAqSDwMhKBqvi24v0Oc7pD3LCK/0FCG//TdA=", + "lastModified": 1713775815, + "narHash": "sha256-Wu9cdYTnGQQwtT20QQMg7jzkANKQjwBD9iccfGKkfls=", "owner": "cachix", "repo": "pre-commit-hooks.nix", - "rev": "c11e43aed6f17336c25cd120eac886b96c455731", + "rev": "2ac4dcbf55ed43f3be0bae15e181f08a57af24a4", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 8342fc5f..0bbace16 100644 --- a/flake.nix +++ b/flake.nix @@ -5,7 +5,7 @@ # * https://github.com/Infinidoge/nix-minecraft inputs = { - nixpkgs.url = "nixpkgs/nixos-unstable-small"; + nixpkgs.url = "nixpkgs/nixos-unstable"; flake-utils-plus.url = "github:gytis-ivaskevicius/flake-utils-plus/v1.4.0"; nur.url = "github:nix-community/NUR"; colmena.url = "github:zhaofengli/colmena"; diff --git a/hosts/thalassa/aoife/default.nix b/hosts/thalassa/aoife/default.nix index af1cf94b..b35daac5 100644 --- a/hosts/thalassa/aoife/default.nix +++ b/hosts/thalassa/aoife/default.nix @@ -23,6 +23,8 @@ users.users.vivian.extraGroups = [ "adbusers" ]; + security.pki.certificateFiles = [ ./domain.crt ]; + # Bootloader. boot = { bootspec.enable = true; @@ -43,12 +45,20 @@ home-manager.users.vivian = import ./home; + programs.nix-ld.enable = true; + programs.nix-ld.libraries = with pkgs; [ + + # Add any missing dynamic libraries for unpackaged programs + + # here, NOT in environment.systemPackages + ]; + programs.hyprland.enable = true; services.gnome.gnome-keyring.enable = true; - services.gnome-autounlock-keyring = { - enable = true; - target = "hyprland-session.target"; - }; + # services.gnome-autounlock-keyring = { + # enable = true; + # target = "hyprland-session.target"; + # }; services.interception-tools = { enable = true; diff --git a/hosts/thalassa/aoife/domain.crt b/hosts/thalassa/aoife/domain.crt new file mode 100644 index 00000000..3713f443 --- /dev/null +++ b/hosts/thalassa/aoife/domain.crt @@ -0,0 +1,21 @@ +-----BEGIN CERTIFICATE----- +MIIDZTCCAk2gAwIBAgIUcCV6T0NduGa58qOcAhe9n8oOcEIwDQYJKoZIhvcNAQEL +BQAwWzELMAkGA1UEBhMCTkwxFTATBgNVBAgMDFp1aWQtSG9sbGFuZDEOMAwGA1UE +BwwFRGVsZnQxETAPBgNVBAoMCFRVIERlbGZ0MRIwEAYDVQQDDAlsb2NhbGhvc3Qw +HhcNMjQwNDA1MDgyMDQxWhcNMjUwNDA1MDgyMDQxWjBbMQswCQYDVQQGEwJOTDEV +MBMGA1UECAwMWnVpZC1Ib2xsYW5kMQ4wDAYDVQQHDAVEZWxmdDERMA8GA1UECgwI +VFUgRGVsZnQxEjAQBgNVBAMMCWxvY2FsaG9zdDCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBAIcX6xGqorbXkIqtH0ek2L9YAc0ruKF7aTpY9q7n6EpD4OC1 +Q575fvnEqBsvKC74xh1AO58x7HLxAIWmy76UqUxJIQ7vtfCKxFDjBDhgitmnxWK1 +3QCrHwFS3MThqOq0zhK7AqnpzzdHsj9zfPWbrhP86m4uugIAund2YiSUPX7ZrSSO +pY60bZiA2c3hJbqxg+NvNN1vZHEsPGaZHXMMrycw0bLOBoKPvbenl3ig23vsyRSO +MwiJgLK/ztMI6r2KMJVZofjbu1Mz+WPzotKaCrSArSRF36BOzafyxqgO0h3Vqp4W +Z6UpS1bFTpbJckz8LqNvlP/Z4mV5+1QyrwwN/iMCAwEAAaMhMB8wHQYDVR0OBBYE +FOSRI3SKLWlk2RamJJwyyFlP9UnhMA0GCSqGSIb3DQEBCwUAA4IBAQARLh5z4Ius +0kiejnMtzV5xAckbqbcultdEdGfjZciv3BM9C7DpEF5Nj8CbaK6TXrKh98bxQ6w+ +lPL/6LECkPhvHWRhTOsrhDV5h6eSPyV/TX4Jj127WnzA1LcjoEngUY97y6p/eBkE +hZWepPPAhuEmu/ws1UmF8vrT4sc+nMKXrOTsqkdUKHh2JZuFby3+SHDkYX66ZxXK +bQ3dEi6GyOkZIOuaNK+mS76yVanRU4k0A3dhIpW4pV6W12AAWioGaZv34uKVTp9E +XgNhqDC39lU4rLp260NvuRywAKxvR7hKyWfmwak5lr0dZ9t4eufPI4jU5SD+aotq +FVTMFwAKZO5v +-----END CERTIFICATE----- diff --git a/hosts/thalassa/aoife/home/default.nix b/hosts/thalassa/aoife/home/default.nix index 1a5e2341..a8ceaeab 100644 --- a/hosts/thalassa/aoife/home/default.nix +++ b/hosts/thalassa/aoife/home/default.nix @@ -1,5 +1,6 @@ { pkgs, ... }: { imports = [ + ./starship.nix ./hyprland.nix ]; @@ -15,7 +16,6 @@ home.packages = with pkgs; [ libreoffice-fresh - jetbrains.clion jetbrains.rust-rover eduvpn-client localsend @@ -23,6 +23,4 @@ typst prismlauncher ]; - - ## Hyprland Config } diff --git a/hosts/thalassa/aoife/home/hyprland.nix b/hosts/thalassa/aoife/home/hyprland.nix index 4b25d03c..9de9947c 100644 --- a/hosts/thalassa/aoife/home/hyprland.nix +++ b/hosts/thalassa/aoife/home/hyprland.nix @@ -1,5 +1,17 @@ -{ pkgs, config, ... }: { + pkgs, + config, + inputs, + ... +}: +let + terminal = "${config.programs.kitty.package}/bin/kitty -1"; +in +{ + + home.packages = with pkgs; [ + v.hyprland-workspaces + ]; systemd.user.services.mako = { Install = { @@ -27,15 +39,23 @@ }; }; + xdg.configFile."hypr/hyprpaper.conf".text = + let + wallpaper = "/home/vivian/cloud/Pictures/Wallpapers-Laptop/wallpaper-nix-pink.png"; + in + '' + + ''; + programs = { wofi = { enable = true; }; - eww = { - enable = true; - configDir = ./eww; - }; + # eww = { + # enable = true; + # configDir = ./eww; + # }; mako.enable = true; @@ -59,15 +79,24 @@ wireplumber = { format = "󰕾 {volume}%"; format-muted = "󰖁"; - on-click = "wpctl set-mute @DEFAULT_SINK@ toggle"; + on-click = "${pkgs.wireplumber}/bin/wpctl set-mute @DEFAULT_SINK@ toggle"; }; - network = { - format-wifi = "󰖩 {essid} ({signalStrength}%)"; - format-ethernet = "󰈀 {ifname}: {ipaddr}/{cidr}"; - format-disconnected = "󰌙 "; - tooltip-format = "{ifname}: {ipaddr}"; - }; + network = + let + nmtui = pkgs.writeScriptBin "nmtui.sh" '' + #!${pkgs.stdenv.shell} + unset COLORTERM + TERM=xterm-old ${pkgs.networkmanager}/bin/nmtui + ''; + in + { + format-wifi = "󰖩 {essid} ({signalStrength}%)"; + format-ethernet = "󰈀 {ifname}: {ipaddr}/{cidr}"; + format-disconnected = "󰌙 "; + tooltip-format = "{ifname}: {ipaddr}"; + on-click = "touch ~/a && ${terminal} --execute ${nmtui}/bin/nmtui.sh"; + }; power-profiles-daemon = { format = "{icon}"; @@ -122,11 +151,25 @@ ''; startup = pkgs.writeScriptBin "startup.sh" '' #!${pkgs.stdenv.shell} - firefox & discord & - element-desktop & + + # start keyring, then unlock it, then start Element + gnome-keyring-daemon -r -d && ${ + inputs.gnome-autounlock-keyring.packages.${pkgs.system}.default + }/bin/gnome-autounlock-keyring unlock && element-desktop & ''; + hyprpaper-conf = + let + wallpaper = ../../../../assets/wallpaper-nix-pink.png; + in + pkgs.writeText "hyprpaper.conf" '' + preload = ${wallpaper} + wallpaper = eDP-1,${wallpaper} + + splash = false + ipc = off + ''; in { enable = true; @@ -138,12 +181,12 @@ wpctl = "${pkgs.wireplumber}/bin/wpctl"; brightnessctl = "${pkgs.brightnessctl}/bin/brightnessctl"; menu = "${config.programs.wofi.package}/bin/wofi --show run,drun"; - terminal = "${config.programs.kitty.package}/bin/kitty"; fileManager = "${pkgs.gnome.nautilus}/bin/nautilus"; in { "$mod" = "SUPER"; exec-once = [ + "${pkgs.hyprpaper}/bin/hyprpaper -c ${hyprpaper-conf}" "${startup}/bin/startup.sh" ]; monitor = [ @@ -157,21 +200,21 @@ gaps_in = 5; gaps_out = 10; border_size = 2; - "col.active_border" = "rgba(33ccffee) rgba(00ff99ee) 45deg"; - "col.inactive_border" = "rgba(595959aa)"; + "col.active_border" = "rgba(8caaeeee) rgba(a6d189ee) 45deg"; + "col.inactive_border" = "rgba(303446aa)"; layout = "dwindle"; # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on allow_tearing = false; }; group = { - "col.border_active" = "rgba(33ccffee) rgba(00ff99ee) 45deg"; - "col.border_inactive" = "rgba(595959aa)"; + "col.border_active" = "rgba(babbf1ee) rgba(f4b8e4ee) 45deg"; + "col.border_inactive" = "rgba(232634aa)"; groupbar = { font_size = 16; "col.active" = "rgba(babbf1aa)"; "col.inactive" = "rgba(414559aa)"; - text_color = "rgba(232634ff)"; + text_color = "rgba(81c8beee)"; }; }; decoration = { @@ -211,7 +254,7 @@ misc = { force_default_wallpaper = 2; disable_splash_rendering = true; - # disable_hyprland_logo = true; + disable_hyprland_logo = true; disable_autoreload = true; }; @@ -219,9 +262,9 @@ "suppressevent maximize, class:.* # You'll probably like this." "workspace 1 silent, class:^(Element)$" "workspace 1 silent, class:^(discord)$" + "group, class:^(Element|discord)$,workspace:1" "workspace 2 silent, class:^(firefox)$" "float,class:^(firefox)$,title:^(Picture-in-Picture)$" - "group set always,onworkspace:1 " ]; # l -> works when screen is locked diff --git a/hosts/thalassa/aoife/home/starship.nix b/hosts/thalassa/aoife/home/starship.nix new file mode 100644 index 00000000..72921686 --- /dev/null +++ b/hosts/thalassa/aoife/home/starship.nix @@ -0,0 +1,17 @@ +{ pkgs, config, ...}: +let + starshipNerdFont = pkgs.runCommand "starship-nerd-font.toml" { STARSHIP_CACHE = "/tmp"; } '' + ${config.programs.starship.package}/bin/starship preset nerd-font-symbols > $out + ''; +in{ + programs.starship = { + enable = true; + enableZshIntegration = true; + enableFishIntegration = true; + enableNushellIntegration = true; + + settings = { + nix_shell.heuristic = true; + } // builtins.fromTOML (builtins.readFile starshipNerdFont); + }; +} diff --git a/hosts/thalassa/aoife/uni.nix b/hosts/thalassa/aoife/uni.nix index 18e6464c..5257cdf9 100644 --- a/hosts/thalassa/aoife/uni.nix +++ b/hosts/thalassa/aoife/uni.nix @@ -1,8 +1,11 @@ # Config options needed for various university courses, such as: # * Wireless IoT and Local Area Networks # * Network Security -{ pkgs, ... }: { +# * Smart Phone Sensing +{ pkgs, ... }: +{ environment.systemPackages = with pkgs; [ + android-studio docker-compose bridge-utils nettools @@ -19,5 +22,17 @@ virtualisation.docker.enable = true; virtualisation.docker.storageDriver = "btrfs"; - users.extraUsers.vivian.extraGroups = [ "wireshark" "docker" "lxd" ]; + users.extraUsers.vivian.extraGroups = [ + "wireshark" + "docker" + "lxd" + ]; + + programs.nix-ld = { + enable = true; + package = pkgs.nix-ld-rs; + libraries = [ + + ]; + }; } diff --git a/hosts/thalassa/null/home/default.nix b/hosts/thalassa/null/home/default.nix index 53ccf7f5..9a39469d 100644 --- a/hosts/thalassa/null/home/default.nix +++ b/hosts/thalassa/null/home/default.nix @@ -1,15 +1,25 @@ -{ config, pkgs, inputs, texlive, ... }: +{ + config, + pkgs, + inputs, + texlive, + ... +}: let tex = pkgs.texlive.combine { inherit (pkgs.texlive) scheme-full; - dnd-5e-latex-template = { pkgs = [ pkgs.v.dnd-5e-latex-template ]; }; + dnd-5e-latex-template = { + pkgs = [ pkgs.v.dnd-5e-latex-template ]; + }; }; in { programs = { home-manager.enable = true; - foot = { enable = true; }; + foot = { + enable = true; + }; nix-index.enable = true; @@ -64,18 +74,142 @@ in "latex.outDir" = "%TMPDIR%/%RELATIVE_DOC%"; }; "workbench.colorTheme" = "Catppuccin Frappé"; - "editor.fontFamily" = - "'DejaVuSansMono Nerd Font', 'monospace', monospace"; + "editor.fontFamily" = "'DejaVuSansMono Nerd Font', 'monospace', monospace"; "keyboard.dispatch" = "keyCode"; "rust-analyzer.server.path" = "${pkgs.rust-analyzer}/bin/rust-analyzer"; "terminal.integrated.defaultProfile.linux" = "zsh"; "nix.enableLanguageServer" = true; # Enable LSP. - "nix.serverPath" = - "${pkgs.nil}/bin/nil"; # The path to the LSP server executable. - "[nix]" = { "editor.defaultFormatter" = "brettm12345.nixfmt-vscode"; }; + "nix.serverPath" = "${pkgs.nil}/bin/nil"; # The path to the LSP server executable. + "[nix]" = { + "editor.defaultFormatter" = "brettm12345.nixfmt-vscode"; + }; + "latex-workshop.latex.tools" = [ + { + "name" = "latexmk"; + "command" = "latexmk"; + "args" = [ + "-shell-escape" + "-synctex=1" + "-interaction=nonstopmode" + "-file-line-error" + "-pdf" + "-outdir=%OUTDIR%" + "%DOC%" + ]; + "env" = { }; + } + { + "name" = "lualatexmk"; + "command" = "latexmk"; + "args" = [ + "-synctex=1" + "-interaction=nonstopmode" + "-file-line-error" + "-lualatex" + "-outdir=%OUTDIR%" + "%DOC%" + ]; + "env" = { }; + } + { + "name" = "xelatexmk"; + "command" = "latexmk"; + "args" = [ + "-synctex=1" + "-interaction=nonstopmode" + "-file-line-error" + "-xelatex" + "-outdir=%OUTDIR%" + "%DOC%" + ]; + "env" = { }; + } + { + "name" = "latexmk_rconly"; + "command" = "latexmk"; + "args" = [ "%DOC%" ]; + "env" = { }; + } + { + "name" = "pdflatex"; + "command" = "pdflatex"; + "args" = [ + "-synctex=1" + "-interaction=nonstopmode" + "-file-line-error" + "%DOC%" + ]; + "env" = { }; + } + { + "name" = "bibtex"; + "command" = "bibtex"; + "args" = [ "%DOCFILE%" ]; + "env" = { }; + } + { + "name" = "rnw2tex"; + "command" = "Rscript"; + "args" = [ + "-e" + "knitr==opts_knit$set(concordance = TRUE); knitr==knit('%DOCFILE_EXT%')" + ]; + "env" = { }; + } + { + "name" = "jnw2tex"; + "command" = "julia"; + "args" = [ + "-e" + "using Weave; weave(\"%DOC_EXT%\"; doctype=\"tex\")" + ]; + "env" = { }; + } + { + "name" = "jnw2texminted"; + "command" = "julia"; + "args" = [ + "-e" + "using Weave; weave(\"%DOC_EXT%\"; doctype=\"texminted\")" + ]; + "env" = { }; + } + { + "name" = "pnw2tex"; + "command" = "pweave"; + "args" = [ + "-f" + "tex" + "%DOC_EXT%" + ]; + "env" = { }; + } + { + "name" = "pnw2texminted"; + "command" = "pweave"; + "args" = [ + "-f" + "texminted" + "%DOC_EXT%" + ]; + "env" = { }; + } + { + "name" = "tectonic"; + "command" = "tectonic"; + "args" = [ + "--synctex" + "--keep-logs" + "%DOC%.tex" + ]; + "env" = { }; + } + ]; }; - extensions = with pkgs.vscode-extensions; - with pkgs.v.vscode-extensions; [ + extensions = + with pkgs.vscode-extensions; + with pkgs.v.vscode-extensions; + [ # astro-build.astro-vscode brettm12345.nixfmt-vscode catppuccin.catppuccin-vsc @@ -99,12 +233,16 @@ in direnv = { enable = true; - nix-direnv = { enable = true; }; + nix-direnv = { + enable = true; + }; }; zsh = { enable = true; - sessionVariables = { DIRENV_LOG_FORMAT = ""; }; + sessionVariables = { + DIRENV_LOG_FORMAT = ""; + }; }; }; home = { @@ -128,7 +266,7 @@ in gnome.gnome-font-viewer gnome.nautilus grim # Screenshot tool - inputs.comma.packages.${pkgs.system}.default + # inputs.comma.packages.${pkgs.system}.default inputs.webcord.packages.${pkgs.system}.default k9s kubectl @@ -158,13 +296,20 @@ in ]; }; - imports = [ ./hyprland.nix ./neovim.nix ./eww ./theme.nix ]; + imports = [ + ./hyprland.nix + ./neovim.nix + ./eww + ./theme.nix + ]; xdg.mimeApps = { enable = true; defaultApplications = - let browser = [ "firefox.desktop" ]; - in { + let + browser = [ "firefox.desktop" ]; + in + { "image/*" = "org.gnome.eog.desktop"; "text/html" = browser; "x-scheme-handler/http" = browser; @@ -188,8 +333,10 @@ in }; xdg.userDirs = - let home = config.home.homeDirectory; - in { + let + home = config.home.homeDirectory; + in + { enable = true; createDirectories = true; desktop = "${home}/.desktop"; diff --git a/pkgs/default.nix b/pkgs/default.nix index 5f7180fc..53a34a43 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -1,5 +1,5 @@ # nix-build -E 'with import {}; callPackage ./default.nix {}' -_final: prev: { +final: prev: { v = { glitch-soc = prev.callPackage ./glitch-soc { }; @@ -22,6 +22,7 @@ _final: prev: { prev.callPackage ./vscode-extensions/platformio.nix { }; }; + hyprland-workspaces = prev.callPackage ./hyprland-workspaces { }; }; plex-plexpass = prev.callPackage ./plex-pass { }; diff --git a/pkgs/hyprland-workspaces/default.nix b/pkgs/hyprland-workspaces/default.nix new file mode 100644 index 00000000..77e7944a --- /dev/null +++ b/pkgs/hyprland-workspaces/default.nix @@ -0,0 +1,20 @@ +{ rustPlatform, lib, fetchFromGitHub }: +rustPlatform.buildRustPackage rec { + pname = "hyprland-workspaces"; + version = "2.0.0"; + + src = fetchFromGitHub { + owner = "FieldofClay"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-4QGLTimIpx74gWUyHCheUZZT1WgVzBoJRY8OlUDdOh4="; + }; + + cargoSha256 = "sha256-9ndP0nyRBCdOGth4UWA263IvjbgnVW2x9PK8oTaMrxg="; + + meta = with lib; { + description = "A multi-monitor aware Hyprland workspace widget"; + license = licenses.mit; + platforms = platforms.linux; + }; +}