Compare commits
	
		
			21 Commits
		
	
	
		
			831fce71b8
			...
			shell-inhi
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 4feb5b89e8 | |||
| 29feb9223e | |||
| 7bc7749f51 | |||
| 51beed138e | |||
| 6ff4e13b03 | |||
| 13fc210f8b | |||
| 66eddc0345 | |||
| 27c114b801 | |||
| 936b4bbf44 | |||
| f06b17a336 | |||
| cb2edf6afb | |||
| 109684d09c | |||
| 4113b3ea57 | |||
| 760d686499 | |||
| 69e6329dea | |||
| fccb1ab4ae | |||
| 57cd69a153 | |||
| 2c6765bb5b | |||
| 30a72d9e74 | |||
| fefa6dd3de | |||
| 8785247675 | 
							
								
								
									
										5
									
								
								defaults/nvim/lua/plugins/discord.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								defaults/nvim/lua/plugins/discord.lua
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,5 @@
 | 
				
			|||||||
 | 
					return {
 | 
				
			||||||
 | 
					  { 
 | 
				
			||||||
 | 
					    'andweeb/presence.nvim',
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -10,8 +10,7 @@ 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 3840 0 res 1920x1080@59Hz
 | 
				
			||||||
@@ -28,13 +27,17 @@ output DP-3 bg ~/.wallpaper/.wallpaper.png fill
 | 
				
			|||||||
## DP-3 bindings
 | 
					## DP-3 bindings
 | 
				
			||||||
workspace 1 output DP-2
 | 
					workspace 1 output DP-2
 | 
				
			||||||
workspace 2 output DP-2
 | 
					workspace 2 output DP-2
 | 
				
			||||||
 | 
					workspace 4 output DP-2
 | 
				
			||||||
 | 
					workspace 5 output DP-2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## 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-3
 | 
				
			||||||
workspace 7 output DP-3
 | 
					workspace 7 output DP-3
 | 
				
			||||||
 | 
					workspace 8 output DP-3
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### Colour options
 | 
					### Colour options
 | 
				
			||||||
set $bg 	#24283b
 | 
					set $bg 	#24283b
 | 
				
			||||||
@@ -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"
 | 
				
			||||||
							
								
								
									
										95
									
								
								flake.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										95
									
								
								flake.lock
									
									
									
										generated
									
									
									
								
							@@ -7,11 +7,11 @@
 | 
				
			|||||||
        ]
 | 
					        ]
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1748044287,
 | 
					        "lastModified": 1749744770,
 | 
				
			||||||
        "narHash": "sha256-9bJzyUX5+HXYmI60WMGYXXDdhGbSh1Le6yBM4og3K7E=",
 | 
					        "narHash": "sha256-MEM9XXHgBF/Cyv1RES1t6gqAX7/tvayBC1r/KPyK1ls=",
 | 
				
			||||||
        "owner": "lnl7",
 | 
					        "owner": "lnl7",
 | 
				
			||||||
        "repo": "nix-darwin",
 | 
					        "repo": "nix-darwin",
 | 
				
			||||||
        "rev": "2456ff5c95edfc3b197cb012b947012faed77591",
 | 
					        "rev": "536f951efb1ccda9b968e3c9dee39fbeb6d3fdeb",
 | 
				
			||||||
        "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": 1754941490,
 | 
				
			||||||
        "narHash": "sha256-4kR7VyauWpNMrBePHMM8yzQvUzHHGRVkQpJ3DyoKcH0=",
 | 
					        "narHash": "sha256-2AJf0q4u1zakqjr0y4dCyqzdDSil8P5m2YpZxAAzJJw=",
 | 
				
			||||||
        "owner": "ghostty-org",
 | 
					        "owner": "ghostty-org",
 | 
				
			||||||
        "repo": "ghostty",
 | 
					        "repo": "ghostty",
 | 
				
			||||||
        "rev": "3f6c02b49e08aed51e4be85d87b79b9dbea34a85",
 | 
					        "rev": "5bf632e9cc0e77a578bad983b0cbdf0451ce87d4",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
@@ -85,11 +84,11 @@
 | 
				
			|||||||
        ]
 | 
					        ]
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1747556831,
 | 
					        "lastModified": 1753592768,
 | 
				
			||||||
        "narHash": "sha256-Qb84nbYFFk0DzFeqVoHltS2RodAYY5/HZQKE8WnBDsc=",
 | 
					        "narHash": "sha256-oV695RvbAE4+R9pcsT9shmp6zE/+IZe6evHWX63f2Qg=",
 | 
				
			||||||
        "owner": "nix-community",
 | 
					        "owner": "nix-community",
 | 
				
			||||||
        "repo": "home-manager",
 | 
					        "repo": "home-manager",
 | 
				
			||||||
        "rev": "d0bbd221482c2713cccb80220f3c9d16a6e20a33",
 | 
					        "rev": "fc3add429f21450359369af74c2375cb34a2d204",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
@@ -117,11 +116,24 @@
 | 
				
			|||||||
    },
 | 
					    },
 | 
				
			||||||
    "nixpkgs": {
 | 
					    "nixpkgs": {
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1747953325,
 | 
					        "lastModified": 1748189127,
 | 
				
			||||||
        "narHash": "sha256-y2ZtlIlNTuVJUZCqzZAhIw5rrKP4DOSklev6c8PyCkQ=",
 | 
					        "narHash": "sha256-zRDR+EbbeObu4V2X5QCd2Bk5eltfDlCr5yvhBwUT6pY=",
 | 
				
			||||||
 | 
					        "rev": "7c43f080a7f28b2774f3b3f43234ca11661bf334",
 | 
				
			||||||
 | 
					        "type": "tarball",
 | 
				
			||||||
 | 
					        "url": "https://releases.nixos.org/nixos/25.05/nixos-25.05.802491.7c43f080a7f2/nixexprs.tar.xz"
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      "original": {
 | 
				
			||||||
 | 
					        "type": "tarball",
 | 
				
			||||||
 | 
					        "url": "https://channels.nixos.org/nixos-25.05/nixexprs.tar.xz"
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "nixpkgs_2": {
 | 
				
			||||||
 | 
					      "locked": {
 | 
				
			||||||
 | 
					        "lastModified": 1754767907,
 | 
				
			||||||
 | 
					        "narHash": "sha256-8OnUzRQZkqtUol9vuUuQC30hzpMreKptNyET2T9lB6g=",
 | 
				
			||||||
        "owner": "nixos",
 | 
					        "owner": "nixos",
 | 
				
			||||||
        "repo": "nixpkgs",
 | 
					        "repo": "nixpkgs",
 | 
				
			||||||
        "rev": "55d1f923c480dadce40f5231feb472e81b0bab48",
 | 
					        "rev": "c5f08b62ed75415439d48152c2a784e36909b1bc",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
@@ -131,45 +143,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_2"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "systems": {
 | 
					    "systems": {
 | 
				
			||||||
@@ -190,7 +170,8 @@
 | 
				
			|||||||
    "zig": {
 | 
					    "zig": {
 | 
				
			||||||
      "inputs": {
 | 
					      "inputs": {
 | 
				
			||||||
        "flake-compat": [
 | 
					        "flake-compat": [
 | 
				
			||||||
          "ghostty"
 | 
					          "ghostty",
 | 
				
			||||||
 | 
					          "flake-compat"
 | 
				
			||||||
        ],
 | 
					        ],
 | 
				
			||||||
        "flake-utils": [
 | 
					        "flake-utils": [
 | 
				
			||||||
          "ghostty",
 | 
					          "ghostty",
 | 
				
			||||||
@@ -198,15 +179,15 @@
 | 
				
			|||||||
        ],
 | 
					        ],
 | 
				
			||||||
        "nixpkgs": [
 | 
					        "nixpkgs": [
 | 
				
			||||||
          "ghostty",
 | 
					          "ghostty",
 | 
				
			||||||
          "nixpkgs-stable"
 | 
					          "nixpkgs"
 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
        "lastModified": 1741825901,
 | 
					        "lastModified": 1748261582,
 | 
				
			||||||
        "narHash": "sha256-aeopo+aXg5I2IksOPFN79usw7AeimH1+tjfuMzJHFdk=",
 | 
					        "narHash": "sha256-3i0IL3s18hdDlbsf0/E+5kyPRkZwGPbSFngq5eToiAA=",
 | 
				
			||||||
        "owner": "mitchellh",
 | 
					        "owner": "mitchellh",
 | 
				
			||||||
        "repo": "zig-overlay",
 | 
					        "repo": "zig-overlay",
 | 
				
			||||||
        "rev": "0b14285e283f5a747f372fb2931835dd937c4383",
 | 
					        "rev": "aafb1b093fb838f7a02613b719e85ec912914221",
 | 
				
			||||||
        "type": "github"
 | 
					        "type": "github"
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
@@ -223,7 +204,7 @@
 | 
				
			|||||||
        ],
 | 
					        ],
 | 
				
			||||||
        "nixpkgs": [
 | 
					        "nixpkgs": [
 | 
				
			||||||
          "ghostty",
 | 
					          "ghostty",
 | 
				
			||||||
          "nixpkgs-unstable"
 | 
					          "nixpkgs"
 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "locked": {
 | 
					      "locked": {
 | 
				
			||||||
@@ -236,8 +217,8 @@
 | 
				
			|||||||
      },
 | 
					      },
 | 
				
			||||||
      "original": {
 | 
					      "original": {
 | 
				
			||||||
        "owner": "jcollie",
 | 
					        "owner": "jcollie",
 | 
				
			||||||
        "ref": "56c159be489cc6c0e73c3930bd908ddc6fe89613",
 | 
					 | 
				
			||||||
        "repo": "zon2nix",
 | 
					        "repo": "zon2nix",
 | 
				
			||||||
 | 
					        "rev": "56c159be489cc6c0e73c3930bd908ddc6fe89613",
 | 
				
			||||||
        "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,8 +15,9 @@
 | 
				
			|||||||
    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;
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    ignores = [
 | 
					    ignores = [
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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
 | 
				
			||||||
  ]);
 | 
					  ]);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										198
									
								
								home/shell.nix
									
									
									
									
									
								
							
							
						
						
									
										198
									
								
								home/shell.nix
									
									
									
									
									
								
							@@ -1,85 +1,125 @@
 | 
				
			|||||||
{pkgs, ...}: {
 | 
					{
 | 
				
			||||||
  programs.fish = {
 | 
					  lib,
 | 
				
			||||||
    enable = true;
 | 
					  pkgs,
 | 
				
			||||||
    # initExtra = ''
 | 
					  userName,
 | 
				
			||||||
    #   export PATH="$PATH:$HOME/bin:$HOME/.local/bin:$HOME/go/bin"
 | 
					  ...
 | 
				
			||||||
    # '';
 | 
					}: {
 | 
				
			||||||
 | 
					  programs = {
 | 
				
			||||||
    shellAliases = {
 | 
					    fish = {
 | 
				
			||||||
      # ls aliases
 | 
					      enable = true;
 | 
				
			||||||
      ls = "eza --color";
 | 
					      shellAliases = {
 | 
				
			||||||
      la = "eza -l -all --color";
 | 
					        # ls aliases
 | 
				
			||||||
      ll = "eza -l --color";
 | 
					        ls = "eza --color";
 | 
				
			||||||
      lt = "eza -l --color --git";
 | 
					        la = "eza -l -all --color";
 | 
				
			||||||
 | 
					        ll = "eza -l --color";
 | 
				
			||||||
      # lazygit alias
 | 
					        lt = "eza -l --color --git";
 | 
				
			||||||
      lg = "lazygit";
 | 
					        # lazygit alias
 | 
				
			||||||
 | 
					        lg = "lazygit";
 | 
				
			||||||
      # cat, less, more alias
 | 
					        # cat, less, more alias
 | 
				
			||||||
      cat = "bat";
 | 
					        cat = "bat";
 | 
				
			||||||
      less = "bat";
 | 
					        less = "bat";
 | 
				
			||||||
      more = "bat";
 | 
					        more = "bat";
 | 
				
			||||||
 | 
					        # top alias
 | 
				
			||||||
      # top alias
 | 
					        top = "btm";
 | 
				
			||||||
      top = "btm";
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    functions = {
 | 
					 | 
				
			||||||
      fish_greeting = {
 | 
					 | 
				
			||||||
        body = ''
 | 
					 | 
				
			||||||
          set memes \
 | 
					 | 
				
			||||||
            "Crazy? I was crazy once. They locked me in a room. A rubber room. A rubber room with rats. And rats make me crazy." \
 | 
					 | 
				
			||||||
            "Daddy, chill!" \
 | 
					 | 
				
			||||||
            "What the hell is even that?!" \
 | 
					 | 
				
			||||||
            "Road work ahead? Yeah, I sure hope it does!" \
 | 
					 | 
				
			||||||
            "Look at all those chickens!" \
 | 
					 | 
				
			||||||
            "I smell like beef" \
 | 
					 | 
				
			||||||
            "Say, Coloardo - I'M A GIRAFFE" \
 | 
					 | 
				
			||||||
            "I didn't get no sleep cause of y'all, y'all not gone get any sleep cause of me!" \
 | 
					 | 
				
			||||||
            "This is the dollar store, how good can it be?" \
 | 
					 | 
				
			||||||
            "That was legitness" \
 | 
					 | 
				
			||||||
            "Deez nuts" \
 | 
					 | 
				
			||||||
            "I wanna be a cowboy baby" \
 | 
					 | 
				
			||||||
            "Can I get a waffle? Can I please get a waffle?" \
 | 
					 | 
				
			||||||
            "I'm lesbian. I thought you were American." \
 | 
					 | 
				
			||||||
            "You gotta give 'em that 'hawk tuah' and spit on that thang!" \
 | 
					 | 
				
			||||||
            "We don't do that here..."
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
          set choose_meme (random)"%"(count $memes)
 | 
					 | 
				
			||||||
          set choose_meme $memes[(math $choose_meme"+1")]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
          printf (set_color F90)"%s\n" $choose_meme
 | 
					 | 
				
			||||||
        '';
 | 
					 | 
				
			||||||
        onEvent = "fish_greeting";
 | 
					 | 
				
			||||||
      };
 | 
					      };
 | 
				
			||||||
 | 
					      functions =
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					          fish_greeting = {
 | 
				
			||||||
 | 
					            body = ''
 | 
				
			||||||
 | 
					              set memes \
 | 
				
			||||||
 | 
					                "Crazy? I was crazy once. They locked me in a room. A rubber room. A rubber room with rats. And rats make me crazy." \
 | 
				
			||||||
 | 
					                "Daddy, chill!" \
 | 
				
			||||||
 | 
					                "What the hell is even that?!" \
 | 
				
			||||||
 | 
					                "Road work ahead? Yeah, I sure hope it does!" \
 | 
				
			||||||
 | 
					                "Look at all those chickens!" \
 | 
				
			||||||
 | 
					                "I smell like beef" \
 | 
				
			||||||
 | 
					                "Say, Coloardo - I'M A GIRAFFE" \
 | 
				
			||||||
 | 
					                "I didn't get no sleep cause of y'all, y'all not gone get any sleep cause of me!" \
 | 
				
			||||||
 | 
					                "This is the dollar store, how good can it be?" \
 | 
				
			||||||
 | 
					                "That was legitness" \
 | 
				
			||||||
 | 
					                "Deez nuts" \
 | 
				
			||||||
 | 
					                "I wanna be a cowboy baby" \
 | 
				
			||||||
 | 
					                "Can I get a waffle? Can I please get a waffle?" \
 | 
				
			||||||
 | 
					                "I'm lesbian. I thought you were American." \
 | 
				
			||||||
 | 
					                "You gotta give 'em that 'hawk tuah' and spit on that thang!" \
 | 
				
			||||||
 | 
					                "We don't do that here..." \
 | 
				
			||||||
 | 
					                "What are those?! They are my crocs..." \
 | 
				
			||||||
 | 
					                "It's an avocado... Thanks!" \
 | 
				
			||||||
 | 
					                "I am once again asking for your financial support" \
 | 
				
			||||||
 | 
					                "Is that a weed?" \
 | 
				
			||||||
 | 
					                "No, this is Patrick!" \
 | 
				
			||||||
 | 
					                "Come ride, heroes, ride" \
 | 
				
			||||||
 | 
					                "Away with the tide" \
 | 
				
			||||||
 | 
					                "Concede your mind unto the fiend" \
 | 
				
			||||||
 | 
					                "Darkness come, rend the shield of light" \
 | 
				
			||||||
 | 
					                "The sun is setting, darkness taking over - a date with chaos and you're dressed to the nines" \
 | 
				
			||||||
 | 
					                "Now kneel overdweller, your lord commands, there's no salvation for the sons of man" \
 | 
				
			||||||
 | 
					                "Snap click clank whirr whizz wham boom!" \
 | 
				
			||||||
 | 
					                "Rohs an kyn ala na"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					              set choose_meme (random)"%"(count $memes)
 | 
				
			||||||
 | 
					              set choose_meme $memes[(math $choose_meme"+1")]
 | 
				
			||||||
 | 
					              printf (set_color F90)"%s\n" $choose_meme
 | 
				
			||||||
 | 
					            '';
 | 
				
			||||||
 | 
					            # onEvent = "fish_greeting";
 | 
				
			||||||
 | 
					          };
 | 
				
			||||||
 | 
					        } // (lib.mkIf pkgs.stdenv.isLinux {
 | 
				
			||||||
 | 
					          block = {
 | 
				
			||||||
 | 
					            body = ''
 | 
				
			||||||
 | 
					              echo "Starting systemd-inhibit..."
 | 
				
			||||||
 | 
					              set inhibit_pid_file /tmp/fish_inhibit_pid_(whoami)
 | 
				
			||||||
 | 
					              bash -c 'systemd-inhibit --no-ask-password --what=idle --who="'${userName}'" --why="manual invocation" sh & echo $! > '"$inhibit_pid_file"' && disown'
 | 
				
			||||||
 | 
					              if test -f $inhibit_pid_file
 | 
				
			||||||
 | 
					                set -g INHIBIT_PID (cat $inhibit_pid_file)
 | 
				
			||||||
 | 
					                echo "Inhibit process started with PID: $INHIBIT_PID"
 | 
				
			||||||
 | 
					              else
 | 
				
			||||||
 | 
					                echo "Failed to start inhibit process"
 | 
				
			||||||
 | 
					                return 1
 | 
				
			||||||
 | 
					              end
 | 
				
			||||||
 | 
					            '';
 | 
				
			||||||
 | 
					          };
 | 
				
			||||||
 | 
					          unblock = {
 | 
				
			||||||
 | 
					            body = ''
 | 
				
			||||||
 | 
					              set inhibit_pid_file /tmp/fish_inhibit_pid_(whoami)
 | 
				
			||||||
 | 
					              if test -f $inhibit_pid_file
 | 
				
			||||||
 | 
					                set INHIBIT_PID (cat $inhibit_pid_file)
 | 
				
			||||||
 | 
					                echo "Killing inhibit process: $INHIBIT_PID"
 | 
				
			||||||
 | 
					                kill -SIGTERM $INHIBIT_PID 2>/dev/null; or kill -SIGKILL $INHIBIT_PID 2>/dev/null
 | 
				
			||||||
 | 
					                rm -f $inhibit_pid_file
 | 
				
			||||||
 | 
					                set -e INHIBIT_PID
 | 
				
			||||||
 | 
					                echo "Inhibit process terminated"
 | 
				
			||||||
 | 
					              else
 | 
				
			||||||
 | 
					                echo "No inhibit process file found"
 | 
				
			||||||
 | 
					              end
 | 
				
			||||||
 | 
					            '';
 | 
				
			||||||
 | 
					          };
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
  };
 | 
					    zsh = {
 | 
				
			||||||
 | 
					      enable = true;
 | 
				
			||||||
  programs.zsh = {
 | 
					      initContent = ''
 | 
				
			||||||
    enable = true;
 | 
					        if [[ -z "$BASH_EXECUTION_STRING" ]]; then
 | 
				
			||||||
    initContent = ''
 | 
					          if [[ -n "$ZSH_VERSION" ]]; then
 | 
				
			||||||
      if [[ -z "$BASH_EXECUTION_STRING" ]]; then
 | 
					            LOGIN_OPTION="--login"
 | 
				
			||||||
        if [[ -n "$ZSH_VERSION" ]]; then
 | 
					          else
 | 
				
			||||||
          LOGIN_OPTION="--login"
 | 
					            LOGIN_OPTION=""
 | 
				
			||||||
        else
 | 
					          fi
 | 
				
			||||||
          LOGIN_OPTION=""
 | 
					          exec ${pkgs.fish}/bin/fish $LOGIN_OPTION
 | 
				
			||||||
        fi
 | 
					        fi
 | 
				
			||||||
        exec ${pkgs.fish}/bin/fish $LOGIN_OPTION
 | 
					      '';
 | 
				
			||||||
      fi
 | 
					    };
 | 
				
			||||||
    '';
 | 
					    bash = {
 | 
				
			||||||
  };
 | 
					      enable = true;
 | 
				
			||||||
 | 
					      initExtra = ''
 | 
				
			||||||
  programs.bash = {
 | 
					        if [[ -z "$BASH_EXECUTION_STRING" ]]; then
 | 
				
			||||||
    enable = true;
 | 
					          if [[ -n "$ZSH_VERSION" ]]; then
 | 
				
			||||||
    initExtra = ''
 | 
					            LOGIN_OPTION="--login"
 | 
				
			||||||
      if [[ -z "$BASH_EXECUTION_STRING" ]]; then
 | 
					          else
 | 
				
			||||||
        if [[ -n "$ZSH_VERSION" ]]; then
 | 
					            LOGIN_OPTION=""
 | 
				
			||||||
          LOGIN_OPTION="--login"
 | 
					          fi
 | 
				
			||||||
        else
 | 
					          exec ${pkgs.fish}/bin/fish $LOGIN_OPTION
 | 
				
			||||||
          LOGIN_OPTION=""
 | 
					 | 
				
			||||||
        fi
 | 
					        fi
 | 
				
			||||||
        exec ${pkgs.fish}/bin/fish $LOGIN_OPTION
 | 
					      '';
 | 
				
			||||||
      fi
 | 
					    };
 | 
				
			||||||
    '';
 | 
					 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										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
 | 
				
			||||||
  ];
 | 
					  ];
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										20
									
								
								modules/common/environment.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								modules/common/environment.nix
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,20 @@
 | 
				
			|||||||
 | 
					{ lib, pkgs, ... }: {
 | 
				
			||||||
 | 
					  # Common packages that every system will use
 | 
				
			||||||
 | 
					  environment.systemPackages = with pkgs; [
 | 
				
			||||||
 | 
					    git
 | 
				
			||||||
 | 
					    vim
 | 
				
			||||||
 | 
					    neovim
 | 
				
			||||||
 | 
					    usbutils
 | 
				
			||||||
 | 
					    coreutils
 | 
				
			||||||
 | 
					    lshw
 | 
				
			||||||
 | 
					    systemd
 | 
				
			||||||
 | 
					    dmidecode
 | 
				
			||||||
 | 
					    pciutils
 | 
				
			||||||
 | 
					    nix-ld
 | 
				
			||||||
 | 
					    patchelf
 | 
				
			||||||
 | 
					    htop
 | 
				
			||||||
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Common environment variables that every system will use
 | 
				
			||||||
 | 
					  environment.variables.EDITOR = "nvim";
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -5,10 +5,6 @@
 | 
				
			|||||||
  hostname,
 | 
					  hostname,
 | 
				
			||||||
  ...
 | 
					  ...
 | 
				
			||||||
} @ args: {
 | 
					} @ args: {
 | 
				
			||||||
  imports = [
 | 
					 | 
				
			||||||
    ../security/sudo.nix
 | 
					 | 
				
			||||||
  ];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  networking.hostName = hostname;
 | 
					  networking.hostName = hostname;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  # Don't forget to set a password with ‘passwd’!
 | 
					  # Don't forget to set a password with ‘passwd’!
 | 
				
			||||||
@@ -27,7 +23,19 @@
 | 
				
			|||||||
    })
 | 
					    })
 | 
				
			||||||
  ];
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  security.sudo.needsPassword = false;
 | 
					  security.sudo = {
 | 
				
			||||||
 | 
					    extraRules = [
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
					        groups = [ "wheel" ];
 | 
				
			||||||
 | 
					        commands = [
 | 
				
			||||||
 | 
					          {
 | 
				
			||||||
 | 
					            command = "ALL";
 | 
				
			||||||
 | 
					            options = [ "NOPASSWD" "SETENV" ];
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					        ];
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    ];
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  users.groups.wyatt = {};
 | 
					  users.groups.wyatt = {};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -21,11 +21,13 @@ in {
 | 
				
			|||||||
      inherit lib pkgs flatpakPackages;
 | 
					      inherit lib pkgs flatpakPackages;
 | 
				
			||||||
    })
 | 
					    })
 | 
				
			||||||
    ../../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
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										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 []
 | 
				
			||||||
 | 
					        );
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  ]);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Reference in New Issue
	
	Block a user