This commit is contained in:
itamar 2026-04-10 22:42:37 +03:00
parent 7b8005c867
commit 4731e545bb
No known key found for this signature in database
GPG key ID: D8277CDCD4F544E9
44 changed files with 742 additions and 1233 deletions

View file

@ -1,83 +1,46 @@
{ config, pkgs, ... }:
{ {
pkgs,
lib,
...
}: {
imports = [ imports = [
./hardware-configuration.nix ./hardware-configuration.nix
]; ];
# Bootloader
boot.loader.systemd-boot.enable = true; boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true; boot.loader.efi.canTouchEfiVariables = true;
boot.kernelParams = ["transparent_hugepage=never"]; programs.dconf.enable = true;
# Hostname
networking.hostName = "navi"; networking.hostName = "navi";
networking.networkmanager.enable = true; networking.networkmanager.enable = true;
services.mullvad-vpn = { # Timezone & locale
enable = true;
package = pkgs.mullvad-vpn;
};
services.resolved.enable = true;
virtualisation.vmware.host.enable = true;
time.timeZone = "Asia/Jerusalem"; time.timeZone = "Asia/Jerusalem";
i18n.defaultLocale = "en_US.UTF-8"; i18n.defaultLocale = "en_IL";
i18n.extraLocaleSettings = { i18n.extraLocaleSettings = {
LC_ADDRESS = "en_US.UTF-8"; LC_ADDRESS = "he_IL.UTF-8";
LC_IDENTIFICATION = "en_US.UTF-8"; LC_IDENTIFICATION = "he_IL.UTF-8";
LC_MEASUREMENT = "en_US.UTF-8"; LC_MEASUREMENT = "he_IL.UTF-8";
LC_MONETARY = "en_US.UTF-8"; LC_MONETARY = "he_IL.UTF-8";
LC_NAME = "en_US.UTF-8"; LC_NAME = "he_IL.UTF-8";
LC_NUMERIC = "en_US.UTF-8"; LC_NUMERIC = "he_IL.UTF-8";
LC_PAPER = "en_US.UTF-8"; LC_PAPER = "he_IL.UTF-8";
LC_TELEPHONE = "en_US.UTF-8"; LC_TELEPHONE = "he_IL.UTF-8";
LC_TIME = "en_US.UTF-8"; LC_TIME = "he_IL.UTF-8";
}; };
programs.bash = { # X11 + i3 (no GNOME)
services.xserver = {
enable = true; enable = true;
completion.enable = true; windowManager.i3.enable = true;
interactiveShellInit = '' displayManager.lightdm.enable = true;
eval "$(${pkgs.starship}/bin/starship init bash)" xkb = {
''; layout = "us";
};
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";
};
};
services.xserver.xkb = {
layout = "us,il";
variant = ""; variant = "";
}; };
};
services.pulseaudio.enable = false; # Sound
programs.dconf.enable = true;
security.rtkit.enable = true; security.rtkit.enable = true;
services.pulseaudio.enable = false;
services.pipewire = { services.pipewire = {
enable = true; enable = true;
alsa.enable = true; alsa.enable = true;
@ -85,39 +48,25 @@
pulse.enable = true; pulse.enable = true;
}; };
services.printing.enable = true;
# User
users.users.laniakea = { users.users.laniakea = {
isNormalUser = true; isNormalUser = true;
description = "laniakea"; 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; programs.firefox.enable = true;
nixpkgs.config.allowUnfree = 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";
} }

129
navi/flake.lock generated
View file

@ -1,42 +1,5 @@
{ {
"nodes": { "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": { "home-manager": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@ -44,11 +7,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1775360939, "lastModified": 1775781825,
"narHash": "sha256-XUBlSgUFdvTh6+K5LcI5mJu5F5L8scmJDMRiZM484TM=", "narHash": "sha256-L5yKTpR+alrZU2XYYvIxCeCP4LBHU5jhwSj7H1VAavg=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "2097a5c82bdc099c6135eae4b111b78124604554", "rev": "e35c39fca04fee829cecdf839a50eb9b54d8a701",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -57,50 +20,13 @@
"type": "github" "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": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1775036866, "lastModified": 1775710090,
"narHash": "sha256-ZojAnPuCdy657PbTq5V0Y+AHKhZAIwSIT2cb8UgAz/U=", "narHash": "sha256-ar3rofg+awPB8QXDaFJhJ2jJhu+KqN/PRCXeyuXR76E=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "6201e203d09599479a3b3450ed24fa81537ebc4e", "rev": "4c1018dae018162ec878d42fec712642d214fdfa",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -110,51 +36,10 @@
"type": "github" "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": { "root": {
"inputs": { "inputs": {
"home-manager": "home-manager", "home-manager": "home-manager",
"nixpkgs": "nixpkgs", "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"
} }
} }
}, },

View file

@ -1,31 +1,18 @@
{ {
inputs = { inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
home-manager = { home-manager = {
url = "github:nix-community/home-manager"; url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs"; 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 { nixosConfigurations.navi = nixpkgs.lib.nixosSystem {
system = "x86_64-linux"; system = "x86_64-linux";
modules = [ modules = [
./configuration.nix
./hardware-configuration.nix
home-manager.nixosModules.home-manager home-manager.nixosModules.home-manager
{ ./configuration.nix
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users.laniakea = import ./laniakea/home.nix;
home-manager.extraSpecialArgs = { inherit nvf; };
}
]; ];
}; };
}; };

View file

@ -14,12 +14,12 @@
boot.extraModulePackages = [ ]; boot.extraModulePackages = [ ];
fileSystems."/" = fileSystems."/" =
{ device = "/dev/disk/by-uuid/19cf3af9-df0f-46e7-ab26-f29dad2e5a63"; { device = "/dev/disk/by-uuid/3fd6b3e1-e237-4c9f-9f9a-37ee711114fe";
fsType = "ext4"; fsType = "ext4";
}; };
fileSystems."/boot" = fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/80BA-5D8C"; { device = "/dev/disk/by-uuid/AE26-3C10";
fsType = "vfat"; fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ]; options = [ "fmask=0077" "dmask=0077" ];
}; };

View file

@ -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"
];
};
};
}

View file

@ -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
];
}

View file

@ -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;
}

View file

@ -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)
)

View file

@ -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

View file

@ -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"

View file

@ -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

View file

@ -1,2 +0,0 @@
#!/bin/sh
hyprctl switchxkblayout josefadamcik-sofle next

View file

@ -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

View file

@ -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";
};
};
};
}

View file

@ -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";
}

View file

@ -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%-"
];
};
};
}

View file

@ -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;
};
}

View file

@ -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;
}
'';
};
};
}

View file

@ -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;
};
};
};
}

View file

@ -1,14 +0,0 @@
{lib, ...}: {
programs.starship = {
enable = true;
enableBashIntegration = true;
settings = {
add_newline = false;
format = lib.concatStrings [
"$directory"
"$nix_shell"
"[](fg:purple) "
];
};
};
}

View file

@ -1,17 +0,0 @@
{
programs.vesktop = {
enable = true;
settings = {
checkUpdates = false;
hardwareAcceleration = true;
discordBranch = "stable";
};
vencord.settings = {
autoUpdate = true;
autoUpdateNotification = true;
notifyAboutUpdates = true;
};
};
}

9
navi/navi/audio.nix Normal file
View file

@ -0,0 +1,9 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
pavucontrol
milkytracker
rtmidi
];
}

16
navi/navi/browser.nix Normal file
View file

@ -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;
};
};
}

57
navi/navi/bspwm.nix Normal file
View file

@ -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 ];
}

31
navi/navi/default.nix Normal file
View file

@ -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;
};
}

7
navi/navi/devel.nix Normal file
View file

@ -0,0 +1,7 @@
{
programs.direnv = {
enable = true;
enableZshIntegration = true;
nix-direnv.enable = true;
};
}

41
navi/navi/editors.nix Normal file
View file

@ -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
])
);
}

View file

15
navi/navi/fonts.nix Normal file
View file

@ -0,0 +1,15 @@
{ pkgs, ... }:
{
fonts.fontconfig.enable = true;
home.packages = with pkgs; [
jetbrains-mono
roboto
font-awesome
corefonts
vista-fonts
culmus
iosevka
];
}

29
navi/navi/git.nix Normal file
View file

@ -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 ];
}

54
navi/navi/gtk-qt.nix Normal file
View file

@ -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
# '';
};
}

107
navi/navi/keyboard.nix Normal file
View file

@ -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)
'';
};
}

43
navi/navi/launcher.nix Normal file
View file

@ -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";
# };
# };
};
}

17
navi/navi/messaging.nix Normal file
View file

@ -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;
})];
}

15
navi/navi/multimedia.nix Normal file
View file

@ -0,0 +1,15 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
ffmpeg
ffmpegthumbnailer
feh
gimp
transmission_4
xdg-utils
xdg-user-dirs
];
}

View file

@ -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 ];
}

38
navi/navi/packages.nix Normal file
View file

@ -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
];
}

113
navi/navi/polybar.nix Normal file
View file

@ -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 = "<ramp-volume> <label-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%";
};
};
};
}

22
navi/navi/programs.nix Normal file
View file

@ -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;
};
};
};
}

10
navi/navi/screen-lock.nix Normal file
View file

@ -0,0 +1,10 @@
{ pkgs, lib, ... }:
{
services.screen-locker = {
enable = true;
xautolock.detectSleep = true;
inactiveInterval = 15;
lockCmd = lib.getExe pkgs.xsecurelock;
};
}

6
navi/navi/services.nix Normal file
View file

@ -0,0 +1,6 @@
{ pkgs, lib, ... }:
{
}

8
navi/navi/shell.nix Normal file
View file

@ -0,0 +1,8 @@
{ pkgs, lib, ... }:
{
programs.zsh = {
enable = true;
enableCompletion = true;
};
}

8
navi/navi/ssh.nix Normal file
View file

@ -0,0 +1,8 @@
{
programs.ssh = {
enable = true;
hashKnownHosts = true;
};
}

14
navi/navi/terminal.nix Normal file
View file

@ -0,0 +1,14 @@
{ pkgs, ... }:
{
programs.alacritty = {
enable = true;
settings = {
env.WINIT_X11_SCALE_FACTOR = "1";
font = {
normal.family = "Iosevka";
size = 14;
};
};
};
}