this repo has no description
4
fork

Configure Feed

Select the types of activity you want to include in your feed.

guh

+671 -292
+72 -67
flake.lock
··· 19 19 "devshell": { 20 20 "flake": false, 21 21 "locked": { 22 - "lastModified": 1654858401, 23 - "narHash": "sha256-53bw34DtVJ2bnF6WEwy6Tym+qY0pNEiEwARUlvmTZjs=", 22 + "lastModified": 1655976588, 23 + "narHash": "sha256-VreHyH6ITkf/1EX/8h15UqhddJnUleb0HgbC3gMkAEQ=", 24 24 "owner": "numtide", 25 25 "repo": "devshell", 26 - "rev": "f55e05c6d3bbe9acc7363bc8fc739518b2f02976", 26 + "rev": "899ca4629020592a13a46783587f6e674179d1db", 27 27 "type": "github" 28 28 }, 29 29 "original": { ··· 82 82 ] 83 83 }, 84 84 "locked": { 85 - "lastModified": 1655826285, 86 - "narHash": "sha256-dyrNTVBefSZWKdFNnAW+zUkO5bVo1colvLje4l1XXwA=", 85 + "lastModified": 1655975833, 86 + "narHash": "sha256-g8sdfuglIZ24oWVbntVzniNTJW+Z3n9DNL9w9Tt+UCE=", 87 87 "owner": "nix-community", 88 88 "repo": "dream2nix", 89 - "rev": "f23add2b9c313c63dea5cff71523a850d29ffddb", 89 + "rev": "4e75e665ec3a1cddae5266bed0dd72fce0b74a23", 90 90 "type": "github" 91 91 }, 92 92 "original": { ··· 95 95 "type": "github" 96 96 } 97 97 }, 98 - "flake-compat": { 99 - "flake": false, 100 - "locked": { 101 - "lastModified": 1650374568, 102 - "narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=", 103 - "owner": "edolstra", 104 - "repo": "flake-compat", 105 - "rev": "b4a34015c698c7793d592d66adbab377907a2be8", 106 - "type": "github" 107 - }, 108 - "original": { 109 - "owner": "edolstra", 110 - "repo": "flake-compat", 111 - "type": "github" 112 - } 113 - }, 114 98 "flake-utils": { 115 99 "locked": { 116 100 "lastModified": 1637014545, ··· 135 119 "rust-overlay": "rust-overlay" 136 120 }, 137 121 "locked": { 138 - "lastModified": 1656263093, 139 - "narHash": "sha256-gYWCKE0XrXB+Sc/MB90XuSTin+R+mlEqG9TIThJ6R18=", 122 + "lastModified": 1656581160, 123 + "narHash": "sha256-a6jMpUifIin5mK4TvU8iLKm5w5wR34ttbe1l2CdedpY=", 140 124 "owner": "helix-editor", 141 125 "repo": "helix", 142 - "rev": "24351c20d41c26df0c695940e6790525858ab1c1", 126 + "rev": "d06800f1dd47315f5738c529d40d1e0952ee2115", 143 127 "type": "github" 144 128 }, 145 129 "original": { ··· 150 134 }, 151 135 "home": { 152 136 "inputs": { 153 - "flake-compat": "flake-compat", 154 137 "nixpkgs": [ 155 138 "nixpkgs" 156 139 ], 157 - "nmd": "nmd", 158 - "nmt": "nmt", 159 140 "utils": "utils" 160 141 }, 161 142 "locked": { 162 - "lastModified": 1656272360, 163 - "narHash": "sha256-ceFmGObEq5GjObuZ3rI5PUad/OI6yulvsa6mMPciaic=", 143 + "lastModified": 1656367977, 144 + "narHash": "sha256-0hV17V9Up9pnAtPJ+787FhrsPnawxoTPA/VxgjRMrjc=", 164 145 "owner": "nix-community", 165 146 "repo": "home-manager", 166 - "rev": "0434f8e4cab4f200c9b4d3741a9e5d89705e6754", 147 + "rev": "3bf16c0fd141c28312be52945d1543f9ce557bb1", 167 148 "type": "github" 168 149 }, 169 150 "original": { ··· 173 154 "type": "github" 174 155 } 175 156 }, 157 + "hyprland": { 158 + "inputs": { 159 + "nixpkgs": [ 160 + "nixpkgs" 161 + ], 162 + "wlroots": "wlroots" 163 + }, 164 + "locked": { 165 + "lastModified": 1656612124, 166 + "narHash": "sha256-NPiLaoApGbGw3I6Pp4oJnKh/Q64yCSeokLWRWjAmsu4=", 167 + "owner": "hyprwm", 168 + "repo": "Hyprland", 169 + "rev": "4510764f348d1a7c4cca613925ee22acfa38b388", 170 + "type": "github" 171 + }, 172 + "original": { 173 + "owner": "hyprwm", 174 + "repo": "Hyprland", 175 + "type": "github" 176 + } 177 + }, 176 178 "nixCargoIntegration": { 177 179 "inputs": { 178 180 "devshell": "devshell", ··· 187 189 ] 188 190 }, 189 191 "locked": { 190 - "lastModified": 1655826649, 191 - "narHash": "sha256-C4/7CdB/mzuD9ayWvEA3Jcog6INCq+oUJZxUsIP/GvE=", 192 + "lastModified": 1656453541, 193 + "narHash": "sha256-ZCPVnS6zJOZJvIlwU3rKR8MBVm6A3F4/0mA7G1lQ3D0=", 192 194 "owner": "yusdacra", 193 195 "repo": "nix-cargo-integration", 194 - "rev": "5cf1685c021c47631a2fb16533c00c8d68afd09e", 196 + "rev": "9eb74345b30cd2e536d9dac9d4435d3c475605c7", 195 197 "type": "github" 196 198 }, 197 199 "original": { ··· 202 204 }, 203 205 "nixos-hardware": { 204 206 "locked": { 205 - "lastModified": 1656241064, 206 - "narHash": "sha256-+jWwBt515aFGukeX8WSafg9CM3Ju3FD0XrF+X4ph0mU=", 207 + "lastModified": 1656353817, 208 + "narHash": "sha256-UJEzMQcft/0Ilu4LWV7UH51mr5UCo28GL06BGO+djv4=", 207 209 "owner": "nixos", 208 210 "repo": "nixos-hardware", 209 - "rev": "99e33a57149916ebede78ec13edd9ba310c10f2f", 211 + "rev": "78e7c2c397b0376526e83162b58de921362e3399", 210 212 "type": "github" 211 213 }, 212 214 "original": { ··· 232 234 }, 233 235 "nixpkgs": { 234 236 "locked": { 235 - "lastModified": 1656239181, 236 - "narHash": "sha256-wW1xRFBn376yGloXZ4QzBE4hjipMawpV18Lshd9QSPw=", 237 + "lastModified": 1656461576, 238 + "narHash": "sha256-rlmmw6lIlkMQIiB+NsnO8wQYWTfle8TA41UREPLP5VY=", 237 239 "owner": "nixos", 238 240 "repo": "nixpkgs", 239 - "rev": "f2537a505d45c31fe5d9c27ea9829b6f4c4e6ac5", 241 + "rev": "cf3ab54b4afe2b7477faa1dd0b65bf74c055d70c", 240 242 "type": "github" 241 243 }, 242 244 "original": { ··· 246 248 "type": "github" 247 249 } 248 250 }, 249 - "nmd": { 250 - "flake": false, 251 + "nur": { 251 252 "locked": { 252 - "lastModified": 1653339422, 253 - "narHash": "sha256-RNLq09vfj21TyYuUCeD6BNTNC6Ew8bLhQULZytN4Xx8=", 254 - "owner": "rycee", 255 - "repo": "nmd", 256 - "rev": "91dee681dd1c478d6040a00835d73c0f4a4c5c29", 257 - "type": "gitlab" 253 + "lastModified": 1656611551, 254 + "narHash": "sha256-S1GkwCgMimVVU1nrwezTkoOqsoiXvvK1+pu4zplsqwo=", 255 + "owner": "nix-community", 256 + "repo": "NUR", 257 + "rev": "b58e819d423cc525475b43bd06cf5f999feb5325", 258 + "type": "github" 258 259 }, 259 260 "original": { 260 - "owner": "rycee", 261 - "repo": "nmd", 262 - "type": "gitlab" 263 - } 264 - }, 265 - "nmt": { 266 - "flake": false, 267 - "locked": { 268 - "lastModified": 1648075362, 269 - "narHash": "sha256-u36WgzoA84dMVsGXzml4wZ5ckGgfnvS0ryzo/3zn/Pc=", 270 - "owner": "rycee", 271 - "repo": "nmt", 272 - "rev": "d83601002c99b78c89ea80e5e6ba21addcfe12ae", 273 - "type": "gitlab" 274 - }, 275 - "original": { 276 - "owner": "rycee", 277 - "repo": "nmt", 278 - "type": "gitlab" 261 + "owner": "nix-community", 262 + "repo": "NUR", 263 + "type": "github" 279 264 } 280 265 }, 281 266 "root": { 282 267 "inputs": { 283 268 "helix": "helix", 284 269 "home": "home", 270 + "hyprland": "hyprland", 285 271 "nixos-hardware": "nixos-hardware", 286 272 "nixos-persistence": "nixos-persistence", 287 273 "nixpkgs": "nixpkgs", 274 + "nur": "nur", 288 275 "smos": "smos" 289 276 } 290 277 }, ··· 340 327 "owner": "numtide", 341 328 "repo": "flake-utils", 342 329 "type": "github" 330 + } 331 + }, 332 + "wlroots": { 333 + "flake": false, 334 + "locked": { 335 + "host": "gitlab.freedesktop.org", 336 + "lastModified": 1655824477, 337 + "narHash": "sha256-1kskHOLsnisR3kqIL5IHrQbQG/4xoXxeEf1ExMV6/RU=", 338 + "owner": "wlroots", 339 + "repo": "wlroots", 340 + "rev": "5c4384a1330faedf975c8b8644881d50390f3613", 341 + "type": "gitlab" 342 + }, 343 + "original": { 344 + "host": "gitlab.freedesktop.org", 345 + "owner": "wlroots", 346 + "repo": "wlroots", 347 + "type": "gitlab" 343 348 } 344 349 } 345 350 },
+16 -1
flake.nix
··· 3 3 4 4 inputs = { 5 5 nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; 6 + nur.url = "github:nix-community/NUR"; 6 7 7 8 home.url = "github:nix-community/home-manager/master"; 8 9 home.inputs.nixpkgs.follows = "nixpkgs"; ··· 15 16 16 17 helix.url = "github:helix-editor/helix"; 17 18 helix.inputs.nixpkgs.follows = "nixpkgs"; 19 + hyprland.url = "github:hyprwm/Hyprland"; 20 + hyprland.inputs.nixpkgs.follows = "nixpkgs"; 18 21 }; 19 22 20 23 outputs = inputs: let ··· 27 30 }; 28 31 genPkgs = f: prev.genSystems (system: f (makePkgs system)); 29 32 }); 33 + allPkgs = tlib.genPkgs (x: x); 30 34 in rec { 31 35 nixosConfigurations = import ./hosts {inherit lib tlib inputs;}; 32 36 33 - packages = tlib.genPkgs (pkgs: pkgs._exported); 37 + packages = lib.mapAttrs (_: pkgs: pkgs._exported) allPkgs; 38 + apps = 39 + lib.mapAttrs 40 + ( 41 + _: pkgs: { 42 + generate-firefox-addons = { 43 + type = "app"; 44 + program = toString "${pkgs.generate-firefox-addons}/bin/generate-firefox-addons"; 45 + }; 46 + } 47 + ) 48 + allPkgs; 34 49 35 50 devShells = import ./shells {inherit lib tlib inputs;}; 36 51 };
+5 -9
hosts/lungmen/default.nix
··· 16 16 common-pc 17 17 common-gpu-amd 18 18 common-cpu-amd 19 + ../../modules/persist 19 20 ../../modules/network 20 21 #../../modules/develop/nixbuild 21 22 ../../users/root 22 23 ../../users/patriot 23 24 ]; 25 + 26 + system.persistDir = "/persist"; 24 27 25 28 boot = { 26 29 tmpOnTmpfs = true; ··· 50 53 fsType = "btrfs"; 51 54 options = ["subvol=nix"] ++ btrfsOptions; 52 55 }; 53 - fileSystems."/persist" = { 56 + fileSystems."${config.system.persistDir}" = { 54 57 device = btrfsPartPath; 55 58 fsType = "btrfs"; 56 59 options = ["subvol=persist"] ++ btrfsOptions; ··· 60 63 device = "/dev/disk/by-label/BOOT"; 61 64 fsType = "vfat"; 62 65 }; 63 - /* 64 - fileSystems."/media/archive" = { 65 - device = "/dev/disk/by-uuid/f9b5f7f3-51e8-4357-8518-986b16311c71"; 66 - fsType = "btrfs"; 67 - options = btrfsOptions; 68 - }; 69 - */ 70 66 71 67 swapDevices = []; 72 68 zramSwap = { ··· 143 139 environment = { 144 140 systemPackages = [pkgs.ntfs3g]; 145 141 pathsToLink = ["/share/zsh"]; 146 - persistence."/persist" = { 142 + persistence."${config.system.persistDir}" = { 147 143 directories = ["/etc/nixos"]; 148 144 files = ["/etc/machine-id"]; 149 145 };
-1
modules/base/default.nix
··· 46 46 exa 47 47 lm_sensors 48 48 mkpasswd 49 - zoxide 50 49 bottom 51 50 amber 52 51 unzip
+1 -3
modules/network/default.nix
··· 1 1 { 2 2 imports = [./dns]; 3 - networking.dhcpcd.enable = false; 3 + networking.dhcpcd.enable = true; 4 4 networking.useDHCP = false; 5 5 networking.dhcpcd.extraConfig = '' 6 6 noarp 7 7 nodelay 8 8 ''; 9 - # https://github.com/NixOS/nixpkgs/issues/60900 10 - # systemd.services.systemd-user-sessions.enable = false; 11 9 }
+5
modules/persist/default.nix
··· 1 + {lib, ...}: { 2 + options.system.persistDir = lib.mkOption { 3 + type = lib.types.str; 4 + }; 5 + }
+2 -2
pkgs-set/default.nix
··· 32 32 config.allowUnfree = true; 33 33 overlays = overlays ++ newPkgs; 34 34 }; 35 - pkgsToExport = import ./pkgs-to-export.nix; 35 + pkgsToExport = import ./pkgs-to-export.nix pkgs; 36 36 in 37 37 pkgs 38 38 // { 39 - _exported = l.getAttrs pkgsToExport pkgs; 39 + _exported = pkgsToExport; 40 40 }
-5
pkgs-set/overlays/chromium.nix
··· 6 6 "--enable-gpu-rasterization" 7 7 "--enable-zero-copy" 8 8 "--force-dark-mode" 9 - "--enable-features=VaapiVideoDecoder" 10 - "--use-gl=egl" 11 - "--disable-features=UseChromeOSDirectVideoDecoder" 12 - "--disable-features=UseSkiaRenderer" 13 9 "--enable-webrtc-pipewire-capturer" 14 10 "--ozone-platform-hint=auto" 15 - "--enable-raw-draw" 16 11 ]; 17 12 mkCliArgs = flags: prev.lib.concatStringsSep " " flags; 18 13 in {
+1 -1
pkgs-set/overlays/helix.nix
··· 1 1 {inputs}: final: prev: { 2 - helix = inputs.helix.defaultPackage.${prev.system}; 2 + helix = inputs.helix.packages.${prev.system}.default; 3 3 }
+3
pkgs-set/overlays/hyprland.nix
··· 1 + {inputs}: final: prev: { 2 + hyprland = inputs.hyprland.packages.${prev.system}.default; 3 + }
+1
pkgs-set/overlays/nur.nix
··· 1 + {inputs}: inputs.nur.overlay
+10 -6
pkgs-set/pkgs-to-export.nix
··· 1 - [ 2 - "discord-system-electron" 3 - "fractal-next" 4 - "gamescope" 5 - "gaudible" 6 - ] 1 + pkgs: ( 2 + pkgs.lib.getAttrs 3 + [ 4 + "discord-system-electron" 5 + "fractal-next" 6 + "gamescope" 7 + "gaudible" 8 + ] 9 + pkgs 10 + )
+12
pkgs-set/pkgs/generate-firefox-addons.nix
··· 1 + { 2 + nur, 3 + treefmt, 4 + writers, 5 + ... 6 + }: 7 + writers.writeBashBin "generate-firefox-addons" '' 8 + ${nur.repos.rycee.firefox-addons-generator}/bin/nixpkgs-firefox-addons \ 9 + users/modules/firefox/extensions.json \ 10 + users/modules/firefox/extensions.nix 11 + ${treefmt}/bin/treefmt 12 + ''
+71
users/modules/firefox/default.nix
··· 1 + { 2 + pkgs, 3 + config, 4 + ... 5 + }: { 6 + home.persistence."${config.system.persistDir}${config.home.homeDirectory}".directories = [".mozilla"]; 7 + programs.firefox = { 8 + enable = true; 9 + package = pkgs.firefox-wayland.override { 10 + extraPrefs = '' 11 + lockPref("privacy.resistFingerprinting.letterboxing", false); 12 + lockPref("browser.startup.homepage", "about:home"); 13 + lockPref("browser.newtabpage.enabled", true); 14 + lockPref("browser.startup.page", 1); 15 + lockPref("privacy.clearOnShutdown.downloads", false); 16 + lockPref("privacy.clearOnShutdown.formdata", false); 17 + lockPref("privacy.clearOnShutdown.history", false); 18 + lockPref("privacy.clearOnShutdown.offlineApps", false); 19 + lockPref("privacy.clearOnShutdown.sessions", false); 20 + lockPref("services.sync.engine.passwords", false); 21 + ''; 22 + extraPolicies = { 23 + CaptivePortal = false; 24 + DisableFirefoxStudies = true; 25 + DisablePocket = true; 26 + DisableTelemetry = true; 27 + DisableFirefoxAccounts = true; 28 + FirefoxHome = { 29 + Pocket = false; 30 + Snippets = false; 31 + }; 32 + UserMessaging = { 33 + ExtensionRecommendations = false; 34 + SkipOnboarding = true; 35 + }; 36 + }; 37 + }; 38 + extensions = with pkgs.nur.repos.rycee.firefox-addons; let 39 + myExtensions = 40 + pkgs.callPackage ./extensions.nix {inherit buildFirefoxXpiAddon;}; 41 + in 42 + [ 43 + ublock-origin 44 + darkreader 45 + bitwarden 46 + refined-github 47 + stylus 48 + ] 49 + ++ (with myExtensions; [ 50 + catppuccin-mocha-sky 51 + ]); 52 + profiles = { 53 + default = { 54 + id = 0; 55 + isDefault = false; 56 + name = "defaulta"; 57 + }; 58 + personal = { 59 + id = 1; 60 + isDefault = true; 61 + name = "personal"; 62 + extraConfig = builtins.readFile ( 63 + builtins.fetchurl { 64 + url = "https://raw.githubusercontent.com/arkenfox/user.js/101.0/user.js"; 65 + sha256 = "sha256:1mb1l9dgb8mfl70lhwykgfphqnxxi1xw0h3hlgj8jyj6n1mn5v8f"; 66 + } 67 + ); 68 + }; 69 + }; 70 + }; 71 + }
+3
users/modules/firefox/extensions.json
··· 1 + [ 2 + {"slug":"catppuccin-mocha-sky"} 3 + ]
+18
users/modules/firefox/extensions.nix
··· 1 + { 2 + buildFirefoxXpiAddon, 3 + fetchurl, 4 + lib, 5 + stdenv, 6 + }: { 7 + "catppuccin-mocha-sky" = buildFirefoxXpiAddon { 8 + pname = "catppuccin-mocha-sky"; 9 + version = "2.0"; 10 + addonId = "{12eeb304-58cd-4bcb-9676-99562b04f066}"; 11 + url = "https://addons.mozilla.org/firefox/downloads/file/3954372/catppuccin_dark_sky-2.0.xpi"; 12 + sha256 = "d9453ae265608d3a1b17c812d77422ab2aaf357365e527812268a407643efa25"; 13 + meta = with lib; { 14 + description = "Firefox theme based on <a href=\"https://outgoing.prod.mozaws.net/v1/110954a3f2718cf03892676379416caed51099b639f643aaf12989b7e698f073/https%3A//github.com/catppuccin/catppuccin\" rel=\"nofollow\">https://github.com/catppuccin/catppuccin</a>"; 15 + platforms = platforms.all; 16 + }; 17 + }; 18 + }
+28
users/modules/font/default.nix
··· 1 + { 2 + lib, 3 + config, 4 + ... 5 + }: let 6 + cfg = config.fonts.settings; 7 + in 8 + with lib; { 9 + options.fonts.settings = { 10 + enable = mkOption { 11 + type = types.bool; 12 + default = false; 13 + }; 14 + name = mkOption { 15 + type = types.str; 16 + }; 17 + package = mkOption { 18 + type = types.package; 19 + }; 20 + size = mkOption { 21 + type = types.ints.unsigned; 22 + }; 23 + }; 24 + 25 + config = mkIf cfg.enable { 26 + home.packages = [cfg.package]; 27 + }; 28 + }
+149
users/modules/hyprland/default.nix
··· 1 + {pkgs, ...}: { 2 + systemd.user.targets.hyprland-session = { 3 + Unit = { 4 + Description = "hyprland compositor session"; 5 + Documentation = ["man:systemd.special(7)"]; 6 + BindsTo = ["graphical-session.target"]; 7 + Wants = ["graphical-session-pre.target"]; 8 + After = ["graphical-session-pre.target"]; 9 + }; 10 + }; 11 + 12 + xdg.enable = true; 13 + xdg.configFile."hypr/hyprland.conf".text = let 14 + rofi = "${pkgs.rofi-wayland}/bin/rofi"; 15 + launcher = "${rofi} -show drun"; 16 + term = "${pkgs.wezterm}/bin/wezterm"; 17 + 18 + swaybg = "${pkgs.swaybg}/bin/swaybg"; 19 + grim = "${pkgs.grim}/bin/grim"; 20 + light = "${pkgs.light}/bin/light"; 21 + playerctl = "${pkgs.playerctl}/bin/playerctl"; 22 + pulsemixer = "${pkgs.pulsemixer}/bin/pulsemixer"; 23 + slurp = "${pkgs.slurp}/bin/slurp"; 24 + wl-copy = "${pkgs.wl-clipboard}/bin/wl-copy"; 25 + notify-date = with pkgs; 26 + writers.writeBash "notify-date" '' 27 + ${libnotify}/bin/notify-send " $(${coreutils}/bin/date +'%H:%M %d/%m/%Y')" 28 + ''; 29 + in '' 30 + # should be configured per-profile 31 + monitor=HDMI-A-1,1920x1080@60,0x0,1 32 + workspace=HDMI-A-1,1 33 + exec-once=dbus-update-activation-environment --systemd WAYLAND_DISPLAY DISPLAY HYPRLAND_INSTANCE_SIGNATURE 34 + exec-once=systemctl --user start graphical-session-pre.target 35 + exec-once=systemctl --user start graphical-session.target 36 + exec-once=${swaybg} -i ~/.config/wallpaper 37 + input { 38 + kb_layout=tr 39 + kb_variant= 40 + kb_model= 41 + kb_options= 42 + kb_rules= 43 + follow_mouse=1 44 + force_no_accel=1 45 + touchpad { 46 + natural_scroll=1 47 + } 48 + } 49 + general { 50 + sensitivity=1 51 + main_mod=SUPER 52 + gaps_in=5 53 + gaps_out=5 54 + border_size=0 55 + damage_tracking=full 56 + } 57 + decoration { 58 + rounding=16 59 + blur=1 60 + blur_size=3 # minimum 1 61 + blur_passes=3 # minimum 1, more passes = more resource intensive. 62 + # Your blur "amount" is blur_size * blur_passes, but high blur_size (over around 5-ish) will produce artifacts. 63 + # if you want heavy blur, you need to up the blur_passes. 64 + # the more passes, the more you can up the blur_size without noticing artifacts. 65 + } 66 + animations { 67 + enabled=1 68 + animation=windows,1,2,default 69 + animation=borders,1,2,default 70 + animation=fadein,1,2,default 71 + animation=workspaces,1,2,slide 72 + } 73 + dwindle { 74 + pseudotile=0 # enable pseudotiling on dwindle 75 + } 76 + # example window rules 77 + # for windows named/classed as abc and xyz 78 + #windowrule=move 69 420,abc 79 + #windowrule=size 420 69,abc 80 + #windowrule=tile,xyz 81 + #windowrule=float,abc 82 + #windowrule=pseudo,abc 83 + #windowrule=monitor 0,xyz 84 + bind=SUPER,RETURN,exec,${term} 85 + bind=SUPER,D,exec,${launcher} 86 + bind=SUPER,Q,killactive, 87 + bind=SUPERSHIFT,E,exec,pkill Hyprland 88 + bind=SUPER,F,fullscreen, 89 + bind=SUPER,P,pseudo, 90 + bind=SUPER,T,exec,${notify-date} 91 + bind=SUPERSHIFT,T,togglefloating, 92 + bind=,XF86AudioPlay,exec,${playerctl} play-pause 93 + bind=,XF86AudioPrev,exec,${playerctl} previous 94 + bind=,XF86AudioNext,exec,${playerctl} next 95 + bind=,XF86AudioRaiseVolume,exec,${pulsemixer} --change-volume +6 96 + bind=,XF86AudioLowerVolume,exec,${pulsemixer} --change-volume -6 97 + bind=,XF86AudioMute,exec,${pulsemixer} --toggle-mute 98 + bind=,XF86MonBrightnessUp,exec,${light} -A 5 99 + bind=,XF86MonBrightnessDown,exec,${light} -U 5 100 + # screenshot 101 + # selection 102 + $ssselection=${grim} -g "$(${slurp})" - | ${wl-copy} -t image/png 103 + bind=,Print,exec,$ssselection 104 + bind=SUPERSHIFT,R,exec,$ssselection 105 + # monitor 106 + $ssmonitor=${grim} -o "$(${slurp} -f %o -or)" - | ${wl-copy} -t image/png 107 + bind=CTRL,Print,exec,$ssmonitor 108 + bind=SUPERSHIFTCTRL,R,exec,$ssmonitor 109 + # all-monitors 110 + $ssall=${grim} - | ${wl-copy} -t image/png 111 + bind=ALT,Print,exec,$ssall 112 + bind=SUPERSHIFTALT,R,exec,$ssall 113 + # move focus 114 + bind=SUPER,left,movefocus,l 115 + bind=SUPER,right,movefocus,r 116 + bind=SUPER,up,movefocus,u 117 + bind=SUPER,down,movefocus,d 118 + # go to workspace 119 + bind=SUPER,grave,togglespecialworkspace,eDP-1 120 + bind=SUPER,1,workspace,1 121 + bind=SUPER,2,workspace,2 122 + bind=SUPER,3,workspace,3 123 + bind=SUPER,4,workspace,4 124 + bind=SUPER,5,workspace,5 125 + bind=SUPER,6,workspace,6 126 + bind=SUPER,7,workspace,7 127 + bind=SUPER,8,workspace,8 128 + bind=SUPER,9,workspace,9 129 + bind=SUPER,0,workspace,10 130 + # cycle workspaces 131 + bind=SUPER,bracketleft,workspace,m-1 132 + bind=SUPER,bracketright,workspace,m+1 133 + # cycle monitors 134 + bind=SUPERSHIFT,braceleft,focusmonitor,l 135 + bind=SUPERSHIFT,braceright,focusmonitor,r 136 + # move to workspace 137 + bind=SUPERSHIFT,asciitilde,movetoworkspace,special 138 + bind=SUPERSHIFT,exclam,movetoworkspace,1 139 + bind=SUPERSHIFT,at,movetoworkspace,2 140 + bind=SUPERSHIFT,numbersign,movetoworkspace,3 141 + bind=SUPERSHIFT,dollar,movetoworkspace,4 142 + bind=SUPERSHIFT,percent,movetoworkspace,5 143 + bind=SUPERSHIFT,asciicircum,movetoworkspace,6 144 + bind=SUPERSHIFT,ampersand,movetoworkspace,7 145 + bind=SUPERSHIFT,asterisk,movetoworkspace,8 146 + bind=SUPERSHIFT,parenleft,movetoworkspace,9 147 + bind=SUPERSHIFT,parenright,movetoworkspace,10 148 + ''; 149 + }
+18
users/modules/mako/default.nix
··· 1 + { 2 + pkgs, 3 + config, 4 + ... 5 + }: { 6 + programs.mako = { 7 + enable = true; 8 + anchor = "top-center"; 9 + font = "${config.fonts.settings.name} ${toString config.fonts.settings.size}"; 10 + borderRadius = 16; 11 + extraConfig = builtins.readFile ( 12 + builtins.fetchurl { 13 + url = "https://raw.githubusercontent.com/catppuccin/mako/d077d9832e8f22777a4812eadbfb658e793cbdfc/config"; 14 + sha256 = "sha256:1c8j16ljbnynb5kplxvhg99rw536hbxxz1rl8qgaixdf2bg2awp0"; 15 + } 16 + ); 17 + }; 18 + }
+119
users/modules/rofi/default.nix
··· 1 + { 2 + pkgs, 3 + config, 4 + ... 5 + }: { 6 + home.packages = [pkgs.rofi-wayland]; 7 + xdg.enable = true; 8 + xdg.dataFile = { 9 + "rofi/themes/catppuccin.rasi".source = builtins.fetchurl { 10 + url = "https://raw.githubusercontent.com/catppuccin/rofi/c7c242d6bfd4cabdc9a220cff71e3b0766811fbe/.local/share/rofi/themes/catppuccin.rasi"; 11 + sha256 = "sha256:17jssby0llsnabzfz3lp4wcc9vdzfz77i5wjcclfcyyvpswc53nx"; 12 + }; 13 + }; 14 + xdg.configFile = { 15 + "rofi/config.rasi".text = '' 16 + configuration{ 17 + modi: "drun"; 18 + lines: 5; 19 + font: "${config.fonts.settings.name} ${toString config.fonts.settings.size}"; 20 + show-icons: true; 21 + terminal: "st"; 22 + drun-display-format: "{icon} {name}"; 23 + location: 0; 24 + disable-history: false; 25 + hide-scrollbar: true; 26 + display-drun: "  Apps "; 27 + display-run: "  Run "; 28 + display-window: " 﩯 Window"; 29 + display-Network: " 󰤨 Network"; 30 + sidebar-mode: true; 31 + } 32 + 33 + @theme "catppuccin" 34 + 35 + element-text, element-icon , mode-switcher { 36 + background-color: inherit; 37 + text-color: inherit; 38 + } 39 + 40 + window { 41 + height: 360px; 42 + border: 3px; 43 + border-color: @border-col; 44 + background-color: @bg-col; 45 + } 46 + 47 + mainbox { 48 + background-color: @bg-col; 49 + } 50 + 51 + inputbar { 52 + children: [prompt,entry]; 53 + background-color: @bg-col; 54 + border-radius: 5px; 55 + padding: 2px; 56 + } 57 + 58 + prompt { 59 + background-color: @blue; 60 + padding: 6px; 61 + text-color: @bg-col; 62 + border-radius: 3px; 63 + margin: 20px 0px 0px 20px; 64 + } 65 + 66 + textbox-prompt-colon { 67 + expand: false; 68 + str: ":"; 69 + } 70 + 71 + entry { 72 + padding: 6px; 73 + margin: 20px 0px 0px 10px; 74 + text-color: @fg-col; 75 + background-color: @bg-col; 76 + } 77 + 78 + listview { 79 + border: 0px 0px 0px; 80 + padding: 6px 0px 0px; 81 + margin: 10px 0px 0px 20px; 82 + columns: 2; 83 + background-color: @bg-col; 84 + } 85 + 86 + element { 87 + padding: 5px; 88 + background-color: @bg-col; 89 + text-color: @fg-col ; 90 + } 91 + 92 + element-icon { 93 + size: 25px; 94 + } 95 + 96 + element selected { 97 + background-color: @selected-col ; 98 + text-color: @fg-col2 ; 99 + } 100 + 101 + mode-switcher { 102 + spacing: 0; 103 + } 104 + 105 + button { 106 + padding: 10px; 107 + background-color: @bg-col-light; 108 + text-color: @grey; 109 + vertical-align: 0.5; 110 + horizontal-align: 0.5; 111 + } 112 + 113 + button selected { 114 + background-color: @bg-col; 115 + text-color: @blue; 116 + } 117 + ''; 118 + }; 119 + }
+32
users/modules/wezterm/default.nix
··· 1 + { 2 + pkgs, 3 + config, 4 + ... 5 + }: { 6 + home.packages = [pkgs.wezterm]; 7 + xdg.enable = true; 8 + xdg.configFile = { 9 + "wezterm/wezterm.lua".text = '' 10 + local wezterm = require 'wezterm'; 11 + local catppuccin = require("colors/catppuccin").setup { 12 + -- whether or not to sync with the system's theme 13 + sync = false, 14 + -- the default/fallback flavour, when syncing is disabled 15 + flavour = "mocha" 16 + } 17 + 18 + return { 19 + font = wezterm.font("${config.fonts.settings.name}"), 20 + font_size = ${builtins.toJSON config.fonts.settings.size}, 21 + default_cursor_style = "BlinkingBar", 22 + enable_wayland = true, 23 + enable_tab_bar = false, 24 + colors = catppuccin 25 + } 26 + ''; 27 + "wezterm/colors/catppuccin.lua".source = builtins.fetchurl { 28 + url = "https://raw.githubusercontent.com/catppuccin/wezterm/65078e846c8751e9b4837a575deb0745f0c0512f/catppuccin.lua"; 29 + sha256 = "sha256:0cm8kjjga9k1fzgb7nqjwd1jdjqjrkkqaxcavfxdkl3mw7qiy1ib"; 30 + }; 31 + }; 32 + }
+14
users/modules/zoxide/default.nix
··· 1 + { 2 + pkgs, 3 + config, 4 + lib, 5 + ... 6 + }: { 7 + home.packages = [pkgs.zoxide]; 8 + home.persistence."${config.system.persistDir}${config.home.homeDirectory}".directories = 9 + lib.singleton 10 + ".local/share/zoxide"; 11 + programs.zsh.initExtra = '' 12 + eval "$(zoxide init zsh)" 13 + ''; 14 + }
-24
users/patriot/config/wezterm/cfg.nix
··· 1 - {font, ...}: '' 2 - local wezterm = require 'wezterm'; 3 - local catppuccin = require("colors/catppuccin").setup { 4 - -- whether or not to sync with the system's theme 5 - sync = true, 6 - -- the flavours to switch between when syncing 7 - -- available flavours: "latte" | "frappe" | "macchiato" | "mocha" 8 - sync_flavours = { 9 - light = "latte", 10 - dark = "mocha" 11 - }, 12 - -- the default/fallback flavour, when syncing is disabled 13 - flavour = "mocha" 14 - } 15 - 16 - return { 17 - font = wezterm.font("${font.name}"), 18 - font_size = ${builtins.toJSON font.size}, 19 - default_cursor_style = "BlinkingBar", 20 - enable_wayland = true, 21 - enable_tab_bar = false, 22 - colors = catppuccin 23 - } 24 - ''
+91 -173
users/patriot/default.nix
··· 2 2 pkgs, 3 3 lib, 4 4 tlib, 5 + config, 6 + inputs, 5 7 ... 6 8 } @ globalAttrs: let 7 9 inherit (lib) mapAttrs' nameValuePair; 8 10 inherit (builtins) readDir fetchGit; 11 + l = lib // builtins; 9 12 10 13 pkgBin = tlib.pkgBin pkgs; 11 14 nixosConfig = globalAttrs.config; 12 - useWayland = false; 13 15 in { 16 + imports = [inputs.hyprland.nixosModules.default]; 17 + 14 18 users.users.patriot = { 15 19 isNormalUser = true; 16 20 createHome = true; ··· 24 28 hashedPassword = "$6$spzqhAyJfhHy$iHgLBlhjGn1l8PnbjJdWTn1GPvcjMqYNKUzdCe/7IrX6sHNgETSr/Nfpdmq9FCXLhrAfwHOd/q/8SvfeIeNX4/"; 25 29 }; 26 30 environment = { 27 - systemPackages = lib.optional useWayland pkgs.qt5.qtwayland; 31 + systemPackages = [pkgs.qt5.qtwayland]; 28 32 shells = with pkgs; [bashInteractive zsh]; 29 33 }; 30 34 xdg.portal = { 31 35 enable = true; 32 - wlr.enable = useWayland; 33 - gtkUsePortal = false; 34 - extraPortals = lib.optional useWayland pkgs.xdg-desktop-portal-wlr; 36 + wlr.enable = true; 37 + gtkUsePortal = true; 38 + extraPortals = with pkgs; [xdg-desktop-portal-gtk xdg-desktop-portal-wlr]; 35 39 }; 36 40 programs = { 41 + # this is needed for impermanence 37 42 fuse.userAllowOther = true; 38 43 adb.enable = true; 39 44 steam.enable = true; 40 - kdeconnect = { 41 - enable = true; 42 - package = pkgs.gnomeExtensions.gsconnect; 43 - }; 44 - gnome-disks.enable = false; 45 - file-roller.enable = false; 45 + # gnome stuffs 46 46 seahorse.enable = true; 47 - }; 48 - security = { 49 - pam.services.patriot = { 50 - enableGnomeKeyring = true; 51 - enableKwallet = false; 52 - }; 47 + hyprland.enable = true; 48 + hyprland.extraPackages = []; 53 49 }; 54 - services = { 55 - gnome = { 56 - gnome-keyring.enable = true; 57 - core-shell.enable = true; 58 - core-os-services.enable = true; 59 - chrome-gnome-shell.enable = true; 60 - at-spi2-core.enable = true; 61 - gnome-online-accounts.enable = false; 62 - gnome-online-miners.enable = lib.mkForce false; 63 - gnome-remote-desktop.enable = false; 64 - core-utilities.enable = false; 65 - tracker-miners.enable = false; 66 - tracker.enable = false; 67 - gnome-settings-daemon.enable = lib.mkForce false; 68 - sushi.enable = false; 69 - }; 70 - xserver = { 71 - enable = true; 72 - desktopManager = { 73 - gnome.enable = true; 74 - xterm.enable = false; 75 - }; 76 - displayManager = { 77 - autoLogin = { 78 - enable = true; 79 - user = "patriot"; 80 - }; 81 - gdm = { 82 - enable = true; 83 - wayland = useWayland; 84 - }; 85 - startx.enable = false; 86 - }; 87 - }; 50 + # gnome keyring better fr fr 51 + security.pam.services.patriot = { 52 + enableGnomeKeyring = true; 53 + enableKwallet = false; 88 54 }; 89 55 systemd = { 90 56 targets.network-online.enable = false; 91 57 services = { 92 - "getty@tty1".enable = false; 93 - "autovt@tty1".enable = false; 94 58 systemd-networkd-wait-online.enable = false; 95 59 NetworkManager-wait-online.enable = false; 96 60 }; ··· 104 68 personal = import ../../personal.nix; 105 69 name = personal.name; 106 70 email = personal.emails.primary; 107 - font = { 108 - name = "Comic Mono"; 109 - size = 13; 110 - package = let 111 - ttf = pkgs.fetchurl { 112 - url = "https://dtinth.github.io/comic-mono-font/ComicMono.ttf"; 113 - sha256 = "sha256-O8FCXpIqFqvw7HZ+/+TQJoQ5tMDc6YQy4H0V9drVcZY="; 114 - }; 115 - in 116 - pkgs.runCommand "comic-mono" {} '' 117 - mkdir -p $out/share/fonts/truetype 118 - ln -s ${ttf} $out/share/fonts/truetype 119 - ''; 120 - }; 121 71 in { 122 72 imports = [ 123 73 ../modules/direnv 124 74 ../modules/git 125 75 ../modules/starship 126 76 ../modules/helix 77 + ../modules/zoxide 78 + ../modules/wezterm 79 + ../modules/hyprland 80 + ../modules/rofi 81 + ../modules/mako 82 + ../modules/font 83 + ../modules/firefox 84 + ../../modules/persist 127 85 # ../modules/smos 128 86 inputs.nixos-persistence.nixosModules.home-manager.impermanence 129 87 ]; 130 88 131 - gtk = { 132 - enable = true; 133 - theme = { 134 - name = "Catppuccin"; 135 - package = pkgs.catppuccin-gtk; 136 - }; 137 - }; 89 + system.persistDir = nixosConfig.system.persistDir; 138 90 139 - home.persistence."/persist/home/patriot" = let 91 + home.persistence."${config.system.persistDir}${config.home.homeDirectory}" = let 140 92 mkPaths = prefix: paths: 141 - builtins.map (n: "${prefix}/${n}") paths; 93 + builtins.map (n: "${prefix}/${n}") (l.flatten paths); 142 94 in { 143 95 directories = 144 96 [ ··· 157 109 ".cache" 158 110 ] 159 111 ++ mkPaths ".local/share" [ 160 - "zoxide" 161 112 "direnv" 162 113 "zsh" 163 114 "Steam" 164 - "backgrounds" 165 115 "keyrings" 166 116 "lutris" 167 117 "PolyMC" 168 118 ] 169 119 ++ mkPaths ".config" [ 170 - "dconf" 171 - "chromium" 172 - "gsconnect" 173 120 "lutris" 174 121 ]; 175 - files = [ 176 - ".config/gnome-initial-setup-done" 122 + files = l.flatten [ 123 + ".config/wallpaper" 177 124 (lib.removePrefix "~/" config.programs.ssh.userKnownHostsFile) 178 125 ]; 179 126 allowOther = true; 180 127 }; 181 128 182 129 fonts.fontconfig.enable = lib.mkForce true; 130 + fonts.settings = { 131 + enable = true; 132 + name = "Comic Mono"; 133 + size = 13; 134 + package = let 135 + ttf = pkgs.fetchurl { 136 + url = "https://dtinth.github.io/comic-mono-font/ComicMono.ttf"; 137 + sha256 = "sha256-O8FCXpIqFqvw7HZ+/+TQJoQ5tMDc6YQy4H0V9drVcZY="; 138 + }; 139 + in 140 + pkgs.runCommandNoCC "comic-mono" {} '' 141 + mkdir -p $out/share/fonts/truetype 142 + ln -s ${ttf} $out/share/fonts/truetype 143 + ''; 144 + }; 183 145 home = { 184 146 stateVersion = nixosConfig.system.stateVersion; 185 147 homeDirectory = nixosConfig.users.users.patriot.home; 186 - packages = with pkgs; [ 187 - # Font stuff 188 - font.package 189 - noto-fonts-cjk 190 - font-awesome 191 - dejavu_fonts 192 - # Programs 193 - bitwarden 194 - wezterm 195 - cargo-outdated 196 - cargo-release 197 - cargo-udeps 198 - vulkan-tools 199 - krita 200 - cachix 201 - gnupg 202 - imv 203 - mpv 204 - ffmpeg 205 - mupdf 206 - xdg_utils 207 - wl-clipboard 208 - xclip 209 - rust-analyzer 210 - # polymc 211 - cloudflared 212 - lutris 213 - gnome.gnome-themes-extra 214 - gnome.gnome-tweaks 215 - ]; 148 + packages = with pkgs; 149 + l.flatten [ 150 + # Font stuff 151 + noto-fonts-cjk 152 + font-awesome 153 + dejavu_fonts 154 + # Programs 155 + bitwarden 156 + cargo-outdated 157 + cargo-release 158 + cargo-udeps 159 + vulkan-tools 160 + krita 161 + cachix 162 + gnupg 163 + imv 164 + mpv 165 + ffmpeg 166 + mupdf 167 + xdg_utils 168 + wl-clipboard 169 + xclip 170 + rust-analyzer 171 + # polymc 172 + cloudflared 173 + lutris 174 + ]; 216 175 shellAliases = 217 176 nixosConfig.environment.shellAliases 218 177 // { ··· 222 181 }; 223 182 sessionVariables = 224 183 nixosConfig.environment.sessionVariables 225 - // { 184 + // l.optionalAttrs config.programs.fzf.enable { 226 185 FZF_DEFAULT_OPTS = "--color=bg+:#302D41,bg:#1E1E2E,spinner:#F8BD96,hl:#F28FAD --color=fg:#D9E0EE,header:#F28FAD,info:#DDB6F2,pointer:#F8BD96 --color=marker:#F8BD96,fg+:#F2CDCD,prompt:#DDB6F2,hl+:#F28FAD"; 227 186 }; 228 187 }; 229 188 programs = { 230 189 command-not-found.enable = 231 190 nixosConfig.programs.command-not-found.enable; 232 - chromium = { 233 - enable = true; 234 - package = 235 - if useWayland 236 - then pkgs.chromium-wayland 237 - else pkgs.chromium; 238 - extensions = [ 239 - # https everywhere 240 - "gcbommkclmclpchllfjekcdonpmejbdp" 241 - # ublock 242 - "cjpalhdlnbpafiamejdnhcphjbkeiagm" 243 - # bitwarden 244 - "nngceckbapebfimnlniiiahkandclblb" 245 - # decentraleyes 246 - "ldpochfccmkkmhdbclfhpagapcfdljkj" 247 - # dark theme 248 - "annfbnbieaamhaimclajlajpijgkdblo" 249 - # dark reader 250 - "eimadpbcbfnmbkopoojfekhnkhdbieeh" 251 - # github refined 252 - "hlepfoohegkhhmjieoechaddaejaokhf" 253 - # privacy redirect 254 - "pmcmeagblkinmogikoikkdjiligflglb" 255 - # pronoundb 256 - "nblkbiljcjfemkfjnhoobnojjgjdmknf" 257 - ]; 258 - }; 259 191 git = { 260 192 signing = { 261 193 key = "E1C119F91F4CAE53E8445CAFBB57FCE7E35984F6"; ··· 285 217 enableVteIntegration = true; 286 218 enableAutosuggestions = true; 287 219 enableCompletion = true; 288 - plugins = let 289 - fast-syntax-highlighting = let 290 - name = "fast-syntax-highlighting"; 291 - in { 292 - inherit name; 293 - src = pkgs."zsh-${name}".out; 294 - }; 295 - per-directory-history = { 220 + plugins = [ 221 + { 296 222 name = "per-directory-history"; 297 - src = 298 - pkgs.fetchFromGitHub 299 - { 300 - owner = "jimhester"; 301 - repo = "per-directory-history"; 302 - rev = "d2e291dd6434e340d9be0e15e1f5b94f32771c06"; 303 - hash = "sha256-VHRgrVCqzILqOes8VXGjSgLek38BFs9eijmp0JHtD5Q="; 304 - }; 305 - }; 306 - in [fast-syntax-highlighting per-directory-history]; 223 + src = pkgs.fetchFromGitHub { 224 + owner = "jimhester"; 225 + repo = "per-directory-history"; 226 + rev = "d2e291dd6434e340d9be0e15e1f5b94f32771c06"; 227 + hash = "sha256-VHRgrVCqzILqOes8VXGjSgLek38BFs9eijmp0JHtD5Q="; 228 + }; 229 + } 230 + ]; 307 231 # xdg compliant 308 232 dotDir = ".config/zsh"; 309 233 history.path = "${config.home.homeDirectory}/.local/share/zsh/history"; 310 234 initExtra = '' 311 - export TERM=alacritty 312 235 export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket) 313 236 314 237 function tomp4 () { ··· 319 242 ${pkgBin "ffmpeg"} -i $1 "$1.png" 320 243 } 321 244 245 + # fix some key stuff 322 246 bindkey "$terminfo[kRIT5]" forward-word 323 247 bindkey "$terminfo[kLFT5]" backward-word 248 + # makes completions pog 324 249 zstyle ':completion:*' menu select 325 - 326 - eval "$(zoxide init zsh)" 250 + ''; 251 + loginExtra = '' 252 + if [[ "$(tty)" == "/dev/tty1" ]]; then 253 + exec Hyprland 254 + fi 327 255 ''; 328 256 }; 329 257 fzf.enable = true; ··· 340 268 defaultCacheTtlSsh = defaultCacheTtl; 341 269 maxCacheTtlSsh = maxCacheTtl; 342 270 grabKeyboardAndMouse = false; 343 - pinentryFlavor = "gnome3"; 344 - }; 345 - }; 346 - xdg = { 347 - enable = true; 348 - configFile = { 349 - "wezterm/wezterm.lua".text = import ./config/wezterm/cfg.nix {inherit font;}; 350 - "wezterm/colors/catppuccin.lua".source = builtins.fetchurl { 351 - url = "https://raw.githubusercontent.com/catppuccin/wezterm/65078e846c8751e9b4837a575deb0745f0c0512f/catppuccin.lua"; 352 - sha256 = "sha256:0cm8kjjga9k1fzgb7nqjwd1jdjqjrkkqaxcavfxdkl3mw7qiy1ib"; 353 - }; 271 + pinentryFlavor = "gtk2"; 354 272 }; 355 273 }; 356 274 };