He sudo on my nixos-rebuild till I switch
0

Configure Feed

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

add a user for my sister

Madeline Hashcube (Jun 28, 2026, 8:46 PM -0500) 082590a7 216e1ebd

+1741 -1
+1
flake.nix
··· 93 93 ./configurations/hosts/prism/configuration.nix 94 94 ./modules/network/copyparty/prism.nix 95 95 ./modules/nvidia.nix 96 + ./modules/users/sammyg.nix 96 97 ] ++ sharedMods; 97 98 }; 98 99 slate = nixpkgs.lib.nixosSystem {
+1 -1
modules/users/hashcube.nix
··· 30 30 inputs.catppuccin.homeModules.catppuccin 31 31 inputs.nixvim.homeModules.nixvim 32 32 inputs.walker.homeManagerModules.default 33 - inputs.plasma-manager.homeModules.plasma-manager 34 33 inputs.noctalia.homeModules.default 34 + inputs.plasma-manager.homeModules.plasma-manager 35 35 ]; 36 36 }; 37 37 }
+29
modules/users/sammyg.nix
··· 1 + { pkgs, inputs, ... }: 2 + { 3 + imports = [ 4 + ./. 5 + ]; 6 + 7 + users = { 8 + defaultUserShell = pkgs.nushell; 9 + users.sammyg = { 10 + isNormalUser = true; 11 + description = "Sammy G"; 12 + extraGroups = [ "networkmanager" "wheel" "kvm"]; 13 + shell = pkgs.nushell; 14 + }; 15 + }; 16 + programs.fish.enable = true; 17 + environment.shells = with pkgs; [ 18 + nushell 19 + ]; 20 + home-manager.extraSpecialArgs = { inherit inputs; }; 21 + home-manager.users.sammyg = { 22 + imports = [ 23 + ../../users/sammyg/. 24 + inputs.catppuccin.homeModules.catppuccin 25 + inputs.nixvim.homeModules.nixvim 26 + inputs.plasma-manager.homeModules.plasma-manager 27 + ]; 28 + }; 29 + }
+12
users/sammyg/catppuccin.nix
··· 1 + { ... }: 2 + 3 + { 4 + catppuccin = { 5 + autoEnable = true; 6 + enable = true; 7 + accent = "green"; 8 + flavor = "macchiato"; 9 + 10 + waybar.mode = "createLink"; 11 + }; 12 + }
+17
users/sammyg/default.nix
··· 1 + { ... }: 2 + 3 + { 4 + imports = [ 5 + ./programs/. 6 + # ./services/. 7 + # ./i18n/. 8 + ./theming/. 9 + ./pkgs/. 10 + 11 + # ./email.nix 12 + ./user.nix 13 + ./catppuccin.nix 14 + ./files.nix 15 + ./xdg.nix 16 + ]; 17 + }
+57
users/sammyg/email.nix
··· 1 + { inputs, ... }: 2 + 3 + { 4 + programs.aerc = { 5 + enable = true; 6 + extraConfig = { 7 + general.unsafe-accounts-conf = true; 8 + filters = { 9 + "text/plain" = "colorize"; 10 + "text/html" = "! w3m -I UTF-8 -T text/html"; 11 + }; 12 + }; 13 + }; 14 + accounts.email.accounts = { 15 + hashcube = { 16 + enable = true; 17 + primary = true; 18 + realName = "Madeline Hashcube"; 19 + passwordCommand = "cat /home/hashcube/.protonmail-bridge-password"; 20 + address = "hashcube.dev@proton.me"; 21 + # because git 22 + userName = "hashcube.dev@proton.me"; 23 + flavor = "plain"; 24 + 25 + aerc = { 26 + enable = true; 27 + }; 28 + 29 + # it's local host because of protonmail-bridge 30 + smtp = { 31 + host = "127.0.0.1"; 32 + port = 1025; 33 + tls = { 34 + enable = true; 35 + useStartTls = true; 36 + certificatesFile = "/home/hashcube/cert.pem"; 37 + }; 38 + }; 39 + imap = { 40 + host = "127.0.0.1"; 41 + port = 1143; 42 + tls = { 43 + enable = true; 44 + useStartTls = true; 45 + certificatesFile = "/home/hashcube/cert.pem"; 46 + }; 47 + }; 48 + 49 + }; 50 + }; 51 + /* */ 52 + services.protonmail-bridge = { 53 + enable = true; 54 + package = inputs.protonmail-bridge.packages.x86_64-linux.default; 55 + }; 56 + # */ 57 + }
+13
users/sammyg/files.nix
··· 1 + { pkgs, ... }: 2 + { 3 + home.file = { 4 + ".nushell-modules" = { 5 + source = pkgs.fetchFromGitHub { 6 + owner = "hashcube-dev"; 7 + repo = "nushell-modules"; 8 + rev = "main"; 9 + hash = "sha256-WOiW4cyyNvOqocPbicVqPLP3dSAN2vRXadzIFA4/2M0="; 10 + }; 11 + }; 12 + }; 13 + }
+11
users/sammyg/user.nix
··· 1 + { ... }: 2 + 3 + { 4 + home.username = "sammyg"; 5 + home.homeDirectory = "/home/sammyg"; 6 + 7 + home.stateVersion = "24.11"; 8 + 9 + # Let home Manager install and manage itself. 10 + programs.home-manager.enable = true; 11 + }
+32
users/sammyg/xdg.nix
··· 1 + { pkgs, ... }: 2 + { 3 + xdg = { 4 + terminal-exec = { 5 + enable = true; 6 + settings = { 7 + default = [ 8 + "wezterm.desktop" 9 + ]; 10 + }; 11 + }; 12 + portal = { 13 + enable = true; 14 + extraPortals = with pkgs; [ 15 + xdg-desktop-portal-gtk 16 + xdg-desktop-portal-gnome 17 + xdg-desktop-portal-hyprland 18 + ]; 19 + config = { 20 + common.default = "*"; 21 + niri = { 22 + default = [ 23 + "gtk" 24 + "gnome" 25 + ]; 26 + "org.freedesktop.impl.portal.ScreenCast" = [ "gnome" ]; 27 + "org.freedesktop.impl.portal.Screenshot" = [ "gnome" ]; 28 + }; 29 + }; 30 + }; 31 + }; 32 + }
+7
users/sammyg/i18n/default.nix
··· 1 + { ... }: 2 + 3 + { 4 + imports = [ 5 + # ./fcitx.nix 6 + ]; 7 + }
+13
users/sammyg/i18n/fcitx.nix
··· 1 + { pkgs, ... }: 2 + 3 + { 4 + i18n.inputMethod = { 5 + enable = true; 6 + type = "fcitx5"; 7 + fcitx5 = { 8 + addons = with pkgs; [ 9 + fcitx5-mozc-ut 10 + ]; 11 + }; 12 + }; 13 + }
users/sammyg/pkgs/.iolite.nix.kate-swp

This is a binary file and will not be displayed.

+15
users/sammyg/pkgs/default.nix
··· 1 + { pkgs, ... }: 2 + 3 + { 4 + home.packages = with pkgs; [ 5 + wl-clipboard 6 + prusa-slicer 7 + alvr 8 + gimp3 9 + gnome-disk-utility 10 + system76-keyboard-configurator 11 + itch 12 + supertuxkart 13 + obsidian 14 + ]; 15 + }
+13
users/sammyg/programs/default.nix
··· 1 + { ... }: 2 + 3 + { 4 + imports = [ 5 + ./cli/. 6 + ./display/. 7 + ./term/. 8 + ./shell/. 9 + ./browser/. 10 + 11 + ./nixvim.nix 12 + ]; 13 + }
+8
users/sammyg/programs/java.nix
··· 1 + { pkgs, ... }: 2 + 3 + { 4 + programs.java = { 5 + enable = true; 6 + package = pkgs.jetbrains.jdk; 7 + }; 8 + }
+11
users/sammyg/programs/kodi.nix
··· 1 + { pkgs, ... }: 2 + 3 + { 4 + programs.kodi = { 5 + enable = true; 6 + package = pkgs.kodi-wayland.withPackages (exts: with exts; [ 7 + youtube 8 + keymap 9 + ]); 10 + }; 11 + }
+78
users/sammyg/programs/nixvim.nix
··· 1 + # Note for future Maddie: 2 + 3 + # should I move this into code? 4 + # cause like that's what I do with 5 + # it, but like I also do general text 6 + # editor stuff with it. idk, ok bye i 7 + # love u girlboss slayyy pookie :3 8 + 9 + { ... }: 10 + 11 + { 12 + programs.nixvim = { 13 + nixpkgs.config.allowUnfree = true; 14 + 15 + enable = true; 16 + defaultEditor = true; 17 + 18 + # Enable and configure Packer 19 + plugins = { 20 + neo-tree.enable = true; 21 + web-devicons.enable = true; 22 + 23 + nix.enable = true; 24 + highlight-colors.enable = true; 25 + 26 + # direnv.enable = true; 27 + 28 + lsp = { 29 + enable = true; 30 + servers = { 31 + gopls.enable = true; 32 + nixd.enable = true; 33 + nil_ls = { 34 + enable = true; 35 + }; 36 + pylyzer.enable = true; 37 + rust_analyzer = { 38 + enable = true; 39 + installCargo = true; 40 + installRustc = true; 41 + }; 42 + }; 43 + }; 44 + 45 + cmp.enable = true; 46 + cmp-nvim-lsp.enable = true; 47 + 48 + trouble.enable = true; 49 + 50 + neogit.enable = true; 51 + gitgutter.enable = true; 52 + committia.enable = true; 53 + commentary.enable = true; 54 + gitblame.enable = true; 55 + }; 56 + 57 + opts = { 58 + tabstop = 2; 59 + softtabstop = 2; 60 + shiftwidth = 2; 61 + termguicolors = true; 62 + }; 63 + 64 + extraConfigLua = '' 65 + vim.expandtab = True 66 + vim.wo.relativenumber = true 67 + ''; 68 + 69 + colorschemes = { 70 + catppuccin = { 71 + enable = true; 72 + settings = { 73 + flavour = "mocha"; 74 + }; 75 + }; 76 + }; 77 + }; 78 + }
+12
users/sammyg/programs/obs-studio.nix
··· 1 + { pkgs, ...}: 2 + 3 + { 4 + programs.obs-studio = { 5 + enable = true; 6 + plugins = with pkgs.obs-studio-plugins; [ 7 + wlrobs 8 + obs-backgroundremoval 9 + obs-pipewire-audio-capture 10 + ]; 11 + }; 12 + }
+7
users/sammyg/services/arrpc.nix
··· 1 + { ... }: 2 + 3 + { 4 + services.arrpc = { 5 + enable = true; 6 + }; 7 + }
+6
users/sammyg/services/cliphist.nix
··· 1 + { ... }: 2 + { 3 + services.cliphist = { 4 + enable = true; 5 + }; 6 + }
+15
users/sammyg/services/default.nix
··· 1 + { ... }: 2 + 3 + { 4 + imports = [ 5 + # ./arrpc.nix 6 + ./cliphist.nix 7 + # ./hypridle.nix 8 + # ./kdeconnect.nix 9 + # ./ollama.nix 10 + # ./syncthing.nix 11 + ./udiskie.nix 12 + ./playerctld.nix 13 + # ./swayosd.nix 14 + ]; 15 + }
+29
users/sammyg/services/hypridle.nix
··· 1 + { ... }: 2 + { 3 + services.hypridle = { 4 + enable = true; 5 + settings = { 6 + general = { 7 + after_sleep_cmd = "niri msg action power-on-monitors"; 8 + ignore_dbus_inhibit = false; 9 + lock_cmd = "swaylock"; 10 + }; 11 + 12 + listener = [ 13 + { 14 + timeout = 900; 15 + on-timeout = "swaylock"; 16 + } 17 + { 18 + timeout = 1200; 19 + on-timeout = "niri msg action power-off-monitors"; 20 + on-resume = "niri msg action power-on-monitors"; 21 + } 22 + { 23 + timeout = 1500; 24 + on-timeout = "systemctl suspend"; 25 + } 26 + ]; 27 + }; 28 + }; 29 + }
+8
users/sammyg/services/kdeconnect.nix
··· 1 + { config, pkgs, ... }: 2 + 3 + { 4 + services.kdeconnect = { 5 + enable = true; 6 + indicator = true; 7 + }; 8 + }
+8
users/sammyg/services/ollama.nix
··· 1 + { ... }: 2 + 3 + { 4 + services.ollama = { 5 + enable = true; 6 + # acceleration = "cuda"; 7 + }; 8 + }
+5
users/sammyg/services/playerctld.nix
··· 1 + { ... }: 2 + 3 + { 4 + services.playerctld.enable = true; 5 + }
+7
users/sammyg/services/swayosd.nix
··· 1 + { ... }: 2 + 3 + { 4 + services.swayosd = { 5 + enable = true; 6 + }; 7 + }
+21
users/sammyg/services/syncthing.nix
··· 1 + { ... }: 2 + 3 + { 4 + services.syncthing = { 5 + tray.enable = true; 6 + enable = true; 7 + settings = { 8 + devices = { 9 + "asteria" = { id = "CYVLNX2-N2NNAGL-LDN4SLN-7PP2YGX-EE6TTEF-2OSSEBM-EXUUJRN-63MDKQA"; }; 10 + "iolite" = { id = "UNSVYXA-OZLI6SM-LNE2RY2-HJ5S5XQ-XXGPT4X-63GZXYP-6ODYCEP-7GWCGAZ"; }; 11 + }; 12 + folders = { 13 + "Obsidian Vaults" = { 14 + id = "55pc0-3clci"; 15 + path = "/home/hashcube/Documents/Obsidian Vaults"; 16 + devices = [ "asteria" "iolite" ]; 17 + }; 18 + }; 19 + }; 20 + }; 21 + }
+6
users/sammyg/services/udiskie.nix
··· 1 + { config, pkgs, ... }: 2 + { 3 + services.udiskie = { 4 + enable = true; 5 + }; 6 + }
+10
users/sammyg/theming/cursor.nix
··· 1 + { pkgs, ... }: 2 + 3 + { 4 + home.pointerCursor = { 5 + name = "catppuccin-macchiato-green-cursors"; 6 + package = pkgs.catppuccin-cursors.macchiatoGreen; 7 + gtk.enable = true; 8 + x11.enable = true; 9 + }; 10 + }
+9
users/sammyg/theming/default.nix
··· 1 + { ... }: 2 + 3 + { 4 + imports = [ 5 + ./cursor.nix 6 + ./gtk.nix 7 + ./qt.nix 8 + ]; 9 + }
+22
users/sammyg/theming/gtk.nix
··· 1 + { pkgs, config, ... }: 2 + 3 + { 4 + gtk = { 5 + gtk4.theme = config.gtk.theme; 6 + enable = true; 7 + font = { 8 + name = "IosevkaHashcube Nerd Font Mono"; 9 + package = pkgs.iosevka-hashcube; 10 + }; 11 + iconTheme = { 12 + name = "Papirus-Dark"; 13 + }; 14 + theme = { 15 + name = "catppuccin-macchiato-green-standard"; 16 + package = pkgs.catppuccin-gtk.override { 17 + variant = "macchiato"; 18 + accents = [ "green" ]; 19 + }; 20 + }; 21 + }; 22 + }
+9
users/sammyg/theming/qt.nix
··· 1 + { pkgs, ... }: 2 + 3 + { 4 + qt = { 5 + enable = true; 6 + platformTheme.name = "kvantum"; 7 + style.name = "kvantum"; 8 + }; 9 + }
+26
users/sammyg/programs/browser/chromium.nix
··· 1 + { ... }: 2 + 3 + { 4 + programs.chromium = { 5 + enable = true; 6 + commandLineArgs = [ 7 + "--enable-features=UseOzonePlatform" 8 + "--ozone-platform=wayland" 9 + ]; 10 + extensions = [ 11 + { id = "ddkjiahejlhfcafbddmgiahcphecmpfh"; } # ublock origin lite 12 + { id = "edibdbjcniadpccecjdfdjjppcpchdlm"; } # idgaf about cookies 13 + { id = "clngdbkpkpeebahjckkjfobafhncgmne"; } # stylus 14 + { id = "ghmbeldphafepmbegfdlkpapadhbakde"; } # proton pass 15 + { id = "dbepggeogbaibhgnhhndojpepiihcmeb"; } # vimium 16 + { id = "cnjifjpddelmedmihgijeibhnjfabmlf"; } # obsidian web clipper 17 + { id = "nffaoalbilbmmfgbnbgppjihopabppdk"; } # video speed controller 18 + { id = "mnjggcdmjocbbbhaepdhchncahnbgone"; } # sponsor block 19 + { id = "enamippconapkdmgfgjchkhakpfinmaj"; } # dearrow 20 + { id = "gebbhagfogifgggkldgodflihgfeippi"; } # youtube dislike 21 + { id = "nblkbiljcjfemkfjnhoobnojjgjdmknf"; } # FUCKING PRONOUNS!! https://youtu.be/i6AJzKkkTJQ?t=65 22 + { id = "ijcpiojgefnkmcadacmacogglhjdjphj"; } # shinigami eyes 23 + ] 24 + ; 25 + }; 26 + }
+8
users/sammyg/programs/browser/default.nix
··· 1 + 2 + { ... }: 3 + 4 + { 5 + imports = [ 6 + ./chromium.nix 7 + ]; 8 + }
+5
users/sammyg/programs/cli/btop.nix
··· 1 + { ... }: 2 + 3 + { 4 + programs.btop.enable = true; 5 + }
+10
users/sammyg/programs/cli/carapace.nix
··· 1 + { ... }: 2 + 3 + { 4 + programs.carapace = { 5 + enable = true; 6 + enableBashIntegration = true; 7 + enableFishIntegration = true; 8 + enableNushellIntegration = true; 9 + }; 10 + }
+11
users/sammyg/programs/cli/cava.nix
··· 1 + { ... }: 2 + 3 + { 4 + catppuccin.cava.transparent = true; 5 + programs.cava = { 6 + enable = true; 7 + settings = { 8 + output.method = "ncurses"; 9 + }; 10 + }; 11 + }
+17
users/sammyg/programs/cli/default.nix
··· 1 + { ... }: 2 + 3 + { 4 + imports = [ 5 + ./carapace.nix 6 + ./cava.nix 7 + ./direnv.nix 8 + ./git.nix 9 + ./hyfetch.nix 10 + ./fastfetch.nix 11 + ./jq.nix 12 + ./starship.nix 13 + ./tmux.nix 14 + ./zoxide.nix 15 + ./btop.nix 16 + ]; 17 + }
+9
users/sammyg/programs/cli/direnv.nix
··· 1 + { ... }: 2 + 3 + { 4 + programs.direnv = { 5 + enable = true; 6 + enableBashIntegration = true; 7 + nix-direnv.enable = true; 8 + }; 9 + }
+7
users/sammyg/programs/cli/fastfetch.nix
··· 1 + { ... }: 2 + 3 + { 4 + programs.fastfetch = { 5 + enable = true; 6 + }; 7 + }
+15
users/sammyg/programs/cli/git.nix
··· 1 + { ... }: 2 + 3 + { 4 + programs.git = { 5 + enable = true; 6 + settings = { 7 + init.defaultBranch = "main"; 8 + user = { 9 + name = "Sammy G"; 10 + email = "samantha.g.albrecht@gmail.com"; 11 + }; 12 + safe.directory = "/etc/nixos"; 13 + }; 14 + }; 15 + }
+16
users/sammyg/programs/cli/hyfetch.nix
··· 1 + { ... }: 2 + 3 + { 4 + programs.hyfetch = { 5 + enable = true; 6 + settings = { 7 + preset = "transfeminine"; 8 + mode = "8bit"; 9 + light_dark = "dark"; 10 + lightness = 0.65; 11 + color_align.mode = "horizontal"; 12 + backend = "fastfetch"; 13 + pride_month_disable = false; 14 + }; 15 + }; 16 + }
+7
users/sammyg/programs/cli/jq.nix
··· 1 + { config, pkgs, ... }: 2 + 3 + { 4 + programs.jq = { 5 + enable = true; 6 + }; 7 + }
+39
users/sammyg/programs/cli/starship.nix
··· 1 + { ... }: 2 + 3 + { 4 + programs.starship = { 5 + enable = true; 6 + settings = { 7 + add_newline = true; 8 + hostname = { 9 + ssh_only = false; 10 + format = "[$hostname](boldpink)"; 11 + }; 12 + username = { 13 + show_always = true; 14 + format = "[$user](boldpink)"; 15 + }; 16 + git_status = { 17 + ahead = "⇡\${count}"; 18 + diverged = "⇕⇡\${ahead_count}⇣\${behind_count}"; 19 + behind = "⇣\${count}"; 20 + }; 21 + git_branch = { 22 + format = "@[$branch(:$remote_branch)]($style)"; 23 + }; 24 + directory = { 25 + format = "[$path]($style)[$read_only]($read_only_style)"; 26 + }; 27 + shell = { 28 + disabled = false; 29 + bash_indicator = "bash"; 30 + fish_indicator = "fish"; 31 + nu_indicator = "nush"; 32 + format = ''[\[$indicator\]]($style)''; 33 + }; 34 + format = '' 35 + [>==| $directory$git_branch( $git_status) >==| $username@$hostname >==| $shell](bold pink) 36 + [>==| |>](bold pink) ''; 37 + }; 38 + }; 39 + }
+10
users/sammyg/programs/cli/tmux.nix
··· 1 + { ... }: 2 + 3 + { 4 + programs.tmux = { 5 + enable = true; 6 + clock24 = true; 7 + mouse = true; 8 + keyMode = "vi"; 9 + }; 10 + }
+12
users/sammyg/programs/cli/zoxide.nix
··· 1 + { ... }: 2 + 3 + { 4 + programs.zoxide = { 5 + enable = true; 6 + enableFishIntegration = true; 7 + enableNushellIntegration = true; 8 + options = [ 9 + "--cmd cd" 10 + ]; 11 + }; 12 + }
+6
users/sammyg/programs/code/default.nix
··· 1 + { ... }: 2 + 3 + { 4 + imports = [ 5 + ]; 6 + }
+73
users/sammyg/programs/code/vscode.nix
··· 1 + { pkgs, ... }: 2 + 3 + { 4 + catppuccin.vscode.profiles.Default = { 5 + accent = "pink"; 6 + settings = { 7 + boldKeywords = true; 8 + italicComments = true; 9 + italicKeywords = true; 10 + workbenchMode = "default"; 11 + bracketMode = "rainbow"; 12 + extraBordersEnabled = false; 13 + }; 14 + }; 15 + 16 + programs.vscode = { 17 + enable = true; 18 + package = pkgs.vscodium; 19 + profiles.Default = { 20 + extensions = with pkgs.vscode-extensions; [ 21 + vscodevim.vim 22 + bbenoist.nix 23 + arrterian.nix-env-selector 24 + 25 + vscjava.vscode-java-pack 26 + 27 + vscjava.vscode-java-debug 28 + vscjava.vscode-java-dependency 29 + vscjava.vscode-java-test 30 + vscjava.vscode-gradle 31 + vscjava.vscode-maven 32 + redhat.java 33 + 34 + ms-python.python 35 + ms-python.black-formatter 36 + ]; 37 + userSettings = { 38 + "extensions.autoUpdate" = false; 39 + "extensions.autoCheckUpdates" = false; 40 + "extensions.ignoreRecommendations" = true; 41 + "update.mode" = "none"; 42 + "update.showReleaseNotes" = false; 43 + "http.systemCertificates" = false; 44 + "git.autofetch" = true; 45 + "vim.smartRelativeLine" = true; 46 + "java.completion.favoriteStaticMembers" = [ 47 + "org.junit.Assert.*" 48 + "org.junit.Assume.*" 49 + "org.junit.jupiter.api.Assertions.*" 50 + "org.junit.jupiter.api.Assumptions.*" 51 + "org.junit.jupiter.api.DynamicContainer.*" 52 + "org.junit.jupiter.api.DynamicTest.*" 53 + "org.mockito.Mockito.*" 54 + "org.mockito.ArgumentMatchers.*" 55 + "org.mockito.Answers.*" 56 + ]; 57 + "files.autoSave" = "afterDelay"; 58 + "java.completion.matchCase" = "off"; 59 + "git.ignoreMissingGitWarning" = true; 60 + "settingsSync.ignoredSettings" = []; 61 + "redhat.telemetry.enabled" = false; 62 + "chat.commandCenter.enabled" = false; 63 + "editor.fontLigatures" = true; 64 + "git.confirmSync" = false; 65 + "diffEditor.ignoreTrimWhitespace" = false; 66 + "wpilib.autoStartRioLog" = false; 67 + "editor.fontFamily" = "JetBrains Mono"; 68 + "editor.tabSize" = 2; 69 + "java.jdt.ls.java.home" = "${pkgs.jdk}"; 70 + }; 71 + }; 72 + }; 73 + }
+41
users/sammyg/programs/code/zed.nix
··· 1 + { ... }: 2 + 3 + { 4 + programs.zed-editor = { 5 + enable = true; 6 + extensions = [ 7 + "nix" 8 + "java" 9 + "kotlin" 10 + "discord-presence" 11 + "pylsp" 12 + ]; 13 + userSettings = { 14 + vim_mode = true; 15 + window_decorations = "server"; 16 + theme = { 17 + mode = "system"; 18 + }; 19 + buffer_font_family = "JetBrainsMono Nerd Font Mono"; 20 + buffer_font_features = { 21 + calt = true; 22 + }; 23 + ui_font_family = "JetBrainsMono Nerd Font Mono"; 24 + ui_font_features = { 25 + calt = true; 26 + }; 27 + terminal = { 28 + font_family = "JetBrainsMono Nerd Font Mono"; 29 + font_features = { 30 + calt = true; 31 + }; 32 + }; 33 + tab_size = 2; 34 + vim = { 35 + toggle_relative_line_numbers = true; 36 + }; 37 + hour_format = "hour24"; 38 + load_direnv = "shell_hook"; 39 + }; 40 + }; 41 + }
+7
users/sammyg/programs/display/default.nix
··· 1 + { ... }: 2 + 3 + { 4 + imports = [ 5 + ./niri.nix 6 + ]; 7 + }
+88
users/sammyg/programs/display/hyprland.nix
··· 1 + { ... }: 2 + 3 + { 4 + wayland.windowManager.hyprland = { 5 + enable = true; 6 + package = null; 7 + extraConfig = '' 8 + monitor = HDMI-A-2, 1920x1200@59.95Hz, 1920x-530, 1, transform, 1 9 + monitor = HDMI-A-1, 1920x1080@60.00Hz, 0x0, 1 10 + exec-once = hyprctl hyprpaper reload HDMI-A-2,~/Pictures/wallpaper/wallvert.png 11 + exec-once = hyprctl hyprpaper reload HDMI-A-1,~/Pictures/wallpaper/wallhoriz.png 12 + exec-once = wl-paste --type text --watch cliphist store 13 + exec-once = wl-paste --type image --watch cliphist store 14 + ''; 15 + settings = { 16 + "$mod" = "SUPER"; 17 + input.numlock_by_default = true; 18 + bind = [ 19 + "$mod, T, exec, ghostty" 20 + "$mod, Z, exec, zen" 21 + "$mod, Q, killactive, " 22 + "$mod, N, exec, pkill swaync-client || swaync-client -t -sw" 23 + "$mod, R, exec, nautilus" 24 + "$mod, E, exec, zeditor" 25 + 26 + "$mod+Shift, END, exec, wlogout" 27 + 28 + "$mod, D, fullscreen, 0" 29 + "$mod, F, fullscreen, 1" 30 + 31 + "$mod+Shift, left, movewindow, l" 32 + "$mod+Shift, right, movewindow, r" 33 + "$mod+Shift, up, movewindow, u" 34 + "$mod+Shift, down, movewindow, d" 35 + "$mod, left, movefocus, l" 36 + "$mod, right, movefocus, r" 37 + "$mod, up, movefocus, u" 38 + "$mod, down, movefocus, d" 39 + "$mod, Escape, exec, hyprlock" 40 + 41 + "$mod, 1, exec, bash -c 'hyprctl dispatch workspace $(((($(hyprctl activeworkspace -j | jq -r .id) - 1) / 10) * 10 + 1))'" 42 + "$mod, 2, exec, bash -c 'hyprctl dispatch workspace $(((($(hyprctl activeworkspace -j | jq -r .id) - 1) / 10) * 10 + 2))'" 43 + "$mod, 3, exec, bash -c 'hyprctl dispatch workspace $(((($(hyprctl activeworkspace -j | jq -r .id) - 1) / 10) * 10 + 3))'" 44 + "$mod, 4, exec, bash -c 'hyprctl dispatch workspace $(((($(hyprctl activeworkspace -j | jq -r .id) - 1) / 10) * 10 + 4))'" 45 + "$mod, 5, exec, bash -c 'hyprctl dispatch workspace $(((($(hyprctl activeworkspace -j | jq -r .id) - 1) / 10) * 10 + 5))'" 46 + "$mod, 6, exec, bash -c 'hyprctl dispatch workspace $(((($(hyprctl activeworkspace -j | jq -r .id) - 1) / 10) * 10 + 6))'" 47 + "$mod, 7, exec, bash -c 'hyprctl dispatch workspace $(((($(hyprctl activeworkspace -j | jq -r .id) - 1) / 10) * 10 + 7))'" 48 + "$mod, 8, exec, bash -c 'hyprctl dispatch workspace $(((($(hyprctl activeworkspace -j | jq -r .id) - 1) / 10) * 10 + 8))'" 49 + "$mod, 9, exec, bash -c 'hyprctl dispatch workspace $(((($(hyprctl activeworkspace -j | jq -r .id) - 1) / 10) * 10 + 9))'" 50 + "$mod, 0, exec, bash -c 'hyprctl dispatch workspace $(((($(hyprctl activeworkspace -j | jq -r .id) - 1) / 10) * 10 + 10))'" 51 + "$mod, Page_Down, workspace, -1" 52 + "$mod, Page_Up, workspace, +1" 53 + 54 + "$mod+Shift, 1, exec, bash -c 'hyprctl dispatch movetoworkspace $(((($(hyprctl activeworkspace -j | jq -r .id) - 1) / 10) * 10 + 1))'" 55 + "$mod+Shift, 2, exec, bash -c 'hyprctl dispatch movetoworkspace $(((($(hyprctl activeworkspace -j | jq -r .id) - 1) / 10) * 10 + 2))'" 56 + "$mod+Shift, 3, exec, bash -c 'hyprctl dispatch movetoworkspace $(((($(hyprctl activeworkspace -j | jq -r .id) - 1) / 10) * 10 + 3))'" 57 + "$mod+Shift, 4, exec, bash -c 'hyprctl dispatch movetoworkspace $(((($(hyprctl activeworkspace -j | jq -r .id) - 1) / 10) * 10 + 4))'" 58 + "$mod+Shift, 5, exec, bash -c 'hyprctl dispatch movetoworkspace $(((($(hyprctl activeworkspace -j | jq -r .id) - 1) / 10) * 10 + 5))'" 59 + "$mod+Shift, 6, exec, bash -c 'hyprctl dispatch movetoworkspace $(((($(hyprctl activeworkspace -j | jq -r .id) - 1) / 10) * 10 + 6))'" 60 + "$mod+Shift, 7, exec, bash -c 'hyprctl dispatch movetoworkspace $(((($(hyprctl activeworkspace -j | jq -r .id) - 1) / 10) * 10 + 7))'" 61 + "$mod+Shift, 8, exec, bash -c 'hyprctl dispatch movetoworkspace $(((($(hyprctl activeworkspace -j | jq -r .id) - 1) / 10) * 10 + 8))'" 62 + "$mod+Shift, 9, exec, bash -c 'hyprctl dispatch movetoworkspace $(((($(hyprctl activeworkspace -j | jq -r .id) - 1) / 10) * 10 + 9))'" 63 + "$mod+Shift, 0, exec, bash -c 'hyprctl dispatch movetoworkspace $(((($(hyprctl activeworkspace -j | jq -r .id) - 1) / 10) * 10 + 10))'" 64 + "$mod+Shift, Page_Down, movetoworkspace, -1" 65 + "$mod+Shift, Page_Up, movetoworkspace, +1" 66 + 67 + ",XF86AudioPlay, exec, playerctl play-pause" 68 + ",XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle" 69 + ",XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+" 70 + ",XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-" 71 + ",Print, exec, grimblast edit" 72 + ]; 73 + binde = [ 74 + "$mod, semicolon, splitratio, -0.05" 75 + "$mod+Shift, semicolon, splitratio, -0.025" 76 + "$mod, apostrophe, splitratio, +0.05" 77 + "$mod+Shift, apostrophe, splitratio, +0.025" 78 + ]; 79 + bindr = [ 80 + "$mod, SUPER_L, exec, pkill fuzzel || fuzzel" 81 + "$mod, V, exec, cliphist list | fuzzel --dmenu | cliphist decode | wl-copy" 82 + ]; 83 + bindm = [ 84 + "Super, mouse:272, resizewindow" 85 + ]; 86 + }; 87 + }; 88 + }
+235
users/sammyg/programs/display/niri.nix
··· 1 + { 2 + config, 3 + lib, 4 + ... 5 + }: 6 + { 7 + programs.niri = { 8 + settings = { 9 + hotkey-overlay = { 10 + skip-at-startup = true; 11 + hide-not-bound = true; 12 + }; 13 + clipboard.disable-primary = true; 14 + spawn-at-startup = [ 15 + { command = [ "indicator-sound-switcher" ]; } 16 + ]; 17 + input = { 18 + focus-follows-mouse.enable = true; 19 + keyboard.numlock = true; 20 + warp-mouse-to-focus.enable = true; 21 + }; 22 + 23 + outputs = { 24 + "eDP-1" = { 25 + position = { 26 + x = -1600; 27 + y = 0; 28 + }; 29 + }; 30 + "HDMI-A-1" = { 31 + position = { 32 + x = 0; 33 + y = 0; 34 + }; 35 + }; 36 + "HDMI-A-2" = { 37 + transform = { 38 + rotation = 90; 39 + }; 40 + position = { 41 + x = 1920; 42 + y = -530; 43 + }; 44 + }; 45 + }; 46 + 47 + overview.backdrop-color = "#11111b"; 48 + layout = { 49 + focus-ring = { 50 + active.color = "#f5c2e7"; 51 + inactive.color = "#313244"; 52 + urgent.color = "#f38ba8"; 53 + }; 54 + insert-hint.display.color = "#f5c2e744"; 55 + default-column-width.proportion = 0.5; 56 + always-center-single-column = true; 57 + background-color = "#11111b"; 58 + }; 59 + 60 + prefer-no-csd = true; 61 + binds = 62 + with config.lib.niri.actions; 63 + let 64 + sh = spawn "sh" "-c"; 65 + nu = spawn "nu" "-c"; 66 + term = spawn "xdg-terminal-exec"; 67 + in 68 + { 69 + "Mod+period" = { 70 + hotkey-overlay.title = "Spawn Walker (App Launcher)"; 71 + action = sh ''walker''; 72 + }; 73 + "Mod+N" = { 74 + hotkey-overlay.title = "Open Notifications"; 75 + action = sh ''sleep 0.1 && swaync-client -t -sw''; 76 + }; 77 + "Mod+T" = { 78 + hotkey-overlay.title = "Open A Terminal"; 79 + action = term ''nu''; 80 + }; 81 + "Mod+E" = { 82 + hotkey-overlay.title = "Open Aerc (Email)"; 83 + action = term "aerc"; 84 + }; 85 + "Mod+R" = { 86 + hotkey-overlay.title = "Open Nautilus (Files)"; 87 + action = spawn "nautilus"; 88 + }; 89 + "Mod+Z" = { 90 + hotkey-overlay.title = "Open Zen Browser"; 91 + action = spawn "zen-beta"; 92 + }; 93 + "Mod+B" = { 94 + hotkey-overlay.title = "Hide Waybar"; 95 + action = sh ''pkill -USR1 waybar''; 96 + }; 97 + "Mod+V" = { 98 + hotkey-overlay.title = "View Clipboard history"; 99 + action = sh ''walker -m clipboard''; 100 + }; 101 + "Mod+C" = { 102 + hotkey-overlay.title = "Open Cava"; 103 + action = term "cava"; 104 + }; 105 + "Mod+Shift+C" = 106 + let toys = [ 107 + "cava" 108 + "pipes-rs" 109 + "btop" 110 + "tmatrix" 111 + "fireplace" 112 + ]; in { 113 + hotkey-overlay.title = "Open Terminal Toys Menu"; 114 + action = nu ''echo "${lib.concatStringsSep "\n" toys}" | 115 + walker -dnNH --height 5 | 116 + if $in != "" { xdg-terminal-exec $in }''; 117 + }; 118 + "Mod+Escape" = { 119 + hotkey-overlay.title = "Lock Screen"; 120 + action = spawn "swaylock"; 121 + }; 122 + "Mod+Shift+End" = { 123 + hotkey-overlay.title = "Show Power Options"; 124 + action = spawn "wleave"; 125 + }; 126 + "Mod+slash".action = show-hotkey-overlay; 127 + 128 + "Mod+Shift+Z" = { 129 + hotkey-overlay.title = "Activate Woomer (Magnifying Glass)"; 130 + action = spawn "woomer"; 131 + }; 132 + 133 + "Mod+Q".action = close-window; 134 + "Mod+Up".action = focus-window-or-workspace-up; 135 + "Mod+Down".action = focus-window-or-workspace-down; 136 + "Mod+Left".action = focus-column-or-monitor-left; 137 + "Mod+Right".action = focus-column-or-monitor-right; 138 + "Mod+Shift+Up".action = move-window-up-or-to-workspace-up; 139 + "Mod+Shift+Down".action = move-window-down-or-to-workspace-down; 140 + "Mod+Shift+Left".action = move-column-left-or-to-monitor-left; 141 + "Mod+Shift+Right".action = move-column-right-or-to-monitor-right; 142 + "Mod+Control+Left".action = consume-or-expel-window-left; 143 + "Mod+Control+Right".action = consume-or-expel-window-right; 144 + "Mod+bracketleft".action = focus-column-first; 145 + "Mod+bracketright".action = focus-column-last; 146 + "Mod+Shift+bracketleft".action = move-column-to-first; 147 + "Mod+Shift+bracketright".action = move-column-to-last; 148 + "Mod+Prior".action = focus-workspace-up; 149 + "Mod+Next".action = focus-workspace-down; 150 + "Mod+Shift+Prior".action = move-window-to-workspace-up; 151 + "Mod+Shift+Next".action = move-window-to-workspace-down; 152 + "Mod+Control+Prior".action = move-workspace-up; 153 + "Mod+Control+Next".action = move-workspace-down; 154 + 155 + "Super+P".action = toggle-overview; # For Laptop (I have no clue either) 156 + "Mod+W".action = toggle-overview; 157 + "Mod+Shift+W" = let 158 + # Preset Names 159 + names = [ 160 + "Main" 161 + "Comms" 162 + "Steam" 163 + "Game" 164 + "Eye Candy" 165 + ]; 166 + # If the passed in name is equal to one of these, the 167 + # workspace name will be unset, essentially deleting it 168 + reset = [ 169 + "/delete" 170 + " " 171 + ]; 172 + in { 173 + action = nu ''let title = | 174 + echo "${lib.concatStringsSep "\n" names}" | 175 + walker -dNH --height 5; 176 + 177 + $title in ["${lib.concatStringsSep "\", \"" reset}"] | 178 + if $in { 179 + niri msg action unset-workspace-name 180 + } else { 181 + niri msg action set-workspace-name $title 182 + }''; 183 + hotkey-overlay.title = "Set Workspace Name"; 184 + }; 185 + "Mod+Tab".action = focus-monitor-next; 186 + "Mod+Shift+Tab".action = move-column-to-monitor-next; 187 + 188 + "Mod+Apostrophe".action = set-column-width "+10%"; 189 + "Mod+Semicolon".action = set-column-width "-10%"; 190 + "Mod+Shift+Apostrophe".action = set-column-width "+5%"; 191 + "Mod+Shift+Semicolon".action = set-column-width "-5%"; 192 + "Mod+Control+Apostrophe".action = set-window-height "+10%"; 193 + "Mod+Control+Semicolon".action = set-window-height "-10%"; 194 + "Mod+Control+Shift+Apostrophe".action = set-window-height "+5%"; 195 + "Mod+Control+Shift+Semicolon".action = set-window-height "-5%"; 196 + 197 + "Mod+F".action = maximize-column; 198 + "Mod+D".action = fullscreen-window; 199 + "Mod+S".action = move-window-to-floating; 200 + "Mod+A".action = move-window-to-tiling; 201 + "Mod+X".action = center-visible-columns; 202 + "Mod+Control+F".action = expand-column-to-available-width; 203 + "Mod+L".action = toggle-column-tabbed-display; 204 + "Mod+Print".action.screenshot.show-pointer = false; 205 + 206 + "XF86AudioMute".action = sh ''swayosd-client --output-volume mute-toggle''; 207 + "XF86AudioRaiseVolume".action = sh ''swayosd-client --output-volume raise''; 208 + "XF86AudioLowerVolume".action = sh ''swayosd-client --output-volume lower''; 209 + "XF86MonBrightnessDown".action = sh ''swayosd-client --brightness lower''; 210 + "XF86MonBrightnessUp".action = sh ''swayosd-client --brightness raise''; 211 + "XF86AudioPlay".action = sh ''swayosd-client --playerctl play-pause''; 212 + "XF86AudioPrev".action = sh ''swayosd-client --playerctl prev''; 213 + "XF86AudioNext".action = sh ''swayosd-client --playerctl next''; 214 + }; 215 + window-rules = [ 216 + { 217 + draw-border-with-background = false; 218 + geometry-corner-radius = 219 + let 220 + r = 8.0; 221 + in 222 + { 223 + top-left = r; 224 + top-right = r; 225 + bottom-left = r; 226 + bottom-right = r; 227 + }; 228 + clip-to-geometry = true; 229 + # TODO: Whenever this gets added to the flake, use it 230 + # background-effect.blur = true; 231 + } 232 + ]; 233 + }; 234 + }; 235 + }
+9
users/sammyg/programs/shell/default.nix
··· 1 + 2 + { ... }: 3 + 4 + { 5 + imports = [ 6 + ./fish.nix 7 + ./nu.nix 8 + ]; 9 + }
+19
users/sammyg/programs/shell/fish.nix
··· 1 + { pkgs, ... }: 2 + 3 + { 4 + programs.fish = { 5 + enable = true; 6 + shellInit = '' 7 + set fish_greeting 8 + direnv hook fish | source 9 + zoxide init fish | source 10 + ''; 11 + shellInitLast = "fastfetch"; 12 + plugins = [ 13 + { 14 + name = "tide"; 15 + src = pkgs.fishPlugins.tide.src; 16 + } 17 + ]; 18 + }; 19 + }
+35
users/sammyg/programs/shell/nu.nix
··· 1 + { ... }: 2 + 3 + { 4 + home.shell.enableNushellIntegration = true; 5 + programs.nushell = { 6 + enable = true; 7 + shellAliases = { 8 + "git ass" = "git add"; 9 + }; 10 + environmentVariables = { 11 + EDITOR = "nvim"; 12 + # GDK_BACKEND = "x11"; 13 + NH_FLAKE = "/etc/nixos"; 14 + QT_QPA_PLATFORM = "xcb"; 15 + }; 16 + settings = { 17 + buffer_editor = "nvim"; 18 + show_banner = false; 19 + completions.external = { 20 + enable = true; 21 + max_results = 200; 22 + }; 23 + }; 24 + extraEnv = ''# Extra Env 25 + mkdir $"($nu.cache-dir)" 26 + carapace _carapace nushell | save --force $"($nu.cache-dir)/carapace.nu" 27 + ''; 28 + extraConfig = ''# Extra Config 29 + hyfetch 30 + 31 + source ~/.nushell-modules/mod.nu 32 + source $"($nu.cache-dir)/carapace.nu" 33 + ''; 34 + }; 35 + }
+10
users/sammyg/programs/term/alacritty.nix
··· 1 + { ... }: 2 + 3 + { 4 + programs.alacritty = { 5 + enable = true; 6 + settings = { 7 + font.normal.family = "IosevkaHashcube Nerd Font Mono"; 8 + }; 9 + }; 10 + }
+7
users/sammyg/programs/term/default.nix
··· 1 + { ... }: 2 + 3 + { 4 + imports = [ 5 + ./wezterm.nix 6 + ]; 7 + }
+14
users/sammyg/programs/term/ghostty.nix
··· 1 + { ... }: 2 + 3 + { 4 + programs.ghostty = { 5 + enable = true; 6 + enableFishIntegration = true; 7 + enableBashIntegration = true; 8 + settings = { 9 + window-height = 42; 10 + window-width = 93; 11 + # background-opacity = 0.5; 12 + }; 13 + }; 14 + }
+16
users/sammyg/programs/term/kitty.nix
··· 1 + { pkgs, ... }: 2 + 3 + { 4 + programs.kitty = { 5 + enable = true; 6 + font = { 7 + name = "IosevkaHashcube Nerd Font Mono"; 8 + package = pkgs.iosevka-hashcube; 9 + }; 10 + settings = { 11 + background_opacity = 0.5; 12 + allow_remote_control = true; 13 + font_features = "IosevkaHashcube Nerd Font Mono -calt +dlig"; 14 + }; 15 + }; 16 + }
+11
users/sammyg/programs/term/wezterm.nix
··· 1 + { lib, ... }: 2 + 3 + { 4 + programs.wezterm = { 5 + enable = true; 6 + settings = { 7 + font_size = 12; 8 + font = lib.generators.mkLuaInline ''wezterm.font("IosevkaHashcube Nerd Font Mono")''; 9 + }; 10 + }; 11 + }
+15
users/sammyg/programs/wayland/default.nix
··· 1 + { ... }: 2 + 3 + { 4 + imports = [ 5 + # ./noctalia.nix 6 + ./wpaperd.nix 7 + # ./hyprpaper.nix 8 + ./swaync.nix 9 + ./waybar.nix 10 + ./wleave.nix 11 + # ./wlogout.nix 12 + ./walker.nix 13 + ./swaylock.nix 14 + ]; 15 + }
+16
users/sammyg/programs/wayland/fuzzel.nix
··· 1 + { ... }: 2 + 3 + { 4 + programs.fuzzel = { 5 + enable = true; 6 + settings = { 7 + main = { 8 + font = "JetBrainsMono Nerd Font Mono"; 9 + icon-theme = "Papirus Dark"; 10 + }; 11 + key-bindings = { 12 + cancel = "Control+g Control+c Control+bracketleft Escape"; 13 + }; 14 + }; 15 + }; 16 + }
+7
users/sammyg/programs/wayland/hyprlock.nix
··· 1 + { ... }: 2 + 3 + { 4 + programs.hyprlock = { 5 + enable = true; 6 + }; 7 + }
+25
users/sammyg/programs/wayland/hyprpaper.nix
··· 1 + { ... }: 2 + 3 + { 4 + services.hyprpaper = { 5 + enable = true; 6 + settings = { 7 + # preload = [ "/home/hashcube/Pictures/wallpaper/wallhoriz.png" "/home/hashcube/Pictures/wallpaper/wallvert.png" ]; 8 + 9 + wallpaper = [ 10 + { 11 + monitor = "HDMI-A-1"; 12 + path = "/home/hashcube/Pictures/wallpaper/wallhoriz.png"; 13 + } 14 + { 15 + monitor = "HDMI-A-2"; 16 + path = "/home/hashcube/Pictures/wallpaper/wallvert.png"; 17 + } 18 + { 19 + monitor = "eDP-1"; 20 + path = "/home/hashcube/Pictures/wallpaper/wallhoriz.png"; 21 + } 22 + ]; 23 + }; 24 + }; 25 + }
+7
users/sammyg/programs/wayland/noctalia.nix
··· 1 + { ... }: 2 + 3 + { 4 + programs.noctalia-shell = { 5 + enable = true; 6 + }; 7 + }
+23
users/sammyg/programs/wayland/swaylock.nix
··· 1 + { lib, pkgs, ... }: 2 + 3 + { 4 + programs.swaylock = { 5 + enable = true; 6 + package = pkgs.swaylock-effects; 7 + settings = { 8 + indicator-idle-visible = true; 9 + font = "IosevkaHashcube Nerd Font Mono"; 10 + 11 + clock = true; 12 + datestr = "%Y-%m-%d"; 13 + timestr = "%H:%M"; 14 + screenshots = true; 15 + effect-blur = "10x10"; 16 + fade-in = 0.25; 17 + ignore-empty-password = true; 18 + key-hl-color = lib.mkForce "#f5c2e7"; 19 + ring-ver-color = lib.mkForce "#cba6f7"; 20 + text-ver-color = lib.mkForce "#cba6f7"; 21 + }; 22 + }; 23 + }
+41
users/sammyg/programs/wayland/swaync.nix
··· 1 + { ... }: 2 + { 3 + catppuccin.swaync.font = "IosevkaHashcube Nerd Font Mono"; 4 + services.swaync = { 5 + enable = true; 6 + settings = { 7 + positionX = "right"; 8 + positionY = "top"; 9 + layer = "overlay"; 10 + control-center-layer = "top"; 11 + layer-shell = true; 12 + cssPriority = "user"; 13 + control-center-margin-top = 0; 14 + control-center-margin-bottom = 0; 15 + control-center-margin-right = 0; 16 + control-center-margin-left = 0; 17 + notification-2fa-action = true; 18 + notification-inline-replies = true; 19 + notification-icon-size = 64; 20 + notification-body-image-height = 100; 21 + notification-body-image-width = 200; 22 + widgets = [ 23 + "title" 24 + "dnd" 25 + "backlight" 26 + "mpris" 27 + "notifications" 28 + ]; 29 + widget-config = { 30 + mpris = { 31 + autohide = true; 32 + show-album-art = "when-available"; 33 + }; 34 + backlight = { 35 + label = "󰃠"; 36 + device = "radeon_bl1"; 37 + }; 38 + }; 39 + }; 40 + }; 41 + }
+28
users/sammyg/programs/wayland/walker.nix
··· 1 + { ... }: 2 + 3 + { 4 + programs.walker = { 5 + enable = true; 6 + runAsService = true; 7 + config = { 8 + providers.prefixes = [ 9 + { 10 + prefix = "!"; 11 + provider = "runner"; 12 + } 13 + { 14 + prefix = "?"; 15 + provider = "providerlist"; 16 + } 17 + { 18 + prefix = "="; 19 + provider = "calc"; 20 + } 21 + { 22 + prefix = ":"; 23 + provider = "clipboard"; 24 + } 25 + ]; 26 + }; 27 + }; 28 + }
+210
users/sammyg/programs/wayland/waybar.nix
··· 1 + { config, pkgs, inputs, ... }: 2 + 3 + { 4 + programs.waybar = { 5 + enable = true; 6 + settings = { 7 + mainBar = { 8 + layer = "top"; 9 + position = "top"; 10 + height = 32; 11 + margin-top = 16; 12 + margin-left = 16; 13 + margin-right = 16; 14 + modules-left = [ /*"hyprland/workspaces"*/ "niri/workspaces" ]; 15 + modules-center = [ "clock" ]; 16 + modules-right = [ 17 + "tray" 18 + "idle_inhibitor" 19 + "wireplumber" 20 + "battery" 21 + "custom/notification" 22 + ]; 23 + 24 + idle_inhibitor = { 25 + tooltip = false; 26 + format = "{icon}"; 27 + format-icons = { 28 + activated = "󰅶"; 29 + deactivated = "󰢠"; 30 + }; 31 + }; 32 + 33 + battery = { 34 + interval = 5; 35 + states = { 36 + fine = 50; 37 + warning = 30; 38 + critical = 15; 39 + }; 40 + events = { 41 + on-discharging-critical = '' 42 + notify-send "Your Battery is critically low! Please charge your device" -u critical -a "Battery Warning!" -i battery-caution 43 + ''; 44 + }; 45 + format = "{capacity}%"; 46 + format-charging = "⇡{capacity}%"; 47 + format-discharging = "⇣{capacity}%"; 48 + }; 49 + 50 + clock = { 51 + format = "{:%H:%M}"; 52 + format-alt = "{:%Y-%m-%d}"; 53 + tooltip-format = "<tt><small>{calendar}</small></tt>"; 54 + }; 55 + wireplumber = { 56 + format = "{volume}%"; 57 + format-muted = "{volume}X"; 58 + scroll-step = 1; 59 + }; 60 + "niri/workspaces" = { 61 + format = "{name}"; 62 + }; 63 + /** 64 + "hyprland/workspaces" = { 65 + format = "[{windows}]"; 66 + persistent-workspaces = { 67 + "*" = 10; 68 + }; 69 + "window-rewrite-default" = "-"; 70 + "window-rewrite" = { 71 + "title<.*Zen Browser>" = ""; 72 + "title<.*YouTube.*>" = ""; 73 + "class<legcord>" = "󰙯"; 74 + "class<dev.zed.Zed>" = "󰈮"; 75 + "class<com.mitchellh.ghostty>" = ""; 76 + "class<com.obsproject.Studio>" = "󰑋"; 77 + "class<obsidian>" = "󰠮"; 78 + "class<steam>" = "󰓓"; 79 + "class<org.kde.kdenlive>" = ""; 80 + "class<Slack>" = "󰒱"; 81 + "class<itch>" = ""; 82 + "class<Tor Browser>" = ""; 83 + "class<PrusaSlicer>" = ""; 84 + "class<VSCodium>" = ""; 85 + "class<io.mrarm.>" = "󰍳"; 86 + "class<org.prismlauncher.PrismLauncher>" = "󰍳"; 87 + "title<Minecraft.*>" = "󰍳"; 88 + "title<Picture-in-Picture>" = "󰹘"; 89 + "class<gimp>" = ""; 90 + "class<Beeper>" = "󰍨"; 91 + #"" = ""; 92 + #"" = ""; 93 + }; 94 + }; 95 + //*/ 96 + "custom/notification" = { 97 + tooltip = false; 98 + format = "{} {icon}"; 99 + format-icons = { 100 + notification = "󱅫"; 101 + none = ""; 102 + dnd-notification = ""; 103 + dnd-none = "󰂛"; 104 + inhibited-notification = ""; 105 + inhibited-none = ""; 106 + dnd-inhibited-notification = ""; 107 + dnd-inhibited-none = ""; 108 + }; 109 + return-type = "json"; 110 + exec-if = "which swaync-client"; 111 + exec = "swaync-client -swb"; 112 + on-click = "sleep 0.1 && swaync-client -t -sw"; 113 + on-click-right = "sleep 0.1 && swaync-client -d -sw"; 114 + escape = true; 115 + }; 116 + tray.spacing = 32; 117 + }; 118 + }; 119 + 120 + style = '' 121 + @import "catppuccin.css"; 122 + 123 + * { 124 + font-family: IosevkaHashcube Nerd Font Mono; 125 + } 126 + 127 + #waybar { 128 + background: transparent; 129 + color: @text; 130 + } 131 + 132 + #wireplumber { 133 + color: @mauve; 134 + } 135 + 136 + #custom-notification.dnd-none, 137 + #custom-notification.dnd-notification, 138 + #custom-notification.dnd-inhibited-notification, 139 + #custom-notification.dnd-inhibited-none, 140 + #idle_inhibitor.deactivated, 141 + #wireplumber.muted { 142 + color: @subtext0; 143 + font-style: italic; 144 + } 145 + 146 + #tray { 147 + border-radius: 8px 0px 0px 8px; 148 + } 149 + 150 + #clock { 151 + color: @pink; 152 + border-radius: 8px; 153 + } 154 + 155 + #battery { 156 + color: @sky; 157 + } 158 + 159 + #battery.fine { 160 + color: @yellow; 161 + } 162 + 163 + #battery.warning { 164 + color: @peach; 165 + } 166 + 167 + #battery.critical { 168 + color: @red; 169 + font-weight: bold; 170 + } 171 + 172 + #battery.charging { 173 + color: @green; 174 + } 175 + 176 + #workspaces { 177 + border-radius: 8px; 178 + } 179 + 180 + #workspaces button { 181 + background-color: @surface0; 182 + color: @text; 183 + } 184 + 185 + #workspaces button.active { 186 + background-color: @pink; 187 + color: @base; 188 + font-weight: bold; 189 + } 190 + 191 + #custom-notification { 192 + color: @pink; 193 + border-radius: 0px 8px 8px 0px; 194 + } 195 + 196 + #clock, 197 + #workspaces, 198 + #idle_inhibitor, 199 + #tray, 200 + #custom-notification, 201 + #wireplumber, 202 + #battery { 203 + background-color: @base; 204 + padding: 0.5rem 1rem; 205 + } 206 + 207 + ''; 208 + systemd.enable = true; 209 + }; 210 + }
+43
users/sammyg/programs/wayland/wleave.nix
··· 1 + { pkgs, ... }: 2 + 3 + { 4 + programs.wleave = { 5 + enable = true; 6 + settings = { 7 + buttons-per-row = "1/2"; 8 + close-on-lost-focus = true; 9 + show-keybinds = true; 10 + no-version-info = true; 11 + buttons = [ 12 + { 13 + label = "lock"; 14 + action = "swaylock"; 15 + text = "Lock"; 16 + keybind = "l"; 17 + icon = "${pkgs.wleave}/share/wleave/icons/lock.svg"; 18 + } 19 + { 20 + label = "reboot"; 21 + action = "systemctl reboot"; 22 + text = "Reboot"; 23 + keybind = "r"; 24 + icon = "${pkgs.wleave}/share/wleave/icons/reboot.svg"; 25 + } 26 + { 27 + label = "shutdown"; 28 + action = "systemctl poweroff"; 29 + text = "Shutdown"; 30 + keybind = "s"; 31 + icon = "${pkgs.wleave}/share/wleave/icons/shutdown.svg"; 32 + } 33 + { 34 + label = "suspend"; 35 + action = "systemctl suspend"; 36 + text = "Suspend"; 37 + keybind = "u"; 38 + icon = "${pkgs.wleave}/share/wleave/icons/suspend.svg"; 39 + } 40 + ]; 41 + }; 42 + }; 43 + }
+33
users/sammyg/programs/wayland/wlogout.nix
··· 1 + { pkgs, ... }: 2 + 3 + { 4 + programs.wlogout = { 5 + enable = true; 6 + layout = [ 7 + { 8 + label = "lock"; 9 + action = "swaylock"; 10 + text = "Lock"; 11 + keybind = "l"; 12 + } 13 + { 14 + label = "shutdown"; 15 + action = "systemctl poweroff"; 16 + text = "Shutdown"; 17 + keybind = "s"; 18 + } 19 + { 20 + label = "suspend"; 21 + action = "systemctl suspend"; 22 + text = "Suspend"; 23 + keybind = "u"; 24 + } 25 + { 26 + label = "reboot"; 27 + action = "systemctl reboot"; 28 + text = "Reboot"; 29 + keybind = "r"; 30 + } 31 + ]; 32 + }; 33 + }
+18
users/sammyg/programs/wayland/wpaperd.nix
··· 1 + { ... }: 2 + 3 + { 4 + services.wpaperd = { 5 + enable = true; 6 + settings = { 7 + HDMI-A-1 = { 8 + path = "/home/hashcube/Pictures/wallpaper/wallhoriz.png"; 9 + }; 10 + HDMI-A-2 = { 11 + path = "/home/hashcube/Pictures/wallpaper/wallvert.png"; 12 + }; 13 + eDP-1 = { 14 + path = "/home/hashcube/Pictures/wallpaper/wallhoriz.png"; 15 + }; 16 + }; 17 + }; 18 + }
+7
users/sammyg/programs/display/kde/cursor.nix
··· 1 + { ... }: 2 + 3 + { 4 + programs.plasma.workspace.cursor = { 5 + theme = "catppuccin-mocha-pink-cursors"; 6 + }; 7 + }
+8
users/sammyg/programs/display/kde/default.nix
··· 1 + { ... }: 2 + 3 + { 4 + imports = [ 5 + ./cursor.nix 6 + ./wall.nix 7 + ]; 8 + }
+5
users/sammyg/programs/display/kde/wall.nix
··· 1 + { ... }: 2 + 3 + { 4 + programs.plasma.workspace.wallpaper = "/home/hashcube/Pictures/wallpaper/wallhoriz.png"; 5 + }