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
 | 
					set $term alacritty
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Menu (rofi)
 | 
					# Menu (rofi)
 | 
				
			||||||
set $rofi_cmd rofi -terminal '$term'
 | 
					set $menu wofi --term '$term'
 | 
				
			||||||
set $menu $rofi_cmd -show combi -combi-modes drun#run -modes combi
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
### Output configuration
 | 
					### Output configuration
 | 
				
			||||||
output DP-3 pos 3840 0 res 1920x1080@59Hz
 | 
					output DP-3 pos 1920 0 res 1920x1080@60Hz
 | 
				
			||||||
output HDMI-A-1 pos 0 0 res 1920x1080@59Hz
 | 
					output HDMI-A-1 pos 0 0 res 1920x1080@60Hz
 | 
				
			||||||
output DP-2 pos 1920 0 res 1920x1080@60Hz
 | 
					output DP-2 pos 3840 0 res 1920x1080@60Hz
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### Wallpaper
 | 
					### Wallpaper
 | 
				
			||||||
output HDMI-A-1 bg ~/.wallpaper/.wallpaper.png fill
 | 
					output HDMI-A-1 bg ~/.wallpaper/.wallpaper.png fill
 | 
				
			||||||
@@ -26,18 +25,22 @@ output DP-3 bg ~/.wallpaper/.wallpaper.png fill
 | 
				
			|||||||
### Workspace binding
 | 
					### Workspace binding
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## DP-3 bindings
 | 
					## DP-3 bindings
 | 
				
			||||||
workspace 1 output DP-2
 | 
					workspace 1 output DP-3
 | 
				
			||||||
workspace 2 output DP-2
 | 
					workspace 2 output DP-3
 | 
				
			||||||
 | 
					workspace 4 output DP-3
 | 
				
			||||||
 | 
					workspace 5 output DP-3
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## HDMI-A-1 bindings
 | 
					## HDMI-A-1 bindings
 | 
				
			||||||
workspace 3 output HDMI-A-1
 | 
					workspace 3 output HDMI-A-1
 | 
				
			||||||
 | 
					workspace 9 output HDMI-A-1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## DP-2 bindings
 | 
					## DP-2 bindings
 | 
				
			||||||
workspace 6 output DP-3
 | 
					workspace 6 output DP-2
 | 
				
			||||||
workspace 7 output DP-3
 | 
					workspace 7 output DP-2
 | 
				
			||||||
 | 
					workspace 8 output DP-2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### Colour options
 | 
					### Colour options
 | 
				
			||||||
set $bg 	#24283b
 | 
					set $bg 	       #24283b
 | 
				
			||||||
set $bg-inactive   #323232
 | 
					set $bg-inactive   #323232
 | 
				
			||||||
set $bg-urgent     #000000
 | 
					set $bg-urgent     #000000
 | 
				
			||||||
set $text          #eeeeec
 | 
					set $text          #eeeeec
 | 
				
			||||||
@@ -87,8 +90,9 @@ floating_modifier $mod normal
 | 
				
			|||||||
    # Reload the configuration file
 | 
					    # Reload the configuration file
 | 
				
			||||||
    bindsym $mod+Shift+c reload
 | 
					    bindsym $mod+Shift+c reload
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Exit sway (logs you out of your Wayland session)
 | 
					    # Shutdown and reboot hotkeys
 | 
				
			||||||
    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'
 | 
					    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
 | 
					### Navigation
 | 
				
			||||||
    # Move your focus around
 | 
					    # Move your focus around
 | 
				
			||||||
@@ -182,8 +186,9 @@ mode "resize" {
 | 
				
			|||||||
    bindsym Return mode "default"
 | 
					    bindsym Return mode "default"
 | 
				
			||||||
    bindsym Escape mode "default"
 | 
					    bindsym Escape mode "default"
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
bindsym $mod+r mode "resize"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### resize
 | 
				
			||||||
 | 
					bindsym $mod+r mode "resize"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### Audio and brightness keybinds
 | 
					### Audio and brightness keybinds
 | 
				
			||||||
bindsym XF86AudioRaiseVolume exec pactl set-sink-volume @DEFAULT_SINK@ +5%
 | 
					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 XF86MonBrightnessUp exec light -A 5
 | 
				
			||||||
bindsym XF86MonBrightnessDown exec light -U 5
 | 
					bindsym XF86MonBrightnessDown exec light -U 5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### Lock the screen so my brother 
 | 
					### Lock the screen
 | 
				
			||||||
### won't dick with my computer
 | 
					bindsym $mod+Ctrl+q 'swaylock -f -i /home/wyatt/.wallpaper/.wallpaper_lock.png'
 | 
				
			||||||
bindsym $mod+Ctrl+l 'swaylock -f -i /home/wyatt/.wallpaper_lock.jpeg'
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
### Status Bar:
 | 
					### Status Bar:
 | 
				
			||||||
bar {
 | 
					bar {
 | 
				
			||||||
    swaybar_command waybar
 | 
					    swaybar_command waybar
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
### Font settings:
 | 
					### Font settings:
 | 
				
			||||||
font pango:FiraCode: 14px
 | 
					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": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1748044287,
 | 
					        "lastModified": 1759509947,
 | 
				
			||||||
        "narHash": "sha256-9bJzyUX5+HXYmI60WMGYXXDdhGbSh1Le6yBM4og3K7E=",
 | 
					        "narHash": "sha256-4XifSIHfpJKcCf5bZZRhj8C4aCpjNBaE3kXr02s4rHU=",
 | 
				
			||||||
        "owner": "lnl7",
 | 
					        "owner": "lnl7",
 | 
				
			||||||
        "repo": "nix-darwin",
 | 
					        "repo": "nix-darwin",
 | 
				
			||||||
        "rev": "2456ff5c95edfc3b197cb012b947012faed77591",
 | 
					        "rev": "000eadb231812ad6ea6aebd7526974aaf4e79355",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
@@ -24,11 +24,11 @@
 | 
				
			|||||||
    "flake-compat": {
 | 
					    "flake-compat": {
 | 
				
			||||||
      "flake": false,
 | 
					      "flake": false,
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1733328505,
 | 
					        "lastModified": 1747046372,
 | 
				
			||||||
        "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
 | 
					        "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
 | 
				
			||||||
        "owner": "edolstra",
 | 
					        "owner": "edolstra",
 | 
				
			||||||
        "repo": "flake-compat",
 | 
					        "repo": "flake-compat",
 | 
				
			||||||
        "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
 | 
					        "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
@@ -59,17 +59,16 @@
 | 
				
			|||||||
      "inputs": {
 | 
					      "inputs": {
 | 
				
			||||||
        "flake-compat": "flake-compat",
 | 
					        "flake-compat": "flake-compat",
 | 
				
			||||||
        "flake-utils": "flake-utils",
 | 
					        "flake-utils": "flake-utils",
 | 
				
			||||||
        "nixpkgs-stable": "nixpkgs-stable",
 | 
					        "nixpkgs": "nixpkgs",
 | 
				
			||||||
        "nixpkgs-unstable": "nixpkgs-unstable",
 | 
					 | 
				
			||||||
        "zig": "zig",
 | 
					        "zig": "zig",
 | 
				
			||||||
        "zon2nix": "zon2nix"
 | 
					        "zon2nix": "zon2nix"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1748207486,
 | 
					        "lastModified": 1760808459,
 | 
				
			||||||
        "narHash": "sha256-4kR7VyauWpNMrBePHMM8yzQvUzHHGRVkQpJ3DyoKcH0=",
 | 
					        "narHash": "sha256-+3ups2SbJ2y2CknaoC8P4IphJDWG/yo5loW01BF7STw=",
 | 
				
			||||||
        "owner": "ghostty-org",
 | 
					        "owner": "ghostty-org",
 | 
				
			||||||
        "repo": "ghostty",
 | 
					        "repo": "ghostty",
 | 
				
			||||||
        "rev": "3f6c02b49e08aed51e4be85d87b79b9dbea34a85",
 | 
					        "rev": "be0da4845cb629bcf1f5f1890a28850bb7adfe16",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
@@ -85,11 +84,11 @@
 | 
				
			|||||||
        ]
 | 
					        ]
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1747556831,
 | 
					        "lastModified": 1758463745,
 | 
				
			||||||
        "narHash": "sha256-Qb84nbYFFk0DzFeqVoHltS2RodAYY5/HZQKE8WnBDsc=",
 | 
					        "narHash": "sha256-uhzsV0Q0I9j2y/rfweWeGif5AWe0MGrgZ/3TjpDYdGA=",
 | 
				
			||||||
        "owner": "nix-community",
 | 
					        "owner": "nix-community",
 | 
				
			||||||
        "repo": "home-manager",
 | 
					        "repo": "home-manager",
 | 
				
			||||||
        "rev": "d0bbd221482c2713cccb80220f3c9d16a6e20a33",
 | 
					        "rev": "3b955f5f0a942f9f60cdc9cacb7844335d0f21c3",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
@@ -117,11 +116,37 @@
 | 
				
			|||||||
    },
 | 
					    },
 | 
				
			||||||
    "nixpkgs": {
 | 
					    "nixpkgs": {
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1747953325,
 | 
					        "lastModified": 315532800,
 | 
				
			||||||
        "narHash": "sha256-y2ZtlIlNTuVJUZCqzZAhIw5rrKP4DOSklev6c8PyCkQ=",
 | 
					        "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",
 | 
					        "owner": "nixos",
 | 
				
			||||||
        "repo": "nixpkgs",
 | 
					        "repo": "nixpkgs",
 | 
				
			||||||
        "rev": "55d1f923c480dadce40f5231feb472e81b0bab48",
 | 
					        "rev": "98ff3f9af2684f6136c24beef08f5e2033fc5389",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
@@ -131,45 +156,13 @@
 | 
				
			|||||||
        "type": "github"
 | 
					        "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": {
 | 
					    "root": {
 | 
				
			||||||
      "inputs": {
 | 
					      "inputs": {
 | 
				
			||||||
        "darwin": "darwin",
 | 
					        "darwin": "darwin",
 | 
				
			||||||
        "ghostty": "ghostty",
 | 
					        "ghostty": "ghostty",
 | 
				
			||||||
        "home-manager": "home-manager",
 | 
					        "home-manager": "home-manager",
 | 
				
			||||||
        "nix-flatpak": "nix-flatpak",
 | 
					        "nix-flatpak": "nix-flatpak",
 | 
				
			||||||
        "nixpkgs": "nixpkgs"
 | 
					        "nixpkgs": "nixpkgs_3"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "systems": {
 | 
					    "systems": {
 | 
				
			||||||
@@ -190,7 +183,8 @@
 | 
				
			|||||||
    "zig": {
 | 
					    "zig": {
 | 
				
			||||||
      "inputs": {
 | 
					      "inputs": {
 | 
				
			||||||
        "flake-compat": [
 | 
					        "flake-compat": [
 | 
				
			||||||
          "ghostty"
 | 
					          "ghostty",
 | 
				
			||||||
 | 
					          "flake-compat"
 | 
				
			||||||
        ],
 | 
					        ],
 | 
				
			||||||
        "flake-utils": [
 | 
					        "flake-utils": [
 | 
				
			||||||
          "ghostty",
 | 
					          "ghostty",
 | 
				
			||||||
@@ -198,15 +192,15 @@
 | 
				
			|||||||
        ],
 | 
					        ],
 | 
				
			||||||
        "nixpkgs": [
 | 
					        "nixpkgs": [
 | 
				
			||||||
          "ghostty",
 | 
					          "ghostty",
 | 
				
			||||||
          "nixpkgs-stable"
 | 
					          "nixpkgs"
 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1741825901,
 | 
					        "lastModified": 1760401936,
 | 
				
			||||||
        "narHash": "sha256-aeopo+aXg5I2IksOPFN79usw7AeimH1+tjfuMzJHFdk=",
 | 
					        "narHash": "sha256-/zj5GYO5PKhBWGzbHbqT+ehY8EghuABdQ2WGfCwZpCQ=",
 | 
				
			||||||
        "owner": "mitchellh",
 | 
					        "owner": "mitchellh",
 | 
				
			||||||
        "repo": "zig-overlay",
 | 
					        "repo": "zig-overlay",
 | 
				
			||||||
        "rev": "0b14285e283f5a747f372fb2931835dd937c4383",
 | 
					        "rev": "365085b6652259753b598d43b723858184980bbe",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
@@ -217,27 +211,20 @@
 | 
				
			|||||||
    },
 | 
					    },
 | 
				
			||||||
    "zon2nix": {
 | 
					    "zon2nix": {
 | 
				
			||||||
      "inputs": {
 | 
					      "inputs": {
 | 
				
			||||||
        "flake-utils": [
 | 
					        "nixpkgs": "nixpkgs_2"
 | 
				
			||||||
          "ghostty",
 | 
					 | 
				
			||||||
          "flake-utils"
 | 
					 | 
				
			||||||
        ],
 | 
					 | 
				
			||||||
        "nixpkgs": [
 | 
					 | 
				
			||||||
          "ghostty",
 | 
					 | 
				
			||||||
          "nixpkgs-unstable"
 | 
					 | 
				
			||||||
        ]
 | 
					 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1742104771,
 | 
					        "lastModified": 1758405547,
 | 
				
			||||||
        "narHash": "sha256-LhidlyEA9MP8jGe1rEnyjGFCzLLgCdDpYeWggibayr0=",
 | 
					        "narHash": "sha256-WgaDgvIZMPvlZcZrpPMjkaalTBnGF2lTG+62znXctWM=",
 | 
				
			||||||
        "owner": "jcollie",
 | 
					        "owner": "jcollie",
 | 
				
			||||||
        "repo": "zon2nix",
 | 
					        "repo": "zon2nix",
 | 
				
			||||||
        "rev": "56c159be489cc6c0e73c3930bd908ddc6fe89613",
 | 
					        "rev": "bf983aa90ff169372b9fa8c02e57ea75e0b42245",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
        "owner": "jcollie",
 | 
					        "owner": "jcollie",
 | 
				
			||||||
        "ref": "56c159be489cc6c0e73c3930bd908ddc6fe89613",
 | 
					 | 
				
			||||||
        "repo": "zon2nix",
 | 
					        "repo": "zon2nix",
 | 
				
			||||||
 | 
					        "rev": "bf983aa90ff169372b9fa8c02e57ea75e0b42245",
 | 
				
			||||||
        "type": "github"
 | 
					        "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
 | 
					    ./sway.nix
 | 
				
			||||||
    ./terminal.nix
 | 
					    ./terminal.nix
 | 
				
			||||||
    ./browser.nix
 | 
					    ./browser.nix
 | 
				
			||||||
 | 
					    ./zellij.nix
 | 
				
			||||||
 | 
					    ./bat.nix
 | 
				
			||||||
  ];
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # Home Manager needs a bit of information about you and the
 | 
					  # Home Manager needs a bit of information about you and the
 | 
				
			||||||
@@ -39,6 +41,7 @@ in {
 | 
				
			|||||||
    sessionVariables = {
 | 
					    sessionVariables = {
 | 
				
			||||||
      XDG_CURRENT_DESKTOP = "sway";
 | 
					      XDG_CURRENT_DESKTOP = "sway";
 | 
				
			||||||
      XDG_SESSION_TYPE = "wayland";
 | 
					      XDG_SESSION_TYPE = "wayland";
 | 
				
			||||||
 | 
					      XDG_SESSION_DESKTOP="sway";
 | 
				
			||||||
      XDG_CONFIG_HOME = "$HOME/.config";
 | 
					      XDG_CONFIG_HOME = "$HOME/.config";
 | 
				
			||||||
      XDG_CACHE_HOME = "$HOME/.cache";
 | 
					      XDG_CACHE_HOME = "$HOME/.cache";
 | 
				
			||||||
      XDG_DATA_HOME = "$HOME/.local/share";
 | 
					      XDG_DATA_HOME = "$HOME/.local/share";
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -15,7 +15,7 @@
 | 
				
			|||||||
    extraConfig = {
 | 
					    extraConfig = {
 | 
				
			||||||
      init.defaultBranch = "master";
 | 
					      init.defaultBranch = "master";
 | 
				
			||||||
      push.autoSetupRemote = true;
 | 
					      push.autoSetupRemote = true;
 | 
				
			||||||
      pull.merge = true;
 | 
					      pull.rebase = false;
 | 
				
			||||||
      merge.tool = "nvimdiff";
 | 
					      merge.tool = "nvimdiff";
 | 
				
			||||||
      mergetool.keepBackup = false;
 | 
					      mergetool.keepBackup = false;
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,7 +4,7 @@
 | 
				
			|||||||
  ...
 | 
					  ...
 | 
				
			||||||
}: {
 | 
					}: {
 | 
				
			||||||
  home.packages = with pkgs; [
 | 
					  home.packages = with pkgs; [
 | 
				
			||||||
    nnn # terminal file manager
 | 
					    yazi # terminal file manager
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # archives
 | 
					    # archives
 | 
				
			||||||
    zip
 | 
					    zip
 | 
				
			||||||
@@ -13,9 +13,7 @@
 | 
				
			|||||||
    p7zip
 | 
					    p7zip
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # utils
 | 
					    # utils
 | 
				
			||||||
    zellij
 | 
					 | 
				
			||||||
    tmux
 | 
					    tmux
 | 
				
			||||||
    bat
 | 
					 | 
				
			||||||
    lazygit
 | 
					    lazygit
 | 
				
			||||||
    bottom
 | 
					    bottom
 | 
				
			||||||
    ripgrep
 | 
					    ripgrep
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -11,6 +11,10 @@
 | 
				
			|||||||
    mcrcon
 | 
					    mcrcon
 | 
				
			||||||
    xfce.thunar
 | 
					    xfce.thunar
 | 
				
			||||||
    pavucontrol
 | 
					    pavucontrol
 | 
				
			||||||
 | 
					    godot
 | 
				
			||||||
 | 
					    aseprite
 | 
				
			||||||
 | 
					    gpu-screen-recorder
 | 
				
			||||||
 | 
					    gpu-screen-recorder-gtk
 | 
				
			||||||
    # ungoogled-chromium
 | 
					    # ungoogled-chromium
 | 
				
			||||||
  ]);
 | 
					  ]);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,4 +1,4 @@
 | 
				
			|||||||
{pkgs, ...}: {
 | 
					{pkgs, lib, ...}: {
 | 
				
			||||||
  programs.fish = {
 | 
					  programs.fish = {
 | 
				
			||||||
    enable = true;
 | 
					    enable = true;
 | 
				
			||||||
    # initExtra = ''
 | 
					    # initExtra = ''
 | 
				
			||||||
@@ -52,6 +52,27 @@
 | 
				
			|||||||
        '';
 | 
					        '';
 | 
				
			||||||
        onEvent = "fish_greeting";
 | 
					        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."sway/config".source = lib.mkForce (dirs.defaults + /sway/config);
 | 
				
			||||||
  xdg.configFile."waybar/config".source = lib.mkForce (dirs.defaults + /waybar/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);
 | 
					  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 = {
 | 
					  programs.waybar = {
 | 
				
			||||||
    enable = pkgs.stdenv.isLinux;
 | 
					    enable = pkgs.stdenv.isLinux;
 | 
				
			||||||
    systemd.enable = true;
 | 
					    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 = [
 | 
					  imports = [
 | 
				
			||||||
    ./core.nix
 | 
					    ./core.nix
 | 
				
			||||||
 | 
					    ./environment.nix
 | 
				
			||||||
    ./fonts.nix
 | 
					    ./fonts.nix
 | 
				
			||||||
    ./users.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, ... }:
 | 
				
			||||||
  lib,
 | 
					 | 
				
			||||||
  pkgs,
 | 
					 | 
				
			||||||
  userName,
 | 
					 | 
				
			||||||
  hostname,
 | 
					 | 
				
			||||||
  ...
 | 
					 | 
				
			||||||
} @ args: {
 | 
					 | 
				
			||||||
  imports = [
 | 
					 | 
				
			||||||
    ../security/sudo.nix
 | 
					 | 
				
			||||||
  ];
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
  networking.hostName = hostname;
 | 
					  networking.hostName = hostname;
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  # Don't forget to set a password with ‘passwd’!
 | 
					  users.users."${userName}" = {
 | 
				
			||||||
  users.users."${userName}" = lib.mkMerge [
 | 
					    home = if pkgs.stdenv.isDarwin 
 | 
				
			||||||
    {
 | 
					           then "/Users/${userName}" 
 | 
				
			||||||
      home =
 | 
					           else "/home/${userName}";
 | 
				
			||||||
        if pkgs.stdenv.isDarwin
 | 
					    description = userName;
 | 
				
			||||||
        then "/Users/${userName}"
 | 
					  } // lib.optionalAttrs pkgs.stdenv.isLinux {
 | 
				
			||||||
        else "/home/${userName}";
 | 
					    group = "${userName}";
 | 
				
			||||||
      description = userName;
 | 
					    isNormalUser = true;
 | 
				
			||||||
    }
 | 
					  };
 | 
				
			||||||
 | 
					 | 
				
			||||||
    (lib.mkIf (pkgs.stdenv.isLinux) {
 | 
					 | 
				
			||||||
      group = "${userName}";
 | 
					 | 
				
			||||||
      isNormalUser = true;
 | 
					 | 
				
			||||||
    })
 | 
					 | 
				
			||||||
  ];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  security.sudo.needsPassword = false;
 | 
					 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  users.groups.wyatt = {};
 | 
					  users.groups.wyatt = {};
 | 
				
			||||||
 | 
					 | 
				
			||||||
  nix.settings.trusted-users = [userName];
 | 
					  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 {
 | 
					in {
 | 
				
			||||||
  imports = [
 | 
					  imports = [
 | 
				
			||||||
    (import ../../apps/flatpak.nix {
 | 
					    (import ../../apps/flatpak.nix {
 | 
				
			||||||
      inherit lib pkgs flatpakPackages;
 | 
					      inherit lib pkgs flatpakPackages userName;
 | 
				
			||||||
    })
 | 
					    })
 | 
				
			||||||
    ../../apps/gaming.nix
 | 
					    ../../apps/gaming.nix
 | 
				
			||||||
 | 
					    ../../apps/appimage.nix
 | 
				
			||||||
    ../../graphics
 | 
					    ../../graphics
 | 
				
			||||||
    ../../pwrMgmt
 | 
					    ../../pwrMgmt
 | 
				
			||||||
    ../../networking/core.nix
 | 
					    ../../networking/core.nix
 | 
				
			||||||
    ../../sound/pipewire.nix
 | 
					    ../../sound/pipewire.nix
 | 
				
			||||||
    ../../sound/shairport.nix
 | 
					    ../../sound/shairport.nix
 | 
				
			||||||
 | 
					    ../../sound/focusrite.nix
 | 
				
			||||||
    ../../virtualization/podman.nix
 | 
					    ../../virtualization/podman.nix
 | 
				
			||||||
    ../../virtualization/hardware.nix
 | 
					    ../../virtualization/hardware.nix
 | 
				
			||||||
  ];
 | 
					  ];
 | 
				
			||||||
@@ -34,9 +36,13 @@ in {
 | 
				
			|||||||
  nix.settings.experimental-features = ["nix-command" "flakes"];
 | 
					  nix.settings.experimental-features = ["nix-command" "flakes"];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # Custom kernel/boot stuff
 | 
					  # Custom kernel/boot stuff
 | 
				
			||||||
  boot.kernelPackages = pkgs.linuxPackages_latest;
 | 
					  boot = {
 | 
				
			||||||
  boot.loader.systemd-boot.enable = true;
 | 
					    kernelPackages = pkgs.linuxPackages_latest;
 | 
				
			||||||
  boot.loader.efi.canTouchEfiVariables = true;
 | 
					    loader = {
 | 
				
			||||||
 | 
					      systemd-boot.enable = true;
 | 
				
			||||||
 | 
					      efi.canTouchEfiVariables = true;
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # Enable Bluetooth if present
 | 
					  # Enable Bluetooth if present
 | 
				
			||||||
  hardware.bluetooth.enable = true;
 | 
					  hardware.bluetooth.enable = true;
 | 
				
			||||||
@@ -46,40 +52,23 @@ in {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  # Install packages to be installed system-wide
 | 
					  # Install packages to be installed system-wide
 | 
				
			||||||
  environment.systemPackages = with pkgs; [
 | 
					  environment.systemPackages = with pkgs; [
 | 
				
			||||||
    vim
 | 
					 | 
				
			||||||
    neovim
 | 
					 | 
				
			||||||
    git
 | 
					 | 
				
			||||||
    wireguard-tools
 | 
					    wireguard-tools
 | 
				
			||||||
    grim
 | 
					    grim
 | 
				
			||||||
    slurp
 | 
					    slurp
 | 
				
			||||||
    playerctl
 | 
					    playerctl
 | 
				
			||||||
    light
 | 
					    light
 | 
				
			||||||
    brightnessctl
 | 
					    brightnessctl
 | 
				
			||||||
    firefox
 | 
					 | 
				
			||||||
    wttrbar
 | 
					    wttrbar
 | 
				
			||||||
    cliphist
 | 
					    cliphist
 | 
				
			||||||
    patchelf
 | 
					    xdg-desktop-portal-gtk
 | 
				
			||||||
    nix-ld
 | 
					    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
 | 
					  # Enable Polkit
 | 
				
			||||||
  security.polkit.enable = true;
 | 
					  security.polkit.enable = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -147,28 +136,54 @@ in {
 | 
				
			|||||||
    networkManager.enable = true;
 | 
					    networkManager.enable = true;
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # Enable dconf
 | 
					  programs = {
 | 
				
			||||||
  programs.dconf.enable = true;
 | 
					    # Enable GnuPG
 | 
				
			||||||
 | 
					    gnupg.agent = {
 | 
				
			||||||
 | 
					      enable = true;
 | 
				
			||||||
 | 
					      enableSSHSupport = true;
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # Enable SUID wrappers (some programs need them)
 | 
				
			||||||
 | 
					    mtr.enable = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # Enable dconf
 | 
				
			||||||
 | 
					    dconf.enable = true;
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # Add username to groups "wheel" and "video" - more may be added here later
 | 
					  # Add username to groups "wheel" and "video" - more may be added here later
 | 
				
			||||||
  users.users.${userName}.extraGroups = ["wheel" "video" "gamemode" "podman" "network"];
 | 
					  users.users.${userName}.extraGroups = ["wheel" "video" "gamemode" "podman" "network"];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # Flatpak packages (see ../../apps/flatpak.nix)
 | 
					  services = {
 | 
				
			||||||
  services.flatpak.packages = flatpakPackages;
 | 
					    # Enable OpenSSH
 | 
				
			||||||
 | 
					    openssh.enable = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # Enable keyring
 | 
				
			||||||
 | 
					    gnome.gnome-keyring.enable = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # Flatpak packages (see ../../apps/flatpak.nix)
 | 
				
			||||||
 | 
					    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 stuff
 | 
				
			||||||
  xdg = {
 | 
					  xdg = {
 | 
				
			||||||
    portal = {
 | 
					    portal = {
 | 
				
			||||||
      enable = true;
 | 
					      enable = true;
 | 
				
			||||||
      wlr.enable = true;
 | 
					 | 
				
			||||||
      config = {
 | 
					      config = {
 | 
				
			||||||
 | 
					        sway = {
 | 
				
			||||||
 | 
					          default = ["wlr" "gtk"];
 | 
				
			||||||
 | 
					          "org.freedesktop.impl.portal.Secret" = ["gnome-keyring"];
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
        common = {
 | 
					        common = {
 | 
				
			||||||
          default = [
 | 
					          default = ["gtk"];
 | 
				
			||||||
            "wlr"
 | 
					          "org.freedesktop.impl.portal.Secret" = ["gnome-keyring"];
 | 
				
			||||||
          ];
 | 
					 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
      };
 | 
					      };
 | 
				
			||||||
      xdgOpenUsePortal = true;
 | 
					 | 
				
			||||||
      extraPortals = with pkgs; [
 | 
					      extraPortals = with pkgs; [
 | 
				
			||||||
        xdg-desktop-portal-wlr
 | 
					        xdg-desktop-portal-wlr
 | 
				
			||||||
        xdg-desktop-portal-gtk
 | 
					        xdg-desktop-portal-gtk
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -12,24 +12,24 @@
 | 
				
			|||||||
    (modulesPath + "/installer/scan/not-detected.nix")
 | 
					    (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.initrd.kernelModules = [];
 | 
				
			||||||
  boot.kernelModules = ["kvm-amd"];
 | 
					  boot.kernelModules = ["kvm-amd"];
 | 
				
			||||||
  boot.extraModulePackages = [];
 | 
					  boot.extraModulePackages = [];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  fileSystems."/" = {
 | 
					  fileSystems."/" = {
 | 
				
			||||||
    device = "/dev/disk/by-label/COMPUTER";
 | 
					    device = "/dev/disk/by-uuid/f8f39aae-61d2-437d-a8e1-01066bbb3c5c";
 | 
				
			||||||
    fsType = "xfs";
 | 
					    fsType = "xfs";
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  fileSystems."/boot" = {
 | 
					  fileSystems."/boot" = {
 | 
				
			||||||
    device = "/dev/disk/by-label/BOOT";
 | 
					    device = "/dev/disk/by-uuid/B72F-087F";
 | 
				
			||||||
    fsType = "vfat";
 | 
					    fsType = "vfat";
 | 
				
			||||||
    options = ["fmask=0022" "dmask=0022"];
 | 
					    options = ["fmask=0022" "dmask=0022"];
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  swapDevices = [
 | 
					  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
 | 
					  # 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
 | 
					## 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
 | 
					  # Set your timezone
 | 
				
			||||||
  time.timeZone = "America/Detroit";
 | 
					  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
 | 
					  # Enable OpenSSH
 | 
				
			||||||
  services.openssh.enable = true;
 | 
					  services.openssh.enable = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -5,7 +5,7 @@
 | 
				
			|||||||
}:
 | 
					}:
 | 
				
			||||||
with lib; {
 | 
					with lib; {
 | 
				
			||||||
  options = {
 | 
					  options = {
 | 
				
			||||||
    security.sudo = {
 | 
					    security.sudoers = {
 | 
				
			||||||
      needsPassword = mkOption {
 | 
					      needsPassword = mkOption {
 | 
				
			||||||
        type = types.bool;
 | 
					        type = types.bool;
 | 
				
			||||||
        default = true;
 | 
					        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 = {
 | 
					  services.shairport-sync = {
 | 
				
			||||||
    enable = pkgs.stdenv.isLinux;
 | 
					    enable = pkgs.stdenv.isLinux;
 | 
				
			||||||
    openFirewall = 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