-{ config, pkgs, ... }:
-
{
-
+ config,
+ pkgs,
+ ...
+}: {
imports = [
./binds.nix
];
enable = true;
systemd.enable = false;
settings = {
-env = [
- "EDITOR,nvim"
- "VISUAL,nvim"
- "HYPRCURSOR_THEME,Bibata-Original-Classic"
- "HYPRCURSOR_SIZE,24"
-];
+ env = [
+ "EDITOR,nvim"
+ "VISUAL,nvim"
+ "HYPRCURSOR_THEME,Bibata-Original-Classic"
+ "HYPRCURSOR_SIZE,24"
+ ];
monitor = [
"DP-3,2560x1440@180.00,0x0,1"
"DP-2,1920x1080@165.00,2560x360,1"
kb_options = "caps:escape,altwin:swap_lalt_lwin";
numlock_by_default = true;
-
};
workspace = [
- "1, monitor:DP-3" # term
- "2, monitor:DP-2" # browser
- "3, monitor:DP-3" # music
- "4, monitor:DP-2" # discord
- "5, monitor:DP-3" # games
- "6, monitor:DP-2" # password manager
+ "1, monitor:DP-3"
+ "2, monitor:DP-2"
+ "3, monitor:DP-3"
+ "4, monitor:DP-2"
+ "5, monitor:DP-3"
+ "6, monitor:DP-2"
"7, monitor:DP-2"
- "8, monitor:DP-2" # steam
- "9, monitor:DP-3" # notes
+ "8, monitor:DP-2"
+ "9, monitor:DP-3"
"10, monitor:DP-2"
- "w[tv1], gapsout:0, gapsin:0"
- "f[1], gapsout:0, gapsin:0"
+ "w[tv1], gapsout:0, gapsin:0"
+ "f[1], gapsout:0, gapsin:0"
];
exec-once = [
"xrandr --output DP-3 --primary"
- "uwsm app -- waybar"
+ "uwsm app -- waybar"
"[workspace 1 silent] uwsm app -- ghostty"
"[workspace 2 silent] uwsm app -- brave"
- "[workspace 3 silent] uwsm app -- ghostty -e fish -c rmpc"
- "[workspace 4 silent] uwsm app -- discord"
- "[workspace 6 silent] uwsm app -- keepassxc"
- "[workspace 8 silent] uwsm app -- steam"
- "[workspace 9 silent] uwsm app -- obsidian"
+ #"[workspace 3 silent] uwsm app -- ghostty -e fish -c rmpc"
+ "[workspace 3 silent] uwsm app -- discord"
+ "[workspace 4 silent] uwsm app -- keepassxc"
+ #"[workspace 8 silent] uwsm app -- steam"
+ #"[workspace 9 silent] uwsm app -- obsidian"
];
windowrule = [
- "workspace 4 silent, class:(discord)"
- "workspace 8 silent, class:(steam)"
- "workspace 8 silent, class:(steam)"
-
+ "workspace 3 silent, class:(discord)"
+ "workspace 6 silent, class:(steam)"
-
- "bordersize 0, floating:0, onworkspace:w[tv1]"
- "rounding 0, floating:0, onworkspace:w[tv1]"
- "bordersize 0, floating:0, onworkspace:f[1]"
- "rounding 0, floating:0, onworkspace:f[1]"
+ "bordersize 0, floating:0, onworkspace:w[tv1]"
+ "rounding 0, floating:0, onworkspace:w[tv1]"
+ "bordersize 0, floating:0, onworkspace:f[1]"
+ "rounding 0, floating:0, onworkspace:f[1]"
];
-
-
};
};
-
}
lib,
pkgs,
...
-}:
-let
+}: let
myAliases = {
ll = "ls -l";
".." = "cd ..";
rev = "0ce27b518e8ead555dec34dd8be3df5bd75cff8e";
hash = "sha256-Dc/zdxfzAUM5NX8PxzfljRbYvO9f9syuLO8yBr+R3qg=";
};
-in
-{
+in {
programs.bash = {
enable = true;
shellAliases = myAliases;
theme = "";
};
initContent = ''
- # Powerlevel10k configuration
- source ${pkgs.zsh-powerlevel10k}/share/zsh-powerlevel10k/powerlevel10k.zsh-theme
- source ${./.p10k.zsh}
- # Initialize zoxide
- eval "$(zoxide init zsh)"
+ # Powerlevel10k configuration
+ source ${pkgs.zsh-powerlevel10k}/share/zsh-powerlevel10k/powerlevel10k.zsh-theme
+ source ${./.p10k.zsh}
+ # Initialize zoxide
+ eval "$(zoxide init zsh)"
- # Initialize fzf
- source <(fzf --zsh)
+ # Initialize fzf
+ source <(fzf --zsh)
- # Source fzf-tab (needs to be after fzf)
- source ${pkgs.zsh-fzf-tab}/share/fzf-tab/fzf-tab.plugin.zsh
+ # Source fzf-tab (needs to be after fzf)
+ source ${pkgs.zsh-fzf-tab}/share/fzf-tab/fzf-tab.plugin.zsh
- # Custom aliases
- alias ll="ls -la"
- alias gs="git status"
+ # Custom aliases
+ alias ll="ls -la"
+ alias gs="git status"
- bindkey '^ ' autosuggest-execute
+ bindkey '^ ' autosuggest-execute
'';
};
gs = "git status";
};
shellAliases = {
- tms = "bash ~/.config/tmux/setup-sessions.sh";
+ #tms = "bash ~/.config/tmux/setup-sessions.sh";
};
interactiveShellInit = ''
fish_vi_key_bindings
zoxide init fish | source
fzf --fish | source
starship init fish | source
- set -gx EDITOR nvim
- set -gx VISUAL nvim
- '';
+ set -gx EDITOR nvim
+ set -gx VISUAL nvim
+ '';
};
# hodgepodge of these two themes:https://starship.rs/presets/catppuccin-powerline, https://starship.rs/presets/tokyo-night
home.file.".config/starship.toml".text = ''
format = """
[](fg:#a3aed2)\
- $username\
+ $username\
[](bg:#769ff0 fg:#a3aed2)\
$directory\
[](fg:#769ff0 bg:#394260)\
base = "#1e1e2e"
mantle = "#181825"
crust = "#11111b"
- '';
+ '';
}
}
];
extraConfig = ''
- # Basic settings for usability
- set -g mouse on
- set -g base-index 1
- set -g pane-base-index 1
- set -g status-style bg=black,fg=cyan
- set -g prefix C-a
- unbind C-b
- bind C-a send-prefix
+ # Basic settings for usability
+ set -g mouse on
+ set -g base-index 1
+ set -g pane-base-index 1
+ set -g status-style bg=black,fg=cyan
+ set -g prefix C-a
+ unbind C-b
+ bind C-a send-prefix
- set -g default-terminal "screen-256color"
- set -ga terminal-overrides ",xterm-256color:Tc"
+ # bind-key -r d new-session -s dev
+ # bind-key -r m new-session -s music
+ # bind-key -r n new-session -s nixos
- # Keybindings for easier navigation
- bind -n C-h select-pane -L
- bind -n C-j select-pane -D
- bind -n C-k select-pane -U
- bind -n C-l select-pane -R
+ # Fish-friendly clipboard integration
+ set -g set-clipboard on
+ bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "xclip -in -selection clipboard"
- bind-key -r d new-session -s dev
- bind-key -r m new-session -s music
- bind-key -r n new-session -s nixos
-
- # Fish-friendly clipboard integration
- set -g set-clipboard on
- bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "xclip -in -selection clipboard"
-
- # Session initialization script
- set -g @tmux-resurrect-restore-script '${config.home.homeDirectory}/.config/tmux/setup-sessions.sh'
+ # Session initialization script
+ set -g @tmux-resurrect-restore-script '${config.home.homeDirectory}/.config/tmux/setup-sessions.sh'
'';
};
];
# Create session setup script
- home.file.".config/tmux/setup-sessions.sh" = {
- executable = true;
- text = ''
- #!/usr/bin/env bash
-
- # Ensure tmux is running
- if ! tmux has-session 2>/dev/null; then
- # Dev session: terminal with Fish
- tmux new-session -d -s dev -c $HOME
- tmux send-keys -t dev:1 "fish" C-m
-
- # Music session: rmpc
- tmux new-session -d -s music -c $HOME
- tmux send-keys -t music:1 "rmpc" C-m
-
- # NixOS config session: open ~/.dotfiles/nixos with Neovim
- tmux new-session -d -s nixos -c $HOME/.dotfiles/nixos
- tmux send-keys -t nixos:1 "nvim ." C-m
- fi
-
- # Attach to dev session by default
- tmux attach-session -t dev
- '';
- };
+ # home.file = {
+ # ".config/tmux/setup-sessions.sh" = {
+ # executable = true;
+ # };
+ #};
}
-{ config, pkgs, ... }:
{
+ config,
+ pkgs,
+ ...
+}: let
+ icons = {
+ "1" = "";
+ "2" = "";
+ "3" = "";
+ "4" = "";
+ "5" = "";
+ "6" = "";
+ "7" = "7";
+ "8" = "8";
+ "9" = "9";
+ "0" = "0";
+ };
+in {
programs.waybar = {
enable = true;
settings = [
{
- output = [ "DP-3" ];
+ output = ["DP-3"];
#height = 24; # Waybar height
spacing = 4; # Gaps between modules
fixed-center = true;
enable-bar-scroll = true;
disable-scroll-wraparound = true;
format = "{icon}";
- format-icons = {
- "1" = "";
- "2" = "";
- "3" = "";
- "4" = "";
- "5" = "";
- "6" = "";
- "7" = "7";
- "8" = "";
- "9" = "";
- "10" = "10";
- };
+ format-icons = icons;
};
"hyprland/window" = {
"title"
"artist"
];
- ignored-players = [ "brave" ];
+ ignored-players = ["brave"];
status-icons = {
playing = "▶";
paused = "⏸";
# Bar for DP-2 only
{
- output = [ "DP-2" ];
+ output = ["DP-2"];
#height = 24;
spacing = 4;
"hyprland/window"
];
- modules-center = [ ];
- modules-right = [ "clock" ];
+ modules-center = [];
+ modules-right = ["clock"];
"hyprland/workspaces" = {
all-outputs = true;
warp-on-scroll = true;
enable-bar-scroll = true;
format = "{icon}";
- format-icons = {
- "1" = "";
- "2" = "";
- "3" = "";
- "4" = "";
- "5" = "";
- "6" = "";
- "7" = "7";
- "8" = "";
- "9" = "";
- "10" = "10";
- };
+ format-icons = icons;
};
"hyprland/window" = {