diff --git a/navi/configuration.nix b/navi/configuration.nix index 187355d..4f04d1e 100644 --- a/navi/configuration.nix +++ b/navi/configuration.nix @@ -1,83 +1,46 @@ +{ config, pkgs, ... }: { - pkgs, - lib, - ... -}: { imports = [ ./hardware-configuration.nix ]; + # Bootloader boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = true; - boot.kernelParams = ["transparent_hugepage=never"]; - + programs.dconf.enable = true; + # Hostname networking.hostName = "navi"; networking.networkmanager.enable = true; - services.mullvad-vpn = { - enable = true; - package = pkgs.mullvad-vpn; - }; - services.resolved.enable = true; - - virtualisation.vmware.host.enable = true; - + # Timezone & locale time.timeZone = "Asia/Jerusalem"; - i18n.defaultLocale = "en_US.UTF-8"; + i18n.defaultLocale = "en_IL"; i18n.extraLocaleSettings = { - LC_ADDRESS = "en_US.UTF-8"; - LC_IDENTIFICATION = "en_US.UTF-8"; - LC_MEASUREMENT = "en_US.UTF-8"; - LC_MONETARY = "en_US.UTF-8"; - LC_NAME = "en_US.UTF-8"; - LC_NUMERIC = "en_US.UTF-8"; - LC_PAPER = "en_US.UTF-8"; - LC_TELEPHONE = "en_US.UTF-8"; - LC_TIME = "en_US.UTF-8"; + LC_ADDRESS = "he_IL.UTF-8"; + LC_IDENTIFICATION = "he_IL.UTF-8"; + LC_MEASUREMENT = "he_IL.UTF-8"; + LC_MONETARY = "he_IL.UTF-8"; + LC_NAME = "he_IL.UTF-8"; + LC_NUMERIC = "he_IL.UTF-8"; + LC_PAPER = "he_IL.UTF-8"; + LC_TELEPHONE = "he_IL.UTF-8"; + LC_TIME = "he_IL.UTF-8"; }; - programs.bash = { + # X11 + i3 (no GNOME) + services.xserver = { enable = true; - completion.enable = true; - interactiveShellInit = '' - eval "$(${pkgs.starship}/bin/starship init bash)" - ''; - }; - - services.desktopManager.gnome.enable = true; - - programs.hyprland = { - enable = true; - withUWSM = true; - xwayland.enable = true; - }; - - xdg.portal = { - enable = true; - extraPortals = with pkgs; [ - xdg-desktop-portal-hyprland - xdg-desktop-portal-gtk - ]; - }; - - programs.regreet.enable = true; - - services.greetd = { - enable = true; - settings.default_session = { - command = "${pkgs.greetd.regreet}/bin/regreet"; - user = "greeter"; + windowManager.i3.enable = true; + displayManager.lightdm.enable = true; + xkb = { + layout = "us"; + variant = ""; }; }; - services.xserver.xkb = { - layout = "us,il"; - variant = ""; - }; - - services.pulseaudio.enable = false; - programs.dconf.enable = true; + # Sound security.rtkit.enable = true; + services.pulseaudio.enable = false; services.pipewire = { enable = true; alsa.enable = true; @@ -85,39 +48,25 @@ pulse.enable = true; }; + services.printing.enable = true; + + # User users.users.laniakea = { isNormalUser = true; description = "laniakea"; - extraGroups = ["networkmanager" "wheel" "input" "adbusers" "plugdev"]; + extraGroups = [ "networkmanager" "wheel" ]; + }; + + # home-manager as NixOS module + home-manager = { + useGlobalPkgs = true; + useUserPackages = true; + users.laniakea = import ./navi/default.nix; }; programs.firefox.enable = true; - nixpkgs.config.allowUnfree = true; + environment.systemPackages = with pkgs; [ git ]; - nix.settings.experimental-features = ["nix-command" "flakes"]; - - programs.nh = { - enable = true; - clean.enable = true; - clean.extraArgs = "--keep-since 4d --keep 3"; - flake = "/etc/nixos"; - }; - - programs.gnupg.agent = { - enable = true; - pinentryPackage = pkgs.pinentry-gnome3; - }; - - services.udev.extraRules = '' - KERNEL=="hidraw*", ATTRS{idVendor}=="fc32", ATTRS{idProduct}=="0287", MODE="0666", GROUP="input" - SUBSYSTEM=="usb", ATTRS{idVendor}=="fc32", ATTRS{idProduct}=="0287", MODE="0666", GROUP="input" - ''; - - services.udev.packages = with pkgs; [ - vial - via - ]; - - system.stateVersion = "24.11"; + } diff --git a/navi/flake.lock b/navi/flake.lock index 9ae19dd..0a3d36a 100644 --- a/navi/flake.lock +++ b/navi/flake.lock @@ -1,42 +1,5 @@ { "nodes": { - "flake-compat": { - "flake": false, - "locked": { - "lastModified": 1751685974, - "narHash": "sha256-NKw96t+BgHIYzHUjkTK95FqYRVKB8DHpVhefWSz/kTw=", - "ref": "refs/heads/main", - "rev": "549f2762aebeff29a2e5ece7a7dc0f955281a1d1", - "revCount": 92, - "type": "git", - "url": "https://git.lix.systems/lix-project/flake-compat.git" - }, - "original": { - "type": "git", - "url": "https://git.lix.systems/lix-project/flake-compat.git" - } - }, - "flake-parts": { - "inputs": { - "nixpkgs-lib": [ - "nvf", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1769996383, - "narHash": "sha256-AnYjnFWgS49RlqX7LrC4uA+sCCDBj0Ry/WOJ5XWAsa0=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "57928607ea566b5db3ad13af0e57e921e6b12381", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, "home-manager": { "inputs": { "nixpkgs": [ @@ -44,11 +7,11 @@ ] }, "locked": { - "lastModified": 1775360939, - "narHash": "sha256-XUBlSgUFdvTh6+K5LcI5mJu5F5L8scmJDMRiZM484TM=", + "lastModified": 1775781825, + "narHash": "sha256-L5yKTpR+alrZU2XYYvIxCeCP4LBHU5jhwSj7H1VAavg=", "owner": "nix-community", "repo": "home-manager", - "rev": "2097a5c82bdc099c6135eae4b111b78124604554", + "rev": "e35c39fca04fee829cecdf839a50eb9b54d8a701", "type": "github" }, "original": { @@ -57,50 +20,13 @@ "type": "github" } }, - "mnw": { - "locked": { - "lastModified": 1770419553, - "narHash": "sha256-b1XqsH7AtVf2dXmq2iyRr2NC1yG7skY7Z6N2MpWHlK4=", - "owner": "Gerg-L", - "repo": "mnw", - "rev": "2aaffa8030d0b262176146adbb6b0e6374ce2957", - "type": "github" - }, - "original": { - "owner": "Gerg-L", - "repo": "mnw", - "type": "github" - } - }, - "ndg": { - "inputs": { - "nixpkgs": [ - "nvf", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1768214250, - "narHash": "sha256-hnBZDQWUxJV3KbtvyGW5BKLO/fAwydrxm5WHCWMQTbw=", - "owner": "feel-co", - "repo": "ndg", - "rev": "a6bd3c1ce2668d096e4fdaaa03ad7f03ba1fbca8", - "type": "github" - }, - "original": { - "owner": "feel-co", - "ref": "refs/tags/v2.6.0", - "repo": "ndg", - "type": "github" - } - }, "nixpkgs": { "locked": { - "lastModified": 1775036866, - "narHash": "sha256-ZojAnPuCdy657PbTq5V0Y+AHKhZAIwSIT2cb8UgAz/U=", + "lastModified": 1775710090, + "narHash": "sha256-ar3rofg+awPB8QXDaFJhJ2jJhu+KqN/PRCXeyuXR76E=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "6201e203d09599479a3b3450ed24fa81537ebc4e", + "rev": "4c1018dae018162ec878d42fec712642d214fdfa", "type": "github" }, "original": { @@ -110,51 +36,10 @@ "type": "github" } }, - "nvf": { - "inputs": { - "flake-compat": "flake-compat", - "flake-parts": "flake-parts", - "mnw": "mnw", - "ndg": "ndg", - "nixpkgs": [ - "nixpkgs" - ], - "systems": "systems" - }, - "locked": { - "lastModified": 1775122065, - "narHash": "sha256-ZlowJNkQOhpsXDuWbHgB1xY6W8kyzYn9coK9nJsqqNg=", - "owner": "NotAShelf", - "repo": "nvf", - "rev": "d3304af3d5771e8d5bac6ee9bbdbce56086d54f7", - "type": "github" - }, - "original": { - "owner": "NotAShelf", - "repo": "nvf", - "type": "github" - } - }, "root": { "inputs": { "home-manager": "home-manager", - "nixpkgs": "nixpkgs", - "nvf": "nvf" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" + "nixpkgs": "nixpkgs" } } }, diff --git a/navi/flake.nix b/navi/flake.nix index ea70436..ad74843 100644 --- a/navi/flake.nix +++ b/navi/flake.nix @@ -1,31 +1,18 @@ { inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; - home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; - - nvf = { - url = "github:NotAShelf/nvf"; - inputs.nixpkgs.follows = "nixpkgs"; - }; }; - outputs = { self, nixpkgs, home-manager, nvf, ... }: { + outputs = { self, nixpkgs, home-manager, ... }: { nixosConfigurations.navi = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; modules = [ - ./configuration.nix - ./hardware-configuration.nix home-manager.nixosModules.home-manager - { - home-manager.useGlobalPkgs = true; - home-manager.useUserPackages = true; - home-manager.users.laniakea = import ./laniakea/home.nix; - home-manager.extraSpecialArgs = { inherit nvf; }; - } + ./configuration.nix ]; }; }; diff --git a/navi/hardware-configuration.nix b/navi/hardware-configuration.nix index 89dee72..4e0cd19 100644 --- a/navi/hardware-configuration.nix +++ b/navi/hardware-configuration.nix @@ -14,12 +14,12 @@ boot.extraModulePackages = [ ]; fileSystems."/" = - { device = "/dev/disk/by-uuid/19cf3af9-df0f-46e7-ab26-f29dad2e5a63"; + { device = "/dev/disk/by-uuid/3fd6b3e1-e237-4c9f-9f9a-37ee711114fe"; fsType = "ext4"; }; fileSystems."/boot" = - { device = "/dev/disk/by-uuid/80BA-5D8C"; + { device = "/dev/disk/by-uuid/AE26-3C10"; fsType = "vfat"; options = [ "fmask=0077" "dmask=0077" ]; }; diff --git a/navi/laniakea/anyrun.nix b/navi/laniakea/anyrun.nix deleted file mode 100644 index 00a25ff..0000000 --- a/navi/laniakea/anyrun.nix +++ /dev/null @@ -1,20 +0,0 @@ -{pkgs, ...}: { - programs.anyrun = { - enable = true; - config = { - hideIcons = false; - ignoreExclusiveZones = false; - layer = "overlay"; - hidePluginInfo = false; - closeOnClick = false; - showResultsImmediately = false; - maxEntries = null; - - plugins = [ - "${pkgs.anyrun}/lib/libapplications.so" - "${pkgs.anyrun}/lib/libsymbols.so" - "${pkgs.anyrun}/lib/libactions.so" - ]; - }; - }; -} diff --git a/navi/laniakea/eww.nix b/navi/laniakea/eww.nix deleted file mode 100644 index 3e66ef0..0000000 --- a/navi/laniakea/eww.nix +++ /dev/null @@ -1,41 +0,0 @@ -{pkgs, ...}: { - programs.eww = { - enable = true; - enableBashIntegration = true; - configDir = ./eww; - }; - - home.file.".config/eww/get_volume.sh" = { - source = ./eww/get_volume.sh; - executable = true; - }; - - home.file.".config/eww/volume_scroll.sh" = { - source = ./eww/volume_scroll.sh; - executable = true; - }; - - home.file.".config/eww/get_wifi.sh" = { - source = ./eww/get_wifi.sh; - executable = true; - }; - - home.file.".config/eww/get_layout.sh" = { - source = ./eww/get_layout.sh; - executable = true; - }; - - home.file.".config/eww/toggle_layout.sh" = { - source = ./eww/toggle_layout.sh; - executable = true; - }; - - services.playerctld = { - enable = true; - }; - - home.packages = with pkgs; [ - pavucontrol - libnotify - ]; -} diff --git a/navi/laniakea/eww/eww.scss b/navi/laniakea/eww/eww.scss deleted file mode 100644 index 781f58a..0000000 --- a/navi/laniakea/eww/eww.scss +++ /dev/null @@ -1,81 +0,0 @@ -* { - all: unset; - font-family: IosevkaTerm Nerd Font; -} - -.workspaces button { - border-radius: 5px; - padding: 4px; - padding-left: 8px; - padding-right: 8px; -} - -.inactive { - background-color: #181825; -} - -.active_workspace { - color: #181926; - background-color: #b7bdf8; - font-weight: 900; -} - -.music { - border-radius: 10px; - padding-left: 10px; - padding-right: 10px; - color: #b4befe; - font-weight: bold; -} - -.bar { - background-color: #11111b; - border-radius: 16px; - color: #cdd6f4; - margin: 10px; -} - -.time { - color: #b4befe; - font-weight: 900; -} - -.battery { - color: #cba6f7; - font-weight: 800; -} - -.volume { - color: #cba6f7; - font-weight: 800; -} - -.wifi { - color: #89dceb; - font-weight: 800; -} - -.layout { - color: #a6e3a1; - font-weight: 800; -} - -tooltip { - padding: 3px 7px; - border-radius: 10px; - background-color: #11111b; - color: white; - border-color: #b4befe; - border-width: 2px; - border-style: solid; -} - -menu { - padding: 3px 7px; - border-radius: 10px; - background-color: #11111b; - color: white; - border-color: #b4befe; - border-width: 2px; - border-style: solid; -} diff --git a/navi/laniakea/eww/eww.yuck b/navi/laniakea/eww/eww.yuck deleted file mode 100644 index 7a2b4b9..0000000 --- a/navi/laniakea/eww/eww.yuck +++ /dev/null @@ -1,108 +0,0 @@ -(defwidget bar [] - (centerbox :orientation "h" - (workspaces) - (music) - (status) - ) -) - -(defwidget workspaces [] - (box :class "workspaces" - :orientation "h" - :halign "start" - :spacing 10 - (button - :class {active_workspace == 1 ? "active_workspace" : "inactive"} - :onclick "hyprctl dispatch workspace 1" 1 - ) - (button - :class {active_workspace == 2 ? "active_workspace" : "inactive"} - :onclick "hyprctl dispatch workspace 2" 2) - (button - :class {active_workspace == 3 ? "active_workspace" : "inactive"} - :onclick "hyprctl dispatch workspace 3" 3) - (button - :class {active_workspace == 4 ? "active_workspace" : "inactive"} - :onclick "hyprctl dispatch workspace 4" 4) - (button - :class {active_workspace == 5 ? "active_workspace" : "inactive"} - :onclick "hyprctl dispatch workspace 5" "") - (button - :class {active_workspace == 6 ? "active_workspace" : "inactive"} - :onclick "hyprctl dispatch workspace 6" "󰭹 ") - ) -) - -(defpoll active_workspace :interval "1s" :initial 1 - "hyprctl activeworkspace -j | jq .id" -) - -(defwidget music [] - (eventbox :class "music" - :orientation "h" - :halign "center" - :onclick "playerctl play-pause" - {music != "" ? " ${music}" : ""} - ) -) - -(deflisten music :initial "" - "playerctl --follow metadata --format '{{ artist }} - {{ title }}' || true" -) - -(defwidget status [] - (box :class "status" :orientation "h" :halign "end" :space-evenly false :spacing 20 - (systray :orientation "h" :space-evenly false :spacing 10 - ) - (eventbox :class "layout" - :onclick "./toggle_layout.sh" - "${layout}" - ) - (box :class "wifi" :tooltip wifi - "${wifi}" - ) - (eventbox - :class "volume" - :timeout "1000ms" - :onclick "pavucontrol" - :onscroll "./volume_scroll.sh {}" - "${volume}%" - ) - (box :class "battery" :tooltip {EWW_BATTERY.BAT0.status} - { "󱐋 ${EWW_BATTERY.BAT0.capacity}%"} - ) - (box :class "time" - :tooltip date - {formattime(EWW_TIME, "%H:%M")} - ) - ) -) - -(defpoll volume :interval "100ms" - "./get_volume.sh" -) - -(defpoll wifi :interval "5s" :initial "󰤭 ..." - "./get_wifi.sh" -) - -(defpoll layout :interval "1s" :initial "󰌌 EN" - "./get_layout.sh" -) - -(defpoll date :interval "5m" - "date +'%A, %d %B %Y'" -) - -(defwindow bar - :monitor 0 - :windowtype "dock" - :geometry (geometry :x "0%" - :y "9px" - :width "98%" - :height "30px" - :anchor "top center" - ) - :exclusive true - (bar) -) diff --git a/navi/laniakea/eww/get_layout.sh b/navi/laniakea/eww/get_layout.sh deleted file mode 100755 index 4a067f7..0000000 --- a/navi/laniakea/eww/get_layout.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh -layout=$(hyprctl devices -j | jq -r '.keyboards[] | select(.name == "josefadamcik-sofle") | .active_keymap') -case "$layout" in - *Hebrew*) echo "󰊿 HE" ;; - *) echo "󰌌 EN" ;; -esac diff --git a/navi/laniakea/eww/get_volume.sh b/navi/laniakea/eww/get_volume.sh deleted file mode 100755 index 1a1ea6a..0000000 --- a/navi/laniakea/eww/get_volume.sh +++ /dev/null @@ -1,2 +0,0 @@ -#! /bin/sh -wpctl get-volume @DEFAULT_AUDIO_SINK@ | sed -r 's/Volume: //g' | xargs -n1 | awk '{print $1*100}' | xargs -n 1 echo "󰎇$1" diff --git a/navi/laniakea/eww/get_wifi.sh b/navi/laniakea/eww/get_wifi.sh deleted file mode 100755 index abf476a..0000000 --- a/navi/laniakea/eww/get_wifi.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh -iface=$(ip link | awk '/state UP/ && !/lo/ {print $2}' | tr -d ':' | grep -v eth | head -1) -ssid=$(iwgetid "$iface" -r 2>/dev/null) -strength=$(awk "/$iface/ {print int(\$3 * 100 / 70)}" /proc/net/wireless 2>/dev/null) -if [ -z "$ssid" ]; then - echo "󰤭 disconnected" -else - if [ "$strength" -ge 75 ]; then icon="󰤨" - elif [ "$strength" -ge 50 ]; then icon="󰤥" - elif [ "$strength" -ge 25 ]; then icon="󰤢" - else icon="󰤟" - fi - echo "$icon $ssid $strength%" -fi diff --git a/navi/laniakea/eww/toggle_layout.sh b/navi/laniakea/eww/toggle_layout.sh deleted file mode 100755 index 45c9086..0000000 --- a/navi/laniakea/eww/toggle_layout.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -hyprctl switchxkblayout josefadamcik-sofle next diff --git a/navi/laniakea/eww/volume_scroll.sh b/navi/laniakea/eww/volume_scroll.sh deleted file mode 100755 index 10cffb8..0000000 --- a/navi/laniakea/eww/volume_scroll.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh -if [ "$1" == "up" ]; then - wpctl set-volume @DEFAULT_SINK@ 5%+ -l 1.0 -else - wpctl set-volume @DEFAULT_SINK@ 5%- -l 1.0 -fi diff --git a/navi/laniakea/fnott.nix b/navi/laniakea/fnott.nix deleted file mode 100644 index 405064f..0000000 --- a/navi/laniakea/fnott.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ - services.fnott = { - enable = true; - settings = { - main = { - border-radius = 5; - border-size = 2; - dpi-aware = "yes"; - - title-color = "a6adc8ff"; - summary-color = "cdd6f4ff"; - body-color = "cdd6f4ff"; - background = "1e1e2eff"; - border-color = "89b4faff"; - progress-bar-color = "6c7086ff"; - }; - - critical = { - border-color = "fab387ff"; - }; - }; - }; -} diff --git a/navi/laniakea/home.nix b/navi/laniakea/home.nix deleted file mode 100644 index b7d79e6..0000000 --- a/navi/laniakea/home.nix +++ /dev/null @@ -1,126 +0,0 @@ -{ - config, - pkgs, - ... -}: -{ - imports = [ - ./hyprland.nix - ./neovim.nix - ./librewolf.nix - ./kitty.nix - ./starship.nix - ./fnott.nix - ./anyrun.nix - ./eww.nix - ./vesktop.nix - ]; - - home = { - username = "laniakea"; - homeDirectory = "/home/laniakea"; - - packages = with pkgs; [ - wl-clipboard - grimblast - maple-mono.NL-NF - jq - qmk - brave - qbittorrent - chromium - htop - - obs-studio - gnupg - kdePackages.kleopatra - cava - pfetch - fastfetch - tidal-hifi - nerd-fonts.iosevka-term - wirelesstools - signal-desktop - element-desktop - idris2 - sage - python3 - vscode - nim - ghc - gcc - gnumake - gdb - zig - rustup - spotify - ]; - - pointerCursor = { - gtk.enable = true; - package = pkgs.rose-pine-cursor; - name = "BreezeX-RosePineDawn"; - size = 16; - }; - - sessionVariables = { - GTK_USE_PORTAL = "1"; - }; - }; - - xdg.mimeApps = { - enable = true; - defaultApplications = { - "text/html" = "librewolf.desktop"; - "x-scheme-handler/http" = "librewolf.desktop"; - "x-scheme-handler/https" = "librewolf.desktop"; - "x-scheme-handler/about" = "librewolf.desktop"; - "x-scheme-handler/unknown" = "librewolf.desktop"; - }; - }; - - programs = { - git = { - enable = true; - userName = "laniakea"; - userEmail = "itamar@itamar.site"; - - # SSH signing configuration - signing = { - key = "${config.home.homeDirectory}/.ssh/id_ed25519.pub"; - signByDefault = true; - }; - - extraConfig = { - gpg.format = "ssh"; - gpg.ssh.allowedSignersFile = "${config.home.homeDirectory}/.ssh/allowed_signers"; - }; - }; - - ssh = { - enable = true; - enableDefaultConfig = false; - matchBlocks."*".addKeysToAgent = "yes"; - }; - }; - - home.file.".ssh/allowed_signers".text = "* ${builtins.readFile /home/laniakea/.ssh/id_ed25519.pub}"; - - dconf = { - enable = true; - settings."org/gnome/desktop/interface".color-scheme = "prefer-dark"; - }; - - gtk = { - enable = true; - colorScheme = "dark"; - gtk3.colorScheme = "dark"; - gtk4.colorScheme = "dark"; - theme = { - package = pkgs.adw-gtk3; - name = "adw-gtk3-dark"; - }; - }; - - home.stateVersion = "26.05"; -} diff --git a/navi/laniakea/hyprland.nix b/navi/laniakea/hyprland.nix deleted file mode 100644 index c27ac88..0000000 --- a/navi/laniakea/hyprland.nix +++ /dev/null @@ -1,142 +0,0 @@ -{pkgs, ...}: { - home.packages = with pkgs; [ - rose-pine-hyprcursor - wpaperd - ]; - - home.file.".config/wpaperd/config.toml".text = '' - [any] - path = "/home/laniakea/.glitch.png" - ''; - - wayland.windowManager.hyprland = { - enable = true; - systemd.enable = false; - - settings = { - "$mod" = "SUPER"; - - "$terminal" = "kitty"; - "$filemanager" = "nautilus"; - "$launcher" = "anyrun"; - - monitor = [ - "eDP-1,1920x1080@60,2560x0,1" - ]; - - exec-once = [ - "hyprctl setcursor rose-pine-hyprcursor 24" - "wpaperd -d" - "eww daemon" - "eww open bar" - ]; - - input = { - kb_layout = "us,il"; - }; - - general = { - gaps_in = "5"; - gaps_out = "20"; - border_size = "2"; - "col.active_border" = "rgb(b4befe)"; - "col.inactive_border" = "rgb(6c7086)"; - layout = "dwindle"; - }; - - dwindle = { - preserve_split = "true"; - }; - - decoration = { - rounding = "5"; - rounding_power = "2"; - active_opacity = "0.95"; - inactive_opacity = "0.80"; - blur = { - enabled = "true"; - size = "10"; - passes = "3"; - vibrancy = "0.0"; - }; - }; - - animations = { - enabled = "true"; - }; - - layerrule = [ - "no_anim on, match:namespace anyrun" - "blur on, ignore_alpha 1, match:namespace gtk-layer-shell" - ]; - - windowrule = [ - "float on, center on, match:class .*" - "size 800 500, match:class kitty" - "size 1000 650, match:class firefox" - "size 900 600, match:class org.gnome.Nautilus" - "workspace 5, match:class tidal-hifi" - "workspace 6, match:class vesktop" - ]; - - bind = - [ - "$mod, RETURN, exec, $terminal" - "$mod, E, exec, $filemanager" - ", Print, exec, grimblast copy area" - "$mod, SPACE, exec, $launcher" - "$mod, M, exec, uwsm stop" - "$mod, Q, killactive" - "$mod, F, togglefloating" - "$mod, S, exec, grimblast copy area" - # Focus with arrows - "$mod, left, movefocus, l" - "$mod, right, movefocus, r" - "$mod, up, movefocus, u" - "$mod, down, movefocus, d" - - "$mod, h, movefocus, l" - "$mod, l, movefocus, r" - "$mod, k, movefocus, u" - "$mod, j, movefocus, d" - - "$mod SHIFT, h, resizeactive, -30 0" - "$mod SHIFT, l, resizeactive, 30 0" - "$mod SHIFT, k, resizeactive, 0 -30" - "$mod SHIFT, j, resizeactive, 0 30" - - "$mod, mouse_down, workspace, e+1" - "$mod, mouse_up, workspace, e-1" - "$mod, escape, exec, hyprctl switchxkblayout josefadamcik-sofle next" - ] - ++ ( - builtins.concatLists (builtins.genList ( - i: let - ws = i + 1; - in [ - "$mod, code:1${toString i}, workspace, ${toString ws}" - "$mod SHIFT, code:1${toString i}, movetoworkspace, ${toString ws}" - ] - ) - 9) - ); - - bindm = [ - "$mod, mouse:272, movewindow" - "$mod, mouse:273, resizewindow" - ]; - - bindl = [ - ", XF86AudioNext, exec, playerctl next" - ", XF86AudioPrev, exec, playerctl previous" - ", XF86AudioPlay, exec, playerctl play-pause" - ", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle" - ]; - - bindel = [ - ", XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+" - ", XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-" - ]; - }; - }; -} diff --git a/navi/laniakea/kitty.nix b/navi/laniakea/kitty.nix deleted file mode 100644 index b09a601..0000000 --- a/navi/laniakea/kitty.nix +++ /dev/null @@ -1,19 +0,0 @@ -{ - programs.kitty = { - enable = true; - settings = { - confirm_os_window_close = 0; - background_opacity = "0.9"; - enable_audio_bell = false; - mouse_map = "right press ungrabbed paste_from_clipboard"; - cursor_shape = "underline"; - }; - - font = { - name = "IosevkaTerm Nerd Font"; - }; - - themeFile = "Carbonfox"; - shellIntegration.enableBashIntegration = true; - }; -} diff --git a/navi/laniakea/librewolf.nix b/navi/laniakea/librewolf.nix deleted file mode 100644 index b5b6ee0..0000000 --- a/navi/laniakea/librewolf.nix +++ /dev/null @@ -1,316 +0,0 @@ -{ ... }: { - programs.librewolf = { - enable = true; - - profiles.default = { - isDefault = true; - - settings = { - "toolkit.telemetry.enabled" = false; - "toolkit.telemetry.unified" = false; - "toolkit.telemetry.server" = ""; - "toolkit.telemetry.archive.enabled" = false; - "toolkit.telemetry.newProfilePing.enabled" = false; - "toolkit.telemetry.shutdownPingSender.enabled" = false; - "toolkit.telemetry.updatePing.enabled" = false; - "toolkit.telemetry.bhrPing.enabled" = false; - "toolkit.telemetry.firstShutdownPing.enabled" = false; - "toolkit.telemetry.coverage.opt-out" = true; - "toolkit.coverage.opt-out" = true; - "toolkit.coverage.endpoint.base" = ""; - "browser.ping-centre.telemetry" = false; - "browser.newtabpage.activity-stream.feeds.telemetry" = false; - "browser.newtabpage.activity-stream.telemetry" = false; - - "breakpad.reportURL" = ""; - "browser.tabs.crashReporting.sendReport" = false; - "browser.crashReports.unsubmittedCheck.autoSubmit2" = false; - - "app.shield.optoutstudies.enabled" = false; - "app.normandy.enabled" = false; - "app.normandy.api_url" = ""; - "browser.safebrowsing.malware.enabled" = false; - "browser.safebrowsing.phishing.enabled" = false; - "browser.safebrowsing.blockedURIs.enabled" = false; - "browser.safebrowsing.provider.google4.gethashURL" = ""; - "browser.safebrowsing.provider.google4.updateURL" = ""; - "browser.safebrowsing.provider.google.gethashURL" = ""; - "browser.safebrowsing.provider.google.updateURL" = ""; - "browser.safebrowsing.downloads.remote.enabled" = false; - - "geo.enabled" = false; - "geo.provider.network.url" = ""; - - "captivedetect.canonicalURL" = ""; - "network.captive-portal-service.enabled" = false; - "network.connectivity-service.enabled" = false; - - "privacy.resistFingerprinting" = true; - "privacy.resistFingerprinting.block_mozAddonManager" = true; - "privacy.window.maxInnerWidth" = 1600; - "privacy.window.maxInnerHeight" = 900; - "webgl.disabled" = true; - "webgl.enable-webgl2" = false; - "media.navigator.enabled" = false; - "media.navigator.video.enabled" = false; - - "media.peerconnection.enabled" = false; - "media.peerconnection.ice.no_host" = true; - "media.peerconnection.ice.proxy_only_if_behind_proxy" = true; - "media.peerconnection.ice.default_address_only" = true; - - "privacy.trackingprotection.enabled" = true; - "privacy.trackingprotection.pbmode.enabled" = true; - "privacy.trackingprotection.emailtracking.enabled" = true; - "privacy.trackingprotection.socialtracking.enabled" = true; - "privacy.trackingprotection.cryptomining.enabled" = true; - "privacy.trackingprotection.fingerprinting.enabled" = true; - "privacy.firstparty.isolate" = true; - "privacy.partition.network_state" = true; - "privacy.partition.serviceWorkers" = true; - - "network.cookie.cookieBehavior" = 1; - "network.cookie.lifetimePolicy" = 0; - "browser.privatebrowsing.autostart" = false; - - "signon.rememberSignons" = true; - "signon.autofillForms" = true; - "signon.generation.enabled" = true; - - "network.trr.mode" = 3; - "network.trr.uri" = "https://dns.quad9.net/dns-query"; - "network.trr.bootstrapAddress" = "9.9.9.9"; - "network.dns.disableIPv6" = true; - "network.prefetch-next" = false; - "network.dns.disablePrefetch" = true; - "network.predictor.enabled" = false; - "network.http.speculative-parallel-limit" = 0; - "browser.places.speculativeConnect.enabled" = false; - "network.proxy.socks_remote_dns" = true; - - "dom.security.https_only_mode" = true; - "dom.security.https_only_mode.upgrade_local" = true; - "security.mixed_content.block_display_content" = true; - "security.mixed_content.block_active_content" = true; - - "security.tls.version.min" = 3; - "security.tls.version.max" = 4; - "security.tls.enable_0rtt_data" = false; - "security.OCSP.enabled" = 1; - "security.OCSP.require" = true; - "security.cert_pinning.enforcement_level" = 2; - "security.remote_settings.crlite_filters.enabled" = true; - "security.pki.crlite_mode" = 2; - - "dom.battery.enabled" = false; - "dom.vr.enabled" = false; - "dom.vibrator.enabled" = false; - "dom.gamepad.enabled" = false; - "dom.netinfo.enabled" = false; - "dom.telephony.enabled" = false; - "dom.push.enabled" = false; - "dom.push.connection.enabled" = false; - "dom.push.serverURL" = ""; - - "browser.send_pings" = false; - "browser.sessionstore.privacy_level" = 2; - "browser.urlbar.speculativeConnect.enabled" = false; - "browser.urlbar.suggest.searches" = false; - "browser.search.suggest.enabled" = false; - "browser.formfill.enable" = false; - - "toolkit.legacyUserProfileCustomizations.stylesheets" = true; - }; - - userChrome = '' - /* ============================================= - Windows 95/98 Theme for LibreWolf - ============================================= */ - - @import url("chrome://userchrome/content/userChrome.css"); - - * { - font-family: "W95FA", "Pixelated MS Sans Serif", "Arial", sans-serif !important; - font-size: 11px !important; - } - - /* ---- Window chrome background ---- */ - :root { - --win95-bg: #c0c0c0; - --win95-dark: #808080; - --win95-darker: #404040; - --win95-light: #ffffff; - --win95-highlight: #000080; - --win95-highlight-text: #ffffff; - --win95-border-light: #dfdfdf; - --win95-border-dark: #808080; - --win95-border-darker: #404040; - } - - /* ---- Toolbar background ---- */ - #navigator-toolbox, - #toolbar-menubar, - #TabsToolbar, - #nav-bar, - #PersonalToolbar { - background-color: var(--win95-bg) !important; - border-bottom: 1px solid var(--win95-dark) !important; - padding: 2px !important; - } - - /* ---- Tab bar ---- */ - #TabsToolbar { - background-color: var(--win95-bg) !important; - } - - /* Active tab — raised bevel */ - .tab-background:is([selected], [multiselected]) { - background-color: var(--win95-bg) !important; - border-top: 2px solid var(--win95-light) !important; - border-left: 2px solid var(--win95-light) !important; - border-right: 2px solid var(--win95-darker) !important; - border-bottom: none !important; - border-radius: 0 !important; - margin-bottom: -1px !important; - } - - /* Inactive tab — sunken */ - .tab-background:not([selected]) { - background-color: var(--win95-bg) !important; - border-top: 2px solid var(--win95-dark) !important; - border-left: 2px solid var(--win95-dark) !important; - border-right: 2px solid var(--win95-light) !important; - border-bottom: 1px solid var(--win95-dark) !important; - border-radius: 0 !important; - } - - .tab-label { - color: #000000 !important; - } - - .tab-background:is([selected]) .tab-label { - font-weight: bold !important; - } - - /* ---- URL bar — sunken inset look ---- */ - #urlbar, - #urlbar-background { - background-color: #ffffff !important; - border-top: 2px solid var(--win95-dark) !important; - border-left: 2px solid var(--win95-dark) !important; - border-right: 2px solid var(--win95-light) !important; - border-bottom: 2px solid var(--win95-light) !important; - border-radius: 0 !important; - color: #000000 !important; - } - - #urlbar:focus-within #urlbar-background { - border-color: var(--win95-darker) !important; - outline: none !important; - } - - /* ---- Buttons — raised bevel ---- */ - toolbarbutton, - .toolbarbutton-1 { - background-color: var(--win95-bg) !important; - border-top: 2px solid var(--win95-light) !important; - border-left: 2px solid var(--win95-light) !important; - border-right: 2px solid var(--win95-darker) !important; - border-bottom: 2px solid var(--win95-darker) !important; - border-radius: 0 !important; - padding: 3px 5px !important; - color: #000000 !important; - } - - toolbarbutton:hover, - .toolbarbutton-1:hover { - background-color: var(--win95-bg) !important; - } - - toolbarbutton:active, - toolbarbutton[open="true"], - .toolbarbutton-1:active { - border-top: 2px solid var(--win95-darker) !important; - border-left: 2px solid var(--win95-darker) !important; - border-right: 2px solid var(--win95-light) !important; - border-bottom: 2px solid var(--win95-light) !important; - padding: 4px 4px 2px 6px !important; - } - - /* ---- Title bar — classic Windows blue gradient ---- */ - #titlebar { - background: linear-gradient(to right, #000080, #1084d0) !important; - color: #ffffff !important; - } - - /* ---- Menu bar ---- */ - #toolbar-menubar { - background-color: var(--win95-bg) !important; - } - - menubar > menu { - color: #000000 !important; - border-radius: 0 !important; - padding: 2px 6px !important; - } - - menubar > menu:hover, - menubar > menu[_moz-menuactive="true"] { - background-color: var(--win95-highlight) !important; - color: var(--win95-highlight-text) !important; - } - - /* ---- Bookmarks toolbar ---- */ - #PersonalToolbar toolbarbutton { - border: 1px solid transparent !important; - } - - #PersonalToolbar toolbarbutton:hover { - border-top: 2px solid var(--win95-light) !important; - border-left: 2px solid var(--win95-light) !important; - border-right: 2px solid var(--win95-darker) !important; - border-bottom: 2px solid var(--win95-darker) !important; - } - - /* ---- Sidebar ---- */ - #sidebar-box { - background-color: var(--win95-bg) !important; - border-right: 2px solid var(--win95-dark) !important; - } - - /* ---- Find bar ---- */ - #FindToolbar { - background-color: var(--win95-bg) !important; - border-top: 2px solid var(--win95-dark) !important; - } - - /* ---- Scrollbars ---- */ - scrollbar { - background-color: var(--win95-bg) !important; - width: 16px !important; - } - - scrollbar thumb { - background-color: var(--win95-bg) !important; - border-top: 2px solid var(--win95-light) !important; - border-left: 2px solid var(--win95-light) !important; - border-right: 2px solid var(--win95-darker) !important; - border-bottom: 2px solid var(--win95-darker) !important; - border-radius: 0 !important; - } - - /* ---- Status bar ---- */ - #statuspanel-label { - background-color: var(--win95-bg) !important; - border-top: 2px solid var(--win95-dark) !important; - color: #000000 !important; - border-radius: 0 !important; - } - - * { - border-radius: 0 !important; - } - ''; - }; - }; -} diff --git a/navi/laniakea/neovim.nix b/navi/laniakea/neovim.nix deleted file mode 100644 index 1e71990..0000000 --- a/navi/laniakea/neovim.nix +++ /dev/null @@ -1,69 +0,0 @@ -{ pkgs, nvf, ... }: -{ - imports = [ nvf.homeManagerModules.default ]; - - home.packages = with pkgs; [ - alejandra - nil - statix - deadnix - ]; - - programs.nvf = { - enable = true; - settings = { - vim = { - opts = { - tabstop = 2; - shiftwidth = 0; - }; - clipboard = { - enable = true; - providers.wl-copy.enable = true; - }; - lsp = { - enable = true; - formatOnSave = true; - inlayHints.enable = true; - trouble.enable = true; - }; - treesitter = { - enable = true; - context.enable = true; - indent.enable = true; - grammars = with pkgs.vimPlugins.nvim-treesitter-parsers; [ - yuck - ]; - }; - diagnostics = { - enable = true; - config.virtual_text = true; - }; - languages = { - nix = { - enable = true; - extraDiagnostics.enable = true; - lsp = { - enable = true; - servers = [ "nil" ]; - }; - treesitter.enable = true; - format = { - enable = true; - type = [ "alejandra" ]; - }; - }; - }; - theme = { - enable = true; - name = "catppuccin"; - style = "mocha"; - transparent = true; - }; - statusline.lualine.enable = true; - autocomplete.blink-cmp.enable = true; - visuals.fidget-nvim.enable = true; - }; - }; - }; -} diff --git a/navi/laniakea/starship.nix b/navi/laniakea/starship.nix deleted file mode 100644 index c0ae6e9..0000000 --- a/navi/laniakea/starship.nix +++ /dev/null @@ -1,14 +0,0 @@ -{lib, ...}: { - programs.starship = { - enable = true; - enableBashIntegration = true; - settings = { - add_newline = false; - format = lib.concatStrings [ - "$directory" - "$nix_shell" - "[](fg:purple) " - ]; - }; - }; -} diff --git a/navi/laniakea/vesktop.nix b/navi/laniakea/vesktop.nix deleted file mode 100644 index 0ec969f..0000000 --- a/navi/laniakea/vesktop.nix +++ /dev/null @@ -1,17 +0,0 @@ -{ - programs.vesktop = { - enable = true; - - settings = { - checkUpdates = false; - hardwareAcceleration = true; - discordBranch = "stable"; - }; - - vencord.settings = { - autoUpdate = true; - autoUpdateNotification = true; - notifyAboutUpdates = true; - }; - }; -} diff --git a/navi/navi/audio.nix b/navi/navi/audio.nix new file mode 100644 index 0000000..d7c1839 --- /dev/null +++ b/navi/navi/audio.nix @@ -0,0 +1,9 @@ +{ pkgs, ... }: + +{ + home.packages = with pkgs; [ + pavucontrol + milkytracker + rtmidi + ]; +} diff --git a/navi/navi/browser.nix b/navi/navi/browser.nix new file mode 100644 index 0000000..edae1d2 --- /dev/null +++ b/navi/navi/browser.nix @@ -0,0 +1,16 @@ +{ pkgs, inputs, ... }: + +{ + programs.librewolf = { + enable = true; + # Enable WebGL, cookies and history + settings = { + "webgl.disabled" = false; + "privacy.resistFingerprinting" = true; + "privacy.clearOnShutdown.history" = true; + "privacy.clearOnShutdown.cookies" = false; + "network.cookie.lifetimePolicy" = 0; + }; + }; +} + diff --git a/navi/navi/bspwm.nix b/navi/navi/bspwm.nix new file mode 100644 index 0000000..b8392ef --- /dev/null +++ b/navi/navi/bspwm.nix @@ -0,0 +1,57 @@ +{ pkgs, lib, ... }: +{ + xsession = { + enable = true; + windowManager.bspwm = { + enable = true; + monitors."*" = [ "1" "2" "3" "4" "5" "6" "7" "8" "9" "10" ]; + settings = { + normal_border_color = "#6E738D"; + focused_border_color = "#f5bde6"; + border_width = 2; + window_gap = 2; + }; + rules."Zathura".state = "tiled"; + }; + }; + + services.sxhkd = { + enable = true; + keybindings = { + "super + d" = "rofi -show drun"; + "super + Return" = "alacritty"; + "super + w" = "bspc node -c"; + "super + 1" = "bspc desktop -f '1'"; + "super + 2" = "bspc desktop -f '2'"; + "super + 3" = "bspc desktop -f '3'"; + "super + 4" = "bspc desktop -f '4'"; + "super + 5" = "bspc desktop -f '5'"; + "super + 6" = "bspc desktop -f '6'"; + "super + 7" = "bspc desktop -f '7'"; + "super + 8" = "bspc desktop -f '8'"; + "super + 9" = "bspc desktop -f '9'"; + "super + 0" = "bspc desktop -f '10'"; + "super + shift + 1" = "bspc node -d '1'"; + "super + shift + 2" = "bspc node -d '2'"; + "super + shift + 3" = "bspc node -d '3'"; + "super + shift + 4" = "bspc node -d '4'"; + "super + shift + 5" = "bspc node -d '5'"; + "super + shift + 6" = "bspc node -d '6'"; + "super + shift + 7" = "bspc node -d '7'"; + "super + shift + 8" = "bspc node -d '8'"; + "super + shift + 9" = "bspc node -d '9'"; + "super + shift + 0" = "bspc node -d '10'"; + "super + h" = "bspc node -f west"; + "super + j" = "bspc node -f south"; + "super + k" = "bspc node -f north"; + "super + l" = "bspc node -f east"; + "super + shift + h" = "bspc node -s west"; + "super + shift + j" = "bspc node -s south"; + "super + shift + k" = "bspc node -s north"; + "super + shift + l" = "bspc node -s east"; + "super + shift + r" = "bspc wm -r"; + }; + }; + + home.packages = with pkgs; [ rofi ]; +} diff --git a/navi/navi/default.nix b/navi/navi/default.nix new file mode 100644 index 0000000..3fba847 --- /dev/null +++ b/navi/navi/default.nix @@ -0,0 +1,31 @@ +{ config, pkgs, ... }: +{ + home.stateVersion = "22.05"; + imports = [ + ./packages.nix + ./programs.nix + ./fonts.nix + ./services.nix + ./editors.nix + ./terminal.nix + ./ssh.nix + ./git.nix + ./launcher.nix + ./keyboard.nix + ./bspwm.nix + ./notifications.nix + ./polybar.nix + ./screen-lock.nix + ./shell.nix + ./gtk-qt.nix + ./devel.nix + ./browser.nix + ./messaging.nix + ./multimedia.nix + ./audio.nix + ]; + services.gpg-agent = { + enable = true; + pinentryPackage = pkgs.pinentry-curses; + }; +} diff --git a/navi/navi/devel.nix b/navi/navi/devel.nix new file mode 100644 index 0000000..fb7dffc --- /dev/null +++ b/navi/navi/devel.nix @@ -0,0 +1,7 @@ +{ + programs.direnv = { + enable = true; + enableZshIntegration = true; + nix-direnv.enable = true; + }; +} diff --git a/navi/navi/editors.nix b/navi/navi/editors.nix new file mode 100644 index 0000000..b4b278a --- /dev/null +++ b/navi/navi/editors.nix @@ -0,0 +1,41 @@ +{ pkgs, inputs, ... }: + +{ + programs.neovim = { + enable = true; + }; + home.sessionVariables.EDITOR = "nvim"; + + + home.file = { + ".emacs.d" = { + text = "hii"; + recursive = true; + }; + }; + + programs.emacs.enable = true; + programs.emacs.extraPackages = ( + epkgs: (with epkgs; [ + better-defaults + material-theme + org + org-bullets + org-journal + org-roam + org-super-agenda + helm-org-rifle + afternoon-theme + workgroups2 + treemacs + projectile + slime + yaml + yaml-mode + markdown-mode + ox-pandoc + use-package + notmuch + ]) + ); +} diff --git a/navi/navi/emacs.d/init.el b/navi/navi/emacs.d/init.el new file mode 100644 index 0000000..e69de29 diff --git a/navi/navi/fonts.nix b/navi/navi/fonts.nix new file mode 100644 index 0000000..4c00ef7 --- /dev/null +++ b/navi/navi/fonts.nix @@ -0,0 +1,15 @@ +{ pkgs, ... }: + +{ + fonts.fontconfig.enable = true; + + home.packages = with pkgs; [ + jetbrains-mono + roboto + font-awesome + corefonts + vista-fonts + culmus + iosevka + ]; +} diff --git a/navi/navi/git.nix b/navi/navi/git.nix new file mode 100644 index 0000000..cac3241 --- /dev/null +++ b/navi/navi/git.nix @@ -0,0 +1,29 @@ +{ pkgs, ... }: + +{ + programs.git = { + enable = true; + userName = "laniakea"; + userEmail = "itamar@itamar.site"; + ignores = [ "*.swp" "result" ]; + signing = { + key = "72F74E167C220C451CF29C09D8277CDCD4F544E9"; + signByDefault = true; + }; + extraConfig = { + commit.gpgSign = true; + tag.gpgSign = true; + push.autoSetupRemote = true; + }; + }; + + programs.gh = { + enable = true; + settings = { + git_protocol = "ssh"; + version = 1; + }; + }; + + home.packages = [ pkgs.git-open ]; +} diff --git a/navi/navi/gtk-qt.nix b/navi/navi/gtk-qt.nix new file mode 100644 index 0000000..a7daa90 --- /dev/null +++ b/navi/navi/gtk-qt.nix @@ -0,0 +1,54 @@ +{ pkgs, ... }: + +{ + gtk = { + enable = true; + # theme = { + # name = "Catppuccin-Macchiato-Compact-Lavender-Dark"; + # package = pkgs.catppuccin-gtk.override { + # variant = "macchiato"; + # accents = [ "lavender" ]; + # size = "compact"; + # tweaks = [ "rimless" ]; + # }; + # }; + # iconTheme = { + # name = "Papirus-Dark"; + # package = pkgs.catppuccin-papirus-folders.override { + # flavor = "macchiato"; + # accent = "lavender"; + # }; + # }; + font = { + name = "Roboto 10"; + package = pkgs.roboto; + }; + + # gtk4.extraConfig = { + # gtk-xft-antialias = 1; + # gtk-xft-hinting = 1; + # gtk-xft-hintstyle = "hintslight"; + # gtk-xft-rgba = "rgb"; + # gtk-enable-event-sounds = 0; + # gtk-enable-input-feedback-sounds = 0; + # }; + + # gtk3.extraConfig = { + # gtk-xft-antialias = 1; + # gtk-xft-hinting = 1; + # gtk-xft-hintstyle = "hintslight"; + # gtk-xft-rgba = "rgb"; + # gtk-enable-event-sounds = 0; + # gtk-enable-input-feedback-sounds = 0; + # }; + + # gtk2.extraConfig = '' + # gtk-xft-antialias=1 + # gtk-xft-hinting=1 + # gtk-xft-hintstyle="hintslight" + # gtk-xft-rgba="rgb" + # gtk-enable-event-sounds=0 + # gtk-enable-input-feedback-sounds=0 + # ''; + }; +} diff --git a/navi/navi/keyboard.nix b/navi/navi/keyboard.nix new file mode 100644 index 0000000..cba2fad --- /dev/null +++ b/navi/navi/keyboard.nix @@ -0,0 +1,107 @@ +{ + home.keyboard = { + layout = "us,il"; + options = [ "grp:lalt_lshift_toggle" ]; + }; + + + services.sxhkd = { + enable = true; + keybindings = { + # terminal emulator + "super + Return" = "alacritty"; + # program launcher + "super + @space" = "rofi -show drun"; + # quit/restart bspwm + "super + alt + {q,r}" = "bspc {quit,wm -r}"; + + # close and kill + "super + {_,shift + }w" = "bspc node -{c,k}"; + + # alternate between the tiled and monocle layout + "super + m" = "bspc desktop -l next"; + + # send the newest marked node to the newest preselected node + "super + y" = "bspc node newest.marked.local -n newest.!automatic.local"; + + # swap the current node and the biggest node + "super + g" = "bspc node -s biggest"; + + # set the window state + "super + {t,shift + t,s,f}" = "bspc node -t {tiled,pseudo_tiled,floating,fullscreen}"; + + # set the node flags + "super + ctrl + {m,x,y,z}" = "bspc node -g {marked,locked,sticky,private}"; + + # focus the node in the given direction + "super + {_,shift + }{h,j,k,l}" = "bspc node -{f,s} {west,south,north,east}"; + + # focus the node for the given path jump + "super + {p,b,comma,period}" = "bspc node -f @{parent,brother,first,second}"; + + # focus the next/previous node in the current desktop + "super + {_,shift + }c" = "bspc node -f {next,prev}.local.!hidden.window"; + + # focus the next/previous desktop in the current monitor + "super + bracket{left,right}" = "bspc desktop -f {prev,next}.local.!hidden.window"; + + # focus the last node/desktop + "super + {grave,Tab}" = "bspc {node,desktop} -f last"; + + # focus or send to the given desktop + "super + {_,shift + }{1-9,0}" = "bspc {desktop -f,node -d} '{1-9,10}'"; + + # preselect the direction + "super + ctrl + {h,j,k,l}" = "bspc node -p {west,south,north,east}"; + + # preselect the ratio + "super + ctrl + {1-9}" = "bspc node -o 0.{1-9}"; + + # cancel the preselection for the focused node + "super + ctrl + space" = "bspc node -p cancel"; + + # cancel the preselection for the focused desktop + "super + ctrl + shift + space" = "bspc query -N -d | xargs -I id -n 1 bspc node id -p cancel"; + + # move a floating window + "super + {Left,Down,Up,Right}" = "bspc node -v {-20 0,0 20,0 -20,20 0}"; + + # Rotate tree + "super + shift + {d,a}" = "bspc node @/ -C {forward,backward}"; + + #### MULTIMEDIA KEYS #### + + "XF86Audio{Prev,Next,Play}" = "mpc -q {prev,next,toggle}"; + + "XF86Audio{Raise,Lower}Volume" = "pulsemixer --change-volume {+,-}5"; + + "XF86AudioMute" = "pulsemixer --toggle-mute"; + + "XF86AudioMicMute" = "pulsemixer --id source-42 --toggle-mute"; + + # Launch programs + "alt + 1" = "librewolf"; + + "alt + 2" = "Discord"; + + "alt + 3" = "nemo"; + + # Brightness control + "XF86MonBrightness{Up,Down}" = "light -{A,U} 10"; + + # Screenshoting + "super + shift + s" = "maim -s | xclip -selection clipboard -t image/png"; + + "Print" = "maim | xclip -selection clipboard -t image/png && notify-send 'maim' 'Screenshot captured'"; + + }; + extraConfig = '' + # Expand/contract a window by moving one of its side outward/inward + super + alt + {h,j,k,l} + STEP=20; SELECTION={1,2,3,4}; \ + bspc node -z $(echo "left -$STEP 0,bottom 0 $STEP,top 0 -$STEP,right $STEP 0" | cut -d',' -f$SELECTION) || \ + bspc node -z $(echo "right -$STEP 0,top 0 $STEP,bottom 0 -$STEP,left $STEP 0" | cut -d',' -f$SELECTION) + ''; + }; +} + diff --git a/navi/navi/launcher.nix b/navi/navi/launcher.nix new file mode 100644 index 0000000..bd01edc --- /dev/null +++ b/navi/navi/launcher.nix @@ -0,0 +1,43 @@ +{ config, ... }: + +{ + programs.rofi = { + enable = true; + font = "JetBrains Mono 8"; + extraConfig = { + modi = [ "drun" ]; + matching = "fuzzy"; + }; + # theme = + # let + # inherit (config.lib.formats.rasi) mkLiteral; + # in + # { + # # catppuccin macchiato + # "*" = { + # background-color = mkLiteral "#24273A"; + # text-color = mkLiteral "#CAD3F5"; + # border-color = mkLiteral "#91D7E3"; + # }; + # window.width = mkLiteral "25%"; + # mainbox = { + # border = 3; + # padding = 10; + # }; + # listview = { + # lines = 8; + # spacing = 5; + # padding = mkLiteral "5 0 0"; + # }; + # element.padding = 2; + # "element.selected".background-color = mkLiteral "#363A4F"; + # element-text.background-color = mkLiteral "inherit"; + # inputbar = { + # spacing = 5; + # padding = 5; + # border = mkLiteral "0 0 1"; + # border-color = mkLiteral "#A6DA95"; + # }; + # }; + }; +} diff --git a/navi/navi/messaging.nix b/navi/navi/messaging.nix new file mode 100644 index 0000000..a173449 --- /dev/null +++ b/navi/navi/messaging.nix @@ -0,0 +1,17 @@ +{ pkgs, ... }: + + +{ + + home.packages = with pkgs; [ + #discord + element-desktop + + (pkgs.discord.override { + # remove any overrides that you don't want + withOpenASAR = true; + withVencord = true; +})]; + + +} diff --git a/navi/navi/multimedia.nix b/navi/navi/multimedia.nix new file mode 100644 index 0000000..b761f22 --- /dev/null +++ b/navi/navi/multimedia.nix @@ -0,0 +1,15 @@ +{ pkgs, ... }: + +{ + home.packages = with pkgs; [ + ffmpeg + ffmpegthumbnailer + feh + gimp + transmission_4 + xdg-utils + xdg-user-dirs + ]; + + +} diff --git a/navi/navi/notifications.nix b/navi/navi/notifications.nix new file mode 100644 index 0000000..c1a44be --- /dev/null +++ b/navi/navi/notifications.nix @@ -0,0 +1,34 @@ +{ pkgs, ... }: + +{ + services.dunst = { + enable = true; + settings = { + global.font = "JetBrains Mono 10"; + + # catppuccin macchiato + global = { + frame_color = "#8AADF4"; + separator_color = "frame"; + }; + + urgency_low = { + background = "#24273A"; + foreground = "#CAD3F5"; + }; + + urgency_normal = { + background = "#24273A"; + foreground = "#CAD3F5"; + }; + + urgency_critical = { + background = "#24273A"; + foreground = "#CAD3F5"; + frame_color = "#F5A97F"; + }; + }; + }; + + home.packages = [ pkgs.libnotify ]; +} diff --git a/navi/navi/packages.nix b/navi/navi/packages.nix new file mode 100644 index 0000000..3cedd29 --- /dev/null +++ b/navi/navi/packages.nix @@ -0,0 +1,38 @@ +{ pkgs, ... }: + +{ + + home.packages = with pkgs; [ + # wget + keepassxc + # yt-dlp + p7zip + # tdesktop + # killall + xclip + maim + calc sage nim zig gcc gnumake gnupg ghc idris2 python3 vim unzip wget + # htop + ranger + # pulsemixer + tree + # fzf + # gnome.gnome-disk-utility + # nextcloud-client + # lm_sensors + # ffmpegthumbnailer + # ffmpeg + # piper + # thunderbird-bin + # ookla-speedtest + # nixpkgs-fmt + # nixpkgs-review + # nix-update + # acpi + # ripgrep + # fd + # sd + # discord + ]; +} + diff --git a/navi/navi/polybar.nix b/navi/navi/polybar.nix new file mode 100644 index 0000000..661e5fd --- /dev/null +++ b/navi/navi/polybar.nix @@ -0,0 +1,113 @@ +{ pkgs, ... }: +{ + services.polybar = { + enable = true; + package = pkgs.polybarFull; + script = '' + polybar leftbar & + polybar centerbar & + polybar rightbar & + ''; + config = { + "colors" = { + base = "#24273a"; + mantle = "#1e2030"; + surface0 = "#363a4f"; + surface1 = "#494d64"; + text = "#cad3f5"; + mauve = "#c6a0f6"; + red = "#ed8796"; + maroon = "#ee99a0"; + green = "#a6da95"; + peach = "#f5a97f"; + sapphire = "#7dc4e4"; + yellow = "#eed49f"; + }; + "section/base" = { + height = 20; + offset-y = 2; + background = "\${colors.base}"; + foreground = "\${colors.text}"; + border-color = "\${colors.mauve}"; + border-size = 2; + font-0 = "Iosevka:size=15;2"; + font-1 = "Iosevka:size=14;2"; + wm-restack = "bspwm"; + }; + "bar/leftbar" = { + "inherit" = "section/base"; + modules-left = "bspwm"; + offset-x = 10; + width = 221; + }; + "module/bspwm" = { + type = "internal/bspwm"; + label-active = "%index%"; + label-active-background = "\${colors.mauve}"; + label-active-foreground = "\${colors.base}"; + label-active-padding = 1; + label-empty = "%index%"; + label-empty-padding = 1; + label-occupied = "%index%"; + label-occupied-background = "\${colors.surface0}"; + label-occupied-padding = 1; + label-urgent = "%index%"; + label-urgent-background = "\${colors.red}"; + label-urgent-foreground = "\${colors.base}"; + label-urgent-padding = 1; + }; + "bar/centerbar" = { + "inherit" = "section/base"; + modules-center = "mpd"; + offset-x = "50%:-175"; + width = 350; + }; + "module/mpd".type = "internal/mpd"; + "bar/rightbar" = { + "inherit" = "section/base"; + modules-right = "xkeyboard cpu memory pulseaudio date"; + offset-x = "100%:-460"; + width = 450; + }; + "module/xkeyboard" = { + type = "internal/xkeyboard"; + format-foreground = "\${colors.maroon}"; + format-padding = 1; + }; + "module/cpu" = { + type = "internal/cpu"; + format-foreground = "\${colors.green}"; + format-padding = 1; + label = " %percentage%%"; + }; + "module/memory" = { + type = "internal/memory"; + format-foreground = "\${colors.peach}"; + format-padding = 1; + label = " %percentage_used%%"; + }; + "module/pulseaudio" = { + type = "internal/pulseaudio"; + format-muted-background = "\${colors.red}"; + format-muted-foreground = "\${colors.base}"; + format-muted-padding = 1; + format-volume = " "; + format-volume-foreground = "\${colors.sapphire}"; + format-volume-padding = 1; + label-muted = "MUTED"; + ramp-volume-0 = ""; + ramp-volume-1 = ""; + ramp-volume-2 = ""; + }; + "module/date" = { + type = "internal/date"; + date = "%d"; + date-alt = "%A"; + time = "%H:%M"; + format-foreground = "\${colors.yellow}"; + format-padding = 1; + label = "%date% %time%"; + }; + }; + }; +} diff --git a/navi/navi/programs.nix b/navi/navi/programs.nix new file mode 100644 index 0000000..b579074 --- /dev/null +++ b/navi/navi/programs.nix @@ -0,0 +1,22 @@ +{ pkgs, ... }: + +{ + programs = { + bat = { + enable = true; + config = { + paging = "never"; + style = "numbers"; + theme = "catppuccin"; + }; + }; + + zathura = { + enable = true; + options = { + font = "JetBrains Mono 8"; + recolor = true; + }; + }; + }; +} diff --git a/navi/navi/screen-lock.nix b/navi/navi/screen-lock.nix new file mode 100644 index 0000000..0d8b48d --- /dev/null +++ b/navi/navi/screen-lock.nix @@ -0,0 +1,10 @@ +{ pkgs, lib, ... }: + +{ + services.screen-locker = { + enable = true; + xautolock.detectSleep = true; + inactiveInterval = 15; + lockCmd = lib.getExe pkgs.xsecurelock; + }; +} diff --git a/navi/navi/services.nix b/navi/navi/services.nix new file mode 100644 index 0000000..fd33c80 --- /dev/null +++ b/navi/navi/services.nix @@ -0,0 +1,6 @@ +{ pkgs, lib, ... }: + +{ + +} + diff --git a/navi/navi/shell.nix b/navi/navi/shell.nix new file mode 100644 index 0000000..56abf1a --- /dev/null +++ b/navi/navi/shell.nix @@ -0,0 +1,8 @@ +{ pkgs, lib, ... }: + +{ + programs.zsh = { + enable = true; + enableCompletion = true; + }; +} diff --git a/navi/navi/ssh.nix b/navi/navi/ssh.nix new file mode 100644 index 0000000..adc3e4a --- /dev/null +++ b/navi/navi/ssh.nix @@ -0,0 +1,8 @@ +{ + programs.ssh = { + enable = true; + hashKnownHosts = true; + }; + + +} diff --git a/navi/navi/terminal.nix b/navi/navi/terminal.nix new file mode 100644 index 0000000..a335b0f --- /dev/null +++ b/navi/navi/terminal.nix @@ -0,0 +1,14 @@ +{ pkgs, ... }: + +{ + programs.alacritty = { + enable = true; + settings = { + env.WINIT_X11_SCALE_FACTOR = "1"; + font = { + normal.family = "Iosevka"; + size = 14; + }; + }; + }; +}