Compare commits
	
		
			31 Commits
		
	
	
		
			home-assis
			...
			569141d227
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 569141d227 | |||
| 48edbfdc4b | |||
| 50c62a4d3f | |||
| f4b518f806 | |||
| 7fffa45e4e | |||
| a3c53820b1 | |||
| 8cbdeb4cdc | |||
| bfa957adcd | |||
| 50d22afef8 | |||
| 29feb9223e | |||
| 7bc7749f51 | |||
| 93052529b8 | |||
| 51beed138e | |||
| faed026258 | |||
| 3af5061a79 | |||
| ddd3fb39e4 | |||
| 6ff4e13b03 | |||
| 13fc210f8b | |||
| 66eddc0345 | |||
| 27c114b801 | |||
| 936b4bbf44 | |||
| f06b17a336 | |||
| cb2edf6afb | |||
| 109684d09c | |||
| 4113b3ea57 | |||
| 760d686499 | |||
| 69e6329dea | |||
| fccb1ab4ae | |||
| 57cd69a153 | |||
| 2c6765bb5b | |||
| 30a72d9e74 | 
@@ -10,13 +10,12 @@ set $right l
 | 
			
		||||
set $term alacritty
 | 
			
		||||
 | 
			
		||||
# Menu (rofi)
 | 
			
		||||
set $rofi_cmd rofi -terminal '$term'
 | 
			
		||||
set $menu $rofi_cmd -show combi -combi-modes drun#run -modes combi
 | 
			
		||||
set $menu wofi --term '$term'
 | 
			
		||||
 | 
			
		||||
### Output configuration
 | 
			
		||||
output DP-3 pos 3840 0 res 1920x1080@59Hz
 | 
			
		||||
output HDMI-A-1 pos 0 0 res 1920x1080@59Hz
 | 
			
		||||
output DP-2 pos 1920 0 res 1920x1080@60Hz
 | 
			
		||||
output DP-3 pos 1920 0 res 1920x1080@60Hz
 | 
			
		||||
output HDMI-A-1 pos 0 0 res 1920x1080@60Hz
 | 
			
		||||
output DP-2 pos 3840 0 res 1920x1080@60Hz
 | 
			
		||||
 | 
			
		||||
### Wallpaper
 | 
			
		||||
output HDMI-A-1 bg ~/.wallpaper/.wallpaper.png fill
 | 
			
		||||
@@ -26,15 +25,19 @@ output DP-3 bg ~/.wallpaper/.wallpaper.png fill
 | 
			
		||||
### Workspace binding
 | 
			
		||||
 | 
			
		||||
## DP-3 bindings
 | 
			
		||||
workspace 1 output DP-2
 | 
			
		||||
workspace 2 output DP-2
 | 
			
		||||
workspace 1 output DP-3
 | 
			
		||||
workspace 2 output DP-3
 | 
			
		||||
workspace 4 output DP-3
 | 
			
		||||
workspace 5 output DP-3
 | 
			
		||||
 | 
			
		||||
## HDMI-A-1 bindings
 | 
			
		||||
workspace 3 output HDMI-A-1
 | 
			
		||||
workspace 9 output HDMI-A-1
 | 
			
		||||
 | 
			
		||||
## DP-2 bindings
 | 
			
		||||
workspace 6 output DP-3
 | 
			
		||||
workspace 7 output DP-3
 | 
			
		||||
workspace 6 output DP-2
 | 
			
		||||
workspace 7 output DP-2
 | 
			
		||||
workspace 8 output DP-2
 | 
			
		||||
 | 
			
		||||
### Colour options
 | 
			
		||||
set $bg 	       #24283b
 | 
			
		||||
@@ -87,8 +90,9 @@ floating_modifier $mod normal
 | 
			
		||||
    # Reload the configuration file
 | 
			
		||||
    bindsym $mod+Shift+c reload
 | 
			
		||||
 | 
			
		||||
    # Exit sway (logs you out of your Wayland session)
 | 
			
		||||
    bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -b 'Yes, exit sway' 'swaymsg exit'
 | 
			
		||||
    # Shutdown and reboot hotkeys
 | 
			
		||||
    bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the shutdown shortcut. Do you really want to shutdown your computer?' -b 'Yes, shutdown' 'systemctl poweroff'
 | 
			
		||||
    bindsym $mod+Shift+r exec swaynag -t warning -m 'You pressed the reboot shortcut. Do you really want to reboot your computer?' -b 'Yes, reboot' 'systemctl reboot'
 | 
			
		||||
 | 
			
		||||
### Navigation
 | 
			
		||||
    # Move your focus around
 | 
			
		||||
@@ -182,8 +186,9 @@ mode "resize" {
 | 
			
		||||
    bindsym Return mode "default"
 | 
			
		||||
    bindsym Escape mode "default"
 | 
			
		||||
}
 | 
			
		||||
bindsym $mod+r mode "resize"
 | 
			
		||||
 | 
			
		||||
### resize
 | 
			
		||||
bindsym $mod+r mode "resize"
 | 
			
		||||
 | 
			
		||||
### Audio and brightness keybinds
 | 
			
		||||
bindsym XF86AudioRaiseVolume exec pactl set-sink-volume @DEFAULT_SINK@ +5%
 | 
			
		||||
@@ -196,16 +201,14 @@ bindsym XF86AudioPrev exec playerctl previous
 | 
			
		||||
bindsym XF86MonBrightnessUp exec light -A 5
 | 
			
		||||
bindsym XF86MonBrightnessDown exec light -U 5
 | 
			
		||||
 | 
			
		||||
### Lock the screen so my brother 
 | 
			
		||||
### won't dick with my computer
 | 
			
		||||
bindsym $mod+Ctrl+l 'swaylock -f -i /home/wyatt/.wallpaper_lock.jpeg'
 | 
			
		||||
### Lock the screen
 | 
			
		||||
bindsym $mod+Ctrl+q 'swaylock -f -i /home/wyatt/.wallpaper/.wallpaper_lock.png'
 | 
			
		||||
 | 
			
		||||
### Status Bar:
 | 
			
		||||
bar {
 | 
			
		||||
    swaybar_command waybar
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
### Font settings:
 | 
			
		||||
font pango:FiraCode: 14px
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										254
									
								
								defaults/zellij/config.kdl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										254
									
								
								defaults/zellij/config.kdl
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,254 @@
 | 
			
		||||
keybinds clear-defaults=true {
 | 
			
		||||
    locked {
 | 
			
		||||
        bind "Ctrl g" { SwitchToMode "normal"; }
 | 
			
		||||
    }
 | 
			
		||||
    pane {
 | 
			
		||||
        bind "left" { MoveFocus "left"; }
 | 
			
		||||
        bind "down" { MoveFocus "down"; }
 | 
			
		||||
        bind "up" { MoveFocus "up"; }
 | 
			
		||||
        bind "right" { MoveFocus "right"; }
 | 
			
		||||
        bind "c" { SwitchToMode "renamepane"; PaneNameInput 0; }
 | 
			
		||||
        bind "d" { NewPane "down"; SwitchToMode "normal"; }
 | 
			
		||||
        bind "e" { TogglePaneEmbedOrFloating; SwitchToMode "normal"; }
 | 
			
		||||
        bind "f" { ToggleFocusFullscreen; SwitchToMode "normal"; }
 | 
			
		||||
        bind "h" { MoveFocus "left"; }
 | 
			
		||||
        bind "j" { MoveFocus "down"; }
 | 
			
		||||
        bind "k" { MoveFocus "up"; }
 | 
			
		||||
        bind "l" { MoveFocus "right"; }
 | 
			
		||||
        bind "n" { NewPane; SwitchToMode "normal"; }
 | 
			
		||||
        bind "p" { SwitchFocus; }
 | 
			
		||||
        bind "Ctrl p" { SwitchToMode "normal"; }
 | 
			
		||||
        bind "r" { NewPane "right"; SwitchToMode "normal"; }
 | 
			
		||||
        bind "w" { ToggleFloatingPanes; SwitchToMode "normal"; }
 | 
			
		||||
        bind "z" { TogglePaneFrames; SwitchToMode "normal"; }
 | 
			
		||||
    }
 | 
			
		||||
    tab {
 | 
			
		||||
        bind "left" { GoToPreviousTab; }
 | 
			
		||||
        bind "down" { GoToNextTab; }
 | 
			
		||||
        bind "up" { GoToPreviousTab; }
 | 
			
		||||
        bind "right" { GoToNextTab; }
 | 
			
		||||
        bind "1" { GoToTab 1; SwitchToMode "normal"; }
 | 
			
		||||
        bind "2" { GoToTab 2; SwitchToMode "normal"; }
 | 
			
		||||
        bind "3" { GoToTab 3; SwitchToMode "normal"; }
 | 
			
		||||
        bind "4" { GoToTab 4; SwitchToMode "normal"; }
 | 
			
		||||
        bind "5" { GoToTab 5; SwitchToMode "normal"; }
 | 
			
		||||
        bind "6" { GoToTab 6; SwitchToMode "normal"; }
 | 
			
		||||
        bind "7" { GoToTab 7; SwitchToMode "normal"; }
 | 
			
		||||
        bind "8" { GoToTab 8; SwitchToMode "normal"; }
 | 
			
		||||
        bind "9" { GoToTab 9; SwitchToMode "normal"; }
 | 
			
		||||
        bind "[" { BreakPaneLeft; SwitchToMode "normal"; }
 | 
			
		||||
        bind "]" { BreakPaneRight; SwitchToMode "normal"; }
 | 
			
		||||
        bind "b" { BreakPane; SwitchToMode "normal"; }
 | 
			
		||||
        bind "h" { GoToPreviousTab; }
 | 
			
		||||
        bind "j" { GoToNextTab; }
 | 
			
		||||
        bind "k" { GoToPreviousTab; }
 | 
			
		||||
        bind "l" { GoToNextTab; }
 | 
			
		||||
        bind "n" { NewTab; SwitchToMode "normal"; }
 | 
			
		||||
        bind "r" { SwitchToMode "renametab"; TabNameInput 0; }
 | 
			
		||||
        bind "s" { ToggleActiveSyncTab; SwitchToMode "normal"; }
 | 
			
		||||
        bind "Ctrl t" { SwitchToMode "normal"; }
 | 
			
		||||
        bind "x" { CloseTab; SwitchToMode "normal"; }
 | 
			
		||||
        bind "tab" { ToggleTab; }
 | 
			
		||||
    }
 | 
			
		||||
    resize {
 | 
			
		||||
        bind "left" { Resize "Increase left"; }
 | 
			
		||||
        bind "down" { Resize "Increase down"; }
 | 
			
		||||
        bind "up" { Resize "Increase up"; }
 | 
			
		||||
        bind "right" { Resize "Increase right"; }
 | 
			
		||||
        bind "+" { Resize "Increase"; }
 | 
			
		||||
        bind "-" { Resize "Decrease"; }
 | 
			
		||||
        bind "=" { Resize "Increase"; }
 | 
			
		||||
        bind "H" { Resize "Decrease left"; }
 | 
			
		||||
        bind "J" { Resize "Decrease down"; }
 | 
			
		||||
        bind "K" { Resize "Decrease up"; }
 | 
			
		||||
        bind "L" { Resize "Decrease right"; }
 | 
			
		||||
        bind "h" { Resize "Increase left"; }
 | 
			
		||||
        bind "j" { Resize "Increase down"; }
 | 
			
		||||
        bind "k" { Resize "Increase up"; }
 | 
			
		||||
        bind "l" { Resize "Increase right"; }
 | 
			
		||||
        bind "Ctrl n" { SwitchToMode "normal"; }
 | 
			
		||||
    }
 | 
			
		||||
    move {
 | 
			
		||||
        bind "left" { MovePane "left"; }
 | 
			
		||||
        bind "down" { MovePane "down"; }
 | 
			
		||||
        bind "up" { MovePane "up"; }
 | 
			
		||||
        bind "right" { MovePane "right"; }
 | 
			
		||||
        bind "h" { MovePane "left"; }
 | 
			
		||||
        bind "Ctrl h" { SwitchToMode "normal"; }
 | 
			
		||||
        bind "j" { MovePane "down"; }
 | 
			
		||||
        bind "k" { MovePane "up"; }
 | 
			
		||||
        bind "l" { MovePane "right"; }
 | 
			
		||||
        bind "n" { MovePane; }
 | 
			
		||||
        bind "p" { MovePaneBackwards; }
 | 
			
		||||
        bind "tab" { MovePane; }
 | 
			
		||||
    }
 | 
			
		||||
    scroll {
 | 
			
		||||
        bind "Alt left" { MoveFocusOrTab "left"; SwitchToMode "normal"; }
 | 
			
		||||
        bind "Alt down" { MoveFocus "down"; SwitchToMode "normal"; }
 | 
			
		||||
        bind "Alt up" { MoveFocus "up"; SwitchToMode "normal"; }
 | 
			
		||||
        bind "Alt right" { MoveFocusOrTab "right"; SwitchToMode "normal"; }
 | 
			
		||||
        bind "e" { EditScrollback; SwitchToMode "normal"; }
 | 
			
		||||
        bind "Alt h" { MoveFocusOrTab "left"; SwitchToMode "normal"; }
 | 
			
		||||
        bind "Alt j" { MoveFocus "down"; SwitchToMode "normal"; }
 | 
			
		||||
        bind "Alt k" { MoveFocus "up"; SwitchToMode "normal"; }
 | 
			
		||||
        bind "Alt l" { MoveFocusOrTab "right"; SwitchToMode "normal"; }
 | 
			
		||||
        bind "s" { SwitchToMode "entersearch"; SearchInput 0; }
 | 
			
		||||
    }
 | 
			
		||||
    search {
 | 
			
		||||
        bind "c" { SearchToggleOption "CaseSensitivity"; }
 | 
			
		||||
        bind "n" { Search "down"; }
 | 
			
		||||
        bind "o" { SearchToggleOption "WholeWord"; }
 | 
			
		||||
        bind "p" { Search "up"; }
 | 
			
		||||
        bind "w" { SearchToggleOption "Wrap"; }
 | 
			
		||||
    }
 | 
			
		||||
    session {
 | 
			
		||||
        bind "c" {
 | 
			
		||||
            LaunchOrFocusPlugin "configuration" {
 | 
			
		||||
                floating true
 | 
			
		||||
                move_to_focused_tab true
 | 
			
		||||
            }
 | 
			
		||||
            SwitchToMode "normal"
 | 
			
		||||
        }
 | 
			
		||||
        bind "Ctrl o" { SwitchToMode "normal"; }
 | 
			
		||||
        bind "p" {
 | 
			
		||||
            LaunchOrFocusPlugin "plugin-manager" {
 | 
			
		||||
                floating true
 | 
			
		||||
                move_to_focused_tab true
 | 
			
		||||
            }
 | 
			
		||||
            SwitchToMode "normal"
 | 
			
		||||
        }
 | 
			
		||||
        bind "w" {
 | 
			
		||||
            LaunchOrFocusPlugin "session-manager" {
 | 
			
		||||
                floating true
 | 
			
		||||
                move_to_focused_tab true
 | 
			
		||||
            }
 | 
			
		||||
            SwitchToMode "normal"
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    shared_except "locked" {
 | 
			
		||||
        bind "Alt +" { Resize "Increase"; }
 | 
			
		||||
        bind "Alt -" { Resize "Decrease"; }
 | 
			
		||||
        bind "Alt =" { Resize "Increase"; }
 | 
			
		||||
        bind "Alt [" { PreviousSwapLayout; }
 | 
			
		||||
        bind "Alt ]" { NextSwapLayout; }
 | 
			
		||||
        bind "Alt f" { ToggleFloatingPanes; }
 | 
			
		||||
        bind "Ctrl g" { SwitchToMode "locked"; }
 | 
			
		||||
        bind "Alt i" { MoveTab "left"; }
 | 
			
		||||
        bind "Alt n" { NewPane; }
 | 
			
		||||
        bind "Alt o" { MoveTab "right"; }
 | 
			
		||||
        bind "Ctrl q" { Quit; }
 | 
			
		||||
    }
 | 
			
		||||
    shared_except "locked" "move" {
 | 
			
		||||
        bind "Ctrl h" { SwitchToMode "move"; }
 | 
			
		||||
    }
 | 
			
		||||
    shared_except "locked" "session" {
 | 
			
		||||
        bind "Ctrl o" { SwitchToMode "session"; }
 | 
			
		||||
    }
 | 
			
		||||
    shared_except "locked" "scroll" {
 | 
			
		||||
        bind "Alt left" { MoveFocusOrTab "left"; }
 | 
			
		||||
        bind "Alt down" { MoveFocus "down"; }
 | 
			
		||||
        bind "Alt up" { MoveFocus "up"; }
 | 
			
		||||
        bind "Alt right" { MoveFocusOrTab "right"; }
 | 
			
		||||
        bind "Alt h" { MoveFocusOrTab "left"; }
 | 
			
		||||
        bind "Alt j" { MoveFocus "down"; }
 | 
			
		||||
        bind "Alt k" { MoveFocus "up"; }
 | 
			
		||||
        bind "Alt l" { MoveFocusOrTab "right"; }
 | 
			
		||||
    }
 | 
			
		||||
    shared_except "locked" "scroll" "search" "tmux" {
 | 
			
		||||
        bind "Ctrl b" { SwitchToMode "tmux"; }
 | 
			
		||||
    }
 | 
			
		||||
    shared_except "locked" "tab" {
 | 
			
		||||
        bind "Ctrl t" { SwitchToMode "tab"; }
 | 
			
		||||
    }
 | 
			
		||||
    shared_except "locked" "pane" {
 | 
			
		||||
        bind "Ctrl p" { SwitchToMode "pane"; }
 | 
			
		||||
    }
 | 
			
		||||
    shared_except "locked" "resize" {
 | 
			
		||||
        bind "Ctrl n" { SwitchToMode "resize"; }
 | 
			
		||||
    }
 | 
			
		||||
    shared_except "normal" "locked" "entersearch" {
 | 
			
		||||
        bind "enter" { SwitchToMode "normal"; }
 | 
			
		||||
    }
 | 
			
		||||
    shared_except "normal" "locked" "entersearch" "renametab" "renamepane" {
 | 
			
		||||
        bind "esc" { SwitchToMode "normal"; }
 | 
			
		||||
    }
 | 
			
		||||
    shared_among "pane" "tmux" {
 | 
			
		||||
        bind "x" { CloseFocus; SwitchToMode "normal"; }
 | 
			
		||||
    }
 | 
			
		||||
    shared_among "scroll" "search" {
 | 
			
		||||
        bind "PageDown" { PageScrollDown; }
 | 
			
		||||
        bind "PageUp" { PageScrollUp; }
 | 
			
		||||
        bind "left" { PageScrollUp; }
 | 
			
		||||
        bind "down" { ScrollDown; }
 | 
			
		||||
        bind "up" { ScrollUp; }
 | 
			
		||||
        bind "right" { PageScrollDown; }
 | 
			
		||||
        bind "Ctrl b" { PageScrollUp; }
 | 
			
		||||
        bind "Ctrl c" { ScrollToBottom; SwitchToMode "normal"; }
 | 
			
		||||
        bind "d" { HalfPageScrollDown; }
 | 
			
		||||
        bind "Ctrl f" { PageScrollDown; }
 | 
			
		||||
        bind "h" { PageScrollUp; }
 | 
			
		||||
        bind "j" { ScrollDown; }
 | 
			
		||||
        bind "k" { ScrollUp; }
 | 
			
		||||
        bind "l" { PageScrollDown; }
 | 
			
		||||
        bind "u" { HalfPageScrollUp; }
 | 
			
		||||
    }
 | 
			
		||||
    entersearch {
 | 
			
		||||
        bind "Ctrl c" { SwitchToMode "scroll"; }
 | 
			
		||||
        bind "esc" { SwitchToMode "scroll"; }
 | 
			
		||||
        bind "enter" { SwitchToMode "search"; }
 | 
			
		||||
    }
 | 
			
		||||
    renametab {
 | 
			
		||||
        bind "esc" { UndoRenameTab; SwitchToMode "tab"; }
 | 
			
		||||
    }
 | 
			
		||||
    shared_among "renametab" "renamepane" {
 | 
			
		||||
        bind "Ctrl c" { SwitchToMode "normal"; }
 | 
			
		||||
    }
 | 
			
		||||
    renamepane {
 | 
			
		||||
        bind "esc" { UndoRenamePane; SwitchToMode "pane"; }
 | 
			
		||||
    }
 | 
			
		||||
    shared_among "session" "tmux" {
 | 
			
		||||
        bind "d" { Detach; }
 | 
			
		||||
    }
 | 
			
		||||
    tmux {
 | 
			
		||||
        bind "left" { MoveFocus "left"; SwitchToMode "normal"; }
 | 
			
		||||
        bind "down" { MoveFocus "down"; SwitchToMode "normal"; }
 | 
			
		||||
        bind "up" { MoveFocus "up"; SwitchToMode "normal"; }
 | 
			
		||||
        bind "right" { MoveFocus "right"; SwitchToMode "normal"; }
 | 
			
		||||
        bind "space" { NextSwapLayout; }
 | 
			
		||||
        bind "\"" { NewPane "down"; SwitchToMode "normal"; }
 | 
			
		||||
        bind "%" { NewPane "right"; SwitchToMode "normal"; }
 | 
			
		||||
        bind "," { SwitchToMode "renametab"; }
 | 
			
		||||
        bind "[" { SwitchToMode "scroll"; }
 | 
			
		||||
        bind "Ctrl b" { Write 2; SwitchToMode "normal"; }
 | 
			
		||||
        bind "c" { NewTab; SwitchToMode "normal"; }
 | 
			
		||||
        bind "h" { MoveFocus "left"; SwitchToMode "normal"; }
 | 
			
		||||
        bind "j" { MoveFocus "down"; SwitchToMode "normal"; }
 | 
			
		||||
        bind "k" { MoveFocus "up"; SwitchToMode "normal"; }
 | 
			
		||||
        bind "l" { MoveFocus "right"; SwitchToMode "normal"; }
 | 
			
		||||
        bind "n" { GoToNextTab; SwitchToMode "normal"; }
 | 
			
		||||
        bind "o" { FocusNextPane; }
 | 
			
		||||
        bind "p" { GoToPreviousTab; SwitchToMode "normal"; }
 | 
			
		||||
        bind "z" { ToggleFocusFullscreen; SwitchToMode "normal"; }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
plugins {
 | 
			
		||||
    compact-bar location="zellij:compact-bar"
 | 
			
		||||
    configuration location="zellij:configuration"
 | 
			
		||||
    filepicker location="zellij:strider" {
 | 
			
		||||
        cwd "/"
 | 
			
		||||
    }
 | 
			
		||||
    plugin-manager location="zellij:plugin-manager"
 | 
			
		||||
    session-manager location="zellij:session-manager"
 | 
			
		||||
    status-bar location="zellij:status-bar"
 | 
			
		||||
    strider location="zellij:strider"
 | 
			
		||||
    tab-bar location="zellij:tab-bar"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
load_plugins {
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
theme "catppuccin-mocha"
 | 
			
		||||
show_startup_tips false
 | 
			
		||||
show_release_notes false
 | 
			
		||||
default_mode "normal"
 | 
			
		||||
							
								
								
									
										121
									
								
								flake.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										121
									
								
								flake.lock
									
									
									
										generated
									
									
									
								
							@@ -7,11 +7,11 @@
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1748044287,
 | 
			
		||||
        "narHash": "sha256-9bJzyUX5+HXYmI60WMGYXXDdhGbSh1Le6yBM4og3K7E=",
 | 
			
		||||
        "lastModified": 1759509947,
 | 
			
		||||
        "narHash": "sha256-4XifSIHfpJKcCf5bZZRhj8C4aCpjNBaE3kXr02s4rHU=",
 | 
			
		||||
        "owner": "lnl7",
 | 
			
		||||
        "repo": "nix-darwin",
 | 
			
		||||
        "rev": "2456ff5c95edfc3b197cb012b947012faed77591",
 | 
			
		||||
        "rev": "000eadb231812ad6ea6aebd7526974aaf4e79355",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
@@ -24,11 +24,11 @@
 | 
			
		||||
    "flake-compat": {
 | 
			
		||||
      "flake": false,
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1733328505,
 | 
			
		||||
        "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
 | 
			
		||||
        "lastModified": 1747046372,
 | 
			
		||||
        "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
 | 
			
		||||
        "owner": "edolstra",
 | 
			
		||||
        "repo": "flake-compat",
 | 
			
		||||
        "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
 | 
			
		||||
        "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
@@ -59,17 +59,16 @@
 | 
			
		||||
      "inputs": {
 | 
			
		||||
        "flake-compat": "flake-compat",
 | 
			
		||||
        "flake-utils": "flake-utils",
 | 
			
		||||
        "nixpkgs-stable": "nixpkgs-stable",
 | 
			
		||||
        "nixpkgs-unstable": "nixpkgs-unstable",
 | 
			
		||||
        "nixpkgs": "nixpkgs",
 | 
			
		||||
        "zig": "zig",
 | 
			
		||||
        "zon2nix": "zon2nix"
 | 
			
		||||
      },
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1748207486,
 | 
			
		||||
        "narHash": "sha256-4kR7VyauWpNMrBePHMM8yzQvUzHHGRVkQpJ3DyoKcH0=",
 | 
			
		||||
        "lastModified": 1760808459,
 | 
			
		||||
        "narHash": "sha256-+3ups2SbJ2y2CknaoC8P4IphJDWG/yo5loW01BF7STw=",
 | 
			
		||||
        "owner": "ghostty-org",
 | 
			
		||||
        "repo": "ghostty",
 | 
			
		||||
        "rev": "3f6c02b49e08aed51e4be85d87b79b9dbea34a85",
 | 
			
		||||
        "rev": "be0da4845cb629bcf1f5f1890a28850bb7adfe16",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
@@ -85,11 +84,11 @@
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1747556831,
 | 
			
		||||
        "narHash": "sha256-Qb84nbYFFk0DzFeqVoHltS2RodAYY5/HZQKE8WnBDsc=",
 | 
			
		||||
        "lastModified": 1758463745,
 | 
			
		||||
        "narHash": "sha256-uhzsV0Q0I9j2y/rfweWeGif5AWe0MGrgZ/3TjpDYdGA=",
 | 
			
		||||
        "owner": "nix-community",
 | 
			
		||||
        "repo": "home-manager",
 | 
			
		||||
        "rev": "d0bbd221482c2713cccb80220f3c9d16a6e20a33",
 | 
			
		||||
        "rev": "3b955f5f0a942f9f60cdc9cacb7844335d0f21c3",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
@@ -117,11 +116,37 @@
 | 
			
		||||
    },
 | 
			
		||||
    "nixpkgs": {
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1747953325,
 | 
			
		||||
        "narHash": "sha256-y2ZtlIlNTuVJUZCqzZAhIw5rrKP4DOSklev6c8PyCkQ=",
 | 
			
		||||
        "lastModified": 315532800,
 | 
			
		||||
        "narHash": "sha256-sV6pJNzFkiPc6j9Bi9JuHBnWdVhtKB/mHgVmMPvDFlk=",
 | 
			
		||||
        "rev": "82c2e0d6dde50b17ae366d2aa36f224dc19af469",
 | 
			
		||||
        "type": "tarball",
 | 
			
		||||
        "url": "https://releases.nixos.org/nixpkgs/nixpkgs-25.11pre877938.82c2e0d6dde5/nixexprs.tar.xz"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "type": "tarball",
 | 
			
		||||
        "url": "https://channels.nixos.org/nixpkgs-unstable/nixexprs.tar.xz"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "nixpkgs_2": {
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1758360447,
 | 
			
		||||
        "narHash": "sha256-XDY3A83bclygHDtesRoaRTafUd80Q30D/Daf9KSG6bs=",
 | 
			
		||||
        "rev": "8eaee110344796db060382e15d3af0a9fc396e0e",
 | 
			
		||||
        "type": "tarball",
 | 
			
		||||
        "url": "https://releases.nixos.org/nixos/unstable/nixos-25.11pre864002.8eaee1103447/nixexprs.tar.xz"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "type": "tarball",
 | 
			
		||||
        "url": "https://channels.nixos.org/nixos-unstable/nixexprs.tar.xz"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "nixpkgs_3": {
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1760580664,
 | 
			
		||||
        "narHash": "sha256-/YdfibIrnqXAL8p5kqCU345mzpHoOtuVIkMiI2pF4Dc=",
 | 
			
		||||
        "owner": "nixos",
 | 
			
		||||
        "repo": "nixpkgs",
 | 
			
		||||
        "rev": "55d1f923c480dadce40f5231feb472e81b0bab48",
 | 
			
		||||
        "rev": "98ff3f9af2684f6136c24beef08f5e2033fc5389",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
@@ -131,45 +156,13 @@
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "nixpkgs-stable": {
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1741992157,
 | 
			
		||||
        "narHash": "sha256-nlIfTsTrMSksEJc1f7YexXiPVuzD1gOfeN1ggwZyUoc=",
 | 
			
		||||
        "owner": "nixos",
 | 
			
		||||
        "repo": "nixpkgs",
 | 
			
		||||
        "rev": "da4b122f63095ca1199bd4d526f9e26426697689",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "owner": "nixos",
 | 
			
		||||
        "ref": "release-24.11",
 | 
			
		||||
        "repo": "nixpkgs",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "nixpkgs-unstable": {
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1741865919,
 | 
			
		||||
        "narHash": "sha256-4thdbnP6dlbdq+qZWTsm4ffAwoS8Tiq1YResB+RP6WE=",
 | 
			
		||||
        "owner": "nixos",
 | 
			
		||||
        "repo": "nixpkgs",
 | 
			
		||||
        "rev": "573c650e8a14b2faa0041645ab18aed7e60f0c9a",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "owner": "nixos",
 | 
			
		||||
        "ref": "nixpkgs-unstable",
 | 
			
		||||
        "repo": "nixpkgs",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "root": {
 | 
			
		||||
      "inputs": {
 | 
			
		||||
        "darwin": "darwin",
 | 
			
		||||
        "ghostty": "ghostty",
 | 
			
		||||
        "home-manager": "home-manager",
 | 
			
		||||
        "nix-flatpak": "nix-flatpak",
 | 
			
		||||
        "nixpkgs": "nixpkgs"
 | 
			
		||||
        "nixpkgs": "nixpkgs_3"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "systems": {
 | 
			
		||||
@@ -190,7 +183,8 @@
 | 
			
		||||
    "zig": {
 | 
			
		||||
      "inputs": {
 | 
			
		||||
        "flake-compat": [
 | 
			
		||||
          "ghostty"
 | 
			
		||||
          "ghostty",
 | 
			
		||||
          "flake-compat"
 | 
			
		||||
        ],
 | 
			
		||||
        "flake-utils": [
 | 
			
		||||
          "ghostty",
 | 
			
		||||
@@ -198,15 +192,15 @@
 | 
			
		||||
        ],
 | 
			
		||||
        "nixpkgs": [
 | 
			
		||||
          "ghostty",
 | 
			
		||||
          "nixpkgs-stable"
 | 
			
		||||
          "nixpkgs"
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1741825901,
 | 
			
		||||
        "narHash": "sha256-aeopo+aXg5I2IksOPFN79usw7AeimH1+tjfuMzJHFdk=",
 | 
			
		||||
        "lastModified": 1760401936,
 | 
			
		||||
        "narHash": "sha256-/zj5GYO5PKhBWGzbHbqT+ehY8EghuABdQ2WGfCwZpCQ=",
 | 
			
		||||
        "owner": "mitchellh",
 | 
			
		||||
        "repo": "zig-overlay",
 | 
			
		||||
        "rev": "0b14285e283f5a747f372fb2931835dd937c4383",
 | 
			
		||||
        "rev": "365085b6652259753b598d43b723858184980bbe",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
@@ -217,27 +211,20 @@
 | 
			
		||||
    },
 | 
			
		||||
    "zon2nix": {
 | 
			
		||||
      "inputs": {
 | 
			
		||||
        "flake-utils": [
 | 
			
		||||
          "ghostty",
 | 
			
		||||
          "flake-utils"
 | 
			
		||||
        ],
 | 
			
		||||
        "nixpkgs": [
 | 
			
		||||
          "ghostty",
 | 
			
		||||
          "nixpkgs-unstable"
 | 
			
		||||
        ]
 | 
			
		||||
        "nixpkgs": "nixpkgs_2"
 | 
			
		||||
      },
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1742104771,
 | 
			
		||||
        "narHash": "sha256-LhidlyEA9MP8jGe1rEnyjGFCzLLgCdDpYeWggibayr0=",
 | 
			
		||||
        "lastModified": 1758405547,
 | 
			
		||||
        "narHash": "sha256-WgaDgvIZMPvlZcZrpPMjkaalTBnGF2lTG+62znXctWM=",
 | 
			
		||||
        "owner": "jcollie",
 | 
			
		||||
        "repo": "zon2nix",
 | 
			
		||||
        "rev": "56c159be489cc6c0e73c3930bd908ddc6fe89613",
 | 
			
		||||
        "rev": "bf983aa90ff169372b9fa8c02e57ea75e0b42245",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "owner": "jcollie",
 | 
			
		||||
        "ref": "56c159be489cc6c0e73c3930bd908ddc6fe89613",
 | 
			
		||||
        "repo": "zon2nix",
 | 
			
		||||
        "rev": "bf983aa90ff169372b9fa8c02e57ea75e0b42245",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										17
									
								
								home/bat.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								home/bat.nix
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,17 @@
 | 
			
		||||
{ pkgs, ... }: {
 | 
			
		||||
  programs.bat = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    config.theme = "catppuccin";
 | 
			
		||||
 | 
			
		||||
    themes.catppuccin = {
 | 
			
		||||
      src = pkgs.fetchFromGitHub {
 | 
			
		||||
        owner = "catppuccin";
 | 
			
		||||
        repo = "bat";
 | 
			
		||||
        rev = "ba4d16880d63e656acced2b7d4e034e4a93f74b1";
 | 
			
		||||
        hash = "sha256-6WVKQErGdaqb++oaXnY3i6/GuH2FhTgK0v4TN4Y0Wbw=";
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
      file = "/Catppuccin-mocha.tmTheme";
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
@@ -25,6 +25,8 @@ in {
 | 
			
		||||
    ./sway.nix
 | 
			
		||||
    ./terminal.nix
 | 
			
		||||
    ./browser.nix
 | 
			
		||||
    ./zellij.nix
 | 
			
		||||
    ./bat.nix
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  # Home Manager needs a bit of information about you and the
 | 
			
		||||
@@ -39,6 +41,7 @@ in {
 | 
			
		||||
    sessionVariables = {
 | 
			
		||||
      XDG_CURRENT_DESKTOP = "sway";
 | 
			
		||||
      XDG_SESSION_TYPE = "wayland";
 | 
			
		||||
      XDG_SESSION_DESKTOP="sway";
 | 
			
		||||
      XDG_CONFIG_HOME = "$HOME/.config";
 | 
			
		||||
      XDG_CACHE_HOME = "$HOME/.cache";
 | 
			
		||||
      XDG_DATA_HOME = "$HOME/.local/share";
 | 
			
		||||
 
 | 
			
		||||
@@ -15,7 +15,7 @@
 | 
			
		||||
    extraConfig = {
 | 
			
		||||
      init.defaultBranch = "master";
 | 
			
		||||
      push.autoSetupRemote = true;
 | 
			
		||||
      pull.merge = true;
 | 
			
		||||
      pull.rebase = false;
 | 
			
		||||
      merge.tool = "nvimdiff";
 | 
			
		||||
      mergetool.keepBackup = false;
 | 
			
		||||
    };
 | 
			
		||||
 
 | 
			
		||||
@@ -4,7 +4,7 @@
 | 
			
		||||
  ...
 | 
			
		||||
}: {
 | 
			
		||||
  home.packages = with pkgs; [
 | 
			
		||||
    nnn # terminal file manager
 | 
			
		||||
    yazi # terminal file manager
 | 
			
		||||
 | 
			
		||||
    # archives
 | 
			
		||||
    zip
 | 
			
		||||
@@ -13,9 +13,7 @@
 | 
			
		||||
    p7zip
 | 
			
		||||
 | 
			
		||||
    # utils
 | 
			
		||||
    zellij
 | 
			
		||||
    tmux
 | 
			
		||||
    bat
 | 
			
		||||
    lazygit
 | 
			
		||||
    bottom
 | 
			
		||||
    ripgrep
 | 
			
		||||
 
 | 
			
		||||
@@ -11,6 +11,10 @@
 | 
			
		||||
    mcrcon
 | 
			
		||||
    xfce.thunar
 | 
			
		||||
    pavucontrol
 | 
			
		||||
    godot
 | 
			
		||||
    aseprite
 | 
			
		||||
    gpu-screen-recorder
 | 
			
		||||
    gpu-screen-recorder-gtk
 | 
			
		||||
    # ungoogled-chromium
 | 
			
		||||
  ]);
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
{pkgs, ...}: {
 | 
			
		||||
{pkgs, lib, ...}: {
 | 
			
		||||
  programs.fish = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    # initExtra = ''
 | 
			
		||||
@@ -52,6 +52,27 @@
 | 
			
		||||
        '';
 | 
			
		||||
        onEvent = "fish_greeting";
 | 
			
		||||
      };
 | 
			
		||||
    } // lib.optionalAttrs pkgs.stdenv.isLinux {
 | 
			
		||||
      block = {
 | 
			
		||||
        body = ''
 | 
			
		||||
          systemd-inhibit --what=sleep --who="$USER" --why="manual invocation" --mode=block sleep infinity &
 | 
			
		||||
          set -g INHIBIT_PID $last_pid
 | 
			
		||||
          echo "Sleep inhibited. PID: $INHIBIT_PID"
 | 
			
		||||
        '';
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
      unblock = {
 | 
			
		||||
        body = ''
 | 
			
		||||
          if set -q INHIBIT_PID
 | 
			
		||||
            kill $INHIBIT_PID 2>/dev/null
 | 
			
		||||
            and echo "Sleep inhibitor removed. PID: $INHIBIT_PID"
 | 
			
		||||
            or echo "Failed to kill process or already terminated."
 | 
			
		||||
            set -e INHIBIT_PID
 | 
			
		||||
          else
 | 
			
		||||
            echo "No active sleep inhibitor found."
 | 
			
		||||
          end
 | 
			
		||||
        '';
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										131
									
								
								home/sway.nix
									
									
									
									
									
								
							
							
						
						
									
										131
									
								
								home/sway.nix
									
									
									
									
									
								
							@@ -29,26 +29,123 @@ in {
 | 
			
		||||
  xdg.configFile."sway/config".source = lib.mkForce (dirs.defaults + /sway/config);
 | 
			
		||||
  xdg.configFile."waybar/config".source = lib.mkForce (dirs.defaults + /waybar/config);
 | 
			
		||||
  xdg.configFile."waybar/style.css".source = lib.mkForce (dirs.defaults + /waybar/style.css);
 | 
			
		||||
  programs.rofi.enable = pkgs.stdenv.isLinux;
 | 
			
		||||
  services.mako.enable = pkgs.stdenv.isLinux;
 | 
			
		||||
 | 
			
		||||
  programs.wofi = { 
 | 
			
		||||
    enable = pkgs.stdenv.isLinux;
 | 
			
		||||
    settings = {
 | 
			
		||||
      width=600;
 | 
			
		||||
      height=350;
 | 
			
		||||
      location="center";
 | 
			
		||||
      show="drun";
 | 
			
		||||
      prompt="Search...";
 | 
			
		||||
      filter_rate=100;
 | 
			
		||||
      allow_markup=true;
 | 
			
		||||
      no_actions=true;
 | 
			
		||||
      halign="fill";
 | 
			
		||||
      orientation="vertical";
 | 
			
		||||
      content_halign="fill";
 | 
			
		||||
      insensitive=true;
 | 
			
		||||
      allow_images=true;
 | 
			
		||||
      image_size=40;
 | 
			
		||||
      gtk_dark=true;
 | 
			
		||||
    };
 | 
			
		||||
    style = ''
 | 
			
		||||
      @define-color	selected-text  #8caaee;
 | 
			
		||||
      @define-color	text  #c6d0f5;
 | 
			
		||||
      @define-color	base  #24273a;
 | 
			
		||||
 | 
			
		||||
      * {
 | 
			
		||||
        font-family: 'Monaspace Krypton 9', monospace;
 | 
			
		||||
        font-size: 18px;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      window {
 | 
			
		||||
        margin: 0px;
 | 
			
		||||
        padding: 20px;
 | 
			
		||||
        background-color: @base;
 | 
			
		||||
        opacity: 0.95;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      #inner-box {
 | 
			
		||||
        margin: 0;
 | 
			
		||||
        padding: 0;
 | 
			
		||||
        border: none;
 | 
			
		||||
        background-color: @base;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      #outer-box {
 | 
			
		||||
        margin: 0;
 | 
			
		||||
        padding: 20px;
 | 
			
		||||
        border: none;
 | 
			
		||||
        background-color: @base;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      #scroll {
 | 
			
		||||
        margin: 0;
 | 
			
		||||
        padding: 0;
 | 
			
		||||
        border: none;
 | 
			
		||||
        background-color: @base;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      #input {
 | 
			
		||||
        margin: 0;
 | 
			
		||||
        padding: 10px;
 | 
			
		||||
        border: none;
 | 
			
		||||
        background-color: @base;
 | 
			
		||||
        color: @text;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      #input:focus {
 | 
			
		||||
        outline: none;
 | 
			
		||||
        box-shadow: none;
 | 
			
		||||
        border: none;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      #text {
 | 
			
		||||
        margin: 5px;
 | 
			
		||||
        border: none;
 | 
			
		||||
        color: @text;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      #entry {
 | 
			
		||||
        background-color: @base;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      #entry:selected {
 | 
			
		||||
        outline: none;
 | 
			
		||||
        border: none;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      #entry:selected #text {
 | 
			
		||||
        color: @selected-text;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      #entry image {
 | 
			
		||||
        -gtk-icon-transform: scale(0.7);
 | 
			
		||||
      }
 | 
			
		||||
    '';
 | 
			
		||||
  };
 | 
			
		||||
  programs.swaylock.enable = pkgs.stdenv.isLinux;
 | 
			
		||||
  
 | 
			
		||||
  services.mako = {
 | 
			
		||||
    enable = pkgs.stdenv.isLinux;
 | 
			
		||||
    settings = {
 | 
			
		||||
      text-color="#cad3f5";
 | 
			
		||||
      border-color="#c6d0f5";
 | 
			
		||||
      background-color="#24273a";
 | 
			
		||||
      width=420;
 | 
			
		||||
      height=110;
 | 
			
		||||
      padding=10;
 | 
			
		||||
      border-size=2;
 | 
			
		||||
      font="Monaspace Krypton 9";
 | 
			
		||||
      anchor="top-right";
 | 
			
		||||
      default-timeout=5000;
 | 
			
		||||
      max-icon-size=32;
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  programs.waybar = {
 | 
			
		||||
    enable = pkgs.stdenv.isLinux;
 | 
			
		||||
    systemd.enable = true;
 | 
			
		||||
 | 
			
		||||
    package = pkgs.waybar.overrideAttrs (old: {
 | 
			
		||||
      version = "0.11.0";
 | 
			
		||||
 | 
			
		||||
      src = pkgs.fetchFromGitHub {
 | 
			
		||||
        owner = "Alexays";
 | 
			
		||||
        repo = "Waybar";
 | 
			
		||||
        rev = "d56dd6ee7fdf8c5ba4e90790af62b7f7829d3a47";
 | 
			
		||||
        sha256 = "sha256-3lc0voMU5RS+mEtxKuRayq/uJO09X7byq6Rm5NZohq8=";
 | 
			
		||||
        fetchSubmodules = true;
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
      buildInputs = old.buildInputs ++ [ pkgs.fftw pkgs.libcava ];
 | 
			
		||||
      # mesonFlags = (old.mesonFlags or []) ++ [ "-Dcava=disabled" ];
 | 
			
		||||
    });
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										14
									
								
								home/zellij.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								home/zellij.nix
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,14 @@
 | 
			
		||||
{ 
 | 
			
		||||
  lib, 
 | 
			
		||||
  ... 
 | 
			
		||||
}: let
 | 
			
		||||
  dirs = {
 | 
			
		||||
    defaults = ../defaults;
 | 
			
		||||
  };
 | 
			
		||||
in {
 | 
			
		||||
  programs.zellij = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  xdg.configFile."zellij/config.kdl".source = lib.mkForce (dirs.defaults + /zellij/config.kdl);
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										19
									
								
								modules/apps/appimage.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								modules/apps/appimage.nix
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,19 @@
 | 
			
		||||
{
 | 
			
		||||
  config,
 | 
			
		||||
  lib,
 | 
			
		||||
  pkgs,
 | 
			
		||||
  ...
 | 
			
		||||
}:
 | 
			
		||||
with lib; let
 | 
			
		||||
  cfg = config.appimage;
 | 
			
		||||
in {
 | 
			
		||||
  options.appimage = {
 | 
			
		||||
    enable = mkEnableOption "AppImage support";
 | 
			
		||||
  };
 | 
			
		||||
  config = mkIf cfg.enable {
 | 
			
		||||
    environment.systemPackages = with pkgs; [
 | 
			
		||||
      appimageupdate
 | 
			
		||||
      appimage-run
 | 
			
		||||
    ];
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
@@ -5,6 +5,7 @@
 | 
			
		||||
}: {
 | 
			
		||||
  imports = [
 | 
			
		||||
    ./core.nix
 | 
			
		||||
    ./environment.nix
 | 
			
		||||
    ./fonts.nix
 | 
			
		||||
    ./users.nix
 | 
			
		||||
  ];
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										23
									
								
								modules/common/environment.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								modules/common/environment.nix
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,23 @@
 | 
			
		||||
{ lib, pkgs, ... }: {
 | 
			
		||||
  environment.systemPackages = with pkgs; [
 | 
			
		||||
    git
 | 
			
		||||
    vim
 | 
			
		||||
    neovim
 | 
			
		||||
    usbutils
 | 
			
		||||
    coreutils
 | 
			
		||||
    pciutils
 | 
			
		||||
    patchelf
 | 
			
		||||
    htop
 | 
			
		||||
  ] ++ 
 | 
			
		||||
  lib.optionals pkgs.stdenv.isLinux (with pkgs; [
 | 
			
		||||
    systemd
 | 
			
		||||
    lshw
 | 
			
		||||
    dmidecode
 | 
			
		||||
    nix-ld
 | 
			
		||||
  ]) ++
 | 
			
		||||
  lib.optionals pkgs.stdenv.isDarwin (with pkgs; [
 | 
			
		||||
      # nothing here, yet ;)
 | 
			
		||||
  ]);
 | 
			
		||||
 | 
			
		||||
  environment.variables.EDITOR = "nvim";
 | 
			
		||||
}
 | 
			
		||||
@@ -1,35 +1,38 @@
 | 
			
		||||
{
 | 
			
		||||
  lib,
 | 
			
		||||
  pkgs,
 | 
			
		||||
  userName,
 | 
			
		||||
  hostname,
 | 
			
		||||
  ...
 | 
			
		||||
} @ args: {
 | 
			
		||||
  imports = [
 | 
			
		||||
    ../security/sudo.nix
 | 
			
		||||
  ];
 | 
			
		||||
{ lib, pkgs, userName, hostname, ... }:
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
  networking.hostName = hostname;
 | 
			
		||||
  
 | 
			
		||||
  # Don't forget to set a password with ‘passwd’!
 | 
			
		||||
  users.users."${userName}" = lib.mkMerge [
 | 
			
		||||
    {
 | 
			
		||||
      home =
 | 
			
		||||
        if pkgs.stdenv.isDarwin
 | 
			
		||||
  users.users."${userName}" = {
 | 
			
		||||
    home = if pkgs.stdenv.isDarwin 
 | 
			
		||||
           then "/Users/${userName}" 
 | 
			
		||||
           else "/home/${userName}";
 | 
			
		||||
    description = userName;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    (lib.mkIf (pkgs.stdenv.isLinux) {
 | 
			
		||||
  } // lib.optionalAttrs pkgs.stdenv.isLinux {
 | 
			
		||||
    group = "${userName}";
 | 
			
		||||
    isNormalUser = true;
 | 
			
		||||
    })
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  security.sudo.needsPassword = false;
 | 
			
		||||
  };
 | 
			
		||||
  
 | 
			
		||||
  users.groups.wyatt = {};
 | 
			
		||||
 | 
			
		||||
  nix.settings.trusted-users = [userName];
 | 
			
		||||
 | 
			
		||||
  security = lib.optionalAttrs pkgs.stdenv.isLinux {
 | 
			
		||||
    sudo.extraRules = [
 | 
			
		||||
      {
 | 
			
		||||
        groups = [ "wheel" ];
 | 
			
		||||
        commands = [
 | 
			
		||||
          {
 | 
			
		||||
            command = "ALL";
 | 
			
		||||
            options = [ "NOPASSWD" "SETENV" ];
 | 
			
		||||
          }
 | 
			
		||||
        ];
 | 
			
		||||
      }
 | 
			
		||||
    ];
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  environment = lib.optionalAttrs pkgs.stdenv.isDarwin {
 | 
			
		||||
    etc."sudoers.d/wheel-nopasswd".text = ''
 | 
			
		||||
      %wheel ALL=(ALL:ALL) NOPASSWD: SETENV: ALL
 | 
			
		||||
    '';
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -18,14 +18,16 @@
 | 
			
		||||
in {
 | 
			
		||||
  imports = [
 | 
			
		||||
    (import ../../apps/flatpak.nix {
 | 
			
		||||
      inherit lib pkgs flatpakPackages;
 | 
			
		||||
      inherit lib pkgs flatpakPackages userName;
 | 
			
		||||
    })
 | 
			
		||||
    ../../apps/gaming.nix
 | 
			
		||||
    ../../apps/appimage.nix
 | 
			
		||||
    ../../graphics
 | 
			
		||||
    ../../pwrMgmt
 | 
			
		||||
    ../../networking/core.nix
 | 
			
		||||
    ../../sound/pipewire.nix
 | 
			
		||||
    ../../sound/shairport.nix
 | 
			
		||||
    ../../sound/focusrite.nix
 | 
			
		||||
    ../../virtualization/podman.nix
 | 
			
		||||
    ../../virtualization/hardware.nix
 | 
			
		||||
  ];
 | 
			
		||||
@@ -34,9 +36,13 @@ in {
 | 
			
		||||
  nix.settings.experimental-features = ["nix-command" "flakes"];
 | 
			
		||||
 | 
			
		||||
  # Custom kernel/boot stuff
 | 
			
		||||
  boot.kernelPackages = pkgs.linuxPackages_latest;
 | 
			
		||||
  boot.loader.systemd-boot.enable = true;
 | 
			
		||||
  boot.loader.efi.canTouchEfiVariables = true;
 | 
			
		||||
  boot = {
 | 
			
		||||
    kernelPackages = pkgs.linuxPackages_latest;
 | 
			
		||||
    loader = {
 | 
			
		||||
      systemd-boot.enable = true;
 | 
			
		||||
      efi.canTouchEfiVariables = true;
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  # Enable Bluetooth if present
 | 
			
		||||
  hardware.bluetooth.enable = true;
 | 
			
		||||
@@ -46,40 +52,23 @@ in {
 | 
			
		||||
 | 
			
		||||
  # Install packages to be installed system-wide
 | 
			
		||||
  environment.systemPackages = with pkgs; [
 | 
			
		||||
    vim
 | 
			
		||||
    neovim
 | 
			
		||||
    git
 | 
			
		||||
    wireguard-tools
 | 
			
		||||
    grim
 | 
			
		||||
    slurp
 | 
			
		||||
    playerctl
 | 
			
		||||
    light
 | 
			
		||||
    brightnessctl
 | 
			
		||||
    firefox
 | 
			
		||||
    wttrbar
 | 
			
		||||
    cliphist
 | 
			
		||||
    patchelf
 | 
			
		||||
    nix-ld
 | 
			
		||||
    xdg-desktop-portal-gtk
 | 
			
		||||
    xdg-utils
 | 
			
		||||
    flatpak-xdg-utils
 | 
			
		||||
    desktop-file-utils
 | 
			
		||||
    shared-mime-info
 | 
			
		||||
    wl-clipboard
 | 
			
		||||
    wl-clip-persist
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  # Set the EDITOR global environment variable to neovim
 | 
			
		||||
  environment.variables.EDITOR = "nvim";
 | 
			
		||||
 | 
			
		||||
  # Enable OpenSSH
 | 
			
		||||
  services.openssh.enable = true;
 | 
			
		||||
 | 
			
		||||
  # Enable keyring
 | 
			
		||||
  services.gnome.gnome-keyring.enable = true;
 | 
			
		||||
 | 
			
		||||
  # Enable GnuPG
 | 
			
		||||
  programs.gnupg.agent = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    enableSSHSupport = true;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  # Enable SUID wrappers (some programs need them)
 | 
			
		||||
  programs.mtr.enable = true;
 | 
			
		||||
 | 
			
		||||
  # Enable Polkit
 | 
			
		||||
  security.polkit.enable = true;
 | 
			
		||||
 | 
			
		||||
@@ -147,28 +136,54 @@ in {
 | 
			
		||||
    networkManager.enable = true;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  programs = {
 | 
			
		||||
    # Enable GnuPG
 | 
			
		||||
    gnupg.agent = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
      enableSSHSupport = true;
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    # Enable SUID wrappers (some programs need them)
 | 
			
		||||
    mtr.enable = true;
 | 
			
		||||
 | 
			
		||||
    # Enable dconf
 | 
			
		||||
  programs.dconf.enable = true;
 | 
			
		||||
    dconf.enable = true;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  # Add username to groups "wheel" and "video" - more may be added here later
 | 
			
		||||
  users.users.${userName}.extraGroups = ["wheel" "video" "gamemode" "podman" "network"];
 | 
			
		||||
 | 
			
		||||
  services = {
 | 
			
		||||
    # Enable OpenSSH
 | 
			
		||||
    openssh.enable = true;
 | 
			
		||||
 | 
			
		||||
    # Enable keyring
 | 
			
		||||
    gnome.gnome-keyring.enable = true;
 | 
			
		||||
 | 
			
		||||
    # Flatpak packages (see ../../apps/flatpak.nix)
 | 
			
		||||
  services.flatpak.packages = flatpakPackages;
 | 
			
		||||
    flatpak.packages = flatpakPackages;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  # Focusrite Scarlett audio interface support (see ../../sound/focusrite.nix)
 | 
			
		||||
  sound.hardware.focusrite.enable = true;
 | 
			
		||||
 | 
			
		||||
  # AppImage support
 | 
			
		||||
  appimage.enable = true;
 | 
			
		||||
 | 
			
		||||
  # XDG stuff
 | 
			
		||||
  xdg = {
 | 
			
		||||
    portal = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
      wlr.enable = true;
 | 
			
		||||
      config = {
 | 
			
		||||
        sway = {
 | 
			
		||||
          default = ["wlr" "gtk"];
 | 
			
		||||
          "org.freedesktop.impl.portal.Secret" = ["gnome-keyring"];
 | 
			
		||||
        };
 | 
			
		||||
        common = {
 | 
			
		||||
          default = [
 | 
			
		||||
            "wlr"
 | 
			
		||||
          ];
 | 
			
		||||
          default = ["gtk"];
 | 
			
		||||
          "org.freedesktop.impl.portal.Secret" = ["gnome-keyring"];
 | 
			
		||||
        };
 | 
			
		||||
      };
 | 
			
		||||
      xdgOpenUsePortal = true;
 | 
			
		||||
      extraPortals = with pkgs; [
 | 
			
		||||
        xdg-desktop-portal-wlr
 | 
			
		||||
        xdg-desktop-portal-gtk
 | 
			
		||||
 
 | 
			
		||||
@@ -12,24 +12,24 @@
 | 
			
		||||
    (modulesPath + "/installer/scan/not-detected.nix")
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  boot.initrd.availableKernelModules = ["nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod"];
 | 
			
		||||
  boot.initrd.availableKernelModules = ["nvme" "xhci_pci" "thunderbolt" "ahci" "usb_storage" "usbhid" "sd_mod"];
 | 
			
		||||
  boot.initrd.kernelModules = [];
 | 
			
		||||
  boot.kernelModules = ["kvm-amd"];
 | 
			
		||||
  boot.extraModulePackages = [];
 | 
			
		||||
 | 
			
		||||
  fileSystems."/" = {
 | 
			
		||||
    device = "/dev/disk/by-label/COMPUTER";
 | 
			
		||||
    device = "/dev/disk/by-uuid/f8f39aae-61d2-437d-a8e1-01066bbb3c5c";
 | 
			
		||||
    fsType = "xfs";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  fileSystems."/boot" = {
 | 
			
		||||
    device = "/dev/disk/by-label/BOOT";
 | 
			
		||||
    device = "/dev/disk/by-uuid/B72F-087F";
 | 
			
		||||
    fsType = "vfat";
 | 
			
		||||
    options = ["fmask=0022" "dmask=0022"];
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  swapDevices = [
 | 
			
		||||
    {device = "/dev/disk/by-label/SWAP";}
 | 
			
		||||
    {device = "/dev/disk/by-uuid/6d6bcc02-20a9-4ae8-9c1e-5124fb2b2634";}
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
 | 
			
		||||
 
 | 
			
		||||
@@ -6,4 +6,4 @@ Licensed by the Mozilla Public License v2
 | 
			
		||||
 | 
			
		||||
## Synopsis
 | 
			
		||||
 | 
			
		||||
This directory is currently empty so, currently, there's nothing to see! However, this is where the machine-specific configuration files for hostname `valefor` live, my apartment appliance server. These files get called by the root `flake.nix` file.
 | 
			
		||||
This is where the machine-specific configuration files for hostname `valefor` live, my apartment appliance server. These files get called by the root `flake.nix` file.
 | 
			
		||||
@@ -27,18 +27,6 @@
 | 
			
		||||
  # Set your timezone
 | 
			
		||||
  time.timeZone = "America/Detroit";
 | 
			
		||||
 | 
			
		||||
  # Install packages to be installed system-wide
 | 
			
		||||
  environment.systemPackages = with pkgs; [
 | 
			
		||||
    vim
 | 
			
		||||
    neovim
 | 
			
		||||
    git
 | 
			
		||||
    patchelf
 | 
			
		||||
    nix-ld
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  # Set the EDITOR global environment variable to neovim
 | 
			
		||||
  environment.variables.EDITOR = "nvim";
 | 
			
		||||
 | 
			
		||||
  # Enable OpenSSH
 | 
			
		||||
  services.openssh.enable = true;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -5,7 +5,7 @@
 | 
			
		||||
}:
 | 
			
		||||
with lib; {
 | 
			
		||||
  options = {
 | 
			
		||||
    security.sudo = {
 | 
			
		||||
    security.sudoers = {
 | 
			
		||||
      needsPassword = mkOption {
 | 
			
		||||
        type = types.bool;
 | 
			
		||||
        default = true;
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										33
									
								
								modules/sound/focusrite.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								modules/sound/focusrite.nix
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,33 @@
 | 
			
		||||
# Must be paired with the pipewire Nix module, this does nothing but install packages
 | 
			
		||||
{
 | 
			
		||||
  config,
 | 
			
		||||
  lib,
 | 
			
		||||
  pkgs,
 | 
			
		||||
  ...
 | 
			
		||||
}:
 | 
			
		||||
with lib; let
 | 
			
		||||
  cfg = config.sound.hardware.focusrite;
 | 
			
		||||
in {
 | 
			
		||||
  options.sound.hardware.focusrite = {
 | 
			
		||||
    enable = mkEnableOption "Focusrite audio interface support";
 | 
			
		||||
    guiSupport = mkOption {
 | 
			
		||||
      type = types.bool;
 | 
			
		||||
      default = false;
 | 
			
		||||
      description = "Enable GUI support for Focusrite Scarlett audio interface (installs alsa-scarlett-gui)";
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
  config = mkIf cfg.enable (mkMerge [
 | 
			
		||||
    {
 | 
			
		||||
      environment.systemPackages = with pkgs;
 | 
			
		||||
        [
 | 
			
		||||
          scarlett2
 | 
			
		||||
          alsa-scarlett-gui
 | 
			
		||||
        ]
 | 
			
		||||
        ++ (
 | 
			
		||||
          if cfg.guiSupport
 | 
			
		||||
          then [pkgs.alsa-scarlett-gui]
 | 
			
		||||
          else []
 | 
			
		||||
        );
 | 
			
		||||
    }
 | 
			
		||||
  ]);
 | 
			
		||||
}
 | 
			
		||||
@@ -1,7 +1,16 @@
 | 
			
		||||
{pkgs, ...}: {
 | 
			
		||||
{ lib, pkgs, userName, ...}: {
 | 
			
		||||
  services.shairport-sync = {
 | 
			
		||||
    enable = pkgs.stdenv.isLinux;
 | 
			
		||||
    openFirewall = pkgs.stdenv.isLinux;
 | 
			
		||||
    arguments = "-v -o pw";
 | 
			
		||||
    # arguments = "-v -o pa";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  systemd.services.shairport-sync = {
 | 
			
		||||
    serviceConfig = {
 | 
			
		||||
      User = lib.mkForce "${userName}";
 | 
			
		||||
    };
 | 
			
		||||
    environment = {
 | 
			
		||||
      XDG_RUNTIME_DIR = "/run/user/1000";
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user