Added unused ai application group, btop, better hyprtop and hypridle, automatic nix garbage collection, and un-deduplicated hyprland configs

This commit is contained in:
2025-07-01 02:20:40 -07:00
parent 6216d108a9
commit 366d238141
8 changed files with 533 additions and 2 deletions

4
README.md Normal file
View File

@@ -0,0 +1,4 @@
# nixos-configs
## Misc references used
* https://github.com/XNM1/linux-nixos-hyprland-config-dotfiles/tree/main

View File

@@ -0,0 +1,39 @@
{ pkgs, config, ... }:
{
services.ollama = {
enable = true;
loadModels = [
"llama3.2:3b"
"phi4-reasoning:14b"
"dolphin3:8b"
"smallthinker:3b"
"gemma3:4b"
"gemma3:12b"
"gemma3:27b"
"deepcoder:14b"
"qwen3:14b"
"nomic-embed-text"
];
acceleration = "cuda";
};
services.open-webui = {
enable = true;
port = 8888;
host = "127.0.0.1";
};
environment.systemPackages = with pkgs; [
oterm
alpaca
aichat
fabric-ai
aider-chat
# tgpt
# smartcat
# nextjs-ollama-llm-ui
# open-webui
];
}

View File

@@ -20,6 +20,7 @@
services.hardware.openrgb.enable = true;
environment.systemPackages = with pkgs; [
btop
desktop-file-utils
dnsutils
ffmpeg-full

View File

@@ -22,6 +22,9 @@
xdg.portal.enable = true;
xdg.portal.extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
programs.hyprlock.enable = true;
services.hypridle.enable = true;
environment.systemPackages = with pkgs; [
waybar
dunst
@@ -39,8 +42,6 @@
swayimg
hyprpicker
kanshi
hyprlock
swayidle
mako
(pkgs.waybar.overrideAttrs (oldAttrs: {

View File

@@ -12,6 +12,14 @@
# Generally want a larger download buffer
nix.settings.download-buffer-size = 524288000;
nix.settings.auto-optimise-store = true;
nix.optimise.automatic = true;
nix.gc = {
automatic = true;
dates = "weekly";
options = "--delete-older-than 14d";
};
programs.bash.shellAliases = {
nixrebuild = "pushd /etc/nixos && { trap 'popd' EXIT; sudo nixos-rebuild switch --flake .#$(hostname); }";
nixupdate = "cd /etc/nixos && sudo nix flake update && sudo nixos-rebuild switch --flake .#$(hostname)";

View File

@@ -1,5 +1,6 @@
{ config, pkgs, ... }:
let
hyprlandConfigPath = ./. + "/dotfiles/hyprland/${config.networking.hostName}";
kanshiConfigPath = ./. + "/dotfiles/kanshi/${config.networking.hostName}";
spotifyPlayerAppTomlTextTemplate = builtins.readFile ./dotfiles/spotify-player/app.toml;
spotifyPlayerAppTomlText = builtins.replaceStrings [ "{{hostname}}" ] [ config.networking.hostName ] spotifyPlayerAppTomlTextTemplate;
@@ -34,6 +35,7 @@ in
userEmail = "caperren@gmail.com";
};
home.file.".config/hypr/hyprland.conf".source = hyprlandConfigPath + "/hyprland.conf";
home.file.".config/kanshi/config".source = kanshiConfigPath + "/config";
home.file.".config/spotify-player/app.toml".text = spotifyPlayerAppTomlText;
home.file.".config/waybar/config".source = waybarConfigPath + "/config";

View File

@@ -0,0 +1,232 @@
# #######################################################################################
# AUTOGENERATED HYPR CONFIG.
# PLEASE USE THE CONFIG PROVIDED IN THE GIT REPO /examples/hypr.conf AND EDIT IT,
# OR EDIT THIS ONE ACCORDING TO THE WIKI INSTRUCTIONS.
# #######################################################################################
#
# Please note not all available settings / options are set here.
# For a full list, see the wiki
#
# autogenerated = 1 # remove this line to remove the warning
# See https://wiki.hyprland.org/Configuring/Monitors/
#monitor=HDMA-A-1,2560x1440@60,
#monitor=DP-3,2560x1440@60,0x-1440,1
monitor=DP-2,3440x1440@144,auto,1,vrr,1
#monitor=HDMI-A-1,2160x1440@60,640x1440,1
#monitor=Unknown-2,2160x1440@60,950x1440,1
#monitor=,preferred,auto,1
#exec-once = xrandr --output DP-2 --primary
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
# Source a file (multi-file configs)
# source = ~/.config/hypr/myColors.conf
# Set programs that you use
$terminal = kitty
$fileManager = thunar
$menu = wofi --show drun
# Some default env vars.
env = XCURSOR_SIZE,24
env = QT_QPA_PLATFORMTHEME,qt5ct # change to qt6ct if you have that
# For all categories, see https://wiki.hyprland.org/Configuring/Variables/
input {
kb_layout = us
kb_variant =
kb_model =
kb_options =
kb_rules =
follow_mouse = 1
touchpad {
natural_scroll = no
}
sensitivity = 0 # -1.0 to 1.0, 0 means no modification.
numlock_by_default = 1
}
general {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
gaps_in = 5
gaps_out = 5
border_size = 2
col.active_border = rgba(0D8A1EFF)
col.inactive_border = rgba(595959aa)
layout = dwindle
# Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
allow_tearing = true
}
decoration {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
rounding = 10
blur {
enabled = true
size = 3
passes = 1
}
shadow {
enabled = true
range = 4
render_power = 3
color = rgba(1a1a1aee)
}
#drop_shadow = yes
#shadow_range = 4
#shadow_render_power = 3
}
animations {
enabled = yes
# Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
bezier = myBezier, 0.05, 0.9, 0.1, 1.05
animation = windows, 1, 7, myBezier
animation = windowsOut, 1, 7, default, popin 80%
animation = border, 1, 10, default
animation = borderangle, 1, 8, default
animation = fade, 1, 7, default
animation = workspaces, 1, 6, default
}
dwindle {
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
preserve_split = yes # you probably want this
}
#master {
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
# new_is_master = true
#}
gestures {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
workspace_swipe = off
}
misc {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
force_default_wallpaper = 1 # Set to 0 or 1 to disable the anime mascot wallpapers
}
# Example per-device config
# See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more
device {
name = epic-mouse-v1
sensitivity = -0.5
}
# Example windowrule v1
# windowrule = float, ^(kitty)$
# Example windowrule v2
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
windowrulev2 = suppressevent maximize, class:.* # You'll probably like this.
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
$mainMod = SUPER
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
bind = $mainMod, T, exec, $terminal
bind = $mainMod, C, killactive,
# Launch terminal
bind = SHIFT_SUPER, Return, exec, $terminal
# Close active window
bind = $mainMod, Shift+q, killactive,
bind = $mainMod, M, exit,
bind = $mainMod, E, exec, $fileManager
bind = $mainMod, V, togglefloating,
bind = $mainMod, R, exec, $menu
bind = $mainMod, P, pseudo, # dwindle
bind = $mainMod, J, togglesplit, # dwindle
bind = $mainMod, F, fullscreen
# Move focus with mainMod + arrow keys
bind = $mainMod, left, movefocus, l
bind = $mainMod, right, movefocus, r
bind = $mainMod, up, movefocus, u
bind = $mainMod, down, movefocus, d
# Switch workspaces with mainMod + [0-9]
bind = $mainMod, 1, workspace, 1
bind = $mainMod, 2, workspace, 2
bind = $mainMod, 3, workspace, 3
bind = $mainMod, 4, workspace, 4
bind = $mainMod, 5, workspace, 5
bind = $mainMod, 6, workspace, 6
bind = $mainMod, 7, workspace, 7
bind = $mainMod, 8, workspace, 8
bind = $mainMod, 9, workspace, 9
bind = $mainMod, 0, workspace, 10
# Move active window to a workspace with mainMod + SHIFT + [0-9]
bind = $mainMod SHIFT, 1, movetoworkspace, 1
bind = $mainMod SHIFT, 2, movetoworkspace, 2
bind = $mainMod SHIFT, 3, movetoworkspace, 3
bind = $mainMod SHIFT, 4, movetoworkspace, 4
bind = $mainMod SHIFT, 5, movetoworkspace, 5
bind = $mainMod SHIFT, 6, movetoworkspace, 6
bind = $mainMod SHIFT, 7, movetoworkspace, 7
bind = $mainMod SHIFT, 8, movetoworkspace, 8
bind = $mainMod SHIFT, 9, movetoworkspace, 9
bind = $mainMod SHIFT, 0, movetoworkspace, 10
# Example special workspace (scratchpad)
bind = $mainMod, S, togglespecialworkspace, magic
bind = $mainMod SHIFT, S, movetoworkspace, special:magic
# Scroll through existing workspaces with mainMod + scroll
bind = $mainMod, mouse_down, workspace, e+1
bind = $mainMod, mouse_up, workspace, e-1
# Move/resize windows with mainMod + LMB/RMB and dragging
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow
# Volume Keys
bindl=, XF86AudioRaiseVolume, exec, wpctl set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 2%+
bindl=, XF86AudioLowerVolume, exec, wpctl set-volume -l 0.0 @DEFAULT_AUDIO_SINK@ 2%-
bindl=, XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
# Media Controls
bindl=, XF86AudioPlay, exec, playerctl play-pause
bindl=, XF86AudioPrev, exec, playerctl previous
bindl=, XF86AudioNext, exec, playerctl next
# Brightness Controls
bind = ,XF86MonBrightnessDown, exec, brightnessctl s 1%-
bind = ,XF86MonBrightnessUp, exec, brightnessctl s +1%
exec-once = sleep 3 && waybar
exec-once = sleep 5 && nm-applet
exec-once = sleep 5 && blueman-applet
exec-once = sleep 10 && steam -silent
exec-once = ydotoold &
exec-once = sleep 5 && streamdeck -n
exec-once = kanshi &
exec-once = sleep 5 & telegram-desktop -startintray
; exec-once = swayidle -w timeout 600 "hyprlock" before-sleep "hyprlock" &

View File

@@ -0,0 +1,244 @@
# #######################################################################################
# AUTOGENERATED HYPR CONFIG.
# PLEASE USE THE CONFIG PROVIDED IN THE GIT REPO /examples/hypr.conf AND EDIT IT,
# OR EDIT THIS ONE ACCORDING TO THE WIKI INSTRUCTIONS.
# #######################################################################################
#
# Please note not all available settings / options are set here.
# For a full list, see the wiki
#
# autogenerated = 1 # remove this line to remove the warning
# See https://wiki.hyprland.org/Configuring/Monitors/
#monitor=HDMA-A-1,2560x1440@60,
#monitor=DP-3,2560x1440@60,0x-1440,1
#monitor=DP-2,3440x1440@144,0x0,1
# ,vrr,1
#monitor=HDMI-A-1,2160x1440@60,640x1440,1
#monitor=HDMI-A-1,3840x2160@60,-3840x0,1
#monitor=Unknown-2,2160x1440@60,950x1440,1
monitor=,preferred,auto,1
# monitor=DP-1,preferred,auto-down,1,transform, 1
monitor=DP-2,preferred,auto-down,1
#exec-once = xrandr --output DP-2 --primary
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
# Source a file (multi-file configs)
# source = ~/.config/hypr/myColors.conf
# Set programs that you use
$terminal = kitty
$fileManager = dolphin
$menu = wofi --show drun
# Some default env vars.
env = XCURSOR_SIZE,24
env = QT_QPA_PLATFORMTHEME,qt5ct # change to qt6ct if you have that
# For all categories, see https://wiki.hyprland.org/Configuring/Variables/
input {
kb_layout = us
kb_variant =
kb_model =
kb_options =
kb_rules =
follow_mouse = 1
touchpad {
natural_scroll = no
}
sensitivity = 0 # -1.0 to 1.0, 0 means no modification.
numlock_by_default = 1
}
general {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
gaps_in = 5
gaps_out = 5
border_size = 2
col.active_border = rgba(0D8A1EFF)
col.inactive_border = rgba(595959aa)
layout = dwindle
# Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
allow_tearing = true
}
decoration {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
rounding = 10
blur {
enabled = true
size = 3
passes = 1
}
shadow {
enabled = true
range = 4
render_power = 3
color = rgba(1a1a1aee)
}
#drop_shadow = yes
#shadow_range = 4
#shadow_render_power = 3
}
animations {
enabled = yes
# Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
bezier = myBezier, 0.05, 0.9, 0.1, 1.05
animation = windows, 1, 7, myBezier
animation = windowsOut, 1, 7, default, popin 80%
animation = border, 1, 10, default
animation = borderangle, 1, 8, default
animation = fade, 1, 7, default
animation = workspaces, 1, 6, default
}
dwindle {
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
preserve_split = yes # you probably want this
}
#master {
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
# new_is_master = true
#}
gestures {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
workspace_swipe = off
}
misc {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
force_default_wallpaper = 1 # Set to 0 or 1 to disable the anime mascot wallpapers
}
# Example per-device config
# See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more
device {
name = epic-mouse-v1
sensitivity = -0.5
}
# Example windowrule v1
# windowrule = float, ^(kitty)$
# Example windowrule v2
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
windowrulev2 = suppressevent maximize, class:.* # You'll probably like this.
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
$mainMod = SUPER
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
bind = $mainMod, T, exec, $terminal
bind = $mainMod, C, killactive,
# Launch terminal
bind = SHIFT_SUPER, Return, exec, $terminal
# Close active window
bind = $mainMod, Shift+q, killactive,
bind = $mainMod, M, exit,
bind = $mainMod, E, exec, $fileManager
bind = $mainMod, V, togglefloating,
bind = $mainMod, R, exec, $menu
bind = $mainMod, P, pseudo, # dwindle
bind = $mainMod, J, togglesplit, # dwindle
bind = $mainMod, F, fullscreen
# Move focus with mainMod + arrow keys
bind = $mainMod, left, movefocus, l
bind = $mainMod, right, movefocus, r
bind = $mainMod, up, movefocus, u
bind = $mainMod, down, movefocus, d
# Switch workspaces with mainMod + [0-9]
bind = $mainMod, 1, workspace, 1
bind = $mainMod, 2, workspace, 2
bind = $mainMod, 3, workspace, 3
bind = $mainMod, 4, workspace, 4
bind = $mainMod, 5, workspace, 5
bind = $mainMod, 6, workspace, 6
bind = $mainMod, 7, workspace, 7
bind = $mainMod, 8, workspace, 8
bind = $mainMod, 9, workspace, 9
bind = $mainMod, 0, workspace, 10
# Move active window to a workspace with mainMod + SHIFT + [0-9]
bind = $mainMod SHIFT, 1, movetoworkspace, 1
bind = $mainMod SHIFT, 2, movetoworkspace, 2
bind = $mainMod SHIFT, 3, movetoworkspace, 3
bind = $mainMod SHIFT, 4, movetoworkspace, 4
bind = $mainMod SHIFT, 5, movetoworkspace, 5
bind = $mainMod SHIFT, 6, movetoworkspace, 6
bind = $mainMod SHIFT, 7, movetoworkspace, 7
bind = $mainMod SHIFT, 8, movetoworkspace, 8
bind = $mainMod SHIFT, 9, movetoworkspace, 9
bind = $mainMod SHIFT, 0, movetoworkspace, 10
# Example special workspace (scratchpad)
bind = $mainMod, S, togglespecialworkspace, magic
bind = $mainMod SHIFT, S, movetoworkspace, special:magic
# Scroll through existing workspaces with mainMod + scroll
bind = $mainMod, mouse_down, workspace, e+1
bind = $mainMod, mouse_up, workspace, e-1
# Move/resize windows with mainMod + LMB/RMB and dragging
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow
# Volume Keys
bindl=, XF86AudioRaiseVolume, exec, wpctl set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 2%+
bindl=, XF86AudioLowerVolume, exec, wpctl set-volume -l 0.0 @DEFAULT_AUDIO_SINK@ 2%-
bindl=, XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
# Media Controls
bindl=, XF86AudioPlay, exec, playerctl play-pause
bindl=, XF86AudioPrev, exec, playerctl previous
bindl=, XF86AudioNext, exec, playerctl next
# Brightness Controls
bind = ,XF86MonBrightnessDown, exec, brightnessctl s 1%-
bind = ,XF86MonBrightnessUp, exec, brightnessctl s +1%
exec-once = sleep 3 && waybar
exec-once = sleep 5 && nm-applet
exec-once = sleep 5 && blueman-applet
exec-once = ydotoold &
exec-once = sleep 5 && streamdeck -n
exec-once = kanshi &
exec-once = sleep 5 & telegram-desktop -startintray
# moves the window to x0, y0 on the screen
windowrulev2=move 0 0,class:(flameshot),title:(flameshot)
# shows the window on all workspaces
windowrulev2=pin,class:(flameshot),title:(flameshot)
# tell the application it's in fullscreen mode
windowrulev2=fullscreenstate,class:(flameshot),title:(flameshot)
# force the window to be floating ( not in a tiled pane )
windowrulev2=float,class:(flameshot),title:(flameshot)