diff --git a/.forgejo/workflows/nightly-update.yaml b/.forgejo/workflows/nightly-update.yaml index 135df61..c834441 100644 --- a/.forgejo/workflows/nightly-update.yaml +++ b/.forgejo/workflows/nightly-update.yaml @@ -1,14 +1,16 @@ -on: +on: schedule: - cron: 0 */6 * * * + jobs: UpdateFlake: runs-on: native + steps: - name: Check out repository code uses: actions/checkout@v4 - name: Update flake - run: | + run: | cd ${{ env.FORGEJO_WORKSPACE }} nix flake update - name: Commit new Flake.lock diff --git a/flake.lock b/flake.lock index 47dded3..45fd507 100644 --- a/flake.lock +++ b/flake.lock @@ -110,11 +110,11 @@ "nixpkgs": "nixpkgs_2" }, "locked": { - "lastModified": 1761686631, - "narHash": "sha256-OzyQkqtH4kenusXEquQvTHnAr/6lGVS2DqErIPlzCUs=", + "lastModified": 1761596764, + "narHash": "sha256-KTL+8Fw1qAbqubZSHRMjO4HkILJWVdWTylqHXQ4VTBE=", "owner": "cachix", "repo": "devenv", - "rev": "b59500b629c08829825d4f4eca68169ea3a8821f", + "rev": "17560d064ba5e4fc946c0ea0ee7b31ec291e706f", "type": "github" }, "original": { @@ -131,11 +131,11 @@ "rust-analyzer-src": "rust-analyzer-src" }, "locked": { - "lastModified": 1761720242, - "narHash": "sha256-Zi9nWw68oUDMVOhf/+Z97wVbNV2K7eEAGZugQKqU7xw=", + "lastModified": 1761633962, + "narHash": "sha256-QTA706q3zDi9yN7bwsOnj2cQj8FVi9x147A/2lR495U=", "owner": "nix-community", "repo": "fenix", - "rev": "8e4d32f4cc12b3f106af6e4515b36ac046a1ec91", + "rev": "abecdc70faee6ef5abf8b250795042a0cbe7070f", "type": "github" }, "original": { @@ -147,11 +147,11 @@ "flake-compat": { "flake": false, "locked": { - "lastModified": 1761588595, - "narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=", + "lastModified": 1747046372, + "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", "owner": "edolstra", "repo": "flake-compat", - "rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5", + "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", "type": "github" }, "original": { @@ -503,11 +503,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1761663476, - "narHash": "sha256-rMapt12HqMDVo91bqojbiOh+l7UuqJ738rk1iu980qs=", + "lastModified": 1761440613, + "narHash": "sha256-eQTH5iTkEQptZqVGyTPgpMYL7zj6QkI/uGo+1/PkAQY=", "owner": "helix-editor", "repo": "helix", - "rev": "de0518d0e631f1984dc7229b76c2bdadf2bffe5d", + "rev": "7c4ff9c39dbd3dd7d6e2cb3e26cb34212202bb1b", "type": "github" }, "original": { @@ -523,11 +523,11 @@ ] }, "locked": { - "lastModified": 1761666354, - "narHash": "sha256-fHr+tIYBJccNF8QWqgowfRmEAtAMSt1deZIRNKL8A7c=", + "lastModified": 1761584077, + "narHash": "sha256-dISPEZahlfs5K6d58zR4akRRyogfE9P4WSyPPNT7HiE=", "owner": "nix-community", "repo": "home-manager", - "rev": "ca2ab1d877a24d5a437dad62f56b8b2c02e964e9", + "rev": "e82585308aef3d4cc2c36c7b6946051c8cdf24ef", "type": "github" }, "original": { @@ -683,11 +683,11 @@ "xdph": "xdph" }, "locked": { - "lastModified": 1761733109, - "narHash": "sha256-sgZlcW1W6ioNFaMz+r4O52SLNywzRJiqRwBKRenvL6c=", + "lastModified": 1761601789, + "narHash": "sha256-F8HDu+xAZ2GhYRZPTMbFgXfA6VI7pN95juP3/llCKx8=", "owner": "hyprwm", "repo": "Hyprland", - "rev": "9eb82774e53dc02e4fa204a911cb4256cd21f429", + "rev": "309c3c78485781a28ad9f5bef48b09ecb3b81473", "type": "github" }, "original": { @@ -713,11 +713,11 @@ ] }, "locked": { - "lastModified": 1761653710, - "narHash": "sha256-MhHSU9m/9HSckJ61OXcom/6F92NQf3s1QfLbRUApalc=", + "lastModified": 1761249285, + "narHash": "sha256-70dEwL5p3CB/00ODs2RHWUKTyafB+PF4Ld7IEMuO+no=", "owner": "hyprwm", "repo": "hyprland-plugins", - "rev": "e689220b1740aa99ca67fa06055792f82fa9ed85", + "rev": "81f6d1426537981fcbb921f8b5e470b1280ef8f3", "type": "github" }, "original": { @@ -889,11 +889,11 @@ "systems": "systems_2" }, "locked": { - "lastModified": 1761675634, - "narHash": "sha256-Et1jNDB2d3e0b4okIKuyAMktECS+5hk+vMAA7X598ao=", + "lastModified": 1760023949, + "narHash": "sha256-fu0B4duamVdbkPio/czu1XhsPLRXUJpZLDrSk3nih4U=", "owner": "hyprwm", "repo": "hyprlock", - "rev": "98b86752fe4867bd14ef96a92ea788229af93130", + "rev": "36ec73f166d9434a3f27c96c575198906f77644a", "type": "github" }, "original": { @@ -1024,11 +1024,11 @@ ] }, "locked": { - "lastModified": 1761728397, - "narHash": "sha256-PyRcsly7w12wg6Vjzkn5eLvRQgX+nzHU80xBVnwE7Eg=", + "lastModified": 1760961269, + "narHash": "sha256-Udg6DnM6scJj+imbttJR7GQpG2WWeDZ1JOtySTY99M0=", "owner": "nix-community", "repo": "nh", - "rev": "149022d8973798f5ebb819fb2977b0260f049816", + "rev": "e27508e06f74c7f03616150c1ac1431eaef7f443", "type": "github" }, "original": { @@ -1045,11 +1045,11 @@ "rust-overlay": [] }, "locked": { - "lastModified": 1761721311, - "narHash": "sha256-fXBALdA4CKAYslcuamjzQZLUTCNBIKWybj+/2rwe3Z0=", + "lastModified": 1761460429, + "narHash": "sha256-pJeM23DGMD5AK4gdNaDM1qsIv87NYQJgEh2E8tRd7es=", "owner": "YaLTeR", "repo": "niri", - "rev": "6e8fd153395036c2daa7c214695ed9baf2409a2e", + "rev": "e6f3c538da0c646bda43fcde7ef7dc3b771e0c8b", "type": "github" }, "original": { @@ -1072,11 +1072,11 @@ "xwayland-satellite-unstable": "xwayland-satellite-unstable" }, "locked": { - "lastModified": 1761724527, - "narHash": "sha256-nB500dSUaNBtOsu5JI1PDNmjuFD6Kdbkh648q0FoaIY=", + "lastModified": 1761623016, + "narHash": "sha256-C2+TErNmeHMCtodwVrMeA/uJg1GRdQbOntRI7DFullA=", "owner": "sodiboo", "repo": "niri-flake", - "rev": "1ff74954f559bb2da63e28b3fcffd3b09ec32842", + "rev": "f0bfe0aaaa51378ace7492850290f8d2db6cc7f3", "type": "github" }, "original": { @@ -1088,11 +1088,11 @@ "niri-unstable": { "flake": false, "locked": { - "lastModified": 1761721311, - "narHash": "sha256-fXBALdA4CKAYslcuamjzQZLUTCNBIKWybj+/2rwe3Z0=", + "lastModified": 1761460429, + "narHash": "sha256-pJeM23DGMD5AK4gdNaDM1qsIv87NYQJgEh2E8tRd7es=", "owner": "YaLTeR", "repo": "niri", - "rev": "6e8fd153395036c2daa7c214695ed9baf2409a2e", + "rev": "e6f3c538da0c646bda43fcde7ef7dc3b771e0c8b", "type": "github" }, "original": { @@ -1127,16 +1127,16 @@ ] }, "locked": { - "lastModified": 1761648602, - "narHash": "sha256-H97KSB/luq/aGobKRuHahOvT1r7C03BgB6D5HBZsbN8=", + "lastModified": 1758763079, + "narHash": "sha256-Bx1A+lShhOWwMuy3uDzZQvYiBKBFcKwy6G6NEohhv6A=", "owner": "cachix", "repo": "nix", - "rev": "3e5644da6830ef65f0a2f7ec22830c46285bfff6", + "rev": "6f0140527c2b0346df4afad7497baa08decb929f", "type": "github" }, "original": { "owner": "cachix", - "ref": "devenv-2.30.6", + "ref": "devenv-2.30.5", "repo": "nix", "type": "github" } @@ -1163,11 +1163,11 @@ }, "nixos-hardware": { "locked": { - "lastModified": 1761669189, - "narHash": "sha256-INBZnPA9JzyDn+Fnni2250PbRzKx7Eafz0T2c7NhXiQ=", + "lastModified": 1760958188, + "narHash": "sha256-2m1S4jl+GEDtlt2QqeHil8Ny456dcGSKJAM7q3j/BFU=", "owner": "nixos", "repo": "nixos-hardware", - "rev": "9c0ee5dfa186e10efe9b53505b65d22c81860fde", + "rev": "d6645c340ef7d821602fd2cd199e8d1eed10afbc", "type": "github" }, "original": { @@ -1447,11 +1447,11 @@ "rust-analyzer-src": { "flake": false, "locked": { - "lastModified": 1761686505, - "narHash": "sha256-jX6UrGS/hABDaM4jdx3+xgH3KCHP2zKHeTa8CD5myEo=", + "lastModified": 1761606039, + "narHash": "sha256-rNsxpCKWzVNJ5FR71mpZFSEPxuvZfAQzcVpgfwgajQU=", "owner": "rust-lang", "repo": "rust-analyzer", - "rev": "d08d54f3c10dfa41033eb780c3bddb50e09d30fc", + "rev": "7c810e9994eff5b2b7a78ab0a656948c1e8dbf18", "type": "github" }, "original": { @@ -1680,11 +1680,11 @@ "nixpkgs": "nixpkgs_7" }, "locked": { - "lastModified": 1761712008, - "narHash": "sha256-Nf2s59dLg6KDUV0omZqIlOGNUxw/Rl/KKXEXQGFCAlo=", + "lastModified": 1761535208, + "narHash": "sha256-E1PobJMiFmVUX2YdqYk/MpKb0LXavOYvlg8DCBBzlHc=", "owner": "0xc000022070", "repo": "zen-browser-flake", - "rev": "1383ed38745d12f3896c996848d24c451643db58", + "rev": "79a94872a3e6993a051c4e22a2dcb02c1d088acf", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index edbe3c9..ffbe81b 100644 --- a/flake.nix +++ b/flake.nix @@ -1,6 +1,10 @@ { description = "All encompassing flake"; + nixConfig = { + allow-import-from-derivation = true; + }; + outputs = inputs: inputs.flake-parts.lib.mkFlake { inherit inputs; } (inputs.import-tree ./modules); inputs = { @@ -71,7 +75,6 @@ niri-flake = { url = "github:sodiboo/niri-flake"; - # url = "github:Daholli/niri-flake/1067d35dd18f6a55f79873c944f1427a9eb7caa7"; inputs = { niri-stable.follows = "niri"; nixpkgs.follows = "nixpkgs"; diff --git a/modules/base/git.nix b/modules/base/git.nix index c1561dc..4917fce 100644 --- a/modules/base/git.nix +++ b/modules/base/git.nix @@ -6,6 +6,7 @@ topLevel: { environment.systemPackages = with pkgs; [ git ]; + }; homeManager.cholli = diff --git a/modules/base/system/fonts.nix b/modules/base/system/fonts.nix index 6f5d840..2ac798c 100644 --- a/modules/base/system/fonts.nix +++ b/modules/base/system/fonts.nix @@ -15,7 +15,6 @@ nerd-fonts.code-new-roman nerd-fonts.fira-code nerd-fonts.symbols-only - nerd-fonts.jetbrains-mono fira ]; diff --git a/modules/base/system/nixdaemon.nix b/modules/base/system/nixdaemon.nix index ed765e9..826c6e5 100644 --- a/modules/base/system/nixdaemon.nix +++ b/modules/base/system/nixdaemon.nix @@ -44,7 +44,6 @@ ++ lib.optional config.services.hydra.enable "hydra hydra-www hydra-evaluator hydra-queue-runner"; in { - nix-path = "nixpkgs=flake:nixpkgs"; experimental-features = "nix-command flakes"; http-connections = 50; warn-dirty = false; @@ -54,18 +53,6 @@ trusted-users = users; allowed-users = users; allowed-uris = "github: https://github.com/ git+https://github.com/ gitlab: https://gitlab.com/ git+https://gitlab.com/"; - substituters = [ - "https://cache.lix.systems" - "https://nix-community.cachix.org" - "https://nixcache.christophhollizeck.dev" - "https://hyprland.cachix.org" - ]; - trusted-public-keys = [ - "cache.lix.systems:aBnZUw8zA7H35Cz2RyKFVs3H4PlGTLawyY5KRbvJR8o=" - "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" - "christophhollizeck.dev:7pPAvm9xqFQB8FDApVNL6Tii1Jsv+Sj/LjEIkdeGhbA=" - "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" - ]; } // (lib.optionalAttrs config.programs.direnv.enable { keep-outputs = true; diff --git a/modules/desktop/default.nix b/modules/desktop/default.nix index 81a9868..7e053f0 100644 --- a/modules/desktop/default.nix +++ b/modules/desktop/default.nix @@ -13,17 +13,9 @@ in { - security.pam.services.gdm.enableGnomeKeyring = true; - services.displayManager.gdm = { - enable = true; - wayland = true; - }; - environment = { - systemPackages = with pkgs; [ + systemPackages = [ zenbrowser - - sourcegit ]; sessionVariables = { diff --git a/modules/desktop/niri.nix b/modules/desktop/niri.nix index 5870e07..c7fec4b 100644 --- a/modules/desktop/niri.nix +++ b/modules/desktop/niri.nix @@ -12,57 +12,10 @@ package = inputs.niri-flake.packages.${pkgs.system}.niri-unstable; }; - environment.systemPackages = with pkgs; [ - kitty - fuzzel - - inputs.niri-flake.packages.${pkgs.system}.xwayland-satellite-unstable - - wl-clipboard - xsel - - mako - waybar + environment.systemPackages = [ + pkgs.alacritty + pkgs.fuzzel ]; - - xdg = { - autostart.enable = true; - portal = { - enable = true; - extraPortals = [ - pkgs.xdg-desktop-portal-gnome - pkgs.xdg-desktop-portal-gtk - ]; - xdgOpenUsePortal = true; - - config = { - common = { - default = [ "*" ]; - "org.freedesktop.impl.portal.Secret" = [ "gnome-keyring" ]; - }; - niri = { - default = [ - "gnome" - "gtk" - ]; - "org.freedesktop.impl.portal.FileChooser" = [ "gtk" ]; - "org.freedesktop.impl.portal.OpenURI" = [ "gtk" ]; - }; - }; - }; - }; - - environment.sessionVariables = { - NIXOS_OZONE_WL = "1"; # Hint electron apps to use wayland - ELECTRON_OZONE_PLATFORM_HINT = "auto"; - - XDG_SESSION_TYPE = "wayland"; - - QT_AUTO_SCREEN_SCALE_FACTOR = "1"; - QT_WAYLAND_DISABLE_WINDOWDECORATION = "1"; - QT_QPA_PLATFORM = "wayland;xcb"; - }; - }; homeManager.cholli = @@ -75,23 +28,13 @@ ... }: { - config = lib.mkIf (osConfig.networking.hostName == "yggdrasil" && osConfig.programs.niri.enable) { + config = lib.mkIf (osConfig.networking.hostName == "yggdrasil") { programs.niri.settings = { - prefer-no-csd = true; - input = { keyboard = { - xkb = { - layout = "us"; - rules = "escape:nocaps"; - }; numlock = true; }; - - touchpad = { - enable = false; - }; }; outputs."DP-1" = { @@ -106,9 +49,6 @@ height = 1080; }; transform.rotation = 90; - # layout = { - # default-column-width.proportion = 1.0; - # }; }; layout = { @@ -123,6 +63,7 @@ { proportion = 1. / 3.; } { proportion = 1. / 2.; } { proportion = 2. / 3.; } + ]; focus-ring = { @@ -140,56 +81,8 @@ screenshot-path = "~/Pictures/Screenshots/Screenshot from %Y-%m-%d %H-%M-%S.png"; - # TODO: block 1pass from screenshots and window capture - # TODO: move windows to workspaces where I expect them + # block 1pass from screenshots and window capture window-rules = [ - { - excludes = [ ]; - clip-to-geometry = true; - geometry-corner-radius = { - top-left = 15.0; - top-right = 15.0; - bottom-left = 15.0; - bottom-right = 15.0; - }; - } - { - matches = [ { is-window-cast-target = true; } ]; - - focus-ring = { - active.color = "#f38ba8"; - inactive.color = "#7d0d2d"; - }; - - border = { - inactive.color = "#7d0d2d"; - }; - - shadow = { - color = "#7d0d2d70"; - }; - - tab-indicator = { - active.color = "#f38ba8"; - inactive.color = "#7d0d2d"; - }; - } - { - matches = [ - { - app-id = "discord"; - } - { - app-id = "1Password"; - } - { - app-id = "steam"; - title = "Friends List.*"; - } - ]; - open-on-output = "HDMI-A-1"; - default-column-width.proportion = 1.0; - } ]; binds = @@ -205,21 +98,11 @@ }; }) workspaces ); - move-to-workspaces = builtins.listToAttrs ( - map (num: { - name = "Mod+Ctrl+${toString num}"; - value = { - action.move-window-to-workspace = num; - }; - }) workspaces - ); in lib.mkMerge [ { "Mod+Shift+Slash".action = actions.show-hotkey-overlay; - "Mod+Shift+E".action = actions.quit; - "Ctrl+Alt+Delete".action = actions.quit; "Mod+Return".action.spawn = "${lib.getExe pkgs.kitty}"; "Mod+D".action.spawn = "${lib.getExe pkgs.fuzzel}"; @@ -235,99 +118,6 @@ repeat = false; }; - "Mod+J" = { - action = actions.focus-window-or-workspace-down; - }; - "Mod+K" = { - action = actions.focus-window-or-workspace-up; - }; - "Mod+Ctrl+J" = { - action = actions.move-window-down-or-to-workspace-down; - }; - "Mod+Ctrl+K" = { - action = actions.move-window-up-or-to-workspace-up; - }; - "Mod+Down" = { - action = actions.focus-window-or-workspace-down; - }; - "Mod+Up" = { - action = actions.focus-window-or-workspace-up; - }; - "Mod+Ctrl+Down" = { - action = actions.move-window-down-or-to-workspace-down; - }; - "Mod+Ctrl+Up" = { - action = actions.move-window-up-or-to-workspace-up; - }; - - "Mod+H" = { - action = actions.focus-column-or-monitor-left; - }; - "Mod+L" = { - action = actions.focus-column-or-monitor-right; - }; - "Mod+Ctrl+H" = { - action = actions.move-column-left-or-to-monitor-left; - }; - "Mod+Ctrl+L" = { - action = actions.move-column-right-or-to-monitor-right; - }; - "Mod+Left" = { - action = actions.focus-column-or-monitor-left; - }; - "Mod+Right" = { - action = actions.focus-column-or-monitor-right; - }; - "Mod+Ctrl+Left" = { - action = actions.move-column-left-or-to-monitor-left; - }; - "Mod+Ctrl+Right" = { - action = actions.move-column-right-or-to-monitor-right; - }; - - "Mod+WheelScrollDown" = { - action = actions.focus-column-right; - }; - "Mod+WheelScrollUp" = { - action = actions.focus-column-left; - }; - "Mod+Shift+WheelScrollDown" = { - action = actions.focus-workspace-down; - cooldown-ms = 150; - }; - "Mod+Shift+WheelScrollUp" = { - action = actions.focus-workspace-up; - cooldown-ms = 150; - }; - - # Window Sizes - "Mod+BracketLeft".action = actions.consume-or-expel-window-left; - "Mod+BracketRight".action = actions.consume-or-expel-window-right; - "Mod+Comma".action = actions.consume-window-into-column; - "Mod+Period".action = actions.expel-window-from-column; - - "Mod+R".action = actions.switch-preset-column-width; - "Mod+Shift+R".action = actions.switch-preset-window-height; - "Mod+Ctrl+R".action = actions.reset-window-height; - "Mod+F".action = actions.fullscreen-window; - "Mod+Shift+F".action = actions.maximize-column; - "Mod+Ctrl+F".action = actions.expand-column-to-available-width; - - "Mod+C".action = actions.center-column; - "Mod+V".action = actions.toggle-window-floating; - - # Xwayland keyboard stuff - "Mod+Shift+C".action = actions.spawn [ - "sh" - "-c" - "env DISPLAY=:0 xsel -ob | wl-copy" - ]; - "Mod+Shift+V".action = actions.spawn [ - "sh" - "-c" - "wl-paste -n | env DISPLAY=:0 xsel -ib" - ]; - "XF86AudioRaiseVolume" = { action.spawn = [ "wpctl" @@ -366,18 +156,8 @@ }; } focus-workspaces - move-to-workspaces ]; - spawn-at-startup = [ - { argv = [ "waybar" ]; } - { argv = [ "zen-beta" ]; } - { argv = [ "steam" ]; } - { argv = [ "obsidian" ]; } - { argv = [ "discord" ]; } - { argv = [ "1password" ]; } - ]; - }; }; diff --git a/modules/hosts/yggdrasil/default.nix b/modules/hosts/yggdrasil/default.nix index 51fcb24..0894d92 100644 --- a/modules/hosts/yggdrasil/default.nix +++ b/modules/hosts/yggdrasil/default.nix @@ -24,7 +24,6 @@ in diebahn path-of-building - termscp ]; services.teamviewer.enable = true; @@ -54,7 +53,7 @@ in amdgpu # dektops - # hyprland + hyprland niri # apps @@ -100,5 +99,6 @@ in } ]; }; + }; } diff --git a/modules/systems/audio.nix b/modules/systems/audio.nix index 4e6f9b5..3712a11 100644 --- a/modules/systems/audio.nix +++ b/modules/systems/audio.nix @@ -17,7 +17,6 @@ alsa.support32Bit = true; pulse.enable = true; - # TODO: make sure that `wpctl settings --save bluetooth.autoswitch-to-headset-profile false` is set since the things below are not working wireplumber.configPackages = [ (pkgs.writeTextDir "share/wireplumber/wireplumber.conf.d/11-bluetooth-policy.conf" '' wireplumber.settings = { diff --git a/modules/systems/bluetooth.nix b/modules/systems/bluetooth.nix index 917ca3a..223a5ca 100644 --- a/modules/systems/bluetooth.nix +++ b/modules/systems/bluetooth.nix @@ -9,10 +9,10 @@ General = { Experimental = true; KernelExperimental = true; - Enable = "Sink,Media,Socket"; - Disable = "Handsfree,Headset,Source"; + Enable = "Source,Sink,Media,Socket"; }; }; }; + }; }