Compare commits

..

17 commits

Author SHA1 Message Date
FabricSoul
846320eb55 update: waybar 2025-08-08 00:33:11 -04:00
FabricSoul
085b016786 feat: add kmonad
feat: add kmonad

feat: add kmonad
2025-08-08 00:32:36 -04:00
FabricSoul
81401cced7 update: shirnk font size 2025-08-08 00:28:55 -04:00
FabricSoul
bf347405c4 feat: add solaris hardware config 2025-08-08 00:28:33 -04:00
FabricSoul
762da3a0b3 feat: add host solaris 2025-08-07 19:34:46 -04:00
FabricSoul
705acb97e7 feat: add host solaris 2025-08-07 19:28:38 -04:00
FabricSoul
892a6fe048 debloat 2025-08-07 19:28:27 -04:00
FabricSoul
900df161db update: misc 2025-08-07 19:16:35 -04:00
FabricSoul
ac014e766f feat: use pipewire 2025-08-07 19:15:24 -04:00
FabricSoul
099709c3c2 update: home, dwl 2025-08-07 19:15:10 -04:00
FabricSoul
18ad14faba update: config 2025-08-07 19:14:54 -04:00
FabricSoul
86acc4b8bd update: config 2025-08-07 19:14:47 -04:00
FabricSoul
37cf8c18c3 update: config 2025-08-07 19:14:41 -04:00
FabricSoul
ebeb37f61f feat: add foot 2025-08-07 19:14:14 -04:00
FabricSoul
0bb9827f34 feat: add waybar 2025-08-07 19:14:05 -04:00
FabricSoul
1a0c868725 feat: add mako 2025-08-07 19:13:53 -04:00
FabricSoul
d9c1f63f3b update flake 2025-08-07 19:13:38 -04:00
16 changed files with 811 additions and 204 deletions

71
files/keyboard.kbd Normal file
View file

@ -0,0 +1,71 @@
(defcfg
;; For Linux
input (device-file "/dev/input/event0")
output (uinput-sink "My KMonad output")
fallthrough true
allow-cmd true
)
(defsrc
esc mute vold volu prnt slck pause ins del home pgup
f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 end pgdn
grv 1 2 3 4 5 6 7 8 9 0 - = bspc
tab q w e r t y u i o p [ ] ret
caps a s d f g h j k l ; ' \
lsft 102d z x c v b n m , . / rsft
wkup lctl lmet lalt spc ralt cmps rctl back up fwd
left down rght
)
(deflayer base
caps mute vold volu prnt slck pause ins del home pgup
f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 end pgdn
$ + [ { \( & = \) } ] + ! | bspc
tab ; , . p y f g c r l / ] ret
esc @a @o @e @u i d @h @t @n @s - \
lsft 102d ' q j k x b m w v z rsft
wkup lctl lmet @tab @spc @bspc ret rctl back up fwd
left down rght
)
(deflayer num
caps mute vold volu prnt slck pause ins del home pgup
f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 end pgdn
$ + [ { \( & = \) } ] + ! | bspc
tab ; 7 8 9 y f g c r l / ] ret
esc a 4 5 6 0 d h t n s - \
lsft 102d ' 1 2 3 x b m w v z rsft
wkup lctl lmet tab spc bspc ret rctl back up fwd
left down rght
)
(deflayer symbol
caps mute vold volu prnt slck pause ins del home pgup
f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 end pgdn
$ + [ { \( & = \) } ] + ! | bspc
~ * ! % @ ^ f g c r l / ] ret
$ + [ { \( = d h t n s - \
# 102d ` ] } \) & b m w v z rsft
wkup lctl lmet tab spc bspc ret rctl back up fwd
left down rght
)
(deflayer arrow
caps mute vold volu prnt slck pause ins del home pgup
f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 end pgdn
$ + [ { \( & = \) } ] + ! | bspc
tab ; , . p y f g c r l / ] ret
esc @a @o @e @u i d @h @t @n @s - \
lsft 102d ' q j k x b left down up right rsft
wkup lctl lmet tab @spc @bspc ret rctl back up fwd
left down rght
)
(defalias
a (tap-hold 200 a lalt)
o (tap-hold 200 o lmet)
e (tap-hold 200 e lsft)
u (tap-hold 200 u lctl)
h (tap-hold 200 h lctl)
t (tap-hold 200 t lsft)
n (tap-hold 200 n lmet)
s (tap-hold 200 s lalt)
spc (tap-hold 200 spc (layer-toggle num))
bspc (tap-hold 200 bspc (layer-toggle symbol))
tab (tap-hold 200 tab (layer-toggle arrow))
)

116
flake.lock generated
View file

@ -1,5 +1,23 @@
{
"nodes": {
"fabric-dwl": {
"inputs": {
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1754514691,
"narHash": "sha256-/KgE/0DAMTOEIwubGoEcFSO3HP0peOdJEHoe7gOCO/8=",
"ref": "refs/heads/main",
"rev": "c35ba0afa76a7a7143bede61e4cb1caf63efc52e",
"revCount": 1329,
"type": "git",
"url": "https://codeberg.org/FabricSoul/dwl"
},
"original": {
"type": "git",
"url": "https://codeberg.org/FabricSoul/dwl"
}
},
"fenix": {
"inputs": {
"nixpkgs": [
@ -30,11 +48,11 @@
]
},
"locked": {
"lastModified": 1751413152,
"narHash": "sha256-Tyw1RjYEsp5scoigs1384gIg6e0GoBVjms4aXFfRssQ=",
"lastModified": 1754420989,
"narHash": "sha256-3e4wHzNwTMg7GaeLH9A091DMaO9AfFxUjpfqbddCUeo=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "77826244401ea9de6e3bac47c2db46005e1f30b5",
"rev": "7f38f25a44023a21a504bd3fd9d4f41c4a39f55c",
"type": "github"
},
"original": {
@ -86,11 +104,11 @@
]
},
"locked": {
"lastModified": 1753294394,
"narHash": "sha256-1Dfgq09lHZ8AdYB2Deu/mYP1pMNpob8CgqT5Mzo44eI=",
"lastModified": 1754503522,
"narHash": "sha256-V0iiDcYvNeMOP2FyfgC4H8Esx+JodXEl80lD4hFD4SI=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "1fde6fb1be6cd5dc513dc1c287d69e4eb2de973e",
"rev": "13461dec40bf03d9196ff79d1abe48408268cc35",
"type": "github"
},
"original": {
@ -100,27 +118,6 @@
"type": "github"
}
},
"home-manager_2": {
"inputs": {
"nixpkgs": [
"zen-browser",
"nixpkgs"
]
},
"locked": {
"lastModified": 1752603129,
"narHash": "sha256-S+wmHhwNQ5Ru689L2Gu8n1OD6s9eU9n9mD827JNR+kw=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "e8c19a3cec2814c754f031ab3ae7316b64da085b",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "home-manager",
"type": "github"
}
},
"ixx": {
"inputs": {
"flake-utils": [
@ -151,11 +148,27 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1753151930,
"narHash": "sha256-XSQy6wRKHhRe//iVY5lS/ZpI/Jn6crWI8fQzl647wCg=",
"lastModified": 1753694789,
"narHash": "sha256-cKgvtz6fKuK1Xr5LQW/zOUiAC0oSQoA9nOISB0pJZqM=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "dc9637876d0dcc8c9e5e22986b857632effeb727",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1754340878,
"narHash": "sha256-lgmUyVQL9tSnvvIvBp7x1euhkkCho7n3TMzgjdvgPoU=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "83e677f31c84212343f4cc553bab85c2efcad60a",
"rev": "cab778239e705082fe97bb4990e0d24c50924c04",
"type": "github"
},
"original": {
@ -165,7 +178,7 @@
"type": "github"
}
},
"nixpkgs_2": {
"nixpkgs_3": {
"locked": {
"lastModified": 1710272261,
"narHash": "sha256-g0bDwXFmTE7uGDOs9HcJsfLFhH7fOsASbAuOzDC+fhQ=",
@ -191,11 +204,11 @@
"systems": "systems_2"
},
"locked": {
"lastModified": 1752976861,
"narHash": "sha256-59HcrqHfbSJUdmpzrAa9x8fW1PoS+ZGhCjL5k5HbyV8=",
"lastModified": 1754506651,
"narHash": "sha256-LcpDSjGtTVU0S+aWJPE3/8RONQV0q8dDuanfCj7mAW0=",
"owner": "nix-community",
"repo": "nixvim",
"rev": "0c50ed9349199219583cb1ed1a972d71e06039ec",
"rev": "085ef66994f94226dd3d62921e1d48bf731b663a",
"type": "github"
},
"original": {
@ -215,11 +228,11 @@
]
},
"locked": {
"lastModified": 1749730855,
"narHash": "sha256-L3x2nSlFkXkM6tQPLJP3oCBMIsRifhIDPMQQdHO5xWo=",
"lastModified": 1754301638,
"narHash": "sha256-aRgzcPDd2axHFOuMlPLuzmDptUM2JU8mUL3jfgbBeyc=",
"owner": "NuschtOS",
"repo": "search",
"rev": "8dfe5879dd009ff4742b668d9c699bc4b9761742",
"rev": "a60091045273484c040a91f5c229ba298f8ecc27",
"type": "github"
},
"original": {
@ -232,7 +245,7 @@
"inputs": {
"fenix": "fenix",
"flake-utils": "flake-utils_2",
"nixpkgs": "nixpkgs_2",
"nixpkgs": "nixpkgs_3",
"systems": "systems_4"
},
"locked": {
@ -251,11 +264,11 @@
},
"root": {
"inputs": {
"fabric-dwl": "fabric-dwl",
"home-manager": "home-manager",
"nixpkgs": "nixpkgs",
"nixpkgs": "nixpkgs_2",
"nixvim": "nixvim",
"openapi-tui": "openapi-tui",
"zen-browser": "zen-browser"
"openapi-tui": "openapi-tui"
}
},
"rust-analyzer-src": {
@ -334,27 +347,6 @@
"repo": "default-linux",
"type": "github"
}
},
"zen-browser": {
"inputs": {
"home-manager": "home-manager_2",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1753069499,
"narHash": "sha256-YtgY0ueqKNrBma4Euu8WH23BhUkBujirJDMDE1KujnU=",
"owner": "0xc000022070",
"repo": "zen-browser-flake",
"rev": "c64b94235ae24e3b9e01a08f0331d8bb0e5b037a",
"type": "github"
},
"original": {
"owner": "0xc000022070",
"repo": "zen-browser-flake",
"type": "github"
}
}
},
"root": "root",

View file

@ -17,11 +17,10 @@
openapi-tui = {
url = "github:zaghaghi/openapi-tui";
};
zen-browser = {
url = "github:0xc000022070/zen-browser-flake";
# IMPORTANT: we're using "libgbm" and is only available in unstable so ensure
# to have it up-to-date or simply don't specify the nixpkgs input
inputs.nixpkgs.follows = "nixpkgs";
fabric-dwl = {
url = "git+https://codeberg.org/FabricSoul/dwl";
flake = true;
};
};
@ -30,9 +29,9 @@
nixpkgs,
# nvidiaPkgs,
home-manager,
zen-browser,
nixvim,
openapi-tui,
fabric-dwl,
...
}: let
lib = nixpkgs.lib;
@ -46,6 +45,12 @@
# };
in {
nixosConfigurations = {
solaris = lib.nixosSystem {
system = "x86_64-linux";
modules = [
./hosts/solaris/default.nix
];
};
tatara = lib.nixosSystem {
system = "x86_64-linux";
modules = [
@ -66,12 +71,16 @@
homeConfigurations.fabric = home-manager.lib.homeManagerConfiguration {
inherit pkgs;
extraSpecialArgs = {
inherit nixvim openapi-tui zen-browser; # deleted hyprpanel
inherit nixvim openapi-tui;
};
modules = [
./home/fabric/default.nix
nixvim.homeManagerModules.nixvim
# hyprpanel.homeManagerModules.hyprpanel
nixvim.homeModules.nixvim
({pkgs, ...}: {
home.packages = [
fabric-dwl.packages.${pkgs.system}.default
];
})
];
};
};

View file

@ -1,6 +1,5 @@
{
nixvim,
zen-browser,
# hyprpanel,
pkgs,
pkgsUnstable,
@ -10,7 +9,8 @@
imports = [
# Import program configurations
./programs/git.nix
./programs/kitty.nix
# ./programs/kitty.nix
./programs/foot.nix
./programs/nixvim.nix
./programs/tmux.nix
./programs/zsh.nix
@ -18,12 +18,14 @@
./programs/yazi.nix
# Import desktop configurations
./desktop/hyprland.nix
./desktop/hyprpanel.nix
./desktop/hyprpaper.nix
./desktop/hypridle.nix
./desktop/desktop.nix
zen-browser.homeModules.beta
# ./desktop/hyprland.nix
# ./desktop/hyprpanel.nix
# ./desktop/river.nix
# ./desktop/hyprpaper.nix
# ./desktop/hypridle.nix
# ./desktop/desktop.nix
./desktop/waybar.nix
./desktop/mako.nix
];
# Home Manager needs a bit of information about you and the paths it should manage
@ -41,102 +43,44 @@
nixpkgs.config = {
allowUnfree = true;
};
programs.zen-browser.enable = true;
# Common packages used across your system
home.packages = with pkgs; [
git
lazygit
kitty
firefox
zen-browser
# kitty
# firefox
mpv
grim
slurp
wlsunset
newsraft
ghostty
wlr-randr
wmenu
foot
qutebrowser
ffmpeg
android-tools
wbg
emacs
ripgrep
fd
lsd
pulseaudio
nerd-fonts.dejavu-sans-mono
nerd-fonts.daddy-time-mono
nerd-fonts.d2coding
nerd-fonts.cousine
nerd-fonts.commit-mono
nerd-fonts.comic-shanns-mono
nerd-fonts.code-new-roman
nerd-fonts.caskaydia-mono
nerd-fonts.caskaydia-cove
nerd-fonts.blex-mono
nerd-fonts.bitstream-vera-sans-mono
nerd-fonts.bigblue-terminal
nerd-fonts.aurulent-sans-mono
nerd-fonts.arimo
nerd-fonts.anonymice
nerd-fonts.agave
nerd-fonts._3270
nerd-fonts._0xproto
nerd-fonts.zed-mono
nerd-fonts.victor-mono
nerd-fonts.ubuntu-sans
nerd-fonts.ubuntu-mono
nerd-fonts.ubuntu
nerd-fonts.tinos
nerd-fonts.terminess-ttf
nerd-fonts.symbols-only
nerd-fonts.space-mono
nerd-fonts.shure-tech-mono
nerd-fonts.sauce-code-pro
nerd-fonts.roboto-mono
nerd-fonts.recursive-mono
nerd-fonts.proggy-clean-tt
nerd-fonts.profont
nerd-fonts.overpass
nerd-fonts.open-dyslexic
nerd-fonts.noto
nerd-fonts.mononoki
nerd-fonts.monoid
nerd-fonts.monofur
nerd-fonts.monaspace
nerd-fonts.meslo-lg
nerd-fonts.martian-mono
nerd-fonts.lilex
nerd-fonts.liberation
nerd-fonts.lekton
nerd-fonts.jetbrains-mono
nerd-fonts.iosevka-term-slab
nerd-fonts.iosevka-term
nerd-fonts.iosevka
nerd-fonts.intone-mono
nerd-fonts.inconsolata-lgc
nerd-fonts.inconsolata-go
nerd-fonts.inconsolata
nerd-fonts.im-writing
nerd-fonts.hurmit
nerd-fonts.heavy-data
nerd-fonts.hasklug
nerd-fonts.hack
nerd-fonts.gohufont
nerd-fonts.go-mono
nerd-fonts.geist-mono
nerd-fonts.fira-mono
nerd-fonts.fira-code
nerd-fonts.fantasque-sans-mono
nerd-fonts.envy-code-r
nerd-fonts.droid-sans-mono
nerd-fonts.departure-mono
font-awesome
wl-clipboard
tmux
discord
fzf
zsh
pavucontrol
wofi
# hyprpanel
alejandra
rustup
zig
tmuxPlugins.sensible
tmuxPlugins.vim-tmux-navigator
tmuxPlugins.onedark-theme
@ -145,13 +89,10 @@
go
go-blueprint
gccgo14
hypridle
dprint
code-cursor
delve
ldtk
libresprite
gh
btop
leetgo
gnumake
@ -164,23 +105,15 @@
zola
unzip
hugo
sass
sshfs
tree-sitter
heroic
gimp3
p7zip
rar
nodePackages.localtunnel
typst
pnpm
nodejs_24
openssl
psmisc
air
pyfa
google-chrome
];
# Enable home-manager

View file

@ -0,0 +1,30 @@
{...}: {
services.mako = {
enable = true;
settings = {
"actionable=true" = {
anchor = "top-left";
};
actions = true;
anchor = "top-right";
background-color = "#393552";
text-color = "#e0def4";
border-color = "#56526e";
border-radius = 0;
default-timeout = 10000;
# font = "monospace 10";
height = 100;
icons = true;
ignore-timeout = false;
layer = "top";
margin = 10;
markup = true;
width = 300;
};
extraConfig = ''
progress-color=over #3e8fb0
[urgency=high]
border-color=#eb6f92
'';
};
}

View file

@ -0,0 +1,125 @@
{pkgs, ...}: {
programs.waybar = {
enable = true;
package = pkgs.waybar;
settings = {
mainBar = {
layer = "top";
position = "top";
height = 24;
modules-left = ["custom/wmenu"];
modules-right = ["cpu" "custom/cputemp" "temperature" "memory" "custom/gputemp" "battery" "network" "pulseaudio" "clock" "tray"];
temperature = {
format = "{temperature}°C";
};
battery = {
format = "󰁹 {capacity}%";
};
"custom/wmenu" = {
format = "";
on-click = "wmenu";
tooltip = false;
};
# "custom/fcitx" = {
# format = ""; # Nerd Font keyboard symbol
# tooltip = false;
# };
cpu = {
format = " CPU {usage}%";
};
memory = {
format = " RAM {used}Gib";
};
"custom/cputemp" = {
interval = 5;
exec = ''
# This script finds the line with "Tctl:" or "Package id 0:",
# prints the last field on that line (which is the temperature),
# and removes the extra characters. This is very reliable.
temp_str=$(sensors | grep -E 'Tctl:|Package id 0:' | awk '{print $NF}')
temp_val=$(echo "$temp_str" | tr -d '+°C')
if [ -n "$temp_val" ]; then
printf '{"text": "%.0f°C", "tooltip": "CPU Temperature: %.0f°C"}' "$temp_val" "$temp_val"
else
echo '{"text": "N/A"}'
fi
'';
"return-type" = "json";
format = "{}"; # The {} will be replaced by the "text" field
};
"custom/gputemp" = {
exec = "nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader";
interval = 5;
format = "󰢮 GPU Temp {}°C";
};
network = {
format-wifi = "󰤨 {signalStrength}%"; # nf-md-wifi
format-ethernet = "󰈀 Connected"; # nf-md-ethernet
format-disconnected = "󰤮 Disconnected"; # nf-md-wifi_off
tooltip-format = "{ifname} via {gwaddr} "; # nf-fa-server
on-click = "nm-connection-editor"; # Opens network manager on click
};
pulseaudio = {
format = "{icon} {volume}%";
format-muted = "󰸈 Muted"; # Using a dedicated mute icon (nf-md-volume_mute)
format-icons = {
headphone = "";
headset = "";
# A specific icon for when the audio is muted
muted = "󰸈";
# Icons for different volume levels (0-33%, 34-66%, 67-100%)
default = ["" "" ""]; # Low, Medium, High
};
tooltip-format = "{desc} | {volume}%";
on-click = "pavucontrol";
on-click-middle = "pactl set-sink-mute @DEFAULT_SINK@ toggle"; # Middle-click to mute/unmute
on-scroll-up = "pactl set-sink-volume @DEFAULT_SINK@ +5%";
on-scroll-down = "pactl set-sink-volume @DEFAULT_SINK@ -5%";
};
clock = {
format = "{:%H:%M}";
tooltip-format = "{:%A, %B %d, %Y}";
};
tray = {
spacing = 10;
};
};
};
style = ''
* {
font-family: monospace;
font-size: 12px;
padding: 0;
margin: 0;
}
window#waybar {
background: #232136;
color: #e0def4;
}
#custom-wmenu, #cpu, #memory, #custom-cputemp, #custom-gputemp, #clock, #pulseaudio, #network, #tray {
padding: 0 10px;
}
'';
};
# Ensure dependencies for Waybar and temperature scripts
home.packages = with pkgs; [
libappindicator-gtk3 # For systray support
lm_sensors # For CPU temperature
wmenu # Ensure wmenu is available
];
}

View file

@ -0,0 +1,51 @@
{...}: {
programs.foot = {
enable = true;
settings = {
# This is the main section, equivalent to [main] in foot.ini
main = {
font = "FiraMono Nerd Font Mono:size=12";
term = "foot";
dpi-aware = "yes"; # Use "yes" or "no", or boolean true/false
};
# Set scrollback buffer size
scrollback = {
lines = 5000;
};
# Hide the mouse cursor when typing
mouse = {
hide-when-typing = "yes";
};
# Color scheme (Catppuccin Macchiato from your kitty config)
# Equivalent to the [colors] section
colors = {
alpha = 0.80; # Set background opacity
background = "1E1E2E";
foreground = "CDD6F4";
## Normal/regular colors
regular0 = "45475A"; # black
regular1 = "F38BA8"; # red
regular2 = "A6E3A1"; # green
regular3 = "F9E2AF"; # yellow
regular4 = "89B4FA"; # blue
regular5 = "F5C2E7"; # magenta
regular6 = "94E2D5"; # cyan
regular7 = "BAC2DE"; # white
## Bright colors
bright0 = "585B70"; # bright black
bright1 = "F38BA8"; # bright red
bright2 = "A6E3A1"; # bright green
bright3 = "F9E2AF"; # bright yellow
bright4 = "89B4FA"; # bright blue
bright5 = "F5C2E7"; # bright magenta
bright6 = "94E2D5"; # bright cyan
bright7 = "A6ADC8"; # bright white
};
};
};
}

View file

@ -7,7 +7,6 @@
update_in_insert = true;
severity_sort = true;
# NOTE: Opt-in with 0.11
virtual_text = {
enable = true;
severity.min = "warn";
@ -111,7 +110,9 @@
web-devicons.enable = true;
nix.enable = true;
bufferline.enable = false;
lualine.enable = true;
lualine = {
enable = false;
};
luasnip.enable = true;
yanky = {
enable = true;
@ -338,6 +339,7 @@
};
servers = {
clangd.enable = true;
ts_ls.enable = true;
eslint.enable = true;
templ.enable = true;
@ -375,6 +377,9 @@
};
};
};
elixirls = {
enable = true;
};
rust_analyzer = {
enable = true;
installCargo = true;
@ -389,6 +394,9 @@
};
};
};
zls = {
enable = true;
};
};
};
cmp = {
@ -422,6 +430,30 @@
extraPlugins = [
];
extraConfigLua = ''
vim.cmd [[
highlight Normal guibg=none
highlight Normal ctermbg=none
highlight NonText guibg=none
highlight NonText ctermbg=none
highlight NormalFloat guibg=none
highlight NormalFloat ctermbg=none
highlight FloatBorder guibg=none
highlight FloatBorder ctermbg=none
highlight Pmenu guibg=none
highlight Pmenu ctermbg=none
highlight PmenuSel guibg=none
highlight PmenuSel ctermbg=none
highlight TelescopeNormal guibg=none
highlight TelescopeNormal ctermbg=none
highlight TelescopeBorder guibg=none
highlight TelescopeBorder ctermbg=none
highlight TermNormal guibg=none
highlight TermNormal ctermbg=none
highlight TermFloat guibg=none
highlight TermFloat ctermbg=none
highlight SignColumn guibg=none
]]
vim.filetype.add({
extension = {
ldtk = "json",
@ -447,6 +479,7 @@
'';
globals.mapleader = " ";
opts = {
laststatus = 0;
relativenumber = true;
number = true;
tabstop = 2;
@ -612,6 +645,11 @@
key = "<leader>p";
action = "\"_dP";
}
{
action = "<cmd>LspStop<CR>";
key = "<leader>ls";
mode = ["n"];
}
];
colorschemes.rose-pine.enable = true;
};

View file

@ -1,14 +1,9 @@
# home/fabric/programs/tmux.nix
{
config,
pkgs,
...
}: {
{pkgs, ...}: {
programs.tmux = {
enable = true;
plugins = with pkgs.tmuxPlugins; [
sensible
onedark-theme
vim-tmux-navigator
];
@ -19,14 +14,46 @@
# Custom key bindings
extraConfig = ''
# Set pane base index
setw -g pane-base-index 1
# Vi copy mode bindings
bind-key -T copy-mode-vi v send-keys -X begin-selection
bind-key -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "wl-copy"
bind-key P paste-buffer
bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "wl-copy"
set-option -g status-position top
set -g status-style 'fg=#CDD6F4,bg=default'
set -g status-justify centre # Center the window list
# Remove anything from the left side
set -g status-left ' '
# --- WINDOW LIST (CENTERED) ---
# Set the style for the active window
# We use a bright blue from your theme and make it bold
setw -g window-status-current-style 'fg=#89B4FA,bold'
# Format for the active window, using a Nerd Font icon
setw -g window-status-current-format ' #I-#W '
# Set the style for inactive windows
# We use a muted gray color from your theme
setw -g window-status-style 'fg=#585B70'
# Format for inactive windows, using a different Nerd Font icon
setw -g window-status-format ' #I-#W '
# --- RIGHT SIDE ---
# Set the content for the right side of the status bar
# 󰒋 is a Nerd Font icon for a computer/host
# #H is the placeholder for the hostname
set -g status-right ' 󰒋 #H '
# Set the max length for the right status bar
set -g status-right-length 40
'';
};
}

View file

@ -22,6 +22,7 @@
export PATH="/home/fabric/.local/lib/bin:$PATH"
export PATH=$PATH:(go env GOPATH)/bin
export PATH="/home/fabric/.cargo/bin:$PATH"
export PATH="/home/fabric/.config/emacs/bin:$PATH"
GOPATH=$HOME/go
PATH=$PATH:/usr/local/go/bin:$GOPATH/bin
PATH="$HOME/.govm/shim:$PATH"
@ -32,6 +33,9 @@
alias gmt="go mod tidy"
alias gmi="go mod init"
alias flake="nix flake"
alias ls="lsd"
alias ll="lsd -l"
alias emacs="emacs -nw"
function y() {
local tmp="$(mktemp -t "yazi-cwd.XXXXXX")" cwd
yazi "$@" --cwd-file="$tmp"
@ -50,10 +54,206 @@
};
};
oh-my-posh = {
starship = {
enable = true;
enableZshIntegration = true;
useTheme = "easy-term";
settings = {
format = ''
$username$hostname$locali$shlvl$singularity$kubernetes$directory$vcsh$fossil_branch$fossil_metrics$git_branch$git_commit$git_state$git_metrics$git_status$hg_branch$pijul_channel$docker_context$package$c$cmake$cobol$daml$dart$deno$dotnet$elixir$elm$erlang$fennel$gleam$golang$guix_shell$haskell$haxe$helm$java$julia$kotlin$gradle$lua$nim$nodejs$ocaml$opa$perl$php$pulumi$purescript$python$quarto$raku$rlang$red$ruby$rust$scala$solidity$swift$terraform$typst$vlang$vagrant$zig$buf$nix_shell$conda$meson$spack$memory_usage$aws$gcloud$openstack$azure$nats$direnv$env_var$mise$crystal$custom$sudo$cmd_duration$line_break$jobs$battery$time$status$os$container$netns$shell$character
'';
aws = {
symbol = " ";
};
buf = {
symbol = " ";
};
bun = {
symbol = " ";
};
c = {
symbol = " ";
};
cpp = {
symbol = " ";
};
cmake = {
symbol = " ";
};
conda = {
symbol = " ";
};
crystal = {
symbol = " ";
};
dart = {
symbol = " ";
};
deno = {
symbol = " ";
};
directory = {
read_only = " 󰌾";
};
docker_context = {
symbol = " ";
};
elixir = {
symbol = " ";
};
elm = {
symbol = " ";
};
fennel = {
symbol = " ";
};
fossil_branch = {
symbol = " ";
};
gcloud = {
symbol = " ";
};
git_branch = {
symbol = " ";
};
git_commit = {
tag_symbol = " ";
};
golang = {
symbol = " ";
};
guix_shell = {
symbol = " ";
};
haskell = {
symbol = " ";
};
haxe = {
symbol = " ";
};
hg_branch = {
symbol = " ";
};
hostname = {
ssh_symbol = " ";
};
java = {
symbol = " ";
};
julia = {
symbol = " ";
};
kotlin = {
symbol = " ";
};
lua = {
symbol = " ";
};
memory_usage = {
symbol = "󰍛 ";
};
meson = {
symbol = "󰔷 ";
};
nim = {
symbol = "󰆥 ";
};
nix_shell = {
symbol = " ";
};
nodejs = {
symbol = " ";
};
ocaml = {
symbol = " ";
};
os.symbols = {
Alpaquita = " ";
Alpine = " ";
AlmaLinux = " ";
Amazon = " ";
Android = " ";
Arch = " ";
Artix = " ";
CachyOS = " ";
CentOS = " ";
Debian = " ";
DragonFly = " ";
Emscripten = " ";
EndeavourOS = " ";
Fedora = " ";
FreeBSD = " ";
Garuda = "󰛓 ";
Gentoo = " ";
HardenedBSD = "󰞌 ";
Illumos = "󰈸 ";
Kali = " ";
Linux = " ";
Mabox = " ";
Macos = " ";
Manjaro = " ";
Mariner = " ";
MidnightBSD = " ";
Mint = " ";
NetBSD = " ";
NixOS = " ";
Nobara = " ";
OpenBSD = "󰈺 ";
openSUSE = " ";
OracleLinux = "󰌷 ";
Pop = " ";
Raspbian = " ";
Redhat = " ";
RedHatEnterprise = " ";
RockyLinux = " ";
Redox = "󰀘 ";
Solus = "󰠳 ";
SUSE = " ";
Ubuntu = " ";
Unknown = " ";
Void = " ";
Windows = "󰍲 ";
};
package = {
symbol = "󰏗 ";
};
perl = {
symbol = " ";
};
php = {
symbol = " ";
};
pijul_channel = {
symbol = " ";
};
pixi = {
symbol = "󰏗 ";
};
python = {
symbol = " ";
};
rlang = {
symbol = "󰟔 ";
};
ruby = {
symbol = " ";
};
rust = {
symbol = "󱘗 ";
};
scala = {
symbol = " ";
};
swift = {
symbol = " ";
};
zig = {
symbol = " ";
};
gradle = {
symbol = " ";
};
};
};
};
}

View file

@ -37,7 +37,7 @@
enable = true;
settings = {
default_session = {
command = "''${pkgs.greetd.tuigreet}/bin/tuigreet --time ";
command = "''${pkgs.greetd.tuigreet}/bin/tuigreet --time";
user = "fabric";
};
};
@ -51,4 +51,11 @@
# This value determines the NixOS release version
system.stateVersion = "25.05";
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
pulse.enable = true; # <-- This is the crucial part
};
}

View file

@ -0,0 +1,11 @@
{...}: {
services.kmonad = {
enable = true;
keyboards = {
myKMonadOutput = {
device = "/dev/input/event0";
config = builtins.readFile ../../../files/keyboard.kbd;
};
};
};
}

70
hosts/solaris/default.nix Normal file
View file

@ -0,0 +1,70 @@
# hosts/solaris/default.nix
{
config,
lib,
pkgs,
...
}: {
imports = [
# Hardware configuration
./hardware-configuration.nix
# Common configurations
../common/global
../common/optional/fcitx5.nix
../common/optional/bluetooth.nix
../common/optional/kmonad.nix
];
# Bootloader
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
boot.supportedFilesystems = ["nfs"];
# Networking
networking = {
hostName = "solaris";
networkmanager.enable = true;
useDHCP = lib.mkDefault true;
};
# User configuration
users.users.fabric = {
isNormalUser = true;
description = "fabric";
extraGroups = ["networkmanager" "wheel" "docker"];
shell = pkgs.zsh;
};
services.rpcbind.enable = true;
fileSystems."/home/fabric/nas" = {
device = "tatara:/nas";
fsType = "nfs";
options = [
"x-systemd.automount"
"noauto"
"x-systemd.idle-timeout=60"
"x-systemd.device-timeout=5"
"x-systemd.mount-timeout=5"
"nfsvers=4" # Use NFSv4
"hard" # Hard mount (recommended)
"intr" # Allow interruption
"rsize=8192" # Read size
"wsize=8192" # Write size
];
};
# Display manager configuration
services.displayManager.defaultSession = "dwl";
# Basic system packages
environment.systemPackages = with pkgs; [
libinput
libnotify
foot
usbutils
ntfs3g
];
}

View file

@ -0,0 +1,41 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "xhci_pci" "ehci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" "sdhci_pci" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/cd452eaf-7765-4bc2-b5dd-a846c47701e8";
fsType = "ext4";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/6026-C63E";
fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ];
};
swapDevices =
[ { device = "/dev/disk/by-uuid/1cc175bd-0071-4d76-a8a6-ae483ca56aac"; }
];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.enp0s25.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp3s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

View file

@ -10,12 +10,12 @@
./hardware-configuration.nix
# Common configurations
../common/optional/plasma.nix
# ../common/optional/plasma.nix
../common/global
../common/optional/nvidia.nix
../common/optional/docker.nix
../common/optional/steam.nix
../common/optional/flatpak.nix
# ../common/optional/flatpak.nix
../common/optional/fcitx5.nix
../common/optional/bluetooth.nix
../common/optional/sunshine.nix
@ -37,7 +37,7 @@
users.users.fabric = {
isNormalUser = true;
description = "fabric";
extraGroups = ["networkmanager" "wheel" "docker"];
extraGroups = ["networkmanager" "wheel" "docker" "video"];
shell = pkgs.zsh;
};
@ -68,9 +68,7 @@
};
# Display manager configuration
services.displayManager.defaultSession = "hyprland";
programs.hyprland.enable = true;
services.displayManager.defaultSession = "dwl";
# Basic system packages
environment.systemPackages = with pkgs; [

View file

@ -14,7 +14,11 @@
boot.initrd.availableKernelModules = ["nvme" "xhci_pci" "ahci" "thunderbolt" "usb_storage" "usbhid" "sd_mod"];
boot.initrd.kernelModules = [];
boot.kernelModules = ["kvm-amd"];
boot.kernelModules = ["kvm-amd" "v4l2loopback"];
boot.extraModulePackages = with config.boot.kernelPackages; [
v4l2loopback
];
hardware.enableRedistributableFirmware = true;